<?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>151141</bug_id>
          
          <creation_ts>2015-11-11 10:57:43 -0800</creation_ts>
          <short_desc>Implement table-based switches in B3/Air</short_desc>
          <delta_ts>2016-07-18 18:18:19 -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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=159391</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>151115</dependson>
          <blocked>154319</blocked>
    
    <blocked>159440</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>benjamin</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenb</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>rniwa</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1141163</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-11-11 10:57:43 -0800</bug_when>
    <thetext>We should do this in B3::lowerMacros(). During the recursive bisecting, if we find a span of case statements that is sufficiently compact, we can optimize it down to an indirect jump.  This can be represented in B3.

- The jump table can be an opaque byproduct that will eventually hold and array of CodeLocationLabels.
- Introduce a new B3 Opcode called AwesomeJump that takes a pointer to jump to and a list of BasicBlocks that are possible successors.
- AwesomeJumps can be compiled to something equivalent in Air.
- CFG simplification ignores AwesomeJumps except when they only have one successor, in which case it can turn them into a Jump.
- A late phase can tell the byproduct holding the jump table that now is a good time to get the addresses of the BasicBlocks.  This will need some kind of hook into Air::generate().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195879</commentid>
    <comment_count>1</comment_count>
      <attachid>279663</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-24 09:45:49 -0700</bug_when>
    <thetext>Created attachment 279663
work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195883</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-05-24 09:48:57 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; - Introduce a new B3 Opcode called AwesomeJump that takes a pointer to jump
&gt; to and a list of BasicBlocks that are possible successors.

Is there any other name that can be more descriptive (but still concise) than AwesomeJump?  The name AwesomeJump really doesn&apos;t say anything but &quot;grep for me and hope to find a comment explaining what I am&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195891</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-24 09:58:14 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (In reply to comment #0)
&gt; &gt; - Introduce a new B3 Opcode called AwesomeJump that takes a pointer to jump
&gt; &gt; to and a list of BasicBlocks that are possible successors.
&gt; 
&gt; Is there any other name that can be more descriptive (but still concise)
&gt; than AwesomeJump?  The name AwesomeJump really doesn&apos;t say anything but
&gt; &quot;grep for me and hope to find a comment explaining what I am&quot;.

The patch calls it LeapOfFaith.

I think that the semantics are weird enough that it needs a weird name.  Also, in B3, you don&apos;t need to grep - just visit webkit.org/docs/b3/intermediate-representation.html.  The attached patch adds a definition of LeapOfFaith to that document.

I considered other names, but rejected them, because they&apos;d do more harm than good.  LeapOfFaith has semantics that are hard to summarize in a descriptive name.  If someone just reads the name of the opcode and then fails to read the details, they will surely end up making a mistake in their reasoning:

- IndirectJump.  This doesn&apos;t really capture the meaning of the opcode.  LeapOfFaith transfers control to one of a specific set of basic blocks.  Half of the opcode&apos;s meaning is that control will be transfered to one of those blocks, sort of like how a Switch would work.  You can&apos;t use LeapOfFaith the way that you would ordinarily use IndirectJump.  For example, you can&apos;t use it to implement tail calls.

- TableSwitch.  This doesn&apos;t really capture the meaning either, since LeapOfFaith doesn&apos;t require there to be a table.

We could go with a super verbose name, like IndirectJumpToBlockInList, but I&apos;m not sure that this actually describes what is going on either.  For those reasons, I think that LeapOfFaith is a pretty good name because that&apos;s what I picture it doing.  You use the opcode when you&apos;re super confident that you can arrange for the jump address to be the address of some basic block in the successor list, and the compiler has no choice but to trust you.  The compiler is taking a leap of faith.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1195997</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-24 13:29:20 -0700</bug_when>
    <thetext>I discovered an interesting problem with this.  This means that after switch lowering, we can&apos;t duplicate or specialize code anymore.  That might be a problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196001</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-24 13:35:57 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; I discovered an interesting problem with this.  This means that after switch
&gt; lowering, we can&apos;t duplicate or specialize code anymore.  That might be a
&gt; problem.

It&apos;s actually not that bad.  Callbacks have well-defined semantics.  If a basic block has callbacks then we know that someone is interested in the block&apos;s address.  We can duplicate the block, so long as we still have some block that represents whatever it meant to jump to the original block.  That meaning can be described by the predecessors of the block that used LeapOfFaith.

This is very confusing.  I will have to think about it a bit more before concluding that this patch is a good idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196009</commentid>
    <comment_count>6</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-24 13:49:37 -0700</bug_when>
    <thetext>This makes big switch statements (~60 cases) about 30% faster.  I think this means that we need to be willing to accept some compiler grossness to support this feature.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196029</commentid>
    <comment_count>7</comment_count>
      <attachid>279705</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-24 14:15:26 -0700</bug_when>
    <thetext>Created attachment 279705
close to done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196110</commentid>
    <comment_count>8</comment_count>
      <attachid>279733</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-24 18:10:15 -0700</bug_when>
    <thetext>Created attachment 279733
performance</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196111</commentid>
    <comment_count>9</comment_count>
      <attachid>279734</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-24 18:10:35 -0700</bug_when>
    <thetext>Created attachment 279734
it works, sort of, but it&apos;s the wrong approach</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196112</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-24 18:13:21 -0700</bug_when>
    <thetext>Attachment 279734 did not pass style-queue:


ERROR: Source/JavaScriptCore/b3/B3BlockInsertionSet.cpp:105:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/B3LowerMacros.cpp:338:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/B3LowerMacros.cpp:354:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/B3LowerMacros.cpp:358:  One line control clauses should not use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/air/AirBasicBlock.cpp:75:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/B3BasicBlock.cpp:126:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/air/AirGenerate.cpp:191:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/air/AirGenerate.cpp:193:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:10134:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/b3/B3LowerToAir.cpp:92:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 10 in 28 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196709</commentid>
    <comment_count>11</comment_count>
      <attachid>279734</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-26 07:27:42 -0700</bug_when>
    <thetext>Comment on attachment 279734
it works, sort of, but it&apos;s the wrong approach

Actually, I thought about this more, and realized a big error.

In this approach, LeapOfFaith can only branch to blocks that have callbacks.  That&apos;s something we can validate.  But it&apos;s actually more than this; LeapOfFaith must continue to always branch to the same blocks that it had when it was created, modulo some clear cases where it can be repointed and fixed up (like if you create a new block that is a stand-in for an old one - then you just transfer the callbacks to then new one).

But this is impossible to guarantee.  Consider that we may have two LeapOfFaiths that both have the same block as a successor.  This means we will have two critical edges, which we may break at any time.  A fundamental law of B3 is that critical edges are breakable and any phase may do this.  But there is no way to transfer callbacks in this case.  The original successor block would have had two callbacks - one for each LeapOfFaith.  But these callbacks do not identify themselves as corresponding to any particular LeapOfFaith.  So, critical edge breaking has no way to know which newly created block should get which callback.  We could maybe label callbacks according to which LeapOfFaith they correspond to, but this seems like it would just make all of B3 much more complex.

Luckily, there&apos;s a solution, and it would result in a significantly smaller patch: make LeapOfFaith have the callback.  This way, each LeapOfFaith will report, at the bitter end of compilation, the branch destinations for each of its successors.

Under this approach, we would only need one additional law to keep things sane: LeapOfFaith cannot be cloned.  I believe that this would be OK.  In the past we have assumed that all code can be cloned.  That&apos;s basically the only cost of this kind of LeapOfFaith.  I think that if we do this, we should also extend the &quot;no-clone&quot; rule to other things - for example, Patchpoints should be able to flag themselves as no-clone in those cases where the client is not equipped to deal with one patchpoint being emitted multiple times.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196720</commentid>
    <comment_count>12</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-26 08:18:19 -0700</bug_when>
    <thetext>Somewhat humorously, my new approach would make it nearly impossible to implement threaded interpreters in B3.  I think that&apos;s actually OK.  The GCC-style address-of-label approach is pretty dirty.  I didn&apos;t realize just how dirty it was until I started thinking about blocks with callbacks.

If we ever did want B3 to support threaded interpreters, then I think we&apos;d do it by increasing B3&apos;s snippet compilation chops.  Imagine if you could tell a bunch of B3::Procedures that they should agree on the same stack layout and pin the same registers for some common state.  Then you could express each opcode as its own Procedure.  This would obviate the need to teach the compiler how to reason about control flow between opcodes in the interpreter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196721</commentid>
    <comment_count>13</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-05-26 08:21:48 -0700</bug_when>
    <thetext>Just throwing some ideas out for alternate names to &quot;LeapOfFaith&quot;.  What do you think of &quot;MultipleTargetJump&quot; or &quot;NTargetJump&quot;?  

While we can explain why &quot;LeapOfFaith&quot; can fit, it still sounds like a bit of a stretch.  And anyone new to the code will have a hard time extrapolating from &quot;LeapOfFaith&quot; to what it does.  Just my $.02.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196726</commentid>
    <comment_count>14</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-26 08:30:57 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; Just throwing some ideas out for alternate names to &quot;LeapOfFaith&quot;.  What do
&gt; you think of &quot;MultipleTargetJump&quot; or &quot;NTargetJump&quot;?  

I don&apos;t think that MultipleTargetJump is an accurate name for this opcode.  Any branching instruction with multiple targets can be describes as a multiple target jump.  The special thing about LeapOfFaith is that we&apos;re asking the compiler to trust that the arbitrary pointer value being passed as an operand ends up being the address of one of the basic blocks listed as successors.

&gt; 
&gt; While we can explain why &quot;LeapOfFaith&quot; can fit, it still sounds like a bit
&gt; of a stretch.  And anyone new to the code will have a hard time
&gt; extrapolating from &quot;LeapOfFaith&quot; to what it does.  Just my $.02.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196780</commentid>
    <comment_count>15</comment_count>
      <attachid>279896</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-26 10:53:21 -0700</bug_when>
    <thetext>Created attachment 279896
a better approach

I haven&apos;t tried compiling this yet.  I&apos;m saving it here while I move on to more important things.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196783</commentid>
    <comment_count>16</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-26 11:03:19 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; Just throwing some ideas out for alternate names to &quot;LeapOfFaith&quot;.  What do
&gt; you think of &quot;MultipleTargetJump&quot; or &quot;NTargetJump&quot;?  
&gt; 
&gt; While we can explain why &quot;LeapOfFaith&quot; can fit, it still sounds like a bit
&gt; of a stretch.  And anyone new to the code will have a hard time
&gt; extrapolating from &quot;LeapOfFaith&quot; to what it does.  Just my $.02.

I think this argument cuts to the heart of where we disagree.  I *want* people to have a hard time extrapolating from the name &quot;LeapOfFaith&quot; what it does.  I want them to say &quot;gosh, that&apos;s weird&quot; and read the docs.  This is because its behavior is so bizarre when compared to traditional compiler constructs.  Putting &quot;Jump&quot; into the title and prefixing it with something that implies that it might jump to multiple places or that the jump target is unknown would cause more confusion than the current name.  The worst case scenario is that a compiler hacker reads the name and assumes, based on the name alone, that it&apos;s just like an indirect jump (jumps anywhere without bound) or that it&apos;s like a switch (it&apos;s just another control construct with no sneakiness).  This would be wrong because:

- Unlike an indirect jump, we have a bound on the set of targets.
- Unlike a switch, it takes a raw pointer as an operand and it executes by doing an unchecked indirect jump to that pointer.
- Unlike either a switch or an indirect jump, it carries identity.  I.e. it is not cloneable.
- Unlike a switch or indirect jump, it requires a callback to the client in order to have meaning.

So, if the name &quot;LeapOfFaith&quot; causes enough confusion to force the user to read what it does, then the name has accomplished its mission.  This is sort of like other names in B3, like ChillDiv and Upsilon.  We intentionally avoid using terms of art for these because there is no term of art that accurately corresponds to what those opcodes do, so we want people to read up on this.  It&apos;s also in keeping with compiler tradition.  For example, when SSA was invented, it came with the &quot;Phi&quot; operation.  Why &quot;Phi&quot;?  Because there&apos;s no concise name that accurately describes a Phi&apos;s behavior.  Using a weirdo name ensures confusion, which then increases the chances that anyone unfamiliar will RTFM. ;-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197077</commentid>
    <comment_count>17</comment_count>
      <attachid>279961</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-27 08:45:05 -0700</bug_when>
    <thetext>Created attachment 279961
I don&apos;t even know if it compiles</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197078</commentid>
    <comment_count>18</comment_count>
      <attachid>279962</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-27 08:54:26 -0700</bug_when>
    <thetext>Created attachment 279962
it&apos;s getting so bizarre</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197221</commentid>
    <comment_count>19</comment_count>
      <attachid>279996</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-27 14:33:51 -0700</bug_when>
    <thetext>Created attachment 279996
a bit more</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197499</commentid>
    <comment_count>20</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-29 10:02:52 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #13)
&gt; &gt; Just throwing some ideas out for alternate names to &quot;LeapOfFaith&quot;.  What do
&gt; &gt; you think of &quot;MultipleTargetJump&quot; or &quot;NTargetJump&quot;?  
&gt; 
&gt; I don&apos;t think that MultipleTargetJump is an accurate name for this opcode. 
&gt; Any branching instruction with multiple targets can be describes as a
&gt; multiple target jump.  The special thing about LeapOfFaith is that we&apos;re
&gt; asking the compiler to trust that the arbitrary pointer value being passed
&gt; as an operand ends up being the address of one of the basic blocks listed as
&gt; successors.
&gt; 
&gt; &gt; 
&gt; &gt; While we can explain why &quot;LeapOfFaith&quot; can fit, it still sounds like a bit
&gt; &gt; of a stretch.  And anyone new to the code will have a hard time
&gt; &gt; extrapolating from &quot;LeapOfFaith&quot; to what it does.  Just my $.02.

Mark and Ben both objected to the name &quot;LeapOfFaith&quot;.  I concede, it&apos;s a weird name.

I&apos;ve renamed it to PolyJump.  I think it&apos;s a good name:

- It has &quot;Jump&quot; in the name.  So, you know that its job is to take you from this basic block to another basic block.
- This matches our existing MacroAssembler&apos;s naming convention for indirect branches, which call it a &quot;jump&quot;, based on x86 naming conventions.
- This matches our existing use of the word &quot;Poly&quot; (short for &quot;polymorphic&quot;) to mean that we&apos;re doing a dispatch that can take us to one of many places.
- It&apos;s concise.

I rejected &quot;MultiJump&quot; because we&apos;re not actually emitting multiple things.  I believe that either &quot;poly&quot; or &quot;virtual&quot; are the best names to use in cases where there is one operation that may have polymorphic (aka virtual) behavior.  I picked &quot;Poly&quot; over &quot;Virtual&quot; just because it&apos;s shorter, but other than this, I like &quot;Virtual&quot; as much as I like &quot;Poly&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197502</commentid>
    <comment_count>21</comment_count>
      <attachid>280062</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-29 11:31:10 -0700</bug_when>
    <thetext>Created attachment 280062
the patch

It works!!!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197503</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-29 11:32:29 -0700</bug_when>
    <thetext>Attachment 280062 did not pass style-queue:


ERROR: Source/JavaScriptCore/b3/B3PolyJumpValue.h:46:  The parameter name &quot;task&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/b3/B3LowerMacros.cpp:351:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/air/AirGenerate.cpp:262:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:38:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:10142:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:12119:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:12281:  Consider using CHECK_EQ instead of CHECK(a == b)  [readability/check] [2]
Total errors found: 7 in 35 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197515</commentid>
    <comment_count>23</comment_count>
      <attachid>280062</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-05-29 12:52:27 -0700</bug_when>
    <thetext>Comment on attachment 280062
the patch

Attachment 280062 did not pass mac-debug-ews (mac):
Output: http://webkit-queues.webkit.org/results/1403224

New failing tests:
js/regress/switch-string-big-length-tower-var.html
js/regress/switch.html
js/regress/switch-string-basic-big-var.html
js/regress/switch-constant.html
js/regress/bigswitch.html
js/regress/switch-string-basic-var.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197516</commentid>
    <comment_count>24</comment_count>
      <attachid>280063</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-05-29 12:52:31 -0700</bug_when>
    <thetext>Created attachment 280063
Archive of layout-test-results from ews113 for mac-yosemite

The attached test failures were seen while running run-webkit-tests on the mac-debug-ews.
Bot: ews113  Port: mac-yosemite  Platform: Mac OS X 10.10.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197517</commentid>
    <comment_count>25</comment_count>
      <attachid>280062</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-29 13:26:01 -0700</bug_when>
    <thetext>Comment on attachment 280062
the patch

Investigating debug issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197518</commentid>
    <comment_count>26</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-29 13:29:35 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; Comment on attachment 280062 [details]
&gt; the patch
&gt; 
&gt; Investigating debug issues.

Ha, it&apos;s probably this silly assertion:

            ASSERT(block-&gt;successors().size() &lt;= 2);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197519</commentid>
    <comment_count>27</comment_count>
      <attachid>280064</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-29 13:33:56 -0700</bug_when>
    <thetext>Created attachment 280064
the patch

Fixed the debug failures by removing a bogus assertion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197520</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-29 13:35:29 -0700</bug_when>
    <thetext>Attachment 280064 did not pass style-queue:


ERROR: Source/JavaScriptCore/b3/B3PolyJumpValue.h:46:  The parameter name &quot;task&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/b3/B3LowerMacros.cpp:351:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/air/AirGenerate.cpp:262:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:38:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:10142:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:12119:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:12281:  Consider using CHECK_EQ instead of CHECK(a == b)  [readability/check] [2]
Total errors found: 7 in 35 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197533</commentid>
    <comment_count>29</comment_count>
      <attachid>280064</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-05-29 18:04:17 -0700</bug_when>
    <thetext>Comment on attachment 280064
the patch

Attachment 280064 did not pass mac-ews (mac):
Output: http://webkit-queues.webkit.org/results/1404435

Number of test failures exceeded the failure limit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197534</commentid>
    <comment_count>30</comment_count>
      <attachid>280068</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2016-05-29 18:04:22 -0700</bug_when>
    <thetext>Created attachment 280068
Archive of layout-test-results from ews102 for mac-yosemite

The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: ews102  Port: mac-yosemite  Platform: Mac OS X 10.10.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197642</commentid>
    <comment_count>31</comment_count>
      <attachid>280103</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-30 10:45:20 -0700</bug_when>
    <thetext>Created attachment 280103
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197643</commentid>
    <comment_count>32</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-30 10:47:55 -0700</bug_when>
    <thetext>Attachment 280103 did not pass style-queue:


ERROR: Source/JavaScriptCore/b3/B3PolyJumpValue.h:46:  The parameter name &quot;task&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/b3/B3LowerMacros.cpp:351:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/air/AirGenerate.cpp:262:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:38:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:10142:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:12119:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:12281:  Consider using CHECK_EQ instead of CHECK(a == b)  [readability/check] [2]
Total errors found: 7 in 35 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200569</commentid>
    <comment_count>33</comment_count>
      <attachid>280834</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-06-08 13:37:43 -0700</bug_when>
    <thetext>Created attachment 280834
the patch

Rebased patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200571</commentid>
    <comment_count>34</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-08 13:39:16 -0700</bug_when>
    <thetext>Attachment 280834 did not pass style-queue:


ERROR: Source/JavaScriptCore/b3/B3PolyJumpValue.h:46:  The parameter name &quot;task&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/b3/B3LowerMacros.cpp:351:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/air/AirGenerate.cpp:275:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:38:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:10142:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:12119:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:12281:  Consider using CHECK_EQ instead of CHECK(a == b)  [readability/check] [2]
Total errors found: 7 in 35 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201775</commentid>
    <comment_count>35</comment_count>
      <attachid>281153</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-06-12 20:42:28 -0700</bug_when>
    <thetext>Created attachment 281153
the patch

rebased</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201776</commentid>
    <comment_count>36</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-12 20:44:04 -0700</bug_when>
    <thetext>Attachment 281153 did not pass style-queue:


ERROR: Source/JavaScriptCore/b3/B3PolyJumpValue.h:46:  The parameter name &quot;task&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/b3/B3LowerMacros.cpp:351:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/air/AirGenerate.cpp:275:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:38:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:10142:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:12119:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:12281:  Consider using CHECK_EQ instead of CHECK(a == b)  [readability/check] [2]
Total errors found: 7 in 35 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203009</commentid>
    <comment_count>37</comment_count>
      <attachid>281475</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-06-16 14:47:25 -0700</bug_when>
    <thetext>Created attachment 281475
the patch

Rebased again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1203010</commentid>
    <comment_count>38</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-16 14:49:53 -0700</bug_when>
    <thetext>Attachment 281475 did not pass style-queue:


ERROR: Source/JavaScriptCore/b3/B3PolyJumpValue.h:46:  The parameter name &quot;task&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/b3/B3LowerMacros.cpp:351:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/air/AirGenerate.cpp:275:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:38:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:10142:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:12119:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:12281:  Consider using CHECK_EQ instead of CHECK(a == b)  [readability/check] [2]
Total errors found: 7 in 35 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1205415</commentid>
    <comment_count>39</comment_count>
      <attachid>282088</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-06-25 20:13:52 -0700</bug_when>
    <thetext>Created attachment 282088
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1205416</commentid>
    <comment_count>40</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-25 20:16:09 -0700</bug_when>
    <thetext>Attachment 282088 did not pass style-queue:


ERROR: Source/JavaScriptCore/b3/B3PolyJumpValue.h:46:  The parameter name &quot;task&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/b3/B3LowerMacros.cpp:351:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/air/AirGenerate.cpp:275:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:38:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:10142:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:12119:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:12281:  Consider using CHECK_EQ instead of CHECK(a == b)  [readability/check] [2]
Total errors found: 7 in 35 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207548</commentid>
    <comment_count>41</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-07-03 20:12:28 -0700</bug_when>
    <thetext>I&apos;m starting to think that the no-clone restriction of PolyJump is not very good.  We want to be able to clone code.  This just came up with EntrySwitch.

Also, the reason why PolyJump is not cloneable is that it is preceded by code that materialized the pointer to the jump table and loads a jump target from it.  Maybe it&apos;s better if that code is part of the PolyJump.  That is, we replace PolyJump with CustomJump or something.  It&apos;s a patchpoint in terminal position.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207551</commentid>
    <comment_count>42</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-07-03 20:27:24 -0700</bug_when>
    <thetext>OK, to implement CustomJump we would need to either introduce multiple inheritance into the Value hierarchy (CustomJumpValue would be a subclass of ControlValue and StackmapValue) or we need to reintroduce B3::Stackmap, which is the part of StackmapValue that would get shared by StackmapValue and CustomJumpValue.

We could also remove the requirement that the terminal is a ControlValue.  That&apos;s tempting, since there&apos;s less data in a ControlValue and so it would be easier to sort of duplicate it.  But, that would mean that every access to successors would be come polymorphic.  That&apos;s probably not so good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207553</commentid>
    <comment_count>43</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-07-03 21:07:58 -0700</bug_when>
    <thetext>Actually, it would make the most sense to just refactor how we handle control values.  ControlValue only exists because we opted not to put the successor list in BasicBlock.  We should just do that.  Then, PatchpointValue or one of its close relatives could be used as a control.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207558</commentid>
    <comment_count>44</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-07-03 22:09:34 -0700</bug_when>
    <thetext>Which should we choose:

- Have StackmapGenerationParams include a Vector&lt;CCallHelpers::Label&gt;. This would be awkward. We can&apos;t actually use Label because of forward edges. One option would be to include a Vector&lt;Box&lt;Label&gt;&gt; or Box&lt;Vector&lt;Label&gt;&gt;. Box&lt;Vector&lt;Label&gt;&gt; seems better. But imagine this: Air::generate() creates a Vector&lt;Box&lt;Label&gt;&gt; to hold the eventual labels of all basic blocks. Air::GenerationContext may even have a reference to this. Then, when generating code for a terminal patchpoint, we would create a Vector&lt;Box&lt;Label&gt;&gt; for those labels that correspond to the block&apos;s successors, by just copying them out of the Vector&lt;Box&lt;Label&gt;&gt; in the GenerationContext.

- Have a second, link-time callback.  It will be up to the client to sort out how to communicate between the compile-time callback and the link-time callback.  This is awkward because of cloning.  The client can&apos;t simply create one Box&lt;&gt; to carry the state, since we might compile two versions and then link two versions. The Box&lt;&gt; would contain the data of the second version, while the data for the first version will be lost.

Note that it appears that if we just factor successors out of ControlValue - thereby killing the ControlValue class - then we have the most beautiful way of determining if something is terminal: value-&gt;effects().terminal.  This means that Patchpoint will Just Work as a terminal if the client sets patchpoint-&gt;effects.terminal = true!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207698</commentid>
    <comment_count>45</comment_count>
      <attachid>282728</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-07-04 10:30:55 -0700</bug_when>
    <thetext>Created attachment 282728
rebased patch

Uploading rebased patch before I change the approach to make Patchpoint into a valid terminal.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207699</commentid>
    <comment_count>46</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-04 10:33:01 -0700</bug_when>
    <thetext>Attachment 282728 did not pass style-queue:


ERROR: Source/JavaScriptCore/b3/B3PolyJumpValue.h:46:  The parameter name &quot;task&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/b3/B3LowerMacros.cpp:351:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/air/AirGenerate.cpp:275:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:38:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:10184:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:12161:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:12323:  Consider using CHECK_EQ instead of CHECK(a == b)  [readability/check] [2]
Total errors found: 7 in 35 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207702</commentid>
    <comment_count>47</comment_count>
      <attachid>282730</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-07-04 10:49:22 -0700</bug_when>
    <thetext>Created attachment 282730
a new approach

Starting to remove ControlValue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207709</commentid>
    <comment_count>48</comment_count>
      <attachid>282731</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-07-04 11:37:13 -0700</bug_when>
    <thetext>Created attachment 282731
a bit more

So much fun</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207710</commentid>
    <comment_count>49</comment_count>
      <attachid>282728</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-07-04 11:39:00 -0700</bug_when>
    <thetext>Comment on attachment 282728
rebased patch

Looks like this patch wasn&apos;t properly rebased.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207713</commentid>
    <comment_count>50</comment_count>
      <attachid>282732</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-07-04 13:44:17 -0700</bug_when>
    <thetext>Created attachment 282732
tiny bit more</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207714</commentid>
    <comment_count>51</comment_count>
      <attachid>282733</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-07-04 13:49:49 -0700</bug_when>
    <thetext>Created attachment 282733
so fun

Wow, removing ControlValue lets me remove some nasty garbage, like the weirdo terminal validation in resetReachability().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207971</commentid>
    <comment_count>52</comment_count>
      <attachid>282819</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-07-05 15:50:46 -0700</bug_when>
    <thetext>Created attachment 282819
a tiny bit more

I think that now most of the IR does not care about ControlValue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207986</commentid>
    <comment_count>53</comment_count>
      <attachid>282823</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-07-05 16:07:46 -0700</bug_when>
    <thetext>Created attachment 282823
so small patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208060</commentid>
    <comment_count>54</comment_count>
      <attachid>282846</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-07-05 20:15:35 -0700</bug_when>
    <thetext>Created attachment 282846
maybe it&apos;s done

I don&apos;t know if it&apos;s done or not, since I haven&apos;t even tried compiling it.

But the basic idea is this:
- Remove ControlValue.  Now, the successors of a basic block are stored in a basic block.
- Any B3 opcode or Value subclass can be a terminal. You know if it&apos;s terminal if you call Value::effects().terminal. Patchpoints may be terminal or not depending on PatchpointValue::effects.
- Any Air opcode can be a terminal. You know if it&apos;s terminal if you call Inst::isTerminal(). Patches can be terminal or not depending on Special::isTerminal(Inst&amp;).
- StackmapGenerationParams can tell a terminal Patchpoint what the Box&lt;Label&gt; is for each successor. You know that the boxes will be filled by the time late paths execute.
- LowerMacros uses a terminal Patchpoint to create a jump through a jump table.

I still have a few clean-ups to do.  The patch still refers to PolyJump.  But it&apos;s basically done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208061</commentid>
    <comment_count>55</comment_count>
      <attachid>282847</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-07-05 20:18:32 -0700</bug_when>
    <thetext>Created attachment 282847
a bit more

Removed all of the cloneable garbage.  This new patch does not prevent cloning.  I don&apos;t think we want to prevent cloning because of how we will do LowerEntrySwitch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208800</commentid>
    <comment_count>56</comment_count>
      <attachid>283054</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-07-07 14:51:07 -0700</bug_when>
    <thetext>Created attachment 283054
closer to done

Fixed up the threaded interpreter test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208809</commentid>
    <comment_count>57</comment_count>
      <attachid>283059</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-07-07 15:04:10 -0700</bug_when>
    <thetext>Created attachment 283059
made some things compile</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208835</commentid>
    <comment_count>58</comment_count>
      <attachid>283067</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-07-07 15:33:38 -0700</bug_when>
    <thetext>Created attachment 283067
more compile fixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208955</commentid>
    <comment_count>59</comment_count>
      <attachid>283104</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-07-07 20:36:46 -0700</bug_when>
    <thetext>Created attachment 283104
it seems to work!

Still need to run more tests, but so far it seems solid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208989</commentid>
    <comment_count>60</comment_count>
      <attachid>283113</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-07-08 00:13:37 -0700</bug_when>
    <thetext>Created attachment 283113
maybe done

Seems to work!!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208991</commentid>
    <comment_count>61</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-08 00:15:34 -0700</bug_when>
    <thetext>Attachment 283113 did not pass style-queue:


ERROR: Source/JavaScriptCore/b3/B3CaseCollectionInlines.h:32:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:10182:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:12155:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:12161:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:12325:  Consider using CHECK_EQ instead of CHECK(a == b)  [readability/check] [2]
ERROR: Source/JavaScriptCore/b3/B3LowerMacros.cpp:351:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/B3LowerMacros.cpp:366:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 7 in 55 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1209135</commentid>
    <comment_count>62</comment_count>
      <attachid>283169</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-07-08 09:27:44 -0700</bug_when>
    <thetext>Created attachment 283169
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1209139</commentid>
    <comment_count>63</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-08 09:30:57 -0700</bug_when>
    <thetext>Attachment 283169 did not pass style-queue:


ERROR: Source/JavaScriptCore/b3/B3CaseCollectionInlines.h:32:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:10182:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:12155:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:12161:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:12325:  Consider using CHECK_EQ instead of CHECK(a == b)  [readability/check] [2]
ERROR: Source/JavaScriptCore/b3/B3LowerMacros.cpp:351:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/B3LowerMacros.cpp:366:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 7 in 55 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1209289</commentid>
    <comment_count>64</comment_count>
      <attachid>283207</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-07-08 15:38:43 -0700</bug_when>
    <thetext>Created attachment 283207
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1209290</commentid>
    <comment_count>65</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-08 15:42:11 -0700</bug_when>
    <thetext>Attachment 283207 did not pass style-queue:


ERROR: Source/JavaScriptCore/b3/B3CaseCollectionInlines.h:32:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:10182:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:12155:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:12161:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:12325:  Consider using CHECK_EQ instead of CHECK(a == b)  [readability/check] [2]
ERROR: Source/JavaScriptCore/b3/B3LowerMacros.cpp:351:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/B3LowerMacros.cpp:366:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 7 in 55 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1209317</commentid>
    <comment_count>66</comment_count>
      <attachid>283217</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-07-08 16:36:15 -0700</bug_when>
    <thetext>Created attachment 283217
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1209319</commentid>
    <comment_count>67</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-08 16:38:34 -0700</bug_when>
    <thetext>Attachment 283217 did not pass style-queue:


ERROR: Source/JavaScriptCore/b3/B3CaseCollectionInlines.h:32:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:10182:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:12155:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:12161:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:12325:  Consider using CHECK_EQ instead of CHECK(a == b)  [readability/check] [2]
ERROR: Source/JavaScriptCore/b3/B3LowerMacros.cpp:351:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/B3LowerMacros.cpp:366:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 7 in 55 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1209541</commentid>
    <comment_count>68</comment_count>
      <attachid>283288</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-07-10 10:57:00 -0700</bug_when>
    <thetext>Created attachment 283288
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1209542</commentid>
    <comment_count>69</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-10 10:59:36 -0700</bug_when>
    <thetext>Attachment 283288 did not pass style-queue:


ERROR: Source/JavaScriptCore/b3/B3CaseCollectionInlines.h:32:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:10182:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:12160:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:12170:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:12320:  Consider using CHECK_EQ instead of CHECK(a == b)  [readability/check] [2]
ERROR: Source/JavaScriptCore/b3/B3LowerMacros.cpp:355:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/B3LowerMacros.cpp:372:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 7 in 56 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212074</commentid>
    <comment_count>70</comment_count>
      <attachid>283288</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-07-18 13:32:55 -0700</bug_when>
    <thetext>Comment on attachment 283288
the patch

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

Partial review. No real problem so far.
I am gonna get Cécile at the airport, then I&apos;ll finish when I come back to IL.

&gt; Source/JavaScriptCore/ChangeLog:258
&gt; +        (JSC::B3::shouldBeVerbose):

Let&apos;s drop all the functions names, that&apos;s huge and useless.

&gt; Source/JavaScriptCore/b3/B3BasicBlock.cpp:54
&gt; +    value-&gt;owner = this;

Is that needed?
So far we have only set the owners explicitly.

&gt; Source/JavaScriptCore/b3/B3BasicBlock.cpp:61
&gt; +    value-&gt;owner = this;

ditto.

&gt; Source/JavaScriptCore/b3/B3BasicBlock.cpp:98
&gt; +void BasicBlock::setSuccessors(const FrequentedBlock&amp; target)

setSuccessors(), not setSuccessor()?

&gt; Source/JavaScriptCore/b3/B3BasicBlock.cpp:157
&gt; +    if (successors().size()) {

&quot;!successors().isEmpty()&quot; is the WebKit style.

&gt; Source/JavaScriptCore/b3/B3BasicBlock.cpp:162
&gt; +            out.print(listDump(successors()));

This case freaks me out, successors without terminal?

&gt; Source/JavaScriptCore/b3/B3BasicBlock.h:82
&gt; -
&gt; +    

Oops, not needed.

&gt; Source/JavaScriptCore/b3/B3BasicBlock.h:121
&gt; +    // This is only valid for Branch and Switch.

Valid for Branch? Is that useful?

&gt; Source/JavaScriptCore/b3/B3BasicBlock.h:140
&gt; -
&gt; +    

We remove spaces, not add them :)

&gt; Source/JavaScriptCore/b3/B3DuplicateTails.cpp:75
&gt; +            if (block-&gt;size() &gt; m_maxSize
&gt; +                || block-&gt;numSuccessors() &gt; m_maxSuccessors)

This looked better on one line, no need to change it.

&gt; Source/JavaScriptCore/b3/B3DuplicateTails.cpp:77
&gt; -
&gt; +            

Oops.

&gt; Source/JavaScriptCore/b3/B3LowerMacros.cpp:302
&gt; +            if ((lastValue - firstValue + 1) / cases.size() &lt; densityLimit) {

Does validation prevent a Switch with only a fallback?
Otherwise we could divide by zero here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212084</commentid>
    <comment_count>71</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-07-18 13:47:59 -0700</bug_when>
    <thetext>(In reply to comment #70)
&gt; Comment on attachment 283288 [details]
&gt; the patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=283288&amp;action=review
&gt; 
&gt; Partial review. No real problem so far.
&gt; I am gonna get Cécile at the airport, then I&apos;ll finish when I come back to
&gt; IL.

Thanks!

&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:258
&gt; &gt; +        (JSC::B3::shouldBeVerbose):
&gt; 
&gt; Let&apos;s drop all the functions names, that&apos;s huge and useless.

OK.

&gt; 
&gt; &gt; Source/JavaScriptCore/b3/B3BasicBlock.cpp:54
&gt; &gt; +    value-&gt;owner = this;
&gt; 
&gt; Is that needed?
&gt; So far we have only set the owners explicitly.

It is now, but only for the benefit of the client (FTL or testb3).  The client gets this guarantee: if they append a value to a block using one of these APIs or something that bottoms out in it (like block-&gt;appendNew&lt;Type&gt;(things)), then the newly created value will have the owner set to the block you added it to.

This is useful for APIs like SwitchValue::appendCase(), which comes in two varieties: one where you pass the owner explicitly and another where you rely on Value::owner being set.  This means that FTL can do:

SwitchValue* switchValue = block-&gt;appendNew&lt;SwitchValue&gt;(...);
switchValue-&gt;appendCase(case); // no need to pass block here because switchValue-&gt;owner == block

&gt; 
&gt; &gt; Source/JavaScriptCore/b3/B3BasicBlock.cpp:61
&gt; &gt; +    value-&gt;owner = this;
&gt; 
&gt; ditto.
&gt; 
&gt; &gt; Source/JavaScriptCore/b3/B3BasicBlock.cpp:98
&gt; &gt; +void BasicBlock::setSuccessors(const FrequentedBlock&amp; target)
&gt; 
&gt; setSuccessors(), not setSuccessor()?

I don&apos;t care.  I went back and forth on this.  This is a setter for the successors array, so I went with setSuccessors().  I think it makes sense either way.

&gt; 
&gt; &gt; Source/JavaScriptCore/b3/B3BasicBlock.cpp:157
&gt; &gt; +    if (successors().size()) {
&gt; 
&gt; &quot;!successors().isEmpty()&quot; is the WebKit style.

Fixed!

&gt; 
&gt; &gt; Source/JavaScriptCore/b3/B3BasicBlock.cpp:162
&gt; &gt; +            out.print(listDump(successors()));
&gt; 
&gt; This case freaks me out, successors without terminal?

When we generate bad IR, we dump it to see why it&apos;s bad.  For this reason, I want the dumping code to still dump things even when you make silly mistakes like create empty basic blocks or blocks without terminals.

&gt; 
&gt; &gt; Source/JavaScriptCore/b3/B3BasicBlock.h:82
&gt; &gt; -
&gt; &gt; +    
&gt; 
&gt; Oops, not needed.

Fixed.

&gt; 
&gt; &gt; Source/JavaScriptCore/b3/B3BasicBlock.h:121
&gt; &gt; +    // This is only valid for Branch and Switch.
&gt; 
&gt; Valid for Branch? Is that useful?

We definitely use it for SwitchValue.  I observed that &quot;fall through&quot; is also a thing that works for Branch for free: the last successor of a Branch is the notTaken, which is the same thing as a fallThrough.  So, I relaxed the assert to allow it.

&gt; 
&gt; &gt; Source/JavaScriptCore/b3/B3BasicBlock.h:140
&gt; &gt; -
&gt; &gt; +    
&gt; 
&gt; We remove spaces, not add them :)

Fixed.

&gt; 
&gt; &gt; Source/JavaScriptCore/b3/B3DuplicateTails.cpp:75
&gt; &gt; +            if (block-&gt;size() &gt; m_maxSize
&gt; &gt; +                || block-&gt;numSuccessors() &gt; m_maxSuccessors)
&gt; 
&gt; This looked better on one line, no need to change it.

Fixed.

&gt; 
&gt; &gt; Source/JavaScriptCore/b3/B3DuplicateTails.cpp:77
&gt; &gt; -
&gt; &gt; +            
&gt; 
&gt; Oops.

Fixed.

&gt; 
&gt; &gt; Source/JavaScriptCore/b3/B3LowerMacros.cpp:302
&gt; &gt; +            if ((lastValue - firstValue + 1) / cases.size() &lt; densityLimit) {
&gt; 
&gt; Does validation prevent a Switch with only a fallback?
&gt; Otherwise we could divide by zero here.

It&apos;s totally valid to have a Switch with only a fallback.  This code will not divide by zero because it&apos;s guarded by a check above that there is some minimal number of cases:

        if (end - start &gt;= minCasesForTable) {</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212092</commentid>
    <comment_count>72</comment_count>
      <attachid>283928</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-07-18 13:54:55 -0700</bug_when>
    <thetext>Created attachment 283928
the patch

Addressed Ben&apos;s feedback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212094</commentid>
    <comment_count>73</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-07-18 13:56:41 -0700</bug_when>
    <thetext>
&gt; &gt; 
&gt; &gt; &gt; Source/JavaScriptCore/b3/B3LowerMacros.cpp:302
&gt; &gt; &gt; +            if ((lastValue - firstValue + 1) / cases.size() &lt; densityLimit) {
&gt; &gt; 
&gt; &gt; Does validation prevent a Switch with only a fallback?
&gt; &gt; Otherwise we could divide by zero here.
&gt; 
&gt; It&apos;s totally valid to have a Switch with only a fallback.  This code will
&gt; not divide by zero because it&apos;s guarded by a check above that there is some
&gt; minimal number of cases:
&gt; 
&gt;         if (end - start &gt;= minCasesForTable) {

Oh shit, and the logic here is subtly too conservative.  Instead of:

    if ((lastValue - firstValue + 1) / cases.size() &lt; densityLimit) {

It should say:

    if ((lastValue - firstValue + 1) / (end - start) &lt; densityLimit) {

Because [start, end) is the part of &apos;cases&apos; that we are working on right now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212096</commentid>
    <comment_count>74</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-18 13:57:41 -0700</bug_when>
    <thetext>Attachment 283928 did not pass style-queue:


ERROR: Source/JavaScriptCore/b3/B3CaseCollectionInlines.h:32:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:10182:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:12160:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:12170:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:12320:  Consider using CHECK_EQ instead of CHECK(a == b)  [readability/check] [2]
ERROR: Source/JavaScriptCore/b3/B3LowerMacros.cpp:355:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/B3LowerMacros.cpp:372:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 7 in 56 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212113</commentid>
    <comment_count>75</comment_count>
      <attachid>283935</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-07-18 14:20:28 -0700</bug_when>
    <thetext>Created attachment 283935
the patch

Fixed the bug with LowerMacros using cases.size() where it meant end-begin.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212114</commentid>
    <comment_count>76</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-18 14:22:08 -0700</bug_when>
    <thetext>Attachment 283935 did not pass style-queue:


ERROR: Source/JavaScriptCore/b3/B3CaseCollectionInlines.h:32:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:10182:  Missing spaces around /  [whitespace/operators] [3]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:12160:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:12170:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:12320:  Consider using CHECK_EQ instead of CHECK(a == b)  [readability/check] [2]
ERROR: Source/JavaScriptCore/b3/B3LowerMacros.cpp:355:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/B3LowerMacros.cpp:372:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 7 in 56 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212164</commentid>
    <comment_count>77</comment_count>
      <attachid>283935</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-07-18 16:28:08 -0700</bug_when>
    <thetext>Comment on attachment 283935
the patch

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

&gt; Source/JavaScriptCore/b3/B3LowerMacros.cpp:302
&gt; +        // better than a binary switch.
&gt; +        const unsigned minCasesForTable = 7;
&gt; +        const unsigned densityLimit = 4;
&gt; +        if (end - start &gt;= minCasesForTable) {
&gt; +            int64_t firstValue = cases[start].caseValue();
&gt; +            int64_t lastValue = cases[end - 1].caseValue();
&gt; +            if ((lastValue - firstValue + 1) / (end - start) &lt; densityLimit) {

Can we make this decision a helper function to reduce indentation?

&gt; Source/JavaScriptCore/b3/B3StackmapGenerationParams.h:95
&gt; +    
&gt; +    // This is computed lazily, so it won&apos;t work if you capture StackmapGenerationParams by value.
&gt; +    // These labels will get populated before any late paths or link tasks execute.
&gt; +    JS_EXPORT_PRIVATE Vector&lt;Box&lt;CCallHelpers::Label&gt;&gt; successorLabels() const;
&gt; +    
&gt; +    // This is computed lazily, so it won&apos;t work if you capture StackmapGenerationParams by value.
&gt; +    // Returns true if the successor at the given index is going to be emitted right after the
&gt; +    // patchpoint.
&gt; +    bool fallsThroughToSuccessor(unsigned successorIndex) const;

I don&apos;t fully get this. I see that these values are computed on the fly, but I don&apos;t see why the computation would become wrong after copy construction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212166</commentid>
    <comment_count>78</comment_count>
      <attachid>283935</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-07-18 16:29:16 -0700</bug_when>
    <thetext>Comment on attachment 283935
the patch

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

&gt; Source/JavaScriptCore/b3/B3BasicBlock.h:123
&gt; +    // This is only valid for Branch and Switch.
&gt; +    const FrequentedBlock&amp; fallThrough() const;
&gt; +    FrequentedBlock&amp; fallThrough();

I understand your rationale for fallThrough() now but I believe stronger definition is better.

I don&apos;t care a lot. It&apos;s fine to keep it if you like fallThrough().

&gt; Source/JavaScriptCore/b3/B3LowerToAir.cpp:2443
&gt; -
&gt; +            

Oops.

&gt; Source/JavaScriptCore/b3/B3Opcode.h:219
&gt; -
&gt; +    

Oops

&gt; Source/JavaScriptCore/b3/B3Value.h:116
&gt; +    void replaceWithJump(BasicBlock* owner, const FrequentedBlock&amp;);
&gt; +    void replaceWithOops(BasicBlock* owner);

We were more or less avoiding those before. 

There is even a comment:
    // Note that the opcode is immutable, except for replacing values with Identity or Nop.
    Opcode opcode() const { return m_opcode; }

We should remove the comment since we have embraced mutation in a few places.

&gt; Source/JavaScriptCore/b3/B3Value.h:237
&gt; -
&gt; +    

Oops

&gt; Source/JavaScriptCore/b3/air/AirGenerate.cpp:205
&gt; +        context.indexInBlock = UINT_MAX;

numeric_limits&lt;&gt; is more WebKit-like.

&gt; Source/JavaScriptCore/b3/air/AirGenerate.cpp:243
&gt; -
&gt; +        

Oops.

&gt; Source/JavaScriptCore/b3/air/AirGenerationContext.h:49
&gt; +    unsigned indexInBlock { UINT_MAX };

numeric_limits</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212169</commentid>
    <comment_count>79</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-07-18 16:31:29 -0700</bug_when>
    <thetext>(In reply to comment #77)
&gt; Comment on attachment 283935 [details]
&gt; the patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=283935&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/b3/B3LowerMacros.cpp:302
&gt; &gt; +        // better than a binary switch.
&gt; &gt; +        const unsigned minCasesForTable = 7;
&gt; &gt; +        const unsigned densityLimit = 4;
&gt; &gt; +        if (end - start &gt;= minCasesForTable) {
&gt; &gt; +            int64_t firstValue = cases[start].caseValue();
&gt; &gt; +            int64_t lastValue = cases[end - 1].caseValue();
&gt; &gt; +            if ((lastValue - firstValue + 1) / (end - start) &lt; densityLimit) {
&gt; 
&gt; Can we make this decision a helper function to reduce indentation?

Either way, we need to capture firstValue and lastValue.  So, to reduce indentation, we&apos;d have to introduce some kind of possibly less intuitive way of getting those values.

&gt; 
&gt; &gt; Source/JavaScriptCore/b3/B3StackmapGenerationParams.h:95
&gt; &gt; +    
&gt; &gt; +    // This is computed lazily, so it won&apos;t work if you capture StackmapGenerationParams by value.
&gt; &gt; +    // These labels will get populated before any late paths or link tasks execute.
&gt; &gt; +    JS_EXPORT_PRIVATE Vector&lt;Box&lt;CCallHelpers::Label&gt;&gt; successorLabels() const;
&gt; &gt; +    
&gt; &gt; +    // This is computed lazily, so it won&apos;t work if you capture StackmapGenerationParams by value.
&gt; &gt; +    // Returns true if the successor at the given index is going to be emitted right after the
&gt; &gt; +    // patchpoint.
&gt; &gt; +    bool fallsThroughToSuccessor(unsigned successorIndex) const;
&gt; 
&gt; I don&apos;t fully get this. I see that these values are computed on the fly, but
&gt; I don&apos;t see why the computation would become wrong after copy construction.

The implementation uses StackmapGenerationParams&apos; reference to Air::GenerationContext, which mutates as we compile.  So if you capture the StackmapGenerationParams (by value or any other way) inside a nested lambda inside your stackmap generator, then you&apos;re going to have a bad time.  That nested lambda may run when the GenerationContext is no longer in the state you wanted.  In particular:

    Air::BasicBlock* successor = m_context.currentBlock-&gt;successorBlock(successorIndex);

This code in fallsThroughToSuccessor() uses m_context.currentBlock, which will change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212179</commentid>
    <comment_count>80</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-07-18 16:34:46 -0700</bug_when>
    <thetext>(In reply to comment #78)
&gt; Comment on attachment 283935 [details]
&gt; the patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=283935&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/b3/B3BasicBlock.h:123
&gt; &gt; +    // This is only valid for Branch and Switch.
&gt; &gt; +    const FrequentedBlock&amp; fallThrough() const;
&gt; &gt; +    FrequentedBlock&amp; fallThrough();
&gt; 
&gt; I understand your rationale for fallThrough() now but I believe stronger
&gt; definition is better.
&gt; 
&gt; I don&apos;t care a lot. It&apos;s fine to keep it if you like fallThrough().

OK.

&gt; 
&gt; &gt; Source/JavaScriptCore/b3/B3LowerToAir.cpp:2443
&gt; &gt; -
&gt; &gt; +            
&gt; 
&gt; Oops.

Fixed.

&gt; 
&gt; &gt; Source/JavaScriptCore/b3/B3Opcode.h:219
&gt; &gt; -
&gt; &gt; +    
&gt; 
&gt; Oops

Fixed.

&gt; 
&gt; &gt; Source/JavaScriptCore/b3/B3Value.h:116
&gt; &gt; +    void replaceWithJump(BasicBlock* owner, const FrequentedBlock&amp;);
&gt; &gt; +    void replaceWithOops(BasicBlock* owner);
&gt; 
&gt; We were more or less avoiding those before. 
&gt; 
&gt; There is even a comment:
&gt;     // Note that the opcode is immutable, except for replacing values with
&gt; Identity or Nop.
&gt;     Opcode opcode() const { return m_opcode; }
&gt; 
&gt; We should remove the comment since we have embraced mutation in a few places.

I edited the comment.

&gt; 
&gt; &gt; Source/JavaScriptCore/b3/B3Value.h:237
&gt; &gt; -
&gt; &gt; +    
&gt; 
&gt; Oops

Fixed.

&gt; 
&gt; &gt; Source/JavaScriptCore/b3/air/AirGenerate.cpp:205
&gt; &gt; +        context.indexInBlock = UINT_MAX;
&gt; 
&gt; numeric_limits&lt;&gt; is more WebKit-like.

We&apos;ve been using UINT_MAX a lot.  It seems to be an exception to the rule.

&gt; 
&gt; &gt; Source/JavaScriptCore/b3/air/AirGenerate.cpp:243
&gt; &gt; -
&gt; &gt; +        
&gt; 
&gt; Oops.

Fixed.

&gt; 
&gt; &gt; Source/JavaScriptCore/b3/air/AirGenerationContext.h:49
&gt; &gt; +    unsigned indexInBlock { UINT_MAX };
&gt; 
&gt; numeric_limits</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1212230</commentid>
    <comment_count>81</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-07-18 18:18:19 -0700</bug_when>
    <thetext>Landed in https://trac.webkit.org/changeset/203390</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279663</attachid>
            <date>2016-05-24 09:45:49 -0700</date>
            <delta_ts>2016-05-24 14:15:26 -0700</delta_ts>
            <desc>work in progress</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>24509</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZD
b21tb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01h
Y3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgJKHJldmlzaW9uIDIwMTI4OSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaAkod29ya2luZyBj
b3B5KQpAQCAtMjI2Miw2ICsyMjYyLDEyIEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIu
am1wX20oYWRkcmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFzZSk7CiAgICAgfQogCisgICAgLy8gQWRk
cmVzcyBpcyBhIG1lbW9yeSBsb2NhdGlvbiBjb250YWluaW5nIHRoZSBhZGRyZXNzIHRvIGp1bXAg
dG8KKyAgICB2b2lkIGp1bXAoQmFzZUluZGV4IGFkZHJlc3MpCisgICAgeworICAgICAgICBtX2Fz
c2VtYmxlci5qbXBfbShhZGRyZXNzLm9mZnNldCwgYWRkcmVzcy5iYXNlLCBhZGRyZXNzLmluZGV4
LCBhZGRyZXNzLnNjYWxlKTsKKyAgICB9CisKIAogICAgIC8vIEFyaXRobWV0aWMgY29udHJvbCBm
bG93IG9wZXJhdGlvbnM6CiAgICAgLy8KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvWDg2QXNzZW1ibGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaAkocmV2aXNpb24gMjAxMjg5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaAkod29ya2luZyBjb3B5KQpAQCAt
MTk4Myw2ICsxOTgzLDExIEBAIHB1YmxpYzoKICAgICAgICAgbV9mb3JtYXR0ZXIub25lQnl0ZU9w
KE9QX0dST1VQNV9FdiwgR1JPVVA1X09QX0pNUE4sIGJhc2UsIG9mZnNldCk7CiAgICAgfQogICAg
IAorICAgIHZvaWQgam1wX20oaW50IG9mZnNldCwgUmVnaXN0ZXJJRCBiYXNlLCBSZWdpc3RlcklE
IGluZGV4LCBpbnQgc2NhbGUpCisgICAgeworICAgICAgICBtX2Zvcm1hdHRlci5vbmVCeXRlT3Ao
T1BfR1JPVVA1X0V2LCBHUk9VUDVfT1BfSk1QTiwgYmFzZSwgaW5kZXgsIHNjYWxlLCBvZmZzZXQp
OworICAgIH0KKyAgICAKICNpZiAhQ1BVKFg4Nl82NCkKICAgICB2b2lkIGptcF9tKGNvbnN0IHZv
aWQqIGFkZHJlc3MpCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFz
aWNCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFz
aWNCbG9jay5jcHAJKHJldmlzaW9uIDIwMTI4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM0Jhc2ljQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjMsNiArMTIzLDEzIEBAIHZv
aWQgQmFzaWNCbG9jazo6ZGVlcER1bXAoY29uc3QgUHJvY2VkdXIKICAgICAgICAgb3V0LnByaW50
KCIgICAgIiwgQjM6OmRlZXBEdW1wKHByb2MsIHZhbHVlKSwgIlxuIik7CiB9CiAKK0Jhc2ljQmxv
Y2s6OlJhcmVEYXRhJiBCYXNpY0Jsb2NrOjplbnN1cmVSYXJlRGF0YSgpCit7CisgICAgaWYgKCFt
X3JhcmVEYXRhKQorICAgICAgICBtX3JhcmVEYXRhID0gc3RkOjptYWtlX3VuaXF1ZTxSYXJlRGF0
YT4oKTsKKyAgICByZXR1cm4gKm1fcmFyZURhdGE7Cit9CisKIH0gfSAvLyBuYW1lc3BhY2UgSlND
OjpCMwogCiAjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM0Jhc2ljQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNCYXNpY0Jsb2NrLmgJKHJldmlzaW9uIDIwMTI4OSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtMTE2LDYgKzExNiwy
NyBAQCBwdWJsaWM6CiAKICAgICBkb3VibGUgZnJlcXVlbmN5KCkgY29uc3QgeyByZXR1cm4gbV9m
cmVxdWVuY3k7IH0KIAorICAgIC8vIEFkZCBhIGNhbGxiYWNrIHRoYXQgd2lsbCB0ZWxsIHlvdSB0
aGUgYWRkcmVzcyBvZiB0aGlzIGJhc2ljIGJsb2NrLiBUaGlzIGlzIG9ubHkgdmFsaWQgZm9yIGJh
c2ljCisgICAgLy8gYmxvY2tzIHRoYXQgd2lsbCBub3QgYmUga2lsbGVkIGJ5IHRoZSBvcHRpbWl6
ZXIuIFByZXR0eSBtdWNoIHRoZSBvbmx5IHdheSB0byBndWFyYW50ZWUgdGhhdCBhCisgICAgLy8g
YmxvY2sgZG9lc24ndCBnZXQga2lsbGVkIGlzIHRvIHVzZSB0aGUgcm9vdCBibG9jayBvciBhIGJs
b2NrIHRoYXQgaXMgdGhlIHN1Y2Nlc3NvciBvZiBhCisgICAgLy8gTGVhcE9mRmFpdGguIEV2ZW4g
dGhlbiwgdGhlIGNvZGUgbWF5IGJlIHByb3ZlZCB1bnJlYWNoYWJsZSwgaW4gd2hpY2ggY2FzZSB0
aGlzIHdvbid0IGdldAorICAgIC8vIGNhbGxlZC4KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5j
PgorICAgIHZvaWQgYWRkQ2FsbGJhY2soRnVuYyYmIGZ1bmMpCisgICAgeworICAgICAgICBlbnN1
cmVSYXJlRGF0YSgpLmNhbGxiYWNrcy5hcHBlbmQoCisgICAgICAgICAgICBjcmVhdGVTaGFyZWRU
YXNrPHZvaWQoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKT4oc3RkOjpmb3J3YXJkPEZ1bmM+KGZ1bmMp
KSk7CisgICAgfQorICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmM+CisgICAgdm9pZCBm
b3JFYWNoQ2FsbGJhY2soY29uc3QgRnVuYyYgZnVuYykgY29uc3QKKyAgICB7CisgICAgICAgIGlm
ICghbV9yYXJlRGF0YSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgZm9yIChjb25zdCBh
dXRvJiBjYWxsYmFjayA6IG1fcmFyZURhdGEtPmNhbGxiYWNrcykKKyAgICAgICAgICAgIGZ1bmMo
Y2FsbGJhY2spOworICAgIH0KKyAgICAKICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25z
dDsKICAgICB2b2lkIGRlZXBEdW1wKGNvbnN0IFByb2NlZHVyZSYsIFByaW50U3RyZWFtJikgY29u
c3Q7CiAKQEAgLTEyNiwxMSArMTQ3LDE5IEBAIHByaXZhdGU6CiAgICAgCiAgICAgLy8gSW5zdGFu
dGlhdGUgdmlhIFByb2NlZHVyZS4KICAgICBCYXNpY0Jsb2NrKHVuc2lnbmVkIGluZGV4LCBkb3Vi
bGUgZnJlcXVlbmN5KTsKKyAgICAKKyAgICBSYXJlRGF0YSYgZW5zdXJlUmFyZURhdGEoKTsKIAog
ICAgIHVuc2lnbmVkIG1faW5kZXg7CiAgICAgVmFsdWVMaXN0IG1fdmFsdWVzOwogICAgIFByZWRl
Y2Vzc29yTGlzdCBtX3ByZWRlY2Vzc29yczsKICAgICBkb3VibGUgbV9mcmVxdWVuY3k7CisgICAg
CisgICAgc3RydWN0IFJhcmVEYXRhIHsKKyAgICAgICAgVmVjdG9yPFJlZlB0cjxTaGFyZWRUYXNr
PHZvaWQoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKT4+PiBjYWxsYmFja3M7CisgICAgfTsKKyAgICAK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8UmFyZURhdGE+IG1fcmFyZURhdGE7CiB9OwogCiBjbGFzcyBE
ZWVwQmFzaWNCbG9ja0R1bXAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29u
dHJvbFZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjND
b250cm9sVmFsdWUuY3BwCShyZXZpc2lvbiAyMDEyODkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNDb250cm9sVmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MSw2ICs1MSwxMiBA
QCBib29sIENvbnRyb2xWYWx1ZTo6cmVwbGFjZVN1Y2Nlc3NvcihCYXNpCiAgICAgcmV0dXJuIHJl
c3VsdDsKIH0KIAordm9pZCBDb250cm9sVmFsdWU6OmFwcGVuZFN1Y2Nlc3NvcihCYXNpY0Jsb2Nr
KiBibG9jaykKK3sKKyAgICBSRUxFQVNFX0FTU0VSVChvcGNvZGUoKSA9PSBMZWFwT2ZGYWl0aCk7
CisgICAgbV9zdWNjZXNzb3JzLmFwcGVuZChibG9jayk7Cit9CisKIHZvaWQgQ29udHJvbFZhbHVl
Ojpjb252ZXJ0VG9KdW1wKEJhc2ljQmxvY2sqIGRlc3RpbmF0aW9uKQogewogICAgIHVuc2lnbmVk
IGluZGV4ID0gdGhpcy0+aW5kZXgoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0NvbnRyb2xWYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0NvbnRyb2xWYWx1ZS5oCShyZXZpc2lvbiAyMDEyODkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNDb250cm9sVmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtNDMsMTAgKzQzLDExIEBA
IHB1YmxpYzoKICAgICAgICAgc3dpdGNoIChvcGNvZGUpIHsKICAgICAgICAgY2FzZSBKdW1wOgog
ICAgICAgICBjYXNlIEJyYW5jaDoKKyAgICAgICAgY2FzZSBMZWFwT2ZGYWl0aDoKICAgICAgICAg
Y2FzZSBSZXR1cm46CiAgICAgICAgIGNhc2UgT29wczoKICAgICAgICAgICAgIHJldHVybiB0cnVl
OwotICAgICAgICBjYXNlIFN3aXRjaDogCisgICAgICAgIGNhc2UgU3dpdGNoOgogICAgICAgICAg
ICAgLy8gVGhpcyBpcyBoZXJlIGJlY2F1c2UgU3dpdGNoVmFsdWUgaXMgYSBzdWJjbGFzcyBvZiBD
b250cm9sVmFsdWUsIHNvIHdlIHdhbnQKICAgICAgICAgICAgIC8vIHN3aXRjaFZhbHVlLT5hczxD
b250cm9sVmFsdWU+KCkgdG8gcmV0dXJuIG5vbi1udWxsLgogICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CkBAIC03Nyw3ICs3OCwxMCBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgYm9vbCByZXBsYWNl
U3VjY2Vzc29yKEJhc2ljQmxvY2sqIGZyb20sIEJhc2ljQmxvY2sqIHRvKTsKLQorICAgIAorICAg
IC8vIFRoaXMgaXMgb25seSB2YWxpZCBmb3IgTGVhcE9mRmFpdGguCisgICAgdm9pZCBhcHBlbmRT
dWNjZXNzb3IoQmFzaWNCbG9jayopOworICAgIAogICAgIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYg
dGFrZW4oKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUKG9wY29kZSgpID09IEp1bXAgfHwg
b3Bjb2RlKCkgPT0gQnJhbmNoKTsKQEAgLTEyOCwxMSArMTMyLDExIEBAIHByaXZhdGU6CiAgICAg
ICAgIEFTU0VSVChvcGNvZGUgPT0gT29wcyk7CiAgICAgfQogCi0gICAgLy8gVXNlIHRoaXMgZm9y
IFJldHVybi4KKyAgICAvLyBVc2UgdGhpcyBmb3IgUmV0dXJuIGFuZCBMZWFwT2ZGYWl0aC4KICAg
ICBDb250cm9sVmFsdWUoT3Bjb2RlIG9wY29kZSwgT3JpZ2luIG9yaWdpbiwgVmFsdWUqIHJlc3Vs
dCkKICAgICAgICAgOiBWYWx1ZShDaGVja2VkT3Bjb2RlLCBvcGNvZGUsIFZvaWQsIG9yaWdpbiwg
cmVzdWx0KQogICAgIHsKLSAgICAgICAgQVNTRVJUKG9wY29kZSA9PSBSZXR1cm4pOworICAgICAg
ICBBU1NFUlQob3Bjb2RlID09IFJldHVybiB8fCBvcGNvZGUgPT0gTGVhcE9mRmFpdGgpOwogICAg
IH0KIAogICAgIC8vIFVzZSB0aGlzIGZvciBKdW1wLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzRGF0YVNlY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM0RhdGFTZWN0aW9uLmNwcAkocmV2aXNpb24gMjAxMjg5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzRGF0YVNlY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMxLDcgKzMx
LDcgQEAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCiBEYXRhU2VjdGlvbjo6RGF0
YVNlY3Rpb24oc2l6ZV90IHNpemUpCi0gICAgOiBtX2RhdGEoZmFzdE1hbGxvYyhzaXplKSkKKyAg
ICA6IG1fZGF0YShmYXN0WmVyb2VkTWFsbG9jKHNpemUpKQogICAgICwgbV9zaXplKHNpemUpCiB7
CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlck1hY3Jvcy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJNYWNyb3MuY3BwCShy
ZXZpc2lvbiAyMDEyODkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlck1hY3Jv
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMjc1LDggKzI3NSw2MSBAQCBwcml2YXRlOgogICAgICAgICBj
b25zdCBWZWN0b3I8U3dpdGNoQ2FzZT4mIGNhc2VzLCB1bnNpZ25lZCBzdGFydCwgYm9vbCBoYXJk
U3RhcnQsIHVuc2lnbmVkIGVuZCwKICAgICAgICAgQmFzaWNCbG9jayogYmVmb3JlKQogICAgIHsK
LSAgICAgICAgLy8gRklYTUU6IEFkZCB0YWJsZS1iYXNlZCBzd2l0Y2ggbG93ZXJpbmcuCi0gICAg
ICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTExNDEKKyAg
ICAgICAgVmFsdWUqIGNoaWxkID0gbV92YWx1ZS0+Y2hpbGQoMCk7CisgICAgICAgIFR5cGUgdHlw
ZSA9IGNoaWxkLT50eXBlKCk7CisgICAgICAgIEZyZXF1ZW50ZWRCbG9jayBmYWxsVGhyb3VnaCA9
IG1fdmFsdWUtPmFzPFN3aXRjaFZhbHVlPigpLT5mYWxsVGhyb3VnaCgpOworICAgICAgICAKKyAg
ICAgICAgLy8gSXQncyBhIGdvb2QgaWRlYSB0byB1c2UgYSB0YWJsZS1iYXNlZCBzd2l0Y2ggaW4g
c29tZSBjYXNlczogdGhlIG51bWJlciBvZiBjYXNlcyBoYXMgdG8gYmUKKyAgICAgICAgLy8gbGFy
Z2UgZW5vdWdoIGFuZCB0aGV5IGhhdmUgdG8gYmUgZGVuc2UgZW5vdWdoLiBUaGlzIGNvdWxkIHBy
b2JhYmx5IGJlIGltcHJvdmVkIGEgbG90LiBGb3IKKyAgICAgICAgLy8gZXhhbXBsZSwgd2UgY291
bGQgc3RpbGwgdXNlIGEganVtcCB0YWJsZSBpbiBjYXNlcyB3aGVyZSB0aGUgaW5wdXRzIGFyZSBz
cGFyc2Ugc28gbG9uZyBhcyB3ZQorICAgICAgICAvLyBzaGlmdCBvZmYgdGhlIHVuaW50ZXJlc3Rp
bmcgYml0cy4gT24gdGhlIG90aGVyIGhhbmQsIGl0J3Mgbm90IGNsZWFyIHRoYXQgdGhpcyB3b3Vs
ZAorICAgICAgICAvLyBhY3R1YWxseSBiZSBhbnkgYmV0dGVyIHRoYW4gd2hhdCB3ZSBoYXZlIGRv
bmUgaGVyZSBhbmQgaXQncyBub3QgY2xlYXIgdGhhdCBpdCB3b3VsZCBiZQorICAgICAgICAvLyBi
ZXR0ZXIgdGhhbiBhIGJpbmFyeSBzd2l0Y2guCisgICAgICAgIGNvbnN0IHVuc2lnbmVkIG1pbkNh
c2VzRm9yVGFibGUgPSA3OworICAgICAgICBjb25zdCB1bnNpZ25lZCBkZW5zaXR5TGltaXQgPSA0
OworICAgICAgICBpZiAoZW5kIC0gc3RhcnQgPj0gbWluQ2FzZXNGb3JUYWJsZSkgeworICAgICAg
ICAgICAgaW50NjRfdCBmaXJzdFZhbHVlID0gY2FzZXNbc3RhcnRdLmNhc2VWYWx1ZSgpOworICAg
ICAgICAgICAgaW50NjRfdCBsYXN0VmFsdWUgPSBjYXNlc1tlbmQgLSAxXS5jYXNlVmFsdWUoKTsK
KyAgICAgICAgICAgIGlmICgobGFzdFZhbHVlIC0gZmlyc3RWYWx1ZSArIDEpIC8gY2FzZXMuc2l6
ZSgpIDwgcmVxdWlyZWREZW5zaXR5KSB7CisgICAgICAgICAgICAgICAgQmFzaWNCbG9jayogc3dp
dGNoQmxvY2sgPSBtX2Jsb2NrSW5zZXJ0aW9uU2V0Lmluc2VydEFmdGVyKG1fYmxvY2spOworICAg
ICAgICAgICAgICAgIFZhbHVlKiBpbmRleCA9IGJlZm9yZS0+YXBwZW5kTmV3PFZhbHVlPigKKyAg
ICAgICAgICAgICAgICAgICAgbV9wcm9jLCBTdWIsIG1fb3JpZ2luLCBjaGlsZCwKKyAgICAgICAg
ICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmRJbnRDb25zdGFudChtX3Byb2MsIG1fb3JpZ2luLCB0
eXBlLCBmaXJzdFZhbHVlKSk7CisgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBBYm92ZSwgbV9vcmlnaW4s
IGluZGV4LAorICAgICAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZEludENvbnN0YW50KG1f
cHJvYywgbV9wcmlnaW4sIHR5cGUsIGxhc3RWYWx1ZSAtIGZpcnN0VmFsdWUpLAorICAgICAgICAg
ICAgICAgICAgICBGcmVxdWVudGVkQmxvY2soc3dpdGNoQmxvY2spLCBmYWxsVGhyb3VnaCk7Cisg
ICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgc2l6ZV90IHRhYmxlU2l6ZSA9IGxhc3RW
YWx1ZSAtIGZpcnN0VmFsdWUgKyAxOworICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29k
ZVB0cioganVtcFRhYmxlID0gYml0d2lzZV9jYXN0PE1hY3JvQXNzZW1ibGVyQ29kZVB0cio+KAor
ICAgICAgICAgICAgICAgICAgICBtX3Byb2MuYWRkRGF0YVNlY3Rpb24oc2l6ZW9mKE1hY3JvQXNz
ZW1ibGVyQ29kZVB0cikgKiB0YWJsZVNpemUpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAg
ICAgICAgICBWYWx1ZSogYmFzZSA9IHN3aXRjaEJsb2NrLT5hcHBlbmRJbnRDb25zdGFudCgKKyAg
ICAgICAgICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwgcG9pbnRlclR5cGUoKSwgYml0d2lz
ZV9jYXN0PGludHB0cl90PihqdW1wVGFibGUpKTsKKyAgICAgICAgICAgICAgICBpZiAoaW5kZXgt
PnR5cGUoKSAhPSBiYXNlLT50eXBlKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGluZGV4
LT50eXBlKCkgPT0gSW50MzIpCisgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9IHN3aXRj
aEJsb2NrLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgWkV4dDMyLCBtX29yaWdpbiwgaW5kZXgp
OworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICBpbmRl
eCA9IHN3aXRjaEJsb2NrLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgVHJ1bmMsIG1fb3JpZ2lu
LCBpbmRleCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFZhbHVlKiBwdHIg
PSBzd2l0Y2hCbG9jay0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIEFkZCwgbV9vcmlnaW4sIGJh
c2UsIGluZGV4KTsKKyAgICAgICAgICAgICAgICBWYWx1ZSoganVtcFRhcmdldCA9CisgICAgICAg
ICAgICAgICAgICAgIHN3aXRjaEJsb2NrLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KG1fcHJvYywg
TG9hZCwgcG9pbnRlclR5cGUoKSwgbV9vcmlnaW4sIHB0cik7CisgICAgICAgICAgICAgICAgQ29u
dHJvbFZhbHVlKiBsZWFwT2ZGYWl0aCA9CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaEJsb2Nr
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihtX3Byb2MsIExlYXBPZkZhaXRoLCBtX29yaWdpbiwg
anVtcFRhcmdldCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgZm9yICh1bnNp
Z25lZCBpID0gc3RhcnQ7IGkgPCBlbmQ7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBCYXNp
Y0Jsb2NrKiBibG9jayA9IGNhc2VzW2ldLnRhcmdldEJsb2NrKCk7CisgICAgICAgICAgICAgICAg
ICAgIGxlYXBPZkZhaXRoLT5hZGRTdWNjZXNzb3IoYmxvY2spOworICAgICAgICAgICAgICAgICAg
ICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIqIGp1bXBUYWJsZVB0ciA9IGp1bXBUYWJsZSArIGkgLSBz
dGFydDsKKyAgICAgICAgICAgICAgICAgICAgYmxvY2stPmFkZENhbGxiYWNrKAorICAgICAgICAg
ICAgICAgICAgICAgICAgWz1dIChNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY29kZVB0cikgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICpqdW1wVGFibGVQdHIgPSBjb2RlUHRyOworICAgICAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgICAgICAKICAgICAgICAgLy8g
U2VlIGNvbW1lbnRzIGluIGppdC9CaW5hcnlTd2l0Y2guY3BwIGZvciBhIGp1c3RpZmljYXRpb24g
b2YgdGhpcyBhbGdvcml0aG0uIFRoZSBvbmx5CiAgICAgICAgIC8vIHRoaW5nIHdlIGRvIGRpZmZl
cmVudGx5IGlzIHRoYXQgd2UgZG9uJ3QgdXNlIHJhbmRvbW5lc3MuCkBAIC0zMDcsMjIgKzM2MCwx
OSBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCiAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgQnJhbmNoLCBtX29yaWdpbiwKICAg
ICAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+KAotICAgICAgICAgICAg
ICAgICAgICAgICAgbV9wcm9jLCBFcXVhbCwgbV9vcmlnaW4sIG1fdmFsdWUtPmNoaWxkKDApLAor
ICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBFcXVhbCwgbV9vcmlnaW4sIGNoaWxkLAog
ICAgICAgICAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmRJbnRDb25zdGFudCgKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLCBtX3ZhbHVlLT5jaGlsZCgw
KS0+dHlwZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgbV9vcmlnaW4s
IHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZXNbc3RhcnQgKyBpXS5jYXNl
VmFsdWUoKSkpLAogICAgICAgICAgICAgICAgICAgICBjYXNlc1tzdGFydCArIGldLnRhcmdldCgp
LCBGcmVxdWVudGVkQmxvY2sobmV4dENoZWNrKSk7CiAKICAgICAgICAgICAgICAgICBiZWZvcmUg
PSBuZXh0Q2hlY2s7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGlmIChhbGxDb25zZWN1
dGl2ZSkgewotICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
Ci0gICAgICAgICAgICAgICAgICAgIG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIGNhc2VzW2VuZCAt
IDFdLnRhcmdldCgpKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgYmVm
b3JlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgICAgICAgICAgICAgbV9wcm9j
LCBKdW1wLCBtX29yaWdpbiwgbV92YWx1ZS0+YXM8U3dpdGNoVmFsdWU+KCktPmZhbGxUaHJvdWdo
KCkpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGFsbENvbnNlY3V0aXZlKQorICAg
ICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4obV9wcm9jLCBKdW1w
LCBtX29yaWdpbiwgY2FzZXNbZW5kIC0gMV0udGFyZ2V0KCkpOworICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4obV9wcm9jLCBK
dW1wLCBtX29yaWdpbiwgZmFsbFRocm91Z2gpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CiAKQEAgLTMzNCw5ICszODQsOSBAQCBwcml2YXRlOgogICAgICAgICBiZWZvcmUtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAogICAgICAgICAgICAgbV9wcm9jLCBCcmFuY2gsIG1fb3JpZ2lu
LAogICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+KAotICAgICAgICAgICAgICAg
IG1fcHJvYywgTGVzc1RoYW4sIG1fb3JpZ2luLCBtX3ZhbHVlLT5jaGlsZCgwKSwKKyAgICAgICAg
ICAgICAgICBtX3Byb2MsIExlc3NUaGFuLCBtX29yaWdpbiwgY2hpbGQsCiAgICAgICAgICAgICAg
ICAgYmVmb3JlLT5hcHBlbmRJbnRDb25zdGFudCgKLSAgICAgICAgICAgICAgICAgICAgbV9wcm9j
LCBtX29yaWdpbiwgbV92YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSwKKyAgICAgICAgICAgICAgICAg
ICAgbV9wcm9jLCBtX29yaWdpbiwgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgY2FzZXNbbWVk
aWFuSW5kZXhdLmNhc2VWYWx1ZSgpKSksCiAgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2sobGVm
dCksIEZyZXF1ZW50ZWRCbG9jayhyaWdodCkpOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNMb3dlclRvQWlyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNMb3dlclRvQWlyLmNwcAkocmV2aXNpb24gMjAxMjg5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg2LDggKzg2
LDE0IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcnVuKCkKICAgICB7Ci0gICAgICAgIGZvciAoQjM6
OkJhc2ljQmxvY2sqIGJsb2NrIDogbV9wcm9jZWR1cmUpCi0gICAgICAgICAgICBtX2Jsb2NrVG9C
bG9ja1tibG9ja10gPSBtX2NvZGUuYWRkQmxvY2soYmxvY2stPmZyZXF1ZW5jeSgpKTsKKyAgICAg
ICAgZm9yIChCMzo6QmFzaWNCbG9jayogYmxvY2sgOiBtX3Byb2NlZHVyZSkgeworICAgICAgICAg
ICAgQWlyOjpCYXNpY0Jsb2NrKiBhaXJCbG9jayA9IG1fY29kZS5hZGRCbG9jayhibG9jay0+ZnJl
cXVlbmN5KCkpOworICAgICAgICAgICAgYmxvY2stPmZvckVhY2hDYWxsYmFjaygKKyAgICAgICAg
ICAgICAgICBbJl0gKFJlZlB0cjx2b2lkKE1hY3JvQXNzZW1ibGVyQ29kZVB0cik+IGNhbGxiYWNr
KSB7CisgICAgICAgICAgICAgICAgICAgIGFpckJsb2NrLT5hZGRDYWxsYmFja1Rhc2soY2FsbGJh
Y2spOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgbV9ibG9ja1RvQmxvY2tbYmxv
Y2tdID0gYWlyQmxvY2s7CisgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIGZvciAoVmFsdWUq
IHZhbHVlIDogbV9wcm9jZWR1cmUudmFsdWVzKCkpIHsKICAgICAgICAgICAgIHN3aXRjaCAodmFs
dWUtPm9wY29kZSgpKSB7CkBAIC0yNDQxLDYgKzI0NDcsMTYgQEAgcHJpdmF0ZToKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorICAgICAgICAgICAgCisgICAg
ICAgIGNhc2UgQjM6OkxlYXBPZkZhaXRoOiB7CisgICAgICAgICAgICBBcmdQcm9taXNlIGFkZHIg
PSBsb2FkUHJvbWlzZShtX3ZhbHVlLT5jaGlsZCgwKSk7CisgICAgICAgICAgICBpZiAoaXNWYWxp
ZEZvcm0oQWlyOjpMZWFwT2ZGYWl0aCwgYWRkci5raW5kKCkpKSB7CisgICAgICAgICAgICAgICAg
YXBwZW5kKEFpcjo6TGVhcE9mRmFpdGgsIGFkZHIuY29uc3VtZSgqdGhpcykpOworICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGFwcGVuZChBaXI6Okxl
YXBPZkZhaXRoLCB0bXAobV92YWx1ZS0+Y2hpbGQoMCkpKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQogCiAgICAgICAgIGNhc2UgQjM6Ok9vcHM6IHsKICAgICAgICAgICAgIGFwcGVu
ZChBaXI6Ok9vcHMpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuY3BwCShy
ZXZpc2lvbiAyMDEyODkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yOTAsNiArMjkwLDkgQEAgdm9pZCBwcmludEludGVybmFsKFBy
aW50U3RyZWFtJiBvdXQsIE9wYwogICAgIGNhc2UgU3dpdGNoOgogICAgICAgICBvdXQucHJpbnQo
IlN3aXRjaCIpOwogICAgICAgICByZXR1cm47CisgICAgY2FzZSBMZWFwT2ZGYWl0aDoKKyAgICAg
ICAgb3V0LnByaW50KCJMZWFwT2ZGYWl0aCIpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBS
ZXR1cm46CiAgICAgICAgIG91dC5wcmludCgiUmV0dXJuIik7CiAgICAgICAgIHJldHVybjsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5oCShyZXZpc2lvbiAyMDEyODkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjE2
LDYgKzIxNiwxMyBAQCBlbnVtIE9wY29kZSA6IGludDE2X3QgewogCiAgICAgLy8gU3dpdGNoLiBT
d2l0Y2hlcyBvdmVyIGVpdGhlciBJbnQzMiBvciBJbnQ2NC4gVXNlcyB0aGUgU3dpdGNoVmFsdWUg
Y2xhc3MuCiAgICAgU3dpdGNoLAorICAgIAorICAgIC8vIEp1bXAgdG8gdGhlIGdpdmVuIGFkZHJl
c3MuIFRoZSBjb21waWxlciBhc3N1bWVzIHRoYXQgdGhpcyB3aWxsIGp1bXAgdG8gb25lIG9mIHRo
ZSBzdXBwbGllZAorICAgIC8vIHN1Y2Nlc3NvcnMsIGJ1dCB3aWxsIG1ha2UgYWJzb2x1dGVseSBu
byBhc3N1bXB0aW9ucyBhYm91dCB3aGljaC4gSXQncyBlbnRpcmVseSB1cCB0byB0aGUgdXNlcgor
ICAgIC8vIHRvIGFycmFuZ2UgZm9yIHRoZSBqdW1wIHRvIGp1bXAgdG8gb25lIG9mIHRob3NlIHN1
Y2Nlc3NvcnMuIFRoaXMgY2Fubm90IHRyYXAgb3IgZG8gYW55dGhpbmcgYnV0CisgICAgLy8ganVt
cCB0byBvbmUgb2YgdGhlIHN1Y2Nlc3NvcnM7IGlmIGl0IGRvZXMgYW55dGhpbmcgZWxzZSB0aGVu
IGRlbW9ucyB3aWxsIGNvbWUgb3V0IG9mIHRoZSB1c2VyJ3MKKyAgICAvLyBub3NlLiAKKyAgICBM
ZWFwT2ZGYWl0aCwKIAogICAgIC8vIFJldHVybi4gTm90ZSB0aGF0IEIzIHByb2NlZHVyZXMgZG9u
J3Qga25vdyB0aGVpciByZXR1cm4gdHlwZSwgc28gdGhpcyBjYW4ganVzdCByZXR1cm4gYW55CiAg
ICAgLy8gdHlwZS4gVXNlcyB0aGUgQ29udHJvbFZhbHVlIGNsYXNzLgpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmgJKHJldmlzaW9uIDIwMTI4OSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTgsNiAr
MjE4LDkgQEAgcHVibGljOgogCiAgICAgY29uc3QgY2hhciogbGFzdFBoYXNlTmFtZSgpIGNvbnN0
IHsgcmV0dXJuIG1fbGFzdFBoYXNlTmFtZTsgfQogCisgICAgLy8gQWxsb2NhdGVzIGEgc2xhYiBv
ZiBtZW1vcnkgdGhhdCB3aWxsIGJlIGtlcHQgYWxpdmUgYnkgYW55b25lIHdobyBrZWVwcyB0aGUg
cmVzdWx0aW5nIGNvZGUKKyAgICAvLyBhbGl2ZS4gR3JlYXQgZm9yIGNvbXBpbGVyLWdlbmVyYXRl
ZCBkYXRhIHNlY3Rpb25zLCBsaWtlIHN3aXRjaCBqdW1wIHRhYmxlcyBhbmQgY29uc3RhbnQgcG9v
bHMuCisgICAgLy8gVGhpcyByZXR1cm5zIG1lbW9yeSB0aGF0IGhhcyBiZWVuIHplcm8taW5pdGlh
bGl6ZWQuCiAgICAgdm9pZCogYWRkRGF0YVNlY3Rpb24oc2l6ZV90IHNpemUpOwogCiAgICAgT3Bh
cXVlQnlwcm9kdWN0cyYgYnlwcm9kdWN0cygpIHsgcmV0dXJuICptX2J5cHJvZHVjdHM7IH0KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbGlkYXRlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWxpZGF0ZS5jcHAJKHJldmlzaW9uIDIwMTI4
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbGlkYXRlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzg3LDYgKzM4NywxMSBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgVkFMSURB
VEUoaXNJbnQodmFsdWUtPmNoaWxkKDApLT50eXBlKCkpLCAoIkF0ICIsICp2YWx1ZSkpOwogICAg
ICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgPT0gVm9pZCwgKCJBdCAiLCAqdmFs
dWUpKTsKICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgTGVhcE9mRmFp
dGg6CisgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPm51bUNoaWxkcmVuKCkgPT0gMSwg
KCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+Y2hpbGQo
MCktPnR5cGUoKSA9PSBwb2ludGVyVHlwZSgpLCAoIkF0ICIsICp2YWx1ZSkpOworICAgICAgICAg
ICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgPT0gVm9pZCwgKCJBdCAiLCAqdmFsdWUpKTsK
KyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgVkFM
SURBVEUoISh2YWx1ZS0+ZWZmZWN0cygpLndyaXRlcyAmJiB2YWx1ZS0+a2V5KCkpLCAoIkF0ICIs
ICp2YWx1ZSkpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmNwcAkocmV2aXNp
b24gMjAxMjg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC01NDAsNiArNTQwLDcgQEAgRWZmZWN0cyBWYWx1ZTo6ZWZmZWN0cygpIGNv
bnN0CiAgICAgY2FzZSBKdW1wOgogICAgIGNhc2UgQnJhbmNoOgogICAgIGNhc2UgU3dpdGNoOgor
ICAgIGNhc2UgTGVhcE9mRmFpdGg6CiAgICAgY2FzZSBSZXR1cm46CiAgICAgY2FzZSBPb3BzOgog
ICAgICAgICByZXN1bHQudGVybWluYWwgPSB0cnVlOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci9BaXJCYXNpY0Jsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvYWlyL0FpckJhc2ljQmxvY2suY3BwCShyZXZpc2lvbiAyMDEyODkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckJhc2ljQmxvY2suY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC01MCw2ICs1MCwxMSBAQCBib29sIEJhc2ljQmxvY2s6OnJlcGxhY2VQcmVkZWNlc3Nv
cihCYXNpCiAgICAgcmV0dXJuIEIzOjpyZXBsYWNlUHJlZGVjZXNzb3IodGhpcywgZnJvbSwgdG8p
OwogfQogCit2b2lkIEJhc2ljQmxvY2s6OmFkZENhbGxiYWNrVGFzayhSZWZQdHI8U2hhcmVkVGFz
azx2b2lkKE1hY3JvQXNzZW1ibGVyQ29kZVB0cik+PiBjYWxsYmFjaykKK3sKKyAgICBlbnN1cmVS
YXJlRGF0YSgpLmNhbGxiYWNrcy5hcHBlbmQoY2FsbGJhY2spOworfQorCiB2b2lkIEJhc2ljQmxv
Y2s6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHsKICAgICBvdXQucHJpbnQoZHVtcFBy
ZWZpeCwgbV9pbmRleCk7CkBAIC04Miw2ICs4NywxMyBAQCBCYXNpY0Jsb2NrOjpCYXNpY0Jsb2Nr
KHVuc2lnbmVkIGluZGV4LCBkCiB7CiB9CiAKK0Jhc2ljQmxvY2s6OlJhcmVEYXRhJiBCYXNpY0Js
b2NrOjplbnN1cmVSYXJlRGF0YSgpCit7CisgICAgaWYgKCFtX3JhcmVEYXRhKQorICAgICAgICBt
X3JhcmVEYXRhID0gc3RkOjptYWtlX3VuaXF1ZTxSYXJlRGF0YT4oKTsKKyAgICByZXR1cm4gKm1f
cmFyZURhdGE7Cit9CisKIH0gfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzOjpBaXIKIAogI2VuZGlm
IC8vIEVOQUJMRShCM19KSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fp
ckJhc2ljQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0FpckJhc2ljQmxvY2suaAkocmV2aXNpb24gMjAxMjg5KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci9BaXJCYXNpY0Jsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTEyMyw3ICsxMjMs
MjQgQEAgcHVibGljOgogICAgIGJvb2wgY29udGFpbnNQcmVkZWNlc3NvcihCYXNpY0Jsb2NrKiBw
cmVkZWNlc3NvcikgY29uc3QgeyByZXR1cm4gbV9wcmVkZWNlc3NvcnMuY29udGFpbnMocHJlZGVj
ZXNzb3IpOyB9CiAKICAgICBkb3VibGUgZnJlcXVlbmN5KCkgY29uc3QgeyByZXR1cm4gbV9mcmVx
dWVuY3k7IH0KLQorICAgIAorICAgIHZvaWQgYWRkQ2FsbGJhY2tUYXNrKFJlZlB0cjxTaGFyZWRU
YXNrPHZvaWQoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKT4+KTsKKyAgICAKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBGdW5jPgorICAgIHZvaWQgYWRkQ2FsbGJhY2soRnVuYyYmIGZ1bmMpCisgICAgewor
ICAgICAgICBhZGRDYWxsYmFja1Rhc2soY3JlYXRlU2hhcmVkVGFzazx2b2lkKE1hY3JvQXNzZW1i
bGVyQ29kZVB0cik+KHN0ZDo6Zm9yd2FyZDxGdW5jPihmdW5jKSkpOworICAgIH0KKyAgICAKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jPgorICAgIHZvaWQgZm9yRWFjaENhbGxiYWNrKGNvbnN0
IEZ1bmMmIGZ1bmMpIGNvbnN0CisgICAgeworICAgICAgICBpZiAoIW1fcmFyZURhdGEpCisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgY2FsbGJhY2sgOiBtX3Jh
cmVEYXRhLT5jYWxsYmFja3MpCisgICAgICAgICAgICBmdW5jKGNhbGxiYWNrKTsKKyAgICB9Cisg
ICAgCiAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAgICAgdm9pZCBkZWVwRHVt
cChQcmludFN0cmVhbSYpIGNvbnN0OwogCkBAIC0xMzYsMTIgKzE1MywyMCBAQCBwcml2YXRlOgog
ICAgIGZyaWVuZCBjbGFzcyBJbnNlcnRpb25TZXQ7CiAgICAgCiAgICAgQmFzaWNCbG9jayh1bnNp
Z25lZCBpbmRleCwgZG91YmxlIGZyZXF1ZW5jeSk7CisgICAgCisgICAgUmFyZURhdGEmIGVuc3Vy
ZVJhcmVEYXRhKCk7CiAKICAgICB1bnNpZ25lZCBtX2luZGV4OwogICAgIEluc3RMaXN0IG1faW5z
dHM7CiAgICAgU3VjY2Vzc29yTGlzdCBtX3N1Y2Nlc3NvcnM7CiAgICAgUHJlZGVjZXNzb3JMaXN0
IG1fcHJlZGVjZXNzb3JzOwogICAgIGRvdWJsZSBtX2ZyZXF1ZW5jeTsKKyAgICAKKyAgICBzdHJ1
Y3QgUmFyZURhdGEgeworICAgICAgICBWZWN0b3I8UmVmUHRyPFNoYXJlZFRhc2s8dm9pZChNYWNy
b0Fzc2VtYmxlckNvZGVQdHIpPj4+IGNhbGxiYWNrczsKKyAgICB9OworCisgICAgc3RkOjp1bmlx
dWVfcHRyPFJhcmVEYXRhPiBtX3JhcmVEYXRhOwogfTsKIAogY2xhc3MgRGVlcEJhc2ljQmxvY2tE
dW1wIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5oCShyZXZpc2lv
biAyMDEyODkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuaAkod29y
a2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkFpclNwZWNpYWwuaCIKICNp
bmNsdWRlICJBaXJTdGFja1Nsb3QuaCIKICNpbmNsdWRlICJBaXJUbXAuaCIKKyNpbmNsdWRlICJC
M0luZGV4TWFwLmgiCiAjaW5jbHVkZSAiQjNTcGFyc2VDb2xsZWN0aW9uLmgiCiAjaW5jbHVkZSAi
UmVnaXN0ZXJBdE9mZnNldExpc3QuaCIKICNpbmNsdWRlICJTdGFja0FsaWdubWVudC5oIgpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0ZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0ZS5jcHAJKHJldmlz
aW9uIDIwMTI4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODMsNyArMTgzLDE3IEBAIHZvaWQgZ2VuZXJhdGUoQ29k
ZSYgY29kZSwgQ0NhbGxIZWxwZXJzJiAKIAogICAgIGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiBj
b2RlKSB7CiAgICAgICAgIGJsb2NrSnVtcHNbYmxvY2tdLmxpbmsoJmppdCk7Ci0gICAgICAgIGJs
b2NrTGFiZWxzW2Jsb2NrXSA9IGppdC5sYWJlbCgpOworICAgICAgICBDQ2FsbEhlbHBlcnM6Okxh
YmVsIGxhYmVsID0gaml0LmxhYmVsKCk7CisgICAgICAgIGJsb2NrTGFiZWxzW2Jsb2NrXSA9IGxh
YmVsOworICAgICAgICAKKyAgICAgICAgYmxvY2stPmZvckVhY2hDYWxsYmFjaygKKyAgICAgICAg
ICAgIFsmXSAoUmVmUHRyPFNoYXJlZFRhc2s8dm9pZChNYWNyb0Fzc2VtYmxlckNvZGVQdHIpPj4g
Y2FsbGJhY2spIHsKKyAgICAgICAgICAgICAgICBqaXQuYWRkTGlua1Rhc2soCisgICAgICAgICAg
ICAgICAgICAgIFs9XSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikgeworICAgICAgICAgICAgICAg
ICAgICAgICAgY2FsbGJhY2stPnJ1bihsaW5rQnVmZmVyLmxvY2F0aW9uT2YobGFiZWwpKTsKKyAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgCiAgICAgICAg
IEFTU0VSVChibG9jay0+c2l6ZSgpID49IDEpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgYmxvY2stPnNpemUoKSAtIDE7ICsraSkgewogICAgICAgICAgICAgSW5zdCYgaW5zdCA9
IGJsb2NrLT5hdChpKTsKQEAgLTIxNSwyMyArMjI1LDI0IEBAIHZvaWQgZ2VuZXJhdGUoQ29kZSYg
Y29kZSwgQ0NhbGxIZWxwZXJzJiAKICAgICAgICAgICAgIGFkZEl0ZW0oYmxvY2stPmxhc3QoKSk7
CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQotCisgICAgICAgIAogICAgICAgICBD
Q2FsbEhlbHBlcnM6Okp1bXAganVtcCA9IGJsb2NrLT5sYXN0KCkuZ2VuZXJhdGUoaml0LCBjb250
ZXh0KTsKLSAgICAgICAgc3dpdGNoIChibG9jay0+bnVtU3VjY2Vzc29ycygpKSB7Ci0gICAgICAg
IGNhc2UgMDoKLSAgICAgICAgICAgIEFTU0VSVCghanVtcC5pc1NldCgpKTsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICBjYXNlIDE6Ci0gICAgICAgICAgICBsaW5rKGp1bXAsIGJsb2NrLT5z
dWNjZXNzb3JCbG9jaygwKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAyOgot
ICAgICAgICAgICAgbGluayhqdW1wLCBibG9jay0+c3VjY2Vzc29yQmxvY2soMCkpOwotICAgICAg
ICAgICAgaWYgKGJsb2NrLT5zdWNjZXNzb3JCbG9jaygxKSAhPSBjb2RlLmZpbmROZXh0QmxvY2so
YmxvY2spKQotICAgICAgICAgICAgICAgIGxpbmsoaml0Lmp1bXAoKSwgYmxvY2stPnN1Y2Nlc3Nv
ckJsb2NrKDEpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAg
ICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAvLyBUaGUganVtcCB3b24ndCBiZSBzZXQgZm9yIExlYXBPZkZhaXRoIGJlY2F1c2Ug
aXQgbGV0cyBpdHMgZmFpdGggaW4gdGhlIGFkZHJlc3Mgb3BlcmFuZAorICAgICAgICAvLyBndWlk
ZSB3aGVyZSBpdCBqdW1wcy4gSXQgd29uJ3QgYmUgc2V0IGZvciBPb3BzIGJlY2F1c2UgdGhlbiBp
dCB3b24ndCBoYXZlIGFueSBzdWNjZXNzb3JzLgorICAgICAgICBpZiAoanVtcC5pc1NldCgpKSB7
CisgICAgICAgICAgICBzd2l0Y2ggKGJsb2NrLT5udW1TdWNjZXNzb3JzKCkpIHsKKyAgICAgICAg
ICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICBsaW5rKGp1bXAsIGJsb2NrLT5zdWNjZXNzb3JC
bG9jaygwKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDI6Cisg
ICAgICAgICAgICAgICAgbGluayhqdW1wLCBibG9jay0+c3VjY2Vzc29yQmxvY2soMCkpOworICAg
ICAgICAgICAgICAgIGlmIChibG9jay0+c3VjY2Vzc29yQmxvY2soMSkgIT0gY29kZS5maW5kTmV4
dEJsb2NrKGJsb2NrKSkKKyAgICAgICAgICAgICAgICAgICAgbGluayhqaXQuanVtcCgpLCBibG9j
ay0+c3VjY2Vzc29yQmxvY2soMSkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAg
ICAgIGFkZEl0ZW0oYmxvY2stPmxhc3QoKSk7CiAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bjb2Rlcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzCShyZXZpc2lvbiAyMDEyODkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzCSh3b3JraW5n
IGNvcHkpCkBAIC04MzUsNiArODM1LDEzIEBAIE1vdmVEb3VibGVDb25kaXRpb25hbGx5RmxvYXQg
VTpHOjMyLCBVOkYKIAogSnVtcCAvYnJhbmNoCiAKKyMgVGhpcyBtYXNxdWVyYWRlcyBhcyBhIG5v
bi1icmFuY2ggdGVybWluYWwgYmVjYXVzZSBpdCBkb2Vzbid0IG5lZWQgbGlua2luZy4gIkJyYW5j
aCIgaW4gdGhpcyBjb250ZXh0CisjIGp1c3QgbWVhbnMgdGhhdCBpdCdzIGEgdGVybWluYWwgdGhh
dCByZXR1cm5zIGEgSnVtcCB0aGF0IG5lZWRzIHRvIGJlIGxpbmtlZC4KK0xlYXBPZkZhaXRoIFU6
RzpQdHIgL3Rlcm1pbmFsCisgICAgVG1wIGFzIGp1bXAKKyAgICB4ODY6IEFkZHIgYXMganVtcAor
ICAgIHg4NjogSW5kZXggYXMganVtcAorCiBSZXQzMiBVOkc6MzIgL3JldHVybgogICAgIFRtcAog
CkluZGV4OiBXZWJzaXRlcy93ZWJraXQub3JnL2RvY3MvYjMvaW50ZXJtZWRpYXRlLXJlcHJlc2Vu
dGF0aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvd2Via2l0Lm9yZy9kb2NzL2IzL2lu
dGVybWVkaWF0ZS1yZXByZXNlbnRhdGlvbi5odG1sCShyZXZpc2lvbiAyMDEyODkpCisrKyBXZWJz
aXRlcy93ZWJraXQub3JnL2RvY3MvYjMvaW50ZXJtZWRpYXRlLXJlcHJlc2VudGF0aW9uLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTUyNiw2ICs1MjYsMTUgQEAgcGF0Y2hwb2ludC0+c2V0R2VuZXJh
dG9yKAogICAgICAgICBhbHNvIGNvbnRhaW5zIGEgZmFsbC10aHJvdWdoIHRhcmdldCBpbiBjYXNl
IHRoZSBjaGlsZCBoYXMgYSB2YWx1ZSB0aGF0IHdhc24ndCBtZW50aW9uZWQKICAgICAgICAgaW4g
dGhlIGNhc2VzIGxpc3QuICBNdXN0IHVzZSB0aGUgU3dpdGNoVmFsdWUgY2xhc3MuICBNdXN0IGFw
cGVhciBhdCB0aGUgZW5kIG9mIHRoZSBiYXNpYwogICAgICAgICBibG9jay48L2RkPgorICAgICAg
CisgICAgICA8ZHQ+Vm9pZCBMZWFwT2ZGYWl0aChJbnRQdHIsIGJsb2Nrcy4uLik8L2R0PgorICAg
ICAgPGRkPkp1bXBzIHRvIHRoZSBnaXZlbiBhZGRyZXNzLiBUaGUgY29tcGlsZXIgd2lsbCBhc3N1
bWUgdGhhdCB0aGlzIGp1bXBzIHRvIG9uZSBvZiB0aGUgZ2l2ZW4KKyAgICAgICAgYmxvY2tzLiBU
aGUgY29tcGlsZXIgbWFrZXMgbm8gYXR0ZW1wdCB0byBwcm92ZSBvciB2YWxpZGF0ZSB0aGF0IHRo
ZSBwYXNzZWQganVtcCBhZGRyZXNzIGlzCisgICAgICAgIGFjdHVhbGx5IHRoZSBhZGRyZXNzIG9m
IGFueSBvZiB0aG9zZSBibG9ja3MuIE5vbnNlbnNpY2FsIHRoaW5ncyB3aWxsIGhhcHBlbiBpZiB0
aGUgcGFzc2VkCisgICAgICAgIGFkZHJlc3MgaXMgbm90IHRoZSBhZGRyZXNzIG9mIG9uZSBvZiB0
aGUgYmxvY2tzIGluIHRoZSBzdWNjZXNzb3IgbGlzdC4gWW91IGNhbiBhcnJhbmdlIHRvIGdldAor
ICAgICAgICB0aGUgYWRkcmVzc2VzIG9mIGJsb2NrcyB1c2luZyB0aGUgQmFzaWNCbG9jayBBUEku
IFRoaXMgaXMgdXNlZCBpbnRlcm5hbGx5IGZvciBsb3dlcmluZworICAgICAgICBTd2l0Y2ggb3Bj
b2Rlcy4gWW91IGNhbiB1c2UgaXQgZGlyZWN0bHkgZm9yIGltcGxlbWVudGluZyB0aGluZ3MgbGlr
ZSB0aHJlYWRlZAorICAgICAgICBpbnRlcnByZXRlcnMuPC9kZD4KIAogICAgICAgPGR0PlZvaWQg
UmV0dXJuKFQpPC9kdD4KICAgICAgIDxkZD5Xb3JrcyBmb3IgYW55IHR5cGUgZXhjZXB0IFZvaWQu
ICBSZXR1cm5zIHRoZSBnaXZlbiB2YWx1ZSBhbmQgdGVybWluYXRlcyB0aGUgcHJvY2VkdXJlLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279705</attachid>
            <date>2016-05-24 14:15:26 -0700</date>
            <delta_ts>2016-05-24 18:10:15 -0700</delta_ts>
            <desc>close to done</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>41095</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZD
b21tb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01h
Y3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgJKHJldmlzaW9uIDIwMTM1MCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaAkod29ya2luZyBj
b3B5KQpAQCAtMjI2Miw2ICsyMjYyLDEyIEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIu
am1wX20oYWRkcmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFzZSk7CiAgICAgfQogCisgICAgLy8gQWRk
cmVzcyBpcyBhIG1lbW9yeSBsb2NhdGlvbiBjb250YWluaW5nIHRoZSBhZGRyZXNzIHRvIGp1bXAg
dG8KKyAgICB2b2lkIGp1bXAoQmFzZUluZGV4IGFkZHJlc3MpCisgICAgeworICAgICAgICBtX2Fz
c2VtYmxlci5qbXBfbShhZGRyZXNzLm9mZnNldCwgYWRkcmVzcy5iYXNlLCBhZGRyZXNzLmluZGV4
LCBhZGRyZXNzLnNjYWxlKTsKKyAgICB9CisKIAogICAgIC8vIEFyaXRobWV0aWMgY29udHJvbCBm
bG93IG9wZXJhdGlvbnM6CiAgICAgLy8KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvWDg2QXNzZW1ibGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaAkocmV2aXNpb24gMjAxMzUwKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaAkod29ya2luZyBjb3B5KQpAQCAt
MTk4Myw2ICsxOTgzLDExIEBAIHB1YmxpYzoKICAgICAgICAgbV9mb3JtYXR0ZXIub25lQnl0ZU9w
KE9QX0dST1VQNV9FdiwgR1JPVVA1X09QX0pNUE4sIGJhc2UsIG9mZnNldCk7CiAgICAgfQogICAg
IAorICAgIHZvaWQgam1wX20oaW50IG9mZnNldCwgUmVnaXN0ZXJJRCBiYXNlLCBSZWdpc3RlcklE
IGluZGV4LCBpbnQgc2NhbGUpCisgICAgeworICAgICAgICBtX2Zvcm1hdHRlci5vbmVCeXRlT3Ao
T1BfR1JPVVA1X0V2LCBHUk9VUDVfT1BfSk1QTiwgYmFzZSwgaW5kZXgsIHNjYWxlLCBvZmZzZXQp
OworICAgIH0KKyAgICAKICNpZiAhQ1BVKFg4Nl82NCkKICAgICB2b2lkIGptcF9tKGNvbnN0IHZv
aWQqIGFkZHJlc3MpCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFz
aWNCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFz
aWNCbG9jay5jcHAJKHJldmlzaW9uIDIwMTM1MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM0Jhc2ljQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDksNiArMTA5LDExIEBAIHZv
aWQgQmFzaWNCbG9jazo6dXBkYXRlUHJlZGVjZXNzb3JzQWZ0ZXIKICAgICBCMzo6dXBkYXRlUHJl
ZGVjZXNzb3JzQWZ0ZXIodGhpcyk7CiB9CiAKK3ZvaWQgQmFzaWNCbG9jazo6YWRkQ2FsbGJhY2tU
YXNrKFJlZlB0cjxTaGFyZWRUYXNrPHZvaWQoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKT4+IHRhc2sp
Cit7CisgICAgZW5zdXJlUmFyZURhdGEoKS5jYWxsYmFja3MuYXBwZW5kKHRhc2spOworfQorCiB2
b2lkIEJhc2ljQmxvY2s6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHsKICAgICBvdXQu
cHJpbnQoZHVtcFByZWZpeCwgbV9pbmRleCk7CkBAIC0xMTYsMTMgKzEyMSwyNCBAQCB2b2lkIEJh
c2ljQmxvY2s6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgCiAKIHZvaWQgQmFzaWNCbG9jazo6ZGVl
cER1bXAoY29uc3QgUHJvY2VkdXJlJiBwcm9jLCBQcmludFN0cmVhbSYgb3V0KSBjb25zdAogewot
ICAgIG91dC5wcmludCgiQkIiLCAqdGhpcywgIjogOyBmcmVxdWVuY3kgPSAiLCBtX2ZyZXF1ZW5j
eSwgIlxuIik7CisgICAgb3V0LnByaW50KCJCQiIsICp0aGlzLCAiOiA7IGZyZXF1ZW5jeSA9ICIs
IG1fZnJlcXVlbmN5LCAiLCBhdCAiLCBSYXdQb2ludGVyKHRoaXMpLCAiXG4iKTsKKyAgICBmb3JF
YWNoQ2FsbGJhY2soCisgICAgICAgIFsmXSAoY29uc3QgYXV0byYgY2FsbGJhY2spIHsKKyAgICAg
ICAgICAgIGRhdGFMb2coIiAgQ2FsbGJhY2sgYXQgIiwgUmF3UG9pbnRlcihjYWxsYmFjay5nZXQo
KSksICJcbiIpOworICAgICAgICB9KTsKICAgICBpZiAocHJlZGVjZXNzb3JzKCkuc2l6ZSgpKQog
ICAgICAgICBvdXQucHJpbnQoIiAgUHJlZGVjZXNzb3JzOiAiLCBwb2ludGVyTGlzdER1bXAocHJl
ZGVjZXNzb3JzKCkpLCAiXG4iKTsKICAgICBmb3IgKFZhbHVlKiB2YWx1ZSA6ICp0aGlzKQogICAg
ICAgICBvdXQucHJpbnQoIiAgICAiLCBCMzo6ZGVlcER1bXAocHJvYywgdmFsdWUpLCAiXG4iKTsK
IH0KIAorQmFzaWNCbG9jazo6UmFyZURhdGEmIEJhc2ljQmxvY2s6OmVuc3VyZVJhcmVEYXRhKCkK
K3sKKyAgICBpZiAoIW1fcmFyZURhdGEpCisgICAgICAgIG1fcmFyZURhdGEgPSBzdGQ6Om1ha2Vf
dW5pcXVlPFJhcmVEYXRhPigpOworICAgIHJldHVybiAqbV9yYXJlRGF0YTsKK30KKwogfSB9IC8v
IG5hbWVzcGFjZSBKU0M6OkIzCiAKICNlbmRpZiAvLyBFTkFCTEUoQjNfSklUKQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2suaAkocmV2aXNpb24gMjAxMzUwKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zMiw2ICszMiw4IEBACiAjaW5jbHVkZSAiQjNPcmlnaW4uaCIKICNpbmNsdWRlICJCM1N1Y2Nl
c3NvckNvbGxlY3Rpb24uaCIKICNpbmNsdWRlICJCM1R5cGUuaCIKKyNpbmNsdWRlICJNYWNyb0Fz
c2VtYmxlckNvZGVSZWYuaCIKKyNpbmNsdWRlIDx3dGYvU2hhcmVkVGFzay5oPgogI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CkBAIC00NCw2
ICs0Niw4IEBAIGNsYXNzIFZhbHVlOwogY2xhc3MgQmFzaWNCbG9jayB7CiAgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoQmFzaWNCbG9jayk7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Cisg
ICAgCisgICAgc3RydWN0IFJhcmVEYXRhOwogcHVibGljOgogICAgIHR5cGVkZWYgVmVjdG9yPFZh
bHVlKj4gVmFsdWVMaXN0OwogICAgIHR5cGVkZWYgVmVjdG9yPEJhc2ljQmxvY2sqLCAyPiBQcmVk
ZWNlc3Nvckxpc3Q7CkBAIC0xMTYsNiArMTIwLDYwIEBAIHB1YmxpYzoKIAogICAgIGRvdWJsZSBm
cmVxdWVuY3koKSBjb25zdCB7IHJldHVybiBtX2ZyZXF1ZW5jeTsgfQogCisgICAgdm9pZCBhZGRD
YWxsYmFja1Rhc2soUmVmUHRyPFNoYXJlZFRhc2s8dm9pZChNYWNyb0Fzc2VtYmxlckNvZGVQdHIp
Pj4pOworICAgIAorICAgIC8vIEFkZCBhIGNhbGxiYWNrIHRoYXQgd2lsbCB0ZWxsIHlvdSB0aGUg
YWRkcmVzcyBvZiB0aGlzIGJhc2ljIGJsb2NrLiBUaGlzIGlzIG9ubHkgdmFsaWQgZm9yIGJhc2lj
CisgICAgLy8gYmxvY2tzIHRoYXQgd2lsbCBub3QgYmUga2lsbGVkIGJ5IHRoZSBvcHRpbWl6ZXIu
IFByZXR0eSBtdWNoIHRoZSBvbmx5IHdheSB0byBndWFyYW50ZWUgdGhhdCBhCisgICAgLy8gYmxv
Y2sgZG9lc24ndCBnZXQga2lsbGVkIGlzIHRvIHVzZSB0aGUgcm9vdCBibG9jayBvciBhIGJsb2Nr
IHRoYXQgaXMgdGhlIHN1Y2Nlc3NvciBvZiBhCisgICAgLy8gTGVhcE9mRmFpdGguIEV2ZW4gdGhl
biwgdGhlIGNvZGUgbWF5IGJlIHByb3ZlZCB1bnJlYWNoYWJsZSwgaW4gd2hpY2ggY2FzZSB0aGlz
IHdvbid0IGdldAorICAgIC8vIGNhbGxlZC4KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jPgor
ICAgIHZvaWQgYWRkQ2FsbGJhY2soRnVuYyYmIGZ1bmMpCisgICAgeworICAgICAgICBhZGRDYWxs
YmFja1Rhc2soY3JlYXRlU2hhcmVkVGFzazx2b2lkKE1hY3JvQXNzZW1ibGVyQ29kZVB0cik+KHN0
ZDo6Zm9yd2FyZDxGdW5jPihmdW5jKSkpOworICAgIH0KKyAgICAKKyAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBGdW5jPgorICAgIHZvaWQgZm9yRWFjaENhbGxiYWNrKGNvbnN0IEZ1bmMmIGZ1bmMpIGNv
bnN0CisgICAgeworICAgICAgICBpZiAoIW1fcmFyZURhdGEpCisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgY2FsbGJhY2sgOiBtX3JhcmVEYXRhLT5jYWxsYmFj
a3MpCisgICAgICAgICAgICBmdW5jKGNhbGxiYWNrKTsKKyAgICB9CisgICAgCisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgRnVuYz4KKyAgICB2b2lkIHRha2VFYWNoQ2FsbGJhY2soY29uc3QgRnVuYyYg
ZnVuYykKKyAgICB7CisgICAgICAgIGlmICghbV9yYXJlRGF0YSkKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgZm9yIChhdXRvJiBjYWxsYmFjayA6IG1fcmFyZURhdGEtPmNhbGxiYWNrcykK
KyAgICAgICAgICAgIGZ1bmMoY2FsbGJhY2spOworICAgICAgICBtX3JhcmVEYXRhLT5jYWxsYmFj
a3MuY2xlYXIoKTsKKyAgICB9CisgICAgCisgICAgLy8gSWYgYSBiYXNpYyBibG9jayBoYXMgY2Fs
bGJhY2tzLCBpdCBtZWFucyB0aGF0IHNvbWVvbmUgaW50ZW5kcyB0byB0YWtlIHRoZSBhZGRyZXNz
IG9mIHRoaXMgYmFzaWMKKyAgICAvLyBibG9jayBhbmQgdXNlIGl0IHRvIGp1bXAgZGlyZWN0bHkg
dG8gaXQgZnJvbSBzb21lIExlYXBPZkZhaXRoLiBZb3Uga25vdyB3aGljaCBsZWFwcyB3aWxsIGp1
bXAgdG8KKyAgICAvLyBpdCBiZWNhdXNlIHRoZXkgd2lsbCBsaXN0IHRoaXMgYmxvY2sgYXMgYSBz
dWNjZXNzb3IuIEJ1dCB5b3UgZG9uJ3QgcmVhbGx5IGtub3cgbXVjaCBtb3JlIGJleW9uZAorICAg
IC8vIHRoaXMuCisgICAgLy8KKyAgICAvLyBUaGlzIGdyb3NzIGZlYXR1cmUgaXMgd29ydGggaXQu
IEl0IGFsbG93cyB1cyB0byBsb3dlciBzd2l0Y2hlcyB0byB0YWJsZS1iYXNlZCBpbmRpcmVjdCBq
dW1wcywKKyAgICAvLyB3aGljaCBpcyBhIGxvdCBmYXN0ZXIgZm9yIGxhcmdlIHN3aXRjaCBzdGF0
ZW1lbnRzLiBJdCdzIGFsc28gcHJvdmVkIGl0c2VsZiB0byBiZSBhIGNydWNpYWwKKyAgICAvLyBm
ZWF0dXJlIGluIG90aGVyIGNvbXBpbGVycy4gRm9yIGV4YW1wbGUsIEdDQyB1c2VzIGl0cyB2ZXJz
aW9uIG9mIHRoaXMgZmVhdHVyZSAoYWRkcmVzcyBvZiBsYWJlbCkKKyAgICAvLyB0byBzcGVlZCB1
cCBpbnRlcnByZXRlcnMuCisgICAgLy8KKyAgICAvLyBPbmUgaW1wbGljYXRpb24gaXMgdGhhdCBp
ZiB5b3UgY2xvbmUgdGhlIGJsb2NrIGZvciB3aGF0ZXZlciByZWFzb24sIHlvdSBiZXR0ZXIga2Vl
cCB0aGUKKyAgICAvLyBvcmlnaW5hbCBhcm91bmQuIFRoZSBvcmlnaW5hbCdzIGFkZHJlc3MgaGFz
IGFscmVhZHkgZXNjYXBlZCwgYW5kIHNvbWUgTGVhcE9mRmFpdGggd2lsbCBqdW1wIHRvCisgICAg
Ly8gaXQuCisgICAgLy8KKyAgICAvLyBJdCB3b3VsZCBiZSB2YWxpZCB0byByZW1vdmUgdGhlIGNh
bGxiYWNrcyBvZiBhbnkgYmxvY2sgdGhhdCBkb2VzIG5vdCBoYXZlIGFueSBMZWFwT2ZGYWl0aAor
ICAgIC8vIHByZWRlY2Vzc29ycy4gSXQgd291bGQgYmUgaW52YWxpZCB0byBoYXZlIGEgTGVhcE9m
RmFpdGggdGhhdCBsaXN0cyBhIGJsb2NrIGFzIGEgc3VjY2Vzc29yIGlmCisgICAgLy8gdGhhdCBi
bG9jayBkaWQgbm90IGhhdmUgYSBjYWxsYmFjay4KKyAgICBib29sIGhhc0NhbGxiYWNrcygpIGNv
bnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9yYXJlRGF0YSAmJiAhbV9yYXJlRGF0YS0+Y2Fs
bGJhY2tzLmlzRW1wdHkoKTsKKyAgICB9CisgICAgCiAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFt
JikgY29uc3Q7CiAgICAgdm9pZCBkZWVwRHVtcChjb25zdCBQcm9jZWR1cmUmLCBQcmludFN0cmVh
bSYpIGNvbnN0OwogCkBAIC0xMjYsMTEgKzE4NCwxOSBAQCBwcml2YXRlOgogICAgIAogICAgIC8v
IEluc3RhbnRpYXRlIHZpYSBQcm9jZWR1cmUuCiAgICAgQmFzaWNCbG9jayh1bnNpZ25lZCBpbmRl
eCwgZG91YmxlIGZyZXF1ZW5jeSk7CisgICAgCisgICAgUmFyZURhdGEmIGVuc3VyZVJhcmVEYXRh
KCk7CiAKICAgICB1bnNpZ25lZCBtX2luZGV4OwogICAgIFZhbHVlTGlzdCBtX3ZhbHVlczsKICAg
ICBQcmVkZWNlc3Nvckxpc3QgbV9wcmVkZWNlc3NvcnM7CiAgICAgZG91YmxlIG1fZnJlcXVlbmN5
OworICAgIAorICAgIHN0cnVjdCBSYXJlRGF0YSB7CisgICAgICAgIFZlY3RvcjxSZWZQdHI8U2hh
cmVkVGFzazx2b2lkKE1hY3JvQXNzZW1ibGVyQ29kZVB0cik+Pj4gY2FsbGJhY2tzOworICAgIH07
CisgICAgCisgICAgc3RkOjp1bmlxdWVfcHRyPFJhcmVEYXRhPiBtX3JhcmVEYXRhOwogfTsKIAog
Y2xhc3MgRGVlcEJhc2ljQmxvY2tEdW1wIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM0Jsb2NrSW5zZXJ0aW9uU2V0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNCbG9ja0luc2VydGlvblNldC5jcHAJKHJldmlzaW9uIDIwMTM1MCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jsb2NrSW5zZXJ0aW9uU2V0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtOTgsNiArOTgsMTMgQEAgQmFzaWNCbG9jayogQmxvY2tJbnNlcnRpb25TZXQ6OnNw
bGl0Rm9ydwogICAgIGJsb2NrLT5hZGRQcmVkZWNlc3NvcihyZXN1bHQpOwogICAgIGZvciAoQmFz
aWNCbG9jayogcHJlZGVjZXNzb3IgOiByZXN1bHQtPnByZWRlY2Vzc29ycygpKQogICAgICAgICBw
cmVkZWNlc3Nvci0+cmVwbGFjZVN1Y2Nlc3NvcihibG9jaywgcmVzdWx0KTsKKyAgICAKKyAgICAv
LyBDYWxsYmFja3MgYXJlIHNvcnQgb2YgbGlrZSBwcmVkZWNlc3NvcnMuIFdlIG5lZWQgdG8gbWFr
ZSBzdXJlIHRoYXQgJ3Jlc3VsdCcgdGFrZXMgYWxsIG9mCisgICAgLy8gJ2Jsb2NrJydzIGNhbGxi
YWNrcy4KKyAgICBibG9jay0+dGFrZUVhY2hDYWxsYmFjaygKKyAgICAgICAgWyZdIChSZWZQdHI8
U2hhcmVkVGFzazx2b2lkKE1hY3JvQXNzZW1ibGVyQ29kZVB0cik+PiB0YXNrKSB7CisgICAgICAg
ICAgICByZXN1bHQtPmFkZENhbGxiYWNrVGFzayh0YXNrKTsKKyAgICAgICAgfSk7CiAKICAgICBy
ZXR1cm4gcmVzdWx0OwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29udHJv
bFZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb250
cm9sVmFsdWUuY3BwCShyZXZpc2lvbiAyMDEzNTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNDb250cm9sVmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MSw2ICs1MSwxMiBAQCBi
b29sIENvbnRyb2xWYWx1ZTo6cmVwbGFjZVN1Y2Nlc3NvcihCYXNpCiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIAordm9pZCBDb250cm9sVmFsdWU6OmFwcGVuZFN1Y2Nlc3Nvcihjb25zdCBGcmVxdWVu
dGVkQmxvY2smIGJsb2NrKQoreworICAgIFJFTEVBU0VfQVNTRVJUKG9wY29kZSgpID09IExlYXBP
ZkZhaXRoKTsKKyAgICBtX3N1Y2Nlc3NvcnMuYXBwZW5kKGJsb2NrKTsKK30KKwogdm9pZCBDb250
cm9sVmFsdWU6OmNvbnZlcnRUb0p1bXAoQmFzaWNCbG9jayogZGVzdGluYXRpb24pCiB7CiAgICAg
dW5zaWduZWQgaW5kZXggPSB0aGlzLT5pbmRleCgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzQ29udHJvbFZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzQ29udHJvbFZhbHVlLmgJKHJldmlzaW9uIDIwMTM1MCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0NvbnRyb2xWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00MywxMCAr
NDMsMTEgQEAgcHVibGljOgogICAgICAgICBzd2l0Y2ggKG9wY29kZSkgewogICAgICAgICBjYXNl
IEp1bXA6CiAgICAgICAgIGNhc2UgQnJhbmNoOgorICAgICAgICBjYXNlIExlYXBPZkZhaXRoOgog
ICAgICAgICBjYXNlIFJldHVybjoKICAgICAgICAgY2FzZSBPb3BzOgogICAgICAgICAgICAgcmV0
dXJuIHRydWU7Ci0gICAgICAgIGNhc2UgU3dpdGNoOiAKKyAgICAgICAgY2FzZSBTd2l0Y2g6CiAg
ICAgICAgICAgICAvLyBUaGlzIGlzIGhlcmUgYmVjYXVzZSBTd2l0Y2hWYWx1ZSBpcyBhIHN1YmNs
YXNzIG9mIENvbnRyb2xWYWx1ZSwgc28gd2Ugd2FudAogICAgICAgICAgICAgLy8gc3dpdGNoVmFs
dWUtPmFzPENvbnRyb2xWYWx1ZT4oKSB0byByZXR1cm4gbm9uLW51bGwuCiAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKQEAgLTc3LDcgKzc4LDEwIEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBib29s
IHJlcGxhY2VTdWNjZXNzb3IoQmFzaWNCbG9jayogZnJvbSwgQmFzaWNCbG9jayogdG8pOwotCisg
ICAgCisgICAgLy8gVGhpcyBpcyBvbmx5IHZhbGlkIGZvciBMZWFwT2ZGYWl0aC4KKyAgICB2b2lk
IGFwcGVuZFN1Y2Nlc3Nvcihjb25zdCBGcmVxdWVudGVkQmxvY2smKTsKKyAgICAKICAgICBjb25z
dCBGcmVxdWVudGVkQmxvY2smIHRha2VuKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChv
cGNvZGUoKSA9PSBKdW1wIHx8IG9wY29kZSgpID09IEJyYW5jaCk7CkBAIC0xMjgsMTEgKzEzMiwx
MSBAQCBwcml2YXRlOgogICAgICAgICBBU1NFUlQob3Bjb2RlID09IE9vcHMpOwogICAgIH0KIAot
ICAgIC8vIFVzZSB0aGlzIGZvciBSZXR1cm4uCisgICAgLy8gVXNlIHRoaXMgZm9yIFJldHVybiBh
bmQgTGVhcE9mRmFpdGguCiAgICAgQ29udHJvbFZhbHVlKE9wY29kZSBvcGNvZGUsIE9yaWdpbiBv
cmlnaW4sIFZhbHVlKiByZXN1bHQpCiAgICAgICAgIDogVmFsdWUoQ2hlY2tlZE9wY29kZSwgb3Bj
b2RlLCBWb2lkLCBvcmlnaW4sIHJlc3VsdCkKICAgICB7Ci0gICAgICAgIEFTU0VSVChvcGNvZGUg
PT0gUmV0dXJuKTsKKyAgICAgICAgQVNTRVJUKG9wY29kZSA9PSBSZXR1cm4gfHwgb3Bjb2RlID09
IExlYXBPZkZhaXRoKTsKICAgICB9CiAKICAgICAvLyBVc2UgdGhpcyBmb3IgSnVtcC4KSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0RhdGFTZWN0aW9uLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEYXRhU2VjdGlvbi5jcHAJKHJldmlzaW9uIDIw
MTM1MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0RhdGFTZWN0aW9uLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0zMSw3ICszMSw3IEBACiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsK
IAogRGF0YVNlY3Rpb246OkRhdGFTZWN0aW9uKHNpemVfdCBzaXplKQotICAgIDogbV9kYXRhKGZh
c3RNYWxsb2Moc2l6ZSkpCisgICAgOiBtX2RhdGEoZmFzdFplcm9lZE1hbGxvYyhzaXplKSkKICAg
ICAsIG1fc2l6ZShzaXplKQogewogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
TG93ZXJNYWNyb3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0xvd2VyTWFjcm9zLmNwcAkocmV2aXNpb24gMjAxMzUwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzTG93ZXJNYWNyb3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDYgKzM0LDcgQEAKICNp
bmNsdWRlICJCM0NvbnN0UHRyVmFsdWUuaCIKICNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgog
I2luY2x1ZGUgIkIzSW5zZXJ0aW9uU2V0SW5saW5lcy5oIgorI2luY2x1ZGUgIkIzTWVtb3J5VmFs
dWUuaCIKICNpbmNsdWRlICJCM1BoYXNlU2NvcGUuaCIKICNpbmNsdWRlICJCM1Byb2NlZHVyZUlu
bGluZXMuaCIKICNpbmNsdWRlICJCM1N3aXRjaFZhbHVlLmgiCkBAIC0yNzUsOCArMjc2LDkyIEBA
IHByaXZhdGU6CiAgICAgICAgIGNvbnN0IFZlY3RvcjxTd2l0Y2hDYXNlPiYgY2FzZXMsIHVuc2ln
bmVkIHN0YXJ0LCBib29sIGhhcmRTdGFydCwgdW5zaWduZWQgZW5kLAogICAgICAgICBCYXNpY0Js
b2NrKiBiZWZvcmUpCiAgICAgewotICAgICAgICAvLyBGSVhNRTogQWRkIHRhYmxlLWJhc2VkIHN3
aXRjaCBsb3dlcmluZy4KLSAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE1MTE0MQorICAgICAgICBWYWx1ZSogY2hpbGQgPSBtX3ZhbHVlLT5jaGlsZCgw
KTsKKyAgICAgICAgVHlwZSB0eXBlID0gY2hpbGQtPnR5cGUoKTsKKyAgICAgICAgRnJlcXVlbnRl
ZEJsb2NrIGZhbGxUaHJvdWdoID0gbV92YWx1ZS0+YXM8U3dpdGNoVmFsdWU+KCktPmZhbGxUaHJv
dWdoKCk7CisgICAgICAgIAorICAgICAgICAvLyBJdCdzIGEgZ29vZCBpZGVhIHRvIHVzZSBhIHRh
YmxlLWJhc2VkIHN3aXRjaCBpbiBzb21lIGNhc2VzOiB0aGUgbnVtYmVyIG9mIGNhc2VzIGhhcyB0
byBiZQorICAgICAgICAvLyBsYXJnZSBlbm91Z2ggYW5kIHRoZXkgaGF2ZSB0byBiZSBkZW5zZSBl
bm91Z2guIFRoaXMgY291bGQgcHJvYmFibHkgYmUgaW1wcm92ZWQgYSBsb3QuIEZvcgorICAgICAg
ICAvLyBleGFtcGxlLCB3ZSBjb3VsZCBzdGlsbCB1c2UgYSBqdW1wIHRhYmxlIGluIGNhc2VzIHdo
ZXJlIHRoZSBpbnB1dHMgYXJlIHNwYXJzZSBzbyBsb25nIGFzIHdlCisgICAgICAgIC8vIHNoaWZ0
IG9mZiB0aGUgdW5pbnRlcmVzdGluZyBiaXRzLiBPbiB0aGUgb3RoZXIgaGFuZCwgaXQncyBub3Qg
Y2xlYXIgdGhhdCB0aGlzIHdvdWxkCisgICAgICAgIC8vIGFjdHVhbGx5IGJlIGFueSBiZXR0ZXIg
dGhhbiB3aGF0IHdlIGhhdmUgZG9uZSBoZXJlIGFuZCBpdCdzIG5vdCBjbGVhciB0aGF0IGl0IHdv
dWxkIGJlCisgICAgICAgIC8vIGJldHRlciB0aGFuIGEgYmluYXJ5IHN3aXRjaC4KKyAgICAgICAg
Y29uc3QgdW5zaWduZWQgbWluQ2FzZXNGb3JUYWJsZSA9IDc7CisgICAgICAgIGNvbnN0IHVuc2ln
bmVkIGRlbnNpdHlMaW1pdCA9IDQ7CisgICAgICAgIGlmIChlbmQgLSBzdGFydCA+PSBtaW5DYXNl
c0ZvclRhYmxlKSB7CisgICAgICAgICAgICBpbnQ2NF90IGZpcnN0VmFsdWUgPSBjYXNlc1tzdGFy
dF0uY2FzZVZhbHVlKCk7CisgICAgICAgICAgICBpbnQ2NF90IGxhc3RWYWx1ZSA9IGNhc2VzW2Vu
ZCAtIDFdLmNhc2VWYWx1ZSgpOworICAgICAgICAgICAgaWYgKChsYXN0VmFsdWUgLSBmaXJzdFZh
bHVlICsgMSkgLyBjYXNlcy5zaXplKCkgPCBkZW5zaXR5TGltaXQpIHsKKyAgICAgICAgICAgICAg
ICBCYXNpY0Jsb2NrKiBzd2l0Y2hCbG9jayA9IG1fYmxvY2tJbnNlcnRpb25TZXQuaW5zZXJ0QWZ0
ZXIobV9ibG9jayk7CisgICAgICAgICAgICAgICAgVmFsdWUqIGluZGV4ID0gYmVmb3JlLT5hcHBl
bmROZXc8VmFsdWU+KAorICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIFN1YiwgbV9vcmlnaW4s
IGNoaWxkLAorICAgICAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZEludENvbnN0YW50KG1f
cHJvYywgbV9vcmlnaW4sIHR5cGUsIGZpcnN0VmFsdWUpKTsKKyAgICAgICAgICAgICAgICBiZWZv
cmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICAgICAgICAgICAgICBtX3Byb2Ms
IEJyYW5jaCwgbV9vcmlnaW4sCisgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3
PFZhbHVlPigKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgQWJvdmUsIG1fb3JpZ2lu
LCBpbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kSW50Q29uc3Rh
bnQobV9wcm9jLCBtX29yaWdpbiwgdHlwZSwgbGFzdFZhbHVlIC0gZmlyc3RWYWx1ZSkpLAorICAg
ICAgICAgICAgICAgICAgICBmYWxsVGhyb3VnaCwgRnJlcXVlbnRlZEJsb2NrKHN3aXRjaEJsb2Nr
KSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgc2l6ZV90IHRhYmxlU2l6ZSA9
IGxhc3RWYWx1ZSAtIGZpcnN0VmFsdWUgKyAxOworICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1i
bGVyQ29kZVB0cioganVtcFRhYmxlID0gYml0d2lzZV9jYXN0PE1hY3JvQXNzZW1ibGVyQ29kZVB0
cio+KAorICAgICAgICAgICAgICAgICAgICBtX3Byb2MuYWRkRGF0YVNlY3Rpb24oc2l6ZW9mKE1h
Y3JvQXNzZW1ibGVyQ29kZVB0cikgKiB0YWJsZVNpemUpKTsKKyAgICAgICAgICAgICAgICAKKyAg
ICAgICAgICAgICAgICBWYWx1ZSogYmFzZSA9IHN3aXRjaEJsb2NrLT5hcHBlbmRJbnRDb25zdGFu
dCgKKyAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwgcG9pbnRlclR5cGUoKSwg
Yml0d2lzZV9jYXN0PGludHB0cl90PihqdW1wVGFibGUpKTsKKyAgICAgICAgICAgICAgICBpZiAo
aW5kZXgtPnR5cGUoKSAhPSBiYXNlLT50eXBlKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KGluZGV4LT50eXBlKCkgPT0gSW50MzIpCisgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9
IHN3aXRjaEJsb2NrLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgWkV4dDMyLCBtX29yaWdpbiwg
aW5kZXgpOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAg
ICBpbmRleCA9IHN3aXRjaEJsb2NrLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgVHJ1bmMsIG1f
b3JpZ2luLCBpbmRleCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGluZGV4
ID0gc3dpdGNoQmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICAgICAgICAgIG1f
cHJvYywgTXVsLCBtX29yaWdpbiwgaW5kZXgsCisgICAgICAgICAgICAgICAgICAgIHN3aXRjaEJs
b2NrLT5hcHBlbmRJbnRDb25zdGFudCgKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywg
bV9vcmlnaW4sIHBvaW50ZXJUeXBlKCksIHNpemVvZihNYWNyb0Fzc2VtYmxlckNvZGVQdHIpKSk7
CisgICAgICAgICAgICAgICAgVmFsdWUqIHB0ciA9IHN3aXRjaEJsb2NrLT5hcHBlbmROZXc8VmFs
dWU+KG1fcHJvYywgQWRkLCBtX29yaWdpbiwgYmFzZSwgaW5kZXgpOworICAgICAgICAgICAgICAg
IFZhbHVlKiBqdW1wVGFyZ2V0ID0KKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoQmxvY2stPmFw
cGVuZE5ldzxNZW1vcnlWYWx1ZT4obV9wcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBtX29yaWdp
biwgcHRyKTsKKyAgICAgICAgICAgICAgICBDb250cm9sVmFsdWUqIGxlYXBPZkZhaXRoID0KKyAg
ICAgICAgICAgICAgICAgICAgc3dpdGNoQmxvY2stPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KG1f
cHJvYywgTGVhcE9mRmFpdGgsIG1fb3JpZ2luLCBqdW1wVGFyZ2V0KTsKKyAgICAgICAgICAgICAg
ICAKKyAgICAgICAgICAgICAgICBCaXRWZWN0b3IgaGFuZGxlZEluZGljZXM7CisgICAgICAgICAg
ICAgICAgZm9yICh1bnNpZ25lZCBpID0gc3RhcnQ7IGkgPCBlbmQ7ICsraSkgeworICAgICAgICAg
ICAgICAgICAgICBGcmVxdWVudGVkQmxvY2sgYmxvY2sgPSBjYXNlc1tpXS50YXJnZXQoKTsKKyAg
ICAgICAgICAgICAgICAgICAgaW50NjRfdCB2YWx1ZSA9IGNhc2VzW2ldLmNhc2VWYWx1ZSgpOwor
ICAgICAgICAgICAgICAgICAgICBsZWFwT2ZGYWl0aC0+YXBwZW5kU3VjY2Vzc29yKGJsb2NrKTsK
KyAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGluZGV4ID0gdmFsdWUgLSBmaXJzdFZhbHVlOwor
ICAgICAgICAgICAgICAgICAgICBBU1NFUlQoIWhhbmRsZWRJbmRpY2VzLmdldChpbmRleCkpOwor
ICAgICAgICAgICAgICAgICAgICBoYW5kbGVkSW5kaWNlcy5zZXQoaW5kZXgpOworICAgICAgICAg
ICAgICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIqIGp1bXBUYWJsZVB0ciA9IGp1bXBUYWJs
ZSArIGluZGV4OworICAgICAgICAgICAgICAgICAgICBibG9jay5ibG9jaygpLT5hZGRDYWxsYmFj
aygKKyAgICAgICAgICAgICAgICAgICAgICAgIFs9XSAoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGNv
ZGVQdHIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAqanVtcFRhYmxlUHRyID0gY29k
ZVB0cjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBib29sIGhhc1VuaGFuZGxlZEluZGV4ID0g
ZmFsc2U7CisgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHRhYmxlU2l6
ZTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghaGFuZGxlZEluZGljZXMuZ2V0KGkp
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBoYXNVbmhhbmRsZWRJbmRleCA9IHRydWU7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoaGFz
VW5oYW5kbGVkSW5kZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgbGVhcE9mRmFpdGgtPmFwcGVu
ZFN1Y2Nlc3NvcihmYWxsVGhyb3VnaCk7CisgICAgICAgICAgICAgICAgICAgIGZhbGxUaHJvdWdo
LmJsb2NrKCktPmFkZENhbGxiYWNrKAorICAgICAgICAgICAgICAgICAgICAgICAgWz1dIChNYWNy
b0Fzc2VtYmxlckNvZGVQdHIgY29kZVB0cikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB0YWJsZVNpemU7ICsraSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoIWhhbmRsZWRJbmRpY2VzLmdldChpKSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganVtcFRhYmxlW2ldID0gY29kZVB0cjsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICAgICAg
CiAgICAgICAgIC8vIFNlZSBjb21tZW50cyBpbiBqaXQvQmluYXJ5U3dpdGNoLmNwcCBmb3IgYSBq
dXN0aWZpY2F0aW9uIG9mIHRoaXMgYWxnb3JpdGhtLiBUaGUgb25seQogICAgICAgICAvLyB0aGlu
ZyB3ZSBkbyBkaWZmZXJlbnRseSBpcyB0aGF0IHdlIGRvbid0IHVzZSByYW5kb21uZXNzLgpAQCAt
MzA3LDIyICszOTIsMTkgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAogICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIEJyYW5jaCwg
bV9vcmlnaW4sCiAgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PFZhbHVlPigK
LSAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgRXF1YWwsIG1fb3JpZ2luLCBtX3ZhbHVl
LT5jaGlsZCgwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgRXF1YWwsIG1fb3Jp
Z2luLCBjaGlsZCwKICAgICAgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kSW50Q29u
c3RhbnQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwgbV92
YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3By
b2MsIG1fb3JpZ2luLCB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2VzW3N0
YXJ0ICsgaV0uY2FzZVZhbHVlKCkpKSwKICAgICAgICAgICAgICAgICAgICAgY2FzZXNbc3RhcnQg
KyBpXS50YXJnZXQoKSwgRnJlcXVlbnRlZEJsb2NrKG5leHRDaGVjaykpOwogCiAgICAgICAgICAg
ICAgICAgYmVmb3JlID0gbmV4dENoZWNrOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBp
ZiAoYWxsQ29uc2VjdXRpdmUpIHsKLSAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAotICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIEp1bXAsIG1fb3JpZ2lu
LCBjYXNlc1tlbmQgLSAxXS50YXJnZXQoKSk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCi0gICAgICAgICAgICAg
ICAgICAgIG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIG1fdmFsdWUtPmFzPFN3aXRjaFZhbHVlPigp
LT5mYWxsVGhyb3VnaCgpKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChhbGxDb25z
ZWN1dGl2ZSkKKyAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIGNhc2VzW2VuZCAtIDFdLnRhcmdldCgpKTsKKyAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIGZhbGxUaHJvdWdoKTsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQogCkBAIC0zMzQsOSArNDE2LDkgQEAgcHJpdmF0ZToKICAgICAgICAg
YmVmb3JlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKICAgICAgICAgICAgIG1fcHJvYywgQnJh
bmNoLCBtX29yaWdpbiwKICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PFZhbHVlPigKLSAg
ICAgICAgICAgICAgICBtX3Byb2MsIExlc3NUaGFuLCBtX29yaWdpbiwgbV92YWx1ZS0+Y2hpbGQo
MCksCisgICAgICAgICAgICAgICAgbV9wcm9jLCBMZXNzVGhhbiwgbV9vcmlnaW4sIGNoaWxkLAog
ICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kSW50Q29uc3RhbnQoCi0gICAgICAgICAgICAg
ICAgICAgIG1fcHJvYywgbV9vcmlnaW4sIG1fdmFsdWUtPmNoaWxkKDApLT50eXBlKCksCisgICAg
ICAgICAgICAgICAgICAgIG1fcHJvYywgbV9vcmlnaW4sIHR5cGUsCiAgICAgICAgICAgICAgICAg
ICAgIGNhc2VzW21lZGlhbkluZGV4XS5jYXNlVmFsdWUoKSkpLAogICAgICAgICAgICAgRnJlcXVl
bnRlZEJsb2NrKGxlZnQpLCBGcmVxdWVudGVkQmxvY2socmlnaHQpKTsKIApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAJKHJldmlzaW9uIDIwMTM1MCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC04Niw4ICs4NiwxNCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJ1bigpCiAgICAgewotICAg
ICAgICBmb3IgKEIzOjpCYXNpY0Jsb2NrKiBibG9jayA6IG1fcHJvY2VkdXJlKQotICAgICAgICAg
ICAgbV9ibG9ja1RvQmxvY2tbYmxvY2tdID0gbV9jb2RlLmFkZEJsb2NrKGJsb2NrLT5mcmVxdWVu
Y3koKSk7CisgICAgICAgIGZvciAoQjM6OkJhc2ljQmxvY2sqIGJsb2NrIDogbV9wcm9jZWR1cmUp
IHsKKyAgICAgICAgICAgIEFpcjo6QmFzaWNCbG9jayogYWlyQmxvY2sgPSBtX2NvZGUuYWRkQmxv
Y2soYmxvY2stPmZyZXF1ZW5jeSgpKTsKKyAgICAgICAgICAgIGJsb2NrLT5mb3JFYWNoQ2FsbGJh
Y2soCisgICAgICAgICAgICAgICAgWyZdIChSZWZQdHI8U2hhcmVkVGFzazx2b2lkKE1hY3JvQXNz
ZW1ibGVyQ29kZVB0cik+PiBjYWxsYmFjaykgeworICAgICAgICAgICAgICAgICAgICBhaXJCbG9j
ay0+YWRkQ2FsbGJhY2tUYXNrKGNhbGxiYWNrKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIG1fYmxvY2tUb0Jsb2NrW2Jsb2NrXSA9IGFpckJsb2NrOworICAgICAgICB9CiAgICAg
ICAgIAogICAgICAgICBmb3IgKFZhbHVlKiB2YWx1ZSA6IG1fcHJvY2VkdXJlLnZhbHVlcygpKSB7
CiAgICAgICAgICAgICBzd2l0Y2ggKHZhbHVlLT5vcGNvZGUoKSkgewpAQCAtMjQ0MSw2ICsyNDQ3
LDE2IEBAIHByaXZhdGU6CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICBjYXNlIEIzOjpMZWFwT2ZGYWl0aDogeworICAg
ICAgICAgICAgQXJnUHJvbWlzZSBhZGRyID0gbG9hZFByb21pc2UobV92YWx1ZS0+Y2hpbGQoMCkp
OworICAgICAgICAgICAgaWYgKGlzVmFsaWRGb3JtKEFpcjo6TGVhcE9mRmFpdGgsIGFkZHIua2lu
ZCgpKSkgeworICAgICAgICAgICAgICAgIGFwcGVuZChBaXI6OkxlYXBPZkZhaXRoLCBhZGRyLmNv
bnN1bWUoKnRoaXMpKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICBhcHBlbmQoQWlyOjpMZWFwT2ZGYWl0aCwgdG1wKG1fdmFsdWUtPmNoaWxkKDAp
KSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KIAogICAgICAgICBjYXNlIEIzOjpP
b3BzOiB7CiAgICAgICAgICAgICBhcHBlbmQoQWlyOjpPb3BzKTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM09wY29kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzT3Bjb2RlLmNwcAkocmV2aXNpb24gMjAxMzUwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjkwLDYgKzI5MCw5
IEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBPcGMKICAgICBjYXNlIFN3
aXRjaDoKICAgICAgICAgb3V0LnByaW50KCJTd2l0Y2giKTsKICAgICAgICAgcmV0dXJuOworICAg
IGNhc2UgTGVhcE9mRmFpdGg6CisgICAgICAgIG91dC5wcmludCgiTGVhcE9mRmFpdGgiKTsKKyAg
ICAgICAgcmV0dXJuOwogICAgIGNhc2UgUmV0dXJuOgogICAgICAgICBvdXQucHJpbnQoIlJldHVy
biIpOwogICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNP
cGNvZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUu
aAkocmV2aXNpb24gMjAxMzUwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2Rl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTIxNiw2ICsyMTYsMTMgQEAgZW51bSBPcGNvZGUgOiBpbnQx
Nl90IHsKIAogICAgIC8vIFN3aXRjaC4gU3dpdGNoZXMgb3ZlciBlaXRoZXIgSW50MzIgb3IgSW50
NjQuIFVzZXMgdGhlIFN3aXRjaFZhbHVlIGNsYXNzLgogICAgIFN3aXRjaCwKKyAgICAKKyAgICAv
LyBKdW1wIHRvIHRoZSBnaXZlbiBhZGRyZXNzLiBUaGUgY29tcGlsZXIgYXNzdW1lcyB0aGF0IHRo
aXMgd2lsbCBqdW1wIHRvIG9uZSBvZiB0aGUgc3VwcGxpZWQKKyAgICAvLyBzdWNjZXNzb3JzLCBi
dXQgd2lsbCBtYWtlIGFic29sdXRlbHkgbm8gYXNzdW1wdGlvbnMgYWJvdXQgd2hpY2guIEl0J3Mg
ZW50aXJlbHkgdXAgdG8gdGhlIHVzZXIKKyAgICAvLyB0byBhcnJhbmdlIGZvciB0aGUganVtcCB0
byBqdW1wIHRvIG9uZSBvZiB0aG9zZSBzdWNjZXNzb3JzLiBUaGlzIGNhbm5vdCB0cmFwIG9yIGRv
IGFueXRoaW5nIGJ1dAorICAgIC8vIGp1bXAgdG8gb25lIG9mIHRoZSBzdWNjZXNzb3JzOyBpZiBp
dCBkb2VzIGFueXRoaW5nIGVsc2UgdGhlbiBkZW1vbnMgd2lsbCBjb21lIG91dCBvZiB0aGUgdXNl
cidzCisgICAgLy8gbm9zZS4gCisgICAgTGVhcE9mRmFpdGgsCiAKICAgICAvLyBSZXR1cm4uIE5v
dGUgdGhhdCBCMyBwcm9jZWR1cmVzIGRvbid0IGtub3cgdGhlaXIgcmV0dXJuIHR5cGUsIHNvIHRo
aXMgY2FuIGp1c3QgcmV0dXJuIGFueQogICAgIC8vIHR5cGUuIFVzZXMgdGhlIENvbnRyb2xWYWx1
ZSBjbGFzcy4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5oCShyZXZp
c2lvbiAyMDEzNTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuaAko
d29ya2luZyBjb3B5KQpAQCAtMjE4LDYgKzIxOCw5IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IGNo
YXIqIGxhc3RQaGFzZU5hbWUoKSBjb25zdCB7IHJldHVybiBtX2xhc3RQaGFzZU5hbWU7IH0KIAor
ICAgIC8vIEFsbG9jYXRlcyBhIHNsYWIgb2YgbWVtb3J5IHRoYXQgd2lsbCBiZSBrZXB0IGFsaXZl
IGJ5IGFueW9uZSB3aG8ga2VlcHMgdGhlIHJlc3VsdGluZyBjb2RlCisgICAgLy8gYWxpdmUuIEdy
ZWF0IGZvciBjb21waWxlci1nZW5lcmF0ZWQgZGF0YSBzZWN0aW9ucywgbGlrZSBzd2l0Y2gganVt
cCB0YWJsZXMgYW5kIGNvbnN0YW50IHBvb2xzLgorICAgIC8vIFRoaXMgcmV0dXJucyBtZW1vcnkg
dGhhdCBoYXMgYmVlbiB6ZXJvLWluaXRpYWxpemVkLgogICAgIHZvaWQqIGFkZERhdGFTZWN0aW9u
KHNpemVfdCBzaXplKTsKIAogICAgIE9wYXF1ZUJ5cHJvZHVjdHMmIGJ5cHJvZHVjdHMoKSB7IHJl
dHVybiAqbV9ieXByb2R1Y3RzOyB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNW
YWxpZGF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFs
aWRhdGUuY3BwCShyZXZpc2lvbiAyMDEzNTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNWYWxpZGF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4Nyw2ICszODcsMTMgQEAgcHVibGlj
OgogICAgICAgICAgICAgICAgIFZBTElEQVRFKGlzSW50KHZhbHVlLT5jaGlsZCgwKS0+dHlwZSgp
KSwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+dHlw
ZSgpID09IFZvaWQsICgiQXQgIiwgKnZhbHVlKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlIExlYXBPZkZhaXRoOgorICAgICAgICAgICAgICAgIFZBTElEQVRFKHZh
bHVlLT5udW1DaGlsZHJlbigpID09IDEsICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAg
ICAgVkFMSURBVEUodmFsdWUtPmNoaWxkKDApLT50eXBlKCkgPT0gcG9pbnRlclR5cGUoKSwgKCJB
dCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+dHlwZSgpID09
IFZvaWQsICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAgICAgZm9yIChCYXNpY0Jsb2Nr
KiBzdWNjZXNzb3IgOiB2YWx1ZS0+YXM8Q29udHJvbFZhbHVlPigpLT5zdWNjZXNzb3JCbG9ja3Mo
KSkKKyAgICAgICAgICAgICAgICAgICAgVkFMSURBVEUoc3VjY2Vzc29yLT5oYXNDYWxsYmFja3Mo
KSwgKCJBdCAiLCAqdmFsdWUsICItPiIsICpzdWNjZXNzb3IpKTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgVkFMSURBVEUoISh2YWx1ZS0+ZWZm
ZWN0cygpLndyaXRlcyAmJiB2YWx1ZS0+a2V5KCkpLCAoIkF0ICIsICp2YWx1ZSkpOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmNwcAkocmV2aXNpb24gMjAxMzUwKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NDAs
NiArNTQwLDcgQEAgRWZmZWN0cyBWYWx1ZTo6ZWZmZWN0cygpIGNvbnN0CiAgICAgY2FzZSBKdW1w
OgogICAgIGNhc2UgQnJhbmNoOgogICAgIGNhc2UgU3dpdGNoOgorICAgIGNhc2UgTGVhcE9mRmFp
dGg6CiAgICAgY2FzZSBSZXR1cm46CiAgICAgY2FzZSBPb3BzOgogICAgICAgICByZXN1bHQudGVy
bWluYWwgPSB0cnVlOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAJKHJldmlz
aW9uIDIwMTM1MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDEyOCw3ICsxMDEyOCwxMCBAQCB2b2lkIHRlc3RTd2l0Y2hDaGlsbERp
dih1bnNpZ25lZCBkZWdyZWUsCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIAogICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBkZWdyZWU7ICsraSkgewotICAgICAgICBDSEVDSyhp
bnZva2U8aW50MzJfdD4oKmNvZGUsIGkgKiBnYXAsIDQyLCAxMSkgPT0gKChpICYgMSkgPyAxMS80
MiA6IDQyLzExKSk7CisgICAgICAgIGRhdGFMb2coImkgPSAiLCBpLCAiXG4iKTsKKyAgICAgICAg
aW50MzJfdCByZXN1bHQgPSBpbnZva2U8aW50MzJfdD4oKmNvZGUsIGkgKiBnYXAsIDQyLCAxMSk7
CisgICAgICAgIGRhdGFMb2coInJlc3VsdCA9ICIsIHJlc3VsdCwgIlxuIik7CisgICAgICAgIENI
RUNLKHJlc3VsdCA9PSAoKGkgJiAxKSA/IDExLzQyIDogNDIvMTEpKTsKICAgICAgICAgaWYgKGdh
cCA+IDEpIHsKICAgICAgICAgICAgIENIRUNLKCFpbnZva2U8aW50MzJfdD4oKmNvZGUsIGkgKiBn
YXAgKyAxLCA0MiwgMTEpKTsKICAgICAgICAgICAgIENIRUNLKCFpbnZva2U8aW50MzJfdD4oKmNv
ZGUsIGkgKiBnYXAgLSAxLCA0MiwgMTEpKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyQmFzaWNCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci9BaXJCYXNpY0Jsb2NrLmNwcAkocmV2aXNpb24gMjAxMzUwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJCYXNpY0Jsb2NrLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNTAsNiArNTAsMTEgQEAgYm9vbCBCYXNpY0Jsb2NrOjpyZXBsYWNlUHJlZGVjZXNzb3IoQmFz
aQogICAgIHJldHVybiBCMzo6cmVwbGFjZVByZWRlY2Vzc29yKHRoaXMsIGZyb20sIHRvKTsKIH0K
IAordm9pZCBCYXNpY0Jsb2NrOjphZGRDYWxsYmFja1Rhc2soUmVmUHRyPFNoYXJlZFRhc2s8dm9p
ZChNYWNyb0Fzc2VtYmxlckNvZGVQdHIpPj4gY2FsbGJhY2spCit7CisgICAgZW5zdXJlUmFyZURh
dGEoKS5jYWxsYmFja3MuYXBwZW5kKGNhbGxiYWNrKTsKK30KKwogdm9pZCBCYXNpY0Jsb2NrOjpk
dW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiB7CiAgICAgb3V0LnByaW50KGR1bXBQcmVmaXgs
IG1faW5kZXgpOwpAQCAtNjYsNiArNzEsMTAgQEAgdm9pZCBCYXNpY0Jsb2NrOjpkZWVwRHVtcChQ
cmludFN0cmVhbSYgbwogdm9pZCBCYXNpY0Jsb2NrOjpkdW1wSGVhZGVyKFByaW50U3RyZWFtJiBv
dXQpIGNvbnN0CiB7CiAgICAgb3V0LnByaW50KCJCQiIsICp0aGlzLCAiOiA7IGZyZXF1ZW5jeSA9
ICIsIG1fZnJlcXVlbmN5LCAiXG4iKTsKKyAgICBmb3JFYWNoQ2FsbGJhY2soCisgICAgICAgIFsm
XSAoY29uc3QgYXV0byYgY2FsbGJhY2spIHsKKyAgICAgICAgICAgIGRhdGFMb2coIiAgQ2FsbGJh
Y2sgYXQgIiwgUmF3UG9pbnRlcihjYWxsYmFjay5nZXQoKSksICJcbiIpOworICAgICAgICB9KTsK
ICAgICBpZiAocHJlZGVjZXNzb3JzKCkuc2l6ZSgpKQogICAgICAgICBvdXQucHJpbnQoIiAgUHJl
ZGVjZXNzb3JzOiAiLCBwb2ludGVyTGlzdER1bXAocHJlZGVjZXNzb3JzKCkpLCAiXG4iKTsKIH0K
QEAgLTgyLDYgKzkxLDEzIEBAIEJhc2ljQmxvY2s6OkJhc2ljQmxvY2sodW5zaWduZWQgaW5kZXgs
IGQKIHsKIH0KIAorQmFzaWNCbG9jazo6UmFyZURhdGEmIEJhc2ljQmxvY2s6OmVuc3VyZVJhcmVE
YXRhKCkKK3sKKyAgICBpZiAoIW1fcmFyZURhdGEpCisgICAgICAgIG1fcmFyZURhdGEgPSBzdGQ6
Om1ha2VfdW5pcXVlPFJhcmVEYXRhPigpOworICAgIHJldHVybiAqbV9yYXJlRGF0YTsKK30KKwog
fSB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjM6OkFpcgogCiAjZW5kaWYgLy8gRU5BQkxFKEIzX0pJ
VCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQmFzaWNCbG9jay5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQmFzaWNCbG9jay5o
CShyZXZpc2lvbiAyMDEzNTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckJh
c2ljQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMsOSBAQCBjbGFzcyBJbnNlcnRp
b25TZXQ7CiBjbGFzcyBCYXNpY0Jsb2NrIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShCYXNp
Y0Jsb2NrKTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICAKKyAgICBzdHJ1Y3Qg
UmFyZURhdGE7CisgICAgCiBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGR1
bXBQcmVmaXg7CiAKQEAgLTEyMyw3ICsxMjYsMzMgQEAgcHVibGljOgogICAgIGJvb2wgY29udGFp
bnNQcmVkZWNlc3NvcihCYXNpY0Jsb2NrKiBwcmVkZWNlc3NvcikgY29uc3QgeyByZXR1cm4gbV9w
cmVkZWNlc3NvcnMuY29udGFpbnMocHJlZGVjZXNzb3IpOyB9CiAKICAgICBkb3VibGUgZnJlcXVl
bmN5KCkgY29uc3QgeyByZXR1cm4gbV9mcmVxdWVuY3k7IH0KLQorICAgIAorICAgIHZvaWQgYWRk
Q2FsbGJhY2tUYXNrKFJlZlB0cjxTaGFyZWRUYXNrPHZvaWQoTWFjcm9Bc3NlbWJsZXJDb2RlUHRy
KT4+KTsKKyAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jPgorICAgIHZvaWQgYWRkQ2Fs
bGJhY2soRnVuYyYmIGZ1bmMpCisgICAgeworICAgICAgICBhZGRDYWxsYmFja1Rhc2soY3JlYXRl
U2hhcmVkVGFzazx2b2lkKE1hY3JvQXNzZW1ibGVyQ29kZVB0cik+KHN0ZDo6Zm9yd2FyZDxGdW5j
PihmdW5jKSkpOworICAgIH0KKyAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jPgorICAg
IHZvaWQgZm9yRWFjaENhbGxiYWNrKGNvbnN0IEZ1bmMmIGZ1bmMpIGNvbnN0CisgICAgeworICAg
ICAgICBpZiAoIW1fcmFyZURhdGEpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGZvciAo
Y29uc3QgYXV0byYgY2FsbGJhY2sgOiBtX3JhcmVEYXRhLT5jYWxsYmFja3MpCisgICAgICAgICAg
ICBmdW5jKGNhbGxiYWNrKTsKKyAgICB9CisgICAgCisgICAgLy8gSWYgYSBiYXNpYyBibG9jayBo
YXMgY2FsbGJhY2tzLCBpdCBtZWFucyB0aGF0IHNvbWVvbmUgaW50ZW5kcyB0byB0YWtlIHRoZSBh
ZGRyZXNzIG9mIHRoaXMgYmFzaWMKKyAgICAvLyBibG9jayBhbmQgdXNlIGl0IHRvIGp1bXAgZGly
ZWN0bHkgdG8gaXQgZnJvbSBzb21lIExlYXBPZkZhaXRoLiBZb3Uga25vdyB3aGljaCBsZWFwcyB3
aWxsIGp1bXAgdG8KKyAgICAvLyBpdCBiZWNhdXNlIHRoZXkgd2lsbCBsaXN0IHRoaXMgYmxvY2sg
YXMgYSBzdWNjZXNzb3IuIEJ1dCB5b3UgZG9uJ3QgcmVhbGx5IGtub3cgbXVjaCBtb3JlIGJleW9u
ZAorICAgIC8vIHRoaXMuIFNlZSBCM0Jhc2ljQmxvY2suaCBmb3IgbW9yZSBkZXRhaWxzLgorICAg
IGJvb2wgaGFzQ2FsbGJhY2tzKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX3JhcmVE
YXRhICYmICFtX3JhcmVEYXRhLT5jYWxsYmFja3MuaXNFbXB0eSgpOworICAgIH0KKyAgICAKICAg
ICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKICAgICB2b2lkIGRlZXBEdW1wKFByaW50
U3RyZWFtJikgY29uc3Q7CiAKQEAgLTEzNiwxMiArMTY1LDIwIEBAIHByaXZhdGU6CiAgICAgZnJp
ZW5kIGNsYXNzIEluc2VydGlvblNldDsKICAgICAKICAgICBCYXNpY0Jsb2NrKHVuc2lnbmVkIGlu
ZGV4LCBkb3VibGUgZnJlcXVlbmN5KTsKKyAgICAKKyAgICBSYXJlRGF0YSYgZW5zdXJlUmFyZURh
dGEoKTsKIAogICAgIHVuc2lnbmVkIG1faW5kZXg7CiAgICAgSW5zdExpc3QgbV9pbnN0czsKICAg
ICBTdWNjZXNzb3JMaXN0IG1fc3VjY2Vzc29yczsKICAgICBQcmVkZWNlc3Nvckxpc3QgbV9wcmVk
ZWNlc3NvcnM7CiAgICAgZG91YmxlIG1fZnJlcXVlbmN5OworICAgIAorICAgIHN0cnVjdCBSYXJl
RGF0YSB7CisgICAgICAgIFZlY3RvcjxSZWZQdHI8U2hhcmVkVGFzazx2b2lkKE1hY3JvQXNzZW1i
bGVyQ29kZVB0cik+Pj4gY2FsbGJhY2tzOworICAgIH07CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
UmFyZURhdGE+IG1fcmFyZURhdGE7CiB9OwogCiBjbGFzcyBEZWVwQmFzaWNCbG9ja0R1bXAgewpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmgJKHJldmlzaW9uIDIwMTM1
MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiQWlyU3BlY2lhbC5oIgogI2luY2x1ZGUg
IkFpclN0YWNrU2xvdC5oIgogI2luY2x1ZGUgIkFpclRtcC5oIgorI2luY2x1ZGUgIkIzSW5kZXhN
YXAuaCIKICNpbmNsdWRlICJCM1NwYXJzZUNvbGxlY3Rpb24uaCIKICNpbmNsdWRlICJSZWdpc3Rl
ckF0T2Zmc2V0TGlzdC5oIgogI2luY2x1ZGUgIlN0YWNrQWxpZ25tZW50LmgiCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRlLmNwcAkocmV2aXNpb24gMjAx
MzUwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0ZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTUxLDYgKzUxLDcgQEAKICNpbmNsdWRlICJCM1RpbWluZ1Njb3BlLmgi
CiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiRGlzYWxsb3dNYWNyb1NjcmF0
Y2hSZWdpc3RlclVzYWdlLmgiCisjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgogCiBuYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIEIzIHsgbmFtZXNwYWNlIEFpciB7CiAKQEAgLTE4Myw3ICsxODQsMTcg
QEAgdm9pZCBnZW5lcmF0ZShDb2RlJiBjb2RlLCBDQ2FsbEhlbHBlcnMmIAogCiAgICAgZm9yIChC
YXNpY0Jsb2NrKiBibG9jayA6IGNvZGUpIHsKICAgICAgICAgYmxvY2tKdW1wc1tibG9ja10ubGlu
aygmaml0KTsKLSAgICAgICAgYmxvY2tMYWJlbHNbYmxvY2tdID0gaml0LmxhYmVsKCk7CisgICAg
ICAgIENDYWxsSGVscGVyczo6TGFiZWwgbGFiZWwgPSBqaXQubGFiZWwoKTsKKyAgICAgICAgYmxv
Y2tMYWJlbHNbYmxvY2tdID0gbGFiZWw7CisgICAgICAgIAorICAgICAgICBibG9jay0+Zm9yRWFj
aENhbGxiYWNrKAorICAgICAgICAgICAgWyZdIChSZWZQdHI8U2hhcmVkVGFzazx2b2lkKE1hY3Jv
QXNzZW1ibGVyQ29kZVB0cik+PiBjYWxsYmFjaykgeworICAgICAgICAgICAgICAgIGppdC5hZGRM
aW5rVGFzaygKKyAgICAgICAgICAgICAgICAgICAgWz1dIChMaW5rQnVmZmVyJiBsaW5rQnVmZmVy
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjay0+cnVuKGxpbmtCdWZmZXIubG9j
YXRpb25PZihsYWJlbCkpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0p
OworICAgICAgICAKICAgICAgICAgQVNTRVJUKGJsb2NrLT5zaXplKCkgPj0gMSk7CiAgICAgICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBibG9jay0+c2l6ZSgpIC0gMTsgKytpKSB7CiAgICAg
ICAgICAgICBJbnN0JiBpbnN0ID0gYmxvY2stPmF0KGkpOwpAQCAtMjE1LDIzICsyMjYsMjQgQEAg
dm9pZCBnZW5lcmF0ZShDb2RlJiBjb2RlLCBDQ2FsbEhlbHBlcnMmIAogICAgICAgICAgICAgYWRk
SXRlbShibG9jay0+bGFzdCgpKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9Ci0K
KyAgICAgICAgCiAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcCBqdW1wID0gYmxvY2stPmxhc3Qo
KS5nZW5lcmF0ZShqaXQsIGNvbnRleHQpOwotICAgICAgICBzd2l0Y2ggKGJsb2NrLT5udW1TdWNj
ZXNzb3JzKCkpIHsKLSAgICAgICAgY2FzZSAwOgotICAgICAgICAgICAgQVNTRVJUKCFqdW1wLmlz
U2V0KCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgMToKLSAgICAgICAgICAg
IGxpbmsoanVtcCwgYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDApKTsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBjYXNlIDI6Ci0gICAgICAgICAgICBsaW5rKGp1bXAsIGJsb2NrLT5zdWNjZXNz
b3JCbG9jaygwKSk7Ci0gICAgICAgICAgICBpZiAoYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDEpICE9
IGNvZGUuZmluZE5leHRCbG9jayhibG9jaykpCi0gICAgICAgICAgICAgICAgbGluayhqaXQuanVt
cCgpLCBibG9jay0+c3VjY2Vzc29yQmxvY2soMSkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwot
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIC8vIFRoZSBqdW1wIHdvbid0IGJlIHNldCBmb3Ig
TGVhcE9mRmFpdGggYmVjYXVzZSBpdCBsZXRzIGl0cyBmYWl0aCBpbiB0aGUgYWRkcmVzcyBvcGVy
YW5kCisgICAgICAgIC8vIGd1aWRlIHdoZXJlIGl0IGp1bXBzLiBJdCB3b24ndCBiZSBzZXQgZm9y
IE9vcHMgYmVjYXVzZSB0aGVuIGl0IHdvbid0IGhhdmUgYW55IHN1Y2Nlc3NvcnMuCisgICAgICAg
IGlmIChqdW1wLmlzU2V0KCkpIHsKKyAgICAgICAgICAgIHN3aXRjaCAoYmxvY2stPm51bVN1Y2Nl
c3NvcnMoKSkgeworICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgIGxpbmsoanVt
cCwgYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDApKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICBsaW5rKGp1bXAsIGJsb2NrLT5zdWNj
ZXNzb3JCbG9jaygwKSk7CisgICAgICAgICAgICAgICAgaWYgKGJsb2NrLT5zdWNjZXNzb3JCbG9j
aygxKSAhPSBjb2RlLmZpbmROZXh0QmxvY2soYmxvY2spKQorICAgICAgICAgICAgICAgICAgICBs
aW5rKGppdC5qdW1wKCksIGJsb2NrLT5zdWNjZXNzb3JCbG9jaygxKSk7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIFJFTEVBU0Vf
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICB9CiAgICAgICAgIH0KICAgICAgICAgYWRkSXRlbShibG9jay0+bGFzdCgpKTsKICAgICB9Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMJ
KHJldmlzaW9uIDIwMTM1MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bj
b2RlLm9wY29kZXMJKHdvcmtpbmcgY29weSkKQEAgLTgzNSw2ICs4MzUsMTMgQEAgTW92ZURvdWJs
ZUNvbmRpdGlvbmFsbHlGbG9hdCBVOkc6MzIsIFU6RgogCiBKdW1wIC9icmFuY2gKIAorIyBUaGlz
IG1hc3F1ZXJhZGVzIGFzIGEgbm9uLWJyYW5jaCB0ZXJtaW5hbCBiZWNhdXNlIGl0IGRvZXNuJ3Qg
bmVlZCBsaW5raW5nLiAiQnJhbmNoIiBpbiB0aGlzIGNvbnRleHQKKyMganVzdCBtZWFucyB0aGF0
IGl0J3MgYSB0ZXJtaW5hbCB0aGF0IHJldHVybnMgYSBKdW1wIHRoYXQgbmVlZHMgdG8gYmUgbGlu
a2VkLgorTGVhcE9mRmFpdGggVTpHOlB0ciAvdGVybWluYWwKKyAgICBUbXAgYXMganVtcAorICAg
IHg4NjogQWRkciBhcyBqdW1wCisgICAgeDg2OiBJbmRleCBhcyBqdW1wCisKIFJldDMyIFU6Rzoz
MiAvcmV0dXJuCiAgICAgVG1wCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyVmFsaWRhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvQWlyVmFsaWRhdGUuY3BwCShyZXZpc2lvbiAyMDEzNTApCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvYWlyL0FpclZhbGlkYXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODksNiArODks
MTYgQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAgICAgICAgVkFMSURBVEUoJmFyZyA+PSAm
aW5zdC5hcmdzWzBdLCAoIkF0ICIsIGFyZywgIiBpbiAiLCBpbnN0LCAiIGluICIsICpibG9jaykp
OwogICAgICAgICAgICAgICAgICAgICAgICAgVkFMSURBVEUoJmFyZyA8PSAmaW5zdC5hcmdzLmxh
c3QoKSwgKCJBdCAiLCBhcmcsICIgaW4gIiwgaW5zdCwgIiBpbiAiLCAqYmxvY2spKTsKICAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8g
U29tZSBpbnN0cnVjdGlvbnMgaGF2ZSBzb21lIGFkZGl0aW9uYWwgcnVsZXMuCisgICAgICAgICAg
ICAgICAgc3dpdGNoIChpbnN0Lm9wY29kZSkgeworICAgICAgICAgICAgICAgIGNhc2UgTGVhcE9m
RmFpdGg6CisgICAgICAgICAgICAgICAgICAgIGZvciAoQmFzaWNCbG9jayogc3VjY2Vzc29yIDog
YmxvY2stPnN1Y2Nlc3NvckJsb2NrcygpKQorICAgICAgICAgICAgICAgICAgICAgICAgVkFMSURB
VEUoc3VjY2Vzc29yLT5oYXNDYWxsYmFja3MoKSwgKCJBdCAiLCAqYmxvY2ssICItPiIsICpzdWNj
ZXNzb3IpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBzdWNjZXNzb3IgOiBibG9j
ay0+c3VjY2Vzc29yQmxvY2tzKCkpCiAgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsaWRCbG9j
a3MuY29udGFpbnMoc3VjY2Vzc29yKSwgKCJJbiAiLCAqYmxvY2spKTsKSW5kZXg6IFdlYnNpdGVz
L3dlYmtpdC5vcmcvZG9jcy9iMy9pbnRlcm1lZGlhdGUtcmVwcmVzZW50YXRpb24uaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJzaXRlcy93ZWJraXQub3JnL2RvY3MvYjMvaW50ZXJtZWRpYXRlLXJlcHJl
c2VudGF0aW9uLmh0bWwJKHJldmlzaW9uIDIwMTM1MCkKKysrIFdlYnNpdGVzL3dlYmtpdC5vcmcv
ZG9jcy9iMy9pbnRlcm1lZGlhdGUtcmVwcmVzZW50YXRpb24uaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtNDEyLDExICs0MTIsMTIgQEAKICAgICAgICAgdGhlIENDYWxsVmFsdWUgY2xhc3MuPC9kZD4K
IAogICAgICAgPGR0PlQxIFBhdGNocG9pbnQoW1QyLCBbVDMsIC4uLl1dKTwvZHQ+Ci0gICAgICA8
ZGQ+QSBQYXRjaHBvaW50IGlzIGEgY3VzdG9taXphYmxlIHZhbHVlLiAgUGF0Y2hwb2ludHMgdGFr
ZSB6ZXJvIG9yIG1vcmUgdmFsdWVzIG9mIGFueQotICAgICAgICB0eXBlIGFuZCByZXR1cm4gYW55
IHR5cGUuICBBIFBhdGNocG9pbnQncyBiZWhhdmlvciBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBnZW5l
cmF0b3IKLSAgICAgICAgb2JqZWN0LiAgVGhlIGdlbmVyYXRvciBpcyBhIEMrKyBsYW1iZGEgdGhh
dCBnZXRzIGNhbGxlZCBkdXJpbmcgY29kZSBnZW5lcmF0aW9uLiAgSXQgZ2V0cwotICAgICAgICBw
YXNzZWQgYW4gYXNzZW1ibGVyIGluc3RhbmNlIChzcGVjaWZpY2FsbHksIENDYWxsSGVscGVycyYp
IGFuZCBhbiBvYmplY3QgZGVzY3JpYmluZwotICAgICAgICB3aGVyZSB0byBmaW5kIGFsbCBvZiB0
aGUgaW5wdXQgdmFsdWVzIGFuZCB3aGVyZSB0byBwdXQgdGhlIHJlc3VsdC4gIEhlcmUncyBhbiBl
eGFtcGxlOgorICAgICAgPGRkPgorICAgICAgICA8cD5BIFBhdGNocG9pbnQgaXMgYSBjdXN0b21p
emFibGUgdmFsdWUuICBQYXRjaHBvaW50cyB0YWtlIHplcm8gb3IgbW9yZSB2YWx1ZXMgb2YgYW55
CisgICAgICAgICAgdHlwZSBhbmQgcmV0dXJuIGFueSB0eXBlLiAgQSBQYXRjaHBvaW50J3MgYmVo
YXZpb3IgaXMgZGV0ZXJtaW5lZCBieSB0aGUgZ2VuZXJhdG9yCisgICAgICAgICAgb2JqZWN0LiAg
VGhlIGdlbmVyYXRvciBpcyBhIEMrKyBsYW1iZGEgdGhhdCBnZXRzIGNhbGxlZCBkdXJpbmcgY29k
ZSBnZW5lcmF0aW9uLiAgSXQgZ2V0cworICAgICAgICAgIHBhc3NlZCBhbiBhc3NlbWJsZXIgaW5z
dGFuY2UgKHNwZWNpZmljYWxseSwgQ0NhbGxIZWxwZXJzJikgYW5kIGFuIG9iamVjdCBkZXNjcmli
aW5nCisgICAgICAgICAgd2hlcmUgdG8gZmluZCBhbGwgb2YgdGhlIGlucHV0IHZhbHVlcyBhbmQg
d2hlcmUgdG8gcHV0IHRoZSByZXN1bHQuICBIZXJlJ3MgYW4gZXhhbXBsZTo8L3A+CiAgCiAgICAg
ICAgIDxwcmU+PGNvZGU+UGF0Y2hwb2ludFZhbHVlKiBwYXRjaHBvaW50ID0gYmxvY2stPmFwcGVu
ZE5ldyZsdDtQYXRjaHBvaW50VmFsdWUmZ3Q7KHByb2MsIEludDMyLCBPcmlnaW4oKSk7CiBwYXRj
aHBvaW50LT5hcHBlbmQoQ29uc3RyYWluZWRWYWx1ZShhcmcxLCBWYWx1ZVJlcDo6U29tZVJlZ2lz
dGVyKSk7CkBAIC01MjYsNiArNTI3LDIyIEBAIHBhdGNocG9pbnQtPnNldEdlbmVyYXRvcigKICAg
ICAgICAgYWxzbyBjb250YWlucyBhIGZhbGwtdGhyb3VnaCB0YXJnZXQgaW4gY2FzZSB0aGUgY2hp
bGQgaGFzIGEgdmFsdWUgdGhhdCB3YXNuJ3QgbWVudGlvbmVkCiAgICAgICAgIGluIHRoZSBjYXNl
cyBsaXN0LiAgTXVzdCB1c2UgdGhlIFN3aXRjaFZhbHVlIGNsYXNzLiAgTXVzdCBhcHBlYXIgYXQg
dGhlIGVuZCBvZiB0aGUgYmFzaWMKICAgICAgICAgYmxvY2suPC9kZD4KKyAgICAgIAorICAgICAg
PGR0PlZvaWQgTGVhcE9mRmFpdGgoSW50UHRyLCBibG9ja3MuLi4pPC9kdD4KKyAgICAgIDxkZD4K
KyAgICAgICAgPHA+SnVtcHMgdG8gdGhlIGdpdmVuIGFkZHJlc3MuIFRoZSBjb21waWxlciB3aWxs
IGFzc3VtZSB0aGF0IHRoaXMganVtcHMgdG8gb25lIG9mIHRoZSBnaXZlbgorICAgICAgICAgIGJs
b2Nrcy4gVGhlIGNvbXBpbGVyIG1ha2VzIG5vIGF0dGVtcHQgdG8gcHJvdmUgb3IgdmFsaWRhdGUg
dGhhdCB0aGUgcGFzc2VkIGp1bXAgYWRkcmVzcyBpcworICAgICAgICAgIGFjdHVhbGx5IHRoZSBh
ZGRyZXNzIG9mIGFueSBvZiB0aG9zZSBibG9ja3MuIE5vbnNlbnNpY2FsIHRoaW5ncyB3aWxsIGhh
cHBlbiBpZiB0aGUgcGFzc2VkCisgICAgICAgICAgYWRkcmVzcyBpcyBub3QgdGhlIGFkZHJlc3Mg
b2Ygb25lIG9mIHRoZSBibG9ja3MgaW4gdGhlIHN1Y2Nlc3NvciBsaXN0LiBZb3UgY2FuIGFycmFu
Z2UgdG8gZ2V0CisgICAgICAgICAgdGhlIGFkZHJlc3NlcyBvZiBibG9ja3MgdXNpbmcgdGhlIEJh
c2ljQmxvY2sgQVBJLiBUaGlzIGlzIHVzZWQgaW50ZXJuYWxseSBmb3IgbG93ZXJpbmcKKyAgICAg
ICAgICBTd2l0Y2ggb3Bjb2Rlcy4gWW91IGNhbiB1c2UgaXQgZGlyZWN0bHkgZm9yIGltcGxlbWVu
dGluZyB0aGluZ3MgbGlrZSB0aHJlYWRlZAorICAgICAgICAgIGludGVycHJldGVycy48L3A+Cisg
ICAgICAKKyAgICAgICAgPHA+QSBjbG9zZWx5IHJlbGF0ZWQgZmVhdHVyZSBpcyBCYXNpY0Jsb2Nr
IGNhbGxiYWNrcy4gSWYgeW91IHJlZ2lzdGVyIGEgY2FsbGJhY2sgd2l0aCBhCisgICAgICAgICAg
QmFzaWNCbG9jaywgdGhlbiB0aGUgY29tcGlsZXIgd2lsbCB0ZWxsIHlvdSB3aGVyZSBpbiBtZW1v
cnkgdGhlIEJhc2ljQmxvY2sgZW5kZWQgdXAuIFdlCisgICAgICAgICAgY3VycmVudGx5IHJlcXVp
cmUgdGhhdCB0aGUgc3VjY2Vzc29ycyBvZiBhIExlYXBPZkZhaXRoIGhhdmUgY2FsbGJhY2tzIHNl
dCBhbmQgaXQgd291bGQgYmUKKyAgICAgICAgICBjb3JyZWN0IHRvIGRyb3AgdGhlIGNhbGxiYWNr
cyBvZiBhbnkgYmxvY2sgdGhhdCBkb2Vzbid0IGhhdmUgYSBMZWFwT2ZGYWl0aCBwcmVkZWNlc3Nv
ci48L3A+CisgICAgICA8L2RkPgogCiAgICAgICA8ZHQ+Vm9pZCBSZXR1cm4oVCk8L2R0PgogICAg
ICAgPGRkPldvcmtzIGZvciBhbnkgdHlwZSBleGNlcHQgVm9pZC4gIFJldHVybnMgdGhlIGdpdmVu
IHZhbHVlIGFuZCB0ZXJtaW5hdGVzIHRoZSBwcm9jZWR1cmUuCkluZGV4OiBMYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL2JpZ3N3aXRjaC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9iaWdzd2l0Y2gtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2gtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMTAgQEAKK0pTUmVncmVzcy9iaWdzd2l0Y2gKKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2pz
L3JlZ3Jlc3MvYmlnc3dpdGNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9iaWdzd2l0Y2guaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jl
c3MvYmlnc3dpdGNoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMiBAQAorPCFET0NU
WVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYmlnc3dpdGNoLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mv
c2NyaXB0LXRlc3RzL2JpZ3N3aXRjaC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL3NjcmlwdC10ZXN0cy9iaWdzd2l0Y2guanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9iaWdzd2l0Y2guanMJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwyMTEgQEAKK2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgdmFyIHJlc3VsdCA9IDA7
CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHZhbHVl
ID0gaSAmIDYzOworICAgICAgICBzd2l0Y2ggKHZhbHVlKSB7CisgICAgICAgIGNhc2UgMDoKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSAxOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYjsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIDI6CisgICAgICAgICAgICByZXN1bHQgKz0gby5jOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmQ7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDU6CisgICAgICAgICAgICByZXN1bHQg
Kz0gby5mOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA3OgorICAg
ICAgICAgICAgcmVzdWx0ICs9IG8uaDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IDg6CisgICAgICAgICAgICByZXN1bHQgKz0gby5pOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgOToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSAxMDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxMToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmE7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxMjoKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLmI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxMzoKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLmM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxNDoK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSAxNToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmU7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSAxNjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmY7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSAxNzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxODoKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLmg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxOToKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLmk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyMDoKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSAyMToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSAyMjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSAyMzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmE7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyNDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
LmI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyNToKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLmM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyNjoKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLmQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAy
NzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSAyODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmY7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSAyOToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzMDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzMToKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLmk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzMjoKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzMzoK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSAzNDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSAzNToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSAzNjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmE7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzNzoKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLmI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzODoKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLmM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzOToKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLmQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSA0MDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmU7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSA0MToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmY7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSA0MjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0MzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
Lmg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0NDoKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLmk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0NToKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0
NjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSA0NzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSA0ODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0OToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1MDoKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1MToKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1MjoK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSA1MzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSA1NDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmM7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSA1NToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmQ7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1NjoKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1NzoKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLmY7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1ODoKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSA1OToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSA2MDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSA2MToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA2MjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
Lms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLno7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorCisoZnVuY3Rpb24oKSB7CisgICAgdmFyIG8gPSB7YToxLCBiOjIs
IGM6MywgZDo0LCBlOjUsIGY6NiwgZzo3LCBoOjgsIGk6OSwgajoxMCwgazoxMSwgejoxMDB9Owor
ICAgIHZhciByZXN1bHQgPSAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkK
KyAgICAgICAgcmVzdWx0ICs9IGZvbyhvKTsKKyAgICBpZiAocmVzdWx0ICE9IDc5NjYwMDAwKQor
ICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9KSgpOworCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>279733</attachid>
            <date>2016-05-24 18:10:15 -0700</date>
            <delta_ts>2016-05-27 08:45:05 -0700</delta_ts>
            <desc>performance</desc>
            <filename>report.txt</filename>
            <type>text/plain</type>
            <size>78557</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">QmVuY2htYXJrIHJlcG9ydCBmb3IgU3VuU3BpZGVyLCBMb25nU3BpZGVyLCBWOFNwaWRlciwgT2N0
YW5lLCBLcmFrZW4sIEpTUmVncmVzcywgQXNtQmVuY2gsIGFuZCBDb21wcmVzc2lvbkJlbmNoIG9u
IGhvZG9yIChNYWNCb29rUHJvMTEsMykuCgpWTXMgdGVzdGVkOgoiVGlwT2ZUcmVlIiBhdCAvVm9s
dW1lcy9EYXRhL3F1YXJ0YXJ5L09wZW5Tb3VyY2UvV2ViS2l0QnVpbGQvUmVsZWFzZS9qc2MgKHIy
MDEzMzEpCiJUaGluZ3MiIGF0IC9Wb2x1bWVzL0RhdGEvdGVydGlhcnkvT3BlblNvdXJjZS9XZWJL
aXRCdWlsZC9SZWxlYXNlL2pzYyAocjIwMTM1MCkKCkNvbGxlY3RlZCA2IHNhbXBsZXMgcGVyIGJl
bmNobWFyay9WTSwgd2l0aCA2IFZNIGludm9jYXRpb25zIHBlciBiZW5jaG1hcmsuIEVtaXR0ZWQg
YSBjYWxsIHRvIGdjKCkgYmV0d2VlbiBzYW1wbGUgbWVhc3VyZW1lbnRzLgpVc2VkIDEgYmVuY2ht
YXJrIGl0ZXJhdGlvbiBwZXIgVk0gaW52b2NhdGlvbiBmb3Igd2FybS11cC4gVXNlZCB0aGUganNj
LXNwZWNpZmljIHByZWNpc2VUaW1lKCkgZnVuY3Rpb24gdG8gZ2V0IG1pY3Jvc2Vjb25kLWxldmVs
CnRpbWluZy4gUmVwb3J0aW5nIGJlbmNobWFyayBleGVjdXRpb24gdGltZXMgd2l0aCA5NSUgY29u
ZmlkZW5jZSBpbnRlcnZhbHMgaW4gbWlsbGlzZWNvbmRzLgoKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaXBPZlRyZWUgICAgICAgICAgICAg
ICAgICAgVGhpbmdzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKU3VuU3Bp
ZGVyOgogICAzZC1jdWJlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA0LjczODMrLTAuMTk4MiAgICAgPyAgICAgIDQuODU2OCstMC4xMzIyICAgICAgICA/IG1pZ2h0
IGJlIDEuMDI1MHggc2xvd2VyCiAgIDNkLW1vcnBoICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDQuOTQ1NystMC4xMTU5ICAgICAgICAgICAgNC45NDUxKy0wLjExOTUg
ICAgICAgIAogICAzZC1yYXl0cmFjZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA1LjA2MDgrLTAuMDUyNCAgICAgPyAgICAgIDUuNzY3MystMS43MTA3ICAgICAgICA/IG1p
Z2h0IGJlIDEuMTM5Nnggc2xvd2VyCiAgIGFjY2Vzcy1iaW5hcnktdHJlZXMgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDIuMzc5NSstMC45Mjk0ICAgICAgICAgICAgMS45NjU5Ky0wLjAx
MDIgICAgICAgICAgbWlnaHQgYmUgMS4yMTA0eCBmYXN0ZXIKICAgYWNjZXNzLWZhbm5rdWNoICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS44MDM4Ky0wLjE5ODMgICAgICAgICAg
ICA1Ljc4NzgrLTAuMDgyMyAgICAgICAgCiAgIGFjY2Vzcy1uYm9keSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDIuNDYyNystMC4wMTU2ICAgICA/ICAgICAgMi41Mjg0Ky0w
LjA4MjggICAgICAgID8gbWlnaHQgYmUgMS4wMjY3eCBzbG93ZXIKICAgYWNjZXNzLW5zaWV2ZSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4xMDc1Ky0wLjIxNzEgICAgID8g
ICAgICAzLjE4NzMrLTAuMDkxMyAgICAgICAgPyBtaWdodCBiZSAxLjAyNTd4IHNsb3dlcgogICBi
aXRvcHMtM2JpdC1iaXRzLWluLWJ5dGUgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjA0NDIr
LTAuMDQzOCAgICAgPyAgICAgIDEuMDU3MistMC4wMjYwICAgICAgICA/IG1pZ2h0IGJlIDEuMDEy
NHggc2xvd2VyCiAgIGJpdG9wcy1iaXRzLWluLWJ5dGUgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDIuNjY2NistMC4xMjcyICAgICAgICAgICAgMi41ODI0Ky0wLjAzMjEgICAgICAgICAg
bWlnaHQgYmUgMS4wMzI2eCBmYXN0ZXIKICAgYml0b3BzLWJpdHdpc2UtYW5kICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMS45NDAyKy0wLjA2NjAgICAgICAgICAgICAxLjg4NjgrLTAu
MDMzMyAgICAgICAgICBtaWdodCBiZSAxLjAyODN4IGZhc3RlcgogICBiaXRvcHMtbnNpZXZlLWJp
dHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjEzNTcrLTAuNDQ2MiAgICAgICAg
ICAgIDIuOTE5OCstMC4wMjc4ICAgICAgICAgIG1pZ2h0IGJlIDEuMDczOXggZmFzdGVyCiAgIGNv
bnRyb2xmbG93LXJlY3Vyc2l2ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuMjUxNyst
MC4wNjgzICAgICAgICAgICAgMi4yMzAwKy0wLjA0MDggICAgICAgIAogICBjcnlwdG8tYWVzICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjIwODUrLTAuMDk5MSAgICAg
PyAgICAgIDQuMjA5MSstMC4xMDM2ICAgICAgICA/CiAgIGNyeXB0by1tZDUgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuMzExNSstMC4wMTk2ICAgICA/ICAgICAgMi4z
ODU1Ky0wLjA4OTggICAgICAgID8gbWlnaHQgYmUgMS4wMzIweCBzbG93ZXIKICAgY3J5cHRvLXNo
YTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi4xOTQ1Ky0wLjA1MDkg
ICAgID8gICAgICAyLjIxMDUrLTAuMDI5MiAgICAgICAgPwogICBkYXRlLWZvcm1hdC10b2Z0ZSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LjczNzMrLTAuMjYwMyAgICAgICAgICAg
IDYuNjY2MistMC4yOTU4ICAgICAgICAgIG1pZ2h0IGJlIDEuMDEwN3ggZmFzdGVyCiAgIGRhdGUt
Zm9ybWF0LXhwYXJiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNjYwMCstMC4x
MjE4ICAgICA/ICAgICAgNC42OTI3Ky0wLjA3ODMgICAgICAgID8KICAgbWF0aC1jb3JkaWMgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi44MDUzKy0wLjEzNzMgICAgICAg
ICAgICAyLjcyMzMrLTAuMDM0OSAgICAgICAgICBtaWdodCBiZSAxLjAzMDF4IGZhc3RlcgogICBt
YXRoLXBhcnRpYWwtc3VtcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjAwOTEr
LTAuMTM4MyAgICAgICAgICAgIDMuOTY2OSstMC4wNDUxICAgICAgICAgIG1pZ2h0IGJlIDEuMDEw
NnggZmFzdGVyCiAgIG1hdGgtc3BlY3RyYWwtbm9ybSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDEuOTA5NSstMC4wNDEzICAgICA/ICAgICAgMS45Mzc0Ky0wLjA2NDYgICAgICAgID8g
bWlnaHQgYmUgMS4wMTQ2eCBzbG93ZXIKICAgcmVnZXhwLWRuYSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNi4zOTA4Ky0wLjIwMzIgICAgICAgICAgICA2LjM1NDUrLTAu
MzEwNCAgICAgICAgCiAgIHN0cmluZy1iYXNlNjQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDQuMTE5MSstMC4zMTE1ICAgICAgICAgICAgNC4wMDU4Ky0wLjAyODAgICAgICAg
ICAgbWlnaHQgYmUgMS4wMjgzeCBmYXN0ZXIKICAgc3RyaW5nLWZhc3RhICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNS40OTQxKy0wLjEwNzUgICAgICAgICAgICA1LjQ3Nzgr
LTAuMTQyMiAgICAgICAgCiAgIHN0cmluZy10YWdjbG91ZCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDguMzEyOSstMC4xMzExICAgICA/ICAgICAgOC4zMTQ0Ky0wLjE2NjcgICAg
ICAgID8KICAgc3RyaW5nLXVucGFjay1jb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAxOC4xNzE4Ky0xLjA0ODIgICAgID8gICAgIDE4LjYyNDYrLTEuMDUwMSAgICAgICAgPyBtaWdo
dCBiZSAxLjAyNDl4IHNsb3dlcgogICBzdHJpbmctdmFsaWRhdGUtaW5wdXQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA0LjEwNDIrLTAuMTQ2NSAgICAgICAgICAgIDQuMDkwMCstMC4wNzAw
ICAgICAgICAKCiAgIDxhcml0aG1ldGljPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDQuNDIxOCstMC4wNDYxICAgICA/ICAgICAgNC40Mzc0Ky0wLjA3MDUgICAgICAgID8g
bWlnaHQgYmUgMS4wMDM1eCBzbG93ZXIKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgVGlwT2ZUcmVlICAgICAgICAgICAgICAgICAgIFRoaW5n
cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCkxvbmdTcGlkZXI6CiAgIDNk
LWN1YmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3NTkuNjc0Mist
Ny4yNzEzICAgICAgICAgIDc1Ny44NzA5Ky02LjA4NjMgICAgICAgIAogICAzZC1tb3JwaCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTg3LjE3NTkrLTcuMDExMSAgICAg
PyAgICA1ODcuMzMxOSstMTEuODg2OSAgICAgICA/CiAgIDNkLXJheXRyYWNlICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA0ODEuMTgzMystNy41ODY2ICAgICAgICAgIDQ3MS4y
MzU0Ky02LjUxODcgICAgICAgICAgbWlnaHQgYmUgMS4wMjExeCBmYXN0ZXIKICAgYWNjZXNzLWJp
bmFyeS10cmVlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDgxOS4zMzA5Ky05LjA5NDcg
ICAgID8gICAgODIyLjc1ODYrLTE1Ljk4NzMgICAgICAgPwogICBhY2Nlc3MtZmFubmt1Y2ggICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjQ2LjAxOTYrLTguMTEzOSAgICAgPyAgICAy
NTEuMjAzMystOC42Mzk5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDIxMXggc2xvd2VyCiAgIGFjY2Vz
cy1uYm9keSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1MTAuMTg0OSstMy42
OTUzICAgICA/ICAgIDUxNS4yNzk1Ky02LjkxMDIgICAgICAgID8KICAgYWNjZXNzLW5zaWV2ZSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI4Mi44OTQyKy0zLjg4NjAgICAgID8g
ICAgMjg1LjA0OTArLTkuMzQ5MiAgICAgICAgPwogICBiaXRvcHMtM2JpdC1iaXRzLWluLWJ5dGUg
ICAgICAgICAgICAgICAgICAgICAgICAgIDMzLjY3MjMrLTEuNjU4NiAgICAgICAgICAgMzIuNjI5
MSstMC45NDUxICAgICAgICAgIG1pZ2h0IGJlIDEuMDMyMHggZmFzdGVyCiAgIGJpdG9wcy1iaXRz
LWluLWJ5dGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOTEuMzkzMSstMC45MzI5ICAg
ICA/ICAgICA5Mi41OTI3Ky0yLjI5NTMgICAgICAgID8gbWlnaHQgYmUgMS4wMTMxeCBzbG93ZXIK
ICAgYml0b3BzLW5zaWV2ZS1iaXRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM4OC42
MDgwKy02LjUyODYgICAgICAgICAgMzg2LjY0NTYrLTQuMzE2NCAgICAgICAgCiAgIGNvbnRyb2xm
bG93LXJlY3Vyc2l2ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA0NTYuOTA2MCstMjAuNDgz
MyAgICA/ICAgIDQ1OS4yNDY5Ky0xMi40MTI5ICAgICAgID8KICAgY3J5cHRvLWFlcyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDU3My40MjczKy0xLjgwODYgICAgID8gICAg
NTc1Ljc0ODYrLTE2LjI3MTEgICAgICAgPwogICBjcnlwdG8tbWQ1ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNDgxLjM4NjkrLTcuMjUwMyAgICAgICAgICA0NzguNTY3OCst
OC40MDUyICAgICAgICAKICAgY3J5cHRvLXNoYTEgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDY1NS4xNTUzKy0xMi4zNjI0ICAgICAgICAgNjQ1LjU2MTgrLTkuODEwMCAgICAg
ICAgICBtaWdodCBiZSAxLjAxNDl4IGZhc3RlcgogICBkYXRlLWZvcm1hdC10b2Z0ZSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNTA0Ljg4OTIrLTEwLjM4NDcgICAgPyAgICA1MTEuNTA1
MystMTguMDE5NyAgICAgICA/IG1pZ2h0IGJlIDEuMDEzMXggc2xvd2VyCiAgIGRhdGUtZm9ybWF0
LXhwYXJiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2MzMuMzExNystMzEuMDAxMCAg
ICAgICAgIDYyNy4zNjY3Ky0yLjg3MDMgICAgICAgIAogICBoYXNoLW1hcCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMTUwLjMyMzQrLTYuMjY1MiAgICAgICAgICAxNDYu
OTc5OCstOS4wNDE2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDIyN3ggZmFzdGVyCiAgIG1hdGgtY29y
ZGljICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0MzIuMDY3OSstNC4yNTE4
ICAgICA/ICAgIDQzMi42Mjg2Ky01LjY1OTUgICAgICAgID8KICAgbWF0aC1wYXJ0aWFsLXN1bXMg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI4MS45NDIyKy03LjM3MDcgICAgICAgICAg
MjgxLjA5NjcrLTcuMjgwNCAgICAgICAgCiAgIG1hdGgtc3BlY3RyYWwtbm9ybSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA1NDAuNzEwMCstMi43MDE2ICAgICA/ICAgIDU0My40NDgyKy0y
Ljc3MDggICAgICAgID8KICAgc3RyaW5nLWJhc2U2NCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDMzNS41MzEwKy0zLjc2MzcgICAgICAgICAgMzMxLjc3MDgrLTUuNTQ4NCAgICAg
ICAgICBtaWdodCBiZSAxLjAxMTN4IGZhc3RlcgogICBzdHJpbmctZmFzdGEgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMzM1Ljc3MjQrLTkuODA3MiAgICAgICAgICAzMzMuOTgx
MCstNi4zMjk3ICAgICAgICAKICAgc3RyaW5nLXRhZ2Nsb3VkICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDE3NC4zOTIxKy0yLjMwNDIgICAgID8gICAgMTc0LjY0NzIrLTMuMDQ5NiAg
ICAgICAgPwoKICAgPGdlb21ldHJpYz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDM1Mi40MDQ1Ky0xLjEyMTggICAgICAgICAgMzUxLjY5ODkrLTEuNDMzMyAgICAgICAgICBt
aWdodCBiZSAxLjAwMjB4IGZhc3RlcgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBUaXBPZlRyZWUgICAgICAgICAgICAgICAgICAgVGhpbmdz
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKVjhTcGlkZXI6CiAgIGNyeXB0
byAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzYuNjQ5MCstMS4z
NDcwICAgICAgICAgICAzNi4yNjc5Ky0wLjIwNTQgICAgICAgICAgbWlnaHQgYmUgMS4wMTA1eCBm
YXN0ZXIKICAgZGVsdGFibHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA0OS42NjE1Ky0wLjY5NzYgICAgID8gICAgIDQ5Ljk2NDIrLTIuMTA0MSAgICAgICAgPwogICBl
YXJsZXktYm95ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM4LjI3Mjkr
LTAuMjM2NyAgICAgPyAgICAgMzguNjQxNistMC4zODU3ICAgICAgICA/CiAgIHJheXRyYWNlICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTkuNjI1OCstMC4zNzkzICAg
ICA/ICAgICAxOS45MjUyKy0wLjgyNzMgICAgICAgID8gbWlnaHQgYmUgMS4wMTUzeCBzbG93ZXIK
ICAgcmVnZXhwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1Ny4x
Mzc5Ky04Ljc1OTMgICAgICAgICAgIDU0LjcxODYrLTEuNTQ2MSAgICAgICAgICBtaWdodCBiZSAx
LjA0NDJ4IGZhc3RlcgogICByaWNoYXJkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDQwLjM2MjErLTEuOTM4NCAgICAgICAgICAgMzkuMjgzNCstMC4zMDYwICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDI3NXggZmFzdGVyCiAgIHNwbGF5ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMjkuNzIwNystMS4yNjA4ICAgICAgICAgICAyOC43NDc0
Ky0wLjIwMDggICAgICAgICAgbWlnaHQgYmUgMS4wMzM5eCBmYXN0ZXIKCiAgIDxnZW9tZXRyaWM+
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzYuODg1NystMC44Mzg4ICAg
ICAgICAgICAzNi40ODU1Ky0wLjA2NjYgICAgICAgICAgbWlnaHQgYmUgMS4wMTEweCBmYXN0ZXIK
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
VGlwT2ZUcmVlICAgICAgICAgICAgICAgICAgIFRoaW5ncyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCk9jdGFuZToKICAgZW5jcnlwdCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAwLjE1Njg2Ky0wLjAwNDI3ICAgID8gICAgIDAuMTU3MTgrLTAu
MDAyNjMgICAgICAgPwogICBkZWNyeXB0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDIuODE3NjIrLTAuMDYzNzEgICAgICAgICAgMi43NjM0MistMC4wMjA0NCAgICAg
ICAgIG1pZ2h0IGJlIDEuMDE5NnggZmFzdGVyCiAgIGRlbHRhYmx1ZSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgeDIgICAgICAgMC4xMjc0NistMC4wMDE4OSAgICA/ICAgICAwLjEyODAx
Ky0wLjAwMTc1ICAgICAgID8KICAgZWFybGV5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAwLjI4MTgxKy0wLjAwMTgwICAgICAgICAgIDAuMjgxMTgrLTAuMDAyMzkg
ICAgICAgCiAgIGJveWVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgNC44NjAxNSstMC4xNDY1MCAgICA/ICAgICA0Ljg3NDcyKy0wLjE4OTQyICAgICAgID8KICAg
bmF2aWVyLXN0b2tlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MiAgICAgICA0Ljg2MTA5
Ky0wLjA1MDIzICAgICAgICAgIDQuODQ3MDYrLTAuMDMyODUgICAgICAgCiAgIHJheXRyYWNlICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAgICAgMC43ODE2NystMC4wMDk4MiAg
ICAgICAgICAwLjc3ODU5Ky0wLjAwODAxICAgICAgIAogICByaWNoYXJkcyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHgyICAgICAgIDAuMDgxODUrLTAuMDAxNzkgICAgPyAgICAgMC4w
ODIxMSstMC4wMDIwMCAgICAgICA/CiAgIHNwbGF5ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgeDIgICAgICAgMC4zMzEwOSstMC4wMDE4NSAgICA/ICAgICAwLjMzNDM2Ky0wLjAw
NTg3ICAgICAgID8KICAgcmVnZXhwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4
MiAgICAgIDE1LjgxMDc2Ky0wLjQzMjYxICAgID8gICAgMTYuMTA1MTMrLTAuNDA2MzcgICAgICAg
PyBtaWdodCBiZSAxLjAxODZ4IHNsb3dlcgogICBwZGZqcyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHgyICAgICAgNDIuOTA1MjcrLTExLjU0NjY1ICAgICAgICAzOC41Njk5Nyst
MC42MTk5MiAgICAgICAgIG1pZ2h0IGJlIDEuMTEyNHggZmFzdGVyCiAgIG1hbmRyZWVsICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAgICA0MC45NDEwMistMC4yMzQ0MiAgICA/
ICAgIDQxLjAwMjgzKy0wLjMzMzQ0ICAgICAgID8KICAgZ2JlbXUgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB4MiAgICAgIDMwLjMzMDIyKy0yLjc2NzAzICAgID8gICAgMzAuNzAw
NDIrLTMuMTgzMjkgICAgICAgPyBtaWdodCBiZSAxLjAxMjJ4IHNsb3dlcgogICBjbG9zdXJlICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuNTMxMjkrLTAuMDIyMzIg
ICAgICAgICAgMC41MTY1NystMC4wMDMyMyAgICAgICAgIG1pZ2h0IGJlIDEuMDI4NXggZmFzdGVy
CiAgIGpxdWVyeSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNi41
MDY2MystMC4xMDE0MyAgICA/ICAgICA2LjUzNzA3Ky0wLjA0NzUwICAgICAgID8KICAgYm94MmQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4MiAgICAgICA5LjE5MTc4Ky0wLjEw
NDc0ICAgICAgICAgIDkuMTQyNzMrLTAuMTQzMTUgICAgICAgCiAgIHpsaWIgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgeDIgICAgIDM1My4zMjY4MistNS4zNDMzNyAgICAgICAg
MzUwLjEwNzk5Ky0xMy45MjMwNyAgICAgIAogICB0eXBlc2NyaXB0ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHgyICAgICA2MjIuNjc1NDYrLTcuOTkzNDkgICAgPyAgIDYyNS4yMzEzMist
Ni45MzQxNCAgICAgICA/CgogICA8Z2VvbWV0cmljPiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDUuMDExMDkrLTAuMDkzMDcgICAgICAgICAgNC45ODU5NistMC4wMzM4OSAg
ICAgICAgIG1pZ2h0IGJlIDEuMDA1MHggZmFzdGVyCgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRpcE9mVHJlZSAgICAgICAgICAgICAgICAg
ICBUaGluZ3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApLcmFrZW46CiAg
IGFpLWFzdGFyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDg2Ljg2
MistMi44NTIgICAgICAgICAgICAgODYuNTQxKy0zLjI0MiAgICAgICAgIAogICBhdWRpby1iZWF0
LWRldGVjdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNy44MDkrLTAuNDI3ICAg
ICAgICAgICAgIDM3LjczMSstMC4xOTcgICAgICAgICAKICAgYXVkaW8tZGZ0ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOTYuMjA1Ky0wLjcwMSAgICAgID8gICAgICA5
Ny4zNDkrLTIuNDcwICAgICAgICAgPyBtaWdodCBiZSAxLjAxMTl4IHNsb3dlcgogICBhdWRpby1m
ZnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzMC4wMzcrLTAuMTMw
ICAgICAgPyAgICAgIDMwLjE1NistMC4yMzIgICAgICAgICA/CiAgIGF1ZGlvLW9zY2lsbGF0b3Ig
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDU2LjkxNistMS42MzkgICAgICAgICAg
ICAgNTYuMTQ1Ky0xLjE2MCAgICAgICAgICAgbWlnaHQgYmUgMS4wMTM3eCBmYXN0ZXIKICAgaW1h
Z2luZy1kYXJrcm9vbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNjEuMzM1Ky0y
LjQwMiAgICAgICAgICAgICA2MC4yMTUrLTEuMTYxICAgICAgICAgICBtaWdodCBiZSAxLjAxODZ4
IGZhc3RlcgogICBpbWFnaW5nLWRlc2F0dXJhdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA0My44MzYrLTAuNTg5ICAgICAgICAgICAgIDQzLjY3OCstMC40MjQgICAgICAgICAKICAg
aW1hZ2luZy1nYXVzc2lhbi1ibHVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNjEuOTc1
Ky0yLjA2MCAgICAgID8gICAgICA2Mi42MTQrLTEuOTc4ICAgICAgICAgPyBtaWdodCBiZSAxLjAx
MDN4IHNsb3dlcgogICBqc29uLXBhcnNlLWZpbmFuY2lhbCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAzMi43NDMrLTAuODk4ICAgICAgPyAgICAgIDMyLjkyOCstMC4yMDIgICAgICAgICA/
CiAgIGpzb24tc3RyaW5naWZ5LXRpbmRlcmJveCAgICAgICAgICAgICAgICAgICAgICAgICAgIDIy
LjIxOSstMC40NjEgICAgICA/ICAgICAgMjIuNTgzKy0wLjM2NyAgICAgICAgID8gbWlnaHQgYmUg
MS4wMTY0eCBzbG93ZXIKICAgc3RhbmZvcmQtY3J5cHRvLWFlcyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMzguMjk4Ky0yLjEwNyAgICAgICAgICAgICAzNy4zMTYrLTAuMzcxICAgICAg
ICAgICBtaWdodCBiZSAxLjAyNjN4IGZhc3RlcgogICBzdGFuZm9yZC1jcnlwdG8tY2NtICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAzMi40MjErLTEuNzk0ICAgICAgPyAgICAgIDM0LjEw
OCstMS43MjQgICAgICAgICA/IG1pZ2h0IGJlIDEuMDUyMHggc2xvd2VyCiAgIHN0YW5mb3JkLWNy
eXB0by1wYmtkZjIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDk0Ljc2MSstMC40ODEgICAg
ICA/ICAgICAgOTQuOTM1Ky0xLjM3OCAgICAgICAgID8KICAgc3RhbmZvcmQtY3J5cHRvLXNoYTI1
Ni1pdGVyYXRpdmUgICAgICAgICAgICAgICAgICAgMzYuNTgzKy0wLjQ1OSAgICAgICAgICAgICAz
Ni40MDArLTAuMzcxICAgICAgICAgCgogICA8YXJpdGhtZXRpYz4gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA1Mi4yODYrLTAuNDMyICAgICAgPyAgICAgIDUyLjMzNistMC4z
NTkgICAgICAgICA/IG1pZ2h0IGJlIDEuMDAxMHggc2xvd2VyCgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRpcE9mVHJlZSAgICAgICAgICAg
ICAgICAgICBUaGluZ3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApKU1Jl
Z3Jlc3M6CiAgIGFiYy1mb3J3YXJkLWxvb3AtZXF1YWwgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMjMuNDk2OCstMC41OTQxICAgICAgICAgICAyMy4yNTE1Ky0wLjI4MjUgICAgICAgICAgbWln
aHQgYmUgMS4wMTA2eCBmYXN0ZXIKICAgYWJjLXBvc3RmaXgtYmFja3dhcmQtbG9vcCAgICAgICAg
ICAgICAgICAgICAgICAgICAyOS40NDczKy0wLjM3MTMgICAgID8gICAgIDMxLjYyMTArLTUuNDE2
MSAgICAgICAgPyBtaWdodCBiZSAxLjA3Mzh4IHNsb3dlcgogICBhYmMtc2ltcGxlLWJhY2t3YXJk
LWxvb3AgICAgICAgICAgICAgICAgICAgICAgICAgIDIzLjY0MzYrLTAuNzU5OCAgICAgICAgICAg
MjMuNDkwNSstMC45MjI1ICAgICAgICAKICAgYWJjLXNpbXBsZS1mb3J3YXJkLWxvb3AgICAgICAg
ICAgICAgICAgICAgICAgICAgICAyMy4xNjE5Ky0wLjI0MDMgICAgID8gICAgIDIzLjI2MTMrLTAu
NTk1OCAgICAgICAgPwogICBhYmMtc2tpcHB5LWxvb3AgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDIwLjcwNTArLTEuNDU5NSAgICAgICAgICAgMjAuMjg3NCstMC4xNzcxICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDIwNnggZmFzdGVyCiAgIGFicy1ib29sZWFuICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDIuMjMyOSstMC4wNzU1ICAgICAgICAgICAgMi4xNjUw
Ky0wLjAyMjQgICAgICAgICAgbWlnaHQgYmUgMS4wMzE0eCBmYXN0ZXIKICAgYWRhcHQtdG8tZG91
YmxlLWRpdmlkZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNC43MDIxKy0xLjE5NzggICAg
ICAgICAgIDE0LjE2MDgrLTAuNDMxNyAgICAgICAgICBtaWdodCBiZSAxLjAzODJ4IGZhc3Rlcgog
ICBhbGlhc2VkLWFyZ3VtZW50cy1nZXRieXZhbCAgICAgICAgICAgICAgICAgICAgICAgICAxLjA2
MTYrLTAuMDk5NSAgICAgICAgICAgIDAuOTc4OSstMC4wMjIyICAgICAgICAgIG1pZ2h0IGJlIDEu
MDg0NXggZmFzdGVyCiAgIGFsbG9jYXRlLWJpZy1vYmplY3QgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDIuMjE3NSstMC4yMDA0ICAgICAgICAgICAgMi4yMTUzKy0wLjEzMDIgICAgICAg
IAogICBhcmd1bWVudHMtbmFtZWQtYW5kLXJlZmxlY3RpdmUgICAgICAgICAgICAgICAgICAgICA3
Ljk4NTErLTAuMzA1OSAgICAgICAgICAgIDcuNzk2MCstMC4xMDE1ICAgICAgICAgIG1pZ2h0IGJl
IDEuMDI0M3ggZmFzdGVyCiAgIGFyZ3VtZW50cy1vdXQtb2YtYm91bmRzICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDkuNjQwMCstMC4yNTU1ICAgICAgICAgICAgOS42MDgxKy0wLjIyMzAgICAg
ICAgIAogICBhcmd1bWVudHMtc3RyaWN0LW1vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDE5Ljk3OTUrLTAuNzA0OSAgICAgICAgICAgMTkuNDIzOCstMC40MDk4ICAgICAgICAgIG1pZ2h0
IGJlIDEuMDI4NnggZmFzdGVyCiAgIGFyZ3VtZW50cyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDYuMzc4MistMC4xOTEzICAgICAgICAgICAgNi4zNDMxKy0wLjE3OTQg
ICAgICAgIAogICBhcml0eS1taXNtYXRjaC1pbmxpbmluZyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAwLjc2MjIrLTAuMDIzNiAgICAgPyAgICAgIDAuNzc5OCstMC4wNjQ2ICAgICAgICA/IG1p
Z2h0IGJlIDEuMDIzMXggc2xvd2VyCiAgIGFycmF5LWFjY2Vzcy1wb2x5bW9ycGhpYy1zdHJ1Y3R1
cmUgICAgICAgICAgICAgICAgIDMuNjc1MystMC4xMTgyICAgICAgICAgICAgMy41ODIwKy0wLjA1
NzIgICAgICAgICAgbWlnaHQgYmUgMS4wMjYxeCBmYXN0ZXIKICAgYXJyYXktbm9uYXJyYXktcG9s
eW1vcmhwaWMtYWNjZXNzICAgICAgICAgICAgICAgICAxOS45NDczKy0xLjQ4MTcgICAgID8gICAg
IDIwLjY0MTIrLTAuMzEzOCAgICAgICAgPyBtaWdodCBiZSAxLjAzNDh4IHNsb3dlcgogICBhcnJh
eS1wcm90b3R5cGUtZXZlcnkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDc5Ljc0OTErLTI5
LjI2MjUgICAgICAgICAgNjguOTE0MCstMS41MzAxICAgICAgICAgIG1pZ2h0IGJlIDEuMTU3Mngg
ZmFzdGVyCiAgIGFycmF5LXByb3RvdHlwZS1mb3JFYWNoICAgICAgICAgICAgICAgICAgICAgICAg
ICAgNjcuNTE3OCstMC4yNDg3ICAgICA/ICAgICA2OC4xOTAzKy0xLjY3MzcgICAgICAgID8KICAg
YXJyYXktcHJvdG90eXBlLW1hcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3Mi4xNzE3
Ky0yLjEyOTIgICAgICAgICAgIDcxLjg4NzUrLTEuNzg4NiAgICAgICAgCiAgIGFycmF5LXByb3Rv
dHlwZS1yZWR1Y2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgNjYuODQ0OCstMS4xOTUxICAg
ICA/ICAgICA2Ny4wMjU2Ky0xLjQzMjAgICAgICAgID8KICAgYXJyYXktcHJvdG90eXBlLXJlZHVj
ZVJpZ2h0ICAgICAgICAgICAgICAgICAgICAgICA5MS4zODE4Ky0xLjY5MzkgICAgID8gICAgIDkz
LjE1NDQrLTIuNTA1NyAgICAgICAgPyBtaWdodCBiZSAxLjAxOTR4IHNsb3dlcgogICBhcnJheS1w
cm90b3R5cGUtc29tZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcwLjY4NjYrLTIuOTA1
NCAgICAgICAgICAgNjkuNzkxNSstMi4xMjMxICAgICAgICAgIG1pZ2h0IGJlIDEuMDEyOHggZmFz
dGVyCiAgIGFycmF5LXNwbGljZS1jb250aWd1b3VzICAgICAgICAgICAgICAgICAgICAgICAgICAg
MjIuNjA2MistMS44NzYzICAgICAgICAgICAyMi41NjIyKy0wLjI3ODkgICAgICAgIAogICBhcnJh
eS13aXRoLWRvdWJsZS1hZGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjE3NTUrLTAu
MTQwMCAgICAgICAgICAgIDMuMTUwNSstMC4wNjA3ICAgICAgICAKICAgYXJyYXktd2l0aC1kb3Vi
bGUtaW5jcmVtZW50ICAgICAgICAgICAgICAgICAgICAgICAgMi42OTg1Ky0wLjA3NzUgICAgID8g
ICAgICAyLjc1NDQrLTAuMDgxOCAgICAgICAgPyBtaWdodCBiZSAxLjAyMDd4IHNsb3dlcgogICBh
cnJheS13aXRoLWRvdWJsZS1tdWwtYWRkICAgICAgICAgICAgICAgICAgICAgICAgICAzLjU4NDAr
LTAuMDYzNCAgICAgPyAgICAgIDMuNjQ0MistMC4xNDU3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE2
OHggc2xvd2VyCiAgIGFycmF5LXdpdGgtZG91YmxlLXN1bSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDIuNjcyMCstMC4wOTY4ICAgICA/ICAgICAgMi43NzQ1Ky0wLjI4MzkgICAgICAgID8g
bWlnaHQgYmUgMS4wMzg0eCBzbG93ZXIKICAgYXJyYXktd2l0aC1pbnQzMi1hZGQtc3ViICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNC42Njk4Ky0wLjA1OTMgICAgID8gICAgICA0LjY3NDIrLTAu
MDYxNCAgICAgICAgPwogICBhcnJheS13aXRoLWludDMyLW9yLWRvdWJsZS1zdW0gICAgICAgICAg
ICAgICAgICAgICAyLjg3MzgrLTAuMjUyNSAgICAgICAgICAgIDIuNzI1OCstMC4wMzcxICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDU0M3ggZmFzdGVyCiAgIEFycmF5QnVmZmVyLURhdGFWaWV3LWFsbG9j
LWxhcmdlLWxvbmctbGl2ZWQgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAzOC41MDMzKy0wLjMzMDggICAgID8gICAgIDM4LjU1MzUrLTAuMzU2
NCAgICAgICAgPwogICBBcnJheUJ1ZmZlci1EYXRhVmlldy1hbGxvYy1sb25nLWxpdmVkICAgICAg
ICAgICAgIDE0LjY0MDMrLTAuMzM5OCAgICAgPyAgICAgMTQuNjc1NystMC4yNzg4ICAgICAgICA/
CiAgIEFycmF5QnVmZmVyLUludDMyQXJyYXktYnl0ZU9mZnNldCAgICAgICAgICAgICAgICAgIDMu
NjQ1OCstMC4wNjk0ICAgICA/ICAgICAgMy42NzMwKy0wLjEwODUgICAgICAgID8KICAgQXJyYXlC
dWZmZXItSW50OEFycmF5LWFsbG9jLWxhcmdlLWxvbmctbGl2ZWQgICAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzOC40MTcxKy0wLjQwMDAgICAg
ID8gICAgIDM4LjU5OTkrLTAuOTcyNCAgICAgICAgPwogICBBcnJheUJ1ZmZlci1JbnQ4QXJyYXkt
YWxsb2MtbG9uZy1saXZlZC1idWZmZXIgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAxOS45NDQ4Ky0wLjM3MjYgICAgID8gICAgIDIwLjQyMTcr
LTEuMjY4MSAgICAgICAgPyBtaWdodCBiZSAxLjAyMzl4IHNsb3dlcgogICBBcnJheUJ1ZmZlci1J
bnQ4QXJyYXktYWxsb2MtbG9uZy1saXZlZCAgICAgICAgICAgIDEzLjgzMTYrLTAuMjY2MiAgICAg
ICAgICAgMTMuNjgzOSstMC4zNjYzICAgICAgICAgIG1pZ2h0IGJlIDEuMDEwOHggZmFzdGVyCiAg
IEFycmF5QnVmZmVyLUludDhBcnJheS1hbGxvYyAgICAgICAgICAgICAgICAgICAgICAgMTIuNjcx
NistMS4yMjY5ICAgICAgICAgICAxMi41NzQ5Ky0wLjk2MTMgICAgICAgIAogICBhcnJvd2Z1bmN0
aW9uLWNhbGwtaW4tY2xhc3MtY29uc3RydWN0b3IgICAgICAgICAgIDY2Ljk0MDYrLTEuMzkyNSAg
ICAgICAgICAgNjYuNjAyMSstMC40ODg0ICAgICAgICAKICAgYXJyb3dmdW5jdGlvbi1jYWxsLWlu
LWNsYXNzLW1ldGhvZCAgICAgICAgICAgICAgICAxOC43MzkxKy0wLjg2MTAgICAgICAgICAgIDE4
LjQ1MDQrLTAuMzExMiAgICAgICAgICBtaWdodCBiZSAxLjAxNTZ4IGZhc3RlcgogICBhcnJvd2Z1
bmN0aW9uLWNhbGwtaW4tZnVuY3Rpb24gICAgICAgICAgICAgICAgICAgIDExLjYwNDcrLTAuNjMy
MiAgICAgPyAgICAgMTEuNjgzNystMC42MzYyICAgICAgICA/CiAgIGFycm93ZnVuY3Rpb24tY2Fs
bCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkuMTE3MystMC4wOTM3ICAgICA/ICAg
ICAgOS4xNzcyKy0wLjA4MzggICAgICAgID8KICAgYXNtanNfYm9vbF9idWcgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNy40ODQ0Ky0wLjIwMDAgICAgICAgICAgICA3LjIxMTMr
LTAuMjg1MSAgICAgICAgICBtaWdodCBiZSAxLjAzNzl4IGZhc3RlcgogICBhc3NpZ24tY3VzdG9t
LXNldHRlci1wb2x5bW9ycGhpYyAgICAgICAgICAgICAgICAgICAyLjU4MjQrLTAuMTE3NSAgICAg
ICAgICAgIDIuNDYyMistMC4wNDI4ICAgICAgICAgIG1pZ2h0IGJlIDEuMDQ4OHggZmFzdGVyCiAg
IGFzc2lnbi1jdXN0b20tc2V0dGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuODk0
NistMC4xMTgwICAgICAgICAgICAgMy44MzExKy0wLjA3NzIgICAgICAgICAgbWlnaHQgYmUgMS4w
MTY2eCBmYXN0ZXIKICAgYmFzaWMtc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgNy4xNTczKy0wLjMxMzQgICAgID8gICAgICA3LjI2MTUrLTAuMTY3MSAgICAgICAg
PyBtaWdodCBiZSAxLjAxNDZ4IHNsb3dlcgogICBiaWctaW50LW11bCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAzLjAzMjQrLTAuMDM2OSAgICAgPyAgICAgIDMuMDM5Mist
MC4wNjIwICAgICAgICA/CiAgIGJpZ3N3aXRjaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMjkuMTQzMCstMC40ODU3ICAgICBeICAgICAyMS4xOTM1Ky0wLjM1NzYgICAg
ICAgIF4gZGVmaW5pdGVseSAxLjM3NTF4IGZhc3RlcgogICBib29sZWFuLXRlc3QgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjcxMjcrLTAuMDI4NiAgICAgPyAgICAgIDIu
NzY2MistMC4xMDUyICAgICAgICA/IG1pZ2h0IGJlIDEuMDE5N3ggc2xvd2VyCiAgIGJvdW5kLWZ1
bmN0aW9uLWNhbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkuNzE2MystMC4xNTE4
ICAgICA/ICAgICAgOS43Mjc0Ky0wLjEyMzIgICAgICAgID8KICAgYnJhbmNoLWZvbGQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy44MjIyKy0wLjI4MjAgICAgICAgICAg
ICAzLjYyNjErLTAuMDU1MSAgICAgICAgICBtaWdodCBiZSAxLjA1NDF4IGZhc3RlcgogICBicmFu
Y2gtb24tc3RyaW5nLWFzLWJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgIDEwLjM4NzQrLTAu
Mzc1MiAgICAgPyAgICAgMTEuMTU1OSstMS42NjA2ICAgICAgICA/IG1pZ2h0IGJlIDEuMDc0MHgg
c2xvd2VyCiAgIGJ1Zy0xNTM0MzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDIuNzU2NistMC4xMDU5ICAgICAgICAgICAgMi43NTE3Ky0wLjI2MDcgICAgICAgIAogICBi
dWlsZC1sYXJnZS1vYmplY3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI5Ljg5NTUr
LTAuMjcwMyAgICAgPyAgICAgMzAuMTIwOCstMC4zODc0ICAgICAgICA/CiAgIGJ5LXZhbC1nZW5l
cmljICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNTUyNistMC45NzEwICAg
ICAgICAgICAgNC4yMTc1Ky0wLjM1NTggICAgICAgICAgbWlnaHQgYmUgMS4wNzk1eCBmYXN0ZXIK
ICAgY2FsbC1zcHJlYWQtYXBwbHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNS40
OTE3Ky0wLjQ4NTIgICAgID8gICAgIDI1Ljc0MDkrLTAuODg4NSAgICAgICAgPwogICBjYWxsLXNw
cmVhZC1jYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI4Ljg3MDQrLTAuNTQ3
NyAgICAgPyAgICAgMjkuNjYzNCstMS41NjM2ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI3NXggc2xv
d2VyCiAgIGNhcHR1cmVkLWFzc2lnbm1lbnRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDAuMzQzOCstMC4wMTU4ICAgICA/ICAgICAgMC4zNTU0Ky0wLjAzNTAgICAgICAgID8gbWlnaHQg
YmUgMS4wMzQweCBzbG93ZXIKICAgY2FzdC1pbnQtdG8tZG91YmxlICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgNC45MTU4Ky0wLjE4NTIgICAgICAgICAgICA0LjgyODArLTAuMTAzOCAg
ICAgICAgICBtaWdodCBiZSAxLjAxODJ4IGZhc3RlcgogICBjZWxsLWFyZ3VtZW50ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjc0MDIrLTAuMTk1MCAgICAgPyAgICAgIDIu
NzQ3MCstMC4yNjM5ICAgICAgICA/CiAgIGNmZy1zaW1wbGlmeSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDIuNzc1NSstMC4xMTY2ICAgICA/ICAgICAgMi43NzY0Ky0wLjEy
NjkgICAgICAgID8KICAgY2hhaW4tZ2V0dGVyLWFjY2VzcyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAxMC41NzI2Ky0wLjE1NjMgICAgID8gICAgIDEwLjgzNTcrLTAuNzQxNiAgICAgICAg
PyBtaWdodCBiZSAxLjAyNDl4IHNsb3dlcgogICBjbXBlcS1vYmotdG8tb2JqLW90aGVyICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA4LjE0MDcrLTAuMTUwMyAgICAgICAgICAgIDguMTE0MSst
MC4xMzc1ICAgICAgICAKICAgY29uc3RhbnQtdGVzdCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNC41MjU5Ky0wLjA5NTQgICAgID8gICAgICA0LjU5NzcrLTAuMTE2MiAgICAg
ICAgPyBtaWdodCBiZSAxLjAxNTl4IHNsb3dlcgogICBjcmVhdGUtbG90cy1vZi1mdW5jdGlvbnMg
ICAgICAgICAgICAgICAgICAgICAgICAgICA4LjM5NjgrLTAuMDgxNCAgICAgPyAgICAgIDguNTI3
MSstMC4yODkzICAgICAgICA/IG1pZ2h0IGJlIDEuMDE1NXggc2xvd2VyCiAgIGNzZS1uZXctYXJy
YXktYnVmZmVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuMTQ1MSstMC4wNzE5ICAg
ICA/ICAgICAgMi4yNDA4Ky0wLjI5MDkgICAgICAgID8gbWlnaHQgYmUgMS4wNDQ3eCBzbG93ZXIK
ICAgY3NlLW5ldy1hcnJheSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi4x
Njk5Ky0wLjA3ODAgICAgID8gICAgICAyLjE5MzkrLTAuMDY1NCAgICAgICAgPyBtaWdodCBiZSAx
LjAxMTF4IHNsb3dlcgogICBjdXN0b20tc2V0dGVyLWdldHRlci1hcy1wdXQtZ2V0LWJ5LWlkICAg
ICAgICAgICAgICAwLjQ2MjIrLTAuMTE1OSAgICAgICAgICAgIDAuNDQzOSstMC4wNDc1ICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDQxM3ggZmFzdGVyCiAgIERhdGFWaWV3LWN1c3RvbS1wcm9wZXJ0aWVz
ICAgICAgICAgICAgICAgICAgICAgICAgNDIuNzMxMCstMC4yNjQ0ICAgICA/ICAgICA0Mi44MDU1
Ky0wLjIwMjcgICAgICAgID8KICAgZGVsYXktdGVhci1vZmYtYXJndW1lbnRzLXN0cmljdG1vZGUg
ICAgICAgICAgICAgICAgMy45NDIwKy0wLjE5MzYgICAgID8gICAgICA0LjM4NjgrLTAuNDgwOSAg
ICAgICAgPyBtaWdodCBiZSAxLjExMjl4IHNsb3dlcgogICBkZWx0YWJsdWUtZm9yLW9mICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM0Ljk3NzIrLTEuMTQzMCAgICAgICAgICAgMzMu
ODQ1NSstMC41NjQyICAgICAgICAgIG1pZ2h0IGJlIDEuMDMzNHggZmFzdGVyCiAgIGRlbHRhYmx1
ZS12YXJhcmdzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzguMzMyNCstMS4zNTMy
ICAgICAgICAgICAzNy4yNDkwKy0wLjUzMDYgICAgICAgICAgbWlnaHQgYmUgMS4wMjkxeCBmYXN0
ZXIKICAgZGVzdHJ1Y3R1cmluZy1hcmd1bWVudHMgICAgICAgICAgICAgICAgICAgICAgICAgICA3
OS40NDUxKy0xLjgzNzYgICAgID8gICAgIDgxLjgzMTgrLTEuMjc4MiAgICAgICAgPyBtaWdodCBi
ZSAxLjAzMDB4IHNsb3dlcgogICBkZXN0cnVjdHVyaW5nLXBhcmFtZXRlcnMtb3ZlcnJpZGRlbi1i
eS1mdW5jdGlvbiAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAwLjM3NzIrLTAuMDEzNCAgICAgPyAgICAgIDAuMzc5NistMC4wMjQ4ICAgICAg
ICA/CiAgIGRlc3RydWN0dXJpbmctc3dhcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDQuNDIwNSstMC4xMzc4ICAgICAgICAgICAgNC4zODAwKy0wLjA2MzMgICAgICAgIAogICBkaXJl
Y3QtYXJndW1lbnRzLWdldGJ5dmFsICAgICAgICAgICAgICAgICAgICAgICAgICAwLjk5NTUrLTAu
MDgzNiAgICAgPyAgICAgIDEuMDI0NystMC4wODI0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI5M3gg
c2xvd2VyCiAgIGRpcmVjdC1hcmd1bWVudHMtbGVuZ3RoICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDYuNTAyOSstMC4yNjk1ICAgICA/ICAgICAgNi42NTMyKy0wLjM2NzYgICAgICAgID8gbWln
aHQgYmUgMS4wMjMxeCBzbG93ZXIKICAgZGlyZWN0LWFyZ3VtZW50cy1vdmVycmlkZGVuLWxlbmd0
aCAgICAgICAgICAgICAgICAgNi4zMzA1Ky0wLjIyNzYgICAgID8gICAgICA2LjYxNzErLTAuMjE4
MyAgICAgICAgPyBtaWdodCBiZSAxLjA0NTN4IHNsb3dlcgogICBkaXJlY3QtYXJndW1lbnRzLXBv
c3NpYmx5LW92ZXJyaWRkZW4tbGVuZ3RoICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDYuNjgyMSstMC4wNDU4ICAgICA/ICAgICAgNi42ODY3
Ky0wLjEwMjMgICAgICAgID8KICAgZGl2LWJvb2xlYW4tZG91YmxlICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMy44OTI1Ky0wLjAzNDQgICAgICAgICAgICAzLjg4NzYrLTAuMTQ4MCAg
ICAgICAgCiAgIGRpdi1ib29sZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDcuMjU5NistMC4wNDgyICAgICAgICAgICAgNy4yNDgwKy0wLjA5NjcgICAgICAgIAogICBk
b3VibGUtZ2V0LWJ5LXZhbC1vdXQtb2YtYm91bmRzICAgICAgICAgICAgICAgICAgICA0LjMzMzUr
LTAuMDQwNCAgICAgPyAgICAgIDQuNjc3MistMC44MzY0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDc5
M3ggc2xvd2VyCiAgIGRvdWJsZS1wb2xsdXRpb24tZ2V0Ynl2YWwgICAgICAgICAgICAgICAgICAg
ICAgICAgIDcuOTcxMystMC4xNTM2ICAgICAgICAgICAgNy45NjY1Ky0wLjA0MzggICAgICAgIAog
ICBkb3VibGUtcG9sbHV0aW9uLXB1dGJ5b2Zmc2V0ICAgICAgICAgICAgICAgICAgICAgICAzLjM0
NjYrLTAuMDUxNyAgICAgPyAgICAgIDMuMzc4MystMC4xMTMzICAgICAgICA/CiAgIGRvdWJsZS1y
ZWFsLXVzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjMuNDUxNSstMC41NDMy
ICAgICA/ICAgICAyNC45MjU5Ky0zLjIwOTggICAgICAgID8gbWlnaHQgYmUgMS4wNjI5eCBzbG93
ZXIKICAgZG91YmxlLXRvLWludDMyLXR5cGVkLWFycmF5LW5vLWlubGluZSAgICAgICAgICAgICAg
Mi4yOTE1Ky0wLjIwODAgICAgICAgICAgICAyLjE5NzIrLTAuMDM1NyAgICAgICAgICBtaWdodCBi
ZSAxLjA0Mjl4IGZhc3RlcgogICBkb3VibGUtdG8taW50MzItdHlwZWQtYXJyYXkgICAgICAgICAg
ICAgICAgICAgICAgICAyLjA1NjgrLTAuMDMzNyAgICAgPyAgICAgIDIuMDc3NistMC4wMzgyICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDEwMXggc2xvd2VyCiAgIGRvdWJsZS10by11aW50MzItdHlwZWQt
YXJyYXktbm8taW5saW5lICAgICAgICAgICAgIDIuNTYyNSstMC43NjIyICAgICAgICAgICAgMi4y
NDg1Ky0wLjA0MDIgICAgICAgICAgbWlnaHQgYmUgMS4xMzk2eCBmYXN0ZXIKICAgZG91YmxlLXRv
LXVpbnQzMi10eXBlZC1hcnJheSAgICAgICAgICAgICAgICAgICAgICAgMi4xNDA1Ky0wLjA2MDIg
ICAgID8gICAgICAyLjE0MDcrLTAuMDU5OCAgICAgICAgPwogICBlbGlkYWJsZS1uZXctb2JqZWN0
LWRhZyAgICAgICAgICAgICAgICAgICAgICAgICAgIDE5LjM5NjQrLTAuNjEyNyAgICAgPyAgICAg
MTkuNzg1OSstMC42NTAxICAgICAgICA/IG1pZ2h0IGJlIDEuMDIwMXggc2xvd2VyCiAgIGVsaWRh
YmxlLW5ldy1vYmplY3Qtcm9mbGNvcHRlciAgICAgICAgICAgICAgICAgICAgMjEuNTQ2NistNS4w
Mjg3ICAgICA/ICAgICAyMy4wODc2Ky01LjU1NDQgICAgICAgID8gbWlnaHQgYmUgMS4wNzE1eCBz
bG93ZXIKICAgZWxpZGFibGUtbmV3LW9iamVjdC10aGVuLWNhbGwgICAgICAgICAgICAgICAgICAg
ICAxNy44Mzg0Ky0xLjg4NTggICAgICAgICAgIDE3LjU4MzQrLTEuNzQ0NCAgICAgICAgICBtaWdo
dCBiZSAxLjAxNDV4IGZhc3RlcgogICBlbGlkYWJsZS1uZXctb2JqZWN0LXRyZWUgICAgICAgICAg
ICAgICAgICAgICAgICAgIDE5Ljk5NjErLTAuMjA4MCAgICAgPyAgICAgMjAuNDU4OCstMC43Mzg4
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDIzMXggc2xvd2VyCiAgIGVtcHR5LXN0cmluZy1wbHVzLWlu
dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNTA5MistMC4wNzMxICAgICAgICAgICAg
NC40NzU4Ky0wLjA3NDUgICAgICAgIAogICBlbXNjcmlwdGVuLWN1YmUyaGFzaCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDIzLjA5NjgrLTAuMzIxMCAgICAgICAgICAgMjMuMDQ3MCstMC42
MDQxICAgICAgICAKICAgZXhpdC1sZW5ndGgtb24tcGxhaW4tb2JqZWN0ICAgICAgICAgICAgICAg
ICAgICAgICAgOC4zMjIyKy0wLjE0OTggICAgID8gICAgICA4LjM5NTkrLTAuMTE5NCAgICAgICAg
PwogICBleHRlcm5hbC1hcmd1bWVudHMtZ2V0Ynl2YWwgICAgICAgICAgICAgICAgICAgICAgICAx
LjA4NTUrLTAuMDY5NCAgICAgPyAgICAgIDEuMTMwNCstMC4wOTcwICAgICAgICA/IG1pZ2h0IGJl
IDEuMDQxM3ggc2xvd2VyCiAgIGV4dGVybmFsLWFyZ3VtZW50cy1wdXRieXZhbCAgICAgICAgICAg
ICAgICAgICAgICAgIDIuMDQ1MSstMC4xNDEzICAgICAgICAgICAgMi4wMTk0Ky0wLjA3NTYgICAg
ICAgICAgbWlnaHQgYmUgMS4wMTI3eCBmYXN0ZXIKICAgZml4ZWQtdHlwZWQtYXJyYXktc3RvcmFn
ZS12YXItaW5kZXggICAgICAgICAgICAgICAgMS4zMTczKy0wLjAwODUgICAgID8gICAgICAxLjM0
NDcrLTAuMDUzOCAgICAgICAgPyBtaWdodCBiZSAxLjAyMDh4IHNsb3dlcgogICBmaXhlZC10eXBl
ZC1hcnJheS1zdG9yYWdlICAgICAgICAgICAgICAgICAgICAgICAgICAxLjA0NjUrLTAuMDIzMiAg
ICAgPyAgICAgIDEuMDU3NystMC4wNDQ4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDEwOHggc2xvd2Vy
CiAgIEZsb2F0MzJBcnJheS1tYXRyaXgtbXVsdCAgICAgICAgICAgICAgICAgICAgICAgICAgIDQu
NTUzMCstMC4wOTUxICAgICAgICAgICAgNC40MzAwKy0wLjAzMTUgICAgICAgICAgbWlnaHQgYmUg
MS4wMjc4eCBmYXN0ZXIKICAgRmxvYXQzMkFycmF5LXRvLUZsb2F0NjRBcnJheS1zZXQgICAgICAg
ICAgICAgICAgICAzNy40ODQzKy0wLjkzNDAgICAgICAgICAgIDM3LjQ0NzArLTEuMDQwMSAgICAg
ICAgCiAgIEZsb2F0NjRBcnJheS1hbGxvYy1sb25nLWxpdmVkICAgICAgICAgICAgICAgICAgICAg
NjcuODQ2NistMS45NTQ3ICAgICAgICAgICA2Ni42MTE5Ky0wLjMyNTIgICAgICAgICAgbWlnaHQg
YmUgMS4wMTg1eCBmYXN0ZXIKICAgRmxvYXQ2NEFycmF5LXRvLUludDE2QXJyYXktc2V0ICAgICAg
ICAgICAgICAgICAgICA0Ny43NTQ4Ky0wLjQyMzEgICAgICAgICAgIDQ3Ljc0MzcrLTAuNzM0NyAg
ICAgICAgCiAgIGZvbGQtZG91YmxlLXRvLWludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMTMuMTg5MistMC44NjE4ICAgICAgICAgICAxMi43MzA1Ky0wLjg3NDIgICAgICAgICAgbWln
aHQgYmUgMS4wMzYweCBmYXN0ZXIKICAgZm9sZC1nZXQtYnktaWQtdG8tbXVsdGktZ2V0LWJ5LW9m
ZnNldC1yYXJlLWludCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA2LjkwODMrLTAuMTg3NCAgICAgPyAgICAgIDcuMDA5MCstMC4zMjkwICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDE0Nnggc2xvd2VyCiAgIGZvbGQtZ2V0LWJ5LWlkLXRvLW11bHRp
LWdldC1ieS1vZmZzZXQgICAgICAgICAgICAgIDUuOTg2MystMC4xMTIzICAgICA/ICAgICAgNi4w
MDk3Ky0wLjEyNDYgICAgICAgID8KICAgZm9sZC1tdWx0aS1nZXQtYnktb2Zmc2V0LXRvLWdldC1i
eS1vZmZzZXQgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgNC4yMDM4Ky0wLjA5MjYgICAgID8gICAgICA0Ljc4MjArLTEuNTAzNCAgICAgICAg
PyBtaWdodCBiZSAxLjEzNzZ4IHNsb3dlcgogICBmb2xkLW11bHRpLWdldC1ieS1vZmZzZXQtdG8t
cG9seS1nZXQtYnktb2Zmc2V0ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDQuMjAwOCstMC4xMzEzICAgICA/ICAgICAgNC4zMTgyKy0wLjM0
NDEgICAgICAgID8gbWlnaHQgYmUgMS4wMjc5eCBzbG93ZXIKICAgZm9sZC1tdWx0aS1wdXQtYnkt
b2Zmc2V0LXRvLXBvbHktcHV0LWJ5LW9mZnNldCAgIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjMwOTkrLTAuMzk5NiAgICAgICAgICAgIDQu
MjAzMSstMC4wNjE1ICAgICAgICAgIG1pZ2h0IGJlIDEuMDI1NHggZmFzdGVyCiAgIGZvbGQtbXVs
dGktcHV0LWJ5LW9mZnNldC10by1wdXQtYnktb2Zmc2V0ICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuMjU3NCstMS4zNDYwICAgICAgICAg
ICAgMy42OTcwKy0wLjA2ODcgICAgICAgICAgbWlnaHQgYmUgMS4xNTE2eCBmYXN0ZXIKICAgZm9s
ZC1tdWx0aS1wdXQtYnktb2Zmc2V0LXRvLXJlcGxhY2Utb3ItdHJhbnNpdGlvbi1wdXQtYnktb2Zm
c2V0ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDYuNTM4OCstMC4yNzI3ICAgICA/ICAgICAgNi41NDYxKy0wLjIyOTggICAgICAgID8KICAg
Zm9sZC1wdXQtYnktaWQtdG8tbXVsdGktcHV0LWJ5LW9mZnNldCAgICAgICAgICAgICAgNi4wNzYy
Ky0wLjA5NzQgICAgID8gICAgICA2LjE0NzgrLTAuMjIwMCAgICAgICAgPyBtaWdodCBiZSAxLjAx
MTh4IHNsb3dlcgogICBmb2xkLXB1dC1ieS12YWwtd2l0aC1zdHJpbmctdG8tbXVsdGktcHV0LWJ5
LW9mZnNldCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA2LjQwOTcrLTAuMDgxOSAgICAgPyAgICAgIDYuNDMzMSstMC4wNTQyICAgICAgICA/
CiAgIGZvbGQtcHV0LWJ5LXZhbC13aXRoLXN5bWJvbC10by1tdWx0aS1wdXQtYnktb2Zmc2V0ICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYu
NDE0MystMC4xNTA5ICAgICA/ICAgICAgNi40NjU4Ky0wLjA3MjQgICAgICAgID8KICAgZm9sZC1w
dXQtc3RydWN0dXJlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4yNDkxKy0wLjA0
NDcgICAgID8gICAgICAzLjYyNDErLTAuOTY3MyAgICAgICAgPyBtaWdodCBiZSAxLjExNTR4IHNs
b3dlcgogICBmb3Itb2YtaXRlcmF0ZS1hcnJheS1lbnRyaWVzICAgICAgICAgICAgICAgICAgICAg
IDEwLjIwNTgrLTAuMjEyNSAgICAgICAgICAgIDkuOTk5OSstMC4yMjQ2ICAgICAgICAgIG1pZ2h0
IGJlIDEuMDIwNnggZmFzdGVyCiAgIGZvci1vZi1pdGVyYXRlLWFycmF5LWtleXMgICAgICAgICAg
ICAgICAgICAgICAgICAgIDQuNDI1NSstMC4zNDEyICAgICAgICAgICAgNC40MTg0Ky0wLjI0NjIg
ICAgICAgIAogICBmb3Itb2YtaXRlcmF0ZS1hcnJheS12YWx1ZXMgICAgICAgICAgICAgICAgICAg
ICAgICA0LjE3MzgrLTAuMTAyOSAgICAgPyAgICAgIDQuMTc5NSstMC4xMTc5ICAgICAgICA/CiAg
IGZyb3VuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkuODQ3
NSstMC4xOTI0ICAgICAgICAgICAgOS43NTExKy0wLjEwMzkgICAgICAgIAogICBmdGwtbGlicmFy
eS1pbmxpbmluZy1kYXRhdmlldyAgICAgICAgICAgICAgICAgICAgIDU2LjU4NjArLTIuNDU0MSAg
ICAgICAgICAgNTYuMjg4MistMS43NjA0ICAgICAgICAKICAgZnRsLWxpYnJhcnktaW5saW5pbmcg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMi44NTQwKy0wLjM3NDMgICAgICAgICAgIDIy
LjY2MjgrLTAuMjEzMSAgICAgICAgCiAgIGZ0bC1wb2x5bW9ycGhpYy1iaXRhbmQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAxMzIuNjUyNCstMC45OTY5ICAgICAgICAgIDEzMi40NDAzKy0xLjEy
MzcgICAgICAgIAogICBmdGwtcG9seW1vcnBoaWMtYml0b3IgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMTM0Ljk0NzcrLTMuMTkwOCAgICAgICAgICAxMzIuOTUyMSstMS4yNTk0ICAgICAgICAg
IG1pZ2h0IGJlIDEuMDE1MHggZmFzdGVyCiAgIGZ0bC1wb2x5bW9ycGhpYy1iaXR4b3IgICAgICAg
ICAgICAgICAgICAgICAgICAgICAxMzIuOTk3MCstMS4yNjk4ICAgICA/ICAgIDEzNS4xNjIyKy0z
LjMzNDEgICAgICAgID8gbWlnaHQgYmUgMS4wMTYzeCBzbG93ZXIKICAgZnRsLXBvbHltb3JwaGlj
LWRpdiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ2My44Mjc1Ky04LjQ3NDMgICAgID8g
ICAgNDY0LjA2NzUrLTQuNDM4OCAgICAgICAgPwogICBmdGwtcG9seW1vcnBoaWMtbHNoaWZ0ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMTYzLjczMzUrLTIuNTY3OCAgICAgPyAgICAxNjMuODY5
MistMi45NDk4ICAgICAgICA/CiAgIGZ0bC1wb2x5bW9ycGhpYy1tdWwgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAyMzUuMDAwOCstMi42NTEwICAgICA/ICAgIDIzNy43MTQxKy0zLjI0Mjcg
ICAgICAgID8gbWlnaHQgYmUgMS4wMTE1eCBzbG93ZXIKICAgZnRsLXBvbHltb3JwaGljLXJzaGlm
dCAgICAgICAgICAgICAgICAgICAgICAgICAgIDE2My4yMjc0Ky0yLjc3NTggICAgICAgICAgMTYw
LjgyOTYrLTEuODk5MiAgICAgICAgICBtaWdodCBiZSAxLjAxNDl4IGZhc3RlcgogICBmdGwtcG9s
eW1vcnBoaWMtU3RyaW5nRnJvbUNoYXJDb2RlICAgICAgICAgICAgICAgIDQyLjIwODcrLTAuMjY1
MSAgICAgPyAgICAgNDIuMzQyMystMC42NzkzICAgICAgICA/CiAgIGZ0bC1wb2x5bW9ycGhpYy1z
dWIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNTguNDg4NistMy4wOTYzICAgICAgICAg
IDE1Ni40Nzg4Ky0xLjY2NjkgICAgICAgICAgbWlnaHQgYmUgMS4wMTI4eCBmYXN0ZXIKICAgZnRs
LXBvbHltb3JwaGljLXVyc2hpZnQgICAgICAgICAgICAgICAgICAgICAgICAgIDE3Mi40NjUyKy0x
LjQxMDUgICAgID8gICAgMTc1LjMyMTUrLTcuNzU0NyAgICAgICAgPyBtaWdodCBiZSAxLjAxNjZ4
IHNsb3dlcgogICBmdW5jdGlvbi1jYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDEwLjk5OTErLTAuNjE3MCAgICAgICAgICAgMTAuODY4MistMC4xMjc3ICAgICAgICAgIG1p
Z2h0IGJlIDEuMDEyMHggZmFzdGVyCiAgIGZ1bmN0aW9uLWRvdC1hcHBseSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDEuODQ5NistMC4wMjQ2ICAgICA/ICAgICAgMS44NTEyKy0wLjAy
MjcgICAgICAgID8KICAgZnVuY3Rpb24tdGVzdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMi41NzgwKy0wLjA4MzMgICAgICAgICAgICAyLjQ4ODkrLTAuMDI3OSAgICAgICAg
ICBtaWdodCBiZSAxLjAzNTh4IGZhc3RlcgogICBmdW5jdGlvbi13aXRoLWV2YWwgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDg4LjU3NzMrLTEuNzk5MyAgICAgPyAgICAgODguOTQzOSst
My4xNjA4ICAgICAgICA/CiAgIGdjc2UtcG9seS1nZXQtbGVzcy1vYnZpb3VzICAgICAgICAgICAg
ICAgICAgICAgICAgIDguMTkwNCstMC4xNTA2ICAgICA/ICAgICAgOC42OTIwKy0xLjExMTQgICAg
ICAgID8gbWlnaHQgYmUgMS4wNjEyeCBzbG93ZXIKICAgZ2NzZS1wb2x5LWdldCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgOC42NDU4Ky0wLjczODUgICAgICAgICAgICA4LjM1
NzkrLTAuNTIwOSAgICAgICAgICBtaWdodCBiZSAxLjAzNDR4IGZhc3RlcgogICBnY3NlICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjMxNDIrLTAuMTI4MyAg
ICAgPyAgICAgIDMuNDI2MystMC4wODMzICAgICAgICA/IG1pZ2h0IGJlIDEuMDMzOHggc2xvd2Vy
CiAgIGdlbmVyYXRvci1jcmVhdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAu
Njc5NistMC4wNTIwICAgICA/ICAgICAgMC42ODM3Ky0wLjA1NzkgICAgICAgID8KICAgZ2VuZXJh
dG9yLWZpYiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwMC4xNjU5Ky0zLjM5
MDAgICAgICAgICAgIDk5LjMzNTMrLTcuMDk4OSAgICAgICAgCiAgIGdlbmVyYXRvci1mdW5jdGlv
bi1jcmVhdGUgICAgICAgICAgICAgICAgICAgICAgICAgIDMuNTg5NCstMC4yNTAxICAgICA/ICAg
ICAgMy43OTA2Ky0wLjU5NTYgICAgICAgID8gbWlnaHQgYmUgMS4wNTYxeCBzbG93ZXIKICAgZ2Vu
ZXJhdG9yLXN1bnNwaWRlci1hY2Nlc3MtbnNpZXZlICAgICAgICAgICAgICAgICAgNS42NjAyKy0w
LjE4NDYgICAgICAgICAgICA1LjYwNjQrLTAuMDc1NiAgICAgICAgCiAgIGdlbmVyYXRvci13aXRo
LXNldmVyYWwtdHlwZXMgICAgICAgICAgICAgICAgICAgICAzMjAuNDQ4MCstMTEuNzE5NiAgICAg
ICAgIDMxOC42NTE1Ky0xMC4xMTAyICAgICAgIAogICBnZXQtYnktaWQtYmltb3JwaGljLWNoZWNr
LXN0cnVjdHVyZS1lbGltaW5hdGlvbi1zaW1wbGUgICAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi4yMzY4Ky0wLjAzOTQgICAgICAgICAgICAy
LjIyNDgrLTAuMDIzNCAgICAgICAgCiAgIGdldC1ieS1pZC1iaW1vcnBoaWMtY2hlY2stc3RydWN0
dXJlLWVsaW1pbmF0aW9uICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDQuMzczNSstMC4wNzI3ICAgICAgICAgICAgNC4zMzg3Ky0wLjAzNzkg
ICAgICAgIAogICBnZXQtYnktaWQtY2hhaW4tZnJvbS10cnktYmxvY2sgICAgICAgICAgICAgICAg
ICAgICAxLjg2OTUrLTAuMDM1MyAgICAgICAgICAgIDEuODQ2MCstMC4wMTEzICAgICAgICAgIG1p
Z2h0IGJlIDEuMDEyN3ggZmFzdGVyCiAgIGdldC1ieS1pZC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWlu
YXRpb24gICAgICAgICAgICAgIDIuODQwNSstMC4wMjQ0ICAgICA/ICAgICAgMi44NjcwKy0wLjA3
OTQgICAgICAgID8KICAgZ2V0LWJ5LWlkLXByb3RvLW9yLXNlbGYgICAgICAgICAgICAgICAgICAg
ICAgICAgICAxMC4wODU1Ky0wLjc4NjUgICAgICAgICAgICA5LjgyMDArLTAuMzUyNSAgICAgICAg
ICBtaWdodCBiZSAxLjAyNzB4IGZhc3RlcgogICBnZXQtYnktaWQtcXVhZG1vcnBoaWMtY2hlY2st
c3RydWN0dXJlLWVsaW1pbmF0aW9uLXNpbXBsZSAgIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjY0MjYrLTAuMDc3NiAgICAgPyAgICAgIDIu
ODI3MystMC4zMjUyICAgICAgICA/IG1pZ2h0IGJlIDEuMDY5OXggc2xvd2VyCiAgIGdldC1ieS1p
ZC1zZWxmLW9yLXByb3RvICAgICAgICAgICAgICAgICAgICAgICAgICAgIDkuNjY5NistMC4yNzIy
ICAgICA/ICAgICAgOS45NTAzKy0wLjUxMjkgICAgICAgID8gbWlnaHQgYmUgMS4wMjkweCBzbG93
ZXIKICAgZ2V0LWJ5LXZhbC1vdXQtb2YtYm91bmRzICAgICAgICAgICAgICAgICAgICAgICAgICAg
NC4xODgwKy0wLjA0NjkgICAgID8gICAgICA0LjI4NTQrLTAuMTY5NCAgICAgICAgPyBtaWdodCBi
ZSAxLjAyMzN4IHNsb3dlcgogICBnZXQtYnktdmFsLXdpdGgtc3RyaW5nLWJpbW9ycGhpYy1jaGVj
ay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuMTYyNSstMC4yNzM4ICAgICAgICAgICAg
My4wOTM2Ky0wLjA0MjQgICAgICAgICAgbWlnaHQgYmUgMS4wMjIzeCBmYXN0ZXIKICAgZ2V0LWJ5
LXZhbC13aXRoLXN0cmluZy1iaW1vcnBoaWMtY2hlY2stc3RydWN0dXJlLWVsaW1pbmF0aW9uICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUu
OTk1MistMC4wNzgxICAgICAgICAgICAgNS45NjQ2Ky0wLjAyMTAgICAgICAgIAogICBnZXQtYnkt
dmFsLXdpdGgtc3RyaW5nLWNoYWluLWZyb20tdHJ5LWJsb2NrICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuODU0MCstMC4wMzIzICAgICAg
ICAgICAgMS44NDkzKy0wLjAxNjggICAgICAgIAogICBnZXQtYnktdmFsLXdpdGgtc3RyaW5nLWNo
ZWNrLXN0cnVjdHVyZS1lbGltaW5hdGlvbiAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA1LjM3MzIrLTAuMDM2MSAgICAgPyAgICAgIDUuNDM1
MSstMC4wOTgwICAgICAgICA/IG1pZ2h0IGJlIDEuMDExNXggc2xvd2VyCiAgIGdldC1ieS12YWwt
d2l0aC1zdHJpbmctcHJvdG8tb3Itc2VsZiAgICAgICAgICAgICAgIDkuMzY4NCstMC43NDQ2ICAg
ICAgICAgICAgOS4yNTM0Ky0xLjI5MjcgICAgICAgICAgbWlnaHQgYmUgMS4wMTI0eCBmYXN0ZXIK
ICAgZ2V0LWJ5LXZhbC13aXRoLXN0cmluZy1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxp
bWluYXRpb24tc2ltcGxlICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDMuOTExNystMC4wOTY4ICAgICAgICAgICAgMy44MjkyKy0wLjAzNTkg
ICAgICAgICAgbWlnaHQgYmUgMS4wMjE1eCBmYXN0ZXIKICAgZ2V0LWJ5LXZhbC13aXRoLXN0cmlu
Zy1zZWxmLW9yLXByb3RvICAgICAgICAgICAgICAgOS43ODM2Ky0wLjczNTEgICAgICAgICAgICA5
LjQ5OTgrLTAuODA1NCAgICAgICAgICBtaWdodCBiZSAxLjAyOTl4IGZhc3RlcgogICBnZXQtYnkt
dmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2lt
cGxlICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDIuNjYzMistMC4xMDg1ICAgICAgICAgICAgMi42NTM0Ky0wLjA1MjQgICAgICAgIAogICBn
ZXQtYnktdmFsLXdpdGgtc3ltYm9sLWJpbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRp
b24gICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgOC44OTAwKy0wLjE1NTIgICAgID8gICAgICA4Ljk1MjIrLTAuMjY3NCAgICAgICAgPwogICBn
ZXQtYnktdmFsLXdpdGgtc3ltYm9sLWNoYWluLWZyb20tdHJ5LWJsb2NrICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuODU5MCstMC4wMjE0
ICAgICA/ICAgICAgMS44OTU0Ky0wLjEwNzMgICAgICAgID8gbWlnaHQgYmUgMS4wMTk2eCBzbG93
ZXIKICAgZ2V0LWJ5LXZhbC13aXRoLXN5bWJvbC1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24g
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ny4wMjMyKy0wLjA3NjUgICAgICAgICAgICA3LjAwMjArLTAuMTEzNiAgICAgICAgCiAgIGdldC1i
eS12YWwtd2l0aC1zeW1ib2wtcHJvdG8tb3Itc2VsZiAgICAgICAgICAgICAgIDguOTEwMystMS4x
OTg2ICAgICA/ICAgICAgOC45Njc3Ky0wLjk3MzMgICAgICAgID8KICAgZ2V0LWJ5LXZhbC13aXRo
LXN5bWJvbC1xdWFkbW9ycGhpYy1jaGVjay1zdHJ1Y3R1cmUtZWxpbWluYXRpb24tc2ltcGxlICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMu
MjgyNCstMC4wMzA1ICAgICAgICAgICAgMy4yNjY4Ky0wLjAyMDkgICAgICAgIAogICBnZXQtYnkt
dmFsLXdpdGgtc3ltYm9sLXNlbGYtb3ItcHJvdG8gICAgICAgICAgICAgICA5Ljg5MjkrLTAuNzg4
OCAgICAgICAgICAgIDkuNjk3MSstMy40NjkzICAgICAgICAgIG1pZ2h0IGJlIDEuMDIwMnggZmFz
dGVyCiAgIGdldF9ieV92YWwtSW50MzJBcnJheSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDEuMTg5NCstMC4wNjQwICAgICA/ICAgICAgMS4xOTYyKy0wLjA4NjcgICAgICAgID8KICAgZ2V0
X2NhbGxlZV9tb25vbW9ycGhpYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi4xMjAzKy0w
LjEwNTIgICAgICAgICAgICAyLjEwNjQrLTAuMTI3NiAgICAgICAgCiAgIGdldF9jYWxsZWVfcG9s
eW1vcnBoaWMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuOTIzMystMC4wNTk2ICAgICA/
ICAgICAgMi45ODMzKy0wLjIwNjcgICAgICAgID8gbWlnaHQgYmUgMS4wMjA1eCBzbG93ZXIKICAg
Z2V0dGVyLW5vLWFjdGl2YXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi44NjQ2
Ky0wLjAzMTAgICAgID8gICAgICAyLjg2ODArLTAuMDQyMCAgICAgICAgPwogICBnZXR0ZXItcHJv
dG90eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjYyMTkrLTAuMDUyMCAg
ICAgPyAgICAgIDQuNzM4NystMC4zNjk5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI1M3ggc2xvd2Vy
CiAgIGdldHRlci1yaWNoYXJkcy10cnktY2F0Y2ggICAgICAgICAgICAgICAgICAgICAgICA5NTcu
MjY0MSstMTcuMDU1MCAgICAgICAgIDk0OC4zMjE5Ky0xMy40MjAzICAgICAgIAogICBnZXR0ZXIt
cmljaGFyZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYyLjk2MjcrLTQuNzE1
OSAgICAgICAgICAgNTguMzg3NystNi4wMzM0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDc4NHggZmFz
dGVyCiAgIGdldHRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDMuMDUwOSstMC4wNzgxICAgICA/ICAgICAgMy4zODg4Ky0wLjg5ODYgICAgICAgID8gbWlnaHQg
YmUgMS4xMTA4eCBzbG93ZXIKICAgZ2xvYmFsLW9iamVjdC1hY2Nlc3Mtd2l0aC1tdXRhdGluZy1z
dHJ1Y3R1cmUgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgNC44MTk4Ky0wLjM5MDEgICAgICAgICAgICA0LjU2MjgrLTAuMTYwNSAgICAgICAg
ICBtaWdodCBiZSAxLjA1NjN4IGZhc3RlcgogICBnbG9iYWwtdmFyLWNvbnN0LWluZmVyLWZpcmUt
ZnJvbS1vcHQgICAgICAgICAgICAgICAwLjc4OTkrLTAuMDMwNSAgICAgPyAgICAgIDAuOTM3Mist
MC4yOTg5ICAgICAgICA/IG1pZ2h0IGJlIDEuMTg2NXggc2xvd2VyCiAgIGdsb2JhbC12YXItY29u
c3QtaW5mZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuNTgwNystMC4wMzkyICAgICA/
ICAgICAgMC41OTMzKy0wLjAzODkgICAgICAgID8gbWlnaHQgYmUgMS4wMjE3eCBzbG93ZXIKICAg
aGFyZC1vdmVyZmxvdy1jaGVjay1lcXVhbCAgICAgICAgICAgICAgICAgICAgICAgICAyMy42Nzc0
Ky0wLjYyNDMgICAgICAgICAgIDIzLjQ5MzcrLTEuMDQyMSAgICAgICAgCiAgIGhhcmQtb3ZlcmZs
b3ctY2hlY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjMuMTY3NCstMC40MDE2ICAg
ICA/ICAgICAyMy4yMjY0Ky0wLjY2MzkgICAgICAgID8KICAgSGFzaE1hcC1wdXQtZ2V0LWl0ZXJh
dGUta2V5cyAgICAgICAgICAgICAgICAgICAgICAyMi45MDQxKy0xLjU2MTAgICAgICAgICAgIDIy
LjExMTArLTAuMzM4NiAgICAgICAgICBtaWdodCBiZSAxLjAzNTl4IGZhc3RlcgogICBIYXNoTWFw
LXB1dC1nZXQtaXRlcmF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgIDIyLjc4ODMrLTEuNjcw
MSAgICAgICAgICAgMjIuMDQwMistMC41ODM4ICAgICAgICAgIG1pZ2h0IGJlIDEuMDMzOXggZmFz
dGVyCiAgIEhhc2hNYXAtc3RyaW5nLXB1dC1nZXQtaXRlcmF0ZSAgICAgICAgICAgICAgICAgICAg
MjMuNDQzMCstMC42ODQ0ICAgICAgICAgICAyMy4zNTE4Ky0wLjQzMzIgICAgICAgIAogICBob2lz
dC1tYWtlLXJvcGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjc5MDgrLTAu
MjY5MyAgICAgICAgICAgIDMuNjYzNystMC4xMTUxICAgICAgICAgIG1pZ2h0IGJlIDEuMDM0N3gg
ZmFzdGVyCiAgIGhvaXN0LXBvbHktY2hlY2stc3RydWN0dXJlLWVmZmVjdGZ1bC1sb29wICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuOTQy
NSstMC4wNjcxICAgICAgICAgICAgMi45MTYwKy0wLjA4NjIgICAgICAgIAogICBob2lzdC1wb2x5
LWNoZWNrLXN0cnVjdHVyZSAgICAgICAgICAgICAgICAgICAgICAgICAyLjAxMzErLTAuMDMzMCAg
ICAgICAgICAgIDIuMDA2NSstMC4wNDQxICAgICAgICAKICAgaW11bC1kb3VibGUtb25seSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4xMzg0Ky0wLjExODcgICAgID8gICAgICAz
LjE5MDIrLTAuMTIxMSAgICAgICAgPyBtaWdodCBiZSAxLjAxNjV4IHNsb3dlcgogICBpbXVsLWlu
dC1vbmx5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0Ljk2NTcrLTAuMjMy
MyAgICAgPyAgICAgIDQuOTg2NCstMC4wNzE0ICAgICAgICA/CiAgIGltdWwtbWl4ZWQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuMTE3OSstMC4zMTg3ICAgICAgICAg
ICAgMi45OTQ4Ky0wLjE0NTYgICAgICAgICAgbWlnaHQgYmUgMS4wNDExeCBmYXN0ZXIKICAgaW4t
Zm91ci1jYXNlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNi41ODc1Ky0x
LjAwOTEgICAgID8gICAgIDE2Ljg0OTkrLTIuMDI2MCAgICAgICAgPyBtaWdodCBiZSAxLjAxNTh4
IHNsb3dlcgogICBpbi1vbmUtY2FzZS1mYWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA3LjkzNjArLTAuMjU4OSAgICAgICAgICAgIDcuNzg3MCstMC4xNjAyICAgICAgICAgIG1p
Z2h0IGJlIDEuMDE5MXggZmFzdGVyCiAgIGluLW9uZS1jYXNlLXRydWUgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDcuNzg5OCstMC4xMDE1ICAgICA/ICAgICAgNy44NDEyKy0wLjE0
MzcgICAgICAgID8KICAgaW4tdHdvLWNhc2VzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgNy43NzQ1Ky0wLjAyNzYgICAgID8gICAgICA3LjgzMjgrLTAuMjEyNyAgICAgICAg
PwogICBpbmRleGVkLXByb3BlcnRpZXMtaW4tb2JqZWN0cyAgICAgICAgICAgICAgICAgICAgICAy
Ljc4NDMrLTAuMTc4MiAgICAgICAgICAgIDIuNjk2OCstMC4wMTc3ICAgICAgICAgIG1pZ2h0IGJl
IDEuMDMyNXggZmFzdGVyCiAgIGluZmVyLWNsb3N1cmUtY29uc3QtdGhlbi1tb3Ytbm8taW5saW5l
ICAgICAgICAgICAgIDIuOTg1MistMC4wMjU1ICAgICA/ICAgICAgMy4wMjUzKy0wLjA0NTAgICAg
ICAgID8gbWlnaHQgYmUgMS4wMTM0eCBzbG93ZXIKICAgaW5mZXItY2xvc3VyZS1jb25zdC10aGVu
LW1vdiAgICAgICAgICAgICAgICAgICAgICAgNi45NDM2Ky0wLjE0MTggICAgICAgICAgICA2Ljc5
ODUrLTAuMTI2MyAgICAgICAgICBtaWdodCBiZSAxLjAyMTN4IGZhc3RlcgogICBpbmZlci1jbG9z
dXJlLWNvbnN0LXRoZW4tcHV0LXRvLXNjb3BlLW5vLWlubGluZSAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwLjc0ODcrLTAuNjYyNyAgICAg
ICAgICAgMTAuNzMxMSstMC40MDc3ICAgICAgICAKICAgaW5mZXItY2xvc3VyZS1jb25zdC10aGVu
LXB1dC10by1zY29wZSAgICAgICAgICAgICAyMi44MzcwKy0wLjg0ODYgICAgICAgICAgIDIyLjcx
MDArLTEuMDEzOCAgICAgICAgCiAgIGluZmVyLWNsb3N1cmUtY29uc3QtdGhlbi1yZWVudGVyLW5v
LWlubGluZSAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDUxLjM5NzMrLTAuMTQxNSAgICAgPyAgICAgNTIuMzA1MCstMS44MTUxICAgICAgICA/
IG1pZ2h0IGJlIDEuMDE3N3ggc2xvd2VyCiAgIGluZmVyLWNsb3N1cmUtY29uc3QtdGhlbi1yZWVu
dGVyICAgICAgICAgICAgICAgICAgMjMuMTYxNystMS4yODM1ICAgICA/ICAgICAyMy4yMDUyKy0x
LjM1MjAgICAgICAgID8KICAgaW5mZXItY29uc3RhbnQtZ2xvYmFsLXByb3BlcnR5ICAgICAgICAg
ICAgICAgICAgICAgMy4yODExKy0wLjA1MjcgICAgID8gICAgICAzLjQzOTUrLTAuMjIyNyAgICAg
ICAgPyBtaWdodCBiZSAxLjA0ODN4IHNsb3dlcgogICBpbmZlci1jb25zdGFudC1wcm9wZXJ0eSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAyLjAzNjQrLTAuMDQ5MyAgICAgICAgICAgIDIuMDI5
NCstMC4wMjQ3ICAgICAgICAKICAgaW5mZXItb25lLXRpbWUtY2xvc3VyZS10ZW4tdmFycyAgICAg
ICAgICAgICAgICAgICAgNi41NjgwKy0wLjUzMTIgICAgICAgICAgICA2LjQ2MzUrLTAuMTcxNyAg
ICAgICAgICBtaWdodCBiZSAxLjAxNjJ4IGZhc3RlcgogICBpbmZlci1vbmUtdGltZS1jbG9zdXJl
LXR3by12YXJzICAgICAgICAgICAgICAgICAgICA2LjA4NzkrLTAuMTIzMiAgICAgICAgICAgIDYu
MDY3MistMC4wNzAyICAgICAgICAKICAgaW5mZXItb25lLXRpbWUtY2xvc3VyZSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgNi4xNDY0Ky0wLjI5NTEgICAgICAgICAgICA1Ljk5NDcrLTAuMTAw
NCAgICAgICAgICBtaWdodCBiZSAxLjAyNTN4IGZhc3RlcgogICBpbmZlci1vbmUtdGltZS1kZWVw
LWNsb3N1cmUgICAgICAgICAgICAgICAgICAgICAgIDExLjE3MDkrLTAuMTkzNSAgICAgICAgICAg
MTEuMTEwNistMC4xMzIyICAgICAgICAKICAgaW5saW5lLWFyZ3VtZW50cy1hY2Nlc3MgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMy4zNzA4Ky0wLjA4OTcgICAgICAgICAgICAzLjMwODgrLTAu
MTI4OCAgICAgICAgICBtaWdodCBiZSAxLjAxODd4IGZhc3RlcgogICBpbmxpbmUtYXJndW1lbnRz
LWFsaWFzZWQtYWNjZXNzICAgICAgICAgICAgICAgICAgICAzLjMzODUrLTAuMDc1NSAgICAgPyAg
ICAgIDMuMzY2NSstMC4xODQ2ICAgICAgICA/CiAgIGlubGluZS1hcmd1bWVudHMtbG9jYWwtZXNj
YXBlICAgICAgICAgICAgICAgICAgICAgIDMuNTA3MSstMC4xODI0ICAgICAgICAgICAgMy40NTc3
Ky0wLjE5NTcgICAgICAgICAgbWlnaHQgYmUgMS4wMTQzeCBmYXN0ZXIKICAgaW5saW5lLWdldC1z
Y29wZWQtdmFyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi4yMTMxKy0wLjAzMTYgICAg
ICAgICAgICAyLjIwNTArLTAuMDU1MSAgICAgICAgCiAgIGlubGluZWQtcHV0LWJ5LWlkLXRyYW5z
aXRpb24gICAgICAgICAgICAgICAgICAgICAgIDcuNDU1OCstMC4yODU4ICAgICA/ICAgICAgNy43
NTE1Ky0wLjIxNzMgICAgICAgID8gbWlnaHQgYmUgMS4wMzk3eCBzbG93ZXIKICAgaW5saW5lZC1w
dXQtYnktdmFsLXdpdGgtc3RyaW5nLXRyYW5zaXRpb24gICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNy4xNzgyKy0wLjI1MjAgICAgID8gICAg
IDM3LjI3MDMrLTAuNDIzNSAgICAgICAgPwogICBpbmxpbmVkLXB1dC1ieS12YWwtd2l0aC1zeW1i
b2wtdHJhbnNpdGlvbiAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDM3LjE5NzgrLTAuMjc0NiAgICAgPyAgICAgMzcuODU5OCstMS42NjAyICAg
ICAgICA/IG1pZ2h0IGJlIDEuMDE3OHggc2xvd2VyCiAgIGluc3RhbmNlb2YtYm91bmQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAuNDAxNystMC4yNDYwICAgICA/ICAgICAyMC41
OTk2Ky0wLjQ1OTUgICAgICAgID8KICAgaW50LW9yLW90aGVyLWFicy10aGVuLWdldC1ieS12YWwg
ICAgICAgICAgICAgICAgICAgNC4xMDE4Ky0wLjE0NDcgICAgICAgICAgICA0LjA4MTErLTAuMDkx
MyAgICAgICAgCiAgIGludC1vci1vdGhlci1hYnMtemVyby10aGVuLWdldC1ieS12YWwgICAgICAg
ICAgICAgMTYuMjM3NystMS41MTE3ICAgICAgICAgICAxNS43NjMyKy0wLjI2MzIgICAgICAgICAg
bWlnaHQgYmUgMS4wMzAxeCBmYXN0ZXIKICAgaW50LW9yLW90aGVyLWFkZC10aGVuLWdldC1ieS12
YWwgICAgICAgICAgICAgICAgICAgNC4xMjczKy0wLjAzMTAgICAgID8gICAgICA0Ljk0MzIrLTEu
ODU5MSAgICAgICAgPyBtaWdodCBiZSAxLjE5Nzd4IHNsb3dlcgogICBpbnQtb3Itb3RoZXItYWRk
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjYwODgrLTAuMTI2NCAgICAgPyAg
ICAgIDQuNjcwOCstMC4xNzg3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDEzNHggc2xvd2VyCiAgIGlu
dC1vci1vdGhlci1kaXYtdGhlbi1nZXQtYnktdmFsICAgICAgICAgICAgICAgICAgIDMuNDM1MSst
MC4xMzY4ICAgICA/ICAgICAgMy40NzMyKy0wLjE3NDcgICAgICAgID8gbWlnaHQgYmUgMS4wMTEx
eCBzbG93ZXIKICAgaW50LW9yLW90aGVyLW1heC10aGVuLWdldC1ieS12YWwgICAgICAgICAgICAg
ICAgICAgMy42MzMwKy0wLjAyMjAgICAgID8gICAgICAzLjY2NzIrLTAuMDY1MiAgICAgICAgPwog
ICBpbnQtb3Itb3RoZXItbWluLXRoZW4tZ2V0LWJ5LXZhbCAgICAgICAgICAgICAgICAgICAzLjQ3
MDcrLTAuMDY1MCAgICAgICAgICAgIDMuNDEzMystMC4wNTg3ICAgICAgICAgIG1pZ2h0IGJlIDEu
MDE2OHggZmFzdGVyCiAgIGludC1vci1vdGhlci1tb2QtdGhlbi1nZXQtYnktdmFsICAgICAgICAg
ICAgICAgICAgIDMuMjk2OCstMC4wNTY4ICAgICA/ICAgICAgMy4zMjc3Ky0wLjExMzcgICAgICAg
ID8KICAgaW50LW9yLW90aGVyLW11bC10aGVuLWdldC1ieS12YWwgICAgICAgICAgICAgICAgICAg
NS40MTg5Ky0wLjY4MjQgICAgICAgICAgICA1LjE4MjYrLTAuMDY2NCAgICAgICAgICBtaWdodCBi
ZSAxLjA0NTZ4IGZhc3RlcgogICBpbnQtb3Itb3RoZXItbmVnLXRoZW4tZ2V0LWJ5LXZhbCAgICAg
ICAgICAgICAgICAgICAzLjk2MDIrLTAuMDg1OSAgICAgICAgICAgIDMuOTE3OCstMC4wNTMxICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDEwOHggZmFzdGVyCiAgIGludC1vci1vdGhlci1uZWctemVyby10
aGVuLWdldC1ieS12YWwgICAgICAgICAgICAgMTYuOTI3MystMS41MjgyICAgICAgICAgICAxNi42
OTc5Ky0xLjQ5NjIgICAgICAgICAgbWlnaHQgYmUgMS4wMTM3eCBmYXN0ZXIKICAgaW50LW9yLW90
aGVyLXN1Yi10aGVuLWdldC1ieS12YWwgICAgICAgICAgICAgICAgICAgNS45ODgyKy0wLjE2NjMg
ICAgICAgICAgICA1Ljg5MzcrLTAuMDg5NiAgICAgICAgICBtaWdodCBiZSAxLjAxNjB4IGZhc3Rl
cgogICBpbnQtb3Itb3RoZXItc3ViICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0
LjAxNzYrLTAuMzIwNiAgICAgPyAgICAgIDQuMTA3OSstMC4xMzU1ICAgICAgICA/IG1pZ2h0IGJl
IDEuMDIyNXggc2xvd2VyCiAgIGludC1vdmVyZmxvdy1sb2NhbCAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDMuNzM5OSstMC4wNzk2ICAgICA/ICAgICAgMy44MDczKy0wLjExMzUgICAg
ICAgID8gbWlnaHQgYmUgMS4wMTgweCBzbG93ZXIKICAgSW50MTZBcnJheS1hbGxvYy1sb25nLWxp
dmVkICAgICAgICAgICAgICAgICAgICAgICA0OS4wMTI4Ky0wLjU3NDEgICAgID8gICAgIDUwLjY3
NDcrLTQuMDE5NiAgICAgICAgPyBtaWdodCBiZSAxLjAzMzl4IHNsb3dlcgogICBJbnQxNkFycmF5
LWJ1YmJsZS1zb3J0LXdpdGgtYnl0ZUxlbmd0aCAgICAgICAgICAgIDE0LjgzOTUrLTAuMzU3MCAg
ICAgPyAgICAgMTQuOTk1NCstMC43NTc2ICAgICAgICA/IG1pZ2h0IGJlIDEuMDEwNXggc2xvd2Vy
CiAgIEludDE2QXJyYXktYnViYmxlLXNvcnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTUu
MjAwOCstMS4wNTY3ICAgICAgICAgICAxNS4wNTczKy0wLjg2MTggICAgICAgIAogICBJbnQxNkFy
cmF5LWxvYWQtaW50LW11bCAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjY3MzcrLTAuMDg3
MyAgICAgICAgICAgIDEuNTk5MCstMC4wMjg5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDQ2N3ggZmFz
dGVyCiAgIEludDE2QXJyYXktdG8tSW50MzJBcnJheS1zZXQgICAgICAgICAgICAgICAgICAgICAg
MzcuMzM4MystMS4zNTIwICAgICA/ICAgICAzOC4xMjE5Ky0yLjE5MTMgICAgICAgID8gbWlnaHQg
YmUgMS4wMjEweCBzbG93ZXIKICAgSW50MzJBcnJheS1hbGxvYy1sYXJnZSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAxMS44ODM2Ky0wLjM4ODMgICAgICAgICAgIDExLjY1MjkrLTAuMzU5OCAg
ICAgICAgICBtaWdodCBiZSAxLjAxOTh4IGZhc3RlcgogICBJbnQzMkFycmF5LWFsbG9jLWxvbmct
bGl2ZWQgICAgICAgICAgICAgICAgICAgICAgIDUzLjE3MzYrLTAuODE4NiAgICAgICAgICAgNTIu
ODcwOCstMC4zNjExICAgICAgICAKICAgSW50MzJBcnJheS1hbGxvYyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMi41NDMzKy0wLjE5MjQgICAgICAgICAgICAyLjUyMzQrLTAuMDc5
MyAgICAgICAgCiAgIEludDMyQXJyYXktSW50OEFycmF5LXZpZXctYWxsb2MgICAgICAgICAgICAg
ICAgICAgIDYuMzkyNystMC4yNjA2ICAgICAgICAgICAgNi4yODc1Ky0wLjA4MTQgICAgICAgICAg
bWlnaHQgYmUgMS4wMTY3eCBmYXN0ZXIKICAgaW50NTItc3BpbGwgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNC44MTYxKy0wLjEzMzggICAgID8gICAgICA0Ljg1NTArLTAu
MjAyNCAgICAgICAgPwogICBJbnQ4QXJyYXktYWxsb2MtbG9uZy1saXZlZCAgICAgICAgICAgICAg
ICAgICAgICAgIDQ1LjE5NTArLTAuMDkwOCAgICAgPyAgICAgNDUuMjEzMystMC40MjY3ICAgICAg
ICA/CiAgIEludDhBcnJheS1sb2FkLXdpdGgtYnl0ZUxlbmd0aCAgICAgICAgICAgICAgICAgICAg
IDMuNDQ3OCstMC4wOTgzICAgICA/ICAgICAgMy40NTk4Ky0wLjA5ODEgICAgICAgID8KICAgSW50
OEFycmF5LWxvYWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy41MTk4Ky0w
LjE4NDEgICAgICAgICAgICAzLjQyMTcrLTAuMDQ3NSAgICAgICAgICBtaWdodCBiZSAxLjAyODd4
IGZhc3RlcgogICBpbnRlZ2VyLWRpdmlkZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDEwLjMxMjUrLTAuMjQ3MCAgICAgICAgICAgMTAuMjU2MystMC4xODQyICAgICAgICAKICAg
aW50ZWdlci1tb2R1bG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS41ODU3
Ky0wLjEzMjggICAgICAgICAgICAxLjUxMzgrLTAuMDYzOCAgICAgICAgICBtaWdodCBiZSAxLjA0
NzV4IGZhc3RlcgogICBpcy1ib29sZWFuLWZvbGQtdHJpY2t5ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAyLjcxNTcrLTAuMDU2MCAgICAgPyAgICAgIDIuNzQwOSstMC4wNTk1ICAgICAgICA/
CiAgIGlzLWJvb2xlYW4tZm9sZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIu
MDUxNistMC4wNDU2ICAgICA/ICAgICAgMi4wODk0Ky0wLjE0MzIgICAgICAgID8gbWlnaHQgYmUg
MS4wMTg0eCBzbG93ZXIKICAgaXMtZnVuY3Rpb24tZm9sZC10cmlja3ktaW50ZXJuYWwtZnVuY3Rp
b24gICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgOS43NDg0Ky0wLjI0MjEgICAgID8gICAgICA5Ljc3MTQrLTAuMTcyMiAgICAgICAgPwogICBp
cy1mdW5jdGlvbi1mb2xkLXRyaWNreSAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjkwNzQr
LTAuMTA2MiAgICAgPyAgICAgIDIuOTU1NCstMC4xMjM2ICAgICAgICA/IG1pZ2h0IGJlIDEuMDE2
NXggc2xvd2VyCiAgIGlzLWZ1bmN0aW9uLWZvbGQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDIuMDc3NistMC4wNDg3ICAgICA/ICAgICAgMi4wODI0Ky0wLjAzMDkgICAgICAgID8K
ICAgaXMtbnVtYmVyLWZvbGQtdHJpY2t5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi43
OTgxKy0wLjAzMjMgICAgID8gICAgICAyLjgzMTErLTAuMDk2NyAgICAgICAgPyBtaWdodCBiZSAx
LjAxMTh4IHNsb3dlcgogICBpcy1udW1iZXItZm9sZCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAyLjA1NjArLTAuMDY0NiAgICAgICAgICAgIDIuMDMzMistMC4wNDE4ICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDExMnggZmFzdGVyCiAgIGlzLW9iamVjdC1vci1udWxsLWZvbGQtZnVu
Y3Rpb25zICAgICAgICAgICAgICAgICAgIDIuMjg4MistMC41MTI5ICAgICAgICAgICAgMi4wNDc0
Ky0wLjAyMzUgICAgICAgICAgbWlnaHQgYmUgMS4xMTc2eCBmYXN0ZXIKICAgaXMtb2JqZWN0LW9y
LW51bGwtZm9sZC1sZXNzLXRyaWNreSAgICAgICAgICAgICAgICAgMi44Mjk1Ky0wLjA0MDQgICAg
ID8gICAgICAyLjg0MTcrLTAuMDM3NyAgICAgICAgPwogICBpcy1vYmplY3Qtb3ItbnVsbC1mb2xk
LXRyaWNreSAgICAgICAgICAgICAgICAgICAgICAzLjE1NjcrLTAuMDYxMiAgICAgPyAgICAgIDMu
MjUwMystMC4xMzQ3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI5Nnggc2xvd2VyCiAgIGlzLW9iamVj
dC1vci1udWxsLWZvbGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuMzMzOSstMC41MzA3
ICAgICAgICAgICAgMi4wOTUxKy0wLjA5MTYgICAgICAgICAgbWlnaHQgYmUgMS4xMTQweCBmYXN0
ZXIKICAgaXMtb2JqZWN0LW9yLW51bGwtdHJpY2tpZXItZnVuY3Rpb24gICAgICAgICAgICAgICAg
Mi45NDgyKy0wLjA4ODEgICAgICAgICAgICAyLjg5NTIrLTAuMDQ3NiAgICAgICAgICBtaWdodCBi
ZSAxLjAxODN4IGZhc3RlcgogICBpcy1vYmplY3Qtb3ItbnVsbC10cmlja2llci1pbnRlcm5hbC1m
dW5jdGlvbiAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA5Ljc2NTkrLTAuMTQ1NCAgICAgPyAgICAgIDkuOTc0MCstMC4xMjU3ICAgICAgICA/
IG1pZ2h0IGJlIDEuMDIxM3ggc2xvd2VyCiAgIGlzLW9iamVjdC1vci1udWxsLXRyaWNreS1mdW5j
dGlvbiAgICAgICAgICAgICAgICAgIDIuODYxMCstMC4wNjQ3ICAgICA/ICAgICAgMi44OTA3Ky0w
LjA4OTAgICAgICAgID8gbWlnaHQgYmUgMS4wMTA0eCBzbG93ZXIKICAgaXMtb2JqZWN0LW9yLW51
bGwtdHJpY2t5LWludGVybmFsLWZ1bmN0aW9uICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYuODgxOCstMC41NTIwICAgICAgICAgICAgNi43
MjMyKy0wLjE3NTcgICAgICAgICAgbWlnaHQgYmUgMS4wMjM2eCBmYXN0ZXIKICAgaXMtc3RyaW5n
LWZvbGQtdHJpY2t5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi43ODI5Ky0wLjA0OTgg
ICAgID8gICAgICAyLjgyMTIrLTAuMDg3OCAgICAgICAgPyBtaWdodCBiZSAxLjAxMzh4IHNsb3dl
cgogICBpcy1zdHJpbmctZm9sZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAy
LjA2NDkrLTAuMDcxMiAgICAgICAgICAgIDIuMDI3MystMC4wNDE0ICAgICAgICAgIG1pZ2h0IGJl
IDEuMDE4NXggZmFzdGVyCiAgIGlzLXVuZGVmaW5lZC1mb2xkLXRyaWNreSAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDIuNTQ2NystMC4yMzAzICAgICAgICAgICAgMi40OTUwKy0wLjEwNDggICAg
ICAgICAgbWlnaHQgYmUgMS4wMjA3eCBmYXN0ZXIKICAgaXMtdW5kZWZpbmVkLWZvbGQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMi4wNjA4Ky0wLjA4NzcgICAgID8gICAgICAyLjEz
MDcrLTAuMTY4NyAgICAgICAgPyBtaWdodCBiZSAxLjAzMzl4IHNsb3dlcgogICBKU09OUC1uZWdh
dGl2ZS0wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjIwMTIrLTAuMDE4NSAg
ICAgICAgICAgIDAuMTk3NistMC4wMTY1ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE4NXggZmFzdGVy
CiAgIGxhcmdlLWludC1jYXB0dXJlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMu
NDYzNistMC4wMjc5ICAgICAgICAgICAgMy40NDE3Ky0wLjA3ODIgICAgICAgIAogICBsYXJnZS1p
bnQtbmVnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEzLjY3ODMrLTEuMzE4
NyAgICAgPyAgICAgMTQuMDE2NCstMS40Mzg5ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI0N3ggc2xv
d2VyCiAgIGxhcmdlLWludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MTEuODg0NistMC4zMDk2ICAgICA/ICAgICAxMi4xNzExKy0wLjg5NzggICAgICAgID8gbWlnaHQg
YmUgMS4wMjQxeCBzbG93ZXIKICAgbGljbS1kcmFnb25zLW91dC1vZi1ib3VuZHMgICAgICAgICAg
ICAgICAgICAgICAgICAzMi4xMzQwKy0xLjIxODEgICAgID8gICAgIDMyLjQ4NjArLTEuNjM0MyAg
ICAgICAgPyBtaWdodCBiZSAxLjAxMTB4IHNsb3dlcgogICBsaWNtLWRyYWdvbnMtb3ZlcmZsb3cg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE4LjU2NDcrLTAuNDMyNCAgICAgPyAgICAgMTgu
NjAyNCstMC40Nzc3ICAgICAgICA/CiAgIGxpY20tZHJhZ29ucyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMzYuNzkzMystMS44ODY3ICAgICAgICAgICAzNi4xNjU1Ky0wLjM4
MjAgICAgICAgICAgbWlnaHQgYmUgMS4wMTc0eCBmYXN0ZXIKICAgbG9hZC12YXJhcmdzLWVsaW1p
bmF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAxNy44ODY2Ky0wLjIwMzQgICAgID8gICAg
IDE3Ljg4NzIrLTAuNDYxNCAgICAgICAgPwogICBsb2NhbGUtY29tcGFyZSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDIyLjk0ODkrLTEuMjgwMCAgICAgICAgICAgMjEuOTk4OCst
MC4xOTc1ICAgICAgICAgIG1pZ2h0IGJlIDEuMDQzMnggZmFzdGVyCiAgIGxvZ2ljYWwtbm90LXdl
aXJkLXR5cGVzICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuNDI4NystMC4wODY4ICAgICAg
ICAgICAgMi40MTU2Ky0wLjA5ODggICAgICAgIAogICBsb2dpY2FsLW5vdCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAzLjc5ODMrLTAuMTgwNiAgICAgICAgICAgIDMuNjU1
NCstMC4wODk5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDM5MXggZmFzdGVyCiAgIGxvdHMtb2YtZmll
bGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDguNTMzNCstMC43NDUzICAg
ICAgICAgICAgOC4yMTU2Ky0wLjEwMTEgICAgICAgICAgbWlnaHQgYmUgMS4wMzg3eCBmYXN0ZXIK
ICAgbWFrZS1pbmRleGVkLXN0b3JhZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi40
OTU2Ky0wLjI0OTcgICAgID8gICAgICAyLjUyMzMrLTAuMDcwMSAgICAgICAgPyBtaWdodCBiZSAx
LjAxMTF4IHNsb3dlcgogICBtYWtlLXJvcGUtY3NlICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAzLjE2NjgrLTAuMDYzNyAgICAgPyAgICAgIDMuMjM0NSstMC4xODY1ICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDIxNHggc2xvd2VyCiAgIG1hbnktZm9yZWFjaC1jYWxscyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMTMuNTIzMystMS4zMzIwICAgICAgICAgICAxMy4wOTY0
Ky0wLjMxNTIgICAgICAgICAgbWlnaHQgYmUgMS4wMzI2eCBmYXN0ZXIKICAgbWFueS1yZXBlYXQt
c3RvcmVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNS41NzU3Ky0wLjM4ODcgICAg
ICAgICAgIDE1LjM1NzUrLTAuMTY5MiAgICAgICAgICBtaWdodCBiZSAxLjAxNDJ4IGZhc3Rlcgog
ICBtYXAtZm9yLWVhY2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjU2
MzgrLTAuMDg4OSAgICAgPyAgICAgIDQuNjYxMCstMC4xNDkwICAgICAgICA/IG1pZ2h0IGJlIDEu
MDIxM3ggc2xvd2VyCiAgIG1hcC1mb3Itb2YgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMTQuMjI2OSstMC45MjY0ICAgICA/ICAgICAxNC4yNDkwKy0wLjE5MjAgICAgICAg
ID8KICAgbWFyc2FnbGlhLWxhcmdlci1pbnRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2
NS44ODAyKy0yLjU5NjIgICAgICAgICAgIDY0LjUxMjkrLTAuNDkwNSAgICAgICAgICBtaWdodCBi
ZSAxLjAyMTJ4IGZhc3RlcgogICBtYXJzYWdsaWEtb3NyLWVudHJ5ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDE3LjExMDcrLTEuMzE1MCAgICAgICAgICAgMTYuNzEzNSstMC4zMTI1ICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDIzOHggZmFzdGVyCiAgIG1hdGgtcmFuZG9tICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMTQuMDUwMCstMC4zOTQ5ICAgICA/ICAgICAxNS4z
MjkwKy0xLjU4MDAgICAgICAgID8gbWlnaHQgYmUgMS4wOTEweCBzbG93ZXIKICAgbWF0aC10cnVu
YyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS41MDY0Ky0wLjEzMTYg
ICAgICAgICAgICA1LjQyMzArLTAuMDMzNSAgICAgICAgICBtaWdodCBiZSAxLjAxNTR4IGZhc3Rl
cgogICBtYXRoLXdpdGgtb3V0LW9mLWJvdW5kcy1hcnJheS12YWx1ZXMgICAgICAgICAgICAgIDI4
LjYzOTYrLTEuMzc3NCAgICAgICAgICAgMjcuNzUzMCstMC41MjE5ICAgICAgICAgIG1pZ2h0IGJl
IDEuMDMxOXggZmFzdGVyCiAgIG1heC1ib29sZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDIuMTYxNSstMC4wNjc3ICAgICA/ICAgICAgMi4xODU4Ky0wLjEwOTMgICAg
ICAgID8gbWlnaHQgYmUgMS4wMTEyeCBzbG93ZXIKICAgbWVnYW1vcnBoaWMtbG9hZCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAyOC4wNzMxKy0wLjM4NzcgICAgID8gICAgIDI5LjU5
NzIrLTQuMTI2MyAgICAgICAgPyBtaWdodCBiZSAxLjA1NDN4IHNsb3dlcgogICBtZXRob2Qtb24t
bnVtYmVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE4LjQ4ODArLTEuNDc3NyAg
ICAgICAgICAgMTcuMjQxNistMC40MTUxICAgICAgICAgIG1pZ2h0IGJlIDEuMDcyM3ggZmFzdGVy
CiAgIG1pbi1ib29sZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIu
MjgwNistMC4yNzYwICAgICAgICAgICAgMi4yNDgwKy0wLjI0NjMgICAgICAgICAgbWlnaHQgYmUg
MS4wMTQ1eCBmYXN0ZXIKICAgbWludXMtYm9vbGVhbi1kb3VibGUgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMi4yMTU5Ky0wLjAzNjAgICAgID8gICAgICAyLjIyNTcrLTAuMDM2NCAgICAg
ICAgPwogICBtaW51cy1ib29sZWFuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAxLjk1MjMrLTAuMDc5NSAgICAgICAgICAgIDEuOTEzOCstMC4wMjUxICAgICAgICAgIG1pZ2h0
IGJlIDEuMDIwMXggZmFzdGVyCiAgIG1pc2Mtc3RyaWN0LWVxICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMTguNjAxMCstMC43ODc1ICAgICAgICAgICAxOC4xMDQ4Ky0wLjI5ODQg
ICAgICAgICAgbWlnaHQgYmUgMS4wMjc0eCBmYXN0ZXIKICAgbW9kLWJvb2xlYW4tZG91YmxlICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOS4yNTM5Ky0wLjQ3MTMgICAgICAgICAgICA5
LjA1MDYrLTAuMTA3MSAgICAgICAgICBtaWdodCBiZSAxLjAyMjV4IGZhc3RlcgogICBtb2QtYm9v
bGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LjA4NTIrLTAuMjE3
OSAgICAgICAgICAgIDYuODg5NystMC4xMzg3ICAgICAgICAgIG1pZ2h0IGJlIDEuMDI4NHggZmFz
dGVyCiAgIG11bC1ib29sZWFuLWRvdWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDIuNjIwMSstMC4wNTk4ICAgICA/ICAgICAgMi42NDE4Ky0wLjAyMzcgICAgICAgID8KICAgbXVs
LWJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi4zNzQ0Ky0w
LjMyOTIgICAgICAgICAgICAyLjIzODYrLTAuMDQ0MiAgICAgICAgICBtaWdodCBiZSAxLjA2MDd4
IGZhc3RlcgogICBuZWctYm9vbGVhbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAyLjMwODMrLTAuMDcxOCAgICAgICAgICAgIDIuMjgyNistMC4wMzEzICAgICAgICAgIG1p
Z2h0IGJlIDEuMDExM3ggZmFzdGVyCiAgIG5lZ2F0aXZlLXplcm8tZGl2aWRlICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDAuMzIzMCstMC4wMzk2ICAgICAgICAgICAgMC4yODU3Ky0wLjAy
NTMgICAgICAgICAgbWlnaHQgYmUgMS4xMzA1eCBmYXN0ZXIKICAgbmVnYXRpdmUtemVyby1tb2R1
bG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4yNzUxKy0wLjAyMjUgICAgID8gICAg
ICAwLjI4MDYrLTAuMDI1MyAgICAgICAgPyBtaWdodCBiZSAxLjAxOTd4IHNsb3dlcgogICBuZWdh
dGl2ZS16ZXJvLW5lZ2F0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjI2NzMrLTAu
MDIxMCAgICAgPyAgICAgIDAuMjczNistMC4wMjM4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDIzN3gg
c2xvd2VyCiAgIG5lc3RlZC1mdW5jdGlvbi1wYXJzaW5nICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMzIuMzUwMCstMC42NDI0ICAgICA/ICAgICAzMy4xNTc1Ky0xLjY0NDggICAgICAgID8gbWln
aHQgYmUgMS4wMjUweCBzbG93ZXIKICAgbmV3LWFycmF5LWJ1ZmZlci1kZWFkICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA3NS41OTU4Ky0wLjc4NTAgICAgICAgICAgIDc1LjQ4MjErLTAuOTkw
MCAgICAgICAgCiAgIG5ldy1hcnJheS1idWZmZXItcHVzaCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDQuNzg0NSstMC4wOTE0ICAgICA/ICAgICAgNC44MDcwKy0wLjA2OTQgICAgICAgID8K
ICAgbmV3LWFycmF5LWRlYWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNi44
MjEzKy0wLjI5MjcgICAgID8gICAgICA3LjA0MTcrLTAuNzAzNSAgICAgICAgPyBtaWdodCBiZSAx
LjAzMjN4IHNsb3dlcgogICBuZXctYXJyYXktcHVzaCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAzLjEzMTUrLTAuMTUwMSAgICAgPyAgICAgIDMuMTcwNystMC4yMjMxICAgICAg
ICA/IG1pZ2h0IGJlIDEuMDEyNXggc2xvd2VyCiAgIG5vLWlubGluZS1jb25zdHJ1Y3RvciAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMjkuMjc5NystMC4yNzk5ICAgICAgICAgICAyOS4wMDcy
Ky0wLjIwNzEgICAgICAgIAogICBudW1iZXItdGVzdCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAyLjcxMzUrLTAuMDYyNiAgICAgICAgICAgIDIuNjgzOCstMC4wMTIyICAg
ICAgICAgIG1pZ2h0IGJlIDEuMDExMXggZmFzdGVyCiAgIG9iamVjdC1hbmQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNzg3NCstMC4wNTczICAgICAgICAgICAgNC43
ODY2Ky0wLjA0OTAgICAgICAgIAogICBvYmplY3QtY2xvc3VyZS1jYWxsICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA0LjUwMzgrLTAuMTAyNyAgICAgPyAgICAgIDQuNjE5NSstMC4zNTIw
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI1N3ggc2xvd2VyCiAgIG9iamVjdC1nZXQtb3duLXByb3Bl
cnR5LXN5bWJvbHMtb24tbGFyZ2UtYXJyYXkgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMS4wNDE3Ky0wLjA0ODcgICAgIF4gICAgICAwLjk1
OTYrLTAuMDMyNiAgICAgICAgXiBkZWZpbml0ZWx5IDEuMDg1NXggZmFzdGVyCiAgIG9iamVjdC1p
bnQtYWRkLWFycmF5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAuODkwMCstMC40NTcy
ICAgICAgICAgICAxMC42MjI2Ky0wLjA3MTMgICAgICAgICAgbWlnaHQgYmUgMS4wMjUyeCBmYXN0
ZXIKICAgb2JqZWN0LWludC1hZGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAx
My4zMjMzKy0wLjMwMDQgICAgICAgICAgIDEyLjk3OTkrLTAuMzg4MCAgICAgICAgICBtaWdodCBi
ZSAxLjAyNjV4IGZhc3RlcgogICBvYmplY3QtaW50LWFuZC1hcnJheSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDEwLjg0NTMrLTAuNDk1NSAgICAgICAgICAgMTAuNzc5NistMC4yMDg3ICAg
ICAgICAKICAgb2JqZWN0LWludC1tdWwtYXJyYXkgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgOS4wOTg5Ky0wLjEwNDYgICAgID8gICAgICA5LjE0NzIrLTAuMTg0NiAgICAgICAgPwogICBv
YmplY3QtaW50LXN1Yi1hcnJheSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3Ljk2NTMr
LTAuMDk0NiAgICAgXiAgICAgIDcuODMwMystMC4wMjYxICAgICAgICBeIGRlZmluaXRlbHkgMS4w
MTcyeCBmYXN0ZXIKICAgb2JqZWN0LWludC1zdWIgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAxMi45NTUxKy0wLjQ1ODQgICAgID8gICAgIDEzLjA5NTIrLTAuNjQ4OCAgICAgICAg
PyBtaWdodCBiZSAxLjAxMDh4IHNsb3dlcgogICBvYmplY3QtbHNoaWZ0ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA0LjgwMzYrLTAuMDc3NCAgICAgPyAgICAgIDQuODkwOSst
MC4xMTkyICAgICAgICA/IG1pZ2h0IGJlIDEuMDE4Mnggc2xvd2VyCiAgIG9iamVjdC1vciAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuODI1MCstMC4xNDQ2ICAgICA/
ICAgICAgNC44MzIyKy0wLjE1MjkgICAgICAgID8KICAgb2JqZWN0LXJzaGlmdCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgNC44MDE5Ky0wLjA4MTEgICAgICAgICAgICA0Ljc5
MzIrLTAuMDcyNSAgICAgICAgCiAgIG9iamVjdC10ZXN0ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDIuNDk3NistMC4wNjI1ICAgICAgICAgICAgMi40Nzk2Ky0wLjAzOTgg
ICAgICAgIAogICBvYmplY3QtdXJzaGlmdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA0Ljk3OTUrLTAuMzI5MyAgICAgICAgICAgIDQuNzcyMSstMC4wMjg5ICAgICAgICAgIG1p
Z2h0IGJlIDEuMDQzNXggZmFzdGVyCiAgIG9iamVjdC14b3IgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDQuODU3NSstMC4yODI4ICAgICA/ICAgICAgNS4wNzc3Ky0wLjYw
ODEgICAgICAgID8gbWlnaHQgYmUgMS4wNDUzeCBzbG93ZXIKICAgb2J2aW91cy1zaW5rLXBhdGhv
bG9neS10YWtlbiAgICAgICAgICAgICAgICAgICAgIDEwOS4xMTk5Ky0xLjc2MTEgICAgICAgICAg
MTA4LjM3MjIrLTAuNjQxNyAgICAgICAgCiAgIG9idmlvdXMtc2luay1wYXRob2xvZ3kgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgMTcuNzcyNystMC41MTE0ICAgICA/ICAgICAxNy45OTE2Ky0x
Ljc2MjAgICAgICAgID8gbWlnaHQgYmUgMS4wMTIzeCBzbG93ZXIKICAgb2J2aW91c2x5LWVsaWRh
YmxlLW5ldy1vYmplY3QgICAgICAgICAgICAgICAgICAgICAxNS44ODUwKy0wLjc2NTkgICAgID8g
ICAgIDE2LjEwMjcrLTAuNDE4NCAgICAgICAgPyBtaWdodCBiZSAxLjAxMzd4IHNsb3dlcgogICBw
bHVzLWJvb2xlYW4tYXJpdGggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjk4NTAr
LTAuMDIxNiAgICAgICAgICAgIDEuOTY5OSstMC4wMjI2ICAgICAgICAKICAgcGx1cy1ib29sZWFu
LWRvdWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi4yNDUwKy0wLjAzMTcgICAg
ID8gICAgICAyLjI0ODIrLTAuMDM3NyAgICAgICAgPwogICBwbHVzLWJvb2xlYW4gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjkwMzIrLTAuMDE5OCAgICAgPyAgICAgIDEu
OTc4MistMC4wNTU0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDM5NHggc2xvd2VyCiAgIHBvbHktY2hh
aW4tYWNjZXNzLWRpZmZlcmVudC1wcm90b3R5cGVzLXNpbXBsZSAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjMzODQrLTAuMDcyOCAgICAg
PyAgICAgIDIuMzQyNystMC4wNzEzICAgICAgICA/CiAgIHBvbHktY2hhaW4tYWNjZXNzLWRpZmZl
cmVudC1wcm90b3R5cGVzICAgICAgICAgICAgIDIuMzU1NystMC4wNzcxICAgICAgICAgICAgMi4z
NDkyKy0wLjA2MDcgICAgICAgIAogICBwb2x5LWNoYWluLWFjY2Vzcy1zaW1wbGVyICAgICAgICAg
ICAgICAgICAgICAgICAgICAyLjMyMDIrLTAuMDU2OSAgICAgPyAgICAgIDIuMzY3MystMC4wNjcw
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDIwM3ggc2xvd2VyCiAgIHBvbHktY2hhaW4tYWNjZXNzICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuMjg4MCstMC4wMzI1ICAgICA/ICAgICAg
Mi4zNDk5Ky0wLjA4NzQgICAgICAgID8gbWlnaHQgYmUgMS4wMjcxeCBzbG93ZXIKICAgcG9seS1z
dHJpY3RlcSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1Mi41MDU4Ky0xLjg3
ODUgICAgICAgICAgIDUxLjkzNjQrLTAuNjY4MCAgICAgICAgICBtaWdodCBiZSAxLjAxMTB4IGZh
c3RlcgogICBwb2x5bW9ycGhpYy1hcnJheS1jYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAxLjM0OTcrLTAuMzE1MSAgICAgICAgICAgIDEuMTQ5NystMC4xMjIyICAgICAgICAgIG1pZ2h0
IGJlIDEuMTczOXggZmFzdGVyCiAgIHBvbHltb3JwaGljLWdldC1ieS1pZCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDEuNzk2NCstMC4wMDg1ICAgICA/ICAgICAgMS44ODU3Ky0wLjA4OTgg
ICAgICAgID8gbWlnaHQgYmUgMS4wNDk3eCBzbG93ZXIKICAgcG9seW1vcnBoaWMtcHV0LWJ5LWlk
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNy40MTU5Ky0xLjg5OTcgICAgICAgICAgIDI1
LjgyMzYrLTAuOTM0OCAgICAgICAgICBtaWdodCBiZSAxLjA2MTd4IGZhc3RlcgogICBwb2x5bW9y
cGhpYy1wdXQtYnktdmFsLXdpdGgtc3RyaW5nICAgICAgICAgICAgICAgIDI3LjIzMDArLTAuNjIw
MiAgICAgICAgICAgMjcuMDMxMSstMS45NDM3ICAgICAgICAKICAgcG9seW1vcnBoaWMtcHV0LWJ5
LXZhbC13aXRoLXN5bWJvbCAgICAgICAgICAgICAgICAyNi45NjE5Ky0wLjYxNzggICAgICAgICAg
IDI2LjIyMDkrLTAuNzA2MSAgICAgICAgICBtaWdodCBiZSAxLjAyODN4IGZhc3RlcgogICBwb2x5
bW9ycGhpYy1zdHJ1Y3R1cmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyLjM4MzArLTAu
NDI0NyAgICAgICAgICAgMTIuMzI4MystMC4yMDgwICAgICAgICAKICAgcG9seXZhcmlhbnQtbW9u
b21vcnBoaWMtZ2V0LWJ5LWlkICAgICAgICAgICAgICAgICAgMy4zNTc1Ky0wLjA0NDcgICAgICAg
ICAgICAzLjMyMjgrLTAuMDc4MyAgICAgICAgICBtaWdodCBiZSAxLjAxMDR4IGZhc3RlcgogICBw
cm90by1nZXR0ZXItYWNjZXNzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwLjcxMjkr
LTAuMjE4MiAgICAgICAgICAgMTAuNTM4OCstMC4xMDM4ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE2
NXggZmFzdGVyCiAgIHByb3RvdHlwZS1hY2Nlc3Mtd2l0aC1tdXRhdGluZy1wcm90b3R5cGUgICAg
ICAgICAgIDQuMjg2NCstMC4xMjI5ICAgICA/ICAgICAgNC4zMTY5Ky0wLjIyOTAgICAgICAgID8K
ICAgcHV0LWJ5LWlkLXJlcGxhY2UtYW5kLXRyYW5zaXRpb24gICAgICAgICAgICAgICAgICAgNi41
MjU4Ky0wLjUwODQgICAgID8gICAgICA2LjUyNjgrLTAuMTIwNyAgICAgICAgPwogICBwdXQtYnkt
aWQtc2xpZ2h0bHktcG9seW1vcnBoaWMgICAgICAgICAgICAgICAgICAgICAyLjI5NDkrLTAuMDY0
NiAgICAgPyAgICAgIDIuMzAxOSstMC4wODMyICAgICAgICA/CiAgIHB1dC1ieS1pZC10cmFuc2l0
aW9uLXdpdGgtaW5kZXhpbmctaGVhZGVyICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMTAuNTgyMCstMC4yMzc4ICAgICAgICAgICAxMC41MjAz
Ky0wLjQ4NTUgICAgICAgIAogICBwdXQtYnktaWQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA4Ljc1MTcrLTAuMTU2NyAgICAgICAgICAgIDguNjg1MistMC4yNTI3ICAg
ICAgICAKICAgcHV0LWJ5LXZhbC1kaXJlY3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMC4zMTczKy0wLjAxOTQgICAgICAgICAgICAwLjMxNjQrLTAuMDE1MyAgICAgICAgCiAgIHB1
dC1ieS12YWwtbGFyZ2UtaW5kZXgtYmxhbmstaW5kZXhpbmctdHlwZSAgIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LjM0MjkrLTAuMDc2NSAg
ICAgICAgICAgIDQuMzEwNistMC4wODg1ICAgICAgICAKICAgcHV0LWJ5LXZhbC1tYWNoaW5lLWlu
dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMi42MzUxKy0wLjE3MzYgICAgICAgICAgICAy
LjU3ODgrLTAuMDMyNCAgICAgICAgICBtaWdodCBiZSAxLjAyMTh4IGZhc3RlcgogICBwdXQtYnkt
dmFsLXdpdGgtc3RyaW5nLXJlcGxhY2UtYW5kLXRyYW5zaXRpb24gICAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOS42OTM0Ky0wLjE0NDkgICAg
ID8gICAgICA5Ljg5ODUrLTAuMjY5MCAgICAgICAgPyBtaWdodCBiZSAxLjAyMTJ4IHNsb3dlcgog
ICBwdXQtYnktdmFsLXdpdGgtc3RyaW5nLXNsaWdodGx5LXBvbHltb3JwaGljICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuMzI4MCstMC43
OTc1ICAgICAgICAgICAgMy4xNzIyKy0wLjM1MTEgICAgICAgICAgbWlnaHQgYmUgMS4wNDkxeCBm
YXN0ZXIKICAgcHV0LWJ5LXZhbC13aXRoLXN0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgOS4wODA0Ky0wLjM1NzEgICAgID8gICAgICA5LjkwMzgrLTEuNzUzNCAgICAgICAgPyBtaWdo
dCBiZSAxLjA5MDd4IHNsb3dlcgogICBwdXQtYnktdmFsLXdpdGgtc3ltYm9sLXJlcGxhY2UtYW5k
LXRyYW5zaXRpb24gICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgOS4yNTI0Ky0wLjEzODAgICAgID8gICAgICA5LjM5NzIrLTAuMjI2MiAgICAg
ICAgPyBtaWdodCBiZSAxLjAxNTZ4IHNsb3dlcgogICBwdXQtYnktdmFsLXdpdGgtc3ltYm9sLXNs
aWdodGx5LXBvbHltb3JwaGljICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDIuNzIxNSstMC4yMTUyICAgICAgICAgICAgMi42MzM5Ky0wLjA1
MzQgICAgICAgICAgbWlnaHQgYmUgMS4wMzMzeCBmYXN0ZXIKICAgcHV0LWJ5LXZhbC13aXRoLXN5
bWJvbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOS4wMzIwKy0wLjEyNTcgICAgID8gICAg
ICA5LjAzODIrLTAuMTQ3NyAgICAgICAgPwogICByYXJlLW9zci1leGl0LW9uLWxvY2FsICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDExLjYzMTIrLTAuMzM5NyAgICAgICAgICAgMTEuNDc3MSst
MC40MTU2ICAgICAgICAgIG1pZ2h0IGJlIDEuMDEzNHggZmFzdGVyCiAgIHJheXRyYWNlLXdpdGgt
ZW1wdHktdHJ5LWNhdGNoICAgICAgICAgICAgICAgICAgICAgIDUuMzAzNistMC4xMTE0ICAgICA/
ICAgICAgNS4zNzc1Ky0wLjA3ODUgICAgICAgID8gbWlnaHQgYmUgMS4wMTM5eCBzbG93ZXIKICAg
cmF5dHJhY2Utd2l0aC10cnktY2F0Y2ggICAgICAgICAgICAgICAgICAgICAgICAgICAxMC4xOTY4
Ky0zLjA5MzEgICAgICAgICAgICA4Ljk1MzIrLTAuMTk5MCAgICAgICAgICBtaWdodCBiZSAxLjEz
ODl4IGZhc3RlcgogICByZWdleHAtZXhlYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDMyLjk5NjYrLTAuMTQxNiAgICAgPyAgICAgMzQuMjI4MCstMS43MjkwICAgICAgICA/
IG1pZ2h0IGJlIDEuMDM3M3ggc2xvd2VyCiAgIHJlZ2V4cC1sYXN0LWluZGV4ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDguODQzMystMC40OTgyICAgICAgICAgICAgOC43MDQ3Ky0w
LjE3NDYgICAgICAgICAgbWlnaHQgYmUgMS4wMTU5eCBmYXN0ZXIKICAgcmVnZXhwLXByb3RvdHlw
ZS1pcy1ub3QtaW5zdGFuY2UgICAgICAgICAgICAgICAgICAgMC4zNDQxKy0wLjAyMzAgICAgID8g
ICAgICAwLjM3OTkrLTAuMDY2MCAgICAgICAgPyBtaWdodCBiZSAxLjEwNDF4IHNsb3dlcgogICBy
ZWdleHAtcHJvdG90eXBlLXNlYXJjaC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0cyAgIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjcyNzMrLTAu
MDkxNyAgICAgICAgICAgIDAuNzI0NCstMC4wNTAwICAgICAgICAKICAgcmVnZXhwLXByb3RvdHlw
ZS1zZWFyY2gtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMyICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMjMzNistMC4wMDcyICAgICA/ICAg
ICAgMC4yMzg0Ky0wLjAyNDEgICAgICAgID8gbWlnaHQgYmUgMS4wMjA0eCBzbG93ZXIKICAgcmVn
ZXhwLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0cyAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjQ3NTMrLTAuMDky
NCAgICAgICAgICAgIDEuNDY0NistMC4wNzU3ICAgICAgICAKICAgcmVnZXhwLXByb3RvdHlwZS1z
cGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czIgICAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4yNjAxKy0wLjAxMDkgICAgID8gICAgICAw
LjI2ODErLTAuMDI3OSAgICAgICAgPyBtaWdodCBiZSAxLjAzMDh4IHNsb3dlcgogICByZWdleHAt
cHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy1mbGFncyAgIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjI3MDIrLTAu
MDI4NyAgICAgPyAgICAgIDAuMjc1MCstMC4wMjQyICAgICAgICA/IG1pZ2h0IGJlIDEuMDE3OXgg
c2xvd2VyCiAgIHJlZ2V4cC1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMz
LWdsb2JhbCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAwLjI3ODgrLTAuMDI0MCAgICAgICAgICAgIDAuMjY3OSstMC4wMTgwICAgICAgICAg
IG1pZ2h0IGJlIDEuMDQwNHggZmFzdGVyCiAgIHJlZ2V4cC1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2
YWJsZS1zaWRlLWVmZmVjdHMzLWlnbm9yZUNhc2UgICAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4yODk0Ky0wLjAzOTYgICAgICAgICAgICAw
LjI4MjArLTAuMDEzMyAgICAgICAgICBtaWdodCBiZSAxLjAyNjN4IGZhc3RlcgogICByZWdleHAt
cHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMy1tdWx0aWxpbmUgICAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4yNjEz
Ky0wLjAwNDMgICAgID8gICAgICAwLjMxMjkrLTAuMDU2NiAgICAgICAgPyBtaWdodCBiZSAxLjE5
NzZ4IHNsb3dlcgogICByZWdleHAtcHJvdG90eXBlLXNwbGl0LW9ic2VydmFibGUtc2lkZS1lZmZl
Y3RzMy1zdGlja3kgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMC4yODQ4Ky0wLjA1ODggICAgICAgICAgICAwLjI3ODkrLTAuMDEzNSAgICAg
ICAgICBtaWdodCBiZSAxLjAyMTJ4IGZhc3RlcgogICByZWdleHAtcHJvdG90eXBlLXNwbGl0LW9i
c2VydmFibGUtc2lkZS1lZmZlY3RzMy11bmljb2RlICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMjY4NistMC4wMDkzICAgICA/ICAgICAg
MC4yODE5Ky0wLjAyNzggICAgICAgID8gbWlnaHQgYmUgMS4wNDk4eCBzbG93ZXIKICAgcmVnZXhw
LXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czQgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4yNzY2Ky0wLjAyMzIg
ICAgID8gICAgICAwLjI3ODArLTAuMDIyNyAgICAgICAgPwogICByZWdleHAtcHJvdG90eXBlLXRl
c3Qtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMC43MDI2Ky0wLjE5MjYgICAgICAgICAgICAwLjYw
ODcrLTAuMDE5OCAgICAgICAgICBtaWdodCBiZSAxLjE1NDN4IGZhc3RlcgogICByZWdleHAtcHJv
dG90eXBlLXRlc3Qtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMyICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMjY3NSstMC4wNTA0ICAgICAg
ICAgICAgMC4yMzE2Ky0wLjAwODEgICAgICAgICAgbWlnaHQgYmUgMS4xNTQ4eCBmYXN0ZXIKICAg
cmVnZXhwLXNldC1sYXN0LWluZGV4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOS4yMDk5
Ky0wLjEzMjAgICAgID8gICAgICA5LjIzODkrLTAuMTE0MiAgICAgICAgPwogICByZWdpc3Rlci1w
cmVzc3VyZS1mcm9tLW9zciAgICAgICAgICAgICAgICAgICAgICAgIDE0LjkzOTArLTAuMDkxMSAg
ICAgISAgICAgMTYuNjE1MCstMS4yMjM3ICAgICAgICAhIGRlZmluaXRlbHkgMS4xMTIyeCBzbG93
ZXIKICAgcmVwZWF0LW11bHRpLWdldC1ieS1vZmZzZXQgICAgICAgICAgICAgICAgICAgICAgICAx
OC43MjE4Ky0wLjY3ODYgICAgICAgICAgIDE4LjYzMjUrLTAuMjY3NiAgICAgICAgCiAgIHJpY2hh
cmRzLWVtcHR5LXRyeS1jYXRjaCAgICAgICAgICAgICAgICAgICAgICAgICAgNDUuMjUyNystMC4z
NTgyICAgICAgICAgICA0NS4xMzk3Ky0xLjEzMzMgICAgICAgIAogICByaWNoYXJkcy10cnktY2F0
Y2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjIyLjA1MDYrLTQuMDY5NyAgICAgPyAg
ICAyMjMuNTg5MistOC41NzU3ICAgICAgICA/CiAgIHNjb3BlZC1hcmd1bWVudHMtbGVuZ3RoICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDYuMzQwNistMC4xODA5ICAgICAgICAgICAgNi4zMTk3
Ky0wLjEwNTEgICAgICAgIAogICBzY29wZWQtYXJndW1lbnRzLW92ZXJyaWRkZW4tbGVuZ3RoICAg
ICAgICAgICAgICAgICA2LjMxNDYrLTAuMDgxMCAgICAgICAgICAgIDYuMjg4NSstMC4wODMzICAg
ICAgICAKICAgc2NvcGVkLWFyZ3VtZW50cy1wb3NzaWJseS1vdmVycmlkZGVuLWxlbmd0aCAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2Ljc4
MDErLTAuMDY5MyAgICAgPyAgICAgIDYuODE3MCstMC4wNjM4ICAgICAgICA/CiAgIHNldC1mb3It
ZWFjaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuNzg0OSstMC4wNzgx
ICAgICAgICAgICAgMy43NzcxKy0wLjA1OTIgICAgICAgIAogICBzZXQtZm9yLW9mICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LjY3NzQrLTAuMDc2NyAgICAgICAgICAg
IDYuNjMzOCstMC4wMzI2ICAgICAgICAKICAgc2V0dGVyLXByb3RvdHlwZSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNC41NzQxKy0wLjI0OTggICAgICAgICAgICA0LjQ2MjMrLTAu
MDg0NiAgICAgICAgICBtaWdodCBiZSAxLjAyNTF4IGZhc3RlcgogICBzZXR0ZXIgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLjkxODgrLTAuMDc3NSAgICAgICAg
ICAgIDIuODk3NystMC4wMjM4ICAgICAgICAKICAgc2ltcGxlLWFjdGl2YXRpb24tZGVtbyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAyMi42MzU2Ky0xLjc0MjYgICAgICAgICAgIDIxLjc3MDgr
LTAuNDgyOCAgICAgICAgICBtaWdodCBiZSAxLjAzOTd4IGZhc3RlcgogICBzaW1wbGUtZ2V0dGVy
LWFjY2VzcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE4LjI1NTcrLTEuNzMzNiAgICAg
ICAgICAgMTYuNzAyOSstMC41MzAzICAgICAgICAgIG1pZ2h0IGJlIDEuMDkzMHggZmFzdGVyCiAg
IHNpbXBsZS1wb2x5LWNhbGwtbmVzdGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMuNzgw
MCstMC4wNzE5ICAgICAgICAgICAgMy43Njk1Ky0wLjA3NTIgICAgICAgIAogICBzaW1wbGUtcG9s
eS1jYWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjE1MzcrLTAuMDIyNiAg
ICAgICAgICAgIDEuMTM0MSstMC4wMTQ5ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE3M3ggZmFzdGVy
CiAgIHNpbXBsZS1yZWdleHAtZXhlYy1mb2xkaW5nLWZhaWwgICAgICAgICAgICAgICAgICAgIDIu
ODY2NystMC4wNzUwICAgICA/ICAgICAgMi45MDk2Ky0wLjA2MDQgICAgICAgID8gbWlnaHQgYmUg
MS4wMTUweCBzbG93ZXIKICAgc2ltcGxlLXJlZ2V4cC1leGVjLWZvbGRpbmcgICAgICAgICAgICAg
ICAgICAgICAgICAxNy4wMTQyKy0xLjY5MTUgICAgICAgICAgIDE2LjcyMzgrLTEuNTc2NCAgICAg
ICAgICBtaWdodCBiZSAxLjAxNzR4IGZhc3RlcgogICBzaW1wbGUtcmVnZXhwLXRlc3QtZm9sZGlu
Zy1mYWlsLXdpdGgtaG9pc3RlZC1yZWdleHAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgOC42MjA5Ky0wLjMwMTYgICAgICAgICAgICA4LjU1
MzIrLTAuMTY1MCAgICAgICAgCiAgIHNpbXBsZS1yZWdleHAtdGVzdC1mb2xkaW5nLWZhaWwgICAg
ICAgICAgICAgICAgICAgMTQuNzYyMistMC4xMjY2ICAgICAgICAgICAxNC43MjYwKy0wLjUzNTYg
ICAgICAgIAogICBzaW1wbGUtcmVnZXhwLXRlc3QtZm9sZGluZy13aXRoLWhvaXN0ZWQtcmVnZXhw
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDkuNzUxMSstMC40NTI1ICAgICAgICAgICAgOS40OTMwKy0wLjA5ODIgICAgICAgICAgbWlnaHQg
YmUgMS4wMjcyeCBmYXN0ZXIKICAgc2ltcGxlLXJlZ2V4cC10ZXN0LWZvbGRpbmcgICAgICAgICAg
ICAgICAgICAgICAgICAxNi4xODM3Ky0xLjE2OTcgICAgICAgICAgIDE1Ljk2MDUrLTAuNzQ4OCAg
ICAgICAgICBtaWdodCBiZSAxLjAxNDB4IGZhc3RlcgogICBzaW4tYm9vbGVhbiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LjM2MjArLTAuMzI2MiAgICAgPyAgICAgIDYu
NDQxNistMC4zNjIzICAgICAgICA/IG1pZ2h0IGJlIDEuMDEyNXggc2xvd2VyCiAgIHNpbmdsZXRv
bi1zY29wZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNjAuNjA3OCstMi4xNTQ2
ICAgICAgICAgICA2MC4yNTczKy0yLjExOTEgICAgICAgIAogICBzaW5rLWZ1bmN0aW9uICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0Ljg2NTkrLTAuMTgyMyAgICAgPyAgICAg
IDUuMDM5MystMC4wOTc0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDM1Nnggc2xvd2VyCiAgIHNpbmst
aHVnZS1hY3RpdmF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIuOTI4MCstMC43
NTY0ICAgICAgICAgICAxMi43NzUzKy0xLjAxMzggICAgICAgICAgbWlnaHQgYmUgMS4wMTIweCBm
YXN0ZXIKICAgc2lua2FibGUtbmV3LW9iamVjdC1kYWcgICAgICAgICAgICAgICAgICAgICAgICAg
ICAzOC4yMTQ3Ky0wLjMyOTMgICAgICAgICAgIDM4LjAwOTcrLTAuNDYwNSAgICAgICAgCiAgIHNp
bmthYmxlLW5ldy1vYmplY3QtdGFrZW4gICAgICAgICAgICAgICAgICAgICAgICAgMzMuMjMyMyst
MS4zMjE0ICAgICAgICAgICAzMi43Nzg2Ky0wLjM4MzggICAgICAgICAgbWlnaHQgYmUgMS4wMTM4
eCBmYXN0ZXIKICAgc2lua2FibGUtbmV3LW9iamVjdCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAxNy44Mjc3Ky0xLjQ4NTIgICAgICAgICAgIDE3LjM5ODkrLTAuNzE4NyAgICAgICAgICBt
aWdodCBiZSAxLjAyNDZ4IGZhc3RlcgogICBzbG93LWFycmF5LXByb2ZpbGUtY29udmVyZ2VuY2Ug
ICAgICAgICAgICAgICAgICAgICAyLjQwOTArLTAuMDQ3NyAgICAgPyAgICAgIDIuNDEwNSstMC4x
MzIyICAgICAgICA/CiAgIHNsb3ctY29udmVyZ2VuY2UgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDIuMzMwNistMC4wNjYxICAgICA/ICAgICAgMi4zMzcxKy0wLjA2NTYgICAgICAg
ID8KICAgc2xvdy10ZXJuYXJpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAx
Mi45MjkyKy0wLjk5MTIgICAgICAgICAgIDEyLjE3NDIrLTAuMTMyNCAgICAgICAgICBtaWdodCBi
ZSAxLjA2MjB4IGZhc3RlcgogICBzb3J0aW5nLWJlbmNobWFyayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDE3Ljk3MzErLTAuNzMzMyAgICAgICAgICAgMTcuODg2NystMC41ODc0ICAg
ICAgICAKICAgc3BhcnNlLWNvbmRpdGlvbmFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMS4wNDM4Ky0wLjAyMjggICAgICAgICAgICAxLjA0MTgrLTAuMDIzNSAgICAgICAgCiAgIHNw
bGljZS10by1yZW1vdmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTMuMTczNSst
MC41NTA4ICAgICA/ICAgICAxMy4zOTIzKy0xLjQ3NjIgICAgICAgID8gbWlnaHQgYmUgMS4wMTY2
eCBzbG93ZXIKICAgc3RyY2F0LWNvbnN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgNS4wOTEwKy0wLjE0MDIgICAgICAgICAgICA1LjAwMTArLTAuMTUxOCAgICAgICAgICBt
aWdodCBiZSAxLjAxODB4IGZhc3RlcgogICBzdHJjYXQtbGVuZ3RoLWNvbnN0ICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA1LjEwNzIrLTAuMjU0NiAgICAgICAgICAgIDUuMDA1NystMC4x
MjkwICAgICAgICAgIG1pZ2h0IGJlIDEuMDIwM3ggZmFzdGVyCiAgIHN0cmluZy1jaGFyLWNvZGUt
YXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIuNjkzMSstMC44NDM2ICAgICAgICAg
ICAxMi4zOTg4Ky0wLjUyMzcgICAgICAgICAgbWlnaHQgYmUgMS4wMjM3eCBmYXN0ZXIKICAgc3Ry
aW5nLWNvbmNhdC1vYmplY3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMS44ODI2Ky0w
LjA1MTIgICAgICAgICAgICAxLjg3ODYrLTAuMTU2NCAgICAgICAgCiAgIHN0cmluZy1jb25jYXQt
cGFpci1vYmplY3QgICAgICAgICAgICAgICAgICAgICAgICAgIDEuODUxMistMC4wMzIyICAgICA/
ICAgICAgMS44OTMzKy0wLjAzNTEgICAgICAgID8gbWlnaHQgYmUgMS4wMjI3eCBzbG93ZXIKICAg
c3RyaW5nLWNvbmNhdC1wYWlyLXNpbXBsZSAgICAgICAgICAgICAgICAgICAgICAgICAgMi43MDgw
Ky0wLjA5NjMgICAgICAgICAgICAyLjY4NzcrLTAuMDI0MyAgICAgICAgCiAgIHN0cmluZy1jb25j
YXQtc2ltcGxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDguMzYzMCstMC4yMDgyICAg
ICAgICAgICAgOC4yNzU4Ky0wLjE2NjAgICAgICAgICAgbWlnaHQgYmUgMS4wMTA1eCBmYXN0ZXIK
ICAgc3RyaW5nLWNvbnMtcmVwZWF0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS44
NzI2Ky0wLjE2ODkgICAgID8gICAgICA2LjAyMjYrLTAuNDM5OCAgICAgICAgPyBtaWdodCBiZSAx
LjAyNTV4IHNsb3dlcgogICBzdHJpbmctY29ucy10b3dlciAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA2LjMxMTArLTAuNDk3MiAgICAgICAgICAgIDYuMDM2OSstMC4xMTkxICAgICAg
ICAgIG1pZ2h0IGJlIDEuMDQ1NHggZmFzdGVyCiAgIHN0cmluZy1lcXVhbGl0eSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMTUuNDM3MystMC44NTg1ICAgICA/ICAgICAxNS45NDgw
Ky0xLjAxMTAgICAgICAgID8gbWlnaHQgYmUgMS4wMzMxeCBzbG93ZXIKICAgc3RyaW5nLWZyb20t
Y2hhci1jb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS45NDY4Ky0wLjE3MjcgICAg
ICAgICAgICA1Ljg3NzIrLTAuMTY2NyAgICAgICAgICBtaWdodCBiZSAxLjAxMTl4IGZhc3Rlcgog
ICBzdHJpbmctZ2V0LWJ5LXZhbC1iaWctY2hhciAgICAgICAgICAgICAgICAgICAgICAgICA0LjMw
MzMrLTAuMDk4MiAgICAgICAgICAgIDQuMTczNSstMC4wOTE3ICAgICAgICAgIG1pZ2h0IGJlIDEu
MDMxMXggZmFzdGVyCiAgIHN0cmluZy1nZXQtYnktdmFsLW91dC1vZi1ib3VuZHMtaW5zYW5lICAg
ICAgICAgICAgIDMuMzQzOCstMC40NzY0ICAgICAgICAgICAgMy4xMjk2Ky0wLjIxNzAgICAgICAg
ICAgbWlnaHQgYmUgMS4wNjg1eCBmYXN0ZXIKICAgc3RyaW5nLWdldC1ieS12YWwtb3V0LW9mLWJv
dW5kcyAgICAgICAgICAgICAgICAgICAgNC4yMTg1Ky0wLjMwMDkgICAgICAgICAgICA0LjExMzIr
LTAuMjgxMSAgICAgICAgICBtaWdodCBiZSAxLjAyNTZ4IGZhc3RlcgogICBzdHJpbmctZ2V0LWJ5
LXZhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjg1NTYrLTAuMDY5NiAgICAg
ICAgICAgIDEuODQ4NCstMC4wNDMwICAgICAgICAKICAgc3RyaW5nLWhhc2ggICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMS44MTg1Ky0wLjAzNzIgICAgID8gICAgICAxLjg1
MDIrLTAuMDQxNCAgICAgICAgPyBtaWdodCBiZSAxLjAxNzR4IHNsb3dlcgogICBzdHJpbmctbG9u
Zy1pZGVudC1lcXVhbGl0eSAgICAgICAgICAgICAgICAgICAgICAgIDEzLjMzMDArLTAuNzAwMyAg
ICAgPyAgICAgMTMuODkwNSstMS4wMjUwICAgICAgICA/IG1pZ2h0IGJlIDEuMDQyMXggc2xvd2Vy
CiAgIHN0cmluZy1vdXQtb2YtYm91bmRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDku
NTg5MCstMC4xMjU1ICAgICAgICAgICAgOS41NzkzKy0wLjEzMDcgICAgICAgIAogICBzdHJpbmct
cHJvdG90eXBlLXNlYXJjaC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0cyAgIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjg1MzYrLTAuMDQ1MyAg
ICAgPyAgICAgIDAuODg4OCstMC4wOTU4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDQxMnggc2xvd2Vy
CiAgIHN0cmluZy1wcm90b3R5cGUtc2VhcmNoLW9ic2VydmFibGUtc2lkZS1lZmZlY3RzMiAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjI5
NzgrLTAuMDE5MCAgICAgPyAgICAgIDAuMzIyOSstMC4wMjgzICAgICAgICA/IG1pZ2h0IGJlIDEu
MDg0NHggc2xvd2VyCiAgIHN0cmluZy1wcm90b3R5cGUtc2VhcmNoLW9ic2VydmFibGUtc2lkZS1l
ZmZlY3RzMyAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAwLjI5NTIrLTAuMDA5NCAgICAgPyAgICAgIDAuMjk2OCstMC4wMjIzICAgICAgICA/
CiAgIHN0cmluZy1wcm90b3R5cGUtc2VhcmNoLW9ic2VydmFibGUtc2lkZS1lZmZlY3RzNCAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjI5
MTMrLTAuMDE2NiAgICAgPyAgICAgIDAuMjk1OSstMC4wMjc4ICAgICAgICA/IG1pZ2h0IGJlIDEu
MDE1OHggc2xvd2VyCiAgIHN0cmluZy1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVm
ZmVjdHMgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMS43NjkwKy0wLjM3OTIgICAgICAgICAgICAxLjY2MzUrLTAuMDgxNCAgICAgICAgICBt
aWdodCBiZSAxLjA2MzV4IGZhc3RlcgogICBzdHJpbmctcHJvdG90eXBlLXNwbGl0LW9ic2VydmFi
bGUtc2lkZS1lZmZlY3RzMiAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAwLjMxNjYrLTAuMDAzMSAgICAgPyAgICAgIDAuMzI1MystMC4wMTcw
ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI3NXggc2xvd2VyCiAgIHN0cmluZy1wcm90b3R5cGUtc3Bs
aXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMzLWZsYWdzICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMzU0MCstMC4wMzgwICAgICAgICAg
ICAgMC4zMTk4Ky0wLjAwNTEgICAgICAgICAgbWlnaHQgYmUgMS4xMDY5eCBmYXN0ZXIKICAgc3Ry
aW5nLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZmZWN0czMtZ2xvYmFsICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMzkx
NistMC4xMDk2ICAgICAgICAgICAgMC4zMzY0Ky0wLjAxODUgICAgICAgICAgbWlnaHQgYmUgMS4x
NjQzeCBmYXN0ZXIKICAgc3RyaW5nLXByb3RvdHlwZS1zcGxpdC1vYnNlcnZhYmxlLXNpZGUtZWZm
ZWN0czMtaWdub3JlQ2FzZSAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAwLjM0MjkrLTAuMDQzMSAgICAgICAgICAgIDAuMzM0MSstMC4wMTAw
ICAgICAgICAgIG1pZ2h0IGJlIDEuMDI2MXggZmFzdGVyCiAgIHN0cmluZy1wcm90b3R5cGUtc3Bs
aXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMzLW11bHRpbGluZSAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjMyNTgrLTAuMDA2OSAgICAg
PyAgICAgIDAuMzM4OCstMC4wMzg4ICAgICAgICA/IG1pZ2h0IGJlIDEuMDM5N3ggc2xvd2VyCiAg
IHN0cmluZy1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRlLWVmZmVjdHMzLXN0aWNreSAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw
LjMzNjErLTAuMDIwNyAgICAgPyAgICAgIDAuMzQ0MystMC4wMzU4ICAgICAgICA/IG1pZ2h0IGJl
IDEuMDI0Mnggc2xvd2VyCiAgIHN0cmluZy1wcm90b3R5cGUtc3BsaXQtb2JzZXJ2YWJsZS1zaWRl
LWVmZmVjdHMzLXVuaWNvZGUgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMC4zMzU5Ky0wLjAyODQgICAgID8gICAgICAwLjM1NjYrLTAuMDUx
NSAgICAgICAgPyBtaWdodCBiZSAxLjA2MTV4IHNsb3dlcgogICBzdHJpbmctcHJvdG90eXBlLXNw
bGl0LW9ic2VydmFibGUtc2lkZS1lZmZlY3RzNCAgIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjMzMjQrLTAuMDI1MyAgICAgPyAgICAgIDAu
MzM0MCstMC4wMTUzICAgICAgICA/CiAgIHN0cmluZy1yZXBlYXQtYXJpdGggICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMTkuNzU5MistMC4yMjA1ICAgICA/ICAgICAyMC4yNjEyKy0xLjcz
MjcgICAgICAgID8gbWlnaHQgYmUgMS4wMjU0eCBzbG93ZXIKICAgc3RyaW5nLXJlcGVhdC1ub3Qt
cmVzb2x2aW5nLWZpeGVkICAgICAgICAgICAgICAgICAgMi43MjgyKy0wLjA0NjkgICAgID8gICAg
ICAyLjc0NDErLTAuMDgwMiAgICAgICAgPwogICBzdHJpbmctcmVwZWF0LW5vdC1yZXNvbHZpbmct
bm8taW5saW5lICAgICAgICAgICAgICAzLjgxODUrLTAuMTYzOCAgICAgICAgICAgIDMuNzY0Mist
MC4wODc1ICAgICAgICAgIG1pZ2h0IGJlIDEuMDE0NHggZmFzdGVyCiAgIHN0cmluZy1yZXBlYXQt
bm90LXJlc29sdmluZyAgICAgICAgICAgICAgICAgICAgICAgIDMuNjgzMCstMC4wODY5ICAgICAg
ICAgICAgMy42NTk5Ky0wLjA4MDYgICAgICAgIAogICBzdHJpbmctcmVwZWF0LXJlc29sdmluZy1m
aXhlZCAgICAgICAgICAgICAgICAgICAgIDE4LjU2MjIrLTAuNzYwNSAgICAgPyAgICAgMTguNjE2
OCstMC44MTA2ICAgICAgICA/CiAgIHN0cmluZy1yZXBlYXQtcmVzb2x2aW5nLW5vLWlubGluZSAg
ICAgICAgICAgICAgICAgMjguMTQyMystNi41ODUyICAgICAgICAgICAyNS45NjU2Ky0xLjcwNzYg
ICAgICAgICAgbWlnaHQgYmUgMS4wODM4eCBmYXN0ZXIKICAgc3RyaW5nLXJlcGVhdC1yZXNvbHZp
bmcgICAgICAgICAgICAgICAgICAgICAgICAgICAyNS42MDE4Ky0xLjc2MDUgICAgICAgICAgIDI0
LjkxNjIrLTAuMjQ5NiAgICAgICAgICBtaWdodCBiZSAxLjAyNzV4IGZhc3RlcgogICBzdHJpbmct
cmVwZWF0LXNpbmdsZS1ub3QtcmVzb2x2aW5nICAgICAgICAgICAgICAgICA2LjU4OTkrLTAuNTU0
NyAgICAgICAgICAgIDYuNTM5NistMC41NDk3ICAgICAgICAKICAgc3RyaW5nLXJlcGVhdC1zaW5n
bGUtcmVzb2x2aW5nICAgICAgICAgICAgICAgICAgICAgNi41NTAyKy0wLjUwNTYgICAgICAgICAg
ICA2LjM2OTgrLTAuMzU3MiAgICAgICAgICBtaWdodCBiZSAxLjAyODN4IGZhc3RlcgogICBzdHJp
bmctcmVwZWF0LXNtYWxsLW5vdC1yZXNvbHZpbmcgICAgICAgICAgICAgICAgICAyLjk1MjYrLTAu
MDQ1NCAgICAgPyAgICAgIDMuMDI0NSstMC4xMDU1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI0M3gg
c2xvd2VyCiAgIHN0cmluZy1yZXBlYXQtc21hbGwtcmVzb2x2aW5nICAgICAgICAgICAgICAgICAg
ICAgMjUuOTEzNistMC4zNjQ5ICAgICAgICAgICAyNS42NDM0Ky0wLjEzOTQgICAgICAgICAgbWln
aHQgYmUgMS4wMTA1eCBmYXN0ZXIKICAgc3RyaW5nLXJlcGxhY2UtZW1wdHkgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgOC43OTA5Ky0wLjk2NTcgICAgICAgICAgICA4LjE4NDkrLTAuMTk1
MiAgICAgICAgICBtaWdodCBiZSAxLjA3NDB4IGZhc3RlcgogICBzdHJpbmctcmVwbGFjZS1nZW5l
cmljICAgICAgICAgICAgICAgICAgICAgICAgICAgIDU1Ljc0MzArLTEuNzE3NiAgICAgICAgICAg
NTUuMzY4NCstMS44MDQzICAgICAgICAKICAgc3RyaW5nLXJlcGxhY2UgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgOC4yMzQ3Ky0wLjI4NTEgICAgID8gICAgICA4LjUwNzIrLTAu
OTA3MSAgICAgICAgPyBtaWdodCBiZSAxLjAzMzF4IHNsb3dlcgogICBzdHJpbmctcm9wZS13aXRo
LW9iamVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgIDE2LjQ5NzErLTAuNzIxMiAgICAgICAg
ICAgMTUuNzY4NCstMC4yNzAyICAgICAgICAgIG1pZ2h0IGJlIDEuMDQ2MnggZmFzdGVyCiAgIHN0
cmluZy1zdWIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzQuNTk5Nyst
Mi40MTUxICAgICAgICAgICAzMi43ODI1Ky0wLjQ1MjAgICAgICAgICAgbWlnaHQgYmUgMS4wNTU0
eCBmYXN0ZXIKICAgc3RyaW5nLXRlc3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgMi41OTI3Ky0wLjA2NDEgICAgID8gICAgICAyLjc1MjMrLTAuNTA1MSAgICAgICAgPyBt
aWdodCBiZSAxLjA2MTZ4IHNsb3dlcgogICBzdHJpbmctdHJhbnNjb2RpbmcgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDE2LjA2ODgrLTAuNDk5MyAgICAgICAgICAgMTUuODkwNystMC40
MjYwICAgICAgICAgIG1pZ2h0IGJlIDEuMDExMnggZmFzdGVyCiAgIHN0cmluZy12YXItZXF1YWxp
dHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjcuNTU3OCstMi43MzMxICAgICAgICAg
ICAyNi4yMzY5Ky0wLjQyMjkgICAgICAgICAgbWlnaHQgYmUgMS4wNTAzeCBmYXN0ZXIKICAgc3Ry
dWN0dXJlLWhvaXN0LW92ZXItdHJhbnNpdGlvbnMgICAgICAgICAgICAgICAgICAgMi4xNDQyKy0w
LjAyMjMgICAgID8gICAgICAyLjE2MjQrLTAuMDM1MCAgICAgICAgPwogICBzdWJzdHJpbmctY29u
Y2F0LXdlaXJkICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM0LjA2MDMrLTAuNzM2OCAgICAg
PyAgICAgMzQuMTgwNSstMC41NTg1ICAgICAgICA/CiAgIHN1YnN0cmluZy1jb25jYXQgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMzcuMzI0OCstMC4zNjc4ICAgICA/ICAgICAzNy45
NTk1Ky0yLjEwNDEgICAgICAgID8gbWlnaHQgYmUgMS4wMTcweCBzbG93ZXIKICAgc3Vic3RyaW5n
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0Mi41MTMxKy0wLjIyMDgg
ICAgID8gICAgIDQ1LjgyNzUrLTUuOTIyOSAgICAgICAgPyBtaWdodCBiZSAxLjA3ODB4IHNsb3dl
cgogICBzd2l0Y2gtY2hhci1jb25zdGFudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAx
Ljk4MzMrLTAuMTE0MiAgICAgPyAgICAgIDIuMDI3NSstMC4xMTAwICAgICAgICA/IG1pZ2h0IGJl
IDEuMDIyM3ggc2xvd2VyCiAgIHN3aXRjaC1jaGFyICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDQuNTk3MSstMC4xODE4ICAgICA/ICAgICAgNC42NzM0Ky0wLjI5NTUgICAg
ICAgID8gbWlnaHQgYmUgMS4wMTY2eCBzbG93ZXIKICAgc3dpdGNoLWNvbnN0YW50ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4yNTM5Ky0wLjEwNTkgICAgID8gICAgICAzLjMw
OTQrLTAuMTQwNyAgICAgICAgPyBtaWdodCBiZSAxLjAxNzF4IHNsb3dlcgogICBzd2l0Y2gtc3Ry
aW5nLWJhc2ljLWJpZy12YXIgICAgICAgICAgICAgICAgICAgICAgIDE0LjAxMDUrLTAuNzk2OSAg
ICAgPyAgICAgMTQuNTUwNystMS42MTQ0ICAgICAgICA/IG1pZ2h0IGJlIDEuMDM4Nnggc2xvd2Vy
CiAgIHN3aXRjaC1zdHJpbmctYmFzaWMtYmlnICAgICAgICAgICAgICAgICAgICAgICAgICAgMTIu
NzYwMistMC4yNjkxICAgICA/ICAgICAxMi44MDEwKy0wLjM2MzQgICAgICAgID8KICAgc3dpdGNo
LXN0cmluZy1iYXNpYy12YXIgICAgICAgICAgICAgICAgICAgICAgICAgICAxNC45MTk3Ky0xLjM4
NjQgICAgICAgICAgIDE0LjY5NjcrLTEuNjYyOSAgICAgICAgICBtaWdodCBiZSAxLjAxNTJ4IGZh
c3RlcgogICBzd2l0Y2gtc3RyaW5nLWJhc2ljICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDExLjY4MTcrLTAuMTQwMyAgICAgPyAgICAgMTIuNjk3MSstMS4xNjc4ICAgICAgICA/IG1pZ2h0
IGJlIDEuMDg2OXggc2xvd2VyCiAgIHN3aXRjaC1zdHJpbmctYmlnLWxlbmd0aC10b3dlci12YXIg
ICAgICAgICAgICAgICAgMjIuNDI1NCstMy40ODI4ICAgICAgICAgICAyMS41NTYzKy0wLjk3MTAg
ICAgICAgICAgbWlnaHQgYmUgMS4wNDAzeCBmYXN0ZXIKICAgc3dpdGNoLXN0cmluZy1sZW5ndGgt
dG93ZXItdmFyICAgICAgICAgICAgICAgICAgICAxNS41NTI4Ky0xLjQ1NTggICAgICAgICAgIDE1
LjQ1MzgrLTEuNDgyMyAgICAgICAgCiAgIHN3aXRjaC1zdHJpbmctbGVuZ3RoLXRvd2VyICAgICAg
ICAgICAgICAgICAgICAgICAgMTEuMzIzNSstMC4wNjA2ICAgICA/ICAgICAxMS42MjM4Ky0wLjM1
MDUgICAgICAgID8gbWlnaHQgYmUgMS4wMjY1eCBzbG93ZXIKICAgc3dpdGNoLXN0cmluZy1zaG9y
dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMS41NDk1Ky0wLjcwNDMgICAgID8gICAg
IDEyLjUxODYrLTMuMTE5MyAgICAgICAgPyBtaWdodCBiZSAxLjA4Mzl4IHNsb3dlcgogICBzd2l0
Y2ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LjE0NzMrLTAu
MDk3NSAgICAgICAgICAgIDUuODk2MistMC4zMjQ0ICAgICAgICAgIG1pZ2h0IGJlIDEuMDQyNngg
ZmFzdGVyCiAgIHN5bWJvbC10b3N0cmluZ3RhZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDMuMDAzMSstMC4xMTAwICAgICAgICAgICAgMi45NTU0Ky0wLjA1NTggICAgICAgICAgbWln
aHQgYmUgMS4wMTYxeCBmYXN0ZXIKICAgdGVhci1vZmYtYXJndW1lbnRzLXNpbXBsZSAgICAgICAg
ICAgICAgICAgICAgICAgICAgMi42MDA1Ky0wLjI2NzcgICAgID8gICAgICAyLjY4OTArLTAuMDQw
OSAgICAgICAgPyBtaWdodCBiZSAxLjAzNDB4IHNsb3dlcgogICB0ZWFyLW9mZi1hcmd1bWVudHMg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjE4ODArLTAuMTE0OCAgICAgICAgICAg
IDMuMTY1OCstMC4xNTM3ICAgICAgICAKICAgdGVtcG9yYWwtc3RydWN0dXJlICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAxMS41MTQwKy0wLjE2MTkgICAgID8gICAgIDExLjY3NzcrLTAu
NzA5MiAgICAgICAgPyBtaWdodCBiZSAxLjAxNDJ4IHNsb3dlcgogICB0by1pbnQzMi1ib29sZWFu
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyLjE2NDUrLTAuMTIzMyAgICAgPyAg
ICAgMTIuNTQ2OCstMC43NzY3ICAgICAgICA/IG1pZ2h0IGJlIDEuMDMxNHggc2xvd2VyCiAgIHRy
eS1jYXRjaC1nZXQtYnktdmFsLWNsb25lZC1hcmd1bWVudHMgICAgICAgICAgICAgIDMuMjU5MCst
MC4xNjg4ICAgICAgICAgICAgMy4wMjk2Ky0wLjQzODcgICAgICAgICAgbWlnaHQgYmUgMS4wNzU3
eCBmYXN0ZXIKICAgdHJ5LWNhdGNoLWdldC1ieS12YWwtZGlyZWN0LWFyZ3VtZW50cyAgICAgICAg
ICAgICAgMS45NjAyKy0wLjAzNzIgICAgID8gICAgICAxLjk5NjMrLTAuMDU2NyAgICAgICAgPyBt
aWdodCBiZSAxLjAxODR4IHNsb3dlcgogICB0cnktY2F0Y2gtZ2V0LWJ5LXZhbC1zY29wZWQtYXJn
dW1lbnRzICAgICAgICAgICAgICA0LjAwNDIrLTAuMTI0MyAgICAgPyAgICAgIDQuMTEyMystMC4z
MDI1ICAgICAgICA/IG1pZ2h0IGJlIDEuMDI3MHggc2xvd2VyCiAgIHR5cGVkLWFycmF5LWdldC1z
ZXQtYnktdmFsLXByb2ZpbGluZyAgICAgICAgICAgICAgMTkuNzUwOCstMC4xNTQ3ICAgICA/ICAg
ICAyMC43MDgxKy0xLjgzMDIgICAgICAgID8gbWlnaHQgYmUgMS4wNDg1eCBzbG93ZXIKICAgdW5k
ZWZpbmVkLXByb3BlcnR5LWFjY2VzcyAgICAgICAgICAgICAgICAgICAgICAgIDI3Ni4xODQzKy00
LjA5MjYgICAgICAgICAgMjcyLjY4NTArLTIuMDE3NCAgICAgICAgICBtaWdodCBiZSAxLjAxMjh4
IGZhc3RlcgogICB1bmRlZmluZWQtdGVzdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAyLjY2NTkrLTAuMDI2OCAgICAgPyAgICAgIDIuNzA1NistMC4wNDM1ICAgICAgICA/IG1p
Z2h0IGJlIDEuMDE0OXggc2xvd2VyCiAgIHVucHJvZmlsZWQtbGljbSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDUuODM0MSstMC40MDE0ICAgICA/ICAgICAgNS45NzgxKy0wLjM1
NzMgICAgICAgID8gbWlnaHQgYmUgMS4wMjQ3eCBzbG93ZXIKICAgdW50eXBlZC1zdHJpbmctZnJv
bS1jaGFyLWNvZGUgICAgICAgICAgICAgICAgICAgICAgOS40MzI3Ky0wLjEwNjQgICAgID8gICAg
ICA5LjQ3ODQrLTAuMTM5OSAgICAgICAgPwogICB2OC1yYXl0cmFjZS13aXRoLWVtcHR5LXRyeS1j
YXRjaCAgICAgICAgICAgICAgICAgIDI2Ljk0ODYrLTAuNjgyMSAgICAgICAgICAgMjYuNzYwMyst
MC40NDAwICAgICAgICAKICAgdjgtcmF5dHJhY2Utd2l0aC10cnktY2F0Y2gtaGlnaC1mcmVxdWVu
Y3ktdGhyb3dzICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAzODAuOTg4MystMi4yNTk1ICAgICAgICAgIDM3Ny4xMDAxKy00LjUwNTUgICAgICAg
ICAgbWlnaHQgYmUgMS4wMTAzeCBmYXN0ZXIKICAgdjgtcmF5dHJhY2Utd2l0aC10cnktY2F0Y2gg
ICAgICAgICAgICAgICAgICAgICAgICA2MS44NjU4Ky0xLjcwNzEgICAgICAgICAgIDYwLjYyNTkr
LTEuMDA4NyAgICAgICAgICBtaWdodCBiZSAxLjAyMDV4IGZhc3RlcgogICB2OC1yZWdleHAtc2Vh
cmNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUxLjcxNzMrLTAuOTczMyAgICAg
PyAgICAgNTIuMjAzOSstMC44OTgxICAgICAgICA/CiAgIHZhcmFyZ3MtY2FsbCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMTMuNTQ2MystMC4zNTQxICAgICA/ICAgICAxNC4w
NDM2Ky0xLjE2NjggICAgICAgID8gbWlnaHQgYmUgMS4wMzY3eCBzbG93ZXIKICAgdmFyYXJncy1j
b25zdHJ1Y3QtaW5saW5lICAgICAgICAgICAgICAgICAgICAgICAgICAxOC42MjU0Ky0wLjc2MjQg
ICAgICAgICAgIDE4LjQxNDgrLTAuMzYzOCAgICAgICAgICBtaWdodCBiZSAxLjAxMTR4IGZhc3Rl
cgogICB2YXJhcmdzLWNvbnN0cnVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE1
LjkxNDMrLTAuMTk2NyAgICAgPyAgICAgMTYuNzk4NystMS42MDQ4ICAgICAgICA/IG1pZ2h0IGJl
IDEuMDU1Nnggc2xvd2VyCiAgIHZhcmFyZ3MtaW5saW5lICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDcuOTI4MCstMC4yNDU4ICAgICAgICAgICAgNy45MTIyKy0wLjA5NzUgICAg
ICAgIAogICB2YXJhcmdzLXN0cmljdC1tb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA5LjI5ODErLTAuMjAxNSAgICAgICAgICAgIDkuMjc5NistMC4yMjc2ICAgICAgICAKICAgdmFy
YXJncyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOS4wODAwKy0w
LjE0OTEgICAgICAgICAgICA5LjA1NzUrLTAuMDkxNCAgICAgICAgCiAgIHdlaXJkLWlubGluaW5n
LWNvbnN0LXByb3AgICAgICAgICAgICAgICAgICAgICAgICAgIDEuOTc3OSstMC4xMjgyICAgICA/
ICAgICAgMi4wNTM5Ky0wLjExMjYgICAgICAgID8gbWlnaHQgYmUgMS4wMzg0eCBzbG93ZXIKCiAg
IDxnZW9tZXRyaWM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYuNTI4
MCstMC4wMTg2ICAgICAgICAgICAgNi41MTUwKy0wLjAwNzYgICAgICAgICAgbWlnaHQgYmUgMS4w
MDIweCBmYXN0ZXIKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgVGlwT2ZUcmVlICAgICAgICAgICAgICAgICAgIFRoaW5ncyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCkFzbUJlbmNoOgogICBiaWdmaWIuY3BwICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDMxLjc3MDQrLTYuMjIzMCAgICAgPyAg
ICA0MzYuOTY4MCstMTkuMTk2NSAgICAgICA/IG1pZ2h0IGJlIDEuMDEyMHggc2xvd2VyCiAgIGNy
YXkuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNjAuOTQyMyst
My4xODY2ICAgICA/ICAgIDM2My4wNDkxKy03LjA3NDYgICAgICAgID8KICAgZHJ5LmMgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQyMy43NTg1Ky0xMS45OTUwICAg
ICAgICAgNDIxLjAxMDgrLTEwLjAxNTIgICAgICAgCiAgIEZsb2F0TU0uYyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA3MjEuMTEzNistMjIuMDc5NSAgICAgICAgIDcxOS4z
MzQ3Ky0xNy40MzUzICAgICAgIAogICBnY2MtbG9vcHMuY3BwICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAzNjI3LjgxNTMrLTI0LjUxMTAgICAgPyAgIDM2MzMuMTI3OCstNDUuNzY5
OSAgICAgICA/CiAgIG4tYm9keS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICA4MTUuNzQ3MistMjIuODQ4OSAgICAgICAgIDgwOC4zMzMyKy03LjAyOTAgICAgICAgIAog
ICBRdWlja3NvcnQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzkzLjU4
NzIrLTEzLjMwNjEgICAgICAgICAzODcuNzU3MistMy4yNzUyICAgICAgICAgIG1pZ2h0IGJlIDEu
MDE1MHggZmFzdGVyCiAgIHN0ZXBhbm92X2NvbnRhaW5lci5jcHAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDMyNTUuNjE2MystMzMuMzM1MCAgICA/ICAgMzI5NC4wNTMzKy0xMDcuMTY4MyAgICAg
ID8gbWlnaHQgYmUgMS4wMTE4eCBzbG93ZXIKICAgVG93ZXJzLmMgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDI2OS43MTQ2Ky00LjQ4MzggICAgID8gICAgMjcwLjQxNDAr
LTEuNzY5MSAgICAgICAgPwoKICAgPGdlb21ldHJpYz4gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDcxNC42NjkyKy00LjUxNTIgICAgID8gICAgNzE0LjcwMDcrLTUuMjM4OSAg
ICAgICAgPyBtaWdodCBiZSAxLjAwMDB4IHNsb3dlcgoKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaXBPZlRyZWUgICAgICAgICAgICAgICAg
ICAgVGhpbmdzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKQ29tcHJlc3Np
b25CZW5jaDoKICAgaHVmZm1hbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAzMy4zMjk3Ky0xLjQzNDAgICAgID8gICAgIDMzLjQxMTUrLTEuMTExMiAgICAgICAgPwog
ICBhcml0aG1ldGljLXNpbXBsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjU1Ljc1
NzYrLTAuNDIxNyAgICAgPyAgICAyNTguNDA3NystMy4zMjg0ICAgICAgICA/IG1pZ2h0IGJlIDEu
MDEwNHggc2xvd2VyCiAgIGFyaXRobWV0aWMtcHJlY2lzZSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAyNDcuNTcxMCstNi4yMDEzICAgICAgICAgIDI0NC43MDQ3Ky00Ljc1MzMgICAgICAg
ICAgbWlnaHQgYmUgMS4wMTE3eCBmYXN0ZXIKICAgYXJpdGhtZXRpYy1jb21wbGV4LXByZWNpc2Ug
ICAgICAgICAgICAgICAgICAgICAgIDI0MS4yMzM1Ky0zLjk1MjUgICAgICAgICAgMjQwLjAyODUr
LTIuMTMwMiAgICAgICAgCiAgIGFyaXRobWV0aWMtcHJlY2lzZS1vcmRlci0wICAgICAgICAgICAg
ICAgICAgICAgICAyNjUuMjM3OCstNi4zMjE2ICAgICAgICAgIDI2NC44MDk1Ky02LjYxMzAgICAg
ICAgIAogICBhcml0aG1ldGljLXByZWNpc2Utb3JkZXItMSAgICAgICAgICAgICAgICAgICAgICAg
MjkyLjQyOTkrLTIuODc3MiAgICAgPyAgICAzMDQuODM3OCstMzIuNDIwOCAgICAgICA/IG1pZ2h0
IGJlIDEuMDQyNHggc2xvd2VyCiAgIGFyaXRobWV0aWMtcHJlY2lzZS1vcmRlci0yICAgICAgICAg
ICAgICAgICAgICAgICAzMzMuODE3OCstMTEuNzEyMSAgICAgICAgIDMyOS44MzkyKy01LjI5MjIg
ICAgICAgICAgbWlnaHQgYmUgMS4wMTIxeCBmYXN0ZXIKICAgYXJpdGhtZXRpYy1zaW1wbGUtb3Jk
ZXItMSAgICAgICAgICAgICAgICAgICAgICAgIDMwNi4zNzQ4Ky04LjM2NDAgICAgICAgICAgMzAz
LjA0MzQrLTAuODEzNCAgICAgICAgICBtaWdodCBiZSAxLjAxMTB4IGZhc3RlcgogICBhcml0aG1l
dGljLXNpbXBsZS1vcmRlci0yICAgICAgICAgICAgICAgICAgICAgICAgMzU1LjMzMjUrLTEwLjIz
NzMgICAgPyAgICAzNTcuMzQxMystMTEuMDg4MiAgICAgICA/CiAgIGx6LXN0cmluZyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyODAuNjIxOCstNS4xNjczICAgICA/ICAg
IDI4OC43NzM1Ky0xMC4zOTU2ICAgICAgID8gbWlnaHQgYmUgMS4wMjkweCBzbG93ZXIKCiAgIDxn
ZW9tZXRyaWM+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMjkuMzAxNCst
Mi4yMTUxICAgICA/ICAgIDIzMC4zMTg0Ky0yLjYxMjcgICAgICAgID8gbWlnaHQgYmUgMS4wMDQ0
eCBzbG93ZXIKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgVGlwT2ZUcmVlICAgICAgICAgICAgICAgICAgIFRoaW5ncyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgCkdlb21lYW4gb2YgcHJlZmVycmVkIG1lYW5zOgogICA8
c2NhbGVkLXJlc3VsdD4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ0Ljc1Nzcr
LTAuMjI5MiAgICAgICAgICAgNDQuNjk3NCstMC4xMTAzICAgICAgICAgIG1pZ2h0IGJlIDEuMDAx
M3ggZmFzdGVyCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279734</attachid>
            <date>2016-05-24 18:10:35 -0700</date>
            <delta_ts>2016-05-26 10:53:21 -0700</delta_ts>
            <desc>it works, sort of, but it&apos;s the wrong approach</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>47524</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZD
b21tb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01h
Y3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgJKHJldmlzaW9uIDIwMTM1MCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaAkod29ya2luZyBj
b3B5KQpAQCAtMjI2Miw2ICsyMjYyLDEyIEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIu
am1wX20oYWRkcmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFzZSk7CiAgICAgfQogCisgICAgLy8gQWRk
cmVzcyBpcyBhIG1lbW9yeSBsb2NhdGlvbiBjb250YWluaW5nIHRoZSBhZGRyZXNzIHRvIGp1bXAg
dG8KKyAgICB2b2lkIGp1bXAoQmFzZUluZGV4IGFkZHJlc3MpCisgICAgeworICAgICAgICBtX2Fz
c2VtYmxlci5qbXBfbShhZGRyZXNzLm9mZnNldCwgYWRkcmVzcy5iYXNlLCBhZGRyZXNzLmluZGV4
LCBhZGRyZXNzLnNjYWxlKTsKKyAgICB9CisKIAogICAgIC8vIEFyaXRobWV0aWMgY29udHJvbCBm
bG93IG9wZXJhdGlvbnM6CiAgICAgLy8KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvWDg2QXNzZW1ibGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaAkocmV2aXNpb24gMjAxMzUwKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaAkod29ya2luZyBjb3B5KQpAQCAt
MTk4Myw2ICsxOTgzLDExIEBAIHB1YmxpYzoKICAgICAgICAgbV9mb3JtYXR0ZXIub25lQnl0ZU9w
KE9QX0dST1VQNV9FdiwgR1JPVVA1X09QX0pNUE4sIGJhc2UsIG9mZnNldCk7CiAgICAgfQogICAg
IAorICAgIHZvaWQgam1wX20oaW50IG9mZnNldCwgUmVnaXN0ZXJJRCBiYXNlLCBSZWdpc3RlcklE
IGluZGV4LCBpbnQgc2NhbGUpCisgICAgeworICAgICAgICBtX2Zvcm1hdHRlci5vbmVCeXRlT3Ao
T1BfR1JPVVA1X0V2LCBHUk9VUDVfT1BfSk1QTiwgYmFzZSwgaW5kZXgsIHNjYWxlLCBvZmZzZXQp
OworICAgIH0KKyAgICAKICNpZiAhQ1BVKFg4Nl82NCkKICAgICB2b2lkIGptcF9tKGNvbnN0IHZv
aWQqIGFkZHJlc3MpCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFz
aWNCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFz
aWNCbG9jay5jcHAJKHJldmlzaW9uIDIwMTM1MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM0Jhc2ljQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDksNiArMTA5LDExIEBAIHZv
aWQgQmFzaWNCbG9jazo6dXBkYXRlUHJlZGVjZXNzb3JzQWZ0ZXIKICAgICBCMzo6dXBkYXRlUHJl
ZGVjZXNzb3JzQWZ0ZXIodGhpcyk7CiB9CiAKK3ZvaWQgQmFzaWNCbG9jazo6YWRkQ2FsbGJhY2tU
YXNrKFJlZlB0cjxTaGFyZWRUYXNrPHZvaWQoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKT4+IHRhc2sp
Cit7CisgICAgZW5zdXJlUmFyZURhdGEoKS5jYWxsYmFja3MuYXBwZW5kKHRhc2spOworfQorCiB2
b2lkIEJhc2ljQmxvY2s6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHsKICAgICBvdXQu
cHJpbnQoZHVtcFByZWZpeCwgbV9pbmRleCk7CkBAIC0xMTYsMTMgKzEyMSwyNCBAQCB2b2lkIEJh
c2ljQmxvY2s6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgCiAKIHZvaWQgQmFzaWNCbG9jazo6ZGVl
cER1bXAoY29uc3QgUHJvY2VkdXJlJiBwcm9jLCBQcmludFN0cmVhbSYgb3V0KSBjb25zdAogewot
ICAgIG91dC5wcmludCgiQkIiLCAqdGhpcywgIjogOyBmcmVxdWVuY3kgPSAiLCBtX2ZyZXF1ZW5j
eSwgIlxuIik7CisgICAgb3V0LnByaW50KCJCQiIsICp0aGlzLCAiOiA7IGZyZXF1ZW5jeSA9ICIs
IG1fZnJlcXVlbmN5LCAiLCBhdCAiLCBSYXdQb2ludGVyKHRoaXMpLCAiXG4iKTsKKyAgICBmb3JF
YWNoQ2FsbGJhY2soCisgICAgICAgIFsmXSAoY29uc3QgYXV0byYgY2FsbGJhY2spIHsKKyAgICAg
ICAgICAgIG91dC5wcmludCgiICBDYWxsYmFjayBhdCAiLCBSYXdQb2ludGVyKGNhbGxiYWNrLmdl
dCgpKSwgIlxuIik7CisgICAgICAgIH0pOwogICAgIGlmIChwcmVkZWNlc3NvcnMoKS5zaXplKCkp
CiAgICAgICAgIG91dC5wcmludCgiICBQcmVkZWNlc3NvcnM6ICIsIHBvaW50ZXJMaXN0RHVtcChw
cmVkZWNlc3NvcnMoKSksICJcbiIpOwogICAgIGZvciAoVmFsdWUqIHZhbHVlIDogKnRoaXMpCiAg
ICAgICAgIG91dC5wcmludCgiICAgICIsIEIzOjpkZWVwRHVtcChwcm9jLCB2YWx1ZSksICJcbiIp
OwogfQogCitCYXNpY0Jsb2NrOjpSYXJlRGF0YSYgQmFzaWNCbG9jazo6ZW5zdXJlUmFyZURhdGEo
KQoreworICAgIGlmICghbV9yYXJlRGF0YSkKKyAgICAgICAgbV9yYXJlRGF0YSA9IHN0ZDo6bWFr
ZV91bmlxdWU8UmFyZURhdGE+KCk7CisgICAgcmV0dXJuICptX3JhcmVEYXRhOworfQorCiB9IH0g
Ly8gbmFtZXNwYWNlIEpTQzo6QjMKIAogI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5oCShyZXZpc2lvbiAyMDEzNTApCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmgJKHdvcmtpbmcgY29weSkK
QEAgLTMyLDYgKzMyLDggQEAKICNpbmNsdWRlICJCM09yaWdpbi5oIgogI2luY2x1ZGUgIkIzU3Vj
Y2Vzc29yQ29sbGVjdGlvbi5oIgogI2luY2x1ZGUgIkIzVHlwZS5oIgorI2luY2x1ZGUgIk1hY3Jv
QXNzZW1ibGVyQ29kZVJlZi5oIgorI2luY2x1ZGUgPHd0Zi9TaGFyZWRUYXNrLmg+CiAjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKQEAgLTQ0
LDYgKzQ2LDggQEAgY2xhc3MgVmFsdWU7CiBjbGFzcyBCYXNpY0Jsb2NrIHsKICAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShCYXNpY0Jsb2NrKTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
KyAgICAKKyAgICBzdHJ1Y3QgUmFyZURhdGE7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBWZWN0b3I8
VmFsdWUqPiBWYWx1ZUxpc3Q7CiAgICAgdHlwZWRlZiBWZWN0b3I8QmFzaWNCbG9jayosIDI+IFBy
ZWRlY2Vzc29yTGlzdDsKQEAgLTExNiw2ICsxMjAsNjAgQEAgcHVibGljOgogCiAgICAgZG91Ymxl
IGZyZXF1ZW5jeSgpIGNvbnN0IHsgcmV0dXJuIG1fZnJlcXVlbmN5OyB9CiAKKyAgICB2b2lkIGFk
ZENhbGxiYWNrVGFzayhSZWZQdHI8U2hhcmVkVGFzazx2b2lkKE1hY3JvQXNzZW1ibGVyQ29kZVB0
cik+Pik7CisgICAgCisgICAgLy8gQWRkIGEgY2FsbGJhY2sgdGhhdCB3aWxsIHRlbGwgeW91IHRo
ZSBhZGRyZXNzIG9mIHRoaXMgYmFzaWMgYmxvY2suIFRoaXMgaXMgb25seSB2YWxpZCBmb3IgYmFz
aWMKKyAgICAvLyBibG9ja3MgdGhhdCB3aWxsIG5vdCBiZSBraWxsZWQgYnkgdGhlIG9wdGltaXpl
ci4gUHJldHR5IG11Y2ggdGhlIG9ubHkgd2F5IHRvIGd1YXJhbnRlZSB0aGF0IGEKKyAgICAvLyBi
bG9jayBkb2Vzbid0IGdldCBraWxsZWQgaXMgdG8gdXNlIHRoZSByb290IGJsb2NrIG9yIGEgYmxv
Y2sgdGhhdCBpcyB0aGUgc3VjY2Vzc29yIG9mIGEKKyAgICAvLyBMZWFwT2ZGYWl0aC4gRXZlbiB0
aGVuLCB0aGUgY29kZSBtYXkgYmUgcHJvdmVkIHVucmVhY2hhYmxlLCBpbiB3aGljaCBjYXNlIHRo
aXMgd29uJ3QgZ2V0CisgICAgLy8gY2FsbGVkLgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmM+
CisgICAgdm9pZCBhZGRDYWxsYmFjayhGdW5jJiYgZnVuYykKKyAgICB7CisgICAgICAgIGFkZENh
bGxiYWNrVGFzayhjcmVhdGVTaGFyZWRUYXNrPHZvaWQoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKT4o
c3RkOjpmb3J3YXJkPEZ1bmM+KGZ1bmMpKSk7CisgICAgfQorICAgIAorICAgIHRlbXBsYXRlPHR5
cGVuYW1lIEZ1bmM+CisgICAgdm9pZCBmb3JFYWNoQ2FsbGJhY2soY29uc3QgRnVuYyYgZnVuYykg
Y29uc3QKKyAgICB7CisgICAgICAgIGlmICghbV9yYXJlRGF0YSkKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiBjYWxsYmFjayA6IG1fcmFyZURhdGEtPmNhbGxi
YWNrcykKKyAgICAgICAgICAgIGZ1bmMoY2FsbGJhY2spOworICAgIH0KKyAgICAKKyAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBGdW5jPgorICAgIHZvaWQgdGFrZUVhY2hDYWxsYmFjayhjb25zdCBGdW5j
JiBmdW5jKQorICAgIHsKKyAgICAgICAgaWYgKCFtX3JhcmVEYXRhKQorICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICBmb3IgKGF1dG8mIGNhbGxiYWNrIDogbV9yYXJlRGF0YS0+Y2FsbGJhY2tz
KQorICAgICAgICAgICAgZnVuYyhjYWxsYmFjayk7CisgICAgICAgIG1fcmFyZURhdGEtPmNhbGxi
YWNrcy5jbGVhcigpOworICAgIH0KKyAgICAKKyAgICAvLyBJZiBhIGJhc2ljIGJsb2NrIGhhcyBj
YWxsYmFja3MsIGl0IG1lYW5zIHRoYXQgc29tZW9uZSBpbnRlbmRzIHRvIHRha2UgdGhlIGFkZHJl
c3Mgb2YgdGhpcyBiYXNpYworICAgIC8vIGJsb2NrIGFuZCB1c2UgaXQgdG8ganVtcCBkaXJlY3Rs
eSB0byBpdCBmcm9tIHNvbWUgTGVhcE9mRmFpdGguIFlvdSBrbm93IHdoaWNoIGxlYXBzIHdpbGwg
anVtcCB0bworICAgIC8vIGl0IGJlY2F1c2UgdGhleSB3aWxsIGxpc3QgdGhpcyBibG9jayBhcyBh
IHN1Y2Nlc3Nvci4gQnV0IHlvdSBkb24ndCByZWFsbHkga25vdyBtdWNoIG1vcmUgYmV5b25kCisg
ICAgLy8gdGhpcy4KKyAgICAvLworICAgIC8vIFRoaXMgZ3Jvc3MgZmVhdHVyZSBpcyB3b3J0aCBp
dC4gSXQgYWxsb3dzIHVzIHRvIGxvd2VyIHN3aXRjaGVzIHRvIHRhYmxlLWJhc2VkIGluZGlyZWN0
IGp1bXBzLAorICAgIC8vIHdoaWNoIGlzIGEgbG90IGZhc3RlciBmb3IgbGFyZ2Ugc3dpdGNoIHN0
YXRlbWVudHMuIEl0J3MgYWxzbyBwcm92ZWQgaXRzZWxmIHRvIGJlIGEgY3J1Y2lhbAorICAgIC8v
IGZlYXR1cmUgaW4gb3RoZXIgY29tcGlsZXJzLiBGb3IgZXhhbXBsZSwgR0NDIHVzZXMgaXRzIHZl
cnNpb24gb2YgdGhpcyBmZWF0dXJlIChhZGRyZXNzIG9mIGxhYmVsKQorICAgIC8vIHRvIHNwZWVk
IHVwIGludGVycHJldGVycy4KKyAgICAvLworICAgIC8vIE9uZSBpbXBsaWNhdGlvbiBpcyB0aGF0
IGlmIHlvdSBjbG9uZSB0aGUgYmxvY2sgZm9yIHdoYXRldmVyIHJlYXNvbiwgeW91IGJldHRlciBr
ZWVwIHRoZQorICAgIC8vIG9yaWdpbmFsIGFyb3VuZC4gVGhlIG9yaWdpbmFsJ3MgYWRkcmVzcyBo
YXMgYWxyZWFkeSBlc2NhcGVkLCBhbmQgc29tZSBMZWFwT2ZGYWl0aCB3aWxsIGp1bXAgdG8KKyAg
ICAvLyBpdC4KKyAgICAvLworICAgIC8vIEl0IHdvdWxkIGJlIHZhbGlkIHRvIHJlbW92ZSB0aGUg
Y2FsbGJhY2tzIG9mIGFueSBibG9jayB0aGF0IGRvZXMgbm90IGhhdmUgYW55IExlYXBPZkZhaXRo
CisgICAgLy8gcHJlZGVjZXNzb3JzLiBJdCB3b3VsZCBiZSBpbnZhbGlkIHRvIGhhdmUgYSBMZWFw
T2ZGYWl0aCB0aGF0IGxpc3RzIGEgYmxvY2sgYXMgYSBzdWNjZXNzb3IgaWYKKyAgICAvLyB0aGF0
IGJsb2NrIGRpZCBub3QgaGF2ZSBhIGNhbGxiYWNrLgorICAgIGJvb2wgaGFzQ2FsbGJhY2tzKCkg
Y29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX3JhcmVEYXRhICYmICFtX3JhcmVEYXRhLT5j
YWxsYmFja3MuaXNFbXB0eSgpOworICAgIH0KKyAgICAKICAgICB2b2lkIGR1bXAoUHJpbnRTdHJl
YW0mKSBjb25zdDsKICAgICB2b2lkIGRlZXBEdW1wKGNvbnN0IFByb2NlZHVyZSYsIFByaW50U3Ry
ZWFtJikgY29uc3Q7CiAKQEAgLTEyNiwxMSArMTg0LDE5IEBAIHByaXZhdGU6CiAgICAgCiAgICAg
Ly8gSW5zdGFudGlhdGUgdmlhIFByb2NlZHVyZS4KICAgICBCYXNpY0Jsb2NrKHVuc2lnbmVkIGlu
ZGV4LCBkb3VibGUgZnJlcXVlbmN5KTsKKyAgICAKKyAgICBSYXJlRGF0YSYgZW5zdXJlUmFyZURh
dGEoKTsKIAogICAgIHVuc2lnbmVkIG1faW5kZXg7CiAgICAgVmFsdWVMaXN0IG1fdmFsdWVzOwog
ICAgIFByZWRlY2Vzc29yTGlzdCBtX3ByZWRlY2Vzc29yczsKICAgICBkb3VibGUgbV9mcmVxdWVu
Y3k7CisgICAgCisgICAgc3RydWN0IFJhcmVEYXRhIHsKKyAgICAgICAgVmVjdG9yPFJlZlB0cjxT
aGFyZWRUYXNrPHZvaWQoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKT4+PiBjYWxsYmFja3M7CisgICAg
fTsKKyAgICAKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UmFyZURhdGE+IG1fcmFyZURhdGE7CiB9Owog
CiBjbGFzcyBEZWVwQmFzaWNCbG9ja0R1bXAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzQmxvY2tJbnNlcnRpb25TZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0Jsb2NrSW5zZXJ0aW9uU2V0LmNwcAkocmV2aXNpb24gMjAxMzUwKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmxvY2tJbnNlcnRpb25TZXQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC05OCw2ICs5OCwxMyBAQCBCYXNpY0Jsb2NrKiBCbG9ja0luc2VydGlvblNldDo6
c3BsaXRGb3J3CiAgICAgYmxvY2stPmFkZFByZWRlY2Vzc29yKHJlc3VsdCk7CiAgICAgZm9yIChC
YXNpY0Jsb2NrKiBwcmVkZWNlc3NvciA6IHJlc3VsdC0+cHJlZGVjZXNzb3JzKCkpCiAgICAgICAg
IHByZWRlY2Vzc29yLT5yZXBsYWNlU3VjY2Vzc29yKGJsb2NrLCByZXN1bHQpOworICAgIAorICAg
IC8vIENhbGxiYWNrcyBhcmUgc29ydCBvZiBsaWtlIHByZWRlY2Vzc29ycy4gV2UgbmVlZCB0byBt
YWtlIHN1cmUgdGhhdCAncmVzdWx0JyB0YWtlcyBhbGwgb2YKKyAgICAvLyAnYmxvY2snJ3MgY2Fs
bGJhY2tzLgorICAgIGJsb2NrLT50YWtlRWFjaENhbGxiYWNrKAorICAgICAgICBbJl0gKFJlZlB0
cjxTaGFyZWRUYXNrPHZvaWQoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKT4+IHRhc2spIHsKKyAgICAg
ICAgICAgIHJlc3VsdC0+YWRkQ2FsbGJhY2tUYXNrKHRhc2spOworICAgICAgICB9KTsKIAogICAg
IHJldHVybiByZXN1bHQ7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb250
cm9sVmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nv
bnRyb2xWYWx1ZS5jcHAJKHJldmlzaW9uIDIwMTM1MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0NvbnRyb2xWYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxLDYgKzUxLDEyIEBA
IGJvb2wgQ29udHJvbFZhbHVlOjpyZXBsYWNlU3VjY2Vzc29yKEJhc2kKICAgICByZXR1cm4gcmVz
dWx0OwogfQogCit2b2lkIENvbnRyb2xWYWx1ZTo6YXBwZW5kU3VjY2Vzc29yKGNvbnN0IEZyZXF1
ZW50ZWRCbG9jayYgYmxvY2spCit7CisgICAgUkVMRUFTRV9BU1NFUlQob3Bjb2RlKCkgPT0gTGVh
cE9mRmFpdGgpOworICAgIG1fc3VjY2Vzc29ycy5hcHBlbmQoYmxvY2spOworfQorCiB2b2lkIENv
bnRyb2xWYWx1ZTo6Y29udmVydFRvSnVtcChCYXNpY0Jsb2NrKiBkZXN0aW5hdGlvbikKIHsKICAg
ICB1bnNpZ25lZCBpbmRleCA9IHRoaXMtPmluZGV4KCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNDb250cm9sVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNDb250cm9sVmFsdWUuaAkocmV2aXNpb24gMjAxMzUwKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzQ29udHJvbFZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQzLDEw
ICs0MywxMSBAQCBwdWJsaWM6CiAgICAgICAgIHN3aXRjaCAob3Bjb2RlKSB7CiAgICAgICAgIGNh
c2UgSnVtcDoKICAgICAgICAgY2FzZSBCcmFuY2g6CisgICAgICAgIGNhc2UgTGVhcE9mRmFpdGg6
CiAgICAgICAgIGNhc2UgUmV0dXJuOgogICAgICAgICBjYXNlIE9vcHM6CiAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLSAgICAgICAgY2FzZSBTd2l0Y2g6IAorICAgICAgICBjYXNlIFN3aXRjaDoK
ICAgICAgICAgICAgIC8vIFRoaXMgaXMgaGVyZSBiZWNhdXNlIFN3aXRjaFZhbHVlIGlzIGEgc3Vi
Y2xhc3Mgb2YgQ29udHJvbFZhbHVlLCBzbyB3ZSB3YW50CiAgICAgICAgICAgICAvLyBzd2l0Y2hW
YWx1ZS0+YXM8Q29udHJvbFZhbHVlPigpIHRvIHJldHVybiBub24tbnVsbC4KICAgICAgICAgICAg
IHJldHVybiB0cnVlOwpAQCAtNzcsNyArNzgsMTAgQEAgcHVibGljOgogICAgIH0KIAogICAgIGJv
b2wgcmVwbGFjZVN1Y2Nlc3NvcihCYXNpY0Jsb2NrKiBmcm9tLCBCYXNpY0Jsb2NrKiB0byk7Ci0K
KyAgICAKKyAgICAvLyBUaGlzIGlzIG9ubHkgdmFsaWQgZm9yIExlYXBPZkZhaXRoLgorICAgIHZv
aWQgYXBwZW5kU3VjY2Vzc29yKGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYpOworICAgIAogICAgIGNv
bnN0IEZyZXF1ZW50ZWRCbG9jayYgdGFrZW4oKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJU
KG9wY29kZSgpID09IEp1bXAgfHwgb3Bjb2RlKCkgPT0gQnJhbmNoKTsKQEAgLTEyOCwxMSArMTMy
LDExIEBAIHByaXZhdGU6CiAgICAgICAgIEFTU0VSVChvcGNvZGUgPT0gT29wcyk7CiAgICAgfQog
Ci0gICAgLy8gVXNlIHRoaXMgZm9yIFJldHVybi4KKyAgICAvLyBVc2UgdGhpcyBmb3IgUmV0dXJu
IGFuZCBMZWFwT2ZGYWl0aC4KICAgICBDb250cm9sVmFsdWUoT3Bjb2RlIG9wY29kZSwgT3JpZ2lu
IG9yaWdpbiwgVmFsdWUqIHJlc3VsdCkKICAgICAgICAgOiBWYWx1ZShDaGVja2VkT3Bjb2RlLCBv
cGNvZGUsIFZvaWQsIG9yaWdpbiwgcmVzdWx0KQogICAgIHsKLSAgICAgICAgQVNTRVJUKG9wY29k
ZSA9PSBSZXR1cm4pOworICAgICAgICBBU1NFUlQob3Bjb2RlID09IFJldHVybiB8fCBvcGNvZGUg
PT0gTGVhcE9mRmFpdGgpOwogICAgIH0KIAogICAgIC8vIFVzZSB0aGlzIGZvciBKdW1wLgpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRGF0YVNlY3Rpb24uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0RhdGFTZWN0aW9uLmNwcAkocmV2aXNpb24g
MjAxMzUwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRGF0YVNlY3Rpb24uY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTMxLDcgKzMxLDcgQEAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMg
ewogCiBEYXRhU2VjdGlvbjo6RGF0YVNlY3Rpb24oc2l6ZV90IHNpemUpCi0gICAgOiBtX2RhdGEo
ZmFzdE1hbGxvYyhzaXplKSkKKyAgICA6IG1fZGF0YShmYXN0WmVyb2VkTWFsbG9jKHNpemUpKQog
ICAgICwgbV9zaXplKHNpemUpCiB7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNMb3dlck1hY3Jvcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzTG93ZXJNYWNyb3MuY3BwCShyZXZpc2lvbiAyMDEzNTApCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNMb3dlck1hY3Jvcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsNiArMzQsNyBAQAog
I2luY2x1ZGUgIkIzQ29uc3RQdHJWYWx1ZS5oIgogI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgi
CiAjaW5jbHVkZSAiQjNJbnNlcnRpb25TZXRJbmxpbmVzLmgiCisjaW5jbHVkZSAiQjNNZW1vcnlW
YWx1ZS5oIgogI2luY2x1ZGUgIkIzUGhhc2VTY29wZS5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJl
SW5saW5lcy5oIgogI2luY2x1ZGUgIkIzU3dpdGNoVmFsdWUuaCIKQEAgLTI3NSw4ICsyNzYsOTIg
QEAgcHJpdmF0ZToKICAgICAgICAgY29uc3QgVmVjdG9yPFN3aXRjaENhc2U+JiBjYXNlcywgdW5z
aWduZWQgc3RhcnQsIGJvb2wgaGFyZFN0YXJ0LCB1bnNpZ25lZCBlbmQsCiAgICAgICAgIEJhc2lj
QmxvY2sqIGJlZm9yZSkKICAgICB7Ci0gICAgICAgIC8vIEZJWE1FOiBBZGQgdGFibGUtYmFzZWQg
c3dpdGNoIGxvd2VyaW5nLgotICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTUxMTQxCisgICAgICAgIFZhbHVlKiBjaGlsZCA9IG1fdmFsdWUtPmNoaWxk
KDApOworICAgICAgICBUeXBlIHR5cGUgPSBjaGlsZC0+dHlwZSgpOworICAgICAgICBGcmVxdWVu
dGVkQmxvY2sgZmFsbFRocm91Z2ggPSBtX3ZhbHVlLT5hczxTd2l0Y2hWYWx1ZT4oKS0+ZmFsbFRo
cm91Z2goKTsKKyAgICAgICAgCisgICAgICAgIC8vIEl0J3MgYSBnb29kIGlkZWEgdG8gdXNlIGEg
dGFibGUtYmFzZWQgc3dpdGNoIGluIHNvbWUgY2FzZXM6IHRoZSBudW1iZXIgb2YgY2FzZXMgaGFz
IHRvIGJlCisgICAgICAgIC8vIGxhcmdlIGVub3VnaCBhbmQgdGhleSBoYXZlIHRvIGJlIGRlbnNl
IGVub3VnaC4gVGhpcyBjb3VsZCBwcm9iYWJseSBiZSBpbXByb3ZlZCBhIGxvdC4gRm9yCisgICAg
ICAgIC8vIGV4YW1wbGUsIHdlIGNvdWxkIHN0aWxsIHVzZSBhIGp1bXAgdGFibGUgaW4gY2FzZXMg
d2hlcmUgdGhlIGlucHV0cyBhcmUgc3BhcnNlIHNvIGxvbmcgYXMgd2UKKyAgICAgICAgLy8gc2hp
ZnQgb2ZmIHRoZSB1bmludGVyZXN0aW5nIGJpdHMuIE9uIHRoZSBvdGhlciBoYW5kLCBpdCdzIG5v
dCBjbGVhciB0aGF0IHRoaXMgd291bGQKKyAgICAgICAgLy8gYWN0dWFsbHkgYmUgYW55IGJldHRl
ciB0aGFuIHdoYXQgd2UgaGF2ZSBkb25lIGhlcmUgYW5kIGl0J3Mgbm90IGNsZWFyIHRoYXQgaXQg
d291bGQgYmUKKyAgICAgICAgLy8gYmV0dGVyIHRoYW4gYSBiaW5hcnkgc3dpdGNoLgorICAgICAg
ICBjb25zdCB1bnNpZ25lZCBtaW5DYXNlc0ZvclRhYmxlID0gNzsKKyAgICAgICAgY29uc3QgdW5z
aWduZWQgZGVuc2l0eUxpbWl0ID0gNDsKKyAgICAgICAgaWYgKGVuZCAtIHN0YXJ0ID49IG1pbkNh
c2VzRm9yVGFibGUpIHsKKyAgICAgICAgICAgIGludDY0X3QgZmlyc3RWYWx1ZSA9IGNhc2VzW3N0
YXJ0XS5jYXNlVmFsdWUoKTsKKyAgICAgICAgICAgIGludDY0X3QgbGFzdFZhbHVlID0gY2FzZXNb
ZW5kIC0gMV0uY2FzZVZhbHVlKCk7CisgICAgICAgICAgICBpZiAoKGxhc3RWYWx1ZSAtIGZpcnN0
VmFsdWUgKyAxKSAvIGNhc2VzLnNpemUoKSA8IGRlbnNpdHlMaW1pdCkgeworICAgICAgICAgICAg
ICAgIEJhc2ljQmxvY2sqIHN3aXRjaEJsb2NrID0gbV9ibG9ja0luc2VydGlvblNldC5pbnNlcnRB
ZnRlcihtX2Jsb2NrKTsKKyAgICAgICAgICAgICAgICBWYWx1ZSogaW5kZXggPSBiZWZvcmUtPmFw
cGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgU3ViLCBtX29yaWdp
biwgY2hpbGQsCisgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kSW50Q29uc3RhbnQo
bV9wcm9jLCBtX29yaWdpbiwgdHlwZSwgZmlyc3RWYWx1ZSkpOworICAgICAgICAgICAgICAgIGJl
Zm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgICAgICAgICAgICAgIG1fcHJv
YywgQnJhbmNoLCBtX29yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmRO
ZXc8VmFsdWU+KAorICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBBYm92ZSwgbV9vcmln
aW4sIGluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmRJbnRDb25z
dGFudChtX3Byb2MsIG1fb3JpZ2luLCB0eXBlLCBsYXN0VmFsdWUgLSBmaXJzdFZhbHVlKSksCisg
ICAgICAgICAgICAgICAgICAgIGZhbGxUaHJvdWdoLCBGcmVxdWVudGVkQmxvY2soc3dpdGNoQmxv
Y2spKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBzaXplX3QgdGFibGVTaXpl
ID0gbGFzdFZhbHVlIC0gZmlyc3RWYWx1ZSArIDE7CisgICAgICAgICAgICAgICAgTWFjcm9Bc3Nl
bWJsZXJDb2RlUHRyKiBqdW1wVGFibGUgPSBiaXR3aXNlX2Nhc3Q8TWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyKj4oCisgICAgICAgICAgICAgICAgICAgIG1fcHJvYy5hZGREYXRhU2VjdGlvbihzaXplb2Yo
TWFjcm9Bc3NlbWJsZXJDb2RlUHRyKSAqIHRhYmxlU2l6ZSkpOworICAgICAgICAgICAgICAgIAor
ICAgICAgICAgICAgICAgIFZhbHVlKiBiYXNlID0gc3dpdGNoQmxvY2stPmFwcGVuZEludENvbnN0
YW50KAorICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLCBwb2ludGVyVHlwZSgp
LCBiaXR3aXNlX2Nhc3Q8aW50cHRyX3Q+KGp1bXBUYWJsZSkpOworICAgICAgICAgICAgICAgIGlm
IChpbmRleC0+dHlwZSgpICE9IGJhc2UtPnR5cGUoKSkgeworICAgICAgICAgICAgICAgICAgICBp
ZiAoaW5kZXgtPnR5cGUoKSA9PSBJbnQzMikKKyAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4
ID0gc3dpdGNoQmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBaRXh0MzIsIG1fb3JpZ2lu
LCBpbmRleCk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGluZGV4ID0gc3dpdGNoQmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBUcnVuYywg
bV9vcmlnaW4sIGluZGV4KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaW5k
ZXggPSBzd2l0Y2hCbG9jay0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgICAgICAgICAg
bV9wcm9jLCBNdWwsIG1fb3JpZ2luLCBpbmRleCwKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNo
QmxvY2stPmFwcGVuZEludENvbnN0YW50KAorICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9j
LCBtX29yaWdpbiwgcG9pbnRlclR5cGUoKSwgc2l6ZW9mKE1hY3JvQXNzZW1ibGVyQ29kZVB0cikp
KTsKKyAgICAgICAgICAgICAgICBWYWx1ZSogcHRyID0gc3dpdGNoQmxvY2stPmFwcGVuZE5ldzxW
YWx1ZT4obV9wcm9jLCBBZGQsIG1fb3JpZ2luLCBiYXNlLCBpbmRleCk7CisgICAgICAgICAgICAg
ICAgVmFsdWUqIGp1bXBUYXJnZXQgPQorICAgICAgICAgICAgICAgICAgICBzd2l0Y2hCbG9jay0+
YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihtX3Byb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIG1fb3Jp
Z2luLCBwdHIpOworICAgICAgICAgICAgICAgIENvbnRyb2xWYWx1ZSogbGVhcE9mRmFpdGggPQor
ICAgICAgICAgICAgICAgICAgICBzd2l0Y2hCbG9jay0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
bV9wcm9jLCBMZWFwT2ZGYWl0aCwgbV9vcmlnaW4sIGp1bXBUYXJnZXQpOworICAgICAgICAgICAg
ICAgIAorICAgICAgICAgICAgICAgIEJpdFZlY3RvciBoYW5kbGVkSW5kaWNlczsKKyAgICAgICAg
ICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBzdGFydDsgaSA8IGVuZDsgKytpKSB7CisgICAgICAg
ICAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayBibG9jayA9IGNhc2VzW2ldLnRhcmdldCgpOwor
ICAgICAgICAgICAgICAgICAgICBpbnQ2NF90IHZhbHVlID0gY2FzZXNbaV0uY2FzZVZhbHVlKCk7
CisgICAgICAgICAgICAgICAgICAgIGxlYXBPZkZhaXRoLT5hcHBlbmRTdWNjZXNzb3IoYmxvY2sp
OworICAgICAgICAgICAgICAgICAgICBzaXplX3QgaW5kZXggPSB2YWx1ZSAtIGZpcnN0VmFsdWU7
CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVCghaGFuZGxlZEluZGljZXMuZ2V0KGluZGV4KSk7
CisgICAgICAgICAgICAgICAgICAgIGhhbmRsZWRJbmRpY2VzLnNldChpbmRleCk7CisgICAgICAg
ICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0cioganVtcFRhYmxlUHRyID0ganVtcFRh
YmxlICsgaW5kZXg7CisgICAgICAgICAgICAgICAgICAgIGJsb2NrLmJsb2NrKCktPmFkZENhbGxi
YWNrKAorICAgICAgICAgICAgICAgICAgICAgICAgWz1dIChNYWNyb0Fzc2VtYmxlckNvZGVQdHIg
Y29kZVB0cikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICpqdW1wVGFibGVQdHIgPSBj
b2RlUHRyOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGJvb2wgaGFzVW5oYW5kbGVkSW5kZXgg
PSBmYWxzZTsKKyAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgdGFibGVT
aXplOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFoYW5kbGVkSW5kaWNlcy5nZXQo
aSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhc1VuaGFuZGxlZEluZGV4ID0gdHJ1ZTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmICho
YXNVbmhhbmRsZWRJbmRleCkgeworICAgICAgICAgICAgICAgICAgICBsZWFwT2ZGYWl0aC0+YXBw
ZW5kU3VjY2Vzc29yKGZhbGxUaHJvdWdoKTsKKyAgICAgICAgICAgICAgICAgICAgZmFsbFRocm91
Z2guYmxvY2soKS0+YWRkQ2FsbGJhY2soCisgICAgICAgICAgICAgICAgICAgICAgICBbPV0gKE1h
Y3JvQXNzZW1ibGVyQ29kZVB0ciBjb2RlUHRyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHRhYmxlU2l6ZTsgKytpKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmICghaGFuZGxlZEluZGljZXMuZ2V0KGkpKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqdW1wVGFibGVbaV0gPSBjb2RlUHRyOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgICAg
ICAKICAgICAgICAgLy8gU2VlIGNvbW1lbnRzIGluIGppdC9CaW5hcnlTd2l0Y2guY3BwIGZvciBh
IGp1c3RpZmljYXRpb24gb2YgdGhpcyBhbGdvcml0aG0uIFRoZSBvbmx5CiAgICAgICAgIC8vIHRo
aW5nIHdlIGRvIGRpZmZlcmVudGx5IGlzIHRoYXQgd2UgZG9uJ3QgdXNlIHJhbmRvbW5lc3MuCkBA
IC0zMDcsMjIgKzM5MiwxOSBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCiAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgQnJhbmNo
LCBtX29yaWdpbiwKICAgICAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+
KAotICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBFcXVhbCwgbV9vcmlnaW4sIG1fdmFs
dWUtPmNoaWxkKDApLAorICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBFcXVhbCwgbV9v
cmlnaW4sIGNoaWxkLAogICAgICAgICAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmRJbnRD
b25zdGFudCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLCBt
X3ZhbHVlLT5jaGlsZCgwKS0+dHlwZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1f
cHJvYywgbV9vcmlnaW4sIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZXNb
c3RhcnQgKyBpXS5jYXNlVmFsdWUoKSkpLAogICAgICAgICAgICAgICAgICAgICBjYXNlc1tzdGFy
dCArIGldLnRhcmdldCgpLCBGcmVxdWVudGVkQmxvY2sobmV4dENoZWNrKSk7CiAKICAgICAgICAg
ICAgICAgICBiZWZvcmUgPSBuZXh0Q2hlY2s7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAg
IGlmIChhbGxDb25zZWN1dGl2ZSkgewotICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCi0gICAgICAgICAgICAgICAgICAgIG1fcHJvYywgSnVtcCwgbV9vcmln
aW4sIGNhc2VzW2VuZCAtIDFdLnRhcmdldCgpKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgICAg
ICAgICAgICAgbV9wcm9jLCBKdW1wLCBtX29yaWdpbiwgbV92YWx1ZS0+YXM8U3dpdGNoVmFsdWU+
KCktPmZhbGxUaHJvdWdoKCkpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGFsbENv
bnNlY3V0aXZlKQorICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4obV9wcm9jLCBKdW1wLCBtX29yaWdpbiwgY2FzZXNbZW5kIC0gMV0udGFyZ2V0KCkpOworICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4obV9wcm9jLCBKdW1wLCBtX29yaWdpbiwgZmFsbFRocm91Z2gpOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CiAKQEAgLTMzNCw5ICs0MTYsOSBAQCBwcml2YXRlOgogICAgICAg
ICBiZWZvcmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAogICAgICAgICAgICAgbV9wcm9jLCBC
cmFuY2gsIG1fb3JpZ2luLAogICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+KAot
ICAgICAgICAgICAgICAgIG1fcHJvYywgTGVzc1RoYW4sIG1fb3JpZ2luLCBtX3ZhbHVlLT5jaGls
ZCgwKSwKKyAgICAgICAgICAgICAgICBtX3Byb2MsIExlc3NUaGFuLCBtX29yaWdpbiwgY2hpbGQs
CiAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmRJbnRDb25zdGFudCgKLSAgICAgICAgICAg
ICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwgbV92YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSwKKyAg
ICAgICAgICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwgdHlwZSwKICAgICAgICAgICAgICAg
ICAgICAgY2FzZXNbbWVkaWFuSW5kZXhdLmNhc2VWYWx1ZSgpKSksCiAgICAgICAgICAgICBGcmVx
dWVudGVkQmxvY2sobGVmdCksIEZyZXF1ZW50ZWRCbG9jayhyaWdodCkpOwogCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAkocmV2aXNpb24gMjAxMzUwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTg2LDggKzg2LDE0IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcnVuKCkKICAgICB7Ci0g
ICAgICAgIGZvciAoQjM6OkJhc2ljQmxvY2sqIGJsb2NrIDogbV9wcm9jZWR1cmUpCi0gICAgICAg
ICAgICBtX2Jsb2NrVG9CbG9ja1tibG9ja10gPSBtX2NvZGUuYWRkQmxvY2soYmxvY2stPmZyZXF1
ZW5jeSgpKTsKKyAgICAgICAgZm9yIChCMzo6QmFzaWNCbG9jayogYmxvY2sgOiBtX3Byb2NlZHVy
ZSkgeworICAgICAgICAgICAgQWlyOjpCYXNpY0Jsb2NrKiBhaXJCbG9jayA9IG1fY29kZS5hZGRC
bG9jayhibG9jay0+ZnJlcXVlbmN5KCkpOworICAgICAgICAgICAgYmxvY2stPmZvckVhY2hDYWxs
YmFjaygKKyAgICAgICAgICAgICAgICBbJl0gKFJlZlB0cjxTaGFyZWRUYXNrPHZvaWQoTWFjcm9B
c3NlbWJsZXJDb2RlUHRyKT4+IGNhbGxiYWNrKSB7CisgICAgICAgICAgICAgICAgICAgIGFpckJs
b2NrLT5hZGRDYWxsYmFja1Rhc2soY2FsbGJhY2spOworICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgbV9ibG9ja1RvQmxvY2tbYmxvY2tdID0gYWlyQmxvY2s7CisgICAgICAgIH0KICAg
ICAgICAgCiAgICAgICAgIGZvciAoVmFsdWUqIHZhbHVlIDogbV9wcm9jZWR1cmUudmFsdWVzKCkp
IHsKICAgICAgICAgICAgIHN3aXRjaCAodmFsdWUtPm9wY29kZSgpKSB7CkBAIC0yNDQxLDYgKzI0
NDcsMTYgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIGNhc2UgQjM6OkxlYXBPZkZhaXRoOiB7Cisg
ICAgICAgICAgICBBcmdQcm9taXNlIGFkZHIgPSBsb2FkUHJvbWlzZShtX3ZhbHVlLT5jaGlsZCgw
KSk7CisgICAgICAgICAgICBpZiAoaXNWYWxpZEZvcm0oQWlyOjpMZWFwT2ZGYWl0aCwgYWRkci5r
aW5kKCkpKSB7CisgICAgICAgICAgICAgICAgYXBwZW5kKEFpcjo6TGVhcE9mRmFpdGgsIGFkZHIu
Y29uc3VtZSgqdGhpcykpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIGFwcGVuZChBaXI6OkxlYXBPZkZhaXRoLCB0bXAobV92YWx1ZS0+Y2hpbGQo
MCkpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogCiAgICAgICAgIGNhc2UgQjM6
Ok9vcHM6IHsKICAgICAgICAgICAgIGFwcGVuZChBaXI6Ok9vcHMpOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNPcGNvZGUuY3BwCShyZXZpc2lvbiAyMDEzNTApCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOTAsNiArMjkw
LDkgQEAgdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIE9wYwogICAgIGNhc2Ug
U3dpdGNoOgogICAgICAgICBvdXQucHJpbnQoIlN3aXRjaCIpOwogICAgICAgICByZXR1cm47Cisg
ICAgY2FzZSBMZWFwT2ZGYWl0aDoKKyAgICAgICAgb3V0LnByaW50KCJMZWFwT2ZGYWl0aCIpOwor
ICAgICAgICByZXR1cm47CiAgICAgY2FzZSBSZXR1cm46CiAgICAgICAgIG91dC5wcmludCgiUmV0
dXJuIik7CiAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M09wY29kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29k
ZS5oCShyZXZpc2lvbiAyMDEzNTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNv
ZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjE2LDYgKzIxNiwxMyBAQCBlbnVtIE9wY29kZSA6IGlu
dDE2X3QgewogCiAgICAgLy8gU3dpdGNoLiBTd2l0Y2hlcyBvdmVyIGVpdGhlciBJbnQzMiBvciBJ
bnQ2NC4gVXNlcyB0aGUgU3dpdGNoVmFsdWUgY2xhc3MuCiAgICAgU3dpdGNoLAorICAgIAorICAg
IC8vIEp1bXAgdG8gdGhlIGdpdmVuIGFkZHJlc3MuIFRoZSBjb21waWxlciBhc3N1bWVzIHRoYXQg
dGhpcyB3aWxsIGp1bXAgdG8gb25lIG9mIHRoZSBzdXBwbGllZAorICAgIC8vIHN1Y2Nlc3NvcnMs
IGJ1dCB3aWxsIG1ha2UgYWJzb2x1dGVseSBubyBhc3N1bXB0aW9ucyBhYm91dCB3aGljaC4gSXQn
cyBlbnRpcmVseSB1cCB0byB0aGUgdXNlcgorICAgIC8vIHRvIGFycmFuZ2UgZm9yIHRoZSBqdW1w
IHRvIGp1bXAgdG8gb25lIG9mIHRob3NlIHN1Y2Nlc3NvcnMuIFRoaXMgY2Fubm90IHRyYXAgb3Ig
ZG8gYW55dGhpbmcgYnV0CisgICAgLy8ganVtcCB0byBvbmUgb2YgdGhlIHN1Y2Nlc3NvcnM7IGlm
IGl0IGRvZXMgYW55dGhpbmcgZWxzZSB0aGVuIGRlbW9ucyB3aWxsIGNvbWUgb3V0IG9mIHRoZSB1
c2VyJ3MKKyAgICAvLyBub3NlLiAKKyAgICBMZWFwT2ZGYWl0aCwKIAogICAgIC8vIFJldHVybi4g
Tm90ZSB0aGF0IEIzIHByb2NlZHVyZXMgZG9uJ3Qga25vdyB0aGVpciByZXR1cm4gdHlwZSwgc28g
dGhpcyBjYW4ganVzdCByZXR1cm4gYW55CiAgICAgLy8gdHlwZS4gVXNlcyB0aGUgQ29udHJvbFZh
bHVlIGNsYXNzLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmgJKHJl
dmlzaW9uIDIwMTM1MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yMTgsNiArMjE4LDkgQEAgcHVibGljOgogCiAgICAgY29uc3Qg
Y2hhciogbGFzdFBoYXNlTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdFBoYXNlTmFtZTsgfQog
CisgICAgLy8gQWxsb2NhdGVzIGEgc2xhYiBvZiBtZW1vcnkgdGhhdCB3aWxsIGJlIGtlcHQgYWxp
dmUgYnkgYW55b25lIHdobyBrZWVwcyB0aGUgcmVzdWx0aW5nIGNvZGUKKyAgICAvLyBhbGl2ZS4g
R3JlYXQgZm9yIGNvbXBpbGVyLWdlbmVyYXRlZCBkYXRhIHNlY3Rpb25zLCBsaWtlIHN3aXRjaCBq
dW1wIHRhYmxlcyBhbmQgY29uc3RhbnQgcG9vbHMuCisgICAgLy8gVGhpcyByZXR1cm5zIG1lbW9y
eSB0aGF0IGhhcyBiZWVuIHplcm8taW5pdGlhbGl6ZWQuCiAgICAgdm9pZCogYWRkRGF0YVNlY3Rp
b24oc2l6ZV90IHNpemUpOwogCiAgICAgT3BhcXVlQnlwcm9kdWN0cyYgYnlwcm9kdWN0cygpIHsg
cmV0dXJuICptX2J5cHJvZHVjdHM7IH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1JlZHVjZVN0cmVuZ3RoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNSZWR1Y2VTdHJlbmd0aC5jcHAJKHJldmlzaW9uIDIwMTM1MCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjE3
OSwyOCArMjE3OSwzMSBAQCBwcml2YXRlOgogICAgICAgICAgICAgaWYgKCFibG9jay0+bnVtU3Vj
Y2Vzc29ycygpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgICAgICAvLyBG
aXJzdCBjaGVjayBpZiBhbnkgb2YgdGhlIHN1Y2Nlc3NvcnMgb2YgdGhpcyBibG9jayBjYW4gYmUg
Zm9yd2FyZGVkIG92ZXIuCi0gICAgICAgICAgICBmb3IgKEJhc2ljQmxvY2sqJiBzdWNjZXNzb3Ig
OiBibG9jay0+c3VjY2Vzc29yQmxvY2tzKCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoc3VjY2Vz
c29yICE9IGJsb2NrCi0gICAgICAgICAgICAgICAgICAgICYmIHN1Y2Nlc3Nvci0+c2l6ZSgpID09
IDEKLSAgICAgICAgICAgICAgICAgICAgJiYgc3VjY2Vzc29yLT5sYXN0KCktPm9wY29kZSgpID09
IEp1bXApIHsKLSAgICAgICAgICAgICAgICAgICAgQmFzaWNCbG9jayogbmV3U3VjY2Vzc29yID0g
c3VjY2Vzc29yLT5zdWNjZXNzb3JCbG9jaygwKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKG5l
d1N1Y2Nlc3NvciAhPSBzdWNjZXNzb3IpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2
ZXJib3NlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIlJlcGxhY2luZyAiLCBwb2ludGVyRHVtcChibG9jayks
ICItPiIsIHBvaW50ZXJEdW1wKHN1Y2Nlc3NvciksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICIgd2l0aCAiLCBwb2ludGVyRHVtcChibG9jayksICItPiIsIHBvaW50ZXJEdW1wKG5l
d1N1Y2Nlc3NvciksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcbiIpOworICAg
ICAgICAgICAgLy8gRmlyc3QgY2hlY2sgaWYgYW55IG9mIHRoZSBzdWNjZXNzb3JzIG9mIHRoaXMg
YmxvY2sgY2FuIGJlIGZvcndhcmRlZCBvdmVyLiBUaGlzIGlzbid0CisgICAgICAgICAgICAvLyBw
b3NzaWJsZSBmb3IgbGVhcHMgb2YgZmFpdGguCisgICAgICAgICAgICBpZiAoYmxvY2stPmxhc3Qo
KS0+b3Bjb2RlKCkgIT0gTGVhcE9mRmFpdGgpIHsKKyAgICAgICAgICAgICAgICBmb3IgKEJhc2lj
QmxvY2sqJiBzdWNjZXNzb3IgOiBibG9jay0+c3VjY2Vzc29yQmxvY2tzKCkpIHsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKHN1Y2Nlc3NvciAhPSBibG9jaworICAgICAgICAgICAgICAgICAgICAg
ICAgJiYgc3VjY2Vzc29yLT5zaXplKCkgPT0gMQorICAgICAgICAgICAgICAgICAgICAgICAgJiYg
c3VjY2Vzc29yLT5sYXN0KCktPm9wY29kZSgpID09IEp1bXApIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIEJhc2ljQmxvY2sqIG5ld1N1Y2Nlc3NvciA9IHN1Y2Nlc3Nvci0+c3VjY2Vzc29yQmxv
Y2soMCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobmV3U3VjY2Vzc29yICE9IHN1Y2Nl
c3NvcikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFMb2coCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiUmVwbGFjaW5nICIsIHBvaW50ZXJEdW1wKGJsb2NrKSwgIi0+Iiwg
cG9pbnRlckR1bXAoc3VjY2Vzc29yKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICIgd2l0aCAiLCBwb2ludGVyRHVtcChibG9jayksICItPiIsIHBvaW50ZXJEdW1wKG5ld1N1
Y2Nlc3NvciksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXG4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gTm90ZSB0aGF0IHdlIGRvIG5vdCBkbyByZXBsYWNlUHJlZGVjZXNzb3IoKSBiZWNhdXNlIHRo
ZSBibG9jayB3ZSdyZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNraXBwaW5nIHdp
bGwgc3RpbGwgaGF2ZSBuZXdTdWNjZXNzb3IgYXMgaXRzIHN1Y2Nlc3Nvci4KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBuZXdTdWNjZXNzb3ItPmFkZFByZWRlY2Vzc29yKGJsb2NrKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzb3IgPSBuZXdTdWNjZXNzb3I7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbV9jaGFuZ2VkQ0ZHID0gdHJ1ZTsKICAgICAgICAgICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5vdGUgdGhhdCB3ZSBk
byBub3QgZG8gcmVwbGFjZVByZWRlY2Vzc29yKCkgYmVjYXVzZSB0aGUgYmxvY2sgd2UncmUKLSAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIHNraXBwaW5nIHdpbGwgc3RpbGwgaGF2ZSBuZXdTdWNj
ZXNzb3IgYXMgaXRzIHN1Y2Nlc3Nvci4KLSAgICAgICAgICAgICAgICAgICAgICAgIG5ld1N1Y2Nl
c3Nvci0+YWRkUHJlZGVjZXNzb3IoYmxvY2spOwotICAgICAgICAgICAgICAgICAgICAgICAgc3Vj
Y2Vzc29yID0gbmV3U3VjY2Vzc29yOwotICAgICAgICAgICAgICAgICAgICAgICAgbV9jaGFuZ2Vk
Q0ZHID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIH0KLQorICAgICAgICAgICAgCiAgICAgICAgICAgICAvLyBOb3cgY2hlY2sgaWYg
dGhlIGJsb2NrJ3MgdGVybWluYWwgY2FuIGJlIHJlcGxhY2VkIHdpdGggYSBqdW1wLgogICAgICAg
ICAgICAgaWYgKGJsb2NrLT5udW1TdWNjZXNzb3JzKCkgPiAxKSB7CiAgICAgICAgICAgICAgICAg
Ly8gVGhlIHRlcm1pbmFsIG11c3Qgbm90IGhhdmUgd2VpcmQgZWZmZWN0cy4KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbGlkYXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNWYWxpZGF0ZS5jcHAJKHJldmlzaW9uIDIwMTM1MCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbGlkYXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
Mzg3LDYgKzM4NywxMyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgVkFMSURBVEUoaXNJbnQo
dmFsdWUtPmNoaWxkKDApLT50eXBlKCkpLCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAg
ICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgPT0gVm9pZCwgKCJBdCAiLCAqdmFsdWUpKTsKICAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgTGVhcE9mRmFpdGg6CisgICAg
ICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPm51bUNoaWxkcmVuKCkgPT0gMSwgKCJBdCAiLCAq
dmFsdWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+Y2hpbGQoMCktPnR5cGUo
KSA9PSBwb2ludGVyVHlwZSgpLCAoIkF0ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIFZB
TElEQVRFKHZhbHVlLT50eXBlKCkgPT0gVm9pZCwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAg
ICAgICAgICBmb3IgKEJhc2ljQmxvY2sqIHN1Y2Nlc3NvciA6IHZhbHVlLT5hczxDb250cm9sVmFs
dWU+KCktPnN1Y2Nlc3NvckJsb2NrcygpKQorICAgICAgICAgICAgICAgICAgICBWQUxJREFURShz
dWNjZXNzb3ItPmhhc0NhbGxiYWNrcygpLCAoIkF0ICIsICp2YWx1ZSwgIi0+IiwgKnN1Y2Nlc3Nv
cikpOworICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAg
ICBWQUxJREFURSghKHZhbHVlLT5lZmZlY3RzKCkud3JpdGVzICYmIHZhbHVlLT5rZXkoKSksICgi
QXQgIiwgKnZhbHVlKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuY3BwCShy
ZXZpc2lvbiAyMDEzNTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTU0MCw2ICs1NDAsNyBAQCBFZmZlY3RzIFZhbHVlOjplZmZlY3Rz
KCkgY29uc3QKICAgICBjYXNlIEp1bXA6CiAgICAgY2FzZSBCcmFuY2g6CiAgICAgY2FzZSBTd2l0
Y2g6CisgICAgY2FzZSBMZWFwT2ZGYWl0aDoKICAgICBjYXNlIFJldHVybjoKICAgICBjYXNlIE9v
cHM6CiAgICAgICAgIHJlc3VsdC50ZXJtaW5hbCA9IHRydWU7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvdGVzdGIzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvdGVzdGIzLmNwcAkocmV2aXNpb24gMjAxMzUwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL3Rlc3RiMy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMTI4LDcgKzEwMTI4LDEwIEBA
IHZvaWQgdGVzdFN3aXRjaENoaWxsRGl2KHVuc2lnbmVkIGRlZ3JlZSwKICAgICBhdXRvIGNvZGUg
PSBjb21waWxlKHByb2MpOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGRlZ3JlZTsg
KytpKSB7Ci0gICAgICAgIENIRUNLKGludm9rZTxpbnQzMl90PigqY29kZSwgaSAqIGdhcCwgNDIs
IDExKSA9PSAoKGkgJiAxKSA/IDExLzQyIDogNDIvMTEpKTsKKyAgICAgICAgZGF0YUxvZygiaSA9
ICIsIGksICJcbiIpOworICAgICAgICBpbnQzMl90IHJlc3VsdCA9IGludm9rZTxpbnQzMl90Pigq
Y29kZSwgaSAqIGdhcCwgNDIsIDExKTsKKyAgICAgICAgZGF0YUxvZygicmVzdWx0ID0gIiwgcmVz
dWx0LCAiXG4iKTsKKyAgICAgICAgQ0hFQ0socmVzdWx0ID09ICgoaSAmIDEpID8gMTEvNDIgOiA0
Mi8xMSkpOwogICAgICAgICBpZiAoZ2FwID4gMSkgewogICAgICAgICAgICAgQ0hFQ0soIWludm9r
ZTxpbnQzMl90PigqY29kZSwgaSAqIGdhcCArIDEsIDQyLCAxMSkpOwogICAgICAgICAgICAgQ0hF
Q0soIWludm9rZTxpbnQzMl90PigqY29kZSwgaSAqIGdhcCAtIDEsIDQyLCAxMSkpOwpAQCAtMTIw
NTAsNiArMTIwNTMsMTggQEAgdm9pZCB0ZXN0TGF0ZVJlZ2lzdGVyKCkKICAgICBDSEVDSyhpbnZv
a2U8dWludDY0X3Q+KCpjb2RlKSA9PSByZXN1bHQpOwogfQogCit2b2lkIHRlc3RUaHJlYWRlZElu
dGVycHJldGVyKCkKK3sKKyAgICAvLyBUaGlzIGNyZWF0ZXMgYSB0aHJlYWRlZCBpbnRlcnByZXRl
ciBpbiBCMyBJUiBhbmQgc2VlcyBpZiBpdCB3b3Jrcy4KKyAgICAKKyAgICBQcm9jZWR1cmUgcHJv
YzsKKyAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOworICAgIEJhc2ljQmxv
Y2sqIGFkZFRvRGF0YVBvaW50ZXIgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayog
YWRkVG9Db2RlUG9pbnRlciA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBCYXNpY0Jsb2NrKiBhZGRU
b0RhdGEgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayogcHJpbnQgPSBwcm9jLmFk
ZEJsb2NrKCk7Cit9CisKIC8vIE1ha2Ugc3VyZSB0aGUgY29tcGlsZXIgZG9lcyBub3QgdHJ5IHRv
IG9wdGltaXplIGFueXRoaW5nIG91dC4KIE5FVkVSX0lOTElORSBkb3VibGUgemVybygpCiB7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckJhc2ljQmxvY2suY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQmFzaWNCbG9jay5jcHAJ
KHJldmlzaW9uIDIwMTM1MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQmFz
aWNCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUwLDYgKzUwLDExIEBAIGJvb2wgQmFzaWNC
bG9jazo6cmVwbGFjZVByZWRlY2Vzc29yKEJhc2kKICAgICByZXR1cm4gQjM6OnJlcGxhY2VQcmVk
ZWNlc3Nvcih0aGlzLCBmcm9tLCB0byk7CiB9CiAKK3ZvaWQgQmFzaWNCbG9jazo6YWRkQ2FsbGJh
Y2tUYXNrKFJlZlB0cjxTaGFyZWRUYXNrPHZvaWQoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKT4+IGNh
bGxiYWNrKQoreworICAgIGVuc3VyZVJhcmVEYXRhKCkuY2FsbGJhY2tzLmFwcGVuZChjYWxsYmFj
ayk7Cit9CisKIHZvaWQgQmFzaWNCbG9jazo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAog
ewogICAgIG91dC5wcmludChkdW1wUHJlZml4LCBtX2luZGV4KTsKQEAgLTY2LDYgKzcxLDEwIEBA
IHZvaWQgQmFzaWNCbG9jazo6ZGVlcER1bXAoUHJpbnRTdHJlYW0mIG8KIHZvaWQgQmFzaWNCbG9j
azo6ZHVtcEhlYWRlcihQcmludFN0cmVhbSYgb3V0KSBjb25zdAogewogICAgIG91dC5wcmludCgi
QkIiLCAqdGhpcywgIjogOyBmcmVxdWVuY3kgPSAiLCBtX2ZyZXF1ZW5jeSwgIlxuIik7CisgICAg
Zm9yRWFjaENhbGxiYWNrKAorICAgICAgICBbJl0gKGNvbnN0IGF1dG8mIGNhbGxiYWNrKSB7Cisg
ICAgICAgICAgICBvdXQucHJpbnQoIiAgQ2FsbGJhY2sgYXQgIiwgUmF3UG9pbnRlcihjYWxsYmFj
ay5nZXQoKSksICJcbiIpOworICAgICAgICB9KTsKICAgICBpZiAocHJlZGVjZXNzb3JzKCkuc2l6
ZSgpKQogICAgICAgICBvdXQucHJpbnQoIiAgUHJlZGVjZXNzb3JzOiAiLCBwb2ludGVyTGlzdER1
bXAocHJlZGVjZXNzb3JzKCkpLCAiXG4iKTsKIH0KQEAgLTgyLDYgKzkxLDEzIEBAIEJhc2ljQmxv
Y2s6OkJhc2ljQmxvY2sodW5zaWduZWQgaW5kZXgsIGQKIHsKIH0KIAorQmFzaWNCbG9jazo6UmFy
ZURhdGEmIEJhc2ljQmxvY2s6OmVuc3VyZVJhcmVEYXRhKCkKK3sKKyAgICBpZiAoIW1fcmFyZURh
dGEpCisgICAgICAgIG1fcmFyZURhdGEgPSBzdGQ6Om1ha2VfdW5pcXVlPFJhcmVEYXRhPigpOwor
ICAgIHJldHVybiAqbV9yYXJlRGF0YTsKK30KKwogfSB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjM6
OkFpcgogCiAjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvQWlyQmFzaWNCbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvQWlyQmFzaWNCbG9jay5oCShyZXZpc2lvbiAyMDEzNTApCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckJhc2ljQmxvY2suaAkod29ya2luZyBjb3B5KQpA
QCAtNDMsNiArNDMsOSBAQCBjbGFzcyBJbnNlcnRpb25TZXQ7CiBjbGFzcyBCYXNpY0Jsb2NrIHsK
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShCYXNpY0Jsb2NrKTsKICAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKKyAgICAKKyAgICBzdHJ1Y3QgUmFyZURhdGE7CisgICAgCiBwdWJsaWM6CiAg
ICAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGR1bXBQcmVmaXg7CiAKQEAgLTEyMyw3ICsxMjYs
MzMgQEAgcHVibGljOgogICAgIGJvb2wgY29udGFpbnNQcmVkZWNlc3NvcihCYXNpY0Jsb2NrKiBw
cmVkZWNlc3NvcikgY29uc3QgeyByZXR1cm4gbV9wcmVkZWNlc3NvcnMuY29udGFpbnMocHJlZGVj
ZXNzb3IpOyB9CiAKICAgICBkb3VibGUgZnJlcXVlbmN5KCkgY29uc3QgeyByZXR1cm4gbV9mcmVx
dWVuY3k7IH0KLQorICAgIAorICAgIHZvaWQgYWRkQ2FsbGJhY2tUYXNrKFJlZlB0cjxTaGFyZWRU
YXNrPHZvaWQoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKT4+KTsKKyAgICAKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBGdW5jPgorICAgIHZvaWQgYWRkQ2FsbGJhY2soRnVuYyYmIGZ1bmMpCisgICAgewor
ICAgICAgICBhZGRDYWxsYmFja1Rhc2soY3JlYXRlU2hhcmVkVGFzazx2b2lkKE1hY3JvQXNzZW1i
bGVyQ29kZVB0cik+KHN0ZDo6Zm9yd2FyZDxGdW5jPihmdW5jKSkpOworICAgIH0KKyAgICAKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jPgorICAgIHZvaWQgZm9yRWFjaENhbGxiYWNrKGNvbnN0
IEZ1bmMmIGZ1bmMpIGNvbnN0CisgICAgeworICAgICAgICBpZiAoIW1fcmFyZURhdGEpCisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgY2FsbGJhY2sgOiBtX3Jh
cmVEYXRhLT5jYWxsYmFja3MpCisgICAgICAgICAgICBmdW5jKGNhbGxiYWNrKTsKKyAgICB9Cisg
ICAgCisgICAgLy8gSWYgYSBiYXNpYyBibG9jayBoYXMgY2FsbGJhY2tzLCBpdCBtZWFucyB0aGF0
IHNvbWVvbmUgaW50ZW5kcyB0byB0YWtlIHRoZSBhZGRyZXNzIG9mIHRoaXMgYmFzaWMKKyAgICAv
LyBibG9jayBhbmQgdXNlIGl0IHRvIGp1bXAgZGlyZWN0bHkgdG8gaXQgZnJvbSBzb21lIExlYXBP
ZkZhaXRoLiBZb3Uga25vdyB3aGljaCBsZWFwcyB3aWxsIGp1bXAgdG8KKyAgICAvLyBpdCBiZWNh
dXNlIHRoZXkgd2lsbCBsaXN0IHRoaXMgYmxvY2sgYXMgYSBzdWNjZXNzb3IuIEJ1dCB5b3UgZG9u
J3QgcmVhbGx5IGtub3cgbXVjaCBtb3JlIGJleW9uZAorICAgIC8vIHRoaXMuIFNlZSBCM0Jhc2lj
QmxvY2suaCBmb3IgbW9yZSBkZXRhaWxzLgorICAgIGJvb2wgaGFzQ2FsbGJhY2tzKCkgY29uc3QK
KyAgICB7CisgICAgICAgIHJldHVybiBtX3JhcmVEYXRhICYmICFtX3JhcmVEYXRhLT5jYWxsYmFj
a3MuaXNFbXB0eSgpOworICAgIH0KKyAgICAKICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBj
b25zdDsKICAgICB2b2lkIGRlZXBEdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAKQEAgLTEzNiwx
MiArMTY1LDIwIEBAIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIEluc2VydGlvblNldDsKICAg
ICAKICAgICBCYXNpY0Jsb2NrKHVuc2lnbmVkIGluZGV4LCBkb3VibGUgZnJlcXVlbmN5KTsKKyAg
ICAKKyAgICBSYXJlRGF0YSYgZW5zdXJlUmFyZURhdGEoKTsKIAogICAgIHVuc2lnbmVkIG1faW5k
ZXg7CiAgICAgSW5zdExpc3QgbV9pbnN0czsKICAgICBTdWNjZXNzb3JMaXN0IG1fc3VjY2Vzc29y
czsKICAgICBQcmVkZWNlc3Nvckxpc3QgbV9wcmVkZWNlc3NvcnM7CiAgICAgZG91YmxlIG1fZnJl
cXVlbmN5OworICAgIAorICAgIHN0cnVjdCBSYXJlRGF0YSB7CisgICAgICAgIFZlY3RvcjxSZWZQ
dHI8U2hhcmVkVGFzazx2b2lkKE1hY3JvQXNzZW1ibGVyQ29kZVB0cik+Pj4gY2FsbGJhY2tzOwor
ICAgIH07CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UmFyZURhdGE+IG1fcmFyZURhdGE7CiB9Owog
CiBjbGFzcyBEZWVwQmFzaWNCbG9ja0R1bXAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJDb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9BaXJDb2RlLmgJKHJldmlzaW9uIDIwMTM1MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvQWlyQ29kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAjaW5j
bHVkZSAiQWlyU3BlY2lhbC5oIgogI2luY2x1ZGUgIkFpclN0YWNrU2xvdC5oIgogI2luY2x1ZGUg
IkFpclRtcC5oIgorI2luY2x1ZGUgIkIzSW5kZXhNYXAuaCIKICNpbmNsdWRlICJCM1NwYXJzZUNv
bGxlY3Rpb24uaCIKICNpbmNsdWRlICJSZWdpc3RlckF0T2Zmc2V0TGlzdC5oIgogI2luY2x1ZGUg
IlN0YWNrQWxpZ25tZW50LmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fp
ckdlbmVyYXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0FpckdlbmVyYXRlLmNwcAkocmV2aXNpb24gMjAxMzUwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci9BaXJHZW5lcmF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxLDYgKzUxLDcg
QEAKICNpbmNsdWRlICJCM1RpbWluZ1Njb3BlLmgiCiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgi
CiAjaW5jbHVkZSAiRGlzYWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlLmgiCisjaW5jbHVk
ZSAiTGlua0J1ZmZlci5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsgbmFtZXNw
YWNlIEFpciB7CiAKQEAgLTE4Myw3ICsxODQsMTcgQEAgdm9pZCBnZW5lcmF0ZShDb2RlJiBjb2Rl
LCBDQ2FsbEhlbHBlcnMmIAogCiAgICAgZm9yIChCYXNpY0Jsb2NrKiBibG9jayA6IGNvZGUpIHsK
ICAgICAgICAgYmxvY2tKdW1wc1tibG9ja10ubGluaygmaml0KTsKLSAgICAgICAgYmxvY2tMYWJl
bHNbYmxvY2tdID0gaml0LmxhYmVsKCk7CisgICAgICAgIENDYWxsSGVscGVyczo6TGFiZWwgbGFi
ZWwgPSBqaXQubGFiZWwoKTsKKyAgICAgICAgYmxvY2tMYWJlbHNbYmxvY2tdID0gbGFiZWw7Cisg
ICAgICAgIAorICAgICAgICBibG9jay0+Zm9yRWFjaENhbGxiYWNrKAorICAgICAgICAgICAgWyZd
IChSZWZQdHI8U2hhcmVkVGFzazx2b2lkKE1hY3JvQXNzZW1ibGVyQ29kZVB0cik+PiBjYWxsYmFj
aykgeworICAgICAgICAgICAgICAgIGppdC5hZGRMaW5rVGFzaygKKyAgICAgICAgICAgICAgICAg
ICAgWz1dIChMaW5rQnVmZmVyJiBsaW5rQnVmZmVyKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBjYWxsYmFjay0+cnVuKGxpbmtCdWZmZXIubG9jYXRpb25PZihsYWJlbCkpOworICAgICAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAKICAgICAgICAgQVNTRVJU
KGJsb2NrLT5zaXplKCkgPj0gMSk7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBi
bG9jay0+c2l6ZSgpIC0gMTsgKytpKSB7CiAgICAgICAgICAgICBJbnN0JiBpbnN0ID0gYmxvY2st
PmF0KGkpOwpAQCAtMjE1LDIzICsyMjYsMjQgQEAgdm9pZCBnZW5lcmF0ZShDb2RlJiBjb2RlLCBD
Q2FsbEhlbHBlcnMmIAogICAgICAgICAgICAgYWRkSXRlbShibG9jay0+bGFzdCgpKTsKICAgICAg
ICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9Ci0KKyAgICAgICAgCiAgICAgICAgIENDYWxsSGVs
cGVyczo6SnVtcCBqdW1wID0gYmxvY2stPmxhc3QoKS5nZW5lcmF0ZShqaXQsIGNvbnRleHQpOwot
ICAgICAgICBzd2l0Y2ggKGJsb2NrLT5udW1TdWNjZXNzb3JzKCkpIHsKLSAgICAgICAgY2FzZSAw
OgotICAgICAgICAgICAgQVNTRVJUKCFqdW1wLmlzU2V0KCkpOwotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIGNhc2UgMToKLSAgICAgICAgICAgIGxpbmsoanVtcCwgYmxvY2stPnN1Y2Nlc3Nv
ckJsb2NrKDApKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIDI6Ci0gICAgICAg
ICAgICBsaW5rKGp1bXAsIGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKSk7Ci0gICAgICAgICAgICBp
ZiAoYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDEpICE9IGNvZGUuZmluZE5leHRCbG9jayhibG9jaykp
Ci0gICAgICAgICAgICAgICAgbGluayhqaXQuanVtcCgpLCBibG9jay0+c3VjY2Vzc29yQmxvY2so
MSkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBS
RUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IC8vIFRoZSBqdW1wIHdvbid0IGJlIHNldCBmb3IgTGVhcE9mRmFpdGggYmVjYXVzZSBpdCBsZXRz
IGl0cyBmYWl0aCBpbiB0aGUgYWRkcmVzcyBvcGVyYW5kCisgICAgICAgIC8vIGd1aWRlIHdoZXJl
IGl0IGp1bXBzLiBJdCB3b24ndCBiZSBzZXQgZm9yIE9vcHMgYmVjYXVzZSB0aGVuIGl0IHdvbid0
IGhhdmUgYW55IHN1Y2Nlc3NvcnMuCisgICAgICAgIGlmIChqdW1wLmlzU2V0KCkpIHsKKyAgICAg
ICAgICAgIHN3aXRjaCAoYmxvY2stPm51bVN1Y2Nlc3NvcnMoKSkgeworICAgICAgICAgICAgY2Fz
ZSAxOgorICAgICAgICAgICAgICAgIGxpbmsoanVtcCwgYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDAp
KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAg
ICAgICAgICBsaW5rKGp1bXAsIGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKSk7CisgICAgICAgICAg
ICAgICAgaWYgKGJsb2NrLT5zdWNjZXNzb3JCbG9jaygxKSAhPSBjb2RlLmZpbmROZXh0QmxvY2so
YmxvY2spKQorICAgICAgICAgICAgICAgICAgICBsaW5rKGppdC5qdW1wKCksIGJsb2NrLT5zdWNj
ZXNzb3JCbG9jaygxKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgYWRk
SXRlbShibG9jay0+bGFzdCgpKTsKICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMJKHJldmlzaW9uIDIwMTM1MCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMJKHdvcmtpbmcgY29weSkK
QEAgLTgzNSw2ICs4MzUsMTMgQEAgTW92ZURvdWJsZUNvbmRpdGlvbmFsbHlGbG9hdCBVOkc6MzIs
IFU6RgogCiBKdW1wIC9icmFuY2gKIAorIyBUaGlzIG1hc3F1ZXJhZGVzIGFzIGEgbm9uLWJyYW5j
aCB0ZXJtaW5hbCBiZWNhdXNlIGl0IGRvZXNuJ3QgbmVlZCBsaW5raW5nLiAiQnJhbmNoIiBpbiB0
aGlzIGNvbnRleHQKKyMganVzdCBtZWFucyB0aGF0IGl0J3MgYSB0ZXJtaW5hbCB0aGF0IHJldHVy
bnMgYSBKdW1wIHRoYXQgbmVlZHMgdG8gYmUgbGlua2VkLgorTGVhcE9mRmFpdGggVTpHOlB0ciAv
dGVybWluYWwKKyAgICBUbXAgYXMganVtcAorICAgIHg4NjogQWRkciBhcyBqdW1wCisgICAgeDg2
OiBJbmRleCBhcyBqdW1wCisKIFJldDMyIFU6RzozMiAvcmV0dXJuCiAgICAgVG1wCiAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyU2ltcGxpZnlDRkcuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyU2ltcGxpZnlDRkcuY3BwCShy
ZXZpc2lvbiAyMDEzNTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclNpbXBs
aWZ5Q0ZHLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzQsMjMgKzc0LDI3IEBAIGJvb2wgc2ltcGxp
ZnlDRkcoQ29kZSYgY29kZSkKICAgICAgICAgICAgIGlmICghYmxvY2stPm51bVN1Y2Nlc3NvcnMo
KSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICAgICAgLy8gRmlyc3QgY2hl
Y2sgaWYgYW55IG9mIHRoZSBzdWNjZXNzb3JzIG9mIHRoaXMgYmxvY2sgY2FuIGJlIGZvcndhcmRl
ZCBvdmVyLgotICAgICAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiYgc3VjY2Vzc29yIDogYmxvY2st
PnN1Y2Nlc3NvckJsb2NrcygpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHN1Y2Nlc3NvciAhPSBi
bG9jawotICAgICAgICAgICAgICAgICAgICAmJiBzdWNjZXNzb3ItPnNpemUoKSA9PSAxCi0gICAg
ICAgICAgICAgICAgICAgICYmIHN1Y2Nlc3Nvci0+bGFzdCgpLm9wY29kZSA9PSBKdW1wKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIEJhc2ljQmxvY2sqIG5ld1N1Y2Nlc3NvciA9IHN1Y2Nlc3Nvci0+
c3VjY2Vzc29yQmxvY2soMCk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChuZXdTdWNjZXNzb3Ig
IT0gc3VjY2Vzc29yKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkgewot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFMb2coCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJSZXBsYWNpbmcgIiwgcG9pbnRlckR1bXAoYmxvY2spLCAiLT4iLCBwb2lu
dGVyRHVtcChzdWNjZXNzb3IpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIHdp
dGggIiwgcG9pbnRlckR1bXAoYmxvY2spLCAiLT4iLCBwb2ludGVyRHVtcChuZXdTdWNjZXNzb3Ip
LCAiXG4iKTsKKyAgICAgICAgICAgIC8vIEZpcnN0IGNoZWNrIGlmIGFueSBvZiB0aGUgc3VjY2Vz
c29ycyBvZiB0aGlzIGJsb2NrIGNhbiBiZSBmb3J3YXJkZWQgb3Zlci4gVGhpcyBpc24ndAorICAg
ICAgICAgICAgLy8gcG9zc2libGUgZm9yIGxlYXBzIG9mIGZhaXRoLgorICAgICAgICAgICAgaWYg
KGJsb2NrLT5sYXN0KCkub3Bjb2RlICE9IExlYXBPZkZhaXRoKSB7CisgICAgICAgICAgICAgICAg
Zm9yIChCYXNpY0Jsb2NrKiYgc3VjY2Vzc29yIDogYmxvY2stPnN1Y2Nlc3NvckJsb2NrcygpKSB7
CisgICAgICAgICAgICAgICAgICAgIGlmIChzdWNjZXNzb3IgIT0gYmxvY2sKKyAgICAgICAgICAg
ICAgICAgICAgICAgICYmIHN1Y2Nlc3Nvci0+c2l6ZSgpID09IDEKKyAgICAgICAgICAgICAgICAg
ICAgICAgICYmIHN1Y2Nlc3Nvci0+bGFzdCgpLm9wY29kZSA9PSBKdW1wKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBCYXNpY0Jsb2NrKiBuZXdTdWNjZXNzb3IgPSBzdWNjZXNzb3ItPnN1Y2Nl
c3NvckJsb2NrKDApOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5ld1N1Y2Nlc3NvciAh
PSBzdWNjZXNzb3IpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhTG9nKAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIlJlcGxhY2luZyAiLCBwb2ludGVyRHVtcChibG9jayks
ICItPiIsIHBvaW50ZXJEdW1wKHN1Y2Nlc3NvciksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiIHdpdGggIiwgcG9pbnRlckR1bXAoYmxvY2spLCAiLT4iLCBwb2ludGVyRHVt
cChuZXdTdWNjZXNzb3IpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxu
Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIE5vdGUgdGhhdCB3ZSBkbyBub3QgZG8gcmVwbGFjZVByZWRlY2Vzc29yKCkgYmVj
YXVzZSB0aGUgYmxvY2sgd2UncmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBza2lw
cGluZyB3aWxsIHN0aWxsIGhhdmUgbmV3U3VjY2Vzc29yIGFzIGl0cyBzdWNjZXNzb3IuCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbmV3U3VjY2Vzc29yLT5hZGRQcmVkZWNlc3NvcihibG9j
ayk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc29yID0gbmV3U3VjY2Vzc29y
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlOwogICAgICAgICAg
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgLy8gTm90ZSB0aGF0IHdl
IGRvIG5vdCBkbyByZXBsYWNlUHJlZGVjZXNzb3IoKSBiZWNhdXNlIHRoZSBibG9jayB3ZSdyZQot
ICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2tpcHBpbmcgd2lsbCBzdGlsbCBoYXZlIG5ld1N1
Y2Nlc3NvciBhcyBpdHMgc3VjY2Vzc29yLgotICAgICAgICAgICAgICAgICAgICAgICAgbmV3U3Vj
Y2Vzc29yLT5hZGRQcmVkZWNlc3NvcihibG9jayk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBz
dWNjZXNzb3IgPSBuZXdTdWNjZXNzb3I7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2Vk
ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyVmFsaWRhdGUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyVmFsaWRh
dGUuY3BwCShyZXZpc2lvbiAyMDEzNTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0FpclZhbGlkYXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODksNiArODksMTYgQEAgcHVibGlj
OgogICAgICAgICAgICAgICAgICAgICAgICAgVkFMSURBVEUoJmFyZyA+PSAmaW5zdC5hcmdzWzBd
LCAoIkF0ICIsIGFyZywgIiBpbiAiLCBpbnN0LCAiIGluICIsICpibG9jaykpOwogICAgICAgICAg
ICAgICAgICAgICAgICAgVkFMSURBVEUoJmFyZyA8PSAmaW5zdC5hcmdzLmxhc3QoKSwgKCJBdCAi
LCBhcmcsICIgaW4gIiwgaW5zdCwgIiBpbiAiLCAqYmxvY2spKTsKICAgICAgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gU29tZSBpbnN0cnVj
dGlvbnMgaGF2ZSBzb21lIGFkZGl0aW9uYWwgcnVsZXMuCisgICAgICAgICAgICAgICAgc3dpdGNo
IChpbnN0Lm9wY29kZSkgeworICAgICAgICAgICAgICAgIGNhc2UgTGVhcE9mRmFpdGg6CisgICAg
ICAgICAgICAgICAgICAgIGZvciAoQmFzaWNCbG9jayogc3VjY2Vzc29yIDogYmxvY2stPnN1Y2Nl
c3NvckJsb2NrcygpKQorICAgICAgICAgICAgICAgICAgICAgICAgVkFMSURBVEUoc3VjY2Vzc29y
LT5oYXNDYWxsYmFja3MoKSwgKCJBdCAiLCAqYmxvY2ssICItPiIsICpzdWNjZXNzb3IpKTsKKyAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQog
ICAgICAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBzdWNjZXNzb3IgOiBibG9jay0+c3VjY2Vzc29y
QmxvY2tzKCkpCiAgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsaWRCbG9ja3MuY29udGFpbnMo
c3VjY2Vzc29yKSwgKCJJbiAiLCAqYmxvY2spKTsKSW5kZXg6IFdlYnNpdGVzL3dlYmtpdC5vcmcv
ZG9jcy9iMy9pbnRlcm1lZGlhdGUtcmVwcmVzZW50YXRpb24uaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJzaXRlcy93ZWJraXQub3JnL2RvY3MvYjMvaW50ZXJtZWRpYXRlLXJlcHJlc2VudGF0aW9uLmh0
bWwJKHJldmlzaW9uIDIwMTM1MCkKKysrIFdlYnNpdGVzL3dlYmtpdC5vcmcvZG9jcy9iMy9pbnRl
cm1lZGlhdGUtcmVwcmVzZW50YXRpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNDEyLDExICs0
MTIsMTIgQEAKICAgICAgICAgdGhlIENDYWxsVmFsdWUgY2xhc3MuPC9kZD4KIAogICAgICAgPGR0
PlQxIFBhdGNocG9pbnQoW1QyLCBbVDMsIC4uLl1dKTwvZHQ+Ci0gICAgICA8ZGQ+QSBQYXRjaHBv
aW50IGlzIGEgY3VzdG9taXphYmxlIHZhbHVlLiAgUGF0Y2hwb2ludHMgdGFrZSB6ZXJvIG9yIG1v
cmUgdmFsdWVzIG9mIGFueQotICAgICAgICB0eXBlIGFuZCByZXR1cm4gYW55IHR5cGUuICBBIFBh
dGNocG9pbnQncyBiZWhhdmlvciBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBnZW5lcmF0b3IKLSAgICAg
ICAgb2JqZWN0LiAgVGhlIGdlbmVyYXRvciBpcyBhIEMrKyBsYW1iZGEgdGhhdCBnZXRzIGNhbGxl
ZCBkdXJpbmcgY29kZSBnZW5lcmF0aW9uLiAgSXQgZ2V0cwotICAgICAgICBwYXNzZWQgYW4gYXNz
ZW1ibGVyIGluc3RhbmNlIChzcGVjaWZpY2FsbHksIENDYWxsSGVscGVycyYpIGFuZCBhbiBvYmpl
Y3QgZGVzY3JpYmluZwotICAgICAgICB3aGVyZSB0byBmaW5kIGFsbCBvZiB0aGUgaW5wdXQgdmFs
dWVzIGFuZCB3aGVyZSB0byBwdXQgdGhlIHJlc3VsdC4gIEhlcmUncyBhbiBleGFtcGxlOgorICAg
ICAgPGRkPgorICAgICAgICA8cD5BIFBhdGNocG9pbnQgaXMgYSBjdXN0b21pemFibGUgdmFsdWUu
ICBQYXRjaHBvaW50cyB0YWtlIHplcm8gb3IgbW9yZSB2YWx1ZXMgb2YgYW55CisgICAgICAgICAg
dHlwZSBhbmQgcmV0dXJuIGFueSB0eXBlLiAgQSBQYXRjaHBvaW50J3MgYmVoYXZpb3IgaXMgZGV0
ZXJtaW5lZCBieSB0aGUgZ2VuZXJhdG9yCisgICAgICAgICAgb2JqZWN0LiAgVGhlIGdlbmVyYXRv
ciBpcyBhIEMrKyBsYW1iZGEgdGhhdCBnZXRzIGNhbGxlZCBkdXJpbmcgY29kZSBnZW5lcmF0aW9u
LiAgSXQgZ2V0cworICAgICAgICAgIHBhc3NlZCBhbiBhc3NlbWJsZXIgaW5zdGFuY2UgKHNwZWNp
ZmljYWxseSwgQ0NhbGxIZWxwZXJzJikgYW5kIGFuIG9iamVjdCBkZXNjcmliaW5nCisgICAgICAg
ICAgd2hlcmUgdG8gZmluZCBhbGwgb2YgdGhlIGlucHV0IHZhbHVlcyBhbmQgd2hlcmUgdG8gcHV0
IHRoZSByZXN1bHQuICBIZXJlJ3MgYW4gZXhhbXBsZTo8L3A+CiAgCiAgICAgICAgIDxwcmU+PGNv
ZGU+UGF0Y2hwb2ludFZhbHVlKiBwYXRjaHBvaW50ID0gYmxvY2stPmFwcGVuZE5ldyZsdDtQYXRj
aHBvaW50VmFsdWUmZ3Q7KHByb2MsIEludDMyLCBPcmlnaW4oKSk7CiBwYXRjaHBvaW50LT5hcHBl
bmQoQ29uc3RyYWluZWRWYWx1ZShhcmcxLCBWYWx1ZVJlcDo6U29tZVJlZ2lzdGVyKSk7CkBAIC01
MjYsNiArNTI3LDIyIEBAIHBhdGNocG9pbnQtPnNldEdlbmVyYXRvcigKICAgICAgICAgYWxzbyBj
b250YWlucyBhIGZhbGwtdGhyb3VnaCB0YXJnZXQgaW4gY2FzZSB0aGUgY2hpbGQgaGFzIGEgdmFs
dWUgdGhhdCB3YXNuJ3QgbWVudGlvbmVkCiAgICAgICAgIGluIHRoZSBjYXNlcyBsaXN0LiAgTXVz
dCB1c2UgdGhlIFN3aXRjaFZhbHVlIGNsYXNzLiAgTXVzdCBhcHBlYXIgYXQgdGhlIGVuZCBvZiB0
aGUgYmFzaWMKICAgICAgICAgYmxvY2suPC9kZD4KKyAgICAgIAorICAgICAgPGR0PlZvaWQgTGVh
cE9mRmFpdGgoSW50UHRyLCBibG9ja3MuLi4pPC9kdD4KKyAgICAgIDxkZD4KKyAgICAgICAgPHA+
SnVtcHMgdG8gdGhlIGdpdmVuIGFkZHJlc3MuIFRoZSBjb21waWxlciB3aWxsIGFzc3VtZSB0aGF0
IHRoaXMganVtcHMgdG8gb25lIG9mIHRoZSBnaXZlbgorICAgICAgICAgIGJsb2Nrcy4gVGhlIGNv
bXBpbGVyIG1ha2VzIG5vIGF0dGVtcHQgdG8gcHJvdmUgb3IgdmFsaWRhdGUgdGhhdCB0aGUgcGFz
c2VkIGp1bXAgYWRkcmVzcyBpcworICAgICAgICAgIGFjdHVhbGx5IHRoZSBhZGRyZXNzIG9mIGFu
eSBvZiB0aG9zZSBibG9ja3MuIE5vbnNlbnNpY2FsIHRoaW5ncyB3aWxsIGhhcHBlbiBpZiB0aGUg
cGFzc2VkCisgICAgICAgICAgYWRkcmVzcyBpcyBub3QgdGhlIGFkZHJlc3Mgb2Ygb25lIG9mIHRo
ZSBibG9ja3MgaW4gdGhlIHN1Y2Nlc3NvciBsaXN0LiBZb3UgY2FuIGFycmFuZ2UgdG8gZ2V0Cisg
ICAgICAgICAgdGhlIGFkZHJlc3NlcyBvZiBibG9ja3MgdXNpbmcgdGhlIEJhc2ljQmxvY2sgQVBJ
LiBUaGlzIGlzIHVzZWQgaW50ZXJuYWxseSBmb3IgbG93ZXJpbmcKKyAgICAgICAgICBTd2l0Y2gg
b3Bjb2Rlcy4gWW91IGNhbiB1c2UgaXQgZGlyZWN0bHkgZm9yIGltcGxlbWVudGluZyB0aGluZ3Mg
bGlrZSB0aHJlYWRlZAorICAgICAgICAgIGludGVycHJldGVycy48L3A+CisgICAgICAKKyAgICAg
ICAgPHA+QSBjbG9zZWx5IHJlbGF0ZWQgZmVhdHVyZSBpcyBCYXNpY0Jsb2NrIGNhbGxiYWNrcy4g
SWYgeW91IHJlZ2lzdGVyIGEgY2FsbGJhY2sgd2l0aCBhCisgICAgICAgICAgQmFzaWNCbG9jaywg
dGhlbiB0aGUgY29tcGlsZXIgd2lsbCB0ZWxsIHlvdSB3aGVyZSBpbiBtZW1vcnkgdGhlIEJhc2lj
QmxvY2sgZW5kZWQgdXAuIFdlCisgICAgICAgICAgY3VycmVudGx5IHJlcXVpcmUgdGhhdCB0aGUg
c3VjY2Vzc29ycyBvZiBhIExlYXBPZkZhaXRoIGhhdmUgY2FsbGJhY2tzIHNldCBhbmQgaXQgd291
bGQgYmUKKyAgICAgICAgICBjb3JyZWN0IHRvIGRyb3AgdGhlIGNhbGxiYWNrcyBvZiBhbnkgYmxv
Y2sgdGhhdCBkb2Vzbid0IGhhdmUgYSBMZWFwT2ZGYWl0aCBwcmVkZWNlc3Nvci48L3A+CisgICAg
ICA8L2RkPgogCiAgICAgICA8ZHQ+Vm9pZCBSZXR1cm4oVCk8L2R0PgogICAgICAgPGRkPldvcmtz
IGZvciBhbnkgdHlwZSBleGNlcHQgVm9pZC4gIFJldHVybnMgdGhlIGdpdmVuIHZhbHVlIGFuZCB0
ZXJtaW5hdGVzIHRoZSBwcm9jZWR1cmUuCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2Jp
Z3N3aXRjaC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9iaWdzd2l0Y2gtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9iaWdzd2l0Y2gtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MTAgQEAKK0pTUmVncmVzcy9iaWdzd2l0Y2gKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmln
c3dpdGNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0
Y2guaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNo
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVC
TElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYmlnc3dpdGNoLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3Rz
L2JpZ3N3aXRjaC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Njcmlw
dC10ZXN0cy9iaWdzd2l0Y2guanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL3NjcmlwdC10ZXN0cy9iaWdzd2l0Y2guanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwy
MTEgQEAKK2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHZhbHVlID0gaSAmIDYzOwor
ICAgICAgICBzd2l0Y2ggKHZhbHVlKSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLmE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxOgorICAgICAg
ICAgICAgcmVzdWx0ICs9IG8uYjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6
CisgICAgICAgICAgICByZXN1bHQgKz0gby5jOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgMzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmQ7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSA0OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIDU6CisgICAgICAgICAgICByZXN1bHQgKz0gby5mOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
Lmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA3OgorICAgICAgICAgICAgcmVz
dWx0ICs9IG8uaDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDg6CisgICAgICAg
ICAgICByZXN1bHQgKz0gby5pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgOToK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSAxMDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSAxMToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSAxMjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmI7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxMzoKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLmM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxNDoKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLmQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxNToKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSAxNjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmY7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSAxNzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSAxODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxOToKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
Lmk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyMDoKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyMToKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAy
MjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSAyMzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSAyNDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyNToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmM7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyNjoKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLmQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyNzoKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyODoK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmY7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSAyOToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSAzMDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSAzMToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzMjoKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzMzoKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzNDoKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSAzNToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSAzNjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSAzNzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
LmM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzOToKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLmQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0MDoKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0
MToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmY7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSA0MjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSA0MzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0NDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0NToKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0NjoKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0NzoK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSA0ODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSA0OToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSA1MDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1MToKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1MjoKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLmE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1MzoKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSA1NDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmM7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSA1NToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmQ7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSA1NjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmU7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1NzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
LmY7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1ODoKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1OToKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA2
MDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSA2MToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSA2MjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLno7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gcmVzdWx0
OworfQorCisoZnVuY3Rpb24oKSB7CisgICAgdmFyIG8gPSB7YToxLCBiOjIsIGM6MywgZDo0LCBl
OjUsIGY6NiwgZzo3LCBoOjgsIGk6OSwgajoxMCwgazoxMSwgejoxMDB9OworICAgIHZhciByZXN1
bHQgPSAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKKyAgICAgICAgcmVz
dWx0ICs9IGZvbyhvKTsKKyAgICBpZiAocmVzdWx0ICE9IDc5NjYwMDAwKQorICAgICAgICB0aHJv
dyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9KSgpOworCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279896</attachid>
            <date>2016-05-26 10:53:21 -0700</date>
            <delta_ts>2016-05-27 08:45:05 -0700</delta_ts>
            <desc>a better approach</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>46415</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMDEzNTApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkod29ya2luZyBjb3B5KQpAQCAtNDE5Niw2ICs0MTk2LDggQEAKIAkJREM2MDVCNUExQ0Uy
NkU5ODAwNTkzNzE4IC8qIFByb2ZpbGVyRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gUHJvZmlsZXJFdmVudC5oOyBwYXRoID0gcHJvZmlsZXIvUHJvZmlsZXJFdmVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzYwNUI1QjFDRTI2RTk4MDA1OTM3MTgg
LyogUHJvZmlsZXJVSUQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
UHJvZmlsZXJVSUQuY3BwOyBwYXRoID0gcHJvZmlsZXIvUHJvZmlsZXJVSUQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlEQzYwNUI1QzFDRTI2RTk4MDA1OTM3MTggLyogUHJvZmls
ZXJVSUQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUHJvZmlsZXJVSUQuaDsg
cGF0aCA9IHByb2ZpbGVyL1Byb2ZpbGVyVUlELmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCURDNjlBQTYwMUNGNzVERTEwMEM2MjcyRiAvKiBCM0xlYXBPZkZhaXRoVmFsdWUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQjNMZWFwT2ZGYWl0aFZhbHVlLmNw
cDsgcGF0aCA9IGIzL0IzTGVhcE9mRmFpdGhWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCURDNjlBQTYxMUNGNzVERTEwMEM2MjcyRiAvKiBCM0xlYXBPZkZhaXRoVmFsdWUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQjNMZWFwT2ZGYWl0aFZhbHVlLmg7
IHBhdGggPSBiMy9CM0xlYXBPZkZhaXRoVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJREM3OTk3ODExQ0RFOUY5RTAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGFnUmVnaXN0ZXJzTW9kZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDNzk5NzgyMUNERTlGOUUwMDRENEEwOSAv
KiBUYWdSZWdpc3RlcnNNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRh
Z1JlZ2lzdGVyc01vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRENFRTIyMDYx
Q0VCOTg5MDAwMEMyMzk2IC8qIERGR0JhY2t3YXJkc0NGRy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBERkdCYWNrd2FyZHNDRkcuaDsgcGF0aCA9IGRmZy9ERkdCYWNrd2FyZHND
RkcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ3MTAsNiArNDcxMiw4IEBACiAJ
CQkJMEZFQzg1QjQxQkUxNDYyRjAwODBGRjc0IC8qIEIzSW5zZXJ0aW9uU2V0LmNwcCAqLywKIAkJ
CQkwRkVDODVCNTFCRTE0NjJGMDA4MEZGNzQgLyogQjNJbnNlcnRpb25TZXQuaCAqLywKIAkJCQkw
RkVDODVCNjFCRTE0NjJGMDA4MEZGNzQgLyogQjNJbnNlcnRpb25TZXRJbmxpbmVzLmggKi8sCisJ
CQkJREM2OUFBNjAxQ0Y3NURFMTAwQzYyNzJGIC8qIEIzTGVhcE9mRmFpdGhWYWx1ZS5jcHAgKi8s
CisJCQkJREM2OUFBNjExQ0Y3NURFMTAwQzYyNzJGIC8qIEIzTGVhcE9mRmFpdGhWYWx1ZS5oICov
LAogCQkJCTQzNkU1NDUxMUM0NjhFNUYwMEI1QUY3MyAvKiBCM0xlZ2FsaXplTWVtb3J5T2Zmc2V0
cy5jcHAgKi8sCiAJCQkJNDM2RTU0NTIxQzQ2OEU1RjAwQjVBRjczIC8qIEIzTGVnYWxpemVNZW1v
cnlPZmZzZXRzLmggKi8sCiAJCQkJMEYzMzhFMTkxQkYyODZFQTAwMTNDODhGIC8qIEIzTG93ZXJN
YWNyb3MuY3BwICovLApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlclg4NkNvbW1vbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaAkocmV2aXNpb24gMjAxMzUwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1v
bi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMjYyLDYgKzIyNjIsMTIgQEAgcHVibGljOgogICAgICAg
ICBtX2Fzc2VtYmxlci5qbXBfbShhZGRyZXNzLm9mZnNldCwgYWRkcmVzcy5iYXNlKTsKICAgICB9
CiAKKyAgICAvLyBBZGRyZXNzIGlzIGEgbWVtb3J5IGxvY2F0aW9uIGNvbnRhaW5pbmcgdGhlIGFk
ZHJlc3MgdG8ganVtcCB0bworICAgIHZvaWQganVtcChCYXNlSW5kZXggYWRkcmVzcykKKyAgICB7
CisgICAgICAgIG1fYXNzZW1ibGVyLmptcF9tKGFkZHJlc3Mub2Zmc2V0LCBhZGRyZXNzLmJhc2Us
IGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUpOworICAgIH0KKwogCiAgICAgLy8gQXJpdGht
ZXRpYyBjb250cm9sIGZsb3cgb3BlcmF0aW9uczoKICAgICAvLwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oCShyZXZpc2lvbiAyMDEzNTAp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xOTgzLDYgKzE5ODMsMTEgQEAgcHVibGljOgogICAgICAgICBtX2Zvcm1h
dHRlci5vbmVCeXRlT3AoT1BfR1JPVVA1X0V2LCBHUk9VUDVfT1BfSk1QTiwgYmFzZSwgb2Zmc2V0
KTsKICAgICB9CiAgICAgCisgICAgdm9pZCBqbXBfbShpbnQgb2Zmc2V0LCBSZWdpc3RlcklEIGJh
c2UsIFJlZ2lzdGVySUQgaW5kZXgsIGludCBzY2FsZSkKKyAgICB7CisgICAgICAgIG1fZm9ybWF0
dGVyLm9uZUJ5dGVPcChPUF9HUk9VUDVfRXYsIEdST1VQNV9PUF9KTVBOLCBiYXNlLCBpbmRleCwg
c2NhbGUsIG9mZnNldCk7CisgICAgfQorICAgIAogI2lmICFDUFUoWDg2XzY0KQogICAgIHZvaWQg
am1wX20oY29uc3Qgdm9pZCogYWRkcmVzcykKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNCYXNpY0Jsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNCYXNpY0Jsb2NrLmNwcAkocmV2aXNpb24gMjAxMzUwKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwOSw2
ICsxMDksMTUgQEAgdm9pZCBCYXNpY0Jsb2NrOjp1cGRhdGVQcmVkZWNlc3NvcnNBZnRlcgogICAg
IEIzOjp1cGRhdGVQcmVkZWNlc3NvcnNBZnRlcih0aGlzKTsKIH0KIAorYm9vbCBCYXNpY0Jsb2Nr
Ojppc0Nsb25lYWJsZSgpIGNvbnN0Cit7CisgICAgZm9yIChWYWx1ZSogdmFsdWUgOiAqdGhpcykg
eworICAgICAgICBpZiAoIXZhbHVlLT5pc0Nsb25lYWJsZSgpKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBCYXNpY0Jsb2NrOjpk
dW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiB7CiAgICAgb3V0LnByaW50KGR1bXBQcmVmaXgs
IG1faW5kZXgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2suaAko
cmV2aXNpb24gMjAxMzUwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9j
ay5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTUsNiArMTE1LDggQEAgcHVibGljOgogICAgIHZvaWQg
dXBkYXRlUHJlZGVjZXNzb3JzQWZ0ZXIoKTsKIAogICAgIGRvdWJsZSBmcmVxdWVuY3koKSBjb25z
dCB7IHJldHVybiBtX2ZyZXF1ZW5jeTsgfQorICAgIAorICAgIGJvb2wgaXNDbG9uZWFibGUoKSBj
b25zdDsKIAogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0OwogICAgIHZvaWQgZGVl
cER1bXAoY29uc3QgUHJvY2VkdXJlJiwgUHJpbnRTdHJlYW0mKSBjb25zdDsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jsb2NrSW5zZXJ0aW9uU2V0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCbG9ja0luc2VydGlvblNldC5jcHAJKHJldmlz
aW9uIDIwMTM1MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jsb2NrSW5zZXJ0aW9u
U2V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTgsNiArOTgsMTMgQEAgQmFzaWNCbG9jayogQmxv
Y2tJbnNlcnRpb25TZXQ6OnNwbGl0Rm9ydwogICAgIGJsb2NrLT5hZGRQcmVkZWNlc3NvcihyZXN1
bHQpOwogICAgIGZvciAoQmFzaWNCbG9jayogcHJlZGVjZXNzb3IgOiByZXN1bHQtPnByZWRlY2Vz
c29ycygpKQogICAgICAgICBwcmVkZWNlc3Nvci0+cmVwbGFjZVN1Y2Nlc3NvcihibG9jaywgcmVz
dWx0KTsKKyAgICAKKyAgICAvLyBDYWxsYmFja3MgYXJlIHNvcnQgb2YgbGlrZSBwcmVkZWNlc3Nv
cnMuIFdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgJ3Jlc3VsdCcgdGFrZXMgYWxsIG9mCisgICAg
Ly8gJ2Jsb2NrJydzIGNhbGxiYWNrcy4KKyAgICBibG9jay0+dGFrZUVhY2hDYWxsYmFjaygKKyAg
ICAgICAgWyZdIChSZWZQdHI8U2hhcmVkVGFzazx2b2lkKE1hY3JvQXNzZW1ibGVyQ29kZVB0cik+
PiB0YXNrKSB7CisgICAgICAgICAgICByZXN1bHQtPmFkZENhbGxiYWNrVGFzayh0YXNrKTsKKyAg
ICAgICAgfSk7CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzQ29udHJvbFZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzQ29udHJvbFZhbHVlLmgJKHJldmlzaW9uIDIwMTM1MCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM0NvbnRyb2xWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Niw5
ICs0NiwxMCBAQCBwdWJsaWM6CiAgICAgICAgIGNhc2UgUmV0dXJuOgogICAgICAgICBjYXNlIE9v
cHM6CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgY2FzZSBTd2l0Y2g6IAotICAg
ICAgICAgICAgLy8gVGhpcyBpcyBoZXJlIGJlY2F1c2UgU3dpdGNoVmFsdWUgaXMgYSBzdWJjbGFz
cyBvZiBDb250cm9sVmFsdWUsIHNvIHdlIHdhbnQKLSAgICAgICAgICAgIC8vIHN3aXRjaFZhbHVl
LT5hczxDb250cm9sVmFsdWU+KCkgdG8gcmV0dXJuIG5vbi1udWxsLgorICAgICAgICBjYXNlIFN3
aXRjaDoKKyAgICAgICAgY2FzZSBMZWFwT2ZGYWl0aDoKKyAgICAgICAgICAgIC8vIFRoaXMgaXMg
aGVyZSBiZWNhdXNlIFN3aXRjaFZhbHVlIGFuZCBMZWFwT2ZGYWl0aFZhbHVlIGFyZSBzdWJjbGFz
c2VzIG9mIENvbnRyb2xWYWx1ZSwKKyAgICAgICAgICAgIC8vIHNvIHdlIHdhbnQgdGhpbmdzIGxp
a2Ugc3dpdGNoVmFsdWUtPmFzPENvbnRyb2xWYWx1ZT4oKSB0byByZXR1cm4gbm9uLW51bGwuCiAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKQEAgLTc3LDcgKzc4LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIGJvb2wg
cmVwbGFjZVN1Y2Nlc3NvcihCYXNpY0Jsb2NrKiBmcm9tLCBCYXNpY0Jsb2NrKiB0byk7Ci0KKyAg
ICAKICAgICBjb25zdCBGcmVxdWVudGVkQmxvY2smIHRha2VuKCkgY29uc3QKICAgICB7CiAgICAg
ICAgIEFTU0VSVChvcGNvZGUoKSA9PSBKdW1wIHx8IG9wY29kZSgpID09IEJyYW5jaCk7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEYXRhU2VjdGlvbi5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRGF0YVNlY3Rpb24uY3BwCShyZXZpc2lvbiAy
MDEzNTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEYXRhU2VjdGlvbi5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMzEsNyArMzEsNyBAQAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7
CiAKIERhdGFTZWN0aW9uOjpEYXRhU2VjdGlvbihzaXplX3Qgc2l6ZSkKLSAgICA6IG1fZGF0YShm
YXN0TWFsbG9jKHNpemUpKQorICAgIDogbV9kYXRhKGZhc3RaZXJvZWRNYWxsb2Moc2l6ZSkpCiAg
ICAgLCBtX3NpemUoc2l6ZSkKIHsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0R1cGxpY2F0ZVRhaWxzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNEdXBsaWNhdGVUYWlscy5jcHAJKHJldmlzaW9uIDIwMTM1MCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0R1cGxpY2F0ZVRhaWxzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzIs
OSArNzIsMTEgQEAgcHVibGljOgogICAgICAgICBJbmRleFNldDxCYXNpY0Jsb2NrPiBjYW5kaWRh
dGVzOwogCiAgICAgICAgIGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiBtX3Byb2MpIHsKLSAgICAg
ICAgICAgIGlmIChibG9jay0+c2l6ZSgpID4gbV9tYXhTaXplIHx8IGJsb2NrLT5udW1TdWNjZXNz
b3JzKCkgPiBtX21heFN1Y2Nlc3NvcnMpCisgICAgICAgICAgICBpZiAoYmxvY2stPnNpemUoKSA+
IG1fbWF4U2l6ZQorICAgICAgICAgICAgICAgIHx8IGJsb2NrLT5udW1TdWNjZXNzb3JzKCkgPiBt
X21heFN1Y2Nlc3NvcnMKKyAgICAgICAgICAgICAgICB8fCAhYmxvY2stPmlzQ2xvbmVhYmxlKCkp
CiAgICAgICAgICAgICAgICAgY29udGludWU7Ci0KKyAgICAgICAgICAgIAogICAgICAgICAgICAg
Y2FuZGlkYXRlcy5hZGQoYmxvY2spOwogICAgICAgICB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0xlYXBPZkZhaXRoVmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM0xlYXBPZkZhaXRoVmFsdWUuY3BwCShyZXZpc2lvbiAwKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTGVhcE9mRmFpdGhWYWx1ZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQjNMZWFwT2ZGYWl0
aFZhbHVlLmgiCisKKyNpZiBFTkFCTEUoQjNfSklUKQorCisjaW5jbHVkZSAiQjNCYXNpY0Jsb2Nr
LmgiCisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeworCitMZWFwT2ZGYWl0aFZhbHVl
Ojp+TGVhcE9mRmFpdGhWYWx1ZSgpCit7Cit9CisKK3ZvaWQgTGVhcE9mRmFpdGhWYWx1ZTo6YXBw
ZW5kU3VjY2Vzc29yKGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgYmxvY2spCit7CisgICAgbV9zdWNj
ZXNzb3JzLmFwcGVuZChibG9jayk7Cit9CisKK3ZvaWQgTGVhcE9mRmFpdGhWYWx1ZTo6c2V0Q2Fs
bGJhY2tUYXNrKFJlZlB0cjxTaGFyZWRUYXNrPENhbGxiYWNrRnVuY3Rpb25UeXBlPj4gdGFzaykK
K3sKKyAgICBtX3Rhc2sgPSB0YXNrOworfQorCitib29sIExlYXBPZkZhaXRoVmFsdWU6OmlzQ2xv
bmVhYmxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgTGVhcE9mRmFp
dGhWYWx1ZTo6ZHVtcE1ldGEoQ29tbWFQcmludGVyJiBjb21tYSwgUHJpbnRTdHJlYW0mIG91dCkg
Y29uc3QKK3sKKyAgICBDb250cm9sVmFsdWU6OmR1bXBNZXRhKGNvbW1hLCBvdXQpOworICAgIG91
dC5wcmludChjb21tYSwgInRhc2sgPSAiLCBSYXdQb2ludGVyKG1fdGFzay5nZXQoKSkpOworfQor
CitWYWx1ZSogTGVhcE9mRmFpdGhWYWx1ZTo6Y2xvbmVJbXBsKCkgY29uc3QKK3sKKyAgICBkYXRh
TG9nKCJGQVRBTDogQXR0ZW1wdCB0byBjbG9uZSBub24tY2xvbmVhYmxlIExlYXBPZkZhaXRoVmFs
dWUhXG4iKTsKKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCitMZWFwT2ZG
YWl0aFZhbHVlOjpMZWFwT2ZGYWl0aFZhbHVlKE9yaWdpbiBvcmlnaW4sIFZhbHVlKiBjaGlsZCkK
KyAgICA6IENvbnRyb2xWYWx1ZShMZWFwT2ZGYWl0aCwgVm9pZCwgb3JpZ2luLCBjaGlsZCkKK3sK
K30KKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzCisKKyNlbmRpZiAvLyBFTkFCTEUoQjNfSklU
KQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMZWFwT2ZGYWl0aFZhbHVlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTGVhcE9mRmFpdGhWYWx1
ZS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTGVhcE9mRmFp
dGhWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBCM0xlYXBPZkZhaXRoVmFs
dWVfaAorI2RlZmluZSBCM0xlYXBPZkZhaXRoVmFsdWVfaAorCisjaWYgRU5BQkxFKEIzX0pJVCkK
KworI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCisjaW5jbHVkZSA8d3RmL1NoYXJlZFRhc2su
aD4KKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CisKK2NsYXNzIExlYXBPZkZhaXRo
VmFsdWUgOiBwdWJsaWMgQ29udHJvbFZhbHVlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgYm9vbCBh
Y2NlcHRzKE9wY29kZSBvcGNvZGUpIHsgcmV0dXJuIG9wY29kZSA9PSBMZWFwT2ZGYWl0aDsgfQor
ICAgIAorICAgIH5MZWFwT2ZGYWl0aFZhbHVlKCk7CisgICAgCisgICAgSlNfRVhQT1JUX1BSSVZB
VEUgdm9pZCBhcHBlbmRTdWNjZXNzb3IoY29uc3QgRnJlcXVlbnRlZEJsb2NrJik7CisgICAgCisg
ICAgdHlwZWRlZiB2b2lkIENhbGxiYWNrRnVuY3Rpb25UeXBlKGNvbnN0IFZlY3RvcjxNYWNyb0Fz
c2VtYmxlckNvZGVQdHI+Jik7CisgICAgCisgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBzZXRD
YWxsYmFja1Rhc2soUmVmUHRyPFNoYXJlZFRhc2s8Q2FsbGJhY2tGdW5jdGlvblR5cGU+PiB0YXNr
KTsKKyAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jPgorICAgIHZvaWQgc2V0Q2FsbGJh
Y2soY29uc3QgRnVuYyYgZnVuYykKKyAgICB7CisgICAgICAgIHNldENhbGxiYWNrVGFzayhzaGFy
ZWRUYXNrPENhbGxiYWNrRnVuY3Rpb25UeXBlPihmdW5jKSk7CisgICAgfQorICAgIAorICAgIFNo
YXJlZFRhc2s8Q2FsbGJhY2tGdW5jdGlvblR5cGU+KiBjYWxsYmFja1Rhc2soKSBjb25zdCB7IHJl
dHVybiBtX3Rhc2suZ2V0KCk7IH0KKyAgICAKKyAgICBib29sIGlzQ2xvbmVhYmxlKCkgY29uc3Qg
b3ZlcnJpZGU7CisKK3Byb3RlY3RlZDoKKyAgICB2b2lkIGR1bXBNZXRhKENvbW1hUHJpbnRlciYs
IFByaW50U3RyZWFtJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgCisgICAgVmFsdWUqIGNsb25lSW1w
bCgpIGNvbnN0IG92ZXJyaWRlOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBQcm9jZWR1
cmU7CisgICAgCisgICAgSlNfRVhQT1JUX1BSSVZBVEUgTGVhcE9mRmFpdGhWYWx1ZShPcmlnaW4s
IFZhbHVlKiBjaGlsZCk7CisgICAgCisgICAgUmVmUHRyPFNoYXJlZFRhc2s8Q2FsbGJhY2tGdW5j
dGlvblR5cGU+PiBtX3Rhc2s7Cit9OworCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKKworI2Vu
ZGlmIC8vIEVOQUJMRShCM19KSVQpCisKKyNlbmRpZiAvLyBCM0xlYXBPZkZhaXRoVmFsdWVfaAor
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlck1hY3Jvcy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJNYWNyb3MuY3BwCShyZXZp
c2lvbiAyMDEzNTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlck1hY3Jvcy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
NS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkIzQ29uc3RQdHJWYWx1
ZS5oIgogI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNJbnNlcnRpb25T
ZXRJbmxpbmVzLmgiCisjaW5jbHVkZSAiQjNNZW1vcnlWYWx1ZS5oIgogI2luY2x1ZGUgIkIzUGhh
c2VTY29wZS5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJlSW5saW5lcy5oIgogI2luY2x1ZGUgIkIz
U3dpdGNoVmFsdWUuaCIKQEAgLTI3NSw4ICsyNzYsOTMgQEAgcHJpdmF0ZToKICAgICAgICAgY29u
c3QgVmVjdG9yPFN3aXRjaENhc2U+JiBjYXNlcywgdW5zaWduZWQgc3RhcnQsIGJvb2wgaGFyZFN0
YXJ0LCB1bnNpZ25lZCBlbmQsCiAgICAgICAgIEJhc2ljQmxvY2sqIGJlZm9yZSkKICAgICB7Ci0g
ICAgICAgIC8vIEZJWE1FOiBBZGQgdGFibGUtYmFzZWQgc3dpdGNoIGxvd2VyaW5nLgotICAgICAg
ICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxMTQxCisgICAg
ICAgIFZhbHVlKiBjaGlsZCA9IG1fdmFsdWUtPmNoaWxkKDApOworICAgICAgICBUeXBlIHR5cGUg
PSBjaGlsZC0+dHlwZSgpOworICAgICAgICBGcmVxdWVudGVkQmxvY2sgZmFsbFRocm91Z2ggPSBt
X3ZhbHVlLT5hczxTd2l0Y2hWYWx1ZT4oKS0+ZmFsbFRocm91Z2goKTsKKyAgICAgICAgCisgICAg
ICAgIC8vIEl0J3MgYSBnb29kIGlkZWEgdG8gdXNlIGEgdGFibGUtYmFzZWQgc3dpdGNoIGluIHNv
bWUgY2FzZXM6IHRoZSBudW1iZXIgb2YgY2FzZXMgaGFzIHRvIGJlCisgICAgICAgIC8vIGxhcmdl
IGVub3VnaCBhbmQgdGhleSBoYXZlIHRvIGJlIGRlbnNlIGVub3VnaC4gVGhpcyBjb3VsZCBwcm9i
YWJseSBiZSBpbXByb3ZlZCBhIGxvdC4gRm9yCisgICAgICAgIC8vIGV4YW1wbGUsIHdlIGNvdWxk
IHN0aWxsIHVzZSBhIGp1bXAgdGFibGUgaW4gY2FzZXMgd2hlcmUgdGhlIGlucHV0cyBhcmUgc3Bh
cnNlIHNvIGxvbmcgYXMgd2UKKyAgICAgICAgLy8gc2hpZnQgb2ZmIHRoZSB1bmludGVyZXN0aW5n
IGJpdHMuIE9uIHRoZSBvdGhlciBoYW5kLCBpdCdzIG5vdCBjbGVhciB0aGF0IHRoaXMgd291bGQK
KyAgICAgICAgLy8gYWN0dWFsbHkgYmUgYW55IGJldHRlciB0aGFuIHdoYXQgd2UgaGF2ZSBkb25l
IGhlcmUgYW5kIGl0J3Mgbm90IGNsZWFyIHRoYXQgaXQgd291bGQgYmUKKyAgICAgICAgLy8gYmV0
dGVyIHRoYW4gYSBiaW5hcnkgc3dpdGNoLgorICAgICAgICBjb25zdCB1bnNpZ25lZCBtaW5DYXNl
c0ZvclRhYmxlID0gNzsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgZGVuc2l0eUxpbWl0ID0gNDsK
KyAgICAgICAgaWYgKGVuZCAtIHN0YXJ0ID49IG1pbkNhc2VzRm9yVGFibGUpIHsKKyAgICAgICAg
ICAgIGludDY0X3QgZmlyc3RWYWx1ZSA9IGNhc2VzW3N0YXJ0XS5jYXNlVmFsdWUoKTsKKyAgICAg
ICAgICAgIGludDY0X3QgbGFzdFZhbHVlID0gY2FzZXNbZW5kIC0gMV0uY2FzZVZhbHVlKCk7Cisg
ICAgICAgICAgICBpZiAoKGxhc3RWYWx1ZSAtIGZpcnN0VmFsdWUgKyAxKSAvIGNhc2VzLnNpemUo
KSA8IGRlbnNpdHlMaW1pdCkgeworICAgICAgICAgICAgICAgIEJhc2ljQmxvY2sqIHN3aXRjaEJs
b2NrID0gbV9ibG9ja0luc2VydGlvblNldC5pbnNlcnRBZnRlcihtX2Jsb2NrKTsKKyAgICAgICAg
ICAgICAgICBWYWx1ZSogaW5kZXggPSBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAg
ICAgICAgICAgICAgIG1fcHJvYywgU3ViLCBtX29yaWdpbiwgY2hpbGQsCisgICAgICAgICAgICAg
ICAgICAgIGJlZm9yZS0+YXBwZW5kSW50Q29uc3RhbnQobV9wcm9jLCBtX29yaWdpbiwgdHlwZSwg
Zmlyc3RWYWx1ZSkpOworICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgQnJhbmNoLCBtX29yaWdpbiwKKyAg
ICAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAg
ICAgICAgICAgICAgbV9wcm9jLCBBYm92ZSwgbV9vcmlnaW4sIGluZGV4LAorICAgICAgICAgICAg
ICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmRJbnRDb25zdGFudChtX3Byb2MsIG1fb3JpZ2luLCB0
eXBlLCBsYXN0VmFsdWUgLSBmaXJzdFZhbHVlKSksCisgICAgICAgICAgICAgICAgICAgIGZhbGxU
aHJvdWdoLCBGcmVxdWVudGVkQmxvY2soc3dpdGNoQmxvY2spKTsKKyAgICAgICAgICAgICAgICAK
KyAgICAgICAgICAgICAgICBzaXplX3QgdGFibGVTaXplID0gbGFzdFZhbHVlIC0gZmlyc3RWYWx1
ZSArIDE7CisgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKiBqdW1wVGFibGUg
PSBiaXR3aXNlX2Nhc3Q8TWFjcm9Bc3NlbWJsZXJDb2RlUHRyKj4oCisgICAgICAgICAgICAgICAg
ICAgIG1fcHJvYy5hZGREYXRhU2VjdGlvbihzaXplb2YoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKSAq
IHRhYmxlU2l6ZSkpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFZhbHVlKiBi
YXNlID0gc3dpdGNoQmxvY2stPmFwcGVuZEludENvbnN0YW50KAorICAgICAgICAgICAgICAgICAg
ICBtX3Byb2MsIG1fb3JpZ2luLCBwb2ludGVyVHlwZSgpLCBiaXR3aXNlX2Nhc3Q8aW50cHRyX3Q+
KGp1bXBUYWJsZSkpOworICAgICAgICAgICAgICAgIGlmIChpbmRleC0+dHlwZSgpICE9IGJhc2Ut
PnR5cGUoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXgtPnR5cGUoKSA9PSBJbnQz
MikKKyAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gc3dpdGNoQmxvY2stPmFwcGVuZE5l
dzxWYWx1ZT4obV9wcm9jLCBaRXh0MzIsIG1fb3JpZ2luLCBpbmRleCk7CisgICAgICAgICAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gc3dpdGNoQmxvY2st
PmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBUcnVuYywgbV9vcmlnaW4sIGluZGV4KTsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaW5kZXggPSBzd2l0Y2hCbG9jay0+YXBwZW5k
TmV3PFZhbHVlPigKKyAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBNdWwsIG1fb3JpZ2luLCBp
bmRleCwKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoQmxvY2stPmFwcGVuZEludENvbnN0YW50
KAorICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwgcG9pbnRlclR5cGUo
KSwgc2l6ZW9mKE1hY3JvQXNzZW1ibGVyQ29kZVB0cikpKTsKKyAgICAgICAgICAgICAgICBWYWx1
ZSogcHRyID0gc3dpdGNoQmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBBZGQsIG1fb3Jp
Z2luLCBiYXNlLCBpbmRleCk7CisgICAgICAgICAgICAgICAgVmFsdWUqIGp1bXBUYXJnZXQgPQor
ICAgICAgICAgICAgICAgICAgICBzd2l0Y2hCbG9jay0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPiht
X3Byb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIG1fb3JpZ2luLCBwdHIpOworICAgICAgICAgICAg
ICAgIExlYXBPZkZhaXRoVmFsdWUqIGxlYXBPZkZhaXRoID0KKyAgICAgICAgICAgICAgICAgICAg
c3dpdGNoQmxvY2stPmFwcGVuZE5ldzxMZWFwT2ZGYWl0aFZhbHVlPigKKyAgICAgICAgICAgICAg
ICAgICAgICAgIG1fcHJvYywgTGVhcE9mRmFpdGgsIG1fb3JpZ2luLCBqdW1wVGFyZ2V0KTsKKyAg
ICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBCaXRWZWN0b3IgaGFuZGxlZEluZGljZXM7
CisgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gc3RhcnQ7IGkgPCBlbmQ7ICsraSkg
eworICAgICAgICAgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2sgYmxvY2sgPSBjYXNlc1tpXS50
YXJnZXQoKTsKKyAgICAgICAgICAgICAgICAgICAgaW50NjRfdCB2YWx1ZSA9IGNhc2VzW2ldLmNh
c2VWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICBsZWFwT2ZGYWl0aC0+YXBwZW5kU3VjY2Vz
c29yKGJsb2NrKTsKKyAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGluZGV4ID0gdmFsdWUgLSBm
aXJzdFZhbHVlOworICAgICAgICAgICAgICAgICAgICBBU1NFUlQoIWhhbmRsZWRJbmRpY2VzLmdl
dChpbmRleCkpOworICAgICAgICAgICAgICAgICAgICBoYW5kbGVkSW5kaWNlcy5zZXQoaW5kZXgp
OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBi
b29sIGhhc1VuaGFuZGxlZEluZGV4ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IHRhYmxlU2l6ZTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGlm
ICghaGFuZGxlZEluZGljZXMuZ2V0KGkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBoYXNV
bmhhbmRsZWRJbmRleCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAK
KyAgICAgICAgICAgICAgICBpZiAoaGFzVW5oYW5kbGVkSW5kZXgpCisgICAgICAgICAgICAgICAg
ICAgIGxlYXBPZkZhaXRoLT5hcHBlbmRTdWNjZXNzb3IoZmFsbFRocm91Z2gpOworICAgICAgICAg
ICAgICAgIAorICAgICAgICAgICAgICAgIGxlYXBPZkZhaXRoLT5zZXRDYWxsYmFjaygKKyAgICAg
ICAgICAgICAgICAgICAgWz1dIChjb25zdCBWZWN0b3I8TWFjcm9Bc3NlbWJsZXJDb2RlUHRyPiYg
cG9pbnRlcnMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBwb2ludGVySW5kZXgg
PSAwOworICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaW5kZXggOiBoYW5kbGVk
SW5kaWNlcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBqdW1wVGFibGVbaW5kZXhdID0g
cG9pbnRlcnNbcG9pbnRlckluZGV4KytdOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoaGFzVW5oYW5kbGVkSW5kZXgpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRhYmxlU2l6ZTsgKytpKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaGFuZGxlZEluZGljZXMuZ2V0
KGkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganVtcFRhYmxlW2ldID0g
cG9pbnRlcnNbcG9pbnRlckluZGV4XTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgICAgICAKICAg
ICAgICAgLy8gU2VlIGNvbW1lbnRzIGluIGppdC9CaW5hcnlTd2l0Y2guY3BwIGZvciBhIGp1c3Rp
ZmljYXRpb24gb2YgdGhpcyBhbGdvcml0aG0uIFRoZSBvbmx5CiAgICAgICAgIC8vIHRoaW5nIHdl
IGRvIGRpZmZlcmVudGx5IGlzIHRoYXQgd2UgZG9uJ3QgdXNlIHJhbmRvbW5lc3MuCkBAIC0zMDcs
MjIgKzM5MywxOSBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCiAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgQnJhbmNoLCBtX29y
aWdpbiwKICAgICAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+KAotICAg
ICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBFcXVhbCwgbV9vcmlnaW4sIG1fdmFsdWUtPmNo
aWxkKDApLAorICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBFcXVhbCwgbV9vcmlnaW4s
IGNoaWxkLAogICAgICAgICAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmRJbnRDb25zdGFu
dCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLCBtX3ZhbHVl
LT5jaGlsZCgwKS0+dHlwZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywg
bV9vcmlnaW4sIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZXNbc3RhcnQg
KyBpXS5jYXNlVmFsdWUoKSkpLAogICAgICAgICAgICAgICAgICAgICBjYXNlc1tzdGFydCArIGld
LnRhcmdldCgpLCBGcmVxdWVudGVkQmxvY2sobmV4dENoZWNrKSk7CiAKICAgICAgICAgICAgICAg
ICBiZWZvcmUgPSBuZXh0Q2hlY2s7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGlmIChh
bGxDb25zZWN1dGl2ZSkgewotICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCi0gICAgICAgICAgICAgICAgICAgIG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIGNh
c2VzW2VuZCAtIDFdLnRhcmdldCgpKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICAgICAgYmVmb3JlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgICAgICAgICAg
ICAgbV9wcm9jLCBKdW1wLCBtX29yaWdpbiwgbV92YWx1ZS0+YXM8U3dpdGNoVmFsdWU+KCktPmZh
bGxUaHJvdWdoKCkpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGFsbENvbnNlY3V0
aXZlKQorICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4obV9w
cm9jLCBKdW1wLCBtX29yaWdpbiwgY2FzZXNbZW5kIC0gMV0udGFyZ2V0KCkpOworICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
bV9wcm9jLCBKdW1wLCBtX29yaWdpbiwgZmFsbFRocm91Z2gpOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAKQEAgLTMzNCw5ICs0MTcsOSBAQCBwcml2YXRlOgogICAgICAgICBiZWZv
cmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAogICAgICAgICAgICAgbV9wcm9jLCBCcmFuY2gs
IG1fb3JpZ2luLAogICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+KAotICAgICAg
ICAgICAgICAgIG1fcHJvYywgTGVzc1RoYW4sIG1fb3JpZ2luLCBtX3ZhbHVlLT5jaGlsZCgwKSwK
KyAgICAgICAgICAgICAgICBtX3Byb2MsIExlc3NUaGFuLCBtX29yaWdpbiwgY2hpbGQsCiAgICAg
ICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmRJbnRDb25zdGFudCgKLSAgICAgICAgICAgICAgICAg
ICAgbV9wcm9jLCBtX29yaWdpbiwgbV92YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSwKKyAgICAgICAg
ICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwgdHlwZSwKICAgICAgICAgICAgICAgICAgICAg
Y2FzZXNbbWVkaWFuSW5kZXhdLmNhc2VWYWx1ZSgpKSksCiAgICAgICAgICAgICBGcmVxdWVudGVk
QmxvY2sobGVmdCksIEZyZXF1ZW50ZWRCbG9jayhyaWdodCkpOwogCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAkocmV2aXNpb24gMjAxMzUwKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI0NDEsNiArMjQ0MSwxNiBAQCBwcml2YXRlOgogICAgICAgICAgICAgfQogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBCMzo6TGVhcE9m
RmFpdGg6IHsKKyAgICAgICAgICAgIEFyZ1Byb21pc2UgYWRkciA9IGxvYWRQcm9taXNlKG1fdmFs
dWUtPmNoaWxkKDApKTsKKyAgICAgICAgICAgIGlmIChpc1ZhbGlkRm9ybShBaXI6OkxlYXBPZkZh
aXRoLCBhZGRyLmtpbmQoKSkpIHsKKyAgICAgICAgICAgICAgICBhcHBlbmQoQWlyOjpMZWFwT2ZG
YWl0aCwgYWRkci5jb25zdW1lKCp0aGlzKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgYXBwZW5kKEFpcjo6TGVhcE9mRmFpdGgsIHRtcChtX3Zh
bHVlLT5jaGlsZCgwKSkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAKICAgICAg
ICAgY2FzZSBCMzo6T29wczogewogICAgICAgICAgICAgYXBwZW5kKEFpcjo6T29wcyk7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5jcHAJKHJldmlzaW9uIDIwMTM1MCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI5MCw2ICsyOTAsOSBAQCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgT3Bj
CiAgICAgY2FzZSBTd2l0Y2g6CiAgICAgICAgIG91dC5wcmludCgiU3dpdGNoIik7CiAgICAgICAg
IHJldHVybjsKKyAgICBjYXNlIExlYXBPZkZhaXRoOgorICAgICAgICBvdXQucHJpbnQoIkxlYXBP
ZkZhaXRoIik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFJldHVybjoKICAgICAgICAgb3V0
LnByaW50KCJSZXR1cm4iKTsKICAgICAgICAgcmV0dXJuOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzT3Bjb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzT3Bjb2RlLmgJKHJldmlzaW9uIDIwMTM1MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM09wY29kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTYsNiArMjE2LDEzIEBAIGVudW0g
T3Bjb2RlIDogaW50MTZfdCB7CiAKICAgICAvLyBTd2l0Y2guIFN3aXRjaGVzIG92ZXIgZWl0aGVy
IEludDMyIG9yIEludDY0LiBVc2VzIHRoZSBTd2l0Y2hWYWx1ZSBjbGFzcy4KICAgICBTd2l0Y2gs
CisgICAgCisgICAgLy8gSnVtcCB0byB0aGUgZ2l2ZW4gYWRkcmVzcy4gVGhlIGNvbXBpbGVyIGFz
c3VtZXMgdGhhdCB0aGlzIHdpbGwganVtcCB0byBvbmUgb2YgdGhlIHN1cHBsaWVkCisgICAgLy8g
c3VjY2Vzc29ycywgYnV0IHdpbGwgbWFrZSBhYnNvbHV0ZWx5IG5vIGFzc3VtcHRpb25zIGFib3V0
IHdoaWNoLiBJdCdzIGVudGlyZWx5IHVwIHRvIHRoZSB1c2VyCisgICAgLy8gdG8gYXJyYW5nZSBm
b3IgdGhlIGp1bXAgdG8ganVtcCB0byBvbmUgb2YgdGhvc2Ugc3VjY2Vzc29ycy4gVGhpcyBjYW5u
b3QgdHJhcCBvciBkbyBhbnl0aGluZyBidXQKKyAgICAvLyBqdW1wIHRvIG9uZSBvZiB0aGUgc3Vj
Y2Vzc29yczsgaWYgaXQgZG9lcyBhbnl0aGluZyBlbHNlIHRoZW4gZGVtb25zIHdpbGwgY29tZSBv
dXQgb2YgdGhlIHVzZXIncworICAgIC8vIG5vc2UuIAorICAgIExlYXBPZkZhaXRoLAogCiAgICAg
Ly8gUmV0dXJuLiBOb3RlIHRoYXQgQjMgcHJvY2VkdXJlcyBkb24ndCBrbm93IHRoZWlyIHJldHVy
biB0eXBlLCBzbyB0aGlzIGNhbiBqdXN0IHJldHVybiBhbnkKICAgICAvLyB0eXBlLiBVc2VzIHRo
ZSBDb250cm9sVmFsdWUgY2xhc3MuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQ
cm9jZWR1cmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1By
b2NlZHVyZS5jcHAJKHJldmlzaW9uIDIwMTM1MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1Byb2NlZHVyZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgyLDYgKzgyLDggQEAgVmFyaWFi
bGUqIFByb2NlZHVyZTo6YWRkVmFyaWFibGUoVHlwZSB0eQogCiBWYWx1ZSogUHJvY2VkdXJlOjpj
bG9uZShWYWx1ZSogdmFsdWUpCiB7CisgICAgQVNTRVJUKHZhbHVlLT5pc0Nsb25lYWJsZSgpKTsK
KyAgICAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmFsdWU+IGNsb25lKHZhbHVlLT5jbG9uZUltcGwo
KSk7CiAgICAgY2xvbmUtPm1faW5kZXggPSBVSU5UX01BWDsKICAgICBjbG9uZS0+b3duZXIgPSBu
dWxscHRyOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmgJKHJldmlz
aW9uIDIwMTM1MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xMDEsNiArMTAxLDcgQEAgcHVibGljOgogICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5hbWUuLi4gQXJndW1lbnRzPgogICAgIFZhbHVlVHlwZSog
YWRkKEFyZ3VtZW50cy4uLik7CiAKKyAgICAvLyBOb3RlIHRoYXQgbm90IGFsbCB2YWx1ZXMgYXJl
IGNsb25lYWJsZS4gQ2hlY2sgVmFsdWU6OmlzQ2xvbmVhYmxlKCkgYmVmb3JlIHByb2NlZWRpbmcu
CiAgICAgVmFsdWUqIGNsb25lKFZhbHVlKik7CiAKICAgICBWYWx1ZSogYWRkSW50Q29uc3RhbnQo
T3JpZ2luLCBUeXBlLCBpbnQ2NF90IHZhbHVlKTsKQEAgLTIxOCw2ICsyMTksOSBAQCBwdWJsaWM6
CiAKICAgICBjb25zdCBjaGFyKiBsYXN0UGhhc2VOYW1lKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0
UGhhc2VOYW1lOyB9CiAKKyAgICAvLyBBbGxvY2F0ZXMgYSBzbGFiIG9mIG1lbW9yeSB0aGF0IHdp
bGwgYmUga2VwdCBhbGl2ZSBieSBhbnlvbmUgd2hvIGtlZXBzIHRoZSByZXN1bHRpbmcgY29kZQor
ICAgIC8vIGFsaXZlLiBHcmVhdCBmb3IgY29tcGlsZXItZ2VuZXJhdGVkIGRhdGEgc2VjdGlvbnMs
IGxpa2Ugc3dpdGNoIGp1bXAgdGFibGVzIGFuZCBjb25zdGFudCBwb29scy4KKyAgICAvLyBUaGlz
IHJldHVybnMgbWVtb3J5IHRoYXQgaGFzIGJlZW4gemVyby1pbml0aWFsaXplZC4KICAgICB2b2lk
KiBhZGREYXRhU2VjdGlvbihzaXplX3Qgc2l6ZSk7CiAKICAgICBPcGFxdWVCeXByb2R1Y3RzJiBi
eXByb2R1Y3RzKCkgeyByZXR1cm4gKm1fYnlwcm9kdWN0czsgfQpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcAkocmV2aXNpb24gMjAxMzUwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xNzczLDcgKzE3NzMsMTcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIHZhbHVlLT5vcGNvZGUoKSA9PSBTZWxlY3QKICAgICAgICAgICAgICAgICAgICAg
ICAgICYmICh2YWx1ZS0+Y2hpbGQoMSktPmlzQ29uc3RhbnQoKSAmJiB2YWx1ZS0+Y2hpbGQoMikt
PmlzQ29uc3RhbnQoKSk7CiAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBpZiAoc2Vs
ZWN0KSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBy
ZWxldmFudCBjb2RlIGlzIGNsb25lYWJsZS4KKyAgICAgICAgICAgIGJvb2wgYWxsQXJlQ2xvbmVh
YmxlID0gdHJ1ZTsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgaW5kZXggPSBtX2luZGV4ICsg
MTsgaW5kZXgtLTspIHsKKyAgICAgICAgICAgICAgICBWYWx1ZSogdmFsdWUgPSBtX2Jsb2NrLT5h
dChpbmRleCk7CisgICAgICAgICAgICAgICAgYWxsQXJlQ2xvbmVhYmxlICY9IHZhbHVlLT5pc0Ns
b25lYWJsZSgpOworICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBzZWxlY3QpCisgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAg
ICAgICBpZiAoc2VsZWN0ICYmIGFsbEFyZUNsb25lYWJsZSkgewogICAgICAgICAgICAgICAgIHNw
ZWNpYWxpemVTZWxlY3Qoc2VsZWN0KTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgIH0KQEAgLTE5OTgsNiArMjAwOCw3IEBAIHByaXZhdGU6CiAgICAgICAgIG1fY2hhbmdlZCA9
IHRydWU7CiAKICAgICAgICAgcHJlZGVjZXNzb3ItPnVwZGF0ZVByZWRlY2Vzc29yc0FmdGVyKCk7
CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAogICAgIC8vIFR1cm4gdGhpczogQWRkKGNv
bnN0YW50LCB2YWx1ZSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbGlkYXRl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWxpZGF0ZS5j
cHAJKHJldmlzaW9uIDIwMTM1MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbGlk
YXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzg3LDYgKzM4NywxMyBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICAgICAgVkFMSURBVEUoaXNJbnQodmFsdWUtPmNoaWxkKDApLT50eXBlKCkpLCAoIkF0
ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgPT0g
Vm9pZCwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgTGVhcE9mRmFpdGg6CisgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPm51
bUNoaWxkcmVuKCkgPT0gMSwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJ
REFURSh2YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSA9PSBwb2ludGVyVHlwZSgpLCAoIkF0ICIsICp2
YWx1ZSkpOworICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgPT0gVm9pZCwg
KCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBmb3IgKEJhc2ljQmxvY2sqIHN1Y2Nl
c3NvciA6IHZhbHVlLT5hczxDb250cm9sVmFsdWU+KCktPnN1Y2Nlc3NvckJsb2NrcygpKQorICAg
ICAgICAgICAgICAgICAgICBWQUxJREFURShzdWNjZXNzb3ItPmhhc0NhbGxiYWNrcygpLCAoIkF0
ICIsICp2YWx1ZSwgIi0+IiwgKnN1Y2Nlc3NvcikpOworICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBWQUxJREFURSghKHZhbHVlLT5lZmZlY3RzKCku
d3JpdGVzICYmIHZhbHVlLT5rZXkoKSksICgiQXQgIiwgKnZhbHVlKSk7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzVmFsdWUuY3BwCShyZXZpc2lvbiAyMDEzNTApCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU0MCw2ICs1NDAs
NyBAQCBFZmZlY3RzIFZhbHVlOjplZmZlY3RzKCkgY29uc3QKICAgICBjYXNlIEp1bXA6CiAgICAg
Y2FzZSBCcmFuY2g6CiAgICAgY2FzZSBTd2l0Y2g6CisgICAgY2FzZSBMZWFwT2ZGYWl0aDoKICAg
ICBjYXNlIFJldHVybjoKICAgICBjYXNlIE9vcHM6CiAgICAgICAgIHJlc3VsdC50ZXJtaW5hbCA9
IHRydWU7CkBAIC01NDgsNiArNTQ5LDExIEBAIEVmZmVjdHMgVmFsdWU6OmVmZmVjdHMoKSBjb25z
dAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK2Jvb2wgVmFsdWU6OmlzQ2xvbmVhYmxlKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogVmFsdWVLZXkgVmFsdWU6OmtleSgpIGNvbnN0
CiB7CiAgICAgc3dpdGNoIChvcGNvZGUoKSkgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNW
YWx1ZS5oCShyZXZpc2lvbiAyMDEzNTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNW
YWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMDAsNiArMjAwLDExIEBAIHB1YmxpYzoKICAgICBi
b29sIGlzTGlrZU5vblplcm8oKSBjb25zdCB7IHJldHVybiBhc1RyaVN0YXRlKCkgPT0gVHJ1ZVRy
aVN0YXRlOyB9CiAKICAgICBFZmZlY3RzIGVmZmVjdHMoKSBjb25zdDsKKyAgICAKKyAgICAvLyBT
b21lIG9wZXJhdGlvbnMgd2lsbCByZWZ1c2UgdG8gYmUgY2xvbmVkLiBUaGlzIGhhcHBlbnMgd2hl
biB0aGUgb3BlcmF0aW9uIGhhcyBzb21lIGluc2lkZQorICAgIC8vIGtub3dsZWRnZSBhYm91dCB0
aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gaXRzIGlkZW50aXR5IGFuZCB0aGUgaWRlbnRpdHkgb2Yg
dGhlIGNvZGUgaXQgd2lsbAorICAgIC8vIGdlbmVyYXRlLgorICAgIHZpcnR1YWwgYm9vbCBpc0Ns
b25lYWJsZSgpIGNvbnN0OwogCiAgICAgLy8gVGhpcyByZXR1cm5zIGEgVmFsdWVLZXkgdGhhdCBk
ZXNjcmliZXMgdGhhdCB0aGlzIFZhbHVlIHJldHVybnMgd2hlbiBpdCBleGVjdXRlcy4gUmV0dXJu
cyBhbgogICAgIC8vIGVtcHR5IFZhbHVlS2V5IGlmIHRoaXMgVmFsdWUgaXMgaW1wdXJlLiBOb3Rl
IHRoYXQgYW4gb3BlcmF0aW9uIHRoYXQgcmV0dXJucyBWb2lkIGNvdWxkIHN0aWxsCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcAkocmV2aXNpb24gMjAxMzUwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMTI4LDcg
KzEwMTI4LDEwIEBAIHZvaWQgdGVzdFN3aXRjaENoaWxsRGl2KHVuc2lnbmVkIGRlZ3JlZSwKICAg
ICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IGRlZ3JlZTsgKytpKSB7Ci0gICAgICAgIENIRUNLKGludm9rZTxpbnQzMl90PigqY29kZSwg
aSAqIGdhcCwgNDIsIDExKSA9PSAoKGkgJiAxKSA/IDExLzQyIDogNDIvMTEpKTsKKyAgICAgICAg
ZGF0YUxvZygiaSA9ICIsIGksICJcbiIpOworICAgICAgICBpbnQzMl90IHJlc3VsdCA9IGludm9r
ZTxpbnQzMl90PigqY29kZSwgaSAqIGdhcCwgNDIsIDExKTsKKyAgICAgICAgZGF0YUxvZygicmVz
dWx0ID0gIiwgcmVzdWx0LCAiXG4iKTsKKyAgICAgICAgQ0hFQ0socmVzdWx0ID09ICgoaSAmIDEp
ID8gMTEvNDIgOiA0Mi8xMSkpOwogICAgICAgICBpZiAoZ2FwID4gMSkgewogICAgICAgICAgICAg
Q0hFQ0soIWludm9rZTxpbnQzMl90PigqY29kZSwgaSAqIGdhcCArIDEsIDQyLCAxMSkpOwogICAg
ICAgICAgICAgQ0hFQ0soIWludm9rZTxpbnQzMl90PigqY29kZSwgaSAqIGdhcCAtIDEsIDQyLCAx
MSkpOwpAQCAtMTIwNTAsNiArMTIwNTMsMTggQEAgdm9pZCB0ZXN0TGF0ZVJlZ2lzdGVyKCkKICAg
ICBDSEVDSyhpbnZva2U8dWludDY0X3Q+KCpjb2RlKSA9PSByZXN1bHQpOwogfQogCit2b2lkIHRl
c3RUaHJlYWRlZEludGVycHJldGVyKCkKK3sKKyAgICAvLyBUaGlzIGNyZWF0ZXMgYSB0aHJlYWRl
ZCBpbnRlcnByZXRlciBpbiBCMyBJUiBhbmQgc2VlcyBpZiBpdCB3b3Jrcy4KKyAgICAKKyAgICBQ
cm9jZWR1cmUgcHJvYzsKKyAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwor
ICAgIEJhc2ljQmxvY2sqIGFkZFRvRGF0YVBvaW50ZXIgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAg
QmFzaWNCbG9jayogYWRkVG9Db2RlUG9pbnRlciA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBCYXNp
Y0Jsb2NrKiBhZGRUb0RhdGEgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayogcHJp
bnQgPSBwcm9jLmFkZEJsb2NrKCk7Cit9CisKIC8vIE1ha2Ugc3VyZSB0aGUgY29tcGlsZXIgZG9l
cyBub3QgdHJ5IHRvIG9wdGltaXplIGFueXRoaW5nIG91dC4KIE5FVkVSX0lOTElORSBkb3VibGUg
emVybygpCiB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuaAkocmV2
aXNpb24gMjAxMzUwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJBaXJTcGVjaWFsLmgi
CiAjaW5jbHVkZSAiQWlyU3RhY2tTbG90LmgiCiAjaW5jbHVkZSAiQWlyVG1wLmgiCisjaW5jbHVk
ZSAiQjNJbmRleE1hcC5oIgogI2luY2x1ZGUgIkIzU3BhcnNlQ29sbGVjdGlvbi5oIgogI2luY2x1
ZGUgIlJlZ2lzdGVyQXRPZmZzZXRMaXN0LmgiCiAjaW5jbHVkZSAiU3RhY2tBbGlnbm1lbnQuaCIK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGUuY3BwCShy
ZXZpc2lvbiAyMDEzNTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVy
YXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDcsMTAgKzQ3LDEyIEBACiAjaW5jbHVkZSAiQWly
VmFsaWRhdGUuaCIKICNpbmNsdWRlICJCM0NvbW1vbi5oIgogI2luY2x1ZGUgIkIzSW5kZXhNYXAu
aCIKKyNpbmNsdWRlICJCM0xlYXBPZkZhaXRoVmFsdWUuaCIKICNpbmNsdWRlICJCM1Byb2NlZHVy
ZS5oIgogI2luY2x1ZGUgIkIzVGltaW5nU2NvcGUuaCIKICNpbmNsdWRlICJDQ2FsbEhlbHBlcnMu
aCIKICNpbmNsdWRlICJEaXNhbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UuaCIKKyNpbmNs
dWRlICJMaW5rQnVmZmVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeyBuYW1l
c3BhY2UgQWlyIHsKIApAQCAtMTgzLDcgKzE4NSw4IEBAIHZvaWQgZ2VuZXJhdGUoQ29kZSYgY29k
ZSwgQ0NhbGxIZWxwZXJzJiAKIAogICAgIGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiBjb2RlKSB7
CiAgICAgICAgIGJsb2NrSnVtcHNbYmxvY2tdLmxpbmsoJmppdCk7Ci0gICAgICAgIGJsb2NrTGFi
ZWxzW2Jsb2NrXSA9IGppdC5sYWJlbCgpOworICAgICAgICBDQ2FsbEhlbHBlcnM6OkxhYmVsIGxh
YmVsID0gaml0LmxhYmVsKCk7CisgICAgICAgIGJsb2NrTGFiZWxzW2Jsb2NrXSA9IGxhYmVsOwog
ICAgICAgICBBU1NFUlQoYmxvY2stPnNpemUoKSA+PSAxKTsKICAgICAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IGJsb2NrLT5zaXplKCkgLSAxOyArK2kpIHsKICAgICAgICAgICAgIEluc3Qm
IGluc3QgPSBibG9jay0+YXQoaSk7CkBAIC0yMTUsMjYgKzIxOCw1NCBAQCB2b2lkIGdlbmVyYXRl
KENvZGUmIGNvZGUsIENDYWxsSGVscGVycyYgCiAgICAgICAgICAgICBhZGRJdGVtKGJsb2NrLT5s
YXN0KCkpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KLQorICAgICAgICAKICAg
ICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGp1bXAgPSBibG9jay0+bGFzdCgpLmdlbmVyYXRlKGpp
dCwgY29udGV4dCk7Ci0gICAgICAgIHN3aXRjaCAoYmxvY2stPm51bVN1Y2Nlc3NvcnMoKSkgewot
ICAgICAgICBjYXNlIDA6Ci0gICAgICAgICAgICBBU1NFUlQoIWp1bXAuaXNTZXQoKSk7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAxOgotICAgICAgICAgICAgbGluayhqdW1wLCBi
bG9jay0+c3VjY2Vzc29yQmxvY2soMCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNh
c2UgMjoKLSAgICAgICAgICAgIGxpbmsoanVtcCwgYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDApKTsK
LSAgICAgICAgICAgIGlmIChibG9jay0+c3VjY2Vzc29yQmxvY2soMSkgIT0gY29kZS5maW5kTmV4
dEJsb2NrKGJsb2NrKSkKLSAgICAgICAgICAgICAgICBsaW5rKGppdC5qdW1wKCksIGJsb2NrLT5z
dWNjZXNzb3JCbG9jaygxKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgZGVmYXVsdDoK
LSAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgLy8gVGhlIGp1bXAgd29uJ3QgYmUgc2V0IGZvciBMZWFwT2ZGYWl0aCBi
ZWNhdXNlIGl0IGxldHMgaXRzIGZhaXRoIGluIHRoZSBhZGRyZXNzIG9wZXJhbmQKKyAgICAgICAg
Ly8gZ3VpZGUgd2hlcmUgaXQganVtcHMuIEl0IHdvbid0IGJlIHNldCBmb3IgT29wcyBiZWNhdXNl
IHRoZW4gaXQgd29uJ3QgaGF2ZSBhbnkgc3VjY2Vzc29ycy4KKyAgICAgICAgaWYgKGp1bXAuaXNT
ZXQoKSkgeworICAgICAgICAgICAgc3dpdGNoIChibG9jay0+bnVtU3VjY2Vzc29ycygpKSB7Cisg
ICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgbGluayhqdW1wLCBibG9jay0+c3Vj
Y2Vzc29yQmxvY2soMCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSAyOgorICAgICAgICAgICAgICAgIGxpbmsoanVtcCwgYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDAp
KTsKKyAgICAgICAgICAgICAgICBpZiAoYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDEpICE9IGNvZGUu
ZmluZE5leHRCbG9jayhibG9jaykpCisgICAgICAgICAgICAgICAgICAgIGxpbmsoaml0Lmp1bXAo
KSwgYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDEpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KICAgICAgICAg
fQogICAgICAgICBhZGRJdGVtKGJsb2NrLT5sYXN0KCkpOwogICAgIH0KKyAgICAKKyAgICAvLyBU
YWtlIGNhcmUgb2YgTGVhcE9mRmFpdGguIFdlIGRvIHRoaXMgbGFzdCBiZWNhdXNlIGl0IHJlbGll
cyBvbiBrbm93aW5nIHdoZXJlIGFsbCBvZiB0aGUgYmFzaWMKKyAgICAvLyBibG9jayBsYW5kZWQu
CisgICAgZm9yIChCYXNpY0Jsb2NrKiBibG9jayA6IGNvZGUpIHsKKyAgICAgICAgaWYgKGJsb2Nr
LT5sYXN0KCkub3Bjb2RlICE9IExlYXBPZkZhaXRoKQorICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgIAorICAgICAgICBMZWFwT2ZGYWl0aFZhbHVlKiBsZWFwT2ZGYWl0aCA9IGJsb2NrLT5s
YXN0KCkub3JpZ2luLT5hczxMZWFwT2ZGYWl0aFZhbHVlPigpOworICAgICAgICBSRUxFQVNFX0FT
U0VSVChsZWFwT2ZGYWl0aC0+bnVtU3VjY2Vzc29ycygpID09IGJsb2NrLT5udW1TdWNjZXNzb3Jz
KCkpOworICAgICAgICAKKyAgICAgICAgUmVmUHRyPFNoYXJlZFRhc2s8TGVhcE9mRmFpdGhWYWx1
ZTo6Q2FsbGJhY2tGdW5jdGlvblR5cGU+PiB0YXNrID0gbGVhcE9mRmFpdGgtPmNhbGxiYWNrVGFz
aygpOworICAgICAgICBpZiAoIXRhc2spCisgICAgICAgICAgICBjb250aW51ZTsgLy8gVGhpcyB3
b3VsZCBiZSB3ZWlyZCwgYnV0IHdlIGFsbG93IGl0LgorICAgICAgICAKKyAgICAgICAgVmVjdG9y
PENDYWxsSGVscGVyczo6TGFiZWw+IGxhYmVsczsKKyAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBz
dWNjZXNzb3IgOiBibG9jay0+c3VjY2Vzc29yQmxvY2tzKCkpCisgICAgICAgICAgICBsYWJlbHMu
YXBwZW5kKGJsb2NrTGFiZWxzW3N1Y2Nlc3Nvcl0pOworICAgICAgICAKKyAgICAgICAgaml0LmFk
ZExpbmtUYXNrKAorICAgICAgICAgICAgWz1dIChMaW5rQnVmZmVyJiBsaW5rQnVmZmVyKSB7Cisg
ICAgICAgICAgICAgICAgVmVjdG9yPE1hY3JvQXNzZW1ibGVyQ29kZVB0cj4gcG9pbnRlcnM7Cisg
ICAgICAgICAgICAgICAgZm9yIChDQ2FsbEhlbHBlcnM6OkxhYmVsIGxhYmVsIDogbGFiZWxzKQor
ICAgICAgICAgICAgICAgICAgICBwb2ludGVycy5hcHBlbmQobGlua0J1ZmZlci5sb2NhdGlvbk9m
KGxhYmVsKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgdGFzay0+cnVuKHBv
aW50ZXJzKTsKKyAgICAgICAgICAgIH0pOworICAgIH0KIAogICAgIHBjVG9PcmlnaW5NYXAuYXBw
ZW5kSXRlbShqaXQubGFiZWwoKSwgT3JpZ2luKCkpOwogICAgIC8vIEZJWE1FOiBNYWtlIGxhdGUg
cGF0aHMgaGF2ZSBPcmlnaW5zOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTUzNjg5CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckluc3QuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdC5jcHAJ
KHJldmlzaW9uIDIwMTM1MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5z
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDYgKzQ1LDExIEBAIGJvb2wgSW5zdDo6aGFzQXJn
RWZmZWN0cygpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorYm9vbCBJbnN0Ojppc0Nsb25lYWJs
ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICFvcmlnaW4gfHwgb3JpZ2luLT5pc0Nsb25lYWJsZSgp
OworfQorCiB2b2lkIEluc3Q6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHsKICAgICBv
dXQucHJpbnQob3Bjb2RlLCAiICIsIGxpc3REdW1wKGFyZ3MpKTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvQWlySW5zdC5oCShyZXZpc2lvbiAyMDEzNTApCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0Fpckluc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMTg3LDYgKzE4
NywxMCBAQCBwdWJsaWM6CiAgICAgLy8gICAgIEFkZCBUbXAxLCBUbXAyLCBUbXAzCiAgICAgLy8g
cmV0dXJucyAyIGlmIDAgYW5kIDEgYmVuZWZpdCBmcm9tIGFsaWFzaW5nIHRvIFRtcDMuCiAgICAg
T3B0aW9uYWw8dW5zaWduZWQ+IHNob3VsZFRyeUFsaWFzaW5nRGVmKCk7CisgICAgCisgICAgLy8g
U29tZSBpbnN0dWN0aW9ucyB3aWxsIHJlZnVzZSB0byBhbGxvdyBjbG9uaW5nLiBJZiB0aGlzIHJl
dHVybnMgZmFsc2UsIHlvdSBtdXN0IG1ha2Ugc3VyZSB0aGF0CisgICAgLy8geW91IG5ldmVyIGlu
dHJvZHVjZSBjb3BpZXMgb2YgdGhlIGluc3RydWN0aW9uLgorICAgIGJvb2wgaXNDbG9uZWFibGUo
KTsKIAogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0OwogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMJKHJldmlzaW9uIDIw
MTM1MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMJ
KHdvcmtpbmcgY29weSkKQEAgLTgzNSw2ICs4MzUsMTQgQEAgTW92ZURvdWJsZUNvbmRpdGlvbmFs
bHlGbG9hdCBVOkc6MzIsIFU6RgogCiBKdW1wIC9icmFuY2gKIAorIyBUaGlzIG1hc3F1ZXJhZGVz
IGFzIGEgbm9uLWJyYW5jaCB0ZXJtaW5hbCBiZWNhdXNlIGl0IGRvZXNuJ3QgbmVlZCB0aGUgdHJh
ZGl0aW9uYWwgc29ydCBvZiBsaW5raW5nLgorIyAiQnJhbmNoIiBpbiB0aGlzIGNvbnRleHQganVz
dCBtZWFucyB0aGF0IGl0J3MgYSB0ZXJtaW5hbCB0aGF0IHJldHVybnMgYSBKdW1wIHRoYXQgbmVl
ZHMgdG8gYmUKKyMgbGlua2VkLiBJbnN0ZWFkLCBBaXI6OmdlbmVyYXRlKCkgaGFzIGEgc3BlY2lh
bC1jYXNlIGZvciBMZWFwT2ZGYWl0aC4KK0xlYXBPZkZhaXRoIFU6RzpQdHIgL3Rlcm1pbmFsCisg
ICAgVG1wIGFzIGp1bXAKKyAgICB4ODY6IEFkZHIgYXMganVtcAorICAgIHg4NjogSW5kZXggYXMg
anVtcAorCiBSZXQzMiBVOkc6MzIgL3JldHVybgogICAgIFRtcAogCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpclZhbGlkYXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclZhbGlkYXRlLmNwcAkocmV2aXNpb24gMjAxMzUwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJWYWxpZGF0ZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTg5LDYgKzg5LDE2IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgICAg
IFZBTElEQVRFKCZhcmcgPj0gJmluc3QuYXJnc1swXSwgKCJBdCAiLCBhcmcsICIgaW4gIiwgaW5z
dCwgIiBpbiAiLCAqYmxvY2spKTsKICAgICAgICAgICAgICAgICAgICAgICAgIFZBTElEQVRFKCZh
cmcgPD0gJmluc3QuYXJncy5sYXN0KCksICgiQXQgIiwgYXJnLCAiIGluICIsIGluc3QsICIgaW4g
IiwgKmJsb2NrKSk7CiAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIAor
ICAgICAgICAgICAgICAgIC8vIFNvbWUgaW5zdHJ1Y3Rpb25zIGhhdmUgc29tZSBhZGRpdGlvbmFs
IHJ1bGVzLgorICAgICAgICAgICAgICAgIHN3aXRjaCAoaW5zdC5vcGNvZGUpIHsKKyAgICAgICAg
ICAgICAgICBjYXNlIExlYXBPZkZhaXRoOgorICAgICAgICAgICAgICAgICAgICBmb3IgKEJhc2lj
QmxvY2sqIHN1Y2Nlc3NvciA6IGJsb2NrLT5zdWNjZXNzb3JCbG9ja3MoKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIFZBTElEQVRFKHN1Y2Nlc3Nvci0+aGFzQ2FsbGJhY2tzKCksICgiQXQgIiwg
KmJsb2NrLCAiLT4iLCAqc3VjY2Vzc29yKSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGZvciAoQmFzaWNCbG9j
ayogc3VjY2Vzc29yIDogYmxvY2stPnN1Y2Nlc3NvckJsb2NrcygpKQogICAgICAgICAgICAgICAg
IFZBTElEQVRFKHZhbGlkQmxvY2tzLmNvbnRhaW5zKHN1Y2Nlc3NvciksICgiSW4gIiwgKmJsb2Nr
KSk7CkluZGV4OiBXZWJzaXRlcy93ZWJraXQub3JnL2RvY3MvYjMvaW50ZXJtZWRpYXRlLXJlcHJl
c2VudGF0aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvd2Via2l0Lm9yZy9kb2NzL2Iz
L2ludGVybWVkaWF0ZS1yZXByZXNlbnRhdGlvbi5odG1sCShyZXZpc2lvbiAyMDEzNTApCisrKyBX
ZWJzaXRlcy93ZWJraXQub3JnL2RvY3MvYjMvaW50ZXJtZWRpYXRlLXJlcHJlc2VudGF0aW9uLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTQxMiwxMSArNDEyLDEyIEBACiAgICAgICAgIHRoZSBDQ2Fs
bFZhbHVlIGNsYXNzLjwvZGQ+CiAKICAgICAgIDxkdD5UMSBQYXRjaHBvaW50KFtUMiwgW1QzLCAu
Li5dXSk8L2R0PgotICAgICAgPGRkPkEgUGF0Y2hwb2ludCBpcyBhIGN1c3RvbWl6YWJsZSB2YWx1
ZS4gIFBhdGNocG9pbnRzIHRha2UgemVybyBvciBtb3JlIHZhbHVlcyBvZiBhbnkKLSAgICAgICAg
dHlwZSBhbmQgcmV0dXJuIGFueSB0eXBlLiAgQSBQYXRjaHBvaW50J3MgYmVoYXZpb3IgaXMgZGV0
ZXJtaW5lZCBieSB0aGUgZ2VuZXJhdG9yCi0gICAgICAgIG9iamVjdC4gIFRoZSBnZW5lcmF0b3Ig
aXMgYSBDKysgbGFtYmRhIHRoYXQgZ2V0cyBjYWxsZWQgZHVyaW5nIGNvZGUgZ2VuZXJhdGlvbi4g
IEl0IGdldHMKLSAgICAgICAgcGFzc2VkIGFuIGFzc2VtYmxlciBpbnN0YW5jZSAoc3BlY2lmaWNh
bGx5LCBDQ2FsbEhlbHBlcnMmKSBhbmQgYW4gb2JqZWN0IGRlc2NyaWJpbmcKLSAgICAgICAgd2hl
cmUgdG8gZmluZCBhbGwgb2YgdGhlIGlucHV0IHZhbHVlcyBhbmQgd2hlcmUgdG8gcHV0IHRoZSBy
ZXN1bHQuICBIZXJlJ3MgYW4gZXhhbXBsZToKKyAgICAgIDxkZD4KKyAgICAgICAgPHA+QSBQYXRj
aHBvaW50IGlzIGEgY3VzdG9taXphYmxlIHZhbHVlLiAgUGF0Y2hwb2ludHMgdGFrZSB6ZXJvIG9y
IG1vcmUgdmFsdWVzIG9mIGFueQorICAgICAgICAgIHR5cGUgYW5kIHJldHVybiBhbnkgdHlwZS4g
IEEgUGF0Y2hwb2ludCdzIGJlaGF2aW9yIGlzIGRldGVybWluZWQgYnkgdGhlIGdlbmVyYXRvcgor
ICAgICAgICAgIG9iamVjdC4gIFRoZSBnZW5lcmF0b3IgaXMgYSBDKysgbGFtYmRhIHRoYXQgZ2V0
cyBjYWxsZWQgZHVyaW5nIGNvZGUgZ2VuZXJhdGlvbi4gIEl0IGdldHMKKyAgICAgICAgICBwYXNz
ZWQgYW4gYXNzZW1ibGVyIGluc3RhbmNlIChzcGVjaWZpY2FsbHksIENDYWxsSGVscGVycyYpIGFu
ZCBhbiBvYmplY3QgZGVzY3JpYmluZworICAgICAgICAgIHdoZXJlIHRvIGZpbmQgYWxsIG9mIHRo
ZSBpbnB1dCB2YWx1ZXMgYW5kIHdoZXJlIHRvIHB1dCB0aGUgcmVzdWx0LiAgSGVyZSdzIGFuIGV4
YW1wbGU6PC9wPgogIAogICAgICAgICA8cHJlPjxjb2RlPlBhdGNocG9pbnRWYWx1ZSogcGF0Y2hw
b2ludCA9IGJsb2NrLT5hcHBlbmROZXcmbHQ7UGF0Y2hwb2ludFZhbHVlJmd0Oyhwcm9jLCBJbnQz
MiwgT3JpZ2luKCkpOwogcGF0Y2hwb2ludC0+YXBwZW5kKENvbnN0cmFpbmVkVmFsdWUoYXJnMSwg
VmFsdWVSZXA6OlNvbWVSZWdpc3RlcikpOwpAQCAtNTI2LDYgKzUyNywyMiBAQCBwYXRjaHBvaW50
LT5zZXRHZW5lcmF0b3IoCiAgICAgICAgIGFsc28gY29udGFpbnMgYSBmYWxsLXRocm91Z2ggdGFy
Z2V0IGluIGNhc2UgdGhlIGNoaWxkIGhhcyBhIHZhbHVlIHRoYXQgd2Fzbid0IG1lbnRpb25lZAog
ICAgICAgICBpbiB0aGUgY2FzZXMgbGlzdC4gIE11c3QgdXNlIHRoZSBTd2l0Y2hWYWx1ZSBjbGFz
cy4gIE11c3QgYXBwZWFyIGF0IHRoZSBlbmQgb2YgdGhlIGJhc2ljCiAgICAgICAgIGJsb2NrLjwv
ZGQ+CisgICAgICAKKyAgICAgIDxkdD5Wb2lkIExlYXBPZkZhaXRoKEludFB0ciwgYmxvY2tzLi4u
KTwvZHQ+CisgICAgICA8ZGQ+CisgICAgICAgIDxwPkp1bXBzIHRvIHRoZSBnaXZlbiBhZGRyZXNz
LiBUaGUgY29tcGlsZXIgd2lsbCBhc3N1bWUgdGhhdCB0aGlzIGp1bXBzIHRvIG9uZSBvZiB0aGUg
Z2l2ZW4KKyAgICAgICAgICBibG9ja3MuIFRoZSBjb21waWxlciBtYWtlcyBubyBhdHRlbXB0IHRv
IHByb3ZlIG9yIHZhbGlkYXRlIHRoYXQgdGhlIHBhc3NlZCBqdW1wIGFkZHJlc3MgaXMKKyAgICAg
ICAgICBhY3R1YWxseSB0aGUgYWRkcmVzcyBvZiBhbnkgb2YgdGhvc2UgYmxvY2tzLiBOb25zZW5z
aWNhbCB0aGluZ3Mgd2lsbCBoYXBwZW4gaWYgdGhlIHBhc3NlZAorICAgICAgICAgIGFkZHJlc3Mg
aXMgbm90IHRoZSBhZGRyZXNzIG9mIG9uZSBvZiB0aGUgYmxvY2tzIGluIHRoZSBzdWNjZXNzb3Ig
bGlzdC4gWW91IGNhbiBhcnJhbmdlIHRvIGdldAorICAgICAgICAgIHRoZSBhZGRyZXNzZXMgb2Yg
YmxvY2tzIHVzaW5nIHRoZSBCYXNpY0Jsb2NrIEFQSS4gVGhpcyBpcyB1c2VkIGludGVybmFsbHkg
Zm9yIGxvd2VyaW5nCisgICAgICAgICAgU3dpdGNoIG9wY29kZXMuIFlvdSBjYW4gdXNlIGl0IGRp
cmVjdGx5IGZvciBpbXBsZW1lbnRpbmcgdGhpbmdzIGxpa2UgdGhyZWFkZWQKKyAgICAgICAgICBp
bnRlcnByZXRlcnMuPC9wPgorICAgICAgCisgICAgICAgIDxwPkEgY2xvc2VseSByZWxhdGVkIGZl
YXR1cmUgaXMgQmFzaWNCbG9jayBjYWxsYmFja3MuIElmIHlvdSByZWdpc3RlciBhIGNhbGxiYWNr
IHdpdGggYQorICAgICAgICAgIEJhc2ljQmxvY2ssIHRoZW4gdGhlIGNvbXBpbGVyIHdpbGwgdGVs
bCB5b3Ugd2hlcmUgaW4gbWVtb3J5IHRoZSBCYXNpY0Jsb2NrIGVuZGVkIHVwLiBXZQorICAgICAg
ICAgIGN1cnJlbnRseSByZXF1aXJlIHRoYXQgdGhlIHN1Y2Nlc3NvcnMgb2YgYSBMZWFwT2ZGYWl0
aCBoYXZlIGNhbGxiYWNrcyBzZXQgYW5kIGl0IHdvdWxkIGJlCisgICAgICAgICAgY29ycmVjdCB0
byBkcm9wIHRoZSBjYWxsYmFja3Mgb2YgYW55IGJsb2NrIHRoYXQgZG9lc24ndCBoYXZlIGEgTGVh
cE9mRmFpdGggcHJlZGVjZXNzb3IuPC9wPgorICAgICAgPC9kZD4KIAogICAgICAgPGR0PlZvaWQg
UmV0dXJuKFQpPC9kdD4KICAgICAgIDxkZD5Xb3JrcyBmb3IgYW55IHR5cGUgZXhjZXB0IFZvaWQu
ICBSZXR1cm5zIHRoZSBnaXZlbiB2YWx1ZSBhbmQgdGVybWluYXRlcyB0aGUgcHJvY2VkdXJlLgpJ
bmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2gtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLWV4cGVjdGVk
LnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3MvYmlnc3dpdGNo
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJv
d24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCklu
ZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLmh0bWwJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VO
Ij4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRl
c3RzL2JpZ3N3aXRjaC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9iaWdzd2l0Y2guanMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvYmlnc3dpdGNoLmpzCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvYmlnc3dpdGNo
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjExIEBACitmdW5jdGlvbiBmb28obykgewor
ICAgIHZhciByZXN1bHQgPSAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgKytpKSB7
CisgICAgICAgIHZhciB2YWx1ZSA9IGkgJiA2MzsKKyAgICAgICAgc3dpdGNoICh2YWx1ZSkgewor
ICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICByZXN1bHQgKz0gby5hOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8u
YzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICByZXN1
bHQgKz0gby5kOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDoKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1Ogor
ICAgICAgICAgICAgcmVzdWx0ICs9IG8uZjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIDY6CisgICAgICAgICAgICByZXN1bHQgKz0gby5nOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgNzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSA4OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDk6CisgICAgICAgICAgICByZXN1bHQgKz0gby5q
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTA6CisgICAgICAgICAgICByZXN1
bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTE6CisgICAgICAg
ICAgICByZXN1bHQgKz0gby5hOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTI6
CisgICAgICAgICAgICByZXN1bHQgKz0gby5iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgMTM6CisgICAgICAgICAgICByZXN1bHQgKz0gby5jOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgMTQ6CisgICAgICAgICAgICByZXN1bHQgKz0gby5kOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTU6CisgICAgICAgICAgICByZXN1bHQgKz0gby5lOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTY6CisgICAgICAgICAgICByZXN1bHQg
Kz0gby5mOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTc6CisgICAgICAgICAg
ICByZXN1bHQgKz0gby5nOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTg6Cisg
ICAgICAgICAgICByZXN1bHQgKz0gby5oOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgMTk6CisgICAgICAgICAgICByZXN1bHQgKz0gby5pOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgMjA6CisgICAgICAgICAgICByZXN1bHQgKz0gby5qOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgMjE6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjI6CisgICAgICAgICAgICByZXN1bHQgKz0g
by5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjM6CisgICAgICAgICAgICBy
ZXN1bHQgKz0gby5hOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjQ6CisgICAg
ICAgICAgICByZXN1bHQgKz0gby5iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
MjU6CisgICAgICAgICAgICByZXN1bHQgKz0gby5jOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgMjY6CisgICAgICAgICAgICByZXN1bHQgKz0gby5kOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgMjc6CisgICAgICAgICAgICByZXN1bHQgKz0gby5lOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjg6CisgICAgICAgICAgICByZXN1bHQgKz0gby5m
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjk6CisgICAgICAgICAgICByZXN1
bHQgKz0gby5nOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzA6CisgICAgICAg
ICAgICByZXN1bHQgKz0gby5oOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzE6
CisgICAgICAgICAgICByZXN1bHQgKz0gby5pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgMzI6CisgICAgICAgICAgICByZXN1bHQgKz0gby5qOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgMzM6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzQ6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzU6CisgICAgICAgICAgICByZXN1bHQg
Kz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzY6CisgICAgICAgICAg
ICByZXN1bHQgKz0gby5hOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzc6Cisg
ICAgICAgICAgICByZXN1bHQgKz0gby5iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgMzg6CisgICAgICAgICAgICByZXN1bHQgKz0gby5jOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgMzk6CisgICAgICAgICAgICByZXN1bHQgKz0gby5kOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgNDA6CisgICAgICAgICAgICByZXN1bHQgKz0gby5lOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDE6CisgICAgICAgICAgICByZXN1bHQgKz0g
by5mOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDI6CisgICAgICAgICAgICBy
ZXN1bHQgKz0gby5nOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDM6CisgICAg
ICAgICAgICByZXN1bHQgKz0gby5oOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
NDQ6CisgICAgICAgICAgICByZXN1bHQgKz0gby5pOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgNDU6CisgICAgICAgICAgICByZXN1bHQgKz0gby5qOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgNDY6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDc6CisgICAgICAgICAgICByZXN1bHQgKz0gby5p
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDg6CisgICAgICAgICAgICByZXN1
bHQgKz0gby5qOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDk6CisgICAgICAg
ICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTA6
CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgNTE6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgNTI6CisgICAgICAgICAgICByZXN1bHQgKz0gby5hOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTM6CisgICAgICAgICAgICByZXN1bHQgKz0gby5iOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTQ6CisgICAgICAgICAgICByZXN1bHQg
Kz0gby5jOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTU6CisgICAgICAgICAg
ICByZXN1bHQgKz0gby5kOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTY6Cisg
ICAgICAgICAgICByZXN1bHQgKz0gby5lOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgNTc6CisgICAgICAgICAgICByZXN1bHQgKz0gby5mOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgNTg6CisgICAgICAgICAgICByZXN1bHQgKz0gby5nOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgNTk6CisgICAgICAgICAgICByZXN1bHQgKz0gby5oOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNjA6CisgICAgICAgICAgICByZXN1bHQgKz0g
by5pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNjE6CisgICAgICAgICAgICBy
ZXN1bHQgKz0gby5qOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNjI6CisgICAg
ICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICByZXN1bHQgKz0gby56OworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworKGZ1bmN0aW9uKCkgeworICAg
IHZhciBvID0ge2E6MSwgYjoyLCBjOjMsIGQ6NCwgZTo1LCBmOjYsIGc6NywgaDo4LCBpOjksIGo6
MTAsIGs6MTEsIHo6MTAwfTsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICBmb3IgKHZhciBpID0g
MDsgaSA8IDEwMDAwOyArK2kpCisgICAgICAgIHJlc3VsdCArPSBmb28obyk7CisgICAgaWYgKHJl
c3VsdCAhPSA3OTY2MDAwMCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsg
cmVzdWx0OworfSkoKTsKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279961</attachid>
            <date>2016-05-27 08:45:05 -0700</date>
            <delta_ts>2016-05-27 08:54:26 -0700</delta_ts>
            <desc>I don&apos;t even know if it compiles</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>55840</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMDEzNTApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkod29ya2luZyBjb3B5KQpAQCAtNDE5Niw2ICs0MTk2LDggQEAKIAkJREM2MDVCNUExQ0Uy
NkU5ODAwNTkzNzE4IC8qIFByb2ZpbGVyRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gUHJvZmlsZXJFdmVudC5oOyBwYXRoID0gcHJvZmlsZXIvUHJvZmlsZXJFdmVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzYwNUI1QjFDRTI2RTk4MDA1OTM3MTgg
LyogUHJvZmlsZXJVSUQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
UHJvZmlsZXJVSUQuY3BwOyBwYXRoID0gcHJvZmlsZXIvUHJvZmlsZXJVSUQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlEQzYwNUI1QzFDRTI2RTk4MDA1OTM3MTggLyogUHJvZmls
ZXJVSUQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUHJvZmlsZXJVSUQuaDsg
cGF0aCA9IHByb2ZpbGVyL1Byb2ZpbGVyVUlELmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCURDNjlBQTYwMUNGNzVERTEwMEM2MjcyRiAvKiBCM0xlYXBPZkZhaXRoVmFsdWUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQjNMZWFwT2ZGYWl0aFZhbHVlLmNw
cDsgcGF0aCA9IGIzL0IzTGVhcE9mRmFpdGhWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCURDNjlBQTYxMUNGNzVERTEwMEM2MjcyRiAvKiBCM0xlYXBPZkZhaXRoVmFsdWUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQjNMZWFwT2ZGYWl0aFZhbHVlLmg7
IHBhdGggPSBiMy9CM0xlYXBPZkZhaXRoVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJREM3OTk3ODExQ0RFOUY5RTAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGFnUmVnaXN0ZXJzTW9kZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDNzk5NzgyMUNERTlGOUUwMDRENEEwOSAv
KiBUYWdSZWdpc3RlcnNNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRh
Z1JlZ2lzdGVyc01vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRENFRTIyMDYx
Q0VCOTg5MDAwMEMyMzk2IC8qIERGR0JhY2t3YXJkc0NGRy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBERkdCYWNrd2FyZHNDRkcuaDsgcGF0aCA9IGRmZy9ERkdCYWNrd2FyZHND
RkcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ3MTAsNiArNDcxMiw4IEBACiAJ
CQkJMEZFQzg1QjQxQkUxNDYyRjAwODBGRjc0IC8qIEIzSW5zZXJ0aW9uU2V0LmNwcCAqLywKIAkJ
CQkwRkVDODVCNTFCRTE0NjJGMDA4MEZGNzQgLyogQjNJbnNlcnRpb25TZXQuaCAqLywKIAkJCQkw
RkVDODVCNjFCRTE0NjJGMDA4MEZGNzQgLyogQjNJbnNlcnRpb25TZXRJbmxpbmVzLmggKi8sCisJ
CQkJREM2OUFBNjAxQ0Y3NURFMTAwQzYyNzJGIC8qIEIzTGVhcE9mRmFpdGhWYWx1ZS5jcHAgKi8s
CisJCQkJREM2OUFBNjExQ0Y3NURFMTAwQzYyNzJGIC8qIEIzTGVhcE9mRmFpdGhWYWx1ZS5oICov
LAogCQkJCTQzNkU1NDUxMUM0NjhFNUYwMEI1QUY3MyAvKiBCM0xlZ2FsaXplTWVtb3J5T2Zmc2V0
cy5jcHAgKi8sCiAJCQkJNDM2RTU0NTIxQzQ2OEU1RjAwQjVBRjczIC8qIEIzTGVnYWxpemVNZW1v
cnlPZmZzZXRzLmggKi8sCiAJCQkJMEYzMzhFMTkxQkYyODZFQTAwMTNDODhGIC8qIEIzTG93ZXJN
YWNyb3MuY3BwICovLApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlclg4NkNvbW1vbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaAkocmV2aXNpb24gMjAxMzUwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1v
bi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMjYyLDYgKzIyNjIsMTIgQEAgcHVibGljOgogICAgICAg
ICBtX2Fzc2VtYmxlci5qbXBfbShhZGRyZXNzLm9mZnNldCwgYWRkcmVzcy5iYXNlKTsKICAgICB9
CiAKKyAgICAvLyBBZGRyZXNzIGlzIGEgbWVtb3J5IGxvY2F0aW9uIGNvbnRhaW5pbmcgdGhlIGFk
ZHJlc3MgdG8ganVtcCB0bworICAgIHZvaWQganVtcChCYXNlSW5kZXggYWRkcmVzcykKKyAgICB7
CisgICAgICAgIG1fYXNzZW1ibGVyLmptcF9tKGFkZHJlc3Mub2Zmc2V0LCBhZGRyZXNzLmJhc2Us
IGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUpOworICAgIH0KKwogCiAgICAgLy8gQXJpdGht
ZXRpYyBjb250cm9sIGZsb3cgb3BlcmF0aW9uczoKICAgICAvLwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oCShyZXZpc2lvbiAyMDEzNTAp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xOTgzLDYgKzE5ODMsMTEgQEAgcHVibGljOgogICAgICAgICBtX2Zvcm1h
dHRlci5vbmVCeXRlT3AoT1BfR1JPVVA1X0V2LCBHUk9VUDVfT1BfSk1QTiwgYmFzZSwgb2Zmc2V0
KTsKICAgICB9CiAgICAgCisgICAgdm9pZCBqbXBfbShpbnQgb2Zmc2V0LCBSZWdpc3RlcklEIGJh
c2UsIFJlZ2lzdGVySUQgaW5kZXgsIGludCBzY2FsZSkKKyAgICB7CisgICAgICAgIG1fZm9ybWF0
dGVyLm9uZUJ5dGVPcChPUF9HUk9VUDVfRXYsIEdST1VQNV9PUF9KTVBOLCBiYXNlLCBpbmRleCwg
c2NhbGUsIG9mZnNldCk7CisgICAgfQorICAgIAogI2lmICFDUFUoWDg2XzY0KQogICAgIHZvaWQg
am1wX20oY29uc3Qgdm9pZCogYWRkcmVzcykKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNCYXNpY0Jsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNCYXNpY0Jsb2NrLmNwcAkocmV2aXNpb24gMjAxMzUwKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwOSw2
ICsxMDksMTUgQEAgdm9pZCBCYXNpY0Jsb2NrOjp1cGRhdGVQcmVkZWNlc3NvcnNBZnRlcgogICAg
IEIzOjp1cGRhdGVQcmVkZWNlc3NvcnNBZnRlcih0aGlzKTsKIH0KIAorYm9vbCBCYXNpY0Jsb2Nr
Ojppc0Nsb25lYWJsZSgpIGNvbnN0Cit7CisgICAgZm9yIChWYWx1ZSogdmFsdWUgOiAqdGhpcykg
eworICAgICAgICBpZiAoIXZhbHVlLT5pc0Nsb25lYWJsZSgpKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBCYXNpY0Jsb2NrOjpk
dW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiB7CiAgICAgb3V0LnByaW50KGR1bXBQcmVmaXgs
IG1faW5kZXgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2suaAko
cmV2aXNpb24gMjAxMzUwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9j
ay5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTUsNiArMTE1LDggQEAgcHVibGljOgogICAgIHZvaWQg
dXBkYXRlUHJlZGVjZXNzb3JzQWZ0ZXIoKTsKIAogICAgIGRvdWJsZSBmcmVxdWVuY3koKSBjb25z
dCB7IHJldHVybiBtX2ZyZXF1ZW5jeTsgfQorICAgIAorICAgIGJvb2wgaXNDbG9uZWFibGUoKSBj
b25zdDsKIAogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0OwogICAgIHZvaWQgZGVl
cER1bXAoY29uc3QgUHJvY2VkdXJlJiwgUHJpbnRTdHJlYW0mKSBjb25zdDsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jsb2NrSW5zZXJ0aW9uU2V0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCbG9ja0luc2VydGlvblNldC5jcHAJKHJldmlz
aW9uIDIwMTM1MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jsb2NrSW5zZXJ0aW9u
U2V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTgsNiArOTgsMTMgQEAgQmFzaWNCbG9jayogQmxv
Y2tJbnNlcnRpb25TZXQ6OnNwbGl0Rm9ydwogICAgIGJsb2NrLT5hZGRQcmVkZWNlc3NvcihyZXN1
bHQpOwogICAgIGZvciAoQmFzaWNCbG9jayogcHJlZGVjZXNzb3IgOiByZXN1bHQtPnByZWRlY2Vz
c29ycygpKQogICAgICAgICBwcmVkZWNlc3Nvci0+cmVwbGFjZVN1Y2Nlc3NvcihibG9jaywgcmVz
dWx0KTsKKyAgICAKKyAgICAvLyBDYWxsYmFja3MgYXJlIHNvcnQgb2YgbGlrZSBwcmVkZWNlc3Nv
cnMuIFdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgJ3Jlc3VsdCcgdGFrZXMgYWxsIG9mCisgICAg
Ly8gJ2Jsb2NrJydzIGNhbGxiYWNrcy4KKyAgICBibG9jay0+dGFrZUVhY2hDYWxsYmFjaygKKyAg
ICAgICAgWyZdIChSZWZQdHI8U2hhcmVkVGFzazx2b2lkKE1hY3JvQXNzZW1ibGVyQ29kZVB0cik+
PiB0YXNrKSB7CisgICAgICAgICAgICByZXN1bHQtPmFkZENhbGxiYWNrVGFzayh0YXNrKTsKKyAg
ICAgICAgfSk7CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzQ29udHJvbFZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzQ29udHJvbFZhbHVlLmgJKHJldmlzaW9uIDIwMTM1MCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM0NvbnRyb2xWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Niw5
ICs0NiwxMCBAQCBwdWJsaWM6CiAgICAgICAgIGNhc2UgUmV0dXJuOgogICAgICAgICBjYXNlIE9v
cHM6CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgY2FzZSBTd2l0Y2g6IAotICAg
ICAgICAgICAgLy8gVGhpcyBpcyBoZXJlIGJlY2F1c2UgU3dpdGNoVmFsdWUgaXMgYSBzdWJjbGFz
cyBvZiBDb250cm9sVmFsdWUsIHNvIHdlIHdhbnQKLSAgICAgICAgICAgIC8vIHN3aXRjaFZhbHVl
LT5hczxDb250cm9sVmFsdWU+KCkgdG8gcmV0dXJuIG5vbi1udWxsLgorICAgICAgICBjYXNlIFN3
aXRjaDoKKyAgICAgICAgY2FzZSBMZWFwT2ZGYWl0aDoKKyAgICAgICAgICAgIC8vIFRoaXMgaXMg
aGVyZSBiZWNhdXNlIFN3aXRjaFZhbHVlIGFuZCBMZWFwT2ZGYWl0aFZhbHVlIGFyZSBzdWJjbGFz
c2VzIG9mIENvbnRyb2xWYWx1ZSwKKyAgICAgICAgICAgIC8vIHNvIHdlIHdhbnQgdGhpbmdzIGxp
a2Ugc3dpdGNoVmFsdWUtPmFzPENvbnRyb2xWYWx1ZT4oKSB0byByZXR1cm4gbm9uLW51bGwuCiAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKQEAgLTc3LDcgKzc4LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIGJvb2wg
cmVwbGFjZVN1Y2Nlc3NvcihCYXNpY0Jsb2NrKiBmcm9tLCBCYXNpY0Jsb2NrKiB0byk7Ci0KKyAg
ICAKICAgICBjb25zdCBGcmVxdWVudGVkQmxvY2smIHRha2VuKCkgY29uc3QKICAgICB7CiAgICAg
ICAgIEFTU0VSVChvcGNvZGUoKSA9PSBKdW1wIHx8IG9wY29kZSgpID09IEJyYW5jaCk7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEYXRhU2VjdGlvbi5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRGF0YVNlY3Rpb24uY3BwCShyZXZpc2lvbiAy
MDEzNTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEYXRhU2VjdGlvbi5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMzEsNyArMzEsNyBAQAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7
CiAKIERhdGFTZWN0aW9uOjpEYXRhU2VjdGlvbihzaXplX3Qgc2l6ZSkKLSAgICA6IG1fZGF0YShm
YXN0TWFsbG9jKHNpemUpKQorICAgIDogbV9kYXRhKGZhc3RaZXJvZWRNYWxsb2Moc2l6ZSkpCiAg
ICAgLCBtX3NpemUoc2l6ZSkKIHsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0R1cGxpY2F0ZVRhaWxzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNEdXBsaWNhdGVUYWlscy5jcHAJKHJldmlzaW9uIDIwMTM1MCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0R1cGxpY2F0ZVRhaWxzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzIs
OSArNzIsMTEgQEAgcHVibGljOgogICAgICAgICBJbmRleFNldDxCYXNpY0Jsb2NrPiBjYW5kaWRh
dGVzOwogCiAgICAgICAgIGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiBtX3Byb2MpIHsKLSAgICAg
ICAgICAgIGlmIChibG9jay0+c2l6ZSgpID4gbV9tYXhTaXplIHx8IGJsb2NrLT5udW1TdWNjZXNz
b3JzKCkgPiBtX21heFN1Y2Nlc3NvcnMpCisgICAgICAgICAgICBpZiAoYmxvY2stPnNpemUoKSA+
IG1fbWF4U2l6ZQorICAgICAgICAgICAgICAgIHx8IGJsb2NrLT5udW1TdWNjZXNzb3JzKCkgPiBt
X21heFN1Y2Nlc3NvcnMKKyAgICAgICAgICAgICAgICB8fCAhYmxvY2stPmlzQ2xvbmVhYmxlKCkp
CiAgICAgICAgICAgICAgICAgY29udGludWU7Ci0KKyAgICAgICAgICAgIAogICAgICAgICAgICAg
Y2FuZGlkYXRlcy5hZGQoYmxvY2spOwogICAgICAgICB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0xlYXBPZkZhaXRoVmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM0xlYXBPZkZhaXRoVmFsdWUuY3BwCShyZXZpc2lvbiAwKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTGVhcE9mRmFpdGhWYWx1ZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQjNMZWFwT2ZGYWl0
aFZhbHVlLmgiCisKKyNpZiBFTkFCTEUoQjNfSklUKQorCisjaW5jbHVkZSAiQjNCYXNpY0Jsb2Nr
LmgiCisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeworCitMZWFwT2ZGYWl0aFZhbHVl
Ojp+TGVhcE9mRmFpdGhWYWx1ZSgpCit7Cit9CisKK3ZvaWQgTGVhcE9mRmFpdGhWYWx1ZTo6YXBw
ZW5kU3VjY2Vzc29yKGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgYmxvY2spCit7CisgICAgbV9zdWNj
ZXNzb3JzLmFwcGVuZChibG9jayk7Cit9CisKK3ZvaWQgTGVhcE9mRmFpdGhWYWx1ZTo6c2V0Q2Fs
bGJhY2tUYXNrKFJlZlB0cjxTaGFyZWRUYXNrPENhbGxiYWNrRnVuY3Rpb25UeXBlPj4gdGFzaykK
K3sKKyAgICBtX3Rhc2sgPSB0YXNrOworfQorCitib29sIExlYXBPZkZhaXRoVmFsdWU6OmlzQ2xv
bmVhYmxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgTGVhcE9mRmFp
dGhWYWx1ZTo6ZHVtcE1ldGEoQ29tbWFQcmludGVyJiBjb21tYSwgUHJpbnRTdHJlYW0mIG91dCkg
Y29uc3QKK3sKKyAgICBDb250cm9sVmFsdWU6OmR1bXBNZXRhKGNvbW1hLCBvdXQpOworICAgIG91
dC5wcmludChjb21tYSwgInRhc2sgPSAiLCBSYXdQb2ludGVyKG1fdGFzay5nZXQoKSkpOworfQor
CitWYWx1ZSogTGVhcE9mRmFpdGhWYWx1ZTo6Y2xvbmVJbXBsKCkgY29uc3QKK3sKKyAgICBkYXRh
TG9nKCJGQVRBTDogQXR0ZW1wdCB0byBjbG9uZSBub24tY2xvbmVhYmxlIExlYXBPZkZhaXRoVmFs
dWUhXG4iKTsKKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCitMZWFwT2ZG
YWl0aFZhbHVlOjpMZWFwT2ZGYWl0aFZhbHVlKE9yaWdpbiBvcmlnaW4sIFZhbHVlKiBjaGlsZCkK
KyAgICA6IENvbnRyb2xWYWx1ZShMZWFwT2ZGYWl0aCwgVm9pZCwgb3JpZ2luLCBjaGlsZCkKK3sK
K30KKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzCisKKyNlbmRpZiAvLyBFTkFCTEUoQjNfSklU
KQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMZWFwT2ZGYWl0aFZhbHVlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTGVhcE9mRmFpdGhWYWx1
ZS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTGVhcE9mRmFp
dGhWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBCM0xlYXBPZkZhaXRoVmFs
dWVfaAorI2RlZmluZSBCM0xlYXBPZkZhaXRoVmFsdWVfaAorCisjaWYgRU5BQkxFKEIzX0pJVCkK
KworI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCisjaW5jbHVkZSA8d3RmL1NoYXJlZFRhc2su
aD4KKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CisKK2NsYXNzIExlYXBPZkZhaXRo
VmFsdWUgOiBwdWJsaWMgQ29udHJvbFZhbHVlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgYm9vbCBh
Y2NlcHRzKE9wY29kZSBvcGNvZGUpIHsgcmV0dXJuIG9wY29kZSA9PSBMZWFwT2ZGYWl0aDsgfQor
ICAgIAorICAgIH5MZWFwT2ZGYWl0aFZhbHVlKCk7CisgICAgCisgICAgSlNfRVhQT1JUX1BSSVZB
VEUgdm9pZCBhcHBlbmRTdWNjZXNzb3IoY29uc3QgRnJlcXVlbnRlZEJsb2NrJik7CisgICAgCisg
ICAgdHlwZWRlZiB2b2lkIENhbGxiYWNrRnVuY3Rpb25UeXBlKGNvbnN0IFZlY3RvcjxNYWNyb0Fz
c2VtYmxlckNvZGVQdHI+Jik7CisgICAgCisgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBzZXRD
YWxsYmFja1Rhc2soUmVmUHRyPFNoYXJlZFRhc2s8Q2FsbGJhY2tGdW5jdGlvblR5cGU+PiB0YXNr
KTsKKyAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jPgorICAgIHZvaWQgc2V0Q2FsbGJh
Y2soY29uc3QgRnVuYyYgZnVuYykKKyAgICB7CisgICAgICAgIHNldENhbGxiYWNrVGFzayhzaGFy
ZWRUYXNrPENhbGxiYWNrRnVuY3Rpb25UeXBlPihmdW5jKSk7CisgICAgfQorICAgIAorICAgIFNo
YXJlZFRhc2s8Q2FsbGJhY2tGdW5jdGlvblR5cGU+KiBjYWxsYmFja1Rhc2soKSBjb25zdCB7IHJl
dHVybiBtX3Rhc2suZ2V0KCk7IH0KKyAgICAKKyAgICBib29sIGlzQ2xvbmVhYmxlKCkgY29uc3Qg
b3ZlcnJpZGU7CisKK3Byb3RlY3RlZDoKKyAgICB2b2lkIGR1bXBNZXRhKENvbW1hUHJpbnRlciYs
IFByaW50U3RyZWFtJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgCisgICAgVmFsdWUqIGNsb25lSW1w
bCgpIGNvbnN0IG92ZXJyaWRlOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBQcm9jZWR1
cmU7CisgICAgCisgICAgSlNfRVhQT1JUX1BSSVZBVEUgTGVhcE9mRmFpdGhWYWx1ZShPcmlnaW4s
IFZhbHVlKiBjaGlsZCk7CisgICAgCisgICAgUmVmUHRyPFNoYXJlZFRhc2s8Q2FsbGJhY2tGdW5j
dGlvblR5cGU+PiBtX3Rhc2s7Cit9OworCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKKworI2Vu
ZGlmIC8vIEVOQUJMRShCM19KSVQpCisKKyNlbmRpZiAvLyBCM0xlYXBPZkZhaXRoVmFsdWVfaAor
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlck1hY3Jvcy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJNYWNyb3MuY3BwCShyZXZp
c2lvbiAyMDEzNTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlck1hY3Jvcy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
NS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkIzQ29uc3RQdHJWYWx1
ZS5oIgogI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNJbnNlcnRpb25T
ZXRJbmxpbmVzLmgiCisjaW5jbHVkZSAiQjNNZW1vcnlWYWx1ZS5oIgogI2luY2x1ZGUgIkIzUGhh
c2VTY29wZS5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJlSW5saW5lcy5oIgogI2luY2x1ZGUgIkIz
U3dpdGNoVmFsdWUuaCIKQEAgLTI3NSw4ICsyNzYsOTMgQEAgcHJpdmF0ZToKICAgICAgICAgY29u
c3QgVmVjdG9yPFN3aXRjaENhc2U+JiBjYXNlcywgdW5zaWduZWQgc3RhcnQsIGJvb2wgaGFyZFN0
YXJ0LCB1bnNpZ25lZCBlbmQsCiAgICAgICAgIEJhc2ljQmxvY2sqIGJlZm9yZSkKICAgICB7Ci0g
ICAgICAgIC8vIEZJWE1FOiBBZGQgdGFibGUtYmFzZWQgc3dpdGNoIGxvd2VyaW5nLgotICAgICAg
ICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxMTQxCisgICAg
ICAgIFZhbHVlKiBjaGlsZCA9IG1fdmFsdWUtPmNoaWxkKDApOworICAgICAgICBUeXBlIHR5cGUg
PSBjaGlsZC0+dHlwZSgpOworICAgICAgICBGcmVxdWVudGVkQmxvY2sgZmFsbFRocm91Z2ggPSBt
X3ZhbHVlLT5hczxTd2l0Y2hWYWx1ZT4oKS0+ZmFsbFRocm91Z2goKTsKKyAgICAgICAgCisgICAg
ICAgIC8vIEl0J3MgYSBnb29kIGlkZWEgdG8gdXNlIGEgdGFibGUtYmFzZWQgc3dpdGNoIGluIHNv
bWUgY2FzZXM6IHRoZSBudW1iZXIgb2YgY2FzZXMgaGFzIHRvIGJlCisgICAgICAgIC8vIGxhcmdl
IGVub3VnaCBhbmQgdGhleSBoYXZlIHRvIGJlIGRlbnNlIGVub3VnaC4gVGhpcyBjb3VsZCBwcm9i
YWJseSBiZSBpbXByb3ZlZCBhIGxvdC4gRm9yCisgICAgICAgIC8vIGV4YW1wbGUsIHdlIGNvdWxk
IHN0aWxsIHVzZSBhIGp1bXAgdGFibGUgaW4gY2FzZXMgd2hlcmUgdGhlIGlucHV0cyBhcmUgc3Bh
cnNlIHNvIGxvbmcgYXMgd2UKKyAgICAgICAgLy8gc2hpZnQgb2ZmIHRoZSB1bmludGVyZXN0aW5n
IGJpdHMuIE9uIHRoZSBvdGhlciBoYW5kLCBpdCdzIG5vdCBjbGVhciB0aGF0IHRoaXMgd291bGQK
KyAgICAgICAgLy8gYWN0dWFsbHkgYmUgYW55IGJldHRlciB0aGFuIHdoYXQgd2UgaGF2ZSBkb25l
IGhlcmUgYW5kIGl0J3Mgbm90IGNsZWFyIHRoYXQgaXQgd291bGQgYmUKKyAgICAgICAgLy8gYmV0
dGVyIHRoYW4gYSBiaW5hcnkgc3dpdGNoLgorICAgICAgICBjb25zdCB1bnNpZ25lZCBtaW5DYXNl
c0ZvclRhYmxlID0gNzsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgZGVuc2l0eUxpbWl0ID0gNDsK
KyAgICAgICAgaWYgKGVuZCAtIHN0YXJ0ID49IG1pbkNhc2VzRm9yVGFibGUpIHsKKyAgICAgICAg
ICAgIGludDY0X3QgZmlyc3RWYWx1ZSA9IGNhc2VzW3N0YXJ0XS5jYXNlVmFsdWUoKTsKKyAgICAg
ICAgICAgIGludDY0X3QgbGFzdFZhbHVlID0gY2FzZXNbZW5kIC0gMV0uY2FzZVZhbHVlKCk7Cisg
ICAgICAgICAgICBpZiAoKGxhc3RWYWx1ZSAtIGZpcnN0VmFsdWUgKyAxKSAvIGNhc2VzLnNpemUo
KSA8IGRlbnNpdHlMaW1pdCkgeworICAgICAgICAgICAgICAgIEJhc2ljQmxvY2sqIHN3aXRjaEJs
b2NrID0gbV9ibG9ja0luc2VydGlvblNldC5pbnNlcnRBZnRlcihtX2Jsb2NrKTsKKyAgICAgICAg
ICAgICAgICBWYWx1ZSogaW5kZXggPSBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAg
ICAgICAgICAgICAgIG1fcHJvYywgU3ViLCBtX29yaWdpbiwgY2hpbGQsCisgICAgICAgICAgICAg
ICAgICAgIGJlZm9yZS0+YXBwZW5kSW50Q29uc3RhbnQobV9wcm9jLCBtX29yaWdpbiwgdHlwZSwg
Zmlyc3RWYWx1ZSkpOworICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgQnJhbmNoLCBtX29yaWdpbiwKKyAg
ICAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAg
ICAgICAgICAgICAgbV9wcm9jLCBBYm92ZSwgbV9vcmlnaW4sIGluZGV4LAorICAgICAgICAgICAg
ICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmRJbnRDb25zdGFudChtX3Byb2MsIG1fb3JpZ2luLCB0
eXBlLCBsYXN0VmFsdWUgLSBmaXJzdFZhbHVlKSksCisgICAgICAgICAgICAgICAgICAgIGZhbGxU
aHJvdWdoLCBGcmVxdWVudGVkQmxvY2soc3dpdGNoQmxvY2spKTsKKyAgICAgICAgICAgICAgICAK
KyAgICAgICAgICAgICAgICBzaXplX3QgdGFibGVTaXplID0gbGFzdFZhbHVlIC0gZmlyc3RWYWx1
ZSArIDE7CisgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKiBqdW1wVGFibGUg
PSBiaXR3aXNlX2Nhc3Q8TWFjcm9Bc3NlbWJsZXJDb2RlUHRyKj4oCisgICAgICAgICAgICAgICAg
ICAgIG1fcHJvYy5hZGREYXRhU2VjdGlvbihzaXplb2YoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKSAq
IHRhYmxlU2l6ZSkpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFZhbHVlKiBi
YXNlID0gc3dpdGNoQmxvY2stPmFwcGVuZEludENvbnN0YW50KAorICAgICAgICAgICAgICAgICAg
ICBtX3Byb2MsIG1fb3JpZ2luLCBwb2ludGVyVHlwZSgpLCBiaXR3aXNlX2Nhc3Q8aW50cHRyX3Q+
KGp1bXBUYWJsZSkpOworICAgICAgICAgICAgICAgIGlmIChpbmRleC0+dHlwZSgpICE9IGJhc2Ut
PnR5cGUoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXgtPnR5cGUoKSA9PSBJbnQz
MikKKyAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gc3dpdGNoQmxvY2stPmFwcGVuZE5l
dzxWYWx1ZT4obV9wcm9jLCBaRXh0MzIsIG1fb3JpZ2luLCBpbmRleCk7CisgICAgICAgICAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gc3dpdGNoQmxvY2st
PmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBUcnVuYywgbV9vcmlnaW4sIGluZGV4KTsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaW5kZXggPSBzd2l0Y2hCbG9jay0+YXBwZW5k
TmV3PFZhbHVlPigKKyAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBNdWwsIG1fb3JpZ2luLCBp
bmRleCwKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoQmxvY2stPmFwcGVuZEludENvbnN0YW50
KAorICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwgcG9pbnRlclR5cGUo
KSwgc2l6ZW9mKE1hY3JvQXNzZW1ibGVyQ29kZVB0cikpKTsKKyAgICAgICAgICAgICAgICBWYWx1
ZSogcHRyID0gc3dpdGNoQmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBBZGQsIG1fb3Jp
Z2luLCBiYXNlLCBpbmRleCk7CisgICAgICAgICAgICAgICAgVmFsdWUqIGp1bXBUYXJnZXQgPQor
ICAgICAgICAgICAgICAgICAgICBzd2l0Y2hCbG9jay0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPiht
X3Byb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIG1fb3JpZ2luLCBwdHIpOworICAgICAgICAgICAg
ICAgIExlYXBPZkZhaXRoVmFsdWUqIGxlYXBPZkZhaXRoID0KKyAgICAgICAgICAgICAgICAgICAg
c3dpdGNoQmxvY2stPmFwcGVuZE5ldzxMZWFwT2ZGYWl0aFZhbHVlPigKKyAgICAgICAgICAgICAg
ICAgICAgICAgIG1fcHJvYywgTGVhcE9mRmFpdGgsIG1fb3JpZ2luLCBqdW1wVGFyZ2V0KTsKKyAg
ICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBCaXRWZWN0b3IgaGFuZGxlZEluZGljZXM7
CisgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gc3RhcnQ7IGkgPCBlbmQ7ICsraSkg
eworICAgICAgICAgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2sgYmxvY2sgPSBjYXNlc1tpXS50
YXJnZXQoKTsKKyAgICAgICAgICAgICAgICAgICAgaW50NjRfdCB2YWx1ZSA9IGNhc2VzW2ldLmNh
c2VWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICBsZWFwT2ZGYWl0aC0+YXBwZW5kU3VjY2Vz
c29yKGJsb2NrKTsKKyAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGluZGV4ID0gdmFsdWUgLSBm
aXJzdFZhbHVlOworICAgICAgICAgICAgICAgICAgICBBU1NFUlQoIWhhbmRsZWRJbmRpY2VzLmdl
dChpbmRleCkpOworICAgICAgICAgICAgICAgICAgICBoYW5kbGVkSW5kaWNlcy5zZXQoaW5kZXgp
OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBi
b29sIGhhc1VuaGFuZGxlZEluZGV4ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IHRhYmxlU2l6ZTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGlm
ICghaGFuZGxlZEluZGljZXMuZ2V0KGkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBoYXNV
bmhhbmRsZWRJbmRleCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAK
KyAgICAgICAgICAgICAgICBpZiAoaGFzVW5oYW5kbGVkSW5kZXgpCisgICAgICAgICAgICAgICAg
ICAgIGxlYXBPZkZhaXRoLT5hcHBlbmRTdWNjZXNzb3IoZmFsbFRocm91Z2gpOworICAgICAgICAg
ICAgICAgIAorICAgICAgICAgICAgICAgIGxlYXBPZkZhaXRoLT5zZXRDYWxsYmFjaygKKyAgICAg
ICAgICAgICAgICAgICAgWz1dIChjb25zdCBWZWN0b3I8TWFjcm9Bc3NlbWJsZXJDb2RlUHRyPiYg
cG9pbnRlcnMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBwb2ludGVySW5kZXgg
PSAwOworICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaW5kZXggOiBoYW5kbGVk
SW5kaWNlcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBqdW1wVGFibGVbaW5kZXhdID0g
cG9pbnRlcnNbcG9pbnRlckluZGV4KytdOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoaGFzVW5oYW5kbGVkSW5kZXgpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRhYmxlU2l6ZTsgKytpKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaGFuZGxlZEluZGljZXMuZ2V0
KGkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganVtcFRhYmxlW2ldID0g
cG9pbnRlcnNbcG9pbnRlckluZGV4XTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgICAgICAKICAg
ICAgICAgLy8gU2VlIGNvbW1lbnRzIGluIGppdC9CaW5hcnlTd2l0Y2guY3BwIGZvciBhIGp1c3Rp
ZmljYXRpb24gb2YgdGhpcyBhbGdvcml0aG0uIFRoZSBvbmx5CiAgICAgICAgIC8vIHRoaW5nIHdl
IGRvIGRpZmZlcmVudGx5IGlzIHRoYXQgd2UgZG9uJ3QgdXNlIHJhbmRvbW5lc3MuCkBAIC0zMDcs
MjIgKzM5MywxOSBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCiAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgQnJhbmNoLCBtX29y
aWdpbiwKICAgICAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+KAotICAg
ICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBFcXVhbCwgbV9vcmlnaW4sIG1fdmFsdWUtPmNo
aWxkKDApLAorICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBFcXVhbCwgbV9vcmlnaW4s
IGNoaWxkLAogICAgICAgICAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmRJbnRDb25zdGFu
dCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLCBtX3ZhbHVl
LT5jaGlsZCgwKS0+dHlwZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywg
bV9vcmlnaW4sIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZXNbc3RhcnQg
KyBpXS5jYXNlVmFsdWUoKSkpLAogICAgICAgICAgICAgICAgICAgICBjYXNlc1tzdGFydCArIGld
LnRhcmdldCgpLCBGcmVxdWVudGVkQmxvY2sobmV4dENoZWNrKSk7CiAKICAgICAgICAgICAgICAg
ICBiZWZvcmUgPSBuZXh0Q2hlY2s7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGlmIChh
bGxDb25zZWN1dGl2ZSkgewotICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCi0gICAgICAgICAgICAgICAgICAgIG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIGNh
c2VzW2VuZCAtIDFdLnRhcmdldCgpKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICAgICAgYmVmb3JlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgICAgICAgICAg
ICAgbV9wcm9jLCBKdW1wLCBtX29yaWdpbiwgbV92YWx1ZS0+YXM8U3dpdGNoVmFsdWU+KCktPmZh
bGxUaHJvdWdoKCkpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGFsbENvbnNlY3V0
aXZlKQorICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4obV9w
cm9jLCBKdW1wLCBtX29yaWdpbiwgY2FzZXNbZW5kIC0gMV0udGFyZ2V0KCkpOworICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
bV9wcm9jLCBKdW1wLCBtX29yaWdpbiwgZmFsbFRocm91Z2gpOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAKQEAgLTMzNCw5ICs0MTcsOSBAQCBwcml2YXRlOgogICAgICAgICBiZWZv
cmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAogICAgICAgICAgICAgbV9wcm9jLCBCcmFuY2gs
IG1fb3JpZ2luLAogICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+KAotICAgICAg
ICAgICAgICAgIG1fcHJvYywgTGVzc1RoYW4sIG1fb3JpZ2luLCBtX3ZhbHVlLT5jaGlsZCgwKSwK
KyAgICAgICAgICAgICAgICBtX3Byb2MsIExlc3NUaGFuLCBtX29yaWdpbiwgY2hpbGQsCiAgICAg
ICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmRJbnRDb25zdGFudCgKLSAgICAgICAgICAgICAgICAg
ICAgbV9wcm9jLCBtX29yaWdpbiwgbV92YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSwKKyAgICAgICAg
ICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwgdHlwZSwKICAgICAgICAgICAgICAgICAgICAg
Y2FzZXNbbWVkaWFuSW5kZXhdLmNhc2VWYWx1ZSgpKSksCiAgICAgICAgICAgICBGcmVxdWVudGVk
QmxvY2sobGVmdCksIEZyZXF1ZW50ZWRCbG9jayhyaWdodCkpOwogCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAkocmV2aXNpb24gMjAxMzUwKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI0NDEsNiArMjQ0MSwxNiBAQCBwcml2YXRlOgogICAgICAgICAgICAgfQogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBCMzo6TGVhcE9m
RmFpdGg6IHsKKyAgICAgICAgICAgIEFyZ1Byb21pc2UgYWRkciA9IGxvYWRQcm9taXNlKG1fdmFs
dWUtPmNoaWxkKDApKTsKKyAgICAgICAgICAgIGlmIChpc1ZhbGlkRm9ybShBaXI6OkxlYXBPZkZh
aXRoLCBhZGRyLmtpbmQoKSkpIHsKKyAgICAgICAgICAgICAgICBhcHBlbmQoQWlyOjpMZWFwT2ZG
YWl0aCwgYWRkci5jb25zdW1lKCp0aGlzKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgYXBwZW5kKEFpcjo6TGVhcE9mRmFpdGgsIHRtcChtX3Zh
bHVlLT5jaGlsZCgwKSkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAKICAgICAg
ICAgY2FzZSBCMzo6T29wczogewogICAgICAgICAgICAgYXBwZW5kKEFpcjo6T29wcyk7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5jcHAJKHJldmlzaW9uIDIwMTM1MCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI5MCw2ICsyOTAsOSBAQCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgT3Bj
CiAgICAgY2FzZSBTd2l0Y2g6CiAgICAgICAgIG91dC5wcmludCgiU3dpdGNoIik7CiAgICAgICAg
IHJldHVybjsKKyAgICBjYXNlIExlYXBPZkZhaXRoOgorICAgICAgICBvdXQucHJpbnQoIkxlYXBP
ZkZhaXRoIik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFJldHVybjoKICAgICAgICAgb3V0
LnByaW50KCJSZXR1cm4iKTsKICAgICAgICAgcmV0dXJuOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzT3Bjb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzT3Bjb2RlLmgJKHJldmlzaW9uIDIwMTM1MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM09wY29kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTYsNiArMjE2LDEzIEBAIGVudW0g
T3Bjb2RlIDogaW50MTZfdCB7CiAKICAgICAvLyBTd2l0Y2guIFN3aXRjaGVzIG92ZXIgZWl0aGVy
IEludDMyIG9yIEludDY0LiBVc2VzIHRoZSBTd2l0Y2hWYWx1ZSBjbGFzcy4KICAgICBTd2l0Y2gs
CisgICAgCisgICAgLy8gSnVtcCB0byB0aGUgZ2l2ZW4gYWRkcmVzcy4gVGhlIGNvbXBpbGVyIGFz
c3VtZXMgdGhhdCB0aGlzIHdpbGwganVtcCB0byBvbmUgb2YgdGhlIHN1cHBsaWVkCisgICAgLy8g
c3VjY2Vzc29ycywgYnV0IHdpbGwgbWFrZSBhYnNvbHV0ZWx5IG5vIGFzc3VtcHRpb25zIGFib3V0
IHdoaWNoLiBJdCdzIGVudGlyZWx5IHVwIHRvIHRoZSB1c2VyCisgICAgLy8gdG8gYXJyYW5nZSBm
b3IgdGhlIGp1bXAgdG8ganVtcCB0byBvbmUgb2YgdGhvc2Ugc3VjY2Vzc29ycy4gVGhpcyBjYW5u
b3QgdHJhcCBvciBkbyBhbnl0aGluZyBidXQKKyAgICAvLyBqdW1wIHRvIG9uZSBvZiB0aGUgc3Vj
Y2Vzc29yczsgaWYgaXQgZG9lcyBhbnl0aGluZyBlbHNlIHRoZW4gZGVtb25zIHdpbGwgY29tZSBv
dXQgb2YgdGhlIHVzZXIncworICAgIC8vIG5vc2UuIAorICAgIExlYXBPZkZhaXRoLAogCiAgICAg
Ly8gUmV0dXJuLiBOb3RlIHRoYXQgQjMgcHJvY2VkdXJlcyBkb24ndCBrbm93IHRoZWlyIHJldHVy
biB0eXBlLCBzbyB0aGlzIGNhbiBqdXN0IHJldHVybiBhbnkKICAgICAvLyB0eXBlLiBVc2VzIHRo
ZSBDb250cm9sVmFsdWUgY2xhc3MuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQ
cm9jZWR1cmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1By
b2NlZHVyZS5jcHAJKHJldmlzaW9uIDIwMTM1MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1Byb2NlZHVyZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgyLDYgKzgyLDggQEAgVmFyaWFi
bGUqIFByb2NlZHVyZTo6YWRkVmFyaWFibGUoVHlwZSB0eQogCiBWYWx1ZSogUHJvY2VkdXJlOjpj
bG9uZShWYWx1ZSogdmFsdWUpCiB7CisgICAgQVNTRVJUKHZhbHVlLT5pc0Nsb25lYWJsZSgpKTsK
KyAgICAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmFsdWU+IGNsb25lKHZhbHVlLT5jbG9uZUltcGwo
KSk7CiAgICAgY2xvbmUtPm1faW5kZXggPSBVSU5UX01BWDsKICAgICBjbG9uZS0+b3duZXIgPSBu
dWxscHRyOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmgJKHJldmlz
aW9uIDIwMTM1MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xMDEsNiArMTAxLDcgQEAgcHVibGljOgogICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5hbWUuLi4gQXJndW1lbnRzPgogICAgIFZhbHVlVHlwZSog
YWRkKEFyZ3VtZW50cy4uLik7CiAKKyAgICAvLyBOb3RlIHRoYXQgbm90IGFsbCB2YWx1ZXMgYXJl
IGNsb25lYWJsZS4gQ2hlY2sgVmFsdWU6OmlzQ2xvbmVhYmxlKCkgYmVmb3JlIHByb2NlZWRpbmcu
CiAgICAgVmFsdWUqIGNsb25lKFZhbHVlKik7CiAKICAgICBWYWx1ZSogYWRkSW50Q29uc3RhbnQo
T3JpZ2luLCBUeXBlLCBpbnQ2NF90IHZhbHVlKTsKQEAgLTIxOCw2ICsyMTksOSBAQCBwdWJsaWM6
CiAKICAgICBjb25zdCBjaGFyKiBsYXN0UGhhc2VOYW1lKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0
UGhhc2VOYW1lOyB9CiAKKyAgICAvLyBBbGxvY2F0ZXMgYSBzbGFiIG9mIG1lbW9yeSB0aGF0IHdp
bGwgYmUga2VwdCBhbGl2ZSBieSBhbnlvbmUgd2hvIGtlZXBzIHRoZSByZXN1bHRpbmcgY29kZQor
ICAgIC8vIGFsaXZlLiBHcmVhdCBmb3IgY29tcGlsZXItZ2VuZXJhdGVkIGRhdGEgc2VjdGlvbnMs
IGxpa2Ugc3dpdGNoIGp1bXAgdGFibGVzIGFuZCBjb25zdGFudCBwb29scy4KKyAgICAvLyBUaGlz
IHJldHVybnMgbWVtb3J5IHRoYXQgaGFzIGJlZW4gemVyby1pbml0aWFsaXplZC4KICAgICB2b2lk
KiBhZGREYXRhU2VjdGlvbihzaXplX3Qgc2l6ZSk7CiAKICAgICBPcGFxdWVCeXByb2R1Y3RzJiBi
eXByb2R1Y3RzKCkgeyByZXR1cm4gKm1fYnlwcm9kdWN0czsgfQpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcAkocmV2aXNpb24gMjAxMzUwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xNzczLDcgKzE3NzMsMTcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIHZhbHVlLT5vcGNvZGUoKSA9PSBTZWxlY3QKICAgICAgICAgICAgICAgICAgICAg
ICAgICYmICh2YWx1ZS0+Y2hpbGQoMSktPmlzQ29uc3RhbnQoKSAmJiB2YWx1ZS0+Y2hpbGQoMikt
PmlzQ29uc3RhbnQoKSk7CiAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBpZiAoc2Vs
ZWN0KSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBy
ZWxldmFudCBjb2RlIGlzIGNsb25lYWJsZS4KKyAgICAgICAgICAgIGJvb2wgYWxsQXJlQ2xvbmVh
YmxlID0gdHJ1ZTsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgaW5kZXggPSBtX2luZGV4ICsg
MTsgaW5kZXgtLTspIHsKKyAgICAgICAgICAgICAgICBWYWx1ZSogdmFsdWUgPSBtX2Jsb2NrLT5h
dChpbmRleCk7CisgICAgICAgICAgICAgICAgYWxsQXJlQ2xvbmVhYmxlICY9IHZhbHVlLT5pc0Ns
b25lYWJsZSgpOworICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBzZWxlY3QpCisgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAg
ICAgICBpZiAoc2VsZWN0ICYmIGFsbEFyZUNsb25lYWJsZSkgewogICAgICAgICAgICAgICAgIHNw
ZWNpYWxpemVTZWxlY3Qoc2VsZWN0KTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgIH0KQEAgLTE5OTgsNiArMjAwOCw3IEBAIHByaXZhdGU6CiAgICAgICAgIG1fY2hhbmdlZCA9
IHRydWU7CiAKICAgICAgICAgcHJlZGVjZXNzb3ItPnVwZGF0ZVByZWRlY2Vzc29yc0FmdGVyKCk7
CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAogICAgIC8vIFR1cm4gdGhpczogQWRkKGNv
bnN0YW50LCB2YWx1ZSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbGlkYXRl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWxpZGF0ZS5j
cHAJKHJldmlzaW9uIDIwMTM1MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbGlk
YXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzg3LDYgKzM4NywxMyBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICAgICAgVkFMSURBVEUoaXNJbnQodmFsdWUtPmNoaWxkKDApLT50eXBlKCkpLCAoIkF0
ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgPT0g
Vm9pZCwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgTGVhcE9mRmFpdGg6CisgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPm51
bUNoaWxkcmVuKCkgPT0gMSwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJ
REFURSh2YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSA9PSBwb2ludGVyVHlwZSgpLCAoIkF0ICIsICp2
YWx1ZSkpOworICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgPT0gVm9pZCwg
KCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBmb3IgKEJhc2ljQmxvY2sqIHN1Y2Nl
c3NvciA6IHZhbHVlLT5hczxDb250cm9sVmFsdWU+KCktPnN1Y2Nlc3NvckJsb2NrcygpKQorICAg
ICAgICAgICAgICAgICAgICBWQUxJREFURShzdWNjZXNzb3ItPmhhc0NhbGxiYWNrcygpLCAoIkF0
ICIsICp2YWx1ZSwgIi0+IiwgKnN1Y2Nlc3NvcikpOworICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBWQUxJREFURSghKHZhbHVlLT5lZmZlY3RzKCku
d3JpdGVzICYmIHZhbHVlLT5rZXkoKSksICgiQXQgIiwgKnZhbHVlKSk7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzVmFsdWUuY3BwCShyZXZpc2lvbiAyMDEzNTApCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU0MCw2ICs1NDAs
NyBAQCBFZmZlY3RzIFZhbHVlOjplZmZlY3RzKCkgY29uc3QKICAgICBjYXNlIEp1bXA6CiAgICAg
Y2FzZSBCcmFuY2g6CiAgICAgY2FzZSBTd2l0Y2g6CisgICAgY2FzZSBMZWFwT2ZGYWl0aDoKICAg
ICBjYXNlIFJldHVybjoKICAgICBjYXNlIE9vcHM6CiAgICAgICAgIHJlc3VsdC50ZXJtaW5hbCA9
IHRydWU7CkBAIC01NDgsNiArNTQ5LDExIEBAIEVmZmVjdHMgVmFsdWU6OmVmZmVjdHMoKSBjb25z
dAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK2Jvb2wgVmFsdWU6OmlzQ2xvbmVhYmxlKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogVmFsdWVLZXkgVmFsdWU6OmtleSgpIGNvbnN0
CiB7CiAgICAgc3dpdGNoIChvcGNvZGUoKSkgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNW
YWx1ZS5oCShyZXZpc2lvbiAyMDEzNTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNW
YWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMDAsNiArMjAwLDExIEBAIHB1YmxpYzoKICAgICBi
b29sIGlzTGlrZU5vblplcm8oKSBjb25zdCB7IHJldHVybiBhc1RyaVN0YXRlKCkgPT0gVHJ1ZVRy
aVN0YXRlOyB9CiAKICAgICBFZmZlY3RzIGVmZmVjdHMoKSBjb25zdDsKKyAgICAKKyAgICAvLyBT
b21lIG9wZXJhdGlvbnMgd2lsbCByZWZ1c2UgdG8gYmUgY2xvbmVkLiBUaGlzIGhhcHBlbnMgd2hl
biB0aGUgb3BlcmF0aW9uIGhhcyBzb21lIGluc2lkZQorICAgIC8vIGtub3dsZWRnZSBhYm91dCB0
aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gaXRzIGlkZW50aXR5IGFuZCB0aGUgaWRlbnRpdHkgb2Yg
dGhlIGNvZGUgaXQgd2lsbAorICAgIC8vIGdlbmVyYXRlLgorICAgIHZpcnR1YWwgYm9vbCBpc0Ns
b25lYWJsZSgpIGNvbnN0OwogCiAgICAgLy8gVGhpcyByZXR1cm5zIGEgVmFsdWVLZXkgdGhhdCBk
ZXNjcmliZXMgdGhhdCB0aGlzIFZhbHVlIHJldHVybnMgd2hlbiBpdCBleGVjdXRlcy4gUmV0dXJu
cyBhbgogICAgIC8vIGVtcHR5IFZhbHVlS2V5IGlmIHRoaXMgVmFsdWUgaXMgaW1wdXJlLiBOb3Rl
IHRoYXQgYW4gb3BlcmF0aW9uIHRoYXQgcmV0dXJucyBWb2lkIGNvdWxkIHN0aWxsCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcAkocmV2aXNpb24gMjAxMzUwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1
LDcgQEAKICNpbmNsdWRlICJCM0NvbnN0UHRyVmFsdWUuaCIKICNpbmNsdWRlICJCM0NvbnRyb2xW
YWx1ZS5oIgogI2luY2x1ZGUgIkIzRWZmZWN0cy5oIgorI2luY2x1ZGUgIkIzTGVhcE9mRmFpdGhW
YWx1ZS5oIgogI2luY2x1ZGUgIkIzTWF0aEV4dHJhcy5oIgogI2luY2x1ZGUgIkIzTWVtb3J5VmFs
dWUuaCIKICNpbmNsdWRlICJCM1Byb2NlZHVyZS5oIgpAQCAtNDQsNiArNDUsNyBAQAogI2luY2x1
ZGUgIkIzU3dpdGNoVmFsdWUuaCIKICNpbmNsdWRlICJCM1Vwc2lsb25WYWx1ZS5oIgogI2luY2x1
ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCisjaW5jbHVkZSAiQjNWYXJpYWJsZVZhbHVlLmgiCiAjaW5j
bHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiSW5pdGlhbGl6ZVRocmVhZGluZy5oIgog
I2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKQEAgLTEwMTI4LDcgKzEwMTMwLDEwIEBAIHZvaWQgdGVz
dFN3aXRjaENoaWxsRGl2KHVuc2lnbmVkIGRlZ3JlZSwKICAgICBhdXRvIGNvZGUgPSBjb21waWxl
KHByb2MpOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGRlZ3JlZTsgKytpKSB7Ci0g
ICAgICAgIENIRUNLKGludm9rZTxpbnQzMl90PigqY29kZSwgaSAqIGdhcCwgNDIsIDExKSA9PSAo
KGkgJiAxKSA/IDExLzQyIDogNDIvMTEpKTsKKyAgICAgICAgZGF0YUxvZygiaSA9ICIsIGksICJc
biIpOworICAgICAgICBpbnQzMl90IHJlc3VsdCA9IGludm9rZTxpbnQzMl90PigqY29kZSwgaSAq
IGdhcCwgNDIsIDExKTsKKyAgICAgICAgZGF0YUxvZygicmVzdWx0ID0gIiwgcmVzdWx0LCAiXG4i
KTsKKyAgICAgICAgQ0hFQ0socmVzdWx0ID09ICgoaSAmIDEpID8gMTEvNDIgOiA0Mi8xMSkpOwog
ICAgICAgICBpZiAoZ2FwID4gMSkgewogICAgICAgICAgICAgQ0hFQ0soIWludm9rZTxpbnQzMl90
PigqY29kZSwgaSAqIGdhcCArIDEsIDQyLCAxMSkpOwogICAgICAgICAgICAgQ0hFQ0soIWludm9r
ZTxpbnQzMl90PigqY29kZSwgaSAqIGdhcCAtIDEsIDQyLCAxMSkpOwpAQCAtMTIwNTAsNiArMTIw
NTUsMjE4IEBAIHZvaWQgdGVzdExhdGVSZWdpc3RlcigpCiAgICAgQ0hFQ0soaW52b2tlPHVpbnQ2
NF90PigqY29kZSkgPT0gcmVzdWx0KTsKIH0KIAordm9pZCB0aHJlYWRlZEludGVycHJldGVyUHJp
bnQoVmVjdG9yPGludHB0cl90Piogc3RyZWFtLCBpbnRwdHJfdCB2YWx1ZSkKK3sKKyAgICBzdHJl
YW0tPmFwcGVuZCh2YWx1ZSk7Cit9CisKK3ZvaWQgdGVzdFRocmVhZGVkSW50ZXJwcmV0ZXIoKQor
eworICAgIC8vIFRoaXMgY3JlYXRlcyBhIHBvb3IgbWFuJ3MgdGhyZWFkZWQgaW50ZXJwcmV0ZXIg
dXNpbmcgTGVhcE9mRmFpdGggYW5kIHNlZXMgaWYgaXQgd29ya3MuIE5vdGUKKyAgICAvLyB0aGF0
IExlYXBPZkZhaXRoIGlzIG5vdCBsaWtlIGluZGlyZWN0IGJyYW5jaGVzIGluIExMVk0sIHNvIHlv
dSBjYW4ndCBhY3R1YWxseSB1c2UgaXQgdG8KKyAgICAvLyBpbXBsZW1lbnQgYSBwcm9wZXIgdGhy
ZWFkZWQgaW50ZXJwcmV0ZXIuIFRoaXMgY2hlYXRzOiB0aGUgZGlzcGF0Y2ggaW5zdHJ1Y3Rpb24g
aXMgYXQgdGhlIHRvcAorICAgIC8vIG9mIHRoZSBsb29wLiBUaGlzIGFsc28gdGVzdHMgVmFyaWFi
bGVWYWx1ZS4KKyAgICAKKyAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICAKKyAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOworICAgIEJhc2ljQmxvY2sqIGRpc3BhdGNoID0gcHJv
Yy5hZGRCbG9jaygpOworICAgIEJhc2ljQmxvY2sqIGFkZFRvRGF0YVBvaW50ZXIgPSBwcm9jLmFk
ZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayogYWRkVG9Db2RlUG9pbnRlciA9IHByb2MuYWRkQmxv
Y2soKTsKKyAgICBCYXNpY0Jsb2NrKiBhZGRUb0NvZGVQb2ludGVyVGFrZW4gPSBwcm9jLmFkZEJs
b2NrKCk7CisgICAgQmFzaWNCbG9jayogYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuID0gcHJvYy5h
ZGRCbG9jaygpOworICAgIEJhc2ljQmxvY2sqIGFkZFRvRGF0YSA9IHByb2MuYWRkQmxvY2soKTsK
KyAgICBCYXNpY0Jsb2NrKiBwcmludCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBCYXNpY0Jsb2Nr
KiBzdG9wID0gcHJvYy5hZGRCbG9jaygpOworICAgIAorICAgIFZhcmlhYmxlKiBkYXRhUG9pbnRl
ciA9IHByb2MuYWRkVmFyaWFibGUocG9pbnRlclR5cGUoKSk7CisgICAgVmFyaWFibGUqIGNvZGVQ
b2ludGVyID0gcHJvYy5hZGRWYXJpYWJsZShwb2ludGVyVHlwZSgpKTsKKyAgICAKKyAgICByb290
LT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCks
IGRhdGFQb2ludGVyLAorICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOworICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYXJpYWJsZVZhbHVlPigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgY29kZVBv
aW50ZXIsCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7CisgICAgVmFsdWUqIGNvbnRleHQgPSBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMik7CisgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
SnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhkaXNwYXRjaCkpOworICAgIAorICAgIGRp
c3BhdGNoLT5hcHBlbmROZXc8TGVhcE9mRmFpdGhWYWx1ZT4oCisgICAgICAgIHByb2MsIE9yaWdp
bigpLAorICAgICAgICBkaXNwYXRjaC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAg
ICAgIHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLAorICAgICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAgICAgICAgICAgICAgIHByb2MsIEdldCwg
T3JpZ2luKCksIGNvZGVQb2ludGVyKSkpOworICAgIGRpc3BhdGNoLT5hcHBlbmRTdWNjZXNzb3Io
RnJlcXVlbnRlZEJsb2NrKGFkZFRvRGF0YVBvaW50ZXIpKTsKKyAgICBkaXNwYXRjaC0+YXBwZW5k
U3VjY2Vzc29yKEZyZXF1ZW50ZWRCbG9jayhhZGRUb0NvZGVQb2ludGVyKSk7CisgICAgZGlzcGF0
Y2gtPmFwcGVuZFN1Y2Nlc3NvcihGcmVxdWVudGVkQmxvY2soYWRkVG9EYXRhKSk7CisgICAgZGlz
cGF0Y2gtPmFwcGVuZFN1Y2Nlc3NvcihGcmVxdWVudGVkQmxvY2socHJpbnQpKTsKKyAgICBkaXNw
YXRjaC0+YXBwZW5kU3VjY2Vzc29yKEZyZXF1ZW50ZWRCbG9jayhzdG9wKSk7CisgICAgCisgICAg
Ly8gT3VyICJvcGNvZGVzIi4gVGhleSB3aWxsIGhhdmUgbWVhbmluZyBvbmNlIHdlIGNvbXBpbGUu
CisgICAgaW50cHRyX3QgQWRkRFA7CisgICAgaW50cHRyX3QgQWRkQ1A7CisgICAgaW50cHRyX3Qg
QWRkOworICAgIGludHB0cl90IFByaW50OworICAgIGludHB0cl90IFN0b3A7CisgICAgZGlzcGF0
Y2gtPnNldENhbGxiYWNrKAorICAgICAgICBbJl0gKGNvbnN0IFZlY3RvcjxNYWNyb0Fzc2VtYmxl
ckNvZGVQdHI+JiBwb2ludGVycykgeworICAgICAgICAgICAgYXV0byBnZXQgPSBbJl0gKHNpemVf
dCBpbmRleCkgLT4gaW50cHRyX3QgeworICAgICAgICAgICAgICAgIHJldHVybiBiaXR3aXNlX2Nh
c3Q8aW50cHRyX3Q+KHBvaW50ZXJzW2luZGV4XS5leGVjdXRhYmxlQWRkcmVzcygpKTsKKyAgICAg
ICAgICAgIH07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIEFkZERQID0gZ2V0KDApOworICAg
ICAgICAgICAgQWRkQ1AgPSBnZXQoMSk7CisgICAgICAgICAgICBBZGQgPSBnZXQoMik7CisgICAg
ICAgICAgICBQcmludCA9IGdldCgzKTsKKyAgICAgICAgICAgIFN0b3AgPSBnZXQoNCk7CisgICAg
ICAgIH0pOworICAgIAorICAgIC8vIEFkZERQIDxvcGVyYW5kPjogYWRkcyA8b3BlcmFuZD4gdG8g
RFAuCisgICAgVmFsdWUqIGNvZGVQb2ludGVyVmFsdWUgPQorICAgICAgICBhZGRUb0RhdGFQb2lu
dGVyLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgR2V0LCBPcmlnaW4oKSwgY29kZVBv
aW50ZXIpOworICAgIGFkZFRvRGF0YVBvaW50ZXItPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPigK
KyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgZGF0YVBvaW50ZXIsCisgICAgICAgIGFkZFRv
RGF0YVBvaW50ZXItPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBBZGQsIE9y
aWdpbigpLAorICAgICAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhcmlhYmxl
VmFsdWU+KHByb2MsIEdldCwgT3JpZ2luKCksIGRhdGFQb2ludGVyKTsKKyAgICAgICAgICAgIGFk
ZFRvRGF0YVBvaW50ZXItPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICAgICAgcHJvYywg
TXVsLCBPcmlnaW4oKSwKKyAgICAgICAgICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmRO
ZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICAgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVy
VHlwZSgpLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwgc2l6ZW9mKGludHB0cl90KSksCisg
ICAgICAgICAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kSW50Q29uc3RhbnQoCisgICAg
ICAgICAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLCBwb2ludGVyVHlwZSgpLCBzaXplb2YoaW50
cHRyX3QpKSkpKTsKKyAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1
ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyLAorICAgICAgICBh
ZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgQWRk
LCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwKKyAgICAgICAgICAgIGFkZFRvRGF0YVBvaW50
ZXItPmFwcGVuZEludENvbnN0YW50KAorICAgICAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLCBw
b2ludGVyVHlwZSgpLCBzaXplb2YoaW50cHRyX3QpICogMikpKTsKKyAgICBhZGRUb0RhdGFQb2lu
dGVyLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVl
bnRlZEJsb2NrKGRpc3BhdGNoKSk7CisgICAgCisgICAgLy8gQWRkQ1AgPG9wZXJhbmQ+OiBhZGRz
IDxvcGVyYW5kPiB0byBDUCBpZiB0aGUgY3VycmVudCB2YWx1ZSBhdCBEUCBpcyBub24temVybywg
b3RoZXJ3aXNlCisgICAgLy8gZmFsbHMgdGhyb3VnaCBub3JtYWxseS4KKyAgICBjb2RlUG9pbnRl
clZhbHVlID0gYWRkVG9Db2RlUG9pbnRlci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHByb2Ms
IEdldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyKTsKKyAgICBWYWx1ZSogZGF0YVBvaW50ZXJWYWx1
ZSA9IGFkZFRvRGF0YS0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHByb2MsIEdldCwgT3JpZ2lu
KCksIGRhdGFQb2ludGVyKTsKKyAgICBhZGRUb0NvZGVQb2ludGVyLT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKKyAgICAgICAgYWRkVG9D
b2RlUG9pbnRlci0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIExv
YWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLCBkYXRhUG9pbnRlclZhbHVlKSwKKyAgICAgICAg
RnJlcXVlbnRlZEJsb2NrKGFkZFRvQ29kZVBvaW50ZXJUYWtlbiksIEZyZXF1ZW50ZWRCbG9jayhh
ZGRUb0NvZGVQb2ludGVyTm90VGFrZW4pKTsKKyAgICBhZGRUb0NvZGVQb2ludGVyVGFrZW4tPmFw
cGVuZE5ldzxWYXJpYWJsZVZhbHVlPigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgY29k
ZVBvaW50ZXIsCisgICAgICAgIGFkZFRvQ29kZVBvaW50ZXJUYWtlbi0+YXBwZW5kTmV3PFZhbHVl
PigKKyAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUsCisg
ICAgICAgICAgICBhZGRUb0NvZGVQb2ludGVyVGFrZW4tPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAg
ICAgICAgICAgICAgcHJvYywgTXVsLCBPcmlnaW4oKSwKKyAgICAgICAgICAgICAgICBhZGRUb0Nv
ZGVQb2ludGVyVGFrZW4tPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgICAgICAgICAg
ICAgIHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVl
LCBzaXplb2YoaW50cHRyX3QpKSwKKyAgICAgICAgICAgICAgICBhZGRUb0NvZGVQb2ludGVyVGFr
ZW4tPmFwcGVuZEludENvbnN0YW50KAorICAgICAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4o
KSwgcG9pbnRlclR5cGUoKSwgc2l6ZW9mKGludHB0cl90KSkpKSk7CisgICAgYWRkVG9Db2RlUG9p
bnRlclRha2VuLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwg
RnJlcXVlbnRlZEJsb2NrKGRpc3BhdGNoKSk7CisgICAgYWRkVG9Db2RlUG9pbnRlck5vdFRha2Vu
LT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCks
IGNvZGVQb2ludGVyLAorICAgICAgICBhZGRUb0NvZGVQb2ludGVyTm90VGFrZW4tPmFwcGVuZE5l
dzxWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLCBjb2RlUG9pbnRlclZh
bHVlLAorICAgICAgICAgICAgYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuLT5hcHBlbmRJbnRDb25z
dGFudCgKKyAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6
ZW9mKGludHB0cl90KSAqIDIpKSk7CisgICAgYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuLT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1
ZW50ZWRCbG9jayhkaXNwYXRjaCkpOworCisgICAgLy8gQWRkIDxvcGVyYW5kPjogYWRkcyA8b3Bl
cmFuZD4gdG8gdGhlIHNsb3QgcG9pbnRlZCB0byBieSBEUC4KKyAgICBjb2RlUG9pbnRlclZhbHVl
ID0gYWRkVG9EYXRhLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgR2V0LCBPcmlnaW4o
KSwgY29kZVBvaW50ZXIpOworICAgIGRhdGFQb2ludGVyVmFsdWUgPSBhZGRUb0RhdGEtPmFwcGVu
ZE5ldzxWYXJpYWJsZVZhbHVlPihwcm9jLCBHZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRlcik7Cisg
ICAgYWRkVG9EYXRhLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICBwcm9jLCBTdG9y
ZSwgT3JpZ2luKCksCisgICAgICAgIGFkZFRvRGF0YS0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAg
ICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCisgICAgICAgICAgICBhZGRUb0RhdGEtPmFwcGVu
ZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5
cGUoKSwgT3JpZ2luKCksIGRhdGFQb2ludGVyVmFsdWUpLAorICAgICAgICAgICAgYWRkVG9EYXRh
LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICAgICAgICAgIHByb2MsIExvYWQsIHBv
aW50ZXJUeXBlKCksIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLCBzaXplb2YoaW50cHRyX3Qp
KSkpOworICAgIGFkZFRvRGF0YS0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAgICAgICBw
cm9jLCBTZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlciwKKyAgICAgICAgYWRkVG9EYXRhLT5hcHBl
bmROZXc8VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwgY29kZVBvaW50
ZXIsCisgICAgICAgICAgICBhZGRUb0RhdGEtPmFwcGVuZEludENvbnN0YW50KHByb2MsIE9yaWdp
bigpLCBwb2ludGVyVHlwZSgpLCBzaXplb2YoaW50cHRyX3QpICogMikpKTsKKyAgICBhZGRUb0Rh
dGEtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVu
dGVkQmxvY2soZGlzcGF0Y2gpKTsKKyAgICAKKyAgICAvLyBQcmludDogInByaW50cyIgdGhlIHZh
bHVlIHBvaW50ZWQgdG8gYnkgRFAuCisgICAgY29kZVBvaW50ZXJWYWx1ZSA9IGFkZFRvRGF0YS0+
YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHByb2MsIEdldCwgT3JpZ2luKCksIGNvZGVQb2ludGVy
KTsKKyAgICBkYXRhUG9pbnRlclZhbHVlID0gYWRkVG9EYXRhLT5hcHBlbmROZXc8VmFyaWFibGVW
YWx1ZT4ocHJvYywgR2V0LCBPcmlnaW4oKSwgZGF0YVBvaW50ZXIpOworICAgIHByaW50LT5hcHBl
bmROZXc8Q0NhbGxWYWx1ZT4oCisgICAgICAgIHByb2MsIFZvaWQsIE9yaWdpbigpLAorICAgICAg
ICBwcmludC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KAorICAgICAgICAgICAgcHJvYywgT3Jp
Z2luKCksIGJpdHdpc2VfY2FzdDx2b2lkKj4odGhyZWFkZWRJbnRlcnByZXRlclByaW50KSksCisg
ICAgICAgIGNvbnRleHQsCisgICAgICAgIHByaW50LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHBy
b2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLCBkYXRhUG9pbnRlclZhbHVlKSk7Cisg
ICAgcHJpbnQtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPigKKyAgICAgICAgcHJvYywgU2V0LCBP
cmlnaW4oKSwgY29kZVBvaW50ZXIsCisgICAgICAgIHByaW50LT5hcHBlbmROZXc8VmFsdWU+KAor
ICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwgY29kZVBvaW50ZXIsCisgICAgICAgICAg
ICBwcmludC0+YXBwZW5kSW50Q29uc3RhbnQocHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBlKCks
IHNpemVvZihpbnRwdHJfdCkpKSk7CisgICAgcHJpbnQtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZGlzcGF0Y2gpKTsKKyAgICAK
KyAgICAvLyBTdG9wOiByZXR1cm5zLgorICAgIHN0b3AtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgICAgICBzdG9wLT5hcHBlbmRJ
bnRDb25zdGFudChwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgMCkpOworICAgIAorICAg
IGF1dG8gaW50ZXJwcmV0ZXIgPSBjb21waWxlKHByb2MpOworICAgIAorICAgIENIRUNLKEFkZERQ
KTsKKyAgICBDSEVDSyhBZGRDUCk7CisgICAgQ0hFQ0soQWRkKTsKKyAgICBDSEVDSyhQcmludCk7
CisgICAgQ0hFQ0soU3RvcCk7CisgICAgCisgICAgVmVjdG9yPGludHB0cl90PiBkYXRhOworICAg
IFZlY3RvcjxpbnRwdHJfdD4gY29kZTsKKyAgICBWZWN0b3I8aW50cHRyX3Q+IHN0cmVhbTsKKyAg
ICAKKyAgICBkYXRhLmFwcGVuZCgxKTsKKyAgICBkYXRhLmFwcGVuZCgwKTsKKyAgICAKKyAgICAv
LyBXZSdsbCB3cml0ZSBhIHByb2dyYW0gdGhhdCBwcmludHMgdGhlIG51bWJlcnMgMS4uMTAwLgor
ICAgIC8vIFdlIGV4cGVjdCBEUCB0byBwb2ludCBhdCAjMC4KKyAgICBjb2RlLmFwcGVuZChBZGRD
UCk7CisgICAgY29kZS5hcHBlbmQoNik7IC8vIGdvIHRvIGxvb3AgYm9keQorICAgIAorICAgIC8v
IExvb3AgcmUtZW50cnk6CisgICAgLy8gV2UgZXhwZWN0IERQIHRvIHBvaW50IGF0ICMxIGFuZCBm
b3IgIzEgdG8gYmUgb2Zmc2V0IGJ5IC0xMDAuCisgICAgY29kZS5hcHBlbmQoQWRkRFApOworICAg
IGNvZGUuYXBwZW5kKC0xKTsKKyAgICAKKyAgICBjb2RlLmFwcGVuZChBZGQpOworICAgIGNvZGUu
YXBwZW5kKDEwMCk7CisgICAgCisgICAgLy8gTG9vcCBoZWFkZXI6CisgICAgLy8gV2UgZXhwZWN0
IERQIHRvIHBvaW50IGF0ICMwLgorICAgIGNvZGUuYXBwZW5kKEFkZERQKTsKKyAgICBjb2RlLmFw
cGVuZCgxKTsKKyAgICAKKyAgICBjb2RlLmFwcGVuZChBZGQpOworICAgIGNvZGUuYXBwZW5kKDEp
OworICAgIAorICAgIGNvZGUuYXBwZW5kKFByaW50KTsKKyAgICAKKyAgICBjb2RlLmFwcGVuZChB
ZGQpOworICAgIGNvZGUuYXBwZW5kKC0xMDApOworICAgIAorICAgIC8vIFdlIHdhbnQgdG8gc3Rv
cCBpZiBpdCdzIHplcm8gYW5kIGNvbnRpbnVlIGlmIGl0J3Mgbm9uLXplcm8uIEFkZENQIHRha2Vz
IHRoZSBicmFuY2ggaWYgaXQncworICAgIC8vIG5vbi16ZXJvLgorICAgIGNvZGUuYXBwZW5kKEFk
ZENQKTsKKyAgICBjb2RlLmFwcGVuZCgtMTEpOyAvLyBnbyB0byBsb29wIHJlLWVudHJ5LgorICAg
IAorICAgIGNvZGUuYXBwZW5kKFN0b3ApOworICAgIAorICAgIENIRUNLKCFpbnZva2U8aW50cHRy
X3Q+KCppbnRlcnByZXRlciwgZGF0YS5kYXRhKCksIGNvZGUuZGF0YSgpLCAmc3RyZWFtKSk7Cisg
ICAgCisgICAgQ0hFQ0soc3RyZWFtLnNpemUoKSA9PSAxMDApOworICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCAxMDA7ICsraSkKKyAgICAgICAgQ0hFQ0soc3RyZWFtW2ldID09IGkgKyAxKTsK
K30KKwogLy8gTWFrZSBzdXJlIHRoZSBjb21waWxlciBkb2VzIG5vdCB0cnkgdG8gb3B0aW1pemUg
YW55dGhpbmcgb3V0LgogTkVWRVJfSU5MSU5FIGRvdWJsZSB6ZXJvKCkKIHsKQEAgLTEzNDU0LDYg
KzEzNjcxLDggQEAgdm9pZCBydW4oY29uc3QgY2hhciogZmlsdGVyKQogICAgIFJVTih0ZXN0U3Bp
bGxVc2VMYXJnZXJUaGFuRGVmKCkpOwogCiAgICAgUlVOKHRlc3RMYXRlUmVnaXN0ZXIoKSk7Cisg
ICAgCisgICAgUlVOKHRlc3RUaHJlYWRlZEludGVycHJldGVyKCkpOwogCiAgICAgaWYgKHRhc2tz
LmlzRW1wdHkoKSkKICAgICAgICAgdXNhZ2UoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvQWlyQ29kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyQ29kZS5oCShyZXZpc2lvbiAyMDEzNTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL0FpckNvZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2lu
Y2x1ZGUgIkFpclNwZWNpYWwuaCIKICNpbmNsdWRlICJBaXJTdGFja1Nsb3QuaCIKICNpbmNsdWRl
ICJBaXJUbXAuaCIKKyNpbmNsdWRlICJCM0luZGV4TWFwLmgiCiAjaW5jbHVkZSAiQjNTcGFyc2VD
b2xsZWN0aW9uLmgiCiAjaW5jbHVkZSAiUmVnaXN0ZXJBdE9mZnNldExpc3QuaCIKICNpbmNsdWRl
ICJTdGFja0FsaWdubWVudC5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9B
aXJHZW5lcmF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fp
ci9BaXJHZW5lcmF0ZS5jcHAJKHJldmlzaW9uIDIwMTM1MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvQWlyR2VuZXJhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NywxMCArNDcs
MTIgQEAKICNpbmNsdWRlICJBaXJWYWxpZGF0ZS5oIgogI2luY2x1ZGUgIkIzQ29tbW9uLmgiCiAj
aW5jbHVkZSAiQjNJbmRleE1hcC5oIgorI2luY2x1ZGUgIkIzTGVhcE9mRmFpdGhWYWx1ZS5oIgog
I2luY2x1ZGUgIkIzUHJvY2VkdXJlLmgiCiAjaW5jbHVkZSAiQjNUaW1pbmdTY29wZS5oIgogI2lu
Y2x1ZGUgIkNDYWxsSGVscGVycy5oIgogI2luY2x1ZGUgIkRpc2FsbG93TWFjcm9TY3JhdGNoUmVn
aXN0ZXJVc2FnZS5oIgorI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKIAogbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBCMyB7IG5hbWVzcGFjZSBBaXIgewogCkBAIC0xODMsNyArMTg1LDggQEAgdm9p
ZCBnZW5lcmF0ZShDb2RlJiBjb2RlLCBDQ2FsbEhlbHBlcnMmIAogCiAgICAgZm9yIChCYXNpY0Js
b2NrKiBibG9jayA6IGNvZGUpIHsKICAgICAgICAgYmxvY2tKdW1wc1tibG9ja10ubGluaygmaml0
KTsKLSAgICAgICAgYmxvY2tMYWJlbHNbYmxvY2tdID0gaml0LmxhYmVsKCk7CisgICAgICAgIEND
YWxsSGVscGVyczo6TGFiZWwgbGFiZWwgPSBqaXQubGFiZWwoKTsKKyAgICAgICAgYmxvY2tMYWJl
bHNbYmxvY2tdID0gbGFiZWw7CiAgICAgICAgIEFTU0VSVChibG9jay0+c2l6ZSgpID49IDEpOwog
ICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYmxvY2stPnNpemUoKSAtIDE7ICsraSkg
ewogICAgICAgICAgICAgSW5zdCYgaW5zdCA9IGJsb2NrLT5hdChpKTsKQEAgLTIxNSwyNiArMjE4
LDU0IEBAIHZvaWQgZ2VuZXJhdGUoQ29kZSYgY29kZSwgQ0NhbGxIZWxwZXJzJiAKICAgICAgICAg
ICAgIGFkZEl0ZW0oYmxvY2stPmxhc3QoKSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAg
ICAgfQotCisgICAgICAgIAogICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAganVtcCA9IGJsb2Nr
LT5sYXN0KCkuZ2VuZXJhdGUoaml0LCBjb250ZXh0KTsKLSAgICAgICAgc3dpdGNoIChibG9jay0+
bnVtU3VjY2Vzc29ycygpKSB7Ci0gICAgICAgIGNhc2UgMDoKLSAgICAgICAgICAgIEFTU0VSVCgh
anVtcC5pc1NldCgpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIDE6Ci0gICAg
ICAgICAgICBsaW5rKGp1bXAsIGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKSk7Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgY2FzZSAyOgotICAgICAgICAgICAgbGluayhqdW1wLCBibG9jay0+
c3VjY2Vzc29yQmxvY2soMCkpOwotICAgICAgICAgICAgaWYgKGJsb2NrLT5zdWNjZXNzb3JCbG9j
aygxKSAhPSBjb2RlLmZpbmROZXh0QmxvY2soYmxvY2spKQotICAgICAgICAgICAgICAgIGxpbmso
aml0Lmp1bXAoKSwgYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDEpKTsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICAvLyBUaGUganVtcCB3b24ndCBiZSBz
ZXQgZm9yIExlYXBPZkZhaXRoIGJlY2F1c2UgaXQgbGV0cyBpdHMgZmFpdGggaW4gdGhlIGFkZHJl
c3Mgb3BlcmFuZAorICAgICAgICAvLyBndWlkZSB3aGVyZSBpdCBqdW1wcy4gSXQgd29uJ3QgYmUg
c2V0IGZvciBPb3BzIGJlY2F1c2UgdGhlbiBpdCB3b24ndCBoYXZlIGFueSBzdWNjZXNzb3JzLgor
ICAgICAgICBpZiAoanVtcC5pc1NldCgpKSB7CisgICAgICAgICAgICBzd2l0Y2ggKGJsb2NrLT5u
dW1TdWNjZXNzb3JzKCkpIHsKKyAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICBs
aW5rKGp1bXAsIGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKSk7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICAgICAgbGluayhqdW1wLCBibG9j
ay0+c3VjY2Vzc29yQmxvY2soMCkpOworICAgICAgICAgICAgICAgIGlmIChibG9jay0+c3VjY2Vz
c29yQmxvY2soMSkgIT0gY29kZS5maW5kTmV4dEJsb2NrKGJsb2NrKSkKKyAgICAgICAgICAgICAg
ICAgICAgbGluayhqaXQuanVtcCgpLCBibG9jay0+c3VjY2Vzc29yQmxvY2soMSkpOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBS
RUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGFkZEl0ZW0oYmxvY2stPmxhc3QoKSk7CiAg
ICAgfQorICAgIAorICAgIC8vIFRha2UgY2FyZSBvZiBMZWFwT2ZGYWl0aC4gV2UgZG8gdGhpcyBs
YXN0IGJlY2F1c2UgaXQgcmVsaWVzIG9uIGtub3dpbmcgd2hlcmUgYWxsIG9mIHRoZSBiYXNpYwor
ICAgIC8vIGJsb2NrIGxhbmRlZC4KKyAgICBmb3IgKEJhc2ljQmxvY2sqIGJsb2NrIDogY29kZSkg
eworICAgICAgICBpZiAoYmxvY2stPmxhc3QoKS5vcGNvZGUgIT0gTGVhcE9mRmFpdGgpCisgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgCisgICAgICAgIExlYXBPZkZhaXRoVmFsdWUqIGxl
YXBPZkZhaXRoID0gYmxvY2stPmxhc3QoKS5vcmlnaW4tPmFzPExlYXBPZkZhaXRoVmFsdWU+KCk7
CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKGxlYXBPZkZhaXRoLT5udW1TdWNjZXNzb3JzKCkgPT0g
YmxvY2stPm51bVN1Y2Nlc3NvcnMoKSk7CisgICAgICAgIAorICAgICAgICBSZWZQdHI8U2hhcmVk
VGFzazxMZWFwT2ZGYWl0aFZhbHVlOjpDYWxsYmFja0Z1bmN0aW9uVHlwZT4+IHRhc2sgPSBsZWFw
T2ZGYWl0aC0+Y2FsbGJhY2tUYXNrKCk7CisgICAgICAgIGlmICghdGFzaykKKyAgICAgICAgICAg
IGNvbnRpbnVlOyAvLyBUaGlzIHdvdWxkIGJlIHdlaXJkLCBidXQgd2UgYWxsb3cgaXQuCisgICAg
ICAgIAorICAgICAgICBWZWN0b3I8Q0NhbGxIZWxwZXJzOjpMYWJlbD4gbGFiZWxzOworICAgICAg
ICBmb3IgKEJhc2ljQmxvY2sqIHN1Y2Nlc3NvciA6IGJsb2NrLT5zdWNjZXNzb3JCbG9ja3MoKSkK
KyAgICAgICAgICAgIGxhYmVscy5hcHBlbmQoYmxvY2tMYWJlbHNbc3VjY2Vzc29yXSk7CisgICAg
ICAgIAorICAgICAgICBqaXQuYWRkTGlua1Rhc2soCisgICAgICAgICAgICBbPV0gKExpbmtCdWZm
ZXImIGxpbmtCdWZmZXIpIHsKKyAgICAgICAgICAgICAgICBWZWN0b3I8TWFjcm9Bc3NlbWJsZXJD
b2RlUHRyPiBwb2ludGVyczsKKyAgICAgICAgICAgICAgICBmb3IgKENDYWxsSGVscGVyczo6TGFi
ZWwgbGFiZWwgOiBsYWJlbHMpCisgICAgICAgICAgICAgICAgICAgIHBvaW50ZXJzLmFwcGVuZChs
aW5rQnVmZmVyLmxvY2F0aW9uT2YobGFiZWwpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAg
ICAgICAgICB0YXNrLT5ydW4ocG9pbnRlcnMpOworICAgICAgICAgICAgfSk7CisgICAgfQogCiAg
ICAgcGNUb09yaWdpbk1hcC5hcHBlbmRJdGVtKGppdC5sYWJlbCgpLCBPcmlnaW4oKSk7CiAgICAg
Ly8gRklYTUU6IE1ha2UgbGF0ZSBwYXRocyBoYXZlIE9yaWdpbnM6IGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM2ODkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvQWlySW5zdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJJbnN0LmNwcAkocmV2aXNpb24gMjAxMzUwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL2Fpci9BaXJJbnN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDUsNiArNDUsMTEg
QEAgYm9vbCBJbnN0OjpoYXNBcmdFZmZlY3RzKCkKICAgICByZXR1cm4gcmVzdWx0OwogfQogCiti
b29sIEluc3Q6OmlzQ2xvbmVhYmxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIW9yaWdpbiB8fCBv
cmlnaW4tPmlzQ2xvbmVhYmxlKCk7Cit9CisKIHZvaWQgSW5zdDo6ZHVtcChQcmludFN0cmVhbSYg
b3V0KSBjb25zdAogewogICAgIG91dC5wcmludChvcGNvZGUsICIgIiwgbGlzdER1bXAoYXJncykp
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0LmgJKHJldmlzaW9uIDIw
MTM1MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xODcsNiArMTg3LDEwIEBAIHB1YmxpYzoKICAgICAvLyAgICAgQWRkIFRtcDEs
IFRtcDIsIFRtcDMKICAgICAvLyByZXR1cm5zIDIgaWYgMCBhbmQgMSBiZW5lZml0IGZyb20gYWxp
YXNpbmcgdG8gVG1wMy4KICAgICBPcHRpb25hbDx1bnNpZ25lZD4gc2hvdWxkVHJ5QWxpYXNpbmdE
ZWYoKTsKKyAgICAKKyAgICAvLyBTb21lIGluc3R1Y3Rpb25zIHdpbGwgcmVmdXNlIHRvIGFsbG93
IGNsb25pbmcuIElmIHRoaXMgcmV0dXJucyBmYWxzZSwgeW91IG11c3QgbWFrZSBzdXJlIHRoYXQK
KyAgICAvLyB5b3UgbmV2ZXIgaW50cm9kdWNlIGNvcGllcyBvZiB0aGUgaW5zdHJ1Y3Rpb24uCisg
ICAgYm9vbCBpc0Nsb25lYWJsZSgpOwogCiAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29u
c3Q7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29k
ZXMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUu
b3Bjb2RlcwkocmV2aXNpb24gMjAxMzUwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fp
ci9BaXJPcGNvZGUub3Bjb2Rlcwkod29ya2luZyBjb3B5KQpAQCAtODM1LDYgKzgzNSwxNCBAQCBN
b3ZlRG91YmxlQ29uZGl0aW9uYWxseUZsb2F0IFU6RzozMiwgVTpGCiAKIEp1bXAgL2JyYW5jaAog
CisjIFRoaXMgbWFzcXVlcmFkZXMgYXMgYSBub24tYnJhbmNoIHRlcm1pbmFsIGJlY2F1c2UgaXQg
ZG9lc24ndCBuZWVkIHRoZSB0cmFkaXRpb25hbCBzb3J0IG9mIGxpbmtpbmcuCisjICJCcmFuY2gi
IGluIHRoaXMgY29udGV4dCBqdXN0IG1lYW5zIHRoYXQgaXQncyBhIHRlcm1pbmFsIHRoYXQgcmV0
dXJucyBhIEp1bXAgdGhhdCBuZWVkcyB0byBiZQorIyBsaW5rZWQuIEluc3RlYWQsIEFpcjo6Z2Vu
ZXJhdGUoKSBoYXMgYSBzcGVjaWFsLWNhc2UgZm9yIExlYXBPZkZhaXRoLgorTGVhcE9mRmFpdGgg
VTpHOlB0ciAvdGVybWluYWwKKyAgICBUbXAgYXMganVtcAorICAgIHg4NjogQWRkciBhcyBqdW1w
CisgICAgeDg2OiBJbmRleCBhcyBqdW1wCisKIFJldDMyIFU6RzozMiAvcmV0dXJuCiAgICAgVG1w
CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyVmFsaWRhdGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyVmFsaWRhdGUuY3Bw
CShyZXZpc2lvbiAyMDEzNTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclZh
bGlkYXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODksNiArODksMTYgQEAgcHVibGljOgogICAg
ICAgICAgICAgICAgICAgICAgICAgVkFMSURBVEUoJmFyZyA+PSAmaW5zdC5hcmdzWzBdLCAoIkF0
ICIsIGFyZywgIiBpbiAiLCBpbnN0LCAiIGluICIsICpibG9jaykpOwogICAgICAgICAgICAgICAg
ICAgICAgICAgVkFMSURBVEUoJmFyZyA8PSAmaW5zdC5hcmdzLmxhc3QoKSwgKCJBdCAiLCBhcmcs
ICIgaW4gIiwgaW5zdCwgIiBpbiAiLCAqYmxvY2spKTsKICAgICAgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gU29tZSBpbnN0cnVjdGlvbnMg
aGF2ZSBzb21lIGFkZGl0aW9uYWwgcnVsZXMuCisgICAgICAgICAgICAgICAgc3dpdGNoIChpbnN0
Lm9wY29kZSkgeworICAgICAgICAgICAgICAgIGNhc2UgTGVhcE9mRmFpdGg6CisgICAgICAgICAg
ICAgICAgICAgIGZvciAoQmFzaWNCbG9jayogc3VjY2Vzc29yIDogYmxvY2stPnN1Y2Nlc3NvckJs
b2NrcygpKQorICAgICAgICAgICAgICAgICAgICAgICAgVkFMSURBVEUoc3VjY2Vzc29yLT5oYXND
YWxsYmFja3MoKSwgKCJBdCAiLCAqYmxvY2ssICItPiIsICpzdWNjZXNzb3IpKTsKKyAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAg
ICAgICAgZm9yIChCYXNpY0Jsb2NrKiBzdWNjZXNzb3IgOiBibG9jay0+c3VjY2Vzc29yQmxvY2tz
KCkpCiAgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsaWRCbG9ja3MuY29udGFpbnMoc3VjY2Vz
c29yKSwgKCJJbiAiLCAqYmxvY2spKTsKSW5kZXg6IFdlYnNpdGVzL3dlYmtpdC5vcmcvZG9jcy9i
My9pbnRlcm1lZGlhdGUtcmVwcmVzZW50YXRpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRl
cy93ZWJraXQub3JnL2RvY3MvYjMvaW50ZXJtZWRpYXRlLXJlcHJlc2VudGF0aW9uLmh0bWwJKHJl
dmlzaW9uIDIwMTM1MCkKKysrIFdlYnNpdGVzL3dlYmtpdC5vcmcvZG9jcy9iMy9pbnRlcm1lZGlh
dGUtcmVwcmVzZW50YXRpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNDEyLDExICs0MTIsMTIg
QEAKICAgICAgICAgdGhlIENDYWxsVmFsdWUgY2xhc3MuPC9kZD4KIAogICAgICAgPGR0PlQxIFBh
dGNocG9pbnQoW1QyLCBbVDMsIC4uLl1dKTwvZHQ+Ci0gICAgICA8ZGQ+QSBQYXRjaHBvaW50IGlz
IGEgY3VzdG9taXphYmxlIHZhbHVlLiAgUGF0Y2hwb2ludHMgdGFrZSB6ZXJvIG9yIG1vcmUgdmFs
dWVzIG9mIGFueQotICAgICAgICB0eXBlIGFuZCByZXR1cm4gYW55IHR5cGUuICBBIFBhdGNocG9p
bnQncyBiZWhhdmlvciBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBnZW5lcmF0b3IKLSAgICAgICAgb2Jq
ZWN0LiAgVGhlIGdlbmVyYXRvciBpcyBhIEMrKyBsYW1iZGEgdGhhdCBnZXRzIGNhbGxlZCBkdXJp
bmcgY29kZSBnZW5lcmF0aW9uLiAgSXQgZ2V0cwotICAgICAgICBwYXNzZWQgYW4gYXNzZW1ibGVy
IGluc3RhbmNlIChzcGVjaWZpY2FsbHksIENDYWxsSGVscGVycyYpIGFuZCBhbiBvYmplY3QgZGVz
Y3JpYmluZwotICAgICAgICB3aGVyZSB0byBmaW5kIGFsbCBvZiB0aGUgaW5wdXQgdmFsdWVzIGFu
ZCB3aGVyZSB0byBwdXQgdGhlIHJlc3VsdC4gIEhlcmUncyBhbiBleGFtcGxlOgorICAgICAgPGRk
PgorICAgICAgICA8cD5BIFBhdGNocG9pbnQgaXMgYSBjdXN0b21pemFibGUgdmFsdWUuICBQYXRj
aHBvaW50cyB0YWtlIHplcm8gb3IgbW9yZSB2YWx1ZXMgb2YgYW55CisgICAgICAgICAgdHlwZSBh
bmQgcmV0dXJuIGFueSB0eXBlLiAgQSBQYXRjaHBvaW50J3MgYmVoYXZpb3IgaXMgZGV0ZXJtaW5l
ZCBieSB0aGUgZ2VuZXJhdG9yCisgICAgICAgICAgb2JqZWN0LiAgVGhlIGdlbmVyYXRvciBpcyBh
IEMrKyBsYW1iZGEgdGhhdCBnZXRzIGNhbGxlZCBkdXJpbmcgY29kZSBnZW5lcmF0aW9uLiAgSXQg
Z2V0cworICAgICAgICAgIHBhc3NlZCBhbiBhc3NlbWJsZXIgaW5zdGFuY2UgKHNwZWNpZmljYWxs
eSwgQ0NhbGxIZWxwZXJzJikgYW5kIGFuIG9iamVjdCBkZXNjcmliaW5nCisgICAgICAgICAgd2hl
cmUgdG8gZmluZCBhbGwgb2YgdGhlIGlucHV0IHZhbHVlcyBhbmQgd2hlcmUgdG8gcHV0IHRoZSBy
ZXN1bHQuICBIZXJlJ3MgYW4gZXhhbXBsZTo8L3A+CiAgCiAgICAgICAgIDxwcmU+PGNvZGU+UGF0
Y2hwb2ludFZhbHVlKiBwYXRjaHBvaW50ID0gYmxvY2stPmFwcGVuZE5ldyZsdDtQYXRjaHBvaW50
VmFsdWUmZ3Q7KHByb2MsIEludDMyLCBPcmlnaW4oKSk7CiBwYXRjaHBvaW50LT5hcHBlbmQoQ29u
c3RyYWluZWRWYWx1ZShhcmcxLCBWYWx1ZVJlcDo6U29tZVJlZ2lzdGVyKSk7CkBAIC01MjYsNiAr
NTI3LDIyIEBAIHBhdGNocG9pbnQtPnNldEdlbmVyYXRvcigKICAgICAgICAgYWxzbyBjb250YWlu
cyBhIGZhbGwtdGhyb3VnaCB0YXJnZXQgaW4gY2FzZSB0aGUgY2hpbGQgaGFzIGEgdmFsdWUgdGhh
dCB3YXNuJ3QgbWVudGlvbmVkCiAgICAgICAgIGluIHRoZSBjYXNlcyBsaXN0LiAgTXVzdCB1c2Ug
dGhlIFN3aXRjaFZhbHVlIGNsYXNzLiAgTXVzdCBhcHBlYXIgYXQgdGhlIGVuZCBvZiB0aGUgYmFz
aWMKICAgICAgICAgYmxvY2suPC9kZD4KKyAgICAgIAorICAgICAgPGR0PlZvaWQgTGVhcE9mRmFp
dGgoSW50UHRyLCBibG9ja3MuLi4pPC9kdD4KKyAgICAgIDxkZD4KKyAgICAgICAgPHA+SnVtcHMg
dG8gdGhlIGdpdmVuIGFkZHJlc3MuIFRoZSBjb21waWxlciB3aWxsIGFzc3VtZSB0aGF0IHRoaXMg
anVtcHMgdG8gb25lIG9mIHRoZSBnaXZlbgorICAgICAgICAgIGJsb2Nrcy4gVGhlIGNvbXBpbGVy
IG1ha2VzIG5vIGF0dGVtcHQgdG8gcHJvdmUgb3IgdmFsaWRhdGUgdGhhdCB0aGUgcGFzc2VkIGp1
bXAgYWRkcmVzcyBpcworICAgICAgICAgIGFjdHVhbGx5IHRoZSBhZGRyZXNzIG9mIGFueSBvZiB0
aG9zZSBibG9ja3MuIE5vbnNlbnNpY2FsIHRoaW5ncyB3aWxsIGhhcHBlbiBpZiB0aGUgcGFzc2Vk
CisgICAgICAgICAgYWRkcmVzcyBpcyBub3QgdGhlIGFkZHJlc3Mgb2Ygb25lIG9mIHRoZSBibG9j
a3MgaW4gdGhlIHN1Y2Nlc3NvciBsaXN0LiBZb3UgY2FuIGFycmFuZ2UgdG8gZ2V0CisgICAgICAg
ICAgdGhlIGFkZHJlc3NlcyBvZiBibG9ja3MgdXNpbmcgdGhlIEJhc2ljQmxvY2sgQVBJLiBUaGlz
IGlzIHVzZWQgaW50ZXJuYWxseSBmb3IgbG93ZXJpbmcKKyAgICAgICAgICBTd2l0Y2ggb3Bjb2Rl
cy4gWW91IGNhbiB1c2UgaXQgZGlyZWN0bHkgZm9yIGltcGxlbWVudGluZyB0aGluZ3MgbGlrZSB0
aHJlYWRlZAorICAgICAgICAgIGludGVycHJldGVycy48L3A+CisgICAgICAKKyAgICAgICAgPHA+
QSBjbG9zZWx5IHJlbGF0ZWQgZmVhdHVyZSBpcyBCYXNpY0Jsb2NrIGNhbGxiYWNrcy4gSWYgeW91
IHJlZ2lzdGVyIGEgY2FsbGJhY2sgd2l0aCBhCisgICAgICAgICAgQmFzaWNCbG9jaywgdGhlbiB0
aGUgY29tcGlsZXIgd2lsbCB0ZWxsIHlvdSB3aGVyZSBpbiBtZW1vcnkgdGhlIEJhc2ljQmxvY2sg
ZW5kZWQgdXAuIFdlCisgICAgICAgICAgY3VycmVudGx5IHJlcXVpcmUgdGhhdCB0aGUgc3VjY2Vz
c29ycyBvZiBhIExlYXBPZkZhaXRoIGhhdmUgY2FsbGJhY2tzIHNldCBhbmQgaXQgd291bGQgYmUK
KyAgICAgICAgICBjb3JyZWN0IHRvIGRyb3AgdGhlIGNhbGxiYWNrcyBvZiBhbnkgYmxvY2sgdGhh
dCBkb2Vzbid0IGhhdmUgYSBMZWFwT2ZGYWl0aCBwcmVkZWNlc3Nvci48L3A+CisgICAgICA8L2Rk
PgogCiAgICAgICA8ZHQ+Vm9pZCBSZXR1cm4oVCk8L2R0PgogICAgICAgPGRkPldvcmtzIGZvciBh
bnkgdHlwZSBleGNlcHQgVm9pZC4gIFJldHVybnMgdGhlIGdpdmVuIHZhbHVlIGFuZCB0ZXJtaW5h
dGVzIHRoZSBwcm9jZWR1cmUuCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRj
aC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9iaWdz
d2l0Y2gtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9iaWdzd2l0Y2gtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAgQEAK
K0pTUmVncmVzcy9iaWdzd2l0Y2gKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNo
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2guaHRt
bAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICIt
Ly9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYmlnc3dpdGNoLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2JpZ3N3
aXRjaC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0
cy9iaWdzd2l0Y2guanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Nj
cmlwdC10ZXN0cy9iaWdzd2l0Y2guanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMTEgQEAK
K2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCAxMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHZhbHVlID0gaSAmIDYzOworICAgICAg
ICBzd2l0Y2ggKHZhbHVlKSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLmE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAg
cmVzdWx0ICs9IG8uYjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6CisgICAg
ICAgICAgICByZXN1bHQgKz0gby5jOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
MzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSA0OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIDU6CisgICAgICAgICAgICByZXN1bHQgKz0gby5mOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA3OgorICAgICAgICAgICAgcmVzdWx0ICs9
IG8uaDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDg6CisgICAgICAgICAgICBy
ZXN1bHQgKz0gby5pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgOToKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAx
MDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSAxMToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSAxMjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxMzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmM7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxNDoKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLmQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxNToKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxNjoK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmY7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSAxNzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSAxODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSAxOToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyMDoKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyMToKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyMjoKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSAyMzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSAyNDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSAyNToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmM7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyNjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
LmQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyNzoKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyODoKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLmY7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAy
OToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSAzMDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSAzMToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzMjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzMzoKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzNDoKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzNToK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSAzNjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSAzNzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSAzODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmM7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzOToKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLmQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0MDoKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0MToKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLmY7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSA0MjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSA0MzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSA0NDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0NToKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
Lmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0NjoKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0NzoKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0
ODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSA0OToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSA1MDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1MToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1MjoKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLmE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1MzoKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1NDoK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSA1NToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmQ7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSA1NjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmU7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSA1NzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmY7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1ODoKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1OToKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLmg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA2MDoKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSA2MToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSA2MjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLno7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworfQor
CisoZnVuY3Rpb24oKSB7CisgICAgdmFyIG8gPSB7YToxLCBiOjIsIGM6MywgZDo0LCBlOjUsIGY6
NiwgZzo3LCBoOjgsIGk6OSwgajoxMCwgazoxMSwgejoxMDB9OworICAgIHZhciByZXN1bHQgPSAw
OworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKKyAgICAgICAgcmVzdWx0ICs9
IGZvbyhvKTsKKyAgICBpZiAocmVzdWx0ICE9IDc5NjYwMDAwKQorICAgICAgICB0aHJvdyAiRXJy
b3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9KSgpOworCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279962</attachid>
            <date>2016-05-27 08:54:26 -0700</date>
            <delta_ts>2016-05-27 14:33:51 -0700</delta_ts>
            <desc>it&apos;s getting so bizarre</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>56725</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMDEzNTApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkod29ya2luZyBjb3B5KQpAQCAtNDE5Niw2ICs0MTk2LDggQEAKIAkJREM2MDVCNUExQ0Uy
NkU5ODAwNTkzNzE4IC8qIFByb2ZpbGVyRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gUHJvZmlsZXJFdmVudC5oOyBwYXRoID0gcHJvZmlsZXIvUHJvZmlsZXJFdmVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzYwNUI1QjFDRTI2RTk4MDA1OTM3MTgg
LyogUHJvZmlsZXJVSUQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
UHJvZmlsZXJVSUQuY3BwOyBwYXRoID0gcHJvZmlsZXIvUHJvZmlsZXJVSUQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlEQzYwNUI1QzFDRTI2RTk4MDA1OTM3MTggLyogUHJvZmls
ZXJVSUQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUHJvZmlsZXJVSUQuaDsg
cGF0aCA9IHByb2ZpbGVyL1Byb2ZpbGVyVUlELmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCURDNjlBQTYwMUNGNzVERTEwMEM2MjcyRiAvKiBCM0xlYXBPZkZhaXRoVmFsdWUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQjNMZWFwT2ZGYWl0aFZhbHVlLmNw
cDsgcGF0aCA9IGIzL0IzTGVhcE9mRmFpdGhWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCURDNjlBQTYxMUNGNzVERTEwMEM2MjcyRiAvKiBCM0xlYXBPZkZhaXRoVmFsdWUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQjNMZWFwT2ZGYWl0aFZhbHVlLmg7
IHBhdGggPSBiMy9CM0xlYXBPZkZhaXRoVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJREM3OTk3ODExQ0RFOUY5RTAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGFnUmVnaXN0ZXJzTW9kZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDNzk5NzgyMUNERTlGOUUwMDRENEEwOSAv
KiBUYWdSZWdpc3RlcnNNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRh
Z1JlZ2lzdGVyc01vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRENFRTIyMDYx
Q0VCOTg5MDAwMEMyMzk2IC8qIERGR0JhY2t3YXJkc0NGRy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBERkdCYWNrd2FyZHNDRkcuaDsgcGF0aCA9IGRmZy9ERkdCYWNrd2FyZHND
RkcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ3MTAsNiArNDcxMiw4IEBACiAJ
CQkJMEZFQzg1QjQxQkUxNDYyRjAwODBGRjc0IC8qIEIzSW5zZXJ0aW9uU2V0LmNwcCAqLywKIAkJ
CQkwRkVDODVCNTFCRTE0NjJGMDA4MEZGNzQgLyogQjNJbnNlcnRpb25TZXQuaCAqLywKIAkJCQkw
RkVDODVCNjFCRTE0NjJGMDA4MEZGNzQgLyogQjNJbnNlcnRpb25TZXRJbmxpbmVzLmggKi8sCisJ
CQkJREM2OUFBNjAxQ0Y3NURFMTAwQzYyNzJGIC8qIEIzTGVhcE9mRmFpdGhWYWx1ZS5jcHAgKi8s
CisJCQkJREM2OUFBNjExQ0Y3NURFMTAwQzYyNzJGIC8qIEIzTGVhcE9mRmFpdGhWYWx1ZS5oICov
LAogCQkJCTQzNkU1NDUxMUM0NjhFNUYwMEI1QUY3MyAvKiBCM0xlZ2FsaXplTWVtb3J5T2Zmc2V0
cy5jcHAgKi8sCiAJCQkJNDM2RTU0NTIxQzQ2OEU1RjAwQjVBRjczIC8qIEIzTGVnYWxpemVNZW1v
cnlPZmZzZXRzLmggKi8sCiAJCQkJMEYzMzhFMTkxQkYyODZFQTAwMTNDODhGIC8qIEIzTG93ZXJN
YWNyb3MuY3BwICovLApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlclg4NkNvbW1vbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaAkocmV2aXNpb24gMjAxMzUwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1v
bi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMjYyLDYgKzIyNjIsMTIgQEAgcHVibGljOgogICAgICAg
ICBtX2Fzc2VtYmxlci5qbXBfbShhZGRyZXNzLm9mZnNldCwgYWRkcmVzcy5iYXNlKTsKICAgICB9
CiAKKyAgICAvLyBBZGRyZXNzIGlzIGEgbWVtb3J5IGxvY2F0aW9uIGNvbnRhaW5pbmcgdGhlIGFk
ZHJlc3MgdG8ganVtcCB0bworICAgIHZvaWQganVtcChCYXNlSW5kZXggYWRkcmVzcykKKyAgICB7
CisgICAgICAgIG1fYXNzZW1ibGVyLmptcF9tKGFkZHJlc3Mub2Zmc2V0LCBhZGRyZXNzLmJhc2Us
IGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUpOworICAgIH0KKwogCiAgICAgLy8gQXJpdGht
ZXRpYyBjb250cm9sIGZsb3cgb3BlcmF0aW9uczoKICAgICAvLwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oCShyZXZpc2lvbiAyMDEzNTAp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xOTgzLDYgKzE5ODMsMTEgQEAgcHVibGljOgogICAgICAgICBtX2Zvcm1h
dHRlci5vbmVCeXRlT3AoT1BfR1JPVVA1X0V2LCBHUk9VUDVfT1BfSk1QTiwgYmFzZSwgb2Zmc2V0
KTsKICAgICB9CiAgICAgCisgICAgdm9pZCBqbXBfbShpbnQgb2Zmc2V0LCBSZWdpc3RlcklEIGJh
c2UsIFJlZ2lzdGVySUQgaW5kZXgsIGludCBzY2FsZSkKKyAgICB7CisgICAgICAgIG1fZm9ybWF0
dGVyLm9uZUJ5dGVPcChPUF9HUk9VUDVfRXYsIEdST1VQNV9PUF9KTVBOLCBiYXNlLCBpbmRleCwg
c2NhbGUsIG9mZnNldCk7CisgICAgfQorICAgIAogI2lmICFDUFUoWDg2XzY0KQogICAgIHZvaWQg
am1wX20oY29uc3Qgdm9pZCogYWRkcmVzcykKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNCYXNpY0Jsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNCYXNpY0Jsb2NrLmNwcAkocmV2aXNpb24gMjAxMzUwKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwOSw2
ICsxMDksMTUgQEAgdm9pZCBCYXNpY0Jsb2NrOjp1cGRhdGVQcmVkZWNlc3NvcnNBZnRlcgogICAg
IEIzOjp1cGRhdGVQcmVkZWNlc3NvcnNBZnRlcih0aGlzKTsKIH0KIAorYm9vbCBCYXNpY0Jsb2Nr
Ojppc0Nsb25lYWJsZSgpIGNvbnN0Cit7CisgICAgZm9yIChWYWx1ZSogdmFsdWUgOiAqdGhpcykg
eworICAgICAgICBpZiAoIXZhbHVlLT5pc0Nsb25lYWJsZSgpKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBCYXNpY0Jsb2NrOjpk
dW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiB7CiAgICAgb3V0LnByaW50KGR1bXBQcmVmaXgs
IG1faW5kZXgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2suaAko
cmV2aXNpb24gMjAxMzUwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9j
ay5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTUsNiArMTE1LDggQEAgcHVibGljOgogICAgIHZvaWQg
dXBkYXRlUHJlZGVjZXNzb3JzQWZ0ZXIoKTsKIAogICAgIGRvdWJsZSBmcmVxdWVuY3koKSBjb25z
dCB7IHJldHVybiBtX2ZyZXF1ZW5jeTsgfQorICAgIAorICAgIGJvb2wgaXNDbG9uZWFibGUoKSBj
b25zdDsKIAogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0OwogICAgIHZvaWQgZGVl
cER1bXAoY29uc3QgUHJvY2VkdXJlJiwgUHJpbnRTdHJlYW0mKSBjb25zdDsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jsb2NrSW5zZXJ0aW9uU2V0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCbG9ja0luc2VydGlvblNldC5jcHAJKHJldmlz
aW9uIDIwMTM1MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jsb2NrSW5zZXJ0aW9u
U2V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTgsNiArOTgsMTMgQEAgQmFzaWNCbG9jayogQmxv
Y2tJbnNlcnRpb25TZXQ6OnNwbGl0Rm9ydwogICAgIGJsb2NrLT5hZGRQcmVkZWNlc3NvcihyZXN1
bHQpOwogICAgIGZvciAoQmFzaWNCbG9jayogcHJlZGVjZXNzb3IgOiByZXN1bHQtPnByZWRlY2Vz
c29ycygpKQogICAgICAgICBwcmVkZWNlc3Nvci0+cmVwbGFjZVN1Y2Nlc3NvcihibG9jaywgcmVz
dWx0KTsKKyAgICAKKyAgICAvLyBDYWxsYmFja3MgYXJlIHNvcnQgb2YgbGlrZSBwcmVkZWNlc3Nv
cnMuIFdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgJ3Jlc3VsdCcgdGFrZXMgYWxsIG9mCisgICAg
Ly8gJ2Jsb2NrJydzIGNhbGxiYWNrcy4KKyAgICBibG9jay0+dGFrZUVhY2hDYWxsYmFjaygKKyAg
ICAgICAgWyZdIChSZWZQdHI8U2hhcmVkVGFzazx2b2lkKE1hY3JvQXNzZW1ibGVyQ29kZVB0cik+
PiB0YXNrKSB7CisgICAgICAgICAgICByZXN1bHQtPmFkZENhbGxiYWNrVGFzayh0YXNrKTsKKyAg
ICAgICAgfSk7CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzQ29udHJvbFZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzQ29udHJvbFZhbHVlLmgJKHJldmlzaW9uIDIwMTM1MCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM0NvbnRyb2xWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Niw5
ICs0NiwxMCBAQCBwdWJsaWM6CiAgICAgICAgIGNhc2UgUmV0dXJuOgogICAgICAgICBjYXNlIE9v
cHM6CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgY2FzZSBTd2l0Y2g6IAotICAg
ICAgICAgICAgLy8gVGhpcyBpcyBoZXJlIGJlY2F1c2UgU3dpdGNoVmFsdWUgaXMgYSBzdWJjbGFz
cyBvZiBDb250cm9sVmFsdWUsIHNvIHdlIHdhbnQKLSAgICAgICAgICAgIC8vIHN3aXRjaFZhbHVl
LT5hczxDb250cm9sVmFsdWU+KCkgdG8gcmV0dXJuIG5vbi1udWxsLgorICAgICAgICBjYXNlIFN3
aXRjaDoKKyAgICAgICAgY2FzZSBMZWFwT2ZGYWl0aDoKKyAgICAgICAgICAgIC8vIFRoaXMgaXMg
aGVyZSBiZWNhdXNlIFN3aXRjaFZhbHVlIGFuZCBMZWFwT2ZGYWl0aFZhbHVlIGFyZSBzdWJjbGFz
c2VzIG9mIENvbnRyb2xWYWx1ZSwKKyAgICAgICAgICAgIC8vIHNvIHdlIHdhbnQgdGhpbmdzIGxp
a2Ugc3dpdGNoVmFsdWUtPmFzPENvbnRyb2xWYWx1ZT4oKSB0byByZXR1cm4gbm9uLW51bGwuCiAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKQEAgLTc3LDcgKzc4LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIGJvb2wg
cmVwbGFjZVN1Y2Nlc3NvcihCYXNpY0Jsb2NrKiBmcm9tLCBCYXNpY0Jsb2NrKiB0byk7Ci0KKyAg
ICAKICAgICBjb25zdCBGcmVxdWVudGVkQmxvY2smIHRha2VuKCkgY29uc3QKICAgICB7CiAgICAg
ICAgIEFTU0VSVChvcGNvZGUoKSA9PSBKdW1wIHx8IG9wY29kZSgpID09IEJyYW5jaCk7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEYXRhU2VjdGlvbi5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRGF0YVNlY3Rpb24uY3BwCShyZXZpc2lvbiAy
MDEzNTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEYXRhU2VjdGlvbi5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMzEsNyArMzEsNyBAQAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7
CiAKIERhdGFTZWN0aW9uOjpEYXRhU2VjdGlvbihzaXplX3Qgc2l6ZSkKLSAgICA6IG1fZGF0YShm
YXN0TWFsbG9jKHNpemUpKQorICAgIDogbV9kYXRhKGZhc3RaZXJvZWRNYWxsb2Moc2l6ZSkpCiAg
ICAgLCBtX3NpemUoc2l6ZSkKIHsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0R1cGxpY2F0ZVRhaWxzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNEdXBsaWNhdGVUYWlscy5jcHAJKHJldmlzaW9uIDIwMTM1MCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0R1cGxpY2F0ZVRhaWxzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzIs
OSArNzIsMTEgQEAgcHVibGljOgogICAgICAgICBJbmRleFNldDxCYXNpY0Jsb2NrPiBjYW5kaWRh
dGVzOwogCiAgICAgICAgIGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiBtX3Byb2MpIHsKLSAgICAg
ICAgICAgIGlmIChibG9jay0+c2l6ZSgpID4gbV9tYXhTaXplIHx8IGJsb2NrLT5udW1TdWNjZXNz
b3JzKCkgPiBtX21heFN1Y2Nlc3NvcnMpCisgICAgICAgICAgICBpZiAoYmxvY2stPnNpemUoKSA+
IG1fbWF4U2l6ZQorICAgICAgICAgICAgICAgIHx8IGJsb2NrLT5udW1TdWNjZXNzb3JzKCkgPiBt
X21heFN1Y2Nlc3NvcnMKKyAgICAgICAgICAgICAgICB8fCAhYmxvY2stPmlzQ2xvbmVhYmxlKCkp
CiAgICAgICAgICAgICAgICAgY29udGludWU7Ci0KKyAgICAgICAgICAgIAogICAgICAgICAgICAg
Y2FuZGlkYXRlcy5hZGQoYmxvY2spOwogICAgICAgICB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0xlYXBPZkZhaXRoVmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM0xlYXBPZkZhaXRoVmFsdWUuY3BwCShyZXZpc2lvbiAwKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTGVhcE9mRmFpdGhWYWx1ZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQjNMZWFwT2ZGYWl0
aFZhbHVlLmgiCisKKyNpZiBFTkFCTEUoQjNfSklUKQorCisjaW5jbHVkZSAiQjNCYXNpY0Jsb2Nr
LmgiCisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeworCitMZWFwT2ZGYWl0aFZhbHVl
Ojp+TGVhcE9mRmFpdGhWYWx1ZSgpCit7Cit9CisKK3ZvaWQgTGVhcE9mRmFpdGhWYWx1ZTo6YXBw
ZW5kU3VjY2Vzc29yKGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgYmxvY2spCit7CisgICAgbV9zdWNj
ZXNzb3JzLmFwcGVuZChibG9jayk7Cit9CisKK3ZvaWQgTGVhcE9mRmFpdGhWYWx1ZTo6c2V0Q2Fs
bGJhY2tUYXNrKFJlZlB0cjxTaGFyZWRUYXNrPENhbGxiYWNrRnVuY3Rpb25UeXBlPj4gdGFzaykK
K3sKKyAgICBtX3Rhc2sgPSB0YXNrOworfQorCitib29sIExlYXBPZkZhaXRoVmFsdWU6OmlzQ2xv
bmVhYmxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgTGVhcE9mRmFp
dGhWYWx1ZTo6ZHVtcE1ldGEoQ29tbWFQcmludGVyJiBjb21tYSwgUHJpbnRTdHJlYW0mIG91dCkg
Y29uc3QKK3sKKyAgICBDb250cm9sVmFsdWU6OmR1bXBNZXRhKGNvbW1hLCBvdXQpOworICAgIG91
dC5wcmludChjb21tYSwgInRhc2sgPSAiLCBSYXdQb2ludGVyKG1fdGFzay5nZXQoKSkpOworfQor
CitWYWx1ZSogTGVhcE9mRmFpdGhWYWx1ZTo6Y2xvbmVJbXBsKCkgY29uc3QKK3sKKyAgICBkYXRh
TG9nKCJGQVRBTDogQXR0ZW1wdCB0byBjbG9uZSBub24tY2xvbmVhYmxlIExlYXBPZkZhaXRoVmFs
dWUhXG4iKTsKKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCitMZWFwT2ZG
YWl0aFZhbHVlOjpMZWFwT2ZGYWl0aFZhbHVlKE9yaWdpbiBvcmlnaW4sIFZhbHVlKiBjaGlsZCkK
KyAgICA6IENvbnRyb2xWYWx1ZShMZWFwT2ZGYWl0aCwgVm9pZCwgb3JpZ2luLCBjaGlsZCkKK3sK
K30KKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzCisKKyNlbmRpZiAvLyBFTkFCTEUoQjNfSklU
KQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMZWFwT2ZGYWl0aFZhbHVlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTGVhcE9mRmFpdGhWYWx1
ZS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTGVhcE9mRmFp
dGhWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBCM0xlYXBPZkZhaXRoVmFs
dWVfaAorI2RlZmluZSBCM0xlYXBPZkZhaXRoVmFsdWVfaAorCisjaWYgRU5BQkxFKEIzX0pJVCkK
KworI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCisjaW5jbHVkZSA8d3RmL1NoYXJlZFRhc2su
aD4KKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CisKK2NsYXNzIExlYXBPZkZhaXRo
VmFsdWUgOiBwdWJsaWMgQ29udHJvbFZhbHVlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgYm9vbCBh
Y2NlcHRzKE9wY29kZSBvcGNvZGUpIHsgcmV0dXJuIG9wY29kZSA9PSBMZWFwT2ZGYWl0aDsgfQor
ICAgIAorICAgIH5MZWFwT2ZGYWl0aFZhbHVlKCk7CisgICAgCisgICAgSlNfRVhQT1JUX1BSSVZB
VEUgdm9pZCBhcHBlbmRTdWNjZXNzb3IoY29uc3QgRnJlcXVlbnRlZEJsb2NrJik7CisgICAgCisg
ICAgdHlwZWRlZiB2b2lkIENhbGxiYWNrRnVuY3Rpb25UeXBlKGNvbnN0IFZlY3RvcjxNYWNyb0Fz
c2VtYmxlckNvZGVQdHI+Jik7CisgICAgCisgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBzZXRD
YWxsYmFja1Rhc2soUmVmUHRyPFNoYXJlZFRhc2s8Q2FsbGJhY2tGdW5jdGlvblR5cGU+PiB0YXNr
KTsKKyAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jPgorICAgIHZvaWQgc2V0Q2FsbGJh
Y2soY29uc3QgRnVuYyYgZnVuYykKKyAgICB7CisgICAgICAgIHNldENhbGxiYWNrVGFzayhzaGFy
ZWRUYXNrPENhbGxiYWNrRnVuY3Rpb25UeXBlPihmdW5jKSk7CisgICAgfQorICAgIAorICAgIFNo
YXJlZFRhc2s8Q2FsbGJhY2tGdW5jdGlvblR5cGU+KiBjYWxsYmFja1Rhc2soKSBjb25zdCB7IHJl
dHVybiBtX3Rhc2suZ2V0KCk7IH0KKyAgICAKKyAgICBib29sIGlzQ2xvbmVhYmxlKCkgY29uc3Qg
b3ZlcnJpZGU7CisKK3Byb3RlY3RlZDoKKyAgICB2b2lkIGR1bXBNZXRhKENvbW1hUHJpbnRlciYs
IFByaW50U3RyZWFtJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgCisgICAgVmFsdWUqIGNsb25lSW1w
bCgpIGNvbnN0IG92ZXJyaWRlOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBQcm9jZWR1
cmU7CisgICAgCisgICAgSlNfRVhQT1JUX1BSSVZBVEUgTGVhcE9mRmFpdGhWYWx1ZShPcmlnaW4s
IFZhbHVlKiBjaGlsZCk7CisgICAgCisgICAgUmVmUHRyPFNoYXJlZFRhc2s8Q2FsbGJhY2tGdW5j
dGlvblR5cGU+PiBtX3Rhc2s7Cit9OworCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKKworI2Vu
ZGlmIC8vIEVOQUJMRShCM19KSVQpCisKKyNlbmRpZiAvLyBCM0xlYXBPZkZhaXRoVmFsdWVfaAor
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlck1hY3Jvcy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJNYWNyb3MuY3BwCShyZXZp
c2lvbiAyMDEzNTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlck1hY3Jvcy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
NS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkIzQ29uc3RQdHJWYWx1
ZS5oIgogI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNJbnNlcnRpb25T
ZXRJbmxpbmVzLmgiCisjaW5jbHVkZSAiQjNNZW1vcnlWYWx1ZS5oIgogI2luY2x1ZGUgIkIzUGhh
c2VTY29wZS5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJlSW5saW5lcy5oIgogI2luY2x1ZGUgIkIz
U3dpdGNoVmFsdWUuaCIKQEAgLTI3NSw4ICsyNzYsOTMgQEAgcHJpdmF0ZToKICAgICAgICAgY29u
c3QgVmVjdG9yPFN3aXRjaENhc2U+JiBjYXNlcywgdW5zaWduZWQgc3RhcnQsIGJvb2wgaGFyZFN0
YXJ0LCB1bnNpZ25lZCBlbmQsCiAgICAgICAgIEJhc2ljQmxvY2sqIGJlZm9yZSkKICAgICB7Ci0g
ICAgICAgIC8vIEZJWE1FOiBBZGQgdGFibGUtYmFzZWQgc3dpdGNoIGxvd2VyaW5nLgotICAgICAg
ICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxMTQxCisgICAg
ICAgIFZhbHVlKiBjaGlsZCA9IG1fdmFsdWUtPmNoaWxkKDApOworICAgICAgICBUeXBlIHR5cGUg
PSBjaGlsZC0+dHlwZSgpOworICAgICAgICBGcmVxdWVudGVkQmxvY2sgZmFsbFRocm91Z2ggPSBt
X3ZhbHVlLT5hczxTd2l0Y2hWYWx1ZT4oKS0+ZmFsbFRocm91Z2goKTsKKyAgICAgICAgCisgICAg
ICAgIC8vIEl0J3MgYSBnb29kIGlkZWEgdG8gdXNlIGEgdGFibGUtYmFzZWQgc3dpdGNoIGluIHNv
bWUgY2FzZXM6IHRoZSBudW1iZXIgb2YgY2FzZXMgaGFzIHRvIGJlCisgICAgICAgIC8vIGxhcmdl
IGVub3VnaCBhbmQgdGhleSBoYXZlIHRvIGJlIGRlbnNlIGVub3VnaC4gVGhpcyBjb3VsZCBwcm9i
YWJseSBiZSBpbXByb3ZlZCBhIGxvdC4gRm9yCisgICAgICAgIC8vIGV4YW1wbGUsIHdlIGNvdWxk
IHN0aWxsIHVzZSBhIGp1bXAgdGFibGUgaW4gY2FzZXMgd2hlcmUgdGhlIGlucHV0cyBhcmUgc3Bh
cnNlIHNvIGxvbmcgYXMgd2UKKyAgICAgICAgLy8gc2hpZnQgb2ZmIHRoZSB1bmludGVyZXN0aW5n
IGJpdHMuIE9uIHRoZSBvdGhlciBoYW5kLCBpdCdzIG5vdCBjbGVhciB0aGF0IHRoaXMgd291bGQK
KyAgICAgICAgLy8gYWN0dWFsbHkgYmUgYW55IGJldHRlciB0aGFuIHdoYXQgd2UgaGF2ZSBkb25l
IGhlcmUgYW5kIGl0J3Mgbm90IGNsZWFyIHRoYXQgaXQgd291bGQgYmUKKyAgICAgICAgLy8gYmV0
dGVyIHRoYW4gYSBiaW5hcnkgc3dpdGNoLgorICAgICAgICBjb25zdCB1bnNpZ25lZCBtaW5DYXNl
c0ZvclRhYmxlID0gNzsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgZGVuc2l0eUxpbWl0ID0gNDsK
KyAgICAgICAgaWYgKGVuZCAtIHN0YXJ0ID49IG1pbkNhc2VzRm9yVGFibGUpIHsKKyAgICAgICAg
ICAgIGludDY0X3QgZmlyc3RWYWx1ZSA9IGNhc2VzW3N0YXJ0XS5jYXNlVmFsdWUoKTsKKyAgICAg
ICAgICAgIGludDY0X3QgbGFzdFZhbHVlID0gY2FzZXNbZW5kIC0gMV0uY2FzZVZhbHVlKCk7Cisg
ICAgICAgICAgICBpZiAoKGxhc3RWYWx1ZSAtIGZpcnN0VmFsdWUgKyAxKSAvIGNhc2VzLnNpemUo
KSA8IGRlbnNpdHlMaW1pdCkgeworICAgICAgICAgICAgICAgIEJhc2ljQmxvY2sqIHN3aXRjaEJs
b2NrID0gbV9ibG9ja0luc2VydGlvblNldC5pbnNlcnRBZnRlcihtX2Jsb2NrKTsKKyAgICAgICAg
ICAgICAgICBWYWx1ZSogaW5kZXggPSBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAg
ICAgICAgICAgICAgIG1fcHJvYywgU3ViLCBtX29yaWdpbiwgY2hpbGQsCisgICAgICAgICAgICAg
ICAgICAgIGJlZm9yZS0+YXBwZW5kSW50Q29uc3RhbnQobV9wcm9jLCBtX29yaWdpbiwgdHlwZSwg
Zmlyc3RWYWx1ZSkpOworICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgQnJhbmNoLCBtX29yaWdpbiwKKyAg
ICAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAg
ICAgICAgICAgICAgbV9wcm9jLCBBYm92ZSwgbV9vcmlnaW4sIGluZGV4LAorICAgICAgICAgICAg
ICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmRJbnRDb25zdGFudChtX3Byb2MsIG1fb3JpZ2luLCB0
eXBlLCBsYXN0VmFsdWUgLSBmaXJzdFZhbHVlKSksCisgICAgICAgICAgICAgICAgICAgIGZhbGxU
aHJvdWdoLCBGcmVxdWVudGVkQmxvY2soc3dpdGNoQmxvY2spKTsKKyAgICAgICAgICAgICAgICAK
KyAgICAgICAgICAgICAgICBzaXplX3QgdGFibGVTaXplID0gbGFzdFZhbHVlIC0gZmlyc3RWYWx1
ZSArIDE7CisgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKiBqdW1wVGFibGUg
PSBiaXR3aXNlX2Nhc3Q8TWFjcm9Bc3NlbWJsZXJDb2RlUHRyKj4oCisgICAgICAgICAgICAgICAg
ICAgIG1fcHJvYy5hZGREYXRhU2VjdGlvbihzaXplb2YoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKSAq
IHRhYmxlU2l6ZSkpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFZhbHVlKiBi
YXNlID0gc3dpdGNoQmxvY2stPmFwcGVuZEludENvbnN0YW50KAorICAgICAgICAgICAgICAgICAg
ICBtX3Byb2MsIG1fb3JpZ2luLCBwb2ludGVyVHlwZSgpLCBiaXR3aXNlX2Nhc3Q8aW50cHRyX3Q+
KGp1bXBUYWJsZSkpOworICAgICAgICAgICAgICAgIGlmIChpbmRleC0+dHlwZSgpICE9IGJhc2Ut
PnR5cGUoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXgtPnR5cGUoKSA9PSBJbnQz
MikKKyAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gc3dpdGNoQmxvY2stPmFwcGVuZE5l
dzxWYWx1ZT4obV9wcm9jLCBaRXh0MzIsIG1fb3JpZ2luLCBpbmRleCk7CisgICAgICAgICAgICAg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gc3dpdGNoQmxvY2st
PmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBUcnVuYywgbV9vcmlnaW4sIGluZGV4KTsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaW5kZXggPSBzd2l0Y2hCbG9jay0+YXBwZW5k
TmV3PFZhbHVlPigKKyAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBNdWwsIG1fb3JpZ2luLCBp
bmRleCwKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoQmxvY2stPmFwcGVuZEludENvbnN0YW50
KAorICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwgcG9pbnRlclR5cGUo
KSwgc2l6ZW9mKE1hY3JvQXNzZW1ibGVyQ29kZVB0cikpKTsKKyAgICAgICAgICAgICAgICBWYWx1
ZSogcHRyID0gc3dpdGNoQmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBBZGQsIG1fb3Jp
Z2luLCBiYXNlLCBpbmRleCk7CisgICAgICAgICAgICAgICAgVmFsdWUqIGp1bXBUYXJnZXQgPQor
ICAgICAgICAgICAgICAgICAgICBzd2l0Y2hCbG9jay0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPiht
X3Byb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIG1fb3JpZ2luLCBwdHIpOworICAgICAgICAgICAg
ICAgIExlYXBPZkZhaXRoVmFsdWUqIGxlYXBPZkZhaXRoID0KKyAgICAgICAgICAgICAgICAgICAg
c3dpdGNoQmxvY2stPmFwcGVuZE5ldzxMZWFwT2ZGYWl0aFZhbHVlPigKKyAgICAgICAgICAgICAg
ICAgICAgICAgIG1fcHJvYywgTGVhcE9mRmFpdGgsIG1fb3JpZ2luLCBqdW1wVGFyZ2V0KTsKKyAg
ICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBCaXRWZWN0b3IgaGFuZGxlZEluZGljZXM7
CisgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gc3RhcnQ7IGkgPCBlbmQ7ICsraSkg
eworICAgICAgICAgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2sgYmxvY2sgPSBjYXNlc1tpXS50
YXJnZXQoKTsKKyAgICAgICAgICAgICAgICAgICAgaW50NjRfdCB2YWx1ZSA9IGNhc2VzW2ldLmNh
c2VWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICBsZWFwT2ZGYWl0aC0+YXBwZW5kU3VjY2Vz
c29yKGJsb2NrKTsKKyAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGluZGV4ID0gdmFsdWUgLSBm
aXJzdFZhbHVlOworICAgICAgICAgICAgICAgICAgICBBU1NFUlQoIWhhbmRsZWRJbmRpY2VzLmdl
dChpbmRleCkpOworICAgICAgICAgICAgICAgICAgICBoYW5kbGVkSW5kaWNlcy5zZXQoaW5kZXgp
OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBi
b29sIGhhc1VuaGFuZGxlZEluZGV4ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IHRhYmxlU2l6ZTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGlm
ICghaGFuZGxlZEluZGljZXMuZ2V0KGkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBoYXNV
bmhhbmRsZWRJbmRleCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAK
KyAgICAgICAgICAgICAgICBpZiAoaGFzVW5oYW5kbGVkSW5kZXgpCisgICAgICAgICAgICAgICAg
ICAgIGxlYXBPZkZhaXRoLT5hcHBlbmRTdWNjZXNzb3IoZmFsbFRocm91Z2gpOworICAgICAgICAg
ICAgICAgIAorICAgICAgICAgICAgICAgIGxlYXBPZkZhaXRoLT5zZXRDYWxsYmFjaygKKyAgICAg
ICAgICAgICAgICAgICAgWz1dIChjb25zdCBWZWN0b3I8TWFjcm9Bc3NlbWJsZXJDb2RlUHRyPiYg
cG9pbnRlcnMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBwb2ludGVySW5kZXgg
PSAwOworICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaW5kZXggOiBoYW5kbGVk
SW5kaWNlcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBqdW1wVGFibGVbaW5kZXhdID0g
cG9pbnRlcnNbcG9pbnRlckluZGV4KytdOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoaGFzVW5oYW5kbGVkSW5kZXgpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRhYmxlU2l6ZTsgKytpKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaGFuZGxlZEluZGljZXMuZ2V0
KGkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganVtcFRhYmxlW2ldID0g
cG9pbnRlcnNbcG9pbnRlckluZGV4XTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgICAgICAKICAg
ICAgICAgLy8gU2VlIGNvbW1lbnRzIGluIGppdC9CaW5hcnlTd2l0Y2guY3BwIGZvciBhIGp1c3Rp
ZmljYXRpb24gb2YgdGhpcyBhbGdvcml0aG0uIFRoZSBvbmx5CiAgICAgICAgIC8vIHRoaW5nIHdl
IGRvIGRpZmZlcmVudGx5IGlzIHRoYXQgd2UgZG9uJ3QgdXNlIHJhbmRvbW5lc3MuCkBAIC0zMDcs
MjIgKzM5MywxOSBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCiAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgQnJhbmNoLCBtX29y
aWdpbiwKICAgICAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+KAotICAg
ICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBFcXVhbCwgbV9vcmlnaW4sIG1fdmFsdWUtPmNo
aWxkKDApLAorICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBFcXVhbCwgbV9vcmlnaW4s
IGNoaWxkLAogICAgICAgICAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmRJbnRDb25zdGFu
dCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLCBtX3ZhbHVl
LT5jaGlsZCgwKS0+dHlwZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywg
bV9vcmlnaW4sIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZXNbc3RhcnQg
KyBpXS5jYXNlVmFsdWUoKSkpLAogICAgICAgICAgICAgICAgICAgICBjYXNlc1tzdGFydCArIGld
LnRhcmdldCgpLCBGcmVxdWVudGVkQmxvY2sobmV4dENoZWNrKSk7CiAKICAgICAgICAgICAgICAg
ICBiZWZvcmUgPSBuZXh0Q2hlY2s7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGlmIChh
bGxDb25zZWN1dGl2ZSkgewotICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCi0gICAgICAgICAgICAgICAgICAgIG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIGNh
c2VzW2VuZCAtIDFdLnRhcmdldCgpKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICAgICAgYmVmb3JlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgICAgICAgICAg
ICAgbV9wcm9jLCBKdW1wLCBtX29yaWdpbiwgbV92YWx1ZS0+YXM8U3dpdGNoVmFsdWU+KCktPmZh
bGxUaHJvdWdoKCkpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGFsbENvbnNlY3V0
aXZlKQorICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4obV9w
cm9jLCBKdW1wLCBtX29yaWdpbiwgY2FzZXNbZW5kIC0gMV0udGFyZ2V0KCkpOworICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
bV9wcm9jLCBKdW1wLCBtX29yaWdpbiwgZmFsbFRocm91Z2gpOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAKQEAgLTMzNCw5ICs0MTcsOSBAQCBwcml2YXRlOgogICAgICAgICBiZWZv
cmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAogICAgICAgICAgICAgbV9wcm9jLCBCcmFuY2gs
IG1fb3JpZ2luLAogICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+KAotICAgICAg
ICAgICAgICAgIG1fcHJvYywgTGVzc1RoYW4sIG1fb3JpZ2luLCBtX3ZhbHVlLT5jaGlsZCgwKSwK
KyAgICAgICAgICAgICAgICBtX3Byb2MsIExlc3NUaGFuLCBtX29yaWdpbiwgY2hpbGQsCiAgICAg
ICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmRJbnRDb25zdGFudCgKLSAgICAgICAgICAgICAgICAg
ICAgbV9wcm9jLCBtX29yaWdpbiwgbV92YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSwKKyAgICAgICAg
ICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwgdHlwZSwKICAgICAgICAgICAgICAgICAgICAg
Y2FzZXNbbWVkaWFuSW5kZXhdLmNhc2VWYWx1ZSgpKSksCiAgICAgICAgICAgICBGcmVxdWVudGVk
QmxvY2sobGVmdCksIEZyZXF1ZW50ZWRCbG9jayhyaWdodCkpOwogCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAkocmV2aXNpb24gMjAxMzUwKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI0NDEsNiArMjQ0MSwxNiBAQCBwcml2YXRlOgogICAgICAgICAgICAgfQogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBCMzo6TGVhcE9m
RmFpdGg6IHsKKyAgICAgICAgICAgIEFyZ1Byb21pc2UgYWRkciA9IGxvYWRQcm9taXNlKG1fdmFs
dWUtPmNoaWxkKDApKTsKKyAgICAgICAgICAgIGlmIChpc1ZhbGlkRm9ybShBaXI6OkxlYXBPZkZh
aXRoLCBhZGRyLmtpbmQoKSkpIHsKKyAgICAgICAgICAgICAgICBhcHBlbmQoQWlyOjpMZWFwT2ZG
YWl0aCwgYWRkci5jb25zdW1lKCp0aGlzKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgYXBwZW5kKEFpcjo6TGVhcE9mRmFpdGgsIHRtcChtX3Zh
bHVlLT5jaGlsZCgwKSkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAKICAgICAg
ICAgY2FzZSBCMzo6T29wczogewogICAgICAgICAgICAgYXBwZW5kKEFpcjo6T29wcyk7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5jcHAJKHJldmlzaW9uIDIwMTM1MCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI5MCw2ICsyOTAsOSBAQCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgT3Bj
CiAgICAgY2FzZSBTd2l0Y2g6CiAgICAgICAgIG91dC5wcmludCgiU3dpdGNoIik7CiAgICAgICAg
IHJldHVybjsKKyAgICBjYXNlIExlYXBPZkZhaXRoOgorICAgICAgICBvdXQucHJpbnQoIkxlYXBP
ZkZhaXRoIik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFJldHVybjoKICAgICAgICAgb3V0
LnByaW50KCJSZXR1cm4iKTsKICAgICAgICAgcmV0dXJuOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzT3Bjb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzT3Bjb2RlLmgJKHJldmlzaW9uIDIwMTM1MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM09wY29kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTYsNiArMjE2LDEzIEBAIGVudW0g
T3Bjb2RlIDogaW50MTZfdCB7CiAKICAgICAvLyBTd2l0Y2guIFN3aXRjaGVzIG92ZXIgZWl0aGVy
IEludDMyIG9yIEludDY0LiBVc2VzIHRoZSBTd2l0Y2hWYWx1ZSBjbGFzcy4KICAgICBTd2l0Y2gs
CisgICAgCisgICAgLy8gSnVtcCB0byB0aGUgZ2l2ZW4gYWRkcmVzcy4gVGhlIGNvbXBpbGVyIGFz
c3VtZXMgdGhhdCB0aGlzIHdpbGwganVtcCB0byBvbmUgb2YgdGhlIHN1cHBsaWVkCisgICAgLy8g
c3VjY2Vzc29ycywgYnV0IHdpbGwgbWFrZSBhYnNvbHV0ZWx5IG5vIGFzc3VtcHRpb25zIGFib3V0
IHdoaWNoLiBJdCdzIGVudGlyZWx5IHVwIHRvIHRoZSB1c2VyCisgICAgLy8gdG8gYXJyYW5nZSBm
b3IgdGhlIGp1bXAgdG8ganVtcCB0byBvbmUgb2YgdGhvc2Ugc3VjY2Vzc29ycy4gVGhpcyBjYW5u
b3QgdHJhcCBvciBkbyBhbnl0aGluZyBidXQKKyAgICAvLyBqdW1wIHRvIG9uZSBvZiB0aGUgc3Vj
Y2Vzc29yczsgaWYgaXQgZG9lcyBhbnl0aGluZyBlbHNlIHRoZW4gZGVtb25zIHdpbGwgY29tZSBv
dXQgb2YgdGhlIHVzZXIncworICAgIC8vIG5vc2UuIAorICAgIExlYXBPZkZhaXRoLAogCiAgICAg
Ly8gUmV0dXJuLiBOb3RlIHRoYXQgQjMgcHJvY2VkdXJlcyBkb24ndCBrbm93IHRoZWlyIHJldHVy
biB0eXBlLCBzbyB0aGlzIGNhbiBqdXN0IHJldHVybiBhbnkKICAgICAvLyB0eXBlLiBVc2VzIHRo
ZSBDb250cm9sVmFsdWUgY2xhc3MuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQ
cm9jZWR1cmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1By
b2NlZHVyZS5jcHAJKHJldmlzaW9uIDIwMTM1MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1Byb2NlZHVyZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgyLDYgKzgyLDggQEAgVmFyaWFi
bGUqIFByb2NlZHVyZTo6YWRkVmFyaWFibGUoVHlwZSB0eQogCiBWYWx1ZSogUHJvY2VkdXJlOjpj
bG9uZShWYWx1ZSogdmFsdWUpCiB7CisgICAgQVNTRVJUKHZhbHVlLT5pc0Nsb25lYWJsZSgpKTsK
KyAgICAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmFsdWU+IGNsb25lKHZhbHVlLT5jbG9uZUltcGwo
KSk7CiAgICAgY2xvbmUtPm1faW5kZXggPSBVSU5UX01BWDsKICAgICBjbG9uZS0+b3duZXIgPSBu
dWxscHRyOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmgJKHJldmlz
aW9uIDIwMTM1MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xMDEsNiArMTAxLDcgQEAgcHVibGljOgogICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5hbWUuLi4gQXJndW1lbnRzPgogICAgIFZhbHVlVHlwZSog
YWRkKEFyZ3VtZW50cy4uLik7CiAKKyAgICAvLyBOb3RlIHRoYXQgbm90IGFsbCB2YWx1ZXMgYXJl
IGNsb25lYWJsZS4gQ2hlY2sgVmFsdWU6OmlzQ2xvbmVhYmxlKCkgYmVmb3JlIHByb2NlZWRpbmcu
CiAgICAgVmFsdWUqIGNsb25lKFZhbHVlKik7CiAKICAgICBWYWx1ZSogYWRkSW50Q29uc3RhbnQo
T3JpZ2luLCBUeXBlLCBpbnQ2NF90IHZhbHVlKTsKQEAgLTIxOCw2ICsyMTksOSBAQCBwdWJsaWM6
CiAKICAgICBjb25zdCBjaGFyKiBsYXN0UGhhc2VOYW1lKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0
UGhhc2VOYW1lOyB9CiAKKyAgICAvLyBBbGxvY2F0ZXMgYSBzbGFiIG9mIG1lbW9yeSB0aGF0IHdp
bGwgYmUga2VwdCBhbGl2ZSBieSBhbnlvbmUgd2hvIGtlZXBzIHRoZSByZXN1bHRpbmcgY29kZQor
ICAgIC8vIGFsaXZlLiBHcmVhdCBmb3IgY29tcGlsZXItZ2VuZXJhdGVkIGRhdGEgc2VjdGlvbnMs
IGxpa2Ugc3dpdGNoIGp1bXAgdGFibGVzIGFuZCBjb25zdGFudCBwb29scy4KKyAgICAvLyBUaGlz
IHJldHVybnMgbWVtb3J5IHRoYXQgaGFzIGJlZW4gemVyby1pbml0aWFsaXplZC4KICAgICB2b2lk
KiBhZGREYXRhU2VjdGlvbihzaXplX3Qgc2l6ZSk7CiAKICAgICBPcGFxdWVCeXByb2R1Y3RzJiBi
eXByb2R1Y3RzKCkgeyByZXR1cm4gKm1fYnlwcm9kdWN0czsgfQpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcAkocmV2aXNpb24gMjAxMzUwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xNzczLDcgKzE3NzMsMTcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIHZhbHVlLT5vcGNvZGUoKSA9PSBTZWxlY3QKICAgICAgICAgICAgICAgICAgICAg
ICAgICYmICh2YWx1ZS0+Y2hpbGQoMSktPmlzQ29uc3RhbnQoKSAmJiB2YWx1ZS0+Y2hpbGQoMikt
PmlzQ29uc3RhbnQoKSk7CiAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBpZiAoc2Vs
ZWN0KSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBy
ZWxldmFudCBjb2RlIGlzIGNsb25lYWJsZS4KKyAgICAgICAgICAgIGJvb2wgYWxsQXJlQ2xvbmVh
YmxlID0gdHJ1ZTsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgaW5kZXggPSBtX2luZGV4ICsg
MTsgaW5kZXgtLTspIHsKKyAgICAgICAgICAgICAgICBWYWx1ZSogdmFsdWUgPSBtX2Jsb2NrLT5h
dChpbmRleCk7CisgICAgICAgICAgICAgICAgYWxsQXJlQ2xvbmVhYmxlICY9IHZhbHVlLT5pc0Ns
b25lYWJsZSgpOworICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBzZWxlY3QpCisgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAg
ICAgICBpZiAoc2VsZWN0ICYmIGFsbEFyZUNsb25lYWJsZSkgewogICAgICAgICAgICAgICAgIHNw
ZWNpYWxpemVTZWxlY3Qoc2VsZWN0KTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgIH0KQEAgLTE5OTgsNiArMjAwOCw3IEBAIHByaXZhdGU6CiAgICAgICAgIG1fY2hhbmdlZCA9
IHRydWU7CiAKICAgICAgICAgcHJlZGVjZXNzb3ItPnVwZGF0ZVByZWRlY2Vzc29yc0FmdGVyKCk7
CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAogICAgIC8vIFR1cm4gdGhpczogQWRkKGNv
bnN0YW50LCB2YWx1ZSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbGlkYXRl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWxpZGF0ZS5j
cHAJKHJldmlzaW9uIDIwMTM1MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbGlk
YXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzg3LDYgKzM4NywxMyBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICAgICAgVkFMSURBVEUoaXNJbnQodmFsdWUtPmNoaWxkKDApLT50eXBlKCkpLCAoIkF0
ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgPT0g
Vm9pZCwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgTGVhcE9mRmFpdGg6CisgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPm51
bUNoaWxkcmVuKCkgPT0gMSwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJ
REFURSh2YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSA9PSBwb2ludGVyVHlwZSgpLCAoIkF0ICIsICp2
YWx1ZSkpOworICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgPT0gVm9pZCwg
KCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBmb3IgKEJhc2ljQmxvY2sqIHN1Y2Nl
c3NvciA6IHZhbHVlLT5hczxDb250cm9sVmFsdWU+KCktPnN1Y2Nlc3NvckJsb2NrcygpKQorICAg
ICAgICAgICAgICAgICAgICBWQUxJREFURShzdWNjZXNzb3ItPmhhc0NhbGxiYWNrcygpLCAoIkF0
ICIsICp2YWx1ZSwgIi0+IiwgKnN1Y2Nlc3NvcikpOworICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBWQUxJREFURSghKHZhbHVlLT5lZmZlY3RzKCku
d3JpdGVzICYmIHZhbHVlLT5rZXkoKSksICgiQXQgIiwgKnZhbHVlKSk7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzVmFsdWUuY3BwCShyZXZpc2lvbiAyMDEzNTApCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU0MCw2ICs1NDAs
NyBAQCBFZmZlY3RzIFZhbHVlOjplZmZlY3RzKCkgY29uc3QKICAgICBjYXNlIEp1bXA6CiAgICAg
Y2FzZSBCcmFuY2g6CiAgICAgY2FzZSBTd2l0Y2g6CisgICAgY2FzZSBMZWFwT2ZGYWl0aDoKICAg
ICBjYXNlIFJldHVybjoKICAgICBjYXNlIE9vcHM6CiAgICAgICAgIHJlc3VsdC50ZXJtaW5hbCA9
IHRydWU7CkBAIC01NDgsNiArNTQ5LDExIEBAIEVmZmVjdHMgVmFsdWU6OmVmZmVjdHMoKSBjb25z
dAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK2Jvb2wgVmFsdWU6OmlzQ2xvbmVhYmxlKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogVmFsdWVLZXkgVmFsdWU6OmtleSgpIGNvbnN0
CiB7CiAgICAgc3dpdGNoIChvcGNvZGUoKSkgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNW
YWx1ZS5oCShyZXZpc2lvbiAyMDEzNTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNW
YWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMDAsNiArMjAwLDExIEBAIHB1YmxpYzoKICAgICBi
b29sIGlzTGlrZU5vblplcm8oKSBjb25zdCB7IHJldHVybiBhc1RyaVN0YXRlKCkgPT0gVHJ1ZVRy
aVN0YXRlOyB9CiAKICAgICBFZmZlY3RzIGVmZmVjdHMoKSBjb25zdDsKKyAgICAKKyAgICAvLyBT
b21lIG9wZXJhdGlvbnMgd2lsbCByZWZ1c2UgdG8gYmUgY2xvbmVkLiBUaGlzIGhhcHBlbnMgd2hl
biB0aGUgb3BlcmF0aW9uIGhhcyBzb21lIGluc2lkZQorICAgIC8vIGtub3dsZWRnZSBhYm91dCB0
aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gaXRzIGlkZW50aXR5IGFuZCB0aGUgaWRlbnRpdHkgb2Yg
dGhlIGNvZGUgaXQgd2lsbAorICAgIC8vIGdlbmVyYXRlLgorICAgIHZpcnR1YWwgYm9vbCBpc0Ns
b25lYWJsZSgpIGNvbnN0OwogCiAgICAgLy8gVGhpcyByZXR1cm5zIGEgVmFsdWVLZXkgdGhhdCBk
ZXNjcmliZXMgdGhhdCB0aGlzIFZhbHVlIHJldHVybnMgd2hlbiBpdCBleGVjdXRlcy4gUmV0dXJu
cyBhbgogICAgIC8vIGVtcHR5IFZhbHVlS2V5IGlmIHRoaXMgVmFsdWUgaXMgaW1wdXJlLiBOb3Rl
IHRoYXQgYW4gb3BlcmF0aW9uIHRoYXQgcmV0dXJucyBWb2lkIGNvdWxkIHN0aWxsCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcAkocmV2aXNpb24gMjAxMzUwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1
LDcgQEAKICNpbmNsdWRlICJCM0NvbnN0UHRyVmFsdWUuaCIKICNpbmNsdWRlICJCM0NvbnRyb2xW
YWx1ZS5oIgogI2luY2x1ZGUgIkIzRWZmZWN0cy5oIgorI2luY2x1ZGUgIkIzTGVhcE9mRmFpdGhW
YWx1ZS5oIgogI2luY2x1ZGUgIkIzTWF0aEV4dHJhcy5oIgogI2luY2x1ZGUgIkIzTWVtb3J5VmFs
dWUuaCIKICNpbmNsdWRlICJCM1Byb2NlZHVyZS5oIgpAQCAtNDQsNiArNDUsNyBAQAogI2luY2x1
ZGUgIkIzU3dpdGNoVmFsdWUuaCIKICNpbmNsdWRlICJCM1Vwc2lsb25WYWx1ZS5oIgogI2luY2x1
ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCisjaW5jbHVkZSAiQjNWYXJpYWJsZVZhbHVlLmgiCiAjaW5j
bHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiSW5pdGlhbGl6ZVRocmVhZGluZy5oIgog
I2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKQEAgLTEwMTI4LDcgKzEwMTMwLDEwIEBAIHZvaWQgdGVz
dFN3aXRjaENoaWxsRGl2KHVuc2lnbmVkIGRlZ3JlZSwKICAgICBhdXRvIGNvZGUgPSBjb21waWxl
KHByb2MpOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGRlZ3JlZTsgKytpKSB7Ci0g
ICAgICAgIENIRUNLKGludm9rZTxpbnQzMl90PigqY29kZSwgaSAqIGdhcCwgNDIsIDExKSA9PSAo
KGkgJiAxKSA/IDExLzQyIDogNDIvMTEpKTsKKyAgICAgICAgZGF0YUxvZygiaSA9ICIsIGksICJc
biIpOworICAgICAgICBpbnQzMl90IHJlc3VsdCA9IGludm9rZTxpbnQzMl90PigqY29kZSwgaSAq
IGdhcCwgNDIsIDExKTsKKyAgICAgICAgZGF0YUxvZygicmVzdWx0ID0gIiwgcmVzdWx0LCAiXG4i
KTsKKyAgICAgICAgQ0hFQ0socmVzdWx0ID09ICgoaSAmIDEpID8gMTEvNDIgOiA0Mi8xMSkpOwog
ICAgICAgICBpZiAoZ2FwID4gMSkgewogICAgICAgICAgICAgQ0hFQ0soIWludm9rZTxpbnQzMl90
PigqY29kZSwgaSAqIGdhcCArIDEsIDQyLCAxMSkpOwogICAgICAgICAgICAgQ0hFQ0soIWludm9r
ZTxpbnQzMl90PigqY29kZSwgaSAqIGdhcCAtIDEsIDQyLCAxMSkpOwpAQCAtMTIwNTAsNiArMTIw
NTUsMjE4IEBAIHZvaWQgdGVzdExhdGVSZWdpc3RlcigpCiAgICAgQ0hFQ0soaW52b2tlPHVpbnQ2
NF90PigqY29kZSkgPT0gcmVzdWx0KTsKIH0KIAordm9pZCB0aHJlYWRlZEludGVycHJldGVyUHJp
bnQoVmVjdG9yPGludHB0cl90Piogc3RyZWFtLCBpbnRwdHJfdCB2YWx1ZSkKK3sKKyAgICBzdHJl
YW0tPmFwcGVuZCh2YWx1ZSk7Cit9CisKK3ZvaWQgdGVzdFRocmVhZGVkSW50ZXJwcmV0ZXIoKQor
eworICAgIC8vIFRoaXMgY3JlYXRlcyBhIHBvb3IgbWFuJ3MgdGhyZWFkZWQgaW50ZXJwcmV0ZXIg
dXNpbmcgTGVhcE9mRmFpdGggYW5kIHNlZXMgaWYgaXQgd29ya3MuIE5vdGUKKyAgICAvLyB0aGF0
IExlYXBPZkZhaXRoIGlzIG5vdCBsaWtlIGluZGlyZWN0IGJyYW5jaGVzIGluIExMVk0sIHNvIHlv
dSBjYW4ndCBhY3R1YWxseSB1c2UgaXQgdG8KKyAgICAvLyBpbXBsZW1lbnQgYSBwcm9wZXIgdGhy
ZWFkZWQgaW50ZXJwcmV0ZXIuIFRoaXMgY2hlYXRzOiB0aGUgZGlzcGF0Y2ggaW5zdHJ1Y3Rpb24g
aXMgYXQgdGhlIHRvcAorICAgIC8vIG9mIHRoZSBsb29wLiBUaGlzIGFsc28gdGVzdHMgVmFyaWFi
bGVWYWx1ZS4KKyAgICAKKyAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICAKKyAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOworICAgIEJhc2ljQmxvY2sqIGRpc3BhdGNoID0gcHJv
Yy5hZGRCbG9jaygpOworICAgIEJhc2ljQmxvY2sqIGFkZFRvRGF0YVBvaW50ZXIgPSBwcm9jLmFk
ZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayogYWRkVG9Db2RlUG9pbnRlciA9IHByb2MuYWRkQmxv
Y2soKTsKKyAgICBCYXNpY0Jsb2NrKiBhZGRUb0NvZGVQb2ludGVyVGFrZW4gPSBwcm9jLmFkZEJs
b2NrKCk7CisgICAgQmFzaWNCbG9jayogYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuID0gcHJvYy5h
ZGRCbG9jaygpOworICAgIEJhc2ljQmxvY2sqIGFkZFRvRGF0YSA9IHByb2MuYWRkQmxvY2soKTsK
KyAgICBCYXNpY0Jsb2NrKiBwcmludCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBCYXNpY0Jsb2Nr
KiBzdG9wID0gcHJvYy5hZGRCbG9jaygpOworICAgIAorICAgIFZhcmlhYmxlKiBkYXRhUG9pbnRl
ciA9IHByb2MuYWRkVmFyaWFibGUocG9pbnRlclR5cGUoKSk7CisgICAgVmFyaWFibGUqIGNvZGVQ
b2ludGVyID0gcHJvYy5hZGRWYXJpYWJsZShwb2ludGVyVHlwZSgpKTsKKyAgICAKKyAgICByb290
LT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCks
IGRhdGFQb2ludGVyLAorICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOworICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYXJpYWJsZVZhbHVlPigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgY29kZVBv
aW50ZXIsCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7CisgICAgVmFsdWUqIGNvbnRleHQgPSBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMik7CisgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
SnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhkaXNwYXRjaCkpOworICAgIAorICAgIGRp
c3BhdGNoLT5hcHBlbmROZXc8TGVhcE9mRmFpdGhWYWx1ZT4oCisgICAgICAgIHByb2MsIE9yaWdp
bigpLAorICAgICAgICBkaXNwYXRjaC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAg
ICAgIHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLAorICAgICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAgICAgICAgICAgICAgIHByb2MsIEdldCwg
T3JpZ2luKCksIGNvZGVQb2ludGVyKSkpOworICAgIGRpc3BhdGNoLT5hcHBlbmRTdWNjZXNzb3Io
RnJlcXVlbnRlZEJsb2NrKGFkZFRvRGF0YVBvaW50ZXIpKTsKKyAgICBkaXNwYXRjaC0+YXBwZW5k
U3VjY2Vzc29yKEZyZXF1ZW50ZWRCbG9jayhhZGRUb0NvZGVQb2ludGVyKSk7CisgICAgZGlzcGF0
Y2gtPmFwcGVuZFN1Y2Nlc3NvcihGcmVxdWVudGVkQmxvY2soYWRkVG9EYXRhKSk7CisgICAgZGlz
cGF0Y2gtPmFwcGVuZFN1Y2Nlc3NvcihGcmVxdWVudGVkQmxvY2socHJpbnQpKTsKKyAgICBkaXNw
YXRjaC0+YXBwZW5kU3VjY2Vzc29yKEZyZXF1ZW50ZWRCbG9jayhzdG9wKSk7CisgICAgCisgICAg
Ly8gT3VyICJvcGNvZGVzIi4gVGhleSB3aWxsIGhhdmUgbWVhbmluZyBvbmNlIHdlIGNvbXBpbGUu
CisgICAgaW50cHRyX3QgQWRkRFA7CisgICAgaW50cHRyX3QgQWRkQ1A7CisgICAgaW50cHRyX3Qg
QWRkOworICAgIGludHB0cl90IFByaW50OworICAgIGludHB0cl90IFN0b3A7CisgICAgZGlzcGF0
Y2gtPnNldENhbGxiYWNrKAorICAgICAgICBbJl0gKGNvbnN0IFZlY3RvcjxNYWNyb0Fzc2VtYmxl
ckNvZGVQdHI+JiBwb2ludGVycykgeworICAgICAgICAgICAgYXV0byBnZXQgPSBbJl0gKHNpemVf
dCBpbmRleCkgLT4gaW50cHRyX3QgeworICAgICAgICAgICAgICAgIHJldHVybiBiaXR3aXNlX2Nh
c3Q8aW50cHRyX3Q+KHBvaW50ZXJzW2luZGV4XS5leGVjdXRhYmxlQWRkcmVzcygpKTsKKyAgICAg
ICAgICAgIH07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIEFkZERQID0gZ2V0KDApOworICAg
ICAgICAgICAgQWRkQ1AgPSBnZXQoMSk7CisgICAgICAgICAgICBBZGQgPSBnZXQoMik7CisgICAg
ICAgICAgICBQcmludCA9IGdldCgzKTsKKyAgICAgICAgICAgIFN0b3AgPSBnZXQoNCk7CisgICAg
ICAgIH0pOworICAgIAorICAgIC8vIEFkZERQIDxvcGVyYW5kPjogYWRkcyA8b3BlcmFuZD4gdG8g
RFAuCisgICAgVmFsdWUqIGNvZGVQb2ludGVyVmFsdWUgPQorICAgICAgICBhZGRUb0RhdGFQb2lu
dGVyLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgR2V0LCBPcmlnaW4oKSwgY29kZVBv
aW50ZXIpOworICAgIGFkZFRvRGF0YVBvaW50ZXItPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPigK
KyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgZGF0YVBvaW50ZXIsCisgICAgICAgIGFkZFRv
RGF0YVBvaW50ZXItPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBBZGQsIE9y
aWdpbigpLAorICAgICAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhcmlhYmxl
VmFsdWU+KHByb2MsIEdldCwgT3JpZ2luKCksIGRhdGFQb2ludGVyKTsKKyAgICAgICAgICAgIGFk
ZFRvRGF0YVBvaW50ZXItPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICAgICAgcHJvYywg
TXVsLCBPcmlnaW4oKSwKKyAgICAgICAgICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmRO
ZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICAgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVy
VHlwZSgpLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwgc2l6ZW9mKGludHB0cl90KSksCisg
ICAgICAgICAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kSW50Q29uc3RhbnQoCisgICAg
ICAgICAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLCBwb2ludGVyVHlwZSgpLCBzaXplb2YoaW50
cHRyX3QpKSkpKTsKKyAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1
ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyLAorICAgICAgICBh
ZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgQWRk
LCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwKKyAgICAgICAgICAgIGFkZFRvRGF0YVBvaW50
ZXItPmFwcGVuZEludENvbnN0YW50KAorICAgICAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLCBw
b2ludGVyVHlwZSgpLCBzaXplb2YoaW50cHRyX3QpICogMikpKTsKKyAgICBhZGRUb0RhdGFQb2lu
dGVyLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVl
bnRlZEJsb2NrKGRpc3BhdGNoKSk7CisgICAgCisgICAgLy8gQWRkQ1AgPG9wZXJhbmQ+OiBhZGRz
IDxvcGVyYW5kPiB0byBDUCBpZiB0aGUgY3VycmVudCB2YWx1ZSBhdCBEUCBpcyBub24temVybywg
b3RoZXJ3aXNlCisgICAgLy8gZmFsbHMgdGhyb3VnaCBub3JtYWxseS4KKyAgICBjb2RlUG9pbnRl
clZhbHVlID0gYWRkVG9Db2RlUG9pbnRlci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHByb2Ms
IEdldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyKTsKKyAgICBWYWx1ZSogZGF0YVBvaW50ZXJWYWx1
ZSA9IGFkZFRvRGF0YS0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHByb2MsIEdldCwgT3JpZ2lu
KCksIGRhdGFQb2ludGVyKTsKKyAgICBhZGRUb0NvZGVQb2ludGVyLT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKKyAgICAgICAgYWRkVG9D
b2RlUG9pbnRlci0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIExv
YWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLCBkYXRhUG9pbnRlclZhbHVlKSwKKyAgICAgICAg
RnJlcXVlbnRlZEJsb2NrKGFkZFRvQ29kZVBvaW50ZXJUYWtlbiksIEZyZXF1ZW50ZWRCbG9jayhh
ZGRUb0NvZGVQb2ludGVyTm90VGFrZW4pKTsKKyAgICBhZGRUb0NvZGVQb2ludGVyVGFrZW4tPmFw
cGVuZE5ldzxWYXJpYWJsZVZhbHVlPigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgY29k
ZVBvaW50ZXIsCisgICAgICAgIGFkZFRvQ29kZVBvaW50ZXJUYWtlbi0+YXBwZW5kTmV3PFZhbHVl
PigKKyAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUsCisg
ICAgICAgICAgICBhZGRUb0NvZGVQb2ludGVyVGFrZW4tPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAg
ICAgICAgICAgICAgcHJvYywgTXVsLCBPcmlnaW4oKSwKKyAgICAgICAgICAgICAgICBhZGRUb0Nv
ZGVQb2ludGVyVGFrZW4tPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgICAgICAgICAg
ICAgIHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVl
LCBzaXplb2YoaW50cHRyX3QpKSwKKyAgICAgICAgICAgICAgICBhZGRUb0NvZGVQb2ludGVyVGFr
ZW4tPmFwcGVuZEludENvbnN0YW50KAorICAgICAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4o
KSwgcG9pbnRlclR5cGUoKSwgc2l6ZW9mKGludHB0cl90KSkpKSk7CisgICAgYWRkVG9Db2RlUG9p
bnRlclRha2VuLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwg
RnJlcXVlbnRlZEJsb2NrKGRpc3BhdGNoKSk7CisgICAgYWRkVG9Db2RlUG9pbnRlck5vdFRha2Vu
LT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCks
IGNvZGVQb2ludGVyLAorICAgICAgICBhZGRUb0NvZGVQb2ludGVyTm90VGFrZW4tPmFwcGVuZE5l
dzxWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLCBjb2RlUG9pbnRlclZh
bHVlLAorICAgICAgICAgICAgYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuLT5hcHBlbmRJbnRDb25z
dGFudCgKKyAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6
ZW9mKGludHB0cl90KSAqIDIpKSk7CisgICAgYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuLT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1
ZW50ZWRCbG9jayhkaXNwYXRjaCkpOworCisgICAgLy8gQWRkIDxvcGVyYW5kPjogYWRkcyA8b3Bl
cmFuZD4gdG8gdGhlIHNsb3QgcG9pbnRlZCB0byBieSBEUC4KKyAgICBjb2RlUG9pbnRlclZhbHVl
ID0gYWRkVG9EYXRhLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgR2V0LCBPcmlnaW4o
KSwgY29kZVBvaW50ZXIpOworICAgIGRhdGFQb2ludGVyVmFsdWUgPSBhZGRUb0RhdGEtPmFwcGVu
ZE5ldzxWYXJpYWJsZVZhbHVlPihwcm9jLCBHZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRlcik7Cisg
ICAgYWRkVG9EYXRhLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICBwcm9jLCBTdG9y
ZSwgT3JpZ2luKCksCisgICAgICAgIGFkZFRvRGF0YS0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAg
ICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCisgICAgICAgICAgICBhZGRUb0RhdGEtPmFwcGVu
ZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5
cGUoKSwgT3JpZ2luKCksIGRhdGFQb2ludGVyVmFsdWUpLAorICAgICAgICAgICAgYWRkVG9EYXRh
LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICAgICAgICAgIHByb2MsIExvYWQsIHBv
aW50ZXJUeXBlKCksIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLCBzaXplb2YoaW50cHRyX3Qp
KSkpOworICAgIGFkZFRvRGF0YS0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAgICAgICBw
cm9jLCBTZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlciwKKyAgICAgICAgYWRkVG9EYXRhLT5hcHBl
bmROZXc8VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwgY29kZVBvaW50
ZXIsCisgICAgICAgICAgICBhZGRUb0RhdGEtPmFwcGVuZEludENvbnN0YW50KHByb2MsIE9yaWdp
bigpLCBwb2ludGVyVHlwZSgpLCBzaXplb2YoaW50cHRyX3QpICogMikpKTsKKyAgICBhZGRUb0Rh
dGEtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVu
dGVkQmxvY2soZGlzcGF0Y2gpKTsKKyAgICAKKyAgICAvLyBQcmludDogInByaW50cyIgdGhlIHZh
bHVlIHBvaW50ZWQgdG8gYnkgRFAuCisgICAgY29kZVBvaW50ZXJWYWx1ZSA9IGFkZFRvRGF0YS0+
YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHByb2MsIEdldCwgT3JpZ2luKCksIGNvZGVQb2ludGVy
KTsKKyAgICBkYXRhUG9pbnRlclZhbHVlID0gYWRkVG9EYXRhLT5hcHBlbmROZXc8VmFyaWFibGVW
YWx1ZT4ocHJvYywgR2V0LCBPcmlnaW4oKSwgZGF0YVBvaW50ZXIpOworICAgIHByaW50LT5hcHBl
bmROZXc8Q0NhbGxWYWx1ZT4oCisgICAgICAgIHByb2MsIFZvaWQsIE9yaWdpbigpLAorICAgICAg
ICBwcmludC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KAorICAgICAgICAgICAgcHJvYywgT3Jp
Z2luKCksIGJpdHdpc2VfY2FzdDx2b2lkKj4odGhyZWFkZWRJbnRlcnByZXRlclByaW50KSksCisg
ICAgICAgIGNvbnRleHQsCisgICAgICAgIHByaW50LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHBy
b2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLCBkYXRhUG9pbnRlclZhbHVlKSk7Cisg
ICAgcHJpbnQtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPigKKyAgICAgICAgcHJvYywgU2V0LCBP
cmlnaW4oKSwgY29kZVBvaW50ZXIsCisgICAgICAgIHByaW50LT5hcHBlbmROZXc8VmFsdWU+KAor
ICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwgY29kZVBvaW50ZXIsCisgICAgICAgICAg
ICBwcmludC0+YXBwZW5kSW50Q29uc3RhbnQocHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBlKCks
IHNpemVvZihpbnRwdHJfdCkpKSk7CisgICAgcHJpbnQtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZGlzcGF0Y2gpKTsKKyAgICAK
KyAgICAvLyBTdG9wOiByZXR1cm5zLgorICAgIHN0b3AtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgICAgICBzdG9wLT5hcHBlbmRJ
bnRDb25zdGFudChwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgMCkpOworICAgIAorICAg
IGF1dG8gaW50ZXJwcmV0ZXIgPSBjb21waWxlKHByb2MpOworICAgIAorICAgIENIRUNLKEFkZERQ
KTsKKyAgICBDSEVDSyhBZGRDUCk7CisgICAgQ0hFQ0soQWRkKTsKKyAgICBDSEVDSyhQcmludCk7
CisgICAgQ0hFQ0soU3RvcCk7CisgICAgCisgICAgVmVjdG9yPGludHB0cl90PiBkYXRhOworICAg
IFZlY3RvcjxpbnRwdHJfdD4gY29kZTsKKyAgICBWZWN0b3I8aW50cHRyX3Q+IHN0cmVhbTsKKyAg
ICAKKyAgICBkYXRhLmFwcGVuZCgxKTsKKyAgICBkYXRhLmFwcGVuZCgwKTsKKyAgICAKKyAgICAv
LyBXZSdsbCB3cml0ZSBhIHByb2dyYW0gdGhhdCBwcmludHMgdGhlIG51bWJlcnMgMS4uMTAwLgor
ICAgIC8vIFdlIGV4cGVjdCBEUCB0byBwb2ludCBhdCAjMC4KKyAgICBjb2RlLmFwcGVuZChBZGRD
UCk7CisgICAgY29kZS5hcHBlbmQoNik7IC8vIGdvIHRvIGxvb3AgYm9keQorICAgIAorICAgIC8v
IExvb3AgcmUtZW50cnk6CisgICAgLy8gV2UgZXhwZWN0IERQIHRvIHBvaW50IGF0ICMxIGFuZCBm
b3IgIzEgdG8gYmUgb2Zmc2V0IGJ5IC0xMDAuCisgICAgY29kZS5hcHBlbmQoQWRkKTsKKyAgICBj
b2RlLmFwcGVuZCgxMDApOworICAgIAorICAgIGNvZGUuYXBwZW5kKEFkZERQKTsKKyAgICBjb2Rl
LmFwcGVuZCgtMSk7CisgICAgCisgICAgLy8gTG9vcCBoZWFkZXI6CisgICAgLy8gV2UgZXhwZWN0
IERQIHRvIHBvaW50IGF0ICMwLgorICAgIGNvZGUuYXBwZW5kKEFkZERQKTsKKyAgICBjb2RlLmFw
cGVuZCgxKTsKKyAgICAKKyAgICBjb2RlLmFwcGVuZChBZGQpOworICAgIGNvZGUuYXBwZW5kKDEp
OworICAgIAorICAgIGNvZGUuYXBwZW5kKFByaW50KTsKKyAgICAKKyAgICBjb2RlLmFwcGVuZChB
ZGQpOworICAgIGNvZGUuYXBwZW5kKC0xMDApOworICAgIAorICAgIC8vIFdlIHdhbnQgdG8gc3Rv
cCBpZiBpdCdzIHplcm8gYW5kIGNvbnRpbnVlIGlmIGl0J3Mgbm9uLXplcm8uIEFkZENQIHRha2Vz
IHRoZSBicmFuY2ggaWYgaXQncworICAgIC8vIG5vbi16ZXJvLgorICAgIGNvZGUuYXBwZW5kKEFk
ZENQKTsKKyAgICBjb2RlLmFwcGVuZCgtMTEpOyAvLyBnbyB0byBsb29wIHJlLWVudHJ5LgorICAg
IAorICAgIGNvZGUuYXBwZW5kKFN0b3ApOworICAgIAorICAgIENIRUNLKCFpbnZva2U8aW50cHRy
X3Q+KCppbnRlcnByZXRlciwgZGF0YS5kYXRhKCksIGNvZGUuZGF0YSgpLCAmc3RyZWFtKSk7Cisg
ICAgCisgICAgQ0hFQ0soc3RyZWFtLnNpemUoKSA9PSAxMDApOworICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCAxMDA7ICsraSkKKyAgICAgICAgQ0hFQ0soc3RyZWFtW2ldID09IGkgKyAxKTsK
K30KKwogLy8gTWFrZSBzdXJlIHRoZSBjb21waWxlciBkb2VzIG5vdCB0cnkgdG8gb3B0aW1pemUg
YW55dGhpbmcgb3V0LgogTkVWRVJfSU5MSU5FIGRvdWJsZSB6ZXJvKCkKIHsKQEAgLTEzNDU0LDYg
KzEzNjcxLDggQEAgdm9pZCBydW4oY29uc3QgY2hhciogZmlsdGVyKQogICAgIFJVTih0ZXN0U3Bp
bGxVc2VMYXJnZXJUaGFuRGVmKCkpOwogCiAgICAgUlVOKHRlc3RMYXRlUmVnaXN0ZXIoKSk7Cisg
ICAgCisgICAgUlVOKHRlc3RUaHJlYWRlZEludGVycHJldGVyKCkpOwogCiAgICAgaWYgKHRhc2tz
LmlzRW1wdHkoKSkKICAgICAgICAgdXNhZ2UoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvQWlyQ29kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyQ29kZS5oCShyZXZpc2lvbiAyMDEzNTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL0FpckNvZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2lu
Y2x1ZGUgIkFpclNwZWNpYWwuaCIKICNpbmNsdWRlICJBaXJTdGFja1Nsb3QuaCIKICNpbmNsdWRl
ICJBaXJUbXAuaCIKKyNpbmNsdWRlICJCM0luZGV4TWFwLmgiCiAjaW5jbHVkZSAiQjNTcGFyc2VD
b2xsZWN0aW9uLmgiCiAjaW5jbHVkZSAiUmVnaXN0ZXJBdE9mZnNldExpc3QuaCIKICNpbmNsdWRl
ICJTdGFja0FsaWdubWVudC5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9B
aXJHZW5lcmF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fp
ci9BaXJHZW5lcmF0ZS5jcHAJKHJldmlzaW9uIDIwMTM1MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvQWlyR2VuZXJhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NywxMCArNDcs
MTIgQEAKICNpbmNsdWRlICJBaXJWYWxpZGF0ZS5oIgogI2luY2x1ZGUgIkIzQ29tbW9uLmgiCiAj
aW5jbHVkZSAiQjNJbmRleE1hcC5oIgorI2luY2x1ZGUgIkIzTGVhcE9mRmFpdGhWYWx1ZS5oIgog
I2luY2x1ZGUgIkIzUHJvY2VkdXJlLmgiCiAjaW5jbHVkZSAiQjNUaW1pbmdTY29wZS5oIgogI2lu
Y2x1ZGUgIkNDYWxsSGVscGVycy5oIgogI2luY2x1ZGUgIkRpc2FsbG93TWFjcm9TY3JhdGNoUmVn
aXN0ZXJVc2FnZS5oIgorI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKIAogbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBCMyB7IG5hbWVzcGFjZSBBaXIgewogCkBAIC0xODMsNyArMTg1LDggQEAgdm9p
ZCBnZW5lcmF0ZShDb2RlJiBjb2RlLCBDQ2FsbEhlbHBlcnMmIAogCiAgICAgZm9yIChCYXNpY0Js
b2NrKiBibG9jayA6IGNvZGUpIHsKICAgICAgICAgYmxvY2tKdW1wc1tibG9ja10ubGluaygmaml0
KTsKLSAgICAgICAgYmxvY2tMYWJlbHNbYmxvY2tdID0gaml0LmxhYmVsKCk7CisgICAgICAgIEND
YWxsSGVscGVyczo6TGFiZWwgbGFiZWwgPSBqaXQubGFiZWwoKTsKKyAgICAgICAgYmxvY2tMYWJl
bHNbYmxvY2tdID0gbGFiZWw7CiAgICAgICAgIEFTU0VSVChibG9jay0+c2l6ZSgpID49IDEpOwog
ICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYmxvY2stPnNpemUoKSAtIDE7ICsraSkg
ewogICAgICAgICAgICAgSW5zdCYgaW5zdCA9IGJsb2NrLT5hdChpKTsKQEAgLTIxNSwyNiArMjE4
LDU0IEBAIHZvaWQgZ2VuZXJhdGUoQ29kZSYgY29kZSwgQ0NhbGxIZWxwZXJzJiAKICAgICAgICAg
ICAgIGFkZEl0ZW0oYmxvY2stPmxhc3QoKSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAg
ICAgfQotCisgICAgICAgIAogICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAganVtcCA9IGJsb2Nr
LT5sYXN0KCkuZ2VuZXJhdGUoaml0LCBjb250ZXh0KTsKLSAgICAgICAgc3dpdGNoIChibG9jay0+
bnVtU3VjY2Vzc29ycygpKSB7Ci0gICAgICAgIGNhc2UgMDoKLSAgICAgICAgICAgIEFTU0VSVCgh
anVtcC5pc1NldCgpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIDE6Ci0gICAg
ICAgICAgICBsaW5rKGp1bXAsIGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKSk7Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgY2FzZSAyOgotICAgICAgICAgICAgbGluayhqdW1wLCBibG9jay0+
c3VjY2Vzc29yQmxvY2soMCkpOwotICAgICAgICAgICAgaWYgKGJsb2NrLT5zdWNjZXNzb3JCbG9j
aygxKSAhPSBjb2RlLmZpbmROZXh0QmxvY2soYmxvY2spKQotICAgICAgICAgICAgICAgIGxpbmso
aml0Lmp1bXAoKSwgYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDEpKTsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICAvLyBUaGUganVtcCB3b24ndCBiZSBz
ZXQgZm9yIExlYXBPZkZhaXRoIGJlY2F1c2UgaXQgbGV0cyBpdHMgZmFpdGggaW4gdGhlIGFkZHJl
c3Mgb3BlcmFuZAorICAgICAgICAvLyBndWlkZSB3aGVyZSBpdCBqdW1wcy4gSXQgd29uJ3QgYmUg
c2V0IGZvciBPb3BzIGJlY2F1c2UgdGhlbiBpdCB3b24ndCBoYXZlIGFueSBzdWNjZXNzb3JzLgor
ICAgICAgICBpZiAoanVtcC5pc1NldCgpKSB7CisgICAgICAgICAgICBzd2l0Y2ggKGJsb2NrLT5u
dW1TdWNjZXNzb3JzKCkpIHsKKyAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICBs
aW5rKGp1bXAsIGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKSk7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICAgICAgbGluayhqdW1wLCBibG9j
ay0+c3VjY2Vzc29yQmxvY2soMCkpOworICAgICAgICAgICAgICAgIGlmIChibG9jay0+c3VjY2Vz
c29yQmxvY2soMSkgIT0gY29kZS5maW5kTmV4dEJsb2NrKGJsb2NrKSkKKyAgICAgICAgICAgICAg
ICAgICAgbGluayhqaXQuanVtcCgpLCBibG9jay0+c3VjY2Vzc29yQmxvY2soMSkpOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBS
RUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGFkZEl0ZW0oYmxvY2stPmxhc3QoKSk7CiAg
ICAgfQorICAgIAorICAgIC8vIFRha2UgY2FyZSBvZiBMZWFwT2ZGYWl0aC4gV2UgZG8gdGhpcyBs
YXN0IGJlY2F1c2UgaXQgcmVsaWVzIG9uIGtub3dpbmcgd2hlcmUgYWxsIG9mIHRoZSBiYXNpYwor
ICAgIC8vIGJsb2NrIGxhbmRlZC4KKyAgICBmb3IgKEJhc2ljQmxvY2sqIGJsb2NrIDogY29kZSkg
eworICAgICAgICBpZiAoYmxvY2stPmxhc3QoKS5vcGNvZGUgIT0gTGVhcE9mRmFpdGgpCisgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgCisgICAgICAgIExlYXBPZkZhaXRoVmFsdWUqIGxl
YXBPZkZhaXRoID0gYmxvY2stPmxhc3QoKS5vcmlnaW4tPmFzPExlYXBPZkZhaXRoVmFsdWU+KCk7
CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKGxlYXBPZkZhaXRoLT5udW1TdWNjZXNzb3JzKCkgPT0g
YmxvY2stPm51bVN1Y2Nlc3NvcnMoKSk7CisgICAgICAgIAorICAgICAgICBSZWZQdHI8U2hhcmVk
VGFzazxMZWFwT2ZGYWl0aFZhbHVlOjpDYWxsYmFja0Z1bmN0aW9uVHlwZT4+IHRhc2sgPSBsZWFw
T2ZGYWl0aC0+Y2FsbGJhY2tUYXNrKCk7CisgICAgICAgIGlmICghdGFzaykKKyAgICAgICAgICAg
IGNvbnRpbnVlOyAvLyBUaGlzIHdvdWxkIGJlIHdlaXJkLCBidXQgd2UgYWxsb3cgaXQuCisgICAg
ICAgIAorICAgICAgICBWZWN0b3I8Q0NhbGxIZWxwZXJzOjpMYWJlbD4gbGFiZWxzOworICAgICAg
ICBmb3IgKEJhc2ljQmxvY2sqIHN1Y2Nlc3NvciA6IGJsb2NrLT5zdWNjZXNzb3JCbG9ja3MoKSkK
KyAgICAgICAgICAgIGxhYmVscy5hcHBlbmQoYmxvY2tMYWJlbHNbc3VjY2Vzc29yXSk7CisgICAg
ICAgIAorICAgICAgICBqaXQuYWRkTGlua1Rhc2soCisgICAgICAgICAgICBbPV0gKExpbmtCdWZm
ZXImIGxpbmtCdWZmZXIpIHsKKyAgICAgICAgICAgICAgICBWZWN0b3I8TWFjcm9Bc3NlbWJsZXJD
b2RlUHRyPiBwb2ludGVyczsKKyAgICAgICAgICAgICAgICBmb3IgKENDYWxsSGVscGVyczo6TGFi
ZWwgbGFiZWwgOiBsYWJlbHMpCisgICAgICAgICAgICAgICAgICAgIHBvaW50ZXJzLmFwcGVuZChs
aW5rQnVmZmVyLmxvY2F0aW9uT2YobGFiZWwpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAg
ICAgICAgICB0YXNrLT5ydW4ocG9pbnRlcnMpOworICAgICAgICAgICAgfSk7CisgICAgfQogCiAg
ICAgcGNUb09yaWdpbk1hcC5hcHBlbmRJdGVtKGppdC5sYWJlbCgpLCBPcmlnaW4oKSk7CiAgICAg
Ly8gRklYTUU6IE1ha2UgbGF0ZSBwYXRocyBoYXZlIE9yaWdpbnM6IGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM2ODkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvQWlySW5zdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJJbnN0LmNwcAkocmV2aXNpb24gMjAxMzUwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL2Fpci9BaXJJbnN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDUsNiArNDUsMTEg
QEAgYm9vbCBJbnN0OjpoYXNBcmdFZmZlY3RzKCkKICAgICByZXR1cm4gcmVzdWx0OwogfQogCiti
b29sIEluc3Q6OmlzQ2xvbmVhYmxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIW9yaWdpbiB8fCBv
cmlnaW4tPmlzQ2xvbmVhYmxlKCk7Cit9CisKIHZvaWQgSW5zdDo6ZHVtcChQcmludFN0cmVhbSYg
b3V0KSBjb25zdAogewogICAgIG91dC5wcmludChvcGNvZGUsICIgIiwgbGlzdER1bXAoYXJncykp
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0LmgJKHJldmlzaW9uIDIw
MTM1MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xODcsNiArMTg3LDEwIEBAIHB1YmxpYzoKICAgICAvLyAgICAgQWRkIFRtcDEs
IFRtcDIsIFRtcDMKICAgICAvLyByZXR1cm5zIDIgaWYgMCBhbmQgMSBiZW5lZml0IGZyb20gYWxp
YXNpbmcgdG8gVG1wMy4KICAgICBPcHRpb25hbDx1bnNpZ25lZD4gc2hvdWxkVHJ5QWxpYXNpbmdE
ZWYoKTsKKyAgICAKKyAgICAvLyBTb21lIGluc3R1Y3Rpb25zIHdpbGwgcmVmdXNlIHRvIGFsbG93
IGNsb25pbmcuIElmIHRoaXMgcmV0dXJucyBmYWxzZSwgeW91IG11c3QgbWFrZSBzdXJlIHRoYXQK
KyAgICAvLyB5b3UgbmV2ZXIgaW50cm9kdWNlIGNvcGllcyBvZiB0aGUgaW5zdHJ1Y3Rpb24uCisg
ICAgYm9vbCBpc0Nsb25lYWJsZSgpOwogCiAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29u
c3Q7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29k
ZXMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUu
b3Bjb2RlcwkocmV2aXNpb24gMjAxMzUwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fp
ci9BaXJPcGNvZGUub3Bjb2Rlcwkod29ya2luZyBjb3B5KQpAQCAtODM1LDYgKzgzNSwxNCBAQCBN
b3ZlRG91YmxlQ29uZGl0aW9uYWxseUZsb2F0IFU6RzozMiwgVTpGCiAKIEp1bXAgL2JyYW5jaAog
CisjIFRoaXMgbWFzcXVlcmFkZXMgYXMgYSBub24tYnJhbmNoIHRlcm1pbmFsIGJlY2F1c2UgaXQg
ZG9lc24ndCBuZWVkIHRoZSB0cmFkaXRpb25hbCBzb3J0IG9mIGxpbmtpbmcuCisjICJCcmFuY2gi
IGluIHRoaXMgY29udGV4dCBqdXN0IG1lYW5zIHRoYXQgaXQncyBhIHRlcm1pbmFsIHRoYXQgcmV0
dXJucyBhIEp1bXAgdGhhdCBuZWVkcyB0byBiZQorIyBsaW5rZWQuIEluc3RlYWQsIEFpcjo6Z2Vu
ZXJhdGUoKSBoYXMgYSBzcGVjaWFsLWNhc2UgZm9yIExlYXBPZkZhaXRoLgorTGVhcE9mRmFpdGgg
VTpHOlB0ciAvdGVybWluYWwKKyAgICBUbXAgYXMganVtcAorICAgIHg4NjogQWRkciBhcyBqdW1w
CisgICAgeDg2OiBJbmRleCBhcyBqdW1wCisKIFJldDMyIFU6RzozMiAvcmV0dXJuCiAgICAgVG1w
CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyVmFsaWRhdGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyVmFsaWRhdGUuY3Bw
CShyZXZpc2lvbiAyMDEzNTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclZh
bGlkYXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODksNiArODksMTYgQEAgcHVibGljOgogICAg
ICAgICAgICAgICAgICAgICAgICAgVkFMSURBVEUoJmFyZyA+PSAmaW5zdC5hcmdzWzBdLCAoIkF0
ICIsIGFyZywgIiBpbiAiLCBpbnN0LCAiIGluICIsICpibG9jaykpOwogICAgICAgICAgICAgICAg
ICAgICAgICAgVkFMSURBVEUoJmFyZyA8PSAmaW5zdC5hcmdzLmxhc3QoKSwgKCJBdCAiLCBhcmcs
ICIgaW4gIiwgaW5zdCwgIiBpbiAiLCAqYmxvY2spKTsKICAgICAgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy8gU29tZSBpbnN0cnVjdGlvbnMg
aGF2ZSBzb21lIGFkZGl0aW9uYWwgcnVsZXMuCisgICAgICAgICAgICAgICAgc3dpdGNoIChpbnN0
Lm9wY29kZSkgeworICAgICAgICAgICAgICAgIGNhc2UgTGVhcE9mRmFpdGg6CisgICAgICAgICAg
ICAgICAgICAgIGZvciAoQmFzaWNCbG9jayogc3VjY2Vzc29yIDogYmxvY2stPnN1Y2Nlc3NvckJs
b2NrcygpKQorICAgICAgICAgICAgICAgICAgICAgICAgVkFMSURBVEUoc3VjY2Vzc29yLT5oYXND
YWxsYmFja3MoKSwgKCJBdCAiLCAqYmxvY2ssICItPiIsICpzdWNjZXNzb3IpKTsKKyAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAg
ICAgICAgZm9yIChCYXNpY0Jsb2NrKiBzdWNjZXNzb3IgOiBibG9jay0+c3VjY2Vzc29yQmxvY2tz
KCkpCiAgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsaWRCbG9ja3MuY29udGFpbnMoc3VjY2Vz
c29yKSwgKCJJbiAiLCAqYmxvY2spKTsKSW5kZXg6IFdlYnNpdGVzL3dlYmtpdC5vcmcvZG9jcy9i
My9pbnRlcm1lZGlhdGUtcmVwcmVzZW50YXRpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRl
cy93ZWJraXQub3JnL2RvY3MvYjMvaW50ZXJtZWRpYXRlLXJlcHJlc2VudGF0aW9uLmh0bWwJKHJl
dmlzaW9uIDIwMTM1MCkKKysrIFdlYnNpdGVzL3dlYmtpdC5vcmcvZG9jcy9iMy9pbnRlcm1lZGlh
dGUtcmVwcmVzZW50YXRpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNDEyLDExICs0MTIsMTIg
QEAKICAgICAgICAgdGhlIENDYWxsVmFsdWUgY2xhc3MuPC9kZD4KIAogICAgICAgPGR0PlQxIFBh
dGNocG9pbnQoW1QyLCBbVDMsIC4uLl1dKTwvZHQ+Ci0gICAgICA8ZGQ+QSBQYXRjaHBvaW50IGlz
IGEgY3VzdG9taXphYmxlIHZhbHVlLiAgUGF0Y2hwb2ludHMgdGFrZSB6ZXJvIG9yIG1vcmUgdmFs
dWVzIG9mIGFueQotICAgICAgICB0eXBlIGFuZCByZXR1cm4gYW55IHR5cGUuICBBIFBhdGNocG9p
bnQncyBiZWhhdmlvciBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBnZW5lcmF0b3IKLSAgICAgICAgb2Jq
ZWN0LiAgVGhlIGdlbmVyYXRvciBpcyBhIEMrKyBsYW1iZGEgdGhhdCBnZXRzIGNhbGxlZCBkdXJp
bmcgY29kZSBnZW5lcmF0aW9uLiAgSXQgZ2V0cwotICAgICAgICBwYXNzZWQgYW4gYXNzZW1ibGVy
IGluc3RhbmNlIChzcGVjaWZpY2FsbHksIENDYWxsSGVscGVycyYpIGFuZCBhbiBvYmplY3QgZGVz
Y3JpYmluZwotICAgICAgICB3aGVyZSB0byBmaW5kIGFsbCBvZiB0aGUgaW5wdXQgdmFsdWVzIGFu
ZCB3aGVyZSB0byBwdXQgdGhlIHJlc3VsdC4gIEhlcmUncyBhbiBleGFtcGxlOgorICAgICAgPGRk
PgorICAgICAgICA8cD5BIFBhdGNocG9pbnQgaXMgYSBjdXN0b21pemFibGUgdmFsdWUuICBQYXRj
aHBvaW50cyB0YWtlIHplcm8gb3IgbW9yZSB2YWx1ZXMgb2YgYW55CisgICAgICAgICAgdHlwZSBh
bmQgcmV0dXJuIGFueSB0eXBlLiAgQSBQYXRjaHBvaW50J3MgYmVoYXZpb3IgaXMgZGV0ZXJtaW5l
ZCBieSB0aGUgZ2VuZXJhdG9yCisgICAgICAgICAgb2JqZWN0LiAgVGhlIGdlbmVyYXRvciBpcyBh
IEMrKyBsYW1iZGEgdGhhdCBnZXRzIGNhbGxlZCBkdXJpbmcgY29kZSBnZW5lcmF0aW9uLiAgSXQg
Z2V0cworICAgICAgICAgIHBhc3NlZCBhbiBhc3NlbWJsZXIgaW5zdGFuY2UgKHNwZWNpZmljYWxs
eSwgQ0NhbGxIZWxwZXJzJikgYW5kIGFuIG9iamVjdCBkZXNjcmliaW5nCisgICAgICAgICAgd2hl
cmUgdG8gZmluZCBhbGwgb2YgdGhlIGlucHV0IHZhbHVlcyBhbmQgd2hlcmUgdG8gcHV0IHRoZSBy
ZXN1bHQuICBIZXJlJ3MgYW4gZXhhbXBsZTo8L3A+CiAgCiAgICAgICAgIDxwcmU+PGNvZGU+UGF0
Y2hwb2ludFZhbHVlKiBwYXRjaHBvaW50ID0gYmxvY2stPmFwcGVuZE5ldyZsdDtQYXRjaHBvaW50
VmFsdWUmZ3Q7KHByb2MsIEludDMyLCBPcmlnaW4oKSk7CiBwYXRjaHBvaW50LT5hcHBlbmQoQ29u
c3RyYWluZWRWYWx1ZShhcmcxLCBWYWx1ZVJlcDo6U29tZVJlZ2lzdGVyKSk7CkBAIC01MjYsNiAr
NTI3LDMyIEBAIHBhdGNocG9pbnQtPnNldEdlbmVyYXRvcigKICAgICAgICAgYWxzbyBjb250YWlu
cyBhIGZhbGwtdGhyb3VnaCB0YXJnZXQgaW4gY2FzZSB0aGUgY2hpbGQgaGFzIGEgdmFsdWUgdGhh
dCB3YXNuJ3QgbWVudGlvbmVkCiAgICAgICAgIGluIHRoZSBjYXNlcyBsaXN0LiAgTXVzdCB1c2Ug
dGhlIFN3aXRjaFZhbHVlIGNsYXNzLiAgTXVzdCBhcHBlYXIgYXQgdGhlIGVuZCBvZiB0aGUgYmFz
aWMKICAgICAgICAgYmxvY2suPC9kZD4KKyAgICAgIAorICAgICAgPGR0PlZvaWQgTGVhcE9mRmFp
dGgoSW50UHRyLCBibG9ja3MuLi4pPC9kdD4KKyAgICAgIDxkZD4KKyAgICAgICAgPHA+SnVtcHMg
dG8gdGhlIGdpdmVuIGFkZHJlc3MuIFRoZSBjb21waWxlciB3aWxsIGFzc3VtZSB0aGF0IHRoaXMg
anVtcHMgdG8gb25lIG9mIHRoZSBnaXZlbgorICAgICAgICAgIGJsb2Nrcy4gVGhlIGNvbXBpbGVy
IG1ha2VzIG5vIGF0dGVtcHQgdG8gcHJvdmUgb3IgdmFsaWRhdGUgdGhhdCB0aGUgcGFzc2VkIGp1
bXAgYWRkcmVzcyBpcworICAgICAgICAgIGFjdHVhbGx5IHRoZSBhZGRyZXNzIG9mIGFueSBvZiB0
aG9zZSBibG9ja3MuIE5vbnNlbnNpY2FsIHRoaW5ncyB3aWxsIGhhcHBlbiBpZiB0aGUgcGFzc2Vk
CisgICAgICAgICAgYWRkcmVzcyBpcyBub3QgdGhlIGFkZHJlc3Mgb2Ygb25lIG9mIHRoZSBibG9j
a3MgaW4gdGhlIHN1Y2Nlc3NvciBsaXN0LiBZb3UgY2FuIGFycmFuZ2UgdG8KKyAgICAgICAgICBn
ZXQgdGhlIGFkZHJlc3NlcyBvZiBibG9ja3MgYnkgcGFzc2luZyBhIGNhbGxiYWNrIHRvIExlYXBP
ZkZhaXRoLiBUaGlzIGlzIHVzZWQgaW50ZXJuYWxseQorICAgICAgICAgIGZvciBsb3dlcmluZyBT
d2l0Y2ggb3Bjb2Rlcy4gWW91IGNhbiB1c2UgaXQgZGlyZWN0bHkuPC9wPgorICAgICAgCisgICAg
ICAgIDxwPkxlYXBPZkZhaXRoIGlzIG5vdCBjbG9uZWFibGUuIEZvciBlYWNoIExlYXBPZkZhaXRo
IHlvdSBjcmVhdGUsIHRoZXJlIHdpbGwgYmUgb25lIGluZGlyZWN0CisgICAgICAgICAganVtcCBn
ZW5lcmF0ZWQuIFRoaXMgaXMgbmVjZXNzYXJ5IHRvIGVuc3VyZSBzb3VuZG5lc3Mgb2YgdGhlIGNh
bGxiYWNrLiBJZiB0aGUgTGVhcE9mRmFpdGgKKyAgICAgICAgICBjb3VsZCBiZSBjbG9uZWQsIHRo
ZW4gdGhlIGNhbGxiYWNrIHdvdWxkIGdldCBjYWxsZWQgZm9yIGVhY2ggY2xvbmUuIFByZXN1bWFi
bHksIHlvdSdkCisgICAgICAgICAgaW1wbGVtZW50IHRoZSBjYWxsYmFjayBieSBwb3B1bGF0aW5n
IHNvbWUgdGFibGUuIElmIHRoZSBjYWxsYmFjayBnZXRzIGNhbGxlZCBtdWx0aXBsZSB0aW1lcwor
ICAgICAgICAgIHRoZW4gaXQgbWF5IHJldHVybiBkaWZmZXJlbnQgYWRkcmVzc2VzIGVhY2ggdGlt
ZSAtIHNpbmNlIGFmdGVyIGNsb25pbmcgYSBMZWFwT2ZGYWl0aCwgdGhlCisgICAgICAgICAgY29t
cGlsZXIgbWF5IHJldGFyZ2V0IGFueSBvZiBpdHMgc3VjY2Vzc29yIGVkZ2VzLiBUaGlzIHdvdWxk
IGJlIGNvbmZ1c2luZywgc2luY2UgdGhlbiB5b3UKKyAgICAgICAgICB3b3VsZG4ndCBrbm93IHdo
YXQgdG8gZG8gd2l0aCBkaXNjcmVwYW5jaWVzIGJldHdlZW4gYWRkcmVzc2VzIHJldHVybmVkIGJ5
IHRoZSB2YXJpb3VzCisgICAgICAgICAgY2FsbHMgdG8gdGhlIGNhbGxiYWNrLiBEaXNhbGxvd2lu
ZyBjbG9uaW5nIG9mIExlYXBPZkZhaXRoIHNvbHZlcyB0aGlzIHByb2JsZW0uPC9wPgorICAgICAg
ICAKKyAgICAgICAgPHA+QSBjbG9zZWx5IHJlbGF0ZWQgcHJvYmxlbSBpcyB0aGF0IGlmIHlvdSBl
bWl0IG11bHRpcGxlIExlYXBPZkZhaXRoIGluc3RydWN0aW9ucywgdGhlbiBldmVuCisgICAgICAg
ICAgaWYgdGhleSBpbml0aWFsbHkgc2hhcmUgdGhlIHNhbWUgc3VjY2Vzc29ycywgeW91IGNhbm5v
dCBndWFyYW50ZWUgdGhhdCB0aGV5IHdpbGwgY29udGludWUKKyAgICAgICAgICB0byBzaGFyZSB0
aGUgc2FtZSBzdWNjZXNzb3JzIGFmdGVyIG9wdGltaXphdGlvbi4gVGhpcyBtZWFucyB0aGF0IExl
YXBPZkZhaXRoIGNhbm5vdAorICAgICAgICAgIGN1cnJlbnRseSBiZSB1c2VkIGZvciBpbXBsZW1l
bnRpbmcgZGlyZWN0IHRocmVhZGVkIGludGVycHJldGVycywgYXQgbGVhc3Qgbm90IHRoZSBjbGFz
c2ljCisgICAgICAgICAga2luZDogdG8gbWFrZSBpdCB3b3JrLCB5b3UgaGF2ZSB0byBoYXZlIGEg
c2hhcmVkIGRpc3BhdGNoIGJsb2NrIHNvIHRoYXQgeW91IGhhdmUgYSBzaW5nbGUKKyAgICAgICAg
ICBMZWFwT2ZGYWl0aC48L3A+CisgICAgICA8L2RkPgogCiAgICAgICA8ZHQ+Vm9pZCBSZXR1cm4o
VCk8L2R0PgogICAgICAgPGRkPldvcmtzIGZvciBhbnkgdHlwZSBleGNlcHQgVm9pZC4gIFJldHVy
bnMgdGhlIGdpdmVuIHZhbHVlIGFuZCB0ZXJtaW5hdGVzIHRoZSBwcm9jZWR1cmUuCkluZGV4OiBM
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2gtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2gtZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAgQEAKK0pTUmVncmVzcy9iaWdzd2l0Y2gKKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExh
eW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2guaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwx
MiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYmln
c3dpdGNoLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVz
cy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3Rz
L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2JpZ3N3aXRjaC5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9iaWdzd2l0Y2guanMJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9iaWdzd2l0Y2guanMJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwyMTEgQEAKK2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgdmFy
IHJlc3VsdCA9IDA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpIHsKKyAgICAg
ICAgdmFyIHZhbHVlID0gaSAmIDYzOworICAgICAgICBzd2l0Y2ggKHZhbHVlKSB7CisgICAgICAg
IGNhc2UgMDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYjsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICByZXN1bHQgKz0gby5jOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
LmQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0OgorICAgICAgICAgICAgcmVz
dWx0ICs9IG8uZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDU6CisgICAgICAg
ICAgICByZXN1bHQgKz0gby5mOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNjoK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSA3OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaDsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIDg6CisgICAgICAgICAgICByZXN1bHQgKz0gby5pOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgOToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxMDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
Lms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxMToKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLmE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxMjoKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAx
MzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmM7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSAxNDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmQ7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSAxNToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmU7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxNjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmY7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxNzoKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxODoKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxOToK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSAyMDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSAyMToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSAyMjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyMzoKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLmE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyNDoKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLmI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyNToKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLmM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSAyNjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmQ7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSAyNzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmU7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSAyODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmY7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyOToKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
Lmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzMDoKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLmg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzMToKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAz
MjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSAzMzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSAzNDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzNToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzNjoKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLmE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzNzoKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzODoK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSAzOToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmQ7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSA0MDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmU7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSA0MToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmY7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0MjoKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0MzoKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLmg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0NDoKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSA0NToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSA0NjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSA0NzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0ODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
Lmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0OToKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1MDoKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1
MToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSA1MjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSA1MzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1NDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmM7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1NToKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLmQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1NjoKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1NzoK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmY7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSA1ODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSA1OToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSA2MDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA2MToKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA2MjoKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLno7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQor
ICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworfQorCisoZnVuY3Rpb24oKSB7CisgICAgdmFyIG8g
PSB7YToxLCBiOjIsIGM6MywgZDo0LCBlOjUsIGY6NiwgZzo3LCBoOjgsIGk6OSwgajoxMCwgazox
MSwgejoxMDB9OworICAgIHZhciByZXN1bHQgPSAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
MTAwMDA7ICsraSkKKyAgICAgICAgcmVzdWx0ICs9IGZvbyhvKTsKKyAgICBpZiAocmVzdWx0ICE9
IDc5NjYwMDAwKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7
Cit9KSgpOworCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279996</attachid>
            <date>2016-05-27 14:33:51 -0700</date>
            <delta_ts>2016-05-29 11:31:10 -0700</delta_ts>
            <desc>a bit more</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>55868</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMDE0NjgpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkod29ya2luZyBjb3B5KQpAQCAtNDIwMSw2ICs0MjAxLDggQEAKIAkJREM2MDVCNUExQ0Uy
NkU5ODAwNTkzNzE4IC8qIFByb2ZpbGVyRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gUHJvZmlsZXJFdmVudC5oOyBwYXRoID0gcHJvZmlsZXIvUHJvZmlsZXJFdmVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzYwNUI1QjFDRTI2RTk4MDA1OTM3MTgg
LyogUHJvZmlsZXJVSUQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
UHJvZmlsZXJVSUQuY3BwOyBwYXRoID0gcHJvZmlsZXIvUHJvZmlsZXJVSUQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlEQzYwNUI1QzFDRTI2RTk4MDA1OTM3MTggLyogUHJvZmls
ZXJVSUQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUHJvZmlsZXJVSUQuaDsg
cGF0aCA9IHByb2ZpbGVyL1Byb2ZpbGVyVUlELmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCURDNjlBQTYwMUNGNzVERTEwMEM2MjcyRiAvKiBCM0xlYXBPZkZhaXRoVmFsdWUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQjNMZWFwT2ZGYWl0aFZhbHVlLmNw
cDsgcGF0aCA9IGIzL0IzTGVhcE9mRmFpdGhWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCURDNjlBQTYxMUNGNzVERTEwMEM2MjcyRiAvKiBCM0xlYXBPZkZhaXRoVmFsdWUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQjNMZWFwT2ZGYWl0aFZhbHVlLmg7
IHBhdGggPSBiMy9CM0xlYXBPZkZhaXRoVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJREM2OUFBNjUxQ0Y3QTFFRjAwQzYyNzJGIC8qIE1hdGNoUmVzdWx0LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1hdGNoUmVzdWx0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREM3OTk3ODExQ0RFOUY5RTAwNEQ0QTA5IC8qIFRhZ1JlZ2lz
dGVyc01vZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGFnUmVn
aXN0ZXJzTW9kZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDNzk5NzgyMUNE
RTlGOUUwMDRENEEwOSAvKiBUYWdSZWdpc3RlcnNNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFRhZ1JlZ2lzdGVyc01vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTQ3MTYsNiArNDcxOCw4IEBACiAJCQkJMEZFQzg1QjQxQkUxNDYyRjAwODBGRjc0IC8q
IEIzSW5zZXJ0aW9uU2V0LmNwcCAqLywKIAkJCQkwRkVDODVCNTFCRTE0NjJGMDA4MEZGNzQgLyog
QjNJbnNlcnRpb25TZXQuaCAqLywKIAkJCQkwRkVDODVCNjFCRTE0NjJGMDA4MEZGNzQgLyogQjNJ
bnNlcnRpb25TZXRJbmxpbmVzLmggKi8sCisJCQkJREM2OUFBNjAxQ0Y3NURFMTAwQzYyNzJGIC8q
IEIzTGVhcE9mRmFpdGhWYWx1ZS5jcHAgKi8sCisJCQkJREM2OUFBNjExQ0Y3NURFMTAwQzYyNzJG
IC8qIEIzTGVhcE9mRmFpdGhWYWx1ZS5oICovLAogCQkJCTQzNkU1NDUxMUM0NjhFNUYwMEI1QUY3
MyAvKiBCM0xlZ2FsaXplTWVtb3J5T2Zmc2V0cy5jcHAgKi8sCiAJCQkJNDM2RTU0NTIxQzQ2OEU1
RjAwQjVBRjczIC8qIEIzTGVnYWxpemVNZW1vcnlPZmZzZXRzLmggKi8sCiAJCQkJMEYzMzhFMTkx
QkYyODZFQTAwMTNDODhGIC8qIEIzTG93ZXJNYWNyb3MuY3BwICovLApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZD
b21tb24uaAkocmV2aXNpb24gMjAxNDY4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMjYyLDYg
KzIyNjIsMTIgQEAgcHVibGljOgogICAgICAgICBtX2Fzc2VtYmxlci5qbXBfbShhZGRyZXNzLm9m
ZnNldCwgYWRkcmVzcy5iYXNlKTsKICAgICB9CiAKKyAgICAvLyBBZGRyZXNzIGlzIGEgbWVtb3J5
IGxvY2F0aW9uIGNvbnRhaW5pbmcgdGhlIGFkZHJlc3MgdG8ganVtcCB0bworICAgIHZvaWQganVt
cChCYXNlSW5kZXggYWRkcmVzcykKKyAgICB7CisgICAgICAgIG1fYXNzZW1ibGVyLmptcF9tKGFk
ZHJlc3Mub2Zmc2V0LCBhZGRyZXNzLmJhc2UsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUp
OworICAgIH0KKwogCiAgICAgLy8gQXJpdGhtZXRpYyBjb250cm9sIGZsb3cgb3BlcmF0aW9uczoK
ICAgICAvLwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJs
ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4NkFz
c2VtYmxlci5oCShyZXZpc2lvbiAyMDE0NjgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL1g4NkFzc2VtYmxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xOTgzLDYgKzE5ODMsMTEg
QEAgcHVibGljOgogICAgICAgICBtX2Zvcm1hdHRlci5vbmVCeXRlT3AoT1BfR1JPVVA1X0V2LCBH
Uk9VUDVfT1BfSk1QTiwgYmFzZSwgb2Zmc2V0KTsKICAgICB9CiAgICAgCisgICAgdm9pZCBqbXBf
bShpbnQgb2Zmc2V0LCBSZWdpc3RlcklEIGJhc2UsIFJlZ2lzdGVySUQgaW5kZXgsIGludCBzY2Fs
ZSkKKyAgICB7CisgICAgICAgIG1fZm9ybWF0dGVyLm9uZUJ5dGVPcChPUF9HUk9VUDVfRXYsIEdS
T1VQNV9PUF9KTVBOLCBiYXNlLCBpbmRleCwgc2NhbGUsIG9mZnNldCk7CisgICAgfQorICAgIAog
I2lmICFDUFUoWDg2XzY0KQogICAgIHZvaWQgam1wX20oY29uc3Qgdm9pZCogYWRkcmVzcykKICAg
ICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmNwcAkocmV2
aXNpb24gMjAxNDY4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEwOSw2ICsxMDksMTUgQEAgdm9pZCBCYXNpY0Jsb2NrOjp1
cGRhdGVQcmVkZWNlc3NvcnNBZnRlcgogICAgIEIzOjp1cGRhdGVQcmVkZWNlc3NvcnNBZnRlcih0
aGlzKTsKIH0KIAorYm9vbCBCYXNpY0Jsb2NrOjppc0Nsb25lYWJsZSgpIGNvbnN0Cit7CisgICAg
Zm9yIChWYWx1ZSogdmFsdWUgOiAqdGhpcykgeworICAgICAgICBpZiAoIXZhbHVlLT5pc0Nsb25l
YWJsZSgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1
ZTsKK30KKwogdm9pZCBCYXNpY0Jsb2NrOjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiB7
CiAgICAgb3V0LnByaW50KGR1bXBQcmVmaXgsIG1faW5kZXgpOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2suaAkocmV2aXNpb24gMjAxNDY4KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTUsNiAr
MTE1LDggQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlUHJlZGVjZXNzb3JzQWZ0ZXIoKTsKIAog
ICAgIGRvdWJsZSBmcmVxdWVuY3koKSBjb25zdCB7IHJldHVybiBtX2ZyZXF1ZW5jeTsgfQorICAg
IAorICAgIGJvb2wgaXNDbG9uZWFibGUoKSBjb25zdDsKIAogICAgIHZvaWQgZHVtcChQcmludFN0
cmVhbSYpIGNvbnN0OwogICAgIHZvaWQgZGVlcER1bXAoY29uc3QgUHJvY2VkdXJlJiwgUHJpbnRT
dHJlYW0mKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jsb2NrSW5z
ZXJ0aW9uU2V0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNC
bG9ja0luc2VydGlvblNldC5jcHAJKHJldmlzaW9uIDIwMTQ2OCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0Jsb2NrSW5zZXJ0aW9uU2V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTgs
NiArOTgsMTMgQEAgQmFzaWNCbG9jayogQmxvY2tJbnNlcnRpb25TZXQ6OnNwbGl0Rm9ydwogICAg
IGJsb2NrLT5hZGRQcmVkZWNlc3NvcihyZXN1bHQpOwogICAgIGZvciAoQmFzaWNCbG9jayogcHJl
ZGVjZXNzb3IgOiByZXN1bHQtPnByZWRlY2Vzc29ycygpKQogICAgICAgICBwcmVkZWNlc3Nvci0+
cmVwbGFjZVN1Y2Nlc3NvcihibG9jaywgcmVzdWx0KTsKKyAgICAKKyAgICAvLyBDYWxsYmFja3Mg
YXJlIHNvcnQgb2YgbGlrZSBwcmVkZWNlc3NvcnMuIFdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQg
J3Jlc3VsdCcgdGFrZXMgYWxsIG9mCisgICAgLy8gJ2Jsb2NrJydzIGNhbGxiYWNrcy4KKyAgICBi
bG9jay0+dGFrZUVhY2hDYWxsYmFjaygKKyAgICAgICAgWyZdIChSZWZQdHI8U2hhcmVkVGFzazx2
b2lkKE1hY3JvQXNzZW1ibGVyQ29kZVB0cik+PiB0YXNrKSB7CisgICAgICAgICAgICByZXN1bHQt
PmFkZENhbGxiYWNrVGFzayh0YXNrKTsKKyAgICAgICAgfSk7CiAKICAgICByZXR1cm4gcmVzdWx0
OwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29udHJvbFZhbHVlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29udHJvbFZhbHVlLmgJKHJl
dmlzaW9uIDIwMTQ2OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnRyb2xWYWx1
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Niw5ICs0NiwxMCBAQCBwdWJsaWM6CiAgICAgICAgIGNh
c2UgUmV0dXJuOgogICAgICAgICBjYXNlIE9vcHM6CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
LSAgICAgICAgY2FzZSBTd2l0Y2g6IAotICAgICAgICAgICAgLy8gVGhpcyBpcyBoZXJlIGJlY2F1
c2UgU3dpdGNoVmFsdWUgaXMgYSBzdWJjbGFzcyBvZiBDb250cm9sVmFsdWUsIHNvIHdlIHdhbnQK
LSAgICAgICAgICAgIC8vIHN3aXRjaFZhbHVlLT5hczxDb250cm9sVmFsdWU+KCkgdG8gcmV0dXJu
IG5vbi1udWxsLgorICAgICAgICBjYXNlIFN3aXRjaDoKKyAgICAgICAgY2FzZSBMZWFwT2ZGYWl0
aDoKKyAgICAgICAgICAgIC8vIFRoaXMgaXMgaGVyZSBiZWNhdXNlIFN3aXRjaFZhbHVlIGFuZCBM
ZWFwT2ZGYWl0aFZhbHVlIGFyZSBzdWJjbGFzc2VzIG9mIENvbnRyb2xWYWx1ZSwKKyAgICAgICAg
ICAgIC8vIHNvIHdlIHdhbnQgdGhpbmdzIGxpa2Ugc3dpdGNoVmFsdWUtPmFzPENvbnRyb2xWYWx1
ZT4oKSB0byByZXR1cm4gbm9uLW51bGwuCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAg
ICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTc3LDcgKzc4LDcgQEAg
cHVibGljOgogICAgIH0KIAogICAgIGJvb2wgcmVwbGFjZVN1Y2Nlc3NvcihCYXNpY0Jsb2NrKiBm
cm9tLCBCYXNpY0Jsb2NrKiB0byk7Ci0KKyAgICAKICAgICBjb25zdCBGcmVxdWVudGVkQmxvY2sm
IHRha2VuKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChvcGNvZGUoKSA9PSBKdW1wIHx8
IG9wY29kZSgpID09IEJyYW5jaCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNE
YXRhU2VjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
RGF0YVNlY3Rpb24uY3BwCShyZXZpc2lvbiAyMDE0NjgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNEYXRhU2VjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzEsNyArMzEsNyBAQAogbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKIERhdGFTZWN0aW9uOjpEYXRhU2VjdGlvbihz
aXplX3Qgc2l6ZSkKLSAgICA6IG1fZGF0YShmYXN0TWFsbG9jKHNpemUpKQorICAgIDogbV9kYXRh
KGZhc3RaZXJvZWRNYWxsb2Moc2l6ZSkpCiAgICAgLCBtX3NpemUoc2l6ZSkKIHsKIH0KSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0R1cGxpY2F0ZVRhaWxzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEdXBsaWNhdGVUYWlscy5jcHAJKHJldmlz
aW9uIDIwMTQ2OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0R1cGxpY2F0ZVRhaWxz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzIsOSArNzIsMTEgQEAgcHVibGljOgogICAgICAgICBJ
bmRleFNldDxCYXNpY0Jsb2NrPiBjYW5kaWRhdGVzOwogCiAgICAgICAgIGZvciAoQmFzaWNCbG9j
ayogYmxvY2sgOiBtX3Byb2MpIHsKLSAgICAgICAgICAgIGlmIChibG9jay0+c2l6ZSgpID4gbV9t
YXhTaXplIHx8IGJsb2NrLT5udW1TdWNjZXNzb3JzKCkgPiBtX21heFN1Y2Nlc3NvcnMpCisgICAg
ICAgICAgICBpZiAoYmxvY2stPnNpemUoKSA+IG1fbWF4U2l6ZQorICAgICAgICAgICAgICAgIHx8
IGJsb2NrLT5udW1TdWNjZXNzb3JzKCkgPiBtX21heFN1Y2Nlc3NvcnMKKyAgICAgICAgICAgICAg
ICB8fCAhYmxvY2stPmlzQ2xvbmVhYmxlKCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7Ci0K
KyAgICAgICAgICAgIAogICAgICAgICAgICAgY2FuZGlkYXRlcy5hZGQoYmxvY2spOwogICAgICAg
ICB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xlYXBPZkZhaXRoVmFsdWUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xlYXBPZkZhaXRo
VmFsdWUuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTGVh
cE9mRmFpdGhWYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiQjNMZWFwT2ZGYWl0aFZhbHVlLmgiCisKKyNpZiBFTkFCTEUoQjNfSklU
KQorCisjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrLmgiCisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3Bh
Y2UgQjMgeworCitMZWFwT2ZGYWl0aFZhbHVlOjp+TGVhcE9mRmFpdGhWYWx1ZSgpCit7Cit9CisK
K3ZvaWQgTGVhcE9mRmFpdGhWYWx1ZTo6YXBwZW5kU3VjY2Vzc29yKGNvbnN0IEZyZXF1ZW50ZWRC
bG9jayYgYmxvY2spCit7CisgICAgbV9zdWNjZXNzb3JzLmFwcGVuZChibG9jayk7Cit9CisKK3Zv
aWQgTGVhcE9mRmFpdGhWYWx1ZTo6c2V0Q2FsbGJhY2tUYXNrKFJlZlB0cjxTaGFyZWRUYXNrPENh
bGxiYWNrRnVuY3Rpb25UeXBlPj4gdGFzaykKK3sKKyAgICBtX3Rhc2sgPSB0YXNrOworfQorCiti
b29sIExlYXBPZkZhaXRoVmFsdWU6OmlzQ2xvbmVhYmxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK3ZvaWQgTGVhcE9mRmFpdGhWYWx1ZTo6ZHVtcE1ldGEoQ29tbWFQcmludGVy
JiBjb21tYSwgUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKK3sKKyAgICBDb250cm9sVmFsdWU6OmR1
bXBNZXRhKGNvbW1hLCBvdXQpOworICAgIG91dC5wcmludChjb21tYSwgInRhc2sgPSAiLCBSYXdQ
b2ludGVyKG1fdGFzay5nZXQoKSkpOworfQorCitWYWx1ZSogTGVhcE9mRmFpdGhWYWx1ZTo6Y2xv
bmVJbXBsKCkgY29uc3QKK3sKKyAgICBkYXRhTG9nKCJGQVRBTDogQXR0ZW1wdCB0byBjbG9uZSBu
b24tY2xvbmVhYmxlIExlYXBPZkZhaXRoVmFsdWUhXG4iKTsKKyAgICBSRUxFQVNFX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOworfQorCitMZWFwT2ZGYWl0aFZhbHVlOjpMZWFwT2ZGYWl0aFZhbHVlKE9y
aWdpbiBvcmlnaW4sIFZhbHVlKiBjaGlsZCkKKyAgICA6IENvbnRyb2xWYWx1ZShMZWFwT2ZGYWl0
aCwgVm9pZCwgb3JpZ2luLCBjaGlsZCkKK3sKK30KKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIz
CisKKyNlbmRpZiAvLyBFTkFCTEUoQjNfSklUKQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNMZWFwT2ZGYWl0aFZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzTGVhcE9mRmFpdGhWYWx1ZS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzTGVhcE9mRmFpdGhWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2lmbmRlZiBCM0xlYXBPZkZhaXRoVmFsdWVfaAorI2RlZmluZSBCM0xlYXBPZkZhaXRoVmFs
dWVfaAorCisjaWYgRU5BQkxFKEIzX0pJVCkKKworI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgi
CisjaW5jbHVkZSA8d3RmL1NoYXJlZFRhc2suaD4KKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFj
ZSBCMyB7CisKK2NsYXNzIExlYXBPZkZhaXRoVmFsdWUgOiBwdWJsaWMgQ29udHJvbFZhbHVlIHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgYm9vbCBhY2NlcHRzKE9wY29kZSBvcGNvZGUpIHsgcmV0dXJu
IG9wY29kZSA9PSBMZWFwT2ZGYWl0aDsgfQorICAgIAorICAgIH5MZWFwT2ZGYWl0aFZhbHVlKCk7
CisgICAgCisgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBhcHBlbmRTdWNjZXNzb3IoY29uc3Qg
RnJlcXVlbnRlZEJsb2NrJik7CisgICAgCisgICAgdHlwZWRlZiB2b2lkIENhbGxiYWNrRnVuY3Rp
b25UeXBlKGNvbnN0IFZlY3RvcjxNYWNyb0Fzc2VtYmxlckNvZGVQdHI+Jik7CisgICAgCisgICAg
SlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBzZXRDYWxsYmFja1Rhc2soUmVmUHRyPFNoYXJlZFRhc2s8
Q2FsbGJhY2tGdW5jdGlvblR5cGU+PiB0YXNrKTsKKyAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBGdW5jPgorICAgIHZvaWQgc2V0Q2FsbGJhY2soY29uc3QgRnVuYyYgZnVuYykKKyAgICB7Cisg
ICAgICAgIHNldENhbGxiYWNrVGFzayhjcmVhdGVTaGFyZWRUYXNrPENhbGxiYWNrRnVuY3Rpb25U
eXBlPihmdW5jKSk7CisgICAgfQorICAgIAorICAgIFNoYXJlZFRhc2s8Q2FsbGJhY2tGdW5jdGlv
blR5cGU+KiBjYWxsYmFja1Rhc2soKSBjb25zdCB7IHJldHVybiBtX3Rhc2suZ2V0KCk7IH0KKyAg
ICAKKyAgICBib29sIGlzQ2xvbmVhYmxlKCkgY29uc3Qgb3ZlcnJpZGU7CisKK3Byb3RlY3RlZDoK
KyAgICB2b2lkIGR1bXBNZXRhKENvbW1hUHJpbnRlciYsIFByaW50U3RyZWFtJikgY29uc3Qgb3Zl
cnJpZGU7CisgICAgCisgICAgVmFsdWUqIGNsb25lSW1wbCgpIGNvbnN0IG92ZXJyaWRlOworCitw
cml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBQcm9jZWR1cmU7CisgICAgCisgICAgSlNfRVhQT1JU
X1BSSVZBVEUgTGVhcE9mRmFpdGhWYWx1ZShPcmlnaW4sIFZhbHVlKiBjaGlsZCk7CisgICAgCisg
ICAgUmVmUHRyPFNoYXJlZFRhc2s8Q2FsbGJhY2tGdW5jdGlvblR5cGU+PiBtX3Rhc2s7Cit9Owor
Cit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKKworI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCisK
KyNlbmRpZiAvLyBCM0xlYXBPZkZhaXRoVmFsdWVfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNMb3dlck1hY3Jvcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzTG93ZXJNYWNyb3MuY3BwCShyZXZpc2lvbiAyMDE0NjgpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlck1hY3Jvcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsNiAr
MzQsOCBAQAogI2luY2x1ZGUgIkIzQ29uc3RQdHJWYWx1ZS5oIgogI2luY2x1ZGUgIkIzQ29udHJv
bFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNJbnNlcnRpb25TZXRJbmxpbmVzLmgiCisjaW5jbHVkZSAi
QjNMZWFwT2ZGYWl0aFZhbHVlLmgiCisjaW5jbHVkZSAiQjNNZW1vcnlWYWx1ZS5oIgogI2luY2x1
ZGUgIkIzUGhhc2VTY29wZS5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJlSW5saW5lcy5oIgogI2lu
Y2x1ZGUgIkIzU3dpdGNoVmFsdWUuaCIKQEAgLTI3NSw4ICsyNzcsOTMgQEAgcHJpdmF0ZToKICAg
ICAgICAgY29uc3QgVmVjdG9yPFN3aXRjaENhc2U+JiBjYXNlcywgdW5zaWduZWQgc3RhcnQsIGJv
b2wgaGFyZFN0YXJ0LCB1bnNpZ25lZCBlbmQsCiAgICAgICAgIEJhc2ljQmxvY2sqIGJlZm9yZSkK
ICAgICB7Ci0gICAgICAgIC8vIEZJWE1FOiBBZGQgdGFibGUtYmFzZWQgc3dpdGNoIGxvd2VyaW5n
LgotICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUx
MTQxCisgICAgICAgIFZhbHVlKiBjaGlsZCA9IG1fdmFsdWUtPmNoaWxkKDApOworICAgICAgICBU
eXBlIHR5cGUgPSBjaGlsZC0+dHlwZSgpOworICAgICAgICBGcmVxdWVudGVkQmxvY2sgZmFsbFRo
cm91Z2ggPSBtX3ZhbHVlLT5hczxTd2l0Y2hWYWx1ZT4oKS0+ZmFsbFRocm91Z2goKTsKKyAgICAg
ICAgCisgICAgICAgIC8vIEl0J3MgYSBnb29kIGlkZWEgdG8gdXNlIGEgdGFibGUtYmFzZWQgc3dp
dGNoIGluIHNvbWUgY2FzZXM6IHRoZSBudW1iZXIgb2YgY2FzZXMgaGFzIHRvIGJlCisgICAgICAg
IC8vIGxhcmdlIGVub3VnaCBhbmQgdGhleSBoYXZlIHRvIGJlIGRlbnNlIGVub3VnaC4gVGhpcyBj
b3VsZCBwcm9iYWJseSBiZSBpbXByb3ZlZCBhIGxvdC4gRm9yCisgICAgICAgIC8vIGV4YW1wbGUs
IHdlIGNvdWxkIHN0aWxsIHVzZSBhIGp1bXAgdGFibGUgaW4gY2FzZXMgd2hlcmUgdGhlIGlucHV0
cyBhcmUgc3BhcnNlIHNvIGxvbmcgYXMgd2UKKyAgICAgICAgLy8gc2hpZnQgb2ZmIHRoZSB1bmlu
dGVyZXN0aW5nIGJpdHMuIE9uIHRoZSBvdGhlciBoYW5kLCBpdCdzIG5vdCBjbGVhciB0aGF0IHRo
aXMgd291bGQKKyAgICAgICAgLy8gYWN0dWFsbHkgYmUgYW55IGJldHRlciB0aGFuIHdoYXQgd2Ug
aGF2ZSBkb25lIGhlcmUgYW5kIGl0J3Mgbm90IGNsZWFyIHRoYXQgaXQgd291bGQgYmUKKyAgICAg
ICAgLy8gYmV0dGVyIHRoYW4gYSBiaW5hcnkgc3dpdGNoLgorICAgICAgICBjb25zdCB1bnNpZ25l
ZCBtaW5DYXNlc0ZvclRhYmxlID0gNzsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgZGVuc2l0eUxp
bWl0ID0gNDsKKyAgICAgICAgaWYgKGVuZCAtIHN0YXJ0ID49IG1pbkNhc2VzRm9yVGFibGUpIHsK
KyAgICAgICAgICAgIGludDY0X3QgZmlyc3RWYWx1ZSA9IGNhc2VzW3N0YXJ0XS5jYXNlVmFsdWUo
KTsKKyAgICAgICAgICAgIGludDY0X3QgbGFzdFZhbHVlID0gY2FzZXNbZW5kIC0gMV0uY2FzZVZh
bHVlKCk7CisgICAgICAgICAgICBpZiAoKGxhc3RWYWx1ZSAtIGZpcnN0VmFsdWUgKyAxKSAvIGNh
c2VzLnNpemUoKSA8IGRlbnNpdHlMaW1pdCkgeworICAgICAgICAgICAgICAgIEJhc2ljQmxvY2sq
IHN3aXRjaEJsb2NrID0gbV9ibG9ja0luc2VydGlvblNldC5pbnNlcnRBZnRlcihtX2Jsb2NrKTsK
KyAgICAgICAgICAgICAgICBWYWx1ZSogaW5kZXggPSBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4o
CisgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgU3ViLCBtX29yaWdpbiwgY2hpbGQsCisgICAg
ICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kSW50Q29uc3RhbnQobV9wcm9jLCBtX29yaWdp
biwgdHlwZSwgZmlyc3RWYWx1ZSkpOworICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgQnJhbmNoLCBtX29y
aWdpbiwKKyAgICAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+KAorICAg
ICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBBYm92ZSwgbV9vcmlnaW4sIGluZGV4LAorICAg
ICAgICAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmRJbnRDb25zdGFudChtX3Byb2MsIG1f
b3JpZ2luLCB0eXBlLCBsYXN0VmFsdWUgLSBmaXJzdFZhbHVlKSksCisgICAgICAgICAgICAgICAg
ICAgIGZhbGxUaHJvdWdoLCBGcmVxdWVudGVkQmxvY2soc3dpdGNoQmxvY2spKTsKKyAgICAgICAg
ICAgICAgICAKKyAgICAgICAgICAgICAgICBzaXplX3QgdGFibGVTaXplID0gbGFzdFZhbHVlIC0g
Zmlyc3RWYWx1ZSArIDE7CisgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKiBq
dW1wVGFibGUgPSBiaXR3aXNlX2Nhc3Q8TWFjcm9Bc3NlbWJsZXJDb2RlUHRyKj4oCisgICAgICAg
ICAgICAgICAgICAgIG1fcHJvYy5hZGREYXRhU2VjdGlvbihzaXplb2YoTWFjcm9Bc3NlbWJsZXJD
b2RlUHRyKSAqIHRhYmxlU2l6ZSkpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAg
IFZhbHVlKiBiYXNlID0gc3dpdGNoQmxvY2stPmFwcGVuZEludENvbnN0YW50KAorICAgICAgICAg
ICAgICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLCBwb2ludGVyVHlwZSgpLCBiaXR3aXNlX2Nhc3Q8
aW50cHRyX3Q+KGp1bXBUYWJsZSkpOworICAgICAgICAgICAgICAgIGlmIChpbmRleC0+dHlwZSgp
ICE9IGJhc2UtPnR5cGUoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXgtPnR5cGUo
KSA9PSBJbnQzMikKKyAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gc3dpdGNoQmxvY2st
PmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBaRXh0MzIsIG1fb3JpZ2luLCBpbmRleCk7CisgICAg
ICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gc3dp
dGNoQmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBUcnVuYywgbV9vcmlnaW4sIGluZGV4
KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaW5kZXggPSBzd2l0Y2hCbG9j
ay0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBNdWwsIG1f
b3JpZ2luLCBpbmRleCwKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoQmxvY2stPmFwcGVuZElu
dENvbnN0YW50KAorICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwgcG9p
bnRlclR5cGUoKSwgc2l6ZW9mKE1hY3JvQXNzZW1ibGVyQ29kZVB0cikpKTsKKyAgICAgICAgICAg
ICAgICBWYWx1ZSogcHRyID0gc3dpdGNoQmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBB
ZGQsIG1fb3JpZ2luLCBiYXNlLCBpbmRleCk7CisgICAgICAgICAgICAgICAgVmFsdWUqIGp1bXBU
YXJnZXQgPQorICAgICAgICAgICAgICAgICAgICBzd2l0Y2hCbG9jay0+YXBwZW5kTmV3PE1lbW9y
eVZhbHVlPihtX3Byb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIG1fb3JpZ2luLCBwdHIpOworICAg
ICAgICAgICAgICAgIExlYXBPZkZhaXRoVmFsdWUqIGxlYXBPZkZhaXRoID0KKyAgICAgICAgICAg
ICAgICAgICAgc3dpdGNoQmxvY2stPmFwcGVuZE5ldzxMZWFwT2ZGYWl0aFZhbHVlPigKKyAgICAg
ICAgICAgICAgICAgICAgICAgIG1fcHJvYywgTGVhcE9mRmFpdGgsIG1fb3JpZ2luLCBqdW1wVGFy
Z2V0KTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBCaXRWZWN0b3IgaGFuZGxl
ZEluZGljZXM7CisgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gc3RhcnQ7IGkgPCBl
bmQ7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2sgYmxvY2sgPSBj
YXNlc1tpXS50YXJnZXQoKTsKKyAgICAgICAgICAgICAgICAgICAgaW50NjRfdCB2YWx1ZSA9IGNh
c2VzW2ldLmNhc2VWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICBsZWFwT2ZGYWl0aC0+YXBw
ZW5kU3VjY2Vzc29yKGJsb2NrKTsKKyAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGluZGV4ID0g
dmFsdWUgLSBmaXJzdFZhbHVlOworICAgICAgICAgICAgICAgICAgICBBU1NFUlQoIWhhbmRsZWRJ
bmRpY2VzLmdldChpbmRleCkpOworICAgICAgICAgICAgICAgICAgICBoYW5kbGVkSW5kaWNlcy5z
ZXQoaW5kZXgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAg
ICAgICAgICBib29sIGhhc1VuaGFuZGxlZEluZGV4ID0gZmFsc2U7CisgICAgICAgICAgICAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHRhYmxlU2l6ZTsgKytpKSB7CisgICAgICAgICAgICAg
ICAgICAgIGlmICghaGFuZGxlZEluZGljZXMuZ2V0KGkpKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBoYXNVbmhhbmRsZWRJbmRleCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoaGFzVW5oYW5kbGVkSW5kZXgpCisgICAgICAg
ICAgICAgICAgICAgIGxlYXBPZkZhaXRoLT5hcHBlbmRTdWNjZXNzb3IoZmFsbFRocm91Z2gpOwor
ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGxlYXBPZkZhaXRoLT5zZXRDYWxsYmFj
aygKKyAgICAgICAgICAgICAgICAgICAgWz1dIChjb25zdCBWZWN0b3I8TWFjcm9Bc3NlbWJsZXJD
b2RlUHRyPiYgcG9pbnRlcnMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBwb2lu
dGVySW5kZXggPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaW5kZXgg
OiBoYW5kbGVkSW5kaWNlcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBqdW1wVGFibGVb
aW5kZXhdID0gcG9pbnRlcnNbcG9pbnRlckluZGV4KytdOworICAgICAgICAgICAgICAgICAgICAg
ICAgCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGFzVW5oYW5kbGVkSW5kZXgpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRhYmxlU2l6
ZTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaGFuZGxlZElu
ZGljZXMuZ2V0KGkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganVtcFRh
YmxlW2ldID0gcG9pbnRlcnNbcG9pbnRlckluZGV4XTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAg
ICAgICAKICAgICAgICAgLy8gU2VlIGNvbW1lbnRzIGluIGppdC9CaW5hcnlTd2l0Y2guY3BwIGZv
ciBhIGp1c3RpZmljYXRpb24gb2YgdGhpcyBhbGdvcml0aG0uIFRoZSBvbmx5CiAgICAgICAgIC8v
IHRoaW5nIHdlIGRvIGRpZmZlcmVudGx5IGlzIHRoYXQgd2UgZG9uJ3QgdXNlIHJhbmRvbW5lc3Mu
CkBAIC0zMDcsMjIgKzM5NCwxOSBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIGJlZm9yZS0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCiAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgQnJh
bmNoLCBtX29yaWdpbiwKICAgICAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8VmFs
dWU+KAotICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBFcXVhbCwgbV9vcmlnaW4sIG1f
dmFsdWUtPmNoaWxkKDApLAorICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBFcXVhbCwg
bV9vcmlnaW4sIGNoaWxkLAogICAgICAgICAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmRJ
bnRDb25zdGFudCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIG1fb3JpZ2lu
LCBtX3ZhbHVlLT5jaGlsZCgwKS0+dHlwZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1fcHJvYywgbV9vcmlnaW4sIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2Fz
ZXNbc3RhcnQgKyBpXS5jYXNlVmFsdWUoKSkpLAogICAgICAgICAgICAgICAgICAgICBjYXNlc1tz
dGFydCArIGldLnRhcmdldCgpLCBGcmVxdWVudGVkQmxvY2sobmV4dENoZWNrKSk7CiAKICAgICAg
ICAgICAgICAgICBiZWZvcmUgPSBuZXh0Q2hlY2s7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAg
ICAgIGlmIChhbGxDb25zZWN1dGl2ZSkgewotICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCi0gICAgICAgICAgICAgICAgICAgIG1fcHJvYywgSnVtcCwgbV9v
cmlnaW4sIGNhc2VzW2VuZCAtIDFdLnRhcmdldCgpKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAg
ICAgICAgICAgICAgbV9wcm9jLCBKdW1wLCBtX29yaWdpbiwgbV92YWx1ZS0+YXM8U3dpdGNoVmFs
dWU+KCktPmZhbGxUaHJvdWdoKCkpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGFs
bENvbnNlY3V0aXZlKQorICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4obV9wcm9jLCBKdW1wLCBtX29yaWdpbiwgY2FzZXNbZW5kIC0gMV0udGFyZ2V0KCkpOwor
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4obV9wcm9jLCBKdW1wLCBtX29yaWdpbiwgZmFsbFRocm91Z2gpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAgLTMzNCw5ICs0MTgsOSBAQCBwcml2YXRlOgogICAg
ICAgICBiZWZvcmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAogICAgICAgICAgICAgbV9wcm9j
LCBCcmFuY2gsIG1fb3JpZ2luLAogICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+
KAotICAgICAgICAgICAgICAgIG1fcHJvYywgTGVzc1RoYW4sIG1fb3JpZ2luLCBtX3ZhbHVlLT5j
aGlsZCgwKSwKKyAgICAgICAgICAgICAgICBtX3Byb2MsIExlc3NUaGFuLCBtX29yaWdpbiwgY2hp
bGQsCiAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmRJbnRDb25zdGFudCgKLSAgICAgICAg
ICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwgbV92YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSwK
KyAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwgdHlwZSwKICAgICAgICAgICAg
ICAgICAgICAgY2FzZXNbbWVkaWFuSW5kZXhdLmNhc2VWYWx1ZSgpKSksCiAgICAgICAgICAgICBG
cmVxdWVudGVkQmxvY2sobGVmdCksIEZyZXF1ZW50ZWRCbG9jayhyaWdodCkpOwogCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAkocmV2aXNpb24gMjAxNDY4
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI0NDEsNiArMjQ0MSwxNiBAQCBwcml2YXRlOgogICAgICAgICAgICAgfQogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBC
Mzo6TGVhcE9mRmFpdGg6IHsKKyAgICAgICAgICAgIEFyZ1Byb21pc2UgYWRkciA9IGxvYWRQcm9t
aXNlKG1fdmFsdWUtPmNoaWxkKDApKTsKKyAgICAgICAgICAgIGlmIChpc1ZhbGlkRm9ybShBaXI6
OkxlYXBPZkZhaXRoLCBhZGRyLmtpbmQoKSkpIHsKKyAgICAgICAgICAgICAgICBhcHBlbmQoQWly
OjpMZWFwT2ZGYWl0aCwgYWRkci5jb25zdW1lKCp0aGlzKSk7CisgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYXBwZW5kKEFpcjo6TGVhcE9mRmFpdGgs
IHRtcChtX3ZhbHVlLT5jaGlsZCgwKSkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CiAKICAgICAgICAgY2FzZSBCMzo6T29wczogewogICAgICAgICAgICAgYXBwZW5kKEFpcjo6T29w
cyk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5jcHAJKHJldmlzaW9uIDIw
MTQ2OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI5MCw2ICsyOTAsOSBAQCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0m
IG91dCwgT3BjCiAgICAgY2FzZSBTd2l0Y2g6CiAgICAgICAgIG91dC5wcmludCgiU3dpdGNoIik7
CiAgICAgICAgIHJldHVybjsKKyAgICBjYXNlIExlYXBPZkZhaXRoOgorICAgICAgICBvdXQucHJp
bnQoIkxlYXBPZkZhaXRoIik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFJldHVybjoKICAg
ICAgICAgb3V0LnByaW50KCJSZXR1cm4iKTsKICAgICAgICAgcmV0dXJuOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmgJKHJldmlzaW9uIDIwMTQ2OCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM09wY29kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTYsNiArMjE2LDEz
IEBAIGVudW0gT3Bjb2RlIDogaW50MTZfdCB7CiAKICAgICAvLyBTd2l0Y2guIFN3aXRjaGVzIG92
ZXIgZWl0aGVyIEludDMyIG9yIEludDY0LiBVc2VzIHRoZSBTd2l0Y2hWYWx1ZSBjbGFzcy4KICAg
ICBTd2l0Y2gsCisgICAgCisgICAgLy8gSnVtcCB0byB0aGUgZ2l2ZW4gYWRkcmVzcy4gVGhlIGNv
bXBpbGVyIGFzc3VtZXMgdGhhdCB0aGlzIHdpbGwganVtcCB0byBvbmUgb2YgdGhlIHN1cHBsaWVk
CisgICAgLy8gc3VjY2Vzc29ycywgYnV0IHdpbGwgbWFrZSBhYnNvbHV0ZWx5IG5vIGFzc3VtcHRp
b25zIGFib3V0IHdoaWNoLiBJdCdzIGVudGlyZWx5IHVwIHRvIHRoZSB1c2VyCisgICAgLy8gdG8g
YXJyYW5nZSBmb3IgdGhlIGp1bXAgdG8ganVtcCB0byBvbmUgb2YgdGhvc2Ugc3VjY2Vzc29ycy4g
VGhpcyBjYW5ub3QgdHJhcCBvciBkbyBhbnl0aGluZyBidXQKKyAgICAvLyBqdW1wIHRvIG9uZSBv
ZiB0aGUgc3VjY2Vzc29yczsgaWYgaXQgZG9lcyBhbnl0aGluZyBlbHNlIHRoZW4gZGVtb25zIHdp
bGwgY29tZSBvdXQgb2YgdGhlIHVzZXIncworICAgIC8vIG5vc2UuIAorICAgIExlYXBPZkZhaXRo
LAogCiAgICAgLy8gUmV0dXJuLiBOb3RlIHRoYXQgQjMgcHJvY2VkdXJlcyBkb24ndCBrbm93IHRo
ZWlyIHJldHVybiB0eXBlLCBzbyB0aGlzIGNhbiBqdXN0IHJldHVybiBhbnkKICAgICAvLyB0eXBl
LiBVc2VzIHRoZSBDb250cm9sVmFsdWUgY2xhc3MuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNQcm9jZWR1cmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM1Byb2NlZHVyZS5jcHAJKHJldmlzaW9uIDIwMTQ2OCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgyLDYgKzgyLDgg
QEAgVmFyaWFibGUqIFByb2NlZHVyZTo6YWRkVmFyaWFibGUoVHlwZSB0eQogCiBWYWx1ZSogUHJv
Y2VkdXJlOjpjbG9uZShWYWx1ZSogdmFsdWUpCiB7CisgICAgQVNTRVJUKHZhbHVlLT5pc0Nsb25l
YWJsZSgpKTsKKyAgICAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmFsdWU+IGNsb25lKHZhbHVlLT5j
bG9uZUltcGwoKSk7CiAgICAgY2xvbmUtPm1faW5kZXggPSBVSU5UX01BWDsKICAgICBjbG9uZS0+
b3duZXIgPSBudWxscHRyOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2Vk
dXJlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJl
LmgJKHJldmlzaW9uIDIwMTQ2OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2Nl
ZHVyZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsNiArMTAxLDcgQEAgcHVibGljOgogICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5hbWUuLi4gQXJndW1lbnRzPgogICAgIFZh
bHVlVHlwZSogYWRkKEFyZ3VtZW50cy4uLik7CiAKKyAgICAvLyBOb3RlIHRoYXQgbm90IGFsbCB2
YWx1ZXMgYXJlIGNsb25lYWJsZS4gQ2hlY2sgVmFsdWU6OmlzQ2xvbmVhYmxlKCkgYmVmb3JlIHBy
b2NlZWRpbmcuCiAgICAgVmFsdWUqIGNsb25lKFZhbHVlKik7CiAKICAgICBWYWx1ZSogYWRkSW50
Q29uc3RhbnQoT3JpZ2luLCBUeXBlLCBpbnQ2NF90IHZhbHVlKTsKQEAgLTIxOCw2ICsyMTksOSBA
QCBwdWJsaWM6CiAKICAgICBjb25zdCBjaGFyKiBsYXN0UGhhc2VOYW1lKCkgY29uc3QgeyByZXR1
cm4gbV9sYXN0UGhhc2VOYW1lOyB9CiAKKyAgICAvLyBBbGxvY2F0ZXMgYSBzbGFiIG9mIG1lbW9y
eSB0aGF0IHdpbGwgYmUga2VwdCBhbGl2ZSBieSBhbnlvbmUgd2hvIGtlZXBzIHRoZSByZXN1bHRp
bmcgY29kZQorICAgIC8vIGFsaXZlLiBHcmVhdCBmb3IgY29tcGlsZXItZ2VuZXJhdGVkIGRhdGEg
c2VjdGlvbnMsIGxpa2Ugc3dpdGNoIGp1bXAgdGFibGVzIGFuZCBjb25zdGFudCBwb29scy4KKyAg
ICAvLyBUaGlzIHJldHVybnMgbWVtb3J5IHRoYXQgaGFzIGJlZW4gemVyby1pbml0aWFsaXplZC4K
ICAgICB2b2lkKiBhZGREYXRhU2VjdGlvbihzaXplX3Qgc2l6ZSk7CiAKICAgICBPcGFxdWVCeXBy
b2R1Y3RzJiBieXByb2R1Y3RzKCkgeyByZXR1cm4gKm1fYnlwcm9kdWN0czsgfQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcAkocmV2aXNpb24g
MjAxNDY4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xNzczLDcgKzE3NzMsMTcgQEAgcHJpdmF0ZToKICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIHZhbHVlLT5vcGNvZGUoKSA9PSBTZWxlY3QKICAgICAgICAgICAg
ICAgICAgICAgICAgICYmICh2YWx1ZS0+Y2hpbGQoMSktPmlzQ29uc3RhbnQoKSAmJiB2YWx1ZS0+
Y2hpbGQoMiktPmlzQ29uc3RhbnQoKSk7CiAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAg
ICBpZiAoc2VsZWN0KSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0
aGF0IHRoZSByZWxldmFudCBjb2RlIGlzIGNsb25lYWJsZS4KKyAgICAgICAgICAgIGJvb2wgYWxs
QXJlQ2xvbmVhYmxlID0gdHJ1ZTsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgaW5kZXggPSBt
X2luZGV4ICsgMTsgaW5kZXgtLTspIHsKKyAgICAgICAgICAgICAgICBWYWx1ZSogdmFsdWUgPSBt
X2Jsb2NrLT5hdChpbmRleCk7CisgICAgICAgICAgICAgICAgYWxsQXJlQ2xvbmVhYmxlICY9IHZh
bHVlLT5pc0Nsb25lYWJsZSgpOworICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBzZWxlY3Qp
CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
CisgICAgICAgICAgICBpZiAoc2VsZWN0ICYmIGFsbEFyZUNsb25lYWJsZSkgewogICAgICAgICAg
ICAgICAgIHNwZWNpYWxpemVTZWxlY3Qoc2VsZWN0KTsKICAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbGlkYXRl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWxpZGF0ZS5j
cHAJKHJldmlzaW9uIDIwMTQ2OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbGlk
YXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzg3LDYgKzM4NywxMSBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICAgICAgVkFMSURBVEUoaXNJbnQodmFsdWUtPmNoaWxkKDApLT50eXBlKCkpLCAoIkF0
ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgPT0g
Vm9pZCwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgTGVhcE9mRmFpdGg6CisgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPm51
bUNoaWxkcmVuKCkgPT0gMSwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJ
REFURSh2YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSA9PSBwb2ludGVyVHlwZSgpLCAoIkF0ICIsICp2
YWx1ZSkpOworICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgPT0gVm9pZCwg
KCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0K
IAogICAgICAgICAgICAgVkFMSURBVEUoISh2YWx1ZS0+ZWZmZWN0cygpLndyaXRlcyAmJiB2YWx1
ZS0+a2V5KCkpLCAoIkF0ICIsICp2YWx1ZSkpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzVmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1ZhbHVlLmNwcAkocmV2aXNpb24gMjAxNDY4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzVmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NDAsNiArNTQwLDcgQEAgRWZmZWN0cyBW
YWx1ZTo6ZWZmZWN0cygpIGNvbnN0CiAgICAgY2FzZSBKdW1wOgogICAgIGNhc2UgQnJhbmNoOgog
ICAgIGNhc2UgU3dpdGNoOgorICAgIGNhc2UgTGVhcE9mRmFpdGg6CiAgICAgY2FzZSBSZXR1cm46
CiAgICAgY2FzZSBPb3BzOgogICAgICAgICByZXN1bHQudGVybWluYWwgPSB0cnVlOwpAQCAtNTQ4
LDYgKzU0OSwxMSBAQCBFZmZlY3RzIFZhbHVlOjplZmZlY3RzKCkgY29uc3QKICAgICByZXR1cm4g
cmVzdWx0OwogfQogCitib29sIFZhbHVlOjppc0Nsb25lYWJsZSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIHRydWU7Cit9CisKIFZhbHVlS2V5IFZhbHVlOjprZXkoKSBjb25zdAogewogICAgIHN3aXRj
aCAob3Bjb2RlKCkpIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuaAkocmV2aXNp
b24gMjAxNDY4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjAwLDYgKzIwMCwxMSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0xpa2VOb25a
ZXJvKCkgY29uc3QgeyByZXR1cm4gYXNUcmlTdGF0ZSgpID09IFRydWVUcmlTdGF0ZTsgfQogCiAg
ICAgRWZmZWN0cyBlZmZlY3RzKCkgY29uc3Q7CisgICAgCisgICAgLy8gU29tZSBvcGVyYXRpb25z
IHdpbGwgcmVmdXNlIHRvIGJlIGNsb25lZC4gVGhpcyBoYXBwZW5zIHdoZW4gdGhlIG9wZXJhdGlv
biBoYXMgc29tZSBpbnNpZGUKKyAgICAvLyBrbm93bGVkZ2UgYWJvdXQgdGhlIHJlbGF0aW9uc2hp
cCBiZXR3ZWVuIGl0cyBpZGVudGl0eSBhbmQgdGhlIGlkZW50aXR5IG9mIHRoZSBjb2RlIGl0IHdp
bGwKKyAgICAvLyBnZW5lcmF0ZS4KKyAgICB2aXJ0dWFsIGJvb2wgaXNDbG9uZWFibGUoKSBjb25z
dDsKIAogICAgIC8vIFRoaXMgcmV0dXJucyBhIFZhbHVlS2V5IHRoYXQgZGVzY3JpYmVzIHRoYXQg
dGhpcyBWYWx1ZSByZXR1cm5zIHdoZW4gaXQgZXhlY3V0ZXMuIFJldHVybnMgYW4KICAgICAvLyBl
bXB0eSBWYWx1ZUtleSBpZiB0aGlzIFZhbHVlIGlzIGltcHVyZS4gTm90ZSB0aGF0IGFuIG9wZXJh
dGlvbiB0aGF0IHJldHVybnMgVm9pZCBjb3VsZCBzdGlsbApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL3Rlc3RiMy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL3Rlc3RiMy5jcHAJKHJldmlzaW9uIDIwMTQ2OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy90ZXN0YjMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVk
ZSAiQjNDb25zdFB0clZhbHVlLmgiCiAjaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKICNpbmNs
dWRlICJCM0VmZmVjdHMuaCIKKyNpbmNsdWRlICJCM0xlYXBPZkZhaXRoVmFsdWUuaCIKICNpbmNs
dWRlICJCM01hdGhFeHRyYXMuaCIKICNpbmNsdWRlICJCM01lbW9yeVZhbHVlLmgiCiAjaW5jbHVk
ZSAiQjNQcm9jZWR1cmUuaCIKQEAgLTQ0LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJCM1N3aXRjaFZh
bHVlLmgiCiAjaW5jbHVkZSAiQjNVcHNpbG9uVmFsdWUuaCIKICNpbmNsdWRlICJCM1ZhbHVlSW5s
aW5lcy5oIgorI2luY2x1ZGUgIkIzVmFyaWFibGVWYWx1ZS5oIgogI2luY2x1ZGUgIkNDYWxsSGVs
cGVycy5oIgogI2luY2x1ZGUgIkluaXRpYWxpemVUaHJlYWRpbmcuaCIKICNpbmNsdWRlICJKU0NJ
bmxpbmVzLmgiCkBAIC0xMDEyOCw3ICsxMDEzMCwxMCBAQCB2b2lkIHRlc3RTd2l0Y2hDaGlsbERp
dih1bnNpZ25lZCBkZWdyZWUsCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIAogICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBkZWdyZWU7ICsraSkgewotICAgICAgICBDSEVDSyhp
bnZva2U8aW50MzJfdD4oKmNvZGUsIGkgKiBnYXAsIDQyLCAxMSkgPT0gKChpICYgMSkgPyAxMS80
MiA6IDQyLzExKSk7CisgICAgICAgIGRhdGFMb2coImkgPSAiLCBpLCAiXG4iKTsKKyAgICAgICAg
aW50MzJfdCByZXN1bHQgPSBpbnZva2U8aW50MzJfdD4oKmNvZGUsIGkgKiBnYXAsIDQyLCAxMSk7
CisgICAgICAgIGRhdGFMb2coInJlc3VsdCA9ICIsIHJlc3VsdCwgIlxuIik7CisgICAgICAgIENI
RUNLKHJlc3VsdCA9PSAoKGkgJiAxKSA/IDExLzQyIDogNDIvMTEpKTsKICAgICAgICAgaWYgKGdh
cCA+IDEpIHsKICAgICAgICAgICAgIENIRUNLKCFpbnZva2U8aW50MzJfdD4oKmNvZGUsIGkgKiBn
YXAgKyAxLCA0MiwgMTEpKTsKICAgICAgICAgICAgIENIRUNLKCFpbnZva2U8aW50MzJfdD4oKmNv
ZGUsIGkgKiBnYXAgLSAxLCA0MiwgMTEpKTsKQEAgLTEyMDUwLDYgKzEyMDU1LDIxOCBAQCB2b2lk
IHRlc3RMYXRlUmVnaXN0ZXIoKQogICAgIENIRUNLKGludm9rZTx1aW50NjRfdD4oKmNvZGUpID09
IHJlc3VsdCk7CiB9CiAKK3ZvaWQgdGhyZWFkZWRJbnRlcnByZXRlclByaW50KFZlY3RvcjxpbnRw
dHJfdD4qIHN0cmVhbSwgaW50cHRyX3QgdmFsdWUpCit7CisgICAgc3RyZWFtLT5hcHBlbmQodmFs
dWUpOworfQorCit2b2lkIHRlc3RUaHJlYWRlZEludGVycHJldGVyKCkKK3sKKyAgICAvLyBUaGlz
IGNyZWF0ZXMgYSBwb29yIG1hbidzIHRocmVhZGVkIGludGVycHJldGVyIHVzaW5nIExlYXBPZkZh
aXRoIGFuZCBzZWVzIGlmIGl0IHdvcmtzLiBOb3RlCisgICAgLy8gdGhhdCBMZWFwT2ZGYWl0aCBp
cyBub3QgbGlrZSBpbmRpcmVjdCBicmFuY2hlcyBpbiBMTFZNLCBzbyB5b3UgY2FuJ3QgYWN0dWFs
bHkgdXNlIGl0IHRvCisgICAgLy8gaW1wbGVtZW50IGEgcHJvcGVyIHRocmVhZGVkIGludGVycHJl
dGVyLiBUaGlzIGNoZWF0czogdGhlIGRpc3BhdGNoIGluc3RydWN0aW9uIGlzIGF0IHRoZSB0b3AK
KyAgICAvLyBvZiB0aGUgbG9vcC4gVGhpcyBhbHNvIHRlc3RzIFZhcmlhYmxlVmFsdWUuCisgICAg
CisgICAgUHJvY2VkdXJlIHByb2M7CisgICAgCisgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKKyAgICBCYXNpY0Jsb2NrKiBkaXNwYXRjaCA9IHByb2MuYWRkQmxvY2soKTsK
KyAgICBCYXNpY0Jsb2NrKiBhZGRUb0RhdGFQb2ludGVyID0gcHJvYy5hZGRCbG9jaygpOworICAg
IEJhc2ljQmxvY2sqIGFkZFRvQ29kZVBvaW50ZXIgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFz
aWNCbG9jayogYWRkVG9Db2RlUG9pbnRlclRha2VuID0gcHJvYy5hZGRCbG9jaygpOworICAgIEJh
c2ljQmxvY2sqIGFkZFRvQ29kZVBvaW50ZXJOb3RUYWtlbiA9IHByb2MuYWRkQmxvY2soKTsKKyAg
ICBCYXNpY0Jsb2NrKiBhZGRUb0RhdGEgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9j
ayogcHJpbnQgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayogc3RvcCA9IHByb2Mu
YWRkQmxvY2soKTsKKyAgICAKKyAgICBWYXJpYWJsZSogZGF0YVBvaW50ZXIgPSBwcm9jLmFkZFZh
cmlhYmxlKHBvaW50ZXJUeXBlKCkpOworICAgIFZhcmlhYmxlKiBjb2RlUG9pbnRlciA9IHByb2Mu
YWRkVmFyaWFibGUocG9pbnRlclR5cGUoKSk7CisgICAgCisgICAgcm9vdC0+YXBwZW5kTmV3PFZh
cmlhYmxlVmFsdWU+KAorICAgICAgICBwcm9jLCBTZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRlciwK
KyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKKyAgICByb290LT5hcHBlbmROZXc8VmFyaWFibGVW
YWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyLAorICAgICAg
ICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMSkpOworICAgIFZhbHVlKiBjb250ZXh0ID0gcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIp
OworICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigp
LCBGcmVxdWVudGVkQmxvY2soZGlzcGF0Y2gpKTsKKyAgICAKKyAgICBkaXNwYXRjaC0+YXBwZW5k
TmV3PExlYXBPZkZhaXRoVmFsdWU+KAorICAgICAgICBwcm9jLCBPcmlnaW4oKSwKKyAgICAgICAg
ZGlzcGF0Y2gtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBMb2Fk
LCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwKKyAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YXJpYWJsZVZhbHVlPigKKyAgICAgICAgICAgICAgICBwcm9jLCBHZXQsIE9yaWdpbigpLCBjb2Rl
UG9pbnRlcikpKTsKKyAgICBkaXNwYXRjaC0+YXBwZW5kU3VjY2Vzc29yKEZyZXF1ZW50ZWRCbG9j
ayhhZGRUb0RhdGFQb2ludGVyKSk7CisgICAgZGlzcGF0Y2gtPmFwcGVuZFN1Y2Nlc3NvcihGcmVx
dWVudGVkQmxvY2soYWRkVG9Db2RlUG9pbnRlcikpOworICAgIGRpc3BhdGNoLT5hcHBlbmRTdWNj
ZXNzb3IoRnJlcXVlbnRlZEJsb2NrKGFkZFRvRGF0YSkpOworICAgIGRpc3BhdGNoLT5hcHBlbmRT
dWNjZXNzb3IoRnJlcXVlbnRlZEJsb2NrKHByaW50KSk7CisgICAgZGlzcGF0Y2gtPmFwcGVuZFN1
Y2Nlc3NvcihGcmVxdWVudGVkQmxvY2soc3RvcCkpOworICAgIAorICAgIC8vIE91ciAib3Bjb2Rl
cyIuIFRoZXkgd2lsbCBoYXZlIG1lYW5pbmcgb25jZSB3ZSBjb21waWxlLgorICAgIGludHB0cl90
IEFkZERQOworICAgIGludHB0cl90IEFkZENQOworICAgIGludHB0cl90IEFkZDsKKyAgICBpbnRw
dHJfdCBQcmludDsKKyAgICBpbnRwdHJfdCBTdG9wOworICAgIGRpc3BhdGNoLT5zZXRDYWxsYmFj
aygKKyAgICAgICAgWyZdIChjb25zdCBWZWN0b3I8TWFjcm9Bc3NlbWJsZXJDb2RlUHRyPiYgcG9p
bnRlcnMpIHsKKyAgICAgICAgICAgIGF1dG8gZ2V0ID0gWyZdIChzaXplX3QgaW5kZXgpIC0+IGlu
dHB0cl90IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gYml0d2lzZV9jYXN0PGludHB0cl90Pihw
b2ludGVyc1tpbmRleF0uZXhlY3V0YWJsZUFkZHJlc3MoKSk7CisgICAgICAgICAgICB9OworICAg
ICAgICAgICAgCisgICAgICAgICAgICBBZGREUCA9IGdldCgwKTsKKyAgICAgICAgICAgIEFkZENQ
ID0gZ2V0KDEpOworICAgICAgICAgICAgQWRkID0gZ2V0KDIpOworICAgICAgICAgICAgUHJpbnQg
PSBnZXQoMyk7CisgICAgICAgICAgICBTdG9wID0gZ2V0KDQpOworICAgICAgICB9KTsKKyAgICAK
KyAgICAvLyBBZGREUCA8b3BlcmFuZD46IGFkZHMgPG9wZXJhbmQ+IHRvIERQLgorICAgIFZhbHVl
KiBjb2RlUG9pbnRlclZhbHVlID0KKyAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3
PFZhcmlhYmxlVmFsdWU+KHByb2MsIEdldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyKTsKKyAgICBh
ZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHByb2Ms
IFNldCwgT3JpZ2luKCksIGRhdGFQb2ludGVyLAorICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5h
cHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKKyAgICAg
ICAgICAgIGFkZFRvRGF0YVBvaW50ZXItPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPihwcm9jLCBH
ZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRlcik7CisgICAgICAgICAgICBhZGRUb0RhdGFQb2ludGVy
LT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgICAgIHByb2MsIE11bCwgT3JpZ2luKCks
CisgICAgICAgICAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PE1lbW9yeVZhbHVl
PigKKyAgICAgICAgICAgICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2lu
KCksIGNvZGVQb2ludGVyVmFsdWUsIHNpemVvZihpbnRwdHJfdCkpLAorICAgICAgICAgICAgICAg
IGFkZFRvRGF0YVBvaW50ZXItPmFwcGVuZEludENvbnN0YW50KAorICAgICAgICAgICAgICAgICAg
ICBwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6ZW9mKGludHB0cl90KSkpKSk7Cisg
ICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAgICAgICBw
cm9jLCBTZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlciwKKyAgICAgICAgYWRkVG9EYXRhUG9pbnRl
ci0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksIGNv
ZGVQb2ludGVyVmFsdWUsCisgICAgICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmRJbnRD
b25zdGFudCgKKyAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwg
c2l6ZW9mKGludHB0cl90KSAqIDIpKSk7CisgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhkaXNw
YXRjaCkpOworICAgIAorICAgIC8vIEFkZENQIDxvcGVyYW5kPjogYWRkcyA8b3BlcmFuZD4gdG8g
Q1AgaWYgdGhlIGN1cnJlbnQgdmFsdWUgYXQgRFAgaXMgbm9uLXplcm8sIG90aGVyd2lzZQorICAg
IC8vIGZhbGxzIHRocm91Z2ggbm9ybWFsbHkuCisgICAgY29kZVBvaW50ZXJWYWx1ZSA9IGFkZFRv
Q29kZVBvaW50ZXItPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPihwcm9jLCBHZXQsIE9yaWdpbigp
LCBjb2RlUG9pbnRlcik7CisgICAgVmFsdWUqIGRhdGFQb2ludGVyVmFsdWUgPSBhZGRUb0RhdGEt
PmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPihwcm9jLCBHZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRl
cik7CisgICAgYWRkVG9Db2RlUG9pbnRlci0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
ICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCisgICAgICAgIGFkZFRvQ29kZVBvaW50ZXItPmFw
cGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVyVHlw
ZSgpLCBPcmlnaW4oKSwgZGF0YVBvaW50ZXJWYWx1ZSksCisgICAgICAgIEZyZXF1ZW50ZWRCbG9j
ayhhZGRUb0NvZGVQb2ludGVyVGFrZW4pLCBGcmVxdWVudGVkQmxvY2soYWRkVG9Db2RlUG9pbnRl
ck5vdFRha2VuKSk7CisgICAgYWRkVG9Db2RlUG9pbnRlclRha2VuLT5hcHBlbmROZXc8VmFyaWFi
bGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyLAorICAg
ICAgICBhZGRUb0NvZGVQb2ludGVyVGFrZW4tPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAg
ICBwcm9jLCBBZGQsIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLAorICAgICAgICAgICAgYWRk
VG9Db2RlUG9pbnRlclRha2VuLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgICAgIHBy
b2MsIE11bCwgT3JpZ2luKCksCisgICAgICAgICAgICAgICAgYWRkVG9Db2RlUG9pbnRlclRha2Vu
LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICAgICAgICAgICAgICBwcm9jLCBMb2Fk
LCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwgc2l6ZW9mKGludHB0
cl90KSksCisgICAgICAgICAgICAgICAgYWRkVG9Db2RlUG9pbnRlclRha2VuLT5hcHBlbmRJbnRD
b25zdGFudCgKKyAgICAgICAgICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBl
KCksIHNpemVvZihpbnRwdHJfdCkpKSkpOworICAgIGFkZFRvQ29kZVBvaW50ZXJUYWtlbi0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9j
ayhkaXNwYXRjaCkpOworICAgIGFkZFRvQ29kZVBvaW50ZXJOb3RUYWtlbi0+YXBwZW5kTmV3PFZh
cmlhYmxlVmFsdWU+KAorICAgICAgICBwcm9jLCBTZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlciwK
KyAgICAgICAgYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuLT5hcHBlbmROZXc8VmFsdWU+KAorICAg
ICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwKKyAgICAgICAg
ICAgIGFkZFRvQ29kZVBvaW50ZXJOb3RUYWtlbi0+YXBwZW5kSW50Q29uc3RhbnQoCisgICAgICAg
ICAgICAgICAgcHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBlKCksIHNpemVvZihpbnRwdHJfdCkg
KiAyKSkpOworICAgIGFkZFRvQ29kZVBvaW50ZXJOb3RUYWtlbi0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgICAgIHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZGlz
cGF0Y2gpKTsKKworICAgIC8vIEFkZCA8b3BlcmFuZD46IGFkZHMgPG9wZXJhbmQ+IHRvIHRoZSBz
bG90IHBvaW50ZWQgdG8gYnkgRFAuCisgICAgY29kZVBvaW50ZXJWYWx1ZSA9IGFkZFRvRGF0YS0+
YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHByb2MsIEdldCwgT3JpZ2luKCksIGNvZGVQb2ludGVy
KTsKKyAgICBkYXRhUG9pbnRlclZhbHVlID0gYWRkVG9EYXRhLT5hcHBlbmROZXc8VmFyaWFibGVW
YWx1ZT4ocHJvYywgR2V0LCBPcmlnaW4oKSwgZGF0YVBvaW50ZXIpOworICAgIGFkZFRvRGF0YS0+
YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgcHJvYywgU3RvcmUsIE9yaWdpbigpLAor
ICAgICAgICBhZGRUb0RhdGEtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBB
ZGQsIE9yaWdpbigpLAorICAgICAgICAgICAgYWRkVG9EYXRhLT5hcHBlbmROZXc8TWVtb3J5VmFs
dWU+KAorICAgICAgICAgICAgICAgIHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigp
LCBkYXRhUG9pbnRlclZhbHVlKSwKKyAgICAgICAgICAgIGFkZFRvRGF0YS0+YXBwZW5kTmV3PE1l
bW9yeVZhbHVlPigKKyAgICAgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBP
cmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwgc2l6ZW9mKGludHB0cl90KSkpKTsKKyAgICBhZGRU
b0RhdGEtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPigKKyAgICAgICAgcHJvYywgU2V0LCBPcmln
aW4oKSwgY29kZVBvaW50ZXIsCisgICAgICAgIGFkZFRvRGF0YS0+YXBwZW5kTmV3PFZhbHVlPigK
KyAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksIGNvZGVQb2ludGVyLAorICAgICAgICAg
ICAgYWRkVG9EYXRhLT5hcHBlbmRJbnRDb25zdGFudChwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5
cGUoKSwgc2l6ZW9mKGludHB0cl90KSAqIDIpKSk7CisgICAgYWRkVG9EYXRhLT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRpc3Bh
dGNoKSk7CisgICAgCisgICAgLy8gUHJpbnQ6ICJwcmludHMiIHRoZSB2YWx1ZSBwb2ludGVkIHRv
IGJ5IERQLgorICAgIGNvZGVQb2ludGVyVmFsdWUgPSBhZGRUb0RhdGEtPmFwcGVuZE5ldzxWYXJp
YWJsZVZhbHVlPihwcm9jLCBHZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlcik7CisgICAgZGF0YVBv
aW50ZXJWYWx1ZSA9IGFkZFRvRGF0YS0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHByb2MsIEdl
dCwgT3JpZ2luKCksIGRhdGFQb2ludGVyKTsKKyAgICBwcmludC0+YXBwZW5kTmV3PENDYWxsVmFs
dWU+KAorICAgICAgICBwcm9jLCBWb2lkLCBPcmlnaW4oKSwKKyAgICAgICAgcHJpbnQtPmFwcGVu
ZE5ldzxDb25zdFB0clZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLCBiaXR3aXNl
X2Nhc3Q8dm9pZCo+KHRocmVhZGVkSW50ZXJwcmV0ZXJQcmludCkpLAorICAgICAgICBjb250ZXh0
LAorICAgICAgICBwcmludC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBwb2lu
dGVyVHlwZSgpLCBPcmlnaW4oKSwgZGF0YVBvaW50ZXJWYWx1ZSkpOworICAgIHByaW50LT5hcHBl
bmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQ
b2ludGVyLAorICAgICAgICBwcmludC0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHBy
b2MsIEFkZCwgT3JpZ2luKCksIGNvZGVQb2ludGVyLAorICAgICAgICAgICAgcHJpbnQtPmFwcGVu
ZEludENvbnN0YW50KHByb2MsIE9yaWdpbigpLCBwb2ludGVyVHlwZSgpLCBzaXplb2YoaW50cHRy
X3QpKSkpOworICAgIHByaW50LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBP
cmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRpc3BhdGNoKSk7CisgICAgCisgICAgLy8gU3RvcDog
cmV0dXJucy4KKyAgICBzdG9wLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICAgICAgc3RvcC0+YXBwZW5kSW50Q29uc3RhbnQocHJv
YywgT3JpZ2luKCksIHBvaW50ZXJUeXBlKCksIDApKTsKKyAgICAKKyAgICBhdXRvIGludGVycHJl
dGVyID0gY29tcGlsZShwcm9jKTsKKyAgICAKKyAgICBDSEVDSyhBZGREUCk7CisgICAgQ0hFQ0so
QWRkQ1ApOworICAgIENIRUNLKEFkZCk7CisgICAgQ0hFQ0soUHJpbnQpOworICAgIENIRUNLKFN0
b3ApOworICAgIAorICAgIFZlY3RvcjxpbnRwdHJfdD4gZGF0YTsKKyAgICBWZWN0b3I8aW50cHRy
X3Q+IGNvZGU7CisgICAgVmVjdG9yPGludHB0cl90PiBzdHJlYW07CisgICAgCisgICAgZGF0YS5h
cHBlbmQoMSk7CisgICAgZGF0YS5hcHBlbmQoMCk7CisgICAgCisgICAgLy8gV2UnbGwgd3JpdGUg
YSBwcm9ncmFtIHRoYXQgcHJpbnRzIHRoZSBudW1iZXJzIDEuLjEwMC4KKyAgICAvLyBXZSBleHBl
Y3QgRFAgdG8gcG9pbnQgYXQgIzAuCisgICAgY29kZS5hcHBlbmQoQWRkQ1ApOworICAgIGNvZGUu
YXBwZW5kKDYpOyAvLyBnbyB0byBsb29wIGJvZHkKKyAgICAKKyAgICAvLyBMb29wIHJlLWVudHJ5
OgorICAgIC8vIFdlIGV4cGVjdCBEUCB0byBwb2ludCBhdCAjMSBhbmQgZm9yICMxIHRvIGJlIG9m
ZnNldCBieSAtMTAwLgorICAgIGNvZGUuYXBwZW5kKEFkZCk7CisgICAgY29kZS5hcHBlbmQoMTAw
KTsKKyAgICAKKyAgICBjb2RlLmFwcGVuZChBZGREUCk7CisgICAgY29kZS5hcHBlbmQoLTEpOwor
ICAgIAorICAgIC8vIExvb3AgaGVhZGVyOgorICAgIC8vIFdlIGV4cGVjdCBEUCB0byBwb2ludCBh
dCAjMC4KKyAgICBjb2RlLmFwcGVuZChBZGREUCk7CisgICAgY29kZS5hcHBlbmQoMSk7CisgICAg
CisgICAgY29kZS5hcHBlbmQoQWRkKTsKKyAgICBjb2RlLmFwcGVuZCgxKTsKKyAgICAKKyAgICBj
b2RlLmFwcGVuZChQcmludCk7CisgICAgCisgICAgY29kZS5hcHBlbmQoQWRkKTsKKyAgICBjb2Rl
LmFwcGVuZCgtMTAwKTsKKyAgICAKKyAgICAvLyBXZSB3YW50IHRvIHN0b3AgaWYgaXQncyB6ZXJv
IGFuZCBjb250aW51ZSBpZiBpdCdzIG5vbi16ZXJvLiBBZGRDUCB0YWtlcyB0aGUgYnJhbmNoIGlm
IGl0J3MKKyAgICAvLyBub24temVyby4KKyAgICBjb2RlLmFwcGVuZChBZGRDUCk7CisgICAgY29k
ZS5hcHBlbmQoLTExKTsgLy8gZ28gdG8gbG9vcCByZS1lbnRyeS4KKyAgICAKKyAgICBjb2RlLmFw
cGVuZChTdG9wKTsKKyAgICAKKyAgICBDSEVDSyghaW52b2tlPGludHB0cl90PigqaW50ZXJwcmV0
ZXIsIGRhdGEuZGF0YSgpLCBjb2RlLmRhdGEoKSwgJnN0cmVhbSkpOworICAgIAorICAgIENIRUNL
KHN0cmVhbS5zaXplKCkgPT0gMTAwKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgMTAw
OyArK2kpCisgICAgICAgIENIRUNLKHN0cmVhbVtpXSA9PSBpICsgMSk7Cit9CisKIC8vIE1ha2Ug
c3VyZSB0aGUgY29tcGlsZXIgZG9lcyBub3QgdHJ5IHRvIG9wdGltaXplIGFueXRoaW5nIG91dC4K
IE5FVkVSX0lOTElORSBkb3VibGUgemVybygpCiB7CkBAIC0xMzQ1NCw2ICsxMzY3MSw4IEBAIHZv
aWQgcnVuKGNvbnN0IGNoYXIqIGZpbHRlcikKICAgICBSVU4odGVzdFNwaWxsVXNlTGFyZ2VyVGhh
bkRlZigpKTsKIAogICAgIFJVTih0ZXN0TGF0ZVJlZ2lzdGVyKCkpOworICAgIAorICAgIFJVTih0
ZXN0VGhyZWFkZWRJbnRlcnByZXRlcigpKTsKIAogICAgIGlmICh0YXNrcy5pc0VtcHR5KCkpCiAg
ICAgICAgIHVzYWdlKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNv
ZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUu
aAkocmV2aXNpb24gMjAxNDY4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJD
b2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJBaXJTcGVj
aWFsLmgiCiAjaW5jbHVkZSAiQWlyU3RhY2tTbG90LmgiCiAjaW5jbHVkZSAiQWlyVG1wLmgiCisj
aW5jbHVkZSAiQjNJbmRleE1hcC5oIgogI2luY2x1ZGUgIkIzU3BhcnNlQ29sbGVjdGlvbi5oIgog
I2luY2x1ZGUgIlJlZ2lzdGVyQXRPZmZzZXRMaXN0LmgiCiAjaW5jbHVkZSAiU3RhY2tBbGlnbm1l
bnQuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGUuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGUu
Y3BwCShyZXZpc2lvbiAyMDE0NjgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fp
ckdlbmVyYXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDcsMTAgKzQ3LDEyIEBACiAjaW5jbHVk
ZSAiQWlyVmFsaWRhdGUuaCIKICNpbmNsdWRlICJCM0NvbW1vbi5oIgogI2luY2x1ZGUgIkIzSW5k
ZXhNYXAuaCIKKyNpbmNsdWRlICJCM0xlYXBPZkZhaXRoVmFsdWUuaCIKICNpbmNsdWRlICJCM1By
b2NlZHVyZS5oIgogI2luY2x1ZGUgIkIzVGltaW5nU2NvcGUuaCIKICNpbmNsdWRlICJDQ2FsbEhl
bHBlcnMuaCIKICNpbmNsdWRlICJEaXNhbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UuaCIK
KyNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMg
eyBuYW1lc3BhY2UgQWlyIHsKIApAQCAtMTgzLDcgKzE4NSw4IEBAIHZvaWQgZ2VuZXJhdGUoQ29k
ZSYgY29kZSwgQ0NhbGxIZWxwZXJzJiAKIAogICAgIGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiBj
b2RlKSB7CiAgICAgICAgIGJsb2NrSnVtcHNbYmxvY2tdLmxpbmsoJmppdCk7Ci0gICAgICAgIGJs
b2NrTGFiZWxzW2Jsb2NrXSA9IGppdC5sYWJlbCgpOworICAgICAgICBDQ2FsbEhlbHBlcnM6Okxh
YmVsIGxhYmVsID0gaml0LmxhYmVsKCk7CisgICAgICAgIGJsb2NrTGFiZWxzW2Jsb2NrXSA9IGxh
YmVsOwogICAgICAgICBBU1NFUlQoYmxvY2stPnNpemUoKSA+PSAxKTsKICAgICAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IGJsb2NrLT5zaXplKCkgLSAxOyArK2kpIHsKICAgICAgICAgICAg
IEluc3QmIGluc3QgPSBibG9jay0+YXQoaSk7CkBAIC0yMTUsMjYgKzIxOCw1NCBAQCB2b2lkIGdl
bmVyYXRlKENvZGUmIGNvZGUsIENDYWxsSGVscGVycyYgCiAgICAgICAgICAgICBhZGRJdGVtKGJs
b2NrLT5sYXN0KCkpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KLQorICAgICAg
ICAKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGp1bXAgPSBibG9jay0+bGFzdCgpLmdlbmVy
YXRlKGppdCwgY29udGV4dCk7Ci0gICAgICAgIHN3aXRjaCAoYmxvY2stPm51bVN1Y2Nlc3NvcnMo
KSkgewotICAgICAgICBjYXNlIDA6Ci0gICAgICAgICAgICBBU1NFUlQoIWp1bXAuaXNTZXQoKSk7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAxOgotICAgICAgICAgICAgbGluayhq
dW1wLCBibG9jay0+c3VjY2Vzc29yQmxvY2soMCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGNhc2UgMjoKLSAgICAgICAgICAgIGxpbmsoanVtcCwgYmxvY2stPnN1Y2Nlc3NvckJsb2Nr
KDApKTsKLSAgICAgICAgICAgIGlmIChibG9jay0+c3VjY2Vzc29yQmxvY2soMSkgIT0gY29kZS5m
aW5kTmV4dEJsb2NrKGJsb2NrKSkKLSAgICAgICAgICAgICAgICBsaW5rKGppdC5qdW1wKCksIGJs
b2NrLT5zdWNjZXNzb3JCbG9jaygxKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgZGVm
YXVsdDoKLSAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgLy8gVGhlIGp1bXAgd29uJ3QgYmUgc2V0IGZvciBMZWFwT2ZG
YWl0aCBiZWNhdXNlIGl0IGxldHMgaXRzIGZhaXRoIGluIHRoZSBhZGRyZXNzIG9wZXJhbmQKKyAg
ICAgICAgLy8gZ3VpZGUgd2hlcmUgaXQganVtcHMuIEl0IHdvbid0IGJlIHNldCBmb3IgT29wcyBi
ZWNhdXNlIHRoZW4gaXQgd29uJ3QgaGF2ZSBhbnkgc3VjY2Vzc29ycy4KKyAgICAgICAgaWYgKGp1
bXAuaXNTZXQoKSkgeworICAgICAgICAgICAgc3dpdGNoIChibG9jay0+bnVtU3VjY2Vzc29ycygp
KSB7CisgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgbGluayhqdW1wLCBibG9j
ay0+c3VjY2Vzc29yQmxvY2soMCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgY2FzZSAyOgorICAgICAgICAgICAgICAgIGxpbmsoanVtcCwgYmxvY2stPnN1Y2Nlc3NvckJs
b2NrKDApKTsKKyAgICAgICAgICAgICAgICBpZiAoYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDEpICE9
IGNvZGUuZmluZE5leHRCbG9jayhibG9jaykpCisgICAgICAgICAgICAgICAgICAgIGxpbmsoaml0
Lmp1bXAoKSwgYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDEpKTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KICAg
ICAgICAgfQogICAgICAgICBhZGRJdGVtKGJsb2NrLT5sYXN0KCkpOwogICAgIH0KKyAgICAKKyAg
ICAvLyBUYWtlIGNhcmUgb2YgTGVhcE9mRmFpdGguIFdlIGRvIHRoaXMgbGFzdCBiZWNhdXNlIGl0
IHJlbGllcyBvbiBrbm93aW5nIHdoZXJlIGFsbCBvZiB0aGUgYmFzaWMKKyAgICAvLyBibG9jayBs
YW5kZWQuCisgICAgZm9yIChCYXNpY0Jsb2NrKiBibG9jayA6IGNvZGUpIHsKKyAgICAgICAgaWYg
KGJsb2NrLT5sYXN0KCkub3Bjb2RlICE9IExlYXBPZkZhaXRoKQorICAgICAgICAgICAgY29udGlu
dWU7CisgICAgICAgIAorICAgICAgICBMZWFwT2ZGYWl0aFZhbHVlKiBsZWFwT2ZGYWl0aCA9IGJs
b2NrLT5sYXN0KCkub3JpZ2luLT5hczxMZWFwT2ZGYWl0aFZhbHVlPigpOworICAgICAgICBSRUxF
QVNFX0FTU0VSVChsZWFwT2ZGYWl0aC0+bnVtU3VjY2Vzc29ycygpID09IGJsb2NrLT5udW1TdWNj
ZXNzb3JzKCkpOworICAgICAgICAKKyAgICAgICAgUmVmUHRyPFNoYXJlZFRhc2s8TGVhcE9mRmFp
dGhWYWx1ZTo6Q2FsbGJhY2tGdW5jdGlvblR5cGU+PiB0YXNrID0gbGVhcE9mRmFpdGgtPmNhbGxi
YWNrVGFzaygpOworICAgICAgICBpZiAoIXRhc2spCisgICAgICAgICAgICBjb250aW51ZTsgLy8g
VGhpcyB3b3VsZCBiZSB3ZWlyZCwgYnV0IHdlIGFsbG93IGl0LgorICAgICAgICAKKyAgICAgICAg
VmVjdG9yPENDYWxsSGVscGVyczo6TGFiZWw+IGxhYmVsczsKKyAgICAgICAgZm9yIChCYXNpY0Js
b2NrKiBzdWNjZXNzb3IgOiBibG9jay0+c3VjY2Vzc29yQmxvY2tzKCkpCisgICAgICAgICAgICBs
YWJlbHMuYXBwZW5kKGJsb2NrTGFiZWxzW3N1Y2Nlc3Nvcl0pOworICAgICAgICAKKyAgICAgICAg
aml0LmFkZExpbmtUYXNrKAorICAgICAgICAgICAgWz1dIChMaW5rQnVmZmVyJiBsaW5rQnVmZmVy
KSB7CisgICAgICAgICAgICAgICAgVmVjdG9yPE1hY3JvQXNzZW1ibGVyQ29kZVB0cj4gcG9pbnRl
cnM7CisgICAgICAgICAgICAgICAgZm9yIChDQ2FsbEhlbHBlcnM6OkxhYmVsIGxhYmVsIDogbGFi
ZWxzKQorICAgICAgICAgICAgICAgICAgICBwb2ludGVycy5hcHBlbmQobGlua0J1ZmZlci5sb2Nh
dGlvbk9mKGxhYmVsKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgdGFzay0+
cnVuKHBvaW50ZXJzKTsKKyAgICAgICAgICAgIH0pOworICAgIH0KIAogICAgIHBjVG9PcmlnaW5N
YXAuYXBwZW5kSXRlbShqaXQubGFiZWwoKSwgT3JpZ2luKCkpOwogICAgIC8vIEZJWE1FOiBNYWtl
IGxhdGUgcGF0aHMgaGF2ZSBPcmlnaW5zOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTUzNjg5CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpcklu
c3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5z
dC5jcHAJKHJldmlzaW9uIDIwMTQ2OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlySW5zdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDYgKzQ1LDExIEBAIGJvb2wgSW5zdDo6
aGFzQXJnRWZmZWN0cygpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorYm9vbCBJbnN0Ojppc0Ns
b25lYWJsZSgpCit7CisgICAgcmV0dXJuICFvcmlnaW4gfHwgb3JpZ2luLT5pc0Nsb25lYWJsZSgp
OworfQorCiB2b2lkIEluc3Q6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHsKICAgICBv
dXQucHJpbnQob3Bjb2RlLCAiICIsIGxpc3REdW1wKGFyZ3MpKTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvQWlySW5zdC5oCShyZXZpc2lvbiAyMDE0NjgpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0Fpckluc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMTg3LDYgKzE4
NywxMCBAQCBwdWJsaWM6CiAgICAgLy8gICAgIEFkZCBUbXAxLCBUbXAyLCBUbXAzCiAgICAgLy8g
cmV0dXJucyAyIGlmIDAgYW5kIDEgYmVuZWZpdCBmcm9tIGFsaWFzaW5nIHRvIFRtcDMuCiAgICAg
T3B0aW9uYWw8dW5zaWduZWQ+IHNob3VsZFRyeUFsaWFzaW5nRGVmKCk7CisgICAgCisgICAgLy8g
U29tZSBpbnN0dWN0aW9ucyB3aWxsIHJlZnVzZSB0byBhbGxvdyBjbG9uaW5nLiBJZiB0aGlzIHJl
dHVybnMgZmFsc2UsIHlvdSBtdXN0IG1ha2Ugc3VyZSB0aGF0CisgICAgLy8geW91IG5ldmVyIGlu
dHJvZHVjZSBjb3BpZXMgb2YgdGhlIGluc3RydWN0aW9uLgorICAgIGJvb2wgaXNDbG9uZWFibGUo
KTsKIAogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0OwogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMJKHJldmlzaW9uIDIw
MTQ2OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMJ
KHdvcmtpbmcgY29weSkKQEAgLTgzNSw2ICs4MzUsMTQgQEAgTW92ZURvdWJsZUNvbmRpdGlvbmFs
bHlGbG9hdCBVOkc6MzIsIFU6RgogCiBKdW1wIC9icmFuY2gKIAorIyBUaGlzIG1hc3F1ZXJhZGVz
IGFzIGEgbm9uLWJyYW5jaCB0ZXJtaW5hbCBiZWNhdXNlIGl0IGRvZXNuJ3QgbmVlZCB0aGUgdHJh
ZGl0aW9uYWwgc29ydCBvZiBsaW5raW5nLgorIyAiQnJhbmNoIiBpbiB0aGlzIGNvbnRleHQganVz
dCBtZWFucyB0aGF0IGl0J3MgYSB0ZXJtaW5hbCB0aGF0IHJldHVybnMgYSBKdW1wIHRoYXQgbmVl
ZHMgdG8gYmUKKyMgbGlua2VkLiBJbnN0ZWFkLCBBaXI6OmdlbmVyYXRlKCkgaGFzIGEgc3BlY2lh
bC1jYXNlIGZvciBMZWFwT2ZGYWl0aC4KK0xlYXBPZkZhaXRoIFU6RzpQdHIgL3Rlcm1pbmFsCisg
ICAgVG1wIGFzIGp1bXAKKyAgICB4ODY6IEFkZHIgYXMganVtcAorICAgIHg4NjogSW5kZXggYXMg
anVtcAorCiBSZXQzMiBVOkc6MzIgL3JldHVybgogICAgIFRtcAogCkluZGV4OiBXZWJzaXRlcy93
ZWJraXQub3JnL2RvY3MvYjMvaW50ZXJtZWRpYXRlLXJlcHJlc2VudGF0aW9uLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2Vic2l0ZXMvd2Via2l0Lm9yZy9kb2NzL2IzL2ludGVybWVkaWF0ZS1yZXByZXNl
bnRhdGlvbi5odG1sCShyZXZpc2lvbiAyMDE0NjgpCisrKyBXZWJzaXRlcy93ZWJraXQub3JnL2Rv
Y3MvYjMvaW50ZXJtZWRpYXRlLXJlcHJlc2VudGF0aW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTQxMiwxMSArNDEyLDEyIEBACiAgICAgICAgIHRoZSBDQ2FsbFZhbHVlIGNsYXNzLjwvZGQ+CiAK
ICAgICAgIDxkdD5UMSBQYXRjaHBvaW50KFtUMiwgW1QzLCAuLi5dXSk8L2R0PgotICAgICAgPGRk
PkEgUGF0Y2hwb2ludCBpcyBhIGN1c3RvbWl6YWJsZSB2YWx1ZS4gIFBhdGNocG9pbnRzIHRha2Ug
emVybyBvciBtb3JlIHZhbHVlcyBvZiBhbnkKLSAgICAgICAgdHlwZSBhbmQgcmV0dXJuIGFueSB0
eXBlLiAgQSBQYXRjaHBvaW50J3MgYmVoYXZpb3IgaXMgZGV0ZXJtaW5lZCBieSB0aGUgZ2VuZXJh
dG9yCi0gICAgICAgIG9iamVjdC4gIFRoZSBnZW5lcmF0b3IgaXMgYSBDKysgbGFtYmRhIHRoYXQg
Z2V0cyBjYWxsZWQgZHVyaW5nIGNvZGUgZ2VuZXJhdGlvbi4gIEl0IGdldHMKLSAgICAgICAgcGFz
c2VkIGFuIGFzc2VtYmxlciBpbnN0YW5jZSAoc3BlY2lmaWNhbGx5LCBDQ2FsbEhlbHBlcnMmKSBh
bmQgYW4gb2JqZWN0IGRlc2NyaWJpbmcKLSAgICAgICAgd2hlcmUgdG8gZmluZCBhbGwgb2YgdGhl
IGlucHV0IHZhbHVlcyBhbmQgd2hlcmUgdG8gcHV0IHRoZSByZXN1bHQuICBIZXJlJ3MgYW4gZXhh
bXBsZToKKyAgICAgIDxkZD4KKyAgICAgICAgPHA+QSBQYXRjaHBvaW50IGlzIGEgY3VzdG9taXph
YmxlIHZhbHVlLiAgUGF0Y2hwb2ludHMgdGFrZSB6ZXJvIG9yIG1vcmUgdmFsdWVzIG9mIGFueQor
ICAgICAgICAgIHR5cGUgYW5kIHJldHVybiBhbnkgdHlwZS4gIEEgUGF0Y2hwb2ludCdzIGJlaGF2
aW9yIGlzIGRldGVybWluZWQgYnkgdGhlIGdlbmVyYXRvcgorICAgICAgICAgIG9iamVjdC4gIFRo
ZSBnZW5lcmF0b3IgaXMgYSBDKysgbGFtYmRhIHRoYXQgZ2V0cyBjYWxsZWQgZHVyaW5nIGNvZGUg
Z2VuZXJhdGlvbi4gIEl0IGdldHMKKyAgICAgICAgICBwYXNzZWQgYW4gYXNzZW1ibGVyIGluc3Rh
bmNlIChzcGVjaWZpY2FsbHksIENDYWxsSGVscGVycyYpIGFuZCBhbiBvYmplY3QgZGVzY3JpYmlu
ZworICAgICAgICAgIHdoZXJlIHRvIGZpbmQgYWxsIG9mIHRoZSBpbnB1dCB2YWx1ZXMgYW5kIHdo
ZXJlIHRvIHB1dCB0aGUgcmVzdWx0LiAgSGVyZSdzIGFuIGV4YW1wbGU6PC9wPgogIAogICAgICAg
ICA8cHJlPjxjb2RlPlBhdGNocG9pbnRWYWx1ZSogcGF0Y2hwb2ludCA9IGJsb2NrLT5hcHBlbmRO
ZXcmbHQ7UGF0Y2hwb2ludFZhbHVlJmd0Oyhwcm9jLCBJbnQzMiwgT3JpZ2luKCkpOwogcGF0Y2hw
b2ludC0+YXBwZW5kKENvbnN0cmFpbmVkVmFsdWUoYXJnMSwgVmFsdWVSZXA6OlNvbWVSZWdpc3Rl
cikpOwpAQCAtNTI2LDYgKzUyNywzOSBAQCBwYXRjaHBvaW50LT5zZXRHZW5lcmF0b3IoCiAgICAg
ICAgIGFsc28gY29udGFpbnMgYSBmYWxsLXRocm91Z2ggdGFyZ2V0IGluIGNhc2UgdGhlIGNoaWxk
IGhhcyBhIHZhbHVlIHRoYXQgd2Fzbid0IG1lbnRpb25lZAogICAgICAgICBpbiB0aGUgY2FzZXMg
bGlzdC4gIE11c3QgdXNlIHRoZSBTd2l0Y2hWYWx1ZSBjbGFzcy4gIE11c3QgYXBwZWFyIGF0IHRo
ZSBlbmQgb2YgdGhlIGJhc2ljCiAgICAgICAgIGJsb2NrLjwvZGQ+CisgICAgICAKKyAgICAgIDxk
dD5Wb2lkIExlYXBPZkZhaXRoKEludFB0ciwgYmxvY2tzLi4uKTwvZHQ+CisgICAgICA8ZGQ+Cisg
ICAgICAgIDxwPkp1bXBzIHRvIHRoZSBnaXZlbiBhZGRyZXNzLiBUaGUgY29tcGlsZXIgd2lsbCBh
c3N1bWUgdGhhdCB0aGlzIGp1bXBzIHRvIG9uZSBvZiB0aGUgZ2l2ZW4KKyAgICAgICAgICBibG9j
a3MuIFRoZSBjb21waWxlciBtYWtlcyBubyBhdHRlbXB0IHRvIHByb3ZlIG9yIHZhbGlkYXRlIHRo
YXQgdGhlIHBhc3NlZCBqdW1wIGFkZHJlc3MgaXMKKyAgICAgICAgICBhY3R1YWxseSB0aGUgYWRk
cmVzcyBvZiBhbnkgb2YgdGhvc2UgYmxvY2tzLiBOb25zZW5zaWNhbCB0aGluZ3Mgd2lsbCBoYXBw
ZW4gaWYgdGhlIHBhc3NlZAorICAgICAgICAgIGFkZHJlc3MgaXMgbm90IHRoZSBhZGRyZXNzIG9m
IG9uZSBvZiB0aGUgYmxvY2tzIGluIHRoZSBzdWNjZXNzb3IgbGlzdC4gWW91IGNhbiBhcnJhbmdl
IHRvCisgICAgICAgICAgZ2V0IHRoZSBhZGRyZXNzZXMgb2YgYmxvY2tzIGJ5IHBhc3NpbmcgYSBj
YWxsYmFjayB0byBMZWFwT2ZGYWl0aC4gVGhpcyBpcyB1c2VkIGludGVybmFsbHkKKyAgICAgICAg
ICBmb3IgbG93ZXJpbmcgU3dpdGNoIG9wY29kZXMuIFlvdSBjYW4gYWxzbyB1c2UgaXQgZGlyZWN0
bHkuPC9wPgorICAgICAgCisgICAgICAgIDxwPkxlYXBPZkZhaXRoIGlzIG5vdCBjbG9uZWFibGUu
IEZvciBlYWNoIExlYXBPZkZhaXRoIHlvdSBjcmVhdGUsIHRoZXJlIHdpbGwgYmUgb25lIGluZGly
ZWN0CisgICAgICAgICAganVtcCBnZW5lcmF0ZWQuIFRoaXMgaXMgbmVjZXNzYXJ5IHRvIGVuc3Vy
ZSBzb3VuZG5lc3Mgb2YgdGhlIGNhbGxiYWNrLiBJZiB0aGUgTGVhcE9mRmFpdGgKKyAgICAgICAg
ICBjb3VsZCBiZSBjbG9uZWQsIHRoZW4gdGhlIGNhbGxiYWNrIHdvdWxkIGdldCBjYWxsZWQgZm9y
IGVhY2ggY2xvbmUuIFByZXN1bWFibHksIHlvdSdkCisgICAgICAgICAgaW1wbGVtZW50IHRoZSBj
YWxsYmFjayBieSBwb3B1bGF0aW5nIHNvbWUgdGFibGUgd2l0aCB0aGUgYWRkcmVzc2VzIG9mIHRo
ZSBibG9ja3MuIElmIHRoZQorICAgICAgICAgIGNhbGxiYWNrIGdldHMgY2FsbGVkIG11bHRpcGxl
IHRpbWVzIHRoZW4gaXQgbWF5IHJldHVybiBkaWZmZXJlbnQgYWRkcmVzc2VzIGVhY2ggdGltZSAt
CisgICAgICAgICAgc2luY2UgYWZ0ZXIgY2xvbmluZyBhIExlYXBPZkZhaXRoLCB0aGUgY29tcGls
ZXIgbWF5IHJldGFyZ2V0IGFueSBvZiBpdHMgc3VjY2Vzc29yIGVkZ2VzLgorICAgICAgICAgIFRo
aXMgd291bGQgYmUgY29uZnVzaW5nLCBzaW5jZSB0aGVuIHlvdSB3b3VsZG4ndCBrbm93IHdoYXQg
dG8gZG8gd2l0aCBkaXNjcmVwYW5jaWVzIGJldHdlZW4KKyAgICAgICAgICBhZGRyZXNzZXMgcmV0
dXJuZWQgYnkgdGhlIHZhcmlvdXMgY2FsbHMgdG8gdGhlIGNhbGxiYWNrLiBEaXNhbGxvd2luZyBj
bG9uaW5nIG9mIExlYXBPZkZhaXRoCisgICAgICAgICAgc29sdmVzIHRoaXMgcHJvYmxlbS48L3A+
CisgICAgICAgIAorICAgICAgICA8cD5BIGNsb3NlbHkgcmVsYXRlZCBwcm9ibGVtIGlzIHRoYXQg
aWYgeW91IGVtaXQgbXVsdGlwbGUgTGVhcE9mRmFpdGggaW5zdHJ1Y3Rpb25zLCB0aGVuIGV2ZW4K
KyAgICAgICAgICBpZiB0aGV5IGluaXRpYWxseSBzaGFyZSB0aGUgc2FtZSBzdWNjZXNzb3JzLCB5
b3UgY2Fubm90IGd1YXJhbnRlZSB0aGF0IHRoZXkgd2lsbCBjb250aW51ZQorICAgICAgICAgIHRv
IHNoYXJlIHRoZSBzYW1lIHN1Y2Nlc3NvcnMgYWZ0ZXIgb3B0aW1pemF0aW9uLiBUaGlzIG1lYW5z
IHRoYXQgTGVhcE9mRmFpdGggY2Fubm90CisgICAgICAgICAgY3VycmVudGx5IGJlIHVzZWQgZm9y
IGltcGxlbWVudGluZyBkaXJlY3QgdGhyZWFkZWQgaW50ZXJwcmV0ZXJzLCBhdCBsZWFzdCBub3Qg
dGhlIGNsYXNzaWMKKyAgICAgICAgICBraW5kOiB0byBtYWtlIGl0IHdvcmssIHlvdSBoYXZlIHRv
IGhhdmUgYSBzaGFyZWQgZGlzcGF0Y2ggYmxvY2sgc28gdGhhdCB5b3UgaGF2ZSBhIHNpbmdsZQor
ICAgICAgICAgIExlYXBPZkZhaXRoLiBUaGlzIG1pZ2h0IGJlIGJldHRlciB0aGFuIGEgU3dpdGNo
LWJhc2VkIGludGVycHJldGVyLCBidXQgaXQncyBkZWZpbml0ZWx5IG5vdAorICAgICAgICAgIGFz
IGdvb2QgYXMgd2hhdCB5b3UnZCBnZXQgd2l0aCBHQ0Mtc3R5bGUgY29tcHV0ZWQgZ290by48L3A+
CisgICAgICAgIAorICAgICAgICA8cD5MZWFwT2ZGYWl0aCBpcyBzbyBuYW1lZCB0byBhdm9pZCBj
b25mdXNpb24gd2l0aCBjb21wdXRlZCBnb3RvcyBhbmQgaW5kaXJlY3QgYnJhbmNoZXMgaW4KKyAg
ICAgICAgICBvdGhlciBjb21waWxlcnMuIEl0IGhhcyBzaWduaWZpY2FudCByZXN0cmljdGlvbnMg
dGhhdCB0aG9zZSBvcGVyYXRpb25zIGRvIG5vdCBoYXZlLiBUaGVzZQorICAgICAgICAgIHJlc3Ry
aWN0aW9ucyBtYWtlIGl0IGVhc2llciBmb3IgdGhlIG9wdGltaXplciB0byB3b3JrIHdpdGggc2lu
Y2UgdGhlIGNvbnRyb2wgZmxvdyBnZXRzIHRvCisgICAgICAgICAgYmUgZXhwbGljaXQgKExlYXBP
ZkZhaXRoIGhhcyBhIGZpbml0ZSBzZXQgb2Ygc3VjY2Vzc29ycyBsaWtlIGFueSBvdGhlciBibG9j
ayB0ZXJtaW5hbCkuPC9wPgorICAgICAgPC9kZD4KIAogICAgICAgPGR0PlZvaWQgUmV0dXJuKFQp
PC9kdD4KICAgICAgIDxkZD5Xb3JrcyBmb3IgYW55IHR5cGUgZXhjZXB0IFZvaWQuICBSZXR1cm5z
IHRoZSBnaXZlbiB2YWx1ZSBhbmQgdGVybWluYXRlcyB0aGUgcHJvY2VkdXJlLgpJbmRleDogTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2gtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3MvYmlnc3dpdGNoCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIg
QEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9y
ZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2JpZ3N3
aXRjaC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3Mt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9iaWdzd2l0Y2guanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvYmlnc3dpdGNoLmpzCShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvYmlnc3dpdGNoLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMjExIEBACitmdW5jdGlvbiBmb28obykgeworICAgIHZhciBy
ZXN1bHQgPSAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgKytpKSB7CisgICAgICAg
IHZhciB2YWx1ZSA9IGkgJiA2MzsKKyAgICAgICAgc3dpdGNoICh2YWx1ZSkgeworICAgICAgICBj
YXNlIDA6CisgICAgICAgICAgICByZXN1bHQgKz0gby5hOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYzsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICByZXN1bHQgKz0gby5k
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDoKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1OgorICAgICAgICAg
ICAgcmVzdWx0ICs9IG8uZjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDY6Cisg
ICAgICAgICAgICByZXN1bHQgKz0gby5nOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgNzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSA4OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIDk6CisgICAgICAgICAgICByZXN1bHQgKz0gby5qOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTA6CisgICAgICAgICAgICByZXN1bHQgKz0gby5r
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTE6CisgICAgICAgICAgICByZXN1
bHQgKz0gby5hOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTI6CisgICAgICAg
ICAgICByZXN1bHQgKz0gby5iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTM6
CisgICAgICAgICAgICByZXN1bHQgKz0gby5jOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgMTQ6CisgICAgICAgICAgICByZXN1bHQgKz0gby5kOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgMTU6CisgICAgICAgICAgICByZXN1bHQgKz0gby5lOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTY6CisgICAgICAgICAgICByZXN1bHQgKz0gby5mOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTc6CisgICAgICAgICAgICByZXN1bHQg
Kz0gby5nOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTg6CisgICAgICAgICAg
ICByZXN1bHQgKz0gby5oOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTk6Cisg
ICAgICAgICAgICByZXN1bHQgKz0gby5pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgMjA6CisgICAgICAgICAgICByZXN1bHQgKz0gby5qOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgMjE6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgMjI6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjM6CisgICAgICAgICAgICByZXN1bHQgKz0g
by5hOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjQ6CisgICAgICAgICAgICBy
ZXN1bHQgKz0gby5iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjU6CisgICAg
ICAgICAgICByZXN1bHQgKz0gby5jOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
MjY6CisgICAgICAgICAgICByZXN1bHQgKz0gby5kOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgMjc6CisgICAgICAgICAgICByZXN1bHQgKz0gby5lOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgMjg6CisgICAgICAgICAgICByZXN1bHQgKz0gby5mOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjk6CisgICAgICAgICAgICByZXN1bHQgKz0gby5n
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzA6CisgICAgICAgICAgICByZXN1
bHQgKz0gby5oOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzE6CisgICAgICAg
ICAgICByZXN1bHQgKz0gby5pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzI6
CisgICAgICAgICAgICByZXN1bHQgKz0gby5qOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgMzM6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgMzQ6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzU6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzY6CisgICAgICAgICAgICByZXN1bHQg
Kz0gby5hOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzc6CisgICAgICAgICAg
ICByZXN1bHQgKz0gby5iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzg6Cisg
ICAgICAgICAgICByZXN1bHQgKz0gby5jOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgMzk6CisgICAgICAgICAgICByZXN1bHQgKz0gby5kOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgNDA6CisgICAgICAgICAgICByZXN1bHQgKz0gby5lOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgNDE6CisgICAgICAgICAgICByZXN1bHQgKz0gby5mOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDI6CisgICAgICAgICAgICByZXN1bHQgKz0g
by5nOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDM6CisgICAgICAgICAgICBy
ZXN1bHQgKz0gby5oOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDQ6CisgICAg
ICAgICAgICByZXN1bHQgKz0gby5pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
NDU6CisgICAgICAgICAgICByZXN1bHQgKz0gby5qOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgNDY6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgNDc6CisgICAgICAgICAgICByZXN1bHQgKz0gby5pOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDg6CisgICAgICAgICAgICByZXN1bHQgKz0gby5q
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDk6CisgICAgICAgICAgICByZXN1
bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTA6CisgICAgICAg
ICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTE6
CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgNTI6CisgICAgICAgICAgICByZXN1bHQgKz0gby5hOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgNTM6CisgICAgICAgICAgICByZXN1bHQgKz0gby5iOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTQ6CisgICAgICAgICAgICByZXN1bHQgKz0gby5jOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTU6CisgICAgICAgICAgICByZXN1bHQg
Kz0gby5kOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTY6CisgICAgICAgICAg
ICByZXN1bHQgKz0gby5lOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTc6Cisg
ICAgICAgICAgICByZXN1bHQgKz0gby5mOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgNTg6CisgICAgICAgICAgICByZXN1bHQgKz0gby5nOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgNTk6CisgICAgICAgICAgICByZXN1bHQgKz0gby5oOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgNjA6CisgICAgICAgICAgICByZXN1bHQgKz0gby5pOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNjE6CisgICAgICAgICAgICByZXN1bHQgKz0g
by5qOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNjI6CisgICAgICAgICAgICBy
ZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICByZXN1bHQgKz0gby56OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg
ICB9CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworKGZ1bmN0aW9uKCkgeworICAgIHZhciBvID0g
e2E6MSwgYjoyLCBjOjMsIGQ6NCwgZTo1LCBmOjYsIGc6NywgaDo4LCBpOjksIGo6MTAsIGs6MTEs
IHo6MTAwfTsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEw
MDAwOyArK2kpCisgICAgICAgIHJlc3VsdCArPSBmb28obyk7CisgICAgaWYgKHJlc3VsdCAhPSA3
OTY2MDAwMCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0Owor
fSkoKTsKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280062</attachid>
            <date>2016-05-29 11:31:10 -0700</date>
            <delta_ts>2016-05-29 13:33:56 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>73220</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAxNDk0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0MCBA
QAorMjAxNi0wNS0yOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IEltcGxlbWVudCB0YWJsZS1iYXNlZCBzd2l0Y2hlcyBpbiBCMy9BaXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTE0MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgSWYgYSBzd2l0Y2ggc3Rh
dGVtZW50IGdldHMgbGFyZ2UsIGl0J3MgYmV0dGVyIHRvIGV4cHJlc3MgaXQgYXMgYW4gaW5kaXJl
Y3QganVtcCByYXRoZXIgdGhhbgorICAgICAgICB1c2luZyBhIGJpbmFyeSBzd2l0Y2ggKGRpdmlk
ZS1hbmQtY29ucXVlciB0cmVlIG9mIGNvbXBhcmlzb25zIGxlYWRpbmcgdG8gTyhsb2cgbikgYnJh
bmNoZXMgdG8KKyAgICAgICAgZ2V0IHRvIHRoZSBzd2l0Y2ggY2FzZSkuIFdoZW4gZGVhbGluZyB3
aXRoIGludGVnZXIgc3dpdGNoZXMsIEZUTCB3aWxsIGFscmVhZHkgdXNlIHRoZSBCMworICAgICAg
ICBTd2l0Y2ggYW5kIGV4cGVjdCB0aGlzIHRvIGdldCBsb3dlcmVkIGFzIGVmZmljaWVudGx5IGFz
IHBvc3NpYmxlOyBpdCdzIGEgYnVnIHRoYXQgQjMgd2lsbAorICAgICAgICBhbHdheXMgdXNlIGEg
YmluYXJ5IHN3aXRjaCByYXRoZXIgdGhhbiBpbmRpcmVjdCBqdW1wcy4gV2hlbiBkZWFsaW5nIHdp
dGggc3dpdGNoZXMgb3ZlciBzb21lCisgICAgICAgIG1vcmUgc29waGlzdGljYXRlZCB0eXBlcywg
d2UnZCB3YW50IEZUTCB0byBidWlsZCBhbiBpbmRpcmVjdCBqdW1wIHRhYmxlIGl0c2VsZiBhbmQg
dXNlCisgICAgICAgIHNvbWV0aGluZyBsaWtlIGEgaGFzaHRhYmxlIHRvIGZlZWQgaXQuCisgICAg
ICAgIAorICAgICAgICBUaGlzIGltcGxpZXMgdGhhdCB3ZSB3YW50IEIzIHRvIGhhdmUgdGhlIGFi
aWxpdHkgdG8gbG93ZXIgU3dpdGNoIHRvIGluZGlyZWN0IGp1bXBzIGFuZCB0bworICAgICAgICBl
eHBvc2UgdGhvc2UgaW5kaXJlY3QganVtcHMgaW4gSVIgc28gdGhhdCB0aGUgRlRMIGNvdWxkIGRv
IGl0cyBvd24gaW5kaXJlY3QganVtcHMgZm9yCisgICAgICAgIHN3aXRjaGVzIG92ZXIgbW9yZSBj
b21wbGljYXRlZCB0aGluZ3MgbGlrZSBzdHJpbmdzLiBUaGUgaW5kaXJlY3QganVtcCBvcGNvZGUg
aW4gQjMgaXMgY2FsbGVkCisgICAgICAgIFBvbHlKdW1wLCBhbmQgaXQgaGFzIHNvbWUgdW5pcXVl
IHNlbWFudGljcyB0aGF0IG1ha2UgaXQgdmVyeSBkaWZmZXJlbnQgZnJvbSAiaW5kaXJlY3QganVt
cHMiLAorICAgICAgICAiaW5kaXJlY3QgYnJhbmNoZXMiLCBhbmQgImNvbXB1dGVkIGdvdG9zIiAt
IGFsbCB0ZXJtcyBvZiBhcnQgdXNlZCBpbiBvdGhlciBjb21waWxlcnMuCisgICAgICAgIAorICAg
ICAgICBUaGlzIGltcGxlbWVudHMgdGhlIG1vc3QgYmFzaWMga2luZCBvZiBTd2l0Y2gtdG8taW5k
aXJlY3QtanVtcCBsb3dlcmluZyBpbiBCMzo6bG93ZXJNYWNyb3MoKS4KKyAgICAgICAgQXMgcGFy
dCBvZiB0aGUgZXhpc3RpbmcgZGl2aWRlLWFuZC1jb25xdWVyIHRoYXQgY3JlYXRlcyBicmFuY2hl
cywgaWYgaXQgZGV0ZWN0cyB0aGF0IHRoZSBzZXQKKyAgICAgICAgb2YgY2FzZXMgc2F0aXNmaWVz
IHNvbWUgY29uZGl0aW9ucyAoZGVuc2l0eSBvZiBjYXNlIHZhbHVlcyBhbmQgdG90YWwgc2l6ZSks
IHRoZW4gaXQgd2lsbCBlbWl0CisgICAgICAgIGEgUG9seUp1bXAuCisgICAgICAgIAorICAgICAg
ICBUaGUgcHJvYmxlbSB3aXRoIGluZGlyZWN0IGp1bXBzIGlzIHRoYXQgdGhleSBmb3JjZSB0aGUg
Y29tcGlsZXIgdG8gYmUgY29uc2VydmF0aXZlIGFib3V0CisgICAgICAgIGNvbnRyb2wgZmxvdy4g
VGhlIGNvbXBpbGVyIG11c3QgYXNzdW1lIHRoYXQgdGhlIGluZGlyZWN0IGp1bXAgbWF5IHRyYW5z
ZmVyIGNvbnRyb2wgZmxvdyB0bworICAgICAgICBhbnkgZXNjYXBlZCBibG9jayAoYmxvY2sgbGFi
ZWxlZCBhcyBiZWluZyBhIHBvc3NpYmxlIHRhcmdldCBmb3IgaW5kaXJlY3QganVtcHMsIG9yIGlm
IG5vIHN1Y2gKKyAgICAgICAgbGFiZWxpbmcgaXMgYXZhaWxhYmxlLCB0aGUgY29tcGlsZXIgbXVz
dCBhc3N1bWUgdGhhdCBpdCBtYXkgdGFyZ2V0IGFueSBibG9jaykuIFRoZSB3b3JzdCBwYXJ0Cisg
ICAgICAgIGlzIHRoYXQgdGhlIGltcGxpY2l0IGNvbnRyb2wgZmxvdyBlZGdlcyBmcm9tIHRoZSBp
bmRpcmVjdCBqdW1wIHRvIHRoZSBlc2NhcGVkIGJsb2NrcyBjYW5ub3QKKyAgICAgICAgYmUgYnJv
a2VuLiBUaGlzIGludmFsaWRhdGVzIGEgcHJpbmNpcGxlIG9mIEIzIElSOiBhbnkgcGhhc2UgbWF5
IGJyZWFrIGFueSBjcml0aWNhbCBlZGdlIGZvcgorICAgICAgICBhbnkgcmVhc29uLiBPdXIgU1NB
IGNvbnZlcnNpb24gd291bGQgYnJlYWsgaWYgd2UgcmV2b2tlZCB0aGlzIGZlYXR1cmUuIEl0J3Mg
YWN0dWFsbHkgbXVjaAorICAgICAgICB3b3JzZSB0aGFuIHRoaXMgLSBiYXNpY2FsbHkgYW55IGxv
Z2ljIG92ZXIgY29udHJvbCBmbG93IHdvdWxkIGhhdmUgdG8gYmUgaGFja2VkIHRvIGRlYWwgd2l0
aAorICAgICAgICB0aGVzZSB1bmJyZWFrYWJsZSBlZGdlcy4gVGhpcyB3b3VsZCBtZWFuIGNoYW5n
aW5nIGFsbCBDRkcgdHJhbnNmb3JtYXRpb24gdXRpbGl0aWVzIGFuZAorICAgICAgICBwYXNzZXMu
IFdlIGhhdmUgYSBsb3Qgb2YgdGhvc2UgYW5kIHdlIHdhbnQgaXQgdG8gYmUgZWFzeSB0byB3cml0
ZSBuZXcgb25lcy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaXMgd2h5IHdlIHVzZSBzb21ldGhp
bmcgbmV3LiBQb2x5SnVtcCBtYWtlcyB0aGUgY29udHJvbCBmbG93IGVkZ2VzIGV4cGxpY2l0LiBU
aGUgY2xpZW50CisgICAgICAgIG11c3Qgc3VwcGx5IHRoZSBzdWNjZXNzb3JzIHdoZW4gaXQgY3Jl
YXRlcyB0aGUgUG9seUp1bXAuIFRoZSBjb21waWxlciBtYXkgcmV3aXJlIHRob3NlCisgICAgICAg
IHN1Y2Nlc3NvciBlZGdlcyB0aGUgc2FtZSB3YXkgdGhhdCBpdCB3b3VsZCByZXdpcmUgYW55IGNv
bnRyb2wgZmxvdyBlZGdlcy4gVGhpcyB3b3JrcyBiZWNhdXNlCisgICAgICAgIHdlIGRvIG5vdCBh
ZGQgYW55IG5vdGlvbiBvZiBlc2NhcGVkIGJhc2ljIGJsb2Nrcy4gSW5zdGVhZCBvZiBnZXR0aW5n
IHRoZSBwb2ludGVycyB0byBiYXNpYworICAgICAgICBibG9ja3MgYnkgZXNjYXBpbmcgdGhlbSBs
aWtlIHlvdSB3b3VsZCBpbiBMTFZNIElSLCB5b3UgY2FuIG9ubHkgZ2V0IHRoZSBwb2ludGVycyBv
ZiB0aGUKKyAgICAgICAgc3VjY2Vzc29ycyBvZiBQb2x5SnVtcCBieSByZWdpc3RlcmluZyBhIGNh
bGxiYWNrIHdpdGggUG9seUp1bXAuIFRoaXMgY2FsbGJhY2sgZG9lc24ndAorICAgICAgICBhY3R1
YWxseSBnaXZlIHlvdSB0aGUgYWRkcmVzc2VzIG9mIGJhc2ljIGJsb2Nrcy4gSXQganVzdCBnaXZl
cyB5b3UgdGhlIGFkZHJlc3NlcyB3aGVyZSB5b3UKKyAgICAgICAgbXVzdCBqdW1wIHRvIHRyYW5z
ZmVyIGNvbnRyb2wgZmxvdyBmcm9tIHRoYXQgUG9seUp1bXAgdG8gaXRzIHN1Y2Nlc3NvcnMuCisg
ICAgICAgIAorICAgICAgICBUaGlzIG1lYW5zIHRoYXQgUG9seUp1bXAgaXMgbm90IGNsb25lYWJs
ZS4gU28sIHRoaXMgcGF0Y2ggaW50cm9kdWNlcyBWYWx1ZTo6aXNDbG9uZWFibGUoKSBhbmQKKyAg
ICAgICAgdGVhY2hlcyBib3RoIG9mIG91ciBjb2RlIHNwZWNpYWxpemF0aW9uIG9wdGltaXphdGlv
bnMgdG8gYmFpbCBpZiB0aGUgY29kZSB0aGV5IHdhbnQgdG8KKyAgICAgICAgc3BlY2lhbGl6ZSBp
cyBub3QgY2xvbmVhYmxlLiBUaGlzIGlzIHRvdGFsbHkgYmVuaWduIG1vc3Qgb2YgdGhlIHRpbWUs
IHNpbmNlIHRob3NlCisgICAgICAgIG9wdGltaXphdGlvbnMgdXN1YWxseSBydW4gYmVmb3JlIFN3
aXRjaCBsb3dlcmluZy4gQ2xpZW50cyB0aGF0IHVzZSBQb2x5SnVtcCBkaXJlY3RseSBoYXZlZSB0
bworICAgICAgICBhcHByZWNpYXRlIHRoZSB0cmFkZS1vZmY6IFBvbHlKdW1wIG1heSBnYWluIHRo
ZW0gc29tZSBwZXJmb3JtYW5jZSBidXQgdGhleSBhcmUgb3B0aW5nIG91dCBvZgorICAgICAgICBv
cHRpbWl6YXRpb25zIHRoYXQgdXNlIGNsb25pbmcuIFRoZSBmYWN0IHRoYXQgZWFjaCBQb2x5SnVt
cCBoYXMgYSBjYWxsYmFjayB0aGF0IGp1c3QgdGVsbHMKKyAgICAgICAgeW91IHRoZSBqdW1wIGRl
c3RpbmF0aW9ucyBmb3IgaXRzIHN1Y2Nlc3NvciAqZWRnZXMqLCBub3Qgc3VjY2Vzc29yICpibG9j
a3MqLCBtZWFucyB0aGF0IGlmCisgICAgICAgIHlvdSBjcmVhdGUgdHdvIFBvbHlKdW1wcyBhbmQg
Z2l2ZSB0aGVtIHRoZSBzYW1lIHN1Y2Nlc3NvciBsaXN0LCB5b3UgYXJlIG5vdCBndWFyYW50ZWVk
IHRoYXQKKyAgICAgICAgdGhleSB3aWxsIGdldCB0aGUgc2FtZSBqdW1wIGRlc3RpbmF0aW9ucy4g
VGhpcyBodXJ0cyBpZiB5b3Ugd2FudCB0byB1c2UgUG9seUp1bXAgZm9yIHRocmVhZGVkCisgICAg
ICAgIGludGVycHJldGVycyBidXQgaXQncyBoYXJtbGVzcyBmb3Igc3dpdGNoIGxvd2VyaW5nLiBU
aGUgZ29hbCBvZiBQb2x5SnVtcCBpcyB0byBiZSBhd2Vzb21lIGZvcgorICAgICAgICBzd2l0Y2gg
bG93ZXJpbmcgd2hpbGUgbm90IGJyZWFraW5nIHRoZSByZXN0IG9mIHRoZSBjb21waWxlciwgc28g
dGhpcyBpcyBwcm9iYWJseSBmaW5lLgorICAgICAgICAKKyAgICAgICAgVGhpcyBpcyBhIH4zMCUg
c3BlZWQtdXAgb24gbWljcm9iZW5jaG1hcmtzIHRoYXQgaGF2ZSBiaWcgc3dpdGNoIHN0YXRlbWVu
dHMgKH42MCBjYXNlcykuIEl0J3MKKyAgICAgICAgbm90IGEgc3BlZWQtdXAgb24gbWFpbnN0cmVh
bSBiZW5jaG1hcmtzLgorICAgICAgICAKKyAgICAgICAgVGhlIEZUTCBkb2VzIG5vdCBjdXJyZW50
bHkgdXNlIFBvbHlKdW1wIGRpcmVjdGx5LCBidXQgd2Ugd2FudCB0aGlzIHRvIGJlIHBvc3NpYmxl
LiBJdCBhbHNvCisgICAgICAgIGRvZXNuJ3QgdXNlIEdldC9TZXQgZGlyZWN0bHkgZXZlbiB0aG91
Z2ggd2Ugd2FudCB0aGlzIHRvIGJlIHBvc3NpYmxlLiBJdCdzIGltcG9ydGFudCB0byB0ZXN0Cisg
ICAgICAgIHRoaXMgc2luY2Ugb3Bjb2RlcyB0aGF0IHJlc3VsdCBmcm9tIGxvd2VyaW5nIGRvbid0
IGFmZmVjdCBlYXJseSBwaGFzZXMsIHNvIHdlIGNvdWxkIGhhdmUKKyAgICAgICAgcmVncmVzc2lv
bnMgaW4gZWFybHkgcGhhc2VzIHJlbGF0ZWQgdG8gdGhlc2Ugb3Bjb2RlcyB0aGF0IHdvdWxkbid0
IGJlIGNhdWdodCBieSBhbnkgSlMgdGVzdC4KKyAgICAgICAgU28sIHRoaXMgYWRkcyBhIHZlcnkg
YmFzaWMgdGhyZWFkZWQgaW50ZXJwcmV0ZXIgdG8gdGVzdGIzIGZvciBhIEJyYWluZnVjay1zdHls
ZSBsYW5ndWFnZSwgYW5kCisgICAgICAgIHRlc3RzIGl0IGJ5IGhhdmluZyBpdCBydW4gYSBwcm9n
cmFtIHRoYXQgcHJpbnRzIHRoZSBudW1iZXJzIDEuLjEwMCBpbiBhIGxvb3AuIFVubGlrZSBhIHJl
YWwKKyAgICAgICAgdGhyZWFkZWQgaW50ZXJwcmV0ZXIsIGl0IHVzZXMgYSBjb21tb24gZGlzcGF0
Y2ggYmxvY2sgcmF0aGVyIHRoYW4gaGF2aW5nIGRpc3BhdGNoIGF0IHRoZQorICAgICAgICB0ZXJt
aW51cyBvZiBlYWNoIG9wY29kZS4gVGhhdCdzIG5lY2Vzc2FyeSBiZWNhdXNlIFBvbHlKdW1wIGlz
IG5vdCBjbG9uZWFibGUuIFRoZSBzdGF0ZSBvZiB0aGUKKyAgICAgICAgaW50ZXJwcmV0ZXIgaXMg
cmVwcmVzZW50ZWQgdXNpbmcgVmFyaWFibGVzIHRoYXQgd2UgR2V0IGFuZCBTZXQsIHNvIGl0IHRl
c3RzIEdldC9TZXQgYXMgd2VsbC4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAg
ICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmg6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyWDg2Q29tbW9uOjpqdW1wKToKKyAgICAgICAgKiBhc3NlbWJsZXIvWDg2QXNzZW1i
bGVyLmg6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxlcjo6am1wX20pOgorICAgICAgICAqIGIz
L0IzQmFzaWNCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjp1cGRhdGVQ
cmVkZWNlc3NvcnNBZnRlcik6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjppc0Nsb25l
YWJsZSk6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjpkdW1wKToKKyAgICAgICAgKiBi
My9CM0Jhc2ljQmxvY2suaDoKKyAgICAgICAgKEpTQzo6QjM6OkJhc2ljQmxvY2s6OmZyZXF1ZW5j
eSk6CisgICAgICAgICogYjMvQjNDb21tb24uaDoKKyAgICAgICAgKEpTQzo6QjM6OmlzNjRCaXQp
OgorICAgICAgICAqIGIzL0IzQ29udHJvbFZhbHVlLmg6CisgICAgICAgICogYjMvQjNEYXRhU2Vj
dGlvbi5jcHA6CisgICAgICAgIChKU0M6OkIzOjpEYXRhU2VjdGlvbjo6RGF0YVNlY3Rpb24pOgor
ICAgICAgICAqIGIzL0IzRHVwbGljYXRlVGFpbHMuY3BwOgorICAgICAgICAqIGIzL0IzTG93ZXJN
YWNyb3MuY3BwOgorICAgICAgICAqIGIzL0IzTG93ZXJUb0Fpci5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpBaXI6Okxvd2VyVG9BaXI6Omxvd2VyKToKKyAgICAgICAgKiBiMy9CM09wY29kZS5jcHA6
CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAqIGIzL0IzT3Bjb2RlLmg6
CisgICAgICAgICogYjMvQjNQb2x5SnVtcFZhbHVlLmNwcDogQWRkZWQuCisgICAgICAgIChKU0M6
OkIzOjpQb2x5SnVtcFZhbHVlOjp+UG9seUp1bXBWYWx1ZSk6CisgICAgICAgIChKU0M6OkIzOjpQ
b2x5SnVtcFZhbHVlOjphcHBlbmRTdWNjZXNzb3IpOgorICAgICAgICAoSlNDOjpCMzo6UG9seUp1
bXBWYWx1ZTo6c2V0Q2FsbGJhY2tUYXNrKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1wVmFs
dWU6OmlzQ2xvbmVhYmxlKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1wVmFsdWU6OmR1bXBN
ZXRhKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1wVmFsdWU6OmNsb25lSW1wbCk6CisgICAg
ICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjpQb2x5SnVtcFZhbHVlKToKKyAgICAgICAgKiBi
My9CM1BvbHlKdW1wVmFsdWUuaDogQWRkZWQuCisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZh
bHVlOjphY2NlcHRzKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1wVmFsdWU6OnNldENhbGxi
YWNrKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1wVmFsdWU6OmNhbGxiYWNrVGFzayk6Cisg
ICAgICAgICogYjMvQjNQcm9jZWR1cmUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6UHJvY2VkdXJl
OjpjbG9uZSk6CisgICAgICAgICogYjMvQjNQcm9jZWR1cmUuaDoKKyAgICAgICAgKEpTQzo6QjM6
OlByb2NlZHVyZTo6bGFzdFBoYXNlTmFtZSk6CisgICAgICAgIChKU0M6OkIzOjpQcm9jZWR1cmU6
OmJ5cHJvZHVjdHMpOgorICAgICAgICAqIGIzL0IzUmVkdWNlU3RyZW5ndGguY3BwOgorICAgICAg
ICAqIGIzL0IzVmFsaWRhdGUuY3BwOgorICAgICAgICAqIGIzL0IzVmFsdWUuY3BwOgorICAgICAg
ICAoSlNDOjpCMzo6VmFsdWU6OmVmZmVjdHMpOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6Omlz
Q2xvbmVhYmxlKToKKyAgICAgICAgKEpTQzo6QjM6OlZhbHVlOjprZXkpOgorICAgICAgICAqIGIz
L0IzVmFsdWUuaDoKKyAgICAgICAgKiBiMy9haXIvQWlyQ29kZS5oOgorICAgICAgICAqIGIzL2Fp
ci9BaXJHZW5lcmF0ZS5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OmdlbmVyYXRlKToKKyAg
ICAgICAgKiBiMy9haXIvQWlySW5zdC5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okluc3Q6
Omhhc0FyZ0VmZmVjdHMpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpJbnN0Ojppc0Nsb25lYWJs
ZSk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okluc3Q6OmR1bXApOgorICAgICAgICAqIGIzL2Fp
ci9BaXJJbnN0Lmg6CisgICAgICAgICogYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzOgorICAgICAg
ICAqIGIzL3Rlc3RiMy5jcHA6CisgICAgICAgIChKU0M6OkIzOjpzaG91bGRCZVZlcmJvc2UpOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdFN3aXRjaENoaWxsRGl2KToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RMYXRlUmVnaXN0ZXIpOgorICAgICAgICAoSlNDOjpCMzo6dGhyZWFkZWRJbnRlcnByZXRl
clByaW50KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RUaHJlYWRlZEludGVycHJldGVyKToKKyAg
ICAgICAgKEpTQzo6QjM6Onplcm8pOgorICAgICAgICAoSlNDOjpCMzo6cnVuKToKKwogMjAxNi0w
NS0yOCAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5jb20+CiAKICAgICAgICAgSlNHbG9i
YWxMZXhpY2FsRW52aXJvbm1lbnQgbGVha3MgU2VnbWVudGVkVmVjdG9yIGR1ZSB0byBsYWNrIG9m
IGRlc3RydWN0b3IuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZp
c2lvbiAyMDE0OTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTE0Myw2ICsxNDMsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNF
UwogICAgIGIzL0IzUGF0Y2hwb2ludFZhbHVlLmNwcAogICAgIGIzL0IzUGhhc2VTY29wZS5jcHAK
ICAgICBiMy9CM1BoaUNoaWxkcmVuLmNwcAorICAgIGIzL0IzUG9seUp1bXAuY3BwCiAgICAgYjMv
QjNQcm9jZWR1cmUuY3BwCiAgICAgYjMvQjNQdXJlQ1NFLmNwcAogICAgIGIzL0IzUmVkdWNlRG91
YmxlVG9GbG9hdC5jcHAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lv
biAyMDE0OTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTE3OSwxNiArMTE3OSwxNiBA
QAogCQk1MzUyOUE0QzFDNDU3Qjc1MDAwQjQ5QzYgLyogQVBJVXRpbHMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzNTI5QTRCMUM0NTdCNzUwMDBCNDlD
NiAvKiBBUElVdGlscy5oICovOyB9OwogCQk1MzcwQjRGNTFCRjI2MjAyMDA1QzQwRkMgLyogQWRh
cHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50QmFzZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzcwQjRGMzFCRjI1RUEyMDA1QzQw
RkMgLyogQWRhcHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50QmFzZS5jcHAgKi87
IH07CiAJCTUzNzBCNEY2MUJGMjYyMDUwMDVDNDBGQyAvKiBBZGFwdGl2ZUluZmVycmVkUHJvcGVy
dHlWYWx1ZVdhdGNocG9pbnRCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MzcwQjRGNDFCRjI1RUEyMDA1QzQwRkMgLyogQWRhcHRpdmVJbmZlcnJl
ZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50QmFzZS5oICovOyB9OworCQk1MzkxN0U3QjFCNzkwNkZB
MDAwRUJEMzMgLyogSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGVGdW5jdGlvbnMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzOTE3RTdBMUI3
OTA2RTQwMDBFQkQzMyAvKiBKU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZUZ1bmN0aW9u
cy5oICovOyB9OworCQk1M0Y2QkY2RDFDM0YwNjBBMDBGNDFFNUQgLyogSW50ZXJuYWxGdW5jdGlv
bkFsbG9jYXRpb25Qcm9maWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1M0Y2QkY2QzFDM0YwNjBBMDBGNDFFNUQgLyogSW50ZXJuYWxGdW5jdGlvbkFs
bG9jYXRpb25Qcm9maWxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJNTNGQTJBRTExQ0YzN0YzRjAwMjI3MTFEIC8qIExMSW50UHJvdG90eXBlTG9h
ZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTNGQTJBRTAxQ0YzN0YzRjAwMjI3MTFEIC8qIExMSW50UHJv
dG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTUzRkEyQUUzMUNGMzgwMzkwMDIyNzEx
RCAvKiBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTNGQTJBRTIxQ0Yz
ODAzOTAwMjI3MTFEIC8qIExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hw
b2ludC5jcHAgKi87IH07CiAJCTVCRDNBMDY3MUNBRTMyNTcwMEY4NEJBMyAvKiBBc3luY0Z1bmN0
aW9uQ29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNUJEM0EwNjExQ0FFMzI1NzAwRjg0QkEzIC8qIEFzeW5jRnVuY3Rpb25Db25zdHJ1
Y3Rvci5jcHAgKi87IH07CiAJCTVCRDNBMDY4MUNBRTMyNTcwMEY4NEJBMyAvKiBBc3luY0Z1bmN0
aW9uQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDVCRDNBMDYyMUNBRTMyNTcwMEY4NEJBMyAvKiBBc3luY0Z1bmN0aW9uQ29uc3RydWN0
b3IuaCAqLzsgfTsKIAkJNUJEM0EwNjkxQ0FFMzI1NzAwRjg0QkEzIC8qIEFzeW5jRnVuY3Rpb25Q
cm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNUJEM0EwNjMxQ0FFMzI1NzAwRjg0QkEzIC8qIEFzeW5jRnVuY3Rpb25Qcm90b3R5cGUuY3Bw
ICovOyB9OwogCQk1QkQzQTA2QTFDQUUzMjU3MDBGODRCQTMgLyogQXN5bmNGdW5jdGlvblByb3Rv
dHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUJE
M0EwNjQxQ0FFMzI1NzAwRjg0QkEzIC8qIEFzeW5jRnVuY3Rpb25Qcm90b3R5cGUuaCAqLzsgfTsK
IAkJNUJEM0EwNkIxQ0FFMzI1NzAwRjg0QkEzIC8qIEpTQXN5bmNGdW5jdGlvbi5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QkQzQTA2NTFDQUUzMjU3
MDBGODRCQTMgLyogSlNBc3luY0Z1bmN0aW9uLmNwcCAqLzsgfTsKIAkJNUJEM0EwNkUxQ0FFMzVC
RjAwRjg0QkEzIC8qIEpTQXN5bmNGdW5jdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNUJEM0EwNkQxQ0FFMzVCRjAwRjg0QkEzIC8qIEpTQXN5bmNG
dW5jdGlvbi5oICovOyB9OwotCQk1MzkxN0U3QjFCNzkwNkZBMDAwRUJEMzMgLyogSlNHZW5lcmlj
VHlwZWRBcnJheVZpZXdQcm90b3R5cGVGdW5jdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzOTE3RTdBMUI3OTA2RTQwMDBFQkQzMyAvKiBKU0dl
bmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZUZ1bmN0aW9ucy5oICovOyB9OwotCQk1M0Y2QkY2
RDFDM0YwNjBBMDBGNDFFNUQgLyogSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1M0Y2QkY2QzFD
M0YwNjBBMDBGNDFFNUQgLyogSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJNTNGQTJBRTEx
Q0YzN0YzRjAwMjI3MTFEIC8qIExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0
Y2hwb2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTNGQTJBRTAxQ0YzN0YzRjAwMjI3MTFEIC8qIExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3Ry
dWN0dXJlV2F0Y2hwb2ludC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07Ci0JCTUzRkEyQUUzMUNGMzgwMzkwMDIyNzExRCAvKiBMTEludFByb3RvdHlwZUxv
YWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTNGQTJBRTIxQ0YzODAzOTAwMjI3MTFEIC8qIExMSW50
UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5jcHAgKi87IH07CiAJCTVE
NUQ4QUQxMEUwRDBFQkUwMEY5QzY5MiAvKiBsaWJlZGl0LmR5bGliIGluIEZyYW1ld29ya3MgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUQ1RDhBRDAwRTBEMEVCRTAwRjlDNjky
IC8qIGxpYmVkaXQuZHlsaWIgKi87IH07CiAJCTVEQkIxNTFCMTMxRDBCMzEwMDU2QUQzNiAvKiB0
ZXN0YXBpLmpzIGluIENvcHkgU3VwcG9ydCBTY3JpcHQgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMTREODU3NzQwQTQ2OTZDODAwMzIxNDZDIC8qIHRlc3RhcGkuanMgKi87IH07
CiAJCTVEQkIxNTI1MTMxRDBCRDcwMDU2QUQzNiAvKiBtaW5pZG9tLmpzIGluIENvcHkgU3VwcG9y
dCBTY3JpcHQgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQxMjExMEQwQTQ4
Nzg4NzAwNDgwMjU1IC8qIG1pbmlkb20uanMgKi87IH07CkBAIC0xOTg5LDYgKzE5ODksOCBAQAog
CQlEQzE3RTgxQTFDOUM5MUU5MDA4QTZBQjMgLyogQ0NhbGxIZWxwZXJzLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDMTdFODE2MUM5QzgwMkIwMDhB
NkFCMyAvKiBDQ2FsbEhlbHBlcnMuY3BwICovOyB9OwogCQlEQzIxNDMwNzFDQTMyRTU1MDAwQTg4
NjkgLyogSUNTdGF0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gREMyMTQzMDYxQ0EzMkU1MjAwMEE4ODY5IC8qIElDU3RhdHMuaCAqLzsgfTsKIAkJREMy
MTQzMDgxQ0EzMkU1ODAwMEE4ODY5IC8qIElDU3RhdHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREMyMTQzMDUxQ0EzMkU1MjAwMEE4ODY5IC8qIElD
U3RhdHMuY3BwICovOyB9OworCQlEQzQ1NEI4NDFDRkI1QkQ3MDA0QzE4QUYgLyogQjNQb2x5SnVt
cFZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IERDNjlBQTYwMUNGNzVERTEwMEM2MjcyRiAvKiBCM1BvbHlKdW1wVmFsdWUuY3BwICovOyB9Owor
CQlEQzQ1NEI4NTFDRkI1QkQ5MDA0QzE4QUYgLyogQjNQb2x5SnVtcFZhbHVlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzY5QUE2MTFDRjc1REUxMDBD
NjI3MkYgLyogQjNQb2x5SnVtcFZhbHVlLmggKi87IH07CiAJCURDNjA1QjVEMUNFMjZFQTAwMDU5
MzcxOCAvKiBQcm9maWxlckV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IERDNjA1QjU5MUNFMjZFOTgwMDU5MzcxOCAvKiBQcm9maWxlckV2ZW50
LmNwcCAqLzsgfTsKIAkJREM2MDVCNUUxQ0UyNkVBMjAwNTkzNzE4IC8qIFByb2ZpbGVyRXZlbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDNjA1QjVB
MUNFMjZFOTgwMDU5MzcxOCAvKiBQcm9maWxlckV2ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJREM2MDVCNUYxQ0UyNkVBNTAwNTkzNzE4IC8q
IFByb2ZpbGVyVUlELmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IERDNjA1QjVCMUNFMjZFOTgwMDU5MzcxOCAvKiBQcm9maWxlclVJRC5jcHAgKi87IH07
CkBAIC00MjE0LDYgKzQyMTYsOCBAQAogCQlEQzYwNUI1QTFDRTI2RTk4MDA1OTM3MTggLyogUHJv
ZmlsZXJFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBQcm9maWxlckV2
ZW50Lmg7IHBhdGggPSBwcm9maWxlci9Qcm9maWxlckV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCURDNjA1QjVCMUNFMjZFOTgwMDU5MzcxOCAvKiBQcm9maWxlclVJRC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQcm9maWxlclVJRC5jcHA7IHBh
dGggPSBwcm9maWxlci9Qcm9maWxlclVJRC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCURDNjA1QjVDMUNFMjZFOTgwMDU5MzcxOCAvKiBQcm9maWxlclVJRC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBQcm9maWxlclVJRC5oOyBwYXRoID0gcHJvZmlsZXIvUHJv
ZmlsZXJVSUQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREM2OUFBNjAxQ0Y3NURF
MTAwQzYyNzJGIC8qIEIzUG9seUp1bXBWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBCM1BvbHlKdW1wVmFsdWUuY3BwOyBwYXRoID0gYjMvQjNQb2x5SnVtcFZh
bHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREM2OUFBNjExQ0Y3NURFMTAw
QzYyNzJGIC8qIEIzUG9seUp1bXBWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBCM1BvbHlKdW1wVmFsdWUuaDsgcGF0aCA9IGIzL0IzUG9seUp1bXBWYWx1ZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzY5QUE2NTFDRjdBMUVGMDBDNjI3MkYgLyogTWF0
Y2hSZXN1bHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWF0Y2hS
ZXN1bHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzc5OTc4MTFDREU5RjlF
MDA0RDRBMDkgLyogVGFnUmVnaXN0ZXJzTW9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBUYWdSZWdpc3RlcnNNb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJREM3OTk3ODIxQ0RFOUY5RTAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGFnUmVnaXN0ZXJzTW9kZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDc2MSw2ICs0NzY1LDggQEAKIAkJCQkwRkVDODRF
MDFCREFDREFDMDA4MEZGNzQgLyogQjNQaGFzZVNjb3BlLmggKi8sCiAJCQkJMEYzNzMwOEExQzBC
RDI5MTAwMDUyQkZBIC8qIEIzUGhpQ2hpbGRyZW4uY3BwICovLAogCQkJCTBGMzczMDhCMUMwQkQy
OTEwMDA1MkJGQSAvKiBCM1BoaUNoaWxkcmVuLmggKi8sCisJCQkJREM2OUFBNjAxQ0Y3NURFMTAw
QzYyNzJGIC8qIEIzUG9seUp1bXBWYWx1ZS5jcHAgKi8sCisJCQkJREM2OUFBNjExQ0Y3NURFMTAw
QzYyNzJGIC8qIEIzUG9seUp1bXBWYWx1ZS5oICovLAogCQkJCTBGRUM4NEUxMUJEQUNEQUMwMDgw
RkY3NCAvKiBCM1Byb2NlZHVyZS5jcHAgKi8sCiAJCQkJMEZFQzg0RTIxQkRBQ0RBQzAwODBGRjc0
IC8qIEIzUHJvY2VkdXJlLmggKi8sCiAJCQkJMEZFQzg0RTMxQkRBQ0RBQzAwODBGRjc0IC8qIEIz
UHJvY2VkdXJlSW5saW5lcy5oICovLApAQCAtNzIyNSw2ICs3MjMxLDcgQEAKIAkJCQkwRjA1QzNC
NDE2ODNDRjkyMDBCQUY0NUIgLyogREZHQXJyYXlpZnlTbG93UGF0aEdlbmVyYXRvci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEY2Mzk0ODUxNUU0ODExQjAwNkE1OTdDIC8qIERGR0FycmF5TW9kZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTdEOUEyOTUxN0EwQkM3NDAwRUUyNjE4IC8qIERGR0F0VGFp
bEFic3RyYWN0U3RhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCURDNDU0Qjg1MUNGQjVCRDkwMDRD
MThBRiAvKiBCM1BvbHlKdW1wVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNjY2RUM3MTgz
NTY3MkIwMEQwMTdGMSAvKiBERkdBdmFpbGFiaWxpdHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
MkI5Q0UzMTlEMEJBN0QwMEIxRDFCNSAvKiBERkdBdmFpbGFiaWxpdHlNYXAuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGNzE0Q0E1MTZFQTkyRjIwMEYzRUJFQiAvKiBERkdCYWNrd2FyZHNQcm9wYWdh
dGlvblBoYXNlLmggaW4gSGVhZGVycyAqLywKQEAgLTkwMDcsNiArOTAxNCw3IEBACiAJCQkJMkE4
MzYzODkxOEQ3RDBGRTAwMDBFQkNDIC8qIEZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2suY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMTQ3RjM5Q0IxMDdFQzM3NjAwNDI3QTQ4IC8qIEZ1bmN0aW9uQ29uc3Ry
dWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGMEYxOUYxNkI3MkExNzAwNURGOTVCIC8q
IEZ1bmN0aW9uRXhlY3V0YWJsZUR1bXAuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJREM0NTRCODQx
Q0ZCNUJENzAwNEMxOEFGIC8qIEIzUG9seUp1bXBWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1MkIzMTBGRDE5NzRBRTg3MDA4MDg1N0MgLyogRnVuY3Rpb25IYXNFeGVjdXRlZENhY2hlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUZFNEJGRjJCMUFENDc2RTcwMDA4OEY4NyAvKiBGdW5jdGlv
bk92ZXJyaWRlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDdGMzlDQzEwN0VDMzc2MDA0MjdB
NDggLyogRnVuY3Rpb25Qcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4
NkNvbW1vbi5oCShyZXZpc2lvbiAyMDE0OTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTIyNjIs
NiArMjI2MiwxMiBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLmptcF9tKGFkZHJlc3Mu
b2Zmc2V0LCBhZGRyZXNzLmJhc2UpOwogICAgIH0KIAorICAgIC8vIEFkZHJlc3MgaXMgYSBtZW1v
cnkgbG9jYXRpb24gY29udGFpbmluZyB0aGUgYWRkcmVzcyB0byBqdW1wIHRvCisgICAgdm9pZCBq
dW1wKEJhc2VJbmRleCBhZGRyZXNzKQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIuam1wX20o
YWRkcmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFzZSwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2Fs
ZSk7CisgICAgfQorCiAKICAgICAvLyBBcml0aG1ldGljIGNvbnRyb2wgZmxvdyBvcGVyYXRpb25z
OgogICAgIC8vCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2Vt
Ymxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2
QXNzZW1ibGVyLmgJKHJldmlzaW9uIDIwMTQ5NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTE5ODMsNiArMTk4Mywx
MSBAQCBwdWJsaWM6CiAgICAgICAgIG1fZm9ybWF0dGVyLm9uZUJ5dGVPcChPUF9HUk9VUDVfRXYs
IEdST1VQNV9PUF9KTVBOLCBiYXNlLCBvZmZzZXQpOwogICAgIH0KICAgICAKKyAgICB2b2lkIGpt
cF9tKGludCBvZmZzZXQsIFJlZ2lzdGVySUQgYmFzZSwgUmVnaXN0ZXJJRCBpbmRleCwgaW50IHNj
YWxlKQorICAgIHsKKyAgICAgICAgbV9mb3JtYXR0ZXIub25lQnl0ZU9wKE9QX0dST1VQNV9Fdiwg
R1JPVVA1X09QX0pNUE4sIGJhc2UsIGluZGV4LCBzY2FsZSwgb2Zmc2V0KTsKKyAgICB9CisgICAg
CiAjaWYgIUNQVShYODZfNjQpCiAgICAgdm9pZCBqbXBfbShjb25zdCB2b2lkKiBhZGRyZXNzKQog
ICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2suY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2suY3BwCShy
ZXZpc2lvbiAyMDE0OTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2Nr
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA5LDYgKzEwOSwxNSBAQCB2b2lkIEJhc2ljQmxvY2s6
OnVwZGF0ZVByZWRlY2Vzc29yc0FmdGVyCiAgICAgQjM6OnVwZGF0ZVByZWRlY2Vzc29yc0FmdGVy
KHRoaXMpOwogfQogCitib29sIEJhc2ljQmxvY2s6OmlzQ2xvbmVhYmxlKCkgY29uc3QKK3sKKyAg
ICBmb3IgKFZhbHVlKiB2YWx1ZSA6ICp0aGlzKSB7CisgICAgICAgIGlmICghdmFsdWUtPmlzQ2xv
bmVhYmxlKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0
cnVlOworfQorCiB2b2lkIEJhc2ljQmxvY2s6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QK
IHsKICAgICBvdXQucHJpbnQoZHVtcFByZWZpeCwgbV9pbmRleCk7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5oCShyZXZpc2lvbiAyMDE0OTQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTExNSw2
ICsxMTUsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVQcmVkZWNlc3NvcnNBZnRlcigpOwog
CiAgICAgZG91YmxlIGZyZXF1ZW5jeSgpIGNvbnN0IHsgcmV0dXJuIG1fZnJlcXVlbmN5OyB9Cisg
ICAgCisgICAgYm9vbCBpc0Nsb25lYWJsZSgpIGNvbnN0OwogCiAgICAgdm9pZCBkdW1wKFByaW50
U3RyZWFtJikgY29uc3Q7CiAgICAgdm9pZCBkZWVwRHVtcChjb25zdCBQcm9jZWR1cmUmLCBQcmlu
dFN0cmVhbSYpIGNvbnN0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29tbW9u
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29tbW9uLmgJKHJl
dmlzaW9uIDIwMTQ5NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbW1vbi5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTI4LDYgKzI4LDggQEAKIAogI2lmIEVOQUJMRShCM19KSVQpCiAKKyNpbmNs
dWRlICJKU0V4cG9ydE1hY3Jvcy5oIgorCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsK
IAogaW5saW5lIGJvb2wgaXM2NEJpdCgpIHsgcmV0dXJuIHNpemVvZih2b2lkKikgPT0gODsgfQpA
QCAtMzgsNyArNDAsNyBAQCBlbnVtIEIzQ29tcGxpdGF0aW9uTW9kZSB7CiAgICAgQWlyTW9kZQog
fTsKIAotYm9vbCBzaG91bGREdW1wSVIoQjNDb21wbGl0YXRpb25Nb2RlKTsKK0pTX0VYUE9SVF9Q
UklWQVRFIGJvb2wgc2hvdWxkRHVtcElSKEIzQ29tcGxpdGF0aW9uTW9kZSk7CiBib29sIHNob3Vs
ZER1bXBJUkF0RWFjaFBoYXNlKEIzQ29tcGxpdGF0aW9uTW9kZSk7CiBib29sIHNob3VsZFZhbGlk
YXRlSVIoKTsKIGJvb2wgc2hvdWxkVmFsaWRhdGVJUkF0RWFjaFBoYXNlKCk7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb250cm9sVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb250cm9sVmFsdWUuaAkocmV2aXNpb24gMjAxNDk0KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29udHJvbFZhbHVlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTQ2LDkgKzQ2LDEwIEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBSZXR1cm46CiAgICAg
ICAgIGNhc2UgT29wczoKICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBjYXNlIFN3
aXRjaDogCi0gICAgICAgICAgICAvLyBUaGlzIGlzIGhlcmUgYmVjYXVzZSBTd2l0Y2hWYWx1ZSBp
cyBhIHN1YmNsYXNzIG9mIENvbnRyb2xWYWx1ZSwgc28gd2Ugd2FudAotICAgICAgICAgICAgLy8g
c3dpdGNoVmFsdWUtPmFzPENvbnRyb2xWYWx1ZT4oKSB0byByZXR1cm4gbm9uLW51bGwuCisgICAg
ICAgIGNhc2UgU3dpdGNoOgorICAgICAgICBjYXNlIFBvbHlKdW1wOgorICAgICAgICAgICAgLy8g
VGhpcyBpcyBoZXJlIGJlY2F1c2UgU3dpdGNoVmFsdWUgYW5kIFBvbHlKdW1wVmFsdWUgYXJlIHN1
YmNsYXNzZXMgb2YgQ29udHJvbFZhbHVlLAorICAgICAgICAgICAgLy8gc28gd2Ugd2FudCB0aGlu
Z3MgbGlrZSBzd2l0Y2hWYWx1ZS0+YXM8Q29udHJvbFZhbHVlPigpIHRvIHJldHVybiBub24tbnVs
bC4KICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwpAQCAtNzcsNyArNzgsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAg
Ym9vbCByZXBsYWNlU3VjY2Vzc29yKEJhc2ljQmxvY2sqIGZyb20sIEJhc2ljQmxvY2sqIHRvKTsK
LQorICAgIAogICAgIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgdGFrZW4oKSBjb25zdAogICAgIHsK
ICAgICAgICAgQVNTRVJUKG9wY29kZSgpID09IEp1bXAgfHwgb3Bjb2RlKCkgPT0gQnJhbmNoKTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0RhdGFTZWN0aW9uLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEYXRhU2VjdGlvbi5jcHAJKHJldmlz
aW9uIDIwMTQ5NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0RhdGFTZWN0aW9uLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1
LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0zMSw3ICszMSw3IEBACiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNl
IEIzIHsKIAogRGF0YVNlY3Rpb246OkRhdGFTZWN0aW9uKHNpemVfdCBzaXplKQotICAgIDogbV9k
YXRhKGZhc3RNYWxsb2Moc2l6ZSkpCisgICAgOiBtX2RhdGEoZmFzdFplcm9lZE1hbGxvYyhzaXpl
KSkKICAgICAsIG1fc2l6ZShzaXplKQogewogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzRHVwbGljYXRlVGFpbHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM0R1cGxpY2F0ZVRhaWxzLmNwcAkocmV2aXNpb24gMjAxNDk0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzRHVwbGljYXRlVGFpbHMuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC03Miw5ICs3MiwxMSBAQCBwdWJsaWM6CiAgICAgICAgIEluZGV4U2V0PEJhc2ljQmxvY2s+IGNh
bmRpZGF0ZXM7CiAKICAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBibG9jayA6IG1fcHJvYykgewot
ICAgICAgICAgICAgaWYgKGJsb2NrLT5zaXplKCkgPiBtX21heFNpemUgfHwgYmxvY2stPm51bVN1
Y2Nlc3NvcnMoKSA+IG1fbWF4U3VjY2Vzc29ycykKKyAgICAgICAgICAgIGlmIChibG9jay0+c2l6
ZSgpID4gbV9tYXhTaXplCisgICAgICAgICAgICAgICAgfHwgYmxvY2stPm51bVN1Y2Nlc3NvcnMo
KSA+IG1fbWF4U3VjY2Vzc29ycworICAgICAgICAgICAgICAgIHx8ICFibG9jay0+aXNDbG9uZWFi
bGUoKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKLQorICAgICAgICAgICAgCiAgICAgICAg
ICAgICBjYW5kaWRhdGVzLmFkZChibG9jayk7CiAgICAgICAgIH0KIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJNYWNyb3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyTWFjcm9zLmNwcAkocmV2aXNpb24gMjAxNDk0KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJNYWNyb3MuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTM0LDcgKzM0LDkgQEAKICNpbmNsdWRlICJCM0NvbnN0UHRyVmFsdWUuaCIKICNpbmNsdWRlICJC
M0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzSW5zZXJ0aW9uU2V0SW5saW5lcy5oIgorI2lu
Y2x1ZGUgIkIzTWVtb3J5VmFsdWUuaCIKICNpbmNsdWRlICJCM1BoYXNlU2NvcGUuaCIKKyNpbmNs
dWRlICJCM1BvbHlKdW1wVmFsdWUuaCIKICNpbmNsdWRlICJCM1Byb2NlZHVyZUlubGluZXMuaCIK
ICNpbmNsdWRlICJCM1N3aXRjaFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNVcHNpbG9uVmFsdWUuaCIK
QEAgLTI3NSw4ICsyNzcsOTUgQEAgcHJpdmF0ZToKICAgICAgICAgY29uc3QgVmVjdG9yPFN3aXRj
aENhc2U+JiBjYXNlcywgdW5zaWduZWQgc3RhcnQsIGJvb2wgaGFyZFN0YXJ0LCB1bnNpZ25lZCBl
bmQsCiAgICAgICAgIEJhc2ljQmxvY2sqIGJlZm9yZSkKICAgICB7Ci0gICAgICAgIC8vIEZJWE1F
OiBBZGQgdGFibGUtYmFzZWQgc3dpdGNoIGxvd2VyaW5nLgotICAgICAgICAvLyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxMTQxCisgICAgICAgIFZhbHVlKiBjaGls
ZCA9IG1fdmFsdWUtPmNoaWxkKDApOworICAgICAgICBUeXBlIHR5cGUgPSBjaGlsZC0+dHlwZSgp
OworICAgICAgICBGcmVxdWVudGVkQmxvY2sgZmFsbFRocm91Z2ggPSBtX3ZhbHVlLT5hczxTd2l0
Y2hWYWx1ZT4oKS0+ZmFsbFRocm91Z2goKTsKKyAgICAgICAgCisgICAgICAgIC8vIEl0J3MgYSBn
b29kIGlkZWEgdG8gdXNlIGEgdGFibGUtYmFzZWQgc3dpdGNoIGluIHNvbWUgY2FzZXM6IHRoZSBu
dW1iZXIgb2YgY2FzZXMgaGFzIHRvIGJlCisgICAgICAgIC8vIGxhcmdlIGVub3VnaCBhbmQgdGhl
eSBoYXZlIHRvIGJlIGRlbnNlIGVub3VnaC4gVGhpcyBjb3VsZCBwcm9iYWJseSBiZSBpbXByb3Zl
ZCBhIGxvdC4gRm9yCisgICAgICAgIC8vIGV4YW1wbGUsIHdlIGNvdWxkIHN0aWxsIHVzZSBhIGp1
bXAgdGFibGUgaW4gY2FzZXMgd2hlcmUgdGhlIGlucHV0cyBhcmUgc3BhcnNlIHNvIGxvbmcgYXMg
d2UKKyAgICAgICAgLy8gc2hpZnQgb2ZmIHRoZSB1bmludGVyZXN0aW5nIGJpdHMuIE9uIHRoZSBv
dGhlciBoYW5kLCBpdCdzIG5vdCBjbGVhciB0aGF0IHRoaXMgd291bGQKKyAgICAgICAgLy8gYWN0
dWFsbHkgYmUgYW55IGJldHRlciB0aGFuIHdoYXQgd2UgaGF2ZSBkb25lIGhlcmUgYW5kIGl0J3Mg
bm90IGNsZWFyIHRoYXQgaXQgd291bGQgYmUKKyAgICAgICAgLy8gYmV0dGVyIHRoYW4gYSBiaW5h
cnkgc3dpdGNoLgorICAgICAgICBjb25zdCB1bnNpZ25lZCBtaW5DYXNlc0ZvclRhYmxlID0gNzsK
KyAgICAgICAgY29uc3QgdW5zaWduZWQgZGVuc2l0eUxpbWl0ID0gNDsKKyAgICAgICAgaWYgKGVu
ZCAtIHN0YXJ0ID49IG1pbkNhc2VzRm9yVGFibGUpIHsKKyAgICAgICAgICAgIGludDY0X3QgZmly
c3RWYWx1ZSA9IGNhc2VzW3N0YXJ0XS5jYXNlVmFsdWUoKTsKKyAgICAgICAgICAgIGludDY0X3Qg
bGFzdFZhbHVlID0gY2FzZXNbZW5kIC0gMV0uY2FzZVZhbHVlKCk7CisgICAgICAgICAgICBpZiAo
KGxhc3RWYWx1ZSAtIGZpcnN0VmFsdWUgKyAxKSAvIGNhc2VzLnNpemUoKSA8IGRlbnNpdHlMaW1p
dCkgeworICAgICAgICAgICAgICAgIEJhc2ljQmxvY2sqIHN3aXRjaEJsb2NrID0gbV9ibG9ja0lu
c2VydGlvblNldC5pbnNlcnRBZnRlcihtX2Jsb2NrKTsKKyAgICAgICAgICAgICAgICBWYWx1ZSog
aW5kZXggPSBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICAgICAgICAgIG1f
cHJvYywgU3ViLCBtX29yaWdpbiwgY2hpbGQsCisgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+
YXBwZW5kSW50Q29uc3RhbnQobV9wcm9jLCBtX29yaWdpbiwgdHlwZSwgZmlyc3RWYWx1ZSkpOwor
ICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAg
ICAgICAgICAgICAgIG1fcHJvYywgQnJhbmNoLCBtX29yaWdpbiwKKyAgICAgICAgICAgICAgICAg
ICAgYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgICAgICAgICAgICAgbV9w
cm9jLCBBYm92ZSwgbV9vcmlnaW4sIGluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgYmVm
b3JlLT5hcHBlbmRJbnRDb25zdGFudChtX3Byb2MsIG1fb3JpZ2luLCB0eXBlLCBsYXN0VmFsdWUg
LSBmaXJzdFZhbHVlKSksCisgICAgICAgICAgICAgICAgICAgIGZhbGxUaHJvdWdoLCBGcmVxdWVu
dGVkQmxvY2soc3dpdGNoQmxvY2spKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAg
ICBzaXplX3QgdGFibGVTaXplID0gbGFzdFZhbHVlIC0gZmlyc3RWYWx1ZSArIDE7CisgICAgICAg
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKiBqdW1wVGFibGUgPSBiaXR3aXNlX2Nhc3Q8
TWFjcm9Bc3NlbWJsZXJDb2RlUHRyKj4oCisgICAgICAgICAgICAgICAgICAgIG1fcHJvYy5hZGRE
YXRhU2VjdGlvbihzaXplb2YoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKSAqIHRhYmxlU2l6ZSkpOwor
ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFZhbHVlKiBiYXNlID0gc3dpdGNoQmxv
Y2stPmFwcGVuZEludENvbnN0YW50KAorICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIG1fb3Jp
Z2luLCBwb2ludGVyVHlwZSgpLCBiaXR3aXNlX2Nhc3Q8aW50cHRyX3Q+KGp1bXBUYWJsZSkpOwor
ICAgICAgICAgICAgICAgIGlmIChpbmRleC0+dHlwZSgpICE9IGJhc2UtPnR5cGUoKSkgeworICAg
ICAgICAgICAgICAgICAgICBpZiAoaW5kZXgtPnR5cGUoKSA9PSBJbnQzMikKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGluZGV4ID0gc3dpdGNoQmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9j
LCBaRXh0MzIsIG1fb3JpZ2luLCBpbmRleCk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gc3dpdGNoQmxvY2stPmFwcGVuZE5ldzxWYWx1
ZT4obV9wcm9jLCBUcnVuYywgbV9vcmlnaW4sIGluZGV4KTsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgaW5kZXggPSBzd2l0Y2hCbG9jay0+YXBwZW5kTmV3PFZhbHVlPigKKyAg
ICAgICAgICAgICAgICAgICAgbV9wcm9jLCBNdWwsIG1fb3JpZ2luLCBpbmRleCwKKyAgICAgICAg
ICAgICAgICAgICAgc3dpdGNoQmxvY2stPmFwcGVuZEludENvbnN0YW50KAorICAgICAgICAgICAg
ICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwgcG9pbnRlclR5cGUoKSwgc2l6ZW9mKE1hY3Jv
QXNzZW1ibGVyQ29kZVB0cikpKTsKKyAgICAgICAgICAgICAgICBWYWx1ZSogcHRyID0gc3dpdGNo
QmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBBZGQsIG1fb3JpZ2luLCBiYXNlLCBpbmRl
eCk7CisgICAgICAgICAgICAgICAgVmFsdWUqIGp1bXBUYXJnZXQgPQorICAgICAgICAgICAgICAg
ICAgICBzd2l0Y2hCbG9jay0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihtX3Byb2MsIExvYWQsIHBv
aW50ZXJUeXBlKCksIG1fb3JpZ2luLCBwdHIpOworICAgICAgICAgICAgICAgIFBvbHlKdW1wVmFs
dWUqIHBvbHlKdW1wID0KKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoQmxvY2stPmFwcGVuZE5l
dzxQb2x5SnVtcFZhbHVlPihtX3Byb2MsIG1fb3JpZ2luLCBqdW1wVGFyZ2V0KTsKKyAgICAgICAg
ICAgICAgICAKKyAgICAgICAgICAgICAgICBCaXRWZWN0b3IgaGFuZGxlZEluZGljZXM7CisgICAg
ICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gc3RhcnQ7IGkgPCBlbmQ7ICsraSkgeworICAg
ICAgICAgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2sgYmxvY2sgPSBjYXNlc1tpXS50YXJnZXQo
KTsKKyAgICAgICAgICAgICAgICAgICAgaW50NjRfdCB2YWx1ZSA9IGNhc2VzW2ldLmNhc2VWYWx1
ZSgpOworICAgICAgICAgICAgICAgICAgICBwb2x5SnVtcC0+YXBwZW5kU3VjY2Vzc29yKGJsb2Nr
KTsKKyAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGluZGV4ID0gdmFsdWUgLSBmaXJzdFZhbHVl
OworICAgICAgICAgICAgICAgICAgICBBU1NFUlQoIWhhbmRsZWRJbmRpY2VzLmdldChpbmRleCkp
OworICAgICAgICAgICAgICAgICAgICBoYW5kbGVkSW5kaWNlcy5zZXQoaW5kZXgpOworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBib29sIGhhc1Vu
aGFuZGxlZEluZGV4ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IHRhYmxlU2l6ZTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghaGFuZGxl
ZEluZGljZXMuZ2V0KGkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBoYXNVbmhhbmRsZWRJ
bmRleCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAg
ICAgICAgICBpZiAoaGFzVW5oYW5kbGVkSW5kZXgpCisgICAgICAgICAgICAgICAgICAgIHBvbHlK
dW1wLT5hcHBlbmRTdWNjZXNzb3IoZmFsbFRocm91Z2gpOworICAgICAgICAgICAgICAgIAorICAg
ICAgICAgICAgICAgIHBvbHlKdW1wLT5zZXRDYWxsYmFjaygKKyAgICAgICAgICAgICAgICAgICAg
Wz1dIChjb25zdCBWZWN0b3I8TWFjcm9Bc3NlbWJsZXJDb2RlUHRyPiYgcG9pbnRlcnMpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBwb2ludGVySW5kZXggPSAwOworICAgICAgICAg
ICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaW5kZXggOiBoYW5kbGVkSW5kaWNlcykKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBqdW1wVGFibGVbaW5kZXhdID0gcG9pbnRlcnNbcG9pbnRl
ckluZGV4KytdOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAoaGFzVW5oYW5kbGVkSW5kZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRhYmxlU2l6ZTsgKytpKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmICghaGFuZGxlZEluZGljZXMuZ2V0KGkpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAganVtcFRhYmxlW2ldID0gcG9pbnRlcnNbcG9pbnRl
ckluZGV4XTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcG9pbnRlckluZGV4Kys7CisgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0Vf
QVNTRVJUKHBvaW50ZXJJbmRleCA9PSBwb2ludGVycy5zaXplKCkpOworICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAg
IH0KICAgICAgICAgCiAgICAgICAgIC8vIFNlZSBjb21tZW50cyBpbiBqaXQvQmluYXJ5U3dpdGNo
LmNwcCBmb3IgYSBqdXN0aWZpY2F0aW9uIG9mIHRoaXMgYWxnb3JpdGhtLiBUaGUgb25seQogICAg
ICAgICAvLyB0aGluZyB3ZSBkbyBkaWZmZXJlbnRseSBpcyB0aGF0IHdlIGRvbid0IHVzZSByYW5k
b21uZXNzLgpAQCAtMzA3LDIyICszOTYsMTkgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBi
ZWZvcmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAogICAgICAgICAgICAgICAgICAgICBtX3By
b2MsIEJyYW5jaCwgbV9vcmlnaW4sCiAgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5k
TmV3PFZhbHVlPigKLSAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgRXF1YWwsIG1fb3Jp
Z2luLCBtX3ZhbHVlLT5jaGlsZCgwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywg
RXF1YWwsIG1fb3JpZ2luLCBjaGlsZCwKICAgICAgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+
YXBwZW5kSW50Q29uc3RhbnQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBt
X29yaWdpbiwgbV92YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLCB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNhc2VzW3N0YXJ0ICsgaV0uY2FzZVZhbHVlKCkpKSwKICAgICAgICAgICAgICAgICAgICAg
Y2FzZXNbc3RhcnQgKyBpXS50YXJnZXQoKSwgRnJlcXVlbnRlZEJsb2NrKG5leHRDaGVjaykpOwog
CiAgICAgICAgICAgICAgICAgYmVmb3JlID0gbmV4dENoZWNrOwogICAgICAgICAgICAgfQogCi0g
ICAgICAgICAgICBpZiAoYWxsQ29uc2VjdXRpdmUpIHsKLSAgICAgICAgICAgICAgICBiZWZvcmUt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAotICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIEp1
bXAsIG1fb3JpZ2luLCBjYXNlc1tlbmQgLSAxXS50YXJnZXQoKSk7Ci0gICAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCi0g
ICAgICAgICAgICAgICAgICAgIG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIG1fdmFsdWUtPmFzPFN3
aXRjaFZhbHVlPigpLT5mYWxsVGhyb3VnaCgpKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGlmIChhbGxDb25zZWN1dGl2ZSkKKyAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIGNhc2VzW2VuZCAtIDFdLnRhcmdl
dCgpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIGZhbGxUaHJvdWdoKTsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC0zMzQsOSArNDIwLDkgQEAgcHJpdmF0
ZToKICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKICAgICAgICAgICAg
IG1fcHJvYywgQnJhbmNoLCBtX29yaWdpbiwKICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3
PFZhbHVlPigKLSAgICAgICAgICAgICAgICBtX3Byb2MsIExlc3NUaGFuLCBtX29yaWdpbiwgbV92
YWx1ZS0+Y2hpbGQoMCksCisgICAgICAgICAgICAgICAgbV9wcm9jLCBMZXNzVGhhbiwgbV9vcmln
aW4sIGNoaWxkLAogICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kSW50Q29uc3RhbnQoCi0g
ICAgICAgICAgICAgICAgICAgIG1fcHJvYywgbV9vcmlnaW4sIG1fdmFsdWUtPmNoaWxkKDApLT50
eXBlKCksCisgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgbV9vcmlnaW4sIHR5cGUsCiAgICAg
ICAgICAgICAgICAgICAgIGNhc2VzW21lZGlhbkluZGV4XS5jYXNlVmFsdWUoKSkpLAogICAgICAg
ICAgICAgRnJlcXVlbnRlZEJsb2NrKGxlZnQpLCBGcmVxdWVudGVkQmxvY2socmlnaHQpKTsKIApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAJKHJldmlzaW9u
IDIwMTQ5NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNDQxLDYgKzI0NDEsMTYgQEAgcHJpdmF0ZToKICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAg
IGNhc2UgQjM6OlBvbHlKdW1wOiB7CisgICAgICAgICAgICBBcmdQcm9taXNlIGFkZHIgPSBsb2Fk
UHJvbWlzZShtX3ZhbHVlLT5jaGlsZCgwKSk7CisgICAgICAgICAgICBpZiAoaXNWYWxpZEZvcm0o
QWlyOjpQb2x5SnVtcCwgYWRkci5raW5kKCkpKSB7CisgICAgICAgICAgICAgICAgYXBwZW5kKEFp
cjo6UG9seUp1bXAsIGFkZHIuY29uc3VtZSgqdGhpcykpOworICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGFwcGVuZChBaXI6OlBvbHlKdW1wLCB0bXAo
bV92YWx1ZS0+Y2hpbGQoMCkpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogCiAg
ICAgICAgIGNhc2UgQjM6Ok9vcHM6IHsKICAgICAgICAgICAgIGFwcGVuZChBaXI6Ok9vcHMpOwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuY3BwCShyZXZpc2lvbiAyMDE0OTQp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yOTAsNiArMjkwLDkgQEAgdm9pZCBwcmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQs
IE9wYwogICAgIGNhc2UgU3dpdGNoOgogICAgICAgICBvdXQucHJpbnQoIlN3aXRjaCIpOwogICAg
ICAgICByZXR1cm47CisgICAgY2FzZSBQb2x5SnVtcDoKKyAgICAgICAgb3V0LnByaW50KCJQb2x5
SnVtcCIpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBSZXR1cm46CiAgICAgICAgIG91dC5w
cmludCgiUmV0dXJuIik7CiAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM09wY29kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM09wY29kZS5oCShyZXZpc2lvbiAyMDE0OTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNPcGNvZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjE2LDYgKzIxNiwxMyBAQCBlbnVtIE9w
Y29kZSA6IGludDE2X3QgewogCiAgICAgLy8gU3dpdGNoLiBTd2l0Y2hlcyBvdmVyIGVpdGhlciBJ
bnQzMiBvciBJbnQ2NC4gVXNlcyB0aGUgU3dpdGNoVmFsdWUgY2xhc3MuCiAgICAgU3dpdGNoLAor
ICAgIAorICAgIC8vIEp1bXAgdG8gdGhlIGdpdmVuIGFkZHJlc3MuIFRoZSBjb21waWxlciBhc3N1
bWVzIHRoYXQgdGhpcyB3aWxsIGp1bXAgdG8gb25lIG9mIHRoZSBzdXBwbGllZAorICAgIC8vIHN1
Y2Nlc3NvcnMsIGJ1dCB3aWxsIG1ha2UgYWJzb2x1dGVseSBubyBhc3N1bXB0aW9ucyBhYm91dCB3
aGljaC4gSXQncyBlbnRpcmVseSB1cCB0byB0aGUgdXNlcgorICAgIC8vIHRvIGFycmFuZ2UgZm9y
IHRoZSBqdW1wIHRvIGp1bXAgdG8gb25lIG9mIHRob3NlIHN1Y2Nlc3NvcnMuIFRoaXMgY2Fubm90
IHRyYXAgb3IgZG8gYW55dGhpbmcgYnV0CisgICAgLy8ganVtcCB0byBvbmUgb2YgdGhlIHN1Y2Nl
c3NvcnM7IGlmIGl0IGRvZXMgYW55dGhpbmcgZWxzZSB0aGVuIGRlbW9ucyB3aWxsIGNvbWUgb3V0
IG9mIHRoZSB1c2VyJ3MKKyAgICAvLyBub3NlLiAKKyAgICBQb2x5SnVtcCwKIAogICAgIC8vIFJl
dHVybi4gTm90ZSB0aGF0IEIzIHByb2NlZHVyZXMgZG9uJ3Qga25vdyB0aGVpciByZXR1cm4gdHlw
ZSwgc28gdGhpcyBjYW4ganVzdCByZXR1cm4gYW55CiAgICAgLy8gdHlwZS4gVXNlcyB0aGUgQ29u
dHJvbFZhbHVlIGNsYXNzLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUG9seUp1
bXBWYWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUG9s
eUp1bXBWYWx1ZS5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNQb2x5SnVtcFZhbHVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDc0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJCM1BvbHlKdW1wVmFsdWUuaCIKKworI2lmIEVOQUJMRShCM19KSVQp
CisKKyNpbmNsdWRlICJCM0Jhc2ljQmxvY2suaCIKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFj
ZSBCMyB7CisKK1BvbHlKdW1wVmFsdWU6On5Qb2x5SnVtcFZhbHVlKCkKK3sKK30KKwordm9pZCBQ
b2x5SnVtcFZhbHVlOjphcHBlbmRTdWNjZXNzb3IoY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBibG9j
aykKK3sKKyAgICBtX3N1Y2Nlc3NvcnMuYXBwZW5kKGJsb2NrKTsKK30KKwordm9pZCBQb2x5SnVt
cFZhbHVlOjpzZXRDYWxsYmFja1Rhc2soUmVmUHRyPFNoYXJlZFRhc2s8Q2FsbGJhY2tGdW5jdGlv
blR5cGU+PiB0YXNrKQoreworICAgIG1fdGFzayA9IHRhc2s7Cit9CisKK2Jvb2wgUG9seUp1bXBW
YWx1ZTo6aXNDbG9uZWFibGUoKSBjb25zdAoreworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9p
ZCBQb2x5SnVtcFZhbHVlOjpkdW1wTWV0YShDb21tYVByaW50ZXImIGNvbW1hLCBQcmludFN0cmVh
bSYgb3V0KSBjb25zdAoreworICAgIENvbnRyb2xWYWx1ZTo6ZHVtcE1ldGEoY29tbWEsIG91dCk7
CisgICAgb3V0LnByaW50KGNvbW1hLCAidGFzayA9ICIsIFJhd1BvaW50ZXIobV90YXNrLmdldCgp
KSk7Cit9CisKK1ZhbHVlKiBQb2x5SnVtcFZhbHVlOjpjbG9uZUltcGwoKSBjb25zdAoreworICAg
IGRhdGFMb2coIkZBVEFMOiBBdHRlbXB0IHRvIGNsb25lIG5vbi1jbG9uZWFibGUgUG9seUp1bXBW
YWx1ZSFcbiIpOworICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK1BvbHlK
dW1wVmFsdWU6OlBvbHlKdW1wVmFsdWUoT3JpZ2luIG9yaWdpbiwgVmFsdWUqIGNoaWxkKQorICAg
IDogQ29udHJvbFZhbHVlKFBvbHlKdW1wLCBWb2lkLCBvcmlnaW4sIGNoaWxkKQoreworfQorCit9
IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKKworI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCisKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BvbHlKdW1wVmFsdWUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQb2x5SnVtcFZhbHVlLmgJKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQb2x5SnVtcFZhbHVlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCisjaWZuZGVmIEIzUG9seUp1bXBWYWx1ZV9oCisjZGVmaW5lIEIzUG9s
eUp1bXBWYWx1ZV9oCisKKyNpZiBFTkFCTEUoQjNfSklUKQorCisjaW5jbHVkZSAiQjNDb250cm9s
VmFsdWUuaCIKKyNpbmNsdWRlIDx3dGYvU2hhcmVkVGFzay5oPgorCituYW1lc3BhY2UgSlNDIHsg
bmFtZXNwYWNlIEIzIHsKKworY2xhc3MgUG9seUp1bXBWYWx1ZSA6IHB1YmxpYyBDb250cm9sVmFs
dWUgeworcHVibGljOgorICAgIHN0YXRpYyBib29sIGFjY2VwdHMoT3Bjb2RlIG9wY29kZSkgeyBy
ZXR1cm4gb3Bjb2RlID09IFBvbHlKdW1wOyB9CisgICAgCisgICAgflBvbHlKdW1wVmFsdWUoKTsK
KyAgICAKKyAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIGFwcGVuZFN1Y2Nlc3Nvcihjb25zdCBG
cmVxdWVudGVkQmxvY2smKTsKKyAgICAKKyAgICB0eXBlZGVmIHZvaWQgQ2FsbGJhY2tGdW5jdGlv
blR5cGUoY29uc3QgVmVjdG9yPE1hY3JvQXNzZW1ibGVyQ29kZVB0cj4mKTsKKyAgICAKKyAgICBK
U19FWFBPUlRfUFJJVkFURSB2b2lkIHNldENhbGxiYWNrVGFzayhSZWZQdHI8U2hhcmVkVGFzazxD
YWxsYmFja0Z1bmN0aW9uVHlwZT4+IHRhc2spOworICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1l
IEZ1bmM+CisgICAgdm9pZCBzZXRDYWxsYmFjayhjb25zdCBGdW5jJiBmdW5jKQorICAgIHsKKyAg
ICAgICAgc2V0Q2FsbGJhY2tUYXNrKGNyZWF0ZVNoYXJlZFRhc2s8Q2FsbGJhY2tGdW5jdGlvblR5
cGU+KGZ1bmMpKTsKKyAgICB9CisgICAgCisgICAgU2hhcmVkVGFzazxDYWxsYmFja0Z1bmN0aW9u
VHlwZT4qIGNhbGxiYWNrVGFzaygpIGNvbnN0IHsgcmV0dXJuIG1fdGFzay5nZXQoKTsgfQorICAg
IAorICAgIGJvb2wgaXNDbG9uZWFibGUoKSBjb25zdCBvdmVycmlkZTsKKworcHJvdGVjdGVkOgor
ICAgIHZvaWQgZHVtcE1ldGEoQ29tbWFQcmludGVyJiwgUHJpbnRTdHJlYW0mKSBjb25zdCBvdmVy
cmlkZTsKKyAgICAKKyAgICBWYWx1ZSogY2xvbmVJbXBsKCkgY29uc3Qgb3ZlcnJpZGU7CisKK3By
aXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIFByb2NlZHVyZTsKKyAgICAKKyAgICBKU19FWFBPUlRf
UFJJVkFURSBQb2x5SnVtcFZhbHVlKE9yaWdpbiwgVmFsdWUqIGNoaWxkKTsKKyAgICAKKyAgICBS
ZWZQdHI8U2hhcmVkVGFzazxDYWxsYmFja0Z1bmN0aW9uVHlwZT4+IG1fdGFzazsKK307CisKK30g
fSAvLyBuYW1lc3BhY2UgSlNDOjpCMworCisjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKKworI2Vu
ZGlmIC8vIEIzUG9seUp1bXBWYWx1ZV9oCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1Byb2NlZHVyZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzUHJvY2VkdXJlLmNwcAkocmV2aXNpb24gMjAxNDk0KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzUHJvY2VkdXJlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODIsNiArODIsOCBAQCBW
YXJpYWJsZSogUHJvY2VkdXJlOjphZGRWYXJpYWJsZShUeXBlIHR5CiAKIFZhbHVlKiBQcm9jZWR1
cmU6OmNsb25lKFZhbHVlKiB2YWx1ZSkKIHsKKyAgICBBU1NFUlQodmFsdWUtPmlzQ2xvbmVhYmxl
KCkpOworICAgIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxWYWx1ZT4gY2xvbmUodmFsdWUtPmNsb25l
SW1wbCgpKTsKICAgICBjbG9uZS0+bV9pbmRleCA9IFVJTlRfTUFYOwogICAgIGNsb25lLT5vd25l
ciA9IG51bGxwdHI7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuaAko
cmV2aXNpb24gMjAxNDk0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMSw2ICsxMDEsNyBAQCBwdWJsaWM6CiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUgVmFsdWVUeXBlLCB0eXBlbmFtZS4uLiBBcmd1bWVudHM+CiAgICAgVmFsdWVU
eXBlKiBhZGQoQXJndW1lbnRzLi4uKTsKIAorICAgIC8vIE5vdGUgdGhhdCBub3QgYWxsIHZhbHVl
cyBhcmUgY2xvbmVhYmxlLiBDaGVjayBWYWx1ZTo6aXNDbG9uZWFibGUoKSBiZWZvcmUgcHJvY2Vl
ZGluZy4KICAgICBWYWx1ZSogY2xvbmUoVmFsdWUqKTsKIAogICAgIFZhbHVlKiBhZGRJbnRDb25z
dGFudChPcmlnaW4sIFR5cGUsIGludDY0X3QgdmFsdWUpOwpAQCAtMjE4LDYgKzIxOSw5IEBAIHB1
YmxpYzoKIAogICAgIGNvbnN0IGNoYXIqIGxhc3RQaGFzZU5hbWUoKSBjb25zdCB7IHJldHVybiBt
X2xhc3RQaGFzZU5hbWU7IH0KIAorICAgIC8vIEFsbG9jYXRlcyBhIHNsYWIgb2YgbWVtb3J5IHRo
YXQgd2lsbCBiZSBrZXB0IGFsaXZlIGJ5IGFueW9uZSB3aG8ga2VlcHMgdGhlIHJlc3VsdGluZyBj
b2RlCisgICAgLy8gYWxpdmUuIEdyZWF0IGZvciBjb21waWxlci1nZW5lcmF0ZWQgZGF0YSBzZWN0
aW9ucywgbGlrZSBzd2l0Y2gganVtcCB0YWJsZXMgYW5kIGNvbnN0YW50IHBvb2xzLgorICAgIC8v
IFRoaXMgcmV0dXJucyBtZW1vcnkgdGhhdCBoYXMgYmVlbiB6ZXJvLWluaXRpYWxpemVkLgogICAg
IHZvaWQqIGFkZERhdGFTZWN0aW9uKHNpemVfdCBzaXplKTsKIAogICAgIE9wYXF1ZUJ5cHJvZHVj
dHMmIGJ5cHJvZHVjdHMoKSB7IHJldHVybiAqbV9ieXByb2R1Y3RzOyB9CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VTdHJlbmd0aC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCShyZXZpc2lvbiAyMDE0
OTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VTdHJlbmd0aC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE3NzMsNyArMTc3MywxNyBAQCBwcml2YXRlOgogICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gdmFsdWUtPm9wY29kZSgpID09IFNlbGVjdAogICAgICAgICAgICAgICAg
ICAgICAgICAgJiYgKHZhbHVlLT5jaGlsZCgxKS0+aXNDb25zdGFudCgpICYmIHZhbHVlLT5jaGls
ZCgyKS0+aXNDb25zdGFudCgpKTsKICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGlm
IChzZWxlY3QpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHRoYXQg
dGhlIHJlbGV2YW50IGNvZGUgaXMgY2xvbmVhYmxlLgorICAgICAgICAgICAgYm9vbCBhbGxBcmVD
bG9uZWFibGUgPSB0cnVlOworICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpbmRleCA9IG1faW5k
ZXggKyAxOyBpbmRleC0tOykgeworICAgICAgICAgICAgICAgIFZhbHVlKiB2YWx1ZSA9IG1fYmxv
Y2stPmF0KGluZGV4KTsKKyAgICAgICAgICAgICAgICBhbGxBcmVDbG9uZWFibGUgJj0gdmFsdWUt
PmlzQ2xvbmVhYmxlKCk7CisgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09IHNlbGVjdCkKKyAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAg
ICAgICAgICAgIGlmIChzZWxlY3QgJiYgYWxsQXJlQ2xvbmVhYmxlKSB7CiAgICAgICAgICAgICAg
ICAgc3BlY2lhbGl6ZVNlbGVjdChzZWxlY3QpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsaWRhdGUuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbGlkYXRlLmNwcAko
cmV2aXNpb24gMjAxNDk0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsaWRhdGUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zODcsNiArMzg3LDExIEBAIHB1YmxpYzoKICAgICAgICAg
ICAgICAgICBWQUxJREFURShpc0ludCh2YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSksICgiQXQgIiwg
KnZhbHVlKSk7CiAgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPnR5cGUoKSA9PSBWb2lk
LCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSBQb2x5SnVtcDoKKyAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+bnVtQ2hpbGRy
ZW4oKSA9PSAxLCAoIkF0ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIFZBTElEQVRFKHZh
bHVlLT5jaGlsZCgwKS0+dHlwZSgpID09IHBvaW50ZXJUeXBlKCksICgiQXQgIiwgKnZhbHVlKSk7
CisgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPnR5cGUoKSA9PSBWb2lkLCAoIkF0ICIs
ICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCiAgICAg
ICAgICAgICBWQUxJREFURSghKHZhbHVlLT5lZmZlY3RzKCkud3JpdGVzICYmIHZhbHVlLT5rZXko
KSksICgiQXQgIiwgKnZhbHVlKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNW
YWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUu
Y3BwCShyZXZpc2lvbiAyMDE0OTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU0MCw2ICs1NDAsNyBAQCBFZmZlY3RzIFZhbHVlOjpl
ZmZlY3RzKCkgY29uc3QKICAgICBjYXNlIEp1bXA6CiAgICAgY2FzZSBCcmFuY2g6CiAgICAgY2Fz
ZSBTd2l0Y2g6CisgICAgY2FzZSBQb2x5SnVtcDoKICAgICBjYXNlIFJldHVybjoKICAgICBjYXNl
IE9vcHM6CiAgICAgICAgIHJlc3VsdC50ZXJtaW5hbCA9IHRydWU7CkBAIC01NDgsNiArNTQ5LDEx
IEBAIEVmZmVjdHMgVmFsdWU6OmVmZmVjdHMoKSBjb25zdAogICAgIHJldHVybiByZXN1bHQ7CiB9
CiAKK2Jvb2wgVmFsdWU6OmlzQ2xvbmVhYmxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKwogVmFsdWVLZXkgVmFsdWU6OmtleSgpIGNvbnN0CiB7CiAgICAgc3dpdGNoIChvcGNvZGUo
KSkgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5oCShyZXZpc2lvbiAyMDE0OTQp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yMDAsNiArMjAwLDExIEBAIHB1YmxpYzoKICAgICBib29sIGlzTGlrZU5vblplcm8oKSBjb25z
dCB7IHJldHVybiBhc1RyaVN0YXRlKCkgPT0gVHJ1ZVRyaVN0YXRlOyB9CiAKICAgICBFZmZlY3Rz
IGVmZmVjdHMoKSBjb25zdDsKKyAgICAKKyAgICAvLyBTb21lIG9wZXJhdGlvbnMgd2lsbCByZWZ1
c2UgdG8gYmUgY2xvbmVkLiBUaGlzIGhhcHBlbnMgd2hlbiB0aGUgb3BlcmF0aW9uIGhhcyBzb21l
IGluc2lkZQorICAgIC8vIGtub3dsZWRnZSBhYm91dCB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4g
aXRzIGlkZW50aXR5IGFuZCB0aGUgaWRlbnRpdHkgb2YgdGhlIGNvZGUgaXQgd2lsbAorICAgIC8v
IGdlbmVyYXRlLgorICAgIHZpcnR1YWwgYm9vbCBpc0Nsb25lYWJsZSgpIGNvbnN0OwogCiAgICAg
Ly8gVGhpcyByZXR1cm5zIGEgVmFsdWVLZXkgdGhhdCBkZXNjcmliZXMgdGhhdCB0aGlzIFZhbHVl
IHJldHVybnMgd2hlbiBpdCBleGVjdXRlcy4gUmV0dXJucyBhbgogICAgIC8vIGVtcHR5IFZhbHVl
S2V5IGlmIHRoaXMgVmFsdWUgaXMgaW1wdXJlLiBOb3RlIHRoYXQgYW4gb3BlcmF0aW9uIHRoYXQg
cmV0dXJucyBWb2lkIGNvdWxkIHN0aWxsCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
dGVzdGIzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIz
LmNwcAkocmV2aXNpb24gMjAxNDk0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3Ri
My5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJCM0NvbnN0
UHRyVmFsdWUuaCIKICNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzRWZm
ZWN0cy5oIgorI2luY2x1ZGUgIkIzUG9seUp1bXBWYWx1ZS5oIgogI2luY2x1ZGUgIkIzTWF0aEV4
dHJhcy5oIgogI2luY2x1ZGUgIkIzTWVtb3J5VmFsdWUuaCIKICNpbmNsdWRlICJCM1Byb2NlZHVy
ZS5oIgpAQCAtNDQsNiArNDUsNyBAQAogI2luY2x1ZGUgIkIzU3dpdGNoVmFsdWUuaCIKICNpbmNs
dWRlICJCM1Vwc2lsb25WYWx1ZS5oIgogI2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCisjaW5j
bHVkZSAiQjNWYXJpYWJsZVZhbHVlLmgiCiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5j
bHVkZSAiSW5pdGlhbGl6ZVRocmVhZGluZy5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKQEAg
LTUyLDYgKzU0LDcgQEAKICNpbmNsdWRlICJWTS5oIgogI2luY2x1ZGUgPGNtYXRoPgogI2luY2x1
ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDx3dGYvTGlzdER1bXAuaD4KICNpbmNsdWRlIDx3dGYvTG9j
ay5oPgogI2luY2x1ZGUgPHd0Zi9OdW1iZXJPZkNvcmVzLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVh
ZGluZy5oPgpAQCAtNzMsNiArNzYsMTEgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzo6QjM7CiAKIG5h
bWVzcGFjZSB7CiAKK2Jvb2wgc2hvdWxkQmVWZXJib3NlKCkKK3sKKyAgICByZXR1cm4gc2hvdWxk
RHVtcElSKEIzTW9kZSk7Cit9CisKIFN0YXRpY0xvY2sgY3Jhc2hMb2NrOwogCiAvLyBOb3RoaW5n
IGZhbmN5IGZvciBub3c7IHdlIGp1c3QgdXNlIHRoZSBleGlzdGluZyBXVEYgYXNzZXJ0aW9uIG1h
Y2hpbmVyeS4KQEAgLTEwMTI4LDcgKzEwMTM2LDEwIEBAIHZvaWQgdGVzdFN3aXRjaENoaWxsRGl2
KHVuc2lnbmVkIGRlZ3JlZSwKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCiAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGRlZ3JlZTsgKytpKSB7Ci0gICAgICAgIENIRUNLKGlu
dm9rZTxpbnQzMl90PigqY29kZSwgaSAqIGdhcCwgNDIsIDExKSA9PSAoKGkgJiAxKSA/IDExLzQy
IDogNDIvMTEpKTsKKyAgICAgICAgZGF0YUxvZygiaSA9ICIsIGksICJcbiIpOworICAgICAgICBp
bnQzMl90IHJlc3VsdCA9IGludm9rZTxpbnQzMl90PigqY29kZSwgaSAqIGdhcCwgNDIsIDExKTsK
KyAgICAgICAgZGF0YUxvZygicmVzdWx0ID0gIiwgcmVzdWx0LCAiXG4iKTsKKyAgICAgICAgQ0hF
Q0socmVzdWx0ID09ICgoaSAmIDEpID8gMTEvNDIgOiA0Mi8xMSkpOwogICAgICAgICBpZiAoZ2Fw
ID4gMSkgewogICAgICAgICAgICAgQ0hFQ0soIWludm9rZTxpbnQzMl90PigqY29kZSwgaSAqIGdh
cCArIDEsIDQyLCAxMSkpOwogICAgICAgICAgICAgQ0hFQ0soIWludm9rZTxpbnQzMl90PigqY29k
ZSwgaSAqIGdhcCAtIDEsIDQyLCAxMSkpOwpAQCAtMTIwNTAsNiArMTIwNjEsMjMxIEBAIHZvaWQg
dGVzdExhdGVSZWdpc3RlcigpCiAgICAgQ0hFQ0soaW52b2tlPHVpbnQ2NF90PigqY29kZSkgPT0g
cmVzdWx0KTsKIH0KIAordm9pZCB0aHJlYWRlZEludGVycHJldGVyUHJpbnQoVmVjdG9yPGludHB0
cl90Piogc3RyZWFtLCBpbnRwdHJfdCB2YWx1ZSkKK3sKKyAgICBzdHJlYW0tPmFwcGVuZCh2YWx1
ZSk7Cit9CisKK3ZvaWQgdGVzdFRocmVhZGVkSW50ZXJwcmV0ZXIoKQoreworICAgIC8vIFRoaXMg
Y3JlYXRlcyBhIHBvb3IgbWFuJ3MgdGhyZWFkZWQgaW50ZXJwcmV0ZXIgdXNpbmcgUG9seUp1bXAg
YW5kIHNlZXMgaWYgaXQgd29ya3MuIE5vdGUKKyAgICAvLyB0aGF0IFBvbHlKdW1wIGlzIG5vdCBs
aWtlIGluZGlyZWN0IGJyYW5jaGVzIGluIExMVk0sIHNvIHlvdSBjYW4ndCBhY3R1YWxseSB1c2Ug
aXQgdG8KKyAgICAvLyBpbXBsZW1lbnQgYSBwcm9wZXIgdGhyZWFkZWQgaW50ZXJwcmV0ZXIuIFRo
aXMgY2hlYXRzOiB0aGUgZGlzcGF0Y2ggaW5zdHJ1Y3Rpb24gaXMgYXQgdGhlIHRvcAorICAgIC8v
IG9mIHRoZSBsb29wLiBUaGlzIGFsc28gdGVzdHMgVmFyaWFibGVWYWx1ZS4KKyAgICAKKyAgICBQ
cm9jZWR1cmUgcHJvYzsKKyAgICAKKyAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOworICAgIEJhc2ljQmxvY2sqIGRpc3BhdGNoID0gcHJvYy5hZGRCbG9jaygpOworICAgIEJh
c2ljQmxvY2sqIGFkZFRvRGF0YVBvaW50ZXIgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNC
bG9jayogYWRkVG9Db2RlUG9pbnRlciA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBCYXNpY0Jsb2Nr
KiBhZGRUb0NvZGVQb2ludGVyVGFrZW4gPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9j
ayogYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuID0gcHJvYy5hZGRCbG9jaygpOworICAgIEJhc2lj
QmxvY2sqIGFkZFRvRGF0YSA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBCYXNpY0Jsb2NrKiBwcmlu
dCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBCYXNpY0Jsb2NrKiBzdG9wID0gcHJvYy5hZGRCbG9j
aygpOworICAgIAorICAgIFZhcmlhYmxlKiBkYXRhUG9pbnRlciA9IHByb2MuYWRkVmFyaWFibGUo
cG9pbnRlclR5cGUoKSk7CisgICAgVmFyaWFibGUqIGNvZGVQb2ludGVyID0gcHJvYy5hZGRWYXJp
YWJsZShwb2ludGVyVHlwZSgpKTsKKyAgICAKKyAgICByb290LT5hcHBlbmROZXc8VmFyaWFibGVW
YWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGRhdGFQb2ludGVyLAorICAgICAg
ICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCkpOworICAgIHJvb3QtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPigK
KyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIsCisgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIxKSk7CisgICAgVmFsdWUqIGNvbnRleHQgPSByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMik7CisgICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1
ZW50ZWRCbG9jayhkaXNwYXRjaCkpOworICAgIAorICAgIFBvbHlKdW1wVmFsdWUqIHBvbHlKdW1w
ID0gZGlzcGF0Y2gtPmFwcGVuZE5ldzxQb2x5SnVtcFZhbHVlPigKKyAgICAgICAgcHJvYywgT3Jp
Z2luKCksCisgICAgICAgIGRpc3BhdGNoLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAg
ICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCksCisgICAgICAgICAgICBk
aXNwYXRjaC0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAgICAgICAgICAgICAgIHByb2Ms
IEIzOjpHZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlcikpKTsKKyAgICBwb2x5SnVtcC0+YXBwZW5k
U3VjY2Vzc29yKEZyZXF1ZW50ZWRCbG9jayhhZGRUb0RhdGFQb2ludGVyKSk7CisgICAgcG9seUp1
bXAtPmFwcGVuZFN1Y2Nlc3NvcihGcmVxdWVudGVkQmxvY2soYWRkVG9Db2RlUG9pbnRlcikpOwor
ICAgIHBvbHlKdW1wLT5hcHBlbmRTdWNjZXNzb3IoRnJlcXVlbnRlZEJsb2NrKGFkZFRvRGF0YSkp
OworICAgIHBvbHlKdW1wLT5hcHBlbmRTdWNjZXNzb3IoRnJlcXVlbnRlZEJsb2NrKHByaW50KSk7
CisgICAgcG9seUp1bXAtPmFwcGVuZFN1Y2Nlc3NvcihGcmVxdWVudGVkQmxvY2soc3RvcCkpOwor
ICAgIAorICAgIC8vIE91ciAib3Bjb2RlcyIuIFRoZXkgd2lsbCBoYXZlIG1lYW5pbmcgb25jZSB3
ZSBjb21waWxlLgorICAgIGludHB0cl90IEFkZERQID0gMDsKKyAgICBpbnRwdHJfdCBBZGRDUCA9
IDA7CisgICAgaW50cHRyX3QgQWRkID0gMDsKKyAgICBpbnRwdHJfdCBQcmludCA9IDA7CisgICAg
aW50cHRyX3QgU3RvcCA9IDA7CisgICAgcG9seUp1bXAtPnNldENhbGxiYWNrKAorICAgICAgICBb
Jl0gKGNvbnN0IFZlY3RvcjxNYWNyb0Fzc2VtYmxlckNvZGVQdHI+JiBwb2ludGVycykgeworICAg
ICAgICAgICAgYXV0byBnZXQgPSBbJl0gKHNpemVfdCBpbmRleCkgLT4gaW50cHRyX3QgeworICAg
ICAgICAgICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8aW50cHRyX3Q+KHBvaW50ZXJzW2luZGV4
XS5leGVjdXRhYmxlQWRkcmVzcygpKTsKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICAKKyAg
ICAgICAgICAgIEFkZERQID0gZ2V0KDApOworICAgICAgICAgICAgQWRkQ1AgPSBnZXQoMSk7Cisg
ICAgICAgICAgICBBZGQgPSBnZXQoMik7CisgICAgICAgICAgICBQcmludCA9IGdldCgzKTsKKyAg
ICAgICAgICAgIFN0b3AgPSBnZXQoNCk7CisgICAgICAgIH0pOworICAgIAorICAgIC8vIEFkZERQ
IDxvcGVyYW5kPjogYWRkcyA8b3BlcmFuZD4gdG8gRFAuCisgICAgVmFsdWUqIGNvZGVQb2ludGVy
VmFsdWUgPQorICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1
ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyKTsKKyAgICBhZGRUb0RhdGFQ
b2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3Jp
Z2luKCksIGRhdGFQb2ludGVyLAorICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8
VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgQjM6OkFkZCwgT3JpZ2luKCksCisgICAgICAgICAg
ICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6Okdl
dCwgT3JpZ2luKCksIGRhdGFQb2ludGVyKSwKKyAgICAgICAgICAgIGFkZFRvRGF0YVBvaW50ZXIt
PmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICAgICAgcHJvYywgTXVsLCBPcmlnaW4oKSwK
KyAgICAgICAgICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+
KAorICAgICAgICAgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4o
KSwgY29kZVBvaW50ZXJWYWx1ZSwgc2l6ZW9mKGludHB0cl90KSksCisgICAgICAgICAgICAgICAg
YWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kSW50Q29uc3RhbnQoCisgICAgICAgICAgICAgICAgICAg
IHByb2MsIE9yaWdpbigpLCBwb2ludGVyVHlwZSgpLCBzaXplb2YoaW50cHRyX3QpKSkpKTsKKyAg
ICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHBy
b2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyLAorICAgICAgICBhZGRUb0RhdGFQb2ludGVy
LT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgQjM6OkFkZCwgT3JpZ2luKCks
IGNvZGVQb2ludGVyVmFsdWUsCisgICAgICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmRJ
bnRDb25zdGFudCgKKyAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUo
KSwgc2l6ZW9mKGludHB0cl90KSAqIDIpKSk7CisgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhk
aXNwYXRjaCkpOworICAgIAorICAgIC8vIEFkZENQIDxvcGVyYW5kPjogYWRkcyA8b3BlcmFuZD4g
dG8gQ1AgaWYgdGhlIGN1cnJlbnQgdmFsdWUgYXQgRFAgaXMgbm9uLXplcm8sIG90aGVyd2lzZQor
ICAgIC8vIGZhbGxzIHRocm91Z2ggbm9ybWFsbHkuCisgICAgY29kZVBvaW50ZXJWYWx1ZSA9Cisg
ICAgICAgIGFkZFRvQ29kZVBvaW50ZXItPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPihwcm9jLCBC
Mzo6R2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIpOworICAgIFZhbHVlKiBkYXRhUG9pbnRlclZh
bHVlID0KKyAgICAgICAgYWRkVG9Db2RlUG9pbnRlci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+
KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRlcik7CisgICAgYWRkVG9Db2RlUG9p
bnRlci0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHByb2MsIEJyYW5jaCwgT3Jp
Z2luKCksCisgICAgICAgIGFkZFRvQ29kZVBvaW50ZXItPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4o
CisgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwgZGF0YVBv
aW50ZXJWYWx1ZSksCisgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhhZGRUb0NvZGVQb2ludGVyVGFr
ZW4pLCBGcmVxdWVudGVkQmxvY2soYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuKSk7CisgICAgYWRk
VG9Db2RlUG9pbnRlclRha2VuLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHBy
b2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyLAorICAgICAgICBhZGRUb0NvZGVQb2ludGVy
VGFrZW4tPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBCMzo6QWRkLCBPcmln
aW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwKKyAgICAgICAgICAgIGFkZFRvQ29kZVBvaW50ZXJUYWtl
bi0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgICAgICBwcm9jLCBNdWwsIE9yaWdpbigp
LAorICAgICAgICAgICAgICAgIGFkZFRvQ29kZVBvaW50ZXJUYWtlbi0+YXBwZW5kTmV3PE1lbW9y
eVZhbHVlPigKKyAgICAgICAgICAgICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwg
T3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUsIHNpemVvZihpbnRwdHJfdCkpLAorICAgICAgICAg
ICAgICAgIGFkZFRvQ29kZVBvaW50ZXJUYWtlbi0+YXBwZW5kSW50Q29uc3RhbnQoCisgICAgICAg
ICAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLCBwb2ludGVyVHlwZSgpLCBzaXplb2YoaW50cHRy
X3QpKSkpKTsKKyAgICBhZGRUb0NvZGVQb2ludGVyVGFrZW4tPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZGlzcGF0Y2gpKTsKKyAg
ICBhZGRUb0NvZGVQb2ludGVyTm90VGFrZW4tPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPigKKyAg
ICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIsCisgICAgICAgIGFkZFRvQ29k
ZVBvaW50ZXJOb3RUYWtlbi0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEIz
OjpBZGQsIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLAorICAgICAgICAgICAgYWRkVG9Db2Rl
UG9pbnRlck5vdFRha2VuLT5hcHBlbmRJbnRDb25zdGFudCgKKyAgICAgICAgICAgICAgICBwcm9j
LCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6ZW9mKGludHB0cl90KSAqIDIpKSk7CisgICAg
YWRkVG9Db2RlUG9pbnRlck5vdFRha2VuLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAg
ICAgcHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhkaXNwYXRjaCkpOworCisg
ICAgLy8gQWRkIDxvcGVyYW5kPjogYWRkcyA8b3BlcmFuZD4gdG8gdGhlIHNsb3QgcG9pbnRlZCB0
byBieSBEUC4KKyAgICBjb2RlUG9pbnRlclZhbHVlID0gYWRkVG9EYXRhLT5hcHBlbmROZXc8VmFy
aWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyKTsKKyAgICBk
YXRhUG9pbnRlclZhbHVlID0gYWRkVG9EYXRhLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJv
YywgQjM6OkdldCwgT3JpZ2luKCksIGRhdGFQb2ludGVyKTsKKyAgICBhZGRUb0RhdGEtPmFwcGVu
ZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgIHByb2MsIFN0b3JlLCBPcmlnaW4oKSwKKyAgICAg
ICAgYWRkVG9EYXRhLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgQjM6OkFk
ZCwgT3JpZ2luKCksCisgICAgICAgICAgICBhZGRUb0RhdGEtPmFwcGVuZE5ldzxNZW1vcnlWYWx1
ZT4oCisgICAgICAgICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCks
IGRhdGFQb2ludGVyVmFsdWUpLAorICAgICAgICAgICAgYWRkVG9EYXRhLT5hcHBlbmROZXc8TWVt
b3J5VmFsdWU+KAorICAgICAgICAgICAgICAgIHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9y
aWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLCBzaXplb2YoaW50cHRyX3QpKSksCisgICAgICAgIGRh
dGFQb2ludGVyVmFsdWUpOworICAgIGFkZFRvRGF0YS0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+
KAorICAgICAgICBwcm9jLCBTZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlciwKKyAgICAgICAgYWRk
VG9EYXRhLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgQjM6OkFkZCwgT3Jp
Z2luKCksIGNvZGVQb2ludGVyVmFsdWUsCisgICAgICAgICAgICBhZGRUb0RhdGEtPmFwcGVuZElu
dENvbnN0YW50KHByb2MsIE9yaWdpbigpLCBwb2ludGVyVHlwZSgpLCBzaXplb2YoaW50cHRyX3Qp
ICogMikpKTsKKyAgICBhZGRUb0RhdGEtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1
bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZGlzcGF0Y2gpKTsKKyAgICAKKyAgICAvLyBQ
cmludDogInByaW50cyIgdGhlIHZhbHVlIHBvaW50ZWQgdG8gYnkgRFAuIFdoYXQgdGhpcyBhY3R1
YWxseSBtZWFucyBpcyB0aGF0IHRoZSB2YWx1ZSBpcworICAgIC8vIGFwcGVuZGVkIHRvIHRoZSBz
dHJlYW0gdmVjdG9yIGJ5IHRoZSB0aHJlYWRlZEludGVycHJldGVyUHJpbnQgZnVuY3Rpb24uCisg
ICAgY29kZVBvaW50ZXJWYWx1ZSA9IHByaW50LT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJv
YywgQjM6OkdldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyKTsKKyAgICBkYXRhUG9pbnRlclZhbHVl
ID0gcHJpbnQtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPihwcm9jLCBCMzo6R2V0LCBPcmlnaW4o
KSwgZGF0YVBvaW50ZXIpOworICAgIHByaW50LT5hcHBlbmROZXc8Q0NhbGxWYWx1ZT4oCisgICAg
ICAgIHByb2MsIFZvaWQsIE9yaWdpbigpLAorICAgICAgICBwcmludC0+YXBwZW5kTmV3PENvbnN0
UHRyVmFsdWU+KAorICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksIGJpdHdpc2VfY2FzdDx2b2lk
Kj4odGhyZWFkZWRJbnRlcnByZXRlclByaW50KSksCisgICAgICAgIGNvbnRleHQsCisgICAgICAg
IHByaW50LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCks
IE9yaWdpbigpLCBkYXRhUG9pbnRlclZhbHVlKSk7CisgICAgcHJpbnQtPmFwcGVuZE5ldzxWYXJp
YWJsZVZhbHVlPigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIsCisg
ICAgICAgIHByaW50LT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgQjM6OkFk
ZCwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUsCisgICAgICAgICAgICBwcmludC0+YXBwZW5k
SW50Q29uc3RhbnQocHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBlKCksIHNpemVvZihpbnRwdHJf
dCkpKSk7CisgICAgcHJpbnQtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9y
aWdpbigpLCBGcmVxdWVudGVkQmxvY2soZGlzcGF0Y2gpKTsKKyAgICAKKyAgICAvLyBTdG9wOiBy
ZXR1cm5zLgorICAgIHN0b3AtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAorICAgICAgICBzdG9wLT5hcHBlbmRJbnRDb25zdGFudChwcm9j
LCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgMCkpOworICAgIAorICAgIGF1dG8gaW50ZXJwcmV0
ZXIgPSBjb21waWxlKHByb2MpOworICAgIAorICAgIENIRUNLKEFkZERQKTsKKyAgICBDSEVDSyhB
ZGRDUCk7CisgICAgQ0hFQ0soQWRkKTsKKyAgICBDSEVDSyhQcmludCk7CisgICAgQ0hFQ0soU3Rv
cCk7CisgICAgCisgICAgVmVjdG9yPGludHB0cl90PiBkYXRhOworICAgIFZlY3RvcjxpbnRwdHJf
dD4gY29kZTsKKyAgICBWZWN0b3I8aW50cHRyX3Q+IHN0cmVhbTsKKyAgICAKKyAgICBkYXRhLmFw
cGVuZCgxKTsKKyAgICBkYXRhLmFwcGVuZCgwKTsKKyAgICAKKyAgICBpZiAoc2hvdWxkQmVWZXJi
b3NlKCkpCisgICAgICAgIGRhdGFMb2coImRhdGEgPSAiLCBsaXN0RHVtcChkYXRhKSwgIlxuIik7
CisgICAgCisgICAgLy8gV2UnbGwgd3JpdGUgYSBwcm9ncmFtIHRoYXQgcHJpbnRzIHRoZSBudW1i
ZXJzIDEuLjEwMC4KKyAgICAvLyBXZSBleHBlY3QgRFAgdG8gcG9pbnQgYXQgIzAuCisgICAgY29k
ZS5hcHBlbmQoQWRkQ1ApOworICAgIGNvZGUuYXBwZW5kKDYpOyAvLyBnbyB0byBsb29wIGJvZHkK
KyAgICAKKyAgICAvLyBMb29wIHJlLWVudHJ5OgorICAgIC8vIFdlIGV4cGVjdCBEUCB0byBwb2lu
dCBhdCAjMSBhbmQgZm9yICMxIHRvIGJlIG9mZnNldCBieSAtMTAwLgorICAgIGNvZGUuYXBwZW5k
KEFkZCk7CisgICAgY29kZS5hcHBlbmQoMTAwKTsKKyAgICAKKyAgICBjb2RlLmFwcGVuZChBZGRE
UCk7CisgICAgY29kZS5hcHBlbmQoLTEpOworICAgIAorICAgIC8vIExvb3AgaGVhZGVyOgorICAg
IC8vIFdlIGV4cGVjdCBEUCB0byBwb2ludCBhdCAjMC4KKyAgICBjb2RlLmFwcGVuZChBZGREUCk7
CisgICAgY29kZS5hcHBlbmQoMSk7CisgICAgCisgICAgY29kZS5hcHBlbmQoQWRkKTsKKyAgICBj
b2RlLmFwcGVuZCgxKTsKKyAgICAKKyAgICBjb2RlLmFwcGVuZChQcmludCk7CisgICAgCisgICAg
Y29kZS5hcHBlbmQoQWRkKTsKKyAgICBjb2RlLmFwcGVuZCgtMTAwKTsKKyAgICAKKyAgICAvLyBX
ZSB3YW50IHRvIHN0b3AgaWYgaXQncyB6ZXJvIGFuZCBjb250aW51ZSBpZiBpdCdzIG5vbi16ZXJv
LiBBZGRDUCB0YWtlcyB0aGUgYnJhbmNoIGlmIGl0J3MKKyAgICAvLyBub24temVyby4KKyAgICBj
b2RlLmFwcGVuZChBZGRDUCk7CisgICAgY29kZS5hcHBlbmQoLTExKTsgLy8gZ28gdG8gbG9vcCBy
ZS1lbnRyeS4KKyAgICAKKyAgICBjb2RlLmFwcGVuZChTdG9wKTsKKyAgICAKKyAgICBpZiAoc2hv
dWxkQmVWZXJib3NlKCkpCisgICAgICAgIGRhdGFMb2coImNvZGUgPSAiLCBsaXN0RHVtcChjb2Rl
KSwgIlxuIik7CisgICAgCisgICAgQ0hFQ0soIWludm9rZTxpbnRwdHJfdD4oKmludGVycHJldGVy
LCBkYXRhLmRhdGEoKSwgY29kZS5kYXRhKCksICZzdHJlYW0pKTsKKyAgICAKKyAgICBDSEVDSyhz
dHJlYW0uc2l6ZSgpID09IDEwMCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDEwMDsg
KytpKQorICAgICAgICBDSEVDSyhzdHJlYW1baV0gPT0gaSArIDEpOworICAgIAorICAgIGlmIChz
aG91bGRCZVZlcmJvc2UoKSkKKyAgICAgICAgZGF0YUxvZygic3RyZWFtID0gIiwgbGlzdER1bXAo
c3RyZWFtKSwgIlxuIik7Cit9CisKIC8vIE1ha2Ugc3VyZSB0aGUgY29tcGlsZXIgZG9lcyBub3Qg
dHJ5IHRvIG9wdGltaXplIGFueXRoaW5nIG91dC4KIE5FVkVSX0lOTElORSBkb3VibGUgemVybygp
CiB7CkBAIC0xMzQ1NCw2ICsxMzY5MCw4IEBAIHZvaWQgcnVuKGNvbnN0IGNoYXIqIGZpbHRlcikK
ICAgICBSVU4odGVzdFNwaWxsVXNlTGFyZ2VyVGhhbkRlZigpKTsKIAogICAgIFJVTih0ZXN0TGF0
ZVJlZ2lzdGVyKCkpOworICAgIAorICAgIFJVTih0ZXN0VGhyZWFkZWRJbnRlcnByZXRlcigpKTsK
IAogICAgIGlmICh0YXNrcy5pc0VtcHR5KCkpCiAgICAgICAgIHVzYWdlKCk7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuaAkocmV2aXNpb24gMjAxNDk0KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMz
LDYgKzMzLDcgQEAKICNpbmNsdWRlICJBaXJTcGVjaWFsLmgiCiAjaW5jbHVkZSAiQWlyU3RhY2tT
bG90LmgiCiAjaW5jbHVkZSAiQWlyVG1wLmgiCisjaW5jbHVkZSAiQjNJbmRleE1hcC5oIgogI2lu
Y2x1ZGUgIkIzU3BhcnNlQ29sbGVjdGlvbi5oIgogI2luY2x1ZGUgIlJlZ2lzdGVyQXRPZmZzZXRM
aXN0LmgiCiAjaW5jbHVkZSAiU3RhY2tBbGlnbm1lbnQuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGUuY3BwCShyZXZpc2lvbiAyMDE0OTQpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDcsMTAgKzQ3LDEzIEBACiAjaW5jbHVkZSAiQWlyVmFsaWRhdGUuaCIKICNpbmNsdWRl
ICJCM0NvbW1vbi5oIgogI2luY2x1ZGUgIkIzSW5kZXhNYXAuaCIKKyNpbmNsdWRlICJCM1BvbHlK
dW1wVmFsdWUuaCIKICNpbmNsdWRlICJCM1Byb2NlZHVyZS5oIgogI2luY2x1ZGUgIkIzVGltaW5n
U2NvcGUuaCIKKyNpbmNsdWRlICJCM1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIkNDYWxsSGVs
cGVycy5oIgogI2luY2x1ZGUgIkRpc2FsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZS5oIgor
I2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7
IG5hbWVzcGFjZSBBaXIgewogCkBAIC0xODMsNyArMTg2LDggQEAgdm9pZCBnZW5lcmF0ZShDb2Rl
JiBjb2RlLCBDQ2FsbEhlbHBlcnMmIAogCiAgICAgZm9yIChCYXNpY0Jsb2NrKiBibG9jayA6IGNv
ZGUpIHsKICAgICAgICAgYmxvY2tKdW1wc1tibG9ja10ubGluaygmaml0KTsKLSAgICAgICAgYmxv
Y2tMYWJlbHNbYmxvY2tdID0gaml0LmxhYmVsKCk7CisgICAgICAgIENDYWxsSGVscGVyczo6TGFi
ZWwgbGFiZWwgPSBqaXQubGFiZWwoKTsKKyAgICAgICAgYmxvY2tMYWJlbHNbYmxvY2tdID0gbGFi
ZWw7CiAgICAgICAgIEFTU0VSVChibG9jay0+c2l6ZSgpID49IDEpOwogICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgYmxvY2stPnNpemUoKSAtIDE7ICsraSkgewogICAgICAgICAgICAg
SW5zdCYgaW5zdCA9IGJsb2NrLT5hdChpKTsKQEAgLTIxNSwyNiArMjE5LDU0IEBAIHZvaWQgZ2Vu
ZXJhdGUoQ29kZSYgY29kZSwgQ0NhbGxIZWxwZXJzJiAKICAgICAgICAgICAgIGFkZEl0ZW0oYmxv
Y2stPmxhc3QoKSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQotCisgICAgICAg
IAogICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAganVtcCA9IGJsb2NrLT5sYXN0KCkuZ2VuZXJh
dGUoaml0LCBjb250ZXh0KTsKLSAgICAgICAgc3dpdGNoIChibG9jay0+bnVtU3VjY2Vzc29ycygp
KSB7Ci0gICAgICAgIGNhc2UgMDoKLSAgICAgICAgICAgIEFTU0VSVCghanVtcC5pc1NldCgpKTsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIDE6Ci0gICAgICAgICAgICBsaW5rKGp1
bXAsIGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSAyOgotICAgICAgICAgICAgbGluayhqdW1wLCBibG9jay0+c3VjY2Vzc29yQmxvY2so
MCkpOwotICAgICAgICAgICAgaWYgKGJsb2NrLT5zdWNjZXNzb3JCbG9jaygxKSAhPSBjb2RlLmZp
bmROZXh0QmxvY2soYmxvY2spKQotICAgICAgICAgICAgICAgIGxpbmsoaml0Lmp1bXAoKSwgYmxv
Y2stPnN1Y2Nlc3NvckJsb2NrKDEpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZh
dWx0OgotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAvLyBUaGUganVtcCB3b24ndCBiZSBzZXQgZm9yIFBvbHlKdW1w
IGJlY2F1c2UgaXQgbGV0cyBpdHMgZmFpdGggaW4gdGhlIGFkZHJlc3Mgb3BlcmFuZAorICAgICAg
ICAvLyBndWlkZSB3aGVyZSBpdCBqdW1wcy4gSXQgd29uJ3QgYmUgc2V0IGZvciBPb3BzIGJlY2F1
c2UgdGhlbiBpdCB3b24ndCBoYXZlIGFueSBzdWNjZXNzb3JzLgorICAgICAgICBpZiAoanVtcC5p
c1NldCgpKSB7CisgICAgICAgICAgICBzd2l0Y2ggKGJsb2NrLT5udW1TdWNjZXNzb3JzKCkpIHsK
KyAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICBsaW5rKGp1bXAsIGJsb2NrLT5z
dWNjZXNzb3JCbG9jaygwKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBj
YXNlIDI6CisgICAgICAgICAgICAgICAgbGluayhqdW1wLCBibG9jay0+c3VjY2Vzc29yQmxvY2so
MCkpOworICAgICAgICAgICAgICAgIGlmIChibG9jay0+c3VjY2Vzc29yQmxvY2soMSkgIT0gY29k
ZS5maW5kTmV4dEJsb2NrKGJsb2NrKSkKKyAgICAgICAgICAgICAgICAgICAgbGluayhqaXQuanVt
cCgpLCBibG9jay0+c3VjY2Vzc29yQmxvY2soMSkpOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQogICAgICAg
ICB9CiAgICAgICAgIGFkZEl0ZW0oYmxvY2stPmxhc3QoKSk7CiAgICAgfQorICAgIAorICAgIC8v
IFRha2UgY2FyZSBvZiBQb2x5SnVtcC4gV2UgZG8gdGhpcyBsYXN0IGJlY2F1c2UgaXQgcmVsaWVz
IG9uIGtub3dpbmcgd2hlcmUgYWxsIG9mIHRoZSBiYXNpYworICAgIC8vIGJsb2NrIGxhbmRlZC4K
KyAgICBmb3IgKEJhc2ljQmxvY2sqIGJsb2NrIDogY29kZSkgeworICAgICAgICBpZiAoYmxvY2st
Pmxhc3QoKS5vcGNvZGUgIT0gUG9seUp1bXApCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAg
ICAgCisgICAgICAgIFBvbHlKdW1wVmFsdWUqIHBvbHlKdW1wID0gYmxvY2stPmxhc3QoKS5vcmln
aW4tPmFzPFBvbHlKdW1wVmFsdWU+KCk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKHBvbHlKdW1w
LT5udW1TdWNjZXNzb3JzKCkgPT0gYmxvY2stPm51bVN1Y2Nlc3NvcnMoKSk7CisgICAgICAgIAor
ICAgICAgICBSZWZQdHI8U2hhcmVkVGFzazxQb2x5SnVtcFZhbHVlOjpDYWxsYmFja0Z1bmN0aW9u
VHlwZT4+IHRhc2sgPSBwb2x5SnVtcC0+Y2FsbGJhY2tUYXNrKCk7CisgICAgICAgIGlmICghdGFz
aykKKyAgICAgICAgICAgIGNvbnRpbnVlOyAvLyBUaGlzIHdvdWxkIGJlIHdlaXJkLCBidXQgd2Ug
YWxsb3cgaXQuCisgICAgICAgIAorICAgICAgICBWZWN0b3I8Q0NhbGxIZWxwZXJzOjpMYWJlbD4g
bGFiZWxzOworICAgICAgICBmb3IgKEJhc2ljQmxvY2sqIHN1Y2Nlc3NvciA6IGJsb2NrLT5zdWNj
ZXNzb3JCbG9ja3MoKSkKKyAgICAgICAgICAgIGxhYmVscy5hcHBlbmQoYmxvY2tMYWJlbHNbc3Vj
Y2Vzc29yXSk7CisgICAgICAgIAorICAgICAgICBqaXQuYWRkTGlua1Rhc2soCisgICAgICAgICAg
ICBbPV0gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsKKyAgICAgICAgICAgICAgICBWZWN0b3I8
TWFjcm9Bc3NlbWJsZXJDb2RlUHRyPiBwb2ludGVyczsKKyAgICAgICAgICAgICAgICBmb3IgKEND
YWxsSGVscGVyczo6TGFiZWwgbGFiZWwgOiBsYWJlbHMpCisgICAgICAgICAgICAgICAgICAgIHBv
aW50ZXJzLmFwcGVuZChsaW5rQnVmZmVyLmxvY2F0aW9uT2YobGFiZWwpKTsKKyAgICAgICAgICAg
ICAgICAKKyAgICAgICAgICAgICAgICB0YXNrLT5ydW4ocG9pbnRlcnMpOworICAgICAgICAgICAg
fSk7CisgICAgfQogCiAgICAgcGNUb09yaWdpbk1hcC5hcHBlbmRJdGVtKGppdC5sYWJlbCgpLCBP
cmlnaW4oKSk7CiAgICAgLy8gRklYTUU6IE1ha2UgbGF0ZSBwYXRocyBoYXZlIE9yaWdpbnM6IGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM2ODkKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0LmNwcAkocmV2aXNpb24gMjAxNDk0KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNDUsNiArNDUsMTEgQEAgYm9vbCBJbnN0OjpoYXNBcmdFZmZlY3RzKCkKICAgICByZXR1cm4g
cmVzdWx0OwogfQogCitib29sIEluc3Q6OmlzQ2xvbmVhYmxlKCkKK3sKKyAgICByZXR1cm4gIW9y
aWdpbiB8fCBvcmlnaW4tPmlzQ2xvbmVhYmxlKCk7Cit9CisKIHZvaWQgSW5zdDo6ZHVtcChQcmlu
dFN0cmVhbSYgb3V0KSBjb25zdAogewogICAgIG91dC5wcmludChvcGNvZGUsICIgIiwgbGlzdER1
bXAoYXJncykpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0LmgJKHJl
dmlzaW9uIDIwMTQ5NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xODcsNiArMTg3LDEwIEBAIHB1YmxpYzoKICAgICAvLyAgICAg
QWRkIFRtcDEsIFRtcDIsIFRtcDMKICAgICAvLyByZXR1cm5zIDIgaWYgMCBhbmQgMSBiZW5lZml0
IGZyb20gYWxpYXNpbmcgdG8gVG1wMy4KICAgICBPcHRpb25hbDx1bnNpZ25lZD4gc2hvdWxkVHJ5
QWxpYXNpbmdEZWYoKTsKKyAgICAKKyAgICAvLyBTb21lIGluc3R1Y3Rpb25zIHdpbGwgcmVmdXNl
IHRvIGFsbG93IGNsb25pbmcuIElmIHRoaXMgcmV0dXJucyBmYWxzZSwgeW91IG11c3QgbWFrZSBz
dXJlIHRoYXQKKyAgICAvLyB5b3UgbmV2ZXIgaW50cm9kdWNlIGNvcGllcyBvZiB0aGUgaW5zdHJ1
Y3Rpb24uCisgICAgYm9vbCBpc0Nsb25lYWJsZSgpOwogCiAgICAgdm9pZCBkdW1wKFByaW50U3Ry
ZWFtJikgY29uc3Q7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bj
b2RlLm9wY29kZXMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9B
aXJPcGNvZGUub3Bjb2RlcwkocmV2aXNpb24gMjAxNDk0KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bjb2Rlcwkod29ya2luZyBjb3B5KQpAQCAtODM1LDYgKzgz
NSwxNCBAQCBNb3ZlRG91YmxlQ29uZGl0aW9uYWxseUZsb2F0IFU6RzozMiwgVTpGCiAKIEp1bXAg
L2JyYW5jaAogCisjIFRoaXMgbWFzcXVlcmFkZXMgYXMgYSBub24tYnJhbmNoIHRlcm1pbmFsIGJl
Y2F1c2UgaXQgZG9lc24ndCBuZWVkIHRoZSB0cmFkaXRpb25hbCBzb3J0IG9mIGxpbmtpbmcuCisj
ICJCcmFuY2giIGluIHRoaXMgY29udGV4dCBqdXN0IG1lYW5zIHRoYXQgaXQncyBhIHRlcm1pbmFs
IHRoYXQgcmV0dXJucyBhIEp1bXAgdGhhdCBuZWVkcyB0byBiZQorIyBsaW5rZWQuIEluc3RlYWQs
IEFpcjo6Z2VuZXJhdGUoKSBoYXMgYSBzcGVjaWFsLWNhc2UgZm9yIFBvbHlKdW1wLgorUG9seUp1
bXAgVTpHOlB0ciAvdGVybWluYWwKKyAgICBUbXAgYXMganVtcAorICAgIHg4NjogQWRkciBhcyBq
dW1wCisgICAgeDg2OiBJbmRleCBhcyBqdW1wCisKIFJldDMyIFU6RzozMiAvcmV0dXJuCiAgICAg
VG1wCiAKSW5kZXg6IFdlYnNpdGVzL3dlYmtpdC5vcmcvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYnNpdGVzL3dlYmtpdC5vcmcvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMDE0OTQpCisrKyBXZWJz
aXRlcy93ZWJraXQub3JnL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBA
CisyMDE2LTA1LTI5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
SW1wbGVtZW50IHRhYmxlLWJhc2VkIHN3aXRjaGVzIGluIEIzL0FpcgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxMTQxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBVcGRhdGUgZG9jdW1lbnRh
dGlvbiBmb3IgdGhlIG5ldyBQb2x5SnVtcCBvcGNvZGUuCisKKyAgICAgICAgKiBkb2NzL2IzL2lu
dGVybWVkaWF0ZS1yZXByZXNlbnRhdGlvbi5odG1sOgorCiAyMDE2LTA1LTIzICBKb24gRGF2aXMg
IDxqb25kQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc3ludGF4IGhpZ2hnbGlnaHRpbmcgZm9y
IEVTNiAibGV0IiwgImNvbnN0IiBhbmQgIm9mIiBrZXl3b3Jkcy4KSW5kZXg6IFdlYnNpdGVzL3dl
YmtpdC5vcmcvZG9jcy9iMy9pbnRlcm1lZGlhdGUtcmVwcmVzZW50YXRpb24uaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJzaXRlcy93ZWJraXQub3JnL2RvY3MvYjMvaW50ZXJtZWRpYXRlLXJlcHJlc2Vu
dGF0aW9uLmh0bWwJKHJldmlzaW9uIDIwMTQ5NCkKKysrIFdlYnNpdGVzL3dlYmtpdC5vcmcvZG9j
cy9iMy9pbnRlcm1lZGlhdGUtcmVwcmVzZW50YXRpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
NDEyLDExICs0MTIsMTIgQEAKICAgICAgICAgdGhlIENDYWxsVmFsdWUgY2xhc3MuPC9kZD4KIAog
ICAgICAgPGR0PlQxIFBhdGNocG9pbnQoW1QyLCBbVDMsIC4uLl1dKTwvZHQ+Ci0gICAgICA8ZGQ+
QSBQYXRjaHBvaW50IGlzIGEgY3VzdG9taXphYmxlIHZhbHVlLiAgUGF0Y2hwb2ludHMgdGFrZSB6
ZXJvIG9yIG1vcmUgdmFsdWVzIG9mIGFueQotICAgICAgICB0eXBlIGFuZCByZXR1cm4gYW55IHR5
cGUuICBBIFBhdGNocG9pbnQncyBiZWhhdmlvciBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBnZW5lcmF0
b3IKLSAgICAgICAgb2JqZWN0LiAgVGhlIGdlbmVyYXRvciBpcyBhIEMrKyBsYW1iZGEgdGhhdCBn
ZXRzIGNhbGxlZCBkdXJpbmcgY29kZSBnZW5lcmF0aW9uLiAgSXQgZ2V0cwotICAgICAgICBwYXNz
ZWQgYW4gYXNzZW1ibGVyIGluc3RhbmNlIChzcGVjaWZpY2FsbHksIENDYWxsSGVscGVycyYpIGFu
ZCBhbiBvYmplY3QgZGVzY3JpYmluZwotICAgICAgICB3aGVyZSB0byBmaW5kIGFsbCBvZiB0aGUg
aW5wdXQgdmFsdWVzIGFuZCB3aGVyZSB0byBwdXQgdGhlIHJlc3VsdC4gIEhlcmUncyBhbiBleGFt
cGxlOgorICAgICAgPGRkPgorICAgICAgICA8cD5BIFBhdGNocG9pbnQgaXMgYSBjdXN0b21pemFi
bGUgdmFsdWUuICBQYXRjaHBvaW50cyB0YWtlIHplcm8gb3IgbW9yZSB2YWx1ZXMgb2YgYW55Cisg
ICAgICAgICAgdHlwZSBhbmQgcmV0dXJuIGFueSB0eXBlLiAgQSBQYXRjaHBvaW50J3MgYmVoYXZp
b3IgaXMgZGV0ZXJtaW5lZCBieSB0aGUgZ2VuZXJhdG9yCisgICAgICAgICAgb2JqZWN0LiAgVGhl
IGdlbmVyYXRvciBpcyBhIEMrKyBsYW1iZGEgdGhhdCBnZXRzIGNhbGxlZCBkdXJpbmcgY29kZSBn
ZW5lcmF0aW9uLiAgSXQgZ2V0cworICAgICAgICAgIHBhc3NlZCBhbiBhc3NlbWJsZXIgaW5zdGFu
Y2UgKHNwZWNpZmljYWxseSwgQ0NhbGxIZWxwZXJzJikgYW5kIGFuIG9iamVjdCBkZXNjcmliaW5n
CisgICAgICAgICAgd2hlcmUgdG8gZmluZCBhbGwgb2YgdGhlIGlucHV0IHZhbHVlcyBhbmQgd2hl
cmUgdG8gcHV0IHRoZSByZXN1bHQuICBIZXJlJ3MgYW4gZXhhbXBsZTo8L3A+CiAgCiAgICAgICAg
IDxwcmU+PGNvZGU+UGF0Y2hwb2ludFZhbHVlKiBwYXRjaHBvaW50ID0gYmxvY2stPmFwcGVuZE5l
dyZsdDtQYXRjaHBvaW50VmFsdWUmZ3Q7KHByb2MsIEludDMyLCBPcmlnaW4oKSk7CiBwYXRjaHBv
aW50LT5hcHBlbmQoQ29uc3RyYWluZWRWYWx1ZShhcmcxLCBWYWx1ZVJlcDo6U29tZVJlZ2lzdGVy
KSk7CkBAIC01MjYsNiArNTI3LDM5IEBAIHBhdGNocG9pbnQtPnNldEdlbmVyYXRvcigKICAgICAg
ICAgYWxzbyBjb250YWlucyBhIGZhbGwtdGhyb3VnaCB0YXJnZXQgaW4gY2FzZSB0aGUgY2hpbGQg
aGFzIGEgdmFsdWUgdGhhdCB3YXNuJ3QgbWVudGlvbmVkCiAgICAgICAgIGluIHRoZSBjYXNlcyBs
aXN0LiAgTXVzdCB1c2UgdGhlIFN3aXRjaFZhbHVlIGNsYXNzLiAgTXVzdCBhcHBlYXIgYXQgdGhl
IGVuZCBvZiB0aGUgYmFzaWMKICAgICAgICAgYmxvY2suPC9kZD4KKyAgICAgIAorICAgICAgPGR0
PlZvaWQgUG9seUp1bXAoSW50UHRyLCBibG9ja3MuLi4pPC9kdD4KKyAgICAgIDxkZD4KKyAgICAg
ICAgPHA+SnVtcHMgdG8gdGhlIGdpdmVuIGFkZHJlc3MuIFRoZSBjb21waWxlciB3aWxsIGFzc3Vt
ZSB0aGF0IHRoaXMganVtcHMgdG8gb25lIG9mIHRoZSBnaXZlbgorICAgICAgICAgIGJsb2Nrcy4g
VGhlIGNvbXBpbGVyIG1ha2VzIG5vIGF0dGVtcHQgdG8gcHJvdmUgb3IgdmFsaWRhdGUgdGhhdCB0
aGUgcGFzc2VkIGp1bXAgYWRkcmVzcyBpcworICAgICAgICAgIGFjdHVhbGx5IHRoZSBhZGRyZXNz
IG9mIGFueSBvZiB0aG9zZSBibG9ja3MuIE5vbnNlbnNpY2FsIHRoaW5ncyB3aWxsIGhhcHBlbiBp
ZiB0aGUgcGFzc2VkCisgICAgICAgICAgYWRkcmVzcyBpcyBub3QgdGhlIGFkZHJlc3Mgb2Ygb25l
IG9mIHRoZSBibG9ja3MgaW4gdGhlIHN1Y2Nlc3NvciBsaXN0LiBZb3UgY2FuIGFycmFuZ2UgdG8K
KyAgICAgICAgICBnZXQgdGhlIGFkZHJlc3NlcyBvZiBibG9ja3MgYnkgcGFzc2luZyBhIGNhbGxi
YWNrIHRvIFBvbHlKdW1wLiBUaGlzIGlzIHVzZWQgaW50ZXJuYWxseQorICAgICAgICAgIGZvciBs
b3dlcmluZyBTd2l0Y2ggb3Bjb2Rlcy4gWW91IGNhbiBhbHNvIHVzZSBpdCBkaXJlY3RseS48L3A+
CisgICAgICAKKyAgICAgICAgPHA+UG9seUp1bXAgaXMgbm90IGNsb25lYWJsZS4gRm9yIGVhY2gg
UG9seUp1bXAgeW91IGNyZWF0ZSwgdGhlcmUgd2lsbCBiZSBvbmUgaW5kaXJlY3QKKyAgICAgICAg
ICBqdW1wIGdlbmVyYXRlZC4gVGhpcyBpcyBuZWNlc3NhcnkgdG8gZW5zdXJlIHNvdW5kbmVzcyBv
ZiB0aGUgY2FsbGJhY2suIElmIHRoZSBQb2x5SnVtcAorICAgICAgICAgIGNvdWxkIGJlIGNsb25l
ZCwgdGhlbiB0aGUgY2FsbGJhY2sgd291bGQgZ2V0IGNhbGxlZCBmb3IgZWFjaCBjbG9uZS4gUHJl
c3VtYWJseSwgeW91J2QKKyAgICAgICAgICBpbXBsZW1lbnQgdGhlIGNhbGxiYWNrIGJ5IHBvcHVs
YXRpbmcgc29tZSB0YWJsZSB3aXRoIHRoZSBhZGRyZXNzZXMgb2YgdGhlIGJsb2Nrcy4gSWYgdGhl
CisgICAgICAgICAgY2FsbGJhY2sgZ2V0cyBjYWxsZWQgbXVsdGlwbGUgdGltZXMgdGhlbiBpdCBt
YXkgcmV0dXJuIGRpZmZlcmVudCBhZGRyZXNzZXMgZWFjaCB0aW1lIC0KKyAgICAgICAgICBzaW5j
ZSBhZnRlciBjbG9uaW5nIGEgUG9seUp1bXAsIHRoZSBjb21waWxlciBtYXkgcmV0YXJnZXQgYW55
IG9mIGl0cyBzdWNjZXNzb3IgZWRnZXMuCisgICAgICAgICAgVGhpcyB3b3VsZCBiZSBjb25mdXNp
bmcsIHNpbmNlIHRoZW4geW91IHdvdWxkbid0IGtub3cgd2hhdCB0byBkbyB3aXRoIGRpc2NyZXBh
bmNpZXMgYmV0d2VlbgorICAgICAgICAgIGFkZHJlc3NlcyByZXR1cm5lZCBieSB0aGUgdmFyaW91
cyBjYWxscyB0byB0aGUgY2FsbGJhY2suIERpc2FsbG93aW5nIGNsb25pbmcgb2YgUG9seUp1bXAK
KyAgICAgICAgICBzb2x2ZXMgdGhpcyBwcm9ibGVtLjwvcD4KKyAgICAgICAgCisgICAgICAgIDxw
PkEgY2xvc2VseSByZWxhdGVkIHByb2JsZW0gaXMgdGhhdCBpZiB5b3UgZW1pdCBtdWx0aXBsZSBQ
b2x5SnVtcCBpbnN0cnVjdGlvbnMsIHRoZW4gZXZlbgorICAgICAgICAgIGlmIHRoZXkgaW5pdGlh
bGx5IHNoYXJlIHRoZSBzYW1lIHN1Y2Nlc3NvcnMsIHlvdSBjYW5ub3QgZ3VhcmFudGVlIHRoYXQg
dGhleSB3aWxsIGNvbnRpbnVlCisgICAgICAgICAgdG8gc2hhcmUgdGhlIHNhbWUgc3VjY2Vzc29y
cyBhZnRlciBvcHRpbWl6YXRpb24uIFRoaXMgbWVhbnMgdGhhdCBQb2x5SnVtcCBjYW5ub3QKKyAg
ICAgICAgICBjdXJyZW50bHkgYmUgdXNlZCBmb3IgaW1wbGVtZW50aW5nIGRpcmVjdCB0aHJlYWRl
ZCBpbnRlcnByZXRlcnMsIGF0IGxlYXN0IG5vdCB0aGUgY2xhc3NpYworICAgICAgICAgIGtpbmQ6
IHRvIG1ha2UgaXQgd29yaywgeW91IGhhdmUgdG8gaGF2ZSBhIHNoYXJlZCBkaXNwYXRjaCBibG9j
ayBzbyB0aGF0IHlvdSBoYXZlIGEgc2luZ2xlCisgICAgICAgICAgUG9seUp1bXAuIFRoaXMgbWln
aHQgYmUgYmV0dGVyIHRoYW4gYSBTd2l0Y2gtYmFzZWQgaW50ZXJwcmV0ZXIsIGJ1dCBpdCdzIGRl
ZmluaXRlbHkgbm90CisgICAgICAgICAgYXMgZ29vZCBhcyB3aGF0IHlvdSdkIGdldCB3aXRoIEdD
Qy1zdHlsZSBjb21wdXRlZCBnb3RvLjwvcD4KKyAgICAgICAgCisgICAgICAgIDxwPlBvbHlKdW1w
IGlzIHNvIG5hbWVkIHRvIGF2b2lkIGNvbmZ1c2lvbiB3aXRoIGNvbXB1dGVkIGdvdG9zIGFuZCBp
bmRpcmVjdCBicmFuY2hlcyBpbgorICAgICAgICAgIG90aGVyIGNvbXBpbGVycy4gSXQgaGFzIHNp
Z25pZmljYW50IHJlc3RyaWN0aW9ucyB0aGF0IHRob3NlIG9wZXJhdGlvbnMgZG8gbm90IGhhdmUu
IFRoZXNlCisgICAgICAgICAgcmVzdHJpY3Rpb25zIG1ha2UgaXQgZWFzaWVyIGZvciB0aGUgb3B0
aW1pemVyIHRvIHdvcmsgd2l0aCBzaW5jZSB0aGUgY29udHJvbCBmbG93IGdldHMgdG8KKyAgICAg
ICAgICBiZSBleHBsaWNpdCAoUG9seUp1bXAgaGFzIGEgZmluaXRlIHNldCBvZiBzdWNjZXNzb3Jz
IGxpa2UgYW55IG90aGVyIGJsb2NrIHRlcm1pbmFsKS48L3A+CisgICAgICA8L2RkPgogCiAgICAg
ICA8ZHQ+Vm9pZCBSZXR1cm4oVCk8L2R0PgogICAgICAgPGRkPldvcmtzIGZvciBhbnkgdHlwZSBl
eGNlcHQgVm9pZC4gIFJldHVybnMgdGhlIGdpdmVuIHZhbHVlIGFuZCB0ZXJtaW5hdGVzIHRoZSBw
cm9jZWR1cmUuCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMDE0OTQpCisrKyBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxNi0wNS0yOSAgRmlsaXAg
UGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCB0YWJsZS1iYXNl
ZCBzd2l0Y2hlcyBpbiBCMy9BaXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1MTE0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICoganMvcmVncmVzcy9iaWdzd2l0Y2gtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBqcy9yZWdyZXNzL2JpZ3N3aXRjaC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBq
cy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9iaWdzd2l0Y2guanM6IEFkZGVkLgorICAgICAgICAoZm9v
KToKKwogMjAxNi0wNS0yNSAgU2thY2hrb3YgT2xla3NhbmRyICA8Z3NrYWNoa292QGdtYWlsLmNv
bT4KIAogICAgICAgICBbRVNOZXh0XSBTdXBwb3J0IHRyYWlsaW5nIGNvbW1hcyBpbiBmdW5jdGlv
biBwYXJhbSBsaXN0cwpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2gtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNo
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmln
c3dpdGNoLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACitKU1Jl
Z3Jlc3MvYmlnc3dpdGNoCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5v
IGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLmh0bWwJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVU
Ri8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0ic2NyaXB0LXRlc3RzL2JpZ3N3aXRjaC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9iaWdzd2l0Y2gu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvYmln
c3dpdGNoLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQt
dGVzdHMvYmlnc3dpdGNoLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjExIEBACitmdW5j
dGlvbiBmb28obykgeworICAgIHZhciByZXN1bHQgPSAwOworICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgMTAwMDsgKytpKSB7CisgICAgICAgIHZhciB2YWx1ZSA9IGkgJiA2MzsKKyAgICAgICAgc3dp
dGNoICh2YWx1ZSkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICByZXN1bHQgKz0gby5h
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLmI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAg
ICAgcmVzdWx0ICs9IG8uYzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM6Cisg
ICAgICAgICAgICByZXN1bHQgKz0gby5kOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgNDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmU7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSA1OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZjsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIDY6CisgICAgICAgICAgICByZXN1bHQgKz0gby5nOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA4OgorICAgICAgICAgICAgcmVzdWx0
ICs9IG8uaTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDk6CisgICAgICAgICAg
ICByZXN1bHQgKz0gby5qOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTA6Cisg
ICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgMTE6CisgICAgICAgICAgICByZXN1bHQgKz0gby5hOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgMTI6CisgICAgICAgICAgICByZXN1bHQgKz0gby5iOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgMTM6CisgICAgICAgICAgICByZXN1bHQgKz0gby5jOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTQ6CisgICAgICAgICAgICByZXN1bHQgKz0g
by5kOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTU6CisgICAgICAgICAgICBy
ZXN1bHQgKz0gby5lOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTY6CisgICAg
ICAgICAgICByZXN1bHQgKz0gby5mOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
MTc6CisgICAgICAgICAgICByZXN1bHQgKz0gby5nOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgMTg6CisgICAgICAgICAgICByZXN1bHQgKz0gby5oOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgMTk6CisgICAgICAgICAgICByZXN1bHQgKz0gby5pOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjA6CisgICAgICAgICAgICByZXN1bHQgKz0gby5q
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjE6CisgICAgICAgICAgICByZXN1
bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjI6CisgICAgICAg
ICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjM6
CisgICAgICAgICAgICByZXN1bHQgKz0gby5hOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgMjQ6CisgICAgICAgICAgICByZXN1bHQgKz0gby5iOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgMjU6CisgICAgICAgICAgICByZXN1bHQgKz0gby5jOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjY6CisgICAgICAgICAgICByZXN1bHQgKz0gby5kOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjc6CisgICAgICAgICAgICByZXN1bHQg
Kz0gby5lOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjg6CisgICAgICAgICAg
ICByZXN1bHQgKz0gby5mOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjk6Cisg
ICAgICAgICAgICByZXN1bHQgKz0gby5nOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgMzA6CisgICAgICAgICAgICByZXN1bHQgKz0gby5oOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgMzE6CisgICAgICAgICAgICByZXN1bHQgKz0gby5pOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgMzI6CisgICAgICAgICAgICByZXN1bHQgKz0gby5qOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzM6CisgICAgICAgICAgICByZXN1bHQgKz0g
by5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzQ6CisgICAgICAgICAgICBy
ZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzU6CisgICAg
ICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
MzY6CisgICAgICAgICAgICByZXN1bHQgKz0gby5hOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgMzc6CisgICAgICAgICAgICByZXN1bHQgKz0gby5iOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgMzg6CisgICAgICAgICAgICByZXN1bHQgKz0gby5jOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzk6CisgICAgICAgICAgICByZXN1bHQgKz0gby5k
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDA6CisgICAgICAgICAgICByZXN1
bHQgKz0gby5lOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDE6CisgICAgICAg
ICAgICByZXN1bHQgKz0gby5mOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDI6
CisgICAgICAgICAgICByZXN1bHQgKz0gby5nOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgNDM6CisgICAgICAgICAgICByZXN1bHQgKz0gby5oOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgNDQ6CisgICAgICAgICAgICByZXN1bHQgKz0gby5pOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDU6CisgICAgICAgICAgICByZXN1bHQgKz0gby5qOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDY6CisgICAgICAgICAgICByZXN1bHQg
Kz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDc6CisgICAgICAgICAg
ICByZXN1bHQgKz0gby5pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDg6Cisg
ICAgICAgICAgICByZXN1bHQgKz0gby5qOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgNDk6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgNTA6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgNTE6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTI6CisgICAgICAgICAgICByZXN1bHQgKz0g
by5hOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTM6CisgICAgICAgICAgICBy
ZXN1bHQgKz0gby5iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTQ6CisgICAg
ICAgICAgICByZXN1bHQgKz0gby5jOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
NTU6CisgICAgICAgICAgICByZXN1bHQgKz0gby5kOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgNTY6CisgICAgICAgICAgICByZXN1bHQgKz0gby5lOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgNTc6CisgICAgICAgICAgICByZXN1bHQgKz0gby5mOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTg6CisgICAgICAgICAgICByZXN1bHQgKz0gby5n
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTk6CisgICAgICAgICAgICByZXN1
bHQgKz0gby5oOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNjA6CisgICAgICAg
ICAgICByZXN1bHQgKz0gby5pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNjE6
CisgICAgICAgICAgICByZXN1bHQgKz0gby5qOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgNjI6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXN1bHQgKz0gby56OworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworKGZ1
bmN0aW9uKCkgeworICAgIHZhciBvID0ge2E6MSwgYjoyLCBjOjMsIGQ6NCwgZTo1LCBmOjYsIGc6
NywgaDo4LCBpOjksIGo6MTAsIGs6MTEsIHo6MTAwfTsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpCisgICAgICAgIHJlc3VsdCArPSBmb28o
byk7CisgICAgaWYgKHJlc3VsdCAhPSA3OTY2MDAwMCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBi
YWQgcmVzdWx0OiAiICsgcmVzdWx0OworfSkoKTsKKwo=
</data>
<flag name="commit-queue"
          id="304057"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>280063</attachid>
            <date>2016-05-29 12:52:31 -0700</date>
            <delta_ts>2016-05-29 13:33:56 -0700</delta_ts>
            <desc>Archive of layout-test-results from ews113 for mac-yosemite</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>1914373</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">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
CQADczpLV4s+S1d1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAkl69SKNX/ehQAAAAjgAAADIAHABk
aXNwbGF5bGlzdHMvZXh0ZW50LWluY2x1ZGVzLXRyYW5zZm9ybXMtc3RkZXJyLnR4dFVUCQADczpL
V3M6S1d1eAsAAQT1AQAABBQAAABzL0osyMhMLnbOzytJrSixskpPLXEO8dXQVMgsVsjLL1GoTC1R
SM7PLUgsyUzKSVUozyzJUChKTc4vSsnMSwfKgLUV63G5oxtUjGYQMYYAAFBLAwQUAAIACACSXr1I
8paV1UcAAABJAAAAKQAcAGRpc3BsYXlsaXN0cy9sYXllci1kaXNwYXktbGlzdC1zdGRlcnIudHh0
VVQJAANzOktXczpLV3V4CwABBPUBAAAEFAAAAHMvSizIyEwuds7PK0mtKLGySk8tcQ7x1dBUyCxW
yMsvUahMLVFIzs8tSCzJTMpJVSjPLMlQKEpNzi9KycxLB8qAtRXrcQEAUEsDBBQAAgAIAEBhvUik
p35xc0sAAOSfAQAiABwARHVtcFJlbmRlclRyZWUtNjg2MDItY3Jhc2gtbG9nLnR4dFVUCQADiD5L
V4g+S1d1eAsAAQT1AQAABBQAAADsXW1X28iS/rz6Ff1hTy4kMai79dLyYZNjy3bCDG+LgczZOTk6
LakF2siSrywT+PdbLflV2AERuHd20swcMGqp6qnq7qp6SkE6y7NATCZttP7Vm47G5yINRX6RC4H+
tJilk6/aGS9u6qfC1/5VlkxHYrJ/dXp0edzff7u/fr12GIq0iKNY5O3tWrQrkU/iLK0r+Pjxo+Zm
oUAX92OxPvgHs1qWgXZOeBHfil3Al4MidFYz6uy+uMnSygr8VTsXk3GWTmI/WRM3uUF/EhOsvJyI
HB326jhMHWtajxdi/yIe1YAQHVst3WwRB2HcNlmb0j2DYtTSbV3XTodok23HPEAw9AfC+h78b6Id
bAywjekuQBxnefHgKoy1Tpql96NsOkGXlysYexRb2OzqLdvsOC3cs9yWZWGn5Vp21x707E7X7Gma
JpGjznf+TaBhnAYCdbOsaCPq6LqOJiLI0nCiaW7OJzciRBc3ueDhUruF0ODiCH3J8m9JPCnKD+Cq
6jRN698FYlwA3vWZ6v/het1Oz+u4bn84RDvDw0/D/qer3ZXz5fQupuv3/vmJd3hy1Tk6hIt6vXN5
FS+QfqfPvnyfh74QkaZdHaNzcQ0iJuhE8BzOmY+1tVbrA9KkQM+76P9x8WDVzoRhPWTwTddbKwc4
lw75EyHLtn7/ivLW3X7+/Q4Nj//LPf2yYcGDZ0snIL3dRr14MuZFcIP+ORVT8EOQjfb4eJyIvRGP
01ZRuUuvljba/vUflcUUO5EfMuxT3UQ6eodMw7QINphjGoyZGm4oSPdNGq0JYsxxsKMROHWJ9Td+
y4dBHo8LN8vFmqDSScLBgQMWJ0mcFh5su/weRBLbsW2NNpVkckOg21FfSrnIlheAREoNzWgmzyY4
FBz9NnTb7d8OL+TqarfFnQimhdgpj14dv31fjUOsKDKXJ8kg5yPxdlfagJlmNtNo8ZAZQSXxMC1E
Ps4FfK9pBV3XoKVfHuMQfuYg5JFhAaFlfuC34an/vyIoSjwGRCXNagZIJzCjeiVM3PJkyucgHuga
ZtM8EGWEhf0/Kd4sMFzBdeI9+nIxaLdPIGaEZ0V+MBMy27of3pQIma7ZjQESiD+ltHGeRXEiwv6P
gZ6Vp8Xp9bngkyx9OfiOobE19F+Ev4SNHqCH5Woz3fHR7Dyp7Bi2dhUDFrj//YbZkFM2Qtu7aTO8
qzlNrTaFzpZWzycYdm2WJOVynxl6mEJuSMKd2qkbTFqc0Ts9/pIDEJGXl64OLazqiYLHyaTcFRQT
yCU1BHvBeNzGFmRQrDc1LSLhU0xrYtNG4Bbehtt2ADduhpuZJg3quPuJGEFEXoSf6uijyMslY7A5
vJmUEhvkDsBGmmAz7MjXV7F9vjg+qiSfT9N0JTqeQQ0Iq78a66ThPIH2b0H9EvXaaSVYKou/utjK
l4YBeGlDvFz4xlPwcijL0utukgXfFoB2SkA22QaI6ADIaOpAy6TPBTQpETnONkCO9JDZFJANAh8H
NEPwhccF4Blk+VHGV6KBywOoL6EOL1fgbDvTLUCJbgJQqxlQgv3QWgfay4KpXM/SWRJqmgEluR/E
aSyL3R+CI85sna3LKOGZlAE8uym8AGowKOVbt3FeTHmCiptp+g0V2YthNuztkImcetYEMg0pZRZB
WzS22/Bb8O2khFeuO0x1tLN+UjWbjnSX01S3Y+PtuqPSH3KJwWJbiXI3QAfD7jSKRF65xNkICajT
rkb0ZpBM03REHVK1dp8OCBNrjqi6tNqZ2AY8zfJAaPPAWoldw6mfz2yUMOTaCeNwsIYrzKZQg0oc
JpW5tH5JCcYwCIBpFPhNJyIQuJZgzh9D8uDMzzwNy/J4FSPaOX+IzzKhjiGNAr2lRz7ROWr9OTtz
XWtn0hOJuIZUL9NiClW4TOA1yO2vcvoYTN8jMvZGozYx5YSuxX53cCKK78CfH2K0oyhikR4IhkPg
rpbZ+vNkeHl+5C7AlAwjhaDhfY+Lm+VxmTpnattZmtx3AtkWaX/1fJkYvDi9zYD4QwUCXM9sisZi
GP00EhlLKdGI1VS7yezHtFc6NmP4WpIUjdgN9UamYcAceP9zQuw11W4SQ0z13IRPJnFALC+cqfLq
i7t/iWnl/3EWS8CD29t+fUawbmiENQKHGTU4fQI4zEr3zH3RmdynQf/s9+AhrjNsee5gTdTZ75TW
DlXS3Wkue23e1TG/WzfHIxWlIk4zZxMsRIAg8SdZNi5LGVkfizuIp3PJpZqd2ywOq4oVAoT8pYyl
NtHoWgyXu3KQTdOQlz2mhxp9w7AgZrqDTp7z+w5cdD+YpqWNcpMwjeKmFoQ83GwB0Jooy0ez1Eg1
SpqK9h2GjqdJEcMFdyIfznLfqmDCwAe0qWDH55sEe3PJax42mnnYZlzHsEbdwfnlydHp6Zl3OPTc
ztHR4ckn7/Tywrs49Tre8PTy3O3r3ln/fHB6fuwNLk/ci8PTE8+T3rI1ajbTanGfhZXWaXoEc9HL
KqsmsutFIPxRq6lE7EerEuGHXOUEwNkNRTl+yNCqoOFYBHEUB2WhaWmUPbGfN+tVEmKHQdnPM0wC
yU13GCxdp6EQXfjhQojpGKZpa4beVAhUCytCMLMNzcANhVA9DFfMocShGohtJMQOsL5E4lh2iQS2
RhL74X0S7sG32N8mRM6UY2BbmIGDJgXPZR8SL3q8+Ic9XqlhNtga8ZRfi7zs9cLxyf2kECPvGyQt
kaxDWF0jIgwpZEn0TUj+CxFK5oeyzbsie4MFa+j10CaWQN78fG90nXtV61kWU2RhDWmvoq9l2KrQ
aow/CI1QoBGXaifXXpHz8ZoRTxcERW20ECSBm7U29VP2rmT1K3t3KPLbOBDHIPUsK+eWYFLrWT9F
LLX9hyEBUxvX+tUvEBPW29GPR3UMGxFWf71g2qnmcxd5q5W+VFlVSNSo9ZnrsOvLjGLsC4eAG06G
1XryPHmTo4rc1DDLtvByxsfVClyb8jXkhPu6ydH8RM/PwvtSFC5btI0k8Si0l5IW+9i2yr5nI1GM
ihDVBdHFHqKwh75cDBBwbJ4kIkGfRTJe3hlrvP0JhgTleWNZqt14we13HhdrGyh4924Pbw5iq9Oj
08gOHBNiWAgJ3YPAJe/wxXI+vVuex/IeRLstpe8sT5mmMQQ1T5YvB8ujoykUMrNuv930VlFoEOHr
VcMafCR7VEeZrIrgsztHBJ67PxyNk/X6rrxmGGRjER7xkR/yAz/LErSz+2HZbn1wSilh9ZQVB9zk
WZq120U8ElXle/BwEOaJh/deIH2w6eJwmpeb4iDJ0mskv62eVY4d4OQ9wvM7lnryAcF/u1Wprze9
QQYbyeAMlZY/7sSD5XmL410+mc30ZVrEyUE5egTmfdhZfPwL+and/kdSTuU/dnbfo7+RPToY9GHD
Ci/xvvnbmfrmL7b3iN70XjJsPRqJv8G8lD32xje2wXzCjZJlbzV/s+Wlv5ne9MZ1aOimFS2iXJlO
q2x6BlNQKRxkedWE+BIXNxd88m2pVuRLNBLhh5VbWxjYmt0YDRX6djQ35ecqzXehVClpuFW/nfwE
NdhmbLuaMA6P+Tch/71N55bHiczbT7C53f5PT2+3ITHCusjynV2AVw7JqtKo3f19EkgzrJbCcsV5
896MPA5lZTHNU+97dSO3zMMf5DkBmHTwKua9ma25F5f7pqp1zNqd5Ke4yYqCNQ9Fs67S/PPreGI1
DoDgLJBz/jqqPlR9N1li1ZYXeMyo3cN+PMb4gWzHL9HP/XWwRcliDVu1W9KPT47lmMBMS9Oqcr78
J0dnMhgvG13YZLV7x08Q7OsMV4K/F9HFVtmEOeVt4JfhRPL+7QtxInmH9SU5kaE4keJEihMpTqQ4
keJEihMpTqQ4keJEihMpTvQLcyJTcSLFiRQnUpxIcSLFiRQnUpxIcSLFiRQnUpzoF+ZEluJEihMp
TqQ4keJEihMpTqQ4keJEihMpTqQ40S/MiWzFiRQnUpxIcSLFiRQnUpxIcSLFiRQnUpxIcaJfmBMx
xYkUJ1KcSHEixYkUJ1KcSHEixYkUJ1KcSHGiX5gTOfJJlINP297IpDiR4kSKEylOpDiR4kSKE/1Y
ocFYqM/eRwYptd2e51Qwbjp7fdbOcrQ60OMFr6oZp/EL0AxmE2ZsVFgl/Pmz6Jd1DbUakx6Lc92p
PBiA0ELMLKky1dvdmfDZc/Tfo+CG57MI8WNqYzamNhZ3wp+mNs8zYk5gnnn1s2kKmGw/haY8D9cP
yMjzBCrKoSjHY5QD62vPi3cHQ8lki71xHt/CknsG56AROMGbiEQExaanxP+MI8nLPTOcvvAzwzFu
P8NZjiGdJZ/9/s/y/CpiPtNtjIZh9X4D7/s/F+8GWMW4/nKAADbJSIQx3+OSIcbZSzPM9WfmH0tV
295vYDNhyHeCwfWn6aI4kKLwhjcEPCaK2AIN4uuhGPHxDZwvxZ6LpHytdBk5rBp1KgVeQHHmZ3eb
hDLdCQLmI/1u9qsVyDcKy0rBYdjZ8IaAxyCKyERRfF3NjHylpwzK2C4Lq5fZLNbLbRb7pTcLfbAQ
+TSMs73Of1ddavWKir/WKyqq2SmqDbLXkb/Ndsvqugaj9JBw9EmkIo+DmezZa8fbZZ5dSd9O/e0U
T1fi+zZyO2frkhcHKvG682u8rALLJ7P+4D3uqmuouoaqa6i6hqprqLqGqmuouoaqa6i6hqprqLqG
P8U5TMU5FOdQnENxDsU5FOdQnENxDsU5FOdQnENxjlfkHBZycz65EeHj3KOJo3Vi6LZ0dCldBjun
dvP6MRmhMCxm+VVE7dJ2e4enWXo/yqYTlPKRmIx5IHZllvgu8ousE+dlaC9XN8GENiQXoM6MQrJU
lyzk7iyOneVZICB1ijKCWFbDAlzq0Gmw1HEtb+nJnb1NzXs0TSfxdQpzCOuzTBqO1bD2AK2GgFW/
ED/OBRT7YpDlnyr9Mis9SbnhNE38jITYnnkVlpdkjqNxnIid5ZFhAR4AZcvUOeSRKAubdvtcTKbJ
7K+mbNa0CqCmSWy2Ivks4ekCw+GsDijZ4vKcIyiGjuJbEVbApGqbEKNpQUBNqs/X03bd2/WuOqRW
nlDWuHKAegiCwXPrIZvqTeuD59VDzTPyq9VDDdPj36IeIr90PUT/dfWQ8Vr1kPmK9ZD1YvWQ/XL1
EHvheshWPVjVg1U9WNWDVT1Y1YNVPVjVg1U9WNWDVT1Y1YN9xR4sU5xDcQ7FORTnUJxDcQ7FORTn
UJxDcQ7FORTneEXO4SjOoTiH4hyKcyjOoTiH4hyKcyjOoTiH4hyKc7we5yC64hyKcyjOoTiH4hyK
cyjOoTiH4hyKcyjOoTjHK3KOZz1A2mDV07ZHMm578m8gefIsYmFQKyRsZVEVN/HEK2ZPWJ0kQoy9
CNbTiyWw5UvmbLMx/WDECKx6yNuM+CmwJKCftKxmE7YZaUoKQjuihCJ/VMacmQlbeNziJPknmHFw
XJG5n60vknlZ5ZhNyyoArxvhEvyijBrwZCL+5VZUhXf1x8+4aY0U2iLynaUtnwUfw3QE/Fak1+Lf
MiM2bfxWSFv4PqsbASs0mOa5SIvh3JwZh238nkdmCMgmC/kd2duQb5Y8WFM5z3w1HJA0ZZqqduvs
QdEVEuKwxsUYM1hgvgiUlRT0M+Kq1IUbl3LM8k1SlRFr1c0sbYzz7O5+hWMUUxB7sChDfg7x+59y
4FsZQhdZ2wBiImu6F8ra+OWyNnnhrE3++q99IPT/waspLBRUT/dA3+PiBv3BrFmzFZUPGUA7ltHy
42K3rSGU87s2Wuwb3fd56AsRwYC/OoCpH9mWfE8DyoNtV4SLAYnV5jhkOGJSSRivXjL/goHJfABK
2Eqc/Cm1j+vaKbXKKzYOgBKUs/oIiYicrNzZYgnWt8DC+MEAMSxpCSa1EWyZ3JYDtH4J1iPpFWys
aicssCyMSyXm6kDJxKLSEohqtZHqwSooj5K6dp3okMyCnGyaE5ClHWXXMVBT5J5dtsvlRKjWz/Ms
R24WiurQ8lJLu5CveziZjnyRV4PY0DStG6c8v0eHI34tJnLd1L501AIhUe0LvetNR+NzkYYiv8gF
rLyPHz/uooOuM+gP9O6g1SXEalHdgk+G4bQwHvT7lmtZXWx8QPtXWTIdicn+1enR5XF//+3+urQ5
Cv0O66HDfDl1LVQ7COsQvYO99EX4MlFciEkxvIlHsw22owOage46gwF1W5RY3RbtGHaLdUy35dpu
p9ftmgbGbBOabVLXcTn6Q1zcDkvv1CRMx+MsL1ahdbCDXcfALXtAAN+Adlrdfr/fMjq0b/ZN0uv1
B0+Atip4DR0skgfoIuwEEt32ZLtj6eQdXAQ/gA9R851E6hLD0B3Wch0TnEhc3OrartkyHB0zm1qy
k7QJ6brovSjnIyED5f6VgOAAHGC/UztnxQAAy6O6ARiLAMtpXzEAnPF7XGwEbgy62OzDWoRvDsy+
67Q6fdJvUcdxeoMeMQl1NgGvRG4GXI2tAqU8pA+AWhHVHwLd6mKmDzqG0e+2LOwAPhP83O1i8HiX
GZQ52KA9tgXpdt/OBlexBqb9YFXggEXgVP+hU4/ENQ/uNwMe9DvgRbfVd1kPABPYWJYB69hwHKNr
m+7Atbe7thL8IwdXZ6xBj0L8EHoUmrUFPXtDjvz8udf53Dk6S6bXhynaITbAZ3sUJMw/giE9Q3cH
OsMtx3Rpi3Z1BvGKDiBMMKNr2g5wvC4YMixz+P5R7OcQLPf7d4VIZ4hnmva+ibti381SGCkm+5XW
5fACyJ4/TcNELM885sHp8OF5K7YTsDus205kvqstseH9aFxko3MhY4LI/4+4K9mO48aye36Fl9og
C/OwxKhSt6tLR7Td3uYQqWIXxdRhkq5yfX1fRE4xIKlst073xkxngMB7wBvufXhB/fCOLeovMegp
EG6ycIpobiURUSEuJ89hZlQz7AANis31/Hj4983K6aD2fzousR8c3vzpSYDBoMmToXZmxc1MO7PV
bHKy/i/p03LT7Z5+lRj+/scE4Q5KCr7gqiq6EAtelS2Z+WihnQoG7q48cU57QgMcX1qdvI5vH2pz
qWtH1xw81NBt56mifqkm5/fpp3jYoAcw3nd6wfrf6X9Wn9NS2hQ8sUYWHCHT0I8nxGGXhWZSqahv
OcLhKoMTGn49FB55js+E37ilnBzPP7rV+rAx24fH0eH/8E4tGH4f/4UaDtEhGg9nS9YCITBFnNeU
cGOKc1bFIMQtavThrV/PPy0ff98/DG1y/nCo0pbJuUoIgtPz+I/upc52NoyhQwUWvfZCEuWQtYUp
koQYAskmWS+pNcGWuRoD+aeTD6SfPhrIXqvas1iAL+Wmlx0o4GMqnz58XPgT2DAWka6PdcJkpOqQ
SA5wf8Ep8qEvjhhhs7I5ZhfeFrmmk/cAkX97WO/b0ftTt9+9Pq8R8meSDJRQZquWUyWUZQbkQsyD
+evTw8t+EXdfvu6eqt/VYwBDrf7OeA9QmPQpGqKsgV6ZFuJ4NsQlG6kxSkTO53pd5uv16v8hrcX6
9OXUyc9DhmpYuzJzNVYgJ62ctAYoX4/1UL054b81EyFtUiGAAYBLKyAUJFBjCRcxOCoVtYK+qUUv
XjwsclWPwaCRJmvG55ps6GYag+t/3//iy8W37UIuavDtf1b/5lxmaThhoEQIU8DcQSLxSImwJZIX
nKlb/Pu01MDQTl/dHSSsVFSvRmdw/rLbWAt/gOVtfngnFPLCId0jDxjNGdECWyssCwSkIBDsrsqQ
WgddTeV1/1wN+E/11weLWeu2droYjGALBrntnW+3+q/1xfW0NFjTIEIwpRLig8SGJJmBlRzOuSiT
pDEw+zhYczLL3XglMVsetqG361Hc+q0nc/VoaH8w1bxgWdkEAb7BE1A8YDsJCAgkCs5xJkbaqN50
fr9ed4/9X7dsu/5g6GH99rDDs7uRAmrd0Ep1E9u779bVcP/zcDv7wzvZa8eFXXDap/2oI+O6UHgQ
orHIHPHNAQCY4JNNzOCAy00YZ7RQW43xmIk624Y6mvbq4ETTw/Lz025fq9/dfl9Z9+FfczxZzSHb
85xtlkITFVPF1SBczilHVPCc2aSoKWFsNW/POxbRyoaI1vQ0AIPj+19/+v1r10oi3pYQCzwIlBoE
38QMDFkC4dZToXOyooVC/ngSmYgyUcM21HB0kkXqisd/W3K/KPf5t2MS4YxW06nQ5Py54ixZjEsi
w24UMnt0glhpQCBBB8DOC+Mqf1PD83rf8pWTPFcGHp+O1XarhtqrKXr59+551T3voKk4oxZjNM00
cuI5RywygACBewBJ7XgCSI05sDd1O03aFvf0dCQu65Zzcbmd8uP14+5183fw7lg/9JyeW7HQZiGr
mx8/QofsdZaBR+KF90Ro+EhwIG9FM5xaKcHy8Pb5HBdo63B6ejcWl7V0UCfQ9f5DObsvl70VeeRt
xjz8txYfKIilp5mRYoPSMKEirXxTyj5OfvjrDS5yXnwism6JbCZR9afn1/1L/m35+NrftvnPMDfs
/CG21nzOk2aeY3+jhU8IX8lxjsgjQqeQI1fUh1uiamuhtnKtkWPVVo3TEMxOqhib5Qt42Uu3ftk9
79eH2kuvl3DgVH3KyMozaXwmGqgLuRn50fNMSRLFByuRM9hNKaN2YqXTUtdLMrNhd2MNXEut1Slx
xF/+cl+LAw9Pk3oiAxBe6FrvhOkXGyVhPIFgZZ+IzykTJYSP1PocpH/T6P76tXt6/2Nb+MPwh2NY
bssy1sfyhj5u6vg7rPn58aRFDVQndVJwhRtnSREMwF4gHDvqHRIh7NF7k6O3f1idw7OxwK5hV3I9
BSIzz6wR9hhjD85fmWDUGs5POWBm8IpYpFcSHTBYgOxahT/u/MeHI9HlpmuI3snJXv/6MR4z08nH
q7jeS68E8hwrgKlCagVUzAyhksngVIpU8Vu84DJ7W/DL85HsyjXsxMhD/ef9j/kJVtYNrNz6BPsG
frcqAoIg+NcylidMYWM1F9or/YfN4hJZTyufyj6n/x/JbpeN5GY3brLvQ0jwAYTsuTYgveOcLcyi
Mtnjp/4CRVRSoAiT0EtoWH8QNhIXFdUGz5SKt5xFa8UrCa8xcqQjMvhcR8f1RMeend1/+niitdWy
tC00KmNITg5HJQsnwVBGYhaUg4SAAKWbySDmbmtwejqWWjac2elpvXj/tevWf1v8uKws+b77snyq
ABrPHp4+D1guX7BDcDp8gGrKB5mLghXyWrO3PBGXwe1CTBxsErw3xjetsLnkldDbGjrSdr3azLXd
CDWrEFdp4u5p+/D52F/TV1NkD7Lqh0oVUynJFPD2xJFFigTUqsWiKD0FgS5aGfGmZo1VrrCo+cCR
Vhvd4Cmb4yXW5Wr96VAvO6VDyXjF8pWtaEZVZEISbSrejYgSXoKyqAymyDLPLA6592G+P12ZeSya
a234cnlChKt/1dsSepJJ6B5KFStAn4AJAQeFAxx0sigSgdWUMI4FVcacbjTLaP1ON7hPZ+x5/f2X
wer1WAGXeVY6Eh4Q4MHcamFGYENYgTNn5mmYMMrBHKO1t1LN1l5SYU7H8s8vjziB0+Jc9/7ClNOW
waAYDfAXlgC1sq3EEZ9joQjpE+WH09yNllqtGutvptD28q9hLB/vgbj6msgR2VIHP67VqlJsSowR
IPIAmC4N8SoUnAuyiXBB5HxTuG2s1Tb5xsChbivRqB6s5qDp4/Ouwshu09OVs3aX+rRLRpcKZWFc
YEkJVucdUFS24PI2SR0KvUWx5kJt1ZpDx8o1ANZKLNetKuMvH4dVRnasMrJjlTFwZpgsQCul3ujq
ZOsVTyY5GqmhuROi3JxYsNQbiQVPR0qoRmJZqeMJ1V7i1+dHSHm0fvBWeShP+exMTizDwGwtUxcK
ImUtSSlqnyR1IeaxAwxnGovQ2ke16iaFj1Yczv6jpZz9ii2VcO7eXGRfIdRausSdJ5pLiuiEiG+B
ColMQonkEnU+37KlpxXaW3p6OtZn1TB6Td3ELv784YRTqkHwCpwUr2HeOV8LywpEJyKwals3ucDs
i2MC+ZhL9TbvqQf9sO536ObKzUWa9tDL85Gums9Z3soIOzm7Tbf/+8vu636gsOsvr/uflevlzJDZ
OFEBhE8Yb4hl2pHkpQ2ZGcBidxN1PSx0krUOuEJe5wNHitlGRlzZtZ1ErvTQv4UBYUaH2YNg1xfg
NM9RZBaI8pU9ccVB+0pBJMuuNh1wz/33K8DN5bmi/mzcWPt141idWE5qEi1D8z/dV4DQVyaM6mtc
CNEl08CIFQosoP9EwebBAXRtXaJCy+9u0JDjShj86f5urNacEKw2TG27GenxP0fk3J669Xn38KnC
Aa6lgi+QTCsasdVlaw2GOukRf5SxMd/Kc7DIdWqDhyPhN3x+h7LqxHpyUIcOq3++AE4qCayAXzh8
qFXUrDi3iDSAbQYEFJgqCC+Js8E4DxDB8rcNtE5+Xer6dCR2J3VDbGknITKXD7Ut8OkMdCqeD94K
UzNkBZuiRncXAe+zpAnogFopb2ocOM19JbAfn46k3ro5gMeX2xNShOBfdk/x+fevL7vzrRmlmi3E
oRifTS0F2ESKQ4ATEWEgCGYQEFIRCHQsO9UE8POZh4KtwaVngq3p8nyLXnZPL5+6zw/7l+ffz2U2
IXuZYpYs2chrw14tl8BDEYKR0k1tbaA6asP/75xzVAqeiz3Wetk1tF5Nb3l/XD59PvVN1OBsDjCh
/qxVOQbzN1mSqDSrvV8VLcMPso0KpJ4bJ+J3V38o0jWOfBkxUlqzueesNWdz0Hm/fNqsdv9sXC2G
XHwwtXrBrAM2QnJyAYy/lAKGwIMxQd8IN4+LXAWcx+djFThvqTDFRye2uq/v1tSLwP2wRnlIsn2C
ZfChSsBMYQgIKghkl4T45QKgg6M+ppugw7FP5b6x3FCp2bCJbsuGbnKqWw2K6bV7GTW1ae9dSYpw
baEHkwnBQdfmCS81SI7VId2aQ+rc18NxfTqWWrakVmZab+mrS5+69e7zU//6+KEFtJJ6figm9eal
FBOcZ04ig1+J2ptQb3lJEThkq7LI4iYW2lzuSumlNXSsorINFR2dHMyn7gto3y8P3T8ueO6Qe5yr
wdJ5zbVjJNAEz5HBkGAYyCiCtyoyRaVuaveaL3MtHE7HjZVqMKe13mwu5O3r/lK6kNQerolqydkW
R3R/PqaqY5FGFUXqRCZQqq84j6jbZZ6xAI1C/drSaTG1Xle9PvSWUmEh5Kg1FJdpdmCLRNuayWVk
xDMTiUOA0KCQ7MZyaj3rnz9cN/efP9yNxWskS6tsqwA86g1SYJji0PpXP1TYZ6LAiVtiIg/YSaGg
AeJPttIapFPgW3s7b3+Tto9Y+9rxxr4v7XbaqvXbdvf6tDlWRg92bK1bcNY3ZVD4aaaGaA/2Djf1
MGa4rdLa6VTJp3Fvp75fynn6K7IPRowUWA57SM9frqbu+GF9yaowYNPbT/3Rm7FIJdcWMyVZ3XwN
ywkB4RNumCg8o9zUBDxc48oV1WDEWIvVuqHFWk4qul8fly/b3fP5ZQ7dF3NlFpIaUFxTO8uShvgR
uy+Z1Vx6FamkbxVzx5OOxdrMK4rrNd1MLPwv3eZhWTvqnneP9/3bKmeczdSC2Z65Ga650sQblhHK
PUJ5Lbr64Dm1TrHobrpLmy/V3un5uLuxDg2z72qn6+pqi0xcPq9OmYqxGnr6S9ljDIIOApkhE2Mr
+RGBE+91JT/caStoEt+4lP0fsfOLLFei1fn53VjDOebbcO5OYf5LB0t8Xp7NS+tFbdWjOVmfFXTz
9VUX6XVtB8iEB6t41jSzzMdxfjTR3Xi1OULYKDe9f/rlYdPtftrtHnvgecQ2IMYL0LQeeIaUgxXI
PLVoCHiGiAMmpDKF60puU3mbag7nb2/hcMRIg65Rqdp0YhpxAO/K/am14lBKjFwjFhYAmP5tA0aR
p2o/vnfGW2YAyLX4VnN0ub+KJsv9WE7BWnKer2JOdzm7l4ftgMwJgK8DGmbSAOoAbXEE9eQ9sYqC
03lQTGGVKty9eUc0mHcoV8cbqL3jsjvHuiMTYOdrGtUTDtW32UUVmfIk+77rJoNw2OhJyWAhMlkD
7j62xMlsY0n0siGJ4+cLm6/rkwxKuVqwrhujcGSOU17hRW1xl5IAs1FC4eM2Rmtz38I035jzdGMh
Gs2rnRBnn1y+XmoAiOh1E7im4P+BANZYmBGAj5OOEq6k0SZYr/p8NdiEyxx341Ua+q/cphEFT62J
1RcRQ3qjvnQ/9h0GNngCtCJroZkRB2pIkECLSyzmqP+33Y/DEXdjebuGEsupOz7WIsz+0JQzJEuw
62SAX4C3XEIkUZaEUgxJmSVftJaAj7ckpsfrJaDpqKMU7cHDEWM915uGnlt+spN/+5jfT5rtcChC
If2QEGNt1MxAlcojXioWqHAwWmu+U7PdZfWx0C3jXqvpmwA+I1Ba1l9l1Z816fBQhJNKERYTDsbx
SCzgDNi44VEHVoIy3y+h+nwFd+aRPhs3x2n4cjPBaftu/QD6eHHb6iMWBpVoITpoUV+6haFpgE7H
jC/GOSAh/1Y8Hc05EarhAZulm90wPPcddqdC/WJ4j4jQ1nuErVtfVBDU134AU8kpywj9HDTP2cKM
CtyY9HY77GypK1cH41FjpRodRPhyNcleq/rnU/ZnwNK/aaGZSowiKcRaGw2gpt4zT1hgTiWoxTx7
a6OHU45FWrUOf+Mmhz/6+wjvuLF8oQ7lsuK9U9FgX72q/lhqb0yqTXChYFdh8P3roVclG848lmzT
kKxTy0ax6OwRf72/8CGN1FY7Xfqf/S05zjmm2gVdXx1CDIEBaPB8DSDoLRIy/4693hdJrrQk3rc4
E/RbNZTe0lmP2ePu+f73p3WtX7ojGnM9HnMMgIYHQwBi6/vFFCauYewmiOKUK1S6/N1Ltmd5ruW5
4+ORrls6D/5bStmwLv9x+bwHHRpW5fv761gkIDvgCgNQEtLUBibQQ+QIxP+cPFXp/7EsP5T6bqwd
b6m87G/TainpcbP++todehFPznZ62YoKqYyMBMQClJjygqSeKu7OMUrLeZLlm62Q8ZaG37kUEyXm
NrrlbDW10XIsBv/wzlSkuzAVXh0+1TwuTTIpcahDkTpcosQmDrbjTeaJAbh8o2n+PP8Vmzs9vhuL
uW7Jvj7Z3OvTGR3zWtJUtcHEwH0iS/U9SodNp1STxCNOAG4GnNWMbueJJstvWstvJ1uHtPj6/PDy
+98efnh38G6lsGrfWZXqHwmoPu2QB3L9UxL1pQOZBTcsRI5I/Pau9ST6m7Z+f5Tgzx+uvhN1fD7W
T8qGfnL6/vBBCPiz6lsRVbUHF4piur5LqCuPLKn2dWiGhKec51bLXOwf1uzwbCKqaok6RT2bp/1+
cyZMRp/SnssRqNNxkihsWCD6EMcDDEOYWhexGozqrbQ3mHciVtcQy0zbfd7f35+vrg5hH1zR1w50
KSMMlVkgMQtMVmTOQbgYUng7ImLGK11s9/djCZemIeGKTst6o7+BBDCmTlwTaMVRpw3JEU4vuKrd
gSC98r+Ju5L2yHEje9ev8NEXlLEvR6x2z5TH3e5l5kqlMqv0tVQqa+mZ7l8/EWAmkyCRi6f1eeqg
UpEsIEACiAUvXmiWRdSSyXLWYmhabkXbdKYf7JodhPaPr/cPY3bxGPCqkglLbQwRzPNUGOJ8GQHT
AE1GWO2wvSomw9Uxd+zgTNgdb9+0cuqO8GrMkz6OHk8LXh9ejnGEw2vFvFOPKROcSk2EAD8+FC9I
Ms5Ir1gx4qyJ2DTcSna3DrrsJF3m4HxM/tsGRi0/cItv140KLPoSYNtSBBqDKSrRAk8FYSAOLnMX
uT4f38IOTqgvuHPTStfZaCVbRdD/9v3b827AFAk3Jp+5MfHMZ8YiwndlwpdJi0AEAPwzWiYYNZg/
ct7LPLR8Imh+uN1K3UHf7ySXy+jWqNi2E53AYY1h1twIhg5eWfB3ArHCoL8AnoP1WRBZrKScJZdk
vgIMveiiEVZ1Tll2Sogp7jpsPk9BHqv5CASKnudEUnawvqgtxFrLSHDJ5whrXwTdlWrWViuD6Cx4
JdWEOXn8+nl6O0gTpKEbcLZJqvme8EpIgD/EUwHui/RJRLo43JtaaDvuLVYlbxfzK92//Oyfb+9f
n6dTpjGxAHU5TaXI5ALhvvLRVBIT2HxgtoGyC4mn4C54pE3rpxzS5qHFKHadUdyus7GH583nmqaJ
mFy6x+ZWohJqLSg/RqILHk9LJeYPZCIRlytTss6793OqJkFOGSX72+0gO4DTndG7hUb97m14fv1t
fxIyBg6Ehl9cTR3E6Lj3JIEeANvEYGQNrFZa0Ws6OnUhC+nYeF/y4/1GdHPXmWWWL3mxKgY7PY2B
zCo4Z6Of5MEtYNxR+Cge8wBA6YbANYlRGR+ZTTJdl2F06OFMHi3ebqR3HfQdgsQOmefP4DY9/AJu
62RdYYRMB2Ez2H3cIZY9CgzTRNgsYMHClaRyE6FfNdNK0IFv79ywxEBNY6qWwX9+9P8x0XVQ2E5V
NfioAIubIb1dDd1xRKcpLeGfLBeQLasoLs50bPu0TYB3W/k7GK6dW5lah+OA9dGCQMmMKCQaClYq
85E4A1qNqqIic0pbcTYnpmm5Fa2Tl7sb7pam1scBHKHP86AM2AK6RmXwl3rO7n0IDAQT4NaILBPs
xlwSDOempEpMIrzfDtLKcwpdNn/mph1gZ0EOO3NyQlV4AoLgWY1HVlA3FfSDGRPLIvXMgClBwFvA
Q8gAuhANDpvg/figTMr0aohE7eYMSqLeb4fToTjZbR3t2MtlBpXQH1w1mpUYz8ExxQmcH4tOKaxU
yZCUxzgSvfBGJvDfPL34CS+BJdpnblqJdW8YehmQn1hNph1+dmm/YxYGNqqH/cdkCV+EBZiOAjn6
vMmFFaZzkb+LO+V4fzEG0xvDMg67aRI8DhFi5w6JJ6qq3ZjBwEmYK8MUsYXiyY/mhiZXbMjnnYBV
+62Yt7Qj5u0Uwd687O6myJU0E7bXaw7mZ7IkIwWFYNKDcyIxSgwGnAiZ+rjY1mctLSToRHC2m8nk
+3P5r+8/D8/bu1XGfAxcBvCRSAwMbGIP1rGTmWHg2iYPqr1ccJGvzphfyDCTH+uVrd6go1JOqJh5
eYI/Ml7x88EpMAoTcXhAKpiRpO6YIUWmnKLMsKXVemzkpu1HdTo3S4PP3z9/+zD8+v3hZHGBe/HG
oGbHgzeBtG7ZEstgjRhY9LBlGXCSrsKUtt2cWC7NM+1g1pQwcPGW73PJR4rZ7XN5eBpeZ9MgByaU
swYpAjHwCNrRMYG7VTBFlwyvlr9LSnkjwDGzvLncDmg9tR1VzBwW1w/flCX1iCweXCeJYR808BTD
7QpGBDu9d0rKrC7Y39efhh57v2nl63wFZYeTKvGbv42ELx/oCFKmih6g19RFbC9WyD/Y2eAWOZ0w
mTwJVQyPNpcLXvdJ56DeaiS/5XIt+S1fpln8EOP8bD1GL3nOYE3B/4YfUsIuYvE4WiqZNeyxUl7F
kRJPJLLAjYWYbi3mli8jgn/5ZkIWIdQYw1oGDEFT+QuZtQncbpUN6GcfQOSsDNGmWBkZ6LT4LkHj
SYRTSXJr5BGOZNcZnjiRu/98BDG3pJO02iT1bxxx4Emh3Us9RfSjK+ABoYNaP1JCth72LmHyJbL6
SgB2+waEXr+B3RHA9m/f8sWqB01KbWZ0ZCEQYMmTwEDLcyG80iZwmuy7YSB4Z9GDaB2Rd1NWOG6R
I9fz/ZdPGOo8hqh4XelJe/BMNexWKXBM7JXwG/jWRSdKLXdFSdWqtBNNLsSyPbEmI+ph+PLpfmYY
1MWhpJdgoBKeFagDDSvE0QK6rRTDWKQ5uEWq7ryVefeMDqugo2NMLnHH4eFt+/r09PoZI/iiBoTq
3zsM3DHwMmkK8EEpEtuhngpGMRKtQfOdZtD3F7bAqf1TG+H0QCM9U7QjvV7RmxT8EhPMYQWzAHWg
PC0kqRhBIXnwCgR4zVTCirSJcRvoRe06tX754Llc8fzioXbUa7gcXETG2ya2nba3b5++//Xx9qme
GjA1OkB4FF2oMBr0rsFYhYiWglGL3FKeReaTAc9bX5ebe+zhVFLu8YlmDHyd4IYXlyr48/bha6VQ
rm6orCaxh/2QwUSLGZMMlIrgLiBzgNcKjMsAKq68i2aArk8oBbizGMxtZzDutIs9CufvHu+/YC7c
RHQyhinr2VgxRjmDME9wUsELQRK8iKkUSclkXdbXZbv3ejpHdtI+2Y5y1xml2gwdOsM9wSdGD2pM
h4G5B1YqJyYg9iFJA952EYQaRAAYD0Z++F3ByIVjfobgc7rdjE1tt+ux6Q5062WDKvH5rlJgj+fc
aOrguVGN1SsVJHwwxUVCWKyGccI+bcHaAuWB5xvhUnj82MHJ4PjxkZtW3s6+oDd6cRQz1v2ZIpji
4O+m5JGBL5AYKUYLlQJvDQOaJXvqLA/Wnc1fmLfbyrXprHW9XfJgItHay0FbVnzryPqzV7+hGMep
AfGMRksWFLEtmOaSUswxuuwyf4913yjt09xs0yPNUA3j66GCj3lkLq0UVniK9nIEbYx5u8xr7xNM
GeoyJtUrSawqjsBSB2vL5OAN/VdQ4LZEeiuB2/Fy2xnvLevxi1UtsAcwISVdTbwCC2GPyUu+WFs0
MUh3IzDiC0YEOInBgh8Fe7sJ/mpisXlXZ1jF5o+1w7rtfUY8ZGqGddaq4LwUaTgjFGNII5ezt4Lw
QE3SjkZjzO+1Kk7bCGZ9ggQXsZKG6KqklzGDddg+jppopPIQlbY4BXBJDCkWkwutAOsu4pE9koRq
mmHXYFdnsdb2e2MJs/vNQKztbGrWLs9DENO/D3//dfgCc/uxEoUefWDvlGcqwsYWkB1YIdK8FEtY
Mgl8k1D8hRDKqvVTB3qLx5rROLN2jJnbm26YIPC8+Xz/y/aY4gl7sxq358gkNRr8QyUN7HqCchJE
pkQrsHmCcgI+xSLboG2sFWRQPUHMibTmasd9fPr0ab81TzROXoNXDl4d1lsBT0QjgAMJHGDBZjTG
tGf/TIrzvJ/z6c7zJxcjs72R2Q6J0wJNCb4NYj9kPR9AdcNoQAJypMiEmRK8LGB0Kh4Q0pgpex+0
ZufBxXg6U+aAdp6Rqt9XzEOBjXo8EBZ7ulJxCCXjaT1SEkeOvAgmCRKkjyQqF7Nj0YKffs2nOvRw
Qsfs7zZDuNt2JhtcPAOL/sMfNUba9Eic7mCT8bDvKIGBtVCIxxAoOCuGZg4blPq9KX3zJxai657o
w8E9/zo8zqjkaM1ipQp84ARrwOH5Jcwci4FnC86JtWBRBb1wzmdtLPru7OF3O3bo++/D3f3wZbNd
xlctzfC2OCloPQjmJaxJDYrHBl9ECCBRfqdISytBI/yWr11zuDRRUt9v3hC9deRwV4LBVlcdPG88
rC8ia4UGDzu11TKB4lQadjrwGcpio1u0ddN2qTty8O3ikOr+y24C/shjjhnPTEcZQFcIXkv1gOMS
JSNMCnC5YTf37OzZ1LHZVii3XtOc0WXC1wFTu2sOMkdsLTideFguMS8K/GD4qcc8vFASLOpss1Jg
IwtXLmi1sYtLR5nr525a2df+E+dmmcc7Vhp53Udca7GPWW7pvGiK0saW6CSRSqMLggWhvPOE0Qzr
R2ru3Hnrad74iY139sRNK3dnyghtj1P36csvMxYGlBe8PJ0Q326DgQ8BExYWvNMEMcDgEtIQdVxO
2lkrN21Xndmh7pYxucPs+MMfRwIcsKVhCcHERf1VAhfgHsFO6QWWFqwcKrAVcdhJE/cJbCF/1cQ4
Px0audW2s+StWlrNfx/+O0KTz8P+fKnOaTlG/x3KDj+tB+uScK9xA2OIU3aYWUwT09LAnJa9UjPH
LfxPyz6WdWam+80A7LDrDGAzRbUffnscPqip6AT6bImKbI0i3kSKCQ54rIiF5iI3xQS4aBZnxPM2
2s43Q6fz7ZRa8vH+y3Z49g+ftrPMcMa4HWmoYgyg27HqHTJ+KSTBdwTmJNYY1CYK826u43YDDZxI
muyK2Q5zu3atuGMTXvSH57ctVtT4fjM8dLJofAw0YokYzzSCRJUDK8YaooopQknlufn/yqLpSX7T
jlJ1hq6WAN/vEpr9I69KNfwlLlgK5poVmK2GJMHI7wHWG7UIjkgXHMn/y5C/SydQf6kZ0mA7WyVc
PHzNn7e/Pn6avmKdq8ZYqazkJGX0Y2LEMBNybovEJOy9Mac+Zdq8rYUQ6/gSv8Xygy0O5Yjrl/IA
PtHwUSymSFuO0lDPQM+AayWLkV5KB6v5LLC/E+/it7ajDGsmtOn6VtXpRXbap83TQ3Num13xISBg
D4nvi0NaL4wuwkujEQuxin/Ou2p6uuBfNc+24xtYb3zT+/7H2/CMTODHfDCjD9VrjC+g3MCCAiVr
R4oaUByeJCuYZlYLLXn3fS8bXUi0Phbnu9vj3um/9fHfF5tmATuM+QxuBZ59YLkQEiKoSGdYdg70
tonsX7VpzuRrBjaCl9qBiVm+4X4WDi/HPFc9Hmkp4aMKhCos6qXAL7fICMmp1zx6Q2Xm56b11OBN
27HqSMNWExtrgB9KaU6AnEN0TItxU5NcOXA/YcWBusy1fhT8U9oYFEhpqLuOKqrT14mJ3XmyHV0n
TA0Xd4fYzObp66+7+4eju8Xsnh+NRm2TQDaWirPNRcBgGHja4FRHwT1s3PoEC+S8yVaau/XBrJB0
CXvqYhwxG0S6nDVCxVzBM2KFfObSwrrLJXNkreDqPCjwvEcQ/9T3BMAhWQOCxG5ztybjGusijzIL
Ce8SJ26WViWl8S0aPvKxOdjz0KvJmSdqQlGXlN0JPE3c35uLK5FVaikuJuIsxL0dNj+/fW3pCvWe
8VvXIy7YupymiC0T2SNTu4Y3DyqFOuFF0pKadBXGJix6mk/h8V4r/zrPCeHqE7jx7v7l6/C6mTJK
YNkdAopeM9DAIhJQyH5fygPDokalxLj3Sac+0LptsxGH0Y44zByThUG7bBo6VS6mAyhljCvFg+Of
wNMTPklSSS1BL6BPxlk6kZ+4bLUVydz2RNpOb+jXh7sjDP1QiTEmcDMRbukxmU4ki8tHIcpZwYpO
Bkva9l/O1NxCil1His0Ei//zxx9X4E8JTqMyLhGvMenQMwebOM0kczALMvhGNpt3An8eem9l3vQ+
5uZ2XYbWvyEyRFVw3Jh6wENIRsJntJlZ5PAExwgxfx5TwkGxRlBCV3J4YuMnuZbw5kLoTUfo7WSR
rjLQ1CiwCIEyFz1hDiefBl3kPeeEyaBg6gm7QvecTjSDDjuIWcntbsvXlIRI2TK3+rQGHyYlR7wt
WA0e7CRw5j0J2nMH7rxjzl8NsK98MKfx9Xi7EZy7nuBbcVCC/qcylqKdKcGaEiElS0j4mCwWqkhY
Bisl2LyZzPDF4f1Z/jupBxtnq5WjHcJ2bQzKGr5pNOe322dk28Pw5ZxM+PAVqAO/GRHLKSLtlk2R
YLUzwjRYr4FK6+JVE7jTzYnyFOsHb9oRrKNCUh6Tv/cbIP3gPthpbvNDIBN2dFEi0iDzHLAIMfL+
sUB0FMxkb0UOi+m9bu+m7XnbEccuaYsr/9+YhqcrvHMsIwW+MM8qckIt1noGkwSLOYB1ImDbtU4G
el35j0PzZ8gHlxpfrsu+4cXpiP7z9v7xbnggw8uXI/OZs4cXaRIPWaRMNC2IyAfL2jueSfI0F5cE
FuVrX+S6wYU8tiePO6acPT79sp0bnqKmSYGhhAy18AUzbLBRc8xMTsQaLHMKL1GdSJ1etrcQZugI
4zaLLb+eEMTh6+sbnjTtYTAVt2RK0GA/SKJqxUIVJbHgcRDjecoJrOLE3gWdNZfgTBm6/RPtGNeF
IODisJy5lS3+x28Oh2m8HqVVkA8zTmHBW6YN0jojXBCcGiyMrTNu0NldRRm87+Dk7F0/evrYbfZA
O9ZBdMZ6JzqYLf9T/EtCJW6qXauMQlRTpRjICjxmE0l2BqnZEIuGlWFs0dYgIN0afXUtBOzlTDUE
vN2O4E72RnC3GgHy6Y92SMMxAU6PzAiqoUjZ4gMSN0gMiysJKh+8iesK8RzbPyX84f5C+t4uuevh
Y2YQ26MWsskEj2nKOeDRJzWe4LkToUEkZwSPTl3O4LwArm0eaaXfqZ70wzKX83V4fTmipas9XysK
KaVRRBI9FrsB8504jsUoWAFHLkup4ll2h1m7C7E6Fj0YaYuXukiRvS/3h1LDgo70WgzEcZEleLvc
wcQGN8gKcN7R/MrBJJf81XzV2P6ZNFm4e9OK21mYyq3S2FvQFKuIOAUmiKqAdKkMgxkN27YYlWhI
2mAhLYHayRlursOIXoRLnYRKgcwdx6YeVu1LD38coWZL5wa8yxQpk4RHpKrEM1ZnqCdcF85YKUbn
8l7OzUyCRnajOhPJ7HgHl1BNiQ4BLvgxxSpawERHNVyQSDBlR8D/kRo8cZFTubhAa+OnJ0+9PRdc
sY6VDhfliipkClE+PSN1kf5QrbDxl0pukTKT8P5l4IjLhe3dx+JIqpSb4GEKfZWr0XR0CsI/e6Qd
zNAbzDF4+9sxt1DVSIuNJhqwwCgibQXT9dBVYvDNFbDMmPcL2tXfeomF0AXv9TsVf/mf4fnYM69d
m5i0C2DYOIOZOUhSaj0WCSwCC6+7rLNZFAk8NtJ0zmWncy71VEwZvvtPf40P9wg0O0TRx/pTnLJc
dCpEUVw5McCKFwjpcRa+nQJL60LxpeurKK+EWIzBdMag5EI1H84Qwttuh4zkrNbSsh/2/EXgcuZA
MVpGkfsPD/qdD6QYMDkcMwaGdW0hwGMvpysAHp9px6JUbyxmEWjHSNOh5tnhs7hqEwYD3pXFxFzY
ilnESIdGDgNwtQQN1Al7iciobXch3dpHUGJrjtEjGNonGPLjcHv/gKf2y+0W5NIZTCEQsJ4Qo2vu
Ih4iwqqXBbQ0i++13XZluWlF74xH8amU+Ms/4D9uxdGmGOtchAimgzGZ8P/t7Vp620aS8F2/QpcF
EmAp9PsRIAeS3TQ8sWIjtmd2T4Ys0Y4QR8pa8szk329VU5bYVFPSzATRIbHIVnUV2Y+q6qqvUBLu
wbjIqQNFPMeqMAK0I8Y7qNNtQoO4t2mKhW6txyZi5WUxB00kOBxuFw2mTDtYxUvOpbAs0x49NojT
WqD7WuS2BN3TOHkk4mpL+UCkCt7uSLBvx0h1v32IxUV+3TnyEhamFEKT5NYAowxxjDwMBW9LLSlQ
rNTPOvLacTeI+U+8Fq236sTv4/lql7sQNjFGQSwsxWdcia4N2BQKh6ghvLScG1aQPP9JQrW4i6RC
/PZ9qfZOhMcvT+v5evky/bx3koUHe6IBYsL/A3YatxWtVKY4x6IveOhUSpYR5quqqEAllCcprwc6
jXwp3WaxgIkjYbi4DZkCGb/N4RnfPa8jL0ZRmaqknGceU0O5y2EfKCwBO4Fw65nBKLC++mkxwQ47
NsHOtGv23t7P//cSIqiagHdO0fXvKqkw3yArS0SjLdA3pXKSaVoRTZkGk/ckAKJX6unn+Xo35vth
3/0izaybKYP4WEGnXXWho4PpzkMUFdfMUgV6AayamK5qJSz2QmXSS1dQR73QJ1X62HXWD9bV3I9E
sdPEK7D1Ns6n/FRdg/x1VAMaLBojWOEzXTgY047ALMZQEeoYYZUuWS47ql1MJuYgEXUsp7XuxCSe
1ct2pc+g3xOtUT0xzUFGZeDBgU6MqHqCw2goYfdRTuU5IaJknJ9WgXl5OPim1WAQc5x4kLMNxmIr
l77xMsbeD+NgBOiyypyQuGESLB8NK7+HtR7LeedWnpRFuCHelw4Zbg5i/hIb/MzwFmIIaAe7wOVG
r88ZwzRco0v0dWCCQwVqdl6SCstAFqawe5AhWypx9wk3ppzdbwtKfDq/2gUe78on5Dns5IjxyKUP
vl2NhefyTCsJ1pU36In5h+UT4vDpHRsx+/c8wf40UdAKwxon8wWq1XtFAVmew1YgLGjWeCyNW4Up
CGyTJdhPYGZL2DJOPEfadtN7lLRtEQuSWgRmsx6ghNX3xfpzHR2QoD+SN+VNmz/C+lzqyhmZVbQg
CC1TZiacWzPQ10lZmOoIBuHfiYdr4BCu9zncx0zYNoofxT4Ml5W1YJ1pPB6X19vtiOkQWlCV1hqw
DTPvFGb+CISrD6HRvIKRWoHydpKJhLR7Nne40+ZWUbmvhsHF2Suwa9PXqNjNYNrUHzGeW+oziviK
HKYNTqAqU0wRC9oYkWUnCjomFPOg9j2/CvaBvROm9WQ2WU/CDthEQoPZOOIBrpKUoiyky0AbR6AE
Cou3wMwCLB9usJaFcz8OqO2Vk77DqObuIBaHp2Ssd4bdniXHTcGryuZY1Q0jFg1oSw50XlrmnnhT
OrCYf5Qll3gribpRcFFuD4j/XD2tW2BQPGCbEGVIrkHNo6G4S249FpDEI20PGl7BneOdpb1NJu5f
JkYFV/evESa/u+ur2D5wlXcFA/VSWByUhvAMt5qsVNQVKhey5O5n2Qdb5gYx+4nZBmJ2Rvp88SWK
QGrwY5qZZzxhQIhkYBZg6T8wCXLU9kC3hlWCeJ2X8oecuy16sOvhRiSTuJcJme63x9XjEEG086+J
UIwTc6VxhPCSIdStAWvAuYyaihdMeNWgnbWGSUSl03+d6L/eg3X//LL4Ml88bp7Ia0VLPMUItqV1
sICA6ixgK8WKlrCHUgS9hZFT6aKgXp8EG9bppsfXGzeKxJE2MexlTRMHecFdfH6JlaobdVZoFWAC
JalUqcHCkoizZ0CThflXICKsUQVMRHjAp7mq+3LDWg1i5hMx/3CxC7w5niwen5e/11EwDIetg8GO
J0uDIdAS1BmhDCiFOfWEFiXs+CftfRvaPWvz5m6Ha5XiultD99vzvJ0LPLrC72F2Bn0slMLhWIDb
6yrTBgxJjkBWpsKyGAxmpq8cV0fK5J04O69iXmLf5zzORQZRbEq+XUDJZPq53uE1ovtIegs6ZXAd
YnmxItQY5xnssp5SRUXu0gd6LVIRCw88MaofFE0cwIQygDgyAjy7kA1kgnEF0bChFxbT82CowL4C
Sx+sqBWzYP3AgnJ0SAfK/QM63I65VizFtdrjGo+EryaLukHtb3C0rQqh574sTQ52GUacwRINfFcF
AshS2BwLbWz+Q1brNguHzq2bFh0hdUrIbq2J9fNkl4Cq2WuYvxGkgo2IZoWUGA2rYSUnhc0qX1VO
gY4i6MEiWy2yHa72V3VN9o5Nb8/bcdG71UQoVbgKthXgpcJoAIL4lC6rrNZWMGbZaeddbfo97p3z
dHy0JjOZkOBhWw3yavHYRU4TTAgsjKQCvJbQ6N+kiFzgJPO4MbkfhZe47TximSZipOHi9oBuOWsB
qLKQvckcyYsSHqzAeucYAGSwoBOu2sRaWMa7BalbNOK+E+dkmlqedNOHCBL8q0EpIxuUsuAJQcAk
WCDQGEYXfdjDQQ2t0NsH1gv1J1TSaiIO+4NX8HbMfWLX1nSyQ+SZrJ7YLpOUbpBgQGUDwYnKtESt
gwh4ckRz2LhVKQhWpZayW12zRShmYb/0CVyc6c48/roDnDCqWVs9ZXkhZKYwj5VjCHLO4AFifU9b
Ybl0pw7CAaWYqffNHbDMZnsI3IvHFxiz4+WsfuogTsAQgvEDS35OYOfhHN4mvFgYXxiw4SWWpD8p
oKfbRx+udtwqkoaJWUIayVJVmdGGWK3mzYnYqzwqBJqSnHtSwMvG/BdutM8KhsVocwfqrtSMVYfV
sn36B6Iho3aRNJwlltZW/dMvf+7i5NvF9DxoNhT1MuYxlNNwUJFRTwaTGwxUUsDqlE4j2BGM+dgv
hgoXxXa1Kc/K8XXKeyegf8Yl4khjniSxMMUL4zNNHZM+p47QH+q9ixiJRUgtWlxsfd8vLXRJHs7l
NM2dAtYLg0cOJQYi5YXDr0rmrCg9r+IJ/5JEk9R2mlhw7HTP6llOlxNMvjHBgMS3mJcEnpFvIknB
2sIDbEEz6QwYORile6yUFZLsWxvhVsTmVCV2FESSi2cOIoJNnzZleYJTu4FZc5QxnmuXCYrbuPIW
7cQqk7IknCpdqjL/22Xlmnsxu/cmwe6sGxWL+NlhteIMs5mCB2+T1hSKQAgM4kdcV+50gaAgBayo
pbU5LUEvOimTc9NFj/uxuRmxPkvoqnBxm/1ydnW7Oc8b18/Tl+f9yIFSWlpxiekQGKBBEQFdG55J
gTk5hJaiOMn7uOvpFNdTmq2OaA8J0fRuli3+mC9aqT1NkSGwtyQFIwzTe0ADlCKzJejg1iH4mOG5
6tnV2tRiNrRMsdHd0+ZTLDgyqoDI+Lur0aMYASmVHqGNZcaKHPHJLW9ijELCWwkagHQnxdi26feY
B60WHUESG8DDwyyVttz4Wxu/PFNN7emcgSXmDB4wBpumyApeqQyMMlrqwuqjNu6G8IG85I771KTA
XfBibxWFUeOgC+hI+LvNV96AC4AVaYwBRcc7jt4eTsBMh0mrvFSVo6qU1U8Jj2juxZLSh4Skqlu8
CeOInpbbcFGBupwO/iwqR8HHZgyTBfcs8wQjlTzBgGhOQfuADYpbBZr7cS/QxfIYtt5ri1iIhJ/T
SDlN5Yy0cGE6IZdaKu9QA1SowHOBupIX+JWBkq+JYEfeUpv+AVUpAQ1j5CQlwYM9xSe0qdPUVFQR
kjZ5Od5ahhGYxAh0TiP+gIBZI2AdktwLKZz84YdZW3YOuIq6qQQg5X6wrFFmW4Y0HJWsl8+tYN9W
MQ3rrOQW9j6aY7kwRHcxnGuYWpTnzlrfIMC2T/a79AZxx7MUN7MtVEsoiLOLG90iOonKUCzyguVQ
YfQQmOM5ugBg1HCXY7h9T8RJm+Jg4P9c18+LydMQLIP5w2uA9vXL16/wft4Bq+Xk6Wk1/DqZ1cP7
78Pl+nP9PPz2vETtu14N15PnxzrgnK4/z1evN94FEdeT1Ze7h+Xz3bf57N2wqX7TlI+8m8K/6/rd
kLQvrup1CJXfXI87Pkae/DPy8KUlFTyB0B+Wvpsv6qQ4mnL91/oc/Doefqofo+f7CVpdLp6+D1FF
wDvLh+FWgXg3vFmuJ0/vheIjPR4+16v5rF6s33OpR2b8Rut/vR2u/oCZWs/uli/rO+DtZRHAa6HH
2Xss+2nHbxj/19vBb8/z9eT+qQYiyMCWNBvRs+EfcHNdL95LY0ccfmCA7rYzBaqfgIs27uw9+fCG
wKWow5E8e6MpdDccfPJn55cfhzf/vfLDns+v559ubvOLwfvdp6/p5vagPBtiBjuOt9UaQ01TjanR
6gM2nQf05kMfagwJTVehZEzzi1VP20AV3SMLaBZeVv/HNE1vzzdMhIPd5EcCVbdJRIeVF5FBXgL1
LhvCjMh40PIHHvyID4Om2MeRD1cGeG1wrs8vDzaVsLF+GPxyPfzl/Gb4WC+CfjADnmfdh8ykQl7T
Td80EcL17C021QrFev3h660hTJXJbAZfV0N4NKhitgba28GHULh+mOOV4eViWve/hnF+cXFZHnlY
qFSPX5u+mSB2+Nv+R8aAav0VoXJvJo9DJmzv8MKX224q6YEX8WHQnGgPzy6uLw5wy5Dq9U1efhie
3eaf3IE3BlrTeHC9hilzbBxQO2JjWKHuwjPIb/yBpnokx4Pf6nscXuPwVvr6NwSp3t25/CY/wgCW
TcSmKHxxe35xc/7xuvcB4Ji9uzsf52f+CFnJQtOL848fvIPB2N8/MGCQgRv/n5sjrAqGw/vu7vbj
eXnpDrMgJQyXr2HdHGKyaj9Va0dqPNisRF+bUdP7USDWX1g4by5v8otjY2DIRvasafrvIUyBl1U0
IZuJuG3KzmCZH/wfUEsDBBQAAgAIAEBhvUicU2+/WkUAAP6aAQAiABwARHVtcFJlbmRlclRyZWUt
Njk4NTktY3Jhc2gtbG9nLnR4dFVUCQADiD5LV4g+S1d1eAsAAQT1AQAABBQAAADsXe9zmzi3/nz5
K/ThTl+n27SSAAGe3Owkjt1mN78mTtqdu9NhBIiEWwx+AafJ/XD/9isBtjGxGytxummr7E7qgDjn
OdKRznmOAJ9lqc/yvAsWfw4mo/E5SwKWXWSMgb+JY5vOZ+2MFtftpvzn3cc0noxY/u7j6dHlcf/d
63eL12uHAUuKKIxY1l2tRfvIsjxKk7aC33//XeulAQMXd2O2ePIvm2wTA3ROaBHdsC2OL+OKwFnL
qLO74jpNuBU2geizds7ycZrkkRcviMuvwd/YxJ+1y5xl4PCgjcOESNMOaMHeXUSjFhAMEdmG5jZ2
AMJdiLs6fosxAtvQglA7HYJlth1TH/BTfwEE3/L/TdBBxgBZSN/iEMdpVty7CiFtL0mTu1E6ycHl
ZQPjgY4IMvfhtmXuOdvogPS2CUHOdo9Y+9bgwNrbNw80TRPIwd5X+oWBYZT4DOynadEFugMhBDnz
0yTINa2X0fyaBeDiOmM0mOmwARhcHIFPafYljvKi/MB7qmqlaf1bn40LDndxoPp/9dz9vQN3r9fr
D4egMzx8P+y//7jVaC9GdzZaf/bPT9zDk497R4f8ooODc3EVLQC8hfWP59HAYyzUtI/H4JxdcRE5
OGE0422m57ra9vYu0IRA173o/3Vxz2lrYQh6ga/zD9vzA4z4oj/+BoBY5M/PINu+fZd9vQXD4//q
nX5a4u+8Y8tOALDbBQdRPqaFfw3+PWET3g9+OnpLx+OYvR3RKNkuqu6ClWeD1T//UVmMLQuhkI+l
jxCA4Ddg6DohNkLYsnVT1xBvOlfxB72hQz+LxkUvzdiCoNI2nzHT4UDjOEoKl0+W7I6LxJZjWRqW
lBQwajBwM+oLKRfp/AIuUdcNTZeT5/NuYRT8Mex1u38cXgin6HbZLfMnBeuURz8ev35TneczvEh7
NI4HGR2x11vCBmRrhqRGi9iGX0k8TAqWjTPGf7e0cl1XXEu/PEb5ojEFIY4MC74gTA/8MTz1/of5
RYnH4GuJZsoBMkOMHFgJYzc0ntApiHu6hukk81m5LvJZmxevZhg+8uvYG/DpYtDtnvCZHpwV2U4t
pJ5xu69KhDbUiDRAzFeNUto4S8MoZkH/20DPymZRcnXOaJ4mm4PvGJq1gP4T8+awwT30yICGDh0P
1O2EsmM+I6upO8P9zxtm8UiwFNrb666NtjRb1mrIoD23ejrAfNamcVy6e23oYcKX9DjotJouMWnW
4uD0+FPGgbCsvLR5ambVAStoFOflrNAR5iGgheCtPx53EeFxz5E2LcTBOqbJ2LQUOEGrcFvOloag
HG4Tmrrfxt2P2YivyLPlpzr6IPLSZQx7Cq+WUmLTkcCGZLDhwCewie3DxfFRJfl8kiSN1fGMZ27c
+6tze0kwjXv9G65+jnqhWQlWFylbW2zVl4bB8WJJvCbzjHXwUp5MJVf7cep/mQHqlIAsvAoQhhyQ
LtuBxNQfCygvETnOKkCO6CFDFpDFBT4MqEbwiUYFxzNIs6OUNlaDHvV5Vsiz59ID6+msrwCKocmB
mlJAfeZ7AVkEepD6E+HPorME1CTlROJuECWRSFG/CQ47tZ8tyijhmbrN4RFZeL4eAp6Ab99EWTGh
MSiuJ8kXUKQbw2xYqyFjMfSWFGQcMptgsEJjt8v/8r+clPBKv0M6BJ3FRtVoOqK7bFndjoVW6w7L
/hAuxp2tscpdcxIX7E/CkGVVlzhLIXHCwyE5UpB07pUOa0OqfHd9QAiTKaLq0mpmImtLw3JxQDdM
nzTWruHEy2obBQzhO0EUDBZwBemE56ACh6mLWNq+pARjGJiDkVr49dALPGLOwZw/hOReyw80Ccr0
uIkRdM7v4yMmz2Ow1EJvEJ9gSMH233XLRa17+QGL2RUP9SIsJjwLFwG8Bbn7WQyfzYfvARlvR6Mu
NsWALqz9vcEJK75y2nsfoxWGoR1yVmSjgFNOYm7/fTK8PD/qzcCUDCPhi4b7NSqu58dF6KzVdtMk
vtvzRTGj+9n1RGBwo+Qm5XSdZyCOhg1ZNJwogicjEWupjjVsymo3besh7ZWO5Rg+lyRFw0RSb2ga
Bh8D979PsLWguhdHfE11ezHN88jHxA1qVW7bufuXSK/6f5xGAvDg5qbfHhEEDQ1bUuCQrRtUXwMc
ssvumfbFXn6X+P2zP/37uM4QcXuDBVFnf+p661AlvTfJRIXM/XhMbxfNcXFFqbAt19kYMeYDHvjj
NB2XqYzIj9ktX0+nkks1nZs0CqqMlS8Q4o9yLbW4Wy2s4WJWDtJJEtCyNHRfo2cYhK+ZvcFeltG7
PX7R3WCSlDaKSWJrOpS1IKDBcgs4rQnTbFSHRl3Tkaxoz7HB8SQuIn7BLcuGdexrCsY21nQsK9jx
6DLB7lRys4d1Xa6HLZtCxH20Nzi/PDk6PT1zD4dub+/o6PDkvXt6eeFenLp77vD08rzXh+5Z/3xw
en7sDi5PeheHpyeuK3rL0nRDTiuhnh1UWifJER+Lg7SyKhdVL8yXP92UlYi8sCmR/yO8HHNwRFKU
4wU2aAoajpkfhZFfJppE060163l1zZEZVuBX9TzDMaBtQAI13ZYUgpkXzIVYFsG8lxxZITxbaAjh
v4hmQEkhJgwaSGyiE1MzkJQQpjME50gME5ZI+NSIIy+4i4O3/FfkrRIiRsoxkMVM3wF5QTNRh0Sz
0iz6ZmlWaKhPbo9oQq9YVpZo+fH8Li/YyP3CgxaLFyE0fYQFgc6jJPjCBP/lK5SID2V1tiF7iQUL
6GFgYcKAO23vjq4yt6oYi2QKz6zB3Sb6VoStEi1p/H5gBAyMqFCbX7lFRscLRqwviCe14UyQAG62
isvrzF3B6htzd8iym8hnx1zqWVqOLUa4VWNeR6xuefeXBKRbqFU93sCasFj9fXhVR3wicu9vJ0yd
ajy3gNvM9IXKKkPSjVYZtw277WY6Qh5zMO+Gk2HlT64r9iaqlZuTkrKwOh/xceWBC0O+gBxTD5oU
TBu6XhrclaJQWayUkkTDwJpLms1ji5TFQSlRts4C0Bakz+aQLlaEwftVG1rS0x8jHlVcdyxStWvX
v/lKo2JhAvm//fYWLV/EmsMD9dDyHZOvYQEP6C5fuMS+XCTG072hWST2ILpdIb0zbzJJIr6ouSJ9
2ZkfHU14IlNX+2U3eAKdL8kerArWZzQTNaqjVGRF/HNviojG8d3haBwv5nflNUM/HbPgiI68gO54
aRqDztbuvNx6r0kpodmk0QHXWZqk3W4RjViV+e7cP8nHiQZ3ri/6YNnFwSQrJ8VOnCZXQPxqtirP
7aD4DR+w6U+8C/h/W1WqD2U3tBzIDGqD0vKHO3Fn3m52fJ/m9UhfJkUU75Rnj7h5u53ZxxfUT93u
v+JyKP/V2XoDfiJ7IDdod4mHl3hf/XSmvnphcw9D2Z1dPvX0kP0E41LW2G3ZfWRuPqZGybJXmr/c
8rK/5feFqYkCWO8L85Da7U5jKjduUm9jduZnqwMHtKBVQdWBra3cNRRCbBtLFVYBf1oTmBNhnbR2
Th8OgLpOoVP1oM+FFqy2pIpUr7dq4XU94w3wr2lWrxB8Rv2nC7tdHt/48KZZZ4uT/fKUSA7N1k7n
OlAcTrBKxXPHcaclFnGcZ4fFJEvcr9V+bBlOd0Ubn4eXnScY8ap2kEde/apKP8zWJulaJlv+grVh
PajTz0+xqjkBeQelvhilpwjcrU6JDKY17ILPtrZhH57Ctimq3XOMU9t3ViiZ+RZp7aCu0dHY5MSv
NL2aPOUdPWdirZtPH2TarZ3QNQQb0EaV4K9FeLFSNradclNzM5RD7DpuiHKIHcJNUg6DU45v3EOn
KIeiHIpyKMqhKIeiHIpyKMqhKIeiHIpyKMrxFMphPkw5JHyEmEZg1An6B5pfXwhm0BN+cFhUnrEz
XyBP0mB2t3zzQHl19UxYcde/LTLq8wvr42dFJgS3xey+aSjNeDDJH9EC7K5C3flhLWrcBY6I7NNA
YjhRoIbzRQ4ndmQfyeLD6bP2cP5wI7liEH/E8dPlx89T4/dyxs+QHz+7HR33AnHj+iSu6c+P1h+7
y0z5IYe2KpqUvEz6yUw+sjAw1Mi++JElsnUEYmFMyE82si1zXnrooEGwswCgbp/k8ZwirwIhhr91
bPHR20bbzvKGr+43rUoIxCCyZSJioTCAP94AdJZ2gA0lK1g+Icyxw7nWISt2lhv7eKO+CZnokpUu
3yaYYbsxJEfRDUtYnu8lNL7Lo/zsuqxhcpW96ygOLnPWUN0Prtir+k57uXqTUGwH6LGK73nSDImu
y9Z+OBIDOw8jGVevVulMkjy6SjjXiJKifjrCkiwCcZ0o8PDDOrNJUlW0dEOyHCRUeNisivJzPVzg
XhIcpVc7D+hurhdLG1R5Imo9kbsOLOotg1UKlUH1PqPj62rMrdbjtmuhsM0GgPrZkbbSpeqE0URO
nY0MjzbUdejsXTYJHbF8TH221e1W79DYq+qjUZoMo0RsYU4dsMJYH6yezIGk9VzsOlj0ED8Vy9Qx
EcGth2PXAACZs5ZjPgJZ00EecflsfB1pkxBbw6mfaNHcB3lwxlAWY8CWuPwK3as8H0sW1vk6Z8OG
1rOYJuIWi9E44jllvVlV3tLQmPppciVmYlC++qPUbBoGbD01u4ZuHwb4Id2r9TbjS2sPTbdJ6/nY
dTbtQkwfu2ln6bD1COwzbdph88Vs2mHyy23aYetX3rTD9nfbtMPOM23a6fD5Nu3EM7ib2bTT8cY2
7cQTtpvctCMb3bRDQWgHdYljr0hHkb8zy9+Fe+5W8YBmrH/L/06u2CdGv3QW2rwBrT8bd/yxUZrd
uWlWPqQm8nRbdh+KIyShOb/DqbpnpHxuvM5tJXdCbErFi0/mt6NkHOTNsvrNWZaO0oLxrKsK/Qcs
LwXPuPef7K58ddcZjda9rhFN6f/eCZ62u0QY/zzj+TsbVLVYEFl9sSDYDa59TMeP1vkohffI/eor
v1kTaBi+2IVVy0dqBLtrbiIqB1IOtNyBqpgl4qH04mWZJlDup9zvKe7X7f7firsjahpryLulrtxS
ueUzu6Up75bIfPimCeWRyiMf9si2MxJZZ3ScQDmjcsZncUZL1hmt0Ah+tr5mSdCp3sgsuzVtO9Aj
YVUUeOLWz3X5wkiBaeeJkgLxyvlRlDBxuMfFRgEtWN5pPtp2vwM/MDqeduKy4dp6A/5xXFu739qs
fkmdteR+kX+qzxr3HxKLWNK3MtiI2ezZ7ChfQkakb3OwEcHGM+z8GsSWvtFh8zu/+Ofb+dVf/s6v
7C0Xm9n5lbzFYqM7v5L3Wzzzzq/kHRdP3/mVvMPicTu/yHk5O7/w19v5Rb/0zi/+fju/+jPt/Mrd
niG384vNTe38YrKxnV9xs8Imd34t9YYY9YYY9YYY9YYY9YYY9YYY9YYY9YYY9YYY9YYY9YYY9YaY
53tDjA3qL3ze5E2nAfY9A1qin0vpYq1zZG8LNWBoE69aUPf1lfXDo/Qryy7SvSibV2YxwrrsTaMG
ZOG0YibUxTO5ndmx8rvFeeSs6nKEyObf4stYdX+u44olYr6wlWoaN97Wz9rpDpFNPQwYMBvNtY4z
Jm73HaTZ+0q/CEprKTcc2bgfhARZda9y95pVIDvzI/cLjkMasjKvKb9dbhLXL7ixbNkkwEEMW/bT
K7AWxoZsPvDMFVgbfOcKrPM90iH5gPxs6RBCv146hH/pdEj/fumQ8VzpkPmM6RDZWDpkbS4dsjeb
DjmqAqsqsKoCqyqwqgKrKrCqAqsqsKoCqyqwqgKrKrDPV4FFUHEOxTkU51CcQ3EOxTkU51CcQ3EO
xTkU51Cc4xk5Bx9I0R+Ap4Lc6VgMPrB4rDiH4hyKcyjOoTiH4hyKc6wfKhyThLNVrgynVTQ940NQ
KRykWS+OWFJ8iorrC5p/matl2c7Cmy8XvtMNW5KERKDRGVyN5rr8XIX5fZ6rVG/TMKQpCaSWba9W
E0TBMf3CBBvau6FRLOL2GjZ/k6wY0mSFgzSfTFY2bd6Uxmxc7qMJDqQkXIfgbBrxN6jPplUpUqRI
0YOkCCtSpEiRIkWKFClSpEiRIkWKFClSpEiRIkWKFP3KpEhXpEiRIkWKFClSpEiRIkWKFClSpEiR
IkWKFCn6lUmRoUiRIkWKFClSpEiRIkWKFClSpEiRIkWKFClS9CuTIlORIkWKFClSpEiRIkWKFClS
pEiRIkWKFClSpOhXJkVEkSJFihQpUqRIkSJFihQpUqRIkSJFihQpUqToVyZFVvcRxMewuaFuzkZi
nXfFF9PR+FHMx9BJgO2GUxXXUe5WcHmUjRkbuyH3p41F2HmcsUxpfmR4hk/aS+tyxOvAEoCeaFnL
JmTZWJK1cKtsHevAG5WrUW3CCqI5ayS+Fy/yjyu2+dQEKJ7mfY4pmfcJ8NAI5uBned6Axjn77lZU
zKD6RkokmcRxW6zQc+a2fGB0zIfDpzcsuWL/yIhYunRiaFieZ7eN4B7qT7KM54LDqTk1yZZO9YyA
8Wgyk78nii8iudxZUDmNfC0cr7fKMFXN1vNJcpSm4woJdmzpdNAIbN/cCJRGCHqKuCp0IemU0Qg9
E1cvsV3IiOqwMc7S27sGCSomXOzO7CW4T0P85kkd+FosobOobXDmJPLADUVttLmojTccte3HRG3H
EFH7K08l/122r2jAQtyWQRiIKMihuV//XTVvYXRePkYMXz5GG/jVt0KDr5xHg79sUhesQfnltKBD
jG0vKra6GgAZve2C2dSGnkcDj7GQn/CaJxAm0A74B37CX3VFMDshoFoUBTYKbaEkiJqXTH/4iXx6
Qsdeeaz8V2gft7VTnZRXLD3BlYDMbp9xQizGKnNWWILgClgI3TuBDSIsQbh9xvKgLk7o7RMIhqJX
kLGgHZmGQ4NSidk8Ub6qPCwt4Qvv4pn6C7lBFsYtJQhiyOOtn+FlY8JlaUfpVcRZOuidXXZLb4Ja
P8vSDPTSgFVH5lcS7YIzfHAyGXksq04iQ9O0/Sih2R04HNErlgu3af1AsM2FhK0f8NvBZDQ+Z0nA
souMccf7/ffft8DOvjPoD+D+YHsfY7KtQ8I/GYazjdCg3yc9QvaRsQvefUzjyYjl7z6eHl0e99+9
frcobYoC3iLohWY5ctugdZC7IfiNz6RPzBOh7ILlxfA6GtXTqwM5mgHsOYOB3tvW/5+4a2tu48bS
7/oVeXTVFBjcL4+4eryT2XijxDuvvDQdbmTRRUnZeH79fOgmKXYTpLlZ124eRFoNAd8BzuU7B6cr
XAcivDTEehVJNNGnEJRkzLbQXJp1gkuf4Voih+l3ZzLDy+fP293zKTTPHItOMmIKB74iPAk5ZyK9
yCornlIuN0A7nfgU3ZItzBm6ldGqortMB95oyv+CP8IHMjah/lKRRi4ldZZEp7CJPDISTFREOsqs
EVpaw1tIx1PP1rv5p666ye8/dPANyFK+95MxpwKslXFTAcAQ7aIe+4kA2Iy/bZ6bwGUJTGXoIn44
nH50xGeeiXDOpZK44sK1gA9TtgEPz06AMk5ddwZUgUSdA724xZYWL2UORDMHfAr7HALDjgcrhXVM
imQvIL28t/uHp1jnC5zkFOu8W8CnL8439Yfu43z5pQ24ZI9djCRHmwCYw7C0hB5L52QwKpZoLm/t
MPG1DR5G3A0Qa8TRWs3Xr9CPv+yUtdhm6D84oVBixmcC+JJz2mjOiBbGEmFZIDD+QBS1KmdpdNBV
Z1+edtWgvq9/frKYRXSx08UsVA+BYt1H9O3iv5Yzf7BnLQ3WNMplplQiIUpORJIZe+JwpkWZJI1h
xsSTNSez3I1XEmfLO4rFlyOV+r132t+9sbM6Fj+BQoiQTRDwKzzBWmGeJAiTSRSce8GNtFEBxX1P
Sb7/YbPYwft/Xw5HgSNYLruHWri7oFYnQ4f128OGZ3cjAdSyIZXqJi7pvlvW+PWfQz36uzeyl44L
O+N0xiFi1BGRvlCiQ5FEZA67dsEQE3yyiRkccDkX8f1u8zuEOoE/XqgtxnjMRJx1QxxNe3Fwomkz
//i4fap5ePf0VKPrcAFy0Bqk1hCG52yzFJqomKr9wLE6pxxRwXNmk6KmhLHWXJ93DNHKBkQ7mDsG
x7f/+PnL5+5Vk421M9FbkLclxAILQuhEIDcxwyWVQLj1VOicrIj6qh5V3/MW2/brZvnU3tufuqft
y24J/3AOZSKGbYjhsNOjgm9d8b7b/b7BlLNyn3/HpjxhnzmjVXUYJjh+rz5MFuOSyNAbBacbnSBW
GgQKRB5E4cK4yl+V8Lje12zlgOfCwP3Tsdhu0RB7oSaB5W/dDoxuC0lFbylVNmM0zTRy4jmHLzLU
gZB5TYJ2PCGuxhzYVdkOk7bhHp6O4LJufg6XWzqBu3zYvqx+Q3yN9Usfu7kVM21mspr5/itkyF5n
GUCOvPCeCA0bCS4KUjTDqZUSLA/Xz2e/QFuGw9O7MVzWkmHYcqjl23flaL5c9lrkRQyMedhvJRmU
WuJpZqTYoDRUqEgrr6Ls/eS7H28wkePiY8iLBmTB7CSkr+bP81X33C2ft7un5UBEenURTiOsV7+a
lWfS+EzA0hUCGIKI55mSJIoHEYFjZTf51fq/7UqHpS7zk7Nhd2MJXEusxcG7xg9/v3//8PJx8zgh
14xBHF3JP/Sj2CgJ40kgTPgE+pcyUQJUkFqfg/RXT+bHz93j2x/a4Ifhm73vamMZy2N5Qx43tY4t
1vz4cJCiWvNBnITUihvQ8CJYQWCHz3LUO0QLHmEgJkdv/7Q4w7MxYNfQK7mcRusz9a1uaO+IBgsJ
MQQkfrAQysHFglfEIgYhnQBRCcCuVfjzFrJ/OIIuV10Deicne/2P93HvvuGCjq7Te+mVQDBgBVxO
SK1AHZkhVDIZnEqRKn6LFbzO3gb++nyE3c4bXtSu3AT7aex59/jc7eqd2xvO2czMePWjw7c+IxeV
fSrCJPi60NCgIGwkLiqqDZ4pFW+Rp7XiBc/aGDmSEaHiXEbH9URGX3/e//T+uzfqeDraIqdXxpCc
HGiJLBzJKGUkZkE52C6YdrpFmsPcbQkOT0eol4vVOeqVmIbjYem4fVxvPu4vWWDOMyb7+Fa/VJae
SkmmGBISh28qSJ08EkkSpafIXYpWRly1icYqFwjs+cCRVCvdoIgrtzz42X3t8rF7rjMfnKxkvNKo
ShQ1oyoyIYk2lWpE6mEvYIsqg6Qz5NssnqY9w3zfX5h5DM21Nnw+PwTjxT9rQkoPmET1kjwVK8Bc
EY4RiQUyMuJkUSRyq5UwjgVVxnR6NMto/U43aGdn7HH9p08nq9djBVPhWelIeIDbAGnGAUuBDWEF
6p2Zp2FC5k/mGK29lups7TkV5nAsf3x6wAkcFue6DxFMOW0ZFIrRAEbLEgJ4tpWz43ssFIFwIvzp
NHejpRaLxvorM/H+b7vHblCq+cM94nifjg6+FOo8Y9VkXSk2JcYIyBAyUioN8SoUnAtDKHZB5HyT
A2qs1Vb5xsBT2RaikbgtzkPx+922kpNu1TPFo3Ts6ItcMrpUggTlAkFN0DrvEJuzRRplk0R6Sm8R
rLlQW7Tm0LFwjbC9EPPl5OB6D/fhvS+vYZvN5Ez1LgqfNXBwZpgsiIGlFs10suAaOpMcjdSQ3AlR
bna1WOqKq8XTkRBq0TghTd1EiL++O4SZip7XuKd49UnO+eQFV+B6EV5A2wyVKzij4piIiXOprlO/
imqz7HXo5gzvFU176OvzkayanxPdhRF2ktyuuqffnrefn04EdjPRH5fr/XDJmcENc6ICOK8w3hDL
tCPJSxsyM8id3E3sfVjogLUOuMDfzweOBLMN972wSzsxs7Tp+8YAZnSYPYdxfaKueY4is0CUrwSS
Kw7mWwrMLrtahOSe+2+XqJ/juSD+2bix9MvGsToxn6RlLUXzP9/XaNYnZ0b1uTD8Sck0MGKFAonr
v1EkNKBwul5lUKHlN1do4Lhgsz/f343FOudzixVT6+6Ms/pfIgJEn9T0QWL4VmMX11LBFkimNXTa
arI1DaVOei6pMjbmW2kqFrnMTPFwBH7Fz2uti04sJwc13Lj88QzuoyQCG/5g+FKrLVlxbuFpwDEM
MhwQgCC8JM4G4zwiHstfV9A6+WXU9ekI9tqd8zb8cn0gCED+afsYd18+P2+PdWpKNZuJofyVjXVG
2kSKg6sQEQYVBPIcR1MRcBksO9XkbecznwJbIqk4A7ak89WBNZXt4/NP3cfN0/PuyzFnF7LHFLNk
yUZer8Jq7gVdhzNDtov8JUaqozb8/07NR8WXc9hjqeddQ+rFahKxfpg/fvSgJV+eNr2bMwOZqJ81
xWdQJJMliUqzeqtSSRI0Klvkalwg+xfxm4t/CulCreNkxEhozfS50Jqzc65xP39cLbZ/NIr5IRcf
TE3jmHUg7HDzLnBoZSkghjwYE/SNLGO/yEWesX8+FoHzlghTpnFIUp5qX10tvT+dFjyGcNWHKgYb
qrzbFAYvpoKAn07wBC4gCDvqY7opCP/7sN59Y7lToc6GTWSbN2STU9mqe0kv3fMptRXae1eSIlxb
yMFkgnPQoBXFSw1ua3VIt3rjOvdlx1afjlHLFmplpmn2565b/vpTt9x+fOzfbRkuV2su13OHfU1T
KSY4z5xEBrsS9Taw3quQInDIVmWRxU3JR3O5Cxl3a+hYRGUbIjo6OZifuk9g+x823X+/MqMht3Ku
OkvnNdeOkUATLEcGJJuGIQeB81ZFpqiUuEW082UuucPpuLFQjcRjqVdHv798+fz0mrFKaoeas/WJ
2eKI7s/HVHGspCA2EooWuVJKj1PW03nGABpVv6Wl06pSrX2/bHpNqQQLOGrq7DLNLmpPtC2qXsMh
dWYmEgcHoZOk7Ma6Uj3rX95dVvdf3t2N4TWCpVW2VQn7cJqsqRmdiSrA8KUSKBMFTtwSEznSbCMU
JID/yVZag3AKpmhvT9euZmujZG3peGPf53Y90eb57+vty+NqXxAb9NhaN+OsvwalsNNMDdG+UKBH
Qh0MzFZp7XSqaZxx10Pfh3Kc/gL2kxEjAeaONgRYTM3x3fI1qkKBTa8/9aNXY5FKFoFoJVndfA3N
CQHuE2aYKCyjsFs2/3SNC/XukxFjKRbLhhRLOSnkfX6YP6+3u2OblO5reDILSQ2SRcNq64IG/Ijd
l8xqLr2KVNJrNbzxpGNYq/NC0nJJVxMN/3u32swjONZu+3Df94Ed60hMzZjtcyDDNVeaeMMyXLmH
K6+1Nh88p9YpFt1Nhfnzpdo7fT7ubixDQ+27tWrkDccTjfPd4hCpGKuup7/h2fsgyCAQGTIxtqYR
InDiva5pBHfaCprEV254/kd57iuWC97q+PxuLOE551tx7g5u/lMHTdzNj+ql9aw2x9CcrM8Ksvna
RCa9rneLmfBgFc+aZpb52M+PJrobr3bOEFbKTVvbPmxW3fbn7fahJ557boMUc4Z0sieeIeVgBSKP
RYYBegaPg0xIZQrTldymcj1pO52/vYWnI0YSdI2az6oTU48DelfuD/e0sk8RItfwhQUEhlvES0YR
p6KFojjjLTMg5Pr6xUE/50U2We7HOAVr4TxW4A8l/O3zZn2SzAmQr4ENM2lAdcC2OJx68p5YRZHT
eaSYwipVuLt6NXAy7ymujjdYe8dld/R1+0yAHavzqk84VN/YElVkypPsBdyIz0g4bPSkZGQhMlkj
aRpr4mS2MRI9byBx/Fin/7w8YFDKzeSQeyscmeOUV3oBDEZKAs5GCYWN2xitzX3TwPnGHKcbg2i0
i3VCHG1y/vJaA4BHr5vANUX+HwhojYUagfg46SjhShptgvWqj1cnm/A6x914lYb8C7dqeMFDM1C1
RfiQXqlf+42U8CAowROwFVlLtow4pIYEAbS4xGKO+n/bb3Q64m6Mt2sIMZ+a48P24+bxabjhP02W
oNfJgL+Ab7kET6IsCaUYkjJLvmgtQR9vCUz9/F/126co2oNPR4zlXK4acq75QU/+7X1+O2lvwaEI
hfBDQoy1NSqDVSoPf6lYoMJBaa35Ru0tr6uPQbeUe6n4tMiQ4Sgt628w6mcNOjwU4aRShMWEg3E8
Egs6g2zc8KgDK0GZbxdQfb7AO/NInpU752n45WrC05665Qbp46vZVhuxUKhEC9FBi9rODkXTIJ2O
GV+Mc2BC/po/Hc05BtXoOsAvFxNHv6hvGT4dY3t1p04zlRiF/4y1jBiQxXnPPGGBOZV8zMyza5hO
pxxDWrT2aeUm+zR6RecNN5bP1FBZKt47FU0myququiXBo6TafBJK4Aa60fcoX0R2OvMY2aqBrFPz
Rl3lqDw/3r+mDhpRoPYC9J/9PSIzKqbaomeqZXEHNdVIiTU4k7eIXfwbNiK+IrnQCnTfSi8g36Ih
9Jqe9aU8bHf3Xx6XtdTn9sTF9dTFMcR+HgwB36tN7tQh/GVPTBDFKVeodPmbVzePeC6FhP3jkaxr
eu4n15Sy0xL2+/nuCZnDaQG7CqljkWC3iOwMnEJIU1s8kEnBncJV5uSpSv+PFexT1Hdj6c6Pd83Z
9CWGWPYlx+/emMqnZqYG8eFbjRbSJJMS0nZH4aBcosQmDk7tkcsnhvD4lWbI4/wXjuvw+G4Mc9nC
vjwc18vjkYPxWjhT9fbaQPMiS7A37goJlGqSeBSUQ0MRzZuO4TjRZPlVa/n1ZOvgfF92m+cvv26+
ezMYhlJYtW/bSPUlj2oODi4011eBajMpknJuWIgcTuz6rvWp2lfV5H6P4K/vLva675+P5ZOyIZ+U
U3fXg4ApqL7PSVV9cKEopg3UX9dspaR6D68ZYoVynlstc7F/WrLh2QSqakGdxtbV49PT6kjLjT5E
DJcjuI3jJFHosIDhEscDFEOYmn1bDd5+LWKczDuB1TVgmW5yxf/2/v54QTJ4TGQkvjZNShmhqMwi
3ltE/iJzDsLFkMJ1Z4IZL7TI3N+PEc5NA+GCTotHozdY3zCqDhkNAr1D3mxIjjB6wVVtPUJqJTXL
ImrJZLkabEczj6EtG+onpGo0RP7yvHno0ws2lFV6ZMJSG0MECUyFgZ1zRhBVwQoMrD1JKKgMN1d2
6wJXirv18d0Yp26Ar5cZ4nRfa036+eHpNVs9bGt9n8jXLl9OpSZCIFsMxQuSjDPSK1aMuMquRhOP
kMlWjJPsrOj54/3Lbj2vLbJu6NB3Q3e+z4zF2mgnU0VGi6iXtvhntEwwamr/8PXE4DDzhTrn4fEY
daNzdC25nBYkhijR/fHcPdYJjwpbXy0Y2haDVzYIGogVpvJWMFjrsyCyWEk5Sy7JfEPb4mSJEVjV
KIyvlRDHUtl8+esxL7eaD10Q0fOckDs6KCu1hViLVDi45HOEIYmgm6hO5hpjEA3rUVId2wQ+ff71
uDv1nUmNZZAfkdS/FIMtIQH/EU8FaLT0SUQ6uY85zjBeuKX5Si4m+pU2T7/53WLzvDteDOje/9XA
SFMpMrlAuI+gE8FyEhQsGdqGyBEST+H6pcBk9kuNPKNBEynWDSkW56+szXfLX/t3WWr3HN130dH+
1U5rEUkYiS74esEla6dvJrJ20MmUrPPu25H7I5BLEX7/eCxko9tubfR6Ep7+42W+e/7nvngNtltv
zzS+uP7VkVrQ9J4kOFUEelOLIaCAtG/d0dEN13iXpXydvI389fkIulk1tMxyNg0OtVsybYfaUw+c
s4Gve8s5447iUHzt2EUEC4FrEqMy/l+8XUt3GzeW3utX9DKbUvB+LPFMZ8budsedzOzmlKiizRNZ
cmQp086v73tRZLFQBVJMRycbJ2aVgQsSuPe7rw+BmijiZdXxhxnONBvh40p62yg9wrqeQ3veI8D3
u1/BfZqgCgY1lOcmAYhiFqtOA6BFgz3ZHA4sfBJlqoKqq2FqCQRtSNAvy1amNRUz+z9v3N8ONfmA
t67BXKHuIhzgK8Ve/xJtYVhQJJWAv9KUQbYkA39xp+PYpw0sPq3lb5TdbO0KtxwiuOtoMEfJNM9d
0AQgH3WhsxqsGpFZBmqlMvxs9Xo1ci1aoy9r298uccubHryKj/PggLiWqkQH8H9KatQ57ykIxsFH
4ElE0MZMdBiBi1HmELl/PQ1Sy3OqIGj+zlW9wMaB7Lf65IYqGWUDFpcinhwrWgkn13rsegrEUQ1Q
ogPojXkjD7YQAYeJ8P04L3VM5OKsdpnmTGK7PK+X0+gD3w6WNMBnnmW31bUtCFTyMXWJzQjgSRj0
8OCkCprBsdC2C447LSI4Q468+BO+lN+u37mqJVatZahlDHVq/Z40/OyjvcbM1FvlQP/oJOAXoR62
I0fCAvDxM81UpSz+UIP58fliDbq1hmU8cFO1xBwilbakXkpBUDG7IQHAiVjVTmVnMsFgvWKaRJuN
T+cR9Wr8WsxG2HI7bCbA9V3+3/cf+8fhdtWvGDwTHuB+FzwFROoAm1qRKIYvTXRgWPML3t7F/YoL
GWbyI/v8qhjCEiGmMoI5l+M3lJXSXW8lQLLYWcwocapFV/SVj4FKKwnVdIkZj4Nc1fPIxuR6Cbfc
7vHdXf/1/SEVsygUcFqjXcVMBTcAFpPpDIUdquHIgcLQ4KJcVIRXT3Nis1bv1ItZ7wRLJNUH+P/P
7/OymVhkBzhfoMOPaERSPFtgnEAtOSuFSPIFsHh5tuU4+1Utn2kIbfqT+vv7v48t3NdkLIIkkhxK
O4kNOF4oJcUACgHDWxWxay9ymTULJuUXXMSTSLY8qiS/YWIt+Q0zC8n/GcI8dxeCEywlMP3wr+EP
IeDQGUx3CSmSAoUgxCV7BYZtCwoPFmLatZgDW8aC/vr9VLmApYwY0NCAWhAAekqNieAjyqTBmDgP
IiepO6XBdQ0UFHB4lXDhJMKpdpZ1ZQOuZNtYHl/WZnwpNZLXj8ciyXk9Lda02X1tG3oXgMijRJBG
HMHqKpsBrqM3VX6kiP339FUCpMvKzQsLPOtvgKv1N7A9Fsj81zu2OPWJR2ISJfAzCiSiAJTnKZgk
xrmTSntGonm1HCtrHHoQrSHydmo2RMMysjTt7j9gkOsYT2HlpEflwI1SoK2iZ9gvBk5uBEcwq0iI
YTZLIWsLcGLIhVimJdZk8e/6+w+7mR0th0MKJwBNdSxJDuYdToglGUxBzprSQJK3qZZkPsp8ekr6
VYTMUiqWdY3+7nl4enh4+oixW16iF+W/W4wyUXCJSPTwgxKkqrEGa3Ql7YLRiDVJAvP4ggqcxj+l
CKcXKumpJA3p1aqPPOMvEXePhYbha8HgBfhRowvYM0Q6krsoQwCD5ADCcnDxiIATaSJlxpMXMck0
+svZunzB+4uX6lWvy3Hgw14sylHicPP84f3XTzcPJV5M5YjWMX+XCdcK7K5Gx5oHQzpDkAjDgRvr
ogY3UV3WRXec4VT73PGNag1s3UCDHy5NMF5jgJaMF59JFATpQB9S2GghYRGzlAGwLTakOiUBi3kw
cflVLANMfcIowJN6Mdub9WLkpm9Q9+zJrNAJLK45BSCUE+gT8MexvVZocJoy74hmUWTtAC36PxRT
WvhXZ8ispsfV2lTf2GxqoxbB6JGodorh8EMDVowOuWV8FwLBeImUgJgxpJOTI9aAu2jPFt3Ox63l
2jQ2kBqWdElINfLloIJLUdbIULDX6T5ry4gG8bRCeATa3WSszY7gPYVgk03sNTZTZQlOs5NMr1RL
1WxtIqi+oS22jHLU9ql1JCkp1fOghvfVItFlY7LqNLaqc4wBgaYGJO4NgFU4QNq7i2ky5lOd4ciY
v1Yv64a1ljUslnVWdTOWs9CMdoTHAwWeM7xjnuioLAla6z+quk8rYmMaZ8OYZWAR6xn3caS3/T0c
sE/DfVVbB26PozLA+fDIRSaxyi5n09GoI+Amnx09vwtXo5+KjC9eq1Zj9Rq0U7s3K1gc+bj5uPt1
OLa3wBGX4ykPVBCtALtKoeHwcMI6zxPplAR97KUF93RRbroYrBakly1B9ImWrmJj3jx8+LA/4RNz
gVPgMQDiRBZHQEkK04oCACjs84SGQjn6e9q75vOcb/Wav7lYmWmtzDR4CxblMYC7DFrAEmhDrUWJ
R7pD5BqCneKdyGAQJfMSPP9E6OuU3zReXKynsWUO5WszCsddSR7mfjOMmRW+533ih6gQpr2QAC0w
7AnVkXdeuNAFaUOyNBjwIS75qQ4znNDH+6fVEm6HxmaDD8/Uuf3lG4VRADXSNFqwcA4Qr+To9Hvw
2iwcBABSmiQWFCDIPxi3nr+xEF21RO8PrsPn/tOMPYWUDh4iAZ9HOAMWEwGwcwzGkAwAJ2PAMHu1
cBxmYyzm3jbm3tLD3D/0t7v+fjMsYz+GJPi2WJdltpiJEHAmFehr413m3oNE6ZW8wFqCSviBrd0G
+GgiwNttnrGm4MgYKTkFVVfAp9MOzlcnCPYQOdDURokI9kYq0HSA2vJC0S3GuqqnVA052LCI9u7u
t1MGXRzr61miKggPtoIzDW6XBOgYBO2o4OAOgDZ39GyQ9zhsLZRdn2lGybLY/VDpta0yAmPFFwB5
zDoJrAkHjA5/qrEHwecIhzqZJCVALW7zC1ZtnOKlnMD6vata9mG9IKaXPUz98+3u4fppHw1y+LdZ
Xw1lI6/VGF3XJgcrOiEVIlmZQf9a14GnC+dHKGbtedAxH/yE4p29cVXL3dgyXJnj1n24/3XWgYry
MkdUJCx3xmv4IWDDwoG3qsPKNAn+kg8qLDftbJSreqrG7pC3y3jBYXf85Zux+R8gKBwh2Lhov7Jn
HFA2aErHkbC89I+DKmKgSSNzEbCQu2hjnN8OldxyaBx5I5dg84f+/wMM+dhf38Beuhv5I8UYmbQo
O/xpHINfnDmFCoxi9ZzFrioSqRIa9nQjlDpX4d8u5/gW2++QF/Xbt/3m7++Pz6sFmDUzNHy4mSJu
d7996q/lRHGLrmUkPBktO6cDgDIssTMU6asD01l7+FAvcujzMerJN31j8mGqFX6zux/6R3f3YZh1
xVHKzEjBEYIH245c2sgbAuYmBdvBnkTmcqUD16/G1TxsYIATDSNNMatlWrrGAszKZbnYPyJi37Gx
uqBfgbuWAGYxHGvwkRwOG3wBwhCDqbb4ghPyn5RD/yOeqCGJ1ZJ609AX8OHhl/t5+Prpw1ThXX4w
rY2QRrAuJgTzIaDLjuyDPFIBCiik2OZMmY+1EGLtq7MbypdZzWPJpRCHVKaCH8Vgj5RhKA1xFJQt
+Bcia+GEsLClz9ZcNmIH7MY0LEJphdJNB6MfPj3cIyvZwwZveJ4lVpLNznss/0AazWyR18ObTsKX
RgLeccB/n4tRzfSCk1G9W6+vp631Td/3L8/9Y3//BKdh0hfqQBitXQYNDzACLI0Ze9RBe7ouGk4V
NYorwZrf93LQhUTrvBXb3hwViHvnwn8vNEcGMEJdAmyNwUkO+qLzAeyE1TRZC8ZLB/pnaY6ZfNXC
tsM69MdnXRT7Xdh/OXbvqDHmLLkL0ndEIo++BOfUILkSI06x4DQRiZ3b1tOAV/XEsiENXW1svF3n
hwGTucPjlGA+RFYUH5WaYNKCDwYnDmxGKpTt8FdhgpcgpSb2Mq6IxlwnNnbjzXp1jZAffLg9BCg2
D5+/bnd3R5+Dmj1BCgnKRI7t2KVqK2UOi6HgboJnCU60A8WtTtBAzYespbldZ064IMs0frNiBmuL
hU1JYemDzZjEkchjKQycu5QTw7ZVJs+XmJyHxeHbNhwGVL7O2PPt5nbNxjFeOTLKzAV8l7hxkzAy
SoXfomYjIYsFnYfQPiUWifZZvmTsTiS8w/7ZXFxB6Bq4YVn3QtybfvPz8+ear0jtmR5VibSD6rKK
YK0ETw4ZOhV882BSiOWORyWIjhclwf1ipvkWHp/V8t/Shvzbqenwdvflc/+0meqT4dgdompOUbDA
PHRgkN2e1Bhjg1rGSJlzUcV22V49ZiUOJQ1xqO4Li13Z8I/DpuJTY3wK5kutbc4OvN8I7g53Ebx3
ZLUCu4COCaPxROvIctRaJH3TEmmYvqGvd7fHosbD5Schgq+F5UMO+xx4NHh8JNbMSTjRUSeu2k0D
x+EWUmwbUmymIsvv3vy4KmYS4DlJbWPnFPaDOGpBiZPUJQawIIGDYJJ+pWKmw+y1zJvWj7lZ9rP9
bXhyz5i6laV6ZSxkZd5HLeBnNIkaJPEC7wCLcpwlXIBhDWCELiTxwsFPki3gw4XQm4bQw4RIV/0M
chSYe0+oDeBmW9x8CmyRc4x1VHgJW4+bVfr9dNsCTNioABPMbAe25iTCnu056lOK6Rij7ZzJeNES
4CTwaF3nlWMWfFpLrbu4XLM0hJ+u1sTHleDMtgQf+MEIup9yCR7MjWApsBWCRmR8igYJiiOS6scI
ypuKBL84fH+G/UHuoSr8VstRL2FYg0FRYhiV5Xw3PCLdDsbw5myCh1+BWHAesQIvBuTdMDF0eHdC
RxWgV0+EseGiDdyY5gQt8frFalliffkBfjjdQ/Nx2H267e+6/sv9kbLDmkM4T0fmE4+pUyRjZSQg
QmdZ6qIjKdvI8WqKen+vB1zIY1ry2GPh/aeHX4c5YOKlWBwMPFKrdSokUAxBMdCpOXZ4C1qKKhl5
ohtrOd5CmL4hjN0sVFUJ74b+89MzpgnGDtKxsVpnr8DuiU6WeztkEJ0BpNxpx2KKgOYifZW0/1yC
M5cx7N+o19jzxhpveaMMwP0U/hpRIeuCUaQGkz+yg4LTCN6PDl2yGnk2sEwvGVDOWRmN1X9Gq4sp
YnGWMySx+Lhewa1oreB2tQIkRx1tStXKCQBWAKrt8B5MDOxhf6TAOJ8UoL4BGV5Gpn0c/5Twh+cL
6YeG9NtWnnxWz3TUKCZq77CBKXnM5RANri8Fm048j1ZzFqx8ubfjhUqm6pVa+q1sSd8vuzye+qcv
x9K0gs3QPDopFYrYBYcc4ADFwG9Hjl6aAZQnIWQ420Q5G3chVgOdgcFdfKmL5pld3h1uaoIzUXop
KYhjA43w7TILGxsgreHgiKEpTV5HG93F5IM4/pkGGnh6VYvbOJjSrhrc6uIJWipFJJgTWar/hNQU
djSoMrzMIrHOR6WRDJ+jxraaXWRuLiibOFkyATI3QGqJvu9vbnoz1vcsgSp4CjEQKjoWkHcIk0ZW
E9cxlRmlOWv1QpHy7wCqMwkq2bVsbCS9ZY1EayGla7CZASbNRhK8dxVNU0ZWmJhsB1hWKPCqeIr5
xQNaBj+9ecrjueCS9mvEJekxdvXbsVVAFkfTBB00GHIifKGdKokXgbEHm8HAU+cWtFO/tfoEYArW
mnciv/5X/3icmZWpdYgKnHGJ7V1uJGkyDu/GyByverNJJb24G+M4SDU5E43J8WbIw81U8FX99La+
60+PTPaM0JRVzJ0kuNmCh0PCMa1vTchWgsF+gcb98iupVkIs1qAba5BiYc0OIVT/vN0iIyMtrPzm
et9ZD4g7eYLBAlJuLYXdZ53vsgYrbanWsKxL7784znL64ovjO/VapGytRS/ijOhoH25POPwsWFwO
iFgHqQ322YD2ogEdPYUNgRzQP/HEcvNSi309biUdH9ZQU0o23WP25Ze73dPAj2Zr5MX1AayT1qlj
ApkzEmA6R6PsqEMWaQEGmPEFS918oKt6tk1LhOWVIGOW9/l+B8au+Cc/3o8NzfMEb5KcS2FZpxM6
eDThtcWadcLZAPDGRPlClcI08pnsLj5erGAdUJTqZvoS/Rv3fhEhFxa2IPbFOmtAUIZN9AmcugS+
j6QwYlZ/VoT8KN1VLX/jZ9F6sli/vt19OZaN0uKpUlgWXoIBLh14qgmUqI/Ysoq3V3LDPHHuT1rU
TLpqVcj3uF7VKoH09vnuaff08Lz5uAp8Yx5AjCwA+N/CgsFtpll1inMkicYYdZCsIwyvgcyAOuRF
+OjMpBXx6/K1eoGNDBJ8OJUZwBo/g6P3+H/HKwmL8+izyYFy3iVs9eDRgd70lgAUJdwmZrBy4tR9
C/WAC3FsQ5zN0rP68Wb3y3OpOqClXpzTck1ylgpLW7sQkJLLA3IzypFO00w0ZRq8qou63w+jt7/P
w9NKbrtpyG2Hickj/JDfwz8aqvu1AGkawTxe2QruLo8Etj6mY2lkhGUdmJML/FAPU0vQKG+Tm2F5
F/Z3w8P8YpqCu4jWaAPNGCzMxgvRxcKDIjh8hQFUtorKOUJEYJxfdrvVw/kE9+yFq1rixhd5u6eY
mTWUjRGR2is1kSqlQ+6ikGhlCF7NBeoS77HGq9KclRddurIf/FRPQHl4VcvXsIq3hs+6TPub3bFC
bgSPjjHsRTE6oA+KlbQZsJwLJDNDjDfertpMp1Hq6RshF3l7M7G2/vD9u+adyA7Mn8AUiUwlDqXx
dgfXaSUltcmgh/yadyLPxKjFv+EN8TcN1nisn+l3981rtJlzoD+FBfiGqR/Ur8YTsC0BQDrDW8sz
vzBWO01zMlw7vVEvpKUEbm9PdAt++Xr/9HGogpAYJ+LjbTzj/xSlFnSORnaZeoLtyKEzJTfEABSS
4E1+gTXmP6k5GXsC368lXDcOTi/VX8WaOMHKQbDFMX77NryfdDjTJX2Xg7UGHJAuRYUl5gKJLksN
HviBMmVAPBfhcBz7hEWEJ3NpFV1f5Y4f3h54rca5rv3xBNOR5NckbmnqKDLicDg2eIByp5giFiAM
kWFRblcPVMuwvrnSKrADi83zdnjq8fLjksUfS+7AN7kut0USEkTwMnYAYbFbkILyFljCyi2xBglj
Y3w9ao2DJKfo5senV/VyeGuNwzH1tgpocON5ztbh1QlYFWQAYkQAijS4RJIJEdyy1wpoNH6VBjk7
fCinJMy/vtw9zQgEeGnwJcoQpwEb0cKg7GzCW1owbZQAFnkeI1+o9vkw9fyysSu4ujlkcX+N79/V
oDrmFD0DTCYsbkpDeIempguKRq+ckIHHPwtUT8Jd1eI3Thssc7HTd/c/V1n+sYl6PHkmEQYDkQ6w
NN6vATjaCVAZAEhBS5CkXZCvkiO4P0HdCQ+qNYkb2VjTzUTV+LZk6Y9BHFFuvKHI4QA7hAeG5GQG
IHSMHTWZeyaSGhkyZtukGmUx/9CYf1ixWn58vv95d/9h/40cro3B6HJxyGwEBWJlJ8CU4rUxYEMp
0pTBzsnae/rv3q6sN3EkCL/zK/wyUiKtkftuR8qDjzZiE0+ihMzsPiGCTQYNxwjIzsy/36o2h21s
YLSj5SEKdtNdfdbRVV8ZdRHURK2ZFhtctVClO8JvWPYC3VBZowmx/4Dp4ApxlitpgV2El8hIgVoi
EBlFgyQL+y9EDC8tQ9iIMMCXmRDbghBKBarE57SJ+DpUUjpavK2W/1RysEoGrIMCxxORRjdDAeIM
lxqEwoAYj4QRcPyLeN+27pazefu2RrVsorqeqOrbaloOOus+4ne7O608ZkG0GWa5MypxlQbtiyGa
g8ac0ILCzjRJzOSZXBQX7s7HKi1VA9u0GvQGXfGb+rffoePR+Et+QNhBm4swPsiU6PaEKUhlaBP5
MRe4rCFEEh7EzRctpaoqJExYw6qeSNJgGLe5NnBlYCwY4aKAz9Rx6Clg6KGPcSCwVICvYKpqGFDq
g/YDB8rZJW1rbl/Q9nWVakmbqJZHVONV3eNokRegpQXyoS+te6eJIh2AXoZeHXBEA91JiJBfBJhj
qLQf/JbTukzCqfvEokStk6qpk3Wo3c1qdIh0UnTnSqu5lwAjIm4oBHqcKTjJvdB3E5MksQQZhZOT
SPalamtUHZ/qyju6znrpl30PD6cJlzKME2ArQEuCt7QeYhphikylfE6pT+VF7ivl+ltsIv1mH0Tl
ZaKhB5N9ypXHxVsdPoRTzhFSXVqMCa7QKEgwRDYW1CBjin8XaNC+8QrJpOFCRBGfNdqX7e06/lfA
ZXhbuAxrjTAyMLBJUSFF27LloyAKJmimAg0Ck8mf3a2FZ037xT6+rlJ/DH0MDzNVW8jzQ2ivlsXh
YggNQi5ciRFDDP3cAgrUYxYZP8GkfLE8Gb/fNJT5sbwPqkl2BBq4eHuHSUuXWT6rxfYC5/NZAmde
4MHRyxgMJYwq6MB4k2wEJj68yNOg3kZ7btByqUpvKM8aeiNoU+4vFKLX6+nrdLa1Ulp/a+vN5AXM
eKF0FTpZM62MG1JMeRTEIO8JUOuT03LJcf0nEn5VylV6w2jD2VLKsvP1x8EZs5yHwgBrJyiYUBh9
lKtARkRBEXRO0NC8ELZns6/qocIqHccpd+Ah31+6Rr0ofW4yX3FonzKB0HcYjOP5sL9CbVxFYipM
QGKP/FbzVYWQShf8Y0xv+/CIQ46XI/Sz1laPwbEMIg8oNYXzFQj9eFnHiStiTFjsaZGcA5THKtuO
B3hVIXMsj+8yFGKXVNcvAmmMZ6ga8G3uUV6gIhFKWaBilxPkJtL4qK4krhCRx4hUkYyCs5p4dN8O
vRDdV8l91Q3kZnVHMoT+s2cGo+i4bg1JWw92ix7L0V8TMbZYrEIMgg7hXIt8PyARsOeLgna2TbRY
wYqXFdIzeey9oTLFDykcvk8XJVfnAsIbZGNBQGBGd2fg1oK7fgTykh8jkIdmgWw5gMu1VclQDVt8
Msmaop8Kk1JheqSyyGEVUBA2Y+0KI6zYFrohS6QLcieJVOirs2L8tuIT4U01C5FuCpTGh63Qnt3C
BmGRBvB326+sQPcEQVlrDazMxAwVWuaBJgILQhohk5jISCT/y7Vp8a7aUzJp6KmsI4rjffxsufdU
4sitlVXZiehaM4LWVITMUNd4eONvMIeeYQT4C+Oc+ZLG3nlF9355Dt5lV6LaiQZTjhZifGS0BFbU
nrtQCWli5PES5SPGkRsajl8pyFDK4/TMLJXrP8EMG8KstRg19WDiX6L2bsHDC5hfLoosgbHxfcoV
dz2NuVM1hjFy2DUctq9ghgsei99ur9+Tc0IbrgNiaKmP5Rl8uA80trjIDfn+eKIJYv1iihmYLw92
VYB6BcwTiwP0rWy5+y3X2OmYH5t8tRjNHJC2ppOdN97z+3wOI3IDpEajGeiS81GWO68/neXmS75y
vq2WKNHka2czWr3lFuxp82W63r24sV3cjNZfh5Plavhtmt04tHhmU3IMx/B3k984XvnhOt9Yv8jt
82rD56r3/lv18KXUKxgB2x5mQJgu8qb2iGKS/FqbnU+p85S/Vcb3CUo9LGY/HfQJwDfLibM3iN84
g+VmNLu1QUqps8rX0yxfbG7hCO36KUhhH66d9XfYG3k2XL5vhkDb+8IieEGL2a2vuzK9ovTDdefz
aroZvc5yqAPb39dMuqLnfIeXm3xxS+AHLL0iDKrdt0U9gW3Zh6W2br27Kw8eldsjXda70gqaczpP
ptd/+OgM/n40TsvnU/9p8BLcd24Pn7ai29edqOdg5Bkut/UGfaSaChOt5B0WnVrwt1OffdG1hS4u
frFuKYtF422oFxxKGHv7bndL/Qdcd7208+ez82d/4LzlC8u5MvhJVqeGCtle9KrwAcuzayyqJNa6
++HulQNLapRl8HXtAGWYUqU0I9edO5tvzgnwifOwGLcNh77rpMH9/UN0crhAXgahJN0VvRpl8+ni
urU0o1BrPkccscHoDTpL2icCxvZ5EER3Tu8leIrbKYABI2nneQOrwDnzIaqrUthzQ0ttMDAni0Kt
n/NXjMFM7fi1lYQ9QtPOcBgHg+AcAT7sWijaT4OeOVNWUJiC4fC+//HOxLAW2qcArV1Y68D8NTgz
WxS0Biz68rEfPcSnSRACZmtu97eDQSXtJTXBNbvdMfNifts//O5XNvjgYRDcn5tYUIZIryj6hwMr
8H1d2Q/FPtjNAZxJcBx1/gVQSwMEFAACAAgAQGG9SNVSzu7DQQAAtSwBACIAHABEdW1wUmVuZGVy
VHJlZS02OTg2Ny1jcmFzaC1sb2cudHh0VVQJAAOIPktXiD5LV3V4CwABBPUBAAAEFAAAAOxda3Pb
uJL9vPwV+LCVKyehjQefKq9vSZSU8YxfZdmeqZ1KsfgAbU4kUkNKTry/fhsgJVGUFJuJc+/UXKpS
tkyA3aeBRqMPgJBXWRrwPO+izc9gMZ1d8yTk2U3GOfrdsC3D/KhcefOHelX4HN2lk8WU50d3l2e3
58Ojt0eb9yunIU/mcRTzrLtfi3LHszxOk7oCrDhpyNHN04xvFv1mGaqhoc6FN48f+QGgy0ANuqqZ
dPU0f0gTsMEyMPmoXPN8liZ57E82xOUP6Heq04/Kbc4zdDqoo9AxUZSBN+dHN/G0BoRiYqhYV6mN
CO1i1sX2IWUGUrGJsXI5RrssO/cCBEW/IYIP4Z+OOkQbEZOwA4A4S7P51l2EKL0kTZ6m6SJHt7cV
jANGDKL3sWrqPVslA8NRDYPYqmOYfXM0MHt9faAoikCOep+9TxyN4yTgqJ+m8y5iNsYY5TxIkzBX
FCfz8gceopuHjHvhWruG0OjmDP2aZp8mcT6XX6CpimqKMvwS8Nkc8G721PA3x+33Bm7PcYbjMeqM
Tz+Mhx/uDir1RfeuuuuX4fWFe3px1zs7hZsGg2txlzdH+AsuP77vhT7nkaLcnaNrfg8icnTBvQzq
LMu6iqqeIEUIdN2b4W83Wz5bCiMY6kMvYXV9IRDtgdHvCBmm8ctHlKlfjrLPX9D4/H+cy193uLui
9GazSRx40pzxjAfg6wE6TaI0m8qLXcW57o1/Or34gG6G45su+iM/yvh9Bn56lH+O58GDms+zOLlX
fS+PA9WP79VHLzt8mE8n0G+yiRHudtEgzmceVEd/LvgCWjlIp4ceKOeHUy9O1HnRGRgM/Oc//4n2
f/6raE/KDRYyA9OAgnz0DukEY4Na1GY604hCoOpaxc/eozcOsng2d9KMbwiSLcdDjD2No8fpMJln
Tzfp+gYQzZim0GbyfByE3EM/j51u9+fTG+Eo3S7/woPFnHfk1bvzt++Lchj289TxJpNR5k352wPQ
SImlsGYaPduytKCQeJrMeTbLOPysaQVd96BlKK95EEmWIMSV8RyixPLCz+NL/w8ezCUeDQKMojUD
pBGN2LgQxh+9ycJbgtjSNU4XWcBlsIShnM/frDDcwX38Pfr1ZtTtXsDwD6/m2XEppByFJ28kQgsr
emOAFEKJlDbL0iie8HD4daBXshp4+zX38jR5Pfi2phgb6H/l/ho22kJPdG4QbPuorCeUncM4Kgbc
Cve/3zATpoed0A4fuhY5UMyGVuucY2tt9bKDYdSmk4l099LQ0wTC/CTs1KruMGlVY3B5/msGQHgm
b60Wrawa8LkXT3I5KhihMC3UEBwGs1mXGDAZWo1NiyCWvcC0JjbtBG6QfbhN+0Cxmzoi11lQxz2c
8CnkNKvwU1x9Frl0Gc1awiulSGyMADaCm2DTfK7hKrafbs7PCsnXiySpRMcrSObA+4uyXhIuZ6vh
I6hfo96oJsEykcfVxRZtqWmAlzTEy7ivvQSvBxlWct+fpMGnFaCOBGTSfYAoBkC0aQMaOvtWQLlE
ZNv7ANmihVhTQNQPXwCoI2PTlZfn1zwS0Wk9JAqnOinD1w3/Mr9K81imQGsvpGD2HtiWDrC1ZrCx
LSbDDdiDNFgIIKLpBPBskZTNNkqzK2+R81Cwi/4ingDRkE1JDDE2tm+WuKjIwIneFBdk4F/HNQOy
c5N+4kn8fzw7S9NZ56vVx09J8JClCeT65zCw3yM/TSeViHQF4saQPkJzFw1NtP0mMeEhRkOTLKaH
DUxqZI7MNTR9P2KLAmKzIWIz0nkDxKcROKwkgo2xE3N/axNDRFirIXbP5NEzjs1z+LuMEL0IstIy
usuRCn5QBC6L7UWmYxG67KbI/Mj8OrIkBXL/NIqTWBDHdWM6XgB/A+GW81Mx2VNzPzwN4FHcFF7A
IgS0WH2Ms/nCm6D5wyL5hObpq2HWvgKZwsiizWYnQgLLoGiPxm4X/go+XUh4RbRiGHU2KxVjxLZA
N22q2zbJft2RbI+z1BPzcyXNePAyHvYXUcSzoknsnZAgCAKkZlMRYVy3eR1S4dovB0SosURU3FoM
RWICnkZzjAFJZ2BUkofxws9KGwUM4TthHI42cIXpAqKIwKEzkczWb5FgNA1iGm00sehh6PuGvgZz
/RySrZo/eUko+WkVI+pcb+MzdCAStNEsYWiQR2APqb+XNTe19vIBn/B7yLVFRpAADRYZdA1y96Po
Pgu67xkZh9Npl+qiQzfmBWd0weef0+zTNkYziiIrwgG3SIhc19DV3y/Gt9dnzgqMpPgJBA33czx/
WF8XuWuptpsmk6deIJYYux9dX2Rmbpw8wiQiKICtUKspGsMi6LuRiCmfUYXaTbXrlvmc9kLHbgwf
5SqBwnBDvZGuadAH7v9eUHNDtTOJIaa6zgRyzDighhuWqty6cw9vCSvaf5bGAvDo8XFY7xGCNYWR
RuCIxTSPvQAcsWTzLNuil0NiMLz6JdjGdUUM1xltiLr6hbHapUK6s8jEurV7d+592TTHpcWaBqPN
GpsSzgMEufYE0kzJJQRBhQS9211Klmo6j2kcFsk6BAjxh4ylJlXYRgwXo3KULpKwWODc1uhrmgEx
0xn1ssx7EouhT6NFIm0UgwTcRWtqQeiFuy2Y8Uwsq5ZTI1OY3lS0b1vofDGZx3DDF8iiyrmvKhjy
T4UZTQXbvrdLsLuUvNHCZrMWNi0PE/BRZ3R9e3F2eXnlno5dp3d2dnrxwb28vXFvLt2eO768vXaG
2L0aXo8ur8/d0e2Fc3N6eeG6MmlVmNVMq+H5VlhoXSSCtAzSwqpcLBZTCH/MbiqR+FFVIvwSXk5N
RcMNRdl+aKGqoNXSO2CzDUUjWztZu5fBy3V/bJlhgIBA3vB83snnIfSdS7pduSbvFgv0xwGkHu/R
ulD87c4zL57nsuykWuhNwHe9eZoVReikQo0NuRpMG0I0OPD2EqJYIeDZY0knZXoNA0JjTUVCZoLC
jTs6EMfeI4G5DA9F1qdjBaJ4M+k2DsPaHWIdc7cGQnUFaGEjDQYlmCKx/SEaQFM0GLeT2A+fJuEh
/Ij9fZsfwo1sjZhcD2zoMy8TuxRktd1CvrrdIjSUherUS7x7nsltF7ieP+VzPnU/wYzKJ5sQqg7M
w5DBFI4+cbE6BuFTTF5yx6Uie4cFG+hxaFKDI3dZ353egzcWBkCmR1fW0G5zeNTWPBiqIur9Ketn
fL7Ikg2gpbRZoXND3MZopZ7FwBFkM7uf/1xBJGwFkf31IWp/fYh6d/XV6FY9tpbyFZl/Y3OCUAs5
jDbhavm9CHyzXZa8QBCwrGglSDirXtsefMlkItZ5K5OJCIdxAAEmeLhK5XimhNb2AF8ilpn+9hxF
mElq23evMEltbrc9n2YQiNYw+dYz+E7RnwfIrVJPobJI2Vl9a6wOux5aGCE+tyk0w8W48CfXFUG2
SCWYpstNp0a+62MdRkJZ0fXT8EmKInKPp5EkLwrNtaRV7DYNue3ScEDxENUFrYeT+S0jXrPEiM/5
9DOkBW4e3wtqVR0lwbt3h2T37FTtA6wxIwSCuU4o5g9xXsb3bjefcD5zIbXsVNMRsVLZ7YaLTHbu
8SRN7pH4Uc1LZNkxmbwHTMvPZDM9MfWGu/URMUItMCSPeBbxS2AJQN9pWc0mYlq04YkAsMqDaRr5
U5nLlSZUYC2SGJIDV3CU41UlsTcbB+cLoCwnbzazxW8zQqK39YanBwR4rIVr8MIfb5N5PBl5k5z/
y60odjGK7Jc0PGgAttiRb69t+Yl7M+iOwIP06Z7/W3rEZLWg+hIjfN+qGwEeGhSrAOOlOQflWobZ
VH7ECV3Ll2sUN15eaQmhsmD7qFPD8fagc3AihqwYreWMVSChtlXbiX8JFCvQXwWKPE50JRZXOt8j
rjwUVNuaf94Qk/g6LdZHKi7hllHNnWXpl6fjSsRbgNjjAgbo/T7E77+rAd+KELpadtCIJbf+X2fS
FpvyrzRpi+3015y0LUHdRh/2nVXEzU446REO7fJMGEjtdjve6hhm4k05MK+AH4gl98iBpGrueJNg
MRGsH0Z2+b0Y0JaBmx6pA+U25xXlHyDjfhAhYzqDYLbUWZwR0IymJ+x0z/S4URE/cIZXD17O5UZ6
ucimNT1FB1JtS5fBviIaBPYSSEnvj7fVnXS2r5X72k1PzAnlmO9QLoU+o1u27puyLfXGiq1Qr+gs
1/1Az04NYFqz2YObLNLAvdfCriZeUvhCPOGn5eGw0+lsUlF4BlPZWfzIQ3lgrDxuY7OGMwvo5jik
z+ner/d95dai7sCbe8WmsGU0nFy4BU1BvYrI5VCXPb2FpabQZLjhJAAKKbW0nQqLOLRc8F6HW2bU
Dlo9P9Pouoft4kBNAELnvLRkNZkUwsvF+o31MwhA/+3ibjcFrxOxpwPxvyiSx3BqZ6heAsUOw3oy
7y73D8R1t1jIcD8Xp/3kjHci6kDQmxx/hxFvTjrfc/ebYvzqtVNaLzLZDDasjcpOXX7/Hqt2rwt/
h8CT5cwvEqWNbheHa2pHwp4f354ptnLXGJe2H+9RsvIto3aM6wUNrekhL9x8K8FbDR+iW7VzWC8Q
bGCLFII/z6ObvbKpZcsDUa+UCZmvlwlZr5sJ2ZAJfeV/bTRf2iDMQK47E6nogxs8CkL5TSsbLDID
W6/ysDQJ5elB99HLYnGovqCre4jd+uq04HTFSZ3GaxY05D5G5SnHTBy6PEvFLiN8d5aIYLQ+yUl1
Y79U3jMOYEyEZ97UD71jmXLAQFmfH96qshxLqyrbRHQeT3mxk3y8XQj95IVPbiDa4HtZbGXZ56Sk
m7hppgczqeZZRbL1fCMer+utrvdlsrlamCgC4hmYV04C4utfqJ263X9MZFf+o3PwHv2N7MFg0MkO
D5d43/ztTH3zFxt7FDflOTD0WMT/Bv0i/w+I1ZRtgfnU04oMaJ/5uy2X7W3hpuQLKEeI+bdSDmLj
pozr2yhH01W6H0g5bPSfRznwfzTlIP86ykF/FOVgP5ByaK9GOfTXoxzG61IOglvO0XKOlnO0nKPl
HC3naDlHyzlaztFyjpZztJzjB3IO0nKOlnO0nKPlHC3naDlHyzlaztFyjpZztJyj5Rw/kHPQlnO0
nKPlHC3naDlHyzlaztFyjpZztJyj5Rwt5/iBnIO1nKPlHC3naDlHyzlaztFyjpZztJyj5Rwt52g5
xw/kHBoqXwn4PPdo0NCYhxo2RUNL6SLY2U0fjkNhnjH8IqL22d4H85yln3l2k/bibP1UG0ooa/qw
HMpwtHwEilA3WcntrK7Jt0/C1Fk8aMUwmibgoEO8a2kl754nYsDwvWreo0UinjAIfQj+KScN8ejj
hlppxMHrV+JnGYdkn4/S7EOhX8xKL1Ku2U0n/oBYxCxbFdxr9UiZzvrK9hNkxl7EZWIj33SwmKye
79f4kToapqb1/Y/Ugbldax+p0z5Sp32kTvtInfaROn/nR+oQvV2Dbddg2zXYdg22XYNt12DbNdh2
DbZdg23XYNs12HYN9oeuwQbFGiwSbyBEv1lGSTeQXApCHUNT/Xh+0FUQyrwvXbRqT+z7XuhzHkGB
Xy0g1IxsBl+gINh3R7gqEEhNj4QWiSyhJIyrtyw/UJCvCoheatJlgT+ra8fMkHfsLAAlKLNqJVYU
iTcEo8zeYwnBe2ARslVANUNYQmi9xAwwEwWsXgDOKVqFaBvaGdPAF6QSvVogY1EkLQFv3ywpl79R
Fk1qSgimWLx6MKO7+gRkKWfpfQzBGTlXt13pTFgZZlmaIScNeXFlfaeh3Ih3NF0spj7PikKiKYrS
jxMve0KnU++e58JtytsIBj2maDMVVS8GlnAA9K72arYOPkDHfXs0HOH+SO1TaqgMG/BN02yVkNFw
aDiG0SfaCTq6SyeLKc+P7i7Pbs+HR2+PNmVtYAhNvI0BLkoMMIzKl8WK1+CNH+JpObYkmhF27NGI
OSqjRl9lPc1UrZ7uqI7p9Ab9vq4RYu1Cs09qDZe2jYsbBBpnC9diNkuzeRVaj9jEsTWimiMK+Eas
p/aHw6Gq9dhQH+p0MBiOXgCtKngDXRTaW+gi3RJj9ysRuGNg+g5ugl+H5JDp7wRSh2oati3VsXVo
ROoQtW86uqrZmEDWZmiQSe1Cuin6MMq8KRfvszq645l4WX1+1KvVqRhACLO3XI9Q6tmi2zdfTPxL
PN8JXBv1iT4EX4QfNvS+Y6u9IR2qzLbtwWhAdcrsXcALkbsBF2VVoIz7wRZQk5EdQPc2sYVHPU0b
9lWD2IBPh3bu9wm0eN/SmGUTjQ2sPUj3t21ZWMUa2Ia+hTUIQhjQ/najnvF7L3jaDXg07EErOurQ
sQYAmMLAMjTwY822tb6pOyPH3N+0heCvNXBRQykgCp81IBKGa+irix6zLGhm8YpH1GE6O6SHDPAN
bNswDUpUg5mWyizSV2Hw91UdW/pwqJlG3xA+u8gzMaCOxO0VZZZlR1ZdmWX5EUwTkZzOU/+P4LC3
HM+GZoJOU7eHEOUHat/RqMoG2hDaxIY+HenmQDNNYppORWdNirKpiW2ptzEoDzZc6lGGbNSxDkVd
+AkoGOsPzT6DuEIHMFpheKp9Zg5Vh1HaY9TULEcHFGOZjxydxX4Gsf9otOwK6IIg4BO50bi7gypV
C/27qxVlyoYBerDDKp3XQtKYB2L2+rUgIaijSesosw4pPqRgomM4hBojrBr9kaayIYVxbfdN1ez3
BtaAmNDBo20Tr7L4EYyqwN9UtNuMzTo1c6Id5hhYmgM9Ooi9+yTNxbumeJ6LubV4y/PSa4CpgzH/
T9y1bLd1Y9m5viJDT8DC+zHE03F3quKOHHemfNpapUheklwd19fXxiV5SVyCFDvl1Z1BRAvXwDkX
57H3wYHJc7ZZCk1UTNV/EFidU46o4DmzSVFTQms1l+dtRbSyI2JNAotBxPj2tw/fvqwPlmysnYnB
g7wtIRZ4EFInErmJGSGpBMKtByTLyYqoL9pRjT3DN5zcLZ/773b/9e7PfzkVZaKG7ajh8KZPvpx6
97WPz7Nym+uXqT7jPXNGq+kwTDB+rjFMFuOSyLAbhaAbnSBWGiQKZRyycGFc5Vc1HNd7zVf28px5
cDfaqu0WHbUXapJY/nP9BDz3CE3F4ClVN2M0zTRy4jlHLDLUAZB5TYJ2PAEYxBzYRd32k/bF3Y82
4rL1/FRcbulE3OX949fV35FfY/0w5G5uxUybmaxuvvsIHbLXWQaAIy+8J0LDR4KLghTNsGulBMvD
5f3ZLdDXYT9604rLejpsXznM8u27Mrovl4MVeREDYx7+W0EGpZZ4mhkpNigNEyrSyotSDnHy3c9X
uMi4eCvyoiOyYNOUvpq/zFfrl/USbP95uQUig7kIp5HWa1zNyjNpfCZA6QoJDEnE80xJEsUDiCCw
sqviaq3Kpf1S5/HJyWM3rQaup9ZiH13jx7/evr//+unuYQKuGYM6uoJ/2EexURLGk0Ca8AnwL2Wi
BKAgtT4H6S/uzM9f1g9vf+oLv338bhe7+rK0+lje0cdNveMRa36632tRvXmvTgK14gYwvAhWkNgR
sxz1DtmCRziIydHbP63OdqwV2HXsSi6n2frEfGsY2gWirYeEGAKIHzyEcmCx4BWxyEGgEwAqAbJr
Ff68h+wGG9Hlat0RfS0n7/q393EXvhGCxtDpvfRKIBmwAiwnpFaAjswQKpkMTqVIFb/GCw6z9wU/
jDey23knitrVlE0c5553Dy/rp/q9sm84ZzMz4zWObj8NjFxU9KkIk8DrQsOCgrCRuKioNhhTKl6j
T2/FM5G182SjI1LFqY6O64mOvv7/9pf3P7xR4+5oC06vjCE5OcASWTjIKGUkZkE50C6QdrpGm/3c
fQ32o43Uy8XqVOqVmKbj7dLx8WFz92l3ZgN3njE55Lf6oaL0VEoyxZCQOGJTAXXyHEk6Sk/BXYpW
Rlz0ic4qZwDs6YONVivdgYgrt9zH2V3h8mH7XdT7ICsZrzCqAkXNqIpMSKJNhRqRevgL0KLKAOkM
fJvFY9qzne8vZ2ZuRXO9Fz6f75Px4p+VkNK9TKJGSZ6KFUCuSMfIxAKMjDhZFIncaiWMY0GVFk43
szTrr3UHdq6NHdd//v1o9bqtQCo8Kx0JDwgbAM3YYCnwQliBeWfmaZiA+aM5mrU3Up2sPafC7Lfl
j9/vsQP7xbkeUgRTTlsGg2I0ANGyhASebcXs+BwLRSKcKH88zU2z1GLRWX81LR8dekLn97fI4wMd
3cZSmPOMVZd1pdiUGCMAQ2CkVBriVSjYF4ZU7ILI+aoA1Fmrb/KdB491W4gOcVucpuL3T48VnKxX
A1IctWNjLHLJ6FIBEowLADXB6rxDbs4WNMomCXpKr1Gsu1Bfte6jrXKdtL0Q8+Vk44YI9/G9L4e0
zWZypoYQhZ81cXBmmCzIgaUWzXSywBo6kxyN1NDcCVGuDrVY6kKoxWijhFp0dkhTN1Hix3f7NFOl
5zXvKV5jknM+ecEVsF5EFNA2w+QK9qg4JmLiXKrL0K9KdbccbOhqhneQpv/oYbzRVfNToLswwk7I
7Wr9/PeXxy/PRwq7mRi2yw1xuOTMEIY5UQGYVxhviGXakeSlDZkZcCd3FXrfLrSXtT5wBr+fPtgo
Zjvhe2GXduJm6W44lIQwzWYOGMYNRF3zHEVmgShfASRXHMi3FLhddrUIyT3334+on8pzRv2T51rt
l51tdWI+oWU9Q/Mfbms2G8iZUQMXRjwpmQZGrFAAccMnCkIDCKfrUQYVWn53g4YcZ3z2w+1Nq9Yp
nlusmNqsTzCr/zUiQQykZkgS2081d3EtFXyBZFpTp60uW2koddJzSZWxMV8LU7HIeWSKwUb4FT+t
tS7WYjnZqO2Jyx8vwD5KIrHhL2w/1GpLVpxbRBpgDAOGAwAQhJfE2WCcR8Zj+XUDrZOfl7qONmJv
3Cluwy83e4AAyX9/fIhP3768PI51ako1m4lt+Ssb64y0iRSHUCEiHCoI8BxHUxEIGSw71cVtpzMf
C7YEqTgRbEnnqz1qKo8PL7+sP909vzx9Gzm7kINMMUuWbOT1KKxyL9g6ghnYLvhLjFRHbfj/nZk3
xZdTsVut5+uO1ovVJGP9NH/45AFLvj3fDWHObMFE/VkpPoMhmSxJVJrVU5UKkmBR2YKrcQH2L+J3
V/9YpDO1jqMnGqU106dKa85Oscbt/GG1ePyjU8wPufhgKo1j1gGwI8y7wGGVpQAY8mBM0FeijN0i
Z3HGbrxVgfOeClOksScpzy94ubX0/nxc8NimqyFVMfhQxd2mMEQxFQTidEIkcAFJ2FEf01VJ+G/b
9W47yx0rdfLYRLd5Rzc51a2Gl/R1/XIMbYX23pWkCNcWejCZEBw0YEXxUgPbWh3StdG4zn0+sNXR
VmrZk1qZKc3+sl4vP/+yXj5+ehj6EreHq5XLDdhhV9NUignOMyeRwa9EPQ2s5yqkCGyyVVlkcRX5
6C53hnH3Hm1VVLajoqOTjfll/TvQ/se79f8ckNGWWzlXg6XzmmvHSKAJniMDyKZh4CAI3qrIFJUS
16h2usy5cDh9rlWqQzyWejXG/eXXL88Hxiqp3dacrU/MFkf0sD+mqmMlBbCRMLTIlVK6pazH87QC
dKp+S0unVaVa+/56N1hKBViQo1Jnl2l2UXuibVH1GA7UmZlIHAKETpKyK+tKda9/fXfe3H99d9OK
10mWVtleJezjMVlTMzoTVYHthwqgTBTYcUtM5KDZRihogPiTrbQG6RRI0V5P1y6ytYasLR3vvPe5
3Uysef6PzePXh9WuILa1Y2vdjLPhGJTCTzM1RPtCIT0IdTBwW6W106nSOOMup76PZZz+jOxHTzQK
zB3tKLCYuuO75SGrwoDNYD/1x2DGIpUsAtFKsvryNSwnBIRPuGGi8IzCrnn5x2ucqXcfPdFqsVh2
tFjKSSHvy/38ZfP4NLZJ6aGGJ7OQ1IAsGlZbFzTEj3j7klnNpVeRSnqphtdO2oq1Oi0kLZd0NbHw
v65Xd/MIjPX0eH879IGNdSSmZswOHMhwzZUm3rCMUO4RymutzQfPqXWKRXdVYf50qf6bPn3uptWh
Y/brjerwhnFH4/xpsc9UjNXQM5zw7GIQdBDIDJkYW2mECJx4ryuN4E5bQZN45YTnf8VzD7KciVbj
+E2r4SnmW3Hu9mH+9zUs8Wk+mpfWs9ocQ3OyPivo5msTmfS6ni1mwoNVPGuaWeZtnG8mumlXO0UI
K+XUxF8/3q3Wjx8eH+8H4LnDNqCYM9DJAXiGlIMVyDwWDAPwDBEHTEhlCteV3KZymbQdz99/hcdP
NBqsOzWf1VpMIw7gXbndn9PKgSJErhELCwAMt8iXjCJPRQtDccZbZgDI9eWDg2HOs2iy3LZyCtaT
c6zA70v4jy93myMyJwC+tmiYSQOoA7TFEdST98QqCk7nQTGFVapwd/Fo4GjeY7nWvIPa11yux1i3
YwJsrM6rgXCoobElqsiUJ9kLhBGfQThs9KRksBCZrJE0tZY4ma2VRM87kjg+1um/LPcyKOVmcsu9
FbbMccorvIAMRkoCzEYJhY/bGK3NQ9PA6YsZp2uF6LSLrYUYfXL+9VADQESvL4FrCv4fCGCNhRkB
+DjpKOFKGm2C9WrIV0cv4TDHTbtKR/+FW3Wi4L4ZqPoiYshg1Id+IyU8AErwBGhF1pItIw7UkCCB
FpdYzFH/u/1Gx0/ctPKuO0rMp+54//jp7uF5e8J/TJZg18kAvwBvuYRIoiwJpRiSMku+aC0BH69J
TMP8r8btYyn6Dx8/0eq5XHX03PC9nfzH+/x20t6CTREK6YeEGGtrVAaqVB7xUrFAhYPRWvOd2lsO
q7dC94x7qfi0yJARKC0bTjDqz5p0eCjCSaUIiwkb43gkFnAGbNzwqAMrQZnvl1B9PoM7c6PPyp3i
NPxyNcFpz+vlHejjwW2rj1gYVKKF6KBFbWeHoWmATseML8Y5ICF/KZ42c7ZCdboO8MvFJNAv6u3E
5zG313DqNFOJUcTPWMuIASzOe+YJC8yp5GNmnl2S6XjKVqRF7z2t3OQ9Nbfq33Bj+UxtK0vFe6ei
yUR5VU23JESUVJtPQgncwDaGHuWzkh3P3Eq26ki2VvNOXWU0np9vD9RBIwvUXoDh53COyIyKqbbo
mepZ3MFMNSixBmbyFrmLf8dGxIMkZ1qBbnv0AvotOkpv6Elfyv3j0+23h2Ut9bkdcHEDdHEMuZ8H
Q4D3apM7dUh/2RMTRHHKFSpd/u7VzVGecylhN9zouqGncXJDKTsuYb+fPz2DORwXsKuSOhYJdIvM
zoAphDS1xQNMCuEUoTInT1X6f6xgH0t902p3ur0bzhbT7S27kuMPb0zFUzNTk/j2U80W0iSTEmi7
owhQLlFiEwem9uDyiSE9vtIMOc5/Zrv2wzetmMue7Mv9dn19GDEYr4UzVU+vDSwvsgR/466QQKkm
iUdBOSwU2bwbGMaJJsuvestvJq8Owffr093Lt893P7zZOoZSWHVo20j1kkd1B4cQmutVoNpMClLO
DQuRI4hdfmsDVXvVTG53Evz47myv+2681U/Kjn5STsPdIARcQQ19TqragwtFMW1g/rqylZLqObxm
yBXKeW61zMX+ac22YxNRVU/UaW5dPTw/r0ZYbvQ+Y7gcgW0cJ4nChgUclzgeYBjCVPZtNXD7pYxx
NO9ErHVHLLOeHPG/vb0dD0i2EROMxNemSSkjDJVZ5HuLzF9kzkG4GFK4HEww45kWmdvbVsK56Ui4
oNPiUXN99Q2jas9okOgdeLMhOcLpBVe19QjUSmqWRdSSyXIx2TYzt6ItO+YnpOo0RP76cnc/0Au2
LasMkglLbQwRIDAVBnTOGUFWBSow8PYkYaAyXF3ZrQtcKO7W4ZtWTt0Rvh5miOP3WmvSL/fPB7a6
f631PpGvXb6cSk2EAFsMxQuSjDPSK1aMuIiumokbyWQvx0l2UvT8+fbr02ZeW2TdtkPfbbvzfWYs
1kY7mapktIh6aIs/RssEo6b2D18mBvuZz9Q598Ot1J3O0Y3kclqQ2GaJ9R8v64c64Wiw9WrBtm0x
eGWDoIFYYSpuBYK1Pgsii5WUs+SSzFe0LU6WaIRVncL4Rgkxlsrmy88jL7eab7sgouc5gTs6GCu1
hVgLKhxc8jnCkUTQXamO5mplEB3vUVKNbQK/f/k8vp16Z1JjGfAjkoZLMXglJOA/4qkAjJY+iUgn
5zHjDO3CPctXcjGxr3T3/Hf/tLh7eRoPBvQQ/2pipKkUmVwg3EfAiWA5CQqeDGtD5giJp3D5UGAy
+7lGnuahiRabjhaL0ytr86fl5+EuS+2eo7suOjpc7bQWmYSR6IKvB1yydvpmImsHnUzJOu++H7gf
BTmX4XfDrZKdbruN0ZtJevqvr/Onl3/uitdAu/X0TOODG66O1IKm9yQhqCLRm1oMAQSkQ+uOjm57
jHdey8PkfckP443oZtWxMsvZNDnUbsn0uK09DYJztsXr3nLOuKPYFF87dpHBQuCaxKiMj8wmma7r
jt+vcOGyUR1upHed1qPa17O/nvcE+H7/D9CnEarUooYOwmaAKO5q12kEWrT1TraAw+I3SeWmqHoy
TSuBZB0J5tO2lVGnIc3+90/+b/uefOCtGdJVjV1UAL6yetd/qLbw2lCktMQfWS6QLasoXrX0Ovf5
BFtHW/k7bTcbd4Jb9hXc02qwqJIZUUg0FJCP+UicQVajqqjInNJWXOxeb2ZuRevcy9rMV1Pc8tMc
rOLzcXFAzpQeqgP1w3A06n0IDIIJcASRZUI05pLUClxKqsQkwveLIK085xqCjp+5aRXsOOR8Y84a
1HCibJFxWcWT245WKujMbG89ReqZAZQggN713CggF1bAYRPejw/KpEyvPtUelrlwsD2Mt+p07oFv
1o52wGc5Ot3WMzcgUCW2R5f1MgKYhK0MD54qWQGxMI5EL7yRCWTI01e38LXz7faZm1Zi3VNDT2uo
49XvMcIf/WoXMQsLTnvEH5MldoQFmKOo/2ABOH5hhelc5L91wfwwPtHB9HSY1gOXzZWYfaXSDUcv
Q0PQkHZjBsBJtaudKWILrcV6zQ1NrtiQLyPqk/lbMTtly816OQKut+W328/zp/Xq5L5iDFwGwH0S
AwMi9cCmTmZWy5c2eSTW8grbu/q+4kSGI/nrvxx60gzhqJRjG8Hxv0D6hvGhdTc4BUiWiKsnSoIZ
SYZ4FVJkyinKDJtixsMkN+06qrO4mcItf/f0/n7+7XZ/FDNpFPDG1LxaTyqEBVjMllgGCzVwOQQM
A4pyVRNeu8wZY22eaZU5tQRHFTN7+P/hXZleJpbFA+fLSvgrGlGs+haSE8KSd0rKrF4Bi9efthxW
v2nlsx2h7fxs/H738/YK94xumyCpovvWTupinS8OLcUAhcDwTqd6ay8JVQyPNpdXKOJZJDsMNZIv
uDyVfMHtRPIPMR6f3cXoJc8ZqR9/G/+TEk5n63GXVDJrBAQpr7EVTNsXFAMTMd2pmGs+rQX9+G7s
XKitjLWgYYBaKgAMjFmbwBFVNkgmPkDkrAzRBtT1X7xdSZcbN5K+16/oY19Sxr4csXo845pWW8++
zmORSYnPJZZci8bqX98RSDKZyARZdLueL5LFTAMBJBB7fBEoMODwJu7CkYRz5SzLzAZcybaxPD7P
zXgqOZLvHk9JktN8Wsxps4fcNrQuQCOPEpU04ghmV9kM6jpaU+UjRay/p2/iIJ1nbl6Z4FnvAFfL
HdieEmT++z2b3frEIzGJEviMAoEoQMvzFEQS49xJpT0j0bxZjJU1Lj2Q1iB5OxYbomAZUJp2+4/o
5Dr5U1i56VE5MKMUcKvoGdaLgZEbwRDMKhJimM1SyFoCnBlyRpZpkTVK/PvV/uNuIkfL5ZDCCdCm
OpYkB/EON8SSDKIgZ01pIMnbVFMyHWU6PSWrhYfMUirmeY3+/qV/fnh4/oS+W168F+XvLXqZKJhE
JHr4oAShaqzBHF1Ju2A06pokgXh8hQWO459jhOMLFfUD4t6cerWoI8/4JeLuscAwfCs6eFH8qNFF
2TNEOpK7KEMAgeRAheVg4hEBN9JEyownr+ok4+ivR+vyFe/PXqpXvUzHgR9XYpaOEvu7l48fvn2+
eyj+YioHbR3jd5lwrUDuajSseTCkMwSBMByYsS5qMBPVdVV0pxnOlc+d3qjWwJYFNPjjXAR/6u+/
oCTjxWYSRYN0wA8pHLSQMIlZygC6LRakOiVBF/Mg4vKbSAaY+oxQgCf1YrZ3y8XI9aoB3XMAs0Ij
sJjmFBShnICfgD2O5bVCg9GUeUc0iyJrB9qi/1M+pZl9dQHManxcrU2tGodNrdXMGf25YMOOPhx+
LMCK0SG2jO9CIOgvkRI0ZnTp5OSINWAu2otJt9Nxa7rWjQOk+jlcEkKNPB1ZcEnKGhAKDjzdZ20Z
0UCeVqgeAXc3GXOzI1hPIdhkE3uLw1RJgvPoJOMr1VI1W4oIqu9oCy2jXLVDaB1BSkr2PLDhQ7ZI
dNmYrDqNpeocfUDAqUET9waUVbhA2rurYTKmU13AyJi+Vi/rjrWW1c+WdZF1M5az0Ix2hMcjBJ4z
vGOe6KgsCVrrP8u6zzNiYxp3w5i5YxHzGQ9+pNvVHi7Y535f5daB2eOoDHA/PGKRScyyy9l0NOoI
epPPjl4+hYvRz3nGZ69Vq7F6qbRTexArmBz5uP60+9qfylvgisvhlgcqiFagu0qh4fJwwjrPE+mU
BH7spQXzdJZuOhusJmQlW4ToMyVdRcb8+PDx4+GGj8gFToHFABonojiClqQwrChAAYVznlBQKEf/
SHnXdJ7LpV7TN2crM62VmQZuwSw9BvQugxKwONqQa1HiEe4QsYbgpHgnMghEybwEyz8R+jbpN40X
Z+tpHJlj+toEwnFXgod5te6HyAo/4D7xo1cIw14IgBYY1oTqyDsvXOiCtCFZGgzYENd8quMMZ/jx
4Wm1hE3fOGzw44U8t7/9XaEXQA0wjRYknAONV3I0+j1YbRYuAihSmiQWFGiQf9JvPX1jRrpqkb46
mg5fVp8n6CmkVPAQCfp5hDtgMRAAJ8egD8mA4mQMCGavZobDZIzZ3NvG3Ft6nPun1Wa32q/7ue/H
kAS7xboss8VIhIA7qYBfG+8y9x4oSm9kBdYUVMT3bGk2wE8jAN5u/YI5BSfESMkpsLqifDrt4H51
gmANkQNObZSIIG+kAk4HWlueMbrZWDf1lKpBB+tn3t7dfjtG0MUpv54lqoLwICs402B2SVAdg6Ad
FRzMAeDmjl508p6GrYmyyzvNEGu5ti6OmV7bKiIwZHyBIo9RJ4E54aCjw59qqEHwOcKlTiZJCaoW
t/kVqTZM8VpMYPneTU17v1wQ0/MaptXLZvfw7vngDXL4r0ldDWUDrtXgXdcmBys6IRVqsjID/7Wu
A0sX7o9QzNrLSsd08DOMd/LGTU1348hwZU5H92H/dVKBivQyR1QkLHfGa/gQcGDhwlvVYWaaBHvJ
BxXmh3Yyyk09VeN0yM3cX3A8HX/7+1D8DyooXCE4uCi/smcctGzglI4jYHmpHwdWxICTRuYi6ELu
qoNx+ThUdMu+ceWNnCubP63+P8CQj6t3d3CW7gf8SDF4Ji3SDn8ax+CLM6eQgVHMnrNYVUUiVULD
mW64Uqcs/Lv5HN9h+R3ion53u1r/48PpebUAs9o2FrAePW73//q8eidHiFs0LSPhyWjZOR1AKcMU
O0MRvjownbWHH/Ushj4do558vWpM3o+5wj/u9v3q0d1/7CdVcZQyM0BwhOBBtiOWNuKGgLhJwXZw
JhG5XOnA9ZthNfdrGOBMwUiTzGqZli51AWblPF3snxF136Gwumi/Ak8tAZ3FcMzBR3A4LPAFFYYY
DLXFV4yQ/yQd+p/xTA5JrJa0Mg1+AT8ev9yv/bfPH8cM7/LBtDZCGsG6mFCZDwFNdkQf5JEKYEAh
xTZmynSsGRFLW53dUT6Pap5SLoU4hjIVfBSDNVKGITXEUWC2YF+IrIUTwsKRvphz2fAdsDvTkAil
FEo3DYxV//lhj6hkD2vszjcJrCSbnfeY/oEwmtkiroc3nYRNIwF7HPA/ZmJUM71iZFTv1utb0db6
xv3+7WX1uNo/w20Y+YU6AkZrl4HDgxoBksYMNerAPV0XDaeKGsWVYM39ng86o2gZt2LbuxMDce9d
+J8Z58igjFCXQLdG5yQHftH5AHLCapqsBeGlA/2rOMeEvmph237p+uOTKorDKVw9nap31OBzltwF
6TsiEUdfgnFqEFyJEadYcJqIxC4d63HAm3pi2aCGLg429tb5qcdgbv84BpiPnhXFB6YmmLRgg8GN
A5mRCmQ7/FOY4CVQqYm9DiuiMdeZg914s15dw+UHP26PDor1w5dv2939yeag5gCQQoIykWM5dsna
SpnDYiiYm2BZghHtgHGrMzBQ0yFrajbLyAkXZB7Gb2bMYG6xsCkpTH2wGYM4EnEshYF7l3JiWLbK
5OUUk8tqcfiurQ6DVr6M2PPterNE4xhajgw0cwF7iQc3CSOjVLiLmg2ALBZ4Hqr2KbFItM/yNWF3
JuAdDs+m5ApCl4obpnXPyL1brX99+VLjFakD0qMqnnZgXVYRzJXgySFCp4KdB5FCLHc8KkF0vCoI
7mczTY/w8Kymf0Mb9G/HosPN7unL6nk95ifDtTt61ZyiIIF56EAguwOoMfoGtYyRMueiiu20vXrM
ihxKGuRQvSooduXAP/brCk+N8dGZL7W2OTuwfiOYO9xFsN4R1QrkAhomjMYzpSPzUWuS9F2LpH7c
oW/3m1NS47H5SYhga2H6kMM6Bx4NXh+JOXMSbnTUiat20cBpuBkV2wYV6zHJ8vsff14kMwmwnKS2
sXMK60EctcDESeoSA7UggYFgkn6jZKbj7DXN69bHXM/r2f63f3YvGLqVJXtlSGRl3kct4DOaRA2C
eIF1gEk5zhIuQLAGEEJXgnjh4GfBFvDhjOh1g+h+1EgX9QxyIJh7T6gNYGZbPHwKZJFzjHVUeAlH
j5tF+P182QJM2MgAE8xse7bEJMKa7anWpxTTMUbbOZOx0RLoSWDRus4rxyzYtJZad3W6ZikIP5+t
iY8rwpltEd7zoxB0v+TiPJgKwZJgKwSNiPgUDQIURwTVjxGYNxUJvjjsn2F/Enuocr/VdNRL6JfK
oCg+jEpyvu8fEW4HfXhTNMHjVyAWjEfMwIsBcTdMDB32TuioAu3VE2FsuOoAN6Y5A0u8fLFallg2
P8Afxz40n/rd583qvls97U+QHdYc3Xk6Mp94TJ0iGTMjQSN0lqUuOpKyjRxbU9TnezngjB7Tosee
Eu8/P3ztpwoTL8niIOARWq1TIQFjCIoBT82xwy5oKapk5JlqrPl4M2JWDWLsesaqins3rL48v2CY
YKggHQqrdfYK5J7oZOnbIYPoDGjKnXYspgjaXKRvEvafUnChGcPhjXqNK95Y44Y30gDcL+G/IjJk
XXQUqUHkD+igYDSC9aNDl6xGnA1M00sGmHNWRmP2n9HqaohYnOUCSCw+rlewEa0VbBYrQHDUQaZU
pZygwArQajsYBKEbPNZHCvTzSQHsGzTD68C0T+OfI/74fEZ936B+24qTT/KZThzFRO0dFjAlj7Ec
osH0pSDTiefRas6Cla/XdrySyVS9UlO/lS3qV/Mqj+fV89MpNa3oZigenZQKSeyCQwxwUMXAbkeM
XppBKU9CyHCxiHIy7oyshnYGAne2qbPimV3eHTs1wZ0otZQUyLGBRthdZuFgg0prOBhiKEqT19FG
dzX4II5/oYAGnt7U5DYuprSLArc6eYKWTBEJ4kSW7D8hNYUTDawMm1kk1vmoNILhc+TYVrOrxM0V
aRNnUyaA5oaSWrzvh85NPw75PXNFFSyFGAgVHQuIO4RBI6uJ65jKjNKctXolSfkPKKoTCiratWwc
JL1ljUBrAaVroJmBTpqNJNh3FUVTRlSYmGwHuqxQYFXxFPOrF7QMfv7wlMdTwiVdLTUuSU++q3+d
SgVkMTRN0EGDICfCF9ipEngR6HuwGQQ8dW4GO/WvVp0ATMFa847g17+vHk8zszK1DlGBMS6xvMsN
IE3GYW+MzLHVm00q6VlvjNMg1eRMNCbHzpDHzlSwVb/c1r3+9IBkzwhNWcXcSYKHLXi4JBzD+taE
bCUI7Fdg3K9vSbUgYrYG3ViDFDNpdnSh+pftFhEZaUHlN+8OlfWgcSdP0FlAStdSOH3W+S5rkNKW
ag3Lurb/xWmW840vTu/Ua5GytRY98zOioX3snnD8LJhcDhqxDlIbrLMB7kUDGnoKCwI5aP/EE8vN
ayX29bgVdbxfqppSsrGP2dNv97vnnp/E1oCL6wNIJ61TxwQiZyTQ6RyNsqMOUaQFCGDGZyh104Fu
6tnWLRLmLUGGKO/LfgfCrtgnP++HguZpgDdJzqWwrNMJDTyasG2xZp1wNoB6Y6J8JUthHPlCdBcf
z1awdChKdTduov/RfZh5yIWFI4h1sc4aIJRhEX0Coy6B7SMpjJjVX+UhP1F3U9Pf+CxajxLr6+3u
6ZQ2SoulSmFZ2AQDTDqwVBMwUR+xZBW7V3LDPHHuL1rUhLpqVYj3uFzVIoB0+3L/vHt+eFl/Wji+
MQ4gBhQA/LugYHCbaVad4hxBotFHHSTrCMM2kBm0DnmVfnRh0gr4df5avcBGBAl+HNMMYI1fwNB7
/L9TS8JiPPpscqCcdwlLPXh0wDe9JaCKEm4TM5g5ca7fQj3gjBzbIGc9t6x+vtv99lKyDmjJF+e0
tEnOUmFqaxcCQnJ50NyMcqTTNBNNmQar6qrq9+Po7f08Pq3otusG3bYfkTzCT/kD/E991V8LNE0j
mMeWrWDu8kjg6GM4lkZGWNaBOTnTH+phagoa6W1y3etZ8sv3/cO0MU3Ru4jWKAPN4CzMxgvRxYKD
IjhsYQCWraJyjhARGOfXdbd6uBzgnrxwU1Pc2MjNAWJmUlA2eERqq9REqpQOuYtCopQh2JoL2CX2
scZWac7Kq5quHAY/VxNQHt7U9DWk4sbwSZXp6m53ypAblEfHGNaiGB3QBsVM2gy6nAskM0OMN94u
ykzHUerpGy4XubkbUVt/+uF9syeyA/EnMEQiU/FDaezu4DqtpKQ2GbSQ37In8oSMmvw73iB/3UCN
x/yZ1W7fbKPNnAP+KSyobxj6Qf5qPAHZEkBJZ9i1PPMrfbXjNGfdteMb9UJaTGCzOVMt+PRt//yp
r5yQ6CfiQzee4T8KUws6RyO7TD3BcuTQmRIbYqAUkuBNfgU15j/JORlqAj8sKVwWDo4v1VuxBE6w
shdsdo1vb8OHkYczXcJ3OVhrwADpUlSYYi4Q6LLk4IEdKFMGjecqPRzHPiMR4cmUWkWXrdzxx80R
12qY650/3WA6gPyaxC1NHUVEHA7XBi9Q7hRTxIIKQ2SYpdvVA9U0LDtXWgVyYHZ4bvvnFTY/LlH8
IeUObJN3pVskIUEEL2MHKixWC1Jg3gJTWLkl1iBgbIxvB61xpOQc3Pzw9KZeDm+tsT+F3hYODW48
z9k6bJ2AWUEGVIwIiiINLpFkQgSz7K0cGo2v0gBnhx/lGIT5/en+eQIgwEuBL1GGOA26ES0Iys4m
7NKCYaMEapHnMfIZa58OU88vG6eCq7tjFPdr/PC+VqpjTtEz0MmExUNpCO9Q1HRB0eiVEzLw+Fcp
1SNxNzX5jdsGy5yd9N3+1yrKPxRRDzfPJMJgINKBLo39NUCPdgJYBiikwCVI0i7IN4kR7M9Ad8KD
ak3iTjbWdDdCNd6WKP3JiSNKxxuKGA5wQnhgCE5mQIWOsaMmc89EUgNCxuSYVKPM5u8b8/cLVMtP
L/tfd/uPhx05to1B73IxyGwEBmJlJ0CUYtsYkKEUYcrg5GTtPU36KqiJ2TRnfHD1S9VypG0ce4lp
qLzpQvzhH9gOblBnhVYF2EWSrIIGs0QiMooBTRbun0cML6M8XETY4OtciOeKECYv1MT3rEX8HCrp
drX/+PjwterBqjiIDgYSTwaDaYYS1BmhDCiFjiZCfQCJf5XsO4x9hjcfns6oVi2q542qvjzupkVn
797jv8vtLPpYAdHm2OUu6dxpA9YXRzQHgz2hJYObmXLk6pVeFFfezvc1LbWDbVcXvcFSbGt94w1d
r9af+hPCDvpcZLKgU2LaE7YgVb408uMdSNlEqaLCxXagZTJURcKWN071VtGGY7z02sCTgbVgVMgB
PtNETzQIdG+xDgSOCsgVbFUNG8osWD/AUF490mXk8we6PK6pVqxFtVpQjaG696t9P4CWDsiHVpX0
zhSCcWCXYVYHsGigO3uE/KIgHL021r0Jt56ScCmeOLwxW6RuLXIOtfv8uDpVOml2TKU1gmQQRLTz
UmLGmQZOTrztcso5KtBRBL2IZD8ZdkbVkqtrsghn/fzDNPfwxE2EUj5mECtAS8YoLUFMI2yRqbUV
jFmmrkpfmY5/xifyQzsHUZONbKxgO7Zceb//OIcPEUwIhFRXBWNCaHQKUiyRjZIlFEzxrUCDxskr
kmkjIKKp5U3/comu438NcBnkAJdRvBFJuQSXFA1S9C0XOQqqYEY3FVgQ2Ez+1ds6ZNacD+zj45r6
JfQx/LjRs4P8+VTaa9TAXBJlzgvZKawY4pjn5hhQj11kbMamfFFdrN9vbWW/1PfBNNksQAP3H1/g
o90+bPr7WW0vSD7LM/A8R4D1cg5bCbsKNjBGkpPExodXZRrM5zjfG3T6VrUaJjaN1UjW6v2FSvTT
0+5ud3/wUpZ865LNRBxPxKtOY5I1Nzp1nmHLIxdB35Ng1ufLesly/AsNv6r3qtVw1uAtky47v/5+
Ssac9qFIINopKiYMdh/1KtARUVEEmxMsNOLherZzVU8D1nQsW+7Aj2IMuobvw+2HlvtKwPyMS4S+
w2IcYuF+eZM6TSOTydFI6Ju6rypCqiXYJaZ3+XEhIdcPK8yzNsWOwb10gQClaUi+AqUfg3WCdjJi
w2JiZH4NUB6HPMce4FFF5lotYxkasUvq84tAGuv7f/d2ND1q68B7foUvlUB6oMSxYweJQ0gCopDl
ic1uX09RdhO26EGoSNC2/74zTqDAJqSrVvUBCXs8/vbMOPOBogGrYo+y0iuSQanpCK/HDKQmlm+j
uDLuce7qpmEJ13KdVkncnTe7XnDnl919kjXdTa4VydD1n7ozTIqK6+ohqdJgV95jGeproo8t0xMj
NIIewb3m2rZjuECef8lop2qi4RWsLLzoemK91d4QiWA/Qzi8rrMzVefShTfwxtwAhhnVnYFac9az
XeCXbA8deUjTsRou4HNsl90QNUd8tUrqrJ/KJ6Xy6ZFaZQwrhwKz6cke97li20a9kTm2esB3Gq4Y
2aKVja8Q3zBvunohknWG0pjZ6NqzX75BKE8DWK/6a5bePYFRllICKfM9EwVaUwdJBDaE5XNr7BmW
y8d/5bNpWXY5UmNVM1Lr2qM4fo/f7E6aSgyptVAiu8H76hlBSspHpk97vo5f/H2MoeebBtAXkzHT
tqintwu6812be5cjxOUgap5yJOfPbx4tgRQ1xy4U3PI9pPEW8kcmQ2roM/xLgYcSOqMtq3SO/wYx
rDGzljyuG8HK/hWxt3IeXrr5ZbyMEuj5tk2ZYD1dYuxUiWaMDE4Ng+PLTZ9x5vE//l5/6s4Nafja
IYa05Ft+BjNPhsbKL3JNvD82lgb6+sUQM7BeOpwqB+UKWCfTc1C3suHb7zlGTfO/Fek+izcEuK31
6qiNd3/YbmFGBtBVN96ALLmNk5Q8fSe74ku6J1/3O+Ro0pwU8f4lVc6eii/r/FgwUEMs4vz/aLXb
R1/XyYCUTpDLkBzRM/wW6YDo55l5Wii9yCr/suE29PrvoYc/Z6OCGVDtYQSEdZbWDkcA0/u+NrXH
gCzTl4v5XQLUItt8J6gTgCW7FTk9iA9IuCvizVAZKQVkn+brJM2KIVyhfTsALuxDl+SvcDbSJNod
igj6dsiUBy9oMRnasm8FHUo/dLVP+3URP21SwIHtnzAbfTohr1BYpNnQMPoy6BiA9NSSIaBhlXXW
zlCfdXTIOm8LEXVsG5oi2tKfTBd3JPz8r08a0uN0GT44c234MzWBVsWaOyFodYZbLS9QP6oO2JDC
miHoWjl+u5VOoLlyW1zWyBtgEdSrzLzgQkK724M6KdcVmOzrgfbxnnychuQlzRTVSqBKct0bg94A
7ZT6X2nSRVBpWwB6rHgsIrCd4iSBvzmBnmE4lbMV6WozFWuOOJhDFtlz03TImRY48/nCJbfnC73y
B0fQTpxs11m3EdqkM+0+dNwZmTw4S68ZLQdSGmj3BSwtaUkG64sj6OUE1aCl+uy9E/YYRGpwTujf
6ITA/n5Kn9BcM1C1m3cYgkaR54RO29BsOGcAOg2cid8CyymsWBTNp3cz34Ot05goPowh1tD/L7yN
k1IQMBD04W7qLrzbXeAcFnerrgOC9ifNkELNQHXAtukWXco1JzZ7z30QLkJnTlr3TF9OStB/CGzY
Q36xG8pdoJJNBc4A0bQfUEsDBBQAAgAIAEBhvUh5sXFEK0QAAMSJAQAiABwARHVtcFJlbmRlclRy
ZWUtNjk4NjgtY3Jhc2gtbG9nLnR4dFVUCQADiD5LV4g+S1d1eAsAAQT1AQAABBQAAADsXWtv2ziz
/nz0K/jhoK/TxglJ3Y2cLBzH7mabG+IkXZxFIVASlehUlvxKcpq8v/4MJV9kxW6sNOkGWxqLrCtS
M8/wMjMPSZjnaeLxLOug5c/hZDS+4LHP08uUc/SXYVuG9UU5Z/ltvSp8dq+TaDLi2e712fHVSX/3
/e7y+8qRz+M8DEKedtZrUa55moVJXFfw22+/Kb3E5+jyYcyXC/+0jLahodYpy8M7vgX4UlCEzmtG
nT/kt0kMVlgGJl+UC56NkzgL3WhJXHaL/qI6/aJcZTxFR4d1HDominLIcr57GY5qQCgmRhvrbWoj
QjtY7WjajqYT1MYmxsrZEK2y7YR5CIr+RATvwH86ahFtQEyibgHEcZLmj94iROnGSfwwSiYZurqq
YDxUiUH0A9w29a7dJodGr20YxG73DPPAHBya3QP9UFEUgRx1v7GvHA3D2OPoIEnyDlJtjDHKuJfE
fqYovZRlt9xHl7cpZ/5Cu47Q4PIYfU7Sr1GY5cUXaKqymqL07z0+zgHvck/1/+w5B91Dp9vr9YdD
1BoefRz2P15vVeqL7p1316f+xalzdHrdPT6Clw4PL8RbLEf4Hk8/rst8l/NAUa5P0AW/AREZOuUs
hTqzso7Sbu8jRQh0nMv+n5ePRu1UGMGuSRl8aVce+KpokL8QMkzj0xeUtu9302/3aHjyP72zzysG
PLRs0QgIdzroMMzGLPdu0b8nfALt4CWjHTYeR3xnxMK4nZfNhcuhjdZ//qu0WPMNXSMY265mIow+
IEvHtklNU7c1TbUV0lSQ5dp1QVijqkKh6gLrH+yODb00HOe9JOVLgopG8iw1YBpHd6N+nKcPl8ni
BRCtqpqiNpNnaK7PGfpj2Ot0/ji6FGOi0+H33JvkvFU8vT55v12WwwzPkx6LokHKRvz9FmikxFK0
Zhp137Q0r5R4FOc8Hacc/ta0gq4b0NIvnjFwGjMQ4skwB4cwe/DH8Mz9P+7lBR4NfImiNwLkBrpK
bFwK43csmrAZiEe6hskk9XjhF2HWZvm7OYZreI9vo8+Xg07nFGa6f56ne1Mh0wm3/65AaGHFaAyQ
gtcopI3TJAgj7ve/D/S8qBbGNxecZUn8cvBtTTGX0H/m7gI2eoSeqLbNYRahaT2h7AQmZDlz57j/
fsNMiAQroe3cdiyypVhNrXY5thZWzzoYZm0SRcVwnxp6FINHj/xWreoKk+Y1Ds9OPqcAhKfFq9Wi
uVWHPGdhlBWzQiUUIkANwY43HneIAXHPbmxaQP1NTGti00rgBlmH27S3FIKb4Waurnp13P2IjyB9
mbuf8umTyIsho1kzeFMpBTbwJoCNNMFGTUpwFdvvlyfHpeSLSRxXvOM5ZG4w+suybuzPwl7/DtQv
UC9VK8CqImWriy3bUtMAL22IF3NX2wQvg2QqvjmIEu/rHFCrAGTSdYAoBkBq0wY0dPW5gLICkW2v
A2SLFtKaAjJB4NOApgg+szAHPIMkPU5YxRv0mAdZIWTPxQicTmd1DVCKdQCqNwJqaKbrG8tADxNv
IsazaCwBNU6ASDwMwjgUKep3wVF7Os6WZRTwdNUCeEZTeJ4aIEjA23dhmk9YhPLbSfwV5cmLYYYU
by1kKrrebAKZeDoQN4rWaOx04F/e19MCXjHuiIpRa7lS2Zu2aC6rqW7bJOt1B0V7iCEGg63i5W6B
xPkHkyDgadkk9kpIQHgAkt0MkunqNq9DKsfu5oBgJMwQla+WM5OYWwptFgc8JtLeShyYuOnURgFD
jB0/9AdLuPxkAjmowAG5GDj9+isFGE2jAIY0C0rEcg19AebiKSSPav7OYr9Ij6sYUeviMT5DhzyG
NnL0GqbgjRlq/zWtuay1mx3yiN9AqBdhMYYsXATwGuTOF9F9FnTfEzJ2RqMO1UWHLvn+3uCU59+A
9T7GaAZBYAXY4xbxgXEaevuv0+HVxXFvDqZgGDE4DedbmN8unovQOVXbSeLooeuJxYzOF8cVgcEJ
47sE6DpkILZCtaZoDIugH0YifKlKFao31a5b5lPaSx2rMXwpSIpCjYZ6A13ToA+c/z2l5pLqXhSC
T3V6Ecuy0KOG409VOfXB3b8iatn+4yQUgAd3d/16jxCsKdRsBI5YqsbUDcARq2ieWVt0s4fY659/
8h7jOieG0xssiTr/pKq1R6X03iQVK2TO9Qm7XzbHoSWlolazxqaEcw9B4I+SZFykMiI/5vfgT2eS
CzWtuyT0y4wVHIT4R+FLTRhWSz5czMpBMol9VqwMPdboapoBPrM36KYpe+jCSw+DSVzYKCaJpai4
qQU+81dbALQmSNLRNDSqikqainZtC51MojyEF+55OpzGvqpgalFFpU0F2y5bJdiZSa62sKo2a2HT
YpjAGO0NLq5Oj8/Ozp2jodPrHh8fnX50zq4uncszp+sMz64uen3snPcvBmcXJ87g6rR3eXR26jii
tUxF1ZppNZhr+aXWSXwMfXGYlFZlYq2KgvtT9aYSiRtUJcL/xCinAM5oKMp2fQtVBQ3H3AuD0CsS
TUNRzQ1X4aYrjJpr+l6xCqdplgmMwSYgxGooxOauvxCi25qlK6rdVAhkCxUhhoWpouGGQjzsV5AY
FqVE0UgzIUwneIEE0psCCUyNKHT9h8jfgT+hu06I6ClbIybXPRtlOUvFOiSZr8yS767MCg3TwvaI
xeyGp8UKLTzPHrKcj5yvELR4tAyhOka476sQJdFXLvgveCgRH4rF2YrsFRYsoce+SQ2OnFl9Z3ST
OuWCsUim6Nwa2mkOD/gQg9kgHMu/i/opzydpvAR0Km1c6lwStzQhKLNU6PCimZ1v/55DJOocovr2
IWpvH6LeqQ7TWipVZtSNbfB8zedoxMT4ym6cPGXjVfA3EATsJZgLEiNUr+0ibOKkxfJNxUkPeXoX
evwEpJ4nxSSGxL+2mbCJWNV0H/t+opqktk3wAs5/eZn/6fBNwOOCm6tnxq2yP7eQU6V0QmWZCqta
bb2+DrvuT1RCXG5TaIbTYTmeHEfsQZUhWtX0YgW90YB1sQ7Df1rRcRP/oRBFilXpRpJY4JsLSXOH
bRrFKnDDWcR9VBe0mEPGc6a5ZolpnvHRNxbmThbeCMpSnSXehw87ZHVIqvYB1lTDh6w6y31IzxwI
Q/ltmE2deqeTRZyPHUjZWosK3m2axAkw7kladO5elMQ3SPzZrogpyvZItA2YZp9oH+1Xl4X1ppt6
HvM0zyjy8ycRbwJLAPpBy2o2EdOiTbcWPWZDbEbuiEWQ309NqMCaxCFkBI7I/ffmlcSWS+idTIAK
7L+rwnuuEQV6W2+6SwngseYvwIvxeBXnYTRgUcZ/uhXbyE2S6F25J9JwgxNsAXdqL2z5nbMxdIfH
IGe64X9Lj5hqw01QYYTrWnUjYIR6JbsezszZmq4RmE3lc07oQn7B/S9ZVmkJobJk0ahVw/F+q7W1
L6asmK3TiFUiobZV2zvcBIrl6S8CpTglcC4WLVo/Im6611/bKXzaEBe7Oi3XHSpDwpl6NWecJvcP
exWPNwGxeyUM0PtjiLd/qAHfCxc6p/MasYrdxpcJ2mJv8IWCNqEvG7RNSHw/Xw7QOUuhTXiEfufR
eHHaqHlAJ8D5HWcsOuDW8e6EG31WPFcD07P1qvdJYj8Ubse5Y2koToiUTnqNO1s8HZWerNz3aRyp
DY+7uDxOAG0kdhCPE7FmBd97M0TQcg9Ho3G0vPpWvDP0kjH3j9nI9dmecOkIxtpiM/xRlXKAVqo8
dr95OOLluuTe40LoJ+Y/OJ5ogx/13ZVkZ3/qZHHTnIAagcasIpht0Ih7i3rz5wcs45VwvFeUHoN5
+6351zfUTp3Ov6KiK//V2tpG/yB7MBi0v2KEF3jf/eNMfffG5h7FTTNamHpqwP8B/VKcgLCaJsFg
PmVaGfHXmb/a8qK9G5/ag1DBdCOYe7kinJbR9By6oFQ4SNJyi+hzmN+KBGWhlqcLNALhEhujZuP0
1mAqx+vR3BbfyzB/AKlKkbwaWuPU1XBNy1qvxg/9E/aVizPM3TsWRiJub2Bzp/PfDu50IDDCuADW
DhlaWSTSUq1xWgogdb9Ot53Zzpl47pTri8638phdEYf3RR0PTNp7FfPeTcfci8t9V+Y6eu283CbN
ZATeUgsF0z2/2ffXaYmqHygyc9Hnr6Nqf8YBBGVaGl5iO6R2iu9pH8MNcVhigX7WXntrlMzHsFE7
gPd059iq7vNyoj2ienPeQnSrdpBuA8E6tkgp+FseXK6VTS27OBP3QpxIfzlOZLwsJ7IkJ5KcSHIi
yYkkJ5KcSHIiyYkkJ5KcSHIiyYl+YU5kS04kOZHkRJITSU4kOZHkRJITSU4kOZHkRJIT/cKciGBJ
iiQpkqRIkiJJiiQpkqRIkiJJiiQpkqRIkqJfmRQRSYokKZKkSJIiSYokKZKkSJIiSYokKZKkSJKi
X5kUUUmKJCmSpEiSIkmKJCmSpEiSIkmKJCmSpEiSol+ZFKnit8IHH9fddIkbXppnezpWy2vgQGqn
03WzPGVeXv7I3zl7iBLxw6rTLy0RsLfRPEgW4U8v6FMzpZrn/5BSremvx7qB66s6e1ppPv1JSpgF
anMNxFqrofqv1upKn8LYF7qtptdFgm7X192X0A3RXG9sN9a1tbqzCTiZ/GHMKy6GPON6R9cL9PWt
G2bDPA29fDhxha6zYI2Z88RlBkU3GmYvAgnX7bVIkjueRmycbQrAVJvmNdjHHFzUQn6LzW/ejdmI
Z2PmcQgpQPsnKT8pfgE2SlyXp2swVYlh4Ws/8YfiSshzFk7vgSzeEXWPRQQM53dKFs+P2X8eThO/
Gs4qkeVFJC76S22aYUFz+SapJNu/swzyWwjMa4H8EOQVr8P3/n3R3LPc4dntsV99XK0urNpeGAjd
3kDuhkIvU+AJ2Rq5+9+rWDFg2fiy5sY6xOspH8EkOwr23vAM2G+9YXBL7M1umopjj9vMr82ntzzc
5Hh5ufEihgtpOlws1XzJaCWiAFabkhRx49wmOESLRL1h//y2WIo5ZumNQJUBA0nD2Y3Lq0HpTfmN
uIcuaI6pvAls2N97tjH7m1mjNbVGU6sp2meh4oTnt4nfK7s0/A/f+xusRctcd53RsxxDw7XrYTcw
3TTcqU9cSPdWGX0BNO1ttMn22+yqKqxDHrwNUKjqoD+mbHz7ropTuMv31Qdvp5eX73p/a529At3b
6fNF2NPFFYvLdzJv4BNUA5z7Jj7hJxrVbBj/NGBFK1tm7RLpp9vYZYzZf08ATSdxpTEPWBZ6hdxy
sZMYpHYr9SbGYI80NkbgKO+ut2uXTm+g0ba4Xm7DLdSCwG7sHyc3DZtngxx2qf676X0pFDcFbXK+
AnQh9Acwl/OhWF40ajdUbwTKra7JTC87nSlbqUbY3iyJpSanelXNecRicf5kNA4jfhSXq8DFeY9K
Pp/EN8fhHffFJUVlq6vYVmsXSG+g28c+fUr3er1Vv1LWPWQ5K2aLahm1C6SfRKO6NKDV9dzZgngx
FB5hqSk0VVy7M3oDhYRa2kqF5XL97Krfxa6EatQuiN5gw0Nj2C6JrQdCcz61ZH7dTyl8ek3xNvJu
WTo98/D9jUm9dh30JlBs/4c3Jp9nxGz78ZlvzzcZqdXYZHOTTcbn4frOVuLzBD6xYUjtn7ZhqOJX
2jBUyettGKr0pTYMxS3WL7RhqGovvGGodTpocHn8vQ1DeYpSnqKUpyjlKUp5ilKeopSnKL/LOXzM
n8s5iI2bHpR8HudoekzyFTmHjX45ztH0YOM/i3PIQ4rykCI0IuqlLLvl/tPco0lDU0/DpmjoQrpw
dnbTs4e+iS1jelDuQP3OGuE3nl4m3TBdrK9SQtWmpw59Iwhma2ZCXTSX25o/O08Tj0PoLFfmjMbn
DkEHVr2FjhseiwnD16rZRpM4C29i6EMYn0XQsI2mJw59g3OLLLSOUw7JPh8k6cdSv4hKGynX7KaB
39RNYk5bFYbXfA2ytXjyeMlxyAJeJDZicy6bRNPzL6bVNAugZkBN68fXYE1KG9+//sprsBb6yWuw
9s/Ih5pH5FfLhwj59fIh+kvnQ+rPy4e018qH9FfMh4wXy4fMl8uHrBfOhwy5BivXYOUarFyDlWuw
cg1WrsHKNVi5BivXYOUarFyDfcU1WFNyDsk5JOeQnENyDsk5JOeQnENyDsk5JOeQnOMVOYclOYfk
HJJzSM4hOYfkHJJzSM4hOYfkHJJzSM7xipzDlpxDcg7JOSTnkJxDcg7JOSTnkJxDcg7JOSTneD3O
QbHkHJJzSM4hOYfkHJJzSM4hOYfkHJJzSM4hOcer/qaOV/6mDvoW5rfoT8uY0g1U/LQHahla2w3z
rY6CUMruO2jenth1me9yHkCBWy0gVHctE75AgbfuDX9eIJCajPgWCSyhxA+rr8w+UJDNC4g51WQW
Be64rl1TjeKNlQWgBKVWvUQNxA+Go9ReYwnBa2AR8qiAaoawhNB6ielhVRSo9QKCA9EqRFvSjn0a
MK1QolcLCl8UFJbAaK+VlD9nhNIgqikhmGLxu9EpXdUnIEs5Tm5CcM6od37VKQYTVvppmqSol/i8
fLJ401AuwbGj08nI5WlZSDRFUQ7CmKUP6GjEbngmhk3tg1EbhAS1D/pwOBmNL3js8/Qy5TDwfvvt
ty20d2AP+gN8MGgfUGq0VWzAN02z24QM+n2jZxgHRNtHu9dJNBnxbPf67PjqpL/7fndZ2gwFvifY
tVyR1QCK2kMYhugDTKTP3BX+45Jn+fA2HE1nVwsDmgHu2YOB2mur1Dhoq13NbFtdvdfumb3u4cGB
rhFirUKzTmoNl/UYl830onVqEibjcZLmVWhdYpOerZG2OaCAb6B22wf9fr+tddW+3tfp4WF/sAG0
quAldC55jM7HniHQrffBLQPTD/AS/G+H7Kj6B4G0RzUN21a7Z+vQiLRH2gdmT29rNiaWqRqaZdJV
SJdF7wQpG/FvkGXtXnPwDRBtdru1OlUDOPe1RwYEPjdEt1cMgMb4FOYrgWuDA6L3YSzCHxt6v2e3
u33ab/8/cVfSJseNXO/9K3TkBSXsyxGrhrY0otUSZ661ZJFlNbv59SKL8+v9kLV0IQtVLMv8bB3Y
qU4IeAHE8iIQSQnnXCqJKy5cD/h2yj7g7bsjoIy5tZsCZXJQHaBnt9jS4qXMgWjmgE9hn0Ng2PEA
D2gdkyLZM0jP7+3u5THWuXTrE6xzy/h6vTjd1B+HD/Pllz7gkj12MZIcbQJgDsPSEnosnZPBqFii
Ob+124kvbfB2xM0WYo042q60eIV++KVz1mKbof/gNEKJGZ8J4EvOaaM5I1oYS4RlgcD4AwGfUDlL
o4OuOvvy9FgN6vv6nx8tZq1b2+li1i7WCBTrMaA/LP5zOfN7e9bSYE2jXGZKJRKi5EQkmbEnDmda
lEnSGGZMPFpzMstNu9KJrNZRLL5sVOqP0Wl/98bO6lj8CRRChGyCgF/hCdYK8yRBmEyi4NwLbqSN
CihuR0by/Y+bxSO8//dlfxQ4guVyuBv/6rj+AR0N3a7fH7Z9d9MIoJYdqdQwcUm3w7LGr39s05Dv
3shROi7sjNMZh4hRR8Z1oUSHIonIHHbtgiEm+GQTMzjgciriu8fNHxDqCH67UF+MdsxEnHVHHE1H
cXCiaTP/cP/w9LxZ/jQ8PdXoGu82w/0hCiCqQRies82gOUTFVO0HjtU55YgKnjObFDUltFpzed4W
opUdiNaM5o7B8Yd//vrl8/CqycbamRgtyNsSYoEFIXQikJuY4ZJKINx6KnROVkR9UY+q7xn/Jyeb
5VN/b38Znh5eHpfwD6dQJmLYjhgOO93kE3XF2+Hxjw2mnJXb/Ac25Qn7zBmtqsMwweG5+jBZjEsi
Q28UnG50glhpECiUcYjCBWwyf1XCw3pfs5U9njMDd29bsd2iI/ZCTQLLvw+PYHQPkFSMllJlM0bT
TCMnnnP4IkMdCJnXJGjHE8JVzIFdlG0/aR/u/m0Dlw3zU7jc0gnc5d3Dy+p3xNdYH8bYza2YaTOT
1cx3j5Ahe51lADnywnsiNGwkuChI0QynVkqwPFw+n90CfRn2b29auKwnw3bLoZY/vC0H8+Vy1CIv
YmDMw34ryaDUEk8zI8UGpaFCRVp5EeXoJ9/+fIWJHBZvIS86kAWzk5C+mj/PV8PzUP/nw0/LLREZ
1UU4jbBe/WpWnknjMwFLVwhgCCKeZ0qSKB5EBI6VXeVXa10u7Zc6z09Oht20ErieWIu9d43vf7p9
d/fyYXM/IdeMQRxdyT/0o9goCeNJIEz4BPqXMlECVJBan4P0F0/m58/D/Q8/9sFvh292vquPpZXH
8o48bmodD1jzw91eimrNe3ESUituQMOLYAWBHT7LUe8QLXiEgZgcvf3L4mzftYBdR6/kchqtT9S3
uqGdI9paSIghIPGDhVAOLha8IhYxCOkEiEoAdq3CX7eQ3csGulwNHeiDnOz1P9/FnfuGCzq4Tu+l
VwLBgBVwOSG1AnVkhlDJZHAqRar4NVbwOnsf+Ov7Brudd7woeO4E+3HseXv/PDzez6E1nLOZmfHq
R7dPY0YuKvtUhEnwdaGhQUHYSFxUVBu8UypeI09vxTOetTOykRGh4lRGx6cZk69/3v7y7rs36nA6
2iKnV8aQnBxoiSwcyShlJGZBOdgumHa6Rpr93H0J9m8b1MvF6hT1SkzD8Xbp+HC/3nzY3drAnGdM
jvGtPlSWnkpJphgSEodvKkidPEeQjtJT5C5FKyMu2kRnlTME9nRgI9VKdyjiyi33fnZXurwfnuvM
eycrGa80qhJFzaiKTEiiTaUakXrYC9iiyiDpDPk2i8dpz3a+78/M3EJzvQ2fz/fBePGvmpDSPSZR
vSRPxQowV4RjRGKBjIw4WRSJ3GoljGNBlZZON7M06w+6QzsHYw/rP306Wr0eK5gKz0pHwgPcBkgz
DlgKbAgrUO/MPA0TMn80R7P2WqqTtedUmP2x/PnpDiewX5zrMUQw5TSSebguGsBoWUIAz7ZydjzH
QhEIJ8IfT3PTLLVYdNZfmYn3f/1bvud3t4jjYzq69aVQ5xmrJutKsSkxRkCGkJFSaYhXoeBcGEKx
CyLnqxxQZ62+yncGHsu2EJ3EbXEait89PlRyMqxGpniQjh18kUtGl0qQoFwgqAla5x1ic7ZIo2yS
SE/pNYJ1F+qL1h3aCtcJ2wsxX04ObvRw79/58hq22UzO1Oii8LMGDs4MkwUxsNSimU4WXENnkqOR
GpI7IcrVrhZLXXC1eNsIoRadE9LUTYT429t9mKnoeY17ilef5JxPXnAFrhfhBbTNULmCMyqOiZg4
l+oy9auoNstRh67O8F7R9Ie+vm9k1fyU6C6MsJPkdjU8/f788PnpSGA3E+NxudEPl5wZ3DAnKoDz
CuMNsUw7kry0ITOD3Mldxd63C+2x1gFn+PvpwEYw23HfC7u0EzNLm/FaEmCawxw5jBsTdc1zFJkF
onwlkFxxMN9SYHbZ1SIk99x/u0T9FM8Z8U/GtdIvO8fqxHySlvUUzf96W6PZmJwZNebC8Ccl08CI
FQokbnyiSGhA4XS9yqBCy2+u0MBxxmZ/vb1pxTrlc4sVU+vhhLP63yICxJjUjEFi+1RjF9dSwRZI
pjV02mqyNQ2lTnouqTI25mtpKhY5z0zxsgG/4qe11sUglpOD2t64/PkM7qMkAhv+g+1DrbZkxbmF
pwHHMMhwQACC8JI4G4zziHgsf11B6+TnUde3Dey1O+Vt+OV6TxCA/NPDfXz88vn54VCnplSzmdiW
v7KxzkibSHFwFSLCoIJAnuNoKgIug2WnurztdOZjYEskFSfAlnS+2rOm8nD//MvwYfP0/PjlkLML
OWKKWbJkI69XYTX3gq7DmSHbRf4SI9VRG/5/p+ZN8eUUdiv1fOhIvVhNItaP8/sPHrTky9NmdHNm
Sybqz5riMyiSyZJEpVm9VakkCRqVLXI1LpD9i/jNxT+GdKbWcTSiEVozfSq05uyUa9zO71eLhz87
xfyQiw+mpnHMOhB2uHkXOLSyFBBDHowJ+kqWsVvkLM/YvW9F4LwnwpRp7JOUp2dsbi29Px0XPLbh
agxVDDZUebcpDF5MBQE/neAJXEAQdtTHdFUQ/vt2vdvOcsdCnQybyDbvyCanslX3kl6G52NqK7T3
riRFuLaQg8kE56BBK4qXGtzW6pCu9cZ17vOOrb5tUcseamWmafbnYVh+/GVYPny4HzsTt5erNZcb
ucOupqkUE5xnTiKDXYl6G1jvVUgROGSrssjiquSju9yZjLs3tBVR2Y6Ijk4O5pfhE9j++83wX6/M
aJtbOVedpfOaa8dIoAmWIwOSTcOQg8B5qyJTVEpcI9rpMufc4XRcK1Qn8Vjq1cHvL18+P71mrJLa
bc3Z+sRscUSP52OqOFZSEBsJRYtcKaXblPV4nhZAp+q3tHRaVaq175fNqCmVYAFHTZ1dptlF7Ym2
RdVrOKTOzETi4CB0kpRdWVeqZ/3b2/Pq/tvbmxZeJ1haZXuVsPfHyZqa0ZmoAmwfKoEyUeDELTGR
I802QkEC+J9spTUIp2CK9vp07WK21iRrS8c7+z6364k2z/9YP7zcr3YFsa0eW+tmnI3XoBR2mqkh
2hcK9Eiog4HZKq2dTjWNM+5y6HtfDtOfwX40ohFg7mhHgMXUHN8uX6MqFNiM+lN/jGosUskiEK0k
q5uvoTkhwH3CDBOFZRR2zeYfr3Gm3n00opVisexIsZSTQt7nu/nz+uHx0CalxxqezEJSg2TRsNq6
oAE/Yvcls5pLryKV9FINr520hbU6LSQtl3Q10fCfhtVmHsGxHh/ubsc+sEMdiakZs2MOZLjmShNv
WIYr93Dltdbmg+fUOsWiu6owf7pUf6dPx920MnTUflirTt5wONE4f1zsIxVj1fWMNzw7HwQZBCJD
JsbWNEIETrzXNY3gTltBk/jKDc//KM99xXLGWx3e37QSnnK+Fedu7+Y/DdDEx/lBvbSe1eYYmpP1
WUE2X5vIpNf1bjETHqziWdPMMm/9fDPRTbvaKUNYKacm9vp+sxoefn14uBuJ547bIMWcIZ0ciWdI
OViByGORYYCeweMgE1KZwnQlt6lcTtqO5+9v4fGIRoKhU/NZDWLqcUDvyu3+nlaOKULkGr6wgMBw
i3jJKOJUtFAUZ7xlBoRcX744GOc8yybLbYtTsB7OQwV+X8J/eN6sj5I5AfK1ZcNMGlAdsC0Op568
J1ZR5HQeKaawShXuLl4NHM17jGvgHdY+cDkcfN0uE2CH6rwaEw41NrZEFZnyJHsBN+IzEg4bPSkZ
WYhM1kiaWk2czNYi0fMOEscPdfrPyz0GpdxMbnNvhSNznPJKL4DBSEnA2SihsHEbo7V5bBo43ZjD
dC2ITrvYIMTBJucvrzUAePS6CVxT5P+BgNZYqBGIj5OOEq6k0SZYr8Z4dbQJr3PctKt05F+4VccL
7puBqi3Ch4xK/dpvpIQHQQmegK3IWrJlxCE1JAigxSUWc9T/236j4xE3Ld6hI8R8ao53Dx8290/b
G/7jZAl6nQz4C/iWS/AkypJQiiEps+SL1hL08ZrANM7/Vb99jKI/+HhEK+dy1ZFzzfd68m/v8g+T
9hYcilAIPyTEWFujMlil8vCXigUqHJTWmm/U3vK6egu6p9xLxadFhgxHadl4g1F/1qDDQxFOKkVY
TDgYxyOxoDPIxg2POrASlPl2AdXnM7wzN/Ks3ClPwy9XE572NCw3SB9fzbbaiIVCJVqIDlrUdnYo
mgbpdMz4YpwDE/KX/GkzZwuq03WAXy4mjn5Rv098OsT26k6dZioxCv8ZaxkxIIvznnnCAnMq+ZiZ
Z5cwHU/ZQlr09mnlJvvUfFf/hhvLZ2pbWSreOxVNJsqrqrolwaOk2nwSSuAGujH2KJ9Fdjxzi2zV
QTaoeaeuclCen29fUweNKFB7Acaf4z0iMyqm2qJnqmVxBzXVSIk1OJO3iF38GzYiviI50wp020sv
IN+iI/SanvSl3D083n65X9ZSn9sRFzdSF8cQ+3kwBHyvNrlTh/CXPTFBFKdcodLlb17dPOA5FxJ2
rxtZ1/TUT64pZccl7HfzxydkDscF7CqkjkWC3SKyM3AKIU1t8UAmBXcKV5mTpyr9P1awj1HftNKd
Hu+as8X0eMuu5PjdG1P51MzUIL59qtFCmmRSQtruKByUS5TYxMGpPXL5xBAev9IMeZj/zHHtX9+0
MJc97Mv9cb3cHzgYr4UzVW+vDTQvsgR7466QQKkmiUdBOTQU0bzrGA4TTZZf9ZZfT7YOzvflcfP8
5ePmuzdbw1AKq45tG6l+5FHNwcGF5vopUG0mRVLODQuRw4ld3rUxVfuqmtzuEPzt7dle9937Vj4p
O/JJOXV3IwiYghr7nFTVBxeKYtpA/XXNVkqq9/CaIVYo57nVMhf7lyXbvptAVT2o09i6un96Wh1o
udH7iOFyBLdxnCQKHRYwXOJ4gGIIU7Nvq8HbL0WMo3knsIYOLDNMrvh/uL09XJBsPSYyEl+bJqWM
UFRmEe8tIn+ROQfhYkjhsjPBjGdaZG5vW4Rz00G4oNPiUfMB6xtG1T6jQaB3yJsNyRFGL7iqrUdI
raRmWUQtmSwXg20zcwtt2VE/IVWnIfK3583dmF6wbVllRCYstTFEkMBUGNg5ZwRRFazAwNqThILK
cHVlty5wobhbX9+0OHUHfL3MEMf7WmvSz3dPr9nqflvr90S+dvlyKjURAtliKF6QZJyRXrFixEV2
1UzcIJO9GCfZSdHz59uXx/W8tsi6bYe+23bn+8xYrI12MlVktIh6aYt/jZYJRk3tH76cGOxnPlPn
3L9uUXc6R9eSy2lBYhslhj+fh/s64UFh66cF27bF4JUNggZiham8FQzW+iyILFZSzpJLMl/RtjhZ
ogGrOoXxtRLiUCqbLz8e8nKr+bYLInqeE3JHB2WlthBrkQoHl3yOMCQRdBfV0VwtBtGxHiXVoU3g
0+ePh92p30xqLIP8iKTxoxhsCQn4h3gqQKOlTyLSyX3MYYZ24Z7mK7mY6FfaPP3uHxeb58fDxYAe
/V8NjDSVIpMLhPsIOhEsJ0HBkqFtiBwh8RQuXwpMZj/XyNMMmkix7kixOP1kbf64/Dh+y1K75+iu
i46On3Zai0jCSHTB1wsuWTt9M5G1g06mZJ13347cH4Cci/C7162QnW67talfCjfh6T9e5o/P/9oV
r8F26+2ZxoMbPx2pBU3vSYJTRaA3tRgCCkjH1h0d3fYa77yUr5P3kb++b6CbVUfLLGfT4FC7JdPD
tvY0Audsy9e95ZxxR3EovnbsIoKFwDWJURkfmU0yXdcdv1/hwsdG9XWD3nVaj2pfz/7zvEfQ97s/
kD4dqEotauggbAaJ4q52nUawRVu/yRYwWPwmqdwUVU+maRFI1kEwn7atHGQaw+w/fvR/3/fkg2/N
EK6q76IC9JXVb/3HaguvDUVKS/wrywXYsoriq5pe5z4fYOvbFn+n7WbtTnjLvoJ7Wg0WFZkRhURD
QfmYj8QZRDWqiorMKW3Fxe71ZuYWWue7rPV8NeUtP86RVXw8Lg7ImdJjdaA+jFej3ofAAEwgRxBZ
JnhjLkmtwKWkSkwifDsP0uI51xB0POamFbBjkPO1OatQ442yRcRllU9uO1qpoLP/5u1autu4sfRe
v6KXvSkH78cSz3Rm4ml33MmZ3RyKKto8kSVHljLt/Pq+F0UWCyhQYjo62TgxqwxckMC933190FPX
UyCOaoASA0BvzBt5sIUIOEyE78d5qWMiF2e1yzTPJLbL83o5nT7w3WhJB3zmRXZbvbEFgUo+pS6x
GQE8CYMeHpxUQTM4FtoOwXGnRQRnyJEXf8KX8tv1O1e1xKq3jJYM4tT6PWv4xUcHjZmpt8qB/tFJ
wC9CPWxHjoQF4ONnmqlKWfyhBvPT82YNureGNh64rVpijpFKW1IvpSComN2QAOBErGqncjCZYLBe
MU2izcan5xH1avxazE7YcjduZ8D1bf7f9x83D+PNql8xeCY8wP0heAqI1AE2tSJRDF+a6MCw5he8
vYv7FRsZFvIjd+iqGMISIeYygiUH6V8pK6W73kqAZHGwmFHiVIuh6CsfA5VWEqppixlPg1zV88jO
5LqFW27/8O528/X9MRXTFAo4rdGuYqaCGwCLyQyGwg7VcORAYWhwUS4qwqunObNZq3fqxax3giWS
6iP8/+d3uW0mFtkBzhfo8CMakRTPFhgnUEvOSiGSfAEsXp5tOc1+VctnOkKbzVn9/d3fpxbuN2Qq
giSSHEs7iQ04XiglxQAKAcNbFbFrL3KZNQsm5RdcxLNItjyqJL9mYi35NTON5P8MYZm7C8EJlhKY
fvjX8IcQcOgMpruEFEmBQhDikr0Cw/YFhQeNmHYt5sjaWNDfvpsrF7CUEQMaGlALAkBPqTERfESZ
NBgT50HkJPWgNLiugYICDq8SLpxFONfOsq5swJXsOsvjbW3Gl1Ij+ebhVCS5rKfFmjZ7qG1D7wIQ
eZQI0ogjWF1lM8B19KbKjxSx/56+SoC0rdy8sMCz/ga4Wn8Du1OBzH+9Y82pTzwSkyiBn1EgEQWg
PE/BJDHOnVTaMxLNq+VYWefQg2gdkXdzsyEalomlaX/3AYNcp3gKKyc9KgdulAJtFT3DfjFwciM4
gllFQgyzWQpZW4AzQzZimZ5Ys8W/3dx92C/saDkcUjgBaGpgSXIw73BCLMlgCnLWlAaSvE21JMtR
ltNTsllFyCyloq1r9LdP4+P9/eNHjN3yEr0o/91hlImCS0Sihx+UIFWNNVijK+kQjEasSRKYxxdU
4Dz+OUU4v1BJTyXpSK9WfeQZf4m4fyg0DF8LBi/AjxpdwJ4h0pE8RBkCGCQHEJaDi0cEnEgTKTOe
vIhJ5tFfztblC95vXqpXvS7HsUh71ZSjxPH66cP7r5+u70u8mMoJrWP+LhOuFdhdjY41D4YMhiAR
hgM31kUNbqK6rIvuNMO59rnTG9Ua2LqBBj9sTfDH8fYzWjJefCZREKQDfUhho4WERcxSBsC22JDq
lAQs5sHE5VexDDD1GaMAT+rF7K7Xi5HbTYe650BmhU5gcc0pAKGcQJ+AP47ttUKD05T5QDSLImsH
aNH/oZhS4189Q2Y1P67Wpjadzaa2qglGfyrssHMMhx8bsGJ0yC3jhxAIxkukBMSMIZ2cHLEG3EX7
bNHtctxarm1nA6mxpUtCqpEvRxVcirImhoKDTvdZW0Y0iKcVwiPQ7iZjbXYE7ykEm2xir7GZKktw
np1kfqVaqmZrE0H1Ne2xZZSjdkitI0lJqZ4HNXyoFokuG5PVoLFVnWMMCDQ1IHFvAKzCAdLeXUyT
sZzqGY6M5Wv1sq5Zb1ljs6xnVTdjOQvN6EB4PFLgOcMH5omOypKgtf6jqvu8IjamczaMaQOLWM94
iCO93dzBAfs03lW1deD2OCoDnA+PXGQSq+xyNgONOgJu8tnR53fhavRzkfHmtWo1Vq9BO7UHs4LF
kQ/bj/tfx1N7CxxxOZ3yQAXRCrCrFBoODyds8DyRQUnQx15acE+bctNmsFqQjewJos+0dBUb8/39
hw+HEz4zFzgFHgMgTmRxBJSkMK0oAIDCPk9oKJSjv6e9aznP861eyzeblZneykyHt6ApjwHcZdAC
lkAbai1KPNIdItcQ7BTvRAaDKJmX4PknQl+n/KbzYrOezpY5lq8tKBz3JXmYN9txyqzwA+8TP0aF
MO2FBGiBYU+ojnzwwoUhSBuSpcGAD3HJT3Wc4Yw+PjytlnAzdjYbfPhMndtf/qowCqAmmkYLFs4B
4pUcnX4PXpuFgwBASpPEggIE+Qfj1ss3GtFVT/TN0XX4vPm0YE8hpYOHSMDnEc6AxUQA7ByDMSQD
wMkYMMxeNY7DYoxm7l1n7h09zv3D5ma/uduObezHkATfFhuyzBYzEQLOpAJ9bbzL3HuQKL2SF1hL
UAk/srXbAB/NBHj77RPWFJwYIyWnoOoK+HTawfkaBMEeIgea2igRwd5IBZoOUFtuFF0z1lU9perI
wcYm2ru/280ZdHGqr2eJqiA82ArONLhdEqBjEHSggoM7ANrc0WeDvKdha6Hs+kwzStpi92Ol167K
CEwVXwDkMesksCYcMDr8qaYeBJ8jHOpkkpQAtbjNL1i1aYqXcgLr965q2cf1gphue5g2Tzf7+zeP
h2iQw78t+moom3itpui6NjlYMQipEMnKDPrXugE8XTg/QjFrnwcdy8HPKN7FG1e13J0tw5U5bd37
u18XHagoL3NERcLyYLyGHwI2LBx4qwasTJPgL/mgQrtpF6Nc1VN1doe8aeMFx93xl79Ozf8AQeEI
wcZF+5U944CyQVM6joTlpX8cVBEDTRqZi4CF3EUb4/ntUMktx86RN7IFmz9s/j/AkA+bN9ewl24n
/kgxRSYtyg5/GsfgF2dOoQKjWD1nsauKRKqEhj3dCaUuVfg37RzfYPsd8qJ+83az/fv70/NqAWaz
6yxgO0fcbn/7tHkjZ4pbdC0j4cloOTgdAJRhiZ2hSF8dmM7aw4e6yaEvx6gn3246k49zrfD3+7tx
8+BuP4yLrjhKmZkoOELwYNuRSxt5Q8DcpGAH2JPIXK504PrVuJrHLQxwpmGkK2a1TEvXWIBZ2ZaL
/SMi9p0aqwv6FbhrCWAWw7EGH8nhsMEXIAwxmGqLLzgh/0k59D/imRqSWC1pYzr6Aj48/nI/j18/
fZgrvMsPprUR0gg2xIRgPgR02ZF9kEcqQAGFFPucKcuxGiHWvjq7przNap5KLoU4pjIV/CgGe6QM
Q2mIo6Bswb8QWQsnhIUt/WzNZSd2wK5NxyKUVijddTA246f7O2Qlu9/i/XyLxEqy2XmP5R9Io5kt
8np4M0j40kjAOw7473MxqplecDKqd+v1bWhvffP3/cvT5mFz9winYdYX6kgYrV0GDQ8wAiyNmXrU
QXu6IRpOFTWKK8G633c7aCPROm/FdtcnBeLeufDfjebIAEaoS4CtMTjJQV8MPoCdsJoma8F46UD/
LM2xkK9a2G5ch/74oovisAs3X07dO2qKOUvugvQDkcijL8E5NUiuxIhTLDhNRGLPbet5wKt6YtmR
hq42Nt6u88OIydzxYU4wHyMrik9KTTBpwQeDEwc2IxXKdvirMMFLkFITexlXRGeuMxu782a9uk7I
Dz7cHQMU2/vPX3f725PPQc2BIIUEZSLHduxStZUyh8VQcDfBswQn2oHiVmdooJZD1tLcrDMnXJA2
jd+tmMHaYmFTUlj6YDMmcSTyWAoD5y7lxLBtlcnnS0yeh8Xhmz4cBlS+ztjz3fZmzcYxXTkyycwF
fJe4cZMwMkqF36JmEyGLBZ2H0D4lFon2Wb5k7M4kvMPh2VJcQegauGFZdyPu9Wb789Pnmq9IHZge
VYm0g+qyimCtBE8OGToVfPNgUojljkcliI4XJcF9M9NyC0/PavlvaEf+3dx0eLP/8nnzuJ3rk+HY
HaNqTlGwwDwMYJDdgdQYY4NaxkiZc1HFftlePWYlDiUdcajeFBa7suEfxm3Fp8b4HMyXWtucHXi/
Edwd7iJ478hqBXYBHRNG45nWkXbUWiR93RNpnL+hr7c3p6LG4+UnIYKvheVDDvsceDR4fCTWzEk4
0VEnrvpNA6fhGil2HSm2c5Hlt9//uCpmEuA5SW3j4BT2gzhqQYmTNCQGsCCBg2CSfqVipuPstczb
3o+5bfvZ/md8dE+YupWlemUqZGXeRy3gZzSJGiTxAu8Ai3KcJVyAYQ1ghC4k8cLBz5It4MNG6G1H
6HFGpKt+BjkJzL0n1AZwsy1uPgW2yDnGBiq8hK3HzSr9fr5tASbsVIAJZnYjW3MSYc/2EvUpxXSM
0Q7OZLxoCXASeLRu8MoxCz6tpdZdXK5ZGsLPV2vi40pwZnuCj/xoBN1PuQQPlkawFNgKQSMyPkWD
BMURSfVjBOVNRYJfHL4/w/4g91AVfqvlqJcwrsGgKDGMynK+Gx+QbgdjeEs2weOvQCw4j1iBFwPy
bpgYBrw7YaAK0Ksnwthw0QbuTHOGlnj9YrUssb78AD+c76H5OO4/3Wxuh82XuxNlhzXHcJ6OzCce
06BIxspIQITOsjRER1K2kePVFPX+Xg/YyGN68thT4f2n+1/HJWDipVgcDDxSqw0qJFAMQTHQqTkO
eAtaiioZeaYbqx2vEWbTEcZuG1VVwrth8/nxCdMEUwfp1Fits1dg98Qgy70dMojBAFIetGMxRUBz
kb5K2n8pwTOXMRzeqNe44Z013vBOGYD7KfwtokLWBaNIDSZ/YgcFpxG8Hx2GZDXybGCZXjKgnLMy
Gqv/jFYXU8TiLM+QxOLjegU3oreCm9UKkBx1silVKycAWAGodoBBkLrBY3+kwDifFKC+ARleRqZ9
Gv+c8MfnjfRjR/pdL0++qGc6aRQTtXfYwJQ85nKIBteXgk0nnkerOQtWvtzb8UIlU/VKLf1O9qTf
tF0ej5vHL6fStILN0Dw6KRWKOASHHOAAxcBvR45emgGUJyFkeLaJcjFuI1YHnYHBbb7Upnlmn/fH
m5rgTJReSgri2EAjfLvMwsYGSGs4OGJoSpPX0UZ3Mfkgjv9MAw08varF7RxMaVcNbnXxBC2VIhLM
iSzVf0JqCjsaVBleZpHY4KPSSIbPUWNbzS4yNxeUTZwtmQCZOyC1RN8PNzd9P9X3tEAVPIUYCBUD
C8g7hEkjq4kbmMqM0py1eqFI+XcA1YUElexadjaS3rFOorWQ0nXYzACTZiMJ3ruKpikjK0xMdgAs
KxR4VTzF/OIBLYOf3zzl8VJwSTdrxCXpKXb126lVQBZH0wQdNBhyInyhnSqJF4GxB5vBwFPnGtqp
33p9AjAF6807k1//a/NwmpmVqXWICpxxie1dbiJpMg7vxsgcr3qzSSXd3I1xGqSanInO5Hgz5PFm
Kviqfnpb3/WnJyZ7RmjKKuZBEtxswcMh4ZjWtyZkK8Fgv0DjfvmVVCshmjXozhqkaKzZMYTqn3Y7
ZGSkhZXfvDl01gPiTp5gsICUW0th91nnh6zBSluqNSzr0vsvTrOcv/ji9E69Fil7a9FNnBEd7ePt
CcefBYvLARHrILXBPhvQXjSgo6ewIZAD+ieeWG5earGvx62k4+MaakrJ5nvMvvxyu38c+clsTby4
PoB10joNTCBzRgJM52iUA3XIIi3AADPesNQtB7qqZ9v2RGivBJmyvE93ezB2xT/58W5qaF4meJPk
XArLBp3QwaMJry3WbBDOBoA3JsoXqhTmkZ/J7uLjZgXrgKJU1/OX6L9375sIubCwBbEv1lkDgjJs
ok/g1CXwfSSFEbP6syLkJ+muavk7P4vWs8X69e3+y6lslBZPlcKy8BIMcOnAU02gRH3EllW8vZIb
5olzf9KiFtJVq0K+x/WqVgmkt0+3j/vH+6ftx1XgG/MAYmIBwP8WFgxuM81qUJwjSTTGqINkA2F4
DWQG1CEvwkfPTFoRv7av1QvsZJDgw7nMANb4GRy9h/87XUlYnEefTQ6U8yFhqwePDvSmtwSgKOE2
MYOVE+fuW6gHbMSxHXG2rWf14/X+l6dSdUBLvTin5ZrkLBWWtg4hICWXB+RmlCODpployjR4VRd1
vx9H73+fx6eV3HbbkduOM5NH+CG/h380VvdrAdI0gnm8shXcXR4JbH1Mx9LICMs6MCcb/FAPU0vQ
KW+T21E3xS/fjvfLi2kK7iJaow00U7AwGy/EEAsPiuDwFQZQ2Soq5wgRgXF+2e1W988nuBcvXNUS
d77ImwPFzKKhbIqI1F6piVQpHfIQhUQrQ/BqLlCXeI81XpXmrLzo0pXD4Od6AsrDq1q+jlW8MXzR
Zbq53p8q5Cbw6BjDXhSjA/qgWEmbAcu5QDIzxHjj7arNdB6lnr4TcpE31zNr6w/fveveiezA/AlM
kchU4lAab3dwg1ZSUpsMesiveSfyQoxa/GveEX/bYY3H+pnN/q57jTZzDvSnsADfMPWD+tV4ArYl
AEhneGt55hfGaudpzoZr5zfqhfSUwM3NmW7BL1/vHj+OVRAS40R8uo1n+p+i1ILO0cghU0+wHTkM
puSGGIBCErzJL7DG/Cc1J1NP4Pu1hOvGwfml+qtYEydYOQrWHOO3b8P7WYczXdJ3OVhrwAEZUlRY
Yi6Q6LLU4IEfKFMGxHMRDsexz1hEeLKUVtH1Ve744c2R12qa640/nWA6kfyaxC1NA0VGHA7HBg9Q
HhRTxAKEITI05Xb1QLUM65srrQI70Gyet+PjBi8/Lln8qeQOfJM35bZIQoIIXsYBICx2C1JQ3gJL
WLkl1iBhbIyvR61xlOQc3fz09KpeDu+tcTyl3lYBDW48z9k6vDoBq4IMQIwIQJEGl0gyIYJb9loB
jc6v0iFnhw/lnIT515fbxwWBAC8NvkQZ4jRgI1oYlJ1NeEsLpo0SwCLPY+SNal8OU88vO7uCq+tj
FvfX+P5dDapjTtEzwGTC4qY0hA9oaoagaPTKCRl4/LNA9SzcVS1+57TBMpudvr/7ucryT03U08kz
iTAYiAyApfF+DcDRToDKAEAKWoIk7YJ8lRzB3RnqTnhQrUlcy86armeqxrclS38K4ohy4w1FDgfY
ITwwJCczAKFjHKjJ3DOR1MSQsdgm1SjN/GNn/nHFavnx6e7n/d2HwzdyvDYGo8vFIbMRFIiVgwBT
itfGgA2lSFMGOydr72nSF1FNNNOcicHVL1XLkbaz7SWWofJuCPG7v+N1cBOcFVoVYhdJsgoa3BKJ
zCgGkCycP48cXkZ5OIjwBV8WQjzXhLB4oRZ+ZD3hW6qkt5u7Dw/3v1Z3sCoOpoOBxZPBYJmhBDgj
lAFQ6Ggi1Aew+BfZvsPYZ3Tz4WkjtepJ3V5U9flhv2w6e/MO/15OZ8FjhUSb4y13SedBG/C+OLI5
GLwTWjI4mSlHrl64i+LC0/mulqUOsO3rpjdYiu2tbz6h283243hi2MGYi0wWMCWWPeEVpMqXi/z4
AFY2UaqocLGfaFkMVYmw451dvVO0Exgvd23gzsBeMCrkRJ9poicaDPq/ezuy3bZx4Lu+gi8FEmBl
iBQvBciDDspwbTdF4rS7T4YTyalRH4WtoO3f7wzlQ7IlO8UGq4cglkbDIUVyDs4RBRgHAlMF+AqW
qoYBZQFoP7ChXJzSFnP7hLaP61RL1kS1PKEaj+o+T5Z5mbS0zHwYSOveaeJYh6CXoVcHbNFAdxph
yi8KzDFSOgjfZbeuknDuPLGEOOqkaurkcardYj05RDoptnOl1dxLgRFRNxICPc4U7OReFLipSdNE
gozC6dlM9hW0R1Sd7urKOznOeuxVfQ8PuwmXMkpSYCtAS4qntB7mNMISmUoFnLGAyTe5r1Txt9hE
es0+iMrLREMPpvuSK5+XL8fpQzjjHFOqS5tjgis0ClIMkU0EM8iYkvdKGrRvvEYybTgQUTTwG+3L
9nQd/yvTZXjbdBnWGmFkaGCRokKKtmXLR0EUTNFMBRoEFpO/uFpLz5r2g318XKf+NPUx3MzU0URe
HEJ7tSw3F0NZGHHhSowY8tHPLWRAPVaRCVIsypfIs/H7TUOZn8r7oJpkJ0kDly+v8NGGqyyfH8X2
AucL/BT2vNCDrdf3YShhVEEHxpNkI7Dw4Zs8DY7baK8NWoWq9YbxrKE3gjXV/kIherOZPc3mWyul
9be23kxe6Bsvkq5CJ2tfK+NGDEsehQnIewLU+vS8XHKK/0zBrxpcrTc+a9hbKlV2vv86OGNW61AY
YO0UBRMGo49yFciIKCiCzgkamhfB8mz2VT0grNNxWnIHbvL9oWvcjYcPTeYrDu0zX2DqOwzG8QJY
X5E2rqIJEyakiUff1XxVI6TWheA0p7e9ecIhn1cT9LPWVo/BsQxjDyg1pfMVCP14WMepKxIsWOxp
kV5KKI8o27YHeFQj81menmUozF1Sn7+YSON5jqoB39Ye5WVWJMqYH6rE5RS5iTQBqiupK0Ts+VSq
WMbhRU08HrSnXogHdXKfdAO52bEjGab+s3uGz9Bx3RqSth7sNnssR39NzLHlJyrCIOgI9rU4CEIa
A3t+U9DOtokWK1j5sEZ6Jk+9N1Sm+KGEw8/ZsuLqXKbwBtlYUBCY0d0ZuLXgbhCDvBQkmMhD+6Fs
2YCr2OpkqIYlPp1mTdFPpUmpND0yWdawChkIm4l2hRFWbIvcyE+lC3InjVUUqIti/BbxmfCmIwuR
bgqUxputqT07pQ3CZhrA97Y//TK7JwjKWmtgZSbxUaH1PdBEYEJII2SaUBmL9H85Ni2f1XtKpw09
lccZxfE8fr7aeypx5NbKquxUdKwZQWsmIt8w13h44m+whp7xKfAXn3M/kCzxLiu6g9Wl9C47iHon
Gkw5WojnE6MlsKL22oVKSJMgj5coH/kcuaHh+JOBDKU8zi58pSr+M8ywIcxai0lTD6bBW9TebfLw
Ms0vF2WVwMQEAeOKu57G2qkawxg5rBoOy1f4hgueiHe31+/JOaMNHyfE0FKfyjN4cx9obPMiN9T7
46mmmOsXS8zA9/JgVYWoV8B38pMQfStbzn6rGB3H/Cry9XIyJyBtzaY7b7yH18UCRuQGSI0nc9Al
F5MsJ0+/yar4lq/Jj/UKJZp8Q4rJ+iW3yZ6Kb7PN7sGN7WIx2XwfT1fr8Y9ZdkPKJMhlSY7xM/wt
8hviVW9u8sL6RW7v1xu+hN77b+jhR6VXMAK2PayAMFvmjd1RvhR/1qbzZUju85fa+N4D1N1y/pug
TwA+WU3J3iB+Q0arYjK/tUFKQ7LON7MsXxa3sIV2giFIYR+uyeYnrI08G69eizHQ9rq0Gbygxew2
0B05vGLsw7XzdT0rJk/zHHBg+3vMtMO65Cc8LPLlLfURngLSfUsUphugqLdz6/WvPLhVbQsRXQVA
kEOce9Pt3X0io38+G9Jyfendjx7DgXN7uNpAt4+duEsw6gyn2qZA/6gmYKqV7CPozCZ+O3ftQTc2
bXH5xqYFFkGTbZgXbEgYd/tqV8rxC1x3vKHz8YF87I3IS760XCuDV7Jjaig7A3pV+n/l2TWC6kAC
6O7F3SMC02mSZfBzQ4AyLKdS+SLXTt/WmiMh3iF3y+e24dB9ZxgOBncxOT9eXtDxhzvQq0m2mC2v
W6F91nceRmHcJ93H8D5pRyuAlQ6dhwI+LblwUdVRQ1hEY0tCODJnQQHr1/wJgyqHdlDa50GHDZ3x
OAlH4SUCAliGANobhl1zAVYwGNfxeND71DcJfODWi6H5CrGOzN+j8zgZAzUAQR8/9eK75DwJQsAn
WNhFSzBKpB1SU5yI22WwyBeY+K394v0/WbWju1E4IBe/bEd3S9C/CEyr101tkpeT214B7IQwCYnj
/AtQSwMEFAACAAgAQGG9SI+VcxdGQQAAvHkBACIAHABEdW1wUmVuZGVyVHJlZS02OTg3My1jcmFz
aC1sb2cudHh0VVQJAAOIPktXiD5LV3V4CwABBPUBAAAEFAAAAOxdbXObyLL+fPkVfDiVYyfBnjcY
UPkmJSEp612/lWU7qbuVogYY2ZxIQgchJ/73twf0grCUmMQ5Z2sz3l3HYYbup3t6uvsZ0PoiSyM5
m7XMza/ufDy9lJNYZleZlOafjudy+tG4EPldfSp8Hd6ko/lYzg5vzk+uT3uHLw837zeOYznJk2Ei
s9ZuLcaNzGZJOqkrePv2reGnsTSvHqZyc/CD61gOM/fORJ7cy33Al4Ei86Jm1MVDfpdOwArXQfij
cSln03QyS8LRhrjZnfknsclH43omM/O4W8dhI2wYXZHLw6tkXANCEHYsZFvEMzFpIdbC3gFj1LQQ
R8g4H5jbbDsVkQlDH0yMDuBf29zDrI85pvsAcZpm+aO7MDbak3TyME7nM/P6uoKxS7GD7Q6yuN32
LNx1fMtxsGf5Du/wfpe3O3bXMAyF3Gx/Fp+kOUgmkTQ7aZq3TOohhMyZjNJJPDMMPxOzOxmbV3eZ
FPFKh2ea/asT832afRols7z4ATxVzjKM3pdITnOAu7lQvQ9+0Gl3g7bv9wYDc29w/G7Qe3ezX5mv
Vne1Wn/0Ls+C47Ob9skx3NTtXqq7RG6iL2jxFYYiDqUcGsbNqXkpb0HEzDyTIoM5y7GWYVlvTEMJ
DIKr3oerR0G7EIYRtlkIP1iVC0Om/PGnaTrc+eOjmVlfDrPPX8zB6f/65++3xDs4tnCCiVots5vM
piKP7sx/z+Uc/BCl4wMxnY7kwVgkEysv3YXKyDZ3f/1PaTHlwvEAEA8ZM5H5ynQwdl3ObQ8R+MfA
MHWt4ndxLwZRlkxzP83khqDCNuI4TDBp3o97kzx7uErXN4BoSplBmsljHMVSmL8P/Fbr9+MrtZSt
lvwio3ku94qrN6cvX5fjsC/z1BejUT8TY/lyHzQS7Bq0mUY6jFwWlRKPJ7nMppmE7zWtoOsWtPSK
awK2+hKEujLIYRsvL/w+OA//JaO8wMMgAxisESAccxd7qBQm78VoLpYgHukapPMskkU2g702y1+s
MNzAffK1+f6q32qdwf6ML/LsaCFksU/evCgQusiwGwMksNcLadMsHSYjGfe+DvSimJZMbi+lmKWT
54PvMcPZQP9ehmvY5mP0Ho848kJzMU8pO4V9VG64Fe7/vmEc8vdWaAd3LRfvG7yp1Uwid231coFh
16ajURHuC0OPJ5CIR/FebeoWk1Yzuuen7zMAIrPi1urQyqquzEUymhW7gmICibuG4CCaTlvYgWrl
NjZtSOKnmNbEpq3AHbwLN/f2Da8h7pjZNKrj7o3kGJqOVfopr34TeREyzF3CW0gpsFEM2DBqgs21
mUBVbL9dnZ6Uki/nk0klO15AvwXRX461J/GyWvXuQf0a9ca0AixVjVZdbOlLxgAvbojXkyF7Cl4B
LdDktjNKo08rQHsFIE52ASIIAJGmDnRs+r2AZgUiz9sFyFMeok0BcRD4bUALBO9FkgOefpqdpKKS
DXwRQS8HPW8RgYvtTHcAJcgGoKwRUOgAwtjZBNpNo7mKZ+UsBXWSQvv/0E8miWosvwqOeIs425RR
wLOpC/DspvAiOjShbbbukyyfi5GZ380nn8w8fTbMjO+GTNTSO00gc+ES1yHmDo2tFvwt+nRWwCvi
DlNk7m1OKlfTU+7iTXV7HO/WPSz8oUIMgq2S5e6AesWd+XAos9Il3lZIQFMAktsMkmC2J+uQyth9
OiBMnCWi8tZyZ2IOeLxGdUBEXuRUctdgHmYLGxUMFTtxEvc3cMXpHHpQhcOmqpbWbynAMEb2DYKa
FSWGQ8deg7n8FpJHM38Tk7hoj6sYzb3Lx/gcG/oY0ijRe5IJgoRp/bmYuam1PevKkbyFUq/K4gS6
cFXAa5BbH9XyubB835BxMB63iA0LSjZyv98/k/lnIKuPMfLhcOgOUSRdHANRdGzrz7PB9eWJvwJT
MIwJJI3gc5Lfra+r0rlQ20ono4d2pI4gWh+DUBWGIJncp0CyoQPxDEKbonFcbP4wEpVLKTEIa6rd
dvm3tJc6tmP4WJAUg9gN9Q5tILhBEPzfGeEbqv1RAjk18EdiNksi4gTxQlVQD+7eNaal/6dpogD3
7+979RXBCEiu0wgcdikT9AngsFu4Z+mL9uxhEvUu/oge47rATuD3N0Rd/EFp7VIp3Z9n6lwruDkV
XzbNCUhJqQhv5myCpYxMKPyjNJ0WrYzqj+UXyKdLyYWavfs0icuOFRKE+kuRSzmE1UYOV7uyn84n
sSgOdB5rDBlzIGf6/XaWiYc23PTQn08KG9UmgXDxmloQi3i7BUBrhmk2XpRGalDUVHTouebpfJQn
cMMXmQ0Wta8qmLjEoLipYC8U2wQHS8lVD1PSzMPcFQhDjPr9y+uzk/Pzi+B4EPjtk5Pjs3fB+fVV
cHUetIPB+fWl30PBRe+yf355GvSvz/yr4/OzIFDe4galzbQ6InTjUut8cgJr0U1Lq2bqrIpA+qOs
qUQcDqsS4Q8V5QTA2Q1FeWHsmlVBg6mMkmESFY2mY1Dniadwi4NBJ+JxVJzCMYq5+k8tFG8oRMgw
XgshNmXYoG5TIdAtVIQQx3YN6jUUEqO4goQyxLnBUDMhkYPRGgn3XIWEwdYYJWH8MIoP4FsS7hKi
VspjmEs78sxZLjJ1DolXB6r4qweqSsNi0BqLibiVWXGwCtdnD7NcjoNPULTkaBNCNUZkHFOokuYn
qfgvZChVH4oz1YrsLRZsoEcxJ440g+X8YHybBeU5r2qmyMoa0moOD/iQgN2gEsu/i/mZzOfZZAPo
Qtq01LkhbmNDEOFSWPDCzcHnf68gYrqCSP/6ENlfH6LdqoZprZUqO+rGNkQxi6U5Fiq+ZrdBnonp
NvhPEATsZbgSpCLUrp36PyVJq+ObSpIeyOw+ieQpSL1Ii01MMKkd7T9FLOXh49yPKce1U/lnSP6b
p+jfLt8YMi6kuXpnvFeu574ZVCmdUlm2wrR+4l2HXc8nFONQegTccDYo4ykI1KOjskRTZhdnyY0C
NkQ2hP9iYhCm8UMhChdHt40kiWHM15JWCZs7xWlqw10kY7MuaL2HnO/Z5sxV23wmx59Fkgez5FZR
luouiV69OsDbS1J1DRCjTgw97iyPoT0LoAzld8lskdRbrdlIymkALdveekJ0l6WTFBj3PCsW92iU
Tm5N9e11RUwxdoRHrwHT8mv0xnxTPRa2mz6EEzFmkVP0599E/BRYCtAPWlazCXOXNH3QJyIJtdkM
x2IE/f3ChAqs+SSBjiBQvf/RapJ65JJEp3OgAm9eVOF9rxEFes9u+FBQgUcsXoNX8Xg9yZNRX4xm
8j9uxWszTNPRi/KZSMPnh2BLPAy9tS2/STGF5YgE9Ey38r+yIpzWkupTjAhDt24ERGhUsuvB0pz9
xRkBb7oHqcRkLb/g/ldiVvGEUlmyaHOvhuPl/t7+G7Vl1W5dVKwSCfHc2gO2p0BxI/tZoBRvCVyo
Q4u9HxG3eNZfe+L2BEPs0CbluUMlJIJFVgumWfrl4aiS8eYg9qiEAXp/DPHrH3LgS5VCV3SeYbd4
ovc8RRvjZyva6inZcxZtrvha/92ul4SaF3QMFD0IpmoB7oLoXqXR76rndMgjz65mn3QSJyrtBPci
S9QbImWS3pHO1lfHZSYrn/s0rtQeliEqXye4EJl6gniSqjMr+NlfIoJoejgeT0ebp2/FPYMoncr4
RIzDWByplG5CrK0fhj+aUgZoZcrj9JsnY1meSx49HoR1EvFDECkf/GjurjQ7bxZJFjXtCZDHmHCL
YvYEJx6t562ud8RMVsrxUTF6Aua92Vv9+BfyU6v1z1GxlP/c239t/o3sQWDQmy0RXuB98bcz9cVf
bO8R1LSjha1Hh/JvsC7FGxBu0yYYzCeClRV/l/nbLS/87aKmDSuOeYwWb+1BSW21ljUVjJsvXjLb
W4+WF7oiF+Xjbg817WBx7BCXbVVYFvzlE5t1X0Odxr1p6AnklR6MQGguF5asurZS+OJp02szuhPZ
IkPAjvpHgFotqG+wvEC+odEqh1R3aTfuLkPPi+M6aw6WD8DU9aA8Jgw+l2/LFeX0jZoTQXk5+gEj
XiwC5DvvflG2H3btNbEnmcyjDWuHi0Vd/vwjVlU3YNESq1X6EYFvli22YiQbyw7Ws9pLZ98OcBSq
dxHWGJe2H+1Qsootp/Y62RMc7dqxLMP8EZNabR9su7XXwp4gWCAXl4I/58OrnbKJ6xVvcj0T5bCf
j3I4z0s5XKAcX/lcgqYcmnJoyqEph6YcmnJoyqEph6YcmnJoyqEpx49QDs9cfET629SjiZ9tzBBX
fi6kq1znNfx4Lw4923XCMqF2aKu1J1afF5+IsZxNRST3VZH4LLOrtJ1kRWYv32jFhDbkFqCODWOy
Vjdayd1bXSs+jQ+VU5ZPn52G/bfSoT7atpJ3Kydqv8idal6b84l68wOWEMKzqBme0/RDvaFHJQT9
Svw0k9Dry36avSv1q6L0JOXMa1r3bR5hvvAqhJcijuNpMlp8pLW4UnyydPkp1aJyDsRQFn1N8cmO
+Wj13kXTJgAJRrhbkXwxEpMVhuNFG1CQxfWcE+iFTpJ7GZfAyleYSeOH6EgQtIyn3bp36606pNad
ULdx4wDtEOSC722HOEVN24Pva4eaF+Sf1g41rI5/i3aI/NLtEP3PtUPsZ7VD9k9sh5xna4f487VD
7vO2QxjpI1h9BKuPYPURrD6C1Uew+ghWH8HqI1h9BKuPYPUR7M87gsVYcw7NOTTn0JxDcw7NOTTn
0JxDcw7NOTTn0JzjJ3IOojmH5hyac2jOoTmH5hyac2jOoTmH5hyac2jO8RM5B9WcQ3MOzTk059Cc
Q3MOzTk059CcQ3MOzTk05/iJnINpzqE5h+YcmnNozqE5h+YcmnNozqE5h+YcmnP8RM6hfmUW+MOE
VhCCTo7M3+RoqjmH5hyac2jOoTmH5hyaczy5VLhD2xmuslxRTstqegFLUCrsp1n5y6XfJ/md+tVG
a7UyW6NRCDd+jxvhjX8xljukEu1Gc1f8XJb5DvQqRVvosMaUxEPcdXeriZP4VHySig2170UyUnX7
CTZ/laywxmQFQNo/TFae27wljXl2ud9NcDzkDJ9CcJ4b8Veoz3Or0qRIk6JvkiJHkyJNijQp0qRI
kyJNijQp0qRIkyJNijQp0qToVyZFXJMiTYo0KdKkSJMiTYo0KdKkSJMiTYo0KdKk6FcmRa4mRZoU
aVKkSZEmRZoUaVKkSZEmRZoUaVKkSdGvTIo8TYo0KdKkSJMiTYo0KdKkSJMiTYo0KdKkSJOiX5gU
EaRJkSZFmhRpUqRJkSZFmhRpUqRJkSZFmhRpUvQLkyLPjDIxu4M5nyFLmx9cZ0GHzEEucmnuOcwK
k3y/ZZhmJr60zJU7URiKOJRyCANhdQDjkAKpQbAhs2jXHfFqQAHlAscuHrpKSZxUb1l+wcBsNYD5
QhMvBsJpXbtDneKOrQOgxMzc+og9JIoAZt4OSzDaAQvjRwOEOcoSTOojnCOqBmh9AKOh8gpmG9qd
kAnBCyV2daD4H2EOC0sg2GsjNmYI6mc2HNWUqD4BoifKyLY1AVnGSXqbQA0w/YvrVhFLyOhlWZqZ
fhrL8sr6Tse4gvphns3HoczKQcwMw+gkE5E9mMdjcStnKmxqX8i0QMiw9mW+6s7H00s5iaFQZxIC
7+3bt/vmUcfr9/qo07c6hDgWRQ78xJhnYdzv9RzfcTqYvTEPb9LRfCxnhzfnJ9envcOXh5vSlijQ
F4ywE6vwARS1ixCG5ivYR+9lqNLHlZzlg7tkvNhcewjQ9JHv9fvUtyhxOhZtM265bdu3fO63u52O
zTB2t6HZJbWGK3yMi0du4Z2ahPl0mmZ5FVobe9j3GLZ4nwC+Pm1bnV6vZ7E27dk9m3S7vf4ToFUF
b6DzaPwIHZEyVOh2p+A9B5FXcBP8cYAPqP1KIfUJY8hzLd+zwYnEx1aH+7bFPIRdTh3mcrIN6abo
g2EmxvIz1MXDGwm5AYrNYbs2p2oAi4aP3WtHKFbLXjEAnPFHkm8FzvodbPcgFuGbB6vve1a7R3oW
9Tyv2+8Sm1BvG/BS5HbA5VgVKHcJeQRUREWarAHd6WIX9duM9TqWgz3AZ4OfOx0MHu+4jLoeZrTr
7kC627eLwQpWiIAoqmPFyKGANXzs1BN5K6KH7YD7vTZ40bd6vtsFwAQ2lsMgjpnnsQ63/b7Pd7u2
FPw1B5czjBKicqWDIuquoa8uOtJ1wc0Q/9DSUJsekAMK+Lqe53CHYMuh3LWoizsWbP6OZSPX7vUY
dzqOitn5LFMb6lDdXlHmut7wkTLXDYdQKIZFPU/Df0UH7eV+dhgHndz2eti2u1bHZ8SiXdYDn3iw
pn2bdxnnmHO/orMmxdjURB+p9xAojzZC6r5I2uaee6DmwndAQWmnxzsU8grpwm6F7Wl1KO9ZPiWk
TQlnrm8DikHRkByeJGEG2f+wv1wKWIIokiPVFu4Iq8rUUv/2aeWYsWGAHW2xypa1lDSQkapf70u2
Y+6xwjpC3QOCDgiY6Ds+Jk4fWU6nzyzaI7CvvQ63eKfddbuYwwL3H5t4kSX3YFQF/qai7WZszqmZ
M9xijoMKc2BFu4m4naSzPIlO5WymqmtJr5dRg5FaL9LruT1GHcv2u2r/QGL1PNuz7E6bYLdrI97v
bEbN1+VuQnTZFoguL7Y7TPbffbh6mMp1JANfPqDFDmq7/Y7fhx0EpRMKOfd7kJL6HYu4bUSdXtel
vvPVOFK55x247e7/ibuS7ThuLLvnV3ipDbIxD0uMsqpdZbVpq2ubo8RTFKlDUm6rvr4uIkdEIJPZ
Lp1uL8RUIgS8F3jDvQ8P9N3yuf9uf1k/P359WiI+TEUZqWE7aji86YZO1BVv10+/32HKWbnNv+Ol
POM9gwpV02GY4PC5xjBZjEsiw24Ugm50glhpkCiUccjChXGVX9XwsN5rvrKX58yDu9FWbbfoqL1Q
o8Tyn+snILpHaCoGT6m6GaNpppETzzlikaEOgMxrErTjCQg55sAu6raftC/ufrQRl63nU3G5pSNx
l/ePX1f/QH6N9cOQu7kVM21msrr57iN0yF5nGQCOvPCeCFABElwUpGiGXSslWB4u789ugb4O+9Gb
VlzW02H7ymGWb9+Vg/tyOViRFzEw5uG/FWRQaomnmZFig9IwoSKtvCjlECff/XyFixwWb0VedEQW
zI5S+mr+Ml+tX9ZL0P3n5RaIDOYinEZar3E1K8+k8ZkApSskMCQRzzMlSRQPIILAyq6Kq/V/CpH2
S53HJ5PHbloNXE+txT66xg9/vX1///Xj3cMIXDMGdXQF/7CPYqMkjCeBNOET4F/KRAlAQWp9DtJf
3Jmfv6wf3v7UF377+N0udvVlafWxvKOPG3vHI9b8eL/XonrzXp0EasUNYHgRrCCxI2Y56h2yBY9w
EJOjt39ane1YK7Dr2JVcjrP1xHxrGNoFoq2HhBgCiB88hHJgseAVschBoBMAKgGyaxX+vIfsBhvR
5WrdEX0tR+/67+/jLnwjBB1Cp/fSK4FkwAqwnJBaAToyQ6hkMjiVIlX8Gi84zt4X/DjeyG7nnShq
V24k+2nueffwsn56mMNqOGczM+M1jm4/DYxcVPSpCJPA60LDgoKwkbioqDYYUypeo09vxTORtfNk
oyNSxVRHx/VIR1//vP3l/Q9v1GF3tAWnV8aQnBxgiSwcZJQyErOgHGgXSDtdo81+7r4G+9FG6uVi
NZV6JcbpeLt0fHzY3H3cnSrBnWdMDvmtfqgoPZWSTDEkJI7YVECdPEeSjtJTcJeilREXfaKzyhkA
O32w0WqlOxBx5Zb7OLurXD6sX+rM+yArGa8wqgJFDVoemZBEmwo1IvXwF6BFlQHSGfg2i6e0Zzvf
f5yZuRXN9V74fL5Pxot/VkJK9zKJGiV5KlYAuSIdIxMLMDLiZFEkcquVMI4FVVo43czSrL/WHdi5
Nvaw/vPnk9XrtgKp8Kx0JDwgbAA0Y4OlwAthBeadmadhBOZP5mjW3kg1WXtOhdlvyx+f77ED+8W5
HlIEU05bBoNiNADRsoQEnm3F7PgcC0UiHCl/Os1Ns9Ri0Vl/ZUbR/+36Yb01qvn9LfL4QEe3sRTm
PGPVZV0pNiXGCMAQGCmVhngVCvaFIRW7IHK+KgB11uqbfOfBU90WokPcFtNU/P7psYKT9WpAigft
2CEWuWR0qQAJxgWAmmB13iE3ZwsaZZMEPaXXKNZdqK9a99FWuU7aXoj5crRxQ4T78N6XY9pmMzlT
Q4jCz5o4ODNMFuTAUotmOllgDZ1JjkZqaO6EKFeHWix1IdRitFFCLTo7pKkbKfHju32aqdLzmvcU
rzHJOZ+84ApYLyIKaJthcgV7VBwTMXEu1WXoV6W6Ww42dDXDO0rTf/Q43uiq+RToLoywI3K7Wj//
4+Xxy/OJwm4mhu1yQxwuOTOEYU5UAOYVxhtimXYkeWlDZgbcyV2F3rcL7WWtD5zB79MHG8VsJ3wv
7NKO3CzdDaeSEKbZzAHDuIGoa56jyCwQ5SuA5IoD+ZYCt8uuFiG55/77EfWpPGfUnzzXar/sbKsT
8xEt6xma//W2ZrOBnBk1cGHEk5JpYMQKBRA3fKIgNIBwuh5lUKHldzdoyHHGZ3+9vWnVmuK5xYqp
zXqCWf1vEQliIDVDkth+qrmLa6ngCyTTmjptddlKQ6mTnkuqjI35WpiKRc4jUww2wq/4tNa6WIvl
aKO2Jy5/vAD7KInEhn+w/VCrLVlxbhFpgDEMGA4AQBBeEmeDcR4Zj+XXDbROfl7qOtqIvXFT3IYv
N3uAAMk/Pz7Ep29fXh4PdWpKNZuJbfkrG+uMtIkUh1AhIhwqCPAcR1MRCBksO9XFbdOZTwVbglRM
BFvS+WqPmsrjw8sv6493zy9P3w6cXchBppglSzbyehRWuRdsHcEMbBf8JUaqozb8/87Mm+LLVOxW
6/m6o/ViNcpYP80fPnrAkm/Pd0OYM1swUX9Wis9gSCZLEpVm9VSlgiRYVLbgalyA/Yv43dU/FelM
rePkiUZpzfRUac3ZFGvczh9Wi8c/OsX8kIsPptI4Zh0AO8K8CxxWWQqAIQ/GBH0lytgtchZn7MZb
FTjvqTBGGnuS8vyCl1tL78+nBY9tuhpSFYMPVdxtCkMUU0EgTidEAheQhB31MV2VhP+2Xe+2s9yp
UpPHRrrNO7rJsW41vKSv65dTaCu0964kRbi20IPJhOCgASuKlxrY1uqQro3Gde7zga2OtlLLntTK
jGn2l/V6+emX9fLx48PQObk9XK1cbsAOu5qmUkxwnjmJDH4l6mlgPVchRWCTrcoii6vIR3e5M4y7
92irorIdFR0dbcwv689A+x/u1v9zREZbbuVcDZbOa64dI4EmeI4MIJuGgYMgeKsiU1RKXKPadJlz
4XD8XKtUh3gs9eoQ95dfvzwfGaukdltztj4xWxzRw/6Yqo6VFMBGwtAiV0rplrKeztMK0Kn6LS0d
V5Vq7fvr3WApFWBBjkqdXabZRe2JtkXVYzhQZ2YicQgQOknKrqwr1b3+7d15c//t3U0rXidZWmV7
lbAPp2RNzehMVAW2HyqAMlFgxy0xkYNmG6GgAeJPttIapFMgRXs9XbvI1hqytnS8897ndjOy5vnv
m8evD6tdQWxrx9a6GWfDMSiFn2ZqiPaFQnoQ6mDgtkprp1OlccZdTn0fymH6M7KfPNEoMHe0o8Bi
7I7vlsesCgM2g/3UH4MZi1SyCEQryerL17CcEBA+4YaJwjMKu+bln65xpt598kSrxWLZ0WIpR4W8
L/fzl83j06FNSg81PJmFpAZk0bDauqAhfsTbl8xqLr2KVNJLNbx20las1bSQtJy28fx1vbqbR2Cs
p8f726EP7FBHYmrG7MCBDNdcaeINywjlHqG81tp88Jxap1h0VxXmp0v13/T0uZtWh47ZrzeqwxsO
OxrnT4t9pmKshp7hhGcXg6CDQGbIxNhKI0TgxHtdaQR32gqaxCsnPP8rnnuU5Uy0OozftBpOMd+K
c7cP85/XsMSn+cG8tJ7V5hiak/VZQTdfm8ik1/VsMRMerOJZ08wyb+N8M9FNu9oUIayUUyN//XC3
Wj/++vh4PwDPHbYBxZyBTg7AM6QcrEDmsWAYgGeIOGBCKlO4ruQ2lcuk7XT+/is8faLRYN2p+azW
YhxxAO/K7f6cVg4UIXKNWFgAYLhFvmQUeSpaGIoz3jIDQK4vHxwMc55Fk+W2lVOwnpyHCvy+hP/4
crc5IXMC4GuLhpk0gDpAWxxBPXlPrKLgdB4UU1ilCncXjwZO5j2Va807qH3N5foQ63ZMgB2q82og
HGpobIkqMuVJ9gJhxGcQDhs9KRksRCZrJE2tJY5mayXR844kjh/q9F+WexmUcjO55d4KW+Y45RVe
QAYjJQFmo4TCx22M1uahaWD6Yg7TtUJ02sXWQhx8cv71WANARK8vgWsK/h8IYI2FGQH4OOko4Uoa
bYL1ashXJy/hOMdNu0pH/4VbdaLgvhmo+iJiyGDUx34jJTwASvAEaEXWki0jDtSQIIEWl1jMUf+7
/UanT9y08q47SszH7nj/+PHu4Xl7wn9KlmDXyQC/AG+5hEiiLAmlGJIyS75oLQEfr0lMw/yvxu1T
KfoPnz7R6rlcdfTc8L2d/OV9fjtqb8GmCIX0Q0KMtTUqA1Uqj3ipWKDCwWit+U7tLcfVW6F7xr1U
fFxkyAiUlg0nGPVnTTo8FOGkUoTFhI1xPBILOAM2bnjUgZWgzPdLqD6fwZ250WflpjgNX65GOO15
vbwDfTy6bfURC4NKtBAdtKjt7DA0DdDpmPHFOAck5C/F02bOVqhO1wG+XIwC/aLen3w+5PYaTp1m
KjGK+BlrGTGAxXnPPGGBOZV8zMyzSzKdTtmKtOi9p5Ubvafm3v8bbiyfqW1lqXjvVDSZKK+q6ZaE
iJJq80kogRvYxtCjfFay05lbyVYdydZq3qmrHIzn59sjddDIArUXYPg5nCMyo2KqLXqmehZ3MFMN
SqyBmbxF7uLfsRHxKMmZVqDbHr2AfouO0hs66Uu5f3y6/fawrKU+twMuboAujiH382AI8F5tcqcO
6S97YoIoTrlCpcvfvbp5kOdcStgNN7pu6DRObihlpyXs9/OnZzCH0wJ2VVLHIoFukdkZMIWQprZ4
gEkhnCJU5uSpSv+PFexTqW9a7abbu+FsMd7esis5/vDGVDw1MzWJbz/VbCFNMimBtjuKAOUSJTZx
YGoPLp8Y0uMrzZCH+c9s1374phVz2ZN9ud+urw8HDMZr4UzV02sDy4sswd+4KyRQqkniUVAOC0U2
7waGw0Sj5Ve95cf3PxB8vz7dvXz7dPfDm61jKIVVh7aNVC95VHdwCKG5XgWqzaQg5dywEDmC2OW3
NlC1V83kdifBj+/O9rrvxlv9pOzoJ+U43A1CwBXU0Oekqj24UBTTBuavK1spqZ7Da4ZcoZznVstc
7J/WbDs2ElX1RB3n1tXD8/PqAMuN3mcMlyOwjeMkUdiwgOMSxwMMQ5jKvq0Gbr+UMU7mHYm17ohl
1qMj/re3t4cDkm3EBCPxtWlSyghDZRb53iLzF5lzEC6GFC4HE8x4pkXm9raVcG46Ei7ouHjU3F99
w6jaMxokegfebEiOcHrBVW09ArWSmmURtWSyXEy2zcytaMuO+QmpOg2Rv73c3Q/0gm3LKoNkwlIb
QwQITIUBnXNGkFWBCgy8PUkYqAxXV3brAheKu3X4ppVTd4Svhxni9L3WmvTL/fORre5fa71P5GuX
L6dSEyHAFkPxgiTjjPSKFSMuoqtm4kYy2ctxkk2Knj/ffn3azGuLrNt26Lttd77PjMXaaCdTlYwW
UQ9t8ddomWDU1P7hy8RgP/OZOud+uJW60zm6kVyOCxLbLLH+42X9UCc8GGy9WrBtWwxe2SBoIFaY
iluBYK3PgshiJeUsuSTzFW2LoyUaYVWnML5RQhxKZfPlpwMvt5pvuyCi5zmBOzoYK7WFWAsqHFzy
OcKRRNBdqU7mamUQHe9RUh3aBD5/+XR4O/XOpMYy4EckDZdi8EpIwH/EUwEYLX0SkY7OYw4ztAv3
LF/J8f3TdPf8D/+0uHt5OhwM6CH+1cRIUykyuUC4j4ATwXISFDwZ1obMERJP4fKhwGj2c408zUMj
LTYdLRbTK2vzp+Wn4S5L7Z6juy46OlzttBaZhJHogq8HXLJ2+mYiawedTMk6774fuD8Ici7D74Zb
JTvddhujN6P09F9f508v/9wVr4F26+mZxgc3XB2pBU3vSUJQRaI3tRgCCEiH1h0d3fYY77yWx8n7
kh/HG9HNqmNllrNxcqjdkulxW3saBOdsi9e95ZxxR7EpvnbsIoOFwDWJURkfmU0yXdcdv1/hwmWj
OtxI7zqtR7WvZ3897wnw/f530KcDVKlFDR2EzQBR3NWu0wi0aOudbAGHxTdJ5aaoOpmmlUCyjgTz
cdvKQachzf73T/5v+5584K0Z0lWNXVQAvrJ613+otvDaUKS0xF9ZLpAtqyhetfQ69/kEW0db+Ttt
Nxs3wS37Cu60GiyqZEYUEg0F5GM+EmeQ1agqKjKntBUXu9ebmVvROveyNvPVGLf8NAer+HRaHJAz
pYfqQP0wHI16HwKDYAIcQWSZEI25JLUCl5IqMYnw/SJIK8+5hqDTZ25aBTsOOd+YswY1nChbZFxW
8eS2o5UKOjPbW0+RemYAJQigdz03CsiFFXDYhPfjgzIp06tPtYdlLhxsD+OtOp174Ju1ox3wWU5O
t/XMDQhUie3RZb2MACZhK8ODp0pWQCyMI9ELb2QCGfL01S187Xy7feamlVj31NDjGurh6vchwp98
tYuYhQWnPeKPyRI7wgLMUdRfWACOX1hhOhf5b10wP46PdDA9Hcb1wGVzJWZfqXTD0cvQEDSk3ZgB
cFLtameK2EJrsV5zQ5MrNuTLiHoyfytmp2y5WS8PgOtt+fvtp/nTejW5rxgDlwFwn8TAgEg9sKmT
mdXypU0eibW8wvauvq84kuFE/vq7TSfNEI5KeWgjOP0dqW8YH1p3g1OAZIm4eqIkmJFkiFchRaac
osywMWY8TnLTrqM6i5sx3PJ3T+/v599u90cxo0YBb0zNq/WkQliAxWyJZbBQA5dDwDCgKFc14bXL
nDHW5plWmaklOKqY2cP/X9+V8WViWTxwvqyEv6IRxapvITkhLHmnpMzqFbB4/WnLcfWbVj7bEdrO
z8bvdz9vr3DP6LYJkiq6b+2kLtb54tBSDFAIDO90qrf2klDF8GhzeYUinkWyw1Aj+YLLqeQLbkeS
/xrj6dldjF7ynJH68a/xh5RwOluPu6SSWSMgSHmNrWDavqAYGInppmKu+bgW9OO7Q+dCbWWsBQ0D
1FIBYGDM2gSOqLJBMvEBImdliDagrpEhAMfvUi48iHDuOsu0s6FqsumoJ8a9Gc9Dj+Ts6dgkedpP
W3va3K63rbILIPKkKkijntbuKlcA1yubGjYp1fv37LsUSMedm1c2eLZvQOjpG9gcG2T+8p6PvD6L
RG1mFNso6y+iAMoLDCmJC+H/xdu1NMltI+l7/4o5zoUy3o8jnl7Hqnc0UtjXDXYVS6pwq1pudWst
//rNBOtBkKjq8rjDF8kqwkCCBPKdX0qlPSPRvFqMlTUuPZDWIHlzLDZEwTKiNG13H9HJdfKnsHLT
o3JgRingVtEzrBcDIzeCIZhVJMQwm6WQtQQ4M+WMLNMi6yjx7/vdx+1EjpbLIYUToE11LEkO4h1u
iCUZREHOmtJAkreppmQ6y3R5SvqFh8xSKuZ5jf7+eXh6eHj6hL5bXrwX5e8NepkomEQkevigBKFq
rMEcXUm7YDTqmiSBeHyBBR7nP8cIjwMq6qkkDerVoo4845eI28cCw/C96OBF8aNGF2XPEOlI7qIM
AQSSAxWWg4lHBNxIEykznryokxxnfzlal68YPxtU73qZjgM/9mKWjhKHu+ePH75/vnso/mIqR20d
43eZcK1A7mo0rHkwpDMEgTAcmLEuajAT1XVVdKcVzpXPnUZUe2DLAhr8cS6CESQXJRkvNpMoGqQD
fkjhoIWEScxSBtBtsSDVKQm6mAcRl19FMsDSZ4QCPKk3s7lbbkau+gZ0zx7MCo3AYppTUIRyAn4C
9jiW1woNRlPmHdEsiqwdaIv+L/mUZvbVBTCr4+Nqb6pvHDa1UjNn9OcCG3v04fBDAVaMDrFlfBcC
QX+JlKAxo0snJ0esAXPRXky6nc5b07VqHCA1zOGSEGrk64EFl6SsEaFgz9N91pYRDeRpheoRcHeT
MTc7gvUUgk02sdc4TJUkOI9OchxSbVWzpYig+o620DLKVduH1hGkpGTPAxveZ4tEl43JqtNYqs7R
BwScGjRxb0BZhQukvbsaJmO61AWMjOmwelt3rLWtYbati6ybsZyFZrQjPB4g8JzhHfNER2VJ0Fr/
VdZ9nhEb07gbxswdi5jPuPcj3fY7uGCfh12VWwdmj6MywP3wiEUmMcsuZ9PRqCPoTT47evkULmY/
5xmfDat2Y/VSaad2L1YwOfJx9Wn7bTiVt8AVl+MtDwjvqkB3lULD5eGEdZ4n0ikJ/NhLC+bpLN10
NllNSC9bhOgzJV1Fxrx9+Phxf8OPyAVOgcUAGieiOIKWpDCsKEABhXOeUFAoR/9Medd0nculXtOR
s52Z1s5MA7dglh4DepdBCVgcbci1KPEId4hYQ3BSvBMZBKJkXoLlnwh9nfSbxsDZfhpH5pC+NoFw
3JbgYe5XwxhZ4XvcJ37wCmHYCwHQAsOaUB1554ULXZA2JEuDARvimk91WOEMP94/rbawHhqHDX68
kOf2j38q9AKoEabRgoRzoPFKjka/B6vNwkUARUqTxIICDfIv+q2nI2akqxbp/cF0+NJ/nqCnkFLB
QyTo5xHugMVAAJwcgz4kA4qTMSCYvZoZDpM5ZmtvGmtv6GHt9/162+9Ww9z3Y0iCt8W6LLPFSISA
O6mAXxvvMvceKEqvZAXWFFTED2xpNsBPRwC87eoZcwpOiJGSU2B1Rfl02sH96gTBGiIHnNooEUHe
SAWcDrS2PGN0s7lu6iVVgw42zLy9293mGEEXp/x6lqgKwoOs4EyD2SVBdQyCdlRwMAeAmzt60cl7
mrYmyi7vNKNknux+yPTaVBGBMeMLFHmMOgnMCQcdHf5UYw2CzxEudTJJSlC1uM0vSLVxiZdiAstx
NzXtw3JDTM9rmPrn9fbhzdPeG+TwX5O6GspGXKvRu65NDlZ0QirUZGUG/mtdB5Yu3B+hmLWXlY7p
5GcY72TETU1348hwZU5H92H3bVKBivQyR1QkLHfGa/gQcGDhwlvVYWaaBHvJBxXmh3Yyy029VON0
yPXcX3A4Hf/451j8DyooXCE4uCi/smcctGzglI4jYHmpHwdWxICTRuYi6ELuqoNx+ThUdMuhceWN
nCub7/v/CzDlY//mDs7S/YgfKUbPpEXa4U/jGHxx5hQyMIrZcxarqkikSmg40w1X6pSF/zBf4wcs
v0Nc1B9u+9W/PpyeVxsw/aaxgdXR43b/x+f+jTxC3KJpGQlPRsvO6QBKGabYGYrw1YHprD38qGcx
9Okc9eKrvrH4cMwVfrvdDf2ju/84TKriKGVmhOAIwYNsRyxtxA0BcZOC7eBMInK50oHrV8NqHlYw
wZmCkSaZ1TYtXeoCzMp5uti/I+q+Y2F10X4FnloCOovhmIOP4HBY4AsqDDEYaosvGCH/STr0v+OZ
HJJYbak3DX4BPx6+3K/D988fjxne5YNpbYQ0gnUxoTIfAprsiD7IIxXAgEKKbcyU6VwzIpa2Oruj
fB7VPKVcCnEIZSr4KAZrpAxDaoijwGzBvhBZCyeEhSN9Meey4Ttgd6YhEUoplG4aGP3w+WGHqGQP
K+wfOAmsJJud95j+gTCa2SKuhzedhJdGAvY44H/OxKhWesHIqMbW++tpa3/H9/3bc//Y757gNhz5
hToARmuXgcODGgGSxow16sA9XRcNp4oaxZVgzfc9n3RG0TJuxTZ3Jwbi3rnw3zPOkUEZoS6Bbo3O
SQ78ovMB5ITVNFkLwksH+ndxjgl91cY2w9L1xydVFPtT2H89Ve+o0ecsuQvSd0Qijr4E49QguBIj
TrHgNBGJXTrWxwlv6oVlgxq6ONjYXef9gMHc4fEYYD54VhQfmZpg0oINBjcOZEYqkO3wT2GCl0Cl
JvY6rIjGWmcOdmNkvbuGyw9+3BwcFKuHL9832/uTzUHNHiCFBGUix3LskrWVMofNUDA3wbIEI9oB
41ZnYKCmU9bUrJeREy7IPIzfzJjB3GJhU1KY+mAzBnEk4lgKA/cu5cSwbJXJyykml9Xi8ENbHQat
fBmx55vVeonGMbYcGWnmAt4lHtwkjIxS4VvUbARkscDzULVPiUWifZYvCbszAe+wfzYlVxC6VNww
rXtG7l2/+vX5S41XpPZIj6p42oF1WUUwV4InhwidCt48iBRiueNRCaLjVUFwP1tpeoTHZzX9a9qg
f3MsOlxvv37pn1bH/GS4dgevmlMUJDAPHQhktwc1Rt+gljFS5lxUsZ22V89ZkUNJgxyq+4JiVw78
47Cq8NQYPzrzpdY2ZwfWbwRzh7sI1juiWoFcQMOE0XimdGQ+a02SvmuRNBzf0Pf79Smp8dD8JESw
tTB9yGGdA48Gr4/EnDkJNzrqxFW7aOA03YyKTYOK1THJ8se3Py+SmQRYTlLb2DmF9SCOWmDiJHWJ
gVqQwEAwSb9SMtNh9ZrmVetjrub1bP8zPLlnDN3Kkr0yJrIy76MW8BlNogZBvMA6wKQcZwkXIFgD
CKErQbxw8rNgC/hwRvSqQfRw1EgX9QxyJJh7T6gNYGZbPHwKZJFzjHVUeAlHj5tF+P182QIs2MgA
E8xsBrbEJMKa7anWpxTTMUbbOZOx0RLoSWDRus4rxyzYtJZad3W6ZikIP5+tiY8rwpltET7wgxB0
v+TiPJgKwZJgKwSNiPgUDQIURwTVjxGYNxUJvji8P8P+IvZQ5X6r6ai3MCyVQVF8GJXkfDc8ItwO
+vCmaIKHr0AsGI+YgRcD4m6YGDrsndBRBdqrJ8LYcNUBbixzBpZ4ObDallg2P8Afj31oPg3bz+v+
vuu/7k6QHdYc3Hk6Mp94TJ0iGTMjQSN0lqUuOpKyjRxbU9TneznhjB7ToseeEu8/P3wbpgoTL8ni
IOARWq1TIQFjCIoBT82xwy5oKapk5JlqrPl8M2L6BjF2NWNVxb0b+i9PzxgmGCtIx8Jqnb0CuSc6
Wfp2yCA6A5pypx2LKYI2F+mrhP2nFFxoxrAfUe+x5409rnkjDcD9Ev4rIkPWRUeRGkT+iA4KRiNY
Pzp0yWrE2cA0vWSAOWdlNGb/Ga2uhojFVS6AxOLjegdr0drBerEDBEcdZUpVygkKrACttoNJELrB
Y32kQD+fFMC+QTO8Dkz7NP854g/PZ9QPDeo3rTj5JJ/pxFFM1N5hAVPyGMshGkxfCjKdeB6t5ixY
+XJtxwuZTNWQmvqNbFHfz6s8nvqnr6fUtKKboXh0UioksQsOMcBBFQO7HTF6aQalPAkhw8Uiysm8
M7Ia2hkI3NlLnRXPbPP20KkJ7kSppaRAjg00wttlFg42qLSGgyGGojR5HW10V4MP4vwXCmjg6U1N
buNiSrsocKuTJ2jJFJEgTmTJ/hNSUzjRwMqwmUVinY9KIxg+R45tNbtK3FyRNnE2ZQJobiipxfu+
79z0dszvmSuqYCnEQKjoWEDcIQwaWU1cx1RmlOas1QtJyn9CUZ1QUNGuZeMg6Q1rBFoLKF0DzQx0
0mwkwb6rKJoyosLEZDvQZYUCq4qnmF+8oGXy84enPJ4SLmm/1LgkPfmu/jiVCshiaJqggwZBToQv
sFMl8CLQ92AzCHjq3Ax26o9WnQAswVrrHsGvf+8fTyuzsrQOUYExLrG8y40gTcZhb4zMsdWbTSrp
WW+M0yTV4kw0FsfOkIfOVPCqfrmte/3pEcmeEZqyirmTBA9b8HBJOIb1rQnZShDYL8C4X9+SakHE
bA+6sQcpZtLs4EL1z5sNIjLSgspv3uwr60HjTp6gs4CUrqVw+qzzXdYgpS3VGrZ1bf+L0yrnG1+c
xtR7kbK1Fz3zM6KhfeiecPgsmFwOGrEOUhusswHuRQMaegoLAjlo/8QTy81LJfb1vBV1fFiqmlKy
Yx+zr7/db58GfhJbIy6uDyCdtE4dE4ickUCnczTKjjpEkRYggBmfodRNJ7qpV1u1SJi3BBmjvM+7
LQi7Yp/8vBsLmqcB3iQ5l8KyTic08GjCtsWadcLZAOqNifKFLIXjzBeiu/h4toOlQ1Gqu+NL9G/d
h5mHXFg4glgX66wBQhkW0Scw6hLYPpLCjFn9XR7yE3U3Nf2Nz6L1UWJ9u91+PaWN0mKpUtgWNsEA
kw4s1QRM1EcsWcXuldwwT5z7mzY1oa7aFeI9Lne1CCDdPt8/bZ8enlefFo5vjAOIEQUA/y4oGNxm
mlWnOEeQaPRRB8k6wrANZAatQ16lH11YtAJ+nQ+rN9iIIMGPxzQD2OMXMPQe//fUkrAYjz6bHCjn
XcJSDx4d8E1vCaiihNvEDGZOnOu3UE84I8c2yFnNLauf77a/PZesA1ryxTktbZKzVJja2oWAkFwe
NDejHOk0zURTpsGquqr6/TB7+30enlZ021WDbjsckTzC+/wB/qeh6q8FmqYRzGPLVjB3eSRw9DEc
SyMjLOvAnJzpD/U0NQWN9Da5GvQs+eXH4WHamKboXURrlIFmdBZm44XoYsFBERxeYQCWraJyjhAR
GOfXdbd6uBzgngy4qSluvMj1HmJmUlA2ekRqq9REqpQOuYtCopQh2JoL2CX2scZWac7Kq5qu7Cc/
VxNQHt7U9DWk4trwSZVpf7c9ZciNyqNjDGtRjA5og2ImbQZdzgWSmSHGG28XZabHWerlGy4Xub47
ora+/+ldsyeyA/EnMEQiU/FDaezu4DqtpKQ2GbSQX7Mn8oSMmvw73iB/1UCNx/yZfrtrttFmzgH/
FBbUNwz9IH81noBsCaCkM+xanvmVvtrjMmfdtccR9UZaTGC9PlMt+PX77unTUDkh0U/Ex248438U
phZ0jkZ2mXqC5cihMyU2xEApJMGb/AJqzH+SczLWBH5YUrgsHDwOql/FEjjBykGw2TW+vQ0fjjyc
6RK+y8FaAwZIl6LCFHOBQJclBw/sQJkyaDxX6eE49xmJCE+m1Cq6bOWOP64PuFbjWm/86QbTEeTX
JG5p6igi4nC4NniBcqeYIhZUGCLDLN2unqimYdm50iqQA7PDczs89dj8uETxx5Q7sE3elG6RhAQR
vIwdqLBYLUiBeQtMYeWWWIOAsTG+HrTGgZJzcPPj05t6O7y1x+EUels4NLjxPGfrsHUCZgUZUDEi
KIo0uESSCRHMstdyaDS+SgOcHX6UxyDM71/vnyYAArwU+BJliNOgG9GCoOxswi4tGDZKoBZ5HiOf
sfbpNPX6snEquLo7RHG/xQ/vaqU65hQ9A51MWDyUhvAORU0XFI1eOSEDj3+XUn0k7qYmv3HbYJuz
k77d/VpF+cci6vHmmUQYTEQ60KWxvwbo0U4AywCFFLgESdoF+Soxgt0Z6E54UO1J3MnGnu6OUI23
JUp/cuKI0vGGIoYDnBAeGIKTGVChY+yoydwzkdSIkDE5JtUss/WHxvrDAtXy0/Pu1+3u4/6NHNrG
oHe5GGQ2AgOxshMgSrFtDMhQijBlcHKy9p4mfRXUxGyZMz64elC1HWkbx15iGipvuhB/+he2gxvV
WaFVAXaRJKugwSyRiIxiQJOF++cRw8soDxcRXvB1LsRzRQiTATXxA2sRP4dKuu13Hx8fvlU9WBUH
0cFA4slgMM1QgjojlAGl0NFEqA8g8a+Sffu5z/Dm/dMZ1apF9bxR1ZfH7bTo7M07/He5nUUfKyDa
HLvcJZ07bcD64ojmYLAntGRwM1OOXL3Qi+LK2/mupqV2sG3rojfYim3t73hDV/3q03BC2EGfi0wW
dEpMe8IWpMqXRn68AymbKFVUuNgOtEymqkjY8Map3ijacIyXXht4MrAWjAo5wmea6IkGge4t1oHA
UQG5gq2q4YUyC9YPMJQXj3SZ+fyBLo9rqhVrUa0WVGOo7l2/G0bQ0hH50KqS3plCMA7sMszqABYN
dGePkF8UhKPXxrpX4dZTEi7FE8cRs03q1ibnULtPj/2p0kmzQyqtESSDIKKdlxIzzjRwcuJtl1PO
UYGOIuhFJPvJtDOqllxdk0U46+efprmHJ24ilPIxg1gBWjJGaQliGmGLTK2tYMwydVX6ynT+Mz6R
n9o5iJqsZWMHm2PLlXe7j3P4EMGEQEh1VTAmhEanIMUS2ShZQsEUXws06Lh4RTJtBEQ0tbzpXy7R
dfyvES6D7OEyijciKZfgkqJBir7lIkdBFczopgILApvJv3hbx8ya84F9fFxTv4Q+hh/XenaQP59K
e40amUuizHkhO4UVQxzz3BwD6rGLjM3YlC+qi/X7rVc5LPV9ME3WC9DA3cdn+Gi3D+vhflbbC5LP
8gw8zxFgvZzDq4S3CjYwRpKTxMaHV2UazNc43xt0OqraDRPrxm4ka/X+QiX669ft3fZ+76Us+dYl
m4k4nohXncYka2506jzDlkcugr4nwazPl/WS5fwXGn5V46rdcNbgLZMuO7/+fkrGnPahSCDaKSom
DN4+6lWgI6KiCDYnWGjEw/Vs56qeJqzpWLbcgR/FMegafgy3H1ruKwHrMy4R+g6LcYiF++VN6jSN
TCZHI6Gv6r6qCKm2YJeY3uXHhYRcPfSYZ22KHYPv0gUClKYx+QqUfgzWCdrJiA2LiZH5JUB5nPIc
e4BHFZkrtYxlaMQuqc8vAmms7tE0EPveo2JERaKMcadjJyhKE5Usmiu5kzIQTpUOKrgXLfHw9jz0
Qnhbk3tnGuSu54lkCP1XeAZnmLheHEn7DPaCHiswXxMxtnjUHougPfC1YK2jAcTzVUU7+yXOeMH+
v7ej63ETB77zK/xSKZEuCIxtTKQ8sIGN0oTNKcu2vSfELs4WXUKqQLTtv78Zk6RJFkKrO50fkLCH
8fhj7PHgmakLL0jPxPvbG27msp8hHN7y4uyqc+3CG2RjboPAjNedYbfmbOCNQV7yAnTkIR1ftCzA
59guyXAbWHy1ypqsn2qVUq16pKKOYeVTEDYDOeAh12Lb3eDOuRcDkDvtsXvnuZ1i/AHxDfOmKw2R
bDKUxsxW155mrYPQngbwu8OrU3v3BEFZSglbWRg4eKB1LDiJwIQQIRf3gS3G/P5/+W1al1221F41
tFRcexTH//Hr7emmEsPd2tVHdpubWo0gJeV3TkgHoYV//EOMoRc6NuwvDmOOJ2hgdR9059su9y5H
iMtGNKhyJOcv75SWsBW1xy50uQgD3OMFykcOw90wZPhKQYZyLUY7Rukc/43NsMHMWvK0qQUr71eO
vQfn4bWbX8brKIFB6HmUuWxgSYydKtGMkQHXMGBf7oSMs4D/5/r6Ezk3TsPXDjGkkO/lGcw8GRpr
v8gN8f7YvbTR1y+GmIHxsoCrfDxXwDg5gY93K1v+/Z5jNIzwe6V2RbomIG3lq+NtvMf9ZgM9MgRS
x+kazpKbNFPk+QfZVl/VjnzbbVGiUSWp0t2r0s6eqq95eSwY6iZWafl3strukm95NiS1E+Q6JEfy
As9KDYl1nlmqSt+LPORfVtyF3vp36OHlrFXQA7o+jICQF6qxOa4jxO/VaXyKyFK9XvTvEqAWxfoH
wTsBWLJdkZNCfEjibZWuR9pIKSI7VeaZKqoRLKGmF4EU9qFPyjfgDZUl232VAG37QnvwghqzkSdN
EfUo/dA3Pu/yKn1eK8CB9Z8w2yadkDcorFQxsmG9jno2ID3VZEusiF7WM7JmPQuyzutCRD0PCDKI
sQwn08UDif/6MyQt6dN0GT/5c2P0M7WBHoqN8YSg1RlOtbLC+1FNwLZ0xQxBc+347VY6gZbabXH9
RdkCi6DBwcwLFiS0u91rTrn+gEnTioyPj+TjNCavqtC7VgafZNfUUC7aQXv1/S+V9RHUFYj1+OGx
iMB0SrMMXksClGE4lbMR6RszHWuO+JhDFsVLW3fImRH58/liTG73lwUyf3QE7aXZJi/6rdAOnRmP
sT+ekcmTvwza0UIv2JHxWMHQko5ku6YbARMlmgQ/Dm+CAtbP6hmNKiPdKe3zwKSRkSSBH/tdBHjA
hgA6jfxJ2AHLKfRrksynD7MwgAFuTRTVV4g1Dr/Et3FSCscABH16mI4XwW0SOIch2GimJWgl0g4p
bZyIBzbYqA06fmtPbPY7XBsvYn9OOkfWlJMa9A8C02pfXkzyenKfQK0JrDHGP1BLAwQUAAIACABA
Yb1I1HcQ6TFFAACHhgEAIgAcAER1bXBSZW5kZXJUcmVlLTY5ODc0LWNyYXNoLWxvZy50eHRVVAkA
A4g+S1eIPktXdXgLAAEE9QEAAAQUAAAA7F1rc9s4sv18+Svw4VZWzkQJAb5Vvt6SZSvxjF9l2c7U
TqVYIAna3FCkhqSceH/9bZCURFFSbNhyNjNBdiujEGT3aTy6+4AAeJ6lPsvzHlr+czAdTy5YErDs
MmMM/WE6tqV/Us5pcdu+Ff68u07j6Zjl767Pjq9ODt+9frf8vHIUsKSIwohlvc1alGuW5VGatBWo
yiANGLq8n7Dlot9ts2vqqHNKi+iO7QC6DNSg85ZJ5/fFbZqADbap4k/KBcsnaZJHXrwkLr9FfxCD
fFKucpaho4M2CkPFinJAC/buMhq3gBAVm13V6BIHYdJT9Z6hv9V1G3VVS1WVsxFaZ9kJ9REU/Y6w
+hb+b6AO1ofYwtoOQJykWbHyFMZKP0mT+3E6zdHVVQPjgYZNbOyrXcvoO118YA66pomd7sC09q3h
gdXfNw4UReHIUf8L/czQKEp8hvbTtOghzVFVFeXMT5MgV5RBRvNbFqDL24zRYKFdR2h4eYw+ptnn
OMqL8gdUVXWbohx+9dmkALzLLXX4+8Dd7x+4/cHgcDRCndHR+9Hh++udxv28eefN9dvhxal7dHrd
Pz6Chw4OLvhTtEDqV7X+43k08BgLFeX6BF2wGxCRo1NGM7hnVtZTut09pHCBrnt5+PvlSp+thWHV
oRq0ktptXGD8B/oDIdMyf/uEsu7Xd9mXr2h08n+Ds49rurui9CeTOPJpac5ownzo6z46SsI0G5cX
e8rgoj/6cHT6Hl0eji576N/5u4zdZNBP3+VfosK/fXtbjGNoorI2kdrroYMon1AoQX9O2RQq1E/H
bynoYW/HNEq6RVXvKtjyz3/+E23+8z9V1emmH4bUV6lug3z0C7Is23BUy8GqZhJHwXDrQsWv9I6O
/CyaFIM0Y0uCykqinuE4ADSOo6RwYdhl9yCSWI5lKURUEqE6Q3fjQy7lMl08ABI1TVc0MXmOwQJG
0a+jQa/369El7129HvvK/GnBOuXV65PXb6py8BVFOqBxPMzomL3e4TZgW9HFNNqM2rpfSTxKCpZN
MgZ/t7SCrhvQclheo+B+ZiD4lVEBrmV24dfRmfdv5hclHh28kmKIASJ89KuVMHZH4ymdgVjRNUqn
mc9KDwvjPy9ezTFcw3PsDfp4Oez1TsFnBOdFtlsLqYfu3qsSoa0qpjBAAv6nlDbJ0jCKWXD4baDn
5W1RcnPBaJ4m24Pv6Iq1hP4j8xaw0Qp6jH3PUR0P1fdxZScwIquhO8f93zfMgpiyFtrb256NdxRb
1GqTqfbC6lkDw6hN47js7rWhRwnEhjjotG5dY9L8joOzk48ZAGFZ+WizaG7VAStoFOflqNAwgVjS
QvDWn0x62IQI6gibFpLgMaaJ2LQWuIk34bacHQWrYrh909D8Nu7DmI3BI8/dT3X1QeRll4GspbMk
pcSmYY4Ni2BTqearTWwfLk+OK8kX0yRpeMdzyACh91dl/SSYxb3DO1C/QL10WwlW48lfW2xVl7oO
eIkgXo95+mPwUkjLkpv9OPU/zwF1SkAW2QSIqABIE61AaN2nAspLRI6zCZDDa0gXBWSBwIcB1Qg+
0qgAPMM0O05pwxsMqA/5JeThZQ+sh7O2AShRDQBqCAF1TOIF5jLQg9Sf8v7MK4tDTVIgJPfDKIl4
svtNcMSp+9myjBKeodkAzxSF52shglS+exdlxZTGqLidJp9RkW4Ns25thkx401sCkNUwBMdgErRB
Y68H//I/n5bwyn6HNRV1lm+qWtPh1WWL6nYsvFl3WNYH72LQ2Rpe7hboYLA/DUOWVVXirIUE1Akg
OWKQHNNwWBtS1XcfDwgTc4aoerQamdjaUYhYHAg9zzcbvms09bLaRg6D950gCoZLuIJ0Cjkox2Fo
PJa2HynB6DoBMFgsKGmaZxoLMBcPIVm58wNNgjI9bmJEnYtVfKYBeQwRcvRE03yiUtT9o75zWWs/
P2Axu4FQz8NiAlk4D+AtyL1PvPlsaL4HZLwdj3vE4A265PsHw1NWfAH+vIrRCsPQDlWf2TgA7moa
3T9OR1cXx4M5mJJhJOA0XCCOt4vrPHTWantpEt/3fT4t0vvkejwwuFFylwLxhwzEUYguisa0MXo2
Eu5LNaIQQ1S7YVsPaa90rMfwqSQpCjEF9YaGrkMbuP86JdaS6kEcgU91BzHN88gnphvUqtx25z68
wlpV/5M04oCHd3eH7RbBqq4QSwgctjWdao8Ah+2yemZ10c/vE//w/Dd/Fdc5Nt3BcEnU+W+a1rpU
SR9MMz7X5l6f0K/L5rikolTEFqtsghnzEQT+OE0nZSrD82P2FfzpTHKppnOXRkGVsYKD4P8ofakF
3WrJh/NROUynSVBNyqxq9HTdBJ85GPazjN7zCZz74TQpbeSDxFY0VdSCgAbrLQBaw6eC6tCoKRoW
Fe05NjqZxkUED3xl2aiOfU3BxCaKRkQFOx5dJ9idSW7WsKaJ1bBlUxVDHx0ML65Oj8/Ozt2jkTvo
Hx8fnb53z64u3cszt++Ozq4uBoeqe354MTy7OHGHV6eDy6OzU9fltWUpmi6m1aSeHVRap8kxtMVB
WlmV81kvAu5PM0QlYi9sSoT/8F5OAJwpKMrxAhs1Bc2nC3miaSqatTL7vn4+r56rBNcY+CibJpcs
Lzp5EUDbubjX8ygMfjcvMnBCuz6kHm/QopD/2y0yyM/zsmyvWUhj6Lu0SLOqCO01+KHJJ6M0WxCi
ybxgBpETFJbdsYybX7EmPiAcUZGQmaBg6YkO+LE3iGOu3UOV9RmqoquC0h01CFpP8GmU9RowMRQd
i2nwCFYJ4vO4vAJ0BYxBceQF93HwFv6KvE2zuLwbOTq2mOE70GY045OkeD5vjL85b8w11IXdMU3o
DcvK+WO4nt/nBRu7nyGisngZQrMDsyDQIISjz4yTc3CfPHiVU8cN2WssWEKvBhYxGXJn97vjG+iN
lQGQ6ZG5NaQnDg/IGoWhyr3en+X9GSumWbIEtJY2qXQuiVsarYTaGnSEsprdL3/OIWJtDlH78SHq
Pz5Eozf/afaaPbaV8lWZv7A5fqAHDEYb72r5DXd8k3WWPEIQsKxwLoh3VqP1tuMxwYRPMzWCCXeH
kQ8Oxr89T8vxTDBpvfR4jFjN8lZjFNYs3HqdsYUgtfw64uE0A4O3huDbzuA7VXvuILdJPbnKKmUH
x7j8XqENu+1aNIw95hCohtNR1Z9clzvZKpXQdKOc6Rfqu55qwEiob3S9NLgvReFy9lxIEg0DayFp
7rsts5ytFhxQLEBtQYvhZD1lxOs2H/E5G3+BtMDNoxtOrZqjxP/ll7d4fXRqtoGqa2YA2f8ioShu
o7z2771eHjM2cSG17DTTkSxN0l4vmGZl4+7GaXKD+F/NvKQs28XxG8A0+xMvpyeWIfryMfRC3TdL
HvEg4sfA4oCeaVnLJmzZRPQVaOj5EKaRNy5zudqEBqxpEkFy4HKOsju/ib8aivyTKVCWvVfL2eLT
jCjRO4bo21QAr+rBAjzvj1dJEcVDGufsu1vxBnlpGlfZLxZ9ERt6Xug5C1s+MDqB5vAppE837L/S
IpYm+rIWjPA8u20E9FC/mgUYzczZqecyLEH5PmaYLOSXcxSXNG/UBFdZsX3UaeF4vdPZ2eNDlo/W
OmJVSIhjt95xPgaK7RtbgVKuZjjnkyud54ir1yS03mg+whDNM0g1P9LoEm7t1dxJln693214vCmI
3a1ggN7nIX7zrAp8zV3ofNpBx3b5VnQ7QZu/w9xS0MZku0Hb5tRt+H7T+irxgI41EwL6hDfArevf
cTf6pHiuhZbvGE3vkyZBxN2Oe0eziK9kqZz0Bne2uDquPFn1fko4Ulsh89Rq2cM5zfibzuOUz63B
78EMEfSm+6PxJF6eJSyfGfnphAXHdOwFdJe7dAR9bfHSfuWWqoM2bll1v0U0ZtX86e5qIbQTDe5d
n9fBc313I9nZq52sKpoTGDbRqV0Gs0dU4u7ivvn1fZqzRjjeLUuPwby9zvznD1RPvd4/4rIp/9HZ
eYP+RvaoYNDemh5e4n31tzP11Q829ogqmtHC0NNC9jdol3Klhi2aBIP5hOpVxN9k/nrLy/oWX11o
+kag1qsLIaT2erOYCsZN68VwnUVpdeGAFrSaz3VU0QzW9HVi62sVVgF/9mZpkddopnBuSi2qOlUN
+iC0YLUl86ytEl6/FVuaqIYR9b+u2utBfMv41H4HEq2qiGeXhnB2SS0nCNqs2Z29qOPX3WrG0P1S
reorw+kev8eH8LL7DCNe1R3kiU+/qtIPo7XU7lEmW/6StWHdqLPfz7Fq/QuYZwjcm6XYnJEsNTtY
r7cW8z08hEOHr5lYYJzZvrtBybxvma11eI+oaNMIWNXNV5jUfPhgw26tp3uEYFu1cSX4SxFebpRN
bKdcGrclymFsj3KY26UcDlCOb2zpkJRDUg5JOSTlkJRDUg5JOSTlkJRDUg5JOSTleA7lwKrkHJJz
SM4hOYfkHJJzSM4hOYfkHJJzSM4hOccLcg4sOYfkHJJzSM4hOYfkHJJzSM4hOYfkHJJzSM7xgpyD
PMw5hLZgBcxUF9tqRvzHcZSAi89YOEinSZMilMex3ExpFmzYS1Y2syl65Gvo+Ya1sg8sYPWgYnNQ
IlAae4WqQ0/L055MYQrjm6ZOV7FB7WwPFlZN4Z2Yvkn8xt62AzZ3QeUBofyk6krBcXoj2oTE0sU3
V1Jbb3Sk/gINVFUUx/MLozj9MoAkYrFHa386nsyLoYamCd8lDMOApzll/YD3E94gSSGjWItn3q1m
QFb0Ec0S3stoepphf1Pfqh6LCG9pND0SNLpjecrbN1XowjmLSVlzqyKdRL1e9Y81NSW+gdCk1DMq
lx7SvDjZLFk03INkqyH5XyxLWfAt+WIBlfi2FviV/A80v73k0yi7iwTyNA3mZ+82L5QPVCfVF/eH
X4uM+tAv6uvnRcZltcXsvWnoqc7TEb8D7S16Rgl2UQsQPKuwKRrqoRKI4f3FKiFjt3DDkvUrEF/X
+/wFMxTiW6Fv/8Xqg32d0KRJpxY1wKny8vGtj6kCn7FWFfQDfhrmNK5Z4vz6UVFlnD92FcH//mLD
PAh2lwDU9yd5vGAlm0Dwswha15bPBl+5vtdZf/3VxicqDmcAT18+c/cxvYs62l+vOTbUUHncg9U6
2fcxlWCq+kL1iBW76y1+umUP49bM1vG+D0+yOL7taY3G6dD5h0YSOmb5hPoMyO81jaOgPNv+rv41
OB9Vhw9i3DrX9zFKsU+fonR20ARnwI6gTsf2cUPnXOTi0vuMTm6XBkh5hR/vdgI1XbfQYFQerVce
sm21zut9mPM7GFvN+j6PacLf/ownEfjeeh6tfNuyuOcYMqLj6I4F5Rn+FQGwoY8SwfkGR1UD8pDu
zXqbFdOa3tNss3UY72PmE4FMP3U+0dLU1sm6LzSfSPQfZj6RGD/dfCIxf+b5RGJ9t/lEYr/QfCJx
Xm4+Udva6TDa9k6H0bZ8OgzWtjqfCBScUP9psbfx8nfxPJ9vO06rL2A1I8Qx/c89z092ljqdwHPz
7omJ6HwlN9L2nuH6vmP1LIXVh+5upvUvj+zVRmzLJbMnKrdNNOGz+KC9sPmA3/6Ohq/3898RwDwu
iDzziHH2rWazhGe4Teo7Btscb7YM/ttOwhL+dptJLaaqT/WEByys1jT1AzopZ5Gf6+XEp9BNivWg
XgOwEO3HqeexLPoP22KX7Xt5SdC5PTtvnhk+1O1LbjfH3jdp3cqUxFarZ83UzHZr6bkK2pXVmEFw
NI0IrwxxfM3SnkHnbQMLLw55ITov+Cpmq3TeQT8SnRd8t/N8Oi/4sudpdF543cTL0XnhlRZ/g+VB
+k+9PMj4fsuDzJdaHmS94PIge2vLg5yt0XmibpnO66j+zPZ2lwlpoa5avKJL6dzZCX/YWbXB73uV
R93XNobx4/QLyy7TfpSVrr1+CUA0UdKn2iScxS+uLp7L7cyvlV90D6ZZFSVNYYoCOvinSOfybljC
BwzbqKaxtqV+A685piizgC7PbLzQOsnYhPJPL2TvK/08Kj1Kue6IcgJOCqy6VqF7zfOBzuLKavgf
0ZCV657LL/FN4/n586KpoOEQYtnPz4csQoQPE3/hfMhG3zkfcr7HcmnxBbsvlw/hny8fIj91PqR9
v3xIf6l8yHjBfMjcWj5kbW+5tL3lfMiQWzTlFk25RVNu0ZRbNOUWTblFU27RlFs05RZNuUVTbtF8
wS2a/FOzUB8IUkHodCxGH1g8kZxDcg7JOSTnkJxDcg7JOR4fKgLDDOdergynVTQ9hyaoFA7TbBBH
LCk+RsUt/yToQi3LFmg4wqXvHxNLePe1FWhM3Yzmtvxdhfl9yFXKtNAU34FtMcu2N6sJouCEfmac
DfXvaBSXW3sftvmbZEUXJisA0ng2Wdm2eTMas3W5TyY4FjPDxxCcbSP+BvXZtipJiiQpepAUWZIU
SVIkSZEkRZIUSVIkSZEkRZIUSVIkSZEkRT8zKbIlKZKkSJIiSYokKZKkSJIiSYokKZKkSJIiSYp+
ZlLkSFIkSZEkRZIUSVIkSZEkRZIUSVIkSZEkRZIU/cSkiKiSFElSJEmRJEWSFElSJEmRJEWSFElS
JEmRJEU/MynCkhRJUiRJkSRFkhRJUiRJkSRFkhRJUiRJkSRFP/PyOR351RdA0Bdw0+h326z5ECo/
RIA6pt71omKnpyCU0a89NK9P1fNo4DEWQoHXLMAEvDGFH1Dgb3oimBdwpBbFgY1DmysJouYjsz9Q
kM8LsFdr8soCb9LWbmlm+cTaAlCCMrtdYob86yooczZYgtUNsDBeKSC6yS3BpF1i+arGC7R2AVZD
XitYb2rHIdYdykolRrOgPAkzLC2B3t4qqT6+grIwbinBKlH5p3gysq5NQJZynN5EEATQ4PyqV3Ym
UznMsjRDgzRg1ZXFk6ZyCQEEnU7HHsuqQqwrirIfJTS7R0djesNy3m3qx7DqUM3iddZFSxcD3gHQ
L/xTaBcsCSBSZww6nrqDdved4eFQ3R929wkxu5pqwi9dd7oYDw8PzYFp7mN9D727TuPpmOXvrs+O
r04O371+tyxrCYPn66sY4GKJAYbRR+Zx73HJ8mJ0G43rsVWiGaoDZzjUBl2NmPtdra9bXbtvDLoD
a9A/2N83dIztdWg2SW3hClZx+R6FylnBNZ1M0qxoQutjBw8cHXetIQF8Q+3/ibu25jZuLP2uX5FH
V02Bwf3yiGvGO8nEGyWeeeWl6XAjiy5KysTz6/dDN0mxmyDNzbp282AxbAj4DnAu3zk4XfIk5JyJ
9CKrrHhKudwA7XTiEbqOL87QLcTKVXSXPfAbTflf8Ev4MWMzof5SkUYuJXWWRKewiTwyEkxURDrK
LMxTWsNbSMdTz9a7+cfuXwiL377v4BkQa771kzGnAqxYNz8ToKPrZT32EwGwGX/bPDeByxKYytBF
/ONw+tERn3kmwjmXSuKKC9cCPkzZBjw8OwW6XrEz/UQMMewc6MUttrR4KXMgmjngU9jnEBh2PFgp
rGNSJHsB6eW93T88wYrjWpxtKrMLDoNenG/q992H+fJzG3DJHrsYSY42ATCHYWkJPZbOyWBULNFc
3tph4msbPIy4GyDWeKPh9fQr9OOXq6W12GboPxiNUGLGZwL4knPaaM6IFsYSYVkgMP5AFLUqZ2l0
0FVnX5521aC+rb9+spi1bm2ni1m7WCNMrPtwvl3813LmD/aspcGaRrnMlEokRMmJSDJjTxzOtCiT
pDHMmHiy5mSWu/FK4mx5R7H4cqRSv/cu+5s3dlbH4l+gECJkEwT8Ck+wVpgnCcJkEgXnXnAjbVRA
cd/zkW+/3yx28P3flsNR4AiWy+6h/zNX7QM6GTqs3x42PLsbCaCWDalUN3FJ992yRq9/DMnON29k
Lx0XdsbpjEPEqCPjulCiQ5FEZA67dsEQE3yyiRkccDkX8d1u8zuEOoE/XqgtxnjMRJx1QxxNe3Fw
omkz//C4fXreLH/onp5qbB2y64PWMFrPi+dssxSaqJiq/cCxOqccUcFzZpOipoSx1lyfdwzRygZE
a3pzx+D43T9//vype9VkpMsz0VuQtyXEAgtC6EQgNzHDJZVAuPVU6JysiPqqHlXf0//F1M3yqb23
P3VP25fdEv7hHMpEDNsQw2GnR9lEXfG+2/2+wZSzcp9/x6Y8YZ85o1V1GCY4fq4+TBbjksjQGwWn
G50gVhoECmUconBhXOUvSnhc70u2csBzYeD+6Vhst2iIvVCTwPK3bgc+t4WkoreUKpsxmmYaOfGc
wxcZ6kDIvCZBO54cpTEHdlW2w6RtuIenI7ijgH34kls6gbt82L6sfkN8jfVDH7u5FTNtZrKa+f4j
ZMheZxlAjrzwnggNGwkuClI0w6mVEiwP189nv0BbhsPTuzFc1pJh2HKo5Xdvy9F8uey1yIsYGPOw
30oyKLXE08xIsUFpqFCRVl5F2fvJtz/eYCLHxceQFw3IgtlJSF/Nn+er7rlbItt/Wg5EpFcX4TTC
evWrWXkmjc8ELF0hgCGIeJ4pSaJ4EBE4VnaTX61/EyIdlrrMT86G3Y0lcC2xFgfvGt//cP/u4eXD
5nFCrhmDOLqSf+hHsVESxpNAmPAJ9C9logSoILU+B+mvnsyPn7rH775vgx+Gb/a+q41lLI/lDXnc
1Dq2WPPDw0GKas0HcRJSK25Aw4tgBYEdPstR7xAteISBmBy9/dPiDM/GgF1Dr+RyGq3P1Le6ob0j
GiwkxBCQ+MFCKAcXC14RixiEdAJEJQC7VuHPW8j+4Qi6XHUN6J2c7PU/38W9+4YLOrpO76VXAsGA
FXA5IbUCdWSGUMlkcCpFqvgtVvA6exv46/MRdjtveFFb8zZzKda9fXzudo9zaA3nbGZmvPrR4VOf
kYvKPhVhEnxdaGhQEDYSFxXVBs+UirfI01rxgmdtjBzJiFBxLqPjeiKjr//e//TumzfqeDraIqdX
xpCcHGiJLBzJKGUkZkE52C6YdrpFmsPcbQkOT0eol4vVOeqVmIbjYem4fVxvPuwvlWDOMyb7+FY/
VJaeSkmmGBISh28qSJ08R5CO0lPkLkUrI67aRGOVCwT2fOBIqpVuUMSVWx787L5w+dg915kPTlYy
XmlUJYqaURWZkESbSjUi9bAXsEWVQdIZ8m0WT9OeYb5vL8w8huZaGz6fH4Lx4t81IaUHTKJ6SZ6K
FWCuCMeIxAIZGXGyKBK51UoYx4IqYzo9mmW0fqcbtLMz9rj+08eT1euxgqnwrHQkPMBtgDTjgKXA
hrAC9c7M0zAh8ydzjNZeS3W29pwKcziWPz4+4AQOi3PdhwimnLYMCsVoAKNlCQE828rZ8TkWikA4
Ef50mrvRUotFY/2VmXj/179IPH+4Rxzv09HBl0KdZ6yarCvFpsQYARlCRkqlIV6FgnNhCMUuiJxv
ckCNtdoq3xh4KttCNBK3xXkofrfbVnLSrXqmeJSOHX2RS0aXSpCgXCCoCVrnHWJztkijbJJIT+kt
gjUXaovWHDoWrhG2F2K+nBxc7+Hev/PlNWyzmZyp3kXhZw0cnBkmC2JgqUUznSy4hs4kRyM1JHdC
lJtdLZa64mrxdCSEWjROSNNp8fKvbw9hpqLnNe4pXn2Scz55wRW4XoQX0DZD5QrOqDgmYuJcquvU
r6LaLHsdujnDe0XTHvr6fCSr5udEd2GEnSS3q+7pt+ftp6cTgd1M9Mflej9ccmZww5yoAM4rjDfE
Mu1I8tKGzAxyJ3cTex8WOmCtAy7w9/OBI8Fsw30v7NJOzCxt+ktJgBkdZs9hXJ+oa56jyCwQ5SuB
5IqD+ZYCs8uuFiG55/7rJerneC6IfzZuLP2ycaxOzCdpWUvR/M/3NZr1yZlRfS4Mf1IyDYxYoUDi
+k8UCQ0onK5XGVRo+dUVGjgu2OzP93djsc753GLF1Lo746z+l4gA0Sc1fZAYPtXYxbVUsAWSaQ2d
tppsTUOpk55LqoyN+VaaikUuM1M8HIFf8fNa66ITy8lBDTcufzyD+yiJwIZfGD7UaktWnFt4GnAM
gwwHBCAIL4mzwTiPiMfylxW0Tn4ZdX06gr1257wNX64PBAHIP24f4+7zp+ftsU5NqWYzMZS/srHO
SJtIcXAVIsKggkCe42gqAi6DZaeavO185lNgSyQVZ8CWtN4ZDqypbB+ff+o+bJ6ed5+PObuQPaaY
JUs28noVVnMv6DqcGbJd5C8xUh214f93aj4qvpzDHks97xpSL1aTiPX9/PGDBy35/LTp3ZwZyET9
WVN8BkUyWZKoNKu3KpUkQaOyRa7GBbJ/Eb+6+KeQLtQ6TkaMhNZMnwutOTvnGvfzx9Vi+0ejmB9y
8cHUNI5ZB8ION+8Ch1aWAmLIgzFB38gy9otc5Bn752MROG+JMGUahyTl6RmbW0vvT6cFjyFc9aGK
wYYq7zaFwYupIOCnEzyBCwjCjvqYbgrCfx/Wu28sdyrU2bCJbPOGbHIqW3Uv6aV7PqW2QnvvSlKE
aws5mExwDhq0onipwW2tDulWb1znvuzY6tMxatlCrcw0zf7Udctff+qW2w+PfePkcLlac7meO+xr
mkoxwXnmJDLYlai3gfVehRSBQ7YqiyxuSj6ay13IuFtDxyIq2xDR0cnB/NR9BNt/v+n+9cqMhtzK
ueosnddcO0YCTbAcGZBsGoYcBM5bFZmiUuIW0c6XueQOp+PGQjUSj6VeHf3+8uXT02vGKqkdas7W
J2aLI7o/H1PFsZKC2EgoWuRKKT1OWU/nGQNoVP2Wlk6rSrX2/bLpNaUSLOCoqbPLNLuoPdG2qHoN
h9SZmUgcHIROkrIb60r1rH95e1ndf3l7N4bXCJZW2VYl7P1psqZmdCaqAMOHSqBMFDhxS0zkSLON
UJAA/idbaQ3CKZiivT1du5qtjZK1peONfZ/b9USb57+vty+Pq31BbNBja92Ms/4alMJOMzVE+0KB
Hgl1MDBbpbXTqaZxxl0Pfe/LcfoL2E9GjASYO9oQYDE1x7fL16gKBTa9/tQfvRqLVLIIRCvJ6uZr
aE4IcJ8ww0RhGYXdsvmna1yod5+MGEuxWDakqG1So0Lep4f583q7O7ZJ6b6GJ7OQ1CBZNKy2LmjA
j9h9yazm0qtIJb1WwxtPOoa1Oi8kLZd0NdHwH7rVZh7BsXbbh/u+D+xYR2JqxmyfAxmuudLEG5bh
yj1cea21+eA5tU6x6G4qzJ8v1d7p83F3Yxkaat+tVSNvOJ5onO8Wh0jFWHU9/Q3P3gdBBoHIkImx
NY0QgRPvdU0juNNW0CS+cMPzP8pzX7Fc8FbH53djCc8534pzd3DzHzto4m5+VC+tZ7U5huZkfVaQ
zdcmMul1vVvMhAereNY0s8zHfn400d14tXOGsFJOTez1/WbVbX/ebh964rnnNkgxZ0gne+IZUg5W
IPJYZBigZ/A4yIRUpjBdyW0q15O20/nbW3g6YiRB16j5rDox9Tigd+X+cE8r+xQhcg1fWEBguEW8
ZBRxKlooijPeMgNCrq9fHPRzXmST5X6MU7AWzmMF/lDC3z5v1ifJnAD5GtgwkwZUB2yLw6kn74lV
FDmdR4oprFKFu6tXAyfznuLqeIO1d1x2R1+3zwTYsTqv+oRD9Y0tUUWmPMlewI34jITDRk9KRhYi
kzWSprEmTmYbI9HzBhLHj3X6T8sDBqXcTA65t8KROU55pRfAYKQk4GyUUNi4jdHa3DcNnG/Mcbox
iEa7WCfE0SbnL681AHj0uglcU+T/gYDWWKgRiI+TjhKupNEmWK/6eHWyCa9z3I1Xaci/cKuGFzw0
A1VbhA/plfq130gJD4ISPAFbkbVky4hDakgQQItLLOao/7f9Rqcj7sZ4u4YQ86k5Pmw/bB6fhhv+
02QJep0M+Av4lkvwJMqSUIohKbPki9YS9PGWwNTP/0W/fYqiPfh0xFjO5aoh55of9OQ/3uXvJu0t
OBShEH5IiLG2RmWwSuXhLxULVDgorTVfqb3ldfUx6JZyLxWfFhkyHKVl/Q1G/VmDDg9FOKkUYTHh
YByPxILOIBs3POrASlDm6wVUny/wzjySZ+XOeRq+XE142lO33CB9fDXbaiMWCpVoITpoUdvZoWga
pNMx44txDkzIX/OnoznHoBpdB/hyMXH0i/r65NMxtld36jRTiVH4z1jLiAFZnPfMExaYU8nHzDy7
hul0yjGkRWuf9g3sF177f8ON5TM1VJaK905Fk4nyqqpuSfAoqTafhBK4gW70PcoXkZ3OPEa2aiDr
1LxRVzkqz4/3r6mDRhSovQD9z/4ekRkVU23RM9WyuIOaaqTEGpzJW8Qu/hUbEV+RXGgFum+lF5Bv
0RB6Tc/6Uh62u/vPj8ta6nN74uJ66uIYYj8PhoDv1SZ36hD+sicmiOKUK1S6/NWrm0c8l0LC/vFI
1jU995NrStlpCfvdfPeEzOG0gF2F1LFIsFtEdgZOIaSpLR7IpOBO4Spz8lSl/8cK9inqu7F058e7
5mwxPd6yLzl+88ZUPjUzNYgPn2q0kCaZlJC2OwoH5RIlNnFwao9cPjGExy80Qx7nv3Bch8d3Y5jL
Fvbl4bheHo8cjNfCmaq31waaF1mCvXFXSKBUk8SjoBwaimjedAzHiSbLr1rLrydbB+f7sts8f/51
882bwTCUwqp920aqL3lUc3Bwobm+ClSbSZGUc8NC5HBi13etT9W+qCb3ewR/fXux133/fCyflA35
pJy6ux4ETEH1fU6q6oMLRTFtoP66Zisl1Xt4zRArlPPcapmL/dOSDc8mUFUL6jS2rh6fnlZHWm70
IWK4HMFtHCeJQocFDJc4HqAYwtTs22rw9msR42TeCayuAct0kyv+7+7vjxckg8dERuJr06SUEYrK
LOK9ReQvMucgXAwpXHcmmPFCi8z9/Rjh3DQQLui0eDR6ffUNo+qQ0SDQO+TNhuQIoxdc1dYjpFZS
syyilkyWq8F2NPMY2rKhfkKqRkPkL8+bhz69YENZpUcmLLUxRJDAVBjYOWcEURWswMDak4SCynBz
ZbcucKW4Wx/fjXHqBvh6mSFO97XWpJ8fnl6z1cO21veJfO3y5VRqIgSyxVC8IMk4I71ixYir7Go0
8QiZbMU4yc6Knj/ev+zW89oi64YOfTd05/vMWKyNdjJVZLSIemmL/42WCUZN7R++nhgcZr5Q5zw8
HqNudI6uJZfTgsQQJbo/nrvHOuFRYeurBUPbYvDKBkEDscJU3goGa30WRBYrKWfJJZlvaFucLDEC
qxqF8bUS4lgqmy9/PeblVvOhCyJ6nhNyRwdlpbYQa5EKB5d8jjAkEXQT1clcYwyiYT1KqmObwMdP
vx53p74zqbEM8iOS+pdisCUk4D/iqQCNlj6JSCf3MccZxgu3NF/JxUS/0ubpN79bbJ53x4sB3fu/
GhhpKkUmFwj3EXQiWE6CgiVD2xA5QuIpXL8UmMx+qZFnNGgixbohxeL8lbX5bvlr/y5L7Z6j+y46
2r/aaS0iCSPRBV8vuGTt9M1E1g46mZJ13n09cn8EcinC7x+PhWx0262NXk/C03++zHfP/94Xr8F2
6+2ZxgfXvzpSC5rekwSnikBvajEEFJD2rTs6uuEa77KUr5O3kb8+H0E3q4aWWT5997bvlkzbofbU
A+ds4Ovecs64ozgUXzt2EcFC4JrEqIyPzCaZbuuOP6xw5WWj+niE3jVaj2pfz+H1vB3o+8PvSJ+O
VKUWNXQQNoNEcVe7TiPYoq3vZAsYLL5JKo+KqmfTjBFI1kAwn7atHGXqw+w/vvd/P/Tkg2/NEK6q
7/pv3q6lu40bS+/1K3qZTSl4P5Z4pjMTT9xxJ2d2c0pU0eaJLDmy5Gnn1/e9KLJYqAIppqOTjROz
ysAFCdz73dcHwgG+Uuz1L9EWhgVFUgn4K00ZZEsy8Bd3Oo592sDi01r+RtnN1q5wyyGCu44Gc5RM
89wFTQDyURc6q8GqEZlloFYqw89Wr1cj16I1+rK2/e0St/zQg1fxYR4cENdSlegA/k9JjTrnPQXB
OPgIPIkI2piJDiNwMcocIvevp0FqeU4VBM3fuaoX2DiQSFR4akOVjLIBi0sRT44VrYSTaz12PQXi
qAYo0QH0xryRB1uIgMNE+H6clzomcnFWu0xzJrFdntfLafSBbwdLGuAzz7Lb6toWBCr5mLrEZgTw
JAx6eHBSBc3gWGjbBcedFhGcIUde/Alfym/X71zVEqvWMtQyhjq1fk8afvbRXmNm6q1yoH90EvCL
UA/bkSNhAfj4mWaqUhZ/qsH8+HyxBt1awzIeuKlaYg6RSltSL6UgqJjdkADgRKxqp7IzmWCwXjFN
os3Gp/OIejV+LWYjbLkdNhPg+i7/77sP/eNwu+pXDJ4JD3C/C54CInWATa1IFMOXJjowrPkFb+/i
fsWFDDP5kdp0VQxhiRBTGcGcIvUbykrprrcSIFnsLGaUONWiK/rKx0CllYRqusSMx0Gu6nlkY3K9
hFtu9/j2rv/67pCKWRQKOK3RrmKmghsAi8l0hsIO1XDkQGFocFEuKsKrpzmxWat36sWsd4IlkuoD
/P/n93nZTCyyA5wv0OFHNCIpni0wTqCWnJVCJPkCWLw823Kc/aqWzzSENv1J/f39j2ML9zUZiyCJ
JIfSTmIDjhdKSTGAQsDwVkXs2otcZs2CSfkFF/Ekki2PKslvmFhLfsPMQvJ/hjDP3YXgBEsJTD/8
a/hDCDh0BtNdQoqkQCEIcclegWHbgsKDhZh2LebAlrGgv38/VS5gKSMGNDSgFgSAnlJjIviIMmkw
Js6DyEnqTmlwXQMFBRxeJVw4iXCqnWVd2YAr2TaWx5e1GZ9LjeT147FIcl5PizVtdl/bht4FIPIo
EaQRR7C6ymaA6+hNlR8pYv89fZUA6bJy88ICz/ob4Gr9DWyPBTL/9ZYtTn3ikZhECfyMAokoAOV5
CiaJce6k0p6RaF4tx8oahx5Ea4i8nZoN0bCMLE27+/cY5DrGU1g56VE5cKMUaKvoGfaLgZMbwRHM
KhJimM1SyNoCnBhyIZZpiTVZ/Lv+/v1uZkfL4ZDCCUBTHUuSg3mHE2JJBlOQs6Y0kORtqiWZjzKf
npJ+FSGzlIplXaO/ex6eHh6ePmDslpfoRfnvFqNMFFwiEj38oASpaqzBGl1Ju2A0Yk2SwDy+oAKn
8U8pwumFSnoqSUN6teojz/hLxN1joWH4WjB4AX7U6AL2DJGO5C7KEMAgOYCwHFw8IuBEmkiZ8eRF
TDKN/nK2Ll/w/uKletXrchz4sBeLcpQ43Dy/f/f1481DiRdTOaJ1zN9lwrUCu6vRsebBkM4QJMJw
4Ma6qMFNVJd10R1nONU+d3yjWgNbN9Dgh0sTjBy5aMl48ZlEQZAO9CGFjRYSFjFLGQDbYkOqUxKw
mAcTl1/FMsDUJ4wCPKkXs71ZL0Zu+gZ1z57MCp3A4ppTAEI5gT4Bfxzba4UGpynzjmgWRdYO0KL/
UzGlhX91hsxqelytTfWNzaY2ahGM/lhYY6cYDj80YMXokFvGdyEQjJdICYgZQzo5OWINuIv2bNHt
fNxark1jA6lhSZeEVCOfDyq4FGWNDAV7ne6ztoxoEE8rhEeg3U3G2uwI3lMINtnEXmMzVZbgNDvJ
9Eq1VM3WJoLqG9piyyhHbZ9aR5KSUj0PanhfLRJdNiarTmOrOscYEGhqQOLeAFiFA6S9u5gmYz7V
GY6M+Wv1sm5Ya1nDYllnVTdjOQvNaEd4PFDgOcM75omOypKgtf6zqvu0IjamcTaMWQYWsZ5xH0d6
09/DAfs43Fe1deD2OCoDnA+PXGQSq+xyNh2NOgJu8tnR87twNfqpyPjitWo1Vq9BO7V7s4LFkY+b
D7svw7G9BY64HE95oIJoBdhVCg2HhxPWeZ5IpyToYy8tuKeLctPFYLUgvWwJok+0dBUb88PD+/f7
Ez4xFzgFHgMgTmRxBJSkMK0oAIDCPk9oKJSjf6S9az7P+Vav+ZuLlZnWykyDt2BRHgO4y6AFLIE2
1FqUeKQ7RK4h2CneiQwGUTIvwfNPhL5O+U3jxcV6GlvmdsW/+mVXkoe53wxjZoXveZ/4ISqEaS8k
QAsMe0J15J0XLnRB2pAsDQZ8iEt+qsMMJ/Tx/mm1hNuhsdngwzN1bn/7RmEUQI00jRYsnAPEKzk6
/R68NgsHAYCUJokFBQjyT8at528sRFct0fuD6/Cp/zhjTyGlg4dIwOcRzoDFRADsHIMxJAPAyRgw
zF4tHIfZGIu5t425t/Qw90/97a6/3wzL2I8hCb4t1mWZLWYiBJxJBfraeJe59yBReiUvsJagEn5g
a7cBPpoI8HabZ6wpODJGSk5B1RXw6bSD89UJgj1EDjS1USKCvZEKNB2gtrxQdIuxruopVUMONiyi
vbv77ZRBF8f6epaoCsKDreBMg9slAToGQTsqOLgDoM0dPRvkPQ5bC2XXZ5pRsix2P1R6bauMwFjx
BUAes04Ca8IBo8OfauxB8DnCoU4mSQlQi9v8glUbp3gpJ7B+76qWfVgviOllD1P/fLt7uH7aR4Mc
/m3WV0PZyGs1Rte1ycGKTkiFSFZm0L/WdeDpwvkRill7HnTMBz+heGdvXNVyN7YMV+a4dR/uv8w6
UFFe5oiKhOXOeA0/BGxYOPBWdViZJsFf8kGF5aadjXJVT9XYHfJ2GS847I6/fTM2/wMEhSMEGxft
V/aMA8oGTek4EpaX/nFQRQw0aWQuAhZyF22M89uhklsOjSNv5BJs/tT/f4AhH/vrG9hLdyN/pBgj
kxZlhz+NY/CLM6dQgVGsnrPYVUUiVULDnm6EUucq/NvlHN9i+x3yon77pt/8+O74vFqA6beNBWym
iNvd7x/7azlR3KJrGQlPRsvO6QCgDEvsDEX66sB01h4+1Isc+nyMevJN35h8mGqFf9jdD/2ju3s/
zLriKGVmpOAIwYNtRy5t5A0Bc5OC7WBPInO50oHrV+NqHjYwwImGkaaY1TItXWMBZuWyXOwfEbHv
2Fhd0K/AXUsAsxiONfhIDocNvgBhiMFUW3zBCflPyqH/EU/UkMRqSb1p6Av48PDL/Tp8/fh+qvAu
P5jWRkgjWBcTgvkQ0GVH9kEeqQAFFFJsc6bMx1oIsfbV2Q3ly6zmseRSiEMqU8GPYrBHyjCUhjgK
yhb8C5G1cEJY2NJnay4bsQN2YxoWobRC6aaD0Q8fH+6Rlexhg9cHzhIryWbnPZZ/II1mtsjr4U0n
4UsjAe844H/MxahmesHJqN6t19fT1vqm7/u35/6xv3+C0zDpC3UgjNYug4YHGAGWxow96qA9XRcN
p4oaxZVgze97OehConXeim1vjgrEvXXhvxeaIwMYoS4BtsbgJAd90fkAdsJqmqwF46UD/as0x0y+
amF4N+VyYXzWRbHfhf3nY/eOGmPOkrsgfUck8uhLcE4Nkisx4hQLThOR2LltPQ14VU8sG9LQ1cbG
u3V+GjCZOzxOCeZDZEXxUakJJi34YHDiwGakQtkOfxUmeAlSamIv44pozHViYzferFfXCPnBh9tD
gGLz8Onrdnd39Dmo2ROkkKBM5NiOXaq2UuawGAruJniW4EQ7UNzqBA3UfMhamtt15oQLskzjNytm
sLZY2JQUlj7YjEkciTyWwsC5SzkxbFtl8nyJyXlYHL5tw2FA5euMPd9ubtdsHOOVI6PMXMB3iRs3
CSOjVPgtajYSsljQeQjtU2KRaJ/lS8buRMI77J/NxRWEroEblnUvxL3pN78+f6r5itSe6VGVSDuo
LqsI1krw5JChU8E3DyaFWO54VILoeFES3C9mmm/h8Vkt/y1tyL+dmg5vd58/9U+bqT4Zjt0hquYU
BQvMQwcG2e1JjTE2qGWMlDkXVWyX7dVjVuJQ0hCH6r6w2JUN/zhsKj41xqdgvtTa5uzA+43g7nAX
wXtHViuwC+iYMBpPtI4sR61F0jctkYbpG/p6d3ssajxcfhIi+FpYPuSwz4FHg8dHYs2chBMddeKq
3TRwHG4hxbYhxWYqsvzuh59XxUwCPCepbeycwn4QRy0ocZK6xAAWJHAQTNKvVMx0mL2WedP6MTfL
frb/GZ7cM6ZuZaleGQtZmfdRC/gZTaIGSbzAO8CiHGcJF2BYAxihC0m8cPCTZAv4cCH0piH0MCHS
VT+DHAXm3hNqA7jZFjefAlvkHGMdFV7C1uNmlX4/3bYAEzYqwAQz24GtOYmwZ3uO+pRiOsZoO2cy
XrQEOAk8Wtd55ZgFn9ZS6y4u1ywN4aerNfFxJTizLcEHfjCC7pdcggdzI1gKbIWgERmfokGC4oik
+jGC8qYiwS8O359hf5J7qAq/1XLUSxjWYFCUGEZlOd8Oj0i3gzG8OZvg4VcgFpxHrMCLAXk3TAwd
3p3QUQXo1RNhbLhoAzemOUFLvH6xWpZYX36AH0730HwYdh9v+7uu/3x/pOyw5hDO05H5xGPqFMlY
GQmI0FmWuuhIyjZyvJqi3t/rARfymJY89lh4//HhyzAHTLwUi4OBR2q1ToUEiiEoBjo1xw5vQUtR
JSNPdGMtx1sI0zeEscuLzkp4N/Sfnp4xTTB2kI6N1Tp7BXZPdLLc2yGD6Awg5U47FlMENBfpq6T9
5xKcuYxh/0a9xp431njLG2UA7pfw94gKWReMIjWY/JEdFJxG8H506JLVyLOBZXrJgHLOymis/jNa
XUwRi7OcIYnFx/UKbkVrBberFSA56mhTqlZOALACUG0HgyB1g8f+SIFxPilAfQMyvIxM+zj+KeEP
zxfSDw3pt608+aye6ahRTNTeYQNT8pjLIRpcXwo2nXgereYsWPlyb8cLlUzVK7X0W9mSvl92eTz1
T5+PpWkFm6F5dFIqFLELDjnAAYqB344cvTQDKE9CyHC2iXI27kKsBjoDg7v4UhfNM7u8O9zUBGei
9FJSEMcGGuHbZRY2NkBaw8ERQ1OavI42uovJB3H8Mw008PSqFrdxMKVdNbjVxRO0VIpIMCeyVP8J
qSnsaFBleJlFYp2PSiMZPkeNbTW7yNxcUDZxsmQCZG6AVDneVDqC1LG+ZwlUwVOIgVDRsYC8Q5g0
spq4jqnMKM1ZqxeKlP8AUJ1JUMmuZWMj6S1rJFoLKV2DzQwwaTaS4L2raJoyssLEZDvAskKBV8VT
zC8e0DL46c1THs8Fl7RfIy5Jj7Gr34+tArI4mibooMGQE+EL7VRJvAiMPdgMBp46t6Cd+r3VJwBT
sNa8E/n1v/rH48ysTK1DVOCMS2zvciNJk3F4N0bmeNWbTSrpxd0Yx0GqyZloTI43Qx5upoKv6pc3
9V1/emSyZ4SmrGLuJMHNFjwcEo5pfWtCthIM9gs07pdfSbUSYrEG3ViDFAtrdgih+uftFhkZaWHl
N9f7znpA3MkTDBaQcmsp7D7rfJc1WGlLtYZlXXr/xXGW0xdfHN+p1yJlay16EWdER/twe8LhZ8Hi
ckDEOkhtsM8GtBcN6OgpbAjkgP6JJ5abl1rs63Er6fiwhppSsukes8+/3e2eBn40WyMvrg9gnbRO
HRPInJEA0zkaZUcdskgLMMCML1jq5gNd1bNtWiIsrwQZs7zP9zswdsU/+fl+bGieJ3iT5FwKyzqd
0MGjCa8t1qwTzgaANybKF6oUppHPZHfx8WIF64CiVDfTl+h/cO8WEXJhYQtiX6yzBgRl2ESfwKlL
4PtICiNm9VdFyI/SXdXyN34WrSeL9eXN7vOxbJQWT5XCsvASDHDpwFNNoER9xJZVvL2SG+aJc3/R
ombSVatCvsf1qlYJpDfPd0+7p4fnzYdV4BvzAGJkAcD/FhYMbjPNqlOcI0k0xqiDZB1heA1kBtQh
L8JHZyatiF+Xr9ULbGSQ4MOpzADW+Akcvcf/O15JWJxHn00OlPMuYasHjw70prcEoCjhNjGDlROn
7luoB1yIYxvibJae1c83u9+eS9UBLfXinJZrkrNUWNrahYCUXB6Qm1GOdJpmoinT4FVd1P1+GL39
fR6eVnLbTUNuO0xMHuGn/A7+0VDdrwVI0wjm8cpWcHd5JLD1MR1LIyMs68CcXOCHephagkZ5m9wM
elH88t3wML+YpuAuojXaQDMGC7PxQnSx8KAIDl9hAJWtonKOEBEY55fdbvVwPsE9e+GqlrjxRd7u
KWZmDWVjRKT2Sk2kSumQuygkWhmCV3OBusR7rPGqNGflRZeu7Ac/1RNQHl7V8jWs4q3hsy7T/mZ3
rJAbwaNjDHtRjA7og2IlbQYs5wLJzBDjjberNtNplHr6RshF3t5MrK0/ff+2eSeyA/MnMEUiU4lD
abzdwXVaSUltMughv+adyDMxavFveEP8TYM1Hutn+t198xpt5hzoT2EBvmHqB/Wr8QRsSwCQzvDW
8swvjNVO05wM105v1AtpKYHb2xPdgp+/3j99GKogJMaJ+Hgbz/g/RakFnaORXaaeYDty6EzJDTEA
hSR4k19gjflPak7GnsB3awnXjYPTS/VXsSZOsHIQbHGM37wJ7yYdznRJ3+VgrQEHpEtRYYm5QKLL
UoMHfqBMGRDPRTgcxz5hEeHJXFpF11e544e3B16rca5rfzzBdCT5NYlbmjqKjDgcjg0eoNwppogF
CENkWJTb1QPVMqxvrrQK7MBi87wZnnq8/Lhk8ceSO/BNrsttkYQEEbyMHUBY7BakoLwFlrByS6xB
wtgYX49a4yDJKbr58elVvRzeWuNwTL2tAhrceJ6zdXh1AlYFGYAYEYAiDS6RZEIEt+y1AhqNX6VB
zg4fyikJ86/Pd08zAgFeGnyJMsRpwEa0MCg7m/CWFkwbJYBFnsfIF6p9Pkw9v2zsCq5uDlncL/Hd
2xpUx5yiZ4DJhMVNaQjv0NR0QdHolRMy8PhXgepJuKta/MZpg2Uudvru/tcqyz82UY8nzyTCYCDS
AZbG+zUARzsBKgMAKWgJkrQL8lVyBPcnqDvhQbUmcSMba7qZqBrflCz9MYgjyo03FDkcYIfwwJCc
zACEjrGjJnPPRFIjQ8Zsm1SjLOYfGvMPK1bLD8/3v+7u3++/kcO1MRhdLg6ZjaBArOwEmFK8NgZs
KEWaMtg5WXtPk76IamIxzYkYXP1StRxpG9teYhkqb4YQv/8Rr4Mb4azQqhC7SJJV0OCWSGRGMYBk
4fx55PAyysNBhC/4shDiqSaE2Qu18ANrCb+kSnrT379/fPhS3cGq+L97O7LdtnHgu79CLwUSYGWI
NxUgDzoow7XdBInT7j4ZjiWnRn0UtoO0f78zlA9JluwUG6weglgaDYcUyTk4B7AOChxPRBrdDAWI
M1xqEAoDYjwSRsDx38X7drgb9ubd0wrVso7qaqGqn+tZMeisfY+/7eq08phNos2wyp1Rias0aF8M
szlorAktKKxMk8RMXqhF8c7VeV+mpWxgm5WD3qArfl3/Dit0Mp58z44ZdtDmIowPMiW6PWEJUhna
Qn7MBS5rCJGEB3H9QUsBVYmEKauZ1VNJagzjttYGzgyMBSNc5OkzdRx6Chh66GMcCEwV4CtYqhoG
lPqg/cCGcnFKW8zNE9o+LlMtaR3V8oRqPKq7Hy+zPGlpnvnQl9a900SRDkAvQ68O2KKB7iTElF8E
mGOotB98yG5dJOHceWIOUemkqutkNdXudj0+Rjopunel1dxLgBERNxQCPc4U7ORe6LuJSZJYgozC
ydlM9gW0FapOd3XlnRxnPXWLvofH3YRLGcYJsBWgJcFTWg9zGmGJTKV8TqlP5bvcV4r4G2wi3Xof
ROWloqYH00PJlfvlSzV9CKecY0p1aXNMcIVGQYIhsrGgBhlT/FFJgw6Nl0gmNQciivis1r5sT9fx
vzxdhrdLl2GtEUYGBhYpKqRoW7Z8FETBBM1UoEFgMfmLqzX3rGk+2MfHZepPUx/DzVRVJvLiGNqr
Zb65GEKDkAtXYsQQQz+3gAL1WEXGT7AoXyzPxu/XDWV2Ku+DapKeJA1cvrzCRxus0mxeie0Fzuez
BPa8wIOtlzEYShhV0IHxJNkILHz4Lk+DahvNtUGLUKXeUJ7W9EbQutpfKERvNrPn2XxnpbT+1tab
yQuY8ULpKnSyZloZN6RY8iiIQd4ToNYn5+WSU/xnCn6V4Eq9YbRmbylU2fnx6+iMWaxDYYC1ExRM
KIw+ylUgI6KgCDonaGheCMuz3lf1iLBMx2nJHbjJD4euUScaPNaZrzi0T5nA1HcYjOP5sL5CbVxF
YipMQGKPfKj5qkRIqQv+aU5ve/OEQ05WY/Sz1laPwbEMIg8oNbnzFQj9eFjHiStiLFjsaZFcSiiP
KJu2B3hUInMiT88yFOYuKc9fTKQxmaNqwHe1R3meFYlQygIVu5wgN5HGR3UlcYWIPEakimQUXNTE
o35z6oWoXyb3WdeQm1YdyTD1n90zGEXHdWtI2nmw2+yxHP01MccWi1WIQdAh7GuR7wckAvb8rqCd
XRMNVrD8YYn0VJ56b6hU8WMJh7fZsuDqnKfwBtlYEBCY0d0ZuLXgrh+BvOTHmMhDs0A2bMBFbGUy
VM0Sn07Tuuin3KSUmx6pzGtYBRSEzVi7wggrtoVuyBLpgtxJIhX66qIYv0N8JrypYiHSdYHSeLMx
tWc7t0HYTAP43u4ny7N7gqCstQZWZmKGCi3zQBOBCSGNkElMZCSS/+XYNH9W7imZ1vRUVjOK43n8
fHXwVOLIrZVV2YloWzOC1lSEzFDXeHjib7CGnmEE+AvjnPmSxt5lRbe/upTeZQ9R7kSNKUcLMTkx
WgIraq5dqIQ0MfJ4ifIR48gNDcefFGQo5XF64SsV8Z9hhjVh1lqM63ow9d+j9u6Sh+dpfrnIqwTG
xvcpV9z1NNZO1RjGyGHVcFi+ghkueCw+3F5/IOeMNlxNiKGlPpVn8OYh0NjmRa6p98cTTTDXL5aY
ge/lwaoKUK+A78TiAH0rG85+ixhbLfNrm62X47kD0tZsuvfGe3xdLGBEboDUaDwHXXIxTjPn+bez
2n7P1s7P9QolmmzjbMfrl8wme9p+n232D25sF7fjzY/RdLUe/ZylN06eBDkvyTGawN9tduN4xZub
bGv9Inf3yw1fQu/9N/Two9ArGAHbHlZAmC2z2u4oJvWftdn6OnAespfS+D4A1N1y/ttBnwB8spo6
B4P4jTNcbcfzWxukNHDW2WaWZsvtLWyhbX8AUtina2fzBmsjS0er1+0IaHtd2gxe0GJ66+u2HFxR
+um69W09246f5xngwPYPmEmbdpw3eLjNlrcU9jKAB6THlkib5bcK7dx6vSsPbhXbQkRXPhDUcloP
ptO9++IM/7k3TsP1tfswfAr6rdvj1QS6e9yKOg5GneFU22zRP6oOmGglewg6s4nfzl0H0I1NW5y/
sWmARdB4F+YFGxLG3b7alVJ9geu2N2h9fnQ+d4fOS7a0XCuFV9IqNVTIZtCr3P8rS68RVEnEun9x
/8iB6TROU/i5cYAyLKdS+CLXrZ6tNecEeMe5W06ahkP3WoOg37+LnPPj5YHMP9iDXo3TxWx53QjN
aK/1OAyintN5Ch7iZrQwCmTQetzCp3UuXES11R60PEA1aKnX+9MB+zoY2c4FQ3OWCKD3W/aM4ZoD
+3bjGICuNmiNRnEwDC51zYcFDqDdQdAxF2AFhS82GvW7X3omhqnTeFE0jCHWofl7eB4npaBgIOjT
l250F58nQQj4uAu7HTgYf9IMqQlO8d0CW2QLTCnXfPHen+wHw7th0Hcuzpm27uSgfzkwYV83pdmQ
z4IDKOnA7tX6F1BLAwQUAAIACABAYb1INcfwT0lCAABAfgEAIgAcAER1bXBSZW5kZXJUcmVlLTY5
ODg2LWNyYXNoLWxvZy50eHRVVAkAA4g+S1eIPktXdXgLAAEE9QEAAAQUAAAA7F1rc9s4sv18+Svw
YSsrJ6FNAHyAKl+nJEqa8YxfZdnO1J1KsUASsrmRRC1F+fHvb4PUg6Kk2HSc3akJVClZIcDu0w2g
uw/IIi/SJBTTaROtfzqz0eRSjCORXqVCoD9tlzH7i3bBs7tqV/gc3CTD2UhMD27OT65PuwfvD9bP
144jMc7iQSzS5m4t2o1Ip3Eyrir49OmT5iWRQFdPE7He+AezddtEjTOexfdiD/CloAhdVIy6eMru
kjFYwSwDrLgU00kynsbBcE3c9A79SSzyRbueihQdd6o4LANrWodn4uAqHlWAEAPbumHpxEWYNA27
Sdx9wijSDccwtPM+2mbbKQ8RNP2BsLEP/yzUwGYPO5juAcRJkmYbZ2GstcbJ+GmUzKbo+rqEsUOx
ja22oTtWy9Vxx/Z028au7tlO2+l1nFbb6miaJpGj1gP/KlA/HocCtZMkayLqGoaBpiJMxtFU07yU
T+9EhK7uUsGjlXYbod7VCfqcpF+H8TTLf4Crim6a1n0MxSQDvOsj1f3D89utjt/yvG6/jxr941/6
3V9u9kr95fAuh+v37uWZf3x20zo5hpM6nUt5Fs+Q8WjMP0HAo0CIgabdnKJLcQsipuhM8BT6LNqa
mq4fIU0K9P2r7h9XG7N2Lgwbpmsx+KGvDnD4Aof8iZDt2L9/Qan+eJA+PKL+6f9655+3THjwbO4E
ZDSbqBNPJzwL79C/Z2IGfgiT0T6fTIZif8TjsZ4V7jKKqY12f/6nsNjEA4MazDCpYSMDfUAOMV2X
2di24cvUMHRdqfiN3/N+mMaTzEtSsSYot83iDuamQPej7jhLn66S1QkgmlJTI/XkMSeKBEe/9b1m
87fjKzmUzaZ4FOEsE4386M3p+49FOyzMLPH4cNhL+Ui83wONBDON1tRouMwMC4nH40ykk1TAd0Ur
6LoFLd38GIe1vgAhj/QzWMeLA7/1z4N/iTDL8ZgQAjSzHiDMLOwahTBxz4czvgCxoaufzNJQ5OEM
Fts0e7fEcAPniY/o81Wv2TyDBRpdZOnhXMh8nRy9yxEyQ7NqAySw2HNpkzQZxEMRdb8N9CLvFo9v
LwWfJuO3g++amr2G/rMIVrDRJvowiLDhBmjeTyo7hXVULLgl7v++YQ4E8K3Q9u+aDO9pTk2rQyEM
trJ6McCwapPhMJ/uc0OPxxCIh1Gj0nWLScsenfPTzykAEWl+arlpaVVHZDweTvNVQTGBwF1BsB9O
Jk1sQ7pitU0bkOglptWxaStwG+/C7bh7mlt3IgqLhlXc3aEYQdWxDD/F0WeR51PGZAt4cyk5NooB
GzbqYAtcyzTK2H69Oj0pJF/OxuNSdLyAggtmf9HWGkeLbNW9B/Ur1GvdcrBUVlpVsYUvTRPw4pp4
qQjMl+DlUAONb9vDJPy6BNTIATlkFyBiACBS14G2RV8LaJojct1dgFzpIVoXkAMCnwc0R/CZxxng
6SXpScJL0cDjIRRzUPTmM3C+nOkOoMSwAKhZCyhzeBDZ60A7STiT81k6S0IdJ1D/P/XicSwry2+C
I+58nq3LyOFZlAE8qy68kA4Q1M36fZxmMz5E2d1s/BVlyZthNp3dkIkcersOZC5YyGyCdmhsNuF/
4dezHF4+7zA1UGO9UzGarnSXU1e36+Dduge5P+QUg8lWinJ3wL2i9mwwEGnhEncrJOApAInVg8SF
5YoqpGLuvhwQJvYCUXFqsTKxA3jcWnlARDS0S7GrPwvSuY0Shpw7URz11nBFyQxqUInDojKXVk/J
wZgm2dOIUS8pmUFgWyswl88h2ej5Kx9HeXlcxogal5v4bAvqGFIr0EfEMonBkf7nvOe61ta0I4bi
FlK9TItjqMJlAq9Abn6Rw8dg+J6RsT8aNYkFA0rWYr/XOxPZA5DVTYzOYDBgAxhShiMgiral/3nW
v7488ZZgcoYxhqDhP8TZ3eq4TJ1ztc1kPHxqhXIPovnFD2Ri8OPxfQIsGyoQVyO0LhqbYfTdSGQs
pUQjZl3twOme017o2I7hS05SNGLV1DuwTBPGwP+/M+KsqfaGMcRU3xvy6TQOie1Hc1V+dXJ3rzEt
/D9JYgm4d3/frY4IEHyN2LXAYUZNTl8ADrPcPQtftKZP47B78Xu4iesC277XWxN18TullUOFdG+W
yo0t/+aUP66b45OCUhGnnrMJFiJEkPiHSTLJSxlZH4tHiKcLybmaxn0SR0XFCgFC/iePpQ5Mq7UY
LldlL5mNI55v6GxqDEzThpjp9Vppyp9acNJTbzbObZSLBKaLW9eCiEfbLQBaM0jS0Tw1Uo0adUUH
LkOns2EWwwmPIu3Pc19ZMGFEo7iuYDfg2wT7C8llD1NSz8MO4waGOer1Lq/PTs7PL/zjvu+1Tk6O
z37xz6+v/Ktzv+X3z68vva7hX3Qve+eXp37v+sy7Oj4/833pLUejtJ5WmwcsKrTOxicwFp2ksGoq
96oIhD9q1pWIg0FZIvyRs5wAOKumKDeIGCoL6k9EGA/iMC80bY3aL9yFm+8UOq4ThfkunAn0Aw65
cqCcmkIcEUQrIYZpmVijrK4QqBZKQjCzmEbdmkK4EZWQYEocRzONekIiio0VEuo4EokJS2MYB9HT
MNqHrzjYJUSOlGtiR1ihi6YZT+U+JF5uqOJvbqhKDfNGfcTH/Fak+cYqHJ8+TTMx8r9C0hLDdQjl
OSKiiEKWRF+F5L8QoWR+yPdUS7K3WLCG3ogcYgvkL/r7o9vUL/Z5ZTFFltaQZn14wIc4rAYZWP6d
909FNkvHa0Dn0iaFzjVxawuCcEZhwHM3+w//XkLEdAmR/vUhmn99iNZfH6LdLK+kSrVXFP21bQgj
MxJoxOUSmN76Wcon2+C/QBAQrMFSkFxEVuXCxEvyiNxhKuWRvkjv41CcgtSLJI8zBJPK1YeXiKVO
sJmeMHVw5cLBG+Sn9Y3+5ysMDEkBInG1eG8U47mH/DLrlCqLap1WN+WrsKshj2IcCJeAG876xXzy
fXl1q6giqGnl2921JmxgWDD95x39IImeclE4312uJYkPImclaZlTHDvf8K25ikSEqoJWa8h5zTI3
mVzmUzF64HHmT+NbyarKqyT88GEfb8+a5TEwTGpHUIZPswgqSB8yZXYXT+d5p9mcDoWY+FBVNlYd
wrs0GSfNZjRL88E9HCbjWyS/PpbE5G2HePgR4cUlV2N4hI7KO9dW3euEIhJmaOcU4lnEL4ElAX2n
ZRWbsMNI3WuRIgqgfEDBiA+BgsxNKMGajWMoWnxJTw6XneRVoTg8nQFbOXpXhvdaI3L0rlX3uiWA
N8xoBV7Ox+txFg97fDgV/3ErPqIgSYbviss2dS9xiogPAndly6+CT2A4Qg5l3a34r4yIQytB9SVG
BAGrGgEzNCw2APoLc/bm2xhOTfnCEJis5OfbE1d8WvKEVFkQfdSo4Hi/19g7kktWrtZ5xiqQEJdV
rgG+BAoLrTeBkt/IcCH3VRrfI25+O0LlouALDCGBRYqtkdKU8OdRzZ+kyePTYSnizUDsYQED9H4f
4o/f5cD3MoQudxxMzPKLjm+TtDF+s6QtL+S9ZdJmUPh+vuqhC56CT8QQ/SqGk9V9TPUTOqY2JPSJ
HIA7P7yXYfRV+ZwOnNC1ytEnGUexDDv+PU9jeRNLEaR3hLPV0VERyYpLU7UztStEYBR3PICP5EXO
k0Ruq8Fvb4EIPPd0PJoM1zcI83P6YTIR0QkfBRE/lCEdwVxbXa/f6FJM0FKXzfCbxSNRbJ0ebjbC
OPHoyQ+lD743dpeKnaN5kDXq1gQmxyZneTJ7gRMPV/2Wx9t8Kkrp+DBvPQHzjhrLn38hPzWb/xzm
Q/nPxt5H9DeyxwCDjrbM8Bzvu7+dqe/+YmuPGHUrWlh6dCD+BuOS36TB6hbBYD7hZpHxd5m/3fLc
38yoXbC6oWUPllEuT6dFNr2AISgU9pK0uIr1Oc7uZIGyUivSFRqJcI2NEad2eeuGVBi70dzlv4s0
34ZSJS9ebbN26epGDmO71URxdMq/Cnl3dOuex0OZt19gc7P5D99oNiExwrwA1g4VWtEky1KzdlkK
IK2oSrf9xcU9edwv9hf9h+JOwDwPH8k+IZh0+EPMezefc28u911R61iV2+Ze4iZ7EK55aDC/LLn4
/WM8UY4DeWUux/zHqDpacABJmdamF3jMrNy496zHLMzk/Rwr9At/He5QspzDduWWvOcHJ7SsSBQL
bYPqLXkLtljl1roXCHYMhgvBD9ngaqdswtz8brg34kTW23Ei+205kas4keJEihMpTqQ4keJEihMp
TqQ4keJEihMpTvQTcyJsKFKkSJEiRYoUKVKkSJEiRYoUKVKkSJEiRYoU/cykCCtSpEiRIkWKFClS
pEiRIkWKFClSpEiRIkWKFP3MpIgoUqRIkSJFihQpUqRIkSJFihQpUqRIkSJFihT9zKSIKlKkSJEi
RYoUKVKkSJEiRYoUKVKkSJEiRYoU/cykyFx76rLX68tple1P0vieZ+IVpIgOiqfJDkWYvfJR0Tsd
Sd7uybv0jZ+8iy35YPjeL7veRqrYpWKXil0qdqnYpWKXil0+U2oKMzLmrweGlNpsLnIqGDebv822
sWotDnR4xou60DXqEkhLUMLMrQqLjL94NdSqQqR2bfoY2txwCw+GIDQTc0uWz14uhM9fa/URhXc8
nUeIb5NEqzZJDG03+m6S+DojFlTwlWe/mvCByc5LCN/rcH2D1r1OoCJvirw9yzls5KVcvgwWuEfv
6uRb3KOOoyH+Go50dC5dBjs3Jx0vl2EOOGF2UETUNm02G3ycjJ9GyWyKxnwkphMeij2ZJR5EepW0
4jQP7cWL7DChNckFqMODiKzUDZdyG8tjF2kSCkidonijg12zAJc65Butl/JuxVguGLFTzUc0G8u3
qcAYwvzMk4Zr16w9QKshYNYvxU9SAcW+6CXpL4V+mZVepNx06yZ+l7nYmXsVppdkjqNJPJy/yT4/
kr9QfvFy+jx19vlA5IVN/kLX2XD5LpO6VYAZYOKwkuSLIR8vMRzP64CcLa76nEAxdBLfi6gAVry5
kNR+MYXJB8ZiPu3WvVtv2SGV8oSy2pUDrEcIBq+thxxq1K0PXlcP1c/IP6weqpke/xb1EPmp6yH6
n6uHzB9VD1k/sB6y36wect6uHmJvXA85z9dBag9W7cGqPVi1B6v2YNUerNqDVXuwag9W7cGqPVi1
B/tqzsEU51CcQ3EOxTkU51CcQ3EOxTkU51CcQ3EOxTl+IOdwFedQnENxDsU5FOdQnENxDsU5FOdQ
nENxDsU5fhznIIbiHIpzKM6hOIfiHIpzKM6hOIfiHIpzKM6hOMcP5BxYcQ7FORTnUJxDcQ7FORTn
UJxDcQ7FORTnUJzjB3IOojiH4hyKcyjOoTiH4hyKcyjOoTiH4hyKcyjO8UOf4xkWz/FED3F2h/5g
9pxuoPxxgqhhm3oQZ3tNDaGUPzbR0p9GEPAoEGIADUG5AeMBherUgNWVhrvOiJYNEqnDccTwgEkl
UVw+ZfGBhumyATtzTU7eEEyq2oH45GdsbQAlKGXVFmNAJMFK3R2WYGMHLIw3GohpS0swqba41HBk
A602YGMgvYLNNe0Q7F1GciVWuSGPRYPcEpjtlZbiEaooHQwrSrBBDJg+YUq2jQnI0k6S2xiCM/Iu
rpv5ZCJaN02TFHlJJIojqzNt7QoCOzqbjQKRFo3Y1DStHY95+oSOR/xWTOW0qXwMpIOQQeWDPnRm
o8mlGEcivUoFTLxPnz7tocO22+v2jHZPbxNi69Sw4ZdpujrGvW7X9my7jc0jdHCTDGcjMT24OT+5
Pu0evD9Yl7ZAYTwCb+JCVjWAonIQpiH6AAvpswhk/LgS06x/F4/mq6thAJqe4bm9HvV0Suy2Tlum
o7OW5eme47U67bZlYsy2odkltYKLbeIKIiv3TkXCbDJJ0qwMrYVd7Lkm1p0eAXw92tLb3W5XN1u0
a3Ut0ul0ey+AVha8hi4y+QY6m0CMkRN3Zwxu2Ab5ACfBn328T60PEqlHTNNwme65FjiReFhvO56l
m66BmUNtkzlkG9J10fuDlI/EA1RZBzcCYgNkm4NWpU/ZAAb/NgwAjVwOe8kAcMbvcbYVuNlrY6sL
cxG+XBh9z9VbXdLVqeu6nV6HWIS624AXIrcDLtrKQHlIwg2gwmDuJtCdLmZGr2Wa3bZuYxfwWeDn
dhuDx9vMpMzFJu2wHUh3+3beWMIK0TSiVayYctMeDIJNp56IWx4+bQfc67bAi57e9VgHABNYWLYJ
89h0XbPtWF7Pc3a7thD8LQcXPcrQBRRzG9DhYFRxc/9pNMmS0aWQ60KkqIH35UkYQFNYcl3qWroN
pb9OPQtiU6dFwNWGjb2eYbQtDKD7ebI+OImDFALjwUXxfqPeAuz0YK5iWjJgs3UBoNSp0rJmHWd8
07qAVq07E5kU1X3MxFh6rGxeG3stu0VN3XIhjlCnZ+ptr93Wu06HtUyDOW3W2zSvhLwqvAS92qQV
GGUtYBvYslfYlwdZyBhgh8gE1Sa16D7Zp4Cy47q2YxOs29RhOmW4rUNYbuuWwaxu13Tsti2jyWya
ylB3IE8vKWOwrFhVGWPBAFL4IC+1kuBf4X5rEWlt0wGdDngEW1YH/GESnXbMLsxWF1Zbz3I6puNg
x/FKOitStHVNdEO9a4DycG2c7vN0ihosHx34ltOPtrtOm0LEJx2IoxA49TZ1urpHCWlR4pjMs745
Pq0wFMP8QeLbl06pa6F/e7eiTVszwAq3WGWJSrLoi1BWFp8LgogaZm4doWyfGP9P3JVsx3Uj2T2/
wkttwMY8LDGq1G231U5b7W2OUh5TTB2Scpfq6+vi5YiXyGS2S6e7FsVnAgYigEDEvYEAfc+hYtSR
cV0o0QHWJzKHx3XBEBN8sokZbHC56YQ1E/XVaPuM1Fl11NF0UAc7mtbTj4+b55f1/Kfl83PFPdv/
/OTeaoA3oAzP2WYpNFExVc+GkOecckQFz5lNipoSWqu5Pm4ropUdEa0ZHDE6x7e///rty/Joycba
ezGcIG9LiAUnCKAGEMvEDA9WAuHWU6FzsiLqq3ZUo8JbLNun9fy5v7a/LJ83X5/m8NznoozUsB01
HFa6YXp1xsny6c81hrwvk/wnFuUZ68wZrabDqgfbf9foIotxSWTYjYIni04QKw1CuDIO+KgwrvKr
Gh7me+2s7OW50HHX2qrtZh21Z2rkrf9j+QSsvYGm4uCljdE008iJ5xy+yFAHqOw1Cdrx5CiNObCr
uu0H7Yu7b23ERXg5F5dbOhJ3/rD5uvgDyCfWjwFVcSvutbmX9ZjvPqFD9jrLANjqhfdEaJyR4KIg
RTPsWinB8nB9f3YT9HXYt9614rKeDtslh1m+fVcOx5fLwYq8iIExj/Nb4R+llniaGSk2KA0TKtLK
q1IOfvLdzzcckcPkrcizjsiC2RHYWkxfpovly3L+snl6nm8h4mAuwmkArupXs/JMGp8J+JNCAEMQ
8TxTkkTxgIhwrOwmv1ozpmk/1WXkeNbtrtXA9dSa7b1r/PDT5P3D14/rxxHtYQzq6ErLYB/FRkkY
TwJhwicA85SJEgDp1PocpL+6Mz9/WT6+/bEv/Lb7eue7+rK0+oCyn+vjxqdjgzk/Puy1qKd5r04C
6eUGBKkIVhDY4bMc9Q7RgkccEJOjt39ZnW1bK7Dr2JWcj6P1mflWN7RzRNsTUuEhKDlOCOXAYsEr
YhGDQPQAVAJk1yr89ROya2xEl4tlR/SlHK317+/jzn3DBR1cp/fSK4FgwAqwnJBaAToyQ6hkMjiV
IlX8llNwHL0v+LG9kd1OO17ULsY87zT2vHsEzn+cwmo4Z/fmnlc/uv0aciWiok9FmASTEhoWFISN
xEVFtUGbUvEWfXozXvCsnZ6NjggV5zo6rkc6+vr/k1/e//BGHXZH20KjMobk5ABLZAGxMpSRmAXl
QLtA2ukWbfZj9zXYtzZSz2eLc6kXQp1Rwzp13Dyu1h9392mVPzE5xLf6UVF6KiWZYkANOXxTAan1
HEE6Sk/BXYpWRlw9E51ZLgDY846NVgvdgYgLN9/72V1S+XFLzfZOVjJeYVQFippRFRkIoTYVakTq
cV6AFlUGSGeZZxZPac92vH+7MHIrmust+HS6D8azf9RUAd3LJKqX5KlYAeSKcIxILMDIiJNFkcit
VsI4FlRp4XQzSjP/Undg59LYw/zPn09mr9sKpMKz0pHwALcB0IwNlgILwgrMOzNPwwjMn4zRzL2S
6mzuKRVmvy1///yAHdhPzvUQIphy2jIYFKMBiJYlBPBsK2bHdywUgXCk/Okwd81Us1ln/oUZef/j
f/Np+jBBHB/o6NaXwpzvWT2yrhSbEmMEYAiMlEpDvAoF+8IQil0QOd/kgDpz9U2+0/FUt5noELfZ
eSh+/7Sp4GS5GJDiQbtjKsQlo0sFSDAuANQEq/MOsTlb0CibJOgpvUWx7kR91bpdW+U6YXsmpvPR
xg0e7sN7X45hm93LezW4KPysgYMzw2RBDCw1namTBdbQmeRopIbmTohys6vFVFdcLVobJVRPCTVb
jghfzwlm/95Szn6HPhIna9grOWRGtJYuceeJ5pLCNcDdWgR6IpNQIrlEnc+36LOfoa/PvrXVZ9ax
OE3daFP+9m4fNutu8BrHFa8+1jmfvOAK2DXCq2mbcYQKbK44JmLiXKrrULau8no+rNDNjPUoTb/r
sb3RVfNz4D4zwo72brF8/uNl8+X5RGF3Lwbzc0NcKTkzhBVOVACGF8YbYpl2JHlpQ2YGXNDdxEa2
E+1lrR0u8JHzjo1ithOOZnZuR24jrYcLcAjTbOaAydyQeNA8R5FZIMpXQMwVB5IvBW4ku5ru5p77
75d4OJfngvpn/Vrt551tdWI6opk9Q/O/Tmp0HsimUQO3h38smQZGrFAApcMXBUEDJNX10owKLb+7
QUOOCz7o18ldq9Y5Pp0tmFotzzC4/y0i4A0kbQh6268ai7mWCmeBZFqhgK1HttJq6qSH/1HGxnwr
7MYkl5E2GhvhF/w8dzxbivloo7Z3e39/AZZTEoEa/8L2o2aPsuLcwtMAMxkwNgCaILwkzgbjPCI4
y68baB38stS1tRF75c5xKH652gMeSP558xifvn152Rzy7pRqdi+26bxsrDPSJlIcXIWIOFBBgLc5
moqAy2DZqS4OPR/5VLA5SNKZYHM6XexRYNk8vvyy/Lh+fnn6dshBCDnIFLNkyUZeL10rl4Stw5mB
vYOPxUh11Ib/35l5k0w6F7vVerrsaD1bjCLWj9PHjx4w69vzenBzZhtw68+asmAwJJMliUqzen9X
QR8sKltwTy64cSJ+d/VPRbqQuznp0SitmT5XWnN2jp0m08fFbPP3zuVEyMUHU2kpsw4oA27eBQ6r
LAVAlwdjgr4RNe0muYibdu2tCpz3VBgjjT3pen7B4tarhOfTBM42XA2hiuEMVR5hCoMXU0HATyd4
AhcQhB31Md0UhHc3e5POdKdKnXUb6Tbt6CbHulX3kr4uX5pLWe29K0kRri30YDLBOWjAiuKlBla3
OqRbvXEd+7Jjq62t1LIntTLjtMGX5XL+6ZflfPPxcaiB3V7jV246YIddjlYpJjjPnESGcyXq7Wa9
JyJFYJOtyiKLm8hUd7oLGYRe11ZFZTsqOjramF+Wn8FePqyX/3NERluu6Fx1ls5rrh0jgSacHBlA
ng0Dp4LzVkWmqJS4RbXzaS65w3G/VqkOB5nrxcHvz79+eT4ycEntNodufWK2OKKH/TFVHQu6oaiE
oUWulNItBT8dpxWgk8WcWzrOktVc/tf1YCkVYEGOmgpwmWYXNciOLapeKzLimYnEwUHoJCm7MU9W
9/q3d5fN/bd3d614nWBple1l9j6ckk8FriaqAtuPCqBMFNhxS0zkASspFDSA/8lWWoNwCqRob6ef
V9lnQz7njnfWfWpXI2ue/rnafH1c7BJ8Wzu21t1zNlzrUpzTTA3RvoBsGuthzDi2SmunU6Vxxl0P
fR/KYfgLsp/0aBSYOtpRYDY+ju/mx6gKAzaD/dQfgxmLVLIIRCvJ6uJrWE4IcJ84honiZJSbilhO
57iQvz/p0Woxm3e0mMtRYvLLw/RltXk6FOTpIScps5DUgCwaVksxNMSPWH3JLMi/V5FKei0n2Q7a
irU4T4zN53RcQvPTcrGeRmCsp83DZKg4POTFmLpnduBAhmuuNPGGZbhyD1dec4c+eE6tUyy6my4a
zqfqr/R5v7tWh47ZL1eqwxsOOxqnT7N9pGKsup7hxmrng6CDQGTIxNhKI0TgxHtdaQR32gqaxCs3
Vv8rnnuU5YK3OrTftRqeY74F527v5j8vYYlP04N5aX1fi31oTtZnBd18LVeUXte70kx4sIpnTTPL
vPXzzUB37WznCGGhnBqd1w/rxXLz62bzMADPHbYBxbwHnRyAZ0g5WIHIY8EwAM/gccCEVKY4upLb
VK6TttPx+0t42qPRYNnJ+SyWYuxxAO/KZH/vvE3KRa7hCwsAzFAtxyjiVLQwFGe8ZQaAXIvXysnK
5CKaLJNWTsF6ch5uFPZXEpuX9eqEzAmAry0aZtIA6gBtcTj15D2xioLTeVBMYZUq3F296jgZ91Su
Je+g9iWXy4Ov2zEBdrhtUAPhUEOhTlSRKU+yF3AjPoNw2OhJyWAhMlkjaWotcTRaK4mediRx/HDv
8GW+l0Epdy+33FthyxynvMKLWhQoJQFmo4TijNsYrc1DEcT5whyGa4XolL8thTicyenXYw4AHr0u
AtcU/D8QwBoLMwLwcdJRwpU02gTr1RCvThbhOMZdO0tH/1mt/zzzgvvipnoW4UMGoz7WTynhAVCC
J0ArsqZsGXGghgQBtLjEYo76X62fOu1x18q77CgxHR/Hh83H9ePztmLhlCzBrpMBfgHecgmeRFkS
SjEkZZZ80VoCPt4SmIbxX/Xbp1L0O5/2aPWcLzp6rvjeTv79fX47KtfBpgiF8ENCjLXUKwNVKg9/
qVigwsForflO5TrH2Vuhe8Y9V3ycZMhwlJYNNzL1Zw06PBThpFKExYSNcTwSCzgDNm541IGVoMz3
C6g+X8CdudFn4c5xGn65GOG05+V8Dfp4PLb1jFgYVKKF6KBFfTgBQ9MAnY4ZX4xzQEL+mj9txmyF
6lRR4JezkaOf1Zewz4fYXt2p00wlRuE/Y00jBrA475knLDCnko+ZeXZNptMhW5FmvXVauNE6NX/B
4Q03lt+rbWapeO9UNJkor6rplgSPkmoxTSiBG9jGUA1/UbLTkVvJFh3JlmrayascjOfnyZE6aESB
Wtsw/BzuRZlRMdWSQ1NPFncwUw1KrIGZvEXs4t+xsPIoyYXSpkmPXkC/WUfpFT2rs3nYPE2+Pc5r
qs/tgIsboItjiP08GAK8V59TUIfwlz0xQRSnXKHS5e+e3TzIcykk7JobXVf03E+uKGWnKez306dn
MIfTBPZwaRqLBLpFZGfAFEKaWrICJgV3CleZk6cq/T9msE+lvmu1O9/eFWez8faWXcrxhzem4ql7
U4P49qtGC2mSSQm03VE4KJcosYkDU3tw+cQQHl8p7jyMf2G79s13rZjznuzz/XZ9fTxgMF4TZ6re
xhtYXmQJ5427QgKlmiQeBeWwUETzrmM4DDSaftGbfjVaOjjfr0/rl2+f1j+82R4MpTDrUIaS6nOi
ehwcXGiuj85qcSxIOTcsRA4ndn3VBqr2qplMdhL87d3F2v1de6uflB39pBy7u0EIHAU11G2pag8u
FMW0gfnrylZKqvfwmiFWKOe51TIX+5c127aNRFU9UcexdfH4/Lw4wHKj9xHD5Qhs4zhJFDYscHCJ
4wGGIUxl31YDt1+LGCfjjsRadsQy4/KMt5PJ4YJk6zHBSHwtApUywlCZRby3iPxF5hyEiyGF684E
I14o+ZlMWgmnpiPhjI6TR81T6TeMqj2jQaB34M2G5IhDL7iqpVSgVlKzLKKWTJarwbYZuRVt3jE/
IVWnwPO3l/XDQC/YNq0ySCYstTFEgMBUGNA5ZwRRFajA4LQnCQOV4ebMbp3gSnK3Nt+1cuqO8PUy
Q5yua81Jvzw8H9nqflnr+yhfq5Y5lZoIAbYYihckGWekV6wYcRVdNQM3kslejJPsLOn58+Tr02pa
S37d9sWB27428JmxWAsHZaqS0SLqpS3+MVomGDW1Hvo6MdiPfCHPuW9upe5Uwq4kl+OExDZKLA9v
5vYGW59KbMswg1c2CBqIFabiViBY67MgslhJOUsuyXxDGeZoikZY1UmMr5QQh1TZdP7pwMut5tsq
iOh5TuCODsZKbSHWggoHl3yOOEgi6K5UJ2O1MojO6VFSHcoEPn/5dFid+jpXYxrwI5KGRz5YEhLw
P+KpAIyWPolIR/cxhxHaiXuWr+RsZF9p/fyHf5qtX54OFwN68H81MNJUikwuEO4j4ESwnASFkwxr
Q+QIiadw/VJgNPqlQp6m00iLVUeL2fkTvOnT/NPwNqdWA9JdVSAdHhFbi0jCSHTB1wsuWSuXM5G1
IlCmZJ133w/cHwS5FOF3za2SnWq7ldGrUXj6r6/Tp5d/7JLXQLv19kzjww1PYWpC03uS4FQR6E1N
hgAC0qF0R0e3vca7rOVx8L7kx/ZGdLPoWJnlbBwcavVn2mxzT4PgnG3xurecM+4oNsXXCmREsBC4
JjEq4yOzSabbqv33M1x5PFWbG+ldp/So1vXsnxs+Ab4//An6dIAqNamhg7AZIIq7WkUbgRZtff0v
cGDxm6Ryk1Q9G6aVQLKOBNNx2cpBpyHM/veP/j/3bwyAt+4RrqrvogLwldW/KjFkW3gtKFJa4h9Z
LpAtqyhetfQ69uUAW1tb+TtlNyt3hlv2GdzzbLCokhlRSDQUkI/5SJxBVKOqqMic0lZcrcZvRm5F
67wzW00XY9zy4xSs4tNpckDeKz1kB+rHcDXqfQgMgglwBJFlgjfmktQMXEqqxCTC9/MgrTyXCoJO
+9y1CnYO5HRlLhrUcKNcK4BZxZPbilYq6L3ZvuKK1DMDKEEAveu9UUAsrIDDJqyPD8qkTG++1R6m
uXKxPbS36nTeta+WjnbAZzm53db3bkCgSmyvLuvjCjAJWxkeTqpkBcTCOBK98EYmkCFPX93C1+63
2z53rcS6p4Ye51APT9kPHv7kVzuPWVhw2sP/mCyxIyzAHEX90xjg+IUVpnOR/9KD+WP7SAfT02Gc
D5w31e37TKUbrl6GgqAh7MYMgJNqlT5TxBZak/WaG5pcsSFfR9Rn47didtKWq+X8ALjelt8nn6ZP
y8XZ+8sYuAyA+yQGBkTqgU2dzKymL23yCKzlFbZ38/vLkQwn8te/UntWDOGolIcygtO/dvuG8aF0
NzgFSJaIqzdKghlJBn8VUmTKKcoMG2PG4yB37TyqM7kZwy2/fnr/MP022V/FjAoFvDE1rtabCmEB
FrMllsFCDY4cHIYBRbmpCK+d5oKxNn1aZc4twVHFzB7+//qujB9Hy+KB82Ul/BWNKFbPFoIT3JJ3
SsqsXgGLt9+2HGe/a+WzHaH/yduVdMltI+l7/Yo+9oUy9uWItVsz0rPaGvs6LxemlM+lKrkWTcu/
fiLATCZBIrPS7Xq+yFYSAgIkEHt8YVZn+ffbH4eS9DdkSIIkkhxTO4kNOF8oKcWgFIIOb1XEKsTI
ZdYsmJRfMBHParLlUUX5mokl5Ws2h1b6nxCmsbsQnGApgeiHfw1/CAGXzmC4S0iRFDAEIa45KzBt
m1B4MCPTLsns2dwX9M+3Y+YCpjKiQ0OD1qILogw1JoKNKJMGYeI8kJyk7pQG0zVQYMDhVdyFIwnn
ylmWmQ24k11je3yem/FYciTfPJySJKf5tJjTZg+5bWhdgEYeJSppxBHMrrIZ1HW0pspHiognQF/F
QTrP3LwywbN+A1wt38DulCDzXx/Y7NYnHolJlMBnFAisAVqepyCSGOdOKu0ZiebVYqyscemBtAbJ
u7F4EgXLgAe2v/uETq6TP4WVmx6VAzNKAbeKnmH9Gxi5EQzBrCIhhtkshawlwJkpZ2SZFlmjxL9d
3X3aT+RouRxSOAHaVMeS5CDe4YZYkkEU5KwpDSR5m2pKprNMl6dktfCQWUrFPK/R3z73T/f3T5/R
d8uL96L8d4deJor4WNHDByUIvWMN5uhK2gWjUdckCcTjCyxwnP8cIxwHVNRTSRrUq0VdfMYvEfcP
BVbie9HBi+JHjS7KniHSkdxFGQIIJAcqLAcTjwi4kSZSZjx5UScZZ385WpevGD8bVO96mY4DP67E
LB0l9uvnTx+/f1nfF38xlYO2jvG7TLhWIHc1GtY8GNIZgsAeDsxYFzWYieq6KrrTCufK504jqj2w
ZQEN/jgXwZ/7268oyXixmUTRIB3wQwoHLSRMYpYygG6LBbZOSdDFPIi4/CqSAZY+IxTgSb2Z3Xq5
GblZNaCIDuBcaAQW05yCIpQT8BOwx7FcWGgwmjLviGZRZO1AW/R/yqc0s68ugHONj6u9qVXjsKmN
mjmjvxQc4tGHw48FWDE6xMrxXQgE/SVSgsaMLp2cHLEGzEV7Mel2Om9N16ZxgFQ/h39C6JTHIwsu
SVkD4sKBp/usLSMayNMK1SPg7iZjbnYE6ykEm2xir3GYKklwHm1lHFJtVbOliKB6TVvoH+WqHULr
CLpSsueBDR+yRaLLxmTVaSy95+gDAk4Nmrg3oKzCBdLeXQ37MV3qAubHdFi9rTVrbaufbesi62Ys
Z6EZ7QiPR0g/Z3jHPNFRWRK01n+WdZ9nxMY07oYxc8ci5jMe/EjvV3dwwb70d1VuHZg9jsoA98Mj
tprELLucTUejjqA3+ezo5VO4mP2cZ3w2rNqN1UulndqDWMHkyIfN5/23/lTeAldcDrc8UEG0At1V
Cg2XhxPWeZ5IpyTwYy8tmKezdNPZZDUhK9kiRJ8p6Soy5t39p0+HGz4iMTgFFgNonIgXClqSwrCi
AAUUznlCQaEc/SPlXdN1Lpd6TUfOdmZaOzMNHIZZegzoXQYlYHG0IdeixCN8I2InwUnxTmQQiJJ5
CZZ/IvR10m8aA2f7aRyZY/raBJJyX4KHebXph8gKP+BY8aNXCMNeCOgWGNaE6sg7L1zogrQhWRoM
2BDXfKrjCmf48eFptYVt3zhs8OOFPLe//V2hF0ANsJMWJJwDjVdyNPo9WG0WLgIoUpokFhRokH/S
bz0dMSNdtUhfHU2Hr6svEzQYUip4iAT9PMIdsBgIgJNj0IdkQHEyBgSzVzPDYTLHbO1dY+0dPa79
02q7X91t+rnvx5AEb4t1WWaLkQgBd1IBvzbeZe49UJReyQqsKaiI79nSbICfRkC//eYZcwpOCJiS
U2B1Rfl02sH96gTBGiIHnNooEUHeSAWcDrS2PGN0s7lu6iVVgw7Wz7y9+7vdGEEXp/x6lqgKwoOs
4EyD2SVBdQyCdlRwMAeAmzt60cl7mrYmyi7vNKNknux+zPTaVRGBIeMLFHmMOgnMCQcdHf5UQw2C
zxEudTJJSlC1uM0vSLVhiZdiAstxNzXt/XJDTM9rmFbP2/39m6eDN8jh3yZ1NZQNOF2Dd12bHKzo
hFSoySKYs7OuA0sX7o9QzNrLSsd08jOMdzLipqa7cWS4Mqeje3/3bVKBivQyR1QkLHfGa/gQcGDh
wlvVYWaaBHvJBxXmh3Yyy029VON0yO3cX3A8HX/7+1D8DyooXCE4uCi/smcctGzglI4jNH6pHwdW
xICTRuYi6ELuqoNx+ThUdMu+ceWNnCubP63+L8CUD6s3azhLtwMephg8kxZphz+NY/DFmVPIwChm
z1msqiKRKqHhTDdcqVMW/sN8jR+w/A5xXn94v9r8+PH0vNqAWe0aG9iMHrfb37+s3sgRshdNy0h4
Mlp2TgdQyjDFzlAESg9MZ+3hRz2LoU/nqBffrBqL92Ou8Lv9Xb96cLef+klVHKXMDBAcIXiQ7Yja
jrghIG5SsB2cScTIVzpw/WrY0/0GJjhTMNIks9qmpUtdgFk5Txf7V0TddyisLtqvwFNLQGcxHHPw
EewOC3xBhSEGQ23xBSPkP0mH/lc8k0MSqy2tTINfwI/HL/dr//3LpzHDu3wwrY2QRrAuJlTmQ0CT
HdEUeaQCGFBIsY2ZMp1rRsTSVmdryudRzVPKpRDHUKaCj2KwRsowpIY4CswW7AuRtXBCWDjSF3Mu
G74DtjYNiVBKoXTTwFj1X+7vEGXtfoOdICeBlWSz8x7TPxAWNFvE9fCmk/DSSMBuGvyPmRjVSi8Y
GdXYen8r2trf+L5/e149rO6e4DaM/EIdAbC1y8DhQY0ASWOGGnXgnq6LhlNFjeJKsOb7nk86o2gZ
t2K79YmBuA8u/PeMc2RQRqhLoFujc5IDv+h8ADlhNU3WgvDSgf5VnGNCX7WxXb90/fFJFcXhFK4e
T9U7avA5S+6C9B2R2BdAgnFqEFyJEadYcJqIxC4d63HCm3ph2aCGLg429nE69oIYA8xHz4riA1MT
TFqwweDGgcxIBYIe/ipM8BKo1MRehxXRWOvMwW6MrHfXcPnBj7ujg2Jz//X7bn97sjmoOQCkkKBM
5FiOXbK2UuawGQrmJliWYEQ7YNzqDAzUdMqamu0ycsIFmYfxmxkzmFssbEoKUx9sxiCORFxOYeDe
pZwYlq0yeTnF5LJaHH5oq8OglS8j9ny32S7ROIbmNgPNXMC7xIObhJFRKnyLmg2ALBZ4Hqr2KbFI
tM/yJWF3JuAdDs+m5ApCl4obpnXPyF2vNr8+f63xitQBuVIVTzuwLqsI5krw5BBxVMGbB5FCLHc8
KkF0vCoI7mcrTY/w8Kymf0sb9O/GosPt/vHr6mkz5ifDtTt61ZyiIIF56EAguwNIM/oGtYyRMuei
iu20vXrOihxKGuRQvSooduXAP/SbCk+N8dGZL7W2OTuwfiOYO9xFsN4R1QrkAhomjMYzpSPzWWuS
9LpFUj++oe+321NS47GZS4hga2H6kMM6Bx4NXh+JOXMSbnTUiat20cBpuhkVuwYVmzHJ8h/vfl4k
MwmwnKS2sXMK60EctcDESeoSA7UggYFgkn6lZKbj6jXNm9bH3KyXnXvcM4ZuZcleGRJZmfdRC/iM
JlGDIF5gHWBSjrOECxCsAYTQlSBeOPlZsAV8OCN60yC6HzXSRT2DHAjm3hNqA5jZFg+fAlnkHGMd
FV7C0eNmEX4/X7YACzYywAQzu54tMYmwZnuq9SnFdIzRds5kbOkFehJYtK7zyjELNq2l1l2drlkK
ws9na+LjinBmW4T3/CgE3S+5OA+mQrAk2ApBIyI+RYOAyxGbBMQIzJuKBF8c3p9hfxJ7qHK/1XTU
W+iXyqAoPoxKcn7oHxBuB314UzTB41cgFoxHzMCLAXE3TAwd9oLoqALt1RNhbLjqADeWOQOzvBxY
bUssmzngj2Nfnc/9/st2ddutHu9OkB3WHN15OjKfeEydIhkzI0EjdJalLjqSso0cW23U53s54Ywe
06LHnhLvv9x/66cKEy/J4iDgEVqtUyEBYwiKAU/NscN+eymqZOSZaqz5fDNiVg1i7GbGqop7N6y+
Pj1jmGCoIB0Kq3X2CuSe6GTpQyKD6Axoyp12LKYI2lykrxL2n1JwobnEYUS9xxVv7HHLG2kA7pfw
z4gMWRcdRWoQ+QM6KBiNYP3o0CWrEWcD0/SSAeacldGY/We0uhoiFle5ABKLj+sdbEVrB9vFDhAc
dZApVSknKLACtNoOJkHoBo/1kQL9fFIA+wbN8Dpw8NP854g/Pp9R3zeo37Xi5JN8phNHMVF7hwVM
yWMsh2gwfSnIdOJ5tJqzYOXLtR0vZDJVQ2rqd7JF/Wpe5fG0eno8paYV3QzFo5NSIYldcIgBDqoY
2O2I0UszKOVJCBkuFlFO5p2R1dDOQODOXuqseGaf98fOU3AnSi0lBXJsoBHeLrNwsEGlNRwMMRSl
yetoo7safBDnv1BAA09vanIbF1PaRYFbnTxBS6aIBHEiS/afkJrCiQZWhs05Eut8VBrB/TlybKuZ
vrKD40tpE2dTJoDmhpJavO+HTlTvhvyeuaIKlkIMhIqOBcQdwqCR1cR1TGVGac5avZCk/AcU1QkF
Fe1aNg6S3rFGoLWA0jXQzEAnzUYS7PCLoikjKkxMtgNdViiwqniK+cULWiY/f3jK4ynhkq6WGpek
J9/V76dSAVkMTRN00CDIifAFdqoEXgT6HmwGAU+dm8FO/d6qE4AlWGvdEfz636uH08qsLK1DVGCM
SyzvcgNIk3HY6yNzbF1nk0p61uvjNEm1OBONxbHT5bHTFryqX97XvQv1gGTPCE1ZxdxJgocteLgk
HMP61oRsJQjsF2Dcr2+xtSBitgfd2IMUM2l2dKH6592udG0tqPzmzaGyHjTu5Ak6C0jpjwunzzrf
ZQ1S2lKtYVvX9vM4rXK+kcdpTL0XKVt70TM/Ixrax+4Jx8+CyeWgEesgtcE6G+BeNKChp7AgkIP2
Tzyx3LxUYl/PW1HH+6WqKSUb+7I9/na7f+r5SWwNuLg+gHTSOnVMIHJGAp3O0Sg76hBFWoAAZnyG
Ujed6KZebdMiYd7iZIjyPt/tQdgV++Tnu6GgeRrgTZJzKSzrdEIDjyZskK1ZJ5wNoN6YKF/IUhhn
vhDdxcezHSwdilKtx5fo37mPMw+5sHAEsS7WWQOEMiyiT2DUJbB9JIUZs/qrPOQn6m5q+hufRetR
Yn17v388pY3SYqlS2BY2wQCTDizVBEzURyxZxW6c3DBPnPuLNjWhrtoV4j0ud7UIIL1/vn3aP90/
bz4vHN8YBxADCgD+t6BgcJtpVp3iHEGi0UcdJOsIw7aWGbQOeZV+dGHRCvh1PqzeYCOCBD+OaQaw
x69g6D3876nFYjEefTY5UM67hKUePDrgm94SUEUJt4kZzJw412+hnnBGjm2Qs5lbVj+v9789l6wD
WvLFOS1tn7NUmNrahYCQXB40N6Mc6TTNRFOmwaq6qvr9OHv7fR6fVnTbTYNu249IHuGn/BH+UV/1
CwNN0wjmsQUtmLs8Ejj6GI6lkRGWdWBOzvSHepqagkZ6m9z0epb88o/+ftqYpuhdRGuUgWZwFmbj
hehiwUERHF5hAJatonKOEBEY59d167q/HOCeDLipKW68yO0BYmZSUDZ4RGqr1ESqlA65i0KilCHY
agzYJfblxtZvzsqrmq4cJj9XE1Ae3tT0NaTi1vBJlelqvT9lyA3Ko2MMa1GMDmiDYiZtBl3OBZKZ
IcYbbxdlpuMs9fINl4vcrkfU1p/efmj2eHYg/gSGSGQqfiiN3R1cp5WU1CaDFvJr9niekFGTv+YN
8jcN1HjMn1nt75ptwZlzwD+FBfUNQz/IX40nIFsCKOkMu7BnfqWvdlzmrLt2HFFvpMUEttsz1YKP
3++ePveVExL9RHzoxjP8T2FqQedoZJepJ1iOHDpTYkMMlEISvMkvoMb8JzknQ03gxyWFy8LBcVD9
KpbACVb2gs2u8fv34ePIw5ku4bscrDVggHQpKkwxFwh0WXLwwA6UKYPGc5UejnOfkYjwZEqtosvW
9Pjj9ohrNaz1xp9uMB1Afk3ilqaOIiIOh2uDFyh3iiliQYUhMszS7eqJahqWnTitAjkwOzzv+6cV
NnMuUfwh5Q5skzel+yUhQQQvYwcqLFYLUmDeAlNYsdudQcDYGF8PWuNIyTm4+eHpTb0d3tpjfwq9
LRwa3Hies3XYOgGzggyoGBEURRpcIsmECGbZazk0Gl+lAc4OP8oxCPPvx9unCYAALwW+RBniNOhG
tCAoO5uwSwuGjRKoRZ7HyGesfTpNvb5snAqu1sco7rf48UOtVMecomegkwmLh9IQ3qGo6YKi0Ssn
ZODxr1KqR+JuavIbtw22OTvp+7tfqyj/UEQ93DyTCIOJSAe6NPbXAD3aCWAZoJAClyBJuyBfJUZw
dwa6Ex5UexJr2djTeoRqfF+i9CcnjigdbyhiOMAJ4YEhOJkBFTrGjprMPRNJDQgZk2NSzTJbv2+s
3y9QLT8/3/26v/t0eCPHtjHoXS4GmY3AQKzsBIhSbBsDMpQiTBmcnKy9p0lfBTUxW+aMD64eVG1H
2saxl5iGypsuxLc/Yju4QZ0VWhVgF0myChrMEonIKAY0Wbh/HjG8jPJwEeEFX+dCPFeEMBlQE9+z
FvFzqKT3q7tPD/ffqp6yioPoYCDxZDCYZihBnRHKgFLoaCLUB5D4V8m+w9xnePPh6Yxq1aJ63qjq
68N+WnT25gP+vdzOoo8VEG2OXe6Szp02YH1xRHMw2ONaMriZKUeuXuhFceXt/FDTUjvY9nXRG2zF
tvY33tDNavO5PyHsoM9FJgs6JaY9YQtS5UsjP96BlE2UKipcbAdaJlNVJOx441TvFG04xkuvDTwZ
pnSwlQN8pomeaBDo3mIdCBwVkCvYehteKLNg/QBDefFIl5nPH+jyuKZasRbVakE1huo+rO76AbR0
QD60qqR3phCMA7sMszqARQPd2SPkFwXh6LWx7lW49ZSES/HEYcRsk7q1yTnU7tPD6lTppNkxldYI
kkEQ0c5LiRlnGjg58bbLKeeoQEcR9CKS/WTaGVVLrq7JIpz189tp7uGJmwilfMwgVoCWjFFagphG
2CJTaysYs0xdlb4ynf+MT+RtOwdRk61s7GA3tlz5cPdpDh8imBAIqa4KxoTQ6BSkWCIbJUsomOJr
gQaNi1ck00ZARFPLm/7lEl3H/xvgMsgBLqN4I5JyCS4pGqToWy5yFFTBjG4qsCBougIHf8isOR/Y
x8c19UvoY/hxq2cH+cuptNeogbkkypwXslNYMcQxz80xoB67yNiMTfmiuli/33qV/VLfB9NkuwAN
vPv0DB/t/f22v53V9oLkszwDz3MEWC/n8CrhrYINjJHkJLHx4VWZBvM1zvcGnY6qdsPEtrEbyVq9
v1CJfnzcr/e3By9lybcu2UzE8US86jQmWXOjU+cZtjxyEfQ9CWZ9vqyXLOe/0PCrGlfthrMGb/n/
3o6uR20c+J5f4ZdKIB0oduzEWYmHkBhEIcuJzbZ3TyhLwhaVj4oEbfvvO+MASyAhra66PCBhT8bj
j7FnJuOZiyw7X7+/O2Ne5qFQcLRTFEwYjD7KVSAjoqAIOidoaGYf2LPaV/UdYZmO25Q7UMjPH139
oR8+VZmvOLTPLIGh7/AyjukCf/Wl6jg0YEJ5NDDpHzVflQgpdcG9jemtC29OyMUuRj9rqfUYHEvP
N4FSVThfgdCPH+s47YgAExabUgyaAsojyrrtAapKZC7s228ZDsYuKa9fDKSxWKNqwI+5R3kRFYky
ZnlO0OEUTxNbuaiuDDpC+KZFbce3fa9RE/cn9aEX/EmZ3BdZQW5y7UiGof/0nmExdFzXhqSjB7uO
HsvRXxNjbFmB08dL0H3Y13zX9agPx/MvXdo5NlFjBSsqS6Qn9q33hpM4/D2Fw9tqe+HqXITwBtlY
UBCY0d0ZTmvBO64P8pIbYCAPaXl2zQZ8ia1MhlPB4stlUnX7qTApFaZHZhc5rDwGwmYgO0IJLbb1
O31rYHdA7qS+03edRjH+iPjO9aYrC5GsuiiNhbWhPbuFDUJHGsD3jn+tIronCMpSSjjKVGChQmuZ
oInAgrCVsAcBtX0x+F8+mxZ15Z7SZUVP7euI4vg9fr07eypxPK0drbJT0dVmBCmZ6FuKdZSJX/wV
5tBTFoXzxeLccm0WmM2K7mTXFN7lBFHuRIUpRwqxuDFawlFUn7vQEbYK8Iy3UT6yOJ6GiuNfBjKU
Y3LWMEuX+O8chhXXrKWIq3qwdH9F7T0GDy/C/HJRZAkMlOsy7vCOKTF3qsRrjBy4hgP7CktxwQPx
x+31Z3LuaMPXATGkLW/lGSw8XzTWcZEr8v3xgaQY6xdTzMB8mcBVHuoVME9W4KFvZc2330uMhqG+
5+l+G68JSFur5ckb7+mw2cCIPACpfrwGXXITJyl5+UF2+Zd0T77tdyjRpBnJ4/1rqoM95V9W2ani
QXcxj7Ov8+VuP/+2Sh5IEQS5SMkxX8Bvnj4Q87IwS3PtF3ksLzfchN78b+jhz0WvYAR0e5gBYbVN
K7vjWI71e20an0IyS19L4zsDqOl2/YOgTwDW7JbkbBB/INEuj9c92EG6MiT7NFsl6TbvwZbSdUKQ
wj60SfYGvJEm890hnwNth62O4AUtJj3X7dKwxdiHtvF5v8rjl3UKOLD9M2baZUPyBpV5uu2h4Txs
UUB6bom60HCLldvpmeOWCUWXbSGilgsEGcSYqeFo+kiif/9WpOb5NJpFz97E6L0/daDHasMfErx1
hksty9E/qgqYSsceI+hKB36795xBMx22uHgjq4FF0OB4zQs2JLx3e9Cccv0Cl10zND4+kY+jiLym
W31qJfBKck0NE3Y9aKvw/0qTNoI6NmI9vXiqIrCc4iSBvxkByjCdysWMtI2xzjVHPCwh0+2ibjjk
2Ai9yWTqk/vjZTJYCyfQVpxsVtt2LbTFAGu6wRhiUfwKnaX1iGFsnyLPH5PhszcL6imAAaOh8ZTD
KiAND5XAIMBvc02tF6k7oA5i/Zy+4P3LUI/fHawsNObzwIu8JgLcro2go9AbqgZYwWAK5vPJ6HGs
AlgLtQ/DBAOINVL/RPdxgpbQtRD0+XHkT4P7JAgBs7XR/E3wQkk9pOPiuB45ZlPMb/3Dx7/D4NE0
8iakcWa7cliA/kVgBR6yEj8UfHAGNYewHRk/AVBLAwQUAAIACABAYb1I4l75IrVDAAACewEAIgAc
AER1bXBSZW5kZXJUcmVlLTY5ODkxLWNyYXNoLWxvZy50eHRVVAkAA4g+S1eIPktXdXgLAAEE9QEA
AAQUAAAA7F1pc9s4k/68+hX4sJVXTiwbAG+V11M6M57xobJkZ2qnUiweoM0NRWpIysf767dB6qBo
KzYcO5N3AlXKsQmy++kG0N0PAJujNPFYlrXR5qc/n87OWeyzdJIyhv7ULdMinxsjJ7+u3wqf/csk
mk9Ztn95dnxxMth/v7/5fOPIZ3EeBiFL29u1NC5ZmoVJXFfwyy+/NHqJz9DkfsY2G/8w9Zauouap
k4c3bAfwpaAIjWpGje7z6yQGK0wN658b5yybJXEWutGGuOwa/Uk1+rlxkbEUHfXrODRMGo2+k7P9
STitAaGY6C2staiFCG1jo43VPayZqIUNjBtnY/SYbSeOh6DpD0TwHvzTUJOoQ2IQZQcgzpI0f/AU
IY1OnMT302SeoYuLCsa+QnSidXHL0DpWi/T1XkvXidXq6UbXGPaNTlfrNxoNjhx1bp0vDI3D2GOo
myR5GykWxhhlzEtiP2s0eqmTXTMfTa5T5vhr7SpCw8kx+pSkX6Iwy4tvwFXlbY3G4M5jsxzwbvbU
4I+e3e307U6vNxiPUXN89HE8+Hi5U7mfd++qu34fnJ/aR6eXneMjeKjfP+dPOTnCd3jxcV3HdxkL
Go3LE3TOrkBEhk6Zk8I9y7Z2o9U6RA0u0LYngz8mD0btQhjhAh340lpfILrCHfInQrqh//4Zpa27
/fT2Do1P/qd39umRAQ+eLZyAcLuN+mE2c3LvGv01Z3Pwg5dM95zZLGJ7UyeMW3npLlwObbT981+l
xSqMCE/HmBLLRBh9QIZJNEw1YqomNs0GgVvXKn5zbpyxl4azvJekbENQYRshvm4B0CgK49yG2ZLe
g0hqWIbRoIKSvMBRGbqZDriUSbJ+ACQqitpQhOThwHd95qDfxr12+7ejCR8U7Ta7Y948Z83i6uXJ
+92yHaZ4nvScKBqmzpS93+E2ELOhCmrUDVP1SolHcc7SWcrga00r6LoCLYPimgNRYwmCXxnnEBGW
F34bn7n/x7y8wKNCMGloYoBMphALl8LYjRPNnSWIB7rGyTz1WBEYYdpm+bsVhkt4ju2iT5Nhu30K
U90f5enBQshixh2+KxCauKELA6QQNgppszQJwoj5g68DHRW3hfHVOXOyJH49+JbaMDbQf2LuGjZ6
iN5UaIAtFy3u48pOYEaWU3eF++83zIBU8Ci0veu2SXYapqjVHsPm2uplB8OsTaKoGO4LQ49iCOmR
36zd+ohJqzv6ZyefUgDC0uLRatPKqj7LnTDKilmhEAopoIZgz5vN2hB0dxqWsGkB9Z9jmohNjwLX
yTbchrXTIFgMt+JpilfHPYjYFCLyKvyUV59EXgwZ1VzCW0gpsEE0AWxEBJuBXYqr2H6dnByXks/n
cVyJjiMo3WD0l22d2F/mvcENqF+j3ritAKvwmq0utvSlqgJeKoiXMFd9Dl4Hqqn4qhsl3pcVoGYB
yKDbAFEMgBRRB+qa8lJAWYHIsrYBsriHVFFA1PWfAahZxKaRk2XnLODRaT0lykF1uAhfE3aXj5Is
LKq39SikYPYW2KYGsDUR2HrgGzwZbsDuJ96cA+Gu48DTebxw2zBJR848Yz7nEt15GAGtKFxJdD43
Hj5c4KK82ia6KC6otr+OawbUZpJ8YXH4b5YeJ8ms+dXbx/exd50mMdT1JzCxd5GbJFElIo1A3Bgo
Dbi7dDRRt5uk8BFiCJqkK5ovYJKQOUWtoWrbEZsUEJuCiLVAYwKIjwIYsAXpE8ZOjO3eJjqPsJYg
dtNgwRMDm2Xw8yJCdAKoShfRvZipMA7KwGUqW5FpGEIXxaLI3MD4OrI4ASp/PwzjkJPEtTN7jgc/
A7ku8lOZ7KmxHZ7K4RFReJ4SIKDArZswzedOhPLrefwF5cmrYVa/ApnCzKJC2UnXmGPqFG3R2G7D
T96X0wJeGa0UjJqbN5VzxDJBtyKq2zLIdt1B4Y/jxOH5uVJmXDsp87vzIGBp6RLrUUgQBAGSUCrS
dexpFqtDKof28wERqi8RlY+WU5EYgEcox5i6Qjy9UjyM5266sJHD4GPHD/3hBi4/mUMU4Tg0hRez
9UcKMKoKMY0KJRaTOpara2sw508heXDnr07sF/y0ihE1zx/i0zUgElQoS5gW1BHYQa0/F3duau1k
fRaxK6i1eUUQAw3mFXQNcvsz7z4Tuu8JGXvTaZtqvEM38kJveMry2yT98hCjEQSBGWCPmcRHtq1r
rT9Pxxfnx70VmILixxA07Nswv15f57XrQm07iaP7jseXE9ufbZdXZnYY30AS4RTAalBLFI1uEvTN
SHjKV2hDwaLaNdN4Snup43EMn4tVgoZCBPUGmqpCH9j/e0qNDdW9KISYavciqDFDj+q2v1Bl1wf3
4IIopf9nScgBD29uBvUeIVhtKFQIHDEV1VGeAY6YhXuWvuhkUBgMRr97D3GNiG73hhuiRr8rSu1S
Kb03T/katX154txtmmPTck1DUcScTQljHoJaO4Iys+ASnKBCgd5uLyUXapo3SeiXxToECP5DEUsN
GFYbMZzPymEyj32nqO4fanRVVYeY2Rt20tS578BD98N5XNjIJwkMF03UAt/xH7dgxtIgSaeL1Kg0
FF1UtGuZ6GQe5SE8cAdV1CL3VQVD/dlQDFHBlus8JtheSt7wsCnmYcN0MIEx2hueX5wen52N7KOx
3escHx+dfrTPLib25Mzu2OOzi/PeANujwfnw7PzEHl6c9iZHZ6e2XRStDcUS06o7rumXWucxJy39
pLQq48vOFMKfikUlEjeoSoT/+CinRkMlgqIs1zdRVdB4xrwwCD2OzdIbKn3mgvpi0d93Dd8rFtRV
ammmrisQYVVFUIjFgFmvhGiWhUkDYp+gEKgWKkKMYilbExTiYb+CRIfSBpysCwkhikbwColOwSMc
CUyNKHT9+8jfgy+hu00I7ylLJQbTPAtluZPyjQCy2hshX90b4RoWja2pEztXLC32SOB6dp/lbGp/
gaTFok0I1THCfF+BLIm+ML4ABRGK54die6Qi+xELNtBj36A6Q/byfnt6ldrllg0vpujKGtoWh0ct
1YHZwAPLX8X9KcvnabwBdCFtVurcELcxIahjKtDhhZvt279WEImygqj8+BDVHx+i1q4O01opVVbU
wjZ4vuozNHX4+Mqu7Dx1Zo/Bf4YgYC/BShAfoVptG+85QZqvn1aC9JilN6HHTkDqKCkmMSW0tpv3
HLGK4T6M/UQxSG2f7hWC/+Y+29Ppm0DEhTBXr4ybZX/uILtK6bjKshRW1NqGWR12PZ4ohLjMouCG
03E5nmyb7wKXKVpRtWILS2jAuliD4b+40XYT/74QRYptISFJTuAba0mrgG3oxTaM4CxiPqoLWs8h
/SXTXDX5NM/Y9NYJczsLrzhlqc4S78OHPfJ4Sqr2AVYV3QcameU+lGc2pKH8OswWQb3dziLGZjaU
bM31DeUKIDDueVp07kGUxFeIf9mtiCnaDki0i8jyaAKODtFhdV9GE91V1xVP9fSiPn8S8XNgcUDf
aFnNJmKYVHBvH6yyIDcjd+pEUN8vTKjAmschVAQ2r/0PVjfxPc/QO5kDFTh8V4X3UiMK9JYmeEyA
g8eqvwbPx+NFnIfR0Iky9t2tKHcH3pWbkoInDMAWCKfW2pZfmTOD7vAcqJmu2N/SI4YieAqBG+G6
Zt0IGKFeya7HS3N2FmsEhqh8xghdyy+4/8TJKp7gKksWjZo1HO93mjuHfMry2brIWCUSapm1zfvn
QDE97VWgFMd0RnzRovkt4haHbWpb9U8bomJXo+W6Q2VI2IuoZs/S5O7+oBLx5iD2oIQBer8N8e43
OfA9D6ErOq8CJeLb/a+TtPnm/Cslbb5v/ppJ24DC99NkiEZOCj5hEfqVRbP1eT/xhE4UHRL6jHfA
te3d8DD6onyuBIZnadXok8R+sRdt3zhpyI9olUF6SzhbX52Wkazc9xHN1FrgMRejxZ55yrfwjxO+
ZgXf95aIwHP3R9NZtLn6Vjwz9pIZ84+dqes7BzykIxhr69MoD24pB2jllofhNw+nrFyXPHjYCP3k
+Pe2x33wrbG7UuwcLoIsFj3v5waB6phFMnuGEw/W962ud52MVdLxQdF6DOYdNlff/kB+arf/FRVd
+a/mzi76B9mDwaDDR0Z4gffdP87Udz/Y3KNY9OArTD0lYP+AfilOFJqix2zBfOqoZcbfZv7jlhf+
Fj42C6nC0fRgFeWKdFpm0xF0QalwmKTlFtGnML/mBcpaLUvXaDjCDTZGDdHyFtAoDG9Hc118X6b5
LpQqRfGqq6Klq8b3McztavzQP3G+MP5bBJ0bJ4yc4mzOkza32/9t43YbEiOMC2DtUKGVTbwsVUXL
Ug5S8+t0217unPHrdrm+aN+W51yLPHzI7/HApIM3Me/dYfNt5L4rax2tdmD1OW7SA2/DQ8Fiz2/5
/dt4ohoHisqc9/nbqDpccgBOmTaGFz++VjtG+2SM8QydH5ZYo1/662CLktUY1msnYJ+mVlTRfFZO
tAdUb8VbiGbWTrI+Q7CGTVIKvs2DyVbZ1LSKQ6mvxIm01+NE+utyIlNyIsmJJCeSnEhyIsmJJCeS
nEhyIsmJJCeSnOgn5kSW5ESSE0lOJDmR5ESSE0lOJDmR5ESSE0lOJDnRT8yJCJakSJIiSYokKZKk
SJIiSYokKZKkSJIiSYokKfqZSRGRpEiSIkmKJCmSpEiSIkmKJCmSpEiSIkmKJCn6mUkRlaRIkiJJ
iiQpkqRIkiJJiiQpkqRIkiJJiiQp+plJkcL/Vvjw47Z3zUpSJEmRJEWSFElSJEmRJEVfV+ir1MeL
VzZDSm23lzm1eHtmmVCb69byQt/JnbKcsbAg7wGFhJrqowrLjL98W9C6sFF04b+LTFUHW6UHPRCa
s4Ulq78YXApfvOloF3nXTrqIEF/nNprwXzamquV/M7d5mRFLBvPCp1/KU7jJxnN4ystwfYWNvEyg
5BySczzJOVTUSx3+flDgHsPJ8de4h0il7noqNrijC+k82FkF6RAYcAbGpu6WEbUL1KjpxEl8P03m
GYqdKctmjsd2eJa4Zekk6YTli5HLd5sRqgiSC6yDw3y6Vhet5DZX10Zp4jFInax8D4EuWoCDDv6W
8ZW8KxbzCcO2qtlF85i/AwT6EMZnkTT4S79EtTIGo34lfpYyKPbZMEk/lvp5VnqWctUSffMCZgYx
Fl6F4cWZ43QWRqy5vsJfr8CVrVPn2AlYUdgU7/icR6s3cIhWAR4OqGFWJI8iJ15hOFrUAQVbXN9z
DMXQcXjD/BJY+TI7Kvo6BdDt4+V42q57u96qQ2rliWKKVg68HoJg8NJ6yFCwYH3wwnpIPCO/WT0k
lh7/GfUQ/anrIeX71UPqW9VD2hvWQ/qr1UPG69VD5ivXQ9pr1kHYUg1Tx5UoeJr47P370uO/QmU0
4WunB7X2XfTgQvHAkc/iPMzvB3d56ngwrhbXR3nKZdXFHO5W9KTAsLMX3IFgGIdxFMbsOEm+zGcH
G0gWD8ZZVNk62YKGv8Opfq1Zu1DZe6QGFa0YwduG4v+nezv6zn62RCtlS+Xr8JW1rP8Y14LVuRPG
2Xdy7jLia5YoUeAutvz/UO8+6Q8YcqqwP1yj4o8xyw8eN/7lRoqaILgE6hPLcqupYAufvXSi0Oev
oW/fLL7rjcZljaKrwsugxCKe8xKly7fIQbUiuhJKdNMjFZ0rketLH6EEvt6gOMWV/nw6OwF/Lzqr
N87TML7iSCxDlPF4mFHqfjv3U7Am+tq3t+Z+YizpFbif4FLhC7kf/XG4n/LzcT/1p+Z+2vfjfvpb
cT/jDbmf+Wrcz3o17kfxK3M//XW5n6Zb7uJc5iXjddjDkgXPo2Wu4+vkZ/HZDUuDKLndBTTzCIZR
Fv6bVQYQ0YRJkeFZWKsE466ThV6Xbwy32/F8ypFkFQ2K6LEcSPiGRYMXFxkqP2Wq/Bg1hvo31hja
D1Vj6N97fVnut8v9drnfLvfb/+H77cbTNYY84yvP+MozvvKMrzzjK8/4yjO+8oyv5BySc0jOITnH
izmHKTmH5BySc0jOITmH5BySc0jOITmH5BySc0jO8Yacw5KcQ3IOyTkk55CcQ3IOyTkk55CcQ3IO
yTkk53g7zkGx5BySc0jOITmH5BySc0jOITmH5BySc0jOITnHm/79RK/8+4noNsyv0R+mvqAbqPg1
O9TU1ZYb5jvtBkKpc9dGK39i13V8l7EAGtxqAyGOavLEAQ3etif8VQNHajjEN0lgciV+WH1k+YGG
bNVAtIUmrWhwZzXtBlP04olHG0AJSs16ix/w38dFqbXFEoK3wCLkQQNVdW4JofUWw8MKb1DqDQQH
3CtE3dCuGTAWjEKJVm0oYlFQWAKjfbNl8acrURpENSUEU8x/eTulj/UJyGocJ1chBGfUG120i8EE
mX6QpkmKeonPykvrR/XGBCI7Op1PXZYu7lcbjUY3jJ30Hh1NnSuW8XFT+2DUAiFB7YM+8N9sPWex
z9JJymDk/fLLLzvooGsNB0PcHba6lOotBevwnapaLUKGg4He0/UuUQ/R/mUSzacs2788O744Gey/
39+UtkSB7wjvHoV3XQvVLsI4RB9gJn1iLg8gE5bl4+twupheTQxohrhnDYdKr6VQvdtSOqrRMjta
r9Uzep1+t6uphJiPodkmtYbLeIhLUdTCOzUJ89ksSfMqtA6xSM9SScsYUsA3VDqt7mAwaKkdZaAN
NNrvD4bPgFYVvIEOqOMDdIS/uoeP3K1BuKlj+gEegv/2yJ6ifeBIe1RVsWW2epYGTqQ90uoaPa2l
WpiYhqKrpkEfQ7opei9InSm7hTJr/5JBcIB0s9+p3VM1QDH1h+5VDcPi3V4xAJzxe5g/Clwddok2
gLEIXyzo/Z7V6gzooKVYltUf9qlGFesx4KXIxwGXbVWgumI6D4BaBjMeAt3qYhMPO6o66LZ0YgE+
Dfzc7RLweNdUFdMiqtI3tyDd7tv/J+5K2ty4key9foWPuoDGvhyxujVjtzUuW91XLkmJ41KVvlo8
Vv/6eUguRSRBiuPRN6ODimJCQAQQy3uBSGn38FjWYRCnvrRmc1jF4nRTfxw+zJdf+gKX7LGLkeRo
EwTmcCwtYcfSORmMiiWa81u7nfjSBm9H3GxFrCkHi0v1KvrhS7OwFtsM+weoEUrM+ExAvuScBgJi
RAtjibAsEDh/IAAUKmdpdNDVZl+eHqtDfV//+tFi1rq1nS5m7WKNTLEeM/rD4j+XM7/3Zy0N1jTK
ZaZUIiFKTkSSGXvicKZFmQTLZcbEozUns9y0K4mT5R3F4svGpP4Yg/Z3b+ysjsXvkEKIkE0QiCs8
wVvhniQIk0kUnHvBjbRRQYrbEZJ8/+Nm8Yjo/33ZHwWOYLkc7sZ/J7h/QEdDt+v3h22f3TQKqGVH
KzVMQtLtsKz56x9bHvLdGzlqx4WdcTrjUDHqyLgulOhQJBGZw69dMMQEn2xiBgdcTlV897j5A0od
id8u1FejHTNRZ91RR9NRHZxo2sw/3D88PW+WPw1PTzW7bv9TtL3VIEhDGZ6zzVJoomKq/oPA6pxy
RAXPmU2KmhJaq7k8byuilR0RrRndHYPjD//89cvn4dWSjbUzMXqQtyXEAg9C6kQiNzEjJJVAuPVU
6JysiPqiHdXYM/4TGJvlU39vfxmeHl4el4gPp6JM1LAdNRx2uiEUdcXb4fGPDaacldv8BzblCfvM
Ga2mwzDB4XONYbIYl0SG3SgE3egEsdIgUSjjkIUL4yp/VcPDel/zlb08ZwbunrZqu0VH7YWaJJZ/
Hx6B6B6gqRg9pepmjKaZRk4854hFhjoAMq9J0I4nR2nMgV3UbT9pX9z900ZcNsxPxeWWTsRd3j28
rH5Hfo31w5i7uRUzbWayuvnuI3TIXmcZAI688J4IDR8JLgpSNMOplRIsD5fPZ7dAX4f905tWXNbT
YbvlMMsf3paD+3I5WpEXMTDm4b8VZFBqiaeZkWKD0jChIq28KOUYJ9/+fIWLHBZvRV50RBbMTlL6
av48Xw3P478M9LTcApHRXITTSOs1rmblmTQ+E6B0hQSGJOJ5piSJ4gFEEFjZVXG1FubSfqnz+ORk
2E2rgeuptdhH1/j+p9t3dy8fNvcTcM0Y1NEV/MM+io2SMJ4E0oRPgH8pEyUABan1OUh/8WR+/jzc
//BjX/jt8M0udvVlafWxvKOPm3rHA9b8cLfXonrzXp0EasUNYHgRrCCxI2Y56h2yBY9wEJOjt39Z
ne2zVmDXsSu5nGbrE/OtYWgXiLYeEmIIIH7wEMqBxYJXxCIHgU4AqATIrlX46x6ye9iILldDR/RB
Tvb6n+/iLnwjBB1Cp/fSK4FkwAqwnJBaAToyQ6hkMjiVIlX8Gi94nb0v+OvzRnY770RRu5rSnuPc
8/b+eXi8n8NqOGczM+M1jm4/jYxcVPSpCJPA60LDgoKwkbioqDZ4plS8Rp/eimcia2dkoyNSxamO
juuJjr7+fvvLu+/eqMPpaAtOr4whOTnAElk4yChlJGZBOdAukHa6Rpv93H0N9k8bqZeL1anUKzFN
x9ul48P9evNhd20Dd54xOea3+qGi9FRKMsWQkDhiUwF18hxJOkpPwV2KVkZc9InOKmcA7OnARquV
7kDElVvu4+yudnk/PNeZ90FWMl5hVAWKmlEVmZBEmwo1IvXwF6BFlQHSGfg2i8e0Zzvf92dmbkVz
vQ2fz/fJePGvSkjpXiZRoyRPxQogV6RjZGIBRkacLIpEbrUSxrGgSgunm1ma9QfdgZ2DsYf1nz4d
rV6PFUiFZ6Uj4QFhA6AZBywFNoQVmHdmnoYJmD+ao1l7fcp27ZwKsz+WPz/d4QT2i3M9pgimnLYM
BsVoAKJlCQk824rZ8TkWikQ4Uf54mptmqcWis/7KTKL/63/pMr+7RR4f6eg2lsKcZ6y6rCvFpsQY
ARgCI6XSEK9CwbkwpGIXRM5XBaDOWn2T7ww81m0hOsRtcZqK3z0+VHAyrEakeNCOHWKRS0aXCpBg
XACoCVbnHXJztqBRNknQU3qNYt2F+qp1h7bKddL2QsyXk4MbI9z7d768pm02kzM1hij8rImDM8Nk
QQ4stWimkwXW0JnkaKSG5k6IcnWoxVIXQi2eNkqoReeENHUTJf72dp9mqvS85j3Fa0xyzicvuALW
i4gC2maYXMEZFcdETJxLdRn6Vak2y9GGrmZ4r9L0h74+b3TV/BToLoywE3K7Gp5+f374/HSksJuJ
8bjcGIdLzgxhmBMVgHmF8YZYph1JXtqQmQF3cleh9+1Ce1nrgDP4/XRgo5jthO+FXdqJm6XNeC8J
YZrDHDGMG4m65jmKzAJRvgJIrjiQbylwu+xqEZJ77r8dUT+V54z6J+Na7ZedY3ViPqFlPUPzv97W
bDaSM6NGLox4UjINjFihAOLGTxSEBhBO16sMKrT85gYNOc747K+3N61ap3husWJqPZxgVv9bRIIY
Sc2YJLafau7iWir4Asm0pk5bXbbSUOqk55IqY2O+FqZikfPIFA8b4Vf8tNa6GMRyclDbG5c/n4F9
lERiw1/YfqjVlqw4t4g0wBgGDAcAIAgvibPBOI+Mx/LXDbROfl7q+rQRe+1OcRu+XO8BAiT/9HAf
H798fn441Kkp1WwmtuWvbKwz0iZSHEKFiHCoIMBzHE1FIGSw7FQXt53OfCzYkh7f2xy+nK/2qKk8
3D//MnzYPD0/fjlwdiFHmWKWLNnI61VY5V6wdQQzsF3wlxipjtrw/zszb4ovp2K3Ws+HjtaL1SRj
/Ti//+ABS748bcYwZ7Zgov6sFJ/BkEyWJCrN6q1KBUmwqGzB1bgA+xfxm6t/LNKZWsfRiEZpzfSp
0pqzU6xxO79fLR7+7BTzQy4+mErjmHUA7AjzLnBYZSkAhjwYE/SVKGO3yFmcsXveqsB5T4Up0tiT
lKdnbG4tvT8dFzy26WpMVQw+VHG3KQxRTAWBOJ0QCVxAEnbUx3RVEv77dr3bznLHSp0Mm+g27+gm
p7rV8JJehudjaCu0964kRbi20IPJhOCgASuKlxrY1uqQro3Gde7zga0+baWWPanV9Dr19vMwLD/+
MiwfPtyPrYnby9XK5UbssKtpKsUE55mTyOBXot4G1nsVUgQO2aossriKfHSXO8O4e0NbFZXtqOjo
5GB+GT4B7b/fDP/1ioy23Mq5Giyd11w7RgJN8BwZQDYNAwdB8FZFpqiUuEa102XOhcPpuFapDvFY
6tUh7i9fPj+9MlZJ7bbmbH1itjiix/MxVR0rKYCNhKFFrpTSLWU9nqcVoFP1W1o6rSrV2vfLZrSU
CrAgR6XOLtPsovZE26LqNRyoMzOROAQInSRlV9aV6ln/9va8uf/29qYVr5MsrbK9Stj7Y7KmZnQm
qgLbDxVAmShw4paYyEGzjVDQAPEnW2kN0imQor2erl1kaw1ZWzre2fe5XU+sef7H+uHlfrUriG3t
2Fo342y8BqXw00wN0b5QSA9CHQzcVmntdKo0zrjLqe99OUx/RvajEY0Cc0c7Ciym7vh2+ZpVYcBm
tJ/6YzRjkUoWgWglWd18DcsJAeETbphqQ2Zh12z+8Rpn6t1HI1otFsuOFks5KeR9vps/rx8eD21S
eqzhySwkNSCLhtXWBQ3xI3ZfMqu59CpSSS/V8NpJW7FWp4Wk5ZKuJhb+07DazCMw1uPD3e3YB3ao
IzE1Y3bkQIZrrjTxhmWEco9QXmttPnhOrVMsuqsK86dL9Xf6dNxNq0PH7Ie16vCGw4nG+eNin6kY
q6FnvOHZxSDoIJAZMjG20ggROPFeVxrBnbaCJvGVG57/Ec99leVMtDo8v2k1PMV8K87dPsx/GmCJ
j/ODeWk9q80xNCfrs4JuvjaRSa/r3WImPFjFs6aZZd7G+Waim3a1U4SwUk5N/PX9ZjU8/PrwcDcC
zx22AcWcgU6OwDOkHKxA5rFgGIBniDhgQipTuK7kNpXLpO14/v4WHo9oNBg6NZ/VIKYRB/Cu3O7v
aeVIESLXiIUFAIZb5EtGkaeihaE44y0zAOT68sXBOOdZNFluWzkF68l5qMDvS/gPz5v1EZkTAF9b
NMykAdQB2uII6sl7YhUFp/OgmMIqVbi7eDVwNO+xXAPvoPaBy+EQ63ZMgB2q82okHGpsbIkqMuVJ
9gJhxGcQDhs9KRksRCZrJE2tJU5mayXR844kjh/q9J+XexmUcjO55d4KR+Y45RVeQAYjJQFmo4TC
x22M1uaxaeB0Yw7TtUJ02sUGIQ4+OX95rQEgotdN4JqC/wcCWGNhRgA+TjpKuJJGm2C9GvPV0Sa8
znHTrtLRf+FWnSi4bwaqvogYMhr1a7+REh4AJXgCtCJryZYRB2pIkECLSyzmqP+3/UbHI25aeYeO
EvOpO949fNjcP21v+I/JEuw6GeAX4C2XEEmUJaEUQ1JmyRetJeDjNYlpnP+rcftYiv7g4xGtnstV
R88139vJv73LP0zaW3AoQiH9kBBjbY3KQJXKI14qFqhwMFprvlF7y+vqrdA9414qPi0yZARKy8Yb
jPqzJh0einBSKcJiwsE4HokFnAEbNzzqwEpQ5tslVJ/P4M7c6LNypzgNX64mOO1pWG5AH1/dtvqI
hUElWogOWtR2dhiaBuh0zPhinAMS8pfiaTNnK1Sn6wBfLiaBflFfUHw65PYaTp1mKjGK+BlrGTGA
xXnPPGGBOZV8zMyzSzIdT9mKtOjt08pN9ql5sf4NN5bP1LayVLx3KppMlFfVdEtCREm1+SSUwA1s
Y+xRPivZ8cytZKuOZIOad+oqB+P5+faVOmhkgdoLMP4c7xGZUTHVFj1TPYs7mKkGJdbATN4id/Fv
2Ij4KsmZVqDbHr2AfouO0mt60pdy9/B4++V+WUt9bgdc3AhdHEPu58EQ4L3a5E4d0l/2xARRnHKF
Spe/eXXzIM+5lLB73Oi6pqdxck0pOy5hv5s/PoE5HBewq5I6Fgl0i8zOgCmENLXFA0yK1fZ1m5On
Kv0/VrCPpb5ptTs93jVni+nxll3J8bs3puKpmalJfPupZgtpkkkJtN1RBCiXKLGJA1N7cPnEkB6/
0gx5mP/Mce0f37RiLnuyL/fH9XJ/wGC8Fs5Uvb02sLzIEvyNu0ICpZokHgXlsFBk825gOEw0WX7V
W3492ToE35fHzfOXj5vv3mwdQymsOrZtpPqSR3UHhxCa66tAtZkUpJwbFiJHELu8ayNV+6qZ3O4k
+Nvbs73uu+etflJ29JNyGu5GIeAKauxzUtUeXCiKaQPz15WtlFTv4TVDrlDOc6tlLvYva7Z9NhFV
9USd5tbV/dPT6gDLjd5nDJcjsI3jJFHYsIDjEscDDEOYyr6tBm6/lDGO5p2INXTEMsPkiv+H29vD
Bck2YoKR+No0KWWEoTKLfG+R+YvMOQgXQwqXgwlmPNMic3vbSjg3HQkXdFo8at5gfcOo2jMaJHoH
3mxIjnB6wVVtPQK1kpplEbVkslxMts3MrWjLjvkJqToNkb89b+5GesG2ZZVRMmGpjSECBKbCgM45
I8iqQAUG3p4kDFSGqyu7dYELxd36+KaVU3eEr5cZ4nhfa036+e7pla3ut7W+T+Rrly+nUhMhwBZD
8YIk44z0ihUjLqKrZuJGMtnLcZKdFD1/vn15XM9ri6zbdui7bXe+z4zF2mgnU5WMFlEvbfHHaJlg
1NT+4cvEYD/zmTrn/nErdadzdC25nBYktlli+PN5uK8THgy2vlqwbVsMXtkgaCBWmIpbgWCtz4LI
YiXlLLkk8xVti5MlGmFVpzC+VkIcSmXz5ccDL7eab7sgouc5gTs6GCu1hVgLKhxc8jnCkUTQXamO
5mplEB3vUVId2gQ+ff542J36zqTGMuBHJI0vxWBLSMAv4qkAjJY+iUgn9zGHGdqFe5av5GJiX2nz
9Lt/XGyeHw8XA3qMfzUx0lSKTC4Q7iPgRLCcBAVPhrUhc4TEU7h8KTCZ/VwjTzNoosW6o8Xi9JW1
+ePy4/guS+2eo7suOjq+2mktMgkj0QVfL7hk7fTNRNYOOpmSdd59O3B/EORcht89bpXsdNutTX1T
uElP//Eyf3z+1654DbRbb880Prjx1ZFa0PSeJARVJHpTiyGAgHRs3dHRba/xzmv5Onlf8tfnjehm
1bEyy9k0OdRuyfSwrT2NgnO2xevecs64ozgUXzt2kcFC4JrEqIyPzCaZruuO369w4WWj+riR3nVa
j2pfz/71vEfA97s/QJ8OUKUWNXQQNgNEcVe7TiPQoq3vZAs4LL5JKjdF1ZNpWgkk60gwn7atHHQa
0+w/fvR/3/fkA2/NkK5q7KIC8JXVd/3HaguvDUVKS/yR5QLZsoriq5Ze5z6fYOvTVv5O283aneCW
fQX3tBosqmRGFBINBeRjPhJnkNWoKioyp7QVF7vXm5lb0TrvZa3nqylu+XEOVvHxuDggZ0qP1YH6
Ybwa9T4EBsEEOILIMiEac0lqBS4lVWIS4dtFkFaecw1Bx2NuWgU7Djlfm7MGNd4oW2RcVvHktqOV
Cjoz27eeIvXMAEoQQO96bxSQCyvgsAn744MyKdOrb7XHZS5cbI/PW3U674GvB0c74LMc3W7rmRsR
qBLbq8v6MgKYhK0MD54qWQGxMI5EL7yRCWTI/zdv17Idx41k9/yKXvYmZbwfSzzdnrGm1VbbZ3Zz
ksUsqY4pUqZIT8tf3xGZVVkJJOrhNo83slWZAgJVQMSNQMQNcvEnvHS/Xb5zU0qsWsuoySCOpd+z
hl98tNeYmXqrHOgfnQT8ItTDduRIWAA+fqaZqpTFHyowPz6v1qBba6jjgZuiJOYQqbTj1cuYEDSa
3ZAA4ETMaqeyM5lgsF4xTaLNxqfziHo1filmI2y5HTYz4Po2/+/7j/3TcLeqVwyeCQ9wvwueAiJ1
gE2tSBTDlyY6MKz5grd3db1iJcNCfiQPXSVDWCLEnEawJCH9K2Vj6q63EiBZ7CzeKHGqRTfqKx8D
lVYSqmmNGY+D3JTzyMbkuoZbbvf07r7/+v5wFVMlCjit0a7iTQU3ABaT6QyFHarhyIHC0OCiXJWE
V05zYrMW75SLWe8ESyTVB/j/z+9yXUwssgOcL9DhRzQiKZ4tME6glpyVQiR5ASxef9tynP2mlM80
hDb9Sf393d+nEu43ZEqCJJIcUjuJDTheGFOKARQChrcqYtVe5DJrFkzKF1zEk0h2fFRIfsvEWvJb
ZirJ/xnC8u4uBCdYSmD64V/DH0LAoTN43SWkSAoUghDX7BUYti0oPKjEtGsxB1bHgv723Zy5gKmM
GNDQgFoQAHpKjYngI8qkwZg4DyInqTulwXUNFBRweJVw4SzCqXKWdWYDrmTbWB6vczO+jDmSb56O
SZLLfFrMabP73Db0LgCRR4kgjTiC2VU2A1xHb2r8kSLW39NXCZDWmZtXJniW3wBX629ge0yQ+a93
rDr1iUdiEiXwMwokogCU5ymYJMa5k0p7RqJ5tTtW1jj0IFpD5O1cbIiGZWJp2j18wCDXMZ7CxpMe
lQM3SoG2ip5hvRg4uREcwawiIYbZLIUsLcCJISuxTEus2eLf9w8fdgs7Oh4OKZwANNWxJDmYdzgh
lmQwBTlrSgNJ3qZSkuUoy+kp6VcRMkupqPMa/f3L8Pz4+PwRY7d8jF6M/91ilImCS0Sihx+UIFWN
NZijK2kXjEasSRKYxwsqcB7/lCKcXyikn0j3aunVqo484y8Rd08jDcPXEYOPwI8aPYI9Q6QjuYsy
BDBIDiAsBxePCDiRJlJmPLmISebRL9/W5Sver14qV71Ox7FIC1ilo8Th9uXD+6+fbh/HeDGVE1rH
+7tMuFZgdzU61jwY0hmCRBgO3FgXNbiJ6roquuMMp8rnjm8Ua2DrAhr8sDbBH4f7z2jJ+OgziRFB
OtCHFDZaSJjELGUAbIsFqU5JwGIeTFx+FcsAU58wCvCkXMz2dr0Yuekb1D17Mit0AkfXnAIQygn0
CfjjWF4rNDhNmXdEsyiydoAW/R+KKVX+1Rkyq/lxsTbVNzab2qgqGP1ppIedYzj8UIAVo0NuGd+F
QDBeIiUgZgzp5OSINeAu2rNJt8txS7k2jQ2khpouCalGvhxU8JiUNTEU7HW6z9oyokE8rRAegXY3
GXOzI3hPIdhkE3uNzVRYgtPsJPMrxVI1W5sIqm9piy1jPGr7q3UkKRmz50EN77NFosvGZNVpLFXn
GAMCTQ1I3BsAq3CAtHdX02QspzrDkbF8rVzWLWsta6iWdVZ1M5az0Ix2hMcDBZ4zvGOe6KgsCVrr
P6q6TytiYxpnw5g6sIj5jPs40tv+AQ7Yp+GhyK0Dt8dRGeB8eOQik5hll7PpaNQRcJPPjp7fhavR
T0XGq9eK1Vi9Bu3U7s0KJkc+bT7ufh2O5S1wxOV0ygMVRCvArlJoODycsM7zRDolQR97acE9rdJN
q8FKQXrZEkSfKOkabcz3jx8+7E/4zFzgFHgMgDiRxRFQksJrRQEAFPZ5QkOhHP095V3Lec6Xei3f
rFZmWiszDd6CKj0GcJdBCzgG2lBrUeKR7hC5hmCneCcyGETJvATPPxH6Ouk3jRer9TS2zCF9bUHh
uBsvD3O/GaabFb7nfeKHqBBeeyEBWmBYE6oj77xwoQvShmRpMOBDXPNTHWY4oY/3T4sl3A2NzQYf
nslz+8tfFUYB1ETTaMHCOUC8kqPT78Frs3AQAEhpklhQgCD/YNx6+UYlumqJ3h9ch8/9pwV7Chkr
eIgEfB7hDFi8CICdYzCGZAA4GQOG2avKcViMUc29bcy9pYe5f+jvdv3DZqhjP4Yk+LZYl2W2eBMh
4Ewq0NfGu8y9B4nSK3mBpQSF8ANbuw3w0UyAt9u8YE7BkTFScgqqbgSfTjs4X50gWEPkQFMbJSLY
G6lA0wFqy5Wiq8a6KadUDTnYUEV7dw/b+QZdHPPrWaIqCA+2gjMNbpcE6BgE7ajg4A6ANnf0bJD3
OGwplF2faUZJnex+yPTaFjcCU8YXAHm8dRKYEw4YHf5UUw2CzxEOdTJJSoBa3OYLVm2a4tKdwPq9
m1L2Yb0gpusapv7lbvf45nkfDXL4t0VdDWUTr9UUXdcmBys6IRUiWZlB/1rXgacL50coZu150LEc
/ITiXbxxU8rd2DJcmePWfXz4dVGBivIyR1QkLHfGa/ghYMPCgbeqw8w0Cf6SDyrUm3Yxyk05VWN3
yLs6XnDYHX/561T8DxAUjhBsXLRf2TMOKBs0peNIWD7Wj4MqYqBJI3MRsJC7amOc3w6F3HJoHHkj
a7D5Q///AYZ86t/cwl66n/gjxRSZtCg7/Gkcg1+cOYUKjGL2nMWqKhKpEhr2dCOUulTh39RzfIPl
d8iL+s3bfvP398fnxQJMv20sYDNH3O5/+9S/kTPFLbqWkfBktOycDgDKMMXOUKSvDkxn7eFDXd2h
L8coJ9/0jcmHOVf4+93D0D+5+w/DoiqOUmYmCo4QPNh25NJG3hAwNynYDvYkMpcrHbh+Na7mYQMD
nCgYaYpZLNPSNRZgVtbpYv+IiH2nwuoR/QrctQQwi+GYg4/kcFjgCxCGGLxqixeckP8kHfof8UQO
SSyW1JuGvoAPD7/cz8PXTx/mDO/xB9PaCGkE62JCMB8CuuzIPsgjFaCAQoptzpTlWJUQa1+d3VJe
32oeUy6FOFxlKvhRDNZIGYbSEEdB2YJ/IbIWTggLW/pszmUjdsBuTcMijKVQuulg9MOnxwdkJXvc
YIO+xcVKstl5j+kfSKOZLfJ6eNNJ+NJIwB4H/Pe5GMVMF5yM4t1yfT1trW/+vn956Z/6h2c4DbO+
UAfCaO0yaHiAEWBpzFSjDtrTddFwqqhRXAnW/L7rQSuJ1vdWbHt7VCDunQv/XWmODGCEugTYGoOT
HPRF5wPYCatpshaMlw70z9IcC/mKhW2HdeiPL6oo9ruw/3Ks3lFTzFlyF6TviEQefQnOqUFyJUac
YsFpIhI7t63nAW/KiWVDGrra2Nhe54cBL3OHp/mC+RBZUXxSaoJJCz4YnDiwGWmkbIe/ChO8BCk1
sddxRTTmOrGxG2+Wq2uE/ODD7SFAsXn8/HW7uz/6HNTsCVJIUCZyLMces7ZS5rAYCu4meJbgRDtQ
3OoEDdRyyFKau/XNCRekvsZvZsxgbrGwKSlMfbAZL3Ek8lgKA+cu5cSwbJXJ8ykm52Fx+KYNhwGV
r2/s+XZzt2bjmFqOTDJzAd8lbtwkjIxS4beo2UTIYkHnIbRPiUWifZaXjN2JC++wf7YUVxC6Bm6Y
1l2Je9tvfn75XPIVqT3Toxoj7aC6rCKYK8GTQ4ZOBd88mBRiueNRCaLjVZfgvpppuYWnZ6X8d7Qh
/3YuOrzbffncP2/m/GQ4doeomlMULDAPHRhktyc1xtigljFS5lxUsZ22V45ZiENJQxyq+5HFbtzw
T8Om4FNjfA7mS61tzg683wjuDncRvHdktQK7gI4Jo/FE6Ug9aimSvm2JNMzf0Nf7u2NS46H5SYjg
a2H6kMM6Bx4NHh+JOXMSTnTUiat20cBxuEqKbUOKzZxk+e33P66SmQR4TlLb2DmF9SCOWlDiJHWJ
ASxI4CCYpF8pmekweynzpvVjbup6tv8Znt0LXt3KMXtlSmRl3kct4Gc0iRok8QLvAJNynCVcgGEN
YISuJPHCwU+SLeDDSuhNQ+hhRqSregY5Ccy9J9QGcLMtbj4Ftsg5xjoqvIStx83q+v102QJM2MgA
E8xsB7bmJMKa7SXqU4rpGKPtnMnYaAlwEni0rvPKMQs+raXWXZ2uORaEn87WxMeF4My2BB/4wQi6
n/IYPFgawTHBVggakfEpGiQojkiqHyMobyoS/OLw/Rn2B7mHivBbKUe5hGENBsUYwygs57vhCel2
MIa3ZBM8/ArEgvOIGXgxIO+GiaHD3gkdVYBePRHGhqs2cGOaE7TE6xeLZYl18wP8cO5D83HYfbrr
77v+y8ORssOaQzhPR+YTj6lTJGNmJCBCZ1nqoiMp28ixNUW5v9cDVvKYljz2mHj/6fHXYQmY+Jgs
DgYeqdU6FRIohqAY6NQcO+yClqJKRp6oxqrHq4TpG8LYTaWqxvBu6D8/v+A1wVRBOhVW6+wV2D3R
ybFvhwyiM4CUO+1YTBHQXKSvcu2/lOBMM4b9G+Uae95Y4x1vpAG4n8LfIipkPWIUqcHkT+yg4DSC
96NDl6xGng1M00sGlHNWRmP2n9HqaopYnOUMSSw+LldwJ1oruFutAMlRJ5tSlHICgBWAajsYBKkb
PNZHCozzSQHqG5DhdWTax/FPCX94Xkk/NKTftu7JF/lMR41iovYOC5iSx7scosH1pWDTiefRas6C
lZdrOy5kMhWvlNJvZUv6vq7yeO6fvxxT00ZshubRSalQxC445AAHKAZ+O3L00gygPAkhw9kiysW4
lVgNdAYGt/pSq+KZXd4dOjXBmRhrKSmIYwON8O0yCxsbIK3h4IihKU1eRxvd1eSDOP6ZAhp4elOK
2ziY0q4K3MrkCTpmikgwJ3LM/hNSU9jRoMqwmUVinY9KIxk+R41tNbvK3FyRNnEyZQJkboDUMfq+
79z0/ZTfUwNV8BRiIFR0LCDvEF4aWU1cx1RmlOas1YUk5d8BVBcSFLJr2dhIessaF60jKV2DzQww
aTaSYN9VNE0ZWWFish1gWaHAq+Ip5osHdBz89OYZHy8Fl7RfIy5Jj7Gr346lAnJ0NE3QQYMhJ8KP
tFPjxYvA2IPNYOCpcxXt1G+tOgGYgrXmncmv/9U/HWdm49Q6RAXOuMTyLjeRNBmHvTEyx1ZvNqmk
q94Yx0GKyZloTI6dIQ+dqeCr+ult2etPT0z2jNCUVcydJLjZgodDwvFa35qQrQSDfYHG/fqWVCsh
qjXoxhqkqKzZIYTqX7ZbZGSkIyu/ebOvrAfEnTzBYAEZu5bC7rPOd1mDlbZUa1jWtf0vjrOcbnxx
fKdci5SttegqzoiO9qF7wuFnweRyQMQ6SG2wzga0Fw3o6CksCOSA/oknlptLJfbluIV0fFhDTSnZ
3Mfsyy/3u+eBH83WxIvrA1gnrVPHBDJnJMB0jkbZUYcs0gIMMOMVS91yoJtytk1LhLolyHTL+/Kw
A2M3+ic/PkwFzcsL3iQ5l8KyTid08GjCtsWadcLZAPDGRHkhS2Ee+cztLj6uVrAOKEp1O3+J/nv3
voqQCwtbEOtinTUgKMMi+gROXQLfR1IYMas/K0J+lO6mlL/xs2g9W6xf3+6+HNNG6eipUlgWNsEA
lw481QRK1EcsWcXuldwwT5z7kxa1kK5YFfI9rle1ukB6+3L/vHt+fNl8XAW+8R5ATCwA+N+RBYPb
TLPqFOdIEo0x6iBZRxi2gcyAOuRV+OjMpAXxa/1aucDGDRJ8OKcZwBo/g6P39H/HloSj8+izyYFy
3iUs9eDRgd70lgAUJdwmZjBz4lS/hXLAShzbEGdTe1Y/3u5+eRmzDuiYL87p2CY5S4WprV0ISMnl
AbkZ5UinaSaaMg1e1VXV74fR29/n4Wkht9005LbDzOQRfsjv4R8NRX8tQJpGMI8tW8Hd5ZHA1sfr
WBoZYVkH5mSFH8phSgka6W1yM+gq+eXb4XHZmGbEXURrtIFmChZm44Xo4siDIjh8hQFUtorKOUJE
YJxf193q8fwF9+KFm1Lixhd5t6eYWRSUTRGR0is1kSqlQ+6ikGhlCLbmAnWJfayxVZqz8qqmK/vB
T9UEjA9vSvkaVvHO8EWVaX+7O2bITeDRMYa1KEYH9EExkzYDlnOBZGaI8cbbVZnpPEo5fSPkIu9u
Z9bWH7571+yJ7MD8CbwikWmMQ2ns7uA6raSkNhn0kF+zJ/JCjFL8W94Qf9Ngjcf8mX730GyjzZwD
/SkswDe8+kH9ajwB2xIApDPsWp75lbHaeZqT4dr5jXIhLSVwd3eiWvDL14fnj0MRhMQ4EZ+68Uz/
Myq1oHM0ssvUEyxHDp0Z74YYgEISvMkXWGP+k5yTqSbw/VrCdeHg/FL5VayJE6wcBKuO8du34f2s
w5ker+9ysNaAA9KlqDDFXCDR5ZiDB36gTBkQz1U4HMc+YRHhyVJaRdet3PHDuwOv1TTXG388wXQi
+TWJW5o6iow4HI4NHqDcKaaIBQhDZKjS7cqBShnWnSutAjtQbZ63w3OPzY/HW/wp5Q58kzdjt0hC
gghexg4gLFYLUlDeAlNYuSXWIGFsjK9HrXGQ5BTd/PT0plwOb61xOF69rQIa3Hies3XYOgGzggxA
jAhAkQaXSDIhglv2WgGNxq/SIGeHD+V8CfOvL/fPCwIBPhb4EmWI04CN6Mig7GzCLi14bZQAFnke
I69U+3KYcn7Z2BVc3R5ucX+N79+VoDrmFD0DTCYsbkpDeIempguKRq+ckIHHPwtUz8LdlOI3Thss
s9rpu4efi1v+qYh6OnkmEQYDkQ6wNPbXABztBKgMAKSgJUjSLshXuSN4OEHdCQ+KNYlb2VjT7UzV
+Ha8pT8GccTY8YYihwPsEB4YkpMZgNAxdtRk7plIamLIWGyTYpRq/qEx/7Bitfz48vDz7uHD/hs5
tI3B6PLokNkICsTKToApxbYxYEMp0pTBzsnae5r0VVQT1TQnYnDlS8VypG1se4lpqLwZQvzu79gO
boKzQquR2EWSrIIGt0QiM4oBJAvnzyOHl1EeDiJ8wdeFEE8VISxeKIUfWEv4mirpbf/w4enx16IH
q+JgOhhYPBkMphlKgDNCGQCFjiZCfQCLf5Xt2499Qjfvn1ZSq5bUdaOqz0+7ZdHZm3f49/F0jnhs
JNHm2OUu6dxpA94XRzYHgz2hJYOTmXLk6kIviitP57tSljLAtiuL3mAptrW++YRu+s3H4ciwgzEX
mSxgSkx7whakyo+N/HgHVjZRqqhwsX3RshiqEGHLG7t6q2gjMD722sCdgbVgVMiJPtNETzQYdG+x
DgS2CtgVbFUNXyiz4P2AQrm4pceRT2/o8XEptWItqdVKaryqe9c/DBNp6cR8aNWY3plCMA78Mszq
ABUNcmePlF8UjKPXxrpX0dZLEc7dJ05vVIvUrUXWVLvPT/2x0kmzQyqtEf/u7Vh228aBd30FLwUS
YGVIfCtADnpQhmurKRKn3T0ZTiSnRv0oYgVp/35nKMeWbMlOscXqEMTkaDgkRc5wOA8vBUbku5EQ
aHGmYCf3osBNTZomEmQU7p+MZF9De0DV8a6uvKPrrPtB3fZwv5twKaMkBbYCtKR4S+thTCNMkalU
wCkNqHyX+Uodf4dOZNBug6i8XLT0YLZLufJ59XQYPoRTzjGkurQxJrhCpaCPLrKJoAYZU/Knggbt
Gm+Q7LdciCg/YK36ZXu7jv9V4TK8bbgMq40wMjSwSPFAirply0dBFExRTQUnCEwmf3a1VpY13Rf7
WN2k/jj0MRTm6uBDXu5de7WsNhfj0zDiwpXoMcTQzi2kQD1mkQlSTMqXyJP++21DWRzL+3A0yY+C
Bq6eXmDSsnVeLA58e4HzBSyFPS/0YOtlDIYSRhXOwHiTbAQmPnyXpcFhG925QetQjd5Qnrf0RtC2
3F8oRG8284f5YqultPbW1prJC5nxIukqNLJmWhk3opjyKExA3hNwrE9PyyXH+E8k/GrANXrDaMve
Usuy8/3n3hiznofCAGv3UTChMPooV4GMiIIinDnhhOZFsDzbbVX3CJt0HKfcgUK+u3SN+3F216a+
4tA+ZQJD36EzjhfA+oq0cZWfUGFCP/H8P6q+ahDS6EJwHNPbFh5xyMf1FO2stT3H4FiGsQeUmsr4
CoR+vKzjvisSTFjsaZGeCyiPKLu2B6hqkPkoj+8yFMYuaX6/GEjjcYFHA77NPcqrqEg+pSxUict9
5CbSBHhcSV0hYo/5UsUyDs+exONRd+iFeNQk90G3kJsfGpJh6D+7ZzCKhutWkbS1YLfRYznaa2KM
LZaoCJ2gI9jX4iAI/RjY87ucdrZNdGjBqsoG6bk8tt5QueL7FA6v81XN1LkK4Q2ysfBBYEZzZ+DW
grtBDPJSkGAgD81C2bEB17E1yVAtS3w2y9u8nyqVUqV6pLLKYRVSEDYT7QojrNgWuRFLpQtypx+r
KFBnxfgt4hPuTQcaIt3mKI2FnaE9e5UOwkYawPe2P1kV3RMEZa01sDKTMDzQMg9OIvBBSCNkmvgy
Fun/cm1a1TV76s9aeioPI4rjffxivbNU4sitlT2y+6Jn1QhaUxExQ13j4Y2/wRx6hvnAXxjnLJA0
8c4fdEfrc+Fd3iCanWhR5WghHo+UlsCKunMXKiFNgjxeonzEOHJDw/EnBRlKeZyemaU6/hPMsMXN
WotpWw9mwXuOvdvg4VWYXy6qLIGJCQLKFXc9jblTNboxclg1HJavYIYLnog/rq/fkXPiNHwYEENL
fSzPYOHO0djGRW7J98dT7WOsX0wxA/PlwaoK8VwB88SSEG0rO+5+6xgdx/wsi+fVdEFA2prP3qzx
7l6WSxiRKyA1ni7gLLmc5gV5+EXW5bfimfx4XqNEU2xIOX1+Kmywp/LbfPNWcWW7WE433yez9fPk
xzy/IlUQ5Colx+QR/pbFFfHqhZuitHaR2/Jmw+fQe/8NPfyo9QpGwLaHGRDmq6K1O4op/nttOl8y
cls8Ncb3FqBuVotfBG0CsGY9IzuF+BUZr8vp4to6KWXkudjM82JVXsMW2gsykMI+XJLNK6yNIp+s
X8oJ0PayshG8oMX8OtA9mV1Q+uHS+fo8L6cPiwJwYPs7zH6P9skrVJbF6ppiKxcAvm8JmPi2qNbO
tTe88KCo3hYiugiAIIc4t6Y/uPlExv98NqTj+TK4Hd+HI+d6/3SBbquduE/Q6ww/tU2J9lFtwL5W
coigcxv47dSzA93YsMXVG5sOWARNtm5esCGh3+2LXSmHL3Dd8zLn4x35OBiTp2JluVYOr+SH1FAh
u0EvKvuvIr9EUCUR69uLb1UEPqdpnsPPDQHKMJ1KbUYunaHNNUdCLCE3q8eu4dBDJwtHo5uYnH4C
v8eyN9CLab6cry47gRkdOnfjMB6S/n14m3RjhVHwM+euhKk90z7MQk9lsIgmloRwbE6CAtavxQM6
VWZ2ULpA4ROnmTOZJOE4PEdAAKsBQAdZ2DdnYAWFcZ1MRoNPQ5PABHc+FNVXiHVs/h6fxklhhXIE
vf80iG+S0yQIAVOwtIuWoJdIN6TSSMB2GSyLJQZ+63748HdW7fhmHI7I2Znt6X4F+heBz+pl0/jI
q497B+r1YY9x/gVQSwMEFAACAAgAQGG9SFQDjq3LQQAA8iwBACIAHABEdW1wUmVuZGVyVHJlZS02
OTg5Mi1jcmFzaC1sb2cudHh0VVQJAAOIPktXiD5LV3V4CwABBPUBAAAEFAAAAOxd+2/buLL++eqv
4AEuepy2SsSHXkZuFrZsd7ObF+KkXdxFIehBJTq1Ja8sp8396++Qkm1ZtpuoTfcszsooUkekZr4Z
ksP5SEa6ytKAz+ddtPkZLKaza56EPLvJOEe/G7Zlk4/KlZff16vC5+h9OllM+fzo/eXZ7fnw6PXR
5v3KaciTPI5innX3a1He82wep0ldwU8//aQ4acjRzeOMbxb+ZhmqwVDnwsvjB34A+DJQhK5qRl09
5vdpAlZYumZ8VK75fJYm89ifbIib36PfiQ5W3s55hk4HdRy6hhVl4OX86Cae1oAQDRuqpqvERph0
NbNLrUOTmUjVTE1TLsdol23nXoCg6DeEtUP4p6MOZiNsYnoAEGdplm/dhbHSS9LkcZou5uj2toJx
QLGB9b6mmnrPVvHAcFTDwLbqGGbfHA3MXl8fKIoikKPeZ+8TR+M4CTjqp2neRdTWNA3NeZAm4VxR
nMyb3/MQ3dxn3AvX2ilCo5sz9CHNPk3ieS6/gKuKaooy/BLwWQ54N1tq+Jvj9nsDt+c4w/EYdcan
78bDd+8PKvVF866a69fh9YV7evG+d3YKNw0G1+IuL0faF638+L4X+pxHivL+HF3zOxAxRxfcy6DO
sqyrqOoJUoRA170Z/naz1WtLYVhjIfPgi1q5EFHhkN8RMkzj148oU78cZZ+/oPH5/ziXH3Z0ePCs
dALSul00iOczLw/u0R8LvgA/BOn00JvNJvxw6sWJmhfu0oqujfZ//quwmDCPGDzQSMh1pKE3iGnE
0jQDQ6tRzVYwVF2r+MV78MZBFs9yJ834hiBpm86NwGMcPUyHSZ493qTrG0A0pUwhzeQFphVyD/0y
drrdX05vRFN2u/wLDxY578ir789fvy3KYWDmqeNNJqPMm/LXB6CRYEuhDTVqzGJBIfE0yXk2yzj8
rGkFXXegZSiveTDWlyDElXEO43h54Zfxpf8vHuQSD4MQoLBmgHRLw7ZWCOMP3mThLUFs6Rqniyzg
MpzBYJvnr1YY3sN9/C36cDPqdi9ggIZXeXZcCinHyckridDSFL0xQAKDXUqbZWkUT3g4/DrQK1kt
Tu6uuTdPk5eDbzPF2ED/gftr2GgbfRAFgWb7qKwnlJ3DOCoG3Ar3v98wEwL4TmiH910LHyhmU6tt
rllrq5cNDKM2nUxkdy8NPU0gEE/CTq3qDpNWNQaX5x8yAMIzeWu1aGXVgOdePJnLUUExgcBdQ3AY
zGZdbMB0ZTU2LSLhc0xrYtNO4Abeh9u0DxS7Ie7Q1mlQxz2c8ClkHavwU1x9ErnsMsxawiulSGwU
AzasNcHmhyzSqth+vjk/KyRfL5KkEh2vIOGC3l+U9ZJwOVsNH0D9GvVGNQmWikyrLrbwJWOAFzfE
y7nPnoPXgxwouetP0uDTClBHAjLJPkBEA0CkqQMNnX4roLlEZNv7ANnCQ7QpIOKHzwDUkbHpypvP
r3kkotN6SBSd6qQMXzf8S36VzmOZc617IQGz98C2dIDNGsEOTCYmww3YgzRYCCDCdQJ4tkhKt43S
7MpbzHkoGEB/EU+ADEhXYkOMje2bJS4icmSsN8UFOfLXcc2AkNykn3gS/x/PztJ01vlq9fFjEtxn
aQLZ+DkM7LfIT9NJJSJdgbgxEBFwd+FozPabREUPMRqaRKkeNjCpkTky12D6fsQWAcRmQ8Qk0nkD
xKcRdFhJ1Rpjx+Z+b2NDRFirIXbd5NETHZvP4fcyQvQiyErL6C5HKvSDInBZdC8yXROhy26KzI/M
ryNLUiDgj6M4iQW1WzvT8QL4HSixnJ+KyZ6Y++ExgEe0pvACGiEgrupDnOULb4Ly+0XyCeXpi2Fm
X4FMYGSRZrMTsUzLIGiPxm4Xfgs+XUh4RbSiGupsVirGiG2BbtJUt23i/boj6Y+z1BPzcyXNuPcy
HvYXUcSzwiX2TkgQBAFSs6mIeLZu8zqkoms/HxAmxhJRcWsxFLEJeBrNMSGQmcCoJA/jhZ+VNgoY
ou+EcTjawBWmC4giAodORTJbv0WCYQxiGtGbZYXM8A19Deb6KSRbNX/2klDy0ypG1LnexmfoQCRI
o1kiNCCP0Dyk/l7W3NTamw/4hN9Bri0yggRosMiga5C7H0XzWdB8T8g4nE67RBcNujEvOKMLnn9O
s0/bGM0oiqxIC7iFQ+S6hq7+fjG+vT5zVmAkxU8gaLif4/x+fV3krqXabppMHnuBWATsfnR9kZm5
cfIAk4igALZCrKZoDAuj70YipnxKFGI31a5b5lPaCx27MXyUqwQK1RrqjXTGoA3c/70g5oZqZxJD
THWdCeSYcUAMNyxVufXOPbzFtPD/LI0F4NHDw7DeIlhjCsWNwGGLMo8+Axy2pHuWvujNITEYXv0a
bOO6wobrjDZEXf1Kae1SId1ZZGJl2X1/7n3ZNMclxZoGJc2cTTDnAYJcewJppuQSgqBCgt7tLiVL
NZ2HNA6LZB0ChPhFxlKTKHQjhotROUoXSejJ7H5bo8+YATHTGfWyzHvswU2Po0UibRSDBLoLa2pB
6IW7LZjxLEqzaTk1UoXqTUX7toXOF5M8hhu+QBZVzn1VwZB/KtRoKtj2vV2C3aXkDQ+bzTxsWp6G
oY86o+vbi7PLyyv3dOw6vbOz04t37uXtjXtz6fbc8eXttTPU3Kvh9ejy+twd3V44N6eXF64rk1aF
Ws20Gp5vhYXWRSJIyyAtrJqLxWIC4Y/aTSViP6pKhP9ELyemwrSGomw/tFBV0HjGgziKA4HNNhSG
n7kMXq7MG74ZBsUyODUNzEwbIiwjDYXYHJj1WggWezuMNhUC2cJaCLUsbCkQQJsJCbSwgkTXCAUn
682EBDrW1kh0zCQSGBqT2A8fJ+Eh/Ij9fUJES9kMm1wPbDTPvUxsBODVjgb+6o6G0FAWqlMv8e54
Jnc24Pr8cZ7zqfsJJi0+2YRQ7SM8DCnMkugTFwtQEKHE/CA3NSqyd1iwgV4LTWJw5C7ru9O7zC02
WkQyRVbWkG5zeMRmHowGEVj+kPUzni+yZANoKW1W6NwQtzEgiGdRaHDpZvfzHyuImK4g0r8+RPbX
h6h3q920lkoVGXVjG4KQhRxNPdG/5ndunnmzXfCfIQjYS7QSJHqoXtt2e06QFuunlSA95tlDHPBz
kHqVykFMMKntrT1HLDX97diPqYlr22IvEPw3t7Genr4xRFwIc/XMuFO05wFyq5ROqCxSYVrfcqrD
rscTirHPbQJuuBgX/cl1xd5tMUVTpsvNnEYd1td06P5lRddPw0cpCsu9k0aSvCg015JWAds05HZG
w1HEQ1QXtB5DxrcMc2aJYT7n089enLvz+E5QluooCd68OcS7p6RqG2iMGiEQt3keQnrmwjSU38fz
Mqh3u/MJ5zMXUrbOukKxAgiMe5HJxj2epMkdEj/eVsTIsmM8eQuYlp/JCTqp7svoDXfBDRLaLDBk
fv4k4ufAEoC+07KaTdi0SMOddrDKgLkZ+VNvAvl9aUIF1iKJISNwRe5/vKok9jzj4HwBVODkVRXe
txoh0dt6w115AR5yozV40R9vkzyejLzJnP/pVhS7A6+KTcmGG/hgix759tqWn7k3g+YIPMiZ7vi/
pUVMWguqzzHC9626EdBDg4Jdj5fmHJRrBGZT+T7HZC1fcv8bb17xhFBZsGjUqeF4fdA5OBFDVozW
csYqkBDbqu1wPweKFegvAkUe07kSixad7xFXHrapbXk/w5DQ10mx7lDpEm4Z1dxZln55PK5EvAWI
PS5ggN7vQ/z2uxz4WoTQFZ1nQInElvrLTNpis/uFJm2xTf2Sk7Yp+Nro3b5TelrDk0Occqs8awVS
u92LNOSvi+1kP84/x3PuBt48P67VeIsWiZj7AaoIJyedjV+LYdX05JrAYlSxDMM7LnaJQhEy5Ewn
tyybnmDTOSNAuety4/mY5xXBMHhoY8F4h+B0xiGkptk/NoU3PHRm6kHIaUV4x1sdDU28KQciHPAD
sckQOZDu5o43CRYToRdibvm9CLWQ7jY9UAbKbc4ryt8BF7oXwXw6g2lmqbM4FcGMhjOFbmLqcaMi
fuAMr+69OZdHB8plxabzg5BqW7qchiuiQWAvAbJwd7yt7qSzfa3cyW84I0jlGt+hXAp9Qrf07qvS
l3ZjxVZY7YTlSifo2akBTNs8evSkBsvzGQSetbCriZcUfSGe8NPyONzpdDapKDyDMHAWP/BQHpEr
DxjZtHaM6Bm6PS0kT+ner/dt5dai7sDLvWIb3DJqZ4ieRGOHEQToishlEJYtvYWlptCkWu2M0DMU
cmKxnQqLGWK5xL+eCKlRO9HzdA4QYE+zi5gfgNCcl5aspvlCeLk98RYF915WbllAAPpvV1vHvM5B
NejptUM8z4Fih2GdZrnLHRNx3S3WldzPxflGmYuciDoQ9CbH32HEq5PO99z9qhi/eu2Qz7NMNoMN
a6OyUZffv8eqaqIvcyjRSt8j8GSZk4kUdqPZ5dy8eWDo6Q6Oqdi8XmNc2n68R8mqbxm18z3PcLSm
h7zo5lup92r4YN2qHc95hmCiWbgQ/DmPbvbKJpYtz9a8TI5KXi5HJS+co1qQo37lL0maLzphaiDX
nQmScO8GD4Lqf9OaE43MwNarDDlNQnle0n3wslj8GUGxkLCHcq+vTgu2XZxNaryaZNvc11B5rjMT
x0zPUrGvCt+dJSIYrY9yUt3YIZb3jAMYE+GZN/VD71imHDBQ1iemt6osx9KqyvYSQR5PebF3frxd
CO3khY9uIHzwvesLlQW5k3IhQGuaeFt2wDyrSLaeduLxut7qel8mm6sloyIgnoF55SQgvv6F/NTt
/nMim/KfnYO36D/IHg0MOtnRwyXeV/9xpr76i409ojWlpTD0aMT/A9pF/tWL1ZQYg/nEY0UGtM/8
3ZZLf1taU6oMlCPU+LdSDmxrTVn0t1GOpuunP5By2OjvRzm0vzXlwH8e5SA/inLQH0c5xHLACy2L
6y+3LG68LOWwW8rRUo6WcrSUo6UcLeVoKUdLOVrK0VKOlnK0lOPHUQ6stZyj5Rwt52g5R8s5Ws7R
co6Wc7Sco+UcLedoOccP5By45Rwt52g5R8s5Ws7Rco6Wc7Sco+UcLedoOUfLOX4g5yAt52g5R8s5
Ws7Rco6Wc7Sco+UcLedoOUfLOVrO8QM5B0XlWwqf5h5NHK3bTDOFo6V0Eewav2CP2qFl+EVE7dO9
z+U5Sz/z7Cbtxdn6oTYEE9r06UXUDqLlE1CEuslKbmd1Tb4QE6bO4jkrhtE0AQcd4uVSK3l3PBED
hu9VU3n8E/RPOWmIZz031epz6PUr8bOMQ7LPR2n2rtAvZqVnKWd204k/tBg2S69C91o9UaazvrL9
AJmxF3GZ2MhXOywmqwcvNs0CLC8gpvX9T9QxCWn8lKQf/EQdC/3JT9Sx/4x8qPmM/OOeqIP/fvkQ
+VvnQ/TPy4fYj8qH9B+YDxkvlg+ZL5cPWS+cD7F2DbZdg23XYNs12HYNtl2Dbddg2zXYdg22XYNt
12DbNdgfugYbFGuwSLxyEf1mGSXdQHIpCHUMpvpxftBVEMq8L1208qfm+17ocx5BgV8twDjSNA++
QEGw745wVSCQmh4OLRxZQkkYV29ZfqBgvirAeqlJlwX+rK7dpIa8Y2cBKEGZVS8xIvHYVpTZeyzB
2h5YGG8VEGYISzCpl5i+RkUBrRdgLRJeAQpY1e5RBr1KKtGrBTIWRdIS6O21kmL5G2XRpKYEa0QT
zy3OyK42AVnKWXoXQ3BGztVtV3YmTRlmWZohJw15cWV9p6HciJdnXSymPs+KQswURenHiZc9otOp
d8fnotvUPhpSQUhU+6A3g8V0ds2TkGfiPfKo89NPPx2g4749Go60/kjtE2KoVDPgG2O2ivFoODQc
w+hjdoKO3qeTxZTPj95fnt2eD49eH21KW6LQvgBv4qElWk5FtYvQDdEbGEjl+3Fv+Dwf38fTcnR1
NEAz0hx7NKKOSonRV2mPmarV0x3VMZ3eoN/XGcbWLjT7pG7i4ngbVxRw6Z2ahMVslmZ5FVoP29ix
GVbNEQF8I9pT+8PhUGU9OtSHOhkMhqNnQKsKrqLTMdO30BlGRAW6/TG4Y2jkDdwE/x3iQ6q/EUgd
wphmW6pj6+BE4mC1bzq6ymwNWzBAmWWSXUg3RR9GmTfl4lVjR+85xAaYbY56tTpVA6wiZmwaAP4i
otk338X8a5zvBM5GfawPoS/CDxta37HV3pAMVWrb9mA0IDqh9i7ghcjdgIuyKlBfI+YWUM4stg10
r4stbdRjbNhXDWwDPh383O9j8HjfYtSyMaMDaw/S/b4tCytYMfWCoI4VUy46hb/t1DN+5wWPuwGP
hj3woqMOHWsAgAkMLINBP2a2zfqm7owcc79rC8Ffc3BRQykgihnHIDTka+jLiwwzywI3i1duog7V
6SE5pIBvYNuGaRCsGtS0VGrhvgqDv6/q0K+GQ2YafUP02cU8EwPqSNxeUWZZdmTVlVmWH8FEEckJ
PfX/FRz2luPZYCboNHV7iHV9oPYdRlQ6YEPwiQ1tOtLNATNNbJpORWdNirKpiW6ptzVQHmx0qQcZ
tFHHOhR14SegoLQ/NPsU4goZwGiF4an2qTlUHUpIjxKTWY4OKMYyIzk6i/0Mov/RaNkU0ARBwCdy
q3F3A1WqFvp3VyvKlA0D9GCHVTqvhaQxD8T89aGgIajDpHWEWodEOyRgomM4mBgjTTX6I6bSIYFx
bfdN1ez3BtYAm9DAo20Tr7L4AYyqwN9UtNuMzTo1c6Id5hiaNAdadBB7d8n/E3cl23HcWHbPr/BS
G2RhHpYYZXW7ympTVnubo8RTNKlDUtVWfX1dRI6IQCazXTrdXpgpIgS8F3jDvQ8Pysfn+jVg6+fn
ml23X2y9txpkDyjDc7ZZCk1UTNV/EFidU46o4DmzSVFTQms1l+dtRbSyI6I1g7vj4fj2tw/fvqyP
lmysnYnBg7wtIRZ4EFInErmJGSGpBMKtp0LnZEXUF+2oxp7hK07uls/9d7v/Rvvnv0xFGalhO2o4
vOnJ93HvvpHzeVZuc/1y22e8Z85oNR2GCQ6fawyTxbgkMuxGIehGJ4iVBolCGYcsXBhX+VUND+u9
5it7ec48uBtt1XaLjtoLNUos/7l+AqJ7hKZi8JSqmzGaZho58ZwjFhnqAMi8JkE7nhylMQd2Ubf9
pH1x96ONuGw9n4rLLR2Ju7x//Lr6O/JrrB+G3M2tmGkzk9XNdx+hQ/Y6ywBw5IX3RGj4SHBRkKIZ
dq2UYHm4vD+7Bfo67EdvWnFZT4ftK4dZvn1XDu6L5FOtyIsYGPPw3woyKLXE08xIsUFpmFABErgo
5RAn3/18hYscFm9FXnREFsyOUvpq/jJfrV/WS/D95+UWiAzmIpxGWq9xNSvPpPGZAKUrJDAkEc8z
JUkUH2pzRmZXxdVal0v7pc7jk8ljN60GrqfWYh9d48e/3r6///rp7mEErhmDOrqCf9hHsVESxpNA
mvAJ8C9logSgILU+B+kv7szPX9YPb3/qC799/G4Xu/qytPpY3tHHjb3jEWt+ut9rUb15r04CteIG
MLwIVpDYEbMc9Q7Zgkc4iMnR2z+tznasFdh17Eoux9l6Yr41DO0C0dZDQgwBxA8eQjmwWPCKWOQg
0AkAlQDZtQp/3kN2g43ocgoV8cv1GJH/9j7uwjdC0CF0ei+9EkgGrADLCakVoCMzhAJrBqdSpIpf
4wXH2fuCH8cb2Wsv0ER2u3Ij2U9zz7uHl/VT/crfN5yzmZnxGke3nwZGLir6VIRJ4HWhYUFB2Ehc
VFQbjCkVr9Gnt+KZyNp5stERqWKqo+N6pKOv/7/95f0Pb9Rhd7QFp1fGkJwcYIksHGSUMhKzoBxo
F0g7XaPNfu6+BvvRRurlYjWVeiXG6Xi7dHx82Nx92p3awJ1nTA75rX6oKD2VkkwxJCSO2FRAnTxH
ko7SU3CXopURF32is8oZADt9sNFqpTsQceWW+zi7K10+bL8mfB9kwcMrjKpAUTOqIhOSaFOhRqQe
/gK0qDJAOgPfZvGU9mzn+8uZmVvRXO+Fz+f7ZLz4ZyWkdC+TqFGSp2IFkCvSMTKxACMjThZFIrda
CeNYUKWF080szfpr3YGda2MP6z//frJ63VYgFZ6VjoQHhA2AZmywFHghrMC8M/M0jMD8yRzN2pvT
8s3ul3MqzH5b/vj9HjuwX5zrIUUw5bRlMChGAxAtS0jg2VbMjs+xUCTCkfKn09w0Sy0WnfVXZhT9
j12h8/tb5PGBjm5jKcx5xqrLulJsSowRgCEwUioN8SoU7AtDKnZB5HxVAOqs1Tf5zoOnui1Eh7gt
pqn4/dNjBSfr1YAUD9qxQyxyyehSARKMCwA1weq8Q27OFjTKJgl6Sq9RrLtQX7Xuo61ynbS9EPPl
aOOGCPfxvS/HtM1mcqaGEIWfNXFwZpgsyIGlFs10ssAaOpMcjdTQ3AlRrg61WOpCqMVoo4RadHZI
UzdS4sd3+zRTpec17yleY5JzPnnBFbBeRBTQNsPkCvaoOCZi4lyqy9CvSnW3HGzoaoZ3lKb/6HG8
0VXzKdBdGGFH5Ha1fv77y+OX5xOF3UwM2+WGOFxyZgjDnKgAzCuMN8Qy7Ujy0obMDLiTuwq9bxfa
y1ofOIPfpw82itlO+F7YpR25WbobjiUhTLOZA4ZxA1HXPEeRWSDKVwDJFQfyLQVul10tQnLP/fcj
6lN5zqg/ea7VftnZVifmI1rWMzT/4bZms4GcGTVwYcSTkmlgxAoFEDd8oiA0gHC6HmVQoeV3N2jI
ccZnP9zetGpN8dxixdRmPcGs/teIBDGQmiFJbD/V3MW1VPAFkmlNnba6bKWh1EnPJVXGxnwtTMUi
55EpBhvhV3xaa12sxXK0UdsTlz9egH2URGLDX9h+qNWWrDi3iDTAGAYMBwAgCC+Js8E4j4zH8usG
Wic/L3UdbcTeuCluwy83e4AAyX9/fIhP3768PB7q1JRqNhPb8lc21hlpEykOoUJEOFQQ4DmOpiIQ
Mlh2qovbpjOfCrYEqZgItqTz1R41lceHl1/Wn+6eX56+HTi7kINMMUuWbOT1KKxyL9g6ghnYLvhL
jFRHbfj/nZk3xZep2K3W83VH68VqlLF+mj988oAl357vhjBntmCi/qwUn8GQTJYkKs3qqUoFSbCo
bMHVuAD7F/G7q38q0plax8kTjdKa6anSmrMp1ridP6wWj390ivkhFx9MpXHMOgB2hHkXOKyyFABD
HowJ+kqUsVvkLM7YjbcqcN5TYYw09iTl+QUvt5ben08LHtt0NaQqBh+quNsUhiimgkCcTogELiAJ
O+pjuioJ/2273m1nuVOlJo+NdJt3dJNj3Wp4SV/XL6fQVmjvXUmKcG2hB5MJwUEDVhQvNbCt1SFd
G43r3OcDWx1tpZY9qZUZ0+wv6/Xy8y/r5eOnh6EzcXu4WrncgB12NU2lmOA8cxIZ/ErU08B6rkKK
wCZblUUWV5GP7nJnGHfv0VZFZTsqOjramF/WvwPtf7xb/88RGW25lXM1WDqvuXaMBJrgOTKAbBoG
DoLgrYpMUSlxjWrTZc6Fw/FzrVId4rHUq0PcX3798nxkrJLabc3Z+sRscUQP+2OqOlZSABsJQ4tc
KaVbyno6TytAp+q3tHRcVaq17693g6VUgAU5KnV2mWYXtSfaFlWP4UCdmYnEIUDoJCm7sq5U9/rX
d+fN/dd3N614nWRple1Vwj6ekjU1ozNRFdh+qADKRIEdt8REDppthIIGiD/ZSmuQToEU7fV07SJb
a8ja0vHOe5/bzcia5//YPH59WO0KYls7ttbNOBuOQSn8NFNDtC8U0oNQBwO3VVo7nSqNM+5y6vtY
DtOfkf3kiUaBuaMdBRZjd3y3PGZVGLAZ7Kf+GMxYpJJFIFpJVl++huWEgPAJN0wUnlHYNS//dI0z
9e6TJ1otFsuOFks5KuR9uZ+/bB6fDm1SeqjhySwkNSCLhtXWBQ3xI96+ZFZz6VWkkl6q4bWTtmKt
poWk5ZKuRhb+1/Xqbh6BsZ4e72+HPrBDHYmpGbMDBzJcc6WJNywjlHuE8lpr88Fzap1i0V1VmJ8u
1X/T0+duWh06Zr/eqA5vOOxonD8t9pmKsRp6hhOeXQyCDgKZIRNjK40QgRPvdaUR3GkraBKvnPD8
r3juUZYz0eowftNqOMV8K87dPsz/voYlPs0P5qX1rDbH0Jyszwq6+dpEJr2uZ4uZ8GAVz5pmlnkb
55uJbtrVpghhpZwa+evHu9X68cPj4/0APHfYBhRzBjo5AM+QcrACmceCYQCeIeKACalM4bqS21Qu
k7bT+fuv8PSJRoN1p+azWotxxAG8K7f7c1o5UITINWJhAYDhFvmSUeSpaGEoznjLDAC5vnxwMMx5
Fk2W21ZOwXpyHirw+xL+48vd5oTMCYCvLRpm0gDqAG1xBPXkPbGKgtN5UExhlSrcXTwaOJn3VK41
76D2NZfrQ6zbMQF2qM6rgXCoobElqsiUJ9kLhBGfQThs9KRksBCZrJE0tZY4mq2VRM87kjh+qNN/
We5lUMrN5JZ7K2yZ45RXeAEZjJQEmI0SCh+3MVqbh6aB6Ys5TNcK0WkXWwtx8Mn512MNABG9vgSu
Kfh/IIA1FmYE4OOko4QrabQJ1qshX528hOMcN+0qHf0X9Z8QmETBfTNQ9UXEkMGoj/1GSngAlOAJ
0IqsJVtGHKghQQItLrGYo/53+41On7hp5V13lJiP3fH+8dPdw/P2hP+ULMGukwF+Ad5yCZFEWRJK
MSRllnzRWgI+XpOYhvlfjdunUvQfPn2i1XO56ui54Xs7+Y/3+e2ovQWbIhTSDwkx1taoDFSpPOKl
YoEKB6O15ju1txxXb4XuGfdS8XGRISNQWjacYNSfNenwUISTShEWEzbG8Ugs4AzYuOFRB1aCMt8v
ofp8BnfmRp+Vm+I0/HI1wmnP6+Ud6OPRbauPWBhUooXooEVtZ4ehaYBOx4wvxjkgIX8pnjZztkJ1
ug7wy8Uo0C/q/cTnQ26v4dRpphKjiJ+xlhEDWJz3zBMWmFPJx8w8uyTT6ZStSIvee1q50Xtq7tW/
4cbymdpWlor3TkWTifKqmm5JiCipNp+EEriBbQw9ymclO525lWzVkWyt5p26ysF4fr49UgeNLFB7
AYafwzkiMyqm2qJnqmdxBzPVoMQamMlb5C7+HRsRj5KcaQW67dEL6LfoKL2hk76U+8en228Py1rq
czvg4gbo4hhyPw+GAO/VJnfqkP6yJyaI4pQrVLr83aubB3nOpYTdcKPrhk7j5IZSdlrCfj9/egZz
OC1gVyV1LBLoFpmdAVMIaWqLB5gUwilCZU6eqvT/WME+lfqm1W66vRvOFuPtLbuS4w9vTMVTM1OT
+PZTzRbSJJMSaLujCFAuUWITB6b24PKJIT2+0gx5mP/Mdu2Hb1oxlz3Zl/vt+vpwwGC8Fs5UPb02
sLzIEvyNu0ICpZokHgXlsFBk825gOEw0Wn7VW34zenUIvl+f7l6+fb774c3WMZTCqkPbRqqXPKo7
OITQXK8C1WZSkHJuWIgcQezyWxuo2qtmcruT4Md3Z3vdd+OtflJ29JNyHO4GIeAKauhzUtUeXCiK
aQPz15WtlFTP4TVDrlDOc6tlLvZPa7YdG4mqeqKOc+vq4fl5dYDlRu8zhssR2MZxkihsWMBxieMB
hiFMZd9WA7dfyhgn847EWnfEMuvREf/b29vDAck2YoKR+No0KWWEoTKLfG+R+YvMOQgXQwqXgwlm
PNMic3vbSjg3HQkXdFw8ai6wvmFU7RkNEr0DbzYkRzi94Kq2HoFaSc2yiFoyWS4m22bmVrRlx/yE
VJ2GyF9f7u4HesG2ZZVBMmGpjSECBKbCgM45I8iqQAUG3p4kDFSGqyu7dYELxd06fNPKqTvC18MM
cfpea0365f75yFb3r7XeJ/K1y5dTqYkQYIuheEGScUZ6xYoRF9FVM3EjmezlOMkmRc+fb78+bea1
RdZtO/TdtjvfZ8ZibbSTqUpGi6iHtvhjtEwwamr/8GVisJ/5TJ1zP9xK3ekc3UguxwWJbZZY//Gy
fqgTHgy2Xi3Yti0Gr2wQNBArTMWtQLDWZ0FksZJyllyS+Yq2xdESjbCqUxjfKCEOpbL58vOBl1vN
t10Q0fOcwB0djJXaQqwFFQ4u+RzhSCLorlQnc7UyiI73KKkObQK/f/l8eDv1zqTGMuBHJA2XYvBK
SMB/xFMBGC19EpGOzmMOM7QL9yxfycXIvtLd89/90+Lu5elwMKCH+FcTI02lyOQC4T4CTgTLSVDw
ZFgbMkdIPIXLhwKj2c818jQPjbTYdLRYTK+szZ+Wn4e7LLV7ju666OhwtdNaZBJGogu+HnDJ2umb
iawddDIl67z7fuD+IMi5DL8bbpXsdNttjN6M0tN/fZ0/vfxzV7wG2q2nZxof3HB1pBY0vScJQRWJ
3tRiCCAgHVp3dHTbY7zzWh4n70t+HG9EN6uOlVnOxsmhdkumx23taRCcsy1e95Zzxh3FpvjasYsM
FgLXJEZlfGQ2yXRdd/x+hQuXjepwI73rtB7Vvp799bwnwPf7f4A+HaBKLWroIGwGiOKudp1GoEVb
72QLOCx+k1RuiqqTaVoJJOtIMB+3rRx0GtLsf//k/7bvyQfemiFd1dhFBeArq3f9h2oLrw1FSkv8
keUC2bKK4lVLr3OfT7B1tJW/03azcRPcsq/gTqvBokpmRCHRUEA+5iNxBlmNqqIic0pbcbF7vZm5
Fa1zL2szX41xy09zsIrPp8UBOVN6qA7UD8PRqPchMAgmwBFElgnRmEtSK3ApqRKTCN8vgrTynGsI
On3mplWw45DzjTlrUMOJskXGZRVPbjtaqaAzs731FKlnBlCCAHrXc6OAXFgBh014Pz4okzK9+lR7
WObCwfYw3qrTuQe+WTvaAZ/l5HRbz9yAQJXYHl3WywhgErYyPHiqZAXEwjgSvfBGJpAhT1/dwtfO
t9tnblqJdU8NPa6hHq5+HyL8ya92EbOw4LRH/DFZYkdYgDmK+g8WgOMXVpjORf5bF8yP4yMdTE+H
cT1w2VyJ2Vcq3XD0MjQEDWk3ZgCcVLvamSK20Fqs19zQ5IoN+TKinszfitkpW27WywPgelt+u/08
f1qvJvcVY+AyAO6TGBgQqQc2dTKzWr60ySOxllfY3tX3FUcynMhf/+3QSTOEo1Ie2ghO/w3SN4wP
rbvBKUCyRFw9URLMSDLEq5AiU05RZtgYMx4nuWnXUZ3FzRhu+bun9/fzb7f7o5hRo4A3pubVelIh
LMBitsQyWKiByyFgGFCUq5rw2mXOGGvzTKvM1BIcVczs4f+Hd2V8mVgWD5wvK+GvaESx6ltITghL
3ikps3oFLF5/2nJc/aaVz3aEtvOz8fvdz9sr3DO6bYKkiu5bO6mLdb44tBQDFALDO53qrb0kVDE8
2lxeoYhnkeww1Ei+4HIq+YLbkeQfYjw9u4vRS54zUj/+Nv4nJZzO1uMuqWTWCAhSXmMrmLYvKAZG
YrqpmGs+rgX9+O7QuVBbGWtBwwC1VAAYGLM2gSOqbJBMfPgXb1fS5caNpO/1K/rYl5SxL0esHs+4
ptXWs6/zWGRS4nOJJdeisfrXdwSSTCYyQRbdrueLZDHTQAAJxB5fAMlJ6k5pMF0DBQYc3sRdOJJw
rpxlmdmAK9k2lsfnuRlPJUfy3eMpSXKaT4s5bfaQ24bWBWjkUaKSRhzB7CqbQV1Ha6p8pIj19/RN
HKTzzM0rEzzrHeBquQPbU4LMf79ns1ufeCQmUQKfUSAQBWh5noJIYpw7qbRnJJo3i7GyxqUH0hok
b8diQxQsA0rTbv8RnVwnfworNz0qB2aUAm4VPcN6MTByIxiCWUVCDLNZCllLgDNDzsgyLbJGiX+/
2n/cTeRouRxSOAHaVMeS5CDe4YZYkkEU5KwpDSR5m2pKpqNMp6dktfCQWUrFPK/R37/0zw8Pz5/Q
d8uL96L8vUUvEwWTiEQPH5QgVI01mKMraReMRl2TJBCPr7DAcfxzjHB8oaJ+wNybU68WdeQZv0Tc
PRYYhm9FBy+KHzW6KHuGSEdyF2UIIJAcqLAcTDwi4EaaSJnx5FWdZBz99WhdvuL92Uv1qpfpOPDj
SszSUWJ/9/Lxw7fPdw/FX0zloK1j/C4TrhXIXY2GNQ+GdIYgEIYDM9ZFDWaiuq6K7jTDufK50xvV
GtiygAZ/nIvgT/39F5RkvNhMomiQDvghhYMWEiYxSxlAt8WCVKck6GIeRFx+E8kAU58RCvCkXsz2
brkYuV41oHsOYFZoBBbTnIIilBPwE7DHsbxWaDCaMu+IZlFk7UBb9H/KpzSzry6AWY2Pq7WpVeOw
qbWaOaM/F3TY0YfDjwVYMTrElvFdCAT9JVKCxowunZwcsQbMRXsx6XY6bk3XunGAVD+HS0Kokacj
Cy5JWQNCwYGn+6wtIxrI0wrVI+DuJmNudgTrKQSbbGJvcZgqSXAenWR8pVqqZksRQfUdbaFllKt2
CK0jSEnJngc2fMgWiS4bk1WnsVSdow8IODVo4t6AsgoXSHt3NUzGdKoLGBnT1+pl3bHWsvrZsi6y
bsZyFprRjvB4hMBzhnfMEx2VJUFr/WdZ93lGbEzjbhgzdyxiPuPBj3S72sMF+9zvq9w6MHsclQHu
h0csMolZdjmbjkYdQW/y2dHLp3Ax+jnP+Oy1ajVWL5V2ag9iBZMjH9efdl/7U3kLXHE53PJABdEK
dFcpNFweTljneSKdksCPvbRgns7STWeD1YSsZIsQfaakq8iYHx8+fjzc8BG5wCmwGEDjRBRH0JIU
hhUFKKBwzhMKCuXoHynvms5zudRr+uZsZaa1MtPALZilx4DeZVACFkcbci1KPMIdItYQnBTvRAaB
KJmXYPknQt8m/abx4mw9jSNzTF+bQDjuSvAwr9b9EFnhB9wnfvQKYdgLAdACw5pQHXnnhQtdkDYk
S4MBG+KaT3Wc4Qw/PjytlrDpG4cNfryQ5/a3vyv0AqgBptGChHOg8UqORr8Hq83CRQBFSpPEggIN
8k/6radvzEhXLdJXR9Phy+rzBD2FlAoe7H5nItwBi4EAODkGfUgGFCdjQDB7NTMcJmPM5t425t7S
49w/rTa71X7dz30/hiTYLdZlmS1GIgTcSQX82niXufdAUXojK7CmoCK+Z0uzAX4aAfB26xfMKTgh
RkpOgdUV5dNpB/erEwRriBxwaqNEBHkjFXA60NryjNHNxrqpp1QNOlg/8/bu9tsxgi5O+fUsURWE
B1nBmQazS4LqGATtqOBgDgA3d/Sik/c0bE2UXd5pRsk82f2Y6bWtIgJDxhco8hh1EpgTDjo6/KmG
GgSfI1zqZJKUoGpxm1+RasMUr8UElu/d1LT3ywUxPa9hWr1sdg/vng/eIIf/mtTVUDbgWg3edW1y
sKITUqEmKzPwX+s6sHTh/ghsCXVZ6ZgOfobxTt64qeluHBmuzOnoPuy/TipQkV7miIqE5c54DR8C
DixceKs6zEyTYC/5oML80E5GuamnapwOuZn7C46n429/H4r/QQWFKwQHF+VX9oyDlg2c0nEELC/1
48CKGHDSyFwEXchddTAuH4eKbtk3rryRc2Xzp9X/BxjycfXuDs7S/YAfKQbPpEXa4U/jGHxx5hQy
MIrZcxarqkikSmg40w1X6pSFfzef4zssv0Nc1O9uV+t/fDg9rxZgVtvGAtajx+3+X59X7+QIcYum
ZSQ8GS07pwMoZZhiZyjCVwems/bwo57F0Kdj1JOvV43J+zFX+Mfdvl89uvuP/aQqjlJmBgiOEDzI
dsTSRtwQEDcp2A7OJCKXKx24fjOs5n4NA5wpGGmSWS3T0qUuwKycp4v9M6LuOxRWF+1X4KkloLMY
jjn4CA6HBb6gwhCDobb4ihHyn6RD/zOeySGJ1ZJWpsEv4Mfjl/u1//b545jhXT6Y1kZII1gXEyrz
IaDJjuiDPFIBDCik2MZMmY41I2Jpq7M7yudRzVPKpRDHUKaCj2KwRsowpIY4CswW7AuRtXBCWDjS
F3MuG74DdmcaEqGUQummgbHqPz/sEZXsYY39+SaBlWSz8x7TPxBGM1vE9fCmk7BpJGCPA/7HTIxq
pleMjOrden0r2lrfuN+/vaweV/tnuA0jv1BHwGjtMnB4UCNA0pihRh24p+ui4VRRo7gSrLnf80Fn
FC3jVmx7d2Ig7r0L/zPjHBmUEeoS6NbonOTALzofQE5YTZO1ILx0oH8V55jQVy1s2y9df3xSRXE4
haunU/WOGnzOkrsgfUck4uhLME4Ngisx4hQLThOR2KVjPQ54U08sG9TQxcHG7jo/9RjM7R/HAPPR
s6L4wNQEkxZsMLhxIDNSgWyHfwoTvAQqNbHXYUU05jpzsBtv1qtruPzgx+3RQbF++PJtu7s/2RzU
HABSSFAmcizHLllbKXNYDAVzEyxLMKIdMG51BgZqOmRNzWYZOeGCzMP4zYwZzC0WNiWFqQ82YxBH
Io6lMHDvUk4My1aZvJxiclktDt+11WHQypcRe75db5ZoHEPLkYFmLmAv8eAmYWSUCndRswGQxQLP
Q9U+JRaJ9lm+JuzOBLzD4dmUXEHoUnHDtO4ZuXer9a8vX2q8InVAelTF0w6syyqCuRI8OUToVLDz
IFKI5Y5HJYiOVwXB/Wym6REentX0b2iD/u1YdLjZPX1ZPa/H/GS4dkevmlMUJDAPHQhkdwA1Rt+g
ljFS5lxUsZ22V49ZkUNJgxyqVwXFrhz4x35d4akxPjrzpdY2ZwfWbwRzh7sI1juiWoFcQMOE0Xim
dGQ+ak2SvmuR1I879O1+c0pqPDY/CRFsLUwfcljnwKPB6yMxZ07CjY46cdUuGjgNN6Ni26BiPSZZ
fv/jz4tkJgGWk9Q2dk5hPYijFpg4SV1ioBYkMBBM0m+UzHScvaZ53fqY63k92//2z+4FQ7eyZK8M
iazM+6gFfEaTqEEQL7AOMCnHWcIFCNYAQuhKEC8c/CzYAj6cEb1uEN2PGuminkEOBHPvCbUBzGyL
h0+BLHKOsY4KL+HocbMIv58vW4AJGxlggpltz5aYRFizPdX6lGI6xmg7ZzI2WgI9CSxa13nlmAWb
1lLrrk7XLAXh57M18XFFOLMtwrG70SAE3S+5OA+mQrAk2ApBIyI+RYMAxRFB9WME5k1Fgi8O+2fY
n8QeqtxvNR31EvqlMiiKD6OSnO/7R4TbQR/eFE3w+BWIBeMRM/BiQNwNE0OHvRM6qkB79UQYG646
wI1pzsASL1+sliWWzQ/wx7EPzad+93mzuu9WT/sTZIc1R3eejswnHlOnSMbMSNAInWWpi46kbCPH
1hT1+V4OOKPHtOixp8T7zw9f+6nCxEuyOAh4hFbrVEjAGIJiwFNz7LALWooqGXmmGms+3oyYVYMY
u56xquLeDasvzy8YJhgqSIfCap29ArknOln6dsggOgOacqcdiymCNhfpm4T9pxRcaMZweKNe44o3
1rjhjTQA90v4r4gMWRcdRWoQ+QM6KBiNYP3o0CWrEWcD0/SSAeacldGY/We0uhoiFme5ABKLj+sV
bERrBZvFChAcdZApVSknKLACtNoOBkHoBo/1kQL9fFIA+wbN8Dow7dP454g/Pp9R3zeo37bi5JN8
phNHMVF7hwVMyWMsh2gwfSnIdOJ5tJqzYOXrtR2vZDJVr9TUb2WL+tW8yuN59fx0Sk0ruhmKRyel
QhK74BADHFQxsNsRo5dmUMqTEDJcLKKcjDsjq6GdgcCdbeqseGaXd8dOTXAnSi0lBXJsoBF2l1k4
2KDSGg6GGIrS5HW00V0NPojjXyiggac3NbmNiyntosCtTp6gJVNEgjiRJftPSE3hRAMrw2YWiXU+
Ko1g+Bw5ttXsKnFzRdrE2ZQJoLmhpBbv+6Fz049Dfs9cUQVLIQZCRccC4g5h0Mhq4jqmMqM0Z61e
SVL+A4rqhIKKdi0bB0lvWSPQWkDpGmhmoJNmIwn2XUXRlBEVJibbgS4rFFhVPMX86gUtg58/POXx
lHBJV0uNS9KT7+pfp1IBWQxNE3TQIMiJ8AV2qgReBPoebAYBT52bwU79q1UnAFOw1rwj+PXvq8fT
zKxMrUNUYIxLLO9yA0iTcdgbI3Ns9WaTSnrWG+M0SDU5E43JsTPksTMVbNUvt3WvPz0g2TNCU1Yx
d5LgYQseLgnHsL41IVsJAvsVGPfrW1ItiJitQTfWIMVMmh1dqP5lu0VERlpQ+c27Q2U9aNzJE3QW
kNK1FE6fdb7LGqS0pVrDsq7tf3Ga5Xzji9M79VqkbK1Fz/yMaGgfuyccPwsml4NGrIPUButsgHvR
gIaewoJADto/8cRy81qJfT1uRR3vl6qmlGzsY/b02/3uuecnsTXg4voA0knr1DGByBkJdDpHo+yo
QxRpAQKY8RlK3XSgm3q2dYuEeUuQIcr7st+BsCv2yc/7oaB5GuBNknMpLOt0QgOPJmxbrFknnA2g
3pgoX8lSGEe+EN3Fx7MVLB2KUt2Nm+h/dB9mHnJh4QhiXayzBghlWESfwKhLYPtICiNm9Vd5yE/U
3dT0Nz6L1qPE+nq7ezqljdJiqVJYFjbBAJMOLNUETNRHLFnF7pXcME+c+4sWNaGuWhXiPS5XtQgg
3b7cP++eH17WnxaOb4wDiAEFAP8uKBjcZppVpzhHkGj0UQfJOsKwDWQGrUNepR9dmLQCfp2/Vi+w
EUGCH8c0A1jjFzD0Hv/v1JKwGI8+mxwo513CUg8eHfBNbwmoooTbxAxmTpzrt1APOCPHNshZzy2r
n+92v72UrANa8sU5LW2Ss1SY2tqFgJBcHjQ3oxzpNM1EU6bBqrqq+v04ens/j08ruu26QbftRySP
8FP+AP9TX/XXAk3TCOaxZSuYuzwSOPoYjqWREZZ1YE7O9Id6mJqCRnqbXPd6lvzyff8wbUxT9C6i
NcpAMzgLs/FCdLHgoAgOWxiAZauonCNEBMb5dd2tHi4HuCcv3NQUNzZyc4CYmRSUDR6R2io1kSql
Q+6ikChlCLbmAnaJfayxVZqz8qqmK4fBz9UElIc3NX0NqbgxfFJlurrbnTLkBuXRMYa1KEYHtEEx
kzaDLucCycwQ4423izLTcZR6+obLRW7uRtTWn3543+yJ7ED8CQyRyFT8UBq7O7hOKympTQYt5Lfs
iTwhoyb/jjfIXzdQ4zF/ZrXbN9toM+eAfwoL6huGfpC/Gk9AtgRQ0hl2Lc/8Sl/tOM1Zd+34Rr2Q
FhPYbM5UCz592z9/6isnJPqJ+NCNZ/iPwtSCztHILlNPsBw5dKbEhhgohSR4k19BjflPck6GmsAP
SwqXhYPjS/VWLIETrOwFm13j29vwYeThTJfwXQ7WGjBAuhQVppgLBLosOXhgB8qUQeO5Sg/Hsc9I
RHgypVbRZSt3/HFzxLUa5nrnTzeYDiC/JnFLU0cREYfDtcELlDvFFLGgwhAZZul29UA1DcvOlVaB
HJgdntv+eYXNj0sUf0i5A9vkXekWSUgQwcvYgQqL1YIUmLfAFFZuiTUIGBvj20FrHCk5Bzc/PL2p
l8Nba+xPobeFQ4Mbz3O2DlsnYFaQARUjgqJIg0skmRDBLHsrh0bjqzTA2eFHOQZhfn+6f54ACPBS
4EuUIU6DbkQLgrKzCbu0YNgogVrkeYx8xtqnw9Tzy8ap4OruGMX9Gj+8r5XqmFP0DHQyYfFQGsI7
FDVdUDR65YQMPP5VSvVI3E1NfuO2wTJnJ323/7WK8g9F1MPNM4kwGIh0oEtjfw3Qo50AlgEKKXAJ
krQL8k1iBPsz0J3woFqTuJONNd2NUI23JUp/cuKI0vGGIoYDnBAeGIKTGVChY+yoydwzkdSAkDE5
JtUos/n7xvz9AtXy08v+193+42FHjm1j0LtcDDIbgYFY2QkQpdg2BmQoRZgyODlZe0+TvgpqYjbN
GR9c/VK1HGkbx15iGipvuhB/+Ae2gxvUWaFVAXaRJKugwSyRiIxiQJOF++cRw8soDxcRNvg6F+K5
IoTJCzXxPWsRP4dKul3tPz4+fK16sCoOooOBxJPBYJqhBHVGKANKoaOJUB9A4l8l+w5jn+HNh6cz
qlWL6nmjqi+Pu2nR2bv3+O9yO4s+VkC0OXa5Szp32oD1xRHNwWBPaMngZqYcuXqlF8WVt/N9TUvt
YNvVRW+wFNta33hD16v1p/6EsIM+F5ks6JSY9oQtSJUvjfx4B1I2UaqocLEdaJkMVZGw5Y1TvVW0
4RgvvTbwZGAtGBVygM800RMNAt1brAOBowJyBVtVw4YyC9YPMJRXj3QZ+fyBLo9rqhVrUa0WVGOo
7v1q3w+gpQPyoVUlvTOFYBzYZZjVASwa6M4eIb8oCEevjXVvwq2nJFyKJw5vzBapW4ucQ+0+P65O
lU6aHVNpjSAZBBHtvJSYcaaBkxNvu5xyjgp0FEEvItlPhp1RteTqmizCWT//MM09PHEToZSPGcQK
0JIxSksQ0whbZGptBWOWqavSV6bjn/GJ/NDOQdRkIxsr2I4tV97vP87hQwQTAiHVVcGYEBqdghRL
ZKNkCQVTfCvQoHHyimTaCIhoannTv1yi6/hfA1wGOcBlFG9EUi7BJUWDFH3LRY6CKpjRTQUWBDaT
f/W2Dpk15wP7+Limfgl9DD9u9Owgfz6V9ho1MJdEmfNCdgorhjjmuTkG1GMXGZuxKV9UF+v3W1vZ
L/V9ME02C9DA/ccX+Gi3D5v+flbbC5LP8gw8zxFgvZzDVsKugg2MkeQksfHhVZkG8znO9wadvlWt
holNYzWStXp/oRL99LS7290fvJQl37pkMxHHE/Gq05hkzY1OnWfY8shF0PckmPX5sl6yHP9Cw6/q
vWo1nDV4y6TLzq+/n5Ixp30oEoh2iooJg91HvQp0RFQUweYEC414uJ7tXNXTgDUdy5Y78KMYg67h
+3D7oeW+EjA/4xKh77AYh1i4X96kTtPIZHI0Evqm7quKkGoJdonpXX5cSMj1wwrzrE2xY3AvXSBA
aRqSr0Dpx2CdoJ2M2LCYGJlfA5THIc+xB3hUkblWy1iGRuySf/d2dD2KIsF3fkW/bKLJaaDphsbE
BwQ0rjJeHGb37okwA86aU9wIZm7//VV1oysOyG52c/1gYndRXf1FVTX1Ud+/GEjjZYeqAatyjzIV
Fcmg1HRtf8AM5CZW4KC6Mh1w7ummYdme5bmdmri3bA+94C3r5D6LBnLTW0MyDP0n3xkmRcN1eZFU
WbDL6LEM7TUxxpbp2xN0gp7Ae81zHNfwgD3/kNNO1UXLLZhqrJGeWu+tN+zUZt9TOLxt8ytTZxXC
G2RjboDAjObOwK05GzgeyEuOj4E8hOlaLS/ga2x1MuyGI77ZpE3eT+pKSV09UkvlsHIpCJu+GPCA
S7FtMpiYU2sAcqfh2RPH7hTjK8R33JtubohEk6M0VraG9hyqOwgZaQCfq/6aKronCMpCCGBlgW+i
QmvqoInAhrACbk19w/L49H/5bKra6iM1Ng0jtW4jiuP3+N3hYqnEkFvbUmU3+FBeIwhB+cQM6CDQ
8Yt/gDn0AtMA/mIyZjoW9fVuRXd56ArvcoaoD6LhKkdw/vLu0hJYUXvuQptbgY883kL5yGTIDQOG
fynIULbOaMcqXeO/wwwb3KwFT5pGsHF+RO2tgoerML+MqyyBfuA4lNlsoAvMnSrQjZHBqWFwfLkZ
MM58/tvv6y/k3NGGbwNiCEu8l2ew8uJoLOMiN+T7Y1NhYKxfTDED66XDqXJRr4B1Mn0XbStbvv1e
Y9S04N8yO+bJjoC0td2crfEeT/s9zMgISPWSHeiS+yTNyPM3cii/ZEfy9XhAiSYrSJkcXzMZ7Kn8
si3ODSM5xDIp/ok3h2P8dZuOiAqCrFJyxC/wW2Yjol9XFlkp7SKr+nrHXej1X0MPf65GBTMg+8MM
CNs8axyObdrWz/WpfQrJOnutze8aoFb57htBmwBsOWzI5UJ8RKJDmezG0kkpJMes2KZZXo7hFTp0
QpDCPvRJ8QZnI0vjw6mMgbZTLiN4QY/p2BFDK+xR+qGvfT5uy+R5lwEO7P+C2RjSGXmDxjLLx4aB
8AYgvfSEHzVU1VU/Y33R06Hqui9E1HMc6Ipo62A2Xz2Q6O8/A9JSPs3X0ZO71MbfSxto1ax5M4Je
Z7jVihLto5qADWFbCwTdysBv98oFtJBhi9UTRQssgvqVmxe8kNDv9iRPyu0DTAz1UPv4SD7OI/Ka
5ZJrpfBIekuNQe+A9pT9V5b2EVQ4FoCeHzw3EdhOSZrC34IAZZhO5WpF+tpC5pojLtaQVf7SNh1i
oYXucrnyyP3iUNgLZ9Beku63eb8V2KQL7TFyvQWZPblrvx0rB1Yaao8lLG1H/8RgQzuEQxRLEtwo
uANqI9bP2TM6VYZyUtr3AYLGse9GbhcBDhxDAJ2H7izogOUU5jWOl/OHReDDArcWitdXiDUK/oru
46QU1AAEfXqYeyv/PgmcwxLs5aEl6CXSDmnLGaiOwT7bY+C39sIWP3Nqo1XkLknnyg7FTIH+QWBb
nYraJlebW+1BWAKYAaJp/wFQSwMEFAACAAgAQGG9SGPHzWZXSAAA0acBACIAHABEdW1wUmVuZGVy
VHJlZS02OTg5NC1jcmFzaC1sb2cudHh0VVQJAAOIPktXiD5LV3V4CwABBPUBAAAEFAAAAOxda1Pc
OLP+fPwr/OFU3iELiWX5OsVhCwbIsuFWDCRbZyvlkm0Z/MZjz9oeCPvrT0vyzHhugMjAm7MRu0UG
X7qfllrd/Ujy+LwsIlpVXX32Z380GF7QPKblZUmp/qfje771RTsn9c38pfDz/lORjQa0ev/p7Pjq
5OD92/ez92tHMc3rNElp2V2tRftEyyot8nkFv/76q9YrYqpf3g/p7Mk/PGfLsfTOKanTW7oB+EpQ
pJ/PGXV+X98UOVjh2YbzRbug1bDIqzTMZsRVN/qfpm1+0a4qWupH+/M4bANp2j6p6fvLdDAHxDSQ
s2XYW6avI7NreF2E31mWr28ZrmFoZ319mW0nJNLh1B86Mt7B/7beQdYhchHeAIjDoqwX7kJI282L
/H5QjCr96qqFcR8jB9l7xpZr7/pbaN/pbTkO8rd6jrvnHu67u3v2vqZpDLm+e0e+Ur2f5hHV94qi
7uqWAT96RaMijytN65WkuqGxfnlTUhJPtVu6fnh5rH8uyq9ZWtX8AzSVuEzTDr5FdFgD3tmeOvij
F+zt7ge7vd5Bv693+kcf+gcfPm20rmfdO+mujwcXp8HR6afd4yO4aX//gt1Fat34ZjQ/YUjikNJE
0z6d6Bf0GkRU+iklJVwzPtfVtrZ2dI0JDILLgz8uF7y2EYYMgxg+fNhqHQhN1iB/6rrjOh+/6OXW
t/fl3Te9f/I/vbPPSxweWpY3gm50u/p+Wg1JHd3of43oCNohKgbvyHCY0XcDkuZbtWguAyBMz/xO
bkk/KtNh3StKKgD+18RiZKAQm4nt6r/3e93uCYF2j/eyIvra7R7C0DlmvbF4qhrSKCVZ+jeN+3eU
Drc7i9fwf/o1uPWGsakvuYDfeQIdtIE29YRkFd3pbOi/6MjDGpK1AcVhJGkDU/8bzYa03G60P4SR
AbMMzZQGhjFZpf1RhdjTsKRCM/Ecu61wNwPJpC7Kbrcu75u/qDC8M4JodZ3DiMyK/JqpNBHWLGmV
huc/rnJRGTKRZssqo6ERrVBGGk39rLjrkWqJRtt2NEdKo5GgGPvkEY2LmlxLc6UVmXimHftDEtGp
ks8pZJtRvU+ruhxFoH9Rq4U0T1orSpoG/Y2SoZQ6ZHiaL9eBhokSRPTbIo3fLtN6Fv6bRvVZwiL9
Nj//e/8wzUkmTuwssdnUkCGLIYac08Iw1t6jWbZU6wTpm019sRksT0NIFkJkJPqiqm43gigOHsVP
HXyjEY+hbzfFtX3eF6NycmBvVNe0TLL7twyJA6HTlAOCEqg/hCzI0qKvDwbD+l7geRQHU4tBLZZS
62M/waFeQBAiLFOf0juhjw1SX2MVAZRn+uqfRpqJKfUJNUwbObrBoPi24bqGazu+hQ0N2ZLhxfQh
2WZZmtcBVHzlPYuJru+6GsiXkoRCYlH9dnDApFwW0xt4e1kacuUazHRj2oSh348uWWHT7VLoltHY
Vz6djDsHytS66IFPH5ZkIHrIROCinpRGL8Se1USGoxycbFhS+D2nFXRdg5YDfoxA5TsGseAyv/dF
D78Vg9aGYetLATLNBPmGEEZvSTZ6YJgUozKivLjnTv1mguET3Ec39c+Xh93uKZSr8XldbjdCmqpx
5w1H6EG2N2QBmlD6cmnDskjSjMYHDwM955el+fUFJVWRrw++b2nmTEj6TMMpbH0RvRd52PBDvbmO
KTuBqlKUnxPc/3nDXJsVk0ugvbvpemhDM01Jqw1qeFOrxx0Mo7bIMu7ujaFHOdCSLO7MXbrEpMkV
+2cnn0sAQkt+a/vUxKp9WpM0q0QcheDdmUfwLhoOu8gB8mZiWdMSM36KaTI2LQXuoFW4XR9wW3K4
fcPG0Tzug4wOICJPwo84+ihyUYt5Y3iNFI4NI4bNlsHmEsMx2th+uzw5FpIvRnneio7nNI/B+8W5
3Twec7eDW1A/RT1zGQeL2bzDvFjRlpYFeB1JvDYNrafgJWUFQDgNmQDifAy75ipApgGAXNkGdGz8
XEAVR+T7qwD5rIU8WUBmGD8BUIfHpnNSVRc0YdFpOiSEU+004euSfqvPiyrlMxBTLzTB7BWwPRtg
+1KwfTNkyXAG9n4RjRgQ1nQMeDnKm2Y7LMpzMqpozObD9kZpFgP546Wrw8bG4s0cl8lmjLAhiwtD
qfQgruFoMLwsvtI8/ZuWx0Ux7Dx4ef8+j27KIi9GFWPGm3pYFFkrIp2DuD6t2ISWaGhkrTYJg4dg
JGkSwXYsYZKUObzWsOzViD0TEJuSiP3EphKIjxJwWD5xKY0duatbGzkQYTGWxB65NHnEsWkFfzcR
YjeBqrSJ7nykgh+IwOXhlchsA0IXtmSRhYn7MLK8qNPkHvhcyiY6p43ZIxH8fUErnp9EsofIuRKe
xeDZsvAinOh5kW/dpmU9Iple34zyr3pdrA2z9QBkk40sqezkJJh6jqmv0AiE9IZGX085PBGtIBh1
Zi8SY8T3QLcrq9t30WrdCW+P44Kw/NwqM25ISeO9UZLQUjSJvxQSBEGA5MlBcgzbp/OQhGs/HRCC
EqHTvlUMReQCHqkc4yWeHTmt4qE/CsvGRgaD+U6cxoczuOJiBFGEz7VhVszO38LBWBbENEsqsXhh
EoeOPQVz8RiShSt/I3nM+Wkbo965WMTn2EAkLKks4WOoIwyib/3ZXDmrdbfapxm9hlqbVQQ50GBW
Qc9B7n7h09/QfY/IeDcYdE0bOtSayQu9w1Na3xXl10WMbpIkXmJE1EOxHgSOvfXnaf/q4rg3AcMp
fg5BI7hL65vpcVa7Nmq7RZ7d70ZsSaz7JQhZZRak+S0kEUYBfM3CsmgcD+nfjYSlfGxqliWr3fbc
x7QLHcsxfOGzBJplS+pNbIAaBMH/nprujOpelkJMDXoZ1JhpZDpB3KgK5p374Aph0f7DImWAD29v
D+Z7BBmWZjlS4JCHLYKfAA55vHnGbbFbQWFwcP4xWsR1jpygdzgj6vwjxnOHhPTeqGTrrMGnE/Jt
1pzAFHMalivX2CaiNNKh1s6gzORcghFUKNC73bFkrqbDJoNFsQ4Bgs8Mc+YIbjUTw9moPCxGecxn
LZdoDC3LgZjZO9wtS3K/CzfdH45ybiMbJOAuvqwFMYmXWzCkZVKUgyY1Ys02ZEWHvqefjLI6hRu+
QRXV5L62YKg/NRvJCvZDskxwMJbcbmHblGth1yMGAh/tHV5cnR6fnZ0HR/2gt3t8fHT6ITi7ugwu
z4LdoH92ddE7MILzg4vDs4uT4PDqtHd5dHYaBLxo1Wwsp9UhoRcLraOckZb9QlhVsWlnE8KfbclK
RGHSlgj/MC83AZwtKcoPY09vC+qzJdokjRg239Fs54kT6s06tUncOOIT6hY2bMd04aBmu5JCPArM
eioEqD+0kicrBKqFqRDk+h6Y40sKCY24jcS3DFtzDDkhnoWMKRLfxwyJA0MjS8P4Povfwa80XCWE
9ZRvIZfaka9XNSnZQgCarO+jB9f3mYbm5NaA5OSalnydH45X91VNB8FXSFo0m4XQ9hEaxxiypP6V
sgkoiFAsP/B19pbsJRbMoDdi13SoHoyvDwbXZSC2HbBiypxYY3bl4UGnEBgNLLD8xa8vaT0q8xmg
jbSh0DkjbmZAmMTD0OG8mYO7vyYQEZ5AxD8+ROvHh2h32246V0qJilrahii2YqoPCPOv6jqoSzJc
Bv8JgoC9JBNBfPl/bgPHU4I0mz9tBek+LW/TiJ6A1POCD2ITmXPbNJ4iFrvhYuxH2EVz+y/WEfx1
ufSNIOJCmJuvjDuiPzf0oE3pmEpRCmNrbm/FPOz5eIIRCqlvQjOc9oU/BQHbySRSNLZsvoVCymFD
wwb3by4MwiK+56LEtggpSSSJ3amkScB2Hb7jQXIU0VifFzQdQ85zhrnlsWFe0cEdSeuAbUgAytIe
JdEvv7xDy1NSuw8MCzux6cEgj6E8CyAN1Tdp1QT1brfKKB0GULJ1pheIGUBg3COxdr/N9kHwzRCb
LTH83DbKNgHT+Cfb0Xfa6zK27H6qxPOsyOH1+aOInwKLAfpOy+ZsQq5nym7aSjwbcrMeDvg2lMaE
FqxRnkJFELDaf3tyEVvzTKOTEVCBnTdteM81gqP3bdntXwDesOIpeOaPV3mdZodsU92rWyFWB96I
RUnZ3WWJZyWhP7VFbE2qIgI10zX9j/SIiyU3rDEjwtCbNwI8NBLsuj82Z6OZI3Bl5ROKzKl8zv0v
SdVqCaZSsGi9M4fj7UZnY4cNWTZam4wlkJi+J7l5jUHxInstUPg2nXM2adH5HnHNZhvZXXGJF4VA
g8WOtKlLBE1UC4Zl8e1+uxXxRiB2W8AAvd+HePO7GvAtC6ETOm+xfUbGupI2QmtL2mxb3DqTtguF
7+fLQ/2clNAmNNPFjtrxnnX5hI6wAwl9yDrgJohuWRh9Vj7HiRv5djv6FHnM16KDW1KmbIuWCNIr
wtn06EBEMrHuI52pLSD/ht6smZdsCf+4YHNW8Lk3RgQtd380GGazs2/8nn5UDGl8TAZhTLZZSNfB
16a7URYuEQ7aumQx/NbpgIp5ye3Fk9BPJL4PItYG3xu7W8XOThNkDdmawLZCi3g8mT2hEben102O
75GKttLxNj97DObtdCYff6B26nb/lfGu/FdnY1P/B9ljgEE7Szyc433zjzP1zQ829kxDtqKFoYcT
+g/oF76j0JMtgsF8k4jd8SvNX265eHrHkC5YLcd2kkmU4+lUZNNz6AKh8LAoxRIReyqBFShTtbSc
omEIZ9iY6UqXt5aDqbEazQ3/LNL8HpQqvHh1LOnS1XJdz1utJk7jE/KVsifhdm9JmhG+N+dRm7vd
/w6MblfsqwfWDhWaOMXKUku6LAWQdjxPt4Pxyhk7Hoj5xeBO7HPleXiHXROBSdsvYt6bnc7LyH0j
ah1b9nkSaCYniWZaKGnW/MafX6Yl2nGAjJ9KehlVO2MOwCjTjHux7Wuyj7/Ykck2S0zRj9tre4WS
iQ87sg+4JE5ix1QMtAWqN+EtyPZkH2FJXGR4SAi+q5PLlbJNTzzQsiZOZK+PEznr5USe4kSKEylO
pDiR4kSKEylOpDiR4kSKEylOpDjRT8yJfMWJFCdSnEhxIsWJFCdSnEhxIsWJFCdSnEhxop+YEyFD
kSJFihQpUqRIkSJFihQpUqRIkSJFihQpUqToZyZFSJEiRYoUKVKkSJEiRYoUKVKkSJEiRYoUKVKk
6GcmRaYiRYoUKVKkSJEiRYoUKVKkSJEiRYoUKVKkSNHPTIow+67www+r3peuSJEiRYoUKVKkSJEi
RYoUPazQgfxnNK9shpTa7Y5zKn97pkionelZcWCf1ESUM74hy3scLzY9a6lCkfHHbwuaFjbYkWY9
rkEMX7SgeJ18Y8nkG4OF8OZNR5t6dEPKJkI8zG1saW7jGn783dzmeUaMGcwz7342TwGT3afwlOfh
eoCNPE+g4hyKczzKOSy9VxL2flDgHoeXxw9xD5mGNjzLcFlDc+ks2PmcdEjIMKzIc0IRUfeAGnVI
XuT3g2JU6TkZ0GpIIrrBssQdLS+L3VS8GFm82wyZWJZcGFaYxOZUXTaR25kcOy+LiELqpOI9BI5s
AQ462FvGJ/Kuac4GDF2pZlMf5ewdINCH4J88afiObO1hWISC10/ED0sKxT49LMoPQj/LSk9Sbvmy
iZ9gjNymVcG9GHMcDNOMdqZH2OsVmLJp6uyThPLChr/jc5RN3sAhWwXYdmi6XkvyeUbyCYajpg7g
bHF6zTEUQ8fpLY0FMPEyO1P6dQq27Rtjf1qte7XedoPMlSfYk64coB6CYPDcesjFhmx98Lx6SD4j
v1g9JJke/xH1kPlT10P49eoh66XqIfsF6yFnbfWQu756yFtzPWSvtQ4yfeLHRisKphXkV4jxrVgL
B4qExfxRxZrakK2TmA7Tb+k4iK+BUg/EUkVb02kRs9dkTw9cVfRjmsftQy007cMf0yybYsQOki2v
ACVJyAJK9vslEMJYwLIAPfj31QBCKSVZxuHQ9+y2L+3G/4YSOI/uj3lanflzvKxqy+swbBkdJpIt
ykCHG4ft9oJi8xPJRrT1UQRlLFt0MdnEfopsE8mWUDgMHdsSwZIXzmn0G3Cby5KkdbW9RCUkADoY
1vctpdJlFI6QGTWL+x+pEHVO0rKlmZ97BEkzPTx/1ycasZy64N7GKGvu4PTtLD+7pWUCjGhTR85I
zAQuGMcCuyFtHPFbs4IcH1tN2htFX2l9lKd1SrL0byiWEvbWOVCaTo5NDT8hw2VWNyY818jNZW7E
1C025qs1edsFhNTNRd94gbZg2juvo4gXo7YrW3/jMKGJPedGDwB8cTuW6IHPB9/qkkSTQvYVuu0p
bqwG0GNg9JnQI8LTaw4ISFeS7AxHBoI0qwaEGhAvNSAaVk65a3XmJwtdW5ZSg8sapnJZ5bIv57Il
vYGLZnz1tZzp7XhQWLKFTex4alCoQfFig4J+G5I87rziMGA7aCTnKmEcEB/NjYPdOBYrRNuzx49q
MfGqxokaJ+saJ/CfCsLKuV6smI7jmRktuDyvsumal2rJFSiX45/d1v18MJ3Vst98r3Sx8Gr7mK+t
yeVCz4xULlTh6gfIhT9Pe6V5luZsnG3/vw44jsFX4OXijWtZKt6oeKPizSu216QkfJFosp7ixeRb
cKRiiefR9sbAFft6P2RFSLJe/+D8hj8iEtNkmTEMhGdpyJcF4ZL25sx9mpzQ+qaIe6A2pCVbX5aE
OLvfaynU8RYw39NMyaXy0PAtUyyVT0VHy8BeUBJ/ty3t4fC5TGu6VonraO0Z3/5QkuHNzJbZhY06
a2mWydBZd+ssEbyWRpp+l4NrW5opu6Zu2KH7JKd7Ghy5HnuSTG6b52qmKWuahal8FEp5cdNseHEc
zcSyak3PkVc7frDBcg3NlFw/IJRGtnjycKoXBO7m8XFx/T19+PQOMpFmSk73+rbn0CWwudDv9zze
mtB/jjQq3N5fBgE/KcrBRNtSPcx6V/LhAUJC/P0PLtgmtjXT+5EeXDD9V35wARuv8OACRj/MgwvY
/OkeXMD4Z35wAVuv9uACtl/owQXsvNyDC9hd14ML2FvbgwvYX/ODC87jDy6oL49RXx6jvjxGfXmM
+vIY9eUx6stj1JfHqC+PUV8eo748Rn15zLM5h7vmh6X/j71rbW7jxrLf9Sv0acuzKdB4P6a2dgpA
A4lnkonLcjzzlWw2Hc7IoouUknh//R40H+puNmUqcWa3aihXWV0ECNwL3Mc5FyAl5r0PuG4/gXv4
yPSjVTD9/A9Ji3rkQ9I/L29v/7q6/2b6UxN/bOp/9qPaMxmGxCwL9/ni7ptmEVcPd/dxels/tDe8
CifCC5/7rHFp33067pngXdKaTe2vFG33vC16M/v8L6CRdOaabj5tS6PbkiIo3X7SzYtdUfaZ+EDO
GnlOUf372T+a+t5voyNiz83yrhCYXYl9V8ndvdiKouRzkQNEEQv+W0XZV/uZ5s9FEnI2b9xvqfY/
JdkZtf+n3v4fv+5z10Ul9htOAs7VqHcu4J4t47wZORc4MfepU4JnYgqlpjNLv8ApgZT02Rn99z0l
eGbS/+2nBM8EA7/y643k/5+vN1L/fohd/1sjdvOvQ+z290Ls7vdD7OVCzpdB7OWWxRdC7OVWwxdF
7PZySnA5JbicElxOCS6nBJdTgsspweWU4HJKcDkluJwSXE4JfsdTAnfhHBfOceEcF85x4RwXznHh
HBfOceEcF85x4RwXzvH7cQ5OL5zjwjkunOPCOS6c48I5LpzjwjkunOPCOS6c48I5ftc/pVtv/5Tu
9c/L+x+v/271jm5ct1der19oSWbL+z/88er6ej395Y/Xh/Wks9l0PmuaBRpm3QbGprNZjQc01Kfe
MT80FEnNlM0tW9gyyXzZfcv+Bw2bQwNTu5lU2zD7OJzdCd2+Y7QBk1yv7bAFi1UI1tqd0ITRE2Ix
dtTApS6aMD5sMTUVpUEMGxhdlFVhsje7ZtxMW02Y6ja0sWjRagJrH7Rs/4rx9XpxO5iEUU7LbdI1
H9sTjHX17er9EsH5Or7+4Y+tMXF+ldbr1fo6rubN9qXHt+qrt4js1399+DBr1ttGJq+ursLybrr+
dP3qw/R9syl2M/ih1wSDLAY/119VDx8+vmnu5s367bqB5f3pT3/6w/V/BZdTpiGTwLkmgmo8SekI
YzklHbUOTP739ct3q9uHD83m5bvvv/3hu/TyP1/2R9tLQX8Bopm5duvI9eBF2OH1V/CkvzWzEkDe
Npv7mx+XH3bu9YJCmkyjy1lEIrgORHhpiPUqkmiir0JQkjE7Js2pUQdyqWO5asvb1RmM8PDx42p9
3xXNM8eik4yYzCFfFp6ElBKRXiSVFK+qlM8QrTtwT7r5Qh5Jx8W0le50EH6hKf8Kb8KvCZsI9VWR
NHIpqbMkOoVF5JGRYKIi0lFmjdDSGj4maX/oyWI9/dD8DJj18l2D4IB089IP+nQVkGymjxRQWN+y
7R0FsBh/Wd6PCi5zYCrBFvGfw+5HR3ziiQjnXJUrrrhwY4JvhxwXeNvWFVTX8+ZI0Gn5PtMjQU8u
saXZS5kC0cxBPoV1DoFhxYOVwjomRWVPSHp6bXeNXVkXxpojWRdT/FvMjhf12+b9tP40LnBOHqsY
SYq2gsAcjqUl7Fg6J4NRMUdzemm3Az+1wNseV1sRS8rRiOvzR9EPL2J5LJYZ9g9QI5SY8ImAfJVz
2mjOiBbGEmFZIHD+QBS1KiVpdNDFZh826+JQL8vbO5NZ6xZ2OJm1swUyxaLN6KvZP+qJ3/uzlgZz
GuUSU6oiIUpORCUT1sRhT7MylTSGGRM7cw5GuerPJI6mdxST1z2T+qkN2tcv7KT0xf+QQoiQTBCI
K7yCt8I9SRAmkSg494IbaaOCFDctJHn57XK2RvR/mfdbgS2o6+a2/Qa68Q3qdN3OP95t23bVU0DV
I1qpZhCSbpq65K+/bXnI9QvZaseFnXA64VAx6si4zpTokCURicOvXTDEBF/ZihlscD5W8fV6+ROU
6ojfn2hcjX6fgTqLEXU0bdXBjlbL6fu71eZ+WX/XbDYlu8bbZXN3yAII0lCGp2STFJqoWBX/QWB1
TjmigufMVoqaHPpW8/S4fRGtHBHRmtbd0Tl+/fe3nz42j5ZsrJ2I1oO8zSFmeBBSJxK5iQkhKQfC
radCp8qKqJ+0oxJ72k+eLevN+Nq+aTarh3WN+HAsykANO6JGQQA9QlFmvGnWPy0x5CTfpJ+wKBus
M2e0mA7DAIfnEsNkNq4SCXajEHSjE8RKg0ShjEMWzoyr9FkND/N9zlf28pzouGvtq+1mI2rP1CCx
/KVZA9GtoKloPaXoZoymiUZOPOeIRaDCAGRek6Adr4CnYgrsSd32g46Lu2/ticua6bG43NKBuPXt
6mH+T+TXWB7a3M2tmGgzkcXNd4/QIXmdZAA48sJ7IjR8JLgoSNYMu5ZzsDw8vT+7CcZ12Lde9cVl
Yzpslxxm+fWrfHBfLlsr8iIGxjz8t4AMSi3xNDGSbVAgBCpLK5+Uso2Tr74/w0UOk/dFno2ILJgd
pPT59H46b+7bb2Le1Fsg0pqLcBppvcTVpDyTxicClK6QwJBEPE+UVCJ7ABEEVnZWXC2FuWo/1Wl8
ctTtqq+BG1Nrto+u8d13N69vH94v7wbgmjGoowv4h31kGyVhvBJIE74C/KsSUQJQkFqfgvRP7sz3
H5u7r78dF37bfbmLXeOy9PWxfEQfN/SOFeZ8f7vXonjzXp0K1IobwPAsWEZiR8xy1DtkCx7hICZF
b3+1Otu2vsBuxK5kPczWR+ZbwtAuEG09JMQQQPzgIZQDiwWviEUOAp0AUAmQXavw6z1k19gTXXYR
+eHFRg7W+u+v4y58IwQdQqf30iuBZMAysJyQWgE6MkPASGRwqopU8XO84HH0ccEf23uy2+lIFLVz
N5C9m3te3d0367sprIZzNjETXuLo9qll5KKgT0WYBF4XGhYUhI3ERUW1QZtS8Rx9xmY8EVlHevZ0
RKo41tFxPdDRl/9v3ry+fqEOu6MtOL0yhqTKAZbIzEFGKSMxCdBboYG0q3O02Y89rsG+tSd1PZsf
Sz0Xw3S8nTqu7hbL97tjG7jzhMk2v5WHgtKrnCuTDQkVR2zKoE6eI0lH6Sm4S9bKiCd9YmSWEwD2
uGNPq7kegYhzV+/j7K52edfcl5H3QVYyXmBUAYoatDwyIYk2BWpE6uEvQIsqAaQz8G0Wu7RnO97L
EyP3RXNjCz6d7pPx7H8KIaV7mUSJkrzKVgC5Ih0jEwswMuJkViRyq5UwjgWV+3C6N0pv/kaPwM7G
2MP8mw+d2cu2AqnwpHQkPCBsADRjg6XAgrAM807M0zAA850xenMvpDqae0qF2W/LLx9usQP7yblu
UwRTTlsGg2I0ANGyCgk82YLZ8RwzRSIcKN8d5qo31Ww2Mv/cDKL/181dszWq6e0N8nhLR7exFOY8
YcVlXc62qhgjAENgpFQa4lXI2BeGVOyCSOmsADQy17jJj3Ts6jYTI8RtdpyKX69XBZw08xYpHrRj
h1jkKqNzAUgwLgDUClbnHXJzsqBRtpKgp/QcxUYnGldttGtfuZG0PRPTerBxbYR799rnx7TNJnKi
2hCF3yVxcGaYzMiBuRTNdGWBNXQiKRqpobkTIp8dajHVE6EWrT0l1GxkhzR1AyW+ebVPM0V6XvKe
4iUmOecrL7gC1ouIAtommFzGHmXHRKw4l+pp6FekWu6+T+VchvcozXjXx/aerpofA92ZEXZAbufN
5p/3q4+bjsJuItrtcm0czikxhGFOVADmFcYbYpl2pPLShsQMuJM7C71vJ9rLWjqcwO/HHXuK2ZHw
PbNHBdxq2Z5LQpjeZrYYxrVEXfMURWKBKF8AJFccyDdnuF1ypQjJPfdfjqgfy3NC/aN+fe3rkW11
YlhpHTM0//amZLOWnBnVcmHEk5xoYMQKBRDXPlEQGkA4XY4yqNDyixs05Djhs29vrvpqHeO52Zyp
RXOEWf0PEQmiJTVtktg+ldzFtVTwBZJoSZ22uGyhodRJzyVVxsZ0LkzFJKeRKRp7ws/5ca111oh6
sFHbE5df7oF9lERiwxu2D6XakhTnFpEGGMOA4QAABOElcTYY55HxWPq8gZbBT0tdWntiL9wxbsOL
iz1AgOQfVndx/enj/epQp6ZUs4nYlr+Ssc5IW5HsECpEhEMFAZ7jaJUFQgZLTo3ituORu4LVIBVH
gtV0Ot+jpry6u3/TvF9u7tefDpxdyFammCSrbOTlKKxwL9g6ghnYLvhLjFRHbfi/zsx7xZdjsfta
T5sRrWfzQcb6dnr33gOWfNos2zBntmCi/C4Un8GQTJIkKs3KqUoBSbCoZMHVuAD7F/GLq98V6USt
o9Ojp7Rm+lhpzdkx1riZ3s1nq19GivkhZR9MoXHMOgB2hHkXOKwyZwBDHowJ+kyUsZvkJM7YtfdV
4HxMhSHS2JOUzT0Wt5TeN92CxzZdtamKwYcK7jaZIYqpIBCnK0QCF5CEHfWxOisJ/3U7383IdF2l
jroNdJuO6CaHupXwUj00911oK7T3LleKcG2hB5MVgoMGrMheamBbq0N1bjQuY58ObKW1L7Uck1qZ
Ic3+2DT1j2+aevX+rr2auD1cLVyuxQ67mqZSTHCeOIkMfiXKaWA5VyFZYJOtSiKJs8jH6HQnGPdY
176Kyo6o6OhgY940H4D23y2bnx+R0ZZbOVeCpfOaa8dIoBU8RwaQTcPAQRC8VZZVVEqco9rxNKfC
4bBfX6kR4lHr+SHu1w8fN4+MVVK7rTlbXzGbHdHt/piijpUUwEbC0CJXSuk+Ze2O0xdgpOpXWzqs
KpXa98OytZQCsCBHoc4u0eSi9kTbrMoxHKgzM5E4BAhdScrOrCuVvf7h1Wlz/+HVVV+8kWRplR2r
hL3rkjU1oRNRFNg+FABlosCOW2IiB802QkEDxJ9kpTVIp0CK9ny69iRb65G12vGRdZ/axcCapz8t
Vg93811BbGvH1roJZ+0xKIWfJmqI9plCehDqYOC2Smunq0LjjHs69b3Lh+FPyN7p0VNg2r1gdHhx
NnTHV/VjVoUBm9Z+yq/WjEWVkwhEK8nK4mtYTggIn3DDisIzMjtn8btznKh3d3r0tZjVI1rUclDI
+3g7vS9fG3rAhG0NTyYhqQFZNKxcXdAQP2L1JbOaS68ilfSpGl5/0L5Y8+NCUl3T+cDCv2vmy2kE
xlqvbm/ae2CHOhJTE2ZbDmS45koTb1hCKPcI5aXW5oPn1DrFojurMH881fhKH/e76uswYvbNQo3w
hsOOxul6ts9UjJXQ057w7GIQdBDIDIkYW2iECJx4rwuN4E5bQSvxmROeZ/HcR1lORKtD+1Vfw2PM
N+fc7cP8hwaWuJ4ezEvrSbkcQ1NlfVLQzZdLZNLrcraYCA9W8aRpYon343xvoKv+bMcIYa6cGvjr
u+W8Wb1drW5b4LnDNqCYE9DJFniGKgUrkHksGAbgGSIOmJBKFK4rua3y06StO/74EnZ79DRoRmo+
80YMIw7gXb7Zn9PKliJErhELMwAMt8iXjCJPRQtDccZbZgDI9dMHB+2YJ9FkvunLKdiYnIcK/L6E
v7pfLjpkTgB8bdEwkwZQB2iLI6hX3hOrKDidB8UUVqnM3ZNHA51xu3I1fAS1N1w2h1i3YwLsUJ1X
LeFQ7cWWqCJTniQvEEZ8AuGw0ZOcwEJkZY2kVd8SB6P1JdHTEUkcP9TpP9Z7GZRyE7nl3gpb5jjl
BV5ABiMlAWajhMLHbYzWpvbSwPHCHIbrCzFyXawR4uCT04fHGgAielkErin4fyCANRZmBODjpKOE
K2m0CdarNl91FuFxjKv+LCP6z9x8JAruLwMVX0QMaY368b6REh4AJXgCtCJLyZYRB2pIkECzq1hM
Uf/W+0bdHld9eZsRJaZDd7xdvV/ebbYn/F2yBLuuDPAL8JarEEmUJSFnQ6rEKp+1loCP5ySmdvzP
xu2uFOOduz36etbzET0XfG8nf36dvh5cb8GmCIX0Q0KM5WpUAqpUHvFSsUCFg9Fa84WutzzO3hd6
zLhrNbzI7BMCpWXtCUb5XZIOD1k4qRRhscLGOB6JBZwBGzc86sByUObLJVSfTuDO1NNn7o5xGl6c
D3DapqmXoI+Pblt8xMKgKpqJDlqU6+wwNA3Q6Zjx2TgHJOSfiqe9MftCjdw6wIuzQaCflQ8obg65
vYRTp5mqGEX8jKWMGMDivGeesMCcqnxMzLOnZOoO2RdpNrZOczdYp94H619wY/lEbStL2XunoklE
eVVMN1eIKFW5fBJy4Aa20d5RPilZd+S+ZPMRyRo1HamrHIzn+5tH6qCRBcpdgPZ3e47IjIpVuaJn
imdxBzPVoMQamMlb5C7+BS8iPkpy4irQzRi9gH6zEaUX9Oheyu1qffPpri6lPrcDLq6FLo4h9/Ng
CPBeueROHdJf8sQEkZ1ymUqXvnh18yDPqZSwa+7puji+am4XlLJuCfv1dL0Bc+gWsIuSOmYJdIvM
zoAphDTligeYFMIpQmWqPFXV/2EFuyv1VV+74+1dcDb8EEPMu5Lj9QtT8NTElCS+fSrZQprKVBVo
u6MIUK6ixFYcmNqDy1cM6fEzlyEP45/Yrn3zVV/Mekz2er9dD3cHDMZL4UyV02sDy4usgr9xl0mg
VJOKR0E5LBTZfDQwHAYaTD8fm34xWDoE34f18v7Tj8vrF1vHUAqzttc2qvIhj+IODiE0lY8Clcuk
IOXcsBA5gtjTq9ZStc+ayc1Ogm9enbzrvmvv6yfliH5SDsNdKwRcQbX3nFSxBxeyYtrA/HVhK7kq
5/CaIVco57nVMuX/5e1KuuS2kfS9fkUffaGMfTlidXtGbi9qe+Y2j5XFlPK5VCXX4mn513cEmckk
QGRWulXPPshWkgYCJBDxRcQXQfMfr2y6VokqW6LWtvXm7vHxZoblWh0shk0BsI1lXSSwhzkc3M4y
DxuDa/S+jQLcfs5iLMatxBoaYumhSvF/8+7dnCCZNCZ4JA5Jk0IE2KjUgL03YPmzSMlzG3z055UJ
jHiCIvPuXSlhrxsSXpM6eFRUsH5FiTx4NGDoLfjNuksBDj1nEqlH4FoJRRMPSlCRzxrbYuRStE1j
+3EhG4TIn592t6N7QaewyigZN8QEHwAExkwBnTPagVUFVKDhtEcBG1T4iyO7OMGZ4C5evirlVA3h
MZnBl88VY9JPt49Hb/XwWLGeyCHLlxGhOs7BW/TZ8S5qq4WTNGt+Fl0VAxeSiZaNE3QV9Pz+3fPD
tkeKrJ0Y+nZi57tEaUCinYgoGckck7bw12Aop0Qjf/i8Y3AY+USc83C5lLrBHN0KJuqAxGQlhn89
DXc44LxhsbRgoi16J43nxHeGa8StgGCNS7wT2QjCaLRRpAtoi9UUhbCyERjfSs7nUFm/+TD75Uax
iQURHEsRfEcLm5WY3BkDrrC30aUAB4l71ZRqMVYpA2+cHinkTBP4+OnD/HSwZlLBNOAfdXEsioFH
0nn4p3OEA4wWLvJAqnzMPEI5cWvnS3Fd7a+4e/zVPVzvnh7mxIAa9R8aRhJzFtH6jrkAcMIb1nkJ
Jxl2G1gOH1n055MC1einiDzFTdUqto1VXK9L1vqHzYexlgXZc2TPoiNjaacxYEloF6x3mOASyPRN
nUAGnYjRWGdfD9zPgpyy8PvL5SIbbLutVtvKPP343D88/bEPXgPaxeyZgv+wY+kIBjSd6yIoVTD0
GoMhAAHJSN1RwU5pvNOrPA7elvx4vRBd3zR2mWG0Ng7Iloz3U+xpFJzRCa87wxhllsBLccjYBQvm
PVNdCFK7QE0U8TJ2/GGGM8VGeLmQ3jaoR8jrOZTnPQB8v/0d3KcZqmBQQ3luEoAoZpF1GgAtGqzJ
5nBg4ZcoUxFUXQ1TSiBoQ4K+pq3MaxrN7P+8df84cPIBb70Bc4W6i3CArxRr/cdoC0NCkVQC/kpT
BtmSDPzFnY5jnzaweLWUv0G72doVbjlEcNfRYI6SaZ67oAlAPupCZzVYNSKzDNRKZfhZ9noxcila
oy5r29/UuOVtD17Fh2VwQLyRaowO4H+MqVHnvKcgGAcfgScRQRsz0WEELkaZQ+T+9TRIKc8pQtDy
nqtygY0D2W/1yQ01ZpQNWFyKeHJitBJO3uip6ikQRzVAiQ6gN+aNPNhCBBwmwvNxXuqYyMVZ7XGa
M4nt8Xq5nEYd+HawpAE+8yK7rd7YEYFKPqUusRgBPAmDHh6cVEEzOBbadsFxp0UEZ8iRF1/hS/nt
8p6rUmLVWoaqY6hz6fes4Rc/7TVmpt4qB/pHJwFvhHrYjhwbFoCPn2mmKmXxRQXmx+vVGnRrDXU8
cFOUxBwilXZMvYyEoNHshgQAJyKrncrOZILBesU0iTYbn84j6tX4pZiNsOV22MyA65v8v+8+9A/D
zapeMXgmPMD9LngKiNQBNrUiUQxfmujAsOYXvL2L6xUrGRbyY/PQFRnCEiFmGsGyCelXlI3UXW8l
QLLYWcwocapFN+orHwOVVhKqaY0Zj4NclfPIxuS6hltu9/DDbf/53SEVUxEFnNZoVzFTwQ2AxWQ6
Q2GHajhyoDA0uCgXkfDKaU5s1uKecjHrnWCJpPoA///5ba6LiUV2gPMFOvyIRiTFswXGCdSSs1KI
JF8Ai5dnW46zX5XymYbQpj+pv7/9firhfkMmEiSR5EDtJDbgeGGkFAMoBAxvVcSqvchl1iyYlF9w
EU8i2fFSIfk1E2vJr5mpJP9nCMvcXQhOsJTA9MP/DX8IAYfOYLpLSJEUKAQhLtkrMGxbULhQiWnX
Yg6sjgX9/duZuYBURgxoaEAtCAA9pcZE8BFl0mBMnAeRk9Sd0uC6BgoKOLxKuHAW4VQ5y5rZgCvZ
NpbHa27G48iRfPNwJEku+bTIabN7bht6F4DIo0SQRhxBdpXNANfRmxpfUsT6e/oqAdKauXkhwbN8
Alytn8D2SJD5rx9YdeoTj8QkSuA1CmxEASjPUzBJjHMnlfaMRPNqOVbWOPQgWkPk7VxsiIZl6tK0
u3uPQa5jPIWNJz0qB26UAm0VPcN6MXByIziCWUVCDLNZCllagBNDVmKZllizxb/t797vFnZ0PBxS
OAFoqmNJcjDvcEIsyWAKctaUBpK8TaUky1GW01PSryJkllJR8xr97fPwdH//9AFjt3yMXoz/3mKU
iYJLRKKHF0qwVY01yNGVtAtGI9YkCczjCypwHv+UIpxvKKSfmu7V0qtVHXnGNxF3D2Mbhs8jBh+B
HzV6BHuGSEdyF2UIYJAcQFgOLh4RcCJNpMx48iImmUd/OVuXL7i/uqlc9ZqOAz/2oqKjxOH6+f27
zx+v78d4MZUTWsf8XSZcK7C7Gh1rHgzpDMFGGA7cWBc1uInqsiq64wynyueOdxRrYOsCGvyxNsEf
httPaMn46DOJEUE60IcUNlpISGKWMgC2xYJUpyRgMQ8mLr+KZYCpTxgFuFIuZnu9Xozc9I3WPftm
VugEjq45BSCUE+gT8MexvFZocJoy74hmUWTtAC36L4opVf7VmWZW8+VibapvbDa1UVUw+uPYHnaO
4fBDAVaMDnvL+C4EgvESKQExY0gnJ0esAXfRniXdLsct5do0NpAa6nZJ2Grk8aCCR1LW1KFgr9N9
1pYRDeJphfAItLvJyM2O4D2FYJNN7DU2U2EJTncnmW8plqrZ2kRQfU1b3TLGo7ZPrWOTkpE9D2p4
zxaJLhuTVaexVJ1jDAg0NSBxbwCswgHS3l3cJmM51ZkeGcvbymVds9ayhmpZZ1U3YzkLzWhHeDy0
wHOGd8wTHZUlQWv9par7tCI2pnE2jKkDi8hn3MeRvuvv4IB9HO4Kbh24PY7KAOfDYy8yiSy7nE1H
o46Am3x29PwuXI1+KjJe3Vasxuo1aKd2b1aQHPmw+bD7fTiWt8ARl9MpD1QQrQC7SqHh8HDCOs8T
6ZQEfeylBfe0optWg5WC9LIliD5R0jXamLf379/vT/jcucAp8BgAcWIXR0BJCtOKAgAo7POEhkI5
+mfKu5bznC/1Wt5Zrcy0VmYafQsqegzgLoMWcAy0odaixGO7Q+w1BDvFO5HBIErmJXj+idDXod80
bqzW09gyB/raooXjbkwe5n4zTJkVvu/7xA9RIUx7YQO0wLAmVEfeeeFCF6QNydJgwIe45FUdZjih
j/dXiyXcDI3NBj+e4bn97SuFUQA1tWm0YOEcIF7J0en34LVZOAgApDRJLChAkF8Yt17eUYmuWqL3
B9fhU/9x0T2FjBU8RAI+j3AGLCYCYOcYjCEZAE7GgGH2qnIcFmNUc28bc2/pYe6f+ptdf7cZ6tiP
IQmeFuuyzBYzEQLOpAJ9bbzL3HuQKL2SF1hKUAg/sLXbAD/NDfB2m2fkFBw7RkpOQdWN4NNpB+er
EwRriBxoaqNEBHsjFWg6QG25UnTVWFfllKohBxuqaO/ubjtn0MWRX88SVUF4sBWcaXC7JEDHIGhH
BQd3ALS5o2eDvMdhS6Hs+kwzSmqy+4HptS0yAhPjC4A8Zp0EcsIBo8OfaqpB8DnCoU4mSQlQi9v8
glWbpngpJ7C+76qUfVgviOm6hql/vtndv3naR4Mc/m1RV0PZ1Ndqiq5rk4MVnZAKkazMoH+t68DT
hfMjFLP2POhYDn5C8S7uuCrlbmwZrsxx697f/b6oQEV5mSMqEpY74zW8CNiwcOCt6pCZJsFf8kGF
etMuRrkqp2rsDnlTxwsOu+NvX03F/wBB4QjBxkX7lT3jgLJBUzqODcvH+nFQRQw0aWQuAhZyF22M
89uhkFsOjSNvZA02f+r/P8CQD/2ba9hLt1P/SDFFJi3KDn8ax+CNM6dQgVFkz1msqiKRKqFhTzdC
qUsV/nU9x9dYfod9Ub/+rt98/+54vViA6beNBWzmiNvtHx/7N3JucYuuZSQ8GS07pwOAMqTYGYrt
qwPTWXv4UVc59OUY5eSbvjH5MHOF3+7uhv7B3b4fFlVxlDIzteAIwYNtx17a2DcEzE0KtoM9iZ3L
lQ5cv1qv5mEDA5woGGmKWSzT0jUWYFbWdLEfI2LfqbB6RL8Cdy0BzGI4cvCxORwW+AKEIQZTbfEF
J+Q/oUP/GE9wSGKxpN409AX8eHhzvw6fP76fGd7jC9PaCGkE62JCMB8CuuzYfZBHKkABhRTbPVOW
Y1VCrH11dk15ndU8Ui6FOKQyFbwUgzVShqE0xFFQtuBfiKyFE8LClj7LuWzEDti1aViEsRRKNx2M
fvh4f4ddye43+IG+RWIl2ey8R/oHttHMFvt6eNNJeGgk4DcO+J9zMYqZXnAyinvL9fW0tb75ef/2
3D/0d09wGmZ9oQ4No7XLoOEBRoClMVONOmhP10XDqaJGcSVY83nXg1YSrfNWbHt9VCDuBxf+u9Ic
GcAIdQmwNQYnOeiLzgewE1bTZC0YLx3oX6U5FvIVC9sO69AfX1RR7Hdh/3is3lFTzFlyF6TviMQ+
+hKcU4PNlRhxigWniUjs3LaeB7wqJ5YNaehqY+PndX4aMJk7PMwJ5kNkRfFJqQkmLfhgcOLAZqSx
ZTv8VZjgJUipib2sV0RjrhMbu3FnubpGyA9+3B4CFJv7T5+3u9ujz0HNvkEKCcpEjuXYI2srZQ6L
oeBugmcJTrQDxa1OtIFaDllKc7POnHBB6jR+kzGD3GJhU1JIfbAZkzgS+1gKA+cu5cSwbJXJ8xST
87A4fN2Gw4DK1xl7vt3crLtxTJ8cmWTmAp4lbtwkjIxS4VPUbGrIYkHnIbRPiUWifZYvGbsTCe+w
v7YUVxC6Bm5I667Eve43vz5/KvsVqX2nRzVG2kF1WUWQK8GTww6dCp48mBRiueNRCaLjRUlwX820
3MLTtVL+G9qQfzsXHd7sHj/1T5uZnwzH7hBVc4qCBeahA4Ps9k2NMTaoZYyUORdVbNP2yjELcShp
iEN1P3axGzf8w7Ap+qkxPgfzpdY2ZwfebwR3h7sI3jt2tQK7gI4Jo/FE6Ug9aimSvm6JNMxP6PPt
zZHUePj4SYjgayF9yGGdA48Gj49EzpyEEx114qpdNHAcrpJi25BiM5Msv3n784rMJMBzktrGzims
B3HUghInqUsMYEECB8Ek/UpkpsPspcyb1svc1PVs/xie3DOmbuXIXpmIrMz7qAW8RpOowSZe4B0g
KcdZwgUY1gBG6MImXjj4yWYLeLESetMQepgR6aqeQU4Cc+8JtQHcbIubT4Etco6xjgovYetxs0q/
ny5bgAkbDDDBzHZg655EWLO9RH1KMR1jtJ0zGT+0BDgJPFrXeeWYBZ/WUusupmuOBeGn2Zp4uRCc
2ZbgAz8YQfdLHoMHSyM4EmyFoBE7PkWDDYojNtWPEZQ3FQneODw/w76w91ARfivlKJcwrMGgGGMY
heX8YXjAdjsYw1t2Ezy8BWLBeUQGXgzYd8PE0OG3EzqqAL16IowNF23gxjQn2hKvbyyWJdYfP8Af
5+/QfBh2H2/6265/vDu27LDmEM7TkfnEY+oUyciMBEToLEtddCRlGzl+mqLc3+sBK3lMSx57JN5/
vP99WAImPpLFwcBja7VOhQSKISgGOjXHDr+ClqJKRp6oxqrHq4TpG8LYTaWqxvBu6D89PWOaYKog
nQqrdfYK7J7o5PjdDhlEZwApd9qxmCKguUhfJe2/lODMxxj2d5Rr7HljjTe8QQNwv4S/R1TIesQo
UoPJn7qDgtMI3o8OXbIa+2wgTS8ZUM5ZGY3sP6PVxS1icZYzTWLxcrmCG9Fawc1qBdgcdbIpRSkn
AFgBqLaDQbB1g8f6SIFxPilAfQMyvKyZ9nH8U8IfrlfSDw3pt608+YLPdNQoJmrvsIApeczlEA2u
LwWbTjyPVnMWrHy5tuMFJlNxSyn9Vrak7+sqj6f+6fFITRuxGZpHJ6VCEbvgsAc4QDHw27FHL80A
ypMQMpwtolyMW4nVQGdgcKuHWhXP7PLu8KUmOBNjLSUFcWygEZ4us7CxAdIaDo4YmtLkdbTRXdx8
EMc/U0ADV69KcRsHU9pVgVtJnqAjU0SCOZEj+09ITWFHgyrDj1kk1vmoNDbD56ixrWYXmZsLaBMn
KRMgcwOkjtH3/Zeb3k78nhqogqcQA6GiYwH7DmHSyGriOqYyozRnrV4gKf8JoLqQoJBdy8ZG0lvW
SLSOTeka3cwAk2YjCX53FU1Txq4wMdkOsKxQ4FXxFPOLB3Qc/PTmGS8vBZe0XyMuSY+xqz+OpQJy
dDRN0EGDISfCj22nxsSLwNiDzWDgqXNV26k/WnUCMAVrzTs3v/5X/3CcmY1T6xAVOOMSy7vc1KTJ
OPw2Rub4qTebVNLVtzGOgxSTM9GYHL8MefgyFTyqX74rv/Wnp072jNCUVcydJLjZgodDwjGtb03I
VoLBfqGN++WfpFoJUa1BN9YgRWXNDiFU/7zdYkdGOnblN2/2lfWAuJMnGCwg41dLYfdZ57uswUpb
qjUs69LvXxxnOf3hi+M95VqkbK1FV3FGdLQPX084vBYklwMi1kFqg3U2oL1oQEdPYUEgB/RPPLHc
vFRiX45bSMeHNdSUks3fMXv87Xb3NPCj2Zr64voA1knr1DGBnTMSYDpHo+yowy7SAgww41WXuuVA
V+Vsm5YI9SdBpizv890OjN3on/x8NxU0LxO8SXIuhWWdTujg0YSfLdasE84GgDcmyhdYCvPIZ7K7
eLlawTqgKNX1/BD9W/euipALC1sQ62KdNSAowyL6BE5dAt9HUhgxq78qQn6U7qqUv/FatJ4t1u/f
7R6PtFE6eqoUloUfwQCXDjzVBErURyxZxa9XcsM8ce4vWtRCumJV2O9xvapVAum759un3dP98+bD
KvCNeQAxdQHAf49dMLjNNKtOcY5NojFGHSTrCMPPQGZAHfIifHRm0qLxa31bucBGBgl+nGkGsMZP
4Og9/N/xk4Sj8+izyYFy3iUs9eDRgd70lgAUJdwmZpA5cep7C+WAlTi2Ic6m9qx+vt799jyyDujI
F+d0/ExylgqprV0I2JLLA3IzypFO00w0ZRq8qouq3w+jt5/n4Woht9005LbD3Mkj/JTfwf80FN/X
AqRpBPP4yVZwd3kksPUxHUsjIyzrwJys8EM5TClBg94mN4OuyC/fDPfLD9OMuIvof/d2Lb2N40j4
7l+hywBpYBXw/WigD5JIBZnEnSBJz+yeAidS0kYndiN2prv//VZRji3JlO3ZDcaHIBZpskiRrAer
vtLIA01jLCxNLkTqAg6K4DCFBRzZyqksI0QUjPPDslvNd19wtyqMuhRHJrJaQcy0Asoai0hXKzWO
KqWLMnVCIpchmJoLjkvMY42p0jIrD0q6smp8KCYgFI669EW4YmV4K8p0cjfdeMg1wmPGGMaiGF2g
DoqetCXIcllBSmaIyU1ut8JM1610u4+YXGR1t0ZtvTq9jOZEzoD9CbwikT7YoTRmd8hSraSk1hvU
kN8zJ3KLjC75dzxC/n0ENR79ZybTWTSNNssyOD+FBfENr37wfDU5Ad5SgJDOMGt5yQ+01a67GTTX
rmt0BxI7BKpqIFpw8Wu2/Fp3jJBoJ+JNNp7mn3CoFbp0RqYlzQmGIxepCXdDDIRCUuSm3IMa87/4
nDQxgdfbFG4HDq4rdadiGzjBylqw3jYej4vr9RnOdLi+KwtrDSggqXcKXcwFAl0GHzzQA6UvQeI5
SA7Htgc4IpS0qVV0O5U7PqzecK2avo7zzQ6mDciv8dxSn1JExOGwbXADlaliilgQYYgseu523Ya6
NGxnrrQK+EBv8Yzr5QSTH4db/MblDnST45AtkpBCFLl0KYiwGC1I4fAW6MLKLbEGAWOdez9ojTdK
huDmm9JRdzg8NsZ6c/W2ZdDgJudlaTNMnYBeQQZEDAeCIi0yT7wpHKhl72XQiLyVCDg7PJTrS5if
i6dlC0CAhwBfogzJNMhGNCAoZ9Zjlha8NvIgFuXcOd472tvNdPuXkVXB1d3bLe5f7vqyK1S70ruc
gUwmLC5KQ3iKrCYtFHW5yoQsuPunhOo1caMu+ZHdBsPsrfTp7Fvnlr8Jom52nvGEQUMkBVka82uA
HJ0JODJAIIVTgnidFfJd7ghmA9CdUNAZk7iTkTHdraEax+GWfmPEESHjDUUMB1ghvGAITmZAhHYu
pabkORNeNQgZrWXSaaXXfx3pv95Ctfz6Ovs2nT2uZuQtbQxal4NCZh0cIFamAlgppo0BHkoRpgxW
TqnznHp9ENREr5sBG1y3Umc40kaWvUQ3VB41IZ5eYDq4RpwVWgVgF0lKVWhQSyQioxiQZGH/5Yjh
ZVQOGxEm+DAT4lAQQqtCl/iaxYjvQyWNJ7PHl/lfnRysigPrYMDxZGHQzVCCOCOUAaEwo57QvACO
fxDvW7U9cDavSntUqxjV/URV31+m7aCz40v8HnZnkMcCiDbHLHdel6k2oH1xRHMwmBNaMtiZvnRc
7clFceDuvOzS0jWwTbtBbzAUGxvfeofeT+6/1huEHbS5SG9BpkS3J0xBqvKQyI+nwGU9pYqKzMUv
WlpNdUh44JFV/aBoxDAecm3gysBYMCpkA59pXE40MPTcYhwILBXgK5iqGiaUWdB+4EDZu6RDy8ML
OhR3qVYsRrXaohqv6i4ns7oBLW2QD60K7p2+KEwGehl6dcARDXSXOUJ+UWCOuTY2e5fTuk3CrvvE
pkZvkDo2yD7U7vJlsol00uzNldYIUgIjomkuJXqcaTjJSW7T0pelUyCjCLoTyb7VbI+q7VNdk63r
rC+nbd/DzWkilMpdCWwFaCnxlpYgphGmyNTaCsYsUwe5r7TbH7CJnMZ9EDWpZGQED+uUK5ezxz58
iGBCIKS6ChgTQqNRkGKIrJPMI2Ny7wUatO68QzKNXIhoannUvhxu1/G/Bi6DrOAygjXCq8zDJkWF
FG3LgY+CKFiimQo0CEwmv3e3Np41wxf7WNylfhv6GB5WureQnzehvUY1h4unLMuFTBVGDHH0c8sY
UI9ZZGyJSfmc2hm/H5vKelveB9Wk2gINnD2+wksbz6v6qRfbC5zP8hLOvIzA0cs5TCXMKujAeJPs
JSY+PMjToN/HcG7Qdq3OaJioIqORLJb7C4XoxWJ6N31aWSmDv3XwZiIZ9yRXqUYna260T3OGKY8y
B/KeBLW+3C2XbLe/I+FXp15nNJxFzpZWlp1vPzfOmO08FB5YO0XBhMHso1wFMiIKiqBzgoZGctie
cV/VTYNdOrZT7sBDsb50LU6K8XXMfCWgf8YlQt9hMA6xsL9y41NNHZM+o47QdzVfdQjpDMFuY3qH
h1sc8n4+QT9rE/QYnMusIECpb5yvQOjHyzpBU+kwYTExstwHKI9NDh0PUNQh815t32VoxC7prl8E
0rh/QtVArHKPigYViTLGM+1SQZGbKG9RXSlTKQvCqdKFKrK9mnhxPgy9UJx3yb0zEXKrviMZQv+F
M4MzdFwPhqSVB3tAjxXor4kYW9zpHIOgczjXCmszWgB7PihoZ9XFgBWsKeyQXqlt7w1dabFJ4fBj
Omu5OjcQ3iAbSwoCM7o7A7eWIrUFyEvWIZCH4ZkaOIDbrXXJ0JEt/vBQxaKfGpNSY3pkqslhlTEQ
Np1JpZdBbMvTnJcqBbmTFjq3eq8Yv2p4R3hTz0JkYoHS+HAQ2vO4sUEEpAH83eorb9A9QVA2xgAr
846jQssJaCKwIJSXqnRUFbL8R65Nm7LuSOlDZKSqjyiO9/FP87WnkkBurYPKTuVxMCMYw2TOPUs9
wRt/jzn0PKfAX7gQ3CrmyH5F93y+D97lrUZ3EBFTjpHyfstoCaxoOHehlso75PEK5SMukBt6gV8Z
yFCaCLbnLbXb38EMI2HWRk5iI3iwh6i9K/DwBuZXyCZLoPPWMqFFSgzmTjUYxihg1wjYvpJ7IYWT
726vX5OzQxvuA2IYZbblGXy4DjQOuMiRfH+iNBSxfjHFDLwvArsqQ70C3hN3GfpWDtz9tlscjfzP
Zf0ymzwlIG1NH9688a5fn59hRj4CqcXkCXTJ50lVJ3e/kvnya/2SfH+Zo0RTL5Ll5OWxDmBPy6/T
xVvBxzDE5WTx7fZh/nL7fVp9TBoQ5CYlx+09/F3WHxPSfriol8EvcvW82/G+5sn/1zx8aY0KZiD0
hxkQprM6OhzNtf57fY7+GCdX9WNnfq+g1sXs6VeCPgFYMn9I1gbxj8nNfDl5+hSClMbJS72YVvVs
+QmO0GM7Binstw/J4gfsjbq6nb8ub4G211lA8IIeq0/WHKvxEWO/fRj9+TJdTu6eamgD+1+3TI/Z
SfIDCpf17BPTxwTqQ6ObnrDjI97t5xM5OyLwqN0XNnRkNXSVjK78yenF5+TmP5c+Gfj8cXp18yU7
H33afIaqropHxUmCUWe41BZL9I+KVaZGqzOsOg3Ab7s+66qLAFvc/GIxUBerulWYFxxIGHf7GnZK
/wfCwByOfr9Ofj+9SR7rWeBaFfyk6lPDpBquetT4f9XVB6yqFbb69sO3ogSW06Sq4OsiAcownUrr
jXwYnYVcc0mGT5KL2f3QdJiz0Tg7P78okt3zhaj847eqR5PqeTr7MFibs7PR9U1WnCUnX7IrN9ws
zAIdj66X8GqTPR+qj/UYNtFtICG78TurQqt/1ncYVDkOkzJIKQjW49Htrctusn0EWNgNUPV0nJ34
PXUlg3m9vT0//XzmHbzgwQ9D8xW2euP/fbO7TcZADcCqXz6fFhduNwlSwit4Dps2wSiR4ZraIAGr
bfBcPyPw2/BHnP2dXXtzcZOdJ3vf7LE5aar+K4Fl9broLPJmca+rkhM4Y0b/BVBLAwQUAAIACABA
Yb1IdNvr7UFCAADTfQEAIgAcAER1bXBSZW5kZXJUcmVlLTY5ODk1LWNyYXNoLWxvZy50eHRVVAkA
A4g+S1eIPktXdXgLAAEE9QEAAAQUAAAA7F1rc9u4kv28/BX4sJUrJ5FNPPhSeZ2SKGnGM36VJTtT
O5Vi8QHavKFIXYqy4/312yD1oGgpNh373qkJVFOOTIDdpxtAdx+AY15kqc9nsw7a/PTnk+klTwKe
jTPO0Z+6ZVraF+XCzW/rXeFzcJ3G8wmfHVyfn1ydDg7eH2zerxwHPMmjMOJZZ7cW5ZpnsyhN6go+
ffqk2GnA0fhhyjcb/zD1ts5Q68zNozu+B/gyUIQuakZdPOS3aQJWmJqqf1Eu+WyaJrPIizfEzW7R
n0QjX5SrGc/Qcb+OQ1OxovTdnB+Mo0kNCFGx3la1NrEQJh3V7DBzX9Ms1FYNVVXOR2ibbaeuj6Dp
D4TVffhPQy3MhtjAdA8gTtMsf3QXxko3SZOHSTqfoaurCsY+xTrWemrb0LpWG/d1u63r2GrbutEz
hn2j29P6iqII5Kh7737laBQlPke9NM07iKnwQTPup0kwUxQ7c2e3PEDj24y7wVo7Q2g4PkGf0+xr
HM3y4gu4quymKINvPp/mgHdzpAZ/2E6v23e6tj0YjVBrdPzLaPDL9V6lvxje1XD9Prg8c47Prrsn
x3BTv38p7nJzpH5TFx/PcwOP81BRrk/RJb8BETN0xt0M+izbOkq7fYQUIdBxxoM/xo9m7UIYVg3L
Fw5ory+4eiAc8idCuqH//gVl7W8H2f03NDr9H/v885YJD54tnIDUTgf1o9nUzf1b9K85n4Mf/HSy
706nMd+fuFHSzkt3qeXURrs//1VaTAENCcPQD7CGVPQB6YwwVacYU0tXNQU3EOSH8K/LcLgURC1N
M5hGTIoVAl3XWH9z79yRn0XT3E4zviGocJLpcs0Ci+M4SnIHll32ACKJYRmGQhtKCrjLOLqbDISU
cbq+ASRSyhTWTJ7JhUT028judH47HovZ1enwb9yf57xVXL0+ff+xbIdYkae2G8fDzJ3w93vCBmwq
WkONhm4yv5R4nOQ8m2Ycfta0gq4b0DIorrkQfpYgxJVRDqFleeG30bn3T+7nBR4GUUnRmwHCIcGW
Wgrjd248d5cgHukapfPM50WEhfU/y9+tMFzDffwj+jwedjpnEDOCizw7XAhZLN2jdwVCU1WMxgAJ
xJ9C2jRLwyjmweD7QC+KblFyc8ndWZq8HnyLKeYG+s/cW8NGj9GHPg1Vy0OLfkLZKSztMgascP/n
DTMgp2yFtn/bMfGeYjW12uequbZ6OcCwatM4Lqb7wtDjBHJDHLRqXbeYtOrRPz/9nAEQnhW3VptW
VvV57kbxrFgVFBPIJTUE+/502sE6ZFCsNjUtJMFzTGti01bgOt6F27AAN26Gm/ka9eu4BzGfQERe
hZ/y6pPIiynDzCW8hZQCG8UCG2mCjVs+UavYfh2fnpSSL+dJUomOF1ADwuwv27pJsEyggztQv0a9
0a0AS0XxVxdb+pIxwEsb4sXcY8/B60JZltz04tT/ugLUKgAZZBcgogIg1tSBukZfCmhWILKsXYAs
4SGtKSDiBc8A1Cpi04U7m13yUESn9ZIoJ9XRInyN+bf8Ip1FRRm4noUEzN4B29QAtt4ItskNkQw3
YPdTfy6ACNcJ4Nk8WbhtmGYX7nzGA0FKevMoBn5SuBLrYm08vrnARUTZjo2muKBs/z6uKXCkcfqV
J9H/8ewkTaet73YfPST+bZYmQBBOYWF/RF6axpWIdAHiRsCNwN2lozHbbRIVM8RsaJJOtaCBSY3M
KWoNpu1GbBJAbDVErIUab4D4OIQJW7DHxtixsdvbWIcIS9SG2E2Dh09MbD6D3xcRohtCVbqI7sVK
hXlQBi6T7kSmqRC6CG6KzAuN7yNL0jwKH4ZREgm2uXam7frwO7D0Ij+VyZ4Yu+ExAY80hQclHAIu
3b6Lsnzuxii/nSdfUZ6+Gmb2HcgEVhZplJ0CHrqmTtAOjZ0O/OZ/PSvgldGKqqi12alcI5YJullT
3ZaBd+sOC3+cpK7Iz5Uy49bNeNCbhyHPSpdYWyFBEARIjVJREGJfs3gdUjm1nw8IE32JqLy1XIrY
ADyNckwYMuzrleJhNPeyhY0Chpg7QRQMN3AF6RyiiMChUVHM1m8pwDAGMY00Siyh51merq3BXD6F
5FHPX90kKPhpFSNqXT7Gp2tAJEiTLIFVAnWE6qL2n4uem1q7sz6P+Q3U2qIiSIAGiwq6BrnzRQyf
CcP3hIz9yaRDNDGgG3nBHp7x/D7Nvj7GaIRhaIaqz00cIMfRtfafZ6OryxN7Baag+AkEDec+ym/X
10XtulDbSZP4oeuLfcnOF8cTlZkTJXeQRAQFsBSqNkWjmxj9MBKR8ilRKG6qXTONp7SXOrZj+FLs
EiiUNNQbaozBGDj/e0aMDdV2HEFMdewYaswI6mQnWKhy6pN7cIVp6f9pGgnAw7u7QX1EsMoUShuB
wyZlLn0GOGwW7ln6ojuDwmBw8bv/GNcF1h17uCHq4ndKa5dK6fY8E5vdzvWp+23THIeUexqUNXM2
wZz7CGrtGMrMgksIggoFeqezlFyoad2lUVAW6xAgxC9FLDVgWm3EcLEqh+k8Cdyiun+s0WNMh5hp
D7tZ5j504aaH4TwpbBSLBKaL3tSCwA22WzDlWZhmk0VqpAo1mor2LBOdzuM8ghu+QRW1yH1VwVB/
KtRsKtjy3G2CnaXkDQ9bzTxsmK6KYY7aw8urs5Pz8wvneOTY3ZOT47NfnPOrsTM+d7rO6Pzq0h6o
zsXgcnh+eeoMr87s8fH5meMURavC1GZaddczg1LrPBGkpZ+WVs3EtjOB8MdwU4nYC6sS4R8xywmA
Iw1FWV5goqqg0ZT7URj5ApulK4w+c0N9cXrANSPwiw11yNXEMJllmgqErWZCKAdmvRJimJoGpmlN
hcDNFSEQtJnC9IZCdDWoIDENYlEFitkmQlwaQpZfCqFYwwUSWBpx5AUPcbAPPyJvlxAxUhbDBtd8
C81yNxMHAXh1yIK/e8giNCwa2xM3cW94Vhy2wPXZwyznE+crJC0eb0KozhEeBBSyJPrKxQYURCiR
H4pzlorsLRZsoFcDg+gcOcv+zuQmc8qzH1FMkZU1pNMcHrGYC6tBBJZ/Ff0zns+zZAPoQtq01Lkh
bmNBENekMOCFm537f60gYrqCSP/6ENlfH6LWqU7TWilVVtSNbfADFnA0ccX8mt04eeZOt8F/hiBg
L+FKkJihWu1A8DlBWuyfVoL0iGd3kc9PQepFWixigkntdPA5YqnhPY79mBq4djL4CsF/8+Dv6fSN
Ib5BmKtXxq1yPPeQU6V0QmVZClNWO9Grw67HE4qxxy0CbjgblfPJccRxcpmiKdOKA7hGE9ZTNZj+
i46OlwYPhShcHIY1kuSGgbGWtArYhl6cMDVcRTxAdUHrNaS/ZJkzUyzzGZ/cu1HuzKIbQVmqq8T/
8GEfb09J1TFQGdUDoLqzPIDyzIE0lN9Gs0VQ73RmMedTB0q21rpDuQMIjHueFYN7GKfJDRI/PlbE
FG2HOP4ImJaf+AgdVc9ltKbn8yHzmK8X9fmTiJ8DSwD6QctqNmHDJE2fFQiZCbkZeRM3hvp+YUIF
1jyJoCJwRO1/uOokzjwj/3QOVODoXRXeS40o0Fta0wcTALzKgjV4MR+vkjyKh2484/92K8rTgXfl
oWTTRx5CZoSetbblV+5OYTh8F2qmG/4fGRGDNn1MAozwPLNuBMxQv2TXo6U5e4s9AqOp/IBjspZf
cP+xO6t4QqgsWTRq1XC832vtHYklK1brImOVSIhl1h5ZeA4U09deBUrxmM6F2LRo/Yi4xcM2tacQ
nmFI6Gmk3HeoTAlnEdWcaZZ+ezisRLw5iD0sYYDeH0P88Ycc+F6E0BWdZ9gsHlN4naQtHhx4paQt
zvlfM2kbUPh+Hg/RhZuBT3iMfuXxdP3gYPOEjqkOCX0qBuDW8e9EGH1RPqeh4VtaNfqkSVCcRTt3
bhaJR7TKIL0jnK2vTspIVp77NM7Uqsc9FS3OzDNxhH+Sij0r+G4vEYHnHo4n03hz9624Z+SnUx6c
uBMvcA9FSEcw19ZPozzqUk7QSpfH4TePJrzclzx83Ajj5AYPji988KOxu1LsHC2CrNq0JtBUzlyz
SGbPcOLhut/qes+d8Uo6PixaT8C8o9bq61/IT53OP+JiKP/R2vuI/kb2qGDQ0ZYZXuB997cz9d1f
bO0RtWlFC0uPhvxvMC7FE4WNn/sF84nLyoy/y/ztlhf+NtXGBatqaXq4inJFOi2z6QUMQalwmGbl
EdHnKL8VBcpaLc/WaATCDTZGjMblrWpRru5Gc1t8L9N8D0qVonjVWePSVXUN09ytJoiCU/crF/87
QvfOjWK3eDbnSZs7nf921E4HEiPMC2DtUKGVTaIsZY3LUgCpBXW67SxPzsR1p9xfdO7L51yLPHwk
+vhg0uGbmPfuqPU2ct+VtY5We9D2OW7SQ3/DQ+HizG/5/W08UY0DRWUuxvxtVB0tOYCgTBvTSxyH
1B7xfTrGmJp4WGKNfumvwx1KVnNYrz2x+/TgUKIFvFxoj6jeirdgzaw9WvsMwUw1cSn4Pg/HO2UT
0yqekn0lTqS9HifSX5cTmZITSU4kOZHkRJITSU4kOZHkRJITSU4kOZHkRD8xJ7IkJ5KcSHIiyYkk
J5KcSHIiyYkkJ5KcSHIiyYl+Yk6EVUmKJCmSpEiSIkmKJCmSpEiSIkmKJCmSpEiSop+ZFGFJiiQp
kqRIkiJJiiQpkqRIkiJJiiQpkqRIkqKfmRQRSYokKZKkSJIiSYokKZKkSJIiSYokKZKkSJKin5kU
UfG3woe/7HpprSRFkhRJUiRJkSRFkhRJUvR9hbqGA3XxymZIqZ3OMqcWb88sE2pr3Vpe6Lu5W5Yz
VuN3ROuaSky2VWGZ8ZdvC1oXNlRvzHoodVWr9KAPQnO+sGT1F4NL4Ys3HX1E/q2bLSLE97mN1pjb
UGoFP8xtXmbEksG88O4X8xQw2XgOT3kZru+wkZcJlJxDco4nOQdDduaK94MC9xiOT77HPRo4mvse
Uw3h6EK6CHZWQToayFDV0NS9MqL2gBq13CRNHibpfIYSd8JnU9fneyJL3PNsnHaj8sXI5bvNMKFN
yYWq8jAga3XxSm5rde0iS30OqZOX7yHQmxbgoEO8ZXwl74YnYsHwnWo+onki3gECYwjzs0ga4qVf
TbUGHGb9Svw041Ds82Ga/VLqF1npWcqZ1TTxW6GOjYVXYXoJ5jiZRjFvra+I1ysIZevUOXJDXhQ2
xTs+5/HqDRxNqwANc2KYFckXsZusMBwv6oCCLa77nEAxdBLd8aAEVr7MjjR+nYKGfXU5n3br3q23
6pBaeULNxpUD1EMQDF5aDxlUbVofvKweap6R36weapge/xb1EPmp6yH676uH2FvVQ9ob1kP6q9VD
xuvVQ+Yr10Pa03WQ3IOVe7ByD1buwco9WLkHK/dg5R6s3IOVe7ByD1buwb6Yc+iSc0jOITmH5ByS
c0jOITmH5BySc0jOITmH5BxvyDkMyTkk55CcQ3IOyTkk55CcQ3IOyTkk55CcQ3KON+QcpuQcknNI
ziE5h+QcknNIziE5h+QcknNIziE5xxtyDktyDsk5JOeQnENyDsk5JOeQnENyDsk5JOeQnOPtOAdR
JeeQnENyDsk5JOeQnENyDsk5JOeQnENyDsk53vTvePrl3/FE91F+i/4w9QXdQMWfE0QtnbW9KN/r
KAhl7rcOWvlT9Tw38DgPocGrNmCCPdWDL9Dg77ojWDUIpIaLAxOHplASRNVblh9omK0asLbQpBUN
3rSu3aR6ccfWBlCCMrPeYoREEKzM2mEJVnfAwvhRA2G6sASTeovhq1Q00HoDVkPhFcyq2nGASeji
QolWbShiUVhYArN9s2XxJ1RRFsY1JVglKkwfPyPbxgRkKSfpTQTBGdkXV51iMmGiDLIszZCdBry8
tL5VV8YQ2dHZfOLxbNGfKYrSixI3e0DHE/eGz8S8qX1U1AYhYe2DPvTnk+klTwKejTMOM+/Tp097
6LBnDQdDtTds9wjR21TV4RtjVhvj4WCg27rew+wIHVyn8XzCZwfX5ydXp4OD9web0pYo1G9YNbxi
+gCK2kWYh+gDrKTP3BMBZMxn+eg2miyWV0sFNEPVtoZDarcp0Xtt2mVG2+xqdts27G6/19MYxuY2
NLuk1nCZj3H5TCu8U5Mwn07TLK9C62IL2xbDbWNIAN+Qdtu9wWDQZl060AYa6fcHw2dAqwreQBd4
xiN0FtULdLuDcEtXyQe4Cf7Zx/tU+yCQ2oQx1TLbtqWBE4mN2z3D1trMUrFpUJ2ZBtmGdFP0fpi5
E34PZdbBNYfgAOnmoFvrUzXAw4b2yABfNQ0x7BUDwBm/R/lW4GzYw9oA5iL8sGD0bavdHZBBm1qW
1R/2iUaotQ14KXI74LKtCjTwLbcOFEOA2AJ0p4tNddhlbNBr69gCfBr4udfD4PGeyahpYUb75g6k
u327aKxgxbrBHq0lrLseDUPvsVNP+I3rP2wHPBx0wYt2e2CbfQBMYGHpDOYxsyzWMzR7aBu7XVsK
/p6Dyx5KCVGkHF1nvAJ9eVHDummCm2H+Q1FDNbpP9ing61uWbugEt3VqmG1q4l4bFn+vrUFlNBgw
Q+/pYs7OZ5lYUAfi9ooy07RCs67MNL0QMkVYZPTU+6e/312uZ50ZoNPQrAHWtH67ZzPSpn02AJ9Y
MKZDzegzw8CGYVd01qQom5roI/WWCsr9jSl1VwRt1DL3RV/4CSgo7Q2MHoW4QvqwWmF5tnvUGLRt
SkiXEoOZtgYoRkVJcnASeRlE/4PhcihgCHyfx8Xfq94+QJWupf7t3cq2/yfuSrbcuLHsPr/CS23A
xjwsMarUbZfVpu2qLYegxON0pk5mym3V19dFcEgiCFLsKp1uL5yhjDDwHvCGex8e5LtGAbXqaKWG
SUiaD6uav/624yHfvZGjdlzYGaczDhWjjozrQokORRKROfzaBUNM8MkmZrDB5VzF90/bP6DUifjt
RH012m8m6mw66mg6qoMdTdvFh4fH55ft6ofh+blm193/nO9gNSDrUIbnbLMUmqiYqv8gsDqnHFHB
c2aToqaE1mquj9uKaGVHxBpDl6OI8e3ff/7yaXi1ZGPtTIwe5G0JscCDkDqRyE3MCEklEG49FTon
K6K+akc19rzFsn3crp77a/vT8Pz4+WmF+HAuykQN21HDYaUbQlFnnA9Pf2wx5KzM8x9YlGesM2e0
mg7DAMfnGsNkMS6JDLtRCLrRCWKlQaJQxiELF8ZV/qqGx/m+5isHeS58uH/bqu2WHbWXapJY/mt4
AqJ7hKZi9JSqmzGaZho58ZwjFhnqAMi8JkE7nhylMQd2VbfDoH1xD28bcdmwOBeXWzoRd3X/+Hn9
G/JrrA9j7uZWzLSZyerm+0fokL3OMgAceeE9ERo+ElwUpGiGXSslWB6u789+gr4Oh7d3rbisp8Nu
yWGWb9+Vo/tyOVqRFzEw5uG/FWRQaomnmZFig9IwoSKtvCrlGCff/XiDixwnb0VedkQWzE5S+nrx
slgPL8MKhP95tQMio7kIp5HWa1zNyjNpfCZA6QoJDEnE80xJEsUDiCCwspviai3MpcNUl/HJ2Wd3
rQaup9byEF3jrz/M399//rB9mIBrxqCOruAf9lFslITxJJAmfAL8S5koAShIrc9B+qs78+On4eHt
933hd59v97GrL0urj+UdfdzUOx4x54f7gxbVmw/qJFArbgDDi2AFiR0xy1HvkC14hIOYHL39l9XZ
vWsFdh27kqtptj4z3xqG9oFo5yEhhgDiBw+hHFgseEUschDoBIBKgOxahX/dQ/YvG9HleuiIPsjJ
Wv/9fdyHb4SgY+j0XnolkAxYAZYTUitAR2YIlUwGp1Kkit/iBa+j9wV/fd/IbhedKGrXbiL7ae55
9/AyPD0sYDWcs5mZ8RpHd08jIxcVfSrCJPC60LCgIGwkLiqqDd4pFW/Rpzfjhcja+bLREaniXEfH
9URHX/89/+n9d2/UcXe0BadXxpCcHGCJLBxklDISs6AcaBdIO92izWHsvgaHt43Uq+X6XOq1mKbj
3dTx8WGz/bA/toE7z5gc81t9qCg9lZJMMSQkjthUQJ08R5KO0lNwl6KVEVd9ojPLBQB7/mGj1Vp3
IOLarQ5xdl+7fBhe6siHICsZrzCqAkXNqIpMSKJNhRqRevgL0KLKAOkMfJvFU9qzG+8/LozciuZ6
C75YHJLx8h+VkNKDTKJGSZ6KFUCuSMfIxAKMjDhZFIncaiWMY0GVFk43ozTzD7oDOwdjj/M//34y
e91WIBWelY6EB4QNgGZssBRYEFZg3pl5GiZg/mSMZu6NVGdzL6gwh2358/d77MBhcq7HFMGU05bB
oBgNQLQsIYFnWzE7nmOhSIQT5U+HuWumWi4786/NJPq//q+FFvdz5PGRju5iKcx5xqrLulJsSowR
gCEwUioN8SoU7AtDKnZB5HxTAOrM1Tf5zoenui1Fh7gtz1Px+6fHCk6G9YgUj9qxYyxyyehSARKM
CwA1weq8Q27OFjTKJgl6Sm9RrDtRX7Xup61ynbS9FIvVZOPGCPfre19e0zabyZkaQxR+1sTBmWGy
IAeWWjTTyQJr6ExyNFJDcydEuTnUYqoroRZvGyXUsrNDmrqJEn95d0gzVXpe857iNSY555MXXAHr
RUQBbTNMrmCPimMiJs6lug79qlTb1WhDNzO8V2n6n76+b3TV/BzoLo2wE3K7Hp5/e3n89HyisJuJ
cbvcGIdLzgxhmBMVgHmF8YZYph1JXtqQmQF3cjeh991EB1nrBxfw+/mHjWK2E76XdmUnbpa247kk
hGk2c8QwbiTqmucoMgtE+QogueJAvqXA7bKrRUjuuf92RP1cngvqn33Xar/qbKsTiwkt6xma/3le
s9lIzowauTDiSck0MGKFAogbnygIDSCcrkcZVGj5zQ0aclzw2Z/nd61a53huuWZqM5xhVv9LRIIY
Sc2YJHZPNXdxLRV8gWRaU6etLltpKHXSc0mVsTHfClMxyWVkipeN8Gt+XmtdDmI12ajdicufL8A+
SiKx4T/YPdRqS1acW0QaYAwDhgMAEISXxNlgnEfGY/nrBloHvyx1fduIvXHnuA2/3BwAAiT//fEh
Pn359PJ4rFNTqtlM7Mpf2VhnpE2kOIQKEeFQQYDnOJqKQMhg2akubjsf+VSwFUjFmWArulgfUFN5
fHj5afiwfX55+nLk7EKOMsUsWbKR16Owyr1g6whmYLvgLzFSHbXh/3dm3hRfzsVutV4MHa2X60nG
+n7x8MEDlnx53o5hzuzARP1ZKT6DIZksSVSa1VOVCpJgUdmCq3EB9i/iN1f/VKQLtY6TLxqlNdPn
SmvOzrHGfPGwXj7+2Snmh1x8MJXGMesA2BHmXeCwylIADHkwJugbUcZ+kos4Y/++VYHzngpTpHEg
Kc8vWNxaen8+LXjs0tWYqhh8qOJuUxiimAoCcTohEriAJOyoj+mmJPzX3XzzznSnSp19NtFt0dFN
TnWr4SV9Hl5Ooa3Q3ruSFOHaQg8mE4KDBqwoXmpgW6tDujUa17EvB7b6tpVa9qRW0+PU+adhWH38
aVg9fngYWxN3h6uVy43YYV/TVIoJzjMnkcGvRD0NrOcqpAhsslVZZHET+ehOd4Fx9z5tVVS2o6Kj
k435afgdaP/X7fA/r8hox62cq8HSec21YyTQBM+RAWTTMHAQBG9VZIpKiVtUO5/mUjicftcq1SEe
K70+xv3V50/Pr4xVUrurOVufmC2O6HF/TFXHSgpgI2FokSuldEtZT8dpBehU/VaWTqtKtfb9eTta
SgVYkKNSZ5dpdlF7om1R9RgO1JmZSBwChE6SshvrSnWvf3l32dx/eXfXitdJllbZXiXs11OypmZ0
JqoCu4cKoEwU2HFLTOSg2UYoaID4k620BukUSNHeTteusrWGrK0c76z7wm4m1rz4Y/P4+WG9L4jt
7NhaN+NsPAal8NNMDdG+UEgPQh0M3FZp7XSqNM6466nv13Ic/oLsJ180Ciwc7SiwnLrju9VrVoUB
m9F+6o/RjEUqWQSilWR18TUsJwSET7hhovCMwm5Z/NM5LtS7T75otViuOlqs5KSQ9+l+8bJ5fDq2
SemxhiezkNSALBpWWxc0xI9Yfcms5tKrSCW9VsNrB23FWp8XklYrup5Y+A/DeruIwFhPj/fzsQ/s
WEdiasbsyIEM11xp4g3LCOUeobzW2nzwnFqnWHQ3FebPp+qv9Pl3d60OHbMfNqrDG447GhdPy0Om
YqyGnvGEZx+DoINAZsjE2EojRODEe11pBHfaCprEV054/lc891WWC9Hq+P6u1fAc8605d4cw//sA
S3xaHM1L61ltjqE5WZ8VdPO1iUx6Xc8WM+HBKp41zSzzNs43A921s50jhLVy09a2X7fr4fHnx8f7
EXjusQ0o5gx0cgSeIeVgBTKPBcMAPEPEARNSmcJ1JbepXCdtp+P3l/D0i0aDoVPzWQ9iGnEA78r8
cE4rR4oQuUYsLAAw3CJfMoo8FS0MxRlvmQEg19cPDsYxL6LJMm/lFKwn57ECfyjhP75sNydkTgB8
7dAwkwZQB2iLI6gn74lVFJzOg2IKq1Th7urRwMm4p3INvIPaBy6HY6zbMwF2rM6rkXCosbElqsiU
J9kLhBGfQThs9KRksBCZrJE0tZY4Ga2VRC86kjh+rNN/Wh1kUMrN5I57K2yZ45RXeAEZjJQEmI0S
Ch+3MVqbx6aB84U5DtcK0WkXG4Q4+uTi82sNABG9LgLXFPw/EMAaCzMC8HHSUcKVNNoE69WYr04W
4XWMu3aWjv5Lt+5EwUMzUPVFxJDRqF/7jZTwACjBE6AVWUu2jDhQQ4IEWlxiMUf97/YbnX5x18o7
dJRYTN3x/vHD9uF5d8J/SpZg18kAvwBvuYRIoiwJpRiSMku+aC0BH29JTOP4X43bp1L0Pz79otVz
te7oueEHO/nP9/ntpL0FmyIU0g8JMdbWqAxUqTzipWKBCgejteYbtbe8zt4K3TPuleLTIkNGoLRs
PMGoP2vS4aEIJ5UiLCZsjOORWMAZsHHDow6sBGW+XUL1+QLuzI0+a3eO0/DL9QSnPQ+rLejjq9tW
H7EwqEQL0UGL2s4OQ9MAnY4ZX4xzQEL+WjxtxmyF6nQd4JfLSaBf1guKz8fcXsOp00wlRhE/Yy0j
BrA475knLDCnko+ZeXZNptMhW5GWvXVau8k6NRfr33Bj+UztKkvFe6eiyUR5VU23JESUVJtPQgnc
wDbGHuWLkp2O3Eq27kg2qEWnrnI0nh/nr9RBIwvUXoDx53iOyIyKqbbomepZ3MFMNSixBmbyFrmL
f8NGxFdJLrQCzXv0AvotO0pv6Flfyv3j0/zLw6qW+tweuLgRujiG3M+DIcB7tcmdOqS/7IkJojjl
CpUuf/Pq5lGeSylh/7rRdUPP4+SGUnZawn6/eHoGczgtYFcldSwS6BaZnQFTCGlqiweYFMIpQmVO
nqr0/1jBPpX6rtXufHs3nC2n21v2Jcfv3piKp2amJvHdU80W0iSTEmi7owhQLlFiEwem9uDyiSE9
fqUZ8jj+he06vL5rxVz1ZF8dtuvzwxGD8Vo4U/X02sDyIkvwN+4KCZRqkngUlMNCkc27geE40GT6
dW/6zWTpEHw/P21fvnzcfvdm5xhKYdaxbSPVSx7VHRxCaK5XgWozKUg5NyxEjiB2fdVGqvZVM5nv
JfjLu4u97vv3rX5SdvSTchruRiHgCmrsc1LVHlwoimkD89eVrZRUz+E1Q65QznOrZS72X9Zs924i
quqJOs2t64fn5/URlht9yBguR2Abx0misGEBxyWOBxiGMJV9Ww3cfi1jnIw7EWvoiGWGyRH/2/n8
eECyi5hgJL42TUoZYajMIt9bZP4icw7CxZDC9WCCES+0yMznrYQL05FwSafFo+YG6xtG1YHRINE7
8GZDcoTTC65q6xGoldQsi6glk+Vqsm1GbkVbdcxPSNVpiPzlZXs/0gu2K6uMkglLbQwRIDAVBnTO
GUFWBSow8PYkYaAy3FzZrRNcKe7W13etnLojfD3MEKfrWmvSL/fPr2z1sKz1PpGvXb6cSk2EAFsM
xQuSjDPSK1aMuIqumoEbyWQvx0l2VvT8cf75abOoLbJu16Hvdt35PjMWa6OdTFUyWkQ9tMUfo2WC
UVP7h68Tg8PIF+qch9et1J3O0Y3kclqQ2GWJ4c+X4aEOeDTYerVg17YYvLJB0ECsMBW3AsFanwWR
xUrKWXJJ5hvaFidTNMKqTmF8o4Q4lsoWq49HXm4133VBRM9zAnd0MFZqC7EWVDi45HOEI4mgu1Kd
jNXKIDreo3aXVMdTmd8/fTyuTr0zqTEN+BFJ46UYLAkJ+Id4KgCjpU8i0sl5zHGEduKe5Su5nNhX
2j7/5p+W25en48GAHuNfTYw0lSKTC4T7CDgRLCdBwZNhbcgcIfEUrh8KTEa/1MjTfDTRYtPRYnl+
ZW3xtPo43mWp3XN030VHx6ud1iKTMBJd8PWAS9ZO30xk7aCTKVnn3bcD90dBLmX4/etWyU633cbo
zSQ9/ffnxdPLP/bFa6Ddenqm8eDGqyO1oOk9SQiqSPSmFkMAAenYuqOj2x3jXdbydfC+5K/vG9HN
umNllrNpcqjdkulxV3saBedsh9e95ZxxR7EpvnbsIoOFwDWJURkfmU0y3dYdf5jhymWj+rqR3nVa
j2pfz+F63hPg+/0foE9HqFKLGjoImwGiuKtdpxFo0dY72QIOi98klZui6tkwrQSSdSRYTNtWjjqN
afZv3/u/HnrygbdmSFc1dlEB+MrqXf+x2sJrQ5HSEn9kuUC2rKL4qqXXsS8n2Pq2lb/TdrNxZ7jl
UME9rwaLKpkRhURDAfmYj8QZZDWqiorMKW3F1e71ZuRWtM69rM1iPcUt3y/AKj6eFgfkTOmxOlAf
xqNR70NgEEyAI4gsE6Ixl6RW4FJSJSYRvl0EaeW51BB0+s1dq2DHIRcbc9GgxhNli4zLKp7cdbRS
QWdmd+spUs8MoAQB9K7nRgG5sAIOm7A+PiiTMr35VHuc5srB9vi+VadzD3wzONoBn+XkdFvP3IhA
ldgdXdbLCGAStjI8eKpkBcTCOBK98EYmkCFPv7qFXzvfbr+5ayXWPTX0tIZ6vPp9jPAnv9pHzMKC
0x7xx2SJHWEB5ijqX1gAjl9YYToX+W9dMH99P9HB9HSY1gNXzZWYQ6XSjUcvY0PQmHZjBsBJtaud
KWILrcV6zQ1NrtiQryPqs/FbMTtly82wOgKut+Xv84+Lp2F9dl8xBi4D4D6JgQGRemBTJzOr5Uub
PBJr+Qrbu/m+4kSGE/nrXx561gzhqJTHNoLTv4T0DeNj625wCpAsEVdPlAQzkozxKqTIlFOUGTbF
jK+D3LXzqM7kZgq3/Pbp/f3iy/xwFDNpFPDG1LxaTyqEBVjMllgGCzVwOQQMA4pyUxNeO80FY22+
aZU5twRHFTMH+P/zuzK9TCyLB86XlfBXNKJY9S0kJ4Ql75SUWX0FLN5+2vI6+90/ebuWLjduY72f
X5FlNi3j/VjimSixrhXr2tt7OGRT4vGII89DN/KvTxWabDa6QQ4dz/FGttgQUOgG6l1f1fSZBtFm
dZZ/v/1hKOF+Q4YkSCLJMbWT2IDzhZJSDEoh6PBWRazai1xmzYJJ+QUT8awmWx5VlN8ysaT8lpkZ
5f8bwjR2F4ITLCUQ/fCv4Q8h4NIZDHcJKZIChiDENWcFpm0TCg9mZNolmT2b+4L+/nbMXMBURnRo
aNBaUAH0lBoTwUaUSYMwcR5ITlJ3SoPpGigw4PAq7sKRhHPlLMvMBtzJtrE9Ps/NeCw5km8eTkmS
03xazGmzh9w2tC5AI48SlTTiCGZX2QzqOlpT5SNFrL+nr+IgnWduXpngWb8BrpZvYHtKkPnHeza7
9YlHYhIl8BkFAlGAlucpiCTGuZNKe0aiebUYK2tceiCtQfJ2LDZEwTKgNO32H9HJdfKnsHLTo3Jg
RingVtEzrBcDIzeCIZhVJMQwm6WQtQQ4M+WMLNMia5T4d6v9x91EjpbLIYUToE11LEkO4h1uiCUZ
REHOmtJAkreppmQ6y3R5SlYLD5mlVMzzGv3dc/90f//0CX23vHgvyn+36GWiYBKR6OGDEoSqsQZz
dCXtgtGoa5IE4vEFFjjOf44RjgMq6qkkDerVoo4845eIu4cCw/Ct6OBF8aNGF2XPEOlI7qIMAQSS
AxWWg4lHBNxIEykznryok4yzvxyty1eMnw2qd71Mx4EfV2KWjhL72+ePH759vr0v/mIqB20d43eZ
cK1A7mo0rHkwpDMEgTAcmLEuajAT1XVVdKcVzpXPnUZUe2DLAhr8cS6CP/V3X1CS8WIziaJBOuCH
FA5aSJjELGUA3RYLUp2SoIt5EHH5VSQDLH1GKMCTejPb2+Vm5HrVgO45gFmhEVhMcwqKUE7AT8Ae
x/JaocFoyrwjmkWRtQNt0f8hn9LMvroAZjU+rvamVo3DptZq5oz+XOBhRx8OPxZgxegQW8Z3IRD0
l0gJGjO6dHJyxBowF+3FpNvpvDVd68YBUv0cLgmhRh6PLLgkZQ0IBQee7rO2jGggTytUj4C7m4y5
2RGspxBssom9xmGqJMF5dJJxSLVVzZYigupb2kLLKFftEFpHkJKSPQ9s+JAtEl02JqtOY6k6Rx8Q
cGrQxL0BZRUukPbuapiM6VIXMDKmw+pt3bLWtvrZti6ybsZyFprRjvB4hMBzhnfMEx2VJUFr/UdZ
93lGbEzjbhgzdyxiPuPBj/RutYcL9rnfV7l1YPY4KgPcD49YZBKz7HI2HY06gt7ks6OXT+Fi9nOe
8dmwajdWL5V2ag9iBZMjH9afdl/7U3kLXHE53PJABdEKdFcpNFweTljneSKdksCPvbRgns7STWeT
1YSsZIsQfaakq8iY7+8/fjzc8BG5wCmwGEDjRBRH0JIUhhUFKKBwzhMKCuXo7ynvmq5zudRrOnK2
M9PamWngFszSY0DvMigBi6MNuRYlHuEOEWsITop3IoNAlMxLsPwToa+TftMYONtP48gc09cmEI67
EjzMq3U/RFb4AfeJH71CGPZCALTAsCZUR9554UIXpA3J0mDAhrjmUx1XOMOPD0+rLWz6xmGDHy/k
uf3lrwq9AGqAabQg4RxovJKj0e/BarNwEUCR0iSxoECD/IN+6+mIGemqRfrqaDp8WX2eoKeQUsFD
JOjnEe6AxUAAnByDPiQDipMxIJi9mhkOkzlma28ba2/pce0fV5vdar/u574fQxK8LdZlmS1GIgTc
SQX82niXufdAUXolK7CmoCK+Z0uzAX4aAfB262fMKTghRkpOgdUV5dNpB/erEwRriBxwaqNEBHkj
FXA60NryjNHN5rqpl1QNOlg/8/bu9tsxgi5O+fUsURWEB1nBmQazS4LqGATtqOBgDgA3d/Sik/c0
bU2UXd5pRsk82f2Y6bWtIgJDxhco8hh1EpgTDjo6/KmGGgSfI1zqZJKUoGpxm1+QasMSL8UEluNu
atr75YaYntcwrZ43u/s3TwdvkMO/TepqKBtwrQbvujY5WNEJqVCTlRn4r3UdWLpwf4Ri1l5WOqaT
n2G8kxE3Nd2NI8OVOR3d+/3XSQUq0sscUZGw3Bmv4UPAgYULb1WHmWkS7CUfVJgf2sksN/VSjdMh
N3N/wfF0/OWvQ/E/qKBwheDgovzKnnHQsoFTOo6A5aV+HFgRA04amYugC7mrDsbl41DRLfvGlTdy
rmz+uPr/AFM+rN7cwlm6G/AjxeCZtEg7/Gkcgy/OnEIGRjF7zmJVFYlUCQ1nuuFKnbLw7+ZrfIfl
d4iL+t271fqHD6fn1QbMatvYwHr0uN399nn1Ro4Qt2haRsKT0bJzOoBShil2hiJ8dWA6aw8/6lkM
fTpHvfh61Vi8H3OFv9/t+9WDu/vYT6riKGVmgOAIwYNsRyxtxA0BcZOC7eBMInK50oHrV8Nq7tcw
wZmCkSaZ1TYtXeoCzMp5uti/Iuq+Q2F10X4FnloCOovhmIOP4HBY4AsqDDEYaosvGCH/TTr0v+KZ
HJJYbWllGvwCfjx+uV/6b58/jhne5YNpbYQ0gnUxoTIfAprsiD7IIxXAgEKKbcyU6VwzIpa2Orul
fB7VPKVcCnEMZSr4KAZrpAxDaoijwGzBvhBZCyeEhSN9Meey4Ttgt6YhEUoplG4aGKv+8/0eUcnu
19igbxJYSTY77zH9A2E0s0VcD286CS+NBOxxwH+fiVGt9IKRUY2t97eirf2N7/vX59XDav8Et2Hk
F+oIGK1dBg4PagRIGjPUqAP3dF00nCpqFFeCNd/3fNIZRcu4FdvenhiIe+/CP2ecI4MyQl0C3Rqd
kxz4RecDyAmrabIWhJcO9M/iHBP6qo1t+6Xrj0+qKA6ncPV4qt5Rg89Zchek74hEHH0JxqlBcCVG
nGLBaSISu3Ssxwlv6oVlgxq6ONjYXufHHoO5/cMYYD56VhQfmJpg0oINBjcOZEYqkO3wV2GCl0Cl
JvY6rIjGWmcOdmNkvbuGyw9+3B4dFOv7L9+2u7uTzUHNASCFBGUix3LskrWVMofNUDA3wbIEI9oB
41ZnYKCmU9bUbJaREy7IPIzfzJjB3GJhU1KY+mAzBnEk4lgKA/cu5cSwbJXJyykml9Xi8F1bHQat
fBmx59v1ZonGMbQcGWjmAt4lHtwkjIxS4VvUbABkscDzULVPiUWifZYvCbszAe9weDYlVxC6VNww
rXtG7u1q/cvzlxqvSB2QHlXxtAPrsopgrgRPDhE6Fbx5ECnEcsejEkTHq4LgfrbS9AgPz2r6N7RB
/3YsOtzsHr+sntZjfjJcu6NXzSkKEpiHDgSyO4Aao29Qyxgpcy6q2E7bq+esyKGkQQ7Vq4JiVw78
Q7+u8NQYH535UmubswPrN4K5w10E6x1RrUAuoGHCaDxTOjKftSZJ37ZI6sc39O1uc0pqPDY/CRFs
LUwfcljnwKPB6yMxZ07CjY46cdUuGjhNN6Ni26BiPSZZ/u37nxbJTAIsJ6lt7JzCehBHLTBxkrrE
QC1IYCCYpF8pmem4ek3zuvUx1/N6tv/pn9wzhm5lyV4ZElmZ91EL+IwmUYMgXmAdYFKOs4QLEKwB
hNCVIF44+VmwBXw4I3rdILofNdJFPYMcCObeE2oDmNkWD58CWeQcYx0VXsLR42YRfj9ftgALNjLA
BDPbni0xibBme6r1KcV0jNF2zmRstAR6Eli0rvPKMQs2raXWXZ2uWQrCz2dr4uOKcGZbhPf8KATd
z7k4D6ZCsCTYCkEjIj5FgwDFEUH1YwTmTUWCLw7vz7A/iD1Uud9qOuot9EtlUBQfRiU53/cPCLeD
PrwpmuDxKxALxiNm4MWAuBsmhg57J3RUgfbqiTA2XHWAG8ucgSVeDqy2JZbND/DHsQ/Np373ebO6
61aP+xNkhzVHd56OzCceU6dIxsxI0AidZamLjqRsI8fWFPX5Xk44o8e06LGnxPvP91/7qcLES7I4
CHiEVutUSMAYgmLAU3PssAtaiioZeaYaaz7fjJhVgxi7nrGq4t4Nqy9PzxgmGCpIh8Jqnb0CuSc6
Wfp2yCA6A5pypx2LKYI2F+mrhP2nFFxoxnAYUe9xxRt73PBGGoD7Ofw9IkPWRUeRGkT+gA4KRiNY
Pzp0yWrE2cA0vWSAOWdlNGb/Ga2uhojFVS6AxOLjegcb0drBZrEDBEcdZEpVygkKrACttoNJELrB
Y32kQD+fFMC+QTO8Dkz7NP854o/PZ9T3Deq3rTj5JJ/pxFFM1N5hAVPyGMshGkxfCjKdeB6t5ixY
+XJtxwuZTNWQmvqtbFG/mld5PK2eHk+paUU3Q/HopFRIYhccYoCDKgZ2O2L00gxKeRJChotFlJN5
Z2Q1tDMQuLOXOiue2eXdsVMT3IlSS0mBHBtohLfLLBxsUGkNB0MMRWnyOtrorgYfxPkvFNDA05ua
3MbFlHZR4FYnT9CSKSJBnMiS/SekpnCigZVhM4vEOh+VRjB8jhzbanaVuLkibeJsygTQ3FBSi/f9
0Lnp+yG/Z66ogqUQA6GiYwFxhzBoZDVxHVOZUZqzVi8kKf8ORXVCQUW7lo2DpLesEWgtoHQNNDPQ
SbORBPuuomjKiAoTk+1AlxUKrCqeYn7xgpbJzx+e8nhKuKSrpcYl6cl39dupVEAWQ9MEHTQIciJ8
gZ0qgReBvgebQcBT52awU7+16gRgCdZadwS//vfq4bQyK0vrEBUY4xLLu9wA0mQc9sbIHFu92aSS
nvXGOE1SLc5EY3HsDHnsTAWv6ud3da8/PSDZM0JTVjF3kuBhCx4uCcewvjUhWwkC+wUY9+tbUi2I
mO1BN/YgxUyaHV2o/nm7RURGWlD5zZtDZT1o3MkTdBaQ0rUUTp91vssapLSlWsO2ru1/cVrlfOOL
05h6L1K29qJnfkY0tI/dE46fBZPLQSPWQWqDdTbAvWhAQ09hQSAH7Z94Yrl5qcS+nreijvdLVVNK
NvYxe/z1bvfU85PYGnBxfQDppHXqmEDkjAQ6naNRdtQhirQAAcz4DKVuOtFNvdq6RcK8JcgQ5X3e
70DYFfvkp/1Q0DwN8CbJuRSWdTqhgUcTti3WrBPOBlBvTJQvZCmMM1+I7uLj2Q6WDkWpbseX6L93
H2YecmHhCGJdrLMGCGVYRJ/AqEtg+0gKM2b1Z3nIT9Td1PQ3PovWo8T6+m73eEobpcVSpbAtbIIB
Jh1YqgmYqI9YsordK7lhnjj3J21qQl21K8R7XO5qEUB693z3tHu6f15/Wji+MQ4gBhQA/G9BweA2
06w6xTmCRKOPOkjWEYZtIDNoHfIq/ejCohXw63xYvcFGBAl+HNMMYI9fwNB7+L9TS8JiPPpscqCc
dwlLPXh0wDe9JaCKEm4TM5g5ca7fQj3hjBzbIGc9t6x+ut39+lyyDmjJF+e0tEnOUmFqaxcCQnJ5
0NyMcqTTNBNNmQar6qrq9+Ps7fd5fFrRbdcNum0/InmEH/MH+Ed91V8LNE0jmMeWrWDu8kjg6GM4
lkZGWNaBOTnTH+ppagoa6W1y3etZ8svf+vtpY5qidxGtUQaawVmYjReiiwUHRXB4hQFYtorKOUJE
YJxf193q/nKAezLgpqa48SI3B4iZSUHZ4BGprVITqVI65C4KiVKGYGsuYJfYxxpbpTkrr2q6cpj8
XE1AeXhT09eQihvDJ1Wmq9vdKUNuUB4dY1iLYnRAGxQzaTPoci6QzAwx3ni7KDMdZ6mXb7hc5OZ2
RG398e37Zk9kB+JPYIhEpuKH0tjdwXVaSUltMmghv2ZP5AkZNfm3vEH+uoEaj/kzq92+2UabOQf8
U1hQ3zD0g/zVeAKyJYCSzrBreeZX+mrHZc66a8cR9UZaTGCzOVMt+Pht//Spr5yQ6CfiQzee4X8K
Uws6RyO7TD3BcuTQmRIbYqAUkuBNfgE15r/JORlqAj8sKVwWDo6D6lexBE6wshdsdo3fvQsfRh7O
dAnf5WCtAQOkS1FhirlAoMuSgwd2oEwZNJ6r9HCc+4xEhCdTahVdtnLHHzdHXKthrTf+dIPpAPJr
Erc0dRQRcThcG7xAuVNMEQsqDJFhlm5XT1TTsOxcaRXIgdnhedc/rbD5cYniDyl3YJu8Kd0iCQki
eBk7UGGxWpAC8xaYwsotsQYBY2N8PWiNIyXn4OaHpzf1dnhrj/0p9LZwaHDjec7WYesEzAoyoGJE
UBRpcIkkEyKYZa/l0Gh8lQY4O/woxyDMvx/vniYAArwU+BJliNOgG9GCoOxswi4tGDZKoBZ5HiOf
sfbpNPX6snEquLo9RnG/xg/va6U65hQ9A51MWDyUhvAORU0XFI1eOSEDj3+WUj0Sd1OT37htsM3Z
Sd/tf6mi/EMR9XDzTCIMJiId6NLYXwP0aCeAZYBCClyCJO2CfJUYwf4MdCc8qPYkbmVjT7cjVOO7
EqU/OXFE6XhDEcMBTggPDMHJDKjQMXbUZO6ZSGpAyJgck2qW2fp9Y/1+gWr56Xn/y27/8fBGjm1j
0LtcDDIbgYFY2QkQpdg2BmQoRZgyODlZe0+TvgpqYrbMGR9cPajajrSNYy8xDZU3XYhvf8B2cIM6
K7QqwC6SZBU0mCUSkVEMaLJw/zxieBnl4SLCC77OhXiuCGEyoCa+Zy3i51BJ71b7jw/3X6serIqD
6GAg8WQwmGYoQZ0RyoBS6Ggi1AeQ+FfJvsPcZ3jz4emMatWiet6o6svDblp09uY9/r3czqKPFRBt
jl3uks6dNmB9cURzMNgTWjK4mSlHrl7oRXHl7Xxf01I72HZ10Rtsxbb2N97Q9Wr9qT8h7KDPRSYL
OiWmPWELUuVLIz/egZRNlCoqXGwHWiZTVSRseeNUbxVtOMZLrw08GVgLRoUc4DNN9ESDQPcW60Dg
qIBcwVbV8EKZBesHGMqLR7rMfP5Al8c11Yq1qFYLqjFU93617wfQ0gH50KqS3plCMA7sMszqABYN
dGePkF8UhKPXxrpX4dZTEi7FE4cRs03q1ibnULtPD6tTpZNmx1RaI0gGQUQ7LyVmnGng5MTbLqec
owIdRdCLSPaTaWdULbm6Jotw1k9vp7mHJ24ilPIxg1gBWjJGaQliGmGLTK2tYMwydVX6ynT+Mz6R
t+0cRE02srGD7dhy5f3+4xw+RDAhEFJdFYwJodEpSLFENkqWUDDF1wINGhevSKaNgIimljf9yyW6
jv83wGWQA1xG8UYk5RJcUjRI0bdc5CioghndVGBBYDP5F2/rkFlzPrCPj2vql9DH8ONGzw7y51Np
r1EDc0mUOS9kp7BiiGOem2NAPXaRsRmb8kV1sX6/9Sr7pb4PpslmARq4//gMH+3d/aa/m9X2guSz
PAPPcwRYL+fwKuGtgg2MkeQksfHhVZkG8zXO9wadjqp2w8SmsRvJWr2/UIl+fNzd7u4OXsqSb12y
mYjjiXjVaUyy5kanzv+nt6PrURsHvudX+KUSKx1R7NiJsxIPITGIQpYTm23vnlCWhC0qHxVkte2/
74wDbAIJaXXV5QEJezIef89M5oNhyiM/BH5PgFg/uM2XXOO/kfCrAlfpjc1qzpZSlp2v39+NMct5
KBRc7RQZEwajj3wV8IjIKILMCRKa1YftWW+r+o6wSsd1yh0o5OePrsEwiB7r1Fcc2me2wNB36Ixj
ebC/+lJ1XRoyoXwaWvSPqq8qhFS64F3H9NaFVzfkYpegnbXUcgyOpR9YQKkqjK+A6cePdZx2RYgJ
iy0pBm0B5RFl0/EAVRUyF871twwXY5dU1y8G0lisUTTgx9yjvIiKRBmzfTfscoq3iaM8FFcGXSEC
y6aOGziB3yqJB5Pm0AvBpErus6whN700JMPQf/rMsBkarmtF0tGCXUeP5WiviTG27NDtoxN0H861
wPN8GsD1/EtOO8cmGrRgRWWF9NS5tt5wU5e/p3B4W21Lps5FCG/gjQUFhhnNneG2FrzrBcAveSEG
8pC27zQcwGVsVTLcmi2+XKZ13k+FSqlQPTKnyGHlM2A2Q9kVSmi2rd/t2wOnC3wnDdy+57ay8UfE
N9ybLjREss5RGgsbQ3uahQ5CRxrA945/7SK6JzDKUkq4ylRoo0BrWyCJwIJwlHAGIXUCMfhfPpsW
ddWe0mVNT53LiOL4PX69O1sqcbytXS2yU2FqNYKUTPRtxbrKwi/+CnPoKZvC/WJzbnsOC612QXey
awvvcoKodqJGlSOFWFwpLeEqas5d6ApHhXjHO8gf2RxvQ8XxLwMeyrU4a5mlMv4bl2GNm7UUSV0P
lt6viL3H4OFFmF8uiiyBofI8xl3etSTmTpXoxshh13DYvsJWXPBQ/HF9/ZmcG9LwZUAM6chrfgYL
z47GOi5yTb4/PpAUY/1iihmYLwt2lY9yBcyTHfpoW9nw7beM0TDU9zzbb5M1AW5rtTxZ4z2+bjYw
IvdAapCsQZbcJGlGnn+QXf4l25Nv+x1yNNmB5Mn+JdPBnvIvq8Op4l53MU8OX+fL3X7+bZXekyII
cpGSY76A3zy7J1a58JDl2i7yWF5tuA299d/Qw59Sr2AEdHuYAWG1zWq749qu93ttGp8iMsteKuM7
A6jpdv2DoE0A1uyW5KwQvyfxLk/WPe2kFJF9dlil2TbvwRFqehFwYR/uyOEN9kaWznev+Rxoe93q
CF7QYtrzpOlEHcY+3Bmf96s8eV5ngAPbP2OmJhuSN6jMs22PMlNGHQpIzy1RafKiqNROzxp3LCgq
t4WIOp4HTRFjpoaj6QOJ//1bkYbn02gWP/kTo/f+NIEeq41gSNDrDJfaIUf7qDpgKl1njKArHfjt
1nMGPeiwxcUbhwZYBA2Pbl5wIKHf7aveKZcvcGlakfHxkXwcxeQl2+pbK4VX0ktqmHCaQTuF/VeW
3iGo6yDW04unKgLLKUlT+HsgQBmmUynNyJ0x1rnmiI8lZLpdNA2HHBuRP5lMA3J7vDAqf3QC7STp
ZrW9a4S22dh4jP1gTIZP/ixsRgujQCPjMYepJS0PdU03gk001yT4sboJClg/Z8/oVBnpQWleByaL
jPk89GO/jQAPtiGAjiJ/qFpgBYNxnc8no4exCmGCGx+G6ivEGqt/4ts4GQMxAEGfHkbBNLxNghAw
BRu9aQl6iTRDuhIJOG6DTbbBwG/NDx//zq6Np7E/Ia0za8phAfoXgWX1eqgs8mJxn0GtIZwxxk9Q
SwMEFAACAAgAQGG9SO0WTIrBRQAAJZQBACIAHABEdW1wUmVuZGVyVHJlZS02OTg5Ny1jcmFzaC1s
b2cudHh0VVQJAAOIPktXiD5LV3V4CwABBPUBAAAEFAAAAOxd+3PbtrL++fKvwJ25kyO3dkoAfGp8
fcaW7dSNHxrLSTq3k+GAJGjzhCJVknLi/vV3AepByZJt+NF6EuicSWU+dr8FFrv7AaDYL4uIV1UX
LX72x8PROc9jXl6UnKM/HN/z3c9Gn9VXy5fC55ePRTYe8uqXj2fHH04Ofvnpl8X7jaOY53WapLzs
rtdifORllRb5soJ///vfRq+IObq4GfHFk797zpZjoc4pq9NrvgH4SlCE+ktG9W/qqyIHKzzbdD4b
57waFXmVhtmCuOoK/UFs8tn4UPESHe0v47BNbBj7rOa/XKTDJSDExM6WaW8RH2HSNf0uoW8pJmjL
dE3TOBugVbadsAjBqd8RNt/C/23UwdYhdjHdAIijoqxv3YWxsZsX+c2wGFfow4cWxn2KHWzvmVuu
vetv4X2nt+U42N/qOe6ee7jv7u7Z+4ZhCORo9yv7wtEgzSOO9oqi7iLLhA+qeFTkcWUYvZJVVzxG
F1clZ/Fcu4XQ4cUx+lSUX7K0quUXaKrmMsM4+BbxUQ14F3vq4PdesLe7H+z2egeDAeoMjt4NDt59
3GhdL7p31l3vD85Pg6PTj7vHR3DT/v65uIvVyPxmTj5hyOKQ88QwPp6gc34JIip0ylkJ10zPdY2t
rR1kCIFBcHHw+8Utr50IwyaD/8Fna34AW75okD8Qclzn/WdUbn37pfz6DQ1O/rd39mmFw0PLykZA
ZreL9tNqxOroCv055mNoh6gYvmWjUcbfDlmab9VNc5kAYX7mN3bNBlGZjupeUfIG4H/NLAZIduhR
m6LfBr1u97fBR5aB5OmXzgb6GWHfwOoiqX2HSIINoiwSO96SyBj8KuadrMgvkfhHirYMqibasxiN
SCNaCoZRnqQZ32MV38bjnW43Hw9DXp4lAzYEiRWYAP4MbvozchzDUtRGo8T3G23CO/eyIvrS7Y5H
MQSA3SzrlzxOI+G81W4e94pxXh9DCMoh7HTGEFsucxg/aV6/2UQLfzbN6hq2KpzYJPF6OO0GaUFr
etE3HFVtjNGHGd9osA1XTUMS+5bnomLESybknEEcGKZ/cRAGxw2vCfto/WcijZrEIhSGr+8TZMLd
NvEpdl3LsRzHtQxfCVaIQ8Ysjq6HB3ld3lwU8xtANKWWgU01MyMn5mwyHI4uRFt2u/wbj8Y17zSe
fPLTZnMeeq8ueizLDks25D81juIZGKtptIlnRY3Eo7zm5ajk8O+SVtB1CVoO5DEGeXAKQhwZ1NDL
0wO/Dc7C//ColngsSI8GZDUlX4o49s1GGL8GN2VTELd0DYpxGXGZ6uXAfbO5EEg20aeLw273FJJX
3K/L7YmQSQ7ZkUPL8kwDU1WABBKhlDZqRlB8cDfQZqCl+eU5Z1WRPx98HzzMaqP/xMM5bHQLPSaU
YNMP0eQ6oewEckyTjGa4/3nDXChuVkJ7e9X18IaBbTWrMeemN7d62sEwaossk+4+MfQohyIliztL
l64waXbF/tnJpxKA8FLe2j41s2qf1yzNKjkqRJ3XWUbwNhqNutiBUg47qqYlEOkfYJqKTSuBO3gd
btcH3K6iI3KbRsu4DzI+hIp8Fn6ao/cily5jeVN4EykSG8UCm6eCDQa5Zbax/XpxctxIPh/neSs6
9oGMgPc35yCvTyu5A8jsLdQLl0mwVLCQZbFNW1oW4PUV8VIeWg/By4Af5JcyP88AyZRMXbIOEDE3
DGKqNqADxecjATVFAlRTawD50EIEqwIiYfwAQB0Zm/qsqs55IqLTfEg0TrUzCV8X/FvdL6pU8pG5
FxIwew1szwbYRAW2mUS+SIYLsPeLaCyAiKYTwMtxPmm2w6Lss3HFY8GO98ZpBkS5KfUdMTZu3yxx
EcEfCVXFBfzxblwjIOsXxReeQ5lWHhfFqHPn5YObPLoqixyY6gkM7E0UFkXWikh9EDeAahmae1IU
W+tNosJDLEWTgC/FCiYpmSNrDctej9gjgNhWROwmNldAfJSAw8ppDGXs2F3f2tiBCEscRezM5ck9
js0r+HsSIXYTqEon0V2OVPCDJnB5dC0y2xShy1VFFibu3cjyok6Tm8M0T8W0x7wxeyyCv895JfNT
k+xB/Vp4loDnqcKLaILyIt+6Tst6zDJUX43zL6gung2zdQdkIkaWUnYy7TjyHILWaOx24a/oy6mE
10QraqLO4kXNGPG9DYOaqrp9F6/Xncj2OC6YyM+tMuOKAWXdGycJL5sm8VdCgiAIkLAapITbPl+G
1Lj2wwFhGHCd9q3NUMQu4FHKMcQhNHJaxcNgHJYTGwUM4TtxGh8u4IqLMUQRgcOmophdvkWCsSyI
aVQpsRDih6Fjz8Gc34fk1pW/sjyW/LSNEXXOb+NzbCASVI0++VBHmAxt/TG5clHrbrXPM34Jtbao
CHIupzz2lyB3P4vu86D77pHxdjjsElt06EJe6B2e8vprUX65jdFNksRLzIh7OEZB4Nhbf5wOPpwf
92ZgJMXPIWgEX9P6an5c1K4Ttd0iz252IzFB3v0chKIyC9L8GpKIoAC+QR1VNI6H0ZORiJRPiUFd
Ve22596nvdGxGsNnOUtgUE9Rb2JbFvRB8H+nxF1Q3ctSiKlBL4MaM42IE8QTVcGycx98wLRp/1GR
CsCH19cHyz2CTcugvhI47FGL0QeAw55snmlb7FZQGBz030e3cfWxE/QOF0T131O6dKiR3huXYtUl
+HjCvi2aE5BmTsMy1RqbAL2PENTaGZSZkksIggoFerc7lSzVdK6LNG6KdQgQ4g8ZS11iWAsxXIzK
w2Kcx3KucYXG0LIciJm9w92yZDe7cNPN4TiXNopB4hkWUbUgZvFqC0a8TIpyOEmN1LCoqujQ99DJ
OKtTuOEbVFGT3NcWDPWnYVmqgv2QrRIcTCUvtLCt1sKux0wMPto7PP9wenx21g+OBkFv9/j46PRd
cPbhIrg4C3aDwdmH896BGfQPzg/Pzk+Cww+nvYujs9MgkEWrYTlqWh0WenGjdZwL0rJfNFZVYrKY
QPizXFWJOEzaEuE/wssJgPMURflh7KG2oMGIR2mSRnLW3jGgSnnYNPhkGSvCbhzJaXDwZ2pT7IMQ
21QTEiYcmPVMCLFtxzZsrCoEqoWWEOKBQ9pE0Rxixi0k1KImNiD5qwjBOMTmHInnexIJDI0sDeOb
LH4L/6ThOiGip3wLu9yOfFTVrBQLAXi22ofvXO0TGiYnt4YsZ5e8lKt+cLy6qWo+DL5A0uLZIoS2
j/A4ppAl0RcuJqAgQon8IJf5WrJXWLCA3oxd4nAUTK8Phpdl0CxCygWTmTWkqw6P+BaD0SACy5/y
+pLX4zJfADqRNmp0LohbGBBELHPFTTMHX/+cQcR0BpG+fojW64dod9tuulRKNRW1sg1RbMUcDZnw
r+oyqEs2WgX/AYKAvSQzQcJD7aVV6IcEaTF/2grSA15epxE/Aan9Qg5igsnSCvRDxFI3vB37MXXx
0vryMwT/xRXi+9M3hogLYW65Mu40/bmBgjalEyqbUphaS6vDy7CX4wmFkMp9As1wOmj8KQjEvoYm
RVOrWQtWctjQtMH9JxcGYRHfSFFYrgMrSWJJ7M4lzQK268iVYMVRxGO0LGg+hpzHDHPLE8O84sOv
LK0DsS0AKEt7lEQ///wWr05J7T4wLerExINBHkN5FkAaqq/SahLUu90q43wUQMnWmV/QzAAC4x43
K+7bs+0Ymy0x8tw2zjYB0/ST7aCd9rqMrbgpJHSIa0WOrM/vRfwQWALQEy1bsgm7HlHcjwJWWZCb
UThkGdT3ExNasMZ5ChVBIGr/7dlFYs0zjU7GQAV23rThPdaIZuePrbi9RYA3rXgOXvjjh7xOs0OW
Vfxvt6JZHXjTLEoq7o0BW2gS+nNbfuVsBN0RMaiZLvk/0iMuVdxyI4wIQ2/ZCPDQqGHXg6k5G5M5
AldVvs8xmcuX3P+CVa2WECobFo06Szh+2uhs7IghK0brJGM1SIjvySitBsWL7GeBIrfp9MWkRecp
4iabbVR3CzkkDIHTSFbccolgEtWCUVl8u9luRbwxiN1uYIDepyHefFID/iRC6IzOW2KfkflcSVvs
WHqmpC32Gj1n0nah8P10cYj6rIQ24Rn6lWej+Q5W9YSOqQMJfSQ64CqIrkUYfVQ+p4kb+XY7+hR5
LNeig2tWpmKLVhOk14Sz+dFhE8madR/VTG1zl4cmmqyZl2IJ/7gQc1bwvTdFBC13czQcZYuzb/Ke
QVSMeHzMhmHMtkVIR+Br890oty5pHLR1ye3wW6dD3sxLbt8+Cf3E4psgEm3w1NjdKnZ2JkHWVN2j
GnJmMU8mswc04vb8utlxsZu1lY635dljMG+nM/v6itqp2/1XJrvyX52NTfQd2WOCQTsrPFziffPd
mfrmlY09Yqpu2IahRxP+HfSL3FHoqW4QB/MJs5qMv8781ZbL9vZM1YLV5rbtJLMoJ9Npk0370AWN
wsOibJaIPqX1lShQ5mp5OUcjEC6wMeKqlreAhnJzPZor+b1J83tQqsji1bFUS1ebO67nrVcTp/EJ
+8LFczG71yzNmNybc6/N3e7/BGa32+yGB9a+0Xp0gShvYhcg7XiZbgfTlTNxPGjmF4OvzT5XmYd3
xDURmLT9Iua92em8jNw3Ta1jK+7NF83kJNFCCyWTNb/p95dpiXYckJW56POXUbUz5QCCMi24l1gO
UX22IHKw2CwxRz9tr+01SmY+7Cg+NRA6Jrdj3gy0W1Rvxluw7Snu9g8diLcebgR/rZOLtbKJ58u9
+M/Eiezn40TO83IiT3MizYk0J9KcSHMizYk0J9KcSHMizYk0J9Kc6AfmRL7mRJoTaU6kOZHmRJoT
aU6kOZHmRJoTaU6kOdEPzImwqUmRJkWaFGlSpEmRJkWaFGlSpEmRJkWaFGlS9COTIqxJkSZFmhRp
UqRJkSZFmhRpUqRJkSZFmhRpUvQjkyKiSZEmRZoUaVKkSZEmRZoUaVKkSZEmRZoUaVL0I5MiKn4r
/PDdurcnK74O2Meu5U/e8wlSu93dsKpLFtXNj/yN2E1WsFjyh9ZrcE3VVwT71E+ge9apmbrhf7eU
2ET1pcGghFO3pUQIPxYDVgaJ9l+d+UXTQ+/TPN5cg7B9/LSIZ++5bASwv25Op+/D8qgqCfGpS2j4
j6K2fdXyjdl+7LvNuHzHc16m0a+suroooYyotlfbAuGGD0f1zfy90K7qb7QKvYlltsrGudaDmeye
eHHUNNLeD2sTJeLHagFe2hKy7urO6uOteogS1fckC6sg5MytSqtVdj3coEdjJ1j1DczCE2jc6gyR
8NYgm5Cy97yxp8/Scu2Vtz11Z8Xt8P3gm3T4aU5+rHC0ttmEVZtzA0/YSEHuA4Xe16HrL2wZsGh8
c+WDdaC5/++NYfjUnac1Z8unfMW6HXwqDH1b+9R35FNnpXhbVC3eVfe8zqX6a8uMWWE8+bVl7WHf
g4eVfFhc86OkdU2H5UV+MyzGFcrZkFcjFnGgWFDGjkt+In8RPSvCkJed1ZVTe6L0WTy1nXpfHbjW
cPI9RV4Ow8n3Wbw0nF6zt2l3eT53gdSuOCkB7uItcLQnmyf4i0kVZywEDuchOESLZL3BQf9Kzsse
s/JSoKq63a9lWvO7QNmKkx0Ck52oY2peCzg42H60MTsPs8ZStcaiXsuaT0LFCa+virjXdGn6F9/+
B6xFixNf64yeTkRYppwPUjKdOthtYuJcerTK6HPO4tfRJpuvs6vasPZ58jpAoXaAfley0dWbOydb
Xk8vz5buX2Vnr0D3evq8VSWZDpUTuyoxgXIneVhM+BuNUnPjvw2YbGXPNbCr2MY2Y/4/k0DLcXt6
do9VaSTlNisf2MEG9lSNMSOsbIzAIWchHajNfEWNlscn05BztSBwN4+Pi0vF5nlADbtw/ZTOE1MV
tMv5CtBS6BMwN+NBLr05BsHKoEK7hWfy5uOpspVqhO1qRWyY+MRuq+lnLBeb0YajNONHebMkJBdv
2isH+eVxes1j8cayptWp6VODUEXdnhmT+3Sv19uOK821+6xmcrRQDxpcrdiMSZwQ1k5qk9Ux6Qq3
sCwpdKlpEFtRYUQ8a6XCZu1u+t7v+RIlBascxWXVhJl+Q2wjEFrziSWzd381wifvLN9E0RUrJxug
7t6lYBvEVYXix0/epfA4I6Z7ER5592zHAfGUTXYfsuPgcbju2FfwOIH37B4g/t+2e4CaL7R7gOKX
2z1AyXPtHqD02XYPUOuZdw9YqFey6opDr6LDi+Pn2UUQ2sy1TLkcLKWLYOerbhFweOg5k3XwPXpH
vv7Ky4tiNy3ntQ7BhKpuFnA4tDqZq8tmcjuzY/2yiHg8Lpss6TiqS/ugw6TRXMelWCkXI3udmk00
zsXbfKEPwT9l0vAd1bV5h/vcw3Oto5KPmHiNdPmu0T/bSXCfcstXfYcqlATYnbQquNesHujMj9xO
/wOWcLlvUxDlapzN3qWruo4eJoy43tPrIZcQ1RejvnQ9pLiC+vR6yEd/Qz2EzVdTD2H8w9VDypv8
vqt6SHFy/km7Ka2X2k1pv+BuSufZdlO6z7eb0nvmesi+vw7Sj5jpR8z0I2b6ETP9iJl+xEw/YnYn
54hN/ljOgX1TlXI9jnMoPkP2kpzDRz8e5zB/aM6hn+DST3BhR3MOzTk059CcQ3MOzTk059CcQ3MO
zTk059Cc4wU5h6s5h+YcmnNozqE5h+YcmnNozqE5h+YcmnNozvGCnMPTnENzDs05NOfQnENzDs05
NOfQnENzDs05NOd4Qc7ha86hOYfmHJpzaM6hOYfmHJpzaM6hOYfmHJpzvBznIKbmHJpzaM6hOYfm
HJpzaM6hOYfmHJpzaM6hOccLrnNYKGp+xxN9Tesr9LvnTOgGkj8niDqOtRWm9UbXQKhk37po1p5m
GLI45DyBE2H7BCaW5YnEASeidXfEsxMCqctw7OHEE0ritH3L9AMnqtkJbE802fJEOFrS7nLqyDtW
ngAlqPSWz8SJ+MFwVPprLMHmGlgY3zpBLEdYgsnyGTcyqThBl09gMxGtgq22dpy4JGRYKrHbJ2Qs
SqQl4O2LZyY/oYrKJFtSgk1iit+NLsmqPgFZxnFxmUJwRr3+h650JmIclGVRol4R8+bI/E7HuIDA
jk7Hw5CXzUlsGYax9//EXVuTGzd6fZ9fMY9KXKBwv1Sl4sLVq107Vomydl95acqMR0MVOeO18utz
0Bxy2E2QmjiqRA8aWg0B5wO+yzlfg9b6frb9cvvm0+xjt6tuM/pFbwkmWY1+3X6XHj99ftfdL7vt
+20Hx/v+++//5fbfgiu50FBI4FwTQTU+SekIYyVnHbUOTP777esPm7vHT93u9Yeff/zlp/z6X18P
ZzugoH8gk3G+qCdHbkd/CDe8/Q6B9PduXvPH+273MP11/ekpul5RoCk0ulJEJILrQISXhlivIokm
+hSCkozZFppLsw5xCX6OS7D97oxmePz8ebN9OIXmmWPRSUZM4cBXhCch50ykF1llxVPK5QXQTice
oJNOnKGbz2SFdyUHv9KUf4e/hB8TNhHqu4o0IqyosyQ6hU3kkZFgoiLSUWaN0NIa3kI6nHqy2s4+
df8Ey3r9oUNuQLV57UdjTg1YWiXPDOiM1vXYTwzAZvxt/dAELktgKsMX8ZvD6UdHfOaZCOdcKokr
LlwL+H7KNuD9sxOgjApz5p9MmKU7B3pxiy0tXsociGYO+BT2OQSGHQ9WCuuYFMleQHp5b58enmK1
HWdnWB1zcrWan2/qj93H2eJLG3DJHrsYSY42ATBHYGkJP5bOyWBULNFc3tr9xNc2eD/iZg+xVhyN
0Jo9Qz/+oaHWYpvh/+A0QokJnwjgS85pozkjWhhLhGWBIPgDUdSqnKXRQVeffdxta0C9rn/9ZDFr
3cqOF7N2vkKhWPUFfTP/z8XEH+JZS4M1jXKZKZVIiJITkWTGnjicaVEmSWOYMfFkzdEsN8OVxNny
jmLxxcClfu+T9u0rO6lj8TtQCBGyCQJ5hSdEK8KTBGEyiYJzL7iRNiqgmPaM5PWP6/kW2f91ORwF
jmCx6O76/111+4BOhu7Xbw/bP7sZGKAWDatUN0pJ025R69ff9zLk9pXsrePCTjidcJgYdWRcF0p0
KJKIzBHXLhhigk82MYMDLucmvt2uf4dRJ/CHC7XNGI4ZmbNqmFMr/d5H0nr28X6ze1gvfup2u1pd
4926uz9WAUQijOE52yyFJiqmGj9IrM4pR1TwnNmkqClh6DXX5x1CtLIB0Zo+3DE4/vCP918+d8+e
bKydiD6CvC0hFkQQSicKuYkZKakEwq2nQudkRdRX/ajmnv4fOVkvdu29fdftNo/bBfLDOZSRGbZh
hsNOD/REXXHabX9fY8pJmebfsSk77DNyXnUdhgmOn2sOk8W4JDL8RiHpRieIlQaFQhmHKlwYV/mr
Fh7X+1qsHPBcGPj0dGi2mzfMnqtRYflbtwWj28BS0UdKtc0YTTONnHjOkYsMdSBkXpOgHU+O0pgD
u2rbYdI23MPTAVzWzc7hcktHcBd3m8flb6ivsX7oaze3YqLNRNYwf/oIG7LXWQaQIy+8J0IjRoKL
ghTNcGqlBMvD9fN5WqBtw+HpzRAua9mw33K45Q9vyjF8uey9yIsYGPOI30oyIFiJp5mRYoOCBFdF
WnkVZZ8n3/z8ghA5Lj6EPG9AFsyOSvpy9jBbdg9d/beHd4s9EendRTiNsl7zalaeSeMzAUtXKGAo
Ip5nSpIoHkQEiZW9KK/Wvlw6LHWZn5wNuxla4FpmzQ/ZNX74afr27vHj+n5ErhmDObqSf/hHsVES
xpNAmfAJ9C9logSoILU+B+mvnszPn7v7H35sg98PXz/lrjaWoT2WN+xx4+jYYM2PdwcrajQfzEmQ
VtyAhhfBCgo7cpaj3qFa8IgAMTl6+6fN2T8bAnYNv5KLcbU+c9+ahp4S0T5CQgwBwg8RQjm4WPCK
WNQgyAkQlQDsWoU/HyFPDwfQ5bJrQO/kaK//8TY+pW+koGPq9F56JVAMWAGXE1IrUEdmCJVMBqdS
pIq/JAqeZ28Df34+wG5njSxqz9TEae15c//Qbe9n8BrO2cRMeM2j+0+9IheVfSrCJPi60PCgIGwk
LiqqDZ4pFV9iT2vFC5m1MXJgI0rFuY2Oj6Wdr79P3729faWOp6MtNL0yhuTkQEtk4RCjlJGYBeVg
u2Da6SXWHOZuW3B4OkC9mC/PUS/FuBzvl46b+9X649NbG4TzhMm+vtUPlaWnUpIphoTEkZsKpJPn
KNJRegrtUrQy4mpMNFa5QGDPBw6sWuoGRVy6xSHPPrUu77uHOvMhyUrGK42qRFEzqiITkmhTqUak
HvECtqgySDqD3mbxVPbs53t9YeYhNNfa8NnsUIzn/1UFKT1gEjVL8lSsAHNFOUYlFlBkxMmiSORW
K2EcC6oM6fRglsH6nW7Qzs7Y4/q7Tyer12MFU+FZ6Uh4QNoAacYBS4ENYQXunZmnYUTmT+YYrL2S
6mztGRXmcCx/fLrDCRwW57ovEUw5bRkcitEARssSCni2lbPjcywUhXBk/Ok0N4Ol5vPG+kszyv7P
/7LQ7G6KOt7L0X0uhTtPWA1ZV4pNiTECMgRFSqUhXoWCc2EoxS6InF+UgBprtV2+MfDUtrloCLf5
eSl+u91UctIte6Z4tI4dc5FLRpdKkOBcIKgJXucdanO2kFE2SchT+hLDmgu1TWsOHRrXKNtzMVuM
Dq7PcB/e+vJcttlETlSfovCzFg7ODJMFNbDUpplOFlxDZ5KjkRqWOyHKi1MtlrqSavF0YISaN05I
Uzcy4i9vDmWmoue17ilec5JzPnnBFbheRBbQNsPlCs6oOCZi4lyq69Svoloveh96scJ7RtMe+vx8
YKvm50R3boQdidtlt/vtYfN5d2Kwm4j+uFyfh0vODGmYExXAeYXxhlimHUle2pCZgXZyL2Lv+4UO
WOuAC/z9fODAMNtI33O7sKMwS+v+tSTADA6z5zCuF+qa5ygyC0T5SiC54mC+pSDssqtNSO65/3ZC
/RzPBfPPxg2tXzSO1YnZSJa1HM2/n9Zq1oszo3otjHxSMg2MWKFA4vpPFIIGFE7XVxlUaPnNHRo4
LsTs++nN0KxzPjdfMrXqzjir/yWiQPSipi8S+0+1dnEtFWKBZFpLp60hW2UoddJzSZWxMb+UpmKR
y8wUDwfgl/y81zrvxGJ0UPs3Ln88gPsoicKGv7D/ULstWXFukWnAMQwUDghAEF4SZ4NxHhWP5a87
aJ38Mur6dAB75c55G/5wdSAIQP5pcx+3Xz4/bI59ako1m4h9+ysb64y0iRSHVCEiAioI6BxHUxFI
GSw71eRt5zOfAltAVJwBW9DZ8sCayub+4V33cb172H45anYhe0wxS5Zs5PVVWNVe8HUkM6hd6JcY
qY7a8P87Nx80X85hD62edQ2r58tRxfpxdv/Rg5Z82a37NGf2ZKL+rBKfwZFMliQqzepblUqS4FHZ
QqtxAfUv4jc3/xTShV7HyYiB0Zrpc6M1Z+dcYzq7X843fzSa+SEXH0yVccw6EHakeRc4vLIUEEMe
jAn6hSzjaZGLPOPp+dAEzlsmjJnGQaTsHrC5tfW+O2147MtVX6oYYqjyblMYspgKAnk6IRO4gCLs
qI/pRUX4P/brTRvLnRp1Nmxk26xhmxzbVtNLeuweTqmt0N67khTh2sIOJhOSgwatKF5qcFurQ3pp
Nq5zX05s9ekQtWyhVmYssz933eLXd91i8/G+v5m4f7latVzPHZ56mkoxwXnmJDLElahvA+t7FVIE
DtmqLLJ4kfhoLndBcbeGDk1UtmGio6ODedd9Atv/sO7++cyM9trKuZosnddcO0YCTYgcGSA2DYMG
QfJWRaaolHiJaefLXEqH43FDoxrCY6GXx7y/ePy8e1asktp9z9n6xGxxRPfnY6o5VlIQGwlHi1wp
pYeS9XSeIYBG129h6birVHvfj+veUyrBAo4qnV2m2UXtibZF1ddwkM7MROKQIHSSlL2wr1TP+pc3
l939lzc3Q3iNYmmVbXXCPpyKNTWhE1EN2H+oBMpEgRO3xEQOmW2EggXIP9lKa1BOwRTty+XaVbU2
EGsLxxv7PrOrkTfPfl9tHu+XTw2xvR9b6yac9a9BKeI0U0O0LxToIaiDQdgqrZ1OVcYZd730fSjH
6S9gPxkxMGDmaMOA+Tgc3yyeqyoc2PT+U3/0bixSySIQrSSrm6/hOSEgfSIME0VkFPaSzT9d40K/
+2TE0Ir5omHFQo4aeZ/vZg+rzfZ4TUr3PTyZhaQGYtGwenVBA37E7ktmNZdeRSrptR7ecNIhrOV5
I2mxoMuRh//ULdezCI613dxN+3tgxz4SUxNmew1kuOZKE29YRir3SOW11+aD59Q6xaJ7UWP+fKn2
Tp+Puxna0HD7bqUauuF4onG2nR8qFWM19fRveJ5yEGwQqAyZGFtlhAiceK+rjOBOW0GT+Mobnv+R
zn3GciFbHZ/fDC0853xLzt0hzX/q4Inb2dG9tJ7UyzE0J+uzgm2+XiKTXtd3i5nwYBXPmmaW+TDP
Dya6Ga52zhCWyqlRvH5YL7vN+83mrieeT9wGEnMCOdkTz5BysAKVx0JhgJ4h40AJqUwRupLbVK6L
ttP521t4OmJgQdfo+Sw7Mc44oHdlenhPK3uJELlGLiwgMNyiXjKKOhUtHMUZb5kBIdfXXxz0c15k
k2U6xClYC+exA39o4W8e1qsTMSdAvvZsmEkDqgO2xZHUk/fEKgpN5yExhVWqcHf11cDJvKe4Ot5g
7R2X3THXPSkBduzOq15wqP5iS1SRKU+yF0gjPkNw2OhJyVAhMlkjaRp64mi2IRI9ayBx/Nin/7w4
YFDKTeReeyscmeOUV3oBDEZKAs5GCUWM2xitzf2lgfONOU43BNG4LtYJcYzJ2eNzDwAZvW4C1xT6
PxDQGgs3AvFx0lHClTTaBOtVX69ONuF5jpvhKg37527ZyIKHy0A1FpFDeqd+vm+khAdBCZ6Arcja
smXEQRoSFNDiEos56v/tfaPTETdDvF3DiNk4HO82H9f3u/0b/lOxBL9OBvwFfMslZBJlSSjFkJRZ
8kVrCfr4ksLUz//VvH2Koj34dMTQzsWyYeeKH/zkr2/zD6PrLTgUoVB+SIixXo3KYJXKI18qFqhw
cFprvtH1lufVh6Bbzr1QfNxkyEiUlvVvMOrPWnR4KMJJpQiLCQfjeCQWdAZq3PCoAytBmW9XUH2+
wDvzwJ6lO+dp+MPliKftusUa8vE5bGuMWDhUooXooEW9zg5H0yCdjhlfjHNgQv5aPh3MOQTVuHWA
P5yPEv28fj9xd6ztNZ06zVRiFPkz1jZigIrznnnCAnMq+ZiZZ9cwnU45hDRv7dPSjfZp8L36V9xY
PlH7zlLx3qloMlFeVdctCRkl1csnoQRu4Bv9HeWLyE5nHiJbNpB1atboqxyd5+fps3TQqAL1LkD/
s3+PyIyKqV7RMzWyuIObakhiDc7kLWoX/4YXEZ+RXLgKNG3JC9g3bxi9omf3Uu422+mX+0Vt9bkn
4uJ66uIYaj8PhoDv1Uvu1KH8ZU9MEMUpV6h0+Zt3N494LpWEp8cDW1f0PE+uKGWnLey3s+0OyuG0
gV2N1LFIsFtUdgZOIaSpVzygpJBOkSpz8lSl/8cO9inqm6F158e74mw+Pt7y1HK8fWUqn5qYWsT3
n2q1kCaZlCDbHUWCcokSmzg4tYeWTwzl8SuXIY/zXziuw+ObIcxFC/vicFyP90cOxmvjTNW31wae
F1lCvHFXSKBUk8SjoBweimreTAzHiUbLL1vLr0Zbh+T7uF0/fPl1fftqHxhKYdX+2kaqX/Ko4eCQ
QnP9KlC9TApRzg0LkSOJXd+1Xqp91U2mTwj+8ubiXfen50P7pGzYJ+U43fUgEAqqv+ekqj+4UBTT
Bu6vq1opqb6H1wy1QjnPrZa52D9t2f7ZCKpqQR3X1uX9brc80nKjDxXD5Qhu4zhJFD4sELjE8QDH
EKaqb6vB269VjJN5R7C6BizTjV7x/zCdHl+Q7DMmFImvlyaljHBUZlHvLSp/kTkH4WJI4XoywYwX
rshMp0OEM9NAOKfj5tHgC6yvGFUHRYNC76CbDckRQS+4qlePIK2kZllELZksV4vtYOYhtEXD/YRU
jQuRvzys73p5wfZtlR6ZsNTGEEECU2Fg55wRVFWwAoNoTxIOKsOLO7t1gSvN3fr4ZohTN8DXlxni
dF9rT/rhbvesVg/bWr9P5OstX06lJkJALYbiBUnGGekVK0ZcZVeDiQfIZKvGSXbW9Px5+rhdzeoV
Wbe/oe/2t/N9ZizWi3YyVWS0iPrSFv8ZLROMmnp/+LowOMx8oc95eDxE3bg5upJcjhsS+yrR/fHQ
3dcJjw5bv1qwv7YYvLJB0ECsMJW3gsFanwWRxUrKWXJJ5hdcWxwtMQCrGo3xlRLi2CqbLX496nKr
+f4WRPQ8J2hHB2elthBrIYWDSz5HBJIIuonqZK4hBtGIHiXV8ZrAp8+/HnenfmdSYxnoI5L6L8Vg
S0jAL+KpAI2WPolIR+9jjjMMF255vpLzkX+l9e43v52vH7bHFwO6z3+1MNJUikz/zdu1dbdxI+l3
/Yp5zEsruF8ecc1k155x4kl23/a0qKbNM7LkyFJ2nF8/VWiy2egGKWaikxfHZneAAglUfVX1VcH6
jrkAcMIb1nkJJxl2G1gOH1n055MCi9FPEXmqlxar2DZWcbMuWesfNx9LLQuy58ieRUdKaacxYElo
F6x3mOASyPRNnUAGnYjRWGdfD9xPgpyy8PvH9SIbbLutVtuFefrhuX98+m0fvAa0i9kzBX+xpXQE
A5rOdRGUKhh6jcEQgICkUHdUsGMa7/Qqj4O3JT8+r0TXt41dZhhdGgdkS8aHMfZUBGd0xOvOMEaZ
JfCjOGTsggXznqkuBKldoCaKeBk7/jDDmWIjfFxJbxvUI+T1HMrzHgG+3/0K7tMEVTCooTw3CUAU
s8g6DYAWDdZkcziw8EmUqQqqroapJRC0IUG/pK1Maypm9n/euL8dOPmAt67BXKHuIhzgK8Va/xJt
YUgokkrAP2nKIFuSgb+403Hs0wYWn9byN2g3W7vCLYcI7joazFEyzXMXNAHIR13orAarRmSWgVqp
DD/LXq9GrkVr1GVt+9slbnnTg1fxcR4cENdSlegA/qWkRp3znoJgHHwEnkQEbcxEhxG4GGUOkfvX
0yC1PKcIQfN3ruoFNg5kv9UnN1TJKBuwuBTx5MhoJZxc67HqKRBHNUCJDqA35o082EIEHCbC9+O8
1DGRi7PaZZozie3yvF5Oow58O1jSAJ95lt1W17YgUMnH1CUWI4AnYdDDg5MqaAbHQtsuOO60iOAM
OfLiT/hSfrt+56qWWLWWoZYx1Kn0e9Lws4/2GjNTb5UD/aOTgF+EetiOHBsWgI+faaYqZfGHCsyP
zxdr0K01LOOBm6ok5hCptCX1UghBxeyGBAAnIqudys5kgsF6xTSJNhufziPq1fi1mI2w5XbYTIDr
u/y/7z/2j8Ptql4xeCY8wP0ueAqI1AE2tSJRDF+a6MCw5he8vYvrFRcyzOTH3qErMoQlQkw0gnkP
0m8oK9RdbyVAsthZzChxqkVX9JWPgUorCdV0iRmPg1zV88jG5HoJt9zu8d1d//X9IRWzIAo4rdGu
YqaCGwCLyXSGwg7VcORAYWhwUS4i4dXTnNis1Tv1YtY7wRJJ9QH+/+P7vCwmFtkBzhfo8CMakRTP
FhgnUEvOSiGSfAEsXp5tOc5+VctnGkKb/qT+/v7vYwn3NRlJkESSA7WT2IDjhUIpBlAIGN6qiFV7
kcusWTApv+AinkSy5VEl+Q0Ta8lvmFlI/o8Q5rm7EJxgKYHph/8b/hACDp3BdJeQIilQCEJcsldg
2Lag8GAhpl2LObBlLOiv30/MBaQyYkBDA2pBAOgpNSaCjyiTBmPiPIicpO6UBtc1UFDA4VXChZMI
p8pZ1swGXMm2sTy+5GZ8KRzJ68cjSXLOp0VOm91z29C7AEQeJYI04giyq2wGuI7eVPmRItbf01cJ
kC6ZmxcSPOtvgKv1N7A9EmT+6x1bnPrEIzGJEvgZBTaiAJTnKZgkxrmTSntGonm1HCtrHHoQrSHy
dio2RMMydmna3X/AINcxnsLKSY/KgRulQFtFz7BeDJzcCI5gVpEQw2yWQtYW4MSQC7FMS6zJ4t/1
9x92MztaDocUTgCa6liSHMw7nBBLMpiCnDWlgSRvUy3JfJT59NgkdDU9pWLJa/R3z8PTw8PTR4zd
8hK9KP/dYpSJgktEoocflGCrGmuQoytpF4xGrEkSmMcXVOA0/ilFOL1QST/23FtKr1Z15Bl/ibh7
LG0YvhYMXoAfNbqAPUOkI7mLMgQwSA4gLAcXjwg4kSZSZjx5EZNMo7+crcsXvL94qV71mo4DH/bL
/lZxuHn+8P7rp5uHEi+mckTrmL/LhGsFdlejY82DIZ0h2AjDgRvrogY3UV1WRXec4VT53PGNag1s
XUCDHy5N8Mfh7jNaMl58JlEQpAN9SGGjhYQkZikDYFssSHVKAhbzYOLyq1gGmPqEUYAn9WK2N+vF
yE3faN2zb2aFTmBxzSkAoZxAn4A/juW1QoPTlHlHNIsiawdo0f+hmNLCvzrTzGp6XK1N9Y3NpjZq
EYz+VLrDTjEcfijAitFhbxnfhUAwXiIlIGYM6eTkiDXgLtqzpNv5uLVcm8YGUsOyXRK2GvlyUMGF
lDV2KNjrdJ+1ZUSDeFohPALtbjJysyN4TyHYZBN7jc1UWYLT3UmmV6qlarY2EVTf0Fa3jHLU9ql1
bFJS2POghvdskeiyMVl1GkvVOcaAQFMDEvcGwCocIO3dxW0y5lOd6ZExf61e1g1rLWtYLOus6mYs
Z6EZ7QiPhxZ4zvCOeaKjsiRorf+o6j6tiI1pnA1jloFF5DPu40hv+3s4YJ+G+4pbB26PozLA+fDY
i0wiyy5n09GoI+Amnx09vwtXo5+KjC9eq1Zj9Rq0U7s3K0iOfNx83P06HMtb4IjL8ZQHKohWgF2l
0HB4OGGd54l0SoI+9tKCe7qgmy4GqwXpZUsQfaKkq9iYNw8fPuxP+NS5wCnwGABxYhdHQEkK04oC
ACjs84SGQjn6e8q75vOcL/Wav7lYmWmtzDT6FizoMYC7DFrAEmhDrUWJx3aH2GsIdop3IoNBlMxL
8PwToa9Dv2m8uFhPY8sc6GuzFo67kjzM/WYYMyt83/eJH6JCmPbCBmiBYU2ojrzzwoUuSBuSpcGA
D3HJT3WY4YQ+3j+tlnA7NDYbfHiG5/aXbxRGAdTYptGChXOAeCVHp9+D12bhIACQ0iSxoABB/sG4
9fyNheiqJXp/cB0+959m3VNIqeAhEvB5hDNgMREAO8dgDMkAcDIGDLNXC8dhNsZi7m1j7i09zP1j
f7vr7zfDMvZjSIJvi3VZZouZCAFnUoG+Nt5l7j1IlF7JC6wlqIQf2NptgI+mBni7zTNyCo4dIyWn
oOoK+HTawfnqBMEaIgea2igRwd5IBZoOUFteKLrFWFf1lKohBxsW0d7d/XbKoIsjv54lqoLwYCs4
0+B2SYCOQdCOCg7uAGhzR88GeY/D1kLZ9ZlmlCzJ7gem17bKCIyMLwDymHUSyAkHjA5/qrEGwecI
hzqZJCVALW7zC1ZtnOKlnMD6vata9mG9IKaXNUz98+3u4fppHw1y+K9ZXQ1lY1+rMbquTQ5WdEIq
RLIyg/61rgNPF86PUMza86BjPvgJxTt746qWu7FluDLHrftw/+usAhXlZY6oSFjujNfwQ8CGhQNv
VYfMNAn+kg8qLDftbJSreqrG7pC3y3jBYXf85Zux+B8gKBwh2Lhov7JnHFA2aErHsWF5qR8HVcRA
k0bmImAhd9HGOL8dKrnl0DjyRi7B5o/9/wcY8rG/voG9dDf2jxRjZNKi7PCncQx+ceYUKjCK7DmL
VVUkUiU07OlGKHWuwr9dzvEtlt9hX9Rv3/abv78/Pq8WYPptYwGbKeJ299un/lpOLW7RtYyEJ6Nl
53QAUIYUO0OxfXVgOmsPH+pFDn0+Rj35pm9MPkxc4Te7+6F/dHcfhllVHKXMjC04QvBg27GXNvYN
AXOTgu1gT2LncqUD16/Wq3nYwAAnCkaaYlbLtHSNBZiVS7rYDxGx71hYXdCvwF1LALMYjhx8bA6H
Bb4AYYjBVFt8wQn5T+jQP8QTHJJYLak3DX0BHx5+uX8OXz99mBje5QfT2ghpBOtiQjAfArrs2H2Q
RypAAYUU2z1T5mMthFj76uyG8mVW80i5FOKQylTwoxiskTIMpSGOgrIF/0JkLZwQFrb0Wc5lI3bA
bkzDIpRSKN10MPrh08M9diV72OD9fLPESrLZeY/0D2yjmS329fCmk/ClkYB3HPDf52JUM73gZFTv
1uvraWt90/f9y3P/2N8/wWmY9IU6NIzWLoOGBxgBlsaMNeqgPV0XDaeKGsWVYM3veznoQqJ13opt
b44KxL1z4b8XmiMDGKEuAbbG4CQHfdH5AHbCapqsBeOlA/2zNMdMvmph22Ed+uOzKor9Luy/HKt3
1BhzltwF6TsisY++BOfUYHMlRpxiwWkiEju3racBr+qJZUMautrYeLvOjwMmc4fHKcF8iKwoPio1
waQFHwxOHNiMVFq2wz+FCV6ClJrYy3pFNOY6sbEbb9ara4T84MPtIUCxefj8dbu7O/oc1OwbpJCg
TORYjl1YWylzWAwFdxM8S3CiHShudaIN1HzIWprbdeaEC7JM4zcZM8gtFjYlhdQHmzGJI7GPpTBw
7lJODMtWmTxPMTkPi8O3bTgMqHydsefbze26G8d45cgoMxfwXeLGTcLIKBV+i5qNDVks6DyE9imx
SLTP8iVjdyLhHfbP5uIKQtfADWndC3Fv+s0/nz/X/YrUvtOjKpF2UF1WEeRK8OSwQ6eCbx5MCrHc
8agE0fGiJLhfzDTfwuOzWv5b2pB/OxUd3u6+fO6fNhM/GY7dIarmFAULzEMHBtntmxpjbFDLGClz
LqrYpu3VY1biUNIQh+q+dLErG/5x2FT91BifgvlSa5uzA+83grvDXQTvHbtagV1Ax4TReKJ0ZDlq
LZK+aYk0TN/Q17vbI6nxcPlJiOBrIX3IYZ0DjwaPj0TOnIQTHXXiql00cBxuIcW2IcVmIll+9+an
FZlJgOcktY2dU1gP4qgFJU5SlxjAggQOgkn6lchMh9lrmTetH3OzrGf72/DknjF1Kwt7ZSSyMu+j
FvAzmkQNNvEC7wBJOc4SLsCwBjBCFzbxwsFPNlvAhwuhNw2hhwmRruoZ5Cgw955QG8DNtrj5FNgi
5xjrqPASth43q/T76bIFmLDBABPMbAe27kmENdtz1KcU0zFG2zmT8aIlwEng0brOK8cs+LSWWncx
XbMUhJ9ma+LjSnBmW4IP/GAE3c+5BA/mRrAQbIWgETs+RYMNiiM21Y8RlDcVCX5x+P4M+4O9h6rw
Wy1HvYRhDQZFiWFUlvPd8IjtdjCGN+8mePgViAXnERl4MWDfDRNDh3cndFQBevVEGBsu2sCNaU60
JV6/WC1LrC8/wA+ne2g+DrtPt/1d13+5P7bssOYQztOR+cRj6hTJyIwEROgsS110JGUbOV5NUe/v
9YALeUxLHnsk3n96+HWYAyZeyOJg4LG1WqdCAsUQFAOdmmOHt6ClqJKRJ6qxluMthOkbwtjNQlWV
8G7oPz89Y5pgrCAdC6t19grsnuhkubdDBtEZQMqddiymCGgu0ldJ+88lOHMZw/6Neo09b6zxljdo
AO7n8NeIClkXjCI1mPyxOyg4jeD96NAlq7HPBtL0kgHlnJXRyP4zWl3cIhZnOdMkFh/XK7gVrRXc
rlaAzVFHm1KVcgKAFYBqOxgEWzd4rI8UGOeTAtQ3IMPLmmkfxz8l/OH5QvqhIf22lSef8ZmOGsVE
7R0WMCWPuRyiwfWlYNOJ59FqzoKVL9d2vMBkql6ppd/KlvT9ssrjqX/6cqSmFWyG5tFJqVDELjjs
AQ5QDPx27NFLM4DyJIQMZ4soZ+MuxGqgMzC4iy91UTyzy7vDTU1wJkotJQVxbKARvl1mYWMDpDUc
HDE0pcnraKO7uPkgjn+mgAaeXtXiNg6mtKsCt5o8QQtTRII5kYX9J6SmsKNBleFlFol1PiqNzfA5
amyr2UXm5gLaxEnKBMjcAKkl+r6/uenNyO9ZAlXwFGIgVHQsYN8hTBpZTVzHVGaU5qzVCyTl3wFU
ZxJUsmvZ2Eh6yxqJ1tKUrtHNDDBpNpLgvatomjJ2hYnJdoBlhQKviqeYXzygZfDTm6c8ngsuab9G
XJIeY1e/HUsFZHE0TdBBgyEnwpe2UyXxIjD2YDMYeOrcou3Ub606AZiCteadml//q388zszK1DpE
Bc64xPIuNzZpMg7vxsgcr3qzSSW9uBvjOEg1ORONyfFmyMPNVPBV/fy2vutPj53sGaEpq5g7SXCz
BQ+HhGNa35qQrQSD/UIb98uvpFoJsViDbqxBioU1O4RQ/fN2ix0ZaenKb673lfWAuJMnGCwg5dZS
2H3W+S5rsNKWag3LuvT+i+Mspy++OL5Tr0XK1lr0Is6Ijvbh9oTDz4LkckDEOkhtsM4GtBcN6Ogp
LAjkgP6JJ5abl0rs63Er6fiwhppSsukesy+/3O2eBn40W2NfXB/AOmmdOiawc0YCTOdolB112EVa
gAFmfNGlbj7QVT3bpiXC8kqQMcv7fL8DY1f8k5/ux4LmeYI3Sc6lsKzTCR08mvDaYs064WwAeGOi
fIGlMI18JruLjxcrWAcUpbqZvkT/xr1fRMiFhS2IdbHOGhCUYRF9Aqcuge8jKYyY1Z8VIT9Kd1XL
3/hZtJ4s1q9vd1+OtFFaPFUKy8JLMMClA081gRL1EUtW8fZKbpgnzv1Ji5pJV60K+z2uV7VKIL19
vnvaPT08bz6uAt+YBxBjFwD8b+mCwW2mWXWKc2wSjTHqIFlHGF4DmQF1yIvw0ZlJq8avy9fqBTYy
SPDhRDOANX4GR+/x/45XEhbn0WeTA+W8S1jqwaMDvektAShKuE3MIHPi1H0L9YALcWxDnM3Ss/rp
ZvfLc2Ed0MIX57Rck5ylQmprFwK25PKA3IxypNM0E02ZBq/qour3w+jt7/PwtJLbbhpy22Hq5BF+
zO/hfxqq+7UAaRrBPF7ZCu4ujwS2PqZjaWSEZR2Ykwv8UA9TS9Cgt8nNoBfkl++Gh/nFNAV3Ea3R
BpoxWJiNF6KLpQ+K4PAVBlDZKirnCBGBcX7Z7VYP5xPcsxeuaokbX+TtvsXMrKBsjIjUXqmJVCkd
cheFRCtD8GouUJd4jzVeleasvOjSlf3gp2oCysOrWr6GVbw1fFZl2t/sjgy5ETw6xrAWxeiAPigy
aTNgORdIZoYYb7xdlZlOo9TTN0Iu8vZm6tr64/fvmnciOzB/AlMkMpU4lMbbHVynlZTUJoMe8mve
iTwToxb/hjfE3zS6xiN/pt/dN6/RZs6B/hQW4BumflC/Gk/AtgQA6QxvLc/8wljtNM3JcO30Rr2Q
lhK4vT1RLfjl6/3Tx6EKQmKciI+38Yx/KUot6ByN7DL1BMuRQ2dKbogBKCTBm/xC15j/hHMy1gS+
X0u4LhycXqq/inXjBCsHwRbH+O3b8H7S4UyX9F0O1hpwQLoUFVLMBTa6LBw88ANlyoB4LsLhOPYJ
iwhP5tIqur7KHT+8PfS1Gue69scTTMcmvyZxS1NHsSMOh2ODByh3iiliAcIQGRZ0u3qgWob1zZVW
gR1YbJ63w1OPlx+XLP5IuQPf5LrcFklIEMHL2AGExWpBCspbIIWVW2INNoyN8fVaaxwkOdVufnx6
VS+Ht9Y4HFNvq4AGN57nbB1enYCsIAMQIwJQpMElkkyI4Ja9VkCj8as0mrPDh3JKwvzry93TrIEA
LwW+RBniNGAjWjooO5vwlhZMGyWARZ7HyBeqfT5MPb/8d2/X1tu4rYTf/Sv0UiABjgzxTgXIgyRS
gZtoEyTe9pwnw4nkrLGOvLCdbvvvO0P5IsmSneIE9UMQi/RwSJGc4XDmm45ZweTz7hb3D/P00FSq
TWpNTEEn4yFOSh0wH0WNn0hiYhlxkTDzbynVe+YGTfY7Vht0szXT5+X3xi1/FURdrTxtAwqEAh90
acyvAXp0xGHLAIUUdonAqigRn3JHUPZAd0JBo0/8WXT06XkP1Zi5W/qDEYe7jDcEMRxghrCEIjiZ
BhXaGJ/olMWUW1khZNSmSYNKq/2io/3iCNXy23v5fV6+bkdklzYGrcvuQBYa2EBC4XMQpZg2BmQo
QZgymDmpimNi1YegJlrN9NjgmpUa3RFhx7QX6IbKOk2Io3tMB1eps1xJB+wiglQmCo4lApFRNGiy
sP5ixPDSMoaFCAP8MRNiXxBCrUKT+YJ2Md+GSsqm5etq+UcjB6tkIDooSDyRaHQzFKDOcKlBKYyI
DUicgMT/kOzb0u7Zm7elLa5lF9ftRFU/VvN60NnwAb+71en0MQeizTDLnVWprzScvhiiOWjMCS0o
rEybGibP5KL44Op8aPLSNLDNm0Fv0JWwq3/7FfoyfflWHBB20OYibAg6Jbo9YQpSGbtEfswHKWsJ
kYRHpvuipUaqwcKMdczqmSQdhnGXawNnBsaCES4q+Ext4kCBQI9DjAOBqQJyBVNVw4DSEE4/sKGc
ndKOcv+EdsVNriXt4loecY1XdQ/TsqhASyvkw1A6906bJDqCcxl6dcAWDXynMUJ+ERCOsdJh9Cm7
dZ2FU/eJVY1WJ1VXJ9tQu5vV9BDppOjOlVbzIAVBRPxYCPQ4U7CTB3HopzZNjQQdhZOTSPY1si2u
jnd1FRxdZ30d1X0PD7sJlzI2KYgV4CXFW9oAMY0wRaZSIac0pPJD7it1+j02kVG3D6IKctHRg9k+
5cpD+dqGD+GUc4RUlw5jgis0ChIMkTWCWhRM5rNAg/aNN1gmHRciioSs077sbtfxvwouI9jCZThr
hJWRhUWKB1K0LTs5CqpgimYqOEFgMvmzq7XyrOm/2MfiJvfH0MfwMFetifx2CO3VstpcLKFRzIUv
MWKIoZ9bRIF7zCITppiUz8iT8ftdQ1kc6/twNMmPQAPL13d4adkyLxat2F6QfCFLYc+LAth6GYOh
hFGFMzDeJFuBiQ8/5GnQbqM/N2i9VqM3lOcdvRG0K/cXKtHr9fx5vthaKZ2/tfNmCiJmg1j6Cp2s
mVbWjymmPIoM6HsCjvXpab3kmP6JhF+Neo3eMNqxt9Sy7Hz/8+CMWc9DYUG0E1RMKIw+6lWgI6Ki
CGdOOKEFMSzPbl/VA8EmH8cpd+Ah31+6JjdJ9tRlvuLQPmUCoe8wGCcIYX3F2vqKGCpsRExAPtV8
1WCk0YXwGNPbPTySkC/LKfpZa3eOwbGMkgA4tZXzFSj9eFnHiS8MJiwOtEjPAcojyb7tAYoabL7I
47sMhdglzfmLQBovCzwa8G3uUV6hIhFKWaSMzwlKE2lDPK6kvhBJwIhUiUyisyfx5K4feiG5a7L7
rDvYzduOZAj95/YMRtFx3RmSth7sDj2Wo78mYmwxo2IMgo5hX0vCMCIJiOcPBe1sm+ixglWFDdZz
eey9oXLFDykcfs7LmqtzBeENurEgoDCjuzNIa8H9MAF9KTQI5KFZJHs24Dq1JhuqY4nPZnlX9FNl
UqpMj1RWOawiCsqm0b6wwqltsR+zVPqgd5JExaE6q8ZvCZ8Ib2pZiHRXoDQ+7IX2HFY2CIc0gL/b
fmUVuicoylprEGXWMDzQsgBOIjAhpBUyNUQmIv1Xrk2rsmZPyayjp7KNKI738Yvl3lOJo7RW7shO
xNCZEbSmImaW+jbAG3+LOfQsIyBfGOcslNQE5w+6d8tz8C67Gs1OdJhytBAvR0ZLEEX9uQuVkNag
jJeoHzGO0tBy/EpBh1IBp2feUp3+CWHYEWatxbSrB7PwI8feLXh4BfPLRZUl0NgwpFxxP9CYO1Vj
GCOHVcNh+QpmueBGfLq9fs/OidNwGxBDS32sz+DDfaCxw0XuyPfHU00Q6xdTzMD7CmBVRXiugPfE
TIS+lT13v3WKg4H9c1OsyunCA21rPtt54z29v73BiFwBq8l0AWfJt2leeM9/ecvNt2Ll/VgtUaMp
1t5munotHNjT5tt8vSu4cl3cTNffJ7PlavJjnl95FQhylZJj8gJ/N8WVF9QfrouN84vcPm82fI58
8P+Rhy+1XsEIuPYwA8K8LDq7o5j+h20Ofsu8x+K1Mb6PUOu+XPzloU8Alixn3t4gfuWNl5vp4toF
KWXeqljP86LcXMMWOgwz0MJ+ufTWP2FtFPlk+b6ZAG/vpUPwghbz61APZXZB6S+Xg99X8830eVEA
DWx/T5kM6Y33Ewo3RXlNyJBnFwSI7lsiakiqR7V2roPbiwAe1dtCQhdhCE15g0d7M7r/4o3/92C9
ns9vo8fx1+hucH349FXdFg+SGw+jznCqrTfoH9VVmWglb7Hq3AG/nfrsq64dbHH1i3VPXaxqtmFe
sCFh3O27WyntH3A9DLLBr0/er6Ox91qUTmrl8JO8zQ0Vsr/qReX/VeSXWFVJpLr74a7Ig+k0zXP4
uvaAM0ynUnsjl4Nbl2vOi/CJd1++9A2Hvh1k0d3dfeKd/oRkyLJd1Ytp/jYvL3srM3o7eBpHya13
8zV6NP1UYRRINnjawKs90z68haHKYBFNHAvR2J6sClR/L54xqDJzg9I/D4Y0G0wmJhpH5xgIYRlC
1VEW3dgzdQWFcZ1M7kZfbq2BF9z7oWi+Qqpj+9/xaZqUwjEAq379MkruzWkWhIBX8OYWrYdRIv01
lUYGtsvgrXhD4Lf+D7/9J6t2fD+O7ryzb3aob6qq//FgWr2vG5O8mtz7qsEN7DGDvwFQSwMECgAA
AAAApF69SAAAAAAAAAAAAAAAAAgAHABlZGl0aW5nL1VUCQADlDpLV4s+S1d1eAsAAQT1AQAABBQA
AABQSwMECgAAAAAAsV69SAAAAAAAAAAAAAAAABMAHABlZGl0aW5nL3Bhc3RlYm9hcmQvVVQJAAOt
OktXiz5LV3V4CwABBPUBAAAEFAAAAFBLAwQUAAIACACkXr1IfqnxIOkAAACCAQAAMAAcAGVkaXRp
bmcvcGFzdGVib2FyZC9jb3B5LXJlc29sdmVzLXVybHMtc3RkZXJyLnR4dFVUCQADlDpLV5Q6S1d1
eAsAAQT1AQAABBQAAAB1j0FLw0AQhe/9FXOSRKTjQS9LCRRtLhaVpDTnye4kLqSZsDsR+u9NbEQR
epz3vvdmZlcUb4WBnHzHDlSAgv3wnwxxrANHGYNlaCRAMwEGEY/SjSeO+ExKuKtKrLh+8Yp7Osuo
B44akZ1X37c4UFSuhYLDn66IVPN66NvV1abyG5ynJwmMnZDjgMtdaBvcc0v2PPnbi7a2w5A8Ptyn
YCAqqbdQcPOuYbN0GPM/ksFVyxgbmJQTK31UqA65MaWG6R+4ufuN5YFOPCsX7MhW5c/CV3EMt9kM
RHXGNGNv1Uu/qUU6SJZ0mqWrL1BLAwQUAAIACACxXr1IVxgTSdoAAABQAQAALAAcAGVkaXRpbmcv
cGFzdGVib2FyZC9wYXN0ZS1ub3BsdWdpbi1zdGRlcnIudHh0VVQJAAOtOktXrTpLV3V4CwABBPUB
AAAEFAAAAHWNT0vDQBDF7/0Uc5JEpJODggwlULS5KCqJNOfNZtIsbDNhd1Lx29vYgCJ4fH9+7+3K
8rUkKIzz3IIKmGB7d2KIUxM4yhQsQycBetWREL1Y43uJSvdZliGfnF/Hj26Fe/HTkSM+GjW4qyus
uXlyitX3xKweJPCZNy0HXF7QdvjMB2M/z/n24q3tOCZ3t1kKBFGNOgsld28aNssG0V8kh38jIhvY
KCdWhqhQvxdElQY3HODq5gcrgjny7Fxqe7Yqvw5fpGW4zudC1JaomwarToZNI+IhWeg0T1dfUEsD
BBQAAgAIALFevUhXGBNJ2gAAAFABAAAyABwAZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLW5vcGx1
Z2luLXhodG1sLXN0ZGVyci50eHRVVAkAA606S1etOktXdXgLAAEE9QEAAAQUAAAAdY1PS8NAEMXv
/RRzkkSkk4OCDCVQtLkoKok0581m0ixsM2F3UvHb29iAInh8f37v7crytSQojPPcggqYYHt3YohT
EzjKFCxDJwF61ZEQvVjje4lK91mWIZ+cX8ePboV78dORIz4aNbirK6y5eXKK1ffErB4k8Jk3LQdc
XtB2+MwHYz/P+fbire04Jne3WQoEUY06CyV3bxo2ywbRXySHfyMiG9goJ1aGqFC/F0SVBjcc4Orm
ByuCOfLsXGp7tiq/Dl+kZbjO50LUlqibBqtOhk0j4iFZ6DRPV19QSwMEFAACAAgAsV69SEouPjDi
AAAAewEAADIAHABlZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtbm9zY3JpcHQteGh0bWwtc3RkZXJy
LnR4dFVUCQADrTpLV606S1d1eAsAAQT1AQAABBQAAAB1Tk1Lw0AQvfdXzEkSkY4HvSwlINpcWlSS
0pwnu5O6Jc2E3YnQf29iI4rQ4/t+66J4Kwzk5Ft2oAIU7If/ZIhDHTjKECxDIwGa0WAQcS/tcOKI
L6SE66rEiuuNV9zSWQbdcdSI7Lz67oA9ReVaKLgfanmMi6sV5ffahJ4lMLZCjgPOh9A2uOUD2fOo
P124pe375PHhPgUDUUm9hYKbdw2rucOY/5EMrkrG2MCknFjpokK1y40pNYyv4ebuN5YHOvHEXGx7
tip/Bl/FMdxmkyGqM6YZOqteulUt0kIyp9MsXXwBUEsDBBQAAgAIAEBhvUgnwx2Q7goAAGtGAAAN
ABwAZXJyb3JfbG9nLnR4dFVUCQADhz5LV1g6S1d1eAsAAQT1AQAABBQAAADtXHlv2zgW/38/BVFs
2wQY3RcloBh0ncw0O5k2aNLpAkVQ0BJtcyKJGpLKMYv97vso2bHiWInt5moRBPAV6T2+93s3aX85
rEv0O7lAbowcJwncxMam7Ye+bSPXdsJj9EXKPDkjooSXFctQiIMwPkZv39lObMcJctzItOHPSXzf
S2wkqTilAqVUKDZiKVEUZZxK9P7DEWJlmtcZRaREezvobMLSCSqISifwfzWhs3tLUtB/fFm2Msdz
YXH9K4vsdmU48hK0VzKVoEMqJeMlGhBgg5hEJVco5eWIjWtBM/Rlwkp92eH+9MrmwuNe/q6Hb+f/
GJrxnLlmiqr4Wgk64uIkAXlZSq+tES4EHb2ttLSWa/qmE6KtTyU730YH7w6swAxMz0EfKlqCaizb
jE3897irOMNAgsq6YOUYdCoKkiNeUUEU6FD2LxJfGlbKBe1dnR37CRrwoiBlhnJW0gS9tmopLDlk
pTVRqoIVjJD1B8/rgkprhyhi7X4+tD7T4W9MTZ/+VbM8s3bosB5bObngtTIUlcrQC8+VbOmYWihk
DNAOT4FWqT5yMJEXvaT3G0JHQKclYGmS8gUyUvQ2Z0Qi6095yYbXIgUMV6N2eX2XWEEzRtYm1dzV
kDm6qKgcNLitI5RWilWwgppKE2hIDWqpeLHPbyK0muJJCqLIrzkfm+pcvQC7KgpwUuCxKwQXd8GC
akJzDkD6gGW/sJwiSxXVjFZrAdr4wAA+gZuhF0NNeMj1PQO0z6SiZceXMdhm5x9fksQ5XvywezVe
djXuuRoCxfWrmw9THaEG89DRCrIemmd0eMKUMRWZFq+veamfBNiMIg/jaOalSaPHSwcNsaNdN2fg
J52VB34QRsdIpoJVCjx1Pd+xUtkxfiujgCfNBkykOTWrSfW6CdojXkMs4ALVJRmC9IojqYj6CcLQ
iAoqEqQpJpZ1FayGOB/+SVNljED8KXWDFWNDno7NiSrya4oIEts1McRx9zLap2O2oIsIe8doKwIe
ePuAADQQAqfWh4ig6JTkcN2wVqgSXNu7DpWQgSDY86LKqYKgtkyVoe+2acR1g6R1CKBLMn27oH/V
oDIE9zB1gTLQ77LFe6Yf4DC2+xcfxm4PkBrhhrsD3MElEB+ByhlkUxCQ/Q2hHwSrIZeWoH+hF0X/
QkShtUFvUk/G5InRvpxbwJiWOpNQ7cwVpBNqggBNGkCebSb3zup2m1qgItVFTuWEUu1eRa6N9ufm
7Rs5AVPQ9mqCHfZChT18z1BVRCkqyraqQFuFZW0/IGjxDwda6Nkhjp/967GhKnlprAYXhnr22ce+
N+AiO4yCZz/7juDCUfDsZ98ZcCFU/TaOLgcIJR1DY9708osARvFyAMNw2rqDASTofYcAArlTfkr1
1GAEfcuW3G6h6xS066u0AKIdBZCUZZ4l66riQhnErID21nsOgKW8zqEMp2gmFM22zVsV3JBviPZ2
CNgEWXEU97RKEfZ7NOXiYz1kQZ+JAAMfJwgMHWzrZMs6JcIa8TyjQlpRacnQTV1nEvhV4Md5WpXB
KThIkcIC7XFpHVlGSU7ZuFGzUQEpAzxDMGg5qEHKdMKFkXJ+wqjZGgVcobvhbcAHmqcanEfjoXuq
jAlokLi40P61LhTzRVhXF3G1qYOGp1mkNk4E3X7jTv6tSPRTvy7icph8H9sO7oPJ7oMJRw8Ik+BS
GlywMSuNkeBF06bLB8NtfaDkVaR831sBqRukXAZdbPpRGNjR0/awjlBPGK9NHGtRsuUYBVEcBe6T
xkiSgv6QEC0KthyhMA4j96nmKahMfuwstSDgcohwiF07fqI5qpHgkTPUN2O2XsK6TeTlKMaxHfj2
U3a0x0hWj+BuK2QuB4jZbuhETxiux8hbD4/WCknMCc3YjuIw6AMr7JkrhI5/H2CxgoypkXOSGRAb
KngzYRk1JqTMciq+1xpjBamWYROZod6sip8kNkBRv/qhkFki0xJcXNv0Me4EuGVbmPZyaKIQrzaO
++fu+z/+++Ld0dHB1w8f937de//if1pzKS/1NnXZrB5tmdtat9Mx6wajOknTWjB1YbVR4h0lYBkd
HVdAWM1CyOWoDm8wqVuX060gLic4LSomzTtjBJX8mKpeIH0z8n0/umH/Ioo7ySpJNIQ4iI/Rrt4y
H8025kHgqlZoqE8GUdQylwlqT2NAjVoqwXNjSCRL9XqMEWG50QwQmd6wXkne8yLX/5jO9awzLk60
E6/Mo18HceBGsXfDbFkfQVhqzL6ztjH/5+vR7uHR13e7b3d2Pzr3YtSLmqJDg1SVtGzbb46yzA3Z
38CQV6G+NpgdIr1AxaYXu9jujzqx0z1EMjNW7wkY67caqWebYRQEjt9vpHE3Gbayx2G4tnke7h59
HXz48Nve7r2YZtuudg/lSKoG7Ydzs3ScTbZCbiG9ekDVMIEWD6fvD3jO0gug2+wAXOndSj5twKVx
NqFQ2Qh2qrdchoKf6VM5Bm2OFGU6Py+DNTKdyI5x3wgZytKlgSdwnGDzQ1ELtjnXl6BtkfLtR6MW
WFzR2YzL5b7Up4/7vXYPCoLO13afFdSrINfGLnaeFbRcQb4L/V3cOdy9mDJ6th0DV1ewd66gaWi5
c/3osh3ug/hET4G+oWN8r0qgrXK8KO6POsvLncC2ncW2qq06UQH0p+ffFYGs8f7TPhpegC42aXZ6
lbeQRUme8zMjZ3DPlf4nvK68nKckn3CplipvzmFqYPScgHXNtpINNhKkoDepM/Dc0HtW512oM3BM
B7rLyL6hzIsWe5LAjYNOqfOZZRSlEyKAL6hTn+zQ3dU3NYjnUr6tMwYdfEdAmk44+BowUWRsZDTl
GTWccMgUtNJMvzOrvFVjFH5L07g599XLng6PNu4ZmuwZU5OrRL0boHN93w77Bp+x1xNrPYw3j7Vz
ffi234wzbo2uPWuPsO95q+yUtDbn4XjzVV9qvXNgR1AoIdnIaAADxAx2OWreTCLIe3HQi0Zo96Ch
W/6N5Todd0SCOviETgdnG8ngmg602U7YO0rvlSG8H2yg4p/Bs7FAge311mux1ydQ8KSNzTV9H9Yb
PTH3GdV5btQi30imyPTcKLzhkGh/9eg7XicfDZqTYpo79PwIsqS4SO4uj1eQiA2dCzaZTEhaZhDY
MzqCJJUZBN6VoLPeEA860UAHzzqZ6wSbses5cdAbaMMen3btO/CAvmnFTBUlL6neifj2nmONagQK
j5/1Ot8svQleGpXgCnq4ZoOSiGZYMp39vdLf3Rxd7MC63zivmi87TefZb/xXf7156Q1anb30dkkO
3LYOm3GUqTfSB1D0DaBG2bLPA/wTPHjNw/Y23GVd3gZvKnjaG710bVAuPEpK4VFNmIQnQEFCwoJX
AD08lhwe/k1OyWFLAD5v+G43t9CyfdKPIDE8Hbw9PNzdMTVLzeaayYSJE5uBHTg3FLk4dvBSq8Fu
5HbcaMvxtg+oKFj7beSMloxmCaLnNNXTvrvrXEs+aA1tn5ZjNdF+9Rrp8aVmd59c1vXeq2/bEV1D
0sgbmgYvDwSHbCF7DlzM4AH9bgrPSgPnR5fVTexmQIIjH8/P2a32He84QSmpxxOFDvd+Pdr9+PtP
SE5qpfRcOONn5TVOod5p8SB5xL3fs48x9h76e+6zlUFy8mzvhpX59/MLAB3+/jyD9PN/DM0AkxWs
43KND/kLAN1FzvvOJb8AMF/d8y8APP8CwPMvADzoLwCAl8ZJEJtR7DjrhpJbE83/AVBLAwQKAAAA
AAAKX71IAAAAAAAAAAAAAAAABQAcAGZhc3QvVVQJAANUO0tXiz5LV3V4CwABBPUBAAAEFAAAAFBL
AwQKAAAAAAC7Xr1IAAAAAAAAAAAAAAAADAAcAGZhc3QvY2FudmFzL1VUCQADwjpLV4s+S1d1eAsA
AQT1AQAABBQAAABQSwMEFAACAAgAu169SKRvtpeFAAAAGgEAACYAHABmYXN0L2NhbnZhcy9jYW52
YXMtbGluZURhc2gtc3RkZXJyLnR4dFVUCQADwjpLV8I6S1d1eAsAAQT1AQAABBQAAADNjj0KwkAU
BntP8V3AwCYYdBGbRGxMo3Zi8TQfGNi8lZeNf6c3xxCmmammkQ/yFZzzi2ICfA3OFVmINwmox/5x
oLa0k5Hnclnm5QXrrVm0jUe1q6ImvtORad8paxnuHp0+JXQt2skgZvLxkIRAGRKiEgzsqQn9OIUr
oVHnX1rMZs0/zfwAUEsDBAoAAAAAAApfvUgAAAAAAAAAAAAAAAAJABwAZmFzdC9jc3MvVVQJAANU
O0tXiz5LV3V4CwABBPUBAAAEFAAAAFBLAwQUAAIACAAKX71I4/pWHrIAAADOAQAANgAcAGZhc3Qv
Y3NzL3BlcnNwZWN0aXZlLW9yaWdpbi1pbml0aWFsLWluaGVyaXQtc3RkZXJyLnR4dFVUCQADVDtL
V1Q7S1d1eAsAAQT1AQAABBQAAADNjzELwjAUhPf+irfZDhocROnadhAHpUGda/osgSQvJK/F/nsV
peLu4HjH3cddVdf7OoczXnaaoSWM4IhhRAZtvUGLjqFDLsj6nrGVPBqEKwWYeQzRo2I94JyC7rSb
32aLRJzI9BajKBtuRHWW4gUXkvqg8KkKCihUjKKQ8gtcojJNaFiTWyjv0+Vmvcogh4F0C+9inhvq
jm5ah+0h0GMLj9synTIP8sfOkuqnN8d/vXkHUEsDBAoAAAAAALVevUgAAAAAAAAAAAAAAAAJABwA
ZmFzdC9kb20vVVQJAAO1OktXiz5LV3V4CwABBPUBAAAEFAAAAFBLAwQKAAAAAAC1Xr1IAAAAAAAA
AAAAAAAAGgAcAGZhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIvVVQJAAO1OktXiz5LV3V4CwABBPUB
AAAEFAAAAFBLAwQUAAIACAC1Xr1I3v266a8AAADuAAAAPwAcAGZhc3QvZG9tL011dGF0aW9uT2Jz
ZXJ2ZXIvZGF0YWJhc2UtY2FsbGJhY2stZGVsaXZlcnktc3RkZXJyLnR4dFVUCQADtTpLV7U6S1d1
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
/jpLV4s+S1d1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA2169SMJNyB10AAAAmwAAAEMAHABodHRw
L3Rlc3RzL2FwcGNhY2hlLzQwNC1yZXNvdXJjZS13aXRoLXNsb3ctbWFpbi1yZXNvdXJjZS1hY3R1
YWwudHh0VVQJAAP+OktX/jpLV3V4CwABBPUBAAAEFAAAACWM0RHCMAxD/zuFJmCJHhMEBjDBIT7S
mLNTuj5O+dGdpCfdqjgG+witNEDYqEuJ4O+z9kHSfRbiLv2FIo1xSGvoGoCR12AZD9PD2cBf7pBy
ZltsYey6W2a8mT+OpvScP1RG0JNiMzVozrv5ZUn3db2mtPwAUEsDBBQAAgAIANtevUgm5dOrQQEA
AEoCAABBABwAaHR0cC90ZXN0cy9hcHBjYWNoZS80MDQtcmVzb3VyY2Utd2l0aC1zbG93LW1haW4t
cmVzb3VyY2UtZGlmZi50eHRVVAkAA/46S1f+OktXdXgLAAEE9QEAAAQUAAAAxZDPbsIwDMbvPIXv
JaQwpE2cYFDtsD8cuo2zSV0aLTRV7Az29kvY0B5hyiHK5y+ff7ZSCvS7d/FIrDcoqKtdrXe0f7Ty
e91H6xq9oX08aIdfPooSYlGBODph3YkMOiuscRgMmo70vJznuo/BkDpZ6RQ7f1JHtP2fTueBjFAz
kbOMiqL4NxA0EtFdMJZLUNPxDRTT8QyWy5Fab1/q7VMFz1Vdrx6qBayGwVmDYn0P69wD4tCgELRo
HTVj2JPByAQZZ6H1dHY7KdOZLu7Ksvwju3Zn3Xhi1XtJC7EsGQOMj66BpKU0aEnSh2YygtfOMlwm
BOlQAOGIvW2T8PM2vpc0GeeCZbb9AdoEBSfr3CXNBOQueQn2wZ+YAtAn9WDbi5a3Alcu+CAaGJzH
JudgK8mdXRSCD+CNiYETU/22XqfdjL4BUEsDBBQAAgAIANtevUgo0xV22AAAACcBAABFABwAaHR0
cC90ZXN0cy9hcHBjYWNoZS80MDQtcmVzb3VyY2Utd2l0aC1zbG93LW1haW4tcmVzb3VyY2UtZXhw
ZWN0ZWQudHh0VVQJAAP+OktX/jpLV3V4CwABBPUBAAAEFAAAADVQzWrDMAy+5yn0AGuS9rKRWwlh
l609ZHsA1ZYXMdc2lrL28ad0DIFA3x8fGs+n+fw2wfs0z8fXaYBjKZEdKucEI7qFYC0elSAgR/JP
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
ZZLkzDt6Z6oDUEsDBBQAAgAIAOFevUimVYhhhgAAAMAAAAA9ABwAaHR0cC90ZXN0cy9jYWNoZS9u
ZXR3b3JrLWVycm9yLWR1cmluZy1yZXZhbGlkYXRpb24tc3RkZXJyLnR4dFVUCQADBTtLVwU7S1d1
eAsAAQT1AQAABBQAAACVzLEKwjAQgOG9T3GjLtIoKTaIS10cAoKDgjjE9IyBcCfJVenbW0dH15+f
z7oRli0oZbQ2dQ34LkqtFom9S5DFZ3xylkjh0qx121xhs8PbELYGClJvsRQX8BTl0TnBwHk0MKMh
pXllf2T1hxwpypc8Tnpk2tOdDZwPHXgmQi9Tm56XS7GvPlBLAwQKAAAAAADbXr1IAAAAAAAAAAAA
AAAAEgAcAGh0dHAvdGVzdHMvY2FudmFzL1VUCQAD/jpLV4s+S1d1eAsAAQT1AQAABBQAAABQSwME
CgAAAAAA2169SAAAAAAAAAAAAAAAABgAHABodHRwL3Rlc3RzL2NhbnZhcy93ZWJnbC9VVAkAA/46
S1eLPktXdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIANtevUhlvL7izQAAAJECAAA7ABwAaHR0cC90
ZXN0cy9jYW52YXMvd2ViZ2wvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLXN0ZGVyci50eHRVVAkA
A/46S1f+OktXdXgLAAEE9QEAAAQUAAAA1ZAxb8IwEIXn8ituLEvUpBC1VtWhYQCJjIih6nCxD2PF
PSP7IsS/x4FunapMlW65k9737r0WL1C9Qlmq5SIP0DmV5XPhg0YPUXSkU4ji2H7WL3VVf8Hbhg/h
XYEP1uYzJMEoqSiKWftn1Iq6wWZWImkpJbS0vVM/sqhXkIWezBTw+FwT+ODsEFFc4L2TYxO+T57G
bY1sPEUFDeojGXgCYuyyJ3Soe2KTpqXaJYpjXyunRf1iK3icPcwnObD5Ke6WC4VsiJfM5cH7/0m+
AlBLAwQKAAAAAADcXr1IAAAAAAAAAAAAAAAADwAcAGh0dHAvdGVzdHMvZG9tL1VUCQAD/zpLV4s+
S1d1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA3F69SOedxleEAAAAGgEAADMAHABodHRwL3Rlc3Rz
L2RvbS9kb2N1bWVudC1jb250ZW50VHlwZS1tZXRhLXN0ZGVyci50eHRVVAkAA/86S1f/OktXdXgL
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
KVRiAZQKJCohCmwQQm7iaSMyycjJAMPXM0g8Vl3TnXVl2ede+7EoplJOi2osKvEENeN6gd7WwZnn
my5uzvpEEaJde3SODBDzyahQeaXg4GVuf5svmAM/33t6b0knMlfephkmPISDJengDezXqW/3AVNo
gLwOnU/EZA4HBbJl6FjTOeoNZeeBaUHG4l81KqQqx2WVZzccUhgGUczmgRtMl+iNI47ZIrxayr6Q
vor5YKQhn374xhqc9QSFEvlemRdqlMtReQzf9idjWZYw65r2lrwhvmOiR3WkynIqqjyXx09wtfaB
rV/D4CZxcHe2oRVGgkgJVj1oZ4d9sCKN3aCePiyxaR2ddXVNPLOxddhfY08MbxgBjRnSTAEQYu/1
hoO3H8Rb0OQWNDHJ1dH/ok22o0n5r2ii2NnUhNjZXxNqFw76CVBLAwQUAAIACADqXr1IKW1urj0B
AAB6AwAAUAAcAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZp
Zy1jaGFuZ2UtbXA0LXYtYml0cmF0ZS1zdGRlcnIudHh0VVQJAAMYO0tXGDtLV3V4CwABBPUBAAAE
FAAAAOWQwU7DMBBE73zF3gqHJE5ah1KJA1AqKlEJUeBSVdXW3qQWjh2tHSB8PUEI+IjeRqPR7rzZ
5PlMylk+TSdFvoWKsV6hM5W3evfQhcN1HylAMLVDa0kDMV8meSkmJZy+Lsxf+JbZ8+7Z0UdLKpJe
OhPnGPEMTtekvNMwqmLfjgCjb4Cc8p2LxKTPBgeyte9Y0Q2qA2U3nmlF2uC/SnJZFmkxEdkD++iH
QxSyhecG4x06bYlDtvJvhrLvSt9iMYA05OJvv1SBNY4gL8fiZPMPPRFHCC2nxwJdiLxMhEyKC/jB
L0QqhYR517SP5DTxExNtymlZFLPx+FxIuYVl7TwbV8NAE9nbJ9PQHgNBoAj7HpQ1wz/Yk8JucK9e
1ti0lq67qiKem9Ba7O+xJ4Z3DIBaD2tGDwihd+rA3plP4pMvUEsDBBQAAgAIAOtevUgH8mHCPgEA
AHoDAABSABwAaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtY29uZmln
LWNoYW5nZS1tcDQtdi1mcmFtZXJhdGUtc3RkZXJyLnR4dFVUCQADGjtLVxo7S1d1eAsAAQT1AQAA
BBQAAADlkE9PAjEQxe9+irmBB9huZSuQeFCRaCIJEfVCCBnaWWjstptpV10/vUvinw/B7eXlZeb9
3jrPp0UxlWJ4Ock3UDLuF+htGZzZLpt4uGkTRYh279E5MkDMV4NciZGC/tvc/oXvmANvXzx91qQT
mQdv0wwTnkN/RTp4A70ytXUPMIUKyOvQ+ERM5rxzIFuFhjXdoj5QdhuYFmQs/qtBXig5lCORLTmk
0B2imM0DV5ju0RtHHLNFeLeUHSsdxbwDqcin335DDc56glxdiLP1H/RYqBOEluJUoKXI1UAUAzmB
H3w5HKsRzJqqfiJviJ+ZaK3GSsrpxUiIYrKBh70PbP0eOprEwT3binYYCSIl2LWgne3+wY40Np17
/brCqnZ005Ql8czG2mH7iC0xfGAENKZbMwVAiK3XBw7efhGffQNQSwMEFAACAAgA8F69SNaFVtSL
AAAAmwAAADkAHABodHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1wbGF5
LXN0ZGVyci50eHRVVAkAAyM7S1cjO0tXdXgLAAEE9QEAAAQUAAAADcixDoIwEADQ3a+4H9DQEiqy
aVhMnJS4GIejPbBJuZIrxNSvl+3l6UKZfVHt9QmUaqqqKdVBKw3tOs13YkfSCdHL1EbrpiyPhanf
cB05iucRbORFYuj8RD0mgkQL9Bls8MSbyOK67fn5wGkOdFmHgaT1aQ6Yb5hJ4IsJ0DlysERASJnt
RyL7H8nuD1BLAwQUAAIACADyXr1IrCcFBKsAAAAHAwAAOwAcAGh0dHAvdGVzdHMvbWVkaWEvbWVk
aWEtc291cmNlL21lZGlhc291cmNlLXJlbW92ZS1zdGRlcnIudHh0VVQJAAMnO0tXJztLV3V4CwAB
BPUBAAAEFAAAAM3QMQ6CMBgF4N1T/BfAlGKLsGlYTJyUuBiH0v5gk9KSFmLq6eUA6qhsL+8tXx4l
KU8IS2gBaVoyVmabdc4IVFM/nNAq9LVHvPItp3TeCGH5DQ6ddV7bDqSzo3em1j02IiAEHKGJII1G
OyeUYprb3eUs+sHgfmpb9JUOgxHxKCJ6eIgAQilUMDoQEKKVd++sfqJf0bc0ulwa/0Ir/ksrFvsa
zz7Qspww9ivaC1BLAwQUAAIACADzXr1IZudPfKQAAADRAQAARgAcAGh0dHAvdGVzdHMvbWVkaWEv
bWVkaWEtc291cmNlL21lZGlhc291cmNlLXNvdXJjZWJ1ZmZlci1tb2RlLXN0ZGVyci50eHRVVAkA
Ayo7S1cqO0tXdXgLAAEE9QEAAAQUAAAAxc67DoIwFIDh3ac4L4DphXLbNCwmTkpcjEMpB2xSWtJC
TH16eQBZdfvzTx8jNEuISFgJlFZCVLzY5ymBehmnC9oOfeMR71mRMVbxlBBRPuA0WOe1HUA5O3tn
Gj1iKwNCwBnaCMpotGuhkst6D7erHCeDx6Xv0dc6TEbGs4zo4SUDyK7DDmYHEkK06umd1W/0O/aV
JrZolBP2X1q5QeM5EeJXtA9QSwMEFAACAAgA5F69SFnpqhntAAAAXwEAAC0AHABodHRwL3Rlc3Rz
L21lZGlhL3BkZi1zZXJ2ZWQtYXMtcGRmLXN0ZGVyci50eHRVVAkAAws7S1cLO0tXdXgLAAEE9QEA
AAQUAAAAhY9Pa8MwDMXv/RQ69ZY4Ke3SGsIo3cYOO4zQncoOrq0mBv+bLQ/67eewtddJl/f4PQnp
1LZ8s+FNVz906094PR7fB/zKmAguepztU7bhRTthPoa3vVMDWk+4VypiShzEr4B21dVN6baMlSzk
aGAiCpyxO+LbpmmYRaUF+9YKfUVT9EQGVWW8ULUc9aMTFvuy0ucoMTEql9RBXZa3aL+ba0nXgL0I
wWgpSHvHSmZx+veZP3uIKAifY/Tx4K1FRxzQSZ8dYUQFwgHOkMP5SghRuBHBoBtpAquTFSQnqCBN
PhsF5ztbgU433e2268UPUEsDBBQAAgAIAORevUjZYQcTvQAAAOwBAAAvABwAaHR0cC90ZXN0cy9t
ZWRpYS9yZWxvYWQtYWZ0ZXItZGlhbG9nLXN0ZGVyci50eHRVVAkAAww7S1cMO0tXdXgLAAEE9QEA
AAQUAAAAtZAxiwIxEIVr91dMqc3heihrkCtuLU5wS7lCLGaT2RiMkyWZRfz3RrnO7sTywbzvY16D
V5gtoSzVfK6mFdAlleXnhw8aPUTRkfoQxbHdL6rFrDrAak3tYL8UJJKGUkJL22BtvvjOpZOCXPRk
iub/YMEodeDO2SGiuMC/To51OPee7ukH2XiKCmrURzIwBWJssxNa1Cdik16Rk+wSxQ13Ye20qCe2
gnExmrxkYPM33OMvFLIhXjOXB+/fSb4BUEsDBBQAAgAIAOZevUg7wX/oTQEAAIIDAAAvABwAaHR0
cC90ZXN0cy9tZWRpYS90ZXh0LXNlcnZlZC1hcy10ZXh0LXN0ZGVyci50eHRVVAkAAw87S1cPO0tX
dXgLAAEE9QEAAAQUAAAA7ZBNTwIxEIbv/Io5ET2wH3wJjWgIaDSRhCBGE8KhbIfdJt3p2s4i/HtL
EM4ePTi9zNv3nSftzOQB2kNIU9HriWQI+OXTtBMZm0kDjjOHlXWsKV/1B/32YA23U9zU+Z0Aj6Rm
6L3M8V1zMZGMuXUHAVdUG3PdmP2T/zhZk+Yj8jXQtaVn2loBH/MJZJYIMw53IbOTRqvG6sRP06jT
Ga7habmcL/CzRs+w1flRTuuyetQkzdviZUxqgaVlHCvlAl2APDWQtm+iJJw0jIUs1M5AwVyJOL5Y
YpAkSVyi0jLeaYW2xYWzzAZVy1ipoizX9yRLHAWkrV2GPubwkoj33DxHR8NjNflQ4Yhxz3FlpKZf
/ONHThyGTT84Z93EliUSC0DKbE2MDhVIAjyaAjYHRnCScgSDlHMBpfal5KyAFvjC1kbB5uK1Qftz
3+0mncY3UEsDBAoAAAAAAONevUgAAAAAAAAAAAAAAAAXABwAaHR0cC90ZXN0cy9tZWRpYS90cmFj
ay9VVAkAAwk7S1eLPktXdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAONevUjtX2YHyAAAADECAAA9
ABwAaHR0cC90ZXN0cy9tZWRpYS90cmFjay90cmFjay13ZWJ2dHQtc2xvdy1sb2FkaW5nLTItc3Rk
ZXJyLnR4dFVUCQADCTtLVwk7S1d1eAsAAQT1AQAABBQAAADtkUFrwkAUhO/+indsL9IYU+IiXiKC
B0FIoQUpZd1Mtg9fdsPuWsm/71roP+ixcxyGbwbmVBSqqtRTOa/r8p3WWbRj26YAPRxFTwi0yaJ+
7ONHC1y23DV+GAUJihotgo5unD5J05cW7mgMMBxxz77wgNlBT7RY0W8R4RaLopyLN1ooJBMw+pDY
2dNzXa2WecQW56vdKIpw3QExaovX3NDoBOvDpOjBXUUe/8l/RGbH6Y5sM52927veK3o7NmS8czAp
eznz8+7sG1BLAwQUAAIACADoXr1IhTkI600BAAA1BAAANgAcAGh0dHAvdGVzdHMvbWVkaWEvdHJh
Y2staW4tYmFuZC1obHMtbWV0YWRhdGEtc3RkZXJyLnR4dFVUCQADEztLVxM7S1d1eAsAAQT1AQAA
BBQAAADNkk9LAzEQxc/2U8xRL4vZsrWNUtDWf2ClsBYPRSTdzG7DZpMlmbX025ttq4geW8XcQt78
3pvMzBnjScIZi87i0xe4SK9vp7PJdAiXRFjV9Ii0sq6cWKPIuhSpqTkYS+CRSJkCmhrMVgPVVnQO
QkqH3oPyoG0mdGf+xYX9mstErCEewM4rBlx5xrrR5hEcZQ5r61rcvNfvxf2QY4yLphjy1mYSUKLA
B1sUQXEVikoOoVCj/IwfR91B8h/jk3A0siZXReMEKWueFS1Htqo1trc7YaRGx2EksiVKOAU0YhE6
g4XISjTS7/d3M4/u3uR2rDLiP9gcjjtHJ3s5GLkbz6YvQVhYtw5c02j9d+TuAckfK5VErBeHunDg
RhUpORTVVIs1OhiGA3md+9cUsRwruZsotoNsFxNWAQ0C3oRWEmqHmfLYap9Uhd/CJwcM/w5QSwME
FAACAAgA6F69SC0CsSLEAQAAqQUAACYAHABodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLWF1dGgtc3Rk
ZXJyLnR4dFVUCQADEztLVxM7S1d1eAsAAQT1AQAABBQAAADtlFFr2zAQx5+XT3GPyUMc24ldT4zC
5lBWWEeIWzYIYyjy2dGiSOYsN00//c7J2hX2NLI9DKYnHZz+9z/pp1tFkUgSESVBnM2+wBtecKXr
whPK3cLIAxJc8oKqqdqvLfql9HhtPZKVRoCSxmAJe+03YB0Q2hJJ2xo8SbVtAyjQ+z4eYlWh8voe
R0AsAd7BI5ILBqvfclAgbue6zN2uMehRQP7CgYR7aXQJDaHSLfa5t3qHgxt5gPg1PBUC3LdRNA2M
Y/tAXhE2jnqbqzRL44xNzHHd1ZcCWm7oBttW1viJK+TsvHZ0EDC0nTGj/8p/SFlb7XvJgtW1s9e2
cgI+L3JQztqeG2c55/i6gziM0nGYjF9UCmbJDObdrlkeAbwlxFMJMZ1mYcaVThHkVx/R7x1tWe3E
MCCRIxiGDyqMpJgUriOFuVQbnDxn/9yNL+IwSIKLyYLcNza27KxnxCYFY8/uHuXa4FtSGwY9UE0j
kjQc/VuOo3R6HiP+ByIfXF1zxjs+tH2aFOcIe0k+d7bSdccThIk4MngaBBy9l7Y0SP1E4JsoIQS0
fW8lrHkU8S2353V11yL1XM618uIXbf4Dg1d/8299B1BLAwQUAAIACADoXr1IHDGUr+MAAACsAgAA
LQAcAGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tZXJyb3ItYWJvcnQtc3RkZXJyLnR4dFVUCQADFDtL
VxQ7S1d1eAsAAQT1AQAABBQAAACtkUFLA0EMhc/2V+RoL+JUdqmDeHB7UHBBEFEQD9nZdDp0TMpM
Vum/d1Y86alujwnJ915eWtzD4hKMsVVlTQX0mY25OIviMEJSl2gnSQP713pZL5ZvcLWibvDXFjJx
31LO6Ok56KZBJS9pb+GUhxjns/bf5MBBR+RjoQfhO16LhZeHBpwwk9PSKzMfGEP/S6U+yL/+2L8X
78vETVnaWiiLkSaBFZM2wuvgh4Sj2+985H0XaaxukftIyUKDbkM9nAMxdkUTOnTbkmqedtVTpjRm
tgpO7R92+c/sZD5J4ZC/H5P8BVBLAwQUAAIACADpXr1I5f7a2hUBAAA9AgAANgAcAGh0dHAvdGVz
dHMvbWVkaWEvdmlkZW8tZXJyb3ItZG9lcy1ub3QtZXhpc3Qtc3RkZXJyLnR4dFVUCQADFTtLVxU7
S1d1eAsAAQT1AQAABBQAAADNTkFuwjAQvPOKPcKBEAcCiVVVQqCKSo2EUqpWQhyMvQlWHTu1HVp+
X6O0vVa9VXuZ2ZmdnYJdIMmBEJqmlCwA3x0h00gZzhRYzy22xnqp6/08myfZAW7WeOzqWwoOtSjQ
OVbjs/SnFfNYG3uhMNSdUqNB8Q+TpZb+GvkY0qXR97oyFF62K+BGa+Q+7ILnzJQUg/13fpQm+QE2
u922xLcOnYdK1hvv2y+6lqJEjvKMJbrWaIcrptSR8VcKthcEnII/sF6HWTyDIVprLIxJkk+zEVQB
X010MiHJIorDEJrFcTwRBt1YGz/GD+l81LRY/1Yu0HXXtHdSM/VUPix1aNgYj0shQgdHgfUAfl6F
s+CFzqo/tPgEUEsDBBQAAgAIAOlevUjpoHzfzAAAACQDAAAsABwAaHR0cC90ZXN0cy9tZWRpYS92
aWRlby1sb2FkLXR3aWNlLXN0ZGVyci50eHRVVAkAAxY7S1cWO0tXdXgLAAEE9QEAAAQUAAAAxZGx
bkIxDEXn8hUe6VI1VNAQoQ59DK3EGxFD1cEvMSEiOCjxE+LvmyKmditFjJZ8z5V9WjzCaApKmfHY
qGegQ1Hq6SEmixGy2Ez7lCWw/5joyUh/wmxOXe9fDBSSlkpBT4vkfd14raGtgRqM5Abt38GCWZrE
6+D7jBISr4JsmrTbR/qe3pBdpGygQbshB49AjF3thA7tltiVS8pJloXyO6/TPFgxv9gGhoO7+4sa
2J0fd7oLhXzKx8rlPsafZH0tI/qWRvTVjeh/NPIFUEsDBBQAAgAIAOlevUj/CoN+4gAAAMYDAAAv
ABwAaHR0cC90ZXN0cy9tZWRpYS92aWRlby1wbGF5LXByb2dyZXNzLXN0ZGVyci50eHRVVAkAAxY7
S1cWO0tXdXgLAAEE9QEAAAQUAAAA1ZFBSwNBDIXP9lfkaC/itLSsg3hwe2ihC4KIgnjIzqbToWOm
zGSV/nuz4s2be1CPCXlfXl4aPMHsCoyxi4U1FdB7MWZ+EZPDCFlcpmPKEtg/L6vlrHqB6xW1vb+x
UIi7hkpBT49B9jUK+ZRPFs65j3E6aX5MDhxkQN4rPSTe8C5ZeLqrwSVmcqI9nXnDGLoRW/6/f/my
v03e68Stig4WVBhpFFgwS514F3yfcXD7mU96PUYaqjVyFylbqNHtqYNLIMZWd0KL7qCplnFXPRTK
Q2ar4MR+Y+t/JmfTP/n33yN/AFBLAwQUAAIACADrXr1IWBUgnYMAAADAAAAAPQAcAGh0dHAvdGVz
dHMvbWVkaWEvdmlkZW8tcGxheS1zdGFsbC1iZWZvcmUtbWV0YS1kYXRhLXN0ZGVyci50eHRVVAkA
Axo7S1caO0tXdXgLAAEE9QEAAAQUAAAAncyxCsIwEIDhvU9xoy5CKi0xiEtdHAKCg4I4xPSMgXAn
yVXp2xtfwfXn57NuhnYDSpmuM0oDfopS61Vi7xJk8RlfnCVSuPa6b/UNtnu8T2FnoCCNFktxAc9R
noMTDJxnAwuaUlo29m85UpQfeap6ZDrQgw1cjgN4JkIvtdXn7VIcmy9QSwMEFAACAAgA6169SDsZ
KF+7AAAAkgEAACsAHABodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLXF1ZXJ5LXVybC1zdGRlcnIudHh0
VVQJAAMaO0tXGjtLV3V4CwABBPUBAAAEFAAAAKWQMW/CMBCF5+ZX3FiWqgkCgYUYmgwgNSNiQAwX
+2IszDmyL6r49xjExlbGJ937Pt1r8QrVEspSzWaqqoD+UllOv3zQ6CGKjjSEKI7tYb6YV4sjrBrq
RrtWkEhaSgkt/QZr88VPLp0V5KInU7T/BwtGqQP3zo4RxQXeOznV4TJ4uqcNsvEUFdSoT2TgG4ix
y07oUJ+JTXpHTrJLFLfch8ZpUS9sBZ/Fx+QtA5vncI+/UMiGeM1cHr2fFDdQSwMEFAACAAgA7F69
SI11ILLrAAAAWAUAACoAHABodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLXJlZGlyZWN0LXN0ZGVyci50
eHRVVAkAAxs7S1cbO0tXdXgLAAEE9QEAAAQUAAAA7ZLBSgNBDIbP9ilytBdxt7TUofTg9mChC4KI
gnjIzqbToWNSZrJK395Z8aYnFw+FHhOS70/+pMYjlDdQFGY6NeUE6CMVxeQqiMUAUW2kg0T17F5m
81k5f4XFiprOLQ0k4ramlNDRk9ddhUpO4tHAJXchjEf1n8mevfbIh0z3wmveioHn+wqsMJPVnMs1
7xh8O0AlkX6PvxHncsVtbtobyI2BBoEVo1bCW++6iP20X/7I2yFQH90ht4GigQrtjlq4BmJssiY0
aPfZ1TRsq8dEsfds5a2aH+x8n9HFeJDCf939FMnnXz3/6m/kT1BLAwQUAAIACADsXr1IJjflLdsA
AAAGAwAAKwAcAGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tdXNlcmFnZW50LXN0ZGVyci50eHRVVAkA
Axw7S1ccO0tXdXgLAAEE9QEAAAQUAAAA5ZFBSwNBDIXP9lfkWC/ibm2pg3hwe1BwQRBREA/Z2XQ6
dEzKTFbpvzcr3jwunjwm5H15eWnxCPUlVJVbLl19AfRZqmpxlsRjgqw+00GyRg6vq/WqXr/B1Ya6
IVw7KMR9S6VgoOeouwaVguSjgzkPKZ3O2n9Fjhx1RD4aPQrf8VYcvDw04IWZvFrPZj4wxX6Sf/2x
fy8h2MSNifYOTJhoElgxayO8jWHIOLr9zkfeD4nG6ha5T5QdNOh31MM5EGNnO6FDv7dUy7Srngrl
MbNN9Op+se0/s5O//PsXUEsDBAoAAAAAAAtfvUgAAAAAAAAAAAAAAAAQABwAaHR0cC90ZXN0cy9t
aXNjL1VUCQADVjtLV4s+S1d1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA6l69SF6E9GnmAAAAYgEA
AC0AHABodHRwL3Rlc3RzL21pc2MvY29weS1yZXNvbHZlcy11cmxzLXN0ZGVyci50eHRVVAkAAxg7
S1cYO0tXdXgLAAEE9QEAAAQUAAAAdY1BS8NAEIXv/RVzkkSkk4qiDCUg2lwUlUTa83YzSVeSTNid
CP57ExtRCjKn99735m3y/CUnyIxruAQVMN4e3AdDGPaegwzeMlTi4aDaE+Lq8maZjLei2yRJsHXB
4g8X0ErbmxCW7329wK00QzuaD0YNbnYF7nj/6BSLb3hS9+IZGzEle5x30Vb4xLWxn2N+d/SWtu+j
66skBoKgRp2FnKtX9ev5B9FpJYV/IyLr2ShHVrqgsHvLiAr1rqvh7OK3lnnT8uQcsS1blT+Dz1Iy
nKcTELQkqobOqpNuvRdpIJrbcRovvgBQSwMEFAACAAgA6169SLyURwLEAAAA/gAAAD8AHABodHRw
L3Rlc3RzL21pc2MvZGVsZXRlLWZyYW1lLWR1cmluZy1yZWFkeXN0YXRlY2hhbmdlLXN0ZGVyci50
eHRVVAkAAxk7S1cZO0tXdXgLAAEE9QEAAAQUAAAATY5NS8NAFEX3/RV3qWBlJiGpHYqbxq6CFD9W
pZQhea0Pk5nw8lLRX+8UFHrhLi4cuCcztpybYp4tYa0rCpfZ+4UpUU398EKhJXkTol35UJrM5Xm+
zMweW4kDiX6j41HB4ew7bnGMcmnv1cEag5vhGhvR+BCioolBPQc8v9f17Wx39brYY5WCTbXeHmru
WanFYwo2fPrbFY+fa998UHI4c9I7vJL++zg8iSSLL2HlcEKc0t0FxpE7uoPKFBqvBI34IYmzX1BL
AwQUAAIACADrXr1ICviZp8QAAAD+AAAAWwAcAGh0dHAvdGVzdHMvbWlzYy9kZWxldGUtZnJhbWUt
ZHVyaW5nLXJlYWR5c3RhdGVjaGFuZ2Utd2l0aC1nYy1hZnRlci12aWRlby1yZW1vdmFsLXN0ZGVy
ci50eHRVVAkAAxk7S1cZO0tXdXgLAAEE9QEAAAQUAAAATY5NS8NAFEX3/RV3qWBlZmJiG8RNY1dB
ih+rUsqQvNaHyUx4eanor3cKCr1wFxcO3OOMLeYmn7slrC3zvHT29s4VqKZ+eKHQkrwJ0bZYFMaV
WZYtndlhI3Eg0W90PCo4nHzHLQ5Rzu29lrDG4Gq4xEY0PoSoaGJQzwHP73V9PdtevN7v8JCCdbXa
7GvuWanFYwrWfPzbFY+fK998UHI4cdLbv5L++5R4EkkWX8LK4Yg4pbszjAN3dAOVKTReCRrxQxJn
v1BLAwQUAAIACAALX71IFTU1knoAAAC8AAAAKgAcAGh0dHAvdGVzdHMvbWlzYy94c2x0LWJhZC1p
bXBvcnQtc3RkZXJyLnR4dFVUCQADVjtLV1Y7S1d1eAsAAQT1AQAABBQAAACNjkEOwyAMBO95hT9A
IO2hFb8hxFUsGYyMkfr8EuUD1V5WO4fZLKURJyOpgKqiET7ECKdZi95vj9caZrb4DiH4Qj17xS5D
M3b/7WxuT4ej0kTNDaV1bsBUEZ6AjAWrwU2XSeJdIcKoaZ8aE2BJx3+6Kn3k87qXLDEvP1BLAwQK
AAAAAADnXr1IAAAAAAAAAAAAAAAAEwAcAGh0dHAvdGVzdHMvcHJlbG9hZC9VVAkAAxI7S1eLPktX
dXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAOdevUjOy+19UgEAAP4CAAA8ABwAaHR0cC90ZXN0cy9w
cmVsb2FkL3NpbmdsZV9kb3dubG9hZF9wcmVsb2FkX3J1bm5lci1zdGRlcnIudHh0VVQJAAMSO0tX
EjtLV3V4CwABBPUBAAAEFAAAAKVRS0/DMAw+s1/h43agbfZgXYSQRic0pE1C1SYO0w5Z43URWVKS
FLR/j0sHFySEmHKxY38P2xvG+GjE2SAap+kW5qvVU46vNfoAe1XOQ6jO6UzJHAtUb5ijr6zxmAmt
d6J44eDagoQD9VPW1mGYDKGLzlkH16w/GaQ92FPcNPE4Zv1xlNBjPE2SJCaUrV2BPg6kFtlSdDa/
e6N0Vh+rB2WEXueLqSGDRxtwKiWReQ6iDeBbiWDUC7XTfzexFCfoT+DLCuC7Z+RI24KYXCgcVtYF
ZcrNTXrDhlu4fTR7e8dB27Kkb/BBuOCjKPoH1Qx3dUlcHsOSJhElLlrWewLR4gmoUV5C3JjLrKF9
1k4EZc2zCofMHiuNTTYXRmp0HDJRHOjACaARO9KE5vJopL9sqrVH1+xrporAf3Bz6HauehcpGHle
3OdcImBp3Yl4Ta11r/MBUEsDBAoAAAAAAAJfvUgAAAAAAAAAAAAAAAAUABwAaHR0cC90ZXN0cy9z
ZWN1cml0eS9VVAkAA0M7S1eLPktXdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAPpevUgAAAAAAAAA
AAAAAAAqABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvVVQJAAM4
O0tXiz5LV3V4CwABBPUBAAAEFAAAAFBLAwQKAAAAAADnXr1IAAAAAAAAAAAAAAAALgAcAGh0dHAv
dGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5LzEuMS9VVAkAAxI7S1eLPktXdXgL
AAEE9QEAAAQUAAAAUEsDBBQAAgAIAOdevUjh5TwthAAAABoBAABHABwAaHR0cC90ZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL2Jhc2UtdXJpLWFsbG93LXN0ZGVyci50eHRV
VAkAAxE7S1cRO0tXdXgLAAEE9QEAAAQUAAAAzcyxCsIwEIDhvU9xoy5iLA0axKUuDgHBQUEcYnrG
g3CR5Kr07Y1v4frz81k3wWoDSpmuM6oF/BSl2kVM3kXI4jO+UhbicNVrvdQ32O7xPoadgYI8WCzF
BTyTPHsnGFKeDMx4jHHe2D+UiUl+5KnqlPjAj2TgcuzBJ2b0Ult93i7S0HwBUEsDBAoAAAAAAOde
vUgAAAAAAAAAAAAAAAA4ABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xp
Y3kvMS4xL2NoaWxkLXNyYy9VVAkAAxI7S1eLPktXdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAOde
vUjhBrIVgwAAAMAAAABcABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xp
Y3kvMS4xL2NoaWxkLXNyYy9mcmFtZS1hYm91dC1ibGFuay1hbGxvd2VkLXN0ZGVyci50eHRVVAkA
AxI7S1cSO0tXdXgLAAEE9QEAAAQUAAAAncyxCsIwEIDhvU9xoy5CtC0axKUuDgHBQUEcYnrGg3An
yVXp21tfwfXn53N+hOUGjLFNY00N+CnGrBZJgk+QNWR8SVbieG3XralvsN3jfYg7CwW5d1iKj3gm
fXZeMUoeLcx4SGleub9lYtIfeZp0Ej7wQyxcjh0EYcagU5uet0/UV19QSwMEFAACAAgA5169SCY+
1bfXAAAA+AEAAEsAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9h
dWRpby1yZWRpcmVjdC1hbGxvd2VkLXN0ZGVyci50eHRVVAkAAxE7S1cRO0tXdXgLAAEE9QEAAAQU
AAAApZBBSwMxEIXP7q+YY72IsWyxQTy4PSi4IIgoiIfZZJqGpjMlmVX6782KN2/u8cF73+O9Hk9w
tQZjbNtaswT6KsYsL5I4TJDVZTpK1sjhfXXdrlcfcLOhYQy3FgppT6VgoEcJoTruamhvoQYT+ab/
P1gxaye8jWHMqFH4Nequk8Mx0aTukX2ibKFDtyMPl0CMQ+2EAd2e2Jc55aQvhfIDb2UTndo/bAuL
5ux8VgP73+N+dqFSkHyqXB5TmkOOHHVCPld6/WnaYOHtqQMnzOSm76rnE1P0zTdQSwMEFAACAAgA
5169SCY+1bfXAAAA+AEAAEwAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBv
bGljeS9hdWRpby1yZWRpcmVjdC1hbGxvd2VkMi1zdGRlcnIudHh0VVQJAAMRO0tXETtLV3V4CwAB
BPUBAAAEFAAAAKWQQUsDMRCFz+6vmGO9iLFssUE8uD0ouCCIKIiH2WSahqYzJZlV+u/Nijdv7vHB
e9/jvR5PcLUGY2zbWrME+irGLC+SOEyQ1WU6StbI4X113a5XH3CzoWEMtxYKaU+lYKBHCaE67mpo
b6EGE/mm/z9YMWsnvI1hzKhR+DXqrpPDMdGk7pF9omyhQ7cjD5dAjEPthAHdntiXOeWkL4XyA29l
E53aP2wLi+bsfFYD+9/jfnahUpB8qlweU5pDjhx1Qj5Xev1p2mDh7akDJ8zkpu+q5xNT9M03UEsD
BBQAAgAIAOdevUhYX3d/pgAAAIoBAABYABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2Vj
dXJpdHlQb2xpY3kvYmxvYi11cmwtZG9lcy1ub3QtbWF0Y2gtc291cmNlLXNlbGYtc3RkZXJyLnR4
dFVUCQADETtLVxE7S1d1eAsAAQT1AQAABBQAAADdj7EKwjAURXe/IqMObUw0WgsOWhQcxIKjSHkm
jxqNjbxGIX9vxUG/we3c6Zx7ECJXKhejVE2zI7MBb9DGRld7DCX5O1KIrLV1A86hYUg0T4ScZor1
r2tbL6HF3emCOqyIPFWb5gnOGghoBqxvfxcExvf+QRoL0GfkhSfcorHwpUSoiUzleMg7dfAh3rHl
pYOIxDvZh6rFuy/VzNkGmZSzUe/wDydeUEsDBAoAAAAAAOlevUgAAAAAAAAAAAAAAAA9ABwAaHR0
cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvdXNlckFnZW50U2hhZG93RE9N
L1VUCQADFTtLV4s+S1d1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA5169SC2852vlAAAAQwIAAFMA
HABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS91c2VyQWdlbnRTaGFk
b3dET00vYWxsb3ctYXVkaW8tc3RkZXJyLnR4dFVUCQADEjtLVxI7S1d1eAsAAQT1AQAABBQAAACl
0MFKAzEQBuCz+xRzrJelqbZoEA/dHhRcEEQUpIfZZJqGxklJZpW+vYl68yR7TMh8k//v8QSLa1BK
L5daXQJ9ZqUu2hANBkhiEh1jEs/ubXW1Wsy3cHPPu3irIUTnyjVkwSS5bdum/ze1oWF0xcokPeWM
jh5+1HUZOmgog4HsFLh+rou8825MKD7yi5d9F9+PgerpDtkGSho6NHuyMAdiHMpOGNAciG2eluo5
U6p9bbwR/cfWMGvOzidtYPtb3HcuFHIxnYrLYwhTZM9eKvlU9NJTzaDh9bEDE5nJ1O7Kmw8M3jZf
UEsDBBQAAgAIAOhevUijJsWPvAAAAJIBAABTABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50
U2VjdXJpdHlQb2xpY3kvdXNlckFnZW50U2hhZG93RE9NL2FsbG93LXZpZGVvLXN0ZGVyci50eHRV
VAkAAxQ7S1cUO0tXdXgLAAEE9QEAAAQUAAAApZAxb8IwEIXn5lfcCEuFgxK1VtWBMIBExqpD1eFi
H46FOSP7IpR/X4O6dSvjk+59n+71OEP9CkrpptGqBbpmpdbPIRoMkMQkusQknt1X+9LWq29429Iw
uXcNmaSnnNHRITpXLjaldNJQioFs1f8fLJiki3z0bkooPvKnl7GL50ugW9oh20BJQ4dmJAsrIMah
OGFAcyK2+RE5yUemtOdj3Hoj+g9bw6J6Wj5kYPs73P0vFHIxzYXLUwjL6gdQSwMEFAACAAgA6V69
SCsWx9eEAAAAwAAAAGsAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGlj
eS91c2VyQWdlbnRTaGFkb3dET00vZGVmYXVsdC1zcmMtb2JqZWN0LWRhdGEtdXJsLWFsbG93ZWQt
c3RkZXJyLnR4dFVUCQADFTtLVxU7S1d1eAsAAQT1AQAABBQAAACdzLEKwjAQgOG9T3GjLmIqrRrE
pS4OAcFBQRxieo2BcCfJVenbG1/B9efnM3aCegtK6abRag34yUqtFpGdjZDEJXxxkkD+1m7aenmH
3QEfo99ryEi9wZytx0uQZ2cFPadJw4zGGOeV+VsOFORHnosemI40sIbrqQPHROiktPK8bQx99QVQ
SwMEFAACAAgA+F69SMC1sRbeAAAAUgIAAEsAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRT
ZWN1cml0eVBvbGljeS92aWRlby1yZWRpcmVjdC1hbGxvd2VkLXN0ZGVyci50eHRVVAkAAzM7S1cz
O0tXdXgLAAEE9QEAAAQUAAAApZFBSwNBDIXP9lfkaC/iqlvtIB7cHhRcEEQUiofsbDodOiZlJqv0
35sVb4IH95iQ973kpcUDnC2hqlxdu4tLoM9SVecnSTwmyOoz7SVr5LBeXNXLxRtcr6gbwo2DQty3
VAoGeom6bVApSD44OOYhpfms/Tc5ctQR+WT0KHzPG3Hw+tiAF2byaj2b+cAU+wkuhfRn/QcJwSZu
TbRzYMJEk8CKWRvhTQxDxnHb73zkfZ9orO6Q+0TZQYN+Sz2cAjF25gkd+p2lWqZd9Vwoj5mtolf3
i23/mR3NJzn8/fcvUEsDBBQAAgAIAPhevUjhsqFQvQAAAJIBAABMABwAaHR0cC90ZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvdmlkZW8tcmVkaXJlY3QtYWxsb3dlZDItc3RkZXJy
LnR4dFVUCQADMztLVzM7S1d1eAsAAQT1AQAABBQAAAClkDFvwjAQhWfyK24kS0UKoWChDiQDSM1Y
dagYLvbFsTBnZF+E+Pd1q27dyvike9+nex3e4XkLVaXqWq1egG6pqpZPPmj0EEVHuoYoju3nelNv
1yfYtdRP9lVBIukoJbT0FqzNF/tcOivIRU+m6P4PFozSBB6cnSKKC/zhZGzC5erpOx2QjaeooEE9
koEFEGOfndCjPhOb9Iic5D1RPPIQWqdF/WErmBez8iEDm9/hfv5CIRviPXN58r4svgBQSwMEFAAC
AAgA+F69SMIvAtzeAAAAUgIAAGYAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0
eVBvbGljeS92aWRlby13aXRoLWh0dHAtdXJsLWFsbG93ZWQtYnktY3NwLW1lZGlhLXNyYy1zdGFy
LXN0ZGVyci50eHRVVAkAAzQ7S1c0O0tXdXgLAAEE9QEAAAQUAAAApZFBSwNBDIXP9lfkaC/iqlva
QTy4PSi4IIgoSA/Z2XQ6dEzKTFbpvzcr3gQP7jEh73vJS4tHuFhBVbm6dldLoM9SVZdnSTwmyOoz
HSRr5PC2WNarxQau19QN4cZBIe5bKgUDvUTdNagUJB8dnPKQ0nzW/pscOeqIfDJ6FL7nrTh4fWzA
CzN5tZ7NfGCK/QSXQvqz/oOEYBO3Jto7MGGiSWDFrI3wNoYh47jtdz7yfkg0VnfIfaLsoEG/ox7O
gRg784QO/d5SLdOuei6Ux8zW0av7xbb/zE7mkxz+/vsXUEsDBBQAAgAIAPhevUhUx3QQhAAAAMAA
AABZABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvd29ya2VyLWJs
b2ItaW5oZXJpdHMtY3NwLWJsb2Nrcy1ldmFsLXN0ZGVyci50eHRVVAkAAzQ7S1c0O0tXdXgLAAEE
9QEAAAQUAAAAncyxCsIwEIDhvU9xoy5C1JQ2iEtdHAKCg4I4xPQaD8KdJKnSt7e+guvPz2fdBOsW
lDJam20D+MlKbVZRvIuQik/4klSIw61udFvfYXfAxxj2BjJybzFnF/BC5dm5gkHSZGDBY4zLyv4t
E1P5kedZJ+EjD2LgeurACzP6Mrf5ebtIffUFUEsDBBQAAgAIAPpevUhjqqxsggAAAKgAAABAABwA
aHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kveHNsLWFsbG93ZWQtc3Rk
ZXJyLnR4dFVUCQADNztLVzc7S1d1eAsAAQT1AQAABBQAAAAtjUEKwzAMBO95hV4QO72k+BWFviC4
G2JQLCMppf59TSl7WobZzXK2wpsXqQRV0UR7YdDh3lIIy22d48iS7jHGYMiXFu8hS3VUf/77Q7jk
HhQml2ZYMO+M+WNMXCpoJTDOIdAP2AH4NGh6Q21cJ5LKnZY50o7NrzFEm4Lsak3U8Zq+UEsDBBQA
AgAIAPpevUhjqqxsggAAAKgAAABSABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJp
dHlQb2xpY3kveHNsLXVuYWZmZWN0ZWQtYnktc3R5bGUtc3JjLTItc3RkZXJyLnR4dFVUCQADODtL
Vzg7S1d1eAsAAQT1AQAABBQAAAAtjUEKwzAMBO95hV4QO72k+BWFviC4G2JQLCMppf59TSl7WobZ
zXK2wpsXqQRV0UR7YdDh3lIIy22d48iS7jHGYMiXFu8hS3VUf/77Q7jkHhQml2ZYMO+M+WNMXCpo
JTDOIdAP2AH4NGh6Q21cJ5LKnZY50o7NrzFEm4Lsak3U8Zq+UEsDBBQAAgAIAO9evUirePuhtQAA
ANwBAAA6ABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td2Vic3FsLWFsbG93ZWQt
c3RkZXJyLnR4dFVUCQADITtLVyE7S1d1eAsAAQT1AQAABBQAAADlz7EKwkAMBuDdp8gkLagndJHb
ROsiUmi1zndtKoVrUtI7xbe3FZ18BLf85PshSfM8yzVcyFiH4Bl8EAImaKkS7JC8cWCC5+XdVCF0
EK2B2IMhQBGWeKZKdqHDQe2NNyq9FuqK9th6VXCQCqe0Y0F14jq4kT3Q1qO0ZsB3ZRpWVd9HySaJ
QYNldvApaf0VWvcoDUuX9UhbqkuUtnlGE1786nQ6Debj5nzQuvDS0g3m8Sz9q29fUEsDBBQAAgAI
AO9evUje/brprwAAAO4AAAAyABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td2Vi
c3FsLXN0ZGVyci50eHRVVAkAAyE7S1chO0tXdXgLAAEE9QEAAAQUAAAAZc5BC4JAEAXgu79iTqJQ
beAl9hZllwhBS8+7OoWwzsi0W/Tv06hTt3m878HkZVmUGi5krEPwDD4IARP01AoOSN44MMHz8mHa
EAZI1kDswRCgCEsaqZpdGPCu9sYblTeVatAee68qDtLinHYsqE7cBTexJ9puktbc8TOZj1U7jkm2
yVLQYJkdfEda/4TWI8qVZShGpC11NUp/fSUzXvzrfH4N4qk5H7SuvPR0gziN3lBLAwQUAAIACADy
Xr1Ih8S8ncoAAADdAQAAPQAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwtdmlkZW8tc291cmNl
LWZyb20tcmVtb3RlLXN0ZGVyci50eHRVVAkAAyc7S1cnO0tXdXgLAAEE9QEAAAQUAAAApZA/b8Iw
EMVn8iluLEtE+CewEANhaCUyVh0qhot9MRbuGdkXIb59nbZbJ5TxnvR+795r8AHzLVSVWq3UYgl0
T1W1KH3Q6CGKjnQLURzbz/VmPV+eYffGXdgr8MHaLEMSjJLKsiyap1FHanubWYmkoZTQ0umXesim
q4Js9GTGgIfn6sCds31EcYE/nFzq8HXzNFyvyMZTVFCjvpCBGRBjmzOhRX0lNmlcq/dEcdjr6LSo
f2wFL8VkOiqBzd9wP71QyIb4yFzuvZ8W31BLAwQUAAIACADyXr1IG7p51oQAAADAAAAAOgAcAGh0
dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwtdmlkZW8tc3JjLWZyb20tcmVtb3RlLXN0ZGVyci50eHRV
VAkAAyc7S1cnO0tXdXgLAAEE9QEAAAQUAAAAncyxCsIwEIDhvU9xoy5CWlM0iEtdHAKCg4I4xPQa
D8JFkqvSt7e+guvPz2fdBPUWlDJam0YDfopSzSom7yJk8RlfKQtxuLWbtl7fYXfAxxj2Bgpyb7EU
F/BC8uycYEh5MrDgMcZlZf+WiUl+5HnWKfGRh2TgeurAJ2b0Mrf5ebtIffUFUEsDBAoAAAAAAOte
vUgAAAAAAAAAAAAAAAAhABwAaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvVVQJAAMZ
O0tXiz5LV3V4CwABBPUBAAAEFAAAAFBLAwQUAAIACADqXr1IGy/VEeAAAAA+BAAATgAcAGh0dHAv
dGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLWF1ZGlvLXZpZGVvLWluLW1haW4t
ZnJhbWUtc3RkZXJyLnR4dFVUCQADGDtLVxg7S1d1eAsAAQT1AQAABBQAAADtkTFLA0EQhWvvV0yp
jeROEnQRCy+FggcBCQpiMbc72SxZZ8LuXCT/PntiZ2cawZQD732Pea/DPTQ3UNdmOjXNBOgz1/XV
ZRSLEZLaRFtJGti/za5nzeQdbufUD/7OQCbtKGf09CTeF8V9MW0MFGMkV3W/BysmbYVXwQ8JNQi/
BF238rGNNF4PyC5SMtCiXZODwmbsSyb0aDfELh8TTrrMlB55JfNg1fxgGzivzi6OSmD3XdzXX6jk
Je0Ll4cY/yr5tPV/2Tpw0BH5XOhlgbEdA6+LFqwwkx1XKZodxuCqA1BLAwQUAAIACADrXr1I+gb9
f4YAAADAAAAAQgAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLWNz
cy1pbi1pZnJhbWUtc3RkZXJyLnR4dFVUCQADGTtLVxk7S1d1eAsAAQT1AQAABBQAAACVzLEKwjAQ
gOG9T3GjLtJEWjSIS10cAoKDgjjE9IyBcCfJVenbW0dH15+fz7oR9BqUMk1jdA34LkotF4m9S5DF
Z3xylkjh0q5aXV9hs8PbELYGClJvsRQX8BTl0TnBwHk0MKMhpXllf2T1hxwpypc8Tnpk2tOdDZwP
HXgmQi9Tm56XS7GvPlBLAwQUAAIACAD5Xr1I3v266a8AAADuAAAAPwAcAGh0dHAvdGVzdHMvc2Vj
dXJpdHkvc3RvcmFnZS1ibG9ja2luZy1sb29zZW5lZC13ZWJzcWwtc3RkZXJyLnR4dFVUCQADNjtL
VzY7S1d1eAsAAQT1AQAABBQAAABlzkELgkAQBeC7v2JOolBt4CX2FmWXCEFLz7s6hbDOyLRb9O/T
qFO3ebzvweRlWZQaLmSsQ/AMPggBE/TUCg5I3jgwwfPyYdoQBkjWQOzBEKAISxqpml0Y8K72xhuV
N5Vq0B57ryoO0uKcdiyoTtwFN7En2m6S1tzxM5mPVTuOSbbJUtBgmR18R1r/hNYjypVlKEakLXU1
Sn99JTNe/Ot8fg3iqTkftK689HSDOI3eUEsDBBQAAgAIAPpevUje/brprwAAAO4AAABDABwAaHR0
cC90ZXN0cy9zZWN1cml0eS9zdG9yYWdlLWJsb2NraW5nLXN0cmVuZ3RoZW5lZC13ZWJzcWwtc3Rk
ZXJyLnR4dFVUCQADNztLVzc7S1d1eAsAAQT1AQAABBQAAABlzkELgkAQBeC7v2JOolBt4CX2FmWX
CEFLz7s6hbDOyLRb9O/TqFO3ebzvweRlWZQaLmSsQ/AMPggBE/TUCg5I3jgwwfPyYdoQBkjWQOzB
EKAISxqpml0Y8K72xhuVN5Vq0B57ryoO0uKcdiyoTtwFN7En2m6S1tzxM5mPVTuOSbbJUtBgmR18
R1r/hNYjypVlKEakLXU1Sn99JTNe/Ot8fg3iqTkftK689HSDOI3eUEsDBBQAAgAIAPtevUi62fHC
5AAAAPIEAAA5ABwAaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9zcy1vcmlnaW4tY2FjaGlu
Zy1zdGRlcnIudHh0VVQJAAM5O0tXOTtLV3V4CwABBPUBAAAEFAAAAO2SQUsDQQyFz/ZX5Fgv4rZu
0UE8dHtQcEEQUZAesjPpdOiYlJms0n/vbPHmzT3aYyDve+S9tHiA2Q1UlalrU8+BvnJVzS+iWIyQ
1CbaS9LA/n1xvZhdreF2RV3v7wxk0pZyRk+P4n3ZWBbRzkARRnKT9u9gxaSN8Cb4PqEG4deg20Y+
9pGG6R7ZRUoGGrRbcnAJxNgVT+jQ7ohdHmNO+pIpPfBGVsGq+cU2MJ2cnY9yYPcT3PEuVPKSDoXL
fYz/jRw46IB8LvTS7ZC7gbenBqwwkx36LjufGIMb1+rpV0+/eiR/A1BLAwQUAAIACAD7Xr1IiXue
4BQBAADnAQAAPwAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8tcG9zdGVyLWNyb3NzLW9yaWdp
bi1jcmFzaDItc3RkZXJyLnR4dFVUCQADOTtLVzk7S1d1eAsAAQT1AQAABBQAAACdTk1rwkAQvfsr
5qiHJtkYNS6lIEqxUEFSSwviYd2Mcek6m+6HxX/flbS9lpa5vDfvzZu3EhfIp8AYH434aAj44Rgb
JtpIocF6abE11itqtuNynBc7uF3gPjR3HBxSvULnRIMvyh/nwmNj7IVDn4LWg97q38mKlL9GPsV0
ZeiBDobD63oO0hCh9HEXPWehVd3bfucnE1buYLnZrCt8D+g8HFSz9L79ogtVVyhRnbFC1xpyOBda
74V842A7oYZj9EfW6VBkBfTRWmPhhuXTYTmAQ8RXE09Tlk+SLA7jZZZlqUMZrPKXlAyhC/KYnNri
t3qRLsKpvVck9HP1OKPY8WQ8zuo6tnAcRAfg51k8i14IVv+pxydQSwMEFAACAAgAAl+9SGBLZhCR
AAAA+wEAAEUAHABodHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQteHNsLWRvY3VtZW50LXNl
Y3VyaXR5T3JpZ2luLXN0ZGVyci50eHRVVAkAA0M7S1dDO0tXdXgLAAEE9QEAAAQUAAAA7Y4xDoMw
DEV3TuELhASWVplh6NKeAQVTIpkksp0Kbl869AYdq7++r/dC3kqkSWNOgMyZPSyREFbV4q3t+kvr
znX+6pyzgqFy1MPuImYY77dxMLuQmXOoGyY1X+DB8RlTu28EFBNCD0j4IUD0IJQVUZvz6V/Icro9
5EQHdK2DBSetjAITI0gtJbPi3IR/6I9D31BLAwQKAAAAAADsXr1IAAAAAAAAAAAAAAAAEwAcAGh0
dHAvdGVzdHMvc3RvcmFnZS9VVAkAAxs7S1eLPktXdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAOxe
vUje/brprwAAAO4AAABFABwAaHR0cC90ZXN0cy9zdG9yYWdlL2NhbGxiYWNrcy1hcmUtY2FsbGVk
LWluLWNvcnJlY3QtY29udGV4dC1zdGRlcnIudHh0VVQJAAMbO0tXGztLV3V4CwABBPUBAAAEFAAA
AGXOQQuCQBAF4Lu/Yk6iUG3gJfYWZZcIQUvPuzqFsM7ItFv079OoU7d5vO/B5GVZlBouZKxD8Aw+
CAET9NQKDkjeODDB8/Jh2hAGSNZA7MEQoAhLGqmaXRjwrvbGG5U3lWrQHnuvKg7S4px2LKhO3AU3
sSfabpLW3PEzmY9VO45JtslS0GCZHXxHWv+E1iPKlWUoRqQtdTVKf30lM17863x+DeKpOR+0rrz0
dIM4jd5QSwMECgAAAAAA+V69SAAAAAAAAAAAAAAAABoAHABodHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L1VUCQADNjtLV4s+S1d1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA+V69SH5/7RexAAAAAQEA
AEEAHABodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Bvc3QtYmxvYi1jb250ZW50LXR5cGUtYXN5
bmMtc3RkZXJyLnR4dFVUCQADNjtLVzY7S1d1eAsAAQT1AQAABBQAAABljbEKwkAQRPt8xVaioB42
ggdWJoJYKImYQiwuySqHudtjs1H8ew0EVCxneDMvSdNdqmHj76a2FazIC3qZHJ4Bx2D7Nhg2DgUZ
3rnFaaSOVLcOGxUbMSrJM5VjsbWiMmq5xC6tiFGF2siF2CmP8iC+qb3hBqve0kmmZQjD2WI+Ag0F
UQ39VOvQoV/ksCTfCOSHtdaZsPVXGIwhxRLtHbkjYDCC00+x/NzFrXPPP/05egFQSwMEFAACAAgA
+V69SH5/7RexAAAAAQEAAEAAHABodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Bvc3QtYmxvYi1j
b250ZW50LXR5cGUtc3luYy1zdGRlcnIudHh0VVQJAAM2O0tXNjtLV3V4CwABBPUBAAAEFAAAAGWN
sQrCQBBE+3zFVqKgHjaCB1YmglgoiZhCLC7JKoe522OzUfx7DQRULGd4My9J012qYePvprYVrMgL
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
OyUjLtSEp4RNFAxhuiZsRf+1cm6UDwcshGtX33ZbQngh8xHcpoPfbgfueHI9GJ8PT7+jr+NRrz/Y
Bo60cuctstH92WPJ+BcqVIZj3Wugtx+6R0fvcsN7Wzgz4V5tvDlubfFB3RvrDerBlhBbpsSjAfXM
m7JcSEUSlAqu8jdIB5Cr3qohpPD+jxZqq73UDZvz9sF5cHT/5AfwIvtfLGz1iv8AUEsDBAoAAAAA
AAxfvUgAAAAAAAAAAAAAAAAJABwAaW1wb3J0ZWQvVVQJAANXO0tXiz5LV3V4CwABBPUBAAAEFAAA
AFBLAwQKAAAAAAAMX71IAAAAAAAAAAAAAAAADQAcAGltcG9ydGVkL3czYy9VVAkAA1c7S1eLPktX
dXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAABFfvUgAAAAAAAAAAAAAAAAgABwAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9VVAkAA2I7S1eLPktXdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAA
AAxfvUgAAAAAAAAAAAAAAAAlABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L1VUCQADVztLV4s+S1d1eAsAAQT1AQAABBQAAABQSwMECgAAAAAADF+9SAAAAAAAAAAAAAAAAC8A
HABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL1VUCQADVztL
V4s+S1d1eAsAAQT1AQAABBQAAABQSwMECgAAAAAADl+9SAAAAAAAAAAAAAAAAEAAHABpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQv
VVQJAANbO0tXiz5LV3V4CwABBPUBAAAEFAAAAFBLAwQKAAAAAAAkX71IAAAAAAAAAAAAAAAATwAc
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQt
Y29udGVudC9tZWRpYS1lbGVtZW50cy9VVAkAA4Q7S1eLPktXdXgLAAEE9QEAAAQUAAAAUEsDBBQA
AgAIAAxfvUjTDPQd8wAAAJcFAABnABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X2NhbnBs
YXktc3RkZXJyLnR4dFVUCQADVztLV1c7S1d1eAsAAQT1AQAABBQAAADt0s1KAzEQAOCz+xRz1MvS
3eKiQTy4PSi4IIgoiIfZZJqGxklJZpW+vYkKHjxJL0J7TMh8k/kZcAvtOTSNOu1UOwd6T00zr33Q
6CGKjrQJURzb5+6sm7UvcHHDy3CpwAdr8zUkwSiprutq+DO1oHGy2UokA6WElm6/1KsctFaQAz2Z
XeDyuT7w0tkporjAj05WfXjdeCqna2TjKSroUa/IwAyIccw5YUS9JjZpt6oeEsXSr4XTon7ZCo6r
o5OdMrD5btxnXShkQ9xmlyfv/6t8mPX+zPog/8iOnRTyPut5H8uuKHi660EHZtJlR/ObN/TOVB9Q
SwMEFAACAAgADF+9SMkoRczsAAAApAQAAHIAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRf
Y2FucGxheV9ub2F1dG9wbGF5LXN0ZGVyci50eHRVVAkAA1g7S1dYO0tXdXgLAAEE9QEAAAQUAAAA
1ZPBSgNBDIbP9ilytBfpru2ig3hwe7DQBUFEQTxkZ9Pp0DEpM1mlb++sePOkpdAeE5Ivf/6QBndQ
XkNRmFllyinQZyqKy4sgFgNEtZG2EtWze62uqkn5Bjdzant3ayARdw2lhI6eva5rVHISdwbOuQ9h
PGr+TfbsdUA+ZroXXvBKDLw81GCFmazmXK75wOC7PaYk0h/5S3EuV9zlpo2B3BhoL7Bi1Fp45V0f
cVD77Y+8bwMN0T1yFygaqNGuqYMJEGObZ0KLdpNdTUe5FelTojgcY+6tml+i8+FHZ+MT9u3Q6x3s
X06R/Jcf/wJQSwMEFAACAAgADV+9SIQzwfLuAAAADAYAAG4AHABpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVu
dHMvZXZlbnRfY2FucGxheXRocm91Z2gtc3RkZXJyLnR4dFVUCQADWjtLV1o7S1d1eAsAAQT1AQAA
BBQAAADtlEFLA0EMhc/2V+TYXqS70kWH4sHtQcEFQURBPGRn0+nQaVJmskr/vbPizVuXnuwxIfle
5j2YBg9Q3kBRmEVlygXQVyqKq8sgFgNEtZH2EtWze6+uq3n5AcsVtb27NZCIu4ZSQkevXjc1KjmJ
BwNT7kOYTZqjyZ69DsjnTPfCD7wWA29PNVhhJqu5l2c+MfhuhEoi/T3/UZzLE3d5aWsgLwYaBVaM
WguvvesjDtf++CO7faChukfuAkUDNdoNdTAHYmyzJrRot9nVNO5VL4ni4NnKWzV/2DmfycVslMKp
cj8l+Zz1/8n6TD7uL/0GUEsDBBQAAgAIAA5fvUj3Mi5Y7gAAAKQEAAB5ABwAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlh
LWVsZW1lbnRzL2V2ZW50X2NhbnBsYXl0aHJvdWdoX25vYXV0b3BsYXktc3RkZXJyLnR4dFVUCQAD
WztLV1s7S1d1eAsAAQT1AQAABBQAAADtk0FLxDAQhc/ur5ije5FtxapBPNg9KFgQRBRkD9N0Nhs2
TpZkquy/dyqe9FSLB8Fjwsz3Xt4jDe6hPIeiMCeVKSugt1wUx0chWgyQxCbaxSSe3XN1Vi3KFVws
qe3dpYFM3DWUMzp69LKpUcjFtDdwyH0I81nzY7JnLwPyXuk+8g2vo4GnuxpsZCYreqczrxh890Xl
dJR/+bR/G53TiStd2hrQxUCTwIJJ6shr7/qEg9uPfOLLLtBwukbuAiUDNdoNdbAAYmxVE1q0W001
T3vVQ6Y0ZLb0Vsw3tvYzO5hPUhjT+38jf7uR3yKP+ePvUEsDBBQAAgAIAA5fvUiIVCTf7wAAAKQE
AAB1ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJl
ZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X2xvYWRlZGRhdGFfbm9hdXRvcGxheS1z
dGRlcnIudHh0VVQJAANcO0tXXDtLV3V4CwABBPUBAAAEFAAAAO2TQUvEMBCFz+6vmKN7kW3Fugbx
YPegYEEQURAP03Q2GzZOlmSq7L93Kp70VIsHwWPCzPde3iMN7qE8g6IwJ5UpT4HeclEcH4VoMUAS
m2gXk3h2T9WyWpTPcL6itncXBjJx11DO6OjBy6ZGIRfT3sAh9yHMZ82PyZ69DMg7pfvI17yOBh5v
a7CRmazonc68YvDdF5XlKP/yaf8mOqcTl7q0NaCLgSaBBZPUkdfe9QkHtx/5xJddoOF0hdwFSgZq
tBvqYAHE2KomtGi3mmqe9qr7TGnIbOWtmG9s7Wd2MJ+kMKb3/0b+diO/RR7zx98BUEsDBBQAAgAI
AA9fvUhrRyRt7wAAAKQEAABuABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X2xvYWRlZG1l
dGFkYXRhLXN0ZGVyci50eHRVVAkAA107S1ddO0tXdXgLAAEE9QEAAAQUAAAA7ZNBS8QwEIXP7q+Y
o3uRbcWyG8SD3YOCBUFEQTxM09ls2DizJFNl/72peNJTLR4Ejwkz33t5jzR4gHIFRWHOKlMugd5S
UZyeBLEYIKqNtJeont1TtawW5TOcr6nt3YWBRNw1lBI6evC6rVHJSTwYOOY+hPms+THZs9cBeZfp
XviaN2Lg8bYGK8xkNd/lmVcMvvuishrlXz/t34hzeeIyL+0M5MVAk8CKUWvhjXd9xMHtRz7ysg80
nK6Qu0DRQI12Sx0sgBjbrAkt2l1ONU171X2iOGS29lbNN3buZ3Y0n6Qwpvf/Rv52I79FHvPH3wFQ
SwMEFAACAAgAEF+9SDwSiyjpAAAApAQAAHkAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRf
bG9hZGVkbWV0YWRhdGFfbm9hdXRvcGxheS1zdGRlcnIudHh0VVQJAANfO0tXXztLV3V4CwABBPUB
AAAEFAAAAO2TwUoDQQxAz/YrcrQX6ba46CAe3B5a6IIgoiAesrPpdOg0U2aySv/erHjzZBcpgseE
5CXzhtR4gOk1FIW5LM1sAvSei2J2EaLFAElson1M4tm9lFflZPoKN3NqOndrIBO3NeWMjp68bCoU
cjEdDJxzF8J4VB9N9uylRz4o3Ude8joaeL6vwEZmsqI5rXnD4NsBUzLJ1/qr6JxW3GnT1oA2BhoE
FkxSRV571yXst/30E3f7QH20QG4DJQMV2g21oGzGRmdCg3arVvOwVz1mSr2zubdivrH1f0Zn439v
J/D2W/fyF8k/ufEPUEsDBBQAAgAIABBfvUjQuBvz6gAAAEoEAABpABwAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVs
ZW1lbnRzL2V2ZW50X2xvYWRzdGFydC1zdGRlcnIudHh0VVQJAANgO0tXYDtLV3V4CwABBPUBAAAE
FAAAAO2TsU4DMQxAZ/oVHumCmqs4QYQYuA4gcRISQiAhBl/OTaMGu0p8oP49OcTGVG6AgdGW/ey8
yC3uoToHY+xpbZcG6D0bszyJ4jBCUpdoJ0kD++f6rF5UL3Cxom7wlxYycd9SzujpMeimQSUvaW/h
mIcY57P2x+TAQUfkfaEH4Rtei4WnuwacMJPTkis1bxhDP2FKJv1a/1a8LxVXpWlroTRGmgRWTNoI
r4MfEo7bfvqR112kMbpG7iMlCw26DfWwAGLsykzo0G2L1TztVQ+Z0uhsFZzab+zyP7Oj+b+3X/B2
yL1Uf4J8yCV+AFBLAwQUAAIACAARX71ICwWjGu8AAACkBAAAdAAcAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVt
ZW50cy9ldmVudF9sb2Fkc3RhcnRfbm9hdXRvcGxheS1zdGRlcnIudHh0VVQJAANhO0tXYTtLV3V4
CwABBPUBAAAEFAAAAO2TQUsDMRCFz/ZXzLG9SHeXLhqKB7cHhS4IIgriYTY7TUPTSUlmlf57s+JJ
T+viodBjwsz3Xt4jNR4hv4YsU4tSFTnQR8yy4tJ5jQ6C6EAHH8SyeS2vynn+BssVNZ25URCJ25pi
REPPVrYVChkfjgqm3Dk3m9R/Jlu20iMfE916vueNV/DyUIH2zKQl3aWZd3S2/aFSDPIv3/bX3pg0
cZuWdgrSoqNRYMEgleeNNV3A3u1XPn5/cNSf7pBbR0FBhXpLLcyBGJukCQ3qXUo1jnvVU6TQZ7ay
WtQvdupncjEbpTCk93Mjp93If5GH/PFPUEsDBBQAAgAIABFfvUjfySiD8QAAAAwGAAB8ABwAaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250
ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X29yZGVyX2NhbnBsYXlfY2FucGxheXRocm91Z2gtc3Rk
ZXJyLnR4dFVUCQADYjtLV2I7S1d1eAsAAQT1AQAABBQAAADtlMFKAzEQhs/2KebYXqTbrYsG8eD2
oNAFQcSC9DCbnaah6aQks0rf3qx40tPagpc9Jsx88+cLSYVHmN1AlqmrQuU50EfMsvzSeY0OguhA
Bx/EsnkrrovpbA23C6pbc6cgEjcVxYiGXq1sSxQyPhwVjLl1bjKq/ky2bKVDPie69fzIG69g9VSC
9sykJe2lmnd0tvkxZd4rv3zHX3pjUsV9atopSI2OTgILBik9b6xpA3Zpv/z4/cFRt3pAbhwFBSXq
LTUwBWKs00yoUe+S1XjaqV4ihc7ZwmpRv9jpfkYXk8HbP3jr814G8kA+B7nPX/oJUEsDBBQAAgAI
ABJfvUhJygIi7wAAAAwGAAB1ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X29yZGVyX2Nh
bnBsYXlfcGxheWluZy1zdGRlcnIudHh0VVQJAANkO0tXZDtLV3V4CwABBPUBAAAEFAAAAO2UwUoD
MRBAz/Yr5mgv0m3tokE8uD0ouCCIKEgPs9lpGhpnSjKr9O/NihfxJKt42WOGmTeTFyY1HmB+DkVh
lqVZnAK9paJYnASxGCCqjbSXqJ7dc3lWzuZruFhR07lLA4m4rSkldPTodVuhkpN4MHDMXQjTSf2F
vPwB2bPXHnmf6V74hjdi4OmuAivMZDXHcs4rBt8O6JJIP8e/FedyxlUu2hnIhYEGgRWjVsIb77qI
/bQffuRlH6g/XSO3gaKBCu2WWpgBMTa5JzRod9lqGnarh0Sxd7byVs03dn6fydF09PYP3v5qX0by
SP6Nv/QdUEsDBBQAAgAIABNfvUjpW1nM7gAAAAwGAAB/ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRz
L2V2ZW50X29yZGVyX2xvYWRlZG1ldGFkYXRhX2xvYWRlZGRhdGEtc3RkZXJyLnR4dFVUCQADZTtL
V2U7S1d1eAsAAQT1AQAABBQAAADtlLFOAzEMQGf6FR7pgnqtOCBCDFwHkDgJCVUgIQZfzk2jBrtK
fKD+PbmKjQmubDfGsp+dFzk17mF+BUVhzkuzKIE+U1EszoJYDBDVRtpJVM/utbwsZ/M3uF5S07kb
A4m4rSkldPTsdVOhkpO4N3DKXQjTSf1nsmevPfIp073wPa/FwMtjBVaYyWqO5ZwPDL4d0CWRfo//
IM7ljNtctDWQCwMNAitGrYTX3nUR+2kPfuR9F6g/3SG3gaKBCu2GWpgBMTa5JzRot9lqGnarVaLY
O1t6q+YHO7/P5GQ6ejuKt4t/25eRPJKPQf7NX/oFUEsDBBQAAgAIABNfvUg15dOz8AAAAAwGAAB4
ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRl
ZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X29yZGVyX2xvYWRzdGFydF9wcm9ncmVzcy1z
dGRlcnIudHh0VVQJAANmO0tXZjtLV3V4CwABBPUBAAAEFAAAAO2UwUoDMRCGz/Yp5mgv0m1xrUE8
uD0ouCCIKIiH2ew0DY2TkswqfXtnxZOe1gpe9pgw882fLyQ17mF+DkVhTkuzOAN6z0WxOAnRYoAk
NtEuJvHsnstlOZu/wMWKms5dGsjEbU05o6NHL5sKhVxMewPH3IUwndS/Jnv20iPvle4j3/A6Gni6
q8BGZrKie1rzhsG336YsB+WXr/i30TmtuNKmrQFtDHQQWDBJFXntXZewT/vpJ77uAvWra+Q2UDJQ
od1QCzMgxkZnQoN2q1bzYad6yJR6Zytvxfxg6/1Mjqajt3/wNuS9jOSR/BfkIX/pB1BLAwQUAAIA
CAAUX71IHc0F2/EAAAAMBgAAZQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9wYXVzZS1z
dGRlcnIudHh0VVQJAANoO0tXaDtLV3V4CwABBPUBAAAEFAAAAO2UwUoDMRBAz/Yr5mgvstvqYoN4
cHtQcEEQURAPs9lpGhpnSjKr9O/NijdPuog99Jhh5s3khUmDO5gtoCzNWWXmC6D3VJbzkyAWA0S1
kbYS1bN7rs6rYvYCF0tqe3dpIBF3DaWEjh69rmtUchJ3Bo65D2E6aX5N9ux1QN5nuhe+4ZUYeLqr
wQozWc2xnPOGwXcjuiTSr/FvxbmccZWLNgZyYaBRYMWotfDKuz7iMO2nH3ndBhpO18hdoGigRrum
Dgogxjb3hBbtJltN4271kCgOzpbeqvnGzu8zOZoevP2Dt7/alwN5D8mnxV6Qf/KXfgBQSwMEFAAC
AAgAFV+9SBl/wCnvAAAApAQAAHAAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfcGF1c2Vf
bm9hdXRvcGxheS1zdGRlcnIudHh0VVQJAANpO0tXaTtLV3V4CwABBPUBAAAEFAAAAO2TQUsDMRCF
z/ZXzLG9SLfqokE8dHtQcEEQUZAeZrPTNDROSjKr9N87K570tC4eBI8JM997eY/UeIDFBRSFOSvN
6RzoLRfFyXGIFgMksYn2MYln91yel/PFGi5X1HTuykAmbmvKGR09etlWKORiOhiYchfCbFL/mOzZ
S4+8V7qPfMObaODprgIbmcmK3unMKwbfflEpBvmXT/u30TmdWOrSzoAuBhoFFkxSRd541yXs3X7k
E1/2gfrTNXIbKBmo0G6pBY2GsVFNaNDuNNU87lUPmVKf2cpbMd/Y2s/kaDZKYUjv/4387UZ+izzk
j78DUEsDBBQAAgAIABZfvUiG8RwS8gAAAAwGAABkABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2
ZW50X3BsYXktc3RkZXJyLnR4dFVUCQADaztLV2s7S1d1eAsAAQT1AQAABBQAAADtlEFLA0EMhc/2
V+RoL9Ld6qKDeHB7UHBBEFEQD9nZdDp0zJSZrNJ/b1a8ebJLoYceE5LvZd6DaXAL5RUUhbmozHkJ
9JWLYn4WosUASWyiTUzi2b1Vl9WsfIfrBbW9uzGQibuGckZHL15WNQq5mLYGTrkPYTppdiZ79jIg
n5TuI9/zMhp4fazBRmayoj2d+cTguxEqmeT3/IfonE7c6tLagC4GGgUWTFJHXnrXJxyu/fEnfmwC
DdUdchcoGajRrqiDGRBjq5rQol2rq3ncq54zpcGzhbdi/rA1n8nJdJTCvnI/JnJ4iRzJu5LnB0H+
z1/6DVBLAwQUAAIACAAWX71IW3Hbs+0AAACkBAAAbwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9l
dmVudF9wbGF5X25vYXV0b3BsYXktc3RkZXJyLnR4dFVUCQADbDtLV2w7S1d1eAsAAQT1AQAABBQA
AADdk8FKA0EMhs/2KXK0F+m2ddFBPLg9WOiCIKIgPWRn0+nQMSkzWaVv76x482SLYHtMSL78+UNq
3MH4GorCXJZmOgH6SEUxuQhiMUBUG2krUT271/KqHI2XcDOjpnO3BhJxW1NK6OjZ67pCJSdxZ+Cc
uxCGg3pvsmevPfIx073wnFdi4OWhAivMZDXncs07Bt8eMCWRfstfiHO54i43bQzkxkAHgRWjVsIr
77qIvdovf+RtG6iP7pHbQNFAhXZNLYyAGJs8Exq0m+xq+pdbkT4liv0xZt6q+SE6H35wNjxi3/ZY
b/pn/3Lq5N/8+CdQSwMEFAACAAgAF1+9SOT6ZbryAAAADAYAAGcAHABpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxl
bWVudHMvZXZlbnRfcGxheWluZy1zdGRlcnIudHh0VVQJAANtO0tXbTtLV3V4CwABBPUBAAAEFAAA
AO2UQUsDMRCFz/ZXzNFepFvbRYN4cHtQcEEQURAPs9lpGhonJZlV+u+dFU96Wvci0mPCzPde3gyp
cQ/zcygKsyzNYgH0novi9CREiwGS2ES7mMSzey7Pytn8BS5W1HTu0kAmbmvKGR09etlUKORi2hs4
5i6E6aT+Ndmzlx55r3Qf+YbX0cDTXQU2MpMVvdOaNwy+/aayHORfvuzfRue04kqbtga0MdAosGCS
KvLauy5h7/Yzn/i6C9SfrpHbQMlAhXZDLcyAGBvVhAbtVlPN4171kCn1ma28FfODrfOZHE1HKQyZ
+/8nH7bosEV/lzzkL/0AUEsDBBQAAgAIABhfvUjw0HEY7QAAAAwGAAByABwAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlh
LWVsZW1lbnRzL2V2ZW50X3BsYXlpbmdfbm9hdXRvcGxheS1zdGRlcnIudHh0VVQJAANvO0tXbztL
V3V4CwABBPUBAAAEFAAAAO2UPU/DQAyGZ/orPNIFNS0EOCEG0gEkIiFVCCTE4Fzc66lXu7pzQP33
XCo2JmgHhoy27Mcfr+wadzC9hqIwF6U5L4E+U1HMzoJYDBDVRtpKVM/urbwqJ9N3uJlT07lbA4m4
rSkldPTidVWhkpO4M3DKXQjjUf1nsmevPXKR6V74gZdi4PWpAivMZDX7cswHBt8eUCWRfrf/KM7l
iLuctDaQEwP9T7Bi1Ep46V0XsV/DfvGy2QbqrXvkNlA0UKFdUQsTIMYm14QG7TrLlQ6b6jlR7MWY
e6vmBzsLPzoZD+Md514uB/JAPgL5N7/0C1BLAwQUAAIACAAYX71I2yIAc/AAAAAMBgAAaAAcAGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29u
dGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9wcm9ncmVzcy1zdGRlcnIudHh0VVQJAANwO0tXcDtL
V3V4CwABBPUBAAAEFAAAAO2UwUoDMRCGz/Yp5mgv0q261iAe3B4UXBBEFMTDbHaahsZJSWaVvr2z
4klPawUve0yY+ebPF5IadzA/h6Iwp6U5OQN6z0VxfBSixQBJbKJtTOLZPZeLcjZ/gYslNZ27NJCJ
25pyRkePXtYVCrmYdgYOuQthOql/TfbspUfeK91HvuFVNPB0V4GNzGRF97TmDYNvv01ZDMovX/Fv
o3NacaVNGwPaGGgvsGCSKvLKuy5hn/bTT3zdBupX18htoGSgQrumFmZAjI3OhAbtRq3m/U71kCn1
zpbeivnB1vuZHExHb//gbch7Gckj+S/IQ/7SD1BLAwQUAAIACAAZX71IE+GpCusAAACkBAAAcwAc
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQt
Y29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9wcm9ncmVzc19ub2F1dG9wbGF5LXN0ZGVyci50
eHRVVAkAA3I7S1dyO0tXdXgLAAEE9QEAAAQUAAAA7ZNBSwNBDIXP9lfk2F6kW+tih9JDtweFLggi
CuIhO5tOh45Jmckq/ffOijdvLkIPHhOS72XeY2o8wWwBRWGuSzNfAH2kori6DGIxQFQb6ShRPbuX
8qaczl5huaGmcysDibitKSV09OR1X6GSk3gyMOYuhMmo/jXZs9ce+ZDpXviOd2Lg+b4CK8xkNffy
zDsG3w5QSaTf52/FuTyxzksHA3kx0CCwYtRKeOddF7G/9ssfeTsG6qtb5DZQNFCh3VMLUyDGJmtC
g/aQXU3DXvWYKPaebbxV84Od8xldTAYp/FXu/4mcXyLn8Mc/AVBLAwQUAAIACAAaX71I4zYj7vMA
AABmBgAAagAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mv
ZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF90aW1ldXBkYXRlLXN0ZGVyci50
eHRVVAkAA3M7S1dzO0tXdXgLAAEE9QEAAAQUAAAA7ZRBSwMxEIXP9lfM0V6kW+miQTy4PVRwQRBR
EA+z2Wkamk5KMqv03zsr3rztKvTQY8LM917eg9R4gPk1FIVZlGYxA/rMRXF5EaLFAElson1M4tm9
lVflbP4ON0tqOndrIBO3NeWMjl68bCoUcjEdDJxzF8J0Ug8me/bSI5+U7iPf8zoaeH2swEZmsqJ3
OvOBwbcjVDLJj/2H6JxO3OnS1oAuBhoFFkxSRV571yXs3X7nE3f7QP1phdwGSgYqtBtqQdmMjWpC
g3arqeZxr3rOlPrMlt6K+cXWfiZn01EK/9X7qZHja+Q4yMWJPJA8/C/9S/9fUEsDBBQAAgAIABtf
vUgL/9GC8gAAAAwGAAB1ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3Nl
bWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X3RpbWV1cGRhdGVf
bm9hdXRvcGxheS1zdGRlcnIudHh0VVQJAAN1O0tXdTtLV3V4CwABBPUBAAAEFAAAAO2UwUoDMRCG
z/Yp5mgv0mzpYoN4cHuw0AVBREE8zGanaWiclGRW6dubFU/2tBYUpMeEmW/+fCGpcQ/FHJTSs1LP
FNB7Ump64YNBD1FMpF2I4tg+l5flpHiBqwU1nb3WkIjbmlJCS49ONhUK2RD3Gs658348qn9Mduyk
R95nugu85HXQ8HRXgQnMZCTv5Zo39K79NqUYlF++4q+CtbniJjdtNeRGT0eBBaNUgdfOdhH7tJ9+
wuvOU7+6RW49RQ0Vmg21MAFibPJMaNBss9V03KkeEsXe2cIZ0QfsfD+js/HJ2x94G/JeTuTfIU//
OXnIX/oBUEsDBBQAAgAIABtfvUjRSiX/hAAAAMAAAABsABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRz
L2V2ZW50X3ZvbHVtZWNoYW5nZS1zdGRlcnIudHh0VVQJAAN2O0tXdjtLV3V4CwABBPUBAAAEFAAA
AJ3MsQrCMBCA4b1PcaMuYloaNIhLXRwCgoOCOMT0GgPhTpKr0re3voLrz89n3QT1FpQyrTZtA/gp
SjWrxN4lyOIzvjhLpHDTG72u77A74GMMewMFqbdYigt4ifLsnGDgPBlY0JjSsrJ/y5Gi/MjzrEem
Iw1s4HrqwDMRepnb/Lxdin31BVBLAwQKAAAAAAAMX71IAAAAAAAAAAAAAAAAWgAcAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9t
ZWRpYS1lbGVtZW50cy9pbnRlcmZhY2VzL1VUCQADVztLV4s+S1d1eAsAAQT1AQAABBQAAABQSwME
CgAAAAAADF+9SAAAAAAAAAAAAAAAAGQAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvaW50ZXJmYWNl
cy9UZXh0VHJhY2svVVQJAANXO0tXiz5LV3V4CwABBPUBAAAEFAAAAFBLAwQUAAIACAAMX71I+w02
vsoAAADdAQAAeQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9pbnRlcmZhY2VzL1RleHRUcmFjay9h
Y3RpdmVDdWVzLXN0ZGVyci50eHRVVAkAA1c7S1dXO0tXdXgLAAEE9QEAAAQUAAAApZAxb8IwEIVn
8ituLEtEgohaq+rQMBSJjIih6nCxD2PhnpF9EeLf4wBbpyrjPel9797r8Ar1G1SVWjWqXgJdUlUt
Sx80eoiiI51DFMf2u3lt6voH3jd8CB8KfLA2y5AEo6SyLIvu36g19YPNrETSUUpoafugfmbTSUE2
ejJTwONzbeCDs0NEcYH3To5t+D17Gq8vZOMpKmhRH8nAAoixz5nQoz4RmzSt1S5RHPdaOy3qD1vB
SzGbT0pg8xzu3guFbIjXzOXB+3lxA1BLAwQUAAIACAAMX71IrtWdbIMAAADAAAAAdQAcAGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVu
dC9tZWRpYS1lbGVtZW50cy9pbnRlcmZhY2VzL1RleHRUcmFjay9hZGRDdWUtc3RkZXJyLnR4dFVU
CQADVztLV1c7S1d1eAsAAQT1AQAABBQAAACdzLEKwjAQgOG9T3GjLkJSDBrEpS4OAcFBQRxieqYH
4U6SVOnbW1/B9efnc34CvQWl7NpY3QJ+ilLtKknwCXINGV+SK3G8mY3R+g67Az7GuLdQkHuHpfiI
F6pD5ytGyZOFBY8pLRv3t0xM9UeeZ52Ej/wUC9dTB0GYMdS5zc/bJ+qbL1BLAwQUAAIACAAcX71I
1kLvYN8AAADkAwAAdwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9uZXR3b3JrU3RhdGVfZHVyaW5n
X2xvYWRzdGFydC1zdGRlcnIudHh0VVQJAAN3O0tXdztLV3V4CwABBPUBAAAEFAAAAO2RMUsDQRCF
a+9XTBkbyUXu0CVYeCkUPBBEFMRibneyWbKZCbtzSv69e2Jnl5RaDrz3Pea9Hg+wuIa6Nk1rmgbo
M9f15UUUixGS2kR7SRrYv7VX7XzxDssVDaO/MZBJe8oZPT2I90VxW0xbA8UYyVX98WDFpJ3wOvgx
oQbhl6CbTnb7SNN1h+wiJQMd2g05mAMxDiUTBrRbYpdPCSd9zpTueS2rYNX8YhuYVWfnpyX893ZU
Aruf4r7/QiUv6VC4PMb418iBg07Ip0Iv2069G3h97MAKM9lp76L5wBhc9QVQSwMEFAACAAgAHF+9
SCFJYiCDAAAAwAAAAG4AHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvbmV0d29ya1N0YXRlX2luaXRp
YWwtc3RkZXJyLnR4dFVUCQADeDtLV3g7S1d1eAsAAQT1AQAABBQAAACdzLEKwjAQgOG9T3GjLmIq
CRrEpS4OAcFBQRxiesaDcCdJqvTtra/g+vPzOT9CuwGlrDZWa8BPUWq1SBJ8glxDxpfkShyvZm2W
7Q22e7wPcWehIPcOS/ERz1Sfna8YJY8WZjykNG/c3zIx1R95mnQSPvBDLFyOHQRhxlCnNj1vn6hv
vlBLAwQUAAIACAAdX71IPbFDquYAAABMBQAAcgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9wYXVz
ZWRfZmFsc2VfZHVyaW5nX3BsYXktc3RkZXJyLnR4dFVUCQADeTtLV3k7S1d1eAsAAQT1AQAABBQA
AADtk0FLA0EMhc/ur8ixXqTb4qqDeHB7UHBBEFEQD9mZdDp0TMpMVum/d1a8eWsvUgq5BF6+Rx5J
h1uYXUFdm/OmFNBXruv5WRSLEZLaRBtJGti/NZfNdPYO1wvqB39jIJN2lDN6ehDvi+K2DK0NlMFI
rup2BysmbYWXwQ8JNQi/BF218rGJNHZ3yC5SMtCiXZGDKRBjXzyhR7smdnkfc9LnTOmel7IIVs0f
toFJdXK6n8Mxt50c2P0G97MXKnlJ28LlIcZDIF8cyf+OHDjoiHwq9PJD430beH1swQoz2fGviuYT
Y3DVN1BLAwQUAAIACAAdX71Ib3wgiO0AAACkBAAAcgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9w
YXVzZWRfdHJ1ZV9kdXJpbmdfcGF1c2Utc3RkZXJyLnR4dFVUCQADejtLV3o7S1d1eAsAAQT1AQAA
BBQAAADtk8FKAzEQhs/2KebYXqRb6VqDeOj2oOCCIKIgPcxmp2lonJRkVunbOyue9LT2IIjHhJlv
/nxhajzA7AKKwsxLMz8HestFcXYaosUASWyifUzi2T2Xi3I6W8PliprOXRnIxG1NOaOjRy/bCoVc
TAcDY+5CmIzqH5M9e+mR90r3kW94Ew083VVgIzNZ0TutecXg2y9TFoPyy2f82+icViy1aWdAGwMd
BRZMUkXeeNcl7NN++Ikv+0D96Rq5DZQMVGi31MIUiLHRmdCg3anVfNyrHjKl3tnKWzHf2Po/o5PJ
v7df8DZkX/46eciOvwNQSwMECgAAAAAADl+9SAAAAAAAAAAAAAAAAGoAHABpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEt
ZWxlbWVudHMvcGxheWluZy10aGUtbWVkaWEtcmVzb3VyY2UvVVQJAANbO0tXiz5LV3V4CwABBPUB
AAAEFAAAAFBLAwQUAAIACAANX71I1XD3TBEBAACgAgAAkQAcAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50
cy9wbGF5aW5nLXRoZS1tZWRpYS1yZXNvdXJjZS9wYXVzZS1tb3ZlLXRvLW90aGVyLWRvY3VtZW50
LXN0ZGVyci50eHRVVAkAA1o7S1daO0tXdXgLAAEE9QEAAAQUAAAAtZFPS8NAEMXP9lPMUQ+G/KFJ
u0jBpgcFC9IiPYQeJpvJJnTdLbsbtH56J1UvHi3ObQbm9968qZJETHOR5lFcFHu444Jyc7/cwoIL
Wj347plM0xu1IU3oaUtBQBW/F22dEMb5LMvjPSy1lQeIoUMPxprbD3IWHLUg7WACZJM1niCdw48c
0JtPkiziNdTggnR0tC6wTJXPpvOUrTya1i4EaKsUj8EHdMFHUfQH1IrqQTHLU1iT96jo6Yt6ti2A
FzU1l4BHc6U1ba8Gh6G3ZteHrrSvR01j94Cm0eQElCg7ajgoMlizJtQoD5yvv+yqF09uzGvVS/7O
b7aA68nVzUUKpvkO7nwXBlLWnZhrBq3/k/wJUEsDBBQAAgAIAA1fvUjx/xUjJQEAAG8DAACPABwA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1j
b250ZW50L21lZGlhLWVsZW1lbnRzL3BsYXlpbmctdGhlLW1lZGlhLXJlc291cmNlL3BhdXNlLW1v
dmUtd2l0aGluLWRvY3VtZW50LXN0ZGVyci50eHRVVAkAA1o7S1daO0tXdXgLAAEE9QEAAAQUAAAA
zZLBTgJBDIbP8hQ96kHCgrvCxJDIctBEEgIxmhAO3dnu7oSxQ2ZmVXx6u0QvXjxwobeZtN/f/u0C
DzCcQJKoNFPDDOgjJMmob51GCz5qT3vno+F6k43TyXALd3Mq2nqqIBCXCwoBa3oxsckxUu38QcEl
t9Ze9RZnSDZsYodcC904fuTKKXhd5qAdM+kof5LzjtaUvc0vv5+NO4YE5Kv72RqmElDZNjRL6VR0
VmQJA60pKtgMPm+rIiEcpTdpNdjCTPrawQAaDMCOr7/IO/BUiWbLEUYnGRV/fHpydS0ZRy0FUmip
PAUc0cfccWXq1mNny3ER7m1vqXs9IJeWvIIcdUOlTEeMhWhCgXonpoTTpnoO5LvlzI0WS/+y5RB6
F+d5YP+RvwFQSwMEFAACAAgADl+9SKin2D8qAQAAFQMAAI8AHABpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVu
dHMvcGxheWluZy10aGUtbWVkaWEtcmVzb3VyY2UvcGF1c2UtcmVtb3ZlLWZyb20tZG9jdW1lbnQt
c3RkZXJyLnR4dFVUCQADWztLV1s7S1d1eAsAAQT1AQAABBQAAACtksFuwjAMhs/jKXwchyFaVhjR
hDTKYZOGhEBokxAHN3XTiCxBSbqNPf1cxIkbY74lsr/f/u05HiAdQ5KIbCjSIdBXSJJBzziJBnyU
nvbOR23VZviQjdMtPM6oaNREQCBbzikEVPSmY51jJOX8QcCtbYzpduZ/JmurY4tcMV07+2IrJ+B9
kYN01pKM/Mc5n2h02dmc+KNemmXM4IB8+TRdwYQDKtOEesGdss6SDGGgFUUBm/73qCoSwkF2n1X9
LUy5rx30ocYA1tm7H/IOPFWs2dgIg7NxRhcZFU8+vTqlOOOoJYALDZXXgCP6mDtbadV4bG05LsJ9
7A21r2e0pSEvIEdZU8nTkcWCNaFAuWNTwnVTrQP5djkzLdnSczYfQueme5XCJQf2n+RfUEsDBBQA
AgAIAA5fvUjYSodRhAAAAMAAAACBABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3BsYXlpbmctdGhl
LW1lZGlhLXJlc291cmNlL3BsYXliYWNrUmF0ZS1zdGRlcnIudHh0VVQJAANbO0tXWztLV3V4CwAB
BPUBAAAEFAAAAJ3MsQrCMBCA4b1PcaMuQiqtNohLXRwCgoOCOMT0Gg/CnSSp0rc3voLrz89n7Ax1
B0rpptX1BvCTlFqvgjgbIGYX8SUxE/tbu226+g67Az4mv9eQkAeDKVmPF8rP3mb0EmcNC55CWFbm
b5mY8o88F52EjzyKhuupByfM6HJp5XnbQEP1BVBLAwQUAAIACAAgX71IgEidRYQAAADAAAAAeAAc
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQt
Y29udGVudC9tZWRpYS1lbGVtZW50cy9wcmVsb2FkX3JlZmxlY3RzX25vbmVfYXV0b3BsYXktc3Rk
ZXJyLnR4dFVUCQADeztLV3s7S1d1eAsAAQT1AQAABBQAAACdzLEKwjAQgOG9T3GjLmIqDTaIS10c
AoKDgjjE9BoPwp0kqdK3t76C68/PZ90EdQtKmUabpgX8ZKU2qyjeRUjFJ3xJKsThprd6Xd9hd8DH
GPYGMnJvMWcX8ELl2bmCQdJkYMFjjMvK/i0TU/mR51kn4SMPYuB66sALM/oyt/l5u0h99QVQSwME
FAACAAgAIF+9SFJOtIzmAAAATAUAAHMAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvcmVhZHlTdGF0
ZV9kdXJpbmdfY2FucGxheS1zdGRlcnIudHh0VVQJAAN8O0tXfDtLV3V4CwABBPUBAAAEFAAAAO2S
QUsDQQyFz+6vyLFeZLfFqoN4cHtQcEEQURAP2Zl0OnRMykxW6b93VgQP3uxFaI+Bl++RvNfhFqYX
0DTm9MzUNdBHbprZSRSLEZLaRBtJGti/zM/n9fQVLhfUD/7KQCbtKGf0dCfeF8V1WVobKIuRXNX9
HayYtBVeBj8k1CD8FHTVytsm0jjdILtIyUCLdkUOCpuxL57Qo10Tu7yLOeljpnTLS1kEq+YX28Ck
OjreyYHd9+O+7kIlL2lbuDzE+F/Jh6z3J+sD+YccOOiIfCj00sexKwae71uwwkx27GjRvGMMrvoE
UEsDBBQAAgAIACFfvUjqv41F7gAAAAwGAAB6ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3JlYWR5
U3RhdGVfZHVyaW5nX2NhbnBsYXl0aHJvdWdoLXN0ZGVyci50eHRVVAkAA347S1d+O0tXdXgLAAEE
9QEAAAQUAAAA7ZSxTgMxDEBn+hUe6YIuh1ogQgxcByr1JCSEQEIMvpybRg1OlfiK+vfkEBsTXLvd
GMt+dl7k1HiA8gaU0rMrXSigz6TU5YUPBj1EMZF2IYpj+za/nhflO9wuqOnsnYZE3NaUElp6cbKp
UMiGeNBwzp3300n9b7JjJz3yKdNd4CWvg4bXxwpMYCYjOZZz9uhdO6BLIvkZfxWszRn3uWirIRd6
GgQWjFIFXjvbReyn/fYTPnae+tMDcuspaqjQbKiFAoixyT2hQbPNVtOwWz0nir2zhTOif7Hz+0zO
pqO3o3grT7YvI3kkH4P8l7/0C1BLAwQUAAIACAAiX71IP5XKxPEAAAAMBgAAdgAcAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9t
ZWRpYS1lbGVtZW50cy9yZWFkeVN0YXRlX2R1cmluZ19sb2FkZWRkYXRhLXN0ZGVyci50eHRVVAkA
A4A7S1eAO0tXdXgLAAEE9QEAAAQUAAAA7ZTBSgMxEIbP9inm2F7K7harhuLB7UHBBUGKgvQwm52m
oemkJLNK396seNLTWqGXPSbMfPPnC0mFRyhuIM/V5ZXKCqCPmOezqfMaHQTRgQ4+iGXzNr+eZ8Ua
FkuqW3OrIBI3FcWIhl6sbEsUMj4cFYy5dW4yqv5MtmylQz4nuvX8wBuv4PWpBO2ZSUvaSzXv6Gzz
Y8qsV375jv/ojUkVd6lppyA1OjoJLBik9Lyxpg3Ypf3y4/cHR93qHrlxFBSUqLfUQAbEWKeZUKPe
JavxtFOtIoXO2dJqUb/Y6X5GF5PB2xm89XkvA3kg/we5z1/6CVBLAwQUAAIACAAjX71I+MKIl+sA
AACkBAAAegAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mv
ZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9yZWFkeVN0YXRlX2R1cmluZ19sb2FkZWRt
ZXRhZGF0YS1zdGRlcnIudHh0VVQJAAOBO0tXgTtLV3V4CwABBPUBAAAEFAAAAO2TwUoDQQxAz/Yr
crQX2W1t1aH04Pag4IIgoiAesrPpdOg0KTNZpX/vrHjzpKsX8ZiQvGTekBoPMLmAsjSzM1OcAr2m
spyeBLEYIKqNtJeont3T/HxeTJ5hsaKmc0sDibitKSV09OB1U6GSk3gwcMxdCONR/W2yZ6898i7T
vfA1r8XA420FVpjJas7lmhcMvh0wJZF+rH8jzuWKy9y0NZAbAw0CK0athNfedRH7bd/9yG4fqI+u
kNtA0UCFdkMtFECMTZ4JDdpttpqGveo+UeydrbxV84md/2d0NP739iPeZr92L3+d/JUbfwNQSwME
FAACAAgAI1+9SL7rNJbxAAAADAYAAHMAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvcmVhZHlTdGF0
ZV9kdXJpbmdfcGxheWluZy1zdGRlcnIudHh0VVQJAAOCO0tXgjtLV3V4CwABBPUBAAAEFAAAAO2U
wUoDMRCGz/Yp5theym5LVw3iwe3BQhcEKQrSw2x2mobGSUlmlb69WfGkp7WClz0mzHzz5wtJhSeY
XUOeq8WlyhZA7zHP51PnNToIogMdfRDL5qW4KrLZFm6WVLfmVkEkbiqKEQ09WdmXKGR8OCkYc+vc
ZFT9mmzZSod8THTrecU7r+D5oQTtmUlL2ks1b+hs821K0Su/fMVfe2NSxV1qOihIjY7OAgsGKT3v
rGkDdmk//fjXo6NudY/cOAoKStR7aiADYqzTTKhRH5LVeN6pNpFC52xptagf7HQ/o4vJ4O0fvPV5
LwN5IP8Fuc9f+gFQSwMEFAACAAgAJF+9SMvxlJ+EAAAAwAAAAGwAHABpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxl
bWVudHMvcmVhZHlTdGF0ZV9pbml0aWFsLXN0ZGVyci50eHRVVAkAA4M7S1eDO0tXdXgLAAEE9QEA
AAQUAAAAncyxCsIwEIDhvU9xoy7SVGw1iEtdHAKCg4I4xPSMB+FOklTp2xtfwfXn5zN2gmYDSulV
p+sO8JOUWi6COBsgZhfxJTET+2u7buvmBts93ke/05CQB4MpWY9nys/eZvQSJw0zHkOYV+ZvmZjy
jzwVnYQP/BANl2MPTpjR5dLK87aBhuoLUEsDBBQAAgAIACRfvUgXD7QO2AAAAMICAACEABwAaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250
ZW50L21lZGlhLWVsZW1lbnRzL3NyY19yZWZsZWN0c19hdHRyaWJ1dGVfbm90X3NvdXJjZV9lbGVt
ZW50cy1zdGRlcnIudHh0VVQJAAOEO0tXhDtLV3V4CwABBPUBAAAEFAAAANWQP0/DMBDFdz7FjTCk
tkurpN4qKtSBAUVlqhhc+0Is/CfYFz4/h8KI2JBAt7yn90763Z2V0ttWy3a1k90zHE+nxx7fZqwE
g385Ek1f9uBdjxb9O/ZYp5wq3pkQLsa+aihL4GDkPrslh43cwDWWkgs0ar277W5gYP1Z0kKEbE0Y
cyXddVKKkWIQFaNJ5G0VGC/oHLrG5kSYSER03jQYMLKrYsj56vwzO9vDHKd7n0x46h/2iQ+ImXDv
HCNWDWYRoNbtSvIoXuMuzCX8CqTa/t8Hf8f+Nx78AVBLAwQKAAAAAAANX71IAAAAAAAAAAAAAAAA
VQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRk
ZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy90cmFjay9VVAkAA1o7S1eLPktXdXgLAAEE9QEAAAQU
AAAAUEsDBAoAAAAAAA1fvUgAAAAAAAAAAAAAAABjABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3Ry
YWNrL3RyYWNrLWVsZW1lbnQvVVQJAANaO0tXiz5LV3V4CwABBPUBAAAEFAAAAFBLAwQUAAIACAAN
X71I6c/qzrUAAACDAQAAggAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9z
ZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy90cmFjay90cmFjay1lbGVt
ZW50L3RyYWNrLWFwaS10ZXh0dHJhY2tzLXN0ZGVyci50eHRVVAkAA1o7S1daO0tXdXgLAAEE9QEA
AAQUAAAApdA9D4IwEAbgWX7FjboQgUi0MQ7CoImMxsE4HOUoDbUlbYnx31vi6GQY75L3uY8K35Du
IEnYJmdpDvRySZLFynBUYD23NBjrpRb3fJtn6QP2Z92aAwNlhAhtcB6td3EcR9XfVEn1KILlyFfk
HAq6fNVjCPUMQlBRMweeliuMbqUYLXpp9E36rjDPQdFUnVA3iiyDAnlHDayBNNZhJtTIe9KNm3fV
1ZGd/lVK7tmPzWAZLVbRB1BLAwQKAAAAAAAOX71IAAAAAAAAAAAAAAAAUQAcAGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC90aGUt
YXJlYS1lbGVtZW50L1VUCQADWztLV4s+S1d1eAsAAQT1AQAABBQAAABQSwMEFAACAAgADl+9SASa
0BGDAAAAwAAAAGsAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWFyZWEtZWxlbWVudC9hcmVhLXByb2Nlc3Npbmctc3Rk
ZXJyLnR4dFVUCQADWztLV1s7S1d1eAsAAQT1AQAABBQAAACdzLEKwjAQgOG9T3GjLkJaDBrEpS4O
AcFBQRxieqYH4U6SVOnbG1/B9efns26GdgtKmbU2rQb8ZKW6VRTvIqTiE74kFeJw0xvdtXfYHfAx
hb2BjDxYzNkFvFAZe1cwSJoNLHiKcdnYv2ViKj/yXHUSPvJTDFxPPXhhRl9qq8/bRRqaL1BLAwQK
AAAAAAAOX71IAAAAAAAAAAAAAAAAUgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC90aGUtYXVkaW8tZWxlbWVudC9VVAkAA1s7
S1eLPktXdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAA5fvUhLNlQi3QAAANACAABuABwAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50
L3RoZS1hdWRpby1lbGVtZW50L2F1ZGlvX2NvbnN0cnVjdG9yLXN0ZGVyci50eHRVVAkAA1s7S1db
O0tXdXgLAAEE9QEAAAQUAAAA1ZA9TwMxDIZ3foVHGI5c2gOu2Soq1IEBncpUMaSJy0U4yZEPfj8+
HTNMSCAvfu3X1mMfpVQ3t2p1d91v1i+wPxyeBnyvmAuc3eu+lOlL7pwd0KD7wAHzFEPGe0100uZN
QVoaFkb2s1r60LUdXGJKMUEjV5t1fwVnzmeTEoKi0TTGXFTft60YiyeR0etQnMkC/QmtRduYGAqG
IsqIja7WxQYJ/VwJleji+D0/y13104MLmp6Hx23gI3wsuLWWMbMCvSQgeUPLIXmMvVAT/R5o978e
nZP5Cf9P/Hnm/ARQSwMECgAAAAAAJl+9SAAAAAAAAAAAAAAAACoAHABpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9VVAkAA4c7S1eLPktXdXgLAAEE9QEAAAQUAAAAUEsD
BBQAAgAIABFfvUjCF/UVogAAAE8CAABGABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvaWRiZmFjdG9yeV9vcGVuMTEtc3RkZXJyLnR4dFVUCQADYjtLV2I7S1d1eAsA
AQT1AQAABBQAAADtj7EKwjAURfd+xRvbxYCIlGzadhAVsQU7Spq8IZD2hfSl+PnW0skvcHC8cM7l
3qqub7WEAzP2noEJlJnUoBEUaOq9Q0YDOoaRQiIe5GKPoygVK1G1jWixO1sWDcWg8ZMKCiiuZKKb
MTsYfKExnRgxTBhEc79YxlN5LJbCjfY+3eZ5BhI6IgdrgZQz0iyKlF+OlOvANNqB97snZ0n1P/Ej
J95QSwMEFAACAAgAEl+9SLxxbNWZAAAAxQAAAEMAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9pZGJpbmRleF9jb3VudC1zdGRlcnIudHh0VVQJAANkO0tXZDtLV3V4
CwABBPUBAAAEFAAAAF2OsQrCMBRF937FG9vFgIiUbNp2EBWxATtKmrwhkPaF9KX4+dbSyfHCOYfb
tO2jlXBixiEwMIG2sx4NggZDQ/DIaMGkOFHMxIt8GnAStWYtmk6JDvurY6EoRYO/VVFEcSeb/IK5
0eIHre3FhHHGKNTz5hgv9blagzsTQr4vywIk9EQetoCUC6JWRco/R8rtYJ7cyMfDm4vsC1BLAwQU
AAIACAASX71IvHFs1ZkAAADFAAAARAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
SW5kZXhlZERCL2lkYmluZGV4X2NvdW50Mi1zdGRlcnIudHh0VVQJAANjO0tXYztLV3V4CwABBPUB
AAAEFAAAAF2OsQrCMBRF937FG9vFgIiUbNp2EBWxATtKmrwhkPaF9KX4+dbSyfHCOYfbtO2jlXBi
xiEwMIG2sx4NggZDQ/DIaMGkOFHMxIt8GnAStWYtmk6JDvurY6EoRYO/VVFEcSeb/IK50eIHre3F
hHHGKNTz5hgv9blagzsTQr4vywIk9EQetoCUC6JWRco/R8rtYJ7cyMfDm4vsC1BLAwQUAAIACAAS
X71IvHFs1ZkAAADFAAAARAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkYmluZGV4X2NvdW50My1zdGRlcnIudHh0VVQJAANkO0tXZDtLV3V4CwABBPUBAAAEFAAA
AF2OsQrCMBRF937FG9vFgIiUbNp2EBWxATtKmrwhkPaF9KX4+dbSyfHCOYfbtO2jlXBixiEwMIG2
sx4NggZDQ/DIaMGkOFHMxIt8GnAStWYtmk6JDvurY6EoRYO/VVFEcSeb/IK50eIHre3FhHHGKNTz
5hgv9blagzsTQr4vywIk9EQetoCUC6JWRco/R8rtYJ7cyMfDm4vsC1BLAwQUAAIACAAXX71IvHFs
1ZkAAADFAAAASQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
Ym9iamVjdHN0b3JlX2NvdW50LXN0ZGVyci50eHRVVAkAA247S1duO0tXdXgLAAEE9QEAAAQUAAAA
XY6xCsIwFEX3fsUb28WAiJRs2nYQFbEBO0qavCGQ9oX0pfj51tLJ8cI5h9u07aOVcGLGITAwgbaz
Hg2CBkND8MhowaQ4UczEi3wacBK1Zi2aTokO+6tjoShFg79VUURxJ5v8grnR4get7cWEccYo1PPm
GC/1uVqDOxNCvi/LAiT0RB62gJQLolZFyj9Hyu1gntzIx8Obi+wLUEsDBBQAAgAIABdfvUi8cWzV
mQAAAMUAAABKABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
b2JqZWN0c3RvcmVfY291bnQyLXN0ZGVyci50eHRVVAkAA247S1duO0tXdXgLAAEE9QEAAAQUAAAA
XY6xCsIwFEX3fsUb28WAiJRs2nYQFbEBO0qavCGQ9oX0pfj51tLJ8cI5h9u07aOVcGLGITAwgbaz
Hg2CBkND8MhowaQ4UczEi3wacBK1Zi2aTokO+6tjoShFg79VUURxJ5v8grnR4get7cWEccYo1PPm
GC/1uVqDOxNCvi/LAiT0RB62gJQLolZFyj9Hyu1gntzIx8Obi+wLUEsDBBQAAgAIABdfvUgEiukD
nwAAAIoBAABKABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
b2JqZWN0c3RvcmVfY291bnQzLXN0ZGVyci50eHRVVAkAA247S1duO0tXdXgLAAEE9QEAAAQUAAAA
3Y+xCsIwFEX3fsUb7WJAREo2bTuIitiAHSVN3hBI+0L6Uvx8a+nkJzheOPdwb90090bCkRn7wMAE
2k56MAgaDPXBI6MFk+JIMRNP8qnHUVSatahbJVrsLo6FohQNflNJEcWNbPIz5gaLb7S2EyPGCaNQ
j6tjPFenchFuTQibXVHkIKEj8rAKpJwRtVSk/OlIuQ7cJDfwYf/iPKv/4cQHUEsDBBQAAgAIABpf
vUi8cWzVmQAAAMUAAABLABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvaWRib2JqZWN0c3RvcmVfZGVsZXRlNS1zdGRlcnIudHh0VVQJAANzO0tXcztLV3V4CwABBPUB
AAAEFAAAAF2OsQrCMBRF937FG9vFgIiUbNp2EBWxATtKmrwhkPaF9KX4+dbSyfHCOYfbtO2jlXBi
xiEwMIG2sx4NggZDQ/DIaMGkOFHMxIt8GnAStWYtmk6JDvurY6EoRYO/VVFEcSeb/IK50eIHre3F
hHHGKNTz5hgv9blagzsTQr4vywIk9EQetoCUC6JWRco/R8rtYJ7cyMfDm4vsC1BLAwQUAAIACAAg
X71IvHFs1ZkAAADFAAAATgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkYnRyYW5zYWN0aW9uLW9uY29tcGxldGUtc3RkZXJyLnR4dFVUCQADeztLV3s7S1d1eAsA
AQT1AQAABBQAAABdjrEKwjAURfd+xRvbxYCIlGzadhAVsQE7Spq8IZD2hfSl+PnW0snxwjmH27Tt
o5VwYsYhMDCBtrMeDYIGQ0PwyGjBpDhRzMSLfBpwErVmLZpOiQ77q2OhKEWDv1VRRHEnm/yCudHi
B63txYRxxijU8+YYL/W5WoM7E0K+L8sCJPREHraAlAuiVkXKP0fK7WCe3MjHw5uL7AtQSwMEFAAC
AAgAJV+9SASK6QOfAAAAigEAAFgAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0lu
ZGV4ZWREQi90cmFuc2FjdGlvbi1jcmVhdGVfaW5fdmVyc2lvbmNoYW5nZS1zdGRlcnIudHh0VVQJ
AAOFO0tXhTtLV3V4CwABBPUBAAAEFAAAAN2PsQrCMBRF937FG+1iQERKNm07iIrYgB0lTd4QSPtC
+lL8fGvp5Cc4Xjj3cG/dNPdGwpEZ+8DABNpOejAIGgz1wSOjBZPiSDETT/Kpx1FUmrWoWyVa7C6O
haIUDX5TSRHFjWzyM+YGi2+0thMjxgmjUI+rYzxXp3IRbk0Im11R5CChI/KwCqScEbVUpPzpSLkO
3CQ38GH/4jyr/+HEB1BLAwQUAAIACAAmX71IvHFs1ZkAAADFAAAARgAcAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL3dyaXRlci1zdGFydmF0aW9uLXN0ZGVyci50eHRV
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
FAAAAA3IvQ6CMBAA4N2nuBfAUCg/smlYTJyUuBiHoz2wSWnJtcTUp5fty1fkos7yKitOIERXNZ0s
j2Uuod+W9U5OEw9M9KrbWhRdKZtWNm+4zs6zcTMo7yJ7O5iFRgwEgSKMCZQ15HaRwm3f8/OBy2rp
sk0TcW/CajHdMBHDFwOg1qQhekAIyakPe2d+xIc/UEsDBBQAAgAIAFlfvUgDxUl7wwAAACQDAAAo
ABwAbWVkaWEvc291cmNlcy1mYWxsYmFjay1jb2RlY3Mtc3RkZXJyLnR4dFVUCQAD6TtLV+k7S1d1
eAsAAQT1AQAABBQAAADtkbFuAjEMhmd4Co+wIK4FxEWIocdQJG5EDFUHX2JCRHBQ4hPi7QmIjY1T
t46W/H+f7L/GK3yUUBRqOleTEuiSiuJz5INGD1F0pHOI4tj+zObTcvILixU1rV0qSCQ1pYSWNsHa
vPGVQ0cFOejJ9Ov3wYJRqsB7Z9uI4gLvnByqcDp7uk/fyMZTVFChPpCBMRBjk53QoD4Sm9RFTrJN
FNe8DyunRb2wFQz6vWEnA5vn4x53oZAN8Zq53HrfjfzfyF80cgNQSwMEFAACAAgAWV+9SHO+9zyL
AAAAgAEAADAAHABtZWRpYS9zdmctYXMtaW1hZ2Utd2l0aC1tZWRpYS1ibG9ja2VkLXN0ZGVyci50
eHRVVAkAA+o7S1fqO0tXdXgLAAEE9QEAAAQUAAAA802sVDCyVDA0tDK1sDI1UEgtLzY0NNbLyU9O
zFEoKkkuSi3ILyrJzEuPNrMwtTSJVbBxSU0qTbezUihOzUvxTS0uTkxPDc8syXBOLElNzy+qtFLQ
yCvNydHk8iXb5My8zBKQkcFA0zPz8zzz0vKtFCICnBWS8/PyUpNLgGJANWWJOZkpFNgyONwPAFBL
AwQUAAIACABbX71Iz04p0pAAAAC9AAAAIQAcAG1lZGlhL3Vuc3VwcG9ydGVkLXJ0c3Atc3RkZXJy
LnR4dFVUCQAD7TtLV+07S1d1eAsAAQT1AQAABBQAAABtjkEOgjAUBfee4l9AUKIu2FYREkkIwgGa
9kWbYD+2vyTeXl25cTWzmMXkV07BQGlzR644oIV1+mfr7f5QZMVuk3eBheU1I+aVu9XD0H2pJgcv
tfZ2glUpCj/G/vJpF2cRMkPmb6ACtKBHnNlHHJ2RisMZ0uOZEKUkxWmy5FnIsF8QhMahIWFqm/ZE
342SVm9QSwMEFAACAAgAa1+9SGR3tMTlAAAAoQEAADYAHABtZWRpYS92aWRlby1jb250cm9scy1z
aG93LW9uLWtiLW9yLWF4LWV2ZW50LWFjdHVhbC50eHRVVAkAAwk8S1cJPEtXdXgLAAEE9QEAAAQU
AAAAdVC7asMwFN31FYfMRtB2y2YKhUChBYd21uMGiSi6RbpO6r+v7LqkixcNOs97jiFWCFWpe/Wg
cchRoklp6iDMyZqChl9jjTZRh90Q+IZnzlI41R3sKMJ5pmQWrR41+pNQgQRqIk8Mt3JxMp7Ao3Qz
OMGZDEuozS/jFijjg6Ojt2tTc4HBmSbLpniMtX25FN25Lr4xr3U22mj1pPE5O95btIJfphn5Jf1e
ypLjC/3dB5P9gm+fGaL31CLUez8Mv89Lf3jd47iuVSWmBFN4bF5mGePCLbldrrdFgcfk5w1B37HK
P6L6AVBLAwQUAAIACABrX71Ik7D3u8IAAACIAQAANAAcAG1lZGlhL3ZpZGVvLWNvbnRyb2xzLXNo
b3ctb24ta2Itb3ItYXgtZXZlbnQtZGlmZi50eHRVVAkAAwk8S1cJPEtXdXgLAAEE9QEAAAQUAAAA
vY6xTgNBDET7+wr3i7NQ0FBdUEBCUCAdIrXv1iQrfGu09obj70FRCsIH0LypZt4gIsRXlTazxQ05
xbvtELc8PmY/xW3LkuKGx7aLQl/aHJ3NsbI1cYszp0zxkBMrTlq8qhjaXj9RC76PqBVpQT5wceTl
gyfntPLFuxDCf7pp8kZyNPc94PXF1SWEI/u+gw6e18NwYrhfPzzdwIuqjFTBPIsAVW0lAb05V5i1
Gf/cWZ318Bf/buy1SYKiDrxk87MedN9QSwMEFAACAAgAa1+9SBwqpJfBAAAAYQEAADgAHABtZWRp
YS92aWRlby1jb250cm9scy1zaG93LW9uLWtiLW9yLWF4LWV2ZW50LWV4cGVjdGVkLnR4dFVUCQAD
CTxLVwk8S1d1eAsAAQT1AQAABBQAAACNj71qAzEQhHs9xeD6EDjp3BlXqRK4ENf6WaPFsjZIezb3
9tEdDq4MbrbY2Z355jtxg1LTtjNbi4/Cyi7neYCKZO8qun7lxj7TgM2Y5IaDFK2S2wZ+UpWynBRR
a94s9ielCk3UnyIJwv0WJxcJMumwiDOCK/CE1v0KbokKfoQDfV77t1Q4nGn24mrE1PoqZA7ntvpy
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
AQT1AQAABBQAAABQSwMECgAAAAAANl+9SAAAAAAAAAAAAAAAAA0AHABwbGF0Zm9ybS9tYWMvVVQJ
AAOnO0tXiz5LV3V4CwABBPUBAAAEFAAAAFBLAwQKAAAAAAA2X71IAAAAAAAAAAAAAAAAEwAcAHBs
YXRmb3JtL21hYy9mb250cy9VVAkAA6c7S1eLPktXdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIADZf
vUiU3PvMrAAAABQDAAAwABwAcGxhdGZvcm0vbWFjL2ZvbnRzL2hhbi1kaXN1bmlmaWNhdGlvbi1z
dGRlcnIudHh0VVQJAAOnO0tXpztLV3V4CwABBPUBAAAEFAAAAO2PvQrCMBRGd58iow5tTOyPCg5a
FBzEQkeRck0uNRqbchuFvr2Kgz6AY7fzTec7ByHmcTqPRCiT2ZEZjzdou1qVBfqcXIPkO9aaqgZr
UTMkWgRCptOYDa8bU62gxf3pgsqviRyV2/oB1mjwqEdsaH4XeMYLdyeFGagz8swR7lAb+FIg4kSG
Mhrzl9o73zXY8txCh8Rfsg+Vy/e/UDFramRSziaDQx/RR/wv4glQSwMECgAAAAAAOV+9SAAAAAAA
AAAAAAAAAAgAHABwbHVnaW5zL1VUCQADrTtLV4s+S1d1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA
OV+9SHxQtpquAAAA8QAAAC8AHABwbHVnaW5zL21vdXNlLWNsaWNrLWlmcmFtZS10by1wbHVnaW4t
c3RkZXJyLnR4dFVUCQADrTtLV607S1d1eAsAAQT1AQAABBQAAABNj0sLwjAQhO/+ij2qqIGeJFct
CCJCKva8JmsbSLIlD/37PlrE48w3AzO1UmclobcZEBQFQ7G1pqMMT5t7Lh9bc4yUBg7Ghg5GvAJP
GNKb3iN6ApugR3dfaw4px6IzmZm4siuekthjRlG3jWjpdrRZNFyipo/acSQxYEfCoxb1g0I+YDCO
4gn1xvt5VW0XIOHG7GDKS/mfk3LAlE5cEu35Gb7owuPI+a8xfVouZi9QSwMEFAACAAgA9l69SLDM
bxRnAgAAohUAABoAHABweXdlYnNvY2tldC53cy5sb2ctZXJyLnR4dFVUCQADMDtLV1k6S1d1eAsA
AQT1AQAABBQAAADtmFtP2zAUgN/7K454odVC3FxL87ZL2aZNbGoRPFSV5SQn1KobZ7ZLl/36uaGM
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
/wGpbWV3aj0JBjPel9nisAspiwRz9FCZX+xCBAHJQMuh7LAL8SAdl+oIexCRqVdpu3NpJXuNsCZr
PhaZVlt5NdRgrp3zw7flOC0Wv64TtpQviMpCEo+varZWL5XjhcvFV1V0HCxbjD/5qmq6HK1rVwAq
2rVVcmRd+aqZYPrlMXQJhIiJZjmq1pdASAcxfhmbMstYiEx20El71esk2vEy4WFv5VknbuK2Tcmt
XgijDP9h1ZLHrlYFyy6AqNjyWnQGpD2IhrCXLOkAoGLLa7avDuxAtOWhLRZ6hxdYEPcAzb0COKV8
CYR0F9AlbzkRJkBwXDJRIZHIVRKwfSslwoqNkiNbdYKXSuyYHZf7+teNsLwTcoDFfrJxeSskIItN
fePyvr5c2Dx0REBxOJKJKptfxeetqo547aQIoVZVR3x6WownX6uqI16Lnnyt6sGIXgpGaFUNh2gx
IKNVNaKTnjYTKdaqGtHROZ4yCta5MJEfGw78UOu4WSOLEpg8CSU/o/q25ilMamI9Im/zKcvqavWm
LFBrIZOiSioWiDVwKO/awg5ECJlWSu696k1boPZ1GnE9nm5bwGHJS1p9sFat3hvct13fdwg9Fe67
nqDXmmW+0Pxt1zP0nOdnaSQIlZyltpFypuopfq2CHRQMvXqKXqu52fEZBxIWXV/dQSXzzHUAYcy7
mSubMn8x824l/czIsUzW179/nM//57ifp/lZVfOFOfTHUY+2uQveqpo/zpmlR69bQZC9ig59YYtS
coAgeNOiBpF8gpqcsisIsm/UgVfR0LAyXYIgnQK8q8spnXAKCZO24JecCyY52ghleKWUDCPrUdDK
DXjluHu95lQh17DAqHS1TMB5qbjD6mqhgoPykm6VNW91tVzD5UoH0gDWO6iUa7h+DsCWdiAeIVc6
pKCRL+1BOkTbbMCCeAi3OgTqIm2B06yjlW0dV1rClWnr9JILokpFDqatEwygqhBnbKvXZYHiCql9
bRXXFut7CrLVtFWitVjSpAp5qW2VZJwBEJhUOhJNU7jzsmipuwGgxXcBZ7ZugEN354Kib+ueDGiy
Tu0ajCruQQKBPYbnFfoAQMSCZnuEwykkCEZMNLR1pxKOXBi3MJcMskJizTLW1M78X2vRUJALuqp6
WTcfxbZw2FSVT9tKyqeuqo7WS8UZuqr4WVNfL37f1vcv4q+vrxf33636K+EtO84TwoUFXT3bv5Gz
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
Yi9pbmRleC1iYXNpY3Mtd29ya2Vycy1zdGRlcnIudHh0VVQJAAM/PEtXPzxLV3V4CwABBPUBAAAE
FAAAAO2PsQrCMBRF937FG9vFgIiUbNp2EBWxBTtKmrwhkPaF9KX4+dbSyS9wcLxwzuXeqq5vtYQD
M/aegQmUmdSgERRo6r1DRgM6hpFCIh7kYo+jKBUrUbWNaLE7WxYNxaDxkwoKKK5kopsxOxh8oTGd
GDFMGERzv1jGU3kslsKN9j7d5nkGEjoiB2uBlDPSLIqUX46U68A02oH3uydnSfU/8SMn3lBLAwQU
AAIACAAJYL1ItgsM268AAAABCgAAKAAcAHN0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LWNvdW50LXN0
ZGVyci50eHRVVAkAA0E8S1dBPEtXdXgLAAEE9QEAAAQUAAAA7c/BCoJAEAbgu08xx7y0EBGyt1IP
UREp5DHW3TkI6sg6Kz1+Jp469QBzHPj/n/nyorgXGo7M2A0MTGDcZHqLYMBSN7TI6MAGP5KP1JPa
0OGoMsNG5VWpKqwvDauSgrf4vVLyqG7kQjvHmt7hG52r1Yh+Qq/Kx7VhPGendBnc2mHY7JIkBg01
UQvrgNZzpFwqWv90tF4f3ISm58P+xXGUC0IQghCEIAQhCEEI4m/EB1BLAwQUAAIACAAMYL1I/P1/
XqMAAAAUAwAALQAcAHN0b3JhZ2UvaW5kZXhlZGRiL2luZGV4LW11bHRpZW50cnktc3RkZXJyLnR4
dFVUCQADSDxLV0g8S1d1eAsAAQT1AQAABBQAAADtj7EKwjAURfd+xRvtYkBESjZtO4iK2IIdJU3e
EEj7QvpS/Hxr6eTs2PHCvYd7yqq6VxKOzNh5BiZQZlS9RlCgqfMOGQ3oGAYKiXiSix0OolCsRNnU
osH2YlnUFIPGb8opoLiRiW6q2d7gG41pxYBhxCDqx9UynotTPgO32vvNLstSkNASOVgAUk6Vep5I
+bORcjm4ibbnw/7FaVKuEqvE/yQ+UEsDBBQAAgAIAA1gvUi8cWzVmQAAAMUAAAAtABwAc3RvcmFn
ZS9pbmRleGVkZGIvaW5kZXgtcG9wdWxhdGlvbi1zdGRlcnIudHh0VVQJAANJPEtXSTxLV3V4CwAB
BPUBAAAEFAAAAF2OsQrCMBRF937FG9vFgIiUbNp2EBWxATtKmrwhkPaF9KX4+dbSyfHCOYfbtO2j
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
0rb1nqymj7NcBjzHuxj3lv5M07GYv8iLTOgT74+hOwrIlukbqHGRiJ9pk5B6z/kjreN9y7Wxqec1
/zTH0YZ1oa37vkLZGef7HryhYQ/lJ2oFLwerlgMSmQZujBgOvOMb+o8R3U5DLM4KxqXK9l65VZ9/
FTpDc3DhnIG2Y558y5yqd8mL5hKUbV/LfMgyNP101E+bK3WZD13kMXGbON0mTreJ023idJs43SZO
1z9xUnbAdjoM6NQB2yY8qQM+24jpB22hj63M0yZIt/HLVY9fzs/UXZvRj8T6Mr+a0bziVzMdCU86
Bm//zK1ZFnFCd0W98J1ztspdr9DQ4SFu1aFu6524lWnoZvcTnOm83bb5LHT+A1BLAwQUAAIACAAR
YL1IeVFwyK8EAADEKAAATAAcAHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tcGVuZGluZy12
ZXJzaW9uLWNoYW5nZXMtc2FtZS1wcml2YXRlLXN0ZGVyci50eHRVVAkAA1I8S1dSPEtXdXgLAAEE
9QEAAAQUAAAA7VrBcqM4EL37lE/QEVdtqoQAg31LyKQ2h11PbTJ7l0HEVLDkESTZXPbbVxgbC5CE
7bEnni0fkirjbnXr8fqp1eWHu9tHwt8In0zYktC727/I91eSFyGmEckyEg8efpbFPY4Kxj8mk5hk
pCB3uMAznBNwDa7Kr0NGKYmKlNEntllMbWn49htNRWBhs3k6mXQeWUNgwX/8JEm8OEDYdeBQeFoL
nNIhUCwwxzTOyN0qWL/Z+vN0STguN5OLvJ7mhBOAxZ/tjYLAdVAAgcApTunzYL+lvrLlksQAU8A2
j38DlL2DwhSjL+vwlXNCizqSwUGYJIwv1h4VKrXf6h1Y8UzpWb2uWxy9iJQeBRVMaMZpfNe1l15+
lLGcdBxVaP7bw4BxglYM0HFwk0kdQxhOZZZPJnxNd7ZYlpaxwoTR5iqPr1FE8lykcg2iCkwg4uUl
imkObBf6juuPEHJsCINywXqpOM2XuIjmX95KJwF5YzeuDYeNcisrUre5VbVKBQSsbWB75DijYae2
DUj3lpq7AlrhKa+8zfNY1TYenb7apBgnq7aSUttak5F1BIW1hVeCK5dR6WnbiRMEnle6mYpw2vI9
ziuxHdf9RLjGs8C477zAvPi7KsZQJPFMnjimOa5I2XHYElbIEie4IDrfVYldS8WN/CAItC9uRp5T
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
FMgOBLi56OKy8ToInSeocuRi0hMd5DzhV4EUyEhdtAgcVgesMFK1RmWZNi7qVbyhq0adaGO/LnEa
B7M8CxocQ8PqWnEdAtL33aKHhWTx7t+LKjLmG5vsTL2cd0m6mGpyIOUoHFoVRd8+IFqx1WH7pdyV
FZ14fxgaeSpWdar4Ul8LWlmKmbqmHxQ0P7qaeljYiItu9iM3cKLka7QLYlgwpjsn3sGOQzoR/IXi
ywk3G79Rarz4QTBN38uvm28QuPeu0RRfu2u0Pu4p4jIbZXOmprGyLnZR1nKZRBcNOXE3dZlylrvs
Id7oVMfypNQLAMUaam+ZvonqTF4YtOpMTghzte4JaAD7lyGVkcpPwqQTkhUCXDMEA8WWKUmFPydF
s+ldGysnvcS1t4SBLk55lNh5S2lIr7wY01ppmRsPz2lbqnfkYFbe3ZQPlRurqdqJ5tPayBi8dxWe
3IKPTcI3JG/HjpvwNkf8aP1bEp+Am8LO9f8mLToMQZt3x0McITttOo0/jzrVzzPTLzwzHQ8tTT/P
TM8z0/PM9DwzPc9MzzPTU89M6/WCZApwbkmcWxLnlsQJWxKf1TA4ClU6dwXy0prbFwCnVD0BFu7D
bf1kVU24s+8bdqiGoXcbdqhGNh7p2uL5YqoKflj+ztS1SMj90JN+6LD+f1BLAwQUAAIACABpX71I
Ss6ezdQAAADgAgAATgAcAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kZWxldGVkYXRhYmFzZS1u
dWxsLW5hbWUtZXhjZXB0aW9uLXByaXZhdGUtc3RkZXJyLnR4dFVUCQADBTxLVwU8S1d1eAsAAQT1
AQAABBQAAADl0b0OgjAQB/CdyUdgbAeTgnwIm0BImEwUH6CWI2mEqxYkTj674CIR1Adwvdz97p+7
LIn2oDvQYVjwlh95A7FCBNFKhXGlGijMpWk5zF85fuCsmR14zDigvFwhS6JkMhOG4m0+1aqOKwnY
9tLiXbNsg9RcIjUn6E+KjCXb9agxY0js1Am2Z9B8gDZY5Jpjw59sLmvQhBrZ6wzqDJhEO+idpo05
CqgqKObk+c4h2d95n1+ovhw+lbrfNMoihi9PkLks90mNUJOwm1+WpVv6q8ASjPbBHlBLAwQUAAIA
CABpX71InZ/Df08BAACdAwAASAAcAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kZWxldGVkYXRh
YmFzZS1yZXF1ZXN0LWV2ZW50LXByaXZhdGUtc3RkZXJyLnR4dFVUCQADBTxLVwU8S1d1eAsAAQT1
AQAABBQAAACVUkFuwjAQvHPqE3xMpCI54BLIMUkrcWpV6AOMvSlWwzq1DW0vfXsdAhGIENRDpGQz
Mzs7u/M8feLCafOTJBJKcJBzx1fcAhmSu8E8TzONCMIpjUu9ALMDcw3Z8/cN1ecWPOZYTZKLUhCS
gH7HRVE8FPGYszENPTPYcIUh6RBYc5Ql5Ptmt2GH7+cKDK+Hsd7Xcg0GCPdPNKERi9gkHpEKUCp8
H/xP6kVXFUjCkehj+Z6g/iKur8ct19nWGEDXduoheEihzebAaFJpefsdBHLVyWzWlXLx4S0t/Cn0
pSmVzC/xJ8sXpbZwQexK8/fGBcyK0f4Crt3g0UnbwwP9xJinr+B1rUsS07xkelPVSNkB0XiustgK
AdZ6K0MimjCJ72frFJUlEaPxmMUzNqUjRmkt2EpJZSvuxPpxV5N85GfTsIiG12bRp54yjgLK0rv9
A1BLAwQUAAIACABpX71Iqrz7WooBAABCBAAAQAAcAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9k
ZWxldGVkYXRhYmFzZS1yZXF1ZXN0LWV2ZW50LXN0ZGVyci50eHRVVAkAAwY8S1cGPEtXdXgLAAEE
9QEAAAQUAAAAlVTLbsIwELxz4hP2BkhFSiAlxUcIlZAq0Rb6AcbegEWwU9vQ9tJv7wYIAhFAPeTg
9czO7MMZJ4Mp2i1axkyOOhm84+cGnR9yLTDLUNbGyeCZC2/sD2MSM/SYcM/n3CG0oV5cD43WKLwy
embKZNXIG7cfWpEwYcooYxehZguawXecpuljGnd51A1axGyuudItqEiw5FpmmOzE7sMO50mOlhfF
OPI1W6JF4PSFvSCMwqgXd4D6JJVe1P6X6tXkOUrgGkwZfgBtvsDf0rjnerixFrU/Kt0gECQ1dn1g
7Lty5O1m0JTzSuZ+XAMuVmRpSquAtenbi/IF6jTK2AL9xI4cETPllmWGsU4NCchy3vVr9Esh2IXo
BKnKEBr1BpBZqdzqRqVSyeTS8sn+icw4vCBWDfT3zhL2085uCa89g9LJUYOAk9OHxpg9vDizzguk
rIAYfZ5luhECnSMrbRD7eQLpuWKQykEYBXE3ivvRU9CJgqBIeExFrcu5F8vRtiDR1M+qicKgda2W
K/+HP1BLAwQUAAIACABpX71IYDb0MlYAAACZAAAAQgAcAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVy
bi9kZWxldGVkYXRhYmFzZS1yZXF1ZXN0LXByaXZhdGUtc3RkZXJyLnR4dFVUCQADBjxLVwY8S1d1
eAsAAQT1AQAABBQAAADzdHEKTi0qSy2yssovSM1zcQpKLSxNLS5xTsxLTs3JSU3h8nRxcktMLskv
qrSySknNSS1JdUksSUxKLE5V0FUQAEk75+flpSaXZObnheTDDCNeJQ5rAVBLAwQUAAIACABpX71I
DjkXcg4BAAAhAwAAOgAcAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kZWxldGVkYXRhYmFzZS1y
ZXF1ZXN0LXN0ZGVyci50eHRVVAkAAwY8S1cGPEtXdXgLAAEE9QEAAAQUAAAAlVJLT4QwEL5z8if0
CIkm4OJiOEJjwknjrj9gtp26RHaKpevj4m+3sg9NKBAPHJh+r3wzFS9WaN7Q5LnEBi1ysLCBDtkV
uwieqH7dY8WL0zTPB6MwYmH8kSmlblS2gHQRR44Z7qCmiHkEtkCyQd6bzcOO//ctGrC1ps7lWm/R
IAP3Jcs4SZN0mV2zFknW9Bz8T+pBty1KBsT0aXzJSL8zO+Uxl7rcG4Nkz04TBAdR2uyOjEMrZ16/
g+p3Qy4j8eIRnUhnSyCBTYMyCOXGq31YaAHixYVeWW3Q145ftLcejy1ryYfqf6KKRnc4IPr8v2Yu
6haxvygHuAPhfD69p+qeS02E4qe4tZ446hHkSLnfUEsDBBQAAgAIAGlfvUjt664fGQcAAMo3AAA5
ABwAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RlbGV0ZWluZGV4LTEtcHJpdmF0ZS1zdGRlcnIu
dHh0VVQJAAMGPEtXBjxLV3V4CwABBPUBAAAEFAAAAO1bS3PbNhC+++SfgFukmXqGomiJ1k2WYlfT
NnJjJz1TJCSzpkCVpKz40t/eBZ8A8SDpyK3T0cEzJrCLBXa/feChxfz6HkfPOJpMPBzgBM+dxFk5
MUYX6PzsC/H/2uPF/LponUyEpl4f9Yxv4/V6fbkeDx1raPSBs7d1fNJHkgEeHeIFeJ4KaybLv5c7
HDmJH5IY5vXwiCOMHPgbjIyBNbBGYxPtMPF8sjnrNtRduNthDzkEhUXzT4iEB5ToZDTNeraPIkyS
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
+Q9QSwMEFAACAAgAbl+9SHfyhUWXCwAAzMkFAEEAHABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4v
aWRia2V5LWFycmF5LWVxdWFsaXR5LXByaXZhdGUtc3RkZXJyLnR4dFVUCQADEDxLVxA8S1d1eAsA
AQT1AQAABBQAAADt3U1T20geB+A7Jz6CjlC1qfKLsA23iZlUcdghNWTmLqwm0caWWNkJk8t+9pVf
sGVsGZgktXt4Dhyw+tfd6n667dv/6vLtTSi/hvLiorgP+eXb38O/v4TpbJjkozAeh/TojzyrPrm6
fHuZzJLbZBqaWkZvouOjq01/6ar9sMjzMJplRT4cF9NFu3bc6nfj/nk8aHXOe63dMTaZi4vRk/y7
spgMx1nIZ/MRn/bW7hydTJIsP432TPyZrk7qPXXOeqf7Xj7Lvxafw/V9KJN5R7/k6YcyyafJotsP
2SSUJ6f1Zfghy9r8SsWBibzLymqk2lxG87fe6WTfXP6z89nJaXTS+qt/d3d3dtfvnrdHrdPlfr+r
RizKb9WGh3GYhcf2jxw2W/mhWNPY2/LA0z0zfGaCSdxdTLB55T4leToOl4vBnm+2+n+979NqXh8+
hTJESfXX7rXacTvu9TtRtYlpln88el1X74v7+2qvkzxab+g/orx4iGaHxnhu1sMvZVnhXo90IFA1
uSvKySqxXJV1bmkwvd2bXG7X22T0uZrSTUXh0GqmWXq52/7nEL3rPBLda/BxJusxqobX9SN4cVGu
zmIxuZ+3TPc0KfLtXm6+jEZhOq2m8iYaLRczqsabzlcxm27dVXGrNe9w3VWaTe+T2ejTr1/XF1Lt
beJ263TruM2vi6aXW1wltQNUu9r6g36/M9i9og6s9LNHLV4sdNOVtnOn/6jTNhj8/NNWG+OnnbY5
qc1Zq69styLcePDmi1s/RvNku4LVDWdn89ihQ3j9JPtjtqTT7/b+h8t1fjs4+N7TWVLO/lwexmE1
iY+h9o35zI+QMiSz0JR9+kOkf37eGbQaN+42fMzyWvxqeyv+7o+Of4ZJdTFUuXpvu6N914+JH8Kk
1Rq01kyar+fr+rX0sst5M53aP9UMhvPtq0aLHn+UVvv1kM0+ra/m+r3cjuNo80sxiuNeKx6cd5a3
9Qs1Lb93ah8sZvSEzN6vkz/uP5ZJGn4LIQ3pS75Gut1edXmFhz2f/42vl9qP5QX569t/VeuwvF/e
RCfH0fHpzpvttFy82Obf6gB/mV2Xv6TpTnS1ie9rzwUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUF
BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUF
BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFvzO49XxdrHFTnnGrot9Zp/WCUn3X+bLiYlMdxr21
/Zof7hSGfKZQ4IFa3bttG8ppPlYH3Qk0FMTcV9gwSefFKKPrm8fCkFeX0dlZq9sedLqDeNVTvZut
96rSv4WHWo/rapyHIr/+lU3nRSl3p7wF5KHMZvXszbzu5MFSnGmWvm9ak1duUHQySsbj2+otTg8X
SK3GHO6j0lDbc2/bransa1TH+v1n4fHkPXcE6id057PD67ludqC27brJYd7re6BB9efwbQFqepW/
4Awsi3b/Pq9aus/cyx6HUVE2zqcCvtVgq4PNw5cofv+6xa6bbRbYeK/WntVl1Eq0rmp8v6a6an+P
P2ihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpo
oYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGF
FlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZa
aKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmih
hRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUW
WmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpo
oYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGF
FlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZa
aKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmih
hRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUW
WmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpo
oYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGF
FlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZa
aKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmih
hRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUW
WmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpo
oYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGF
FlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZa
aKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmih
hRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUW
WmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpo
oYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGF
FlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZa
aKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmih
hRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUW
WmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpo
oYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGF
FlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZa
aKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmihhRZaaKGFFlpooYUWWmih
hRZaaKGFFlpooYUWWmihhRZaaKGFFtr/J7SjYjLJZkdbK/WQjcfDxee1ptFx08tX4+brmQ+TfBTG
45BudzmdFffVW7TjVr8b96v5n7f77c52m9G4mIYnjXq9eLvRJPl2G4bzllerxXyaaPcad2nVy+bZ
oqP09S+2tYSrdzs++i9QSwMEFAACAAgAcF+9SP48yzapDQAAt9sGADkAHABzdG9yYWdlL2luZGV4
ZWRkYi9tb2Rlcm4vaWRia2V5LWFycmF5LWVxdWFsaXR5LXN0ZGVyci50eHRVVAkAAxM8S1cTPEtX
dXgLAAEE9QEAAAQUAAAA7d1Nc9vWGYDRvVf6CdhFmolnSIqf3tmUPaOZtnJtJ3uIuJJQk4AK0nay
6W8v+A2KBCXFTtPFWWQSU3guQOAeyFm9lxdvPobiayhevcrvQ3bx5kP495cwnQ3jbBTG45C8+CVL
y08uL95cxLP4Op6GuiOjl9HJi8vtesnq+GGeZWE0S/NsOM6ni+Oa7UbvvN0btPuN1qDb2D/Htnn1
avSgf1fkk+E4DdlsfsaHqzVbL04ncZqdRQcu/JGlTqsrtTrdsyNLxdd5MftUxNk0Xiz48NvX3M3T
5PrgcvehuMmLyetDq/49TPLi9/LwN/Hoc5rdfpzlRd0VPO9pLVeuLltZb3WG07O6CyjKj7+Gq+t/
lbd08dG7vPg1FNP57b2Ls9uw+Dbzm7Kzank9RTz/z0/pJBTv0qK8mNPGb72bm5vOTe980Gk1zvai
UT6ZpLOrbHl7V1dUOXW53cI4zMKHMMqLZJ5vt9CnfP1QlqtUFj60UJwkq1WecJY/uPLeYzrwZY/u
4wdnqzzN+sv9ru8qFovFYrFYLBaLxWKxWCwWi8VisVgsFovFYrFYLBaLxWKxWCwWi8VisVgsFovF
YrFYLBaLxWKxWCwWi8VisVgsFovFYrFYLBaLxWKxWCwWi8VisVgsFovFYrFYLBaLxWKxWCwWi8Xi
vyb+VqSz6hTcd2mWTu/CYsjuu/Kj8vj1GdZzcNcjlw9N+j185JGfHpiyu/fR6Vl1UHHcPm+clWX9
mN67OEvG4WJxsscPW/35aj0eeVpe16e7UIQoLv9pdhvNdrPd7bWi+5AlaXb74nlLvc/v70MSxVm0
GcD8c5Tl36LZsXM8dtXDL0URstnmTEeC1YjrVbG8K5tu8QzqhmMvH1d1+PSR0yRp8v7IMO2P//xb
udH2ZlnfhtlV8XZaLjIut916tcvsJi+r9STzw9skzb7mn7ff5HWWVM65mHF9emyQeH4kXAzH/jE7
p9HoNzZPteYm7N/naPFR+afoJh2H6KeTn6LyPibp9PPxJ3Cx/8Sqw7Lnw9f3wkP39j+PGBzctBYG
694C6yvZnKM88Ko6D30+xXw5GD2f3M+PTA4ckme7q3z8MhqF6bS8lJfRaLmdo6/LwedROt2ZR99u
NOYLbpYqb919PBvdvf26GTpf+TblYzrbeeHNZ7fXfbnFXPfKK6wyvr7X7/Va/bO9efRH7vSjL7v2
4kbXzZdf/Wl7nT/qfdfv//nvu8o5/rT33XxLbd921Tt7Pp93X/fqm9/cHZBl2Wz3Rv1Gp1Nm3/k2
O2r46sGpf8wTbfXOu3/h3R5c9xvH3sblPStmvy4tD8uLuK3+nWR/B273e/lWK0I8C3XtQujL7buh
Nxi0+o3a534dbtOskl/uPoo/+muoZr88PNvRv1ktd8Yz36jb66z8oTzNcH7T5r9ftrsy+pbO7jbv
0+rLtNluR6PNJUXtdrfR7g9ay1fsE5/h8otVPlhc0YHvvvc74Jf72yJOwj9CSELylHf/+Xm3fOOE
bwc+/z/7+8Dzf0Ntz7nc9pW/y5fN6Ul0crZ3n/eOXNzm6v8E3H8p31uvk2QvXW2p95WfC4VCoVAo
FAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgU
CoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQ+J3hzs838wS3EwR3Jvp1Wo0njOq7ypbz
H+umQh6c7Vf/w73ZhY8MCqwfeXjg2JqRmusJoXtBzVDMQ4MN42Q+LzG6+rgeU3l5EXXag0Gr02/M
p3k+YSr18HtvRnQ6isfj6/Jaz44PJC3POTz0WGqmeh48dudSDh1U3Rjfv+/Wu/yx7VbVsPfZ8fu5
OezILNnNIce30sZczQ76HH5/+1s6nU0vs91tVP4gOvk5yhcfRtPFp8tt1OmW2+joeO4P84Gm5RrF
4t81q3Qa7UdWCaO8SI5eSrvdrV2kdPCEFTrN1tNMvH/eo6sKqN/PtW/Eys+q+6wy6nU14Ps5c1F7
B3YzAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCA
AAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAAC
CCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg
gAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAA
AggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAII
IIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCA
AAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAAC
CCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg
gAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAA
AggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAII
IIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCA
AAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAAC
CCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg
gAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAA
AggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAII
IIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCA
AAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAAC
CCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg
gAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAA
AggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAII
IIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCA
AAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAAC
CCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg
gAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAA
AggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAII
IIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCA
AAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAAC
CCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg
gAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAA
AggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAII
IIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCA
AAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAAC
CCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg8L8iMMonk3T2YudOfUvH
4+Hi88qh0cnuQeWdvy+vq9lu9M7bvfKKBs1es7V7zGicT8ODg7rlY945aBL/fh2G8yMvV7fnYdHs
1t731Srbny0W2n8Iq6s9qVuovHfZ5u4P42wUxuPlMs84+r9QSwMEFAACAAgAcF+9SPzxIw7xBgAA
Y3EAAEIAHABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtY2xlYXItMS1w
cml2YXRlLXN0ZGVyci50eHRVVAkAAxM8S1cTPEtXdXgLAAEE9QEAAAQUAAAA7Z1Lc5tIEIDvPvkn
cJSqNlWAsEC+2VLsVWXX8sbO3hGMZDYItMPIji/57TsDAg3MA2HLG8XpQ6qC6J7n190zmh55Orm8
Q/gR4fPz0Cf+3M/QOE0SFJAoTcZxmqHQ+GBYjukOHHfkeKY9GponX5Lo3w2aTi4ngs75edDQv8Lp
ahxHKCG0pNNmaZZ90lv5UdI3hEJbi+rxJdlnw76mKH+eYnKP/STz8wJZASfTXe/TNUoml58R1cvI
2E8CFMcoPOmFc2lxa4QXKV5dyEqViMtLz6Xv/vojIkz60g++RsnyjqT45e3tVjeV46rIRbHP/nsf
rRC+ijCV65nf3MVicbZwB6Mz2+wLSkG6WkVklhQtY693NNynZXsLKU6R74z4UuiHpEotOI0C8+6q
5cMovO02o1HymH5Fs3LALpKQU8qHr6fDMdUo5uNeGx4Gv1CIrFXfhc96/doMWoHZLyb+itaY4mfa
dxQjgkr5kgvZHMolNW8lLWxpoO8M8gaqR+7BT8IYTfLK2sW2z9U8ZbRd9w8II8On/6yhaTmWM3Rt
gxpJSK3vpFtRt+l6TW3ET4xqQn8zkvTJILo62lo93mBMfVxVk0Zh64e2GsWoVHoF9AoPVkwX73T0
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
FIwvVJKxvkJYytKZUsnmSl5+8EM/fgHvKNlWJC60vI3Dj2Jv0SrV95O6MzDffc2oqAUipHG1QJAl
QquvJTI0/ZcRbsinlZ8UmeKS7+PdXda8whBUdddE4UzxzWBFhPIfWgYUoU0kUQrWoie0hC5FGTh5
E0K/voJG1NSmOIq5ASD8v9rxGojs3PkIJK+8/AVvgue8tt2tCODKBfIkJ7f6G3HhFpX0IdIQ/LzB
Hjoi+oCQPtlBI8G1J5rPs5PTq31bpSNv7iVcnhW2XxOGo5Qlffv1sYhVPmOat6hSumuvwc791i1v
be4aF277/o29BWobHzFqaw2DYipBxjiWo252FNOdkkDSKzxxQTk+df4rUD70k3cXA3XDRZvvFUvX
1pPzSXrZ0dAapjJc11fXVP466yO0c93h8bMeHrtDXnfI63oRGvL33Ymrz71nvjHviuPnKY7r4mTc
VK7W7BGaf6iO3EFO7gZGRp1rh8O8JKfWNYEK8F9RsIOHCP8Gb63A/njsFttdxFduJOqAfBQFpTx8
xslovAsInZDgnUt2NNKTIAqhu7Hvmq5L3dh3DVrXoF3gFj4m0bb6Q23DNszaL5SSf6DUhIZDqyq0
QW9LSP/0Ncs5oK5hDKWhlfyRTflnDv6PdPVt53u7Vg6cY/5/AFBLAwQUAAIACABzX71Ic3oGjGAG
AABcOAAASQAcAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJvYmplY3RzdG9yZS1wdXQtYW5k
LWNsZWFyLWZhaWx1cmVzLXN0ZGVyci50eHRVVAkAAxk8S1cZPEtXdXgLAAEE9QEAAAQUAAAA7Vvd
c6JIEH/Pk3/CvK1WJVWAKOhbopucVVdrLib3jjAqFxw8wGTzsn/7NZ8OzAcSzV72jodUSujpnun+
9a97BphNbxY4eMHBeOxYkbW0QjzxCcF25Ppk4vkhdtAVUnXF6OvGSDcVbTRULp6I+/cez6Y3U2bM
eGxXxt8G/nbiuZhEoKlT1aZqF92t5ZIeYpTWqurSmrTBsHfB0eGSF/8Zz3c4sGJF18R5DCwSWona
R3eLg27vYnZwg7/DZHrzgEFPGE0sYmPPww5PM18yntnZ9Yld5EsWdusGYEk8dmMRx8P578JFIZh8
3OAAIwv+1KGi6qqimAqC+TkuWceruwUzfvAGqMEejgod+eIPeHj0C3xxJSV3OTNmLnV7qKt8N1ar
1WBl9C29r/Sk7sqWnBg7j2f0oaEVnmmm6t7f7SDAFkFFFC8R8V9RJLNRN+vJPgggQwpLkgEgsvKD
bTYi9UoxLgWes+SOTMN1Y9nPMKUFQAFfLP743Y1iKfrqeLzG0Tz4GsJAzw03uYYZWflgIOccsCQY
zhpCySX4hVauh9GXzhcEk3Xc8FmyUsd1puyUKfzZMcEwA3kB/VEDwtFKS0AoSoN8JoUNEJzTqT8e
BxkH+NtdLOlwRHxS1rLY2zYOQ5jKFbLTeCKwF8aBdMMS5+qKEissVIHrdlZkb76+FMRKrQZyv1fK
+JimRItLKIzKYYqiDdMwNJOlWomna7NdTxwtolKmNp0r4U3z4xOesvFhCR9D6pDutGf7AGFh7sfO
LSUkjFR1wzaVwQCGncgD0hyeV0yfJ6Ka0R/+i94eLc3Y20I14LMg+jPN5QlMYo2pQl/TiwXYirBo
bLUfM0YjzVTe3USJ8LLEa5dQ8jNyTN2ojpK2FikyGjLqYYbUDzAziZ0W15cDKtGrG20KPqXJVNV1
dGhTka4PFd0caSnFHhnDdGHUhWRGnLUzNeBptw4sB3/D2MHOMdzf7w+BcfAr5/rnazIbVihq35DA
fr78C6KSUtQV6nZQp8f4mZFM3Hz4CUm8B966dhxmaAape9H9wmkHN5WmPdCUI+YzJynIRdDnLkB8
kwlQjTckezNWVpD/OQ0yAwSZz4ue5cSgQPNFnouzKRrowFcDE0AjLxr3IvsNnYG6tuV5S5hrT866
YHPCC4uAuriypanwhGhgnI67HOV1cKOzgbkm92chJimYhYgcSkXOSTcNDzHNAnaC5H/nEvmJ91CY
BDNFD3Qseo0WbPtBvAt/xm8CJUD6QiUA3CM0DFTtOBDfN/M1DVkxAIUURt2jgUEVoGzb0YStjSpb
p36W4p8n8V+ge2ZhdfnH9YT4phwlrLwEgqysPEenzABpmpWjx0kRozZTn8g+xM6N5y9vXS/L2/Co
rJqe6rgmpWHKC6H0pKCmNExlIGpbkrYlaVuStiVpW5L6luQMXOlvt25U7k5eXc+bJNflW/4TDNYy
ctV8iZGZmzUklK5R9tSuuljZk4ScirmDRHQsF242XYqOuWqP8UYjHuZZKT8WVcy+dsqzTBGr82DA
sDoHwtxZdwQykJtLP6gB+8qNy0V+HPf5jp4qXqHYo7zqSOJM/hleSQTn5+F1GVwIVqLHnQmYAnqM
HzTAzxeMIjnvSHZDtoet4H+14jWORFu/OxyldZNzFBvjOSs816sIB6Wj3jQvkuPZ0jNv7hKl9MEb
wXmrwhiaPPrABK7scS3BNX9p4tdfyeml+NhBDU+1BVx+6xJw3m8xwwFlCZ8OfS5iFWtM8hZ2E+LH
ROd+KpX1Hde1hhs+n2ocIz5yK02DRBUna0zdlDc8EnWnJJHwJI1fVJqnz+eCM0dVZD3jb/h79LAn
BPitEucMQdk+yyfeGwr3ux10SyFS6aJ1iWBK6BUse7DJdt7QxoKqph7VxV5/WCrVHIq5Tm66Yk/M
Yov4sWhNQ5rIML1mdeSne0nu54Oj3cG2O9h2B9vuYE9stE5umN4b9oaNlmSL3pbJX6ZMnqWGrPOd
eV0ZWdNbePaiPHIHObEbKBl5Gh0OE8TvS5ZO6WWPDAxd048C/V3TpR53Wl86GakC844XnGITHMZ3
w70XgcIo2NvRHiI+8XyC22P9tilqm6K2Kfp5x/rCLxrYz7cqL/f6u/J71KqhapV3lOLvSypCw6Fe
Ftpab0ucfOo2y1K/OkIdCoEg+Hyv+cJKTsrW1nnHjX8AUEsDBBQAAgAIAHNfvUgnKZMAeQMAAP8Q
AABPABwAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYnRyYW5zYWN0aW9uLW9iamVjdHN0b3Jl
LWZhaWx1cmVzLXByaXZhdGUtc3RkZXJyLnR4dFVUCQADGjxLVxo8S1d1eAsAAQT1AQAABBQAAADF
WMty2jAU3bPKJ2iJZ5oZv7ANOzDJDIuWTEOyF/YF3BjJlU1oNv32yk/khwxJyHTBwvJ9HN17z5HM
Yj57BPYKbDKhEZD57Cf8PkCcuJh4EIbgD55IwFcW89kcJ3iNY5BZolt0M1ic4vmFvUsJAS8JKHFD
Gmd2mqnahmmPTUfVx5baznHymUy8hv89o3s3DIAkacZmNE0fDPc4IArqAH4m1FCMpI8spWvzAXml
L7CMgOE00JT4K4ZJjLOwq2APbKiIZbhKWeVboj1A7gPGMwlYvHTXrSBdWP621oYKGqp/7M1mM9rY
xljzVCXv9z3PSNkbbziEkEBpX47DqZUrWo1Gp2XP2w6EZwBi08gAyiu3w8QPYZ4lO29WPFd9jzmu
1Q4YIMx/mqVqpmZato54E/2AbAfvC/VAo4j3GhNUNfQbIvSIkr4c51C7B8b4cFeZehy4yYayfeGR
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
5nI45dOq2paamrJK241Qqox0MN6Ku4zk/YgrqnuqmvdZ2NxyF19Lq33Iyk0bmcoLlk6Evqk5Rf3e
sPdO5M/XLUdFjZ6ziOIwytFTLoSKJHodie+Ovzuy8kdeLCZeVlMm/PBFRuJJvmZV43bgisV8vm45
gNYDl/NwQottbGSzsKqmsoQNPMIjPMIjPMIjPH4LPK6qenfBqFf/ltqa160wa7gJU5g0A1jUGDfe
BrxN708o+qLsz+N3IswwFLHG4fm5Ye4YRTphlF62TWmqHsQ0e7WDqF989hjhvNM16kZYBM6jdJ6k
q2ad7bz6JTm9qLD03TUG7XTUf+3dv4hH9TrG62f3uo/83ByWQ7rw1IvJTV2pvvZMT3jtxtDynugh
12v6RhstQotQBbQILUKL0CK8okVoEVqEKqBFaBFahBbhFS1Ci9AiVAEtQovQIrQIr2gRWoQWoQpo
EVqEFqFFeEWL0CK06NtTBbL6r2T1g0zyBdyV1oWhntfrxualXNvV749m05zaV1Lf+IZvRNjC4wuW
yV8duk77MXel78k2dFdVO1vwFadP44WfqAGTaOEkC4WL5YeBBE7g/MJwQh3UQR3UQR3UQR3HP+BE
EqEO6qAO6qAO6qCO4x9wIolQB3VQB3VQB3VQB3VQB3VQB3VQB3VQB3VQB3VQB3VQB3VQB3VQB3VQ
B3VQB3VQR2kKcALn1yWJ2dev7gGdtfoO11LbzqXMzRqJW5rsBC63q0ct/zLZk6rr7oNu1/xM6H24
vR3fjsRFksjZPBFJKGz32Q4cKWzhhLN5eqXfXbo8Ov0U+ouZjE/T+Z1++PXu9Fc5+cFLTu/CReTI
9JOloj79KXQXvjLz0uyRrjs5jbOVPy1mnwf6b2c+b3UHg7YYiUkY+mI5wGikbdZWn/S/CMgCbC28
IOmZ/03a++bPIXu+d/ZYlV8QrD3jOIFio9hQB3VQB3X86gScwAl1UAd1UAd1UAd1HP+AE0mEOqiD
OqiDOqiDOo5/wIkkQh3UQR3UQR3UQR3UQR3UQR3UQR3UQR3UQR3UQR3UQR3UQR3UQR3UQR3UQR0X
2LnAzgV2LrCj2Cg21EEd1EEd1EEd1EEd1EEd1EEd1EEd1EEd1EEd1EEd1EEd1EEd1EEd1EEd1PHf
awAnkgh1UIckAieSCHVQhyQCJ5IIdVAHdVAHdVAHdVAHdVAHdVAHdVDHBXYusHOBnQvsKDaKzV+J
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
MLwRX/MNeDO2/n/MDDcKVHiNsvPCtJNjSIyv89P/6kKcdpVDOu23E5O0wyeg4Y9OhmhaputOVV9b
9T5PtTksW5YKs1Qau9KVsiBdGE+lu1T2uymuOGTLHu8ysYvIbfrKonZR1iK0VlML3/BK6Iu6UFHv
7FxZscXvyyeNwnxaKeML6akmhOqJevsWhweHjQX+iYWbOqlZEq7/KEPxVX5LP4coxyXm6k2zeLKH
Wveczv0VWixjrTaLqHJVbsjmx/WYb/LbxKgfBhvP6uetCKt5ZSxC6gVYHDm1n80myYuGUl+Y/vvg
N+GnMhSRpkP1zt7dUkv6gVxVk6ipvBL12lNZSfGJvbaG0+NOu6qGuWfdS+urtNWo05V/r6pRjj5r
u9Put5Ja/7Fz+aI/qtTBTnB83G+FdSyqpf6xyldov+ly1F78ss99+7wl9UpEDymQAimQAimQAimQ
AimQAimQAimQAimQAimQAimQAimQAimQAimQAimQAimQAimQAimQAimQAimQAimQAimQAimQAimQ
AimQAimQAimQAikvkpQ7ubiLvo2UPE4npXhWP49FWPXaLEPqSRnlcdUZhhY361+VybLf6XR/0u3a
y8lkPBmIN3EsZ0EsYl+Y9kOS31eYwsozzmRNNozPvjufychIxmdc3lwbN3L63omNa38eWjL5a6h6
bXzw7bmrwpxE5tK2p0aUzrxRjH7R0ddWEDQ7fQXOQEx93xVZBWkOmXyx1sokKKcdbM4dLz7rfolb
O7Ez2m/Nd2NnpIlrnZ1RiUBfCDvLTA3b6FnN6VDytH42tcDaDD1FUD1FWv6I57trPt5/8LuJqSY7
xsqvK2uWMRHJWOltIqO5G2uZlNKT7smElzdm+Z6a+rl8p460RUIwtW2kTW1KTaGr9CmfMuvHSpXb
BLzRfvkP9Su5GlstkrW4ejFfrQRXnAu7tryU59X3jms3kV7Vrud6wLNJtSTfbq7WquQ0F3pW3qep
4oUAoxvobbzYa0MofV6vqh3Toq+G1bOyMrE//LLRb3f7P/yy0Wu3t1TyhzePpP3W9afvHDerMtqJ
4Yvvm+zdCF4X6TrAFxVqeSHeBTEj5l9GzFgZrAxWht2f3R8rg5gRM1YGK4OVwcqw+7P7Y2UQM2LG
ymBlsDJYGXZ/dn+sDGJGzFgZrAxWBivD7s/uj5gRM1YGK4OVwcqw+7P7Y2UQM2LGymBlsDJYGXZ/
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
egMpz5LkVScSHoENXoAA76JIUj1g81F4/wspNt7XQDlCo7FUI8c6I3VLUha2rtyVuda/lEB5YuEM
Xacsq+HKivolBQ3bqYAWRLwQ0HJV8c9ijkYucPTIt3zLvFE+6uxfmAzUD4M0XYOvA/NOAzZnqmXR
0LVStuGKSkgERoe7Dne/Ju4qdj0FN5GFpTFzPmsxw+G0FjFDqeZ6Y4P+lR9pADus+N/7jGiRPZQV
i1miB7oD98QsOKSM338943fNJHDA0k4CwD1jhpHtnAfix8tyLUJWD0Dt1im8E4EhHPYOLf4lJyNP
Ab8Osx1mO8x2mO0w22G2w2yH2Y/3UXS3S/LmxclbkqazYtx8z/UBgye7tbb5RrcmvTzRoJQxmj5I
t4M1fT6r2jSlkq5VMwtf5q7QqimnPScbF/VoKivND92WP3Q+8ple1/GpYCB1fAoIK73uaWSgNteU
nQB7nPBWsrqD/vnuW1tZEdhDcfnMgzmwzl2cY9a43C6TUlxI94zfCuWfU7Suzem++YXC9myndUfL
v9y2hMawETSEdsH7Ghc/r1gcaKOtYY+1INL8TkNK2cHbSyP+F1BLAwQUAAIACAB6X71I3b6G5CcI
AAAMywEAVQAcAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9tZW1vcnktaW5kZXgtbm90LWRlbGV0
ZWQtd2l0aC1vYmplY3RzdG9yZS1wcml2YXRlLXN0ZGVyci50eHRVVAkAAyc8S1cnPEtXdXgLAAEE
9QEAAAQUAAAA7dtNc6JIGMDxu6d8BI5atakCJb7kluik1sOOU5vM3BHayI6CCySZuexn3wYUG2lA
ZzK1tVX/Qw4x/fZ0P/34O3Tms/tHEb2K6PY23Ilgdv+n+PtFxMnUCVyx2Qiv8znw5Sfz2f3MSZyl
E4u6lsa1cdWZH8fz9u2nYRAIN/HDYLoJ46ydZZujgT2a2GOzPxma1TmOfW5v3ZP+D1G4nW58ESTp
jKejWf1Od+v4Qc/QLLxlqK46Uv9m2NMF7wev4Vex2InISQe6C7ynyAliJxv2yd+KqNtTt+FdtrU+
pLBhIQ9+JGdS1uKmUVcG0a3ln8pn3Z7RNb+NVqvVzWo0mFiu2cvP+0HOGEbf5YGLjUjEof0hHY5H
+RQWqaFt2fBXzQpbFujYg2yB9Tu3dgJvI2bZZO3N9r8X5x7LdT2tRSQMR/5YQ9OyLXs46hvyED0/
eO5cNtSncLeTZ+0ERnGgvxlB+GYkTXO0rXr6EkUyuYuZGjrIJqsw2u575LtS9Mtz0Ftqe+bHde+4
X+WSHmUqNO2m53uzavtfk6Kr/iFFtTl4WEkxh2y4UK/g7W20v4vhdpe29DRNwqA8yuOL64o4lku5
Ntx8Mw05X5zuoh+XapVtmumAxVCeH++cxF1/eC0KkhKNbZm90nVLy0VdcFkpUS6QUtpG49GoP66W
qIadbr1qdrbRdSWtUtPf67aNx7/+tilz/LLblqbU8a6pOzuQKVx78dLNVa9R2tOSiTUQNzdpt6ZL
uDjp+z5H0h8Nhv/hdk2W48a448SJki/5ZZzKRTwL5RuzBSGRcBJR1/cUIqPJpD82f1gPP/Nt/y7n
aJpjszjH+vq5UOvGedXzuBzlF7mCabq/cjbjoEa5oW9+si5qp1o4Lds2jpQzbHto2uNJPy+nZx53
/sWgfJCt6ORMtfX+8+45cjzxUQhPeOfU+cFgKKuLeNN8/gP1X9FslpOL5V9yH/ICcG10r4yrXiWy
SssssOOvhxbzwBPfNDuj/LWj+e4/GbjUVduCGIghjaHum20pnv1A6TUvf1f9IbZSQLKH+mm1F8dM
DMRADMRADMRADMRADMRADMRADMRADMRADMRADMRADMRADMRADMRADMRADMRADMRADMTwgzGUWhTP
Fo8PFUtv22765hkRLYL87WHdi0TtFtT/sfLuqGU/G/6tpNq25mHT4SFrpUPNkybd+Tte+izTWDwe
nkjOZ8bNjTmwxv3B2N6PpA5Tikv2/ijelBG7vTO6fPjmx+nzzOqSSyn2FvmJ2vcxfYHZ+CjV871P
dXty4QEZXdfZbJYyil7zW14551SXKjWvXLVtyxdA00hN1ve6C9ntPO8WFBdZ9/E5G7t/oNeS883P
+ErZnjdtzHO1SV3pOi+/s6YXZXZbvKeJeuFOXp6cxQk2pmXRSp+QlYz5+VSsVPu2hNR+PdT/sXlL
q+0bjqzatjlRZ5UONenq1TQsJW3e6Py8mv3sVlySYzPdoTT+m1RLAZw1pQUYAANgAAyAATAABsAA
GAADYAAMgAEwAAbAABgAA2AADIABMAAGwAAYAANgAAyAATAABsAAGAADYAAMgAEwAAbAABgAA2AA
DIABMAAGwAAYAANgAAyAATAABsAAGAADYAAMgAEwAAbAABgAA2AADIABMAAGwAAYAANgAAyAATAA
BsAAGAADYAAMgAEwAAbAABgAA2AADIABMAAGwAAYAANgAAyAATAABsAAGAADYAAMgAEwAAbAABgA
A2AADIABMAAGwAAYAANgAAyAATAABsAAGAADYAAMgAEwAAbAABgAA2AADIABMAAGwAAYAANgAAyA
ATAABsAAGAADYAAMgAEwAAbAABgAA2AADIABMAAGwAAYAANgAAyAATAABsAAGAADYAAMgAEwAAbA
ABgAA2AADIABMAAGwAAYAANgAAyAATAABsAAGAADYAAMgAEwAAbAABgAA2AADIABMAAGwAAYAANg
AAyAATAABsAAGAADYAAMgAEwAAbAABgAA2AADIABMAAGwAAYAANgAAyAATAABsAAGAADYAAMgAEw
AAbAABgAA2AADIABMAAGwAAYAANgAAyAATAABsAAGAADYAAMgAEwAAbAABgAA2AADIABMAAGwAAY
AANgAAyAATAABsAAGAADYAAMgAEwAAbAABgAA2AADIABMAAGwAAYAANgAAyAATAABsAAGAADYAAM
gAEwAAbAABgAA2AADIABMAAGwAAYAANgAAyAATAABsAAGAADYAAMgAEwAAbAABgAA2AADIABMAAG
wAAYAANgAAyAATAABsAAGAADYAAMgAEwAAbAABgAA2AADIABMAAGwAAYAANgAAyAATAABv5/GAi3
Wz/plLbuzd9sptnnSlPj6j0nbC22p9OXSm7ljy3lIo+xoeZWgr2W4bZVX22nujrc0Li2iuadimrb
KIIHP/Dj9bkk0K7mnE28qNzqZpE/lm2OBvZoYo9NczzodzRL9YPX8KtYHPLrLvCUYbJs6/aaSrgu
eyqFXJP52lVf1bRZRHfLMGq5Iys/vbGywy69xg2nEzYEm12thr5rJ/A24vB7sW2x3OyntZAFzJE/
1tC0bEtuuWnsRJBSV7Mr8c5J3PWHVxFkOyOHCmb3fwo5YZzkwTy+uK6I47tVIqIvIoplx6mc/1lM
99ma5dJc6VUaNcsBtUjIJTUdZZ7Xv6cByhWXJjw5X90Aobr+qRO4YrORO3lx6+NWx0m4U3N4NLFG
Vr/cxt2EsThpNBza5UZb5/tSTNOW830tPO1hDWv3pXLhsoG8yoHuV3vV+RdQSwMEFAACAAgAel+9
SKyjVLJHCAAAz7kBAE0AHABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vbWVtb3J5LWluZGV4LW5v
dC1kZWxldGVkLXdpdGgtb2JqZWN0c3RvcmUtc3RkZXJyLnR4dFVUCQADKDxLVyg8S1d1eAsAAQT1
AQAABBQAAADt201zokgYwPG7Jz9C11xGqyZVqEQ0t0QnNVZtrbOTzNwR2sgGwQWSbC772beBiCBv
cZKp3cP/4EHst6f74flxwMX86kYGjzK4uLAd+9rxnHDzxfRs1/HufsggdHxvtjG9O3kbmF5oWpG6
IM5Et/Pdc/56kIv51dyMzJUZypnveTL5vW2ouL/6DHTNGOnGVJ9ow4k+6fS2puP1RWngtuE6FT0c
79G/l8udDMx4RZeenVv/rbOVQa/fWRxi93fSm199k2qcMJqZniVdV9pVI1e3TLbkF45nlzZ55vph
0i6/jdOx1nww1lH/68DfzlxHelHFoUwHw4ZDaRmqlx9peD7uv+WYcleTHUubJw2unUBtQ0/721iv
1+drYzQ9H2r9hnX7DbMlgzX03cT5J/ffs3WHKuLbjQykMNVnMNYG+kDTJppQZ2urdI1DuFbT+MGz
OkrpyigbY3/Qh0O69bNDr2zZ8GvFikuXev38Zpn6SOurnq0hJ5O9z87oY2OY7cxpQ331dzt12qYn
slP8JDz/SURNc7StevYQBCpts5kaOqgmaz/YvvRIdyXrl5xBz15V17Ck7ZVp3asl3ahUkJ2bP35z
orhV/urFxZ2MlsHnUHV0Vcnbj7Dw1r6aYF8I1Ew13csTieSS+ibWjivFx+5HoRZrO+F9c82dl5ec
yz8rvutLHasO9J+WJJyuh0kS1t0G+5Vkc6iGy3zZvLgIXuqnv93FLe2KJr5XHOXmwbJkGKqlnAkr
PU/xmLoinLBQCHVNiwfMhlJbtzMja/P5Mat2uWjUvd8v3PFxia8LLin/uXs4VzeNiWEMJ2WmGna6
9W7Xk42uY6gExnvd8JPJr7/hc3P8shs+TqnD7Z7f2VGCTs29H29u4YZUPQe6YU2083PV7Y11oPEe
Xh5N/T4nOjRG4/9wt6erSSPxas+CqO7pteUBKZBmJJuefPMPScZ0Opxotee+kneOl+u+KB7Fzz4Q
1eTL8WyNjxZpZpxYUQ/rzH1R08ziTYt9OWSleHKiTVZP88V0oOvi8OwodH2s6ZPpMC2xrzzDNLDC
U2Hx+z72kgHfd3eBacvfpbSl/ZraPxqNVcWRTxXX/38PmScKlXuYT9J+ufpTnUpaos5Eryu65afv
Ustkmw9f9y0Wni3/rjin3K+digeko4ELXStbEAMxEAMxEAMxEAMxEAMxEAMxEAMxEAMxEAMxEAMx
EAMxEAMxEAMxEAMxEAMxEAMxEAMxEAMxEMPPx3D63zNaI1p66auKdS8wVm5B/Y+l1+xa9rPhby/l
tjVvf+5fZi11qHl/s+r8TTt+tU8sb/ZvVC7m4lyfTofnEy1+8bTp1d+vdfOfuBmiZ5muu1Jr7bf+
62tWdSw1L6BWti0mW0WjfGK8V94ld8LrMi67aaouv2Zj05Zt+fXS6jWZlTZtzKm0DpyJ/KGmWWSM
p+NPIv39cKWTvdBrPQShH6Spp6YQaiXB84X40P3QmaU/OaFYOckLqML1n2Qg7uVz8hcT07PFw253
uHJCtp64nadnaHaMjbmZtarOylLavD0fS+W1LSsr63H9j81bWm7fcGTlts3ZOi91aPwDU7EO+sk3
EeZT91zTm4f47j2E0r5y/dW148pv0vIDO3xVFs7funGnZOS86ggb/wjVUjPnTUmE1ViN1ViN1ViN
1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN
1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN
1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN
1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN
1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN
1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN
1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN
1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN
1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN
1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1ViN1e9SM/3t1ok6ha17clx3llzPNRXd
95ywtT4fT1+o0qUfW4pLGmNDmS4Fe6bCbSvYlZ3qSndz49OWmyuwlcO+ZjdOqrJVs6jPQNeMkW5M
9YmmTUbDTsVSHe/Rv5fLfaJcenZumCRtev2myl2VBqX6XZHClavu1rRZBpcrP2hJ9rUT33qqwy6+
HxtOx28INrlHGvpulLOu3H/Pti1Um327kaoSmeozGGsDfaC2XBM7mWBdsSvhzoyszedH6SU7o4by
5lffpJowjNJgbh4sS4bh5TqSwQ8ZhKrjTM1/J9NN6fWTXFrkehVGTXIgf7erJTUd5bXjOeHmSxyg
WnFhwqPzPWyHEmKXzzNjOjAGw2Iby/VDedRoPNaLjbbm80rO4paLl8Jz3GMwrl176aZIBrLr2vv5
rZ6ZniVd92daFw70ZSe6nX8BUEsDBBQAAgAIAHtfvUhZc5/IhQUAABwmAABCABwAc3RvcmFnZS9p
bmRleGVkZGIvbW9kZXJuL25ldy1kYXRhYmFzZS1hZnRlci11c2VyLWRlbGV0ZS1zdGRlcnIudHh0
VVQJAAMpPEtXKTxLV3V4CwABBPUBAAAEFAAAAO1aS3PiOBC+c+In6DZQNamyjfCDWwKTWqq2luwk
2buxRfDGyKzsJJvL/vZpydjIWJIhj3nU5kAlWK1+qfvrVpv57OKasEfCJpM4iS8TmuTr30Iapwm9
+4uwPMnodB3SO3LDQpqHUQEP0Bnq925p8s8Dmc8uZmERLsOcTDNKiVjvYsX3w8fGljfCXoB9y/Gx
3xtswoQOUYtxF7ueYkdCH7N7stgSFnKNzmks6X+TbAgbDHtzyfaWEdM0y0l8oGbgWmbDo4P9lyzb
TNOE0EJhdGA7BqM7WA1kTs7YHb6FG7ItobOLrwT45MU0pBFJUxKrOKspRWS8Az9Ja0FamiMMuEwY
0A2sf73VajVeeaNg7FhDg18zgzcEM9mAiLu+xURlwH+tZ4NhQy07soalNZcgMWPPEHUkJQWp6Ctj
9/F0k9XxqaQ0rCo07FAwxCOhoN5za559ZCaEdZPtvtfBl4NeN2vCCArhY7uWjW3seg6Ck48hp3un
sbrKtls4+JCi+kA/I5o9ocIko0vr6QNjkGG1JMMGIFllbLPbUXql3ifOYBAv1XAmaC/C6B5UuoZQ
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
/OEPf/jDH/7whz/84Q9/+MMf/vCHP/zhD3/4wx/++FaSbyX5VpJvJflW8o1+K/nyrXxtydeWfG3J
15Z8bcndFndb3G3xtAN/+MMf/vDH00aeNvK0kaeNPG0se9pYdkRB/p8tM5N11PNk8Z9YVGefZemD
x/yO3XFstuZyQ9PVKWvfmxdE8qBQf9TfL7Swvs2kmZS83iwWhxF9o3KyComcVuR896H4H1BLAwQU
AAIACAAnYL1IuTgCJegNAAAdrAUANwAcAHN0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWN1
cnNvci1wcml2YXRlLXN0ZGVyci50eHRVVAkAA3k8S1d5PEtXdXgLAAEE9QEAAAQUAAAA7dtPU9v4
HQbwOydego4w08wY24DhtjGbDtPpOhOyvQv7R+LGSFQWYXPpa6/8B1vGkgwJme20n0M7s1i2Zfmj
h+f7ZXJ58fYqZF9Ddn6e3oXk4u2H8K/7MM37cTIMk0kY7f2ejIufXF68vYjz+DqehrojozfR/t7l
+vVGy+P7aZKEYT5Ok/4knc6PO+q2Tjvd05N2u3N0fNLbfo/1c87Ph0+e/y5Lb/uTcUjy2Ts+fbV2
a+/gNh4nh1HFie94qYPSK7V6J93Dqg8/Tr6mX8LgLmTx7IV+SUYfsziZxvOX/Ti+DdnBYfkyvMpl
rf9IacOJvBtnxTuVzmU4+9RbL1J1Lv/e+tnBYXTQ+uP05ubmeNRrnx0NW4eL7/td8Y5p9q34wsMk
5OHx+EcO66/yY7qiUXlkw6MVZ7jjBONuZ36C9Vfuc5yMJuFi/ma7D1v+9+p7nxbn9fFzyEIUF/+b
Ke51O+1eKyq+xNE4+bT3spd6n97dFd91nESrL/QvUZI+RHnTe+w66/59lhW4V+/U8ITikJs0u10+
Y3FVVs9bGBxdVz5z8XW9jYdfilO6Kig0Xc3ReHSxffzPIXrTfiRaafDxTFbvURw4KN+C5+fZ8l5M
b+9mR44qDkmTzVe5uh8Ow3RanMqbaLi4mFHxftPZVRxPN7Kq1erNXnD1UqPx9C7Oh59//boKpNKn
6R61Djdut1lc1H24eZSUbqBytB2ddDon2xHVcKV33mrd+YWui7StTH+tu+3s5OffbaX3+Gl324zU
+l4rX9lOQbj2xptd3PJtNHvm0dFNp9c7Pp49rekmHDx57ut8JUedbvdPvFxn173Gzz3N4yz/x+Jm
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
1XxydT+vykIRQxFDEUMR49Y0FDEUMRQxFPHBFPHxiNu8Nez8dd8T+M0lnBFXdWt6ZyIaZ8Q4Iz5n
Rbx3GStU3CvLh4Y9IbMZZ1HwfGexaia73w6/ZWa6SiVc1u9Ct9V2v9jvQtMcbW3rHyhk21CsK4ql
PmD/VNTeOg59HXv1IO51CvOyohafQlfUzNSqvPRoQuaBlpTzjKS7nvf18WjMreOPhUJT/wdQSwME
FAACAAgAKmC9SGFRNaMZBAAAOC8AADYAHABzdG9yYWdlL2luZGV4ZWRkYi9vcGVuLWJhZC12ZXJz
aW9ucy1wcml2YXRlLXN0ZGVyci50eHRVVAkAA388S1d/PEtXdXgLAAEE9QEAAAQUAAAA7VlLc9s4
DL77lJ+gozTTzuhB2bRvibKZ+tB1p0n3Tkl0zK1EupQSb/99KUuW9SJjZ93Y0/CQzEgGQBAAP+KD
5rc395g/Yz6bsTWmtzdf8Y8nnOUBohFOEhyPvlEi3sxvb25RjkKUYZmk8dG4Gs339uJKPmCU4ign
jAYJy7ZyDrAnHpiMXddz/DHsr7HXmc2ijv4dZ2mQEEzzYsWuNdcemSki1DIGHH/BlNmwZMMxsIY2
T+gz+44Xa8xRYeiaxg8c0QxtzT6QFHPTaobh1GE9ib3ThGgMoaUwhULG80ZwDtyJGYeD5kTEl4yn
10NWj9v9Z5wy/lNI36DoO6GP9znjr/e3tNY01bBRWTWtMyf8deey3Noi/FfIVUHacJI3N3hHKMlW
Q/5cyhmea4h7jxCn067Tru3pY/jHH8N3HoZWs8V24luBO8JFGEz7v8lyufRj6E6F232liKUpyRe0
DGjx8z4sD2wX5lKqoajYP1N4vXVKobtCNE7w7rnefyYi97DCHBtI/BXZhB4U/wxxVGLReGpvtDev
8qaBJP0S760zcHCUONAx+AL5jEn85TiWdyhK3Ik3gsqUV4vsiG+vncp0F6hcx/fdfvtTSQ+51ntl
Wk0sQgDYloK69hD6JLkHnjsd17k/ztQXtl4LPEXUqOv0g0HZxshVa7zkdfDEubgY6pUUCtUEYK9B
a61WZL0C5WVjhCK4TbJeaDrO0oPQ921LXZyLju5pUuJ4AJwxXNMQKved5Yjn/2CeFde5cOIRKxGi
1VJwjHIs0+21Fe4EQihNXIgfCW2oz9upeC04SIZB3dVkmFFVRQ0EQmzR7F5nM161sSxdJzgXGN7y
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
YoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKI
IYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGG
GGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhi
iCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYogh
hhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYY
YoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKI
IYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGG
GGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhi
iCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYogh
hhhiiCGGGGKIIYYYYoghhhhiiCGGL84wTYp6s2QSJ/sgbiOzFDOv1q9mJrB6j7JB9SD728gKMPFu
REbM8vXLy4qGxpsyZN8G41nwLk7+Hnw/iFn/6UtzGLV+bid2sfXLd3R1xZNg+tdg+iGYzMZzVsNZ
ksyBfQ2+pxf9UizXgw3jaBpG6aLNosX8GsfTeDlUEWI4nesNKq7rWbZzXe7jXRi/vKF+J/Ox1Uh2
4uqp3+SCK7SHJUEl4FdhjfU+vITzm+cu0GHab2ph7AYwzzzzzDPPPPPMM88888wzzzzzzDPPPPPM
M88888wzzzzzzDPPPPPMM88888wzzzzzzDPPPPPMM88888wzzzzzzDPPPPPMM88888wzzzzzzDPP
PPPMM88888wzzzzzzDPPPPPMM88888wzzzzzzDPPPPPMM88888wzzzzzzDPPPPPMM88888wzzzzz
zDPPPPPMM88888wzzzzzzDPPPPPMM88888wzzzzzzDPPPPPMM88888wzzzzzzDPPPPPMM88888wz
zzzzzDPPPPPMM88888wzzzzzzDPPPPPMM88888wzzzzzzDPPPPPMM88888wzzzzzzDPPPPPMM888
88wzzzzzzDPPPPPMM88888wzzzzzzDPPPPPMM88888wzzzzzzDPPPPPMM88888wzzzzzzDPPPPPM
M88888wzzzzzzDPPPPPMM88888wzzzzzzDPPPPPMM88888wzzzzzzDPPPPPMM888838C87klHAXj
YLphX5h0suz6ehH1IRjGyegVlc0oM619VTPauYTS1+tJ5EJrvOXC6ismt7AVBbPqbxB9DsqK4LDm
7AjatWvXrl27du3atWvXrl27du3atWvXrl27du1/nvZDPgS8ft4HPod9BLj7QdnuJ4DXFZ9YvcgH
ez6H/iM+h/ZB86Eetysz3c6vMN38z/POCiHpmIPbcTj5so/kJvBTfsDSmaRDXY1GaVnMf/yW7nCm
qTiHeEuj8CH6w2zaT9K+qj4+f59plyhRokSJEiVKlChRokSJEiVKlChRokSJEiVKlChRokSJEiVK
lChRokSJEiVKlChRosR5YvwQRBVfCl+l9qsjnnVgYBjf34fT/FesH8PxuLd4/dPuN6prv6dd+Jr8
9hve5RmLL57/0jjtNC/anYvzVqt92r44Pyr5Zn4Qpa/Mgt3vmZedM4i+xV+D/notrqJRJmmxMscv
dNbiB9Z739fgh7urX3NoIa651MWkanK/DKLROFj/vFm0Sbq4n74ESdAYpH9Oz8673XY3/auR4huF
0eeshOJU609LrMBVz6nQ4WKn9xwY6ZUmVRwcGdYEZyNL5p3aKTnC9JiE02z0uzBKoQeHHWcqn/oh
i5g9a1Jbe+lgpaPkaq/1ttNpPruiXpfP6h4XR0UGud26ibKb/vwVqBd6tXfg6uNChc2rkn0bfA6j
TzVndTadHe1qLLvh7ymJwWj02+/hZJo29vOHa0p6Tt/wbuOkdIDaWvo4HSTToPhWepfS6Udp3w/z
A3kHVdrVT9v7PacQw9F66J3xXt1dfWfemUNiNTwXW7RH3SKmQGM3s+zY1nPeZdcPYPveZ7MPaoXX
6jd1E1a9D9uQ+lvD5nHwj/r9oYUR0kquPqC7bTykyN4/bfkOOy/5vuqBOtP2Ck/jYoghhhhiiCGG
GGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhi
iCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYogh
hhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYY
YoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKI
IYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGG
GGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhi
iCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYogh
hhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYY
YoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKI
IYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGG
GGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGGGGKIIYYYYoghhhhiiCGG+aSoN0smcbIP4jYy
SzHzav1qZgKr9ygbVA+yv42sABPvRmTELF+/vKxoaLwpQ/ZtMJ4F7+Lk78H3g5j1n740h1Hr53Zi
F1u/fEdXVzwJpn8Nph+CyWw8ZzWcJckc2Nfge3rRL8VyPdgwjqZhlC7aLFrMr3E8jZdDFSGG07ne
oOK6nmU71+U+3oXxyxvqdzIfW41kJ66e+k0uuEJ7WBJUAn4V1ljvw0s4v3nuAh2m/aYWxm4A88wz
zzzzzDPPPPPMM88888wzzzzzzDPPPPPMM88888wzzzzzzDPPPPPMM88888wzzzzzzDPPPPPMM888
88wzzzzzzDPPPPPMM88888wzzzzzzDPPPPPMM88888wzzzzzzDPPPPPMM88888wzzzzzzDPPPPPM
M88888wzzzzzzDPPPPPMM88888wzzzzzzDPPPPPMM88888wzzzzzzDPPPPPMM88888wzzzzzzDPP
PPPMM88888wzzzzzzDPPPPPMM88888wzzzzzzDPPPPPMM88888wzzzzzzDPPPPPMM88888wzzzzz
zDPPPPPMM88888wzzzzzzDPPPPPMM88888wzzzzzzDPPPPPMM88888wzzzzzzDPPPPPMM88888wz
zzzzzDPPPPPMM88888wzzzzzzDPPPPPMM88888wzzzzzzDPPPPPMM88888wzzzzzzDPPPPPMM888
88wzzzzzzDPPPPPMM/8nMJ9bwuE4GBTnmix77M0bM+GvqGKGO1PbVzTDkkupbKuXUQivplcMrS+g
woJX1NCwPK5kZw8pi96PXX+2OAqZ271YjFgqqryaykJ3C6pXo+BFasWt/Y+4tbt3/3Eeh/H9fTg9
yq3yYzge9xavZ0KXs87lTqbxw3xqVeuYTijaXFJvEA2D8TgY1XZT2bCd3erV007zot25OG+1Ws12
q3m0c6ONJ8FOUOuilQ+6H3y/DXrzyJvV/u1mtDqVRAr3s0VHoycuxf8DUEsDBBQAAgAIADBgvUjQ
3M3omhQAAEVqBwAyABwAc3RvcmFnZS9pbmRleGVkZGIvcHJlZmV0Y2gtaW52YWxpZGF0aW9uLXN0
ZGVyci50eHRVVAkAA4w8S1eMPEtXdXgLAAEE9QEAAAQUAAAA7d1dc9pomgbgcx/5J6hyEqequwob
/BGfJWQy66rdIZukd48xUmw6WLAC4snJ/vaVBBiBPsCOs5OpuaqrPxDvrefVq0uCdPHA1bu3n6Lk
W5RcXo4nUfzu7cfof+bRdNbtx4NoNIrCgz/iYbrl6t3bd/1Z/7o/jepGBr8HhwdX6/2Fy/HdcRxH
g9lwHHdH42k+7rjTOm93zs9OTtrHp2cX5RrrzOXlYCv/PhnfdUfDKJ5lFbf3dtI6OLrrD+NXQcXE
d+zqqLCn1sVZ51V5Yp+TfjztL2fWvx4ns/8ezm7H83QZRqPr/uBrQ/V8eGEH2wv2LCfgKLyuLD6J
ki/j5O5N1Rz+I7obJ9/T4W/TAxjGN59m46RuvouxxYHlJTl6lR3WxvZ0xkk/+8/Pw7soeT9M0uke
tf5+/uXLl9Pw4uR1et5eLffdu/4zPUfLOYTRKJpFH6PBOAlLOx2M7+6Gs168WMDs6bWbz+PVsi5G
FYJVdfphuCyyxySeuOdmTIudNeLdqlY4H/XT/aFjFRYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW
FhYWFhYWFhYWFhYWFhYWFhYWFv5VwvfJcFb8JP77YTyc3kZhwyfxw2H4oaGdoiIxjL+Nv0a9VRPE
mzgshPKWiKNXDQXHDcG8l6Ihe9uPw1G0evwwhWk61c+3URIF/fTvrAvnon2R/iOYRHE4jG+yPof3
aZl0uVYLvNrHqm+lqtmiemTDsxUzLm06elXsFel32q1XWafLrkPOiz3LynTaJxeth5V53K4+jCeT
KAz6cfBwFn8L4vF9MGuqsWvW3XmSRPHsoVJDYNn5s0wsVuUh19gztDhdxV6fg0//+e/p5VJqFbqJ
Zr3kL9M0OEovntUeruIv47TAqhEsrVQTLxcK8k3po+DLcBQFLw9fBulkw+H0a/N1+a485WLDTtb1
VQpWndD/3YHw9ZeTHGHdZbCayUONdGCv2LV1eZks27fGd5NsZFgxZBxv7uXTfDCIptN0Kr8Hg8X5
DNJ60+xEDqcbjXCt1kW2w4ddpUs36c8Gt3/59tDtVjiaznHr1cYVn3WY1R1c3n1WuIaLfXPHZ+32
2atSV1vDSu+82jv5Qtd1wZUaBp/rgn999vMv+EKNn3bBZ6TWl3txZdtZz13dtZ8t7sYFmSaP2+12
q316msZ+8D7QeA33tko/zxk9bnc6/8DVfn190Wp6iU/XLJn91+Ja7qaTuCm+J9nRIJtE/VlUly01
yZ6cX1xcPP1NSo2X6+hmGBfGX8X7vG5spxrfWixkPPKOup5h4UFappstWvb6slYZ3A9ntw/302Iv
8PnpSbDuHQ46ndft1ulJp9U62P8cLg5so+Vz8/Hq2EuvAX9MbpJ+GP0tisIo3OPe33rd6aR3nOi+
Yvuv9ybzka9QhX7YnH3hvXyaOToMDsvNx6WRT2tP3rnbnZ3IVfOof3JHv3BpfEPrcHlsc5t4txSo
uYCrTkL6x63swup9Wl1SV++C0+PT9vlZ5/T8bK8/V3V/dDGCo8GyIf9V880zrdmtOi01d6DuTkpV
g4ownsHdolN8Y+nuh6NRt9QgfvicBR/fZ9/YKv9TuuF3sa4M1dFuHvy46RZoV+52n9V4lOmqKptv
A9JXg9aT3wY0XCFVDEpXSAXhylkf1ozpJaX/9VLG/mWYXXqrtwO/3kvf1qoUXv4q3gdkB7P889+b
L7Mo2XifsViU/L3B4Q+9qM4azlv125WNIdHqrf+um8XDwC0olTNJS70Jw+zPVOnDb1Ewa77Fbd6c
N/5n32SeyQnLXyWyfOv4ofC8oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCg
oKCgoGCy7K7szpPpOKmL9jZG1HzWfvFdBf+WfQJ9GN/Udg8W+jAqP3fd2ExQlaj44c32+VlVM0EU
p1vm0XN9RULxuwT2Pfzqglv9Eg27qjjYzumONqaG3f3Isf94K89eoV+rUaLhB1WzdoD+xrd3bLWd
PneX6+pXVHcWfky/6z/Lche+9uSnLXxzH1Q6g1Xpq31bxP9BvT01d+xPWYvwjuaofEyp72k7+VzN
favXsF0dO8XXutK25tP2MKyhi/5hSPOV9/CK2vhNIh+X9+0k//fhb8GiJyiY5q2hi17Uk1artWMv
+XcGpbv5Gn2v2Unr9VntTh6+dahxD8fpX3tdcx8et9bFZsF6jh/q3sAUnivCKHSlL3vRHtNtdt56
xSyzzDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMsss
s8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPM
Mssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLL
LLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyz
zDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wy
yyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMsss
s8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPM
Mssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLL
LLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyz
zDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wy
yyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMsss
s8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLMPobg7T6bjZJfa9cii28LW
5tUsDKw/R8VBzXp765HdJEoPO74JBvnj4H44uw1SSUEaTb5fBi8OXxwshgbDaXA9jMNs8Gh8HyW5
ppeHL4N+HAbzyWS9ZS9Ivccf/H6Yehtrvc2pV33O8i2Xl9No9tdo9jGazkcZnHRRkoxQft08G7xV
scE4Tpd+Hr2fx/n8gqPZeFGqTC29slOfUc1xPUnvxi53AS7Vr36i+Uxujq1HsjWuGfPVxuCam+C+
ldc8r556XPshvWo8n9sDUEUVVVRRRRVVVFFFFVVUUUUVVVRRRRVVVFFFFVVUUUUVVVRRRRVVVFFF
FVVUUUUVVVRRRRVVVFFFFVVUUUUVVVRRRRVVVFFFFVVUUUUVVVRRRRVVVFFFFVVUUUUVVVRRRRVV
VFFFFVVUUUUVVVRRRRVVVFFFFVVUUUUVVVRRRRVVVFFFFVVUUUUVVVRRRRVVVFFFFVVUUUUVVVRR
RRVVVFFFFVVUUUUVVVRRRRVVVFFFFVVUUUUVVVRRRRVVVFFFFVVUUUUVVVRRRRVVVFFFFVVUUUUV
VVRRRRVVVFFFFVVUUUUVVVRRRRVVVFFFFVVUUUUVVVRRRRVVVFFFFVVUUUUVVVRRRRVVVFFFFVVU
UUUVVVRRRRVVVFFFFVVUUUUVVVRRRRVVVFFFFVVUUUUVVVRRRRVVVFFFFVVUUUUVVVRRRRXVfxmq
ves/08kvFzGMRtHsQWtp0sli1+/yUR+jwTgJfyHtYWFau7CHW4dQub2ZxMbQBm8bw5qhbyxsjfPl
/vrxTZSe0yT/9+FvwTg/jcE0GxScHp+2z886p53OQTeJ0oWMbzI9Gd374ew2SHcdpFNIvl8GLw5f
HCxVD6fB9TAOs8Gj8X2U5Kfu5eHLoB+HwXwyWW/ZMbd8/unk8lNfObX2aavTvJM/4vk0Ct+Oxtfv
h6PlLqfqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqq
q6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquuuuqqq6666qqrrrrqqquu
uuqqq666v1zdfX4e4d3Tvgp/vx9H2P4Jge3fRnhX813+z/KTB35Y4+k/rPFzfk/g8Qk/8LGv9vXK
zNbzK01383G2s9KQtGb/ejSc3u4C/zDw82bBypmkpd6EYXrRZQ+/RUHxqfIcxutfKyn9eMlkPusl
6b7qfrbkQ+F5QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQcEsOJ5E
cc2HwpfRXv2IJ7UjDMZ3d8PZ5kes74ejUTff/nn7E9WNn9MufUx+/Qnv6kT+wfPfg+NO67zdOT87
OWkft8/PDio+mR/F6ZZ5tP0586ouhvjb+GvUW63FmzgshPKVOXqmTo4fWO9dH4MfbK9+Q9PCuOFQ
80k1ZG/7cTiKVo8fFm2aLu7n2yiJgn769/Hp2cVF+yL9R5Diy1osqtZ91v8a/S36++zjPI7TE711
qpZ9IcsOpHE8+h5M55PJOJlNg+PiB/d/yxs27tPKoyTqh9+D2/63dApFe+XFae7PWBKvX4XSDnNb
OxpgupWhmkaYQfPgx0133aVSPYd9VqPYptJ42abFKqtsXLYnrzud1pMvxl+Ldv0e8y6T/qy4nFdx
8Tw/fQWaqb3ZWbiG3XV0M4wrenNqupJKJ7qqM6lb8YJRieSwZkz6ynedXvefG5t1vqRntxengUnW
zLfXxfDmp52eHR2Mw3BVeqverwW7fC4LLWANKj7N+skuFPmY0vneTlY1ZT3lNXT19mrXq2jxbVhp
W/NJfRhWfx7WQ5qv3oc3e80du/34JkpPYZL/u7pl96TVav1w32/r9VntTvphuMcejtO/9roiPzxu
rfdrnfxQ99668Nwv2PbLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyz
zDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wy
yyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMsss
s8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPM
Mssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLL
LLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyz
zDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wy
yyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMsss
s8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPM
Mssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLL
LLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyz
zDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMssss8wyyyyzzDLLLLPMMsvsP7/Z
NBR358l0nOxSux5ZdFvY2ryahYH156g4qFlvbz2ym0TpYcc3wSB/HNwPZ7dBKilIo8n3y+DF4YuD
xdBgOA2uh3GYDR6N76Mk1/Ty8GXQj8NgPpmst+wFqff4g98PU29jrbc59arPWb7l8nIazf4azT5G
0/kog5MuSpIRyq+bZ4O3KjYYx+nSz6P38zifX3A0Gy9KlamlV3bqM6o5rifp3djlLsCl+tVPNJ/J
zbH1SLbGNWO+2hhccxPct/Ka59VTj2s/pFeN53N7AKqooooqqqiiiiqqqKKKKqqooooqqqiiiiqq
qKKKKqqooooqqqiiiiqqqKKKKqqooooqqqiiiiqqqKKKKqqooooqqqiiiiqqqKKKKqqooooqqqii
iiqqqKKKKqqooooqqqiiiiqqqKKKKqqooooqqqiiiiqqqKKKKqqooooqqqiiiiqqqKKKKqqooooq
qqiiiiqqqKKKKqqooooqqqiiiiqqqKKKKqqooooqqqiiiiqqqKKKKqqooooqqqiiiiqqqKKKKqqo
oooqqqiiiiqqqKKKKqqooooqqqiiiiqqqKKKKqqooooqqqiiiiqqqKKKKqqooooqqqiiiiqqqKKK
KqqooooqqqiiiiqqqKKKKqqooooqqqiiiiqqqKKKKqqooooqqqiiiiqqqKKKKqqooooqqqiiiiqq
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
pmRKpmRKpmRKpmRKpmRKpmRKpmRKpmRKpmRKpmRKpmRKpmRKpmRKpuQdHnGdfex0MaOyY+m7xgvQ
lEzJlEzJlEzJlEzJlEzJlEzJlLzTSs6D3CJEnRrtzeTnIkO9xQSt5+j7Yj8ple7Nlyn6LSl5ty8k
szM7szM7szM7szM7szM7sxv/bfy38d8i25RMyZRMyZRMyZRMyZRMyZQssv2iI9uZYtR5tS6yLbIt
ss3szM7szM7szM7szM7szM7srzey7StZItsi25RMyZRMyZRMyZRMyZRMyZQssl1MZHvjM5tt451t
SqZkSqZkSqZkSqZkSqZkSqZkShZL9pY0JVMyJVMyJVMyJVMyJVMyJVMyJftKlq9kefP4hb15vIBx
SqZkSqZkSqZkSqZkSqZkSqZksWSxZLFksWRKpmRKpmRKpmRKpmRKfl1KLmZKqV2RFdkXL/sUgD3j
fNwizea4pmRKpmRKpmRKpmRKpmRKFksWSxZLFksWS6ZkSqZkSqZkSqZkSqZkSqZk7yV7L5mSKZmS
KZmSKZmSKZmSKZmSKZmS8yl5be2umoVZ5buyXXMafCW87t7oeUqmZEqmZEqmZEqmZEqmZEqmZEoW
S14aSy4yTrxOgJiSKZmSKZmSKZmSKZmSKZmSKZmSKXmd95I3PtfV65qJzfxcvgRFyZRMyZRMyZRM
yZRMyZRMyc+h5Dy2LCLunBojzhRlLhKxxUwTNkffQmax3j0IEr0Zt5md2Zmd2Zmd2Zmd2Zmd2Znd
+G9ziRn/bfw3JVMyJVMyJVMyJVMyJVMyJf8QkW1KpmRKpmRKpmRKpmRKpmRKpmRKpmRK3u74b0qm
ZEqmZEqmZEqmZEqmZEqmZEqm5Nc04rqYl5fnDb7GbNrmEqNkSqZkSqZkSqZkSqZkSqZkShZL3sER
175LRcmUTMmUTMmUTMmUTMmUTMmUTMlm76JkSqZkSqZkSqZkSqZkSqZkSqZkSvZesveSKZmSKZmS
KZmSKZmSKZmSKZmSKZmSKZmSKZmSKZmSKZmSKZmSKZmSKZmSKbkIJef27rrThM3RNweiX5I3X6bo
t6Tk3b6QzM7szM7szM7szM7szM7szO4t6V2ecdtb0iLbItuUTMmUTMmUTMmUTMmUTMmUbC4xc4lR
MiVTMiVTMiVTMiVTMiVTMiVT8naVnEO+OTXt682UTMmUTMmUTMmUTMmUTMmUTMmULJYslkzJlEzJ
lEzJlEzJlEzJlEzJlEzJ5hLb6BvLlEzJlEzJlEzJlEzJlEzJlEzJlEzJL3TEtVgyJVMyJVMyJVMy
JVMyJVMyJVMyJVOy95IpmZIpmZIpmZIpmZIpmZIpmZIp2XvJ3kumZEqmZEqmZEqmZEqmZEqmZEqm
ZLHkbcWSCw4Q5wM1JVMyJVMyJVMyJVMyJVMyJVMyJZu9a0Ozd23Eu+tyfI6+ORD9krz5MkW/JSXv
9oVkdmZndmZndmZndmZndmZndpHtzcyVnS+IXMBkZd6SFtkW2aZkSqZkSqZkSqZkSqZkSqZkc4mZ
S4ySKZmSKZmSKZmSKZmSKZmSKZmSX+X47yLnG/OWNCVTMiVTMiVTMiVTMiVTMiVTMiV7S9pb0t6S
9pY0szM7szM7szM7szM7szM7szM7szM7szM7szM7szM7szM7szM7szM7sxuNbjS60ehGo1MyJVMy
JVMyJVMyJVMyJVPy7ig5h4XXmJ6bkimZkimZkimZkimZkimZkimZkilZLJmSKZmSKZmSKZmSKZmS
KZmSKZmSKZmSKZmSKZmSKZmSKZmSKZmSKZmSKZmSd+Vb0vm/Eb3OiOsiBbwOfX1LmpIpmZIpmZIp
mZIpmZIpmZIpWSzZjNtbm3GbkimZkimZkimZkimZkimZkimZks3eJZZMyZRMyZRMyZRMyZRMyZRM
yZRMyWLJ3kumZEqmZEqmZEqmZEqmZEqmZEqm5FfxXnIO3+Z8f3ndgdDzBl8jTrzykG5KpmRKpmRK
pmRKpmRKpmRKpmRKpmRKpmRKpmRKpmRKpmRKpmRKpmRKpmQjrs3eVdjsXbvnzZcp+i0pebcvJLMz
O7MzO7MzO7MzO7MzO7M/u9nX9vSqWZhV26vxOF9MOvPTh+SHByLbItsi25RMyZRMyZRMyZRMyZRM
ycZ/+3qzGbcpmZIpmZIpmZIpmZIpmZIpmZIp+QdRsrekKZmSKZmSKZmSKZmSKZmSKZmSKfk1Ktl3
qSiZkimZkimZkimZkimZkimZkinZXGLmEjOXmLnEzCXG7MzO7MzO7MzO7MzO7Mwusm38t/HfItsi
25RMyZRMyZRMyZRMyZRMySLbryeybfw3JVMyJVMyJVMyJVMyJVMyJVMyJXtLmpIpmZIpmZIpmZIp
mZIpmZIpmZIpmZIpmZIpmZIpmZIpmZIpmZIpmZIpmZK9l+zrzZRMyZRMyZRMyZRMyZRMyZRMyZS8
a0rOKt+VfZvT4CuFePMFqymZkimZkimZkimZkimZkimZkimZksWSxZIpmZIpmZIpmZIpmZIpmZIp
+bUrOQ/xdj/+SPYrz7UdhdVmo+Mv9tvOvt7s683MzuzMzuzMzuzMzuzMzuwi2692/Hf+CPhmv9Fs
/LfItsg2JVMyJVMyJW9dydtYQNqkTdqkTdqknXMgwubGkJu1m7SfWdo5ezXPd1t3I3UjNcxsy83Y
zNL+oHsXa00LLIhdEFc9w3LemT4WOa13GkG7HdNpkYEWbHrBUwP6+GvkzlSuHJZn0zTa3X4wl+jw
5HA20W39r8vgdJjy/LGHM7/GYTXxxrVwGx1tqKniW7DLC/4PUEsDBBQAAgAIADRgvUj9Jv8ocA4A
AO9pBAAtABwAc3RvcmFnZS9pbmRleGVkZGIvc3RydWN0dXJlZC1jbG9uZS1zdGRlcnIudHh0VVQJ
AAOUPEtXlDxLV3V4CwABBPUBAAAEFAAAAO3dS2/bRgIA4LtP/glEL7WBBJAl+XlLnKZrYFFnk3Tv
skQ72siUV5KT5rK/fUdvSiIpqVYc2flQtIXI4Qw5L843Q9IXb15/iDtf4s7ZWfsuTt68fh//9z7u
9s5rST1uteLGzp9JM2y5ePP6Ta1Xu6p147yQ0ctod+diGl9jFP68nSRxvddsJ+etdncQ7qBaOq5U
j4/K5crB4dHJYhrTY87O6nPHv+20b89bzTjp9VOcj61c2tm7rTWT/SjjxJdEtZeKqXRyVN3Puvhm
8qX9Ob68izu1fkSvksbHTi3p1gbRfmzexp29/XQ2bCRb8y+pXXAib5udkFL+sZ9qSaMVj39PLqkb
kvz4Ke7EUS382y+gk8pJ+E8Uzq/RTG76V/c2JNPufAulHLfi3iSOcR2Ylt/H9qQ+ZIYs2Jtxxgub
9vajvdJfx9fX14eNk3KtWintF2bX6JIHiW0kZ6qV8klpkjPrRfWufXcXCriWRJNSfBEl7a9RryiN
ZWd9ft/phBo9SanggBDkut25HR0xzJXJccOK17jKPHJYXK9r9c/hlD6EqhDvfPjXP5u9fqj01rOz
m7h32fmtGw5sNbufxjFcJNftkMC4jwgp5Ry+mFA02BR+RdfNVhz9uvtrFE620ex+LrjSRrPxZvGU
U/Wv3u8QFg7MKtD/LamEp9flQSXMawbjM5mkEQJeppv+2Vln1Ae0b+/6IRsZQdrJbCwf7uv1uNsN
p/Iyqg/LMwrpdfsF2ezO9JGl0kk/wklUIevuar36p9++TDrC1NVUD0r7My2+303lXdygC0u14XSX
enBUqRwtdo0FOb20tVcHGZ3XlS7cSzbV4E+Pvn+DT6Xx3Rp8v0pNm3s6ZyuhCue2/X7mzjTIcORB
pVIpVQ4Pw2EP7AcK2/DlXNKbKdGDSrX6A3P79Oqkn9u50YQ86/T+PWzL5+EkbuLUjX7J2KkT13px
3rEL46fy8cnJyd8e9OTVl6v4ppmkwl8kq9w35o8qHFoMa8aaPer0DFM/QjLn/Uzr31+mtTL62ux9
mvSn6WHi8WE5mg4ro2r1tFI6LFdLpZ3Vy3B4YakNgzPKuPaFe8CfdzedWiP+I44bcWOFvr90Wq2G
Hif+mrF9+waZa96hUuP8QbW/vPpPKJVhF/Uy2tuNdvcX8nkh5CCbpz/HIS6SRvxXRjml9i7sm+Ta
NJ9mzvuwXFrhhC6TYS3Pq/uZV5C/c6GElmRHAaYWw+Z0AON+cOGAnKafVXy1Rr9WRJcfxo3x4k10
eHBYOT6qHh4fFd813uWlv2ZmRHv1Wqt1Fc51v7jbDWmeZxVLTt+VGXbmVLICpSvGpurdoCKvVuMm
dT5r8yoZOwy5rH6NQq1Ss4ZBC+vUsBm/jNKFOqpFB6flF9Fw/3TLzuReEPrVbrszrHohiSicSRgM
R7/s/rJzPtwVetSr5qDvilrtr3En+hx/G+gkdIDRfRj4TbasUVvXzM71a+ikGAvrZnYHN7t7w/Wx
fXvb7M1261+brdb5YHvxzfMBCS6t+/PJz7SAhZ1LCm54jUXzVfMXW2TycWPIPCivWRQHXu90U5U3
M9pVcmOtGpyVyuyANoxrSg+ZxctrFVnVYKFtZFThzLPezQlz2Xl11e4sqezXzf6tYDyw3b5B3Fyu
pAZyGSPa/sWMZjJeXffizsyIeZgpg1Hu7oOGh72CcsseeM8EiceIXdZZTALOVZTMMwlJvWo0+rMD
4eeXOOoVd3EFI9a7+37NaTQWDhoh6F1qf079fttMwmn/o1/qoRhz7Znq+zKvtbABZx2RMaMf7sRZ
DThOwpb7eGkXs/6E/cqXn53gXB9VEFXGxVYPlwxlC6J7yLU//Pa50kHb1TnlxzhogmFckz9psek5
ktG9+9XShNeZLXkq2T0dN7z6bhlfPPYIZzBO+mLVCcYfdD/N6bE/9CeYlgxIBmEWxhrzR25qQD2+
DS27S6ZvVwvbiottEqxgDnYSpLjlTW6KhetQ70f9dmfw/90X0fA+HHVTkiyXSqUlscT1dqe/sNv3
YHYkpdOj3EhqjcYKMRyEf1Zqc+/Wy+v0AD2/Or7LG4Ok9qUrRmpOczT+W2eEdzysfjOjoJu4lzcA
+j3uDTNwMxX9Zhzdspp+k053cWNx/k/D5RdqKkxxbZ/mQP5qzUwdK6rwldPChy6mNe33dS91tbqW
X5zpnZm1rdvf271v9UKEvc59vXcfSvy81U7ijVVK7Mhgx6PPDz0fpjzSUH1T02PbNX7KiKpX+xz/
Ef/Ve3+fJKGg54pq1CuO+rt20voWde/v7tqdXjc6SDeWF4Np3q8h5VYnrjW+RZ9qoTUdmB40PWh6
8FkJvHhOk8/5nM9/ap8PI/kzue/Gjdet9tXbZmsUZRfpkR7pkR7pkR7pkR7pt4v0eLzOpMZ3oPR4
VmTNlwK2YgYFkzf2WBhEQzREQzREQzREQzREQzREQ/RPtMa8ssLXpPKWP4YA0RAN0RAN0RAN0RAN
0RAN0RAN0RD9HV+Vfl7P8kM0REM0REM0REM0REM0REM0REM0REM0REM0REM0REM0REM0REM0REM0
REO0d6IhGqIhGqIhGqIhGqIhGqIhGqIhGqK9Ew3REA3REA3REA3REA3REA3REA3REO1xboiGaIiG
aIiGaIiGaIiGaIiGaIiGaI9ze5wboiEaoiEaoiEaoiEaoiEaoiEaoiEaoiEaoiEaoiEaoiEaoiEa
oiEaoiHa49zeiYZoiIZoiIZoiIZoiIZoiIZoiIZoiPZONERDNERDNERDNERDNERDNERDNERDtJVo
iIZoiIZoiIZoiIZoiIZoiIZoiIZoK9EQDdEQDdEQDdEQDdEQDdEQDdEQDdFWoq1EQzREQzREQzRE
QzREQzREQzREQ/R3R/Sjrig/xqfAIfohiH4kmD4xq0M0REM0REM0REM0REM0REM0RFuJhmgr0Vai
IRqiIRqiIRqiIRqiIRqiIRqiIRqiIRqiIRqiIRqiIRqiIRqiIRqiIRqiIRqiIRqiIRqiIRqiIRqi
IRqiIRqi//57zmvyeisQvX0c9f72k31/G+mRHumRHumRHumRHumRHumR3rq4dXHr4tbFIRqiIRqi
IRqiIRqiIRqiIdpfrYZoiIZoiIZoiIZoiIZoiIZoiIZoiPZw+dN9uByiIRqiIRqiIRqiIRqiIRqi
IRqiIdrj3BAN0RAN0RAN0RAN0RAN0RAN0RAN0R7nhmiIhmiIhmiIhmiIhmiIhmiIhmiIthIN0RAN
0RAN0RAN0RAN0RAN0RAN0RBtJRqiIRqiIRqiIRqiIRqiIRqiIRqiIXp7EL2Oazexau3DYhAN0RAN
0RAN0RAN0RAN0RAN0RDtcW6Pc0M0REM0REM0REM0REM0REM0REO0lWgr0RAN0RAN0RAN0RAN0RAN
0RAN0RAN0RAN0RAN0RAN0RAN0RAN0RAN0RAN0RDtcW6IhmiIhmiIhmiIhmiIhmiIhmiIhmiIhmiI
hmiIhmiIhmiIhmiIhmiIhmiI9ieu/IkriIZoiIZoiIZoiIZoiIZoiIZoiPZOtHeiIRqiIRqiIRqi
IRqiIRqiIRqiIRqiIRqiIRqiIRqiIRqiIRqiIRqiIRqiIRqiIRqiIRqiIRqiIRqiIRqiIRqiIRqi
fVgMoiEaoiEaoiEaoiEaoiEaoiEaoiH6qaxEQzREQzREQzREQzREQzREQzREQzRE+zq3r3NDNERD
NERDNERDNERDNERDNERDNER7nBuiIRqiIRqiIRqiIRqiIRqiIRqiIRqiIRqiIRqiIRqiIRqiIRqi
IRqiIRqiIRqiIRqiIRqiIRqiIRqiIRqiIRqiIdqHxSAaoiEaoiEaoiEaoiEaoiEaoiH6hyL6eX3p
yur53/571WnUrUP9p1IYwL8G+JEe6ZEe6ZEe6ZEe6ZEe6ZHeuvgzXBfPn9TYBLKXzoqsuar+LGdQ
iicjnibpHwnR212QSI/0SI/0SI/0SI/0SI/0SI/02/6oe/6cwMO57lF3j7pbF4doiIZoiIZoiIZo
iIZoiIZoH13zvjhEQzREQzREQzREQzREQzREQzREW4m2Eg3REA3REA3REA3REA3REA3REA3RVqKt
REM0REM0REM0REM0REM0REM0REM0REM0REM0REM0REM0REM0REM0REM0RHuc2+PcEA3REA3REA3R
EA3REA3REA3REA3REA3REA3REA3REA3REA3REA3REA3REO1xboiGaIiGaIiGaIiGaIiGaIiGaIiG
aCvRVqIhGqIhGqIhGqIhGqIhGqIhGqIh2kq0lWiIhmiIhmiIhmiIhmiIhmiIhmiIthJtJRqiIRqi
IRqiIRqiIRqiIRqiIRqiIRqinxRHnyb4HwnR212QSI/0SI/0SI/0SI/0SI/0SI/0Hi63Lm5d3Lo4
REM0REM0REM0REM0REM0REM0REM0REM0REM0REM0REM0REM0REM0REM0REM0REM0REM0REM0REM0
REM0RHtD22fOIBqiIRqiIRqiIRqiIRqiIRqiIdpKtJVoiIZoiIZoiIZoiIZoiIZoiIZoiLYS/QNX
oleB8cNXq30r3LfCfSsc6ZEe6ZEe6ZEe6ZEe6ZEe6a2LWxe3Lm5dHKIhGqIhGqIhGqIhGqIhGqIh
GqIhGqIhGqIhGqIhGqIhGqIhGqIhGqJ95gyiIRqiIRqiIRqiIRqiIRqiIRqiIdpKNERDNERDNERD
NERDNERDNERDNERDNERDNERDNERDNERDNERDNERDNERDNERDNERDNERDNERDNERD9DNF9GPsAHEQ
B3EQB/GfG+Jr4npltIM4iG8fxNccs/y4m7ab1rO9aT2vXnQr+6OZvWHgeJdJwsfekVXqIfuSCYrP
a0k9brXixvZew8+74+csvWljHW1N9YKlSrk0G6beanfjuUDl4/JsoNvat6v4vB/yYnRbnD+iXM3t
JBe67EFEGowddtix1o7/A1BLAwQUAAIACAA0YL1IOugkjrEFAAAmJQAALgAcAHN0b3JhZ2UvaW5k
ZXhlZGRiL3RyYW5zYWN0aW9uLWFib3J0LXN0ZGVyci50eHRVVAkAA5Q8S1eUPEtXdXgLAAEE9QEA
AAQUAAAA1VpJc9pIFL5z4if0LVAVVwktILhhsGuomho8wZm7kBqssWgxLdmOL/Pb87TSUi+SDIwz
lUpSar2t3/K91y1Wy9sNpq+YzmbhEZPl7Tf8zwuO4oVDXBwE2Ot9Jz6srJa3Syd2tk6EZZToBvV7
q+vJ83L6RUgIdmM/JIsgjFK6kalNDHMy1nVjZI1tXseJZzZza/z3NDwsAh+TONFYl6ZrvcHB8ckQ
CQxvEDVgJGn22ByKNu+T1/AZr4+YOomgOfEeqUMiJxX76B8wHQwVJoQKxnufgsMZF7qJlZwQkVX/
cmuDIRpoPya73c7ybH06crVhFp970BjSdwgQDnCMC/oifCfXP4ZlKIWUircCCxsMdEwjNVDuuSeH
eAFepsqayfLnMk4R2PX4hClGDvxNss42Dd3WEOSy55N9r5uoh/B4hFR2CCoD+hWR8A3FKh1NVi9e
KIVkLDUpGIBkF9JDzpF5peRLYzDwtkLOLFy3jvsMJm0gFXBv8+fvfpxQsauz2R7Ha3oXAWPgR0+F
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
l0n/n5U03kixwlrpUYgSLNbp9dVlUyHumLUf30ydj+myCpVcYgZnqNIKnWhqp2n/brWK3+fY74O6
etcc355tmeoGGywoVE+i5rd279Dqy5pmZxMtzVkho+GOAXVO5Z3mqdUcXwcWRXOlazQX8rbu9fTy
D9WBuaOTB9MrKtBA3K7RlUDZokZQ6aBfULjG9zH5E/9orqgJqpzOrIa+ZOcL+xl4gAJ5ssoPMuxL
4TgvoW+TdZiCwJSsvXQNSTEK4wjLp36XYcVRs8cTnO9effb5VgC458z17Mh3wOmgKchopr9aVGk8
HtbAzxtMj/dCr4NmzQdA3lnG05eBYB9q8H3R90TvpfO/3GuCt75pU98KfNh7uI8DMb9S+NQpzGUR
E/b0q9WVzesOBpZbJVqiHzOc/Uxlss3oGkffNaWOkvz0hjMySeOV8FKKfSH9XjP/K4/TiWG/3pfJ
YCLdtC1T51HLtAbWXh4FDstp/QRQSwMEFAACAAgAN2C9SHSjiSD+AAAAJwMAAD8AHABzdG9yYWdl
L2luZGV4ZWRkYi90cmFuc2FjdGlvbi1jcmFzaC1pbi10YXNrcy1wcml2YXRlLXN0ZGVyci50eHRV
VAkAA5k8S1eZPEtXdXgLAAEE9QEAAAQUAAAArZLLTsQwDEX3XfEJWbYLpL6mU3VHW1XqaiQoH2Aa
i4lInSHpjMTfk/Aa6AOENItEiuV7bF+nrcs71CfURcFhhAcwWCki7EehqJLKIGfXLErDbZJuszhO
ok2We/ckno/Y1mU90xRFP9E3Wg2VFEijJV1NaXHo+QMICtgM+ifK/0YK8ywNvAWGoJN6wt0BNTjQ
DfFOAxl4w3ZiQO0HXnu2QR2Q6vIWLceMFVCPUiJfIi9nus4uzlu3SP0yWCO0rbSu3QNxiZ/vL4uM
LdntUSMDe9zC8yS3F7P9cUGPbrrGllH65b1pFzj/gE79GP2DPl1YtEnSNLgwalU59/9/2a9QSwME
FAACAAgAN2C9SEy6UfwrAQAANQQAADcAHABzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1j
cmFzaC1pbi10YXNrcy1zdGRlcnIudHh0VVQJAAOZPEtXmTxLV3V4CwABBPUBAAAEFAAAAK2Sy26D
MBBF96zyCV6C1EoYzKMsAVVilapJP8DBQ4NKxtSQPv6+RhWkDZA2EgsvPJp75vqOszTegHoDFUWy
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
NaaUlZKZY2PNbDm7B6hTdotRjah3rOUGvwa/Br8Gvwa/Br8Gvwa/Br8Gvwa/Br8Gvwa/Br8Gvwa/
Br8Gvwa/Br8Gvwa/Br9S/J7hSjlbr1HBX3hvUZpG1bi+I+ANC3ZeXB8uz11cC5Md96K1jbrO5UNj
dd2LzY21lEl1a60hVt4y10ztbbT2XrluNz/2YlmqzTFOPOlGWbYK32Y09n379W1GH6QPKJJhWbgt
l+Sh1IdXChpaYBYZ6cjYJSqv4ZuWI4keTNGRdPeU7LtidbssIOG6h6IdWpvOoBMbdxTOO+4FD64X
/H/4Vsi/+3rA+ZPnMg20/Brv0M/plJ5+Q1jP11gotOm1TednazsMnUDRdvifK9QnliYuu/Ii2zQl
jm2mrEaZrc323IOGy+o9hQMid+TyRGvwewGr96emuyPSIYfrK6GheCdM26cvvpx0YeqP4rR/AFBL
AwQUAAIACAA6YL1I+0PgsTAFAADxOQAANQAcAHN0b3JhZ2UvaW5kZXhlZGRiL3ZlcnNpb24tY2hh
bmdlLWV4Y2x1c2l2ZS1zdGRlcnIudHh0VVQJAAOgPEtXoDxLV3V4CwABBPUBAAAEFAAAAO1bW2/i
OBR+54mf4LcBaSqZXCDw1sJUi7RautPOvofEFG+DwyZpu/Oyv32OEwhOYjvQUrXVWlWLSM7N53z+
7NQn89nVLUmeSDKZhH7mL/2UTGPGSJDRmE2jOCUhukADB49sZzS0LHvgDr3OD0b/eSTz2dWsoTOZ
BDX96yTeTCNKWAaWunVrFu70Nj5lfdQw2mqqJ1jC3tDpdyQ2KHuKH8hiSxKfG7pk4V3is9TPzd7R
DUl6/c78kIZ4S9js6jsBO2k29VlAooiEMstySR7ZZ7L3fy67OoRYo3hNE0i4WnftszAi++9lCCkE
f7cmCUE+/PKEerYHfxCUKaTsnhflGtzEyU+oColIVtrY1+yQ77u4rJ9UUnNXEnHjUq+Pevjf0Wq1
ckPP8h0b90Gzdci5s7NkxrEtD5eZOc3UTbzdAn59hsoqfkUsfkaZzkdb1NPHJAEElp40CiCyipPN
TqPISqmX16AXLqWaRbmu/OABQroFKJDO7Z+/04xLiVcnk3uSLZJvKShGNF3vLczZKgYH+zkNnhTq
TUcovwTf0IpGBH3pfkEQbEjTB81IQxrOmiEL+Av4BG4oygr6XwsIxysrB6FqGuwjKX2A4EJkwMkk
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
EyrJC8s3JZ/qu+pk5JLTbkt8f+o5I9d3nN75PTRshdXrY+6NM+Dbbi1pDH8BxBCfwf3O1PeRceDF
cP/jLZkXnlCXr9V1pUhstyyvdu6FpWmo7ts79gqHS74Hchu8o7r7yuLSeNhogilH25taPVnbInjk
OKNSy2hHduHLwsXZ/2qL4ZxqkH5E03SFQQ46vwQYvVRZFIfJec37awvFhSYYVLIphXr1ErUg2CCz
lNcrITvAniC8l/zIph+POWpV0djDQKNFMof1+TrJQVZoel8URa1Xv8BJLa0878uUdctufoeoHThi
V0Wlg0tdVUa989SE3IlbFdrSnytQ32wWB5qqa7h+a6Yt36EaLTpEe3Vhxv8DUEsDBAoAAAAAAGdf
vUgAAAAAAAAAAAAAAAAPABwAc3RvcmFnZS93ZWJzcWwvVVQJAAMCPEtXiz5LV3V4CwABBPUBAAAE
FAAAAFBLAwQUAAIACABjX71I3v266a8AAADuAAAALQAcAHN0b3JhZ2Uvd2Vic3FsL2FsdGVyLXRv
LWluZm8tdGFibGUtc3RkZXJyLnR4dFVUCQAD+TtLV/k7S1d1eAsAAQT1AQAABBQAAABlzkELgkAQ
BeC7v2JOolBt4CX2FmWXCEFLz7s6hbDOyLRb9O/TqFO3ebzvweRlWZQaLmSsQ/AMPggBE/TUCg5I
3jgwwfPyYdoQBkjWQOzBEKAISxqpml0Y8K72xhuVN5Vq0B57ryoO0uKcdiyoTtwFN7En2m6S1tzx
M5mPVTuOSbbJUtBgmR18R1r/hNYjypVlKEakLXU1Sn99JTNe/Ot8fg3iqTkftK689HSDOI3eUEsD
BBQAAgAIAGNfvUje/brprwAAAO4AAAA1ABwAc3RvcmFnZS93ZWJzcWwvY2hhbmdlLXZlcnNpb24t
aGFuZGxlLXJldXNlLXN0ZGVyci50eHRVVAkAA/k7S1f5O0tXdXgLAAEE9QEAAAQUAAAAZc5BC4JA
EAXgu79iTqJQbeAl9hZllwhBS8+7OoWwzsi0W/Tv06hTt3m878HkZVmUGi5krEPwDD4IARP01AoO
SN44MMHz8mHaEAZI1kDswRCgCEsaqZpdGPCu9sYblTeVatAee68qDtLinHYsqE7cBTexJ9puktbc
8TOZj1U7jkm2yVLQYJkdfEda/4TWI8qVZShGpC11NUp/fSUzXvzrfH4N4qk5H7SuvPR0gziN3lBL
AwQUAAIACABjX71I3v266a8AAADuAAAARgAcAHN0b3JhZ2Uvd2Vic3FsL2NoYW5nZS12ZXJzaW9u
LW5vLWNyYXNoLW9uLXByZWZsaWdodC1mYWlsdXJlLXN0ZGVyci50eHRVVAkAA/k7S1f5O0tXdXgL
AAEE9QEAAAQUAAAAZc5BC4JAEAXgu79iTqJQbeAl9hZllwhBS8+7OoWwzsi0W/Tv06hTt3m878Hk
ZVmUGi5krEPwDD4IARP01AoOSN44MMHz8mHaEAZI1kDswRCgCEsaqZpdGPCu9sYblTeVatAee68q
DtLinHYsqE7cBTexJ9puktbc8TOZj1U7jkm2yVLQYJkdfEda/4TWI8qVZShGpC11NUp/fSUzXvzr
fH4N4qk5H7SuvPR0gziN3lBLAwQUAAIACABjX71I+Ud02LoAAAC4AwAAKAAcAHN0b3JhZ2Uvd2Vi
c3FsL2NoYW5nZS12ZXJzaW9uLXN0ZGVyci50eHRVVAkAA/o7S1f6O0tXdXgLAAEE9QEAAAQUAAAA
7Y+7CsJAEEX7fMVUkoC6go1sJxobESHxUe8mEwlsZsJkV/HvTUQr/0DSzWXOhXvSLDtmGs5krEPw
DD4IARPUVAg2SN44MMHz7G6KEBqIF0DswRCgCEsSqQu70GCntsYblV5zdUW7r73KOUiBQ9qwoDpw
GVyPPdCWPWlNh+/KcMyLto2Xq2UCGiyzg09J6y+hdYtSsTTHFmlN5QWlrp7xAE9/6XSYBpP+c9pp
nXup6QaTJEpH29H2L2xfUEsDBBQAAgAIAGNfvUje/brprwAAAO4AAAAyABwAc3RvcmFnZS93ZWJz
cWwvY2xvc2UtZHVyaW5nLXN0cmVzcy10ZXN0LXN0ZGVyci50eHRVVAkAA/o7S1f6O0tXdXgLAAEE
9QEAAAQUAAAAZc5BC4JAEAXgu79iTqJQbeAl9hZllwhBS8+7OoWwzsi0W/Tv06hTt3m878HkZVmU
Gi5krEPwDD4IARP01AoOSN44MMHz8mHaEAZI1kDswRCgCEsaqZpdGPCu9sYblTeVatAee68qDtLi
nHYsqE7cBTexJ9puktbc8TOZj1U7jkm2yVLQYJkdfEda/4TWI8qVZShGpC11NUp/fSUzXvzrfH4N
4qk5H7SuvPR0gziN3lBLAwQUAAIACABjX71Iq3j7obUAAADcAQAANAAcAHN0b3JhZ2Uvd2Vic3Fs
L2RhdGFiYXNlLWxvY2stYWZ0ZXItcmVsb2FkLXN0ZGVyci50eHRVVAkAA/o7S1f6O0tXdXgLAAEE
9QEAAAQUAAAA5c+xCsJADAbg3afIJC2oJ3SR20TrIlJotc53bSqFa1LSO8W3txWdfAS3/OT7IUnz
PMs1XMhYh+AZfBACJmipEuyQvHFggufl3VQhdBCtgdiDIUARlnimSnahw0HtjTcqvRbqivbYelVw
kAqntGNBdeI6uJE90NajtGbAd2UaVlXfR8kmiUGDZXbwKWn9FVr3KA1Ll/VIW6pLlLZ5RhNe/Op0
Og3m4+Z80Lrw0tIN5vEs/atvX1BLAwQUAAIACABjX71I3v266a8AAADuAAAAKQAcAHN0b3JhZ2Uv
d2Vic3FsL2VtcHR5LXN0YXRlbWVudC1zdGRlcnIudHh0VVQJAAP6O0tX+jtLV3V4CwABBPUBAAAE
FAAAAGXOQQuCQBAF4Lu/Yk6iUG3gJfYWZZcIQUvPuzqFsM7ItFv079OoU7d5vO/B5GVZlBouZKxD
8Aw+CAET9NQKDkjeODDB8/Jh2hAGSNZA7MEQoAhLGqmaXRjwrvbGG5U3lWrQHnuvKg7S4px2LKhO
3AU3sSfabpLW3PEzmY9VO45JtslS0GCZHXxHWv+E1iPKlWUoRqQtdTVKf30lM17863x+DeKpOR+0
rrz0dIM4jd5QSwMEFAACAAgAZF+9SN79uumvAAAA7gAAACoAHABzdG9yYWdlL3dlYnNxbC9leGVj
dXRlLXNxbC1hcmdzLXN0ZGVyci50eHRVVAkAA/s7S1f7O0tXdXgLAAEE9QEAAAQUAAAAZc5BC4JA
EAXgu79iTqJQbeAl9hZllwhBS8+7OoWwzsi0W/Tv06hTt3m878HkZVmUGi5krEPwDD4IARP01AoO
SN44MMHz8mHaEAZI1kDswRCgCEsaqZpdGPCu9sYblTeVatAee68qDtLinHYsqE7cBTexJ9puktbc
8TOZj1U7jkm2yVLQYJkdfEda/4TWI8qVZShGpC11NUp/fSUzXvzrfH4N4qk5H7SuvPR0gziN3lBL
AwQUAAIACABkX71I3v266a8AAADuAAAAMgAcAHN0b3JhZ2Uvd2Vic3FsL2V4ZWN1dGUtc3FsLXJv
d3NBZmZlY3RlZC1zdGRlcnIudHh0VVQJAAP7O0tX+ztLV3V4CwABBPUBAAAEFAAAAGXOQQuCQBAF
4Lu/Yk6iUG3gJfYWZZcIQUvPuzqFsM7ItFv079OoU7d5vO/B5GVZlBouZKxD8Aw+CAET9NQKDkje
ODDB8/Jh2hAGSNZA7MEQoAhLGqmaXRjwrvbGG5U3lWrQHnuvKg7S4px2LKhO3AU3sSfabpLW3PEz
mY9VO45JtslS0GCZHXxHWv+E1iPKlWUoRqQtdTVKf30lM17863x+DeKpOR+0rrz0dIM4jd5QSwME
FAACAAgAZF+9SN79uumvAAAA7gAAAD8AHABzdG9yYWdlL3dlYnNxbC9leGVjdXRlc3FsLWFjY2Vw
dHMtb25seS1vbmUtc3RhdGVtZW50LXN0ZGVyci50eHRVVAkAA/s7S1f7O0tXdXgLAAEE9QEAAAQU
AAAAZc5BC4JAEAXgu79iTqJQbeAl9hZllwhBS8+7OoWwzsi0W/Tv06hTt3m878HkZVmUGi5krEPw
DD4IARP01AoOSN44MMHz8mHaEAZI1kDswRCgCEsaqZpdGPCu9sYblTeVatAee68qDtLinHYsqE7c
BTexJ9puktbc8TOZj1U7jkm2yVLQYJkdfEda/4TWI8qVZShGpC11NUp/fSUzXvzrfH4N4qk5H7Su
vPR0gziN3lBLAwQUAAIACABlX71I3v266a8AAADuAAAALgAcAHN0b3JhZ2Uvd2Vic3FsL2hhc2gt
Y2hhbmdlLXdpdGgteGhyLXN0ZGVyci50eHRVVAkAA/07S1f9O0tXdXgLAAEE9QEAAAQUAAAAZc5B
C4JAEAXgu79iTqJQbeAl9hZllwhBS8+7OoWwzsi0W/Tv06hTt3m878HkZVmUGi5krEPwDD4IARP0
1AoOSN44MMHz8mHaEAZI1kDswRCgCEsaqZpdGPCu9sYblTeVatAee68qDtLinHYsqE7cBTexJ9pu
ktbc8TOZj1U7jkm2yVLQYJkdfEda/4TWI8qVZShGpC11NUp/fSUzXvzrfH4N4qk5H7SuvPR0gziN
3lBLAwQUAAIACABlX71Iq3j7obUAAADcAQAAPwAcAHN0b3JhZ2Uvd2Vic3FsL211bHRpcGxlLWRh
dGFiYXNlcy1nYXJiYWdlLWNvbGxlY3Rpb24tc3RkZXJyLnR4dFVUCQAD/TtLV/07S1d1eAsAAQT1
AQAABBQAAADlz7EKwkAMBuDdp8gkLagndJHbROsiUmi1zndtKoVrUtI7xbe3FZ18BLf85PshSfM8
yzVcyFiH4Bl8EAImaKkS7JC8cWCC5+XdVCF0EK2B2IMhQBGWeKZKdqHDQe2NNyq9FuqK9th6VXCQ
Cqe0Y0F14jq4kT3Q1qO0ZsB3ZRpWVd9HySaJQYNldvApaf0VWvcoDUuX9UhbqkuUtnlGE1786nQ6
Debj5nzQuvDS0g3m8Sz9q29fUEsDBBQAAgAIAGVfvUg8ZvSMuQAAAMoCAABEABwAc3RvcmFnZS93
ZWJzcWwvbXVsdGlwbGUtdHJhbnNhY3Rpb25zLW9uLWRpZmZlcmVudC1oYW5kbGVzLXN0ZGVyci50
eHRVVAkAA/07S1f9O0tXdXgLAAEE9QEAAAQUAAAA7c+/CsJADAbwvU+RqbSgnuAit4nWRURo/TPf
takUrklJ7xTf3lZ08g3ELSG/D/JleX7INZzIWIfgGXwQAiZoqBRskbxxYILn6c2UIbSQzIHYgyFA
EZY0Umd2ocVebYw3KrsU6oJ213hVcJASx23NgmrPVXADu6OtBmlNj6/IOMzKrksWy0UKGiyzg3dI
64/QukOpWdpDh7Si6ozS1I9kxJNvnY2vQTxcjlutCy8NXSFOo+zf9mfbPgFQSwMEFAACAAgAZV+9
SN79uumvAAAA7gAAAC8AHABzdG9yYWdlL3dlYnNxbC9tdWx0aXBsZS10cmFuc2FjdGlvbnMtc3Rk
ZXJyLnR4dFVUCQAD/TtLV/07S1d1eAsAAQT1AQAABBQAAABlzkELgkAQBeC7v2JOolBt4CX2FmWX
CEFLz7s6hbDOyLRb9O/TqFO3ebzvweRlWZQaLmSsQ/AMPggBE/TUCg5I3jgwwfPyYdoQBkjWQOzB
EKAISxqpml0Y8K72xhuVN5Vq0B57ryoO0uKcdiyoTtwFN7En2m6S1tzxM5mPVTuOSbbJUtBgmR18
R1r/hNYjypVlKEakLXU1Sn99JTNe/Ot8fg3iqTkftK689HSDOI3eUEsDBBQAAgAIAGVfvUje/brp
rwAAAO4AAAAoABwAc3RvcmFnZS93ZWJzcWwvbnVsbC1jYWxsYmFja3Mtc3RkZXJyLnR4dFVUCQAD
/jtLV/47S1d1eAsAAQT1AQAABBQAAABlzkELgkAQBeC7v2JOolBt4CX2FmWXCEFLz7s6hbDOyLRb
9O/TqFO3ebzvweRlWZQaLmSsQ/AMPggBE/TUCg5I3jgwwfPyYdoQBkjWQOzBEKAISxqpml0Y8K72
xhuVN5Vq0B57ryoO0uKcdiyoTtwFN7En2m6S1tzxM5mPVTuOSbbJUtBgmR18R1r/hNYjypVlKEak
LXU1Sn99JTNe/Ot8fg3iqTkftK689HSDOI3eUEsDBBQAAgAIAGVfvUirePuhtQAAANwBAABIABwA
c3RvcmFnZS93ZWJzcWwvb3Blbi1kYXRhYmFzZS1jcmVhdGlvbi1jYWxsYmFjay1pc29sYXRlZC13
b3JsZC1zdGRlcnIudHh0VVQJAAP+O0tX/jtLV3V4CwABBPUBAAAEFAAAAOXPsQrCQAwG4N2nyCQt
qCd0kdtE6yJSaLXOd20qhWtS0jvFt7cVnXwEt/zk+yFJ8zzLNVzIWIfgGXwQAiZoqRLskLxxYILn
5d1UIXQQrYHYgyFAEZZ4pkp2ocNB7Y03Kr0W6or22HpVcJAKp7RjQXXiOriRPdDWo7RmwHdlGlZV
30fJJolBg2V28Clp/RVa9ygNS5f1SFuqS5S2eUYTXvzqdDoN5uPmfNC68NLSDebxLP2rb19QSwME
FAACAAgAZV+9SPlHdNi6AAAAuAMAADkAHABzdG9yYWdlL3dlYnNxbC9vcGVuLWRhdGFiYXNlLWNy
ZWF0aW9uLWNhbGxiYWNrLXN0ZGVyci50eHRVVAkAA/47S1f+O0tXdXgLAAEE9QEAAAQUAAAA7Y+7
CsJAEEX7fMVUkoC6go1sJxobESHxUe8mEwlsZsJkV/HvTUQr/0DSzWXOhXvSLDtmGs5krEPwDD4I
ARPUVAg2SN44MMHz7G6KEBqIF0DswRCgCEsSqQu70GCntsYblV5zdUW7r73KOUiBQ9qwoDpwGVyP
PdCWPWlNh+/KcMyLto2Xq2UCGiyzg09J6y+hdYtSsTTHFmlN5QWlrp7xAE9/6XSYBpP+c9ppnXup
6QaTJEpH29H2L2xfUEsDBBQAAgAIAGVfvUje/brprwAAAO4AAAA1ABwAc3RvcmFnZS93ZWJzcWwv
b3Blbi1kYXRhYmFzZS1lbXB0eS12ZXJzaW9uLXN0ZGVyci50eHRVVAkAA/47S1f+O0tXdXgLAAEE
9QEAAAQUAAAAZc5BC4JAEAXgu79iTqJQbeAl9hZllwhBS8+7OoWwzsi0W/Tv06hTt3m878HkZVmU
Gi5krEPwDD4IARP01AoOSN44MMHz8mHaEAZI1kDswRCgCEsaqZpdGPCu9sYblTeVatAee68qDtLi
nHYsqE7cBTexJ9puktbc8TOZj1U7jkm2yVLQYJkdfEda/4TWI8qVZShGpC11NUp/fSUzXvzrfH4N
4qk5H7SuvPR0gziN3lBLAwQUAAIACABlX71I3v266a8AAADuAAAANAAcAHN0b3JhZ2Uvd2Vic3Fs
L29wZW4tZGF0YWJhc2UtZXhwYW5kLXF1b3RhLXN0ZGVyci50eHRVVAkAA/47S1f+O0tXdXgLAAEE
9QEAAAQUAAAAZc5BC4JAEAXgu79iTqJQbeAl9hZllwhBS8+7OoWwzsi0W/Tv06hTt3m878HkZVmU
Gi5krEPwDD4IARP01AoOSN44MMHz8mHaEAZI1kDswRCgCEsaqZpdGPCu9sYblTeVatAee68qDtLi
nHYsqE7cBTexJ9puktbc8TOZj1U7jkm2yVLQYJkdfEda/4TWI8qVZShGpC11NUp/fSUzXvzrfH4N
4qk5H7SuvPR0gziN3lBLAwQUAAIACABlX71Iq3j7obUAAADcAQAAOQAcAHN0b3JhZ2Uvd2Vic3Fs
L29wZW4tZGF0YWJhc2Utc2V0LWVtcHR5LXZlcnNpb24tc3RkZXJyLnR4dFVUCQAD/jtLV/47S1d1
eAsAAQT1AQAABBQAAADlz7EKwkAMBuDdp8gkLagndJHbROsiUmi1zndtKoVrUtI7xbe3FZ18BLf8
5PshSfM8yzVcyFiH4Bl8EAImaKkS7JC8cWCC5+XdVCF0EK2B2IMhQBGWeKZKdqHDQe2NNyq9FuqK
9th6VXCQCqe0Y0F14jq4kT3Q1qO0ZsB3ZRpWVd9HySaJQYNldvApaf0VWvcoDUuX9UhbqkuUtnlG
E1786nQ6Debj5nzQuvDS0g3m8Sz9q29fUEsDBBQAAgAIAGVfvUirePuhtQAAANwBAABFABwAc3Rv
cmFnZS93ZWJzcWwvb3Blbi1kYXRhYmFzZS13aGlsZS10cmFuc2FjdGlvbi1pbi1wcm9ncmVzcy1z
dGRlcnIudHh0VVQJAAP+O0tX/jtLV3V4CwABBPUBAAAEFAAAAOXPsQrCQAwG4N2nyCQtqCd0kdtE
6yJSaLXOd20qhWtS0jvFt7cVnXwEt/zk+yFJ8zzLNVzIWIfgGXwQAiZoqRLskLxxYILn5d1UIXQQ
rYHYgyFAEZZ4pkp2ocNB7Y03Kr0W6or22HpVcJAKp7RjQXXiOriRPdDWo7RmwHdlGlZV30fJJolB
g2V28Clp/RVa9ygNS5f1SFuqS5S2eUYTXvzqdDoN5uPmfNC68NLSDebxLP2rb19QSwMEFAACAAgA
Zl+9SN79uumvAAAA7gAAADkAHABzdG9yYWdlL3dlYnNxbC9wcml2YXRlLWJyb3dzaW5nLW5vcmVh
ZC1ub3dyaXRlLXN0ZGVyci50eHRVVAkAA/87S1f/O0tXdXgLAAEE9QEAAAQUAAAAZc5BC4JAEAXg
u79iTqJQbeAl9hZllwhBS8+7OoWwzsi0W/Tv06hTt3m878HkZVmUGi5krEPwDD4IARP01AoOSN44
MMHz8mHaEAZI1kDswRCgCEsaqZpdGPCu9sYblTeVatAee68qDtLinHYsqE7cBTexJ9puktbc8TOZ
j1U7jkm2yVLQYJkdfEda/4TWI8qVZShGpC11NUp/fSUzXvzrfH4N4qk5H7SuvPR0gziN3lBLAwQU
AAIACABmX71IPGb0jLkAAADKAgAARwAcAHN0b3JhZ2Uvd2Vic3FsL3JlYWQtYW5kLXdyaXRlLXRy
YW5zYWN0aW9ucy1kb250LXJ1bi10b2dldGhlci1zdGRlcnIudHh0VVQJAAP/O0tX/ztLV3V4CwAB
BPUBAAAEFAAAAO3PvwrCQAwG8L1Pkam0oJ7gIreJ1kVEaP0z37WpFK5JSe8U395WdPINxC0hvw/y
ZXl+yDWcyFiH4Bl8EAImaKgUbJG8cWCC5+nNlCG0kMyB2IMhQBGWNFJndqHFXm2MNyq7FOqCdtd4
VXCQEsdtzYJqz1VwA7ujrQZpTY+vyDjMyq5LFstFChoss4N3SOuP0LpDqVnaQ4e0ouqM0tSPZMST
b52Nr0E8XI5brQsvDV0hTqPs3/Zn2z4BUEsDBBQAAgAIAGZfvUirePuhtQAAANwBAABAABwAc3Rv
cmFnZS93ZWJzcWwvcmVhZC10cmFuc2FjdGlvbnMtcnVubmluZy1jb25jdXJyZW50bHktc3RkZXJy
LnR4dFVUCQAD/ztLV/87S1d1eAsAAQT1AQAABBQAAADlz7EKwkAMBuDdp8gkLagndJHbROsiUmi1
zndtKoVrUtI7xbe3FZ18BLf85PshSfM8yzVcyFiH4Bl8EAImaKkS7JC8cWCC5+XdVCF0EK2B2IMh
QBGWeKZKdqHDQe2NNyq9FuqK9th6VXCQCqe0Y0F14jq4kT3Q1qO0ZsB3ZRpWVd9HySaJQYNldvAp
af0VWvcoDUuX9UhbqkuUtnlGE1786nQ6Debj5nzQuvDS0g3m8Sz9q29fUEsDBBQAAgAIAGZfvUje
/brprwAAAO4AAAAoABwAc3RvcmFnZS93ZWJzcWwvc3FsLWRhdGEtdHlwZXMtc3RkZXJyLnR4dFVU
CQAD/ztLV/87S1d1eAsAAQT1AQAABBQAAABlzkELgkAQBeC7v2JOolBt4CX2FmWXCEFLz7s6hbDO
yLRb9O/TqFO3ebzvweRlWZQaLmSsQ/AMPggBE/TUCg5I3jgwwfPyYdoQBkjWQOzBEKAISxqpml0Y
8K72xhuVN5Vq0B57ryoO0uKcdiyoTtwFN7En2m6S1tzxM5mPVTuOSbbJUtBgmR18R1r/hNYjypVl
KEakLXU1Sn99JTNe/Ot8fg3iqTkftK689HSDOI3eUEsDBBQAAgAIAGZfvUirePuhtQAAANwBAABB
ABwAc3RvcmFnZS93ZWJzcWwvc3RhdGVtZW50LWVycm9yLWNhbGxiYWNrLWlzb2xhdGVkLXdvcmxk
LXN0ZGVyci50eHRVVAkAA/87S1f/O0tXdXgLAAEE9QEAAAQUAAAA5c+xCsJADAbg3afIJC2oJ3SR
20TrIlJotc53bSqFa1LSO8W3txWdfAS3/OT7IUnzPMs1XMhYh+AZfBACJmipEuyQvHFggufl3VQh
dBCtgdiDIUARlnimSnahw0HtjTcqvRbqivbYelVwkAqntGNBdeI6uJE90NajtGbAd2UaVlXfR8km
iUGDZXbwKWn9FVr3KA1Ll/VIW6pLlLZ5RhNe/Op0Og3m4+Z80Lrw0tIN5vEs/atvX1BLAwQUAAIA
CABmX71I3v266a8AAADuAAAAMgAcAHN0b3JhZ2Uvd2Vic3FsL3N0YXRlbWVudC1lcnJvci1jYWxs
YmFjay1zdGRlcnIudHh0VVQJAAMAPEtXADxLV3V4CwABBPUBAAAEFAAAAGXOQQuCQBAF4Lu/Yk6i
UG3gJfYWZZcIQUvPuzqFsM7ItFv079OoU7d5vO/B5GVZlBouZKxD8Aw+CAET9NQKDkjeODDB8/Jh
2hAGSNZA7MEQoAhLGqmaXRjwrvbGG5U3lWrQHnuvKg7S4px2LKhO3AU3sSfabpLW3PEzmY9VO45J
tslS0GCZHXxHWv+E1iPKlWUoRqQtdTVKf30lM17863x+DeKpOR+0rrz0dIM4jd5QSwMEFAACAAgA
Zl+9SKt4+6G1AAAA3AEAAEMAHABzdG9yYWdlL3dlYnNxbC9zdGF0ZW1lbnQtc3VjY2Vzcy1jYWxs
YmFjay1pc29sYXRlZC13b3JsZC1zdGRlcnIudHh0VVQJAAMAPEtXADxLV3V4CwABBPUBAAAEFAAA
AOXPsQrCQAwG4N2nyCQtqCd0kdtE6yJSaLXOd20qhWtS0jvFt7cVnXwEt/zk+yFJ8zzLNVzIWIfg
GXwQAiZoqRLskLxxYILn5d1UIXQQrYHYgyFAEZZ4pkp2ocNB7Y03Kr0W6or22HpVcJAKp7RjQXXi
OriRPdDWo7RmwHdlGlZV30fJJolBg2V28Clp/RVa9ygNS5f1SFuqS5S2eUYTXvzqdDoN5uPmfNC6
8NLSDebxLP2rb19QSwMEFAACAAgAZl+9SN79uumvAAAA7gAAACoAHABzdG9yYWdlL3dlYnNxbC9z
dWNjZXNzLWNhbGxiYWNrLXN0ZGVyci50eHRVVAkAAwA8S1cAPEtXdXgLAAEE9QEAAAQUAAAAZc5B
C4JAEAXgu79iTqJQbeAl9hZllwhBS8+7OoWwzsi0W/Tv06hTt3m878HkZVmUGi5krEPwDD4IARP0
1AoOSN44MMHz8mHaEAZI1kDswRCgCEsaqZpdGPCu9sYblTeVatAee68qDtLinHYsqE7cBTexJ9pu
ktbc8TOZj1U7jkm2yVLQYJkdfEda/4TWI8qVZShGpC11NUp/fSUzXvzrfH4N4qk5H7SuvPR0gziN
3lBLAwQUAAIACABmX71I3v266a8AAADuAAAAQwAcAHN0b3JhZ2Uvd2Vic3FsL3N1Y2Nlc3MtY2Fs
bGJhY2std2hlbi1wYWdlLWRlZmVycy1sb2FkaW5nLXN0ZGVyci50eHRVVAkAAwA8S1cAPEtXdXgL
AAEE9QEAAAQUAAAAZc5BC4JAEAXgu79iTqJQbeAl9hZllwhBS8+7OoWwzsi0W/Tv06hTt3m878Hk
ZVmUGi5krEPwDD4IARP01AoOSN44MMHz8mHaEAZI1kDswRCgCEsaqZpdGPCu9sYblTeVatAee68q
DtLinHYsqE7cBTexJ9puktbc8TOZj1U7jkm2yVLQYJkdfEda/4TWI8qVZShGpC11NUp/fSUzXvzr
fH4N4qk5H7SuvPR0gziN3lBLAwQUAAIACABnX71I3v266a8AAADuAAAAKQAcAHN0b3JhZ2Uvd2Vi
c3FsL3Rlc3QtYXV0aG9yaXplci1zdGRlcnIudHh0VVQJAAMBPEtXATxLV3V4CwABBPUBAAAEFAAA
AGXOQQuCQBAF4Lu/Yk6iUG3gJfYWZZcIQUvPuzqFsM7ItFv079OoU7d5vO/B5GVZlBouZKxD8Aw+
CAET9NQKDkjeODDB8/Jh2hAGSNZA7MEQoAhLGqmaXRjwrvbGG5U3lWrQHnuvKg7S4px2LKhO3AU3
sSfabpLW3PEzmY9VO45JtslS0GCZHXxHWv+E1iPKlWUoRqQtdTVKf30lM17863x+DeKpOR+0rrz0
dIM4jd5QSwMEFAACAAgAZ1+9SN79uumvAAAA7gAAAD4AHABzdG9yYWdlL3dlYnNxbC90cmFuc2Fj
dGlvbi1jYWxsYmFjay1leGNlcHRpb24tY3Jhc2gtc3RkZXJyLnR4dFVUCQADATxLVwE8S1d1eAsA
AQT1AQAABBQAAABlzkELgkAQBeC7v2JOolBt4CX2FmWXCEFLz7s6hbDOyLRb9O/TqFO3ebzvweRl
WZQaLmSsQ/AMPggBE/TUCg5I3jgwwfPyYdoQBkjWQOzBEKAISxqpml0Y8K72xhuVN5Vq0B57ryoO
0uKcdiyoTtwFN7En2m6S1tzxM5mPVTuOSbbJUtBgmR18R1r/hNYjypVlKEakLXU1Sn99JTNe/Ot8
fg3iqTkftK689HSDOI3eUEsDBBQAAgAIAGdfvUirePuhtQAAANwBAAA9ABwAc3RvcmFnZS93ZWJz
cWwvdHJhbnNhY3Rpb24tY2FsbGJhY2staXNvbGF0ZWQtd29ybGQtc3RkZXJyLnR4dFVUCQADATxL
VwE8S1d1eAsAAQT1AQAABBQAAADlz7EKwkAMBuDdp8gkLagndJHbROsiUmi1zndtKoVrUtI7xbe3
FZ18BLf85PshSfM8yzVcyFiH4Bl8EAImaKkS7JC8cWCC5+XdVCF0EK2B2IMhQBGWeKZKdqHDQe2N
Nyq9FuqK9th6VXCQCqe0Y0F14jq4kT3Q1qO0ZsB3ZRpWVd9HySaJQYNldvApaf0VWvcoDUuX9Uhb
qkuUtnlGE1786nQ6Debj5nzQuvDS0g3m8Sz9q29fUEsDBBQAAgAIAGdfvUirePuhtQAAANwBAABD
ABwAc3RvcmFnZS93ZWJzcWwvdHJhbnNhY3Rpb24tZXJyb3ItY2FsbGJhY2staXNvbGF0ZWQtd29y
bGQtc3RkZXJyLnR4dFVUCQADATxLVwE8S1d1eAsAAQT1AQAABBQAAADlz7EKwkAMBuDdp8gkLagn
dJHbROsiUmi1zndtKoVrUtI7xbe3FZ18BLf85PshSfM8yzVcyFiH4Bl8EAImaKkS7JC8cWCC5+Xd
VCF0EK2B2IMhQBGWeKZKdqHDQe2NNyq9FuqK9th6VXCQCqe0Y0F14jq4kT3Q1qO0ZsB3ZRpWVd9H
ySaJQYNldvApaf0VWvcoDUuX9UhbqkuUtnlGE1786nQ6Debj5nzQuvDS0g3m8Sz9q29fUEsDBBQA
AgAIAGdfvUje/brprwAAAO4AAAA0ABwAc3RvcmFnZS93ZWJzcWwvdHJhbnNhY3Rpb24tZXJyb3It
Y2FsbGJhY2stc3RkZXJyLnR4dFVUCQADAjxLVwI8S1d1eAsAAQT1AQAABBQAAABlzkELgkAQBeC7
v2JOolBt4CX2FmWXCEFLz7s6hbDOyLRb9O/TqFO3ebzvweRlWZQaLmSsQ/AMPggBE/TUCg5I3jgw
wfPyYdoQBkjWQOzBEKAISxqpml0Y8K72xhuVN5Vq0B57ryoO0uKcdiyoTtwFN7En2m6S1tzxM5mP
VTuOSbbJUtBgmR18R1r/hNYjypVlKEakLXU1Sn99JTNe/Ot8fg3iqTkftK689HSDOI3eUEsDBBQA
AgAIAGdfvUje/brprwAAAO4AAAAvABwAc3RvcmFnZS93ZWJzcWwvdHJhbnNhY3Rpb24tcHJvdG90
eXBlLXN0ZGVyci50eHRVVAkAAwI8S1cCPEtXdXgLAAEE9QEAAAQUAAAAZc5BC4JAEAXgu79iTqJQ
beAl9hZllwhBS8+7OoWwzsi0W/Tv06hTt3m878HkZVmUGi5krEPwDD4IARP01AoOSN44MMHz8mHa
EAZI1kDswRCgCEsaqZpdGPCu9sYblTeVatAee68qDtLinHYsqE7cBTexJ9puktbc8TOZj1U7jkm2
yVLQYJkdfEda/4TWI8qVZShGpC11NUp/fSUzXvzrfH4N4qk5H7SuvPR0gziN3lBLAwQUAAIACABn
X71Iq3j7obUAAADcAQAARQAcAHN0b3JhZ2Uvd2Vic3FsL3RyYW5zYWN0aW9uLXN1Y2Nlc3MtY2Fs
bGJhY2staXNvbGF0ZWQtd29ybGQtc3RkZXJyLnR4dFVUCQADAjxLVwI8S1d1eAsAAQT1AQAABBQA
AADlz7EKwkAMBuDdp8gkLagndJHbROsiUmi1zndtKoVrUtI7xbe3FZ18BLf85PshSfM8yzVcyFiH
4Bl8EAImaKkS7JC8cWCC5+XdVCF0EK2B2IMhQBGWeKZKdqHDQe2NNyq9FuqK9th6VXCQCqe0Y0F1
4jq4kT3Q1qO0ZsB3ZRpWVd9HySaJQYNldvApaf0VWvcoDUuX9UhbqkuUtnlGE1786nQ6Debj5nzQ
uvDS0g3m8Sz9q29fUEsDBAoAAAAAAGlgvUgAAAAAAAAAAAAAAAAEABwAc3ZnL1VUCQAD9TxLV4s+
S1d1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAaWC9SAAAAAAAAAAAAAAAAAsAHABzdmcvY3VzdG9t
L1VUCQAD9TxLV4s+S1d1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAaWC9SNQkjeJ+AAAAjQAAACQA
HABzdmcvY3VzdG9tL3plcm8tZGFzaGFycmF5LXN0ZGVyci50eHRVVAkAA/U8S1f1PEtXdXgLAAEE
9QEAAAQUAAAADcjBDsFAFAXQva+4P6AxrRQTsWnFhg12YvHoTTSZvpHXKerrWZ5zkBH5Ci73s8K7
BfjunSuyEO8SUA/d80htaGcjL+WyLOZXrLdm0TYe1a6KmvhJJ6Z9q6ylf3i0+pLQNmj+gpjJ6CEJ
gdInRCUY2FETuuEfN0KjTr+0mE1+UEsDBAoAAAAAAH1fvUgAAAAAAAAAAAAAAAALABwAc3ZnL3N0
cm9rZS9VVAkAAy08S1eLPktXdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAH1fvUjUxfaWfwAAAI0A
AAAlABwAc3ZnL3N0cm9rZS96ZXJvLXdpZHRoLWhhbmctc3RkZXJyLnR4dFVUCQADLTxLVy08S1d1
eAsAAQT1AQAABBQAAAANyDEOgkAQBdDeU/wLSLIYVDbGBoyNNmpnLEb5iSTLrBkWFU8v5XtHGZGX
cM4XpS9W4Kd3bpGF+JCAeuheJ2pDuxh5Xa6LMr9hszOLtvWo9lXUxG86Mx1aZS3906PVt4S2QTMJ
YiajhyQESp8QlWBgR03ohinuhEad/2gxm/0BUEsDBBQAAgAIAKdgvUj5SYsXjSsBAH3PGwAZABwA
d3B0d2tfcHJvY2Vzc19sb2cub3V0LnR4dFVUCQADaj1LV1s6S1d1eAsAAQT1AQAABBQAAADsXelz
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
BgAAGAAYAAAAAAABAAAApIGJJAAAX3dwdF9jZXJ0cy9sb2NhbGhvc3Qua2V5VVQFAANbOktXdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAhl69SLQObWXXCQAALhIAABgAGAAAAAAAAQAAAKSB5ikA
AF93cHRfY2VydHMvbG9jYWxob3N0LnBlbVVUBQADWzpLV3V4CwABBPUBAAAEFAAAAFBLAQIeAwoA
AgAAAIZevUissJTPAwAAAAMAAAARABgAAAAAAAEAAACkgQ80AABfd3B0X2NlcnRzL3NlcmlhbFVU
BQADWzpLV3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAgAAAIZevUjtgY/WAwAAAAMAAAAVABgAAAAA
AAEAAACkgV00AABfd3B0X2NlcnRzL3NlcmlhbC5vbGRVVAUAA1s6S1d1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACADWYL1I8eFqBUFnAQCETw0ADgAYAAAAAAABAAAApIGvNAAAYWNjZXNzX2xvZy50
eHRVVAUAA8Q9S1d1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACUXr1IAAAAAAAAAAAAAAAADAAY
AAAAAAAAABAA7UE4nAEAY29tcG9zaXRpbmcvVVQFAAN4OktXdXgLAAEE9QEAAAQUAAAAUEsBAh4D
CgAAAAAAjF69SAAAAAAAAAAAAAAAABQAGAAAAAAAAAAQAO1BfpwBAGNvbXBvc2l0aW5nL3JlZ2lv
bnMvVVQFAANnOktXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAjF69SFpSZGmrAAAAFAMAAEUA
GAAAAAAAAQAAAKSBzJwBAGNvbXBvc2l0aW5nL3JlZ2lvbnMvd2Via2l0LWZsb3ctcmVuZGVyZXIt
bGF5ZXItY29tcG9zaXRpbmctc3RkZXJyLnR4dFVUBQADZzpLV3V4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAJRevUjOiXnFvwAAAPIGAAA8ABgAAAAAAAEAAACkgfadAQBjb21wb3NpdGluZy9zaG93
LWNvbXBvc2l0ZWQtaWZyYW1lLW9uLWJhY2stYnV0dG9uLXN0ZGVyci50eHRVVAUAA3g6S1d1eAsA
AQT1AQAABBQAAABQSwECHgMKAAAAAACKXr1IAAAAAAAAAAAAAAAAEgAYAAAAAAAAABAA7UErnwEA
Y29tcG9zaXRpbmcvdmlkZW8vVVQFAANjOktXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAil69
SIxuKLTAAAAA8gYAADIAGAAAAAAAAQAAAKSBd58BAGNvbXBvc2l0aW5nL3ZpZGVvL3ZpZGVvLWNs
aXAtY2hhbmdlLXNyYy1zdGRlcnIudHh0VVQFAANjOktXdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAA
AAAAkl69SAAAAAAAAAAAAAAAAA0AGAAAAAAAAAAQAO1Bo6ABAGRpc3BsYXlsaXN0cy9VVAUAA3M6
S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACSXr1Io1f96FAAAACOAAAAMgAYAAAAAAABAAAA
pIHqoAEAZGlzcGxheWxpc3RzL2V4dGVudC1pbmNsdWRlcy10cmFuc2Zvcm1zLXN0ZGVyci50eHRV
VAUAA3M6S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACSXr1I8paV1UcAAABJAAAAKQAYAAAA
AAABAAAApIGmoQEAZGlzcGxheWxpc3RzL2xheWVyLWRpc3BheS1saXN0LXN0ZGVyci50eHRVVAUA
A3M6S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABAYb1IpKd+cXNLAADknwEAIgAYAAAAAAAB
AAAApIFQogEARHVtcFJlbmRlclRyZWUtNjg2MDItY3Jhc2gtbG9nLnR4dFVUBQADiD5LV3V4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAEBhvUicU2+/WkUAAP6aAQAiABgAAAAAAAEAAACkgR/uAQBE
dW1wUmVuZGVyVHJlZS02OTg1OS1jcmFzaC1sb2cudHh0VVQFAAOIPktXdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAQGG9SNVSzu7DQQAAtSwBACIAGAAAAAAAAQAAAKSB1TMCAER1bXBSZW5kZXJU
cmVlLTY5ODY3LWNyYXNoLWxvZy50eHRVVAUAA4g+S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CABAYb1IebFxRCtEAADEiQEAIgAYAAAAAAABAAAApIH0dQIARHVtcFJlbmRlclRyZWUtNjk4Njgt
Y3Jhc2gtbG9nLnR4dFVUBQADiD5LV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAEBhvUiPlXMX
RkEAALx5AQAiABgAAAAAAAEAAACkgXu6AgBEdW1wUmVuZGVyVHJlZS02OTg3My1jcmFzaC1sb2cu
dHh0VVQFAAOIPktXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAQGG9SNR3EOkxRQAAh4YBACIA
GAAAAAAAAQAAAKSBHfwCAER1bXBSZW5kZXJUcmVlLTY5ODc0LWNyYXNoLWxvZy50eHRVVAUAA4g+
S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABAYb1INcfwT0lCAABAfgEAIgAYAAAAAAABAAAA
pIGqQQMARHVtcFJlbmRlclRyZWUtNjk4ODYtY3Jhc2gtbG9nLnR4dFVUBQADiD5LV3V4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAEBhvUjiXvkitUMAAAJ7AQAiABgAAAAAAAEAAACkgU+EAwBEdW1w
UmVuZGVyVHJlZS02OTg5MS1jcmFzaC1sb2cudHh0VVQFAAOIPktXdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAQGG9SFQDjq3LQQAA8iwBACIAGAAAAAAAAQAAAKSBYMgDAER1bXBSZW5kZXJUcmVl
LTY5ODkyLWNyYXNoLWxvZy50eHRVVAUAA4g+S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABA
Yb1IY8fNZldIAADRpwEAIgAYAAAAAAABAAAApIGHCgQARHVtcFJlbmRlclRyZWUtNjk4OTQtY3Jh
c2gtbG9nLnR4dFVUBQADiD5LV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAEBhvUh02+vtQUIA
ANN9AQAiABgAAAAAAAEAAACkgTpTBABEdW1wUmVuZGVyVHJlZS02OTg5NS1jcmFzaC1sb2cudHh0
VVQFAAOIPktXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAQGG9SO0WTIrBRQAAJZQBACIAGAAA
AAAAAQAAAKSB15UEAER1bXBSZW5kZXJUcmVlLTY5ODk3LWNyYXNoLWxvZy50eHRVVAUAA4g+S1d1
eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACkXr1IAAAAAAAAAAAAAAAACAAYAAAAAAAAABAA7UH0
2wQAZWRpdGluZy9VVAUAA5Q6S1d1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACxXr1IAAAAAAAA
AAAAAAAAEwAYAAAAAAAAABAA7UE23AQAZWRpdGluZy9wYXN0ZWJvYXJkL1VUBQADrTpLV3V4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAKRevUh+qfEg6QAAAIIBAAAwABgAAAAAAAEAAACkgYPcBABl
ZGl0aW5nL3Bhc3RlYm9hcmQvY29weS1yZXNvbHZlcy11cmxzLXN0ZGVyci50eHRVVAUAA5Q6S1d1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACxXr1IVxgTSdoAAABQAQAALAAYAAAAAAABAAAApIHW
3QQAZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLW5vcGx1Z2luLXN0ZGVyci50eHRVVAUAA606S1d1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACxXr1IVxgTSdoAAABQAQAAMgAYAAAAAAABAAAApIEW
3wQAZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLW5vcGx1Z2luLXhodG1sLXN0ZGVyci50eHRVVAUA
A606S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACxXr1ISi4+MOIAAAB7AQAAMgAYAAAAAAAB
AAAApIFc4AQAZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLW5vc2NyaXB0LXhodG1sLXN0ZGVyci50
eHRVVAUAA606S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABAYb1IJ8MdkO4KAABrRgAADQAY
AAAAAAABAAAApIGq4QQAZXJyb3JfbG9nLnR4dFVUBQADhz5LV3V4CwABBPUBAAAEFAAAAFBLAQIe
AwoAAAAAAApfvUgAAAAAAAAAAAAAAAAFABgAAAAAAAAAEADtQd/sBABmYXN0L1VUBQADVDtLV3V4
CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAALtevUgAAAAAAAAAAAAAAAAMABgAAAAAAAAAEADtQR7t
BABmYXN0L2NhbnZhcy9VVAUAA8I6S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAC7Xr1IpG+2
l4UAAAAaAQAAJgAYAAAAAAABAAAApIFk7QQAZmFzdC9jYW52YXMvY2FudmFzLWxpbmVEYXNoLXN0
ZGVyci50eHRVVAUAA8I6S1d1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAKX71IAAAAAAAAAAAA
AAAACQAYAAAAAAAAABAA7UFJ7gQAZmFzdC9jc3MvVVQFAANUO0tXdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgACl+9SOP6Vh6yAAAAzgEAADYAGAAAAAAAAQAAAKSBjO4EAGZhc3QvY3NzL3BlcnNw
ZWN0aXZlLW9yaWdpbi1pbml0aWFsLWluaGVyaXQtc3RkZXJyLnR4dFVUBQADVDtLV3V4CwABBPUB
AAAEFAAAAFBLAQIeAwoAAAAAALVevUgAAAAAAAAAAAAAAAAJABgAAAAAAAAAEADtQa7vBABmYXN0
L2RvbS9VVAUAA7U6S1d1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAC1Xr1IAAAAAAAAAAAAAAAA
GgAYAAAAAAAAABAA7UHx7wQAZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9VVAUAA7U6S1d1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAC1Xr1I3v266a8AAADuAAAAPwAYAAAAAAABAAAApIFF8AQA
ZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9kYXRhYmFzZS1jYWxsYmFjay1kZWxpdmVyeS1zdGRl
cnIudHh0VVQFAAO1OktXdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAul69SAAAAAAAAAAAAAAA
AAsAGAAAAAAAAAAQAO1BbfEEAGZhc3QvZm9ybXMvVVQFAAPAOktXdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAul69SC5f2O97AQAA+DkAADMAGAAAAAAAAQAAAKSBsvEEAGZhc3QvZm9ybXMvVmFs
aWRpdHlTdGF0ZS1wYXR0ZXJuTWlzbWF0Y2gtc3RkZXJyLnR4dFVUBQADwDpLV3V4CwABBPUBAAAE
FAAAAFBLAQIeAwoAAAAAAPJevUgAAAAAAAAAAAAAAAAMABgAAAAAAAAAEADtQZrzBABmYXN0L2Zy
YW1lcy9VVAUAAyc7S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADyXr1I3v266a8AAADuAAAA
LwAYAAAAAAABAAAApIHg8wQAZmFzdC9mcmFtZXMvc2FuZGJveGVkLWlmcmFtZS1zdG9yYWdlLXN0
ZGVyci50eHRVVAUAAyc7S1d1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADDXr1IAAAAAAAAAAAA
AAAADQAYAAAAAAAAABAA7UH49AQAZmFzdC9oaXN0b3J5L1VUBQADzTpLV3V4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAMJevUje/brprwAAAO4AAABAABgAAAAAAAEAAACkgT/1BABmYXN0L2hpc3Rv
cnkvcGFnZS1jYWNoZS13ZWJkYXRhYmFzZS1uby10cmFuc2FjdGlvbi1kYi1zdGRlcnIudHh0VVQF
AAPMOktXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAw169SKt4+6G1AAAA3AEAAEIAGAAAAAAA
AQAAAKSBaPYEAGZhc3QvaGlzdG9yeS9wYWdlLWNhY2hlLXdlYmRhdGFiYXNlLXBlbmRpbmctdHJh
bnNhY3Rpb24tc3RkZXJyLnR4dFVUBQADzTpLV3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAMle
vUgAAAAAAAAAAAAAAAAMABgAAAAAAAAAEADtQZn3BABmYXN0L2ltYWdlcy9VVAUAA9k6S1d1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACADJXr1IIY+9ODIAAAAzAAAALAAYAAAAAAABAAAApIHf9wQA
ZmFzdC9pbWFnZXMvcGRmLWFzLWltYWdlLWNyb3AtYm94LXN0ZGVyci50eHRVVAUAA9k6S1d1eAsA
AQT1AQAABBQAAABQSwECHgMKAAAAAADaXr1IAAAAAAAAAAAAAAAACQAYAAAAAAAAABAA7UF3+AQA
ZmFzdC94c2wvVVQFAAP7OktXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA2F69SHL9ZfKFAAAA
6QAAACUAGAAAAAAAAQAAAKSBuvgEAGZhc3QveHNsL3RyYW5zZm9ybS14aHItZG9jLXN0ZGVyci50
eHRVVAUAA/g6S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADYXr1IzgkoAo0AAADwAAAAJwAY
AAAAAAABAAAApIGe+QQAZmFzdC94c2wveHNsdC1iYWQtaW1wb3J0LXVyaS1zdGRlcnIudHh0VVQF
AAP4OktXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA2F69SM+PZg5QAAAAoAAAACQAGAAAAAAA
AQAAAKSBjPoEAGZhc3QveHNsL3hzbHQtY29udGVudFR5cGUtc3RkZXJyLnR4dFVUBQAD+DpLV3V4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANpevUiBSnetSwAAAKwAAAA0ABgAAAAAAAEAAACkgTr7
BABmYXN0L3hzbC94c2x0LXRyYW5zZm9ybS10by1mcmFnbWVudC1jcmFzaC1zdGRlcnIudHh0VVQF
AAP7OktXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAQWG9SGCutPb3AQAAcAUAABEAGAAAAAAA
AQAAAKSB8/sEAGZ1bGxfcmVzdWx0cy5qc29uVVQFAAOJPktXdXgLAAEE9QEAAAQUAAAAUEsBAh4D
CgAAAAAA2169SAAAAAAAAAAAAAAAAAUAGAAAAAAAAAAQAO1BNf4EAGh0dHAvVVQFAAP+OktXdXgL
AAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA7F69SAAAAAAAAAAAAAAAAAsAGAAAAAAAAAAQAO1BdP4E
AGh0dHAvdGVzdHMvVVQFAAMcO0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA2169SAAAAAAA
AAAAAAAAABQAGAAAAAAAAAAQAO1Buf4EAGh0dHAvdGVzdHMvYXBwY2FjaGUvVVQFAAP+OktXdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA2169SMJNyB10AAAAmwAAAEMAGAAAAAAAAQAAAKSBB/8E
AGh0dHAvdGVzdHMvYXBwY2FjaGUvNDA0LXJlc291cmNlLXdpdGgtc2xvdy1tYWluLXJlc291cmNl
LWFjdHVhbC50eHRVVAUAA/46S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADbXr1IJuXTq0EB
AABKAgAAQQAYAAAAAAABAAAApIH4/wQAaHR0cC90ZXN0cy9hcHBjYWNoZS80MDQtcmVzb3VyY2Ut
d2l0aC1zbG93LW1haW4tcmVzb3VyY2UtZGlmZi50eHRVVAUAA/46S1d1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACADbXr1IKNMVdtgAAAAnAQAARQAYAAAAAAABAAAApIG0AQUAaHR0cC90ZXN0cy9h
cHBjYWNoZS80MDQtcmVzb3VyY2Utd2l0aC1zbG93LW1haW4tcmVzb3VyY2UtZXhwZWN0ZWQudHh0
VVQFAAP+OktXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA2169SDb6VlEICAAAvRgAAEkAGAAA
AAAAAQAAAKSBCwMFAGh0dHAvdGVzdHMvYXBwY2FjaGUvNDA0LXJlc291cmNlLXdpdGgtc2xvdy1t
YWluLXJlc291cmNlLXByZXR0eS1kaWZmLmh0bWxVVAUAA/46S1d1eAsAAQT1AQAABBQAAABQSwEC
HgMKAAAAAADhXr1IAAAAAAAAAAAAAAAAEQAYAAAAAAAAABAA7UGWCwUAaHR0cC90ZXN0cy9jYWNo
ZS9VVAUAAwU7S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADgXr1ItdhN3O4AAACJBAAAMAAY
AAAAAAABAAAApIHhCwUAaHR0cC90ZXN0cy9jYWNoZS9tZW1vcnktY2FjaGUtcHJ1bmluZy1zdGRl
cnIudHh0VVQFAAMEO0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA4V69SKZViGGGAAAAwAAA
AD0AGAAAAAAAAQAAAKSBOQ0FAGh0dHAvdGVzdHMvY2FjaGUvbmV0d29yay1lcnJvci1kdXJpbmct
cmV2YWxpZGF0aW9uLXN0ZGVyci50eHRVVAUAAwU7S1d1eAsAAQT1AQAABBQAAABQSwECHgMKAAAA
AADbXr1IAAAAAAAAAAAAAAAAEgAYAAAAAAAAABAA7UE2DgUAaHR0cC90ZXN0cy9jYW52YXMvVVQF
AAP+OktXdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA2169SAAAAAAAAAAAAAAAABgAGAAAAAAA
AAAQAO1Bgg4FAGh0dHAvdGVzdHMvY2FudmFzL3dlYmdsL1VUBQAD/jpLV3V4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIANtevUhlvL7izQAAAJECAAA7ABgAAAAAAAEAAACkgdQOBQBodHRwL3Rlc3Rz
L2NhbnZhcy93ZWJnbC9vcmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utc3RkZXJyLnR4dFVUBQAD/jpL
V3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAANxevUgAAAAAAAAAAAAAAAAPABgAAAAAAAAAEADt
QRYQBQBodHRwL3Rlc3RzL2RvbS9VVAUAA/86S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADc
Xr1I553GV4QAAAAaAQAAMwAYAAAAAAABAAAApIFfEAUAaHR0cC90ZXN0cy9kb20vZG9jdW1lbnQt
Y29udGVudFR5cGUtbWV0YS1zdGRlcnIudHh0VVQFAAP/OktXdXgLAAEE9QEAAAQUAAAAUEsBAh4D
CgAAAAAA7F69SAAAAAAAAAAAAAAAABEAGAAAAAAAAAAQAO1BUBEFAGh0dHAvdGVzdHMvbWVkaWEv
VVQFAAMcO0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA4l69SAAAAAAAAAAAAAAAABoAGAAA
AAAAAAAQAO1BmxEFAGh0dHAvdGVzdHMvbWVkaWEvY2xlYXJrZXkvVVQFAAMHO0tXdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgA4l69SFsl9jVTAQAAfwMAADkAGAAAAAAAAQAAAKSB7xEFAGh0dHAv
dGVzdHMvbWVkaWEvY2xlYXJrZXkvY2xlYXIta2V5LWhscy1hZXMxMjgtc3RkZXJyLnR4dFVUBQAD
BztLV3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAOdevUgAAAAAAAAAAAAAAAAVABgAAAAAAAAA
EADtQbUTBQBodHRwL3Rlc3RzL21lZGlhL2hscy9VVAUAAxE7S1d1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACADiXr1Ig1BR8boBAADQBAAAQAAYAAAAAAABAAAApIEEFAUAaHR0cC90ZXN0cy9tZWRp
YS9obHMvaGxzLWFjY2Vzc2libGl0eS1kZXNjcmliZXMtdmlkZW8tc3RkZXJyLnR4dFVUBQADCDtL
V3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAONevUiE/M4WBAIAACcIAAA6ABgAAAAAAAEAAACk
gTgWBQBodHRwL3Rlc3RzL21lZGlhL2hscy9obHMtYXVkaW8tdHJhY2tzLWhhcy1hdWRpby1zdGRl
cnIudHh0VVQFAAMJO0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA4169SLl0JToGAgAAzQcA
AEEAGAAAAAAAAQAAAKSBsBgFAGh0dHAvdGVzdHMvbWVkaWEvaGxzL2hscy1hdWRpby10cmFja3Mt
bG9jYWxlLXNlbGVjdGlvbi1zdGRlcnIudHh0VVQFAAMKO0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgA5F69SABl8z4AAgAAtgYAADAAGAAAAAAAAQAAAKSBMRsFAGh0dHAvdGVzdHMvbWVkaWEv
aGxzL2hscy1hdWRpby10cmFja3Mtc3RkZXJyLnR4dFVUBQADCztLV3V4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAORevUju8XSSJwEAAN4DAAAsABgAAAAAAAEAAACkgZsdBQBodHRwL3Rlc3RzL21l
ZGlhL2hscy9obHMtcHJvZ3Jlc3Mtc3RkZXJyLnR4dFVUBQADDDtLV3V4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAOVevUhqZgKXKAEAAIQDAAAwABgAAAAAAAEAAACkgSgfBQBodHRwL3Rlc3RzL21l
ZGlhL2hscy9obHMtdmlkZW8tcmVzaXplLXN0ZGVyci50eHRVVAUAAw47S1d1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACADmXr1INWufaYEBAAB7CQAAPQAYAAAAAAABAAAApIG6IAUAaHR0cC90ZXN0
cy9tZWRpYS9obHMvdmlkZW8tY29udHJvbGxlci1nZXRTdGFydERhdGUtc3RkZXJyLnR4dFVUBQAD
DztLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOdevUgJJkkMxQEAACYKAAA6ABgAAAAAAAEA
AACkgbIiBQBodHRwL3Rlc3RzL21lZGlhL2hscy92aWRlby1jb250cm9scy1saXZlLXN0cmVhbS1z
dGRlcnIudHh0VVQFAAMRO0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA4l69SEZ9bEzLAAAA
kQIAADIAGAAAAAAAAQAAAKSB6yQFAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtZG9jdW1lbnQtcmVm
ZXJlci1zdGRlcnIudHh0VVQFAAMHO0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA4l69SHck
kfvlAAAABgMAACoAGAAAAAAAAQAAAKSBIiYFAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtZG9jdW1l
bnQtc3RkZXJyLnR4dFVUBQADCDtLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAORevUi2Eu6l
7QAAAMYDAAA5ABgAAAAAAAEAAACkgWsnBQBodHRwL3Rlc3RzL21lZGlhL21lZGlhLXBsYXktc3Ry
ZWFtLWNodW5rZWQtaWN5LXN0ZGVyci50eHRVVAUAAws7S1d1eAsAAQT1AQAABBQAAABQSwECHgMK
AAAAAADzXr1IAAAAAAAAAAAAAAAAHgAYAAAAAAAAABAA7UHLKAUAaHR0cC90ZXN0cy9tZWRpYS9t
ZWRpYS1zb3VyY2UvVVQFAAMqO0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA6V69SI7d6vVT
AQAAlwQAAEIAGAAAAAAAAQAAAKSBIykFAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21l
ZGlhc291cmNlLWFwcGVuZC1idWZmZXItc3RkZXJyLnR4dFVUBQADFjtLV3V4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAOpevUgpbW6uPQEAAHoDAABQABgAAAAAAAEAAACkgfIqBQBodHRwL3Rlc3Rz
L21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC12LWJpdHJh
dGUtc3RkZXJyLnR4dFVUBQADGDtLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOtevUgH8mHC
PgEAAHoDAABSABgAAAAAAAEAAACkgbksBQBodHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9t
ZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC12LWZyYW1lcmF0ZS1zdGRlcnIudHh0VVQFAAMa
O0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA8F69SNaFVtSLAAAAmwAAADkAGAAAAAAAAQAA
AKSBgy4FAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLXBsYXktc3Rk
ZXJyLnR4dFVUBQADIztLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPJevUisJwUEqwAAAAcD
AAA7ABgAAAAAAAEAAACkgYEvBQBodHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNv
dXJjZS1yZW1vdmUtc3RkZXJyLnR4dFVUBQADJztLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
APNevUhm5098pAAAANEBAABGABgAAAAAAAEAAACkgaEwBQBodHRwL3Rlc3RzL21lZGlhL21lZGlh
LXNvdXJjZS9tZWRpYXNvdXJjZS1zb3VyY2VidWZmZXItbW9kZS1zdGRlcnIudHh0VVQFAAMqO0tX
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA5F69SFnpqhntAAAAXwEAAC0AGAAAAAAAAQAAAKSB
xTEFAGh0dHAvdGVzdHMvbWVkaWEvcGRmLXNlcnZlZC1hcy1wZGYtc3RkZXJyLnR4dFVUBQADCztL
V3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAORevUjZYQcTvQAAAOwBAAAvABgAAAAAAAEAAACk
gRkzBQBodHRwL3Rlc3RzL21lZGlhL3JlbG9hZC1hZnRlci1kaWFsb2ctc3RkZXJyLnR4dFVUBQAD
DDtLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOZevUg7wX/oTQEAAIIDAAAvABgAAAAAAAEA
AACkgT80BQBodHRwL3Rlc3RzL21lZGlhL3RleHQtc2VydmVkLWFzLXRleHQtc3RkZXJyLnR4dFVU
BQADDztLV3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAONevUgAAAAAAAAAAAAAAAAXABgAAAAA
AAAAEADtQfU1BQBodHRwL3Rlc3RzL21lZGlhL3RyYWNrL1VUBQADCTtLV3V4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAONevUjtX2YHyAAAADECAAA9ABgAAAAAAAEAAACkgUY2BQBodHRwL3Rlc3Rz
L21lZGlhL3RyYWNrL3RyYWNrLXdlYnZ0dC1zbG93LWxvYWRpbmctMi1zdGRlcnIudHh0VVQFAAMJ
O0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA6F69SIU5COtNAQAANQQAADYAGAAAAAAAAQAA
AKSBhTcFAGh0dHAvdGVzdHMvbWVkaWEvdHJhY2staW4tYmFuZC1obHMtbWV0YWRhdGEtc3RkZXJy
LnR4dFVUBQADEztLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOhevUgtArEixAEAAKkFAAAm
ABgAAAAAAAEAAACkgUI5BQBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLWF1dGgtc3RkZXJyLnR4dFVU
BQADEztLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOhevUgcMZSv4wAAAKwCAAAtABgAAAAA
AAEAAACkgWY7BQBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLWVycm9yLWFib3J0LXN0ZGVyci50eHRV
VAUAAxQ7S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADpXr1I5f7a2hUBAAA9AgAANgAYAAAA
AAABAAAApIGwPAUAaHR0cC90ZXN0cy9tZWRpYS92aWRlby1lcnJvci1kb2VzLW5vdC1leGlzdC1z
dGRlcnIudHh0VVQFAAMVO0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA6V69SOmgfN/MAAAA
JAMAACwAGAAAAAAAAQAAAKSBNT4FAGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tbG9hZC10d2ljZS1z
dGRlcnIudHh0VVQFAAMWO0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA6V69SP8Kg37iAAAA
xgMAAC8AGAAAAAAAAQAAAKSBZz8FAGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tcGxheS1wcm9ncmVz
cy1zdGRlcnIudHh0VVQFAAMWO0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA6169SFgVIJ2D
AAAAwAAAAD0AGAAAAAAAAQAAAKSBskAFAGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tcGxheS1zdGFs
bC1iZWZvcmUtbWV0YS1kYXRhLXN0ZGVyci50eHRVVAUAAxo7S1d1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACADrXr1IOxkoX7sAAACSAQAAKwAYAAAAAAABAAAApIGsQQUAaHR0cC90ZXN0cy9tZWRp
YS92aWRlby1xdWVyeS11cmwtc3RkZXJyLnR4dFVUBQADGjtLV3V4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAOxevUiNdSCy6wAAAFgFAAAqABgAAAAAAAEAAACkgcxCBQBodHRwL3Rlc3RzL21lZGlh
L3ZpZGVvLXJlZGlyZWN0LXN0ZGVyci50eHRVVAUAAxs7S1d1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACADsXr1IJjflLdsAAAAGAwAAKwAYAAAAAAABAAAApIEbRAUAaHR0cC90ZXN0cy9tZWRpYS92
aWRlby11c2VyYWdlbnQtc3RkZXJyLnR4dFVUBQADHDtLV3V4CwABBPUBAAAEFAAAAFBLAQIeAwoA
AAAAAAtfvUgAAAAAAAAAAAAAAAAQABgAAAAAAAAAEADtQVtFBQBodHRwL3Rlc3RzL21pc2MvVVQF
AANWO0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA6l69SF6E9GnmAAAAYgEAAC0AGAAAAAAA
AQAAAKSBpUUFAGh0dHAvdGVzdHMvbWlzYy9jb3B5LXJlc29sdmVzLXVybHMtc3RkZXJyLnR4dFVU
BQADGDtLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOtevUi8lEcCxAAAAP4AAAA/ABgAAAAA
AAEAAACkgfJGBQBodHRwL3Rlc3RzL21pc2MvZGVsZXRlLWZyYW1lLWR1cmluZy1yZWFkeXN0YXRl
Y2hhbmdlLXN0ZGVyci50eHRVVAUAAxk7S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADrXr1I
CviZp8QAAAD+AAAAWwAYAAAAAAABAAAApIEvSAUAaHR0cC90ZXN0cy9taXNjL2RlbGV0ZS1mcmFt
ZS1kdXJpbmctcmVhZHlzdGF0ZWNoYW5nZS13aXRoLWdjLWFmdGVyLXZpZGVvLXJlbW92YWwtc3Rk
ZXJyLnR4dFVUBQADGTtLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAtfvUgVNTWSegAAALwA
AAAqABgAAAAAAAEAAACkgYhJBQBodHRwL3Rlc3RzL21pc2MveHNsdC1iYWQtaW1wb3J0LXN0ZGVy
ci50eHRVVAUAA1Y7S1d1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADnXr1IAAAAAAAAAAAAAAAA
EwAYAAAAAAAAABAA7UFmSgUAaHR0cC90ZXN0cy9wcmVsb2FkL1VUBQADEjtLV3V4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAOdevUjOy+19UgEAAP4CAAA8ABgAAAAAAAEAAACkgbNKBQBodHRwL3Rl
c3RzL3ByZWxvYWQvc2luZ2xlX2Rvd25sb2FkX3ByZWxvYWRfcnVubmVyLXN0ZGVyci50eHRVVAUA
AxI7S1d1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAACX71IAAAAAAAAAAAAAAAAFAAYAAAAAAAA
ABAA7UF7TAUAaHR0cC90ZXN0cy9zZWN1cml0eS9VVAUAA0M7S1d1eAsAAQT1AQAABBQAAABQSwEC
HgMKAAAAAAD6Xr1IAAAAAAAAAAAAAAAAKgAYAAAAAAAAABAA7UHJTAUAaHR0cC90ZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvVVQFAAM4O0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4D
CgAAAAAA5169SAAAAAAAAAAAAAAAAC4AGAAAAAAAAAAQAO1BLU0FAGh0dHAvdGVzdHMvc2VjdXJp
dHkvY29udGVudFNlY3VyaXR5UG9saWN5LzEuMS9VVAUAAxI7S1d1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACADnXr1I4eU8LYQAAAAaAQAARwAYAAAAAAABAAAApIGVTQUAaHR0cC90ZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL2Jhc2UtdXJpLWFsbG93LXN0ZGVyci50eHRV
VAUAAxE7S1d1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADnXr1IAAAAAAAAAAAAAAAAOAAYAAAA
AAAAABAA7UGaTgUAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4x
L2NoaWxkLXNyYy9VVAUAAxI7S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADnXr1I4QayFYMA
AADAAAAAXAAYAAAAAAABAAAApIEMTwUAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJp
dHlQb2xpY3kvMS4xL2NoaWxkLXNyYy9mcmFtZS1hYm91dC1ibGFuay1hbGxvd2VkLXN0ZGVyci50
eHRVVAUAAxI7S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADnXr1IJj7Vt9cAAAD4AQAASwAY
AAAAAAABAAAApIElUAUAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kv
YXVkaW8tcmVkaXJlY3QtYWxsb3dlZC1zdGRlcnIudHh0VVQFAAMRO0tXdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgA5169SCY+1bfXAAAA+AEAAEwAGAAAAAAAAQAAAKSBgVEFAGh0dHAvdGVzdHMv
c2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2F1ZGlvLXJlZGlyZWN0LWFsbG93ZWQyLXN0
ZGVyci50eHRVVAUAAxE7S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADnXr1IWF93f6YAAACK
AQAAWAAYAAAAAAABAAAApIHeUgUAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQ
b2xpY3kvYmxvYi11cmwtZG9lcy1ub3QtbWF0Y2gtc291cmNlLXNlbGYtc3RkZXJyLnR4dFVUBQAD
ETtLV3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAOlevUgAAAAAAAAAAAAAAAA9ABgAAAAAAAAA
EADtQRZUBQBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS91c2VyQWdl
bnRTaGFkb3dET00vVVQFAAMVO0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA5169SC2852vl
AAAAQwIAAFMAGAAAAAAAAQAAAKSBjVQFAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3Vy
aXR5UG9saWN5L3VzZXJBZ2VudFNoYWRvd0RPTS9hbGxvdy1hdWRpby1zdGRlcnIudHh0VVQFAAMS
O0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA6F69SKMmxY+8AAAAkgEAAFMAGAAAAAAAAQAA
AKSB/1UFAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3VzZXJBZ2Vu
dFNoYWRvd0RPTS9hbGxvdy12aWRlby1zdGRlcnIudHh0VVQFAAMUO0tXdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgA6V69SCsWx9eEAAAAwAAAAGsAGAAAAAAAAQAAAKSBSFcFAGh0dHAvdGVzdHMv
c2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3VzZXJBZ2VudFNoYWRvd0RPTS9kZWZhdWx0
LXNyYy1vYmplY3QtZGF0YS11cmwtYWxsb3dlZC1zdGRlcnIudHh0VVQFAAMVO0tXdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgA+F69SMC1sRbeAAAAUgIAAEsAGAAAAAAAAQAAAKSBcVgFAGh0dHAv
dGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3ZpZGVvLXJlZGlyZWN0LWFsbG93
ZWQtc3RkZXJyLnR4dFVUBQADMztLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPhevUjhsqFQ
vQAAAJIBAABMABgAAAAAAAEAAACkgdRZBQBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1
cml0eVBvbGljeS92aWRlby1yZWRpcmVjdC1hbGxvd2VkMi1zdGRlcnIudHh0VVQFAAMzO0tXdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA+F69SMIvAtzeAAAAUgIAAGYAGAAAAAAAAQAAAKSBF1sF
AGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3ZpZGVvLXdpdGgtaHR0
cC11cmwtYWxsb3dlZC1ieS1jc3AtbWVkaWEtc3JjLXN0YXItc3RkZXJyLnR4dFVUBQADNDtLV3V4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPhevUhUx3QQhAAAAMAAAABZABgAAAAAAAEAAACkgZVc
BQBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS93b3JrZXItYmxvYi1p
bmhlcml0cy1jc3AtYmxvY2tzLWV2YWwtc3RkZXJyLnR4dFVUBQADNDtLV3V4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAPpevUhjqqxsggAAAKgAAABAABgAAAAAAAEAAACkgaxdBQBodHRwL3Rlc3Rz
L3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wtYWxsb3dlZC1zdGRlcnIudHh0VVQF
AAM3O0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA+l69SGOqrGyCAAAAqAAAAFIAGAAAAAAA
AQAAAKSBqF4FAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3hzbC11
bmFmZmVjdGVkLWJ5LXN0eWxlLXNyYy0yLXN0ZGVyci50eHRVVAUAAzg7S1d1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACADvXr1Iq3j7obUAAADcAQAAOgAYAAAAAAABAAAApIG2XwUAaHR0cC90ZXN0
cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td2Vic3FsLWFsbG93ZWQtc3RkZXJyLnR4dFVUBQADITtL
V3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAO9evUje/brprwAAAO4AAAAyABgAAAAAAAEAAACk
gd9gBQBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13ZWJzcWwtc3RkZXJyLnR4dFVU
BQADITtLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPJevUiHxLydygAAAN0BAAA9ABgAAAAA
AAEAAACkgfphBQBodHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLXZpZGVvLXNvdXJjZS1mcm9tLXJl
bW90ZS1zdGRlcnIudHh0VVQFAAMnO0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA8l69SBu6
edaEAAAAwAAAADoAGAAAAAAAAQAAAKSBO2MFAGh0dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwtdmlk
ZW8tc3JjLWZyb20tcmVtb3RlLXN0ZGVyci50eHRVVAUAAyc7S1d1eAsAAQT1AQAABBQAAABQSwEC
HgMKAAAAAADrXr1IAAAAAAAAAAAAAAAAIQAYAAAAAAAAABAA7UEzZAUAaHR0cC90ZXN0cy9zZWN1
cml0eS9taXhlZENvbnRlbnQvVVQFAAMZO0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA6l69
SBsv1RHgAAAAPgQAAE4AGAAAAAAAAQAAAKSBjmQFAGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRD
b250ZW50L2luc2VjdXJlLWF1ZGlvLXZpZGVvLWluLW1haW4tZnJhbWUtc3RkZXJyLnR4dFVUBQAD
GDtLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOtevUj6Bv1/hgAAAMAAAABCABgAAAAAAAEA
AACkgfZlBQBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS1jc3MtaW4t
aWZyYW1lLXN0ZGVyci50eHRVVAUAAxk7S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD5Xr1I
3v266a8AAADuAAAAPwAYAAAAAAABAAAApIH4ZgUAaHR0cC90ZXN0cy9zZWN1cml0eS9zdG9yYWdl
LWJsb2NraW5nLWxvb3NlbmVkLXdlYnNxbC1zdGRlcnIudHh0VVQFAAM2O0tXdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgA+l69SN79uumvAAAA7gAAAEMAGAAAAAAAAQAAAKSBIGgFAGh0dHAvdGVz
dHMvc2VjdXJpdHkvc3RvcmFnZS1ibG9ja2luZy1zdHJlbmd0aGVuZWQtd2Vic3FsLXN0ZGVyci50
eHRVVAUAAzc7S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD7Xr1IutnxwuQAAADyBAAAOQAY
AAAAAAABAAAApIFMaQUAaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9zcy1vcmlnaW4tY2Fj
aGluZy1zdGRlcnIudHh0VVQFAAM5O0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA+169SIl7
nuAUAQAA5wEAAD8AGAAAAAAAAQAAAKSBo2oFAGh0dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8tcG9z
dGVyLWNyb3NzLW9yaWdpbi1jcmFzaDItc3RkZXJyLnR4dFVUBQADOTtLV3V4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAAJfvUhgS2YQkQAAAPsBAABFABgAAAAAAAEAAACkgTBsBQBodHRwL3Rlc3Rz
L3NlY3VyaXR5L3hzcy1ERU5JRUQteHNsLWRvY3VtZW50LXNlY3VyaXR5T3JpZ2luLXN0ZGVyci50
eHRVVAUAA0M7S1d1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADsXr1IAAAAAAAAAAAAAAAAEwAY
AAAAAAAAABAA7UFAbQUAaHR0cC90ZXN0cy9zdG9yYWdlL1VUBQADGztLV3V4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAOxevUje/brprwAAAO4AAABFABgAAAAAAAEAAACkgY1tBQBodHRwL3Rlc3Rz
L3N0b3JhZ2UvY2FsbGJhY2tzLWFyZS1jYWxsZWQtaW4tY29ycmVjdC1jb250ZXh0LXN0ZGVyci50
eHRVVAUAAxs7S1d1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAD5Xr1IAAAAAAAAAAAAAAAAGgAY
AAAAAAAAABAA7UG7bgUAaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9VVAUAAzY7S1d1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAD5Xr1Ifn/tF7EAAAABAQAAQQAYAAAAAAABAAAApIEPbwUAaHR0
cC90ZXN0cy94bWxodHRwcmVxdWVzdC9wb3N0LWJsb2ItY29udGVudC10eXBlLWFzeW5jLXN0ZGVy
ci50eHRVVAUAAzY7S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD5Xr1Ifn/tF7EAAAABAQAA
QAAYAAAAAAABAAAApIE7cAUAaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9wb3N0LWJsb2ItY29u
dGVudC10eXBlLXN5bmMtc3RkZXJyLnR4dFVUBQADNjtLV3V4CwABBPUBAAAEFAAAAFBLAQIeAwoA
AAAAAOxevUgAAAAAAAAAAAAAAAAiABgAAAAAAAAAEADtQWZxBQBodHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L3dvcmtlcnMvVVQFAAMcO0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA7F69SFbN
1kuEAAAAwAAAAFUAGAAAAAAAAQAAAKSBwnEFAGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvd29y
a2Vycy9hY2Nlc3MtY29udHJvbC1iYXNpYy1nZXQtZmFpbC1ub24tc2ltcGxlLXN0ZGVyci50eHRV
VAUAAxw7S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADMYL1INRPGmpkFAAAREAAACgAYAAAA
AAABAAAApIHVcgUAaHR0cGQuY29uZlVUBQADsD1LV3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAA
AAxfvUgAAAAAAAAAAAAAAAAJABgAAAAAAAAAEADtQbJ4BQBpbXBvcnRlZC9VVAUAA1c7S1d1eAsA
AQT1AQAABBQAAABQSwECHgMKAAAAAAAMX71IAAAAAAAAAAAAAAAADQAYAAAAAAAAABAA7UH1eAUA
aW1wb3J0ZWQvdzNjL1VUBQADVztLV3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAABFfvUgAAAAA
AAAAAAAAAAAgABgAAAAAAAAAEADtQTx5BQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L1VUBQADYjtLV3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAAxfvUgAAAAAAAAAAAAAAAAlABgA
AAAAAAAAEADtQZZ5BQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvVVQFAANX
O0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAADF+9SAAAAAAAAAAAAAAAAC8AGAAAAAAAAAAQ
AO1B9XkFAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvVVQF
AANXO0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAADl+9SAAAAAAAAAAAAAAAAEAAGAAAAAAA
AAAQAO1BXnoFAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mv
ZW1iZWRkZWQtY29udGVudC9VVAUAA1s7S1d1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAkX71I
AAAAAAAAAAAAAAAATwAYAAAAAAAAABAA7UHYegUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL1VUBQAD
hDtLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAxfvUjTDPQd8wAAAJcFAABnABgAAAAAAAEA
AACkgWF7BQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Vt
YmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfY2FucGxheS1zdGRlcnIudHh0VVQF
AANXO0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgADF+9SMkoRczsAAAApAQAAHIAGAAAAAAA
AQAAAKSB9XwFAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mv
ZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9jYW5wbGF5X25vYXV0b3BsYXkt
c3RkZXJyLnR4dFVUBQADWDtLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAA1fvUiEM8Hy7gAA
AAwGAABuABgAAAAAAAEAAACkgY1+BQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfY2FucGxh
eXRocm91Z2gtc3RkZXJyLnR4dFVUBQADWjtLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAA5f
vUj3Mi5Y7gAAAKQEAAB5ABgAAAAAAAEAAACkgSOABQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZl
bnRfY2FucGxheXRocm91Z2hfbm9hdXRvcGxheS1zdGRlcnIudHh0VVQFAANbO0tXdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgADl+9SIhUJN/vAAAApAQAAHUAGAAAAAAAAQAAAKSBxIEFAGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVu
dC9tZWRpYS1lbGVtZW50cy9ldmVudF9sb2FkZWRkYXRhX25vYXV0b3BsYXktc3RkZXJyLnR4dFVU
BQADXDtLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAA9fvUhrRyRt7wAAAKQEAABuABgAAAAA
AAEAAACkgWKDBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfbG9hZGVkbWV0YWRhdGEtc3Rk
ZXJyLnR4dFVUBQADXTtLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABBfvUg8Eoso6QAAAKQE
AAB5ABgAAAAAAAEAAACkgfmEBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
c2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfbG9hZGVkbWV0
YWRhdGFfbm9hdXRvcGxheS1zdGRlcnIudHh0VVQFAANfO0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAEF+9SNC4G/PqAAAASgQAAGkAGAAAAAAAAQAAAKSBlYYFAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVt
ZW50cy9ldmVudF9sb2Fkc3RhcnQtc3RkZXJyLnR4dFVUBQADYDtLV3V4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIABFfvUgLBaMa7wAAAKQEAAB0ABgAAAAAAAEAAACkgSKIBQBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEt
ZWxlbWVudHMvZXZlbnRfbG9hZHN0YXJ0X25vYXV0b3BsYXktc3RkZXJyLnR4dFVUBQADYTtLV3V4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABFfvUjfySiD8QAAAAwGAAB8ABgAAAAAAAEAAACkgb+J
BQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVk
LWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfb3JkZXJfY2FucGxheV9jYW5wbGF5dGhyb3Vn
aC1zdGRlcnIudHh0VVQFAANiO0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAEl+9SEnKAiLv
AAAADAYAAHUAGAAAAAAAAQAAAKSBZosFAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9vcmRl
cl9jYW5wbGF5X3BsYXlpbmctc3RkZXJyLnR4dFVUBQADZDtLV3V4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIABNfvUjpW1nM7gAAAAwGAAB/ABgAAAAAAAEAAACkgQSNBQBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxl
bWVudHMvZXZlbnRfb3JkZXJfbG9hZGVkbWV0YWRhdGFfbG9hZGVkZGF0YS1zdGRlcnIudHh0VVQF
AANlO0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAE1+9SDXl07PwAAAADAYAAHgAGAAAAAAA
AQAAAKSBq44FAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mv
ZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9vcmRlcl9sb2Fkc3RhcnRfcHJv
Z3Jlc3Mtc3RkZXJyLnR4dFVUBQADZjtLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABRfvUgd
zQXb8QAAAAwGAABlABgAAAAAAAEAAACkgU2QBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRf
cGF1c2Utc3RkZXJyLnR4dFVUBQADaDtLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABVfvUgZ
f8Ap7wAAAKQEAABwABgAAAAAAAEAAACkgd2RBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRf
cGF1c2Vfbm9hdXRvcGxheS1zdGRlcnIudHh0VVQFAANpO0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAFl+9SIbxHBLyAAAADAYAAGQAGAAAAAAAAQAAAKSBdpMFAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVt
ZW50cy9ldmVudF9wbGF5LXN0ZGVyci50eHRVVAUAA2s7S1d1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAAWX71IW3Hbs+0AAACkBAAAbwAYAAAAAAABAAAApIEGlQUAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1l
bnRzL2V2ZW50X3BsYXlfbm9hdXRvcGxheS1zdGRlcnIudHh0VVQFAANsO0tXdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAF1+9SOT6ZbryAAAADAYAAGcAGAAAAAAAAQAAAKSBnJYFAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9t
ZWRpYS1lbGVtZW50cy9ldmVudF9wbGF5aW5nLXN0ZGVyci50eHRVVAUAA207S1d1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAAYX71I8NBxGO0AAAAMBgAAcgAYAAAAAAABAAAApIEvmAUAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50
L21lZGlhLWVsZW1lbnRzL2V2ZW50X3BsYXlpbmdfbm9hdXRvcGxheS1zdGRlcnIudHh0VVQFAANv
O0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAGF+9SNsiAHPwAAAADAYAAGgAGAAAAAAAAQAA
AKSByJkFAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1i
ZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9wcm9ncmVzcy1zdGRlcnIudHh0VVQF
AANwO0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAGV+9SBPhqQrrAAAApAQAAHMAGAAAAAAA
AQAAAKSBWpsFAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mv
ZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9wcm9ncmVzc19ub2F1dG9wbGF5
LXN0ZGVyci50eHRVVAUAA3I7S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAaX71I4zYj7vMA
AABmBgAAagAYAAAAAAABAAAApIHynAUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X3RpbWV1
cGRhdGUtc3RkZXJyLnR4dFVUBQADcztLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABtfvUgL
/9GC8gAAAAwGAAB1ABgAAAAAAAEAAACkgYmeBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRf
dGltZXVwZGF0ZV9ub2F1dG9wbGF5LXN0ZGVyci50eHRVVAUAA3U7S1d1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACAAbX71I0Uol/4QAAADAAAAAbAAYAAAAAAABAAAApIEqoAUAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlh
LWVsZW1lbnRzL2V2ZW50X3ZvbHVtZWNoYW5nZS1zdGRlcnIudHh0VVQFAAN2O0tXdXgLAAEE9QEA
AAQUAAAAUEsBAh4DCgAAAAAADF+9SAAAAAAAAAAAAAAAAFoAGAAAAAAAAAAQAO1BVKEFAGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVu
dC9tZWRpYS1lbGVtZW50cy9pbnRlcmZhY2VzL1VUBQADVztLV3V4CwABBPUBAAAEFAAAAFBLAQIe
AwoAAAAAAAxfvUgAAAAAAAAAAAAAAABkABgAAAAAAAAAEADtQeihBQBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxl
bWVudHMvaW50ZXJmYWNlcy9UZXh0VHJhY2svVVQFAANXO0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgADF+9SPsNNr7KAAAA3QEAAHkAGAAAAAAAAQAAAKSBhqIFAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVt
ZW50cy9pbnRlcmZhY2VzL1RleHRUcmFjay9hY3RpdmVDdWVzLXN0ZGVyci50eHRVVAUAA1c7S1d1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAMX71IrtWdbIMAAADAAAAAdQAYAAAAAAABAAAApIED
pAUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRl
ZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2ludGVyZmFjZXMvVGV4dFRyYWNrL2FkZEN1ZS1zdGRl
cnIudHh0VVQFAANXO0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAHF+9SNZC72DfAAAA5AMA
AHcAGAAAAAAAAQAAAKSBNaUFAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9z
ZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9uZXR3b3JrU3RhdGVfZHVy
aW5nX2xvYWRzdGFydC1zdGRlcnIudHh0VVQFAAN3O0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAHF+9SCFJYiCDAAAAwAAAAG4AGAAAAAAAAQAAAKSBxaYFAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50
cy9uZXR3b3JrU3RhdGVfaW5pdGlhbC1zdGRlcnIudHh0VVQFAAN4O0tXdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAHV+9SD2xQ6rmAAAATAUAAHIAGAAAAAAAAQAAAKSB8KcFAGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRp
YS1lbGVtZW50cy9wYXVzZWRfZmFsc2VfZHVyaW5nX3BsYXktc3RkZXJyLnR4dFVUBQADeTtLV3V4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAB1fvUhvfCCI7QAAAKQEAAByABgAAAAAAAEAAACkgYKp
BQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVk
LWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvcGF1c2VkX3RydWVfZHVyaW5nX3BhdXNlLXN0ZGVyci50
eHRVVAUAA3o7S1d1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAOX71IAAAAAAAAAAAAAAAAagAY
AAAAAAAAABAA7UEbqwUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFu
dGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3BsYXlpbmctdGhlLW1lZGlhLXJl
c291cmNlL1VUBQADWztLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAA1fvUjVcPdMEQEAAKAC
AACRABgAAAAAAAEAAACkgb+rBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
c2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvcGxheWluZy10aGUtbWVk
aWEtcmVzb3VyY2UvcGF1c2UtbW92ZS10by1vdGhlci1kb2N1bWVudC1zdGRlcnIudHh0VVQFAANa
O0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgADV+9SPH/FSMlAQAAbwMAAI8AGAAAAAAAAQAA
AKSBm60FAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1i
ZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9wbGF5aW5nLXRoZS1tZWRpYS1yZXNvdXJjZS9w
YXVzZS1tb3ZlLXdpdGhpbi1kb2N1bWVudC1zdGRlcnIudHh0VVQFAANaO0tXdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgADl+9SKin2D8qAQAAFQMAAI8AGAAAAAAAAQAAAKSBia8FAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9t
ZWRpYS1lbGVtZW50cy9wbGF5aW5nLXRoZS1tZWRpYS1yZXNvdXJjZS9wYXVzZS1yZW1vdmUtZnJv
bS1kb2N1bWVudC1zdGRlcnIudHh0VVQFAANbO0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
Dl+9SNhKh1GEAAAAwAAAAIEAGAAAAAAAAQAAAKSBfLEFAGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9w
bGF5aW5nLXRoZS1tZWRpYS1yZXNvdXJjZS9wbGF5YmFja1JhdGUtc3RkZXJyLnR4dFVUBQADWztL
V3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACBfvUiASJ1FhAAAAMAAAAB4ABgAAAAAAAEAAACk
gbuyBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVk
ZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvcHJlbG9hZF9yZWZsZWN0c19ub25lX2F1dG9wbGF5
LXN0ZGVyci50eHRVVAUAA3s7S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAgX71IUk60jOYA
AABMBQAAcwAYAAAAAAABAAAApIHxswUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3JlYWR5U3RhdGVf
ZHVyaW5nX2NhbnBsYXktc3RkZXJyLnR4dFVUBQADfDtLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIACFfvUjqv41F7gAAAAwGAAB6ABgAAAAAAAEAAACkgYS1BQBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVu
dHMvcmVhZHlTdGF0ZV9kdXJpbmdfY2FucGxheXRocm91Z2gtc3RkZXJyLnR4dFVUBQADfjtLV3V4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACJfvUg/lcrE8QAAAAwGAAB2ABgAAAAAAAEAAACkgSa3
BQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVk
LWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvcmVhZHlTdGF0ZV9kdXJpbmdfbG9hZGVkZGF0YS1zdGRl
cnIudHh0VVQFAAOAO0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAI1+9SPjCiJfrAAAApAQA
AHoAGAAAAAAAAQAAAKSBx7gFAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9z
ZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9yZWFkeVN0YXRlX2R1cmlu
Z19sb2FkZWRtZXRhZGF0YS1zdGRlcnIudHh0VVQFAAOBO0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAI1+9SL7rNJbxAAAADAYAAHMAGAAAAAAAAQAAAKSBZroFAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVt
ZW50cy9yZWFkeVN0YXRlX2R1cmluZ19wbGF5aW5nLXN0ZGVyci50eHRVVAUAA4I7S1d1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAAkX71Iy/GUn4QAAADAAAAAbAAYAAAAAAABAAAApIEEvAUAaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250
ZW50L21lZGlhLWVsZW1lbnRzL3JlYWR5U3RhdGVfaW5pdGlhbC1zdGRlcnIudHh0VVQFAAODO0tX
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAJF+9SBcPtA7YAAAAwgIAAIQAGAAAAAAAAQAAAKSB
Lr0FAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRk
ZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9zcmNfcmVmbGVjdHNfYXR0cmlidXRlX25vdF9zb3Vy
Y2VfZWxlbWVudHMtc3RkZXJyLnR4dFVUBQADhDtLV3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAA
AA1fvUgAAAAAAAAAAAAAAABVABgAAAAAAAAAEADtQcS+BQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMv
dHJhY2svVVQFAANaO0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAADV+9SAAAAAAAAAAAAAAA
AGMAGAAAAAAAAAAQAO1BU78FAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9z
ZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy90cmFjay90cmFjay1lbGVt
ZW50L1VUBQADWjtLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAA1fvUjpz+rOtQAAAIMBAACC
ABgAAAAAAAEAAACkgfC/BQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvdHJhY2svdHJhY2stZWxlbWVu
dC90cmFjay1hcGktdGV4dHRyYWNrcy1zdGRlcnIudHh0VVQFAANaO0tXdXgLAAEE9QEAAAQUAAAA
UEsBAh4DCgAAAAAADl+9SAAAAAAAAAAAAAAAAFEAGAAAAAAAAAAQAO1BYcEFAGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC90aGUt
YXJlYS1lbGVtZW50L1VUBQADWztLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAA5fvUgEmtAR
gwAAAMAAAABrABgAAAAAAAEAAACkgezBBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWFyZWEtZWxlbWVudC9hcmVhLXBy
b2Nlc3Npbmctc3RkZXJyLnR4dFVUBQADWztLV3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAA5f
vUgAAAAAAAAAAAAAAABSABgAAAAAAAAAEADtQRTDBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWF1ZGlvLWVsZW1lbnQv
VVQFAANbO0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgADl+9SEs2VCLdAAAA0AIAAG4AGAAA
AAAAAQAAAKSBoMMFAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3MvZW1iZWRkZWQtY29udGVudC90aGUtYXVkaW8tZWxlbWVudC9hdWRpb19jb25zdHJ1Y3Rvci1z
dGRlcnIudHh0VVQFAANbO0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAJl+9SAAAAAAAAAAA
AAAAACoAGAAAAAAAAAAQAO1BJcUFAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5k
ZXhlZERCL1VUBQADhztLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABFfvUjCF/UVogAAAE8C
AABGABgAAAAAAAEAAACkgYnFBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi9pZGJmYWN0b3J5X29wZW4xMS1zdGRlcnIudHh0VVQFAANiO0tXdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAEl+9SLxxbNWZAAAAxQAAAEMAGAAAAAAAAQAAAKSBq8YFAGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2NvdW50LXN0ZGVyci50eHRV
VAUAA2Q7S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAASX71IvHFs1ZkAAADFAAAARAAYAAAA
AAABAAAApIHBxwUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
aW5kZXhfY291bnQyLXN0ZGVyci50eHRVVAUAA2M7S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CAASX71IvHFs1ZkAAADFAAAARAAYAAAAAAABAAAApIHYyAUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRiaW5kZXhfY291bnQzLXN0ZGVyci50eHRVVAUAA2Q7S1d1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAXX71IvHFs1ZkAAADFAAAASQAYAAAAAAABAAAApIHv
yQUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3Rv
cmVfY291bnQtc3RkZXJyLnR4dFVUBQADbjtLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABdf
vUi8cWzVmQAAAMUAAABKABgAAAAAAAEAAACkgQvLBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9jb3VudDItc3RkZXJyLnR4dFVUBQADbjtL
V3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABdfvUgEiukDnwAAAIoBAABKABgAAAAAAAEAAACk
gSjMBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3Rz
dG9yZV9jb3VudDMtc3RkZXJyLnR4dFVUBQADbjtLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
ABpfvUi8cWzVmQAAAMUAAABLABgAAAAAAAEAAACkgUvNBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9kZWxldGU1LXN0ZGVyci50eHRVVAUA
A3M7S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAgX71IvHFs1ZkAAADFAAAATgAYAAAAAAAB
AAAApIFpzgUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRidHJh
bnNhY3Rpb24tb25jb21wbGV0ZS1zdGRlcnIudHh0VVQFAAN7O0tXdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAJV+9SASK6QOfAAAAigEAAFgAGAAAAAAAAQAAAKSBis8FAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL3RyYW5zYWN0aW9uLWNyZWF0ZV9pbl92ZXJzaW9u
Y2hhbmdlLXN0ZGVyci50eHRVVAUAA4U7S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAmX71I
vHFs1ZkAAADFAAAARgAYAAAAAAABAAAApIG70AUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvd3JpdGVyLXN0YXJ2YXRpb24tc3RkZXJyLnR4dFVUBQADhztLV3V4CwAB
BPUBAAAEFAAAAFBLAQIeAwoAAAAAACFfvUgAAAAAAAAAAAAAAAAKABgAAAAAAAAAEADtQdTRBQBp
bnNwZWN0b3IvVVQFAAN9O0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAIV+9SAAAAAAAAAAA
AAAAABMAGAAAAAAAAAAQAO1BGNIFAGluc3BlY3Rvci90aW1lbGluZS9VVAUAA307S1d1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAAhX71IKWiBSiwDAABOEwAAPgAYAAAAAAABAAAApIFl0gUAaW5z
cGVjdG9yL3RpbWVsaW5lL3NldEF1dG9DYXB0dXJlSW5zdHJ1bWVudHMtZXJyb3JzLXN0ZGVyci50
eHRVVAUAA307S1d1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABzX71IAAAAAAAAAAAAAAAAAwAY
AAAAAAAAABAA7UEJ1gUAanMvVVQFAAMZPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAR1+9
SAAAAAAAAAAAAAAAAAcAGAAAAAAAAAAQAO1BRtYFAGpzL2RvbS9VVAUAA8U7S1d1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAAoX71I3v266a8AAADuAAAANQAYAAAAAAABAAAApIGH1gUAanMvZG9t
L2NhbGxiYWNrLWZ1bmN0aW9uLXdpdGgtaGFuZGxlLWV2ZW50LXN0ZGVyci50eHRVVAUAA4w7S1d1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABHX71I3v266a8AAADuAAAAMAAYAAAAAAABAAAApIGl
1wUAanMvZG9tL2V4Y2VwdGlvbnMtdGhyb3duLWluLWNhbGxiYWNrcy1zdGRlcnIudHh0VVQFAAPF
O0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAArmC9SAAAAAAAAAAAAAAAAAsAGAAAAAAAAAAQ
AO1BvtgFAGpzL3JlZ3Jlc3MvVVQFAAN4PUtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAQGG9
SHTb6+1BQgAA030BACIAGAAAAAAAAQAAAKSBA9kFAGpzL3JlZ3Jlc3MvYmlnc3dpdGNoLWNyYXNo
LWxvZy50eHRVVAUAA4g+S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABzX71IyjTzv4kCAABe
BgAAHwAYAAAAAAABAAAApIGgGwYAanMvcmVncmVzcy9iaWdzd2l0Y2gtc3RkZXJyLnR4dFVUBQAD
GTxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAEBhvUhjx81mV0gAANGnAQAoABgAAAAAAAEA
AACkgYIeBgBqcy9yZWdyZXNzL3N3aXRjaC1jb25zdGFudC1jcmFzaC1sb2cudHh0VVQFAAOIPktX
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAZGC9SFd07cKJAgAAXgYAACUAGAAAAAAAAQAAAKSB
O2cGAGpzL3JlZ3Jlc3Mvc3dpdGNoLWNvbnN0YW50LXN0ZGVyci50eHRVVAUAA+w8S1d1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACABAYb1I4l75IrVDAAACewEAHwAYAAAAAAABAAAApIEjagYAanMv
cmVncmVzcy9zd2l0Y2gtY3Jhc2gtbG9nLnR4dFVUBQADiD5LV3V4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAK5gvUhq0PlQhwIAAF4GAAAcABgAAAAAAAEAAACkgTGuBgBqcy9yZWdyZXNzL3N3aXRj
aC1zdGRlcnIudHh0VVQFAAN4PUtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAQGG9SFQDjq3L
QQAA8iwBADQAGAAAAAAAAQAAAKSBDrEGAGpzL3JlZ3Jlc3Mvc3dpdGNoLXN0cmluZy1iYXNpYy1i
aWctdmFyLWNyYXNoLWxvZy50eHRVVAUAA4g+S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAB2
YL1IlOHBV4sCAABeBgAAMQAYAAAAAAABAAAApIFH8wYAanMvcmVncmVzcy9zd2l0Y2gtc3RyaW5n
LWJhc2ljLWJpZy12YXItc3RkZXJyLnR4dFVUBQADDz1LV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAEBhvUjtFkyKwUUAACWUAQAwABgAAAAAAAEAAACkgT32BgBqcy9yZWdyZXNzL3N3aXRjaC1z
dHJpbmctYmFzaWMtdmFyLWNyYXNoLWxvZy50eHRVVAUAA4g+S1d1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACACJYL1I93l4IIoCAABeBgAALQAYAAAAAAABAAAApIFoPAcAanMvcmVncmVzcy9zd2l0
Y2gtc3RyaW5nLWJhc2ljLXZhci1zdGRlcnIudHh0VVQFAAMyPUtXdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAQGG9SDXH8E9JQgAAQH4BADsAGAAAAAAAAQAAAKSBWT8HAGpzL3JlZ3Jlc3Mvc3dp
dGNoLXN0cmluZy1iaWctbGVuZ3RoLXRvd2VyLXZhci1jcmFzaC1sb2cudHh0VVQFAAOIPktXdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAm2C9SBU9HiqJAgAAXgYAADgAGAAAAAAAAQAAAKSBF4IH
AGpzL3JlZ3Jlc3Mvc3dpdGNoLXN0cmluZy1iaWctbGVuZ3RoLXRvd2VyLXZhci1zdGRlcnIudHh0
VVQFAANVPUtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAALGC9SAAAAAAAAAAAAAAAAAYAGAAA
AAAAAAAQAO1BEoUHAG1lZGlhL1VUBQADgzxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACtf
vUhX8KE22gAAAFICAAAfABgAAAAAAAEAAACkgVKFBwBtZWRpYS9hdWRpby1kYXRhLXVybC1zdGRl
cnIudHh0VVQFAAORO0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAANl+9SAAAAAAAAAAAAAAA
ABMAGAAAAAAAAAAQAO1BhYYHAG1lZGlhL21lZGlhLXNvdXJjZS9VVAUAA6c7S1d1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAA2X71IRECnhowAAACbAAAASAAYAAAAAAABAAAApIHShgcAbWVkaWEv
bWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1zdGFsbGVkLWhvbGRzLXNsZWVwLWFzc2VydGlvbi1z
dGRlcnIudHh0VVQFAAOnO0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAWV+9SAPFSXvDAAAA
JAMAACgAGAAAAAAAAQAAAKSB4IcHAG1lZGlhL3NvdXJjZXMtZmFsbGJhY2stY29kZWNzLXN0ZGVy
ci50eHRVVAUAA+k7S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABZX71Ic773PIsAAACAAQAA
MAAYAAAAAAABAAAApIEFiQcAbWVkaWEvc3ZnLWFzLWltYWdlLXdpdGgtbWVkaWEtYmxvY2tlZC1z
dGRlcnIudHh0VVQFAAPqO0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAW1+9SM9OKdKQAAAA
vQAAACEAGAAAAAAAAQAAAKSB+okHAG1lZGlhL3Vuc3VwcG9ydGVkLXJ0c3Atc3RkZXJyLnR4dFVU
BQAD7TtLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGtfvUhkd7TE5QAAAKEBAAA2ABgAAAAA
AAEAAACkgeWKBwBtZWRpYS92aWRlby1jb250cm9scy1zaG93LW9uLWtiLW9yLWF4LWV2ZW50LWFj
dHVhbC50eHRVVAUAAwk8S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABrX71Ik7D3u8IAAACI
AQAANAAYAAAAAAABAAAApIE6jAcAbWVkaWEvdmlkZW8tY29udHJvbHMtc2hvdy1vbi1rYi1vci1h
eC1ldmVudC1kaWZmLnR4dFVUBQADCTxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGtfvUgc
KqSXwQAAAGEBAAA4ABgAAAAAAAEAAACkgWqNBwBtZWRpYS92aWRlby1jb250cm9scy1zaG93LW9u
LWtiLW9yLWF4LWV2ZW50LWV4cGVjdGVkLnR4dFVUBQADCTxLV3V4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAGtfvUhHJY4R4QcAAGkeAAA8ABgAAAAAAAEAAACkgZ2OBwBtZWRpYS92aWRlby1jb250
cm9scy1zaG93LW9uLWtiLW9yLWF4LWV2ZW50LXByZXR0eS1kaWZmLmh0bWxVVAUAAwk8S1d1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAArYL1IddgxGrwAAACSAQAAHwAYAAAAAAABAAAApIH0lgcA
bWVkaWEvdmlkZW8tc3JjLWJsb2Itc3RkZXJyLnR4dFVUBQADgjxLV3V4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIACxgvUigExK4hAAAAMAAAAAhABgAAAAAAAEAAACkgQmYBwBtZWRpYS92aWRlby1z
cmMtY2hhbmdlLXN0ZGVyci50eHRVVAUAA4M8S1d1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAA2
X71IAAAAAAAAAAAAAAAACQAYAAAAAAAAABAA7UHomAcAcGxhdGZvcm0vVVQFAAOnO0tXdXgLAAEE
9QEAAAQUAAAAUEsBAh4DCgAAAAAANl+9SAAAAAAAAAAAAAAAAA0AGAAAAAAAAAAQAO1BK5kHAHBs
YXRmb3JtL21hYy9VVAUAA6c7S1d1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAA2X71IAAAAAAAA
AAAAAAAAEwAYAAAAAAAAABAA7UFymQcAcGxhdGZvcm0vbWFjL2ZvbnRzL1VUBQADpztLV3V4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIADZfvUiU3PvMrAAAABQDAAAwABgAAAAAAAEAAACkgb+ZBwBw
bGF0Zm9ybS9tYWMvZm9udHMvaGFuLWRpc3VuaWZpY2F0aW9uLXN0ZGVyci50eHRVVAUAA6c7S1d1
eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAA5X71IAAAAAAAAAAAAAAAACAAYAAAAAAAAABAA7UHV
mgcAcGx1Z2lucy9VVAUAA607S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA5X71IfFC2mq4A
AADxAAAALwAYAAAAAAABAAAApIEXmwcAcGx1Z2lucy9tb3VzZS1jbGljay1pZnJhbWUtdG8tcGx1
Z2luLXN0ZGVyci50eHRVVAUAA607S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD2Xr1IsMxv
FGcCAACiFQAAGgAYAAAAAAABAAAApIEunAcAcHl3ZWJzb2NrZXQud3MubG9nLWVyci50eHRVVAUA
AzA7S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD2Xr1IbcO4FggBAACPAgAAGgAYAAAAAAAB
AAAApIHpngcAcHl3ZWJzb2NrZXQud3MubG9nLW91dC50eHRVVAUAAzA7S1d1eAsAAQT1AQAABBQA
AABQSwECHgMKAAAAAACFXr1IAAAAAAAAAAAAAAAAGwAYAAAAAAAAAAAApIFFoAcAcHl3ZWJzb2Nr
ZXQud3NzLmxvZy1lcnIudHh0VVQFAANaOktXdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAhV69
SAAAAAAAAAAAAAAAABsAGAAAAAAAAAAAAKSBmqAHAHB5d2Vic29ja2V0Lndzcy5sb2ctb3V0LnR4
dFVUBQADWjpLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAEFhvUi+eo+yTicAAMepAAAMABgA
AAAAAAEAAACkge+gBwByZXN1bHRzLmh0bWxVVAUAA4k+S1d1eAsAAQT1AQAABBQAAABQSwECHgMK
AAAAAADiYL1IAAAAAAAAAAAAAAAACAAYAAAAAAAAABAA7UGDyAcAcmV0cmllcy9VVAUAA9c9S1d1
eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADiYL1IAAAAAAAAAAAAAAAACwAYAAAAAAAAABAA7UHF
yAcAcmV0cmllcy9qcy9VVAUAA9c9S1d1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAA9Yb1IAAAA
AAAAAAAAAAAAEwAYAAAAAAAAABAA7UEKyQcAcmV0cmllcy9qcy9yZWdyZXNzL1VUBQADhT5LV3V4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACthvUh02+vtQUIAANN9AQAqABgAAAAAAAEAAACkgVfJ
BwByZXRyaWVzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLWNyYXNoLWxvZy50eHRVVAUAA2I+S1d1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAArYb1Id7aHkYgCAABeBgAAJwAYAAAAAAABAAAApIH8CwgA
cmV0cmllcy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC1zdGRlcnIudHh0VVQFAANiPktXdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAGGG9SGPHzWZXSAAA0acBADAAGAAAAAAAAQAAAKSB5Q4IAHJldHJp
ZXMvanMvcmVncmVzcy9zd2l0Y2gtY29uc3RhbnQtY3Jhc2gtbG9nLnR4dFVUBQADQD5LV3V4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIABhhvUia2WvUiQIAAF4GAAAtABgAAAAAAAEAAACkgaZXCABy
ZXRyaWVzL2pzL3JlZ3Jlc3Mvc3dpdGNoLWNvbnN0YW50LXN0ZGVyci50eHRVVAUAA0A+S1d1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACADzYL1I4l75IrVDAAACewEAJwAYAAAAAAABAAAApIGWWggA
cmV0cmllcy9qcy9yZWdyZXNzL3N3aXRjaC1jcmFzaC1sb2cudHh0VVQFAAP6PUtXdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgA82C9SMvJxGOMAgAAXgYAACQAGAAAAAAAAQAAAKSBrJ4IAHJldHJp
ZXMvanMvcmVncmVzcy9zd2l0Y2gtc3RkZXJyLnR4dFVUBQAD+j1LV3V4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAAdhvUhUA46ty0EAAPIsAQA8ABgAAAAAAAEAAACkgZahCAByZXRyaWVzL2pzL3Jl
Z3Jlc3Mvc3dpdGNoLXN0cmluZy1iYXNpYy1iaWctdmFyLWNyYXNoLWxvZy50eHRVVAUAAx0+S1d1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAHYb1IyaEuRogCAABeBgAAOQAYAAAAAAABAAAApIHX
4wgAcmV0cmllcy9qcy9yZWdyZXNzL3N3aXRjaC1zdHJpbmctYmFzaWMtYmlnLXZhci1zdGRlcnIu
dHh0VVQFAAMdPktXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAPWG9SO0WTIrBRQAAJZQBADgA
GAAAAAAAAQAAAKSB0uYIAHJldHJpZXMvanMvcmVncmVzcy9zd2l0Y2gtc3RyaW5nLWJhc2ljLXZh
ci1jcmFzaC1sb2cudHh0VVQFAAOFPktXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAPWG9SBZJ
a1aMAgAAXgYAADUAGAAAAAAAAQAAAKSBBS0JAHJldHJpZXMvanMvcmVncmVzcy9zd2l0Y2gtc3Ry
aW5nLWJhc2ljLXZhci1zdGRlcnIudHh0VVQFAAOFPktXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgA4mC9SDXH8E9JQgAAQH4BAEMAGAAAAAAAAQAAAKSBADAJAHJldHJpZXMvanMvcmVncmVzcy9z
d2l0Y2gtc3RyaW5nLWJpZy1sZW5ndGgtdG93ZXItdmFyLWNyYXNoLWxvZy50eHRVVAUAA9c9S1d1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADiYL1ITdFul4oCAABeBgAAQAAYAAAAAAABAAAApIHG
cgkAcmV0cmllcy9qcy9yZWdyZXNzL3N3aXRjaC1zdHJpbmctYmlnLWxlbmd0aC10b3dlci12YXIt
c3RkZXJyLnR4dFVUBQAD1z1LV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAEFhvUigazkL4ZsI
ALs7LgAKABgAAAAAAAEAAACkgcp1CQBzdGF0cy5qc29uVVQFAAOJPktXdXgLAAEE9QEAAAQUAAAA
UEsBAh4DCgAAAAAAY1+9SAAAAAAAAAAAAAAAAAgAGAAAAAAAAAAQAO1B7xESAHN0b3JhZ2UvVVQF
AAP5O0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAO2C9SAAAAAAAAAAAAAAAABIAGAAAAAAA
AAAQAO1BMRISAHN0b3JhZ2UvaW5kZXhlZGRiL1VUBQADoTxLV3V4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAAhgvUjCF/UVogAAAE8CAAApABgAAAAAAAEAAACkgX0SEgBzdG9yYWdlL2luZGV4ZWRk
Yi9pbmRleC1iYXNpY3Mtc3RkZXJyLnR4dFVUBQADQDxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAAhgvUjCF/UVogAAAE8CAAAxABgAAAAAAAEAAACkgYITEgBzdG9yYWdlL2luZGV4ZWRkYi9p
bmRleC1iYXNpY3Mtd29ya2Vycy1zdGRlcnIudHh0VVQFAAM/PEtXdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgACWC9SLYLDNuvAAAAAQoAACgAGAAAAAAAAQAAAKSBjxQSAHN0b3JhZ2UvaW5kZXhl
ZGRiL2luZGV4LWNvdW50LXN0ZGVyci50eHRVVAUAA0E8S1d1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAAMYL1I/P1/XqMAAAAUAwAALQAYAAAAAAABAAAApIGgFRIAc3RvcmFnZS9pbmRleGVkZGIv
aW5kZXgtbXVsdGllbnRyeS1zdGRlcnIudHh0VVQFAANIPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgADWC9SLxxbNWZAAAAxQAAAC0AGAAAAAAAAQAAAKSBqhYSAHN0b3JhZ2UvaW5kZXhlZGRi
L2luZGV4LXBvcHVsYXRpb24tc3RkZXJyLnR4dFVUBQADSTxLV3V4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIABBgvUhbEBuOpAUAAP4vAABFABgAAAAAAAAAAACkgaoXEgBzdG9yYWdlL2luZGV4ZWRk
Yi9pbnR2ZXJzaW9uLW9wZW4taW4tdXBncmFkZW5lZWRlZC1wcml2YXRlLXN0ZGVyci50eHRVVAUA
A1A8S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAQYL1IMWBztbsFAAAUMwAAPQAYAAAAAAAA
AAAApIHNHRIAc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1vcGVuLWluLXVwZ3JhZGVuZWVk
ZWQtc3RkZXJyLnR4dFVUBQADUDxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABFgvUhRI04t
NQQAABAXAABBABgAAAAAAAAAAACkgf8jEgBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLW9w
ZW4td2l0aC12ZXJzaW9uLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADUTxLV3V4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIABFgvUjO+hc7LQQAALAWAAA5ABgAAAAAAAAAAACkga8oEgBzdG9yYWdlL2lu
ZGV4ZWRkYi9pbnR2ZXJzaW9uLW9wZW4td2l0aC12ZXJzaW9uLXN0ZGVyci50eHRVVAUAA1E8S1d1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAARYL1IfuPIWOwEAAD3NwAAUQAYAAAAAAAAAAAApIFP
LRIAc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1wZW5kaW5nLXZlcnNpb24tY2hhbmdlcy1h
c2NlbmRpbmctcHJpdmF0ZS1zdGRlcnIudHh0VVQFAANRPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAEWC9SC/U85EPBQAAOTkAAEkAGAAAAAAAAAAAAKSBxjISAHN0b3JhZ2UvaW5kZXhlZGRi
L2ludHZlcnNpb24tcGVuZGluZy12ZXJzaW9uLWNoYW5nZXMtYXNjZW5kaW5nLXN0ZGVyci50eHRV
VAUAA1I8S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAARYL1IezeR3b8EAAC9KwAAUgAYAAAA
AAAAAAAApIFYOBIAc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1wZW5kaW5nLXZlcnNpb24t
Y2hhbmdlcy1kZXNjZW5kaW5nLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADUjxLV3V4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIABFgvUjH81ao6wQAAKspAABKABgAAAAAAAAAAACkgaM9EgBzdG9yYWdl
L2luZGV4ZWRkYi9pbnR2ZXJzaW9uLXBlbmRpbmctdmVyc2lvbi1jaGFuZ2VzLWRlc2NlbmRpbmct
c3RkZXJyLnR4dFVUBQADUjxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABFgvUh5UXDIrwQA
AMQoAABMABgAAAAAAAAAAACkgRJDEgBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLXBlbmRp
bmctdmVyc2lvbi1jaGFuZ2VzLXNhbWUtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAANSPEtXdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAEmC9SCT6B0biBAAAzCwAAEQAGAAAAAAAAAAAAKSBR0gSAHN0
b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tcGVuZGluZy12ZXJzaW9uLWNoYW5nZXMtc2FtZS1z
dGRlcnIudHh0VVQFAANTPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAEmC9SAmnpMkBBAAA
DxoAADsAGAAAAAAAAAAAAKSBp00SAHN0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tcGVyc2lz
dGVuY2UtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAANTPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAEmC9SMCrSFfWAwAA1RcAADMAGAAAAAAAAAAAAKSBHVISAHN0b3JhZ2UvaW5kZXhlZGRiL2lu
dHZlcnNpb24tcGVyc2lzdGVuY2Utc3RkZXJyLnR4dFVUBQADUzxLV3V4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIABJgvUhru4ltJQUAAOApAAA/ABgAAAAAAAAAAACkgWBWEgBzdG9yYWdlL2luZGV4
ZWRkYi9pbnR2ZXJzaW9uLXJldmVydC1vbi1hYm9ydC1wcml2YXRlLXN0ZGVyci50eHRVVAUAA1Q8
S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAASYL1IKam69SUFAABzKwAANwAYAAAAAAAAAAAA
pIH+WxIAc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1yZXZlcnQtb24tYWJvcnQtc3RkZXJy
LnR4dFVUBQADVDxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABJgvUiDhidw2gMAAG4YAABF
ABgAAAAAAAAAAACkgZRhEgBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLXR3by1vcGVucy1u
by12ZXJzaW9ucy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA1Q8S1d1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAASYL1Im0Q8nwMEAADVGQAAPQAYAAAAAAAAAAAApIHtZRIAc3RvcmFnZS9pbmRleGVk
ZGIvaW50dmVyc2lvbi10d28tb3BlbnMtbm8tdmVyc2lvbnMtc3RkZXJyLnR4dFVUBQADVDxLV3V4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABNgvUgCNBCLDwUAAEZBAAA4ABgAAAAAAAAAAACkgWdq
EgBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLXVwZ3JhZGVzLXByaXZhdGUtc3RkZXJyLnR4
dFVUBQADVTxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABNgvUg5PXSnQwUAANRDAAAwABgA
AAAAAAAAAACkgehvEgBzdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLXVwZ3JhZGVzLXN0ZGVy
ci50eHRVVAUAA1U8S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAATYL1IxAhgYRYDAADqEAAA
MQAYAAAAAAAAAAAApIGVdRIAc3RvcmFnZS9pbmRleGVkZGIvaW52YWxpZC1rZXlzLXByaXZhdGUt
c3RkZXJyLnR4dFVUBQADVTxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABNgvUhhCzIcnwMA
AGESAAApABgAAAAAAAAAAACkgRZ5EgBzdG9yYWdlL2luZGV4ZWRkYi9pbnZhbGlkLWtleXMtc3Rk
ZXJyLnR4dFVUBQADVjxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABRgvUjPO0WE1AsAAC6Y
AQAyABgAAAAAAAAAAACkgRh9EgBzdG9yYWdlL2luZGV4ZWRkYi9rZXktZ2VuZXJhdG9yLXByaXZh
dGUtc3RkZXJyLnR4dFVUBQADVzxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABVgvUi1i0Ua
GQwAAJWdAQAqABgAAAAAAAAAAACkgViJEgBzdG9yYWdlL2luZGV4ZWRkYi9rZXktZ2VuZXJhdG9y
LXN0ZGVyci50eHRVVAUAA1k8S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAVYL1I5/UCTPAE
AAAjNQAAQAAYAAAAAAAAAAAApIHVlRIAc3RvcmFnZS9pbmRleGVkZGIva2V5LXNvcnQtb3JkZXIt
YWNyb3NzLXR5cGVzLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADWTxLV3V4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIABVgvUil71YvowUAABg1AAA4ABgAAAAAAAAAAACkgT+bEgBzdG9yYWdlL2luZGV4
ZWRkYi9rZXktc29ydC1vcmRlci1hY3Jvc3MtdHlwZXMtc3RkZXJyLnR4dFVUBQADWTxLV3V4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIABVgvUgUCUukIgUAADMtAAA4ABgAAAAAAAAAAACkgVShEgBz
dG9yYWdlL2luZGV4ZWRkYi9rZXktc29ydC1vcmRlci1kYXRlLXByaXZhdGUtc3RkZXJyLnR4dFVU
BQADWjxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABVgvUh9S2k4mwUAAKkuAAAwABgAAAAA
AAAAAACkgeimEgBzdG9yYWdlL2luZGV4ZWRkYi9rZXktc29ydC1vcmRlci1kYXRlLXN0ZGVyci50
eHRVVAUAA1o8S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAWYL1I4RgZ7MQHAAAStQAAMwAY
AAAAAAAAAAAApIHtrBIAc3RvcmFnZS9pbmRleGVkZGIva2V5LXR5cGUtYXJyYXktcHJpdmF0ZS1z
dGRlcnIudHh0VVQFAANbPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAF2C9SGhSkvGnBwAA
5LgAACsAGAAAAAAAAAAAAKSBHrUSAHN0b3JhZ2UvaW5kZXhlZGRiL2tleS10eXBlLWFycmF5LXN0
ZGVyci50eHRVVAUAA148S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAXYL1INTpkmOEEAADf
JAAANAAYAAAAAAAAAAAApIEqvRIAc3RvcmFnZS9pbmRleGVkZGIva2V5LXR5cGUtYmluYXJ5LXBy
aXZhdGUtc3RkZXJyLnR4dFVUBQADXjxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABdgvUhh
66sG2wQAAEYkAAAsABgAAAAAAAAAAACkgXnCEgBzdG9yYWdlL2luZGV4ZWRkYi9rZXktdHlwZS1i
aW5hcnktc3RkZXJyLnR4dFVUBQADXjxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABhgvUj+
iNRMIAQAAIwXAAA2ABgAAAAAAAAAAACkgbrHEgBzdG9yYWdlL2luZGV4ZWRkYi9rZXktdHlwZS1p
bmZpbml0eS1wcml2YXRlLXN0ZGVyci50eHRVVAUAA188S1d1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAAYYL1ITB1UkKkEAABVGgAALgAYAAAAAAAAAAAApIFKzBIAc3RvcmFnZS9pbmRleGVkZGIv
a2V5LXR5cGUtaW5maW5pdHktc3RkZXJyLnR4dFVUBQADXzxLV3V4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIABhgvUje5WdKtQYAAJM3AAAzABgAAAAAAAAAAACkgVvREgBzdG9yYWdlL2luZGV4ZWRk
Yi9rZXlwYXRoLWFycmF5cy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA188S1d1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACAAYYL1II51deJwGAABhNQAAKwAYAAAAAAAAAAAApIF92BIAc3RvcmFnZS9p
bmRleGVkZGIva2V5cGF0aC1hcnJheXMtc3RkZXJyLnR4dFVUBQADYDxLV3V4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIABlgvUj91xsdmQMAAKVPAAAzABgAAAAAAAAAAACkgX7fEgBzdG9yYWdlL2lu
ZGV4ZWRkYi9rZXlwYXRoLWJhc2ljcy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA2E8S1d1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAAaYL1I8xOkqXoEAACxcwAAKwAYAAAAAAAAAAAApIGE4xIAc3Rv
cmFnZS9pbmRleGVkZGIva2V5cGF0aC1iYXNpY3Mtc3RkZXJyLnR4dFVUBQADYzxLV3V4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIABpgvUhGw/SjQgYAAFFbAAAyABgAAAAAAAAAAACkgWPoEgBzdG9y
YWdlL2luZGV4ZWRkYi9rZXlwYXRoLWVkZ2VzLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADZDxLV3V4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABtgvUhLcFYengUAAJ02AAAqABgAAAAAAAAAAACkgRHv
EgBzdG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRoLWVkZ2VzLXN0ZGVyci50eHRVVAUAA2U8S1d1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAAbYL1ItClWlvAEAADDOQAANgAYAAAAAAAAAAAApIET9RIA
c3RvcmFnZS9pbmRleGVkZGIva2V5cGF0aC1mZXRjaC1rZXktcHJpdmF0ZS1zdGRlcnIudHh0VVQF
AANlPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAG2C9SKp3FhXUBQAAmj4AAC4AGAAAAAAA
AAAAAKSBc/oSAHN0b3JhZ2UvaW5kZXhlZGRiL2tleXBhdGgtZmV0Y2gta2V5LXN0ZGVyci50eHRV
VAUAA2U8S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAbYL1IlUIwRdQGAAC0WQAAQQAYAAAA
AAAAAAAApIGvABMAc3RvcmFnZS9pbmRleGVkZGIva2V5cGF0aC1pbnRyaW5zaWMtcHJvcGVydGll
cy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA2Y8S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAb
YL1IisH+LN0GAACAWQAAOQAYAAAAAAAAAAAApIH+BxMAc3RvcmFnZS9pbmRleGVkZGIva2V5cGF0
aC1pbnRyaW5zaWMtcHJvcGVydGllcy1zdGRlcnIudHh0VVQFAANmPEtXdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAHGC9SN6d3K7VAAAAQAIAAC0AGAAAAAAAAAAAAKSBTg8TAHN0b3JhZ2UvaW5k
ZXhlZGRiL2tleXJhbmdlLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADZzxLV3V4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIABxgvUhMvSBh7QcAAE2AAAA6ABgAAAAAAAAAAACkgYoQEwBzdG9yYWdlL2lu
ZGV4ZWRkYi9sYXp5LWluZGV4LXBvcHVsYXRpb24tcHJpdmF0ZS1zdGRlcnIudHh0VVQFAANoPEtX
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAHWC9SJGDcJgnCAAAhH8AADIAGAAAAAAAAAAAAKSB
6xgTAHN0b3JhZ2UvaW5kZXhlZGRiL2xhenktaW5kZXgtcG9wdWxhdGlvbi1zdGRlcnIudHh0VVQF
AANpPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAHWC9SGA9bhJtBgAA4lkAADUAGAAAAAAA
AAAAAKSBfiETAHN0b3JhZ2UvaW5kZXhlZGRiL2xhenktaW5kZXgtdHlwZXMtcHJpdmF0ZS1zdGRl
cnIudHh0VVQFAANpPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAHWC9SN6C8o5UBwAATWQA
AC0AGAAAAAAAAAAAAKSBWigTAHN0b3JhZ2UvaW5kZXhlZGRiL2xhenktaW5kZXgtdHlwZXMtc3Rk
ZXJyLnR4dFVUBQADajxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAB1gvUjendyu1QAAAEAC
AAA1ABgAAAAAAAAAAACkgRUwEwBzdG9yYWdlL2luZGV4ZWRkYi9sZWdhY3ktY29uc3RhbnRzLXBy
aXZhdGUtc3RkZXJyLnR4dFVUBQADajxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACBgvUgX
TsuiEQUAADuEAAAyABgAAAAAAAAAAACkgVkxEwBzdG9yYWdlL2luZGV4ZWRkYi9saXN0LW9yZGVy
aW5nLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADazxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
ACBgvUisoBZNfAUAAHZ6AAAqABgAAAAAAAAAAACkgdY2EwBzdG9yYWdlL2luZGV4ZWRkYi9saXN0
LW9yZGVyaW5nLXN0ZGVyci50eHRVVAUAA2s8S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAg
YL1I3eD21f8FAAACUQAALQAYAAAAAAAAAAAApIG2PBMAc3RvcmFnZS9pbmRleGVkZGIvbWV0YWRh
dGEtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAANrPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
IGC9SDmzXBfmBAAA5h4AADIAGAAAAAAAAAAAAKSBHEMTAHN0b3JhZ2UvaW5kZXhlZGRiL21ldGFk
YXRhLXJhY2UtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAANsPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAIGC9SJTDZfCbBQAA8SIAACoAGAAAAAAAAAAAAKSBbkgTAHN0b3JhZ2UvaW5kZXhlZGRi
L21ldGFkYXRhLXJhY2Utc3RkZXJyLnR4dFVUBQADbDxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIACBgvUjoC9kpfQYAADZSAAAlABgAAAAAAAAAAACkgW1OEwBzdG9yYWdlL2luZGV4ZWRkYi9t
ZXRhZGF0YS1zdGRlcnIudHh0VVQFAANsPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAAGC9
SAAAAAAAAAAAAAAAABkAGAAAAAAAAAAQAO1BSVUTAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9V
VAUAAzA8S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABjX71Iz9EOJXwGAACARgAARAAYAAAA
AAAAAAAApIGcVRMAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2Fib3J0LXJlcXVlc3RzLWNhbmNl
bGxlZC1wcml2YXRlLXN0ZGVyci50eHRVVAUAA/k7S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CABjX71I3U41+pgGAABESgAAPAAYAAAAAAAAAAAApIGWXBMAc3RvcmFnZS9pbmRleGVkZGIvbW9k
ZXJuL2Fib3J0LXJlcXVlc3RzLWNhbmNlbGxlZC1zdGRlcnIudHh0VVQFAAP5O0tXdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAY1+9SKAtIPZmBgAANU0AADcAGAAAAAAAAAAAAKSBpGMTAHN0b3Jh
Z2UvaW5kZXhlZGRiL21vZGVybi9hYm9ydGVkLXB1dC1wcml2YXRlLXN0ZGVyci50eHRVVAUAA/o7
S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABjX71IaUwqu3EGAAAsTAAALwAYAAAAAAAAAAAA
pIF7ahMAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2Fib3J0ZWQtcHV0LXN0ZGVyci50eHRVVAUA
A/o7S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABjX71IpR+Nh2oGAACVawAANwAYAAAAAAAA
AAAApIFVcRMAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2F1dG9pbmNyZW1lbnQtYWJvcnQtc3Rk
ZXJyLnR4dFVUBQAD+jtLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGRfvUjqxA/s4gQAAOYc
AAA1ABgAAAAAAAAAAACkgTB4EwBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vYmFzaWMtYWRkLXBy
aXZhdGUtc3RkZXJyLnR4dFVUBQAD+ztLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGRfvUg0
ivy78gQAAP8cAAAtABgAAAAAAAAAAACkgYF9EwBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vYmFz
aWMtYWRkLXN0ZGVyci50eHRVVAUAA/s7S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABkX71I
5+eFSsIEAABsGgAANQAYAAAAAAAAAAAApIHaghMAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2Jh
c2ljLXB1dC1wcml2YXRlLXN0ZGVyci50eHRVVAUAA/s7S1d1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACABkX71I1L/IvtAEAACRGgAALQAYAAAAAAAAAAAApIELiBMAc3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL2Jhc2ljLXB1dC1zdGRlcnIudHh0VVQFAAP7O0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAZV+9SEu2AfTlCAAAIKcAAC8AGAAAAAAAAAAAAKSBQo0TAHN0b3JhZ2UvaW5kZXhlZGRi
L21vZGVybi9ibG9iLXNpbXBsZS1zdGRlcnIudHh0VVQFAAP9O0tXdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAZF+9SF3qO17YCQAAbaQAADcAGAAAAAAAAAAAAKSBkJYTAHN0b3JhZ2UvaW5kZXhl
ZGRiL21vZGVybi9ibG9iLXNpbXBsZS13b3JrZXJzLXN0ZGVyci50eHRVVAUAA/w7S1d1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACABlX71Ia/2IdzUGAAAsMQAARAAYAAAAAAAAAAAApIHZoBMAc3Rv
cmFnZS9pbmRleGVkZGIvbW9kZXJuL2Jsb2NrZWQtb3Blbi1kYi1yZXF1ZXN0cy1wcml2YXRlLXN0
ZGVyci50eHRVVAUAA/07S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABlX71I4q5d7KMGAAAi
MwAAPAAYAAAAAAAAAAAApIGMpxMAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2Jsb2NrZWQtb3Bl
bi1kYi1yZXF1ZXN0cy1zdGRlcnIudHh0VVQFAAP9O0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAZV+9SJbZfrUMBgAABi8AAEEAGAAAAAAAAAAAAKSBpa4TAHN0b3JhZ2UvaW5kZXhlZGRiL21v
ZGVybi9jcmVhdGUtaW5kZXgtZmFpbHVyZXMtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAP9O0tXdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAZV+9SOx4Z8AOBgAA6SsAADkAGAAAAAAAAAAAAKSBLLUT
AHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9jcmVhdGUtaW5kZXgtZmFpbHVyZXMtc3RkZXJyLnR4
dFVUBQAD/jtLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGVfvUh+sUyWCQYAACtDAABDABgA
AAAAAAAAAACkga27EwBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vY3JlYXRlb2JqZWN0c3RvcmUt
YmFzaWMtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAP+O0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAZV+9SEmz7D4/BgAAXUUAADsAGAAAAAAAAAAAAKSBM8ITAHN0b3JhZ2UvaW5kZXhlZGRiL21v
ZGVybi9jcmVhdGVvYmplY3RzdG9yZS1iYXNpYy1zdGRlcnIudHh0VVQFAAP+O0tXdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAZV+9SBtuQJKSBAAApBsAAEYAGAAAAAAAAAAAAKSB58gTAHN0b3Jh
Z2UvaW5kZXhlZGRiL21vZGVybi9jcmVhdGVvYmplY3RzdG9yZS1mYWlsdXJlcy1wcml2YXRlLXN0
ZGVyci50eHRVVAUAA/47S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABmX71IizkoKTsEAAAo
GAAAPgAYAAAAAAAAAAAApIH5zRMAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2NyZWF0ZW9iamVj
dHN0b3JlLWZhaWx1cmVzLXN0ZGVyci50eHRVVAUAA/87S1d1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACABmX71IKkBrQ8kFAAC8VgAANAAYAAAAAAAAAAAApIGs0hMAc3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL2N1cnNvci0xLXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD/ztLV3V4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAGZfvUh8At+dAQYAAOJYAAAsABgAAAAAAAAAAACkgePYEwBzdG9yYWdlL2lu
ZGV4ZWRkYi9tb2Rlcm4vY3Vyc29yLTEtc3RkZXJyLnR4dFVUBQAD/ztLV3V4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAGZfvUir4T2t7gUAAMF5AAA0ABgAAAAAAAAAAACkgUrfEwBzdG9yYWdlL2lu
ZGV4ZWRkYi9tb2Rlcm4vY3Vyc29yLTItcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAMAPEtXdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAZl+9SHlFQuz+BQAADnUAACwAGAAAAAAAAAAAAKSBpuUTAHN0
b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9jdXJzb3ItMi1zdGRlcnIudHh0VVQFAAMAPEtXdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAZ1+9SNVjbkmxBQAAs1UAADQAGAAAAAAAAAAAAKSBCuwTAHN0
b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9jdXJzb3ItMy1wcml2YXRlLXN0ZGVyci50eHRVVAUAAwE8
S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABnX71IfE7Khs8FAAC6VAAALAAYAAAAAAAAAAAA
pIEp8hMAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2N1cnNvci0zLXN0ZGVyci50eHRVVAUAAwE8
S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABnX71IDntquLAFAABNUAAANAAYAAAAAAAAAAAA
pIFe+BMAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2N1cnNvci00LXByaXZhdGUtc3RkZXJyLnR4
dFVUBQADATxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGdfvUjHnYDaxwUAACJPAAAsABgA
AAAAAAAAAACkgXz+EwBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vY3Vyc29yLTQtc3RkZXJyLnR4
dFVUBQADAjxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGdfvUggKs9okgUAAEMuAAA0ABgA
AAAAAAAAAACkgakEFABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vY3Vyc29yLTUtcHJpdmF0ZS1z
dGRlcnIudHh0VVQFAAMCPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAZ1+9SGocspfVBQAA
dy8AACwAGAAAAAAAAAAAAKSBqQoUAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9jdXJzb3ItNS1z
dGRlcnIudHh0VVQFAAMCPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAZ1+9SARUkj6VBQAA
Qy4AADQAGAAAAAAAAAAAAKSB5BAUAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9jdXJzb3ItNi1w
cml2YXRlLXN0ZGVyci50eHRVVAUAAwI8S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABoX71I
jK73z8wFAADTLgAALAAYAAAAAAAAAAAApIHnFhQAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2N1
cnNvci02LXN0ZGVyci50eHRVVAUAAwM8S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABoX71I
s9KHt30FAACAKAAANAAYAAAAAAAAAAAApIEZHRQAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2N1
cnNvci03LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADAzxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAGhfvUiv+ufEqwUAAJQpAAAsABgAAAAAAAAAAACkgQQjFABzdG9yYWdlL2luZGV4ZWRkYi9t
b2Rlcm4vY3Vyc29yLTctc3RkZXJyLnR4dFVUBQADAzxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAGhfvUjUkHc8ewUAAIAoAAA0ABgAAAAAAAAAAACkgRUpFABzdG9yYWdlL2luZGV4ZWRkYi9t
b2Rlcm4vY3Vyc29yLTgtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAMDPEtXdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAaF+9SEBUHiKlBQAAPikAACwAGAAAAAAAAAAAAKSB/i4UAHN0b3JhZ2UvaW5k
ZXhlZGRiL21vZGVybi9jdXJzb3ItOC1zdGRlcnIudHh0VVQFAAMEPEtXdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAaF+9SDKGBXjdBQAADEAAADYAGAAAAAAAAAAAAKSBCTUUAHN0b3JhZ2UvaW5k
ZXhlZGRiL21vZGVybi9kYXRlLWJhc2ljLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADBDxLV3V4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAGhfvUjONvdZ7QUAAIFBAAAuABgAAAAAAAAAAACkgVY7FABz
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZGF0ZS1iYXNpYy1zdGRlcnIudHh0VVQFAAMEPEtXdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAaF+9SJV873xZBQAAfCwAADwAGAAAAAAAAAAAAKSBq0EU
AHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kZWxldGVkYXRhYmFzZS0xLXByaXZhdGUtc3RkZXJy
LnR4dFVUBQADBDxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGlfvUi01L4jbAUAALUtAAA0
ABgAAAAAAAAAAACkgXpHFABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZGVsZXRlZGF0YWJhc2Ut
MS1zdGRlcnIudHh0VVQFAAMFPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAaV+9SDMtjkUJ
BgAAPzAAADwAGAAAAAAAAAAAAKSBVE0UAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kZWxldGVk
YXRhYmFzZS0yLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADBTxLV3V4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAGlfvUgPuv94EgYAAOAwAAA0ABgAAAAAAAAAAACkgdNTFABzdG9yYWdlL2luZGV4ZWRk
Yi9tb2Rlcm4vZGVsZXRlZGF0YWJhc2UtMi1zdGRlcnIudHh0VVQFAAMFPEtXdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAaV+9SErOns3UAAAA4AIAAE4AGAAAAAAAAAAAAKSBU1oUAHN0b3JhZ2Uv
aW5kZXhlZGRiL21vZGVybi9kZWxldGVkYXRhYmFzZS1udWxsLW5hbWUtZXhjZXB0aW9uLXByaXZh
dGUtc3RkZXJyLnR4dFVUBQADBTxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGlfvUidn8N/
TwEAAJ0DAABIABgAAAAAAAAAAACkga9bFABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZGVsZXRl
ZGF0YWJhc2UtcmVxdWVzdC1ldmVudC1wcml2YXRlLXN0ZGVyci50eHRVVAUAAwU8S1d1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACABpX71Iqrz7WooBAABCBAAAQAAYAAAAAAAAAAAApIGAXRQAc3Rv
cmFnZS9pbmRleGVkZGIvbW9kZXJuL2RlbGV0ZWRhdGFiYXNlLXJlcXVlc3QtZXZlbnQtc3RkZXJy
LnR4dFVUBQADBjxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGlfvUhgNvQyVgAAAJkAAABC
ABgAAAAAAAAAAACkgYRfFABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZGVsZXRlZGF0YWJhc2Ut
cmVxdWVzdC1wcml2YXRlLXN0ZGVyci50eHRVVAUAAwY8S1d1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACABpX71IDjkXcg4BAAAhAwAAOgAYAAAAAAAAAAAApIFWYBQAc3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL2RlbGV0ZWRhdGFiYXNlLXJlcXVlc3Qtc3RkZXJyLnR4dFVUBQADBjxLV3V4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAGlfvUjt664fGQcAAMo3AAA5ABgAAAAAAAAAAACkgdhhFABzdG9y
YWdlL2luZGV4ZWRkYi9tb2Rlcm4vZGVsZXRlaW5kZXgtMS1wcml2YXRlLXN0ZGVyci50eHRVVAUA
AwY8S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABpX71I0qa46JIHAAD4NwAAMQAYAAAAAAAA
AAAApIFkaRQAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RlbGV0ZWluZGV4LTEtc3RkZXJyLnR4
dFVUBQADBjxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGpfvUiRlLB9ZwcAAB1QAAA5ABgA
AAAAAAAAAACkgWFxFABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZGVsZXRlaW5kZXgtMi1wcml2
YXRlLXN0ZGVyci50eHRVVAUAAwc8S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABqX71IrtuM
s/sHAABGUAAAMQAYAAAAAAAAAAAApIE7eRQAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RlbGV0
ZWluZGV4LTItc3RkZXJyLnR4dFVUBQADBzxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGpf
vUihj2HfJgUAAO0jAAA5ABgAAAAAAAAAAACkgaGBFABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4v
ZGVsZXRlaW5kZXgtMy1wcml2YXRlLXN0ZGVyci50eHRVVAUAAwc8S1d1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACABqX71IGEIjqHgFAACWJAAAMQAYAAAAAAAAAAAApIE6hxQAc3RvcmFnZS9pbmRl
eGVkZGIvbW9kZXJuL2RlbGV0ZWluZGV4LTMtc3RkZXJyLnR4dFVUBQADBzxLV3V4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAGpfvUj6UhthZwUAALQsAAA5ABgAAAAAAAAAAACkgR2NFABzdG9yYWdl
L2luZGV4ZWRkYi9tb2Rlcm4vZGVsZXRlaW5kZXgtNC1wcml2YXRlLXN0ZGVyci50eHRVVAUAAwg8
S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABqX71Id72rTAoHAADoZwAAPwAYAAAAAAAAAAAA
pIH3khQAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RlbGV0ZW9iamVjdHN0b3JlLTEtcHJpdmF0
ZS1zdGRlcnIudHh0VVQFAAMIPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAal+9SK56BdwQ
BwAAeGoAADcAGAAAAAAAAAAAAKSBepoUAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kZWxldGVv
YmplY3RzdG9yZS0xLXN0ZGVyci50eHRVVAUAAwg8S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CABqX71I+AwZe60DAACIFAAAOAAYAAAAAAAAAAAApIH7oRQAc3RvcmFnZS9pbmRleGVkZGIvbW9k
ZXJuL2RvdWJsZS1hYm9ydC1wcml2YXRlLXN0ZGVyci50eHRVVAUAAwg8S1d1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACABrX71Ir/n5u9sDAABgEwAAMAAYAAAAAAAAAAAApIEaphQAc3RvcmFnZS9p
bmRleGVkZGIvbW9kZXJuL2RvdWJsZS1hYm9ydC1zdGRlcnIudHh0VVQFAAMJPEtXdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAa1+9SIHPZEZVAwAAoxIAADcAGAAAAAAAAAAAAKSBX6oUAHN0b3Jh
Z2UvaW5kZXhlZGRiL21vZGVybi9kb3VibGUtb3Blbi1wcml2YXRlLXN0ZGVyci50eHRVVAUAAwk8
S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABrX71IPcBM7YYDAABlFQAALwAYAAAAAAAAAAAA
pIElrhQAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RvdWJsZS1vcGVuLXN0ZGVyci50eHRVVAUA
Awk8S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABrX71IEHCEqScGAAC4NgAAPgAYAAAAAAAA
AAAApIEUshQAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2dldC1pbmRleC1mYWlsdXJlcy1wcml2
YXRlLXN0ZGVyci50eHRVVAUAAwk8S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABrX71IBWLL
XWIGAAA7NQAANgAYAAAAAAAAAAAApIGzuBQAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2dldC1p
bmRleC1mYWlsdXJlcy1zdGRlcnIudHh0VVQFAAMJPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAa1+9SNiUA8yECQAAJO8BADgAGAAAAAAAAAAAAKSBhb8UAHN0b3JhZ2UvaW5kZXhlZGRiL21v
ZGVybi9nZXQta2V5cmFuZ2UtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAMKPEtXdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAbF+9SIwEKC6uCQAA4wQCADAAGAAAAAAAAAAAAKSBe8kUAHN0b3JhZ2Uv
aW5kZXhlZGRiL21vZGVybi9nZXQta2V5cmFuZ2Utc3RkZXJyLnR4dFVUBQADDDxLV3V4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAGxfvUirGLIXKQUAANscAAA2ABgAAAAAAAAAAACkgZPTFABzdG9y
YWdlL2luZGV4ZWRkYi9tb2Rlcm4vaGFuZGxlLXVzZXItZGVsZXRlLXN0ZGVyci50eHRVVAUAAww8
S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABsX71IKa+bohoGAACbNAAAUgAYAAAAAAAAAAAA
pIEs2RQAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYmRhdGFiYXNlLWRlbGV0ZW9iamVjdHN0
b3JlLWZhaWx1cmVzLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADDDxLV3V4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAGxfvUhrVjrPHQYAAEE1AABKABgAAAAAAAAAAACkgdLfFABzdG9yYWdlL2luZGV4
ZWRkYi9tb2Rlcm4vaWRiZGF0YWJhc2UtZGVsZXRlb2JqZWN0c3RvcmUtZmFpbHVyZXMtc3RkZXJy
LnR4dFVUBQADDDxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAG1fvUi3YVyJggQAAB4ZAABM
ABgAAAAAAAAAAACkgXPmFABzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRiZGF0YWJhc2UtdHJh
bnNhY3Rpb24tZmFpbHVyZXMtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAMNPEtXdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAbV+9SAyV+paYBAAA6xgAAEQAGAAAAAAAAAAAAKSBe+sUAHN0b3JhZ2Uv
aW5kZXhlZGRiL21vZGVybi9pZGJkYXRhYmFzZS10cmFuc2FjdGlvbi1mYWlsdXJlcy1zdGRlcnIu
dHh0VVQFAAMNPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAbV+9SC8Hv8pHBQAAiTQAAEUA
GAAAAAAAAAAAAKSBkfAUAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJpbmRleC1wcm9wZXJ0
aWVzLWJhc2ljLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADDTxLV3V4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAG1fvUjPIzFkdAUAAJU0AAA9ABgAAAAAAAAAAACkgVf2FABzdG9yYWdlL2luZGV4ZWRk
Yi9tb2Rlcm4vaWRiaW5kZXgtcHJvcGVydGllcy1iYXNpYy1zdGRlcnIudHh0VVQFAAMNPEtXdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAbl+9SHfyhUWXCwAAzMkFAEEAGAAAAAAAAAAAAKSBQvwU
AHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJrZXktYXJyYXktZXF1YWxpdHktcHJpdmF0ZS1z
dGRlcnIudHh0VVQFAAMQPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAcF+9SP48yzapDQAA
t9sGADkAGAAAAAAAAAAAAKSBVAgVAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJrZXktYXJy
YXktZXF1YWxpdHktc3RkZXJyLnR4dFVUBQADEzxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AHBfvUj88SMO8QYAAGNxAABCABgAAAAAAAAAAACkgXAWFQBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rl
cm4vaWRib2JqZWN0c3RvcmUtY2xlYXItMS1wcml2YXRlLXN0ZGVyci50eHRVVAUAAxM8S1d1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACABwX71IxK0TENMGAAB+cQAAOgAYAAAAAAAAAAAApIHdHRUA
c3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYm9iamVjdHN0b3JlLWNsZWFyLTEtc3RkZXJyLnR4
dFVUBQADFDxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHBfvUh8a09jmwcAANuYAABCABgA
AAAAAAAAAACkgSQlFQBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtY2xl
YXItMi1wcml2YXRlLXN0ZGVyci50eHRVVAUAAxQ8S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CABwX71I41EuGawHAABNmwAAOgAYAAAAAAAAAAAApIE7LRUAc3RvcmFnZS9pbmRleGVkZGIvbW9k
ZXJuL2lkYm9iamVjdHN0b3JlLWNsZWFyLTItc3RkZXJyLnR4dFVUBQADFDxLV3V4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAHFfvUh+RLi4QgYAAPSrAABCABgAAAAAAAAAAACkgVs1FQBzdG9yYWdl
L2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtY291bnQtMS1wcml2YXRlLXN0ZGVyci50
eHRVVAUAAxU8S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABxX71IhLDiOU0HAAAD4QAAOgAY
AAAAAAAAAAAApIEZPBUAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYm9iamVjdHN0b3JlLWNv
dW50LTEtc3RkZXJyLnR4dFVUBQADFTxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHFfvUhM
qvff5QUAAMguAABJABgAAAAAAAAAAACkgdpDFQBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRi
b2JqZWN0c3RvcmUtY291bnQtZmFpbHVyZXMtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAMWPEtXdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAcV+9SBGPtHnxBQAAoC4AAEEAGAAAAAAAAAAAAKSBQkoV
AHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJvYmplY3RzdG9yZS1jb3VudC1mYWlsdXJlcy1z
dGRlcnIudHh0VVQFAAMWPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAcV+9SCdPgo8OCQAA
a50BAEMAGAAAAAAAAAAAAKSBrlAVAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJvYmplY3Rz
dG9yZS1kZWxldGUtMS1wcml2YXRlLXN0ZGVyci50eHRVVAUAAxY8S1d1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACAByX71ITMRYmnsKAADq4wEAOwAYAAAAAAAAAAAApIE5WhUAc3RvcmFnZS9pbmRl
eGVkZGIvbW9kZXJuL2lkYm9iamVjdHN0b3JlLWRlbGV0ZS0xLXN0ZGVyci50eHRVVAUAAxc8S1d1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAByX71IknWIe2MGAABuNQAAQwAYAAAAAAAAAAAApIEp
ZRUAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYm9iamVjdHN0b3JlLWRlbGV0ZS0yLXByaXZh
dGUtc3RkZXJyLnR4dFVUBQADGDxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHJfvUiWUCfr
awYAAAM1AAA7ABgAAAAAAAAAAACkgQlsFQBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2Jq
ZWN0c3RvcmUtZGVsZXRlLTItc3RkZXJyLnR4dFVUBQADGDxLV3V4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAHJfvUhoXWmdIAYAALs4AABKABgAAAAAAAAAAACkgelyFQBzdG9yYWdlL2luZGV4ZWRk
Yi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtZGVsZXRlLWZhaWx1cmVzLXByaXZhdGUtc3RkZXJyLnR4
dFVUBQADGDxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHJfvUj04sioYgYAAOM4AABCABgA
AAAAAAAAAACkgY15FQBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtZGVs
ZXRlLWZhaWx1cmVzLXN0ZGVyci50eHRVVAUAAxg8S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CAByX71IEgvfdd4FAADGLgAARwAYAAAAAAAAAAAApIFrgBUAc3RvcmFnZS9pbmRleGVkZGIvbW9k
ZXJuL2lkYm9iamVjdHN0b3JlLWdldC1mYWlsdXJlcy1wcml2YXRlLXN0ZGVyci50eHRVVAUAAxg8
S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABzX71IuL8upvEFAACeLgAAPwAYAAAAAAAAAAAA
pIHKhhUAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYm9iamVjdHN0b3JlLWdldC1mYWlsdXJl
cy1zdGRlcnIudHh0VVQFAAMZPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAc1+9SGSiLmgO
BgAANDgAAFEAGAAAAAAAAAAAAKSBNI0VAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJvYmpl
Y3RzdG9yZS1wdXQtYW5kLWNsZWFyLWZhaWx1cmVzLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADGTxL
V3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHNfvUhzegaMYAYAAFw4AABJABgAAAAAAAAAAACk
gc2TFQBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtcHV0LWFuZC1jbGVh
ci1mYWlsdXJlcy1zdGRlcnIudHh0VVQFAAMZPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
c1+9SCcpkwB5AwAA/xAAAE8AGAAAAAAAAAAAAKSBsJoVAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVy
bi9pZGJ0cmFuc2FjdGlvbi1vYmplY3RzdG9yZS1mYWlsdXJlcy1wcml2YXRlLXN0ZGVyci50eHRV
VAUAAxo8S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABzX71IUDGRXQIEAAASFAAARwAYAAAA
AAAAAAAApIGynhUAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYnRyYW5zYWN0aW9uLW9iamVj
dHN0b3JlLWZhaWx1cmVzLXN0ZGVyci50eHRVVAUAAxo8S1d1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACABzX71IHvNtAGgBAAB0BAAARQAYAAAAAAAAAAAApIE1oxUAc3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL2lkYnZlcnNpb25jaGFuZ2VldmVudC1jb25zdHJ1Y3Rvci1zdGRlcnIudHh0VVQFAAMa
PEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAdF+9SIOzBaQSCAAAaVYBADMAGAAAAAAAAAAA
AKSBHKUVAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC0xLXByaXZhdGUtc3RkZXJyLnR4
dFVUBQADGzxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHRfvUgWJNS0/AgAAA5pAQArABgA
AAAAAAAAAACkgZutFQBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtMS1zdGRlcnIudHh0
VVQFAAMbPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAdF+9SHlSkKWjCwAASm4BADMAGAAA
AAAAAAAAAKSB/LYVAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC0yLXByaXZhdGUtc3Rk
ZXJyLnR4dFVUBQADHDxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHVfvUi5HavJLgwAAOF4
AQArABgAAAAAAAAAAACkgQzDFQBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtMi1zdGRl
cnIudHh0VVQFAAMdPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAdV+9SMD9Rr8UBgAANEsA
ADMAGAAAAAAAAAAAAKSBn88VAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC0zLXByaXZh
dGUtc3RkZXJyLnR4dFVUBQADHTxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHVfvUgWGBpv
yAYAAAVQAAArABgAAAAAAAAAAACkgSDWFQBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgt
My1zdGRlcnIudHh0VVQFAAMePEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAdV+9SLj0UKRR
BgAAl4IAADMAGAAAAAAAAAAAAKSBTd0VAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC00
LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADHjxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHVf
vUgvtygPpgcAAFWQAAArABgAAAAAAAAAAACkgQvkFQBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4v
aW5kZXgtNC1zdGRlcnIudHh0VVQFAAMePEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAdl+9
SCPTk2yXBQAA2SMAADMAGAAAAAAAAAAAAKSBFuwVAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9p
bmRleC01LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADHzxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAHZfvUjPLUNXswUAAAEhAAArABgAAAAAAAAAAACkgRryFQBzdG9yYWdlL2luZGV4ZWRkYi9t
b2Rlcm4vaW5kZXgtNS1zdGRlcnIudHh0VVQFAAMfPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAdl+9SAFXOIkbBwAAig0BADoAGAAAAAAAAAAAAKSBMvgVAHN0b3JhZ2UvaW5kZXhlZGRiL21v
ZGVybi9pbmRleC1jdXJzb3ItMS1wcml2YXRlLXN0ZGVyci50eHRVVAUAAyA8S1d1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAB3X71INYxXp60IAAAaFQEAMgAYAAAAAAAAAAAApIHB/xUAc3RvcmFn
ZS9pbmRleGVkZGIvbW9kZXJuL2luZGV4LWN1cnNvci0xLXN0ZGVyci50eHRVVAUAAyE8S1d1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAB3X71IZ/erQMYHAADYKAEAOgAYAAAAAAAAAAAApIHaCBYA
c3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2luZGV4LWN1cnNvci0yLXByaXZhdGUtc3RkZXJyLnR4
dFVUBQADIjxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHhfvUhXfmSmwQgAAMAnAQAyABgA
AAAAAAAAAACkgRQRFgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtY3Vyc29yLTItc3Rk
ZXJyLnR4dFVUBQADIzxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHhfvUgC4929ngsAAGUS
AgA6ABgAAAAAAAAAAACkgUEaFgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtY3Vyc29y
LTMtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAMkPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
eV+9SKR//NHIDgAA/T4CADIAGAAAAAAAAAAAAKSBUyYWAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVy
bi9pbmRleC1jdXJzb3ItMy1zdGRlcnIudHh0VVQFAAMlPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAeV+9SGkZ6YDQBQAAGyUAAEEAGAAAAAAAAAAAAKSBhzUWAHN0b3JhZ2UvaW5kZXhlZGRi
L21vZGVybi9pbmRleC1nZXQtY291bnQtYmFzaWMtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAMlPEtX
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAeV+9SEPJhmBEBgAAYiQAADkAGAAAAAAAAAAAAKSB
0jsWAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pbmRleC1nZXQtY291bnQtYmFzaWMtc3RkZXJy
LnR4dFVUBQADJTxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHlfvUhFkcH0aAYAAF40AABE
ABgAAAAAAAAAAACkgYlCFgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtZ2V0LWNvdW50
LWZhaWx1cmVzLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADJjxLV3V4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAHlfvUhdj9TAHQcAANQ0AAA8ABgAAAAAAAAAAACkgW9JFgBzdG9yYWdlL2luZGV4ZWRk
Yi9tb2Rlcm4vaW5kZXgtZ2V0LWNvdW50LWZhaWx1cmVzLXN0ZGVyci50eHRVVAUAAyY8S1d1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAB5X71IG8Tlc5UEAACgIwAAOQAYAAAAAAAAAAAApIECURYA
c3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2tleXBhdGgtYmFzaWMtcHJpdmF0ZS1zdGRlcnIudHh0
VVQFAAMmPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAeV+9SEdz772fBAAANiMAADEAGAAA
AAAAAAAAAKSBClYWAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9rZXlwYXRoLWJhc2ljLXN0ZGVy
ci50eHRVVAUAAyY8S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAB6X71I3b6G5CcIAAAMywEA
VQAYAAAAAAAAAAAApIEUWxYAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL21lbW9yeS1pbmRleC1u
b3QtZGVsZXRlZC13aXRoLW9iamVjdHN0b3JlLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADJzxLV3V4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHpfvUiso1SyRwgAAM+5AQBNABgAAAAAAAAAAACkgcpj
FgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vbWVtb3J5LWluZGV4LW5vdC1kZWxldGVkLXdpdGgt
b2JqZWN0c3RvcmUtc3RkZXJyLnR4dFVUBQADKDxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AHtfvUhZc5/IhQUAABwmAABCABgAAAAAAAAAAACkgZhsFgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rl
cm4vbmV3LWRhdGFiYXNlLWFmdGVyLXVzZXItZGVsZXRlLXN0ZGVyci50eHRVVAUAAyk8S1d1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAB7X71I5TQeOnMFAABvLgAAQgAYAAAAAAAAAAAApIGZchYA
c3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL29iamVjdHN0b3JlLWF0dHJpYnV0ZXMtcHJpdmF0ZS1z
dGRlcnIudHh0VVQFAAMpPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAe1+9SBOnKeFZBQAA
BisAADoAGAAAAAAAAAAAAKSBiHgWAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9vYmplY3RzdG9y
ZS1hdHRyaWJ1dGVzLXN0ZGVyci50eHRVVAUAAyk8S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CAB7X71IZd5Pz2MHAAC1igAATwAYAAAAAAAAAAAApIFVfhYAc3RvcmFnZS9pbmRleGVkZGIvbW9k
ZXJuL29iamVjdHN0b3JlLWN1cnNvci1hZHZhbmNlLWZhaWx1cmVzLXByaXZhdGUtc3RkZXJyLnR4
dFVUBQADKTxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHtfvUiBk//KjgcAABaOAABHABgA
AAAAAAAAAACkgUGGFgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vb2JqZWN0c3RvcmUtY3Vyc29y
LWFkdmFuY2UtZmFpbHVyZXMtc3RkZXJyLnR4dFVUBQADKjxLV3V4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAHtfvUjwfH3CYAcAABOOAABQABgAAAAAAAAAAACkgVCOFgBzdG9yYWdlL2luZGV4ZWRk
Yi9tb2Rlcm4vb2JqZWN0c3RvcmUtY3Vyc29yLWNvbnRpbnVlLWZhaWx1cmVzLXByaXZhdGUtc3Rk
ZXJyLnR4dFVUBQADKjxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHtfvUhsaEaSkAcAAFaR
AABIABgAAAAAAAAAAACkgTqWFgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vb2JqZWN0c3RvcmUt
Y3Vyc29yLWNvbnRpbnVlLWZhaWx1cmVzLXN0ZGVyci50eHRVVAUAAyo8S1d1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACAB7X71IN5Kj7WIGAAAzNgAAPwAYAAAAAAAAAAAApIFMnhYAc3RvcmFnZS9p
bmRleGVkZGIvbW9kZXJuL29wZW5jdXJzb3ItZmFpbHVyZXMtcHJpdmF0ZS1zdGRlcnIudHh0VVQF
AAMqPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAfF+9SLyk57S+BgAAmjYAADcAGAAAAAAA
AAAAAKSBJ6UWAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9vcGVuY3Vyc29yLWZhaWx1cmVzLXN0
ZGVyci50eHRVVAUAAys8S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAB8X71I0LeQjoYCAAD1
CQAARgAYAAAAAAAAAAAApIFWrBYAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL29wZW5kYXRhYmFz
ZS1yZXF1ZXN0LWV2ZW50LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADKzxLV3V4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAHxfvUgWa7AP3gIAAK4LAAA+ABgAAAAAAAAAAACkgVyvFgBzdG9yYWdlL2lu
ZGV4ZWRkYi9tb2Rlcm4vb3BlbmRhdGFiYXNlLXJlcXVlc3QtZXZlbnQtc3RkZXJyLnR4dFVUBQAD
KzxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHxfvUh6fIm3UwEAALYEAABAABgAAAAAAAAA
AACkgbKyFgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vb3BlbmRhdGFiYXNlLXJlcXVlc3QtcHJp
dmF0ZS1zdGRlcnIudHh0VVQFAAMrPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAfF+9SCgF
QUwyAQAAZQYAADgAGAAAAAAAAAAAAKSBf7QWAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9vcGVu
ZGF0YWJhc2UtcmVxdWVzdC1zdGRlcnIudHh0VVQFAAMrPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAfF+9SP4HRH4OBAAAniMAAFQAGAAAAAAAAAAAAKSBI7YWAHN0b3JhZ2UvaW5kZXhlZGRi
L21vZGVybi9vcGVuZGF0YWJhc2Utc3VjY2Vzcy1hZnRlci12ZXJzaW9uY2hhbmdlLXByaXZhdGUt
c3RkZXJyLnR4dFVUBQADKzxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHxfvUgfYi0sPwQA
APwjAABMABgAAAAAAAAAAACkgb+6FgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vb3BlbmRhdGFi
YXNlLXN1Y2Nlc3MtYWZ0ZXItdmVyc2lvbmNoYW5nZS1zdGRlcnIudHh0VVQFAAMsPEtXdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAfF+9SHyLxtVlBAAAVSwAAEEAGAAAAAAAAAAAAKSBhL8WAHN0
b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9vcGVuZGF0YWJhc2UtdmVyc2lvbnMtcHJpdmF0ZS1zdGRl
cnIudHh0VVQFAAMsPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAfF+9SEvEvK9zBAAAgykA
ADkAGAAAAAAAAAAAAKSBZMQWAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9vcGVuZGF0YWJhc2Ut
dmVyc2lvbnMtc3RkZXJyLnR4dFVUBQADLDxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHxf
vUj4NJvhrAQAAKIbAAA+ABgAAAAAAAAAAACkgUrJFgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4v
cmVxdWVzdC1yZWFkeXN0YXRlLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADLDxLV3V4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAHxfvUi7GWCBywQAANobAAA2ABgAAAAAAAAAAACkgW7OFgBzdG9yYWdl
L2luZGV4ZWRkYi9tb2Rlcm4vcmVxdWVzdC1yZWFkeXN0YXRlLXN0ZGVyci50eHRVVAUAAyw8S1d1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAB9X71IkNC2Zx4GAADkMgAAQwAYAAAAAAAAAAAApIGp
0xYAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3RyYW5zYWN0aW9uLXNjaGVkdWxlci0xLXByaXZh
dGUtc3RkZXJyLnR4dFVUBQADLTxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAH1fvUgIO85w
vAYAAMhDAABDABgAAAAAAAAAAACkgUTaFgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vdHJhbnNh
Y3Rpb24tc2NoZWR1bGVyLTItcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAMtPEtXdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAfV+9SFIR5WujBgAABUIAAEMAGAAAAAAAAAAAAKSBfeEWAHN0b3JhZ2Uv
aW5kZXhlZGRiL21vZGVybi90cmFuc2FjdGlvbi1zY2hlZHVsZXItMy1wcml2YXRlLXN0ZGVyci50
eHRVVAUAAy08S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAB9X71IRINJCWMGAAA/OwAAOwAY
AAAAAAAAAAAApIGd6BYAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3RyYW5zYWN0aW9uLXNjaGVk
dWxlci0zLXN0ZGVyci50eHRVVAUAAy08S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAB9X71I
Yk4Y7SsGAAC6ZQAAQwAYAAAAAAAAAAAApIF17xYAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3Ry
YW5zYWN0aW9uLXNjaGVkdWxlci00LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADLTxLV3V4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAH1fvUg7HzmhjQYAAPhsAAA7ABgAAAAAAAAAAACkgR32FgBzdG9y
YWdlL2luZGV4ZWRkYi9tb2Rlcm4vdHJhbnNhY3Rpb24tc2NoZWR1bGVyLTQtc3RkZXJyLnR4dFVU
BQADLjxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAH1fvUiijhEanAYAAORMAABDABgAAAAA
AAAAAACkgR/9FgBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vdHJhbnNhY3Rpb24tc2NoZWR1bGVy
LTUtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAMuPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
fV+9SB4eoeR1BgAAVkIAAEMAGAAAAAAAAAAAAKSBOAQXAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVy
bi90cmFuc2FjdGlvbi1zY2hlZHVsZXItNi1wcml2YXRlLXN0ZGVyci50eHRVVAUAAy48S1d1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAAAYL1IOO8tIv4EAACvLgAASwAYAAAAAAAAAAAApIEqCxcA
c3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3RyYW5zYWN0aW9ucy1zdG9wLW9uLW5hdmlnYXRpb24t
cHJpdmF0ZS1zdGRlcnIudHh0VVQFAAMvPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAAGC9
SKN32tJYBgAAzWAAAEMAGAAAAAAAAAAAAKSBrRAXAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi90
cmFuc2FjdGlvbnMtc3RvcC1vbi1uYXZpZ2F0aW9uLXN0ZGVyci50eHRVVAUAAy88S1d1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAAAYL1IqlSjtMkEAACbMgAASwAYAAAAAAAAAAAApIGCFxcAc3Rv
cmFnZS9pbmRleGVkZGIvbW9kZXJuL3ZlcnNpb25jaGFuZ2UtYWJvcnQtdGhlbi1yZW9wZW4tcHJp
dmF0ZS1zdGRlcnIudHh0VVQFAAMvPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAAGC9SM6/
fXw2BQAAQDwAAEMAGAAAAAAAAAAAAKSB0BwXAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi92ZXJz
aW9uY2hhbmdlLWFib3J0LXRoZW4tcmVvcGVuLXN0ZGVyci50eHRVVAUAAzA8S1d1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAAAYL1IRPy4L94EAABkKAAAPwAYAAAAAAAAAAAApIGDIhcAc3RvcmFn
ZS9pbmRleGVkZGIvbW9kZXJuL3ZlcnNpb25jaGFuZ2UtZXZlbnQtcHJpdmF0ZS1zdGRlcnIudHh0
VVQFAAMwPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAAGC9SNRdYQ8hBQAAUykAADcAGAAA
AAAAAAAAAKSB2icXAHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi92ZXJzaW9uY2hhbmdlLWV2ZW50
LXN0ZGVyci50eHRVVAUAAzA8S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAAYL1IojdnzzwB
AACjBAAANAAYAAAAAAAAAAAApIFsLRcAc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL3dvcmtlcnMt
ZGlzYWJsZWQtc3RkZXJyLnR4dFVUBQADMDxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACFg
vUionEVIrwYAAEpkAAA0ABgAAAAAAAAAAACkgRYvFwBzdG9yYWdlL2luZGV4ZWRkYi9tdXRhdGlu
Zy1jdXJzb3ItcHJpdmF0ZS1zdGRlcnIudHh0VVQFAANtPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAIWC9SAOk6dyxBgAAd2EAACwAGAAAAAAAAAAAAKSBMzYXAHN0b3JhZ2UvaW5kZXhlZGRi
L211dGF0aW5nLWN1cnNvci1zdGRlcnIudHh0VVQFAANtPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAIWC9SGbgBR0eBAAAwRUAAEQAGAAAAAAAAAAAAKSBSj0XAHN0b3JhZ2UvaW5kZXhlZGRi
L29iamVjdC1sb29rdXBzLWluLXZlcnNpb25jaGFuZ2UtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAANt
PEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAIWC9SLK0BG87BAAA4hYAADwAGAAAAAAAAAAA
AKSB5kEXAHN0b3JhZ2UvaW5kZXhlZGRiL29iamVjdC1sb29rdXBzLWluLXZlcnNpb25jaGFuZ2Ut
c3RkZXJyLnR4dFVUBQADbjxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACJgvUh62TY4cAcA
AM1rAAA+ABgAAAAAAAAAAACkgZdGFwBzdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1hdXRv
aW5jcmVtZW50LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADbzxLV3V4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIACJgvUifrv0ARwcAAKhmAAA2ABgAAAAAAAAAAACkgX9OFwBzdG9yYWdlL2luZGV4ZWRk
Yi9vYmplY3RzdG9yZS1hdXRvaW5jcmVtZW50LXN0ZGVyci50eHRVVAUAA288S1d1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAAiYL1I0KQcSToJAADnjAAANwAYAAAAAAAAAAAApIE2VhcAc3RvcmFn
ZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYmFzaWNzLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADcDxL
V3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACNgvUjGjQUcAQoAAJGRAAAvABgAAAAAAAAAAACk
geFfFwBzdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1iYXNpY3Mtc3RkZXJyLnR4dFVUBQAD
cjxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACNgvUhLq0I6gQoAABGRAAA3ABgAAAAAAAAA
AACkgUtqFwBzdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1iYXNpY3Mtd29ya2Vycy1zdGRl
cnIudHh0VVQFAANxPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAI2C9SNT37sLxBgAAijcA
ADYAGAAAAAAAAAAAAKSBPXUXAHN0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWNsZWFyLXBy
aXZhdGUtc3RkZXJyLnR4dFVUBQADcjxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACNgvUiE
TzZQMQcAAEM2AAAuABgAAAAAAAAAAACkgZ58FwBzdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9y
ZS1jbGVhci1zdGRlcnIudHh0VVQFAANyPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAJGC9
SNPkhWWoCAAAXXoBADYAGAAAAAAAAAAAAKSBN4QXAHN0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0
b3JlLWNvdW50LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADczxLV3V4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIACRgvUj+JpNwXwkAADGlAQAuABgAAAAAAAAAAACkgU+NFwBzdG9yYWdlL2luZGV4ZWRk
Yi9vYmplY3RzdG9yZS1jb3VudC1zdGRlcnIudHh0VVQFAAN0PEtXdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAJ2C9SLk4AiXoDQAAHawFADcAGAAAAAAAAAAAAKSBFpcXAHN0b3JhZ2UvaW5kZXhl
ZGRiL29iamVjdHN0b3JlLWN1cnNvci1wcml2YXRlLXN0ZGVyci50eHRVVAUAA3k8S1d1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAApYL1I79XM0ugNAABpRgUALwAYAAAAAAAAAAAApIFvpRcAc3Rv
cmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtY3Vyc29yLXN0ZGVyci50eHRVVAUAA308S1d1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAApYL1IuauQbOIGAAAyRwAAQgAYAAAAAAAAAAAApIHAsxcA
c3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtcmVtb3Zlb2JqZWN0c3RvcmUtcHJpdmF0ZS1z
dGRlcnIudHh0VVQFAAN9PEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAKWC9SK5PLNpQBwAA
WEcAADoAGAAAAAAAAAAAAKSBHrsXAHN0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLXJlbW92
ZW9iamVjdHN0b3JlLXN0ZGVyci50eHRVVAUAA308S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CAAhYL1ImmYDSy0DAADiDgAAQwAYAAAAAAAAAAAApIHiwhcAc3RvcmFnZS9pbmRleGVkZGIvb2Jq
ZWN0U3RvcmUtcmVxdWlyZWQtYXJndW1lbnRzLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADbjxLV3V4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACFgvUj4HSuwjAMAAAMRAAA7ABgAAAAAAAAAAACkgYzG
FwBzdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RTdG9yZS1yZXF1aXJlZC1hcmd1bWVudHMtc3RkZXJy
LnR4dFVUBQADbjxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAClgvUiHAdGssAgAAG/vAAAw
ABgAAAAAAAAAAACkgY3KFwBzdG9yYWdlL2luZGV4ZWRkYi9vZGQtc3RyaW5ncy1wcml2YXRlLXN0
ZGVyci50eHRVVAUAA348S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAqYL1IYVE1oxkEAAA4
LwAANgAYAAAAAAAAAAAApIGn0xcAc3RvcmFnZS9pbmRleGVkZGIvb3Blbi1iYWQtdmVyc2lvbnMt
cHJpdmF0ZS1zdGRlcnIudHh0VVQFAAN/PEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAK2C9
SIVEIHXHAwAAJSAAAC4AGAAAAAAAAAAAAKSBMNgXAHN0b3JhZ2UvaW5kZXhlZGRiL29wZW4tYmFk
LXZlcnNpb25zLXN0ZGVyci50eHRVVAUAA4E8S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAr
YL1I9xozBogEAADyHgAAMAAYAAAAAAAAAAAApIFf3BcAc3RvcmFnZS9pbmRleGVkZGIvb3Blbi1j
dXJzb3ItcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAOBPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAK2C9SOMGtwI1BQAAAiIAACgAGAAAAAAAAAAAAKSBUeEXAHN0b3JhZ2UvaW5kZXhlZGRiL29w
ZW4tY3Vyc29yLXN0ZGVyci50eHRVVAUAA4E8S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAr
YL1IGofLnwUGAACTOQAAPAAYAAAAAAAAAAAApIHo5hcAc3RvcmFnZS9pbmRleGVkZGIvb3Blbi1k
dXJpbmctdHJhbnNhY3Rpb24tcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAOBPEtXdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAK2C9SALyb5P2BQAAxzsAADQAGAAAAAAAAAAAAKSBY+0XAHN0b3JhZ2Uv
aW5kZXhlZGRiL29wZW4tZHVyaW5nLXRyYW5zYWN0aW9uLXN0ZGVyci50eHRVVAUAA4E8S1d1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAArYL1I8hImTtgEAADBNAAAMgAYAAAAAAAAAAAApIHH8xcA
c3RvcmFnZS9pbmRleGVkZGIvb3Blbi1vcmRlcmluZy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA4I8
S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAArYL1I4JJ3t/IEAAD0NQAAKgAYAAAAAAAAAAAA
pIEL+RcAc3RvcmFnZS9pbmRleGVkZGIvb3Blbi1vcmRlcmluZy1zdGRlcnIudHh0VVQFAAOCPEtX
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAK2C9SEQDyV2xAwAAPh8AAC8AGAAAAAAAAAAAAKSB
Yf4XAHN0b3JhZ2UvaW5kZXhlZGRiL29wZW4tdHdpY2Utd29ya2Vycy1zdGRlcnIudHh0VVQFAAOC
PEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAK2C9SCTKrYuNBwAAj4kAADMAGAAAAAAAAAAA
AKSBewIYAHN0b3JhZ2UvaW5kZXhlZGRiL29wZW5jdXJzb3Ita2V5LXByaXZhdGUtc3RkZXJyLnR4
dFVUBQADgjxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACxgvUhWy4K9pAcAAIKTAAArABgA
AAAAAAAAAACkgXUKGABzdG9yYWdlL2luZGV4ZWRkYi9vcGVuY3Vyc29yLWtleS1zdGRlcnIudHh0
VVQFAAODPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgALGC9SKsNNnlFCQAAVecAADcAGAAA
AAAAAAAAAKSBfhIYAHN0b3JhZ2UvaW5kZXhlZGRiL29wdGlvbmFsLWFyZ3VtZW50cy1wcml2YXRl
LXN0ZGVyci50eHRVVAUAA4M8S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAsYL1I4V2/b5wJ
AABp4gAALwAYAAAAAAAAAAAApIE0HBgAc3RvcmFnZS9pbmRleGVkZGIvb3B0aW9uYWwtYXJndW1l
bnRzLXN0ZGVyci50eHRVVAUAA4Q8S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAtYL1IIeTj
dnkGAAB7OgAANQAYAAAAAAAAAAAApIE5JhgAc3RvcmFnZS9pbmRleGVkZGIvcGVuZGluZy1hY3Rp
dml0eS1wcml2YXRlLXN0ZGVyci50eHRVVAUAA4U8S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CAAuYL1I7Ui90dsGAACoPAAALQAYAAAAAAAAAAAApIEhLRgAc3RvcmFnZS9pbmRleGVkZGIvcGVu
ZGluZy1hY3Rpdml0eS1zdGRlcnIudHh0VVQFAAOHPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgALWC9SBl1tWA7BwAAQT0AADUAGAAAAAAAAAAAAKSBYzQYAHN0b3JhZ2UvaW5kZXhlZGRiL3Bl
bmRpbmctYWN0aXZpdHktd29ya2Vycy1zdGRlcnIudHh0VVQFAAOFPEtXdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgALmC9SL3WArrKBAAA4SEAAEMAGAAAAAAAAAAAAKSBDTwYAHN0b3JhZ2UvaW5k
ZXhlZGRiL3BlbmRpbmctdmVyc2lvbi1jaGFuZ2Utb24tZXhpdC1wcml2YXRlLXN0ZGVyci50eHRV
VAUAA4c8S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAuYL1I/IljpbgEAABaHgAAOwAYAAAA
AAAAAAAApIFUQRgAc3RvcmFnZS9pbmRleGVkZGIvcGVuZGluZy12ZXJzaW9uLWNoYW5nZS1vbi1l
eGl0LXN0ZGVyci50eHRVVAUAA4c8S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAuYL1IqZw5
UWMEAAAdHgAAQQAYAAAAAAAAAAAApIGBRhgAc3RvcmFnZS9pbmRleGVkZGIvcGVuZGluZy12ZXJz
aW9uLWNoYW5nZS1zdHVjay1wcml2YXRlLXN0ZGVyci50eHRVVAUAA4c8S1d1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACAAuYL1Io1HTyo0EAADVIQAAOQAYAAAAAAAAAAAApIFfSxgAc3RvcmFnZS9p
bmRleGVkZGIvcGVuZGluZy12ZXJzaW9uLWNoYW5nZS1zdHVjay1zdGRlcnIudHh0VVQFAAOIPEtX
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgALmC9SNb0ohyLBAAAFyAAAFYAGAAAAAAAAAAAAKSB
X1AYAHN0b3JhZ2UvaW5kZXhlZGRiL3BlbmRpbmctdmVyc2lvbi1jaGFuZ2Utc3R1Y2std29ya3Mt
d2l0aC10ZXJtaW5hdGUtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAOIPEtXdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgALmC9SPSwEjvJBAAAhSIAAE4AGAAAAAAAAAAAAKSBelUYAHN0b3JhZ2UvaW5k
ZXhlZGRiL3BlbmRpbmctdmVyc2lvbi1jaGFuZ2Utc3R1Y2std29ya3Mtd2l0aC10ZXJtaW5hdGUt
c3RkZXJyLnR4dFVUBQADiDxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAC5gvUhRABOM8QUA
AI5fAAAwABgAAAAAAAAAAACkgctaGABzdG9yYWdlL2luZGV4ZWRkYi9wZXJzaXN0ZW5jZS1wcml2
YXRlLXN0ZGVyci50eHRVVAUAA4g8S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAvYL1IKBie
wgQGAAAzXwAAKAAYAAAAAAAAAAAApIEmYRgAc3RvcmFnZS9pbmRleGVkZGIvcGVyc2lzdGVuY2Ut
c3RkZXJyLnR4dFVUBQADiTxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAC9gvUidN6SZdQcA
AIRmAAA7ABgAAAAAAAAAAACkgYxnGABzdG9yYWdlL2luZGV4ZWRkYi9wcmVmZXRjaC1idWdmaXgt
MTA4MDcxLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADiTxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAC9gvUhvaBJFkgcAAI5kAAAzABgAAAAAAAAAAACkgXZvGABzdG9yYWdlL2luZGV4ZWRkYi9w
cmVmZXRjaC1idWdmaXgtMTA4MDcxLXN0ZGVyci50eHRVVAUAA4k8S1d1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACAAvYL1IlzQhK0cSAAB65QYAOgAYAAAAAAAAAAAApIF1dxgAc3RvcmFnZS9pbmRl
eGVkZGIvcHJlZmV0Y2gtaW52YWxpZGF0aW9uLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADijxLV3V4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADBgvUjQ3M3omhQAAEVqBwAyABgAAAAAAAAAAACkgTCK
GABzdG9yYWdlL2luZGV4ZWRkYi9wcmVmZXRjaC1pbnZhbGlkYXRpb24tc3RkZXJyLnR4dFVUBQAD
jDxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADBgvUibrCIonQYAAORVAAAyABgAAAAAAAAA
AACkgTafGABzdG9yYWdlL2luZGV4ZWRkYi9wcmVmZXRjaC1yYWNlLXByaXZhdGUtc3RkZXJyLnR4
dFVUBQADjDxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADFgvUjastBWeAYAAKJTAAAqABgA
AAAAAAAAAACkgT+mGABzdG9yYWdlL2luZGV4ZWRkYi9wcmVmZXRjaC1yYWNlLXN0ZGVyci50eHRV
VAUAA408S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAxYL1IsR0rlwwGAAC7PwAARgAYAAAA
AAAAAAAApIEbrRgAc3RvcmFnZS9pbmRleGVkZGIvcHJpbWFyeS1rZXktdW5pcXVlLXRvLW9iamVj
dHN0b3JlLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADjTxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIADFgvUgBDej1NgYAAFJIAAA+ABgAAAAAAAAAAACkgaezGABzdG9yYWdlL2luZGV4ZWRkYi9w
cmltYXJ5LWtleS11bmlxdWUtdG8tb2JqZWN0c3RvcmUtc3RkZXJyLnR4dFVUBQADjTxLV3V4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIADFgvUjubz2AswQAAFseAAA0ABgAAAAAAAAAAACkgVW6GABz
dG9yYWdlL2luZGV4ZWRkYi9xdWV1ZWQtY29tbWFuZHMtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAON
PEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAMWC9SIQ8wdpuBQAAICIAACwAGAAAAAAAAAAA
AKSBdr8YAHN0b3JhZ2UvaW5kZXhlZGRiL3F1ZXVlZC1jb21tYW5kcy1zdGRlcnIudHh0VVQFAAON
PEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAMWC9SAjin5hjBQAAGCAAAC0AGAAAAAAAAAAA
AKSBSsUYAHN0b3JhZ2UvaW5kZXhlZGRiL3JlYWRvbmx5LXByaXZhdGUtc3RkZXJyLnR4dFVUBQAD
jTxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADFgvUiW8uMKJwMAANcOAAA4ABgAAAAAAAAA
AACkgRTLGABzdG9yYWdlL2luZGV4ZWRkYi9yZWFkb25seS1wcm9wZXJ0aWVzLXByaXZhdGUtc3Rk
ZXJyLnR4dFVUBQADjTxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADFgvUhruyLMkQMAAAMR
AAAwABgAAAAAAAAAAACkga3OGABzdG9yYWdlL2luZGV4ZWRkYi9yZWFkb25seS1wcm9wZXJ0aWVz
LXN0ZGVyci50eHRVVAUAA448S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAxYL1IjuCXoLEF
AAC2IAAAJQAYAAAAAAAAAAAApIGo0hgAc3RvcmFnZS9pbmRleGVkZGIvcmVhZG9ubHktc3RkZXJy
LnR4dFVUBQADjjxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADFgvUidHMuMOgYAACMsAAA7
ABgAAAAAAAAAAACkgbjYGABzdG9yYWdlL2luZGV4ZWRkYi9yZXF1ZXN0LWNvbnRpbnVlLWFib3J0
LXByaXZhdGUtc3RkZXJyLnR4dFVUBQADjjxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADFg
vUgeTIg1QQYAADYqAAAzABgAAAAAAAAAAACkgWffGABzdG9yYWdlL2luZGV4ZWRkYi9yZXF1ZXN0
LWNvbnRpbnVlLWFib3J0LXN0ZGVyci50eHRVVAUAA448S1d1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAAxYL1IB4roSPwFAAAhQAAAPgAYAAAAAAAAAAAApIEV5hgAc3RvcmFnZS9pbmRleGVkZGIv
cmVxdWVzdC1ldmVudC1wcm9wYWdhdGlvbi1wcml2YXRlLXN0ZGVyci50eHRVVAUAA448S1d1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAAyYL1Im/qK3xAGAAD7PgAANgAYAAAAAAAAAAAApIGJ7BgA
c3RvcmFnZS9pbmRleGVkZGIvcmVxdWVzdC1ldmVudC1wcm9wYWdhdGlvbi1zdGRlcnIudHh0VVQF
AAOPPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAMmC9SMvARqrdBQAA9SgAADkAGAAAAAAA
AAAAAKSBCfMYAHN0b3JhZ2UvaW5kZXhlZGRiL3JlcXVlc3QtcmVzdWx0LWNhY2hlLXByaXZhdGUt
c3RkZXJyLnR4dFVUBQADjzxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADJgvUh0cp+//AUA
AMMoAAAxABgAAAAAAAAAAACkgVn5GABzdG9yYWdlL2luZGV4ZWRkYi9yZXF1ZXN0LXJlc3VsdC1j
YWNoZS1zdGRlcnIudHh0VVQFAAOPPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAMmC9SKt9
kwWUBAAA3R8AADgAGAAAAAAAAAAAAKSBwP8YAHN0b3JhZ2UvaW5kZXhlZGRiL3NldF92ZXJzaW9u
X2Jsb2NrZWQtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAOPPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAMmC9SKNwyqIHBQAAFiMAADAAGAAAAAAAAAAAAKSBxgQZAHN0b3JhZ2UvaW5kZXhlZGRi
L3NldF92ZXJzaW9uX2Jsb2NrZWQtc3RkZXJyLnR4dFVUBQADjzxLV3V4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIADJgvUjdcfPifAQAAKAnAABOABgAAAAAAAAAAACkgTcKGQBzdG9yYWdlL2luZGV4
ZWRkYi9zZXR2ZXJzaW9uLWJsb2NrZWQtYnktdmVyc2lvbmNoYW5nZS1jbG9zZS1wcml2YXRlLXN0
ZGVyci50eHRVVAUAA5A8S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAyYL1ITYwVxFcEAACS
JwAARgAYAAAAAAAAAAAApIE7DxkAc3RvcmFnZS9pbmRleGVkZGIvc2V0dmVyc2lvbi1ibG9ja2Vk
LWJ5LXZlcnNpb25jaGFuZ2UtY2xvc2Utc3RkZXJyLnR4dFVUBQADkDxLV3V4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIADJgvUhIN51ocwQAALkkAAA7ABgAAAAAAAAAAACkgRIUGQBzdG9yYWdlL2lu
ZGV4ZWRkYi9zZXR2ZXJzaW9uLW5vdC1ibG9ja2VkLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADkDxL
V3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADJgvUhqf824lQQAADwlAAAzABgAAAAAAAAAAACk
gfoYGQBzdG9yYWdlL2luZGV4ZWRkYi9zZXR2ZXJzaW9uLW5vdC1ibG9ja2VkLXN0ZGVyci50eHRV
VAUAA5A8S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAzYL1InwrDhi0PAAC6ZQQANQAYAAAA
AAAAAAAApIH8HRkAc3RvcmFnZS9pbmRleGVkZGIvc3RydWN0dXJlZC1jbG9uZS1wcml2YXRlLXN0
ZGVyci50eHRVVAUAA5I8S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA0YL1I/Sb/KHAOAADv
aQQALQAYAAAAAAAAAAAApIGYLRkAc3RvcmFnZS9pbmRleGVkZGIvc3RydWN0dXJlZC1jbG9uZS1z
dGRlcnIudHh0VVQFAAOUPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgANGC9SDroJI6xBQAA
JiUAAC4AGAAAAAAAAAAAAKSBbzwZAHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFib3J0
LXN0ZGVyci50eHRVVAUAA5Q8S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA0YL1IAFfrGcEJ
AABm1AAAPAAYAAAAAAAAAAAApIGIQhkAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYWN0
aXZlLWZsYWctcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAOUPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgANWC9SNR5BH5wCgAAOeMAADQAGAAAAAAAAAAAAKSBv0wZAHN0b3JhZ2UvaW5kZXhlZGRi
L3RyYW5zYWN0aW9uLWFjdGl2ZS1mbGFnLXN0ZGVyci50eHRVVAUAA5U8S1d1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACAA1YL1IJW6g5rQFAAB8OQAAPAAYAAAAAAAAAAAApIGdVxkAc3RvcmFnZS9p
bmRleGVkZGIvdHJhbnNhY3Rpb24tYWZ0ZXItY2xvc2UtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAOV
PEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgANWC9SGonaOG7BQAAGzkAADQAGAAAAAAAAAAA
AKSBx10ZAHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFmdGVyLWNsb3NlLXN0ZGVyci50
eHRVVAUAA5U8S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA1YL1IVn1YoOQGAABdcAAARgAY
AAAAAAAAAAAApIHwYxkAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYW5kLW9iamVjdHN0
b3JlLWNhbGxzLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADlTxLV3V4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIADVgvUgV32pp4wYAAEt9AAA+ABgAAAAAAAAAAACkgVRrGQBzdG9yYWdlL2luZGV4ZWRk
Yi90cmFuc2FjdGlvbi1hbmQtb2JqZWN0c3RvcmUtY2FsbHMtc3RkZXJyLnR4dFVUBQADljxLV3V4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADVgvUg9blxBPAgAAPafAAA3ABgAAAAAAAAAAACkga9y
GQBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1iYXNpY3MtcHJpdmF0ZS1zdGRlcnIudHh0
VVQFAAOWPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgANmC9SPVAMSCYCAAAYacAAC8AGAAA
AAAAAAAAAKSBXHsZAHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWJhc2ljcy1zdGRlcnIu
dHh0VVQFAAOXPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgANmC9SE7RvjbqBAAAbSgAAFcA
GAAAAAAAAAAAAKSBXYQZAHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWNvbXBsZXRlLXdp
dGgtanMtcmVjdXJzaW9uLWNyb3NzLWZyYW1lLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADlzxLV3V4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADZgvUgLz4V9bwUAAHgnAABPABgAAAAAAAAAAACkgdiJ
GQBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1jb21wbGV0ZS13aXRoLWpzLXJlY3Vyc2lv
bi1jcm9zcy1mcmFtZS1zdGRlcnIudHh0VVQFAAOXPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgANmC9SAY0/9wzBQAAKScAAEsAGAAAAAAAAAAAAKSB0I8ZAHN0b3JhZ2UvaW5kZXhlZGRiL3Ry
YW5zYWN0aW9uLWNvbXBsZXRlLXdpdGgtanMtcmVjdXJzaW9uLXByaXZhdGUtc3RkZXJyLnR4dFVU
BQADlzxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADZgvUhL928MbQUAAF8nAABDABgAAAAA
AAAAAACkgYiVGQBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1jb21wbGV0ZS13aXRoLWpz
LXJlY3Vyc2lvbi1zdGRlcnIudHh0VVQFAAOXPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
NmC9SNQNHQUfBgAAfVAAAEEAGAAAAAAAAAAAAKSBcpsZAHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5z
YWN0aW9uLWNvbXBsZXRlLXdvcmtlcnMtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAOYPEtXdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgANmC9SMxQOqnFBQAAdE0AADkAGAAAAAAAAAAAAKSBDKIZAHN0
b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWNvbXBsZXRlLXdvcmtlcnMtc3RkZXJyLnR4dFVU
BQADmDxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADZgvUjJa+uJTAYAANZMAABOABgAAAAA
AAAAAACkgUSoGQBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1jb29yZGluYXRpb24tYWNy
b3NzLWRhdGFiYXNlcy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA5g8S1d1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACAA2YL1IAK2JqE8GAADOTQAARgAYAAAAAAAAAAAApIEYrxkAc3RvcmFnZS9pbmRl
eGVkZGIvdHJhbnNhY3Rpb24tY29vcmRpbmF0aW9uLWFjcm9zcy1kYXRhYmFzZXMtc3RkZXJyLnR4
dFVUBQADmDxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADZgvUibVzBjDAYAAMg1AABNABgA
AAAAAAAAAACkgee1GQBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1jb29yZGluYXRpb24t
d2l0aGluLWRhdGFiYXNlLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADmDxLV3V4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIADdgvUh0o4kg/gAAACcDAAA/ABgAAAAAAAAAAACkgXq8GQBzdG9yYWdlL2lu
ZGV4ZWRkYi90cmFuc2FjdGlvbi1jcmFzaC1pbi10YXNrcy1wcml2YXRlLXN0ZGVyci50eHRVVAUA
A5k8S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA3YL1ITLpR/CsBAAA1BAAANwAYAAAAAAAA
AAAApIHxvRkAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tY3Jhc2gtaW4tdGFza3Mtc3Rk
ZXJyLnR4dFVUBQADmTxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADdgvUj3ly+JTwQAAOQX
AAA/ABgAAAAAAAAAAACkgY2/GQBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1jcmFzaC1v
bi1hYm9ydC1wcml2YXRlLXN0ZGVyci50eHRVVAUAA5k8S1d1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAA3YL1IgLATLG4EAACjGAAANwAYAAAAAAAAAAAApIFVxBkAc3RvcmFnZS9pbmRleGVkZGIv
dHJhbnNhY3Rpb24tY3Jhc2gtb24tYWJvcnQtc3RkZXJyLnR4dFVUBQADmjxLV3V4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIADdgvUikVYqsJAcAAJNeAAA2ABgAAAAAAAAAAACkgTTJGQBzdG9yYWdl
L2luZGV4ZWRkYi90cmFuc2FjdGlvbi1lcnJvci1wcml2YXRlLXN0ZGVyci50eHRVVAUAA5o8S1d1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA3YL1IiGkni20HAACJXAAALgAYAAAAAAAAAAAApIHI
0BkAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tZXJyb3Itc3RkZXJyLnR4dFVUBQADmjxL
V3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADdgvUiaP+nw4AUAAEk0AABCABgAAAAAAAAAAACk
gZ3YGQBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1ldmVudC1wcm9wYWdhdGlvbi1wcml2
YXRlLXN0ZGVyci50eHRVVAUAA5o8S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA4YL1IR338
mOkFAAD0MgAAOgAYAAAAAAAAAAAApIH53hkAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24t
ZXZlbnQtcHJvcGFnYXRpb24tc3RkZXJyLnR4dFVUBQADmzxLV3V4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIADhgvUiB9FfaWwUAACIvAAA5ABgAAAAAAAAAAACkgVblGQBzdG9yYWdlL2luZGV4ZWRk
Yi90cmFuc2FjdGlvbi1vcmRlcmluZy1wcml2YXRlLXN0ZGVyci50eHRVVAUAA5s8S1d1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAA4YL1Ic+pQFIsFAADeLgAAMQAYAAAAAAAAAAAApIEk6xkAc3Rv
cmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tb3JkZXJpbmctc3RkZXJyLnR4dFVUBQADmzxLV3V4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADhgvUiPBMrqFwYAAPoyAAA8ABgAAAAAAAAAAACkgRrx
GQBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1vdmVybGFwcGluZy1wcml2YXRlLXN0ZGVy
ci50eHRVVAUAA5s8S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA4YL1IWzahwEYGAACpSgAA
NAAYAAAAAAAAAAAApIGn9xkAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tb3ZlcmxhcHBp
bmctc3RkZXJyLnR4dFVUBQADmzxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADhgvUiqMioA
/gUAAPMyAAA6ABgAAAAAAAAAAACkgVv+GQBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1y
ZWFkLW9ubHktcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAObPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAOGC9SMrdBFB2BgAA+TgAADIAGAAAAAAAAAAAAKSBzQQaAHN0b3JhZ2UvaW5kZXhlZGRi
L3RyYW5zYWN0aW9uLXJlYWQtb25seS1zdGRlcnIudHh0VVQFAAOcPEtXdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAOGC9SAqCh/jwBQAAEUIAAEQAGAAAAAAAAAAAAKSBrwsaAHN0b3JhZ2UvaW5k
ZXhlZGRiL3RyYW5zYWN0aW9uLXJlYWR3cml0ZS1leGNsdXNpdmUtcHJpdmF0ZS1zdGRlcnIudHh0
VVQFAAOcPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAOGC9SI+cNpcWBgAAa0IAADwAGAAA
AAAAAAAAAKSBHRIaAHN0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLXJlYWR3cml0ZS1leGNs
dXNpdmUtc3RkZXJyLnR4dFVUBQADnDxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADhgvUil
bAQkVQYAAKcwAAA5ABgAAAAAAAAAAACkgakYGgBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlv
bi1yb2xsYmFjay1wcml2YXRlLXN0ZGVyci50eHRVVAUAA5w8S1d1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAA4YL1IVm8SD6YGAACgMAAAMQAYAAAAAAAAAAAApIFxHxoAc3RvcmFnZS9pbmRleGVk
ZGIvdHJhbnNhY3Rpb24tcm9sbGJhY2stc3RkZXJyLnR4dFVUBQADnDxLV3V4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIADlgvUjUoyE5+wUAAOdFAABBABgAAAAAAAAAAACkgYImGgBzdG9yYWdlL2lu
ZGV4ZWRkYi90cmFuc2FjdGlvbi1zY29wZS1zZXF1ZW5jaW5nLXByaXZhdGUtc3RkZXJyLnR4dFVU
BQADnTxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADlgvUjZd4N4xAUAAOk/AAA5ABgAAAAA
AAAAAACkgfgsGgBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1zY29wZS1zZXF1ZW5jaW5n
LXN0ZGVyci50eHRVVAUAA508S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA5YL1I4unPSuwC
AACBDQAARAAYAAAAAAAAAAAApIEvMxoAc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tc3Rv
cmVOYW1lcy1yZXF1aXJlZC1wcml2YXRlLXN0ZGVyci50eHRVVAUAA508S1d1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACAA5YL1IYyac8mkDAAANEAAAPAAYAAAAAAAAAAAApIGZNhoAc3RvcmFnZS9p
bmRleGVkZGIvdHJhbnNhY3Rpb24tc3RvcmVOYW1lcy1yZXF1aXJlZC1zdGRlcnIudHh0VVQFAAOd
PEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAOWC9SL7adFiFBAAAFiEAAD4AGAAAAAAAAAAA
AKSBeDoaAHN0b3JhZ2UvaW5kZXhlZGRiL3VuYmxvY2tlZC12ZXJzaW9uLWNoYW5nZXMtcHJpdmF0
ZS1zdGRlcnIudHh0VVQFAAOdPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAOWC9SBvIMteg
BAAAFiEAADYAGAAAAAAAAAAAAKSBdT8aAHN0b3JhZ2UvaW5kZXhlZGRiL3VuYmxvY2tlZC12ZXJz
aW9uLWNoYW5nZXMtc3RkZXJyLnR4dFVUBQADnTxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
ADlgvUjk2jGdEAEAAMEDAAAtABgAAAAAAAAAAACkgYVEGgBzdG9yYWdlL2luZGV4ZWRkYi91bnBy
ZWZpeC1wcml2YXRlLXN0ZGVyci50eHRVVAUAA508S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CAA5YL1IsfBL52QEAAADFwAANAAYAAAAAAAAAAAApIH8RRoAc3RvcmFnZS9pbmRleGVkZGIvdmFs
dWUtdW5kZWZpbmVkLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADnjxLV3V4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIADlgvUikwZBuWAUAACccAAAsABgAAAAAAAAAAACkgc5KGgBzdG9yYWdlL2luZGV4
ZWRkYi92YWx1ZS11bmRlZmluZWQtc3RkZXJyLnR4dFVUBQADnjxLV3V4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIADlgvUhhf5koKAUAAIwtAAA1ABgAAAAAAAAAAACkgYxQGgBzdG9yYWdlL2luZGV4
ZWRkYi92YWx1ZXMtb2RkLXR5cGVzLXByaXZhdGUtc3RkZXJyLnR4dFVUBQADnjxLV3V4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIADlgvUj1pnyGlwUAAE0vAAAtABgAAAAAAAAAAACkgSNWGgBzdG9y
YWdlL2luZGV4ZWRkYi92YWx1ZXMtb2RkLXR5cGVzLXN0ZGVyci50eHRVVAUAA548S1d1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAA5YL1ISmLCnngFAACwLAAAOQAYAAAAAAAAAAAApIEhXBoAc3Rv
cmFnZS9pbmRleGVkZGIvdmVyc2lvbi1jaGFuZ2UtYWJvcnQtcHJpdmF0ZS1zdGRlcnIudHh0VVQF
AAOePEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAOmC9SNq1aTtfBQAAjCwAADEAGAAAAAAA
AAAAAKSBDGIaAHN0b3JhZ2UvaW5kZXhlZGRiL3ZlcnNpb24tY2hhbmdlLWFib3J0LXN0ZGVyci50
eHRVVAUAA588S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA6YL1IqtgCHssCAADdGQAAPwAY
AAAAAAAAAAAApIHWZxoAc3RvcmFnZS9pbmRleGVkZGIvdmVyc2lvbi1jaGFuZ2UtZXZlbnQtYmFz
aWMtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAOfPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
OmC9SNF94/vgAwAADigAADcAGAAAAAAAAAAAAKSBGmsaAHN0b3JhZ2UvaW5kZXhlZGRiL3ZlcnNp
b24tY2hhbmdlLWV2ZW50LWJhc2ljLXN0ZGVyci50eHRVVAUAA588S1d1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACAA6YL1Iwdr4lHIFAADpLgAAOQAYAAAAAAAAAAAApIFrbxoAc3RvcmFnZS9pbmRl
eGVkZGIvdmVyc2lvbi1jaGFuZ2UtZXZlbnQtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAOfPEtXdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAOmC9SDQKZAP7BAAA/ScAADEAGAAAAAAAAAAAAKSBUHUa
AHN0b3JhZ2UvaW5kZXhlZGRiL3ZlcnNpb24tY2hhbmdlLWV2ZW50LXN0ZGVyci50eHRVVAUAA588
S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA6YL1IqdrRmCcFAABpOAAAPQAYAAAAAAAAAAAA
pIG2ehoAc3RvcmFnZS9pbmRleGVkZGIvdmVyc2lvbi1jaGFuZ2UtZXhjbHVzaXZlLXByaXZhdGUt
c3RkZXJyLnR4dFVUBQADnzxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADpgvUj7Q+CxMAUA
APE5AAA1ABgAAAAAAAAAAACkgVSAGgBzdG9yYWdlL2luZGV4ZWRkYi92ZXJzaW9uLWNoYW5nZS1l
eGNsdXNpdmUtc3RkZXJyLnR4dFVUBQADoDxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADpg
vUhpdmRckQMAAGUTAABJABgAAAAAAAAAAACkgfOFGgBzdG9yYWdlL2luZGV4ZWRkYi92ZXJzaW9u
Y2hhbmdlcmVxdWVzdC1hY3RpdmVkb21vYmplY3QtcHJpdmF0ZS1zdGRlcnIudHh0VVQFAAOgPEtX
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAO2C9SCYjpebPAwAA7xMAAEEAGAAAAAAAAAAAAKSB
B4oaAHN0b3JhZ2UvaW5kZXhlZGRiL3ZlcnNpb25jaGFuZ2VyZXF1ZXN0LWFjdGl2ZWRvbW9iamVj
dC1zdGRlcnIudHh0VVQFAAOhPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAZ1+9SAAAAAAA
AAAAAAAAAA8AGAAAAAAAAAAQAO1BUY4aAHN0b3JhZ2Uvd2Vic3FsL1VUBQADAjxLV3V4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAGNfvUje/brprwAAAO4AAAAtABgAAAAAAAEAAACkgZqOGgBzdG9y
YWdlL3dlYnNxbC9hbHRlci10by1pbmZvLXRhYmxlLXN0ZGVyci50eHRVVAUAA/k7S1d1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACABjX71I3v266a8AAADuAAAANQAYAAAAAAABAAAApIGwjxoAc3Rv
cmFnZS93ZWJzcWwvY2hhbmdlLXZlcnNpb24taGFuZGxlLXJldXNlLXN0ZGVyci50eHRVVAUAA/k7
S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABjX71I3v266a8AAADuAAAARgAYAAAAAAABAAAA
pIHOkBoAc3RvcmFnZS93ZWJzcWwvY2hhbmdlLXZlcnNpb24tbm8tY3Jhc2gtb24tcHJlZmxpZ2h0
LWZhaWx1cmUtc3RkZXJyLnR4dFVUBQAD+TtLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGNf
vUj5R3TYugAAALgDAAAoABgAAAAAAAEAAACkgf2RGgBzdG9yYWdlL3dlYnNxbC9jaGFuZ2UtdmVy
c2lvbi1zdGRlcnIudHh0VVQFAAP6O0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAY1+9SN79
uumvAAAA7gAAADIAGAAAAAAAAQAAAKSBGZMaAHN0b3JhZ2Uvd2Vic3FsL2Nsb3NlLWR1cmluZy1z
dHJlc3MtdGVzdC1zdGRlcnIudHh0VVQFAAP6O0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
Y1+9SKt4+6G1AAAA3AEAADQAGAAAAAAAAQAAAKSBNJQaAHN0b3JhZ2Uvd2Vic3FsL2RhdGFiYXNl
LWxvY2stYWZ0ZXItcmVsb2FkLXN0ZGVyci50eHRVVAUAA/o7S1d1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACABjX71I3v266a8AAADuAAAAKQAYAAAAAAABAAAApIFXlRoAc3RvcmFnZS93ZWJzcWwv
ZW1wdHktc3RhdGVtZW50LXN0ZGVyci50eHRVVAUAA/o7S1d1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACABkX71I3v266a8AAADuAAAAKgAYAAAAAAABAAAApIFplhoAc3RvcmFnZS93ZWJzcWwvZXhl
Y3V0ZS1zcWwtYXJncy1zdGRlcnIudHh0VVQFAAP7O0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAZF+9SN79uumvAAAA7gAAADIAGAAAAAAAAQAAAKSBfJcaAHN0b3JhZ2Uvd2Vic3FsL2V4ZWN1
dGUtc3FsLXJvd3NBZmZlY3RlZC1zdGRlcnIudHh0VVQFAAP7O0tXdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAZF+9SN79uumvAAAA7gAAAD8AGAAAAAAAAQAAAKSBl5gaAHN0b3JhZ2Uvd2Vic3Fs
L2V4ZWN1dGVzcWwtYWNjZXB0cy1vbmx5LW9uZS1zdGF0ZW1lbnQtc3RkZXJyLnR4dFVUBQAD+ztL
V3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGVfvUje/brprwAAAO4AAAAuABgAAAAAAAEAAACk
gb+ZGgBzdG9yYWdlL3dlYnNxbC9oYXNoLWNoYW5nZS13aXRoLXhoci1zdGRlcnIudHh0VVQFAAP9
O0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAZV+9SKt4+6G1AAAA3AEAAD8AGAAAAAAAAQAA
AKSB1poaAHN0b3JhZ2Uvd2Vic3FsL211bHRpcGxlLWRhdGFiYXNlcy1nYXJiYWdlLWNvbGxlY3Rp
b24tc3RkZXJyLnR4dFVUBQAD/TtLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGVfvUg8ZvSM
uQAAAMoCAABEABgAAAAAAAEAAACkgQScGgBzdG9yYWdlL3dlYnNxbC9tdWx0aXBsZS10cmFuc2Fj
dGlvbnMtb24tZGlmZmVyZW50LWhhbmRsZXMtc3RkZXJyLnR4dFVUBQAD/TtLV3V4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAGVfvUje/brprwAAAO4AAAAvABgAAAAAAAEAAACkgTudGgBzdG9yYWdl
L3dlYnNxbC9tdWx0aXBsZS10cmFuc2FjdGlvbnMtc3RkZXJyLnR4dFVUBQAD/TtLV3V4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAGVfvUje/brprwAAAO4AAAAoABgAAAAAAAEAAACkgVOeGgBzdG9y
YWdlL3dlYnNxbC9udWxsLWNhbGxiYWNrcy1zdGRlcnIudHh0VVQFAAP+O0tXdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAZV+9SKt4+6G1AAAA3AEAAEgAGAAAAAAAAQAAAKSBZJ8aAHN0b3JhZ2Uv
d2Vic3FsL29wZW4tZGF0YWJhc2UtY3JlYXRpb24tY2FsbGJhY2staXNvbGF0ZWQtd29ybGQtc3Rk
ZXJyLnR4dFVUBQAD/jtLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGVfvUj5R3TYugAAALgD
AAA5ABgAAAAAAAEAAACkgZugGgBzdG9yYWdlL3dlYnNxbC9vcGVuLWRhdGFiYXNlLWNyZWF0aW9u
LWNhbGxiYWNrLXN0ZGVyci50eHRVVAUAA/47S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABl
X71I3v266a8AAADuAAAANQAYAAAAAAABAAAApIHIoRoAc3RvcmFnZS93ZWJzcWwvb3Blbi1kYXRh
YmFzZS1lbXB0eS12ZXJzaW9uLXN0ZGVyci50eHRVVAUAA/47S1d1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACABlX71I3v266a8AAADuAAAANAAYAAAAAAABAAAApIHmohoAc3RvcmFnZS93ZWJzcWwv
b3Blbi1kYXRhYmFzZS1leHBhbmQtcXVvdGEtc3RkZXJyLnR4dFVUBQAD/jtLV3V4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAGVfvUirePuhtQAAANwBAAA5ABgAAAAAAAEAAACkgQOkGgBzdG9yYWdl
L3dlYnNxbC9vcGVuLWRhdGFiYXNlLXNldC1lbXB0eS12ZXJzaW9uLXN0ZGVyci50eHRVVAUAA/47
S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABlX71Iq3j7obUAAADcAQAARQAYAAAAAAABAAAA
pIErpRoAc3RvcmFnZS93ZWJzcWwvb3Blbi1kYXRhYmFzZS13aGlsZS10cmFuc2FjdGlvbi1pbi1w
cm9ncmVzcy1zdGRlcnIudHh0VVQFAAP+O0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAZl+9
SN79uumvAAAA7gAAADkAGAAAAAAAAQAAAKSBX6YaAHN0b3JhZ2Uvd2Vic3FsL3ByaXZhdGUtYnJv
d3Npbmctbm9yZWFkLW5vd3JpdGUtc3RkZXJyLnR4dFVUBQAD/ztLV3V4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAGZfvUg8ZvSMuQAAAMoCAABHABgAAAAAAAEAAACkgYGnGgBzdG9yYWdlL3dlYnNx
bC9yZWFkLWFuZC13cml0ZS10cmFuc2FjdGlvbnMtZG9udC1ydW4tdG9nZXRoZXItc3RkZXJyLnR4
dFVUBQAD/ztLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGZfvUirePuhtQAAANwBAABAABgA
AAAAAAEAAACkgbuoGgBzdG9yYWdlL3dlYnNxbC9yZWFkLXRyYW5zYWN0aW9ucy1ydW5uaW5nLWNv
bmN1cnJlbnRseS1zdGRlcnIudHh0VVQFAAP/O0tXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
Zl+9SN79uumvAAAA7gAAACgAGAAAAAAAAQAAAKSB6qkaAHN0b3JhZ2Uvd2Vic3FsL3NxbC1kYXRh
LXR5cGVzLXN0ZGVyci50eHRVVAUAA/87S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABmX71I
q3j7obUAAADcAQAAQQAYAAAAAAABAAAApIH7qhoAc3RvcmFnZS93ZWJzcWwvc3RhdGVtZW50LWVy
cm9yLWNhbGxiYWNrLWlzb2xhdGVkLXdvcmxkLXN0ZGVyci50eHRVVAUAA/87S1d1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACABmX71I3v266a8AAADuAAAAMgAYAAAAAAABAAAApIErrBoAc3RvcmFn
ZS93ZWJzcWwvc3RhdGVtZW50LWVycm9yLWNhbGxiYWNrLXN0ZGVyci50eHRVVAUAAwA8S1d1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACABmX71Iq3j7obUAAADcAQAAQwAYAAAAAAABAAAApIFGrRoA
c3RvcmFnZS93ZWJzcWwvc3RhdGVtZW50LXN1Y2Nlc3MtY2FsbGJhY2staXNvbGF0ZWQtd29ybGQt
c3RkZXJyLnR4dFVUBQADADxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGZfvUje/brprwAA
AO4AAAAqABgAAAAAAAEAAACkgXiuGgBzdG9yYWdlL3dlYnNxbC9zdWNjZXNzLWNhbGxiYWNrLXN0
ZGVyci50eHRVVAUAAwA8S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABmX71I3v266a8AAADu
AAAAQwAYAAAAAAABAAAApIGLrxoAc3RvcmFnZS93ZWJzcWwvc3VjY2Vzcy1jYWxsYmFjay13aGVu
LXBhZ2UtZGVmZXJzLWxvYWRpbmctc3RkZXJyLnR4dFVUBQADADxLV3V4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAGdfvUje/brprwAAAO4AAAApABgAAAAAAAEAAACkgbewGgBzdG9yYWdlL3dlYnNx
bC90ZXN0LWF1dGhvcml6ZXItc3RkZXJyLnR4dFVUBQADATxLV3V4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAGdfvUje/brprwAAAO4AAAA+ABgAAAAAAAEAAACkgcmxGgBzdG9yYWdlL3dlYnNxbC90
cmFuc2FjdGlvbi1jYWxsYmFjay1leGNlcHRpb24tY3Jhc2gtc3RkZXJyLnR4dFVUBQADATxLV3V4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGdfvUirePuhtQAAANwBAAA9ABgAAAAAAAEAAACkgfCy
GgBzdG9yYWdlL3dlYnNxbC90cmFuc2FjdGlvbi1jYWxsYmFjay1pc29sYXRlZC13b3JsZC1zdGRl
cnIudHh0VVQFAAMBPEtXdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAZ1+9SKt4+6G1AAAA3AEA
AEMAGAAAAAAAAQAAAKSBHLQaAHN0b3JhZ2Uvd2Vic3FsL3RyYW5zYWN0aW9uLWVycm9yLWNhbGxi
YWNrLWlzb2xhdGVkLXdvcmxkLXN0ZGVyci50eHRVVAUAAwE8S1d1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACABnX71I3v266a8AAADuAAAANAAYAAAAAAABAAAApIFOtRoAc3RvcmFnZS93ZWJzcWwv
dHJhbnNhY3Rpb24tZXJyb3ItY2FsbGJhY2stc3RkZXJyLnR4dFVUBQADAjxLV3V4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAGdfvUje/brprwAAAO4AAAAvABgAAAAAAAEAAACkgWu2GgBzdG9yYWdl
L3dlYnNxbC90cmFuc2FjdGlvbi1wcm90b3R5cGUtc3RkZXJyLnR4dFVUBQADAjxLV3V4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAGdfvUirePuhtQAAANwBAABFABgAAAAAAAEAAACkgYO3GgBzdG9y
YWdlL3dlYnNxbC90cmFuc2FjdGlvbi1zdWNjZXNzLWNhbGxiYWNrLWlzb2xhdGVkLXdvcmxkLXN0
ZGVyci50eHRVVAUAAwI8S1d1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABpYL1IAAAAAAAAAAAA
AAAABAAYAAAAAAAAABAA7UG3uBoAc3ZnL1VUBQAD9TxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAwoA
AAAAAGlgvUgAAAAAAAAAAAAAAAALABgAAAAAAAAAEADtQfW4GgBzdmcvY3VzdG9tL1VUBQAD9TxL
V3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGlgvUjUJI3ifgAAAI0AAAAkABgAAAAAAAEAAACk
gTq5GgBzdmcvY3VzdG9tL3plcm8tZGFzaGFycmF5LXN0ZGVyci50eHRVVAUAA/U8S1d1eAsAAQT1
AQAABBQAAABQSwECHgMKAAAAAAB9X71IAAAAAAAAAAAAAAAACwAYAAAAAAAAABAA7UEWuhoAc3Zn
L3N0cm9rZS9VVAUAAy08S1d1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAB9X71I1MX2ln8AAACN
AAAAJQAYAAAAAAABAAAApIFbuhoAc3ZnL3N0cm9rZS96ZXJvLXdpZHRoLWhhbmctc3RkZXJyLnR4
dFVUBQADLTxLV3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAKdgvUj5SYsXjSsBAH3PGwAZABgA
AAAAAAEAAACkgTm7GgB3cHR3a19wcm9jZXNzX2xvZy5vdXQudHh0VVQFAANqPUtXdXgLAAEE9QEA
AAQUAAAAUEsFBgAAAACoAqgC1k4BABnnGwAAAA==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280064</attachid>
            <date>2016-05-29 13:33:56 -0700</date>
            <delta_ts>2016-05-30 10:45:20 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>73623</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAxNDk0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0MCBA
QAorMjAxNi0wNS0yOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IEltcGxlbWVudCB0YWJsZS1iYXNlZCBzd2l0Y2hlcyBpbiBCMy9BaXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTE0MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgSWYgYSBzd2l0Y2ggc3Rh
dGVtZW50IGdldHMgbGFyZ2UsIGl0J3MgYmV0dGVyIHRvIGV4cHJlc3MgaXQgYXMgYW4gaW5kaXJl
Y3QganVtcCByYXRoZXIgdGhhbgorICAgICAgICB1c2luZyBhIGJpbmFyeSBzd2l0Y2ggKGRpdmlk
ZS1hbmQtY29ucXVlciB0cmVlIG9mIGNvbXBhcmlzb25zIGxlYWRpbmcgdG8gTyhsb2cgbikgYnJh
bmNoZXMgdG8KKyAgICAgICAgZ2V0IHRvIHRoZSBzd2l0Y2ggY2FzZSkuIFdoZW4gZGVhbGluZyB3
aXRoIGludGVnZXIgc3dpdGNoZXMsIEZUTCB3aWxsIGFscmVhZHkgdXNlIHRoZSBCMworICAgICAg
ICBTd2l0Y2ggYW5kIGV4cGVjdCB0aGlzIHRvIGdldCBsb3dlcmVkIGFzIGVmZmljaWVudGx5IGFz
IHBvc3NpYmxlOyBpdCdzIGEgYnVnIHRoYXQgQjMgd2lsbAorICAgICAgICBhbHdheXMgdXNlIGEg
YmluYXJ5IHN3aXRjaCByYXRoZXIgdGhhbiBpbmRpcmVjdCBqdW1wcy4gV2hlbiBkZWFsaW5nIHdp
dGggc3dpdGNoZXMgb3ZlciBzb21lCisgICAgICAgIG1vcmUgc29waGlzdGljYXRlZCB0eXBlcywg
d2UnZCB3YW50IEZUTCB0byBidWlsZCBhbiBpbmRpcmVjdCBqdW1wIHRhYmxlIGl0c2VsZiBhbmQg
dXNlCisgICAgICAgIHNvbWV0aGluZyBsaWtlIGEgaGFzaHRhYmxlIHRvIGZlZWQgaXQuCisgICAg
ICAgIAorICAgICAgICBUaGlzIGltcGxpZXMgdGhhdCB3ZSB3YW50IEIzIHRvIGhhdmUgdGhlIGFi
aWxpdHkgdG8gbG93ZXIgU3dpdGNoIHRvIGluZGlyZWN0IGp1bXBzIGFuZCB0bworICAgICAgICBl
eHBvc2UgdGhvc2UgaW5kaXJlY3QganVtcHMgaW4gSVIgc28gdGhhdCB0aGUgRlRMIGNvdWxkIGRv
IGl0cyBvd24gaW5kaXJlY3QganVtcHMgZm9yCisgICAgICAgIHN3aXRjaGVzIG92ZXIgbW9yZSBj
b21wbGljYXRlZCB0aGluZ3MgbGlrZSBzdHJpbmdzLiBUaGUgaW5kaXJlY3QganVtcCBvcGNvZGUg
aW4gQjMgaXMgY2FsbGVkCisgICAgICAgIFBvbHlKdW1wLCBhbmQgaXQgaGFzIHNvbWUgdW5pcXVl
IHNlbWFudGljcyB0aGF0IG1ha2UgaXQgdmVyeSBkaWZmZXJlbnQgZnJvbSAiaW5kaXJlY3QganVt
cHMiLAorICAgICAgICAiaW5kaXJlY3QgYnJhbmNoZXMiLCBhbmQgImNvbXB1dGVkIGdvdG9zIiAt
IGFsbCB0ZXJtcyBvZiBhcnQgdXNlZCBpbiBvdGhlciBjb21waWxlcnMuCisgICAgICAgIAorICAg
ICAgICBUaGlzIGltcGxlbWVudHMgdGhlIG1vc3QgYmFzaWMga2luZCBvZiBTd2l0Y2gtdG8taW5k
aXJlY3QtanVtcCBsb3dlcmluZyBpbiBCMzo6bG93ZXJNYWNyb3MoKS4KKyAgICAgICAgQXMgcGFy
dCBvZiB0aGUgZXhpc3RpbmcgZGl2aWRlLWFuZC1jb25xdWVyIHRoYXQgY3JlYXRlcyBicmFuY2hl
cywgaWYgaXQgZGV0ZWN0cyB0aGF0IHRoZSBzZXQKKyAgICAgICAgb2YgY2FzZXMgc2F0aXNmaWVz
IHNvbWUgY29uZGl0aW9ucyAoZGVuc2l0eSBvZiBjYXNlIHZhbHVlcyBhbmQgdG90YWwgc2l6ZSks
IHRoZW4gaXQgd2lsbCBlbWl0CisgICAgICAgIGEgUG9seUp1bXAuCisgICAgICAgIAorICAgICAg
ICBUaGUgcHJvYmxlbSB3aXRoIGluZGlyZWN0IGp1bXBzIGlzIHRoYXQgdGhleSBmb3JjZSB0aGUg
Y29tcGlsZXIgdG8gYmUgY29uc2VydmF0aXZlIGFib3V0CisgICAgICAgIGNvbnRyb2wgZmxvdy4g
VGhlIGNvbXBpbGVyIG11c3QgYXNzdW1lIHRoYXQgdGhlIGluZGlyZWN0IGp1bXAgbWF5IHRyYW5z
ZmVyIGNvbnRyb2wgZmxvdyB0bworICAgICAgICBhbnkgZXNjYXBlZCBibG9jayAoYmxvY2sgbGFi
ZWxlZCBhcyBiZWluZyBhIHBvc3NpYmxlIHRhcmdldCBmb3IgaW5kaXJlY3QganVtcHMsIG9yIGlm
IG5vIHN1Y2gKKyAgICAgICAgbGFiZWxpbmcgaXMgYXZhaWxhYmxlLCB0aGUgY29tcGlsZXIgbXVz
dCBhc3N1bWUgdGhhdCBpdCBtYXkgdGFyZ2V0IGFueSBibG9jaykuIFRoZSB3b3JzdCBwYXJ0Cisg
ICAgICAgIGlzIHRoYXQgdGhlIGltcGxpY2l0IGNvbnRyb2wgZmxvdyBlZGdlcyBmcm9tIHRoZSBp
bmRpcmVjdCBqdW1wIHRvIHRoZSBlc2NhcGVkIGJsb2NrcyBjYW5ub3QKKyAgICAgICAgYmUgYnJv
a2VuLiBUaGlzIGludmFsaWRhdGVzIGEgcHJpbmNpcGxlIG9mIEIzIElSOiBhbnkgcGhhc2UgbWF5
IGJyZWFrIGFueSBjcml0aWNhbCBlZGdlIGZvcgorICAgICAgICBhbnkgcmVhc29uLiBPdXIgU1NB
IGNvbnZlcnNpb24gd291bGQgYnJlYWsgaWYgd2UgcmV2b2tlZCB0aGlzIGZlYXR1cmUuIEl0J3Mg
YWN0dWFsbHkgbXVjaAorICAgICAgICB3b3JzZSB0aGFuIHRoaXMgLSBiYXNpY2FsbHkgYW55IGxv
Z2ljIG92ZXIgY29udHJvbCBmbG93IHdvdWxkIGhhdmUgdG8gYmUgaGFja2VkIHRvIGRlYWwgd2l0
aAorICAgICAgICB0aGVzZSB1bmJyZWFrYWJsZSBlZGdlcy4gVGhpcyB3b3VsZCBtZWFuIGNoYW5n
aW5nIGFsbCBDRkcgdHJhbnNmb3JtYXRpb24gdXRpbGl0aWVzIGFuZAorICAgICAgICBwYXNzZXMu
IFdlIGhhdmUgYSBsb3Qgb2YgdGhvc2UgYW5kIHdlIHdhbnQgaXQgdG8gYmUgZWFzeSB0byB3cml0
ZSBuZXcgb25lcy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaXMgd2h5IHdlIHVzZSBzb21ldGhp
bmcgbmV3LiBQb2x5SnVtcCBtYWtlcyB0aGUgY29udHJvbCBmbG93IGVkZ2VzIGV4cGxpY2l0LiBU
aGUgY2xpZW50CisgICAgICAgIG11c3Qgc3VwcGx5IHRoZSBzdWNjZXNzb3JzIHdoZW4gaXQgY3Jl
YXRlcyB0aGUgUG9seUp1bXAuIFRoZSBjb21waWxlciBtYXkgcmV3aXJlIHRob3NlCisgICAgICAg
IHN1Y2Nlc3NvciBlZGdlcyB0aGUgc2FtZSB3YXkgdGhhdCBpdCB3b3VsZCByZXdpcmUgYW55IGNv
bnRyb2wgZmxvdyBlZGdlcy4gVGhpcyB3b3JrcyBiZWNhdXNlCisgICAgICAgIHdlIGRvIG5vdCBh
ZGQgYW55IG5vdGlvbiBvZiBlc2NhcGVkIGJhc2ljIGJsb2Nrcy4gSW5zdGVhZCBvZiBnZXR0aW5n
IHRoZSBwb2ludGVycyB0byBiYXNpYworICAgICAgICBibG9ja3MgYnkgZXNjYXBpbmcgdGhlbSBs
aWtlIHlvdSB3b3VsZCBpbiBMTFZNIElSLCB5b3UgY2FuIG9ubHkgZ2V0IHRoZSBwb2ludGVycyBv
ZiB0aGUKKyAgICAgICAgc3VjY2Vzc29ycyBvZiBQb2x5SnVtcCBieSByZWdpc3RlcmluZyBhIGNh
bGxiYWNrIHdpdGggUG9seUp1bXAuIFRoaXMgY2FsbGJhY2sgZG9lc24ndAorICAgICAgICBhY3R1
YWxseSBnaXZlIHlvdSB0aGUgYWRkcmVzc2VzIG9mIGJhc2ljIGJsb2Nrcy4gSXQganVzdCBnaXZl
cyB5b3UgdGhlIGFkZHJlc3NlcyB3aGVyZSB5b3UKKyAgICAgICAgbXVzdCBqdW1wIHRvIHRyYW5z
ZmVyIGNvbnRyb2wgZmxvdyBmcm9tIHRoYXQgUG9seUp1bXAgdG8gaXRzIHN1Y2Nlc3NvcnMuCisg
ICAgICAgIAorICAgICAgICBUaGlzIG1lYW5zIHRoYXQgUG9seUp1bXAgaXMgbm90IGNsb25lYWJs
ZS4gU28sIHRoaXMgcGF0Y2ggaW50cm9kdWNlcyBWYWx1ZTo6aXNDbG9uZWFibGUoKSBhbmQKKyAg
ICAgICAgdGVhY2hlcyBib3RoIG9mIG91ciBjb2RlIHNwZWNpYWxpemF0aW9uIG9wdGltaXphdGlv
bnMgdG8gYmFpbCBpZiB0aGUgY29kZSB0aGV5IHdhbnQgdG8KKyAgICAgICAgc3BlY2lhbGl6ZSBp
cyBub3QgY2xvbmVhYmxlLiBUaGlzIGlzIHRvdGFsbHkgYmVuaWduIG1vc3Qgb2YgdGhlIHRpbWUs
IHNpbmNlIHRob3NlCisgICAgICAgIG9wdGltaXphdGlvbnMgdXN1YWxseSBydW4gYmVmb3JlIFN3
aXRjaCBsb3dlcmluZy4gQ2xpZW50cyB0aGF0IHVzZSBQb2x5SnVtcCBkaXJlY3RseSBoYXZlZSB0
bworICAgICAgICBhcHByZWNpYXRlIHRoZSB0cmFkZS1vZmY6IFBvbHlKdW1wIG1heSBnYWluIHRo
ZW0gc29tZSBwZXJmb3JtYW5jZSBidXQgdGhleSBhcmUgb3B0aW5nIG91dCBvZgorICAgICAgICBv
cHRpbWl6YXRpb25zIHRoYXQgdXNlIGNsb25pbmcuIFRoZSBmYWN0IHRoYXQgZWFjaCBQb2x5SnVt
cCBoYXMgYSBjYWxsYmFjayB0aGF0IGp1c3QgdGVsbHMKKyAgICAgICAgeW91IHRoZSBqdW1wIGRl
c3RpbmF0aW9ucyBmb3IgaXRzIHN1Y2Nlc3NvciAqZWRnZXMqLCBub3Qgc3VjY2Vzc29yICpibG9j
a3MqLCBtZWFucyB0aGF0IGlmCisgICAgICAgIHlvdSBjcmVhdGUgdHdvIFBvbHlKdW1wcyBhbmQg
Z2l2ZSB0aGVtIHRoZSBzYW1lIHN1Y2Nlc3NvciBsaXN0LCB5b3UgYXJlIG5vdCBndWFyYW50ZWVk
IHRoYXQKKyAgICAgICAgdGhleSB3aWxsIGdldCB0aGUgc2FtZSBqdW1wIGRlc3RpbmF0aW9ucy4g
VGhpcyBodXJ0cyBpZiB5b3Ugd2FudCB0byB1c2UgUG9seUp1bXAgZm9yIHRocmVhZGVkCisgICAg
ICAgIGludGVycHJldGVycyBidXQgaXQncyBoYXJtbGVzcyBmb3Igc3dpdGNoIGxvd2VyaW5nLiBU
aGUgZ29hbCBvZiBQb2x5SnVtcCBpcyB0byBiZSBhd2Vzb21lIGZvcgorICAgICAgICBzd2l0Y2gg
bG93ZXJpbmcgd2hpbGUgbm90IGJyZWFraW5nIHRoZSByZXN0IG9mIHRoZSBjb21waWxlciwgc28g
dGhpcyBpcyBwcm9iYWJseSBmaW5lLgorICAgICAgICAKKyAgICAgICAgVGhpcyBpcyBhIH4zMCUg
c3BlZWQtdXAgb24gbWljcm9iZW5jaG1hcmtzIHRoYXQgaGF2ZSBiaWcgc3dpdGNoIHN0YXRlbWVu
dHMgKH42MCBjYXNlcykuIEl0J3MKKyAgICAgICAgbm90IGEgc3BlZWQtdXAgb24gbWFpbnN0cmVh
bSBiZW5jaG1hcmtzLgorICAgICAgICAKKyAgICAgICAgVGhlIEZUTCBkb2VzIG5vdCBjdXJyZW50
bHkgdXNlIFBvbHlKdW1wIGRpcmVjdGx5LCBidXQgd2Ugd2FudCB0aGlzIHRvIGJlIHBvc3NpYmxl
LiBJdCBhbHNvCisgICAgICAgIGRvZXNuJ3QgdXNlIEdldC9TZXQgZGlyZWN0bHkgZXZlbiB0aG91
Z2ggd2Ugd2FudCB0aGlzIHRvIGJlIHBvc3NpYmxlLiBJdCdzIGltcG9ydGFudCB0byB0ZXN0Cisg
ICAgICAgIHRoaXMgc2luY2Ugb3Bjb2RlcyB0aGF0IHJlc3VsdCBmcm9tIGxvd2VyaW5nIGRvbid0
IGFmZmVjdCBlYXJseSBwaGFzZXMsIHNvIHdlIGNvdWxkIGhhdmUKKyAgICAgICAgcmVncmVzc2lv
bnMgaW4gZWFybHkgcGhhc2VzIHJlbGF0ZWQgdG8gdGhlc2Ugb3Bjb2RlcyB0aGF0IHdvdWxkbid0
IGJlIGNhdWdodCBieSBhbnkgSlMgdGVzdC4KKyAgICAgICAgU28sIHRoaXMgYWRkcyBhIHZlcnkg
YmFzaWMgdGhyZWFkZWQgaW50ZXJwcmV0ZXIgdG8gdGVzdGIzIGZvciBhIEJyYWluZnVjay1zdHls
ZSBsYW5ndWFnZSwgYW5kCisgICAgICAgIHRlc3RzIGl0IGJ5IGhhdmluZyBpdCBydW4gYSBwcm9n
cmFtIHRoYXQgcHJpbnRzIHRoZSBudW1iZXJzIDEuLjEwMCBpbiBhIGxvb3AuIFVubGlrZSBhIHJl
YWwKKyAgICAgICAgdGhyZWFkZWQgaW50ZXJwcmV0ZXIsIGl0IHVzZXMgYSBjb21tb24gZGlzcGF0
Y2ggYmxvY2sgcmF0aGVyIHRoYW4gaGF2aW5nIGRpc3BhdGNoIGF0IHRoZQorICAgICAgICB0ZXJt
aW51cyBvZiBlYWNoIG9wY29kZS4gVGhhdCdzIG5lY2Vzc2FyeSBiZWNhdXNlIFBvbHlKdW1wIGlz
IG5vdCBjbG9uZWFibGUuIFRoZSBzdGF0ZSBvZiB0aGUKKyAgICAgICAgaW50ZXJwcmV0ZXIgaXMg
cmVwcmVzZW50ZWQgdXNpbmcgVmFyaWFibGVzIHRoYXQgd2UgR2V0IGFuZCBTZXQsIHNvIGl0IHRl
c3RzIEdldC9TZXQgYXMgd2VsbC4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAg
ICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmg6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyWDg2Q29tbW9uOjpqdW1wKToKKyAgICAgICAgKiBhc3NlbWJsZXIvWDg2QXNzZW1i
bGVyLmg6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxlcjo6am1wX20pOgorICAgICAgICAqIGIz
L0IzQmFzaWNCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjp1cGRhdGVQ
cmVkZWNlc3NvcnNBZnRlcik6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjppc0Nsb25l
YWJsZSk6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjpkdW1wKToKKyAgICAgICAgKiBi
My9CM0Jhc2ljQmxvY2suaDoKKyAgICAgICAgKEpTQzo6QjM6OkJhc2ljQmxvY2s6OmZyZXF1ZW5j
eSk6CisgICAgICAgICogYjMvQjNDb21tb24uaDoKKyAgICAgICAgKEpTQzo6QjM6OmlzNjRCaXQp
OgorICAgICAgICAqIGIzL0IzQ29udHJvbFZhbHVlLmg6CisgICAgICAgICogYjMvQjNEYXRhU2Vj
dGlvbi5jcHA6CisgICAgICAgIChKU0M6OkIzOjpEYXRhU2VjdGlvbjo6RGF0YVNlY3Rpb24pOgor
ICAgICAgICAqIGIzL0IzRHVwbGljYXRlVGFpbHMuY3BwOgorICAgICAgICAqIGIzL0IzTG93ZXJN
YWNyb3MuY3BwOgorICAgICAgICAqIGIzL0IzTG93ZXJUb0Fpci5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpBaXI6Okxvd2VyVG9BaXI6Omxvd2VyKToKKyAgICAgICAgKiBiMy9CM09wY29kZS5jcHA6
CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAqIGIzL0IzT3Bjb2RlLmg6
CisgICAgICAgICogYjMvQjNQb2x5SnVtcFZhbHVlLmNwcDogQWRkZWQuCisgICAgICAgIChKU0M6
OkIzOjpQb2x5SnVtcFZhbHVlOjp+UG9seUp1bXBWYWx1ZSk6CisgICAgICAgIChKU0M6OkIzOjpQ
b2x5SnVtcFZhbHVlOjphcHBlbmRTdWNjZXNzb3IpOgorICAgICAgICAoSlNDOjpCMzo6UG9seUp1
bXBWYWx1ZTo6c2V0Q2FsbGJhY2tUYXNrKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1wVmFs
dWU6OmlzQ2xvbmVhYmxlKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1wVmFsdWU6OmR1bXBN
ZXRhKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1wVmFsdWU6OmNsb25lSW1wbCk6CisgICAg
ICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjpQb2x5SnVtcFZhbHVlKToKKyAgICAgICAgKiBi
My9CM1BvbHlKdW1wVmFsdWUuaDogQWRkZWQuCisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZh
bHVlOjphY2NlcHRzKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1wVmFsdWU6OnNldENhbGxi
YWNrKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1wVmFsdWU6OmNhbGxiYWNrVGFzayk6Cisg
ICAgICAgICogYjMvQjNQcm9jZWR1cmUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6UHJvY2VkdXJl
OjpjbG9uZSk6CisgICAgICAgICogYjMvQjNQcm9jZWR1cmUuaDoKKyAgICAgICAgKEpTQzo6QjM6
OlByb2NlZHVyZTo6bGFzdFBoYXNlTmFtZSk6CisgICAgICAgIChKU0M6OkIzOjpQcm9jZWR1cmU6
OmJ5cHJvZHVjdHMpOgorICAgICAgICAqIGIzL0IzUmVkdWNlU3RyZW5ndGguY3BwOgorICAgICAg
ICAqIGIzL0IzVmFsaWRhdGUuY3BwOgorICAgICAgICAqIGIzL0IzVmFsdWUuY3BwOgorICAgICAg
ICAoSlNDOjpCMzo6VmFsdWU6OmVmZmVjdHMpOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6Omlz
Q2xvbmVhYmxlKToKKyAgICAgICAgKEpTQzo6QjM6OlZhbHVlOjprZXkpOgorICAgICAgICAqIGIz
L0IzVmFsdWUuaDoKKyAgICAgICAgKiBiMy9haXIvQWlyQ29kZS5oOgorICAgICAgICAqIGIzL2Fp
ci9BaXJHZW5lcmF0ZS5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OmdlbmVyYXRlKToKKyAg
ICAgICAgKiBiMy9haXIvQWlySW5zdC5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okluc3Q6
Omhhc0FyZ0VmZmVjdHMpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpJbnN0Ojppc0Nsb25lYWJs
ZSk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okluc3Q6OmR1bXApOgorICAgICAgICAqIGIzL2Fp
ci9BaXJJbnN0Lmg6CisgICAgICAgICogYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzOgorICAgICAg
ICAqIGIzL3Rlc3RiMy5jcHA6CisgICAgICAgIChKU0M6OkIzOjpzaG91bGRCZVZlcmJvc2UpOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdFN3aXRjaENoaWxsRGl2KToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RMYXRlUmVnaXN0ZXIpOgorICAgICAgICAoSlNDOjpCMzo6dGhyZWFkZWRJbnRlcnByZXRl
clByaW50KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RUaHJlYWRlZEludGVycHJldGVyKToKKyAg
ICAgICAgKEpTQzo6QjM6Onplcm8pOgorICAgICAgICAoSlNDOjpCMzo6cnVuKToKKwogMjAxNi0w
NS0yOCAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5jb20+CiAKICAgICAgICAgSlNHbG9i
YWxMZXhpY2FsRW52aXJvbm1lbnQgbGVha3MgU2VnbWVudGVkVmVjdG9yIGR1ZSB0byBsYWNrIG9m
IGRlc3RydWN0b3IuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZp
c2lvbiAyMDE0OTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTE0Myw2ICsxNDMsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNF
UwogICAgIGIzL0IzUGF0Y2hwb2ludFZhbHVlLmNwcAogICAgIGIzL0IzUGhhc2VTY29wZS5jcHAK
ICAgICBiMy9CM1BoaUNoaWxkcmVuLmNwcAorICAgIGIzL0IzUG9seUp1bXAuY3BwCiAgICAgYjMv
QjNQcm9jZWR1cmUuY3BwCiAgICAgYjMvQjNQdXJlQ1NFLmNwcAogICAgIGIzL0IzUmVkdWNlRG91
YmxlVG9GbG9hdC5jcHAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lv
biAyMDE0OTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTE3OSwxNiArMTE3OSwxNiBA
QAogCQk1MzUyOUE0QzFDNDU3Qjc1MDAwQjQ5QzYgLyogQVBJVXRpbHMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzNTI5QTRCMUM0NTdCNzUwMDBCNDlD
NiAvKiBBUElVdGlscy5oICovOyB9OwogCQk1MzcwQjRGNTFCRjI2MjAyMDA1QzQwRkMgLyogQWRh
cHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50QmFzZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzcwQjRGMzFCRjI1RUEyMDA1QzQw
RkMgLyogQWRhcHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50QmFzZS5jcHAgKi87
IH07CiAJCTUzNzBCNEY2MUJGMjYyMDUwMDVDNDBGQyAvKiBBZGFwdGl2ZUluZmVycmVkUHJvcGVy
dHlWYWx1ZVdhdGNocG9pbnRCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MzcwQjRGNDFCRjI1RUEyMDA1QzQwRkMgLyogQWRhcHRpdmVJbmZlcnJl
ZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50QmFzZS5oICovOyB9OworCQk1MzkxN0U3QjFCNzkwNkZB
MDAwRUJEMzMgLyogSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGVGdW5jdGlvbnMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzOTE3RTdBMUI3
OTA2RTQwMDBFQkQzMyAvKiBKU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZUZ1bmN0aW9u
cy5oICovOyB9OworCQk1M0Y2QkY2RDFDM0YwNjBBMDBGNDFFNUQgLyogSW50ZXJuYWxGdW5jdGlv
bkFsbG9jYXRpb25Qcm9maWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1M0Y2QkY2QzFDM0YwNjBBMDBGNDFFNUQgLyogSW50ZXJuYWxGdW5jdGlvbkFs
bG9jYXRpb25Qcm9maWxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJNTNGQTJBRTExQ0YzN0YzRjAwMjI3MTFEIC8qIExMSW50UHJvdG90eXBlTG9h
ZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTNGQTJBRTAxQ0YzN0YzRjAwMjI3MTFEIC8qIExMSW50UHJv
dG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTUzRkEyQUUzMUNGMzgwMzkwMDIyNzEx
RCAvKiBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTNGQTJBRTIxQ0Yz
ODAzOTAwMjI3MTFEIC8qIExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hw
b2ludC5jcHAgKi87IH07CiAJCTVCRDNBMDY3MUNBRTMyNTcwMEY4NEJBMyAvKiBBc3luY0Z1bmN0
aW9uQ29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNUJEM0EwNjExQ0FFMzI1NzAwRjg0QkEzIC8qIEFzeW5jRnVuY3Rpb25Db25zdHJ1
Y3Rvci5jcHAgKi87IH07CiAJCTVCRDNBMDY4MUNBRTMyNTcwMEY4NEJBMyAvKiBBc3luY0Z1bmN0
aW9uQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDVCRDNBMDYyMUNBRTMyNTcwMEY4NEJBMyAvKiBBc3luY0Z1bmN0aW9uQ29uc3RydWN0
b3IuaCAqLzsgfTsKIAkJNUJEM0EwNjkxQ0FFMzI1NzAwRjg0QkEzIC8qIEFzeW5jRnVuY3Rpb25Q
cm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNUJEM0EwNjMxQ0FFMzI1NzAwRjg0QkEzIC8qIEFzeW5jRnVuY3Rpb25Qcm90b3R5cGUuY3Bw
ICovOyB9OwogCQk1QkQzQTA2QTFDQUUzMjU3MDBGODRCQTMgLyogQXN5bmNGdW5jdGlvblByb3Rv
dHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUJE
M0EwNjQxQ0FFMzI1NzAwRjg0QkEzIC8qIEFzeW5jRnVuY3Rpb25Qcm90b3R5cGUuaCAqLzsgfTsK
IAkJNUJEM0EwNkIxQ0FFMzI1NzAwRjg0QkEzIC8qIEpTQXN5bmNGdW5jdGlvbi5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QkQzQTA2NTFDQUUzMjU3
MDBGODRCQTMgLyogSlNBc3luY0Z1bmN0aW9uLmNwcCAqLzsgfTsKIAkJNUJEM0EwNkUxQ0FFMzVC
RjAwRjg0QkEzIC8qIEpTQXN5bmNGdW5jdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNUJEM0EwNkQxQ0FFMzVCRjAwRjg0QkEzIC8qIEpTQXN5bmNG
dW5jdGlvbi5oICovOyB9OwotCQk1MzkxN0U3QjFCNzkwNkZBMDAwRUJEMzMgLyogSlNHZW5lcmlj
VHlwZWRBcnJheVZpZXdQcm90b3R5cGVGdW5jdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzOTE3RTdBMUI3OTA2RTQwMDBFQkQzMyAvKiBKU0dl
bmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZUZ1bmN0aW9ucy5oICovOyB9OwotCQk1M0Y2QkY2
RDFDM0YwNjBBMDBGNDFFNUQgLyogSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1M0Y2QkY2QzFD
M0YwNjBBMDBGNDFFNUQgLyogSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJNTNGQTJBRTEx
Q0YzN0YzRjAwMjI3MTFEIC8qIExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0
Y2hwb2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTNGQTJBRTAxQ0YzN0YzRjAwMjI3MTFEIC8qIExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3Ry
dWN0dXJlV2F0Y2hwb2ludC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07Ci0JCTUzRkEyQUUzMUNGMzgwMzkwMDIyNzExRCAvKiBMTEludFByb3RvdHlwZUxv
YWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTNGQTJBRTIxQ0YzODAzOTAwMjI3MTFEIC8qIExMSW50
UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5jcHAgKi87IH07CiAJCTVE
NUQ4QUQxMEUwRDBFQkUwMEY5QzY5MiAvKiBsaWJlZGl0LmR5bGliIGluIEZyYW1ld29ya3MgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUQ1RDhBRDAwRTBEMEVCRTAwRjlDNjky
IC8qIGxpYmVkaXQuZHlsaWIgKi87IH07CiAJCTVEQkIxNTFCMTMxRDBCMzEwMDU2QUQzNiAvKiB0
ZXN0YXBpLmpzIGluIENvcHkgU3VwcG9ydCBTY3JpcHQgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMTREODU3NzQwQTQ2OTZDODAwMzIxNDZDIC8qIHRlc3RhcGkuanMgKi87IH07
CiAJCTVEQkIxNTI1MTMxRDBCRDcwMDU2QUQzNiAvKiBtaW5pZG9tLmpzIGluIENvcHkgU3VwcG9y
dCBTY3JpcHQgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQxMjExMEQwQTQ4
Nzg4NzAwNDgwMjU1IC8qIG1pbmlkb20uanMgKi87IH07CkBAIC0xOTg5LDYgKzE5ODksOCBAQAog
CQlEQzE3RTgxQTFDOUM5MUU5MDA4QTZBQjMgLyogQ0NhbGxIZWxwZXJzLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDMTdFODE2MUM5QzgwMkIwMDhB
NkFCMyAvKiBDQ2FsbEhlbHBlcnMuY3BwICovOyB9OwogCQlEQzIxNDMwNzFDQTMyRTU1MDAwQTg4
NjkgLyogSUNTdGF0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gREMyMTQzMDYxQ0EzMkU1MjAwMEE4ODY5IC8qIElDU3RhdHMuaCAqLzsgfTsKIAkJREMy
MTQzMDgxQ0EzMkU1ODAwMEE4ODY5IC8qIElDU3RhdHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREMyMTQzMDUxQ0EzMkU1MjAwMEE4ODY5IC8qIElD
U3RhdHMuY3BwICovOyB9OworCQlEQzQ1NEI4NDFDRkI1QkQ3MDA0QzE4QUYgLyogQjNQb2x5SnVt
cFZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IERDNjlBQTYwMUNGNzVERTEwMEM2MjcyRiAvKiBCM1BvbHlKdW1wVmFsdWUuY3BwICovOyB9Owor
CQlEQzQ1NEI4NTFDRkI1QkQ5MDA0QzE4QUYgLyogQjNQb2x5SnVtcFZhbHVlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzY5QUE2MTFDRjc1REUxMDBD
NjI3MkYgLyogQjNQb2x5SnVtcFZhbHVlLmggKi87IH07CiAJCURDNjA1QjVEMUNFMjZFQTAwMDU5
MzcxOCAvKiBQcm9maWxlckV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IERDNjA1QjU5MUNFMjZFOTgwMDU5MzcxOCAvKiBQcm9maWxlckV2ZW50
LmNwcCAqLzsgfTsKIAkJREM2MDVCNUUxQ0UyNkVBMjAwNTkzNzE4IC8qIFByb2ZpbGVyRXZlbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDNjA1QjVB
MUNFMjZFOTgwMDU5MzcxOCAvKiBQcm9maWxlckV2ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJREM2MDVCNUYxQ0UyNkVBNTAwNTkzNzE4IC8q
IFByb2ZpbGVyVUlELmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IERDNjA1QjVCMUNFMjZFOTgwMDU5MzcxOCAvKiBQcm9maWxlclVJRC5jcHAgKi87IH07
CkBAIC00MjE0LDYgKzQyMTYsOCBAQAogCQlEQzYwNUI1QTFDRTI2RTk4MDA1OTM3MTggLyogUHJv
ZmlsZXJFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBQcm9maWxlckV2
ZW50Lmg7IHBhdGggPSBwcm9maWxlci9Qcm9maWxlckV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCURDNjA1QjVCMUNFMjZFOTgwMDU5MzcxOCAvKiBQcm9maWxlclVJRC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQcm9maWxlclVJRC5jcHA7IHBh
dGggPSBwcm9maWxlci9Qcm9maWxlclVJRC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCURDNjA1QjVDMUNFMjZFOTgwMDU5MzcxOCAvKiBQcm9maWxlclVJRC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBQcm9maWxlclVJRC5oOyBwYXRoID0gcHJvZmlsZXIvUHJv
ZmlsZXJVSUQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREM2OUFBNjAxQ0Y3NURF
MTAwQzYyNzJGIC8qIEIzUG9seUp1bXBWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBCM1BvbHlKdW1wVmFsdWUuY3BwOyBwYXRoID0gYjMvQjNQb2x5SnVtcFZh
bHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREM2OUFBNjExQ0Y3NURFMTAw
QzYyNzJGIC8qIEIzUG9seUp1bXBWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBCM1BvbHlKdW1wVmFsdWUuaDsgcGF0aCA9IGIzL0IzUG9seUp1bXBWYWx1ZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzY5QUE2NTFDRjdBMUVGMDBDNjI3MkYgLyogTWF0
Y2hSZXN1bHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWF0Y2hS
ZXN1bHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzc5OTc4MTFDREU5RjlF
MDA0RDRBMDkgLyogVGFnUmVnaXN0ZXJzTW9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBUYWdSZWdpc3RlcnNNb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJREM3OTk3ODIxQ0RFOUY5RTAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGFnUmVnaXN0ZXJzTW9kZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDc2MSw2ICs0NzY1LDggQEAKIAkJCQkwRkVDODRF
MDFCREFDREFDMDA4MEZGNzQgLyogQjNQaGFzZVNjb3BlLmggKi8sCiAJCQkJMEYzNzMwOEExQzBC
RDI5MTAwMDUyQkZBIC8qIEIzUGhpQ2hpbGRyZW4uY3BwICovLAogCQkJCTBGMzczMDhCMUMwQkQy
OTEwMDA1MkJGQSAvKiBCM1BoaUNoaWxkcmVuLmggKi8sCisJCQkJREM2OUFBNjAxQ0Y3NURFMTAw
QzYyNzJGIC8qIEIzUG9seUp1bXBWYWx1ZS5jcHAgKi8sCisJCQkJREM2OUFBNjExQ0Y3NURFMTAw
QzYyNzJGIC8qIEIzUG9seUp1bXBWYWx1ZS5oICovLAogCQkJCTBGRUM4NEUxMUJEQUNEQUMwMDgw
RkY3NCAvKiBCM1Byb2NlZHVyZS5jcHAgKi8sCiAJCQkJMEZFQzg0RTIxQkRBQ0RBQzAwODBGRjc0
IC8qIEIzUHJvY2VkdXJlLmggKi8sCiAJCQkJMEZFQzg0RTMxQkRBQ0RBQzAwODBGRjc0IC8qIEIz
UHJvY2VkdXJlSW5saW5lcy5oICovLApAQCAtNzIyNSw2ICs3MjMxLDcgQEAKIAkJCQkwRjA1QzNC
NDE2ODNDRjkyMDBCQUY0NUIgLyogREZHQXJyYXlpZnlTbG93UGF0aEdlbmVyYXRvci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEY2Mzk0ODUxNUU0ODExQjAwNkE1OTdDIC8qIERGR0FycmF5TW9kZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTdEOUEyOTUxN0EwQkM3NDAwRUUyNjE4IC8qIERGR0F0VGFp
bEFic3RyYWN0U3RhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCURDNDU0Qjg1MUNGQjVCRDkwMDRD
MThBRiAvKiBCM1BvbHlKdW1wVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNjY2RUM3MTgz
NTY3MkIwMEQwMTdGMSAvKiBERkdBdmFpbGFiaWxpdHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
MkI5Q0UzMTlEMEJBN0QwMEIxRDFCNSAvKiBERkdBdmFpbGFiaWxpdHlNYXAuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGNzE0Q0E1MTZFQTkyRjIwMEYzRUJFQiAvKiBERkdCYWNrd2FyZHNQcm9wYWdh
dGlvblBoYXNlLmggaW4gSGVhZGVycyAqLywKQEAgLTkwMDcsNiArOTAxNCw3IEBACiAJCQkJMkE4
MzYzODkxOEQ3RDBGRTAwMDBFQkNDIC8qIEZ1bGxHQ0FjdGl2aXR5Q2FsbGJhY2suY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMTQ3RjM5Q0IxMDdFQzM3NjAwNDI3QTQ4IC8qIEZ1bmN0aW9uQ29uc3Ry
dWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGMEYxOUYxNkI3MkExNzAwNURGOTVCIC8q
IEZ1bmN0aW9uRXhlY3V0YWJsZUR1bXAuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJREM0NTRCODQx
Q0ZCNUJENzAwNEMxOEFGIC8qIEIzUG9seUp1bXBWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1MkIzMTBGRDE5NzRBRTg3MDA4MDg1N0MgLyogRnVuY3Rpb25IYXNFeGVjdXRlZENhY2hlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUZFNEJGRjJCMUFENDc2RTcwMDA4OEY4NyAvKiBGdW5jdGlv
bk92ZXJyaWRlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDdGMzlDQzEwN0VDMzc2MDA0MjdB
NDggLyogRnVuY3Rpb25Qcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4
NkNvbW1vbi5oCShyZXZpc2lvbiAyMDE0OTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTIyNjIs
NiArMjI2MiwxMiBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLmptcF9tKGFkZHJlc3Mu
b2Zmc2V0LCBhZGRyZXNzLmJhc2UpOwogICAgIH0KIAorICAgIC8vIEFkZHJlc3MgaXMgYSBtZW1v
cnkgbG9jYXRpb24gY29udGFpbmluZyB0aGUgYWRkcmVzcyB0byBqdW1wIHRvCisgICAgdm9pZCBq
dW1wKEJhc2VJbmRleCBhZGRyZXNzKQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIuam1wX20o
YWRkcmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFzZSwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2Fs
ZSk7CisgICAgfQorCiAKICAgICAvLyBBcml0aG1ldGljIGNvbnRyb2wgZmxvdyBvcGVyYXRpb25z
OgogICAgIC8vCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2Vt
Ymxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2
QXNzZW1ibGVyLmgJKHJldmlzaW9uIDIwMTQ5NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTE5ODMsNiArMTk4Mywx
MSBAQCBwdWJsaWM6CiAgICAgICAgIG1fZm9ybWF0dGVyLm9uZUJ5dGVPcChPUF9HUk9VUDVfRXYs
IEdST1VQNV9PUF9KTVBOLCBiYXNlLCBvZmZzZXQpOwogICAgIH0KICAgICAKKyAgICB2b2lkIGpt
cF9tKGludCBvZmZzZXQsIFJlZ2lzdGVySUQgYmFzZSwgUmVnaXN0ZXJJRCBpbmRleCwgaW50IHNj
YWxlKQorICAgIHsKKyAgICAgICAgbV9mb3JtYXR0ZXIub25lQnl0ZU9wKE9QX0dST1VQNV9Fdiwg
R1JPVVA1X09QX0pNUE4sIGJhc2UsIGluZGV4LCBzY2FsZSwgb2Zmc2V0KTsKKyAgICB9CisgICAg
CiAjaWYgIUNQVShYODZfNjQpCiAgICAgdm9pZCBqbXBfbShjb25zdCB2b2lkKiBhZGRyZXNzKQog
ICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2suY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2suY3BwCShy
ZXZpc2lvbiAyMDE0OTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2Nr
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA5LDYgKzEwOSwxNSBAQCB2b2lkIEJhc2ljQmxvY2s6
OnVwZGF0ZVByZWRlY2Vzc29yc0FmdGVyCiAgICAgQjM6OnVwZGF0ZVByZWRlY2Vzc29yc0FmdGVy
KHRoaXMpOwogfQogCitib29sIEJhc2ljQmxvY2s6OmlzQ2xvbmVhYmxlKCkgY29uc3QKK3sKKyAg
ICBmb3IgKFZhbHVlKiB2YWx1ZSA6ICp0aGlzKSB7CisgICAgICAgIGlmICghdmFsdWUtPmlzQ2xv
bmVhYmxlKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0
cnVlOworfQorCiB2b2lkIEJhc2ljQmxvY2s6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QK
IHsKICAgICBvdXQucHJpbnQoZHVtcFByZWZpeCwgbV9pbmRleCk7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5oCShyZXZpc2lvbiAyMDE0OTQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTExNSw2
ICsxMTUsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVQcmVkZWNlc3NvcnNBZnRlcigpOwog
CiAgICAgZG91YmxlIGZyZXF1ZW5jeSgpIGNvbnN0IHsgcmV0dXJuIG1fZnJlcXVlbmN5OyB9Cisg
ICAgCisgICAgYm9vbCBpc0Nsb25lYWJsZSgpIGNvbnN0OwogCiAgICAgdm9pZCBkdW1wKFByaW50
U3RyZWFtJikgY29uc3Q7CiAgICAgdm9pZCBkZWVwRHVtcChjb25zdCBQcm9jZWR1cmUmLCBQcmlu
dFN0cmVhbSYpIGNvbnN0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29tbW9u
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29tbW9uLmgJKHJl
dmlzaW9uIDIwMTQ5NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbW1vbi5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTI4LDYgKzI4LDggQEAKIAogI2lmIEVOQUJMRShCM19KSVQpCiAKKyNpbmNs
dWRlICJKU0V4cG9ydE1hY3Jvcy5oIgorCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsK
IAogaW5saW5lIGJvb2wgaXM2NEJpdCgpIHsgcmV0dXJuIHNpemVvZih2b2lkKikgPT0gODsgfQpA
QCAtMzgsNyArNDAsNyBAQCBlbnVtIEIzQ29tcGxpdGF0aW9uTW9kZSB7CiAgICAgQWlyTW9kZQog
fTsKIAotYm9vbCBzaG91bGREdW1wSVIoQjNDb21wbGl0YXRpb25Nb2RlKTsKK0pTX0VYUE9SVF9Q
UklWQVRFIGJvb2wgc2hvdWxkRHVtcElSKEIzQ29tcGxpdGF0aW9uTW9kZSk7CiBib29sIHNob3Vs
ZER1bXBJUkF0RWFjaFBoYXNlKEIzQ29tcGxpdGF0aW9uTW9kZSk7CiBib29sIHNob3VsZFZhbGlk
YXRlSVIoKTsKIGJvb2wgc2hvdWxkVmFsaWRhdGVJUkF0RWFjaFBoYXNlKCk7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb250cm9sVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb250cm9sVmFsdWUuaAkocmV2aXNpb24gMjAxNDk0KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29udHJvbFZhbHVlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTQ2LDkgKzQ2LDEwIEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBSZXR1cm46CiAgICAg
ICAgIGNhc2UgT29wczoKICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBjYXNlIFN3
aXRjaDogCi0gICAgICAgICAgICAvLyBUaGlzIGlzIGhlcmUgYmVjYXVzZSBTd2l0Y2hWYWx1ZSBp
cyBhIHN1YmNsYXNzIG9mIENvbnRyb2xWYWx1ZSwgc28gd2Ugd2FudAotICAgICAgICAgICAgLy8g
c3dpdGNoVmFsdWUtPmFzPENvbnRyb2xWYWx1ZT4oKSB0byByZXR1cm4gbm9uLW51bGwuCisgICAg
ICAgIGNhc2UgU3dpdGNoOgorICAgICAgICBjYXNlIFBvbHlKdW1wOgorICAgICAgICAgICAgLy8g
VGhpcyBpcyBoZXJlIGJlY2F1c2UgU3dpdGNoVmFsdWUgYW5kIFBvbHlKdW1wVmFsdWUgYXJlIHN1
YmNsYXNzZXMgb2YgQ29udHJvbFZhbHVlLAorICAgICAgICAgICAgLy8gc28gd2Ugd2FudCB0aGlu
Z3MgbGlrZSBzd2l0Y2hWYWx1ZS0+YXM8Q29udHJvbFZhbHVlPigpIHRvIHJldHVybiBub24tbnVs
bC4KICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwpAQCAtNzcsNyArNzgsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAg
Ym9vbCByZXBsYWNlU3VjY2Vzc29yKEJhc2ljQmxvY2sqIGZyb20sIEJhc2ljQmxvY2sqIHRvKTsK
LQorICAgIAogICAgIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgdGFrZW4oKSBjb25zdAogICAgIHsK
ICAgICAgICAgQVNTRVJUKG9wY29kZSgpID09IEp1bXAgfHwgb3Bjb2RlKCkgPT0gQnJhbmNoKTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0RhdGFTZWN0aW9uLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEYXRhU2VjdGlvbi5jcHAJKHJldmlz
aW9uIDIwMTQ5NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0RhdGFTZWN0aW9uLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1
LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0zMSw3ICszMSw3IEBACiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNl
IEIzIHsKIAogRGF0YVNlY3Rpb246OkRhdGFTZWN0aW9uKHNpemVfdCBzaXplKQotICAgIDogbV9k
YXRhKGZhc3RNYWxsb2Moc2l6ZSkpCisgICAgOiBtX2RhdGEoZmFzdFplcm9lZE1hbGxvYyhzaXpl
KSkKICAgICAsIG1fc2l6ZShzaXplKQogewogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzRHVwbGljYXRlVGFpbHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM0R1cGxpY2F0ZVRhaWxzLmNwcAkocmV2aXNpb24gMjAxNDk0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzRHVwbGljYXRlVGFpbHMuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC03Miw5ICs3MiwxMSBAQCBwdWJsaWM6CiAgICAgICAgIEluZGV4U2V0PEJhc2ljQmxvY2s+IGNh
bmRpZGF0ZXM7CiAKICAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBibG9jayA6IG1fcHJvYykgewot
ICAgICAgICAgICAgaWYgKGJsb2NrLT5zaXplKCkgPiBtX21heFNpemUgfHwgYmxvY2stPm51bVN1
Y2Nlc3NvcnMoKSA+IG1fbWF4U3VjY2Vzc29ycykKKyAgICAgICAgICAgIGlmIChibG9jay0+c2l6
ZSgpID4gbV9tYXhTaXplCisgICAgICAgICAgICAgICAgfHwgYmxvY2stPm51bVN1Y2Nlc3NvcnMo
KSA+IG1fbWF4U3VjY2Vzc29ycworICAgICAgICAgICAgICAgIHx8ICFibG9jay0+aXNDbG9uZWFi
bGUoKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKLQorICAgICAgICAgICAgCiAgICAgICAg
ICAgICBjYW5kaWRhdGVzLmFkZChibG9jayk7CiAgICAgICAgIH0KIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJNYWNyb3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyTWFjcm9zLmNwcAkocmV2aXNpb24gMjAxNDk0KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJNYWNyb3MuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTM0LDcgKzM0LDkgQEAKICNpbmNsdWRlICJCM0NvbnN0UHRyVmFsdWUuaCIKICNpbmNsdWRlICJC
M0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzSW5zZXJ0aW9uU2V0SW5saW5lcy5oIgorI2lu
Y2x1ZGUgIkIzTWVtb3J5VmFsdWUuaCIKICNpbmNsdWRlICJCM1BoYXNlU2NvcGUuaCIKKyNpbmNs
dWRlICJCM1BvbHlKdW1wVmFsdWUuaCIKICNpbmNsdWRlICJCM1Byb2NlZHVyZUlubGluZXMuaCIK
ICNpbmNsdWRlICJCM1N3aXRjaFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNVcHNpbG9uVmFsdWUuaCIK
QEAgLTI3NSw4ICsyNzcsOTUgQEAgcHJpdmF0ZToKICAgICAgICAgY29uc3QgVmVjdG9yPFN3aXRj
aENhc2U+JiBjYXNlcywgdW5zaWduZWQgc3RhcnQsIGJvb2wgaGFyZFN0YXJ0LCB1bnNpZ25lZCBl
bmQsCiAgICAgICAgIEJhc2ljQmxvY2sqIGJlZm9yZSkKICAgICB7Ci0gICAgICAgIC8vIEZJWE1F
OiBBZGQgdGFibGUtYmFzZWQgc3dpdGNoIGxvd2VyaW5nLgotICAgICAgICAvLyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxMTQxCisgICAgICAgIFZhbHVlKiBjaGls
ZCA9IG1fdmFsdWUtPmNoaWxkKDApOworICAgICAgICBUeXBlIHR5cGUgPSBjaGlsZC0+dHlwZSgp
OworICAgICAgICBGcmVxdWVudGVkQmxvY2sgZmFsbFRocm91Z2ggPSBtX3ZhbHVlLT5hczxTd2l0
Y2hWYWx1ZT4oKS0+ZmFsbFRocm91Z2goKTsKKyAgICAgICAgCisgICAgICAgIC8vIEl0J3MgYSBn
b29kIGlkZWEgdG8gdXNlIGEgdGFibGUtYmFzZWQgc3dpdGNoIGluIHNvbWUgY2FzZXM6IHRoZSBu
dW1iZXIgb2YgY2FzZXMgaGFzIHRvIGJlCisgICAgICAgIC8vIGxhcmdlIGVub3VnaCBhbmQgdGhl
eSBoYXZlIHRvIGJlIGRlbnNlIGVub3VnaC4gVGhpcyBjb3VsZCBwcm9iYWJseSBiZSBpbXByb3Zl
ZCBhIGxvdC4gRm9yCisgICAgICAgIC8vIGV4YW1wbGUsIHdlIGNvdWxkIHN0aWxsIHVzZSBhIGp1
bXAgdGFibGUgaW4gY2FzZXMgd2hlcmUgdGhlIGlucHV0cyBhcmUgc3BhcnNlIHNvIGxvbmcgYXMg
d2UKKyAgICAgICAgLy8gc2hpZnQgb2ZmIHRoZSB1bmludGVyZXN0aW5nIGJpdHMuIE9uIHRoZSBv
dGhlciBoYW5kLCBpdCdzIG5vdCBjbGVhciB0aGF0IHRoaXMgd291bGQKKyAgICAgICAgLy8gYWN0
dWFsbHkgYmUgYW55IGJldHRlciB0aGFuIHdoYXQgd2UgaGF2ZSBkb25lIGhlcmUgYW5kIGl0J3Mg
bm90IGNsZWFyIHRoYXQgaXQgd291bGQgYmUKKyAgICAgICAgLy8gYmV0dGVyIHRoYW4gYSBiaW5h
cnkgc3dpdGNoLgorICAgICAgICBjb25zdCB1bnNpZ25lZCBtaW5DYXNlc0ZvclRhYmxlID0gNzsK
KyAgICAgICAgY29uc3QgdW5zaWduZWQgZGVuc2l0eUxpbWl0ID0gNDsKKyAgICAgICAgaWYgKGVu
ZCAtIHN0YXJ0ID49IG1pbkNhc2VzRm9yVGFibGUpIHsKKyAgICAgICAgICAgIGludDY0X3QgZmly
c3RWYWx1ZSA9IGNhc2VzW3N0YXJ0XS5jYXNlVmFsdWUoKTsKKyAgICAgICAgICAgIGludDY0X3Qg
bGFzdFZhbHVlID0gY2FzZXNbZW5kIC0gMV0uY2FzZVZhbHVlKCk7CisgICAgICAgICAgICBpZiAo
KGxhc3RWYWx1ZSAtIGZpcnN0VmFsdWUgKyAxKSAvIGNhc2VzLnNpemUoKSA8IGRlbnNpdHlMaW1p
dCkgeworICAgICAgICAgICAgICAgIEJhc2ljQmxvY2sqIHN3aXRjaEJsb2NrID0gbV9ibG9ja0lu
c2VydGlvblNldC5pbnNlcnRBZnRlcihtX2Jsb2NrKTsKKyAgICAgICAgICAgICAgICBWYWx1ZSog
aW5kZXggPSBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICAgICAgICAgIG1f
cHJvYywgU3ViLCBtX29yaWdpbiwgY2hpbGQsCisgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+
YXBwZW5kSW50Q29uc3RhbnQobV9wcm9jLCBtX29yaWdpbiwgdHlwZSwgZmlyc3RWYWx1ZSkpOwor
ICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAg
ICAgICAgICAgICAgIG1fcHJvYywgQnJhbmNoLCBtX29yaWdpbiwKKyAgICAgICAgICAgICAgICAg
ICAgYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgICAgICAgICAgICAgbV9w
cm9jLCBBYm92ZSwgbV9vcmlnaW4sIGluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgYmVm
b3JlLT5hcHBlbmRJbnRDb25zdGFudChtX3Byb2MsIG1fb3JpZ2luLCB0eXBlLCBsYXN0VmFsdWUg
LSBmaXJzdFZhbHVlKSksCisgICAgICAgICAgICAgICAgICAgIGZhbGxUaHJvdWdoLCBGcmVxdWVu
dGVkQmxvY2soc3dpdGNoQmxvY2spKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAg
ICBzaXplX3QgdGFibGVTaXplID0gbGFzdFZhbHVlIC0gZmlyc3RWYWx1ZSArIDE7CisgICAgICAg
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKiBqdW1wVGFibGUgPSBiaXR3aXNlX2Nhc3Q8
TWFjcm9Bc3NlbWJsZXJDb2RlUHRyKj4oCisgICAgICAgICAgICAgICAgICAgIG1fcHJvYy5hZGRE
YXRhU2VjdGlvbihzaXplb2YoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKSAqIHRhYmxlU2l6ZSkpOwor
ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFZhbHVlKiBiYXNlID0gc3dpdGNoQmxv
Y2stPmFwcGVuZEludENvbnN0YW50KAorICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIG1fb3Jp
Z2luLCBwb2ludGVyVHlwZSgpLCBiaXR3aXNlX2Nhc3Q8aW50cHRyX3Q+KGp1bXBUYWJsZSkpOwor
ICAgICAgICAgICAgICAgIGlmIChpbmRleC0+dHlwZSgpICE9IGJhc2UtPnR5cGUoKSkgeworICAg
ICAgICAgICAgICAgICAgICBpZiAoaW5kZXgtPnR5cGUoKSA9PSBJbnQzMikKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGluZGV4ID0gc3dpdGNoQmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9j
LCBaRXh0MzIsIG1fb3JpZ2luLCBpbmRleCk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gc3dpdGNoQmxvY2stPmFwcGVuZE5ldzxWYWx1
ZT4obV9wcm9jLCBUcnVuYywgbV9vcmlnaW4sIGluZGV4KTsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgaW5kZXggPSBzd2l0Y2hCbG9jay0+YXBwZW5kTmV3PFZhbHVlPigKKyAg
ICAgICAgICAgICAgICAgICAgbV9wcm9jLCBNdWwsIG1fb3JpZ2luLCBpbmRleCwKKyAgICAgICAg
ICAgICAgICAgICAgc3dpdGNoQmxvY2stPmFwcGVuZEludENvbnN0YW50KAorICAgICAgICAgICAg
ICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwgcG9pbnRlclR5cGUoKSwgc2l6ZW9mKE1hY3Jv
QXNzZW1ibGVyQ29kZVB0cikpKTsKKyAgICAgICAgICAgICAgICBWYWx1ZSogcHRyID0gc3dpdGNo
QmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBBZGQsIG1fb3JpZ2luLCBiYXNlLCBpbmRl
eCk7CisgICAgICAgICAgICAgICAgVmFsdWUqIGp1bXBUYXJnZXQgPQorICAgICAgICAgICAgICAg
ICAgICBzd2l0Y2hCbG9jay0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihtX3Byb2MsIExvYWQsIHBv
aW50ZXJUeXBlKCksIG1fb3JpZ2luLCBwdHIpOworICAgICAgICAgICAgICAgIFBvbHlKdW1wVmFs
dWUqIHBvbHlKdW1wID0KKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoQmxvY2stPmFwcGVuZE5l
dzxQb2x5SnVtcFZhbHVlPihtX3Byb2MsIG1fb3JpZ2luLCBqdW1wVGFyZ2V0KTsKKyAgICAgICAg
ICAgICAgICAKKyAgICAgICAgICAgICAgICBCaXRWZWN0b3IgaGFuZGxlZEluZGljZXM7CisgICAg
ICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gc3RhcnQ7IGkgPCBlbmQ7ICsraSkgeworICAg
ICAgICAgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2sgYmxvY2sgPSBjYXNlc1tpXS50YXJnZXQo
KTsKKyAgICAgICAgICAgICAgICAgICAgaW50NjRfdCB2YWx1ZSA9IGNhc2VzW2ldLmNhc2VWYWx1
ZSgpOworICAgICAgICAgICAgICAgICAgICBwb2x5SnVtcC0+YXBwZW5kU3VjY2Vzc29yKGJsb2Nr
KTsKKyAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGluZGV4ID0gdmFsdWUgLSBmaXJzdFZhbHVl
OworICAgICAgICAgICAgICAgICAgICBBU1NFUlQoIWhhbmRsZWRJbmRpY2VzLmdldChpbmRleCkp
OworICAgICAgICAgICAgICAgICAgICBoYW5kbGVkSW5kaWNlcy5zZXQoaW5kZXgpOworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBib29sIGhhc1Vu
aGFuZGxlZEluZGV4ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IHRhYmxlU2l6ZTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghaGFuZGxl
ZEluZGljZXMuZ2V0KGkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBoYXNVbmhhbmRsZWRJ
bmRleCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAg
ICAgICAgICBpZiAoaGFzVW5oYW5kbGVkSW5kZXgpCisgICAgICAgICAgICAgICAgICAgIHBvbHlK
dW1wLT5hcHBlbmRTdWNjZXNzb3IoZmFsbFRocm91Z2gpOworICAgICAgICAgICAgICAgIAorICAg
ICAgICAgICAgICAgIHBvbHlKdW1wLT5zZXRDYWxsYmFjaygKKyAgICAgICAgICAgICAgICAgICAg
Wz1dIChjb25zdCBWZWN0b3I8TWFjcm9Bc3NlbWJsZXJDb2RlUHRyPiYgcG9pbnRlcnMpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBwb2ludGVySW5kZXggPSAwOworICAgICAgICAg
ICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaW5kZXggOiBoYW5kbGVkSW5kaWNlcykKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBqdW1wVGFibGVbaW5kZXhdID0gcG9pbnRlcnNbcG9pbnRl
ckluZGV4KytdOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAoaGFzVW5oYW5kbGVkSW5kZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRhYmxlU2l6ZTsgKytpKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmICghaGFuZGxlZEluZGljZXMuZ2V0KGkpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAganVtcFRhYmxlW2ldID0gcG9pbnRlcnNbcG9pbnRl
ckluZGV4XTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcG9pbnRlckluZGV4Kys7CisgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0Vf
QVNTRVJUKHBvaW50ZXJJbmRleCA9PSBwb2ludGVycy5zaXplKCkpOworICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAg
IH0KICAgICAgICAgCiAgICAgICAgIC8vIFNlZSBjb21tZW50cyBpbiBqaXQvQmluYXJ5U3dpdGNo
LmNwcCBmb3IgYSBqdXN0aWZpY2F0aW9uIG9mIHRoaXMgYWxnb3JpdGhtLiBUaGUgb25seQogICAg
ICAgICAvLyB0aGluZyB3ZSBkbyBkaWZmZXJlbnRseSBpcyB0aGF0IHdlIGRvbid0IHVzZSByYW5k
b21uZXNzLgpAQCAtMzA3LDIyICszOTYsMTkgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBi
ZWZvcmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAogICAgICAgICAgICAgICAgICAgICBtX3By
b2MsIEJyYW5jaCwgbV9vcmlnaW4sCiAgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5k
TmV3PFZhbHVlPigKLSAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgRXF1YWwsIG1fb3Jp
Z2luLCBtX3ZhbHVlLT5jaGlsZCgwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywg
RXF1YWwsIG1fb3JpZ2luLCBjaGlsZCwKICAgICAgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+
YXBwZW5kSW50Q29uc3RhbnQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBt
X29yaWdpbiwgbV92YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLCB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNhc2VzW3N0YXJ0ICsgaV0uY2FzZVZhbHVlKCkpKSwKICAgICAgICAgICAgICAgICAgICAg
Y2FzZXNbc3RhcnQgKyBpXS50YXJnZXQoKSwgRnJlcXVlbnRlZEJsb2NrKG5leHRDaGVjaykpOwog
CiAgICAgICAgICAgICAgICAgYmVmb3JlID0gbmV4dENoZWNrOwogICAgICAgICAgICAgfQogCi0g
ICAgICAgICAgICBpZiAoYWxsQ29uc2VjdXRpdmUpIHsKLSAgICAgICAgICAgICAgICBiZWZvcmUt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAotICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIEp1
bXAsIG1fb3JpZ2luLCBjYXNlc1tlbmQgLSAxXS50YXJnZXQoKSk7Ci0gICAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCi0g
ICAgICAgICAgICAgICAgICAgIG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIG1fdmFsdWUtPmFzPFN3
aXRjaFZhbHVlPigpLT5mYWxsVGhyb3VnaCgpKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGlmIChhbGxDb25zZWN1dGl2ZSkKKyAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIGNhc2VzW2VuZCAtIDFdLnRhcmdl
dCgpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIGZhbGxUaHJvdWdoKTsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC0zMzQsOSArNDIwLDkgQEAgcHJpdmF0
ZToKICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKICAgICAgICAgICAg
IG1fcHJvYywgQnJhbmNoLCBtX29yaWdpbiwKICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3
PFZhbHVlPigKLSAgICAgICAgICAgICAgICBtX3Byb2MsIExlc3NUaGFuLCBtX29yaWdpbiwgbV92
YWx1ZS0+Y2hpbGQoMCksCisgICAgICAgICAgICAgICAgbV9wcm9jLCBMZXNzVGhhbiwgbV9vcmln
aW4sIGNoaWxkLAogICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kSW50Q29uc3RhbnQoCi0g
ICAgICAgICAgICAgICAgICAgIG1fcHJvYywgbV9vcmlnaW4sIG1fdmFsdWUtPmNoaWxkKDApLT50
eXBlKCksCisgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgbV9vcmlnaW4sIHR5cGUsCiAgICAg
ICAgICAgICAgICAgICAgIGNhc2VzW21lZGlhbkluZGV4XS5jYXNlVmFsdWUoKSkpLAogICAgICAg
ICAgICAgRnJlcXVlbnRlZEJsb2NrKGxlZnQpLCBGcmVxdWVudGVkQmxvY2socmlnaHQpKTsKIApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAJKHJldmlzaW9u
IDIwMTQ5NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xNTUsNyArMTU1LDYgQEAgcHVibGljOgogICAgICAgICAgICAgfQog
CiAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCB0aGUgc3VjY2Vzc29ycyBhcmUgc2V0IHVw
IGNvcnJlY3RseS4KLSAgICAgICAgICAgIEFTU0VSVChibG9jay0+c3VjY2Vzc29ycygpLnNpemUo
KSA8PSAyKTsKICAgICAgICAgICAgIGZvciAoQjM6OkZyZXF1ZW50ZWRCbG9jayBzdWNjZXNzb3Ig
OiBibG9jay0+c3VjY2Vzc29ycygpKSB7CiAgICAgICAgICAgICAgICAgbV9ibG9ja1RvQmxvY2tb
YmxvY2tdLT5zdWNjZXNzb3JzKCkuYXBwZW5kKAogICAgICAgICAgICAgICAgICAgICBBaXI6OkZy
ZXF1ZW50ZWRCbG9jayhtX2Jsb2NrVG9CbG9ja1tzdWNjZXNzb3IuYmxvY2soKV0sIHN1Y2Nlc3Nv
ci5mcmVxdWVuY3koKSkpOwpAQCAtMjQ0MSw2ICsyNDQwLDE2IEBAIHByaXZhdGU6CiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAg
ICAgICBjYXNlIEIzOjpQb2x5SnVtcDogeworICAgICAgICAgICAgQXJnUHJvbWlzZSBhZGRyID0g
bG9hZFByb21pc2UobV92YWx1ZS0+Y2hpbGQoMCkpOworICAgICAgICAgICAgaWYgKGlzVmFsaWRG
b3JtKEFpcjo6UG9seUp1bXAsIGFkZHIua2luZCgpKSkgeworICAgICAgICAgICAgICAgIGFwcGVu
ZChBaXI6OlBvbHlKdW1wLCBhZGRyLmNvbnN1bWUoKnRoaXMpKTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBhcHBlbmQoQWlyOjpQb2x5SnVtcCwg
dG1wKG1fdmFsdWUtPmNoaWxkKDApKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
IAogICAgICAgICBjYXNlIEIzOjpPb3BzOiB7CiAgICAgICAgICAgICBhcHBlbmQoQWlyOjpPb3Bz
KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmNwcAkocmV2aXNpb24gMjAx
NDk0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjkwLDYgKzI5MCw5IEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYg
b3V0LCBPcGMKICAgICBjYXNlIFN3aXRjaDoKICAgICAgICAgb3V0LnByaW50KCJTd2l0Y2giKTsK
ICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgUG9seUp1bXA6CisgICAgICAgIG91dC5wcmludCgi
UG9seUp1bXAiKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgUmV0dXJuOgogICAgICAgICBv
dXQucHJpbnQoIlJldHVybiIpOwogICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNPcGNvZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNPcGNvZGUuaAkocmV2aXNpb24gMjAxNDk0KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzT3Bjb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxNiw2ICsyMTYsMTMgQEAgZW51
bSBPcGNvZGUgOiBpbnQxNl90IHsKIAogICAgIC8vIFN3aXRjaC4gU3dpdGNoZXMgb3ZlciBlaXRo
ZXIgSW50MzIgb3IgSW50NjQuIFVzZXMgdGhlIFN3aXRjaFZhbHVlIGNsYXNzLgogICAgIFN3aXRj
aCwKKyAgICAKKyAgICAvLyBKdW1wIHRvIHRoZSBnaXZlbiBhZGRyZXNzLiBUaGUgY29tcGlsZXIg
YXNzdW1lcyB0aGF0IHRoaXMgd2lsbCBqdW1wIHRvIG9uZSBvZiB0aGUgc3VwcGxpZWQKKyAgICAv
LyBzdWNjZXNzb3JzLCBidXQgd2lsbCBtYWtlIGFic29sdXRlbHkgbm8gYXNzdW1wdGlvbnMgYWJv
dXQgd2hpY2guIEl0J3MgZW50aXJlbHkgdXAgdG8gdGhlIHVzZXIKKyAgICAvLyB0byBhcnJhbmdl
IGZvciB0aGUganVtcCB0byBqdW1wIHRvIG9uZSBvZiB0aG9zZSBzdWNjZXNzb3JzLiBUaGlzIGNh
bm5vdCB0cmFwIG9yIGRvIGFueXRoaW5nIGJ1dAorICAgIC8vIGp1bXAgdG8gb25lIG9mIHRoZSBz
dWNjZXNzb3JzOyBpZiBpdCBkb2VzIGFueXRoaW5nIGVsc2UgdGhlbiBkZW1vbnMgd2lsbCBjb21l
IG91dCBvZiB0aGUgdXNlcidzCisgICAgLy8gbm9zZS4gCisgICAgUG9seUp1bXAsCiAKICAgICAv
LyBSZXR1cm4uIE5vdGUgdGhhdCBCMyBwcm9jZWR1cmVzIGRvbid0IGtub3cgdGhlaXIgcmV0dXJu
IHR5cGUsIHNvIHRoaXMgY2FuIGp1c3QgcmV0dXJuIGFueQogICAgIC8vIHR5cGUuIFVzZXMgdGhl
IENvbnRyb2xWYWx1ZSBjbGFzcy4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Bv
bHlKdW1wVmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1BvbHlKdW1wVmFsdWUuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzUG9seUp1bXBWYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3NCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiQjNQb2x5SnVtcFZhbHVlLmgiCisKKyNpZiBFTkFCTEUoQjNf
SklUKQorCisjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrLmgiCisKK25hbWVzcGFjZSBKU0MgeyBuYW1l
c3BhY2UgQjMgeworCitQb2x5SnVtcFZhbHVlOjp+UG9seUp1bXBWYWx1ZSgpCit7Cit9CisKK3Zv
aWQgUG9seUp1bXBWYWx1ZTo6YXBwZW5kU3VjY2Vzc29yKGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYg
YmxvY2spCit7CisgICAgbV9zdWNjZXNzb3JzLmFwcGVuZChibG9jayk7Cit9CisKK3ZvaWQgUG9s
eUp1bXBWYWx1ZTo6c2V0Q2FsbGJhY2tUYXNrKFJlZlB0cjxTaGFyZWRUYXNrPENhbGxiYWNrRnVu
Y3Rpb25UeXBlPj4gdGFzaykKK3sKKyAgICBtX3Rhc2sgPSB0YXNrOworfQorCitib29sIFBvbHlK
dW1wVmFsdWU6OmlzQ2xvbmVhYmxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisK
K3ZvaWQgUG9seUp1bXBWYWx1ZTo6ZHVtcE1ldGEoQ29tbWFQcmludGVyJiBjb21tYSwgUHJpbnRT
dHJlYW0mIG91dCkgY29uc3QKK3sKKyAgICBDb250cm9sVmFsdWU6OmR1bXBNZXRhKGNvbW1hLCBv
dXQpOworICAgIG91dC5wcmludChjb21tYSwgInRhc2sgPSAiLCBSYXdQb2ludGVyKG1fdGFzay5n
ZXQoKSkpOworfQorCitWYWx1ZSogUG9seUp1bXBWYWx1ZTo6Y2xvbmVJbXBsKCkgY29uc3QKK3sK
KyAgICBkYXRhTG9nKCJGQVRBTDogQXR0ZW1wdCB0byBjbG9uZSBub24tY2xvbmVhYmxlIFBvbHlK
dW1wVmFsdWUhXG4iKTsKKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCitQ
b2x5SnVtcFZhbHVlOjpQb2x5SnVtcFZhbHVlKE9yaWdpbiBvcmlnaW4sIFZhbHVlKiBjaGlsZCkK
KyAgICA6IENvbnRyb2xWYWx1ZShQb2x5SnVtcCwgVm9pZCwgb3JpZ2luLCBjaGlsZCkKK3sKK30K
KworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzCisKKyNlbmRpZiAvLyBFTkFCTEUoQjNfSklUKQor
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQb2x5SnVtcFZhbHVlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUG9seUp1bXBWYWx1ZS5oCShyZXZp
c2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUG9seUp1bXBWYWx1ZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBCM1BvbHlKdW1wVmFsdWVfaAorI2RlZmluZSBC
M1BvbHlKdW1wVmFsdWVfaAorCisjaWYgRU5BQkxFKEIzX0pJVCkKKworI2luY2x1ZGUgIkIzQ29u
dHJvbFZhbHVlLmgiCisjaW5jbHVkZSA8d3RmL1NoYXJlZFRhc2suaD4KKworbmFtZXNwYWNlIEpT
QyB7IG5hbWVzcGFjZSBCMyB7CisKK2NsYXNzIFBvbHlKdW1wVmFsdWUgOiBwdWJsaWMgQ29udHJv
bFZhbHVlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgYm9vbCBhY2NlcHRzKE9wY29kZSBvcGNvZGUp
IHsgcmV0dXJuIG9wY29kZSA9PSBQb2x5SnVtcDsgfQorICAgIAorICAgIH5Qb2x5SnVtcFZhbHVl
KCk7CisgICAgCisgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBhcHBlbmRTdWNjZXNzb3IoY29u
c3QgRnJlcXVlbnRlZEJsb2NrJik7CisgICAgCisgICAgdHlwZWRlZiB2b2lkIENhbGxiYWNrRnVu
Y3Rpb25UeXBlKGNvbnN0IFZlY3RvcjxNYWNyb0Fzc2VtYmxlckNvZGVQdHI+Jik7CisgICAgCisg
ICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBzZXRDYWxsYmFja1Rhc2soUmVmUHRyPFNoYXJlZFRh
c2s8Q2FsbGJhY2tGdW5jdGlvblR5cGU+PiB0YXNrKTsKKyAgICAKKyAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBGdW5jPgorICAgIHZvaWQgc2V0Q2FsbGJhY2soY29uc3QgRnVuYyYgZnVuYykKKyAgICB7
CisgICAgICAgIHNldENhbGxiYWNrVGFzayhjcmVhdGVTaGFyZWRUYXNrPENhbGxiYWNrRnVuY3Rp
b25UeXBlPihmdW5jKSk7CisgICAgfQorICAgIAorICAgIFNoYXJlZFRhc2s8Q2FsbGJhY2tGdW5j
dGlvblR5cGU+KiBjYWxsYmFja1Rhc2soKSBjb25zdCB7IHJldHVybiBtX3Rhc2suZ2V0KCk7IH0K
KyAgICAKKyAgICBib29sIGlzQ2xvbmVhYmxlKCkgY29uc3Qgb3ZlcnJpZGU7CisKK3Byb3RlY3Rl
ZDoKKyAgICB2b2lkIGR1bXBNZXRhKENvbW1hUHJpbnRlciYsIFByaW50U3RyZWFtJikgY29uc3Qg
b3ZlcnJpZGU7CisgICAgCisgICAgVmFsdWUqIGNsb25lSW1wbCgpIGNvbnN0IG92ZXJyaWRlOwor
Citwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBQcm9jZWR1cmU7CisgICAgCisgICAgSlNfRVhQ
T1JUX1BSSVZBVEUgUG9seUp1bXBWYWx1ZShPcmlnaW4sIFZhbHVlKiBjaGlsZCk7CisgICAgCisg
ICAgUmVmUHRyPFNoYXJlZFRhc2s8Q2FsbGJhY2tGdW5jdGlvblR5cGU+PiBtX3Rhc2s7Cit9Owor
Cit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKKworI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCisK
KyNlbmRpZiAvLyBCM1BvbHlKdW1wVmFsdWVfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNQcm9jZWR1cmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM1Byb2NlZHVyZS5jcHAJKHJldmlzaW9uIDIwMTQ5NCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgyLDYgKzgyLDgg
QEAgVmFyaWFibGUqIFByb2NlZHVyZTo6YWRkVmFyaWFibGUoVHlwZSB0eQogCiBWYWx1ZSogUHJv
Y2VkdXJlOjpjbG9uZShWYWx1ZSogdmFsdWUpCiB7CisgICAgQVNTRVJUKHZhbHVlLT5pc0Nsb25l
YWJsZSgpKTsKKyAgICAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmFsdWU+IGNsb25lKHZhbHVlLT5j
bG9uZUltcGwoKSk7CiAgICAgY2xvbmUtPm1faW5kZXggPSBVSU5UX01BWDsKICAgICBjbG9uZS0+
b3duZXIgPSBudWxscHRyOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2Vk
dXJlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJl
LmgJKHJldmlzaW9uIDIwMTQ5NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2Nl
ZHVyZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsNiArMTAxLDcgQEAgcHVibGljOgogICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5hbWUuLi4gQXJndW1lbnRzPgogICAgIFZh
bHVlVHlwZSogYWRkKEFyZ3VtZW50cy4uLik7CiAKKyAgICAvLyBOb3RlIHRoYXQgbm90IGFsbCB2
YWx1ZXMgYXJlIGNsb25lYWJsZS4gQ2hlY2sgVmFsdWU6OmlzQ2xvbmVhYmxlKCkgYmVmb3JlIHBy
b2NlZWRpbmcuCiAgICAgVmFsdWUqIGNsb25lKFZhbHVlKik7CiAKICAgICBWYWx1ZSogYWRkSW50
Q29uc3RhbnQoT3JpZ2luLCBUeXBlLCBpbnQ2NF90IHZhbHVlKTsKQEAgLTIxOCw2ICsyMTksOSBA
QCBwdWJsaWM6CiAKICAgICBjb25zdCBjaGFyKiBsYXN0UGhhc2VOYW1lKCkgY29uc3QgeyByZXR1
cm4gbV9sYXN0UGhhc2VOYW1lOyB9CiAKKyAgICAvLyBBbGxvY2F0ZXMgYSBzbGFiIG9mIG1lbW9y
eSB0aGF0IHdpbGwgYmUga2VwdCBhbGl2ZSBieSBhbnlvbmUgd2hvIGtlZXBzIHRoZSByZXN1bHRp
bmcgY29kZQorICAgIC8vIGFsaXZlLiBHcmVhdCBmb3IgY29tcGlsZXItZ2VuZXJhdGVkIGRhdGEg
c2VjdGlvbnMsIGxpa2Ugc3dpdGNoIGp1bXAgdGFibGVzIGFuZCBjb25zdGFudCBwb29scy4KKyAg
ICAvLyBUaGlzIHJldHVybnMgbWVtb3J5IHRoYXQgaGFzIGJlZW4gemVyby1pbml0aWFsaXplZC4K
ICAgICB2b2lkKiBhZGREYXRhU2VjdGlvbihzaXplX3Qgc2l6ZSk7CiAKICAgICBPcGFxdWVCeXBy
b2R1Y3RzJiBieXByb2R1Y3RzKCkgeyByZXR1cm4gKm1fYnlwcm9kdWN0czsgfQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcAkocmV2aXNpb24g
MjAxNDk0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xNzczLDcgKzE3NzMsMTcgQEAgcHJpdmF0ZToKICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIHZhbHVlLT5vcGNvZGUoKSA9PSBTZWxlY3QKICAgICAgICAgICAg
ICAgICAgICAgICAgICYmICh2YWx1ZS0+Y2hpbGQoMSktPmlzQ29uc3RhbnQoKSAmJiB2YWx1ZS0+
Y2hpbGQoMiktPmlzQ29uc3RhbnQoKSk7CiAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAg
ICBpZiAoc2VsZWN0KSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0
aGF0IHRoZSByZWxldmFudCBjb2RlIGlzIGNsb25lYWJsZS4KKyAgICAgICAgICAgIGJvb2wgYWxs
QXJlQ2xvbmVhYmxlID0gdHJ1ZTsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgaW5kZXggPSBt
X2luZGV4ICsgMTsgaW5kZXgtLTspIHsKKyAgICAgICAgICAgICAgICBWYWx1ZSogdmFsdWUgPSBt
X2Jsb2NrLT5hdChpbmRleCk7CisgICAgICAgICAgICAgICAgYWxsQXJlQ2xvbmVhYmxlICY9IHZh
bHVlLT5pc0Nsb25lYWJsZSgpOworICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBzZWxlY3Qp
CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
CisgICAgICAgICAgICBpZiAoc2VsZWN0ICYmIGFsbEFyZUNsb25lYWJsZSkgewogICAgICAgICAg
ICAgICAgIHNwZWNpYWxpemVTZWxlY3Qoc2VsZWN0KTsKICAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbGlkYXRl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWxpZGF0ZS5j
cHAJKHJldmlzaW9uIDIwMTQ5NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbGlk
YXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzg3LDYgKzM4NywxMSBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICAgICAgVkFMSURBVEUoaXNJbnQodmFsdWUtPmNoaWxkKDApLT50eXBlKCkpLCAoIkF0
ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgPT0g
Vm9pZCwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgUG9seUp1bXA6CisgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPm51bUNo
aWxkcmVuKCkgPT0gMSwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFU
RSh2YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSA9PSBwb2ludGVyVHlwZSgpLCAoIkF0ICIsICp2YWx1
ZSkpOworICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgPT0gVm9pZCwgKCJB
dCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KIAog
ICAgICAgICAgICAgVkFMSURBVEUoISh2YWx1ZS0+ZWZmZWN0cygpLndyaXRlcyAmJiB2YWx1ZS0+
a2V5KCkpLCAoIkF0ICIsICp2YWx1ZSkpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzVmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Zh
bHVlLmNwcAkocmV2aXNpb24gMjAxNDk0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
VmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NDAsNiArNTQwLDcgQEAgRWZmZWN0cyBWYWx1
ZTo6ZWZmZWN0cygpIGNvbnN0CiAgICAgY2FzZSBKdW1wOgogICAgIGNhc2UgQnJhbmNoOgogICAg
IGNhc2UgU3dpdGNoOgorICAgIGNhc2UgUG9seUp1bXA6CiAgICAgY2FzZSBSZXR1cm46CiAgICAg
Y2FzZSBPb3BzOgogICAgICAgICByZXN1bHQudGVybWluYWwgPSB0cnVlOwpAQCAtNTQ4LDYgKzU0
OSwxMSBAQCBFZmZlY3RzIFZhbHVlOjplZmZlY3RzKCkgY29uc3QKICAgICByZXR1cm4gcmVzdWx0
OwogfQogCitib29sIFZhbHVlOjppc0Nsb25lYWJsZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRy
dWU7Cit9CisKIFZhbHVlS2V5IFZhbHVlOjprZXkoKSBjb25zdAogewogICAgIHN3aXRjaCAob3Bj
b2RlKCkpIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuaAkocmV2aXNpb24gMjAx
NDk0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuaAkod29ya2luZyBjb3B5
KQpAQCAtMjAwLDYgKzIwMCwxMSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0xpa2VOb25aZXJvKCkg
Y29uc3QgeyByZXR1cm4gYXNUcmlTdGF0ZSgpID09IFRydWVUcmlTdGF0ZTsgfQogCiAgICAgRWZm
ZWN0cyBlZmZlY3RzKCkgY29uc3Q7CisgICAgCisgICAgLy8gU29tZSBvcGVyYXRpb25zIHdpbGwg
cmVmdXNlIHRvIGJlIGNsb25lZC4gVGhpcyBoYXBwZW5zIHdoZW4gdGhlIG9wZXJhdGlvbiBoYXMg
c29tZSBpbnNpZGUKKyAgICAvLyBrbm93bGVkZ2UgYWJvdXQgdGhlIHJlbGF0aW9uc2hpcCBiZXR3
ZWVuIGl0cyBpZGVudGl0eSBhbmQgdGhlIGlkZW50aXR5IG9mIHRoZSBjb2RlIGl0IHdpbGwKKyAg
ICAvLyBnZW5lcmF0ZS4KKyAgICB2aXJ0dWFsIGJvb2wgaXNDbG9uZWFibGUoKSBjb25zdDsKIAog
ICAgIC8vIFRoaXMgcmV0dXJucyBhIFZhbHVlS2V5IHRoYXQgZGVzY3JpYmVzIHRoYXQgdGhpcyBW
YWx1ZSByZXR1cm5zIHdoZW4gaXQgZXhlY3V0ZXMuIFJldHVybnMgYW4KICAgICAvLyBlbXB0eSBW
YWx1ZUtleSBpZiB0aGlzIFZhbHVlIGlzIGltcHVyZS4gTm90ZSB0aGF0IGFuIG9wZXJhdGlvbiB0
aGF0IHJldHVybnMgVm9pZCBjb3VsZCBzdGlsbApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL3Rlc3RiMy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rl
c3RiMy5jcHAJKHJldmlzaW9uIDIwMTQ5NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90
ZXN0YjMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiQjND
b25zdFB0clZhbHVlLmgiCiAjaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKICNpbmNsdWRlICJC
M0VmZmVjdHMuaCIKKyNpbmNsdWRlICJCM1BvbHlKdW1wVmFsdWUuaCIKICNpbmNsdWRlICJCM01h
dGhFeHRyYXMuaCIKICNpbmNsdWRlICJCM01lbW9yeVZhbHVlLmgiCiAjaW5jbHVkZSAiQjNQcm9j
ZWR1cmUuaCIKQEAgLTQ0LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJCM1N3aXRjaFZhbHVlLmgiCiAj
aW5jbHVkZSAiQjNVcHNpbG9uVmFsdWUuaCIKICNpbmNsdWRlICJCM1ZhbHVlSW5saW5lcy5oIgor
I2luY2x1ZGUgIkIzVmFyaWFibGVWYWx1ZS5oIgogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgog
I2luY2x1ZGUgIkluaXRpYWxpemVUaHJlYWRpbmcuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgi
CkBAIC01Miw2ICs1NCw3IEBACiAjaW5jbHVkZSAiVk0uaCIKICNpbmNsdWRlIDxjbWF0aD4KICNp
bmNsdWRlIDxzdHJpbmc+CisjaW5jbHVkZSA8d3RmL0xpc3REdW1wLmg+CiAjaW5jbHVkZSA8d3Rm
L0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTnVtYmVyT2ZDb3Jlcy5oPgogI2luY2x1ZGUgPHd0Zi9U
aHJlYWRpbmcuaD4KQEAgLTczLDYgKzc2LDExIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M6OkIzOwog
CiBuYW1lc3BhY2UgewogCitib29sIHNob3VsZEJlVmVyYm9zZSgpCit7CisgICAgcmV0dXJuIHNo
b3VsZER1bXBJUihCM01vZGUpOworfQorCiBTdGF0aWNMb2NrIGNyYXNoTG9jazsKIAogLy8gTm90
aGluZyBmYW5jeSBmb3Igbm93OyB3ZSBqdXN0IHVzZSB0aGUgZXhpc3RpbmcgV1RGIGFzc2VydGlv
biBtYWNoaW5lcnkuCkBAIC0xMDEyOCw3ICsxMDEzNiwxMCBAQCB2b2lkIHRlc3RTd2l0Y2hDaGls
bERpdih1bnNpZ25lZCBkZWdyZWUsCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIAog
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBkZWdyZWU7ICsraSkgewotICAgICAgICBDSEVD
SyhpbnZva2U8aW50MzJfdD4oKmNvZGUsIGkgKiBnYXAsIDQyLCAxMSkgPT0gKChpICYgMSkgPyAx
MS80MiA6IDQyLzExKSk7CisgICAgICAgIGRhdGFMb2coImkgPSAiLCBpLCAiXG4iKTsKKyAgICAg
ICAgaW50MzJfdCByZXN1bHQgPSBpbnZva2U8aW50MzJfdD4oKmNvZGUsIGkgKiBnYXAsIDQyLCAx
MSk7CisgICAgICAgIGRhdGFMb2coInJlc3VsdCA9ICIsIHJlc3VsdCwgIlxuIik7CisgICAgICAg
IENIRUNLKHJlc3VsdCA9PSAoKGkgJiAxKSA/IDExLzQyIDogNDIvMTEpKTsKICAgICAgICAgaWYg
KGdhcCA+IDEpIHsKICAgICAgICAgICAgIENIRUNLKCFpbnZva2U8aW50MzJfdD4oKmNvZGUsIGkg
KiBnYXAgKyAxLCA0MiwgMTEpKTsKICAgICAgICAgICAgIENIRUNLKCFpbnZva2U8aW50MzJfdD4o
KmNvZGUsIGkgKiBnYXAgLSAxLCA0MiwgMTEpKTsKQEAgLTEyMDUwLDYgKzEyMDYxLDIzMSBAQCB2
b2lkIHRlc3RMYXRlUmVnaXN0ZXIoKQogICAgIENIRUNLKGludm9rZTx1aW50NjRfdD4oKmNvZGUp
ID09IHJlc3VsdCk7CiB9CiAKK3ZvaWQgdGhyZWFkZWRJbnRlcnByZXRlclByaW50KFZlY3Rvcjxp
bnRwdHJfdD4qIHN0cmVhbSwgaW50cHRyX3QgdmFsdWUpCit7CisgICAgc3RyZWFtLT5hcHBlbmQo
dmFsdWUpOworfQorCit2b2lkIHRlc3RUaHJlYWRlZEludGVycHJldGVyKCkKK3sKKyAgICAvLyBU
aGlzIGNyZWF0ZXMgYSBwb29yIG1hbidzIHRocmVhZGVkIGludGVycHJldGVyIHVzaW5nIFBvbHlK
dW1wIGFuZCBzZWVzIGlmIGl0IHdvcmtzLiBOb3RlCisgICAgLy8gdGhhdCBQb2x5SnVtcCBpcyBu
b3QgbGlrZSBpbmRpcmVjdCBicmFuY2hlcyBpbiBMTFZNLCBzbyB5b3UgY2FuJ3QgYWN0dWFsbHkg
dXNlIGl0IHRvCisgICAgLy8gaW1wbGVtZW50IGEgcHJvcGVyIHRocmVhZGVkIGludGVycHJldGVy
LiBUaGlzIGNoZWF0czogdGhlIGRpc3BhdGNoIGluc3RydWN0aW9uIGlzIGF0IHRoZSB0b3AKKyAg
ICAvLyBvZiB0aGUgbG9vcC4gVGhpcyBhbHNvIHRlc3RzIFZhcmlhYmxlVmFsdWUuCisgICAgCisg
ICAgUHJvY2VkdXJlIHByb2M7CisgICAgCisgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKKyAgICBCYXNpY0Jsb2NrKiBkaXNwYXRjaCA9IHByb2MuYWRkQmxvY2soKTsKKyAg
ICBCYXNpY0Jsb2NrKiBhZGRUb0RhdGFQb2ludGVyID0gcHJvYy5hZGRCbG9jaygpOworICAgIEJh
c2ljQmxvY2sqIGFkZFRvQ29kZVBvaW50ZXIgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNC
bG9jayogYWRkVG9Db2RlUG9pbnRlclRha2VuID0gcHJvYy5hZGRCbG9jaygpOworICAgIEJhc2lj
QmxvY2sqIGFkZFRvQ29kZVBvaW50ZXJOb3RUYWtlbiA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBC
YXNpY0Jsb2NrKiBhZGRUb0RhdGEgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayog
cHJpbnQgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayogc3RvcCA9IHByb2MuYWRk
QmxvY2soKTsKKyAgICAKKyAgICBWYXJpYWJsZSogZGF0YVBvaW50ZXIgPSBwcm9jLmFkZFZhcmlh
YmxlKHBvaW50ZXJUeXBlKCkpOworICAgIFZhcmlhYmxlKiBjb2RlUG9pbnRlciA9IHByb2MuYWRk
VmFyaWFibGUocG9pbnRlclR5cGUoKSk7CisgICAgCisgICAgcm9vdC0+YXBwZW5kTmV3PFZhcmlh
YmxlVmFsdWU+KAorICAgICAgICBwcm9jLCBTZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRlciwKKyAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApKTsKKyAgICByb290LT5hcHBlbmROZXc8VmFyaWFibGVWYWx1
ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyLAorICAgICAgICBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMSkpOworICAgIFZhbHVlKiBjb250ZXh0ID0gcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpOwor
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBG
cmVxdWVudGVkQmxvY2soZGlzcGF0Y2gpKTsKKyAgICAKKyAgICBQb2x5SnVtcFZhbHVlKiBwb2x5
SnVtcCA9IGRpc3BhdGNoLT5hcHBlbmROZXc8UG9seUp1bXBWYWx1ZT4oCisgICAgICAgIHByb2Ms
IE9yaWdpbigpLAorICAgICAgICBkaXNwYXRjaC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAg
ICAgICAgICAgIHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLAorICAgICAgICAg
ICAgZGlzcGF0Y2gtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPigKKyAgICAgICAgICAgICAgICBw
cm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIpKSk7CisgICAgcG9seUp1bXAtPmFw
cGVuZFN1Y2Nlc3NvcihGcmVxdWVudGVkQmxvY2soYWRkVG9EYXRhUG9pbnRlcikpOworICAgIHBv
bHlKdW1wLT5hcHBlbmRTdWNjZXNzb3IoRnJlcXVlbnRlZEJsb2NrKGFkZFRvQ29kZVBvaW50ZXIp
KTsKKyAgICBwb2x5SnVtcC0+YXBwZW5kU3VjY2Vzc29yKEZyZXF1ZW50ZWRCbG9jayhhZGRUb0Rh
dGEpKTsKKyAgICBwb2x5SnVtcC0+YXBwZW5kU3VjY2Vzc29yKEZyZXF1ZW50ZWRCbG9jayhwcmlu
dCkpOworICAgIHBvbHlKdW1wLT5hcHBlbmRTdWNjZXNzb3IoRnJlcXVlbnRlZEJsb2NrKHN0b3Ap
KTsKKyAgICAKKyAgICAvLyBPdXIgIm9wY29kZXMiLiBUaGV5IHdpbGwgaGF2ZSBtZWFuaW5nIG9u
Y2Ugd2UgY29tcGlsZS4KKyAgICBpbnRwdHJfdCBBZGREUCA9IDA7CisgICAgaW50cHRyX3QgQWRk
Q1AgPSAwOworICAgIGludHB0cl90IEFkZCA9IDA7CisgICAgaW50cHRyX3QgUHJpbnQgPSAwOwor
ICAgIGludHB0cl90IFN0b3AgPSAwOworICAgIHBvbHlKdW1wLT5zZXRDYWxsYmFjaygKKyAgICAg
ICAgWyZdIChjb25zdCBWZWN0b3I8TWFjcm9Bc3NlbWJsZXJDb2RlUHRyPiYgcG9pbnRlcnMpIHsK
KyAgICAgICAgICAgIGF1dG8gZ2V0ID0gWyZdIChzaXplX3QgaW5kZXgpIC0+IGludHB0cl90IHsK
KyAgICAgICAgICAgICAgICByZXR1cm4gYml0d2lzZV9jYXN0PGludHB0cl90Pihwb2ludGVyc1tp
bmRleF0uZXhlY3V0YWJsZUFkZHJlc3MoKSk7CisgICAgICAgICAgICB9OworICAgICAgICAgICAg
CisgICAgICAgICAgICBBZGREUCA9IGdldCgwKTsKKyAgICAgICAgICAgIEFkZENQID0gZ2V0KDEp
OworICAgICAgICAgICAgQWRkID0gZ2V0KDIpOworICAgICAgICAgICAgUHJpbnQgPSBnZXQoMyk7
CisgICAgICAgICAgICBTdG9wID0gZ2V0KDQpOworICAgICAgICB9KTsKKyAgICAKKyAgICAvLyBB
ZGREUCA8b3BlcmFuZD46IGFkZHMgPG9wZXJhbmQ+IHRvIERQLgorICAgIFZhbHVlKiBjb2RlUG9p
bnRlclZhbHVlID0KKyAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhcmlhYmxl
VmFsdWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlcik7CisgICAgYWRkVG9E
YXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAgICAgICBwcm9jLCBTZXQs
IE9yaWdpbigpLCBkYXRhUG9pbnRlciwKKyAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5k
TmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEIzOjpBZGQsIE9yaWdpbigpLAorICAgICAg
ICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHByb2MsIEIz
OjpHZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRlciksCisgICAgICAgICAgICBhZGRUb0RhdGFQb2lu
dGVyLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgICAgIHByb2MsIE11bCwgT3JpZ2lu
KCksCisgICAgICAgICAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PE1lbW9yeVZh
bHVlPigKKyAgICAgICAgICAgICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3Jp
Z2luKCksIGNvZGVQb2ludGVyVmFsdWUsIHNpemVvZihpbnRwdHJfdCkpLAorICAgICAgICAgICAg
ICAgIGFkZFRvRGF0YVBvaW50ZXItPmFwcGVuZEludENvbnN0YW50KAorICAgICAgICAgICAgICAg
ICAgICBwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6ZW9mKGludHB0cl90KSkpKSk7
CisgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAgICAg
ICBwcm9jLCBTZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlciwKKyAgICAgICAgYWRkVG9EYXRhUG9p
bnRlci0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEIzOjpBZGQsIE9yaWdp
bigpLCBjb2RlUG9pbnRlclZhbHVlLAorICAgICAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBw
ZW5kSW50Q29uc3RhbnQoCisgICAgICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksIHBvaW50ZXJU
eXBlKCksIHNpemVvZihpbnRwdHJfdCkgKiAyKSkpOworICAgIGFkZFRvRGF0YVBvaW50ZXItPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxv
Y2soZGlzcGF0Y2gpKTsKKyAgICAKKyAgICAvLyBBZGRDUCA8b3BlcmFuZD46IGFkZHMgPG9wZXJh
bmQ+IHRvIENQIGlmIHRoZSBjdXJyZW50IHZhbHVlIGF0IERQIGlzIG5vbi16ZXJvLCBvdGhlcndp
c2UKKyAgICAvLyBmYWxscyB0aHJvdWdoIG5vcm1hbGx5LgorICAgIGNvZGVQb2ludGVyVmFsdWUg
PQorICAgICAgICBhZGRUb0NvZGVQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJv
YywgQjM6OkdldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyKTsKKyAgICBWYWx1ZSogZGF0YVBvaW50
ZXJWYWx1ZSA9CisgICAgICAgIGFkZFRvQ29kZVBvaW50ZXItPmFwcGVuZE5ldzxWYXJpYWJsZVZh
bHVlPihwcm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwgZGF0YVBvaW50ZXIpOworICAgIGFkZFRvQ29k
ZVBvaW50ZXItPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICBwcm9jLCBCcmFuY2gs
IE9yaWdpbigpLAorICAgICAgICBhZGRUb0NvZGVQb2ludGVyLT5hcHBlbmROZXc8TWVtb3J5VmFs
dWU+KAorICAgICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCksIGRh
dGFQb2ludGVyVmFsdWUpLAorICAgICAgICBGcmVxdWVudGVkQmxvY2soYWRkVG9Db2RlUG9pbnRl
clRha2VuKSwgRnJlcXVlbnRlZEJsb2NrKGFkZFRvQ29kZVBvaW50ZXJOb3RUYWtlbikpOworICAg
IGFkZFRvQ29kZVBvaW50ZXJUYWtlbi0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAgICAg
ICBwcm9jLCBTZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlciwKKyAgICAgICAgYWRkVG9Db2RlUG9p
bnRlclRha2VuLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgQjM6OkFkZCwg
T3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUsCisgICAgICAgICAgICBhZGRUb0NvZGVQb2ludGVy
VGFrZW4tPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICAgICAgcHJvYywgTXVsLCBPcmln
aW4oKSwKKyAgICAgICAgICAgICAgICBhZGRUb0NvZGVQb2ludGVyVGFrZW4tPmFwcGVuZE5ldzxN
ZW1vcnlWYWx1ZT4oCisgICAgICAgICAgICAgICAgICAgIHByb2MsIExvYWQsIHBvaW50ZXJUeXBl
KCksIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLCBzaXplb2YoaW50cHRyX3QpKSwKKyAgICAg
ICAgICAgICAgICBhZGRUb0NvZGVQb2ludGVyVGFrZW4tPmFwcGVuZEludENvbnN0YW50KAorICAg
ICAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6ZW9mKGlu
dHB0cl90KSkpKSk7CisgICAgYWRkVG9Db2RlUG9pbnRlclRha2VuLT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRpc3BhdGNoKSk7
CisgICAgYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4o
CisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyLAorICAgICAgICBhZGRU
b0NvZGVQb2ludGVyTm90VGFrZW4tPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICBwcm9j
LCBCMzo6QWRkLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwKKyAgICAgICAgICAgIGFkZFRv
Q29kZVBvaW50ZXJOb3RUYWtlbi0+YXBwZW5kSW50Q29uc3RhbnQoCisgICAgICAgICAgICAgICAg
cHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBlKCksIHNpemVvZihpbnRwdHJfdCkgKiAyKSkpOwor
ICAgIGFkZFRvQ29kZVBvaW50ZXJOb3RUYWtlbi0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgICAgIHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZGlzcGF0Y2gpKTsK
KworICAgIC8vIEFkZCA8b3BlcmFuZD46IGFkZHMgPG9wZXJhbmQ+IHRvIHRoZSBzbG90IHBvaW50
ZWQgdG8gYnkgRFAuCisgICAgY29kZVBvaW50ZXJWYWx1ZSA9IGFkZFRvRGF0YS0+YXBwZW5kTmV3
PFZhcmlhYmxlVmFsdWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlcik7Cisg
ICAgZGF0YVBvaW50ZXJWYWx1ZSA9IGFkZFRvRGF0YS0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+
KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRlcik7CisgICAgYWRkVG9EYXRhLT5h
cHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICBwcm9jLCBTdG9yZSwgT3JpZ2luKCksCisg
ICAgICAgIGFkZFRvRGF0YS0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEIz
OjpBZGQsIE9yaWdpbigpLAorICAgICAgICAgICAgYWRkVG9EYXRhLT5hcHBlbmROZXc8TWVtb3J5
VmFsdWU+KAorICAgICAgICAgICAgICAgIHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9yaWdp
bigpLCBkYXRhUG9pbnRlclZhbHVlKSwKKyAgICAgICAgICAgIGFkZFRvRGF0YS0+YXBwZW5kTmV3
PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgp
LCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwgc2l6ZW9mKGludHB0cl90KSkpLAorICAgICAg
ICBkYXRhUG9pbnRlclZhbHVlKTsKKyAgICBhZGRUb0RhdGEtPmFwcGVuZE5ldzxWYXJpYWJsZVZh
bHVlPigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIsCisgICAgICAg
IGFkZFRvRGF0YS0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEIzOjpBZGQs
IE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLAorICAgICAgICAgICAgYWRkVG9EYXRhLT5hcHBl
bmRJbnRDb25zdGFudChwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6ZW9mKGludHB0
cl90KSAqIDIpKSk7CisgICAgYWRkVG9EYXRhLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRpc3BhdGNoKSk7CisgICAgCisgICAg
Ly8gUHJpbnQ6ICJwcmludHMiIHRoZSB2YWx1ZSBwb2ludGVkIHRvIGJ5IERQLiBXaGF0IHRoaXMg
YWN0dWFsbHkgbWVhbnMgaXMgdGhhdCB0aGUgdmFsdWUgaXMKKyAgICAvLyBhcHBlbmRlZCB0byB0
aGUgc3RyZWFtIHZlY3RvciBieSB0aGUgdGhyZWFkZWRJbnRlcnByZXRlclByaW50IGZ1bmN0aW9u
LgorICAgIGNvZGVQb2ludGVyVmFsdWUgPSBwcmludC0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+
KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlcik7CisgICAgZGF0YVBvaW50ZXJW
YWx1ZSA9IHByaW50LT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3Jp
Z2luKCksIGRhdGFQb2ludGVyKTsKKyAgICBwcmludC0+YXBwZW5kTmV3PENDYWxsVmFsdWU+KAor
ICAgICAgICBwcm9jLCBWb2lkLCBPcmlnaW4oKSwKKyAgICAgICAgcHJpbnQtPmFwcGVuZE5ldzxD
b25zdFB0clZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLCBiaXR3aXNlX2Nhc3Q8
dm9pZCo+KHRocmVhZGVkSW50ZXJwcmV0ZXJQcmludCkpLAorICAgICAgICBjb250ZXh0LAorICAg
ICAgICBwcmludC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBwb2ludGVyVHlw
ZSgpLCBPcmlnaW4oKSwgZGF0YVBvaW50ZXJWYWx1ZSkpOworICAgIHByaW50LT5hcHBlbmROZXc8
VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2ludGVy
LAorICAgICAgICBwcmludC0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEIz
OjpBZGQsIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLAorICAgICAgICAgICAgcHJpbnQtPmFw
cGVuZEludENvbnN0YW50KHByb2MsIE9yaWdpbigpLCBwb2ludGVyVHlwZSgpLCBzaXplb2YoaW50
cHRyX3QpKSkpOworICAgIHByaW50LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1w
LCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRpc3BhdGNoKSk7CisgICAgCisgICAgLy8gU3Rv
cDogcmV0dXJucy4KKyAgICBzdG9wLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICAgICAgc3RvcC0+YXBwZW5kSW50Q29uc3RhbnQo
cHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBlKCksIDApKTsKKyAgICAKKyAgICBhdXRvIGludGVy
cHJldGVyID0gY29tcGlsZShwcm9jKTsKKyAgICAKKyAgICBDSEVDSyhBZGREUCk7CisgICAgQ0hF
Q0soQWRkQ1ApOworICAgIENIRUNLKEFkZCk7CisgICAgQ0hFQ0soUHJpbnQpOworICAgIENIRUNL
KFN0b3ApOworICAgIAorICAgIFZlY3RvcjxpbnRwdHJfdD4gZGF0YTsKKyAgICBWZWN0b3I8aW50
cHRyX3Q+IGNvZGU7CisgICAgVmVjdG9yPGludHB0cl90PiBzdHJlYW07CisgICAgCisgICAgZGF0
YS5hcHBlbmQoMSk7CisgICAgZGF0YS5hcHBlbmQoMCk7CisgICAgCisgICAgaWYgKHNob3VsZEJl
VmVyYm9zZSgpKQorICAgICAgICBkYXRhTG9nKCJkYXRhID0gIiwgbGlzdER1bXAoZGF0YSksICJc
biIpOworICAgIAorICAgIC8vIFdlJ2xsIHdyaXRlIGEgcHJvZ3JhbSB0aGF0IHByaW50cyB0aGUg
bnVtYmVycyAxLi4xMDAuCisgICAgLy8gV2UgZXhwZWN0IERQIHRvIHBvaW50IGF0ICMwLgorICAg
IGNvZGUuYXBwZW5kKEFkZENQKTsKKyAgICBjb2RlLmFwcGVuZCg2KTsgLy8gZ28gdG8gbG9vcCBi
b2R5CisgICAgCisgICAgLy8gTG9vcCByZS1lbnRyeToKKyAgICAvLyBXZSBleHBlY3QgRFAgdG8g
cG9pbnQgYXQgIzEgYW5kIGZvciAjMSB0byBiZSBvZmZzZXQgYnkgLTEwMC4KKyAgICBjb2RlLmFw
cGVuZChBZGQpOworICAgIGNvZGUuYXBwZW5kKDEwMCk7CisgICAgCisgICAgY29kZS5hcHBlbmQo
QWRkRFApOworICAgIGNvZGUuYXBwZW5kKC0xKTsKKyAgICAKKyAgICAvLyBMb29wIGhlYWRlcjoK
KyAgICAvLyBXZSBleHBlY3QgRFAgdG8gcG9pbnQgYXQgIzAuCisgICAgY29kZS5hcHBlbmQoQWRk
RFApOworICAgIGNvZGUuYXBwZW5kKDEpOworICAgIAorICAgIGNvZGUuYXBwZW5kKEFkZCk7Cisg
ICAgY29kZS5hcHBlbmQoMSk7CisgICAgCisgICAgY29kZS5hcHBlbmQoUHJpbnQpOworICAgIAor
ICAgIGNvZGUuYXBwZW5kKEFkZCk7CisgICAgY29kZS5hcHBlbmQoLTEwMCk7CisgICAgCisgICAg
Ly8gV2Ugd2FudCB0byBzdG9wIGlmIGl0J3MgemVybyBhbmQgY29udGludWUgaWYgaXQncyBub24t
emVyby4gQWRkQ1AgdGFrZXMgdGhlIGJyYW5jaCBpZiBpdCdzCisgICAgLy8gbm9uLXplcm8uCisg
ICAgY29kZS5hcHBlbmQoQWRkQ1ApOworICAgIGNvZGUuYXBwZW5kKC0xMSk7IC8vIGdvIHRvIGxv
b3AgcmUtZW50cnkuCisgICAgCisgICAgY29kZS5hcHBlbmQoU3RvcCk7CisgICAgCisgICAgaWYg
KHNob3VsZEJlVmVyYm9zZSgpKQorICAgICAgICBkYXRhTG9nKCJjb2RlID0gIiwgbGlzdER1bXAo
Y29kZSksICJcbiIpOworICAgIAorICAgIENIRUNLKCFpbnZva2U8aW50cHRyX3Q+KCppbnRlcnBy
ZXRlciwgZGF0YS5kYXRhKCksIGNvZGUuZGF0YSgpLCAmc3RyZWFtKSk7CisgICAgCisgICAgQ0hF
Q0soc3RyZWFtLnNpemUoKSA9PSAxMDApOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCAx
MDA7ICsraSkKKyAgICAgICAgQ0hFQ0soc3RyZWFtW2ldID09IGkgKyAxKTsKKyAgICAKKyAgICBp
ZiAoc2hvdWxkQmVWZXJib3NlKCkpCisgICAgICAgIGRhdGFMb2coInN0cmVhbSA9ICIsIGxpc3RE
dW1wKHN0cmVhbSksICJcbiIpOworfQorCiAvLyBNYWtlIHN1cmUgdGhlIGNvbXBpbGVyIGRvZXMg
bm90IHRyeSB0byBvcHRpbWl6ZSBhbnl0aGluZyBvdXQuCiBORVZFUl9JTkxJTkUgZG91YmxlIHpl
cm8oKQogewpAQCAtMTM0NTQsNiArMTM2OTAsOCBAQCB2b2lkIHJ1bihjb25zdCBjaGFyKiBmaWx0
ZXIpCiAgICAgUlVOKHRlc3RTcGlsbFVzZUxhcmdlclRoYW5EZWYoKSk7CiAKICAgICBSVU4odGVz
dExhdGVSZWdpc3RlcigpKTsKKyAgICAKKyAgICBSVU4odGVzdFRocmVhZGVkSW50ZXJwcmV0ZXIo
KSk7CiAKICAgICBpZiAodGFza3MuaXNFbXB0eSgpKQogICAgICAgICB1c2FnZSgpOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmgJKHJldmlzaW9uIDIwMTQ5NCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiQWlyU3BlY2lhbC5oIgogI2luY2x1ZGUgIkFpclN0
YWNrU2xvdC5oIgogI2luY2x1ZGUgIkFpclRtcC5oIgorI2luY2x1ZGUgIkIzSW5kZXhNYXAuaCIK
ICNpbmNsdWRlICJCM1NwYXJzZUNvbGxlY3Rpb24uaCIKICNpbmNsdWRlICJSZWdpc3RlckF0T2Zm
c2V0TGlzdC5oIgogI2luY2x1ZGUgIlN0YWNrQWxpZ25tZW50LmgiCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRlLmNwcAkocmV2aXNpb24gMjAxNDk0KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0ZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQ3LDEwICs0NywxMyBAQAogI2luY2x1ZGUgIkFpclZhbGlkYXRlLmgiCiAjaW5j
bHVkZSAiQjNDb21tb24uaCIKICNpbmNsdWRlICJCM0luZGV4TWFwLmgiCisjaW5jbHVkZSAiQjNQ
b2x5SnVtcFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNQcm9jZWR1cmUuaCIKICNpbmNsdWRlICJCM1Rp
bWluZ1Njb3BlLmgiCisjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJDQ2Fs
bEhlbHBlcnMuaCIKICNpbmNsdWRlICJEaXNhbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2Uu
aCIKKyNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
QjMgeyBuYW1lc3BhY2UgQWlyIHsKIApAQCAtMTgzLDcgKzE4Niw4IEBAIHZvaWQgZ2VuZXJhdGUo
Q29kZSYgY29kZSwgQ0NhbGxIZWxwZXJzJiAKIAogICAgIGZvciAoQmFzaWNCbG9jayogYmxvY2sg
OiBjb2RlKSB7CiAgICAgICAgIGJsb2NrSnVtcHNbYmxvY2tdLmxpbmsoJmppdCk7Ci0gICAgICAg
IGJsb2NrTGFiZWxzW2Jsb2NrXSA9IGppdC5sYWJlbCgpOworICAgICAgICBDQ2FsbEhlbHBlcnM6
OkxhYmVsIGxhYmVsID0gaml0LmxhYmVsKCk7CisgICAgICAgIGJsb2NrTGFiZWxzW2Jsb2NrXSA9
IGxhYmVsOwogICAgICAgICBBU1NFUlQoYmxvY2stPnNpemUoKSA+PSAxKTsKICAgICAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IGJsb2NrLT5zaXplKCkgLSAxOyArK2kpIHsKICAgICAgICAg
ICAgIEluc3QmIGluc3QgPSBibG9jay0+YXQoaSk7CkBAIC0yMTUsMjYgKzIxOSw1NCBAQCB2b2lk
IGdlbmVyYXRlKENvZGUmIGNvZGUsIENDYWxsSGVscGVycyYgCiAgICAgICAgICAgICBhZGRJdGVt
KGJsb2NrLT5sYXN0KCkpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KLQorICAg
ICAgICAKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGp1bXAgPSBibG9jay0+bGFzdCgpLmdl
bmVyYXRlKGppdCwgY29udGV4dCk7Ci0gICAgICAgIHN3aXRjaCAoYmxvY2stPm51bVN1Y2Nlc3Nv
cnMoKSkgewotICAgICAgICBjYXNlIDA6Ci0gICAgICAgICAgICBBU1NFUlQoIWp1bXAuaXNTZXQo
KSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAxOgotICAgICAgICAgICAgbGlu
ayhqdW1wLCBibG9jay0+c3VjY2Vzc29yQmxvY2soMCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgMjoKLSAgICAgICAgICAgIGxpbmsoanVtcCwgYmxvY2stPnN1Y2Nlc3NvckJs
b2NrKDApKTsKLSAgICAgICAgICAgIGlmIChibG9jay0+c3VjY2Vzc29yQmxvY2soMSkgIT0gY29k
ZS5maW5kTmV4dEJsb2NrKGJsb2NrKSkKLSAgICAgICAgICAgICAgICBsaW5rKGppdC5qdW1wKCks
IGJsb2NrLT5zdWNjZXNzb3JCbG9jaygxKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ZGVmYXVsdDoKLSAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgLy8gVGhlIGp1bXAgd29uJ3QgYmUgc2V0IGZvciBQb2x5
SnVtcCBiZWNhdXNlIGl0IGxldHMgaXRzIGZhaXRoIGluIHRoZSBhZGRyZXNzIG9wZXJhbmQKKyAg
ICAgICAgLy8gZ3VpZGUgd2hlcmUgaXQganVtcHMuIEl0IHdvbid0IGJlIHNldCBmb3IgT29wcyBi
ZWNhdXNlIHRoZW4gaXQgd29uJ3QgaGF2ZSBhbnkgc3VjY2Vzc29ycy4KKyAgICAgICAgaWYgKGp1
bXAuaXNTZXQoKSkgeworICAgICAgICAgICAgc3dpdGNoIChibG9jay0+bnVtU3VjY2Vzc29ycygp
KSB7CisgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgbGluayhqdW1wLCBibG9j
ay0+c3VjY2Vzc29yQmxvY2soMCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgY2FzZSAyOgorICAgICAgICAgICAgICAgIGxpbmsoanVtcCwgYmxvY2stPnN1Y2Nlc3NvckJs
b2NrKDApKTsKKyAgICAgICAgICAgICAgICBpZiAoYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDEpICE9
IGNvZGUuZmluZE5leHRCbG9jayhibG9jaykpCisgICAgICAgICAgICAgICAgICAgIGxpbmsoaml0
Lmp1bXAoKSwgYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDEpKTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KICAg
ICAgICAgfQogICAgICAgICBhZGRJdGVtKGJsb2NrLT5sYXN0KCkpOwogICAgIH0KKyAgICAKKyAg
ICAvLyBUYWtlIGNhcmUgb2YgUG9seUp1bXAuIFdlIGRvIHRoaXMgbGFzdCBiZWNhdXNlIGl0IHJl
bGllcyBvbiBrbm93aW5nIHdoZXJlIGFsbCBvZiB0aGUgYmFzaWMKKyAgICAvLyBibG9jayBsYW5k
ZWQuCisgICAgZm9yIChCYXNpY0Jsb2NrKiBibG9jayA6IGNvZGUpIHsKKyAgICAgICAgaWYgKGJs
b2NrLT5sYXN0KCkub3Bjb2RlICE9IFBvbHlKdW1wKQorICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgIAorICAgICAgICBQb2x5SnVtcFZhbHVlKiBwb2x5SnVtcCA9IGJsb2NrLT5sYXN0KCku
b3JpZ2luLT5hczxQb2x5SnVtcFZhbHVlPigpOworICAgICAgICBSRUxFQVNFX0FTU0VSVChwb2x5
SnVtcC0+bnVtU3VjY2Vzc29ycygpID09IGJsb2NrLT5udW1TdWNjZXNzb3JzKCkpOworICAgICAg
ICAKKyAgICAgICAgUmVmUHRyPFNoYXJlZFRhc2s8UG9seUp1bXBWYWx1ZTo6Q2FsbGJhY2tGdW5j
dGlvblR5cGU+PiB0YXNrID0gcG9seUp1bXAtPmNhbGxiYWNrVGFzaygpOworICAgICAgICBpZiAo
IXRhc2spCisgICAgICAgICAgICBjb250aW51ZTsgLy8gVGhpcyB3b3VsZCBiZSB3ZWlyZCwgYnV0
IHdlIGFsbG93IGl0LgorICAgICAgICAKKyAgICAgICAgVmVjdG9yPENDYWxsSGVscGVyczo6TGFi
ZWw+IGxhYmVsczsKKyAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBzdWNjZXNzb3IgOiBibG9jay0+
c3VjY2Vzc29yQmxvY2tzKCkpCisgICAgICAgICAgICBsYWJlbHMuYXBwZW5kKGJsb2NrTGFiZWxz
W3N1Y2Nlc3Nvcl0pOworICAgICAgICAKKyAgICAgICAgaml0LmFkZExpbmtUYXNrKAorICAgICAg
ICAgICAgWz1dIChMaW5rQnVmZmVyJiBsaW5rQnVmZmVyKSB7CisgICAgICAgICAgICAgICAgVmVj
dG9yPE1hY3JvQXNzZW1ibGVyQ29kZVB0cj4gcG9pbnRlcnM7CisgICAgICAgICAgICAgICAgZm9y
IChDQ2FsbEhlbHBlcnM6OkxhYmVsIGxhYmVsIDogbGFiZWxzKQorICAgICAgICAgICAgICAgICAg
ICBwb2ludGVycy5hcHBlbmQobGlua0J1ZmZlci5sb2NhdGlvbk9mKGxhYmVsKSk7CisgICAgICAg
ICAgICAgICAgCisgICAgICAgICAgICAgICAgdGFzay0+cnVuKHBvaW50ZXJzKTsKKyAgICAgICAg
ICAgIH0pOworICAgIH0KIAogICAgIHBjVG9PcmlnaW5NYXAuYXBwZW5kSXRlbShqaXQubGFiZWwo
KSwgT3JpZ2luKCkpOwogICAgIC8vIEZJWE1FOiBNYWtlIGxhdGUgcGF0aHMgaGF2ZSBPcmlnaW5z
OiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzNjg5CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckluc3QuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdC5jcHAJKHJldmlzaW9uIDIwMTQ5NCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQ1LDYgKzQ1LDExIEBAIGJvb2wgSW5zdDo6aGFzQXJnRWZmZWN0cygpCiAgICAgcmV0
dXJuIHJlc3VsdDsKIH0KIAorYm9vbCBJbnN0Ojppc0Nsb25lYWJsZSgpCit7CisgICAgcmV0dXJu
ICFvcmlnaW4gfHwgb3JpZ2luLT5pc0Nsb25lYWJsZSgpOworfQorCiB2b2lkIEluc3Q6OmR1bXAo
UHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHsKICAgICBvdXQucHJpbnQob3Bjb2RlLCAiICIsIGxp
c3REdW1wKGFyZ3MpKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5z
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdC5o
CShyZXZpc2lvbiAyMDE0OTQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpcklu
c3QuaAkod29ya2luZyBjb3B5KQpAQCAtMTg3LDYgKzE4NywxMCBAQCBwdWJsaWM6CiAgICAgLy8g
ICAgIEFkZCBUbXAxLCBUbXAyLCBUbXAzCiAgICAgLy8gcmV0dXJucyAyIGlmIDAgYW5kIDEgYmVu
ZWZpdCBmcm9tIGFsaWFzaW5nIHRvIFRtcDMuCiAgICAgT3B0aW9uYWw8dW5zaWduZWQ+IHNob3Vs
ZFRyeUFsaWFzaW5nRGVmKCk7CisgICAgCisgICAgLy8gU29tZSBpbnN0dWN0aW9ucyB3aWxsIHJl
ZnVzZSB0byBhbGxvdyBjbG9uaW5nLiBJZiB0aGlzIHJldHVybnMgZmFsc2UsIHlvdSBtdXN0IG1h
a2Ugc3VyZSB0aGF0CisgICAgLy8geW91IG5ldmVyIGludHJvZHVjZSBjb3BpZXMgb2YgdGhlIGlu
c3RydWN0aW9uLgorICAgIGJvb2wgaXNDbG9uZWFibGUoKTsKIAogICAgIHZvaWQgZHVtcChQcmlu
dFN0cmVhbSYpIGNvbnN0OwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fp
ck9wY29kZS5vcGNvZGVzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvQWlyT3Bjb2RlLm9wY29kZXMJKHJldmlzaW9uIDIwMTQ5NCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMJKHdvcmtpbmcgY29weSkKQEAgLTgzNSw2
ICs4MzUsMTQgQEAgTW92ZURvdWJsZUNvbmRpdGlvbmFsbHlGbG9hdCBVOkc6MzIsIFU6RgogCiBK
dW1wIC9icmFuY2gKIAorIyBUaGlzIG1hc3F1ZXJhZGVzIGFzIGEgbm9uLWJyYW5jaCB0ZXJtaW5h
bCBiZWNhdXNlIGl0IGRvZXNuJ3QgbmVlZCB0aGUgdHJhZGl0aW9uYWwgc29ydCBvZiBsaW5raW5n
LgorIyAiQnJhbmNoIiBpbiB0aGlzIGNvbnRleHQganVzdCBtZWFucyB0aGF0IGl0J3MgYSB0ZXJt
aW5hbCB0aGF0IHJldHVybnMgYSBKdW1wIHRoYXQgbmVlZHMgdG8gYmUKKyMgbGlua2VkLiBJbnN0
ZWFkLCBBaXI6OmdlbmVyYXRlKCkgaGFzIGEgc3BlY2lhbC1jYXNlIGZvciBQb2x5SnVtcC4KK1Bv
bHlKdW1wIFU6RzpQdHIgL3Rlcm1pbmFsCisgICAgVG1wIGFzIGp1bXAKKyAgICB4ODY6IEFkZHIg
YXMganVtcAorICAgIHg4NjogSW5kZXggYXMganVtcAorCiBSZXQzMiBVOkc6MzIgL3JldHVybgog
ICAgIFRtcAogCkluZGV4OiBXZWJzaXRlcy93ZWJraXQub3JnL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJzaXRlcy93ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMjAxNDk0KQorKysg
V2Vic2l0ZXMvd2Via2l0Lm9yZy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
NCBAQAorMjAxNi0wNS0yOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAg
ICAgIEltcGxlbWVudCB0YWJsZS1iYXNlZCBzd2l0Y2hlcyBpbiBCMy9BaXIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTE0MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgVXBkYXRlIGRvY3Vt
ZW50YXRpb24gZm9yIHRoZSBuZXcgUG9seUp1bXAgb3Bjb2RlLgorCisgICAgICAgICogZG9jcy9i
My9pbnRlcm1lZGlhdGUtcmVwcmVzZW50YXRpb24uaHRtbDoKKwogMjAxNi0wNS0yMyAgSm9uIERh
dmlzICA8am9uZEBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHN5bnRheCBoaWdoZ2xpZ2h0aW5n
IGZvciBFUzYgImxldCIsICJjb25zdCIgYW5kICJvZiIga2V5d29yZHMuCkluZGV4OiBXZWJzaXRl
cy93ZWJraXQub3JnL2RvY3MvYjMvaW50ZXJtZWRpYXRlLXJlcHJlc2VudGF0aW9uLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2Vic2l0ZXMvd2Via2l0Lm9yZy9kb2NzL2IzL2ludGVybWVkaWF0ZS1yZXBy
ZXNlbnRhdGlvbi5odG1sCShyZXZpc2lvbiAyMDE0OTQpCisrKyBXZWJzaXRlcy93ZWJraXQub3Jn
L2RvY3MvYjMvaW50ZXJtZWRpYXRlLXJlcHJlc2VudGF0aW9uLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTQxMiwxMSArNDEyLDEyIEBACiAgICAgICAgIHRoZSBDQ2FsbFZhbHVlIGNsYXNzLjwvZGQ+
CiAKICAgICAgIDxkdD5UMSBQYXRjaHBvaW50KFtUMiwgW1QzLCAuLi5dXSk8L2R0PgotICAgICAg
PGRkPkEgUGF0Y2hwb2ludCBpcyBhIGN1c3RvbWl6YWJsZSB2YWx1ZS4gIFBhdGNocG9pbnRzIHRh
a2UgemVybyBvciBtb3JlIHZhbHVlcyBvZiBhbnkKLSAgICAgICAgdHlwZSBhbmQgcmV0dXJuIGFu
eSB0eXBlLiAgQSBQYXRjaHBvaW50J3MgYmVoYXZpb3IgaXMgZGV0ZXJtaW5lZCBieSB0aGUgZ2Vu
ZXJhdG9yCi0gICAgICAgIG9iamVjdC4gIFRoZSBnZW5lcmF0b3IgaXMgYSBDKysgbGFtYmRhIHRo
YXQgZ2V0cyBjYWxsZWQgZHVyaW5nIGNvZGUgZ2VuZXJhdGlvbi4gIEl0IGdldHMKLSAgICAgICAg
cGFzc2VkIGFuIGFzc2VtYmxlciBpbnN0YW5jZSAoc3BlY2lmaWNhbGx5LCBDQ2FsbEhlbHBlcnMm
KSBhbmQgYW4gb2JqZWN0IGRlc2NyaWJpbmcKLSAgICAgICAgd2hlcmUgdG8gZmluZCBhbGwgb2Yg
dGhlIGlucHV0IHZhbHVlcyBhbmQgd2hlcmUgdG8gcHV0IHRoZSByZXN1bHQuICBIZXJlJ3MgYW4g
ZXhhbXBsZToKKyAgICAgIDxkZD4KKyAgICAgICAgPHA+QSBQYXRjaHBvaW50IGlzIGEgY3VzdG9t
aXphYmxlIHZhbHVlLiAgUGF0Y2hwb2ludHMgdGFrZSB6ZXJvIG9yIG1vcmUgdmFsdWVzIG9mIGFu
eQorICAgICAgICAgIHR5cGUgYW5kIHJldHVybiBhbnkgdHlwZS4gIEEgUGF0Y2hwb2ludCdzIGJl
aGF2aW9yIGlzIGRldGVybWluZWQgYnkgdGhlIGdlbmVyYXRvcgorICAgICAgICAgIG9iamVjdC4g
IFRoZSBnZW5lcmF0b3IgaXMgYSBDKysgbGFtYmRhIHRoYXQgZ2V0cyBjYWxsZWQgZHVyaW5nIGNv
ZGUgZ2VuZXJhdGlvbi4gIEl0IGdldHMKKyAgICAgICAgICBwYXNzZWQgYW4gYXNzZW1ibGVyIGlu
c3RhbmNlIChzcGVjaWZpY2FsbHksIENDYWxsSGVscGVycyYpIGFuZCBhbiBvYmplY3QgZGVzY3Jp
YmluZworICAgICAgICAgIHdoZXJlIHRvIGZpbmQgYWxsIG9mIHRoZSBpbnB1dCB2YWx1ZXMgYW5k
IHdoZXJlIHRvIHB1dCB0aGUgcmVzdWx0LiAgSGVyZSdzIGFuIGV4YW1wbGU6PC9wPgogIAogICAg
ICAgICA8cHJlPjxjb2RlPlBhdGNocG9pbnRWYWx1ZSogcGF0Y2hwb2ludCA9IGJsb2NrLT5hcHBl
bmROZXcmbHQ7UGF0Y2hwb2ludFZhbHVlJmd0Oyhwcm9jLCBJbnQzMiwgT3JpZ2luKCkpOwogcGF0
Y2hwb2ludC0+YXBwZW5kKENvbnN0cmFpbmVkVmFsdWUoYXJnMSwgVmFsdWVSZXA6OlNvbWVSZWdp
c3RlcikpOwpAQCAtNTI2LDYgKzUyNywzOSBAQCBwYXRjaHBvaW50LT5zZXRHZW5lcmF0b3IoCiAg
ICAgICAgIGFsc28gY29udGFpbnMgYSBmYWxsLXRocm91Z2ggdGFyZ2V0IGluIGNhc2UgdGhlIGNo
aWxkIGhhcyBhIHZhbHVlIHRoYXQgd2Fzbid0IG1lbnRpb25lZAogICAgICAgICBpbiB0aGUgY2Fz
ZXMgbGlzdC4gIE11c3QgdXNlIHRoZSBTd2l0Y2hWYWx1ZSBjbGFzcy4gIE11c3QgYXBwZWFyIGF0
IHRoZSBlbmQgb2YgdGhlIGJhc2ljCiAgICAgICAgIGJsb2NrLjwvZGQ+CisgICAgICAKKyAgICAg
IDxkdD5Wb2lkIFBvbHlKdW1wKEludFB0ciwgYmxvY2tzLi4uKTwvZHQ+CisgICAgICA8ZGQ+Cisg
ICAgICAgIDxwPkp1bXBzIHRvIHRoZSBnaXZlbiBhZGRyZXNzLiBUaGUgY29tcGlsZXIgd2lsbCBh
c3N1bWUgdGhhdCB0aGlzIGp1bXBzIHRvIG9uZSBvZiB0aGUgZ2l2ZW4KKyAgICAgICAgICBibG9j
a3MuIFRoZSBjb21waWxlciBtYWtlcyBubyBhdHRlbXB0IHRvIHByb3ZlIG9yIHZhbGlkYXRlIHRo
YXQgdGhlIHBhc3NlZCBqdW1wIGFkZHJlc3MgaXMKKyAgICAgICAgICBhY3R1YWxseSB0aGUgYWRk
cmVzcyBvZiBhbnkgb2YgdGhvc2UgYmxvY2tzLiBOb25zZW5zaWNhbCB0aGluZ3Mgd2lsbCBoYXBw
ZW4gaWYgdGhlIHBhc3NlZAorICAgICAgICAgIGFkZHJlc3MgaXMgbm90IHRoZSBhZGRyZXNzIG9m
IG9uZSBvZiB0aGUgYmxvY2tzIGluIHRoZSBzdWNjZXNzb3IgbGlzdC4gWW91IGNhbiBhcnJhbmdl
IHRvCisgICAgICAgICAgZ2V0IHRoZSBhZGRyZXNzZXMgb2YgYmxvY2tzIGJ5IHBhc3NpbmcgYSBj
YWxsYmFjayB0byBQb2x5SnVtcC4gVGhpcyBpcyB1c2VkIGludGVybmFsbHkKKyAgICAgICAgICBm
b3IgbG93ZXJpbmcgU3dpdGNoIG9wY29kZXMuIFlvdSBjYW4gYWxzbyB1c2UgaXQgZGlyZWN0bHku
PC9wPgorICAgICAgCisgICAgICAgIDxwPlBvbHlKdW1wIGlzIG5vdCBjbG9uZWFibGUuIEZvciBl
YWNoIFBvbHlKdW1wIHlvdSBjcmVhdGUsIHRoZXJlIHdpbGwgYmUgb25lIGluZGlyZWN0CisgICAg
ICAgICAganVtcCBnZW5lcmF0ZWQuIFRoaXMgaXMgbmVjZXNzYXJ5IHRvIGVuc3VyZSBzb3VuZG5l
c3Mgb2YgdGhlIGNhbGxiYWNrLiBJZiB0aGUgUG9seUp1bXAKKyAgICAgICAgICBjb3VsZCBiZSBj
bG9uZWQsIHRoZW4gdGhlIGNhbGxiYWNrIHdvdWxkIGdldCBjYWxsZWQgZm9yIGVhY2ggY2xvbmUu
IFByZXN1bWFibHksIHlvdSdkCisgICAgICAgICAgaW1wbGVtZW50IHRoZSBjYWxsYmFjayBieSBw
b3B1bGF0aW5nIHNvbWUgdGFibGUgd2l0aCB0aGUgYWRkcmVzc2VzIG9mIHRoZSBibG9ja3MuIElm
IHRoZQorICAgICAgICAgIGNhbGxiYWNrIGdldHMgY2FsbGVkIG11bHRpcGxlIHRpbWVzIHRoZW4g
aXQgbWF5IHJldHVybiBkaWZmZXJlbnQgYWRkcmVzc2VzIGVhY2ggdGltZSAtCisgICAgICAgICAg
c2luY2UgYWZ0ZXIgY2xvbmluZyBhIFBvbHlKdW1wLCB0aGUgY29tcGlsZXIgbWF5IHJldGFyZ2V0
IGFueSBvZiBpdHMgc3VjY2Vzc29yIGVkZ2VzLgorICAgICAgICAgIFRoaXMgd291bGQgYmUgY29u
ZnVzaW5nLCBzaW5jZSB0aGVuIHlvdSB3b3VsZG4ndCBrbm93IHdoYXQgdG8gZG8gd2l0aCBkaXNj
cmVwYW5jaWVzIGJldHdlZW4KKyAgICAgICAgICBhZGRyZXNzZXMgcmV0dXJuZWQgYnkgdGhlIHZh
cmlvdXMgY2FsbHMgdG8gdGhlIGNhbGxiYWNrLiBEaXNhbGxvd2luZyBjbG9uaW5nIG9mIFBvbHlK
dW1wCisgICAgICAgICAgc29sdmVzIHRoaXMgcHJvYmxlbS48L3A+CisgICAgICAgIAorICAgICAg
ICA8cD5BIGNsb3NlbHkgcmVsYXRlZCBwcm9ibGVtIGlzIHRoYXQgaWYgeW91IGVtaXQgbXVsdGlw
bGUgUG9seUp1bXAgaW5zdHJ1Y3Rpb25zLCB0aGVuIGV2ZW4KKyAgICAgICAgICBpZiB0aGV5IGlu
aXRpYWxseSBzaGFyZSB0aGUgc2FtZSBzdWNjZXNzb3JzLCB5b3UgY2Fubm90IGd1YXJhbnRlZSB0
aGF0IHRoZXkgd2lsbCBjb250aW51ZQorICAgICAgICAgIHRvIHNoYXJlIHRoZSBzYW1lIHN1Y2Nl
c3NvcnMgYWZ0ZXIgb3B0aW1pemF0aW9uLiBUaGlzIG1lYW5zIHRoYXQgUG9seUp1bXAgY2Fubm90
CisgICAgICAgICAgY3VycmVudGx5IGJlIHVzZWQgZm9yIGltcGxlbWVudGluZyBkaXJlY3QgdGhy
ZWFkZWQgaW50ZXJwcmV0ZXJzLCBhdCBsZWFzdCBub3QgdGhlIGNsYXNzaWMKKyAgICAgICAgICBr
aW5kOiB0byBtYWtlIGl0IHdvcmssIHlvdSBoYXZlIHRvIGhhdmUgYSBzaGFyZWQgZGlzcGF0Y2gg
YmxvY2sgc28gdGhhdCB5b3UgaGF2ZSBhIHNpbmdsZQorICAgICAgICAgIFBvbHlKdW1wLiBUaGlz
IG1pZ2h0IGJlIGJldHRlciB0aGFuIGEgU3dpdGNoLWJhc2VkIGludGVycHJldGVyLCBidXQgaXQn
cyBkZWZpbml0ZWx5IG5vdAorICAgICAgICAgIGFzIGdvb2QgYXMgd2hhdCB5b3UnZCBnZXQgd2l0
aCBHQ0Mtc3R5bGUgY29tcHV0ZWQgZ290by48L3A+CisgICAgICAgIAorICAgICAgICA8cD5Qb2x5
SnVtcCBpcyBzbyBuYW1lZCB0byBhdm9pZCBjb25mdXNpb24gd2l0aCBjb21wdXRlZCBnb3RvcyBh
bmQgaW5kaXJlY3QgYnJhbmNoZXMgaW4KKyAgICAgICAgICBvdGhlciBjb21waWxlcnMuIEl0IGhh
cyBzaWduaWZpY2FudCByZXN0cmljdGlvbnMgdGhhdCB0aG9zZSBvcGVyYXRpb25zIGRvIG5vdCBo
YXZlLiBUaGVzZQorICAgICAgICAgIHJlc3RyaWN0aW9ucyBtYWtlIGl0IGVhc2llciBmb3IgdGhl
IG9wdGltaXplciB0byB3b3JrIHdpdGggc2luY2UgdGhlIGNvbnRyb2wgZmxvdyBnZXRzIHRvCisg
ICAgICAgICAgYmUgZXhwbGljaXQgKFBvbHlKdW1wIGhhcyBhIGZpbml0ZSBzZXQgb2Ygc3VjY2Vz
c29ycyBsaWtlIGFueSBvdGhlciBibG9jayB0ZXJtaW5hbCkuPC9wPgorICAgICAgPC9kZD4KIAog
ICAgICAgPGR0PlZvaWQgUmV0dXJuKFQpPC9kdD4KICAgICAgIDxkZD5Xb3JrcyBmb3IgYW55IHR5
cGUgZXhjZXB0IFZvaWQuICBSZXR1cm5zIHRoZSBnaXZlbiB2YWx1ZSBhbmQgdGVybWluYXRlcyB0
aGUgcHJvY2VkdXJlLgpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjAxNDk0KQorKysgTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTYtMDUtMjkgIEZp
bGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgdGFibGUt
YmFzZWQgc3dpdGNoZXMgaW4gQjMvQWlyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNTExNDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGpzL3JlZ3Jlc3MvYmlnc3dpdGNoLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICoganMvcmVncmVzcy9iaWdzd2l0Y2guaHRtbDogQWRkZWQuCisgICAgICAg
ICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvYmlnc3dpdGNoLmpzOiBBZGRlZC4KKyAgICAgICAg
KGZvbyk6CisKIDIwMTYtMDUtMjUgIFNrYWNoa292IE9sZWtzYW5kciAgPGdza2FjaGtvdkBnbWFp
bC5jb20+CiAKICAgICAgICAgW0VTTmV4dF0gU3VwcG9ydCB0cmFpbGluZyBjb21tYXMgaW4gZnVu
Y3Rpb24gcGFyYW0gbGlzdHMKSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNo
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3
aXRjaC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L2JpZ3N3aXRjaC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAor
SlNSZWdyZXNzL2JpZ3N3aXRjaAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyBubyBleGNlcHRpb24gdGhyb3duCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2gu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC5odG1s
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2guaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0v
L0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InNjcmlwdC10ZXN0cy9iaWdzd2l0Y2guanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvYmlnc3dp
dGNoLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3Rz
L2JpZ3N3aXRjaC5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2Ny
aXB0LXRlc3RzL2JpZ3N3aXRjaC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIxMSBAQAor
ZnVuY3Rpb24gZm9vKG8pIHsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICBmb3IgKHZhciBpID0g
MDsgaSA8IDEwMDA7ICsraSkgeworICAgICAgICB2YXIgdmFsdWUgPSBpICYgNjM7CisgICAgICAg
IHN3aXRjaCAodmFsdWUpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgcmVzdWx0ICs9
IG8uYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICBy
ZXN1bHQgKz0gby5iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjoKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLmM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAz
OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIDQ6CisgICAgICAgICAgICByZXN1bHQgKz0gby5lOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgNToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmY7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSA2OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZzsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDc6CisgICAgICAgICAgICByZXN1bHQgKz0g
by5oOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgODoKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLmk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA5OgorICAgICAg
ICAgICAgcmVzdWx0ICs9IG8uajsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDEw
OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIDExOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIDEyOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYjsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIDEzOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYzsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE0OgorICAgICAgICAgICAgcmVzdWx0
ICs9IG8uZDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE1OgorICAgICAgICAg
ICAgcmVzdWx0ICs9IG8uZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE2Ogor
ICAgICAgICAgICAgcmVzdWx0ICs9IG8uZjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIDE3OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZzsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIDE4OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaDsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIDE5OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDIwOgorICAgICAgICAgICAgcmVzdWx0ICs9
IG8uajsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDIxOgorICAgICAgICAgICAg
cmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDIyOgorICAg
ICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IDIzOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIDI0OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYjsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIDI1OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYzsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI2OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8u
ZDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI3OgorICAgICAgICAgICAgcmVz
dWx0ICs9IG8uZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI4OgorICAgICAg
ICAgICAgcmVzdWx0ICs9IG8uZjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI5
OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIDMwOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaDsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIDMxOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIDMyOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uajsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDMzOgorICAgICAgICAgICAgcmVzdWx0
ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM0OgorICAgICAgICAg
ICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM1Ogor
ICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIDM2OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIDM3OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYjsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIDM4OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYzsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM5OgorICAgICAgICAgICAgcmVzdWx0ICs9
IG8uZDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQwOgorICAgICAgICAgICAg
cmVzdWx0ICs9IG8uZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQxOgorICAg
ICAgICAgICAgcmVzdWx0ICs9IG8uZjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IDQyOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZzsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIDQzOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaDsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIDQ0OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ1OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8u
ajsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ2OgorICAgICAgICAgICAgcmVz
dWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ3OgorICAgICAg
ICAgICAgcmVzdWx0ICs9IG8uaTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ4
OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uajsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIDQ5OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIDUwOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIDUxOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDUyOgorICAgICAgICAgICAgcmVzdWx0
ICs9IG8uYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDUzOgorICAgICAgICAg
ICAgcmVzdWx0ICs9IG8uYjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDU0Ogor
ICAgICAgICAgICAgcmVzdWx0ICs9IG8uYzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIDU1OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZDsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIDU2OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIDU3OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZjsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDU4OgorICAgICAgICAgICAgcmVzdWx0ICs9
IG8uZzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDU5OgorICAgICAgICAgICAg
cmVzdWx0ICs9IG8uaDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDYwOgorICAg
ICAgICAgICAgcmVzdWx0ICs9IG8uaTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IDYxOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uajsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIDYyOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uejsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisK
KyhmdW5jdGlvbigpIHsKKyAgICB2YXIgbyA9IHthOjEsIGI6MiwgYzozLCBkOjQsIGU6NSwgZjo2
LCBnOjcsIGg6OCwgaTo5LCBqOjEwLCBrOjExLCB6OjEwMH07CisgICAgdmFyIHJlc3VsdCA9IDA7
CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKQorICAgICAgICByZXN1bHQgKz0g
Zm9vKG8pOworICAgIGlmIChyZXN1bHQgIT0gNzk2NjAwMDApCisgICAgICAgIHRocm93ICJFcnJv
cjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30pKCk7CisK
</data>
<flag name="commit-queue"
          id="304063"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>280068</attachid>
            <date>2016-05-29 18:04:22 -0700</date>
            <delta_ts>2016-05-30 10:45:20 -0700</delta_ts>
            <desc>Archive of layout-test-results from ews102 for mac-yosemite</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>1386498</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">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
AAAAAAAAAAAMABwAY29tcG9zaXRpbmcvVVQJAAMniEtXcIxLV3V4CwABBPUBAAAEUAAAAFBLAwQK
AAAAAAABi71IAAAAAAAAAAAAAAAAFAAcAGNvbXBvc2l0aW5nL3JlZ2lvbnMvVVQJAAMhiEtXcIxL
V3V4CwABBPUBAAAEUAAAAFBLAwQUAAIACAAFjb1IiL4NZKwAAAAUAwAARQAcAGNvbXBvc2l0aW5n
L3JlZ2lvbnMvd2Via2l0LWZsb3ctcmVuZGVyZXItbGF5ZXItY29tcG9zaXRpbmctc3RkZXJyLnR4
dFVUCQAD6YtLVyGIS1d1eAsAAQT1AQAABFAAAADtj7EOgjAURXe/oqMOUKggQuKgRBMHIwkjMeRZ
XrBaKXlUE/5ejIN+gCPbudO5p/CjJPASL3Y9PzgxZfEOXd/IMkebkWmRbM86VTegNVYMiVaOL6Jl
yKa3nao30OHxfEVpt0SGyn3zBK0qsFjN2FT9LrCM5+ZBElOQF+SpITxgpeBLjh8uhCsCjw9qa2zf
YsczDT0SH2QfKtfvf65kWjXIhIjnk2KMGCP+F/ECUEsDBBQAAgAIAAiNvUi7A0mqwQAAAPIGAAA8
ABwAY29tcG9zaXRpbmcvc2hvdy1jb21wb3NpdGVkLWlmcmFtZS1vbi1iYWNrLWJ1dHRvbi1zdGRl
cnIudHh0VVQJAAPvi0tXJ4hLV3V4CwABBPUBAAAEUAAAAO3PsQrCMBQF0N2vyKhDmzaNWgUHLQoO
ouAoUp7pQ6OxKa9RyN+rOOgPiArd7p3uPZu4P5TRMJZhKqMt0w7PUPtS5Wt0K7IVkvOs1vsSjMGC
IdEoiEU/7bL2aab3E6hxuTuiclMiS/m8vILRBTgsOqyt3xs4xtf2QgozUAfkmSVcYKHhlYK42xOh
kBG/TzvrfIU1XxnwSPw+9kz5+PEvVMzoEpkQg6S1aRAN4jOI5B2R2cr/hSJK00bxowrZKL6quAFQ
SwMECgAAAAAAAIu9SAAAAAAAAAAAAAAAABIAHABjb21wb3NpdGluZy92aWRlby9VVAkAAyCIS1dw
jEtXdXgLAAEE9QEAAARQAAAAUEsDBBQAAgAIAAONvUgR+4nHrQAAAN4DAAAwABwAY29tcG9zaXRp
bmcvdmlkZW8vdmlkZW8tYm9yZGVyLXJhZGl1cy1zdGRlcnIudHh0VVQJAAPmi0tXH4hLV3V4CwAB
BPUBAAAEUAAAAO2PwQqCQBRF933FLG2ho4OaCC1KClpEQksJeY0Pm5oceU7B/H1Gi4J+wd25q3NP
FS3yOMzDNIhicWLK4h0G18m6ML0ryfRI1rFBtR1ojQ1DoqUfiUWWMO+2Ve0aBjycryjthshQveue
oFUDFps589TvAsv40TxIYgHygrwwhHtsFHzJj5JUBCIO+ai2xroeB15qcEh8lH2oXr0PBpJp1SET
YZbNqqliqpgq/ipeUEsDBBQAAgAIAASNvUj/kTGUzwAAANAKAAAyABwAY29tcG9zaXRpbmcvdmlk
ZW8vdmlkZW8tY2xpcC1jaGFuZ2Utc3JjLXN0ZGVyci50eHRVVAkAA+iLS1cgiEtXdXgLAAEE9QEA
AARQAAAA7dMxb8IwEAXgvb/CIwyJY4eQFIkBIpAYUCMxoiq6OicwmDi6GCT/+4IYYGJjaOXt3fTe
N9xW5JNRMknyWIj0m2mHJ+h9q+rSdr4i2yE5z3q9a8EYbBgSTSMh8yJjg+NS7+bQ49fPAZVbEFmq
V+0FjG7AYTNkA/18gWN8Y8+ksAS1R15awjU2Gh4pEtlYxnKU8Gu1s8532PPKgEfi17J7qme3gbFi
RrfIZFIUH9ugCIqgeKFIx9mzYoPuTyDkZxoQAfEuRPEvPjsogiIo7opfUEsDBAoAAAAAAAOLvUgA
AAAAAAAAAAAAAAANABwAZGlzcGxheWxpc3RzL1VUCQADJYhLV3CMS1d1eAsAAQT1AQAABFAAAABQ
SwMEFAACAAgAB429SKNX/ehQAAAAjgAAADIAHABkaXNwbGF5bGlzdHMvZXh0ZW50LWluY2x1ZGVz
LXRyYW5zZm9ybXMtc3RkZXJyLnR4dFVUCQAD7YtLVyWIS1d1eAsAAQT1AQAABFAAAABzL0osyMhM
LnbOzytJrSixskpPLXEO8dXQVMgsVsjLL1GoTC1RSM7PLUgsyUzKSVUozyzJUChKTc4vSsnMSwfK
gLUV63G5oxtUjGYQMYYAAFBLAwQUAAIACAAHjb1I8paV1UcAAABJAAAAKQAcAGRpc3BsYXlsaXN0
cy9sYXllci1kaXNwYXktbGlzdC1zdGRlcnIudHh0VVQJAAPti0tXJYhLV3V4CwABBPUBAAAEUAAA
AHMvSizIyEwuds7PK0mtKLGySk8tcQ7x1dBUyCxWyMsvUahMLVFIzs8tSCzJTMpJVSjPLMlQKEpN
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
bnZhcy9VVAkAAzqIS1dwjEtXdXgLAAEE9QEAAARQAAAAUEsDBBQAAgAIABGNvUhgCTezhgAAABoB
AAAmABwAZmFzdC9jYW52YXMvY2FudmFzLWxpbmVEYXNoLXN0ZGVyci50eHRVVAkAAwGMS1c6iEtX
dXgLAAEE9QEAAARQAAAAzc4xDoJAFEXR3lW8DUhAMOjE2ICx0UbtjMVXXiLJ8Md8BhVXr8uwvKe6
exkxWyIrXZG6PAdffZbOEh9u4lEP3eNAbWgnI8/losjmF6w2ZsHWDtW2Chr5jkfGXauspb87tPoU
3zZofgUxk9FBIjyljwhK0LOjRnTDD66EBp1+aCGZ7P9p5gtQSwMECgAAAAAAFou9SAAAAAAAAAAA
AAAAAAwAHABmYXN0L2ltYWdlcy9VVAkAA0yIS1dwjEtXdXgLAAEE9QEAAARQAAAAUEsDBAoAAgAA
ABqNvUhRp4IYMQAAADEAAAAtABwAZmFzdC9pbWFnZXMvbGFyZ2Utc2l6ZS1pbWFnZS1jcmFzaC1z
dGRlcnIudHh0VVQJAAMTjEtXS4hLV3V4CwABBPUBAAAEUAAAAGluaXRJbWFnZUFwcGxlSlBFRzox
NDE2OiBmYWxsaW5nIGJhY2sgdG8gbGliSlBFRwpQSwMEFAACAAgAGo29SCGPvTgyAAAAMwAAACwA
HABmYXN0L2ltYWdlcy9wZGYtYXMtaW1hZ2UtY3JvcC1ib3gtc3RkZXJyLnR4dFVUCQADFIxLV0yI
S1d1eAsAAQT1AQAABFAAAABzy0ksSXVJTc5PSbVSSAHRmXnpCqlFRflFVgqZecn5RUWpySUKKYkl
iQrJGanJ2XpcAFBLAwQKAAAAAAAXi71IAAAAAAAAAAAAAAAACQAcAGZhc3QveHNsL1VUCQADTYhL
V3CMS1d1eAsAAQT1AQAABFAAAABQSwMEFAACAAgAGo29SHL9ZfKFAAAA6QAAACUAHABmYXN0L3hz
bC90cmFuc2Zvcm0teGhyLWRvYy1zdGRlcnIudHh0VVQJAAMUjEtXTIhLV3V4CwABBPUBAAAEUAAA
AK1OMQ7CQAzb+4p8oGRguxkm2EB0TttUnJS7VLmc1P6eg36BxbJsy/akaY1CHjUDm6kFWKLwDwIi
vlRq4oIXcsLr8MCBx1t0vNOu1Z9cvOBCxXErgsZFq00tvr2tn3U6NRUkZoYzsHDi7BDTquZdc8JB
IUDNNLZRVxCl+U/j/VHP8/dF9wFQSwMEFAACAAgAGo29SM4JKAKNAAAA8AAAACcAHABmYXN0L3hz
bC94c2x0LWJhZC1pbXBvcnQtdXJpLXN0ZGVyci50eHRVVAkAAxSMS1dNiEtXdXgLAAEE9QEAAARQ
AAAApY4xDsIwDEX3nsIXKB7YMsMEG4jOTuuKSE5cOY4EtyfQI7B8+f9nW3/WvCUhT1qAzdQCrEn4
JwERHyotc8UTOeF5uuHE8ZIcr/TW5neuXnGl6viqgsZVm819vTsfIy1jypuaj83SoWcgqTAcgYUz
F4edDp2EfYQArVDsBVxBlJZ/ixStbX5+n/Q7keEDUEsDBBQAAgAIABqNvUjPj2YOUAAAAKAAAAAk
ABwAZmFzdC94c2wveHNsdC1jb250ZW50VHlwZS1zdGRlcnIudHh0VVQJAAMUjEtXTYhLV3V4CwAB
BPUBAAAEUAAAAK3MsQ3AIAwF0Z4p/gZR2myDwAhLNkaWiTJ+yA5prrtXTCdLDrYBcje/0FgIEB6E
EySkNAK2Yq5IPO4sXLG7CM0cStGt7ssslb+wp4fK8ZEvUEsDBBQAAgAIABqNvUiBSnetSwAAAKwA
AAA0ABwAZmFzdC94c2wveHNsdC10cmFuc2Zvcm0tdG8tZnJhZ21lbnQtY3Jhc2gtc3RkZXJyLnR4
dFVUCQADFIxLV02IS1d1eAsAAQT1AQAABFAAAAC1zLENgDAMRNE+U9wKtGzjwAVZcmxkLOZHomAD
6q/3t5inmpSGg5mRK4YaAVMnFtA46YVbUqUbW3LnUNdXxMBh0cW+juJVbfvl+gBQSwMEFAACAAgA
S429SDeKRBGgAwAAOA4AABEAHABmdWxsX3Jlc3VsdHMuanNvblVUCQADboxLV3CMS1d1eAsAAQT1
AQAABFAAAAC1V1Fv2zYQ/isBnzbAtB2n6VoPfcgQowsWd0WcrQWGQaDEk8WGIjnymNkr+t93pOQ0
xZyXSXkyLZHf9/HuePx0cXlZ3Kw2v13fbr77zBACBrb8zFTrrEeQafz3WZV/oOROC6ytb/nDxCsj
YQfy8qe8Spa2/AQVBrQeCgkaEH6YNtimtx4SJluym9Vbotxc/fqOTRjsHC1ITOz9xWZDT0SFUWj6
f7v6eMu+TI7Djo3qIp4/j9IcooHQhE0AOiEEaIVBVeXwh8orh8ps+Wn6iw1QatqUJuBE3oLB9FxC
rYxCZU1e9TClsgZpSpgewP+vvCQQ2hKkBHlATXgtSCUOSjI33NOosF6CL7QVMqDwWDhvtx7CUCEU
JRGKgATu2RJ9hCQsRaUS5l6ExzEJ6h+YCkSvykjlPHXCB5h+iuZuaDQmT2C3ysTwXOBNV2PDskix
EmXUwnMpUCSorzyU1ra1hqPlKLkwkmPzTWYr0Pqh1ofqCIRc0SHKyC5AlJZXWoQAoS9oETWOwZT6
WTgcHmWoDzyuElQt8MXwpHXACDvsdkZHkc9PR8PdO+CUJbRmcEgmjM5vQC9Un9fc8O+FVlQTSXYe
Ktx3g+FbeBIfrd00hPmcFBS4tQqtwKoZo5i23kaX2vGjHpjqqlbb6L9pyQ8zu1cjpC3xWH2Ugx7n
Pss91Onq5vP5gJq+Wl+8XdGDHqxIQWTLP9ibN+xPqshWbOnqU3VdOPBVlnI+nb8+SHRHFbqRAtD4
o/CNHwlfq6P4Wo2ET9VQCZeL9Ili6V+PxCfxKI/EUSyBtNn0PL4lttqWQvOv90pnHLkR1GgDgSqh
KxFgBH4S8HF9/TOiu4G/IlVq5gcko+GoxUEDgowCjzQ0yK0DQ+aFzskI5vK/LP3WeNUIT9PBh8Ek
STGPXvOS4kVXV4Bk2bmgU+nzdp5jG+DvIdsDGG5p+/Lwwmy7OrhJI9pJCk9y0e+spHtNGUk1OUZB
ZGdxp5xL805fnc3nE2ZiW3jI7rPzx2f00NLZ8EXlRWiysnzTkiofXeZI1rJb2ipaZ7ZsSau02NtI
/TB9HFEHJAvKZr9bHVsIs0syVLPVh83sA5S/KJxd57m3+TtqwiimiZ0tX3Sornc6i5fni8WEObUD
3eOCEaVOGmqhA4lIqSCi+fnyxeL9+sSak7XYnyxeT04W89OXvSV2HhD3BEv33EF9rXYJKQfirA9E
rcXdPu8lEn/RBTXfmaGoVZqcTfX3P/4LUEsDBAoAAAAAABmLvUgAAAAAAAAAAAAAAAAFABwAaHR0
cC9VVAkAA1KIS1dwjEtXdXgLAAEE9QEAAARQAAAAUEsDBAoAAAAAAB2NvUgAAAAAAAAAAAAAAAAL
ABwAaHR0cC90ZXN0cy9VVAkAAxmMS1dwjEtXdXgLAAEE9QEAAARQAAAAUEsDBAoAAAAAABuLvUgA
AAAAAAAAAAAAAAARABwAaHR0cC90ZXN0cy9jYWNoZS9VVAkAA1WIS1dwjEtXdXgLAAEE9QEAAARQ
AAAAUEsDBBQAAgAIACGNvUgLgX35+AAAAIkEAAAwABwAaHR0cC90ZXN0cy9jYWNoZS9tZW1vcnkt
Y2FjaGUtcHJ1bmluZy1zdGRlcnIudHh0VVQJAAMejEtXVYhLV3V4CwABBPUBAAAEUAAAAM2RwUrE
MBCGz/Yp5qiX0saF1SAe7B4ULAgiCuJhmsxmw8bJkqTKvr2JevMkpa7HCTPfZP6vxz2Ic2iXctHK
pgV6j20jaucVOghJBdr5kCyb5+XZoj19gYsbXvtLCc4bk58hJgwp1nVd9b9GrWgYTWZFSj3FiIZu
v6hXeWgrIQ860lPA5XOd57U1Y8BkPT/atOn8685Rqa6RtaMgoUO1IQ0NEOOQd8KAakus47SrHiKF
ktfKqiR/sCUcV0cnkzaw/g7u8y5MZHzYZy6Pzv0dWczlWhzStZjdtfgnRuYiW7apIO8zPRso6Uh4
uutAeWZSxUrueUNndfUBUEsDBBQAAgAIACKNvUhSeimDhwAAAMAAAAA9ABwAaHR0cC90ZXN0cy9j
YWNoZS9uZXR3b3JrLWVycm9yLWR1cmluZy1yZXZhbGlkYXRpb24tc3RkZXJyLnR4dFVUCQADIIxL
V1WIS1d1eAsAAQT1AQAABFAAAACVzLEKwjAQgOG9T3GjLtKkhWoQl7o4BAQHBXGI6TUGwkWSq9K3
N46Orj8/nzYzyA2ITrVC1RLwnUUtVyFaEyCxTfiMiT25a7duRXOD7R7vk9spyEiDxpyNw7PnR28Y
XUyzggVNISwr/SM3f8iePH/JU9F9pAONUcHl2IONRGi5tPK8TPBD9QFQSwMECgAAAAAAGYu9SAAA
AAAAAAAAAAAAABIAHABodHRwL3Rlc3RzL2NhbnZhcy9VVAkAA1KIS1dwjEtXdXgLAAEE9QEAAARQ
AAAAUEsDBAoAAAAAABmLvUgAAAAAAAAAAAAAAAAYABwAaHR0cC90ZXN0cy9jYW52YXMvd2ViZ2wv
VVQJAANSiEtXcIxLV3V4CwABBPUBAAAEUAAAAFBLAwQUAAIACAAdjb1IByEdLc0AAACRAgAAOwAc
AGh0dHAvdGVzdHMvY2FudmFzL3dlYmdsL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS1zdGRlcnIu
dHh0VVQJAAMZjEtXUohLV3V4CwABBPUBAAAEUAAAANWQvW4CMRCEa3iKLaE5HT/RgYUoOAqQcmWU
IkqxZy/GwqyRvaeIt48voaOKrkq5I803O9PgHeZrmFVqWaqXCugrzcp54YNGD1F0pFuI4th+VKvF
avkJmyOfwlaBD9ZmGZJglFQUxbj5M2pPbWczK5E0lBJaev2l7rLpoiAbPZkh4P65OvDJ2S6iuMDv
Ts51uN489dcB2XiKCmrUZzJQAjG2ORNa1Bdik4a1eksU+732Tot6YiuYjEfTQQlsHsP99EIhG+I9
c7nz/n+SvwFQSwMECgAAAAAAHY29SAAAAAAAAAAAAAAAABYAHABodHRwL3Rlc3RzL2Z1bGxzY3Jl
ZW4vVVQJAAMZjEtXcIxLV3V4CwABBPUBAAAEUAAAAFBLAwQUAAIACAAdjb1IhDbUOoQAAADAAAAA
QwAcAGh0dHAvdGVzdHMvZnVsbHNjcmVlbi9mdWxsc2NyZWVuZWxlbWVudC1kaWZmZXJlbnQtb3Jp
Z2luLXN0ZGVyci50eHRVVAkAAxmMS1cZjEtXdXgLAAEE9QEAAARQAAAAncyxCsIwEIDhvU9xoy7S
1kprEJe6OAQEBwVxiOk1BsKdJFelb298Bdefn0+bGeotVK1qSrVpAT+pKutVYGsCRLERXxzFk7u1
3bpr7rA74GNyewUJadCYknF48fLsjaDjOCtY0BTCstB/y568/Mhz1j3TkUZWcD31YJkIreSWn7cJ
fii+UEsDBAoAAAAAABqLvUgAAAAAAAAAAAAAAAAXABwAaHR0cC90ZXN0cy9pbmNyZW1lbnRhbC9V
VAkAA1OIS1dwjEtXdXgLAAEE9QEAAARQAAAAUEsDBBQAAgAIABqLvUhIg36ihAAAAMAAAAA5ABwA
aHR0cC90ZXN0cy9pbmNyZW1lbnRhbC9mcmFtZS1mb2N1cy1iZWZvcmUtbG9hZC1zdGRlcnIudHh0
VVQJAANTiEtXU4hLV3V4CwABBPUBAAAEUAAAAJ3MsQrCMBCA4b1PcaMu0oZqaRCXujgEBAcFcYjp
GQ/CnSSp0rc3voLrz89n7Ayqh6bTqtXrGvCTmlqtgjgbIGYX8SUxE/vrpu9adYPtHu+T32lIyKPB
lKzHM+XnYDN6ibOGBU8hLCvzt0xM+Ueeik7CB36IhstxACfM6HJp5XnbQGP1BVBLAwQKAAAAAAAm
i71IAAAAAAAAAAAAAAAAEQAcAGh0dHAvdGVzdHMvbWVkaWEvVVQJAANoiEtXcIxLV3V4CwABBPUB
AAAEUAAAAFBLAwQKAAAAAAAai71IAAAAAAAAAAAAAAAAGgAcAGh0dHAvdGVzdHMvbWVkaWEvY2xl
YXJrZXkvVVQJAANUiEtXcIxLV3V4CwABBPUBAAAEUAAAAFBLAwQUAAIACAAgjb1IIrmOhVEBAAB/
AwAAOQAcAGh0dHAvdGVzdHMvbWVkaWEvY2xlYXJrZXkvY2xlYXIta2V5LWhscy1hZXMxMjgtc3Rk
ZXJyLnR4dFVUCQADHIxLV1SIS1d1eAsAAQT1AQAABFAAAADNkk9LAzEQxc/2U8zRXpbdrbY2SqF/
RAVXCqV4KB7SZHYbmk2WZGLptzfbqhS8WRCPycy8ee+XrLIBu8pYmiZ5lr7B3eL+Yb4s5iMYE2Hd
0AvSzrptYY0i6xZIoWFgLIFHImUqCA2YYw/Ux6Zb4FI69B6UB20F153Vn2wp+B7yIXztAtz5LM2T
QxEcCYeNda3canDTG/SjjydT2hGL41XVbvHEHfkkSX4hNcN1qKJWdFxEV7zC56PqJA5tGcRBjfKU
RJ7/IxLf9lsEU2tKVQXHSVnzqmgztXWjsT09ciM1OgZTLjYoIWobvo7JYM3FFo3057FbenTtq8yU
IPZDm8Fl56J7CrF3cwrRYzUPdTNDrd7RjYUIddCcUE5CWbauUwbyWASp2isPpbM1OORtFkubWBHW
GBQUz4Phdb+Xn5XIyM/vcOAYvVTW7WMOE7Tudj4AUEsDBAoAAAAAACCLvUgAAAAAAAAAAAAAAAAV
ABwAaHR0cC90ZXN0cy9tZWRpYS9obHMvVVQJAANbiEtXcIxLV3V4CwABBPUBAAAEUAAAAFBLAwQU
AAIACAAgjb1IegoXgLoBAADQBAAAQAAcAGh0dHAvdGVzdHMvbWVkaWEvaGxzL2hscy1hY2Nlc3Np
YmxpdHktZGVzY3JpYmVzLXZpZGVvLXN0ZGVyci50eHRVVAkAAxyMS1dUiEtXdXgLAAEE9QEAAARQ
AAAAzZNPa9tAEMXPzaeYY3MRluO/ajE4StMWomIwIQdTylg7khavdtXdUY2/fWftJjjklhDo3rSa
9+bxe9ImnWajNBsMkuE4/Qmf11++ru6L1QKWzNR2/IN47/yucFaz82vivsvAOoZAzNrW0HdgTzPQ
noY+ASrlKQTQAYwr0VxszrYM321LgQcYzuFxF9A+pINhcnwJnktPnfPRbjOdXU0HkuO7rdwiE3ld
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
s5P5JIe/+vv/kT8BUEsDBBQAAgAIACGNvUisgsNp6QAAAMYDAAA5ABwAaHR0cC90ZXN0cy9tZWRp
YS9tZWRpYS1wbGF5LXN0cmVhbS1jaHVua2VkLWljeS1zdGRlcnIudHh0VVQJAAMejEtXVohLV3V4
CwABBPUBAAAEUAAAAN2TwUoDQQyGz/YpcrQX2d0Wagfx4PbQQhcEEQXxkJ1Np0PHTJnJKn17s+LN
U128eExIvj/5Qxo8QbWEcmHmpSkKoI9cFtVViBYDJLGJjjGJZ/eyuJ4t569ws6K2d7cGMnHXUM7o
6MnLvkYhF9PJwCX3IUwnza/Jnr0MyAel+8gb3kUDz/c12MhMVjSnNe8YfDdCJZN8j7+NzmnFnTYd
DGhjoFFgwSR15J13fcJh2i9/4tsx0BCtkbtAyUCNdk8dKJuxVU1o0R7U1Txuq8dMafBs5a2YH2y9
z+RiOkrhr+5+Hrn65+RzvuATUEsDBAoAAAAAACCNvUgAAAAAAAAAAAAAAAAeABwAaHR0cC90ZXN0
cy9tZWRpYS9tZWRpYS1zb3VyY2UvVVQJAAMcjEtXcIxLV3V4CwABBPUBAAAEUAAAAFBLAwQUAAIA
CAAmjb1IUpVrzU4BAACXBAAAQgAcAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlh
c291cmNlLWFwcGVuZC1idWZmZXItc3RkZXJyLnR4dFVUCQADKIxLV2GIS1d1eAsAAQT1AQAABFAA
AADNkTFPwzAQhXd+xW3A0MZOG4dWYgBKBRKVEAUWVFVX+9JaOHZ0doDw6wlCwMRMt6en09333j3J
cjqWU3EyLMZqBRXjdoHeVsGZ9W0bd+ddogjRbj06RwaI+XQglRgrOHqe25/hS+bA6wdPbw3pROba
2zTDhMdwtCQdvIHDKnXNIWAKNZDXofWJmMxx70C2DC1rukC9o+wiMC3IWPxVA1mofJiPRXbLIYV+
EcVsHrjGdIXeOOKYLcKLpewT6VPM+yA1+fTNN9TgrCeQaiQOciHVQBSDfAJf8aUcTooRzNq6uSNv
iO+Z6Kk8GZVqWopcqMkKrrc+sPVb6NMkDu7e1rTBSBApwaYD7Wx/Dzakse3ds8cl1o2j87aqiGc2
Ng67G+yI4RUjoDF9mykAQuy83nHw9p34DzS1v2iTv9BkXpT/iqb296FK7W1rpdiH1j4AUEsDBBQA
AgAIACeNvUi+NWeqPgEAAHoDAABQABwAaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVk
aWFzb3VyY2UtY29uZmlnLWNoYW5nZS1tcDQtdi1iaXRyYXRlLXN0ZGVyci50eHRVVAkAAyqMS1dj
iEtXdXgLAAEE9QEAAARQAAAA5ZLdasJAEIXv+xRzp17E/BiTKvSiaqVCBam2N1Jk3J3EpZvdMLtp
mz59I/TvHbw7HIaZ8x1mH+fTNJ7GyTCNkhcoGMs1GlVYLQ+bxp1mrScHTpUGtSYJxHwTxFmUZtB/
Xarf4Ttmy4cnQx81CU9yZZRfoMcB9LckrJHQK3xb9wC9rYCMsI3xxCQHnQPh1jYsaI7iROHcMq1J
KvxTQTzOkmGSRuGGrbfdInLh0nKF/h6N1MQuXNs3ReE50lksO5CKjP/JNxSglSGIs1F0tf8HPblA
6Di7FOgkirMgGgfJBL7x02E6SmDRVPUjGUm8Y6J9fj3Ks2keJVHW/cOqNJaVKaGj8Wz1TlV0REfg
yMOxBaFVdw+OJLDp3NvnLVa1pllTFMQL5WqN7QO2xPCODlDKrk1vAcG1RpzYGvVJfPUFUEsDBBQA
AgAIACiNvUgSEAQYPQEAAHoDAABSABwAaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVk
aWFzb3VyY2UtY29uZmlnLWNoYW5nZS1tcDQtdi1mcmFtZXJhdGUtc3RkZXJyLnR4dFVUCQADLIxL
V2WIS1d1eAsAAQT1AQAABFAAAADlkM1uwjAQhO88xd6AAyQOYApSDwWKilQkVGgvCKHF3oBVx47W
Ttv06ZtK/XuH3kaj0e58sxfj6VBMxbA/EukBcsbzGp3JvdXHTRUuszpSgGDODq0lDcR83RMyHUro
PC/NT/iW2fPx0dFbSSqSXjkTFxixC50tKe80tPNYl23A6Asgp3zlIjHpbuNAsvUVK5qjulAy90xr
0gZ/VU+MZNbPhmmyYR99c4hCsvRcYLxDpy1xSNb+xVDyWelTLBuQglz87tdXYI0jEHKQtvZ/oOU/
hM7Ef4HOUiF76aiXTeALX/ZHAwmLqigfyGniHRPtx1eDsZyO0yyVkwOszs6zcWdoaCJ7uzMFnTAQ
BIpwqkFZ0/yDEymsGvfmaYtFaWlW5TnxwoTSYn2PNTG8YgDUulkzekAItVMX9s68E7c+AFBLAwQU
AAIACAAsjb1IL7pTWowAAACbAAAAOQAcAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21l
ZGlhc291cmNlLXBsYXktc3RkZXJyLnR4dFVUCQADNIxLV22IS1d1eAsAAQT1AQAABFAAAAANyL0O
gjAQAODdp7gXwNDyU2XDsJg4KXExDkd7YJPSkivE1KeX7csnc1FneZXJMwjVlKKR5bGoS+i2ebmT
N8Q9E73UqVB1o3IhK/WG6+QDWz+BDn7l4Ho704CRINIKQwLtLPldpHHbt30+cF4cXbZxJO5sXBym
GyZi+GIENIYMrAEQYvL6w8HbH/HhD1BLAwQUAAIACAAujb1INw4nD6sAAAAHAwAAOwAcAGh0dHAv
dGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLXJlbW92ZS1zdGRlcnIudHh0VVQJ
AAM3jEtXcIhLV3V4CwABBPUBAAAEUAAAAM3QsQ6CMBSF4d2nuC+AaQu0lE3DYuKkxMU4lHLBJtCS
FmLw6eUB1BW2k3/6chihPCJpxCRQkSc0Z2KfSgbF1A8XtDX60iPeRRYLngsSyyR9wKm1zhvbgnZ2
9K4rTY+VCggBR6hm0J1BuyzUalrq4XZV/dDhcWoa9IUJQ6fms5rRw0sFUHWNNYwOFITZ6qd31rzR
79hXGv9Dy9akcUJ+0SjN+Lq0ZLuvyS3QPlBLAwQUAAIACAAwjb1IBqgMu6IAAADRAQAARgAcAGh0
dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLXNvdXJjZWJ1ZmZlci1tb2Rl
LXN0ZGVyci50eHRVVAkAAzuMS1d0iEtXdXgLAAEE9QEAAARQAAAAzdC9DoIwGIXh3av4bgDTH2iR
TcNi4qTExTiU8oFNSktaiKlXLxegs24n7/TkMEJFRoqM7YDKKqcVp1vGcqiXcTqj6zA0AfEmSy5F
JQnhQtzhODgfjBtAezcHbxszYqsiQsQZ2gTaGnTrQq2Wte6vFzVOFg9L32OoTZysSieVMMBTRVBd
hx3MHhTE5PQjeGdeGDbsI638RuO7vPgpjZN/eO0NUEsDBBQAAgAIACCNvUgdsVM3hAAAABoBAABG
ABwAaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvU291cmNlQnVmZmVyLWFib3J0LXJlYWR5
U3RhdGUtc3RkZXJyLnR4dFVUCQADHIxLVxyMS1d1eAsAAQT1AQAABFAAAADNzLEKwjAQgOG9T3Gj
LpJUMRrEpS4OAcFBQRxieo2BcCdJqvTtjW/h+vPzGTtBuwWp9EpqIQA/WYp2EdnZCKm4hC9OJZC/
qc1Sre+wO+Bj9HsNGak3mLP1eAnl2dmCntOkYUZjjPPG/KEcKJQfea56YDrSwBqupw4cE6ErtdXn
bWPomy9QSwMEFAACAAgAIo29SGcFdBLsAAAAXwEAAC0AHABodHRwL3Rlc3RzL21lZGlhL3BkZi1z
ZXJ2ZWQtYXMtcGRmLXN0ZGVyci50eHRVVAkAAyCMS1dYiEtXdXgLAAEE9QEAAARQAAAAhY9Pa8Mw
DMXv/RQ69ZbYKYG0hlBKt7HDDiN0p7KDG6uJwf9my4N++zls7XXS5T1+T0I6N51oG8HbetvyT3g9
nd4H/MqYCK56WuxTtuFFO2k+hreDUwNaT3hQKmJKAuSvgGbT1bx0U8ZKFnI0MBMFwdgDiS3nnFlU
WrJvrdBXNEdPZFBVxktVj5PeO2mxLyt9jiMmRuWSOqjr+h7td0ut6RawlyEYPUrS3rGSWZ3/febP
HiNKwucYfTx6a9GRAHSjz44wogLpABco4HIjhCjdhGDQTTSD1clKGmeoIM0+GwWXB9uATnfd7bbt
6gdQSwMEFAACAAgAJI29SDTWKdoKAQAAGgIAAC8AHABodHRwL3Rlc3RzL21lZGlhL3JlbG9hZC1h
ZnRlci1kaWFsb2ctc3RkZXJyLnR4dFVUCQADI4xLV1mIS1d1eAsAAQT1AQAABFAAAAClUE1LAzEQ
PdtfMUcLsuyuxW7DukhbRMEiWMSDeJhNZtOlaVKSWaT/3qF68OMkzSHMvJn3Xl7quq7htrfzA9Oa
I+EOGjk/oTUjp4dgHz09ERoF37blMhA6qKAVMMEN5MAhbKHI8qrMZyUk0ikTDHTY7R0xXUBxpCVo
rqWUeTZa4QHKGRRTNSlUfgX0noq8zFzQ6CCyjrQPkXtvX6fV5WzyBvWS2sE2Sui8opTQkrzQysZc
SFsFQnRkThFmjLwIvuvtEJH74F963iw+Q0h3h944igoWqDdkJDd5bMUTWtRb8iadluo5Ubz3XVj2
mtUfbQXno7PxL4fpvxy8+fq4Yy5ksiEeRNcPzo1HH1BLAwQUAAIACAAkjb1I/cVbqUgBAAB0AgAA
LwAcAGh0dHAvdGVzdHMvbWVkaWEvdGV4dC1zZXJ2ZWQtYXMtdGV4dC1zdGRlcnIudHh0VVQJAAMj
jEtXWohLV3V4CwABBPUBAAAEUAAAAM2QT08CMRDF73yKORE9sP8gAo1oyKLRRBKCGE0Ih7Iddpt0
p2s7i/DtLVE4e3R6mdf35pd25vII2RjSoRikIhkCfvk0ySJjC2nAceGwsY41levhqD8ebOB2htu2
vBPgkdQcvZclvmuucslYWncUcEWtMded+T8ka9J8Qr4Gurb0TDsr4GORQ2GJsOBwFzJ7abTqrM/8
aHQz3sDTarVY4meLnmGny5OctXXzqEmat+XLlNQSa8s4VcoFugD500CaDaMknDSMhSy0zkDF3Ig4
vlhilCRJXKPSMt5rhbbHlbPMBlXPWKmiotT3JGucBKRtXYE+5vCSiA/cPUcn41N1+djghPHAcWOk
pj/841fmDsOmH5yzLrd1jcQCkArbEqNDBZIAT6aA7ZERnKQSwSCVXEGtfS25qKAHvrKtUbC9eBlo
f+4Hg6Tf+QZQSwMEFAACAAgAJY29SGXmqlIGAQAAeAMAADYAHABodHRwL3Rlc3RzL21lZGlhL3Ry
YWNrLWluLWJhbmQtaGxzLW1ldGFkYXRhLXN0ZGVyci50eHRVVAkAAyWMS1dbiEtXdXgLAAEE9QEA
AARQAAAAzZFBS8NAEIXP9lfMUS8laQNpVyloKioYKZTiIXjYZqfbpZudsDuh9N+7aRUEj5XicZg3
33szU6W5yFKR5MPpOP2Au+Xj02JVLmZwz4xNy2/Ie/K7kpxh8kvkrhXgiCEgs3EauhbcSQPNSXQL
UimPIYAJYKmWdlBdxKWUBxhN4dsLcB/SZDQ8NsFz7bEl3+OqfDKeZjHHHNednonepowoqfGVtI6K
hzi0ExAHLaqf8bPkP8Zn6bkgtzG685INuXfD24Ka1mJfPUunLHoBhay3qCABdHIdN4O1rHfoVDjv
dquA/sVtaG5qFr/YAq4HVzdnOTj19Z7jXpJRkz9EruusvRx58ofkT1BLAwQUAAIACAAmjb1IWM2s
EtgBAABmBgAAJgAcAGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tYXV0aC1zdGRlcnIudHh0VVQJAAMn
jEtXW4hLV3V4CwABBPUBAAAEUAAAAO2U0WvbMBDGn5e/4h6Thzh20sSxGIXNoaywjhB3dBDGUOSz
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
s1TLuKseCuUhs3X06r6x7T+To+mf/PvvkT8AUEsDBBQAAgAIACqNvUhRddBJhAAAAMAAAAA9ABwA
aHR0cC90ZXN0cy9tZWRpYS92aWRlby1wbGF5LXN0YWxsLWJlZm9yZS1tZXRhLWRhdGEtc3RkZXJy
LnR4dFVUCQADL4xLV2aIS1d1eAsAAQT1AQAABFAAAACdzLEKwjAQgOG9T3GjLmJqsTaIS10cAoKD
gjjE9IwH4U6SVOnbG1/B9efnM3aCugPV6kZptQb8JLWsF0GcDRCzi/iSmIn9td2suuYG2z3eR7/T
kJAHgylZj2fKz95m9BInDTMeQ5hX5m+ZmPKPPBWdhA/8EA2XYw9OmNHl0srztoGG6gtQSwMEFAAC
AAgAKo29SDJaPAW8AAAAkgEAACsAHABodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLXF1ZXJ5LXVybC1z
dGRlcnIudHh0VVQJAAMwjEtXZohLV3V4CwABBPUBAAAEUAAAAKWQMWvDMBCF5/pX3BgvJXYMqUXo
UGdIIB5Lh9LhLF1kEeVkpDPB/z5q6datGR/c+z7u9bhA3UK1VU2lqhbolqp1/eyDRg9RdKQpRHFs
P7cvm7b5gt2ehtm+KkgkPaWElk7B2nzxlksXBbnoyRT9/8GCUbrAZ2fniOICfzgZu3CdPH2nA7Lx
FBV0qEcysAZiHLITBtQXYpMekZO8J4pHPoe906L+sBWsiqfyIQOb3+F+/kIhG+KSuTx7XxZ3UEsD
BBQAAgAIACuNvUiYUrS6QgEAAMEFAAAqABwAaHR0cC90ZXN0cy9tZWRpYS92aWRlby1yZWRpcmVj
dC1zdGRlcnIudHh0VVQJAAMyjEtXZ4hLV3V4CwABBPUBAAAEUAAAANWTTUsDMRCGz/ZXzNEelN30
Y90gBbs9KFgoLaJQekizs7uhMSlJVq2/3tmiFz1IXYo6t4SZ553PqdgBSyFOeD/mLAJ89nHEzrWV
QoML0uHWuqBMuUwueml/BZcTXNfliINHk0/Re1HivQpVJgKW1u04nJpa625n+mOyMio0yAXRlTU3
prAcHmYZSGsMykB/5PMktMo/qcQH5R/e07+1ZUkeYwracKBAja3AQbiQWVOosnaiyXbfH/u41di8
roXJNToOmZAV5kCtMWJNmrAWckNd9e2quvPomp5NlAz8C5vm0znptlI4ZO7/kcyOtKvLD/75MGXE
IINsfjVewIgMCl37akaZks4cNQqPC6QJLqOXpCgG/XQ4yHtJtIL9otLaVMKDsebsFZ0FhwVp1iZA
2qKcg46C/eZRsKMfBfsTC/Yd+Q1QSwMEFAACAAgALI29SF8OmIneAAAAUgIAACsAHABodHRwL3Rl
c3RzL21lZGlhL3ZpZGVvLXVzZXJhZ2VudC1zdGRlcnIudHh0VVQJAAMzjEtXaIhLV3V4CwABBPUB
AAAEUAAAAKWRQUsDQQyFz/ZX5Ggv0l0LtUPx4Pag4IIgoiAesrPpdOiYlJms0n9vVrwJHtxjQt73
kpcWT1CvoVq5ZeXqGuizVIv6IonHBFl9pqNkjRxeV1eX6+UbbLbUDeHaQSHuWyoFAz1H3TeoFCSf
HJzzkNJ81v6bHDnqiHw0ehS+4504eHlowAszebWezXxgiv0El0L6s/69hGATNyY6ODBhoklgxayN
8C6GIeO47Xc+8n5MNFa3yH2i7KBBv6ceFkCMnXlCh/5gqZZpVz0VymNm2+jV/WLbf2Zn80kOf//9
C1BLAwQKAAAAAAAki71IAAAAAAAAAAAAAAAAEAAcAGh0dHAvdGVzdHMvbWlzYy9VVAkAA2OIS1dw
jEtXdXgLAAEE9QEAAARQAAAAUEsDBBQAAgAIACiNvUhTv6CVxAAAAP4AAAA/ABwAaHR0cC90ZXN0
cy9taXNjL2RlbGV0ZS1mcmFtZS1kdXJpbmctcmVhZHlzdGF0ZWNoYW5nZS1zdGRlcnIudHh0VVQJ
AAMrjEtXY4hLV3V4CwABBPUBAAAEUAAAAE2OTWvCQBRF9/6Ku2yhlow1JhnEjamrUKQfKxEZkqd9
mMyElxdL++s7QgteuIsLB+6ZJWYxTdLprIDJ7NxYkz4WaY5y7PpX8g3JuxDtsvwpy+2iyNJivsdW
Qk+i32h5ULC/uJYbHINc2zm1MEmCu/4WG1A774OiDl4de7x8VNX9ZHf7uscyBptyvT1U3LFSg1UM
Nnz62yUP57WrPyk6XDjqHd5I/30snkWixZewsj8hjPHuCuPILT1AZfS1U4IG/JCEyS9QSwMEFAAC
AAgAKI29SCrHYwzFAAAA/gAAAFsAHABodHRwL3Rlc3RzL21pc2MvZGVsZXRlLWZyYW1lLWR1cmlu
Zy1yZWFkeXN0YXRlY2hhbmdlLXdpdGgtZ2MtYWZ0ZXItdmlkZW8tcmVtb3ZhbC1zdGRlcnIudHh0
VVQJAAMrjEtXY4hLV3V4CwABBPUBAAAEUAAAAE2OTWvCQBRF9/6Ku2yhlhlrnGQQN6auQpF+rERk
SJ72YTITJi+W9td3hBa8cBcXDtwzU3oxVdl0VkAbO9dWZ4+5MijHrn8l31B8j0Q7kz+Z3C4KkxXz
PbYx9BTlGy0PAvYX13KDY4jXdk4stFK462+xAbXzPgjq4MWxx8tHVd1Pdjev+R7LFGzK9fZQccdC
DVYp2PDpb5c8nNeu/qTkcOGkd3gj+fexeI4xWXxFFvYnhDHdXWEcuaUHSBx97YQgAT8Uw+QXUEsD
BAoAAAAAAB2LvUgAAAAAAAAAAAAAAAATABwAaHR0cC90ZXN0cy9wcmVsb2FkL1VUCQADWohLV3CM
S1d1eAsAAQT1AQAABFAAAABQSwMEFAACAAgAI429SC5PhX9SAQAA/gIAADwAHABodHRwL3Rlc3Rz
L3ByZWxvYWQvc2luZ2xlX2Rvd25sb2FkX3ByZWxvYWRfcnVubmVyLXN0ZGVyci50eHRVVAkAAyKM
S1daiEtXdXgLAAEE9QEAAARQAAAApVFLT8MwDD6zX+HjdqCvTesaIaTRCg1pk1A1xGHaIWu8LiJL
SpKC9u9x6eCChBBTLnbs72F7E6dsErNoGqTZdAuL9fqxxNcWnYe9rBfeN+e0kKLECuUblugaox3m
XKkdr14Y2L4g4ED9lPV1mEQTGKK1xsJ1nGTj2Qj2FHdNLAzjJA0iejGbRVEUEsq0tkIXelILTM0H
m9+9UVq0x+Zeaq6eyuVck8Gj8TgXgsgcA94H8K1EMOqF1qq/m1jxEyQZfFkBfHdxlATKVMRkfWWx
MdZLXW/S2ThLtnDzoPfmloEydU3f4Dy33gVB8A+qAndtTVwO/Yom4TUue9Y7AtHiCahQXELcmcuN
pn22lntp9LP0h9wcG4VdtuBaKLQMcl4d6MARoOY70oTu8qiFu2yqJ4e221chK89+cDMYDq5GFylo
cV7c51zcY23siXh1q9Ro8AFQSwMECgAAAAAAJI29SAAAAAAAAAAAAAAAABQAHABodHRwL3Rlc3Rz
L3NlY3VyaXR5L1VUCQADI4xLV3CMS1d1eAsAAQT1AQAABFAAAABQSwMECgAAAAAAKYu9SAAAAAAA
AAAAAAAAACoAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9VVAkA
A22IS1dwjEtXdXgLAAEE9QEAAARQAAAAUEsDBBQAAgAIACONvUjuAxvv2AAAAPgBAABLABwAaHR0
cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvYXVkaW8tcmVkaXJlY3QtYWxs
b3dlZC1zdGRlcnIudHh0VVQJAAMijEtXWohLV3V4CwABBPUBAAAEUAAAAKWQwUoDQRBEz+5X9NFc
ZDeERIfgwc1BIQsBEQXx0DvTmQwZu8NMbyR/76x48+YeC6peUdXhBeZ30KzMojH1EugrN/X8JorF
CEltopMkDezfV7eLevkB6w31g783kEk7yhk9bcX74ngooaOBEozkqu7/YMWkrfA++CGhBuHXoIdW
Pk+RRvWI7CIlAy3aAzmogRj70gk92iOxy1PKSV8ypSfeyyZYNX/YBq6rq9mkBna/x/3sQiUv6VK4
PMQ4hRw46Ih8LvTy07jBwNuuBSvMZMfviueMMbjqG1BLAwQUAAIACAAjjb1IvfeaLuYAAABDAgAA
TAAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2F1ZGlvLXJlZGly
ZWN0LWFsbG93ZWQyLXN0ZGVyci50eHRVVAkAAyKMS1daiEtXdXgLAAEE9QEAAARQAAAApdDBSgMx
EAbgs/sUc7SXZbeUVkPx4Pag0IWCiIJ4mE2maWiclGS20rc3UW+eZI8JmW/y/z1eYH4L7UotWtUs
gT5T28xrHzR6iKIjnUIUx/ZtdbNolu+wfuR9uFPgg7X5GpJglFTXddX/m9rQMNpsJZKeUkJL2x/1
Pg8dFeRBT2YKXD7XBd47O0YUF/jFyaELHydP5fSAbDxFBR3qAxlogBiHvBMG1Edik6alek4US18b
p0X9sRVcV1ezSRvY/Bb3nQuFbIiX7PLo/RTZsZNCPmU991QyKHjddaADM+nSXX5zRu9M9QVQSwME
FAACAAgAJI29SP8/rg6nAAAAigEAAFgAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1
cml0eVBvbGljeS9ibG9iLXVybC1kb2VzLW5vdC1tYXRjaC1zb3VyY2Utc2VsZi1zdGRlcnIudHh0
VVQJAAMjjEtXWohLV3V4CwABBPUBAAAEUAAAAN2PvQ6CMBRGd5+iow5QqPwnDko0cTCSMBJDruUG
q5WSSzXh7cU46DO4nW8656v8OAv8zIvcJA1OTFm8wzB2si7RFmR6JDuyQbUdaI0NQ6KV44s4Cdn8
tlPtBgY8nq8o7ZbIUL3vnqBVAxabBZur3wWW8dI8SGIO8oI8N4QHbBR8yfHDSLgi8PiktsaOPQ68
0DAi8Un2oXr97nMl06pDJkS6nFX/cOIFUEsDBAoAAAAAACSNvUgAAAAAAAAAAAAAAAA9ABwAaHR0
cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvdXNlckFnZW50U2hhZG93RE9N
L1VUCQADI4xLV3CMS1d1eAsAAQT1AQAABFAAAABQSwMEFAACAAgAI429SGoIh0DYAAAA+AEAAFMA
HABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS91c2VyQWdlbnRTaGFk
b3dET00vYWxsb3ctYXVkaW8tc3RkZXJyLnR4dFVUCQADIoxLV1qIS1d1eAsAAQT1AQAABFAAAACl
kMFKA0EQRM/uV/TRXGQ3BhMHySGbgwEXBBEF8dA705kMGbvDTK+Sv3dWvHlzjwVVr6jq8AzzW2iW
ZtGY+gboKzf1/CqKxQhJbaKTJA3s35ar69XiHe621A9+bSCTdpQzenoQ74tjU0JHAyUYyVXd/8GK
SVvhffBDQg3CL0EPrXycIo3qHtlFSgZatAdyUAMx9qUTerRHYpenlJM+Z0o73ss2WDV/2AYuq4vZ
pAZ2v8f97EIlL+lcuDzEOIUcOOiIfCr08tO4wcDrYwtWmMmO3xXPJ8bgqm9QSwMEFAACAAgAJI29
SBgG83C7AAAAkgEAAFMAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGlj
eS91c2VyQWdlbnRTaGFkb3dET00vYWxsb3ctdmlkZW8tc3RkZXJyLnR4dFVUCQADI4xLV1uIS1d1
eAsAAQT1AQAABFAAAAClkDFvwjAQhWfyK26EpUoCUsBCHRoGKjUj6lAxXOzDWDFnZF+E+PeYio0N
xifd+z7d6/AK9QqqRi0qVTZAl1SV9YcPGj1E0ZHOIYpj+9cs58vFHtYb6kf7qSCRdJQSWvoJ1uaL
r1waFOSiJ1N0r4MFo7SBD86OEcUF/nVybMPp7OmetsjGU1TQoj6SgRKIsc9O6FEPxCa9IyfZJYrf
fAgbp0U9sRVMi8nsLQObx3D/f6GQDfGauTx6PytuUEsDBBQAAgAIACCLvUjknUc3hAAAAMAAAACC
ABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvdXNlckFnZW50U2hh
ZG93RE9NL2Jsb2NrLWxvYWRpbmctdXNlci1hZ2VudC1pbWFnZS1mcm9tLW5vbi11c2VyLWFnZW50
LWNvbnRlbnQtc3RkZXJyLnR4dFVUCQADW4hLV1uIS1d1eAsAAQT1AQAABFAAAACdzLEKwjAQgOG9
T3GjLmKDtjSIS10cAoKDgjjE9BoPwkWSq9K3N76C68/PZ+wMqoO61Wqjtx3gJ9drtQrR2QBJXMJX
TELsb03XNuoOuwM+Jr/XkJEHgzlbjxeSZ28FfUyzhgVPISwr87dMTPIjz0WnyEceo4brqQcXmdFJ
aeV520BD9QVQSwMEFAACAAgAJI29SAGNMHmEAAAAwAAAAGsAHABodHRwL3Rlc3RzL3NlY3VyaXR5
L2NvbnRlbnRTZWN1cml0eVBvbGljeS91c2VyQWdlbnRTaGFkb3dET00vZGVmYXVsdC1zcmMtb2Jq
ZWN0LWRhdGEtdXJsLWFsbG93ZWQtc3RkZXJyLnR4dFVUCQADI4xLVyOMS1d1eAsAAQT1AQAABFAA
AACdzLEKwjAQgOG9T3GjLtLWQmoQl7o4BAQHBXGI6RkPwp0kqdK3N76C68/PZ+wM7QYapbtG1wrw
k5q6XQVxNkDMLuJLYib2V9Wv++4G2z3eJ7/TkJBHgylZj2fKz8Fm9BJnDQueQlhW5m+ZmPKPPBWd
hA/8EA2X4wBOmNHl0srztoHG6gtQSwMEFAACAAgAK429SH5XspDeAAAAUgIAAEsAHABodHRwL3Rl
c3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS92aWRlby1yZWRpcmVjdC1hbGxvd2Vk
LXN0ZGVyci50eHRVVAkAAzKMS1driEtXdXgLAAEE9QEAAARQAAAApZFBS8RADIXP7q/I0b1IWxZX
B/Fg96BgQRBREA/pNDs77JgsM6my/95UvAke7DEh73vJS4dHaC6hXrtV7ZoG6LPUVXOWxGOCrD7T
QbJGDq/ri1V1/gZXG+rHcO2gEA8dlYKBnqPuWlQKko8OTnlMabno/k2OHHVCPho9Ct/xVhy8PLTg
hZm8Ws9mPjDFYYZLIf1Z/15CsIkbE+0dmDDRLLBi1lZ4G8OYcdr2Ox95PySaqlvkIVF20KLf0QAV
EGNvntCj31uqZd5VT4XylNkmenW/2PafxclylsPff/8CUEsDBBQAAgAIACuNvUh49wvduwAAAJIB
AABMABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvdmlkZW8tcmVk
aXJlY3QtYWxsb3dlZDItc3RkZXJyLnR4dFVUCQADMoxLV2uIS1d1eAsAAQT1AQAABFAAAAClkDFv
wjAQhWfyK26EpUoiBMVCDCQDlZoRMaAOF/swVswZ2Rch/j1uxcZWxifd+z7d6/AO9QqqpZpXqq6B
bqkq6w8fNHqIoiNdQxTH9rj8nJeLH1i31I92oyCRdJQSWvoO1uaLbS4NCnLRkym6/4MFozSBT86O
EcUFPjg5N+Fy9fSbdsjGU1TQoD6TgRKIsc9O6FEPxCa9IyfZJ4pffAqt06Je2AqmxWT2loHNc7i/
v1DIhnjPXB69nxUPUEsDBBQAAgAIACyNvUgYfwSE3wAAAFICAABmABwAaHR0cC90ZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvdmlkZW8td2l0aC1odHRwLXVybC1hbGxvd2VkLWJ5
LWNzcC1tZWRpYS1zcmMtc3Rhci1zdGRlcnIudHh0VVQJAAMzjEtXbIhLV3V4CwABBPUBAAAEUAAA
AKWRQUsDQQyFz/ZX5NheZHctrQ6lh24PCl0QRBSkh+xsOh06ZspMVum/NyveBA/uMSHve8lLgxeo
7qBcmnlpqhugz1wW1XWIFgMksYnOMYln97a8nReLPay21PZubSATdw3ljI5evBxrFHIxXQxMuQ9h
Nmn+TfbsZUA+Kd1HfuBDNPD6WIONzGRFezrzgcF3I1wyyc/6u+icTmxUdDKgwkCjwIJJ6sgH7/qE
w7bf+cT3c6ChukfuAiUDNdojdVAAMbbqCS3ak6aax131nCkNmW29FfOLrf+ZXM1GOfz99y9QSwME
FAACAAgALI29SNTjkwmEAAAAwAAAAFkAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1
cml0eVBvbGljeS93b3JrZXItYmxvYi1pbmhlcml0cy1jc3AtYmxvY2tzLWV2YWwtc3RkZXJyLnR4
dFVUCQADM4xLV2yIS1d1eAsAAQT1AQAABFAAAACdzLEKwjAQgOG9T3GjLtLGYjWIS10cAoKDgjjE
9IwH4U6SVOnbG1/B9efnM3YCtYGm022j1RLwk5paLYI4GyBmF/ElMRP7a7du69UNtnu8j36nISEP
BlOyHs+Un73N6CVOGmY8hjCvzN8yMeUfeSo6CR/4IRouxx6cMKPLpZXnbQMN1RdQSwMEFAACAAgA
LI29SGOqrGyCAAAAqAAAAEAAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBv
bGljeS94c2wtYWxsb3dlZC1zdGRlcnIudHh0VVQJAAM0jEtXbYhLV3V4CwABBPUBAAAEUAAAAC2N
QQrDMAwE73mFXhA7vaT4FYW+ILgbYlAsIyml/n1NKXtahtnNcrbCmxepBFXRRHth0OHeUgjLbZ3j
yJLuMcZgyJcW7yFLdVR//vtDuOQeFCaXZlgw74z5Y0xcKmglMM4h0A/YAfg0aHpDbVwnksqdljnS
js2vMUSbguxqTdTxmr5QSwMEFAACAAgALI29SGOqrGyCAAAAqAAAAFIAHABodHRwL3Rlc3RzL3Nl
Y3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wtdW5hZmZlY3RlZC1ieS1zdHlsZS1zcmMt
Mi1zdGRlcnIudHh0VVQJAAM0jEtXbYhLV3V4CwABBPUBAAAEUAAAAC2NQQrDMAwE73mFXhA7vaT4
FYW+ILgbYlAsIyml/n1NKXtahtnNcrbCmxepBFXRRHth0OHeUgjLbZ3jyJLuMcZgyJcW7yFLdVR/
/vtDuOQeFCaXZlgw74z5Y0xcKmglMM4h0A/YAfg0aHpDbVwnksqdljnSjs2vMUSbguxqTdTxmr5Q
SwMECgAAAAAAJI29SAAAAAAAAAAAAAAAABwAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2Nvb2tpZXMv
VVQJAAMjjEtXcIxLV3V4CwABBPUBAAAEUAAAAFBLAwQUAAIACAAkjb1I3OJSaYQAAADAAAAAOgAc
AGh0dHAvdGVzdHMvc2VjdXJpdHkvY29va2llcy9hc3NpZ24tZG9jdW1lbnQtdXJsLXN0ZGVyci50
eHRVVAkAAyOMS1cjjEtXdXgLAAEE9QEAAARQAAAAncyxCsIwEIDhvU9xoy7SRCE2iEtdHAKCg4I4
xPQaA+FOklTp2xtfwfXn5zN2BtmBUHojdKsAP1m0chXZ2QipuIQvTiWQv6ntupN32B3wMfm9how0
GMzZeryE8uxtQc9p1rCgKcZlY/6WA4XyI89VD0xHGlnD9dSDYyJ0pbb6vG0MQ/MFUEsDBAoAAAAA
ACSNvUgAAAAAAAAAAAAAAAAcABwAaHR0cC90ZXN0cy9zZWN1cml0eS9kYXRhVVJML1VUCQADI4xL
V3CMS1d1eAsAAQT1AQAABFAAAABQSwMEFAACAAgAJI29SPeoFL6EAAAAGgEAAFoAHABodHRwL3Rl
c3RzL3NlY3VyaXR5L2RhdGFVUkwveHNzLURFTklFRC1mcm9tLWRhdGEtdXJsLWluLWZvcmVpZ24t
ZG9tYWluLXN1YmZyYW1lLXN0ZGVyci50eHRVVAkAAyOMS1cjjEtXdXgLAAEE9QEAAARQAAAAzcyx
CsIwEIDhvU9xoy6SViEaxKUuDgHBQUEcYnrGg3AnSar07Y1v4frz81k3QbeBVptVa5QG/ORWdYso
3kVIxSd8SSrE4arXS61usN3jfQw7Axl5sJizC3im8uxdwSBpMjDjMcZ5Y/9QJqbyI09VJ+EDP8TA
5diDF2b0pbb6vF2kofkCUEsDBAoAAAAAACCLvUgAAAAAAAAAAAAAAAAdABwAaHR0cC90ZXN0cy9z
ZWN1cml0eS9saXN0ZW5lci9VVAkAA1uIS1dwjEtXdXgLAAEE9QEAAARQAAAAUEsDBBQAAgAIACCL
vUh0YaKWhAAAABoBAABRABwAaHR0cC90ZXN0cy9zZWN1cml0eS9saXN0ZW5lci94c3MtSlNUYXJn
ZXROb2RlLW9uY2xpY2stYWRkRXZlbnRMaXN0ZW5lci1zdGRlcnIudHh0VVQJAANbiEtXW4hLV3V4
CwABBPUBAAAEUAAAAM3MsQrCMBCA4b1PcaMu0gZraRCXujgEBAcFcYjpGQ/CnSSp0rc3voXrz89n
7Ayqh6bTaq3bHvCTmlqtgjgbIGYX8SUxE/vrpu/a+gbbPd4nv9OQkEeDKVmPZ8rPwWb0EmcNC55C
WFbmD2Viyj/yVHQSPvBDNFyOAzhhRpdLK8/bBhqrL1BLAwQUAAIACAAnjb1Iz8riQcoAAADdAQAA
PQAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwtdmlkZW8tc291cmNlLWZyb20tcmVtb3RlLXN0
ZGVyci50eHRVVAkAAyqMS1dfiEtXdXgLAAEE9QEAAARQAAAApZAxa8MwEIXn+Ffc2CzGCoa0ImSI
M7RQj6VDyXCWzoqIegrSmZJ/X7ntlql4vAfve/dejzfYPIHa6lZp1QJ9ZdVs6hANBkhiEl1jEs/u
Y/vYquYEuxce415DiM4VGbJgklzXddX/G3WkYXKFlUl6yhkdvf5SD8V00VCMgewS8PxcF3n0bkoo
PvK7l3MXP6+B5usZ2QZKGjo0Z7LQADEOJRMGNBdim5e1esuU5r2O3oi+Y2t4qFbrRQls/4b76YVC
LqZb4fIUwrr6BlBLAwQUAAIACAAojb1IVla/dYQAAADAAAAAOgAcAGh0dHAvdGVzdHMvc2VjdXJp
dHkvbG9jYWwtdmlkZW8tc3JjLWZyb20tcmVtb3RlLXN0ZGVyci50eHRVVAkAAyuMS1dfiEtXdXgL
AAEE9QEAAARQAAAAncyxCsIwEIDhvU9xoy7SlEo1iEtdHAKCg4I4xPQaA+FOkqvStze+guvPz2fs
DM0WVKdbpdUa8JNV3awiOxshiUv44iSB/K3btKq+w+6Aj8nvNWSkwWDO1uMlyLO3gp7TrGFBU4zL
yvwtBwryI89FD0xHGlnD9dSDYyJ0Ulp53jaGofoCUEsDBAoAAAAAACCLvUgAAAAAAAAAAAAAAAAh
ABwAaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvVVQJAANciEtXcIxLV3V4CwABBPUB
AAAEUAAAAFBLAwQUAAIACAAkjb1IT3y3p+4AAACJBAAATgAcAGh0dHAvdGVzdHMvc2VjdXJpdHkv
bWl4ZWRDb250ZW50L2luc2VjdXJlLWF1ZGlvLXZpZGVvLWluLW1haW4tZnJhbWUtc3RkZXJyLnR4
dFVUCQADJIxLV1yIS1d1eAsAAQT1AQAABFAAAADt0rFKBDEQBuDafYoptVl2V2HPIBbuFQouCCIK
YjGbzOXCxcmRzCr39iZqZyUn2FyZkPmS+TMj7qA7h7ZXZ61qFkDvqW262geNHqLoSNsQxbF97hen
ffcCFze8CpcKfLA2b0MSjJLquq7GX1NLmmabrUQyUkpo6fZLvcpFGwW50JPZBy6PGwKvnJ0jigv8
6GQ9hNetp7K6RjaeooIB9ZoMNECMU74TJtQbYpP26+ohUSx5LZ0W9cNWcFwdnRxy+4fc2HwH99kX
CtkQd9nl2fuD/FeyYyeFvM96npryowqe7gbQgZl0maR85g29M9UHUEsDBBQAAgAIACSNvUjft5J4
hAAAAMAAAABCABwAaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtY3Nz
LWluLWlmcmFtZS1zdGRlcnIudHh0VVQJAAMkjEtXXIhLV3V4CwABBPUBAAAEUAAAAJ3MsQrCMBCA
4b1PcaMu0kQhNYhLXRwCgoOCOMT0GgPhIslV6dsbX8H15+czdga5BaH0Rui2A/wU0cpVTM5GyOwy
vlLmQP6murWSd9gd8DH5vYaCNBgsxXq8BH72ltGnPGtY0BTjsjF/y4EC/8hz1UOiI41Jw/XUg0tE
6Li2+rxtDEPzBVBLAwQUAAIACAArjb1IFFy6Jj8BAABcBQAAOQAcAGh0dHAvdGVzdHMvc2VjdXJp
dHkvdmlkZW8tY3Jvc3Mtb3JpZ2luLWNhY2hpbmctc3RkZXJyLnR4dFVUCQADMYxLV2mIS1d1eAsA
AQT1AQAABFAAAADVk01LAzEQhs/2V8zRHpTN2rI2SMFuDwoWSosoFA9pdnY3NE5KklXrr3e26EUv
1qro3AZmnpd3PiZqA+kARCZ7QooB4GMQSXpsnVYWfNQe185HQ9UiO+2J5A7OxrhsqqGEgHGCIagK
r1xVccWIm1YSuNFi0Zl8HRyVj7mj0lSNV9E4ujGxzt392mKbXSgqLHoJudI1FpAAklqyJiyVXiEV
YR9xjNcB/SWVbmx0lB/YEg47B93O4o19PBB97ueAfHY+msOQA0rbhHrK9awxQ4sq4ByZtkieslL3
+idZ1i8zFt4OjS3UKgA5OnpG78BjCdo1FEEke3mh4nVF2wmqiJXzG3ZAjbXd3yKnyZ8gGzKxRc6Z
zlfUbljC7TTnSROhbi+Lax6UNe+ONxU/9BW7gb/5K3Z19amv2Edhl73/D/ILUEsDBBQAAgAIACuN
vUhNV6wdhgAAAMAAAAA/ABwAaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1wb3N0ZXItY3Jvc3Mt
b3JpZ2luLWNyYXNoMi1zdGRlcnIudHh0VVQJAAMyjEtXaYhLV3V4CwABBPUBAAAEUAAAAJXMsQrC
MBCA4b1PcaMu0oRCNYhLXRwCgoOCOMT0TAPhTpKr0re3jo6uPz+fdRPoDajWNMpoBfguqtarxN4l
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
DZvz9sF5cHT/5AfwIvtfLGz1iv8AUEsDBAoAAAAAACyNvUgAAAAAAAAAAAAAAAAJABwAaW1wb3J0
ZWQvVVQJAAMzjEtXcIxLV3V4CwABBPUBAAAEUAAAAFBLAwQKAAAAAAAmi71IAAAAAAAAAAAAAAAA
DwAcAGltcG9ydGVkL2JsaW5rL1VUCQADaIhLV3CMS1d1eAsAAQT1AQAABFAAAABQSwMECgAAAAAA
Jou9SAAAAAAAAAAAAAAAABgAHABpbXBvcnRlZC9ibGluay9pbXBvcnRlZC9VVAkAA2iIS1dwjEtX
dXgLAAEE9QEAAARQAAAAUEsDBAoAAAAAACaLvUgAAAAAAAAAAAAAAAArABwAaW1wb3J0ZWQvYmxp
bmsvaW1wb3J0ZWQvd2ViLXBsYXRmb3JtLXRlc3RzL1VUCQADaIhLV3CMS1d1eAsAAQT1AQAABFAA
AABQSwMECgAAAAAAJou9SAAAAAAAAAAAAAAAADAAHABpbXBvcnRlZC9ibGluay9pbXBvcnRlZC93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9VVAkAA2iIS1dwjEtXdXgLAAEE9QEAAARQAAAAUEsDBAoA
AAAAACaLvUgAAAAAAAAAAAAAAAA6ABwAaW1wb3J0ZWQvYmxpbmsvaW1wb3J0ZWQvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvcmVuZGVyaW5nL1VUCQADaIhLV3CMS1d1eAsAAQT1AQAABFAAAABQSwME
CgAAAAAAJou9SAAAAAAAAAAAAAAAAFAAHABpbXBvcnRlZC9ibGluay9pbXBvcnRlZC93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9yZW5kZXJpbmcvbm9uLXJlcGxhY2VkLWVsZW1lbnRzL1VUCQADaIhL
V3CMS1d1eAsAAQT1AQAABFAAAABQSwMECgAAAAAAJou9SAAAAAAAAAAAAAAAAF8AHABpbXBvcnRl
ZC9ibGluay9pbXBvcnRlZC93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9yZW5kZXJpbmcvbm9uLXJl
cGxhY2VkLWVsZW1lbnRzL2Zsb3ctY29udGVudC0wL1VUCQADaIhLV3CMS1d1eAsAAQT1AQAABFAA
AABQSwMEFAACAAgAJou9SH2HF5QJAQAA1AMAAHAAHABpbXBvcnRlZC9ibGluay9pbXBvcnRlZC93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9yZW5kZXJpbmcvbm9uLXJlcGxhY2VkLWVsZW1lbnRzL2Zs
b3ctY29udGVudC0wL2ZpZ3VyZS1zdGRlcnIudHh0VVQJAANoiEtXaIhLV3V4CwABBPUBAAAEUAAA
AO2PwUrDQBCG732KObaHJs22SZqggkaFHoKBHBRKCdvNmK6uu2F2o+Tt3VKKnsVjb/8Mw/fPV/IR
WAZRmrM4jxjgl40WLFBGcAXkBGFvyEndbZMsXa13cHWP+6G7ycGibku0lnf4LN2h4A47Q2MOUz0o
NZuUfyZLLd0RWXu6NHqjX00OL1UBwmiNwvmdv/nkSraT7ZkfxMtkB9LhB7ejFk2NriLTI7kRrOw0
VwpbQKLrecTSdQzT90fZ3XGLT/s3D30gMtRsTljv0s5gKn9P3EFYm4EEFlwcMCwMYYmt5D9pHsUJ
C9hqEfpqZ9zYow0rxUek0JedUnN7/C8QoKRGYCxbXiQuEv8p8Q1QSwMECgAAAAAALI29SAAAAAAA
AAAAAAAAABEAHABpbXBvcnRlZC9tb3ppbGxhL1VUCQADM4xLV3CMS1d1eAsAAQT1AQAABFAAAABQ
SwMECgAAAAAALI29SAAAAAAAAAAAAAAAABUAHABpbXBvcnRlZC9tb3ppbGxhL3N2Zy9VVAkAAzOM
S1dwjEtXdXgLAAEE9QEAAARQAAAAUEsDBAoAAAAAACyNvUgAAAAAAAAAAAAAAAAcABwAaW1wb3J0
ZWQvbW96aWxsYS9zdmcvc2l6aW5nL1VUCQADM4xLV3CMS1d1eAsAAQT1AQAABFAAAABQSwMEFAAC
AAgALI29SBynZ5gcAQAAsgcAAEAAHABpbXBvcnRlZC9tb3ppbGxhL3N2Zy9zaXppbmcvaW5saW5l
LS1kaXNwbGF5LWJsb2NrLS0wMS1zdGRlcnIudHh0VVQJAAMzjEtXM4xLV3V4CwABBPUBAAAEUAAA
AO3PTUsDMRCA4Xt/xRzbQ/cj/dpdVNBVoYfFhR4USilpdtxGY7JMUiX/3pQievDkSWVvkxDeyVNx
DyyHdFFM04JNAN9smrBIGcEVkBOEnSEndbteZJN8uoGza9wd2osCLOqmQmt5i/fS7UvusDXkCxjq
g1KjQfXjstTSHZOrUJdGL/WjKeChLkEYrVG4cBfevHIlm8H6ox+xWb4B6fCFW6/FdoWuJtMhOQ9W
tporhQ0g0fk4ZYtsBsPnW9lecYt3u6cQvSEytF2essHSjGAov564g3hlDiSw5GKPcWkIK2wk/5zG
6WzOIjZN4rDaGec7tHGtuEeKw7LTtL08/i8SoKRGYCyf/DvEPOkRvxFRms7/CUWSZb2iV/SKbxTv
UEsDBAoAAAAAACyLvUgAAAAAAAAAAAAAAAANABwAaW1wb3J0ZWQvdzNjL1VUCQADdIhLV3CMS1d1
eAsAAQT1AQAABFAAAABQSwMECgAAAAAAM429SAAAAAAAAAAAAAAAACAAHABpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL1VUCQADQYxLV3CMS1d1eAsAAQT1AQAABFAAAABQSwMECgAAAAAA
M429SAAAAAAAAAAAAAAAACQAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9V
VAkAA0GMS1dwjEtXdXgLAAEE9QEAAARQAAAAUEsDBAoAAAAAADSNvUgAAAAAAAAAAAAAAAArABwA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vcmFuZ2VzL1VUCQADQ4xLV3CMS1d1
eAsAAQT1AQAABFAAAABQSwMEFAACAAgAM429SE2enExYAAAAsgAAAFIAHABpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9yYW5nZXMvUmFuZ2UtaW50ZXJzZWN0c05vZGUtYmluZGlu
Zy1hY3R1YWwudHh0VVQJAANBjEtXQYxLV3V4CwABBPUBAAAEUAAAAMtJrEwtUkgsUdAw0DHQVCjO
rEpVsDAwqDAzMOBSUAhKzUtJLQrLTC3HoSSHCO1OOfnJ2QrVHiG+PrU4lcIV56dUKlQ7+btEQtRa
6FhA1ZpbmFSYWphwAQBQSwMEFAACAAgAM429SJxz6osjAQAAZQIAAFAAHABpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9yYW5nZXMvUmFuZ2UtaW50ZXJzZWN0c05vZGUtYmluZGlu
Zy1kaWZmLnR4dFVUCQADQYxLV0GMS1d1eAsAAQT1AQAABFAAAADNj01PwkAQhu/9FXPUtMuWANpj
RUhM/AwlEI9Ld4SN291md2qLxP/ugkTjgcSjp0neefJ+MMaAL6xuKvR8Ikjw6bLgS1zdKjqecaO0
5DPUKDxyLba2IUboiTn0jSbPVVVbRyh5Oyh5iytWa0Ev1lUHzHNpK+6EWYeI2f4wZQidx5L8g5XI
VspIZdYMuzpoKHvUURTH8f9pJkpqhD70ynNg/WQAcT8ZQZ5HLGJPV0UB10LrgMJvB2gVbUItEAaE
W4cxhsC6g7zXlHkTWsmfnw+0lkAbZ1sQMN/WOHXOuh6EpDhsRAeC4CxN0nPw6h0hS9PuIk2jGGCG
RqJbKGxPMX8yGGtbvsLuZn5/93Ga/aat3MJu/Dh5/oKzJDvCl9mwG2XD6BNQSwMEFAACAAgAM429
SOQI2n5bAAAAaQAAAFQAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9yYW5n
ZXMvUmFuZ2UtaW50ZXJzZWN0c05vZGUtYmluZGluZy1leHBlY3RlZC50eHRVVAkAA0GMS1dBjEtX
dXgLAAEE9QEAAARQAAAARcpLCsMwDEXRuVfxVtA9lJBpKbgbELFIBK5UZDkhu89n0um5N72fOWOg
WkVniAZ74ynaywpjk1isB0hBPvcva8D85stEV6pS/q2ddy2IxW0D4bP/eHQ3fyClA1BLAwQUAAIA
CAAzjb1IX+7Fnf0HAACCGwAAWAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9t
L3Jhbmdlcy9SYW5nZS1pbnRlcnNlY3RzTm9kZS1iaW5kaW5nLXByZXR0eS1kaWZmLmh0bWxVVAkA
A0GMS1dBjEtXdXgLAAEE9QEAAARQAAAA1Vlrb+M2Fv2eX0Ek2M1uET0c26ntzGTRyQMFtu0Wk0GL
/bSgJMrihBK9JBU7M9v/vpcvWZIlZxaYAt0OOpLJS/Lc57nUvClUyW5O3hQEZ/AoicIoLbCQRL09
r1UeLM5hWKoXRm5OVoxWTxdo9UwlVSRDn08Q/KfITgUZSbnAivJqhSpekWszlXCREREkXClertBk
s0MZvJPs+uS3E7ud2yTljIsVOounSzMXPlBG7mieu/kEp09rwesqC7xovtB/2gfZEyRnNENnWZbZ
uZxXKshxSdnLCpW84nKDUwewxGJNAfKElCi2QxsOyhk9BGGg0TMxgIpJD+l0Oh3YX+JKBpIImrcm
Jf1EzBntQwNGcrVCcTj34xmVG4ZhE1qBZRzCLc1UAYvj+E8OH84yWq2blRabc41+63rHwaVVAaBU
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
dWFsLnR4dFVUCQADQoxLV0KMS1d1eAsAAQT1AQAABFAAAAB1zEELgjAYgOG7v+K7VeBhUdTYLXVU
oAkZQsflPmE0JsxRmvTfiwwPgvfnfcP0lKUxh4Rn2W7PGWhlEJYrBmcs0aIpkFtbWQahMDMHpTIS
HsIqcdPIwGHtPC1atCAczIlPFlCrFwIlpNkQ4sH3YyTaXOFzgkzldIgDXRV36A6XJH5PwIFWsoUu
SKNrL6lP/3JL1w35ydE2Oubja28/UEsDBBQAAgAIADONvUiGpeSvdVkAADV0BwBIABwAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vcmFuZ2VzL1JhbmdlLWlzUG9pbnRJblJhbmdl
LWRpZmYudHh0VVQJAANCjEtXQ4xLV3V4CwABBPUBAAAEUAAAAMXdW69e53md4XP/Cp61hcWIi3v6
yInttkGzMeIgaWHkgJaWHaKyaFBUYjfofy8t2eSiNMf73M8YA+iRLYnzHhS15prvvD5t7t+/f+/T
f3r9xde/vf3q05++fPvy05/98y8+/efbX/2PV2//9D9/9fWrLz7/9B9uv7h9+dXtp1+8/MPrr9/e
f3v71dv7b26/+vqLt199+uq3v3v95u3t55/++6PPPv3321/d/90XL9/++vWb337zw7769PPXv/30
zcsvf/Nu4h/++D/3X33189evvnz7119++5u3v//d7Wfvrv+Lt79/+4Mf/vCH//9/Ri8/e/v1yy++
+fn8+Mf37t988uTxo5t7P7z55Nm9H//4B/d/cP/nf/mLX9z7xe3br39378Nv3Hv3W+9G7n1Tvvfg
3i9/9/LNy69++eBf/uLXr9589fYn//rup/3JvQef3Lv+/f8iUzfL1I1OPRSphyL1XKceLVMvdOrx
n1M34k/wBv9aPRGphyJ1+Fk9vffLz2/fvvzsX28///m7S2+++1M7/EEdfXaKPjxFD38pnt/75bvf
uH31my8vf6L6j+nki0Py4SF5+FnevLslPn/92bs7+8u3f/Hn//OzL27/+D/f/oLKP3j4ir65sasP
D9WHp+qNW310p/qvty8//zj1p99zuP7xnet/9frzP3xy7/Gd67/9PU8O1z95/1f1p68/u/zVOv3h
08/s6YfvBh99Yzpf9d274fv31fn659N3Rv6N4+bFsnX4Sn+ovvk/+nPr0fkX5uGN+OX8qPbsEHj3
9fvHZ91PX/3bne99j4fVO1+eH90656sey6sOt8LDd1+Kn73+7Z9+3Cf33v//R4drnt75k3pw55rD
l/zDZ3e/5L+53/70mz95v364+vlHN8y3N9iHu+Qfb3//9u9ef3777mf99BB595X1+99+8ef5d//3
/fTh6/HRgw/3xoedO7fHh995ekjffKj81+/+pO/EvvfHTs2HH5r/87dfXPY++v2n1qMPrfe/Ko8+
dN7/vseHxuPv/Tl++AX+3p/i+z90+JJ+9OSjP8Of3Pk6vfrdh7/2j55+c3P8+s3L3/z53vjT/z9c
8+5L9ndvXn92+9VXr778zV9/+dXbN19/9vbV6y+//U5w/UdOvz7Pl8er06/Mi+X56vDX/vED+4B1
+Bk+vjEPQ6fmw4++Dbx/cn//9x0aj47fSu78vkPjsXzKnq56Ap6yp+vvftu9+fPow4//Oh++BT9+
Rs9S8y/A8/MB5mb56/ni7qPrBj66nrx/un/n1+DxnUfS6fr3D/dvTgF3LjrcLE8efvwc++gr5/xG
9OjD4+fBN4+f8YrHh4fGs8ND43AgefJEPDSeiYfGqfX04qHx5OKhcfiifPJMPzQe64fG4dvsk4++
Nt9/x//e7zoU3h8U3l/90W++v/IbrJDCcP/m3ZdVihB4wscJPOGjBZ7wMQNP+MiBJ3z8wBMNFMFj
DSzBYzmi4KkcV/jt2UAXvtbAGL7WQBq+tsMb3t2hDu+2sIcvEgTitR0O8a6PRnzDxyT+VFwiEw8v
8YmHAUrxGMEqXiOIxWszbvHWjF68tcEwXjWQjMcJnvFjnoNqvJ5jG9/yEY5v7HGOt1O040su5vGF
Gfl4K8M/vuOjIN/wsZC/VTUQka/luMi39ujI23uM5G2ClLy2w0ve3aEm79rYySciBOUzBEc5TezQ
lHcBpvIYRVZenPCVl3KU5Vs+1vKNPeLydoq7fGmLvrxcx+CnD97/mX98rSTcmiPPCykjzwupIs8L
KSLPC6khzwspIc8LPUGet3qAPG+1/HheavExuCt7egzGengMxnp2DMYcOgZZR45BtgvHYJC7MYg5
bAyyqRqDiRSNwTPQMmPQtcgYdLEYgxYHYxDjXgxilItBimoxSO2xGERtKwZtTsXgLOdLMYi3oBhM
pU4MJlwmBumOEoOhDInBADVikGoQMZhJhRhMpEAM3ph6PgzGWjwMplwdBmkXh0Ga2zCIOTQMso4M
g2wIw2Ch4MJghbMw0AZHhUEWozBo7UwYBBkJg1BLhMFUCsJgwvVgkO5wMBjyNBiEdxgMEE5ZsFLS
3t9TPC+kFjwvpBY8L6QWPC+kFjwvpBY8L/QseN7qWfC81bLgeallweCu7FkwGOtZMBjrWTAYcywY
ZB0LBtmuBYNBbsEg5lgwyKYWDCZSCwbPQMuCQdeyYNDFFgxa3IJBjFswiFELBilqwSC1t2AQtS0Y
tLkFg7Ocb8Eg3rJgMJVaMJhwLRikOxYMhjILBgPUgkGqYcFgJrVgMJFaMHhj6lkwGGtZMJhyLRik
XQsGaW7BIOZYMMg6FgyyoQWDhYIFgxVuwUAbHAsGWWzBoLWzYBBkFgxCLQsGU6kFgwnXgkG6Y8Fg
yLNgEN5ZMEA4ZcHSMGsWPC+kFjwvpBY8L6QWPC+kFjwvpBY8L/QseN7qWfC81bLgeallweCu7Fkw
GOtZMBjrWTAYcywYZB0LBtmuBYNBbsEg5lgwyKYWDCZSCwbPQMuCQdeyYNDFFgxa3IJBjFswiFEL
BilqwSC1t2AQtS0YtLkFg7Ocb8Eg3rJgMJVaMJhwLRikOxYMhjILBgPUgkGqYcFgJrVgMJFaMHhj
6lkwGGtZMJhyLRikXQsGaW7BIOZYMMg6FgyyoQWDhYIFgxVuwUAbHAsGWWzBoLWzYBBkFgxCLQsG
U6kFgwnXgkG6Y8FgyLNgEN5ZMEA4ZcGPxaXPaxY8L6QWPC+kFjwvpBY8L6QWPC+kFjwv9Cx43upZ
8LzVsuB5qWXB4K7sWTAY61kwGOtZMBhzLBhkHQsG2a4Fg0FuwSDmWDDIphYMJlILBs9Ay4JB17Jg
0MUWDFrcgkGMWzCIUQsGKWrBILW3YBC1LRi0uQWDs5xvwSDesmAwlVowmHAtGKQ7FgyGMgsGA9SC
QaphwWAmtWAwkVoweGPqWTAYa1kwmHItGKRdCwZpbsEg5lgwyDoWDLKhBYOFggWDFW7BQBscCwZZ
bMGgtbNgEGQWDEItCwZTqQWDCdeCQbpjwWDIs2AQ3lkwQDhlwU/EpS9qFjwvpBY8L6QWPC+kFjwv
pBY8L6QWPC/0LHje6lnwvNWy4HmpZcHgruxZMBjrWTAY61kwGHMsGGQdCwbZrgWDQW7BIOZYMMim
FgwmUgsGz0DLgkHXsmDQxRYMWtyCQYxbMIhRCwYpasEgtbdgELUtGLS5BYOznG/BIN6yYDCVWjCY
cC0YpDsWDIYyCwYD1IJBqmHBYCa1YDCRWjB4Y+pZMBhrWTCYci0YpF0LBmluwSDmWDDIOhYMsqEF
g4WCBYMVbsFAGxwLBllswaC1s2AQZBYMQi0LBlOpBYMJ14JBumPBYMizYBDeWTBAOGXBT9W/XqL3
H48DE6kGg4mUg8FE6sFgIgVhMJGKMJjokTAY65kwGGuhMJhqqTC5PXssTNZ6LkzWejBM1hwZJl2H
hkm3a8NkkeMwqTk6TLopD5ON1IfJU9ECYhK2hJiEMRGTGDdiUuNITGpUiUmLMjFp7Z2YVG0oJnEu
xeSY51MxqbesmGylWEw2XC0m7Q4Xk6XMi8kCBWPSaogx2UnJmGykZkzeqnpoTNZaaky2XDYmbdeN
SZvDMak5cky6Dh2TbmjHZKKAx2SG6zGhCYePSRf7MYntAJkUmSCTUouQyVZqyGTDRWTS7igyWfIY
mZR3jkzoTkHyM3Ht0ydPHj2pWTJbSTmZraSizFZSVGYrqSuzlZSW2UpPl9leD5jZXsuY2VqLmeGd
25NmONjDZjjY82Y46JAzTDvqDNNdeIaj3J5h0OFnmE4FGs6kCA2fpZZDw7ZF0bCNNRr2OEjDIDdp
GKQsDXNUpmFuj9MwbPs07HOihudGX6nhQAuq4Vxq1XDG5WqY74g1HMvQGo5Qt4a5Bl3DqVSv4UwK
2PANrmfYcLDF2HDOlWyYdzEb5rlnw6BD2jDtqDZMh7ANVwq2DZc4b0MhcYQbpjFyw97OuWGUUTeM
tbQbzqXgDWdc84b5DnvDMU++YXyH3xAXlX+rw8T9mxp+g4lUvsFEyt5gIjVvMJGCN5hItRtM9Kgb
jPWcG4y1kBtMtYSb3J493iZrPdsmaz3YJmuOapOuQ9qk2/Vsssgxm9QcySbdlLHJRmrY5KloATYJ
W3pNwpiuSYy7NalxtCY1KtakRbmatPZWTao2VJM4V2pyzPOJmtRbPk22UpwmG65Mk3aHpclSZtJk
gYI0aTU0muykFE02Uocmb1U9hCZrLYEmWy4/k7Zrz6TN4ZnUHHUmXYecSTf0ZjJRwGYyw6WZ0ITD
zKSLjZnEdsBMikyXSalFy2QrdWWy4aIyaXdEmSx5nEzKO0smdKcgWT2me/9CjnkhZeR5IVXkeSFF
5HkhNeR5ISXkeaEnyPNWD5DnrZYfz0stPgZ3ZU+PwVgPj8FYz47BmEPHIOvIMch24RgMcjcGMYeN
QTZVYzCRojF4BlpmDLoWGYMuFmPQ4mAMYtyLQYxyMUhRLQapPRaDqG3FoM2pGJzlfCkG8RYUg6nU
icGEy8Qg3VFiMJQhMRigRgxSDSIGM6kQg4kUiMEbU8+HwViLh8GUq8Mg7eIwSHMbBjGHhkHWkWGQ
DWEYLBRcGKxwFgba4KgwyGIUBq2dCYMgI2EQaokwmEpBGEy4HgzSHQ4GQ54Gg/AOgwHCKQu+eSCu
7f1NxWAi1WAwkXIwmEg9GEykIAwmUhEGEz0SBmM9EwZjLRQGUy0VJrdnj4XJWs+FyVoPhsmaI8Ok
69Aw6XZtmCxyHCY1R4dJN+VhspH6MHkqWkBMwpYQkzAmYhLjRkxqHIlJjSoxaVEmJq29E5OqDcUk
zqWYHPN8Kib1lhWTrRSLyYarxaTd4WKylHkxWaBgTFoNMSY7KRmTjdSMyVtVD43JWkuNyZbLxqTt
ujFpczgmNUeOSdehY9IN7ZhMFPCYzHA9JjTh8DHpYj8msR0gkyITZFJqETLZSg2ZbLiITNodRSZL
HiOT8s6RCd1JSL5Rz+keJM8TMSTPEzEkzxMxJM8TMSTPEzEkzxNFSJ7HipA8j9UgeZ6qQTK4PYuQ
DNaKkAzWipAM1ixIBl0LkkG3DMlgcQHJoGZBMujGkAw2YkgGT0UPkkHYg2QQ5pAMYgtIBrUFJIMa
hmTQwpAMWgYkg6oPySC+gGRwzAsgGdRrkAy2YkgGGzYkg3YJksFSCMlgAUMyaFUgGezEkAw2YkgG
b1VFSAZrNUgGWzYkg7YNyaC9gGRQsyAZdC1IBt0UksFEA5LBzAKSAU1YkAy6HJJBbAnJoAghGZRq
kAy2YkgGGzYkg3YJksGSCcmgvIRkQHcSkh+Ka5/3IHmeiCF5nogheZ6IIXmeiCF5nogheZ4oQvI8
VoTkeawGyfNUDZLB7VmEZLBWhGSwVoRksGZBMuhakAy6ZUgGiwtIBjULkkE3hmSwEUMyeCp6kAzC
HiSDMIdkEFtAMqgtIBnUMCSDFoZk0DIgGVR9SAbxBSSDY14AyaBeg2SwFUMy2LAhGbRLkAyWQkgG
CxiSQasCyWAnhmSwEUMyeKsqQjJYq0Ey2LIhGbRtSAbtBSSDmgXJoGtBMuimkAwmGpAMZhaQDGjC
gmTQ5ZAMYktIBkUIyaBUg2SwFUMy2LAhGbRLkAyWTEgG5SUkA7qTkPxIXPuiB8nzRAzJ80QMyfNE
DMnzRAzJ80QMyfNEEZLnsSIkz2M1SJ6napAMbs8iJIO1IiSDtSIkgzULkkHXgmTQLUMyWFxAMqhZ
kAy6MSSDjRiSwVPRg2QQ9iAZhDkkg9gCkkFtAcmghiEZtDAkg5YByaDqQzKILyAZHPMCSAb1GiSD
rRiSwYYNyaBdgmSwFEIyWMCQDFoVSAY7MSSDjRiSwVtVEZLBWg2SwZYNyaBtQzJoLyAZ1CxIBl0L
kkE3hWQw0YBkMLOAZEATFiSDLodkEFtCMihCSAalGiSDrRiSwYYNyaBdgmSwZEIyKC8hGdCdhGRF
kze9/2Ie2YgpGWzElgw2YkwGG7Emg42Yk8FG0ZPBWhGUwVpNlMFWjZTJfVo0ZTJXRGUyV1RlMmex
MglbrkzCZVgmkwtZJjmLlkk4tmUyEuMyeU56ukzKHi+TMvdlUlsAM8kthJnkMDGTGDZmEjOQmWR9
ZSb1BTOTE2DgzCRfg2YyFkszGbGpmcRL1kymQmwmE1ibSazCzWQo9mYyEoMzefMqijOZq5EzGbPN
mcRtdCbxhTqTnMXOJGy5Mwmn8Ew2GvJMdhb0TBzDsmcS5vhMakt9JknIzyRV82cyFgM0GbEFmsRL
BE2mTIMm6SVCE/CTCq248emTJ4+e9CCazcQWzWZijmYzsUizmRil2Uzs0mymSNNssKjTbLAG1Gyu
ZtTwFi4yNVwsSjVcLGI1XLS8GrYtsobtslrD1QVcw6Jl17Ad8zXciQUbPl09xIZxz7FhnFM2DC40
GxYXoA2L2LRhD7M27BmyDcs+bsOBhW/DI2VA3HChptxwL4ZuuGNbN+yXuBuuheINVzB6w17FveFW
TN9wJ9Zv+JZXBHC4WDNwuGczOOzbEg77CwyHRcvDYdsicdhOVRzONGAcTi1sHHKKxeOwzYUcBpdI
DqvQyWGtRuVwL9ZyuGODOeyXzByumWwO60s5hyQp8fyMlT09hzsxn8Od2M/hTgzocCcWdLgTEzrc
KRo6XCwiOlysKTrcqzE6vZeLjk4ni5BOJ4uSTictSqdxy9JpvIzpdHah6TRpcTqNx55Oh2JQp89b
T9Rp3SN1WuemTosLVKfJharTJGZ1GsSuToMGrNO0L+t0YUHr9LQZ2DqdqOE6HYx1nQ7ZvE4HSr5O
50JgpzNY2GmwQux0LDZ2OhQjO30TLCo7nawxOx20nZ0O2NBOBxbSTpMWtdO4Ze00nmI73WloO91a
cDu1F8vbaZyDOy0uxZ1mIbnTXM3c6WCM7nTIVnc6UGJ3Ome6O80v4Z1CppT3Izje9OQd7sTyDndi
eYc7sbzDnVje4U4s73CnKO9wsSjvcLEm73CvJu/0Xi7KO50syjudLMo7nbTkncYteafxsrzT2YW8
06Ql7zQeyzsdiuWdPm89ead1T95pncs7LS7knSYX8k6TWN5pEMs7DRryTtO+vNOFhbzT02Yg73Si
Ju90MJZ3OmTLOx0oyTudC+WdzmB5p8GKvNOxWN7pUCzv9E2wKO90sibvdNCWdzpgyzsdWMg7TVry
TuOWvNN4Ku90pyHvdGsh79ReLHmncS7vtLiUd5qF8k5zNXmng7G80yFb3ulASd7pnCnvNL+UdwqZ
Ut6fnwLPe/IOd2J5hzuxvMOdWN7hTizvcCeWd7hTlHe4WJR3uFiTd7hXk3d6LxflnU4W5Z1OFuWd
TlryTuOWvNN4Wd7p7ELeadKSdxqP5Z0OxfJOn7eevNO6J++0zuWdFhfyTpMLeadJLO80iOWdBg15
p2lf3unCQt7paTOQdzpRk3c6GMs7HbLlnQ6U5J3OhfJOZ7C802BF3ulYLO90KJZ3+iZYlHc6WZN3
OmjLOx2w5Z0OLOSdJi15p3FL3mk8lXe605B3urWQd2ovlrzTOJd3WlzKO81Ceae5mrzTwVje6ZAt
73SgJO90zpR3ml/KO4VMKe8vToEXPXmHO7G8w51Y3uFOLO9wJ5Z3uBPLO9wpyjtcLMo7XKzJO9yr
yTu9l4vyTieL8k4ni/JOJy15p3FL3mm8LO90diHvNGnJO43H8k6HYnmnz1tP3mndk3da5/JOiwt5
p8mFvNMklncaxPJOg4a807Qv73RhIe/0tBnIO52oyTsdjOWdDtnyTgdK8k7nQnmnM1jeabAi73Qs
lnc6FMs7fRMsyjudrMk7HbTlnQ7Y8k4HFvJOk5a807gl7zSeyjvdacg73VrIO7UXS95pnMs7LS7l
nWahvNNcTd7pYCzvdMiWdzpQknc6Z8o7zS/lnUKmkvc/vhEfiK8F73AmdXc4k7I7nEnVHc6k6A5n
UnOHMz1yh4M9cYeDLXCHcy1vp7dwj9vpYk/b6WIP2+miY+207VA7bXelna5yaKdFx9lpO2V2upMq
O326WshO45ax0zgmdhrkwk6LHNhpkfo67VFep729rtOyjet0gNs6PVL6tE4XWrJO91JYpzuuq9N+
h9XpWqbqdIWiOu01TJ1upaROd1JRp295PVCniy1Pp3sup9O+q+m0zzGdFh1Lp22H0mk7lHQ6U4B0
OsUdnXKKw+i0jRWdBneITqvM0GmtReh0LxV0uuMCOu13/JyueXxO6zs9pyQp8fz0hOz9m9rhTIzn
bCbGczYT4zmbifGczcR4zmaKeM4Gi3jOBmt4zuZqeA5v4SKew8UinsPFIp7DRQvPYdvCc9gu4zlc
XeA5LFp4DtsxnsOdGM/h09XDcxj38BzGOZ7D4ALPYXGB57CI8Rz2MJ7DnoHnsOzjORxY4Dk8UgZ4
DhdqeA73YjyHOzaew34Jz+FaiOdwBeM57FXwHG7FeA53YjyHb3lFPIeLNTyHezaew76N57C/wHNY
tPActi08h+0Uz+FMA8/h1ALPIadYeA7bHM9hcInnsArxHNZqeA73YjyHOzaew34Jz+GaieewvsRz
SJISzx8eru/9y9bhTIznbCbGczYT4zmbifGczcR4zmaKeM4Gi3jOBmt4zuZqeA5v4SKew8UinsPF
Ip7DRQvPYdvCc9gu4zlcXeA5LFp4DtsxnsOdGM/h09XDcxj38BzGOZ7D4ALPYXGB57CI8Rz2MJ7D
noHnsOzjORxY4Dk8UgZ4DhdqeA73YjyHOzaew34Jz+FaiOdwBeM57FXwHG7FeA53YjyHb3lFPIeL
NTyHezaew76N57C/wHNYtPActi08h+0Uz+FMA8/h1ALPIadYeA7bHM9hcInnsArxHNZqeA73YjyH
Ozaew34Jz+GaieewvsRzSJISzx8dru/9+9LhTIznbCbGczYT4zmbifGczcR4zmaKeM4Gi3jOBmt4
zuZqeA5v4SKew8UinsPFIp7DRQvPYdvCc9gu4zlcXeA5LFp4DtsxnsOdGM/h09XDcxj38BzGOZ7D
4ALPYXGB57CI8Rz2MJ7DnoHnsOzjORxY4Dk8UgZ4DhdqeA73YjyHOzaew34Jz+FaiOdwBeM57FXw
HG7FeA53YjyHb3lFPIeLNTyHezaew76N57C/wHNYtPActi08h+0Uz+FMA8/h1ALPIadYeA7bHM9h
cInnsArxHNZqeA73YjyHOzaew34Jz+GaieewvsRzSJISzx+fvs/dL/6LW+hQDOh0KCZ0OhQjOh2K
GZ0OxZBOh4qUTieLmE4na5xOB2ugjm/qIqnjzSKq480iq+NNC9Zx3aJ1XC/jOt5d8DpuWsCO6zGx
46UY2fET2GN2nPegHec5tePkAttxc8HtuInBHRcxueOige647bM7nljAOz6IBvSON2r4jhdjfsdL
NsDjhRLB470Q4fEOZnhcrEA8XospHi/FGI/fFoscjzdrII8XbZLHCzbK44UFy+OmBfO4btE8rqc4
j4caPI/HFkCPocYielznSI+TS6bHXQj1uFejerwYYz1esrkeL5TAHu+ZZI/7S7TH/CnZ/snRtnpq
D3ditIc7sdnDnZjs4U4s9nAnBnu4U/R6uFjkerhY03q4V8N6ei8XrZ5OFqmeThalnk5aUE/jltPT
eJnp6exC6WnSQnoaj42eDsVET5+3ntDTugf0tM59nhYXPE+TC52nSYzzNIhtngYNmqdpX+bpwgLm
6WkzcHk6UWN5OhirPB2yUZ4OlEyezoUkT2ewyNNgBeTpWOzxdCjmePomWNR4OlnDeDpoWzwdsCme
DiwkniYtiKdxy+FpPGV4utNQeLq1QHhqL5bB0zgneFpcCjzNQoCnuZq/08GY3+mQre90oITvdM60
d5pf0juFTCnvT4/f9HryDndieYc7sbzDnVje4U4s73Anlne4U5R3uFiUd7hYk3e4V5N3ei8X5Z1O
FuWdThblnU5a8k7jlrzTeFne6exC3mnSkncaj+WdDsXyTp+3nrzTuifvtM7lnRYX8k6TC3mnSSzv
NIjlnQYNeadpX97pwkLe6WkzkHc6UZN3OhjLOx2y5Z0OlOSdzoXyTmewvNNgRd7pWCzvdCiWd/om
WJR3OlmTdzpoyzsdsOWdDizknSYteadxS95pPJV3utOQd7q1kHdqL5a80ziXd1pcyjvNQnmnuZq8
08FY3umQLe90oCTvdM6Ud5pfyjuFTCnvx296D3vyDndieYc7sbzDnVje4U4s73Anlne4U5R3uFiU
d7hYk3e4V5N3ei8X5Z1OFuWdThblnU5a8k7jlrzTeFne6exC3mnSkncaj+WdDsXyTp+3nrzTuifv
tM7lnRYX8k6TC3mnSSzvNIjlnQYNeadpX97pwkLe6WkzkHc6UZN3OhjLOx2y5Z0OlOSdzoXyTmew
vNNgRd7pWCzvdCiWd/omWJR3OlmTdzpoyzsdsOWdDizknSYteadxS95pPJV3utOQd7q1kHdqL5a8
0ziXd1pcyjvNQnmnuZq808FY3umQLe90oCTvdM6Ud5pfyjuFTCnvz0+BZz15hzuxvMOdWN7hTizv
cCeWd7gTyzvcKco7XCzKO1ysyTvcq8k7vZeL8k4ni/JOJ4vyTicteadxS95pvCzvdHYh7zRpyTuN
x/JOh2J5p89bT95p3ZN3WufyTosLeafJhbzTJJZ3GsTyToOGvNO0L+90YSHv9LQZyDudqMk7HYzl
nQ7Z8k4HSvJO50J5pzNY3mmwIu90LJZ3OhTLO30TLMo7nazJOx205Z0O2PJOBxbyTpOWvNO4Je80
nso73WnIO91ayDu1F0veaZzLOy0u5Z1mobzTXE3e6WAs73TIlnc6UJJ3OmfKO80v5Z1CppT3F99H
nB63n+KxsZ/iMayf4rGmn+IxoZ/isZuf4kUsP80Uhfw0U2Px00jNwo83WhHAjztF9T7uFKn7uGP5
9rFoofaxWJbs49aCr48dy6yPxRiqj/VYp49PKo+kj0nPoY9Jjs/HzEKcj50FMx872JaPFQzKx4qh
yMeeT8fH7MKLj4eoAImP3ZoMH1diDj7WbQM+Vkvwe9wItffYxsR7rFRc97gQY+6xHgvu8e2jyLbH
nZrVHldsoD1WbZU9VhcUe+xY/nosWuh6LKbSeow3ePU4sDDV48u4BanHItfTY2ZJpscWdNJjo4aj
x5VYRI91m0GP1ZJ9HjdM8Dw2l8p5ZCdFm48efO9t+1GNNo/xlDaP8ZQ2j/GUNo/xlDaP8ZQ2j/Ee
bR5nerR5nGnR5nGkRZvnG61Hm+edHm2ed3q0ed5xaPNcdGjzXOzS5nmL0+a549DmuZjS5rme0ub5
SWXR5jlp0eY5iWnznOG0ee5w2jx3KG2eK5Q2z5U9bZ57Nm2es5w2z4conzbP3RZtnldS2jzXXdo8
Vzu0ed7IaPPcprR5rjRo87yQ0ua5ntLm+e2jR5vnnRZtnldc2jxXXdo8VzltnjsObZ6LDm2eiyFt
nuMF2jwPcNo8v4w7tHkuYto8Z3a0eW4x2jw3WrR5Xklp81x3afNc7dDmecOjzXNzR5tndpK0eTO8
G/ecEy/F6ImXYgHFSzGH4qXYRvFSDKV4qaimeLNIqHiz5ql4sYar/O4uSisfLbIrHy0aLB+1QJbn
LZ3l+TLV8uGF2/Kohbg8H4sun4p5lz+TPevlfQ9+eZ8rMG8uSJhHFz7MoxiLeRLLMU8ajMzjvinz
jQUw8zNqoM18pEbPfDJ2aD5lozSfKAk1Hwy5mg9hu+bJCmTzuVi1+VRM3PyNsujdfLSG33zSlnA+
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
i/YpN4ruKTdq5ikXat6p76aideqRonPqkaJx6hHLN3XOsk2dK7umHlqYpo5YnqlzsWXqdOyY+pnj
GabueX6pe9wudWPhljqyMEsdwV6pE9gqdcJwSh3zjVI3Fz6pzzyBTepozSX1RGySOm17pE6WLFIP
hA6pw9ggdaLijzof26NOx+6o3wiK5qhHat6oJ2xr1EnbGXVyYYw6Yvmizlm2qHOpK+pywxR1feGJ
+i3YskSd446oG0tD1CHohzpQs0M9EbuhTttmqJMlL9QDphXq4NIJNep8ZIQ/+OFP/v7vfvH3f/Oz
e3/7s1/84i//289+dO+LV1/+8f35R/f+4fbXt29uv/zs9mdv3rx+86N7P3n55X96e+/Xr778/N6/
vXzz6uWvvrj90b0/fv/6wQ+/ePmH2zf3Xr69958ffPLgv9z76tX/ub33/MGD3z998OAHP7z3rvTl
57dv/unV7b+rH6MCzz9c/ldfvP7sf9/7j//+j3/7N/9X/cj3P/bdt6B7//FXf//T//XtD33+yfM/
/dBnzx///sG3P/Q74Z/+9T99t/vtD/5/UEsDBBQAAgAIADONvUhK0/pYUlcAAKZcBwBMABwAaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vcmFuZ2VzL1JhbmdlLWlzUG9pbnRJblJh
bmdlLWV4cGVjdGVkLnR4dFVUCQADQoxLV0KMS1d1eAsAAQT1AQAABFAAAACt3c2OWNe5nOG5r0IX
YB2wm2z+DAOfBMgkMOAMAhhnoFi0LcCWDEkOzrn7yJZFNqVV3/euqhpZprjeIqnevfd+mqJ+9dv/
9rvfffa799///W+f/eqnv/7sh//zx2++/ezbL77+0/vPXnz2+7998e0X3/3+xX/82x+/+va773/z
56/+8uWvP3vx68/O3/4fqvRwWXqQpUdRehSlt7L08rL0TpZe/VR6ED+7B/rr9CRKj6Kkf0yvP/v9
l++//+IPf37/5W9/OPnw8x/Y8Ddl883UfJya+p/C289+/8P/ef/Vn74+/jD135PFd0PxcSjqH+PD
DxfCl9/84e9/ff/19//201/897+8/8f//PiLKf+m/kB+eLCjjzr6OEUfzOjLZ9E/v//iy09L//oW
ffzVs+P/95sv/+vXn716dvzHb3nSx58+/PP892/+cPyVmv728ON6/fETwCeficZDP78Gfnkxjcff
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
ss0XOHPzpmPevO4AOK+HGs6HCjTOx7iTc6hx0JzXsaDz5B2n8y6zdd5rQTtfTNWdL7kEzxc6Hs/3
PJzn/Tup5/yp2P5x+bxUY3s8lLI9HkrZHg+lbI+HUrbHQynb46Ee2+PJHtvjyRbb48EW2/OLusf2
fLPH9nyzx/Z802F7XnfYnte7bM93OdvzpsP2vJ6yPV9K2Z7fgS2253mL7Xkesz1PcrbnTc72vEnZ
nhcp2/PiPdvzts32fIKzPX8Q9dmeb7TYni+mbM+XXLbnCx2253sZ2/Mdyva82GB7vpayPV9K2Z6/
LfbYnm+22J4vumzPF1y25wuc7XnTYXted9ie10O250MFtudjnO051Dhsz+uY7Xnyju15l7E977XY
ni+mbM+XXLbnCx2253se2/P+Hdtz/lRs//JwU+v9Fvu5ngL9XE9Vfq6nFD/XU3+f6ym6z/WetM87
PV6fd1qmPq+0IH254np6vgz1yHwZ6jn5MuTg+JJ0RHxJdhl8GeP2vYQc8F6SqXIv+ZS2l3uX5dlL
00LspYnleulwrl5C3KiXEIXpJUM1esncE/QStN156XJsXp6vfGFewi1WXmZSS17yLiAv2Y4aLyMZ
FS9x6sNLpoHCy0QqwUs+5d/lDaVnvstQC3qXGVd3l6xLukuWO+4ScvB2STpiuyRDpl3qBZtdFjjI
Lm/ujsIuSUyvS+fOW5cYQ9Yl0pLVZSbl1CXvGuqS7cDpMuJp6RK9I9IFq5SLvjp83u79Hua5nrro
XE9ddK6nLjrXUxed66mLzvWei847PRedd1ouOq+0XHS54nouugz1XHQZ6rnoMuS46JJ0XHRJdl10
GeMuuoQcF12SqYsu+dRFl3uX5aJL03LRpYlddOlwF11C3EWXEHXRJUNddMncu+gStF106XIXXZ6v
fBddwi0XXWZSF13yrosu2Y6LLiOZiy5x6qJLpuGiy0Tqoks+ddHlDaXnostQy0WXGddFl6zrokuW
u+gSclx0STouuiRDF13qBRddFriLLm/ujosuSeyiS+fORZcYc9El0nLRZSZ10SXvuuiS7bjoMuK5
6BK9c9EFq5SLPn3yCbYGoiKbSqjIpgQqsql9imyKniKbaqfI9phTDPR8Uwy0YFPkW6KpLpkeZaqF
nmGqhR5eqgVHLVXL4UrV6jqlWuFAqQqOTKpWSpKqm1qkuntYCKlilj6qGGZHFeDeqAocGlWBCqM6
T2lRnb83RVWyMVEFuSKqRxSfD1Wx5Yaqn4Kh6rpSqHodIlT1zAZVlaKgOt/QQNVOGVB1U/9TT+k9
+FMLLfFTfZf6VM81PtXjuKcKjuqplsN5qhU6nsoWAE+ludyp10+H7FQLW50K3CGdqjCdU6dbLKf6
qceprgtxqtcROFX36E3V7sxNkYnCtk9e03q/+1BkU2wT2RTbRDbFNpFNsU1kU2wT2R62iYEetomB
FraJfAvb1CXTwza10MM2tdDDNrXgYJtqOdimWl1sUysc21TBwTbVSrFNdVNsU3cPC9tUzMI2FcPY
pgIc21SBY5sqUGxT5ym2qfP32KZKNrapIMc29YjiY5sqtrBN9VNsU10X21Svg22qnmGbqlJsU+cb
2KbaKbapbopt6im9h21qoYVtqu9im+q52KZ6HNtUwcE21XKwTbVCbFPZArapNMc29frpYJtqYWxT
gTtsUxWGbep0C9tUP8U21XWxTfU62KbqHrap2h22KTJR2Pbm+fd/rGGbyKbYJrIptolsim0im2Kb
yKbYJrI9bBMDPWwTAy1sE/kWtqlLpodtaqGHbWqhh21qwcE21XKwTbW62KZWOLapgoNtqpVim+qm
2KbuHha2qZiFbSqGsU0FOLapAsc2VaDYps5TbFPn77FNlWxsU0GObeoRxcc2VWxhm+qn2Ka6Lrap
XgfbVD3DNlWl2KbON7BNtVNsU90U29RTeg/b1EIL21TfxTbVc7FN9Ti2qYKDbarlYJtqhdimsgVs
U2mOber108E21cLYpgJ32KYqDNvU6Ra2qX6KbarrYpvqdbBN1T1sU7U7bFNkorDt2S2w+a+RimyK
bSKbYpvIptgmsim2iWyKbSLbwzYx0MM2MdDCNpFvYZu6ZHrYphZ62KYWetimFhxsUy0H21Sri21q
hWObKjjYploptqluim3q7mFhm4pZ2KZiGNtUgGObKnBsUwWKbeo8xTZ1/h7bVMnGNhXk2KYeUXxs
U8UWtql+im2q62Kb6nWwTdUzbFNVim3qfAPbVDvFNtVNsU09pfewTS20sE31XWxTPRfbVI9jmyo4
2KZaDrapVohtKlvANpXm2KZePx1sUy2MbSpwh22qwrBNnW5hm+qn2Ka6LrapXgfbVN3DNlW7wzZF
Jgrb3j3//r1/jVRkU2wT2RTbRDbFNpFNsU1kU2wT2R62iYEetomBFraJfAvb1CXTwza10MM2tdDD
NrXgYJtqOdimWl1sUysc21TBwTbVSrFNdVNsU3cPC9tUzMI2FcPYpgIc21SBY5sqUGxT5ym2qfP3
2KZKNrapIMc29YjiY5sqtrBN9VNsU10X21Svg22qnmGbqlJsU+cb2KbaKbapbopt6im9h21qoYVt
qu9im+q52KZ6HNtUwcE21XKwTbVCbFPZArapNMc29frpYJtqYWxTgTtsUxWGbep0C9tUP8U21XWx
TfU62KbqHrap2h22KTIR2PbqxfPvX/vXSFU2xDaVDbFNZUNsU9kQ21Q2xDaVrWGbGqhhmxooYZvK
l7BNXjI1bJMLNWyTCzVskwsGtsmWgW2yVcU2uYKxTRYMbJOtENtkN8Q2efdwsE3GHGyTMYptMoCx
TRYwtskCxDZ5HmKbPH+NbbLkYpsMYmyTjyg2tsliCdtkP8Q22TWxTfYq2CbrEbbJKsQ2eb6AbbId
Ypvshtgmn9Jr2CYXStgm+ya2yZ6JbbKHsU0WDGyTLQPbZCvDNpnNsU2mMbbJ108D22SLYpsMXGGb
rCBsk6dL2Cb7IbbJroltslfBNlm3sE3WrrBNkonCtodffrqqidvUTtltaqf2NrVTgJvaqcJN7ZTi
pnbP46aVHspNKy2ZmzZaPDdeXz2jG2d6UDfO9LRunHHIbgw6bjcGu3g3TnHBGzMO443B1PLGeAp6
433JUr2xaNHeWMS+N1Y48o0ZLn1jhnLfGKHmN0bu4W/M2fo3VjkBjk9KvgOO2RYGjiOpCI5xlwXH
aMcGx4kMCMc0VcIx0qDCcSD1wjGeouH4ZtGTw3GmxYfjiGuIY9SFxDHKNXHMOKQ4Bh1XHIMhLo7t
gjCOfc6M4/u1Y41jEIPjWLlTxzHF6HFMtPxxHEkRcoy7EjlGOxw5TngmOSbvYHIEJKWTj784VPuX
b8d2qpNTO9XJqZ3q5NROdXJqpzo5tXs6Oa30dHJaaenktNHSyfH66unkONPTyXGmp5PjjKOTY9DR
yTHY1clxiuvkmHF0cgymOjnGU50c70uWTo5FSyfHItbJscJ1csxwnRwzVCfHCNXJMXKvk2PO1smx
ynVyfFLydXLMtnRyHEl1coy7OjlGOzo5TmQ6OaapTo6Rhk6OA6lOjvFUJ8c3i55OjjMtnRxHXJ0c
o65OjlGuk2PG0ckx6OjkGAx1cmwXdHLsc50c368dnRyDWCfHyp1Ojimmk2OipZPjSKqTY9zVyTHa
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
l1PyOldT8jo/XffI69xvkde57pLXueaS17nGyet83iGvc8khr3MpJK9ztEBe5zAnr/NLokNe5xIm
r/PxO/I6Nxh5nc+2yOtcT8nrXHXJ61zrkNe57ZHXuXVHXmfGUOT1+PF7P9XI6xhNyesYTcnrGE3J
6xhNyesYTcnrGO2R1zHfI69jvkVex3iLvM4XSI+8zv0eeZ37PfI69x3yOpcc8jqXuuR13uDkdT7v
kNe5lJLXuZqS1/nOYJHXOWWR1zmFyet8nJPX+Twnr/N5Sl7n05S8zqfvyevcscnrnOPkdX7Y8Mnr
3GuR17mekte56pLXudYhr3M7I69zk5LX+XSDvM7llLzO1ZS8zk/XPfI691vkda675HWuueR1rnHy
Op93yOtccsjrXArJ6xwtkNc5zMnr/JLokNe5hMnrfPyOvM4NRl7nsy3yOtdT8jpXXfI61zrkdW57
5HVu3ZHXmTEUef34EfTsKa3FXjKc0pcMp/wlwymByXDKYDKcUpgM9zhMTvRITE60WEwOtGhMX0Q9
HtMbPSLTGz0m0xsOlemaw2W61iUzvcPZTDccOtO1lM90OSU0fYexGE3nLErTOcxpOsFJTTc4q+kG
pTVdoLymC/fEpls2s+kkpzb9YONzm262yE0vpOymyy696WKH33Q/IzjdpQynCw2K0/WU43Q5JTn9
tN9jOb3Rojm94PKcLrpEp4uc6XTDoTpdc7hO10Ky0+EC2+k4pzv9Yuvwna5hwtOJO8bTHUZ5+nyL
8/RCSnq67LKeLnZoT/c93tO9O+LTPKOY79WnJ17VmE+GU+aT4ZT5ZDhlPhlOmU+GU+aT4R7zyYke
88mJFvPJgRbz6Yuox3x6o8d8eqPHfHrDYT5dc5hP17rMp3c48+mGw3y6ljKfLqfMp+8wFvPpnMV8
OoeZTyc48+kGZz7doMynC5T5dOGe+XTLZj6d5MynH2x85tPNFvPphZT5dNllPl3sMJ/uZ8ynu5T5
dKHBfLqeMp8up8ynn/Z7zKc3WsynF1zm00WX+XSRM59uOMynaw7z6VrIfDpcYD4d58ynX2wd5tM1
zHw6ccd8usOYT59vMZ9eSJlPl13m08UO8+m+x3y6d8d8mmcU8z3pm3FN/MhGin9kI3VAspGSINlI
dZBspFBINnpmSNZ6fEjWWpJItlqoiK7Tni+iuR41ormeOqI5ByBR2LFIFO6yJJrkQolyDlaicOqW
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
XHRpWi66NLGLLh3uokuIu+gSoi66ZKiLLpl7F12CtosuXe6iy/OV76JLuOWiy0zqokveddEl23HR
ZSRz0SVOXXTJNFx0mUhddMmnLrq8ofRcdBlquegy47roknVddMlyF11CjosuScdFl2Tooku94KLL
AnfR5c3dcdEliV106dy56BJjLrpEWi66zKQuuuRdF12yHRddRjwXXaJ3LrpglXLR4Zen91+9QyOp
kqKRFEvRSGqmaCSlUzSSCioa6UEqmut5KpprsSoaa+kqu2B7yMr2etbK9nrkyvYceWVlB2BZueuw
bJNzLOs5KsvKKc6yldRo2Z3TolqWtsSWpTHcshz3W9bjjMt6VHNZjaIuq93bLuvaxMvyXHrZw6EP
vqzfcl+2lvIvW3EVmNU7GMy2MhNmG5SGWa0hxGwphWK2knoxezvrsTHba+kxW3MRmdVdS2Z1Tsqs
58gyKzvAzMqhM7ORAjezIa7ODD0cfGZlbNAsd0fRrMlEmrVaMM3WUp9mKy5Ts3pHq9mWh9asfWfX
jAkVYb8dfs1qhI1GUsJGIylho5GUsNFISthoJCVsNNIjbDTXI2w01yJsNNYibHbB9gib7fUIm+31
CJvtOYTNyg5hs3KXsNkmJ2zWcwiblVPCZispYbM7p0XYLG0RNktjwmY5Ttisxwmb9ShhsxolbFa7
J2zWtQmb5Tlhs4dDn7BZv0XYbC0lbLbiEjardwibbWWEzTYoYbNag7DZUkrYbCUlbPZ21iNsttci
bLbmEjaru4TN6pywWc8hbFZ2CJuVQ8JmIwXCZkOcsBl6OITNypiwWe6OsFmTETZrtQibraWEzVZc
wmb1DmGzLY+wWfuOsBkTKsJ+Jx6pany9DqR0vQ6kbL0OpGS9DqRcvQ6kVL0O9Jh6neoR9TrV4ul1
qEXT+8XYY+l9q0fS+1aPo/cth6L3qsPQe7VL0Pse5+e95dDzXk3ZeV9IyXm/41ncvGctat6zmJn3
FCfmvcV5eW9RWt5LlJX30j0p702bk/c0p+T9gc1n5L3dIuR9KeXjfcGl473cYeN9JyPjvU+5eC81
qHhfSZl4X0iJeH8b6vHwvtWi4X3JZeG97JLwXuYcvLccCt6rDgPv1ZCA94EC/+4jnH53QHDYd69i
8t1Td9y79xj17p0W8+5LKfHuCy7v7uUO7e47Huvu3TvS3TlNcO7bF88fR1qGK6oh3IpqqLWiGhKt
qIYuK6ohxopqTWBFv8auol+yVlEvAau6UmqqqgZqlKoGan6qBgw0VSlDSlWqyqNqBJuoChgQqlKh
fqpsSJ7qXuE4p2o5uKlaVDTVecyYKoDtUgUgWKrjUCnV8WuaVCHXI1UPI6R6DrHlUQVL3KjyoTGq
rAmLKlfRRBWPCFFFoRuq4wUsVOlQCFU2ZEH1BF6zQDVQAkCVN9VP5UzqUznseypgoJ5KGZKnUhnf
qWpudqqMoU69URo6p1KU5NT5K4dTEYRv6nBJ3FQ+ZDaVNW1N5SqgpuKWoqnYFZ0p/FBe9nD4kdbY
bIynejbGU0Qb46mljfGU1MZ4KmtjvAds40zP2caZFreNIy11my+0Hr7NOz2Dm3d6FDfvOCI3Fx2Y
m4tdn5u3ONPNHUfr5mKKdnM9tbv5TmUR3py0JG9OYtCbM9z15g7nvblDlW+uUOybK/fmN/ds+puz
XADnhygfAuduywPnlZQF57qrg3O1g4TzRmaFc5uS4VxpyOG8kALiXE8dcX776HHivNNSxXnFxcW5
6hrjXOXUOHcccZyLDjzOxdAf53iBIecBrpHzy7iDknMR2+ScuSPKucWkcm60wHJeSd1yrrt8OVc7
ijlveJg5N+9Mc2YnRZuPP9uosaYMp6QpwylnynBKmTKcMqYMp4Qpwz2+lBM9upQTLbaUAy2y1BdR
jyv1Ro8q9UaPKfWGQ5S65vCkrnVpUu9wltQNhyR1LeVIXU4pUt9hLIbUOYsgdQ7zo05wetQNzo66
QclRFyg36sI9NeqWzYw6yYlRP9j4vKibLVrUCykr6rJLirrY4UTdzyhRdykj6kKDEHU95UNdTulQ
P+332FBvtMhQL7hcqIsuFeoiZ0LdcIhQ1xwe1LWQBnW4wII6zklQv9g6HKhrmAJ14o4BdYcRoD7f
4j+9kNKfLrvsp4sd8tN9j/t07476NM8o5vvxuf77//rb+6bxnasp8J2rqe6dqyntnaup652rKeqd
qz3RO/d7nHfutyzvXG9BnrhSeoonBnqEJwZ6ficGHLwTKUfuRKrLdmKEm50IOGAnUqnWiWxKdeJe
YTmdaFlIJ1pY6MR5znMiwG1OBCjMieNU5cTxe5ITIdvjRI9jnHgO8SVOBFsMJ/KpwYmsC3Ai19E3
Ec/oTUSpu4njDXQT6VTcRDblNvEE3rM2MdCCNpF3lU3kXGITOe5rIuDgmkg5siZSIauJasHURJmD
mnijdDRNpDClifN3jiYiDNHE4ZagiXzKZyLr2pnIdeBMxD01E7E7MhP4obzs1bPv/vnDm5qYqW5q
Zqqbqpnqpm6muqmcqW5qZ6rb0zO10PMztdASNNVvGZq8dnqKJid6jiYnepImJxxLkzFH02Ss62ly
houaTDimJmOpqslw6mryfmLJmqxZtiZrWNdkgfuaTHBhkwlqbDJAlU0G7p1Npmxpk0VubfLpxdc2
mWx5mxxIxU2GXXOTwY66yXzmbjJL5U0GGvYm46m+yXDqb/JJvidwcqJlcHLAVTgZdB1OBrnEyYRj
cTLmaJyMhR4nuwWRk21ucvJd1VE5GcMuJwt3MiczzObk8ZbOyYHU52TYFToZ7BidzHtKJ3N3Tieh
RUnd07MDDzWnO1dTpTtXU6M7V1OhO1dTnztXU507V3s2d+73ZO7cb7ncud5SOXGl9ExODPRETgz0
PE4MOBonUo7FiVRX4sQIdzgRcBROpFKDE9lU4MS9wvI30bL0TbSwvYnzXN5EgLubCFB1E8epuYnj
9+ImQra3iR7XNvEc4lubCLakTeRTZxNZV9lErmNsIp4Jm4hSXxPHG7om0qmtiWwqa+IJvOdqYqCl
aiLvmprIuaImctzTRMDRNJFyLE2kQkkT1YKjiTJXNPFG6RiaSGFBE+fv/ExEmJ6Jwy07E/lUzkTW
dTOR66iZiHtmJmJ3YibwQ3nZ6+c/0va/EDrGUz0b4ymijfHU0sZ4SmpjPJW1Md4DtnGm52zjTIvb
xpGWus0XWg/f5p2ewc07PYqbdxyRm4sOzM3Frs/NW5zp5o6jdXMxRbu5ntrdfKeyCG9OWpI3JzHo
zRnuenOH897coco3Vyj2zZV785t7Nv3NWS6A80OUD4Fzt+WB80rKgnPd1cG52kHCeSOzwrlNyXCu
NORwXkgBca6njji/ffQ4cd5pqeK84uLiXHWNca5yapw7jjjORQce52Loj3O8wJDzANfI+WXcQcm5
iG1yztwR5dxiUjk3WmA5r6RuOdddvpyrHcWcNzzMnJt3pjmzk6LNNz9ttFlThlPSlOGUM2U4pUwZ
ThlThlPClOEeX8qJHl3KiRZbyoEWWeqLqMeVeqNHlXqjx5R6wyFKXXN4Ute6NKl3OEvqhkOSupZy
pC6nFKnvMBZD6pxFkDqH+VEnOD3qBmdH3aDkqAuUG3Xhnhp1y2ZGneTEqB9sfF7UzRYt6oWUFXXZ
JUVd7HCi7meUqLuUEXWhQYi6nvKhLqd0qJ/2e2yoN1pkqBdcLtRFlwp1kTOhbjhEqGsOD+paSIM6
XGBBHeckqF9sHQ7UNUyBOnHHgLrDCFCfb/GfXkjpT5dd9tPFDvnpvsd9undHfZpnnjPfr/4/UEsD
BBQAAgAIADSNvUj7FXOWzJUAAIFLFABQABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9kb20vcmFuZ2VzL1JhbmdlLWlzUG9pbnRJblJhbmdlLXByZXR0eS1kaWZmLmh0bWxVVAkAA0OM
S1dDjEtXdXgLAAEE9QEAAARQAAAAzd17j11Xft75//0qCBszngma0rpf1HYP4u72JJhcjHSQzMAI
gpJYajGmSA1Z6oszee+ziyySRersc7aCdb7PY8OWxOv5rbp9a+/9Wetvvrv7/sWv/uJvvru9ebb9
4/vbu5sn33x38/rN7d3f/vWPd98+HX+9/fCbuz+/uP3VX3z14vnLf/rFk6/+8PzN87vbZ0/++188
2f7n7vZPd0+f3X7z6vXN3fNXL7968vLVy9tfvv2pr1+9fnb7+unXr+7uXn3/1ZP4w5+ePNv+/fbZ
L//if/zFuz/u4Q/55tWLV6+/evJXIc+3P/fF3z9/cfub599++/DzX99880+/f/3qx5fPnr7/pd+O
+/99/Be9+xvevHrx/NmTv3r27Nm7n/v21cu7p9/efP/8xZ+/evL9q5ev3vxw883DC/z+5vXvn28v
Od5+/yS8+6EfXm3DvZ3j9e2LbaI/3L59Qd/Fz15pzvnEn//m5uWbp29uXz//9tFPvnn+z7dv/47H
f+nTF7ff3n31JHxR3//4s+dvfnhxs/0hz19uK/PwCv/4/Nndd9tvDuF/eXh9N8+ePX/5+w+/891r
e3jT3P/bp2+dh5f7/OV324u6+/DLv3v1h9vXn01Ua/3l3mLf3r5bhi/u3yb/Zvu73jz85m9fvLrZ
xnj9/Pff3X36lrv/Vb/exr/ZZnn/V73alv753TZi+Gzku5uvX9w+/eb2xYtPpnz69s/9ZJX++N02
3dO3b8P7d7U/vr754eMr+93tN/dvu913mre/+dN3mc/fXR7eZ9+v+/YOFX7407u/4bd/+mF7825/
/jba7S+efHH/j88n3H15b54/u/36z/f//8nbl/p3L15980//cPP67ott1K++ff76zd3Tb757/uLZ
7sLe/3W/237/L879Ya9vv9/etL+48Pc9/B3vl//dO9zTr+9/ySfvdvX9e9323nL3/JubF09vXjz/
/faxcffqxFivb+/f0//VzctnL27fL8fDn3O/hPf//d3tuzfox/fnb358/eb+TXP/sj//CLz5envr
/Pj+Lbb9nR/ecd598Lx9eedexSfv5z99d/j969s///Kzd8wv6qW317slfvLF3auLy/zFt69fff/Z
Yj98frz/O+5X/d/9+P3Xt6+396bbx+9d7370/Qv/6afRh/faOT/5BPj+w+XUp8H3H8mllJOfbh6/
9T98jrn/g+q7D4F3HwYfPuE/vB88vHueehd593I/eXfKD5+wHg3+dsSTn3DefZHYXZYzn6R+eH3/
0Xn/Mh8W8P1nk4f3mveDfPKxuv2mp+8+Wt/+1Laeb/9zm+P17c0/Pb3/gXcv6Pn3N7+//eQt89WT
9GHBv35xc7+K97/wm+1Tw/Yatpfy8G9PPp/741tllLn7uffb228/fgK4f7fa/sQPXx4ffTSf+K3P
vn326W/d3thv9n/5vJ2/PPc1/cOf9PBZ5vHrePio2P9y/ezZT/6AJ89uX+z/jtt58dV8+S+e/O7H
H3549fpu+0r7+uE9eVvU77+/fXn35sm/+HL7+25+vPvu1bv1fvfV+D5mtvf6u+399Jv3b6m3v+Ht
r9n5+v/h19y/mJvtXeLtL37/6ay9f8e+/3Rz8+LFr9+/gpO/Or37Wvb9zZ+efvbl/futCx5+KIUP
X3c+/6u3dT/793z4yP7wIf3JX3PqdX7x6ofbd182n/7x9ut/en739O71/Yfdu5V498KffJHe/PLR
GOVh6L96c3dz9+Obv/vx6+1r+Ievh1/cf/ScfDn3v+Xu1asXX9+8/vTn3//V3764ffsR+vEnvn/1
zx9+9MMnp/zu4/iho+7/9X0t3P/7fhLufeY4m3If3y2+ff6n23d/zsPn4/DpSF/cvG2Qdx9mP/0q
/sfn2+eC15+9q334M//56fOXz27/tH2SOjPaxy+Ej17CqbkePhl98uVtPHwWe3n/Mh8+YE9+adr+
vq9f/eniC20fX2h89078/ovQu/96+2If/v3DV7CH//zwgj+U2Sd/9fNvX998/+4VfvZx8mlGPPoY
+fXOZ9qfrs2ft9Z89ceHr/W3L7Zw3Jr5wBemNv/+47vXw9fknZ98uxCf/tyHjHz20zz+NI4f/ox3
y/fT9+HdJHj2/vPsu7/mX77/pPD+W53w+Gf/4/uvkZ99T9L6+09oP32ZZz5IHn238+b7m3ct//hz
7stXr7cf/uXOZ5mH+e8T7M2pv/zdHO8/rsOpX/Li5uvbF1/dfLt9hP3iJ7/93Y+//UPefkF+uY36
l0/+vyd/+cu/+PCF+NGX789/94ubrdBfffv07s8/3J78o/5y9xU9/MLPvsX97vbF20+QH2L05j5G
d75G/dX3t2/evA+P3XU+9WZ59NHxu7efqI98Kdy+xGxB9Ifnr3588+sPP7LF7D/fvvz1oy+Wp77O
v0+Oz7/EPP7icv+5fHuvffue8P5z+8N/P7wnPnwSye+/Bh56NQ/vGlvj3N7df0x88uXiIft2ou/x
19mvf9w+ql4+/rzz/uv7s+d/+OrbV988rOGrH+/uP188/vD7+sWPb7+SPPzU9v7y7fZatq9g8f0g
j79Yvv1Ttob5j9/dvvubvnz4Svv77fXfz3D36snd9nNfv/vVD+9qb5784fnN/efku3/78D6xvdiv
X7/64/YG30rgu5vt9z5E0fO7L+4j6MMcpT5U/IcUefjv958d7kP2/v/Cp19E31/S+bzxv3/+bPsu
691g92+gN++/+T7xFWXrsFdvbv6wrf22AreffV15/J3eT77UPY1f5HfJ9PHix/uv/ifeBn/1m9/8
5tGH9F+Nv//N39e/P/n5aYvL0+/Fv/3tb0+96q9uv/9h+wz1yRv/IdM++5VfbP+6vdJPPvJ/O0cY
D5+3vnlxe/P6v77Ng/ffCtz/yNtvm767/yV/8+XDVbe/efPN6+c/bG/T19/87V9+d3f3w5uvvvzy
5r/d/OmL37969fvtN/3w/M39u+7bH/vyxfOv33z53/7fH29f//nL+EX5Ij38xxdbWn7x39785a+2
P/ftn/erJ5/+yd+8enb79P5tePvH7df9H9tb+v6N+bdlPPot24t6uFD49atnf97+sX08bK/75s2b
v/3r998J3F8v/C7+6sv/tL09t89ZX/7m5u7my9/+5999+Z9vv/6/nt89/OPvfnz+4tmX/2H7unvz
5vbL7T1lW86nd7fbZ9jt2/cfX9y9+fL59/fvwbfPvvxj/ubL7dPG0+396W6L/O/f/rI3Xz7bJt6+
ePx++yv+w/0/nj5/8w+vtrb61y/f/eeWNz/evPji7k9324uOn77WR5eK/vqnP/P2W/i9H7//1v7J
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
O1yv9sqHmECv9srnl0Cv9spHF65Xe+NziterjY8ppV5tfEoZ6NXGN5RCrza+lhz0auOTyU+vNr6i
fPRqE9wClevVxqeWm15tfIa56NXOxxmvVzsfZ156tfO55qNXO19tPnq18y3nqFc733Z+erXzbafX
q51vOr1e7YLn2QR6tfPdptWrg681rV4dfLnZ6NXBR5uVXh18tyn06uALTatXB99iAr06+NhS6dXB
JxatVwcfVH56dQikgI1enXx66fXq5PPLTa9OvsLUenXy4aXSq5OPr+vr1eX7+KedoYafXl2+u//l
2W306vIt/y/PbqNXl58DcHl2G726/HiAy7O76NWx/NSAy7O76NWx/AiBy7P76dWx/EiBy6vgp1fH
8hMHLq+Cm14dy48fuLwGbnp1BL79DPXqCIIM9NOrI/BFaKhXR+DjUKpXR+CLUKpXR+Qz0FSvjshX
oUCvjshnn1SvjsgXno1eHZFPOxu9OiLfdFq9OiKfb1q9OqLg2h2uV0fkQ0ygV0fk80ugV0fiowvX
qyPxOYXr1ZH4mBLq1ZH4lNLr1ZH4hhLo1ZH4WjLQqyPxyWSnV0fiK8pGr44kuAWq1qsj8allpldH
5jPMRK+OzMcZrldH5uPMSq+OzOeajV4dma82G706Mt9yhnp1ZL7t7PTqyHzbyfXqyHzTyfXqyILn
2Xi9OgrfbVK9Ogpfa1K9Ogpfbi56dRQ+2pz06ih8twn06ih8oUn16ih8i/F6dRQ+tkR6dRQ+sWC9
OgofVHZ6dVSBFHDRq6Py6SXXq6Py+WWmV0flK0ysV0flw0ukV0fl4+vqenUs38c/7ww17fTqWL67
/+XZXfTqWL7l/+XZXfTqWH4OwOXZXfTqWH48wOXZbfTq8lMDLs9uo1eXHyFweXZDvbr8SIHLq2Co
V5efOHB5Fez06vLjBy6vgZ1ebXz7OerVJshAQ73a+CJ01KuNj0OtXu18EWr1aucz0FWvdr4KFXq1
89mn1audLzwfvdr5tPPRq51vOrFe7Xy+ifVqF1y74/Vq50NMoVcHn18KvTr46OL16uBziterg48p
pV4dfEoZ6NXBN5RCrw6+lhz06uCTyU+vDr6ifPTqENwClevVyaeWm16dfIa56NXJxxmvVycfZ156
dfK55qNXJ19tPnp18i3nqFcn33Z+enXybafXq5NvOrlenUHwPBuvV2fgu02qV2fga02qV2fgy81F
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
8/zbb//uxatv/mn77vPuyc2zZ399cYKHX3T25Z95XZ8OEPdf+6///b/73b//N7998m9/+7vf/cv/
87dfvf19T2L+6sl/uP329vXty29uf/v69avXXz359c3L//Wv8vzl3ZNvn7989uQPN6+f33z94var
J/ffg/68N8/S4dL+cC9u/nz/t909+d/CL8L//uTN83++fTJC+FP7cPta8YLz/gt+sq36y2e3r//T
89s/2r3u8vMXeghfbr28zG8/Jp/893/1H//tv/kfZq++nXv1H17/9m3/k//+d//+N//Pu5c/fjEe
Xn4f5U/K95V+/uV/9gb4zb/+T5+v/8kBfvKJ9ZsXtzev/+u3L17dvP00/PanH//aj/+4v0Ky/dx3
d9+/+NVf/P9QSwMEFAACAAgANI29SAQo26+lAAAAJwEAAEUAHABpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2RvbS9yYW5nZXMvUmFuZ2UtbXV0YXRpb25zLWFjdHVhbC50eHRVVAkAA0OM
S1dDjEtXdXgLAAEE9QEAAARQAAAAdcxBC4IwGIDhu7/iu1XgYYHU2C11VKAJGUKnWPoZozFhjtKk
/15keBC8P+8bJIc0iTjEPE03W85ASY2wJB6DI5ZoUOfIjakMg0DomYVS6gIewkhxVcjghhqNsHix
WNvaUaJFA8LCnLhkAbV8IVBCmhUhDnyPukCTSXxOkKmcDrGvqvwO3e4UR+8JONCqaKHzk/DcS+rS
v1xTryE/OdqG+2x87e0HUEsDBBQAAgAIADSNvUj7VJz442kAAJvpDgBDABwAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vcmFuZ2VzL1JhbmdlLW11dGF0aW9ucy1kaWZmLnR4dFVU
CQADQ4xLV0OMS1d1eAsAAQT1AQAABFAAAADtvdtyHNmRJfpeX4HDF6nMi1WxMtRStaynT1dT4hzZ
6VEfa8laPCaTjYFEkkQJFw6AUlEzNu/4OHzUJFEkmAAiI/bF3be773wqFpC5d8Ty8LUX/BZPnz49
+OY/z09+OF1ffvObw6vDb377pz9886f1y//3+Orjf/71h+OTo2/+Y32yPrxcf3Ny+PfzH66eXq0v
r55erC9/OLm6/Ob49N35xdX66Jsfx1ff/Lh++fTdyeHV6/OL09uPXX5zdH76zcXh2ZvNFv/x4T9P
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
yGlE2lpx559Os5953GmTcGUK19W6z6nEPrubi5bg+JLFDjX794N3S6x94rwVtPlUrvVZDPwDF4XM
bWHnr9WtniHuP1gnlo7zN2sKbiV/ti6D1s9frjXPJqSeTTeqdZCIpwz7eMpHdc4K7oM1u8X2U8cM
K7gPF+0W3c+KhhXfx8t2//ymzOAofo6XZ20ERnvzjw0EH87try/Wp+d/WyceeRkaNnEL31q2FMfU
B7cMxP2zW6lxeZ9dxHp2d8ShhShge/1gDJCS/ComgD7yYMzPMISfYXTwDK8kn+HYOUYuO0DSDpYz
aVK8sBLmBVvv7dg9onTXXTOOrs1MS7JdIMflaecjvqBn//77P/z7v/324L/99g9/+O6//vbXByfH
m6Uw/OLXB/+xfr3eYPFq/duLi/OLXx88Ozz72dXB6+Ozo4O/HV4cH748Wf/64M36bH1xeLX+7x8e
xcsv6OTw7x+23zybw1cbwXV5/D/XB98Ow/tfDsMXdLBZ8+xoffGfx+sfd31m1wLffv76v56cv/rr
wf/6f/743/7tf+/65N1nz4/+fvC//vXff/P///TRb7/69uNHf/XtL94PP330wcK/+d1/Plz3pw//
H1BLAwQUAAIACAA0jb1IKUlSKERoAACA0A4ARwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZG9tL3Jhbmdlcy9SYW5nZS1tdXRhdGlvbnMtZXhwZWN0ZWQudHh0VVQJAANDjEtXQ4xL
V3V4CwABBPUBAAAEUAAAAO297W5c2ZEl+r+egqM/thDlmrPy9NjuQY8vatRXFwYGngu0cVuAYVxQ
YkpimRI1IstWzxPw4fhQk2JJVCZ5PvZHROyI2PlPIpl7n7P2iRUr4+t89//++G//dvLh9OPp1V+G
v/7w+vzj1fWzt+cXZz9cfbg4v/7z9tP1r8ff/fbp9yf/OL9+e/Lz+6vtxfbV9fbs5OPp+zfbk8v3
Ux8+ef3x8t3JcHJ9eYKT757/+Mf/kb5F/ganV1fbj9f///Z//Xx6cfVfT/7t9P359X+cvHq7ffW3
//plufPL97+6+rLiu5+vrk/Od39zfnpx8R8nL7cn12+3J1en77a7le7+/cvf/WP3/7Oz3YVsP334
5YouX/60+8fJkx+fnLz8+frkzeX1tx/d3jz5LgHLYRbJV5cXF6cfrnb/P70++fXEKt+fDE+TwBxm
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
CwABBPUBAAAEUAAAAFBLAwQKAAAAAAAwi71IAAAAAAAAAAAAAAAAKQAcAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vVVQJAAN7iEtXcIxLV3V4CwABBPUBAAAEUAAAAFBL
AwQKAAAAAAAwi71IAAAAAAAAAAAAAAAAMgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9kb20vZWxlbWVudHMvVVQJAAN7iEtXcIxLV3V4CwABBPUBAAAEUAAAAFBLAwQKAAAA
AAAwi71IAAAAAAAAAAAAAAAARAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9kb20vZWxlbWVudHMvZ2xvYmFsLWF0dHJpYnV0ZXMvVVQJAAN8iEtXcIxLV3V4CwABBPUBAAAE
UAAAAFBLAwQUAAIACAA0jb1I4hWiBbIAAABoAQAAVgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9kb20vZWxlbWVudHMvZ2xvYmFsLWF0dHJpYnV0ZXMvaWQtbmFtZS1hY3R1
YWwudHh0VVQJAANDjEtXe4hLV3V4CwABBPUBAAAEUAAAAI3MTQuCQBAG4Hu/YtguBR420jSPUtCh
KESCYC/iDiWZC+uGmvjfc80+EIQuM/PCM28SlighVDChBp1CFj8QHEqLBaUjAB9TjvIYYz5Akj/e
vUREV6g2wW5bD9IPFryEytuvTi/rGE5nbccsLHvZ2l71wV/3m7WeWR1+8wALBdVYNavv59T69QAa
gbynX5fHXF00dIFUjKCUQjLiQnPfMMvCM+rECCNGMyPB22xSs67J6AlQSwMEFAACAAgANI29SGMD
stFYAQAA7wIAAFQAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2Vs
ZW1lbnRzL2dsb2JhbC1hdHRyaWJ1dGVzL2lkLW5hbWUtZGlmZi50eHRVVAkAA0OMS1dDjEtXdXgL
AAEE9QEAAARQAAAAzdLPT8IwFAfw+/6Kl3nRbLUjgExOSCTRqJEAgZhwKesTGruVdG9hSPjf7fgh
kcTEo5e2r/m8b9+hjDHgY6OLFHN+L0jw3mTIJzh7UnTYuoXSkg9Qo8iRa7E2BTHCnJjFvNCUc5Uu
jSWUfFVP+ApnbKkFvRub7ljOF5RqLk3KXUaKmbuZazMTmgkiq2aFU1xJlokUGZZLTFzWNZXkBUHw
v6YTCRVC72brdIDVwjoEtTCGTsdjHuvfDYegJIhMQsXhlLC7myP19m90148SXEvgBkbrHFxGYXQF
ufpEiKOovIkiLwAYYCbRjhWufjN/Cuhqk3zA5mH08rz93X5rI9ew6b7ev+1xHMYH3IobZbN1u8dn
4f1B7zy74rXmUR/9CEuCzQW57byhHjV/NABUCmyRneBKSVpUsg3+ZuqjtcZO/Ta4s/sluZhjVU39
qR+6NTFyVzeixnbre19QSwMEFAACAAgANI29SJWsmd8xAAAAMgAAAFgAHABpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2VsZW1lbnRzL2dsb2JhbC1hdHRyaWJ1dGVzL2lk
LW5hbWUtZXhwZWN0ZWQudHh0VVQJAANDjEtXe4hLV3V4CwABBPUBAAAEUAAAAOMKcAwOVshMUUjM
S1HIS8xNVUgsKSnKTCotSS0Gi6WnlrjmpOam5pU4VXqmKHBxAQBQSwMEFAACAAgANI29SKFjmbBC
CAAA9h0AAFwAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2VsZW1l
bnRzL2dsb2JhbC1hdHRyaWJ1dGVzL2lkLW5hbWUtcHJldHR5LWRpZmYuaHRtbFVUCQADQ4xLV3uI
S1d1eAsAAQT1AQAABFAAAADVWfuP2zYS/n3/CmIX122L1cNre+PHZg/dF3q49i7IBi0OOOBASZTN
rCS6JLW2k+Z/v+FLlmTJzgEp0mvQWCKH5Dcz3zyoXC9lnt2cXC8JTuAnJxKjeIm5IPL1eSlTb3IO
w0JuM3JzMsto8XyBZi9UUEkS9PEEwX+SbKSXkJhxLCkrZqhgBZnrqYjxhHAvYlKyfIYGqw1K4Jkk
85NPJ2Y7u0nMMsZn6CwcTvWc/0gzck/T1M5HOH5ecFYWiedE04n6Uz/InCBYRhN0liSJmUtZIb0U
5zTbzlDOCiZWOLYAc8wXFCAPSI5CM7RioJzWg5MMNHohGtBy0EI6HA479he4EJ4gnKa1SUE/EH1G
/VAvI6mcodAfu/GEilWGYRNagGUswjVN5BIWh+FfLD6cJLRYVCsNNusa9dT0joVLiyWAkpX4kr0Q
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
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vZWxlbWVudHMvZ2xvYmFsLWF0dHJp
YnV0ZXMvaWQtbmFtZS1zcGVjaWFsY2FzZS1hY3R1YWwudHh0VVQJAANDjEtXe4hLV3V4CwABBPUB
AAAEUAAAAHXMTwuCMBiA8buf4r1V4GFBf8ZuqaMCTcgQOi73CqMxYY7SpO9eZHgQvP+eJ0xPWRpz
SHiW7facgVYGYblmcMYSLZoCubWVZRAKM3NQKiPhIawSN40MHNbO06JFC8LBnPhkAbV6IVBCmg0h
Hnw/RqLNFT4nyFROhzjQVXGH7nBJ4vcEHGglW+iCNLr2kvr0L7d01ZCfHG2jYz6+9vYDUEsDBBQA
AgAIADSNvUhluzl3bgEAACEDAABgABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2RvbS9lbGVtZW50cy9nbG9iYWwtYXR0cmlidXRlcy9pZC1uYW1lLXNwZWNpYWxjYXNlLWRp
ZmYudHh0VVQJAANDjEtXQ4xLV3V4CwABBPUBAAAEUAAAAM2QwW4aMRCG7/sUc0ujxfWiNmXFCQir
NAopEVuBcpxdD8GK10b2bIFEffcaiBIVlXsvHtnz+ZtfI4QAOXembSjIMTLKYlHKBVV3mt/KqNVG
yRkZwkDS4M61LJgCC0+hNRykbtbOMym5+VLLDVVibZCXzjcHLMgVN0Yq18joaMjGlyfjKjQCmb2u
2khJrYTFhkRYU63R1HGWoG28RO9n3nKSpun/mxRrbtEccg4GILqdHqT7YzBIRCIehmUJWsFG8wqU
ftIcwFmzg49WYPT8F/DPXmsV+VA7T3CiXbd2n4G1s6fuQ79eaUuBYkUf05KPQJJeT3+U00kB90VZ
Dm+KPphIQfeqDzNakidbU+G98324RnvBsNRWwS/0GitDfdgvLUnjoqMOGT5lnewSgn4hyLNs+y3L
khSiaR96rmlzjjknyD++j4yrn+H1+8/7ye9z5Dvr1A5eR9Px4xHNO/kb2su/brMjeiIe385PvUf4
D1BLAwQUAAIACAA0jb1I3scqNFQAAACVAAAAZAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9kb20vZWxlbWVudHMvZ2xvYmFsLWF0dHJpYnV0ZXMvaWQtbmFtZS1zcGVjaWFs
Y2FzZS1leHBlY3RlZC50eHRVVAkAA0OMS1d7iEtXdXgLAAEE9QEAAARQAAAAbczBCYAwDEDRe6bI
Km4gdILQBhuQVJIUcXulIKJ4+ocHH+YpJZSCu0TFIouEY9P1QLjFgyxe/kddC5vnZvzwgK1rjk4h
TT/jwbmKsvNVMsrBhgAnUEsDBBQAAgAIADSNvUiU8nE7yggAAOchAABoABwAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9lbGVtZW50cy9nbG9iYWwtYXR0cmlidXRlcy9p
ZC1uYW1lLXNwZWNpYWxjYXNlLXByZXR0eS1kaWZmLmh0bWxVVAkAA0OMS1d7iEtXdXgLAAEE9QEA
AARQAAAAzVptc9u4Ef7uX4Gxp+fejUlKluTIsuNObMu9TpPLzSmTm37qgCQoISYJFYAsOWn+exdv
FEiRstuJL72bi0hgAeyzL88umLtcyCK/OrhcEJzCT0EkRskCc0Hk6+OVzILxMQwL+ZiTq4NJTsv7
EzR5oIJKkqIvBwj+kWQjg5QkjGNJWTlBJSvJhZ6KGU8JD2ImJSsmqL/coBSeSXpx8PXAbGc3SVjO
+AQd9Qbnei68ozm5pVlm52Oc3M85W5Vp4ESzsfrXP8icIFhOU3SUpqmZy1gpgwwXNH+coIKVTCxx
YhUsMJ9TULlPCtQzQ0sG4DQOTnJA9EC0Qot+Q9PBYNCyv8ClCAThNPMmBf1M9Bn+oUFOMjlBvXDk
xlMqljmGTWgJlrEarmkqF7C41/uT1Q+nKS3n1Uqjm3WNeqp7x6pLywUoJSvxBXsgvIFoNBpddBmb
EGOGUPnkLZwl7OIsZxhgcDpfyLrnlNQNwMeAxR3FwPRUAsReA7LEcU6ChOR5DWWg961Zab0AdIH2
oQq1NcfLrWYzkijfdQaNXlwPmWa42Jh1doeA6i035oTpZgnuhf0BGjlBofppIuxUT9CUxI/qT6RV
vc5Zcv8r5jIEqJOMciGDZEHztNOw6rgZrD/ZtxknBbj25Inz7BnO/CbggliJ1MJu5KIOokXSBOcB
zukcckOyFlicqEj/GZdpTpw57D7KhOp9QYxDt/GcrLhQrlFqNzMQx+CdlfMYnFkFjkkerd4+LWpx
vhsOc04eLxqBGY6e8pcxMQole9LMYcZZ0TC25Ud1hrL6L6siJhyiifjRZUad4rs0aqP2/LxGgC5d
2mjQZfJwOGylG9/7FceojUYmBUwaVIRv48CGZ1uIGHVr4TSwhOUB1xBbCccUiU6z7CGpJVfZqdS0
BnRsYqPGAanlKiwKTLbqKbCnfgUcnOD7QA0YhWiB56TmmQk6rQwe51hZUQkmQA2gA6hin1AT99Yr
4+F5J/dmJNsSgAor2LEqj142tyxNs7S+FJwtusXPyfnFvppe7WRZxtfDZkV3uU7TnQ1QSvLuFeT8
SW2in9BstVwyLqHSchvJYNSiIKUU6KcIzsMruWDG3qYaq2YGol5CnCbOU3qBlumo/5WMUgZDSGhh
R2dnLrAV3eA8v3EatEqfmlpW4E3QKO8F9AV26LRX1Z3m0WD3vedUmV2ldO2YNj1DtiSmbAZrEt9T
GUiu0s5YwiiOwlNx4cEYWtBHQmK5EterGGp4VQ9DlT2t6qglkrE8xrw+747OcqIzdDtRsM/VaEVO
A5PHto9Sj65bUM/dLWEXc+xt5bZhkdENMftYPu7VIYVY9yAmzXar+JoCF/BGqFV7fg5omZINkNQe
aNtC6KnQhsuSUa28jS2LlUpNm7CtpQnOi9nmSUXPtor2TRC7ImTetLL2uapg9rVSuOrMakfTjOPC
aNjIk3ob4eXITQfT7trmEXpNtra1nuTQOELP/IzCdHZ+tw0vW5M7JrUh6nNVG5nutsf15tjuYcy3
G8OdLUHqeNYc88aRgrvq9PzZD65GNu4kZ68coe2quSdJvNuOKLDp5X3OLRmH4YsOlrH4VQsm2g43
OFxe99pEchyTfIIzyLCTneVmXG+iC3IJUA/Rv9HhxUFViL3y3VydY+jQWRbIxyVp3eqwUyMr2Lji
LkiuCbJqRrFqRjtq1FFBhHCNR6ed29ziZcdME/VzSiGUGGiIHihbiZtqBJrZz6S88YplW513LUez
xPjFRXE5RK2OBMft9t1GoiWRgauBz9LGhgb0OESqnKiVC9v2dTR9fp2NV5BVpc87rr6n9GGSscTa
kK2k4gs//eJ8pSuJnYJ4yUAXqGB9B8QvlnoX6GE+LIg5KbKVdg76KwySIQlzsZG2oSbQA8WKk+U7
GxOgbMzZGhwOncACw1rbFFEZqiaowjEc2S6+akXsu2MH1ciq/3r1Iuo+6TR7/IKmcMsywJSDhLt8
t1QU6MOYwA9ge7AAadQV/6a3U+qCfjgwLdP244er/i0+OLq9vfVS+mh8d3s3umvlJ2gu26N4Op22
aT0hxRIYquZ826Y1JEN4BE1rmT89H/fGlreSnGD+T90euKuAGtHXpoUSuYzsV7dLkXC6BJ/y5PXh
QsqlmEQR/oQ34ZyxOSxaUqFCV49FOY1F9OlfK8Ifo344DE/tSwitZfhJHF7Bvnq/K1TfOWEpCZQP
yRrk/gKeVs58PRx7S0Ap+6EwZukj/EA+gN5YiNfH7iagvhcu+lfRR/AncFZ0iyWOpr/Pot9J/Hcq
7c/1iuZp9BvUXSxIBJEC5gwkAYaF6/sqlyKihYpgkkbrQRIBbQQQTxKa/EKLiUh9uIxSgA17aIKJ
5jmLVWhKySmkMJxN06CEDgKynSQU5wmcFUDbs8J5KDcSwPTrGLxPSMe7M/pq3zWurvzI3GoaIuq+
g+qfirZywEOlE9TfCrYNyPFVHwwP81c1KaAEX+aHMhbLi1ZBqO3HV3YGPAcqfSvFTr+FYnD3u/r1
zWwGmsGTfkXeM039iTWVCyCVOQX2Y2X+6CRfAt3gD0cHjMFlF9wXRDp8KaQt8NDahw/wgG6BY+BS
742Tl0Q7ejG03stO1Prvy1UJ7OONYN/rwDq+8EuH+dkfEuYmlJMFbCpqjlZ/ywRcDPq+IMZXL8Cg
+qe7BkCH8nQBsEJ7dd+jF3tGmTC6Qyt8dfP+l9n7t1P0bjqbvfnrdKIXo/5ogn4jGeGkTMiUc9Wh
3ODyhyO4nki455cpesCcqr+XmSBVci8jtdl/56ZvivP0CZzQRRButVR/IGit/tw76f2IhDcK3Z8v
M+71Nme93ncHN3gCHAJnKcL86EMh6wqjj0n8n2Ic/q8OrIGr+dJ7IRrn+LujHD3Hk57e4FTNHj7I
Lz9/ePf2qz/iPT83rL+/Kc6eNIUL62u4T6Av1+9v//FVe318Mv5xn6tfjYeb7x/Qr56Br0KofIy+
3P7t41ePmMBt+7Ds1Brv2qgqk572Zbc/+oZ2GZn/v+M/UEsDBBQAAgAIADSNvUjiFaIFsgAAAGgB
AABlABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9lbGVtZW50cy9n
bG9iYWwtYXR0cmlidXRlcy90aGUtbGFuZy1hdHRyaWJ1dGUtMDAxLWFjdHVhbC50eHRVVAkAA0OM
S1d8iEtXdXgLAAEE9QEAAARQAAAAjcxNC4JAEAbge79i2C4FHjbSNI9S0KEoRIJgL+IOJZkL64aa
+N9zzT4QhC4z88IzbxKWKCFUMKEGnUIWPxAcSosFpSMAH1OO8hhjPkCSP969RERXqDbBblsP0g8W
vITK269OL+sYTmdtxywse9naXvXBX/ebtZ5ZHX7zAAsF1Vg1q+/n1Pr1ABqBvKdfl8dcXTR0gVSM
oJRCMuJCc98wy8Iz6sQII0YzI8HbbFKzrsnoCVBLAwQUAAIACAA0jb1I0wfXK4IBAAA7AwAAYwAc
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vZWxlbWVudHMvZ2xvYmFs
LWF0dHJpYnV0ZXMvdGhlLWxhbmctYXR0cmlidXRlLTAwMS1kaWZmLnR4dFVUCQADQ4xLV0OMS1d1
eAsAAQT1AQAABFAAAADNksFO4zAQQO/5ilH2AkqMXdFCllOpQFqJXYHaCoTUixPPptY6cWVPlEDV
f+Fb+DKcUkBUQuK4F49n9OZ5LJsxBvzWmqZCzy8kSX55N+N3mF9p2oVJo43iUzQoPXIjH2xDjNAT
c+gbQ57ramUdoeLtccFbzNnKSPprXbXFPF9SZbiyFQ+OCutQKY3NpWGSyOm8CRSnJTIj6/KjxoQY
MOxWWAT1EXUUJUnyXw8rC2qk2Y46HgMbpENIBmkG43HEnp8iFrGb89kM5kuE3NnWo4NWGwMOC1vW
+hFBQq9tZImgsDDSoQJd78rwfhrYGsIM0M8KJMsjCPIk3DYYJcGBSMUh+F6YCdGdCBElAFOsFbpb
je1XzLcEE2OLf7D+Nf/ze/M1+05b9QDryfXF/SucpdkOPs2G3ej05yu8J7+ZXu67e3wweqPf+Dl2
BOsfFMJ+w7EYfWoA6ClwTf0BtlrRsifPIF4vYnTOukV8BmEfvpgPz9Bni3gRp2EtrNrmQzHcbOLo
BVBLAwQUAAIACAA0jb1IdEqNNVcAAABfAAAAZwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9kb20vZWxlbWVudHMvZ2xvYmFsLWF0dHJpYnV0ZXMvdGhlLWxhbmctYXR0cmli
dXRlLTAwMS1leHBlY3RlZC50eHRVVAkAA0OMS1d8iEtXdXgLAAEE9QEAAARQAAAALczBDYAgDAXQ
O1P8CdzBDUxwgQINkFRIagmJ0ziLk+nB6zu853ZuW73HXhhB+zxZMasIlGPPrV4MglDLgzIjcRRS
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
OeUZCbQPyRbk/gqe1s58M5k1lgAo96Ew4dkL/EA+AG4s5ZtzfxPQ3wvXo5voZ/AncFZ0hxWO7n95
jH4hyd+ocj9vK8qy6Ceou1iSCCIFzBkoAgwL1/eKKRnRQkcwyaLtOI2ANgKIJwVNfmHEZKQ/XEYZ
qA17GIKJVownOjSVEhRSGM6G3AkYhotfPRbE8SiAzqfCLFQ7BfqM2mo0viKdH86Y2/3QuL71I3ux
6YjoKw9qfy3aywEVlV7QfC7Y9yDnNyOwPczftKSAFZoyfy4TuVn2CkJ5P7/5z7/dHLgPQH0uaJef
AdoXATb+DMB+/Pbx0dCy41UgUMYAQMpXJfAH9CI6ripNvnAxZXD10ldrN4zqcNPMrAlcBytSeBWi
L6Lx5Au4wvwMxzkQ8etB7oSOYj+Ci39CKhjswB/6NIX+El/EXyHN8GgWx7urOP7f7P1ZAV8OA0bo
JwLXJ/EzsO0fDvf4/83Qk9cNbQIXffzu3Q/f//6Hwz89hr/WACou+vj2H3f/tArMLmZOgW9mk910
Nnk1gRsth053M92U3f+Y6n4d2X8b/C9QSwMEFAACAAgAMIu9SE2enExYAAAAsgAAAGUAHABpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2VsZW1lbnRzL2dsb2JhbC1hdHRy
aWJ1dGVzL3RoZS1sYW5nLWF0dHJpYnV0ZS0wMDItYWN0dWFsLnR4dFVUCQADfIhLV3yIS1d1eAsA
AQT1AQAABFAAAADLSaxMLVJILFHQMNAx0FQozqxKVbAwMKgwMzDgUlAISs1LSS0Ky0wtx6Ekhwjt
Tjn5ydkK1R4hvj61OJXCFeenVCpUO/m7RELUWuhYQNWaW5hUmFqYcAEAUEsDBBQAAgAIADCLvUil
eNx2OQEAAIsCAABjABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9l
bGVtZW50cy9nbG9iYWwtYXR0cmlidXRlcy90aGUtbGFuZy1hdHRyaWJ1dGUtMDAyLWRpZmYudHh0
VVQJAAN8iEtXfIhLV3V4CwABBPUBAAAEUAAAAM2Pz07CQBCH732KOWrKsouiNp4qwcTEPxggEI/T
diwbt12ynaZF4rv4LD6ZWyR4IvHoaZLffPnmN0IIkAtr6oIqOUZGebucySUl95r3Y1Rrk8kpGcKK
pMGNrVkwVSwcVbXhSupibR1TJpvzVDaUiLVBfrWu2GGVXHFhZGYL6R0FlT7JjU3QCGR2Oqk9JXlF
wmCZ/2ZCqTNB7ZpSr+5zy0EYhv+6LKZco9lVjWMQg94QwkHvAuI4EF+fgQjE881sBvMVQeJsU5GD
RhsDT5M5OEptXup3AoROXWNOkFFq0FEGugQsoS3MdbeDw1mwJfgy0JUGxrwP/kro3/ZqZDhRPXUK
VWeNlGovlQpCgCmVGbmFpuYY8yfByNj0DbZ388eHj+PsgbbZBrajyfjlB4560R6+iobtRTQMvgFQ
SwMEFAACAAgAMIu9SHnK5wBfAAAAaAAAAGcAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvZG9tL2VsZW1lbnRzL2dsb2JhbC1hdHRyaWJ1dGVzL3RoZS1sYW5nLWF0dHJpYnV0
ZS0wMDItZXhwZWN0ZWQudHh0VVQJAAN8iEtXfIhLV3V4CwABBPUBAAAEUAAAABXMwQmAMAwF0Hun
+BM4gDcXUKEuEDXUQkwhRhSncRYnU88P3nOH0DcxYlgYo5VjY8ORRdB2A4ynkjRfDIKQpp0SY+ZJ
yHhGVpDiXKX+DeRuedydURT+dYuvAqdUIYQXUEsDBBQAAgAIADCLvUi9wmloFggAACwcAABrABwA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9lbGVtZW50cy9nbG9iYWwt
YXR0cmlidXRlcy90aGUtbGFuZy1hdHRyaWJ1dGUtMDAyLXByZXR0eS1kaWZmLmh0bWxVVAkAA3yI
S1d8iEtXdXgLAAEE9QEAAARQAAAA1VnpbuPIEf7vp2jYSJwszEOW5NXhcbDjAwtkL6wHu8ivoEk2
xR432druliXPZN8lz5InS/VFkRQpT4AZYLODHUns66uqr76q5lwXqmQ3J9cFwRl8lERhlBZYSKLe
nG9UHszO4bFUL4zcnCwYrZ4u0OKZSqpIhj6eIPhPkZ0KMpJygRXl1QJVvCJLM5RwkRERJFwpXi7Q
aL1DGXwn2fLk9xO7ndsk5YyLBTqLx3MzFj5QRu5onrvxBKdPK8E3VRb4qflM/2keZE+QnNEMnWVZ
ZsdyXqkgxyVlLwtU8orLNU4dwBKLFQXII1Ki2D5aczDO2CEIA4ueiQFUjDpIx+Nxz/4SVzKQRNC8
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
WAAAALIAAABlABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9lbGVt
ZW50cy9nbG9iYWwtYXR0cmlidXRlcy90aGUtbGFuZy1hdHRyaWJ1dGUtMDAzLWFjdHVhbC50eHRV
VAkAA3yIS1d8iEtXdXgLAAEE9QEAAARQAAAAy0msTC1SSCxR0DDQMdBUKM6sSlWwMDCoMDMw4FJQ
CErNS0ktCstMLcehJIcI7U45+cnZCtUeIb4+tTiVwhXnp1QqVDv5u0RC1FroWEDVmluYVJhamHAB
AFBLAwQUAAIACAAwi71IxFexiEABAAChAgAAYwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9kb20vZWxlbWVudHMvZ2xvYmFsLWF0dHJpYnV0ZXMvdGhlLWxhbmctYXR0cmli
dXRlLTAwMy1kaWZmLnR4dFVUCQADfIhLV3yIS1d1eAsAAQT1AQAABFAAAADNkMFKw0AQhu95ijkq
yXZT2mqOsVQoqFja0uJxkozJ4iZbdiektfguPotP5rYWBaHg0dPAzzffP4wQAuTK6LYmJyfIKG/X
C7mm7E7xaYxbpQs5J03oSGrcmZYFk2NhybWanVT1xlimQnaDXHaUiY1Gfja2PmJOVlxrWZhaekdN
jU9KbTLUApmtylpPSa5IaGzKn0zE8UDQdkO5V/d4y0EYhv/6WMy5RX08NU1B9KMhhP1oBGkaiI/3
QARidrNYwLIiyKzpHFnolNZgKTdlo14JEA7aFkuCgnKNlgpQDfg+mC6XM6gIC7IRdBUdU0ugHDTG
Q0y2Qf17H1mZpge+O/TP8IXIcBFH8SW4Q18Sx9urOA5CgDk1Xr1S1J1j/iQYa5O/wH66fLh/O89+
06bYwX78OHn6gpMoOcHXyXA7SobBJ1BLAwQUAAIACAAwi71IpK9w82YAAAB+AAAAZwAcAGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9kb20vZWxlbWVudHMvZ2xvYmFsLWF0dHJp
YnV0ZXMvdGhlLWxhbmctYXR0cmlidXRlLTAwMy1leHBlY3RlZC50eHRVVAkAA3yIS1d8iEtXdXgL
AAEE9QEAAARQAAAAXcvBCcMwEETRu6qYAkJ68C1Hg9XA2hqkhWUFawVBqkktqSwmx1w//33eKa3L
tiE3Yo8+TwammiF49Or6IgQmXp9SicLDJFigjnGJR84rGqUwbpiNvxqEnvB+TYPhYv9ehna/I6Uv
UEsDBAoAAAAAADONvUgAAAAAAAAAAAAAAAAvABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9VVAkAA0GMS1dwjEtXdXgLAAEE9QEAAARQAAAAUEsDBAoAAAAA
ADCLvUgAAAAAAAAAAAAAAABAABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L1VUCQADe4hLV3CMS1d1eAsAAQT1AQAABFAAAABQ
SwMECgAAAAAANI29SAAAAAAAAAAAAAAAAE8AHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvVVQJAAND
jEtXcIxLV3V4CwABBPUBAAAEUAAAAFBLAwQUAAIACAAwjb1I1DisEeQAAABMBQAAZwAcAGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVu
dC9tZWRpYS1lbGVtZW50cy9ldmVudF9jYW5wbGF5LXN0ZGVyci50eHRVVAkAAzyMS1d0iEtXdXgL
AAEE9QEAAARQAAAA7ZNBSwNBDIXP7q/IUS/S3RaqQ/Hg9qDggiCiIB6yM+l06JiUmazSf++sePPW
4m2Pgfe+Rx5JhwdorqFemkVt5g3QV65nzWUUixGS2kR7SRrYvy2vFvX8HVZr6gd/YyCTdpQzenoQ
74vitph2Booxkqu648GKSVvhTfBDQg3CL0G3rXzsI43THbKLlAy0aLfkYAbE2JdM6NHuiF0+JZz0
OVO6542sg1Xzh23gvDq7OC1h6u2oBHa/xf3shUpe0qFweYhxIk/k/yAHDjoinwq9/NB43wZeH1uw
wkx2/Kui+cQYXPUNUEsDBBQAAgAIADCNvUihfVJU6gAAAKQEAAByABwAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVs
ZW1lbnRzL2V2ZW50X2NhbnBsYXlfbm9hdXRvcGxheS1zdGRlcnIudHh0VVQJAAM8jEtXdYhLV3V4
CwABBPUBAAAEUAAAAO2TwUoDQQxAz/YrcrQX6W4L1aF4cHtQ6IIgoiAesrPpdOiYKTPZSv/erHjz
pItIoceE5CXzhtR4gPIKirmZFWZaAr3nYlJehGgxQBKbaBeTeHYv88tZMX2FxZKazl0byMRtTTmj
oycvmwqFXEwHA+fchTAe1b8me/bSIx+U7iPf8ToaeL6vwEZmsqI5rdlj8O2AKZnka/1VdE4rbrRp
a0AbAw0CCyapIq+96xL22376iW+7QH10i9wGSgYqtBtqYQLE2OhMaNBu1Woe9qrHTKl3tvRWzDe2
/s/obHzy9g/e/upejpH8kxv/AFBLAwQUAAIACAAxjb1IZGQdJfAAAAAMBgAAbgAcAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9t
ZWRpYS1lbGVtZW50cy9ldmVudF9jYW5wbGF5dGhyb3VnaC1zdGRlcnIudHh0VVQJAAM9jEtXdYhL
V3V4CwABBPUBAAAEUAAAAO2UwUoDMRBAz/Yr5mgv0t0tVIN4cHtQcEEQURAPs9lpGhonJZlV+vfO
ijdPukh76DHDzJvJC5MGd1BeQLEw88JUJdBHLmblWYgWAySxibYxiWf3sjifF9UrXC6p7d2VgUzc
NZQzOnrysq5RyMW0M3DKfQjTSfNnsmcvA/JB6T7yLa+igef7GmxkJisa05x3DL4b0SWTfI9/F53T
jGst2hjQwkCjwIJJ6sgr7/qEw7RffuLbNtBwukHuAiUDNdo1dTADYmy1J7RoN2o1j7vVY6Y0OFt6
K+YHW99ncjI9etuDt//al0MhV0fywZF/85d+AlBLAwQUAAIACAAxjb1ICZVR4OoAAACkBAAAeQAc
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQt
Y29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9jYW5wbGF5dGhyb3VnaF9ub2F1dG9wbGF5LXN0
ZGVyci50eHRVVAkAAz2MS1d2iEtXdXgLAAEE9QEAAARQAAAA7ZPBSgNBDEDP9itytBfpdgvVoXhw
e1DogiCiIB6ys+l06JgpM9lK/96sePOki0ihx4TkJfOG1HiA6RUUczMrTFkCvediMr0I0WKAJDbR
Libx7F7ml7OifIXFkprOXRvIxG1NOaOjJy+bCoVcTAcD59yFMB7VvyZ79tIjH5TuI9/xOhp4vq/A
Rmayojmt2WPw7YApmeRr/VV0TitutGlrQBsDDQILJqkir73rEvbbfvqJb7tAfXSL3AZKBiq0G2ph
AsTY6Exo0G7Vah72qsdMqXe29FbMN7b+z+hsfPL2D97+6l6OkfyTG/8AUEsDBBQAAgAIADGNvUgt
Rd376gAAAKQEAAB1ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFu
dGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X2xvYWRlZGRhdGFfbm9h
dXRvcGxheS1zdGRlcnIudHh0VVQJAAM9jEtXdohLV3V4CwABBPUBAAAEUAAAAO2TQUsDQQyFz/ZX
5Ggv0u0WqoN4cHtQ6IJQRKF4yM6m06FjUmaylf77zoo3by6FHjwmJN/LvMfUeITpHRRzMytMWQJ9
pWIyvQliMUBUG2kvUT279fx2VpQfcL+gpnMPBhJxW1NK6OjN67ZCJSfxaOCauxDGo/rPZM9ee+Qq
073wM2/EwPtLBVaYyWru5ZkDBt8OUEmkP+cvxbk88ZiXdgbyYqBBYMWolfDGuy5if+23P/K5D9RX
T8htoGigQrulFiZAjE3WhAbtLruahr3qNVHsPVt4q+YXO+czuhoPUjhX7v+JXF4il/DHT1BLAwQU
AAIACAAxjb1IV1MfPO0AAACkBAAAbgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9sb2Fk
ZWRtZXRhZGF0YS1zdGRlcnIudHh0VVQJAAM+jEtXd4hLV3V4CwABBPUBAAAEUAAAAO2TwUoDQQxA
z/YrcrQX6XYXqoN4cHuo4IIgoiAesrPpdOg0U2aySv/erHgRT2URETwmJC+ZN6TBA8wvoFiYqjBl
CfSWi9n8LESLAZLYRPuYxLN7XpxXRfkCl0tqe3dlIBN3DeWMjh69bGoUcjEdDJxyH8J00nwhV0eQ
PXsZkPdK95FveB0NPN3VYCMzWdGc1rxi8N2IKZnkc/3b6JxWXGvT1oA2BhoFFkxSR1571ycctv3w
E3f7QEO0Qu4CJQM12g11MANibHUmtGi3ajWPe9VDpjQ4W3or5htb/2dyMv339gvefupe/iL5mBt/
B1BLAwQUAAIACAAxjb1I0wK4WuoAAACkBAAAeQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVu
dF9sb2FkZWRtZXRhZGF0YV9ub2F1dG9wbGF5LXN0ZGVyci50eHRVVAkAAz6MS1d3iEtXdXgLAAEE
9QEAAARQAAAA7ZPBSgNBDEDP9itytBfptgvVoXhwe1DogiCiIB6ys+l06JgpM9lK/96sePOki0ih
x4TkJfOG1HiA6RUUc1MWZlYCvediMr0I0WKAJDbRLibx7F7ml2Uxe4XFkprOXRvIxG1NOaOjJy+b
CoVcTAcD59yFMB7VvyZ79tIjH5TuI9/xOhp4vq/ARmayojmt2WPw7YApmeRr/VV0TitutGlrQBsD
DQILJqkir73rEvbbfvqJb7tAfXSL3AZKBiq0G2phAsTY6Exo0G7Vah72qsdMqXe29FbMN7b+z+hs
fPL2D97+6l6OkfyTG/8AUEsDBBQAAgAIADGNvUjjf1jh6gAAAKQEAABpABwAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlh
LWVsZW1lbnRzL2V2ZW50X2xvYWRzdGFydC1zdGRlcnIudHh0VVQJAAM+jEtXeIhLV3V4CwABBPUB
AAAEUAAAAO2TQUsDQQyFz/ZX5Ggv0m0XqoN4cHtQ6IJQRKF4yM6m06FjUmaylf77zoo3by6FHjwm
JN/LvMfUeITpHRRzUxZmVgJ9pWIyvQliMUBUG2kvUT279fy2LGYfcL+gpnMPBhJxW1NK6OjN67ZC
JSfxaOCauxDGo/rPZM9ee+Qq073wM2/EwPtLBVaYyWru5ZkDBt8OUEmkP+cvxbk88ZiXdgbyYqBB
YMWolfDGuy5if+23P/K5D9RXT8htoGigQrulFiZAjE3WhAbtLruahr3qNVHsPVt4q+YXO+czuhoP
UjhX7v+JXF4il/DHT1BLAwQUAAIACAAyjb1IjHQyK+sAAACkBAAAdAAcAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1l
bGVtZW50cy9ldmVudF9sb2Fkc3RhcnRfbm9hdXRvcGxheS1zdGRlcnIudHh0VVQJAAM/jEtXeIhL
V3V4CwABBPUBAAAEUAAAAO2TT0sDQQzFz+2nyLG9SLd/qB3Eg9uDQhcEEQXxkJ1Np0OnmTKTVfrt
zYo3by5CDz0mJL+XeY+p8ATTFRRLMy/MbAH0mYvJ9CpEiwGS2ETHmMSze1tez4vZO9ysqW7drYFM
3FSUMzp68bIrUcjFdDIw4jaE8bD6M9mzlw75pHQf+YG30cDrYwk2MpMV7enMBwbf9FDJJD/nb6Jz
OnGnS3sDuhioF1gwSRl5612bsLv22594OAbqqnvkJlAyUKLdUQMTIMZaNaFGu1dXc79XPWdKnWdr
b8X8Yms+w8G4l8J/5X5J5PwSOYc//gVQSwMEFAACAAgAMo29SIdH0PfrAAAATAUAAHwAHABpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRl
bnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfb3JkZXJfY2FucGxheV9jYW5wbGF5dGhyb3VnaC1zdGRl
cnIudHh0VVQJAAM/jEtXeYhLV3V4CwABBPUBAAAEUAAAAO2RQUsDQQyFz/ZX5GgvpdtWqkPpwe1B
wQWhFAXxkJ1Np0PHpMxklf77zoo3by7Fgx4Tku8l71V4hMkNFHMzK8z0CugjFePJKIjFAFFtpINE
9exe5tezYvoKixXVrVsaSMRNRSmhoyevuxKVnMSjgUtuQxgOqh+TPXvtkOtM98L3vBUDz48lWGEm
q7mXZ94x+KaHSiL9Ov9BnMsTt3lpbyAvBuoFVoxaCm+9ayN21376I2+HQF11h9wEigZKtDtqYAzE
WGdNqNHus6up31ebRLHzbOWtmm/snM/gYthL4Vy5n5P8n/Xfyfq3yCdQSwMEFAACAAgAMo29SM9t
3IL1AAAAzAYAAHUAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfb3JkZXJfY2FucGxheV9w
bGF5aW5nLXN0ZGVyci50eHRVVAkAA0CMS1d5iEtXdXgLAAEE9QEAAARQAAAA7ZRBSwMxEIXP9lfM
0V6k21arQTy4PSi4IIgoFA+z2WkaGiclmVX6750Vb57WvRTpMWHmey9vhlS4h+kVFAszL8zsHOgz
F5PpWYgWAySxiXYxiWe3WlzOi9kbXC+pbt2NgUzcVJQzOnrxsilRyMW0N3DKbQjjUfVnsmcvHfJJ
6T7yPa+jgdfHEmxkJit6pzUfGHwzQOUQ/V/08i8/9h+ic1pxq01bA9oYaBBYMEkZee1dm7Bz+51P
fN8F6k53yE2gZKBEu6EGJkCMtWpCjXarqeZhr3rOlLrMlt6K+cXW+YxOxoMU+sz9/5OPW3TcosMl
9/lLvwBQSwMEFAACAAgAM429SDikR3TwAAAADAYAAH8AHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMv
ZXZlbnRfb3JkZXJfbG9hZGVkbWV0YWRhdGFfbG9hZGVkZGF0YS1zdGRlcnIudHh0VVQJAANBjEtX
eohLV3V4CwABBPUBAAAEUAAAAO2UwUoDQQyGz/YpcrQX6baF1UE8uD200AVBREE8ZGfT6dAxU2ay
lb69WfHmSRdBoccMyfdn/oTUeITpFRSlmRdmVgK95WIyvQjRYoAkNtE+JvHsnsvLeTF7gesFNZ27
MZCJ25pyRkePXrYVCrmYjgbOuQthPKp/TPbspUfeK91HXvEmGni6q8BGZrKib5pzwODbASqZ5LP9
dXROM261aGdACwMNAgsmqSJvvOsS9t1++BNf94H6aIncBkoGKrRbamECxNioJjRod+pqHvarh0yp
92zhrZgvbJ3P6Gw8SOG35v4/yactOm3R3yV/55a+A1BLAwQUAAIACAAzjb1ITZ6cTFgAAACyAAAA
eAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRk
ZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9vcmRlcl9sb2Fkc3RhcnRfcHJvZ3Jlc3Mt
YWN0dWFsLnR4dFVUCQADQYxLV0GMS1d1eAsAAQT1AQAABFAAAADLSaxMLVJILFHQMNAx0FQozqxK
VbAwMKgwMzDgUlAISs1LSS0Ky0wtx6EkhwjtTjn5ydkK1R4hvj61OJXCFeenVCpUO/m7RELUWuhY
QNWaW5hUmFqYcAEAUEsDBBQAAgAIADONvUjdpJPaXQEAAHUDAAB2ABwAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVs
ZW1lbnRzL2V2ZW50X29yZGVyX2xvYWRzdGFydF9wcm9ncmVzcy1kaWZmLnR4dFVUCQADQYxLV0GM
S1d1eAsAAQT1AQAABFAAAADVkV1LwzAUhu/7K86l0sZ0uGm9m2OCoKJssuHVSJOzLZg2IzndOof/
3dh9CMJAwRtvEkKePO97CGMM+MiaqkDP+4IEvxkP+RjzO027rVdpo/gADQqP3Ii1rYgRemIOfWXI
c10srCNUfHUu+QpztjCCptYVDeb5nArDPRaiJC09xyJHpVAxaUvCkniBSgsWAopwCvfLsE2sU+gm
xgrlSTiaLJydhUDPsF6gDGlnVFMUx/F/6y8kVcI07btdYK3kCuJW0oFuN2I+jAYOp+iwlBixiAF8
rk/XwyGISmkLjd0Dg4M6AZpjCfsA2OEeiXQ5A+8kCCKn84oQbBk8ZMOE653Qz21lFARgNkP3pf1m
bXL37qVW+KdVtsJfVoni8DRwguAkTdJT8PoNIUvT+iJNoxhggGX4hJHG1THmR4KesfIVNrfPD/fv
x9kDbdUaNr3H/ssWzpJsB19m7bqTtaMPUEsDBBQAAgAIADONvUiqCzH0eQAAACcBAAB6ABwAaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250
ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X29yZGVyX2xvYWRzdGFydF9wcm9ncmVzcy1leHBlY3Rl
ZC50eHRVVAkAA0GMS1dBjEtXdXgLAAEE9QEAAARQAAAArc5RCsIwEITh95xiDqCH8AZCTxCTMQ2U
bNjdFLy9xRaEvgm+D9/81pmgfFLZEkMAQrjfpglx5CrgyuaGKxaJ2TyqX+AzG7pKUZphXxvdaysw
TYjuWh/DCWkb49KX+Do8m2UsGdugFOpXPaGf24Nea+Y/Q3bvt5DwBlBLAwQUAAIACAAzjb1IEG4A
ylAIAAD2HwAAfgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9vcmRlcl9sb2Fkc3RhcnRf
cHJvZ3Jlc3MtcHJldHR5LWRpZmYuaHRtbFVUCQADQYxLV0GMS1d1eAsAAQT1AQAABFAAAADVWWtv
3DYW/e5fQdjY9bawHuOZcWbGjheNHyiw7W5RBy32U0CJ1IixJKoiZY+T9r/v5UsjaaRxFrC32QaN
NOQlee7zXCoXqcyzy4OLlGICj5xKjOIUV4LKt8e1TLzFMQwL+ZTRy4NVxor7E7R6YIJJStDnAwT/
SbqRHqExr7BkvFihghf0XE9FvCK08iIuJc9XaFJuEIF3Ss4P/jgw29lNYp7xaoWOwulSz/m3LKPX
LEnsfITj+3XF64J4TjRZqD/tg8wJgmeMoCNCiJlLeCG9BOcse1qhnBdclDi2AHNcrRlAntAchWao
5KCc1qOiGWj0QDWgdNJDOp1OB/YXuBCeoBVLWpOCfaL6jPahXkYTuUKhP3fjhIkyw7AJK8AyFuEj
IzKFxWH4F4sPE8KKdbPSYLOuUW9d71i4rEgBlGzEU/5Aq55G8/n8fMzYlBoz+MonP8BZwi5OMo5B
jYqtU9n1nJK6AvUx6OKO4mB6JkHFsKeyxFFGvZhmWUdLT+/bsdJjCtp52ocq1B4rXG6R3dFY+W40
aPTibsj0w8XGrLM7BFRYbswJN5sS3Av7g2r0BPnq0ddwFJ5ghEZP6m+kob7LeHz/E66kD6quElYJ
6cUpy8ioYdVxd7D+ZN9mFc3BtSfPnGfPcOY3AedFSqQTdnMXdRAtksU483DG1pAbkg+oVVEV6d/j
gmTUmcPuo0yofqfUOHQbz3FdCeUaBbufgTgC79TOY3BmEzgmeTS8fSg6cb4bDuuKPp33AtOfP+cv
Y2LkS/6smf2k4nnP2LY+qjOU1f9Z5xGtIJpoO7rMqAO+W0Zt1C6XnQLo0mWoDLpMns1mg+Wm7f2m
xqiN5iYFTBo0Bd/GgQ3PoRAxcDvhNLUFq6W4VnGw4BiSGDXLniJVVio7FUxrQFdNbNQ4RTq5Cos8
k616Cuypf4IeFcX3nhowgFiO17TjmRU6bQweZVhZUQnGUBoAA0Cxb6iv99Yri9lytPYmNNkWABVW
sGNDj61sHlhKEtJdCs4W4+JLujzfx+nNTrbKtHHYrBina0J2NkCEZuMr6PJZNMG36K4uS15JYNrK
RjIYNc9pIQX6NoDzcC1Tbuxt2Fg1MxD1EuI0dp7SC7TMCP83MgoMhpDQwq6cnbnAVuUGZ9mVQzAo
fWq4LMcbr0fvOfQFdug0bHinfzTYfe85TWY3Kd05Zginz0tqaNN7pNE9k56sVNoZSxjgyD8V5y01
ZlbpIyGxrMW7OgIOb/jQV9kzCEctkZxnEa668+7oJKM6Q7cTOf/UjDbFaWry2PZR6tV1C+p9vCUc
qxx7W7ltWCRsQ80+th6HXZV8rHsQk2a7LP7IoBZUvVBr9vzksYLQDRSpPaptibAFYUgvW4w69Law
VaxQMG3CDlITnBfxzbNAz7ZAJyaIHQmZXxqsfW8YzP5sADedWedollQ4Nwh7edJtI1o5cjVSaXdt
8wS9Jn+0XE8zaByhZ/4CYjpb3m7Dy3LyyKQ2RHeuaSPJbnvcbY7tHsZ8uzE82hIQV2fNMd+5ouCu
OmF79r3jyN6d5OyNK2i7MPckSeu2I3Jsevl2zS14BcPnI1XG6q9aMDF0uNHD5XU4JJLhiGYrnECG
newsN+N6E03IBah6iH5Hh+cHDRG36Lu/OsPQofPEk08lHdzqcBSRFexdcVOa6QLZNKNYNaMjHHWU
UyFc4zFq5yG3tLLjThfqL6FCoBhoiB4Yr8VVMwLN7CdaXLXIcojnXcvRp5g2uahaDlGrI8HVdvvb
RqItIlPHgV+ExoYG9DhUqpzo0IVt+0aavjbPRjVkVdGuO47fCXtYJTy2NuS1VPWinX5RVmsmsVMQ
LwlgAQabOEXaZKl3gR7mfUrNSYFl2jXgVzpIjiTMRUbahppADwyrmix/tDEBYKOKP4LDoRNIMay1
TRGTvmqCGj1mc9vFN62I/e2qg2pk1f9hl0TdJ51+j58zArcso5hykHCX7wFGgT6MC/wAtgcL0B6v
tG96O1TnTfypaZm2Hz8c+w/44Oj6+rqV0keL2+vb+e1gfYLmcjiKb25uhlCvaF5Cheo437ZpPUkf
XgFpJ/NvlotwYetWnFFcfdDtgbsKqBF9bUqVyEVgv7pdiLhiJfi0it8eplKWYhUE+CPe+GvO17Co
ZEKFrh4LMhaJ4ONvNa2egok/80/tDx9aS/+jOLyEffV+l6i7c8wJ9ZQP6SPI/R08rZz5drZoLQFQ
9kNhxMkTPCAfADcW4u2xuwmo74Xp5DL4BfwJNSu4xhIHN7/eBb/S6B9M2se7mmUk+Bl4FwsaQKSA
OT1JocLC9b3OpAhYriKYkuBxGgdQNjyIJwlNfq7FRKA+XAaC5riAiBQBBc4mhCoP6iQJckoY9uAA
XX0C+gCPDzqcP4DRCTipkh/Kiq/hQOFBM1TjzJcbCSpOupq1Piwd787oC//YuPoQgMxdpyeibkGo
+wFpKwfVqXCC+gvCti05vpyAO2D+siMFhaIt89ciEuX5oCAw/vGlKGkM5yW0okVMrRx4FwC+FMzT
F4D5KsCmLwAMoVeBNvtabTZ/AWA/fXd3h3BNGEc6GQXyUJOJJ4rnCuTy8XXMe/ZSWgA1S1XcoXAi
LGXFoGPQLKw4QPGe1VOkvM4IAoH1WvWCTtuestocr6Pym5dS+YER+qc5bvG/c5zR88933PIVSoF+
jPMU9FbPk5QV2ot9Dy7+BVSmsYMv1GkS/S08Cb9BqmlDizDcnIXhf2fvFwV8uo8SfqYFdBe/QAP1
1eGe/r8Zeva8oXXgos/fv//xhz++OvzzffgbDaCJRp/f/ev630aBxcnCKvBmMdvMF7NnE7h1i1Dp
rqfbstuHbtgvAvPP/f8BUEsDBBQAAgAIADONvUjsaQHXhAAAAMAAAAB4ABwAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlh
LWVsZW1lbnRzL2V2ZW50X29yZGVyX2xvYWRzdGFydF9wcm9ncmVzcy1zdGRlcnIudHh0VVQJAANB
jEtXeohLV3V4CwABBPUBAAAEUAAAAJ3MsQrCMBCA4b1PcaMuYtpCNIhLXRwCgoOCOMT0GgPhTpKr
0re3voLrz89n3QT1FpQ2rTKNBvwUta5Xib1LkMVnfHGWSOGmN61q7rA74GMMewMFqbdYigt4ifLs
nGDgPBlY0JjSsrJ/y5Gi/MjzrEemIw1s4HrqwDMRepnb/Lxdin31BVBLAwQUAAIACAAzjb1IbLxT
y+8AAABMBQAAZQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9wYXVzZS1zdGRlcnIudHh0
VVQJAANCjEtXe4hLV3V4CwABBPUBAAAEUAAAAO2SwUoDQQyGz+5T5KgX6baFHQfx4Pag4IIgoiAe
sjPpdOiYKTNZpW/vrAgevFmKRTwGku8nydfhFqZnUDd6XutZA/SW68n0NESDAZKYRJuYxLN7atS8
nj3D+YL6wV1oyCQd5YyObqJzpeOyDK01lMFAtup+DhZM0kZeejckFB/5wcuqjS+bQGN1hWwDJQ0t
mhVZmAAx9iUTejRrYpt3CSe5z5SueRkX3oj+xtZwXB2d7JTA9vNwH3uhkItpW7g8hPAXyGpfFqnf
tEjt3SJ1IB/5J3+RPXsZkXeFXqwZP6rh8bYFE5nJjCaVnlcM3lbvUEsDBBQAAgAIADCLvUh/y/Xv
bwIAAMwJAABwABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X3BhdXNlX25vYXV0b3BsYXkt
YWN0dWFsLnR4dFVUCQADe4hLV3uIS1d1eAsAAQT1AQAABFAAAAC9lE1vm0AQhu/+FSPn0Fii0i4s
sFjqIY5JaymOq9qxVEU5YLNxUOmuBbjBtfrfu5gPAzLGdaTCgQPvPLPv7MzcTh6mk3sbxvZ0evPZ
7oPvcQbY7MM39sICxpfMDgIR9OHW4R8iePG4C7+cwHMWPutDxMKo4ztbFoATwTVSUA9C7zcDilBs
INQByeEuC+Yee2uQNIWrWC3CB75Y/oDdl9n4/k+jtBALdwu7wWT4PdVSBRuZ2KQkxpTuxTX21zo4
1WbSXDzi+wLtbupqS5VieFoKXwSfrpB8bPu5CM7DZyyOYHcVyc9RQCkAIFFBsOEH4ZvnRq9S2Ydu
uGZLCPI76h5xdO1wwbc/xSbsZQSNlK3ppOZtzFzPkdYeh6NJfjqs6lmMmtRZ77T4kSoFa3m5SdVS
xVChTE0R6Qm6nbPLhWJ07BaHo3lxdEpLdst9JttF0XOQJn1hHYEXCt+R/TzwJc/jq1LrukzAbj4a
2pPcJFFq4S30Anbns9iTozMQceWwp3FY10v/id6Kw6gWcJrXbD5rpbUIvcgTnLm9xmO3ZrkMCk+L
VTZV2E5eU3tus7NIbIyFy5J9tnqNGH93btVK3kpmNemxPADL8a0kXvub8GOaPThk30SR4HI5Pc5m
k4d8PRUzlkLyJXK3fyopCS2nNC5NqRmKSkoU40ROjVoKNq18S2kxNlvaD5vmAZ8GlHAWLuGo1Y5T
D6veqrKIJW/ALIpH0v10kmXKaqNKQA1HS38vrC5S9Aqjuba0dPxiv563KDL5f2edOT9p1Mn5wUZ9
fFrG5NwpIaQ+JG3DcO4sYGr8Y8Nh2XBN/banVfvtXX31F1BLAwQUAAIACAAwi71IS/he9GMDAAB7
DAAAbgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1i
ZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9wYXVzZV9ub2F1dG9wbGF5LWRpZmYu
dHh0VVQJAAN7iEtXe4hLV3V4CwABBPUBAAAEUAAAANWVYW+bSBCGv/tXjNIPl8hwsBgMWKqUuKZt
dEld1WmqU1VVa9jYqwJrsUtCzup/72LABi42vvSkqrZkZPHO8+4MM4OqqqDdsjCNCNcmWGDN+zTT
PpH5X1SUl3FKw0D7QEKCOdFC/MhSoQrChZoQnoaCazRasUSQQHsY+NoDmaurEIs7lkQbGdeWIgo1
TiIcC+pzjURzEgQkUH0WCxILLSIBxao0iOQ/ef9eXr6ucMrJ15jhVDDJe1RJtiK+dPlTZKLX7/d/
l3NjX6Q43Jz6/BxUpLjQR4plwvl5T+UyJ0jIHUlI7JOe2lMB8t/3F7MZ4DSgDDZYDipsyFDe83EY
0ngBucXpGYgliQuB/MNiiFmsVicoOXzJ0jAAkdDFgiQlbQOvmPc0IP+HX8E56Nfrv5q+m02vPLj2
ZrOLN94IJJ4AskfwoSqHlyQsGcErHP8h4I7GAdzjhOJ5SEaQP6FeX7pJNBZwqiv6GXD6DwFH17Oh
rvf6IElxQJJbSh72afYBDGTsAOOQ+d9g/fbm+ur7fu1WzYJHWI+nk78LsaOgYam2HTNDjlOoW/T3
bXQhrrSV+jLe1Gl90Za7hlTDZ5+FLHn5Qpcfz/uyi67ib0gmYP1CyMuThHoEQC6DJI13ygcaiKWU
juCk2bsnT2V1imVjPEYs5WclYmDW07PMdn7X+UzJ9D5OLqfVAZFhlUFGXm6rHfOvnKRMQYOq6mYr
rUZSW2mRmCnzgpNOg13R9Ex/8nFOLm+3x3ecWs6NppOto1gVaiCTQ5YOlDO5hwgfhxIoZ67eyflg
rW8vJ960ytRUWvFd/B3udUgyKqdpzLLGgTuAyLJqAtPqBiK9HXGYeKAEZV+tGKeCspgEZ3uP3u3z
TCx8ni/KOUNe/rUHXzpTmuepXLOA5JtusZQvkJ93N9z82/Q28oarIpAc6Yb1Kky5WvgnNf9UCLnE
1+OPNzfTd9Xa2k5dQalWy+vNp2lqOnXT4bNNB0PFMGuY4SHXgeMqyHar7TXIkN3Visi2dwZlRA3o
ohrQcY8AGrs3gduima58Eva2hma5uA7SbFl1vRnRAjq128+tsq5YDciBGju1FHbL97j1Uel/Be3I
iSrCDk8UGrYHqmtwjp4b02yPTed4HD0dyBn+1/ZDsv32dt+G1+y+n+uyH1BLAwQUAAIACAAwi71I
n6r52m8AAADxAAAAcgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9wYXVzZV9ub2F1dG9w
bGF5LWV4cGVjdGVkLnR4dFVUCQADe4hLV3uIS1d1eAsAAQT1AQAABFAAAACtzbsJAzEQhOF8q5jQ
Dq4Id2C4ChZprBOIldDjwN37IcWOHA4/fNMKHSofrDRHEUDkftt36PAxgyetN2woOhoxk9OUogWU
pM/LFf2gzf4e2WDZNh09f/Ji2pFH8ug1hsC6sK+9yDN6/uFtMr/e5AVQSwMEFAACAAgAMIu9SEDO
YMAkCwAAnEUAAHYAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfcGF1c2Vfbm9hdXRvcGxh
eS1wcmV0dHktZGlmZi5odG1sVVQJAAN7iEtXe4hLV3V4CwABBPUBAAAEUAAAAN1ca3PaSBb9nl/R
FdfmMYVATxA48VZs453UJnEqzmRqa2or1aAGlEhqRmpsnOz89739EpIQmLBORDauCSC1us+5r3O7
cebZjMXRyYNnM4IDeIkJw2g8w2lG2PPHCzYx/MdwOWO3ETl5MIjC5HMLDa7DLGQkQF8fIPjDyJIZ
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
ADONvUg3/GxH6gAAAKQEAABwABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X3BhdXNlX25v
YXV0b3BsYXktc3RkZXJyLnR4dFVUCQADQoxLV3uIS1d1eAsAAQT1AQAABFAAAADtk8FKA0EMQM/2
K3K0F+m2hdZBPLg9tNAFQURBPGRn0+nQaVJmskr/3lnx5skuUgSPCclL5g2p8AjjayhmZlqYyRzo
PRWj8VUQiwGi2kgHierZvczm02LyCjcLqlt3ayARNxWlhI6evG5LVHISjwYuuQ1hOKhOJnv22iEf
Mt0Lr3gjBp7vS7DCTFZzLte8YfBNjymJ9Gv9tTiXK+5y085AbgzUC6wYtRTeeNdG7Lb99CP7Q6Au
WiI3gaKBEu2WGhgBMdZ5JtRod9lq6veqx0Sxc7bwVs03dv6fwcXw39sZvP3WvfxF8k9u/ANQSwME
FAACAAgAMIu9SE2enExYAAAAsgAAAGQAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfcGxh
eS1hY3R1YWwudHh0VVQJAAN7iEtXe4hLV3V4CwABBPUBAAAEUAAAAMtJrEwtUkgsUdAw0DHQVCjO
rEpVsDAwqDAzMOBSUAhKzUtJLQrLTC3HoSSHCO1OOfnJ2QrVHiG+PrU4lcIV56dUKlQ7+btEQtRa
6FhA1ZpbmFSYWphwAQBQSwMEFAACAAgAMIu9SGeuBzZDAQAA/wIAAGIAHABpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEt
ZWxlbWVudHMvZXZlbnRfcGxheS1kaWZmLnR4dFVUCQADe4hLV3uIS1d1eAsAAQT1AQAABFAAAADN
j8FOwzAMQO/9Ch9BbUgnNii3Mg0JCRBoQ5s4oTTxtoi0mRJ365j4d7J2cBtCnLjEsv387DDGgE+t
qUv0fCRI8JvZhM+wuNN0CMNaG8XHaFB45EZsbU2M0BNz6GtDnutyZR2h4ptzyTdYsJURNLeubDHP
l1Qa7rEUFWnpOZYFKoWKSVsRVsRLVFqwsKAMWeivQ3gNji3DZoUymM+ooSiO4/98q5BUC9NemufA
eskVxL1kAHkeMR++AQ7n6LCSGLGIAezfp+vJBESttIXW5IHBXgaHlkciXS3AOwmCyOmiJgRbhRmy
LdgN+6WtjYIALBboOkUr/BKttcI/7+iGf9oRxSELRUFwkibpKXj9jpClaXORplEMMMZKoZtq3Bxj
fiUYGivfYHf7/HD/cZz9pq3awm74OHrp4CzJDvBl1m8GWT/6BFBLAwQUAAIACAAwi71Is9VhLGgA
AADZAAAAZgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mv
ZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9wbGF5LWV4cGVjdGVkLnR4dFVU
CQADe4hLV3uIS1d1eAsAAQT1AQAABFAAAACdjcENgzAQBP9XxTaQIuggEhUYe2MsIRvdnZHSfRDm
nQfvnZm1nRHKD5U1UgQQeU/zjNBTaeDB6oYX9i18MRaje6kZphHBXcvSnWj1VLxd3HBtbX1LOIGc
qaNw9e7OURKfPgz3z4P8AFBLAwQUAAIACAAwi71Iumw1cjcIAACUHwAAagAcAGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRp
YS1lbGVtZW50cy9ldmVudF9wbGF5LXByZXR0eS1kaWZmLmh0bWxVVAkAA3uIS1d7iEtXdXgLAAEE
9QEAAARQAAAA1Vlrb9w2Fv3uX0HY2LpbWI/xzDjzcFw0fqDAtrtFHbTYTwUlUiPGkjgVKc842f73
vXxpJI00zgJ2kG3QSENekuc+z6Vymco8uzq6TCkm8MipxChOcSmofHtaycSbncKwkE8ZvTpaZKx4
OEOLRyaYpAR9OkLwn6Rb6REa8xJLxosFKnhBl3oq4iWhpRdxKXm+QKP1FhF4p2R59NeR2c5uEvOM
lwt0Eo7nes6/Yxm9YUli5yMcP6xKXhXEc6LJTP1pHmROEDxjBJ0QQsxcwgvpJThn2dMC5bzgYo1j
CzDH5YoB5BHNUWiG1hyU03qUNAONHqkGlI46SMfjcc/+AhfCE7RkSWNSsI9Un9E81MtoIhco9Kdu
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
8f8FUEsDBBQAAgAIADONvUhPkPpQ6wAAAPIEAABkABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2
ZW50X3BsYXktc3RkZXJyLnR4dFVUCQADQoxLV0KMS1d1eAsAAQT1AQAABFAAAADtkUFLA0EMhc/2
V+TYXqTbFloH8eD2oNAFoYiCeMjOptOh00yZyVb675sVb4IHl570mJB8L3mvwhNMbqCYm1lhpgug
j1yMJ9chWgyQxCY6xCSe3dt8MSum73C7pLp1dwYycVNRzujoxcu2RCEX08nAkNsQRoPq12TPXjrk
Wuk+8iNvooHXpxJsZCYr2tOZIwbf9FDJJF/nr6JzOnGvSzsDuhioF1gwSRl5412bsLv205+4PwTq
qgfkJlAyUKLdUgNjIMZaNaFGu1NXc7+vnjOlzrOlt2K+sTWfwdWol8Klcr8k+T/rv5P1z+QzUEsD
BBQAAgAIADSNvUjiFaIFsgAAAGgBAABvABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X3Bs
YXlfbm9hdXRvcGxheS1hY3R1YWwudHh0VVQJAANDjEtXe4hLV3V4CwABBPUBAAAEUAAAAI3MTQuC
QBAG4Hu/YtguBR420jSPUtChKESCYC/iDiWZC+uGmvjfc80+EIQuM/PCM28SlighVDChBp1CFj8Q
HEqLBaUjAB9TjvIYYz5Akj/evUREV6g2wW5bD9IPFryEytuvTi/rGE5nbccsLHvZ2l71wV/3m7We
WR1+8wALBdVYNavv59T69QAagbynX5fHXF00dIFUjKCUQjLiQnPfMMvCM+rECCNGMyPB22xSs67J
6AlQSwMEFAACAAgANI29SKS93GCUAQAArgMAAG0AHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZl
bnRfcGxheV9ub2F1dG9wbGF5LWRpZmYudHh0VVQJAANDjEtXQ4xLV3V4CwABBPUBAAAEUAAAANWS
XWvbMBRA3/0rLt5Li63Jocnq9ikLLRS2sZKUlkKgKNJtIipbQbpqnIX898lOsrFAS1/3ovuhc48k
EGMM+L01oULPrwQJfv0w4Q84+6ZpH0ZBG8XHaFB45EasbSBG6Ik59MGQ57paWkeo+OpM8hXO2NII
erau6jDPF1QZ7rESNWnpOVYzVAoVk7YmrIlXqLRg8YAqVnH/NYan6Fg/1VYEsm3KsFmijId8poaS
LMv+k2sLSUGY7tLDIbBefgFZLy9hOEyYjy8Ch8/osJaYsIQBtOvt18kERFDaQif1wKCVwX5LCmN0
Pe96J6dg6z3sFzYYBeT0fI5uN9IJDoOvWuGHnTv4PWeSxSo2BcFJkRen4PUvhLIomi9FkWQAY6wV
unuNq7eYDwlGxsoX2Nzc/fi+fZv9Q1u1hs3o59XjDi7zcg+fl/1mcH6xg4/kt+PrY3eL9wYH+sDf
YUOw+UQxHA+cFYN/BgBaClyo/4IrrWjRkpeQbqYpOmfdNL2EmMe/7MUc22qaTtM8rtKqru4X/e02
TX4DUEsDBBQAAgAIADSNvUjL+e7nXQAAALkAAABxABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2
ZW50X3BsYXlfbm9hdXRvcGxheS1leHBlY3RlZC50eHRVVAkAA0OMS1d7iEtXdXgLAAEE9QEAAARQ
AAAAjYxBCoAgFET3/xSzrEWH6AZBJxCdTPhoaAndPtDW0XbmvVcOWmRuzIyWIoDIMq8rzOVCAivj
WTDhUHOjP9aohujbNIxI8WXLni51OHPwnrkbzX+9Ghz/Fjv7UZQHUEsDBBQAAgAIADSNvUiCtvKq
lggAACYiAAB1ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X3BsYXlfbm9hdXRvcGxheS1w
cmV0dHktZGlmZi5odG1sVVQJAANDjEtXe4hLV3V4CwABBPUBAAAEUAAAANVa+W/cNhb+3X8FYWPr
trCO8czYczheND5QoO1uEActFlggoCRqhrEkTknKHieb/30fL42kkWaygN1kEyQ6+Eh+7/weZV8s
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
arPxMwB789PdHcJlQhnSOSiQh1TuvYwpz54LMZBcpuq3gvr9D4phjQ5iycosQRJIagGwtCZar5fR
5/y59HmgCflLPDB5OQ8YHf5iD0xfIDn1pZ85oMnZTxtWaCf2HbjYF5CLxg7mVbtJ9H14Ev6AVPeE
JmG4PgvD/83ezwr4dFeRfksK6Fp/h07mm8M9/H8z9Gi/oXXgok8/v/vt18/fHP7xLvyVBtDNok+v
/3n9L6PA5GRiFTifjNbj8+lXVOBstwItJ7x5e9P2gVJhMP6KGpzv08DpYL5GHamhthLDcPx1lZjs
V8L8oALxstiA1+duhX6GvvuzZHL+6d/mSjhn3N7PkHtrP/JU7+2NvZy4Z3VWq2RG4ejzZ/Owl2dq
p07FSnq4Lru56APeRWB+PeS/UEsDBBQAAgAIADSNvUjfRTIbiAAAABoBAABvABwAaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21l
ZGlhLWVsZW1lbnRzL2V2ZW50X3BsYXlfbm9hdXRvcGxheS1zdGRlcnIudHh0VVQJAANDjEtXQ4xL
V3V4CwABBPUBAAAEUAAAAL3MsQrCMBCA4b1PcaMuYtpC2yAudXEICA4K4hDTMx6EO0lSpW9vfQQX
15+fz9gJyg5Uo2ulqxbwndS6XAVxNkDMLuJTYib2l6atVXWFzQ5vo99qSMiDwZSsxxPlR28zeomT
hgWPISwL8ye5+0Empvwlj7NOwnu+i4bzoQcnzOjy3ObnZQMNxQdQSwMEFAACAAgANI29SOIVogWy
AAAAaAEAAGcAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfcGxheWluZy1hY3R1YWwudHh0
VVQJAANDjEtXe4hLV3V4CwABBPUBAAAEUAAAAI3MTQuCQBAG4Hu/YtguBR420jSPUtChKESCYC/i
DiWZC+uGmvjfc80+EIQuM/PCM28SlighVDChBp1CFj8QHEqLBaUjAB9TjvIYYz5Akj/evUREV6g2
wW5bD9IPFryEytuvTi/rGE5nbccsLHvZ2l71wV/3m7WeWR1+8wALBdVYNavv59T69QAagbynX5fH
XF00dIFUjKCUQjLiQnPfMMvCM+rECCNGMyPB22xSs67J6AlQSwMEFAACAAgANI29SOloeveZAQAA
ygMAAGUAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Vt
YmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfcGxheWluZy1kaWZmLnR4dFVUCQAD
Q4xLV0OMS1d1eAsAAQT1AQAABFAAAADNklFr2zAQx9/9KQ7vZcPW5NBkdfuUhRYG21hJSkshMBTp
mojJVpBOjbOQ7z7ZcToaKBvsZS86n/T7/04CM8aA31kTKvT8SpDg1/czfo+Lz5r6MgnaKD5Fg8Ij
N2JrAzFCT8yhD4Y819XaOkLFN2eSb3DB1kbQo3VVh3m+ospwj5WoSUvPsVqgUqiYtDVhTbxCpQWL
A6rYxfOnWL5Hx1bXS4bNGmWUv6eGkizL/vPrCklBmO6y4zGwQX4B2SAvYTxOmI8vAYeP6LCWmLCE
AbTrzcfZDERQ2kIn88Cg90F/6pGobb2TIIicXgRCsHWMkW3ZPu9XNhgFEVgu0T1bOu3R9aQV/suk
Q/4Pk5IsbsR9QfC2yIt34PVPhLIomg9FkWQAU6wVujuNm9eYvxJMjJU/YPfp9uuX/evsM23VFnaT
b1cPB7jMyx4+L4fN6PziAJ/Ib6bXp+4WH4yO9JG/xYZg94ZiOQ2cFaMXAYCWAhfq3+BGK1q15CWk
u3mKzlk3Ty8hfsf/3Ysltt08nad5XKVVXT8shvt9mvwCUEsDBBQAAgAIADSNvUg8ycG7awAAAOUA
AABpABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJl
ZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X3BsYXlpbmctZXhwZWN0ZWQudHh0VVQJ
AANDjEtXe4hLV3V4CwABBPUBAAAEUAAAAKWNyw3DMAxD75qCC2SIblAgE7g26xgI7ECSA3T7fNFj
Lz0S5Hu0hRHKN5U1UgQQeT7GEaGn0sCV1Q0Dljl8Ss24SqP7kUwjgruWV3ei1Z3ydkxv3KbW54R9
kDP1Kzmtt2otiX/8XPjvH9kAUEsDBBQAAgAIADSNvUjIGGD4mQgAAEoiAABtABwAaW1wb3J0ZWQv
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
4HcS/YNKe3ld0iwJ3gLvYkECiBQwpycJVFg4vpeZFAHNVQSTJHgcxgGUDQ/iSUKTn2sxEagPl4Eg
OS4gIkVAgLOThCgP6iQJcpJQ7MEGuvoE5AEuf6iYVAdB6H1KnPlyLUGjQVOR2nek4+0Rfb7ve6/O
/cgcbVoi6tCDmt+LNnJQjAonqD8YbLqQ48sBWB/GLxtSUBfqMt8VkVjNOwWB4I8vxYrEsF9KOCli
YuXAmQDwuWCePgPMFwE2fAZgCL0ItNG3arPxMwB789PdHcJlQhnSuSeQh2z6vYw1z54LNBCvVCih
LCIsJafQD2iOVRVeqWDVEktWZgkCgcUCYDrltLYvo+L5c6n4QBPypfwy+XJ+MWp9eb9MXyCR9aWf
ZaAR2k8xVmgn9h242GcQkcYOFla7SfR9eBL+gFSHhSZhuD4Lw//N3s8K+HRXQX9LCuhsf4Nu55vD
Pfx/M/Rov6F14KKPP7/79ZdP3xz+8S78lQbQ8aKPr/91/W+jwORkYhU4n4zW4/PpV1TgbLcCLSe8
eXvT9oFSYTD+ihqc79PA6WC+WB2pobYSw3D8dZWY7FfC/DAD8bLYgNdnc4V+hr77s2Ry/vE/5ko4
Z9zez5B7az8EVe/tjb2cuGd1nqtkRuHo0yfzsJdnaidTxUp6uC67uehD4EVgfoXkL1BLAwQUAAIA
CAA0jb1IImvsToQAAADAAAAAZwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9wbGF5aW5n
LXN0ZGVyci50eHRVVAkAA0OMS1dDjEtXdXgLAAEE9QEAAARQAAAAncyxCsIwEIDhvU9xoy5i2kJt
EJe6OAQEBwVxiOkZD8JFkqvStze+guvPz2fsDHUPqtOt0k0P+MlqXa9CdDZAEpfwFZMQ+2u3aVVz
g+0e75PfacjIo8GcrcczyXOwgj6mWcOCpxCWlflbJib5kaeiU+QDP6KGy3EAF5nRSWnledtAY/UF
UEsDBBQAAgAIADSNvUjiFaIFsgAAAGgBAAByABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50
X3BsYXlpbmdfbm9hdXRvcGxheS1hY3R1YWwudHh0VVQJAANDjEtXfIhLV3V4CwABBPUBAAAEUAAA
AI3MTQuCQBAG4Hu/YtguBR420jSPUtChKESCYC/iDiWZC+uGmvjfc80+EIQuM/PCM28SlighVDCh
Bp1CFj8QHEqLBaUjAB9TjvIYYz5Akj/evUREV6g2wW5bD9IPFryEytuvTi/rGE5nbccsLHvZ2l71
wV/3m7WeWR1+8wALBdVYNavv59T69QAagbynX5fHXF00dIFUjKCUQjLiQnPfMMvCM+rECCNGMyPB
22xSs67J6AlQSwMEFAACAAgANI29SKvJp5CXAQAAwAMAAHAAHABpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVu
dHMvZXZlbnRfcGxheWluZ19ub2F1dG9wbGF5LWRpZmYudHh0VVQJAANDjEtXQ4xLV3V4CwABBPUB
AAAEUAAAANWSUWvbMBDH3/0pDu+lxVbl0KR1+5SGFgbbWElKSyFQFOmaiMlWkM6N05DvXtlxOhYo
3R73ovP/9LufJDBjDPi9NVWBnl8LEvzmYcIfcPZNU1dGlTaKj9Gg8MiNWNuKGKEn5tBXhjzXxdI6
QsVXp5KvcMaWRtCzdUWLeb6gwnCPhShJS8+xmKFSqJi0JWFJvEClBQsHFCGF/ZdQnoJjrcv5U2lF
RbZJDOslynDOCdUUJUny/9xcSKqEae89HALrpReQ9NIchsOI+fAocPiMDkuJEYsYQLPeXk0mICql
LbReDww6NXS7UhjTxKZ9dAy27Hi/sJVRQE7P5+jep1rNfvZFK/wX847/xBwloRH6guAoS7Nj8PoV
Ic+y+izLogRgjKVCd69x9RHzV4KRsfIXbL7e/fi+/Zh9p61aw2b08/pxB+dp3sHneb8enF/s4AP5
7fjm0N3gvcGe3vN3WBNsvlAohwOn2eCPAYCGAleVv8GVVrRoyEuIN9MYnbNuGl9C+A6/thdzbNI0
nsZpWKVVbe5n/e02jt4AUEsDBBQAAgAIADSNvUgAk2hsYQAAAMUAAAB0ABwAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlh
LWVsZW1lbnRzL2V2ZW50X3BsYXlpbmdfbm9hdXRvcGxheS1leHBlY3RlZC50eHRVVAkAA0OMS1d8
iEtXdXgLAAEE9QEAAARQAAAAlYxNCoAgGET33ylmWYsO0Q0CTyA6mSAqakG3j35oGbScmTevZhoU
ziyMhiKAyDQqBb1an8CNsVUMyEHvPjrco9EhnOlsux4pPnhd0hosWvHOsbyny/JcN2/5w3vj3145
AFBLAwQUAAIACAA0jb1IoW4Qv5cIAAA1IgAAeAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVu
dF9wbGF5aW5nX25vYXV0b3BsYXktcHJldHR5LWRpZmYuaHRtbFVUCQADQ4xLV3yIS1d1eAsAAQT1
AQAABFAAAADVWmlv20Ya/u5fMbCxdVuYhyzJ1uF40fhAgba7QRy0WGCBYEgOpYlJjjoztOVk89/3
nYsiKVLKAnaTTZCQnPN5z+edsS+WMs8uDy6WBCfwyInEKF5iLoh8dVzK1JscQ7OQTxm5PJhltLg/
QbMHKqgkCfp0gOCPJGvpJSRmHEvKihkqWEHmuitiPCHci5iULJ+hwWqNEngnyfzg84FZzi4Ss4zx
GToKh1Pd59/SjFzTNLX9EY7vF5yVReK5oelE/a1vZHYQLKMJOkqSxPSlrJBeinOaPc1QzgomVji2
AHPMFxQgD0iOQtO0YiCcloOTDCR6IBrQctBCOhwOO9YXuBCeIJymtU5BPxK9R31TLyOpnKHQH7v2
hIpVhmERWoBmLMJHmsglTA7Dv1l8OElosahmGmzWNOqtaR0LlxZLACWr4Uv2QHhLovF4PO9TNiFG
Db6yya+wl7CT04xhEIPTxVI2LadGXYH4GGRxWzFQPZUgYtgSWeIoI15MsqwhpafXbWjpcQnSedqG
ytUeOV5tkN2RWNmu12n05KbLtN3F+qzTOzhUuFqbHW7WKzAvrA+ikRPkq0dbwl54giYkelL/Iw31
dcbi+zeYSx9EnaWUC+nFS5olvYpV293B/JNdi3GSg2lP9uxn93DqNw7nRWpIw+3GzuvAWySNcebh
jC4gNiTrEIsT5ek/4yLJiFOHXUepUH0viTHoxp/jkgtlGgW7HYE4AuuUzmKwZ+U4Jng0vF0oGn6+
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
MzDgUlAISs1LSS0Ky0wtx6EkhwjtTjn5ydkK1R4hvj61OJXCFeenVCpUO/m7RELUWuhYQNWaW5hU
mFqYcAEAUEsDBBQAAgAIADCLvUhcXgldSAEAABcDAABmABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRz
L2V2ZW50X3Byb2dyZXNzLWRpZmYudHh0VVQJAAN8iEtXfIhLV3V4CwABBPUBAAAEUAAAAM2PwU7D
MAyG730KH0FtSCc2KLcyDQkJEGhDmzihtPG6iLSpEnfrQLw7oevgNIHEhUusyJ+/32aMAZ8b3ZTo
+ESQ4FeLGV9gdqOoL+NGacmnqFE45FpsTUOM0BGz6BpNjquyNpZQ8s1pzjeYsVoLWhpbdpjjKyo1
d1iKilTuOJYZSomS5aYirIiXKJVgPqD0P99f+/JcW1P4AMewrTH39hNqKQjD8L/vK3JqhO62TVNg
g+gCwkE0gjQNmPOngMUlWqxyDFjAAD7fh8vZDEQjlYHO5oDBXgh92yGRqgpwNgdBZFXWEIKp/BwZ
f8G2F7iVabQEDxQF2m9NJ97L1krin7J2gp+ygtCzviEIjuIoPganXhGSOG7P4jgIAaZYSbRzhZtD
zK8EY23yF3i7fry7fT/MftFGbuFtfD952sFJlPTweTJsR8kw+ABQSwMEFAACAAgAMIu9SEF4h+Zs
AAAA6QAAAGoAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfcHJvZ3Jlc3MtZXhwZWN0ZWQu
dHh0VVQJAAN8iEtXfIhLV3V4CwABBPUBAAAEUAAAAKWNwQ3CMBAE/1fFNkARdICUCoy9GEuRz7o7
R6J7IhKJJw/euzPjgxnGB409UwQQuV2XBWmWpuDGHo4Lhmk1uuNYnRGtV7hlpAhr9xmE9h0LHWt6
nbw/da4F+6FW2tfy8Z6urRX+Uzr4HyV5A1BLAwQUAAIACAAwi71IWPHXazwIAACoHwAAbgAcAGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29u
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
qA+XgaA5LiAiRUCBswmhyoM6SYKcEoY9OEBXn4A+wOO3suJw5xfCg+anxpkvNxJUmnQ1aX1IOt6d
0Rf8sXF18UfmbtMTUbce1P1gtJWDalQ4Qf3FYNuGHF9OwPwwf9mRgsLQlvlbEYnyfFAQGP74UpQ0
hvMSWtEiplYOvAkAXwrm6QvAfBVg0xcAhtCrQJt9qTabvwCwH7+5u0O4JowjnXwCecjl3+uY8+yl
UAP1SlW8oTAiLGXFoCPQLKtqvOI1q5dIeZ0RBALrNcBstNP6vo6Ob15KxwdG6F/mmcVf5xmj1//A
M8tXSGb9GGca6IaepxkrtBf7Hlz8M8hIYwfjq9Mk+nt4Ev4DqTYLLcJwcxaGf87eLwr4dF9R/4kW
0N7+DC3PF4d7+v9m6NnzhtaBiz59+/777/744vDP9+FvNIC2F31698P1r0aBxcnCKvBmMdvMF7Nn
E7jV96t019Nt2e1Dt9gXgfkH+v8CUEsDBBQAAgAIADCLvUhNnpxMWAAAALIAAABzABwAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50
L21lZGlhLWVsZW1lbnRzL2V2ZW50X3Byb2dyZXNzX25vYXV0b3BsYXktYWN0dWFsLnR4dFVUCQAD
fIhLV3yIS1d1eAsAAQT1AQAABFAAAADLSaxMLVJILFHQMNAx0FQozqxKVbAwMKgwMzDgUlAISs1L
SS0Ky0wtx6EkhwjtTjn5ydkK1R4hvj61OJXCFeenVCpUO/m7RELUWuhYQNWaW5hUmFqYcAEAUEsD
BBQAAgAIADCLvUgWABIITgEAADUDAABxABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X3By
b2dyZXNzX25vYXV0b3BsYXktZGlmZi50eHRVVAkAA3yIS1d8iEtXdXgLAAEE9QEAAARQAAAA1Y9N
SwMxEIbv+yvmqGxjttjqeltLBUFFaaXFU0k3020wm5Rk0g+L/924bfVUFDx5yRDeh+edYYwBH1kd
avS8L0jwm/GQj3F6p2g/ekFpyQeoUXjkWmxsIEboiTn0QZPnql5YRyj56rzkK5yyhRY0s65uMM/n
VGvusRaGVOk51lOUEiUrrSE0xGuUSrBYUMdfzJdxTBbOVrHAT4wVgWxUbhiuF1jGojNaU5Km6T9a
XZQUhG4WLwpg7dYVpO1WF4oiYT5eBQ5n6NCUmLCEAXy+T9fDIYgglYVG7IHBwQ372CORMhV4V4Ig
cmoaCMEaMNawQ/te4uc2aAkRqip036pGfhAulcQ/9+0kP/UlaWRjIAhOslZ2Cl69IeRZtr7IsiQF
GKCR6EYKV8eYXwl62pavsL19frh/P85+0VZuYNt77L/s4LyV7+HLvLPu5p3kA1BLAwQUAAIACAAw
i71IDmbg828AAADxAAAAdQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9z
ZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9wcm9ncmVzc19u
b2F1dG9wbGF5LWV4cGVjdGVkLnR4dFVUCQADfIhLV3yIS1d1eAsAAQT1AQAABFAAAAClzcENwjAQ
RNG7q5gGUgQdIKUCYw/GUrRr7a4j0T2IROLIgfOM3vfBAuOdRilMCUjpellX5Fm7gjslHAuGaTO6
41idEV0a3ApyhPXbDEIForLkGTq2/DwNf+jcKt6n1mhf6WOf3t4r/60dxo9aegFQSwMECgAAAAAA
LYu9SAAAAAAAAAAAAAAAAFoAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
c2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvaW50ZXJmYWNlcy9VVAkA
A3WIS1dwjEtXdXgLAAEE9QEAAARQAAAAUEsDBAoAAAAAAC2LvUgAAAAAAAAAAAAAAABkABwAaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250
ZW50L21lZGlhLWVsZW1lbnRzL2ludGVyZmFjZXMvVGV4dFRyYWNrL1VUCQADdYhLV3CMS1d1eAsA
AQT1AQAABFAAAABQSwMEFAACAAgAMI29SD7os3jKAAAA3QEAAHkAHABpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxl
bWVudHMvaW50ZXJmYWNlcy9UZXh0VHJhY2svYWN0aXZlQ3Vlcy1zdGRlcnIudHh0VVQJAAM8jEtX
dYhLV3V4CwABBPUBAAAEUAAAAKWQMW/CMBCF5+ZX3AhLREJVqIU6NAwgkbHqgBgu9mEszBnZF1X8
e5y2GxPKeE9637v3WrxB/Q7VQr1Wal4D/aRqVpc+aPQQRUe6hiiO7X6xnC/fDrDa8jF8KPDB2ixD
EoySyrIs2qdRa+p6m1mJpKWU0NLuj/qZTWcF2ejJjAEPzzWBj872EcUF/nZyasLl6mm4NsjGU1TQ
oD6RgRkQY5czoUN9JjZpXKuvRHHYa+20qAe2gknxMh2VwOZ/uN9eKGRDvGUu995PiztQSwMEFAAC
AAgAMY29SFX9jtCHAAAAwAAAAHUAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvaW50ZXJmYWNlcy9U
ZXh0VHJhY2svYWRkQ3VlLXN0ZGVyci50eHRVVAkAAz2MS1d1iEtXdXgLAAEE9QEAAARQAAAAlcyx
CsIwEIDhvU9xoy5iE7E1iEtdHAKCg4I4xPQaD8JFklTp2xtHR9efn0+bCcQG6kataiUF4DvVS7Hw
wRoPMduIzxAzsbs2rWzXN9ju8T66nYKE3GtMyTg8U350JqMLcVIw49H7eaV/ZPmHTEz5S56KToEP
PAQFl2MHNjCjzaWV52U89dUHUEsDBAoAAAAAAC6LvUgAAAAAAAAAAAAAAABqABwAaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21l
ZGlhLWVsZW1lbnRzL3BsYXlpbmctdGhlLW1lZGlhLXJlc291cmNlL1VUCQADd4hLV3CMS1d1eAsA
AQT1AQAABFAAAABQSwMEFAACAAgAMY29SGmdkjq7AAAA7AEAAJEAHABpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxl
bWVudHMvcGxheWluZy10aGUtbWVkaWEtcmVzb3VyY2UvcGF1c2UtbW92ZS10by1vdGhlci1kb2N1
bWVudC1zdGRlcnIudHh0VVQJAAM9jEtXdohLV3V4CwABBPUBAAAEUAAAALWQsaoCMRBFa/2KKX2N
uK6gBrFwLRTcUl4hFrPJbAzGiSSzPPx7o7zOTrG8MPcc5tZ4g/EciqmaFKosgf5SMRoPfdDoIYqO
dA1RHNvDdFbOJkdYrKnp7FJBIqkpJbS0C9bmi1UunRXkoifTr98HC0apArfOdhHFBf51cqrC5erp
kTbIxlNUUKE+kYEREGOTndCgPhOb9ImcZJ8obrkNa6dFvbAVDPq9n48MbP6He/6FQjbEW+Zy5/03
yXdQSwMEFAACAAgAMY29SIU6TvXiAAAArAIAAI8AHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvcGxh
eWluZy10aGUtbWVkaWEtcmVzb3VyY2UvcGF1c2UtbW92ZS13aXRoaW4tZG9jdW1lbnQtc3RkZXJy
LnR4dFVUCQADPYxLV3aIS1d1eAsAAQT1AQAABFAAAAC1kUFLA0EMhc/2V+TYXqTbLbQOpYduDwou
CEUUxEN2Np0OnWbKTFbpv29WvHkQXDwm5H0veanxArM7KBZmXpiyBPrMxXR2G6LFAElsonNM4tm9
LZblcv4Oqy01nVsbyMRtTTmjoxcvhwqFXEwXA2PuQpiM6j+TPXvpkTul+8gPvI8GXp8qsJGZrGhP
Zz4w+HaASyb5Xv8xOqcTGxUdDagw0CCwYJIq8t67LmG/7Vc+8XQO1Ff3yG2gZKBCe6AWpkCMjXpC
g/aoqeZhVz1nSn1mW2/F/GDrf0Y3k0EO//X338hXUEsDBBQAAgAIADGNvUiC7uEo4gAAAKwCAACP
ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRl
ZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3BsYXlpbmctdGhlLW1lZGlhLXJlc291cmNlL3BhdXNl
LXJlbW92ZS1mcm9tLWRvY3VtZW50LXN0ZGVyci50eHRVVAkAAz6MS1d2iEtXdXgLAAEE9QEAAARQ
AAAAtZFBSwNBDIXP9lfk2F6k2y60DqWHbg8KLghFFMRDdjadDp1mykxW6b9vVrx5EFw8JuR9L3mp
8QKzOygWpizMvAT6zMV0dhuixQBJbKJzTOLZvS2W82X5DqstNZ1bG8jEbU05o6MXL4cKhVxMFwNj
7kKYjOo/kz176ZE7pfvID7yPBl6fKrCRmaxoT2c+MPh2gEsm+V7/MTqnExsVHQ2oMNAgsGCSKvLe
uy5hv+1XPvF0DtRX98htoGSgQnugFqZAjI16QoP2qKnmYVc9Z0p9Zltvxfxg639GN5NBDv/199/I
V1BLAwQUAAIACAAxjb1IVtWapYQAAADAAAAAgQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9wbGF5
aW5nLXRoZS1tZWRpYS1yZXNvdXJjZS9wbGF5YmFja1JhdGUtc3RkZXJyLnR4dFVUCQADPoxLV3eI
S1d1eAsAAQT1AQAABFAAAACdzLEKwjAQgOG9T3GjLmLbQGsQl7o4BAQHBXGI6RkPwp0kqdK3N76C
68/PZ+wMzQbqTqtatwrwk+p1swribICYXcSXxEzsr13f9uoG2z3eJ7/TkJBHgylZj2fKz8Fm9BJn
DQueQlhW5m+ZmPKPPBWdhA/8EA2X4wBOmNHl0srztoHG6gtQSwMECgAAAAAALYu9SAAAAAAAAAAA
AAAAAFUAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Vt
YmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvdHJhY2svVVQJAAN2iEtXcIxLV3V4CwABBPUB
AAAEUAAAAFBLAwQKAAAAAAAti71IAAAAAAAAAAAAAAAAYwAcAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50
cy90cmFjay90cmFjay1lbGVtZW50L1VUCQADdohLV3CMS1d1eAsAAQT1AQAABFAAAABQSwMEFAAC
AAgAMY29SLcttvXuAAAAoQEAAIIAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvdHJhY2svdHJhY2st
ZWxlbWVudC90cmFjay1hcGktdGV4dHRyYWNrcy1zdGRlcnIudHh0VVQJAAM9jEtXdohLV3V4CwAB
BPUBAAAEUAAAAKWQP2vDMBDF5/pT3NgODXZcx4kogcQZWmigJJQOJsNZOskmihQkmf759L0WumTN
2w7uvd/da4taPBSiLCfVojjAIwua3Wq9hyULtB1j/0pODc7syBJG2lMS0OaftVYVdbNKS8oPsLZe
HiGHHiM47+6/KXgIpEH60SUosy1+wXQB/zigj1jk0wnb0EJIMtDZh8SYtp6X8xmfsqFuNEsBkdKW
YkRDL94Y3vhjCWCjJXVNcMKQGu/0YMaAafDufUh9409nS7/TEzplKQhoUPak+Dty2DETOpRHLiVe
99VbpPDstN8Mkiu9zBZwm93cZT9QSwMECgAAAAAALYu9SAAAAAAAAAAAAAAAAF4AHABpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQv
bWVkaWEtZWxlbWVudHMvdXNlci1pbnRlcmZhY2UvVVQJAAN2iEtXcIxLV3V4CwABBPUBAAAEUAAA
AFBLAwQUAAIACAAxjb1I2zf6FIQAAADAAAAAbgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy91c2Vy
LWludGVyZmFjZS9tdXRlZC1zdGRlcnIudHh0VVQJAAM9jEtXdohLV3V4CwABBPUBAAAEUAAAAJ3M
sQrCMBCA4b1PcaMuYhuxNYhLXRwCgoOCOMT0jAfhIslV6dsbX8H15+czdoJmA3WrV7VWCvCT62Wz
CNHZAElcwldMQuyvbae69Q22e7yPfqchIw8Gc7YezyTP3gr6mCYNMx5DmFfmb5mY5Eeeik6RD/yI
Gi7HHlxkRielledtAw3VF1BLAwQKAAAAAAAti71IAAAAAAAAAAAAAAAAUgAcAGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC90aGUt
YXVkaW8tZWxlbWVudC9VVAkAA3aIS1dwjEtXdXgLAAEE9QEAAARQAAAAUEsDBBQAAgAIADGNvUhH
VJR83QAAANACAABuABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFu
dGljcy9lbWJlZGRlZC1jb250ZW50L3RoZS1hdWRpby1lbGVtZW50L2F1ZGlvX2NvbnN0cnVjdG9y
LXN0ZGVyci50eHRVVAkAAz6MS1d2iEtXdXgLAAEE9QEAAARQAAAA1ZAxT8QwDIV3foVHGHpp2oor
2U6c0A0MqDqmE0Mu8dEIJymJy+8nVZlhQgJ5ec9+lj77JLeqk6rtNu2tfIHD8fg04PuMmeHiXg/M
05fdOzugQfeBA+Yphoz3muiszZuCtA4sjCVf3DqHru7gGlOKCSrZ3LX9DVyKXkJKCIpG0xgzq76v
azGyJ5HR68DOZIH+jNairUwMjIEFj1jp2bpYIaFfOmEmujp9z1/sfvbTgwuanofHXShH+Mi4s7Zg
ZgV6FSCb7aYuJctaycKc6PdAm//16JzMT/h/4s8L5ydQSwMECgAAAAAAM429SAAAAAAAAAAAAAAA
AFMAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVk
ZGVkLWNvbnRlbnQvdGhlLWNhbnZhcy1lbGVtZW50L1VUCQADQYxLV3CMS1d1eAsAAQT1AQAABFAA
AABQSwMEFAACAAgAMIu9SOIVogWyAAAAaAEAAHkAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWNhbnZhcy1lbGVtZW50
L3NpemUuYXR0cmlidXRlcy5wYXJzZS5lbXB0eS1hY3R1YWwudHh0VVQJAAN7iEtXe4hLV3V4CwAB
BPUBAAAEUAAAAI3MTQuCQBAG4Hu/YtguBR420jSPUtChKESCYC/iDiWZC+uGmvjfc80+EIQuM/PC
M28SlighVDChBp1CFj8QHEqLBaUjAB9TjvIYYz5Akj/evUREV6g2wW5bD9IPFryEytuvTi/rGE5n
bccsLHvZ2l71wV/3m7WeWR1+8wALBdVYNavv59T69QAagbynX5fHXF00dIFUjKCUQjLiQnPfMMvC
M+rECCNGMyPB22xSs67J6AlQSwMEFAACAAgAMIu9SJQNY3+LAQAAjwMAAHcAHABpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhl
LWNhbnZhcy1lbGVtZW50L3NpemUuYXR0cmlidXRlcy5wYXJzZS5lbXB0eS1kaWZmLnR4dFVUCQAD
e4hLV3uIS1d1eAsAAQT1AQAABFAAAADVklFLIzEQx9/3Uwzry8k2zYqt7vWpFgsHKpZWLEJf0s3Y
hssmSzJrt5Z+d7O1XrmCeq9HYCYz/OY/MyGMMeCPVlcFen4tSPDhdMKnOL9RtHeDSmnJx6hReORa
rG1FjNATc+grTZ6rorSOUPLVec5XOGelFvRsXbHDPF9SobnHQhhSuedYzFFKlCy3htAQpyWyXJgX
4VnoUjQpr16xLYicmldBpF0K57GNRUlrhnWJeWjXppqiJEn+uwVETpXQu/H7fWBnrQySxvT7Efui
LmKjECizAPsMxhpmcCFIvSCoMMYCnY/Y1U4awoZlRb2IDfdvdcg0Z3Q1mcB3YhDIJLwWOhAEP9JW
egrNdJClaX2RplECMEYj0T0qXH3G/JPAQNv8N2x+Pdzdbj9n/9BWrmEzuL9+eoezVraHL7NO3b38
+Q4fiY/Gw2PtBj/rftAf/APWBJsTCu644Dzt/lUA0FDgKnMAV0rSsiF7EG9mMTpn3SzuQbiHL+rF
AptoFs/iVrC5lbu4k3a22zh6A1BLAwQUAAIACAAwi71IxFpv7WEAAACHAAAAewAcAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC90
aGUtY2FudmFzLWVsZW1lbnQvc2l6ZS5hdHRyaWJ1dGVzLnBhcnNlLmVtcHR5LWV4cGVjdGVkLnR4
dFVUCQADe4hLV3uIS1d1eAsAAQT1AQAABFAAAACFzDEOgzAQRNF+T7EXwAdIR0GPxAkcMlgrJWvL
HkcJp4eKlu7rFb/ZjhDJas9OtFBibQj4FP5lPts8ad7Usw+OFGlfqDmRUJuMK3t8a+4snQ+ZfgUr
8bpAZB6XRe8+KnIAUEsDBBQAAgAIADCLvUjvJ9aVzQgAANEiAAB/ABwAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L3RoZS1jYW52
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
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L3RoZS1jYW52
YXMtZWxlbWVudC9zaXplLmF0dHJpYnV0ZXMucGFyc2UuZXhwLWRpZmYudHh0VVQJAAN7iEtXe4hL
V3V4CwABBPUBAAAEUAAAANWSUWsiMRDH3/dTDNuXK2vMluq555OVCgdtqWhpKfgSN1MNl02WZLZu
K373ZtWeVJC71xIykwm/+eefEMYY8EerqwI9vxYk+Ohpyp9wfqNon4aV0pJPUKPwyLV4sxUxQk/M
oa80ea6K0jpCyVeXOV/hnJVa0It1xRbzfEmF5h4LYUjlnmMxRylRstwaQkOclshyYV6FZ+GUotny
6h3bgsipeRVE2qVwHttYlyxMzMNhbaopSpLkm9kXOVVCb80PBsAuWhkkTRgMInayK2LjsFRmAfYF
jDXM4EKQekVQwcICnY/Y1VYYwu3KivoRG+3f6bDTjPHVdAr/EoNAJuGl0IEg+JG20nNovEGWpvXP
NI0SgAkaie5R4eoU818CQ23zP7D+/XB3uznN/qWtfIP18P76eQdnrWwP97JO3e392sFH4uPJ6Fi7
wS+6n/Qn/4A1wfqMQjpuuEy7XxoAGgpcZQ7gSklaNmQf4vUsRuesm8V9COvwPb1YYFPN4lncCjG3
clt30s5mE0cfUEsDBBQAAgAIADCLvUjHmkwVXwAAAIUAAAB5ABwAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L3RoZS1jYW52YXMt
ZWxlbWVudC9zaXplLmF0dHJpYnV0ZXMucGFyc2UuZXhwLWV4cGVjdGVkLnR4dFVUCQADe4hLV3uI
S1d1eAsAAQT1AQAABFAAAACFzLENhDAQRNF8q9gGzgWQEVyORAUG5qyV0NqyxwhRPUSXkn294De7
ECJZbelECyXWhoCzyPSUedL8U8/+caRIO6DmREJtMq7scdfcWToH+Z4FK7H9QWQa51nfPipyA1BL
AwQUAAIACAAwi71IOtPEo9AIAADjIgAAfQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC90aGUtY2FudmFzLWVsZW1lbnQvc2l6
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
QCBnxzFRGtROEoDfeBHO77Dw4BTl14HSvI+l5BQ8nAi/UN851QXTg1qoxKkv1xIYDpvEat+VDrdH
9H2/r199B0DmqtOaoi5BqPn9aDMPglPuJuoPCJuq5PB8CNqA8fPGLIgT9Tnf5aEoFp0TIeEfnitB
nMHd67xDGmeBGtCj68I2zEagfWDwUjyOX4CHRvmxhhjzWkMo/2OJCkFeTpbqLlcbJUgV4ksw81ck
OXopku+jGnRlq7WmCkVFKeevyGP8UjyuGuZliu7Xhz95CfivAezkrQI7fTHvfH9zU7fV/9tb0Sva
yfQV1KEf/dkBCpqnU4OdtBP7DlzsGQnEYIfK+RySsTpSou8HR4MfQNyqU2cM9YKmg4Hp0s31SdX8
Uwp5UUbHTzBC6BPJoY79FWobVAPf4nhmidZaRNF9ExxHz9NaDbusvVueSotvhtH4mVrTvoK+/fT5
l58fN2bpqLw1W5w8yariBSU0+vbhX5f/NrSmR1NL63Q6Xk9OZ385l5NncGlp6eOnq7aSFJvh5C8n
c/osMo6O+TB2oMYf/2zIGA0mb4Hw9JmEzc9XEC/zjeL05wJFZI6++71kcvHtP+ZJOGfcvs+R67Xf
pqp++2IfR66trpjVnPFg/PhoGt2i2kqctSuzSrN6uD5389C307PA/G7LH1BLAwQUAAIACAAzjb1I
BRkDWlQAAAB2AAAAdwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3MvZW1iZWRkZWQtY29udGVudC90aGUtY2FudmFzLWVsZW1lbnQvc2l6ZS5hdHRyaWJ1dGVz
LnBhcnNlLmhleC1hY3R1YWwudHh0VVQJAANBjEtXe4hLV3V4CwABBPUBAAAEUAAAAIXLwQmAMAwA
wH+myAJ2AH/dQOgEUWINSFqaRMTpdQN/9zmThxO5D1nD2VKnYZwOvgGWj6IV247adFKu5HIxijpX
HgaQNw86sYX38Bm+kkvBv4cAL1BLAwQUAAIACAAzjb1IKK0TZuIAAAALAgAAdQAcAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC90
aGUtY2FudmFzLWVsZW1lbnQvc2l6ZS5hdHRyaWJ1dGVzLnBhcnNlLmhleC1kaWZmLnR4dFVUCQAD
QYxLV0GMS1d1eAsAAQT1AQAABFAAAADVTztLxEAQ7vMrts9NhkMQtMqJVjZiwKsnyVyysI+wM3sX
/fVugq1YWw3z8T0BwOBHdNmz4DMp4cu5wzP3r1Z/zlO2bsR3dkzC6OgzZgVlUUgs2amg9UtMyiPe
7ga8cQ+LI73E5Hea4KzeobCnoHYQZN/zOPIIQwzKQVFnhoHClQRKit8gsV/ckGqyfS4mzUJJuJl5
BV4XHkpYo6tWdV3/s/o0aCa3l29bA8fDvamPhwfTtpX5VVXVlXkrjw2TiRcTYoDAE6m9srGlxMRJ
Ns5pNzdl4ZL1cUOK7tR1f4oLr/oGUEsDBBQAAgAIADONvUh67TJtUwAAAHMAAAB5ABwAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50
L3RoZS1jYW52YXMtZWxlbWVudC9zaXplLmF0dHJpYnV0ZXMucGFyc2UuaGV4LWV4cGVjdGVkLnR4
dFVUCQADQYxLV3uIS1d1eAsAAQT1AQAABFAAAACFy8EJgDAMAMB/psgCdgB/3UDoBFFiDUhamkTE
6XUDf/c5k4cTuQ9Zw9lSp2GcDr5h+SRase2oTSflSi4Xo6hz5WGQNw86sYX38BlgyaXg30KAF1BL
AwQUAAIACAAzjb1ImSSLBNcHAACTHQAAfQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC90aGUtY2FudmFzLWVsZW1lbnQvc2l6
ZS5hdHRyaWJ1dGVzLnBhcnNlLmhleC1wcmV0dHktZGlmZi5odG1sVVQJAANBjEtXe4hLV3V4CwAB
BPUBAAAEUAAAAN1Z227jyBF991cQNhIDC5OULMmri0fBjC9YIBcE8SL7GDTZTbHHTTbT3bLkSfLv
qb5RJEXKCrLJw+xgRxL7dqrq1Klqzn2uCra+uM8JwvBREIWCNEdCEvXpequycH4Nj6V6Z2R9sWS0
fL0Jlm9UUkVw8I+LAP5TZK9CTFIukKK8XAYlL8nKDCVcYCLChCvFi2UwrvYBhu8Ery7+dWG3c5uk
nHGxDK5Gk4UZi54pI480y9x4gtLXjeDbEod+ajbXf5oH2RMkZxQHVxhjO5bxUoUZKih7XwYFL7ms
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
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVu
dC90aGUtY2FudmFzLWVsZW1lbnQvc2l6ZS5hdHRyaWJ1dGVzLnBhcnNlLmp1bmstYWN0dWFsLnR4
dFVUCQADQYxLV3uIS1d1eAsAAQT1AQAABFAAAACNzE0LgkAQBuB7v2LYLgUeNtI0j1LQoShEgmAv
4g4lmQvrhpr433PNPhCELjPzwjNvEpYoIVQwoQadQhY/EBxKiwWlIwAfU47yGGM+QJI/3r1ERFeo
NsFuWw/SDxa8hMrbr04v6xhOZ23HLCx72dpe9cFf95u1nlkdfvMACwXVWDWr7+fU+vUAGoG8p1+X
x1xdNHSBVIyglEIy4kJz3zDLwjPqxAgjRjMjwdtsUrOuyegJUEsDBBQAAgAIADONvUjhmzbRiwEA
AIwDAAB2ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9l
bWJlZGRlZC1jb250ZW50L3RoZS1jYW52YXMtZWxlbWVudC9zaXplLmF0dHJpYnV0ZXMucGFyc2Uu
anVuay1kaWZmLnR4dFVUCQADQYxLV0GMS1d1eAsAAQT1AQAABFAAAADVklFrGzEMx9/vU4jby8bF
8ZUm7S1PaWhg0I6FpLQU8uKc1cSrzz5subk25LvXl6YrC4TudRhkSfz0lyzMGAN+a3Wo0PNLQYKP
72b8DhdXivbXKCgt+RQ1Co9ci2cbiBF6Yg590OS5qmrrCCVfn5Z8jQtWa0EP1lU7zPMVVZp7rIQh
VXqO1QKlRMlKawgNcVohK4V5Ep7FLlWb8uoFu4LIqUWIIt1aOI/d38E8MmxqLGO3LjWUZFn2v80v
SgpC76YfDoGddArIWjMcJux4WcIm0VdmCfYBjDXM4FKQekJQcYglOp+wi50yxPfVgQYJG+839ZFp
z+RiNoPPxCCSWdwVOhAEX/NO/g3a4aDI8+Ysz5MMYIpGortVuD7G/JPASNvyETY/bn5eb4+zf2gr
n2Ez+nV5/wYXnWIPnxe9pn/+/Q0+EJ9Mx4faLX7Sf6ff+RtsCDZfKF6HBad5/68CgJYCF8wHuFaS
Vi05gHQzT9E56+bpAKIfP6gXS2yjeTpPO9GWVu7iXt7bbtPkFVBLAwQUAAIACAAzjb1I3gICCGAA
AACGAAAAegAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mv
ZW1iZWRkZWQtY29udGVudC90aGUtY2FudmFzLWVsZW1lbnQvc2l6ZS5hdHRyaWJ1dGVzLnBhcnNl
Lmp1bmstZXhwZWN0ZWQudHh0VVQJAANBjEtXe4hLV3V4CwABBPUBAAAEUAAAAIXMMQ7CMBBE0X5P
sRfAB0iXgj5STmCSwVpAa8uejSJODxUt3dcr/rA3Uia73YIYqeU+kB7hT1m+aV603tWrXxwl0w6o
OVHQh8wbI7+0BltwkuvZsBH7D0SWeV3130dFPlBLAwQUAAIACAAzjb1IKHn/388IAADPIgAAfgAc
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQt
Y29udGVudC90aGUtY2FudmFzLWVsZW1lbnQvc2l6ZS5hdHRyaWJ1dGVzLnBhcnNlLmp1bmstcHJl
dHR5LWRpZmYuaHRtbFVUCQADQYxLV3yIS1d1eAsAAQT1AQAABFAAAADNWmlv20Ya/u5fQdjYui3M
Q5Zk63C0SHygwLa7QRy0WGCBxZAcShOTHHZmaMnJ+r/3nYsiKVJ2sTbqGDHJOZ/nvWeSi5XI0sXB
xQqjGB4ZFsiJVohxLN4dlyJxJ8fQzMVDihcHs5TkdyfO7J5wInDsfDtw4I/AG+HGOKIMCULzmZPT
HM9VV0hZjJkbUiFoNnMGxcaJ4R3H84PHA72cWSSiKWUz5ygYTlWfd0NSfEWSxPSHKLpbMlrmsWuH
JhP5U99I78BpSmLnKI5j3ZfQXLgJykj6MHMymlNeoMgAzBBbEoA8wJkT6KaCAjnFg+EUGN1jBWg1
aCEdDocd63OUc5djRpJaJydfsdqjvqmb4kTMnMAb2/aY8CJFsAjJQTIG4ZrEYgWTg+BvBh+KY5Iv
q5kam1GNfGtqx8Al+QpAiWr4it5j1mI0Ho/nfcLGWIvBkzr5GfbiZnKSUgQ0GFmuRFNzctQl0EfA
xW5FQfREAMWgRVmgMMVuhNO0wdJV6zaktF4BO1fpUJramqFii+wWR1J3vUajJjdNpm0uxmat3MGg
gmKjd7jeFKBeWB+o4RPHk482w154nMQ4fJC/HQX1Q0qju4+ICQ+ozhLCuHCjFUnjXsHK7W5h/sm+
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
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC90aGUt
Y2FudmFzLWVsZW1lbnQvc2l6ZS5hdHRyaWJ1dGVzLnBhcnNlLm1pbnVzLWFjdHVhbC50eHRVVAkA
A0GMS1dBjEtXdXgLAAEE9QEAAARQAAAAjcxNC4JAEAbge79i2C4FHjbSNI9S0KEoRIJgL+IOJZkL
64aa+N9zzT4QhC4z88IzbxKWKCFUMKEGnUIWPxAcSosFpSMAH1OO8hhjPkCSP969RERXqDbBblsP
0g8WvITK269OL+sYTmdtxywse9naXvXBX/ebtZ5ZHX7zAAsF1Vg1q+/n1Pr1ABqBvKdfl8dcXTR0
gVSMoJRCMuJCc98wy8Iz6sQII0YzI8HbbFKzrsnoCVBLAwQUAAIACAAzjb1IzonkVIoBAACPAwAA
dwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRk
ZWQtY29udGVudC90aGUtY2FudmFzLWVsZW1lbnQvc2l6ZS5hdHRyaWJ1dGVzLnBhcnNlLm1pbnVz
LWRpZmYudHh0VVQJAANBjEtXQYxLV3V4CwABBPUBAAAEUAAAANWS30sjMRDH3/evGNYXj22aFdtz
7VMtFoS740oritCXdDO2wWyyJBO7Xun/ftlaT67gj1cJzGSGz3xnJoQxBvzG6lCh55eCBB/fzvgt
Ln4o2rtRUFryKWoUHrkWTzYQI/TEHPqgyXNV1dYRSr4+LfkaF6zWgu6tq3aY5yuqNPdYCUOq9Byr
BUqJkpXWEBritEJWCvMoPItdqjbl1R/sCiKnFiGKdGvhPHYrZUJkmhrL2K5LDSVZln25BURJQejd
+MMhsJNOAVlrhsOEvVOXsEkMlFmCvQdjDTO4FKQeEVQcY4kuEhc7aYgb1oEGCRvv3+o1057JxWwG
H4lBJLP4WuhAEBznnfwbtNNBkefN9zxPMoApGonuRuH6LeZTAiNtywfYXF3/+rl9m/1HW/kEm9Hv
y7tnuOgUe/is6DX9s/Nn+EB8Mh0farf4Sf+FfuGvsSHYHFF0hwWnef+/AoCWAhfMK7hWklYtOYB0
M0/ROevm6QDiPX5RL5bYRvN0nnaiLa3cxb28t92myV9QSwMEFAACAAgAM429SKkv1JFgAAAAhwAA
AHsAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVk
ZGVkLWNvbnRlbnQvdGhlLWNhbnZhcy1lbGVtZW50L3NpemUuYXR0cmlidXRlcy5wYXJzZS5taW51
cy1leHBlY3RlZC50eHRVVAkAA0GMS1dBjEtXdXgLAAEE9QEAAARQAAAAhcwxDgIxDETR3qfwBcgB
6LagX2lPEJYhsgROFI8R4vRQbUv39Yof9kGp5LRrElFGnYHyNM+Q9dfmTftdvfvJ0SrtBTUnGmbI
sjPrQ3tyJM9yeQ/sxO0AkXXZNv33UZEvUEsDBBQAAgAIADONvUj9TZUszggAANEiAAB/ABwAaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250
ZW50L3RoZS1jYW52YXMtZWxlbWVudC9zaXplLmF0dHJpYnV0ZXMucGFyc2UubWludXMtcHJldHR5
LWRpZmYuaHRtbFVUCQADQYxLV0GMS1d1eAsAAQT1AQAABFAAAADNWmlv20Ya/u5fQdjYui3MQ5Zk
63C0SHygwLa7QRy0WGCBxZAcShOTHHZmaMnJ+r/3nYsiKVJ2sTbqGDHJOZ/nvWeSi5XI0sXBxQqj
GB4ZFsiJVohxLN4dlyJxJ8fQzMVDihcHs5TkdyfO7J5wInDsfDtw4I/AG+HGOKIMCULzmZPTHM9V
V0hZjJkbUiFoNnMGxcaJ4R3H84PHA72cWSSiKWUz5ygYTlWfd0NSfEWSxPSHKLpbMlrmsWuHJhP5
U99I78BpSmLnKI5j3ZfQXLgJykj6MHMymlNeoMgAzBBbEoA8wJkT6KaCAjnFg+EUGN1jBWg1aCEd
Docd63OUc5djRpJaJydfsdqjvqmb4kTMnMAb2/aY8CJFsAjJQTIG4ZrEYgWTg+BvBh+KY5Ivq5ka
m1GNfGtqx8Al+QpAiWr4it5j1mI0Ho/nfcLGWIvBkzr5GfbiZnKSUgQ0GFmuRFNzctQl0EfAxW5F
QfREAMWgRVmgMMVuhNO0wdJV6zaktF4BO1fpUJramqFii+wWR1J3vUajJjdNpm0uxmat3MGggmKj
d7jeFKBeWB+o4RPHk482w154nMQ4fJC/HQX1Q0qju4+ICQ+ozhLCuHCjFUnjXsHK7W5h/sm+xRjO
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
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L3RoZS1jYW52
YXMtZWxlbWVudC9zaXplLmF0dHJpYnV0ZXMucGFyc2Uub2N0YWwtYWN0dWFsLnR4dFVUCQADfIhL
V3yIS1d1eAsAAQT1AQAABFAAAACNzE0LgkAQBuB7v2LYLgUeNtI0j1LQoShEgmAv4g4lmQvrhpr4
33PNPhCELjPzwjNvEpYoIVQwoQadQhY/EBxKiwWlIwAfU47yGGM+QJI/3r1ERFeoNsFuWw/SDxa8
hMrbr04v6xhOZ23HLCx72dpe9cFf95u1nlkdfvMACwXVWDWr7+fU+vUAGoG8p1+Xx1xdNHSBVIyg
lEIy4kJz3zDLwjPqxAgjRjMjwdtsUrOuyegJUEsDBBQAAgAIADCLvUgftdSSiwEAAI8DAAB3ABwA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1j
b250ZW50L3RoZS1jYW52YXMtZWxlbWVudC9zaXplLmF0dHJpYnV0ZXMucGFyc2Uub2N0YWwtZGlm
Zi50eHRVVAkAA3yIS1d8iEtXdXgLAAEE9QEAAARQAAAA1ZJRaxsxDMff71OI28vGxfGVJu0tT2lo
YLCWhaS0FPLi2Gpi5rMPW9dcF/Ld60vSlgba7XUYJEv89JdkzBgDfutMXWLgl4IEH9/N+B0ufmo6
uFGtjeJTNCgCciOeXE2MMBDzGGpDgeuycp5Q8fWp5GtcsMoIenC+3GGBr6g0PGApLGkZOJYLVAoV
k84SWuK0QiaFfRSBxS5lmwr6D3YFkdeLOop0K+EDdp0kYRg2FcrYrksNJVmW/XcLCEm1MLvxh0Ng
J50CstYMhwn7pC5hkxhouwT3ANZZZnEpSD8i6DjGEn1I2MVOGuKGVU2DhI0Pb/WWac/kYjaDv4lB
JLP4WuhBEHzNO/k3aKeDIs+bszxPMoApWoX+VuP6I+afBEbGyd+w+XFzfbX9mH2lnXqCzejX5f0e
LjrFAT4vek3//PsePhKfTMfH2i1+0n+hX/gbbAg2Xyi644LTvP+uAKClwNf2DVxrRauWHEC6mafo
vfPzdADxHr9oEEtso3k6TzvRSqd2cS/vbbdp8gxQSwMEFAACAAgAMIu9SJE7dQNhAAAAhwAAAHsA
HABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVk
LWNvbnRlbnQvdGhlLWNhbnZhcy1lbGVtZW50L3NpemUuYXR0cmlidXRlcy5wYXJzZS5vY3RhbC1l
eHBlY3RlZC50eHRVVAkAA3yIS1d8iEtXdXgLAAEE9QEAAARQAAAAhcyxDcMwDETRnlNwgWgAdy7S
G/AEtHIRCBiUIJ2CINMnVVp3H6/4wz9IRnY/JjFSsz6Qaqadsv3ao2h9atS4BYrRX1APoqAPWTOn
nVon2+Qi93dDJh5/ENnWfderj4p8AVBLAwQUAAIACAAwi71InwUn9s4IAADRIgAAfwAcAGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVu
dC90aGUtY2FudmFzLWVsZW1lbnQvc2l6ZS5hdHRyaWJ1dGVzLnBhcnNlLm9jdGFsLXByZXR0eS1k
aWZmLmh0bWxVVAkAA3yIS1d8iEtXdXgLAAEE9QEAAARQAAAAzVppb9tGGv7uX0HY2LotzEOWZOtw
tEh8oMC2u0EctFhggcWQHEoTkxx2ZmjJyfq/952LIilSdrE26hgxyTmf571nkouVyNLFwcUKoxge
GRbIiVaIcSzeHZcicSfH0MzFQ4oXB7OU5HcnzuyecCJw7Hw7cOCPwBvhxjiiDAlC85mT0xzPVVdI
WYyZG1IhaDZzBsXGieEdx/ODxwO9nFkkoillM+coGE5Vn3dDUnxFksT0hyi6WzJa5rFrhyYT+VPf
SO/AaUpi5yiOY92X0Fy4CcpI+jBzMppTXqDIAMwQWxKAPMCZE+imggI5xYPhFBjdYwVoNWghHQ6H
HetzlHOXY0aSWicnX7Hao76pm+JEzJzAG9v2mPAiRbAIyUEyBuGaxGIFk4PgbwYfimOSL6uZGptR
jXxrasfAJfkKQIlq+IreY9ZiNB6P533CxliLwZM6+Rn24mZyklIENBhZrkRTc3LUJdBHwMVuRUH0
RADFoEVZoDDFboTTtMHSVes2pLReATtX6VCa2pqhYovsFkdSd71GoyY3TaZtLsZmrdzBoIJio3e4
3hSgXlgfqOETx5OPNsNeeJzEOHyQvx0F9UNKo7uPiAkPqM4SwrhwoxVJ417Byu1uYf7JvsUYzkC1
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
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC90aGUtY2FudmFz
LWVsZW1lbnQvc2l6ZS5hdHRyaWJ1dGVzLnBhcnNlLm9ubHlzcGFjZS1hY3R1YWwudHh0VVQJAAN8
iEtXfIhLV3V4CwABBPUBAAAEUAAAAI3MTQuCQBAG4Hu/YtguBR420jSPUtChKESCYC/iDiWZC+uG
mvjfc80+EIQuM/PCM28SlighVDChBp1CFj8QHEqLBaUjAB9TjvIYYz5Akj/evUREV6g2wW5bD9IP
FryEytuvTi/rGE5nbccsLHvZ2l71wV/3m7WeWR1+8wALBdVYNavv59T69QAagbynX5fHXF00dIFU
jKCUQjLiQnPfMMvCM+rECCNGMyPB22xSs67J6AlQSwMEFAACAAgAMIu9SE6OIxiNAQAAmwMAAHsA
HABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVk
LWNvbnRlbnQvdGhlLWNhbnZhcy1lbGVtZW50L3NpemUuYXR0cmlidXRlcy5wYXJzZS5vbmx5c3Bh
Y2UtZGlmZi50eHRVVAkAA3yIS1d8iEtXdXgLAAEE9QEAAARQAAAA1ZLfayIxEMff968Yti93rDFb
qu2eT1YqHNwdJ1paCr7EZKrhssmSzNb1xP+9WbVXTijtawlMMsNnvvODMMaA3zlTlxj4jSDBx/cz
fo+LH5qO16jWRvEpGhQBuREbVxMjDMQ8htpQ4LqsnCdUfH0h+RoXrDKCHp0v91jgKyoND1gKS1oG
juUClULFpLOEljitkElhn0RgsUrZhoL+i11B5PWijiLdSviAXWfNJlRCIsOmQhlLdqmhJMuyTzmE
kFQLsx9hOAR23ikga81wmLB3chM2iQFtl+AewTrLLC4F6ScEHdtZog8Ju97LQ5y0qmmQsPFxZ6+R
9kyuZzN4TwwimcWtoQdB8CXv5F+h7RCKPG8u8zzJAKZoFfo7jeu3mA8JjIyTf2D7/fbXz93b7D/a
qQ1sR79vHg5w0SmO8FXRa/pX3w7wifhkOj7VbvHz/gv9wt9iQ7A9o3idJlzk/f8SAFoKfG1fwbVW
tGrJAaTbeYreOz9PBxDf8asGscTWm6fztBOtdGrv9/Lebpcmz1BLAwQUAAIACAAwi71I8SH9TWMA
AACLAAAAfwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mv
ZW1iZWRkZWQtY29udGVudC90aGUtY2FudmFzLWVsZW1lbnQvc2l6ZS5hdHRyaWJ1dGVzLnBhcnNl
Lm9ubHlzcGFjZS1leHBlY3RlZC50eHRVVAkAA3yIS1d8iEtXdXgLAAEE9QEAAARQAAAAhcwxDoMw
DEbh3afwBZoDsDF0R+IEJv0bWUJOFDuIcno6de34vuG5XkgS0XUbAU9NuiNV2z/eJIOWb6sVrm+2
ag9DkdADrBYo6E5zjiE71xFtxETPsyEHXj8gWuZ15X8fJroBUEsDBAoAAAAAADONvUgAAAAAAAAA
AAAAAAA1ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9m
b3Jtcy9VVAkAA0GMS1dwjEtXdXgLAAEE9QEAAARQAAAAUEsDBAoAAAAAADONvUgAAAAAAAAAAAAA
AABBABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jt
cy9jb25zdHJhaW50cy9VVAkAA0GMS1dwjEtXdXgLAAEE9QEAAARQAAAAUEsDBBQAAgAIADONvUhN
npxMWAAAALIAAABtABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFu
dGljcy9mb3Jtcy9jb25zdHJhaW50cy9mb3JtLXZhbGlkYXRpb24tdmFsaWRpdHktdG9vU2hvcnQt
YWN0dWFsLnR4dFVUCQADQYxLV0GMS1d1eAsAAQT1AQAABFAAAADLSaxMLVJILFHQMNAx0FQozqxK
VbAwMKgwMzDgUlAISs1LSS0Ky0wtx6EkhwjtTjn5ydkK1R4hvj61OJXCFeenVCpUO/m7RELUWuhY
QNWaW5hUmFqYcAEAUEsDBBQAAgAIADONvUhKhAEAwAIAAFcoAABrABwAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy9jb25zdHJhaW50cy9mb3JtLXZh
bGlkYXRpb24tdmFsaWRpdHktdG9vU2hvcnQtZGlmZi50eHRVVAkAA0GMS1dBjEtXdXgLAAEE9QEA
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
/nYP7a7tbAGs1jpe290CWntlem1vBxBsa0fo7Qb72toXTtYO3965X7u/Ycz23QAPtsLBlgpe19ou
+1osdt21nB6u99ABd7ubRqq19rfrbBqqvfK+XXfb8LW1D3g7wLu2NoLeerHbO8vbPdkkYHvud7v9
zbOvrSI32CLvWixwzhoOCb/e7KPTdexNI9Vap+t0Nw3VXjldx9k2fC1tAo67A7xrayPw1ovd3jld
p7dJwPbc6Tonm2dfW0Wuv0XetVng1nBCuHwnP+/hv8ZrbR6r1rpd1948WHvld93u9gFsaTNwnZ3g
XktbguuuG729c72ut1nI9tz3ur1tMLCtYneyVe61WejWcGb48Pr29vdfbi720f4OtgJXe/9TNmsr
eO2VCfbsncCwpa3B6+4KA1vaITxnAwDunRv23I2jtueG2PO2xMO2Cl9v2wxss+h9uwNF9qN5f6Dn
fXBbbLDX3ww87fW9g80AtF8/3GBtB7SWCnzP3jRc+8W27jrgazCyLW2DPWf9GFVt6/XVMTq/ub6q
Ote2QuhuHMLWCpq3eajaLWG9NfwuWvrS/JNz2Pef/705PejJ4J+Ii33Fr9KlsYf4Ua4m0PfWsfUD
kj+6iPqWtehZ1v8H+DcNuNscMEI3JPZJ8hslDzsXt9M2oN3ngU6Ji768vXt3/ffOxe89FX+eAfMf
0Zc3v1z8WyXQP+7rBE767sLru88WcOFXQGW5p7eLY5cv6Q9uvjTV/67nf1BLAwQUAAIACAAzjb1I
TZ6cTFgAAACyAAAAcQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3MvZm9ybXMvY29uc3RyYWludHMvZm9ybS12YWxpZGF0aW9uLXZhbGlkaXR5LXR5cGVNaXNt
YXRjaC1hY3R1YWwudHh0VVQJAANBjEtXQYxLV3V4CwABBPUBAAAEUAAAAMtJrEwtUkgsUdAw0DHQ
VCjOrEpVsDAwqDAzMOBSUAhKzUtJLQrLTC3HoSSHCO1OOfnJ2QrVHiG+PrU4lcIV56dUKlQ7+btE
QtRa6FhA1ZpbmFSYWphwAQBQSwMEFAACAAgAM429SAZdMnqJAQAABwUAAG8AHABpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL2NvbnN0cmFpbnRzL2Zv
cm0tdmFsaWRhdGlvbi12YWxpZGl0eS10eXBlTWlzbWF0Y2gtZGlmZi50eHRVVAkAA0GMS1dBjEtX
dXgLAAEE9QEAAARQAAAA1ZNPa9tAEMXv+hRzbJE3K1On1dExCTQ0boPtJITSw0SaoKX7R+yMKqsh
372K5RZKY4hNL2EPu+y++c0bHquUAn0dbOOI9SkK6rObpb6hu09GttusMbbUC7KETNpiFxpRQiwq
EjdWWBtXhyhU6vZdoVu6U7VFuQ/RbWSsK3FWMzn0YgrWTy+si+BZIhovw436gdaUKCb44WikU9LV
NDfsUIpK0bqmom9zJGtJ0jR9NcaxkAbtxvZ0Cmo8Gk8gHY+OYTpN1NO6PFku4ev558urFRgPZ/OT
8wtgQWn4G6wqgp7bEBgGcrV0sE8FwsZUX4nGApZlPzz/B0JrpAIOjqCtjBBwjQXx0V5kHwTQH2qt
D0L6GBhcH6apLf0Nov2mfGZGOsSM8QOJqcaIEuK/jKvFfunu1P9Opon2wKoXp7iTts1wsJCk/Tej
CCjwJhtlb4HNT4I8y9bvsyxJARbkS4rXhtpdmhcBZjYU3+Hh42p+8bhb+0cdyg4eZl9ObwdxPsq3
4g/5ZH2cT5JfUEsDBBQAAgAIADONvUgeWA10pQAAAMECAABzABwAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy9jb25zdHJhaW50cy9mb3JtLXZhbGlk
YXRpb24tdmFsaWRpdHktdHlwZU1pc21hdGNoLWV4cGVjdGVkLnR4dFVUCQADQYxLV0GMS1d1eAsA
AQT1AQAABFAAAAClkT0KwzAMhfecQifoHTJ0CLQlNMlUOohYEIFjG0tu6O37P5Q2UKebBr2P9/iK
oi6bBg7Vru5aYAfrbVltQBQ1yRHageCENhGwAI1Bz5ARwNvJ5hpEtoDGRBL5HzCxDiB+JJgGVgIJ
2JOscsDOK6BbWKz3TpGdwJiscrD0zqGsiV8G0oIq7B4goYAR1ccPRLfP0jr7/nKSol0W+lXfLOwp
716guABQSwMEFAACAAgAM429SGdgnMGJCAAAhiQAAHcAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL2NvbnN0cmFpbnRzL2Zvcm0tdmFsaWRhdGlv
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
ISK5J0e4BxnCoaRAi6WfOPcQqJG6NeivUF+UgL+lEAAiTBzogiqcumIjgNuoTanxRul4d0Td9Iee
yzcASF9yOlPk9Qe13xxt54Es5XaienWw7UeOL0bgBxi/aM0ChWjO+XMe8GLZOxFK/fGFGQFHAqSv
Bez0WwU2/grA3r26vUX/+uHHdz99gMKCrt+++uEN0iL+byXcEFcVQZQjrQ1PQmTyrEQwUrkChDBN
EUgu5CR/GmLTb4DYmooESgfcNFRvgFRvwN2nIXz2rIRzJhCsfgZHvng+XqHGxlEGhYIW0Bi1+JEn
Yjh7Vs/1BOpTEZv/Aa6juSbISYFLLFj5NNRG/tfn9tP759f/0egZeViVrMr0idic/kFsnlXpR+Nn
ZGmE/ulcNnmCHk99DLfPIHuP985m0l7we3CxL+iwFXa4osjTBPqLf+L/FclLJJr5/ubM9/83g39V
wKfDgBF6T3K4vP8MF7pvDvf4/83Qk8cNrQIXff7+w9s3v31z+Kf78NcM4FKPPr/+x9U/NYHZycwQ
eDGbbKazyaMJ3HirIdNdDTfnbj/UC4RzT//zo98BUEsDBBQAAgAIADONvUhNnpxMWAAAALIAAABq
ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy9j
b25zdHJhaW50cy9mb3JtLXZhbGlkYXRpb24tdmFsaWRpdHktdmFsaWQtYWN0dWFsLnR4dFVUCQAD
QYxLV0GMS1d1eAsAAQT1AQAABFAAAADLSaxMLVJILFHQMNAx0FQozqxKVbAwMKgwMzDgUlAISs1L
SS0Ky0wtx6EkhwjtTjn5ydkK1R4hvj61OJXCFeenVCpUO/m7RELUWuhYQNWaW5hUmFqYcAEAUEsD
BBQAAgAIADONvUjMlyFLlwIAACwRAABoABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9mb3Jtcy9jb25zdHJhaW50cy9mb3JtLXZhbGlkYXRpb24tdmFsaWRp
dHktdmFsaWQtZGlmZi50eHRVVAkAA0GMS1dBjEtXdXgLAAEE9QEAAARQAAAAzZdfb6JAFMXf/RQ3
Pu1GEZu2W9MntdJoitog1m42zWbEa510YFjmUnWb/e4LWO1fI1JNjA8OcubMz3PvkEHTNNBvpAhd
VHqDEdONQU8f4PCK0/NXPeRipFsokCnUBZvLkDRCRVqAKhSkdO76MiAc6dNjR5/iUPMFo7EM3ESm
9Am5QlfoMo+4o/T4jtId6SkKGPdo8Yv2yAQfMeLSWww5zRcDDWc+OpF/iWaUKxQKh0/MHAqZSHir
VdCOisdnUDgqnkK1mtPiz2WtZcKvVue6bwP3wDZubVDEKFR3sPQqJQNwQ0UwRBgzoRD4+OU+SWlK
7x64AgpCBKYUBvQ7EZ6DPcH3VmoiQzFamZVgmeyz+b2kxCmnXdd6vS/z+YwIA6/NlcvImaw4d2Qf
DUKMzBV/lcGHaHtGzbpoHnK4WQlTx5t1gXQB24Z52K1r7rVzzX3lGq806FqNQw43O2PqhLMvkS7m
vnXQ7ZsJL3W42f783Mc9WacrmdGOrw+4aBkBU5ctawCpCpfRPF3pGjXbsFttY+Ufxx6doZC4ixAD
rpZQob84pJWWlcI/0aFKnX8y56VSr2atqpVfivMwDCkpW55wRvlP8T6gbYuVGmkjTrvbsZtveFzp
0WQboFcTNhAlyo1IA8O4ekM0RXzYBuhFv4EnFm7E+dBL2/ZR6h76vH/e7Z1Ov103rO03T8C8e+w+
YjAWcrp+a37Jvu+N9uWvCP3ND5as7mueLO/cL5rGxVW9e7svf6vWaHX3ZX7ZMo0de6vo9dehO9iR
XdzvLEC2A8NcIXolxwAYwbdysfwdFP+LUCmXZz/K5VwBwMK4VW84TtdpUhnUhXQe4Klpt81/67Ur
tRzN4anebfxciCvFyrP4rHIyO62c5P4DUEsDBBQAAgAIADONvUgYWdxTtwEAAN0OAABsABwAaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy9jb25zdHJh
aW50cy9mb3JtLXZhbGlkYXRpb24tdmFsaWRpdHktdmFsaWQtZXhwZWN0ZWQudHh0VVQJAANBjEtX
QYxLV3V4CwABBPUBAAAEUAAAAM2U226CQBCG732KiQ/gA3hHdY2kIAYxmjRNs5ZRSBEoO3h4+wJp
8diwrJJwB2H222//maXTGWm6AW/6ZDp3wA/BYUsHBHFKxTvseOC7Ph17xQNsU0GwQljzQCD469N3
iiIjCjfgC6AkReBCYEIfRWEfHA+vUcKL0sAtYT3AQ4yfhO4vfBNRQepMtdnsYb2YE2ESmr7Ycvr0
Ss3n0LOHFDO28M8SuM51xjR7MG5xsqqCstmq8qXSdZjR6qE1mpxZo6FQ840Wlj1scbLqirLxqu8g
lfHcbvPgKtnJJqt29GOMzZCl2sXM/L29DVP0k22Z6vFlmqbIlmrbUHOYo5usxOeRu5yQ/C1Crlfu
INI4jpIs6d5fl/A7zXbt31lz6tLZqrJT3b/iLqxSKlrWJTxQ957djVldK2mjKhvTmjjjC51tFJJX
x+dsQYVQUVlltGDs9UJoj/hVx+dUX6GTF1bZ3MxR3RmSnp+7s3N1ayZz84XZ9a9NwsMNWjtM1kG0
//dOPkSfh25DeEEYV/5PVOH3fyhX8MGYDV5frGVDeFsb6lZD7JFusOeiBQbZxL7Dc2j5mPME+eO8
zg9QSwMEFAACAAgAM429SN6SY0oCCgAAvj4AAHAAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL2NvbnN0cmFpbnRzL2Zvcm0tdmFsaWRhdGlvbi12
YWxpZGl0eS12YWxpZC1wcmV0dHktZGlmZi5odG1sVVQJAANBjEtXQYxLV3V4CwABBPUBAAAEUAAA
AN1b+VPbSBb+nb+iK9QOu1NI8gnGJGxxmCIVCCkgk9namppqWy27g6R21C1skp3/fV8fkiVZMpC1
HW+SCjr6et87vve6UV6PROAfbb0eEezCJSACo8EIR5yINzux8KzODrzm4tEnR1tdn4b3u6j7QDkV
xEXfthD8EWQqLJcMWIQFZWEXhSwkh6qpzyKXRFafCcGCLqqPp8iFe+Iebv21paczkwyYz6Iu2q41
D1SbfU59ckY9z7T38eB+GLE4dK2kq9eRf7ML6RU486mLtl3X1W0eC4Xl4YD6j10UsJDxMR4YAQMc
DSmIXCcBqulXYwbgFI6I+IDogSiBRvWCpM1ms2R+jkNucRJRL9PI6Vei1sguavnEE11Us9vJe5fy
sY9hEhqCZoyEE+qKEQyu1f5m5MOuS8NhOlLLZkwj7/LWMeLScARCibT7iD2QqICo3W4fVimbEK0G
W9rkEtbiZrDnMwwwIjocibzlZK9TgI8BS7IUA9VTARBrBcgC931iDYjv51Baat6cliYjQGcpG0pX
m0R4PJPslgyk7SqdRg3Ou0zRXYzPJnoHh6qNp3qF3nQM5oX5ARrZRba8FBFWisepS/qP8idSop74
bHD/AUfCBqhdj0ZcWIMR9d1KxcrlbmH87qLJIhKAaXefWM+skahfO5zVl11ybtdOvA68RdAB9i3s
0yHEhmAlsCIiPf0Ch65PEnWYeaQK5fOIaIPO/HkQR1yaRopdjEDcB+vEicVgzdRxdPAo8RZJkfPz
eXcYRuTxsOCYdvspe2kVI1uwJ9VsexELCso2/CjXkFp/Hwd9EoE3kax36beJ4PM0arz24CBHgEm4
lNFgEsmtVquUbrLWTzlGTtTWIaDDICV84wfGPctcRIubc6emIawMcAWxlHB0kqhUywKSGkcyOqWY
RoEJmxivSYDkYhUGWTpaVRPoUz0Cjojge0u+0ALRAA9JzjJd1EgV3vex1KLsOABqABlAFHOHirhn
Vum0Diq51yPejACkW8GMaXrMRHPJUNdz80PB2Ly6+wE5OFyU09OZDMtk5TBRUZ2uXXduAuQSv3oE
OXhSGudXdBuPxywSkGkj48mg1CAgoeDoVwfWw7EYMa1vnY1lMQNeL8BPB4ml1ADVpyL/p32kMBhc
QnVO6GwvcWxJN9j3TxMJSns3dC4L8NQqpPcA6gLzqlFL805xadD7wnXSyE5DOrdMmZw2GxOdNq0J
6d9TYYlIhp3WhBYc2Q1+mIHRMqC3ucAi5idxH3J4mg9tGT2l4sghgjG/j6N8e7K05xMVobOGgH1N
36bk1NRxbOooeZtUC/K+uiSsYo6FpdzMLTw6JXoew8e1PCQbqxpEh9l8Fp9Q4IKo4GrpnF8tGrpk
CiS1ANosEWZEKMNlyCiX3jqGxUIppgnY0tQE6/XZ9ElB92aC1rUTJ0lIPylhzX2awcxjKnBameWW
pl6EAy1hIU7yZUQmRk4rmHZeN49Qa7KJyfXEh8IRauZnJKa9g/OZe5mcXNGoFJFvS8tId748zhfH
Zg6tvnkfriwJ3IRn9TLHCSkkW51atvUuyZGFPcnefkJo82IuCJLMbocHWNfyWc4NWQSvDytYxuCX
JRgvW1zjSOK6VtbFx33id7EHEbY7N1y/V5OohBwC1FfoP+jV4VaaiDPpuzjax1ChM88Sj2NSOtWr
SolMx8IWd0R8RZBpMYplMVqRo7YDwnlSeFTqucwsmei4VUT9nFQIKQYKogfKYn6avoFi9isJTzPJ
sizPJyVHMcVkk4vkcvBa5QkJt5tn44mGRJpJDnyWNMY1oMYhQsZELl2Ysq+i6Mvm2X4MURVmeSfJ
7y596HpsYHTIYiH5Iht+fT9WmcQ0gb94IAtksHoCJJss1SxQw9yNiF7JMZl2CPJLDIIhAW193du4
GkcPFEtOFlfGJ0DYfsQmYHCoBEYYxpqiiApbFkEpjlbbVPFpKWKeE3aQhaz8V8sn0eRIp1jjB9SF
XZYGJg3Ek813SUaBOoxx/AC6Bw2QQl7J7vTmUp1Vt5u6ZJodfiTZv8QG22dnZ5mQ3u6cn523z0v5
CYrLci/u9XplUndJMAaGyhnflGmFnjbcgqS5yO8ddGodw1sDn+DoT1UeJFsB+UZtm0ayy2vHnLq9
5oOIjsGm0eDNq5EQY951HPwZT+0hY0MYNKZcuq565/i0z53PX2ISPTp1u2U3zIMNpaX9mb86gnnV
fEcoP/OAucSSNiQT6PdPsLQ05ptWJzMEhDIHhX3mPsIF4gHkxpy/2Ul2AvK8cFQ/cn4DewJnOWdY
YKf36db5RPrvqDCXk5j6rnMDeRdz4oCngDotQYBhYfse+4I7NJAeTFxn0hw4QBsW+JOAIj9Q3bgj
Dy4dTgIcgkdyR7ZwByKEQ0qBEku/sR7AUV21a9C3kF/0jQXlT4x9W0wFgKrnsWSOknbmW9QWv+q9
3PojvbspdJH7HpQ/Mpr1Az4Kk47qzGBWiOwc1cEA0H6U6wXUkO3zS9jn48PSjpDjd45MC1gQRFqW
YI1NFay5BMHOj99eon+/ff/h4x1kFHTX+/0OafL+AyW+ZKsbFMQcsgZBHvY5gbJ11g6bgksGNECB
mKOYIJgfKPRP1bGreL8wFR+x2HfTyWxEpmNdm+rJh0yomVaittYS1Pbh+Pb2f1bbGAuor8IrCjQt
BqNUfStB3d4U1HATE8DMacZjVgJ5b/nxcds7vjm9+NkjZH/5vvK9iltrjHQ2B/f6ouRgFVnk8mcP
kXptFXx6ueEBUq9vCOr1hUe9sfz4kBr4dH1z9tMHSXP57vL9ultvpLQ2Cfoaw6W9/HD5ePPzp5O9
5bvLd6ltvUGyvyGo5Wn3miB3NgTyGilhBRVm70o+/+Sk0FhBjfmdilsrLTTqG4N7fcTQaGwM6PVR
Q2MFR5hnx3e9u7dXvRS3DGsXCyJoQJA0aArd/AKJuHbCBORLDOroloyZMUFmVMoGv3yJmThMRugn
+Rs2RRD6UQqr71ajytZqVDmnxpeq8GXq+yGqW0HNenX9/u4ip7sAxBq9RHmZAc/Rnur+Q9S3gnPW
T73eu5z2JoTcv0R5s/7P0Z3s/UNUt7+Cw7ci972U917GeT+M71ZQSL//eHXSu3l5woxwOCTXDyTy
fDZZccY82DDYH0N3Hbibtc3BzQUZr6cobNY3B/X6qsLmCkrh04ve6buT6983GvcKjktvjs/eXm80
6BUclJ6/vextNObl/TJef9T7B9pImMs71Ey+/N9QoPsr+ERIXaq/vsKu+/SnV6bTQuEXyMWe8YGW
kt3Hj3I1gf5e2639A8mPD1GnVpvu1WovU/hSBW5UC4zQDZGFy2+UTDZO7ub/m6JbTytaOS76dnF3
dfnXxsnfXiR/ioC5j+jbyfXZvzSAzm7HANjvtKbtTuvJAM58DSvDXTVn+84u6sPT147+b+v/BVBL
AwQKAAAAAAA0jb1IAAAAAAAAAAAAAAAARwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0LWVsZW1lbnQvVVQJAANDjEtXcIxLV3V4
CwABBPUBAAAEUAAAAFBLAwQUAAIACAAzjb1ITZ6cTFgAAACyAAAAaAAcAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0LWVsZW1lbnQv
aW5wdXQtdGV4dHNlbGVjdGlvbi0wMS1hY3R1YWwudHh0VVQJAANBjEtXQYxLV3V4CwABBPUBAAAE
UAAAAMtJrEwtUkgsUdAw0DHQVCjOrEpVsDAwqDAzMOBSUAhKzUtJLQrLTC3HoSSHCO1OOfnJ2QrV
HiG+PrU4lcIV56dUKlQ7+btEQtRa6FhA1ZpbmFSYWphwAQBQSwMEFAACAAgAM429SEsH+alHAgAA
dw0AAGYAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zv
cm1zL3RoZS1pbnB1dC1lbGVtZW50L2lucHV0LXRleHRzZWxlY3Rpb24tMDEtZGlmZi50eHRVVAkA
A0GMS1dBjEtXdXgLAAEE9QEAAARQAAAAzZbRbtowFIbveYojrkDgOmxlQ9sNRd20ap02larVriaT
HBoLJ87sEwWG+u5z4oC0SZ1ChKJdQZLv9/nkY8dhjAF/0CpP0PJrQYJ/eFzyR1x9llT/LHKpIn6H
CoVFrsRO58QILTGDNldkuUwybQgjXrwOeYErlilBa22SCrM8pkRxi4lISYaWl08spxiZTDM3lhs5
wZS4vyLcknW3QpI6ZcGE4TZzFxhd0JZ6o9Hof/cVIeVCVbbzObDJ+NUURpPxFObzHuuxb1fLJdzH
CMcQyJTQrEWIkGCyQmOhxpZHRBAZucqdH9hY5yoCkWVqB6SBdhlCaXF6yqIwYXx6LjeqjWKLUCas
LbSJXPLj1c3tP5Oppr/SsYwidKi1aOgHxUYX9h0sPV5dQiEp/gNe56kv0D/+GwxhD1W3L3zTBsP3
8NyHSPqi1UitBCNBSDLBgyL+dEvHKd6Uxeq5Tm2e+fUKh60A/UOwD64CPLmB++US6Le2aGVwluqJ
Tl0LTi1fpc5Sv0DcnFy+DJ1t7stGMqVDoVqvAx8/i1Gal++ghpumhjvdNEakT9jQz7Od6oVa6abT
59lu9WIMNyu9bWp4wDtucSR14xaXbKd67jHppudKDXcquJaq6Q6p0E7l3IeVVA3tPNupns1XiaSG
fjXcqaBMROP3n2e73btosen0eba9Xm/kvu/Lw4pgEIyDIVj5C2EWBNs3QdAbAdxhGqF5kFi8xDQa
YOGO1w3sP91/uX1+mT3SOtrBfvH1+ruHZ+NZDb+dXW6ns8veb1BLAwQUAAIACAAzjb1Ijh1h5W4B
AAA4CwAAagAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mv
Zm9ybXMvdGhlLWlucHV0LWVsZW1lbnQvaW5wdXQtdGV4dHNlbGVjdGlvbi0wMS1leHBlY3RlZC50
eHRVVAkAA0GMS1dBjEtXdXgLAAEE9QEAAARQAAAAvZWxboMwEIZ3nuLElAztA7RTlkqROlSie2Xw
JVgxtmufBVHVd6/BJFI7VAYhb0Z8v+/THTbF26Gq4L1FcCixIaEVCEVoT6xB6LCr0TooJqq6E4zI
itoTOnCt9pIDM0ZegTTQ1SAQDrQ45JDZpl0c81au8FueMcy5XlsOxcvh+PpvUGn6E24F5xhQ59DS
B7VW9+4JqohPj9ALan/BJ69igfK+2u3hK4zHeHqM49rtn+G7BC5i0WmnNX6cEZLo8GaIn57JYHgc
a819Vs4boy0hBxxM2DwsyluwhFABzmHjchx+uVZilcAWxTutQv+XVp9SW5TvES+Lq4+hrRo/DvFB
6obJ1d9AjG8hpPx47yQelxnOeVwsU2dM1ItsTrtGS53avMhmtWuxudR6SBW84Xnny4VOnu/I5rQL
r0mn/kxmOKffScjUwzGhOd2wY0ImykU2p53zdScoUW+Gc/qJjiXfe5HNemrRYWrzIrvarvgBUEsD
BBQAAgAIADONvUhBqzTtiAkAAGM0AABuABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudC9pbnB1dC10ZXh0c2VsZWN0
aW9uLTAxLXByZXR0eS1kaWZmLmh0bWxVVAkAA0GMS1dBjEtXdXgLAAEE9QEAAARQAAAA1Vtrc9s2
Fv3uX4GJZ+ukY4qSJTmylHgn8WPa2XS3U2fa2U8dUARFxCDBEKAlJc1/34sHKZIiZW02DrXJxCKJ
C+Dcc5+gnFehjNjl0auQYB8+IiIxmoc4FUS+Pslk4ExO4LGQa0Yuj6aMxvenaPpABZXER5+PEPyR
ZCUdn8x5iiXl8RTFPCYzPeTx1Cep43EpeTRFg2SFfLgm/uzoy5FZzi4y54ynU3TcH17osd4tZeSa
BoEd9/D8fpHyLPadXDSYqL/ljcwOgjPqo2Pf981YwGPpBDiibD1FEY+5SPDcAoxwuqAAeUAi1DeP
Eg7KaT1SwkCjB6IBhYMa0uFw2LC+wLFwBElpUBoU9BPRe5Q3dRgJ5BT1e+P8uU9FwjAsQmNgxiJc
Ul+GMLnf/5vFh32fxotipsFmTaOuqtaxcGkcAihZiIf8gaQ1jcbj8ayNbEIMDT1lk3ewl7CTA8Yx
qJHSRSirllNSV6A+Bl3yrThQTyWo2K+pLLHHiDMnjFW0dPS6FZaWIWjnaBsqV1umONkguyNzZbtW
p9GTqy5Tdxfrsznv4FD9ZGV2uFklYF5YH1Qjp6inPuoatsIT1CfeWv1EGupbxuf3v+JU9kDVaUBT
IZ15SJnfSqza7g7mn+5aLCURmPb0kf3sHjn9xuEcT4lU3G6cex14i6RzzBzM6AJiQ/IGtVKiPP0n
HPuM5HTYdRSF6j4kxqAbf55nqVCmUbDrEYg9sE6WWwz2LBzHBI+GtwtFxc+33WGRkvWs5pi98WP2
MhSjnuSP0twLUh7VyLb5Ue2hWP9nFnkkBW8iZe8yT3Pg22nUeu3FRSUB5uHSlAbzSB6NRo3ppmz9
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
TFgAAACyAAAAYwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3MvZm9ybXMvdGhlLWlucHV0LWVsZW1lbnQvaW5wdXQtdHlwZS1idXR0b24tYWN0dWFsLnR4dFVU
CQADQYxLV0GMS1d1eAsAAQT1AQAABFAAAADLSaxMLVJILFHQMNAx0FQozqxKVbAwMKgwMzDgUlAI
Ss1LSS0Ky0wtx6EkhwjtTjn5ydkK1R4hvj61OJXCFeenVCpUO/m7RELUWuhYQNWaW5hUmFqYcAEA
UEsDBBQAAgAIADONvUj8LsoBRwEAANsCAABhABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudC9pbnB1dC10eXBlLWJ1
dHRvbi1kaWZmLnR4dFVUCQADQYxLV0GMS1d1eAsAAQT1AQAABFAAAADNkE1Lw0AQhu/5FXNTSbab
YmtzjKWCoKK00uJxk0zN4n6E7KRNLf53t22qIBY8elp23meefVnGGPC5VY1GxyeCBL9ZzPgCsztJ
3TFupCr4FBUKh1yJjW2IETpiNbpGkeNSV7YmLPj6MudrzFilBC1trfeY4yVpxR1qYUjmju8Sx6lE
Jk3lXd6s0RA/3GhTIcsaImsYthXmXtyjloIwDP9xVZFTI9S+aJoC60cjCPvRENI0YAF7up7NoMCl
8CUgw1KspK2hm6OuaAMroRoEQVRLr8RjqESGqgu7kW5IZAqhK3PmwD8uV4KkNd9y6YAsFBaMpVKa
195xXeofAiiF89Rvlt1SEPqPxNpXg/M4ii/AyXeEJI7bqzgOQoApmgLrucT1KeZPgrGy+Rtsb58f
7j9Os1+0LTawHT9OXg5wEiUdPEoG7TAZBJ9QSwMEFAACAAgAM429SFaaOU5vAAAAuQAAAGUAHABp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1p
bnB1dC1lbGVtZW50L2lucHV0LXR5cGUtYnV0dG9uLWV4cGVjdGVkLnR4dFVUCQADQYxLV0GMS1d1
eAsAAQT1AQAABFAAAABtjEEKAjEQBO95Rd+8+Qd/IOwLJu5oBiaJbDoBf++igQXxWtXV4XpZFqx6
l+5E1CTD6obwwZqffGGId4WQm8VOnc4lqk/3JblToivUNWvhqUFutCG0Wo5na2DFWlEqk5XHedaW
f3okafvo38nehDdQSwMEFAACAAgAM429SF8J+fAyCAAARx4AAGkAHABpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1lbGVtZW50L2lu
cHV0LXR5cGUtYnV0dG9uLXByZXR0eS1kaWZmLmh0bWxVVAkAA0GMS1dBjEtXdXgLAAEE9QEAAARQ
AAAA1Vlrb+M2Fv2eX0Ek2GZbRA/HdsZ2Mll08kCBbXeLZtBiPy0oibI4kUQtScXOzPa/9/IlS7Lk
zAIJ0O2gY4m8JM99nXupucpkkV8fXWUEJ/BTEIlRnGEuiHx/WsvUW5zCsJDPObk+WuW0fDxDqycq
qCQJ+nKE4D9JttJLSMw4lpSVK1SyklzqqYjxhHAvYlKyYoUm1RYl8EySy6Pfj8x2dpOY5Yyv0Ek4
Xeo5/57m5JamqZ2PcPy45qwuE8+Jpgv1p32QOUGwnCboJEkSM5eyUnopLmj+vEIFK5mocGwBFpiv
KUCekAKFZqhioJzWg5McNHoiGlA26SGdTqcD+wtcCk8QTtPWpKCfiT6jfaiXk1SuUOjP3XhCRZVj
2ISWYBmLcEMTmcHiMPyLxYeThJbrZqXBZl2jnrresXBpmQEo2Yhn7Inwnkbz+fxyzNiEGDP4yic/
wlnCLk5zhkENTteZ7HpOSd2A+hh0cUcxMD2VoGLYU1niKCdeTPK8o6Wn9+1YaZOBdp72oQq1DcfV
DtkDiZXvRoNGL+6GTD9cbMw6u0NAhdXWnHC3rcC9sD+oRs6Qr376Go7CEzQh0bP6G2moH3IWP/6M
ufRB1VVKuZBenNE8GTWsOu4B1p8d2oyTAlx79sJ59gxnfhNwXqREOmE3d1EH0SJpjHMP53QNuSHZ
gFqcqEj/AZdJTpw57D7KhOo9I8ahu3iOay6UaxTsfgbiCLxTO4/BmU3gmOTR8A6h6MT5fjisOXm+
7AWmP3/JX8bEyJfsRTP7KWdFz9iWH9UZyur/qIuIcIgm0o4uM+qA79OojdrlskOALl2GaNBl8mw2
G6SbtvcbjlEbzU0KmDRoCN/GgQ3PoRAxcDvhNLWE1VJcqzhIOKZIjJrlAElVXGWngmkN6NjERo1T
pJOrsMgz2aqnwJ76FfTgBD96asAAogVek45nVui8MXiUY2VFJRgDNQAGgGKfUF/vnVcWs+Uo96Yk
3RGACivYsSmPrWweWJqkSXcpOFuMiy/J8vJQTW92sizTxmGzYrxcJ8neBigh+fgKsnwRTfAdeqir
inEJlZbbSAajFgUppUDfBXAermXGjL1NNVbNDES9hDiNnaf0Ai0zUv8bGQUGQ0hoYUdnFy6wFd3g
PL9xCAalz00tK/DW65X3AvoCO3QeNnWnfzTY/eA5TWY3Kd05Zginzypiyqa3IdEjlZ7kKu2MJQxw
5J+Ly5YaM6v0iZBY1uJDHUENb+qhr7JnEI5aIhnLI8y78+7oNCc6Q3cTBfvcjDbkNDV5bPso9ei6
BfU83hKOMcfBVm4XFindErOP5eOwq5KPdQ9i0my/im8ocAHvhVqz52ePlgnZAkkdUG1XCFsQhvSy
ZNQpbwvLYqWCaRN2sDTBeRHbvgj0Ygd0YoLYFSHzpsHa56aC2dcGcNOZdY6mKceFQdjLk24b0cqR
mxGm3bfNM/SabGNrPcmhcYSe+SsK08XyfhdetiaPTGpDdOeaNjLZb4+7zbHdw5hvP4ZHW4LE8aw5
5ntHCu6qE7ZnP7oa2buTXLxzhLYP80CStG47osCml29zbsk4DF+OsIzVX7VgYuhwo4fL63BIJMcR
yVc4hQw721tuxvUmuiCXoOox+i86vjxqCnGrfPdX5xg6dJZ68rkig1sdjyKygr0rbkZyTZBNM4pV
MzpSo04KIoRrPEbtPOSWVnY8aKL+mlIIJQYaoifKanHTjEAz+5mUN61iOVTnXcvRLzHt4qK4HKJW
R4LjdvtuI9GSyNTVwK9CY0MDehwiVU50yoVt+0aavnadjWrIqrLNO66+J/RplbLY2pDVUvFFO/2i
vNaVxE5BvKSABSrYxCnSLpZ6F+hhPmbEnBTYSrsG/EoHyZCEuchI21AT6IlixcnyJxsTADbibAMO
h04gw7DWNkVU+qoJavSYzW0X37Qi9t2xg2pk1f9ht4i6Tzr9Hr+gCdyyjGLKQcJdvgcqCvRhTOAn
sD1YgPTqSvumt1fqvIk/NS3T7uOHq/4DPji5vb1tpfTJ4v72fn4/yE/QXA5H8d3d3RDqFSkqYKiO
822b1pP04RGQdjL/brkIF5a34pxg/m/dHrirgBrR16ZMiVwF9qvblYg5rcCnPH5/nElZiVUQ4E94
668ZW8OiigoVunosyGkkgk//qQl/Dib+zD+3Lz60lv4ncXwN++r9rlF355glxFM+JBuQ+xt4Wjnz
/WzRWgKg7IfCiCXP8AP5ALixEO9P3U1AfS/MJtfBr+BP4KzgFksc3P32EPxGor9TaX8+1DRPgl+g
7mJBAogUMKcnCTAsXN/rXIqAFiqCSRJspnEAtOFBPElo8gstJgL14TIQpMAlRKQI1IwIIFmgL6lg
L9hZ5XJg3hRneyatPeh7apz7citBm0lXidY3pNP9GX23HxtXd35krjU9EXXhQd1vRTs5IKLSCeqP
BbsO5PR6ApaH+euOFHBCW+abMhLV5aAgFPfTazsDrgNIrwXs/BWA/fz9wwNcAFMM7kYRySBf4Jr2
JnCnrwXXpP8TBpZHWEpOIabI22CevRZm04EYzG+CdP5aSItafwZGNne/OYFOSSB9T9EX/12UUKFK
Y8KgvMgMaNZ/G80uXkszWvR0QxkWAH5IuTfS5d0bcIn+GWdDKNYvU6EVOoj9AC72FYSpsUONUadJ
9NfwLPwWqS4ALcJwexGG/5u9XxXw+ThghH4hcMXmv0JF/tPhnv6/GXr2sqF14KIvP3z86cff/3T4
54fwNxpAV4a+fPjn7b+MAouzhVXg3WK2nS9mLyZwqy1V6a6n27K7H90BXgXm34//AFBLAwQUAAIA
CAAzjb1I4hWiBbIAAABoAQAAWAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0LWVsZW1lbnQvdGltZS0yLWFjdHVhbC50eHRVVAkA
A0KMS1dCjEtXdXgLAAEE9QEAAARQAAAAjcxNC4JAEAbge79i2C4FHjbSNI9S0KEoRIJgL+IOJZkL
64aa+N9zzT4QhC4z88IzbxKWKCFUMKEGnUIWPxAcSosFpSMAH1OO8hhjPkCSP969RERXqDbBblsP
0g8WvITK269OL+sYTmdtxywse9naXvXBX/ebtZ5ZHX7zAAsF1Vg1q+/n1Pr1ABqBvKdfl8dcXTR0
gVSMoJRCMuJCc98wy8Iz6sQII0YzI8HbbFKzrsnoCVBLAwQUAAIACAAzjb1IAZPZwTsCAAD/BwAA
VgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMv
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
VgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMv
dGhlLWlucHV0LWVsZW1lbnQvdGltZS1hY3R1YWwudHh0VVQJAANDjEtXe4hLV3V4CwABBPUBAAAE
UAAAAI3MTQuCQBAG4Hu/YtguBR420jSPUtChKESCYC/iDiWZC+uGmvjfc80+EIQuM/PCM28Sligh
VDChBp1CFj8QHEqLBaUjAB9TjvIYYz5Akj/evUREV6g2wW5bD9IPFryEytuvTi/rGE5nbccsLHvZ
2l71wV/3m7WeWR1+8wALBdVYNavv59T69QAagbynX5fHXF00dIFUjKCUQjLiQnPfMMvCM+rECCNG
MyPB22xSs67J6AlQSwMEFAACAAgANI29SIVTisC6AgAAMgsAAFQAHABpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1lbGVtZW50L3Rp
bWUtZGlmZi50eHRVVAkAA0OMS1dDjEtXdXgLAAEE9QEAAARQAAAAzZZdT9swFIbv+yuOsptNbUgK
BbpeFdROQwOBKANNqjS5ySmxlsSZ7awtFf99x/lgoQUpNFxMldp8PH7y2m6Obds2OLciTCNUzohp
5ozvJs4dzr5xXfycpjz0nWsMkSl0QrYSqbY1Km1LVGmolcOjREiNvrM48JwFzuwkZHouZJRhygl0
FDoKIxZr7inH3FGODtDmcUIuMkcYa0fzCG1cJuiRa08vdavdbv9f6ZinUxZm2YZDsLudgyNodzt9
GA5b9pnh4Ya4lm0+VyeTCZhmUDhAzMHHOaNY+fU/LEwRClJpTIBpLfks1QgifmJzzAvQ+1XCEVtC
fZjHteAvJ2fnoFcJVmCVJmb4TKNsPJ76wpRCqX/ibxoQNYBy3sAyPbOAGsO90HSKS21VUtdQV2LX
pzeGrw7+PYF5GnuaE7TFj7f5kVjEtVpkA1k8IcuVjzNGiV5Vh79yD85iOuD+RDONYymFHMDo8gLG
Sw+T7HndbkWcRdlSv+B9m5byimdemoNU7ZKtuWYrywNKAc2z7KLZyrLfg0CksnmaUtQ0UC5pnudd
wij0ROy/Q5rdRC/8iyV/v1ANbJSMyfusSuxnS8BO71YzRVaTRAIz9FiqEDjVRiLRV0CrnqnRPEqj
ncpHlm5i5EpAKBYoScni3MvjHb3C1HWYCemTr5gK6kRTRRa2vqQosXl8WsjfngLL9ZauxqLYApjt
BitvvLqmVtbTIBhEfKDUnlKK1tVWm/Y81ClyfHQ77idQ/AGh77rLI9dttQGuMaZO33JcvMbUEpyG
gvYI6683F+ePr7NPtPBXsD69HP3I4X6nX8DH/d7y8PhzDm/Ir67Hm26Ddw9LuuRvaE8B6w9ma7HZ
4MA9fNYAwFAg0/gfuOC+Dgw5AGs9tdBM29QaAB3T66TYPZqzqTW1OvTtCT8777m9x0er9RdQSwME
FAACAAgANI29SJzUG+6XAQAAUwgAAFgAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1lbGVtZW50L3RpbWUtZXhwZWN0ZWQudHh0
VVQJAANDjEtXe4hLV3V4CwABBPUBAAAEUAAAAK2VTU7DMBBG9znFqAdAasUqu0otUiUQSIE1cpNp
YxF7jD2mLafHcVJaSJFC0l1+Pr88T5KZlTae4VkqTJLkaZ5lwOEYsEKFmoE2UOBG+Iqb6x+i8ghN
0DEaEMxWrj0jkP6ONqm8xPytzSqxh95Zqftk7+are+CDwbOs88aQ5XqNjBs77kM4h5Zf8d2LyqWA
e4M5YwGTelcTCIthSxxOcc+Tk3IP8sm5d/hX4XqkXwxsvM5ZhkwnvuzEF7TTfRbEErb8KNUUGJXh
w3ndz+7BSocDWWQsGJfWkk1h8fgAy32OJj5uOj1xo0iHfAH7L2qwpR/YUH3vBpiNpnRMPtESjDYZ
QOmYzG6hJG9Huxw5I3Uaxmiba6g4zEkX410GcS58u1ZeTWk4LHgJu41tYRZb/ZD/aRQh9iAysMZc
eIcgQyMMQSwccIl1O5bKqyH9IrplNdsRVLRDG4hCN1iph2GpbuGwJlsEXPsWwhZGEqJqb0bbTxv3
MKr/7YDHmRouampn/IasEscbfw7Os6FZlqmSqXM3zrlJknwBUEsDBBQAAgAIADSNvUjhlpVSHAoA
API5AABcABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9m
b3Jtcy90aGUtaW5wdXQtZWxlbWVudC90aW1lLXByZXR0eS1kaWZmLmh0bWxVVAkAA0OMS1d7iEtX
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
gaNC+OHH18dlUKbQPQf/EBl4n8ugzeGnklJ/ely+dZyEbToPm4T/+SSMGrNnu+0++Ot4WazL6C8a
s/PpH/XPKMvSrPn9wmhf3UR5rkbj7vXml+bH0/bvRbrcHyNN+dtvp53UrXFmkURh9vMqScNqVKre
7h+7/zFXTUK9ty42yfNH/w9QSwMEFAACAAgANI29SOIVogWyAAAAaAEAAFUAHABpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1lbGVt
ZW50L3VybC1hY3R1YWwudHh0VVQJAANDjEtXe4hLV3V4CwABBPUBAAAEUAAAAI3MTQuCQBAG4Hu/
YtguBR420jSPUtChKESCYC/iDiWZC+uGmvjfc80+EIQuM/PCM28SlighVDChBp1CFj8QHEqLBaUj
AB9TjvIYYz5Akj/evUREV6g2wW5bD9IPFryEytuvTi/rGE5nbccsLHvZ2l71wV/3m7WeWR1+8wAL
BdVYNavv59T69QAagbynX5fHXF00dIFUjKCUQjLiQnPfMMvCM+rECCNGMyPB22xSs67J6AlQSwME
FAACAAgANI29SFzvddTNAQAA/gMAAFMAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1lbGVtZW50L3VybC1kaWZmLnR4dFVUCQAD
Q4xLV0OMS1d1eAsAAQT1AQAABFAAAADNk99r2zAQgN/9VxzeS4OjSqXJ6uUpzdKxsY6VJGsZ5EWx
r4moLBnpPDsN+d8n50fHMgqDvQyD5JO+++6wLMYY8HurqwI9H0uS/OZhyh9w8VnRYRpVSud8ghql
R67l2lbECD0xh77S5LkqSusIc15fZrzGBSu1pEfrih3m+YoKzT0W0pDKPG93PKcVMmXK4ArmAg3x
ymmGTYlZUJ1TQ1GSJP9VczKjSupda8MhsItuCkk7DIcR+9TSEKiItc/d9XTaRkDrEsFX5b4JsAZ2
Xjh44YDOVgg/pK4QisoTGEuwCHlIUCtaQXz7IYazb4kQ4roD1kH8fnJcGHf+lHhpFKlnSSoUlHpp
XbAUoDxID49Wa1v7AUzJqRK0MggLh/IpbDlbAL1o/s2LMldmCdLkQE4q3Qb1SoXPXsoMT2qdh2JR
Eg4QHUiCM9EVHfDqGSEVonkrRJQATNDk6O4V1q8xfyUYaZs9webj7Mvt9nX2hbb5Gjajr+Pvezjt
pgf4Ku01/at3e/hEfje5OXW3+EX/SB/5GTYEmzcUptOES9H/LQGgpcBV5hdYqzz8H4EcQLyZx+ic
dfN4AOE93Bovl9hG83ged8OY2XwX90Rvu42jn1BLAwQUAAIACAA0jb1IK96o8LAAAAA+AQAAVwAc
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhl
LWlucHV0LWVsZW1lbnQvdXJsLWV4cGVjdGVkLnR4dFVUCQADQ4xLV3uIS1d1eAsAAQT1AQAABFAA
AACljbEKAjEQRPt8xXCVIsjVdqIIgoV4+gGrt3qLuSQkGw/9ek9FCy3tdnZm3ixdyIocrTFmPa2q
xwm9BkbKIfioXMM7yDPGllt2ildy2zAuZDOjzUnhvGLf11jRiTYoVosCg92oLMvpED6imG3ej/nw
h5HIicqNVPo5sicfe0gLSaCEo7fWd2mCSqMEWHGMfWQ691b0LfSD+QvLVIs7gVwNjST2IbpGlFOg
A39NjWHMHVBLAwQUAAIACAAwi71IGPoca20IAABmHwAAWwAcAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0LWVsZW1lbnQvdXJsLXBy
ZXR0eS1kaWZmLmh0bWxVVAkAA3uIS1d7iEtXdXgLAAEE9QEAAARQAAAA1Vlbc9vGGX3Xr9ixplGc
CheKpEyRsjq2LpNMnTZjucn0qbMAFsRaCyyDXYiU3Pz3fnsDARCg3Blp6sYTk8Teznc9Z+HzTObs
4uA8IziBj5xIjOIMl4LIt0eVTL3ZETwW8oGRi4M5o8XdMZrfU0ElSdCXAwT/SbKRXkJiXmJJeTFH
BS/IQg9FvExI6UVcSp7P0Wi1QQl8J8ni4I8Ds53dJOaMl3N0GI7P9Jh/Qxm5omlqxyMc3y1LXhWJ
56amM/WneZA5QXBGE3SYJIkZS3khvRTnlD3MUc4LLlY4tgBzXC4pQB6RHIXm0YqDcdqOkjCw6J5o
QNmog3Q8HvfsL3AhPEFKmjYGBX0k+ozmoR4jqZyj0J+65wkVK4ZhE1qAZyzCNU1kBovD8E8WH04S
WizrlQabDY361o6OhUuLDEDJenrG70nZsWg6nS6GnE2IcYOvYvIBzhJ2cco4BjNKusxkO3Jq1iWY
j8EWdxQH11MJJoYdkyWOGPFiwljLSk/v2/LSOgPrPB1DlWrrEq+2yG5JrGI3mDR6cTtluulic9b5
HRIqXG3MCdebFYQX9gfTyDHy1UfXwkF4giYkelB/Iw31PePx3S+4lD6YOk9pKaQXZ5Qlg45Vx93C
+uN9m5Ukh9AeP3GePcO53yScF6kprbSbuqyDbJE0xszDjC6hNiTvMaskKtN/xEXCiHOH3Ue5UP3O
iAnoNp/jqhQqNAp2twJxBNGpXMTgzDpxTPFoePtQtPJ8Nx2WJXlYdBLTnz4VL+Ni5Ev+pJv9tOR5
x9m2P6ozlNf/VuURKSGbSDO7zFMHfLeN2qw9O2s1QFcufW3QVfJkMultN83o1z1GbTQ1JWDKoG74
Ng9sevaliIHbSqexbVgNw7WJvQ3HkMSgW/Y0qVWpqlPBtA503cRmjTOkVauwyDPVqofAn/on2FES
fOepBwYQzfGStCIzRye1wyOGlRfVxBhaA2AAKPYb6tq9jcpscjbYe1OSbhuASivYsabHRjX3LE3S
pL0Ugi2Gp5+Rs8U+Tq93sl2micNWxTBdJ8nOBighbHgFOXsSTfADuq1WK15KYNrSZjI4Nc9JIQX6
IYDzcCUzbvxt2FiJGch6CXkau0jpBXrOAP/XcxQYDCmhJ7t2duoSW7UbzNilQ9A7+8RwWY43Xofe
c9AF9tFJWPNO92jw+95z6squS7p1TB9On6+IoU1vTaI7Kj1ZqrIznjDAkX8iFg0zJtboQyGxrMT7
KgIOr/nQV9XTC0ctkZyzCJftcXd0yoiu0O1Azh/rp3VzGps6tjpKfXVqQX0floRDnWOvlNumRUo3
xOxj+3HYNsnHWoOYMttl8TWFXlB2Uq3e89GjRUI20KT2mLYlwgaEPrtsM2rR28x2sULBtAXbS01w
XsQ3TwI93QIdmSR2JGR+abD2e81g9mcNuFZmraNpWuLcIOzUSVtGNGrkcqDT7vrmAbQmX1uuJwyE
I2jmryCm07ObbXpZTh4Y1I5oj9UyMtmVx21xbPcw7tvN4UFJkLg+a45555qCu+qEzdFPjiM7d5LT
N66h7cLcUySN247IsdHyzZ5b8BIeLwa6jLVfSTDRd7ixw9V12DeF4YiwOU6hwo53lpvnehNNyAWY
+gr9G71aHNRE3KDv7mqGQaHz1JMPK9K71atBRHZi54qbEaYbZC1GsRKjAxx1mBMhnPAY9HNfWBrV
casb9ddQIVAMCKJ7yitxWT8BMftIissGWfbxvJMcXYppkovq5ZC1OhNcb7e/bSbaJjJ2HPhVaGxq
gMYhUtVEiy6s7BsQfU2ejSqoqqLZdxy/J/R+nvLY+pBXUvWLZvlFrNJMYocgX1LAAgw2coY0yVLv
AhrmU0bMSYFl2iXgVzZIjiSMRWa2TTWB7ilWPVn+bHMCwEYlX0PAQQlkGNZaUUSlr0RQbcdkalV8
LUXsb9cdlJBV/4dtEnWvdLoaP6cJ3LKMYSpAwl2+exgFdBgX+B58Dx4gHV5p3vR2qM4b+WMjmbYv
Pxz798Tg8OrqqlHSh7Obq5vpTW9/AnHZn8XX19d9qOckX0GHagXfyrTOTB++AtJW5V+fzcKZ7Vsx
I7j8l5YH7iqgnuhrU6amnAf2rdu5iEu6gpiW8dtXmZQrMQ8C/Blv/CXnS1i0okKlrn4WMBqJ4PPv
FSkfgpE/8U/sDx+kpf9ZvLqAffV+F6i9c8wT4qkYkjXM+wtEWgXz7WTWWAKg7IvCiCcP8AH1ALix
EG+P3E1AvS/MRhfBrxBP6FnBFZY4uP7tNviNRH+l0n68ryhLgo/Au1iQADIF3OlJAh0Wru8VkyKg
ucpgkgTrcRxA2/AgnySI/FxPE4F6cRkIkuMCMlIEakQEUCygS1awF+ysajmoSkjWWFaY+XIjAf+o
Dbvx1uhod0Tf5oeeq1s+MheZzhR1xUHtt0PbedB6CjdRvx7Yao6jixH4GsYvWrOgCzTnfFdEYrXo
nQh0fnTxk3IAAsPtFIgaYHsuhCfPgPBFgI2/VWCTZwD2y7vbWxVSpNSHa+8gWKHd6nxHNt/Ri1gw
fS4LFNHdY+BIlFdCAjkA2RLNdGsqM/Td7xWXiw835hN9/48/h2H47jWC67t5dPmxNXT1+mXsPX1+
e0GRAdU96hcYCLMlL8HgHFGBsABeUncRMUe3EvqsPsa8doIhhU3W27yIuW/+x+YCpSiqhPsIgvsA
ZeqHlmlapXVc4L+MD2Yv0D30xzB1gJZ5mjfspL3Y9+DiX8EuGjtQsDpNou/D4/A1UiIJzcJwcxqG
/52/nxXwyTBghD6SAsTpryBYvjnc4/83R0+edrROXPTlx08/f/jjm8M/3Ye/tgBEK/ry/u9X/zQG
zI5n1oA3s8lmOps8WcAN1a7KXQ83524/tEA+D8w/r/8HUEsDBBQAAgAIADCLvUhNnpxMWAAAALIA
AABbABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jt
cy90aGUtaW5wdXQtZWxlbWVudC92YWx1ZU1vZGUtYWN0dWFsLnR4dFVUCQADe4hLV3uIS1d1eAsA
AQT1AQAABFAAAADLSaxMLVJILFHQMNAx0FQozqxKVbAwMKgwMzDgUlAISs1LSS0Ky0wtx6Ekhwjt
Tjn5ydkK1R4hvj61OJXCFeenVCpUO/m7RELUWuhYQNWaW5hUmFqYcAEAUEsDBBQAAgAIADCLvUiO
zbzfHQIAAFwRAABZABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFu
dGljcy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudC92YWx1ZU1vZGUtZGlmZi50eHRVVAkAA3uIS1d7
iEtXdXgLAAEE9QEAAARQAAAAzZdRj5NAFIXf+RU3fdLQcdjY1canblONG7vRbM1ufDID3JZJBwZn
LkLd+N/F2l3aaBMWuhOfSODynXOGuRdgjAG/0apI0fKZIMHf3i74LYYfJO0O00KqmF+jQmGRK7HR
BTFCS8ygLRRZLtNcG8KYly8jXmLIciVoqU26LbM8oVRxi6nISEaW/75iOSXIZJbXrJqcYkb8u1AF
XukYGVY5RjXwBVXk+b7/H1oUERVCbQ1OJsDOhqMR+GfDc5hMPOaxdxeXc9hWw+VsDoLIyLAgBL2E
LRJokyMkMo4xg1JSUlve3dAUC2vR0Ff8VkvZN3C/LDAYQH0dVppgsNR60EWvvVgozF96ny4WixZ6
hBUdTfd4SneERWGipL+VPU6fPOoUi6J62ijMCWzcQ7oT6qaTJzDSYLoz8roHSm3i/m4OSP/AtOzX
WBCSTNHdhDhQdCPnNpyjYKnOKHGXrJF7eq0Sce0u2YPa00u57bRTdFnLaZQVaYim/1Tb43SHGJGt
sL+XBtOdEWmlT7AsDab7pI8SjNahrh6//3TWdQceaPb7HmypaEQstcuIjaCTfLYIU0nuZsienpN8
MhUrhyOykXOzO9Giw4fXyDlJV58i7fBfc0+vXz7Pr//o69eOIHgWDIPnYOUPhHEQVK+CwPMBrjGL
0dxILI/VtAJMlY7WcPf+89X85/Hah2odb+Bu+nH25U/xeDjeFb8ej6rz8cj7BVBLAwQUAAIACAAw
i71I7KXkbT8BAAAkDwAAXQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9z
ZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0LWVsZW1lbnQvdmFsdWVNb2RlLWV4cGVjdGVkLnR4dFVU
CQADe4hLV3uIS1d1eAsAAQT1AQAABFAAAAC9l8FqhDAQhu8+xeBj9LZQCgt7KOwDlGhmNazJ2DhZ
7dtXKG20paDJ7lyjft/8cTJo8XI4nuCmuoBwfD6BYvamCoxAFzCuDwz80SO0Rmt0MBpuaV77eiDe
rIYBPb/he1Dd8AQ49VgzaihLmK9DQwzlhags9uu2uyrlf+teD+fzBh3jxP9m2w1JJgyofN1mF7LA
ZITp7rAhXV4RwecX8c1IBqBVJr+MSElG9HPjj+R1di0r0F/KxiOqFSMbi2IzYSUUsYlGk4llyXEr
livaHq4aEa9iuX5kDzeJnrA7nK6NI8gFW6HPnmQLTDLDK9dgdiWRkoyoqaP8LYmU5Mlet1hfK5r2
9x25xM5bKbO++DYKvdKGBANGn0S6IVTWsNjcWOgk0hmrGrmhGG0ifYkDyr24aJPINi8xyf1DLnRZ
6YpPUEsDBBQAAgAIADCLvUiuiOdkiQkAAKFEAABhABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudC92YWx1ZU1vZGUt
cHJldHR5LWRpZmYuaHRtbFVUCQADe4hLV3uIS1d1eAsAAQT1AQAABFAAAADVXGtv20YW/e5fMbCx
dVuYpJ62JDteJLGNFpvsFnXQYj8VQ3IoTkxyFM7IkpPtf++dBymSIuV0kZBhglgk53Xvuec+ZkTn
KhRxdH10FRLsw0dMBEZeiFNOxIvTtQis2Sk85uIpItdHi4gmD2do8Ug5FcRHn44Q/BFkKyyfeCzF
grJkgRKWkEvV5LLUJ6nlMiFYvEDD1Rb5cE38y6M/j/R0ZhKPRSxdoJPBeK7a7DsakRsaBKbdxd7D
MmXrxLeyrsFM/i0upFfgLKI+OvF9X7cFLBFWgGMaPS1QzBLGV9gzAsY4XVIQeUhiNNCPVgyUU3qk
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
S+qdt1d1+7CrFzQm/dmSDC86QqcH0MzahaZHpJl3gMy3D8to0B4sMQgX9ocxo2EX0PQAlxZPyzaE
PPSIMeMOkOkBLJP2YOlXJTOadoBMD2Bp8Ygu0W9FtLp7GV10ol9LyrV4SJfiZElatt28C/Xa0W3c
4kmd+vK4XdONh12o15JuLRZlXki8B/ki2/+XZ1nSxdeY447w6cU3meMWK7QU+5T1ijrTLsDpB29a
PKfkazemokcvTlx0gk0/eNPiMaX+vZb+0GbeBTT9eN+mxbPKlMj3VHvDmsmwC2j6wZoWK2PzhnV/
aDPuBJt+8GbyFd5WVR/N79ti33/+ZVvT6aDwB+Rin/FKrpI9wk9yNYG+H5wNfkDy/XI0Gwy254PB
3wP8iwo8ahYYoV9J4pP0N0o235zc474BPXkeaEVc9Omnd2/f/PnNyT89JH+uAfOf0KdX/7n5r1Zg
djYzClzMJtvpbPKsAxd+4UG6u2ou9t19qN8tuHL0/0zyF1BLAwQUAAIACAAwi71ITZ6cTFgAAACy
AAAAVgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9y
bXMvdGhlLWlucHV0LWVsZW1lbnQvd2Vlay1hY3R1YWwudHh0VVQJAAN7iEtXe4hLV3V4CwABBPUB
AAAEUAAAAMtJrEwtUkgsUdAw0DHQVCjOrEpVsDAwqDAzMOBSUAhKzUtJLQrLTC3HoSSHCO1OOfnJ
2QrVHiG+PrU4lcIV56dUKlQ7+btEQtRa6FhA1ZpbmFSYWphwAQBQSwMEFAACAAgAMIu9SCze21fL
AQAATQUAAFQAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L2Zvcm1zL3RoZS1pbnB1dC1lbGVtZW50L3dlZWstZGlmZi50eHRVVAkAA3uIS1d8iEtXdXgLAAEE
9QEAAARQAAAAzZNRb9MwFIXf8yuu8rJNqbGTNhChMXVVQUwbAq3QiifkJBdqzUlKfLOmTPx3nCZF
sBIR8cRTdH2Pv3Ns3zDGgC8LXWVo+FyS5C9XC77C+FpR95lVSqf8FjVKg1zLXVERIzTESjSVJsNV
tilKwpRvxwnfYsw2WtLnosz2MsPXlGluMJM5qcTwpmM4rZGpfGNZlpxhTnYn3jGsN5hY1hOqyfE8
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
gEXMlwzSPIHM2Rs6H0f9w+gw3IMOd29+eqdhohgLBEhVLIhtTYxDYCEk99/IZ4gUECKrzLTErz4v
uZyZT1UZ0YJLO2hNMDBPB7HDaF++BKwjY4dBlx2UiFLnMB4935dHf0ofq7xcQ9WABoB9swcP6L3X
B9I55dqHKDU3tW9U/OMBNR8fTvNXJ3CBcPQn+u5ff/X9/s3332yCUf+ARpgckPIMWl9Dgm9Q3Tms
3j3/f6N4Gu6TDwe2SW+PVRnS9quFnF2q96UIS5lTUOVA3USvvy9nWuAMLF/HvdtZpsr6/R0l2O8d
0nODPXuOac/h1cE9N9yz5xbKczXcL/Fcr7fDc72DxtzoAJcJ/dV9HYIL+vN3ISu0E/wOXPwFNyaN
He6V6jSJvvPP/O+Ruvmjse+vzn3/vzP4XgH3uwEj9CtJQ5J/gFv4nw734P/N0MPnDa2Ji77++P7n
d3/86fCPduEvNeDhGn19+8+bfxsFxmdjq8Dr8XA1Gg+fDeDKqygV7nq6Krv50m99Ljzzf8b+A1BL
AwQKAAAAAAAzjb1IAAAAAAAAAAAAAAAAQAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zZW1hbnRpY3MvZ3JvdXBpbmctY29udGVudC9VVAkAA0GMS1dwjEtXdXgLAAEE9QEA
AARQAAAAUEsDBAoAAAAAADONvUgAAAAAAAAAAAAAAABPABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9ncm91cGluZy1jb250ZW50L3RoZS1kdC1lbGVtZW50
L1VUCQADQYxLV3CMS1d1eAsAAQT1AQAABFAAAABQSwMEFAACAAgAM429SN1WHxrpAgAAMw0AAGUA
HABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2dyb3VwaW5n
LWNvbnRlbnQvdGhlLWR0LWVsZW1lbnQvZ3JvdXBpbmctZHQtYWN0dWFsLnR4dFVUCQADQYxLV0GM
S1d1eAsAAQT1AQAABFAAAAC1V02P2jAQvfdXWPTSSqiyHTsflfYACxWoLCBIV6qqHlJwS9SQoMR0
YVH/e21IgkliEtruYVkE72XezLwZm8Dbsxh4HLyBbfgWJP4zAzaEOxPCVwDMWLhk8aPPnjSQQEM3
LJrTu0G0+AkOA/dh9FsLzcHRcg8O3Unv8wlrtzFKwZZNdgYxj+Dis1HxyUewlWIztMt2HBxec/Gv
iEfUUfEASBCIt+EZ9+Qv+UoC34NWjyWL2N9wPwpbVYKm2fOprQhCTnNBGNEdshsIEkAhyF35iYAk
HPzyAn/pibeArxhYcsACtmYhf1cptDd8zCI7piIVU1jQmhLm/Xt3OBlX1RsZVNF72SBcRcBqfk2a
BHGRc6VREIu6zLfrtRfvWzphhXSIVd0ufYMvClDU1iAjVGZdywmJnAZeHLIkAQn3+DYRH1RGHYaB
HzKR4bRT6hYmVVE1ahGsIxYEp4TUnkQInHzUNiAvpI3qSn+ljoSWdemKSOS8fIi24bJQOU0UQvIw
Tk2UE/QURq4J1CgAxXkAg9REOGFPEQxZ2uPQJ9ryKvONEFVnD+rNrZCgvilFo4063X5pw1NL77Q0
2nA8/eSeeLhNssHAO4QbO9Q8GwE1MaipuEFOFAJTL1GKeG1FIEqUmjgvvPIs1HzjWeh4MnHPDyoM
4XrfAtElt9Md9UvrjmB7R6wqaZI1Zwt50gnyoN/plWZPcDGp3nySPYueBHOW0bBKg7oWS+I9CwIZ
M/NGzjQFEXyJ7yBYiL84uUNgIV6+VvRd55h2tm2IZqMVLSMJqWPk2M1Ysg14q7l84uT6DXG0nxNA
f5cAPqdg4WYpYCUJSx6OrrwvjL01uyEPw6R5IiZS8sD/2Ahq39oIaoscHsRJ6P1grXrvni+VwoRE
dSFubF54q3l7mXnhS5gXO7fWDMtj6XLZ1YoX1oX/07q5fAPhW/ULyvG2y8AmjnjE9xsGvkexvOeK
C7D8jdFPr7v59zdkKs3tKOau9PYfUEsDBBQAAgAIADONvUgUREinlQMAAEgPAABjABwAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9ncm91cGluZy1jb250ZW50
L3RoZS1kdC1lbGVtZW50L2dyb3VwaW5nLWR0LWRpZmYudHh0VVQJAANBjEtXQYxLV3V4CwABBPUB
AAAEUAAAAM1X227jNhB991cQ3pcWtlYkRV1cYIHYaxcJNpsYtppFUfSBkdhEqC6GSK2dBv33JW1J
VmTJltou0AdfYs3hnDNzOGQ0TQP6QxJmEeP6nAqqL76s9S/s8VMg8o9ZFoS+vmIho5zpIX1JMqEJ
xoWWMp6FgutBtElSwXx9a3j6lj1qm5CKP5I02odx/VlEoc5ZRGMReFx/SpNsE8RPmpfEgsVCF89M
84UmM0Tqz/K5+m23YZ5c+r3YicFoNPpfk6WeyGi4p3p1BTQ0tsEIjS0Erq4G2pxxLw02IkjigTbQ
3OeAA5URfKVh4FP5FcilgS9AvvR7FTbQltP1GrjyySZNRCJeNgxItipOLnDtfr5d5OHH5xI2ktJZ
CqgAP8Ax/BHw4C8GHAh3FoSDEQArFvssfQjYti2mbQHDNo8LzMLE+xO8Khp/t8eW0Yn/Al5n9/Nf
D8HOGKM82nbIziDWIbq+OqqvvY+2i+Ai3GU7AV7fCflRByBz8gYAgIoCaRYfA7eBL55V5E9gWGnW
sJHTsshgOhVOaNKDE0bmDjldOMlIyamDY5q5zm8eitwTq8IWm7BON0esFx/dm/u7prIjw6xSftso
3ITAbzR2aRbEJ6AzDYNYFmedRRFNX4at3GqSiN3StvZOv6nCCb0OqlAD7JwuJHVd0zRmnAMuqMi4
/KE5700cBjGTKpfTk65h0pi3hTCCF5E1zjkityqRHO8/tfehLKeDLnbgTDWJ2UCtrZREbZ+fkyz2
6/VryUNImWhyKc8h9pBIjQ7ULYWJyxQGuZTjEHzIYagK7+cAb69yZcsjZFY3Izxj9QoKnmlO3XS3
09niZPyb9hnX5flu7pa/uAcgHpNin+Adwt3tah0tgTq51ar4Qu0wBJaUV0t5bmwgk1QKM/nuo9BG
PSahjfYnl6BB2GQNlz6GslvudHa7OBmDBDs7YjeyU7C1vITJs1CirxfT+clmlGBMWiaigq+SrYSu
Chyu4mBrrxXyIwtDlbVwSQm1JBL8ln6AwJOvlH9AwJNvvzcZoM0742IEkbZBVzePQuTeUdtwtb9T
DnsoIJNSgiHP/6MG9A814KMKG3dUgSs6bHV6uupWcUcj1keKYZmlFgtVpOB/2w7T6d0O05EyPsuT
kj6xYQcbHy+h0o6k6kfc3cewt4/nhY/hd/ExnvQuHFZnVm0CXuQvXQz/UxeXCgyEe0uQmP31uMe/
SH3EKp9PKj5vtPk3UEsDBBQAAgAIADONvUim4CVRVwAAAGgAAABnABwAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9ncm91cGluZy1jb250ZW50L3RoZS1kdC1l
bGVtZW50L2dyb3VwaW5nLWR0LWV4cGVjdGVkLnR4dFVUCQADQYxLV0GMS1d1eAsAAQT1AQAABFAA
AABzSS1OLsosKMnMz+PiCsnILFYoSS0uUShLzMlMSQQyFUoyUhVSShRSc1JzU/NK9Li4uAIcg4MV
QoDCBUX5JfkllQWpCmn5RSBFQN0eIb4+rlC1CHkuLgBQSwMEFAACAAgAM429SJhhzKFuCwAA10sA
AGsAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2dyb3Vw
aW5nLWNvbnRlbnQvdGhlLWR0LWVsZW1lbnQvZ3JvdXBpbmctZHQtcHJldHR5LWRpZmYuaHRtbFVU
CQADQYxLV0GMS1d1eAsAAQT1AQAABFAAAADdXGtv2zgW/Z5fITTY6e4gst5+pckiT7SYThs02Rks
FosFbdGxWkn0iHTitDv/fS9fsiRLjt24kLENEtsiRd7De+69h7TdN1OWxKcHb6YYhfCQYIaM8RRl
FLOT13M2Mfuv4TJlTzE+PRjGUfrlyBg+RDRiODS+HRjwj+EFM0M8JhliEUmHRkpSfCyaRiQLcWaO
CGMkGRrObGGE8ByHxwd/Hsjh1CBjEpNsaBza3kC0da6jGF9Gk4lqH6Hxl/uMzNPQ1F0nff5TnEjO
QEkchcZhGIaybUJSZk5QEsVPQyMhKaEzNFYGJii7j8BkByeGLS/NCIATODIcA6IHLAyaOhVLPc+r
GZ+ilJoUZ9Gk0Eijr1jMUZzUjPGEDQ27E+jrYURnMYJBohRWRln4GIVsCjfb9l+UfSgMo/Q+v1Pa
plzDn5W9o8yN0ikYxfLuU/KAswqiIAiOmxYbY7kMHe6T9zAXVTdPYoIARhbdT1nZc7zXBcBHgEVP
RWDpIwYQ7QpkhkYxNsc4jksoTTFuaZUep4DOFD7kVHvM0Gxp2S0ec981kkbcXKZMlS6Ks3rdgVD2
bCFnuFrMwL0wPkDDR0aHP1QRNppHoxCPnvhfQ5h6HpPxlxuUsQ5AHU6ijDJzPI3isHFh+XS3cP/R
usEynIBrj56ZT82hl18SzhzxLiXaBZp1wBYWjVFsoji6h9hgpAZWhjnT36I0jLFeDjUOX0L+eoql
Q5d8Hs8zyl3Dza5GIBqBd+baYzBnThwZPMK8dVaUeL5Kh/sMPx1XiNkJnvOXXGKjw8izy9yZZCSp
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
Xvbs7/KLRCD94uUpWWypaeve8Zyt03Jh9+w4QXG31uoZuPsdEroAxd6XEuN53yfM3p+dX60clQe9
lkPG31aZKc+8+3DzjzuJxj3y9abAXeQnPa2gCV6uM7tLCdDyDsfrfr/M7BZ0QL7HcYwbGKL9lNZ7
2TmaE/iFXDBo8yDN6/8/HKR5gx2J5p7TLhDffqlo7jnLt2zAwrj9aPG3EAB3SHym8e7s/P3VyiGa
7/YXfptvpvlbKQCBJf864d3bq7PLlT0aIMq3ra0g2lIKCEyfyCPg+aTBuEUwbQo0f2spIOBc4Djm
/tFaIMfTBTjGv7IT2xjDb0ZPHGMMf/7dJsRgm4rapBCO9GmH3/J+x99KIFQlAoehFEK+6fkkPvvZ
fs7r7YCK/iDnoucEBTI6e0LG/i7I6C7p2HNbpuPgJXR0C4Ts5W9m3fH3tT+gBLfOycDeASe9bpCT
susUOOnuBycDZ6cJMui3y8jA3U2CDPqaj+oLH+2z0XuBllp+5A3kh1/UH21u3gP/5WLK3hcxFQQv
yRaXWkzZeyymgu5Oc4Xb8qF+0NtNrnDzo/29OGwJ+jsgIkgpe5+lVDDYKRU9p2Ul1bV3w0UAsvyU
4BbfqWidtV1nB6zlYmtQEFubaK2V72gUvibIv9Ehmot9lw/iG3lvLPn/ef0PUEsDBAoAAAAAADON
vUgAAAAAAAAAAAAAAABXABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3Nl
bWFudGljcy9ncm91cGluZy1jb250ZW50L3RoZS1maWdjYXB0aW9uLWVsZW1lbnQvVVQJAANBjEtX
cIxLV3V4CwABBPUBAAAEUAAAAFBLAwQUAAIACAAzjb1IEp7tLhABAABlAgAAdQAcAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZ3JvdXBpbmctY29udGVudC90
aGUtZmlnY2FwdGlvbi1lbGVtZW50L2dyb3VwaW5nLWZpZ2NhcHRpb24tYWN0dWFsLnR4dFVUCQAD
QYxLV0GMS1d1eAsAAQT1AQAABFAAAACN0U1Lw0AQgOF7f8VQDyoU2Y1pvm62CSq0RkwoeFyTqVmM
G9msNrX0v7uJpobQQE+7h2eGF2YePkThIoBlEEU3t4EHORcI1PTgCdcoUSQYSFlID+ZMnCtYc5HC
F5OcveTogcJSjXK2RQlMwQWZkEso+TeCQ0hlETICvUekKFccNwNkaJxS8zA+y4vkDXZ38XKxH6QH
XKRb2M1C//nXOhOD/mHbMSvbbmx/Ne0vru11a1sdY6Vgd6b00/d06nY9QI1Afop/t+GpymrowdjH
MpH8Q/FCjI8FPbb7p04niLqnBxmWVVHnhCANdVCc8bI5qL5vzlOmv6Ay1Cd/TVjTCZjjOwp1dTTY
v1+1Ba7RSSajH1BLAwQUAAIACAAzjb1IFDR8xMUBAAB6BAAAcwAcAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZ3JvdXBpbmctY29udGVudC90aGUtZmlnY2Fw
dGlvbi1lbGVtZW50L2dyb3VwaW5nLWZpZ2NhcHRpb24tZGlmZi50eHRVVAkAA0GMS1dBjEtXdXgL
AAEE9QEAAARQAAAA1ZJdb9owFIbv8yuOuottCq4ToHzkilKibVo7qgZR7dIkB7DmxJFzMsLQ/vsc
ytdQkdbLXdmyn/O+TyIzxoBPtSpTLPhIkODhc8SfcfZV0m4ZllIl/AkVigK5EmtdEiMsiBksSkUF
l2muDWHCV62Yr3DGciVork26xQq+pFTxAlORkYwLvjC6zGW2YLHOCDPitEQ2l4tY5CR1xmxTWh8f
uNO7KsfYVl1TRY7ruv+VvIipFGqrPhgA8xtdcP2G34LBwGEjLGIjt6DDHDZZygJqA/gplEyE3YKt
gmMc7Kqua9xhj7dRBBNL5EaTpnVuWW1OeRv4efJwH+7Gjpwdd+/G36LxfQgPYRTdfgoDUDJD8NsB
POEcDWYxhsZoE8CdyN6Tzc0Sq2akmCkMtqaOa/8vGhAEH7yG9xEK+Quh53lVx/McF2xSlqCZSlxd
Yi4F+H77GDBUOv4Bm/pbfl9mD7RO1rAZjkffX+Beo+nv6G6vXXW7L/B5uH8eXcOtA7zHJ1gRbN6R
Xc4H/Jv+XwMANQWmzI7gSia0rMkArk4ewNWrTo/7hpveiZPff4NTs9Op/N6/OFnSOr3hFb7uPPoy
3Tv0myfWnvMHUEsDBBQAAgAIADONvUhLZEWZXAAAAHgAAAB3ABwAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9ncm91cGluZy1jb250ZW50L3RoZS1maWdjYXB0
aW9uLWVsZW1lbnQvZ3JvdXBpbmctZmlnY2FwdGlvbi1leHBlY3RlZC50eHRVVAkAA0GMS1dBjEtX
dXgLAAEE9QEAAARQAAAAc0ktTi7KLCjJzM/j4grJyCxWKEktLlEoS8zJTEkEMhVKMlIV0jLTkxPB
ahRSc1JzU/NK9Li4uAIcg4MVQoDSBUX5JfkllQVAhflFyIqBpnmE+Pq4QvUg1HFxAQBQSwMEFAAC
AAgAM429SJ6MwLDYCAAAiyQAAHsAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL2dyb3VwaW5nLWNvbnRlbnQvdGhlLWZpZ2NhcHRpb24tZWxlbWVudC9ncm91
cGluZy1maWdjYXB0aW9uLXByZXR0eS1kaWZmLmh0bWxVVAkAA0GMS1dBjEtXdXgLAAEE9QEAAARQ
AAAAzVprb9s4Fv2eX0E02GZ3EL38SPxIs2gTZ2cx7bQYFx3spwUlUTYbSfSIdOK0M/99L1+yJEt2
g02Rtmgsk5fkufee+6DSi6XI0sujiyXBMXxkRGAULXHBiXh1shaJMzqBYS4eUnJ5NElpfnuKJneU
U0Fi9PUIwR9BNsKJScQKLCjLJyhnOZmqqZAVMSmckAnBsgkKVhsUwzOJp0d/HentzCYRS1kxQcd+
f6zm3BuakmuaJGY+xNHtomDrPHasaDKSf6sH6RM4S2mMjuM41nMJy4WT4IymDxOUsZzxFY4MwAwX
CwqQA5IhXw+tGCin9ChIChrdEQVoGTSQ9vv9lv05zrnDSUGTyiSnX4g6o3qok5JETJDvDu14TPkq
xbAJzcEyBuE9jcUSFvv+3ww+HMc0X5QrNTbjGvlU946BS/MlgBKl+JLdkaKh0XA4nHYZmxBtBlf6
5C2cxc3iJGUY1CjoYinqnpNSV6A+Bl3sUQxMTwWo6DdUFjhMiRORNK1p6ah9a1a6X4J2jvKhpNp9
gVdbZHMSSd91kkYtrlOmSRfDWWt3IJS/2ugTZpsVuBf2B9XIKXLlR1PDTnicxiR8kD+RgvomZdHt
B1wIF1SdJLTgwomWNI07DSuPm8P6032bFSQD154eOM+cYc2vCeeEUqRGu6FlHbBF0AinDk7pAmJD
sBa1CiKZ/jPO45RYc5h9pAnl9yXRDt3yOVoXXLpGwm5GIA7BO2vrMTizJI4OHgVvH4oaz3fpsCjI
w7RBTHd4yF/axMgV7KCZ3aRgWcPYJj/KM6TVf11nISmATaTKLj1qge+mUcPa8biWAG24tKVBG8mD
waA13VS9X+YYudFQh4AOgzLhGx4YerZRRMOt0alvElZFcaVia8LRRaLTLHuS1KqQ0SlhGgPabGJY
YxWpxSoscnS0qimwp/oKehQE3zpyQAOiGV6QmmcmqFcaPEyxtKIUjCA1AAaAYp5QU++tV0aDcWfu
TUiyTQCSVrBjWR4r0dyyNE7i+lJwNu8WH5PxdF9NL3cyWaaKw0RFd7mO450NUEzS7hVkfBCN9xOa
r1crVgiotIVhMhg1y0guOPrJg/PwWiyZtreuxrKZAdYL4GlkPaUWKJmO+l/KSDAYKKGEbTo7s8SW
6Qan6ZVF0Crd07UswxunUd4z6AvMUM8v607zaLD73nPKyC5DunZMG06XrYgum849CW+pcEQhw05b
QgNHbo9PK2oMjNLHXGCx5m/WIdTwsh66Mnpa4cglgrE0xEV93h6dpERF6HYiY1/K0TI59XUcmz5K
PtpuQT53t4RdmWNvK7elRUI3RO9j8rFfV8nFqgfRYbZbxe8p5IKiQbVyzy8OzWOygSS1R7VtIaxA
aNPLJKNaeRuZLJZLmCZgW0sTnBeyzUGgZ1uggSaxLUL6mwJrnssKZr6WgMvOrHY0TQqcaYSNOKm3
EZUYuerItLu2eYBek92bWk9SaByhZ/6GwnQ2vtnSy9TkjklliPpc2UbGu+1xvTk2e2jz7XK4syWI
bZ7Vx7y2ScFedfzq7EdbIxt3krNzm9B2Ye4Jkspth2dY9/LVnJuzAoanHVnG6C9bMN52uNbDxrXf
JpLikKQTnECEne4s1+NqE1WQc1D1BfoTvZgelYW4Ur6bq1MMHTpLHPGwIq1bvehEZAQbV9wlSVWC
LJtRLJvRjhp1nBHObePRaec2t1SiY64S9beUQigx0BDdUbbmV+UINLNfSH5VKZZtdd62HM0SUy0u
MpcDaxUTbG433w0TTRLp2xr4TWgMNaDHIULGRK1cmLavo+mr1tlwDVGVV/OOre8xvZskLDI2ZGsh
80U1/MJ0rSqJmQK+JIAFKlhgFakWS7UL9DAfl0Sf5JlKuwD8UgfBkIC5UEsbqnF0R7HMyeKd4QSA
DQt2Dw6HTmCJYa1piqhwZRNU6jEYmi6+bEXMd5sdZCMr//n1Impf6TR7/IzGcMvSikkHcXv5bqko
0Icxju/A9mAB0qgr1ZveTqlzArevW6btyw9b/Vt8cHx9fV0J6ePRzfXN8KY1P0Fz2c7i2WzWhnpC
shVkqJrzTZvWkHThEZDWIn82Hvkjk7eilODiv6o9sFcBOaKuTUspcuGZt24XPCroCnxaRK9eLIVY
8Ynn4c944y4YW8CiFeWSumrMS2nIvc9/rEnx4AXuwO2ZLy60lu5n/uIS9lX7XaL6zhGLiSN9SO5B
7p/gaenMV4NRZQmAMi8KQxY/wAfEA+DGnL86sTcB+b5wGVx6n8CfkLO8ayywN/t97v1Owl+oMB9v
1jSNvd+g7mJOPGAKmNMRBDIsXN/XqeAezSSDSezd9yMP0oYDfBLQ5GdKjHvyxaXHSYZzYCT3pP9W
8o5ngsSDuHESuojwSjLMgZNkbG/lKnPQCa1x6oqNAP2CulqVt0onuzPqtt81Lt8CIH3RaYjIKxCq
vz3aykFqyq2gen2w7UlOLgPwBcxf1qQgS1RlXuYhX01bBaHcn1xeE+1OUMkIgV8B3VNh7D0Bxu8C
rP8EwD4uqbxtcYHuIAfGEOlcpegtnZChmvtddBj8qMYd/qjAzp4A2IfX87mq0quCCSY7QPW+oeJ0
YMXPH9+9nRnfb+W+i07n38HY6qM7kUHlPZzFjNBe7HtwsW/IdQr71ftf5+/fztC72Xz++l+ziVqH
gsEE/UYSUpA8IrOikEX3Cucvj6HjFuCsPIagLaj8VcNExfDjfPOkyvW6lYNqKE8T6O/+qf8PJPsV
NPL9zZnvPyPgfjdgBFbPoU/8BL3DD4d78HhDB8HgGQEPDxtaRSX6KhPOXz8c/rN9+EsNoH9EX9+8
v/6PVmB02guMBuejweb8/BkVON+vQNMJQdMFUoH+cyowOqSAVUG//jmWU00lguH4eZUYH1ZC/2YA
Fet8C15ddCX6CXr5x5qJaaXb1QPPqFPgP4paH6xThqMKtYLxc2oQPAG3emdnm2D0nFr0/h9yAXxL
rkfcBp6ffP1Hke/635+s38a9Cv38g31j5dWG7DLVdFV2+6HeIlx4+v8g/Q9QSwMECgAAAAAAM429
SAAAAAAAAAAAAAAAAFMAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL2dyb3VwaW5nLWNvbnRlbnQvdGhlLWZpZ3VyZS1lbGVtZW50L1VUCQADQYxLV3CMS1d1
eAsAAQT1AQAABFAAAABQSwMEFAACAAgAM429SK/dYOkQAQAAYQIAAG0AHABpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2dyb3VwaW5nLWNvbnRlbnQvdGhlLWZp
Z3VyZS1lbGVtZW50L2dyb3VwaW5nLWZpZ3VyZS1hY3R1YWwudHh0VVQJAANBjEtXQYxLV3V4CwAB
BPUBAAAEUAAAAI3RXU+DMBQG4Ht+xcm8UJPFtMjk484NoiabGCFLvEQ4k8ZaTOkck+y/W6ZMQkay
q/biOW/f9MzCxyicB7AIouj2LvCAM4FALQ+ecYUSRYqBlIX0YJaIcwUrJjL4SiRLXjl6oLBUBk+2
KCFRcEHG5BJK9o3gEFLdEGKAzhEZyiXDzQAZGqfUOoxPeZG+Q30fL+a7QXrARbaFehr6L7/WGZv0
D9uOVdn23vajaT+4sdetbXWMlYL6TOmj7+nE7XqABoFci3+3YZnKG+jByMcylexTsUKMjhV6avMn
TqcQdU8vZFr6Z5wTCmmoC8U5K/cL1fvlLEv0FVSOeuVva4mAHD9QqKujZf2HZfu6a3bqEuMHUEsD
BBQAAgAIADONvUiYQF3NwwEAAF4EAABrABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9ncm91cGluZy1jb250ZW50L3RoZS1maWd1cmUtZWxlbWVudC9ncm91
cGluZy1maWd1cmUtZGlmZi50eHRVVAkAA0GMS1dBjEtXdXgLAAEE9QEAAARQAAAA1ZJdb9owFIbv
8yuOuottCq4ToOPjilKibVo7qgZR7dIkB7DmxJF9UmBo/30O30NF6i535ch+zvs+ccIYAz7WqszQ
8oEgwaPnmD/j5Juk3dIvpUr5EyoUFrkSK10SI7TEDNpSkeUyK7QhTPmikfAFTlihBE21yTaY5XPK
FLeYiZxkYvnM6LKQ+YwlOifMidMc2VTOSoPMtWTV1oHZ7y8LTFzFNS3J833/v5AWCZVCbZR7PWBh
rQV+WAsb0Ot5bIA2MbIgqXOPeWw0lxaqZngRSqbCPYKrgG0U7CquK9Rjj7dxDCN3WhhNmlaF47TZ
sy7oy+jhPtqNHBk36t8Nv8fD+wgeoji+/Rx1QckcIWx24QmnaDBPMDJGmy7cifw9ucw8dUpGionC
7sbQ8919ogFB8CGoBR/Byl8I7SBYfgoCzweXlKdoxhIXl5hLAWHYPAb0lU5+wrp6l9+X2QOt0xWs
+8PBjy3crtXDHd1qN5et1hY+Dw/Poyu4cYD3+AiXBOt35JbzgfCm89cAQEWBKfMjuJApzSuyC1cn
H/7qVafHfcNN+8Qp7PyDU73p7qf9FidHOqc3/n2v+w6+jvf9nfqJceD9AVBLAwQUAAIACAAzjb1I
qrgdRVoAAABwAAAAbwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3MvZ3JvdXBpbmctY29udGVudC90aGUtZmlndXJlLWVsZW1lbnQvZ3JvdXBpbmctZmlndXJl
LWV4cGVjdGVkLnR4dFVUCQADQYxLV0GMS1d1eAsAAQT1AQAABFAAAABzSS1OLsosKMnMz+PiCsnI
LFYoSS0uUShLzMlMSQQyFUoyUhXSMtNLi1IVUnNSc1PzSvS4uLgCHIODFUKAUgVF+SX5JZUFQEX5
RTCFQFM8Qnx9XKHqEWq4uABQSwMEFAACAAgAM429SEr1pWPUCAAAdyQAAHMAHABpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2dyb3VwaW5nLWNvbnRlbnQvdGhl
LWZpZ3VyZS1lbGVtZW50L2dyb3VwaW5nLWZpZ3VyZS1wcmV0dHktZGlmZi5odG1sVVQJAANBjEtX
QYxLV3V4CwABBPUBAAAEUAAAAM1aa2/bOBb9nl9BNNhmdxA9/Er8SLNoE2dnMe20GBcd7KcFZVE2
G0n0kHTitDP/fS9fsiRLdopNkbZoLJOX5Ln3nvug0oulzNLLo4slwTF8ZERiNF9iLoh8dbKWiTc8
gWEhH1JyeTROaX57isZ3VFBJYvT1CMEfSTbSi8mccSwpy8coZzmZ6KmI8ZhwL2JSsmyMOqsNiuGZ
xJOjv47MdnaTOUsZH6PjsDfSc/4NTck1TRI7H+H57YKzdR57TjQZqr/lg8wJgqU0RsdxHJu5hOXS
S3BG04cxyljOxArPLcAM8wUFyB2SodAMrRgop/XgJAWN7ogGtOzUkPZ6vYb9Bc6FJwinSWlS0C9E
n1E+1EtJIsco9AduPKZilWLYhOZgGYvwnsZyCYvD8G8WH45jmi+KlQabdY16qnrHwqX5EkDJQnzJ
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
OoPR8yoxOqyE+U0A4ut8C15fbBX6MXr5x5rJSanLNQPPqFMn/CZqfXBOGQxL1OqMnlODzhNwq9uH
HDV8Ti26/w+5AL4j1yNvAc9PvN43Ee/635+cz0bdEvXCgz1j6TWG6jD1dFl2+6HfGFwE5v8b/Q9Q
SwMECgAAAAAAM429SAAAAAAAAAAAAAAAAE8AHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL2dyb3VwaW5nLWNvbnRlbnQvdGhlLWhyLWVsZW1lbnQvVVQJAANB
jEtXcIxLV3V4CwABBPUBAAAEUAAAAFBLAwQUAAIACAAzjb1I4hWiBbIAAABoAQAAZQAcAGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZ3JvdXBpbmctY29udGVu
dC90aGUtaHItZWxlbWVudC9ncm91cGluZy1oci1hY3R1YWwudHh0VVQJAANBjEtXQYxLV3V4CwAB
BPUBAAAEUAAAAI3MTQuCQBAG4Hu/YtguBR420jSPUtChKESCYC/iDiWZC+uGmvjfc80+EIQuM/PC
M28SlighVDChBp1CFj8QHEqLBaUjAB9TjvIYYz5Akj/evUREV6g2wW5bD9IPFryEytuvTi/rGE5n
bccsLHvZ2l71wV/3m7WeWR1+8wALBdVYNavv59T69QAagbynX5fHXF00dIFUjKCUQjLiQnPfMMvC
M+rECCNGMyPB22xSs67J6AlQSwMEFAACAAgAM429SB/fgr2AAQAASQMAAGMAHABpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2dyb3VwaW5nLWNvbnRlbnQvdGhl
LWhyLWVsZW1lbnQvZ3JvdXBpbmctaHItZGlmZi50eHRVVAkAA0GMS1dBjEtXdXgLAAEE9QEAAARQ
AAAAzZJRS8MwEMff+ymO+qK0MR1urvo0xwaCirINRdhLbM81mDYlubrOse9uMqfiQPDRl9xd7vf/
3wXCGAN+r1VTouUjQYKPH6b8AZ+uJO3CsJEq5xNUKCxyJVa6IUZoiRm0jSLLZVlrQ5jz5UnGl/jE
aiXoWZtyi1leUKm4xVJUJDPLF0Y3tawWLNMVYUWcCmSFYW5C6cuvvr9ra8yc9TG1FERR9K+XFRk1
Qm1XHQyAdeI+RJ04hcEgYCO0mZE1SV0FLGCzQlrwA+FVKJkLl4JzhsLAzvnYYwG7u5hOYeY6tdGk
aVUjuGU95wwuZzfXl5PxTvBNOGHk3o4GBMFhEidHYOUbQpok7WmSBBHABKsczb3E5W/MnwyGSmcv
sPaLbH5nv2idr2A9vB09fsBpnO7gftpte/2zD3jP/G4y3vf2eKf3SX/yM2wJ1gfkwr7gJOn9EAB4
CkxTfYNLmVPhyXMI1/MQjdFmHp6Dy92Hs2KBvpqH8zB2Z6bzbd1NuptNGLwDUEsDBBQAAgAIADON
vUjSiVBnWQAAAGoAAABnABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3Nl
bWFudGljcy9ncm91cGluZy1jb250ZW50L3RoZS1oci1lbGVtZW50L2dyb3VwaW5nLWhyLWV4cGVj
dGVkLnR4dFVUCQADQYxLV0GMS1d1eAsAAQT1AQAABFAAAABzSS1OLsosKMnMz+PiCsnILFYoSS0u
UShLzMlMSQQyFUoyUhUyihRSc1JzU/NK9Li4uAIcg4MVQoDCBUX5JfkllQWpCmn5RSBFQN0eIb4+
HkGuUNUIFVxcAFBLAwQUAAIACAAzjb1IcC6Yr3YIAACdIAAAawAcAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZ3JvdXBpbmctY29udGVudC90aGUtaHItZWxl
bWVudC9ncm91cGluZy1oci1wcmV0dHktZGlmZi5odG1sVVQJAANBjEtXQYxLV3V4CwABBPUBAAAE
UAAAANVaa2/bOBb9nl9BJNjJ7iB6OLYTP9IspnmgwM7MFk0xgwUWWFAWZbGRRA1Jx067/e9z+ZIl
WbK7QIp2p5haIi/Jc5/nUuhVKvPs+ugqJTiGn5xIjBYp5oLIV6crmXiTUxgW8jkj10ezjBaPZ2j2
RAWVJEafjhD8J8lGejFZMI4lZcUMFawgcz0VMR4T7kVMSpbP0KDcoBieSTw/+nxktrObLFjG+Ayd
hMOpnvPvaUZuaZLY+QgvHpecrYrYc6LJRP2pH2ROECyjMTqJ49jMJayQXoJzmj3PUM4KJkq8sABz
zJcUIA9IjkIzVDJQTuvBSQYaPRENKB20kA6Hw479BS6EJwinSW1S0I9En1E/1MtIImco9MduPKai
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
9MMfKybnn/5tfgnnjNvnGXKj9ttCNW4f7M+Ze1dXhEpmFI4+fzYvB3mmdtlRrKSn67LbH32vuArM
v0r4E1BLAwQKAAAAAAAzjb1IAAAAAAAAAAAAAAAATwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZ3JvdXBpbmctY29udGVudC90aGUtbGktZWxlbWVudC9V
VAkAA0GMS1dwjEtXdXgLAAEE9QEAAARQAAAAUEsDBBQAAgAIADONvUjiFaIFsgAAAGgBAABlABwA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9ncm91cGluZy1j
b250ZW50L3RoZS1saS1lbGVtZW50L2dyb3VwaW5nLWxpLWFjdHVhbC50eHRVVAkAA0GMS1dBjEtX
dXgLAAEE9QEAAARQAAAAjcxNC4JAEAbge79i2C4FHjbSNI9S0KEoRIJgL+IOJZkL64aa+N9zzT4Q
hC4z88IzbxKWKCFUMKEGnUIWPxAcSosFpSMAH1OO8hhjPkCSP969RERXqDbBblsP0g8WvITK269O
L+sYTmdtxywse9naXvXBX/ebtZ5ZHX7zAAsF1Vg1q+/n1Pr1ABqBvKdfl8dcXTR0gVSMoJRCMuJC
c98wy8Iz6sQII0YzI8HbbFKzrsnoCVBLAwQUAAIACAAzjb1ISzbARWgCAACzCAAAYwAcAGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZ3JvdXBpbmctY29udGVu
dC90aGUtbGktZWxlbWVudC9ncm91cGluZy1saS1kaWZmLnR4dFVUCQADQYxLV0GMS1d1eAsAAQT1
AQAABFAAAADtlUFv2kAQhe/+FSP3QCJY2zRQSE6QkqpRSRMlNFGlSNFiD2HVtdfaHQcoyn/vmBiS
UkWKxKVSe2Fnl++9HcvzZCEEhNdGFym6cCBJhic3V+ENjr8oqpbjQukkvESN0mGo5cIUJAgdCYuu
0ORClebGEibh7CAOZzgWuZY0MTZdYS6cUqpDh6nMSMUuvLemyFV2L2KTEWYU0hSFVoJvSMvt5v/y
bJ5jzNYBzcmr1+t/dbMypkLqVau9Hohmo9OFerPRhV7PEwN0sVU5KZN5whOjqXJQ3ggPUqtEcgls
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
JUEhg/7Vg0PZ1RTCdfyHFWJ0txD6B3FQlqcr8Or9bol+Yk7h3/+rP0mWscxcT1DRan5MoGw3F+bj
qLiX7wSXYzzH+/FD39zJM5W3myUrqe7q2NWHepH4eU//DOH/AVBLAwQKAAAAAAAzjb1IAAAAAAAA
AAAAAAAATwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mv
Z3JvdXBpbmctY29udGVudC90aGUtb2wtZWxlbWVudC9VVAkAA0GMS1dwjEtXdXgLAAEE9QEAAARQ
AAAAUEsDBBQAAgAIADONvUjsiXbJDgEAABsmAAB3ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcy9ncm91cGluZy1jb250ZW50L3RoZS1vbC1lbGVtZW50L2dy
b3VwaW5nLW9sLXN0YXJ0LXJlZnRlc3QtMDAyLWFjdHVhbC5wbmdVVAkAA0GMS1dBjEtXdXgLAAEE
9QEAAARQAAAA7csxSwJhGAfw59WrTuvgXKPhXRrc7oq7czQ501tEJNApzrt7IQgh0KyhIR1Ev0JU
tCtCLc1tgdDQ0tLk5iB+gAZ7QaQP0f9Znuf5//gPyqWCltxNEpHmFd0KUZwTxWrqpkzu2t0LudKt
fK0VnonwvHnZoIx1GAnDsGwnMg/MQNSNwAlEKGy7bkW2GfrO8keWWLNSyNH4Y29GtP/kuUcn12z+
9awR31FMf/kQD/rD+43Tl8/vx6tJimdvicUUVedZrmfeeonVvQpvGJum/l79XVGKx43+uiBTNt2C
w+FwOBwOh8PhcDgcDofD4XA4HA6Hw+FwOBwOh8Ph8P/one1ZVR0tXtOc5Hj5kjvO+d1fUEsDBBQA
AgAIADONvUg7saMaQbUAAOW5AAB1ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9ncm91cGluZy1jb250ZW50L3RoZS1vbC1lbGVtZW50L2dyb3VwaW5nLW9s
LXN0YXJ0LXJlZnRlc3QtMDAyLWRpZmYucG5nVVQJAANBjEtXQYxLV3V4CwABBPUBAAAEUAAAAMz9
Y5Bk0RY2DJZt267qsm3btm3btm3btm3b6nJ1uWq6773vxDcR8/edmD8Zmeec3LmXnr13PGutjJCX
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
/AhXxlNOeTOwZV2LbbOl8qUJBsKf4SxuvktDk0M9BMgEuMrnxStY3R2qggGRwjLC+XBTxCy5wFoq
WtlgP1XYyB4yEmVANMkjzhkZDQW+HED2PZSEIwwNzRcZAXKo+Lg3WT4/2kerw9/967BcBh4taEeq
xxtorJU80l7BNjoV3RlClizeE4ZamxeydmIH7H+utWjJnjfVITVSg8Po5RgJFepb+kx+8bw50bVZ
tMH5Llm9uZJUeWb3XLNXDGau7n2M6siu+JaTYKW0YZh3ztBoFzmUpmQ+XJq25jflqGQ4DLK3v7dA
9V12G337e4tRIrKyjyxvAIjTm66f7guovOeLMKfbwE128LZxHMlhIFMGWCSc8Swvm9jiopd1iAtL
vBV8rpSjNTgeI97TjEodzAanjkg395nIDt+x7Kvda/XApJbTTYvL6FZWGYAs5FvoEDm83mEYDkzM
loPknANEQrw0dnEEKhN5DNfcnCGWeaN2t9K9UgZMraqkE6nRV7YIz7X16mvMX93sMVpw1073OwQ6
yy0aKK9TAufW2Zw+/nUu2ldPX/CckTnRJ1sin/qcS4M98QaW8qGVr1/E3g7ub6dkAAykspAN6et5
CyJJNJoihFHXfjR9jyeXBdiivVEYj63q0fCnNwr71Hg6TImaADRO7qdM9deDw4gMyYAiSn+sJ4oU
niV9ReLrCxccIT3KSGEa4XxqArC9kbVKBMM7Szl0W2BQYcZo4uszTFmteA8rlMQWMRM5ufa5nCoF
FGf4W4vvQXwHn98le6BN8yQJCWYanLbw63KTEnrU6F8gen6uilGiG3tLIxhlmj8Jo/JXHtrCHuRJ
S+EAR2o6Vr+ZJqyQQkm81Bo331ykdg+apfmu6Sty44sbtagckHKHWIJeoZSD3nRKEsXSZKEB7tzY
6r8RTlRqVdg6BWnwt7c+0CNiPCxWKtSR8NdyfROkg8WFxbZeIO0Iz7WUyFkPIF4fMhKK4tWiRsH/
B1BLAwQUAAIACAAzjb1IjLq8Q70FAAB5EgAAdwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3MvZ3JvdXBpbmctY29udGVudC90aGUtb2wtZWxlbWVudC9ncm91
cGluZy1vbC1zdGFydC1yZWZ0ZXN0LTAwMi1kaWZmcy5odG1sVVQJAANBjEtXQYxLV3V4CwABBPUB
AAAEUAAAAK1YS2/jNhC++1dwDRSSkUj2Zm+xYiB1AjRAii26uRRBDrRE20QoUSWpOG7h/97hQxIl
y8l2sznEMTmPjzPfzJBJPt18XT789cct+u3h9/vFKNmqnOkPgjP4UFQxsqB5yYUi2XT3JZ3uyCoq
GVZrLvJIEankVOtMJclxoWgqpxvBq5IWmyjlhSKFmqotiTiLCCO5/trsw5pUWKhIkLW2FM1mF7E2
lkyt41Ei1V5/IviJaY43ZAk2MS2IQP+aVf1TckkV5cUlwivJWaXIvNnLsdhQ2Pk8K1/bVV4pBkbs
MgIdmiFJ2QsRVuZgfg+6XSCabzznGZUQjv0lWjGePtfqnr6OguBMejoWVLTiSvH8El002A5DeqsK
xApPfUcztQXsFyR/Q01lfohwlkHIL9HMi8SgGsMrwjzNNWxEa5xTBmeMIPvPVEVyLxXJI70370pK
+o8O6+chH/YgdSAOPccLCHWR0RQrLobiq/CKkSgljLUuazwpZD0vIllinep2f8VFRkSkeAlRbjK9
YrjNVAPPoosl0DQFsnsQFHlVUUZSLrClWVWAVU2g2kgydURNpq5yVjzb6wLSoFHKsJRX4/qoY0vo
RIlF4yNR2QJon/VWXO5pdjUmr6UBFpkMjVGGFY7UviTt1hjxImU0fb4ayx1V6faB32n2hmpL5WS8
uHVyyKwmU2v9Hb84VRVmA17txns+r43U//KY0fV6wJ9efs/bDcic9AV/iVOhp0VZKWQdpVuSPq/4
69iev4AOoIjxvMXFBgQU32wYubYb4WSMjAbRGTR2FomtIuiRrf7CyV8mU7M7FITTKNJ9CuzvJNqB
qUqIETFnXmqh9/D0LDWk+AAsjwkfAuXsOM58AFBDldNw3oBhtA2VjiFYDsFvXdiL0SjJ6Etd391J
4bhbwnCjr1fjN6feeHHPsW7QcRwnUzCpR18qaKkWI7pG4Q46I9/FWvzPqgDjk5FtTPX3OKvy8lo+
QKcKJ/PR6AULlDYz6wplPK308I3/rojYfzM9josw6E23oNbV0EHN9sCgJkuALr22GBhdvQZnZIDf
VmLjNt4Qda2UoFCIJAy8aAQTdIaChoNxWWyCyXlr2ARdG25gg6lbe334dX+XhUG3GdbKB/sRWB79
ZLTW6A9g9RtoH6mm2k/GqU3+AMq26XoYD44ODgqxYJa8KhSwYwa766pI9VCsRZY8LxnRXXFkz3R2
NqBs56Zm9pDlBH2ZNNAFUZUo5u2cllu+szHRZ3+sk/00sTLHpW7XTc3pFagysyv1zuH4BNZ2JVh9
ApMQOG5Bdna01CbNRgw3q9sXCOM9hTsRJCgMtJXgvB+RjpIUKVgEJ3bRHtLudUF1p5y7QtfIdGqM
zgN0QrDntocoontlUIeiG8HGwlMvIIJIou41JWSTTmiTKDR+4QKIaGE6RZstaxC2nmLDpdi0Rh2a
WJCcvwCc+oIV9Ly1qOAKSDZc7G+Maeu35b8gcB9MyXJLWdYRtb3s3BNdUyGVEZx4BOocy653zPSB
Q4JPoz6mmwOsIxE3Hc4MFr8P98uvO5WDSeym5bw15hrQd5pyZTFkyHSI7zRjGpRnxD87aCwrIUCD
7b9B9urK0lx6hzBew9Nd4A3auGxKPwUt3/ziUe1zyEfZu6zVRa29nuzYVrg9d+twuI3oHaAT8cR4
OdRszFzWgb2Dp7F4wezuZu6VwIBxh3fQoKFu1xpk1F0WgOT1cmiFjN45PDdns37tHVv34tRzMek8
RY0v2Mei562Vb99jx2D1U2oNxZoNpc6DHfo9L7Wsu3ON+W0ezhs18xgE+cf2QnPeXBbO3TB+auXh
bOQV5I1ebL59XYe+c7+t1MDunFZo1c/Q5wn6xdlgpNiorStF7sVRKyvbxI3kY2PpaX5cKVryyVZw
txRWguDnVqGNu4+r/XIS2wHtoGsSX/bTlY2HviEODJE+ajtL4F3sbrHwHLMv4qn9D9N/UEsDBBQA
AgAIADONvUhVIOMOFAQAAJYKAAB6ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9ncm91cGluZy1jb250ZW50L3RoZS1vbC1lbGVtZW50L2dyb3VwaW5nLW9s
LXN0YXJ0LXJlZnRlc3QtMDAyLWV4cGVjdGVkLmh0bWxVVAkAA0GMS1dBjEtXdXgLAAEE9QEAAARQ
AAAAzVbBbtw2EL37K6bqwTawkmzDDoLNelGgzaFAEBeoLz1SEndFmCIZcuTNpui/95GSdtdex02Q
S3VZi8MZvnnzHuXFT7/d/Xr/1x/vqeVOL08W048UzfKE8Cw6yYLqVvgg+TbreZW/zcYQK9ZyaTVJ
LTtpeFEOK0NUK/NAXurbTPTcWp9Rit5mzRdphBEZtV6ubrNOKM12Pq4W7KXpWTz8so6BorZddlSw
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
kYbzbZfbq/pShQiXTt4+lDE8QMbcSBOrYRLGnvSsaQmASOz7RZxl7Jcj+KsBFqHj7tRfBsV0Uc+Z
zq+0s19wabUbvG5D+zYfzvwnBNiTHDeMy0i2/1SkXe9WzGvDvMAZ2Da5CrD6E0eiP8jDpM8veQ6L
XHDkuxr+o+Wm8OUD667k1vVYpakLO+1o8NsuveHfrz1OqG2c974XQWF8ibcR8FC/7eElgzDyLtGy
4fKIdVrCdaodzIiSQl9L/ngk1/E+MwflY2nqNQ8kaUERJngrij4FTA8F7O+z6CdDn9x1dwkeqrwv
bI3F4Kp/PUBtfcfew4Q91f1uXM/bkdL7xjZVVtX2oQnhQpF5kmcvhkUhPAGQvkGK0YKEf5YeQlzf
AEAyUudiTMsaWLZXM4clQtV+j/BpTtgEtwmTOPLYLIjzO2wMSMV/hz58VQyAQqrsz3ld7wLAmBPQ
JDP1/UfOh3cdoZjSn5B5btU5+yNh2sXSK7K9n61zd+bXb3wCTLrzUgh9tTSlZ5mNV3MAqlVOEpiJ
bDvsUf1b+2fidjNP/5dBez9bbjltczPnvi8w5n2yNcpM5n0+6/wa7+h0XK8GEoSXj07Mb5WyPVNl
L5Pr/fBzpmDz0zW4DGApQBZHV5wsW1UWENUk80P7Lh1FAbC1WZ+Jftkfzo0iFbDLIuU0CIDZPkol
tMcwODB4Z0Or0x72hkoAsQEAU8viNgIAE2NmqlPJVSjwvD4rAFihhw+NtK9ZSOOUeaHO8Wp5seY1
4/AZL+H38FEcgPEA26d3f3X9KHv4snwU4cuVWF69qFr90fCC8vBnop+Xc7QfaLk/TF4SBqM+Bz4E
I/GATRBvNivsoRz9343mPfaI9szEiwMSuCewv3dvFd4USOj7/X9QSwMECgAAAAAAM429SAAAAAAA
AAAAAAAAAE4AHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L2dyb3VwaW5nLWNvbnRlbnQvdGhlLXAtZWxlbWVudC9VVAkAA0GMS1dwjEtXdXgLAAEE9QEAAARQ
AAAAUEsDBBQAAgAIADONvUjiFaIFsgAAAGgBAABjABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcy9ncm91cGluZy1jb250ZW50L3RoZS1wLWVsZW1lbnQvZ3Jv
dXBpbmctcC1hY3R1YWwudHh0VVQJAANBjEtXQYxLV3V4CwABBPUBAAAEUAAAAI3MTQuCQBAG4Hu/
YtguBR420jSPUtChKESCYC/iDiWZC+uGmvjfc80+EIQuM/PCM28SlighVDChBp1CFj8QHEqLBaUj
AB9TjvIYYz5Akj/evUREV6g2wW5bD9IPFryEytuvTi/rGE5nbccsLHvZ2l71wV/3m7WeWR1+8wAL
BdVYNavv59T69QAagbynX5fHXF00dIFUjKCUQjLiQnPfMMvCM+rECCNGMyPB22xSs67J6AlQSwME
FAACAAgAM429SFvmRpyGAQAASgMAAGEAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL2dyb3VwaW5nLWNvbnRlbnQvdGhlLXAtZWxlbWVudC9ncm91cGluZy1w
LWRpZmYudHh0VVQJAANBjEtXQYxLV3V4CwABBPUBAAAEUAAAAM2SwWrjMBCG736Kwb3sYqtyaLJx
e0pDAgvb0pCEloVcVHsai5UtIY03TkPefaU0bdlAocdeNDOa7/9nBGKMAb/Xqq3R8YkgwacPC/6A
j78kHcO4larkc1QoHHIltrolRuiIWXStIsdlbbQlLPnmouAbfGRGCXrStj5gjldUK+6wFg3JwvG1
1a2RzZoVuiFsiFOFzDA/oA7VW9tfdQYLb3xOHUVJknzhVUVBrVCHRUcjYL10CEkvzWE0itgEXWGl
IambiEVsWUkHYRz8FUqWwqfgfcHA0fc8UBGbXS8WsAwNq0nT1iD4TT3m5T+XtzczYcXaClNNj7J3
zssT/3y0IAi+ZWn2HZx8RsizrPuRZVECMMemRHsvcfMR8ymDsdLFH9iFffYfs2+0LrewG99Nfr/A
eZof4WHe7wbDyxf4xHw2n556B7w3eKVf+SV2BLsz8uFUcJEN/hMABAps27yDG1lSFcgriHerGK3V
dhVfgc/9n3NijaFaxas49Wehy0Pdz/r7fRz9A1BLAwQUAAIACAAzjb1IXxSzuVwAAABvAAAAZQAc
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZ3JvdXBpbmct
Y29udGVudC90aGUtcC1lbGVtZW50L2dyb3VwaW5nLXAtZXhwZWN0ZWQudHh0VVQJAANBjEtXQYxL
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
tm6tMoL5v3V74K4CakRfm1IlchXYr25XYsVpCT7lq1fHqZSlWAQBfo83/pqxNSwqqVChq8eCjEYi
eP9HRfhzMPIn/rl98aG19N+L42vYV+93jdo7r1hMPOVD8gRyfwVPK2e+mswaSwCU/VAYsfgZfiAf
ADcW4tWpuwmo74Xp6Dr4DfwJNSu4xRIHd78/BL+T6G9U2p/XFc3i4C3wLhYkgEgBc3qSQIWF63uV
SRHQXEUwiYOn8SqAsuFBPElo8nMtJgL14TIQJMcFRKQIlP9KdcezSRJA3nilBweolN5Olx70PRXO
fLmRoM2orUTjG9Lp7oy+2w+Nqzs/Mteajoi68KD2t6KtHBSiwgnqjwXbDuT0egSWh/nrlhTUhKbM
D0UkymWvIJD76fUtMc4DlawQeBHQvRTG8xfA+FWAjV8A2LuUqruVkOgRKl4MeS10QS6RDSz/q0Cf
fK82nX6vwC5eANibnx4eNBWXnEmm2jz9UaFEEAM/v/v1F8hwDE1amd5Z32/lvopOl1/B2PpnuH4B
vR4uXlZoL/Y9uNgXlDiNHVhBnSbRn8Oz8C9I8TaaheHmIgz/N3u/KODzYcAIvSVwKea/AYd+d7jH
/2+Gnhw2tA5c9Ekl5+fvDv90H/5aA+ij0KfX/7j9p1FgdjazClzOJpvp5fwbKnCxX4GOE968vev6
QKkwmn5DDS4PaeB0MN9BTtRUV4lxOP22SswOK2E+kSNeFVvw+san0C/QD39UTC4//cv8Es4Zt88L
5Ebt54V63D7YnzP3rm4JtcwknHz+bF4O8kzjvqNYSU83Zbc/+mpxFZh/mPBfUEsDBAoAAAAAADCL
vUgAAAAAAAAAAAAAAAA7ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3Nl
bWFudGljcy9zY3JpcHRpbmctMS9VVAkAA3uIS1dwjEtXdXgLAAEE9QEAAARQAAAAUEsDBAoAAAAA
ADONvUgAAAAAAAAAAAAAAABQABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtdGVtcGxhdGUtZWxlbWVudC9VVAkAA0KMS1dwjEtX
dXgLAAEE9QEAAARQAAAAUEsDBAoAAAAAADSNvUgAAAAAAAAAAAAAAABcABwAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtdGVtcGxh
dGUtZWxlbWVudC9kZWZpbml0aW9ucy9VVAkAA0OMS1dwjEtXdXgLAAEE9QEAAARQAAAAUEsDBBQA
AgAIADONvUgHFEHdxgUAAMIuAAB4ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtdGVtcGxhdGUtZWxlbWVudC9kZWZpbml0aW9u
cy90ZW1wbGF0ZS1jb250ZW50cy1hY3R1YWwudHh0VVQJAANCjEtXQoxLV3V4CwABBPUBAAAEUAAA
AO2ZbU/bSBDH3/dTrNIXVyTaeJ/XliqVh3BFooBIrtIJ8cIkW+I7x0b2poSi++63ayd+SGxih9yJ
VkFqkcjOzP5nZ+a3C0cX5/2Lsx740uv3D37vOcD3AgmgJRxwJb/JSAZD2YuiMHLAkRv8psA3LxiB
727kube+dICSsToNTk8idyLf+O6jjICrwDtr39oDsfdDu8KMzSC0yBugPQYjGX315MPSIi7ojApa
6cB8VrI/9MPh3+Dp8+DL2T/1a7PV4egRPB1eHP+ZLhb70F6sZvYMWpwnq5e8H59+XXGeLmfz5UsG
/d7R4PTivNLIJpnNsghUZYBEYf3CYiBnCjy9Vfrbso2WPEO8ZAOAWQiiaZCvffBGamwWO6DTn04m
bvTYqdvYkhzCC9vjVdub211WJkAs7a2BIl00y4qe08S0ps9uFMg4BrFy1TTWP6iMehokJf7UvzxY
OS3MdVRwPQz9MPr49iT5ugHXt3fZTyz9dbOyrxo9ENKy6xXDJUlzg1QU5lpC0nudZ/J91VuIwKSQ
coL1tsNIL3S02/sZiEPfG4G3VvK1d9PsQCDZhwuvWOAZpM8fyXz9fP8CawGtp0htSWalBUm5u9o1
C7VWD6KurqhplZNwqjfbaRKF2HkFrwuTrp3Xr4lDG4WgIi8pe02IdO38NGwdIkl0XJvhwtCDvFhN
yKqvwLpJaT/bfWcHh72V8U0rm74U7fT88o9Baof2F1uEaAZR46ZkWTxiNelJlieRJOcETlzP7zTC
AIK4kBPB8H8LAm435wA3BXEsldZSURED05jgaXBweNarhICANJ8wQRjIm6qtGi99OVReGGhnn3sH
x5UyefU4MtZX4YO2vGpkVjI8kr5vYi5bMqINy1uvmpCpJnAdfbTAUP+L4o8QDPV/NxUFU3Mw/Nmh
U3E8fGn0XMl46qtOc5mM5NMBwQ2Ewo2EQpTnV8BGUucmqVgBtdiBnk3gfIkAa/RiURCsL3/tBaPN
BBfGMLObCS5OY2aa74u+rLh3srO+cfLrqx4p5asY26h19GYaJDlrVsrz5iGkcEFKrkOFmwbS2U7y
Pv8sTfY2ekmPYSjmu0C8WcZTkzTjyNymyoN7rXDdTUQU2omhSqnFutpKNxWl6tcTpm21YmL6aSz1
msm97yoJhmGgZKBiMJnqLruVwO00copZ5pSZO/ZxOJxOtCN9Vbsz38E7HUE9ZoH2WqR3uXl1UbbM
b6PmTQn7ztWWj5NwGu+tJBlTvPpGaYhcZK7F1cVYz16UXI0rr8KBfDAv20WeO2tk5Q8ALYjYBUFC
tHoBNH4H2ITMmNVEcOk1IKgZeWOl7p1uV2/d9cdhrBwhLKs7VhO/G8uJGyhvGHfjYeTdKy+4ew+7
aizfL2rrvfSlyUl3JHXSPDMb42724aLCPxhvDhQOtjoNd4ns7ILHDIliJe8/VW81knE4jYbSBI7V
OH1xfvgrdiAWVouQJEsMoaYWjLe2IYnNHISaRqSZSH2COuKdH966vh4MI/np/zsW7tBOY2LpgVBi
Fm/DLARpAVr4GWjBNdCCL4IWbw8t/kJoQZsXqMXtSq3VUxW+iFqZVkxmFLcVu0Vq0cwpqqaWFgwS
cjVzSHF2c+NJt25Gu7ygU97xlifzQt7xX413Yse7+WDFeMe7V8g7jNrwDmfI2oB3mKMt8Q79bLzD
hBZ4Z7eZqmg7vCNixuEvyTstrQC8ZIeurvrgDoy87+Bh7A3HwIuBGzRzzGH2O29kBmQv7SXgBbFy
g2FrouYt056oaEfUHVFrRzeFO6K+QqJSqw1RSQbFDYhKkb0louKfjagUwk1fkHg7RBXitbwghagh
qgLl3322RSskZqAViJosDXQ7taVgXubtKYh3FNxRsHbcMraj4CukIKNtKMiQvTkFmWBboiD52SjI
mNiUgmQ7FGTstVCw5q9/uoeUHG2OQIbKCHQ3h2Be5e0hSHYQ3EGwdtoKsoPgK4SgrnsNwX8BUEsD
BBQAAgAIADONvUht2ooqogYAAKM0AAB2ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtdGVtcGxhdGUtZWxlbWVudC9kZWZpbml0
aW9ucy90ZW1wbGF0ZS1jb250ZW50cy1kaWZmLnR4dFVUCQADQoxLV0OMS1d1eAsAAQT1AQAABFAA
AADtmm1v4jgQx9/3U1jsi9uqZRM7juMgrdQneltdt60Kt6vTqi9ScEvuQlIlZqFX3Xe/MYEkhAAJ
sKt2BVKLBB6P/+OZ+dlAvV5H2pfAG/RFpJ050tGaX1vaV3H/hysnTycD1+tqt8ITTiQ0z3kOBrIu
RSTroYgGnow0t/8UhFJ0taHR0Ybivv7kOfIhCPvjYZHWk31Pi0Tf8aXbibSoE7pP0vUf61iTPQGD
+spA1MFFX/hS64oH13elG/iRlrzZCXwJb0Z1MXoSHfD2QY7k3sHBwVtbv9ORA8cbr/7oCNXxIcbo
AP5Tho6O9up79ZvjVgu1ewJNbdHUFvUHkUT3AjnoLOgMlLPz0HlUz+g9DJbPic0+WnsiP/DRD5xs
bOdAgPxH1HW/o2HP7fSQGyHHR804gsj1I+n4nc0cyyWOpRhJ5AfdjTxAcohu4fTOVhxAcuUlSOdR
BcftCvSp/fkSPbieQF7gdGEhro/ch9Dpb3m7frRLmbVQzoau7KEo6Is4iD/fd35jS0dg7+D0+qp1
fdlEn5ut1vHvzQbyXF8grPMGuhUPIhSQ1M0wDMIGOnX83yTM5XfRdyd0nXtPNJBqOBf+xbmace8A
mpUIkQML1Q/1fRS5/8JcBmMjjHW6d4BgTr8rwi+uGOZGWdwcmdwsnkK9OTvDiRd0/kEvSt1/SwYn
w4PuM3o5uT77Kx7ND7E9Hc7sEdYtKx6em//s4svc9PF4Nh2fs2g1T9sX11eFVjZNjfJCSJEF4VmD
qUlbJdnLO5VreSPQPSLWrBGKszIc+OngoduFtIHRDVRrDfp9J3yuLVxbThK1Miu0Clc4MbwpjALP
L6+EKkigOVXLdDHQ9ckJoS4iBI1ZDiJ4odjvhT/O+JfWzfHcrhkW+EXfOoEXhB/fnY8fd+jb/WPy
ig6Pu/mVLZCEsTk797xlTtXEItZlWKBiXIy1ZVG/bU51GDQTeGrAyoMQBjZg3qcRdCzP7aJ3+vix
f1dyWzAF8k81cGOEzRUbMzGYSOAGaKjcWRYnZ5JjmM7WWsXKMfWC7ViUYKaqm/NgAOutlfJD7TSZ
VzqKB09SWXkyyzkxeZpc9ion8eDJptjgZBzvaHGgM60QW9m8IvqSZFzUQO3lxXh5fNKca+xmcReY
8XdxdfNnOzYkh9NVYjLCpHyRssQj1UvVKEtDScf7hc4d16uVIwTBRiYwnBk/mhGWXQERlkqNMwHH
RK8oN9qqVNFL+/jkslnIB47NtOvAWU3cFa5WTdOCSxLcQGC2T83js0Kp1oIepcxvgyGY3pazm7E8
FZ6nvOZNGQXL2dUXNc5YFvoWftRRB/7C6CNGHfh3V5Q5C7bHWt6ICjbJyrWj2/HdsFZBKaNpvyB4
Da14Pa2YpDHmuJzaiU2sl2PQ24Z2ha7ybFgh2eAZzXBOrK6ZrKk505yZXVJztkczVYif4TzjPIpa
iRpKz7rQYmZPbGy9KoLllIl0UrmmldYRpZlT1PjMlDmLEAj5OPiT9+KIb6WsoDVjPlkGsUqGPbaJ
w07UkSvXzVdqh8KiPFNZjBSqzebXdgorqxYuXYZZWa5BVWktv5bWys1qsGRWps7jKz8AqhLifCFD
claMcblCjtH73gHT534wiPbnAm2YRsGdpiSLiTpAL0jKxVAm40N04aHZF0N1J57GurZKWXpbAE3U
zmjivNp1ofSlwaZ0xPRSmmeuDtxULbAn5VND02DxjtcLItngXNe3+4HnBzVbA/OGodfKLpPYyQmQ
KTpFUjwdFa81FFEwCDtCeY5kL76lfvg7amCD61V80iQ01FQJoaar6pParEFIaZdmIhN2EVw+esG9
40GP6Iqjn7czVsOslWcYtIYZilmVKEawmcGYsQRjeAXG8GYYs9bAmLUpxrBtZThm2YVyi3ss3oxj
iVyDjkyjst5tcsxMZiXFHEs+gy45o2kkpzprXLdrAjDN7BiBVsXt2RSB1i+IQL5DYNJoDWOHwNeJ
QINUQqCRQGwdBBoW2RICyRtEoEHNDALtKj2WbAmBlI8s/KsiENRlGLjku/aSM1s4+eycqG459w19
VcqmxVOdsmRH2R1lV/RyE+8o+zopa+qVKEsTTq5DWZPYW6Ks8QYpa2K87kXT2BJlOX89F03OF1A2
/xOxyrjFVDW3wh+WVQVjmu/VwWjswLgD44r2y9gOjK8TjMysBEZG7A3AyDjbEhjpGwQjY3xdMNIt
gZGx1wPGBd8k5n4AW52KjMxS0dmAi2m6V+ci3XFxx8UV3ZfTHRdfJxch+4GL/wNQSwMEFAACAAgA
M429SG8TXUe3AAAAswMAAHoAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
c2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS10ZW1wbGF0ZS1lbGVtZW50L2RlZmluaXRpb25zL3Rl
bXBsYXRlLWNvbnRlbnRzLWV4cGVjdGVkLnR4dFVUCQADQoxLV0KMS1d1eAsAAQT1AQAABFAAAAC9
kU0KwkAMRvc9xbfUYwgqLhQEe4HYiW2gk5FOavX2thVERERsdTUQ5n0vP8l2ttshLRjG/liSMbKg
xmoRvo6GPYMwD1nt29qyorx7MWk/2+XOTJF8maNB8busniNR0RxOTmgKyQpIBCkWJfeYaDTSbJDX
3niNzwYNboiAo7F7mU5j5FtLPA1glHebEcdYpZs1DlIyykCu7UMUcqjIj3uqHxvtkehcjViBGDzf
Nvh39fNRP50/uQJQSwMEFAACAAgANI29SGAFJbscEAAA46YAAH4AHABpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS10ZW1wbGF0ZS1l
bGVtZW50L2RlZmluaXRpb25zL3RlbXBsYXRlLWNvbnRlbnRzLXByZXR0eS1kaWZmLmh0bWxVVAkA
A0OMS1dDjEtXdXgLAAEE9QEAAARQAAAA7V1rb9tGFv2eX0HE2KYpLInD4VNuvE1seRNsmgSxt8Wi
KIqROLKYUKRKUracbP/73iGHT5GyZTEdRo6DxJb4uufecx9zSCs/zqK5e/zoxxklNnyb04hIkxkJ
Qho9e7KMpj3zCbwdRjcuPX40dB3v46E0vHJCJ6K29PmRBF8RXUU9m078gESO7w0lz/foUbxp7Ac2
DXpjP4r8+VBCi5Vkw8/UPnr016PkdPwkE9/1g6F0IGMr3tY/c1x66kynfPuYTD5eBv7Ss3vprlOT
/SleKLlC6LuOLR3Ytp1sm/pe1JuSuePeDKW57/nhgky4gXMSXDpgMqJzSU7eWvgALsYRUBcQXdHY
oBmqWIoxrjl/SLywF9LAmRY2hs4nGl+jeNGeS6fRUJL7Wvq+7YQLl8BJHA88wy28duxoBgfL8j+4
fcS2He8yOzKxjYeG/VSODjfX8WZgVJTtPvOvaFBBpGnaUZOzKU3c0GcxeQ3XCvnBU9cnACNwLmdR
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
6VLYaEmXyoeL7XUptUO6FDb3U5fC1t7pUqr8oHUpFT0sXUpV9lCXUvHXrUuZaic0GFX9pkut+UT7
pktVXaLvjy4FLatBl4q/Ff06cSkJ/pi6PgGcfHNx3/zb2LdvYBu7wPGj/wNQSwMECgAAAAAAMIu9
SAAAAAAAAAAAAAAAAGEAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL3NjcmlwdGluZy0xL3RoZS10ZW1wbGF0ZS1lbGVtZW50L3RlbXBsYXRlLWVsZW1lbnQv
VVQJAAN7iEtXcIxLV3V4CwABBPUBAAAEUAAAAFBLAwQUAAIACAAwi71ITZ6cTFgAAACyAAAAhAAc
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5n
LTEvdGhlLXRlbXBsYXRlLWVsZW1lbnQvdGVtcGxhdGUtZWxlbWVudC90ZW1wbGF0ZS1kZXNjZW5k
YW50LWJvZHktYWN0dWFsLnR4dFVUCQADe4hLV3uIS1d1eAsAAQT1AQAABFAAAADLSaxMLVJILFHQ
MNAx0FQozqxKVbAwMKgwMzDgUlAISs1LSS0Ky0wtx6EkhwjtTjn5ydkK1R4hvj61OJXCFeenVCpU
O/m7RELUWuhYQNWaW5hUmFqYcAEAUEsDBBQAAgAIADCLvUiOtWDTJgEAALcCAACCABwAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUt
dGVtcGxhdGUtZWxlbWVudC90ZW1wbGF0ZS1lbGVtZW50L3RlbXBsYXRlLWRlc2NlbmRhbnQtYm9k
eS1kaWZmLnR4dFVUCQADe4hLV3uIS1d1eAsAAQT1AQAABFAAAADVkMFOwkAQhu99ijlq2mVKAO2x
EkxM1GiAQDwu26ls3O023WkoEt/dBaueSLx62mTz/d/8M0IIwJUzrSWPM8kSb9cLXNPmXnP/TFtt
CpyTIekJjdy7lgWTZ9GQbw171LZ2DVOBu5HCHW1EbSSXrrEnzOOWrUFPVlaslUevGl2zrl7FEHlL
AbLHAIkwwlLFeP6jIK+oKoJIbFyxF9TVpMLkAXccxXH8n3eRiltpTpvkOYhhMoJ4mEwgzyMRieeb
xQKWfRZ6GUgPEn5F4EoILeDo+2YGIeUZjJNFqAll42zIlNoQBG8cbkANSIaLNEkvwet3gixNu6s0
jWKAeRBTs9K0O8f8STA1Tr3B4W75+PBxnv2hj/UP06fZyxecJVkPX2fjbpKNo09QSwMEFAACAAgA
MIu9SG5qrwBNAAAAVwAAAIYAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
c2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS10ZW1wbGF0ZS1lbGVtZW50L3RlbXBsYXRlLWVsZW1l
bnQvdGVtcGxhdGUtZGVzY2VuZGFudC1ib2R5LWV4cGVjdGVkLnR4dFVUCQADe4hLV3uIS1d1eAsA
AQT1AQAABFAAAAA1y7ENgDAMRNE+U9wE7MAGSLCAwReI5MSIuGF70lB+6b+0zOuKjfU2CYLGyhaQ
DoGyH2wqoz0jLmJ3ff9nGqoHzEVLO5Efr8PkYkRKH1BLAwQUAAIACAAwi71IpzhKdvoHAACiGwAA
igAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0
aW5nLTEvdGhlLXRlbXBsYXRlLWVsZW1lbnQvdGVtcGxhdGUtZWxlbWVudC90ZW1wbGF0ZS1kZXNj
ZW5kYW50LWJvZHktcHJldHR5LWRpZmYuaHRtbFVUCQADe4hLV3uIS1d1eAsAAQT1AQAABFAAAADV
WWtv4zYW/Z5fQSTopi2ih2M79SOTRScPFGi7LZpBi/20oCTK4oQSXZKOnZn2v+/lS5ZkyZkFpkC3
g44l8pI893Xupea6UCW7ObkuCM7gpyQKo7TAQhL15nyj8mB2DsNSvTByc7JgtHq6QItnKqkiGfp4
guA/RXYqyEjKBVaUVwtU8YoszVTCRUZEkHCleLlAo/UOZfBMsuXJnyd2O7dJyhkXC3QWj+dmLnyg
jNzRPHfzCU6fVoJvqizwovlM/2keZE+QnNEMnWVZZudyXqkgxyVlLwtU8orLNU4dwBKLFQXII1Ki
2A6tOShn9BCEgUbPxAAqRh2k4/G4Z3+JKxlIImjemJT0AzFnNA8NGMnVAsXh1I9nVK4Zhk1oBZZx
CLc0UwUsjuMvHD6cZbRa1SstNuca/dT2joNLqwJAqVq84M9EdDSaTqfLIWMTYs0Qap/8AGdJtzhn
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
dC90ZW1wbGF0ZS1kZXNjZW5kYW50LWhlYWQtYWN0dWFsLnR4dFVUCQADe4hLV3uIS1d1eAsAAQT1
AQAABFAAAADLSaxMLVJILFHQMNAx0FQozqxKVbAwMKgwMzDgUlAISs1LSS0Ky0wtx6EkhwjtTjn5
ydkK1R4hvj61OJXCFeenVCpUO/m7RELUWuhYQNWaW5hUmFqYcAEAUEsDBBQAAgAIADCLvUiM8b0T
JgEAALcCAACCABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9zY3JpcHRpbmctMS90aGUtdGVtcGxhdGUtZWxlbWVudC90ZW1wbGF0ZS1lbGVtZW50L3RlbXBs
YXRlLWRlc2NlbmRhbnQtaGVhZC1kaWZmLnR4dFVUCQADe4hLV3uIS1d1eAsAAQT1AQAABFAAAADV
kE1LAzEQhu/7K+ao7KbZ0lb3uJYKgorSlhaPaTJrg8lmSWbp1uJ/N62rngpePQ0Mz/vMB2MM+MqZ
1mLgM0GC364XfI2be019mbbaKD5HgyIgN2LvWmKEgZjH0BoKXNvGeULFdyPJd7hhjRFUOW9PWOBb
soYHtKImLQMP0uuGdP3Khpy2GCF7DCCLIyzWxM83FAaJtYoitkWhGHYNyjh5QB0laZr+51uEpFaY
0yVlCWyYjSAdZhMoy4Ql7PlmsYBln4VeBiKAgF8RuAriFnD0fTODmAoExgkV14TKOxszlTYI0ZvG
H6AHQXCRZ/klBP2OUOR5d5XnSQowj2L0K427c8yfBFPj5Bsc7paPDx/n2R/aqT0cpk+zly+4yIoe
vi7G3aQYJ59QSwMEFAACAAgAMIu9SE9YNaJMAAAAVwAAAIYAHABpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS10ZW1wbGF0ZS1lbGVt
ZW50L3RlbXBsYXRlLWVsZW1lbnQvdGVtcGxhdGUtZGVzY2VuZGFudC1oZWFkLWV4cGVjdGVkLnR4
dFVUCQADe4hLV3uIS1d1eAsAAQT1AQAABFAAAAA1y8EJgDAQRNF7qpgK7MEOhNjA4k5MYDcRs/1j
Lh4//JeOPWec9MckCBqdPSATAuW82FVWj4KoRKXo/2xLzYAN0dZvlHf4MqUZkdIHUEsDBBQAAgAI
ADCLvUjHzg6P+wcAAKIbAACKABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtdGVtcGxhdGUtZWxlbWVudC90ZW1wbGF0ZS1lbGVt
ZW50L3RlbXBsYXRlLWRlc2NlbmRhbnQtaGVhZC1wcmV0dHktZGlmZi5odG1sVVQJAAN7iEtXe4hL
V3V4CwABBPUBAAAEUAAAANVZa2/jNhb9nl9BJOimLaKHYzv1I5NFJw8UaLstmkGL/bSgJMrihBJd
ko6dmfa/7+VLlmTJmQWmQLeDjiXykjz3de6l5rpQJbs5uS4IzuCnJAqjtMBCEvXmfKPyYHYOw1K9
MHJzsmC0erpAi2cqqSIZ+niC4D9FdirISMoFVpRXC1TxiizNVMJFRkSQcKV4uUCj9Q5l8Eyy5cmf
J3Y7t0nKGRcLdBaP52YufKCM3NE8d/MJTp9Wgm+qLPCi+Uz/aR5kT5Cc0QydZVlm53JeqSDHJWUv
C1Tyiss1Th3AEosVBcgjUqLYDq05KGf0EISBRs/EACpGHaTj8bhnf4krGUgiaN6YlPQDMWc0Dw0Y
ydUCxeHUj2dUrhmGTWgFlnEItzRTBSyO4y8cPpxltFrVKy025xr91PaOg0urAkCpWrzgz0R0NJpO
p8shYxNizRBqn/wAZ0m3OGccgxqCrgrV9pyWugX1Mejij+JgeqpAxbijssIJI0FKGGtpGZh9W1ba
FqBdYHyoQ20r8HqP7JGk2neDQWMWt0OmGy4uZr3dIaDi9c6ecL9bg3thf1CNXKBQ/3Q1HIQnaUaS
F/03MlDfMp4+/YyFCkHVRU6FVEFaUJYNGlYf9wjrL45tJkgJrr145Tx3hje/Dbgg0SKtsJv6qINo
UTTFLMCMriA3FO9RSxAd6d/hKmPEm8Pto02o3wtiHbqP53QjpHaNht3NQJyAdzbeY3BmHTg2eQy8
YyhacX4YDitBXpadwAynr/nLmhiFir9q5jAXvOwY2/GjPkNb/V+bMiECook0o8uOeuCHNOqidj5v
EaBPlz4a9Jk8mUx66abp/Zpj9EZTmwI2DWrCd3HgwrMvRCzcVjiNHWE1FDcq9hKOLRKDZjlCUmuh
s1PDdAb0bOKixivSylVYFNhsNVNgT/MKegiCnwI9YAHREq9IyzMLdFkbPGFYW1ELpkANgAGguCfU
1XvvldlkPsi9Ocn3BKDDCnasy2Mjm3uWZnnWXgrOlsPiczJfHqvp9U6OZZo4XFYMl+ssO9gAZYQN
ryDzV9FEX6PHzXrNhYJKK1wkg1HLklRKoq8jOA9vVMGtvW011s0MRL2COE29p8wCIzNQ/2sZDQZD
SBhhT2dXPrA13WDGbj2CXulLW8tKvAs65b2EvsANXcZ13ekeDXY/ek6d2XVKt47pwxnyNbFlM9iS
5ImqQAmddtYSFjgKL+WyocbEKX0mFVYb+XaTQA2v62Gos6cXjl6iOGcJFu15f3TOiMnQ/UTJP9Sj
NTmNbR67Pko/+m5BPw+3hEPMcbSV24dFTnfE7uP4OG6rFGLTg9g0O6ziWwpcIDqhVu/5IaBVRnZA
UkdU2xfCBoQ+vRwZtcrbzLFYpWG6hO0tTXBewnevAr3aAx3ZIPZFyL4ZsO65rmDutQZcd2ato2ku
cGkRdvKk3UY0cuR2gGkPbfMCvSbfulpPGDSO0DN/QmG6mj/sw8vV5IFJY4j2XN1GZoftcbs5dntY
8x3G8GBLkHmetcd860nBX3Xi5uw7XyM7d5KrbzyhHcI8kiSN244sse3lm5xbcQHDywGWcfrrFkz2
HW718Hkd94kwnBC2wDlk2MXBcjtuNjEFuQJVT9Ef6HR5UhfiRvnurmYYOnSeB+plTXq3Oh1E5AQ7
V9yCMEOQdTOKdTM6UKPOSiKlbzwG7dznlkZ2PBqi/pRSCCUGGqJnyjfyth6BZvYDqW4bxbKvzvuW
o1timsVFczlErYkEz+3u3UWiI5Gxr4GfhMaFBvQ4ROmcaJUL1/YNNH3NOptsIKuqJu/4+p7R50XO
U2dDvlGaL5rpl7CNqSRuCuIlByxQwUZekWaxNLtAD/OuIPakyFXaFeDXOiiOFMwlVtqFmkTPFGtO
Vj+6mACwieBbcDh0AgWGta4poirUTVCtx2Tquvi6FXHvnh10I6v/j9tF1H/S6fb4Jc3glmUV0w6S
/vLdU1GgD+MSP4PtwQKkU1eaN72DUheMwrFtmfYfP3z17/HB2d3dXSOlz2YPdw/Th15+guayP4rv
7+/7UC9IuQaGajnftWkdyRAeAWkr8+/ns3jmeCtlBIv/mPbAXwX0iLk2FVrkOnJf3a5lKugafCrS
N6eFUmu5iCL8Hu/CFecrWLSmUoeuGYsYTWT0/vcNES/RKJyEl+4lhNYyfC9Pb2Bfs98Nau+c8owE
2odkC3L/BE9rZ76ZzBpLAJT7UJjw7AV+IB8AN5byzbm/CejvhcXoJvoV/AmcFd1hhaP73x6j30jy
PVXu5+2Gsiz6BeouliSCSAFzBooAw8L1fcOUjGipI5hk0XacRkAbAcSTgia/NGIy0h8uI0lKXEFE
SodQX/JGEaQMCJV6AQngCJ3U0fBARmRKqgw2CrR2ATRGG8xCtVOg7qitZeMj0/nhjLn8D43rjwLI
3ns6IvpGhNofk/ZywFSVFzRfE/YtyvnNCFwD8zctKSCNpsw/qkSul72CUP3Pb9wM+BYgfS5gl58B
2M/fPj6id85LyLkNYQmNwN5liOeGIrXnvEwIq6RCkFuaLJABh6F1BQr9S5Qd/wVeMD/DcQQ8+HoQ
OaGj2I/g4p8QagY7pK8+TaEv44v4K6QJFs3ieHcVx/+bvT8r4MthwAj9AtFDxK9Adn873OP/N0NP
Xje0CVz08bt3P/7w598O//QY/loDKHjo49uf7v5tFZhdzJwC38wmu+ls8moCNyq+Tncz3ZTd/5ji
eh3Zf5r7L1BLAwQKAAAAAAAwi71IAAAAAAAAAAAAAAAAOQAcAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2VsZWN0b3JzL1VUCQADe4hLV3CMS1d1eAsAAQT1
AQAABFAAAABQSwMECgAAAAAANI29SAAAAAAAAAAAAAAAAEgAHABpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NlbGVjdG9ycy9wc2V1ZG8tY2xhc3Nlcy9VVAkA
A0OMS1dwjEtXdXgLAAEE9QEAAARQAAAAUEsDBBQAAgAIADONvUjiFaIFsgAAAGgBAABaABwAaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zZWxlY3RvcnMvcHNl
dWRvLWNsYXNzZXMvZGVmYXVsdC1hY3R1YWwudHh0VVQJAANCjEtXQoxLV3V4CwABBPUBAAAEUAAA
AI3MTQuCQBAG4Hu/YtguBR420jSPUtChKESCYC/iDiWZC+uGmvjfc80+EIQuM/PCM28SlighVDCh
Bp1CFj8QHEqLBaUjAB9TjvIYYz5Akj/evUREV6g2wW5bD9IPFryEytuvTi/rGE5nbccsLHvZ2l71
wV/3m7WeWR1+8wALBdVYNavv59T69QAagbynX5fHXF00dIFUjKCUQjLiQnPfMMvCM+rECCNGMyPB
22xSs67J6AlQSwMEFAACAAgAM429SHMsv630AQAAlwQAAFgAHABpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NlbGVjdG9ycy9wc2V1ZG8tY2xhc3Nlcy9kZWZh
dWx0LWRpZmYudHh0VVQJAANCjEtXQ4xLV3V4CwABBPUBAAAEUAAAAM2TUWvbMBDH3/0pDu8hG7Yn
e0kaN5SRlXZsrGMjKy2DQFGsSyIqW550JvFCvvvkOF5ZWKDsaTaWTsfv/nc6zlEUAbvTqsrRsitO
nF3ff2P3OP8k6bBdVlIJNkWF3CJTvNYVRYSWIoO2UmSZzEttCAVb9zO2xnlUKk4LbfI9ZtmKcsUs
5rwgmVlnKcxIG8tKi5XQUaa4tS6/wAV3ghFuSgegeE0b8oIg+P8q5BlVXO3rm0wgSsJkCEESpjCZ
eNG8ItJFAtAabzpPv/MMOs/Qi5oXoP2atX064KwLGXWetPOcN/z7dx9voDc+lNWDnFO2QgsXLfPW
Aq04ATfoDJQGmjv3LBwCDlIhXMiirMjhegFUlwi2mueuvzLnS3ymhkucPaJ40uKFgLaTjVeXJPcV
NZ009MCN4fUD/nB9tGNQWCxp5UTlYoEmhG4EIIlhqQlGp+8q6oLnMuNK1a4GXixd1F9L/PfUXuCG
Cg24NryMw/gVWPkTIY3jzVkcewHAFAuB5k7i+hTzLIFLpbNH2H64/XyzO83+prWoYXv55ep7C6dh
eoBH6WAzHJ238JH41+n1sXaDJ8OO7vhb3BBsX5DbjgP68fCPAICGAlMVT+BaClo15Bj87cxHY7SZ
+WNwtvuTrZur5jTzZ37o1kyL/XkQD3Y73/sFUEsDBBQAAgAIADONvUhlxnmB1AAAAMUBAABcABwA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zZWxlY3RvcnMv
cHNldWRvLWNsYXNzZXMvZGVmYXVsdC1leHBlY3RlZC50eHRVVAkAA0KMS1dCjEtXdXgLAAEE9QEA
AARQAAAAnU/LasMwELzrK+bmS6BNX2lDKPRSKPQfwtpe2SJ6uNIK6r+vEsv00kKpkNAyOzM722aR
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
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NlbGVjdG9ycy9w
c2V1ZG8tY2xhc3Nlcy9kaXItZXhwZWN0ZWQudHh0VVQJAANDjEtXQ4xLV3V4CwABBPUBAAAEUAAA
AJWOsUoDQRRF+/2K200EkQiCks7Ahgip0mwZht2X7MBkRue9oOlSWdhZ2gqSIOLvTNLmSxxJQkxh
sdXjHe7l3CIfdvM++nl3mBeHU5zA/XcKt4vvHdguvg5s/bF5WS83z4jv8TWu4lv8zLLe7d0AqlOZ
0ApizxSmWsqaGNpakKUpOWE81p4JKUSlGO+0NTKHYajUURfQzBRkpEPQ8xE9zLTlDiy5idScWuMx
hXPQ031qU4VrTLyg/VdtJTRWp05j9eXNf+7KEzsluw1Hu0tp4yB1muDL2S9s7LzaO7MfUEsDBBQA
AgAIADSNvUi+DQ01BgkAAIUhAABcABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9zZWxlY3RvcnMvcHNldWRvLWNsYXNzZXMvZGlyLXByZXR0eS1kaWZmLmh0
bWxVVAkAA0OMS1dDjEtXdXgLAAEE9QEAAARQAAAA1Vpbb9zGFX7XrxhIqJUE4mW1u/JqJauIrBVc
1GkDyYhRoIAxXA6XY5Oc9cystLJjIE956Fsf+1qgaFEU/TtKXvNLeubGJbnkygkkOLVhk5zrd875
zmVGOk5lnp1sHacEx/DIicRommIuiHyyu5CJN9qFZiFvMnKyNc5o8WYPja+ooJLE6P0Wgj+SLKUX
kynjWFJWjFHBCnKkuyLGY8K9iEnJ8jHqzZcohncSH2192DLL2UWmLGN8jHbC/qHu889pRs5oktj+
CE/fzDhbFLHnhiYj9be6kdlBsIzGaCeOY9OXsEJ6Cc5pdjNGOSuYmOOpBZhjPqMAuUdyFJqmOQPh
tBycZCDRFdGA0l4Dab/fb1lf4EJ4gnCaVDoFfUf0HtVNvYwkcoxCf+jaYyrmGYZFaAGasQivaSxT
mByGv7H4cBzTYlbONNisadRb3ToWLi1SACXL4Sm7Irwh0XA4POpSNiFGDb6yyXPYS9jJScYwiMHp
LJV1y6lRT0F8DLK4rRionkoQMWyILHGUEW9KsqwmpafXrWnpOgXpPG1DRbVrjucrZJdkqmzXSRo9
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
3i6YPHr/Z/MknDNu38fItdo7lLLdvtjHnvtWR6FyzCAcfPhgPu7MM5VDncpKurs6dvXQ56fjwPz2
xf8AUEsDBBQAAgAIADSNvUjiFaIFsgAAAGgBAABYABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcy9zZWxlY3RvcnMvcHNldWRvLWNsYXNzZXMvZGlyMDEtYWN0
dWFsLnR4dFVUCQADQ4xLV0OMS1d1eAsAAQT1AQAABFAAAACNzE0LgkAQBuB7v2LYLgUeNtI0j1LQ
oShEgmAv4g4lmQvrhpr433PNPhCELjPzwjNvEpYoIVQwoQadQhY/EBxKiwWlIwAfU47yGGM+QJI/
3r1ERFeoNsFuWw/SDxa8hMrbr04v6xhOZ23HLCx72dpe9cFf95u1nlkdfvMACwXVWDWr7+fU+vUA
GoG8p1+Xx1xdNHSBVIyglEIy4kJz3zDLwjPqxAgjRjMjwdtsUrOuyegJUEsDBBQAAgAIADSNvUjb
hlQbogEAAIMDAABWABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFu
dGljcy9zZWxlY3RvcnMvcHNldWRvLWNsYXNzZXMvZGlyMDEtZGlmZi50eHRVVAkAA0OMS1dDjEtX
dXgLAAEE9QEAAARQAAAAzZJRa9swFIXf/Ssu3sNabE0yTVIvT1lox8Y6WtLQUggU1bqJxWQrk66J
s5D/XjlpNhbo6OPAWLq63zk+XJkxBvzOmqZCzy8kSX55f8vv8embppdl3Gij+AQNSo/cyLVtiBF6
Yg59Y8hzXS2tI1R8dVbwFT6xpZE0t67aYZ6XVBnusZI16cKHncGCrPN86bFRlhVGeh++r7QTGcN2
GdqoPlBLUZIk/1s+WVAjzS7daAQsSweQZGkOo1HEpqX2QNgShNXgnIAsOL0oKWLU9cKzK7vzrv8v
yUFw5BOxz5++XkEIE1JqW4Oy6Ov3BHI+DycwDJ2TU+giO3qUzsn1I/4Mkf0wWNULKn0QB9alcJg1
ZANYWAIR7JMwQnQgCU5EKk7B618IuRDtQIgoAZhgrdDdaVy9xrzJYGxs8QM2X6bfr7avs79pq9aw
GV9fPOzhPM1f4PO81/bPP+7hI/ObyeWxd4dn/QN94Kfd/Dfvums4FpyJ/l8C2F+Wa+o/4EorKjty
CPFmFqNz1s3iIYR9+G+9XGBXzeJZnIZ3YdWu7onedhtHz1BLAwQUAAIACAA0jb1IGQCSVIAAAAC/
AAAAWgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2Vs
ZWN0b3JzL3BzZXVkby1jbGFzc2VzL2RpcjAxLWV4cGVjdGVkLnR4dFVUCQADQ4xLV0OMS1d1eAsA
AQT1AQAABFAAAAB1jL0KAkEMhPt9iulUsNDG4jobQbC8/ljc7A8cu5rk4Hx7s4KFhRAYMt/MjLkI
lFaF6UxRoQ1cUlanHdl9vm537Ma/hW/+d8VdztcbQmG6a2kVoZHUjcLHaA4GI9sdvAixTp7ZvyZ6
Ln6WwYZq0ixWtizvQevDKhRwPCE1xcG5N1BLAwQUAAIACAA0jb1IQxrwZpMIAABRIAAAXgAcAGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2VsZWN0b3JzL3Bz
ZXVkby1jbGFzc2VzL2RpcjAxLXByZXR0eS1kaWZmLmh0bWxVVAkAA0OMS1dDjEtXdXgLAAEE9QEA
AARQAAAA1Vppb9s4Gv6eX0Ek2GZmEB2O7dRHmsE0B2axnQNNMYMFFigoi7LYSKJLUonTbv/7vrxk
SZbsLpCgM01bSTyf93xeEjlPZZ5dHJynBMfwyInEaJFiLoh8dVzKxJscQ7OQjxm5OJhltLg7QbN7
KqgkMfp8gOCPJGvpxWTBOJaUFTNUsILMdVfEeEy4FzEpWT5Dg9UaxfBO4vnBlwOznF1kwTLGZ+go
HE51n39DM3JFk8T2R3hxt+SsLGLPDU0m6qe+kdlBsIzG6CiOY9OXsEJ6Cc5p9jhDOSuYWOGFBZhj
vqQAeUByFJqmFQPhtBycZCDRPdGA0kEL6XA47Fhf4EJ4gnCa1DoF/UT0HvVNvYwkcoZCf+zaYypW
GYZFaAGasQgfaCxTmByG/7D4cBzTYlnNNNisadRb0zoWLi1SACWr4Sm7J7wl0Xg8nvcpmxCjBl/Z
5A3sJezkJGMYxOB0mcqm5dSoSxAfgyxuKwaqpxJEDFsiSxxlxFuQLGtI6el1G1p6SEE6T9tQudoD
x6sNsluyULbrdRo9uekybXexPuv0Dg4VrtZmh+v1CswL64No5AT56tGWsBeeoDGJHtX/SEN9nbHF
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
bGVjdG9ycy9wc2V1ZG8tY2xhc3Nlcy9kaXNhYmxlZC1hY3R1YWwudHh0VVQJAANDjEtXe4hLV3V4
CwABBPUBAAAEUAAAAI3MTQuCQBAG4Hu/YtguBR420jSPUtChKESCYC/iDiWZC+uGmvjfc80+EIQu
M/PCM28SlighVDChBp1CFj8QHEqLBaUjAB9TjvIYYz5Akj/evUREV6g2wW5bD9IPFryEytuvTi/r
GE5nbccsLHvZ2l71wV/3m7WeWR1+8wALBdVYNavv59T69QAagbynX5fHXF00dIFUjKCUQjLiQnPf
MMvCM+rECCNGMyPB22xSs67J6AlQSwMEFAACAAgANI29SMirMDEJAgAAGwYAAFkAHABpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NlbGVjdG9ycy9wc2V1ZG8t
Y2xhc3Nlcy9kaXNhYmxlZC1kaWZmLnR4dFVUCQADQ4xLV0OMS1d1eAsAAQT1AQAABFAAAADNlNtu
00AQhu/9FCNzUZC92KYJdXIVSouoKAeFqhVSpGptT2KL9W7YHeOEKO/OOo5bERSJRCDhC88evpn/
93htxhgEt0pUJZrgghMPLu8+B3eYvCtoG86rQmTBGAVyg4HgS1URIzTENJpKkAmKcq40YRbUp2lQ
Y8LmgtNU6XKDmSCnUgQGSy6pSI0dCUxJaRPMDVaZYqngxlj9rDA8EZgxXMwtgdlzWpDjed5/aJGn
VHGxMTgaAYv8qAde5McwGjksqYiUjKCNL6C7HPaBlwhKQsp1NrRzh722I5BVmaBuF7akw968urqG
k2EneQImV5XIoOSU5raIWEK3B9ZviZIMNDY13XOt+fIev1mPZggC5YxyY/HpFLUPXX9hADNFEIX7
xaTdbwUfJOpcGXyU5kS6sE+KkHMDCaIEjaX63mwdZCbemBns92LT1eFmDNJf78rxTqguUvyXfn4/
Eq0xWs5bK2nO5ezgl3PUSWmWCgmU276otGoWj5Z1PPtdo7Z9haehHz4DU/xAiMNw8TIMHQ9gjDJD
fVtgvY/5owLnQqVfYfX25v31ej/7QKtsCavzjxdfWjj24y18FvcW/bNBC+8U/zS+3K3d4FG/ozv+
BhcEqydkw27Cadj/JQGgoUBX8hGsi4zyhhyCu5q4qLXSE3cIdmx/pobPsJlN3Inr23uqss28F/bW
a9f5CVBLAwQUAAIACAA0jb1Is5BnXeQAAABIAwAAXQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2VsZWN0b3JzL3BzZXVkby1jbGFzc2VzL2Rpc2FibGVk
LWV4cGVjdGVkLnR4dFVUCQADQ4xLV3uIS1d1eAsAAQT1AQAABFAAAAC1ks9OwzAMxu99iu+2CwfG
ifWGkJCQEK8wOanXVMqfLXYYfXvSVYMD2qEV5GLFn63vF8emqKa4hbnEB1xP806BkSIs5a5F0zzX
iFiC4Txd56Lm5en1DZu2G4SM524Dcan4DoHUutruR1w1sOfAUQUkwln3lDONez4V8tLCc+zVSS0/
HDjfgT+PbLW27dAnxfb+ples8uz37XB2SfjHmVTzUF/IcCQwzBGZQ/qYpEUsjxeW3U2U2p2Wswjr
X89kPYieB8v/iPN7HWYuHY8ziXUU+8U/s2ZLptQQoa5OJdkyJde6Nl9QSwMEFAACAAgANI29SNEi
hE0dCQAAzicAAGEAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL3NlbGVjdG9ycy9wc2V1ZG8tY2xhc3Nlcy9kaXNhYmxlZC1wcmV0dHktZGlmZi5odG1sVVQJ
AANDjEtXe4hLV3V4CwABBPUBAAAEUAAAANVaa2/bOBb9nl9BNNhmdxBJdmyntpNmMc0Ds9jO7KAt
ZrDAAgUlURYbSXRJKnba6X+fy5csyZLdAsk0m6KVxOe5r3MvmZ6nMs8uDs5TgmN45ERiFKWYCyJf
HpUy8aZH0CzkfUYuDuYZLW6P0fyOCipJjD4fIPiRZC29mESMY0lZMUcFK8iZ7goZjwn3QiYly+do
uFyjGN5JfHbw5cAsZxeJWMb4HB0ORjPd59/QjFzRJLH9IY5uF5yVRey5oclU/alvZHYQLKMxOozj
2PQlrJBegnOa3c9RzgomljiyAHPMFxQgD0mOBqZpyUA4LQcnGUh0RzSgdNhCOhqNOtYXuBCeIJwm
tU5BPxG9R31TLyOJnKOBP3HtMRXLDMMitADNWIQrGssUJg8Gf7P4cBzTYlHNNNisadRb0zoWLi1S
ACWr4Sm7I7wl0WQyOetTNiFGDb6yyWvYS9jJScYwiMHpIpVNy6lRlyA+BlncVgxUTyWIOGiJLHGY
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
1X+u/msEmB5PrQAvpuP15MXsOwpwuudo0TTCr2+u2zZQIgwn31GCF/skcDKY3xocqq62EKPB5PsK
Md0vhPmFMuJlsQGv70cV+jl6/rFk8uzz/8yTcM64fZ8j12ov46t2+2Ifx+5b3alVY8aD8Zcv5mNv
nqndDqqspLvrYzcPfRF3Hpj/xvcnUEsDBBQAAgAIADSNvUjiFaIFsgAAAGgBAABaABwAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zZWxlY3RvcnMvcHNldWRv
LWNsYXNzZXMvZW5hYmxlZC1hY3R1YWwudHh0VVQJAANDjEtXe4hLV3V4CwABBPUBAAAEUAAAAI3M
TQuCQBAG4Hu/YtguBR420jSPUtChKESCYC/iDiWZC+uGmvjfc80+EIQuM/PCM28SlighVDChBp1C
Fj8QHEqLBaUjAB9TjvIYYz5Akj/evUREV6g2wW5bD9IPFryEytuvTi/rGE5nbccsLHvZ2l71wV/3
m7WeWR1+8wALBdVYNavv59T69QAagbynX5fHXF00dIFUjKCUQjLiQnPfMMvCM+rECCNGMyPB22xS
s67J6AlQSwMEFAACAAgANI29SDsGiVuRAQAASwMAAFgAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NlbGVjdG9ycy9wc2V1ZG8tY2xhc3Nlcy9lbmFibGVk
LWRpZmYudHh0VVQJAANDjEtXQ4xLV3V4CwABBPUBAAAEUAAAAM2SUWvbMBDH3/0pDu+hLbYmp0kW
N09ZaEdLOzqy0jIIFMW6JKaylenOxFnId6/sJhsLFPY4CXR36Hf/vzgkhAD5aE1VIMlLxUpePX2X
Tzi7zXkfxlVutJygQUUojdrYigUjsXBIlWGSebGyjlHLdTeTa5yJlVE8t65oMZJLLowkLFTJeUY+
M5ixdSRXhJW2IjOKyPtjqWYGtcB65QHUH7nmIIqi/++FKuNKmfZ9oxGITjyAqBOnMBoFAmYVsy07
+3gO7QpEs9vw5fPNHZwM91on4M0KLJmAl4pBOYTSMuic2ntonB0/K+fU5hl/el8agsFywUvy1HyO
LobDyOACFr459T6RHwQ68JKnSZycAeW/ENIkqT8lSRABTLDU6B5zXL/H/JPA2NjsBbbXD1/vdu+z
v2mrN7Ad31/+eIPTON3Dg7RX9wcXb/CR+LfJ1bF2g3f6B/rAP2DNsP3APhw3dJP+Xw0ADQWuKv+A
61zzsiGHEG6nITpn3TQcgs/97yO1wKaahtMw9mdmdVv3kt5uFwavUEsDBBQAAgAIADSNvUg32HBq
bAAAAIIAAABcABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9zZWxlY3RvcnMvcHNldWRvLWNsYXNzZXMvZW5hYmxlZC1leHBlY3RlZC50eHRVVAkAA0OMS1d7
iEtXdXgLAAEE9QEAAARQAAAAJYsxCsJQEET7PcV0aWy00nQ2guAdwsZMEuG70d0N6O39xIFhivcG
/Zq52B7/PWCLiNReztcbmpamfeHQgIVPWgZy1oQ6YUtieMTGoRH07NRdvx3fq5ZoUWhTzlGtcaTv
wM+L96z2CVM9H0V+UEsDBBQAAgAIADCLvUgM7GNvKQgAAAseAABgABwAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zZWxlY3RvcnMvcHNldWRvLWNsYXNzZXMv
ZW5hYmxlZC1wcmV0dHktZGlmZi5odG1sVVQJAAN7iEtXe4hLV3V4CwABBPUBAAAEUAAAANVZa2/c
Nhb97l9B2Gi9LazHeGaceTheNH6gi013izpo0U8BJVEjxpKokhzPONn+916+NJJGGqeAA2QdOHrw
kjz3eS7ly0wW+dXRZUZwApeCSIziDHNB5OvTtUy92Sm8FvIpJ1dHi5yWD2do8UgFlSRBn44Q/Eiy
lV5CYsaxpKxcoJKVZKmHIsYTwr2IScmKBRpVW5TAPUmWR38emeXsIjHLGV+gk3A812P+Hc3JDU1T
Ox7h+GHF2bpMPCeaztS/5kZmB8FymqCTJEnMWMpK6aW4oPnTAhWsZKLCsQVYYL6iAHlEChSaVxUD
5bQenOSg0SPRgLJRB+l4PO5ZX+BSeIJwmjYGBf1I9B7NTb2cpHKBQn/q3idUVDmGRWgJlrEINzSR
GUwOw28sPpwktFzVMw026xp11/aOhUvLDEDJWjxjj4R3NJpOp8shYxNizOArn7yFvYSdnOYMgxqc
rjLZ9pySugb1MejitmJgeipBxbCjssRRTryY5HlLS0+v27LSJgPtPO1DFWobjqsdsnsSK98NBo2e
3A6ZbrjYmHV2h4AKq63Z4XZbgXthfVCNnCFfXboaDsITNCHRk/ofaahvchY//Iy59EHVRUq5kF6c
0TwZNKza7h7mnx1ajJMCXHv2zH52D2d+E3BepERaYTd1UQfRImmMcw/ndAW5IVmPWpyoSP8Rl0lO
nDnsOsqE6jkjxqG7eI7XXCjXKNjdDMQReGftPAZ71oFjkkfDO4SiFef74bDi5GnZCUx/+py/jImR
L9mzZvZTzoqOsW19VHsoq/9nXUSEQzSRZnSZtw74fhm1UTuftwqgS5e+MugyeTKZ9JabpvfrGqMW
mpoUMGlQF3wbBzY8+0LEwG2F09gWrIbiWsXegmNIYtAsB4pUxVV2KpjWgK6a2KhxirRyFSZ5Jlv1
ENhTP4IenOAHT70wgGiBV6TlmQU6rw0e5VhZUQnGUBoAA0Cxd6ir984rs8l8sPamJN0VABVWsGJN
j41s7pmapEl7KjhbDIvPyXx5iNPrlWyVaeKwWTFM10mytwBKSD48g8yfRRN8j+7XVcW4BKblNpLB
qEVBSinQ9wHsh9cyY8beho1VMwNRLyFOY+cpPUHLDPB/LaPAYAgJLezK2YULbFVucJ5fOwS90ueG
ywq89Tr0XkBfYF+dhzXvdLcGux/cp87sOqVb2/Th9FlFDG16GxI9UOlJrtLOWMIAR/65WDbUmFil
T4TEci3erCPg8JoPfZU9vXDUFMlYHmHeHndbpznRGbobKNjH+m1dnMYmj20fpW5dt6Duh1vCocpx
sJXbhUVKt8SsY+tx2FbJx7oHMWm2z+IbCrWAd0KtXvOjR8uEbKFIHVBtR4QNCH162WLUoreZrWKl
gmkTtpeaYL+IbZ8FerEDOjJB7EjIPGmw9r5mMPtYA647s9bWNOW4MAg7edJuIxo5cj1Qafdt8wS9
JttYric5NI7QM38GMV3M73bhZTl5YFAboj1Wt5HJfnvcbo7tGsZ8+zE82BIkrs6abX5wRcEddcLm
6DvHkZ0zycUrV9D2YR5IksZpRxTY9PLNmlsyDq+XA1XG6q9aMNG3udHD5XXYJ5LjiOQLnEKGne1N
N+/1IpqQS1D1GP0PHS+PaiJu0Hd3do6hQ2epJ58q0rvU8SAiK9g54mYk1wWybkaxakYHOOqkIEK4
xmPQzn1uaWTHvS7Un0OFQDHQED1SthbX9RtoZj+S8rpBln0871qOLsU0yUXVcohaHQmutttnG4m2
iIwdB34WGhsa0OMQqXKiRRe27Rto+po8G60hq8pm3XH8ntDHRcpia0O2lqpeNNMvyteaSewQxEsK
WIDBRk6RJlnqVaCHeZcRs1NgmXYF+JUOkiEJY5GRtqEm0CPFqibLn2xMANiIsw04HDqBDMNc2xRR
6asmqNZjMrVdfN2K2GdXHVQjq37DNom6TzrdHr+gCZyyjGLKQcIdvnsYBfowJvAj2B4sQDq80jzp
7VGdN/LHpmXaffxw7N/jg5Obm5tGSp/M7m7upne99Qmay/4ovr297UO9IEUFFarlfNumdSR9uAWk
rcy/nc/Cma1bcU4wf6/bA3cUUG/0sSlTIpeB/ep2KWJOK/Apj18fZ1JWYhEE+APe+ivGVjCpokKF
rn4X5DQSwYc/1oQ/BSN/4p/bBx9aS/+DOL6CdfV6V6i9cswS4ikfkg3I/RM8rZz5ejJrTAFQ9kNh
xJInuEA+AG4sxOtTdxJQ3wuz0VXwK/gTalZwgyUObn+7D34j0b+ptJc3a5onwS/Au1iQACIFzOlJ
AhUWju/rXIqAFiqCSRJsxnEAZcODeJLQ5BdaTATqw2UgSIFLiEgRGApnXASVIOuEeRoW7E9K9Wkp
8aDdWePcl1sJSoza2Bufjk73R/SRfui9Ouojc5rpiKhzDmp/ItrJQf0pnaD+RrBrPE6vRmBwGL9q
SUEpaMp8W0aiWvYKAqefXtkiNrLXc6R/rDz4EYC+FNzzF4D7RYCNv1Zgk5dw8BdBNv1aTXbxAsDu
fvjXW/TtCfRfC1sV9AOC0mFP0Yo74RgNrCUVhWkZpOoIl+8xhwbtPfkDqohYwImnXMlMgFSaqs93
ZFuZI8QcrWDy7IsY4dUX8I6+DJc2INzn65oVOoj9AC72GdVPYweeULtJ9I/wLPwOKSZHszDcXoTh
37P3iwI+P5Ck6BcCx2T+K7DqV4d7/P9m6MnzhtaBiz79+O6nt39+dfinh/DXGkBnhT69+e/N70aB
2dnMKvBqNtlOZ5NnE7jRWqp018NN2d1Fd3GXgfkb8F9QSwMEFAACAAgAMIu9SE2enExYAAAAsgAA
AFgAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NlbGVj
dG9ycy9wc2V1ZG8tY2xhc3Nlcy9mb2N1cy1hY3R1YWwudHh0VVQJAAN7iEtXe4hLV3V4CwABBPUB
AAAEUAAAAMtJrEwtUkgsUdAw0DHQVCjOrEpVsDAwqDAzMOBSUAhKzUtJLQrLTC3HoSSHCO1OOfnJ
2QrVHiG+PrU4lcIV56dUKlQ7+btEQtRa6FhA1ZpbmFSYWphwAQBQSwMEFAACAAgAMIu9SE2enExY
AAAAsgAAAGIAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L3NlbGVjdG9ycy9wc2V1ZG8tY2xhc3Nlcy9mb2N1cy1hdXRvZm9jdXMtYWN0dWFsLnR4dFVUCQAD
e4hLV3uIS1d1eAsAAQT1AQAABFAAAADLSaxMLVJILFHQMNAx0FQozqxKVbAwMKgwMzDgUlAISs1L
SS0Ky0wtx6EkhwjtTjn5ydkK1R4hvj61OJXCFeenVCpUO/m7RELUWuhYQNWaW5hUmFqYcAEAUEsD
BBQAAgAIADCLvUgaPT6nOAEAAJQCAABgABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9zZWxlY3RvcnMvcHNldWRvLWNsYXNzZXMvZm9jdXMtYXV0b2ZvY3Vz
LWRpZmYudHh0VVQJAAN7iEtXe4hLV3V4CwABBPUBAAAEUAAAAM3QTU/CQBAG4Ht/xRw17bIlgjac
KkGjEWOCBuKJLN0BGrbdujObgsT/bvm8kXg0e9g5PHnfyQghQI6t8QWSHChW8mHyLic4e8n5+PV9
brQcoUFFKI3aWM+CkVg4JG+YZF5U1jFqWd9kssaZqIziuXXFnpFccmEkYaFKzjNqJoMZW0eyIvTa
iswooqZ/bjNPQnm2hwnXVQNRt3jNQRiG/3dTlbFXZr9nmoJoRx0I21EX0jQQu/d4/zyE3t7CKRRo
ab3RUFu3gjrnJagSzpGooXEFltyCXafjqXJObab41TRRDwyWC14S6Hw+RxfB6VjQhoVliJvasDkB
OlAMV3EUXwPl3whJHK9v4zgIAUZYanTjHOtL5k8BfWOzFWyfPl6HP5ftWVu9gW3/bfB5wEmUHPFd
0ll3k07wC1BLAwQUAAIACAAwi71I2Eq0L2kAAAB3AAAAZAAcAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2VsZWN0b3JzL3BzZXVkby1jbGFzc2VzL2ZvY3Vz
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
LqFRBNwgjO5wyrGqbWdwAMUcbHJFaNUOJzL11yarSaFqh88qNJbH+EQQqIBvsdnn8WmWLFk3yXQM
CQ3U3jzB3nLz0sBrjfFI3Ywn7aRMwnNB24HdBtUei2V5+g0MaQa4KObFJZD9jVAVxfCpKLIc4B5T
ifBgcf8e808GK+f1Dg53P799/fM+e6aPMx5W39e/JriaVyf4uloMV9Ui+wtQSwMEFAACAAgAMIu9
SDBAKk6RAAAABAEAAFoAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL3NlbGVjdG9ycy9wc2V1ZG8tY2xhc3Nlcy9mb2N1cy1leHBlY3RlZC50eHRVVAkAA3uI
S1d7iEtXdXgLAAEE9QEAAARQAAAAZY2xDsIwDET3fIW3zl3Z+AOkfoHTuIpF6qDmIuDviZqqSODt
fPfufAWyjXSei5JSdnM2iME5d7tOE6k9KkaKXAhRaMlzLdQtsFcL8iIGNvUVQivfpQclydpqOsA+
yQFJUOzyCBTiTf5Sw2X/DK0Qc2yVuywSyOfwpqcifud/kJCl2ICOdrBx55wa6bLx2qbcB1BLAwQU
AAIACAAwi71IopctYWMIAAD5IAAAXgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9zZW1hbnRpY3Mvc2VsZWN0b3JzL3BzZXVkby1jbGFzc2VzL2ZvY3VzLXByZXR0eS1kaWZm
Lmh0bWxVVAkAA3uIS1d7iEtXdXgLAAEE9QEAAARQAAAA1Vprb+O4Ff2eX0Ek6KZdRA/HdsZ2Mil2
8sAC3W0Xm8Eu+qmgJMriRBJVkkqcme5/7+VLlmTJmQIxMJ3FrCXykjz3eS6FucpkkV8fXWUEJ/BT
EIlRnGEuiHx/WsvUW5zCsJAvObk+WuW0fDxDqycqqCQJ+nKE4I8kG+klJGYcS8rKFSpZSS71VMR4
QrgXMSlZsUKTaoMSeCbJ5dEfR2Y7u0nMcsZX6CScLvWcf09zckvT1M5HOH5cc1aXiedE04X6r32Q
OUGwnCboJEkSM5eyUnopLmj+skIFK5mocGwBFpivKUCekAKFZqhioJzWg5McNHoiGlA26SGdTqcD
+wtcCk8QTtPWpKCfiT6jfaiXk1SuUOjP3XhCRZVj2ISWYBmL8JkmMoPFYfgniw8nCS3XzUqDzbpG
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
dFt2+6PvLFeB+RcP/wVQSwMEFAACAAgAMIu9SNc3N0FeAQAATgYAAGAAHABpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NlbGVjdG9ycy9wc2V1ZG8tY2xhc3Nl
cy9pbmRldGVybWluYXRlLWFjdHVhbC50eHRVVAkAA3yIS1d8iEtXdXgLAAEE9QEAAARQAAAAnZRB
b4IwGIbv/oov7jBNWNICQuU2lTgTFSPOZEcmdSNjJSl14sj++3QwtqDG1lMvz/d9z+Ht2/emvjd2
YeL6/v3QdSCOGAUdOzCna8opW1GX84Q70A/YrYB1xEL4CHgUPMfUAUFT4dOYrkTCG3GwoxwCAS2k
oTak0ScFglBmIdSA/T4WUr6M6PYMcm7cINV0L05Wb5A/LCbjr3NkxSbhDvKeN3gqUKKRErWJmen6
D1pbPBgt63sPMDrBtgKWsN17sknbJyaq9bUDo+nscVGc0DW7HMB6huv8gmYC8huxfwocW5pR8maG
SYUDHBjgG/YP20aheAXTgSY0L4somhhyJoa6ialo0pEz6aibWIomtpyJrW5CFE26ciZddROMVCMr
m9krQotVU4slY4sv5nbGkxdO0xTy2dwbzvfFWV4wkXaHf50sdFwCx18JIbm/VHBXSBnIVJX6azJU
NZ8k/A1QSwMEFAACAAgAMIu9SBEHxgb7AgAAdgoAAF4AHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NlbGVjdG9ycy9wc2V1ZG8tY2xhc3Nlcy9pbmRldGVy
bWluYXRlLWRpZmYudHh0VVQJAAN8iEtXfIhLV3V4CwABBPUBAAAEUAAAAM2UW2/aQBCF3/kVo/SB
RODa5h4URbnRFDU3QZqoT9FiT2DV9S7dHQdo1P/eBZsQEqLaPNUvtqyz53wzO7uO44B7p0QcoXHP
GDG3c99373HwjVP6Oom5CN0eCmQGXcFmKiaH0JCj0cSCjMujsdKEoTupBu4EB85YMHpUOlrIjDui
SLgGIyaJB8Z+CQxIaeOODcahcgLBjLH5XIZIqCMuGaGD07GVYfiZplQolUr/KycLKGZiQXl0BI5f
3oeSX67W4eio4ED6FJyC8+W4ewHF9liroSUyRYgYBSM0cMDlOKZDA5qFXMEgJlLSwGSkDK79g6FW
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
HqGqvzOqTvYGVZ6zNapO9hNVnrs7qnr7gyrP2xlV/f1Blb81qvp7iqr27qhynT2CVWd3ur4/fN3r
bs/X95Sweyc/Aaw9Yuxeb3dg7Q9l9/rbA2tPObt/74P5R/MFAfrx8dOH3z8NRyPjl7ZzbLk5vrrO
096W+O7uR0LH2ReA+d72Z0It/f4BzP9ZgPlOe58A1t4ZYMtLRedJb0b9zuOosPYFWuk3qeTXbaq7
PHb5oX5p6YWt/8vj/wFQSwMEFAACAAgAMIu9SE2enExYAAAAsgAAAGYAHABpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NlbGVjdG9ycy9wc2V1ZG8tY2xhc3Nl
cy9pbmRldGVybWluYXRlLXJhZGlvLWFjdHVhbC50eHRVVAkAA3uIS1d7iEtXdXgLAAEE9QEAAARQ
AAAAy0msTC1SSCxR0DDQMdBUKM6sSlWwMDCoMDMw4FJQCErNS0ktCstMLcehJIcI7U45+cnZCtUe
Ib4+tTiVwhXnp1QqVDv5u0RC1FroWEDVmluYVJhamHABAFBLAwQUAAIACAAwi71Ipjv9zg0BAABU
AgAAZAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2Vs
ZWN0b3JzL3BzZXVkby1jbGFzc2VzL2luZGV0ZXJtaW5hdGUtcmFkaW8tZGlmZi50eHRVVAkAA3uI
S1d8iEtXdXgLAAEE9QEAAARQAAAAzc5RS8MwEAfw936Ke1TamIqbFkGoY4Kgomyy4eOtOTGYNiV3
Ya3D727dhuDDwEcJJHn43f/+SinQC+9iTaynKKhvlnO9pNWdlf0zidYZPSNHyKQd9j6KEmJRgTg6
YW3r1gcho9dnlV7TSrUO5dWHestYv0ntNFONjdiKh5+jSnxg3TJF41XlkHnYbxtDQqG2DQqpgMZ6
RV07YDIn0kmSpun/bouVRHTbrmUJ6jQbQ/p9lWWidufpej6Hy1+zgI0B27RRQPqWrrZRMOB0qE8B
UOAoz/JjYPtBUOR5d57nSQowoyEmLCytD5k/BUycr95hc/v8cP952P5ob3rYTB6nLztcZMUeXxSj
blyMki9QSwMECgACAAAAMIu9SFeL3EcuAAAALgAAAGgAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NlbGVjdG9ycy9wc2V1ZG8tY2xhc3Nlcy9pbmRldGVy
bWluYXRlLXJhZGlvLWV4cGVjdGVkLnR4dFVUCQADe4hLV3uIS1d1eAsAAQT1AQAABFAAAAAKCgpQ
QVNTIDppbmRldGVybWluYXRlIGFuZCBpbnB1dCB0eXBlPXJhZGlvIAoKUEsDBBQAAgAIADCLvUh7
7woDIAgAACUdAABsABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFu
dGljcy9zZWxlY3RvcnMvcHNldWRvLWNsYXNzZXMvaW5kZXRlcm1pbmF0ZS1yYWRpby1wcmV0dHkt
ZGlmZi5odG1sVVQJAAN8iEtXfIhLV3V4CwABBPUBAAAEUAAAANVZa2/jNhb9nl9BJOimLaKHYzu1
ncSL5oUCbbdFM2ixnxaURNmcSKJKUrEz0/nve/mSJVlyssAUmO2gY4m8JM99nkvN1Vrm2fLoak1w
Aj85kRjFa8wFkdenlUy92SkMC/mSkeXRIqPF0xlaPFNBJUnQxyME/0mylV5CYsaxpKxYoIIV5FJP
RYwnhHsRk5LlCzQqtyiBZ5JcHn06MtvZTWKWMb5AJ+F4ruf8B5qRO5qmdj7C8dOKs6pIPCeaztSf
5kHmBMEymqCTJEnMXMoK6aU4p9nLAuWsYKLEsQWYY76iAHlEchSaoZKBcloPTjLQ6JloQOtRB+l4
PO7ZX+BCeIJwmjYmBf1A9BnNQ72MpHKBQn/qxhMqygzDJrQAy1iEG5rINSwOw68sPpwktFjVKw02
6xr11PaOhUuLNYCStfiaPRPe0Wg6nV4OGZsQYwZf+eQnOEvYxWnGMKjB6Wot255TUregPgZd3FEM
TE8lqBh2VJY4yogXkyxraenpfVtW2qxBO0/7UIXahuNyh+yRxMp3g0GjF7dDphsuNmad3SGgwnJr
TrjfluBe2B9UI2fIVz9dDQfhCZqQ6EX9jTTUm4zFT79iLn1QdZFSLqQXr2mWDBpWHfcI688ObcZJ
Dq49e+U8e4Yzvwk4L1IirbCbuqiDaJE0xpmHM7qC3JCsRy1OVKT/gIskI84cdh9lQvW+Jsahu3iO
Ky6UaxTsbgbiCLxTOY/BmXXgmOTR8A6haMX5fjisOHm57ASmP33NX8bEyJfsVTP7KWd5x9i2Pqoz
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
yegJUEsDBBQAAgAIADCLvUjDy7pkJgIAAJ0GAABjABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcy9zZWxlY3RvcnMvcHNldWRvLWNsYXNzZXMvaW5yYW5nZS1v
dXRvZnJhbmdlLWRpZmYudHh0VVQJAAN8iEtXfIhLV3V4CwABBPUBAAAEUAAAAM2UXW/TMBSG7/Mr
jsJFQY1Jurb0Q7so1YaYGAKVaRNSpclNThoLxy72ST+o+t9x0o+JahMDVYhcJHb8nPP69TkyYwzC
Wy2LHG14wYmHl3dfwjucfBC0+wwLIZNwhBK5xVDylS6IEVpiBm0hyYYin2lDmISLZhwucMJmklOq
TV5hNswol6HFnCsSsXUjiTFpY8OZxSLRLJbcWqcvlOFqiswJ6HQ7xOXMsZi8piV59Xr9v94sj6ng
strqYACsEfSg3gi6MBh4DP7i8ZjH3r29uoZaXyhWadQg5xRnaIFLCW5vOSqyQBkn4AYh5ioRCXdW
wHmCWCtLhgtFMOeyXBBaBZDxOUKVD6TIBVW/bQAu+CGVQkEZGrBFmqIRagqp0bljoFAJmlTqBSj9
2Lqe75bLkzJ0z43hq3v87g7H9kGimlJmIRFlXAD7EkMjgqkm6B5Ml7XT6T83/gzfJ7V9Vtk+e6TW
xax0BKrIJ2gaNVt6KRDOIRfqD1V6lUjnibM9oVCjWSk1f2en6VTK7Oc7rZP2yimVDuXx6u4+cY3h
2uRlFESvwIofCN0oWr6JIq8OMMKyQW4FLp5inpVgKHX8Ddbvbz5eb55mD7ROVrAefrr4uoW7QXcH
d7qtZbvT28JHyT+PLo9zl3ijvaf3/A0uCdYvyH2OA5pR+5cAgJICU6gHcCESykqyD/567KMx2oz9
Prixu8Qtn2I5G/tjP3DvWCfVvBW1Nhvf+wlQSwMEFAACAAgAMIu9SMoFGkD4AAAAvAMAAGcAHABp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NlbGVjdG9ycy9w
c2V1ZG8tY2xhc3Nlcy9pbnJhbmdlLW91dG9mcmFuZ2UtZXhwZWN0ZWQudHh0VVQJAAN8iEtXfIhL
V3V4CwABBPUBAAAEUAAAAL2SwU7DMAyG732K/9ZLJ9H1AEy7cJmExDtMpnXaSIkzEqfA29NWmzgw
CSZV5Bjb/6cvDnD7KYrD0/MLyp2VTSTpuYQnbQdOIOfAjj2LJuhACoqMlqSzHenUYEJEGyRpJCuK
kdxcsEEqDDQyljw4660u16nCNPwdJWx14IiUjeFopYeJwU89yNJxNC68Q8K1ehjPZUqJox4pRvo8
8lsml3ZwLL0OCZ2d5yrwx4lb5Q71HfqgeLg4h6ybYP7d+w/aq1pvF+vtz03n0ywEyf6VY12mWSUz
9vBWboQ8Loz76y+7IqduFlDzi0wzQebw/Rm15j9ZE3RZTfEFUEsDBBQAAgAIADCLvUh3NRbLLwkA
AGslAABrABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9z
ZWxlY3RvcnMvcHNldWRvLWNsYXNzZXMvaW5yYW5nZS1vdXRvZnJhbmdlLXByZXR0eS1kaWZmLmh0
bWxVVAkAA3yIS1d8iEtXdXgLAAEE9QEAAARQAAAA1Vppb9vIGf7uXzGw0bhdiIcsydbhuNj4wBbN
tos42EWBAsGQHIoTkxxlZmjJSfPf+85BiqRI2VvYm9SBQ3LO93yedwY+T2SWXhycJwRH8MiIxChM
MBdEvj4uZOxMj6FZyIeUXBzMU5rfDdD8ngoqSYS+HCD4kWQjnYiEjGNJWT5HOcvJQncFjEeEOwGT
kmVzNFxtUATvJFocfD0wy9lFQpYyPkdH/mim+9wbmpIrGse2P8Dh3ZKzIo+ccmg8Vf/qG5kdBEtp
hI6iKDJ9MculE+OMpg9zlLGciRUOrYAZ5ksKIg9JhnzTtGKgnNaDkxQ0uidaoGTYknQ0GnWsL3Au
HEE4jWudgn4meo/6pk5KYjlHvjsp2yMqVimGRWgOlrESrmkkE5js+3+y8uEoovmymmlks65Rb03v
WHFpnoBQshqesHvCWxpNJpNFn7EJMWZwlU/ewl7CTo5ThkENTpeJbHpOjboE9THoUm7FwPRUgop+
S2WJg5Q4IUnThpaOXrdhpXUC2jnahyrU1hyvtpLdklD5rjdo9ORmyLTDxcZsaXcIKH+1MTtcb1bg
XlgfVCMD5KpHW8Ne8QSNSPCg/kda1DcpC+9+wVy6oOo8plxIJ0xoGvUaVm13C/MH+xbjJAPXDh7Z
z+5Rmt8EnBOoIY2wm5RRB9EiaYhTB6d0CbkhWYdanKhI/wnnUUpKc9h1lAnVd0KMQ7fxHBZcKNco
sdsZiAPwTlF6DPasAsckjxZvnxSNON8NhyUnD4tWYLqTx/xlTIxcyR41sxtzlrWMbfFR7aGs/o8i
CwiHaCL16DKtpeC7MGqjdjZrAGCZLl0wWGbyeDzuhJu69yuMUQtNTAqYNKgA38aBDc+uEDHiNsJp
ZAGrprhWsRNwDEn0mmUPSK24yk4lpjVgiSY2akpFGrkKkxyTrboL7Kk/QQ9O8J2jGoxANMNL0vDM
HJ1UBg9SrKyoBoYADSADiGLfUFvvrVem41kv9sYk3gKACitYsaLHWjZ3TI3iqDkVnC36h8/IbLGP
06uVLMrU5bBZ0U/XUbSzAIpI2j+DzB6VxvsB3RarFeMSmJbbSAajZhnJpUA/eLAfLmTCjL0NG6ti
BqJeQpyGpaf0BD2mh/+rMUoYDCGhB5dwdloGtoIbnKaXpQSdo08Ml2V447ToPYO6wDad+BXvtLcG
u+/dp8rsKqUb23TJ6bIVMbTprElwR6UjuUo7YwkjOHJPxKKmxtgqfSQkloV4UwTA4RUfuip7OsVR
UyRjaYB5s7/cOk6JztBtR8Y+V60VOI1MHts6Sr2W1YJ67y8J+5Bjbym3DYuYbohZx+Kx31TJxboG
MWm2y+JrCljAW6FWrfnZoXlENgBSe1TbEmFNhC69LBg16G1qUSxXYtqE7aQm2C9gm0cFPd0KOjRB
XJKQ+dLC2veKwexnJXBVmTW2pjHHmZGwlSfNMqKWI5c9SLtrmweoNdnacj1JoXCEmvkJxHQ6u9mG
l+Xknk5tiGZfVUZGu+Vxszi2axjz7cZwb0kQlThrtvmxBIXyqOPXe9+XHNk6k5yelYC2K+aeJKmd
dkSGTS1fx9yccWhe9KCM1V+VYKJrc6NHmdd+15AUBySd4xgybLAz3bTrRTQh56DqIfoPOlwcVERc
o+/27BRDhc5iRz6sSOdSh70S2YGtI25CUg2QVTGKVTHaw1FHGRGiLDx67dzlllp23GqgfgoVAsVA
QXRPWSEuqxYoZj+T/LJGll08X5YcbYqpk4vCcohaHQkltttvG4kWREYlBz5JGhsaUOMQqXKiQRe2
7Osp+uo8GxSQVXkdd0p+j+j9PGahtSErpMKLevoFaaGZxHZBvMQgCzDYsFSkTpZ6Fahh3ifE7ORZ
pl2C/EoHyZCEvsCMtqEm0D3FCpPlzzYmQNiAszU4HCqBBMNcWxRR6aoiqNJjPLFVfFWK2O8SHVQh
q379JomWVzrtGj+jEZyyjGLKQaI8fHcwCtRhTOB7sD1YgLR4pX7S26E6Z+iOTMm0vfwo2b/DB0dX
V1e1lD6a3lzdTG468QmKy+4ovr6+7pJ6TrIVIFTD+bZMa4104RUkbWT+9WzqTy1uhSnB/IMuD8qj
gGrRx6ZEDTn37K3buQg5XYFPefj6MJFyJeaehz/ijbtkbAmTVlSo0NVtXkoD4X38VBD+4A3dsXti
P1woLd2P4vAC1tXrXaDmyiGLiKN8SNYw7q/gaeXM1+NpbQoIZS8KAxY9wAPyAeTGQrw+Lk8C6r4w
GV54v4I/AbO8Kyyxd/3brfcbCf5OpX28KWgaee+Ad7EgHkQKmNORBBAWju9FKoVHMxXBJPLWo9AD
2HAgniQU+ZkeJjx1cekJkuEcIlJ4hsIZF95KkCJijhYL9qc5UMwSMhHcE5tXqHwKnLpyI0GfYVON
2i3S8W6PPt33tatTPzIHm9YQdeRBzdui7TiAorwcqK8LtjXI8cUQbA/9F41RgAr1Ma/yQKwWnQOB
3o8v0P/wY1cDh4Maz6XMyTMo8yKCjZ5BsJsf//YWvToCcp8r+lKBpr8AWmWYEIEAbxAEqT2vKZSG
AxsKoQqjEQCG0CdYgHgBNRGcEdA9YGykD7wDlACuIL0myJQBX+sTxgDB5O1SOaFAFhzAP46B+gF8
tKIgKCAb4YA1a1WBdfQrqtbdKmW4/IA51CIfyCfIEjGH4j5fykQApqt5A0Q2K1MtD320ZBJNX8Qn
4+f1icIXKN6+hV+e4JZn9cqJ9srJi3hl8pKZUqyUwVGu1xnqNqHMXRD0KpULdTvyO20x06Y4exFT
nL50gD6/OYYjbY/Ri9jj7A8LjZG1hTKAtoQxyncEXtM/NDaexx4vCRuzF2B+/egvxOCk8HgVZgft
lX2PXOwJtZqWHQpctZtEf/YH/l+QOoKgqe9vTn3/99n7WQU+2VczviOKnX6F48B3J/fo/83Q48cN
rQMXffnp/c9vv3538k/2Hy6sBnAkRF/e/PPqX0aB6WBqFTibjjeTs9k3VOD0sdNRwwm/vLtu+0Cp
MJx8Qw3OHj/fGR3Mle6R6morMfIn31aJ6VMOqfr+nhf5Vnh9eaWkn6NXnwomF1/+bZ6Ec8bt+xyV
rfamtGq3L/YxKL/VhUc1ZuyPv341H4/yTO3qRrGS7q6P3T70Lcm5Z/7G6r9QSwMEFAACAAgAMIu9
SOIVogWyAAAAaAEAAFcAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL3NlbGVjdG9ycy9wc2V1ZG8tY2xhc3Nlcy9saW5rLWFjdHVhbC50eHRVVAkAA3yIS1d8
iEtXdXgLAAEE9QEAAARQAAAAjcxNC4JAEAbge79i2C4FHjbSNI9S0KEoRIJgL+IOJZkL64aa+N9z
zT4QhC4z88IzbxKWKCFUMKEGnUIWPxAcSosFpSMAH1OO8hhjPkCSP969RERXqDbBblsP0g8WvITK
269OL+sYTmdtxywse9naXvXBX/ebtZ5ZHX7zAAsF1Vg1q+/n1Pr1ABqBvKdfl8dcXTR0gVSMoJRC
MuJCc98wy8Iz6sQII0YzI8HbbFKzrsnoCVBLAwQUAAIACAAwi71I6c6s2sIBAADEAwAAVQAcAGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2VsZWN0b3JzL3Bz
ZXVkby1jbGFzc2VzL2xpbmstZGlmZi50eHRVVAkAA3yIS1d8iEtXdXgLAAEE9QEAAARQAAAAzZJv
a9swEMbf+1Mc3ots2Jocmj9eKCML7dhYR0dWWgaBoliX2FS2Mt25cRby3SenycYChe3d3pxO6HfP
czpJCAHy1pq6RJIXipW8vPsq73D+qeDDMqkLo+UUDSpCadTG1iwYiYVDqg2TLMqVdYxars8yuca5
WBnFC+vKPUYy59JIwlJVXGTkM4MZW0dyRVhrKzKjiLy/KaoHgc3Kn6J+zQ0HURT9Z+2pjGtl9s2N
xyC6cQ+ibpzCeByIQLx/9/EKriuzgXP1lmIfHfoEVKXhvK33OeeKIVePCApyhwtQzK6Y14xQKs5y
6IxasgOtq+N75Zza3ON3b0sjMFgtOSfQxWKBLobjuGAIS8swOPRw1NAWqerwQdnfrMSKCda5pVPz
XBHMEStwWNpHr/hv/oO9f99PIfKPgM4rw8skTl4BFT8Q0iRpBkkSRABTrDS62wLXzzF/JTAxNnuA
7Yebz1e759lftNUb2E6uL749wWmcHuBh2mv6wzdP8In4l+nlqXaLd/tH+sjfYMOwfcF+OS04S/p/
FAC0FLi6+g2uC815S44g3M5CdM66WTgCn/ufT2qJ7W4WzsLYx8zq/b6X9Ha7MPgJUEsDBBQAAgAI
ADCLvUiAaYO6nQAAAAQBAABZABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L3NlbWFudGljcy9zZWxlY3RvcnMvcHNldWRvLWNsYXNzZXMvbGluay1leHBlY3RlZC50eHRVVAkA
A3yIS1d8iEtXdXgLAAEE9QEAAARQAAAAlY7BCoJQFET3fsXs3LjNICRoEwRBnyBXHXvS81nv3iz/
PpPatGszzGI4Z5L97nDEKfgJhWw1mzNyLpDQoPBduMzdnBicjITARbYQs9hVdyN6sdoh3byXKUSV
0UqJUaaSt7t43cAznM0pmq5tGTPweWVtbLDGeTDkyXLhi2gGakjtA6Znz2CKhxv01+1EUZEBkf0w
zsD/9PmiXyXJC1BLAwQKAAAAAAA0jb1IAAAAAAAAAAAAAAAAPAAcAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvdGFidWxhci1kYXRhL1VUCQADQ4xLV3CMS1d1
eAsAAQT1AQAABFAAAABQSwMECgAAAAAANI29SAAAAAAAAAAAAAAAAGQAHABpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS9hdHRyaWJ1dGVz
LWNvbW1vbi10by10ZC1hbmQtdGgtZWxlbWVudHMvVVQJAANDjEtXcIxLV3V4CwABBPUBAAAEUAAA
AFBLAwQUAAIACAAzjb1Ik70SokEEAAB7HAAAeAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3MvdGFidWxhci1kYXRhL2F0dHJpYnV0ZXMtY29tbW9uLXRvLXRk
LWFuZC10aC1lbGVtZW50cy9jZWxsSW5kZXgtYWN0dWFsLnR4dFVUCQADQoxLV0KMS1d1eAsAAQT1
AQAABFAAAADVWF1P40YUfd9fMcq+7Epp6/m0vRIPsKEiKgsI0pUqxINJRou1xka2I0xR/3vvxI6/
YieewVUFEgQl986958w5d8YJvBcZIy9Fn6yp9Rkl/t8S2Q7PBBEfELqW4UrG33353BViWR+CAekn
QbT8iV7PFt/O/+kNLYOj1Qt6Pbmc/ZXHOlPsboOFm3HX3QS31p7Nv+8svYl2iuhW/M3p18X88qIr
B1Ne5rQRkK4E4tTitxkLmaXo9WMKL+0cjK2M2I0chFQgitdhFfvsr9IHFfwFTW7Wj49e/DLpa6wF
h9l1PG5He0XeVScBTqu3AYhEhtuI9mESgOnMi0OZJChJvXSdwBudVedh4IcSEF4d7+wWYV1Ve7rF
mB9IbDVcJOQtEwYNXv7RuwElkQ4+RP0eHrm121cfiVzp4vdoHa5azPVUYW61XYfK5LHFZqk6YlAJ
7pQlqHugRB6bl6AulICPkzTpJbhmcNiYuvusfnn3TIXWtrSldn58crozqATv11pRbX5x9ecizyNT
tuWaZJgM1qgo6zF3iERFRSJTJAp05SU1EvcNCcxZjRPG2H879Wx3+NCzFZaZTD0/6FDEwrsPYJsW
xyfnp50Tj7oC3d5HMcR+QWEUyruuVtUqN3KZ+lEIi52dHs86Ydrdw1BlX0fPkHk9KK2R+FUGgaq5
IzIGic3WYZOfMpREgb9CH63Nz+ccE7qNjyy0hN84OcJoCX/uOgTTszH23qHTsT12a/Rcy2QdpJPh
MAWrpgPBBkCxEVBMKn4dPAhqkZKDdTCAXcBsQhfeo9TAS50aYLjm6AMmZoBrY1i4wwDXp7FQ5vsG
J7P3Q04OG6e6qVlT0nChMLNOYxD1cTzrsA5j6HYZBVF8BHQ6QOddRfgnAlxvWC8+y6kew0kwhLGz
3Wc2jO88pTj91NWiObYP4m55SSHvRGr1IMVvRoq5rQ8VkgDrEqDMoQCI/yFaByskMz9Jf9WAr6zl
1q0lNPHvcVa/SFn9vBRYR6Wc1mRK98gUH5ApfpNMbX2Z2m+UaUma0qnAPVCtHqj4zVAJx1njgW4I
VkjaXK5jpLSawLspKDVFHnryYhmmU1RqeDJoacq3S7sUVi50fy/RL1hX94LUhc81CTUSPra4sfIx
ZiNJn7w36Ve0aWufjKN9yg20T3lT+w9RIgvdIz+BHpUP0niqq3wscNfwNzIBJtTUBcTYBUKYu8Dm
I7mAvjsXlLRpu4CO4wKHGrjAoQNcoL7R/N+t4DBTK1BTK5DGRV/PCoSKkazA3psVKtq0rcDGsYIt
DKxgi71W2BwG5hcizFjjRpQ+SOSrhXSNQBg3NQIzNoLj1IxguzpGoNZYRuDvzgglbcoItquxVXyk
M4FknOoaYfPNyH4jbB4VVLe6NoCOYPF09Rv8n/j3gR/+qJlqe0IkP/0ncAjUHba+eu4sbEbUtQ4a
Q40aia7LKDZ2GW+77F9QSwMEFAACAAgAM429SABFjiIRBQAADSAAAHYAHABpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS9hdHRyaWJ1dGVz
LWNvbW1vbi10by10ZC1hbmQtdGgtZWxlbWVudHMvY2VsbEluZGV4LWRpZmYudHh0VVQJAANCjEtX
Q4xLV3V4CwABBPUBAAAEUAAAANVZXW+bSBR9z68YpS+tYgozzAxQKVKSOlWipkkUe1OtojyMzWyD
isGCQSYb7X/fiz8xBhuwV6tEShyZ+3XO3HNnAE3TkP4Y+slIxnpXKKFf/uzpP+Xgu6fmHxeJ57v6
g/SliKXui9cwUZqSsdIiGSe+inVvNA4jJV19Yg71iRxoY1+ov8JoNDWL9Rc18vVYjkSgvGGsKzFI
fBFpbpZOKBV5gwQMtWE4GoWBpkJNuZoIXE29aJB1JAOIMZS+fx24MtVkOpZDyPZZpero5OTkvdUv
hioR/rT6szOk4Y6NTnAHGxidnR1pR9r9ea+HluYofgkT30Uy9WL1Gc0vfwujqUmMJp4CA4UEGosI
MnU2XQcSspS5voSxnLshL0ZBmIVR0d4hrvo/bvaLU12GepHIy76rGWVKENQVIOXq8F/sDXwv+FUS
PP7tjSF8FmLDPM6yHZ1A88gICYU+Gh3jE1z8WyLLZikn/OgEoQcJ8aJHT07KbAyjZoALPxz+Rm8Z
i/9U2y6tQ/cVvV3cdf+cGdsd7CysuZMyx5lZF6J3rx83gk/N7YV5waF3+bV/fXdb5oRNtnIqoiBl
HsTOOyxc+jJV6O2Dgo+iE8ZGSqx1J4QySxQlwcp44rmwamD9BR33ktFIRK/HlbUVIFErj8kpq3Du
eF/Kgl0srwYqnuINVNtwccB1JaJAxjGKlVBJDF+U570OoHMloLw/31g1QkvzVhSMMdvlWah57jGr
mlCo8e579Tos6bTxzhXYwiYzSkqropJlHfItTAK3yF9FHuqslm1nopnxfNGyTLxeEmYvk5jOriQz
41kS04EkaLpdVfOc0zwsUF6OxpZmr5gUxeUptt3N+cXlxvzibEvfzfNd397/0Z85kg5dUE5STOo3
LF9mpE6tfuUrKmlGJUf3Is5TuW1wYEZzxFBK/+tpaDkNhqGV4elKJTy/rDf6YuDDcvXPL24uSyeh
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
OT1dblv8SH9fwcsh+22n/wVQSwMECgAAAAAANI29SAAAAAAAAAAAAAAAAFAAHABpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90aGUtY2Fw
dGlvbi1lbGVtZW50L1VUCQADQ4xLV3CMS1d1eAsAAQT1AQAABFAAAABQSwMEFAACAAgANI29SE2e
nExYAAAAsgAAAGYAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL3RhYnVsYXItZGF0YS90aGUtY2FwdGlvbi1lbGVtZW50L2NhcHRpb25fMDAxLWFjdHVhbC50
eHRVVAkAA0OMS1dDjEtXdXgLAAEE9QEAAARQAAAAy0msTC1SSCxR0DDQMdBUKM6sSlWwMDCoMDMw
4FJQCErNS0ktCstMLcehJIcI7U45+cnZCtUeIb4+tTiVwhXnp1QqVDv5u0RC1FroWEDVmluYVJha
mHABAFBLAwQUAAIACAA0jb1I9oIly08BAAASAwAAZAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvdGFidWxhci1kYXRhL3RoZS1jYXB0aW9uLWVsZW1lbnQv
Y2FwdGlvbl8wMDEtZGlmZi50eHRVVAkAA0OMS1dDjEtXdXgLAAEE9QEAAARQAAAAzZDRSsMwFIbv
+xTnUmljOtxcL+eYoDhRNtnwStL2zAbTpiQnrnP47sYZBw4GXgqBEM73n/8jjDHgC61cjZZPBAl+
tZzzJea3ksI1dlKVfIYKhUWuxEY7YoSWmEHrFFku61YbwpKvzwu+xpy1StBKm3qHWV5RrbjFWjQk
C8tJ5E4Jw8qvOqqQFaIlqRvmK2psiIf3c5r2GHYtFn73GXUUxXH8v21FQU6onetoBKyXDCHuJQMY
jSIWsYfL+RxW0liCEIKwBIrKa4NegW8IiC9WuAdC2iKRbF72eX9EIAPxM7mZTEEQGZk7QpAWGqfU
IRQKqZKmPCi0lXZeKcdfwXLTiFoWQqkNGKz121GZKPafj8Y7wEmapKdg5TtClqbdRZpGMcAMmxLN
QuL6GPOnBWOli1fYXj/eTT+Os3talxvYju8nT99wlmQBHmb9bpD1o09QSwMEFAACAAgANI29SJ9L
myV8AAAA6gAAAGgAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL3RhYnVsYXItZGF0YS90aGUtY2FwdGlvbi1lbGVtZW50L2NhcHRpb25fMDAxLWV4cGVjdGVk
LnR4dFVUCQADQ4xLV0OMS1d1eAsAAQT1AQAABFAAAAB1jkEKwzAMBO9+hb5SyKXQQyEvkGOlFshy
sOVCfl/TuqEECrosmmHX3S/zDCuXarDgZpwVSCiR9hxZAuQVLNJADL3QAbi3XMmM9XHo/XCAH+D7
uE43QLPCvhkBV9AmcmJGm0Uu4dRWY259j6dfL+yKiRcU2aFQys9/S9wLUEsDBBQAAgAIADSNvUib
h4vZPAgAAHceAABsABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFu
dGljcy90YWJ1bGFyLWRhdGEvdGhlLWNhcHRpb24tZWxlbWVudC9jYXB0aW9uXzAwMS1wcmV0dHkt
ZGlmZi5odG1sVVQJAANDjEtXQ4xLV3V4CwABBPUBAAAEUAAAANVZa2/kthX97l9B2GjdBNZjPDPe
8djrIusHUmTTBvEiQT8FlERZ3KXEKUnZM7vNf+/lSyNppPEWsIs0m2Qk8pI8995zH9ReFqpkVweX
BcEZ/JREYZQWWEii3h7XKg8WxzAs1YaRq4Mlo9WnE7R8pJIqkqEvBwj+UWStgoykXGBFebVEFa/I
hZlKuMiICBKuFC+XaLJaowyeSXZx8PuB3c5tknLGxRIdxdNzMxfeUUZuaJ67+QSnnx4Er6ss8KL5
Qv9pH2RPkJzRDB1lWWbncl6pIMclZZslKnnF5QqnDmCJxQMFyBNSotgOrTgoZ/QQhIFGj8QAKiY9
pNPpdGB/iSsZSCJo3pqU9DMxZ7QPDRjJ1RLF4dyPZ1SuGIZNaAWWcQifaKYKWBzHf3L4cJbR6qFZ
abE51+inrnccXFoVAEo14gV/JKKn0Xw+vxgzNiHWDKH2yXs4S7rFOeMY1BD0oVBdz2mpa1Afgy7+
KA6mpwpUjHsqK5wwEqSEsY6Wgdm3Y6WnArQLjA811Z4EXm2R3ZNU+26UNGZxlzJ9ujjOersDoeLV
2p5wu16Be2F/UI2coFD/9DUchSdpRpKN/j8yUN8xnn76CQsVgqrLnAqpgrSgLBs1rD7uHtaf7NtM
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
dGVzdHMvaHRtbC9zZW1hbnRpY3MvdGFidWxhci1kYXRhL3RoZS10YWJsZS1lbGVtZW50L2NhcHRp
b24tbWV0aG9kcy1hY3R1YWwudHh0VVQJAANDjEtXQ4xLV3V4CwABBPUBAAAEUAAAAMtJrEwtUkgs
UdAw0DHQVCjOrEpVsDAwqDAzMOBSUAhKzUtJLQrLTC3HoSSHCO1OOfnJ2QrVHiG+PrU4lcIV56dU
KlQ7+btEQtRa6FhA1ZpbmFSYWphwAQBQSwMEFAACAAgANI29SGBvSl+aAQAAYAQAAGYAHABpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90
aGUtdGFibGUtZWxlbWVudC9jYXB0aW9uLW1ldGhvZHMtZGlmZi50eHRVVAkAA0OMS1dDjEtXdXgL
AAEE9QEAAARQAAAAzVJNb9QwEL3nV8wNqqxxVrQlx2UpEhIgULdqxXHWnhCrjh3ZEzZLxX/Hm6Rb
Wm1LuXGK9PTmfTlCCJCX3nYNRXmGjPL91Upe0fqj4emz7IzV8pwsYSRpces7FkyRRaDYWY7SNK0P
TFpuXiu5obVoLXLlQzPQoqy5sTJSg46NipJx3VkMQu/suCaRAEsiGTTkWCps2XgnGuLa6yiob0kl
9Vfcc5bn+f+eFxV3aIe0iwWI+WxeQD6fncBikYmJnIlMfH27WoEKhEzvRhRGiQmM4GgD0wGYCqg3
kY37foclimcwDnaJwWEapUVF8JR4IO6Ci5CKQGVC5L3cVAhUnQYEXw2UoSs8Jy3ey4tOp2CRAkcw
DPinofOa7uvfWh/02Rhrh6Ij/HAW72icJv7t3Lfb0e9FhDZQZfrbC50CHFiq8T/oH5d60OSg8C7M
KL5X5Br5qffM8vQjU4DEelnMiiOI5idBWRT9aVFkOcA5OU3h0qRtHuE8S2BpvbqGmw8Xnz/9epy7
Z3u9hZvll7NvI7mclRP5TXncn5TH2W9QSwMEFAACAAgANI29SCT+nzPBAAAAMAIAAGoAHABpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90
aGUtdGFibGUtZWxlbWVudC9jYXB0aW9uLW1ldGhvZHMtZXhwZWN0ZWQudHh0VVQJAANDjEtXQ4xL
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
v+K7VeBhgdTYLXVUoAkZQselnzAaG8xRmvTfiwwPgvfnfaPslGcJh5Tn+W7PGSipEdYBgzPWaFGX
yK01lkEk9MJBLXUFD2GluClk4LBxnhIdWhAOlsQnK2jkC4ES0m4I8eD70RXaQuJzhszldIxDZco7
9IdLmrxn4EhN1UEfZvF1kNSnf7mlQUt+crKNj8X0OtgPUEsDBBQAAgAIADSNvUhcbLiTxgEAABMF
AABiABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy90YWJ1
bGFyLWRhdGEvdGhlLXRhYmxlLWVsZW1lbnQvY3JlYXRlVEJvZHktZGlmZi50eHRVVAkAA0OMS1dD
jEtXdXgLAAEE9QEAAARQAAAAzZNRb9MwEMff8ynuDVBqnIqJVn1qu0aA2Fa0VJ14dJOLauHYlX1Z
Mia+O04axlSWpY88RFZ8v/vf/842Ywz41qiyQMdXggSP7xJ+h7uvkrplWUqV8VtUKBxyJR5MSYzQ
EbPoSkWOy+JgLGHGqw8pr3DHDkpQbmzRYo7vqVDcYSE0ydRxErtSCcuyphztkfkNhcwXKFATTy0K
ws3SZA8M6wOmXvk91RSEYfg/exUplUK1TudzYOPReALheDSB+TxgAfu2SBK4MZDuvUXQJkMH3e5a
I9DOazwL/oltKvNP7ClxAd6SyEBo//VKeCo3hoapNtJRre4g1eqea/qYk8n7531/3lxftRHjf7Tw
R3sQKWavzkP7k3oBcacm2zypnfTLcEsndE9rZ2qLnNCeMe2BosMyB4u5rJtpNBcTjhfSdQmVpL1/
AR3kk4Lwcn2TrK9iuI6TZPEpnoGSfvDjixncYo4WdYqxtcbO4FLoNwS59GdzL6xs5GfQPJIg9A+r
sUXwNhpF78DJnwjTKKo/RlEQglfSGdqtxKqP6ROY/k1fKpP+gMfmfvzqI5/YptnH5Xr1/YhOR9MO
nUwv6uiIngivvmxPdY/wb1BLAwQUAAIACAA0jb1Iuevk4qsAAAB4AgAAZgAcAGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvdGFidWxhci1kYXRhL3RoZS10YWJs
ZS1lbGVtZW50L2NyZWF0ZVRCb2R5LWV4cGVjdGVkLnR4dFVUCQADQ4xLV0OMS1d1eAsAAQT1AQAA
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
b24tYWN0dWFsLnR4dFVUCQADQ4xLV3uIS1d1eAsAAQT1AQAABFAAAADLSaxMLVJILFHQMNAx0FQo
zqxKVbAwMKgwMzDgUlAISs1LSS0Ky0wtx6EkhwjtTjn5ydkK1R4hvj61OJXCFeenVCpUO/m7RELU
WuhYQNWaW5hUmFqYcAEAUEsDBBQAAgAIADSNvUhVOf1newEAAJADAABlABwAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy90YWJ1bGFyLWRhdGEvdGhlLXRhYmxl
LWVsZW1lbnQvZGVsZXRlLWNhcHRpb24tZGlmZi50eHRVVAkAA0OMS1dDjEtXdXgLAAEE9QEAAARQ
AAAAzZLLTuQwEEX3+YpagtIeB/EKu6ZhJKQZHqIRiGW1XVGscezIrihpEP+OOx3YRTPLWTlVdere
m8RCCJDP3nYNRXmNjPLny1q+0OaX4elYdcZq+UiWMJK0uPUdC6bIIlDsLEdpmtYHJi37YyV72ojW
Ilc+NCMWZc2NlZEadGxUlIybzmIQemfHNYnUsCSSQUOOpU4PTEJhy8Y7QUNLKon/4IGzPM//87io
uEM7hl0uQRwtLiA/WpzCcpmJuyRPGiY0E5l4uFyvYa9wte8eHE41eGe3X2wqYLSFmZ1A3AUXoXOa
KuOSyww45+kpgvMMXAffA7ot0KBoHEfoa3IpirVJNyXBKUtvuE5fN9VfMf+mPr3ahEcwLrWiopTa
8V41zonU6PRu/L1cBd+ANlVFYbftMF2KFtWokOXpz1MAZDgoFsUhRPNGUBbFcFYUWQ7wuPMMz4b6
OeafBFbWqz/wfvN0+/tjnv2mvd7C++r++nUPl4tygs/Lk+G0PMk+AVBLAwQUAAIACAA0jb1I2IfI
lKAAAABkAQAAaQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3MvdGFidWxhci1kYXRhL3RoZS10YWJsZS1lbGVtZW50L2RlbGV0ZS1jYXB0aW9uLWV4cGVjdGVk
LnR4dFVUCQADQ4xLV3uIS1d1eAsAAQT1AQAABFAAAACFj0EOgzAMBO+8wsf2GVXvVSVe4CaOEik4
KDai/L6mhJ5APa69ux4/SJQ8OBw1Fe66563vwVMmpfs2u1ybhsJ52Z0mQPGVCY4jlXSqLDCxp5DY
Thz7Tg4WEuCioLGWGZAXoLej71pgjsTGkbO1GgY2kDlpLJOa3hn/lLe3mlsgsY3EkSGzbqVy0hGR
/br9ZUMtA/gUAtU1zDiQjOjWgu4DUEsDBBQAAgAIADCLvUgMUMGTdAgAACIgAABtABwAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy90YWJ1bGFyLWRhdGEvdGhl
LXRhYmxlLWVsZW1lbnQvZGVsZXRlLWNhcHRpb24tcHJldHR5LWRpZmYuaHRtbFVUCQADe4hLV3uI
S1d1eAsAAQT1AQAABFAAAADVWm1v4zYS/p5fQSS4pi0iyY7trO1kU3TzggLX9opm0aKfDpREWdxQ
oo+kY3v3+t9v+CZLsuRsgTXQ66JriRySz8w880Jhb3JVsNuTm5zgFH4KojBKciwkUW/PVyoLpucw
LNWWkduTOaPl8wWav1BJFUnRpxME/ymyUUFKEi6woryco5KX5NpMxVykRAQxV4oXczRcblAKzyS9
PvnzxG7nNkk442KOzgajmZkLHykj9zTL3HyMk+eF4KsyDbxoNtV/6gfZEyRnNEVnaZrauYyXKshw
Qdl2jgpecrnEiQNYYLGgAHlICjSwQ0sOyhk9BGGg0QsxgPJhC+loNOrYX+JSBpIImtUmJf1IzBn1
QwNGMjVHg3Dix1MqlwzDJrQEyziEa5qqHBYPBv9w+HCa0nJRrbTYnGv0U9M7Di4tcwClKvGcvxDR
0mgymVz3GZsQa4ZQ++RHOEu6xRnjGNQQdJGrpue01B2oj0EXfxQH01MFKg5aKiscMxIkhLGGloHZ
t2GldQ7aBcaHmmprgZc7ZE8k0b7rJY1Z3KRMmy6Os97uQKjBcmNPeNgswb2wP6hGLlCof9oa9sKT
NCXxVv+NDNR3jCfPv2ChQlB1nlEhVZDklKW9htXHPcH6i0ObCVKAay9eOc+d4c1vCRfEWqRBu4ln
HbBF0QSzADO6gNhQvEMtQTTTf8Blyog3h9tHm1C/58Q6dMfnZCWkdo2G3Y5AHIN3Vt5jcGZFHBs8
Bt4hFA2e79NhIcj2ukXMcPKav6yJUaj4q2YOM8GLlrFdftRnaKv/vCpiIoBNpM4uO+qB76dRx9rZ
rJEAfbh0pUEfyePxuDPd1L1f5Ri90cSGgA2DKuE7Hjh6dlHEwm3QaeQSVk1xo2JnwrFFotcsB5LU
Uujo1DCdAX02cazxijRiFRYFNlrNFNjTvIIeguDnQA9YQLTAC9LwzBxdVgaPGdZW1IIJpAbAAFDc
E2rrvfPKdDzrzb0ZyXYJQNMKdqzKYy2aO5amWdpcCs6W/eIzMrs+VNOrnVyWqeNwUdFfrtN0bwOU
Eta/gsxeRRN9i55WyyUXCiqtcEwGoxYFKZVE30ZwHl6pnFt722qsmxlgvQKeJt5TZoGR6an/lYwG
g4ESRtinsytPbJ1uMGN3HkGn9KWtZQXeBK3yXkBf4IYuB1XdaR8Ndj94ThXZVUg3junCGfIlsWUz
WJP4mapACR121hIWOAov5XVNjbFT+kwqrFby3SqGGl7Vw1BHTyccvURxzmIsmvP+6IwRE6G7iYJ/
rEar5DSycez6KP3ouwX93N8S9mWOg63cjhYZ3RC7j8vHg6ZKITY9iA2z/Sq+ppALRItq1Z4fA1qm
ZANJ6oBqu0JYg9Cll0tGjfI2dVms1DBdwHaWJjgv5ptXgV7tgA4tiX0Rsm8GrHuuKph7rQBXnVnj
aJoJXFiErThpthG1GLnrybT7ttlCr8nXrtYTBo0j9MyfUZiuZo87erma3DNpDNGcq9rIdL89bjbH
bg9rvn0O97YEqc+z9pjvfVLwV51Bffa9r5GtO8nVG5/Q9mEeCJLabUcW2Pby9ZxbcgHD1z1Zxumv
WzDZdbjVw8f1oEuE4ZiwOc4gwi72lttxs4kpyCWoeor+i06vT6pCXCvf7dUMQ4fOs0Btl6Rzq9Ne
RE6wdcXNCTMJsmpGsW5Ge2rUWUGk9I1Hr5273FKLjieTqD+nFEKJgYbohfKVvKtGoJn9SMq7WrHs
qvO+5WiXmHpx0bkcWGuY4HO7e3dMdElk5GvgZ6Fx1IAehygdE41y4dq+nqavXmfjFURVWc87vr6n
9GWe8cTZkK+Uzhf18IvZylQSNwV8yQALVLChV6ReLM0u0MO8z4k9KXKVdgH4tQ6KIwVzsZV2VJPo
hWKdk9VPjhMANhZ8DQ6HTiDHsNY1RVSFugmq9BhPXBdftSLu3WcH3cjq/wfNIuo/6bR7/IKmcMuy
imkHSX/57qgo0IdxiV/A9mAB0qor9ZveXqkLhuHItky7jx+++nf44Oz+/r4W0mfTx/vHyWNnfoLm
spvFDw8PXajnpFhChmo437VpLckQHgFpI/IfZtPB1OWthBEs/m3aA38V0CPm2pRrkZvIfXW7kYmg
S/CpSN6e5kot5TyK8Ae8CRecL2DRkkpNXTMWMRrL6MN/VkRso2E4Di/dSwitZfhBnt7Cvma/W9Tc
OeEpCbQPyRrkvgNPa2e+HU9rSwCU+1AY83QLPxAPgBtL+fbc3wT098J8eBv9Bv6EnBXdY4Wjh9+f
ot9J/E+q3M+7FWVp9CvUXSxJBEwBcwaKQIaF6/uKKRnRQjOYpNF6lESQNgLgk4ImvzBiMtIfLiNJ
ClwCI2WkcLxiWASpPg5iJrBflOAAHdIRXDQIhH2Cl5pvAfQ+K8xCtVGg0bCpSO070vn+jLnf943r
ez+yV5uWiL70oOb3op0cJKPSC5oPBrsu5Px2CNaH+duGFOSFusxXZSyX152CUODPb38Gi0F347R3
cuBMAPilYF5+AZhHATb6AsB++f7pCVkK3Vkbfv2Ne4fcy7besjoRG96ho6gyPpYqgqiVgBsLZECS
wWbpcfBPjoX/KGivjkYcTiTURajuORRthMstIpuELO2tcZ3DRRxKLAMvAJ2wI9SaqhxyJLx7rh1F
6TdHV9qFjdNCQrMGQzIhQD39iUMrK4+j2/RYuuXmW7Pc6WSOTqEqEKGVKuEWaxrOIyk2O0LuNT/9
RQ76sNcrnBM6iP0ALv4ZddBgh/ZBn6bQ14OLwTdIN3hoOhhsrgaDv2bvLwr4sh8wQr9qvovfoNn6
2+Ee/b8Zevy6oQ1x0acf3v/0459/O/yTQ/grDaDhRp/e/ev+D6vA9GLqFHgzHW8m0/GrAVy7cehw
N9N12d2Pae5vIvtPA/4HUEsDBBQAAgAIADCLvUhNnpxMWAAAALIAAABsABwAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy90YWJ1bGFyLWRhdGEvdGhlLXRhYmxl
LWVsZW1lbnQvaW5zZXJ0Um93LW1ldGhvZC0wMS1hY3R1YWwudHh0VVQJAAN7iEtXe4hLV3V4CwAB
BPUBAAAEUAAAAMtJrEwtUkgsUdAw0DHQVCjOrEpVsDAwqDAzMOBSUAhKzUtJLQrLTC3HoSSHCO1O
OfnJ2QrVHiG+PrU4lcIV56dUKlQ7+btEQtRa6FhA1ZpbmFSYWphwAQBQSwMEFAACAAgAMIu9SHeD
afcWAQAAVAIAAGoAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL3RhYnVsYXItZGF0YS90aGUtdGFibGUtZWxlbWVudC9pbnNlcnRSb3ctbWV0aG9kLTAxLWRp
ZmYudHh0VVQJAAN7iEtXe4hLV3V4CwABBPUBAAAEUAAAANXOTWvCQBAG4Ht+xRyVZLoRtQ09pWKg
0k+Som0vsiZTXLrJyu6ExIr/vakVb0KvPQ0Mz8z7IiKIudF1SU5MJUuRLDKxoNWd4uOY1EoXIiVN
0pHQcmtqRibHaMnVmp1Q5cZYpkI0w1w0tMKNlvxhbHlgTqy51MJRKStWuRMsV7WWFoufOF4TdgtN
2AWUVLFQlSPLqWmwJF6bAsMBUruhvEu44JY93/f/Q2eZcy31oXEcAw6CIfiDYAxx7KGHzzdZBqez
Xv8aZo/T5HWZzd6TZZKm0CG/K04WJEMvDMI+OPVFEIVhexmGng+QUlWQnStqzpk/PZhok3/C7vbl
4X5/3p60KbawmzxN335xFERHfBWN2nE08r4BUEsDBAoAAgAAADCLvUhjyYZ0JAAAACQAAABuABwA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy90YWJ1bGFyLWRh
dGEvdGhlLXRhYmxlLWVsZW1lbnQvaW5zZXJ0Um93LW1ldGhvZC0wMS1leHBlY3RlZC50eHRVVAkA
A3uIS1d7iEtXdXgLAAEE9QEAAARQAAAAClBBU1MgaW5zZXJ0Um93KCk6IElOREVYX1NJWkVfRVJS
IAoKUEsDBBQAAgAIADCLvUh4VGE58wcAAFcbAAByABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcy90YWJ1bGFyLWRhdGEvdGhlLXRhYmxlLWVsZW1lbnQvaW5z
ZXJ0Um93LW1ldGhvZC0wMS1wcmV0dHktZGlmZi5odG1sVVQJAAN7iEtXe4hLV3V4CwABBPUBAAAE
UAAAANVZa2/jNhb9nl9BJOimLaKHYzu1nUwWncRBiz6RDNrd/TKgJMrmhBJdko6dmfa/9/IlS7Lk
TIEp0O2gY4m8JM+999wHNVdLVbDro6slwRn8FERhlC6xkES9Ol2rPJicwrBUz4xcH80YLR/P0OyJ
SqpIhj4cIfhPka0KMpJygRXl5QyVvCSXZirhIiMiSLhSvJihwWqLMngm2eXRH0d2O7dJyhkXM3QS
D6dmLryjjNzSPHfzCU4fF4KvyyzwovlE/6kfZE+QnNEMnWRZZudyXqogxwVlzzNU8JLLFU4dwAKL
BQXIA1Kg2A6tOChn9BCEgUZPxABaDlpIh8Nhx/4SlzKQRNC8Ninpe2LOqB8aMJKrGYrDsR/PqFwx
DJvQEizjEG5oppawOI4/c/hwltFyUa202Jxr9FPTOw4uLZcASlXiS/5EREuj8Xh82WdsQqwZQu2T
7+Es6RbnjGNQQ9DFUjU9p6VuQH0MuvijOJieKlAxbqmscMJIkBLGGloGZt+GlTZL0C4wPtRU2wi8
2iF7IKn2XS9pzOImZdp0cZz1dgdCxautPWG+XYF7YX9QjZyhUP+0NeyFJ2lGkmf9NzJQXzOePv6M
hQpB1VlOhVRBuqQs6zWsPu4B1p8d2kyQAlx79sJ57gxvfku4INEiDdqNPeuALYqmmAWY0QXEhuId
agmimf4NLjNGvDncPtqE+n1JrEN3fE7XQmrXaNjtCMQJeGftPQZnVsSxwWPgHULR4Pk+HRaCPF+2
iBmOX/KXNTEKFX/RzGEueNEytsuP+gxt9R/XRUIEsInU2WVHPfD9NOpYO502EqAPl6406CN5NBp1
ppu696scozca2xCwYVAlfMcDR88uili4DToNXcKqKW5U7Ew4tkj0muVAkloJHZ0apjOgzyaONV6R
RqzCosBGq5kCe5pX0EMQ/BjoAQuIFnhBGp6ZofPK4AnD2opaMIXUABgAintCbb13XpmMpr25Nyf5
LgFoWsGOVXmsRXPH0izPmkvB2bJffEqml4dqerWTyzJ1HC4q+st1lu1tgDLC+leQ6Ytooi/Rw3q1
4kJBpRWOyWDUoiClkujLCM7Da7Xk1t62GutmBlivgKep95RZYGR66n8lo8FgoIQR9unswhNbpxvM
2I1H0Cl9bmtZgbdBq7wX0Be4ofO4qjvto8HuB8+pIrsK6cYxXThDviK2bAYbkjxSFSihw85awgJH
4bm8rKkxckqfSIXVWr5eJ1DDq3oY6ujphKOXKM5ZgkVz3h+dM2IidDdR8PfVaJWchjaOXR+lH323
oJ/7W8K+zHGwldvRIqdbYvdx+ThuqhRi04PYMNuv4hsKuUC0qFbt+T6gZUa2kKQOqLYrhDUIXXq5
ZNQobxOXxUoN0wVsZ2mC8xK+fRHoxQ7owJLYFyH7ZsC656qCudcKcNWZNY6mucCFRdiKk2YbUYuR
m55Mu2+bZ+g1+cbVesKgcYSe+SMK08X0bkcvV5N7Jo0hmnNVG5ntt8fN5tjtYc23z+HeliDzedYe
87VPCv6qE9dn3/ga2bqTXHzlE9o+zANBUrvtyALbXr6ec0suYPiyJ8s4/XULJrsOt3r4uI67RBhO
CJvhHCLsbG+5HTebmIJcgqrH6Hd0fHlUFeJa+W6vZhg6dJ4H6nlFOrc67kXkBFtX3CVhJkFWzSjW
zWhPjTopiJS+8ei1c5dbatHxYBL1x5RCKDHQED1RvpY31Qg0s+9JeVMrll113rcc7RJTLy46lwNr
DRN8bnfvjokuiQx9DfwoNI4a0OMQpWOiUS5c29fT9NXrbLKGqCrrecfX94w+zXKeOhvytdL5oh5+
CVubSuKmgC85YIEKNvCK1Iul2QV6mDdLYk+KXKVdAH6tg+JIwVxipR3VJHqiWOdk9YPjBIBNBN+A
w6ETWGJY65oiqkLdBFV6jMaui69aEffus4NuZPX/cbOI+k867R6/oBncsqxi2kHSX747Kgr0YVzi
J7A9WIC06kr9prdX6oJBOLQt0+7jh6/+HT44ub29rYX0yeTu9m5815mfoLnsZvF8Pu9CPSPFCjJU
w/muTWtJhvAISBuRP59O4onLWykjWLw17YG/CugRc21aapGryH11u5KpoCvwqUhfHS+VWslZFOF3
eBsuOF/AohWVmrpmLGI0kdG739ZEPEeDcBSeu5cQWsvwnTy+hn3NfteouXPKMxJoH5INyP0bPK2d
+Wo0qS0BUO5DYcKzZ/iBeADcWMpXp/4moL8XLgfX0S/gT8hZ0S1WOJr/+hD9SpLvqHI/r9eUZdE9
1F0sSQRMAXMGikCGhev7mikZ0UIzmGTRZphGkDYC4JOCJr8wYjLSHy4jSQpcAiNlpHCyZlgEmT4O
YiawX5TgAB3SkU4JQt3zTVAQuA5kQTwIoAFaYxaqrQK1Bk1tah+TTvdnzCW/b1xf/pG937RE9M0H
NT8a7eQgI5Ve0Hw12LUip9cDcAHMXzekIDnUZf5VJnJ12SkIVf702s2ADwHSpwJ2/gmA/fz1wwOq
HPT5FzP07Y+38/+8ffj2f/O38/t79LcgH/4NJjU//aSA5PUyI5zQQewHcPGP4I3BDjGnT1Po8/gs
/gLprIgmcby9iOO/Zu9PCvi8HzBC9wSuHOIXyFD/ONzD/zdDj142tCEu+vDNmx++/+Mfh398CH+l
AVQp9OH1T7f/tQpMziZOga8mo+14MnoxgGtlWoe7ma7L7n5MRbyK7L+n/QlQSwMEFAACAAgAMIu9
SE2enExYAAAAsgAAAGwAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL3RhYnVsYXItZGF0YS90aGUtdGFibGUtZWxlbWVudC9pbnNlcnRSb3ctbWV0aG9kLTAy
LWFjdHVhbC50eHRVVAkAA3uIS1d7iEtXdXgLAAEE9QEAAARQAAAAy0msTC1SSCxR0DDQMdBUKM6s
SlWwMDCoMDMw4FJQCErNS0ktCstMLcehJIcI7U45+cnZCtUeIb4+tTiVwhXnp1QqVDv5u0RC1Fro
WEDVmluYVJhamHABAFBLAwQUAAIACAAwi71ILsqEHzIBAADQAgAAagAcAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvdGFidWxhci1kYXRhL3RoZS10YWJsZS1l
bGVtZW50L2luc2VydFJvdy1tZXRob2QtMDItZGlmZi50eHRVVAkAA3uIS1d7iEtXdXgLAAEE9QEA
AARQAAAA1ZBBS8NAEIXv+RVzbEnHTbWtwVMsLQgqSistHjfJSIK72bA7IanF/25MYxGh0KunZd98
+96bRUQQG6MqTU4sJEux3K7FluL7nPtjXuUqFStSJB0JJXemYmRyjJZcpdiJXJfGMqWivkpETTGW
SvKbsbrDnMhYK+FIy4LzxAmWcaWkxfQ7jjPCVlCEbYCmgkVeOLK8MjVq4sykGFwiNSUlbcIFN+z5
vv8fOsuEK6m6xlEEOB7NwB+PphBFHnr4fLtew/HZYHgDS13yDjpf6OeHi8tMpVJwLC1DuwhQR/71
+OEOAkhgC32/M9jYpLtfuOe3n0YWJMMgGAVDcPkHQRgEzSwIPB9gRUVKdpNTfYo5y2CuTPIO+7uX
x4fP0+yR/i65nz8tXg9wOAp7+DqcNNNw4n0BUEsDBBQAAgAIADCLvUgJlz3SVwAAAJ0AAABuABwA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy90YWJ1bGFyLWRh
dGEvdGhlLXRhYmxlLWVsZW1lbnQvaW5zZXJ0Um93LW1ldGhvZC0wMi1leHBlY3RlZC50eHRVVAkA
A3uIS1d7iEtXdXgLAAEE9QEAAARQAAAA4wpwDA5WyMwrTi0qCcov19C0UnDNLSipVChJTMpJVeAC
S0PYxRn5pTkpCsUliUUlCvmlJQqpYIVcqCbAlEEEFBIVSooUUnNSc1PzSggrTcpPqUSo5gIAUEsD
BBQAAgAIADCLvUiDgT9WFwgAAJgdAAByABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy90YWJ1bGFyLWRhdGEvdGhlLXRhYmxlLWVsZW1lbnQvaW5zZXJ0Um93
LW1ldGhvZC0wMi1wcmV0dHktZGlmZi5odG1sVVQJAAN7iEtXe4hLV3V4CwABBPUBAAAEUAAAANVZ
a2/jNhb9nl9BJNhNW0QPx3ZqO5ksOnmgwLa7xWTQYj8tKImyOaFEL0nFzsz2v+/lS5ZkyZkFkkW3
g44l8pI893XupeZqpQp2fXS1IjiDn4IojNIVFpKod6eVyoPZKQxL9czI9dGC0fLxDC2eqKSKZOjL
EYL/FNmqICMpF1hRXi5QyUtyaaYSLjIigoQrxYsFGq23KINnkl0e/X5kt3ObpJxxsUAn8Xhu5sJ7
ysgtzXM3n+D0cSl4VWaBF81n+k/zIHuC5Ixm6CTLMjuX81IFOS4oe16ggpdcrnHqABZYLClAHpEC
xXZozUE5o4cgDDR6IgbQatRBOh6Pe/aXuJSBJILmjUlJPxNzRvPQgJFcLVAcTv14RuWaYdiElmAZ
h3BDM7WCxXH8J4cPZxktl/VKi825Rj+1vePg0nIFoFQtvuJPRHQ0mk6nl0PGJsSaIdQ++QnOkm5x
zjgGNQRdrlTbc1rqBtTHoIs/ioPpqQIV447KCieMBClhrKVlYPZtWWmzAu0C40MdahuB1ztkDyTV
vhsMGrO4HTLdcHEx6+0OARWvt/aEu+0a3Av7g2rkDIX6p6vhIDxJM5I867+Rgfqe8fTxFyxUCKou
ciqkCtIVZdmgYfVxD7D+7NBmghTg2rMXznNnePPbgAsSLdIKu6mPOogWRVPMAszoEnJD8R61BNGR
/iMuM0a8Odw+2oT6fUWsQ3fxnFZCatdo2N0MxAl4p/IegzPrwLHJY+AdQtGK8/1wWAryfNkJzHD6
kr+siVGo+ItmDnPBi46xHT/qM7TV/1YVCREQTaQZXXbUA9+nURe183mLAH269NGgz+TJZNJLN03v
1xyjN5raFLBpUBO+iwMXnn0hYuG2wmnsCKuhuFGxl3BskRg0ywGSWgudnRqmM6BnExc1XpFWrsKi
wGarmQJ7mlfQQxD8GOgBC4gWeElanlmg89rgCcPailowBWoADADFPaGu3juvzCbzQe7NSb4jAB1W
sGNdHhvZ3LM0y7P2UnC2HBafk/nloZpe7+RYponDZcVwuc6yvQ1QRtjwCjJ/EU30HXqo1msuFFRa
4SIZjFoUpFQSfRfBebhSK27tbauxbmYg6hXEaeo9ZRYYmYH6X8toMBhCwgh7Orvwga3pBjN24xH0
Sp/bWlbgbdAp7wX0BW7oPK7rTvdosPvBc+rMrlO6dUwfzpCviS2bwYYkj1QFSui0s5awwFF4Li8b
akyc0idSYVXJ91UCNbyuh6HOnl44eoninCVYtOf90TkjJkN3EwX/XI/W5DS2eez6KP3ouwX9PNwS
DjHHwVZuFxY53RK7j+PjuK1SiE0PYtNsv4pvKHCB6IRavefngJYZ2QJJHVBtVwgbEPr0cmTUKm8z
x2KlhukStrc0wXkJ374I9GIHdGSD2Bch+2bAuue6grnXGnDdmbWOprnAhUXYyZN2G9HIkZsBpt23
zTP0mnzjaj1h0DhCz/wVhelifr8LL1eTByaNIdpzdRuZ7bfH7ebY7WHNtx/Dgy1B5nnWHvODJwV/
1Ymbsx99jezcSS6+94S2D/NAkjRuO7LAtpdvcm7JBQxfDrCM01+3YLLvcKuHz+u4T4ThhLAFziHD
zvaW23GziSnIJah6jP6Nji+P6kLcKN/d1QxDh87zQD2vSe9Wx4OInGDnirsizBBk3Yxi3YwO1KiT
gkjpG49BO/e5pZEdD4aov6YUQomBhuiJ8kre1CPQzH4m5U2jWPbVed9ydEtMs7hoLoeoNZHgud29
u0h0JDL2NfCr0LjQgB6HKJ0TrXLh2r6Bpq9ZZ5MKsqps8o6v7xl9WuQ8dTbkldJ80Uy/hFWmkrgp
iJccsEAFG3lFmsXS7AI9zMcVsSdFrtIuAb/WQXGkYC6x0i7UJHqiWHOy+tnFBIBNBN+Aw6ETWGFY
65oiqkLdBNV6TKaui69bEffu2UE3svr/uF1E/Sedbo9f0AxuWVYx7SDpL989FQX6MC7xE9geLEA6
daV509srdcEoHNuWaffxw1f/Hh+c3N7eNlL6ZHZ/ez+97+UnaC77o/ju7q4P9YIUa2ColvNdm9aR
DOERkLYy/24+i2eOt1JGsPinaQ/8VUCPmGvTSotcRe6r25VMBV2DT0X67nil1Fouogh/wttwyfkS
Fq2p1KFrxiJGExl9+ldFxHM0CifhuXsJobUMP8nja9jX7HeN2junPCOB9iHZgNxfwNPame8ms8YS
AOU+FCY8e4YfyAfAjaV8d+pvAvp74Wp0Hf0K/gTOim6xwtHdbw/RbyT5K1Xu531FWRZ9gLqLJYkg
UsCcgSLAsHB9r5iSES10BJMs2ozTCGgjgHhS0OQXRkxG+sNlJEmBS4hIGSmcVAyLINPHQc4E9osS
HKBTOtKUINQHvgkKAteBLIjPA2iAKsxCtVWg1qitTeNj0un+jLnkD43ryz+y95uOiL75oPZHo50c
MFLpBc1Xg10rcno9AhfA/HVLCsihKfPnMpHry15BqPKn124GfAiQXgvY+SsA++WHhwdUO+ibbxfo
zmSZ8SB6E9jj14JtMcoVr1iGIPHB9RDJyNLEm0CfvLrFPXw7AG2WEsjlzduoMP0fqKAJ6m21uHiD
nDQ/w6wC1e9lSnFCB7EfwMW/gngMdiBtfZpC38Rn8bdIl1U0i+PtRRz/d/Z+VcDnw4AR+kDgzip+
hRL3h8M9/n8z9ORlQ5vARV9+/PjzT7//4fBPD+GvNdAs8uX932//YRWYnc2cAt/PJtvpbPJiAjf6
PJ3uZropu/sxLdVVZP9B9j9QSwMEFAACAAgAMIu9SE2enExYAAAAsgAAAGwAHABpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90aGUtdGFi
bGUtZWxlbWVudC9pbnNlcnRSb3ctbWV0aG9kLTAzLWFjdHVhbC50eHRVVAkAA3uIS1d7iEtXdXgL
AAEE9QEAAARQAAAAy0msTC1SSCxR0DDQMdBUKM6sSlWwMDCoMDMw4FJQCErNS0ktCstMLcehJIcI
7U45+cnZCtUeIb4+tTiVwhXnp1QqVDv5u0RC1FroWEDVmluYVJhamHABAFBLAwQUAAIACAAwi71I
mkBECEABAADDAgAAagAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3MvdGFidWxhci1kYXRhL3RoZS10YWJsZS1lbGVtZW50L2luc2VydFJvdy1tZXRob2QtMDMt
ZGlmZi50eHRVVAkAA3uIS1d7iEtXdXgLAAEE9QEAAARQAAAA1ZDPS8MwFMfv/SvecaN7prJNi6c6
JggqyiYbHtP2SYNJU5JXujn83822uoMw8OolIY9Pvj8eIoJYWd0a8mIuWYq79VKsKX9Q3F+zVulS
LEiT9CS03NqWkckzOvKtZi+UaaxjKkU3LkRHOTZa8rt15oB5UbHRwpORNavCC5Z5q6XDcm/HFWEY
aMJgYKhmoWpPjhe2Q0Nc2RKTMdKmoSI4XPCGoziO/0NmWXAr9SFxlgFejqYQ748sizDCl9vlEk7f
BsMbqG2NZBrewkEbeub48JVtdQmepWMIZaBTXAF3FpztPPzW++GPA5DADvqskFOoSRBKgKfC1uVe
IihEcdgTOZAMg2SUDMGrT4I0STZXSRLFAAuqS3IrRd055k8CM22LD9jdvz49fp1nT7Qtt7CbPc/f
jnA6Snv4Op1spukk+gZQSwMEFAACAAgAMIu9SGGiDxxqAAAAkQAAAG4AHABpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90aGUtdGFibGUt
ZWxlbWVudC9pbnNlcnRSb3ctbWV0aG9kLTAzLWV4cGVjdGVkLnR4dFVUCQADe4hLV3uIS1d1eAsA
AQT1AQAABFAAAAA9zMsNwjAQhOG7q5gjHGiAGx0gUoFDBjmSs4vWE1l0zyPAbTT69aXzaRgwW2Po
4n23P8LcDlzuekB5rET6JNtuxdc6oSmH4KvQZxWoO8J7+6Z/7ZdvBzIUYOVCE0bePAiVF8qr2/QW
kNITUEsDBBQAAgAIADCLvUhKR9zGdggAAMIeAAByABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcy90YWJ1bGFyLWRhdGEvdGhlLXRhYmxlLWVsZW1lbnQvaW5z
ZXJ0Um93LW1ldGhvZC0wMy1wcmV0dHktZGlmZi5odG1sVVQJAAN7iEtXe4hLV3V4CwABBPUBAAAE
UAAAAM1Za2/bRhb97l8xsLF1U5gPWZIry46K+oUCfWwRBy3202IoDsWJSY46M7LkpPnvvfOihhQp
e7ExkBgxOe9zX+feoS9zWRazg8uc4BQeJZEYzXPMBZFvj1cyCybH0C3kU0FmB9OCVg8naPpIBZUk
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
CCvgfpkjuWZIpYjXFHf0VTmDU4TXZVgACknJkWUGlBAglYYCVcYVBJJtqjT2mgobv0JY60c/MUEC
fZ6V7KS92PfgYi/gLoMdDDID8ldHSvRtfBK/QSo9o0kcb87i+FLx9v+o+i+K/fQZ7Ai9Ixak+lWl
XoPwPyCXIux1SeQ1lLhe8433rpTg7/TV6GP4Elv6gjSlry38VQo3+r+MrUMMffrp/a+/fO4Su2Fe
r/GVKmP8rDKUOiq4HVxBKYg+Xf375j+fdRRPTiY2ir+fjDbjyahblh2e8ipixWp62J+7feji8zIy
f7r+B1BLAwQUAAIACAAwi71I4hWiBbIAAABoAQAAaAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvdGFidWxhci1kYXRhL3RoZS10YWJsZS1lbGVtZW50L3Rh
YmxlLWluc2VydFJvdy1hY3R1YWwudHh0VVQJAAN8iEtXfIhLV3V4CwABBPUBAAAEUAAAAI3MTQuC
QBAG4Hu/YtguBR420jSPUtChKESCYC/iDiWZC+uGmvjfc80+EIQuM/PCM28SlighVDChBp1CFj8Q
HEqLBaUjAB9TjvIYYz5Akj/evUREV6g2wW5bD9IPFryEytuvTi/rGE5nbccsLHvZ2l71wV/3m7We
WR1+8wALBdVYNavv59T69QAagbynX5fHXF00dIFUjKCUQjLiQnPfMMvCM+rECCNGMyPB22xSs67J
6AlQSwMEFAACAAgAMIu9SKahmdqNAQAAuAMAAGYAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90aGUtdGFibGUtZWxlbWVudC90YWJs
ZS1pbnNlcnRSb3ctZGlmZi50eHRVVAkAA3yIS1d8iEtXdXgLAAEE9QEAAARQAAAAzZLBTuMwEIbv
eYpR9gJKjFPRLllO3QokJECgFoGQenHj6cbCiSN7oqRUffd1UgqiUhHa0148nl/f/DNjmTEG/NHo
ukDHLwQJfvk040+4uFb0Fia10pJPUaNwyLVYmZoYoSNm0dWaHFdFZSyh5M1pxhtcsEoLWhpb9Jjj
ORWaOyxESSpznMSi1sIy2bWjHJkXNDLfoMCS+DZTpUNLU9MwbCvMvPsJtRREUfS/zysyqoXupx2P
gQ3iEUSDOIXxOGABu/89m8E7DC43tZZQGoLMVCuoLC5Viw4OkVvBBzIggBZGruK+fKfkKGQMagn9
XCfWNA6UAywqWv2769IY+sI1iPw7owVBcJTEyTE49YqQJkn7M0mCCGCKpUT7qLA5xHzLYKJN9gLr
q4fbm81h9p32a8B6cnfxvIXTOH2Dz9JhOzr7tYX3zO+nl/veHT4Y7egd/4AtwfoH+bBfcJqMPhUA
dBTYuvwAGyUp78hzCNfzEK01dh6eg7/7z+3EH+yyeTgPY39mRvb5MBluNmHwF1BLAwQUAAIACAAw
i71Izqln2mUAAADVAAAAagAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9z
ZW1hbnRpY3MvdGFidWxhci1kYXRhL3RoZS10YWJsZS1lbGVtZW50L3RhYmxlLWluc2VydFJvdy1l
eHBlY3RlZC50eHRVVAkAA3yIS1d8iEtXdXgLAAEE9QEAAARQAAAAnYzBDYMwEAT/rmILQPSQDlCo
wMRnYQm8lu8icPegRPzIJ6+VRjvjhsc4ImWVak9u0JnvJSDT8GJpKFVi2kXh7o9fcI4RHjYxtO5j
X2QWHzqkCPPTIn3lpkgKWYu1v6ORtN9RdwBQSwMEFAACAAgAMIu9SE2enExYAAAAsgAAAGAAHABp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0
YS90aGUtdGFibGUtZWxlbWVudC90Qm9kaWVzLWFjdHVhbC50eHRVVAkAA3uIS1d7iEtXdXgLAAEE
9QEAAARQAAAAy0msTC1SSCxR0DDQMdBUKM6sSlWwMDCoMDMw4FJQCErNS0ktCstMLcehJIcI7U45
+cnZCtUeIb4+tTiVwhXnp1QqVDv5u0RC1FroWEDVmluYVJhamHABAFBLAwQUAAIACAAwi71IlSP6
FBcBAABmAgAAXgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3MvdGFidWxhci1kYXRhL3RoZS10YWJsZS1lbGVtZW50L3RCb2RpZXMtZGlmZi50eHRVVAkAA3uI
S1d8iEtXdXgLAAEE9QEAAARQAAAAzY9NS8NAEIbP5lfMUUmmm9oPc4yxBUFFaUuLx00y0sVJt2Qn
NLX4302T4K3g0dPwDg/zvIOIoNaWq4KcmmnRar5Zqg2lT0b6kVSGc7UgJu1IsT7aSlDICZbkKhan
TLG3pVCuDqNMHSjFPWv5sGXRYk5tpWDlqNA7MZlTotOKdYn5WSdbwmbBhI2goJ0oSWxuyCHVe8qa
qwOpxfN9/7/21JlUmtuWcQw4DKbgD4MJxLGHD8QMw6t23PZx1MVxHyddnHro4dv9cgmPq5fn1dk0
70SDXgQN4TdvUQla4DoMwhtw5osgCsN6GoaeD7CgXU7l2tDhEvOnAwnb7BNO5ybfl9lf2uZHOCWv
s/cOjoKoh++icT2Jxt4PUEsDBBQAAgAIADCLvUhc9mkkOgAAAEsAAABiABwAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy90YWJ1bGFyLWRhdGEvdGhlLXRhYmxl
LWVsZW1lbnQvdEJvZGllcy1leHBlY3RlZC50eHRVVAkAA3uIS1d7iEtXdXgLAAEE9QEAAARQAAAA
c07NyVEw5HQGUUZcYMoYwjOB8EwhPDMurgDH4GAFjxBfn5DEpJxU15zU3NS8Er0Sp/yUzNRiBS4u
AFBLAwQUAAIACAAwi71I5l8PLAMIAAA6HQAAZgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3MvdGFidWxhci1kYXRhL3RoZS10YWJsZS1lbGVtZW50L3RCb2Rp
ZXMtcHJldHR5LWRpZmYuaHRtbFVUCQADfIhLV3yIS1d1eAsAAQT1AQAABFAAAADVWWtv47gV/dz8
CiJBm3YRPRzbWcfOpNi8sEB328VmsIt+KiiJsjmhRJekYmem+997+ZIlWXKmQAJsd7Ajmbwkz32d
e6m5WqmCXR9drQjO4FEQhVG6wkIS9eG0UnkwO4VhqV4YuT6aM1o+naH5M5VUkQx9OULwnyJbFWQk
5QIryss5KnlJFmYq4SIjIki4UryYo9F6izJ4J9ni6Lcju53bJOWMizk6iceXZi58oIzc0Tx38wlO
n5aCV2UWeNF8pv80D7InSM5ohk6yLLNzOS9VkOOCspc5KnjJ5RqnDmCBxZIC5BEpUGyH1hyUM3oI
wkCjZ2IArUYdpOPxuGd/iUsZSCJo3piU9DMxZzQPDRjJ1RzF4dSPZ1SuGYZNaAmWcQg3NFMrWBzH
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
2DSRI/LAZikMlKfA5FCONDjNgaXC6TSpV7lw5CE0iodR32P1Akrfszll0930LgY7Pd/Ae1y3yXd9
O/550zFRm2TnBK0ham5Xcyuj1citZkFKS+4XGFLXU5p1QmiQopjQ+tG90IJHtEJLdow+44JPlTeq
hmjeB20s2pNZfQwPD0eJJqimJ0r4JHgW0El5ZEkcrm9OEnnJPE9mzXwCs75BTOFm8Gt4poO5+Amj
Mwjm4tdvVR6os087X62u15X9IxGbtiJP4iR5uVSOoECc7cTGgn1GAb6PgrWloK+x2YCCtaWAbEFh
KnqJ0oy6k3PXBfCWrtgxzB283T0LF7cPvY87xnbO3nCabeAGk9IwZMf+JgYsfWRKA+8XX7tI0cQQ
mc3dr78BkiYK9jP7G+iH2B8ZR9sfJVP1be88SECYn+APdP+WgZiijdxfYJCM0uR2dqz9kfTN7gw+
QF74Xy/YX2z9cf5PR8sn6gf+yyqIo88lCaw9GjSYNEYteN/IkS448lb7sLnWPjS/1z6kF1uBUBqW
CO38kMsml12IlUPyvo4ng8xbhl5Q1tTfq+wecL2ypmGKspecP3U0TVRGvWUQ8Y4tLtPv+abiVGI6
4o0H2o0VNPJub8o3i4izp251QSGLgjicM1GLOBTL9NJy+mfUgdjWO1hvmhIX3tnx5ogdm5I4Zgeh
phlJTtJK2sGjF8yoB+bCft0PFt/pGMrJf1BLAwQUAAIACAAwi71IJv98XmYAAACEAAAAYAAcAGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvdGFidWxhci1kYXRh
L3RoZS10YWJsZS1lbGVtZW50L3RGb290LWV4cGVjdGVkLnR4dFVUCQADfIhLV3yIS1d1eAsAAQT1
AQAABFAAAADjcnP09FEoccvPL1EoSS0uKVZILC5OLSqJTy0sTcwptlJIrShITS5JTVFwzUnNTc0r
UcjLT0lVsClJyk+pVMhMsVUCs4yU7Gz0wSw7haTSEoV0oHFoGjJSE1MgGkAssHoQw46LCwBQSwME
FAACAAgAMIu9SB/C4CaADAAAOlUAAGQAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90aGUtdGFibGUtZWxlbWVudC90Rm9vdC1wcmV0
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
RMVLHncrjdBUCQyG2Cwo1z2fil/gU5/1envgohssnn86EFuSi9aBcNHfAxd7Cy6a81IyKoET7MDF
3oKLti+5eAtLcOVM9MzdQiwoY8yUuN6jBKvHZe0hwgJnke57TjXf24cRY569hxhzHL+MMk/x5qPn
7EBHAYTz0Ss3IcWLCOop6e6gD6u/9eJWNZVlq8yKnre7QjRraFyVaLq7JI1LKRE9+4Alotfbq0S0
FT9J8vz9SER78TzpEHaRvGAPTASB6DoHrBC75l6p6LhqFWLX2g8VF09pirdQlHOxa+9JItplST6M
p09dZw9BBhrRrEhEKGAHphG77vZRxjdzv0MpSR8SMsu/b4RaT3msedtxcoO9XU8xoi33OtZt8pa1
bPtX136rvrv22w4vr/1WeXut2o/yoO/tOM+WXy4xyqV8/aU89Rj9p4b8t4+frmRd9cxKtHdVPl3v
BvuOdtWIeua+or3rdSUL2fvXfcMAR6J4QnLa933TfMq7yB12T9/p9S1fOZd71q7x6pVbVN3y8VdO
8fTH9vnKcE5m2RDDVIFKmfDfnO18zvuW45t9x1Q/I/aOM+JUfovOqUqybWfEDbp921Y/Ic6OE+KW
FOktxPc4JgMUa+xPD/y458gK+l77pC29JV35SwzsnericrXt4qP4owevDP4nU/8PUEsDBBQAAgAI
ADCLvUjiFaIFsgAAAGgBAABeABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L3NlbWFudGljcy90YWJ1bGFyLWRhdGEvdGhlLXRhYmxlLWVsZW1lbnQvdEhlYWQtYWN0dWFsLnR4
dFVUCQADfIhLV3yIS1d1eAsAAQT1AQAABFAAAACNzE0LgkAQBuB7v2LYLgUeNtI0j1LQoShEgmAv
4g4lmQvrhpr433PNPhCELjPzwjNvEpYoIVQwoQadQhY/EBxKiwWlIwAfU47yGGM+QJI/3r1ERFeo
NsFuWw/SDxa8hMrbr04v6xhOZ23HLCx72dpe9cFf95u1nlkdfvMACwXVWDWr7+fU+vUAGoG8p1+X
x1xdNHSBVIyglEIy4kJz3zDLwjPqxAgjRjMjwdtsUrOuyegJUEsDBBQAAgAIADCLvUh6AVcAUgEA
APYCAABcABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy90
YWJ1bGFyLWRhdGEvdGhlLXRhYmxlLWVsZW1lbnQvdEhlYWQtZGlmZi50eHRVVAkAA3yIS1d8iEtX
dXgLAAEE9QEAAARQAAAAzdJRT8IwEADg9/2Ky3zRbLVbGDJ5QgIJiRoJEIgJL2U7ZbHbSHvLpoT/
bjdAI5HER196vcvXu3soYwz4PJdFipoPBAk+XEz5Alf3CR1Cv0hkzCcoUWjkUrznBTFCTUyhLiRp
nqSbXBHGvGxFvMQV20hBL7lKG6b5mlLJNaYioyTSnMSqkEKxuB5Ha2SmIJGZASlmxGmEImZYbTAy
Pa+pIstxnP+5pYioELLZsdcD5rsBOL4bQq9nMYuN76ZTaCA0I+CXkm+KlmP2RQWC4NJzvSvQyQdC
6HnVjedZDsAEsxjVPMHynPlTg77MozfYjmaPD7vz9kvn8Tts+0+D5z0O3fCAO2FQtTu3e3zSfDwZ
nvauud8+6qOfYUWwvSATTh+0vPaPBwC1AlVk37BMYlrXsgv2dmmjUrla2l0wd/NJtHjFOlvaS9s1
Z5THTR54wW5nW59QSwMEFAACAAgAMIu9SA8fvRYbAAAAKAAAAGAAHABpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90aGUtdGFibGUtZWxl
bWVudC90SGVhZC1leHBlY3RlZC50eHRVVAkAA3yIS1d8iEtXdXgLAAEE9QEAAARQAAAA4wpwDA5W
KPFITUxRKEktLilW4MIQMVTg4gIAUEsDBBQAAgAIADCLvUhWsH/LPggAAIweAABkABwAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy90YWJ1bGFyLWRhdGEvdGhl
LXRhYmxlLWVsZW1lbnQvdEhlYWQtcHJldHR5LWRpZmYuaHRtbFVUCQADfIhLV3yIS1d1eAsAAQT1
AQAABFAAAADVWftv3DYS/t1/BWGj9V1hPda76+zD8aHxAwGuvQZx0KLAAQdKolaMJXFLUvY6ufzv
N3xpJa20mwIJ0mvQrEQOyW9mvnlQucxkkV8dXWYEJ/BTEIlRnGEuiHx5WsnUm53CsJDPObk6WuS0
fDhDi0cqqCQJ+niE4D9JNtJLSMw4lpSVC1Sykiz1VMR4QrgXMSlZsUCj9QYl8EyS5dGnI7Od3SRm
OeMLdBKO53rOv6M5uaFpaucjHD+sOKvKxHOi6Uz9aR5kThAspwk6SZLEzKWslF6KC5o/L1DBSibW
OLYAC8xXFCCPSIFCM7RmoJzWg5McNHokGlA26iAdj8c9+wtcCk8QTtPGpKAfiD6jeaiXk1QuUOhP
3XhCxTrHsAktwTIW4RNNZAaLw/A7iw8nCS1X9UqDzbpGPbW9Y+HSMgNQshbP2CPhHY2m0+lyyNiE
GDP4yic/wVnCLk5zhkENTleZbHtOSV2D+hh0cUcxMD2VoGLYUVniKCdeTPK8paWn921Z6SkD7Tzt
Q0W1J47XW2T3JFa+GySNXtymTJculrPO7kCocL0xJ9xu1uBe2B9UI2fIVz9dDQfhCZqQ6Fn9jTTU
VzmLH95gLn1QdZFSLqQXZzRPBg2rjruH9Wf7NuOkANeeHTjPnuHMbwjnRUqkRbupYx2wRdIY5x7O
6QpiQ7IetThRTH+NyyQnzhx2H2VC9Z4R49Atn+OKC+UaBbsbgTgC71TOY3BmTRwTPBrePhQtnu/S
YcXJ87JDTH96yF/GxMiX7KCZ/ZSzomNsmx/VGcrq/6qKiHBgE2myy4w64Ltp1LJ2Pm8lQBcufWnQ
RfJkMulNN03v1zlGbTQ1IWDCoE74lgeWnn0UMXBbdBrbhNVQXKvYm3BMkRg0y54kteYqOhVMa0CX
TSxrnCKtWIVFnolWPQX21K+gByf4wVMDBhAt8Iq0PLNA57XBoxwrKyrBGFIDYAAo9gl19d56ZTaZ
D+belKTbBKBoBTvW5bERzT1LkzRpLwVni2HxOZkv99X0eiebZZo4bFQMl+sk2dkAJSQfXkHmB9EE
P6D7ar1mXEKl5ZbJYNSiIKUU6IcAzsOVzJixt6nGqpkB1kvgaew8pRdomYH6X8soMBgooYVdOrtw
xFbpBuf5tUPQK31ualmBN16nvBfQF9ih87CuO92jwe57z6kjuw7p1jF9OH22JqZsek8keqDSk1yF
nbGEAY78c7FsqDGxSp8IiWUlXlUR1PC6HvoqenrhqCWSsTzCvD3vjk5zoiN0O1GwD/VonZzGJo5t
H6UeXbegnodbwqHMsbeV29IipRti9rH5OGyr5GPdg5gw263iTxRyAe9Qrd7zg0fLhGwgSe1RbVsI
GxD69LLJqFXeZjaLlQqmDdje0gTnRWxzEOjFFujIkNgVIfOmwdrnuoLZ1xpw3Zm1jqYpx4VB2ImT
dhvRiJHrgUy7a5tn6DXZk631JIfGEXrmzyhMF/O7Lb1sTR6Y1IZoz9VtZLLbHrebY7uHMd8uhwdb
gsTlWXPMjy4puKtO2Jx952pk505y8cIltF2Ye4KkcdsRBTa9fDPnlozD8HIgy1j9VQsm+g43eri4
DvtEchyRfIFTiLCzneVmXG+iC3IJqh6j/6Lj5VFdiBvlu7s6x9Chs9STz2vSu9XxICIr2LniZiTX
CbJuRrFqRgdq1ElBhHCNx6Cd+9zSiI57nag/pxRCiYGG6JGySlzXI9DMfiDldaNY9tV513J0S0yz
uKhcDqzVTHC53b5bJtokMnY18LPQWGpAj0OkiolWubBt30DT16yzUQVRVTbzjqvvCX1cpCy2NmSV
VPmiGX5RXulKYqeALylggQo2coo0i6XeBXqYdxkxJwW20q4Av9JBMiRhLjLSlmoCPVKscrL82XIC
wEacPYHDoRPIMKy1TRGVvmqCaj0mU9vF162IfXfZQTWy6v+wXUTdJ51uj1/QBG5ZRjHlIOEu3z0V
BfowJvAj2B4sQDp1pXnT2yl13sgfm5Zp+/HDVf8eH5zc3Nw0QvpkdndzN73rzU/QXPaz+Pb2tg/1
ghRryFAt59s2rSPpwyMgbUX+7XwWzmzeinOC+X90e+CuAmpEX5syJXIZ2K9ulyLmdA0+5fHL40zK
tVgEAX6PN/6KsRUsWlOhqKvHgpxGInj/R0X4czDyJ/65ffGhtfTfi+Mr2Ffvd4XaO8csIZ7yIXkC
uX+Ap5UzX05mjSUAyn4ojFjyDD8QD4AbC/Hy1N0E1PfCbHQV/Ar+hJwV3GCJg9vf7oPfSPRPKu3P
q4rmSfAW6i4WJACmgDk9SSDDwvW9yqUIaKEYTJLgaRwHkDY84JOEJr/QYiJQHy4DQQpcAiNFIHFU
5Zh7iToOYsYzX5TgABXSgXwNuD1oeSqc+3IjQZFRG3/j89Hp7oy+1g+Nq+s+Mjeajoi666D2Z6Kt
HOSg0gnq7wTb5uP0agRGh/mrlhSkg6bM92Uk1steQajrp1d2BrwGkL4UsPMvAOzNj/f3SLsEaWei
r4J0/DWQjr4O1slXcLf+GSYspNLDbLVCe7HvwcU+g9MaO2QAdZpEfwvPwr8jlaPRLAw3F2H45+z9
RQGfDwNG6C2BCxD/FfLlXw73+P/N0JPDhtbERR9fv/v5p09/OfzTffhrDaBmoo+vfrn53SgwO5tZ
BV7MJpvpi/k3VOBivwIdJ7x5e9v1gVJhNP2GGrw4pIHTwdx5T9RUV4lxOP22SswOK2E+hyJelVvw
urtX6Bfo+z8qJpcf/21+CeeM2+cFcqP2KlmP2wf7c+beVUdYy0zCyadP5uVgnWn0tqoq6emm7PZH
t5GXgflH6P8BUEsDBAoAAAAAADCLvUgAAAAAAAAAAAAAAABOABwAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy90YWJ1bGFyLWRhdGEvdGhlLXRib2R5LWVsZW1l
bnQvVVQJAAN7iEtXcIxLV3V4CwABBPUBAAAEUAAAAFBLAwQUAAIACAA0jb1IAKeOmhQBAABpAgAA
YgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvdGFidWxh
ci1kYXRhL3RoZS10Ym9keS1lbGVtZW50L2luc2VydFJvdy1hY3R1YWwudHh0VVQJAANDjEtXe4hL
V3V4CwABBPUBAAAEUAAAAHXPzUuEQBjH8bt/xcN2qMDDKGIi7MG3XsBNUFmI6GD6LA3JCOOUbtL/
3pitroYHx8v382PGix6TKAxgFySJcxfYUFKGoBMbYjwgR5ZjwHnFbfAydingQFkBnxmn2WuJNgis
hVJmR+SQCbgiKrmGmn4hWIS0JiEKyB1WIN9TbFaSNW5M2i2r/B26+3QXfq+VY1sVR+jcyH8aUku1
/tIby2h14zddDPsP++VuH5NZm/ZPhi513DD4V5NpedYnmAtaMcmmG62xGYyrRqL4JPQzQc7EzHhY
lhL5A9JHZJoSwTPfEsjlx+utBrk8XmZD4xS2AroLIX/DkKZqpyGj1awFAuhL4B9sihtaiDdZ27Bx
XM8PbjfKD1BLAwQUAAIACAA0jb1ITn/EH+YBAAAGBQAAYAAcAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvdGFidWxhci1kYXRhL3RoZS10Ym9keS1lbGVtZW50
L2luc2VydFJvdy1kaWZmLnR4dFVUCQADQ4xLV0OMS1d1eAsAAQT1AQAABFAAAADNk02P0zAQhu/5
FaPlwKLU66RblVJppX4FFtGlqKm6QoiDm0yphZNU9oRkqfjvOE232xZVYjlxSHx5nnfGHpsxBnye
qTxBw0eCBA/uQ36Piw+SdssglyrmU1QoDHIlHrKcGKEhptHkigyXyTrThDEvriNe4IKtlaBlppMt
ZviKEsUNJiIlGRlOYpEroVlclaMVMlpk8QOzBRJMicvUoKZpVjAs1xjZ3CsqyXFd9//tVESUC7Xt
s9cD5jfegOs3/Gvo9RzWHwxHwVuHOexTPwzhdnY3nomFwtBuTmZpUKfBPu3SewV/zTL/GfAzUJ0V
5kph+o1Wz+mm+W8lwIXtPhx3OPkYTsYB3AVh2H8XdEHJFKHpdWGKS9SYRhhonekuDEX6kmAp0xh+
CC2rUl2oxui4dvSoQRBceg17mEb+ROh4Xtn2PMcFm5TGqOcSi3PMuYDWgT9QWfQdNtU+f51F97C9
N7AZTEafa7bT6OzY151W2WzV7En06P38NLmivWN4e8iwmfUH4+AP3DvIPhJ2U7HeU1NnvSPTjs5a
00eleaB4h8qRNESlrDWqrebearetBV/0jQeR/bS58SGyv6/HSfssLAk2L8gudZJ9ZI9JrdLvnFoA
FQo6T5/oQsb2wrVbXbioX+aF8xtQSwMEFAACAAgANI29SB2xY1FUAAAAJAEAAGQAHABpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90aGUt
dGJvZHktZWxlbWVudC9pbnNlcnRSb3ctZXhwZWN0ZWQudHh0VVQJAANDjEtXe4hLV3V4CwABBPUB
AAAEUAAAAHN0cnZxdePiCnAMDlbwCPH1CUlMykkNTk0uyczPc81JzU3NK1HIzCtOLSoJyi/XMNBU
IFapriHxaolXWZRfXqyXk5qXXpJBglOMyLJAQVsB5AcuAFBLAwQUAAIACAA0jb1IkKTcTwEJAABO
JgAAaAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvdGFi
dWxhci1kYXRhL3RoZS10Ym9keS1lbGVtZW50L2luc2VydFJvdy1wcmV0dHktZGlmZi5odG1sVVQJ
AANDjEtXe4hLV3V4CwABBPUBAAAEUAAAAM1aaW/bOBr+nl9BNNhmdjY6fKW202SRw5lZbDsdNEEH
i8ViQUmUzVYSPSSdOO3Of9+XlyzJkpMBmqYtGkk8n+e9yfT1QubZ6d7rBcEJPHIiMYoXmAsiTw5W
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
r/dEHEbfjsMTMTj6dgxU+vYzUszl4onIvPqGJtV/Ig7jZ1EI+ht6Kh+ZPEEM1Y/uJAUl1MMZyg7a
iX0HLvaIPKaxX7z75frdmxl6O7u+PvtpNtXzoCqdovckJZwUMZlxrqqnC1y83Iejk0QpLRJ0izlV
+psiVQ78Od18VXL9bnJQ1qjdJPohPIREoQpPNA7D9VEYPiPgQTdgBFIvoOD/AEXgd4d7+OcFPXxO
vKOH5aydEn1RweiP7w3+0S74JQGosdGX83eX/zL4x4dji//VeLjuD58R/6vd+BsquPzHh6YGFIPn
VMD4cQR0FkNfbs7O38y2KITPq4PJQxRqJMpf3t9sDOr74dILHyZTowNFBFB573j0Kzye06x6vcfw
qDG5IFkGVC4NlX5J5egIqKB/85MQxfCPi5MeiuHHf56TXv9x9EqC+gZ8Xw0w9HqHPUdvuO6Nn5PK
4LFUzK9IEV8VGwr6xg84TNHL31dMHpuLAPP+YMVYuZ1S9aXuro7dPPRF0OvA/Dey/wNQSwMEFAAC
AAgANI29SE2enExYAAAAsgAAAF0AHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90aGUtdGJvZHktZWxlbWVudC9yb3dzLWFjdHVhbC50
eHRVVAkAA0OMS1d7iEtXdXgLAAEE9QEAAARQAAAAy0msTC1SSCxR0DDQMdBUKM6sSlWwMDCoMDMw
4FJQCErNS0ktCstMLcehJIcI7U45+cnZCtUeIb4+tTiVwhXnp1QqVDv5u0RC1FroWEDVmluYVJha
mHABAFBLAwQUAAIACAA0jb1I418l5ggBAAA8AgAAWwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvdGFidWxhci1kYXRhL3RoZS10Ym9keS1lbGVtZW50L3Jv
d3MtZGlmZi50eHRVVAkAA0OMS1dDjEtXdXgLAAEE9QEAAARQAAAAzY5BS8NAEIXv+RVzi5KMk9JW
c4ylgqCitNLicZOMdHHTLbuzJLX4301r8Fbw6Glg+N57HyICrawJDXuaK1F0t17SmssHLcOZBW1q
WrBh5ZmM2tsgKOwFHftgxJNudtYJ19SOK2q5xJ1R8m5dc8I8baQx5LlRW9GVJ1FlMMphfZyTDaOU
tt5jP9DwVsjZ1iN3O676yivpJEqS5F9KqkqCMifFogAcpWNIRukUiiLCCF9ul0uIT7EYhlwK8TEZ
gxJxugzC0KNJ78uu/8FFlmaX4PUnQ55l3XWWRQnAgrc1u5Xm9hzzp4KZsdUHHO5fnx6/zrO/dO8N
h9nz/O0HztN8gG/ySTfNJ9E3UEsDBAoAAgAAADSNvUhoLIxiKgAAACoAAABfABwAaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy90YWJ1bGFyLWRhdGEvdGhlLXRi
b2R5LWVsZW1lbnQvcm93cy1leHBlY3RlZC50eHRVVAkAA0OMS1d7iEtXdXgLAAEE9QEAAARQAAAA
ClBBU1MgJ3Rib2R5JyBlbGVtZW50LCAncm93cycgYXR0cmlidXRlIAoKUEsDBBQAAgAIADCLvUi5
Akhu6AcAAF4bAABjABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFu
dGljcy90YWJ1bGFyLWRhdGEvdGhlLXRib2R5LWVsZW1lbnQvcm93cy1wcmV0dHktZGlmZi5odG1s
VVQJAAN7iEtXe4hLV3V4CwABBPUBAAAEUAAAANVZa2/jNhb9nl9BJGizLaKHYzv1I5OikwcKbLtb
NIMW+2lBSZTNCSV6SSp2Zrb/vZcvWZIlZwpMgbaDjiXykjz33nMf1FyvVcFuTq7XBGfwUxCFUbrG
QhL15rxSeTA7h2GpXhi5OVkwWj5doMUzlVSRDH08QfCfIjsVZCTlAivKywUqeUmWZirhIiMiSLhS
vFig0WaHMngm2fLktxO7ndsk5YyLBTqLx3MzFz5QRu5onrv5BKdPK8GrMgu8aD7Tf5oH2RMkZzRD
Z1mW2bmclyrIcUHZywIVvORyg1MHsMBiRQHyiBQotkMbDsoZPQRhoNEzMYDWow7S8Xjcs7/EpQwk
ETRvTEr6gZgzmocGjORqgeJw6sczKjcMwya0BMs4hFuaqTUsjuMvHD6cZbRc1SstNuca/dT2joNL
yzWAUrX4mj8T0dFoOp0uh4xNiDVDqH3yA5wl3eKccQxqCLpaq7bntNQtqI9BF38UB9NTBSrGHZUV
ThgJUsJYS8vA7Nuy0nYN2gXGh5pqW4E3e2SPJNW+GySNWdymTJcujrPe7kCoeLOzJ9zvNuBe2B9U
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
ZS10Zm9vdC1lbGVtZW50L3Jvd3MtYWN0dWFsLnR4dFVUCQADQ4xLV3uIS1d1eAsAAQT1AQAABFAA
AADLSaxMLVJILFHQMNAx0FQozqxKVbAwMKgwMzDgUlAISs1LSS0Ky0wtx6EkhwjtTjn5ydkK1R4h
vj61OJXCFeenVCpUO/m7RELUWuhYQNWaW5hUmFqYcAEAUEsDBBQAAgAIADSNvUhTtrccCAEAADwC
AABbABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy90YWJ1
bGFyLWRhdGEvdGhlLXRmb290LWVsZW1lbnQvcm93cy1kaWZmLnR4dFVUCQADQ4xLV0OMS1d1eAsA
AQT1AQAABFAAAADNzsFKw0AQBuB7nmJuUZJxUtpqjrFUEFSUVlo8bpKRLm66ZXeWpBbf3bQGbwWP
ngaG75/5ERFoZU1o2NNciaK79ZLWXD5oGcYsaFPTgg0rz2TU3gZBYS/o2AcjnnSzs064pnZcUcsl
7oySd+uaE/O0kcaQ50ZtRVeeRJXBKIf18Z1sGHtrBfsHDW+FnG09crfjqj95JZ1ESZL8y5KqkqDM
qWJRAI7SMSSjdApFEWGEL7fLJcSnWAxDLoX4mIxBiThdBmHoadL3Zdfv4CJLs0vw+pMhz7LuOsui
BGDB25rdSnN7zvzpwMzY6gMO969Pj1/n7a+29R4Os+f52w/O03zAN/mkm+aT6BtQSwMECgACAAAA
NI29SEZZyZgqAAAAKgAAAF8AHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
c2VtYW50aWNzL3RhYnVsYXItZGF0YS90aGUtdGZvb3QtZWxlbWVudC9yb3dzLWV4cGVjdGVkLnR4
dFVUCQADQ4xLV3uIS1d1eAsAAQT1AQAABFAAAAAKUEFTUyAndGZvb3QnIGVsZW1lbnQsICdyb3dz
JyBhdHRyaWJ1dGUgCgpQSwMEFAACAAgANI29SAgdApDnBwAAXhsAAGMAHABpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90aGUtdGZvb3Qt
ZWxlbWVudC9yb3dzLXByZXR0eS1kaWZmLmh0bWxVVAkAA0OMS1d7iEtXdXgLAAEE9QEAAARQAAAA
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
BDaH+ZuWFFSDpsyXZSI3y15BoPXzGzcDTgNInwvY5WcA9tN3j4/oyzPgQeMk84Scpy7shPaXHcdK
CQoVmaA/RZ/xn2Bo8zMcKlDDXo8TJ3QU+xFc/BOiyWCH1NOnKfSP+CL+CuniiGZxvLuK4z9m788K
+HIYMEI/E7h5iF+gUP3lcI//boaevG5oE7jo4/fvfvzht78c/ukx/LUGQFbo49t/3/3HKjC7mDkF
vplNdtPZ5NUEbrC1Tncz3ZTd/xhivI7sP6v9DlBLAwQKAAAAAAAwi71IAAAAAAAAAAAAAAAATgAc
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvdGFidWxhci1k
YXRhL3RoZS10aGVhZC1lbGVtZW50L1VUCQADe4hLV3CMS1d1eAsAAQT1AQAABFAAAABQSwMEFAAC
AAgANI29SE2enExYAAAAsgAAAF0AHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90aGUtdGhlYWQtZWxlbWVudC9yb3dzLWFjdHVhbC50
eHRVVAkAA0OMS1d7iEtXdXgLAAEE9QEAAARQAAAAy0msTC1SSCxR0DDQMdBUKM6sSlWwMDCoMDMw
4FJQCErNS0ktCstMLcehJIcI7U45+cnZCtUeIb4+tTiVwhXnp1QqVDv5u0RC1FroWEDVmluYVJha
mHABAFBLAwQUAAIACAA0jb1IglSJAwgBAAA8AgAAWwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvdGFidWxhci1kYXRhL3RoZS10aGVhZC1lbGVtZW50L3Jv
d3MtZGlmZi50eHRVVAkAA0OMS1dDjEtXdXgLAAEE9QEAAARQAAAAzY5NS8NAEIbv+RVzi5KMk9JW
c4ylgqCitNLicZOMdHHTLbuzJLX4301r8Fbw6GF4YXjeD0QEWlkTGvY0V6Lobr2kNZcPWgaZBW1q
WrBh5ZmM2tsgKOwFHftgxJNudtYJ19SOK2q5xJ1R8m5dc8I8baQx5LlRW9GVJ1FlMMphfayTDWN/
qsa+oOGtkLOtR+52XPWRV9JJlCTJvxypKgnKnCYWBeAoHUMySqdQFBFG+HK7XEJ8ssUw+FKIj84Y
lIjTZRCGHk36vez6H1xkaXYJXn8y5FnWXWdZlAAseFuzW2luzzF/CpgZW33A4f716fHrPPtL23oP
h9nz/O0HztN8gG/ySTfNJ9E3UEsDBAoAAgAAADSNvUhHPoL5KgAAACoAAABfABwAaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy90YWJ1bGFyLWRhdGEvdGhlLXRo
ZWFkLWVsZW1lbnQvcm93cy1leHBlY3RlZC50eHRVVAkAA0OMS1d7iEtXdXgLAAEE9QEAAARQAAAA
ClBBU1MgJ3RoZWFkJyBlbGVtZW50LCAncm93cycgYXR0cmlidXRlIAoKUEsDBBQAAgAIADCLvUhS
MEG95wcAAF4bAABjABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFu
dGljcy90YWJ1bGFyLWRhdGEvdGhlLXRoZWFkLWVsZW1lbnQvcm93cy1wcmV0dHktZGlmZi5odG1s
VVQJAAN7iEtXe4hLV3V4CwABBPUBAAAEUAAAANVZa2/jNhb9nl9BJGizLaKHYzv1I5OikwcKbLtb
NIMW+2lBSZTNCSV6SSp2Zrb/vZcvWZIlZwpMgbaDjiXykjz3eS4112tVsJuT6zXBGfwURGGUrrGQ
RL05r1QezM5hWKoXRm5OFoyWTxdo8UwlVSRDH08Q/KfITgUZSbnAivJygUpekqWZSrjIiAgSrhQv
Fmi02aEMnkm2PPntxG7nNkk542KBzuLx3MyFD5SRO5rnbj7B6dNK8KrMAi+az/Sf5kH2BMkZzdBZ
lmV2LuelCnJcUPayQAUvudzg1AEssFhRgDwiBYrt0IaDckYPQRho9EwMoPWog3Q8HvfsL3EpA0kE
zRuTkn4g5ozmoQEjuVqgOJz68YzKDcOwCS3BMg7hlmZqDYvj+AuHD2cZLVf1SovNuUY/tb3j4NJy
DaBULb7mz0R0NJpOp8shYxNizRBqn/wAZ0m3OGccgxqCrtaq7TktdQvqY9DFH8XB9FSBinFHZYUT
RoKUMNbSMjD7tqy0XYN2gfGhDrWtwJs9skeSat8NBo1Z3A6Zbri4mPV2h4CKNzt7wv1uA+6F/UE1
coFC/dPVcBCepBlJXvTfyEB9y3j69BMWKgRVFzkVUgXpmrJs0LD6uEdYf3FsM0EKcO3FK+e5M7z5
bcAFiRZphd3URx1Ei6IpZgFmdAW5oXiPWoLoSP8elxkj3hxuH21C/b4m1qH7eE4rIbVrNOxuBuIE
vFN5j8GZdeDY5DHwjqFoxflhOKwEeVl2AjOcvuYva2IUKv6qmcNc8KJjbFcf9Rna6v+qioQIiCbS
jC476oEfllEXtfN5qwD6dOkrgz6TJ5NJb7lper+uMXqjqU0BmwZ1wXdx4MKzL0Qs3FY4jV3Baihu
VOwtOJYkBs1ypEhthM5ODdMZ0FcTFzVekVauwqLAZquZAnuaV9BDEPwU6AELiBZ4RVqeWaDL2uAJ
w9qKWjCF0gAYAIp7Ql29916ZTeaDtTcn+b4A6LCCHWt6bGRzz9Isz9pLwdlyWHxO5stjnF7v5KpM
E4fLimG6zrKDDVBG2PAKMn8VTfQ1eqw2Gy4UMK1wkQxGLQpSKom+juA8XKk1t/a2bKybGYh6BXGa
ek+ZBUZmgP9rGQ0GQ0gYYV/Ornxg63KDGbv1CHqlLy2XFXgXdOi9gL7ADV3GNe90jwa7Hz2nzuw6
pVvH9OEM+YZY2gy2JHmiKlBCp521hAWOwku5bKgxcUqfSYVVJd9WCXB4zYehzp5eOHqJ4pwlWLTn
/dE5IyZD9xMF/1CP1sVpbPPY9VH60XcL+nm4JRyqHEdbuX1Y5HRH7D6uHsdtlUJsehCbZocsvqVQ
C0Qn1Oo9PwS0zMgOitQR1fZE2IDQp5crRi16m7kqVmqYLmF7qQnOS/juVaBXe6AjG8SehOybAeue
awZzrzXgujNrHU1zgQuLsJMn7TaikSO3A5X20DYv0GvyreN6wqBxhJ75E4jpav6wDy/HyQOTxhDt
ubqNzA7b43Zz7Paw5juM4cGWIPN11h7znS8K/qoTN2ffeY7s3EmuvvEF7RDmkSRp3HZkgW0v36y5
JRcwvByoMk5/3YLJvsOtHj6v4z4RhhPCFjiHDLs4WG7HzSaGkEtQ9RT9H50uT2oibtB3dzXD0KHz
PFAvG9K71ekgIifYueKuCTMFsm5GsW5GBzjqrCBS+sZj0M59bmlkx6Mp1J9ChUAx0BA9U17J23oE
mtkPpLxtkGUfz/uWo0sxTXLRtRyi1kSCr+3u3UWiKyJjz4GfhMaFBvQ4ROmcaNGFa/sGmr4mzyYV
ZFXZrDue3zP6vMh56mzIK6XrRTP9ElYZJnFTEC85YAEGG3lFmmRpdoEe5t2a2JMix7QrwK91UBwp
mEustAs1iZ4p1jVZ/ehiAsAmgm/B4dAJrDGsdU0RVaFugmo9JlPXxdetiHv31UE3svr/uE2i/pNO
t8cvaAa3LKuYdpD0l+8eRoE+jEv8DLYHC5AOrzRvegdUF4zCsW2Z9h8/PPv3+ODs7u6ukdJns4e7
h+lDb32C5rI/iu/v7/tQL0ixgQrVcr5r0zqSITwC0lbm389n8czVrZQRLP5r2gN/FdAj5tq01iLX
kfvqdi1TQTfgU5G+OV0rtZGLKMLv8S5ccb6CRRsqdeiasYjRREbv/1cR8RKNwkl46V5CaC3D9/L0
BvY1+92g9s4pz0igfUi2IPcteFo7881k1lgCoNyHwoRnL/AD+QC4sZRvzv1NQH8vXI9uol/An1Cz
ojuscHT/62P0K0n+SZX7eVtRlkU/A+9iSSKIFDBnoAhUWLi+V0zJiBY6gkkWbcdpBGUjgHhS0OQX
RkxG+sNlJEmBS4hIGSmcVAyLINPHQc4ESiMN4ACd0pHOjgA6ngqzUO0U6DFqw298PTo/nDG3+qFx
fdtH9kLTEdFXHdT+SrSXgxJUekHzmWDfe5zfjMDmMH/TkoJq0JT5skzkZtkrCLR+fuNmwGkA6XMB
u/wMwH767vERfXkGPGicZJ6Q89SFndD+suNYKUGhIhP0p+gz/hMMbX6GQwVq2Otx4oSOYj+Ci39C
NBnskHr6NIX+EV/EXyFdHNEsjndXcfzH7P1ZAV8OA0boZwI3D/ELFKq/HO7x383Qk9cNbQIXffz+
3Y8//PaXwz89hr/WAMgKfXz777v/WAVmFzOnwDezyW46m7yawA221uluppuy+x9DjNeR/We13wFQ
SwMECgAAAAAAMIu9SAAAAAAAAAAAAAAAAEsAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90aGUtdHItZWxlbWVudC9VVAkAA3yIS1dw
jEtXdXgLAAEE9QEAAARQAAAAUEsDBBQAAgAIADCLvUhNnpxMWAAAALIAAABbABwAaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy90YWJ1bGFyLWRhdGEvdGhlLXRy
LWVsZW1lbnQvY2VsbHMtYWN0dWFsLnR4dFVUCQADe4hLV3uIS1d1eAsAAQT1AQAABFAAAADLSaxM
LVJILFHQMNAx0FQozqxKVbAwMKgwMzDgUlAISs1LSS0Ky0wtx6EkhwjtTjn5ydkK1R4hvj61OJXC
FeenVCpUO/m7RELUWuhYQNWaW5hUmFqYcAEAUEsDBBQAAgAIADCLvUhWBk4NMQEAAIACAABZABwA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy90YWJ1bGFyLWRh
dGEvdGhlLXRyLWVsZW1lbnQvY2VsbHMtZGlmZi50eHRVVAkAA3uIS1d7iEtXdXgLAAEE9QEAAARQ
AAAAzY89b8IwEIZn8itubJW4DirQjCmCqlI/RRCoo2MfxapjI/uihKL+9yaAulXq2OmGe+593mOM
AV85U1cY+EyQ4PN1wddYPmg6j2mtjeILNCgCciP2riZGGIh5DLWhwHW1c55Q8eZa8gZLtjOCNs5X
RyzwLVWGB6yEJS0DJ1HWRnimeh1tkZFnXXqFlrhEYwLDdoeyC7yilqI4jv9hRSGpFuZYMM+BDZMJ
xMNkDHkesYjdaR9oUKB0Vg2WW+1VxJ47ESrY9Kueeb0tCrhfPj0uRWlw4Zr5SQBHAeh367r2YE9n
1EMBhFVgnWX9HZwbBeji4u5r9CAILtIkvYSgPxGyNG0naRrFAAu0Cv1KY/Mb86eAqXHyAw69/ut3
9od2ag+H6cvs7QRnSXaGb7JRO85G0TdQSwMEFAACAAgAMIu9SPys0/FgAAAAbwAAAF0AHABpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90
aGUtdHItZWxlbWVudC9jZWxscy1leHBlY3RlZC50eHRVVAkAA3uIS1d7iEtXdXgLAAEE9QEAAARQ
AAAAJctBCoMwFEXRsX8VbwMuooOWDlSKyQZs8mwD8QfyA25fguN7j7xStTY4hqJx8P9Uoyy0xoi9
F5HPwzm8/Tz57Zu5lvOZeVAbAnM2pJ+WSoPeqPXJsGmEFh27A29gELkAUEsDBBQAAgAIADCLvUit
DtKBHggAAFkdAABhABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFu
dGljcy90YWJ1bGFyLWRhdGEvdGhlLXRyLWVsZW1lbnQvY2VsbHMtcHJldHR5LWRpZmYuaHRtbFVU
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
67M+sseZjog+6KD2HdFWDgpQ5QXNJcG28zi+GoHFYfyqJQW1oCnzTZXI5UWvIJD68ZUbAZcBpNcC
dvoKwO70VddXYG1eZV89FFRknwXq+BWg/gKRBl2huZz7LCAnX6qjp68A7Lcf7u/Rjw8///SgL3ff
8fWtzUdk8hEBgXBIdlRZI5sbYImgKdWcEeh5yCWwRJ9Fx7PPYHzzM1wngL5eLhJOaC/2Pbj4J5QS
gx2qrt5NoX/EJ/E/keZFNIvjzVkc/2/2flXAp8OAEXpH4NApfgeO+uJwj//fDD152dAmcNFHnYt/
fXH4p/vw1xpAn4I+vv315t9WgdnJzCnw3Wyymc4mLyZwo1HT6W6Gm7LbH9MTXUb2X1T/BlBLAwQU
AAIACAAwi71ITZ6cTFgAAACyAAAAYAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9zZW1hbnRpY3MvdGFidWxhci1kYXRhL3RoZS10ci1lbGVtZW50L2RlbGV0ZUNlbGwtYWN0
dWFsLnR4dFVUCQADe4hLV3uIS1d1eAsAAQT1AQAABFAAAADLSaxMLVJILFHQMNAx0FQozqxKVbAw
MKgwMzDgUlAISs1LSS0Ky0wtx6EkhwjtTjn5ydkK1R4hvj61OJXCFeenVCpUO/m7RELUWuhYQNWa
W5hUmFqYcAEAUEsDBBQAAgAIADCLvUiN77DqQwEAACEDAABeABwAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy90YWJ1bGFyLWRhdGEvdGhlLXRyLWVsZW1lbnQv
ZGVsZXRlQ2VsbC1kaWZmLnR4dFVUCQADe4hLV3yIS1d1eAsAAQT1AQAABFAAAADNkT1vwjAQhvf8
ihupgnHSQok6AYWqqCAqgkAdTXJtrDoxsi9KKOp/r/lQOyFl7GJ7eO65986MMeBrrcocLR8LEnyy
ifkGty+SLteolCrlS1QoLHIl9rokRmiJGbSlIstlvtOGMOXVXcIr3LKdEvSuTX7CLM8oV9xiLgqS
ieUktqUShqXHdpQhI8OcPceCeOoehI+oFMN6h4mzdqgmz/f9/5pTJFQKdUo5GAAL233ww3YPBgOP
eex1GMfwvJrPVmKrcKmrydkAf4ZWcAPNQBY2Jm+bkok7bEdh8UHZseZpOJ01yVFJyqDQcKqHaZFi
HcsvnBijzQOMF3OY1AnuSOoCQrcJ3/0IGhAEraDtJrYOhigI6vsg8HyAJTqFWUusrjGNBCOlk084
HAf4vs7+0jrdw2G0GL+d4agdXeB+1K17Udf7AVBLAwQUAAIACAAwi71I/gqX4nQAAAAFAQAAYgAc
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvdGFidWxhci1k
YXRhL3RoZS10ci1lbGVtZW50L2RlbGV0ZUNlbGwtZXhwZWN0ZWQudHh0VVQJAAN7iEtXe4hLV3V4
CwABBPUBAAAEUAAAAOMKcAwOVvAI8fUJSUzKSQ3KL3fNSc1NzStRSEnNSS1JdU7NydEw0FTgIkad
riGxCo2IVJgMJIr1clLz0ksygFrcHD19iHFEeWZJhkJevgJYu4JnXkpqRXBmVaprUVF+kZWCi7+v
gmtFcmpBSWZ+noIhFxcAUEsDBBQAAgAIADCLvUifAiMZNAgAAIweAABmABwAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy90YWJ1bGFyLWRhdGEvdGhlLXRyLWVs
ZW1lbnQvZGVsZXRlQ2VsbC1wcmV0dHktZGlmZi5odG1sVVQJAAN8iEtXfIhLV3V4CwABBPUBAAAE
UAAAANVZb2/bNhp/n09BJLjLNkSSHdup46Q5tImDDdfehqbYcK8OlERZbCjRI+nYaW/ffQ//yZIs
OTmgKXYrVkvkQ/L3/P09VC9zVbCrg8uc4BR+CqIwSnIsJFGvj1cqC6bHMCzVIyNXBzNGy/sTNHug
kiqSoi8HCP5TZKOClCRcYEV5OUMlL8mFmYq5SIkIYq4UL2ZouNygFJ5JenHwx4Hdzm2ScMbFDB0N
RudmLryljNzQLHPzMU7uF4KvyjTwotlU/6kfZE+QnNEUHaVpaucyXqogwwVljzNU8JLLJU4cwAKL
BQXIQ1KggR1aclDO6CEIA40eiAGUD1tIR6NRx/4SlzKQRNCsNinpZ2LOqB8aMJKpGRqEEz+eUrlk
GDahJVjGIVzTVOWweDD4m8OH05SWi2qlxeZco5+a3nFwaZkDKFWJ5/yBiJZGk8nkos/YhFgzhNon
7+As6RZnjGNQQ9BFrpqe01LXoD4GXfxRHExPFag4aKmscMxIkBDGGloGZt+GldY5aBcYH+pQWwu8
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
AAAEUAAAAFBLAwQKAAAAAAAwi71IAAAAAAAAAAAAAAAAUgAcAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvdGV4dC1sZXZlbC1zZW1hbnRpY3MvdGhlLWEtZWxl
bWVudC9VVAkAA3yIS1dwjEtXdXgLAAEE9QEAAARQAAAAUEsDBBQAAgAIADCLvUhNnpxMWAAAALIA
AABqABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy90ZXh0
LWxldmVsLXNlbWFudGljcy90aGUtYS1lbGVtZW50L2Etc3RyaW5naWZpZXItYWN0dWFsLnR4dFVU
CQADe4hLV3uIS1d1eAsAAQT1AQAABFAAAADLSaxMLVJILFHQMNAx0FQozqxKVbAwMKgwMzDgUlAI
Ss1LSS0Ky0wtx6EkhwjtTjn5ydkK1R4hvj61OJXCFeenVCpUO/m7RELUWuhYQNWaW5hUmFqYcAEA
UEsDBBQAAgAIADCLvUiWPW0+KAEAANoDAABoABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy90ZXh0LWxldmVsLXNlbWFudGljcy90aGUtYS1lbGVtZW50L2Et
c3RyaW5naWZpZXItZGlmZi50eHRVVAkAA3uIS1d8iEtXdXgLAAEE9QEAAARQAAAAzdJNS8NAEAbg
e37FHJVk3I39ire0tCCoKK20eNwmU7u4yZbsxKYW/7uxLdJLYY+ell0e3nkZFhFBzK2pC3JirFiJ
yWImFrR80Hw6RrU2uZiSIeVIGLWzNSOTY6zI1Yad0MXGVky52HYysaUlbozila2KA3NizYURjgpV
ss6cYGoYDX2SwbPHNaHCdkhBJQuFjitdvuuVpgqp2VDW5t9ww0EYhv+/scq4VubQN00B4yjuQBhH
PUjTAAN8Gc5mcP/69Dgss7WtJscMOEsALxT7sVs/1vFjXT/W82N9PzbwY4kfu/Ncr2xdELYfqL0o
hisZyWtw+osgkbLpSxmEAFMqc6rmmraXjFfAyNjsA/a/jb4v2z9t8x3sR8/jtyNOouSEB0m36SXd
4AdQSwMEFAACAAgAMIu9SPTcgllMAAAAowEAAGwAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL3RleHQtbGV2ZWwtc2VtYW50aWNzL3RoZS1hLWVsZW1lbnQv
YS1zdHJpbmdpZmllci1leHBlY3RlZC50eHRVVAkAA3uIS1d7iEtXdXgLAAEE9QEAAARQAAAA4wpw
DA5W8Ajx9XHMS87IL3LNSc1NzStRKC4pysxLz0zLTC1S4CJCjSFRqoyIUmVMlCoTolSZEqXKjChV
5kSpsiBKlSVxoWqgwMUFAFBLAwQUAAIACAAwi71I9Kc06i0IAADIIgAAcAAcAGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvdGV4dC1sZXZlbC1zZW1hbnRpY3Mv
dGhlLWEtZWxlbWVudC9hLXN0cmluZ2lmaWVyLXByZXR0eS1kaWZmLmh0bWxVVAkAA3yIS1d8iEtX
dXgLAAEE9QEAAARQAAAA1Vprb+M2Fv2eX0Ek6Ga3iB6O7YwfmSxm8kCBbbdFM2jRTwtKoixOKNEV
6diZ2f73vXzJkiw5U2BsdDvoWCIvyXPfh8JcZzJnNyfXGcEJ/OREYhRnuBREvj1fydSbnMOwkC+M
3JzMGC2eLtDsmQoqSYI+nyD4T5KN9BIS8xJLyosZKnhB5noq4mVCSi/iUvJ8hgbLDUrgmSTzkz9O
zHZ2k5gzXs7QWTic6jn/gTJyR9PUzkc4flqUfFUknhNNJ+pP/SBzguCMJugsSRIzl/JCeinOKXuZ
oZwXXCxxbAHmuFxQgDwgOQrN0JKDclqPkjDQ6JloQNmghXQ4HHbsL3AhPEFKmtYmBf1E9Bn1Qz1G
UjlDoT924wkVS4ZhE1qAZSzCNU1kBovD8BuLDycJLRbVSoPNukY9Nb1j4dIiA1CyEs/4MylbGo3H
43mfsQkxZvCVT76Hs4RdnDKOQY2SLjLZ9JySugX1MejijuJgeipBxbClssQRI15MGGto6el9G1Za
Z6Cdp32oQm1d4uUW2SOJle96g0YvboZMO1xszDq7Q0CFy4054X6zBPfC/qAauUC++mlr2AtP0IRE
L+pvpKG+Zzx++gmX0gdVZykthfTijLKk17DquEdYf7Fvs5Lk4NqLV86zZzjzm4DzIiXSCLuxizqI
FkljzDzM6AJyQ/IOtUqiIv07XCSMOHPYfZQJ1XtGjEO38RyvSqFco2C3MxBH4J2V8xicWQWOSR4N
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
WR1+8wALBdVYNavv59T69QAagbynX5fHXF00dIFUjKCUQjLiQnPfMMvCM+rECCNGMyPB22xSs67J
6AlQSwMEFAACAAgAMIu9SMG71o13AQAAfwMAAGsAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL3RleHQtbGV2ZWwtc2VtYW50aWNzL3RoZS1hLWVsZW1lbnQv
YS50ZXh0LXNldHRlci0wMS1kaWZmLnR4dFVUCQADfIhLV3yIS1d1eAsAAQT1AQAABFAAAADVkt9P
wjAQx9/3V1zmi2aUFgGdPAGRxESNBojGhJe6nbDYraS9yZDwv9sN/EWyxFfT5Nq7+/Tb67WMMeAP
WuUpWn4pSfLR44Q/4vN1QvtpmCcq5mNUKC1yJdc6J0ZoiRm0uSLLk3SpDWHMV+2Ir/CZLZWkF23S
CrN8QaniFlOZURJZTlgQU/iGiv0ILpBJ5g5JMSMumxVkkQgNEy2GxRIjd0STCvKCIPgXRcuIcqmq
kvt9YK1GCEFp+n2PraEaHvPY/WAygavp7c0gixbajHZylRiUYkk2hz01daWBKxJkhYKoS7TqEqd1
ibZLeIHrFLoQwbFoiBOwyTtCKERxJoQXAIwxi9E8JLiqY/4kMFQ6eoVNeedtPftF63gNm+Hd5dMO
DhvhHj4PO0X3/GIHH4jfj0eH2iXe6n7Sn/y07PPmqGz34Ya26P7aAFA9ismzb3CVxLQoyR74m5mP
xmgz83vg1u57WjnH0pv5M7/hbKTjyu+Iznbrex9QSwMEFAACAAgAMIu9SDzjlapJAAAAjwAAAG8A
HABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3RleHQtbGV2
ZWwtc2VtYW50aWNzL3RoZS1hLWVsZW1lbnQvYS50ZXh0LXNldHRlci0wMS1leHBlY3RlZC50eHRV
VAkAA3yIS1d8iEtXdXgLAAEE9QEAAARQAAAAq1SoBEEurgDH4GAFjxBfH8e85Iz8Itec1NzUvBK9
ktSKEoXi1JKSzLx0BYiikNTiEoW0/CKFRLBKBQMc4oY4xI1wiBsrcHEBAFBLAwQUAAIACAAwi71I
rZsRQ+EIAABZJAAAcwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
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
Yy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2RlbGV0ZS1kaWZm
LnR4dFVUCQADQYxLV0GMS1d1eAsAAQT1AQAABFAAAADFjkFLw0AQhe/5FXNsSbab0lZzjCGCRaXS
SIsn2WRHWLvpht2JSS3+d9e0eCt48/SG4XuPjzEGfGN0W6PjuSDBb7cF32J5r+gcWau05GvUKBxy
LQ6mJUboiFl0rSbHVd0YSyh5N6t4hyVrtKA3Y+sBc3y5l9ijzDOuZGnKd6zIkbH4Kv0oIcO+8S+U
E+opCMPw/41ERa3Qg0+aAptGMwin0QLSNGABe7opCljm2WooFj/Fyak4GgOD0wkWa/OBzmdlrISR
2mu1R9jhwY3Bz4ReHC0IglEcxWNw6hMhieP+Ko6DEGCNXtJuFHaXmD8NZNpUOzjePT8+fF1mf2kj
D3DMVvnLCU6i5AxfJ/N+kcyDb1BLAwQUAAIACAAzjb1IZD5kBkIAAABGAAAATAAcAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2RlbGV0ZS1l
eHBlY3RlZC50eHRVVAkAA0GMS1dBjEtXdXgLAAEE9QEAAARQAAAA4wpwDA5W8HRx8k/KSk0uCS7J
L0rVS0nNSS1J1dBU0FWAMBWKUnPzy1KLgXRyflGKgkZmXk5mXqpCdmplsaYCFxcAUEsDBBQAAgAI
ADONvUg+ErrM6gcAAFcbAABQABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvaWRib2JqZWN0c3RvcmVfZGVsZXRlLXByZXR0eS1kaWZmLmh0bWxVVAkAA0GMS1dBjEtX
dXgLAAEE9QEAAARQAAAA1Vltb9u2Fv6eX0EkuEs7RC+O7cx22gxLnGDDtrthKTbcTwMlUTYbSvRI
Orbb7b/fwzdZkiWnF+iA3RWrZPKQfM7rc6i+WaqC3Zy8WRKcwaMgCqN0iYUk6u35WuXB5ByGpdox
cnMyY7R8ukCzZyqpIhn6eILgP0W2KshIygVWlJczVPKSXJuphIuMiCDhSvFihgarLcrgnWTXJ3+d
2O3cJilnXMzQWTycmrnwgTIyp3nu5hOcPi0EX5dZ4EXzif5TP8ieIDmjGTrLsszO5bxUQY4LynYz
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
jb1I3WRkMaIAAAAiAQAASwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTctYWN0dWFsLnR4dFVUCQADQYxLV0GMS1d1eAsAAQT1
AQAABFAAAAB1zEELgjAYgOG7v+K7VeBhUdTYLXVUoAkZQidZ+gmjMWGO0qT/XmR4ELw/7+vHpyQO
OUQ8SXZ7zkBJjbBcMThjiQZ1jtyYyjDwhZ5ZKKUu4CGMFDeFDETd6jyzWFtHiRYNCAtz4pIF1PKF
QAlpNoQ48L3pAk0q8TlBpnI6xJ6q8jt0h0sUvifgQKuihc6Lg2svqUv/ckvXDfnJ0TY4puNrbz9Q
SwMEFAACAAgAM429SARIVn19AQAA7wIAAEkAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9kZWxldGU3LWRpZmYudHh0VVQJAANBjEtXQYxL
V3V4CwABBPUBAAAEUAAAAM2QUWvbMBSF3/0r7ttabFUOGYvJU+rabGHNPOqRsqciWzdUmywZ6bpx
Vvbfp9plg0Le9yS4+s7H4TDGgO+tHjr0vBAkeHlf83tsPit6ffJBacnvUKPwyLU42YEYoSfm0A+a
PFddbx2h5Mdly4/YsF4LOljXTZjnWyNxRFnkXMnGNj+wJU/W4YMMUsIVw7EPN5RXNFIUx/F/UEm0
NAg9FdpsgC2SJcSLZAWbTcQi9vW6rmFb5NWUrF+SV3Py4hIYbA9AjwizFyYxPAoPDaKBmZPJhISe
Gjs0JEhZA93gKdydPYKAotqVY4v99GOD8tQjbM2T0ErWIYClc9ZB6BPfVF/q6raEXVnX1x/LNWhl
EBbLNdzhAR2adobXcCPMO4KDMhKehFOi0bgG4U+mfXhZJorDmuhAEFykSXoJXv1CyNJ0/JCmUQzB
F5Zze4XHc8w5QfYvnmvb/oTnT992t7/PkX9ZK0/wnFfF9xnNkuwVXWXvx3RG34iL7f6td4b/AFBL
AwQUAAIACAAzjb1I3rsp1nUAAACPAAAATQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTctZXhwZWN0ZWQudHh0VVQJAANBjEtX
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
f34+CSeWt+KcYP5BtwfuKqBG9LUpUyIvA/vV7aWIOV2BT3n86jCTciWmQYA/4o2/ZGwJi1ZUqNDV
Y0FOIxF8/N+a8Kdg4I/8U/viQ2vpfxSHl7Cv3u8SNXeOWUI85UPyCHL/Bk8rZ74aTWpLAJT9UBix
5Al+IB8ANxbi1bG7CajvhdngMngP/gTOCmZY4mD++yL4nUQ/U2l/rtY0T4LfoO5iQQKIFDCnJwkw
LFzf17kUAS1UBJMkeBzGAdCGB/EkockvtJgIblX7QZLZVUCTiEUfoYALyTj5AHcKIskLD/qbNc59
uZGAetAEW/tWdLw7o+/wfePqbo/M9aUloi42qPlNaCsHhFM6Qf1RYNtpHF8OwMIwf9mQgtyvy3xX
RmJ10SkIRfz40s6AiwDS1wJ2+hWA/fp6sUC3s6s77aOF8pFvfPT9D8hDt6mmOONBpF2IMixQROBC
YuTgwqtEICJyogha3wJRsRZAkBnwHnQGs7u3801MVnqGwZZQpNFt+QA8laiqR+acwyXwbzHS8G/w
nv7pjz+gweeDzwrtxb4HF/uCENXYr+9+Wdy9maO388Xi9X/mU70ODYZT9BtJCSdlbKw/Rde4/O4I
2h+4rcPtAT1gTtV3X6B/8VTGH1Ri/zUPfVUVT/tVBIJSp0n0fXgS/oBUCUGTMNycheE3BDzsB4zA
9kCQ/D3Q+T8O9+ivG3ryDeGOnzezzkz0+ad3b9/8+Q9Df7YPfYUfyjn6fHU3+6+BPzmZWPgvJqPN
t4yVF/vhtxwwu33ftn+nAjv0WmvHFBnr6brs9kd3PtBR6H83/T9QSwMEFAACAAgAM429SE2enExY
AAAAsgAAAE8AHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJv
YmplY3RzdG9yZV9kZWxldGVJbmRleC1hY3R1YWwudHh0VVQJAANBjEtXQYxLV3V4CwABBPUBAAAE
UAAAAMtJrEwtUkgsUdAw0DHQVCjOrEpVsDAwqDAzMOBSUAhKzUtJLQrLTC3HoSSHCO1OOfnJ2QrV
HiG+PrU4lcIV56dUKlQ7+btEQtRa6FhA1ZpbmFSYWphwAQBQSwMEFAACAAgAM429SEvys+EIAQAA
MAIAAE0AHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmpl
Y3RzdG9yZV9kZWxldGVJbmRleC1kaWZmLnR4dFVUCQADQYxLV0GMS1d1eAsAAQT1AQAABFAAAADN
jkFLw0AQhe/5FXNsSba7pa3mGEMEi0qlkRZPssmOuLpxw+7EpBb/u2ks4qXg0dPAm+97PMYY8I01
TYWeZ5Ikv9zmfIvFtabjSRttFF+jQemRG7mzDTFCT8yhbwx5rqvaOkLF21nJWyxYbSQ9WVcNmOfL
N4UdqizlWhW2eMGSPFmHj6ovJRzeDLu6z1FNqKMgDMN/MkuW1EgzjEoSYNNoBuE0WkCSBCxgdxd5
DsssXQ12frAnv+zRGBg4rOw7eqBnBH1IAXo17BejA0kwEpEYg9cfCLEQ3ZkQQQiwxh51G43tKeZP
Bamx5Svsr+5vbz5Psz+0VTvYp6vs4RuOo/gIn8fzbhHPgy9QSwMECgACAAAAM429SD4FJfY6AAAA
OgAAAFEAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmpl
Y3RzdG9yZV9kZWxldGVJbmRleC1leHBlY3RlZC50eHRVVAkAA0GMS1dBjEtXdXgLAAEE9QEAAARQ
AAAAClBBU1MgSURCT2JqZWN0U3RvcmUuZGVsZXRlSW5kZXgoKSAtIHJlbW92ZXMgdGhlIGluZGV4
ICAKClBLAwQUAAIACAAzjb1Iqmmg4OIHAABQGwAAVQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2RlbGV0ZUluZGV4LXByZXR0eS1kaWZm
Lmh0bWxVVAkAA0GMS1dBjEtXdXgLAAEE9QEAAARQAAAA1Vlrb+M2Fv2eX0Ek2E1bRA/Hdmo7M1k0
cYIW226LZtBiPxWURFmcUKJL0rEzs/3ve/mSJVlyZoEp0O2gY4m8JM99nkvNm0KV7ObkTUFwBj8l
URilBRaSqLfnG5UHs3MYluqFkZuTBaPV0wVaPFNJFcnQxxME/ymyU0FGUi6worxaoIpX5NpMJVxk
RAQJV4qXCzRa71AGzyS7PvnjxG7nNkk542KBzuLx3MyFD5SRJc1zN5/g9Gkl+KbKAi+az/Sf5kH2
BMkZzdBZlmV2LueVCnJcUvayQCWvuFzj1AEssVhRgDwiJYrt0JqDckYPQRho9EwMoGLUQToej3v2
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
c3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQtYWN0dWFsLnR4dFVUCQADfIhLV3yIS1d1
eAsAAQT1AQAABFAAAACNzEELgjAYgOG7v+K7VdBhUtTwliYVaEJG0EnW9gnDtcUclUX/vajoEAnd
n/eNsmWeJTGkcZ5PZnEASmqEgR/ACku0qDnG1hobQMR0x0EptYAjs5LtFAbAhCi42R8UOml0wZlS
O8YrL/q59f/e1o3mhcPaeYo1aIE56JI+6UEtLwiUkPOIEA8eNy3QbiSeWkhbTj9xqAyv4Dpfp8mt
BX6oEQ1cw2y6fUnap285psMzecqv7XSx+b6+7B1QSwMEFAACAAgAMIu9SP6ZxUpfAQAA5wIAAEUA
HABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9y
ZV9wdXQtZGlmZi50eHRVVAkAA3yIS1d8iEtXdXgLAAEE9QEAAARQAAAAxZBNS8NAEIbv+RVzU0nX
Talo6KnGBC1+VIxUPJXN7hTXbnfD7sSmiv/d2IqCUPDmaRjmeR+GlzEGfOpMs8TAc0GCFw8lf8Dq
UtPXyBptFL9DgyIgN2LtGmKEgZjH0BgKXC9r5wkVXw0kX2HFaiNo7vxygwU+tgpbVHnGtapc9YyS
AjmPs7ozYVt3O6pDaimK4/if3xGSGmE2z4xGwPq9AcT9XgqjUcQidntaljDOs8kmVX6mDrvU/gEw
6CasND2BsKCt0RZhgWuALhefTW7KyVUB10VZnp4XQ9icB/0h3OEcPVqJhffOD+FM2D2CubYKXoTX
ojI4BKHUTLplbZC0szMpjKmEXOzy9v/sDWsrZ5+tRHHXJHoQBPtJLzmAoF8R0iRpj5MkiqHzda35
qcbVLmaXIP2JZ8bJBbxd3F9fve8iv1mn1vCWTfLHLZr20i/0JD1qky36S5yPp7+9W/gDUEsDBAoA
AgAAADCLvUh2vmWJNwAAADcAAABJABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRib2JqZWN0c3RvcmVfcHV0LWV4cGVjdGVkLnR4dFVUCQADfIhLV3yIS1d1eAsA
AQT1AQAABFAAAAAKUEFTUyBJREJPYmplY3RTdG9yZS5wdXQoKSAtIHB1dCB3aXRoIGFuIGlubGlu
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
wQeIJ3BWMMcSB4s/lsEfJPw3lfbjek2zOPgddBcLEkCmgDs9SYBh4fq+zqQIaK4ymMTB4ygKgDY8
yCcJTX6up4ngtWo/SDy/DmgcsvAjCLiQjJO7EnaC3maNM19uJCAeNoHW3hOd7I/o+3vfc3WvR+bq
0pqiLjWo+T5oNw/IpnAT9QuBXZdxcjUE78L4VWMW1H19zg9FKMrLzokg4CdXdgTCA5C+FbCzbwDs
t1fLJXo9v36n47NU8fEhPj/+hDwEn0BLMkWwyF7c7skWob/EmNFf4GX90Z8nQFVPJ4mddBD7AVzs
C1JJY7959+vy3ZsFertYLl/9azHT69BoOEO/k4RwUkRkwbliqRtc/HAMLQrcqKHDRw+YU/Vudqag
3gHNlBlRpXMHKpAp4vy6cH1Te8++1t7hV9krtkV0p8jmO5o46jcRSFOdJtGPg9PBT0jJGpoOBpvz
weA7Ah73A0bgeyBt/gEk5m+He/L1jp5+R7jnT7tZMxH6/Mv7t2/+/Juhf34IfYUfWgz0+frd/D8G
/vR0auE/n4433zNXpofhtwIwf/2h7f9OA/bkpNYiKvHRw/W5uw/djUGno/8t9/9QSwMEFAACAAgA
MIu9SJy7Mi2iAAAAIgEAAEkAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQxMi1hY3R1YWwudHh0VVQJAAN7iEtXe4hLV3V4CwABBPUB
AAAEUAAAAHXMQQuCMBiA4bu/4rtV4GFC1NgtdVSgCRlCp5j6CaMxYY7SpP9eZHgQvD/vGySnNIk4
xDxNd3vOQEmN4HkMzlihQV0gN6Y2DAKhFxYqqUt4CCNFrpCBaDpd3Cw21lGiQwPCwpK4ZAWNfCFQ
QtoNIQ58b7pEk0l8zpC5nI6xr+riDv3hEkfvGTjSuuyg95PwOkjq0r/c0nVLfnKyDY/Z9DrYD1BL
AwQUAAIACAAwi71I3TewcGYBAADCAgAARwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX3B1dDEyLWRpZmYudHh0VVQJAAN7iEtXe4hLV3V4
CwABBPUBAAAEUAAAAMWQTUvDQBCG7/kVc7OSrpuoaOipjQla/Kg0UvEkm+wUV7fZsDuxqcX/7toW
BaFnTwsvz/PuzDDGgM+MbhfoeCZI8Pyx4I9YXivaPWmrtORT1Cgcci1WpiVG6IhZdK0mx9WiMZZQ
8uVJxZdYskYLmhu72GCOj2uJHcos5UqWpnzFihwZi89NS/Exw67xCcoj6igIw/DfBxIVtUJvxhkO
gcX9Ewjj/jkMhwEL2P2oKGCcpZONV3x7R97rHQKDEREuGgIy4CMQYLEyVsLyBS0CveAuOHCgaqZV
jfCGK1AOakMgce4TCeC/CS8md8XkJofbvChGl/kANnQcD2CKc99WV5hba+wALkR9QOBVCe/CKlFq
HIBwq7p6/l43CP2J0IIg6EX96BCc+kBIoqg7i6IgBN/nz2FnCpf7mH0Fya+ealO9wfrq4fbmcx/5
wxq5gnU6yZ62aNJPduh5ctpFW/RPcTae/e3dwl9QSwMEFAACAAgAMIu9SCrwvhZcAAAAZgAAAEsA
HABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9y
ZV9wdXQxMi1leHBlY3RlZC50eHRVVAkAA3uIS1d7iEtXdXgLAAEE9QEAAARQAAAALcgxDoIwAAXQ
vaf4mzLgHWpYmDTpCYR+0qK2TfsJ4fYy+MZnntY5jMP9Ma2c5ZQrb2XTtUMPK/FbBGWchRcq51w9
9sBKKPAfl4aY+k9MxJsHYkPKgudyjgeM+QFQSwMEFAACAAgAMIu9SPy+PwdWCAAAGB0AAE8AHABp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9w
dXQxMi1wcmV0dHktZGlmZi5odG1sVVQJAAN7iEtXe4hLV3V4CwABBPUBAAAEUAAAAM1ZbW/bthb+
nl9BJLjLNkQvju3UdtpcNLFzV6xdh7nocD8VlETZbCTRl6Rju93++z18kyVZcjqgQ7ditUQeks95
e86h+nwp8+zm5PmS4AR+ciIxipeYCyJfnK9l6o3OYVjIXUZuTiYZLR4u0OSRCipJgj6fIPhPkq30
EhIzjiVlxQQVrCDXeipiPCHci5iULJ+g3mqLEngmyfXJnydmO7tJzDLGJ+gs7I/1nH9PMzKlaWrn
Ixw/LDhbF4nnRNOR+lM9yJwgWEYTdJYkiZlLWSG9FOc0201QzgomVji2AHPMFxQg90iOQjO0YqCc
1oOTDDR6JBrQstdA2u/3W/YXuBCeIJymlUlBPxF9RvVQLyOpnKDQH7rxhIpVhmETWoBlLMINTeQS
Fofhvyw+nCS0WJQrDTbrGvVU946FS4slgJKl+JI9Et7QaDgcXncZmxBjBl/55DWcJeziNGMY1OB0
sZR1zympO1Afgy7uKAampxJUDBsqSxxlxItJltW09PS+NSttlqCdp32oQm3D8WqPbE5i5bvOoNGL
6yHTDBcbs87uEFDhamtOmG1X4F7YH1QjF8hXP00NO+EJmpBop/5GGuptxuKHXzGXPqg6SSkX0ouX
NEs6DauOm8P6i2ObcZKDay+eOM+e4cxvAs6LlEgt7IYu6iBaJI1x5uGMLiA3JGtRixMV6T/hIsmI
M4fdR5lQvS+Jceg+nuM1F8o1CnYzA3EE3lk7j8GZZeCY5NHwjqGoxflhOCw42V03AtMfPuUvY2Lk
S/akmf2Us7xhbMuP6gxl9V/WeUQ4RBOpRpcZdcAPadRG7XhcI0CXLm006DJ5MBi00k3V+yXHqI2G
JgVMGpSEb+PAhmdbiBi4tXDqW8KqKK5VbCUcUyQ6zXKEpFZcZaeCaQ3o2MRGjVOklquwyDPZqqfA
nvoV9OAEP3hqwACiOV6Qmmcm6LI0eJRhZUUlGAM1AAaAYp9QU++9V0aDcSf3piTdE4AKK9ixLI+V
bG5ZmqRJfSk4W3SLj8n4+lhNL3eyLFPFYbOiu1wnycEGKCFZ9woyfhJN8COar1crxiVUWm4jGYya
56SQAv0YwHl4LZfM2NtUY9XMQNRLiNPYeUov0DId9b+UUWAwhIQWdnR25QJb0Q3OsjuHoFX60tSy
HG+9RnnPoS+wQ5dhWXeaR4Pdj55TZnaZ0rVj2nD6bEVM2fQ2JHqg0pNcpZ2xhAGO/EtxXVFjYJU+
ExLLtbhdR1DDy3roq+xphaOWSMayCPP6vDs6zYjO0P1Ezj6VoyU59U0e2z5KPbpuQT13t4RdzHG0
lduHRUq3xOxj+Tisq+Rj3YOYNDus4hsKXMAboVbu+cmjRUK2QFJHVNsXwgqENr0sGdXK28iyWKFg
2oRtLU1wXsS2TwK92gPtmSB2Rci8abD2uaxg9rUEXHZmtaNpynFuEDbypN5GVHLkroNpD22zg16T
bWytJxk0jtAzf0Fhuhrf78PL1uSOSW2I+lzZRiaH7XG9ObZ7GPMdxnBnS5A4njXHvHSk4K46YXX2
nauRjTvJ1TNHaIcwjyRJ5bYjcmx6+SrnFozD8HUHy1j9VQsm2g43eri8DttEMhyRbIJTyLCLg+Vm
XG+iC3IBqp6iP9Dp9UlZiCvlu7k6w9Chs9STuxVp3eq0E5EVbFxxlyTTBFk2o1g1ox016iwnQrjG
o9PObW6pZMdcE/WXlEIoMdAQPVK2FnflCDSzn0hxVymWbXXetRzNElMtLorLIWp1JDhut+82Ei2J
9F0N/CI0NjSgxyFS5UStXNi2r6Ppq9bZaA1ZVVR5x9X3hD5OUhZbG7K1VHxRTb8oW+tKYqcgXlLA
AhWs5xSpFku9C/Qw75bEnBTYSrsA/EoHyZCEuchI21AT6JFixcnyjY0JABtxtgGHQyewxLDWNkVU
+qoJKvUYDG0XX7Yi9t2xg2pk1f9hvYi6TzrNHj+nCdyyjGLKQcJdvlsqCvRhTOBHsD1YgDTqSvWm
d1DqvJ7fNy3T/uOHq/4tPjibTqeVlD4b3U/vh/et/ATNZXsUz2azNtQTkq+AoWrOt21aQ9KHR0Ba
y/zZeBSOLG/FGcH8g24P3FVAjehr01KJPA/sV7fnIuZ0BT7l8YvTpZQrMQkC/BFv/QVjC1i0okKF
rh4LMhqJ4OP/1oTvgp4/8C/tiw+tpf9RnN7Avnq/G1TfOWYJ8ZQPyQbk/g2eVs58MRhVlgAo+6Ew
YskOfiAfADcW4sW5uwmo74XL3k3wHvwJnBVMscTB7Pd58DuJfqbS/tyuaZYEv0HdxYIEEClgTk8S
YFi4vq8zKQKaqwgmSbDpxwHQhgfxJKHJz7WYCF6p9oMk09uAJhGLPkIBF5Jx8mG1lr1LD7qbNc58
uZWAuVeHWvlSdH44o2/wXePqZo/M5aUhoq41qP5FaC8HdFM4Qf1JYN9nnN/0wL4wf1OTgsyvynxX
RGJ13SoIJfz8xs6AgwDS1wJ2+RWA/fpyPkevprdvtYfmykM+eOj7H5CHXkqp8kmxHAxBfefqjpcA
RRNONPGZge/OoGQKpPoTpcsD2SEqgFkk3B9TGEkQ+lv07/8NjtE/3aEF/PZ0XFmho9iP4GJfEH0a
+93bX+ZvX8/Qm9l8/vI/s4leh3q9CfqNpOCiIiYzzhW13eFCOwmu4XAtQI+YU/VBF3hd7Ir4g8rY
v+ahr6riZbeKwDzqNIm+Dy/CH5CqDWgUhturMPyGgPvdgBHYHpiPvwee/sfhHvx1Q4++Idzh02bW
mYk+//Tuzes//2Hor46hL/FDnUafb99O/2vgjy5GFv6z0WD7LWPl2XH4DQdMX71v2r9VgQN6rfRZ
ioz1dFV2/6NbGmgW9D+I/h9QSwMEFAACAAgAMIu9SOIVogWyAAAAaAEAAEkAHABpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQxMy1hY3R1
YWwudHh0VVQJAAN7iEtXe4hLV3V4CwABBPUBAAAEUAAAAI3MTQuCQBAG4Hu/YtguBR420jSPUtCh
KESCYC/iDiWZC+uGmvjfc80+EIQuM/PCM28SlighVDChBp1CFj8QHEqLBaUjAB9TjvIYYz5Akj/e
vUREV6g2wW5bD9IPFryEytuvTi/rGE5nbccsLHvZ2l71wV/3m7WeWR1+8wALBdVYNavv59T69QAa
gbynX5fHXF00dIFUjKCUQjLiQnPfMMvCM+rECCNGMyPB22xSs67J6AlQSwMEFAACAAgAMIu9SNlV
jH+PAQAAKwMAAEcAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9p
ZGJvYmplY3RzdG9yZV9wdXQxMy1kaWZmLnR4dFVUCQADe4hLV3uIS1d1eAsAAQT1AQAABFAAAADF
kt9L40AQx9/zVwy5FyVZN6Wt5nyqoYKiorSiHBSObXa87rnJht2JSS39393EX1gQ7u1ednaWz2f4
DixjDPid0XWBjk8FCX56P+f3uLxQ9FayWmnJZ6hROORarE1NjNARs+hqTY6rojKWUPJmmPMGl6zS
gh6MLXrM8fNSYotymnEll2b5F3NyZCz+rmoaDBm2lX9BeUAtBVEU/fdAIqda6D7OZAJsEA8hGsQp
TCYBC9jNyXwO59PsuvfmnXfgvb19YHBChEVFQAb8EwiwmBsroVmhRaAVgs8K5gG0KhEecQ2VNU9K
ogRp0EFpCApE6tHclI6sUCW5ThHwJLSSvQU+SOQ3RwuCYC+Jk31w6hkhTZL2MEmCCGCGfkt7p7D5
jvmnAZk2+SNszm6vLrffsx+0kWvYZNfTX69wGqdv8FE6asdHP1/hneE3s9Pd2R0+GL/T7/wttgSb
H+TLrjBMxl8EgI4CW5efYKMkrTryGMLNIkRrjV2Ex+Dv/rs58Qe7bhEuwtifuZF9P0pG220YvABQ
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
8In57Wp+6t3jo+kL/cLfYUew/0CunArG0fSNAKCnwLT1K7gtJW168hr8/drH/inX/jW4vftyVvzA
vlv7az90a6Hl0E+iyeHge38AUEsDBBQAAgAIADCLvUi7B1cmdQAAAIwAAABLABwAaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfcHV0MTYtZXhw
ZWN0ZWQudHh0VVQJAAN7iEtXe4hLV3V4CwABBPUBAAAEUAAAAB3MOw7CMBgD4D2n8AgScAdQO3RA
RcoJ0taoQXkp+Vvg9oSs/myrx1VrDN1tnF6cRUvMvKRNDkecMTwhKxEbofwNqymYyICFjsLl1CrW
J0fPIEZsDPBbkZrn+IZBN977z8zUJNbLbyKGsBtnF10H7HOOGUr9AFBLAwQUAAIACAAwi71IJF6+
Cn0IAABDHgAATwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lk
Ym9iamVjdHN0b3JlX3B1dDE2LXByZXR0eS1kaWZmLmh0bWxVVAkAA3yIS1d8iEtXdXgLAAEE9QEA
AARQAAAA1Vlrb9w2Fv3uX0HE2LotrMd4Zpx5JF7UHhsNttkEcdBigQUKSqIsxpI4JSl7nGz++16+
NJJGmskCKdJt0IxEXpLnPs+l8iKTRX5x9CIjOIGfgkiM4gxzQeTLk0qm3uwEhoV8ysnF0SKn5f0p
WjxQQSVJ0KcjBP9JspFeQmLGsaSsXKCSlWSppyLGE8K9iEnJigUarTcogWeSLI8+H5nt7CYxyxlf
oONwPNdz/g3NyYqmqZ2PcHx/x1lVJp4TTWfqT/Mgc4JgOU3QcZIkZi5lpfRSXND8aYEKVjKxxrEF
WGB+RwHyiBQoNENrBsppPTjJQaMHogFlow7S8Xjcs7/ApfAE4TRtTAr6kegzmod6OUnlAoX+1I0n
VKxzDJvQEixjET7SRGawOAz/ZvHhJKHlXb3SYLOuUU9t71i4tMwAlKzFM/ZAeEej6XS6HDI2IcYM
vvLJL3CWsIvTnGFQg9O7TLY9p6SuQH0MurijGJieSlAx7KgscZQTLyZ53tLS0/u2rPSYgXae9qEK
tUeO11tktyRWvhsMGr24HTLdcLEx6+wOARWuN+aE680a3Av7g2rkFPnqp6vhIDxBExI9qb+RhnqZ
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
dFVUCQADQ4xLV0OMS1d1eAsAAQT1AQAABFAAAADLSaxMLVJILFHQMNAx0FQozqxKVbAwMKgwMzDg
UlAISs1LSS0Ky0wtx6EkhwjtTjn5ydkK1R4hvj61OJXCFeenVCpUO/m7RELUWuhYQNWaW5hUmFqY
cAEAUEsDBBQAAgAIADSNvUg5ttZFEwEAADcCAABGABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfcHV0NS1kaWZmLnR4dFVUCQADQ4xLV0OM
S1d1eAsAAQT1AQAABFAAAADFjkFPwkAQhe/9FXMT0i5bAtUea1MTiRoMNRBPZtsd48rCNruzoUj8
79aC3ki8eZrkzfe+PMYY8KXRfoOOF4IEv1mVfIXVnaLTyb3Ski9Qo3DItdgbT4zQEbPovCbH1aYx
llDy3aTmO6xYowW9GrvpMcdnW4ktyiLnSlameseaHBmLL42nhGHbdAHKEbUUhGH433tETV7ofk2W
ARtHEwjHUQJZFrCAPV6XJcyKfN7Xyu/aqKsNhsDgqILedeFgjXtoBL2BciC2P19BZFXlCQE6X9jt
R9uFMIijeAhOfSCkcdxexnEQAiyw22qXCnfnmD8Jcm3qNRxunx7uP8+zv7SRezjk8+L5CKdReoKv
0mmbpNPgC1BLAwQUAAIACAA0jb1InVgZeUUAAABPAAAASgAcAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX3B1dDUtZXhwZWN0ZWQudHh0VVQJ
AANDjEtXQ4xLV3V4CwABBPUBAAAEUAAAAOMKcAwOVvB0cfJPykpNLgkuyS9K1SsoLdHQVNBVyAeL
KRSDBNWLFbJTKxUKEksyFDKLFRLzYLKJJSVFmUmlJakKClxcAFBLAwQUAAIACAA0jb1IrIFXn/QH
AABiGwAATgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9i
amVjdHN0b3JlX3B1dDUtcHJldHR5LWRpZmYuaHRtbFVUCQADQ4xLV0OMS1d1eAsAAQT1AQAABFAA
AADVWWtv4zYW/Z5fQSTYpi2ih2M79WMmiyZO0GLbbdEMWuyngpIoixNJ9JJUbM9s//tevmRJlpxZ
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
KNAz2UOOywxRgWArK4Gl5BSKMkHoT1F0/Cd4QP8MxxDUsdcDyAqdxH4CF/uEMNPYIf3UaRJ9GV6F
XyFVINEsDHc3Yfi/2fuzAr4eBozQLwTSn/8Kxeovh3v8/2boyeuG1oGLPn737scf/vjL4Z+ewl9r
AISFPt79tPqXUWB2NbMKfDOb7KazyasJ3GBsle56uil7+NHkCLyj/2ntv1BLAwQUAAIACAA0jb1I
TZ6cTFgAAACyAAAASAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYm9iamVjdHN0b3JlX3B1dDYtYWN0dWFsLnR4dFVUCQADQ4xLV0OMS1d1eAsAAQT1AQAABFAA
AADLSaxMLVJILFHQMNAx0FQozqxKVbAwMKgwMzDgUlAISs1LSS0Ky0wtx6EkhwjtTjn5ydkK1R4h
vj61OJXCFeenVCpUO/m7RELUWuhYQNWaW5hUmFqYcAEAUEsDBBQAAgAIADSNvUh4pVWYDgEAACYC
AABGABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0
c3RvcmVfcHV0Ni1kaWZmLnR4dFVUCQADQ4xLV0OMS1d1eAsAAQT1AQAABFAAAADFjk9Lw0AQR+/5
FHNsSbab0j/mGEMEi0qlKS2eZJMdYe0mG3ZnaWrxuxtj8Vbw5mlgeO/HY4wB3xnta3Q8FyT43b7g
eywfFF1O5pWWfIMahUOuxcl4YoSOmEXnNTmu6tZYQsmPs4ofsWStFvRmbD1gjq8aiR3KPONKlqZ8
x4ocGYuvraclw67tHygn1FEQhuF/94iKvNBDTZoCm0YzCKfRAtI0YAF7vi0KWOXZetCKb23Sa6Mx
MBCezKqpLNbYEIhGgmq0ahAOeHIAvR72uWhBEIziKB6DUx8ISRx3yzgOQoAN9ml2p/B4jfnTQKZN
dYDz/fbp8fM6+0sbeYJzts5ffuAkSi7wTTLvFsk8+AJQSwMECgACAAAANI29SHgdvF8+AAAAPgAA
AEoAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3Rz
dG9yZV9wdXQ2LWV4cGVjdGVkLnR4dFVUCQADQ4xLV0OMS1d1eAsAAQT1AQAABFAAAAAKUEFTUyBJ
REJPYmplY3RTdG9yZS5wdXQoKSAtIGF1dG9JbmNyZW1lbnQgYW5kIGlubGluZSBrZXlzICAKClBL
AwQUAAIACAA0jb1Ia53AOegHAABNGwAATgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX3B1dDYtcHJldHR5LWRpZmYuaHRtbFVUCQADQ4xL
V0OMS1d1eAsAAQT1AQAABFAAAADVWWtv27Ya/p5fQSTYyTZEF8d2ZjttDpY4wYpdsRQbzqeBkiib
DSVqIhXb7fbf9/ImS7LkdEAH7KxYLZEvyee9Pi/VV2uZsZuTV2uCE/jJiMQoXuNSEPn6vJKpNzuH
YSF3jNycLBjNny7Q4pkKKkmCPpwg+E+SrfQSEvMSS8rzBcp5Tq71VMTLhJRexKXk2QKNii1K4Jkk
1yd/npjt7CYxZ7xcoLNwPNdz/gNlZEnT1M5HOH5albzKE8+JpjP1p3mQOUFwRhN0liSJmUt5Lr0U
Z5TtFijjORcFji3ADJcrCpBHJEOhGSo4KKf1KAkDjZ6JBrQedZCOx+Oe/QXOhSdISdPGpKDviT6j
eajHSCoXKPSnbjyhomAYNqE5WMYi3NBErmFxGH5m8eEkofmqXmmwWdeop7Z3LFyarwGUrMXX/JmU
HY2m0+n1kLEJMWbwlU++g7OEXZwyjkGNkq7Wsu05JXUH6mPQxR3FwfRUgophR2WJI0a8mDDW0tLT
+7astFmDdp72oQq1TYmLPbJHEivfDQaNXtwOmW642Jh1doeACoutOeF+W4B7YX9QjVwgX/10NRyE
J2hCop36G2mot4zHTz/hUvqg6iKlpZBevKYsGTSsOu4R1l8c26wkGbj24oXz7BnO/CbgvEiJtMJu
6qIOokXSGDMPM7qC3JC8R62SqEj/BucJI84cdh9lQvW+Jsah+3iOq1Io1yjY3QzEEXinch6DM+vA
Mcmj4R1D0Yrzw3BYlWR33QlMf/qSv4yJkS/5i2b205JnHWPb+qjOUFb/ocoiUkI0kWZ0mVEH/LCM
2qidz1sF0KVLXxl0mTyZTHrLTdP7dY1RG01NCpg0qAu+jQMbnn0hYuC2wmlsC1ZDca1ib8ExJDFo
liNFqihVdiqY1oCumtiocYq0chUWeSZb9RTYU7+CHiXBT54aMIBohlek5ZkFuqwNHjGsrKgEYygN
gAGg2CfU1XvvldlkPlh7U5LuC4AKK9ixpsdGNvcsTdKkvRScLYbF52R+fYzT651slWnisFkxTNdJ
crABSggbXkHmL6IJvkSPVVHwUgLTljaSwahZRnIp0JcBnIcruebG3oaNVTMDUS8hTmPnKb1Aywzw
fy2jwGAICS3sytmVC2xVbjBjdw5Br/Sl4bIMb70OvWfQF9ihy7Dmne7RYPej59SZXad065g+nD4v
iKFNb0OiJyo9Waq0M5YwwJF/Ka4bakys0mdCYlmJ2yoCDq/50FfZ0wtHLZGcswiX7Xl3dMqIztD9
RMbf16N1cRqbPLZ9lHp03YJ6Hm4JhyrH0VZuHxYp3RKzj63HYVslH+sexKTZIYtvKNSCshNq9Z7v
PZonZAtF6ohqeyJsQOjTyxajFr3NbBXLFUybsL3UBOdFfPsi0Ks90JEJYkdC5k2Dtc81g9nXGnDd
mbWOpmmJM4OwkyftNqKRI3cDlfbQNjvoNfnGcj1h0DhCz/wRxHQ1f9iHl+XkgUltiPZc3UYmh+1x
uzm2exjzHcbwYEuQuDprjvnaFQV31Qmbs28dR3buJFdfuYJ2CPNIkjRuOyLDppdv1tyclzB8PVBl
rP6qBRN9hxs9XF6HfSIMR4QtcAoZdnGw3IzrTTQh56DqKfoDnV6f1ETcoO/uaoahQ+epJ3cF6d3q
dBCRFexccdeE6QJZN6NYNaMDHHWWESFc4zFo5z63NLLjURfqj6FCoBhoiJ4pr8RdPQLN7HuS3zXI
so/nXcvRpZgmuahaDlGrI8HVdvtuI9EWkbHjwI9CY0MDehwiVU606MK2fQNNX5NnowqyKm/WHcfv
CX1epDy2NuSVVPWimX4RqzST2CmIlxSwAIONnCJNstS7QA/zdk3MSYFl2hXgVzpIjiTMRUbahppA
zxSrmiy/tzEBYKOSb8Dh0AmsMay1TRGVvmqCaj0mU9vF162IfXfVQTWy6v+wTaLuk063x89oArcs
o5hykHCX7x5GgT6MC/wMtgcLkA6vNG96B1TnjfyxaZn2Hz8c+/f44Gy5XDZS+mz2sHyYPvTWJ2gu
+6P4/v6+D/WCZAVUqJbzbZvWkfThEZC2Mv9+Pgtntm7FjODyN90euKuAGtHXprUSeRXYr26vRFzS
Anxaxq9P11IWYhEE+B3e+ivOV7CooEKFrh4LGI1E8O73ipS7YORP/Ev74kNr6b8Tpzewr97vBrV3
jnlCPOVDsgG5/4KnlTNfT2aNJQDKfiiMeLKDH8gHwI2FeH3ubgLqe+F6dBP8Av6EmhUsscTB/a+P
wa8k+pZK+3NbUZYEPwPvYkECiBQwpycJVFi4vldMioBmKoJJEmzGcQBlw4N4ktDkZ1pMBG9U+0GS
5W1Ak4hH74DAheQl+a2o5JUHzU2FmS+3EiCP2kgbH4rOD2f0BX5oXF3skbm7dETUrQa1Pwjt5aDa
5E5QfxHYtxnnNyMwL8zftKQg8Zsy/8kjUVz3CgKDn9/YGfAPQPpUwC4/AbCfvn58RG+Wtz9qBz0q
B/ngoM+/QB5SCfMmjwGNKrrQjbj72xPZCYT+EZ3G/4Cx9c9wuEDJejlWrNBR7Edw8Y+IKI0dMk2d
JtHn4UX4BVK1EM3CcHsVhn/P3p8U8OUwYIR+JpDp5S9Ql/51uMf/b4aevGxoHbjowzdvv//uz38d
/ukx/LUGwE3ow+2Py/8ZBWYXM6vAV7PJdjqbvJjADXJW6a6nm7L7H82DQDH6X9H+AlBLAwQUAAIA
CAA0jb1ITZ6cTFgAAACyAAAASAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5k
ZXhlZERCL2lkYm9iamVjdHN0b3JlX3B1dDgtYWN0dWFsLnR4dFVUCQADQ4xLV0OMS1d1eAsAAQT1
AQAABFAAAADLSaxMLVJILFHQMNAx0FQozqxKVbAwMKgwMzDgUlAISs1LSS0Ky0wtx6EkhwjtTjn5
ydkK1R4hvj61OJXCFeenVCpUO/m7RELUWuhYQNWaW5hUmFqYcAEAUEsDBBQAAgAIADSNvUjD9RW9
JgEAAFQCAABGABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
b2JqZWN0c3RvcmVfcHV0OC1kaWZmLnR4dFVUCQADQ4xLV0OMS1d1eAsAAQT1AQAABFAAAADFj0FL
w0AQhe/5FXNsSbeb0laDpxgiWFQqjVg8ySY70rWbbNidpanF/25Mq7eCN08Dj++9eY8xBvzZaF+h
45kgwW/WOV9jcafodFKvtOQr1Cgcci32xhMjdMQsOq/JcVU1xhJKvpuWfIcFa7SgN2OrHnN8UUts
UWYpV7IwxTuW5MhYfG08xQzbphNQjqmlIAzD/+4jSvJC922SBNhkNIVwMppDkgQsYI/XeQ6LLF32
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
1ZpbmFSYWphwAQBQSwMEFAACAAgANI29SM+21bs6AQAAcAIAAEYAHABpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQ5LWRpZmYudHh0VVQJ
AANDjEtXQ4xLV3V4CwABBPUBAAAEUAAAAMWPQU/CQBCF7/0VcxPSLlsCaL1BUxOJGgwYjCezdIew
su3W3WkoEv+7SyHeSLx5muTley/fMMaAL42uC3Q8EyT43euCv+LqQdH5pLXSks9Ro3DItdibmhih
I2bR1ZocV0VlLKHku0HOd7hilRa0NrZoMcenpcQGZZZyJVdm9YE5OTIW36uabhk2lQ9Q9qihIAzD
//YROdVCtzbjMbB+NICwH41gPA5YwJ4niwVMs3TW1hbHWs/XOl1gMCHCoiIgAz4CARZzYyXQRhBI
gw5KQ1AgemSDkJvSkRWqJAdmDaKEkwu0MlcOVKlVibDFvV/6rJXFAo8weJHQP44W/HAnjuIuOPWF
kMRxcx3HQQgwR/+kXSrcXWL+NJBqk2/hcP/y9Ph9mf2ljdzDIZ1lbyc4iZIzfJMMm1EyDH4AUEsD
BBQAAgAIADSNvUj9uKocbwAAAIgAAABKABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfcHV0OS1leHBlY3RlZC50eHRVVAkAA0OMS1dDjEtX
dXgLAAEE9QEAAARQAAAAHcwxDsIwFATR3qfYDijgDkE0VCD5BI6zKAbsH+xNwe1xaEej5+6D97he
zrfxySgvqzwtq/YHHDFIzIsgQ08IqIxWJ2gOwmRsKCZksi8zEa001ZCKGuyBUGB/FG1Tdw2pvFMh
Xvx26bOmysxthnM/UEsDBBQAAgAIADCLvUjiFaIFsgAAAGgBAABDABwAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRidHJhbnNhY3Rpb24tYWN0dWFsLnR4dFVUCQAD
fIhLV3yIS1d1eAsAAQT1AQAABFAAAACNzE0LgkAQBuB7v2LYLgUeNtI0j1LQoShEgmAv4g4lmQvr
hpr433PNPhCELjPzwjNvEpYoIVQwoQadQhY/EBxKiwWlIwAfU47yGGM+QJI/3r1ERFeoNsFuWw/S
Dxa8hMrbr04v6xhOZ23HLCx72dpe9cFf95u1nlkdfvMACwXVWDWr7+fU+vUAGoG8p1+Xx1xdNHSB
VIyglEIy4kJz3zDLwjPqxAgjRjMjwdtsUrOuyegJUEsDBBQAAgAIADCLvUjMlWA4YwEAAAEDAABB
ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRidHJhbnNhY3Rp
b24tZGlmZi50eHRVVAkAA3yIS1d8iEtXdXgLAAEE9QEAAARQAAAAxZJNT8JAEIbv/RWTesG065YI
Uj1hA4lGjQQIxoTL0h2lceni7jQUCf/dLR8aSYjevOzsJM/zZiYZxhjwkVbFDC3vCBK8+zTgTzi5
y2hXkiJTkvdRobDIlVjqghihJWbQFoosz2ZzbQglX5ynfIETNleCXrSZbTDLb3OJJcpOwjM5ISNy
K1LKdM6wnGPqxDMqyQuC4B9HcaUQajNIuw2sHjYgqIcxtNse81jvejCA204y/DaAgcH3wqXCqybC
HCZLoCnCVORSoYHfLINUmBxl5ek55rVTp3iB28rJgqAWhdEp2OwDIY6i8iKKvACgj24DM8pwcYz5
U0CidPoGq5vhw/36OPtFa7mEVfLYed7CcRjv4FbcKJutyy18EN7rdw+zK7ze3NN7foglweqEXDkU
zqPmDwGgosAU+Te4yCRNK/IK/NXYR2O0GftX4P7ulKx4xaob+2M/dG+q5aZvRI312vc+AVBLAwQU
AAIACAAwi71IIHziw00AAABpAAAARQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
SW5kZXhlZERCL2lkYnRyYW5zYWN0aW9uLWV4cGVjdGVkLnR4dFVUCQADfIhLV3yIS1d1eAsAAQT1
AQAABFAAAADjCnAMDlbwdHEKKUrMK05MLsnMz1PQVShKLSxNLS5RSM8vKUnNU0iqVCjJSFXISMxL
yUktUuDCr6kotaS0KC81BaQtvyA1T0NTgYsLAFBLAwQUAAIACAAwi71I4hWiBbIAAABoAQAATgAc
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYnRyYW5zYWN0aW9u
LW9uY29tcGxldGUtYWN0dWFsLnR4dFVUCQADfIhLV3yIS1d1eAsAAQT1AQAABFAAAACNzE0LgkAQ
BuB7v2LYLgUeNtI0j1LQoShEgmAv4g4lmQvrhpr433PNPhCELjPzwjNvEpYoIVQwoQadQhY/EBxK
iwWlIwAfU47yGGM+QJI/3r1ERFeoNsFuWw/SDxa8hMrbr04v6xhOZ23HLCx72dpe9cFf95u1nlkd
fvMACwXVWDWr7+fU+vUAGoG8p1+Xx1xdNHSBVIyglEIy4kJz3zDLwjPqxAgjRjMjwdtsUrOuyegJ
UEsDBBQAAgAIADCLvUjZThdDTwEAANUCAABMABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRidHJhbnNhY3Rpb24tb25jb21wbGV0ZS1kaWZmLnR4dFVUCQADfIhL
V3yIS1d1eAsAAQT1AQAABFAAAADN0k1PwkAQBuB7f8WkXjTtuiWAVE7YlESiRgIEYsJlaUdtXLpk
dypFwn93y4dEEhKPXnZ2Ns9M3sMyxoCPlSzmaHgsSPDuZMgnOHvIaF+iIpMpH6BEYZBLsVIFMUJD
TKMpJBmezRdKE6Z8WU/4EmdsIQW9Kj3fMsN7eYolpnHEs3RGWuRGJJSpnKk8UfOFREKG5QITu+Oa
SnI8z/sfqexLIeQ2U6cDrObXwav5IXQ6DnNY/244hF4cjY7DwOAwDPiJOYGFno2HGgTBZeAHV2Cy
L4QwCMqbIHA8gAHaKHqc4fKc+dOCSKrkA9b3o6fHzXn7o1W6gnX0HL/scOiHe9wKG2WzdbvDJ8v7
g+7p7orXmgd98CMsCdYXZMvpQD1o/hoAqBToIj/CZZbSeyXb4K6nLmqt9NRtg73bP2HEG1bd1J26
vj0TlW77RtDYbFznG1BLAwQKAAIAAAAwi71IrYlY1igAAAAoAAAAUAAcAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYnRyYW5zYWN0aW9uLW9uY29tcGxldGUtZXhw
ZWN0ZWQudHh0VVQJAAN8iEtXfIhLV3V4CwABBPUBAAAEUAAAAApQQVNTIElEQlRyYW5zYWN0aW9u
IC0gY29tcGxldGUgZXZlbnQgCgpQSwMEFAACAAgAMIu9SIQAlz81CAAA5B0AAFQAHABpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJ0cmFuc2FjdGlvbi1vbmNvbXBs
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
B028tc9F5/sz+hrfN66u98jcYFoi6m6Dmp+FdnJQcwonqL8L7JqN8+sBGBnmrxtSkP51ma+LSKzn
nYLA4+fXdga8BJA+F7DLzwDs9fcPD+jHxc3bnZuQh5ybEHlSVfcvQT/8C8yqf/oDA0rU8aiwQgex
H8DFPiF2NHbILHWaRP8IL8JvkKp9aBKG26sw/N/s/VkBX/YDRugNgczmv0Id+tvhHv6/GXp03NA6
cNGHH97+/NPHvx3+8SH8lQbARejDzS+LfxsFJhcTq8CLyWg7fjH9ggpcHVag5YTXb+7aPlAqDMZf
UIMXxzRwOpi75JmaaisxDMdfVonJcSXMZ0bEy2IHXnfNCv0Mff1HyeT8w3/ML+Gccfs8Q27UXtGq
cftgfy7cu+q0KplROPr40bwc5Zlaz6hYSU/XZXc/uj2Dnkf/4+5/AVBLAwQKAAAAAAA0jb1IAAAA
AAAAAAAAAAAALwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVl
c3QvVVQJAANDjEtXcIxLV3V4CwABBPUBAAAEUAAAAFBLAwQUAAIACAAzjb1IXYj30qIAAAAiAQAA
VwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvZ2V0cmVz
cG9uc2VoZWFkZXItc2VydmVyLWRhdGUtYWN0dWFsLnR4dFVUCQADQYxLV0GMS1d1eAsAAQT1AQAA
BFAAAAB1zEELgjAYgOG7v+K7VeBhRdTYLXVUoAkZQidZ+gmjMWGO0qT/XmR4ELw/7+vHpyQOOUQ8
SXZ7zkBJjbBcMThjiQZ1jtyYyjDwhZ5ZKKUu4CGMFDeFDETd6jyzWFtHiRYNCAtz4pIF1PKFQAlp
NoQ48L3pAk0q8TlBpnI6xJ6q8jt0h0sUvifgQKuihc6Lg2svqUv/ckvXDfnJ0TY4puNrbz9QSwME
FAACAAgAM429SBNgPX9MAQAAtAIAAFUAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L1hNTEh0dHBSZXF1ZXN0L2dldHJlc3BvbnNlaGVhZGVyLXNlcnZlci1kYXRlLWRpZmYudHh0VVQJ
AANBjEtXQYxLV3V4CwABBPUBAAAEUAAAAM2QTU/CQBCG7/0VcxNT1i1ipOmpfDRiBDGtAT2ZpR20
cWnr7hSKxP/uQolGEu6eJpM87zPvLmMM+DSX5RI1HwgSPJhFfIbzu5QOo1emMuEhShQauRSbvCRG
qIkp1KUkzdNlkSvChK/bMV/jnBVS0CJXyz2m+dN4NCQqQvwozc5fkUyyyDONbygSVEyjWpmRCEKG
VYGxkV1QRZZt2/+snoipFHJfzveBtZptsFvNDvi+xSz20I0i+OvzwAjDg3C4FzbOoVaCyBLYacGE
7f7kPpqMAhgHUdS9CTyQaYbQuvQgxAUqzGIMlMqVB32RnREsUpNeCZWKuUQPhN5k8cvuSZZtvmFn
J2g4TcdcSz8RXMeprh3HssH4MlNjmuL6FHNK4P7GezKP32E7fByPvk6RP2yebGDbmwyea9Rtuge0
415VTo0eiQe302NvDX8DUEsDBAoAAgAAADONvUgPL1JkPAAAADwAAABZABwAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9nZXRyZXNwb25zZWhlYWRlci1zZXJ2
ZXItZGF0ZS1leHBlY3RlZC50eHRVVAkAA0GMS1dBjEtXdXgLAAEE9QEAAARQAAAAClBBU1MgWE1M
SHR0cFJlcXVlc3Q6IGdldFJlc3BvbnNlSGVhZGVyKCkgc2VydmVyIGFuZCBkYXRlIAoKUEsDBBQA
AgAIADONvUiz/j4SOQgAAPgcAABdABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9Y
TUxIdHRwUmVxdWVzdC9nZXRyZXNwb25zZWhlYWRlci1zZXJ2ZXItZGF0ZS1wcmV0dHktZGlmZi5o
dG1sVVQJAANBjEtXQYxLV3V4CwABBPUBAAAEUAAAAM1ZbW/bthb+nl9BJNiyDdGLYzv1S5uhTZzb
i9uuQ11026eBkiibjSR6JB3b7fbf7+GbLMmS0wEduhWrJfKQfM7bcw7Vp0uZZ9cnT5cEJ/CTE4lR
vMRcEPnsfC1Tb3QOw0LuMnJ9MslocX+BJg9UUEkS9OkEwX+SbKWXkJhxLCkrJqhgBZnqqYjxhHAv
YlKyfIJ6qy1K4Jkk05O/Tsx2dpOYZYxP0FnYH+s5/45m5JamqZ2PcHy/4GxdJJ4TTUfqT/Ugc4Jg
GU3QWZIkZi5lhfRSnNNsN0E5K5hY4dgCzDFfUIDcIzkKzdCKgXJaD04y0OiBaEDLXgNpv99v2V/g
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
vmn/VgUO6LXSRyky1tNV2f2Pblmg/Ot/8Pw/UEsDBBQAAgAIADONvUjiFaIFsgAAAGgBAABeABwA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9nZXRyZXNwb25z
ZWhlYWRlci1zcGVjaWFsLWNoYXJhY3RlcnMtYWN0dWFsLnR4dFVUCQADQYxLV0GMS1d1eAsAAQT1
AQAABFAAAACNzE0LgkAQBuB7v2LYLgUeNtI0j1LQoShEgmAv4g4lmQvrhpr433PNPhCELjPzwjNv
EpYoIVQwoQadQhY/EBxKiwWlIwAfU47yGGM+QJI/3r1ERFeoNsFuWw/SDxa8hMrbr04v6xhOZ23H
LCx72dpe9cFf95u1nlkdfvMACwXVWDWr7+fU+vUAGoG8p1+Xx1xdNHSBVIyglEIy4kJz3zDLwjPq
xAgjRjMjwdtsUrOuyegJUEsDBBQAAgAIADONvUhsJp4fXgEAAAoDAABcABwAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9nZXRyZXNwb25zZWhlYWRlci1zcGVj
aWFsLWNoYXJhY3RlcnMtZGlmZi50eHRVVAkAA0GMS1dBjEtXdXgLAAEE9QEAAARQAAAAzZJNa8JA
EIbv+RVDerEk242oberJigWhSiVKP8DLmowaumbT3QnGiv+961eLgtBjLzs7y/M+zMAyxoC/KFks
0PCOIMEfX4f8FSdPKR1Ku0hlwiOUKAxyKVaqIEZoiGk0hSTD00WuNGHCl7WYL3HCciloqvRihxn+
1u91ifIIPwvb8xmSTeYqMzhHkaBmJsc4FZLFc6FFTKgNw9K+WecNleR4nvc/p7SlEHI3Y6sFrOrX
wKv6IbRaDnPY4GE4hFNtE6w3Oni7O2/lGqZFlq3g1ws27dkdUIMgqAR+cA0m/UIIg6C8DQLHA4gw
s+GXFJeXmD8J2lLFH7Dujvq9zWX2h1bJCtbt5877Hg798ADfhfWycXe/h8/kg+jx3L3Fq40jfeRH
WBKsr8iW80AtaJwEALYU6CL7BZdpQvMt2QR3PXZRa6XHbhPs3X4cI2a47cbu2PXtGatk19eD+mbj
Ot9QSwMECgACAAAAM429SJxcrFU9AAAAPQAAAGAAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2dldHJlc3BvbnNlaGVhZGVyLXNwZWNpYWwtY2hhcmFjdGVy
cy1leHBlY3RlZC50eHRVVAkAA0GMS1dBjEtXdXgLAAEE9QEAAARQAAAAClBBU1MgWE1MSHR0cFJl
cXVlc3Q6IGdldFJlc3BvbnNlSGVhZGVyKCkgZnVubnkgY2hhcmFjdGVycyAKClBLAwQUAAIACAAz
jb1IqM0jVEsIAAAJHgAAZAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0
cFJlcXVlc3QvZ2V0cmVzcG9uc2VoZWFkZXItc3BlY2lhbC1jaGFyYWN0ZXJzLXByZXR0eS1kaWZm
Lmh0bWxVVAkAA0GMS1dBjEtXdXgLAAEE9QEAAARQAAAA1Vn7b9w2Ev7dfwURo3VbWI/17jr7SHxo
/ECAJneBHbQ94IADJVG7jCVRJSl7nVz+9xu+tJJW2s0BKdJr0EhLDslvZr55UHmxlnl2cfRiTXAC
j5xIjOI15oLIlyeVTL3ZCQwL+ZSRi6NFRov7U7R4oIJKkqBPRwj+k2QjvYTEjGNJWbFABSvIUk9F
jCeEexGTkuULNCo3KIF3kiyPPh+Z7ewmMcsYX6DjcDzXc/4NzcgVTVM7H+H4fsVZVSSeE01n6k/z
IHOCYBlN0HGSJGYuZYX0UpzT7GmBclYwUeLYAswxX1GAPCI5Cs1QyUA5rQcnGWj0QDSg9aiDdDwe
9+wvcCE8QThNG5OCfiT6jOahXkZSuUChP3XjCRVlhmETWoBlLMJHmsg1LA7D7yw+nCS0WNUrDTbr
GvXW9o6FS4s1gJK1+Jo9EN7RaDqdLoeMTYgxg6988gbOEnZxmjEManC6Wsu255TUJaiPQRd3FAPT
Uwkqhh2VJY4y4sUky1paenrflpUe16Cdp32oqPbIcblFdkdi5btB0ujFbcp06WI56+wOhArLjTnh
elOCe2F/UI2cIl89uhoOwhM0IdGT+htpqK8yFt+/w1z6oOoipVxIL17TLBk0rDruDtaf7tuMkxxc
e3rgPHuGM78hnBcpkRbtpo51wBZJY5x5OKMriA3JetTiRDH9NS6SjDhz2H2UCdXvNTEO3fI5rrhQ
rlGwuxGII/BO5TwGZ9bEMcGj4e1D0eL5Lh1WnDwtO8T0p4f8ZUyMfMkOmtlPOcs7xrb5UZ2hrP73
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
x1xdNHSBVIyglEIy4kJz3zDLwjPqxAgjRjMjwdtsUrOuyegJUEsDBBQAAgAIADONvUiy5vqwYgEA
ABQDAABdABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9n
ZXRyZXNwb25zZWhlYWRlci11bnNlbnQtb3BlbmVkLXN0YXRlLWRpZmYudHh0VVQJAANBjEtXQYxL
V3V4CwABBPUBAAAEUAAAAM2SwUrDQBCG73mKIV5aknVT2trYUy0VCiqWtFiFXrbJ2AbTbNydkGjo
u7tJq2JB8OhlZwa+/2MGljEG/EEm+Q41nwgS/Ho550tc38R0LOM8TiIeYIJCI0/Em8yJEWpiCnWe
kObxLpOKMOJFN+QFrlmWCHqWatdgmj/e3U6JsgBfczPzDZJJZjLVuEURoWK5aVNiMsMUI6ZJEDIs
MwyN9JxKshzH+adripBykTRLjkbAOm4XnI7rw2hkMYvNruZz+OkdghEHR/G0EbfaEKdwsLtw0EOj
12AsjjkGFQiClud6bdDxO4LveeWF51kOQICpkTzEWPzG/EkwTmT4AtV0cXe7/539omX0BtX4fvJ0
gH3XP8IDv1f2B5cH+EQ+C65P3TXe6X/Sn/wCS4LqjEw5DXS9/o8AQE2BytNvsIgj2tbkEOxqZaNS
Uq3sIZje/CAtNlhPK3tlu+YNZdTMPa+339vWB1BLAwQKAAIAAAAzjb1IM8f7S0UAAABFAAAAYQAc
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3QvZ2V0cmVzcG9u
c2VoZWFkZXItdW5zZW50LW9wZW5lZC1zdGF0ZS1leHBlY3RlZC50eHRVVAkAA0GMS1dBjEtXdXgL
AAEE9QEAAARQAAAAClBBU1MgWE1MSHR0cFJlcXVlc3Q6IGdldFJlc3BvbnNlSGVhZGVyKCkgaW4g
dW5zZW50LCBvcGVuZWQgc3RhdGVzIAoKUEsDBBQAAgAIADONvUgBcQRESwgAABIeAABlABwAaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9nZXRyZXNwb25zZWhl
YWRlci11bnNlbnQtb3BlbmVkLXN0YXRlLXByZXR0eS1kaWZmLmh0bWxVVAkAA0GMS1dBjEtXdXgL
AAEE9QEAAARQAAAA1Vlrb9u2Gv6eX0Ek2LIN0cWxnfrS5mDNBQXWbkVSbDvAAQ4oibLZSKJHUrHT
rv99L2+yJEt2D9ChOytWS+RL8nnvD9XnS5lnl0fPlwQn8JMTiVG8xFwQ+eK0lKk3OYVhIZ8ycnk0
y2jxcIZmj1RQSRL08QjBf5JspJeQmHEsKStmqGAFmeupiPGEcC9iUrJ8hgarDUrgmSTzo09HZju7
ScwyxmfoJBxO9Zx/SzNyTdPUzkc4flhwVhaJ50TTifpTP8icIFhGE3SSJImZS1khvRTnNHuaoZwV
TKxwbAHmmC8oQB6QHIVmaMVAOa0HJxlo9Eg0oOWghXQ4HHbsL3AhPEE4TWuTgn4g+oz6oV5GUjlD
oT924wkVqwzDJrQAy1iEa5rIJSwOw28sPpwktFhUKw026xr11PSOhUuLJYCSlfiSPRLe0mg8Hs/7
jE2IMYOvfPIazhJ2cZoxDGpwuljKpueU1BWoj0EXdxQD01MJKoYtlSWOMuLFJMsaWnp634aV1kvQ
ztM+VKG25ni1RXZPYuW73qDRi5sh0w4XG7PO7hBQ4WpjTrjZrMC9sD+oRs6Qr37aGvbCEzQh0ZP6
G2moLzMWP7zFXPqg6iylXEgvXtIs6TWsOu4e1p/t24yTHFx7duA8e4Yzvwk4L1IijbAbu6iDaJE0
xpmHM7qA3JCsQy1OVKS/wkWSEWcOu48yoXpfEuPQbTzHJRfKNQp2OwNxBN4pncfgzCpwTPJoePtQ
NOJ8NxwWnDzNW4Hpjw/5y5gY+ZIdNLOfcpa3jG3rozpDWf3nMo8Ih2gi9egyow74bhm1UTudNgqg
S5euMugyeTQadZabuverGqM2GpsUMGlQFXwbBzY8u0LEwG2E09AWrJriWsXOgmOaRK9Z9hSpFVfZ
qWBaA7pqYqPGKdLIVVjkmWzVU2BP/Qp6cIIfPDVgANEcL0jDMzN0Xhk8yrCyohKMoTQABoBin1Bb
761XJqNpb+1NSbotACqsYMeqPdayuWNpkibNpeBs0S8+JdP5vp5e7WSrTB2HzYr+dp0kOxughGT9
K8j0IJrgB3RfrlaMS+i03EYyGDXPSSEF+iGA83Apl8zY23RjRWYg6iXEaew8pRdomZ7+X8koMBhC
Qgu7cnbhAluVG5xlVw5Bp/S56WU53nit9p4DL7BD52HVd9pHg933nlNldpXSjWO6cPpsRUzb9NYk
eqDSk1ylnbGEAY78czGvqTGySp8IiWUpXpYR9PCqH/oqezrhqCWSsSzCvDnvjk4zojN0O5GzD9Vo
VZyGJo8tj1KPji2o535K2Fc59lK5bVikdEPMPrYeh02VfKw5iEmz3S6+plALeCvUqj0/eLRIyAaK
1B7Vto2wBqFLL1uMGu1tYqtYoWDahO1sTXBexDYHgV5sgQ5MELsmZN40WPtcdTD7WgGumFnjaJpy
nBuErTxp0ohajlz1VNpd2zwB12Rr2+tJBsQROPNnNKaL6e02vGxP7pnUhmjOVTQy2aXHTXJs9zDm
243hXkqQuDprjvnRFQV31Qnrs+9cj2zdSS6euYK2C3NPktRuOyLHhsvXa27BOAzPe6qM1V9RMNF1
uNHD5XXYJZLhiGQznEKGne0sN+N6E92QC1D1GP2JjudHVSOute/26gwDQ2epJ59WpHOr415EVrB1
xV2STBfIioxiRUZ7etRJToRwxKPXzl1uqWXHvS7Un9MKocUAIXqkrBRX1QiQ2Q+kuKo1y64+7yhH
u8XUm4uq5RC1OhJcbbfvNhJtERm6HvhZaGxoAMchUuVEo11Y2tdD+up9Niohq4p63XH9PaGPs5TF
1oaslKpe1NMvykrdSewUxEsKWKCDDZwi9WapdwEO825JzEmB7bQLwK90kAxJmIuMtA01gR4pVjVZ
vrExAWAjztbgcGACSwxrLSmi0lckqNJjNLYsvqIi9t1VB0Vk1f9hs4m6Tzptjp/TBG5ZRjHlIOEu
3x0dBXgYE/gRbA8WIK2+Ur/p7bQ6b+APDWXafvxw3b/DByfX19e1lD6Z3F7fjm876xOQy+4ovrm5
6UI9I/kKKlTD+ZamtSR9eASkjcy/mU7Cia1bcUYw/6+mB+4qoEb0tWmpRJ4H9qvbcxFzugKf8vjF
8VLKlZgFAX6PN/6CsQUsWlGhQlePBRmNRPD+j5Lwp2Dgj/xz++IDtfTfi+NL2Ffvd4maO8csIZ7y
IVmD3L/A08qZL0aT2hIAZT8URix5gh/IB8CNhXhx6m4C6nvhcnAZ/Ar+hJoVXGOJg5vf7oPfSPQT
lfbnZUmzJLiDvosFCSBSwJyeJFBh4fpeZlIENFcRTJJgPYwDKBsexJMEkp9rMRH8/ub1KzDGHQH1
hAwgY2DlCngXURChN5bwCO5WxJYkxikecJ4SZ77cSNBk0FSg9v3odHdG3+v7xtV9H5krTUtEXXZQ
8zvRVg6KUOEE9YeCLfs4vRyA1WH+siEF9aAu820RidW8UxAa++mlnQG3AaQvBez8CwB7++P9PWp6
cKaK3p114Svtwu++h1KOjB/PkHEk0o4U6G9Rbfg32Fz/9EcNFLTDIWOF9mLfg4t9RmBp7JCH6jSJ
vgvPwu+RqpRoEoabizD83+z9RQGf9wNG6I7ANYT/ClXrH4d7+P9m6NFhQ+vARR9fvXvz+tM/Dv94
H/5KA+hc6OPLX67/bRSYnE2sAs8mo8342fQrKnCxX4GWE97e3bR9oFQYjL+iBs8OaeB0MDfPEzXV
VmIYjr+uEpPDSpiPkoiXxRa85tgK/Qx9+0fJ5Pzjf8wv4Zxx+zxDbtRe6Kpx+2B/zty74mWVzCgc
ffpkXg72mRrDVF1JT9dltz+azAEh0v8U/BdQSwMEFAACAAgANI29SE2enExYAAAAsgAAAEcAHABp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4tdXJsLWJh
c2UtYWN0dWFsLnR4dFVUCQADQ4xLV0OMS1d1eAsAAQT1AQAABFAAAADLSaxMLVJILFHQMNAx0FQo
zqxKVbAwMKgwMzDgUlAISs1LSS0Ky0wtx6EkhwjtTjn5ydkK1R4hvj61OJXCFeenVCpUO/m7RELU
WuhYQNWaW5hUmFqYcAEAUEsDBBQAAgAIADSNvUjY2N6/BgEAAB0CAABFABwAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9vcGVuLXVybC1iYXNlLWRpZmYudHh0
VVQJAANDjEtXQ4xLV3V4CwABBPUBAAAEUAAAAMWOQUvDQBCF7/kVc2xJxk1pq0FEYqhQMEVJtNXj
JhkluMnG7KxNLf5301oEDwVvnoYH3/vmISKIpVa2IiNmkqW4XqViRdlNyYcT2VIVIiFF0pBQcqMt
I5NhbMlYxUaUVaNbpkKsx7lYU4aNkvys22qPGfG4iOfMTUJvts9CN1SjbRVmvRCpayjvyyfcseO6
7j/PkTlbqfZjwhBw5I3BHXlTCEMHHby7SlP43T+HnWAwhP69Vu9l/QIPSWwA4WInvIS+5/YzqQXJ
MPA9fwim/CAIfL879X3HBUioLqhdlrQ+xvxJECmdv8J2fr+IP4+zP7QuNrCNbmdP33DgBQf4LJh0
02DifAFQSwMECgACAAAANI29SHI45Ko3AAAANwAAAEkAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4tdXJsLWJhc2UtZXhwZWN0ZWQudHh0VVQJAAND
jEtXQ4xLV3V4CwABBPUBAAAEUAAAAApQQVNTIFhNTEh0dHBSZXF1ZXN0OiBvcGVuKCkgcmVzb2x2
aW5nIFVSTHMgLSA8YmFzZT4gCgpQSwMEFAACAAgANI29SE2enExYAAAAsgAAAFAAHABpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4tdXJsLWJhc2UtaW5z
ZXJ0ZWQtYWN0dWFsLnR4dFVUCQADQ4xLV0OMS1d1eAsAAQT1AQAABFAAAADLSaxMLVJILFHQMNAx
0FQozqxKVbAwMKgwMzDgUlAISs1LSS0Ky0wtx6EkhwjtTjn5ydkK1R4hvj61OJXCFeenVCpUO/m7
RELUWuhYQNWaW5hUmFqYcAEAUEsDBBQAAgAIADONvUhNnpxMWAAAALIAAABbABwAaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9vcGVuLXVybC1iYXNlLWluc2Vy
dGVkLWFmdGVyLW9wZW4tYWN0dWFsLnR4dFVUCQADQoxLV0KMS1d1eAsAAQT1AQAABFAAAADLSaxM
LVJILFHQMNAx0FQozqxKVbAwMKgwMzDgUlAISs1LSS0Ky0wtx6EkhwjtTjn5ydkK1R4hvj61OJXC
FeenVCpUO/m7RELUWuhYQNWaW5hUmFqYcAEAUEsDBBQAAgAIADONvUjdy10hGAEAAFkCAABZABwA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9vcGVuLXVybC1i
YXNlLWluc2VydGVkLWFmdGVyLW9wZW4tZGlmZi50eHRVVAkAA0KMS1dDjEtXdXgLAAEE9QEAAARQ
AAAAzY/BTsJAEIbvfYo5QtpxSwBtjDGVYEIiRFMU9Li0g9m4dGt3VoqEd7cUNPFA4tHTZGa/+eZf
RAQxM9qtyIqhZClu51Mxp8Wd4mMZOKUzkZAmaUlouTGOkckylmSdZivUqjAlUybW3VSsaYGFlrw0
5arBrHiejEfMRULvru6FKShHV2pc1EJUuaX9MsolU4nNI1UFpfXsjCv2fN//hxFlyk7qJmAcA3aC
LvidoA9x7KGHDzfTKfx2XsJ+r9WGOpLRHyp/hadkbAHhoIer/a1raG58s7XLr79TDyRDKwzCNlj1
SRCFYXUehp4PkFCeUTlTtD7F/Ekw0CZ9g+3ocTLenWZ/aJNtYDu4H74c4CiIjvBF1Kv6Uc/7AlBL
AwQUAAIACAAzjb1I78eCPkcAAABLAAAAXQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi11cmwtYmFzZS1pbnNlcnRlZC1hZnRlci1vcGVuLWV4cGVj
dGVkLnR4dFVUCQADQoxLV0KMS1d1eAsAAQT1AQAABFAAAADjCnAMDlaI8PXxKCkpCEotLE0tLrFS
yC9IzdPQVChKLc7PKcvMS1cIDfIpVtBVyMwrTi0qUbBJSixOtVNITCtJLYKp5eICAFBLAwQUAAIA
CAA0jb1IylO6IPQHAABzGwAAYQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1M
SHR0cFJlcXVlc3Qvb3Blbi11cmwtYmFzZS1pbnNlcnRlZC1hZnRlci1vcGVuLXByZXR0eS1kaWZm
Lmh0bWxVVAkAA0OMS1dDjEtXdXgLAAEE9QEAAARQAAAA1Vlrb9w2Fv3uX0HY2LgtrMd4Ztx5JF40
fiDAJm0RZ9vupwUlUTOMKXGWpOxxsv3ve/nSSBppnAIp0G3QjERekuc+z6Xycq0Kdnn0ck1wBj8F
URilaywkUa9OK5UHs1MYluqJkcujBaPl/RlaPFBJFcnQ5yME/ymyVUFGUi6worxcoJKXZGmmEi4y
IoKEK8WLBRpttiiDZ5Itj34/stu5TVLOuFigk3g8N3PhLWXkmua5m09wer8SvCqzwIvmM/2neZA9
QXJGM3SSZZmdy3mpghwXlD0tUMFLLjc4dQALLFYUII9IgWI7tOGgnNFDEAYaPRADaD3qIB2Pxz37
S1zKQBJB88akpJ+IOaN5aMBIrhYoDqd+PKNywzBsQkuwjEP4SDO1hsVx/DeHD2cZLVf1SovNuUY/
tb3j4NJyDaBULb7mD0R0NJpOp8shYxNizRBqn7yFs6RbnDOOQQ1BV2vV9pyWugL1Mejij+JgeqpA
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
QURiqFCwRUm11eMmGWVxm43ZWZta+t9NPxA8FDx6mhl43mdeRAQxN9otyYqRZCluFzOxoOxO8XEk
TulCpKRJWhJaro1jZLKMNVmn2Qq1rEzNVIhVPxcryrDSkl9NvdxjVjxPJ2PmKqUP197CVFSiqzVm
rRBVaWkXRmoqytvljBv2fN//L71kzk7qfas4BuwFffB7wRDi2EMPH25mM/gtuoSdqdOFtofRn6p8
g6d0YgHh4ISr3YNraON+W5tqkAydMAi7YNUXQRSGzXkYej5ASmVB9VzR6hTzJ0GiTf4Om/HjdLI9
zf7QpljDJrkfvRzgKIiO8EU0aIbRwPsGUEsDBAoAAgAAADSNvUg5cZ9EPgAAAD4AAABSABwAaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9vcGVuLXVybC1iYXNl
LWluc2VydGVkLWV4cGVjdGVkLnR4dFVUCQADQ4xLV0OMS1d1eAsAAQT1AQAABFAAAAAKUEFTUyBY
TUxIdHRwUmVxdWVzdDogb3BlbigpIHJlc29sdmluZyBVUkxzIC0gaW5zZXJ0IDxiYXNlPiAKClBL
AwQUAAIACAA0jb1IK+99KOsHAABbGwAAVgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi11cmwtYmFzZS1pbnNlcnRlZC1wcmV0dHktZGlmZi5odG1s
VVQJAANDjEtXQ4xLV3V4CwABBPUBAAAEUAAAANVZa2/cNhb97l9B2Ni4LazHeGbceSReNH4gwCZt
EWfb7qcFJVEzjClxlqTscbL973v50kgaaZwCKdBt0IxEXpLnPs+l8nKtCnZ59HJNcAY/BVEYpWss
JFGvTiuVB7NTGJbqiZHLowWj5f0ZWjxQSRXJ0OcjBP8pslVBRlIusKK8XKCSl2RpphIuMiKChCvF
iwUabbYog2eSLY9+P7LbuU1SzrhYoJN4PDdz4S1l5JrmuZtPcHq/Erwqs8CL5jP9p3mQPUFyRjN0
kmWZnct5qYIcF5Q9LVDBSy43OHUACyxWFCCPSIFiO7ThoJzRQxAGGj0QA2g96iAdj8c9+0tcykAS
QfPGpKSfiDmjeWjASK4WKA6nfjyjcsMwbEJLsIxD+EgztYbFcfw3hw9nGS1X9UqLzblGP7W94+DS
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
aCcHxab0guaDwK7LOL0cgXVh/rIlBXnflHlRJnKz7BUEAj+9dDPgHoD0tYCdfwVgP/9wd4fantI8
T8pvvgUYkK4mR/75/q1EAXrB1FJ778VKLdGfotL4T7C1+RmOFihYz4eKEzqI/QAu/gUBZbBDnunT
FPomPou/RboSolkcby/i+I/Z+6sCPh8GjNB7AtcM8QtUpb8c7vH/m6EnzxvaBC76/ObDu7e//+Xw
Tw/hrzUAZkKfX/90/S+rwOxs5hT4fjbZTmeTZxO4Qc063c10U3b3Y1gQGMb8G9r/AFBLAwQUAAIA
CAA0jb1ITZ6cTFgAAACyAAAASAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1M
SHR0cFJlcXVlc3Qvb3Blbi11cmwtYm9ndXMtYWN0dWFsLnR4dFVUCQADQ4xLV0OMS1d1eAsAAQT1
AQAABFAAAADLSaxMLVJILFHQMNAx0FQozqxKVbAwMKgwMzDgUlAISs1LSS0Ky0wtx6EkhwjtTjn5
ydkK1R4hvj61OJXCFeenVCpUO/m7RELUWuhYQNWaW5hUmFqYcAEAUEsDBBQAAgAIADSNvUgJ3Ik8
PQEAAPMCAABGABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVz
dC9vcGVuLXVybC1ib2d1cy1kaWZmLnR4dFVUCQADQ4xLV0OMS1d1eAsAAQT1AQAABFAAAADFkMFO
wkAQQO/9iklPNO2yJYI2nCoBxVhiggh6Mks7SOPSrd3ZtEj4d2slJB5I9GA8zU7y5uVlGWPA50qa
DWo+FCT4aHHPF7i8TekwBiaVCZ+iRKGRS7FVhhihJlagNpI0Tze5KggTXp7FvMQly6WglSo2Dab5
4yQaE+VTfDP1zlWOGTOFZEv1YjTDKse4vm5TRZbruv/dI2IyQjY1YQis43XB7Xg9CEOLWezq8iaC
74I+fBpaDjBoDPAwjTS01jXRd0BojQU907pQpe7DymQxpSoD+/iqL3cQyxQzajcm+3o0sz2okxzY
25CkCWSKoFH8uoBzAYL/QYfl1n+PBQiClu/5Duj0HSHw/erc9y0XYIpZgsU8xfIU8yPBQKr4FXbj
2STan2aPtEq2sBvcDZ++4MALDvBF0K16Qdf6AFBLAwQUAAIACAA0jb1Ijhx514EAAAAKAQAASgAc
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
TUxIdHRwUmVxdWVzdC9vcGVuLXVybC1lbmNvZGluZy1kaWZmLnR4dFVUCQADQ4xLV0OMS1d1eAsA
AQT1AQAABFAAAADNkFFLwzAQgN/7K45BQeli6rpu1adZu6I4EaZu+iRZe85i1tTkwqbD/26YU3yZ
+Cgc5C58990ljDHgEyXtAg3PBAk+nF7zKc4uKtoeqa1kyccoURjkUrwqS4zQENNorCTDq0WjNGHJ
l1HBlzhjjRT0qPRigxl+dzk6I2rG+GJdzVWDNbNaMqwLVVb1nOGqwcIJDmhFXhAE/2AlUZAVcrPQ
YADssN2F4LAdw2DgMY/lJ+cjaFAXWBNsehCKJ6FdF2oDwhjU9ODkQppj+HoetPzTyD/KWzCzBHNF
7iLLW1udVDWCsVqruSCXPSkrS9BIVtdwG+R5nv0iHuZ+6iL76e70/E4Ux1Hc96PUjfEC91WoQRDs
he1wH0z1hpCE4aoXhl4AMMa6RD2pcLmL+ZMglap4hvXZzeXofTf7TavyFdbpVXb/CSftZAv3k+4q
TrreB1BLAwQUAAIACAA0jb1IwRPBIoUAAAC2AAAATQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi11cmwtZW5jb2RpbmctZXhwZWN0ZWQudHh0VVQJ
AANDjEtXQ4xLV3V4CwABBPUBAAAEUAAAAH3MsQoCMRAE0D5fsQRS2V2Iop1nXBBsrSUmy11xJHeb
Dfj5BisrYYphBp7C8+0OK3GkLEA5lkQQ58AhCnGFUCuxPGlrYaknoPdK/UigzcWaI2p4NYGpSB88
avXVlpIJamMuU5De5tKWBEzSOMNjh4j+j3tFM/b4X3rYm8E6Z93B2FEr9QFQSwMEFAACAAgAMIu9
SAf2MHYoAQAAfAMAAFEAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBS
ZXF1ZXN0L29wZW4tdXJsLW11bHRpLXdpbmRvdy0yLWFjdHVhbC50eHRVVAkAA3uIS1d7iEtXdXgL
AAEE9QEAAARQAAAAlZJba4MwGIbv+ys+0hsFLz5Pq/NupSsTVjakFMbchathk6kZ0VKd+N9n2mmH
h67LRWLged7gm0R+QTn4GUiooAxp+EXBQsyvECcALk0Cyjch3Y8g0YiuzoxWn0ds+wHl3Xp1X42i
LcyCAsr5w+LpyFqK9cPOLCNXTevAdqIXzqabLGgcYCU/YUkRs10qDxin/MZyltyPKZTO0r1Z3XZP
0VE4Bjy/Ml7DNkjaZw5hktIMpngY8kubCDBUly46MPEXdab3Pvy/yDN3MST9fSuaaE277lid4x7d
XnPC07GnNeKa5hmU06xeeqZpDZsAAge+S07GPgyyd6HYQEqPUM4Z94gN9XdM09R/o2LnEY8o9bxl
gdiTS8JVs0k3sA430KgqMrn4L7B+nd9QSwMEFAACAAgAMIu9SM2G4n44AgAAsQUAAE8AHABpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4tdXJsLW11bHRp
LXdpbmRvdy0yLWRpZmYudHh0VVQJAAN7iEtXe4hLV3V4CwABBPUBAAAEUAAAAM2UXW/aMBSG7/kV
R+nFQGBiIKwZvaEIWNGoNmVdu2lMk5ucFmuOTW2H0KH+9znQlo5Ct93NN7bl933Oh50QQsA/VyJL
0fh9Zpk/uPjoX+DlO27vp17GReJHKJAZ9AW7VZklFo0lGk0mrPF5OlPaYuLnrdjP8ZLMBLNXSqcr
mfE/n45PrJ1FeJO5va9mKEmmBUmdm5Ocy0TlpElwMcPYYep2YUvVavW/SYzFNmNilVa3C6RRC6Da
qDVC6HZLpESGx6Mx/I7qQMEqV8BlosScy2v4FI0NlNfkixX5CJpHgHMuKsCMQW2/26lWuXk051OU
xZGKOXNVQKJi1w5pXxkYDaPj0wFw4yKkau4OrzIZW64keI8rh1hCicCTEQvuAPVVAO/t4MyrOb0S
CeqivHq97kHCE5DKwioZV1/VdRY1MAtlWqMVMPwnQkjp4jWlpSpAhNLZzznm+zT7AI3DYAPoCRX/
gOXJ2en4br/2Ua2SW1j23ve/rMVhLbwXH4bBotEO1+IteH90vs0u5HSXuMykkrepykxlh+VJhAfb
aKhZirBcX812nBYtTAF8vVTaiTtQbs4WwKVBCwd0NSrfNkiAXU1rFY1o06eyF/q/Q/2P0BfuZKfr
z7fTLHrXfLNt2wr4IXrWv8LYos99D84zXFhYHlg3PbO2wz1WgEIPOpMbS84TOy08HfCWEw+1Vnri
dcCt3a/IsGssdhNv4j6diRerpNh7f0VvtB/wAXX0gAZ3d972M3qhEOpe6i9QSwMEFAACAAgAMIu9
SL7tujKoAAAA3gAAAFMAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBS
ZXF1ZXN0L29wZW4tdXJsLW11bHRpLXdpbmRvdy0yLWV4cGVjdGVkLnR4dFVUCQADe4hLV3uIS1d1
eAsAAQT1AQAABFAAAABNTrsKwkAQ7PMVQxoV9ApLrSx8QdIERTuR3GoWLrea2ySCP+9pEZxqYJ7J
ZrXPcM6zneqjoGdLQReQB/nxBA0FcR37O45FFjCuW6c8O7G30i8xX4I6dhNcQ6BGL1o10och3Ffk
v5KUfFWysFK2NXkdBew3xSpfg0NcqKWL4q31pbJ4pAOLFW8k+EPpOObNrz/drg/pNNrFWWqMvtQY
k8KyhRfF70uSfABQSwMEFAACAAgAMIu9SMdT4MZRCQAASycAAFcAHABpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4tdXJsLW11bHRpLXdpbmRvdy0yLXBy
ZXR0eS1kaWZmLmh0bWxVVAkAA3uIS1d7iEtXdXgLAAEE9QEAAARQAAAA1Vr5c9TIFf7df0UXrsVm
yzrmMnOAU+BjoWKyW4ZAUtnUVktqeRok9ay65RlD+N/z+tJIGmlsV6CGmMKS+nzfO773uuHZXKTJ
yd6zOcERPFIiMArnOOdEPD8oROyMD6CZi9uEnOxNE5p9OkLTG8qpIBH6sofgR5CVcCISshwLyrIp
ylhGZqorYHlEcidgQrB0inqLFYrgnUSzva97ejmzSMgSlk/Rvj+YqD73gibkjMax6Q9w+Ok6Z0UW
OXZoPJZ/qhvpHThLaIT2oyjSfTHLhBPjlCa3U5SyjPEFDo2AKc6vKYjcIynyddOCATiFIycJILoh
SqB5ryHpYDBoWZ/jjDuc5DSudHL6mag9qps6CYnFFPnuyLZHlC8SDIvQDDRjJFzSSMxhsu//ZOTD
UUSz63Kmls2YRr7VrWPEpdkchBLl8Dm7IXkD0Wg0mnUpmxCtBlfa5BL24mZynDAMMHJ6PRd1y8lR
pwAfAxa7FQPVUwEQ/QZkgYOEOCFJkhpKR61b09JyDugcZUPpasscL9aSvSWhtF2n06jJdZdpuovx
Wat3cCh/sdI7nK8WYF5YH6CRI+TKRxNhp3icRiS4lb+REvVlwsJPv+FcuAB1GtOcCyec0yTqVKzc
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
YBLI1JyTvvyunyTPWW7ep8i2mjvXst28/G7PWuZFXp3YMfqxSyU9/Z+U1BtZLQ19q6ShP/z6dffA
7l1TbPFhf7O82zhgVq7m5HFUdVfHrh/qFuyZp/8P3X8BUEsDBBQAAgAIADCLvUjiFaIFsgAAAGgB
AABRABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9vcGVu
LXVybC1tdWx0aS13aW5kb3ctMy1hY3R1YWwudHh0VVQJAAN7iEtXe4hLV3V4CwABBPUBAAAEUAAA
AI3MTQuCQBAG4Hu/YtguBR420jSPUtChKESCYC/iDiWZC+uGmvjfc80+EIQuM/PCM28SlighVDCh
Bp1CFj8QHEqLBaUjAB9TjvIYYz5Akj/evUREV6g2wW5bD9IPFryEytuvTi/rGE5nbccsLHvZ2l71
wV/3m7WeWR1+8wALBdVYNavv59T69QAagbynX5fHXF00dIFUjKCUQjLiQnPfMMvCM+rECCNGMyPB
22xSs67J6AlQSwMEFAACAAgAMIu9SGFFrgO9AQAAjwMAAE8AHABpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4tdXJsLW11bHRpLXdpbmRvdy0zLWRpZmYu
dHh0VVQJAAN7iEtXe4hLV3V4CwABBPUBAAAEUAAAAM2SUW/aMBCA3/MrTtnDQInrIGBl9IWiUrUq
aFPWlU1CmtzkWqwZm9kXkg7x3+eEtmuRKu1xfrB9uu8+ny0zxoDfGFWs0PEzQYJP5l/4HG+vJD0u
40KqnKeoUDjkSjyYghihI2bRFYocl6u1sYQ5L7sZL/GWrZWgO2NXDeb4t9n0gmid4q/Cx9ysUbPC
Krby1ZKVUuemZF2G1RozrzmiioIoiv6bxkRGhVBNW6MRsE7ch6gTD2A0CljAzk8vp/DaNIRa1WqD
b8SojdT38DWdOmjtxfNGfALdE8CNVG0QzqGlH7S0pnRDcKhzX1wuUdcpk0nhLwG5yfxraHrv4PI8
PZ1NQDp/wspsfPKu0BlJoyF83nnFFgIGL0ampBccNQfoQqn2y/QuhFzmoA1B04m/XORfFS0IglYS
J21w8jfCIEmqD0kSRACpF6G9kVi+xfyTYKxM9hO2F9ez6e5t9pk2+QNsx5/Ovu/hQTx4hI8Hvap/
/HEPH8g/p5NDd413+k/0E3+NFcH2HfnlsKCb9F8VANQU2EL/BUuZ07ImhxBuFyFaa+wiHILf+6/s
xD3W0SJchLGfM5M3cS/p7XZh8AdQSwMEFAACAAgAMIu9SEQ0cAOnAAAA2gAAAFMAHABpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4tdXJsLW11bHRpLXdp
bmRvdy0zLWV4cGVjdGVkLnR4dFVUCQADe4hLV3uIS1d1eAsAAQT1AQAABFAAAABNjr1uwkAQhHs/
xchNcJE06aCiiBUk01iKQoeQb8ErnXeJd88uEO/OQRF5qpE+zU9Rb3cNDvvm2/3a0l8i8zX0SrKq
MJJpnFgu+Gkbw2pI0fn9lyXovMHnBjRxrHAyo9GP3o862xpGEnJ47kmeSDs+OQUE7dJA4m+GXd1u
919gywuDThmek3TOKij/Xa64ocBCXeSc/3j1S4qxWtB7icABoo7Xj6J4AFBLAwQUAAIACAAwi71I
aJ5FHLEIAADXHwAAVwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJl
cXVlc3Qvb3Blbi11cmwtbXVsdGktd2luZG93LTMtcHJldHR5LWRpZmYuaHRtbFVUCQADe4hLV3uI
S1d1eAsAAQT1AQAABFAAAADVWWtv2zgW/Z5fQSTYph1EshzbqR9tFm0e6GDS3UHSne4CCwwoiYrZ
UKJHpGKn2f73vXzJkizZWSBFZzvoWCIvyXOf51J9M5cpO917Myc4hp+USIyiOc4FkW8PC5l440MY
FvKBkdO9KaPZ3RGa3lNBJYnR4x6CP5KspBeTiOdYUp5NUcYzMtNTIc9jknshl5KnU9RfrFAMzySe
7X3bM9vZTSLOeD5FB8Fgouf8S8rIOU0SOx/i6O4250UWe040Gav/qgeZEwRnNEYHcRybuYRn0ktw
StnDFKU842KBIwswxfktBch9kqLADC04KKf1yAkDje6JBjTvN5AOBoOW/QXOhCdITpPKpKBfiT6j
eqjHSCKnKPBHbjymYsEwbEIzsIxFuKSxnMPiIPiLxYfjmGa35UqDzbpGPdW9Y+HSbA6gZCk+5/ck
b2g0Go1mXcYmxJjBVz65grOEXZwwjkGNnN7OZd1zSuoM1MegizuKg+mpBBWDhsoSh4x4EWGspqWn
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
uSYoVtLTVdn1j+7IocfV/57/X1BLAwQUAAIACAAwi71I4hWiBbIAAABoAQAAUQAcAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi11cmwtbXVsdGktd2lu
ZG93LTQtYWN0dWFsLnR4dFVUCQADe4hLV3uIS1d1eAsAAQT1AQAABFAAAACNzE0LgkAQBuB7v2LY
LgUeNtI0j1LQoShEgmAv4g4lmQvrhpr433PNPhCELjPzwjNvEpYoIVQwoQadQhY/EBxKiwWlIwAf
U47yGGM+QJI/3r1ERFeoNsFuWw/SDxa8hMrbr04v6xhOZ23HLCx72dpe9cFf95u1nlkdfvMACwXV
WDWr7+fU+vUAGoG8p1+Xx1xdNHSBVIyglEIy4kJz3zDLwjPqxAgjRjMjwdtsUrOuyegJUEsDBBQA
AgAIADCLvUjE4SMNjAEAADcDAABPABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9Y
TUxIdHRwUmVxdWVzdC9vcGVuLXVybC1tdWx0aS13aW5kb3ctNC1kaWZmLnR4dFVUCQADe4hLV3uI
S1d1eAsAAQT1AQAABFAAAADNklFr2zAQx9/9KQ7vJcHW5BBn9dKXLLSjYykdXtdsEBiqfU3FFMuT
TrW7kO8+2Wk2GijscS86Hfzux1+HGGPAb7RyG7T8TJDg58vPfIm3HyU9lbmTquQ5KhQWuRKP2hEj
tMQMWqfIcrmptSEseTMueIO3rFaC7rTZ9JjlXy8XF0R1jj+d77musWLOKLbx05I1sip1w1KGbY2F
17ymloIoiv6bYKIgJ1QfazYDNorHEI3iDGazgAXs/bsPC3humkKnGgzBB9HqQVZr+JIvLAz24mUv
PoX0FPBBqiEIa9HQdzIOp2DvtVMlrJFAVIDGaOMxrAgOC4IOhLUmuBPKog8R+dejAUEwSOJkCFb+
QsiSpH2TJEEEkGNVormR2LzE/JNgrnTxA7YX15eL3cvsH1qXj7CdX51928NZnD3BJ1naTk7e7uEj
+af8/Njd4aPJgT7w19gSbF+RL8cD42TybACgo8C46i/YyJLuO3IK4XYV9ntehVPwd//lrFhj163C
VRj7s9Bl36dJutuFwW9QSwMEFAACAAgAMIu9SKjcnrl1AAAAhAAAAFMAHABpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4tdXJsLW11bHRpLXdpbmRvdy00
LWV4cGVjdGVkLnR4dFVUCQADe4hLV3uIS1d1eAsAAQT1AQAABFAAAAAVyrEOwiAUBdCdr7hjO7g5
tZOL0QSXJkY3Q+SKJAgt71H9fPXMx+x3R4vryR5U54lLo+iAMjN3PSqlpDXmgPNkBd2rJY2bS8y+
vEdsR3CNqYcTYdWb1sYB8iwteQQqXAZrLfXXmBX8zLwrPf4RoSgeLgmN+QJQSwMEFAACAAgAMIu9
SC9dJNl1CAAAQx4AAFcAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBS
ZXF1ZXN0L29wZW4tdXJsLW11bHRpLXdpbmRvdy00LXByZXR0eS1kaWZmLmh0bWxVVAkAA3uIS1d7
iEtXdXgLAAEE9QEAAARQAAAA1Vn9b9u4Gf49fwXRYJf2EMlybKf+aDNc84EOS7dD0l03YMCBsiib
DSX6SCp22vV/38svWZIluwN66O2KqyXyJfm8n89L9dVSZezi6NWS4AR+MqIwmi+xkES9PilUGoxP
YFiqJ0YujqaM5g+naPpIJVUkQZ+PEPynyEYFCZlzgRXl+RTlPCczMxVzkRARxFwpnk1Rf7VBCTyT
ZHb05chu5zaZc8bFFB1Hg4mZC28oI1c0Td18jOcPC8GLPAm8aDrWf6oH2RMkZzRBx0mS2LmU5ypI
cUbZ0xRlPOdyhecOYIbFggLkPslQZIdWHJQzegjCQKNHYgAt+w2kg8GgZX+JcxlIImhamZT0EzFn
VA8NGEnVFEXhyI8nVK4Yhk1oDpZxCNc0UUtYHEV/cvhwktB8Ua602Jxr9FPdOw4uzZcASpXiS/5I
REOj0Wg06zI2IdYMofbJLZwl3eKUcQxqCLpYqrrntNQlqI9BF38UB9NTBSpGDZUVjhkJ5oSxmpaB
2bdmpfUStAuMD3WorQVebZHdk7n2XWfQmMX1kGmGi4tZb3cIqGi1sSdcb1bgXtgfVCOnKNQ/TQ07
4UmakPhJ/40M1DeMzx9+xkKFoOo0pUKqYL6kLOk0rD7uHtaf7ttMkAxce3rgPHeGN78NuCDWIrWw
G/mog2hRdI5ZgBldQG4o3qKWIDrS3+I8YcSbw+2jTajfl8Q6dBvP80JI7RoNu5mBOAbvFN5jcGYZ
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
8hhjPkCSP969RERXqDbBblsP0g8WvITK269OL+sYTmdtxywse9naXvXBX/ebtZ5ZHX7zAAsF1Vg1
q+/n1Pr1ABqBvKdfl8dcXTR0gVSMoJRCMuJCc98wy8Iz6sQII0YzI8HbbFKzrsnoCVBLAwQUAAIA
CAAwi71IRP7r4JcBAABGAwAATwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1M
SHR0cFJlcXVlc3Qvb3Blbi11cmwtbXVsdGktd2luZG93LTUtZGlmZi50eHRVVAkAA3uIS1d7iEtX
dXgLAAEE9QEAAARQAAAAzZJRa9swEMff8ykO7SXBluXQePWylyw0W8dSNrys2cAwXPvaiimWJ51n
dybffbLTdjRQ2OPQw93B7378OcQ5B3GpVb1DK84yysRq+1ls8eqDpPuyrKUqRIIKM4tCZXe6Jk5o
iRu0tSIr5K7ShrAQzUkuGrzilcroWpvdgFnx9WJ9TlQl+LN2s9AVlrw2iu/ctuSNLAvd8IhjW2Hu
NAG1NPI8778JluVUZ2qItVgAn/oz8KZ+DIvFiPfv7Zv3a3jqmkMvG0/ARdHqlyxv4EuytjA+qLeD
+jVEE8isRUPf6dboxs7hui5zkroE9tg5Swe5klhSMFjZu9WG+cCCIGAT2DMoZAGlJhgkLpHnjoEG
MoJx6IcTsPI3QhyG7cswHHkACZYFmkuJzXPMPwmWSuc/oDvfXKz3z7OPtC7uoFt+PPt2gGM/vodP
41kbnb46wEfyT8nq2N3j0+iBfuA32BJ0L8iV44WTMHqyANBTYOryL9jIgm57cg6sSxkao03K5uB6
9wNtdoP9lLLUHT5luS6GeRbO9ns2+gNQSwMEFAACAAgAMIu9SNhUzO+AAAAAkgAAAFMAHABpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4tdXJsLW11bHRp
LXdpbmRvdy01LWV4cGVjdGVkLnR4dFVUCQADe4hLV3uIS1d1eAsAAQT1AQAABFAAAAA9zL0KwjAU
BtA9T/GRqQHN5lInB/8gLkXRTaS5aqDe1OTGDuK7Kx3cznSUWi22Dqed24j0DT0LZakRe+LKIFGO
3SvwDYfGZVSP0kmYHgP7OMwxM7jkTEnOck9xyDWuhVsJkaH/+i1vtF0gFjuuer3c6wm0tVYbfDR8
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
LW11bHRpLXdpbmRvdy1kaWZmLnR4dFVUCQADe4hLV3yIS1d1eAsAAQT1AQAABFAAAADNktFKwzAU
hu/3FId6s9HGdLhpnTdzKAhOlG46hd1k7XEGs6Ymp7Y69u6m21QcCF5KICc/fOfjvwhjDPidVsUC
LT8TJPj5ZMQnOLuUtB2DQqqUx6hQWORKvOmCGKElZtAWiiyXi1wbwpSXBwkvccZyJehRm8Uas/z+
anhBlMf4UrjMdY4ZK4xiC7ctWSmzVJcMqxwTJ9mnihq+7/+TWiKhQqh1qX4fWDvogN8OIuj3G6w+
N6ejEfw09aBWNVvgimj1KrM53MZDC82NeLIWn0C7BU7gu+ZoQBA0wyBsgZXvCFEYVodh2PABYsxS
NHcSy9+YPwkGSifPsLwYXw1Xv7NftE7fYDm4PnvYwFEQbeGjqFN1j4438I78Jj7fddd4u/tJf/Jj
rAiWe+TG7sJB2P2xAFBTYIrsGyxlSk812QNvOfXQGG2mXg/c230XK+ZYp6k39QJ3Jzpd507YWa28
xgdQSwMECgACAAAAMIu9SPz+eTBBAAAAQQAAAFEAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4tdXJsLW11bHRpLXdpbmRvdy1leHBlY3RlZC50eHRV
VAkAA3uIS1d7iEtXdXgLAAEE9QEAAARQAAAACgpQQVNTIFhNTEh0dHBSZXF1ZXN0OiBvcGVuKCkg
cmVzb2x2aW5nIFVSTHMgKG11bHRpLVdpbmRvdzsgMSkgCgpQSwMEFAACAAgAMIu9SIzIiy9OCAAA
lh4AAFUAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29w
ZW4tdXJsLW11bHRpLXdpbmRvdy1wcmV0dHktZGlmZi5odG1sVVQJAAN8iEtXfIhLV3V4CwABBPUB
AAAEUAAAANVZ+2/bOBL+PX8F0eA27SJ6OLZTP9octnmgwLV7RdLb3gEHHCiJstlIopekYqe9/u87
fMmSLNk9oIv2tthaIofkNzPfPKi+WMo8uzh6sSQ4gZ+cSIziJeaCyJcnpUy9yQkMC/mYkYujWUaL
+1M0e6CCSpKgz0cI/pNkI72ExIxjSVkxQwUryFxPRYwnhHsRk5LlMzRYbVACzySZH305MtvZTWKW
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
vUgAAAAAAAAAAAAAAAAUABgAAAAAAAAAEADtQRTeAgBjb21wb3NpdGluZy9yZWdpb25zL1VUBQAD
IYhLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAAWNvUiIvg1krAAAABQDAABFABgAAAAAAAEA
AACkgWLeAgBjb21wb3NpdGluZy9yZWdpb25zL3dlYmtpdC1mbG93LXJlbmRlcmVyLWxheWVyLWNv
bXBvc2l0aW5nLXN0ZGVyci50eHRVVAUAA+mLS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAI
jb1IuwNJqsEAAADyBgAAPAAYAAAAAAABAAAApIGN3wIAY29tcG9zaXRpbmcvc2hvdy1jb21wb3Np
dGVkLWlmcmFtZS1vbi1iYWNrLWJ1dHRvbi1zdGRlcnIudHh0VVQFAAPvi0tXdXgLAAEE9QEAAARQ
AAAAUEsBAh4DCgAAAAAAAIu9SAAAAAAAAAAAAAAAABIAGAAAAAAAAAAQAO1BxOACAGNvbXBvc2l0
aW5nL3ZpZGVvL1VUBQADIIhLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAAONvUgR+4nHrQAA
AN4DAAAwABgAAAAAAAEAAACkgRDhAgBjb21wb3NpdGluZy92aWRlby92aWRlby1ib3JkZXItcmFk
aXVzLXN0ZGVyci50eHRVVAUAA+aLS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAEjb1I/5Ex
lM8AAADQCgAAMgAYAAAAAAABAAAApIEn4gIAY29tcG9zaXRpbmcvdmlkZW8vdmlkZW8tY2xpcC1j
aGFuZ2Utc3JjLXN0ZGVyci50eHRVVAUAA+iLS1d1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAAAD
i71IAAAAAAAAAAAAAAAADQAYAAAAAAAAABAA7UFi4wIAZGlzcGxheWxpc3RzL1VUBQADJYhLV3V4
CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAAeNvUijV/3oUAAAAI4AAAAyABgAAAAAAAEAAACkganj
AgBkaXNwbGF5bGlzdHMvZXh0ZW50LWluY2x1ZGVzLXRyYW5zZm9ybXMtc3RkZXJyLnR4dFVUBQAD
7YtLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAAeNvUjylpXVRwAAAEkAAAApABgAAAAAAAEA
AACkgWXkAgBkaXNwbGF5bGlzdHMvbGF5ZXItZGlzcGF5LWxpc3Qtc3RkZXJyLnR4dFVUBQAD7YtL
V3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADSNvUjrtd8ahg0AAO18AAANABgAAAAAAAEAAACk
gQ/lAgBlcnJvcl9sb2cudHh0VVQFAANEjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAFou9
SAAAAAAAAAAAAAAAAAUAGAAAAAAAAAAQAO1B3PICAGZhc3QvVVQFAANMiEtXdXgLAAEE9QEAAARQ
AAAAUEsBAh4DCgAAAAAADYu9SAAAAAAAAAAAAAAAAAwAGAAAAAAAAAAQAO1BG/MCAGZhc3QvY2Fu
dmFzL1VUBQADOohLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIABGNvUhgCTezhgAAABoBAAAm
ABgAAAAAAAEAAACkgWHzAgBmYXN0L2NhbnZhcy9jYW52YXMtbGluZURhc2gtc3RkZXJyLnR4dFVU
BQADAYxLV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAABaLvUgAAAAAAAAAAAAAAAAMABgAAAAA
AAAAEADtQUf0AgBmYXN0L2ltYWdlcy9VVAUAA0yIS1d1eAsAAQT1AQAABFAAAABQSwECHgMKAAIA
AAAajb1IUaeCGDEAAAAxAAAALQAYAAAAAAABAAAApIGN9AIAZmFzdC9pbWFnZXMvbGFyZ2Utc2l6
ZS1pbWFnZS1jcmFzaC1zdGRlcnIudHh0VVQFAAMTjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAAC
AAgAGo29SCGPvTgyAAAAMwAAACwAGAAAAAAAAQAAAKSBJfUCAGZhc3QvaW1hZ2VzL3BkZi1hcy1p
bWFnZS1jcm9wLWJveC1zdGRlcnIudHh0VVQFAAMUjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAA
AAAAF4u9SAAAAAAAAAAAAAAAAAkAGAAAAAAAAAAQAO1BvfUCAGZhc3QveHNsL1VUBQADTYhLV3V4
CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIABqNvUhy/WXyhQAAAOkAAAAlABgAAAAAAAEAAACkgQD2
AgBmYXN0L3hzbC90cmFuc2Zvcm0teGhyLWRvYy1zdGRlcnIudHh0VVQFAAMUjEtXdXgLAAEE9QEA
AARQAAAAUEsBAh4DFAACAAgAGo29SM4JKAKNAAAA8AAAACcAGAAAAAAAAQAAAKSB5PYCAGZhc3Qv
eHNsL3hzbHQtYmFkLWltcG9ydC11cmktc3RkZXJyLnR4dFVUBQADFIxLV3V4CwABBPUBAAAEUAAA
AFBLAQIeAxQAAgAIABqNvUjPj2YOUAAAAKAAAAAkABgAAAAAAAEAAACkgdL3AgBmYXN0L3hzbC94
c2x0LWNvbnRlbnRUeXBlLXN0ZGVyci50eHRVVAUAAxSMS1d1eAsAAQT1AQAABFAAAABQSwECHgMU
AAIACAAajb1IgUp3rUsAAACsAAAANAAYAAAAAAABAAAApIGA+AIAZmFzdC94c2wveHNsdC10cmFu
c2Zvcm0tdG8tZnJhZ21lbnQtY3Jhc2gtc3RkZXJyLnR4dFVUBQADFIxLV3V4CwABBPUBAAAEUAAA
AFBLAQIeAxQAAgAIAEuNvUg3ikQRoAMAADgOAAARABgAAAAAAAEAAACkgTn5AgBmdWxsX3Jlc3Vs
dHMuanNvblVUBQADboxLV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAABmLvUgAAAAAAAAAAAAA
AAAFABgAAAAAAAAAEADtQST9AgBodHRwL1VUBQADUohLV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoA
AAAAAB2NvUgAAAAAAAAAAAAAAAALABgAAAAAAAAAEADtQWP9AgBodHRwL3Rlc3RzL1VUBQADGYxL
V3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAABuLvUgAAAAAAAAAAAAAAAARABgAAAAAAAAAEADt
Qaj9AgBodHRwL3Rlc3RzL2NhY2hlL1VUBQADVYhLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAI
ACGNvUgLgX35+AAAAIkEAAAwABgAAAAAAAEAAACkgfP9AgBodHRwL3Rlc3RzL2NhY2hlL21lbW9y
eS1jYWNoZS1wcnVuaW5nLXN0ZGVyci50eHRVVAUAAx6MS1d1eAsAAQT1AQAABFAAAABQSwECHgMU
AAIACAAijb1IUnopg4cAAADAAAAAPQAYAAAAAAABAAAApIFV/wIAaHR0cC90ZXN0cy9jYWNoZS9u
ZXR3b3JrLWVycm9yLWR1cmluZy1yZXZhbGlkYXRpb24tc3RkZXJyLnR4dFVUBQADIIxLV3V4CwAB
BPUBAAAEUAAAAFBLAQIeAwoAAAAAABmLvUgAAAAAAAAAAAAAAAASABgAAAAAAAAAEADtQVMAAwBo
dHRwL3Rlc3RzL2NhbnZhcy9VVAUAA1KIS1d1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAAAZi71I
AAAAAAAAAAAAAAAAGAAYAAAAAAAAABAA7UGfAAMAaHR0cC90ZXN0cy9jYW52YXMvd2ViZ2wvVVQF
AANSiEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAHY29SAchHS3NAAAAkQIAADsAGAAAAAAA
AQAAAKSB8QADAGh0dHAvdGVzdHMvY2FudmFzL3dlYmdsL29yaWdpbi1jbGVhbi1jb25mb3JtYW5j
ZS1zdGRlcnIudHh0VVQFAAMZjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAHY29SAAAAAAA
AAAAAAAAABYAGAAAAAAAAAAQAO1BMwIDAGh0dHAvdGVzdHMvZnVsbHNjcmVlbi9VVAUAAxmMS1d1
eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAdjb1IhDbUOoQAAADAAAAAQwAYAAAAAAABAAAApIGD
AgMAaHR0cC90ZXN0cy9mdWxsc2NyZWVuL2Z1bGxzY3JlZW5lbGVtZW50LWRpZmZlcmVudC1vcmln
aW4tc3RkZXJyLnR4dFVUBQADGYxLV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAABqLvUgAAAAA
AAAAAAAAAAAXABgAAAAAAAAAEADtQYQDAwBodHRwL3Rlc3RzL2luY3JlbWVudGFsL1VUBQADU4hL
V3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIABqLvUhIg36ihAAAAMAAAAA5ABgAAAAAAAEAAACk
gdUDAwBodHRwL3Rlc3RzL2luY3JlbWVudGFsL2ZyYW1lLWZvY3VzLWJlZm9yZS1sb2FkLXN0ZGVy
ci50eHRVVAUAA1OIS1d1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAAAmi71IAAAAAAAAAAAAAAAA
EQAYAAAAAAAAABAA7UHMBAMAaHR0cC90ZXN0cy9tZWRpYS9VVAUAA2iIS1d1eAsAAQT1AQAABFAA
AABQSwECHgMKAAAAAAAai71IAAAAAAAAAAAAAAAAGgAYAAAAAAAAABAA7UEXBQMAaHR0cC90ZXN0
cy9tZWRpYS9jbGVhcmtleS9VVAUAA1SIS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAgjb1I
IrmOhVEBAAB/AwAAOQAYAAAAAAABAAAApIFrBQMAaHR0cC90ZXN0cy9tZWRpYS9jbGVhcmtleS9j
bGVhci1rZXktaGxzLWFlczEyOC1zdGRlcnIudHh0VVQFAAMcjEtXdXgLAAEE9QEAAARQAAAAUEsB
Ah4DCgAAAAAAIIu9SAAAAAAAAAAAAAAAABUAGAAAAAAAAAAQAO1BLwcDAGh0dHAvdGVzdHMvbWVk
aWEvaGxzL1VUBQADW4hLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIACCNvUh6CheAugEAANAE
AABAABgAAAAAAAEAAACkgX4HAwBodHRwL3Rlc3RzL21lZGlhL2hscy9obHMtYWNjZXNzaWJsaXR5
LWRlc2NyaWJlcy12aWRlby1zdGRlcnIudHh0VVQFAAMcjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4D
FAACAAgAII29SBwbkFryAQAAXAYAADoAGAAAAAAAAQAAAKSBsgkDAGh0dHAvdGVzdHMvbWVkaWEv
aGxzL2hscy1hdWRpby10cmFja3MtaGFzLWF1ZGlvLXN0ZGVyci50eHRVVAUAAxyMS1d1eAsAAQT1
AQAABFAAAABQSwECHgMUAAIACAAgjb1IJr01E8oBAABTBgAAQQAYAAAAAAABAAAApIEYDAMAaHR0
cC90ZXN0cy9tZWRpYS9obHMvaGxzLWF1ZGlvLXRyYWNrcy1sb2NhbGUtc2VsZWN0aW9uLXN0ZGVy
ci50eHRVVAUAAxyMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAhjb1IJmofxPQBAABcBgAA
MAAYAAAAAAABAAAApIFdDgMAaHR0cC90ZXN0cy9tZWRpYS9obHMvaGxzLWF1ZGlvLXRyYWNrcy1z
dGRlcnIudHh0VVQFAAMdjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAIY29SG2D8IclAQAA
OAQAACwAGAAAAAAAAQAAAKSBuxADAGh0dHAvdGVzdHMvbWVkaWEvaGxzL2hscy1wcm9ncmVzcy1z
dGRlcnIudHh0VVQFAAMdjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAIo29SOdaRtZjAQAA
9QQAADAAGAAAAAAAAQAAAKSBRhIDAGh0dHAvdGVzdHMvbWVkaWEvaGxzL2hscy12aWRlby1yZXNp
emUtc3RkZXJyLnR4dFVUBQADIIxLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIACONvUgK4HJo
SgEAAAoIAAA9ABgAAAAAAAEAAACkgRMUAwBodHRwL3Rlc3RzL21lZGlhL2hscy92aWRlby1jb250
cm9sbGVyLWdldFN0YXJ0RGF0ZS1zdGRlcnIudHh0VVQFAAMijEtXdXgLAAEE9QEAAARQAAAAUEsB
Ah4DFAACAAgAJI29SHNFUXK4AQAAaQkAADoAGAAAAAAAAQAAAKSB1BUDAGh0dHAvdGVzdHMvbWVk
aWEvaGxzL3ZpZGVvLWNvbnRyb2xzLWxpdmUtc3RyZWFtLXN0ZGVyci50eHRVVAUAAyOMS1d1eAsA
AQT1AQAABFAAAABQSwECHgMUAAIACAAgjb1Iw6RP6MsAAACRAgAAMgAYAAAAAAABAAAApIEAGAMA
aHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1kb2N1bWVudC1yZWZlcmVyLXN0ZGVyci50eHRVVAUAAxyM
S1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAgjb1IE8Iw7OEAAAAGAwAAKgAYAAAAAAABAAAA
pIE3GQMAaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1kb2N1bWVudC1zdGRlcnIudHh0VVQFAAMcjEtX
dXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAIY29SKyCw2npAAAAxgMAADkAGAAAAAAAAQAAAKSB
fBoDAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtcGxheS1zdHJlYW0tY2h1bmtlZC1pY3ktc3RkZXJy
LnR4dFVUBQADHoxLV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAACCNvUgAAAAAAAAAAAAAAAAe
ABgAAAAAAAAAEADtQdgbAwBodHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9VVAUAAxyMS1d1
eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAmjb1IUpVrzU4BAACXBAAAQgAYAAAAAAABAAAApIEw
HAMAaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtYXBwZW5kLWJ1ZmZl
ci1zdGRlcnIudHh0VVQFAAMojEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAJ429SL41Z6o+
AQAAegMAAFAAGAAAAAAAAQAAAKSB+h0DAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21l
ZGlhc291cmNlLWNvbmZpZy1jaGFuZ2UtbXA0LXYtYml0cmF0ZS1zdGRlcnIudHh0VVQFAAMqjEtX
dXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAKI29SBIQBBg9AQAAegMAAFIAGAAAAAAAAQAAAKSB
wh8DAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLWNvbmZpZy1jaGFu
Z2UtbXA0LXYtZnJhbWVyYXRlLXN0ZGVyci50eHRVVAUAAyyMS1d1eAsAAQT1AQAABFAAAABQSwEC
HgMUAAIACAAsjb1IL7pTWowAAACbAAAAOQAYAAAAAAABAAAApIGLIQMAaHR0cC90ZXN0cy9tZWRp
YS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2UtcGxheS1zdGRlcnIudHh0VVQFAAM0jEtXdXgLAAEE
9QEAAARQAAAAUEsBAh4DFAACAAgALo29SDcOJw+rAAAABwMAADsAGAAAAAAAAQAAAKSBiiIDAGh0
dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLXJlbW92ZS1zdGRlcnIudHh0
VVQFAAM3jEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAMI29SAaoDLuiAAAA0QEAAEYAGAAA
AAAAAQAAAKSBqiMDAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLXNv
dXJjZWJ1ZmZlci1tb2RlLXN0ZGVyci50eHRVVAUAAzuMS1d1eAsAAQT1AQAABFAAAABQSwECHgMU
AAIACAAgjb1IHbFTN4QAAAAaAQAARgAYAAAAAAABAAAApIHMJAMAaHR0cC90ZXN0cy9tZWRpYS9t
ZWRpYS1zb3VyY2UvU291cmNlQnVmZmVyLWFib3J0LXJlYWR5U3RhdGUtc3RkZXJyLnR4dFVUBQAD
HIxLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIACKNvUhnBXQS7AAAAF8BAAAtABgAAAAAAAEA
AACkgdAlAwBodHRwL3Rlc3RzL21lZGlhL3BkZi1zZXJ2ZWQtYXMtcGRmLXN0ZGVyci50eHRVVAUA
AyCMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAkjb1INNYp2goBAAAaAgAALwAYAAAAAAAB
AAAApIEjJwMAaHR0cC90ZXN0cy9tZWRpYS9yZWxvYWQtYWZ0ZXItZGlhbG9nLXN0ZGVyci50eHRV
VAUAAyOMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAkjb1I/cVbqUgBAAB0AgAALwAYAAAA
AAABAAAApIGWKAMAaHR0cC90ZXN0cy9tZWRpYS90ZXh0LXNlcnZlZC1hcy10ZXh0LXN0ZGVyci50
eHRVVAUAAyOMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAljb1IZeaqUgYBAAB4AwAANgAY
AAAAAAABAAAApIFHKgMAaHR0cC90ZXN0cy9tZWRpYS90cmFjay1pbi1iYW5kLWhscy1tZXRhZGF0
YS1zdGRlcnIudHh0VVQFAAMljEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAJo29SFjNrBLY
AQAAZgYAACYAGAAAAAAAAQAAAKSBvSsDAGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tYXV0aC1zdGRl
cnIudHh0VVQFAAMnjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAJo29SHgzysvfAAAAUgIA
AC0AGAAAAAAAAQAAAKSB9S0DAGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tZXJyb3ItYWJvcnQtc3Rk
ZXJyLnR4dFVUBQADKIxLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIACeNvUg87tn5FAEAAD0C
AAA2ABgAAAAAAAEAAACkgTsvAwBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLWVycm9yLWRvZXMtbm90
LWV4aXN0LXN0ZGVyci50eHRVVAUAAyqMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAojb1I
zu7ZsAsBAACNAwAALAAYAAAAAAABAAAApIG/MAMAaHR0cC90ZXN0cy9tZWRpYS92aWRlby1sb2Fk
LXR3aWNlLXN0ZGVyci50eHRVVAUAAyyMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAojb1I
vHLo8uIAAADGAwAALwAYAAAAAAABAAAApIEwMgMAaHR0cC90ZXN0cy9tZWRpYS92aWRlby1wbGF5
LXByb2dyZXNzLXN0ZGVyci50eHRVVAUAAyyMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAq
jb1IUXXQSYQAAADAAAAAPQAYAAAAAAABAAAApIF7MwMAaHR0cC90ZXN0cy9tZWRpYS92aWRlby1w
bGF5LXN0YWxsLWJlZm9yZS1tZXRhLWRhdGEtc3RkZXJyLnR4dFVUBQADL4xLV3V4CwABBPUBAAAE
UAAAAFBLAQIeAxQAAgAIACqNvUgyWjwFvAAAAJIBAAArABgAAAAAAAEAAACkgXY0AwBodHRwL3Rl
c3RzL21lZGlhL3ZpZGVvLXF1ZXJ5LXVybC1zdGRlcnIudHh0VVQFAAMwjEtXdXgLAAEE9QEAAARQ
AAAAUEsBAh4DFAACAAgAK429SJhStLpCAQAAwQUAACoAGAAAAAAAAQAAAKSBlzUDAGh0dHAvdGVz
dHMvbWVkaWEvdmlkZW8tcmVkaXJlY3Qtc3RkZXJyLnR4dFVUBQADMoxLV3V4CwABBPUBAAAEUAAA
AFBLAQIeAxQAAgAIACyNvUhfDpiJ3gAAAFICAAArABgAAAAAAAEAAACkgT03AwBodHRwL3Rlc3Rz
L21lZGlhL3ZpZGVvLXVzZXJhZ2VudC1zdGRlcnIudHh0VVQFAAMzjEtXdXgLAAEE9QEAAARQAAAA
UEsBAh4DCgAAAAAAJIu9SAAAAAAAAAAAAAAAABAAGAAAAAAAAAAQAO1BgDgDAGh0dHAvdGVzdHMv
bWlzYy9VVAUAA2OIS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAojb1IU7+glcQAAAD+AAAA
PwAYAAAAAAABAAAApIHKOAMAaHR0cC90ZXN0cy9taXNjL2RlbGV0ZS1mcmFtZS1kdXJpbmctcmVh
ZHlzdGF0ZWNoYW5nZS1zdGRlcnIudHh0VVQFAAMrjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAAC
AAgAKI29SCrHYwzFAAAA/gAAAFsAGAAAAAAAAQAAAKSBBzoDAGh0dHAvdGVzdHMvbWlzYy9kZWxl
dGUtZnJhbWUtZHVyaW5nLXJlYWR5c3RhdGVjaGFuZ2Utd2l0aC1nYy1hZnRlci12aWRlby1yZW1v
dmFsLXN0ZGVyci50eHRVVAUAAyuMS1d1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAAAdi71IAAAA
AAAAAAAAAAAAEwAYAAAAAAAAABAA7UFhOwMAaHR0cC90ZXN0cy9wcmVsb2FkL1VUBQADWohLV3V4
CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIACONvUguT4V/UgEAAP4CAAA8ABgAAAAAAAEAAACkga47
AwBodHRwL3Rlc3RzL3ByZWxvYWQvc2luZ2xlX2Rvd25sb2FkX3ByZWxvYWRfcnVubmVyLXN0ZGVy
ci50eHRVVAUAAyKMS1d1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAAAkjb1IAAAAAAAAAAAAAAAA
FAAYAAAAAAAAABAA7UF2PQMAaHR0cC90ZXN0cy9zZWN1cml0eS9VVAUAAyOMS1d1eAsAAQT1AQAA
BFAAAABQSwECHgMKAAAAAAApi71IAAAAAAAAAAAAAAAAKgAYAAAAAAAAABAA7UHEPQMAaHR0cC90
ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvVVQFAANtiEtXdXgLAAEE9QEAAARQ
AAAAUEsBAh4DFAACAAgAI429SO4DG+/YAAAA+AEAAEsAGAAAAAAAAQAAAKSBKD4DAGh0dHAvdGVz
dHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2F1ZGlvLXJlZGlyZWN0LWFsbG93ZWQt
c3RkZXJyLnR4dFVUBQADIoxLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIACONvUi995ou5gAA
AEMCAABMABgAAAAAAAEAAACkgYU/AwBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0
eVBvbGljeS9hdWRpby1yZWRpcmVjdC1hbGxvd2VkMi1zdGRlcnIudHh0VVQFAAMijEtXdXgLAAEE
9QEAAARQAAAAUEsBAh4DFAACAAgAJI29SP8/rg6nAAAAigEAAFgAGAAAAAAAAQAAAKSB8UADAGh0
dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2Jsb2ItdXJsLWRvZXMtbm90
LW1hdGNoLXNvdXJjZS1zZWxmLXN0ZGVyci50eHRVVAUAAyOMS1d1eAsAAQT1AQAABFAAAABQSwEC
HgMKAAAAAAAkjb1IAAAAAAAAAAAAAAAAPQAYAAAAAAAAABAA7UEqQgMAaHR0cC90ZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvdXNlckFnZW50U2hhZG93RE9NL1VUBQADI4xLV3V4
CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIACONvUhqCIdA2AAAAPgBAABTABgAAAAAAAEAAACkgaFC
AwBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS91c2VyQWdlbnRTaGFk
b3dET00vYWxsb3ctYXVkaW8tc3RkZXJyLnR4dFVUBQADIoxLV3V4CwABBPUBAAAEUAAAAFBLAQIe
AxQAAgAIACSNvUgYBvNwuwAAAJIBAABTABgAAAAAAAEAAACkgQZEAwBodHRwL3Rlc3RzL3NlY3Vy
aXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS91c2VyQWdlbnRTaGFkb3dET00vYWxsb3ctdmlkZW8t
c3RkZXJyLnR4dFVUBQADI4xLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIACCLvUjknUc3hAAA
AMAAAACCABgAAAAAAAEAAACkgU5FAwBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0
eVBvbGljeS91c2VyQWdlbnRTaGFkb3dET00vYmxvY2stbG9hZGluZy11c2VyLWFnZW50LWltYWdl
LWZyb20tbm9uLXVzZXItYWdlbnQtY29udGVudC1zdGRlcnIudHh0VVQFAANbiEtXdXgLAAEE9QEA
AARQAAAAUEsBAh4DFAACAAgAJI29SAGNMHmEAAAAwAAAAGsAGAAAAAAAAQAAAKSBjkYDAGh0dHAv
dGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3VzZXJBZ2VudFNoYWRvd0RPTS9k
ZWZhdWx0LXNyYy1vYmplY3QtZGF0YS11cmwtYWxsb3dlZC1zdGRlcnIudHh0VVQFAAMjjEtXdXgL
AAEE9QEAAARQAAAAUEsBAh4DFAACAAgAK429SH5XspDeAAAAUgIAAEsAGAAAAAAAAQAAAKSBt0cD
AGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3ZpZGVvLXJlZGlyZWN0
LWFsbG93ZWQtc3RkZXJyLnR4dFVUBQADMoxLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIACuN
vUh49wvduwAAAJIBAABMABgAAAAAAAEAAACkgRpJAwBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRl
bnRTZWN1cml0eVBvbGljeS92aWRlby1yZWRpcmVjdC1hbGxvd2VkMi1zdGRlcnIudHh0VVQFAAMy
jEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgALI29SBh/BITfAAAAUgIAAGYAGAAAAAAAAQAA
AKSBW0oDAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3ZpZGVvLXdp
dGgtaHR0cC11cmwtYWxsb3dlZC1ieS1jc3AtbWVkaWEtc3JjLXN0YXItc3RkZXJyLnR4dFVUBQAD
M4xLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIACyNvUjU45MJhAAAAMAAAABZABgAAAAAAAEA
AACkgdpLAwBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS93b3JrZXIt
YmxvYi1pbmhlcml0cy1jc3AtYmxvY2tzLWV2YWwtc3RkZXJyLnR4dFVUBQADM4xLV3V4CwABBPUB
AAAEUAAAAFBLAQIeAxQAAgAIACyNvUhjqqxsggAAAKgAAABAABgAAAAAAAEAAACkgfFMAwBodHRw
L3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wtYWxsb3dlZC1zdGRlcnIu
dHh0VVQFAAM0jEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgALI29SGOqrGyCAAAAqAAAAFIA
GAAAAAAAAQAAAKSB7U0DAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
L3hzbC11bmFmZmVjdGVkLWJ5LXN0eWxlLXNyYy0yLXN0ZGVyci50eHRVVAUAAzSMS1d1eAsAAQT1
AQAABFAAAABQSwECHgMKAAAAAAAkjb1IAAAAAAAAAAAAAAAAHAAYAAAAAAAAABAA7UH7TgMAaHR0
cC90ZXN0cy9zZWN1cml0eS9jb29raWVzL1VUBQADI4xLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQA
AgAIACSNvUjc4lJphAAAAMAAAAA6ABgAAAAAAAEAAACkgVFPAwBodHRwL3Rlc3RzL3NlY3VyaXR5
L2Nvb2tpZXMvYXNzaWduLWRvY3VtZW50LXVybC1zdGRlcnIudHh0VVQFAAMjjEtXdXgLAAEE9QEA
AARQAAAAUEsBAh4DCgAAAAAAJI29SAAAAAAAAAAAAAAAABwAGAAAAAAAAAAQAO1BSVADAGh0dHAv
dGVzdHMvc2VjdXJpdHkvZGF0YVVSTC9VVAUAAyOMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIA
CAAkjb1I96gUvoQAAAAaAQAAWgAYAAAAAAABAAAApIGfUAMAaHR0cC90ZXN0cy9zZWN1cml0eS9k
YXRhVVJML3hzcy1ERU5JRUQtZnJvbS1kYXRhLXVybC1pbi1mb3JlaWduLWRvbWFpbi1zdWJmcmFt
ZS1zdGRlcnIudHh0VVQFAAMjjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAIIu9SAAAAAAA
AAAAAAAAAB0AGAAAAAAAAAAQAO1Bt1EDAGh0dHAvdGVzdHMvc2VjdXJpdHkvbGlzdGVuZXIvVVQF
AANbiEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAIIu9SHRhopaEAAAAGgEAAFEAGAAAAAAA
AQAAAKSBDlIDAGh0dHAvdGVzdHMvc2VjdXJpdHkvbGlzdGVuZXIveHNzLUpTVGFyZ2V0Tm9kZS1v
bmNsaWNrLWFkZEV2ZW50TGlzdGVuZXItc3RkZXJyLnR4dFVUBQADW4hLV3V4CwABBPUBAAAEUAAA
AFBLAQIeAxQAAgAIACeNvUjPyuJBygAAAN0BAAA9ABgAAAAAAAEAAACkgR1TAwBodHRwL3Rlc3Rz
L3NlY3VyaXR5L2xvY2FsLXZpZGVvLXNvdXJjZS1mcm9tLXJlbW90ZS1zdGRlcnIudHh0VVQFAAMq
jEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAKI29SFZWv3WEAAAAwAAAADoAGAAAAAAAAQAA
AKSBXlQDAGh0dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwtdmlkZW8tc3JjLWZyb20tcmVtb3RlLXN0
ZGVyci50eHRVVAUAAyuMS1d1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAAAgi71IAAAAAAAAAAAA
AAAAIQAYAAAAAAAAABAA7UFWVQMAaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvVVQF
AANciEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAJI29SE98t6fuAAAAiQQAAE4AGAAAAAAA
AQAAAKSBsVUDAGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLWF1ZGlv
LXZpZGVvLWluLW1haW4tZnJhbWUtc3RkZXJyLnR4dFVUBQADJIxLV3V4CwABBPUBAAAEUAAAAFBL
AQIeAxQAAgAIACSNvUjft5J4hAAAAMAAAABCABgAAAAAAAEAAACkgSdXAwBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS1jc3MtaW4taWZyYW1lLXN0ZGVyci50eHRVVAUA
AySMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAArjb1IFFy6Jj8BAABcBQAAOQAYAAAAAAAB
AAAApIEnWAMAaHR0cC90ZXN0cy9zZWN1cml0eS92aWRlby1jcm9zcy1vcmlnaW4tY2FjaGluZy1z
dGRlcnIudHh0VVQFAAMxjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAK429SE1XrB2GAAAA
wAAAAD8AGAAAAAAAAQAAAKSB2VkDAGh0dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8tcG9zdGVyLWNy
b3NzLW9yaWdpbi1jcmFzaDItc3RkZXJyLnR4dFVUBQADMoxLV3V4CwABBPUBAAAEUAAAAFBLAQIe
AxQAAgAIAC2NvUhgS2YQkQAAAPsBAABFABgAAAAAAAEAAACkgdhaAwBodHRwL3Rlc3RzL3NlY3Vy
aXR5L3hzcy1ERU5JRUQteHNsLWRvY3VtZW50LXNlY3VyaXR5T3JpZ2luLXN0ZGVyci50eHRVVAUA
AzWMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAD9jL1INRPGmpkFAAAREAAACgAYAAAAAAAB
AAAApIHoWwMAaHR0cGQuY29uZlVUBQAD3otLV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAACyN
vUgAAAAAAAAAAAAAAAAJABgAAAAAAAAAEADtQcVhAwBpbXBvcnRlZC9VVAUAAzOMS1d1eAsAAQT1
AQAABFAAAABQSwECHgMKAAAAAAAmi71IAAAAAAAAAAAAAAAADwAYAAAAAAAAABAA7UEIYgMAaW1w
b3J0ZWQvYmxpbmsvVVQFAANoiEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAJou9SAAAAAAA
AAAAAAAAABgAGAAAAAAAAAAQAO1BUWIDAGltcG9ydGVkL2JsaW5rL2ltcG9ydGVkL1VUBQADaIhL
V3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAACaLvUgAAAAAAAAAAAAAAAArABgAAAAAAAAAEADt
QaNiAwBpbXBvcnRlZC9ibGluay9pbXBvcnRlZC93ZWItcGxhdGZvcm0tdGVzdHMvVVQFAANoiEtX
dXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAJou9SAAAAAAAAAAAAAAAADAAGAAAAAAAAAAQAO1B
CGMDAGltcG9ydGVkL2JsaW5rL2ltcG9ydGVkL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL1VUBQAD
aIhLV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAACaLvUgAAAAAAAAAAAAAAAA6ABgAAAAAAAAA
EADtQXJjAwBpbXBvcnRlZC9ibGluay9pbXBvcnRlZC93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9y
ZW5kZXJpbmcvVVQFAANoiEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAJou9SAAAAAAAAAAA
AAAAAFAAGAAAAAAAAAAQAO1B5mMDAGltcG9ydGVkL2JsaW5rL2ltcG9ydGVkL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3JlbmRlcmluZy9ub24tcmVwbGFjZWQtZWxlbWVudHMvVVQFAANoiEtXdXgL
AAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAJou9SAAAAAAAAAAAAAAAAF8AGAAAAAAAAAAQAO1BcGQD
AGltcG9ydGVkL2JsaW5rL2ltcG9ydGVkL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3JlbmRlcmlu
Zy9ub24tcmVwbGFjZWQtZWxlbWVudHMvZmxvdy1jb250ZW50LTAvVVQFAANoiEtXdXgLAAEE9QEA
AARQAAAAUEsBAh4DFAACAAgAJou9SH2HF5QJAQAA1AMAAHAAGAAAAAAAAQAAAKSBCWUDAGltcG9y
dGVkL2JsaW5rL2ltcG9ydGVkL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3JlbmRlcmluZy9ub24t
cmVwbGFjZWQtZWxlbWVudHMvZmxvdy1jb250ZW50LTAvZmlndXJlLXN0ZGVyci50eHRVVAUAA2iI
S1d1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAAAsjb1IAAAAAAAAAAAAAAAAEQAYAAAAAAAAABAA
7UG8ZgMAaW1wb3J0ZWQvbW96aWxsYS9VVAUAAzOMS1d1eAsAAQT1AQAABFAAAABQSwECHgMKAAAA
AAAsjb1IAAAAAAAAAAAAAAAAFQAYAAAAAAAAABAA7UEHZwMAaW1wb3J0ZWQvbW96aWxsYS9zdmcv
VVQFAAMzjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAALI29SAAAAAAAAAAAAAAAABwAGAAA
AAAAAAAQAO1BVmcDAGltcG9ydGVkL21vemlsbGEvc3ZnL3NpemluZy9VVAUAAzOMS1d1eAsAAQT1
AQAABFAAAABQSwECHgMUAAIACAAsjb1IHKdnmBwBAACyBwAAQAAYAAAAAAABAAAApIGsZwMAaW1w
b3J0ZWQvbW96aWxsYS9zdmcvc2l6aW5nL2lubGluZS0tZGlzcGxheS1ibG9jay0tMDEtc3RkZXJy
LnR4dFVUBQADM4xLV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAACyLvUgAAAAAAAAAAAAAAAAN
ABgAAAAAAAAAEADtQUJpAwBpbXBvcnRlZC93M2MvVVQFAAN0iEtXdXgLAAEE9QEAAARQAAAAUEsB
Ah4DCgAAAAAAM429SAAAAAAAAAAAAAAAACAAGAAAAAAAAAAQAO1BiWkDAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvVVQFAANBjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAM429
SAAAAAAAAAAAAAAAACQAGAAAAAAAAAAQAO1B42kDAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZG9tL1VUBQADQYxLV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAADSNvUgAAAAAAAAA
AAAAAAArABgAAAAAAAAAEADtQUFqAwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Rv
bS9yYW5nZXMvVVQFAANDjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAM429SE2enExYAAAA
sgAAAFIAGAAAAAAAAQAAAKSBpmoDAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9t
L3Jhbmdlcy9SYW5nZS1pbnRlcnNlY3RzTm9kZS1iaW5kaW5nLWFjdHVhbC50eHRVVAUAA0GMS1d1
eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAzjb1InHPqiyMBAABlAgAAUAAYAAAAAAABAAAApIGK
awMAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vcmFuZ2VzL1JhbmdlLWludGVy
c2VjdHNOb2RlLWJpbmRpbmctZGlmZi50eHRVVAUAA0GMS1d1eAsAAQT1AQAABFAAAABQSwECHgMU
AAIACAAzjb1I5AjaflsAAABpAAAAVAAYAAAAAAABAAAApIE3bQMAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9kb20vcmFuZ2VzL1JhbmdlLWludGVyc2VjdHNOb2RlLWJpbmRpbmctZXhw
ZWN0ZWQudHh0VVQFAANBjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAM429SF/uxZ39BwAA
ghsAAFgAGAAAAAAAAQAAAKSBIG4DAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9t
L3Jhbmdlcy9SYW5nZS1pbnRlcnNlY3RzTm9kZS1iaW5kaW5nLXByZXR0eS1kaWZmLmh0bWxVVAUA
A0GMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAzjb1I1VcZ4J0AAAAcAQAASgAYAAAAAAAB
AAAApIGvdgMAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vcmFuZ2VzL1Jhbmdl
LWlzUG9pbnRJblJhbmdlLWFjdHVhbC50eHRVVAUAA0KMS1d1eAsAAQT1AQAABFAAAABQSwECHgMU
AAIACAAzjb1IhqXkr3VZAAA1dAcASAAYAAAAAAABAAAApIHQdwMAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9kb20vcmFuZ2VzL1JhbmdlLWlzUG9pbnRJblJhbmdlLWRpZmYudHh0VVQF
AANCjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAM429SErT+lhSVwAAplwHAEwAGAAAAAAA
AQAAAKSBx9EDAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3Jhbmdlcy9SYW5n
ZS1pc1BvaW50SW5SYW5nZS1leHBlY3RlZC50eHRVVAUAA0KMS1d1eAsAAQT1AQAABFAAAABQSwEC
HgMUAAIACAA0jb1I+xVzlsyVAACBSxQAUAAYAAAAAAABAAAApIGfKQQAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9kb20vcmFuZ2VzL1JhbmdlLWlzUG9pbnRJblJhbmdlLXByZXR0eS1k
aWZmLmh0bWxVVAUAA0OMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAA0jb1IBCjbr6UAAAAn
AQAARQAYAAAAAAABAAAApIH1vwQAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20v
cmFuZ2VzL1JhbmdlLW11dGF0aW9ucy1hY3R1YWwudHh0VVQFAANDjEtXdXgLAAEE9QEAAARQAAAA
UEsBAh4DFAACAAgANI29SPtUnPjjaQAAm+kOAEMAGAAAAAAAAQAAAKSBGcEEAGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL3Jhbmdlcy9SYW5nZS1tdXRhdGlvbnMtZGlmZi50eHRV
VAUAA0OMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAA0jb1IKUlSKERoAACA0A4ARwAYAAAA
AAABAAAApIF5KwUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vcmFuZ2VzL1Jh
bmdlLW11dGF0aW9ucy1leHBlY3RlZC50eHRVVAUAA0OMS1d1eAsAAQT1AQAABFAAAABQSwECHgMK
AAAAAAAwi71IAAAAAAAAAAAAAAAAJQAYAAAAAAAAABAA7UE+lAUAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL1VUBQADe4hLV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAADCL
vUgAAAAAAAAAAAAAAAApABgAAAAAAAAAEADtQZ2UBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvZG9tL1VUBQADe4hLV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAADCLvUgA
AAAAAAAAAAAAAAAyABgAAAAAAAAAEADtQQCVBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvZG9tL2VsZW1lbnRzL1VUBQADe4hLV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAA
ADCLvUgAAAAAAAAAAAAAAABEABgAAAAAAAAAEADtQWyVBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvZG9tL2VsZW1lbnRzL2dsb2JhbC1hdHRyaWJ1dGVzL1VUBQADfIhLV3V4
CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADSNvUjiFaIFsgAAAGgBAABWABgAAAAAAAEAAACkgeqV
BQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2VsZW1lbnRzL2dsb2Jh
bC1hdHRyaWJ1dGVzL2lkLW5hbWUtYWN0dWFsLnR4dFVUBQADQ4xLV3V4CwABBPUBAAAEUAAAAFBL
AQIeAxQAAgAIADSNvUhjA7LRWAEAAO8CAABUABgAAAAAAAEAAACkgSyXBQBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2VsZW1lbnRzL2dsb2JhbC1hdHRyaWJ1dGVzL2lk
LW5hbWUtZGlmZi50eHRVVAUAA0OMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAA0jb1IlayZ
3zEAAAAyAAAAWAAYAAAAAAABAAAApIESmQUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2RvbS9lbGVtZW50cy9nbG9iYWwtYXR0cmlidXRlcy9pZC1uYW1lLWV4cGVjdGVkLnR4
dFVUBQADQ4xLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADSNvUihY5mwQggAAPYdAABcABgA
AAAAAAEAAACkgdWZBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2Vs
ZW1lbnRzL2dsb2JhbC1hdHRyaWJ1dGVzL2lkLW5hbWUtcHJldHR5LWRpZmYuaHRtbFVUBQADQ4xL
V3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADSNvUhJ1XZkngAAABwBAABiABgAAAAAAAEAAACk
ga2iBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2VsZW1lbnRzL2ds
b2JhbC1hdHRyaWJ1dGVzL2lkLW5hbWUtc3BlY2lhbGNhc2UtYWN0dWFsLnR4dFVUBQADQ4xLV3V4
CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADSNvUhluzl3bgEAACEDAABgABgAAAAAAAEAAACkgeej
BQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2VsZW1lbnRzL2dsb2Jh
bC1hdHRyaWJ1dGVzL2lkLW5hbWUtc3BlY2lhbGNhc2UtZGlmZi50eHRVVAUAA0OMS1d1eAsAAQT1
AQAABFAAAABQSwECHgMUAAIACAA0jb1I3scqNFQAAACVAAAAZAAYAAAAAAABAAAApIHvpQUAaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9lbGVtZW50cy9nbG9iYWwtYXR0
cmlidXRlcy9pZC1uYW1lLXNwZWNpYWxjYXNlLWV4cGVjdGVkLnR4dFVUBQADQ4xLV3V4CwABBPUB
AAAEUAAAAFBLAQIeAxQAAgAIADSNvUiU8nE7yggAAOchAABoABgAAAAAAAEAAACkgeGmBQBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2VsZW1lbnRzL2dsb2JhbC1hdHRy
aWJ1dGVzL2lkLW5hbWUtc3BlY2lhbGNhc2UtcHJldHR5LWRpZmYuaHRtbFVUBQADQ4xLV3V4CwAB
BPUBAAAEUAAAAFBLAQIeAxQAAgAIADSNvUjiFaIFsgAAAGgBAABlABgAAAAAAAEAAACkgU2wBQBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2VsZW1lbnRzL2dsb2JhbC1h
dHRyaWJ1dGVzL3RoZS1sYW5nLWF0dHJpYnV0ZS0wMDEtYWN0dWFsLnR4dFVUBQADQ4xLV3V4CwAB
BPUBAAAEUAAAAFBLAQIeAxQAAgAIADSNvUjTB9crggEAADsDAABjABgAAAAAAAEAAACkgZ6xBQBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2VsZW1lbnRzL2dsb2JhbC1h
dHRyaWJ1dGVzL3RoZS1sYW5nLWF0dHJpYnV0ZS0wMDEtZGlmZi50eHRVVAUAA0OMS1d1eAsAAQT1
AQAABFAAAABQSwECHgMUAAIACAA0jb1IdEqNNVcAAABfAAAAZwAYAAAAAAABAAAApIG9swUAaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9lbGVtZW50cy9nbG9iYWwtYXR0
cmlidXRlcy90aGUtbGFuZy1hdHRyaWJ1dGUtMDAxLWV4cGVjdGVkLnR4dFVUBQADQ4xLV3V4CwAB
BPUBAAAEUAAAAFBLAQIeAxQAAgAIADCLvUgbsn9bDAgAACMcAABrABgAAAAAAAEAAACkgbW0BQBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2VsZW1lbnRzL2dsb2JhbC1h
dHRyaWJ1dGVzL3RoZS1sYW5nLWF0dHJpYnV0ZS0wMDEtcHJldHR5LWRpZmYuaHRtbFVUBQADfIhL
V3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADCLvUhNnpxMWAAAALIAAABlABgAAAAAAAEAAACk
gWa9BQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2VsZW1lbnRzL2ds
b2JhbC1hdHRyaWJ1dGVzL3RoZS1sYW5nLWF0dHJpYnV0ZS0wMDItYWN0dWFsLnR4dFVUBQADfIhL
V3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADCLvUileNx2OQEAAIsCAABjABgAAAAAAAEAAACk
gV2+BQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2VsZW1lbnRzL2ds
b2JhbC1hdHRyaWJ1dGVzL3RoZS1sYW5nLWF0dHJpYnV0ZS0wMDItZGlmZi50eHRVVAUAA3yIS1d1
eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAwi71IecrnAF8AAABoAAAAZwAYAAAAAAABAAAApIEz
wAUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9lbGVtZW50cy9nbG9i
YWwtYXR0cmlidXRlcy90aGUtbGFuZy1hdHRyaWJ1dGUtMDAyLWV4cGVjdGVkLnR4dFVUBQADfIhL
V3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADCLvUi9wmloFggAACwcAABrABgAAAAAAAEAAACk
gTPBBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2VsZW1lbnRzL2ds
b2JhbC1hdHRyaWJ1dGVzL3RoZS1sYW5nLWF0dHJpYnV0ZS0wMDItcHJldHR5LWRpZmYuaHRtbFVU
BQADfIhLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADCLvUhNnpxMWAAAALIAAABlABgAAAAA
AAEAAACkge7JBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2VsZW1l
bnRzL2dsb2JhbC1hdHRyaWJ1dGVzL3RoZS1sYW5nLWF0dHJpYnV0ZS0wMDMtYWN0dWFsLnR4dFVU
BQADfIhLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADCLvUjEV7GIQAEAAKECAABjABgAAAAA
AAEAAACkgeXKBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvZG9tL2VsZW1l
bnRzL2dsb2JhbC1hdHRyaWJ1dGVzL3RoZS1sYW5nLWF0dHJpYnV0ZS0wMDMtZGlmZi50eHRVVAUA
A3yIS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAwi71IpK9w82YAAAB+AAAAZwAYAAAAAAAB
AAAApIHCzAUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2RvbS9lbGVtZW50
cy9nbG9iYWwtYXR0cmlidXRlcy90aGUtbGFuZy1hdHRyaWJ1dGUtMDAzLWV4cGVjdGVkLnR4dFVU
BQADfIhLV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAADONvUgAAAAAAAAAAAAAAAAvABgAAAAA
AAAAEADtQcnNBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L1VUBQADQYxLV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAADCLvUgAAAAAAAAAAAAAAABAABgA
AAAAAAAAEADtQTLOBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL2VtYmVkZGVkLWNvbnRlbnQvVVQFAAN7iEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAA
NI29SAAAAAAAAAAAAAAAAE8AGAAAAAAAAAAQAO1BrM4FAGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9V
VAUAA0OMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAwjb1I1DisEeQAAABMBQAAZwAYAAAA
AAABAAAApIE1zwUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X2NhbnBsYXktc3RkZXJyLnR4
dFVUBQADPIxLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADCNvUihfVJU6gAAAKQEAAByABgA
AAAAAAEAAACkgbrQBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfY2FucGxheV9ub2F1dG9w
bGF5LXN0ZGVyci50eHRVVAUAAzyMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAxjb1IZGQd
JfAAAAAMBgAAbgAYAAAAAAABAAAApIFQ0gUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X2Nh
bnBsYXl0aHJvdWdoLXN0ZGVyci50eHRVVAUAAz2MS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIA
CAAxjb1ICZVR4OoAAACkBAAAeQAYAAAAAAABAAAApIHo0wUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRz
L2V2ZW50X2NhbnBsYXl0aHJvdWdoX25vYXV0b3BsYXktc3RkZXJyLnR4dFVUBQADPYxLV3V4CwAB
BPUBAAAEUAAAAFBLAQIeAxQAAgAIADGNvUgtRd376gAAAKQEAAB1ABgAAAAAAAEAAACkgYXVBQBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNv
bnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfbG9hZGVkZGF0YV9ub2F1dG9wbGF5LXN0ZGVyci50
eHRVVAUAAz2MS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAxjb1IV1MfPO0AAACkBAAAbgAY
AAAAAAABAAAApIEe1wUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFu
dGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X2xvYWRlZG1ldGFkYXRh
LXN0ZGVyci50eHRVVAUAAz6MS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAxjb1I0wK4WuoA
AACkBAAAeQAYAAAAAAABAAAApIGz2AUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X2xvYWRl
ZG1ldGFkYXRhX25vYXV0b3BsYXktc3RkZXJyLnR4dFVUBQADPoxLV3V4CwABBPUBAAAEUAAAAFBL
AQIeAxQAAgAIADGNvUjjf1jh6gAAAKQEAABpABgAAAAAAAEAAACkgVDaBQBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEt
ZWxlbWVudHMvZXZlbnRfbG9hZHN0YXJ0LXN0ZGVyci50eHRVVAUAAz6MS1d1eAsAAQT1AQAABFAA
AABQSwECHgMUAAIACAAyjb1IjHQyK+sAAACkBAAAdAAYAAAAAAABAAAApIHd2wUAaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21l
ZGlhLWVsZW1lbnRzL2V2ZW50X2xvYWRzdGFydF9ub2F1dG9wbGF5LXN0ZGVyci50eHRVVAUAAz+M
S1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAyjb1Ih0fQ9+sAAABMBQAAfAAYAAAAAAABAAAA
pIF23QUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJl
ZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X29yZGVyX2NhbnBsYXlfY2FucGxheXRo
cm91Z2gtc3RkZXJyLnR4dFVUBQADP4xLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADKNvUjP
bdyC9QAAAMwGAAB1ABgAAAAAAAEAAACkgRffBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRf
b3JkZXJfY2FucGxheV9wbGF5aW5nLXN0ZGVyci50eHRVVAUAA0CMS1d1eAsAAQT1AQAABFAAAABQ
SwECHgMUAAIACAAzjb1IOKRHdPAAAAAMBgAAfwAYAAAAAAABAAAApIG74AUAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlh
LWVsZW1lbnRzL2V2ZW50X29yZGVyX2xvYWRlZG1ldGFkYXRhX2xvYWRlZGRhdGEtc3RkZXJyLnR4
dFVUBQADQYxLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADONvUhNnpxMWAAAALIAAAB4ABgA
AAAAAAEAAACkgWTiBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfb3JkZXJfbG9hZHN0YXJ0
X3Byb2dyZXNzLWFjdHVhbC50eHRVVAUAA0GMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAz
jb1I3aST2l0BAAB1AwAAdgAYAAAAAAABAAAApIFu4wUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2
ZW50X29yZGVyX2xvYWRzdGFydF9wcm9ncmVzcy1kaWZmLnR4dFVUBQADQYxLV3V4CwABBPUBAAAE
UAAAAFBLAQIeAxQAAgAIADONvUiqCzH0eQAAACcBAAB6ABgAAAAAAAEAAACkgXvlBQBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQv
bWVkaWEtZWxlbWVudHMvZXZlbnRfb3JkZXJfbG9hZHN0YXJ0X3Byb2dyZXNzLWV4cGVjdGVkLnR4
dFVUBQADQYxLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADONvUgQbgDKUAgAAPYfAAB+ABgA
AAAAAAEAAACkgajmBQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfb3JkZXJfbG9hZHN0YXJ0
X3Byb2dyZXNzLXByZXR0eS1kaWZmLmh0bWxVVAUAA0GMS1d1eAsAAQT1AQAABFAAAABQSwECHgMU
AAIACAAzjb1I7GkB14QAAADAAAAAeAAYAAAAAAABAAAApIGw7wUAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1l
bnRzL2V2ZW50X29yZGVyX2xvYWRzdGFydF9wcm9ncmVzcy1zdGRlcnIudHh0VVQFAANBjEtXdXgL
AAEE9QEAAARQAAAAUEsBAh4DFAACAAgAM429SGy8U8vvAAAATAUAAGUAGAAAAAAAAQAAAKSB5vAF
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQt
Y29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9wYXVzZS1zdGRlcnIudHh0VVQFAANCjEtXdXgL
AAEE9QEAAARQAAAAUEsBAh4DFAACAAgAMIu9SH/L9e9vAgAAzAkAAHAAGAAAAAAAAQAAAKSBdPIF
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQt
Y29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9wYXVzZV9ub2F1dG9wbGF5LWFjdHVhbC50eHRV
VAUAA3uIS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAwi71IS/he9GMDAAB7DAAAbgAYAAAA
AAABAAAApIGN9QUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X3BhdXNlX25vYXV0b3BsYXkt
ZGlmZi50eHRVVAUAA3uIS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAwi71In6r52m8AAADx
AAAAcgAYAAAAAAABAAAApIGY+QUAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X3BhdXNlX25v
YXV0b3BsYXktZXhwZWN0ZWQudHh0VVQFAAN7iEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA
MIu9SEDOYMAkCwAAnEUAAHYAGAAAAAAAAQAAAKSBs/oFAGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9l
dmVudF9wYXVzZV9ub2F1dG9wbGF5LXByZXR0eS1kaWZmLmh0bWxVVAUAA3uIS1d1eAsAAQT1AQAA
BFAAAABQSwECHgMUAAIACAAzjb1IN/xsR+oAAACkBAAAcAAYAAAAAAABAAAApIGHBgYAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50
L21lZGlhLWVsZW1lbnRzL2V2ZW50X3BhdXNlX25vYXV0b3BsYXktc3RkZXJyLnR4dFVUBQADQoxL
V3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADCLvUhNnpxMWAAAALIAAABkABgAAAAAAAEAAACk
gRsIBgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVk
ZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfcGxheS1hY3R1YWwudHh0VVQFAAN7iEtX
dXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAMIu9SGeuBzZDAQAA/wIAAGIAGAAAAAAAAQAAAKSB
EQkGAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRk
ZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9wbGF5LWRpZmYudHh0VVQFAAN7iEtXdXgL
AAEE9QEAAARQAAAAUEsBAh4DFAACAAgAMIu9SLPVYSxoAAAA2QAAAGYAGAAAAAAAAQAAAKSB8AoG
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQt
Y29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9wbGF5LWV4cGVjdGVkLnR4dFVUBQADe4hLV3V4
CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADCLvUi6bDVyNwgAAJQfAABqABgAAAAAAAEAAACkgfgL
BgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVk
LWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfcGxheS1wcmV0dHktZGlmZi5odG1sVVQFAAN7
iEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAM429SE+Q+lDrAAAA8gQAAGQAGAAAAAAAAQAA
AKSB0xQGAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1i
ZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9wbGF5LXN0ZGVyci50eHRVVAUAA0KM
S1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAA0jb1I4hWiBbIAAABoAQAAbwAYAAAAAAABAAAA
pIFcFgYAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJl
ZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X3BsYXlfbm9hdXRvcGxheS1hY3R1YWwu
dHh0VVQFAANDjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgANI29SKS93GCUAQAArgMAAG0A
GAAAAAAAAQAAAKSBtxcGAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9wbGF5X25vYXV0b3Bs
YXktZGlmZi50eHRVVAUAA0OMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAA0jb1Iy/nu510A
AAC5AAAAcQAYAAAAAAABAAAApIHyGQYAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X3BsYXlf
bm9hdXRvcGxheS1leHBlY3RlZC50eHRVVAUAA0OMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIA
CAA0jb1IgrbyqpYIAAAmIgAAdQAYAAAAAAABAAAApIH6GgYAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRz
L2V2ZW50X3BsYXlfbm9hdXRvcGxheS1wcmV0dHktZGlmZi5odG1sVVQFAANDjEtXdXgLAAEE9QEA
AARQAAAAUEsBAh4DFAACAAgANI29SN9FMhuIAAAAGgEAAG8AGAAAAAAAAQAAAKSBPyQGAGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVu
dC9tZWRpYS1lbGVtZW50cy9ldmVudF9wbGF5X25vYXV0b3BsYXktc3RkZXJyLnR4dFVUBQADQ4xL
V3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADSNvUjiFaIFsgAAAGgBAABnABgAAAAAAAEAAACk
gXAlBgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVk
ZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfcGxheWluZy1hY3R1YWwudHh0VVQFAAND
jEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgANI29SOloeveZAQAAygMAAGUAGAAAAAAAAQAA
AKSBwyYGAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1i
ZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9wbGF5aW5nLWRpZmYudHh0VVQFAAND
jEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgANI29SDzJwbtrAAAA5QAAAGkAGAAAAAAAAQAA
AKSB+ygGAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1i
ZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9wbGF5aW5nLWV4cGVjdGVkLnR4dFVU
BQADQ4xLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADSNvUjIGGD4mQgAAEoiAABtABgAAAAA
AAEAAACkgQkqBgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfcGxheWluZy1wcmV0dHktZGlm
Zi5odG1sVVQFAANDjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgANI29SCJr7E6EAAAAwAAA
AGcAGAAAAAAAAQAAAKSBSTMGAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9z
ZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9wbGF5aW5nLXN0
ZGVyci50eHRVVAUAA0OMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAA0jb1I4hWiBbIAAABo
AQAAcgAYAAAAAAABAAAApIFuNAYAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X3BsYXlpbmdf
bm9hdXRvcGxheS1hY3R1YWwudHh0VVQFAANDjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA
NI29SKvJp5CXAQAAwAMAAHAAGAAAAAAAAQAAAKSBzDUGAGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9l
dmVudF9wbGF5aW5nX25vYXV0b3BsYXktZGlmZi50eHRVVAUAA0OMS1d1eAsAAQT1AQAABFAAAABQ
SwECHgMUAAIACAA0jb1IAJNobGEAAADFAAAAdAAYAAAAAAABAAAApIENOAYAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlh
LWVsZW1lbnRzL2V2ZW50X3BsYXlpbmdfbm9hdXRvcGxheS1leHBlY3RlZC50eHRVVAUAA0OMS1d1
eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAA0jb1IoW4Qv5cIAAA1IgAAeAAYAAAAAAABAAAApIEc
OQYAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRl
ZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X3BsYXlpbmdfbm9hdXRvcGxheS1wcmV0dHkt
ZGlmZi5odG1sVVQFAANDjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAMIu9SE2enExYAAAA
sgAAAGgAGAAAAAAAAQAAAKSBZUIGAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9wcm9ncmVz
cy1hY3R1YWwudHh0VVQFAAN8iEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAMIu9SFxeCV1I
AQAAFwMAAGYAGAAAAAAAAQAAAKSBX0MGAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9wcm9n
cmVzcy1kaWZmLnR4dFVUBQADfIhLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADCLvUhBeIfm
bAAAAOkAAABqABgAAAAAAAEAAACkgUdFBgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfcHJv
Z3Jlc3MtZXhwZWN0ZWQudHh0VVQFAAN8iEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAMIu9
SFjx12s8CAAAqB8AAG4AGAAAAAAAAQAAAKSBV0YGAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVu
dF9wcm9ncmVzcy1wcmV0dHktZGlmZi5odG1sVVQFAAN8iEtXdXgLAAEE9QEAAARQAAAAUEsBAh4D
FAACAAgAMIu9SE2enExYAAAAsgAAAHMAGAAAAAAAAQAAAKSBO08GAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVt
ZW50cy9ldmVudF9wcm9ncmVzc19ub2F1dG9wbGF5LWFjdHVhbC50eHRVVAUAA3yIS1d1eAsAAQT1
AQAABFAAAABQSwECHgMUAAIACAAwi71IFgASCE4BAAA1AwAAcQAYAAAAAAABAAAApIFAUAYAaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250
ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X3Byb2dyZXNzX25vYXV0b3BsYXktZGlmZi50eHRVVAUA
A3yIS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAwi71IDmbg828AAADxAAAAdQAYAAAAAAAB
AAAApIE5UgYAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9l
bWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X3Byb2dyZXNzX25vYXV0b3BsYXkt
ZXhwZWN0ZWQudHh0VVQFAAN8iEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAALYu9SAAAAAAA
AAAAAAAAAFoAGAAAAAAAAAAQAO1BV1MGAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9pbnRlcmZhY2Vz
L1VUBQADdYhLV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAC2LvUgAAAAAAAAAAAAAAABkABgA
AAAAAAAAEADtQetTBgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvaW50ZXJmYWNlcy9UZXh0VHJhY2sv
VVQFAAN1iEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAMI29SD7os3jKAAAA3QEAAHkAGAAA
AAAAAQAAAKSBiVQGAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9pbnRlcmZhY2VzL1RleHRUcmFjay9h
Y3RpdmVDdWVzLXN0ZGVyci50eHRVVAUAAzyMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAx
jb1IVf2O0IcAAADAAAAAdQAYAAAAAAABAAAApIEGVgYAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2lu
dGVyZmFjZXMvVGV4dFRyYWNrL2FkZEN1ZS1zdGRlcnIudHh0VVQFAAM9jEtXdXgLAAEE9QEAAARQ
AAAAUEsBAh4DCgAAAAAALou9SAAAAAAAAAAAAAAAAGoAGAAAAAAAAAAQAO1BPFcGAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9t
ZWRpYS1lbGVtZW50cy9wbGF5aW5nLXRoZS1tZWRpYS1yZXNvdXJjZS9VVAUAA3eIS1d1eAsAAQT1
AQAABFAAAABQSwECHgMUAAIACAAxjb1IaZ2SOrsAAADsAQAAkQAYAAAAAAABAAAApIHgVwYAaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250
ZW50L21lZGlhLWVsZW1lbnRzL3BsYXlpbmctdGhlLW1lZGlhLXJlc291cmNlL3BhdXNlLW1vdmUt
dG8tb3RoZXItZG9jdW1lbnQtc3RkZXJyLnR4dFVUBQADPYxLV3V4CwABBPUBAAAEUAAAAFBLAQIe
AxQAAgAIADGNvUiFOk714gAAAKwCAACPABgAAAAAAAEAAACkgWZZBgBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxl
bWVudHMvcGxheWluZy10aGUtbWVkaWEtcmVzb3VyY2UvcGF1c2UtbW92ZS13aXRoaW4tZG9jdW1l
bnQtc3RkZXJyLnR4dFVUBQADPYxLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADGNvUiC7uEo
4gAAAKwCAACPABgAAAAAAAEAAACkgRFbBgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvcGxheWluZy10
aGUtbWVkaWEtcmVzb3VyY2UvcGF1c2UtcmVtb3ZlLWZyb20tZG9jdW1lbnQtc3RkZXJyLnR4dFVU
BQADPoxLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADGNvUhW1ZqlhAAAAMAAAACBABgAAAAA
AAEAAACkgbxcBgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvcGxheWluZy10aGUtbWVkaWEtcmVzb3Vy
Y2UvcGxheWJhY2tSYXRlLXN0ZGVyci50eHRVVAUAAz6MS1d1eAsAAQT1AQAABFAAAABQSwECHgMK
AAAAAAAti71IAAAAAAAAAAAAAAAAVQAYAAAAAAAAABAA7UH7XQYAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1l
bnRzL3RyYWNrL1VUBQADdohLV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAC2LvUgAAAAAAAAA
AAAAAABjABgAAAAAAAAAEADtQYpeBgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvdHJhY2svdHJhY2st
ZWxlbWVudC9VVAUAA3aIS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAxjb1Ity229e4AAACh
AQAAggAYAAAAAAABAAAApIEnXwYAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3RyYWNrL3RyYWNrLWVs
ZW1lbnQvdHJhY2stYXBpLXRleHR0cmFja3Mtc3RkZXJyLnR4dFVUBQADPYxLV3V4CwABBPUBAAAE
UAAAAFBLAQIeAwoAAAAAAC2LvUgAAAAAAAAAAAAAAABeABgAAAAAAAAAEADtQdFgBgBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQv
bWVkaWEtZWxlbWVudHMvdXNlci1pbnRlcmZhY2UvVVQFAAN2iEtXdXgLAAEE9QEAAARQAAAAUEsB
Ah4DFAACAAgAMY29SNs3+hSEAAAAwAAAAG4AGAAAAAAAAQAAAKSBaWEGAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1l
bGVtZW50cy91c2VyLWludGVyZmFjZS9tdXRlZC1zdGRlcnIudHh0VVQFAAM9jEtXdXgLAAEE9QEA
AARQAAAAUEsBAh4DCgAAAAAALYu9SAAAAAAAAAAAAAAAAFIAGAAAAAAAAAAQAO1BlWIGAGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVu
dC90aGUtYXVkaW8tZWxlbWVudC9VVAUAA3aIS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAx
jb1IR1SUfN0AAADQAgAAbgAYAAAAAAABAAAApIEhYwYAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L3RoZS1hdWRpby1lbGVtZW50
L2F1ZGlvX2NvbnN0cnVjdG9yLXN0ZGVyci50eHRVVAUAAz6MS1d1eAsAAQT1AQAABFAAAABQSwEC
HgMKAAAAAAAzjb1IAAAAAAAAAAAAAAAAUwAYAAAAAAAAABAA7UGmZAYAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L3RoZS1jYW52
YXMtZWxlbWVudC9VVAUAA0GMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAwi71I4hWiBbIA
AABoAQAAeQAYAAAAAAABAAAApIEzZQYAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L3RoZS1jYW52YXMtZWxlbWVudC9zaXplLmF0
dHJpYnV0ZXMucGFyc2UuZW1wdHktYWN0dWFsLnR4dFVUBQADe4hLV3V4CwABBPUBAAAEUAAAAFBL
AQIeAxQAAgAIADCLvUiUDWN/iwEAAI8DAAB3ABgAAAAAAAEAAACkgZhmBgBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWNh
bnZhcy1lbGVtZW50L3NpemUuYXR0cmlidXRlcy5wYXJzZS5lbXB0eS1kaWZmLnR4dFVUBQADe4hL
V3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADCLvUjEWm/tYQAAAIcAAAB7ABgAAAAAAAEAAACk
gdRoBgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVk
ZGVkLWNvbnRlbnQvdGhlLWNhbnZhcy1lbGVtZW50L3NpemUuYXR0cmlidXRlcy5wYXJzZS5lbXB0
eS1leHBlY3RlZC50eHRVVAUAA3uIS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAwi71I7yfW
lc0IAADRIgAAfwAYAAAAAAABAAAApIHqaQYAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L3RoZS1jYW52YXMtZWxlbWVudC9zaXpl
LmF0dHJpYnV0ZXMucGFyc2UuZW1wdHktcHJldHR5LWRpZmYuaHRtbFVUBQADe4hLV3V4CwABBPUB
AAAEUAAAAFBLAQIeAxQAAgAIADCLvUjiFaIFsgAAAGgBAAB3ABgAAAAAAAEAAACkgXBzBgBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRl
bnQvdGhlLWNhbnZhcy1lbGVtZW50L3NpemUuYXR0cmlidXRlcy5wYXJzZS5leHAtYWN0dWFsLnR4
dFVUBQADe4hLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADCLvUj8M7s8iAEAAIkDAAB1ABgA
AAAAAAEAAACkgdN0BgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWNhbnZhcy1lbGVtZW50L3NpemUuYXR0cmlidXRlcy5w
YXJzZS5leHAtZGlmZi50eHRVVAUAA3uIS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAwi71I
x5pMFV8AAACFAAAAeQAYAAAAAAABAAAApIEKdwYAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L3RoZS1jYW52YXMtZWxlbWVudC9z
aXplLmF0dHJpYnV0ZXMucGFyc2UuZXhwLWV4cGVjdGVkLnR4dFVUBQADe4hLV3V4CwABBPUBAAAE
UAAAAFBLAQIeAxQAAgAIADCLvUg608Sj0AgAAOMiAAB9ABgAAAAAAAEAAACkgRx4BgBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQv
dGhlLWNhbnZhcy1lbGVtZW50L3NpemUuYXR0cmlidXRlcy5wYXJzZS5leHAtcHJldHR5LWRpZmYu
aHRtbFVUBQADe4hLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADONvUgFGQNaVAAAAHYAAAB3
ABgAAAAAAAEAAACkgaOBBgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWNhbnZhcy1lbGVtZW50L3NpemUuYXR0cmlidXRl
cy5wYXJzZS5oZXgtYWN0dWFsLnR4dFVUBQADQYxLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAI
ADONvUgorRNm4gAAAAsCAAB1ABgAAAAAAAEAAACkgaiCBgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWNhbnZhcy1lbGVt
ZW50L3NpemUuYXR0cmlidXRlcy5wYXJzZS5oZXgtZGlmZi50eHRVVAUAA0GMS1d1eAsAAQT1AQAA
BFAAAABQSwECHgMUAAIACAAzjb1Ieu0ybVMAAABzAAAAeQAYAAAAAAABAAAApIE5hAYAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50
L3RoZS1jYW52YXMtZWxlbWVudC9zaXplLmF0dHJpYnV0ZXMucGFyc2UuaGV4LWV4cGVjdGVkLnR4
dFVUBQADQYxLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADONvUiZJIsE1wcAAJMdAAB9ABgA
AAAAAAEAAACkgT+FBgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWNhbnZhcy1lbGVtZW50L3NpemUuYXR0cmlidXRlcy5w
YXJzZS5oZXgtcHJldHR5LWRpZmYuaHRtbFVUBQADQYxLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQA
AgAIADONvUjiFaIFsgAAAGgBAAB4ABgAAAAAAAEAAACkgc2NBgBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWNhbnZhcy1l
bGVtZW50L3NpemUuYXR0cmlidXRlcy5wYXJzZS5qdW5rLWFjdHVhbC50eHRVVAUAA0GMS1d1eAsA
AQT1AQAABFAAAABQSwECHgMUAAIACAAzjb1I4Zs20YsBAACMAwAAdgAYAAAAAAABAAAApIExjwYA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1j
b250ZW50L3RoZS1jYW52YXMtZWxlbWVudC9zaXplLmF0dHJpYnV0ZXMucGFyc2UuanVuay1kaWZm
LnR4dFVUBQADQYxLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADONvUjeAgIIYAAAAIYAAAB6
ABgAAAAAAAEAAACkgWyRBgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWNhbnZhcy1lbGVtZW50L3NpemUuYXR0cmlidXRl
cy5wYXJzZS5qdW5rLWV4cGVjdGVkLnR4dFVUBQADQYxLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQA
AgAIADONvUgoef/fzwgAAM8iAAB+ABgAAAAAAAEAAACkgYCSBgBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWNhbnZhcy1l
bGVtZW50L3NpemUuYXR0cmlidXRlcy5wYXJzZS5qdW5rLXByZXR0eS1kaWZmLmh0bWxVVAUAA0GM
S1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAzjb1I4hWiBbIAAABoAQAAeQAYAAAAAAABAAAA
pIEHnAYAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJl
ZGRlZC1jb250ZW50L3RoZS1jYW52YXMtZWxlbWVudC9zaXplLmF0dHJpYnV0ZXMucGFyc2UubWlu
dXMtYWN0dWFsLnR4dFVUBQADQYxLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADONvUjOieRU
igEAAI8DAAB3ABgAAAAAAAEAAACkgWydBgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWNhbnZhcy1lbGVtZW50L3NpemUu
YXR0cmlidXRlcy5wYXJzZS5taW51cy1kaWZmLnR4dFVUBQADQYxLV3V4CwABBPUBAAAEUAAAAFBL
AQIeAxQAAgAIADONvUipL9SRYAAAAIcAAAB7ABgAAAAAAAEAAACkgaefBgBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWNh
bnZhcy1lbGVtZW50L3NpemUuYXR0cmlidXRlcy5wYXJzZS5taW51cy1leHBlY3RlZC50eHRVVAUA
A0GMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAzjb1I/U2VLM4IAADRIgAAfwAYAAAAAAAB
AAAApIG8oAYAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9l
bWJlZGRlZC1jb250ZW50L3RoZS1jYW52YXMtZWxlbWVudC9zaXplLmF0dHJpYnV0ZXMucGFyc2Uu
bWludXMtcHJldHR5LWRpZmYuaHRtbFVUBQADQYxLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAI
ADCLvUjiFaIFsgAAAGgBAAB5ABgAAAAAAAEAAACkgUOqBgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWNhbnZhcy1lbGVt
ZW50L3NpemUuYXR0cmlidXRlcy5wYXJzZS5vY3RhbC1hY3R1YWwudHh0VVQFAAN8iEtXdXgLAAEE
9QEAAARQAAAAUEsBAh4DFAACAAgAMIu9SB+11JKLAQAAjwMAAHcAGAAAAAAAAQAAAKSBqKsGAGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29u
dGVudC90aGUtY2FudmFzLWVsZW1lbnQvc2l6ZS5hdHRyaWJ1dGVzLnBhcnNlLm9jdGFsLWRpZmYu
dHh0VVQFAAN8iEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAMIu9SJE7dQNhAAAAhwAAAHsA
GAAAAAAAAQAAAKSB5K0GAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3MvZW1iZWRkZWQtY29udGVudC90aGUtY2FudmFzLWVsZW1lbnQvc2l6ZS5hdHRyaWJ1dGVz
LnBhcnNlLm9jdGFsLWV4cGVjdGVkLnR4dFVUBQADfIhLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQA
AgAIADCLvUifBSf2zggAANEiAAB/ABgAAAAAAAEAAACkgfquBgBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWNhbnZhcy1l
bGVtZW50L3NpemUuYXR0cmlidXRlcy5wYXJzZS5vY3RhbC1wcmV0dHktZGlmZi5odG1sVVQFAAN8
iEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAMIu9SOIVogWyAAAAaAEAAH0AGAAAAAAAAQAA
AKSBgbgGAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1i
ZWRkZWQtY29udGVudC90aGUtY2FudmFzLWVsZW1lbnQvc2l6ZS5hdHRyaWJ1dGVzLnBhcnNlLm9u
bHlzcGFjZS1hY3R1YWwudHh0VVQFAAN8iEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAMIu9
SE6OIxiNAQAAmwMAAHsAGAAAAAAAAQAAAKSB6rkGAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC90aGUtY2FudmFzLWVsZW1lbnQv
c2l6ZS5hdHRyaWJ1dGVzLnBhcnNlLm9ubHlzcGFjZS1kaWZmLnR4dFVUBQADfIhLV3V4CwABBPUB
AAAEUAAAAFBLAQIeAxQAAgAIADCLvUjxIf1NYwAAAIsAAAB/ABgAAAAAAAEAAACkgSy8BgBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRl
bnQvdGhlLWNhbnZhcy1lbGVtZW50L3NpemUuYXR0cmlidXRlcy5wYXJzZS5vbmx5c3BhY2UtZXhw
ZWN0ZWQudHh0VVQFAAN8iEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAM429SAAAAAAAAAAA
AAAAADUAGAAAAAAAAAAQAO1BSL0GAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3MvZm9ybXMvVVQFAANBjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAM429
SAAAAAAAAAAAAAAAAEEAGAAAAAAAAAAQAO1Bt70GAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvY29uc3RyYWludHMvVVQFAANBjEtXdXgLAAEE9QEA
AARQAAAAUEsBAh4DFAACAAgAM429SE2enExYAAAAsgAAAG0AGAAAAAAAAQAAAKSBMr4GAGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvY29uc3RyYWlu
dHMvZm9ybS12YWxpZGF0aW9uLXZhbGlkaXR5LXRvb1Nob3J0LWFjdHVhbC50eHRVVAUAA0GMS1d1
eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAzjb1ISoQBAMACAABXKAAAawAYAAAAAAABAAAApIEx
vwYAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy9j
b25zdHJhaW50cy9mb3JtLXZhbGlkYXRpb24tdmFsaWRpdHktdG9vU2hvcnQtZGlmZi50eHRVVAUA
A0GMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAzjb1Ieln1UNwBAADlJQAAbwAYAAAAAAAB
AAAApIGWwgYAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9m
b3Jtcy9jb25zdHJhaW50cy9mb3JtLXZhbGlkYXRpb24tdmFsaWRpdHktdG9vU2hvcnQtZXhwZWN0
ZWQudHh0VVQFAANBjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAM429SH0WuM10CgAAtmcA
AHMAGAAAAAAAAQAAAKSBG8UGAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9z
ZW1hbnRpY3MvZm9ybXMvY29uc3RyYWludHMvZm9ybS12YWxpZGF0aW9uLXZhbGlkaXR5LXRvb1No
b3J0LXByZXR0eS1kaWZmLmh0bWxVVAUAA0GMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAz
jb1ITZ6cTFgAAACyAAAAcQAYAAAAAAABAAAApIE80AYAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy9jb25zdHJhaW50cy9mb3JtLXZhbGlkYXRpb24t
dmFsaWRpdHktdHlwZU1pc21hdGNoLWFjdHVhbC50eHRVVAUAA0GMS1d1eAsAAQT1AQAABFAAAABQ
SwECHgMUAAIACAAzjb1IBl0yeokBAAAHBQAAbwAYAAAAAAABAAAApIE/0QYAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy9jb25zdHJhaW50cy9mb3Jt
LXZhbGlkYXRpb24tdmFsaWRpdHktdHlwZU1pc21hdGNoLWRpZmYudHh0VVQFAANBjEtXdXgLAAEE
9QEAAARQAAAAUEsBAh4DFAACAAgAM429SB5YDXSlAAAAwQIAAHMAGAAAAAAAAQAAAKSBcdMGAGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvY29uc3Ry
YWludHMvZm9ybS12YWxpZGF0aW9uLXZhbGlkaXR5LXR5cGVNaXNtYXRjaC1leHBlY3RlZC50eHRV
VAUAA0GMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAzjb1IZ2CcwYkIAACGJAAAdwAYAAAA
AAABAAAApIHD1AYAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9mb3Jtcy9jb25zdHJhaW50cy9mb3JtLXZhbGlkYXRpb24tdmFsaWRpdHktdHlwZU1pc21hdGNo
LXByZXR0eS1kaWZmLmh0bWxVVAUAA0GMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAzjb1I
TZ6cTFgAAACyAAAAagAYAAAAAAABAAAApIH93QYAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy9jb25zdHJhaW50cy9mb3JtLXZhbGlkYXRpb24tdmFs
aWRpdHktdmFsaWQtYWN0dWFsLnR4dFVUBQADQYxLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAI
ADONvUjMlyFLlwIAACwRAABoABgAAAAAAAEAAACkgfneBgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL2NvbnN0cmFpbnRzL2Zvcm0tdmFsaWRhdGlv
bi12YWxpZGl0eS12YWxpZC1kaWZmLnR4dFVUBQADQYxLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQA
AgAIADONvUgYWdxTtwEAAN0OAABsABgAAAAAAAEAAACkgTLiBgBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL2NvbnN0cmFpbnRzL2Zvcm0tdmFsaWRh
dGlvbi12YWxpZGl0eS12YWxpZC1leHBlY3RlZC50eHRVVAUAA0GMS1d1eAsAAQT1AQAABFAAAABQ
SwECHgMUAAIACAAzjb1I3pJjSgIKAAC+PgAAcAAYAAAAAAABAAAApIGP5AYAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy9jb25zdHJhaW50cy9mb3Jt
LXZhbGlkYXRpb24tdmFsaWRpdHktdmFsaWQtcHJldHR5LWRpZmYuaHRtbFVUBQADQYxLV3V4CwAB
BPUBAAAEUAAAAFBLAQIeAwoAAAAAADSNvUgAAAAAAAAAAAAAAABHABgAAAAAAAAAEADtQTvvBgBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1p
bnB1dC1lbGVtZW50L1VUBQADQ4xLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADONvUhNnpxM
WAAAALIAAABoABgAAAAAAAEAAACkgbzvBgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1lbGVtZW50L2lucHV0LXRleHRzZWxlY3Rp
b24tMDEtYWN0dWFsLnR4dFVUBQADQYxLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADONvUhL
B/mpRwIAAHcNAABmABgAAAAAAAEAAACkgbbwBgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1lbGVtZW50L2lucHV0LXRleHRzZWxl
Y3Rpb24tMDEtZGlmZi50eHRVVAUAA0GMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAzjb1I
jh1h5W4BAAA4CwAAagAYAAAAAAABAAAApIGd8wYAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudC9pbnB1dC10ZXh0c2Vs
ZWN0aW9uLTAxLWV4cGVjdGVkLnR4dFVUBQADQYxLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAI
ADONvUhBqzTtiAkAAGM0AABuABgAAAAAAAEAAACkga/1BgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1lbGVtZW50L2lucHV0LXRl
eHRzZWxlY3Rpb24tMDEtcHJldHR5LWRpZmYuaHRtbFVUBQADQYxLV3V4CwABBPUBAAAEUAAAAFBL
AQIeAxQAAgAIADONvUhNnpxMWAAAALIAAABjABgAAAAAAAEAAACkgd//BgBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1lbGVtZW50
L2lucHV0LXR5cGUtYnV0dG9uLWFjdHVhbC50eHRVVAUAA0GMS1d1eAsAAQT1AQAABFAAAABQSwEC
HgMUAAIACAAzjb1I/C7KAUcBAADbAgAAYQAYAAAAAAABAAAApIHUAAcAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudC9p
bnB1dC10eXBlLWJ1dHRvbi1kaWZmLnR4dFVUBQADQYxLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQA
AgAIADONvUhWmjlObwAAALkAAABlABgAAAAAAAEAAACkgbYCBwBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1lbGVtZW50L2lucHV0
LXR5cGUtYnV0dG9uLWV4cGVjdGVkLnR4dFVUBQADQYxLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQA
AgAIADONvUhfCfnwMggAAEceAABpABgAAAAAAAEAAACkgcQDBwBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1lbGVtZW50L2lucHV0
LXR5cGUtYnV0dG9uLXByZXR0eS1kaWZmLmh0bWxVVAUAA0GMS1d1eAsAAQT1AQAABFAAAABQSwEC
HgMUAAIACAAzjb1I4hWiBbIAAABoAQAAWAAYAAAAAAABAAAApIGZDAcAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudC90
aW1lLTItYWN0dWFsLnR4dFVUBQADQoxLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADONvUgB
k9nBOwIAAP8HAABWABgAAAAAAAEAAACkgd0NBwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1lbGVtZW50L3RpbWUtMi1kaWZmLnR4
dFVUBQADQoxLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADONvUhudr/zFQEAAC0FAABaABgA
AAAAAAEAAACkgagQBwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL2Zvcm1zL3RoZS1pbnB1dC1lbGVtZW50L3RpbWUtMi1leHBlY3RlZC50eHRVVAUAA0KMS1d1
eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAA0jb1I5hbb+W0JAABGLQAAXgAYAAAAAAABAAAApIFR
EgcAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90
aGUtaW5wdXQtZWxlbWVudC90aW1lLTItcHJldHR5LWRpZmYuaHRtbFVUBQADQ4xLV3V4CwABBPUB
AAAEUAAAAFBLAQIeAxQAAgAIADSNvUjiFaIFsgAAAGgBAABWABgAAAAAAAEAAACkgVYcBwBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1
dC1lbGVtZW50L3RpbWUtYWN0dWFsLnR4dFVUBQADQ4xLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQA
AgAIADSNvUiFU4rAugIAADILAABUABgAAAAAAAEAAACkgZgdBwBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1lbGVtZW50L3RpbWUt
ZGlmZi50eHRVVAUAA0OMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAA0jb1InNQb7pcBAABT
CAAAWAAYAAAAAAABAAAApIHgIAcAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L3NlbWFudGljcy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudC90aW1lLWV4cGVjdGVkLnR4dFVUBQAD
Q4xLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADSNvUjhlpVSHAoAAPI5AABcABgAAAAAAAEA
AACkgQkjBwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zv
cm1zL3RoZS1pbnB1dC1lbGVtZW50L3RpbWUtcHJldHR5LWRpZmYuaHRtbFVUBQADQ4xLV3V4CwAB
BPUBAAAEUAAAAFBLAQIeAxQAAgAIADSNvUjiFaIFsgAAAGgBAABjABgAAAAAAAEAAACkgbstBwBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1p
bnB1dC1lbGVtZW50L3R5cGUtY2hhbmdlLXN0YXRlLWFjdHVhbC50eHRVVAUAA0OMS1d1eAsAAQT1
AQAABFAAAABQSwECHgMUAAIACAA0jb1IAum0FbEJAACPqAAAYQAYAAAAAAABAAAApIEKLwcAaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90aGUtaW5w
dXQtZWxlbWVudC90eXBlLWNoYW5nZS1zdGF0ZS1kaWZmLnR4dFVUBQADQ4xLV3V4CwABBPUBAAAE
UAAAAFBLAQIeAxQAAgAIADSNvUhVyAOpUwgAAOmjAABlABgAAAAAAAEAAACkgVY5BwBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1l
bGVtZW50L3R5cGUtY2hhbmdlLXN0YXRlLWV4cGVjdGVkLnR4dFVUBQADQ4xLV3V4CwABBPUBAAAE
UAAAAFBLAQIeAxQAAgAIADSNvUjx06A8mBYAAHbsAQBpABgAAAAAAAEAAACkgUhCBwBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1l
bGVtZW50L3R5cGUtY2hhbmdlLXN0YXRlLXByZXR0eS1kaWZmLmh0bWxVVAUAA0OMS1d1eAsAAQT1
AQAABFAAAABQSwECHgMUAAIACAA0jb1I4hWiBbIAAABoAQAAVQAYAAAAAAABAAAApIGDWQcAaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90aGUtaW5w
dXQtZWxlbWVudC91cmwtYWN0dWFsLnR4dFVUBQADQ4xLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQA
AgAIADSNvUhc73XUzQEAAP4DAABTABgAAAAAAAEAAACkgcRaBwBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1lbGVtZW50L3VybC1k
aWZmLnR4dFVUBQADQ4xLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADSNvUgr3qjwsAAAAD4B
AABXABgAAAAAAAEAAACkgR5dBwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
c2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1lbGVtZW50L3VybC1leHBlY3RlZC50eHRVVAUAA0OM
S1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAwi71IGPoca20IAABmHwAAWwAYAAAAAAABAAAA
pIFfXgcAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jt
cy90aGUtaW5wdXQtZWxlbWVudC91cmwtcHJldHR5LWRpZmYuaHRtbFVUBQADe4hLV3V4CwABBPUB
AAAEUAAAAFBLAQIeAxQAAgAIADCLvUhNnpxMWAAAALIAAABbABgAAAAAAAEAAACkgWFnBwBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1
dC1lbGVtZW50L3ZhbHVlTW9kZS1hY3R1YWwudHh0VVQFAAN7iEtXdXgLAAEE9QEAAARQAAAAUEsB
Ah4DFAACAAgAMIu9SI7NvN8dAgAAXBEAAFkAGAAAAAAAAQAAAKSBTmgHAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0LWVsZW1lbnQv
dmFsdWVNb2RlLWRpZmYudHh0VVQFAAN7iEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAMIu9
SOyl5G0/AQAAJA8AAF0AGAAAAAAAAQAAAKSB/moHAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0LWVsZW1lbnQvdmFsdWVNb2RlLWV4
cGVjdGVkLnR4dFVUBQADe4hLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADCLvUiuiOdkiQkA
AKFEAABhABgAAAAAAAEAAACkgdRsBwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1lbGVtZW50L3ZhbHVlTW9kZS1wcmV0dHktZGlm
Zi5odG1sVVQFAAN7iEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAMIu9SE2enExYAAAAsgAA
AFYAGAAAAAAAAQAAAKSB+HYHAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9z
ZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0LWVsZW1lbnQvd2Vlay1hY3R1YWwudHh0VVQFAAN7iEtX
dXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAMIu9SCze21fLAQAATQUAAFQAGAAAAAAAAQAAAKSB
4HcHAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMv
dGhlLWlucHV0LWVsZW1lbnQvd2Vlay1kaWZmLnR4dFVUBQADe4hLV3V4CwABBPUBAAAEUAAAAFBL
AQIeAxQAAgAIADCLvUhMlheJ/wAAADwDAABYABgAAAAAAAEAAACkgTl6BwBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1lbGVtZW50
L3dlZWstZXhwZWN0ZWQudHh0VVQFAAN7iEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAMIu9
SNYi9hHtCAAAOyYAAFwAGAAAAAAAAQAAAKSBynsHAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0LWVsZW1lbnQvd2Vlay1wcmV0dHkt
ZGlmZi5odG1sVVQFAAN8iEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAM429SAAAAAAAAAAA
AAAAAEAAGAAAAAAAAAAQAO1BTYUHAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3MvZ3JvdXBpbmctY29udGVudC9VVAUAA0GMS1d1eAsAAQT1AQAABFAAAABQSwEC
HgMKAAAAAAAzjb1IAAAAAAAAAAAAAAAATwAYAAAAAAAAABAA7UHHhQcAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9ncm91cGluZy1jb250ZW50L3RoZS1kdC1l
bGVtZW50L1VUBQADQYxLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADONvUjdVh8a6QIAADMN
AABlABgAAAAAAAEAAACkgVCGBwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
c2VtYW50aWNzL2dyb3VwaW5nLWNvbnRlbnQvdGhlLWR0LWVsZW1lbnQvZ3JvdXBpbmctZHQtYWN0
dWFsLnR4dFVUBQADQYxLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADONvUgUREinlQMAAEgP
AABjABgAAAAAAAEAAACkgdiJBwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
c2VtYW50aWNzL2dyb3VwaW5nLWNvbnRlbnQvdGhlLWR0LWVsZW1lbnQvZ3JvdXBpbmctZHQtZGlm
Zi50eHRVVAUAA0GMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAzjb1IpuAlUVcAAABoAAAA
ZwAYAAAAAAABAAAApIEKjgcAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3Nl
bWFudGljcy9ncm91cGluZy1jb250ZW50L3RoZS1kdC1lbGVtZW50L2dyb3VwaW5nLWR0LWV4cGVj
dGVkLnR4dFVUBQADQYxLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADONvUiYYcyhbgsAANdL
AABrABgAAAAAAAEAAACkgQKPBwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
c2VtYW50aWNzL2dyb3VwaW5nLWNvbnRlbnQvdGhlLWR0LWVsZW1lbnQvZ3JvdXBpbmctZHQtcHJl
dHR5LWRpZmYuaHRtbFVUBQADQYxLV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAADONvUgAAAAA
AAAAAAAAAABXABgAAAAAAAAAEADtQRWbBwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL2dyb3VwaW5nLWNvbnRlbnQvdGhlLWZpZ2NhcHRpb24tZWxlbWVudC9V
VAUAA0GMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAzjb1IEp7tLhABAABlAgAAdQAYAAAA
AAABAAAApIGmmwcAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9ncm91cGluZy1jb250ZW50L3RoZS1maWdjYXB0aW9uLWVsZW1lbnQvZ3JvdXBpbmctZmlnY2Fw
dGlvbi1hY3R1YWwudHh0VVQFAANBjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAM429SBQ0
fMTFAQAAegQAAHMAGAAAAAAAAQAAAKSBZZ0HAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zZW1hbnRpY3MvZ3JvdXBpbmctY29udGVudC90aGUtZmlnY2FwdGlvbi1lbGVtZW50
L2dyb3VwaW5nLWZpZ2NhcHRpb24tZGlmZi50eHRVVAUAA0GMS1d1eAsAAQT1AQAABFAAAABQSwEC
HgMUAAIACAAzjb1IS2RFmVwAAAB4AAAAdwAYAAAAAAABAAAApIHXnwcAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9ncm91cGluZy1jb250ZW50L3RoZS1maWdj
YXB0aW9uLWVsZW1lbnQvZ3JvdXBpbmctZmlnY2FwdGlvbi1leHBlY3RlZC50eHRVVAUAA0GMS1d1
eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAzjb1InozAsNgIAACLJAAAewAYAAAAAAABAAAApIHk
oAcAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9ncm91cGlu
Zy1jb250ZW50L3RoZS1maWdjYXB0aW9uLWVsZW1lbnQvZ3JvdXBpbmctZmlnY2FwdGlvbi1wcmV0
dHktZGlmZi5odG1sVVQFAANBjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAM429SAAAAAAA
AAAAAAAAAFMAGAAAAAAAAAAQAO1BcaoHAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9zZW1hbnRpY3MvZ3JvdXBpbmctY29udGVudC90aGUtZmlndXJlLWVsZW1lbnQvVVQFAANB
jEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAM429SK/dYOkQAQAAYQIAAG0AGAAAAAAAAQAA
AKSB/qoHAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZ3Jv
dXBpbmctY29udGVudC90aGUtZmlndXJlLWVsZW1lbnQvZ3JvdXBpbmctZmlndXJlLWFjdHVhbC50
eHRVVAUAA0GMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAzjb1ImEBdzcMBAABeBAAAawAY
AAAAAAABAAAApIG1rAcAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFu
dGljcy9ncm91cGluZy1jb250ZW50L3RoZS1maWd1cmUtZWxlbWVudC9ncm91cGluZy1maWd1cmUt
ZGlmZi50eHRVVAUAA0GMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAzjb1IqrgdRVoAAABw
AAAAbwAYAAAAAAABAAAApIEdrwcAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L3NlbWFudGljcy9ncm91cGluZy1jb250ZW50L3RoZS1maWd1cmUtZWxlbWVudC9ncm91cGluZy1m
aWd1cmUtZXhwZWN0ZWQudHh0VVQFAANBjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAM429
SEr1pWPUCAAAdyQAAHMAGAAAAAAAAQAAAKSBILAHAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3MvZ3JvdXBpbmctY29udGVudC90aGUtZmlndXJlLWVsZW1lbnQv
Z3JvdXBpbmctZmlndXJlLXByZXR0eS1kaWZmLmh0bWxVVAUAA0GMS1d1eAsAAQT1AQAABFAAAABQ
SwECHgMKAAAAAAAzjb1IAAAAAAAAAAAAAAAATwAYAAAAAAAAABAA7UGhuQcAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9ncm91cGluZy1jb250ZW50L3RoZS1o
ci1lbGVtZW50L1VUBQADQYxLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADONvUjiFaIFsgAA
AGgBAABlABgAAAAAAAEAAACkgSq6BwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL2dyb3VwaW5nLWNvbnRlbnQvdGhlLWhyLWVsZW1lbnQvZ3JvdXBpbmctaHIt
YWN0dWFsLnR4dFVUBQADQYxLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADONvUgf34K9gAEA
AEkDAABjABgAAAAAAAEAAACkgXu7BwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL2dyb3VwaW5nLWNvbnRlbnQvdGhlLWhyLWVsZW1lbnQvZ3JvdXBpbmctaHIt
ZGlmZi50eHRVVAUAA0GMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAzjb1I0olQZ1kAAABq
AAAAZwAYAAAAAAABAAAApIGYvQcAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L3NlbWFudGljcy9ncm91cGluZy1jb250ZW50L3RoZS1oci1lbGVtZW50L2dyb3VwaW5nLWhyLWV4
cGVjdGVkLnR4dFVUBQADQYxLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADONvUhwLpivdggA
AJ0gAABrABgAAAAAAAEAAACkgZK+BwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL2dyb3VwaW5nLWNvbnRlbnQvdGhlLWhyLWVsZW1lbnQvZ3JvdXBpbmctaHIt
cHJldHR5LWRpZmYuaHRtbFVUBQADQYxLV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAADONvUgA
AAAAAAAAAAAAAABPABgAAAAAAAAAEADtQa3HBwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL2dyb3VwaW5nLWNvbnRlbnQvdGhlLWxpLWVsZW1lbnQvVVQFAANB
jEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAM429SOIVogWyAAAAaAEAAGUAGAAAAAAAAQAA
AKSBNsgHAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZ3Jv
dXBpbmctY29udGVudC90aGUtbGktZWxlbWVudC9ncm91cGluZy1saS1hY3R1YWwudHh0VVQFAANB
jEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAM429SEs2wEVoAgAAswgAAGMAGAAAAAAAAQAA
AKSBh8kHAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZ3Jv
dXBpbmctY29udGVudC90aGUtbGktZWxlbWVudC9ncm91cGluZy1saS1kaWZmLnR4dFVUBQADQYxL
V3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADONvUiSwjyXRQEAAIwFAABnABgAAAAAAAEAAACk
gYzMBwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2dyb3Vw
aW5nLWNvbnRlbnQvdGhlLWxpLWVsZW1lbnQvZ3JvdXBpbmctbGktZXhwZWN0ZWQudHh0VVQFAANB
jEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAM429SJVd3aiHCgAAjlAAAGsAGAAAAAAAAQAA
AKSBcs4HAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZ3Jv
dXBpbmctY29udGVudC90aGUtbGktZWxlbWVudC9ncm91cGluZy1saS1wcmV0dHktZGlmZi5odG1s
VVQFAANBjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAM429SAAAAAAAAAAAAAAAAE8AGAAA
AAAAAAAQAO1BntkHAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3MvZ3JvdXBpbmctY29udGVudC90aGUtb2wtZWxlbWVudC9VVAUAA0GMS1d1eAsAAQT1AQAABFAA
AABQSwECHgMUAAIACAAzjb1I7Il2yQ4BAAAbJgAAdwAYAAAAAAAAAAAApIEn2gcAaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9ncm91cGluZy1jb250ZW50L3Ro
ZS1vbC1lbGVtZW50L2dyb3VwaW5nLW9sLXN0YXJ0LXJlZnRlc3QtMDAyLWFjdHVhbC5wbmdVVAUA
A0GMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAzjb1IO7GjGkG1AADluQAAdQAYAAAAAAAA
AAAApIHm2wcAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9n
cm91cGluZy1jb250ZW50L3RoZS1vbC1lbGVtZW50L2dyb3VwaW5nLW9sLXN0YXJ0LXJlZnRlc3Qt
MDAyLWRpZmYucG5nVVQFAANBjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAM429SIy6vEO9
BQAAeRIAAHcAGAAAAAAAAQAAAKSB1pEIAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9zZW1hbnRpY3MvZ3JvdXBpbmctY29udGVudC90aGUtb2wtZWxlbWVudC9ncm91cGluZy1v
bC1zdGFydC1yZWZ0ZXN0LTAwMi1kaWZmcy5odG1sVVQFAANBjEtXdXgLAAEE9QEAAARQAAAAUEsB
Ah4DFAACAAgAM429SFUg4w4UBAAAlgoAAHoAGAAAAAAAAQAAAKSBRJgIAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZ3JvdXBpbmctY29udGVudC90aGUtb2wt
ZWxlbWVudC9ncm91cGluZy1vbC1zdGFydC1yZWZ0ZXN0LTAwMi1leHBlY3RlZC5odG1sVVQFAANB
jEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAM429SGoxqUqqewEAVZYBAHkAGAAAAAAAAAAA
AKSBDJ0IAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZ3Jv
dXBpbmctY29udGVudC90aGUtb2wtZWxlbWVudC9ncm91cGluZy1vbC1zdGFydC1yZWZ0ZXN0LTAw
Mi1leHBlY3RlZC5wbmdVVAUAA0GMS1d1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAAAzjb1IAAAA
AAAAAAAAAAAATgAYAAAAAAAAABAA7UFpGQoAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9ncm91cGluZy1jb250ZW50L3RoZS1wLWVsZW1lbnQvVVQFAANBjEtX
dXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAM429SOIVogWyAAAAaAEAAGMAGAAAAAAAAQAAAKSB
8RkKAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZ3JvdXBp
bmctY29udGVudC90aGUtcC1lbGVtZW50L2dyb3VwaW5nLXAtYWN0dWFsLnR4dFVUBQADQYxLV3V4
CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADONvUhb5kachgEAAEoDAABhABgAAAAAAAEAAACkgUAb
CgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2dyb3VwaW5n
LWNvbnRlbnQvdGhlLXAtZWxlbWVudC9ncm91cGluZy1wLWRpZmYudHh0VVQFAANBjEtXdXgLAAEE
9QEAAARQAAAAUEsBAh4DFAACAAgAM429SF8Us7lcAAAAbwAAAGUAGAAAAAAAAQAAAKSBYR0KAGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZ3JvdXBpbmctY29u
dGVudC90aGUtcC1lbGVtZW50L2dyb3VwaW5nLXAtZXhwZWN0ZWQudHh0VVQFAANBjEtXdXgLAAEE
9QEAAARQAAAAUEsBAh4DFAACAAgAM429SGCQHeN4CAAAoCAAAGkAGAAAAAAAAQAAAKSBXB4KAGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZ3JvdXBpbmctY29u
dGVudC90aGUtcC1lbGVtZW50L2dyb3VwaW5nLXAtcHJldHR5LWRpZmYuaHRtbFVUBQADQYxLV3V4
CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAADCLvUgAAAAAAAAAAAAAAAA7ABgAAAAAAAAAEADtQXcn
CgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGlu
Zy0xL1VUBQADe4hLV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAADONvUgAAAAAAAAAAAAAAABQ
ABgAAAAAAAAAEADtQewnCgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL3NjcmlwdGluZy0xL3RoZS10ZW1wbGF0ZS1lbGVtZW50L1VUBQADQoxLV3V4CwABBPUB
AAAEUAAAAFBLAQIeAwoAAAAAADSNvUgAAAAAAAAAAAAAAABcABgAAAAAAAAAEADtQXYoCgBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3Ro
ZS10ZW1wbGF0ZS1lbGVtZW50L2RlZmluaXRpb25zL1VUBQADQ4xLV3V4CwABBPUBAAAEUAAAAFBL
AQIeAxQAAgAIADONvUgHFEHdxgUAAMIuAAB4ABgAAAAAAAEAAACkgQwpCgBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS10ZW1wbGF0
ZS1lbGVtZW50L2RlZmluaXRpb25zL3RlbXBsYXRlLWNvbnRlbnRzLWFjdHVhbC50eHRVVAUAA0KM
S1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAzjb1IbdqKKqIGAACjNAAAdgAYAAAAAAABAAAA
pIGELwoAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3Jp
cHRpbmctMS90aGUtdGVtcGxhdGUtZWxlbWVudC9kZWZpbml0aW9ucy90ZW1wbGF0ZS1jb250ZW50
cy1kaWZmLnR4dFVUBQADQoxLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADONvUhvE11HtwAA
ALMDAAB6ABgAAAAAAAEAAACkgdY2CgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS10ZW1wbGF0ZS1lbGVtZW50L2RlZmluaXRpb25z
L3RlbXBsYXRlLWNvbnRlbnRzLWV4cGVjdGVkLnR4dFVUBQADQoxLV3V4CwABBPUBAAAEUAAAAFBL
AQIeAxQAAgAIADSNvUhgBSW7HBAAAOOmAAB+ABgAAAAAAAEAAACkgUE4CgBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS10ZW1wbGF0
ZS1lbGVtZW50L2RlZmluaXRpb25zL3RlbXBsYXRlLWNvbnRlbnRzLXByZXR0eS1kaWZmLmh0bWxV
VAUAA0OMS1d1eAsAAQT1AQAABFAAAABQSwECHgMKAAAAAAAwi71IAAAAAAAAAAAAAAAAYQAYAAAA
AAAAABAA7UEVSQoAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9zY3JpcHRpbmctMS90aGUtdGVtcGxhdGUtZWxlbWVudC90ZW1wbGF0ZS1lbGVtZW50L1VUBQAD
e4hLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADCLvUhNnpxMWAAAALIAAACEABgAAAAAAAEA
AACkgbBJCgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3Nj
cmlwdGluZy0xL3RoZS10ZW1wbGF0ZS1lbGVtZW50L3RlbXBsYXRlLWVsZW1lbnQvdGVtcGxhdGUt
ZGVzY2VuZGFudC1ib2R5LWFjdHVhbC50eHRVVAUAA3uIS1d1eAsAAQT1AQAABFAAAABQSwECHgMU
AAIACAAwi71IjrVg0yYBAAC3AgAAggAYAAAAAAABAAAApIHGSgoAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtdGVtcGxhdGUtZWxl
bWVudC90ZW1wbGF0ZS1lbGVtZW50L3RlbXBsYXRlLWRlc2NlbmRhbnQtYm9keS1kaWZmLnR4dFVU
BQADe4hLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADCLvUhuaq8ATQAAAFcAAACGABgAAAAA
AAEAAACkgahMCgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L3NjcmlwdGluZy0xL3RoZS10ZW1wbGF0ZS1lbGVtZW50L3RlbXBsYXRlLWVsZW1lbnQvdGVtcGxh
dGUtZGVzY2VuZGFudC1ib2R5LWV4cGVjdGVkLnR4dFVUBQADe4hLV3V4CwABBPUBAAAEUAAAAFBL
AQIeAxQAAgAIADCLvUinOEp2+gcAAKIbAACKABgAAAAAAAEAAACkgbVNCgBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NjcmlwdGluZy0xL3RoZS10ZW1wbGF0
ZS1lbGVtZW50L3RlbXBsYXRlLWVsZW1lbnQvdGVtcGxhdGUtZGVzY2VuZGFudC1ib2R5LXByZXR0
eS1kaWZmLmh0bWxVVAUAA3uIS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAwi71ITZ6cTFgA
AACyAAAAhAAYAAAAAAABAAAApIFzVgoAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtdGVtcGxhdGUtZWxlbWVudC90ZW1wbGF0ZS1l
bGVtZW50L3RlbXBsYXRlLWRlc2NlbmRhbnQtaGVhZC1hY3R1YWwudHh0VVQFAAN7iEtXdXgLAAEE
9QEAAARQAAAAUEsBAh4DFAACAAgAMIu9SIzxvRMmAQAAtwIAAIIAGAAAAAAAAQAAAKSBiVcKAGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEv
dGhlLXRlbXBsYXRlLWVsZW1lbnQvdGVtcGxhdGUtZWxlbWVudC90ZW1wbGF0ZS1kZXNjZW5kYW50
LWhlYWQtZGlmZi50eHRVVAUAA3uIS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAwi71IT1g1
okwAAABXAAAAhgAYAAAAAAABAAAApIFrWQoAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtdGVtcGxhdGUtZWxlbWVudC90ZW1wbGF0
ZS1lbGVtZW50L3RlbXBsYXRlLWRlc2NlbmRhbnQtaGVhZC1leHBlY3RlZC50eHRVVAUAA3uIS1d1
eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAwi71Ix84Oj/sHAACiGwAAigAYAAAAAAABAAAApIF3
WgoAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zY3JpcHRp
bmctMS90aGUtdGVtcGxhdGUtZWxlbWVudC90ZW1wbGF0ZS1lbGVtZW50L3RlbXBsYXRlLWRlc2Nl
bmRhbnQtaGVhZC1wcmV0dHktZGlmZi5odG1sVVQFAAN7iEtXdXgLAAEE9QEAAARQAAAAUEsBAh4D
CgAAAAAAMIu9SAAAAAAAAAAAAAAAADkAGAAAAAAAAAAQAO1BNmMKAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2VsZWN0b3JzL1VUBQADe4hLV3V4CwABBPUB
AAAEUAAAAFBLAQIeAwoAAAAAADSNvUgAAAAAAAAAAAAAAABIABgAAAAAAAAAEADtQaljCgBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NlbGVjdG9ycy9wc2V1
ZG8tY2xhc3Nlcy9VVAUAA0OMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAzjb1I4hWiBbIA
AABoAQAAWgAYAAAAAAABAAAApIErZAoAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9zZWxlY3RvcnMvcHNldWRvLWNsYXNzZXMvZGVmYXVsdC1hY3R1YWwudHh0
VVQFAANCjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAM429SHMsv630AQAAlwQAAFgAGAAA
AAAAAQAAAKSBcWUKAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3Mvc2VsZWN0b3JzL3BzZXVkby1jbGFzc2VzL2RlZmF1bHQtZGlmZi50eHRVVAUAA0KMS1d1eAsA
AQT1AQAABFAAAABQSwECHgMUAAIACAAzjb1IZcZ5gdQAAADFAQAAXAAYAAAAAAABAAAApIH3ZwoA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zZWxlY3RvcnMv
cHNldWRvLWNsYXNzZXMvZGVmYXVsdC1leHBlY3RlZC50eHRVVAUAA0KMS1d1eAsAAQT1AQAABFAA
AABQSwECHgMUAAIACAA0jb1IWy7t/xYJAADnJgAAYAAYAAAAAAABAAAApIFhaQoAaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zZWxlY3RvcnMvcHNldWRvLWNs
YXNzZXMvZGVmYXVsdC1wcmV0dHktZGlmZi5odG1sVVQFAANDjEtXdXgLAAEE9QEAAARQAAAAUEsB
Ah4DFAACAAgANI29SOIVogWyAAAAaAEAAFYAGAAAAAAAAQAAAKSBEXMKAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2VsZWN0b3JzL3BzZXVkby1jbGFzc2Vz
L2Rpci1hY3R1YWwudHh0VVQFAANDjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgANI29SHZ7
EzoAAgAAjQQAAFQAGAAAAAAAAQAAAKSBU3QKAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zZW1hbnRpY3Mvc2VsZWN0b3JzL3BzZXVkby1jbGFzc2VzL2Rpci1kaWZmLnR4dFVU
BQADQ4xLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADSNvUjOootX3QAAAM0BAABYABgAAAAA
AAEAAACkgeF2CgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L3NlbGVjdG9ycy9wc2V1ZG8tY2xhc3Nlcy9kaXItZXhwZWN0ZWQudHh0VVQFAANDjEtXdXgLAAEE
9QEAAARQAAAAUEsBAh4DFAACAAgANI29SL4NDTUGCQAAhSEAAFwAGAAAAAAAAQAAAKSBUHgKAGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2VsZWN0b3JzL3Bz
ZXVkby1jbGFzc2VzL2Rpci1wcmV0dHktZGlmZi5odG1sVVQFAANDjEtXdXgLAAEE9QEAAARQAAAA
UEsBAh4DFAACAAgANI29SOIVogWyAAAAaAEAAFgAGAAAAAAAAQAAAKSB7IEKAGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2VsZWN0b3JzL3BzZXVkby1jbGFz
c2VzL2RpcjAxLWFjdHVhbC50eHRVVAUAA0OMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAA0
jb1I24ZUG6IBAACDAwAAVgAYAAAAAAABAAAApIEwgwoAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcy9zZWxlY3RvcnMvcHNldWRvLWNsYXNzZXMvZGlyMDEtZGlm
Zi50eHRVVAUAA0OMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAA0jb1IGQCSVIAAAAC/AAAA
WgAYAAAAAAABAAAApIFihQoAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3Nl
bWFudGljcy9zZWxlY3RvcnMvcHNldWRvLWNsYXNzZXMvZGlyMDEtZXhwZWN0ZWQudHh0VVQFAAND
jEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgANI29SEMa8GaTCAAAUSAAAF4AGAAAAAAAAQAA
AKSBdoYKAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2Vs
ZWN0b3JzL3BzZXVkby1jbGFzc2VzL2RpcjAxLXByZXR0eS1kaWZmLmh0bWxVVAUAA0OMS1d1eAsA
AQT1AQAABFAAAABQSwECHgMUAAIACAA0jb1I4hWiBbIAAABoAQAAWwAYAAAAAAABAAAApIGhjwoA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zZWxlY3RvcnMv
cHNldWRvLWNsYXNzZXMvZGlzYWJsZWQtYWN0dWFsLnR4dFVUBQADQ4xLV3V4CwABBPUBAAAEUAAA
AFBLAQIeAxQAAgAIADSNvUjIqzAxCQIAABsGAABZABgAAAAAAAEAAACkgeiQCgBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NlbGVjdG9ycy9wc2V1ZG8tY2xh
c3Nlcy9kaXNhYmxlZC1kaWZmLnR4dFVUBQADQ4xLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAI
ADSNvUizkGdd5AAAAEgDAABdABgAAAAAAAEAAACkgYSTCgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NlbGVjdG9ycy9wc2V1ZG8tY2xhc3Nlcy9kaXNhYmxl
ZC1leHBlY3RlZC50eHRVVAUAA0OMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAA0jb1I0SKE
TR0JAADOJwAAYQAYAAAAAAABAAAApIH/lAoAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9zZWxlY3RvcnMvcHNldWRvLWNsYXNzZXMvZGlzYWJsZWQtcHJldHR5
LWRpZmYuaHRtbFVUBQADQ4xLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADSNvUjiFaIFsgAA
AGgBAABaABgAAAAAAAEAAACkgbeeCgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL3NlbGVjdG9ycy9wc2V1ZG8tY2xhc3Nlcy9lbmFibGVkLWFjdHVhbC50eHRV
VAUAA0OMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAA0jb1IOwaJW5EBAABLAwAAWAAYAAAA
AAABAAAApIH9nwoAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9zZWxlY3RvcnMvcHNldWRvLWNsYXNzZXMvZW5hYmxlZC1kaWZmLnR4dFVUBQADQ4xLV3V4CwAB
BPUBAAAEUAAAAFBLAQIeAxQAAgAIADSNvUg32HBqbAAAAIIAAABcABgAAAAAAAEAAACkgSCiCgBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NlbGVjdG9ycy9w
c2V1ZG8tY2xhc3Nlcy9lbmFibGVkLWV4cGVjdGVkLnR4dFVUBQADQ4xLV3V4CwABBPUBAAAEUAAA
AFBLAQIeAxQAAgAIADCLvUgM7GNvKQgAAAseAABgABgAAAAAAAEAAACkgSKjCgBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NlbGVjdG9ycy9wc2V1ZG8tY2xh
c3Nlcy9lbmFibGVkLXByZXR0eS1kaWZmLmh0bWxVVAUAA3uIS1d1eAsAAQT1AQAABFAAAABQSwEC
HgMUAAIACAAwi71ITZ6cTFgAAACyAAAAWAAYAAAAAAABAAAApIHlqwoAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zZWxlY3RvcnMvcHNldWRvLWNsYXNzZXMv
Zm9jdXMtYWN0dWFsLnR4dFVUBQADe4hLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADCLvUhN
npxMWAAAALIAAABiABgAAAAAAAEAAACkgc+sCgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL3NlbGVjdG9ycy9wc2V1ZG8tY2xhc3Nlcy9mb2N1cy1hdXRvZm9j
dXMtYWN0dWFsLnR4dFVUBQADe4hLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADCLvUgaPT6n
OAEAAJQCAABgABgAAAAAAAEAAACkgcOtCgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL3NlbGVjdG9ycy9wc2V1ZG8tY2xhc3Nlcy9mb2N1cy1hdXRvZm9jdXMt
ZGlmZi50eHRVVAUAA3uIS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAwi71I2Eq0L2kAAAB3
AAAAZAAYAAAAAAABAAAApIGVrwoAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L3NlbWFudGljcy9zZWxlY3RvcnMvcHNldWRvLWNsYXNzZXMvZm9jdXMtYXV0b2ZvY3VzLWV4cGVj
dGVkLnR4dFVUBQADe4hLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADCLvUhVR5SqEwgAADgc
AABoABgAAAAAAAEAAACkgZywCgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
c2VtYW50aWNzL3NlbGVjdG9ycy9wc2V1ZG8tY2xhc3Nlcy9mb2N1cy1hdXRvZm9jdXMtcHJldHR5
LWRpZmYuaHRtbFVUBQADe4hLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADCLvUjKyLq2bQEA
ABUDAABWABgAAAAAAAEAAACkgVG5CgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL3NlbGVjdG9ycy9wc2V1ZG8tY2xhc3Nlcy9mb2N1cy1kaWZmLnR4dFVUBQAD
e4hLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADCLvUgwQCpOkQAAAAQBAABaABgAAAAAAAEA
AACkgU67CgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3Nl
bGVjdG9ycy9wc2V1ZG8tY2xhc3Nlcy9mb2N1cy1leHBlY3RlZC50eHRVVAUAA3uIS1d1eAsAAQT1
AQAABFAAAABQSwECHgMUAAIACAAwi71IopctYWMIAAD5IAAAXgAYAAAAAAABAAAApIFzvAoAaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zZWxlY3RvcnMvcHNl
dWRvLWNsYXNzZXMvZm9jdXMtcHJldHR5LWRpZmYuaHRtbFVUBQADe4hLV3V4CwABBPUBAAAEUAAA
AFBLAQIeAxQAAgAIADCLvUjXNzdBXgEAAE4GAABgABgAAAAAAAEAAACkgW7FCgBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NlbGVjdG9ycy9wc2V1ZG8tY2xh
c3Nlcy9pbmRldGVybWluYXRlLWFjdHVhbC50eHRVVAUAA3yIS1d1eAsAAQT1AQAABFAAAABQSwEC
HgMUAAIACAAwi71IEQfGBvsCAAB2CgAAXgAYAAAAAAABAAAApIFmxwoAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zZWxlY3RvcnMvcHNldWRvLWNsYXNzZXMv
aW5kZXRlcm1pbmF0ZS1kaWZmLnR4dFVUBQADfIhLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAI
ADCLvUhLEvlrLAEAAJ0CAABiABgAAAAAAAEAAACkgfnKCgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NlbGVjdG9ycy9wc2V1ZG8tY2xhc3Nlcy9pbmRldGVy
bWluYXRlLWV4cGVjdGVkLnR4dFVUBQADfIhLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADCL
vUgA0/MTiAoAAPo4AABmABgAAAAAAAEAAACkgcHMCgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL3NlbGVjdG9ycy9wc2V1ZG8tY2xhc3Nlcy9pbmRldGVybWlu
YXRlLXByZXR0eS1kaWZmLmh0bWxVVAUAA3yIS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAw
i71ITZ6cTFgAAACyAAAAZgAYAAAAAAABAAAApIHp1woAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcy9zZWxlY3RvcnMvcHNldWRvLWNsYXNzZXMvaW5kZXRlcm1p
bmF0ZS1yYWRpby1hY3R1YWwudHh0VVQFAAN7iEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA
MIu9SKY7/c4NAQAAVAIAAGQAGAAAAAAAAQAAAKSB4dgKAGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2VsZWN0b3JzL3BzZXVkby1jbGFzc2VzL2luZGV0ZXJt
aW5hdGUtcmFkaW8tZGlmZi50eHRVVAUAA3uIS1d1eAsAAQT1AQAABFAAAABQSwECHgMKAAIAAAAw
i71IV4vcRy4AAAAuAAAAaAAYAAAAAAABAAAApIGM2goAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcy9zZWxlY3RvcnMvcHNldWRvLWNsYXNzZXMvaW5kZXRlcm1p
bmF0ZS1yYWRpby1leHBlY3RlZC50eHRVVAUAA3uIS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIA
CAAwi71Ie+8KAyAIAAAlHQAAbAAYAAAAAAABAAAApIFc2woAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9zZWxlY3RvcnMvcHNldWRvLWNsYXNzZXMvaW5kZXRl
cm1pbmF0ZS1yYWRpby1wcmV0dHktZGlmZi5odG1sVVQFAAN8iEtXdXgLAAEE9QEAAARQAAAAUEsB
Ah4DFAACAAgAMIu9SOIVogWyAAAAaAEAAGUAGAAAAAAAAQAAAKSBIuQKAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2VsZWN0b3JzL3BzZXVkby1jbGFzc2Vz
L2lucmFuZ2Utb3V0b2ZyYW5nZS1hY3R1YWwudHh0VVQFAAN8iEtXdXgLAAEE9QEAAARQAAAAUEsB
Ah4DFAACAAgAMIu9SMPLumQmAgAAnQYAAGMAGAAAAAAAAQAAAKSBc+UKAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2VsZWN0b3JzL3BzZXVkby1jbGFzc2Vz
L2lucmFuZ2Utb3V0b2ZyYW5nZS1kaWZmLnR4dFVUBQADfIhLV3V4CwABBPUBAAAEUAAAAFBLAQIe
AxQAAgAIADCLvUjKBRpA+AAAALwDAABnABgAAAAAAAEAAACkgTboCgBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NlbGVjdG9ycy9wc2V1ZG8tY2xhc3Nlcy9p
bnJhbmdlLW91dG9mcmFuZ2UtZXhwZWN0ZWQudHh0VVQFAAN8iEtXdXgLAAEE9QEAAARQAAAAUEsB
Ah4DFAACAAgAMIu9SHc1FssvCQAAayUAAGsAGAAAAAAAAQAAAKSBz+kKAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2VsZWN0b3JzL3BzZXVkby1jbGFzc2Vz
L2lucmFuZ2Utb3V0b2ZyYW5nZS1wcmV0dHktZGlmZi5odG1sVVQFAAN8iEtXdXgLAAEE9QEAAARQ
AAAAUEsBAh4DFAACAAgAMIu9SOIVogWyAAAAaAEAAFcAGAAAAAAAAQAAAKSBo/MKAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mvc2VsZWN0b3JzL3BzZXVkby1j
bGFzc2VzL2xpbmstYWN0dWFsLnR4dFVUBQADfIhLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAI
ADCLvUjpzqzawgEAAMQDAABVABgAAAAAAAEAAACkgeb0CgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3NlbGVjdG9ycy9wc2V1ZG8tY2xhc3Nlcy9saW5rLWRp
ZmYudHh0VVQFAAN8iEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAMIu9SIBpg7qdAAAABAEA
AFkAGAAAAAAAAQAAAKSBN/cKAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9z
ZW1hbnRpY3Mvc2VsZWN0b3JzL3BzZXVkby1jbGFzc2VzL2xpbmstZXhwZWN0ZWQudHh0VVQFAAN8
iEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAANI29SAAAAAAAAAAAAAAAADwAGAAAAAAAAAAQ
AO1BZ/gKAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvdGFi
dWxhci1kYXRhL1VUBQADQ4xLV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAADSNvUgAAAAAAAAA
AAAAAABkABgAAAAAAAAAEADtQd34CgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS9hdHRyaWJ1dGVzLWNvbW1vbi10by10ZC1hbmQtdGgt
ZWxlbWVudHMvVVQFAANDjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAM429SJO9EqJBBAAA
exwAAHgAGAAAAAAAAQAAAKSBe/kKAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3MvdGFidWxhci1kYXRhL2F0dHJpYnV0ZXMtY29tbW9uLXRvLXRkLWFuZC10aC1l
bGVtZW50cy9jZWxsSW5kZXgtYWN0dWFsLnR4dFVUBQADQoxLV3V4CwABBPUBAAAEUAAAAFBLAQIe
AxQAAgAIADONvUgARY4iEQUAAA0gAAB2ABgAAAAAAAEAAACkgW7+CgBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS9hdHRyaWJ1dGVzLWNv
bW1vbi10by10ZC1hbmQtdGgtZWxlbWVudHMvY2VsbEluZGV4LWRpZmYudHh0VVQFAANCjEtXdXgL
AAEE9QEAAARQAAAAUEsBAh4DFAACAAgAM429SFtxmFaJAAAAlQEAAHoAGAAAAAAAAQAAAKSBLwQL
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvdGFidWxhci1k
YXRhL2F0dHJpYnV0ZXMtY29tbW9uLXRvLXRkLWFuZC10aC1lbGVtZW50cy9jZWxsSW5kZXgtZXhw
ZWN0ZWQudHh0VVQFAANCjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgANI29SKfEng2tDQAA
9XQAAH4AGAAAAAAAAQAAAKSBbAULAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3MvdGFidWxhci1kYXRhL2F0dHJpYnV0ZXMtY29tbW9uLXRvLXRkLWFuZC10aC1l
bGVtZW50cy9jZWxsSW5kZXgtcHJldHR5LWRpZmYuaHRtbFVUBQADQ4xLV3V4CwABBPUBAAAEUAAA
AFBLAQIeAwoAAAAAADSNvUgAAAAAAAAAAAAAAABQABgAAAAAAAAAEADtQdETCwBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90aGUtY2Fw
dGlvbi1lbGVtZW50L1VUBQADQ4xLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADSNvUhNnpxM
WAAAALIAAABmABgAAAAAAAEAAACkgVsUCwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90aGUtY2FwdGlvbi1lbGVtZW50L2NhcHRpb25f
MDAxLWFjdHVhbC50eHRVVAUAA0OMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAA0jb1I9oIl
y08BAAASAwAAZAAYAAAAAAABAAAApIFTFQsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy90YWJ1bGFyLWRhdGEvdGhlLWNhcHRpb24tZWxlbWVudC9jYXB0aW9u
XzAwMS1kaWZmLnR4dFVUBQADQ4xLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADSNvUifS5sl
fAAAAOoAAABoABgAAAAAAAEAAACkgUAXCwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90aGUtY2FwdGlvbi1lbGVtZW50L2NhcHRpb25f
MDAxLWV4cGVjdGVkLnR4dFVUBQADQ4xLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADSNvUib
h4vZPAgAAHceAABsABgAAAAAAAEAAACkgV4YCwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90aGUtY2FwdGlvbi1lbGVtZW50L2NhcHRp
b25fMDAxLXByZXR0eS1kaWZmLmh0bWxVVAUAA0OMS1d1eAsAAQT1AQAABFAAAABQSwECHgMKAAAA
AAA0jb1IAAAAAAAAAAAAAAAATgAYAAAAAAAAABAA7UFAIQsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy90YWJ1bGFyLWRhdGEvdGhlLXRhYmxlLWVsZW1lbnQv
VVQFAANDjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgANI29SE2enExYAAAAsgAAAGgAGAAA
AAAAAQAAAKSByCELAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3MvdGFidWxhci1kYXRhL3RoZS10YWJsZS1lbGVtZW50L2NhcHRpb24tbWV0aG9kcy1hY3R1YWwu
dHh0VVQFAANDjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgANI29SGBvSl+aAQAAYAQAAGYA
GAAAAAAAAQAAAKSBwiILAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3MvdGFidWxhci1kYXRhL3RoZS10YWJsZS1lbGVtZW50L2NhcHRpb24tbWV0aG9kcy1kaWZm
LnR4dFVUBQADQ4xLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADSNvUgk/p8zwQAAADACAABq
ABgAAAAAAAEAAACkgfwkCwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL3RhYnVsYXItZGF0YS90aGUtdGFibGUtZWxlbWVudC9jYXB0aW9uLW1ldGhvZHMtZXhw
ZWN0ZWQudHh0VVQFAANDjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgANI29SKelatKPCAAA
jCEAAG4AGAAAAAAAAQAAAKSBYSYLAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3MvdGFidWxhci1kYXRhL3RoZS10YWJsZS1lbGVtZW50L2NhcHRpb24tbWV0aG9k
cy1wcmV0dHktZGlmZi5odG1sVVQFAANDjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgANI29
SHNqZFqdAAAAHAEAAGQAGAAAAAAAAQAAAKSBmC8LAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3MvdGFidWxhci1kYXRhL3RoZS10YWJsZS1lbGVtZW50L2NyZWF0
ZVRCb2R5LWFjdHVhbC50eHRVVAUAA0OMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAA0jb1I
XGy4k8YBAAATBQAAYgAYAAAAAAABAAAApIHTMAsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy90YWJ1bGFyLWRhdGEvdGhlLXRhYmxlLWVsZW1lbnQvY3JlYXRl
VEJvZHktZGlmZi50eHRVVAUAA0OMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAA0jb1Iuevk
4qsAAAB4AgAAZgAYAAAAAAABAAAApIE1MwsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy90YWJ1bGFyLWRhdGEvdGhlLXRhYmxlLWVsZW1lbnQvY3JlYXRlVEJv
ZHktZXhwZWN0ZWQudHh0VVQFAANDjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgANI29SJ2n
8tjkCAAAkycAAGoAGAAAAAAAAQAAAKSBgDQLAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zZW1hbnRpY3MvdGFidWxhci1kYXRhL3RoZS10YWJsZS1lbGVtZW50L2NyZWF0ZVRC
b2R5LXByZXR0eS1kaWZmLmh0bWxVVAUAA0OMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAA0
jb1ITZ6cTFgAAACyAAAAZwAYAAAAAAABAAAApIEIPgsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcy90YWJ1bGFyLWRhdGEvdGhlLXRhYmxlLWVsZW1lbnQvZGVs
ZXRlLWNhcHRpb24tYWN0dWFsLnR4dFVUBQADQ4xLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAI
ADSNvUhVOf1newEAAJADAABlABgAAAAAAAEAAACkgQE/CwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90aGUtdGFibGUtZWxlbWVudC9k
ZWxldGUtY2FwdGlvbi1kaWZmLnR4dFVUBQADQ4xLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAI
ADSNvUjYh8iUoAAAAGQBAABpABgAAAAAAAEAAACkgRtBCwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90aGUtdGFibGUtZWxlbWVudC9k
ZWxldGUtY2FwdGlvbi1leHBlY3RlZC50eHRVVAUAA0OMS1d1eAsAAQT1AQAABFAAAABQSwECHgMU
AAIACAAwi71IDFDBk3QIAAAiIAAAbQAYAAAAAAABAAAApIFeQgsAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy90YWJ1bGFyLWRhdGEvdGhlLXRhYmxlLWVsZW1l
bnQvZGVsZXRlLWNhcHRpb24tcHJldHR5LWRpZmYuaHRtbFVUBQADe4hLV3V4CwABBPUBAAAEUAAA
AFBLAQIeAxQAAgAIADCLvUhNnpxMWAAAALIAAABsABgAAAAAAAEAAACkgXlLCwBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90aGUtdGFi
bGUtZWxlbWVudC9pbnNlcnRSb3ctbWV0aG9kLTAxLWFjdHVhbC50eHRVVAUAA3uIS1d1eAsAAQT1
AQAABFAAAABQSwECHgMUAAIACAAwi71Id4Np9xYBAABUAgAAagAYAAAAAAABAAAApIF3TAsAaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy90YWJ1bGFyLWRhdGEv
dGhlLXRhYmxlLWVsZW1lbnQvaW5zZXJ0Um93LW1ldGhvZC0wMS1kaWZmLnR4dFVUBQADe4hLV3V4
CwABBPUBAAAEUAAAAFBLAQIeAwoAAgAAADCLvUhjyYZ0JAAAACQAAABuABgAAAAAAAEAAACkgTFO
CwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3RhYnVsYXIt
ZGF0YS90aGUtdGFibGUtZWxlbWVudC9pbnNlcnRSb3ctbWV0aG9kLTAxLWV4cGVjdGVkLnR4dFVU
BQADe4hLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADCLvUh4VGE58wcAAFcbAAByABgAAAAA
AAEAAACkgf1OCwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L3RhYnVsYXItZGF0YS90aGUtdGFibGUtZWxlbWVudC9pbnNlcnRSb3ctbWV0aG9kLTAxLXByZXR0
eS1kaWZmLmh0bWxVVAUAA3uIS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAwi71ITZ6cTFgA
AACyAAAAbAAYAAAAAAABAAAApIGcVwsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy90YWJ1bGFyLWRhdGEvdGhlLXRhYmxlLWVsZW1lbnQvaW5zZXJ0Um93LW1l
dGhvZC0wMi1hY3R1YWwudHh0VVQFAAN7iEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAMIu9
SC7KhB8yAQAA0AIAAGoAGAAAAAAAAQAAAKSBmlgLAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3MvdGFidWxhci1kYXRhL3RoZS10YWJsZS1lbGVtZW50L2luc2Vy
dFJvdy1tZXRob2QtMDItZGlmZi50eHRVVAUAA3uIS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIA
CAAwi71ICZc90lcAAACdAAAAbgAYAAAAAAABAAAApIFwWgsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy90YWJ1bGFyLWRhdGEvdGhlLXRhYmxlLWVsZW1lbnQv
aW5zZXJ0Um93LW1ldGhvZC0wMi1leHBlY3RlZC50eHRVVAUAA3uIS1d1eAsAAQT1AQAABFAAAABQ
SwECHgMUAAIACAAwi71Ig4E/VhcIAACYHQAAcgAYAAAAAAABAAAApIFvWwsAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy90YWJ1bGFyLWRhdGEvdGhlLXRhYmxl
LWVsZW1lbnQvaW5zZXJ0Um93LW1ldGhvZC0wMi1wcmV0dHktZGlmZi5odG1sVVQFAAN7iEtXdXgL
AAEE9QEAAARQAAAAUEsBAh4DFAACAAgAMIu9SE2enExYAAAAsgAAAGwAGAAAAAAAAQAAAKSBMmQL
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvdGFidWxhci1k
YXRhL3RoZS10YWJsZS1lbGVtZW50L2luc2VydFJvdy1tZXRob2QtMDMtYWN0dWFsLnR4dFVUBQAD
e4hLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADCLvUiaQEQIQAEAAMMCAABqABgAAAAAAAEA
AACkgTBlCwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3Rh
YnVsYXItZGF0YS90aGUtdGFibGUtZWxlbWVudC9pbnNlcnRSb3ctbWV0aG9kLTAzLWRpZmYudHh0
VVQFAAN7iEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAMIu9SGGiDxxqAAAAkQAAAG4AGAAA
AAAAAQAAAKSBFGcLAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3MvdGFidWxhci1kYXRhL3RoZS10YWJsZS1lbGVtZW50L2luc2VydFJvdy1tZXRob2QtMDMtZXhw
ZWN0ZWQudHh0VVQFAAN7iEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAMIu9SEpH3MZ2CAAA
wh4AAHIAGAAAAAAAAQAAAKSBJmgLAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3MvdGFidWxhci1kYXRhL3RoZS10YWJsZS1lbGVtZW50L2luc2VydFJvdy1tZXRo
b2QtMDMtcHJldHR5LWRpZmYuaHRtbFVUBQADe4hLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAI
ADCLvUjiFaIFsgAAAGgBAABoABgAAAAAAAEAAACkgUhxCwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90aGUtdGFibGUtZWxlbWVudC90
YWJsZS1pbnNlcnRSb3ctYWN0dWFsLnR4dFVUBQADfIhLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQA
AgAIADCLvUimoZnajQEAALgDAABmABgAAAAAAAEAAACkgZxyCwBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90aGUtdGFibGUtZWxlbWVu
dC90YWJsZS1pbnNlcnRSb3ctZGlmZi50eHRVVAUAA3yIS1d1eAsAAQT1AQAABFAAAABQSwECHgMU
AAIACAAwi71Izqln2mUAAADVAAAAagAYAAAAAAABAAAApIHJdAsAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy90YWJ1bGFyLWRhdGEvdGhlLXRhYmxlLWVsZW1l
bnQvdGFibGUtaW5zZXJ0Um93LWV4cGVjdGVkLnR4dFVUBQADfIhLV3V4CwABBPUBAAAEUAAAAFBL
AQIeAxQAAgAIADCLvUhNnpxMWAAAALIAAABgABgAAAAAAAEAAACkgdJ1CwBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90aGUtdGFibGUt
ZWxlbWVudC90Qm9kaWVzLWFjdHVhbC50eHRVVAUAA3uIS1d1eAsAAQT1AQAABFAAAABQSwECHgMU
AAIACAAwi71IlSP6FBcBAABmAgAAXgAYAAAAAAABAAAApIHEdgsAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy90YWJ1bGFyLWRhdGEvdGhlLXRhYmxlLWVsZW1l
bnQvdEJvZGllcy1kaWZmLnR4dFVUBQADe4hLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADCL
vUhc9mkkOgAAAEsAAABiABgAAAAAAAEAAACkgXN4CwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90aGUtdGFibGUtZWxlbWVudC90Qm9k
aWVzLWV4cGVjdGVkLnR4dFVUBQADe4hLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADCLvUjm
Xw8sAwgAADodAABmABgAAAAAAAEAAACkgUl5CwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90aGUtdGFibGUtZWxlbWVudC90Qm9kaWVz
LXByZXR0eS1kaWZmLmh0bWxVVAUAA3yIS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAwi71I
2XCIBuEDAABFEQAAXgAYAAAAAAABAAAApIHsgQsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy90YWJ1bGFyLWRhdGEvdGhlLXRhYmxlLWVsZW1lbnQvdEZvb3Qt
YWN0dWFsLnR4dFVUBQADfIhLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADCLvUgYevIybwQA
AHATAABcABgAAAAAAAEAAACkgWWGCwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90aGUtdGFibGUtZWxlbWVudC90Rm9vdC1kaWZmLnR4
dFVUBQADfIhLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADCLvUgm/3xeZgAAAIQAAABgABgA
AAAAAAEAAACkgWqLCwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL3RhYnVsYXItZGF0YS90aGUtdGFibGUtZWxlbWVudC90Rm9vdC1leHBlY3RlZC50eHRVVAUA
A3yIS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAwi71IH8LgJoAMAAA6VQAAZAAYAAAAAAAB
AAAApIFqjAsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy90
YWJ1bGFyLWRhdGEvdGhlLXRhYmxlLWVsZW1lbnQvdEZvb3QtcHJldHR5LWRpZmYuaHRtbFVUBQAD
fIhLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADCLvUjiFaIFsgAAAGgBAABeABgAAAAAAAEA
AACkgYiZCwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3Rh
YnVsYXItZGF0YS90aGUtdGFibGUtZWxlbWVudC90SGVhZC1hY3R1YWwudHh0VVQFAAN8iEtXdXgL
AAEE9QEAAARQAAAAUEsBAh4DFAACAAgAMIu9SHoBVwBSAQAA9gIAAFwAGAAAAAAAAQAAAKSB0poL
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvdGFidWxhci1k
YXRhL3RoZS10YWJsZS1lbGVtZW50L3RIZWFkLWRpZmYudHh0VVQFAAN8iEtXdXgLAAEE9QEAAARQ
AAAAUEsBAh4DFAACAAgAMIu9SA8fvRYbAAAAKAAAAGAAGAAAAAAAAQAAAKSBupwLAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvdGFidWxhci1kYXRhL3RoZS10
YWJsZS1lbGVtZW50L3RIZWFkLWV4cGVjdGVkLnR4dFVUBQADfIhLV3V4CwABBPUBAAAEUAAAAFBL
AQIeAxQAAgAIADCLvUhWsH/LPggAAIweAABkABgAAAAAAAEAAACkgW+dCwBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90aGUtdGFibGUt
ZWxlbWVudC90SGVhZC1wcmV0dHktZGlmZi5odG1sVVQFAAN8iEtXdXgLAAEE9QEAAARQAAAAUEsB
Ah4DCgAAAAAAMIu9SAAAAAAAAAAAAAAAAE4AGAAAAAAAAAAQAO1BS6YLAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvdGFidWxhci1kYXRhL3RoZS10Ym9keS1l
bGVtZW50L1VUBQADe4hLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADSNvUgAp46aFAEAAGkC
AABiABgAAAAAAAEAAACkgdOmCwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
c2VtYW50aWNzL3RhYnVsYXItZGF0YS90aGUtdGJvZHktZWxlbWVudC9pbnNlcnRSb3ctYWN0dWFs
LnR4dFVUBQADQ4xLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADSNvUhOf8Qf5gEAAAYFAABg
ABgAAAAAAAEAAACkgYOoCwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL3RhYnVsYXItZGF0YS90aGUtdGJvZHktZWxlbWVudC9pbnNlcnRSb3ctZGlmZi50eHRV
VAUAA0OMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAA0jb1IHbFjUVQAAAAkAQAAZAAYAAAA
AAABAAAApIEDqwsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy90YWJ1bGFyLWRhdGEvdGhlLXRib2R5LWVsZW1lbnQvaW5zZXJ0Um93LWV4cGVjdGVkLnR4dFVU
BQADQ4xLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADSNvUiQpNxPAQkAAE4mAABoABgAAAAA
AAEAAACkgfWrCwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L3RhYnVsYXItZGF0YS90aGUtdGJvZHktZWxlbWVudC9pbnNlcnRSb3ctcHJldHR5LWRpZmYuaHRt
bFVUBQADQ4xLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADSNvUhNnpxMWAAAALIAAABdABgA
AAAAAAEAAACkgZi1CwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL3RhYnVsYXItZGF0YS90aGUtdGJvZHktZWxlbWVudC9yb3dzLWFjdHVhbC50eHRVVAUAA0OM
S1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAA0jb1I418l5ggBAAA8AgAAWwAYAAAAAAABAAAA
pIGHtgsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy90YWJ1
bGFyLWRhdGEvdGhlLXRib2R5LWVsZW1lbnQvcm93cy1kaWZmLnR4dFVUBQADQ4xLV3V4CwABBPUB
AAAEUAAAAFBLAQIeAwoAAgAAADSNvUhoLIxiKgAAACoAAABfABgAAAAAAAEAAACkgSS4CwBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90
aGUtdGJvZHktZWxlbWVudC9yb3dzLWV4cGVjdGVkLnR4dFVUBQADQ4xLV3V4CwABBPUBAAAEUAAA
AFBLAQIeAxQAAgAIADCLvUi5Akhu6AcAAF4bAABjABgAAAAAAAEAAACkgee4CwBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90aGUtdGJv
ZHktZWxlbWVudC9yb3dzLXByZXR0eS1kaWZmLmh0bWxVVAUAA3uIS1d1eAsAAQT1AQAABFAAAABQ
SwECHgMKAAAAAAAwi71IAAAAAAAAAAAAAAAATgAYAAAAAAAAABAA7UFswQsAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy90YWJ1bGFyLWRhdGEvdGhlLXRmb290
LWVsZW1lbnQvVVQFAAN7iEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgANI29SE2enExYAAAA
sgAAAF0AGAAAAAAAAQAAAKSB9MELAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3MvdGFidWxhci1kYXRhL3RoZS10Zm9vdC1lbGVtZW50L3Jvd3MtYWN0dWFsLnR4
dFVUBQADQ4xLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADSNvUhTtrccCAEAADwCAABbABgA
AAAAAAEAAACkgePCCwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL3RhYnVsYXItZGF0YS90aGUtdGZvb3QtZWxlbWVudC9yb3dzLWRpZmYudHh0VVQFAANDjEtX
dXgLAAEE9QEAAARQAAAAUEsBAh4DCgACAAAANI29SEZZyZgqAAAAKgAAAF8AGAAAAAAAAQAAAKSB
gMQLAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvdGFidWxh
ci1kYXRhL3RoZS10Zm9vdC1lbGVtZW50L3Jvd3MtZXhwZWN0ZWQudHh0VVQFAANDjEtXdXgLAAEE
9QEAAARQAAAAUEsBAh4DFAACAAgANI29SAgdApDnBwAAXhsAAGMAGAAAAAAAAQAAAKSBQ8ULAGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvdGFidWxhci1kYXRh
L3RoZS10Zm9vdC1lbGVtZW50L3Jvd3MtcHJldHR5LWRpZmYuaHRtbFVUBQADQ4xLV3V4CwABBPUB
AAAEUAAAAFBLAQIeAwoAAAAAADCLvUgAAAAAAAAAAAAAAABOABgAAAAAAAAAEADtQcfNCwBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90
aGUtdGhlYWQtZWxlbWVudC9VVAUAA3uIS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAA0jb1I
TZ6cTFgAAACyAAAAXQAYAAAAAAABAAAApIFPzgsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy90YWJ1bGFyLWRhdGEvdGhlLXRoZWFkLWVsZW1lbnQvcm93cy1h
Y3R1YWwudHh0VVQFAANDjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgANI29SIJUiQMIAQAA
PAIAAFsAGAAAAAAAAQAAAKSBPs8LAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3MvdGFidWxhci1kYXRhL3RoZS10aGVhZC1lbGVtZW50L3Jvd3MtZGlmZi50eHRV
VAUAA0OMS1d1eAsAAQT1AQAABFAAAABQSwECHgMKAAIAAAA0jb1IRz6C+SoAAAAqAAAAXwAYAAAA
AAABAAAApIHb0AsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy90YWJ1bGFyLWRhdGEvdGhlLXRoZWFkLWVsZW1lbnQvcm93cy1leHBlY3RlZC50eHRVVAUAA0OM
S1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAwi71IUjBBvecHAABeGwAAYwAYAAAAAAABAAAA
pIGe0QsAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy90YWJ1
bGFyLWRhdGEvdGhlLXRoZWFkLWVsZW1lbnQvcm93cy1wcmV0dHktZGlmZi5odG1sVVQFAAN7iEtX
dXgLAAEE9QEAAARQAAAAUEsBAh4DCgAAAAAAMIu9SAAAAAAAAAAAAAAAAEsAGAAAAAAAAAAQAO1B
ItoLAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvdGFidWxh
ci1kYXRhL3RoZS10ci1lbGVtZW50L1VUBQADfIhLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAI
ADCLvUhNnpxMWAAAALIAAABbABgAAAAAAAEAAACkgafaCwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90aGUtdHItZWxlbWVudC9jZWxs
cy1hY3R1YWwudHh0VVQFAAN7iEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAMIu9SFYGTg0x
AQAAgAIAAFkAGAAAAAAAAQAAAKSBlNsLAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9zZW1hbnRpY3MvdGFidWxhci1kYXRhL3RoZS10ci1lbGVtZW50L2NlbGxzLWRpZmYudHh0
VVQFAAN7iEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAMIu9SPys0/FgAAAAbwAAAF0AGAAA
AAAAAQAAAKSBWN0LAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3MvdGFidWxhci1kYXRhL3RoZS10ci1lbGVtZW50L2NlbGxzLWV4cGVjdGVkLnR4dFVUBQADe4hL
V3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADCLvUitDtKBHggAAFkdAABhABgAAAAAAAEAAACk
gU/eCwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3RhYnVs
YXItZGF0YS90aGUtdHItZWxlbWVudC9jZWxscy1wcmV0dHktZGlmZi5odG1sVVQFAAN7iEtXdXgL
AAEE9QEAAARQAAAAUEsBAh4DFAACAAgAMIu9SE2enExYAAAAsgAAAGAAGAAAAAAAAQAAAKSBCOcL
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvdGFidWxhci1k
YXRhL3RoZS10ci1lbGVtZW50L2RlbGV0ZUNlbGwtYWN0dWFsLnR4dFVUBQADe4hLV3V4CwABBPUB
AAAEUAAAAFBLAQIeAxQAAgAIADCLvUiN77DqQwEAACEDAABeABgAAAAAAAEAAACkgfrnCwBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90
aGUtdHItZWxlbWVudC9kZWxldGVDZWxsLWRpZmYudHh0VVQFAAN7iEtXdXgLAAEE9QEAAARQAAAA
UEsBAh4DFAACAAgAMIu9SP4Kl+J0AAAABQEAAGIAGAAAAAAAAQAAAKSB1ekLAGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvdGFidWxhci1kYXRhL3RoZS10ci1l
bGVtZW50L2RlbGV0ZUNlbGwtZXhwZWN0ZWQudHh0VVQFAAN7iEtXdXgLAAEE9QEAAARQAAAAUEsB
Ah4DFAACAAgAMIu9SJ8CIxk0CAAAjB4AAGYAGAAAAAAAAQAAAKSB5eoLAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvdGFidWxhci1kYXRhL3RoZS10ci1lbGVt
ZW50L2RlbGV0ZUNlbGwtcHJldHR5LWRpZmYuaHRtbFVUBQADfIhLV3V4CwABBPUBAAAEUAAAAFBL
AQIeAwoAAAAAADCLvUgAAAAAAAAAAAAAAABEABgAAAAAAAAAEADtQbnzCwBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL3RleHQtbGV2ZWwtc2VtYW50aWNzL1VU
BQADe4hLV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAADCLvUgAAAAAAAAAAAAAAABSABgAAAAA
AAAAEADtQTf0CwBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L3RleHQtbGV2ZWwtc2VtYW50aWNzL3RoZS1hLWVsZW1lbnQvVVQFAAN8iEtXdXgLAAEE9QEAAARQ
AAAAUEsBAh4DFAACAAgAMIu9SE2enExYAAAAsgAAAGoAGAAAAAAAAQAAAKSBw/QLAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvdGV4dC1sZXZlbC1zZW1hbnRp
Y3MvdGhlLWEtZWxlbWVudC9hLXN0cmluZ2lmaWVyLWFjdHVhbC50eHRVVAUAA3uIS1d1eAsAAQT1
AQAABFAAAABQSwECHgMUAAIACAAwi71Ilj1tPigBAADaAwAAaAAYAAAAAAABAAAApIG/9QsAaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy90ZXh0LWxldmVsLXNl
bWFudGljcy90aGUtYS1lbGVtZW50L2Etc3RyaW5naWZpZXItZGlmZi50eHRVVAUAA3uIS1d1eAsA
AQT1AQAABFAAAABQSwECHgMUAAIACAAwi71I9NyCWUwAAACjAQAAbAAYAAAAAAABAAAApIGJ9wsA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy90ZXh0LWxldmVs
LXNlbWFudGljcy90aGUtYS1lbGVtZW50L2Etc3RyaW5naWZpZXItZXhwZWN0ZWQudHh0VVQFAAN7
iEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAMIu9SPSnNOotCAAAyCIAAHAAGAAAAAAAAQAA
AKSBe/gLAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvdGV4
dC1sZXZlbC1zZW1hbnRpY3MvdGhlLWEtZWxlbWVudC9hLXN0cmluZ2lmaWVyLXByZXR0eS1kaWZm
Lmh0bWxVVAUAA3yIS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAwi71I4hWiBbIAAABoAQAA
bQAYAAAAAAABAAAApIFSAQwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3Nl
bWFudGljcy90ZXh0LWxldmVsLXNlbWFudGljcy90aGUtYS1lbGVtZW50L2EudGV4dC1zZXR0ZXIt
MDEtYWN0dWFsLnR4dFVUBQADfIhLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADCLvUjBu9aN
dwEAAH8DAABrABgAAAAAAAEAAACkgasCDABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL3RleHQtbGV2ZWwtc2VtYW50aWNzL3RoZS1hLWVsZW1lbnQvYS50ZXh0
LXNldHRlci0wMS1kaWZmLnR4dFVUBQADfIhLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADCL
vUg845WqSQAAAI8AAABvABgAAAAAAAEAAACkgccEDABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL3RleHQtbGV2ZWwtc2VtYW50aWNzL3RoZS1hLWVsZW1lbnQv
YS50ZXh0LXNldHRlci0wMS1leHBlY3RlZC50eHRVVAUAA3yIS1d1eAsAAQT1AQAABFAAAABQSwEC
HgMUAAIACAAwi71IrZsRQ+EIAABZJAAAcwAYAAAAAAABAAAApIG5BQwAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy90ZXh0LWxldmVsLXNlbWFudGljcy90aGUt
YS1lbGVtZW50L2EudGV4dC1zZXR0ZXItMDEtcHJldHR5LWRpZmYuaHRtbFVUBQADfIhLV3V4CwAB
BPUBAAAEUAAAAFBLAQIeAwoAAAAAADSNvUgAAAAAAAAAAAAAAAAqABgAAAAAAAAAEADtQUcPDABp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9VVAUAA0OMS1d1eAsAAQT1
AQAABFAAAABQSwECHgMUAAIACAAzjb1ITZ6cTFgAAACyAAAASgAYAAAAAAABAAAApIGrDwwAaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfZGVs
ZXRlLWFjdHVhbC50eHRVVAUAA0GMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAzjb1I7YNT
kBABAAAyAgAASAAYAAAAAAABAAAApIGHEAwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfZGVsZXRlLWRpZmYudHh0VVQFAANBjEtXdXgLAAEE
9QEAAARQAAAAUEsBAh4DFAACAAgAM429SGQ+ZAZCAAAARgAAAEwAGAAAAAAAAQAAAKSBGRIMAGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2Rl
bGV0ZS1leHBlY3RlZC50eHRVVAUAA0GMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAzjb1I
PhK6zOoHAABXGwAAUAAYAAAAAAABAAAApIHhEgwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfZGVsZXRlLXByZXR0eS1kaWZmLmh0bWxVVAUA
A0GMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAzjb1I3WRkMaIAAAAiAQAASwAYAAAAAAAB
AAAApIFVGwwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2Jq
ZWN0c3RvcmVfZGVsZXRlNy1hY3R1YWwudHh0VVQFAANBjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4D
FAACAAgAM429SARIVn19AQAA7wIAAEkAGAAAAAAAAQAAAKSBfBwMAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTctZGlmZi50eHRV
VAUAA0GMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAzjb1I3rsp1nUAAACPAAAATQAYAAAA
AAABAAAApIF8HgwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
b2JqZWN0c3RvcmVfZGVsZXRlNy1leHBlY3RlZC50eHRVVAUAA0GMS1d1eAsAAQT1AQAABFAAAABQ
SwECHgMUAAIACAAzjb1ItlXpt20IAAA/HQAAUQAYAAAAAAABAAAApIF4HwwAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfZGVsZXRlNy1wcmV0
dHktZGlmZi5odG1sVVQFAANBjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAM429SE2enExY
AAAAsgAAAE8AGAAAAAAAAQAAAKSBcCgMAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
SW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX2RlbGV0ZUluZGV4LWFjdHVhbC50eHRVVAUAA0GMS1d1
eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAzjb1IS/Kz4QgBAAAwAgAATQAYAAAAAAABAAAApIFR
KQwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3Rv
cmVfZGVsZXRlSW5kZXgtZGlmZi50eHRVVAUAA0GMS1d1eAsAAQT1AQAABFAAAABQSwECHgMKAAIA
AAAzjb1IPgUl9joAAAA6AAAAUQAYAAAAAAABAAAApIHgKgwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfZGVsZXRlSW5kZXgtZXhwZWN0ZWQu
dHh0VVQFAANBjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAM429SKppoODiBwAAUBsAAFUA
GAAAAAAAAQAAAKSBpSsMAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYm9iamVjdHN0b3JlX2RlbGV0ZUluZGV4LXByZXR0eS1kaWZmLmh0bWxVVAUAA0GMS1d1eAsA
AQT1AQAABFAAAABQSwECHgMUAAIACAAwi71I5hIzbboAAAB5AQAARwAYAAAAAAABAAAApIEWNAwA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVf
cHV0LWFjdHVhbC50eHRVVAUAA3yIS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAwi71I/pnF
Sl8BAADnAgAARQAYAAAAAAABAAAApIFRNQwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfcHV0LWRpZmYudHh0VVQFAAN8iEtXdXgLAAEE9QEA
AARQAAAAUEsBAh4DCgACAAAAMIu9SHa+ZYk3AAAANwAAAEkAGAAAAAAAAQAAAKSBLzcMAGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX3B1dC1l
eHBlY3RlZC50eHRVVAUAA3yIS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAwi71IaDY/7U4I
AADTHQAATQAYAAAAAAABAAAApIHpNwwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRib2JqZWN0c3RvcmVfcHV0LXByZXR0eS1kaWZmLmh0bWxVVAUAA3yIS1d1eAsA
AQT1AQAABFAAAABQSwECHgMUAAIACAAwi71InLsyLaIAAAAiAQAASQAYAAAAAAABAAAApIG+QAwA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVf
cHV0MTItYWN0dWFsLnR4dFVUBQADe4hLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADCLvUjd
N7BwZgEAAMICAABHABgAAAAAAAEAAACkgeNBDABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQxMi1kaWZmLnR4dFVUBQADe4hLV3V4CwAB
BPUBAAAEUAAAAFBLAQIeAxQAAgAIADCLvUgq8L4WXAAAAGYAAABLABgAAAAAAAEAAACkgcpDDABp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9w
dXQxMi1leHBlY3RlZC50eHRVVAUAA3uIS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAwi71I
/L4/B1YIAAAYHQAATwAYAAAAAAABAAAApIGrRAwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfcHV0MTItcHJldHR5LWRpZmYuaHRtbFVUBQAD
e4hLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADCLvUjiFaIFsgAAAGgBAABJABgAAAAAAAEA
AACkgYpNDABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmpl
Y3RzdG9yZV9wdXQxMy1hY3R1YWwudHh0VVQFAAN7iEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAAC
AAgAMIu9SNlVjH+PAQAAKwMAAEcAGAAAAAAAAQAAAKSBv04MAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX3B1dDEzLWRpZmYudHh0VVQFAAN7
iEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAMIu9SKwR795uAAAAiAAAAEsAGAAAAAAAAQAA
AKSBz1AMAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVj
dHN0b3JlX3B1dDEzLWV4cGVjdGVkLnR4dFVUBQADe4hLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQA
AgAIADCLvUjL7jrdeAgAAD8eAABPABgAAAAAAAEAAACkgcJRDABpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQxMy1wcmV0dHktZGlmZi5o
dG1sVVQFAAN7iEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAMIu9SOIVogWyAAAAaAEAAEkA
GAAAAAAAAQAAAKSBw1oMAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2lkYm9iamVjdHN0b3JlX3B1dDE0LWFjdHVhbC50eHRVVAUAA3uIS1d1eAsAAQT1AQAABFAAAABQ
SwECHgMUAAIACAAwi71Iwchp/oYBAAAZAwAARwAYAAAAAAABAAAApIH4WwwAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfcHV0MTQtZGlmZi50
eHRVVAUAA3uIS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAwi71IQsRaHmcAAAB2AAAASwAY
AAAAAAABAAAApIH/XQwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIv
aWRib2JqZWN0c3RvcmVfcHV0MTQtZXhwZWN0ZWQudHh0VVQFAAN7iEtXdXgLAAEE9QEAAARQAAAA
UEsBAh4DFAACAAgAMIu9SDmoHMJsCAAALR4AAE8AGAAAAAAAAQAAAKSB614MAGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX3B1dDE0LXByZXR0
eS1kaWZmLmh0bWxVVAUAA3uIS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAwi71I4hWiBbIA
AABoAQAASQAYAAAAAAABAAAApIHgZwwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRib2JqZWN0c3RvcmVfcHV0MTUtYWN0dWFsLnR4dFVUBQADe4hLV3V4CwABBPUB
AAAEUAAAAFBLAQIeAxQAAgAIADCLvUjH+Ln1hwEAACYDAABHABgAAAAAAAEAAACkgRVpDABpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQx
NS1kaWZmLnR4dFVUBQADe4hLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADCLvUjPlk56awAA
AIMAAABLABgAAAAAAAEAAACkgR1rDABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0lu
ZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQxNS1leHBlY3RlZC50eHRVVAUAA3uIS1d1eAsAAQT1
AQAABFAAAABQSwECHgMUAAIACAAwi71IDhWKJGwIAAA6HgAATwAYAAAAAAABAAAApIENbAwAaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfcHV0
MTUtcHJldHR5LWRpZmYuaHRtbFVUBQADe4hLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADCL
vUjiFaIFsgAAAGgBAABJABgAAAAAAAEAAACkgQJ1DABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQxNi1hY3R1YWwudHh0VVQFAAN7iEtX
dXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAMIu9SBztmm+TAQAALwMAAEcAGAAAAAAAAQAAAKSB
N3YMAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0
b3JlX3B1dDE2LWRpZmYudHh0VVQFAAN7iEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAMIu9
SLsHVyZ1AAAAjAAAAEsAGAAAAAAAAQAAAKSBS3gMAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX3B1dDE2LWV4cGVjdGVkLnR4dFVUBQADe4hL
V3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADCLvUgkXr4KfQgAAEMeAABPABgAAAAAAAEAAACk
gUV5DABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3Rz
dG9yZV9wdXQxNi1wcmV0dHktZGlmZi5odG1sVVQFAAN8iEtXdXgLAAEE9QEAAARQAAAAUEsBAh4D
FAACAAgANI29SE2enExYAAAAsgAAAEgAGAAAAAAAAQAAAKSBS4IMAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX3B1dDUtYWN0dWFsLnR4dFVU
BQADQ4xLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADSNvUg5ttZFEwEAADcCAABGABgAAAAA
AAEAAACkgSWDDABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJv
YmplY3RzdG9yZV9wdXQ1LWRpZmYudHh0VVQFAANDjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAAC
AAgANI29SJ1YGXlFAAAATwAAAEoAGAAAAAAAAQAAAKSBuIQMAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX3B1dDUtZXhwZWN0ZWQudHh0VVQF
AANDjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgANI29SKyBV5/0BwAAYhsAAE4AGAAAAAAA
AQAAAKSBgYUMAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9i
amVjdHN0b3JlX3B1dDUtcHJldHR5LWRpZmYuaHRtbFVUBQADQ4xLV3V4CwABBPUBAAAEUAAAAFBL
AQIeAxQAAgAIADSNvUhNnpxMWAAAALIAAABIABgAAAAAAAEAAACkgf2NDABpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQ2LWFjdHVhbC50
eHRVVAUAA0OMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAA0jb1IeKVVmA4BAAAmAgAARgAY
AAAAAAABAAAApIHXjgwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIv
aWRib2JqZWN0c3RvcmVfcHV0Ni1kaWZmLnR4dFVUBQADQ4xLV3V4CwABBPUBAAAEUAAAAFBLAQIe
AwoAAgAAADSNvUh4HbxfPgAAAD4AAABKABgAAAAAAAEAAACkgWWQDABpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQ2LWV4cGVjdGVkLnR4
dFVUBQADQ4xLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADSNvUhrncA56AcAAE0bAABOABgA
AAAAAAEAAACkgSeRDABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9p
ZGJvYmplY3RzdG9yZV9wdXQ2LXByZXR0eS1kaWZmLmh0bWxVVAUAA0OMS1d1eAsAAQT1AQAABFAA
AABQSwECHgMUAAIACAA0jb1ITZ6cTFgAAACyAAAASAAYAAAAAAABAAAApIGXmQwAaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfcHV0OC1hY3R1
YWwudHh0VVQFAANDjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgANI29SMP1Fb0mAQAAVAIA
AEYAGAAAAAAAAQAAAKSBcZoMAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2lkYm9iamVjdHN0b3JlX3B1dDgtZGlmZi50eHRVVAUAA0OMS1d1eAsAAQT1AQAABFAAAABQ
SwECHgMUAAIACAA0jb1IKHpS5F0AAABsAAAASgAYAAAAAAABAAAApIEXnAwAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRib2JqZWN0c3RvcmVfcHV0OC1leHBlY3Rl
ZC50eHRVVAUAA0OMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAA0jb1ITh4LTQEIAAB7GwAA
TgAYAAAAAAABAAAApIH4nAwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvaWRib2JqZWN0c3RvcmVfcHV0OC1wcmV0dHktZGlmZi5odG1sVVQFAANDjEtXdXgLAAEE9QEA
AARQAAAAUEsBAh4DFAACAAgANI29SE2enExYAAAAsgAAAEgAGAAAAAAAAQAAAKSBgaUMAGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX3B1dDkt
YWN0dWFsLnR4dFVUBQADQ4xLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADSNvUjPttW7OgEA
AHACAABGABgAAAAAAAEAAACkgVumDABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0lu
ZGV4ZWREQi9pZGJvYmplY3RzdG9yZV9wdXQ5LWRpZmYudHh0VVQFAANDjEtXdXgLAAEE9QEAAARQ
AAAAUEsBAh4DFAACAAgANI29SP24qhxvAAAAiAAAAEoAGAAAAAAAAQAAAKSBFagMAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYm9iamVjdHN0b3JlX3B1dDktZXhw
ZWN0ZWQudHh0VVQFAANDjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAMIu9SOIVogWyAAAA
aAEAAEMAGAAAAAAAAQAAAKSBCKkMAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5k
ZXhlZERCL2lkYnRyYW5zYWN0aW9uLWFjdHVhbC50eHRVVAUAA3yIS1d1eAsAAQT1AQAABFAAAABQ
SwECHgMUAAIACAAwi71IzJVgOGMBAAABAwAAQQAYAAAAAAABAAAApIE3qgwAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRidHJhbnNhY3Rpb24tZGlmZi50eHRVVAUA
A3yIS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAwi71IIHziw00AAABpAAAARQAYAAAAAAAB
AAAApIEVrAwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRidHJh
bnNhY3Rpb24tZXhwZWN0ZWQudHh0VVQFAAN8iEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA
MIu9SOIVogWyAAAAaAEAAE4AGAAAAAAAAQAAAKSB4awMAGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvSW5kZXhlZERCL2lkYnRyYW5zYWN0aW9uLW9uY29tcGxldGUtYWN0dWFsLnR4dFVU
BQADfIhLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADCLvUjZThdDTwEAANUCAABMABgAAAAA
AAEAAACkgRuuDABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJ0
cmFuc2FjdGlvbi1vbmNvbXBsZXRlLWRpZmYudHh0VVQFAAN8iEtXdXgLAAEE9QEAAARQAAAAUEsB
Ah4DCgACAAAAMIu9SK2JWNYoAAAAKAAAAFAAGAAAAAAAAQAAAKSB8K8MAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2lkYnRyYW5zYWN0aW9uLW9uY29tcGxldGUtZXhw
ZWN0ZWQudHh0VVQFAAN8iEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAMIu9SIQAlz81CAAA
5B0AAFQAGAAAAAAAAQAAAKSBorAMAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5k
ZXhlZERCL2lkYnRyYW5zYWN0aW9uLW9uY29tcGxldGUtcHJldHR5LWRpZmYuaHRtbFVUBQADfIhL
V3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAADSNvUgAAAAAAAAAAAAAAAAvABgAAAAAAAAAEADt
QWW5DABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L1VUBQAD
Q4xLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADONvUhdiPfSogAAACIBAABXABgAAAAAAAEA
AACkgc65DABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2dl
dHJlc3BvbnNlaGVhZGVyLXNlcnZlci1kYXRlLWFjdHVhbC50eHRVVAUAA0GMS1d1eAsAAQT1AQAA
BFAAAABQSwECHgMUAAIACAAzjb1IE2A9f0wBAAC0AgAAVQAYAAAAAAABAAAApIEBuwwAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9nZXRyZXNwb25zZWhlYWRl
ci1zZXJ2ZXItZGF0ZS1kaWZmLnR4dFVUBQADQYxLV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAgAA
ADONvUgPL1JkPAAAADwAAABZABgAAAAAAAEAAACkgdy8DABpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2dldHJlc3BvbnNlaGVhZGVyLXNlcnZlci1kYXRlLWV4
cGVjdGVkLnR4dFVUBQADQYxLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADONvUiz/j4SOQgA
APgcAABdABgAAAAAAAEAAACkgau9DABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hN
TEh0dHBSZXF1ZXN0L2dldHJlc3BvbnNlaGVhZGVyLXNlcnZlci1kYXRlLXByZXR0eS1kaWZmLmh0
bWxVVAUAA0GMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAzjb1I4hWiBbIAAABoAQAAXgAY
AAAAAAABAAAApIF7xgwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVx
dWVzdC9nZXRyZXNwb25zZWhlYWRlci1zcGVjaWFsLWNoYXJhY3RlcnMtYWN0dWFsLnR4dFVUBQAD
QYxLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADONvUhsJp4fXgEAAAoDAABcABgAAAAAAAEA
AACkgcXHDABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2dl
dHJlc3BvbnNlaGVhZGVyLXNwZWNpYWwtY2hhcmFjdGVycy1kaWZmLnR4dFVUBQADQYxLV3V4CwAB
BPUBAAAEUAAAAFBLAQIeAwoAAgAAADONvUicXKxVPQAAAD0AAABgABgAAAAAAAEAAACkgbnJDABp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2dldHJlc3BvbnNl
aGVhZGVyLXNwZWNpYWwtY2hhcmFjdGVycy1leHBlY3RlZC50eHRVVAUAA0GMS1d1eAsAAQT1AQAA
BFAAAABQSwECHgMUAAIACAAzjb1IqM0jVEsIAAAJHgAAZAAYAAAAAAABAAAApIGQygwAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9nZXRyZXNwb25zZWhlYWRl
ci1zcGVjaWFsLWNoYXJhY3RlcnMtcHJldHR5LWRpZmYuaHRtbFVUBQADQYxLV3V4CwABBPUBAAAE
UAAAAFBLAQIeAxQAAgAIADONvUjiFaIFsgAAAGgBAABfABgAAAAAAAEAAACkgXnTDABpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2dldHJlc3BvbnNlaGVhZGVy
LXVuc2VudC1vcGVuZWQtc3RhdGUtYWN0dWFsLnR4dFVUBQADQYxLV3V4CwABBPUBAAAEUAAAAFBL
AQIeAxQAAgAIADONvUiy5vqwYgEAABQDAABdABgAAAAAAAEAAACkgcTUDABpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2dldHJlc3BvbnNlaGVhZGVyLXVuc2Vu
dC1vcGVuZWQtc3RhdGUtZGlmZi50eHRVVAUAA0GMS1d1eAsAAQT1AQAABFAAAABQSwECHgMKAAIA
AAAzjb1IM8f7S0UAAABFAAAAYQAYAAAAAAABAAAApIG91gwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9nZXRyZXNwb25zZWhlYWRlci11bnNlbnQtb3BlbmVk
LXN0YXRlLWV4cGVjdGVkLnR4dFVUBQADQYxLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADON
vUgBcQRESwgAABIeAABlABgAAAAAAAEAAACkgZ3XDABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL1hNTEh0dHBSZXF1ZXN0L2dldHJlc3BvbnNlaGVhZGVyLXVuc2VudC1vcGVuZWQtc3Rh
dGUtcHJldHR5LWRpZmYuaHRtbFVUBQADQYxLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADSN
vUhNnpxMWAAAALIAAABHABgAAAAAAAEAAACkgYfgDABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4tdXJsLWJhc2UtYWN0dWFsLnR4dFVUBQADQ4xLV3V4
CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADSNvUjY2N6/BgEAAB0CAABFABgAAAAAAAEAAACkgWDh
DABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4tdXJs
LWJhc2UtZGlmZi50eHRVVAUAA0OMS1d1eAsAAQT1AQAABFAAAABQSwECHgMKAAIAAAA0jb1Icjjk
qjcAAAA3AAAASQAYAAAAAAABAAAApIHl4gwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9YTUxIdHRwUmVxdWVzdC9vcGVuLXVybC1iYXNlLWV4cGVjdGVkLnR4dFVUBQADQ4xLV3V4CwAB
BPUBAAAEUAAAAFBLAQIeAxQAAgAIADSNvUhNnpxMWAAAALIAAABQABgAAAAAAAEAAACkgZ/jDABp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4tdXJsLWJh
c2UtaW5zZXJ0ZWQtYWN0dWFsLnR4dFVUBQADQ4xLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAI
ADONvUhNnpxMWAAAALIAAABbABgAAAAAAAEAAACkgYHkDABpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4tdXJsLWJhc2UtaW5zZXJ0ZWQtYWZ0ZXItb3Bl
bi1hY3R1YWwudHh0VVQFAANCjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAM429SN3LXSEY
AQAAWQIAAFkAGAAAAAAAAQAAAKSBbuUMAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
WE1MSHR0cFJlcXVlc3Qvb3Blbi11cmwtYmFzZS1pbnNlcnRlZC1hZnRlci1vcGVuLWRpZmYudHh0
VVQFAANCjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAM429SO/Hgj5HAAAASwAAAF0AGAAA
AAAAAQAAAKSBGecMAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVl
c3Qvb3Blbi11cmwtYmFzZS1pbnNlcnRlZC1hZnRlci1vcGVuLWV4cGVjdGVkLnR4dFVUBQADQoxL
V3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADSNvUjKU7og9AcAAHMbAABhABgAAAAAAAEAAACk
gffnDABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4t
dXJsLWJhc2UtaW5zZXJ0ZWQtYWZ0ZXItb3Blbi1wcmV0dHktZGlmZi5odG1sVVQFAANDjEtXdXgL
AAEE9QEAAARQAAAAUEsBAh4DFAACAAgANI29SLNWKCUOAQAANgIAAE4AGAAAAAAAAQAAAKSBhvAM
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi11cmwt
YmFzZS1pbnNlcnRlZC1kaWZmLnR4dFVUBQADQ4xLV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAgAA
ADSNvUg5cZ9EPgAAAD4AAABSABgAAAAAAAEAAACkgRzyDABpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4tdXJsLWJhc2UtaW5zZXJ0ZWQtZXhwZWN0ZWQu
dHh0VVQFAANDjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgANI29SCvvfSjrBwAAWxsAAFYA
GAAAAAAAAQAAAKSB5vIMAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJl
cXVlc3Qvb3Blbi11cmwtYmFzZS1pbnNlcnRlZC1wcmV0dHktZGlmZi5odG1sVVQFAANDjEtXdXgL
AAEE9QEAAARQAAAAUEsBAh4DFAACAAgANI29SHKskPbkBwAASxsAAE0AGAAAAAAAAQAAAKSBYfsM
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi11cmwt
YmFzZS1wcmV0dHktZGlmZi5odG1sVVQFAANDjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgA
NI29SE2enExYAAAAsgAAAEgAGAAAAAAAAQAAAKSBzAMNAGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi11cmwtYm9ndXMtYWN0dWFsLnR4dFVUBQADQ4xL
V3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADSNvUgJ3Ik8PQEAAPMCAABGABgAAAAAAAEAAACk
gaYEDQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4t
dXJsLWJvZ3VzLWRpZmYudHh0VVQFAANDjEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgANI29
SI4cedeBAAAACgEAAEoAGAAAAAAAAQAAAKSBYwYNAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi11cmwtYm9ndXMtZXhwZWN0ZWQudHh0VVQFAANDjEtX
dXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgANI29SODVh7gkCAAA2RwAAE4AGAAAAAAAAQAAAKSB
aAcNAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi11
cmwtYm9ndXMtcHJldHR5LWRpZmYuaHRtbFVUBQADQ4xLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQA
AgAIADSNvUhNnpxMWAAAALIAAABLABgAAAAAAAEAAACkgRQQDQBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4tdXJsLWVuY29kaW5nLWFjdHVhbC50eHRV
VAUAA0OMS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAA0jb1IqDUg3U8BAAClAgAASQAYAAAA
AAABAAAApIHxEA0AaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVz
dC9vcGVuLXVybC1lbmNvZGluZy1kaWZmLnR4dFVUBQADQ4xLV3V4CwABBPUBAAAEUAAAAFBLAQIe
AxQAAgAIADSNvUjBE8EihQAAALYAAABNABgAAAAAAAEAAACkgcMSDQBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4tdXJsLWVuY29kaW5nLWV4cGVjdGVk
LnR4dFVUBQADQ4xLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADCLvUgH9jB2KAEAAHwDAABR
ABgAAAAAAAEAAACkgc8TDQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBS
ZXF1ZXN0L29wZW4tdXJsLW11bHRpLXdpbmRvdy0yLWFjdHVhbC50eHRVVAUAA3uIS1d1eAsAAQT1
AQAABFAAAABQSwECHgMUAAIACAAwi71IzYbifjgCAACxBQAATwAYAAAAAAABAAAApIGCFQ0AaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9vcGVuLXVybC1tdWx0
aS13aW5kb3ctMi1kaWZmLnR4dFVUBQADe4hLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADCL
vUi+7boyqAAAAN4AAABTABgAAAAAAAEAAACkgUMYDQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4tdXJsLW11bHRpLXdpbmRvdy0yLWV4cGVjdGVkLnR4
dFVUBQADe4hLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADCLvUjHU+DGUQkAAEsnAABXABgA
AAAAAAEAAACkgXgZDQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1
ZXN0L29wZW4tdXJsLW11bHRpLXdpbmRvdy0yLXByZXR0eS1kaWZmLmh0bWxVVAUAA3uIS1d1eAsA
AQT1AQAABFAAAABQSwECHgMUAAIACAAwi71I4hWiBbIAAABoAQAAUQAYAAAAAAABAAAApIFaIw0A
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9vcGVuLXVybC1t
dWx0aS13aW5kb3ctMy1hY3R1YWwudHh0VVQFAAN7iEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAAC
AAgAMIu9SGFFrgO9AQAAjwMAAE8AGAAAAAAAAQAAAKSBlyQNAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi11cmwtbXVsdGktd2luZG93LTMtZGlmZi50
eHRVVAUAA3uIS1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAwi71IRDRwA6cAAADaAAAAUwAY
AAAAAAABAAAApIHdJg0AaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVx
dWVzdC9vcGVuLXVybC1tdWx0aS13aW5kb3ctMy1leHBlY3RlZC50eHRVVAUAA3uIS1d1eAsAAQT1
AQAABFAAAABQSwECHgMUAAIACAAwi71IaJ5FHLEIAADXHwAAVwAYAAAAAAABAAAApIERKA0AaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9vcGVuLXVybC1tdWx0
aS13aW5kb3ctMy1wcmV0dHktZGlmZi5odG1sVVQFAAN7iEtXdXgLAAEE9QEAAARQAAAAUEsBAh4D
FAACAAgAMIu9SOIVogWyAAAAaAEAAFEAGAAAAAAAAQAAAKSBUzENAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi11cmwtbXVsdGktd2luZG93LTQtYWN0
dWFsLnR4dFVUBQADe4hLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADCLvUjE4SMNjAEAADcD
AABPABgAAAAAAAEAAACkgZAyDQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0
dHBSZXF1ZXN0L29wZW4tdXJsLW11bHRpLXdpbmRvdy00LWRpZmYudHh0VVQFAAN7iEtXdXgLAAEE
9QEAAARQAAAAUEsBAh4DFAACAAgAMIu9SKjcnrl1AAAAhAAAAFMAGAAAAAAAAQAAAKSBpTQNAGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi11cmwtbXVs
dGktd2luZG93LTQtZXhwZWN0ZWQudHh0VVQFAAN7iEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAAC
AAgAMIu9SC9dJNl1CAAAQx4AAFcAGAAAAAAAAQAAAKSBpzUNAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvWE1MSHR0cFJlcXVlc3Qvb3Blbi11cmwtbXVsdGktd2luZG93LTQtcHJldHR5
LWRpZmYuaHRtbFVUBQADe4hLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADCLvUjiFaIFsgAA
AGgBAABRABgAAAAAAAEAAACkga0+DQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hN
TEh0dHBSZXF1ZXN0L29wZW4tdXJsLW11bHRpLXdpbmRvdy01LWFjdHVhbC50eHRVVAUAA3uIS1d1
eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAwi71IRP7r4JcBAABGAwAATwAYAAAAAAABAAAApIHq
Pw0AaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9vcGVuLXVy
bC1tdWx0aS13aW5kb3ctNS1kaWZmLnR4dFVUBQADe4hLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQA
AgAIADCLvUjYVMzvgAAAAJIAAABTABgAAAAAAAEAAACkgQpCDQBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4tdXJsLW11bHRpLXdpbmRvdy01LWV4cGVj
dGVkLnR4dFVUBQADe4hLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIADCLvUg7Fg0MiAgAAAcf
AABXABgAAAAAAAEAAACkgRdDDQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0
dHBSZXF1ZXN0L29wZW4tdXJsLW11bHRpLXdpbmRvdy01LXByZXR0eS1kaWZmLmh0bWxVVAUAA3uI
S1d1eAsAAQT1AQAABFAAAABQSwECHgMUAAIACAAwi71I4hWiBbIAAABoAQAATwAYAAAAAAABAAAA
pIEwTA0AaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9vcGVu
LXVybC1tdWx0aS13aW5kb3ctYWN0dWFsLnR4dFVUBQADe4hLV3V4CwABBPUBAAAEUAAAAFBLAQIe
AxQAAgAIADCLvUiQk5XeXwEAAPECAABNABgAAAAAAAEAAACkgWtNDQBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBSZXF1ZXN0L29wZW4tdXJsLW11bHRpLXdpbmRvdy1kaWZm
LnR4dFVUBQADe4hLV3V4CwABBPUBAAAEUAAAAFBLAQIeAwoAAgAAADCLvUj8/nkwQQAAAEEAAABR
ABgAAAAAAAEAAACkgVFPDQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1hNTEh0dHBS
ZXF1ZXN0L29wZW4tdXJsLW11bHRpLXdpbmRvdy1leHBlY3RlZC50eHRVVAUAA3uIS1d1eAsAAQT1
AQAABFAAAABQSwECHgMUAAIACAAwi71IjMiLL04IAACWHgAAVQAYAAAAAAABAAAApIEdUA0AaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9YTUxIdHRwUmVxdWVzdC9vcGVuLXVybC1tdWx0
aS13aW5kb3ctcHJldHR5LWRpZmYuaHRtbFVUBQADfIhLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQA
AgAIAC6NvUgp++ViXQIAAD4VAAAaABgAAAAAAAEAAACkgfpYDQBweXdlYnNvY2tldC53cy5sb2ct
ZXJyLnR4dFVUBQADN4xLV3V4CwABBPUBAAAEUAAAAFBLAQIeAxQAAgAIAC6NvUhxjm1FBAEAAI8C
AAAaABgAAAAAAAEAAACkgatbDQBweXdlYnNvY2tldC53cy5sb2ctb3V0LnR4dFVUBQADN4xLV3V4
CwABBPUBAAAEUAAAAFBLAQIeAwoAAAAAAACNvUgAAAAAAAAAAAAAAAAbABgAAAAAAAAAAACkgQNd
DQBweXdlYnNvY2tldC53c3MubG9nLWVyci50eHRVVAUAA+CLS1d1eAsAAQT1AQAABFAAAABQSwEC
HgMKAAAAAAAAjb1IAAAAAAAAAAAAAAAAGwAYAAAAAAAAAAAApIFYXQ0AcHl3ZWJzb2NrZXQud3Nz
LmxvZy1vdXQudHh0VVQFAAPgi0tXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAS429SL56j7JO
JwAAx6kAAAwAGAAAAAAAAQAAAKSBrV0NAHJlc3VsdHMuaHRtbFVUBQADboxLV3V4CwABBPUBAAAE
UAAAAFBLAQIeAxQAAgAIAEuNvUiNEwWy8FcFAHJqHQAKABgAAAAAAAEAAACkgUGFDQBzdGF0cy5q
c29uVVQFAANujEtXdXgLAAEE9QEAAARQAAAAUEsBAh4DFAACAAgAS429SDBIoCH41AAAS28TABkA
GAAAAAAAAQAAAKSBdd0SAHdwdHdrX3Byb2Nlc3NfbG9nLm91dC50eHRVVAUAA22MS1d1eAsAAQT1
AQAABFAAAABQSwUGAAAAAGwCbAIsdQEAwLITAAAA
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280103</attachid>
            <date>2016-05-30 10:45:20 -0700</date>
            <delta_ts>2016-06-08 13:37:43 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>75926</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAxNDk5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2NiBA
QAorMjAxNi0wNS0yOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IEltcGxlbWVudCB0YWJsZS1iYXNlZCBzd2l0Y2hlcyBpbiBCMy9BaXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTE0MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgSWYgYSBzd2l0Y2ggc3Rh
dGVtZW50IGdldHMgbGFyZ2UsIGl0J3MgYmV0dGVyIHRvIGV4cHJlc3MgaXQgYXMgYW4gaW5kaXJl
Y3QganVtcCByYXRoZXIgdGhhbgorICAgICAgICB1c2luZyBhIGJpbmFyeSBzd2l0Y2ggKGRpdmlk
ZS1hbmQtY29ucXVlciB0cmVlIG9mIGNvbXBhcmlzb25zIGxlYWRpbmcgdG8gTyhsb2cgbikgYnJh
bmNoZXMgdG8KKyAgICAgICAgZ2V0IHRvIHRoZSBzd2l0Y2ggY2FzZSkuIFdoZW4gZGVhbGluZyB3
aXRoIGludGVnZXIgc3dpdGNoZXMsIEZUTCB3aWxsIGFscmVhZHkgdXNlIHRoZSBCMworICAgICAg
ICBTd2l0Y2ggYW5kIGV4cGVjdCB0aGlzIHRvIGdldCBsb3dlcmVkIGFzIGVmZmljaWVudGx5IGFz
IHBvc3NpYmxlOyBpdCdzIGEgYnVnIHRoYXQgQjMgd2lsbAorICAgICAgICBhbHdheXMgdXNlIGEg
YmluYXJ5IHN3aXRjaCByYXRoZXIgdGhhbiBpbmRpcmVjdCBqdW1wcy4gV2hlbiBkZWFsaW5nIHdp
dGggc3dpdGNoZXMgb3ZlciBzb21lCisgICAgICAgIG1vcmUgc29waGlzdGljYXRlZCB0eXBlcywg
d2UnZCB3YW50IEZUTCB0byBidWlsZCBhbiBpbmRpcmVjdCBqdW1wIHRhYmxlIGl0c2VsZiBhbmQg
dXNlCisgICAgICAgIHNvbWV0aGluZyBsaWtlIGEgaGFzaHRhYmxlIHRvIGZlZWQgaXQuIEluIHRo
YXQgY2FzZSwgdGhlcmUgd2lsbCBiZSBubyBCMyBTd2l0Y2g7IHdlJ2xsIHdhbnQKKyAgICAgICAg
c29tZSBraW5kIG9mIGluZGlyZWN0IGp1bXAgaW5zdHJ1Y3Rpb24uCisgICAgICAgIAorICAgICAg
ICBUaGlzIGltcGxpZXMgdGhhdCB3ZSB3YW50IEIzIHRvIGhhdmUgdGhlIGFiaWxpdHkgdG8gbG93
ZXIgU3dpdGNoIHRvIGluZGlyZWN0IGp1bXBzIGFuZCB0bworICAgICAgICBleHBvc2UgdGhvc2Ug
aW5kaXJlY3QganVtcHMgaW4gSVIgc28gdGhhdCB0aGUgRlRMIGNvdWxkIGRvIGl0cyBvd24gaW5k
aXJlY3QganVtcHMgZm9yCisgICAgICAgIHN3aXRjaGVzIG92ZXIgbW9yZSBjb21wbGljYXRlZCB0
aGluZ3MgbGlrZSBzdHJpbmdzLiBUaGlzIGNoYW5nZSBpbnRyb2R1Y2VzIGFuIGluZGlyZWN0IGp1
bXAKKyAgICAgICAgaW5zdHJ1Y3Rpb24gdG8gQjMgYW5kIGNhbGxzIGl0IFBvbHlKdW1wLiBJdCBo
YXMgc29tZSB1bmlxdWUgc2VtYW50aWNzIHRoYXQgbWFrZSBpdCB2ZXJ5CisgICAgICAgIGRpZmZl
cmVudCBmcm9tICJpbmRpcmVjdCBqdW1wcyIsICJpbmRpcmVjdCBicmFuY2hlcyIsIGFuZCAiY29t
cHV0ZWQgZ290b3MiIC0gYWxsIHRlcm1zIG9mIGFydAorICAgICAgICB1c2VkIGluIG90aGVyIGNv
bXBpbGVycy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaW1wbGVtZW50cyB0aGUgbW9zdCBiYXNp
YyBraW5kIG9mIFN3aXRjaC10by1Qb2x5SnVtcCBsb3dlcmluZyBpbiBCMzo6bG93ZXJNYWNyb3Mo
KS4gQXMKKyAgICAgICAgcGFydCBvZiB0aGUgZXhpc3RpbmcgZGl2aWRlLWFuZC1jb25xdWVyIHRo
YXQgY3JlYXRlcyBicmFuY2hlcywgaWYgaXQgZGV0ZWN0cyB0aGF0IHRoZSBzZXQgb2YKKyAgICAg
ICAgY2FzZXMgc2F0aXNmaWVzIHNvbWUgY29uZGl0aW9ucyAoZGVuc2l0eSBvZiBjYXNlIHZhbHVl
cyBhbmQgdG90YWwgc2l6ZSksIHRoZW4gaXQgd2lsbCBlbWl0IGEKKyAgICAgICAgUG9seUp1bXAu
CisgICAgICAgIAorICAgICAgICBUaGUgcHJvYmxlbSB3aXRoIGNsYXNzaWMgaW5kaXJlY3QganVt
cHMgaXMgdGhhdCB0aGV5IGZvcmNlIHRoZSBjb21waWxlciB0byBiZSBjb25zZXJ2YXRpdmUKKyAg
ICAgICAgYWJvdXQgY29udHJvbCBmbG93LiBUaGUgY29tcGlsZXIgbXVzdCBhc3N1bWUgdGhhdCB0
aGUgaW5kaXJlY3QganVtcCBtYXkgdHJhbnNmZXIgY29udHJvbCBmbG93CisgICAgICAgIHRvIGFu
eSBlc2NhcGVkIGJsb2NrIChibG9jayBsYWJlbGVkIGFzIGJlaW5nIGEgcG9zc2libGUgdGFyZ2V0
IGZvciBpbmRpcmVjdCBqdW1wcywgb3IgaWYgbm8KKyAgICAgICAgc3VjaCBsYWJlbGluZyBpcyBh
dmFpbGFibGUsIHRoZSBjb21waWxlciBtdXN0IGFzc3VtZSB0aGF0IGl0IG1heSB0YXJnZXQgYW55
IGJsb2NrKS4gVGhlIHdvcnN0CisgICAgICAgIHBhcnQgaXMgdGhhdCB0aGUgaW1wbGljaXQgY29u
dHJvbCBmbG93IGVkZ2VzIGZyb20gdGhlIGluZGlyZWN0IGp1bXAgdG8gdGhlIGVzY2FwZWQgYmxv
Y2tzCisgICAgICAgIGNhbm5vdCBiZSBicm9rZW4uIFRoaXMgaW52YWxpZGF0ZXMgYSBwcmluY2lw
bGUgb2YgQjMgSVI6IGFueSBwaGFzZSBtYXkgYnJlYWsgYW55IGNyaXRpY2FsCisgICAgICAgIGVk
Z2UgZm9yIGFueSByZWFzb24uIE91ciBTU0EgY29udmVyc2lvbiB3b3VsZCBicmVhayBpZiB3ZSBy
ZXZva2VkIHRoaXMgZmVhdHVyZS4gSXQncyBhY3R1YWxseQorICAgICAgICBtdWNoIHdvcnNlIHRo
YW4gdGhpcyAtIGJhc2ljYWxseSBhbnkgbG9naWMgb3ZlciBjb250cm9sIGZsb3cgd291bGQgaGF2
ZSB0byBiZSBoYWNrZWQgdG8gZGVhbAorICAgICAgICB3aXRoIHRoZXNlIHVuYnJlYWthYmxlIGVk
Z2VzLiBUaGlzIHdvdWxkIG1lYW4gY2hhbmdpbmcgYWxsIENGRyB0cmFuc2Zvcm1hdGlvbiB1dGls
aXRpZXMgYW5kCisgICAgICAgIHBhc3Nlcy4gV2UgaGF2ZSBhIGxvdCBvZiB0aG9zZSBhbmQgd2Ug
d2FudCBpdCB0byBiZSBlYXN5IHRvIHdyaXRlIG5ldyBvbmVzLgorICAgICAgICAKKyAgICAgICAg
VGhpcyBpcyB3aHkgd2UgdXNlIHNvbWV0aGluZyBuZXcgYW5kIHF1aXRlIGRpZmZlcmVudCBmcm9t
IGNsYXNzaWMgaW5kaXJlY3QganVtcHMuIFBvbHlKdW1wCisgICAgICAgIG1ha2VzIHRoZSBjb250
cm9sIGZsb3cgZWRnZXMgZXhwbGljaXQuIFRoZSBjbGllbnQgbXVzdCBzdXBwbHkgdGhlIHN1Y2Nl
c3NvcnMgd2hlbiBpdCBjcmVhdGVzCisgICAgICAgIHRoZSBQb2x5SnVtcC4gVGhlIGNvbXBpbGVy
IG1heSByZXdpcmUgdGhvc2Ugc3VjY2Vzc29yIGVkZ2VzIHRoZSBzYW1lIHdheSB0aGF0IGl0IHdv
dWxkIHJld2lyZQorICAgICAgICBhbnkgY29udHJvbCBmbG93IGVkZ2VzLiBDb25zZXF1ZW50bHkg
dGhlIHZhc3QgbWFqb3JpdHkgb2YgQ0ZHIHJlYXNvbmluZyBpbiBCMyBpcyB1bmNoYW5nZWQuCisg
ICAgICAgIElmIHlvdSBkb24ndCB3YW50IHRvIHVuZGVyc3RhbmQgUG9seUp1bXAsIGp1c3QgdGhp
bmsgb2YgaXQgbGlrZSB5b3Ugd291bGQgYSBTd2l0Y2ggd2l0aCBhbgorICAgICAgICBvcGFxdWUg
aW5jb21pbmcgdmFsdWUuIFRoaXMgd29ya3MgYmVjYXVzZSB3ZSBkbyBub3QgYWRkIGFueSBub3Rp
b24gb2YgZXNjYXBlZCBiYXNpYyBibG9ja3MuCisgICAgICAgIEluc3RlYWQgb2YgbGV0dGluZyB0
aGUgY2xpZW50IGdldCB0aGUgcG9pbnRlcnMgdG8gYmFzaWMgYmxvY2tzIGJ5IGVzY2FwaW5nIHRo
ZW0gbGlrZSBpbiBMTFZNLAorICAgICAgICB5b3UgY2FuIG9ubHkgZ2V0IHRoZSBwb2ludGVycyBv
ZiB0aGUgc3VjY2Vzc29ycyBvZiBQb2x5SnVtcCBieSByZWdpc3RlcmluZyBhIGNhbGxiYWNrIHdp
dGgKKyAgICAgICAgUG9seUp1bXAuIFRoaXMgY2FsbGJhY2sgZG9lc24ndCBhY3R1YWxseSBnaXZl
IHlvdSB0aGUgYWRkcmVzc2VzIG9mIGJhc2ljIGJsb2Nrcy4gSXQganVzdAorICAgICAgICBnaXZl
cyB5b3UgdGhlIGFkZHJlc3NlcyB3aGVyZSB5b3UgbXVzdCBqdW1wIHRvIHRyYW5zZmVyIGNvbnRy
b2wgZmxvdyBmcm9tIHRoYXQgUG9seUp1bXAgdG8KKyAgICAgICAgaXRzIHN1Y2Nlc3NvcnMuIFRo
aXMgbWVhbnMgdGhhdCB0aGUgbWFnaWMgb2YgUG9seUp1bXAgaXMgY29uZmluZWQgb25seSB0byB0
aGUgUG9seUp1bXAgaXRzZWxmCisgICAgICAgIGFuZCBkb2Vzbid0IGluZmVjdCByZWFzb25pbmcg
YWJvdXQgdGhlIGJhc2ljIGJsb2NrcyB0aGF0IGl0IGp1bXBzIHRvLgorICAgICAgICAKKyAgICAg
ICAgVGhlIG9ubHkgZG93bnNpZGUgaXMgdGhhdCB0aGF0IFBvbHlKdW1wIGlzIG5vdCBjbG9uZWFi
bGUuIFlvdSBjYW4ndCBjbG9uZSBpdCBiZWNhdXNlIGlmIHlvdQorICAgICAgICBkaWQsIHRoZW4g
dGhlIHR3byByZXN1bHRpbmcgUG9seUp1bXBzIG1heSBoYXZlIHRoZWlyIHN1Y2Nlc3NvciBlZGdl
cyByZXdpcmVkIGluZGVwZW5kZW50bHkgb2YKKyAgICAgICAgZWFjaCBvdGhlci4gVGhpcyBjb3Vs
ZCBlYXNpbHkgaGFwcGVuIGlmIHdlIGJyZWFrIGNyaXRpY2FsIGVkZ2VzLiBJZiB0aGF0IGRpZCBo
YXBwZW4gdGhlbiBpdAorICAgICAgICB3b3VsZCBicmVhayB0aGUgY2xpZW50IG9mIFBvbHlKdW1w
OiB0aGV5IHdvdWxkIGhhdmUgYWxyZWFkeSBjcmVhdGVkIHNvbWV0aGluZyBsaWtlIGEganVtcAor
ICAgICAgICB0YWJsZSBhbmQgd2lsbCBiZSBwb3B1bGF0aW5nIGl0IHZpYSB0aGUgY2FsbGJhY2ss
IGJ1dCBub3cgdGhlIGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkIHR3aWNlLAorICAgICAgICBhbmQg
bWF5IHJldHVybiBkaWZmZXJlbnQganVtcCBkZXN0aW5hdGlvbnMgZWFjaCB0aW1lLiBTbywgdGhp
cyBwYXRjaCBpbnRyb2R1Y2VzCisgICAgICAgIFZhbHVlOjppc0Nsb25lYWJsZSgpIGFuZCB0ZWFj
aGVzIGJvdGggb2Ygb3VyIGNvZGUgc3BlY2lhbGl6YXRpb24gb3B0aW1pemF0aW9ucyAodGFpbAor
ICAgICAgICBkdXBsaWNhdGlvbiBhbmQgc2VsZWN0IHNwZWNpYWxpemF0aW9uKSB0byBiYWlsIGlm
IHRoZSBjb2RlIHRoZXkgd2FudCB0byBzcGVjaWFsaXplIGlzIG5vdAorICAgICAgICBjbG9uZWFi
bGUuIFRoaXMgaXMgdG90YWxseSBiZW5pZ24gbW9zdCBvZiB0aGUgdGltZSwgc2luY2UgdGhvc2Ug
b3B0aW1pemF0aW9ucyB1c3VhbGx5IHJ1bgorICAgICAgICBiZWZvcmUgU3dpdGNoIGxvd2VyaW5n
LiBDbGllbnRzIHRoYXQgdXNlIFBvbHlKdW1wIGRpcmVjdGx5IGhhdmUgdG8gYXBwcmVjaWF0ZSB0
aGUgdHJhZGUtb2ZmOgorICAgICAgICBQb2x5SnVtcCBtYXkgZ2FpbiB0aGVtIHNvbWUgcGVyZm9y
bWFuY2UgYnV0IHRoZXkgYXJlIG9wdGluZyBvdXQgb2Ygb3B0aW1pemF0aW9ucyB0aGF0IHVzZQor
ICAgICAgICBjbG9uaW5nLiBBIGNsb3NlIGNvcm9sbGFyeSBvZiB0aGUgbm8tY2xvbmUgcnVsZSBp
cyB0aGF0IHRoZSBjbGllbnQgY2Fubm90IGNyZWF0ZSBtdWx0aXBsZQorICAgICAgICBQb2x5SnVt
cHMgdGhhdCBhcmUgZmVkIGJ5IGEgY29tbW9uIGp1bXAgdGFibGU6IHRoZSBmYWN0IHRoYXQgZWFj
aCBQb2x5SnVtcCBoYXMgYSBjYWxsYmFjaworICAgICAgICB0aGF0IGp1c3QgdGVsbHMgeW91IHRo
ZSBqdW1wIGRlc3RpbmF0aW9ucyBmb3IgaXRzIHN1Y2Nlc3NvciAqZWRnZXMqLCBub3Qgc3VjY2Vz
c29yICpibG9ja3MqLAorICAgICAgICBtZWFucyB0aGF0IGlmIHlvdSBjcmVhdGUgdHdvIFBvbHlK
dW1wcyBhbmQgZ2l2ZSB0aGVtIHRoZSBzYW1lIHN1Y2Nlc3NvciBsaXN0LCB5b3UgYXJlIG5vdAor
ICAgICAgICBndWFyYW50ZWVkIHRoYXQgdGhleSB3aWxsIGdldCB0aGUgc2FtZSBqdW1wIGRlc3Rp
bmF0aW9ucy4gVGhpcyBodXJ0cyBpZiB5b3Ugd2FudCB0byB1c2UKKyAgICAgICAgUG9seUp1bXAg
Zm9yIHRocmVhZGVkIGludGVycHJldGVycyBidXQgaXQncyBoYXJtbGVzcyBmb3Igc3dpdGNoIGxv
d2VyaW5nLiBUaGUgZ29hbCBvZgorICAgICAgICBQb2x5SnVtcCBpcyB0byBiZSBhd2Vzb21lIGZv
ciBzd2l0Y2ggbG93ZXJpbmcgd2hpbGUgbm90IGJyZWFraW5nIHRoZSByZXN0IG9mIHRoZSBjb21w
aWxlciwgc28KKyAgICAgICAgdGhpcyBpcyBwcm9iYWJseSBmaW5lLgorICAgICAgICAKKyAgICAg
ICAgVGhlIGlzQ2xvbmVhYmxlKCkgbWV0aG9kIGN1cnJlbnRseSBvbmx5IHJldHVybnMgdHJ1ZSBm
b3IgUG9seUp1bXAsIGJ1dCBJIGFudGljaXBhdGUgd2Ugd2lsbAorICAgICAgICBhZGQgb3RoZXIg
bm9uLWNsb25lYWJsZSB0aGluZ3MgbGF0ZXIuIEkgdGhpbmsgaXMgaXMgaW5oZXJlbnQgaW4gYSBj
b21waWxlciB0aGF0IGFsbG93cyBzdWNoCisgICAgICAgIGN1c3RvbWl6ZWFiaWxpdHkgZm9yIGl0
cyBjbGllbnRzLiBGb3IgZXhhbXBsZSwgd2UgbWF5IHdhbnQgdG8gYWRkIGEgZmxhZyB0byBQYXRj
aHBvaW50IHRoYXQKKyAgICAgICAgbWFrZXMgaXQgbm9uLWNsb25lYWJsZS4gU29tZXRpbWVzIHdl
IGhhdmUgdG8ganVtcCB0aHJvdWdoIGhvb3BzIGluIHRoZSBGVEwgYmVjYXVzZSBvZiB0aGUKKyAg
ICAgICAgY2xvbmVhYmlsaXR5IG9mIHBhdGNocG9pbnRzLiBUaGlzIGhhcHBlbnMgaW4gT1NSIGV4
aXRzLCB3aGljaCBwYXkgYSBzaWduaWZpY2FudCBtZW1vcnkgY29zdAorICAgICAgICBmb3IgYWRk
aXRpb25hbCBkYXRhIHN0cnVjdHVyZXMgdGhhdCBhcmUgdGhlcmUgaW4gY2FzZSBhbiBleGl0IGdl
dHMgY2xvbmVkLiBJdCBtYXkgYmUgbW9yZQorICAgICAgICBwcm9maXRhYmxlIHRvIGp1c3Qgc2F5
IHRoYXQgT1NSIGV4aXRzIChpLmUuIENoZWNrcyBhbmQgSW52YWxpZGF0aW9uUG9pbnQgUGF0Y2hw
b2ludHMpIGFyZSBub3QKKyAgICAgICAgY2xvbmVhYmxlLiBTdXJlbHkgdGhpcyB3b3VsZCByZWR1
Y2UgdGFpbCBkdXBsaWNhdGlvbiwgYnV0IHRhaWwgZHVwbGljYXRpb24gaXMgbW9zdCBwcm9maXRh
YmxlCisgICAgICAgIHdoZW4gaXQgY2xvbmVzIG9ubHkgYSB0aW55IGFtb3VudCBvZiBjb2RlOyBp
ZiB0aGVyZSdzIGFuIGV4aXQgdGhlbiB3ZSdyZSBub3QgdGFsa2luZyBhYm91dCBhCisgICAgICAg
IHRpbnkgYW1vdW50IG9mIGNvZGUgYW55bW9yZS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaXMg
YSB+MzAlIHNwZWVkLXVwIG9uIG1pY3JvYmVuY2htYXJrcyB0aGF0IGhhdmUgYmlnIHN3aXRjaCBz
dGF0ZW1lbnRzICh+NjAgY2FzZXMpLiBJdCdzCisgICAgICAgIG5vdCBhIHNwZWVkLXVwIG9uIG1h
aW5zdHJlYW0gYmVuY2htYXJrcy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgYWxzbyBhZGRzIGEg
bmV3IHRlc3QgdG8gdGVzdGIzIGZvciBQb2x5SnVtcCwgR2V0LCBhbmQgU2V0LiBUaGUgRlRMIGRv
ZXMgbm90IGN1cnJlbnRseQorICAgICAgICB1c2UgUG9seUp1bXAgZGlyZWN0bHksIGJ1dCB3ZSB3
YW50IHRoaXMgdG8gYmUgcG9zc2libGUuIEl0IGFsc28gZG9lc24ndCB1c2UgR2V0L1NldCBkaXJl
Y3RseQorICAgICAgICBldmVuIHRob3VnaCB3ZSB3YW50IHRoaXMgdG8gYmUgcG9zc2libGUuIEl0
J3MgaW1wb3J0YW50IHRvIHRlc3QgdGhlc2Ugc2luY2Ugb3Bjb2RlcyB0aGF0CisgICAgICAgIHJl
c3VsdCBmcm9tIGxvd2VyaW5nIGRvbid0IGFmZmVjdCBlYXJseSBwaGFzZXMsIHNvIHdlIGNvdWxk
IGhhdmUgcmVncmVzc2lvbnMgaW4gZWFybHkgcGhhc2VzCisgICAgICAgIHJlbGF0ZWQgdG8gdGhl
c2Ugb3Bjb2RlcyB0aGF0IHdvdWxkbid0IGJlIGNhdWdodCBieSBhbnkgSlMgdGVzdC4gU28sIHRo
aXMgYWRkcyBhIHZlcnkgYmFzaWMKKyAgICAgICAgdGhyZWFkZWQgaW50ZXJwcmV0ZXIgdG8gdGVz
dGIzIGZvciBhIEJyYWluZnVjay1zdHlsZSBsYW5ndWFnZSwgYW5kIHRlc3RzIGl0IGJ5IGhhdmlu
ZyBpdCBydW4KKyAgICAgICAgYSBwcm9ncmFtIHRoYXQgcHJpbnRzIHRoZSBudW1iZXJzIDEuLjEw
MCBpbiBhIGxvb3AuIFVubGlrZSBhIHJlYWwgdGhyZWFkZWQgaW50ZXJwcmV0ZXIsIGl0CisgICAg
ICAgIHVzZXMgYSBjb21tb24gZGlzcGF0Y2ggYmxvY2sgcmF0aGVyIHRoYW4gaGF2aW5nIGRpc3Bh
dGNoIGF0IHRoZSB0ZXJtaW51cyBvZiBlYWNoIG9wY29kZS4KKyAgICAgICAgVGhhdCdzIG5lY2Vz
c2FyeSBiZWNhdXNlIFBvbHlKdW1wIGlzIG5vdCBjbG9uZWFibGUuIFRoZSBzdGF0ZSBvZiB0aGUg
aW50ZXJwcmV0ZXIgaXMKKyAgICAgICAgcmVwcmVzZW50ZWQgdXNpbmcgVmFyaWFibGVzIHRoYXQg
d2UgR2V0IGFuZCBTZXQsIHNvIGl0IHRlc3RzIEdldC9TZXQgYXMgd2VsbC4KKworICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9u
Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpqdW1wKToKKyAgICAg
ICAgKiBhc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxl
cjo6am1wX20pOgorICAgICAgICAqIGIzL0IzQmFzaWNCbG9jay5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpCYXNpY0Jsb2NrOjp1cGRhdGVQcmVkZWNlc3NvcnNBZnRlcik6CisgICAgICAgIChKU0M6
OkIzOjpCYXNpY0Jsb2NrOjppc0Nsb25lYWJsZSk6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Js
b2NrOjpkdW1wKToKKyAgICAgICAgKiBiMy9CM0Jhc2ljQmxvY2suaDoKKyAgICAgICAgKEpTQzo6
QjM6OkJhc2ljQmxvY2s6OmZyZXF1ZW5jeSk6CisgICAgICAgICogYjMvQjNDb21tb24uaDoKKyAg
ICAgICAgKEpTQzo6QjM6OmlzNjRCaXQpOgorICAgICAgICAqIGIzL0IzQ29udHJvbFZhbHVlLmg6
CisgICAgICAgICogYjMvQjNEYXRhU2VjdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkIzOjpEYXRh
U2VjdGlvbjo6RGF0YVNlY3Rpb24pOgorICAgICAgICAqIGIzL0IzRHVwbGljYXRlVGFpbHMuY3Bw
OgorICAgICAgICAqIGIzL0IzTG93ZXJNYWNyb3MuY3BwOgorICAgICAgICAqIGIzL0IzTG93ZXJU
b0Fpci5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okxvd2VyVG9BaXI6Omxvd2VyKToKKyAg
ICAgICAgKiBiMy9CM09wY29kZS5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgor
ICAgICAgICAqIGIzL0IzT3Bjb2RlLmg6CisgICAgICAgICogYjMvQjNQb2x5SnVtcFZhbHVlLmNw
cDogQWRkZWQuCisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjp+UG9seUp1bXBWYWx1
ZSk6CisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjphcHBlbmRTdWNjZXNzb3IpOgor
ICAgICAgICAoSlNDOjpCMzo6UG9seUp1bXBWYWx1ZTo6c2V0Q2FsbGJhY2tUYXNrKToKKyAgICAg
ICAgKEpTQzo6QjM6OlBvbHlKdW1wVmFsdWU6OmlzQ2xvbmVhYmxlKToKKyAgICAgICAgKEpTQzo6
QjM6OlBvbHlKdW1wVmFsdWU6OmR1bXBNZXRhKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1w
VmFsdWU6OmNsb25lSW1wbCk6CisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjpQb2x5
SnVtcFZhbHVlKToKKyAgICAgICAgKiBiMy9CM1BvbHlKdW1wVmFsdWUuaDogQWRkZWQuCisgICAg
ICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjphY2NlcHRzKToKKyAgICAgICAgKEpTQzo6QjM6
OlBvbHlKdW1wVmFsdWU6OnNldENhbGxiYWNrKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1w
VmFsdWU6OmNhbGxiYWNrVGFzayk6CisgICAgICAgICogYjMvQjNQcm9jZWR1cmUuY3BwOgorICAg
ICAgICAoSlNDOjpCMzo6UHJvY2VkdXJlOjpjbG9uZSk6CisgICAgICAgICogYjMvQjNQcm9jZWR1
cmUuaDoKKyAgICAgICAgKEpTQzo6QjM6OlByb2NlZHVyZTo6bGFzdFBoYXNlTmFtZSk6CisgICAg
ICAgIChKU0M6OkIzOjpQcm9jZWR1cmU6OmJ5cHJvZHVjdHMpOgorICAgICAgICAqIGIzL0IzUmVk
dWNlU3RyZW5ndGguY3BwOgorICAgICAgICAqIGIzL0IzVmFsaWRhdGUuY3BwOgorICAgICAgICAq
IGIzL0IzVmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6OmVmZmVjdHMpOgorICAg
ICAgICAoSlNDOjpCMzo6VmFsdWU6OmlzQ2xvbmVhYmxlKToKKyAgICAgICAgKEpTQzo6QjM6OlZh
bHVlOjprZXkpOgorICAgICAgICAqIGIzL0IzVmFsdWUuaDoKKyAgICAgICAgKiBiMy9haXIvQWly
Q29kZS5oOgorICAgICAgICAqIGIzL2Fpci9BaXJHZW5lcmF0ZS5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpBaXI6OmdlbmVyYXRlKToKKyAgICAgICAgKiBiMy9haXIvQWlySW5zdC5jcHA6CisgICAg
ICAgIChKU0M6OkIzOjpBaXI6Okluc3Q6Omhhc0FyZ0VmZmVjdHMpOgorICAgICAgICAoSlNDOjpC
Mzo6QWlyOjpJbnN0Ojppc0Nsb25lYWJsZSk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okluc3Q6
OmR1bXApOgorICAgICAgICAqIGIzL2Fpci9BaXJJbnN0Lmg6CisgICAgICAgICogYjMvYWlyL0Fp
ck9wY29kZS5vcGNvZGVzOgorICAgICAgICAqIGIzL3Rlc3RiMy5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpzaG91bGRCZVZlcmJvc2UpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN3aXRjaENoaWxs
RGl2KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RMYXRlUmVnaXN0ZXIpOgorICAgICAgICAoSlND
OjpCMzo6dGhyZWFkZWRJbnRlcnByZXRlclByaW50KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RU
aHJlYWRlZEludGVycHJldGVyKToKKyAgICAgICAgKEpTQzo6QjM6Onplcm8pOgorICAgICAgICAo
SlNDOjpCMzo6cnVuKToKKwogMjAxNi0wNS0yOSAgU2FhbSBiYXJhdGkgIDxzYmFyYXRpQGFwcGxl
LmNvbT4KIAogICAgICAgICBTdGFjayBvdmVyZmxvdyBjcmFzaGVzIHdpdGggZGVlcCBvciBjeWNs
aWMgcHJveHkgcHJvdG90eXBlIGNoYWlucwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NN
YWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxp
c3RzLnR4dAkocmV2aXNpb24gMjAxNDk5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtl
TGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xNDMsNiArMTQzLDcgQEAgc2V0KEphdmFTY3Jp
cHRDb3JlX1NPVVJDRVMKICAgICBiMy9CM1BhdGNocG9pbnRWYWx1ZS5jcHAKICAgICBiMy9CM1Bo
YXNlU2NvcGUuY3BwCiAgICAgYjMvQjNQaGlDaGlsZHJlbi5jcHAKKyAgICBiMy9CM1BvbHlKdW1w
VmFsdWUuY3BwCiAgICAgYjMvQjNQcm9jZWR1cmUuY3BwCiAgICAgYjMvQjNQdXJlQ1NFLmNwcAog
ICAgIGIzL0IzUmVkdWNlRG91YmxlVG9GbG9hdC5jcHAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCShyZXZpc2lvbiAyMDE0OTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAt
MTE3OSwxNiArMTE3OSwxNiBAQAogCQk1MzUyOUE0QzFDNDU3Qjc1MDAwQjQ5QzYgLyogQVBJVXRp
bHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzNTI5
QTRCMUM0NTdCNzUwMDBCNDlDNiAvKiBBUElVdGlscy5oICovOyB9OwogCQk1MzcwQjRGNTFCRjI2
MjAyMDA1QzQwRkMgLyogQWRhcHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50QmFz
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Mzcw
QjRGMzFCRjI1RUEyMDA1QzQwRkMgLyogQWRhcHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRj
aHBvaW50QmFzZS5jcHAgKi87IH07CiAJCTUzNzBCNEY2MUJGMjYyMDUwMDVDNDBGQyAvKiBBZGFw
dGl2ZUluZmVycmVkUHJvcGVydHlWYWx1ZVdhdGNocG9pbnRCYXNlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzcwQjRGNDFCRjI1RUEyMDA1QzQwRkMg
LyogQWRhcHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50QmFzZS5oICovOyB9Owor
CQk1MzkxN0U3QjFCNzkwNkZBMDAwRUJEMzMgLyogSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90
b3R5cGVGdW5jdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUzOTE3RTdBMUI3OTA2RTQwMDBFQkQzMyAvKiBKU0dlbmVyaWNUeXBlZEFycmF5Vmll
d1Byb3RvdHlwZUZ1bmN0aW9ucy5oICovOyB9OworCQk1M0Y2QkY2RDFDM0YwNjBBMDBGNDFFNUQg
LyogSW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1M0Y2QkY2QzFDM0YwNjBBMDBGNDFFNUQgLyog
SW50ZXJuYWxGdW5jdGlvbkFsbG9jYXRpb25Qcm9maWxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTNGQTJBRTExQ0YzN0YzRjAwMjI3MTFEIC8q
IExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTNGQTJBRTAxQ0YzN0YzRjAw
MjI3MTFEIC8qIExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTUzRkEy
QUUzMUNGMzgwMzkwMDIyNzExRCAvKiBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVy
ZVdhdGNocG9pbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTNGQTJBRTIxQ0YzODAzOTAwMjI3MTFEIC8qIExMSW50UHJvdG90eXBlTG9hZEFkYXB0
aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5jcHAgKi87IH07CiAJCTVCRDNBMDY3MUNBRTMyNTcwMEY4
NEJBMyAvKiBBc3luY0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUJEM0EwNjExQ0FFMzI1NzAwRjg0QkEzIC8qIEFz
eW5jRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAgKi87IH07CiAJCTVCRDNBMDY4MUNBRTMyNTcwMEY4
NEJBMyAvKiBBc3luY0Z1bmN0aW9uQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVCRDNBMDYyMUNBRTMyNTcwMEY4NEJBMyAvKiBBc3lu
Y0Z1bmN0aW9uQ29uc3RydWN0b3IuaCAqLzsgfTsKIAkJNUJEM0EwNjkxQ0FFMzI1NzAwRjg0QkEz
IC8qIEFzeW5jRnVuY3Rpb25Qcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNUJEM0EwNjMxQ0FFMzI1NzAwRjg0QkEzIC8qIEFzeW5jRnVu
Y3Rpb25Qcm90b3R5cGUuY3BwICovOyB9OwogCQk1QkQzQTA2QTFDQUUzMjU3MDBGODRCQTMgLyog
QXN5bmNGdW5jdGlvblByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNUJEM0EwNjQxQ0FFMzI1NzAwRjg0QkEzIC8qIEFzeW5jRnVuY3Rpb25Q
cm90b3R5cGUuaCAqLzsgfTsKIAkJNUJEM0EwNkIxQ0FFMzI1NzAwRjg0QkEzIC8qIEpTQXN5bmNG
dW5jdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1QkQzQTA2NTFDQUUzMjU3MDBGODRCQTMgLyogSlNBc3luY0Z1bmN0aW9uLmNwcCAqLzsgfTsK
IAkJNUJEM0EwNkUxQ0FFMzVCRjAwRjg0QkEzIC8qIEpTQXN5bmNGdW5jdGlvbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUJEM0EwNkQxQ0FFMzVCRjAw
Rjg0QkEzIC8qIEpTQXN5bmNGdW5jdGlvbi5oICovOyB9OwotCQk1MzkxN0U3QjFCNzkwNkZBMDAw
RUJEMzMgLyogSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b3R5cGVGdW5jdGlvbnMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzOTE3RTdBMUI3OTA2
RTQwMDBFQkQzMyAvKiBKU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZUZ1bmN0aW9ucy5o
ICovOyB9OwotCQk1M0Y2QkY2RDFDM0YwNjBBMDBGNDFFNUQgLyogSW50ZXJuYWxGdW5jdGlvbkFs
bG9jYXRpb25Qcm9maWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1M0Y2QkY2QzFDM0YwNjBBMDBGNDFFNUQgLyogSW50ZXJuYWxGdW5jdGlvbkFsbG9j
YXRpb25Qcm9maWxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKLQkJNTNGQTJBRTExQ0YzN0YzRjAwMjI3MTFEIC8qIExMSW50UHJvdG90eXBlTG9hZEFk
YXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTNGQTJBRTAxQ0YzN0YzRjAwMjI3MTFEIC8qIExMSW50UHJvdG90
eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTUzRkEyQUUzMUNGMzgwMzkwMDIyNzExRCAv
KiBMTEludFByb3RvdHlwZUxvYWRBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTNGQTJBRTIxQ0YzODAz
OTAwMjI3MTFEIC8qIExMSW50UHJvdG90eXBlTG9hZEFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2lu
dC5jcHAgKi87IH07CiAJCTVENUQ4QUQxMEUwRDBFQkUwMEY5QzY5MiAvKiBsaWJlZGl0LmR5bGli
IGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUQ1RDhB
RDAwRTBEMEVCRTAwRjlDNjkyIC8qIGxpYmVkaXQuZHlsaWIgKi87IH07CiAJCTVEQkIxNTFCMTMx
RDBCMzEwMDU2QUQzNiAvKiB0ZXN0YXBpLmpzIGluIENvcHkgU3VwcG9ydCBTY3JpcHQgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTREODU3NzQwQTQ2OTZDODAwMzIxNDZDIC8q
IHRlc3RhcGkuanMgKi87IH07CiAJCTVEQkIxNTI1MTMxRDBCRDcwMDU2QUQzNiAvKiBtaW5pZG9t
LmpzIGluIENvcHkgU3VwcG9ydCBTY3JpcHQgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMTQxMjExMEQwQTQ4Nzg4NzAwNDgwMjU1IC8qIG1pbmlkb20uanMgKi87IH07CkBAIC0x
OTg5LDYgKzE5ODksOCBAQAogCQlEQzE3RTgxQTFDOUM5MUU5MDA4QTZBQjMgLyogQ0NhbGxIZWxw
ZXJzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERD
MTdFODE2MUM5QzgwMkIwMDhBNkFCMyAvKiBDQ2FsbEhlbHBlcnMuY3BwICovOyB9OwogCQlEQzIx
NDMwNzFDQTMyRTU1MDAwQTg4NjkgLyogSUNTdGF0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREMyMTQzMDYxQ0EzMkU1MjAwMEE4ODY5IC8qIElDU3Rh
dHMuaCAqLzsgfTsKIAkJREMyMTQzMDgxQ0EzMkU1ODAwMEE4ODY5IC8qIElDU3RhdHMuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREMyMTQzMDUxQ0Ez
MkU1MjAwMEE4ODY5IC8qIElDU3RhdHMuY3BwICovOyB9OworCQlEQzQ1NEI4NDFDRkI1QkQ3MDA0
QzE4QUYgLyogQjNQb2x5SnVtcFZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IERDNjlBQTYwMUNGNzVERTEwMEM2MjcyRiAvKiBCM1BvbHlKdW1w
VmFsdWUuY3BwICovOyB9OworCQlEQzQ1NEI4NTFDRkI1QkQ5MDA0QzE4QUYgLyogQjNQb2x5SnVt
cFZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBE
QzY5QUE2MTFDRjc1REUxMDBDNjI3MkYgLyogQjNQb2x5SnVtcFZhbHVlLmggKi87IH07CiAJCURD
NjA1QjVEMUNFMjZFQTAwMDU5MzcxOCAvKiBQcm9maWxlckV2ZW50LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDNjA1QjU5MUNFMjZFOTgwMDU5Mzcx
OCAvKiBQcm9maWxlckV2ZW50LmNwcCAqLzsgfTsKIAkJREM2MDVCNUUxQ0UyNkVBMjAwNTkzNzE4
IC8qIFByb2ZpbGVyRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IERDNjA1QjVBMUNFMjZFOTgwMDU5MzcxOCAvKiBQcm9maWxlckV2ZW50LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJREM2MDVCNUYx
Q0UyNkVBNTAwNTkzNzE4IC8qIFByb2ZpbGVyVUlELmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDNjA1QjVCMUNFMjZFOTgwMDU5MzcxOCAvKiBQcm9m
aWxlclVJRC5jcHAgKi87IH07CkBAIC00MjE0LDYgKzQyMTYsOCBAQAogCQlEQzYwNUI1QTFDRTI2
RTk4MDA1OTM3MTggLyogUHJvZmlsZXJFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBQcm9maWxlckV2ZW50Lmg7IHBhdGggPSBwcm9maWxlci9Qcm9maWxlckV2ZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDNjA1QjVCMUNFMjZFOTgwMDU5MzcxOCAv
KiBQcm9maWxlclVJRC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQ
cm9maWxlclVJRC5jcHA7IHBhdGggPSBwcm9maWxlci9Qcm9maWxlclVJRC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDNjA1QjVDMUNFMjZFOTgwMDU5MzcxOCAvKiBQcm9maWxl
clVJRC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBQcm9maWxlclVJRC5oOyBw
YXRoID0gcHJvZmlsZXIvUHJvZmlsZXJVSUQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJREM2OUFBNjAxQ0Y3NURFMTAwQzYyNzJGIC8qIEIzUG9seUp1bXBWYWx1ZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBCM1BvbHlKdW1wVmFsdWUuY3BwOyBwYXRo
ID0gYjMvQjNQb2x5SnVtcFZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
REM2OUFBNjExQ0Y3NURFMTAwQzYyNzJGIC8qIEIzUG9seUp1bXBWYWx1ZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBCM1BvbHlKdW1wVmFsdWUuaDsgcGF0aCA9IGIzL0IzUG9s
eUp1bXBWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzY5QUE2NTFDRjdB
MUVGMDBDNjI3MkYgLyogTWF0Y2hSZXN1bHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gTWF0Y2hSZXN1bHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlEQzc5OTc4MTFDREU5RjlFMDA0RDRBMDkgLyogVGFnUmVnaXN0ZXJzTW9kZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUYWdSZWdpc3RlcnNNb2RlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREM3OTk3ODIxQ0RFOUY5RTAwNEQ0QTA5IC8qIFRh
Z1JlZ2lzdGVyc01vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGFnUmVn
aXN0ZXJzTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDc2MSw2ICs0NzY1
LDggQEAKIAkJCQkwRkVDODRFMDFCREFDREFDMDA4MEZGNzQgLyogQjNQaGFzZVNjb3BlLmggKi8s
CiAJCQkJMEYzNzMwOEExQzBCRDI5MTAwMDUyQkZBIC8qIEIzUGhpQ2hpbGRyZW4uY3BwICovLAog
CQkJCTBGMzczMDhCMUMwQkQyOTEwMDA1MkJGQSAvKiBCM1BoaUNoaWxkcmVuLmggKi8sCisJCQkJ
REM2OUFBNjAxQ0Y3NURFMTAwQzYyNzJGIC8qIEIzUG9seUp1bXBWYWx1ZS5jcHAgKi8sCisJCQkJ
REM2OUFBNjExQ0Y3NURFMTAwQzYyNzJGIC8qIEIzUG9seUp1bXBWYWx1ZS5oICovLAogCQkJCTBG
RUM4NEUxMUJEQUNEQUMwMDgwRkY3NCAvKiBCM1Byb2NlZHVyZS5jcHAgKi8sCiAJCQkJMEZFQzg0
RTIxQkRBQ0RBQzAwODBGRjc0IC8qIEIzUHJvY2VkdXJlLmggKi8sCiAJCQkJMEZFQzg0RTMxQkRB
Q0RBQzAwODBGRjc0IC8qIEIzUHJvY2VkdXJlSW5saW5lcy5oICovLApAQCAtNzIyNSw2ICs3MjMx
LDcgQEAKIAkJCQkwRjA1QzNCNDE2ODNDRjkyMDBCQUY0NUIgLyogREZHQXJyYXlpZnlTbG93UGF0
aEdlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY2Mzk0ODUxNUU0ODExQjAwNkE1OTdD
IC8qIERGR0FycmF5TW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdEOUEyOTUxN0EwQkM3NDAw
RUUyNjE4IC8qIERGR0F0VGFpbEFic3RyYWN0U3RhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCURD
NDU0Qjg1MUNGQjVCRDkwMDRDMThBRiAvKiBCM1BvbHlKdW1wVmFsdWUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGNjY2RUM3MTgzNTY3MkIwMEQwMTdGMSAvKiBERkdBdmFpbGFiaWxpdHkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGMkI5Q0UzMTlEMEJBN0QwMEIxRDFCNSAvKiBERkdBdmFpbGFiaWxp
dHlNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNzE0Q0E1MTZFQTkyRjIwMEYzRUJFQiAvKiBE
RkdCYWNrd2FyZHNQcm9wYWdhdGlvblBoYXNlLmggaW4gSGVhZGVycyAqLywKQEAgLTkwMDcsNiAr
OTAxNCw3IEBACiAJCQkJMkE4MzYzODkxOEQ3RDBGRTAwMDBFQkNDIC8qIEZ1bGxHQ0FjdGl2aXR5
Q2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5Q0IxMDdFQzM3NjAwNDI3QTQ4
IC8qIEZ1bmN0aW9uQ29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGMEYxOUYx
NkI3MkExNzAwNURGOTVCIC8qIEZ1bmN0aW9uRXhlY3V0YWJsZUR1bXAuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJREM0NTRCODQxQ0ZCNUJENzAwNEMxOEFGIC8qIEIzUG9seUp1bXBWYWx1ZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk1MkIzMTBGRDE5NzRBRTg3MDA4MDg1N0MgLyogRnVuY3Rpb25I
YXNFeGVjdXRlZENhY2hlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZFNEJGRjJCMUFENDc2RTcw
MDA4OEY4NyAvKiBGdW5jdGlvbk92ZXJyaWRlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDdG
MzlDQzEwN0VDMzc2MDA0MjdBNDggLyogRnVuY3Rpb25Qcm90b3R5cGUuY3BwIGluIFNvdXJjZXMg
Ki8sCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
WDg2Q29tbW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCShyZXZpc2lvbiAyMDE0OTkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgJKHdvcmtp
bmcgY29weSkKQEAgLTIyNjIsNiArMjI2MiwxMiBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1i
bGVyLmptcF9tKGFkZHJlc3Mub2Zmc2V0LCBhZGRyZXNzLmJhc2UpOwogICAgIH0KIAorICAgIC8v
IEFkZHJlc3MgaXMgYSBtZW1vcnkgbG9jYXRpb24gY29udGFpbmluZyB0aGUgYWRkcmVzcyB0byBq
dW1wIHRvCisgICAgdm9pZCBqdW1wKEJhc2VJbmRleCBhZGRyZXNzKQorICAgIHsKKyAgICAgICAg
bV9hc3NlbWJsZXIuam1wX20oYWRkcmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFzZSwgYWRkcmVzcy5p
bmRleCwgYWRkcmVzcy5zY2FsZSk7CisgICAgfQorCiAKICAgICAvLyBBcml0aG1ldGljIGNvbnRy
b2wgZmxvdyBvcGVyYXRpb25zOgogICAgIC8vCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgJKHJldmlzaW9uIDIwMTQ5OSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgJKHdvcmtpbmcgY29weSkK
QEAgLTE5ODMsNiArMTk4MywxMSBAQCBwdWJsaWM6CiAgICAgICAgIG1fZm9ybWF0dGVyLm9uZUJ5
dGVPcChPUF9HUk9VUDVfRXYsIEdST1VQNV9PUF9KTVBOLCBiYXNlLCBvZmZzZXQpOwogICAgIH0K
ICAgICAKKyAgICB2b2lkIGptcF9tKGludCBvZmZzZXQsIFJlZ2lzdGVySUQgYmFzZSwgUmVnaXN0
ZXJJRCBpbmRleCwgaW50IHNjYWxlKQorICAgIHsKKyAgICAgICAgbV9mb3JtYXR0ZXIub25lQnl0
ZU9wKE9QX0dST1VQNV9FdiwgR1JPVVA1X09QX0pNUE4sIGJhc2UsIGluZGV4LCBzY2FsZSwgb2Zm
c2V0KTsKKyAgICB9CisgICAgCiAjaWYgIUNQVShYODZfNjQpCiAgICAgdm9pZCBqbXBfbShjb25z
dCB2b2lkKiBhZGRyZXNzKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0Jhc2ljQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0Jhc2ljQmxvY2suY3BwCShyZXZpc2lvbiAyMDE0OTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNCYXNpY0Jsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA5LDYgKzEwOSwxNSBA
QCB2b2lkIEJhc2ljQmxvY2s6OnVwZGF0ZVByZWRlY2Vzc29yc0FmdGVyCiAgICAgQjM6OnVwZGF0
ZVByZWRlY2Vzc29yc0FmdGVyKHRoaXMpOwogfQogCitib29sIEJhc2ljQmxvY2s6OmlzQ2xvbmVh
YmxlKCkgY29uc3QKK3sKKyAgICBmb3IgKFZhbHVlKiB2YWx1ZSA6ICp0aGlzKSB7CisgICAgICAg
IGlmICghdmFsdWUtPmlzQ2xvbmVhYmxlKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgfQorICAgIHJldHVybiB0cnVlOworfQorCiB2b2lkIEJhc2ljQmxvY2s6OmR1bXAoUHJpbnRT
dHJlYW0mIG91dCkgY29uc3QKIHsKICAgICBvdXQucHJpbnQoZHVtcFByZWZpeCwgbV9pbmRleCk7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5oCShyZXZpc2lvbiAy
MDE0OTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmgJKHdvcmtp
bmcgY29weSkKQEAgLTExNSw2ICsxMTUsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVQcmVk
ZWNlc3NvcnNBZnRlcigpOwogCiAgICAgZG91YmxlIGZyZXF1ZW5jeSgpIGNvbnN0IHsgcmV0dXJu
IG1fZnJlcXVlbmN5OyB9CisgICAgCisgICAgYm9vbCBpc0Nsb25lYWJsZSgpIGNvbnN0OwogCiAg
ICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAgICAgdm9pZCBkZWVwRHVtcChjb25z
dCBQcm9jZWR1cmUmLCBQcmludFN0cmVhbSYpIGNvbnN0OwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzQ29tbW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzQ29tbW9uLmgJKHJldmlzaW9uIDIwMTQ5OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0NvbW1vbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDYgKzI4LDggQEAKIAogI2lmIEVOQUJM
RShCM19KSVQpCiAKKyNpbmNsdWRlICJKU0V4cG9ydE1hY3Jvcy5oIgorCiBuYW1lc3BhY2UgSlND
IHsgbmFtZXNwYWNlIEIzIHsKIAogaW5saW5lIGJvb2wgaXM2NEJpdCgpIHsgcmV0dXJuIHNpemVv
Zih2b2lkKikgPT0gODsgfQpAQCAtMzgsNyArNDAsNyBAQCBlbnVtIEIzQ29tcGxpdGF0aW9uTW9k
ZSB7CiAgICAgQWlyTW9kZQogfTsKIAotYm9vbCBzaG91bGREdW1wSVIoQjNDb21wbGl0YXRpb25N
b2RlKTsKK0pTX0VYUE9SVF9QUklWQVRFIGJvb2wgc2hvdWxkRHVtcElSKEIzQ29tcGxpdGF0aW9u
TW9kZSk7CiBib29sIHNob3VsZER1bXBJUkF0RWFjaFBoYXNlKEIzQ29tcGxpdGF0aW9uTW9kZSk7
CiBib29sIHNob3VsZFZhbGlkYXRlSVIoKTsKIGJvb2wgc2hvdWxkVmFsaWRhdGVJUkF0RWFjaFBo
YXNlKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb250cm9sVmFsdWUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb250cm9sVmFsdWUuaAko
cmV2aXNpb24gMjAxNDk5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29udHJvbFZh
bHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDkgKzQ2LDEwIEBAIHB1YmxpYzoKICAgICAgICAg
Y2FzZSBSZXR1cm46CiAgICAgICAgIGNhc2UgT29wczoKICAgICAgICAgICAgIHJldHVybiB0cnVl
OwotICAgICAgICBjYXNlIFN3aXRjaDogCi0gICAgICAgICAgICAvLyBUaGlzIGlzIGhlcmUgYmVj
YXVzZSBTd2l0Y2hWYWx1ZSBpcyBhIHN1YmNsYXNzIG9mIENvbnRyb2xWYWx1ZSwgc28gd2Ugd2Fu
dAotICAgICAgICAgICAgLy8gc3dpdGNoVmFsdWUtPmFzPENvbnRyb2xWYWx1ZT4oKSB0byByZXR1
cm4gbm9uLW51bGwuCisgICAgICAgIGNhc2UgU3dpdGNoOgorICAgICAgICBjYXNlIFBvbHlKdW1w
OgorICAgICAgICAgICAgLy8gVGhpcyBpcyBoZXJlIGJlY2F1c2UgU3dpdGNoVmFsdWUgYW5kIFBv
bHlKdW1wVmFsdWUgYXJlIHN1YmNsYXNzZXMgb2YgQ29udHJvbFZhbHVlLAorICAgICAgICAgICAg
Ly8gc28gd2Ugd2FudCB0aGluZ3MgbGlrZSBzd2l0Y2hWYWx1ZS0+YXM8Q29udHJvbFZhbHVlPigp
IHRvIHJldHVybiBub24tbnVsbC4KICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBk
ZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNzcsNyArNzgsNyBAQCBwdWJs
aWM6CiAgICAgfQogCiAgICAgYm9vbCByZXBsYWNlU3VjY2Vzc29yKEJhc2ljQmxvY2sqIGZyb20s
IEJhc2ljQmxvY2sqIHRvKTsKLQorICAgIAogICAgIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgdGFr
ZW4oKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUKG9wY29kZSgpID09IEp1bXAgfHwgb3Bj
b2RlKCkgPT0gQnJhbmNoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0RhdGFT
ZWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEYXRh
U2VjdGlvbi5jcHAJKHJldmlzaW9uIDIwMTQ5OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM0RhdGFTZWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMSw3ICszMSw3IEBACiBuYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIAogRGF0YVNlY3Rpb246OkRhdGFTZWN0aW9uKHNpemVf
dCBzaXplKQotICAgIDogbV9kYXRhKGZhc3RNYWxsb2Moc2l6ZSkpCisgICAgOiBtX2RhdGEoZmFz
dFplcm9lZE1hbGxvYyhzaXplKSkKICAgICAsIG1fc2l6ZShzaXplKQogewogfQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRHVwbGljYXRlVGFpbHMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0R1cGxpY2F0ZVRhaWxzLmNwcAkocmV2aXNpb24g
MjAxNDk5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRHVwbGljYXRlVGFpbHMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC03Miw5ICs3MiwxMSBAQCBwdWJsaWM6CiAgICAgICAgIEluZGV4
U2V0PEJhc2ljQmxvY2s+IGNhbmRpZGF0ZXM7CiAKICAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBi
bG9jayA6IG1fcHJvYykgewotICAgICAgICAgICAgaWYgKGJsb2NrLT5zaXplKCkgPiBtX21heFNp
emUgfHwgYmxvY2stPm51bVN1Y2Nlc3NvcnMoKSA+IG1fbWF4U3VjY2Vzc29ycykKKyAgICAgICAg
ICAgIGlmIChibG9jay0+c2l6ZSgpID4gbV9tYXhTaXplCisgICAgICAgICAgICAgICAgfHwgYmxv
Y2stPm51bVN1Y2Nlc3NvcnMoKSA+IG1fbWF4U3VjY2Vzc29ycworICAgICAgICAgICAgICAgIHx8
ICFibG9jay0+aXNDbG9uZWFibGUoKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKLQorICAg
ICAgICAgICAgCiAgICAgICAgICAgICBjYW5kaWRhdGVzLmFkZChibG9jayk7CiAgICAgICAgIH0K
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJNYWNyb3MuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyTWFjcm9zLmNwcAkocmV2
aXNpb24gMjAxNDk5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJNYWNyb3Mu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDcgKzM0LDkgQEAKICNpbmNsdWRlICJCM0NvbnN0UHRyVmFs
dWUuaCIKICNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzSW5zZXJ0aW9u
U2V0SW5saW5lcy5oIgorI2luY2x1ZGUgIkIzTWVtb3J5VmFsdWUuaCIKICNpbmNsdWRlICJCM1Bo
YXNlU2NvcGUuaCIKKyNpbmNsdWRlICJCM1BvbHlKdW1wVmFsdWUuaCIKICNpbmNsdWRlICJCM1By
b2NlZHVyZUlubGluZXMuaCIKICNpbmNsdWRlICJCM1N3aXRjaFZhbHVlLmgiCiAjaW5jbHVkZSAi
QjNVcHNpbG9uVmFsdWUuaCIKQEAgLTI3NSw4ICsyNzcsOTUgQEAgcHJpdmF0ZToKICAgICAgICAg
Y29uc3QgVmVjdG9yPFN3aXRjaENhc2U+JiBjYXNlcywgdW5zaWduZWQgc3RhcnQsIGJvb2wgaGFy
ZFN0YXJ0LCB1bnNpZ25lZCBlbmQsCiAgICAgICAgIEJhc2ljQmxvY2sqIGJlZm9yZSkKICAgICB7
Ci0gICAgICAgIC8vIEZJWE1FOiBBZGQgdGFibGUtYmFzZWQgc3dpdGNoIGxvd2VyaW5nLgotICAg
ICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxMTQxCisg
ICAgICAgIFZhbHVlKiBjaGlsZCA9IG1fdmFsdWUtPmNoaWxkKDApOworICAgICAgICBUeXBlIHR5
cGUgPSBjaGlsZC0+dHlwZSgpOworICAgICAgICBGcmVxdWVudGVkQmxvY2sgZmFsbFRocm91Z2gg
PSBtX3ZhbHVlLT5hczxTd2l0Y2hWYWx1ZT4oKS0+ZmFsbFRocm91Z2goKTsKKyAgICAgICAgCisg
ICAgICAgIC8vIEl0J3MgYSBnb29kIGlkZWEgdG8gdXNlIGEgdGFibGUtYmFzZWQgc3dpdGNoIGlu
IHNvbWUgY2FzZXM6IHRoZSBudW1iZXIgb2YgY2FzZXMgaGFzIHRvIGJlCisgICAgICAgIC8vIGxh
cmdlIGVub3VnaCBhbmQgdGhleSBoYXZlIHRvIGJlIGRlbnNlIGVub3VnaC4gVGhpcyBjb3VsZCBw
cm9iYWJseSBiZSBpbXByb3ZlZCBhIGxvdC4gRm9yCisgICAgICAgIC8vIGV4YW1wbGUsIHdlIGNv
dWxkIHN0aWxsIHVzZSBhIGp1bXAgdGFibGUgaW4gY2FzZXMgd2hlcmUgdGhlIGlucHV0cyBhcmUg
c3BhcnNlIHNvIGxvbmcgYXMgd2UKKyAgICAgICAgLy8gc2hpZnQgb2ZmIHRoZSB1bmludGVyZXN0
aW5nIGJpdHMuIE9uIHRoZSBvdGhlciBoYW5kLCBpdCdzIG5vdCBjbGVhciB0aGF0IHRoaXMgd291
bGQKKyAgICAgICAgLy8gYWN0dWFsbHkgYmUgYW55IGJldHRlciB0aGFuIHdoYXQgd2UgaGF2ZSBk
b25lIGhlcmUgYW5kIGl0J3Mgbm90IGNsZWFyIHRoYXQgaXQgd291bGQgYmUKKyAgICAgICAgLy8g
YmV0dGVyIHRoYW4gYSBiaW5hcnkgc3dpdGNoLgorICAgICAgICBjb25zdCB1bnNpZ25lZCBtaW5D
YXNlc0ZvclRhYmxlID0gNzsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgZGVuc2l0eUxpbWl0ID0g
NDsKKyAgICAgICAgaWYgKGVuZCAtIHN0YXJ0ID49IG1pbkNhc2VzRm9yVGFibGUpIHsKKyAgICAg
ICAgICAgIGludDY0X3QgZmlyc3RWYWx1ZSA9IGNhc2VzW3N0YXJ0XS5jYXNlVmFsdWUoKTsKKyAg
ICAgICAgICAgIGludDY0X3QgbGFzdFZhbHVlID0gY2FzZXNbZW5kIC0gMV0uY2FzZVZhbHVlKCk7
CisgICAgICAgICAgICBpZiAoKGxhc3RWYWx1ZSAtIGZpcnN0VmFsdWUgKyAxKSAvIGNhc2VzLnNp
emUoKSA8IGRlbnNpdHlMaW1pdCkgeworICAgICAgICAgICAgICAgIEJhc2ljQmxvY2sqIHN3aXRj
aEJsb2NrID0gbV9ibG9ja0luc2VydGlvblNldC5pbnNlcnRBZnRlcihtX2Jsb2NrKTsKKyAgICAg
ICAgICAgICAgICBWYWx1ZSogaW5kZXggPSBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAg
ICAgICAgICAgICAgICAgIG1fcHJvYywgU3ViLCBtX29yaWdpbiwgY2hpbGQsCisgICAgICAgICAg
ICAgICAgICAgIGJlZm9yZS0+YXBwZW5kSW50Q29uc3RhbnQobV9wcm9jLCBtX29yaWdpbiwgdHlw
ZSwgZmlyc3RWYWx1ZSkpOworICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgQnJhbmNoLCBtX29yaWdpbiwK
KyAgICAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAg
ICAgICAgICAgICAgICAgbV9wcm9jLCBBYm92ZSwgbV9vcmlnaW4sIGluZGV4LAorICAgICAgICAg
ICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmRJbnRDb25zdGFudChtX3Byb2MsIG1fb3JpZ2lu
LCB0eXBlLCBsYXN0VmFsdWUgLSBmaXJzdFZhbHVlKSksCisgICAgICAgICAgICAgICAgICAgIGZh
bGxUaHJvdWdoLCBGcmVxdWVudGVkQmxvY2soc3dpdGNoQmxvY2spKTsKKyAgICAgICAgICAgICAg
ICAKKyAgICAgICAgICAgICAgICBzaXplX3QgdGFibGVTaXplID0gbGFzdFZhbHVlIC0gZmlyc3RW
YWx1ZSArIDE7CisgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKiBqdW1wVGFi
bGUgPSBiaXR3aXNlX2Nhc3Q8TWFjcm9Bc3NlbWJsZXJDb2RlUHRyKj4oCisgICAgICAgICAgICAg
ICAgICAgIG1fcHJvYy5hZGREYXRhU2VjdGlvbihzaXplb2YoTWFjcm9Bc3NlbWJsZXJDb2RlUHRy
KSAqIHRhYmxlU2l6ZSkpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFZhbHVl
KiBiYXNlID0gc3dpdGNoQmxvY2stPmFwcGVuZEludENvbnN0YW50KAorICAgICAgICAgICAgICAg
ICAgICBtX3Byb2MsIG1fb3JpZ2luLCBwb2ludGVyVHlwZSgpLCBiaXR3aXNlX2Nhc3Q8aW50cHRy
X3Q+KGp1bXBUYWJsZSkpOworICAgICAgICAgICAgICAgIGlmIChpbmRleC0+dHlwZSgpICE9IGJh
c2UtPnR5cGUoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXgtPnR5cGUoKSA9PSBJ
bnQzMikKKyAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gc3dpdGNoQmxvY2stPmFwcGVu
ZE5ldzxWYWx1ZT4obV9wcm9jLCBaRXh0MzIsIG1fb3JpZ2luLCBpbmRleCk7CisgICAgICAgICAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gc3dpdGNoQmxv
Y2stPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBUcnVuYywgbV9vcmlnaW4sIGluZGV4KTsKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaW5kZXggPSBzd2l0Y2hCbG9jay0+YXBw
ZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBNdWwsIG1fb3JpZ2lu
LCBpbmRleCwKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoQmxvY2stPmFwcGVuZEludENvbnN0
YW50KAorICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwgcG9pbnRlclR5
cGUoKSwgc2l6ZW9mKE1hY3JvQXNzZW1ibGVyQ29kZVB0cikpKTsKKyAgICAgICAgICAgICAgICBW
YWx1ZSogcHRyID0gc3dpdGNoQmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBBZGQsIG1f
b3JpZ2luLCBiYXNlLCBpbmRleCk7CisgICAgICAgICAgICAgICAgVmFsdWUqIGp1bXBUYXJnZXQg
PQorICAgICAgICAgICAgICAgICAgICBzd2l0Y2hCbG9jay0+YXBwZW5kTmV3PE1lbW9yeVZhbHVl
PihtX3Byb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIG1fb3JpZ2luLCBwdHIpOworICAgICAgICAg
ICAgICAgIFBvbHlKdW1wVmFsdWUqIHBvbHlKdW1wID0KKyAgICAgICAgICAgICAgICAgICAgc3dp
dGNoQmxvY2stPmFwcGVuZE5ldzxQb2x5SnVtcFZhbHVlPihtX3Byb2MsIG1fb3JpZ2luLCBqdW1w
VGFyZ2V0KTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBCaXRWZWN0b3IgaGFu
ZGxlZEluZGljZXM7CisgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gc3RhcnQ7IGkg
PCBlbmQ7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2sgYmxvY2sg
PSBjYXNlc1tpXS50YXJnZXQoKTsKKyAgICAgICAgICAgICAgICAgICAgaW50NjRfdCB2YWx1ZSA9
IGNhc2VzW2ldLmNhc2VWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICBwb2x5SnVtcC0+YXBw
ZW5kU3VjY2Vzc29yKGJsb2NrKTsKKyAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGluZGV4ID0g
dmFsdWUgLSBmaXJzdFZhbHVlOworICAgICAgICAgICAgICAgICAgICBBU1NFUlQoIWhhbmRsZWRJ
bmRpY2VzLmdldChpbmRleCkpOworICAgICAgICAgICAgICAgICAgICBoYW5kbGVkSW5kaWNlcy5z
ZXQoaW5kZXgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAg
ICAgICAgICBib29sIGhhc1VuaGFuZGxlZEluZGV4ID0gZmFsc2U7CisgICAgICAgICAgICAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHRhYmxlU2l6ZTsgKytpKSB7CisgICAgICAgICAgICAg
ICAgICAgIGlmICghaGFuZGxlZEluZGljZXMuZ2V0KGkpKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBoYXNVbmhhbmRsZWRJbmRleCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoaGFzVW5oYW5kbGVkSW5kZXgpCisgICAgICAg
ICAgICAgICAgICAgIHBvbHlKdW1wLT5hcHBlbmRTdWNjZXNzb3IoZmFsbFRocm91Z2gpOworICAg
ICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHBvbHlKdW1wLT5zZXRDYWxsYmFjaygKKyAg
ICAgICAgICAgICAgICAgICAgWz1dIChjb25zdCBWZWN0b3I8TWFjcm9Bc3NlbWJsZXJDb2RlUHRy
PiYgcG9pbnRlcnMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBwb2ludGVySW5k
ZXggPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaW5kZXggOiBoYW5k
bGVkSW5kaWNlcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBqdW1wVGFibGVbaW5kZXhd
ID0gcG9pbnRlcnNbcG9pbnRlckluZGV4KytdOworICAgICAgICAgICAgICAgICAgICAgICAgCisg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGFzVW5oYW5kbGVkSW5kZXgpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRhYmxlU2l6ZTsgKytp
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaGFuZGxlZEluZGljZXMu
Z2V0KGkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganVtcFRhYmxlW2ld
ID0gcG9pbnRlcnNbcG9pbnRlckluZGV4XTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9pbnRlckluZGV4Kys7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAg
ICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHBvaW50ZXJJbmRleCA9PSBwb2ludGVycy5zaXplKCkp
OworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIC8vIFNlZSBjb21tZW50cyBp
biBqaXQvQmluYXJ5U3dpdGNoLmNwcCBmb3IgYSBqdXN0aWZpY2F0aW9uIG9mIHRoaXMgYWxnb3Jp
dGhtLiBUaGUgb25seQogICAgICAgICAvLyB0aGluZyB3ZSBkbyBkaWZmZXJlbnRseSBpcyB0aGF0
IHdlIGRvbid0IHVzZSByYW5kb21uZXNzLgpAQCAtMzA3LDIyICszOTYsMTkgQEAgcHJpdmF0ZToK
ICAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAogICAgICAg
ICAgICAgICAgICAgICBtX3Byb2MsIEJyYW5jaCwgbV9vcmlnaW4sCiAgICAgICAgICAgICAgICAg
ICAgIGJlZm9yZS0+YXBwZW5kTmV3PFZhbHVlPigKLSAgICAgICAgICAgICAgICAgICAgICAgIG1f
cHJvYywgRXF1YWwsIG1fb3JpZ2luLCBtX3ZhbHVlLT5jaGlsZCgwKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgIG1fcHJvYywgRXF1YWwsIG1fb3JpZ2luLCBjaGlsZCwKICAgICAgICAgICAgICAg
ICAgICAgICAgIGJlZm9yZS0+YXBwZW5kSW50Q29uc3RhbnQoCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwgbV92YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLCB0eXBlLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNhc2VzW3N0YXJ0ICsgaV0uY2FzZVZhbHVlKCkpKSwKICAg
ICAgICAgICAgICAgICAgICAgY2FzZXNbc3RhcnQgKyBpXS50YXJnZXQoKSwgRnJlcXVlbnRlZEJs
b2NrKG5leHRDaGVjaykpOwogCiAgICAgICAgICAgICAgICAgYmVmb3JlID0gbmV4dENoZWNrOwog
ICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBpZiAoYWxsQ29uc2VjdXRpdmUpIHsKLSAgICAg
ICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAotICAgICAgICAgICAg
ICAgICAgICBtX3Byb2MsIEp1bXAsIG1fb3JpZ2luLCBjYXNlc1tlbmQgLSAxXS50YXJnZXQoKSk7
Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCi0gICAgICAgICAgICAgICAgICAgIG1fcHJvYywgSnVtcCwgbV9vcmln
aW4sIG1fdmFsdWUtPmFzPFN3aXRjaFZhbHVlPigpLT5mYWxsVGhyb3VnaCgpKTsKLSAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIGlmIChhbGxDb25zZWN1dGl2ZSkKKyAgICAgICAgICAgICAgICBi
ZWZvcmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIGNh
c2VzW2VuZCAtIDFdLnRhcmdldCgpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICBiZWZvcmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KG1fcHJvYywgSnVtcCwgbV9vcmlnaW4s
IGZhbGxUaHJvdWdoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC0zMzQs
OSArNDIwLDkgQEAgcHJpdmF0ZToKICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKICAgICAgICAgICAgIG1fcHJvYywgQnJhbmNoLCBtX29yaWdpbiwKICAgICAgICAgICAg
IGJlZm9yZS0+YXBwZW5kTmV3PFZhbHVlPigKLSAgICAgICAgICAgICAgICBtX3Byb2MsIExlc3NU
aGFuLCBtX29yaWdpbiwgbV92YWx1ZS0+Y2hpbGQoMCksCisgICAgICAgICAgICAgICAgbV9wcm9j
LCBMZXNzVGhhbiwgbV9vcmlnaW4sIGNoaWxkLAogICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBw
ZW5kSW50Q29uc3RhbnQoCi0gICAgICAgICAgICAgICAgICAgIG1fcHJvYywgbV9vcmlnaW4sIG1f
dmFsdWUtPmNoaWxkKDApLT50eXBlKCksCisgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgbV9v
cmlnaW4sIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgIGNhc2VzW21lZGlhbkluZGV4XS5jYXNl
VmFsdWUoKSkpLAogICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKGxlZnQpLCBGcmVxdWVudGVk
QmxvY2socmlnaHQpKTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJU
b0Fpci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJU
b0Fpci5jcHAJKHJldmlzaW9uIDIwMTQ5OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0xvd2VyVG9BaXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTUsNyArMTU1LDYgQEAgcHVibGlj
OgogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCB0aGUgc3Vj
Y2Vzc29ycyBhcmUgc2V0IHVwIGNvcnJlY3RseS4KLSAgICAgICAgICAgIEFTU0VSVChibG9jay0+
c3VjY2Vzc29ycygpLnNpemUoKSA8PSAyKTsKICAgICAgICAgICAgIGZvciAoQjM6OkZyZXF1ZW50
ZWRCbG9jayBzdWNjZXNzb3IgOiBibG9jay0+c3VjY2Vzc29ycygpKSB7CiAgICAgICAgICAgICAg
ICAgbV9ibG9ja1RvQmxvY2tbYmxvY2tdLT5zdWNjZXNzb3JzKCkuYXBwZW5kKAogICAgICAgICAg
ICAgICAgICAgICBBaXI6OkZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrVG9CbG9ja1tzdWNjZXNzb3Iu
YmxvY2soKV0sIHN1Y2Nlc3Nvci5mcmVxdWVuY3koKSkpOwpAQCAtMjQ0MSw2ICsyNDQwLDE2IEBA
IHByaXZhdGU6CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
KyAgICAgICAgICAgIAorICAgICAgICBjYXNlIEIzOjpQb2x5SnVtcDogeworICAgICAgICAgICAg
QXJnUHJvbWlzZSBhZGRyID0gbG9hZFByb21pc2UobV92YWx1ZS0+Y2hpbGQoMCkpOworICAgICAg
ICAgICAgaWYgKGlzVmFsaWRGb3JtKEFpcjo6UG9seUp1bXAsIGFkZHIua2luZCgpKSkgeworICAg
ICAgICAgICAgICAgIGFwcGVuZChBaXI6OlBvbHlKdW1wLCBhZGRyLmNvbnN1bWUoKnRoaXMpKTsK
KyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBhcHBl
bmQoQWlyOjpQb2x5SnVtcCwgdG1wKG1fdmFsdWUtPmNoaWxkKDApKSk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KIAogICAgICAgICBjYXNlIEIzOjpPb3BzOiB7CiAgICAgICAgICAg
ICBhcHBlbmQoQWlyOjpPb3BzKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09w
Y29kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2Rl
LmNwcAkocmV2aXNpb24gMjAxNDk5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bj
b2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjkwLDYgKzI5MCw5IEBAIHZvaWQgcHJpbnRJbnRl
cm5hbChQcmludFN0cmVhbSYgb3V0LCBPcGMKICAgICBjYXNlIFN3aXRjaDoKICAgICAgICAgb3V0
LnByaW50KCJTd2l0Y2giKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgUG9seUp1bXA6Cisg
ICAgICAgIG91dC5wcmludCgiUG9seUp1bXAiKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2Ug
UmV0dXJuOgogICAgICAgICBvdXQucHJpbnQoIlJldHVybiIpOwogICAgICAgICByZXR1cm47Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuaAkocmV2aXNpb24gMjAxNDk5KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTIx
Niw2ICsyMTYsMTMgQEAgZW51bSBPcGNvZGUgOiBpbnQxNl90IHsKIAogICAgIC8vIFN3aXRjaC4g
U3dpdGNoZXMgb3ZlciBlaXRoZXIgSW50MzIgb3IgSW50NjQuIFVzZXMgdGhlIFN3aXRjaFZhbHVl
IGNsYXNzLgogICAgIFN3aXRjaCwKKyAgICAKKyAgICAvLyBKdW1wIHRvIHRoZSBnaXZlbiBhZGRy
ZXNzLiBUaGUgY29tcGlsZXIgYXNzdW1lcyB0aGF0IHRoaXMgd2lsbCBqdW1wIHRvIG9uZSBvZiB0
aGUgc3VwcGxpZWQKKyAgICAvLyBzdWNjZXNzb3JzLCBidXQgd2lsbCBtYWtlIGFic29sdXRlbHkg
bm8gYXNzdW1wdGlvbnMgYWJvdXQgd2hpY2guIEl0J3MgZW50aXJlbHkgdXAgdG8gdGhlIHVzZXIK
KyAgICAvLyB0byBhcnJhbmdlIGZvciB0aGUganVtcCB0byBqdW1wIHRvIG9uZSBvZiB0aG9zZSBz
dWNjZXNzb3JzLiBUaGlzIGNhbm5vdCB0cmFwIG9yIGRvIGFueXRoaW5nIGJ1dAorICAgIC8vIGp1
bXAgdG8gb25lIG9mIHRoZSBzdWNjZXNzb3JzOyBpZiBpdCBkb2VzIGFueXRoaW5nIGVsc2UgdGhl
biBkZW1vbnMgd2lsbCBjb21lIG91dCBvZiB0aGUgdXNlcidzCisgICAgLy8gbm9zZS4gCisgICAg
UG9seUp1bXAsCiAKICAgICAvLyBSZXR1cm4uIE5vdGUgdGhhdCBCMyBwcm9jZWR1cmVzIGRvbid0
IGtub3cgdGhlaXIgcmV0dXJuIHR5cGUsIHNvIHRoaXMgY2FuIGp1c3QgcmV0dXJuIGFueQogICAg
IC8vIHR5cGUuIFVzZXMgdGhlIENvbnRyb2xWYWx1ZSBjbGFzcy4KSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM1BvbHlKdW1wVmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM1BvbHlKdW1wVmFsdWUuY3BwCShyZXZpc2lvbiAwKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUG9seUp1bXBWYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQjNQb2x5SnVtcFZhbHVlLmgi
CisKKyNpZiBFTkFCTEUoQjNfSklUKQorCisjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrLmgiCisKK25h
bWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeworCitQb2x5SnVtcFZhbHVlOjp+UG9seUp1bXBW
YWx1ZSgpCit7Cit9CisKK3ZvaWQgUG9seUp1bXBWYWx1ZTo6YXBwZW5kU3VjY2Vzc29yKGNvbnN0
IEZyZXF1ZW50ZWRCbG9jayYgYmxvY2spCit7CisgICAgbV9zdWNjZXNzb3JzLmFwcGVuZChibG9j
ayk7Cit9CisKK3ZvaWQgUG9seUp1bXBWYWx1ZTo6c2V0Q2FsbGJhY2tUYXNrKFJlZlB0cjxTaGFy
ZWRUYXNrPENhbGxiYWNrRnVuY3Rpb25UeXBlPj4gdGFzaykKK3sKKyAgICBtX3Rhc2sgPSB0YXNr
OworfQorCitib29sIFBvbHlKdW1wVmFsdWU6OmlzQ2xvbmVhYmxlKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgUG9seUp1bXBWYWx1ZTo6ZHVtcE1ldGEoQ29tbWFQcmlu
dGVyJiBjb21tYSwgUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKK3sKKyAgICBDb250cm9sVmFsdWU6
OmR1bXBNZXRhKGNvbW1hLCBvdXQpOworICAgIG91dC5wcmludChjb21tYSwgInRhc2sgPSAiLCBS
YXdQb2ludGVyKG1fdGFzay5nZXQoKSkpOworfQorCitWYWx1ZSogUG9seUp1bXBWYWx1ZTo6Y2xv
bmVJbXBsKCkgY29uc3QKK3sKKyAgICBkYXRhTG9nKCJGQVRBTDogQXR0ZW1wdCB0byBjbG9uZSBu
b24tY2xvbmVhYmxlIFBvbHlKdW1wVmFsdWUhXG4iKTsKKyAgICBSRUxFQVNFX0FTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworfQorCitQb2x5SnVtcFZhbHVlOjpQb2x5SnVtcFZhbHVlKE9yaWdpbiBvcmln
aW4sIFZhbHVlKiBjaGlsZCkKKyAgICA6IENvbnRyb2xWYWx1ZShQb2x5SnVtcCwgVm9pZCwgb3Jp
Z2luLCBjaGlsZCkKK3sKK30KKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzCisKKyNlbmRpZiAv
LyBFTkFCTEUoQjNfSklUKQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQb2x5
SnVtcFZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUG9s
eUp1bXBWYWx1ZS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
UG9seUp1bXBWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBCM1BvbHlKdW1w
VmFsdWVfaAorI2RlZmluZSBCM1BvbHlKdW1wVmFsdWVfaAorCisjaWYgRU5BQkxFKEIzX0pJVCkK
KworI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCisjaW5jbHVkZSA8d3RmL1NoYXJlZFRhc2su
aD4KKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CisKK2NsYXNzIFBvbHlKdW1wVmFs
dWUgOiBwdWJsaWMgQ29udHJvbFZhbHVlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgYm9vbCBhY2Nl
cHRzKE9wY29kZSBvcGNvZGUpIHsgcmV0dXJuIG9wY29kZSA9PSBQb2x5SnVtcDsgfQorICAgIAor
ICAgIH5Qb2x5SnVtcFZhbHVlKCk7CisgICAgCisgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBh
cHBlbmRTdWNjZXNzb3IoY29uc3QgRnJlcXVlbnRlZEJsb2NrJik7CisgICAgCisgICAgdHlwZWRl
ZiB2b2lkIENhbGxiYWNrRnVuY3Rpb25UeXBlKGNvbnN0IFZlY3RvcjxNYWNyb0Fzc2VtYmxlckNv
ZGVQdHI+Jik7CisgICAgCisgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBzZXRDYWxsYmFja1Rh
c2soUmVmUHRyPFNoYXJlZFRhc2s8Q2FsbGJhY2tGdW5jdGlvblR5cGU+PiB0YXNrKTsKKyAgICAK
KyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jPgorICAgIHZvaWQgc2V0Q2FsbGJhY2soY29uc3Qg
RnVuYyYgZnVuYykKKyAgICB7CisgICAgICAgIHNldENhbGxiYWNrVGFzayhjcmVhdGVTaGFyZWRU
YXNrPENhbGxiYWNrRnVuY3Rpb25UeXBlPihmdW5jKSk7CisgICAgfQorICAgIAorICAgIFNoYXJl
ZFRhc2s8Q2FsbGJhY2tGdW5jdGlvblR5cGU+KiBjYWxsYmFja1Rhc2soKSBjb25zdCB7IHJldHVy
biBtX3Rhc2suZ2V0KCk7IH0KKyAgICAKKyAgICBib29sIGlzQ2xvbmVhYmxlKCkgY29uc3Qgb3Zl
cnJpZGU7CisKK3Byb3RlY3RlZDoKKyAgICB2b2lkIGR1bXBNZXRhKENvbW1hUHJpbnRlciYsIFBy
aW50U3RyZWFtJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgCisgICAgVmFsdWUqIGNsb25lSW1wbCgp
IGNvbnN0IG92ZXJyaWRlOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBQcm9jZWR1cmU7
CisgICAgCisgICAgSlNfRVhQT1JUX1BSSVZBVEUgUG9seUp1bXBWYWx1ZShPcmlnaW4sIFZhbHVl
KiBjaGlsZCk7CisgICAgCisgICAgUmVmUHRyPFNoYXJlZFRhc2s8Q2FsbGJhY2tGdW5jdGlvblR5
cGU+PiBtX3Rhc2s7Cit9OworCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKKworI2VuZGlmIC8v
IEVOQUJMRShCM19KSVQpCisKKyNlbmRpZiAvLyBCM1BvbHlKdW1wVmFsdWVfaAorCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5jcHAJKHJldmlzaW9uIDIwMTQ5OSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTgyLDYgKzgyLDggQEAgVmFyaWFibGUqIFByb2NlZHVyZTo6YWRkVmFyaWFibGUoVHlw
ZSB0eQogCiBWYWx1ZSogUHJvY2VkdXJlOjpjbG9uZShWYWx1ZSogdmFsdWUpCiB7CisgICAgQVNT
RVJUKHZhbHVlLT5pc0Nsb25lYWJsZSgpKTsKKyAgICAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmFs
dWU+IGNsb25lKHZhbHVlLT5jbG9uZUltcGwoKSk7CiAgICAgY2xvbmUtPm1faW5kZXggPSBVSU5U
X01BWDsKICAgICBjbG9uZS0+b3duZXIgPSBudWxscHRyOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzUHJvY2VkdXJlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzUHJvY2VkdXJlLmgJKHJldmlzaW9uIDIwMTQ5OSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsNiArMTAxLDcg
QEAgcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5hbWUuLi4g
QXJndW1lbnRzPgogICAgIFZhbHVlVHlwZSogYWRkKEFyZ3VtZW50cy4uLik7CiAKKyAgICAvLyBO
b3RlIHRoYXQgbm90IGFsbCB2YWx1ZXMgYXJlIGNsb25lYWJsZS4gQ2hlY2sgVmFsdWU6OmlzQ2xv
bmVhYmxlKCkgYmVmb3JlIHByb2NlZWRpbmcuCiAgICAgVmFsdWUqIGNsb25lKFZhbHVlKik7CiAK
ICAgICBWYWx1ZSogYWRkSW50Q29uc3RhbnQoT3JpZ2luLCBUeXBlLCBpbnQ2NF90IHZhbHVlKTsK
QEAgLTIxOCw2ICsyMTksOSBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBjaGFyKiBsYXN0UGhhc2VO
YW1lKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0UGhhc2VOYW1lOyB9CiAKKyAgICAvLyBBbGxvY2F0
ZXMgYSBzbGFiIG9mIG1lbW9yeSB0aGF0IHdpbGwgYmUga2VwdCBhbGl2ZSBieSBhbnlvbmUgd2hv
IGtlZXBzIHRoZSByZXN1bHRpbmcgY29kZQorICAgIC8vIGFsaXZlLiBHcmVhdCBmb3IgY29tcGls
ZXItZ2VuZXJhdGVkIGRhdGEgc2VjdGlvbnMsIGxpa2Ugc3dpdGNoIGp1bXAgdGFibGVzIGFuZCBj
b25zdGFudCBwb29scy4KKyAgICAvLyBUaGlzIHJldHVybnMgbWVtb3J5IHRoYXQgaGFzIGJlZW4g
emVyby1pbml0aWFsaXplZC4KICAgICB2b2lkKiBhZGREYXRhU2VjdGlvbihzaXplX3Qgc2l6ZSk7
CiAKICAgICBPcGFxdWVCeXByb2R1Y3RzJiBieXByb2R1Y3RzKCkgeyByZXR1cm4gKm1fYnlwcm9k
dWN0czsgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGgu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVu
Z3RoLmNwcAkocmV2aXNpb24gMjAxNDk5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
UmVkdWNlU3RyZW5ndGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzczLDcgKzE3NzMsMTcgQEAg
cHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlLT5vcGNvZGUoKSA9PSBT
ZWxlY3QKICAgICAgICAgICAgICAgICAgICAgICAgICYmICh2YWx1ZS0+Y2hpbGQoMSktPmlzQ29u
c3RhbnQoKSAmJiB2YWx1ZS0+Y2hpbGQoMiktPmlzQ29uc3RhbnQoKSk7CiAgICAgICAgICAgICAg
ICAgfSk7Ci0gICAgICAgICAgICBpZiAoc2VsZWN0KSB7CisgICAgICAgICAgICAKKyAgICAgICAg
ICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHRoZSByZWxldmFudCBjb2RlIGlzIGNsb25lYWJsZS4KKyAg
ICAgICAgICAgIGJvb2wgYWxsQXJlQ2xvbmVhYmxlID0gdHJ1ZTsKKyAgICAgICAgICAgIGZvciAo
dW5zaWduZWQgaW5kZXggPSBtX2luZGV4ICsgMTsgaW5kZXgtLTspIHsKKyAgICAgICAgICAgICAg
ICBWYWx1ZSogdmFsdWUgPSBtX2Jsb2NrLT5hdChpbmRleCk7CisgICAgICAgICAgICAgICAgYWxs
QXJlQ2xvbmVhYmxlICY9IHZhbHVlLT5pc0Nsb25lYWJsZSgpOworICAgICAgICAgICAgICAgIGlm
ICh2YWx1ZSA9PSBzZWxlY3QpCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoc2VsZWN0ICYmIGFsbEFyZUNsb25l
YWJsZSkgewogICAgICAgICAgICAgICAgIHNwZWNpYWxpemVTZWxlY3Qoc2VsZWN0KTsKICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM1ZhbGlkYXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNWYWxpZGF0ZS5jcHAJKHJldmlzaW9uIDIwMTQ5OSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM1ZhbGlkYXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzg3LDYgKzM4Nywx
MSBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgVkFMSURBVEUoaXNJbnQodmFsdWUtPmNoaWxk
KDApLT50eXBlKCkpLCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAgICAgIFZBTElEQVRF
KHZhbHVlLT50eXBlKCkgPT0gVm9pZCwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgUG9seUp1bXA6CisgICAgICAgICAgICAgICAgVkFM
SURBVEUodmFsdWUtPm51bUNoaWxkcmVuKCkgPT0gMSwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAg
ICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSA9PSBwb2ludGVyVHlw
ZSgpLCAoIkF0ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT50
eXBlKCkgPT0gVm9pZCwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgVkFMSURBVEUoISh2YWx1ZS0+ZWZmZWN0cygp
LndyaXRlcyAmJiB2YWx1ZS0+a2V5KCkpLCAoIkF0ICIsICp2YWx1ZSkpOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmNwcAkocmV2aXNpb24gMjAxNDk5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NDAsNiArNTQw
LDcgQEAgRWZmZWN0cyBWYWx1ZTo6ZWZmZWN0cygpIGNvbnN0CiAgICAgY2FzZSBKdW1wOgogICAg
IGNhc2UgQnJhbmNoOgogICAgIGNhc2UgU3dpdGNoOgorICAgIGNhc2UgUG9seUp1bXA6CiAgICAg
Y2FzZSBSZXR1cm46CiAgICAgY2FzZSBPb3BzOgogICAgICAgICByZXN1bHQudGVybWluYWwgPSB0
cnVlOwpAQCAtNTQ4LDYgKzU0OSwxMSBAQCBFZmZlY3RzIFZhbHVlOjplZmZlY3RzKCkgY29uc3QK
ICAgICByZXR1cm4gcmVzdWx0OwogfQogCitib29sIFZhbHVlOjppc0Nsb25lYWJsZSgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIFZhbHVlS2V5IFZhbHVlOjprZXkoKSBjb25zdAog
ewogICAgIHN3aXRjaCAob3Bjb2RlKCkpIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1ZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFs
dWUuaAkocmV2aXNpb24gMjAxNDk5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFs
dWUuaAkod29ya2luZyBjb3B5KQpAQCAtMjAwLDYgKzIwMCwxMSBAQCBwdWJsaWM6CiAgICAgYm9v
bCBpc0xpa2VOb25aZXJvKCkgY29uc3QgeyByZXR1cm4gYXNUcmlTdGF0ZSgpID09IFRydWVUcmlT
dGF0ZTsgfQogCiAgICAgRWZmZWN0cyBlZmZlY3RzKCkgY29uc3Q7CisgICAgCisgICAgLy8gU29t
ZSBvcGVyYXRpb25zIHdpbGwgcmVmdXNlIHRvIGJlIGNsb25lZC4gVGhpcyBoYXBwZW5zIHdoZW4g
dGhlIG9wZXJhdGlvbiBoYXMgc29tZSBpbnNpZGUKKyAgICAvLyBrbm93bGVkZ2UgYWJvdXQgdGhl
IHJlbGF0aW9uc2hpcCBiZXR3ZWVuIGl0cyBpZGVudGl0eSBhbmQgdGhlIGlkZW50aXR5IG9mIHRo
ZSBjb2RlIGl0IHdpbGwKKyAgICAvLyBnZW5lcmF0ZS4KKyAgICB2aXJ0dWFsIGJvb2wgaXNDbG9u
ZWFibGUoKSBjb25zdDsKIAogICAgIC8vIFRoaXMgcmV0dXJucyBhIFZhbHVlS2V5IHRoYXQgZGVz
Y3JpYmVzIHRoYXQgdGhpcyBWYWx1ZSByZXR1cm5zIHdoZW4gaXQgZXhlY3V0ZXMuIFJldHVybnMg
YW4KICAgICAvLyBlbXB0eSBWYWx1ZUtleSBpZiB0aGlzIFZhbHVlIGlzIGltcHVyZS4gTm90ZSB0
aGF0IGFuIG9wZXJhdGlvbiB0aGF0IHJldHVybnMgVm9pZCBjb3VsZCBzdGlsbApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAJKHJldmlzaW9uIDIwMTQ5OSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3
IEBACiAjaW5jbHVkZSAiQjNDb25zdFB0clZhbHVlLmgiCiAjaW5jbHVkZSAiQjNDb250cm9sVmFs
dWUuaCIKICNpbmNsdWRlICJCM0VmZmVjdHMuaCIKKyNpbmNsdWRlICJCM1BvbHlKdW1wVmFsdWUu
aCIKICNpbmNsdWRlICJCM01hdGhFeHRyYXMuaCIKICNpbmNsdWRlICJCM01lbW9yeVZhbHVlLmgi
CiAjaW5jbHVkZSAiQjNQcm9jZWR1cmUuaCIKQEAgLTQ0LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJC
M1N3aXRjaFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNVcHNpbG9uVmFsdWUuaCIKICNpbmNsdWRlICJC
M1ZhbHVlSW5saW5lcy5oIgorI2luY2x1ZGUgIkIzVmFyaWFibGVWYWx1ZS5oIgogI2luY2x1ZGUg
IkNDYWxsSGVscGVycy5oIgogI2luY2x1ZGUgIkluaXRpYWxpemVUaHJlYWRpbmcuaCIKICNpbmNs
dWRlICJKU0NJbmxpbmVzLmgiCkBAIC01Miw2ICs1NCw3IEBACiAjaW5jbHVkZSAiVk0uaCIKICNp
bmNsdWRlIDxjbWF0aD4KICNpbmNsdWRlIDxzdHJpbmc+CisjaW5jbHVkZSA8d3RmL0xpc3REdW1w
Lmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTnVtYmVyT2ZDb3Jlcy5o
PgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KQEAgLTczLDYgKzc2LDExIEBAIHVzaW5nIG5h
bWVzcGFjZSBKU0M6OkIzOwogCiBuYW1lc3BhY2UgewogCitib29sIHNob3VsZEJlVmVyYm9zZSgp
Cit7CisgICAgcmV0dXJuIHNob3VsZER1bXBJUihCM01vZGUpOworfQorCiBTdGF0aWNMb2NrIGNy
YXNoTG9jazsKIAogLy8gTm90aGluZyBmYW5jeSBmb3Igbm93OyB3ZSBqdXN0IHVzZSB0aGUgZXhp
c3RpbmcgV1RGIGFzc2VydGlvbiBtYWNoaW5lcnkuCkBAIC0xMDEyOCw3ICsxMDEzNiwxMCBAQCB2
b2lkIHRlc3RTd2l0Y2hDaGlsbERpdih1bnNpZ25lZCBkZWdyZWUsCiAgICAgYXV0byBjb2RlID0g
Y29tcGlsZShwcm9jKTsKIAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBkZWdyZWU7ICsr
aSkgewotICAgICAgICBDSEVDSyhpbnZva2U8aW50MzJfdD4oKmNvZGUsIGkgKiBnYXAsIDQyLCAx
MSkgPT0gKChpICYgMSkgPyAxMS80MiA6IDQyLzExKSk7CisgICAgICAgIGRhdGFMb2coImkgPSAi
LCBpLCAiXG4iKTsKKyAgICAgICAgaW50MzJfdCByZXN1bHQgPSBpbnZva2U8aW50MzJfdD4oKmNv
ZGUsIGkgKiBnYXAsIDQyLCAxMSk7CisgICAgICAgIGRhdGFMb2coInJlc3VsdCA9ICIsIHJlc3Vs
dCwgIlxuIik7CisgICAgICAgIENIRUNLKHJlc3VsdCA9PSAoKGkgJiAxKSA/IDExLzQyIDogNDIv
MTEpKTsKICAgICAgICAgaWYgKGdhcCA+IDEpIHsKICAgICAgICAgICAgIENIRUNLKCFpbnZva2U8
aW50MzJfdD4oKmNvZGUsIGkgKiBnYXAgKyAxLCA0MiwgMTEpKTsKICAgICAgICAgICAgIENIRUNL
KCFpbnZva2U8aW50MzJfdD4oKmNvZGUsIGkgKiBnYXAgLSAxLCA0MiwgMTEpKTsKQEAgLTEyMDUw
LDYgKzEyMDYxLDIzMSBAQCB2b2lkIHRlc3RMYXRlUmVnaXN0ZXIoKQogICAgIENIRUNLKGludm9r
ZTx1aW50NjRfdD4oKmNvZGUpID09IHJlc3VsdCk7CiB9CiAKK3ZvaWQgdGhyZWFkZWRJbnRlcnBy
ZXRlclByaW50KFZlY3RvcjxpbnRwdHJfdD4qIHN0cmVhbSwgaW50cHRyX3QgdmFsdWUpCit7Cisg
ICAgc3RyZWFtLT5hcHBlbmQodmFsdWUpOworfQorCit2b2lkIHRlc3RUaHJlYWRlZEludGVycHJl
dGVyKCkKK3sKKyAgICAvLyBUaGlzIGNyZWF0ZXMgYSBwb29yIG1hbidzIHRocmVhZGVkIGludGVy
cHJldGVyIHVzaW5nIFBvbHlKdW1wIGFuZCBzZWVzIGlmIGl0IHdvcmtzLiBOb3RlCisgICAgLy8g
dGhhdCBQb2x5SnVtcCBpcyBub3QgbGlrZSBpbmRpcmVjdCBicmFuY2hlcyBpbiBMTFZNLCBzbyB5
b3UgY2FuJ3QgYWN0dWFsbHkgdXNlIGl0IHRvCisgICAgLy8gaW1wbGVtZW50IGEgcHJvcGVyIHRo
cmVhZGVkIGludGVycHJldGVyLiBUaGlzIGNoZWF0czogdGhlIGRpc3BhdGNoIGluc3RydWN0aW9u
IGlzIGF0IHRoZSB0b3AKKyAgICAvLyBvZiB0aGUgbG9vcC4gVGhpcyBhbHNvIHRlc3RzIFZhcmlh
YmxlVmFsdWUuCisgICAgCisgICAgUHJvY2VkdXJlIHByb2M7CisgICAgCisgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBCYXNpY0Jsb2NrKiBkaXNwYXRjaCA9IHBy
b2MuYWRkQmxvY2soKTsKKyAgICBCYXNpY0Jsb2NrKiBhZGRUb0RhdGFQb2ludGVyID0gcHJvYy5h
ZGRCbG9jaygpOworICAgIEJhc2ljQmxvY2sqIGFkZFRvQ29kZVBvaW50ZXIgPSBwcm9jLmFkZEJs
b2NrKCk7CisgICAgQmFzaWNCbG9jayogYWRkVG9Db2RlUG9pbnRlclRha2VuID0gcHJvYy5hZGRC
bG9jaygpOworICAgIEJhc2ljQmxvY2sqIGFkZFRvQ29kZVBvaW50ZXJOb3RUYWtlbiA9IHByb2Mu
YWRkQmxvY2soKTsKKyAgICBCYXNpY0Jsb2NrKiBhZGRUb0RhdGEgPSBwcm9jLmFkZEJsb2NrKCk7
CisgICAgQmFzaWNCbG9jayogcHJpbnQgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9j
ayogc3RvcCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICAKKyAgICBWYXJpYWJsZSogZGF0YVBvaW50
ZXIgPSBwcm9jLmFkZFZhcmlhYmxlKHBvaW50ZXJUeXBlKCkpOworICAgIFZhcmlhYmxlKiBjb2Rl
UG9pbnRlciA9IHByb2MuYWRkVmFyaWFibGUocG9pbnRlclR5cGUoKSk7CisgICAgCisgICAgcm9v
dC0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAgICAgICBwcm9jLCBTZXQsIE9yaWdpbigp
LCBkYXRhUG9pbnRlciwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKKyAgICByb290LT5hcHBl
bmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQ
b2ludGVyLAorICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSkpOworICAgIFZhbHVlKiBjb250ZXh0ID0g
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjIpOworICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZGlzcGF0Y2gpKTsKKyAgICAKKyAgICBQ
b2x5SnVtcFZhbHVlKiBwb2x5SnVtcCA9IGRpc3BhdGNoLT5hcHBlbmROZXc8UG9seUp1bXBWYWx1
ZT4oCisgICAgICAgIHByb2MsIE9yaWdpbigpLAorICAgICAgICBkaXNwYXRjaC0+YXBwZW5kTmV3
PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9y
aWdpbigpLAorICAgICAgICAgICAgZGlzcGF0Y2gtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPigK
KyAgICAgICAgICAgICAgICBwcm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIpKSk7
CisgICAgcG9seUp1bXAtPmFwcGVuZFN1Y2Nlc3NvcihGcmVxdWVudGVkQmxvY2soYWRkVG9EYXRh
UG9pbnRlcikpOworICAgIHBvbHlKdW1wLT5hcHBlbmRTdWNjZXNzb3IoRnJlcXVlbnRlZEJsb2Nr
KGFkZFRvQ29kZVBvaW50ZXIpKTsKKyAgICBwb2x5SnVtcC0+YXBwZW5kU3VjY2Vzc29yKEZyZXF1
ZW50ZWRCbG9jayhhZGRUb0RhdGEpKTsKKyAgICBwb2x5SnVtcC0+YXBwZW5kU3VjY2Vzc29yKEZy
ZXF1ZW50ZWRCbG9jayhwcmludCkpOworICAgIHBvbHlKdW1wLT5hcHBlbmRTdWNjZXNzb3IoRnJl
cXVlbnRlZEJsb2NrKHN0b3ApKTsKKyAgICAKKyAgICAvLyBPdXIgIm9wY29kZXMiLiBUaGV5IHdp
bGwgaGF2ZSBtZWFuaW5nIG9uY2Ugd2UgY29tcGlsZS4KKyAgICBpbnRwdHJfdCBBZGREUCA9IDA7
CisgICAgaW50cHRyX3QgQWRkQ1AgPSAwOworICAgIGludHB0cl90IEFkZCA9IDA7CisgICAgaW50
cHRyX3QgUHJpbnQgPSAwOworICAgIGludHB0cl90IFN0b3AgPSAwOworICAgIHBvbHlKdW1wLT5z
ZXRDYWxsYmFjaygKKyAgICAgICAgWyZdIChjb25zdCBWZWN0b3I8TWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyPiYgcG9pbnRlcnMpIHsKKyAgICAgICAgICAgIGF1dG8gZ2V0ID0gWyZdIChzaXplX3QgaW5k
ZXgpIC0+IGludHB0cl90IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gYml0d2lzZV9jYXN0PGlu
dHB0cl90Pihwb2ludGVyc1tpbmRleF0uZXhlY3V0YWJsZUFkZHJlc3MoKSk7CisgICAgICAgICAg
ICB9OworICAgICAgICAgICAgCisgICAgICAgICAgICBBZGREUCA9IGdldCgwKTsKKyAgICAgICAg
ICAgIEFkZENQID0gZ2V0KDEpOworICAgICAgICAgICAgQWRkID0gZ2V0KDIpOworICAgICAgICAg
ICAgUHJpbnQgPSBnZXQoMyk7CisgICAgICAgICAgICBTdG9wID0gZ2V0KDQpOworICAgICAgICB9
KTsKKyAgICAKKyAgICAvLyBBZGREUCA8b3BlcmFuZD46IGFkZHMgPG9wZXJhbmQ+IHRvIERQLgor
ICAgIFZhbHVlKiBjb2RlUG9pbnRlclZhbHVlID0KKyAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+
YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBjb2RlUG9p
bnRlcik7CisgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAor
ICAgICAgICBwcm9jLCBTZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRlciwKKyAgICAgICAgYWRkVG9E
YXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEIzOjpBZGQs
IE9yaWdpbigpLAorICAgICAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhcmlh
YmxlVmFsdWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRlciksCisgICAgICAg
ICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgICAg
IHByb2MsIE11bCwgT3JpZ2luKCksCisgICAgICAgICAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+
YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAgICAgICAgICAgcHJvYywgTG9hZCwg
cG9pbnRlclR5cGUoKSwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUsIHNpemVvZihpbnRwdHJf
dCkpLAorICAgICAgICAgICAgICAgIGFkZFRvRGF0YVBvaW50ZXItPmFwcGVuZEludENvbnN0YW50
KAorICAgICAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6
ZW9mKGludHB0cl90KSkpKSk7CisgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhcmlh
YmxlVmFsdWU+KAorICAgICAgICBwcm9jLCBTZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlciwKKyAg
ICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHBy
b2MsIEIzOjpBZGQsIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLAorICAgICAgICAgICAgYWRk
VG9EYXRhUG9pbnRlci0+YXBwZW5kSW50Q29uc3RhbnQoCisgICAgICAgICAgICAgICAgcHJvYywg
T3JpZ2luKCksIHBvaW50ZXJUeXBlKCksIHNpemVvZihpbnRwdHJfdCkgKiAyKSkpOworICAgIGFk
ZFRvRGF0YVBvaW50ZXItPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdp
bigpLCBGcmVxdWVudGVkQmxvY2soZGlzcGF0Y2gpKTsKKyAgICAKKyAgICAvLyBBZGRDUCA8b3Bl
cmFuZD46IGFkZHMgPG9wZXJhbmQ+IHRvIENQIGlmIHRoZSBjdXJyZW50IHZhbHVlIGF0IERQIGlz
IG5vbi16ZXJvLCBvdGhlcndpc2UKKyAgICAvLyBmYWxscyB0aHJvdWdoIG5vcm1hbGx5LgorICAg
IGNvZGVQb2ludGVyVmFsdWUgPQorICAgICAgICBhZGRUb0NvZGVQb2ludGVyLT5hcHBlbmROZXc8
VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyKTsKKyAg
ICBWYWx1ZSogZGF0YVBvaW50ZXJWYWx1ZSA9CisgICAgICAgIGFkZFRvQ29kZVBvaW50ZXItPmFw
cGVuZE5ldzxWYXJpYWJsZVZhbHVlPihwcm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwgZGF0YVBvaW50
ZXIpOworICAgIGFkZFRvQ29kZVBvaW50ZXItPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
ICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAorICAgICAgICBhZGRUb0NvZGVQb2ludGVyLT5h
cHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5
cGUoKSwgT3JpZ2luKCksIGRhdGFQb2ludGVyVmFsdWUpLAorICAgICAgICBGcmVxdWVudGVkQmxv
Y2soYWRkVG9Db2RlUG9pbnRlclRha2VuKSwgRnJlcXVlbnRlZEJsb2NrKGFkZFRvQ29kZVBvaW50
ZXJOb3RUYWtlbikpOworICAgIGFkZFRvQ29kZVBvaW50ZXJUYWtlbi0+YXBwZW5kTmV3PFZhcmlh
YmxlVmFsdWU+KAorICAgICAgICBwcm9jLCBTZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlciwKKyAg
ICAgICAgYWRkVG9Db2RlUG9pbnRlclRha2VuLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAg
ICAgcHJvYywgQjM6OkFkZCwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUsCisgICAgICAgICAg
ICBhZGRUb0NvZGVQb2ludGVyVGFrZW4tPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICAg
ICAgcHJvYywgTXVsLCBPcmlnaW4oKSwKKyAgICAgICAgICAgICAgICBhZGRUb0NvZGVQb2ludGVy
VGFrZW4tPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgICAgICAgICAgICAgIHByb2Ms
IExvYWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLCBzaXplb2Yo
aW50cHRyX3QpKSwKKyAgICAgICAgICAgICAgICBhZGRUb0NvZGVQb2ludGVyVGFrZW4tPmFwcGVu
ZEludENvbnN0YW50KAorICAgICAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgcG9pbnRl
clR5cGUoKSwgc2l6ZW9mKGludHB0cl90KSkpKSk7CisgICAgYWRkVG9Db2RlUG9pbnRlclRha2Vu
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRl
ZEJsb2NrKGRpc3BhdGNoKSk7CisgICAgYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuLT5hcHBlbmRO
ZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2lu
dGVyLAorICAgICAgICBhZGRUb0NvZGVQb2ludGVyTm90VGFrZW4tPmFwcGVuZE5ldzxWYWx1ZT4o
CisgICAgICAgICAgICBwcm9jLCBCMzo6QWRkLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwK
KyAgICAgICAgICAgIGFkZFRvQ29kZVBvaW50ZXJOb3RUYWtlbi0+YXBwZW5kSW50Q29uc3RhbnQo
CisgICAgICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBlKCksIHNpemVvZihp
bnRwdHJfdCkgKiAyKSkpOworICAgIGFkZFRvQ29kZVBvaW50ZXJOb3RUYWtlbi0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVk
QmxvY2soZGlzcGF0Y2gpKTsKKworICAgIC8vIEFkZCA8b3BlcmFuZD46IGFkZHMgPG9wZXJhbmQ+
IHRvIHRoZSBzbG90IHBvaW50ZWQgdG8gYnkgRFAuCisgICAgY29kZVBvaW50ZXJWYWx1ZSA9IGFk
ZFRvRGF0YS0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigp
LCBjb2RlUG9pbnRlcik7CisgICAgZGF0YVBvaW50ZXJWYWx1ZSA9IGFkZFRvRGF0YS0+YXBwZW5k
TmV3PFZhcmlhYmxlVmFsdWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRlcik7
CisgICAgYWRkVG9EYXRhLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICBwcm9jLCBT
dG9yZSwgT3JpZ2luKCksCisgICAgICAgIGFkZFRvRGF0YS0+YXBwZW5kTmV3PFZhbHVlPigKKyAg
ICAgICAgICAgIHByb2MsIEIzOjpBZGQsIE9yaWdpbigpLAorICAgICAgICAgICAgYWRkVG9EYXRh
LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICAgICAgICAgIHByb2MsIExvYWQsIHBv
aW50ZXJUeXBlKCksIE9yaWdpbigpLCBkYXRhUG9pbnRlclZhbHVlKSwKKyAgICAgICAgICAgIGFk
ZFRvRGF0YS0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAgICAgICBwcm9jLCBM
b2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwgc2l6ZW9mKGlu
dHB0cl90KSkpLAorICAgICAgICBkYXRhUG9pbnRlclZhbHVlKTsKKyAgICBhZGRUb0RhdGEtPmFw
cGVuZE5ldzxWYXJpYWJsZVZhbHVlPigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgY29k
ZVBvaW50ZXIsCisgICAgICAgIGFkZFRvRGF0YS0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAg
ICAgIHByb2MsIEIzOjpBZGQsIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLAorICAgICAgICAg
ICAgYWRkVG9EYXRhLT5hcHBlbmRJbnRDb25zdGFudChwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5
cGUoKSwgc2l6ZW9mKGludHB0cl90KSAqIDIpKSk7CisgICAgYWRkVG9EYXRhLT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRpc3Bh
dGNoKSk7CisgICAgCisgICAgLy8gUHJpbnQ6ICJwcmludHMiIHRoZSB2YWx1ZSBwb2ludGVkIHRv
IGJ5IERQLiBXaGF0IHRoaXMgYWN0dWFsbHkgbWVhbnMgaXMgdGhhdCB0aGUgdmFsdWUgaXMKKyAg
ICAvLyBhcHBlbmRlZCB0byB0aGUgc3RyZWFtIHZlY3RvciBieSB0aGUgdGhyZWFkZWRJbnRlcnBy
ZXRlclByaW50IGZ1bmN0aW9uLgorICAgIGNvZGVQb2ludGVyVmFsdWUgPSBwcmludC0+YXBwZW5k
TmV3PFZhcmlhYmxlVmFsdWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlcik7
CisgICAgZGF0YVBvaW50ZXJWYWx1ZSA9IHByaW50LT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4o
cHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGRhdGFQb2ludGVyKTsKKyAgICBwcmludC0+YXBwZW5k
TmV3PENDYWxsVmFsdWU+KAorICAgICAgICBwcm9jLCBWb2lkLCBPcmlnaW4oKSwKKyAgICAgICAg
cHJpbnQtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIE9yaWdp
bigpLCBiaXR3aXNlX2Nhc3Q8dm9pZCo+KHRocmVhZGVkSW50ZXJwcmV0ZXJQcmludCkpLAorICAg
ICAgICBjb250ZXh0LAorICAgICAgICBwcmludC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9j
LCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwgZGF0YVBvaW50ZXJWYWx1ZSkpOworICAg
IHByaW50LT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3Jp
Z2luKCksIGNvZGVQb2ludGVyLAorICAgICAgICBwcmludC0+YXBwZW5kTmV3PFZhbHVlPigKKyAg
ICAgICAgICAgIHByb2MsIEIzOjpBZGQsIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLAorICAg
ICAgICAgICAgcHJpbnQtPmFwcGVuZEludENvbnN0YW50KHByb2MsIE9yaWdpbigpLCBwb2ludGVy
VHlwZSgpLCBzaXplb2YoaW50cHRyX3QpKSkpOworICAgIHByaW50LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRpc3BhdGNoKSk7
CisgICAgCisgICAgLy8gU3RvcDogcmV0dXJucy4KKyAgICBzdG9wLT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICAgICAgc3RvcC0+
YXBwZW5kSW50Q29uc3RhbnQocHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBlKCksIDApKTsKKyAg
ICAKKyAgICBhdXRvIGludGVycHJldGVyID0gY29tcGlsZShwcm9jKTsKKyAgICAKKyAgICBDSEVD
SyhBZGREUCk7CisgICAgQ0hFQ0soQWRkQ1ApOworICAgIENIRUNLKEFkZCk7CisgICAgQ0hFQ0so
UHJpbnQpOworICAgIENIRUNLKFN0b3ApOworICAgIAorICAgIFZlY3RvcjxpbnRwdHJfdD4gZGF0
YTsKKyAgICBWZWN0b3I8aW50cHRyX3Q+IGNvZGU7CisgICAgVmVjdG9yPGludHB0cl90PiBzdHJl
YW07CisgICAgCisgICAgZGF0YS5hcHBlbmQoMSk7CisgICAgZGF0YS5hcHBlbmQoMCk7CisgICAg
CisgICAgaWYgKHNob3VsZEJlVmVyYm9zZSgpKQorICAgICAgICBkYXRhTG9nKCJkYXRhID0gIiwg
bGlzdER1bXAoZGF0YSksICJcbiIpOworICAgIAorICAgIC8vIFdlJ2xsIHdyaXRlIGEgcHJvZ3Jh
bSB0aGF0IHByaW50cyB0aGUgbnVtYmVycyAxLi4xMDAuCisgICAgLy8gV2UgZXhwZWN0IERQIHRv
IHBvaW50IGF0ICMwLgorICAgIGNvZGUuYXBwZW5kKEFkZENQKTsKKyAgICBjb2RlLmFwcGVuZCg2
KTsgLy8gZ28gdG8gbG9vcCBib2R5CisgICAgCisgICAgLy8gTG9vcCByZS1lbnRyeToKKyAgICAv
LyBXZSBleHBlY3QgRFAgdG8gcG9pbnQgYXQgIzEgYW5kIGZvciAjMSB0byBiZSBvZmZzZXQgYnkg
LTEwMC4KKyAgICBjb2RlLmFwcGVuZChBZGQpOworICAgIGNvZGUuYXBwZW5kKDEwMCk7CisgICAg
CisgICAgY29kZS5hcHBlbmQoQWRkRFApOworICAgIGNvZGUuYXBwZW5kKC0xKTsKKyAgICAKKyAg
ICAvLyBMb29wIGhlYWRlcjoKKyAgICAvLyBXZSBleHBlY3QgRFAgdG8gcG9pbnQgYXQgIzAuCisg
ICAgY29kZS5hcHBlbmQoQWRkRFApOworICAgIGNvZGUuYXBwZW5kKDEpOworICAgIAorICAgIGNv
ZGUuYXBwZW5kKEFkZCk7CisgICAgY29kZS5hcHBlbmQoMSk7CisgICAgCisgICAgY29kZS5hcHBl
bmQoUHJpbnQpOworICAgIAorICAgIGNvZGUuYXBwZW5kKEFkZCk7CisgICAgY29kZS5hcHBlbmQo
LTEwMCk7CisgICAgCisgICAgLy8gV2Ugd2FudCB0byBzdG9wIGlmIGl0J3MgemVybyBhbmQgY29u
dGludWUgaWYgaXQncyBub24temVyby4gQWRkQ1AgdGFrZXMgdGhlIGJyYW5jaCBpZiBpdCdzCisg
ICAgLy8gbm9uLXplcm8uCisgICAgY29kZS5hcHBlbmQoQWRkQ1ApOworICAgIGNvZGUuYXBwZW5k
KC0xMSk7IC8vIGdvIHRvIGxvb3AgcmUtZW50cnkuCisgICAgCisgICAgY29kZS5hcHBlbmQoU3Rv
cCk7CisgICAgCisgICAgaWYgKHNob3VsZEJlVmVyYm9zZSgpKQorICAgICAgICBkYXRhTG9nKCJj
b2RlID0gIiwgbGlzdER1bXAoY29kZSksICJcbiIpOworICAgIAorICAgIENIRUNLKCFpbnZva2U8
aW50cHRyX3Q+KCppbnRlcnByZXRlciwgZGF0YS5kYXRhKCksIGNvZGUuZGF0YSgpLCAmc3RyZWFt
KSk7CisgICAgCisgICAgQ0hFQ0soc3RyZWFtLnNpemUoKSA9PSAxMDApOworICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCAxMDA7ICsraSkKKyAgICAgICAgQ0hFQ0soc3RyZWFtW2ldID09IGkg
KyAxKTsKKyAgICAKKyAgICBpZiAoc2hvdWxkQmVWZXJib3NlKCkpCisgICAgICAgIGRhdGFMb2co
InN0cmVhbSA9ICIsIGxpc3REdW1wKHN0cmVhbSksICJcbiIpOworfQorCiAvLyBNYWtlIHN1cmUg
dGhlIGNvbXBpbGVyIGRvZXMgbm90IHRyeSB0byBvcHRpbWl6ZSBhbnl0aGluZyBvdXQuCiBORVZF
Ul9JTkxJTkUgZG91YmxlIHplcm8oKQogewpAQCAtMTM0NTQsNiArMTM2OTAsOCBAQCB2b2lkIHJ1
bihjb25zdCBjaGFyKiBmaWx0ZXIpCiAgICAgUlVOKHRlc3RTcGlsbFVzZUxhcmdlclRoYW5EZWYo
KSk7CiAKICAgICBSVU4odGVzdExhdGVSZWdpc3RlcigpKTsKKyAgICAKKyAgICBSVU4odGVzdFRo
cmVhZGVkSW50ZXJwcmV0ZXIoKSk7CiAKICAgICBpZiAodGFza3MuaXNFbXB0eSgpKQogICAgICAg
ICB1c2FnZSgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmgJKHJl
dmlzaW9uIDIwMTQ5OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiQWlyU3BlY2lhbC5o
IgogI2luY2x1ZGUgIkFpclN0YWNrU2xvdC5oIgogI2luY2x1ZGUgIkFpclRtcC5oIgorI2luY2x1
ZGUgIkIzSW5kZXhNYXAuaCIKICNpbmNsdWRlICJCM1NwYXJzZUNvbGxlY3Rpb24uaCIKICNpbmNs
dWRlICJSZWdpc3RlckF0T2Zmc2V0TGlzdC5oIgogI2luY2x1ZGUgIlN0YWNrQWxpZ25tZW50Lmgi
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRlLmNwcAko
cmV2aXNpb24gMjAxNDk5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5l
cmF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDEwICs0NywxMyBAQAogI2luY2x1ZGUgIkFp
clZhbGlkYXRlLmgiCiAjaW5jbHVkZSAiQjNDb21tb24uaCIKICNpbmNsdWRlICJCM0luZGV4TWFw
LmgiCisjaW5jbHVkZSAiQjNQb2x5SnVtcFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNQcm9jZWR1cmUu
aCIKICNpbmNsdWRlICJCM1RpbWluZ1Njb3BlLmgiCisjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMu
aCIKICNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKICNpbmNsdWRlICJEaXNhbGxvd01hY3JvU2Ny
YXRjaFJlZ2lzdGVyVXNhZ2UuaCIKKyNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAKIG5hbWVzcGFj
ZSBKU0MgeyBuYW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UgQWlyIHsKIApAQCAtMTgzLDcgKzE4Niw4
IEBAIHZvaWQgZ2VuZXJhdGUoQ29kZSYgY29kZSwgQ0NhbGxIZWxwZXJzJiAKIAogICAgIGZvciAo
QmFzaWNCbG9jayogYmxvY2sgOiBjb2RlKSB7CiAgICAgICAgIGJsb2NrSnVtcHNbYmxvY2tdLmxp
bmsoJmppdCk7Ci0gICAgICAgIGJsb2NrTGFiZWxzW2Jsb2NrXSA9IGppdC5sYWJlbCgpOworICAg
ICAgICBDQ2FsbEhlbHBlcnM6OkxhYmVsIGxhYmVsID0gaml0LmxhYmVsKCk7CisgICAgICAgIGJs
b2NrTGFiZWxzW2Jsb2NrXSA9IGxhYmVsOwogICAgICAgICBBU1NFUlQoYmxvY2stPnNpemUoKSA+
PSAxKTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGJsb2NrLT5zaXplKCkgLSAx
OyArK2kpIHsKICAgICAgICAgICAgIEluc3QmIGluc3QgPSBibG9jay0+YXQoaSk7CkBAIC0yMTUs
MjYgKzIxOSw1NCBAQCB2b2lkIGdlbmVyYXRlKENvZGUmIGNvZGUsIENDYWxsSGVscGVycyYgCiAg
ICAgICAgICAgICBhZGRJdGVtKGJsb2NrLT5sYXN0KCkpOwogICAgICAgICAgICAgY29udGludWU7
CiAgICAgICAgIH0KLQorICAgICAgICAKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGp1bXAg
PSBibG9jay0+bGFzdCgpLmdlbmVyYXRlKGppdCwgY29udGV4dCk7Ci0gICAgICAgIHN3aXRjaCAo
YmxvY2stPm51bVN1Y2Nlc3NvcnMoKSkgewotICAgICAgICBjYXNlIDA6Ci0gICAgICAgICAgICBB
U1NFUlQoIWp1bXAuaXNTZXQoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAx
OgotICAgICAgICAgICAgbGluayhqdW1wLCBibG9jay0+c3VjY2Vzc29yQmxvY2soMCkpOwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgMjoKLSAgICAgICAgICAgIGxpbmsoanVtcCwg
YmxvY2stPnN1Y2Nlc3NvckJsb2NrKDApKTsKLSAgICAgICAgICAgIGlmIChibG9jay0+c3VjY2Vz
c29yQmxvY2soMSkgIT0gY29kZS5maW5kTmV4dEJsb2NrKGJsb2NrKSkKLSAgICAgICAgICAgICAg
ICBsaW5rKGppdC5qdW1wKCksIGJsb2NrLT5zdWNjZXNzb3JCbG9jaygxKSk7Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgLy8gVGhlIGp1bXAgd29u
J3QgYmUgc2V0IGZvciBQb2x5SnVtcCBiZWNhdXNlIGl0IGxldHMgaXRzIGZhaXRoIGluIHRoZSBh
ZGRyZXNzIG9wZXJhbmQKKyAgICAgICAgLy8gZ3VpZGUgd2hlcmUgaXQganVtcHMuIEl0IHdvbid0
IGJlIHNldCBmb3IgT29wcyBiZWNhdXNlIHRoZW4gaXQgd29uJ3QgaGF2ZSBhbnkgc3VjY2Vzc29y
cy4KKyAgICAgICAgaWYgKGp1bXAuaXNTZXQoKSkgeworICAgICAgICAgICAgc3dpdGNoIChibG9j
ay0+bnVtU3VjY2Vzc29ycygpKSB7CisgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAg
ICAgbGluayhqdW1wLCBibG9jay0+c3VjY2Vzc29yQmxvY2soMCkpOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAgIGxpbmsoanVtcCwg
YmxvY2stPnN1Y2Nlc3NvckJsb2NrKDApKTsKKyAgICAgICAgICAgICAgICBpZiAoYmxvY2stPnN1
Y2Nlc3NvckJsb2NrKDEpICE9IGNvZGUuZmluZE5leHRCbG9jayhibG9jaykpCisgICAgICAgICAg
ICAgICAgICAgIGxpbmsoaml0Lmp1bXAoKSwgYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDEpKTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAg
ICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBhZGRJdGVtKGJsb2NrLT5sYXN0KCkp
OwogICAgIH0KKyAgICAKKyAgICAvLyBUYWtlIGNhcmUgb2YgUG9seUp1bXAuIFdlIGRvIHRoaXMg
bGFzdCBiZWNhdXNlIGl0IHJlbGllcyBvbiBrbm93aW5nIHdoZXJlIGFsbCBvZiB0aGUgYmFzaWMK
KyAgICAvLyBibG9jayBsYW5kZWQuCisgICAgZm9yIChCYXNpY0Jsb2NrKiBibG9jayA6IGNvZGUp
IHsKKyAgICAgICAgaWYgKGJsb2NrLT5sYXN0KCkub3Bjb2RlICE9IFBvbHlKdW1wKQorICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgIAorICAgICAgICBQb2x5SnVtcFZhbHVlKiBwb2x5SnVt
cCA9IGJsb2NrLT5sYXN0KCkub3JpZ2luLT5hczxQb2x5SnVtcFZhbHVlPigpOworICAgICAgICBS
RUxFQVNFX0FTU0VSVChwb2x5SnVtcC0+bnVtU3VjY2Vzc29ycygpID09IGJsb2NrLT5udW1TdWNj
ZXNzb3JzKCkpOworICAgICAgICAKKyAgICAgICAgUmVmUHRyPFNoYXJlZFRhc2s8UG9seUp1bXBW
YWx1ZTo6Q2FsbGJhY2tGdW5jdGlvblR5cGU+PiB0YXNrID0gcG9seUp1bXAtPmNhbGxiYWNrVGFz
aygpOworICAgICAgICBpZiAoIXRhc2spCisgICAgICAgICAgICBjb250aW51ZTsgLy8gVGhpcyB3
b3VsZCBiZSB3ZWlyZCwgYnV0IHdlIGFsbG93IGl0LgorICAgICAgICAKKyAgICAgICAgVmVjdG9y
PENDYWxsSGVscGVyczo6TGFiZWw+IGxhYmVsczsKKyAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBz
dWNjZXNzb3IgOiBibG9jay0+c3VjY2Vzc29yQmxvY2tzKCkpCisgICAgICAgICAgICBsYWJlbHMu
YXBwZW5kKGJsb2NrTGFiZWxzW3N1Y2Nlc3Nvcl0pOworICAgICAgICAKKyAgICAgICAgaml0LmFk
ZExpbmtUYXNrKAorICAgICAgICAgICAgWz1dIChMaW5rQnVmZmVyJiBsaW5rQnVmZmVyKSB7Cisg
ICAgICAgICAgICAgICAgVmVjdG9yPE1hY3JvQXNzZW1ibGVyQ29kZVB0cj4gcG9pbnRlcnM7Cisg
ICAgICAgICAgICAgICAgZm9yIChDQ2FsbEhlbHBlcnM6OkxhYmVsIGxhYmVsIDogbGFiZWxzKQor
ICAgICAgICAgICAgICAgICAgICBwb2ludGVycy5hcHBlbmQobGlua0J1ZmZlci5sb2NhdGlvbk9m
KGxhYmVsKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgdGFzay0+cnVuKHBv
aW50ZXJzKTsKKyAgICAgICAgICAgIH0pOworICAgIH0KIAogICAgIHBjVG9PcmlnaW5NYXAuYXBw
ZW5kSXRlbShqaXQubGFiZWwoKSwgT3JpZ2luKCkpOwogICAgIC8vIEZJWE1FOiBNYWtlIGxhdGUg
cGF0aHMgaGF2ZSBPcmlnaW5zOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTUzNjg5CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckluc3QuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdC5jcHAJ
KHJldmlzaW9uIDIwMTQ5OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5z
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDYgKzQ1LDExIEBAIGJvb2wgSW5zdDo6aGFzQXJn
RWZmZWN0cygpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorYm9vbCBJbnN0Ojppc0Nsb25lYWJs
ZSgpCit7CisgICAgcmV0dXJuICFvcmlnaW4gfHwgb3JpZ2luLT5pc0Nsb25lYWJsZSgpOworfQor
CiB2b2lkIEluc3Q6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHsKICAgICBvdXQucHJp
bnQob3Bjb2RlLCAiICIsIGxpc3REdW1wKGFyZ3MpKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvQWlySW5zdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvQWlySW5zdC5oCShyZXZpc2lvbiAyMDE0OTkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvYWlyL0Fpckluc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMTg3LDYgKzE4NywxMCBA
QCBwdWJsaWM6CiAgICAgLy8gICAgIEFkZCBUbXAxLCBUbXAyLCBUbXAzCiAgICAgLy8gcmV0dXJu
cyAyIGlmIDAgYW5kIDEgYmVuZWZpdCBmcm9tIGFsaWFzaW5nIHRvIFRtcDMuCiAgICAgT3B0aW9u
YWw8dW5zaWduZWQ+IHNob3VsZFRyeUFsaWFzaW5nRGVmKCk7CisgICAgCisgICAgLy8gU29tZSBp
bnN0dWN0aW9ucyB3aWxsIHJlZnVzZSB0byBhbGxvdyBjbG9uaW5nLiBJZiB0aGlzIHJldHVybnMg
ZmFsc2UsIHlvdSBtdXN0IG1ha2Ugc3VyZSB0aGF0CisgICAgLy8geW91IG5ldmVyIGludHJvZHVj
ZSBjb3BpZXMgb2YgdGhlIGluc3RydWN0aW9uLgorICAgIGJvb2wgaXNDbG9uZWFibGUoKTsKIAog
ICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0OwogCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMJKHJldmlzaW9uIDIwMTQ5OSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMJKHdvcmtp
bmcgY29weSkKQEAgLTgzNSw2ICs4MzUsMTQgQEAgTW92ZURvdWJsZUNvbmRpdGlvbmFsbHlGbG9h
dCBVOkc6MzIsIFU6RgogCiBKdW1wIC9icmFuY2gKIAorIyBUaGlzIG1hc3F1ZXJhZGVzIGFzIGEg
bm9uLWJyYW5jaCB0ZXJtaW5hbCBiZWNhdXNlIGl0IGRvZXNuJ3QgbmVlZCB0aGUgdHJhZGl0aW9u
YWwgc29ydCBvZiBsaW5raW5nLgorIyAiQnJhbmNoIiBpbiB0aGlzIGNvbnRleHQganVzdCBtZWFu
cyB0aGF0IGl0J3MgYSB0ZXJtaW5hbCB0aGF0IHJldHVybnMgYSBKdW1wIHRoYXQgbmVlZHMgdG8g
YmUKKyMgbGlua2VkLiBJbnN0ZWFkLCBBaXI6OmdlbmVyYXRlKCkgaGFzIGEgc3BlY2lhbC1jYXNl
IGZvciBQb2x5SnVtcC4KK1BvbHlKdW1wIFU6RzpQdHIgL3Rlcm1pbmFsCisgICAgVG1wIGFzIGp1
bXAKKyAgICB4ODY6IEFkZHIgYXMganVtcAorICAgIHg4NjogSW5kZXggYXMganVtcAorCiBSZXQz
MiBVOkc6MzIgL3JldHVybgogICAgIFRtcAogCkluZGV4OiBXZWJzaXRlcy93ZWJraXQub3JnL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy93ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2
aXNpb24gMjAxNDk5KQorKysgV2Vic2l0ZXMvd2Via2l0Lm9yZy9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxNi0wNS0yOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9A
YXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCB0YWJsZS1iYXNlZCBzd2l0Y2hlcyBpbiBC
My9BaXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1
MTE0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAg
ICAgICAgVXBkYXRlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBuZXcgUG9seUp1bXAgb3Bjb2RlLgor
CisgICAgICAgICogZG9jcy9iMy9pbnRlcm1lZGlhdGUtcmVwcmVzZW50YXRpb24uaHRtbDoKKwog
MjAxNi0wNS0yMyAgSm9uIERhdmlzICA8am9uZEBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHN5
bnRheCBoaWdoZ2xpZ2h0aW5nIGZvciBFUzYgImxldCIsICJjb25zdCIgYW5kICJvZiIga2V5d29y
ZHMuCkluZGV4OiBXZWJzaXRlcy93ZWJraXQub3JnL2RvY3MvYjMvaW50ZXJtZWRpYXRlLXJlcHJl
c2VudGF0aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvd2Via2l0Lm9yZy9kb2NzL2Iz
L2ludGVybWVkaWF0ZS1yZXByZXNlbnRhdGlvbi5odG1sCShyZXZpc2lvbiAyMDE0OTkpCisrKyBX
ZWJzaXRlcy93ZWJraXQub3JnL2RvY3MvYjMvaW50ZXJtZWRpYXRlLXJlcHJlc2VudGF0aW9uLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTQxMiwxMSArNDEyLDEyIEBACiAgICAgICAgIHRoZSBDQ2Fs
bFZhbHVlIGNsYXNzLjwvZGQ+CiAKICAgICAgIDxkdD5UMSBQYXRjaHBvaW50KFtUMiwgW1QzLCAu
Li5dXSk8L2R0PgotICAgICAgPGRkPkEgUGF0Y2hwb2ludCBpcyBhIGN1c3RvbWl6YWJsZSB2YWx1
ZS4gIFBhdGNocG9pbnRzIHRha2UgemVybyBvciBtb3JlIHZhbHVlcyBvZiBhbnkKLSAgICAgICAg
dHlwZSBhbmQgcmV0dXJuIGFueSB0eXBlLiAgQSBQYXRjaHBvaW50J3MgYmVoYXZpb3IgaXMgZGV0
ZXJtaW5lZCBieSB0aGUgZ2VuZXJhdG9yCi0gICAgICAgIG9iamVjdC4gIFRoZSBnZW5lcmF0b3Ig
aXMgYSBDKysgbGFtYmRhIHRoYXQgZ2V0cyBjYWxsZWQgZHVyaW5nIGNvZGUgZ2VuZXJhdGlvbi4g
IEl0IGdldHMKLSAgICAgICAgcGFzc2VkIGFuIGFzc2VtYmxlciBpbnN0YW5jZSAoc3BlY2lmaWNh
bGx5LCBDQ2FsbEhlbHBlcnMmKSBhbmQgYW4gb2JqZWN0IGRlc2NyaWJpbmcKLSAgICAgICAgd2hl
cmUgdG8gZmluZCBhbGwgb2YgdGhlIGlucHV0IHZhbHVlcyBhbmQgd2hlcmUgdG8gcHV0IHRoZSBy
ZXN1bHQuICBIZXJlJ3MgYW4gZXhhbXBsZToKKyAgICAgIDxkZD4KKyAgICAgICAgPHA+QSBQYXRj
aHBvaW50IGlzIGEgY3VzdG9taXphYmxlIHZhbHVlLiAgUGF0Y2hwb2ludHMgdGFrZSB6ZXJvIG9y
IG1vcmUgdmFsdWVzIG9mIGFueQorICAgICAgICAgIHR5cGUgYW5kIHJldHVybiBhbnkgdHlwZS4g
IEEgUGF0Y2hwb2ludCdzIGJlaGF2aW9yIGlzIGRldGVybWluZWQgYnkgdGhlIGdlbmVyYXRvcgor
ICAgICAgICAgIG9iamVjdC4gIFRoZSBnZW5lcmF0b3IgaXMgYSBDKysgbGFtYmRhIHRoYXQgZ2V0
cyBjYWxsZWQgZHVyaW5nIGNvZGUgZ2VuZXJhdGlvbi4gIEl0IGdldHMKKyAgICAgICAgICBwYXNz
ZWQgYW4gYXNzZW1ibGVyIGluc3RhbmNlIChzcGVjaWZpY2FsbHksIENDYWxsSGVscGVycyYpIGFu
ZCBhbiBvYmplY3QgZGVzY3JpYmluZworICAgICAgICAgIHdoZXJlIHRvIGZpbmQgYWxsIG9mIHRo
ZSBpbnB1dCB2YWx1ZXMgYW5kIHdoZXJlIHRvIHB1dCB0aGUgcmVzdWx0LiAgSGVyZSdzIGFuIGV4
YW1wbGU6PC9wPgogIAogICAgICAgICA8cHJlPjxjb2RlPlBhdGNocG9pbnRWYWx1ZSogcGF0Y2hw
b2ludCA9IGJsb2NrLT5hcHBlbmROZXcmbHQ7UGF0Y2hwb2ludFZhbHVlJmd0Oyhwcm9jLCBJbnQz
MiwgT3JpZ2luKCkpOwogcGF0Y2hwb2ludC0+YXBwZW5kKENvbnN0cmFpbmVkVmFsdWUoYXJnMSwg
VmFsdWVSZXA6OlNvbWVSZWdpc3RlcikpOwpAQCAtNTI2LDYgKzUyNywzOSBAQCBwYXRjaHBvaW50
LT5zZXRHZW5lcmF0b3IoCiAgICAgICAgIGFsc28gY29udGFpbnMgYSBmYWxsLXRocm91Z2ggdGFy
Z2V0IGluIGNhc2UgdGhlIGNoaWxkIGhhcyBhIHZhbHVlIHRoYXQgd2Fzbid0IG1lbnRpb25lZAog
ICAgICAgICBpbiB0aGUgY2FzZXMgbGlzdC4gIE11c3QgdXNlIHRoZSBTd2l0Y2hWYWx1ZSBjbGFz
cy4gIE11c3QgYXBwZWFyIGF0IHRoZSBlbmQgb2YgdGhlIGJhc2ljCiAgICAgICAgIGJsb2NrLjwv
ZGQ+CisgICAgICAKKyAgICAgIDxkdD5Wb2lkIFBvbHlKdW1wKEludFB0ciwgYmxvY2tzLi4uKTwv
ZHQ+CisgICAgICA8ZGQ+CisgICAgICAgIDxwPkp1bXBzIHRvIHRoZSBnaXZlbiBhZGRyZXNzLiBU
aGUgY29tcGlsZXIgd2lsbCBhc3N1bWUgdGhhdCB0aGlzIGp1bXBzIHRvIG9uZSBvZiB0aGUgZ2l2
ZW4KKyAgICAgICAgICBibG9ja3MuIFRoZSBjb21waWxlciBtYWtlcyBubyBhdHRlbXB0IHRvIHBy
b3ZlIG9yIHZhbGlkYXRlIHRoYXQgdGhlIHBhc3NlZCBqdW1wIGFkZHJlc3MgaXMKKyAgICAgICAg
ICBhY3R1YWxseSB0aGUgYWRkcmVzcyBvZiBhbnkgb2YgdGhvc2UgYmxvY2tzLiBOb25zZW5zaWNh
bCB0aGluZ3Mgd2lsbCBoYXBwZW4gaWYgdGhlIHBhc3NlZAorICAgICAgICAgIGFkZHJlc3MgaXMg
bm90IHRoZSBhZGRyZXNzIG9mIG9uZSBvZiB0aGUgYmxvY2tzIGluIHRoZSBzdWNjZXNzb3IgbGlz
dC4gWW91IGNhbiBhcnJhbmdlIHRvCisgICAgICAgICAgZ2V0IHRoZSBhZGRyZXNzZXMgb2YgYmxv
Y2tzIGJ5IHBhc3NpbmcgYSBjYWxsYmFjayB0byBQb2x5SnVtcC4gVGhpcyBpcyB1c2VkIGludGVy
bmFsbHkKKyAgICAgICAgICBmb3IgbG93ZXJpbmcgU3dpdGNoIG9wY29kZXMuIFlvdSBjYW4gYWxz
byB1c2UgaXQgZGlyZWN0bHkuPC9wPgorICAgICAgCisgICAgICAgIDxwPlBvbHlKdW1wIGlzIG5v
dCBjbG9uZWFibGUuIEZvciBlYWNoIFBvbHlKdW1wIHlvdSBjcmVhdGUsIHRoZXJlIHdpbGwgYmUg
b25lIGluZGlyZWN0CisgICAgICAgICAganVtcCBnZW5lcmF0ZWQuIFRoaXMgaXMgbmVjZXNzYXJ5
IHRvIGVuc3VyZSBzb3VuZG5lc3Mgb2YgdGhlIGNhbGxiYWNrLiBJZiB0aGUgUG9seUp1bXAKKyAg
ICAgICAgICBjb3VsZCBiZSBjbG9uZWQsIHRoZW4gdGhlIGNhbGxiYWNrIHdvdWxkIGdldCBjYWxs
ZWQgZm9yIGVhY2ggY2xvbmUuIFByZXN1bWFibHksIHlvdSdkCisgICAgICAgICAgaW1wbGVtZW50
IHRoZSBjYWxsYmFjayBieSBwb3B1bGF0aW5nIHNvbWUgdGFibGUgd2l0aCB0aGUgYWRkcmVzc2Vz
IG9mIHRoZSBibG9ja3MuIElmIHRoZQorICAgICAgICAgIGNhbGxiYWNrIGdldHMgY2FsbGVkIG11
bHRpcGxlIHRpbWVzIHRoZW4gaXQgbWF5IHJldHVybiBkaWZmZXJlbnQgYWRkcmVzc2VzIGVhY2gg
dGltZSAtCisgICAgICAgICAgc2luY2UgYWZ0ZXIgY2xvbmluZyBhIFBvbHlKdW1wLCB0aGUgY29t
cGlsZXIgbWF5IHJldGFyZ2V0IGFueSBvZiBpdHMgc3VjY2Vzc29yIGVkZ2VzLgorICAgICAgICAg
IFRoaXMgd291bGQgYmUgY29uZnVzaW5nLCBzaW5jZSB0aGVuIHlvdSB3b3VsZG4ndCBrbm93IHdo
YXQgdG8gZG8gd2l0aCBkaXNjcmVwYW5jaWVzIGJldHdlZW4KKyAgICAgICAgICBhZGRyZXNzZXMg
cmV0dXJuZWQgYnkgdGhlIHZhcmlvdXMgY2FsbHMgdG8gdGhlIGNhbGxiYWNrLiBEaXNhbGxvd2lu
ZyBjbG9uaW5nIG9mIFBvbHlKdW1wCisgICAgICAgICAgc29sdmVzIHRoaXMgcHJvYmxlbS48L3A+
CisgICAgICAgIAorICAgICAgICA8cD5BIGNsb3NlbHkgcmVsYXRlZCBwcm9ibGVtIGlzIHRoYXQg
aWYgeW91IGVtaXQgbXVsdGlwbGUgUG9seUp1bXAgaW5zdHJ1Y3Rpb25zLCB0aGVuIGV2ZW4KKyAg
ICAgICAgICBpZiB0aGV5IGluaXRpYWxseSBzaGFyZSB0aGUgc2FtZSBzdWNjZXNzb3JzLCB5b3Ug
Y2Fubm90IGd1YXJhbnRlZSB0aGF0IHRoZXkgd2lsbCBjb250aW51ZQorICAgICAgICAgIHRvIHNo
YXJlIHRoZSBzYW1lIHN1Y2Nlc3NvcnMgYWZ0ZXIgb3B0aW1pemF0aW9uLiBUaGlzIG1lYW5zIHRo
YXQgUG9seUp1bXAgY2Fubm90CisgICAgICAgICAgY3VycmVudGx5IGJlIHVzZWQgZm9yIGltcGxl
bWVudGluZyBkaXJlY3QgdGhyZWFkZWQgaW50ZXJwcmV0ZXJzLCBhdCBsZWFzdCBub3QgdGhlIGNs
YXNzaWMKKyAgICAgICAgICBraW5kOiB0byBtYWtlIGl0IHdvcmssIHlvdSBoYXZlIHRvIGhhdmUg
YSBzaGFyZWQgZGlzcGF0Y2ggYmxvY2sgc28gdGhhdCB5b3UgaGF2ZSBhIHNpbmdsZQorICAgICAg
ICAgIFBvbHlKdW1wLiBUaGlzIG1pZ2h0IGJlIGJldHRlciB0aGFuIGEgU3dpdGNoLWJhc2VkIGlu
dGVycHJldGVyLCBidXQgaXQncyBkZWZpbml0ZWx5IG5vdAorICAgICAgICAgIGFzIGdvb2QgYXMg
d2hhdCB5b3UnZCBnZXQgd2l0aCBHQ0Mtc3R5bGUgY29tcHV0ZWQgZ290by48L3A+CisgICAgICAg
IAorICAgICAgICA8cD5Qb2x5SnVtcCBpcyBzbyBuYW1lZCB0byBhdm9pZCBjb25mdXNpb24gd2l0
aCBjb21wdXRlZCBnb3RvcyBhbmQgaW5kaXJlY3QgYnJhbmNoZXMgaW4KKyAgICAgICAgICBvdGhl
ciBjb21waWxlcnMuIEl0IGhhcyBzaWduaWZpY2FudCByZXN0cmljdGlvbnMgdGhhdCB0aG9zZSBv
cGVyYXRpb25zIGRvIG5vdCBoYXZlLiBUaGVzZQorICAgICAgICAgIHJlc3RyaWN0aW9ucyBtYWtl
IGl0IGVhc2llciBmb3IgdGhlIG9wdGltaXplciB0byB3b3JrIHdpdGggc2luY2UgdGhlIGNvbnRy
b2wgZmxvdyBnZXRzIHRvCisgICAgICAgICAgYmUgZXhwbGljaXQgKFBvbHlKdW1wIGhhcyBhIGZp
bml0ZSBzZXQgb2Ygc3VjY2Vzc29ycyBsaWtlIGFueSBvdGhlciBibG9jayB0ZXJtaW5hbCkuPC9w
PgorICAgICAgPC9kZD4KIAogICAgICAgPGR0PlZvaWQgUmV0dXJuKFQpPC9kdD4KICAgICAgIDxk
ZD5Xb3JrcyBmb3IgYW55IHR5cGUgZXhjZXB0IFZvaWQuICBSZXR1cm5zIHRoZSBnaXZlbiB2YWx1
ZSBhbmQgdGVybWluYXRlcyB0aGUgcHJvY2VkdXJlLgpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjAxNDk5
KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTYtMDUtMjkgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAg
ICBJbXBsZW1lbnQgdGFibGUtYmFzZWQgc3dpdGNoZXMgaW4gQjMvQWlyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTExNDEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGpzL3JlZ3Jlc3MvYmlnc3dpdGNo
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9iaWdzd2l0Y2guaHRt
bDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvYmlnc3dpdGNoLmpz
OiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisKIDIwMTYtMDUtMzAgIEphdmllciBGZXJuYW5kZXog
IDxqZmVybmFuZGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0NTUyBCb3ggQWxpZ25tZW50XSBO
ZXcgQ1NTIFZhbHVlICdub3JtYWwnIGZvciBTZWxmIEFsaWdubWVudApJbmRleDogTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9iaWdzd2l0Y2gtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3MvYmlnc3dpdGNoCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pz
L3JlZ3Jlc3MvYmlnc3dpdGNoLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL2JpZ3N3aXRjaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIgQEAKKzwh
RE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNz
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2JpZ3N3aXRjaC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL3NjcmlwdC10ZXN0cy9iaWdzd2l0Y2guanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9zY3JpcHQtdGVzdHMvYmlnc3dpdGNoLmpzCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvYmlnc3dpdGNoLmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMjExIEBACitmdW5jdGlvbiBmb28obykgeworICAgIHZhciByZXN1bHQg
PSAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgKytpKSB7CisgICAgICAgIHZhciB2
YWx1ZSA9IGkgJiA2MzsKKyAgICAgICAgc3dpdGNoICh2YWx1ZSkgeworICAgICAgICBjYXNlIDA6
CisgICAgICAgICAgICByZXN1bHQgKz0gby5hOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgMToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYzsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICByZXN1bHQgKz0gby5kOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
LmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1OgorICAgICAgICAgICAgcmVz
dWx0ICs9IG8uZjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDY6CisgICAgICAg
ICAgICByZXN1bHQgKz0gby5nOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNzoK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSA4OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIDk6CisgICAgICAgICAgICByZXN1bHQgKz0gby5qOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgMTA6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTE6CisgICAgICAgICAgICByZXN1bHQgKz0g
by5hOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTI6CisgICAgICAgICAgICBy
ZXN1bHQgKz0gby5iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTM6CisgICAg
ICAgICAgICByZXN1bHQgKz0gby5jOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
MTQ6CisgICAgICAgICAgICByZXN1bHQgKz0gby5kOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgMTU6CisgICAgICAgICAgICByZXN1bHQgKz0gby5lOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgMTY6CisgICAgICAgICAgICByZXN1bHQgKz0gby5mOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTc6CisgICAgICAgICAgICByZXN1bHQgKz0gby5n
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTg6CisgICAgICAgICAgICByZXN1
bHQgKz0gby5oOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTk6CisgICAgICAg
ICAgICByZXN1bHQgKz0gby5pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjA6
CisgICAgICAgICAgICByZXN1bHQgKz0gby5qOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgMjE6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgMjI6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjM6CisgICAgICAgICAgICByZXN1bHQgKz0gby5hOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjQ6CisgICAgICAgICAgICByZXN1bHQg
Kz0gby5iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjU6CisgICAgICAgICAg
ICByZXN1bHQgKz0gby5jOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjY6Cisg
ICAgICAgICAgICByZXN1bHQgKz0gby5kOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgMjc6CisgICAgICAgICAgICByZXN1bHQgKz0gby5lOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgMjg6CisgICAgICAgICAgICByZXN1bHQgKz0gby5mOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgMjk6CisgICAgICAgICAgICByZXN1bHQgKz0gby5nOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzA6CisgICAgICAgICAgICByZXN1bHQgKz0g
by5oOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzE6CisgICAgICAgICAgICBy
ZXN1bHQgKz0gby5pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzI6CisgICAg
ICAgICAgICByZXN1bHQgKz0gby5qOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
MzM6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgMzQ6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgMzU6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzY6CisgICAgICAgICAgICByZXN1bHQgKz0gby5h
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzc6CisgICAgICAgICAgICByZXN1
bHQgKz0gby5iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzg6CisgICAgICAg
ICAgICByZXN1bHQgKz0gby5jOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzk6
CisgICAgICAgICAgICByZXN1bHQgKz0gby5kOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgNDA6CisgICAgICAgICAgICByZXN1bHQgKz0gby5lOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgNDE6CisgICAgICAgICAgICByZXN1bHQgKz0gby5mOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDI6CisgICAgICAgICAgICByZXN1bHQgKz0gby5nOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDM6CisgICAgICAgICAgICByZXN1bHQg
Kz0gby5oOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDQ6CisgICAgICAgICAg
ICByZXN1bHQgKz0gby5pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDU6Cisg
ICAgICAgICAgICByZXN1bHQgKz0gby5qOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgNDY6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgNDc6CisgICAgICAgICAgICByZXN1bHQgKz0gby5pOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgNDg6CisgICAgICAgICAgICByZXN1bHQgKz0gby5qOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDk6CisgICAgICAgICAgICByZXN1bHQgKz0g
by5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTA6CisgICAgICAgICAgICBy
ZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTE6CisgICAg
ICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
NTI6CisgICAgICAgICAgICByZXN1bHQgKz0gby5hOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgNTM6CisgICAgICAgICAgICByZXN1bHQgKz0gby5iOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgNTQ6CisgICAgICAgICAgICByZXN1bHQgKz0gby5jOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTU6CisgICAgICAgICAgICByZXN1bHQgKz0gby5k
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTY6CisgICAgICAgICAgICByZXN1
bHQgKz0gby5lOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTc6CisgICAgICAg
ICAgICByZXN1bHQgKz0gby5mOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTg6
CisgICAgICAgICAgICByZXN1bHQgKz0gby5nOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgNTk6CisgICAgICAgICAgICByZXN1bHQgKz0gby5oOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgNjA6CisgICAgICAgICAgICByZXN1bHQgKz0gby5pOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgNjE6CisgICAgICAgICAgICByZXN1bHQgKz0gby5qOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNjI6CisgICAgICAgICAgICByZXN1bHQg
Kz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICByZXN1bHQgKz0gby56OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KKworKGZ1bmN0aW9uKCkgeworICAgIHZhciBvID0ge2E6MSwg
YjoyLCBjOjMsIGQ6NCwgZTo1LCBmOjYsIGc6NywgaDo4LCBpOjksIGo6MTAsIGs6MTEsIHo6MTAw
fTsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyAr
K2kpCisgICAgICAgIHJlc3VsdCArPSBmb28obyk7CisgICAgaWYgKHJlc3VsdCAhPSA3OTY2MDAw
MCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfSkoKTsK
Kwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280834</attachid>
            <date>2016-06-08 13:37:43 -0700</date>
            <delta_ts>2016-06-12 20:42:28 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>70834</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAxODI3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2NiBA
QAorMjAxNi0wNS0yOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IEltcGxlbWVudCB0YWJsZS1iYXNlZCBzd2l0Y2hlcyBpbiBCMy9BaXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTE0MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgSWYgYSBzd2l0Y2ggc3Rh
dGVtZW50IGdldHMgbGFyZ2UsIGl0J3MgYmV0dGVyIHRvIGV4cHJlc3MgaXQgYXMgYW4gaW5kaXJl
Y3QganVtcCByYXRoZXIgdGhhbgorICAgICAgICB1c2luZyBhIGJpbmFyeSBzd2l0Y2ggKGRpdmlk
ZS1hbmQtY29ucXVlciB0cmVlIG9mIGNvbXBhcmlzb25zIGxlYWRpbmcgdG8gTyhsb2cgbikgYnJh
bmNoZXMgdG8KKyAgICAgICAgZ2V0IHRvIHRoZSBzd2l0Y2ggY2FzZSkuIFdoZW4gZGVhbGluZyB3
aXRoIGludGVnZXIgc3dpdGNoZXMsIEZUTCB3aWxsIGFscmVhZHkgdXNlIHRoZSBCMworICAgICAg
ICBTd2l0Y2ggYW5kIGV4cGVjdCB0aGlzIHRvIGdldCBsb3dlcmVkIGFzIGVmZmljaWVudGx5IGFz
IHBvc3NpYmxlOyBpdCdzIGEgYnVnIHRoYXQgQjMgd2lsbAorICAgICAgICBhbHdheXMgdXNlIGEg
YmluYXJ5IHN3aXRjaCByYXRoZXIgdGhhbiBpbmRpcmVjdCBqdW1wcy4gV2hlbiBkZWFsaW5nIHdp
dGggc3dpdGNoZXMgb3ZlciBzb21lCisgICAgICAgIG1vcmUgc29waGlzdGljYXRlZCB0eXBlcywg
d2UnZCB3YW50IEZUTCB0byBidWlsZCBhbiBpbmRpcmVjdCBqdW1wIHRhYmxlIGl0c2VsZiBhbmQg
dXNlCisgICAgICAgIHNvbWV0aGluZyBsaWtlIGEgaGFzaHRhYmxlIHRvIGZlZWQgaXQuIEluIHRo
YXQgY2FzZSwgdGhlcmUgd2lsbCBiZSBubyBCMyBTd2l0Y2g7IHdlJ2xsIHdhbnQKKyAgICAgICAg
c29tZSBraW5kIG9mIGluZGlyZWN0IGp1bXAgaW5zdHJ1Y3Rpb24uCisgICAgICAgIAorICAgICAg
ICBUaGlzIGltcGxpZXMgdGhhdCB3ZSB3YW50IEIzIHRvIGhhdmUgdGhlIGFiaWxpdHkgdG8gbG93
ZXIgU3dpdGNoIHRvIGluZGlyZWN0IGp1bXBzIGFuZCB0bworICAgICAgICBleHBvc2UgdGhvc2Ug
aW5kaXJlY3QganVtcHMgaW4gSVIgc28gdGhhdCB0aGUgRlRMIGNvdWxkIGRvIGl0cyBvd24gaW5k
aXJlY3QganVtcHMgZm9yCisgICAgICAgIHN3aXRjaGVzIG92ZXIgbW9yZSBjb21wbGljYXRlZCB0
aGluZ3MgbGlrZSBzdHJpbmdzLiBUaGlzIGNoYW5nZSBpbnRyb2R1Y2VzIGFuIGluZGlyZWN0IGp1
bXAKKyAgICAgICAgaW5zdHJ1Y3Rpb24gdG8gQjMgYW5kIGNhbGxzIGl0IFBvbHlKdW1wLiBJdCBo
YXMgc29tZSB1bmlxdWUgc2VtYW50aWNzIHRoYXQgbWFrZSBpdCB2ZXJ5CisgICAgICAgIGRpZmZl
cmVudCBmcm9tICJpbmRpcmVjdCBqdW1wcyIsICJpbmRpcmVjdCBicmFuY2hlcyIsIGFuZCAiY29t
cHV0ZWQgZ290b3MiIC0gYWxsIHRlcm1zIG9mIGFydAorICAgICAgICB1c2VkIGluIG90aGVyIGNv
bXBpbGVycy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaW1wbGVtZW50cyB0aGUgbW9zdCBiYXNp
YyBraW5kIG9mIFN3aXRjaC10by1Qb2x5SnVtcCBsb3dlcmluZyBpbiBCMzo6bG93ZXJNYWNyb3Mo
KS4gQXMKKyAgICAgICAgcGFydCBvZiB0aGUgZXhpc3RpbmcgZGl2aWRlLWFuZC1jb25xdWVyIHRo
YXQgY3JlYXRlcyBicmFuY2hlcywgaWYgaXQgZGV0ZWN0cyB0aGF0IHRoZSBzZXQgb2YKKyAgICAg
ICAgY2FzZXMgc2F0aXNmaWVzIHNvbWUgY29uZGl0aW9ucyAoZGVuc2l0eSBvZiBjYXNlIHZhbHVl
cyBhbmQgdG90YWwgc2l6ZSksIHRoZW4gaXQgd2lsbCBlbWl0IGEKKyAgICAgICAgUG9seUp1bXAu
CisgICAgICAgIAorICAgICAgICBUaGUgcHJvYmxlbSB3aXRoIGNsYXNzaWMgaW5kaXJlY3QganVt
cHMgaXMgdGhhdCB0aGV5IGZvcmNlIHRoZSBjb21waWxlciB0byBiZSBjb25zZXJ2YXRpdmUKKyAg
ICAgICAgYWJvdXQgY29udHJvbCBmbG93LiBUaGUgY29tcGlsZXIgbXVzdCBhc3N1bWUgdGhhdCB0
aGUgaW5kaXJlY3QganVtcCBtYXkgdHJhbnNmZXIgY29udHJvbCBmbG93CisgICAgICAgIHRvIGFu
eSBlc2NhcGVkIGJsb2NrIChibG9jayBsYWJlbGVkIGFzIGJlaW5nIGEgcG9zc2libGUgdGFyZ2V0
IGZvciBpbmRpcmVjdCBqdW1wcywgb3IgaWYgbm8KKyAgICAgICAgc3VjaCBsYWJlbGluZyBpcyBh
dmFpbGFibGUsIHRoZSBjb21waWxlciBtdXN0IGFzc3VtZSB0aGF0IGl0IG1heSB0YXJnZXQgYW55
IGJsb2NrKS4gVGhlIHdvcnN0CisgICAgICAgIHBhcnQgaXMgdGhhdCB0aGUgaW1wbGljaXQgY29u
dHJvbCBmbG93IGVkZ2VzIGZyb20gdGhlIGluZGlyZWN0IGp1bXAgdG8gdGhlIGVzY2FwZWQgYmxv
Y2tzCisgICAgICAgIGNhbm5vdCBiZSBicm9rZW4uIFRoaXMgaW52YWxpZGF0ZXMgYSBwcmluY2lw
bGUgb2YgQjMgSVI6IGFueSBwaGFzZSBtYXkgYnJlYWsgYW55IGNyaXRpY2FsCisgICAgICAgIGVk
Z2UgZm9yIGFueSByZWFzb24uIE91ciBTU0EgY29udmVyc2lvbiB3b3VsZCBicmVhayBpZiB3ZSBy
ZXZva2VkIHRoaXMgZmVhdHVyZS4gSXQncyBhY3R1YWxseQorICAgICAgICBtdWNoIHdvcnNlIHRo
YW4gdGhpcyAtIGJhc2ljYWxseSBhbnkgbG9naWMgb3ZlciBjb250cm9sIGZsb3cgd291bGQgaGF2
ZSB0byBiZSBoYWNrZWQgdG8gZGVhbAorICAgICAgICB3aXRoIHRoZXNlIHVuYnJlYWthYmxlIGVk
Z2VzLiBUaGlzIHdvdWxkIG1lYW4gY2hhbmdpbmcgYWxsIENGRyB0cmFuc2Zvcm1hdGlvbiB1dGls
aXRpZXMgYW5kCisgICAgICAgIHBhc3Nlcy4gV2UgaGF2ZSBhIGxvdCBvZiB0aG9zZSBhbmQgd2Ug
d2FudCBpdCB0byBiZSBlYXN5IHRvIHdyaXRlIG5ldyBvbmVzLgorICAgICAgICAKKyAgICAgICAg
VGhpcyBpcyB3aHkgd2UgdXNlIHNvbWV0aGluZyBuZXcgYW5kIHF1aXRlIGRpZmZlcmVudCBmcm9t
IGNsYXNzaWMgaW5kaXJlY3QganVtcHMuIFBvbHlKdW1wCisgICAgICAgIG1ha2VzIHRoZSBjb250
cm9sIGZsb3cgZWRnZXMgZXhwbGljaXQuIFRoZSBjbGllbnQgbXVzdCBzdXBwbHkgdGhlIHN1Y2Nl
c3NvcnMgd2hlbiBpdCBjcmVhdGVzCisgICAgICAgIHRoZSBQb2x5SnVtcC4gVGhlIGNvbXBpbGVy
IG1heSByZXdpcmUgdGhvc2Ugc3VjY2Vzc29yIGVkZ2VzIHRoZSBzYW1lIHdheSB0aGF0IGl0IHdv
dWxkIHJld2lyZQorICAgICAgICBhbnkgY29udHJvbCBmbG93IGVkZ2VzLiBDb25zZXF1ZW50bHkg
dGhlIHZhc3QgbWFqb3JpdHkgb2YgQ0ZHIHJlYXNvbmluZyBpbiBCMyBpcyB1bmNoYW5nZWQuCisg
ICAgICAgIElmIHlvdSBkb24ndCB3YW50IHRvIHVuZGVyc3RhbmQgUG9seUp1bXAsIGp1c3QgdGhp
bmsgb2YgaXQgbGlrZSB5b3Ugd291bGQgYSBTd2l0Y2ggd2l0aCBhbgorICAgICAgICBvcGFxdWUg
aW5jb21pbmcgdmFsdWUuIFRoaXMgd29ya3MgYmVjYXVzZSB3ZSBkbyBub3QgYWRkIGFueSBub3Rp
b24gb2YgZXNjYXBlZCBiYXNpYyBibG9ja3MuCisgICAgICAgIEluc3RlYWQgb2YgbGV0dGluZyB0
aGUgY2xpZW50IGdldCB0aGUgcG9pbnRlcnMgdG8gYmFzaWMgYmxvY2tzIGJ5IGVzY2FwaW5nIHRo
ZW0gbGlrZSBpbiBMTFZNLAorICAgICAgICB5b3UgY2FuIG9ubHkgZ2V0IHRoZSBwb2ludGVycyBv
ZiB0aGUgc3VjY2Vzc29ycyBvZiBQb2x5SnVtcCBieSByZWdpc3RlcmluZyBhIGNhbGxiYWNrIHdp
dGgKKyAgICAgICAgUG9seUp1bXAuIFRoaXMgY2FsbGJhY2sgZG9lc24ndCBhY3R1YWxseSBnaXZl
IHlvdSB0aGUgYWRkcmVzc2VzIG9mIGJhc2ljIGJsb2Nrcy4gSXQganVzdAorICAgICAgICBnaXZl
cyB5b3UgdGhlIGFkZHJlc3NlcyB3aGVyZSB5b3UgbXVzdCBqdW1wIHRvIHRyYW5zZmVyIGNvbnRy
b2wgZmxvdyBmcm9tIHRoYXQgUG9seUp1bXAgdG8KKyAgICAgICAgaXRzIHN1Y2Nlc3NvcnMuIFRo
aXMgbWVhbnMgdGhhdCB0aGUgbWFnaWMgb2YgUG9seUp1bXAgaXMgY29uZmluZWQgb25seSB0byB0
aGUgUG9seUp1bXAgaXRzZWxmCisgICAgICAgIGFuZCBkb2Vzbid0IGluZmVjdCByZWFzb25pbmcg
YWJvdXQgdGhlIGJhc2ljIGJsb2NrcyB0aGF0IGl0IGp1bXBzIHRvLgorICAgICAgICAKKyAgICAg
ICAgVGhlIG9ubHkgZG93bnNpZGUgaXMgdGhhdCB0aGF0IFBvbHlKdW1wIGlzIG5vdCBjbG9uZWFi
bGUuIFlvdSBjYW4ndCBjbG9uZSBpdCBiZWNhdXNlIGlmIHlvdQorICAgICAgICBkaWQsIHRoZW4g
dGhlIHR3byByZXN1bHRpbmcgUG9seUp1bXBzIG1heSBoYXZlIHRoZWlyIHN1Y2Nlc3NvciBlZGdl
cyByZXdpcmVkIGluZGVwZW5kZW50bHkgb2YKKyAgICAgICAgZWFjaCBvdGhlci4gVGhpcyBjb3Vs
ZCBlYXNpbHkgaGFwcGVuIGlmIHdlIGJyZWFrIGNyaXRpY2FsIGVkZ2VzLiBJZiB0aGF0IGRpZCBo
YXBwZW4gdGhlbiBpdAorICAgICAgICB3b3VsZCBicmVhayB0aGUgY2xpZW50IG9mIFBvbHlKdW1w
OiB0aGV5IHdvdWxkIGhhdmUgYWxyZWFkeSBjcmVhdGVkIHNvbWV0aGluZyBsaWtlIGEganVtcAor
ICAgICAgICB0YWJsZSBhbmQgd2lsbCBiZSBwb3B1bGF0aW5nIGl0IHZpYSB0aGUgY2FsbGJhY2ss
IGJ1dCBub3cgdGhlIGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkIHR3aWNlLAorICAgICAgICBhbmQg
bWF5IHJldHVybiBkaWZmZXJlbnQganVtcCBkZXN0aW5hdGlvbnMgZWFjaCB0aW1lLiBTbywgdGhp
cyBwYXRjaCBpbnRyb2R1Y2VzCisgICAgICAgIFZhbHVlOjppc0Nsb25lYWJsZSgpIGFuZCB0ZWFj
aGVzIGJvdGggb2Ygb3VyIGNvZGUgc3BlY2lhbGl6YXRpb24gb3B0aW1pemF0aW9ucyAodGFpbAor
ICAgICAgICBkdXBsaWNhdGlvbiBhbmQgc2VsZWN0IHNwZWNpYWxpemF0aW9uKSB0byBiYWlsIGlm
IHRoZSBjb2RlIHRoZXkgd2FudCB0byBzcGVjaWFsaXplIGlzIG5vdAorICAgICAgICBjbG9uZWFi
bGUuIFRoaXMgaXMgdG90YWxseSBiZW5pZ24gbW9zdCBvZiB0aGUgdGltZSwgc2luY2UgdGhvc2Ug
b3B0aW1pemF0aW9ucyB1c3VhbGx5IHJ1bgorICAgICAgICBiZWZvcmUgU3dpdGNoIGxvd2VyaW5n
LiBDbGllbnRzIHRoYXQgdXNlIFBvbHlKdW1wIGRpcmVjdGx5IGhhdmUgdG8gYXBwcmVjaWF0ZSB0
aGUgdHJhZGUtb2ZmOgorICAgICAgICBQb2x5SnVtcCBtYXkgZ2FpbiB0aGVtIHNvbWUgcGVyZm9y
bWFuY2UgYnV0IHRoZXkgYXJlIG9wdGluZyBvdXQgb2Ygb3B0aW1pemF0aW9ucyB0aGF0IHVzZQor
ICAgICAgICBjbG9uaW5nLiBBIGNsb3NlIGNvcm9sbGFyeSBvZiB0aGUgbm8tY2xvbmUgcnVsZSBp
cyB0aGF0IHRoZSBjbGllbnQgY2Fubm90IGNyZWF0ZSBtdWx0aXBsZQorICAgICAgICBQb2x5SnVt
cHMgdGhhdCBhcmUgZmVkIGJ5IGEgY29tbW9uIGp1bXAgdGFibGU6IHRoZSBmYWN0IHRoYXQgZWFj
aCBQb2x5SnVtcCBoYXMgYSBjYWxsYmFjaworICAgICAgICB0aGF0IGp1c3QgdGVsbHMgeW91IHRo
ZSBqdW1wIGRlc3RpbmF0aW9ucyBmb3IgaXRzIHN1Y2Nlc3NvciAqZWRnZXMqLCBub3Qgc3VjY2Vz
c29yICpibG9ja3MqLAorICAgICAgICBtZWFucyB0aGF0IGlmIHlvdSBjcmVhdGUgdHdvIFBvbHlK
dW1wcyBhbmQgZ2l2ZSB0aGVtIHRoZSBzYW1lIHN1Y2Nlc3NvciBsaXN0LCB5b3UgYXJlIG5vdAor
ICAgICAgICBndWFyYW50ZWVkIHRoYXQgdGhleSB3aWxsIGdldCB0aGUgc2FtZSBqdW1wIGRlc3Rp
bmF0aW9ucy4gVGhpcyBodXJ0cyBpZiB5b3Ugd2FudCB0byB1c2UKKyAgICAgICAgUG9seUp1bXAg
Zm9yIHRocmVhZGVkIGludGVycHJldGVycyBidXQgaXQncyBoYXJtbGVzcyBmb3Igc3dpdGNoIGxv
d2VyaW5nLiBUaGUgZ29hbCBvZgorICAgICAgICBQb2x5SnVtcCBpcyB0byBiZSBhd2Vzb21lIGZv
ciBzd2l0Y2ggbG93ZXJpbmcgd2hpbGUgbm90IGJyZWFraW5nIHRoZSByZXN0IG9mIHRoZSBjb21w
aWxlciwgc28KKyAgICAgICAgdGhpcyBpcyBwcm9iYWJseSBmaW5lLgorICAgICAgICAKKyAgICAg
ICAgVGhlIGlzQ2xvbmVhYmxlKCkgbWV0aG9kIGN1cnJlbnRseSBvbmx5IHJldHVybnMgdHJ1ZSBm
b3IgUG9seUp1bXAsIGJ1dCBJIGFudGljaXBhdGUgd2Ugd2lsbAorICAgICAgICBhZGQgb3RoZXIg
bm9uLWNsb25lYWJsZSB0aGluZ3MgbGF0ZXIuIEkgdGhpbmsgaXMgaXMgaW5oZXJlbnQgaW4gYSBj
b21waWxlciB0aGF0IGFsbG93cyBzdWNoCisgICAgICAgIGN1c3RvbWl6ZWFiaWxpdHkgZm9yIGl0
cyBjbGllbnRzLiBGb3IgZXhhbXBsZSwgd2UgbWF5IHdhbnQgdG8gYWRkIGEgZmxhZyB0byBQYXRj
aHBvaW50IHRoYXQKKyAgICAgICAgbWFrZXMgaXQgbm9uLWNsb25lYWJsZS4gU29tZXRpbWVzIHdl
IGhhdmUgdG8ganVtcCB0aHJvdWdoIGhvb3BzIGluIHRoZSBGVEwgYmVjYXVzZSBvZiB0aGUKKyAg
ICAgICAgY2xvbmVhYmlsaXR5IG9mIHBhdGNocG9pbnRzLiBUaGlzIGhhcHBlbnMgaW4gT1NSIGV4
aXRzLCB3aGljaCBwYXkgYSBzaWduaWZpY2FudCBtZW1vcnkgY29zdAorICAgICAgICBmb3IgYWRk
aXRpb25hbCBkYXRhIHN0cnVjdHVyZXMgdGhhdCBhcmUgdGhlcmUgaW4gY2FzZSBhbiBleGl0IGdl
dHMgY2xvbmVkLiBJdCBtYXkgYmUgbW9yZQorICAgICAgICBwcm9maXRhYmxlIHRvIGp1c3Qgc2F5
IHRoYXQgT1NSIGV4aXRzIChpLmUuIENoZWNrcyBhbmQgSW52YWxpZGF0aW9uUG9pbnQgUGF0Y2hw
b2ludHMpIGFyZSBub3QKKyAgICAgICAgY2xvbmVhYmxlLiBTdXJlbHkgdGhpcyB3b3VsZCByZWR1
Y2UgdGFpbCBkdXBsaWNhdGlvbiwgYnV0IHRhaWwgZHVwbGljYXRpb24gaXMgbW9zdCBwcm9maXRh
YmxlCisgICAgICAgIHdoZW4gaXQgY2xvbmVzIG9ubHkgYSB0aW55IGFtb3VudCBvZiBjb2RlOyBp
ZiB0aGVyZSdzIGFuIGV4aXQgdGhlbiB3ZSdyZSBub3QgdGFsa2luZyBhYm91dCBhCisgICAgICAg
IHRpbnkgYW1vdW50IG9mIGNvZGUgYW55bW9yZS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaXMg
YSB+MzAlIHNwZWVkLXVwIG9uIG1pY3JvYmVuY2htYXJrcyB0aGF0IGhhdmUgYmlnIHN3aXRjaCBz
dGF0ZW1lbnRzICh+NjAgY2FzZXMpLiBJdCdzCisgICAgICAgIG5vdCBhIHNwZWVkLXVwIG9uIG1h
aW5zdHJlYW0gYmVuY2htYXJrcy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgYWxzbyBhZGRzIGEg
bmV3IHRlc3QgdG8gdGVzdGIzIGZvciBQb2x5SnVtcCwgR2V0LCBhbmQgU2V0LiBUaGUgRlRMIGRv
ZXMgbm90IGN1cnJlbnRseQorICAgICAgICB1c2UgUG9seUp1bXAgZGlyZWN0bHksIGJ1dCB3ZSB3
YW50IHRoaXMgdG8gYmUgcG9zc2libGUuIEl0IGFsc28gZG9lc24ndCB1c2UgR2V0L1NldCBkaXJl
Y3RseQorICAgICAgICBldmVuIHRob3VnaCB3ZSB3YW50IHRoaXMgdG8gYmUgcG9zc2libGUuIEl0
J3MgaW1wb3J0YW50IHRvIHRlc3QgdGhlc2Ugc2luY2Ugb3Bjb2RlcyB0aGF0CisgICAgICAgIHJl
c3VsdCBmcm9tIGxvd2VyaW5nIGRvbid0IGFmZmVjdCBlYXJseSBwaGFzZXMsIHNvIHdlIGNvdWxk
IGhhdmUgcmVncmVzc2lvbnMgaW4gZWFybHkgcGhhc2VzCisgICAgICAgIHJlbGF0ZWQgdG8gdGhl
c2Ugb3Bjb2RlcyB0aGF0IHdvdWxkbid0IGJlIGNhdWdodCBieSBhbnkgSlMgdGVzdC4gU28sIHRo
aXMgYWRkcyBhIHZlcnkgYmFzaWMKKyAgICAgICAgdGhyZWFkZWQgaW50ZXJwcmV0ZXIgdG8gdGVz
dGIzIGZvciBhIEJyYWluZnVjay1zdHlsZSBsYW5ndWFnZSwgYW5kIHRlc3RzIGl0IGJ5IGhhdmlu
ZyBpdCBydW4KKyAgICAgICAgYSBwcm9ncmFtIHRoYXQgcHJpbnRzIHRoZSBudW1iZXJzIDEuLjEw
MCBpbiBhIGxvb3AuIFVubGlrZSBhIHJlYWwgdGhyZWFkZWQgaW50ZXJwcmV0ZXIsIGl0CisgICAg
ICAgIHVzZXMgYSBjb21tb24gZGlzcGF0Y2ggYmxvY2sgcmF0aGVyIHRoYW4gaGF2aW5nIGRpc3Bh
dGNoIGF0IHRoZSB0ZXJtaW51cyBvZiBlYWNoIG9wY29kZS4KKyAgICAgICAgVGhhdCdzIG5lY2Vz
c2FyeSBiZWNhdXNlIFBvbHlKdW1wIGlzIG5vdCBjbG9uZWFibGUuIFRoZSBzdGF0ZSBvZiB0aGUg
aW50ZXJwcmV0ZXIgaXMKKyAgICAgICAgcmVwcmVzZW50ZWQgdXNpbmcgVmFyaWFibGVzIHRoYXQg
d2UgR2V0IGFuZCBTZXQsIHNvIGl0IHRlc3RzIEdldC9TZXQgYXMgd2VsbC4KKworICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9u
Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpqdW1wKToKKyAgICAg
ICAgKiBhc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxl
cjo6am1wX20pOgorICAgICAgICAqIGIzL0IzQmFzaWNCbG9jay5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpCYXNpY0Jsb2NrOjp1cGRhdGVQcmVkZWNlc3NvcnNBZnRlcik6CisgICAgICAgIChKU0M6
OkIzOjpCYXNpY0Jsb2NrOjppc0Nsb25lYWJsZSk6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Js
b2NrOjpkdW1wKToKKyAgICAgICAgKiBiMy9CM0Jhc2ljQmxvY2suaDoKKyAgICAgICAgKEpTQzo6
QjM6OkJhc2ljQmxvY2s6OmZyZXF1ZW5jeSk6CisgICAgICAgICogYjMvQjNDb21tb24uaDoKKyAg
ICAgICAgKEpTQzo6QjM6OmlzNjRCaXQpOgorICAgICAgICAqIGIzL0IzQ29udHJvbFZhbHVlLmg6
CisgICAgICAgICogYjMvQjNEYXRhU2VjdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkIzOjpEYXRh
U2VjdGlvbjo6RGF0YVNlY3Rpb24pOgorICAgICAgICAqIGIzL0IzRHVwbGljYXRlVGFpbHMuY3Bw
OgorICAgICAgICAqIGIzL0IzTG93ZXJNYWNyb3MuY3BwOgorICAgICAgICAqIGIzL0IzTG93ZXJU
b0Fpci5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okxvd2VyVG9BaXI6Omxvd2VyKToKKyAg
ICAgICAgKiBiMy9CM09wY29kZS5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgor
ICAgICAgICAqIGIzL0IzT3Bjb2RlLmg6CisgICAgICAgICogYjMvQjNQb2x5SnVtcFZhbHVlLmNw
cDogQWRkZWQuCisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjp+UG9seUp1bXBWYWx1
ZSk6CisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjphcHBlbmRTdWNjZXNzb3IpOgor
ICAgICAgICAoSlNDOjpCMzo6UG9seUp1bXBWYWx1ZTo6c2V0Q2FsbGJhY2tUYXNrKToKKyAgICAg
ICAgKEpTQzo6QjM6OlBvbHlKdW1wVmFsdWU6OmlzQ2xvbmVhYmxlKToKKyAgICAgICAgKEpTQzo6
QjM6OlBvbHlKdW1wVmFsdWU6OmR1bXBNZXRhKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1w
VmFsdWU6OmNsb25lSW1wbCk6CisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjpQb2x5
SnVtcFZhbHVlKToKKyAgICAgICAgKiBiMy9CM1BvbHlKdW1wVmFsdWUuaDogQWRkZWQuCisgICAg
ICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjphY2NlcHRzKToKKyAgICAgICAgKEpTQzo6QjM6
OlBvbHlKdW1wVmFsdWU6OnNldENhbGxiYWNrKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1w
VmFsdWU6OmNhbGxiYWNrVGFzayk6CisgICAgICAgICogYjMvQjNQcm9jZWR1cmUuY3BwOgorICAg
ICAgICAoSlNDOjpCMzo6UHJvY2VkdXJlOjpjbG9uZSk6CisgICAgICAgICogYjMvQjNQcm9jZWR1
cmUuaDoKKyAgICAgICAgKEpTQzo6QjM6OlByb2NlZHVyZTo6bGFzdFBoYXNlTmFtZSk6CisgICAg
ICAgIChKU0M6OkIzOjpQcm9jZWR1cmU6OmJ5cHJvZHVjdHMpOgorICAgICAgICAqIGIzL0IzUmVk
dWNlU3RyZW5ndGguY3BwOgorICAgICAgICAqIGIzL0IzVmFsaWRhdGUuY3BwOgorICAgICAgICAq
IGIzL0IzVmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6OmVmZmVjdHMpOgorICAg
ICAgICAoSlNDOjpCMzo6VmFsdWU6OmlzQ2xvbmVhYmxlKToKKyAgICAgICAgKEpTQzo6QjM6OlZh
bHVlOjprZXkpOgorICAgICAgICAqIGIzL0IzVmFsdWUuaDoKKyAgICAgICAgKiBiMy9haXIvQWly
Q29kZS5oOgorICAgICAgICAqIGIzL2Fpci9BaXJHZW5lcmF0ZS5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpBaXI6OmdlbmVyYXRlKToKKyAgICAgICAgKiBiMy9haXIvQWlySW5zdC5jcHA6CisgICAg
ICAgIChKU0M6OkIzOjpBaXI6Okluc3Q6Omhhc0FyZ0VmZmVjdHMpOgorICAgICAgICAoSlNDOjpC
Mzo6QWlyOjpJbnN0Ojppc0Nsb25lYWJsZSk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okluc3Q6
OmR1bXApOgorICAgICAgICAqIGIzL2Fpci9BaXJJbnN0Lmg6CisgICAgICAgICogYjMvYWlyL0Fp
ck9wY29kZS5vcGNvZGVzOgorICAgICAgICAqIGIzL3Rlc3RiMy5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpzaG91bGRCZVZlcmJvc2UpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN3aXRjaENoaWxs
RGl2KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RMYXRlUmVnaXN0ZXIpOgorICAgICAgICAoSlND
OjpCMzo6dGhyZWFkZWRJbnRlcnByZXRlclByaW50KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RU
aHJlYWRlZEludGVycHJldGVyKToKKyAgICAgICAgKEpTQzo6QjM6Onplcm8pOgorICAgICAgICAo
SlNDOjpCMzo6cnVuKToKKwogMjAxNi0wNi0wOCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVy
QGFwcGxlLmNvbT4KIAogICAgICAgICBXZSBzaG91bGQgYmUgYWJsZSB0byBsb29rdXAgc3ltYm9s
cyBieSBpZGVudGlmaWVyIGluIGJ1aWx0aW5zCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Q01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtl
TGlzdHMudHh0CShyZXZpc2lvbiAyMDE4MjcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01h
a2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE0NCw2ICsxNDQsNyBAQCBzZXQoSmF2YVNj
cmlwdENvcmVfU09VUkNFUwogICAgIGIzL0IzUGF0Y2hwb2ludFZhbHVlLmNwcAogICAgIGIzL0Iz
UGhhc2VTY29wZS5jcHAKICAgICBiMy9CM1BoaUNoaWxkcmVuLmNwcAorICAgIGIzL0IzUG9seUp1
bXBWYWx1ZS5jcHAKICAgICBiMy9CM1Byb2NlZHVyZS5jcHAKICAgICBiMy9CM1B1cmVDU0UuY3Bw
CiAgICAgYjMvQjNSZWR1Y2VEb3VibGVUb0Zsb2F0LmNwcApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHJldmlzaW9uIDIwMTgyNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBA
IC0xOTgzLDYgKzE5ODMsOCBAQAogCQlEQzE3RTgxQTFDOUM5MUU5MDA4QTZBQjMgLyogQ0NhbGxI
ZWxwZXJzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IERDMTdFODE2MUM5QzgwMkIwMDhBNkFCMyAvKiBDQ2FsbEhlbHBlcnMuY3BwICovOyB9OwogCQlE
QzIxNDMwNzFDQTMyRTU1MDAwQTg4NjkgLyogSUNTdGF0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREMyMTQzMDYxQ0EzMkU1MjAwMEE4ODY5IC8qIElD
U3RhdHMuaCAqLzsgfTsKIAkJREMyMTQzMDgxQ0EzMkU1ODAwMEE4ODY5IC8qIElDU3RhdHMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREMyMTQzMDUx
Q0EzMkU1MjAwMEE4ODY5IC8qIElDU3RhdHMuY3BwICovOyB9OworCQlEQzQ1NEI4ODFDRkY2RkU3
MDA0QzE4QUYgLyogQjNQb2x5SnVtcFZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDNDU0Qjg2MUNGRjZGRTUwMDRDMThBRiAvKiBCM1BvbHlK
dW1wVmFsdWUuY3BwICovOyB9OworCQlEQzQ1NEI4OTFDRkY2RkVBMDA0QzE4QUYgLyogQjNQb2x5
SnVtcFZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBEQzQ1NEI4NzFDRkY2RkU1MDA0QzE4QUYgLyogQjNQb2x5SnVtcFZhbHVlLmggKi87IH07CiAJ
CURDNDU0QjhDMUQwMEU4MjIwMDRDMThBRiAvKiBBaXJEdW1wQXNKUy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzQ1NEI4QTFEMDBFODFGMDA0QzE4
QUYgLyogQWlyRHVtcEFzSlMuY3BwICovOyB9OwogCQlEQzQ1NEI4RDFEMDBFODI0MDA0QzE4QUYg
LyogQWlyRHVtcEFzSlMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IERDNDU0QjhCMUQwMEU4MUYwMDRDMThBRiAvKiBBaXJEdW1wQXNKUy5oICovOyB9Owog
CQlEQzYwNUI1RDFDRTI2RUEwMDA1OTM3MTggLyogUHJvZmlsZXJFdmVudC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzYwNUI1OTFDRTI2RTk4MDA1
OTM3MTggLyogUHJvZmlsZXJFdmVudC5jcHAgKi87IH07CkBAIC00MTk5LDYgKzQyMDEsOCBAQAog
CQlEQzE3RTgxNjFDOUM4MDJCMDA4QTZBQjMgLyogQ0NhbGxIZWxwZXJzLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENDYWxsSGVscGVycy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCURDMjE0MzA1MUNBMzJFNTIwMDBBODg2OSAvKiBJQ1N0YXRzLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElDU3RhdHMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzIxNDMwNjFDQTMyRTUyMDAwQTg4NjkgLyogSUNT
dGF0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJQ1N0YXRzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCURDNDU0Qjg2MUNGRjZGRTUwMDRDMThBRiAvKiBCM1Bv
bHlKdW1wVmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQjNQ
b2x5SnVtcFZhbHVlLmNwcDsgcGF0aCA9IGIzL0IzUG9seUp1bXBWYWx1ZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCURDNDU0Qjg3MUNGRjZGRTUwMDRDMThBRiAvKiBCM1BvbHlK
dW1wVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQjNQb2x5SnVtcFZh
bHVlLmg7IHBhdGggPSBiMy9CM1BvbHlKdW1wVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJREM0NTRCOEExRDAwRTgxRjAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEFpckR1bXBBc0pTLmNwcDsgcGF0aCA9
IGIzL2Fpci9BaXJEdW1wQXNKUy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURD
NDU0QjhCMUQwMEU4MUYwMDRDMThBRiAvKiBBaXJEdW1wQXNKUy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBBaXJEdW1wQXNKUy5oOyBwYXRoID0gYjMvYWlyL0FpckR1bXBBc0pT
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDNjA1QjU5MUNFMjZFOTgwMDU5Mzcx
OCAvKiBQcm9maWxlckV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IFByb2ZpbGVyRXZlbnQuY3BwOyBwYXRoID0gcHJvZmlsZXIvUHJvZmlsZXJFdmVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00NzUyLDYgKzQ3NTYsOCBAQAogCQkJCTBG
RUM4NEUwMUJEQUNEQUMwMDgwRkY3NCAvKiBCM1BoYXNlU2NvcGUuaCAqLywKIAkJCQkwRjM3MzA4
QTFDMEJEMjkxMDAwNTJCRkEgLyogQjNQaGlDaGlsZHJlbi5jcHAgKi8sCiAJCQkJMEYzNzMwOEIx
QzBCRDI5MTAwMDUyQkZBIC8qIEIzUGhpQ2hpbGRyZW4uaCAqLywKKwkJCQlEQzQ1NEI4NjFDRkY2
RkU1MDA0QzE4QUYgLyogQjNQb2x5SnVtcFZhbHVlLmNwcCAqLywKKwkJCQlEQzQ1NEI4NzFDRkY2
RkU1MDA0QzE4QUYgLyogQjNQb2x5SnVtcFZhbHVlLmggKi8sCiAJCQkJMEZFQzg0RTExQkRBQ0RB
QzAwODBGRjc0IC8qIEIzUHJvY2VkdXJlLmNwcCAqLywKIAkJCQkwRkVDODRFMjFCREFDREFDMDA4
MEZGNzQgLyogQjNQcm9jZWR1cmUuaCAqLywKIAkJCQkwRkVDODRFMzFCREFDREFDMDA4MEZGNzQg
LyogQjNQcm9jZWR1cmVJbmxpbmVzLmggKi8sCkBAIC03MTI4LDYgKzcxMzQsNyBAQAogCQkJCTBG
OEY5NDQxMTY2NzYzMzIwMEQ2MTk3MSAvKiBDb2RlQmxvY2tIYXNoLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkM5N0YzNDE4MjAyMEQ3MDAyQzlCMjYgLyogQ29kZUJsb2NrSmV0dGlzb25pbmdXYXRj
aHBvaW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkQ4QTMxNDE3RDQzMjZDMDBDQTJDNDAgLyog
Q29kZUJsb2NrU2V0LmggaW4gSGVhZGVycyAqLywKKwkJCQlEQzQ1NEI4OTFDRkY2RkVBMDA0QzE4
QUYgLyogQjNQb2x5SnVtcFZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjk2RUJCMzE2Njc2
RUY2MDA4QkFERTMgLyogQ29kZUJsb2NrV2l0aEpJVFR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE3N0YxODIyMTY0MDg4QjIwMDY0MEE0NyAvKiBDb2RlQ2FjaGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTk5Q0MwQjYzMThCRTk5NTAwMDZDRUJDQyAvKiBDb2RlR2VuZXJhdG9yUmVwbGF5SW5wdXRz
LnB5IGluIEhlYWRlcnMgKi8sCkBAIC05NDA1LDYgKzk0MTIsNyBAQAogCQkJCTcwOUZCODZCMUFF
MzM1QzYwMDM5RDA2OSAvKiBXZWFrU2V0UHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTJBNEVDOTBCMTg2MEQ2QzIwMDk0Rjc4MiAvKiBXcml0ZUJhcnJpZXJCdWZmZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMEZDODE1MEIxNDA0M0MwRTAwQ0ZBNjAzIC8qIFdyaXRlQmFycmllclN1
cHBvcnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJREM0NTRCODgxQ0ZGNkZFNzAwNEMxOEFGIC8q
IEIzUG9seUp1bXBWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBN0U1QUIzQTE3OTlFNEIy
MDBEMjgzM0QgLyogWDg2RGlzYXNzZW1ibGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMkJC
RDk3MUM1RkYzRjUwMDIzRUYyMyAvKiBCM1ZhcmlhYmxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTg2M0M2RDlDMTUyMTExMUEwMDU4NUU0RSAvKiBZYXJyQ2Fub25pY2FsaXplVUNTMi5jcHAgaW4g
U291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJYODZDb21tb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgJKHJldmlzaW9uIDIwMTgyNykKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24u
aAkod29ya2luZyBjb3B5KQpAQCAtMjI2Miw2ICsyMjYyLDEyIEBAIHB1YmxpYzoKICAgICAgICAg
bV9hc3NlbWJsZXIuam1wX20oYWRkcmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFzZSk7CiAgICAgfQog
CisgICAgLy8gQWRkcmVzcyBpcyBhIG1lbW9yeSBsb2NhdGlvbiBjb250YWluaW5nIHRoZSBhZGRy
ZXNzIHRvIGp1bXAgdG8KKyAgICB2b2lkIGp1bXAoQmFzZUluZGV4IGFkZHJlc3MpCisgICAgewor
ICAgICAgICBtX2Fzc2VtYmxlci5qbXBfbShhZGRyZXNzLm9mZnNldCwgYWRkcmVzcy5iYXNlLCBh
ZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKKyAgICB9CisKIAogICAgIC8vIEFyaXRobWV0
aWMgY29udHJvbCBmbG93IG9wZXJhdGlvbnM6CiAgICAgLy8KSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaAkocmV2aXNpb24gMjAxODI3KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTk4Myw2ICsxOTgzLDExIEBAIHB1YmxpYzoKICAgICAgICAgbV9mb3JtYXR0
ZXIub25lQnl0ZU9wKE9QX0dST1VQNV9FdiwgR1JPVVA1X09QX0pNUE4sIGJhc2UsIG9mZnNldCk7
CiAgICAgfQogICAgIAorICAgIHZvaWQgam1wX20oaW50IG9mZnNldCwgUmVnaXN0ZXJJRCBiYXNl
LCBSZWdpc3RlcklEIGluZGV4LCBpbnQgc2NhbGUpCisgICAgeworICAgICAgICBtX2Zvcm1hdHRl
ci5vbmVCeXRlT3AoT1BfR1JPVVA1X0V2LCBHUk9VUDVfT1BfSk1QTiwgYmFzZSwgaW5kZXgsIHNj
YWxlLCBvZmZzZXQpOworICAgIH0KKyAgICAKICNpZiAhQ1BVKFg4Nl82NCkKICAgICB2b2lkIGpt
cF9tKGNvbnN0IHZvaWQqIGFkZHJlc3MpCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzQmFzaWNCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzQmFzaWNCbG9jay5jcHAJKHJldmlzaW9uIDIwMTgyNykKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDksNiAr
MTA5LDE1IEBAIHZvaWQgQmFzaWNCbG9jazo6dXBkYXRlUHJlZGVjZXNzb3JzQWZ0ZXIKICAgICBC
Mzo6dXBkYXRlUHJlZGVjZXNzb3JzQWZ0ZXIodGhpcyk7CiB9CiAKK2Jvb2wgQmFzaWNCbG9jazo6
aXNDbG9uZWFibGUoKSBjb25zdAoreworICAgIGZvciAoVmFsdWUqIHZhbHVlIDogKnRoaXMpIHsK
KyAgICAgICAgaWYgKCF2YWx1ZS0+aXNDbG9uZWFibGUoKSkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQgQmFzaWNCbG9jazo6ZHVt
cChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogewogICAgIG91dC5wcmludChkdW1wUHJlZml4LCBt
X2luZGV4KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2suaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmgJKHJl
dmlzaW9uIDIwMTgyNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2su
aAkod29ya2luZyBjb3B5KQpAQCAtMTE1LDYgKzExNSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHVw
ZGF0ZVByZWRlY2Vzc29yc0FmdGVyKCk7CiAKICAgICBkb3VibGUgZnJlcXVlbmN5KCkgY29uc3Qg
eyByZXR1cm4gbV9mcmVxdWVuY3k7IH0KKyAgICAKKyAgICBib29sIGlzQ2xvbmVhYmxlKCkgY29u
c3Q7CiAKICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKICAgICB2b2lkIGRlZXBE
dW1wKGNvbnN0IFByb2NlZHVyZSYsIFByaW50U3RyZWFtJikgY29uc3Q7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNDb21tb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNDb21tb24uaAkocmV2aXNpb24gMjAxODI3KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzQ29tbW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsNiArMjgsOCBAQAogCiAj
aWYgRU5BQkxFKEIzX0pJVCkKIAorI2luY2x1ZGUgIkpTRXhwb3J0TWFjcm9zLmgiCisKIG5hbWVz
cGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCiBpbmxpbmUgYm9vbCBpczY0Qml0KCkgeyByZXR1
cm4gc2l6ZW9mKHZvaWQqKSA9PSA4OyB9CkBAIC0zOCw3ICs0MCw3IEBAIGVudW0gQjNDb21wbGl0
YXRpb25Nb2RlIHsKICAgICBBaXJNb2RlCiB9OwogCi1ib29sIHNob3VsZER1bXBJUihCM0NvbXBs
aXRhdGlvbk1vZGUpOworSlNfRVhQT1JUX1BSSVZBVEUgYm9vbCBzaG91bGREdW1wSVIoQjNDb21w
bGl0YXRpb25Nb2RlKTsKIGJvb2wgc2hvdWxkRHVtcElSQXRFYWNoUGhhc2UoQjNDb21wbGl0YXRp
b25Nb2RlKTsKIGJvb2wgc2hvdWxkVmFsaWRhdGVJUigpOwogYm9vbCBzaG91bGRWYWxpZGF0ZUlS
QXRFYWNoUGhhc2UoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnRyb2xW
YWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnRyb2xW
YWx1ZS5oCShyZXZpc2lvbiAyMDE4MjcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjND
b250cm9sVmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsOSArNDYsMTAgQEAgcHVibGljOgog
ICAgICAgICBjYXNlIFJldHVybjoKICAgICAgICAgY2FzZSBPb3BzOgogICAgICAgICAgICAgcmV0
dXJuIHRydWU7Ci0gICAgICAgIGNhc2UgU3dpdGNoOiAKLSAgICAgICAgICAgIC8vIFRoaXMgaXMg
aGVyZSBiZWNhdXNlIFN3aXRjaFZhbHVlIGlzIGEgc3ViY2xhc3Mgb2YgQ29udHJvbFZhbHVlLCBz
byB3ZSB3YW50Ci0gICAgICAgICAgICAvLyBzd2l0Y2hWYWx1ZS0+YXM8Q29udHJvbFZhbHVlPigp
IHRvIHJldHVybiBub24tbnVsbC4KKyAgICAgICAgY2FzZSBTd2l0Y2g6CisgICAgICAgIGNhc2Ug
UG9seUp1bXA6CisgICAgICAgICAgICAvLyBUaGlzIGlzIGhlcmUgYmVjYXVzZSBTd2l0Y2hWYWx1
ZSBhbmQgUG9seUp1bXBWYWx1ZSBhcmUgc3ViY2xhc3NlcyBvZiBDb250cm9sVmFsdWUsCisgICAg
ICAgICAgICAvLyBzbyB3ZSB3YW50IHRoaW5ncyBsaWtlIHN3aXRjaFZhbHVlLT5hczxDb250cm9s
VmFsdWU+KCkgdG8gcmV0dXJuIG5vbi1udWxsLgogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC03Nyw3ICs3OCw3
IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBib29sIHJlcGxhY2VTdWNjZXNzb3IoQmFzaWNCbG9j
ayogZnJvbSwgQmFzaWNCbG9jayogdG8pOwotCisgICAgCiAgICAgY29uc3QgRnJlcXVlbnRlZEJs
b2NrJiB0YWtlbigpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQob3Bjb2RlKCkgPT0gSnVt
cCB8fCBvcGNvZGUoKSA9PSBCcmFuY2gpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzRGF0YVNlY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM0RhdGFTZWN0aW9uLmNwcAkocmV2aXNpb24gMjAxODI3KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzRGF0YVNlY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMxLDcgKzMxLDcgQEAK
IG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCiBEYXRhU2VjdGlvbjo6RGF0YVNlY3Rp
b24oc2l6ZV90IHNpemUpCi0gICAgOiBtX2RhdGEoZmFzdE1hbGxvYyhzaXplKSkKKyAgICA6IG1f
ZGF0YShmYXN0WmVyb2VkTWFsbG9jKHNpemUpKQogICAgICwgbV9zaXplKHNpemUpCiB7CiB9Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEdXBsaWNhdGVUYWlscy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRHVwbGljYXRlVGFpbHMuY3BwCShy
ZXZpc2lvbiAyMDE4MjcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEdXBsaWNhdGVU
YWlscy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcyLDkgKzcyLDExIEBAIHB1YmxpYzoKICAgICAg
ICAgSW5kZXhTZXQ8QmFzaWNCbG9jaz4gY2FuZGlkYXRlczsKIAogICAgICAgICBmb3IgKEJhc2lj
QmxvY2sqIGJsb2NrIDogbV9wcm9jKSB7Ci0gICAgICAgICAgICBpZiAoYmxvY2stPnNpemUoKSA+
IG1fbWF4U2l6ZSB8fCBibG9jay0+bnVtU3VjY2Vzc29ycygpID4gbV9tYXhTdWNjZXNzb3JzKQor
ICAgICAgICAgICAgaWYgKGJsb2NrLT5zaXplKCkgPiBtX21heFNpemUKKyAgICAgICAgICAgICAg
ICB8fCBibG9jay0+bnVtU3VjY2Vzc29ycygpID4gbV9tYXhTdWNjZXNzb3JzCisgICAgICAgICAg
ICAgICAgfHwgIWJsb2NrLT5pc0Nsb25lYWJsZSgpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwotCisgICAgICAgICAgICAKICAgICAgICAgICAgIGNhbmRpZGF0ZXMuYWRkKGJsb2NrKTsKICAg
ICAgICAgfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlck1hY3Jvcy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJNYWNyb3Mu
Y3BwCShyZXZpc2lvbiAyMDE4MjcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dl
ck1hY3Jvcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsNyArMzQsOSBAQAogI2luY2x1ZGUgIkIzQ29u
c3RQdHJWYWx1ZS5oIgogI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNJ
bnNlcnRpb25TZXRJbmxpbmVzLmgiCisjaW5jbHVkZSAiQjNNZW1vcnlWYWx1ZS5oIgogI2luY2x1
ZGUgIkIzUGhhc2VTY29wZS5oIgorI2luY2x1ZGUgIkIzUG9seUp1bXBWYWx1ZS5oIgogI2luY2x1
ZGUgIkIzUHJvY2VkdXJlSW5saW5lcy5oIgogI2luY2x1ZGUgIkIzU3dpdGNoVmFsdWUuaCIKICNp
bmNsdWRlICJCM1Vwc2lsb25WYWx1ZS5oIgpAQCAtMjc1LDggKzI3Nyw5NSBAQCBwcml2YXRlOgog
ICAgICAgICBjb25zdCBWZWN0b3I8U3dpdGNoQ2FzZT4mIGNhc2VzLCB1bnNpZ25lZCBzdGFydCwg
Ym9vbCBoYXJkU3RhcnQsIHVuc2lnbmVkIGVuZCwKICAgICAgICAgQmFzaWNCbG9jayogYmVmb3Jl
KQogICAgIHsKLSAgICAgICAgLy8gRklYTUU6IEFkZCB0YWJsZS1iYXNlZCBzd2l0Y2ggbG93ZXJp
bmcuCi0gICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTExNDEKKyAgICAgICAgVmFsdWUqIGNoaWxkID0gbV92YWx1ZS0+Y2hpbGQoMCk7CisgICAgICAg
IFR5cGUgdHlwZSA9IGNoaWxkLT50eXBlKCk7CisgICAgICAgIEZyZXF1ZW50ZWRCbG9jayBmYWxs
VGhyb3VnaCA9IG1fdmFsdWUtPmFzPFN3aXRjaFZhbHVlPigpLT5mYWxsVGhyb3VnaCgpOworICAg
ICAgICAKKyAgICAgICAgLy8gSXQncyBhIGdvb2QgaWRlYSB0byB1c2UgYSB0YWJsZS1iYXNlZCBz
d2l0Y2ggaW4gc29tZSBjYXNlczogdGhlIG51bWJlciBvZiBjYXNlcyBoYXMgdG8gYmUKKyAgICAg
ICAgLy8gbGFyZ2UgZW5vdWdoIGFuZCB0aGV5IGhhdmUgdG8gYmUgZGVuc2UgZW5vdWdoLiBUaGlz
IGNvdWxkIHByb2JhYmx5IGJlIGltcHJvdmVkIGEgbG90LiBGb3IKKyAgICAgICAgLy8gZXhhbXBs
ZSwgd2UgY291bGQgc3RpbGwgdXNlIGEganVtcCB0YWJsZSBpbiBjYXNlcyB3aGVyZSB0aGUgaW5w
dXRzIGFyZSBzcGFyc2Ugc28gbG9uZyBhcyB3ZQorICAgICAgICAvLyBzaGlmdCBvZmYgdGhlIHVu
aW50ZXJlc3RpbmcgYml0cy4gT24gdGhlIG90aGVyIGhhbmQsIGl0J3Mgbm90IGNsZWFyIHRoYXQg
dGhpcyB3b3VsZAorICAgICAgICAvLyBhY3R1YWxseSBiZSBhbnkgYmV0dGVyIHRoYW4gd2hhdCB3
ZSBoYXZlIGRvbmUgaGVyZSBhbmQgaXQncyBub3QgY2xlYXIgdGhhdCBpdCB3b3VsZCBiZQorICAg
ICAgICAvLyBiZXR0ZXIgdGhhbiBhIGJpbmFyeSBzd2l0Y2guCisgICAgICAgIGNvbnN0IHVuc2ln
bmVkIG1pbkNhc2VzRm9yVGFibGUgPSA3OworICAgICAgICBjb25zdCB1bnNpZ25lZCBkZW5zaXR5
TGltaXQgPSA0OworICAgICAgICBpZiAoZW5kIC0gc3RhcnQgPj0gbWluQ2FzZXNGb3JUYWJsZSkg
eworICAgICAgICAgICAgaW50NjRfdCBmaXJzdFZhbHVlID0gY2FzZXNbc3RhcnRdLmNhc2VWYWx1
ZSgpOworICAgICAgICAgICAgaW50NjRfdCBsYXN0VmFsdWUgPSBjYXNlc1tlbmQgLSAxXS5jYXNl
VmFsdWUoKTsKKyAgICAgICAgICAgIGlmICgobGFzdFZhbHVlIC0gZmlyc3RWYWx1ZSArIDEpIC8g
Y2FzZXMuc2l6ZSgpIDwgZGVuc2l0eUxpbWl0KSB7CisgICAgICAgICAgICAgICAgQmFzaWNCbG9j
ayogc3dpdGNoQmxvY2sgPSBtX2Jsb2NrSW5zZXJ0aW9uU2V0Lmluc2VydEFmdGVyKG1fYmxvY2sp
OworICAgICAgICAgICAgICAgIFZhbHVlKiBpbmRleCA9IGJlZm9yZS0+YXBwZW5kTmV3PFZhbHVl
PigKKyAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBTdWIsIG1fb3JpZ2luLCBjaGlsZCwKKyAg
ICAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmRJbnRDb25zdGFudChtX3Byb2MsIG1fb3Jp
Z2luLCB0eXBlLCBmaXJzdFZhbHVlKSk7CisgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBCcmFuY2gsIG1f
b3JpZ2luLAorICAgICAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4oCisg
ICAgICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIEFib3ZlLCBtX29yaWdpbiwgaW5kZXgsCisg
ICAgICAgICAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZEludENvbnN0YW50KG1fcHJvYywg
bV9vcmlnaW4sIHR5cGUsIGxhc3RWYWx1ZSAtIGZpcnN0VmFsdWUpKSwKKyAgICAgICAgICAgICAg
ICAgICAgZmFsbFRocm91Z2gsIEZyZXF1ZW50ZWRCbG9jayhzd2l0Y2hCbG9jaykpOworICAgICAg
ICAgICAgICAgIAorICAgICAgICAgICAgICAgIHNpemVfdCB0YWJsZVNpemUgPSBsYXN0VmFsdWUg
LSBmaXJzdFZhbHVlICsgMTsKKyAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIq
IGp1bXBUYWJsZSA9IGJpdHdpc2VfY2FzdDxNYWNyb0Fzc2VtYmxlckNvZGVQdHIqPigKKyAgICAg
ICAgICAgICAgICAgICAgbV9wcm9jLmFkZERhdGFTZWN0aW9uKHNpemVvZihNYWNyb0Fzc2VtYmxl
ckNvZGVQdHIpICogdGFibGVTaXplKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAg
ICAgVmFsdWUqIGJhc2UgPSBzd2l0Y2hCbG9jay0+YXBwZW5kSW50Q29uc3RhbnQoCisgICAgICAg
ICAgICAgICAgICAgIG1fcHJvYywgbV9vcmlnaW4sIHBvaW50ZXJUeXBlKCksIGJpdHdpc2VfY2Fz
dDxpbnRwdHJfdD4oanVtcFRhYmxlKSk7CisgICAgICAgICAgICAgICAgaWYgKGluZGV4LT50eXBl
KCkgIT0gYmFzZS0+dHlwZSgpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChpbmRleC0+dHlw
ZSgpID09IEludDMyKQorICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPSBzd2l0Y2hCbG9j
ay0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIFpFeHQzMiwgbV9vcmlnaW4sIGluZGV4KTsKKyAg
ICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPSBz
d2l0Y2hCbG9jay0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIFRydW5jLCBtX29yaWdpbiwgaW5k
ZXgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpbmRleCA9IHN3aXRjaEJs
b2NrLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIE11bCwg
bV9vcmlnaW4sIGluZGV4LAorICAgICAgICAgICAgICAgICAgICBzd2l0Y2hCbG9jay0+YXBwZW5k
SW50Q29uc3RhbnQoCisgICAgICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLCBw
b2ludGVyVHlwZSgpLCBzaXplb2YoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKSkpOworICAgICAgICAg
ICAgICAgIFZhbHVlKiBwdHIgPSBzd2l0Y2hCbG9jay0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2Ms
IEFkZCwgbV9vcmlnaW4sIGJhc2UsIGluZGV4KTsKKyAgICAgICAgICAgICAgICBWYWx1ZSoganVt
cFRhcmdldCA9CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaEJsb2NrLT5hcHBlbmROZXc8TWVt
b3J5VmFsdWU+KG1fcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgbV9vcmlnaW4sIHB0cik7Cisg
ICAgICAgICAgICAgICAgUG9seUp1bXBWYWx1ZSogcG9seUp1bXAgPQorICAgICAgICAgICAgICAg
ICAgICBzd2l0Y2hCbG9jay0+YXBwZW5kTmV3PFBvbHlKdW1wVmFsdWU+KG1fcHJvYywgbV9vcmln
aW4sIGp1bXBUYXJnZXQpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIEJpdFZl
Y3RvciBoYW5kbGVkSW5kaWNlczsKKyAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBz
dGFydDsgaSA8IGVuZDsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9j
ayBibG9jayA9IGNhc2VzW2ldLnRhcmdldCgpOworICAgICAgICAgICAgICAgICAgICBpbnQ2NF90
IHZhbHVlID0gY2FzZXNbaV0uY2FzZVZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgIHBvbHlK
dW1wLT5hcHBlbmRTdWNjZXNzb3IoYmxvY2spOworICAgICAgICAgICAgICAgICAgICBzaXplX3Qg
aW5kZXggPSB2YWx1ZSAtIGZpcnN0VmFsdWU7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVCgh
aGFuZGxlZEluZGljZXMuZ2V0KGluZGV4KSk7CisgICAgICAgICAgICAgICAgICAgIGhhbmRsZWRJ
bmRpY2VzLnNldChpbmRleCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAor
ICAgICAgICAgICAgICAgIGJvb2wgaGFzVW5oYW5kbGVkSW5kZXggPSBmYWxzZTsKKyAgICAgICAg
ICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgdGFibGVTaXplOyArK2kpIHsKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKCFoYW5kbGVkSW5kaWNlcy5nZXQoaSkpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGhhc1VuaGFuZGxlZEluZGV4ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChoYXNVbmhhbmRsZWRJbmRleCkK
KyAgICAgICAgICAgICAgICAgICAgcG9seUp1bXAtPmFwcGVuZFN1Y2Nlc3NvcihmYWxsVGhyb3Vn
aCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgcG9seUp1bXAtPnNldENhbGxi
YWNrKAorICAgICAgICAgICAgICAgICAgICBbPV0gKGNvbnN0IFZlY3RvcjxNYWNyb0Fzc2VtYmxl
ckNvZGVQdHI+JiBwb2ludGVycykgeworICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHBv
aW50ZXJJbmRleCA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpbmRl
eCA6IGhhbmRsZWRJbmRpY2VzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGp1bXBUYWJs
ZVtpbmRleF0gPSBwb2ludGVyc1twb2ludGVySW5kZXgrK107CisgICAgICAgICAgICAgICAgICAg
ICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoYXNVbmhhbmRsZWRJbmRleCkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdGFibGVT
aXplOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFoYW5kbGVk
SW5kaWNlcy5nZXQoaSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqdW1w
VGFibGVbaV0gPSBwb2ludGVyc1twb2ludGVySW5kZXhdOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2ludGVySW5kZXgrKzsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAg
ICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQocG9pbnRlckluZGV4ID09IHBvaW50ZXJz
LnNpemUoKSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgICAgICAKICAgICAgICAgLy8gU2VlIGNv
bW1lbnRzIGluIGppdC9CaW5hcnlTd2l0Y2guY3BwIGZvciBhIGp1c3RpZmljYXRpb24gb2YgdGhp
cyBhbGdvcml0aG0uIFRoZSBvbmx5CiAgICAgICAgIC8vIHRoaW5nIHdlIGRvIGRpZmZlcmVudGx5
IGlzIHRoYXQgd2UgZG9uJ3QgdXNlIHJhbmRvbW5lc3MuCkBAIC0zMDcsMjIgKzM5NiwxOSBAQCBw
cml2YXRlOgogICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CiAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgQnJhbmNoLCBtX29yaWdpbiwKICAgICAgICAg
ICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+KAotICAgICAgICAgICAgICAgICAg
ICAgICAgbV9wcm9jLCBFcXVhbCwgbV9vcmlnaW4sIG1fdmFsdWUtPmNoaWxkKDApLAorICAgICAg
ICAgICAgICAgICAgICAgICAgbV9wcm9jLCBFcXVhbCwgbV9vcmlnaW4sIGNoaWxkLAogICAgICAg
ICAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmRJbnRDb25zdGFudCgKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLCBtX3ZhbHVlLT5jaGlsZCgwKS0+dHlw
ZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgbV9vcmlnaW4sIHR5cGUs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZXNbc3RhcnQgKyBpXS5jYXNlVmFsdWUo
KSkpLAogICAgICAgICAgICAgICAgICAgICBjYXNlc1tzdGFydCArIGldLnRhcmdldCgpLCBGcmVx
dWVudGVkQmxvY2sobmV4dENoZWNrKSk7CiAKICAgICAgICAgICAgICAgICBiZWZvcmUgPSBuZXh0
Q2hlY2s7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGlmIChhbGxDb25zZWN1dGl2ZSkg
ewotICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCi0gICAg
ICAgICAgICAgICAgICAgIG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIGNhc2VzW2VuZCAtIDFdLnRh
cmdldCgpKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgYmVmb3JlLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBKdW1w
LCBtX29yaWdpbiwgbV92YWx1ZS0+YXM8U3dpdGNoVmFsdWU+KCktPmZhbGxUaHJvdWdoKCkpOwot
ICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGFsbENvbnNlY3V0aXZlKQorICAgICAgICAg
ICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4obV9wcm9jLCBKdW1wLCBtX29y
aWdpbiwgY2FzZXNbZW5kIC0gMV0udGFyZ2V0KCkpOworICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4obV9wcm9jLCBKdW1wLCBt
X29yaWdpbiwgZmFsbFRocm91Z2gpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAK
QEAgLTMzNCw5ICs0MjAsOSBAQCBwcml2YXRlOgogICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAogICAgICAgICAgICAgbV9wcm9jLCBCcmFuY2gsIG1fb3JpZ2luLAogICAg
ICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+KAotICAgICAgICAgICAgICAgIG1fcHJv
YywgTGVzc1RoYW4sIG1fb3JpZ2luLCBtX3ZhbHVlLT5jaGlsZCgwKSwKKyAgICAgICAgICAgICAg
ICBtX3Byb2MsIExlc3NUaGFuLCBtX29yaWdpbiwgY2hpbGQsCiAgICAgICAgICAgICAgICAgYmVm
b3JlLT5hcHBlbmRJbnRDb25zdGFudCgKLSAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBtX29y
aWdpbiwgbV92YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSwKKyAgICAgICAgICAgICAgICAgICAgbV9w
cm9jLCBtX29yaWdpbiwgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgY2FzZXNbbWVkaWFuSW5k
ZXhdLmNhc2VWYWx1ZSgpKSksCiAgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2sobGVmdCksIEZy
ZXF1ZW50ZWRCbG9jayhyaWdodCkpOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNMb3dlclRvQWlyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNMb3dlclRvQWlyLmNwcAkocmV2aXNpb24gMjAxODI3KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1NSw3ICsxNTUsNiBA
QCBwdWJsaWM6CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0
IHRoZSBzdWNjZXNzb3JzIGFyZSBzZXQgdXAgY29ycmVjdGx5LgotICAgICAgICAgICAgQVNTRVJU
KGJsb2NrLT5zdWNjZXNzb3JzKCkuc2l6ZSgpIDw9IDIpOwogICAgICAgICAgICAgZm9yIChCMzo6
RnJlcXVlbnRlZEJsb2NrIHN1Y2Nlc3NvciA6IGJsb2NrLT5zdWNjZXNzb3JzKCkpIHsKICAgICAg
ICAgICAgICAgICBtX2Jsb2NrVG9CbG9ja1tibG9ja10tPnN1Y2Nlc3NvcnMoKS5hcHBlbmQoCiAg
ICAgICAgICAgICAgICAgICAgIEFpcjo6RnJlcXVlbnRlZEJsb2NrKG1fYmxvY2tUb0Jsb2NrW3N1
Y2Nlc3Nvci5ibG9jaygpXSwgc3VjY2Vzc29yLmZyZXF1ZW5jeSgpKSk7CkBAIC0yNDQxLDYgKzI0
NDAsMTYgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIGNhc2UgQjM6OlBvbHlKdW1wOiB7CisgICAg
ICAgICAgICBBcmdQcm9taXNlIGFkZHIgPSBsb2FkUHJvbWlzZShtX3ZhbHVlLT5jaGlsZCgwKSk7
CisgICAgICAgICAgICBpZiAoaXNWYWxpZEZvcm0oQWlyOjpQb2x5SnVtcCwgYWRkci5raW5kKCkp
KSB7CisgICAgICAgICAgICAgICAgYXBwZW5kKEFpcjo6UG9seUp1bXAsIGFkZHIuY29uc3VtZSgq
dGhpcykpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIGFwcGVuZChBaXI6OlBvbHlKdW1wLCB0bXAobV92YWx1ZS0+Y2hpbGQoMCkpKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQogCiAgICAgICAgIGNhc2UgQjM6Ok9vcHM6IHsKICAg
ICAgICAgICAgIGFwcGVuZChBaXI6Ok9vcHMpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzT3Bjb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNPcGNvZGUuY3BwCShyZXZpc2lvbiAyMDE4MjcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNPcGNvZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOTAsNiArMjkwLDkgQEAgdm9pZCBw
cmludEludGVybmFsKFByaW50U3RyZWFtJiBvdXQsIE9wYwogICAgIGNhc2UgU3dpdGNoOgogICAg
ICAgICBvdXQucHJpbnQoIlN3aXRjaCIpOwogICAgICAgICByZXR1cm47CisgICAgY2FzZSBQb2x5
SnVtcDoKKyAgICAgICAgb3V0LnByaW50KCJQb2x5SnVtcCIpOworICAgICAgICByZXR1cm47CiAg
ICAgY2FzZSBSZXR1cm46CiAgICAgICAgIG91dC5wcmludCgiUmV0dXJuIik7CiAgICAgICAgIHJl
dHVybjsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5oCShyZXZpc2lvbiAyMDE4
MjcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuaAkod29ya2luZyBjb3B5
KQpAQCAtMjE2LDYgKzIxNiwxMyBAQCBlbnVtIE9wY29kZSA6IGludDE2X3QgewogCiAgICAgLy8g
U3dpdGNoLiBTd2l0Y2hlcyBvdmVyIGVpdGhlciBJbnQzMiBvciBJbnQ2NC4gVXNlcyB0aGUgU3dp
dGNoVmFsdWUgY2xhc3MuCiAgICAgU3dpdGNoLAorICAgIAorICAgIC8vIEp1bXAgdG8gdGhlIGdp
dmVuIGFkZHJlc3MuIFRoZSBjb21waWxlciBhc3N1bWVzIHRoYXQgdGhpcyB3aWxsIGp1bXAgdG8g
b25lIG9mIHRoZSBzdXBwbGllZAorICAgIC8vIHN1Y2Nlc3NvcnMsIGJ1dCB3aWxsIG1ha2UgYWJz
b2x1dGVseSBubyBhc3N1bXB0aW9ucyBhYm91dCB3aGljaC4gSXQncyBlbnRpcmVseSB1cCB0byB0
aGUgdXNlcgorICAgIC8vIHRvIGFycmFuZ2UgZm9yIHRoZSBqdW1wIHRvIGp1bXAgdG8gb25lIG9m
IHRob3NlIHN1Y2Nlc3NvcnMuIFRoaXMgY2Fubm90IHRyYXAgb3IgZG8gYW55dGhpbmcgYnV0Cisg
ICAgLy8ganVtcCB0byBvbmUgb2YgdGhlIHN1Y2Nlc3NvcnM7IGlmIGl0IGRvZXMgYW55dGhpbmcg
ZWxzZSB0aGVuIGRlbW9ucyB3aWxsIGNvbWUgb3V0IG9mIHRoZSB1c2VyJ3MKKyAgICAvLyBub3Nl
LiAKKyAgICBQb2x5SnVtcCwKIAogICAgIC8vIFJldHVybi4gTm90ZSB0aGF0IEIzIHByb2NlZHVy
ZXMgZG9uJ3Qga25vdyB0aGVpciByZXR1cm4gdHlwZSwgc28gdGhpcyBjYW4ganVzdCByZXR1cm4g
YW55CiAgICAgLy8gdHlwZS4gVXNlcyB0aGUgQ29udHJvbFZhbHVlIGNsYXNzLgpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUG9seUp1bXBWYWx1ZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUG9seUp1bXBWYWx1ZS5jcHAJKHJldmlzaW9uIDAp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQb2x5SnVtcFZhbHVlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJCM1BvbHlKdW1w
VmFsdWUuaCIKKworI2lmIEVOQUJMRShCM19KSVQpCisKKyNpbmNsdWRlICJCM0Jhc2ljQmxvY2su
aCIKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CisKK1BvbHlKdW1wVmFsdWU6On5Q
b2x5SnVtcFZhbHVlKCkKK3sKK30KKwordm9pZCBQb2x5SnVtcFZhbHVlOjphcHBlbmRTdWNjZXNz
b3IoY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBibG9jaykKK3sKKyAgICBtX3N1Y2Nlc3NvcnMuYXBw
ZW5kKGJsb2NrKTsKK30KKwordm9pZCBQb2x5SnVtcFZhbHVlOjpzZXRDYWxsYmFja1Rhc2soUmVm
UHRyPFNoYXJlZFRhc2s8Q2FsbGJhY2tGdW5jdGlvblR5cGU+PiB0YXNrKQoreworICAgIG1fdGFz
ayA9IHRhc2s7Cit9CisKK2Jvb2wgUG9seUp1bXBWYWx1ZTo6aXNDbG9uZWFibGUoKSBjb25zdAor
eworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBQb2x5SnVtcFZhbHVlOjpkdW1wTWV0YShD
b21tYVByaW50ZXImIGNvbW1hLCBQcmludFN0cmVhbSYgb3V0KSBjb25zdAoreworICAgIENvbnRy
b2xWYWx1ZTo6ZHVtcE1ldGEoY29tbWEsIG91dCk7CisgICAgb3V0LnByaW50KGNvbW1hLCAidGFz
ayA9ICIsIFJhd1BvaW50ZXIobV90YXNrLmdldCgpKSk7Cit9CisKK1ZhbHVlKiBQb2x5SnVtcFZh
bHVlOjpjbG9uZUltcGwoKSBjb25zdAoreworICAgIGRhdGFMb2coIkZBVEFMOiBBdHRlbXB0IHRv
IGNsb25lIG5vbi1jbG9uZWFibGUgUG9seUp1bXBWYWx1ZSFcbiIpOworICAgIFJFTEVBU0VfQVNT
RVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK1BvbHlKdW1wVmFsdWU6OlBvbHlKdW1wVmFsdWUoT3Jp
Z2luIG9yaWdpbiwgVmFsdWUqIGNoaWxkKQorICAgIDogQ29udHJvbFZhbHVlKFBvbHlKdW1wLCBW
b2lkLCBvcmlnaW4sIGNoaWxkKQoreworfQorCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKKwor
I2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1BvbHlKdW1wVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNQb2x5SnVtcFZhbHVlLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNQb2x5SnVtcFZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3NiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEIz
UG9seUp1bXBWYWx1ZV9oCisjZGVmaW5lIEIzUG9seUp1bXBWYWx1ZV9oCisKKyNpZiBFTkFCTEUo
QjNfSklUKQorCisjaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKKyNpbmNsdWRlIDx3dGYvU2hh
cmVkVGFzay5oPgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKKworY2xhc3MgUG9s
eUp1bXBWYWx1ZSA6IHB1YmxpYyBDb250cm9sVmFsdWUgeworcHVibGljOgorICAgIHN0YXRpYyBi
b29sIGFjY2VwdHMoT3Bjb2RlIG9wY29kZSkgeyByZXR1cm4gb3Bjb2RlID09IFBvbHlKdW1wOyB9
CisgICAgCisgICAgflBvbHlKdW1wVmFsdWUoKTsKKyAgICAKKyAgICBKU19FWFBPUlRfUFJJVkFU
RSB2b2lkIGFwcGVuZFN1Y2Nlc3Nvcihjb25zdCBGcmVxdWVudGVkQmxvY2smKTsKKyAgICAKKyAg
ICB0eXBlZGVmIHZvaWQgQ2FsbGJhY2tGdW5jdGlvblR5cGUoY29uc3QgVmVjdG9yPE1hY3JvQXNz
ZW1ibGVyQ29kZVB0cj4mKTsKKyAgICAKKyAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIHNldENh
bGxiYWNrVGFzayhSZWZQdHI8U2hhcmVkVGFzazxDYWxsYmFja0Z1bmN0aW9uVHlwZT4+IHRhc2sp
OworICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmM+CisgICAgdm9pZCBzZXRDYWxsYmFj
ayhjb25zdCBGdW5jJiBmdW5jKQorICAgIHsKKyAgICAgICAgc2V0Q2FsbGJhY2tUYXNrKGNyZWF0
ZVNoYXJlZFRhc2s8Q2FsbGJhY2tGdW5jdGlvblR5cGU+KGZ1bmMpKTsKKyAgICB9CisgICAgCisg
ICAgU2hhcmVkVGFzazxDYWxsYmFja0Z1bmN0aW9uVHlwZT4qIGNhbGxiYWNrVGFzaygpIGNvbnN0
IHsgcmV0dXJuIG1fdGFzay5nZXQoKTsgfQorICAgIAorICAgIGJvb2wgaXNDbG9uZWFibGUoKSBj
b25zdCBvdmVycmlkZTsKKworcHJvdGVjdGVkOgorICAgIHZvaWQgZHVtcE1ldGEoQ29tbWFQcmlu
dGVyJiwgUHJpbnRTdHJlYW0mKSBjb25zdCBvdmVycmlkZTsKKyAgICAKKyAgICBWYWx1ZSogY2xv
bmVJbXBsKCkgY29uc3Qgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIFBy
b2NlZHVyZTsKKyAgICAKKyAgICBKU19FWFBPUlRfUFJJVkFURSBQb2x5SnVtcFZhbHVlKE9yaWdp
biwgVmFsdWUqIGNoaWxkKTsKKyAgICAKKyAgICBSZWZQdHI8U2hhcmVkVGFzazxDYWxsYmFja0Z1
bmN0aW9uVHlwZT4+IG1fdGFzazsKK307CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMworCisj
ZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKKworI2VuZGlmIC8vIEIzUG9seUp1bXBWYWx1ZV9oCisK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmNwcAkocmV2aXNpb24g
MjAxODI3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtODIsNiArODIsOCBAQCBWYXJpYWJsZSogUHJvY2VkdXJlOjphZGRWYXJp
YWJsZShUeXBlIHR5CiAKIFZhbHVlKiBQcm9jZWR1cmU6OmNsb25lKFZhbHVlKiB2YWx1ZSkKIHsK
KyAgICBBU1NFUlQodmFsdWUtPmlzQ2xvbmVhYmxlKCkpOworICAgIAogICAgIHN0ZDo6dW5pcXVl
X3B0cjxWYWx1ZT4gY2xvbmUodmFsdWUtPmNsb25lSW1wbCgpKTsKICAgICBjbG9uZS0+bV9pbmRl
eCA9IFVJTlRfTUFYOwogICAgIGNsb25lLT5vd25lciA9IG51bGxwdHI7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuaAkocmV2aXNpb24gMjAxODI3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMSw2
ICsxMDEsNyBAQCBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVmFsdWVUeXBlLCB0eXBl
bmFtZS4uLiBBcmd1bWVudHM+CiAgICAgVmFsdWVUeXBlKiBhZGQoQXJndW1lbnRzLi4uKTsKIAor
ICAgIC8vIE5vdGUgdGhhdCBub3QgYWxsIHZhbHVlcyBhcmUgY2xvbmVhYmxlLiBDaGVjayBWYWx1
ZTo6aXNDbG9uZWFibGUoKSBiZWZvcmUgcHJvY2VlZGluZy4KICAgICBWYWx1ZSogY2xvbmUoVmFs
dWUqKTsKIAogICAgIFZhbHVlKiBhZGRJbnRDb25zdGFudChPcmlnaW4sIFR5cGUsIGludDY0X3Qg
dmFsdWUpOwpAQCAtMjE4LDYgKzIxOSw5IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IGNoYXIqIGxh
c3RQaGFzZU5hbWUoKSBjb25zdCB7IHJldHVybiBtX2xhc3RQaGFzZU5hbWU7IH0KIAorICAgIC8v
IEFsbG9jYXRlcyBhIHNsYWIgb2YgbWVtb3J5IHRoYXQgd2lsbCBiZSBrZXB0IGFsaXZlIGJ5IGFu
eW9uZSB3aG8ga2VlcHMgdGhlIHJlc3VsdGluZyBjb2RlCisgICAgLy8gYWxpdmUuIEdyZWF0IGZv
ciBjb21waWxlci1nZW5lcmF0ZWQgZGF0YSBzZWN0aW9ucywgbGlrZSBzd2l0Y2gganVtcCB0YWJs
ZXMgYW5kIGNvbnN0YW50IHBvb2xzLgorICAgIC8vIFRoaXMgcmV0dXJucyBtZW1vcnkgdGhhdCBo
YXMgYmVlbiB6ZXJvLWluaXRpYWxpemVkLgogICAgIHZvaWQqIGFkZERhdGFTZWN0aW9uKHNpemVf
dCBzaXplKTsKIAogICAgIE9wYXF1ZUJ5cHJvZHVjdHMmIGJ5cHJvZHVjdHMoKSB7IHJldHVybiAq
bV9ieXByb2R1Y3RzOyB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VT
dHJlbmd0aC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVk
dWNlU3RyZW5ndGguY3BwCShyZXZpc2lvbiAyMDE4MjcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNSZWR1Y2VTdHJlbmd0aC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3NzMsNyArMTc3
MywxNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUtPm9wY29k
ZSgpID09IFNlbGVjdAogICAgICAgICAgICAgICAgICAgICAgICAgJiYgKHZhbHVlLT5jaGlsZCgx
KS0+aXNDb25zdGFudCgpICYmIHZhbHVlLT5jaGlsZCgyKS0+aXNDb25zdGFudCgpKTsKICAgICAg
ICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGlmIChzZWxlY3QpIHsKKyAgICAgICAgICAgIAor
ICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgdGhlIHJlbGV2YW50IGNvZGUgaXMgY2xvbmVh
YmxlLgorICAgICAgICAgICAgYm9vbCBhbGxBcmVDbG9uZWFibGUgPSB0cnVlOworICAgICAgICAg
ICAgZm9yICh1bnNpZ25lZCBpbmRleCA9IG1faW5kZXggKyAxOyBpbmRleC0tOykgeworICAgICAg
ICAgICAgICAgIFZhbHVlKiB2YWx1ZSA9IG1fYmxvY2stPmF0KGluZGV4KTsKKyAgICAgICAgICAg
ICAgICBhbGxBcmVDbG9uZWFibGUgJj0gdmFsdWUtPmlzQ2xvbmVhYmxlKCk7CisgICAgICAgICAg
ICAgICAgaWYgKHZhbHVlID09IHNlbGVjdCkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChzZWxlY3QgJiYgYWxs
QXJlQ2xvbmVhYmxlKSB7CiAgICAgICAgICAgICAgICAgc3BlY2lhbGl6ZVNlbGVjdChzZWxlY3Qp
OwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzVmFsaWRhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM1ZhbGlkYXRlLmNwcAkocmV2aXNpb24gMjAxODI3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsaWRhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zODcs
NiArMzg3LDExIEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICBWQUxJREFURShpc0ludCh2YWx1
ZS0+Y2hpbGQoMCktPnR5cGUoKSksICgiQXQgIiwgKnZhbHVlKSk7CiAgICAgICAgICAgICAgICAg
VkFMSURBVEUodmFsdWUtPnR5cGUoKSA9PSBWb2lkLCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBQb2x5SnVtcDoKKyAgICAgICAgICAg
ICAgICBWQUxJREFURSh2YWx1ZS0+bnVtQ2hpbGRyZW4oKSA9PSAxLCAoIkF0ICIsICp2YWx1ZSkp
OworICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT5jaGlsZCgwKS0+dHlwZSgpID09IHBv
aW50ZXJUeXBlKCksICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAgICAgVkFMSURBVEUo
dmFsdWUtPnR5cGUoKSA9PSBWb2lkLCAoIkF0ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBWQUxJREFURSghKHZhbHVlLT5l
ZmZlY3RzKCkud3JpdGVzICYmIHZhbHVlLT5rZXkoKSksICgiQXQgIiwgKnZhbHVlKSk7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuY3BwCShyZXZpc2lvbiAyMDE4MjcpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU0
MCw2ICs1NDAsNyBAQCBFZmZlY3RzIFZhbHVlOjplZmZlY3RzKCkgY29uc3QKICAgICBjYXNlIEp1
bXA6CiAgICAgY2FzZSBCcmFuY2g6CiAgICAgY2FzZSBTd2l0Y2g6CisgICAgY2FzZSBQb2x5SnVt
cDoKICAgICBjYXNlIFJldHVybjoKICAgICBjYXNlIE9vcHM6CiAgICAgICAgIHJlc3VsdC50ZXJt
aW5hbCA9IHRydWU7CkBAIC01NDgsNiArNTQ5LDExIEBAIEVmZmVjdHMgVmFsdWU6OmVmZmVjdHMo
KSBjb25zdAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK2Jvb2wgVmFsdWU6OmlzQ2xvbmVhYmxl
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogVmFsdWVLZXkgVmFsdWU6OmtleSgp
IGNvbnN0CiB7CiAgICAgc3dpdGNoIChvcGNvZGUoKSkgewpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNWYWx1ZS5oCShyZXZpc2lvbiAyMDE4MjcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMDAsNiArMjAwLDExIEBAIHB1YmxpYzoK
ICAgICBib29sIGlzTGlrZU5vblplcm8oKSBjb25zdCB7IHJldHVybiBhc1RyaVN0YXRlKCkgPT0g
VHJ1ZVRyaVN0YXRlOyB9CiAKICAgICBFZmZlY3RzIGVmZmVjdHMoKSBjb25zdDsKKyAgICAKKyAg
ICAvLyBTb21lIG9wZXJhdGlvbnMgd2lsbCByZWZ1c2UgdG8gYmUgY2xvbmVkLiBUaGlzIGhhcHBl
bnMgd2hlbiB0aGUgb3BlcmF0aW9uIGhhcyBzb21lIGluc2lkZQorICAgIC8vIGtub3dsZWRnZSBh
Ym91dCB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gaXRzIGlkZW50aXR5IGFuZCB0aGUgaWRlbnRp
dHkgb2YgdGhlIGNvZGUgaXQgd2lsbAorICAgIC8vIGdlbmVyYXRlLgorICAgIHZpcnR1YWwgYm9v
bCBpc0Nsb25lYWJsZSgpIGNvbnN0OwogCiAgICAgLy8gVGhpcyByZXR1cm5zIGEgVmFsdWVLZXkg
dGhhdCBkZXNjcmliZXMgdGhhdCB0aGlzIFZhbHVlIHJldHVybnMgd2hlbiBpdCBleGVjdXRlcy4g
UmV0dXJucyBhbgogICAgIC8vIGVtcHR5IFZhbHVlS2V5IGlmIHRoaXMgVmFsdWUgaXMgaW1wdXJl
LiBOb3RlIHRoYXQgYW4gb3BlcmF0aW9uIHRoYXQgcmV0dXJucyBWb2lkIGNvdWxkIHN0aWxsCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcAkocmV2aXNpb24gMjAxODI3KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1
LDYgKzM1LDcgQEAKICNpbmNsdWRlICJCM0NvbnN0UHRyVmFsdWUuaCIKICNpbmNsdWRlICJCM0Nv
bnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzRWZmZWN0cy5oIgorI2luY2x1ZGUgIkIzUG9seUp1
bXBWYWx1ZS5oIgogI2luY2x1ZGUgIkIzTWF0aEV4dHJhcy5oIgogI2luY2x1ZGUgIkIzTWVtb3J5
VmFsdWUuaCIKICNpbmNsdWRlICJCM1Byb2NlZHVyZS5oIgpAQCAtNDQsNiArNDUsNyBAQAogI2lu
Y2x1ZGUgIkIzU3dpdGNoVmFsdWUuaCIKICNpbmNsdWRlICJCM1Vwc2lsb25WYWx1ZS5oIgogI2lu
Y2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCisjaW5jbHVkZSAiQjNWYXJpYWJsZVZhbHVlLmgiCiAj
aW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiSW5pdGlhbGl6ZVRocmVhZGluZy5o
IgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKQEAgLTUyLDYgKzU0LDcgQEAKICNpbmNsdWRlICJW
TS5oIgogI2luY2x1ZGUgPGNtYXRoPgogI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDx3dGYv
TGlzdER1bXAuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9OdW1iZXJP
ZkNvcmVzLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgpAQCAtNzMsNiArNzYsMTEgQEAg
dXNpbmcgbmFtZXNwYWNlIEpTQzo6QjM7CiAKIG5hbWVzcGFjZSB7CiAKK2Jvb2wgc2hvdWxkQmVW
ZXJib3NlKCkKK3sKKyAgICByZXR1cm4gc2hvdWxkRHVtcElSKEIzTW9kZSk7Cit9CisKIFN0YXRp
Y0xvY2sgY3Jhc2hMb2NrOwogCiAvLyBOb3RoaW5nIGZhbmN5IGZvciBub3c7IHdlIGp1c3QgdXNl
IHRoZSBleGlzdGluZyBXVEYgYXNzZXJ0aW9uIG1hY2hpbmVyeS4KQEAgLTEwMTI4LDcgKzEwMTM2
LDEwIEBAIHZvaWQgdGVzdFN3aXRjaENoaWxsRGl2KHVuc2lnbmVkIGRlZ3JlZSwKICAgICBhdXRv
IGNvZGUgPSBjb21waWxlKHByb2MpOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGRl
Z3JlZTsgKytpKSB7Ci0gICAgICAgIENIRUNLKGludm9rZTxpbnQzMl90PigqY29kZSwgaSAqIGdh
cCwgNDIsIDExKSA9PSAoKGkgJiAxKSA/IDExLzQyIDogNDIvMTEpKTsKKyAgICAgICAgZGF0YUxv
ZygiaSA9ICIsIGksICJcbiIpOworICAgICAgICBpbnQzMl90IHJlc3VsdCA9IGludm9rZTxpbnQz
Ml90PigqY29kZSwgaSAqIGdhcCwgNDIsIDExKTsKKyAgICAgICAgZGF0YUxvZygicmVzdWx0ID0g
IiwgcmVzdWx0LCAiXG4iKTsKKyAgICAgICAgQ0hFQ0socmVzdWx0ID09ICgoaSAmIDEpID8gMTEv
NDIgOiA0Mi8xMSkpOwogICAgICAgICBpZiAoZ2FwID4gMSkgewogICAgICAgICAgICAgQ0hFQ0so
IWludm9rZTxpbnQzMl90PigqY29kZSwgaSAqIGdhcCArIDEsIDQyLCAxMSkpOwogICAgICAgICAg
ICAgQ0hFQ0soIWludm9rZTxpbnQzMl90PigqY29kZSwgaSAqIGdhcCAtIDEsIDQyLCAxMSkpOwpA
QCAtMTIwNTAsNiArMTIwNjEsMjMxIEBAIHZvaWQgdGVzdExhdGVSZWdpc3RlcigpCiAgICAgQ0hF
Q0soaW52b2tlPHVpbnQ2NF90PigqY29kZSkgPT0gcmVzdWx0KTsKIH0KIAordm9pZCB0aHJlYWRl
ZEludGVycHJldGVyUHJpbnQoVmVjdG9yPGludHB0cl90Piogc3RyZWFtLCBpbnRwdHJfdCB2YWx1
ZSkKK3sKKyAgICBzdHJlYW0tPmFwcGVuZCh2YWx1ZSk7Cit9CisKK3ZvaWQgdGVzdFRocmVhZGVk
SW50ZXJwcmV0ZXIoKQoreworICAgIC8vIFRoaXMgY3JlYXRlcyBhIHBvb3IgbWFuJ3MgdGhyZWFk
ZWQgaW50ZXJwcmV0ZXIgdXNpbmcgUG9seUp1bXAgYW5kIHNlZXMgaWYgaXQgd29ya3MuIE5vdGUK
KyAgICAvLyB0aGF0IFBvbHlKdW1wIGlzIG5vdCBsaWtlIGluZGlyZWN0IGJyYW5jaGVzIGluIExM
Vk0sIHNvIHlvdSBjYW4ndCBhY3R1YWxseSB1c2UgaXQgdG8KKyAgICAvLyBpbXBsZW1lbnQgYSBw
cm9wZXIgdGhyZWFkZWQgaW50ZXJwcmV0ZXIuIFRoaXMgY2hlYXRzOiB0aGUgZGlzcGF0Y2ggaW5z
dHJ1Y3Rpb24gaXMgYXQgdGhlIHRvcAorICAgIC8vIG9mIHRoZSBsb29wLiBUaGlzIGFsc28gdGVz
dHMgVmFyaWFibGVWYWx1ZS4KKyAgICAKKyAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICAKKyAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOworICAgIEJhc2ljQmxvY2sqIGRpc3Bh
dGNoID0gcHJvYy5hZGRCbG9jaygpOworICAgIEJhc2ljQmxvY2sqIGFkZFRvRGF0YVBvaW50ZXIg
PSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayogYWRkVG9Db2RlUG9pbnRlciA9IHBy
b2MuYWRkQmxvY2soKTsKKyAgICBCYXNpY0Jsb2NrKiBhZGRUb0NvZGVQb2ludGVyVGFrZW4gPSBw
cm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayogYWRkVG9Db2RlUG9pbnRlck5vdFRha2Vu
ID0gcHJvYy5hZGRCbG9jaygpOworICAgIEJhc2ljQmxvY2sqIGFkZFRvRGF0YSA9IHByb2MuYWRk
QmxvY2soKTsKKyAgICBCYXNpY0Jsb2NrKiBwcmludCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBC
YXNpY0Jsb2NrKiBzdG9wID0gcHJvYy5hZGRCbG9jaygpOworICAgIAorICAgIFZhcmlhYmxlKiBk
YXRhUG9pbnRlciA9IHByb2MuYWRkVmFyaWFibGUocG9pbnRlclR5cGUoKSk7CisgICAgVmFyaWFi
bGUqIGNvZGVQb2ludGVyID0gcHJvYy5hZGRWYXJpYWJsZShwb2ludGVyVHlwZSgpKTsKKyAgICAK
KyAgICByb290LT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwg
T3JpZ2luKCksIGRhdGFQb2ludGVyLAorICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOworICAgIHJv
b3QtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4o
KSwgY29kZVBvaW50ZXIsCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7CisgICAgVmFsdWUqIGNv
bnRleHQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMik7CisgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhkaXNwYXRjaCkpOworICAg
IAorICAgIFBvbHlKdW1wVmFsdWUqIHBvbHlKdW1wID0gZGlzcGF0Y2gtPmFwcGVuZE5ldzxQb2x5
SnVtcFZhbHVlPigKKyAgICAgICAgcHJvYywgT3JpZ2luKCksCisgICAgICAgIGRpc3BhdGNoLT5h
cHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5
cGUoKSwgT3JpZ2luKCksCisgICAgICAgICAgICBkaXNwYXRjaC0+YXBwZW5kTmV3PFZhcmlhYmxl
VmFsdWU+KAorICAgICAgICAgICAgICAgIHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBjb2RlUG9p
bnRlcikpKTsKKyAgICBwb2x5SnVtcC0+YXBwZW5kU3VjY2Vzc29yKEZyZXF1ZW50ZWRCbG9jayhh
ZGRUb0RhdGFQb2ludGVyKSk7CisgICAgcG9seUp1bXAtPmFwcGVuZFN1Y2Nlc3NvcihGcmVxdWVu
dGVkQmxvY2soYWRkVG9Db2RlUG9pbnRlcikpOworICAgIHBvbHlKdW1wLT5hcHBlbmRTdWNjZXNz
b3IoRnJlcXVlbnRlZEJsb2NrKGFkZFRvRGF0YSkpOworICAgIHBvbHlKdW1wLT5hcHBlbmRTdWNj
ZXNzb3IoRnJlcXVlbnRlZEJsb2NrKHByaW50KSk7CisgICAgcG9seUp1bXAtPmFwcGVuZFN1Y2Nl
c3NvcihGcmVxdWVudGVkQmxvY2soc3RvcCkpOworICAgIAorICAgIC8vIE91ciAib3Bjb2RlcyIu
IFRoZXkgd2lsbCBoYXZlIG1lYW5pbmcgb25jZSB3ZSBjb21waWxlLgorICAgIGludHB0cl90IEFk
ZERQID0gMDsKKyAgICBpbnRwdHJfdCBBZGRDUCA9IDA7CisgICAgaW50cHRyX3QgQWRkID0gMDsK
KyAgICBpbnRwdHJfdCBQcmludCA9IDA7CisgICAgaW50cHRyX3QgU3RvcCA9IDA7CisgICAgcG9s
eUp1bXAtPnNldENhbGxiYWNrKAorICAgICAgICBbJl0gKGNvbnN0IFZlY3RvcjxNYWNyb0Fzc2Vt
YmxlckNvZGVQdHI+JiBwb2ludGVycykgeworICAgICAgICAgICAgYXV0byBnZXQgPSBbJl0gKHNp
emVfdCBpbmRleCkgLT4gaW50cHRyX3QgeworICAgICAgICAgICAgICAgIHJldHVybiBiaXR3aXNl
X2Nhc3Q8aW50cHRyX3Q+KHBvaW50ZXJzW2luZGV4XS5leGVjdXRhYmxlQWRkcmVzcygpKTsKKyAg
ICAgICAgICAgIH07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIEFkZERQID0gZ2V0KDApOwor
ICAgICAgICAgICAgQWRkQ1AgPSBnZXQoMSk7CisgICAgICAgICAgICBBZGQgPSBnZXQoMik7Cisg
ICAgICAgICAgICBQcmludCA9IGdldCgzKTsKKyAgICAgICAgICAgIFN0b3AgPSBnZXQoNCk7Cisg
ICAgICAgIH0pOworICAgIAorICAgIC8vIEFkZERQIDxvcGVyYW5kPjogYWRkcyA8b3BlcmFuZD4g
dG8gRFAuCisgICAgVmFsdWUqIGNvZGVQb2ludGVyVmFsdWUgPQorICAgICAgICBhZGRUb0RhdGFQ
b2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCks
IGNvZGVQb2ludGVyKTsKKyAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVW
YWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGRhdGFQb2ludGVyLAorICAgICAg
ICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgcHJvYywg
QjM6OkFkZCwgT3JpZ2luKCksCisgICAgICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmRO
ZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGRhdGFQb2ludGVyKSwK
KyAgICAgICAgICAgIGFkZFRvRGF0YVBvaW50ZXItPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAg
ICAgICAgICAgcHJvYywgTXVsLCBPcmlnaW4oKSwKKyAgICAgICAgICAgICAgICBhZGRUb0RhdGFQ
b2ludGVyLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICAgICAgICAgICAgICBwcm9j
LCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwgc2l6ZW9m
KGludHB0cl90KSksCisgICAgICAgICAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kSW50
Q29uc3RhbnQoCisgICAgICAgICAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLCBwb2ludGVyVHlw
ZSgpLCBzaXplb2YoaW50cHRyX3QpKSkpKTsKKyAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmRO
ZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2lu
dGVyLAorICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAg
ICAgICAgcHJvYywgQjM6OkFkZCwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUsCisgICAgICAg
ICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmRJbnRDb25zdGFudCgKKyAgICAgICAgICAgICAg
ICBwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6ZW9mKGludHB0cl90KSAqIDIpKSk7
CisgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVt
cCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhkaXNwYXRjaCkpOworICAgIAorICAgIC8vIEFk
ZENQIDxvcGVyYW5kPjogYWRkcyA8b3BlcmFuZD4gdG8gQ1AgaWYgdGhlIGN1cnJlbnQgdmFsdWUg
YXQgRFAgaXMgbm9uLXplcm8sIG90aGVyd2lzZQorICAgIC8vIGZhbGxzIHRocm91Z2ggbm9ybWFs
bHkuCisgICAgY29kZVBvaW50ZXJWYWx1ZSA9CisgICAgICAgIGFkZFRvQ29kZVBvaW50ZXItPmFw
cGVuZE5ldzxWYXJpYWJsZVZhbHVlPihwcm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwgY29kZVBvaW50
ZXIpOworICAgIFZhbHVlKiBkYXRhUG9pbnRlclZhbHVlID0KKyAgICAgICAgYWRkVG9Db2RlUG9p
bnRlci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBk
YXRhUG9pbnRlcik7CisgICAgYWRkVG9Db2RlUG9pbnRlci0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCisgICAgICAgIGFkZFRvQ29kZVBv
aW50ZXItPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBMb2FkLCBw
b2ludGVyVHlwZSgpLCBPcmlnaW4oKSwgZGF0YVBvaW50ZXJWYWx1ZSksCisgICAgICAgIEZyZXF1
ZW50ZWRCbG9jayhhZGRUb0NvZGVQb2ludGVyVGFrZW4pLCBGcmVxdWVudGVkQmxvY2soYWRkVG9D
b2RlUG9pbnRlck5vdFRha2VuKSk7CisgICAgYWRkVG9Db2RlUG9pbnRlclRha2VuLT5hcHBlbmRO
ZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2lu
dGVyLAorICAgICAgICBhZGRUb0NvZGVQb2ludGVyVGFrZW4tPmFwcGVuZE5ldzxWYWx1ZT4oCisg
ICAgICAgICAgICBwcm9jLCBCMzo6QWRkLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwKKyAg
ICAgICAgICAgIGFkZFRvQ29kZVBvaW50ZXJUYWtlbi0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAg
ICAgICAgICAgICBwcm9jLCBNdWwsIE9yaWdpbigpLAorICAgICAgICAgICAgICAgIGFkZFRvQ29k
ZVBvaW50ZXJUYWtlbi0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAgICAgICAg
ICAgcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUs
IHNpemVvZihpbnRwdHJfdCkpLAorICAgICAgICAgICAgICAgIGFkZFRvQ29kZVBvaW50ZXJUYWtl
bi0+YXBwZW5kSW50Q29uc3RhbnQoCisgICAgICAgICAgICAgICAgICAgIHByb2MsIE9yaWdpbigp
LCBwb2ludGVyVHlwZSgpLCBzaXplb2YoaW50cHRyX3QpKSkpKTsKKyAgICBhZGRUb0NvZGVQb2lu
dGVyVGFrZW4tPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBG
cmVxdWVudGVkQmxvY2soZGlzcGF0Y2gpKTsKKyAgICBhZGRUb0NvZGVQb2ludGVyTm90VGFrZW4t
PmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwg
Y29kZVBvaW50ZXIsCisgICAgICAgIGFkZFRvQ29kZVBvaW50ZXJOb3RUYWtlbi0+YXBwZW5kTmV3
PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEIzOjpBZGQsIE9yaWdpbigpLCBjb2RlUG9pbnRl
clZhbHVlLAorICAgICAgICAgICAgYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuLT5hcHBlbmRJbnRD
b25zdGFudCgKKyAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwg
c2l6ZW9mKGludHB0cl90KSAqIDIpKSk7CisgICAgYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcHJvYywgSnVtcCwgT3JpZ2luKCksIEZy
ZXF1ZW50ZWRCbG9jayhkaXNwYXRjaCkpOworCisgICAgLy8gQWRkIDxvcGVyYW5kPjogYWRkcyA8
b3BlcmFuZD4gdG8gdGhlIHNsb3QgcG9pbnRlZCB0byBieSBEUC4KKyAgICBjb2RlUG9pbnRlclZh
bHVlID0gYWRkVG9EYXRhLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwg
T3JpZ2luKCksIGNvZGVQb2ludGVyKTsKKyAgICBkYXRhUG9pbnRlclZhbHVlID0gYWRkVG9EYXRh
LT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGRhdGFQ
b2ludGVyKTsKKyAgICBhZGRUb0RhdGEtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAg
IHByb2MsIFN0b3JlLCBPcmlnaW4oKSwKKyAgICAgICAgYWRkVG9EYXRhLT5hcHBlbmROZXc8VmFs
dWU+KAorICAgICAgICAgICAgcHJvYywgQjM6OkFkZCwgT3JpZ2luKCksCisgICAgICAgICAgICBh
ZGRUb0RhdGEtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgICAgICAgICAgcHJvYywg
TG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCksIGRhdGFQb2ludGVyVmFsdWUpLAorICAgICAg
ICAgICAgYWRkVG9EYXRhLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICAgICAgICAg
IHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLCBz
aXplb2YoaW50cHRyX3QpKSksCisgICAgICAgIGRhdGFQb2ludGVyVmFsdWUpOworICAgIGFkZFRv
RGF0YS0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAgICAgICBwcm9jLCBTZXQsIE9yaWdp
bigpLCBjb2RlUG9pbnRlciwKKyAgICAgICAgYWRkVG9EYXRhLT5hcHBlbmROZXc8VmFsdWU+KAor
ICAgICAgICAgICAgcHJvYywgQjM6OkFkZCwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUsCisg
ICAgICAgICAgICBhZGRUb0RhdGEtPmFwcGVuZEludENvbnN0YW50KHByb2MsIE9yaWdpbigpLCBw
b2ludGVyVHlwZSgpLCBzaXplb2YoaW50cHRyX3QpICogMikpKTsKKyAgICBhZGRUb0RhdGEtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxv
Y2soZGlzcGF0Y2gpKTsKKyAgICAKKyAgICAvLyBQcmludDogInByaW50cyIgdGhlIHZhbHVlIHBv
aW50ZWQgdG8gYnkgRFAuIFdoYXQgdGhpcyBhY3R1YWxseSBtZWFucyBpcyB0aGF0IHRoZSB2YWx1
ZSBpcworICAgIC8vIGFwcGVuZGVkIHRvIHRoZSBzdHJlYW0gdmVjdG9yIGJ5IHRoZSB0aHJlYWRl
ZEludGVycHJldGVyUHJpbnQgZnVuY3Rpb24uCisgICAgY29kZVBvaW50ZXJWYWx1ZSA9IHByaW50
LT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGNvZGVQ
b2ludGVyKTsKKyAgICBkYXRhUG9pbnRlclZhbHVlID0gcHJpbnQtPmFwcGVuZE5ldzxWYXJpYWJs
ZVZhbHVlPihwcm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwgZGF0YVBvaW50ZXIpOworICAgIHByaW50
LT5hcHBlbmROZXc8Q0NhbGxWYWx1ZT4oCisgICAgICAgIHByb2MsIFZvaWQsIE9yaWdpbigpLAor
ICAgICAgICBwcmludC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KAorICAgICAgICAgICAgcHJv
YywgT3JpZ2luKCksIGJpdHdpc2VfY2FzdDx2b2lkKj4odGhyZWFkZWRJbnRlcnByZXRlclByaW50
KSksCisgICAgICAgIGNvbnRleHQsCisgICAgICAgIHByaW50LT5hcHBlbmROZXc8TWVtb3J5VmFs
dWU+KHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLCBkYXRhUG9pbnRlclZhbHVl
KSk7CisgICAgcHJpbnQtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPigKKyAgICAgICAgcHJvYywg
U2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIsCisgICAgICAgIHByaW50LT5hcHBlbmROZXc8VmFs
dWU+KAorICAgICAgICAgICAgcHJvYywgQjM6OkFkZCwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFs
dWUsCisgICAgICAgICAgICBwcmludC0+YXBwZW5kSW50Q29uc3RhbnQocHJvYywgT3JpZ2luKCks
IHBvaW50ZXJUeXBlKCksIHNpemVvZihpbnRwdHJfdCkpKSk7CisgICAgcHJpbnQtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZGlz
cGF0Y2gpKTsKKyAgICAKKyAgICAvLyBTdG9wOiByZXR1cm5zLgorICAgIHN0b3AtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgICAg
ICBzdG9wLT5hcHBlbmRJbnRDb25zdGFudChwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwg
MCkpOworICAgIAorICAgIGF1dG8gaW50ZXJwcmV0ZXIgPSBjb21waWxlKHByb2MpOworICAgIAor
ICAgIENIRUNLKEFkZERQKTsKKyAgICBDSEVDSyhBZGRDUCk7CisgICAgQ0hFQ0soQWRkKTsKKyAg
ICBDSEVDSyhQcmludCk7CisgICAgQ0hFQ0soU3RvcCk7CisgICAgCisgICAgVmVjdG9yPGludHB0
cl90PiBkYXRhOworICAgIFZlY3RvcjxpbnRwdHJfdD4gY29kZTsKKyAgICBWZWN0b3I8aW50cHRy
X3Q+IHN0cmVhbTsKKyAgICAKKyAgICBkYXRhLmFwcGVuZCgxKTsKKyAgICBkYXRhLmFwcGVuZCgw
KTsKKyAgICAKKyAgICBpZiAoc2hvdWxkQmVWZXJib3NlKCkpCisgICAgICAgIGRhdGFMb2coImRh
dGEgPSAiLCBsaXN0RHVtcChkYXRhKSwgIlxuIik7CisgICAgCisgICAgLy8gV2UnbGwgd3JpdGUg
YSBwcm9ncmFtIHRoYXQgcHJpbnRzIHRoZSBudW1iZXJzIDEuLjEwMC4KKyAgICAvLyBXZSBleHBl
Y3QgRFAgdG8gcG9pbnQgYXQgIzAuCisgICAgY29kZS5hcHBlbmQoQWRkQ1ApOworICAgIGNvZGUu
YXBwZW5kKDYpOyAvLyBnbyB0byBsb29wIGJvZHkKKyAgICAKKyAgICAvLyBMb29wIHJlLWVudHJ5
OgorICAgIC8vIFdlIGV4cGVjdCBEUCB0byBwb2ludCBhdCAjMSBhbmQgZm9yICMxIHRvIGJlIG9m
ZnNldCBieSAtMTAwLgorICAgIGNvZGUuYXBwZW5kKEFkZCk7CisgICAgY29kZS5hcHBlbmQoMTAw
KTsKKyAgICAKKyAgICBjb2RlLmFwcGVuZChBZGREUCk7CisgICAgY29kZS5hcHBlbmQoLTEpOwor
ICAgIAorICAgIC8vIExvb3AgaGVhZGVyOgorICAgIC8vIFdlIGV4cGVjdCBEUCB0byBwb2ludCBh
dCAjMC4KKyAgICBjb2RlLmFwcGVuZChBZGREUCk7CisgICAgY29kZS5hcHBlbmQoMSk7CisgICAg
CisgICAgY29kZS5hcHBlbmQoQWRkKTsKKyAgICBjb2RlLmFwcGVuZCgxKTsKKyAgICAKKyAgICBj
b2RlLmFwcGVuZChQcmludCk7CisgICAgCisgICAgY29kZS5hcHBlbmQoQWRkKTsKKyAgICBjb2Rl
LmFwcGVuZCgtMTAwKTsKKyAgICAKKyAgICAvLyBXZSB3YW50IHRvIHN0b3AgaWYgaXQncyB6ZXJv
IGFuZCBjb250aW51ZSBpZiBpdCdzIG5vbi16ZXJvLiBBZGRDUCB0YWtlcyB0aGUgYnJhbmNoIGlm
IGl0J3MKKyAgICAvLyBub24temVyby4KKyAgICBjb2RlLmFwcGVuZChBZGRDUCk7CisgICAgY29k
ZS5hcHBlbmQoLTExKTsgLy8gZ28gdG8gbG9vcCByZS1lbnRyeS4KKyAgICAKKyAgICBjb2RlLmFw
cGVuZChTdG9wKTsKKyAgICAKKyAgICBpZiAoc2hvdWxkQmVWZXJib3NlKCkpCisgICAgICAgIGRh
dGFMb2coImNvZGUgPSAiLCBsaXN0RHVtcChjb2RlKSwgIlxuIik7CisgICAgCisgICAgQ0hFQ0so
IWludm9rZTxpbnRwdHJfdD4oKmludGVycHJldGVyLCBkYXRhLmRhdGEoKSwgY29kZS5kYXRhKCks
ICZzdHJlYW0pKTsKKyAgICAKKyAgICBDSEVDSyhzdHJlYW0uc2l6ZSgpID09IDEwMCk7CisgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDEwMDsgKytpKQorICAgICAgICBDSEVDSyhzdHJlYW1b
aV0gPT0gaSArIDEpOworICAgIAorICAgIGlmIChzaG91bGRCZVZlcmJvc2UoKSkKKyAgICAgICAg
ZGF0YUxvZygic3RyZWFtID0gIiwgbGlzdER1bXAoc3RyZWFtKSwgIlxuIik7Cit9CisKIC8vIE1h
a2Ugc3VyZSB0aGUgY29tcGlsZXIgZG9lcyBub3QgdHJ5IHRvIG9wdGltaXplIGFueXRoaW5nIG91
dC4KIE5FVkVSX0lOTElORSBkb3VibGUgemVybygpCiB7CkBAIC0xMzQ1NCw2ICsxMzY5MCw4IEBA
IHZvaWQgcnVuKGNvbnN0IGNoYXIqIGZpbHRlcikKICAgICBSVU4odGVzdFNwaWxsVXNlTGFyZ2Vy
VGhhbkRlZigpKTsKIAogICAgIFJVTih0ZXN0TGF0ZVJlZ2lzdGVyKCkpOworICAgIAorICAgIFJV
Tih0ZXN0VGhyZWFkZWRJbnRlcnByZXRlcigpKTsKIAogICAgIGlmICh0YXNrcy5pc0VtcHR5KCkp
CiAgICAgICAgIHVzYWdlKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fp
ckNvZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNv
ZGUuaAkocmV2aXNpb24gMjAxODI3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9B
aXJDb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJBaXJT
cGVjaWFsLmgiCiAjaW5jbHVkZSAiQWlyU3RhY2tTbG90LmgiCiAjaW5jbHVkZSAiQWlyVG1wLmgi
CisjaW5jbHVkZSAiQjNJbmRleE1hcC5oIgogI2luY2x1ZGUgIkIzU3BhcnNlQ29sbGVjdGlvbi5o
IgogI2luY2x1ZGUgIlJlZ2lzdGVyQXRPZmZzZXRMaXN0LmgiCiAjaW5jbHVkZSAiU3RhY2tBbGln
bm1lbnQuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJh
dGUuY3BwCShyZXZpc2lvbiAyMDE4MjcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0FpckdlbmVyYXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgsMTAgKzQ4LDEzIEBACiAjaW5j
bHVkZSAiQWlyVmFsaWRhdGUuaCIKICNpbmNsdWRlICJCM0NvbW1vbi5oIgogI2luY2x1ZGUgIkIz
SW5kZXhNYXAuaCIKKyNpbmNsdWRlICJCM1BvbHlKdW1wVmFsdWUuaCIKICNpbmNsdWRlICJCM1By
b2NlZHVyZS5oIgogI2luY2x1ZGUgIkIzVGltaW5nU2NvcGUuaCIKKyNpbmNsdWRlICJCM1ZhbHVl
SW5saW5lcy5oIgogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgogI2luY2x1ZGUgIkRpc2FsbG93
TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZS5oIgorI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKIAog
bmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7IG5hbWVzcGFjZSBBaXIgewogCkBAIC0xOTYs
NyArMTk5LDggQEAgdm9pZCBnZW5lcmF0ZShDb2RlJiBjb2RlLCBDQ2FsbEhlbHBlcnMmIAogCiAg
ICAgZm9yIChCYXNpY0Jsb2NrKiBibG9jayA6IGNvZGUpIHsKICAgICAgICAgYmxvY2tKdW1wc1ti
bG9ja10ubGluaygmaml0KTsKLSAgICAgICAgYmxvY2tMYWJlbHNbYmxvY2tdID0gaml0LmxhYmVs
KCk7CisgICAgICAgIENDYWxsSGVscGVyczo6TGFiZWwgbGFiZWwgPSBqaXQubGFiZWwoKTsKKyAg
ICAgICAgYmxvY2tMYWJlbHNbYmxvY2tdID0gbGFiZWw7CiAgICAgICAgIEFTU0VSVChibG9jay0+
c2l6ZSgpID49IDEpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYmxvY2stPnNp
emUoKSAtIDE7ICsraSkgewogICAgICAgICAgICAgSW5zdCYgaW5zdCA9IGJsb2NrLT5hdChpKTsK
QEAgLTIyOCwyNiArMjMyLDU0IEBAIHZvaWQgZ2VuZXJhdGUoQ29kZSYgY29kZSwgQ0NhbGxIZWxw
ZXJzJiAKICAgICAgICAgICAgIGFkZEl0ZW0oYmxvY2stPmxhc3QoKSk7CiAgICAgICAgICAgICBj
b250aW51ZTsKICAgICAgICAgfQotCisgICAgICAgIAogICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1
bXAganVtcCA9IGJsb2NrLT5sYXN0KCkuZ2VuZXJhdGUoaml0LCBjb250ZXh0KTsKLSAgICAgICAg
c3dpdGNoIChibG9jay0+bnVtU3VjY2Vzc29ycygpKSB7Ci0gICAgICAgIGNhc2UgMDoKLSAgICAg
ICAgICAgIEFTU0VSVCghanVtcC5pc1NldCgpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICBjYXNlIDE6Ci0gICAgICAgICAgICBsaW5rKGp1bXAsIGJsb2NrLT5zdWNjZXNzb3JCbG9jaygw
KSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAyOgotICAgICAgICAgICAgbGlu
ayhqdW1wLCBibG9jay0+c3VjY2Vzc29yQmxvY2soMCkpOwotICAgICAgICAgICAgaWYgKGJsb2Nr
LT5zdWNjZXNzb3JCbG9jaygxKSAhPSBjb2RlLmZpbmROZXh0QmxvY2soYmxvY2spKQotICAgICAg
ICAgICAgICAgIGxpbmsoaml0Lmp1bXAoKSwgYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDEpKTsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgUkVMRUFTRV9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICAvLyBUaGUg
anVtcCB3b24ndCBiZSBzZXQgZm9yIFBvbHlKdW1wIGJlY2F1c2UgaXQgbGV0cyBpdHMgZmFpdGgg
aW4gdGhlIGFkZHJlc3Mgb3BlcmFuZAorICAgICAgICAvLyBndWlkZSB3aGVyZSBpdCBqdW1wcy4g
SXQgd29uJ3QgYmUgc2V0IGZvciBPb3BzIGJlY2F1c2UgdGhlbiBpdCB3b24ndCBoYXZlIGFueSBz
dWNjZXNzb3JzLgorICAgICAgICBpZiAoanVtcC5pc1NldCgpKSB7CisgICAgICAgICAgICBzd2l0
Y2ggKGJsb2NrLT5udW1TdWNjZXNzb3JzKCkpIHsKKyAgICAgICAgICAgIGNhc2UgMToKKyAgICAg
ICAgICAgICAgICBsaW5rKGp1bXAsIGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKSk7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICAgICAgbGlu
ayhqdW1wLCBibG9jay0+c3VjY2Vzc29yQmxvY2soMCkpOworICAgICAgICAgICAgICAgIGlmIChi
bG9jay0+c3VjY2Vzc29yQmxvY2soMSkgIT0gY29kZS5maW5kTmV4dEJsb2NrKGJsb2NrKSkKKyAg
ICAgICAgICAgICAgICAgICAgbGluayhqaXQuanVtcCgpLCBibG9jay0+c3VjY2Vzc29yQmxvY2so
MSkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGFkZEl0ZW0oYmxvY2st
Pmxhc3QoKSk7CiAgICAgfQorICAgIAorICAgIC8vIFRha2UgY2FyZSBvZiBQb2x5SnVtcC4gV2Ug
ZG8gdGhpcyBsYXN0IGJlY2F1c2UgaXQgcmVsaWVzIG9uIGtub3dpbmcgd2hlcmUgYWxsIG9mIHRo
ZSBiYXNpYworICAgIC8vIGJsb2NrIGxhbmRlZC4KKyAgICBmb3IgKEJhc2ljQmxvY2sqIGJsb2Nr
IDogY29kZSkgeworICAgICAgICBpZiAoYmxvY2stPmxhc3QoKS5vcGNvZGUgIT0gUG9seUp1bXAp
CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgCisgICAgICAgIFBvbHlKdW1wVmFsdWUq
IHBvbHlKdW1wID0gYmxvY2stPmxhc3QoKS5vcmlnaW4tPmFzPFBvbHlKdW1wVmFsdWU+KCk7Cisg
ICAgICAgIFJFTEVBU0VfQVNTRVJUKHBvbHlKdW1wLT5udW1TdWNjZXNzb3JzKCkgPT0gYmxvY2st
Pm51bVN1Y2Nlc3NvcnMoKSk7CisgICAgICAgIAorICAgICAgICBSZWZQdHI8U2hhcmVkVGFzazxQ
b2x5SnVtcFZhbHVlOjpDYWxsYmFja0Z1bmN0aW9uVHlwZT4+IHRhc2sgPSBwb2x5SnVtcC0+Y2Fs
bGJhY2tUYXNrKCk7CisgICAgICAgIGlmICghdGFzaykKKyAgICAgICAgICAgIGNvbnRpbnVlOyAv
LyBUaGlzIHdvdWxkIGJlIHdlaXJkLCBidXQgd2UgYWxsb3cgaXQuCisgICAgICAgIAorICAgICAg
ICBWZWN0b3I8Q0NhbGxIZWxwZXJzOjpMYWJlbD4gbGFiZWxzOworICAgICAgICBmb3IgKEJhc2lj
QmxvY2sqIHN1Y2Nlc3NvciA6IGJsb2NrLT5zdWNjZXNzb3JCbG9ja3MoKSkKKyAgICAgICAgICAg
IGxhYmVscy5hcHBlbmQoYmxvY2tMYWJlbHNbc3VjY2Vzc29yXSk7CisgICAgICAgIAorICAgICAg
ICBqaXQuYWRkTGlua1Rhc2soCisgICAgICAgICAgICBbPV0gKExpbmtCdWZmZXImIGxpbmtCdWZm
ZXIpIHsKKyAgICAgICAgICAgICAgICBWZWN0b3I8TWFjcm9Bc3NlbWJsZXJDb2RlUHRyPiBwb2lu
dGVyczsKKyAgICAgICAgICAgICAgICBmb3IgKENDYWxsSGVscGVyczo6TGFiZWwgbGFiZWwgOiBs
YWJlbHMpCisgICAgICAgICAgICAgICAgICAgIHBvaW50ZXJzLmFwcGVuZChsaW5rQnVmZmVyLmxv
Y2F0aW9uT2YobGFiZWwpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB0YXNr
LT5ydW4ocG9pbnRlcnMpOworICAgICAgICAgICAgfSk7CisgICAgfQogCiAgICAgcGNUb09yaWdp
bk1hcC5hcHBlbmRJdGVtKGppdC5sYWJlbCgpLCBPcmlnaW4oKSk7CiAgICAgLy8gRklYTUU6IE1h
a2UgbGF0ZSBwYXRocyBoYXZlIE9yaWdpbnM6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTM2ODkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWly
SW5zdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJ
bnN0LmNwcAkocmV2aXNpb24gMjAxODI3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fp
ci9BaXJJbnN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDUsNiArNDUsMTEgQEAgYm9vbCBJbnN0
OjpoYXNBcmdFZmZlY3RzKCkKICAgICByZXR1cm4gcmVzdWx0OwogfQogCitib29sIEluc3Q6Omlz
Q2xvbmVhYmxlKCkKK3sKKyAgICByZXR1cm4gIW9yaWdpbiB8fCBvcmlnaW4tPmlzQ2xvbmVhYmxl
KCk7Cit9CisKIHVuc2lnbmVkIEluc3Q6OmpzSGFzaCgpIGNvbnN0CiB7CiAgICAgdW5zaWduZWQg
cmVzdWx0ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG9wY29kZSk7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0Fpckluc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvYWlyL0Fpckluc3QuaAkocmV2aXNpb24gMjAxODI3KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTE4OCw2ICsx
ODgsMTAgQEAgcHVibGljOgogICAgIC8vIHJldHVybnMgMiBpZiAwIGFuZCAxIGJlbmVmaXQgZnJv
bSBhbGlhc2luZyB0byBUbXAzLgogICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBzaG91bGRUcnlBbGlh
c2luZ0RlZigpOwogICAgIAorICAgIC8vIFNvbWUgaW5zdHVjdGlvbnMgd2lsbCByZWZ1c2UgdG8g
YWxsb3cgY2xvbmluZy4gSWYgdGhpcyByZXR1cm5zIGZhbHNlLCB5b3UgbXVzdCBtYWtlIHN1cmUg
dGhhdAorICAgIC8vIHlvdSBuZXZlciBpbnRyb2R1Y2UgY29waWVzIG9mIHRoZSBpbnN0cnVjdGlv
bi4KKyAgICBib29sIGlzQ2xvbmVhYmxlKCk7CisgICAgCiAgICAgLy8gVGhpcyBjb21wdXRlcyBh
IGhhc2ggZm9yIGNvbXBhcmluZyB0aGlzIHRvIEpTQWlyJ3MgSW5zdC4KICAgICB1bnNpZ25lZCBq
c0hhc2goKSBjb25zdDsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJP
cGNvZGUub3Bjb2Rlcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0Fpck9wY29kZS5vcGNvZGVzCShyZXZpc2lvbiAyMDE4MjcpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzCSh3b3JraW5nIGNvcHkpCkBAIC04MzUsNiAr
ODM1LDE0IEBAIE1vdmVEb3VibGVDb25kaXRpb25hbGx5RmxvYXQgVTpHOjMyLCBVOkYKIAogSnVt
cCAvYnJhbmNoCiAKKyMgVGhpcyBtYXNxdWVyYWRlcyBhcyBhIG5vbi1icmFuY2ggdGVybWluYWwg
YmVjYXVzZSBpdCBkb2Vzbid0IG5lZWQgdGhlIHRyYWRpdGlvbmFsIHNvcnQgb2YgbGlua2luZy4K
KyMgIkJyYW5jaCIgaW4gdGhpcyBjb250ZXh0IGp1c3QgbWVhbnMgdGhhdCBpdCdzIGEgdGVybWlu
YWwgdGhhdCByZXR1cm5zIGEgSnVtcCB0aGF0IG5lZWRzIHRvIGJlCisjIGxpbmtlZC4gSW5zdGVh
ZCwgQWlyOjpnZW5lcmF0ZSgpIGhhcyBhIHNwZWNpYWwtY2FzZSBmb3IgUG9seUp1bXAuCitQb2x5
SnVtcCBVOkc6UHRyIC90ZXJtaW5hbAorICAgIFRtcCBhcyBqdW1wCisgICAgeDg2OiBBZGRyIGFz
IGp1bXAKKyAgICB4ODY6IEluZGV4IGFzIGp1bXAKKwogUmV0MzIgVTpHOjMyIC9yZXR1cm4KICAg
ICBUbXAKIApJbmRleDogV2Vic2l0ZXMvd2Via2l0Lm9yZy9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2Vic2l0ZXMvd2Via2l0Lm9yZy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMTgyNykKKysrIFdl
YnNpdGVzL3dlYmtpdC5vcmcvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTYtMDUtMjkgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAg
ICBJbXBsZW1lbnQgdGFibGUtYmFzZWQgc3dpdGNoZXMgaW4gQjMvQWlyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTExNDEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFVwZGF0ZSBkb2N1bWVu
dGF0aW9uIGZvciB0aGUgbmV3IFBvbHlKdW1wIG9wY29kZS4KKworICAgICAgICAqIGRvY3MvYjMv
aW50ZXJtZWRpYXRlLXJlcHJlc2VudGF0aW9uLmh0bWw6CisKIDIwMTYtMDYtMDIgIERlYW4gSmFj
a3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSB0aGUgZXhhbXBsZSBmb3Ig
d2lkZXIgY29sb3IgZ2FtdXQgaW1hZ2VzLgpJbmRleDogV2Vic2l0ZXMvd2Via2l0Lm9yZy9kb2Nz
L2IzL2ludGVybWVkaWF0ZS1yZXByZXNlbnRhdGlvbi5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNp
dGVzL3dlYmtpdC5vcmcvZG9jcy9iMy9pbnRlcm1lZGlhdGUtcmVwcmVzZW50YXRpb24uaHRtbAko
cmV2aXNpb24gMjAxODI3KQorKysgV2Vic2l0ZXMvd2Via2l0Lm9yZy9kb2NzL2IzL2ludGVybWVk
aWF0ZS1yZXByZXNlbnRhdGlvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01MzcsNiArNTM3LDM5
IEBAIHBhdGNocG9pbnQtPnNldEdlbmVyYXRvcigKICAgICAgICAgYWxzbyBjb250YWlucyBhIGZh
bGwtdGhyb3VnaCB0YXJnZXQgaW4gY2FzZSB0aGUgY2hpbGQgaGFzIGEgdmFsdWUgdGhhdCB3YXNu
J3QgbWVudGlvbmVkCiAgICAgICAgIGluIHRoZSBjYXNlcyBsaXN0LiAgTXVzdCB1c2UgdGhlIFN3
aXRjaFZhbHVlIGNsYXNzLiAgTXVzdCBhcHBlYXIgYXQgdGhlIGVuZCBvZiB0aGUgYmFzaWMKICAg
ICAgICAgYmxvY2suPC9kZD4KKyAgICAgIAorICAgICAgPGR0PlZvaWQgUG9seUp1bXAoSW50UHRy
LCBibG9ja3MuLi4pPC9kdD4KKyAgICAgIDxkZD4KKyAgICAgICAgPHA+SnVtcHMgdG8gdGhlIGdp
dmVuIGFkZHJlc3MuIFRoZSBjb21waWxlciB3aWxsIGFzc3VtZSB0aGF0IHRoaXMganVtcHMgdG8g
b25lIG9mIHRoZSBnaXZlbgorICAgICAgICAgIGJsb2Nrcy4gVGhlIGNvbXBpbGVyIG1ha2VzIG5v
IGF0dGVtcHQgdG8gcHJvdmUgb3IgdmFsaWRhdGUgdGhhdCB0aGUgcGFzc2VkIGp1bXAgYWRkcmVz
cyBpcworICAgICAgICAgIGFjdHVhbGx5IHRoZSBhZGRyZXNzIG9mIGFueSBvZiB0aG9zZSBibG9j
a3MuIE5vbnNlbnNpY2FsIHRoaW5ncyB3aWxsIGhhcHBlbiBpZiB0aGUgcGFzc2VkCisgICAgICAg
ICAgYWRkcmVzcyBpcyBub3QgdGhlIGFkZHJlc3Mgb2Ygb25lIG9mIHRoZSBibG9ja3MgaW4gdGhl
IHN1Y2Nlc3NvciBsaXN0LiBZb3UgY2FuIGFycmFuZ2UgdG8KKyAgICAgICAgICBnZXQgdGhlIGFk
ZHJlc3NlcyBvZiBibG9ja3MgYnkgcGFzc2luZyBhIGNhbGxiYWNrIHRvIFBvbHlKdW1wLiBUaGlz
IGlzIHVzZWQgaW50ZXJuYWxseQorICAgICAgICAgIGZvciBsb3dlcmluZyBTd2l0Y2ggb3Bjb2Rl
cy4gWW91IGNhbiBhbHNvIHVzZSBpdCBkaXJlY3RseS48L3A+CisgICAgICAKKyAgICAgICAgPHA+
UG9seUp1bXAgaXMgbm90IGNsb25lYWJsZS4gRm9yIGVhY2ggUG9seUp1bXAgeW91IGNyZWF0ZSwg
dGhlcmUgd2lsbCBiZSBvbmUgaW5kaXJlY3QKKyAgICAgICAgICBqdW1wIGdlbmVyYXRlZC4gVGhp
cyBpcyBuZWNlc3NhcnkgdG8gZW5zdXJlIHNvdW5kbmVzcyBvZiB0aGUgY2FsbGJhY2suIElmIHRo
ZSBQb2x5SnVtcAorICAgICAgICAgIGNvdWxkIGJlIGNsb25lZCwgdGhlbiB0aGUgY2FsbGJhY2sg
d291bGQgZ2V0IGNhbGxlZCBmb3IgZWFjaCBjbG9uZS4gUHJlc3VtYWJseSwgeW91J2QKKyAgICAg
ICAgICBpbXBsZW1lbnQgdGhlIGNhbGxiYWNrIGJ5IHBvcHVsYXRpbmcgc29tZSB0YWJsZSB3aXRo
IHRoZSBhZGRyZXNzZXMgb2YgdGhlIGJsb2Nrcy4gSWYgdGhlCisgICAgICAgICAgY2FsbGJhY2sg
Z2V0cyBjYWxsZWQgbXVsdGlwbGUgdGltZXMgdGhlbiBpdCBtYXkgcmV0dXJuIGRpZmZlcmVudCBh
ZGRyZXNzZXMgZWFjaCB0aW1lIC0KKyAgICAgICAgICBzaW5jZSBhZnRlciBjbG9uaW5nIGEgUG9s
eUp1bXAsIHRoZSBjb21waWxlciBtYXkgcmV0YXJnZXQgYW55IG9mIGl0cyBzdWNjZXNzb3IgZWRn
ZXMuCisgICAgICAgICAgVGhpcyB3b3VsZCBiZSBjb25mdXNpbmcsIHNpbmNlIHRoZW4geW91IHdv
dWxkbid0IGtub3cgd2hhdCB0byBkbyB3aXRoIGRpc2NyZXBhbmNpZXMgYmV0d2VlbgorICAgICAg
ICAgIGFkZHJlc3NlcyByZXR1cm5lZCBieSB0aGUgdmFyaW91cyBjYWxscyB0byB0aGUgY2FsbGJh
Y2suIERpc2FsbG93aW5nIGNsb25pbmcgb2YgUG9seUp1bXAKKyAgICAgICAgICBzb2x2ZXMgdGhp
cyBwcm9ibGVtLjwvcD4KKyAgICAgICAgCisgICAgICAgIDxwPkEgY2xvc2VseSByZWxhdGVkIHBy
b2JsZW0gaXMgdGhhdCBpZiB5b3UgZW1pdCBtdWx0aXBsZSBQb2x5SnVtcCBpbnN0cnVjdGlvbnMs
IHRoZW4gZXZlbgorICAgICAgICAgIGlmIHRoZXkgaW5pdGlhbGx5IHNoYXJlIHRoZSBzYW1lIHN1
Y2Nlc3NvcnMsIHlvdSBjYW5ub3QgZ3VhcmFudGVlIHRoYXQgdGhleSB3aWxsIGNvbnRpbnVlCisg
ICAgICAgICAgdG8gc2hhcmUgdGhlIHNhbWUgc3VjY2Vzc29ycyBhZnRlciBvcHRpbWl6YXRpb24u
IFRoaXMgbWVhbnMgdGhhdCBQb2x5SnVtcCBjYW5ub3QKKyAgICAgICAgICBjdXJyZW50bHkgYmUg
dXNlZCBmb3IgaW1wbGVtZW50aW5nIGRpcmVjdCB0aHJlYWRlZCBpbnRlcnByZXRlcnMsIGF0IGxl
YXN0IG5vdCB0aGUgY2xhc3NpYworICAgICAgICAgIGtpbmQ6IHRvIG1ha2UgaXQgd29yaywgeW91
IGhhdmUgdG8gaGF2ZSBhIHNoYXJlZCBkaXNwYXRjaCBibG9jayBzbyB0aGF0IHlvdSBoYXZlIGEg
c2luZ2xlCisgICAgICAgICAgUG9seUp1bXAuIFRoaXMgbWlnaHQgYmUgYmV0dGVyIHRoYW4gYSBT
d2l0Y2gtYmFzZWQgaW50ZXJwcmV0ZXIsIGJ1dCBpdCdzIGRlZmluaXRlbHkgbm90CisgICAgICAg
ICAgYXMgZ29vZCBhcyB3aGF0IHlvdSdkIGdldCB3aXRoIEdDQy1zdHlsZSBjb21wdXRlZCBnb3Rv
LjwvcD4KKyAgICAgICAgCisgICAgICAgIDxwPlBvbHlKdW1wIGlzIHNvIG5hbWVkIHRvIGF2b2lk
IGNvbmZ1c2lvbiB3aXRoIGNvbXB1dGVkIGdvdG9zIGFuZCBpbmRpcmVjdCBicmFuY2hlcyBpbgor
ICAgICAgICAgIG90aGVyIGNvbXBpbGVycy4gSXQgaGFzIHNpZ25pZmljYW50IHJlc3RyaWN0aW9u
cyB0aGF0IHRob3NlIG9wZXJhdGlvbnMgZG8gbm90IGhhdmUuIFRoZXNlCisgICAgICAgICAgcmVz
dHJpY3Rpb25zIG1ha2UgaXQgZWFzaWVyIGZvciB0aGUgb3B0aW1pemVyIHRvIHdvcmsgd2l0aCBz
aW5jZSB0aGUgY29udHJvbCBmbG93IGdldHMgdG8KKyAgICAgICAgICBiZSBleHBsaWNpdCAoUG9s
eUp1bXAgaGFzIGEgZmluaXRlIHNldCBvZiBzdWNjZXNzb3JzIGxpa2UgYW55IG90aGVyIGJsb2Nr
IHRlcm1pbmFsKS48L3A+CisgICAgICA8L2RkPgogCiAgICAgICA8ZHQ+Vm9pZCBSZXR1cm4oVCk8
L2R0PgogICAgICAgPGRkPldvcmtzIGZvciBhbnkgdHlwZSBleGNlcHQgVm9pZC4gIFJldHVybnMg
dGhlIGdpdmVuIHZhbHVlIGFuZCB0ZXJtaW5hdGVzIHRoZSBwcm9jZWR1cmUuCkluZGV4OiBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShy
ZXZpc2lvbiAyMDE4MjcpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwxNSBAQAorMjAxNi0wNS0yOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUu
Y29tPgorCisgICAgICAgIEltcGxlbWVudCB0YWJsZS1iYXNlZCBzd2l0Y2hlcyBpbiBCMy9BaXIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTE0MQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICoganMvcmVn
cmVzcy9iaWdzd2l0Y2gtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNz
L2JpZ3N3aXRjaC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0
cy9iaWdzd2l0Y2guanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKwogMjAxNi0wNi0wNyAgUnlv
c3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjAx
NjY3KTogQVNTRVJUSU9OIEZBSUxFRDogIW1fYW5jaG9yTm9kZSB8fCAhZWRpdGluZ0lnbm9yZXND
b250ZW50KCptX2FuY2hvck5vZGUpCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3
aXRjaC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9i
aWdzd2l0Y2gtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9iaWdzd2l0Y2gtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAg
QEAKK0pTUmVncmVzcy9iaWdzd2l0Y2gKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dp
dGNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2gu
aHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElD
ICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYmlnc3dpdGNoLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2Jp
Z3N3aXRjaC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10
ZXN0cy9iaWdzd2l0Y2guanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L3NjcmlwdC10ZXN0cy9iaWdzd2l0Y2guanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMTEg
QEAKK2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCAxMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHZhbHVlID0gaSAmIDYzOworICAg
ICAgICBzd2l0Y2ggKHZhbHVlKSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLmE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAg
ICAgcmVzdWx0ICs9IG8uYjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6Cisg
ICAgICAgICAgICByZXN1bHQgKz0gby5jOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgMzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmQ7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSA0OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIDU6CisgICAgICAgICAgICByZXN1bHQgKz0gby5mOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA3OgorICAgICAgICAgICAgcmVzdWx0
ICs9IG8uaDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDg6CisgICAgICAgICAg
ICByZXN1bHQgKz0gby5pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgOToKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSAxMDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSAxMToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSAxMjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxMzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
LmM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxNDoKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLmQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxNToKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAx
NjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmY7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSAxNzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSAxODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxOToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyMDoKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyMToKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyMjoK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSAyMzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSAyNDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSAyNToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmM7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyNjoKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLmQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyNzoKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyODoKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLmY7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSAyOToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSAzMDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSAzMToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzMjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
Lmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzMzoKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzNDoKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAz
NToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSAzNjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSAzNzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmM7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzOToKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLmQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0MDoKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0MToK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmY7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSA0MjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSA0MzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSA0NDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0NToKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0NjoKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0NzoKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSA0ODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSA0OToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSA1MDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1MToKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
Lms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1MjoKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLmE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1MzoKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1
NDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmM7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSA1NToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmQ7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSA1NjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmU7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1NzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmY7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1ODoKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1OToKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA2MDoK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSA2MToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSA2MjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLno7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gcmVzdWx0Owor
fQorCisoZnVuY3Rpb24oKSB7CisgICAgdmFyIG8gPSB7YToxLCBiOjIsIGM6MywgZDo0LCBlOjUs
IGY6NiwgZzo3LCBoOjgsIGk6OSwgajoxMCwgazoxMSwgejoxMDB9OworICAgIHZhciByZXN1bHQg
PSAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKKyAgICAgICAgcmVzdWx0
ICs9IGZvbyhvKTsKKyAgICBpZiAocmVzdWx0ICE9IDc5NjYwMDAwKQorICAgICAgICB0aHJvdyAi
RXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9KSgpOworCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281153</attachid>
            <date>2016-06-12 20:42:28 -0700</date>
            <delta_ts>2016-06-16 14:47:25 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>70812</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAxOTg1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2NiBA
QAorMjAxNi0wNS0yOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IEltcGxlbWVudCB0YWJsZS1iYXNlZCBzd2l0Y2hlcyBpbiBCMy9BaXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTE0MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgSWYgYSBzd2l0Y2ggc3Rh
dGVtZW50IGdldHMgbGFyZ2UsIGl0J3MgYmV0dGVyIHRvIGV4cHJlc3MgaXQgYXMgYW4gaW5kaXJl
Y3QganVtcCByYXRoZXIgdGhhbgorICAgICAgICB1c2luZyBhIGJpbmFyeSBzd2l0Y2ggKGRpdmlk
ZS1hbmQtY29ucXVlciB0cmVlIG9mIGNvbXBhcmlzb25zIGxlYWRpbmcgdG8gTyhsb2cgbikgYnJh
bmNoZXMgdG8KKyAgICAgICAgZ2V0IHRvIHRoZSBzd2l0Y2ggY2FzZSkuIFdoZW4gZGVhbGluZyB3
aXRoIGludGVnZXIgc3dpdGNoZXMsIEZUTCB3aWxsIGFscmVhZHkgdXNlIHRoZSBCMworICAgICAg
ICBTd2l0Y2ggYW5kIGV4cGVjdCB0aGlzIHRvIGdldCBsb3dlcmVkIGFzIGVmZmljaWVudGx5IGFz
IHBvc3NpYmxlOyBpdCdzIGEgYnVnIHRoYXQgQjMgd2lsbAorICAgICAgICBhbHdheXMgdXNlIGEg
YmluYXJ5IHN3aXRjaCByYXRoZXIgdGhhbiBpbmRpcmVjdCBqdW1wcy4gV2hlbiBkZWFsaW5nIHdp
dGggc3dpdGNoZXMgb3ZlciBzb21lCisgICAgICAgIG1vcmUgc29waGlzdGljYXRlZCB0eXBlcywg
d2UnZCB3YW50IEZUTCB0byBidWlsZCBhbiBpbmRpcmVjdCBqdW1wIHRhYmxlIGl0c2VsZiBhbmQg
dXNlCisgICAgICAgIHNvbWV0aGluZyBsaWtlIGEgaGFzaHRhYmxlIHRvIGZlZWQgaXQuIEluIHRo
YXQgY2FzZSwgdGhlcmUgd2lsbCBiZSBubyBCMyBTd2l0Y2g7IHdlJ2xsIHdhbnQKKyAgICAgICAg
c29tZSBraW5kIG9mIGluZGlyZWN0IGp1bXAgaW5zdHJ1Y3Rpb24uCisgICAgICAgIAorICAgICAg
ICBUaGlzIGltcGxpZXMgdGhhdCB3ZSB3YW50IEIzIHRvIGhhdmUgdGhlIGFiaWxpdHkgdG8gbG93
ZXIgU3dpdGNoIHRvIGluZGlyZWN0IGp1bXBzIGFuZCB0bworICAgICAgICBleHBvc2UgdGhvc2Ug
aW5kaXJlY3QganVtcHMgaW4gSVIgc28gdGhhdCB0aGUgRlRMIGNvdWxkIGRvIGl0cyBvd24gaW5k
aXJlY3QganVtcHMgZm9yCisgICAgICAgIHN3aXRjaGVzIG92ZXIgbW9yZSBjb21wbGljYXRlZCB0
aGluZ3MgbGlrZSBzdHJpbmdzLiBUaGlzIGNoYW5nZSBpbnRyb2R1Y2VzIGFuIGluZGlyZWN0IGp1
bXAKKyAgICAgICAgaW5zdHJ1Y3Rpb24gdG8gQjMgYW5kIGNhbGxzIGl0IFBvbHlKdW1wLiBJdCBo
YXMgc29tZSB1bmlxdWUgc2VtYW50aWNzIHRoYXQgbWFrZSBpdCB2ZXJ5CisgICAgICAgIGRpZmZl
cmVudCBmcm9tICJpbmRpcmVjdCBqdW1wcyIsICJpbmRpcmVjdCBicmFuY2hlcyIsIGFuZCAiY29t
cHV0ZWQgZ290b3MiIC0gYWxsIHRlcm1zIG9mIGFydAorICAgICAgICB1c2VkIGluIG90aGVyIGNv
bXBpbGVycy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaW1wbGVtZW50cyB0aGUgbW9zdCBiYXNp
YyBraW5kIG9mIFN3aXRjaC10by1Qb2x5SnVtcCBsb3dlcmluZyBpbiBCMzo6bG93ZXJNYWNyb3Mo
KS4gQXMKKyAgICAgICAgcGFydCBvZiB0aGUgZXhpc3RpbmcgZGl2aWRlLWFuZC1jb25xdWVyIHRo
YXQgY3JlYXRlcyBicmFuY2hlcywgaWYgaXQgZGV0ZWN0cyB0aGF0IHRoZSBzZXQgb2YKKyAgICAg
ICAgY2FzZXMgc2F0aXNmaWVzIHNvbWUgY29uZGl0aW9ucyAoZGVuc2l0eSBvZiBjYXNlIHZhbHVl
cyBhbmQgdG90YWwgc2l6ZSksIHRoZW4gaXQgd2lsbCBlbWl0IGEKKyAgICAgICAgUG9seUp1bXAu
CisgICAgICAgIAorICAgICAgICBUaGUgcHJvYmxlbSB3aXRoIGNsYXNzaWMgaW5kaXJlY3QganVt
cHMgaXMgdGhhdCB0aGV5IGZvcmNlIHRoZSBjb21waWxlciB0byBiZSBjb25zZXJ2YXRpdmUKKyAg
ICAgICAgYWJvdXQgY29udHJvbCBmbG93LiBUaGUgY29tcGlsZXIgbXVzdCBhc3N1bWUgdGhhdCB0
aGUgaW5kaXJlY3QganVtcCBtYXkgdHJhbnNmZXIgY29udHJvbCBmbG93CisgICAgICAgIHRvIGFu
eSBlc2NhcGVkIGJsb2NrIChibG9jayBsYWJlbGVkIGFzIGJlaW5nIGEgcG9zc2libGUgdGFyZ2V0
IGZvciBpbmRpcmVjdCBqdW1wcywgb3IgaWYgbm8KKyAgICAgICAgc3VjaCBsYWJlbGluZyBpcyBh
dmFpbGFibGUsIHRoZSBjb21waWxlciBtdXN0IGFzc3VtZSB0aGF0IGl0IG1heSB0YXJnZXQgYW55
IGJsb2NrKS4gVGhlIHdvcnN0CisgICAgICAgIHBhcnQgaXMgdGhhdCB0aGUgaW1wbGljaXQgY29u
dHJvbCBmbG93IGVkZ2VzIGZyb20gdGhlIGluZGlyZWN0IGp1bXAgdG8gdGhlIGVzY2FwZWQgYmxv
Y2tzCisgICAgICAgIGNhbm5vdCBiZSBicm9rZW4uIFRoaXMgaW52YWxpZGF0ZXMgYSBwcmluY2lw
bGUgb2YgQjMgSVI6IGFueSBwaGFzZSBtYXkgYnJlYWsgYW55IGNyaXRpY2FsCisgICAgICAgIGVk
Z2UgZm9yIGFueSByZWFzb24uIE91ciBTU0EgY29udmVyc2lvbiB3b3VsZCBicmVhayBpZiB3ZSBy
ZXZva2VkIHRoaXMgZmVhdHVyZS4gSXQncyBhY3R1YWxseQorICAgICAgICBtdWNoIHdvcnNlIHRo
YW4gdGhpcyAtIGJhc2ljYWxseSBhbnkgbG9naWMgb3ZlciBjb250cm9sIGZsb3cgd291bGQgaGF2
ZSB0byBiZSBoYWNrZWQgdG8gZGVhbAorICAgICAgICB3aXRoIHRoZXNlIHVuYnJlYWthYmxlIGVk
Z2VzLiBUaGlzIHdvdWxkIG1lYW4gY2hhbmdpbmcgYWxsIENGRyB0cmFuc2Zvcm1hdGlvbiB1dGls
aXRpZXMgYW5kCisgICAgICAgIHBhc3Nlcy4gV2UgaGF2ZSBhIGxvdCBvZiB0aG9zZSBhbmQgd2Ug
d2FudCBpdCB0byBiZSBlYXN5IHRvIHdyaXRlIG5ldyBvbmVzLgorICAgICAgICAKKyAgICAgICAg
VGhpcyBpcyB3aHkgd2UgdXNlIHNvbWV0aGluZyBuZXcgYW5kIHF1aXRlIGRpZmZlcmVudCBmcm9t
IGNsYXNzaWMgaW5kaXJlY3QganVtcHMuIFBvbHlKdW1wCisgICAgICAgIG1ha2VzIHRoZSBjb250
cm9sIGZsb3cgZWRnZXMgZXhwbGljaXQuIFRoZSBjbGllbnQgbXVzdCBzdXBwbHkgdGhlIHN1Y2Nl
c3NvcnMgd2hlbiBpdCBjcmVhdGVzCisgICAgICAgIHRoZSBQb2x5SnVtcC4gVGhlIGNvbXBpbGVy
IG1heSByZXdpcmUgdGhvc2Ugc3VjY2Vzc29yIGVkZ2VzIHRoZSBzYW1lIHdheSB0aGF0IGl0IHdv
dWxkIHJld2lyZQorICAgICAgICBhbnkgY29udHJvbCBmbG93IGVkZ2VzLiBDb25zZXF1ZW50bHkg
dGhlIHZhc3QgbWFqb3JpdHkgb2YgQ0ZHIHJlYXNvbmluZyBpbiBCMyBpcyB1bmNoYW5nZWQuCisg
ICAgICAgIElmIHlvdSBkb24ndCB3YW50IHRvIHVuZGVyc3RhbmQgUG9seUp1bXAsIGp1c3QgdGhp
bmsgb2YgaXQgbGlrZSB5b3Ugd291bGQgYSBTd2l0Y2ggd2l0aCBhbgorICAgICAgICBvcGFxdWUg
aW5jb21pbmcgdmFsdWUuIFRoaXMgd29ya3MgYmVjYXVzZSB3ZSBkbyBub3QgYWRkIGFueSBub3Rp
b24gb2YgZXNjYXBlZCBiYXNpYyBibG9ja3MuCisgICAgICAgIEluc3RlYWQgb2YgbGV0dGluZyB0
aGUgY2xpZW50IGdldCB0aGUgcG9pbnRlcnMgdG8gYmFzaWMgYmxvY2tzIGJ5IGVzY2FwaW5nIHRo
ZW0gbGlrZSBpbiBMTFZNLAorICAgICAgICB5b3UgY2FuIG9ubHkgZ2V0IHRoZSBwb2ludGVycyBv
ZiB0aGUgc3VjY2Vzc29ycyBvZiBQb2x5SnVtcCBieSByZWdpc3RlcmluZyBhIGNhbGxiYWNrIHdp
dGgKKyAgICAgICAgUG9seUp1bXAuIFRoaXMgY2FsbGJhY2sgZG9lc24ndCBhY3R1YWxseSBnaXZl
IHlvdSB0aGUgYWRkcmVzc2VzIG9mIGJhc2ljIGJsb2Nrcy4gSXQganVzdAorICAgICAgICBnaXZl
cyB5b3UgdGhlIGFkZHJlc3NlcyB3aGVyZSB5b3UgbXVzdCBqdW1wIHRvIHRyYW5zZmVyIGNvbnRy
b2wgZmxvdyBmcm9tIHRoYXQgUG9seUp1bXAgdG8KKyAgICAgICAgaXRzIHN1Y2Nlc3NvcnMuIFRo
aXMgbWVhbnMgdGhhdCB0aGUgbWFnaWMgb2YgUG9seUp1bXAgaXMgY29uZmluZWQgb25seSB0byB0
aGUgUG9seUp1bXAgaXRzZWxmCisgICAgICAgIGFuZCBkb2Vzbid0IGluZmVjdCByZWFzb25pbmcg
YWJvdXQgdGhlIGJhc2ljIGJsb2NrcyB0aGF0IGl0IGp1bXBzIHRvLgorICAgICAgICAKKyAgICAg
ICAgVGhlIG9ubHkgZG93bnNpZGUgaXMgdGhhdCB0aGF0IFBvbHlKdW1wIGlzIG5vdCBjbG9uZWFi
bGUuIFlvdSBjYW4ndCBjbG9uZSBpdCBiZWNhdXNlIGlmIHlvdQorICAgICAgICBkaWQsIHRoZW4g
dGhlIHR3byByZXN1bHRpbmcgUG9seUp1bXBzIG1heSBoYXZlIHRoZWlyIHN1Y2Nlc3NvciBlZGdl
cyByZXdpcmVkIGluZGVwZW5kZW50bHkgb2YKKyAgICAgICAgZWFjaCBvdGhlci4gVGhpcyBjb3Vs
ZCBlYXNpbHkgaGFwcGVuIGlmIHdlIGJyZWFrIGNyaXRpY2FsIGVkZ2VzLiBJZiB0aGF0IGRpZCBo
YXBwZW4gdGhlbiBpdAorICAgICAgICB3b3VsZCBicmVhayB0aGUgY2xpZW50IG9mIFBvbHlKdW1w
OiB0aGV5IHdvdWxkIGhhdmUgYWxyZWFkeSBjcmVhdGVkIHNvbWV0aGluZyBsaWtlIGEganVtcAor
ICAgICAgICB0YWJsZSBhbmQgd2lsbCBiZSBwb3B1bGF0aW5nIGl0IHZpYSB0aGUgY2FsbGJhY2ss
IGJ1dCBub3cgdGhlIGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkIHR3aWNlLAorICAgICAgICBhbmQg
bWF5IHJldHVybiBkaWZmZXJlbnQganVtcCBkZXN0aW5hdGlvbnMgZWFjaCB0aW1lLiBTbywgdGhp
cyBwYXRjaCBpbnRyb2R1Y2VzCisgICAgICAgIFZhbHVlOjppc0Nsb25lYWJsZSgpIGFuZCB0ZWFj
aGVzIGJvdGggb2Ygb3VyIGNvZGUgc3BlY2lhbGl6YXRpb24gb3B0aW1pemF0aW9ucyAodGFpbAor
ICAgICAgICBkdXBsaWNhdGlvbiBhbmQgc2VsZWN0IHNwZWNpYWxpemF0aW9uKSB0byBiYWlsIGlm
IHRoZSBjb2RlIHRoZXkgd2FudCB0byBzcGVjaWFsaXplIGlzIG5vdAorICAgICAgICBjbG9uZWFi
bGUuIFRoaXMgaXMgdG90YWxseSBiZW5pZ24gbW9zdCBvZiB0aGUgdGltZSwgc2luY2UgdGhvc2Ug
b3B0aW1pemF0aW9ucyB1c3VhbGx5IHJ1bgorICAgICAgICBiZWZvcmUgU3dpdGNoIGxvd2VyaW5n
LiBDbGllbnRzIHRoYXQgdXNlIFBvbHlKdW1wIGRpcmVjdGx5IGhhdmUgdG8gYXBwcmVjaWF0ZSB0
aGUgdHJhZGUtb2ZmOgorICAgICAgICBQb2x5SnVtcCBtYXkgZ2FpbiB0aGVtIHNvbWUgcGVyZm9y
bWFuY2UgYnV0IHRoZXkgYXJlIG9wdGluZyBvdXQgb2Ygb3B0aW1pemF0aW9ucyB0aGF0IHVzZQor
ICAgICAgICBjbG9uaW5nLiBBIGNsb3NlIGNvcm9sbGFyeSBvZiB0aGUgbm8tY2xvbmUgcnVsZSBp
cyB0aGF0IHRoZSBjbGllbnQgY2Fubm90IGNyZWF0ZSBtdWx0aXBsZQorICAgICAgICBQb2x5SnVt
cHMgdGhhdCBhcmUgZmVkIGJ5IGEgY29tbW9uIGp1bXAgdGFibGU6IHRoZSBmYWN0IHRoYXQgZWFj
aCBQb2x5SnVtcCBoYXMgYSBjYWxsYmFjaworICAgICAgICB0aGF0IGp1c3QgdGVsbHMgeW91IHRo
ZSBqdW1wIGRlc3RpbmF0aW9ucyBmb3IgaXRzIHN1Y2Nlc3NvciAqZWRnZXMqLCBub3Qgc3VjY2Vz
c29yICpibG9ja3MqLAorICAgICAgICBtZWFucyB0aGF0IGlmIHlvdSBjcmVhdGUgdHdvIFBvbHlK
dW1wcyBhbmQgZ2l2ZSB0aGVtIHRoZSBzYW1lIHN1Y2Nlc3NvciBsaXN0LCB5b3UgYXJlIG5vdAor
ICAgICAgICBndWFyYW50ZWVkIHRoYXQgdGhleSB3aWxsIGdldCB0aGUgc2FtZSBqdW1wIGRlc3Rp
bmF0aW9ucy4gVGhpcyBodXJ0cyBpZiB5b3Ugd2FudCB0byB1c2UKKyAgICAgICAgUG9seUp1bXAg
Zm9yIHRocmVhZGVkIGludGVycHJldGVycyBidXQgaXQncyBoYXJtbGVzcyBmb3Igc3dpdGNoIGxv
d2VyaW5nLiBUaGUgZ29hbCBvZgorICAgICAgICBQb2x5SnVtcCBpcyB0byBiZSBhd2Vzb21lIGZv
ciBzd2l0Y2ggbG93ZXJpbmcgd2hpbGUgbm90IGJyZWFraW5nIHRoZSByZXN0IG9mIHRoZSBjb21w
aWxlciwgc28KKyAgICAgICAgdGhpcyBpcyBwcm9iYWJseSBmaW5lLgorICAgICAgICAKKyAgICAg
ICAgVGhlIGlzQ2xvbmVhYmxlKCkgbWV0aG9kIGN1cnJlbnRseSBvbmx5IHJldHVybnMgdHJ1ZSBm
b3IgUG9seUp1bXAsIGJ1dCBJIGFudGljaXBhdGUgd2Ugd2lsbAorICAgICAgICBhZGQgb3RoZXIg
bm9uLWNsb25lYWJsZSB0aGluZ3MgbGF0ZXIuIEkgdGhpbmsgaXMgaXMgaW5oZXJlbnQgaW4gYSBj
b21waWxlciB0aGF0IGFsbG93cyBzdWNoCisgICAgICAgIGN1c3RvbWl6ZWFiaWxpdHkgZm9yIGl0
cyBjbGllbnRzLiBGb3IgZXhhbXBsZSwgd2UgbWF5IHdhbnQgdG8gYWRkIGEgZmxhZyB0byBQYXRj
aHBvaW50IHRoYXQKKyAgICAgICAgbWFrZXMgaXQgbm9uLWNsb25lYWJsZS4gU29tZXRpbWVzIHdl
IGhhdmUgdG8ganVtcCB0aHJvdWdoIGhvb3BzIGluIHRoZSBGVEwgYmVjYXVzZSBvZiB0aGUKKyAg
ICAgICAgY2xvbmVhYmlsaXR5IG9mIHBhdGNocG9pbnRzLiBUaGlzIGhhcHBlbnMgaW4gT1NSIGV4
aXRzLCB3aGljaCBwYXkgYSBzaWduaWZpY2FudCBtZW1vcnkgY29zdAorICAgICAgICBmb3IgYWRk
aXRpb25hbCBkYXRhIHN0cnVjdHVyZXMgdGhhdCBhcmUgdGhlcmUgaW4gY2FzZSBhbiBleGl0IGdl
dHMgY2xvbmVkLiBJdCBtYXkgYmUgbW9yZQorICAgICAgICBwcm9maXRhYmxlIHRvIGp1c3Qgc2F5
IHRoYXQgT1NSIGV4aXRzIChpLmUuIENoZWNrcyBhbmQgSW52YWxpZGF0aW9uUG9pbnQgUGF0Y2hw
b2ludHMpIGFyZSBub3QKKyAgICAgICAgY2xvbmVhYmxlLiBTdXJlbHkgdGhpcyB3b3VsZCByZWR1
Y2UgdGFpbCBkdXBsaWNhdGlvbiwgYnV0IHRhaWwgZHVwbGljYXRpb24gaXMgbW9zdCBwcm9maXRh
YmxlCisgICAgICAgIHdoZW4gaXQgY2xvbmVzIG9ubHkgYSB0aW55IGFtb3VudCBvZiBjb2RlOyBp
ZiB0aGVyZSdzIGFuIGV4aXQgdGhlbiB3ZSdyZSBub3QgdGFsa2luZyBhYm91dCBhCisgICAgICAg
IHRpbnkgYW1vdW50IG9mIGNvZGUgYW55bW9yZS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaXMg
YSB+MzAlIHNwZWVkLXVwIG9uIG1pY3JvYmVuY2htYXJrcyB0aGF0IGhhdmUgYmlnIHN3aXRjaCBz
dGF0ZW1lbnRzICh+NjAgY2FzZXMpLiBJdCdzCisgICAgICAgIG5vdCBhIHNwZWVkLXVwIG9uIG1h
aW5zdHJlYW0gYmVuY2htYXJrcy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgYWxzbyBhZGRzIGEg
bmV3IHRlc3QgdG8gdGVzdGIzIGZvciBQb2x5SnVtcCwgR2V0LCBhbmQgU2V0LiBUaGUgRlRMIGRv
ZXMgbm90IGN1cnJlbnRseQorICAgICAgICB1c2UgUG9seUp1bXAgZGlyZWN0bHksIGJ1dCB3ZSB3
YW50IHRoaXMgdG8gYmUgcG9zc2libGUuIEl0IGFsc28gZG9lc24ndCB1c2UgR2V0L1NldCBkaXJl
Y3RseQorICAgICAgICBldmVuIHRob3VnaCB3ZSB3YW50IHRoaXMgdG8gYmUgcG9zc2libGUuIEl0
J3MgaW1wb3J0YW50IHRvIHRlc3QgdGhlc2Ugc2luY2Ugb3Bjb2RlcyB0aGF0CisgICAgICAgIHJl
c3VsdCBmcm9tIGxvd2VyaW5nIGRvbid0IGFmZmVjdCBlYXJseSBwaGFzZXMsIHNvIHdlIGNvdWxk
IGhhdmUgcmVncmVzc2lvbnMgaW4gZWFybHkgcGhhc2VzCisgICAgICAgIHJlbGF0ZWQgdG8gdGhl
c2Ugb3Bjb2RlcyB0aGF0IHdvdWxkbid0IGJlIGNhdWdodCBieSBhbnkgSlMgdGVzdC4gU28sIHRo
aXMgYWRkcyBhIHZlcnkgYmFzaWMKKyAgICAgICAgdGhyZWFkZWQgaW50ZXJwcmV0ZXIgdG8gdGVz
dGIzIGZvciBhIEJyYWluZnVjay1zdHlsZSBsYW5ndWFnZSwgYW5kIHRlc3RzIGl0IGJ5IGhhdmlu
ZyBpdCBydW4KKyAgICAgICAgYSBwcm9ncmFtIHRoYXQgcHJpbnRzIHRoZSBudW1iZXJzIDEuLjEw
MCBpbiBhIGxvb3AuIFVubGlrZSBhIHJlYWwgdGhyZWFkZWQgaW50ZXJwcmV0ZXIsIGl0CisgICAg
ICAgIHVzZXMgYSBjb21tb24gZGlzcGF0Y2ggYmxvY2sgcmF0aGVyIHRoYW4gaGF2aW5nIGRpc3Bh
dGNoIGF0IHRoZSB0ZXJtaW51cyBvZiBlYWNoIG9wY29kZS4KKyAgICAgICAgVGhhdCdzIG5lY2Vz
c2FyeSBiZWNhdXNlIFBvbHlKdW1wIGlzIG5vdCBjbG9uZWFibGUuIFRoZSBzdGF0ZSBvZiB0aGUg
aW50ZXJwcmV0ZXIgaXMKKyAgICAgICAgcmVwcmVzZW50ZWQgdXNpbmcgVmFyaWFibGVzIHRoYXQg
d2UgR2V0IGFuZCBTZXQsIHNvIGl0IHRlc3RzIEdldC9TZXQgYXMgd2VsbC4KKworICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9u
Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpqdW1wKToKKyAgICAg
ICAgKiBhc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxl
cjo6am1wX20pOgorICAgICAgICAqIGIzL0IzQmFzaWNCbG9jay5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpCYXNpY0Jsb2NrOjp1cGRhdGVQcmVkZWNlc3NvcnNBZnRlcik6CisgICAgICAgIChKU0M6
OkIzOjpCYXNpY0Jsb2NrOjppc0Nsb25lYWJsZSk6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Js
b2NrOjpkdW1wKToKKyAgICAgICAgKiBiMy9CM0Jhc2ljQmxvY2suaDoKKyAgICAgICAgKEpTQzo6
QjM6OkJhc2ljQmxvY2s6OmZyZXF1ZW5jeSk6CisgICAgICAgICogYjMvQjNDb21tb24uaDoKKyAg
ICAgICAgKEpTQzo6QjM6OmlzNjRCaXQpOgorICAgICAgICAqIGIzL0IzQ29udHJvbFZhbHVlLmg6
CisgICAgICAgICogYjMvQjNEYXRhU2VjdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkIzOjpEYXRh
U2VjdGlvbjo6RGF0YVNlY3Rpb24pOgorICAgICAgICAqIGIzL0IzRHVwbGljYXRlVGFpbHMuY3Bw
OgorICAgICAgICAqIGIzL0IzTG93ZXJNYWNyb3MuY3BwOgorICAgICAgICAqIGIzL0IzTG93ZXJU
b0Fpci5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okxvd2VyVG9BaXI6Omxvd2VyKToKKyAg
ICAgICAgKiBiMy9CM09wY29kZS5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgor
ICAgICAgICAqIGIzL0IzT3Bjb2RlLmg6CisgICAgICAgICogYjMvQjNQb2x5SnVtcFZhbHVlLmNw
cDogQWRkZWQuCisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjp+UG9seUp1bXBWYWx1
ZSk6CisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjphcHBlbmRTdWNjZXNzb3IpOgor
ICAgICAgICAoSlNDOjpCMzo6UG9seUp1bXBWYWx1ZTo6c2V0Q2FsbGJhY2tUYXNrKToKKyAgICAg
ICAgKEpTQzo6QjM6OlBvbHlKdW1wVmFsdWU6OmlzQ2xvbmVhYmxlKToKKyAgICAgICAgKEpTQzo6
QjM6OlBvbHlKdW1wVmFsdWU6OmR1bXBNZXRhKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1w
VmFsdWU6OmNsb25lSW1wbCk6CisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjpQb2x5
SnVtcFZhbHVlKToKKyAgICAgICAgKiBiMy9CM1BvbHlKdW1wVmFsdWUuaDogQWRkZWQuCisgICAg
ICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjphY2NlcHRzKToKKyAgICAgICAgKEpTQzo6QjM6
OlBvbHlKdW1wVmFsdWU6OnNldENhbGxiYWNrKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1w
VmFsdWU6OmNhbGxiYWNrVGFzayk6CisgICAgICAgICogYjMvQjNQcm9jZWR1cmUuY3BwOgorICAg
ICAgICAoSlNDOjpCMzo6UHJvY2VkdXJlOjpjbG9uZSk6CisgICAgICAgICogYjMvQjNQcm9jZWR1
cmUuaDoKKyAgICAgICAgKEpTQzo6QjM6OlByb2NlZHVyZTo6bGFzdFBoYXNlTmFtZSk6CisgICAg
ICAgIChKU0M6OkIzOjpQcm9jZWR1cmU6OmJ5cHJvZHVjdHMpOgorICAgICAgICAqIGIzL0IzUmVk
dWNlU3RyZW5ndGguY3BwOgorICAgICAgICAqIGIzL0IzVmFsaWRhdGUuY3BwOgorICAgICAgICAq
IGIzL0IzVmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6OmVmZmVjdHMpOgorICAg
ICAgICAoSlNDOjpCMzo6VmFsdWU6OmlzQ2xvbmVhYmxlKToKKyAgICAgICAgKEpTQzo6QjM6OlZh
bHVlOjprZXkpOgorICAgICAgICAqIGIzL0IzVmFsdWUuaDoKKyAgICAgICAgKiBiMy9haXIvQWly
Q29kZS5oOgorICAgICAgICAqIGIzL2Fpci9BaXJHZW5lcmF0ZS5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpBaXI6OmdlbmVyYXRlKToKKyAgICAgICAgKiBiMy9haXIvQWlySW5zdC5jcHA6CisgICAg
ICAgIChKU0M6OkIzOjpBaXI6Okluc3Q6Omhhc0FyZ0VmZmVjdHMpOgorICAgICAgICAoSlNDOjpC
Mzo6QWlyOjpJbnN0Ojppc0Nsb25lYWJsZSk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okluc3Q6
OmR1bXApOgorICAgICAgICAqIGIzL2Fpci9BaXJJbnN0Lmg6CisgICAgICAgICogYjMvYWlyL0Fp
ck9wY29kZS5vcGNvZGVzOgorICAgICAgICAqIGIzL3Rlc3RiMy5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpzaG91bGRCZVZlcmJvc2UpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN3aXRjaENoaWxs
RGl2KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RMYXRlUmVnaXN0ZXIpOgorICAgICAgICAoSlND
OjpCMzo6dGhyZWFkZWRJbnRlcnByZXRlclByaW50KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RU
aHJlYWRlZEludGVycHJldGVyKToKKyAgICAgICAgKEpTQzo6QjM6Onplcm8pOgorICAgICAgICAo
SlNDOjpCMzo6cnVuKToKKwogMjAxNi0wNi0xMSAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5j
b20+CiAKICAgICAgICAgTWluaW1pemUgdGhlIGFtb3VudCBvZiBtZW1jcHkgZG9uZSBmb3IgYWxs
b2NhdGluZyBFcnJvciBzdGFja3MuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VM
aXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMu
dHh0CShyZXZpc2lvbiAyMDE5ODUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0
cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE0NCw2ICsxNDQsNyBAQCBzZXQoSmF2YVNjcmlwdENv
cmVfU09VUkNFUwogICAgIGIzL0IzUGF0Y2hwb2ludFZhbHVlLmNwcAogICAgIGIzL0IzUGhhc2VT
Y29wZS5jcHAKICAgICBiMy9CM1BoaUNoaWxkcmVuLmNwcAorICAgIGIzL0IzUG9seUp1bXBWYWx1
ZS5jcHAKICAgICBiMy9CM1Byb2NlZHVyZS5jcHAKICAgICBiMy9CM1B1cmVDU0UuY3BwCiAgICAg
YjMvQjNSZWR1Y2VEb3VibGVUb0Zsb2F0LmNwcApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oJKHJldmlzaW9uIDIwMTk4NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xOTgz
LDYgKzE5ODMsOCBAQAogCQlEQzE3RTgxQTFDOUM5MUU5MDA4QTZBQjMgLyogQ0NhbGxIZWxwZXJz
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDMTdF
ODE2MUM5QzgwMkIwMDhBNkFCMyAvKiBDQ2FsbEhlbHBlcnMuY3BwICovOyB9OwogCQlEQzIxNDMw
NzFDQTMyRTU1MDAwQTg4NjkgLyogSUNTdGF0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gREMyMTQzMDYxQ0EzMkU1MjAwMEE4ODY5IC8qIElDU3RhdHMu
aCAqLzsgfTsKIAkJREMyMTQzMDgxQ0EzMkU1ODAwMEE4ODY5IC8qIElDU3RhdHMuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREMyMTQzMDUxQ0EzMkU1
MjAwMEE4ODY5IC8qIElDU3RhdHMuY3BwICovOyB9OworCQlEQzQ1NEI4ODFDRkY2RkU3MDA0QzE4
QUYgLyogQjNQb2x5SnVtcFZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IERDNDU0Qjg2MUNGRjZGRTUwMDRDMThBRiAvKiBCM1BvbHlKdW1wVmFs
dWUuY3BwICovOyB9OworCQlEQzQ1NEI4OTFDRkY2RkVBMDA0QzE4QUYgLyogQjNQb2x5SnVtcFZh
bHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzQ1
NEI4NzFDRkY2RkU1MDA0QzE4QUYgLyogQjNQb2x5SnVtcFZhbHVlLmggKi87IH07CiAJCURDNDU0
QjhDMUQwMEU4MjIwMDRDMThBRiAvKiBBaXJEdW1wQXNKUy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzQ1NEI4QTFEMDBFODFGMDA0QzE4QUYgLyog
QWlyRHVtcEFzSlMuY3BwICovOyB9OwogCQlEQzQ1NEI4RDFEMDBFODI0MDA0QzE4QUYgLyogQWly
RHVtcEFzSlMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IERDNDU0QjhCMUQwMEU4MUYwMDRDMThBRiAvKiBBaXJEdW1wQXNKUy5oICovOyB9OwogCQlEQzYw
NUI1RDFDRTI2RUEwMDA1OTM3MTggLyogUHJvZmlsZXJFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzYwNUI1OTFDRTI2RTk4MDA1OTM3MTgg
LyogUHJvZmlsZXJFdmVudC5jcHAgKi87IH07CkBAIC00MTk5LDYgKzQyMDEsOCBAQAogCQlEQzE3
RTgxNjFDOUM4MDJCMDA4QTZBQjMgLyogQ0NhbGxIZWxwZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENDYWxsSGVscGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCURDMjE0MzA1MUNBMzJFNTIwMDBBODg2OSAvKiBJQ1N0YXRzLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElDU3RhdHMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlEQzIxNDMwNjFDQTMyRTUyMDAwQTg4NjkgLyogSUNTdGF0cy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJQ1N0YXRzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCURDNDU0Qjg2MUNGRjZGRTUwMDRDMThBRiAvKiBCM1BvbHlKdW1w
VmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQjNQb2x5SnVt
cFZhbHVlLmNwcDsgcGF0aCA9IGIzL0IzUG9seUp1bXBWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCURDNDU0Qjg3MUNGRjZGRTUwMDRDMThBRiAvKiBCM1BvbHlKdW1wVmFs
dWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQjNQb2x5SnVtcFZhbHVlLmg7
IHBhdGggPSBiMy9CM1BvbHlKdW1wVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJREM0NTRCOEExRDAwRTgxRjAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEFpckR1bXBBc0pTLmNwcDsgcGF0aCA9IGIzL2Fp
ci9BaXJEdW1wQXNKUy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDNDU0QjhC
MUQwMEU4MUYwMDRDMThBRiAvKiBBaXJEdW1wQXNKUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBBaXJEdW1wQXNKUy5oOyBwYXRoID0gYjMvYWlyL0FpckR1bXBBc0pTLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDNjA1QjU5MUNFMjZFOTgwMDU5MzcxOCAvKiBQ
cm9maWxlckV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFBy
b2ZpbGVyRXZlbnQuY3BwOyBwYXRoID0gcHJvZmlsZXIvUHJvZmlsZXJFdmVudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00NzUyLDYgKzQ3NTYsOCBAQAogCQkJCTBGRUM4NEUw
MUJEQUNEQUMwMDgwRkY3NCAvKiBCM1BoYXNlU2NvcGUuaCAqLywKIAkJCQkwRjM3MzA4QTFDMEJE
MjkxMDAwNTJCRkEgLyogQjNQaGlDaGlsZHJlbi5jcHAgKi8sCiAJCQkJMEYzNzMwOEIxQzBCRDI5
MTAwMDUyQkZBIC8qIEIzUGhpQ2hpbGRyZW4uaCAqLywKKwkJCQlEQzQ1NEI4NjFDRkY2RkU1MDA0
QzE4QUYgLyogQjNQb2x5SnVtcFZhbHVlLmNwcCAqLywKKwkJCQlEQzQ1NEI4NzFDRkY2RkU1MDA0
QzE4QUYgLyogQjNQb2x5SnVtcFZhbHVlLmggKi8sCiAJCQkJMEZFQzg0RTExQkRBQ0RBQzAwODBG
Rjc0IC8qIEIzUHJvY2VkdXJlLmNwcCAqLywKIAkJCQkwRkVDODRFMjFCREFDREFDMDA4MEZGNzQg
LyogQjNQcm9jZWR1cmUuaCAqLywKIAkJCQkwRkVDODRFMzFCREFDREFDMDA4MEZGNzQgLyogQjNQ
cm9jZWR1cmVJbmxpbmVzLmggKi8sCkBAIC03MTI4LDYgKzcxMzQsNyBAQAogCQkJCTBGOEY5NDQx
MTY2NzYzMzIwMEQ2MTk3MSAvKiBDb2RlQmxvY2tIYXNoLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RkM5N0YzNDE4MjAyMEQ3MDAyQzlCMjYgLyogQ29kZUJsb2NrSmV0dGlzb25pbmdXYXRjaHBvaW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkQ4QTMxNDE3RDQzMjZDMDBDQTJDNDAgLyogQ29kZUJs
b2NrU2V0LmggaW4gSGVhZGVycyAqLywKKwkJCQlEQzQ1NEI4OTFDRkY2RkVBMDA0QzE4QUYgLyog
QjNQb2x5SnVtcFZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjk2RUJCMzE2Njc2RUY2MDA4
QkFERTMgLyogQ29kZUJsb2NrV2l0aEpJVFR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3N0Yx
ODIyMTY0MDg4QjIwMDY0MEE0NyAvKiBDb2RlQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTk5
Q0MwQjYzMThCRTk5NTAwMDZDRUJDQyAvKiBDb2RlR2VuZXJhdG9yUmVwbGF5SW5wdXRzLnB5IGlu
IEhlYWRlcnMgKi8sCkBAIC05NDA1LDYgKzk0MTIsNyBAQAogCQkJCTcwOUZCODZCMUFFMzM1QzYw
MDM5RDA2OSAvKiBXZWFrU2V0UHJvdG90eXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJBNEVD
OTBCMTg2MEQ2QzIwMDk0Rjc4MiAvKiBXcml0ZUJhcnJpZXJCdWZmZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMEZDODE1MEIxNDA0M0MwRTAwQ0ZBNjAzIC8qIFdyaXRlQmFycmllclN1cHBvcnQu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJREM0NTRCODgxQ0ZGNkZFNzAwNEMxOEFGIC8qIEIzUG9s
eUp1bXBWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBN0U1QUIzQTE3OTlFNEIyMDBEMjgz
M0QgLyogWDg2RGlzYXNzZW1ibGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMkJCRDk3MUM1
RkYzRjUwMDIzRUYyMyAvKiBCM1ZhcmlhYmxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg2M0M2
RDlDMTUyMTExMUEwMDU4NUU0RSAvKiBZYXJyQ2Fub25pY2FsaXplVUNTMi5jcHAgaW4gU291cmNl
cyAqLywKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJYODZDb21tb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgJKHJldmlzaW9uIDIwMTk4NSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaAkod29y
a2luZyBjb3B5KQpAQCAtMjI2Miw2ICsyMjYyLDEyIEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3Nl
bWJsZXIuam1wX20oYWRkcmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFzZSk7CiAgICAgfQogCisgICAg
Ly8gQWRkcmVzcyBpcyBhIG1lbW9yeSBsb2NhdGlvbiBjb250YWluaW5nIHRoZSBhZGRyZXNzIHRv
IGp1bXAgdG8KKyAgICB2b2lkIGp1bXAoQmFzZUluZGV4IGFkZHJlc3MpCisgICAgeworICAgICAg
ICBtX2Fzc2VtYmxlci5qbXBfbShhZGRyZXNzLm9mZnNldCwgYWRkcmVzcy5iYXNlLCBhZGRyZXNz
LmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKKyAgICB9CisKIAogICAgIC8vIEFyaXRobWV0aWMgY29u
dHJvbCBmbG93IG9wZXJhdGlvbnM6CiAgICAgLy8KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaAkocmV2aXNpb24gMjAxOTg1KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaAkod29ya2luZyBjb3B5
KQpAQCAtMTk4Myw2ICsxOTgzLDExIEBAIHB1YmxpYzoKICAgICAgICAgbV9mb3JtYXR0ZXIub25l
Qnl0ZU9wKE9QX0dST1VQNV9FdiwgR1JPVVA1X09QX0pNUE4sIGJhc2UsIG9mZnNldCk7CiAgICAg
fQogICAgIAorICAgIHZvaWQgam1wX20oaW50IG9mZnNldCwgUmVnaXN0ZXJJRCBiYXNlLCBSZWdp
c3RlcklEIGluZGV4LCBpbnQgc2NhbGUpCisgICAgeworICAgICAgICBtX2Zvcm1hdHRlci5vbmVC
eXRlT3AoT1BfR1JPVVA1X0V2LCBHUk9VUDVfT1BfSk1QTiwgYmFzZSwgaW5kZXgsIHNjYWxlLCBv
ZmZzZXQpOworICAgIH0KKyAgICAKICNpZiAhQ1BVKFg4Nl82NCkKICAgICB2b2lkIGptcF9tKGNv
bnN0IHZvaWQqIGFkZHJlc3MpCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzQmFzaWNCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzQmFzaWNCbG9jay5jcHAJKHJldmlzaW9uIDIwMTk4NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM0Jhc2ljQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDksNiArMTA5LDE1
IEBAIHZvaWQgQmFzaWNCbG9jazo6dXBkYXRlUHJlZGVjZXNzb3JzQWZ0ZXIKICAgICBCMzo6dXBk
YXRlUHJlZGVjZXNzb3JzQWZ0ZXIodGhpcyk7CiB9CiAKK2Jvb2wgQmFzaWNCbG9jazo6aXNDbG9u
ZWFibGUoKSBjb25zdAoreworICAgIGZvciAoVmFsdWUqIHZhbHVlIDogKnRoaXMpIHsKKyAgICAg
ICAgaWYgKCF2YWx1ZS0+aXNDbG9uZWFibGUoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQgQmFzaWNCbG9jazo6ZHVtcChQcmlu
dFN0cmVhbSYgb3V0KSBjb25zdAogewogICAgIG91dC5wcmludChkdW1wUHJlZml4LCBtX2luZGV4
KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2suaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmgJKHJldmlzaW9u
IDIwMTk4NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2suaAkod29y
a2luZyBjb3B5KQpAQCAtMTE1LDYgKzExNSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZVBy
ZWRlY2Vzc29yc0FmdGVyKCk7CiAKICAgICBkb3VibGUgZnJlcXVlbmN5KCkgY29uc3QgeyByZXR1
cm4gbV9mcmVxdWVuY3k7IH0KKyAgICAKKyAgICBib29sIGlzQ2xvbmVhYmxlKCkgY29uc3Q7CiAK
ICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKICAgICB2b2lkIGRlZXBEdW1wKGNv
bnN0IFByb2NlZHVyZSYsIFByaW50U3RyZWFtJikgY29uc3Q7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNDb21tb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNDb21tb24uaAkocmV2aXNpb24gMjAxOTg1KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzQ29tbW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsNiArMjgsOCBAQAogCiAjaWYgRU5B
QkxFKEIzX0pJVCkKIAorI2luY2x1ZGUgIkpTRXhwb3J0TWFjcm9zLmgiCisKIG5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgQjMgewogCiBpbmxpbmUgYm9vbCBpczY0Qml0KCkgeyByZXR1cm4gc2l6
ZW9mKHZvaWQqKSA9PSA4OyB9CkBAIC0zOCw3ICs0MCw3IEBAIGVudW0gQjNDb21wbGl0YXRpb25N
b2RlIHsKICAgICBBaXJNb2RlCiB9OwogCi1ib29sIHNob3VsZER1bXBJUihCM0NvbXBsaXRhdGlv
bk1vZGUpOworSlNfRVhQT1JUX1BSSVZBVEUgYm9vbCBzaG91bGREdW1wSVIoQjNDb21wbGl0YXRp
b25Nb2RlKTsKIGJvb2wgc2hvdWxkRHVtcElSQXRFYWNoUGhhc2UoQjNDb21wbGl0YXRpb25Nb2Rl
KTsKIGJvb2wgc2hvdWxkVmFsaWRhdGVJUigpOwogYm9vbCBzaG91bGRWYWxpZGF0ZUlSQXRFYWNo
UGhhc2UoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnRyb2xWYWx1ZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnRyb2xWYWx1ZS5o
CShyZXZpc2lvbiAyMDE5ODUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb250cm9s
VmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsOSArNDYsMTAgQEAgcHVibGljOgogICAgICAg
ICBjYXNlIFJldHVybjoKICAgICAgICAgY2FzZSBPb3BzOgogICAgICAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgICAgIGNhc2UgU3dpdGNoOiAKLSAgICAgICAgICAgIC8vIFRoaXMgaXMgaGVyZSBi
ZWNhdXNlIFN3aXRjaFZhbHVlIGlzIGEgc3ViY2xhc3Mgb2YgQ29udHJvbFZhbHVlLCBzbyB3ZSB3
YW50Ci0gICAgICAgICAgICAvLyBzd2l0Y2hWYWx1ZS0+YXM8Q29udHJvbFZhbHVlPigpIHRvIHJl
dHVybiBub24tbnVsbC4KKyAgICAgICAgY2FzZSBTd2l0Y2g6CisgICAgICAgIGNhc2UgUG9seUp1
bXA6CisgICAgICAgICAgICAvLyBUaGlzIGlzIGhlcmUgYmVjYXVzZSBTd2l0Y2hWYWx1ZSBhbmQg
UG9seUp1bXBWYWx1ZSBhcmUgc3ViY2xhc3NlcyBvZiBDb250cm9sVmFsdWUsCisgICAgICAgICAg
ICAvLyBzbyB3ZSB3YW50IHRoaW5ncyBsaWtlIHN3aXRjaFZhbHVlLT5hczxDb250cm9sVmFsdWU+
KCkgdG8gcmV0dXJuIG5vbi1udWxsLgogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
IGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC03Nyw3ICs3OCw3IEBAIHB1
YmxpYzoKICAgICB9CiAKICAgICBib29sIHJlcGxhY2VTdWNjZXNzb3IoQmFzaWNCbG9jayogZnJv
bSwgQmFzaWNCbG9jayogdG8pOwotCisgICAgCiAgICAgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0
YWtlbigpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQob3Bjb2RlKCkgPT0gSnVtcCB8fCBv
cGNvZGUoKSA9PSBCcmFuY2gpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRGF0
YVNlY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Rh
dGFTZWN0aW9uLmNwcAkocmV2aXNpb24gMjAxOTg1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzRGF0YVNlY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMxLDcgKzMxLDcgQEAKIG5hbWVz
cGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCiBEYXRhU2VjdGlvbjo6RGF0YVNlY3Rpb24oc2l6
ZV90IHNpemUpCi0gICAgOiBtX2RhdGEoZmFzdE1hbGxvYyhzaXplKSkKKyAgICA6IG1fZGF0YShm
YXN0WmVyb2VkTWFsbG9jKHNpemUpKQogICAgICwgbV9zaXplKHNpemUpCiB7CiB9CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEdXBsaWNhdGVUYWlscy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRHVwbGljYXRlVGFpbHMuY3BwCShyZXZpc2lv
biAyMDE5ODUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEdXBsaWNhdGVUYWlscy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTcyLDkgKzcyLDExIEBAIHB1YmxpYzoKICAgICAgICAgSW5k
ZXhTZXQ8QmFzaWNCbG9jaz4gY2FuZGlkYXRlczsKIAogICAgICAgICBmb3IgKEJhc2ljQmxvY2sq
IGJsb2NrIDogbV9wcm9jKSB7Ci0gICAgICAgICAgICBpZiAoYmxvY2stPnNpemUoKSA+IG1fbWF4
U2l6ZSB8fCBibG9jay0+bnVtU3VjY2Vzc29ycygpID4gbV9tYXhTdWNjZXNzb3JzKQorICAgICAg
ICAgICAgaWYgKGJsb2NrLT5zaXplKCkgPiBtX21heFNpemUKKyAgICAgICAgICAgICAgICB8fCBi
bG9jay0+bnVtU3VjY2Vzc29ycygpID4gbV9tYXhTdWNjZXNzb3JzCisgICAgICAgICAgICAgICAg
fHwgIWJsb2NrLT5pc0Nsb25lYWJsZSgpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotCisg
ICAgICAgICAgICAKICAgICAgICAgICAgIGNhbmRpZGF0ZXMuYWRkKGJsb2NrKTsKICAgICAgICAg
fQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlck1hY3Jvcy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJNYWNyb3MuY3BwCShy
ZXZpc2lvbiAyMDE5ODUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlck1hY3Jv
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsNyArMzQsOSBAQAogI2luY2x1ZGUgIkIzQ29uc3RQdHJW
YWx1ZS5oIgogI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNJbnNlcnRp
b25TZXRJbmxpbmVzLmgiCisjaW5jbHVkZSAiQjNNZW1vcnlWYWx1ZS5oIgogI2luY2x1ZGUgIkIz
UGhhc2VTY29wZS5oIgorI2luY2x1ZGUgIkIzUG9seUp1bXBWYWx1ZS5oIgogI2luY2x1ZGUgIkIz
UHJvY2VkdXJlSW5saW5lcy5oIgogI2luY2x1ZGUgIkIzU3dpdGNoVmFsdWUuaCIKICNpbmNsdWRl
ICJCM1Vwc2lsb25WYWx1ZS5oIgpAQCAtMjc1LDggKzI3Nyw5NSBAQCBwcml2YXRlOgogICAgICAg
ICBjb25zdCBWZWN0b3I8U3dpdGNoQ2FzZT4mIGNhc2VzLCB1bnNpZ25lZCBzdGFydCwgYm9vbCBo
YXJkU3RhcnQsIHVuc2lnbmVkIGVuZCwKICAgICAgICAgQmFzaWNCbG9jayogYmVmb3JlKQogICAg
IHsKLSAgICAgICAgLy8gRklYTUU6IEFkZCB0YWJsZS1iYXNlZCBzd2l0Y2ggbG93ZXJpbmcuCi0g
ICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTExNDEK
KyAgICAgICAgVmFsdWUqIGNoaWxkID0gbV92YWx1ZS0+Y2hpbGQoMCk7CisgICAgICAgIFR5cGUg
dHlwZSA9IGNoaWxkLT50eXBlKCk7CisgICAgICAgIEZyZXF1ZW50ZWRCbG9jayBmYWxsVGhyb3Vn
aCA9IG1fdmFsdWUtPmFzPFN3aXRjaFZhbHVlPigpLT5mYWxsVGhyb3VnaCgpOworICAgICAgICAK
KyAgICAgICAgLy8gSXQncyBhIGdvb2QgaWRlYSB0byB1c2UgYSB0YWJsZS1iYXNlZCBzd2l0Y2gg
aW4gc29tZSBjYXNlczogdGhlIG51bWJlciBvZiBjYXNlcyBoYXMgdG8gYmUKKyAgICAgICAgLy8g
bGFyZ2UgZW5vdWdoIGFuZCB0aGV5IGhhdmUgdG8gYmUgZGVuc2UgZW5vdWdoLiBUaGlzIGNvdWxk
IHByb2JhYmx5IGJlIGltcHJvdmVkIGEgbG90LiBGb3IKKyAgICAgICAgLy8gZXhhbXBsZSwgd2Ug
Y291bGQgc3RpbGwgdXNlIGEganVtcCB0YWJsZSBpbiBjYXNlcyB3aGVyZSB0aGUgaW5wdXRzIGFy
ZSBzcGFyc2Ugc28gbG9uZyBhcyB3ZQorICAgICAgICAvLyBzaGlmdCBvZmYgdGhlIHVuaW50ZXJl
c3RpbmcgYml0cy4gT24gdGhlIG90aGVyIGhhbmQsIGl0J3Mgbm90IGNsZWFyIHRoYXQgdGhpcyB3
b3VsZAorICAgICAgICAvLyBhY3R1YWxseSBiZSBhbnkgYmV0dGVyIHRoYW4gd2hhdCB3ZSBoYXZl
IGRvbmUgaGVyZSBhbmQgaXQncyBub3QgY2xlYXIgdGhhdCBpdCB3b3VsZCBiZQorICAgICAgICAv
LyBiZXR0ZXIgdGhhbiBhIGJpbmFyeSBzd2l0Y2guCisgICAgICAgIGNvbnN0IHVuc2lnbmVkIG1p
bkNhc2VzRm9yVGFibGUgPSA3OworICAgICAgICBjb25zdCB1bnNpZ25lZCBkZW5zaXR5TGltaXQg
PSA0OworICAgICAgICBpZiAoZW5kIC0gc3RhcnQgPj0gbWluQ2FzZXNGb3JUYWJsZSkgeworICAg
ICAgICAgICAgaW50NjRfdCBmaXJzdFZhbHVlID0gY2FzZXNbc3RhcnRdLmNhc2VWYWx1ZSgpOwor
ICAgICAgICAgICAgaW50NjRfdCBsYXN0VmFsdWUgPSBjYXNlc1tlbmQgLSAxXS5jYXNlVmFsdWUo
KTsKKyAgICAgICAgICAgIGlmICgobGFzdFZhbHVlIC0gZmlyc3RWYWx1ZSArIDEpIC8gY2FzZXMu
c2l6ZSgpIDwgZGVuc2l0eUxpbWl0KSB7CisgICAgICAgICAgICAgICAgQmFzaWNCbG9jayogc3dp
dGNoQmxvY2sgPSBtX2Jsb2NrSW5zZXJ0aW9uU2V0Lmluc2VydEFmdGVyKG1fYmxvY2spOworICAg
ICAgICAgICAgICAgIFZhbHVlKiBpbmRleCA9IGJlZm9yZS0+YXBwZW5kTmV3PFZhbHVlPigKKyAg
ICAgICAgICAgICAgICAgICAgbV9wcm9jLCBTdWIsIG1fb3JpZ2luLCBjaGlsZCwKKyAgICAgICAg
ICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmRJbnRDb25zdGFudChtX3Byb2MsIG1fb3JpZ2luLCB0
eXBlLCBmaXJzdFZhbHVlKSk7CisgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBCcmFuY2gsIG1fb3JpZ2lu
LAorICAgICAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAg
ICAgICAgICAgICAgICAgICBtX3Byb2MsIEFib3ZlLCBtX29yaWdpbiwgaW5kZXgsCisgICAgICAg
ICAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZEludENvbnN0YW50KG1fcHJvYywgbV9vcmln
aW4sIHR5cGUsIGxhc3RWYWx1ZSAtIGZpcnN0VmFsdWUpKSwKKyAgICAgICAgICAgICAgICAgICAg
ZmFsbFRocm91Z2gsIEZyZXF1ZW50ZWRCbG9jayhzd2l0Y2hCbG9jaykpOworICAgICAgICAgICAg
ICAgIAorICAgICAgICAgICAgICAgIHNpemVfdCB0YWJsZVNpemUgPSBsYXN0VmFsdWUgLSBmaXJz
dFZhbHVlICsgMTsKKyAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIqIGp1bXBU
YWJsZSA9IGJpdHdpc2VfY2FzdDxNYWNyb0Fzc2VtYmxlckNvZGVQdHIqPigKKyAgICAgICAgICAg
ICAgICAgICAgbV9wcm9jLmFkZERhdGFTZWN0aW9uKHNpemVvZihNYWNyb0Fzc2VtYmxlckNvZGVQ
dHIpICogdGFibGVTaXplKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVmFs
dWUqIGJhc2UgPSBzd2l0Y2hCbG9jay0+YXBwZW5kSW50Q29uc3RhbnQoCisgICAgICAgICAgICAg
ICAgICAgIG1fcHJvYywgbV9vcmlnaW4sIHBvaW50ZXJUeXBlKCksIGJpdHdpc2VfY2FzdDxpbnRw
dHJfdD4oanVtcFRhYmxlKSk7CisgICAgICAgICAgICAgICAgaWYgKGluZGV4LT50eXBlKCkgIT0g
YmFzZS0+dHlwZSgpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChpbmRleC0+dHlwZSgpID09
IEludDMyKQorICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPSBzd2l0Y2hCbG9jay0+YXBw
ZW5kTmV3PFZhbHVlPihtX3Byb2MsIFpFeHQzMiwgbV9vcmlnaW4sIGluZGV4KTsKKyAgICAgICAg
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPSBzd2l0Y2hC
bG9jay0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIFRydW5jLCBtX29yaWdpbiwgaW5kZXgpOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpbmRleCA9IHN3aXRjaEJsb2NrLT5h
cHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIE11bCwgbV9vcmln
aW4sIGluZGV4LAorICAgICAgICAgICAgICAgICAgICBzd2l0Y2hCbG9jay0+YXBwZW5kSW50Q29u
c3RhbnQoCisgICAgICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLCBwb2ludGVy
VHlwZSgpLCBzaXplb2YoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKSkpOworICAgICAgICAgICAgICAg
IFZhbHVlKiBwdHIgPSBzd2l0Y2hCbG9jay0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIEFkZCwg
bV9vcmlnaW4sIGJhc2UsIGluZGV4KTsKKyAgICAgICAgICAgICAgICBWYWx1ZSoganVtcFRhcmdl
dCA9CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaEJsb2NrLT5hcHBlbmROZXc8TWVtb3J5VmFs
dWU+KG1fcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgbV9vcmlnaW4sIHB0cik7CisgICAgICAg
ICAgICAgICAgUG9seUp1bXBWYWx1ZSogcG9seUp1bXAgPQorICAgICAgICAgICAgICAgICAgICBz
d2l0Y2hCbG9jay0+YXBwZW5kTmV3PFBvbHlKdW1wVmFsdWU+KG1fcHJvYywgbV9vcmlnaW4sIGp1
bXBUYXJnZXQpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIEJpdFZlY3RvciBo
YW5kbGVkSW5kaWNlczsKKyAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBzdGFydDsg
aSA8IGVuZDsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayBibG9j
ayA9IGNhc2VzW2ldLnRhcmdldCgpOworICAgICAgICAgICAgICAgICAgICBpbnQ2NF90IHZhbHVl
ID0gY2FzZXNbaV0uY2FzZVZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgIHBvbHlKdW1wLT5h
cHBlbmRTdWNjZXNzb3IoYmxvY2spOworICAgICAgICAgICAgICAgICAgICBzaXplX3QgaW5kZXgg
PSB2YWx1ZSAtIGZpcnN0VmFsdWU7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVCghaGFuZGxl
ZEluZGljZXMuZ2V0KGluZGV4KSk7CisgICAgICAgICAgICAgICAgICAgIGhhbmRsZWRJbmRpY2Vz
LnNldChpbmRleCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAg
ICAgICAgICAgIGJvb2wgaGFzVW5oYW5kbGVkSW5kZXggPSBmYWxzZTsKKyAgICAgICAgICAgICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgdGFibGVTaXplOyArK2kpIHsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKCFoYW5kbGVkSW5kaWNlcy5nZXQoaSkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGhhc1VuaGFuZGxlZEluZGV4ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChoYXNVbmhhbmRsZWRJbmRleCkKKyAgICAg
ICAgICAgICAgICAgICAgcG9seUp1bXAtPmFwcGVuZFN1Y2Nlc3NvcihmYWxsVGhyb3VnaCk7Cisg
ICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgcG9seUp1bXAtPnNldENhbGxiYWNrKAor
ICAgICAgICAgICAgICAgICAgICBbPV0gKGNvbnN0IFZlY3RvcjxNYWNyb0Fzc2VtYmxlckNvZGVQ
dHI+JiBwb2ludGVycykgeworICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHBvaW50ZXJJ
bmRleCA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpbmRleCA6IGhh
bmRsZWRJbmRpY2VzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGp1bXBUYWJsZVtpbmRl
eF0gPSBwb2ludGVyc1twb2ludGVySW5kZXgrK107CisgICAgICAgICAgICAgICAgICAgICAgICAK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoYXNVbmhhbmRsZWRJbmRleCkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdGFibGVTaXplOyAr
K2kpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFoYW5kbGVkSW5kaWNl
cy5nZXQoaSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqdW1wVGFibGVb
aV0gPSBwb2ludGVyc1twb2ludGVySW5kZXhdOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2ludGVySW5kZXgrKzsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAg
ICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQocG9pbnRlckluZGV4ID09IHBvaW50ZXJzLnNpemUo
KSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQogICAgICAgICAKICAgICAgICAgLy8gU2VlIGNvbW1lbnRz
IGluIGppdC9CaW5hcnlTd2l0Y2guY3BwIGZvciBhIGp1c3RpZmljYXRpb24gb2YgdGhpcyBhbGdv
cml0aG0uIFRoZSBvbmx5CiAgICAgICAgIC8vIHRoaW5nIHdlIGRvIGRpZmZlcmVudGx5IGlzIHRo
YXQgd2UgZG9uJ3QgdXNlIHJhbmRvbW5lc3MuCkBAIC0zMDcsMjIgKzM5NiwxOSBAQCBwcml2YXRl
OgogICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCiAgICAg
ICAgICAgICAgICAgICAgIG1fcHJvYywgQnJhbmNoLCBtX29yaWdpbiwKICAgICAgICAgICAgICAg
ICAgICAgYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+KAotICAgICAgICAgICAgICAgICAgICAgICAg
bV9wcm9jLCBFcXVhbCwgbV9vcmlnaW4sIG1fdmFsdWUtPmNoaWxkKDApLAorICAgICAgICAgICAg
ICAgICAgICAgICAgbV9wcm9jLCBFcXVhbCwgbV9vcmlnaW4sIGNoaWxkLAogICAgICAgICAgICAg
ICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmRJbnRDb25zdGFudCgKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLCBtX3ZhbHVlLT5jaGlsZCgwKS0+dHlwZSgpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgbV9vcmlnaW4sIHR5cGUsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY2FzZXNbc3RhcnQgKyBpXS5jYXNlVmFsdWUoKSkpLAog
ICAgICAgICAgICAgICAgICAgICBjYXNlc1tzdGFydCArIGldLnRhcmdldCgpLCBGcmVxdWVudGVk
QmxvY2sobmV4dENoZWNrKSk7CiAKICAgICAgICAgICAgICAgICBiZWZvcmUgPSBuZXh0Q2hlY2s7
CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGlmIChhbGxDb25zZWN1dGl2ZSkgewotICAg
ICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCi0gICAgICAgICAg
ICAgICAgICAgIG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIGNhc2VzW2VuZCAtIDFdLnRhcmdldCgp
KTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBKdW1wLCBtX29y
aWdpbiwgbV92YWx1ZS0+YXM8U3dpdGNoVmFsdWU+KCktPmZhbGxUaHJvdWdoKCkpOwotICAgICAg
ICAgICAgfQorICAgICAgICAgICAgaWYgKGFsbENvbnNlY3V0aXZlKQorICAgICAgICAgICAgICAg
IGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4obV9wcm9jLCBKdW1wLCBtX29yaWdpbiwg
Y2FzZXNbZW5kIC0gMV0udGFyZ2V0KCkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4obV9wcm9jLCBKdW1wLCBtX29yaWdp
biwgZmFsbFRocm91Z2gpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAgLTMz
NCw5ICs0MjAsOSBAQCBwcml2YXRlOgogICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAogICAgICAgICAgICAgbV9wcm9jLCBCcmFuY2gsIG1fb3JpZ2luLAogICAgICAgICAg
ICAgYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+KAotICAgICAgICAgICAgICAgIG1fcHJvYywgTGVz
c1RoYW4sIG1fb3JpZ2luLCBtX3ZhbHVlLT5jaGlsZCgwKSwKKyAgICAgICAgICAgICAgICBtX3By
b2MsIExlc3NUaGFuLCBtX29yaWdpbiwgY2hpbGQsCiAgICAgICAgICAgICAgICAgYmVmb3JlLT5h
cHBlbmRJbnRDb25zdGFudCgKLSAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwg
bV92YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSwKKyAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBt
X29yaWdpbiwgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgY2FzZXNbbWVkaWFuSW5kZXhdLmNh
c2VWYWx1ZSgpKSksCiAgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2sobGVmdCksIEZyZXF1ZW50
ZWRCbG9jayhyaWdodCkpOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dl
clRvQWlyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dl
clRvQWlyLmNwcAkocmV2aXNpb24gMjAxOTg1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzTG93ZXJUb0Fpci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1NSw3ICsxNTUsNiBAQCBwdWJs
aWM6CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBz
dWNjZXNzb3JzIGFyZSBzZXQgdXAgY29ycmVjdGx5LgotICAgICAgICAgICAgQVNTRVJUKGJsb2Nr
LT5zdWNjZXNzb3JzKCkuc2l6ZSgpIDw9IDIpOwogICAgICAgICAgICAgZm9yIChCMzo6RnJlcXVl
bnRlZEJsb2NrIHN1Y2Nlc3NvciA6IGJsb2NrLT5zdWNjZXNzb3JzKCkpIHsKICAgICAgICAgICAg
ICAgICBtX2Jsb2NrVG9CbG9ja1tibG9ja10tPnN1Y2Nlc3NvcnMoKS5hcHBlbmQoCiAgICAgICAg
ICAgICAgICAgICAgIEFpcjo6RnJlcXVlbnRlZEJsb2NrKG1fYmxvY2tUb0Jsb2NrW3N1Y2Nlc3Nv
ci5ibG9jaygpXSwgc3VjY2Vzc29yLmZyZXF1ZW5jeSgpKSk7CkBAIC0yNDQxLDYgKzI0NDAsMTYg
QEAgcHJpdmF0ZToKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQorICAgICAgICAgICAgCisgICAgICAgIGNhc2UgQjM6OlBvbHlKdW1wOiB7CisgICAgICAgICAg
ICBBcmdQcm9taXNlIGFkZHIgPSBsb2FkUHJvbWlzZShtX3ZhbHVlLT5jaGlsZCgwKSk7CisgICAg
ICAgICAgICBpZiAoaXNWYWxpZEZvcm0oQWlyOjpQb2x5SnVtcCwgYWRkci5raW5kKCkpKSB7Cisg
ICAgICAgICAgICAgICAgYXBwZW5kKEFpcjo6UG9seUp1bXAsIGFkZHIuY29uc3VtZSgqdGhpcykp
OworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGFw
cGVuZChBaXI6OlBvbHlKdW1wLCB0bXAobV92YWx1ZS0+Y2hpbGQoMCkpKTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQogCiAgICAgICAgIGNhc2UgQjM6Ok9vcHM6IHsKICAgICAgICAg
ICAgIGFwcGVuZChBaXI6Ok9vcHMpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
T3Bjb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNv
ZGUuY3BwCShyZXZpc2lvbiAyMDE5ODUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNP
cGNvZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOTAsNiArMjkwLDkgQEAgdm9pZCBwcmludElu
dGVybmFsKFByaW50U3RyZWFtJiBvdXQsIE9wYwogICAgIGNhc2UgU3dpdGNoOgogICAgICAgICBv
dXQucHJpbnQoIlN3aXRjaCIpOwogICAgICAgICByZXR1cm47CisgICAgY2FzZSBQb2x5SnVtcDoK
KyAgICAgICAgb3V0LnByaW50KCJQb2x5SnVtcCIpOworICAgICAgICByZXR1cm47CiAgICAgY2Fz
ZSBSZXR1cm46CiAgICAgICAgIG91dC5wcmludCgiUmV0dXJuIik7CiAgICAgICAgIHJldHVybjsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5oCShyZXZpc2lvbiAyMDE5ODUpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuaAkod29ya2luZyBjb3B5KQpAQCAt
MjE2LDYgKzIxNiwxMyBAQCBlbnVtIE9wY29kZSA6IGludDE2X3QgewogCiAgICAgLy8gU3dpdGNo
LiBTd2l0Y2hlcyBvdmVyIGVpdGhlciBJbnQzMiBvciBJbnQ2NC4gVXNlcyB0aGUgU3dpdGNoVmFs
dWUgY2xhc3MuCiAgICAgU3dpdGNoLAorICAgIAorICAgIC8vIEp1bXAgdG8gdGhlIGdpdmVuIGFk
ZHJlc3MuIFRoZSBjb21waWxlciBhc3N1bWVzIHRoYXQgdGhpcyB3aWxsIGp1bXAgdG8gb25lIG9m
IHRoZSBzdXBwbGllZAorICAgIC8vIHN1Y2Nlc3NvcnMsIGJ1dCB3aWxsIG1ha2UgYWJzb2x1dGVs
eSBubyBhc3N1bXB0aW9ucyBhYm91dCB3aGljaC4gSXQncyBlbnRpcmVseSB1cCB0byB0aGUgdXNl
cgorICAgIC8vIHRvIGFycmFuZ2UgZm9yIHRoZSBqdW1wIHRvIGp1bXAgdG8gb25lIG9mIHRob3Nl
IHN1Y2Nlc3NvcnMuIFRoaXMgY2Fubm90IHRyYXAgb3IgZG8gYW55dGhpbmcgYnV0CisgICAgLy8g
anVtcCB0byBvbmUgb2YgdGhlIHN1Y2Nlc3NvcnM7IGlmIGl0IGRvZXMgYW55dGhpbmcgZWxzZSB0
aGVuIGRlbW9ucyB3aWxsIGNvbWUgb3V0IG9mIHRoZSB1c2VyJ3MKKyAgICAvLyBub3NlLiAKKyAg
ICBQb2x5SnVtcCwKIAogICAgIC8vIFJldHVybi4gTm90ZSB0aGF0IEIzIHByb2NlZHVyZXMgZG9u
J3Qga25vdyB0aGVpciByZXR1cm4gdHlwZSwgc28gdGhpcyBjYW4ganVzdCByZXR1cm4gYW55CiAg
ICAgLy8gdHlwZS4gVXNlcyB0aGUgQ29udHJvbFZhbHVlIGNsYXNzLgpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzUG9seUp1bXBWYWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzUG9seUp1bXBWYWx1ZS5jcHAJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQb2x5SnVtcFZhbHVlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJCM1BvbHlKdW1wVmFsdWUu
aCIKKworI2lmIEVOQUJMRShCM19KSVQpCisKKyNpbmNsdWRlICJCM0Jhc2ljQmxvY2suaCIKKwor
bmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CisKK1BvbHlKdW1wVmFsdWU6On5Qb2x5SnVt
cFZhbHVlKCkKK3sKK30KKwordm9pZCBQb2x5SnVtcFZhbHVlOjphcHBlbmRTdWNjZXNzb3IoY29u
c3QgRnJlcXVlbnRlZEJsb2NrJiBibG9jaykKK3sKKyAgICBtX3N1Y2Nlc3NvcnMuYXBwZW5kKGJs
b2NrKTsKK30KKwordm9pZCBQb2x5SnVtcFZhbHVlOjpzZXRDYWxsYmFja1Rhc2soUmVmUHRyPFNo
YXJlZFRhc2s8Q2FsbGJhY2tGdW5jdGlvblR5cGU+PiB0YXNrKQoreworICAgIG1fdGFzayA9IHRh
c2s7Cit9CisKK2Jvb2wgUG9seUp1bXBWYWx1ZTo6aXNDbG9uZWFibGUoKSBjb25zdAoreworICAg
IHJldHVybiBmYWxzZTsKK30KKwordm9pZCBQb2x5SnVtcFZhbHVlOjpkdW1wTWV0YShDb21tYVBy
aW50ZXImIGNvbW1hLCBQcmludFN0cmVhbSYgb3V0KSBjb25zdAoreworICAgIENvbnRyb2xWYWx1
ZTo6ZHVtcE1ldGEoY29tbWEsIG91dCk7CisgICAgb3V0LnByaW50KGNvbW1hLCAidGFzayA9ICIs
IFJhd1BvaW50ZXIobV90YXNrLmdldCgpKSk7Cit9CisKK1ZhbHVlKiBQb2x5SnVtcFZhbHVlOjpj
bG9uZUltcGwoKSBjb25zdAoreworICAgIGRhdGFMb2coIkZBVEFMOiBBdHRlbXB0IHRvIGNsb25l
IG5vbi1jbG9uZWFibGUgUG9seUp1bXBWYWx1ZSFcbiIpOworICAgIFJFTEVBU0VfQVNTRVJUX05P
VF9SRUFDSEVEKCk7Cit9CisKK1BvbHlKdW1wVmFsdWU6OlBvbHlKdW1wVmFsdWUoT3JpZ2luIG9y
aWdpbiwgVmFsdWUqIGNoaWxkKQorICAgIDogQ29udHJvbFZhbHVlKFBvbHlKdW1wLCBWb2lkLCBv
cmlnaW4sIGNoaWxkKQoreworfQorCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKKworI2VuZGlm
IC8vIEVOQUJMRShCM19KSVQpCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Bv
bHlKdW1wVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQ
b2x5SnVtcFZhbHVlLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNQb2x5SnVtcFZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEIzUG9seUp1
bXBWYWx1ZV9oCisjZGVmaW5lIEIzUG9seUp1bXBWYWx1ZV9oCisKKyNpZiBFTkFCTEUoQjNfSklU
KQorCisjaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKKyNpbmNsdWRlIDx3dGYvU2hhcmVkVGFz
ay5oPgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKKworY2xhc3MgUG9seUp1bXBW
YWx1ZSA6IHB1YmxpYyBDb250cm9sVmFsdWUgeworcHVibGljOgorICAgIHN0YXRpYyBib29sIGFj
Y2VwdHMoT3Bjb2RlIG9wY29kZSkgeyByZXR1cm4gb3Bjb2RlID09IFBvbHlKdW1wOyB9CisgICAg
CisgICAgflBvbHlKdW1wVmFsdWUoKTsKKyAgICAKKyAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lk
IGFwcGVuZFN1Y2Nlc3Nvcihjb25zdCBGcmVxdWVudGVkQmxvY2smKTsKKyAgICAKKyAgICB0eXBl
ZGVmIHZvaWQgQ2FsbGJhY2tGdW5jdGlvblR5cGUoY29uc3QgVmVjdG9yPE1hY3JvQXNzZW1ibGVy
Q29kZVB0cj4mKTsKKyAgICAKKyAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIHNldENhbGxiYWNr
VGFzayhSZWZQdHI8U2hhcmVkVGFzazxDYWxsYmFja0Z1bmN0aW9uVHlwZT4+IHRhc2spOworICAg
IAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmM+CisgICAgdm9pZCBzZXRDYWxsYmFjayhjb25z
dCBGdW5jJiBmdW5jKQorICAgIHsKKyAgICAgICAgc2V0Q2FsbGJhY2tUYXNrKGNyZWF0ZVNoYXJl
ZFRhc2s8Q2FsbGJhY2tGdW5jdGlvblR5cGU+KGZ1bmMpKTsKKyAgICB9CisgICAgCisgICAgU2hh
cmVkVGFzazxDYWxsYmFja0Z1bmN0aW9uVHlwZT4qIGNhbGxiYWNrVGFzaygpIGNvbnN0IHsgcmV0
dXJuIG1fdGFzay5nZXQoKTsgfQorICAgIAorICAgIGJvb2wgaXNDbG9uZWFibGUoKSBjb25zdCBv
dmVycmlkZTsKKworcHJvdGVjdGVkOgorICAgIHZvaWQgZHVtcE1ldGEoQ29tbWFQcmludGVyJiwg
UHJpbnRTdHJlYW0mKSBjb25zdCBvdmVycmlkZTsKKyAgICAKKyAgICBWYWx1ZSogY2xvbmVJbXBs
KCkgY29uc3Qgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIFByb2NlZHVy
ZTsKKyAgICAKKyAgICBKU19FWFBPUlRfUFJJVkFURSBQb2x5SnVtcFZhbHVlKE9yaWdpbiwgVmFs
dWUqIGNoaWxkKTsKKyAgICAKKyAgICBSZWZQdHI8U2hhcmVkVGFzazxDYWxsYmFja0Z1bmN0aW9u
VHlwZT4+IG1fdGFzazsKK307CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMworCisjZW5kaWYg
Ly8gRU5BQkxFKEIzX0pJVCkKKworI2VuZGlmIC8vIEIzUG9seUp1bXBWYWx1ZV9oCisKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmNwcAkocmV2aXNpb24gMjAxOTg1
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtODIsNiArODIsOCBAQCBWYXJpYWJsZSogUHJvY2VkdXJlOjphZGRWYXJpYWJsZShU
eXBlIHR5CiAKIFZhbHVlKiBQcm9jZWR1cmU6OmNsb25lKFZhbHVlKiB2YWx1ZSkKIHsKKyAgICBB
U1NFUlQodmFsdWUtPmlzQ2xvbmVhYmxlKCkpOworICAgIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxW
YWx1ZT4gY2xvbmUodmFsdWUtPmNsb25lSW1wbCgpKTsKICAgICBjbG9uZS0+bV9pbmRleCA9IFVJ
TlRfTUFYOwogICAgIGNsb25lLT5vd25lciA9IG51bGxwdHI7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNQcm9jZWR1cmUuaAkocmV2aXNpb24gMjAxOTg1KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMSw2ICsxMDEs
NyBAQCBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVmFsdWVUeXBlLCB0eXBlbmFtZS4u
LiBBcmd1bWVudHM+CiAgICAgVmFsdWVUeXBlKiBhZGQoQXJndW1lbnRzLi4uKTsKIAorICAgIC8v
IE5vdGUgdGhhdCBub3QgYWxsIHZhbHVlcyBhcmUgY2xvbmVhYmxlLiBDaGVjayBWYWx1ZTo6aXND
bG9uZWFibGUoKSBiZWZvcmUgcHJvY2VlZGluZy4KICAgICBWYWx1ZSogY2xvbmUoVmFsdWUqKTsK
IAogICAgIFZhbHVlKiBhZGRJbnRDb25zdGFudChPcmlnaW4sIFR5cGUsIGludDY0X3QgdmFsdWUp
OwpAQCAtMjE4LDYgKzIxOSw5IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IGNoYXIqIGxhc3RQaGFz
ZU5hbWUoKSBjb25zdCB7IHJldHVybiBtX2xhc3RQaGFzZU5hbWU7IH0KIAorICAgIC8vIEFsbG9j
YXRlcyBhIHNsYWIgb2YgbWVtb3J5IHRoYXQgd2lsbCBiZSBrZXB0IGFsaXZlIGJ5IGFueW9uZSB3
aG8ga2VlcHMgdGhlIHJlc3VsdGluZyBjb2RlCisgICAgLy8gYWxpdmUuIEdyZWF0IGZvciBjb21w
aWxlci1nZW5lcmF0ZWQgZGF0YSBzZWN0aW9ucywgbGlrZSBzd2l0Y2gganVtcCB0YWJsZXMgYW5k
IGNvbnN0YW50IHBvb2xzLgorICAgIC8vIFRoaXMgcmV0dXJucyBtZW1vcnkgdGhhdCBoYXMgYmVl
biB6ZXJvLWluaXRpYWxpemVkLgogICAgIHZvaWQqIGFkZERhdGFTZWN0aW9uKHNpemVfdCBzaXpl
KTsKIAogICAgIE9wYXF1ZUJ5cHJvZHVjdHMmIGJ5cHJvZHVjdHMoKSB7IHJldHVybiAqbV9ieXBy
b2R1Y3RzOyB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VTdHJlbmd0
aC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3Ry
ZW5ndGguY3BwCShyZXZpc2lvbiAyMDE5ODUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNSZWR1Y2VTdHJlbmd0aC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3NzMsNyArMTc3MywxNyBA
QCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUtPm9wY29kZSgpID09
IFNlbGVjdAogICAgICAgICAgICAgICAgICAgICAgICAgJiYgKHZhbHVlLT5jaGlsZCgxKS0+aXND
b25zdGFudCgpICYmIHZhbHVlLT5jaGlsZCgyKS0+aXNDb25zdGFudCgpKTsKICAgICAgICAgICAg
ICAgICB9KTsKLSAgICAgICAgICAgIGlmIChzZWxlY3QpIHsKKyAgICAgICAgICAgIAorICAgICAg
ICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgdGhlIHJlbGV2YW50IGNvZGUgaXMgY2xvbmVhYmxlLgor
ICAgICAgICAgICAgYm9vbCBhbGxBcmVDbG9uZWFibGUgPSB0cnVlOworICAgICAgICAgICAgZm9y
ICh1bnNpZ25lZCBpbmRleCA9IG1faW5kZXggKyAxOyBpbmRleC0tOykgeworICAgICAgICAgICAg
ICAgIFZhbHVlKiB2YWx1ZSA9IG1fYmxvY2stPmF0KGluZGV4KTsKKyAgICAgICAgICAgICAgICBh
bGxBcmVDbG9uZWFibGUgJj0gdmFsdWUtPmlzQ2xvbmVhYmxlKCk7CisgICAgICAgICAgICAgICAg
aWYgKHZhbHVlID09IHNlbGVjdCkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChzZWxlY3QgJiYgYWxsQXJlQ2xv
bmVhYmxlKSB7CiAgICAgICAgICAgICAgICAgc3BlY2lhbGl6ZVNlbGVjdChzZWxlY3QpOwogICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzVmFsaWRhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM1ZhbGlkYXRlLmNwcAkocmV2aXNpb24gMjAxOTg1KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzVmFsaWRhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zODcsNiArMzg3
LDExIEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICBWQUxJREFURShpc0ludCh2YWx1ZS0+Y2hp
bGQoMCktPnR5cGUoKSksICgiQXQgIiwgKnZhbHVlKSk7CiAgICAgICAgICAgICAgICAgVkFMSURB
VEUodmFsdWUtPnR5cGUoKSA9PSBWb2lkLCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBQb2x5SnVtcDoKKyAgICAgICAgICAgICAgICBW
QUxJREFURSh2YWx1ZS0+bnVtQ2hpbGRyZW4oKSA9PSAxLCAoIkF0ICIsICp2YWx1ZSkpOworICAg
ICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT5jaGlsZCgwKS0+dHlwZSgpID09IHBvaW50ZXJU
eXBlKCksICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUt
PnR5cGUoKSA9PSBWb2lkLCAoIkF0ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBWQUxJREFURSghKHZhbHVlLT5lZmZlY3Rz
KCkud3JpdGVzICYmIHZhbHVlLT5rZXkoKSksICgiQXQgIiwgKnZhbHVlKSk7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuY3BwCShyZXZpc2lvbiAyMDE5ODUpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU0MCw2ICs1
NDAsNyBAQCBFZmZlY3RzIFZhbHVlOjplZmZlY3RzKCkgY29uc3QKICAgICBjYXNlIEp1bXA6CiAg
ICAgY2FzZSBCcmFuY2g6CiAgICAgY2FzZSBTd2l0Y2g6CisgICAgY2FzZSBQb2x5SnVtcDoKICAg
ICBjYXNlIFJldHVybjoKICAgICBjYXNlIE9vcHM6CiAgICAgICAgIHJlc3VsdC50ZXJtaW5hbCA9
IHRydWU7CkBAIC01NDgsNiArNTQ5LDExIEBAIEVmZmVjdHMgVmFsdWU6OmVmZmVjdHMoKSBjb25z
dAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK2Jvb2wgVmFsdWU6OmlzQ2xvbmVhYmxlKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogVmFsdWVLZXkgVmFsdWU6OmtleSgpIGNvbnN0
CiB7CiAgICAgc3dpdGNoIChvcGNvZGUoKSkgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNW
YWx1ZS5oCShyZXZpc2lvbiAyMDE5ODUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNW
YWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMDAsNiArMjAwLDExIEBAIHB1YmxpYzoKICAgICBi
b29sIGlzTGlrZU5vblplcm8oKSBjb25zdCB7IHJldHVybiBhc1RyaVN0YXRlKCkgPT0gVHJ1ZVRy
aVN0YXRlOyB9CiAKICAgICBFZmZlY3RzIGVmZmVjdHMoKSBjb25zdDsKKyAgICAKKyAgICAvLyBT
b21lIG9wZXJhdGlvbnMgd2lsbCByZWZ1c2UgdG8gYmUgY2xvbmVkLiBUaGlzIGhhcHBlbnMgd2hl
biB0aGUgb3BlcmF0aW9uIGhhcyBzb21lIGluc2lkZQorICAgIC8vIGtub3dsZWRnZSBhYm91dCB0
aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gaXRzIGlkZW50aXR5IGFuZCB0aGUgaWRlbnRpdHkgb2Yg
dGhlIGNvZGUgaXQgd2lsbAorICAgIC8vIGdlbmVyYXRlLgorICAgIHZpcnR1YWwgYm9vbCBpc0Ns
b25lYWJsZSgpIGNvbnN0OwogCiAgICAgLy8gVGhpcyByZXR1cm5zIGEgVmFsdWVLZXkgdGhhdCBk
ZXNjcmliZXMgdGhhdCB0aGlzIFZhbHVlIHJldHVybnMgd2hlbiBpdCBleGVjdXRlcy4gUmV0dXJu
cyBhbgogICAgIC8vIGVtcHR5IFZhbHVlS2V5IGlmIHRoaXMgVmFsdWUgaXMgaW1wdXJlLiBOb3Rl
IHRoYXQgYW4gb3BlcmF0aW9uIHRoYXQgcmV0dXJucyBWb2lkIGNvdWxkIHN0aWxsCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcAkocmV2aXNpb24gMjAxOTg1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1
LDcgQEAKICNpbmNsdWRlICJCM0NvbnN0UHRyVmFsdWUuaCIKICNpbmNsdWRlICJCM0NvbnRyb2xW
YWx1ZS5oIgogI2luY2x1ZGUgIkIzRWZmZWN0cy5oIgorI2luY2x1ZGUgIkIzUG9seUp1bXBWYWx1
ZS5oIgogI2luY2x1ZGUgIkIzTWF0aEV4dHJhcy5oIgogI2luY2x1ZGUgIkIzTWVtb3J5VmFsdWUu
aCIKICNpbmNsdWRlICJCM1Byb2NlZHVyZS5oIgpAQCAtNDQsNiArNDUsNyBAQAogI2luY2x1ZGUg
IkIzU3dpdGNoVmFsdWUuaCIKICNpbmNsdWRlICJCM1Vwc2lsb25WYWx1ZS5oIgogI2luY2x1ZGUg
IkIzVmFsdWVJbmxpbmVzLmgiCisjaW5jbHVkZSAiQjNWYXJpYWJsZVZhbHVlLmgiCiAjaW5jbHVk
ZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiSW5pdGlhbGl6ZVRocmVhZGluZy5oIgogI2lu
Y2x1ZGUgIkpTQ0lubGluZXMuaCIKQEAgLTUyLDYgKzU0LDcgQEAKICNpbmNsdWRlICJWTS5oIgog
I2luY2x1ZGUgPGNtYXRoPgogI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDx3dGYvTGlzdER1
bXAuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9OdW1iZXJPZkNvcmVz
Lmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgpAQCAtNzMsNiArNzYsMTEgQEAgdXNpbmcg
bmFtZXNwYWNlIEpTQzo6QjM7CiAKIG5hbWVzcGFjZSB7CiAKK2Jvb2wgc2hvdWxkQmVWZXJib3Nl
KCkKK3sKKyAgICByZXR1cm4gc2hvdWxkRHVtcElSKEIzTW9kZSk7Cit9CisKIFN0YXRpY0xvY2sg
Y3Jhc2hMb2NrOwogCiAvLyBOb3RoaW5nIGZhbmN5IGZvciBub3c7IHdlIGp1c3QgdXNlIHRoZSBl
eGlzdGluZyBXVEYgYXNzZXJ0aW9uIG1hY2hpbmVyeS4KQEAgLTEwMTI4LDcgKzEwMTM2LDEwIEBA
IHZvaWQgdGVzdFN3aXRjaENoaWxsRGl2KHVuc2lnbmVkIGRlZ3JlZSwKICAgICBhdXRvIGNvZGUg
PSBjb21waWxlKHByb2MpOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGRlZ3JlZTsg
KytpKSB7Ci0gICAgICAgIENIRUNLKGludm9rZTxpbnQzMl90PigqY29kZSwgaSAqIGdhcCwgNDIs
IDExKSA9PSAoKGkgJiAxKSA/IDExLzQyIDogNDIvMTEpKTsKKyAgICAgICAgZGF0YUxvZygiaSA9
ICIsIGksICJcbiIpOworICAgICAgICBpbnQzMl90IHJlc3VsdCA9IGludm9rZTxpbnQzMl90Pigq
Y29kZSwgaSAqIGdhcCwgNDIsIDExKTsKKyAgICAgICAgZGF0YUxvZygicmVzdWx0ID0gIiwgcmVz
dWx0LCAiXG4iKTsKKyAgICAgICAgQ0hFQ0socmVzdWx0ID09ICgoaSAmIDEpID8gMTEvNDIgOiA0
Mi8xMSkpOwogICAgICAgICBpZiAoZ2FwID4gMSkgewogICAgICAgICAgICAgQ0hFQ0soIWludm9r
ZTxpbnQzMl90PigqY29kZSwgaSAqIGdhcCArIDEsIDQyLCAxMSkpOwogICAgICAgICAgICAgQ0hF
Q0soIWludm9rZTxpbnQzMl90PigqY29kZSwgaSAqIGdhcCAtIDEsIDQyLCAxMSkpOwpAQCAtMTIw
NTAsNiArMTIwNjEsMjMxIEBAIHZvaWQgdGVzdExhdGVSZWdpc3RlcigpCiAgICAgQ0hFQ0soaW52
b2tlPHVpbnQ2NF90PigqY29kZSkgPT0gcmVzdWx0KTsKIH0KIAordm9pZCB0aHJlYWRlZEludGVy
cHJldGVyUHJpbnQoVmVjdG9yPGludHB0cl90Piogc3RyZWFtLCBpbnRwdHJfdCB2YWx1ZSkKK3sK
KyAgICBzdHJlYW0tPmFwcGVuZCh2YWx1ZSk7Cit9CisKK3ZvaWQgdGVzdFRocmVhZGVkSW50ZXJw
cmV0ZXIoKQoreworICAgIC8vIFRoaXMgY3JlYXRlcyBhIHBvb3IgbWFuJ3MgdGhyZWFkZWQgaW50
ZXJwcmV0ZXIgdXNpbmcgUG9seUp1bXAgYW5kIHNlZXMgaWYgaXQgd29ya3MuIE5vdGUKKyAgICAv
LyB0aGF0IFBvbHlKdW1wIGlzIG5vdCBsaWtlIGluZGlyZWN0IGJyYW5jaGVzIGluIExMVk0sIHNv
IHlvdSBjYW4ndCBhY3R1YWxseSB1c2UgaXQgdG8KKyAgICAvLyBpbXBsZW1lbnQgYSBwcm9wZXIg
dGhyZWFkZWQgaW50ZXJwcmV0ZXIuIFRoaXMgY2hlYXRzOiB0aGUgZGlzcGF0Y2ggaW5zdHJ1Y3Rp
b24gaXMgYXQgdGhlIHRvcAorICAgIC8vIG9mIHRoZSBsb29wLiBUaGlzIGFsc28gdGVzdHMgVmFy
aWFibGVWYWx1ZS4KKyAgICAKKyAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICAKKyAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOworICAgIEJhc2ljQmxvY2sqIGRpc3BhdGNoID0g
cHJvYy5hZGRCbG9jaygpOworICAgIEJhc2ljQmxvY2sqIGFkZFRvRGF0YVBvaW50ZXIgPSBwcm9j
LmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayogYWRkVG9Db2RlUG9pbnRlciA9IHByb2MuYWRk
QmxvY2soKTsKKyAgICBCYXNpY0Jsb2NrKiBhZGRUb0NvZGVQb2ludGVyVGFrZW4gPSBwcm9jLmFk
ZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayogYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuID0gcHJv
Yy5hZGRCbG9jaygpOworICAgIEJhc2ljQmxvY2sqIGFkZFRvRGF0YSA9IHByb2MuYWRkQmxvY2so
KTsKKyAgICBCYXNpY0Jsb2NrKiBwcmludCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBCYXNpY0Js
b2NrKiBzdG9wID0gcHJvYy5hZGRCbG9jaygpOworICAgIAorICAgIFZhcmlhYmxlKiBkYXRhUG9p
bnRlciA9IHByb2MuYWRkVmFyaWFibGUocG9pbnRlclR5cGUoKSk7CisgICAgVmFyaWFibGUqIGNv
ZGVQb2ludGVyID0gcHJvYy5hZGRWYXJpYWJsZShwb2ludGVyVHlwZSgpKTsKKyAgICAKKyAgICBy
b290LT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2lu
KCksIGRhdGFQb2ludGVyLAorICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOworICAgIHJvb3QtPmFw
cGVuZE5ldzxWYXJpYWJsZVZhbHVlPigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgY29k
ZVBvaW50ZXIsCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7CisgICAgVmFsdWUqIGNvbnRleHQg
PSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMik7CisgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhkaXNwYXRjaCkpOworICAgIAorICAg
IFBvbHlKdW1wVmFsdWUqIHBvbHlKdW1wID0gZGlzcGF0Y2gtPmFwcGVuZE5ldzxQb2x5SnVtcFZh
bHVlPigKKyAgICAgICAgcHJvYywgT3JpZ2luKCksCisgICAgICAgIGRpc3BhdGNoLT5hcHBlbmRO
ZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwg
T3JpZ2luKCksCisgICAgICAgICAgICBkaXNwYXRjaC0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+
KAorICAgICAgICAgICAgICAgIHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlcikp
KTsKKyAgICBwb2x5SnVtcC0+YXBwZW5kU3VjY2Vzc29yKEZyZXF1ZW50ZWRCbG9jayhhZGRUb0Rh
dGFQb2ludGVyKSk7CisgICAgcG9seUp1bXAtPmFwcGVuZFN1Y2Nlc3NvcihGcmVxdWVudGVkQmxv
Y2soYWRkVG9Db2RlUG9pbnRlcikpOworICAgIHBvbHlKdW1wLT5hcHBlbmRTdWNjZXNzb3IoRnJl
cXVlbnRlZEJsb2NrKGFkZFRvRGF0YSkpOworICAgIHBvbHlKdW1wLT5hcHBlbmRTdWNjZXNzb3Io
RnJlcXVlbnRlZEJsb2NrKHByaW50KSk7CisgICAgcG9seUp1bXAtPmFwcGVuZFN1Y2Nlc3NvcihG
cmVxdWVudGVkQmxvY2soc3RvcCkpOworICAgIAorICAgIC8vIE91ciAib3Bjb2RlcyIuIFRoZXkg
d2lsbCBoYXZlIG1lYW5pbmcgb25jZSB3ZSBjb21waWxlLgorICAgIGludHB0cl90IEFkZERQID0g
MDsKKyAgICBpbnRwdHJfdCBBZGRDUCA9IDA7CisgICAgaW50cHRyX3QgQWRkID0gMDsKKyAgICBp
bnRwdHJfdCBQcmludCA9IDA7CisgICAgaW50cHRyX3QgU3RvcCA9IDA7CisgICAgcG9seUp1bXAt
PnNldENhbGxiYWNrKAorICAgICAgICBbJl0gKGNvbnN0IFZlY3RvcjxNYWNyb0Fzc2VtYmxlckNv
ZGVQdHI+JiBwb2ludGVycykgeworICAgICAgICAgICAgYXV0byBnZXQgPSBbJl0gKHNpemVfdCBp
bmRleCkgLT4gaW50cHRyX3QgeworICAgICAgICAgICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8
aW50cHRyX3Q+KHBvaW50ZXJzW2luZGV4XS5leGVjdXRhYmxlQWRkcmVzcygpKTsKKyAgICAgICAg
ICAgIH07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIEFkZERQID0gZ2V0KDApOworICAgICAg
ICAgICAgQWRkQ1AgPSBnZXQoMSk7CisgICAgICAgICAgICBBZGQgPSBnZXQoMik7CisgICAgICAg
ICAgICBQcmludCA9IGdldCgzKTsKKyAgICAgICAgICAgIFN0b3AgPSBnZXQoNCk7CisgICAgICAg
IH0pOworICAgIAorICAgIC8vIEFkZERQIDxvcGVyYW5kPjogYWRkcyA8b3BlcmFuZD4gdG8gRFAu
CisgICAgVmFsdWUqIGNvZGVQb2ludGVyVmFsdWUgPQorICAgICAgICBhZGRUb0RhdGFQb2ludGVy
LT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGNvZGVQ
b2ludGVyKTsKKyAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4o
CisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGRhdGFQb2ludGVyLAorICAgICAgICBhZGRU
b0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgQjM6OkFk
ZCwgT3JpZ2luKCksCisgICAgICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFy
aWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGRhdGFQb2ludGVyKSwKKyAgICAg
ICAgICAgIGFkZFRvRGF0YVBvaW50ZXItPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICAg
ICAgcHJvYywgTXVsLCBPcmlnaW4oKSwKKyAgICAgICAgICAgICAgICBhZGRUb0RhdGFQb2ludGVy
LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICAgICAgICAgICAgICBwcm9jLCBMb2Fk
LCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwgc2l6ZW9mKGludHB0
cl90KSksCisgICAgICAgICAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kSW50Q29uc3Rh
bnQoCisgICAgICAgICAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLCBwb2ludGVyVHlwZSgpLCBz
aXplb2YoaW50cHRyX3QpKSkpKTsKKyAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFy
aWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyLAor
ICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAg
cHJvYywgQjM6OkFkZCwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUsCisgICAgICAgICAgICBh
ZGRUb0RhdGFQb2ludGVyLT5hcHBlbmRJbnRDb25zdGFudCgKKyAgICAgICAgICAgICAgICBwcm9j
LCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6ZW9mKGludHB0cl90KSAqIDIpKSk7CisgICAg
YWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3Jp
Z2luKCksIEZyZXF1ZW50ZWRCbG9jayhkaXNwYXRjaCkpOworICAgIAorICAgIC8vIEFkZENQIDxv
cGVyYW5kPjogYWRkcyA8b3BlcmFuZD4gdG8gQ1AgaWYgdGhlIGN1cnJlbnQgdmFsdWUgYXQgRFAg
aXMgbm9uLXplcm8sIG90aGVyd2lzZQorICAgIC8vIGZhbGxzIHRocm91Z2ggbm9ybWFsbHkuCisg
ICAgY29kZVBvaW50ZXJWYWx1ZSA9CisgICAgICAgIGFkZFRvQ29kZVBvaW50ZXItPmFwcGVuZE5l
dzxWYXJpYWJsZVZhbHVlPihwcm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIpOwor
ICAgIFZhbHVlKiBkYXRhUG9pbnRlclZhbHVlID0KKyAgICAgICAgYWRkVG9Db2RlUG9pbnRlci0+
YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBkYXRhUG9p
bnRlcik7CisgICAgYWRkVG9Db2RlUG9pbnRlci0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCisgICAgICAgIGFkZFRvQ29kZVBvaW50ZXIt
PmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVy
VHlwZSgpLCBPcmlnaW4oKSwgZGF0YVBvaW50ZXJWYWx1ZSksCisgICAgICAgIEZyZXF1ZW50ZWRC
bG9jayhhZGRUb0NvZGVQb2ludGVyVGFrZW4pLCBGcmVxdWVudGVkQmxvY2soYWRkVG9Db2RlUG9p
bnRlck5vdFRha2VuKSk7CisgICAgYWRkVG9Db2RlUG9pbnRlclRha2VuLT5hcHBlbmROZXc8VmFy
aWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyLAor
ICAgICAgICBhZGRUb0NvZGVQb2ludGVyVGFrZW4tPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAg
ICAgICBwcm9jLCBCMzo6QWRkLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwKKyAgICAgICAg
ICAgIGFkZFRvQ29kZVBvaW50ZXJUYWtlbi0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAg
ICAgICBwcm9jLCBNdWwsIE9yaWdpbigpLAorICAgICAgICAgICAgICAgIGFkZFRvQ29kZVBvaW50
ZXJUYWtlbi0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAgICAgICAgICAgcHJv
YywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUsIHNpemVv
ZihpbnRwdHJfdCkpLAorICAgICAgICAgICAgICAgIGFkZFRvQ29kZVBvaW50ZXJUYWtlbi0+YXBw
ZW5kSW50Q29uc3RhbnQoCisgICAgICAgICAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLCBwb2lu
dGVyVHlwZSgpLCBzaXplb2YoaW50cHRyX3QpKSkpKTsKKyAgICBhZGRUb0NvZGVQb2ludGVyVGFr
ZW4tPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVu
dGVkQmxvY2soZGlzcGF0Y2gpKTsKKyAgICBhZGRUb0NvZGVQb2ludGVyTm90VGFrZW4tPmFwcGVu
ZE5ldzxWYXJpYWJsZVZhbHVlPigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgY29kZVBv
aW50ZXIsCisgICAgICAgIGFkZFRvQ29kZVBvaW50ZXJOb3RUYWtlbi0+YXBwZW5kTmV3PFZhbHVl
PigKKyAgICAgICAgICAgIHByb2MsIEIzOjpBZGQsIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVl
LAorICAgICAgICAgICAgYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuLT5hcHBlbmRJbnRDb25zdGFu
dCgKKyAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6ZW9m
KGludHB0cl90KSAqIDIpKSk7CisgICAgYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuLT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50
ZWRCbG9jayhkaXNwYXRjaCkpOworCisgICAgLy8gQWRkIDxvcGVyYW5kPjogYWRkcyA8b3BlcmFu
ZD4gdG8gdGhlIHNsb3QgcG9pbnRlZCB0byBieSBEUC4KKyAgICBjb2RlUG9pbnRlclZhbHVlID0g
YWRkVG9EYXRhLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2lu
KCksIGNvZGVQb2ludGVyKTsKKyAgICBkYXRhUG9pbnRlclZhbHVlID0gYWRkVG9EYXRhLT5hcHBl
bmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGRhdGFQb2ludGVy
KTsKKyAgICBhZGRUb0RhdGEtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgIHByb2Ms
IFN0b3JlLCBPcmlnaW4oKSwKKyAgICAgICAgYWRkVG9EYXRhLT5hcHBlbmROZXc8VmFsdWU+KAor
ICAgICAgICAgICAgcHJvYywgQjM6OkFkZCwgT3JpZ2luKCksCisgICAgICAgICAgICBhZGRUb0Rh
dGEtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgICAgICAgICAgcHJvYywgTG9hZCwg
cG9pbnRlclR5cGUoKSwgT3JpZ2luKCksIGRhdGFQb2ludGVyVmFsdWUpLAorICAgICAgICAgICAg
YWRkVG9EYXRhLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICAgICAgICAgIHByb2Ms
IExvYWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLCBzaXplb2Yo
aW50cHRyX3QpKSksCisgICAgICAgIGRhdGFQb2ludGVyVmFsdWUpOworICAgIGFkZFRvRGF0YS0+
YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAgICAgICBwcm9jLCBTZXQsIE9yaWdpbigpLCBj
b2RlUG9pbnRlciwKKyAgICAgICAgYWRkVG9EYXRhLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAg
ICAgICAgcHJvYywgQjM6OkFkZCwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUsCisgICAgICAg
ICAgICBhZGRUb0RhdGEtPmFwcGVuZEludENvbnN0YW50KHByb2MsIE9yaWdpbigpLCBwb2ludGVy
VHlwZSgpLCBzaXplb2YoaW50cHRyX3QpICogMikpKTsKKyAgICBhZGRUb0RhdGEtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZGlz
cGF0Y2gpKTsKKyAgICAKKyAgICAvLyBQcmludDogInByaW50cyIgdGhlIHZhbHVlIHBvaW50ZWQg
dG8gYnkgRFAuIFdoYXQgdGhpcyBhY3R1YWxseSBtZWFucyBpcyB0aGF0IHRoZSB2YWx1ZSBpcwor
ICAgIC8vIGFwcGVuZGVkIHRvIHRoZSBzdHJlYW0gdmVjdG9yIGJ5IHRoZSB0aHJlYWRlZEludGVy
cHJldGVyUHJpbnQgZnVuY3Rpb24uCisgICAgY29kZVBvaW50ZXJWYWx1ZSA9IHByaW50LT5hcHBl
bmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGNvZGVQb2ludGVy
KTsKKyAgICBkYXRhUG9pbnRlclZhbHVlID0gcHJpbnQtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVl
Pihwcm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwgZGF0YVBvaW50ZXIpOworICAgIHByaW50LT5hcHBl
bmROZXc8Q0NhbGxWYWx1ZT4oCisgICAgICAgIHByb2MsIFZvaWQsIE9yaWdpbigpLAorICAgICAg
ICBwcmludC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KAorICAgICAgICAgICAgcHJvYywgT3Jp
Z2luKCksIGJpdHdpc2VfY2FzdDx2b2lkKj4odGhyZWFkZWRJbnRlcnByZXRlclByaW50KSksCisg
ICAgICAgIGNvbnRleHQsCisgICAgICAgIHByaW50LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHBy
b2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLCBkYXRhUG9pbnRlclZhbHVlKSk7Cisg
ICAgcHJpbnQtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPigKKyAgICAgICAgcHJvYywgU2V0LCBP
cmlnaW4oKSwgY29kZVBvaW50ZXIsCisgICAgICAgIHByaW50LT5hcHBlbmROZXc8VmFsdWU+KAor
ICAgICAgICAgICAgcHJvYywgQjM6OkFkZCwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUsCisg
ICAgICAgICAgICBwcmludC0+YXBwZW5kSW50Q29uc3RhbnQocHJvYywgT3JpZ2luKCksIHBvaW50
ZXJUeXBlKCksIHNpemVvZihpbnRwdHJfdCkpKSk7CisgICAgcHJpbnQtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZGlzcGF0Y2gp
KTsKKyAgICAKKyAgICAvLyBTdG9wOiByZXR1cm5zLgorICAgIHN0b3AtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgICAgICBzdG9w
LT5hcHBlbmRJbnRDb25zdGFudChwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgMCkpOwor
ICAgIAorICAgIGF1dG8gaW50ZXJwcmV0ZXIgPSBjb21waWxlKHByb2MpOworICAgIAorICAgIENI
RUNLKEFkZERQKTsKKyAgICBDSEVDSyhBZGRDUCk7CisgICAgQ0hFQ0soQWRkKTsKKyAgICBDSEVD
SyhQcmludCk7CisgICAgQ0hFQ0soU3RvcCk7CisgICAgCisgICAgVmVjdG9yPGludHB0cl90PiBk
YXRhOworICAgIFZlY3RvcjxpbnRwdHJfdD4gY29kZTsKKyAgICBWZWN0b3I8aW50cHRyX3Q+IHN0
cmVhbTsKKyAgICAKKyAgICBkYXRhLmFwcGVuZCgxKTsKKyAgICBkYXRhLmFwcGVuZCgwKTsKKyAg
ICAKKyAgICBpZiAoc2hvdWxkQmVWZXJib3NlKCkpCisgICAgICAgIGRhdGFMb2coImRhdGEgPSAi
LCBsaXN0RHVtcChkYXRhKSwgIlxuIik7CisgICAgCisgICAgLy8gV2UnbGwgd3JpdGUgYSBwcm9n
cmFtIHRoYXQgcHJpbnRzIHRoZSBudW1iZXJzIDEuLjEwMC4KKyAgICAvLyBXZSBleHBlY3QgRFAg
dG8gcG9pbnQgYXQgIzAuCisgICAgY29kZS5hcHBlbmQoQWRkQ1ApOworICAgIGNvZGUuYXBwZW5k
KDYpOyAvLyBnbyB0byBsb29wIGJvZHkKKyAgICAKKyAgICAvLyBMb29wIHJlLWVudHJ5OgorICAg
IC8vIFdlIGV4cGVjdCBEUCB0byBwb2ludCBhdCAjMSBhbmQgZm9yICMxIHRvIGJlIG9mZnNldCBi
eSAtMTAwLgorICAgIGNvZGUuYXBwZW5kKEFkZCk7CisgICAgY29kZS5hcHBlbmQoMTAwKTsKKyAg
ICAKKyAgICBjb2RlLmFwcGVuZChBZGREUCk7CisgICAgY29kZS5hcHBlbmQoLTEpOworICAgIAor
ICAgIC8vIExvb3AgaGVhZGVyOgorICAgIC8vIFdlIGV4cGVjdCBEUCB0byBwb2ludCBhdCAjMC4K
KyAgICBjb2RlLmFwcGVuZChBZGREUCk7CisgICAgY29kZS5hcHBlbmQoMSk7CisgICAgCisgICAg
Y29kZS5hcHBlbmQoQWRkKTsKKyAgICBjb2RlLmFwcGVuZCgxKTsKKyAgICAKKyAgICBjb2RlLmFw
cGVuZChQcmludCk7CisgICAgCisgICAgY29kZS5hcHBlbmQoQWRkKTsKKyAgICBjb2RlLmFwcGVu
ZCgtMTAwKTsKKyAgICAKKyAgICAvLyBXZSB3YW50IHRvIHN0b3AgaWYgaXQncyB6ZXJvIGFuZCBj
b250aW51ZSBpZiBpdCdzIG5vbi16ZXJvLiBBZGRDUCB0YWtlcyB0aGUgYnJhbmNoIGlmIGl0J3MK
KyAgICAvLyBub24temVyby4KKyAgICBjb2RlLmFwcGVuZChBZGRDUCk7CisgICAgY29kZS5hcHBl
bmQoLTExKTsgLy8gZ28gdG8gbG9vcCByZS1lbnRyeS4KKyAgICAKKyAgICBjb2RlLmFwcGVuZChT
dG9wKTsKKyAgICAKKyAgICBpZiAoc2hvdWxkQmVWZXJib3NlKCkpCisgICAgICAgIGRhdGFMb2co
ImNvZGUgPSAiLCBsaXN0RHVtcChjb2RlKSwgIlxuIik7CisgICAgCisgICAgQ0hFQ0soIWludm9r
ZTxpbnRwdHJfdD4oKmludGVycHJldGVyLCBkYXRhLmRhdGEoKSwgY29kZS5kYXRhKCksICZzdHJl
YW0pKTsKKyAgICAKKyAgICBDSEVDSyhzdHJlYW0uc2l6ZSgpID09IDEwMCk7CisgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IDEwMDsgKytpKQorICAgICAgICBDSEVDSyhzdHJlYW1baV0gPT0g
aSArIDEpOworICAgIAorICAgIGlmIChzaG91bGRCZVZlcmJvc2UoKSkKKyAgICAgICAgZGF0YUxv
Zygic3RyZWFtID0gIiwgbGlzdER1bXAoc3RyZWFtKSwgIlxuIik7Cit9CisKIC8vIE1ha2Ugc3Vy
ZSB0aGUgY29tcGlsZXIgZG9lcyBub3QgdHJ5IHRvIG9wdGltaXplIGFueXRoaW5nIG91dC4KIE5F
VkVSX0lOTElORSBkb3VibGUgemVybygpCiB7CkBAIC0xMzQ1NCw2ICsxMzY5MCw4IEBAIHZvaWQg
cnVuKGNvbnN0IGNoYXIqIGZpbHRlcikKICAgICBSVU4odGVzdFNwaWxsVXNlTGFyZ2VyVGhhbkRl
ZigpKTsKIAogICAgIFJVTih0ZXN0TGF0ZVJlZ2lzdGVyKCkpOworICAgIAorICAgIFJVTih0ZXN0
VGhyZWFkZWRJbnRlcnByZXRlcigpKTsKIAogICAgIGlmICh0YXNrcy5pc0VtcHR5KCkpCiAgICAg
ICAgIHVzYWdlKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuaAko
cmV2aXNpb24gMjAxOTg1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2Rl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJBaXJTcGVjaWFs
LmgiCiAjaW5jbHVkZSAiQWlyU3RhY2tTbG90LmgiCiAjaW5jbHVkZSAiQWlyVG1wLmgiCisjaW5j
bHVkZSAiQjNJbmRleE1hcC5oIgogI2luY2x1ZGUgIkIzU3BhcnNlQ29sbGVjdGlvbi5oIgogI2lu
Y2x1ZGUgIlJlZ2lzdGVyQXRPZmZzZXRMaXN0LmgiCiAjaW5jbHVkZSAiU3RhY2tBbGlnbm1lbnQu
aCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGUuY3Bw
CShyZXZpc2lvbiAyMDE5ODUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckdl
bmVyYXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgsMTAgKzQ4LDEzIEBACiAjaW5jbHVkZSAi
QWlyVmFsaWRhdGUuaCIKICNpbmNsdWRlICJCM0NvbW1vbi5oIgogI2luY2x1ZGUgIkIzSW5kZXhN
YXAuaCIKKyNpbmNsdWRlICJCM1BvbHlKdW1wVmFsdWUuaCIKICNpbmNsdWRlICJCM1Byb2NlZHVy
ZS5oIgogI2luY2x1ZGUgIkIzVGltaW5nU2NvcGUuaCIKKyNpbmNsdWRlICJCM1ZhbHVlSW5saW5l
cy5oIgogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgogI2luY2x1ZGUgIkRpc2FsbG93TWFjcm9T
Y3JhdGNoUmVnaXN0ZXJVc2FnZS5oIgorI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKIAogbmFtZXNw
YWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7IG5hbWVzcGFjZSBBaXIgewogCkBAIC0xOTYsNyArMTk5
LDggQEAgdm9pZCBnZW5lcmF0ZShDb2RlJiBjb2RlLCBDQ2FsbEhlbHBlcnMmIAogCiAgICAgZm9y
IChCYXNpY0Jsb2NrKiBibG9jayA6IGNvZGUpIHsKICAgICAgICAgYmxvY2tKdW1wc1tibG9ja10u
bGluaygmaml0KTsKLSAgICAgICAgYmxvY2tMYWJlbHNbYmxvY2tdID0gaml0LmxhYmVsKCk7Cisg
ICAgICAgIENDYWxsSGVscGVyczo6TGFiZWwgbGFiZWwgPSBqaXQubGFiZWwoKTsKKyAgICAgICAg
YmxvY2tMYWJlbHNbYmxvY2tdID0gbGFiZWw7CiAgICAgICAgIEFTU0VSVChibG9jay0+c2l6ZSgp
ID49IDEpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYmxvY2stPnNpemUoKSAt
IDE7ICsraSkgewogICAgICAgICAgICAgSW5zdCYgaW5zdCA9IGJsb2NrLT5hdChpKTsKQEAgLTIy
OCwyNiArMjMyLDU0IEBAIHZvaWQgZ2VuZXJhdGUoQ29kZSYgY29kZSwgQ0NhbGxIZWxwZXJzJiAK
ICAgICAgICAgICAgIGFkZEl0ZW0oYmxvY2stPmxhc3QoKSk7CiAgICAgICAgICAgICBjb250aW51
ZTsKICAgICAgICAgfQotCisgICAgICAgIAogICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAganVt
cCA9IGJsb2NrLT5sYXN0KCkuZ2VuZXJhdGUoaml0LCBjb250ZXh0KTsKLSAgICAgICAgc3dpdGNo
IChibG9jay0+bnVtU3VjY2Vzc29ycygpKSB7Ci0gICAgICAgIGNhc2UgMDoKLSAgICAgICAgICAg
IEFTU0VSVCghanVtcC5pc1NldCgpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNl
IDE6Ci0gICAgICAgICAgICBsaW5rKGp1bXAsIGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKSk7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAyOgotICAgICAgICAgICAgbGluayhqdW1w
LCBibG9jay0+c3VjY2Vzc29yQmxvY2soMCkpOwotICAgICAgICAgICAgaWYgKGJsb2NrLT5zdWNj
ZXNzb3JCbG9jaygxKSAhPSBjb2RlLmZpbmROZXh0QmxvY2soYmxvY2spKQotICAgICAgICAgICAg
ICAgIGxpbmsoaml0Lmp1bXAoKSwgYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDEpKTsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICAvLyBUaGUganVtcCB3
b24ndCBiZSBzZXQgZm9yIFBvbHlKdW1wIGJlY2F1c2UgaXQgbGV0cyBpdHMgZmFpdGggaW4gdGhl
IGFkZHJlc3Mgb3BlcmFuZAorICAgICAgICAvLyBndWlkZSB3aGVyZSBpdCBqdW1wcy4gSXQgd29u
J3QgYmUgc2V0IGZvciBPb3BzIGJlY2F1c2UgdGhlbiBpdCB3b24ndCBoYXZlIGFueSBzdWNjZXNz
b3JzLgorICAgICAgICBpZiAoanVtcC5pc1NldCgpKSB7CisgICAgICAgICAgICBzd2l0Y2ggKGJs
b2NrLT5udW1TdWNjZXNzb3JzKCkpIHsKKyAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAg
ICAgICBsaW5rKGp1bXAsIGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKSk7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICAgICAgbGluayhqdW1w
LCBibG9jay0+c3VjY2Vzc29yQmxvY2soMCkpOworICAgICAgICAgICAgICAgIGlmIChibG9jay0+
c3VjY2Vzc29yQmxvY2soMSkgIT0gY29kZS5maW5kTmV4dEJsb2NrKGJsb2NrKSkKKyAgICAgICAg
ICAgICAgICAgICAgbGluayhqaXQuanVtcCgpLCBibG9jay0+c3VjY2Vzc29yQmxvY2soMSkpOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
ICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGFkZEl0ZW0oYmxvY2stPmxhc3Qo
KSk7CiAgICAgfQorICAgIAorICAgIC8vIFRha2UgY2FyZSBvZiBQb2x5SnVtcC4gV2UgZG8gdGhp
cyBsYXN0IGJlY2F1c2UgaXQgcmVsaWVzIG9uIGtub3dpbmcgd2hlcmUgYWxsIG9mIHRoZSBiYXNp
YworICAgIC8vIGJsb2NrIGxhbmRlZC4KKyAgICBmb3IgKEJhc2ljQmxvY2sqIGJsb2NrIDogY29k
ZSkgeworICAgICAgICBpZiAoYmxvY2stPmxhc3QoKS5vcGNvZGUgIT0gUG9seUp1bXApCisgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgCisgICAgICAgIFBvbHlKdW1wVmFsdWUqIHBvbHlK
dW1wID0gYmxvY2stPmxhc3QoKS5vcmlnaW4tPmFzPFBvbHlKdW1wVmFsdWU+KCk7CisgICAgICAg
IFJFTEVBU0VfQVNTRVJUKHBvbHlKdW1wLT5udW1TdWNjZXNzb3JzKCkgPT0gYmxvY2stPm51bVN1
Y2Nlc3NvcnMoKSk7CisgICAgICAgIAorICAgICAgICBSZWZQdHI8U2hhcmVkVGFzazxQb2x5SnVt
cFZhbHVlOjpDYWxsYmFja0Z1bmN0aW9uVHlwZT4+IHRhc2sgPSBwb2x5SnVtcC0+Y2FsbGJhY2tU
YXNrKCk7CisgICAgICAgIGlmICghdGFzaykKKyAgICAgICAgICAgIGNvbnRpbnVlOyAvLyBUaGlz
IHdvdWxkIGJlIHdlaXJkLCBidXQgd2UgYWxsb3cgaXQuCisgICAgICAgIAorICAgICAgICBWZWN0
b3I8Q0NhbGxIZWxwZXJzOjpMYWJlbD4gbGFiZWxzOworICAgICAgICBmb3IgKEJhc2ljQmxvY2sq
IHN1Y2Nlc3NvciA6IGJsb2NrLT5zdWNjZXNzb3JCbG9ja3MoKSkKKyAgICAgICAgICAgIGxhYmVs
cy5hcHBlbmQoYmxvY2tMYWJlbHNbc3VjY2Vzc29yXSk7CisgICAgICAgIAorICAgICAgICBqaXQu
YWRkTGlua1Rhc2soCisgICAgICAgICAgICBbPV0gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsK
KyAgICAgICAgICAgICAgICBWZWN0b3I8TWFjcm9Bc3NlbWJsZXJDb2RlUHRyPiBwb2ludGVyczsK
KyAgICAgICAgICAgICAgICBmb3IgKENDYWxsSGVscGVyczo6TGFiZWwgbGFiZWwgOiBsYWJlbHMp
CisgICAgICAgICAgICAgICAgICAgIHBvaW50ZXJzLmFwcGVuZChsaW5rQnVmZmVyLmxvY2F0aW9u
T2YobGFiZWwpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB0YXNrLT5ydW4o
cG9pbnRlcnMpOworICAgICAgICAgICAgfSk7CisgICAgfQogCiAgICAgcGNUb09yaWdpbk1hcC5h
cHBlbmRJdGVtKGppdC5sYWJlbCgpLCBPcmlnaW4oKSk7CiAgICAgLy8gRklYTUU6IE1ha2UgbGF0
ZSBwYXRocyBoYXZlIE9yaWdpbnM6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNTM2ODkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0LmNw
cAkocmV2aXNpb24gMjAxOTg1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJ
bnN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDUsNiArNDUsMTEgQEAgYm9vbCBJbnN0OjpoYXNB
cmdFZmZlY3RzKCkKICAgICByZXR1cm4gcmVzdWx0OwogfQogCitib29sIEluc3Q6OmlzQ2xvbmVh
YmxlKCkKK3sKKyAgICByZXR1cm4gIW9yaWdpbiB8fCBvcmlnaW4tPmlzQ2xvbmVhYmxlKCk7Cit9
CisKIHVuc2lnbmVkIEluc3Q6OmpzSGFzaCgpIGNvbnN0CiB7CiAgICAgdW5zaWduZWQgcmVzdWx0
ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG9wY29kZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvYWlyL0Fpckluc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL0Fpckluc3QuaAkocmV2aXNpb24gMjAxOTg1KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL2Fpci9BaXJJbnN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTE4OCw2ICsxODgsMTAg
QEAgcHVibGljOgogICAgIC8vIHJldHVybnMgMiBpZiAwIGFuZCAxIGJlbmVmaXQgZnJvbSBhbGlh
c2luZyB0byBUbXAzLgogICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBzaG91bGRUcnlBbGlhc2luZ0Rl
ZigpOwogICAgIAorICAgIC8vIFNvbWUgaW5zdHVjdGlvbnMgd2lsbCByZWZ1c2UgdG8gYWxsb3cg
Y2xvbmluZy4gSWYgdGhpcyByZXR1cm5zIGZhbHNlLCB5b3UgbXVzdCBtYWtlIHN1cmUgdGhhdAor
ICAgIC8vIHlvdSBuZXZlciBpbnRyb2R1Y2UgY29waWVzIG9mIHRoZSBpbnN0cnVjdGlvbi4KKyAg
ICBib29sIGlzQ2xvbmVhYmxlKCk7CisgICAgCiAgICAgLy8gVGhpcyBjb21wdXRlcyBhIGhhc2gg
Zm9yIGNvbXBhcmluZyB0aGlzIHRvIEpTQWlyJ3MgSW5zdC4KICAgICB1bnNpZ25lZCBqc0hhc2go
KSBjb25zdDsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUu
b3Bjb2Rlcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9w
Y29kZS5vcGNvZGVzCShyZXZpc2lvbiAyMDE5ODUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzCSh3b3JraW5nIGNvcHkpCkBAIC04MzUsNiArODM1LDE0
IEBAIE1vdmVEb3VibGVDb25kaXRpb25hbGx5RmxvYXQgVTpHOjMyLCBVOkYKIAogSnVtcCAvYnJh
bmNoCiAKKyMgVGhpcyBtYXNxdWVyYWRlcyBhcyBhIG5vbi1icmFuY2ggdGVybWluYWwgYmVjYXVz
ZSBpdCBkb2Vzbid0IG5lZWQgdGhlIHRyYWRpdGlvbmFsIHNvcnQgb2YgbGlua2luZy4KKyMgIkJy
YW5jaCIgaW4gdGhpcyBjb250ZXh0IGp1c3QgbWVhbnMgdGhhdCBpdCdzIGEgdGVybWluYWwgdGhh
dCByZXR1cm5zIGEgSnVtcCB0aGF0IG5lZWRzIHRvIGJlCisjIGxpbmtlZC4gSW5zdGVhZCwgQWly
OjpnZW5lcmF0ZSgpIGhhcyBhIHNwZWNpYWwtY2FzZSBmb3IgUG9seUp1bXAuCitQb2x5SnVtcCBV
Okc6UHRyIC90ZXJtaW5hbAorICAgIFRtcCBhcyBqdW1wCisgICAgeDg2OiBBZGRyIGFzIGp1bXAK
KyAgICB4ODY6IEluZGV4IGFzIGp1bXAKKwogUmV0MzIgVTpHOjMyIC9yZXR1cm4KICAgICBUbXAK
IApJbmRleDogV2Vic2l0ZXMvd2Via2l0Lm9yZy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
c2l0ZXMvd2Via2l0Lm9yZy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMTk4NSkKKysrIFdlYnNpdGVz
L3dlYmtpdC5vcmcvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MTYtMDUtMjkgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBs
ZW1lbnQgdGFibGUtYmFzZWQgc3dpdGNoZXMgaW4gQjMvQWlyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTExNDEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFVwZGF0ZSBkb2N1bWVudGF0aW9u
IGZvciB0aGUgbmV3IFBvbHlKdW1wIG9wY29kZS4KKworICAgICAgICAqIGRvY3MvYjMvaW50ZXJt
ZWRpYXRlLXJlcHJlc2VudGF0aW9uLmh0bWw6CisKIDIwMTYtMDYtMDIgIERlYW4gSmFja3NvbiAg
PGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSB0aGUgZXhhbXBsZSBmb3Igd2lkZXIg
Y29sb3IgZ2FtdXQgaW1hZ2VzLgpJbmRleDogV2Vic2l0ZXMvd2Via2l0Lm9yZy9kb2NzL2IzL2lu
dGVybWVkaWF0ZS1yZXByZXNlbnRhdGlvbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3dl
YmtpdC5vcmcvZG9jcy9iMy9pbnRlcm1lZGlhdGUtcmVwcmVzZW50YXRpb24uaHRtbAkocmV2aXNp
b24gMjAxOTg1KQorKysgV2Vic2l0ZXMvd2Via2l0Lm9yZy9kb2NzL2IzL2ludGVybWVkaWF0ZS1y
ZXByZXNlbnRhdGlvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01MzcsNiArNTM3LDM5IEBAIHBh
dGNocG9pbnQtPnNldEdlbmVyYXRvcigKICAgICAgICAgYWxzbyBjb250YWlucyBhIGZhbGwtdGhy
b3VnaCB0YXJnZXQgaW4gY2FzZSB0aGUgY2hpbGQgaGFzIGEgdmFsdWUgdGhhdCB3YXNuJ3QgbWVu
dGlvbmVkCiAgICAgICAgIGluIHRoZSBjYXNlcyBsaXN0LiAgTXVzdCB1c2UgdGhlIFN3aXRjaFZh
bHVlIGNsYXNzLiAgTXVzdCBhcHBlYXIgYXQgdGhlIGVuZCBvZiB0aGUgYmFzaWMKICAgICAgICAg
YmxvY2suPC9kZD4KKyAgICAgIAorICAgICAgPGR0PlZvaWQgUG9seUp1bXAoSW50UHRyLCBibG9j
a3MuLi4pPC9kdD4KKyAgICAgIDxkZD4KKyAgICAgICAgPHA+SnVtcHMgdG8gdGhlIGdpdmVuIGFk
ZHJlc3MuIFRoZSBjb21waWxlciB3aWxsIGFzc3VtZSB0aGF0IHRoaXMganVtcHMgdG8gb25lIG9m
IHRoZSBnaXZlbgorICAgICAgICAgIGJsb2Nrcy4gVGhlIGNvbXBpbGVyIG1ha2VzIG5vIGF0dGVt
cHQgdG8gcHJvdmUgb3IgdmFsaWRhdGUgdGhhdCB0aGUgcGFzc2VkIGp1bXAgYWRkcmVzcyBpcwor
ICAgICAgICAgIGFjdHVhbGx5IHRoZSBhZGRyZXNzIG9mIGFueSBvZiB0aG9zZSBibG9ja3MuIE5v
bnNlbnNpY2FsIHRoaW5ncyB3aWxsIGhhcHBlbiBpZiB0aGUgcGFzc2VkCisgICAgICAgICAgYWRk
cmVzcyBpcyBub3QgdGhlIGFkZHJlc3Mgb2Ygb25lIG9mIHRoZSBibG9ja3MgaW4gdGhlIHN1Y2Nl
c3NvciBsaXN0LiBZb3UgY2FuIGFycmFuZ2UgdG8KKyAgICAgICAgICBnZXQgdGhlIGFkZHJlc3Nl
cyBvZiBibG9ja3MgYnkgcGFzc2luZyBhIGNhbGxiYWNrIHRvIFBvbHlKdW1wLiBUaGlzIGlzIHVz
ZWQgaW50ZXJuYWxseQorICAgICAgICAgIGZvciBsb3dlcmluZyBTd2l0Y2ggb3Bjb2Rlcy4gWW91
IGNhbiBhbHNvIHVzZSBpdCBkaXJlY3RseS48L3A+CisgICAgICAKKyAgICAgICAgPHA+UG9seUp1
bXAgaXMgbm90IGNsb25lYWJsZS4gRm9yIGVhY2ggUG9seUp1bXAgeW91IGNyZWF0ZSwgdGhlcmUg
d2lsbCBiZSBvbmUgaW5kaXJlY3QKKyAgICAgICAgICBqdW1wIGdlbmVyYXRlZC4gVGhpcyBpcyBu
ZWNlc3NhcnkgdG8gZW5zdXJlIHNvdW5kbmVzcyBvZiB0aGUgY2FsbGJhY2suIElmIHRoZSBQb2x5
SnVtcAorICAgICAgICAgIGNvdWxkIGJlIGNsb25lZCwgdGhlbiB0aGUgY2FsbGJhY2sgd291bGQg
Z2V0IGNhbGxlZCBmb3IgZWFjaCBjbG9uZS4gUHJlc3VtYWJseSwgeW91J2QKKyAgICAgICAgICBp
bXBsZW1lbnQgdGhlIGNhbGxiYWNrIGJ5IHBvcHVsYXRpbmcgc29tZSB0YWJsZSB3aXRoIHRoZSBh
ZGRyZXNzZXMgb2YgdGhlIGJsb2Nrcy4gSWYgdGhlCisgICAgICAgICAgY2FsbGJhY2sgZ2V0cyBj
YWxsZWQgbXVsdGlwbGUgdGltZXMgdGhlbiBpdCBtYXkgcmV0dXJuIGRpZmZlcmVudCBhZGRyZXNz
ZXMgZWFjaCB0aW1lIC0KKyAgICAgICAgICBzaW5jZSBhZnRlciBjbG9uaW5nIGEgUG9seUp1bXAs
IHRoZSBjb21waWxlciBtYXkgcmV0YXJnZXQgYW55IG9mIGl0cyBzdWNjZXNzb3IgZWRnZXMuCisg
ICAgICAgICAgVGhpcyB3b3VsZCBiZSBjb25mdXNpbmcsIHNpbmNlIHRoZW4geW91IHdvdWxkbid0
IGtub3cgd2hhdCB0byBkbyB3aXRoIGRpc2NyZXBhbmNpZXMgYmV0d2VlbgorICAgICAgICAgIGFk
ZHJlc3NlcyByZXR1cm5lZCBieSB0aGUgdmFyaW91cyBjYWxscyB0byB0aGUgY2FsbGJhY2suIERp
c2FsbG93aW5nIGNsb25pbmcgb2YgUG9seUp1bXAKKyAgICAgICAgICBzb2x2ZXMgdGhpcyBwcm9i
bGVtLjwvcD4KKyAgICAgICAgCisgICAgICAgIDxwPkEgY2xvc2VseSByZWxhdGVkIHByb2JsZW0g
aXMgdGhhdCBpZiB5b3UgZW1pdCBtdWx0aXBsZSBQb2x5SnVtcCBpbnN0cnVjdGlvbnMsIHRoZW4g
ZXZlbgorICAgICAgICAgIGlmIHRoZXkgaW5pdGlhbGx5IHNoYXJlIHRoZSBzYW1lIHN1Y2Nlc3Nv
cnMsIHlvdSBjYW5ub3QgZ3VhcmFudGVlIHRoYXQgdGhleSB3aWxsIGNvbnRpbnVlCisgICAgICAg
ICAgdG8gc2hhcmUgdGhlIHNhbWUgc3VjY2Vzc29ycyBhZnRlciBvcHRpbWl6YXRpb24uIFRoaXMg
bWVhbnMgdGhhdCBQb2x5SnVtcCBjYW5ub3QKKyAgICAgICAgICBjdXJyZW50bHkgYmUgdXNlZCBm
b3IgaW1wbGVtZW50aW5nIGRpcmVjdCB0aHJlYWRlZCBpbnRlcnByZXRlcnMsIGF0IGxlYXN0IG5v
dCB0aGUgY2xhc3NpYworICAgICAgICAgIGtpbmQ6IHRvIG1ha2UgaXQgd29yaywgeW91IGhhdmUg
dG8gaGF2ZSBhIHNoYXJlZCBkaXNwYXRjaCBibG9jayBzbyB0aGF0IHlvdSBoYXZlIGEgc2luZ2xl
CisgICAgICAgICAgUG9seUp1bXAuIFRoaXMgbWlnaHQgYmUgYmV0dGVyIHRoYW4gYSBTd2l0Y2gt
YmFzZWQgaW50ZXJwcmV0ZXIsIGJ1dCBpdCdzIGRlZmluaXRlbHkgbm90CisgICAgICAgICAgYXMg
Z29vZCBhcyB3aGF0IHlvdSdkIGdldCB3aXRoIEdDQy1zdHlsZSBjb21wdXRlZCBnb3RvLjwvcD4K
KyAgICAgICAgCisgICAgICAgIDxwPlBvbHlKdW1wIGlzIHNvIG5hbWVkIHRvIGF2b2lkIGNvbmZ1
c2lvbiB3aXRoIGNvbXB1dGVkIGdvdG9zIGFuZCBpbmRpcmVjdCBicmFuY2hlcyBpbgorICAgICAg
ICAgIG90aGVyIGNvbXBpbGVycy4gSXQgaGFzIHNpZ25pZmljYW50IHJlc3RyaWN0aW9ucyB0aGF0
IHRob3NlIG9wZXJhdGlvbnMgZG8gbm90IGhhdmUuIFRoZXNlCisgICAgICAgICAgcmVzdHJpY3Rp
b25zIG1ha2UgaXQgZWFzaWVyIGZvciB0aGUgb3B0aW1pemVyIHRvIHdvcmsgd2l0aCBzaW5jZSB0
aGUgY29udHJvbCBmbG93IGdldHMgdG8KKyAgICAgICAgICBiZSBleHBsaWNpdCAoUG9seUp1bXAg
aGFzIGEgZmluaXRlIHNldCBvZiBzdWNjZXNzb3JzIGxpa2UgYW55IG90aGVyIGJsb2NrIHRlcm1p
bmFsKS48L3A+CisgICAgICA8L2RkPgogCiAgICAgICA8ZHQ+Vm9pZCBSZXR1cm4oVCk8L2R0Pgog
ICAgICAgPGRkPldvcmtzIGZvciBhbnkgdHlwZSBleGNlcHQgVm9pZC4gIFJldHVybnMgdGhlIGdp
dmVuIHZhbHVlIGFuZCB0ZXJtaW5hdGVzIHRoZSBwcm9jZWR1cmUuCkluZGV4OiBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lv
biAyMDE5ODUpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwxNSBAQAorMjAxNi0wNS0yOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgor
CisgICAgICAgIEltcGxlbWVudCB0YWJsZS1iYXNlZCBzd2l0Y2hlcyBpbiBCMy9BaXIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTE0MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICoganMvcmVncmVzcy9i
aWdzd2l0Y2gtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2JpZ3N3
aXRjaC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9iaWdz
d2l0Y2guanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKwogMjAxNi0wNi0xMiAgWmFsYW4gQnVq
dGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBwb3NpdGlvbmVkIGRlc2Nl
bmRhbnRzIHdoZW4gUmVuZGVyQmxvY2sgaXMgbm8gbG9uZ2VyIGEgY29udGFpbmluZyBibG9jay4K
SW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdyZXNzL2JpZ3N3aXRj
aAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBubyBleGNlcHRpb24gdGhy
b3duCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJ
bmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2guaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC5odG1sCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9F
TiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10
ZXN0cy9iaWdzd2l0Y2guanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvYmlnc3dpdGNoLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2JpZ3N3aXRjaC5qcwkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2JpZ3N3aXRj
aC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIxMSBAQAorZnVuY3Rpb24gZm9vKG8pIHsK
KyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7ICsraSkg
eworICAgICAgICB2YXIgdmFsdWUgPSBpICYgNjM7CisgICAgICAgIHN3aXRjaCAodmFsdWUpIHsK
KyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXN1bHQgKz0gby5iOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
LmM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgcmVz
dWx0ICs9IG8uZDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ6CisgICAgICAg
ICAgICByZXN1bHQgKz0gby5lOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNToK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmY7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSA2OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZzsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIDc6CisgICAgICAgICAgICByZXN1bHQgKz0gby5oOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA5OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8u
ajsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDEwOgorICAgICAgICAgICAgcmVz
dWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDExOgorICAgICAg
ICAgICAgcmVzdWx0ICs9IG8uYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDEy
OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIDEzOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYzsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIDE0OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZDsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIDE1OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE2OgorICAgICAgICAgICAgcmVzdWx0
ICs9IG8uZjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE3OgorICAgICAgICAg
ICAgcmVzdWx0ICs9IG8uZzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE4Ogor
ICAgICAgICAgICAgcmVzdWx0ICs9IG8uaDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIDE5OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIDIwOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uajsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIDIxOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDIyOgorICAgICAgICAgICAgcmVzdWx0ICs9
IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDIzOgorICAgICAgICAgICAg
cmVzdWx0ICs9IG8uYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI0OgorICAg
ICAgICAgICAgcmVzdWx0ICs9IG8uYjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IDI1OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYzsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIDI2OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZDsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIDI3OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI4OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8u
ZjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI5OgorICAgICAgICAgICAgcmVz
dWx0ICs9IG8uZzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDMwOgorICAgICAg
ICAgICAgcmVzdWx0ICs9IG8uaDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDMx
OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIDMyOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uajsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIDMzOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIDM0OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM1OgorICAgICAgICAgICAgcmVzdWx0
ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM2OgorICAgICAgICAg
ICAgcmVzdWx0ICs9IG8uYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM3Ogor
ICAgICAgICAgICAgcmVzdWx0ICs9IG8uYjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIDM4OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYzsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIDM5OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZDsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIDQwOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQxOgorICAgICAgICAgICAgcmVzdWx0ICs9
IG8uZjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQyOgorICAgICAgICAgICAg
cmVzdWx0ICs9IG8uZzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQzOgorICAg
ICAgICAgICAgcmVzdWx0ICs9IG8uaDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IDQ0OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIDQ1OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uajsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIDQ2OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ3OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8u
aTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ4OgorICAgICAgICAgICAgcmVz
dWx0ICs9IG8uajsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ5OgorICAgICAg
ICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDUw
OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIDUxOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIDUyOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIDUzOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYjsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDU0OgorICAgICAgICAgICAgcmVzdWx0
ICs9IG8uYzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDU1OgorICAgICAgICAg
ICAgcmVzdWx0ICs9IG8uZDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDU2Ogor
ICAgICAgICAgICAgcmVzdWx0ICs9IG8uZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIDU3OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZjsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIDU4OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZzsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIDU5OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaDsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDYwOgorICAgICAgICAgICAgcmVzdWx0ICs9
IG8uaTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDYxOgorICAgICAgICAgICAg
cmVzdWx0ICs9IG8uajsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDYyOgorICAg
ICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uejsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKKyhmdW5jdGlvbigpIHsKKyAg
ICB2YXIgbyA9IHthOjEsIGI6MiwgYzozLCBkOjQsIGU6NSwgZjo2LCBnOjcsIGg6OCwgaTo5LCBq
OjEwLCBrOjExLCB6OjEwMH07CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCAxMDAwMDsgKytpKQorICAgICAgICByZXN1bHQgKz0gZm9vKG8pOworICAgIGlmIChy
ZXN1bHQgIT0gNzk2NjAwMDApCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiAr
IHJlc3VsdDsKK30pKCk7CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281475</attachid>
            <date>2016-06-16 14:47:25 -0700</date>
            <delta_ts>2016-06-25 20:13:52 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>70820</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAyMTM3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2NiBA
QAorMjAxNi0wNS0yOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IEltcGxlbWVudCB0YWJsZS1iYXNlZCBzd2l0Y2hlcyBpbiBCMy9BaXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTE0MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgSWYgYSBzd2l0Y2ggc3Rh
dGVtZW50IGdldHMgbGFyZ2UsIGl0J3MgYmV0dGVyIHRvIGV4cHJlc3MgaXQgYXMgYW4gaW5kaXJl
Y3QganVtcCByYXRoZXIgdGhhbgorICAgICAgICB1c2luZyBhIGJpbmFyeSBzd2l0Y2ggKGRpdmlk
ZS1hbmQtY29ucXVlciB0cmVlIG9mIGNvbXBhcmlzb25zIGxlYWRpbmcgdG8gTyhsb2cgbikgYnJh
bmNoZXMgdG8KKyAgICAgICAgZ2V0IHRvIHRoZSBzd2l0Y2ggY2FzZSkuIFdoZW4gZGVhbGluZyB3
aXRoIGludGVnZXIgc3dpdGNoZXMsIEZUTCB3aWxsIGFscmVhZHkgdXNlIHRoZSBCMworICAgICAg
ICBTd2l0Y2ggYW5kIGV4cGVjdCB0aGlzIHRvIGdldCBsb3dlcmVkIGFzIGVmZmljaWVudGx5IGFz
IHBvc3NpYmxlOyBpdCdzIGEgYnVnIHRoYXQgQjMgd2lsbAorICAgICAgICBhbHdheXMgdXNlIGEg
YmluYXJ5IHN3aXRjaCByYXRoZXIgdGhhbiBpbmRpcmVjdCBqdW1wcy4gV2hlbiBkZWFsaW5nIHdp
dGggc3dpdGNoZXMgb3ZlciBzb21lCisgICAgICAgIG1vcmUgc29waGlzdGljYXRlZCB0eXBlcywg
d2UnZCB3YW50IEZUTCB0byBidWlsZCBhbiBpbmRpcmVjdCBqdW1wIHRhYmxlIGl0c2VsZiBhbmQg
dXNlCisgICAgICAgIHNvbWV0aGluZyBsaWtlIGEgaGFzaHRhYmxlIHRvIGZlZWQgaXQuIEluIHRo
YXQgY2FzZSwgdGhlcmUgd2lsbCBiZSBubyBCMyBTd2l0Y2g7IHdlJ2xsIHdhbnQKKyAgICAgICAg
c29tZSBraW5kIG9mIGluZGlyZWN0IGp1bXAgaW5zdHJ1Y3Rpb24uCisgICAgICAgIAorICAgICAg
ICBUaGlzIGltcGxpZXMgdGhhdCB3ZSB3YW50IEIzIHRvIGhhdmUgdGhlIGFiaWxpdHkgdG8gbG93
ZXIgU3dpdGNoIHRvIGluZGlyZWN0IGp1bXBzIGFuZCB0bworICAgICAgICBleHBvc2UgdGhvc2Ug
aW5kaXJlY3QganVtcHMgaW4gSVIgc28gdGhhdCB0aGUgRlRMIGNvdWxkIGRvIGl0cyBvd24gaW5k
aXJlY3QganVtcHMgZm9yCisgICAgICAgIHN3aXRjaGVzIG92ZXIgbW9yZSBjb21wbGljYXRlZCB0
aGluZ3MgbGlrZSBzdHJpbmdzLiBUaGlzIGNoYW5nZSBpbnRyb2R1Y2VzIGFuIGluZGlyZWN0IGp1
bXAKKyAgICAgICAgaW5zdHJ1Y3Rpb24gdG8gQjMgYW5kIGNhbGxzIGl0IFBvbHlKdW1wLiBJdCBo
YXMgc29tZSB1bmlxdWUgc2VtYW50aWNzIHRoYXQgbWFrZSBpdCB2ZXJ5CisgICAgICAgIGRpZmZl
cmVudCBmcm9tICJpbmRpcmVjdCBqdW1wcyIsICJpbmRpcmVjdCBicmFuY2hlcyIsIGFuZCAiY29t
cHV0ZWQgZ290b3MiIC0gYWxsIHRlcm1zIG9mIGFydAorICAgICAgICB1c2VkIGluIG90aGVyIGNv
bXBpbGVycy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaW1wbGVtZW50cyB0aGUgbW9zdCBiYXNp
YyBraW5kIG9mIFN3aXRjaC10by1Qb2x5SnVtcCBsb3dlcmluZyBpbiBCMzo6bG93ZXJNYWNyb3Mo
KS4gQXMKKyAgICAgICAgcGFydCBvZiB0aGUgZXhpc3RpbmcgZGl2aWRlLWFuZC1jb25xdWVyIHRo
YXQgY3JlYXRlcyBicmFuY2hlcywgaWYgaXQgZGV0ZWN0cyB0aGF0IHRoZSBzZXQgb2YKKyAgICAg
ICAgY2FzZXMgc2F0aXNmaWVzIHNvbWUgY29uZGl0aW9ucyAoZGVuc2l0eSBvZiBjYXNlIHZhbHVl
cyBhbmQgdG90YWwgc2l6ZSksIHRoZW4gaXQgd2lsbCBlbWl0IGEKKyAgICAgICAgUG9seUp1bXAu
CisgICAgICAgIAorICAgICAgICBUaGUgcHJvYmxlbSB3aXRoIGNsYXNzaWMgaW5kaXJlY3QganVt
cHMgaXMgdGhhdCB0aGV5IGZvcmNlIHRoZSBjb21waWxlciB0byBiZSBjb25zZXJ2YXRpdmUKKyAg
ICAgICAgYWJvdXQgY29udHJvbCBmbG93LiBUaGUgY29tcGlsZXIgbXVzdCBhc3N1bWUgdGhhdCB0
aGUgaW5kaXJlY3QganVtcCBtYXkgdHJhbnNmZXIgY29udHJvbCBmbG93CisgICAgICAgIHRvIGFu
eSBlc2NhcGVkIGJsb2NrIChibG9jayBsYWJlbGVkIGFzIGJlaW5nIGEgcG9zc2libGUgdGFyZ2V0
IGZvciBpbmRpcmVjdCBqdW1wcywgb3IgaWYgbm8KKyAgICAgICAgc3VjaCBsYWJlbGluZyBpcyBh
dmFpbGFibGUsIHRoZSBjb21waWxlciBtdXN0IGFzc3VtZSB0aGF0IGl0IG1heSB0YXJnZXQgYW55
IGJsb2NrKS4gVGhlIHdvcnN0CisgICAgICAgIHBhcnQgaXMgdGhhdCB0aGUgaW1wbGljaXQgY29u
dHJvbCBmbG93IGVkZ2VzIGZyb20gdGhlIGluZGlyZWN0IGp1bXAgdG8gdGhlIGVzY2FwZWQgYmxv
Y2tzCisgICAgICAgIGNhbm5vdCBiZSBicm9rZW4uIFRoaXMgaW52YWxpZGF0ZXMgYSBwcmluY2lw
bGUgb2YgQjMgSVI6IGFueSBwaGFzZSBtYXkgYnJlYWsgYW55IGNyaXRpY2FsCisgICAgICAgIGVk
Z2UgZm9yIGFueSByZWFzb24uIE91ciBTU0EgY29udmVyc2lvbiB3b3VsZCBicmVhayBpZiB3ZSBy
ZXZva2VkIHRoaXMgZmVhdHVyZS4gSXQncyBhY3R1YWxseQorICAgICAgICBtdWNoIHdvcnNlIHRo
YW4gdGhpcyAtIGJhc2ljYWxseSBhbnkgbG9naWMgb3ZlciBjb250cm9sIGZsb3cgd291bGQgaGF2
ZSB0byBiZSBoYWNrZWQgdG8gZGVhbAorICAgICAgICB3aXRoIHRoZXNlIHVuYnJlYWthYmxlIGVk
Z2VzLiBUaGlzIHdvdWxkIG1lYW4gY2hhbmdpbmcgYWxsIENGRyB0cmFuc2Zvcm1hdGlvbiB1dGls
aXRpZXMgYW5kCisgICAgICAgIHBhc3Nlcy4gV2UgaGF2ZSBhIGxvdCBvZiB0aG9zZSBhbmQgd2Ug
d2FudCBpdCB0byBiZSBlYXN5IHRvIHdyaXRlIG5ldyBvbmVzLgorICAgICAgICAKKyAgICAgICAg
VGhpcyBpcyB3aHkgd2UgdXNlIHNvbWV0aGluZyBuZXcgYW5kIHF1aXRlIGRpZmZlcmVudCBmcm9t
IGNsYXNzaWMgaW5kaXJlY3QganVtcHMuIFBvbHlKdW1wCisgICAgICAgIG1ha2VzIHRoZSBjb250
cm9sIGZsb3cgZWRnZXMgZXhwbGljaXQuIFRoZSBjbGllbnQgbXVzdCBzdXBwbHkgdGhlIHN1Y2Nl
c3NvcnMgd2hlbiBpdCBjcmVhdGVzCisgICAgICAgIHRoZSBQb2x5SnVtcC4gVGhlIGNvbXBpbGVy
IG1heSByZXdpcmUgdGhvc2Ugc3VjY2Vzc29yIGVkZ2VzIHRoZSBzYW1lIHdheSB0aGF0IGl0IHdv
dWxkIHJld2lyZQorICAgICAgICBhbnkgY29udHJvbCBmbG93IGVkZ2VzLiBDb25zZXF1ZW50bHkg
dGhlIHZhc3QgbWFqb3JpdHkgb2YgQ0ZHIHJlYXNvbmluZyBpbiBCMyBpcyB1bmNoYW5nZWQuCisg
ICAgICAgIElmIHlvdSBkb24ndCB3YW50IHRvIHVuZGVyc3RhbmQgUG9seUp1bXAsIGp1c3QgdGhp
bmsgb2YgaXQgbGlrZSB5b3Ugd291bGQgYSBTd2l0Y2ggd2l0aCBhbgorICAgICAgICBvcGFxdWUg
aW5jb21pbmcgdmFsdWUuIFRoaXMgd29ya3MgYmVjYXVzZSB3ZSBkbyBub3QgYWRkIGFueSBub3Rp
b24gb2YgZXNjYXBlZCBiYXNpYyBibG9ja3MuCisgICAgICAgIEluc3RlYWQgb2YgbGV0dGluZyB0
aGUgY2xpZW50IGdldCB0aGUgcG9pbnRlcnMgdG8gYmFzaWMgYmxvY2tzIGJ5IGVzY2FwaW5nIHRo
ZW0gbGlrZSBpbiBMTFZNLAorICAgICAgICB5b3UgY2FuIG9ubHkgZ2V0IHRoZSBwb2ludGVycyBv
ZiB0aGUgc3VjY2Vzc29ycyBvZiBQb2x5SnVtcCBieSByZWdpc3RlcmluZyBhIGNhbGxiYWNrIHdp
dGgKKyAgICAgICAgUG9seUp1bXAuIFRoaXMgY2FsbGJhY2sgZG9lc24ndCBhY3R1YWxseSBnaXZl
IHlvdSB0aGUgYWRkcmVzc2VzIG9mIGJhc2ljIGJsb2Nrcy4gSXQganVzdAorICAgICAgICBnaXZl
cyB5b3UgdGhlIGFkZHJlc3NlcyB3aGVyZSB5b3UgbXVzdCBqdW1wIHRvIHRyYW5zZmVyIGNvbnRy
b2wgZmxvdyBmcm9tIHRoYXQgUG9seUp1bXAgdG8KKyAgICAgICAgaXRzIHN1Y2Nlc3NvcnMuIFRo
aXMgbWVhbnMgdGhhdCB0aGUgbWFnaWMgb2YgUG9seUp1bXAgaXMgY29uZmluZWQgb25seSB0byB0
aGUgUG9seUp1bXAgaXRzZWxmCisgICAgICAgIGFuZCBkb2Vzbid0IGluZmVjdCByZWFzb25pbmcg
YWJvdXQgdGhlIGJhc2ljIGJsb2NrcyB0aGF0IGl0IGp1bXBzIHRvLgorICAgICAgICAKKyAgICAg
ICAgVGhlIG9ubHkgZG93bnNpZGUgaXMgdGhhdCB0aGF0IFBvbHlKdW1wIGlzIG5vdCBjbG9uZWFi
bGUuIFlvdSBjYW4ndCBjbG9uZSBpdCBiZWNhdXNlIGlmIHlvdQorICAgICAgICBkaWQsIHRoZW4g
dGhlIHR3byByZXN1bHRpbmcgUG9seUp1bXBzIG1heSBoYXZlIHRoZWlyIHN1Y2Nlc3NvciBlZGdl
cyByZXdpcmVkIGluZGVwZW5kZW50bHkgb2YKKyAgICAgICAgZWFjaCBvdGhlci4gVGhpcyBjb3Vs
ZCBlYXNpbHkgaGFwcGVuIGlmIHdlIGJyZWFrIGNyaXRpY2FsIGVkZ2VzLiBJZiB0aGF0IGRpZCBo
YXBwZW4gdGhlbiBpdAorICAgICAgICB3b3VsZCBicmVhayB0aGUgY2xpZW50IG9mIFBvbHlKdW1w
OiB0aGV5IHdvdWxkIGhhdmUgYWxyZWFkeSBjcmVhdGVkIHNvbWV0aGluZyBsaWtlIGEganVtcAor
ICAgICAgICB0YWJsZSBhbmQgd2lsbCBiZSBwb3B1bGF0aW5nIGl0IHZpYSB0aGUgY2FsbGJhY2ss
IGJ1dCBub3cgdGhlIGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkIHR3aWNlLAorICAgICAgICBhbmQg
bWF5IHJldHVybiBkaWZmZXJlbnQganVtcCBkZXN0aW5hdGlvbnMgZWFjaCB0aW1lLiBTbywgdGhp
cyBwYXRjaCBpbnRyb2R1Y2VzCisgICAgICAgIFZhbHVlOjppc0Nsb25lYWJsZSgpIGFuZCB0ZWFj
aGVzIGJvdGggb2Ygb3VyIGNvZGUgc3BlY2lhbGl6YXRpb24gb3B0aW1pemF0aW9ucyAodGFpbAor
ICAgICAgICBkdXBsaWNhdGlvbiBhbmQgc2VsZWN0IHNwZWNpYWxpemF0aW9uKSB0byBiYWlsIGlm
IHRoZSBjb2RlIHRoZXkgd2FudCB0byBzcGVjaWFsaXplIGlzIG5vdAorICAgICAgICBjbG9uZWFi
bGUuIFRoaXMgaXMgdG90YWxseSBiZW5pZ24gbW9zdCBvZiB0aGUgdGltZSwgc2luY2UgdGhvc2Ug
b3B0aW1pemF0aW9ucyB1c3VhbGx5IHJ1bgorICAgICAgICBiZWZvcmUgU3dpdGNoIGxvd2VyaW5n
LiBDbGllbnRzIHRoYXQgdXNlIFBvbHlKdW1wIGRpcmVjdGx5IGhhdmUgdG8gYXBwcmVjaWF0ZSB0
aGUgdHJhZGUtb2ZmOgorICAgICAgICBQb2x5SnVtcCBtYXkgZ2FpbiB0aGVtIHNvbWUgcGVyZm9y
bWFuY2UgYnV0IHRoZXkgYXJlIG9wdGluZyBvdXQgb2Ygb3B0aW1pemF0aW9ucyB0aGF0IHVzZQor
ICAgICAgICBjbG9uaW5nLiBBIGNsb3NlIGNvcm9sbGFyeSBvZiB0aGUgbm8tY2xvbmUgcnVsZSBp
cyB0aGF0IHRoZSBjbGllbnQgY2Fubm90IGNyZWF0ZSBtdWx0aXBsZQorICAgICAgICBQb2x5SnVt
cHMgdGhhdCBhcmUgZmVkIGJ5IGEgY29tbW9uIGp1bXAgdGFibGU6IHRoZSBmYWN0IHRoYXQgZWFj
aCBQb2x5SnVtcCBoYXMgYSBjYWxsYmFjaworICAgICAgICB0aGF0IGp1c3QgdGVsbHMgeW91IHRo
ZSBqdW1wIGRlc3RpbmF0aW9ucyBmb3IgaXRzIHN1Y2Nlc3NvciAqZWRnZXMqLCBub3Qgc3VjY2Vz
c29yICpibG9ja3MqLAorICAgICAgICBtZWFucyB0aGF0IGlmIHlvdSBjcmVhdGUgdHdvIFBvbHlK
dW1wcyBhbmQgZ2l2ZSB0aGVtIHRoZSBzYW1lIHN1Y2Nlc3NvciBsaXN0LCB5b3UgYXJlIG5vdAor
ICAgICAgICBndWFyYW50ZWVkIHRoYXQgdGhleSB3aWxsIGdldCB0aGUgc2FtZSBqdW1wIGRlc3Rp
bmF0aW9ucy4gVGhpcyBodXJ0cyBpZiB5b3Ugd2FudCB0byB1c2UKKyAgICAgICAgUG9seUp1bXAg
Zm9yIHRocmVhZGVkIGludGVycHJldGVycyBidXQgaXQncyBoYXJtbGVzcyBmb3Igc3dpdGNoIGxv
d2VyaW5nLiBUaGUgZ29hbCBvZgorICAgICAgICBQb2x5SnVtcCBpcyB0byBiZSBhd2Vzb21lIGZv
ciBzd2l0Y2ggbG93ZXJpbmcgd2hpbGUgbm90IGJyZWFraW5nIHRoZSByZXN0IG9mIHRoZSBjb21w
aWxlciwgc28KKyAgICAgICAgdGhpcyBpcyBwcm9iYWJseSBmaW5lLgorICAgICAgICAKKyAgICAg
ICAgVGhlIGlzQ2xvbmVhYmxlKCkgbWV0aG9kIGN1cnJlbnRseSBvbmx5IHJldHVybnMgdHJ1ZSBm
b3IgUG9seUp1bXAsIGJ1dCBJIGFudGljaXBhdGUgd2Ugd2lsbAorICAgICAgICBhZGQgb3RoZXIg
bm9uLWNsb25lYWJsZSB0aGluZ3MgbGF0ZXIuIEkgdGhpbmsgaXMgaXMgaW5oZXJlbnQgaW4gYSBj
b21waWxlciB0aGF0IGFsbG93cyBzdWNoCisgICAgICAgIGN1c3RvbWl6ZWFiaWxpdHkgZm9yIGl0
cyBjbGllbnRzLiBGb3IgZXhhbXBsZSwgd2UgbWF5IHdhbnQgdG8gYWRkIGEgZmxhZyB0byBQYXRj
aHBvaW50IHRoYXQKKyAgICAgICAgbWFrZXMgaXQgbm9uLWNsb25lYWJsZS4gU29tZXRpbWVzIHdl
IGhhdmUgdG8ganVtcCB0aHJvdWdoIGhvb3BzIGluIHRoZSBGVEwgYmVjYXVzZSBvZiB0aGUKKyAg
ICAgICAgY2xvbmVhYmlsaXR5IG9mIHBhdGNocG9pbnRzLiBUaGlzIGhhcHBlbnMgaW4gT1NSIGV4
aXRzLCB3aGljaCBwYXkgYSBzaWduaWZpY2FudCBtZW1vcnkgY29zdAorICAgICAgICBmb3IgYWRk
aXRpb25hbCBkYXRhIHN0cnVjdHVyZXMgdGhhdCBhcmUgdGhlcmUgaW4gY2FzZSBhbiBleGl0IGdl
dHMgY2xvbmVkLiBJdCBtYXkgYmUgbW9yZQorICAgICAgICBwcm9maXRhYmxlIHRvIGp1c3Qgc2F5
IHRoYXQgT1NSIGV4aXRzIChpLmUuIENoZWNrcyBhbmQgSW52YWxpZGF0aW9uUG9pbnQgUGF0Y2hw
b2ludHMpIGFyZSBub3QKKyAgICAgICAgY2xvbmVhYmxlLiBTdXJlbHkgdGhpcyB3b3VsZCByZWR1
Y2UgdGFpbCBkdXBsaWNhdGlvbiwgYnV0IHRhaWwgZHVwbGljYXRpb24gaXMgbW9zdCBwcm9maXRh
YmxlCisgICAgICAgIHdoZW4gaXQgY2xvbmVzIG9ubHkgYSB0aW55IGFtb3VudCBvZiBjb2RlOyBp
ZiB0aGVyZSdzIGFuIGV4aXQgdGhlbiB3ZSdyZSBub3QgdGFsa2luZyBhYm91dCBhCisgICAgICAg
IHRpbnkgYW1vdW50IG9mIGNvZGUgYW55bW9yZS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaXMg
YSB+MzAlIHNwZWVkLXVwIG9uIG1pY3JvYmVuY2htYXJrcyB0aGF0IGhhdmUgYmlnIHN3aXRjaCBz
dGF0ZW1lbnRzICh+NjAgY2FzZXMpLiBJdCdzCisgICAgICAgIG5vdCBhIHNwZWVkLXVwIG9uIG1h
aW5zdHJlYW0gYmVuY2htYXJrcy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgYWxzbyBhZGRzIGEg
bmV3IHRlc3QgdG8gdGVzdGIzIGZvciBQb2x5SnVtcCwgR2V0LCBhbmQgU2V0LiBUaGUgRlRMIGRv
ZXMgbm90IGN1cnJlbnRseQorICAgICAgICB1c2UgUG9seUp1bXAgZGlyZWN0bHksIGJ1dCB3ZSB3
YW50IHRoaXMgdG8gYmUgcG9zc2libGUuIEl0IGFsc28gZG9lc24ndCB1c2UgR2V0L1NldCBkaXJl
Y3RseQorICAgICAgICBldmVuIHRob3VnaCB3ZSB3YW50IHRoaXMgdG8gYmUgcG9zc2libGUuIEl0
J3MgaW1wb3J0YW50IHRvIHRlc3QgdGhlc2Ugc2luY2Ugb3Bjb2RlcyB0aGF0CisgICAgICAgIHJl
c3VsdCBmcm9tIGxvd2VyaW5nIGRvbid0IGFmZmVjdCBlYXJseSBwaGFzZXMsIHNvIHdlIGNvdWxk
IGhhdmUgcmVncmVzc2lvbnMgaW4gZWFybHkgcGhhc2VzCisgICAgICAgIHJlbGF0ZWQgdG8gdGhl
c2Ugb3Bjb2RlcyB0aGF0IHdvdWxkbid0IGJlIGNhdWdodCBieSBhbnkgSlMgdGVzdC4gU28sIHRo
aXMgYWRkcyBhIHZlcnkgYmFzaWMKKyAgICAgICAgdGhyZWFkZWQgaW50ZXJwcmV0ZXIgdG8gdGVz
dGIzIGZvciBhIEJyYWluZnVjay1zdHlsZSBsYW5ndWFnZSwgYW5kIHRlc3RzIGl0IGJ5IGhhdmlu
ZyBpdCBydW4KKyAgICAgICAgYSBwcm9ncmFtIHRoYXQgcHJpbnRzIHRoZSBudW1iZXJzIDEuLjEw
MCBpbiBhIGxvb3AuIFVubGlrZSBhIHJlYWwgdGhyZWFkZWQgaW50ZXJwcmV0ZXIsIGl0CisgICAg
ICAgIHVzZXMgYSBjb21tb24gZGlzcGF0Y2ggYmxvY2sgcmF0aGVyIHRoYW4gaGF2aW5nIGRpc3Bh
dGNoIGF0IHRoZSB0ZXJtaW51cyBvZiBlYWNoIG9wY29kZS4KKyAgICAgICAgVGhhdCdzIG5lY2Vz
c2FyeSBiZWNhdXNlIFBvbHlKdW1wIGlzIG5vdCBjbG9uZWFibGUuIFRoZSBzdGF0ZSBvZiB0aGUg
aW50ZXJwcmV0ZXIgaXMKKyAgICAgICAgcmVwcmVzZW50ZWQgdXNpbmcgVmFyaWFibGVzIHRoYXQg
d2UgR2V0IGFuZCBTZXQsIHNvIGl0IHRlc3RzIEdldC9TZXQgYXMgd2VsbC4KKworICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9u
Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpqdW1wKToKKyAgICAg
ICAgKiBhc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxl
cjo6am1wX20pOgorICAgICAgICAqIGIzL0IzQmFzaWNCbG9jay5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpCYXNpY0Jsb2NrOjp1cGRhdGVQcmVkZWNlc3NvcnNBZnRlcik6CisgICAgICAgIChKU0M6
OkIzOjpCYXNpY0Jsb2NrOjppc0Nsb25lYWJsZSk6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Js
b2NrOjpkdW1wKToKKyAgICAgICAgKiBiMy9CM0Jhc2ljQmxvY2suaDoKKyAgICAgICAgKEpTQzo6
QjM6OkJhc2ljQmxvY2s6OmZyZXF1ZW5jeSk6CisgICAgICAgICogYjMvQjNDb21tb24uaDoKKyAg
ICAgICAgKEpTQzo6QjM6OmlzNjRCaXQpOgorICAgICAgICAqIGIzL0IzQ29udHJvbFZhbHVlLmg6
CisgICAgICAgICogYjMvQjNEYXRhU2VjdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkIzOjpEYXRh
U2VjdGlvbjo6RGF0YVNlY3Rpb24pOgorICAgICAgICAqIGIzL0IzRHVwbGljYXRlVGFpbHMuY3Bw
OgorICAgICAgICAqIGIzL0IzTG93ZXJNYWNyb3MuY3BwOgorICAgICAgICAqIGIzL0IzTG93ZXJU
b0Fpci5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okxvd2VyVG9BaXI6Omxvd2VyKToKKyAg
ICAgICAgKiBiMy9CM09wY29kZS5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgor
ICAgICAgICAqIGIzL0IzT3Bjb2RlLmg6CisgICAgICAgICogYjMvQjNQb2x5SnVtcFZhbHVlLmNw
cDogQWRkZWQuCisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjp+UG9seUp1bXBWYWx1
ZSk6CisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjphcHBlbmRTdWNjZXNzb3IpOgor
ICAgICAgICAoSlNDOjpCMzo6UG9seUp1bXBWYWx1ZTo6c2V0Q2FsbGJhY2tUYXNrKToKKyAgICAg
ICAgKEpTQzo6QjM6OlBvbHlKdW1wVmFsdWU6OmlzQ2xvbmVhYmxlKToKKyAgICAgICAgKEpTQzo6
QjM6OlBvbHlKdW1wVmFsdWU6OmR1bXBNZXRhKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1w
VmFsdWU6OmNsb25lSW1wbCk6CisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjpQb2x5
SnVtcFZhbHVlKToKKyAgICAgICAgKiBiMy9CM1BvbHlKdW1wVmFsdWUuaDogQWRkZWQuCisgICAg
ICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjphY2NlcHRzKToKKyAgICAgICAgKEpTQzo6QjM6
OlBvbHlKdW1wVmFsdWU6OnNldENhbGxiYWNrKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1w
VmFsdWU6OmNhbGxiYWNrVGFzayk6CisgICAgICAgICogYjMvQjNQcm9jZWR1cmUuY3BwOgorICAg
ICAgICAoSlNDOjpCMzo6UHJvY2VkdXJlOjpjbG9uZSk6CisgICAgICAgICogYjMvQjNQcm9jZWR1
cmUuaDoKKyAgICAgICAgKEpTQzo6QjM6OlByb2NlZHVyZTo6bGFzdFBoYXNlTmFtZSk6CisgICAg
ICAgIChKU0M6OkIzOjpQcm9jZWR1cmU6OmJ5cHJvZHVjdHMpOgorICAgICAgICAqIGIzL0IzUmVk
dWNlU3RyZW5ndGguY3BwOgorICAgICAgICAqIGIzL0IzVmFsaWRhdGUuY3BwOgorICAgICAgICAq
IGIzL0IzVmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6OmVmZmVjdHMpOgorICAg
ICAgICAoSlNDOjpCMzo6VmFsdWU6OmlzQ2xvbmVhYmxlKToKKyAgICAgICAgKEpTQzo6QjM6OlZh
bHVlOjprZXkpOgorICAgICAgICAqIGIzL0IzVmFsdWUuaDoKKyAgICAgICAgKiBiMy9haXIvQWly
Q29kZS5oOgorICAgICAgICAqIGIzL2Fpci9BaXJHZW5lcmF0ZS5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpBaXI6OmdlbmVyYXRlKToKKyAgICAgICAgKiBiMy9haXIvQWlySW5zdC5jcHA6CisgICAg
ICAgIChKU0M6OkIzOjpBaXI6Okluc3Q6Omhhc0FyZ0VmZmVjdHMpOgorICAgICAgICAoSlNDOjpC
Mzo6QWlyOjpJbnN0Ojppc0Nsb25lYWJsZSk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okluc3Q6
OmR1bXApOgorICAgICAgICAqIGIzL2Fpci9BaXJJbnN0Lmg6CisgICAgICAgICogYjMvYWlyL0Fp
ck9wY29kZS5vcGNvZGVzOgorICAgICAgICAqIGIzL3Rlc3RiMy5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpzaG91bGRCZVZlcmJvc2UpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN3aXRjaENoaWxs
RGl2KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RMYXRlUmVnaXN0ZXIpOgorICAgICAgICAoSlND
OjpCMzo6dGhyZWFkZWRJbnRlcnByZXRlclByaW50KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RU
aHJlYWRlZEludGVycHJldGVyKToKKyAgICAgICAgKEpTQzo6QjM6Onplcm8pOgorICAgICAgICAo
SlNDOjpCMzo6cnVuKToKKwogMjAxNi0wNi0xNiAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5j
b20+CiAKICAgICAgICAgQWRkIGNvbGxlY3Rpbmcgb2YgTExJTlQgc2xvdyBwYXRoIHN0YXRzLgpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMjAyMTM3KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0xNDQsNiArMTQ0LDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICBiMy9CM1Bh
dGNocG9pbnRWYWx1ZS5jcHAKICAgICBiMy9CM1BoYXNlU2NvcGUuY3BwCiAgICAgYjMvQjNQaGlD
aGlsZHJlbi5jcHAKKyAgICBiMy9CM1BvbHlKdW1wVmFsdWUuY3BwCiAgICAgYjMvQjNQcm9jZWR1
cmUuY3BwCiAgICAgYjMvQjNQdXJlQ1NFLmNwcAogICAgIGIzL0IzUmVkdWNlRG91YmxlVG9GbG9h
dC5jcHAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMDIxMzcp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTk4NCw2ICsxOTg0LDggQEAKIAkJREMxN0U4
MUExQzlDOTFFOTAwOEE2QUIzIC8qIENDYWxsSGVscGVycy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzE3RTgxNjFDOUM4MDJCMDA4QTZBQjMgLyog
Q0NhbGxIZWxwZXJzLmNwcCAqLzsgfTsKIAkJREMyMTQzMDcxQ0EzMkU1NTAwMEE4ODY5IC8qIElD
U3RhdHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERD
MjE0MzA2MUNBMzJFNTIwMDBBODg2OSAvKiBJQ1N0YXRzLmggKi87IH07CiAJCURDMjE0MzA4MUNB
MzJFNTgwMDBBODg2OSAvKiBJQ1N0YXRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IERDMjE0MzA1MUNBMzJFNTIwMDBBODg2OSAvKiBJQ1N0YXRzLmNw
cCAqLzsgfTsKKwkJREM0NTRCODgxQ0ZGNkZFNzAwNEMxOEFGIC8qIEIzUG9seUp1bXBWYWx1ZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzQ1NEI4
NjFDRkY2RkU1MDA0QzE4QUYgLyogQjNQb2x5SnVtcFZhbHVlLmNwcCAqLzsgfTsKKwkJREM0NTRC
ODkxQ0ZGNkZFQTAwNEMxOEFGIC8qIEIzUG9seUp1bXBWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM0NTRCODcxQ0ZGNkZFNTAwNEMxOEFGIC8q
IEIzUG9seUp1bXBWYWx1ZS5oICovOyB9OwogCQlEQzQ1NEI4QzFEMDBFODIyMDA0QzE4QUYgLyog
QWlyRHVtcEFzSlMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gREM0NTRCOEExRDAwRTgxRjAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmNwcCAqLzsgfTsK
IAkJREM0NTRCOEQxRDAwRTgyNDAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzQ1NEI4QjFEMDBFODFGMDA0QzE4
QUYgLyogQWlyRHVtcEFzSlMuaCAqLzsgfTsKIAkJREM2MDVCNUQxQ0UyNkVBMDAwNTkzNzE4IC8q
IFByb2ZpbGVyRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gREM2MDVCNTkxQ0UyNkU5ODAwNTkzNzE4IC8qIFByb2ZpbGVyRXZlbnQuY3BwICov
OyB9OwpAQCAtNDIwMSw2ICs0MjAzLDggQEAKIAkJREMxN0U4MTYxQzlDODAyQjAwOEE2QUIzIC8q
IENDYWxsSGVscGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBD
Q2FsbEhlbHBlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzIxNDMwNTFD
QTMyRTUyMDAwQTg4NjkgLyogSUNTdGF0cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBJQ1N0YXRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREMy
MTQzMDYxQ0EzMkU1MjAwMEE4ODY5IC8qIElDU3RhdHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSUNTdGF0cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEQzQ1
NEI4NjFDRkY2RkU1MDA0QzE4QUYgLyogQjNQb2x5SnVtcFZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEIzUG9seUp1bXBWYWx1ZS5jcHA7IHBhdGggPSBiMy9C
M1BvbHlKdW1wVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEQzQ1NEI4
NzFDRkY2RkU1MDA0QzE4QUYgLyogQjNQb2x5SnVtcFZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IEIzUG9seUp1bXBWYWx1ZS5oOyBwYXRoID0gYjMvQjNQb2x5SnVtcFZh
bHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDNDU0QjhBMUQwMEU4MUYwMDRD
MThBRiAvKiBBaXJEdW1wQXNKUy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBBaXJEdW1wQXNKUy5jcHA7IHBhdGggPSBiMy9haXIvQWlyRHVtcEFzSlMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzQ1NEI4QjFEMDBFODFGMDA0QzE4QUYgLyogQWly
RHVtcEFzSlMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQWlyRHVtcEFzSlMu
aDsgcGF0aCA9IGIzL2Fpci9BaXJEdW1wQXNKUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlEQzYwNUI1OTFDRTI2RTk4MDA1OTM3MTggLyogUHJvZmlsZXJFdmVudC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQcm9maWxlckV2ZW50LmNwcDsgcGF0aCA9
IHByb2ZpbGVyL1Byb2ZpbGVyRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtNDc1NCw2ICs0NzU4LDggQEAKIAkJCQkwRkVDODRFMDFCREFDREFDMDA4MEZGNzQgLyogQjNQ
aGFzZVNjb3BlLmggKi8sCiAJCQkJMEYzNzMwOEExQzBCRDI5MTAwMDUyQkZBIC8qIEIzUGhpQ2hp
bGRyZW4uY3BwICovLAogCQkJCTBGMzczMDhCMUMwQkQyOTEwMDA1MkJGQSAvKiBCM1BoaUNoaWxk
cmVuLmggKi8sCisJCQkJREM0NTRCODYxQ0ZGNkZFNTAwNEMxOEFGIC8qIEIzUG9seUp1bXBWYWx1
ZS5jcHAgKi8sCisJCQkJREM0NTRCODcxQ0ZGNkZFNTAwNEMxOEFGIC8qIEIzUG9seUp1bXBWYWx1
ZS5oICovLAogCQkJCTBGRUM4NEUxMUJEQUNEQUMwMDgwRkY3NCAvKiBCM1Byb2NlZHVyZS5jcHAg
Ki8sCiAJCQkJMEZFQzg0RTIxQkRBQ0RBQzAwODBGRjc0IC8qIEIzUHJvY2VkdXJlLmggKi8sCiAJ
CQkJMEZFQzg0RTMxQkRBQ0RBQzAwODBGRjc0IC8qIEIzUHJvY2VkdXJlSW5saW5lcy5oICovLApA
QCAtNzEzMSw2ICs3MTM3LDcgQEAKIAkJCQkwRjhGOTQ0MTE2Njc2MzMyMDBENjE5NzEgLyogQ29k
ZUJsb2NrSGFzaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDOTdGMzQxODIwMjBENzAwMkM5QjI2
IC8qIENvZGVCbG9ja0pldHRpc29uaW5nV2F0Y2hwb2ludC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEZEOEEzMTQxN0Q0MzI2QzAwQ0EyQzQwIC8qIENvZGVCbG9ja1NldC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJREM0NTRCODkxQ0ZGNkZFQTAwNEMxOEFGIC8qIEIzUG9seUp1bXBWYWx1ZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEY5NkVCQjMxNjY3NkVGNjAwOEJBREUzIC8qIENvZGVCbG9ja1dpdGhK
SVRUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzdGMTgyMjE2NDA4OEIyMDA2NDBBNDcgLyog
Q29kZUNhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OUNDMEI2MzE4QkU5OTUwMDA2Q0VCQ0Mg
LyogQ29kZUdlbmVyYXRvclJlcGxheUlucHV0cy5weSBpbiBIZWFkZXJzICovLApAQCAtOTQwOSw2
ICs5NDE2LDcgQEAKIAkJCQk3MDlGQjg2QjFBRTMzNUM2MDAzOUQwNjkgLyogV2Vha1NldFByb3Rv
dHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyQTRFQzkwQjE4NjBENkMyMDA5NEY3ODIgLyog
V3JpdGVCYXJyaWVyQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQzgxNTBCMTQwNDND
MEUwMENGQTYwMyAvKiBXcml0ZUJhcnJpZXJTdXBwb3J0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CURDNDU0Qjg4MUNGRjZGRTcwMDRDMThBRiAvKiBCM1BvbHlKdW1wVmFsdWUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTdFNUFCM0ExNzk5RTRCMjAwRDI4MzNEIC8qIFg4NkRpc2Fzc2VtYmxlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjJCQkQ5NzFDNUZGM0Y1MDAyM0VGMjMgLyogQjNWYXJp
YWJsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NjNDNkQ5QzE1MjExMTFBMDA1ODVFNEUgLyog
WWFyckNhbm9uaWNhbGl6ZVVDUzIuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNv
bW1vbi5oCShyZXZpc2lvbiAyMDIxMzcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTIyNjIsNiAr
MjI2MiwxMiBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLmptcF9tKGFkZHJlc3Mub2Zm
c2V0LCBhZGRyZXNzLmJhc2UpOwogICAgIH0KIAorICAgIC8vIEFkZHJlc3MgaXMgYSBtZW1vcnkg
bG9jYXRpb24gY29udGFpbmluZyB0aGUgYWRkcmVzcyB0byBqdW1wIHRvCisgICAgdm9pZCBqdW1w
KEJhc2VJbmRleCBhZGRyZXNzKQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIuam1wX20oYWRk
cmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFzZSwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZSk7
CisgICAgfQorCiAKICAgICAvLyBBcml0aG1ldGljIGNvbnRyb2wgZmxvdyBvcGVyYXRpb25zOgog
ICAgIC8vCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNz
ZW1ibGVyLmgJKHJldmlzaW9uIDIwMjEzNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvWDg2QXNzZW1ibGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTE5ODMsNiArMTk4MywxMSBA
QCBwdWJsaWM6CiAgICAgICAgIG1fZm9ybWF0dGVyLm9uZUJ5dGVPcChPUF9HUk9VUDVfRXYsIEdS
T1VQNV9PUF9KTVBOLCBiYXNlLCBvZmZzZXQpOwogICAgIH0KICAgICAKKyAgICB2b2lkIGptcF9t
KGludCBvZmZzZXQsIFJlZ2lzdGVySUQgYmFzZSwgUmVnaXN0ZXJJRCBpbmRleCwgaW50IHNjYWxl
KQorICAgIHsKKyAgICAgICAgbV9mb3JtYXR0ZXIub25lQnl0ZU9wKE9QX0dST1VQNV9FdiwgR1JP
VVA1X09QX0pNUE4sIGJhc2UsIGluZGV4LCBzY2FsZSwgb2Zmc2V0KTsKKyAgICB9CisgICAgCiAj
aWYgIUNQVShYODZfNjQpCiAgICAgdm9pZCBqbXBfbShjb25zdCB2b2lkKiBhZGRyZXNzKQogICAg
IHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2suY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2suY3BwCShyZXZp
c2lvbiAyMDIxMzcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTA5LDYgKzEwOSwxNSBAQCB2b2lkIEJhc2ljQmxvY2s6OnVw
ZGF0ZVByZWRlY2Vzc29yc0FmdGVyCiAgICAgQjM6OnVwZGF0ZVByZWRlY2Vzc29yc0FmdGVyKHRo
aXMpOwogfQogCitib29sIEJhc2ljQmxvY2s6OmlzQ2xvbmVhYmxlKCkgY29uc3QKK3sKKyAgICBm
b3IgKFZhbHVlKiB2YWx1ZSA6ICp0aGlzKSB7CisgICAgICAgIGlmICghdmFsdWUtPmlzQ2xvbmVh
YmxlKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0cnVl
OworfQorCiB2b2lkIEJhc2ljQmxvY2s6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHsK
ICAgICBvdXQucHJpbnQoZHVtcFByZWZpeCwgbV9pbmRleCk7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzQmFzaWNCbG9jay5oCShyZXZpc2lvbiAyMDIxMzcpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTExNSw2ICsx
MTUsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVQcmVkZWNlc3NvcnNBZnRlcigpOwogCiAg
ICAgZG91YmxlIGZyZXF1ZW5jeSgpIGNvbnN0IHsgcmV0dXJuIG1fZnJlcXVlbmN5OyB9CisgICAg
CisgICAgYm9vbCBpc0Nsb25lYWJsZSgpIGNvbnN0OwogCiAgICAgdm9pZCBkdW1wKFByaW50U3Ry
ZWFtJikgY29uc3Q7CiAgICAgdm9pZCBkZWVwRHVtcChjb25zdCBQcm9jZWR1cmUmLCBQcmludFN0
cmVhbSYpIGNvbnN0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29tbW9uLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29tbW9uLmgJKHJldmlz
aW9uIDIwMjEzNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbW1vbi5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTI4LDYgKzI4LDggQEAKIAogI2lmIEVOQUJMRShCM19KSVQpCiAKKyNpbmNsdWRl
ICJKU0V4cG9ydE1hY3Jvcy5oIgorCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIAog
aW5saW5lIGJvb2wgaXM2NEJpdCgpIHsgcmV0dXJuIHNpemVvZih2b2lkKikgPT0gODsgfQpAQCAt
MzgsNyArNDAsNyBAQCBlbnVtIEIzQ29tcGxpdGF0aW9uTW9kZSB7CiAgICAgQWlyTW9kZQogfTsK
IAotYm9vbCBzaG91bGREdW1wSVIoQjNDb21wbGl0YXRpb25Nb2RlKTsKK0pTX0VYUE9SVF9QUklW
QVRFIGJvb2wgc2hvdWxkRHVtcElSKEIzQ29tcGxpdGF0aW9uTW9kZSk7CiBib29sIHNob3VsZER1
bXBJUkF0RWFjaFBoYXNlKEIzQ29tcGxpdGF0aW9uTW9kZSk7CiBib29sIHNob3VsZFZhbGlkYXRl
SVIoKTsKIGJvb2wgc2hvdWxkVmFsaWRhdGVJUkF0RWFjaFBoYXNlKCk7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNDb250cm9sVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNDb250cm9sVmFsdWUuaAkocmV2aXNpb24gMjAyMTM3KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29udHJvbFZhbHVlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTQ2LDkgKzQ2LDEwIEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBSZXR1cm46CiAgICAgICAg
IGNhc2UgT29wczoKICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBjYXNlIFN3aXRj
aDogCi0gICAgICAgICAgICAvLyBUaGlzIGlzIGhlcmUgYmVjYXVzZSBTd2l0Y2hWYWx1ZSBpcyBh
IHN1YmNsYXNzIG9mIENvbnRyb2xWYWx1ZSwgc28gd2Ugd2FudAotICAgICAgICAgICAgLy8gc3dp
dGNoVmFsdWUtPmFzPENvbnRyb2xWYWx1ZT4oKSB0byByZXR1cm4gbm9uLW51bGwuCisgICAgICAg
IGNhc2UgU3dpdGNoOgorICAgICAgICBjYXNlIFBvbHlKdW1wOgorICAgICAgICAgICAgLy8gVGhp
cyBpcyBoZXJlIGJlY2F1c2UgU3dpdGNoVmFsdWUgYW5kIFBvbHlKdW1wVmFsdWUgYXJlIHN1YmNs
YXNzZXMgb2YgQ29udHJvbFZhbHVlLAorICAgICAgICAgICAgLy8gc28gd2Ugd2FudCB0aGluZ3Mg
bGlrZSBzd2l0Y2hWYWx1ZS0+YXM8Q29udHJvbFZhbHVlPigpIHRvIHJldHVybiBub24tbnVsbC4K
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwpAQCAtNzcsNyArNzgsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgYm9v
bCByZXBsYWNlU3VjY2Vzc29yKEJhc2ljQmxvY2sqIGZyb20sIEJhc2ljQmxvY2sqIHRvKTsKLQor
ICAgIAogICAgIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgdGFrZW4oKSBjb25zdAogICAgIHsKICAg
ICAgICAgQVNTRVJUKG9wY29kZSgpID09IEp1bXAgfHwgb3Bjb2RlKCkgPT0gQnJhbmNoKTsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0RhdGFTZWN0aW9uLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEYXRhU2VjdGlvbi5jcHAJKHJldmlzaW9u
IDIwMjEzNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0RhdGFTZWN0aW9uLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0zMSw3ICszMSw3IEBACiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIz
IHsKIAogRGF0YVNlY3Rpb246OkRhdGFTZWN0aW9uKHNpemVfdCBzaXplKQotICAgIDogbV9kYXRh
KGZhc3RNYWxsb2Moc2l6ZSkpCisgICAgOiBtX2RhdGEoZmFzdFplcm9lZE1hbGxvYyhzaXplKSkK
ICAgICAsIG1fc2l6ZShzaXplKQogewogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzRHVwbGljYXRlVGFpbHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0R1cGxpY2F0ZVRhaWxzLmNwcAkocmV2aXNpb24gMjAyMTM3KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzRHVwbGljYXRlVGFpbHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03
Miw5ICs3MiwxMSBAQCBwdWJsaWM6CiAgICAgICAgIEluZGV4U2V0PEJhc2ljQmxvY2s+IGNhbmRp
ZGF0ZXM7CiAKICAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBibG9jayA6IG1fcHJvYykgewotICAg
ICAgICAgICAgaWYgKGJsb2NrLT5zaXplKCkgPiBtX21heFNpemUgfHwgYmxvY2stPm51bVN1Y2Nl
c3NvcnMoKSA+IG1fbWF4U3VjY2Vzc29ycykKKyAgICAgICAgICAgIGlmIChibG9jay0+c2l6ZSgp
ID4gbV9tYXhTaXplCisgICAgICAgICAgICAgICAgfHwgYmxvY2stPm51bVN1Y2Nlc3NvcnMoKSA+
IG1fbWF4U3VjY2Vzc29ycworICAgICAgICAgICAgICAgIHx8ICFibG9jay0+aXNDbG9uZWFibGUo
KSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKLQorICAgICAgICAgICAgCiAgICAgICAgICAg
ICBjYW5kaWRhdGVzLmFkZChibG9jayk7CiAgICAgICAgIH0KIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzTG93ZXJNYWNyb3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0xvd2VyTWFjcm9zLmNwcAkocmV2aXNpb24gMjAyMTM3KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJNYWNyb3MuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0
LDcgKzM0LDkgQEAKICNpbmNsdWRlICJCM0NvbnN0UHRyVmFsdWUuaCIKICNpbmNsdWRlICJCM0Nv
bnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzSW5zZXJ0aW9uU2V0SW5saW5lcy5oIgorI2luY2x1
ZGUgIkIzTWVtb3J5VmFsdWUuaCIKICNpbmNsdWRlICJCM1BoYXNlU2NvcGUuaCIKKyNpbmNsdWRl
ICJCM1BvbHlKdW1wVmFsdWUuaCIKICNpbmNsdWRlICJCM1Byb2NlZHVyZUlubGluZXMuaCIKICNp
bmNsdWRlICJCM1N3aXRjaFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNVcHNpbG9uVmFsdWUuaCIKQEAg
LTI3NSw4ICsyNzcsOTUgQEAgcHJpdmF0ZToKICAgICAgICAgY29uc3QgVmVjdG9yPFN3aXRjaENh
c2U+JiBjYXNlcywgdW5zaWduZWQgc3RhcnQsIGJvb2wgaGFyZFN0YXJ0LCB1bnNpZ25lZCBlbmQs
CiAgICAgICAgIEJhc2ljQmxvY2sqIGJlZm9yZSkKICAgICB7Ci0gICAgICAgIC8vIEZJWE1FOiBB
ZGQgdGFibGUtYmFzZWQgc3dpdGNoIGxvd2VyaW5nLgotICAgICAgICAvLyBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxMTQxCisgICAgICAgIFZhbHVlKiBjaGlsZCA9
IG1fdmFsdWUtPmNoaWxkKDApOworICAgICAgICBUeXBlIHR5cGUgPSBjaGlsZC0+dHlwZSgpOwor
ICAgICAgICBGcmVxdWVudGVkQmxvY2sgZmFsbFRocm91Z2ggPSBtX3ZhbHVlLT5hczxTd2l0Y2hW
YWx1ZT4oKS0+ZmFsbFRocm91Z2goKTsKKyAgICAgICAgCisgICAgICAgIC8vIEl0J3MgYSBnb29k
IGlkZWEgdG8gdXNlIGEgdGFibGUtYmFzZWQgc3dpdGNoIGluIHNvbWUgY2FzZXM6IHRoZSBudW1i
ZXIgb2YgY2FzZXMgaGFzIHRvIGJlCisgICAgICAgIC8vIGxhcmdlIGVub3VnaCBhbmQgdGhleSBo
YXZlIHRvIGJlIGRlbnNlIGVub3VnaC4gVGhpcyBjb3VsZCBwcm9iYWJseSBiZSBpbXByb3ZlZCBh
IGxvdC4gRm9yCisgICAgICAgIC8vIGV4YW1wbGUsIHdlIGNvdWxkIHN0aWxsIHVzZSBhIGp1bXAg
dGFibGUgaW4gY2FzZXMgd2hlcmUgdGhlIGlucHV0cyBhcmUgc3BhcnNlIHNvIGxvbmcgYXMgd2UK
KyAgICAgICAgLy8gc2hpZnQgb2ZmIHRoZSB1bmludGVyZXN0aW5nIGJpdHMuIE9uIHRoZSBvdGhl
ciBoYW5kLCBpdCdzIG5vdCBjbGVhciB0aGF0IHRoaXMgd291bGQKKyAgICAgICAgLy8gYWN0dWFs
bHkgYmUgYW55IGJldHRlciB0aGFuIHdoYXQgd2UgaGF2ZSBkb25lIGhlcmUgYW5kIGl0J3Mgbm90
IGNsZWFyIHRoYXQgaXQgd291bGQgYmUKKyAgICAgICAgLy8gYmV0dGVyIHRoYW4gYSBiaW5hcnkg
c3dpdGNoLgorICAgICAgICBjb25zdCB1bnNpZ25lZCBtaW5DYXNlc0ZvclRhYmxlID0gNzsKKyAg
ICAgICAgY29uc3QgdW5zaWduZWQgZGVuc2l0eUxpbWl0ID0gNDsKKyAgICAgICAgaWYgKGVuZCAt
IHN0YXJ0ID49IG1pbkNhc2VzRm9yVGFibGUpIHsKKyAgICAgICAgICAgIGludDY0X3QgZmlyc3RW
YWx1ZSA9IGNhc2VzW3N0YXJ0XS5jYXNlVmFsdWUoKTsKKyAgICAgICAgICAgIGludDY0X3QgbGFz
dFZhbHVlID0gY2FzZXNbZW5kIC0gMV0uY2FzZVZhbHVlKCk7CisgICAgICAgICAgICBpZiAoKGxh
c3RWYWx1ZSAtIGZpcnN0VmFsdWUgKyAxKSAvIGNhc2VzLnNpemUoKSA8IGRlbnNpdHlMaW1pdCkg
eworICAgICAgICAgICAgICAgIEJhc2ljQmxvY2sqIHN3aXRjaEJsb2NrID0gbV9ibG9ja0luc2Vy
dGlvblNldC5pbnNlcnRBZnRlcihtX2Jsb2NrKTsKKyAgICAgICAgICAgICAgICBWYWx1ZSogaW5k
ZXggPSBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICAgICAgICAgIG1fcHJv
YywgU3ViLCBtX29yaWdpbiwgY2hpbGQsCisgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBw
ZW5kSW50Q29uc3RhbnQobV9wcm9jLCBtX29yaWdpbiwgdHlwZSwgZmlyc3RWYWx1ZSkpOworICAg
ICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgICAg
ICAgICAgICAgIG1fcHJvYywgQnJhbmNoLCBtX29yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAg
YmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9j
LCBBYm92ZSwgbV9vcmlnaW4sIGluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgYmVmb3Jl
LT5hcHBlbmRJbnRDb25zdGFudChtX3Byb2MsIG1fb3JpZ2luLCB0eXBlLCBsYXN0VmFsdWUgLSBm
aXJzdFZhbHVlKSksCisgICAgICAgICAgICAgICAgICAgIGZhbGxUaHJvdWdoLCBGcmVxdWVudGVk
QmxvY2soc3dpdGNoQmxvY2spKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBz
aXplX3QgdGFibGVTaXplID0gbGFzdFZhbHVlIC0gZmlyc3RWYWx1ZSArIDE7CisgICAgICAgICAg
ICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKiBqdW1wVGFibGUgPSBiaXR3aXNlX2Nhc3Q8TWFj
cm9Bc3NlbWJsZXJDb2RlUHRyKj4oCisgICAgICAgICAgICAgICAgICAgIG1fcHJvYy5hZGREYXRh
U2VjdGlvbihzaXplb2YoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKSAqIHRhYmxlU2l6ZSkpOworICAg
ICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFZhbHVlKiBiYXNlID0gc3dpdGNoQmxvY2st
PmFwcGVuZEludENvbnN0YW50KAorICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIG1fb3JpZ2lu
LCBwb2ludGVyVHlwZSgpLCBiaXR3aXNlX2Nhc3Q8aW50cHRyX3Q+KGp1bXBUYWJsZSkpOworICAg
ICAgICAgICAgICAgIGlmIChpbmRleC0+dHlwZSgpICE9IGJhc2UtPnR5cGUoKSkgeworICAgICAg
ICAgICAgICAgICAgICBpZiAoaW5kZXgtPnR5cGUoKSA9PSBJbnQzMikKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGluZGV4ID0gc3dpdGNoQmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBa
RXh0MzIsIG1fb3JpZ2luLCBpbmRleCk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGluZGV4ID0gc3dpdGNoQmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4o
bV9wcm9jLCBUcnVuYywgbV9vcmlnaW4sIGluZGV4KTsKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgaW5kZXggPSBzd2l0Y2hCbG9jay0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAg
ICAgICAgICAgICAgICAgbV9wcm9jLCBNdWwsIG1fb3JpZ2luLCBpbmRleCwKKyAgICAgICAgICAg
ICAgICAgICAgc3dpdGNoQmxvY2stPmFwcGVuZEludENvbnN0YW50KAorICAgICAgICAgICAgICAg
ICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwgcG9pbnRlclR5cGUoKSwgc2l6ZW9mKE1hY3JvQXNz
ZW1ibGVyQ29kZVB0cikpKTsKKyAgICAgICAgICAgICAgICBWYWx1ZSogcHRyID0gc3dpdGNoQmxv
Y2stPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBBZGQsIG1fb3JpZ2luLCBiYXNlLCBpbmRleCk7
CisgICAgICAgICAgICAgICAgVmFsdWUqIGp1bXBUYXJnZXQgPQorICAgICAgICAgICAgICAgICAg
ICBzd2l0Y2hCbG9jay0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihtX3Byb2MsIExvYWQsIHBvaW50
ZXJUeXBlKCksIG1fb3JpZ2luLCBwdHIpOworICAgICAgICAgICAgICAgIFBvbHlKdW1wVmFsdWUq
IHBvbHlKdW1wID0KKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoQmxvY2stPmFwcGVuZE5ldzxQ
b2x5SnVtcFZhbHVlPihtX3Byb2MsIG1fb3JpZ2luLCBqdW1wVGFyZ2V0KTsKKyAgICAgICAgICAg
ICAgICAKKyAgICAgICAgICAgICAgICBCaXRWZWN0b3IgaGFuZGxlZEluZGljZXM7CisgICAgICAg
ICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gc3RhcnQ7IGkgPCBlbmQ7ICsraSkgeworICAgICAg
ICAgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2sgYmxvY2sgPSBjYXNlc1tpXS50YXJnZXQoKTsK
KyAgICAgICAgICAgICAgICAgICAgaW50NjRfdCB2YWx1ZSA9IGNhc2VzW2ldLmNhc2VWYWx1ZSgp
OworICAgICAgICAgICAgICAgICAgICBwb2x5SnVtcC0+YXBwZW5kU3VjY2Vzc29yKGJsb2NrKTsK
KyAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGluZGV4ID0gdmFsdWUgLSBmaXJzdFZhbHVlOwor
ICAgICAgICAgICAgICAgICAgICBBU1NFUlQoIWhhbmRsZWRJbmRpY2VzLmdldChpbmRleCkpOwor
ICAgICAgICAgICAgICAgICAgICBoYW5kbGVkSW5kaWNlcy5zZXQoaW5kZXgpOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBib29sIGhhc1VuaGFu
ZGxlZEluZGV4ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IHRhYmxlU2l6ZTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghaGFuZGxlZElu
ZGljZXMuZ2V0KGkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBoYXNVbmhhbmRsZWRJbmRl
eCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAg
ICAgICBpZiAoaGFzVW5oYW5kbGVkSW5kZXgpCisgICAgICAgICAgICAgICAgICAgIHBvbHlKdW1w
LT5hcHBlbmRTdWNjZXNzb3IoZmFsbFRocm91Z2gpOworICAgICAgICAgICAgICAgIAorICAgICAg
ICAgICAgICAgIHBvbHlKdW1wLT5zZXRDYWxsYmFjaygKKyAgICAgICAgICAgICAgICAgICAgWz1d
IChjb25zdCBWZWN0b3I8TWFjcm9Bc3NlbWJsZXJDb2RlUHRyPiYgcG9pbnRlcnMpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHNpemVfdCBwb2ludGVySW5kZXggPSAwOworICAgICAgICAgICAg
ICAgICAgICAgICAgZm9yIChzaXplX3QgaW5kZXggOiBoYW5kbGVkSW5kaWNlcykKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBqdW1wVGFibGVbaW5kZXhdID0gcG9pbnRlcnNbcG9pbnRlcklu
ZGV4KytdOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoaGFzVW5oYW5kbGVkSW5kZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IHRhYmxlU2l6ZTsgKytpKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlmICghaGFuZGxlZEluZGljZXMuZ2V0KGkpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAganVtcFRhYmxlW2ldID0gcG9pbnRlcnNbcG9pbnRlcklu
ZGV4XTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcG9pbnRlckluZGV4Kys7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNT
RVJUKHBvaW50ZXJJbmRleCA9PSBwb2ludGVycy5zaXplKCkpOworICAgICAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0K
ICAgICAgICAgCiAgICAgICAgIC8vIFNlZSBjb21tZW50cyBpbiBqaXQvQmluYXJ5U3dpdGNoLmNw
cCBmb3IgYSBqdXN0aWZpY2F0aW9uIG9mIHRoaXMgYWxnb3JpdGhtLiBUaGUgb25seQogICAgICAg
ICAvLyB0aGluZyB3ZSBkbyBkaWZmZXJlbnRseSBpcyB0aGF0IHdlIGRvbid0IHVzZSByYW5kb21u
ZXNzLgpAQCAtMzA3LDIyICszOTYsMTkgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBiZWZv
cmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAogICAgICAgICAgICAgICAgICAgICBtX3Byb2Ms
IEJyYW5jaCwgbV9vcmlnaW4sCiAgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3
PFZhbHVlPigKLSAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgRXF1YWwsIG1fb3JpZ2lu
LCBtX3ZhbHVlLT5jaGlsZCgwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgRXF1
YWwsIG1fb3JpZ2luLCBjaGlsZCwKICAgICAgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBw
ZW5kSW50Q29uc3RhbnQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBtX29y
aWdpbiwgbV92YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtX3Byb2MsIG1fb3JpZ2luLCB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNhc2VzW3N0YXJ0ICsgaV0uY2FzZVZhbHVlKCkpKSwKICAgICAgICAgICAgICAgICAgICAgY2Fz
ZXNbc3RhcnQgKyBpXS50YXJnZXQoKSwgRnJlcXVlbnRlZEJsb2NrKG5leHRDaGVjaykpOwogCiAg
ICAgICAgICAgICAgICAgYmVmb3JlID0gbmV4dENoZWNrOwogICAgICAgICAgICAgfQogCi0gICAg
ICAgICAgICBpZiAoYWxsQ29uc2VjdXRpdmUpIHsKLSAgICAgICAgICAgICAgICBiZWZvcmUtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAotICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIEp1bXAs
IG1fb3JpZ2luLCBjYXNlc1tlbmQgLSAxXS50YXJnZXQoKSk7Ci0gICAgICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCi0gICAg
ICAgICAgICAgICAgICAgIG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIG1fdmFsdWUtPmFzPFN3aXRj
aFZhbHVlPigpLT5mYWxsVGhyb3VnaCgpKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlm
IChhbGxDb25zZWN1dGl2ZSkKKyAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIGNhc2VzW2VuZCAtIDFdLnRhcmdldCgp
KTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIGZhbGxUaHJvdWdoKTsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC0zMzQsOSArNDIwLDkgQEAgcHJpdmF0ZToK
ICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKICAgICAgICAgICAgIG1f
cHJvYywgQnJhbmNoLCBtX29yaWdpbiwKICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PFZh
bHVlPigKLSAgICAgICAgICAgICAgICBtX3Byb2MsIExlc3NUaGFuLCBtX29yaWdpbiwgbV92YWx1
ZS0+Y2hpbGQoMCksCisgICAgICAgICAgICAgICAgbV9wcm9jLCBMZXNzVGhhbiwgbV9vcmlnaW4s
IGNoaWxkLAogICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kSW50Q29uc3RhbnQoCi0gICAg
ICAgICAgICAgICAgICAgIG1fcHJvYywgbV9vcmlnaW4sIG1fdmFsdWUtPmNoaWxkKDApLT50eXBl
KCksCisgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgbV9vcmlnaW4sIHR5cGUsCiAgICAgICAg
ICAgICAgICAgICAgIGNhc2VzW21lZGlhbkluZGV4XS5jYXNlVmFsdWUoKSkpLAogICAgICAgICAg
ICAgRnJlcXVlbnRlZEJsb2NrKGxlZnQpLCBGcmVxdWVudGVkQmxvY2socmlnaHQpKTsKIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAJKHJldmlzaW9uIDIw
MjEzNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNTUsNyArMTU1LDYgQEAgcHVibGljOgogICAgICAgICAgICAgfQogCiAg
ICAgICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCB0aGUgc3VjY2Vzc29ycyBhcmUgc2V0IHVwIGNv
cnJlY3RseS4KLSAgICAgICAgICAgIEFTU0VSVChibG9jay0+c3VjY2Vzc29ycygpLnNpemUoKSA8
PSAyKTsKICAgICAgICAgICAgIGZvciAoQjM6OkZyZXF1ZW50ZWRCbG9jayBzdWNjZXNzb3IgOiBi
bG9jay0+c3VjY2Vzc29ycygpKSB7CiAgICAgICAgICAgICAgICAgbV9ibG9ja1RvQmxvY2tbYmxv
Y2tdLT5zdWNjZXNzb3JzKCkuYXBwZW5kKAogICAgICAgICAgICAgICAgICAgICBBaXI6OkZyZXF1
ZW50ZWRCbG9jayhtX2Jsb2NrVG9CbG9ja1tzdWNjZXNzb3IuYmxvY2soKV0sIHN1Y2Nlc3Nvci5m
cmVxdWVuY3koKSkpOwpAQCAtMjQ0MSw2ICsyNDQwLDE2IEBAIHByaXZhdGU6CiAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAg
ICBjYXNlIEIzOjpQb2x5SnVtcDogeworICAgICAgICAgICAgQXJnUHJvbWlzZSBhZGRyID0gbG9h
ZFByb21pc2UobV92YWx1ZS0+Y2hpbGQoMCkpOworICAgICAgICAgICAgaWYgKGlzVmFsaWRGb3Jt
KEFpcjo6UG9seUp1bXAsIGFkZHIua2luZCgpKSkgeworICAgICAgICAgICAgICAgIGFwcGVuZChB
aXI6OlBvbHlKdW1wLCBhZGRyLmNvbnN1bWUoKnRoaXMpKTsKKyAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBhcHBlbmQoQWlyOjpQb2x5SnVtcCwgdG1w
KG1fdmFsdWUtPmNoaWxkKDApKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KIAog
ICAgICAgICBjYXNlIEIzOjpPb3BzOiB7CiAgICAgICAgICAgICBhcHBlbmQoQWlyOjpPb3BzKTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmNwcAkocmV2aXNpb24gMjAyMTM3
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjkwLDYgKzI5MCw5IEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0
LCBPcGMKICAgICBjYXNlIFN3aXRjaDoKICAgICAgICAgb3V0LnByaW50KCJTd2l0Y2giKTsKICAg
ICAgICAgcmV0dXJuOworICAgIGNhc2UgUG9seUp1bXA6CisgICAgICAgIG91dC5wcmludCgiUG9s
eUp1bXAiKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgUmV0dXJuOgogICAgICAgICBvdXQu
cHJpbnQoIlJldHVybiIpOwogICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNPcGNvZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNPcGNvZGUuaAkocmV2aXNpb24gMjAyMTM3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzT3Bjb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxNiw2ICsyMTYsMTMgQEAgZW51bSBP
cGNvZGUgOiBpbnQxNl90IHsKIAogICAgIC8vIFN3aXRjaC4gU3dpdGNoZXMgb3ZlciBlaXRoZXIg
SW50MzIgb3IgSW50NjQuIFVzZXMgdGhlIFN3aXRjaFZhbHVlIGNsYXNzLgogICAgIFN3aXRjaCwK
KyAgICAKKyAgICAvLyBKdW1wIHRvIHRoZSBnaXZlbiBhZGRyZXNzLiBUaGUgY29tcGlsZXIgYXNz
dW1lcyB0aGF0IHRoaXMgd2lsbCBqdW1wIHRvIG9uZSBvZiB0aGUgc3VwcGxpZWQKKyAgICAvLyBz
dWNjZXNzb3JzLCBidXQgd2lsbCBtYWtlIGFic29sdXRlbHkgbm8gYXNzdW1wdGlvbnMgYWJvdXQg
d2hpY2guIEl0J3MgZW50aXJlbHkgdXAgdG8gdGhlIHVzZXIKKyAgICAvLyB0byBhcnJhbmdlIGZv
ciB0aGUganVtcCB0byBqdW1wIHRvIG9uZSBvZiB0aG9zZSBzdWNjZXNzb3JzLiBUaGlzIGNhbm5v
dCB0cmFwIG9yIGRvIGFueXRoaW5nIGJ1dAorICAgIC8vIGp1bXAgdG8gb25lIG9mIHRoZSBzdWNj
ZXNzb3JzOyBpZiBpdCBkb2VzIGFueXRoaW5nIGVsc2UgdGhlbiBkZW1vbnMgd2lsbCBjb21lIG91
dCBvZiB0aGUgdXNlcidzCisgICAgLy8gbm9zZS4gCisgICAgUG9seUp1bXAsCiAKICAgICAvLyBS
ZXR1cm4uIE5vdGUgdGhhdCBCMyBwcm9jZWR1cmVzIGRvbid0IGtub3cgdGhlaXIgcmV0dXJuIHR5
cGUsIHNvIHRoaXMgY2FuIGp1c3QgcmV0dXJuIGFueQogICAgIC8vIHR5cGUuIFVzZXMgdGhlIENv
bnRyb2xWYWx1ZSBjbGFzcy4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BvbHlK
dW1wVmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Bv
bHlKdW1wVmFsdWUuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzUG9seUp1bXBWYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3NCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiQjNQb2x5SnVtcFZhbHVlLmgiCisKKyNpZiBFTkFCTEUoQjNfSklU
KQorCisjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrLmgiCisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3Bh
Y2UgQjMgeworCitQb2x5SnVtcFZhbHVlOjp+UG9seUp1bXBWYWx1ZSgpCit7Cit9CisKK3ZvaWQg
UG9seUp1bXBWYWx1ZTo6YXBwZW5kU3VjY2Vzc29yKGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgYmxv
Y2spCit7CisgICAgbV9zdWNjZXNzb3JzLmFwcGVuZChibG9jayk7Cit9CisKK3ZvaWQgUG9seUp1
bXBWYWx1ZTo6c2V0Q2FsbGJhY2tUYXNrKFJlZlB0cjxTaGFyZWRUYXNrPENhbGxiYWNrRnVuY3Rp
b25UeXBlPj4gdGFzaykKK3sKKyAgICBtX3Rhc2sgPSB0YXNrOworfQorCitib29sIFBvbHlKdW1w
VmFsdWU6OmlzQ2xvbmVhYmxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3Zv
aWQgUG9seUp1bXBWYWx1ZTo6ZHVtcE1ldGEoQ29tbWFQcmludGVyJiBjb21tYSwgUHJpbnRTdHJl
YW0mIG91dCkgY29uc3QKK3sKKyAgICBDb250cm9sVmFsdWU6OmR1bXBNZXRhKGNvbW1hLCBvdXQp
OworICAgIG91dC5wcmludChjb21tYSwgInRhc2sgPSAiLCBSYXdQb2ludGVyKG1fdGFzay5nZXQo
KSkpOworfQorCitWYWx1ZSogUG9seUp1bXBWYWx1ZTo6Y2xvbmVJbXBsKCkgY29uc3QKK3sKKyAg
ICBkYXRhTG9nKCJGQVRBTDogQXR0ZW1wdCB0byBjbG9uZSBub24tY2xvbmVhYmxlIFBvbHlKdW1w
VmFsdWUhXG4iKTsKKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCitQb2x5
SnVtcFZhbHVlOjpQb2x5SnVtcFZhbHVlKE9yaWdpbiBvcmlnaW4sIFZhbHVlKiBjaGlsZCkKKyAg
ICA6IENvbnRyb2xWYWx1ZShQb2x5SnVtcCwgVm9pZCwgb3JpZ2luLCBjaGlsZCkKK3sKK30KKwor
fSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzCisKKyNlbmRpZiAvLyBFTkFCTEUoQjNfSklUKQorCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQb2x5SnVtcFZhbHVlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUG9seUp1bXBWYWx1ZS5oCShyZXZpc2lv
biAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUG9seUp1bXBWYWx1ZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBCM1BvbHlKdW1wVmFsdWVfaAorI2RlZmluZSBCM1Bv
bHlKdW1wVmFsdWVfaAorCisjaWYgRU5BQkxFKEIzX0pJVCkKKworI2luY2x1ZGUgIkIzQ29udHJv
bFZhbHVlLmgiCisjaW5jbHVkZSA8d3RmL1NoYXJlZFRhc2suaD4KKworbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBCMyB7CisKK2NsYXNzIFBvbHlKdW1wVmFsdWUgOiBwdWJsaWMgQ29udHJvbFZh
bHVlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgYm9vbCBhY2NlcHRzKE9wY29kZSBvcGNvZGUpIHsg
cmV0dXJuIG9wY29kZSA9PSBQb2x5SnVtcDsgfQorICAgIAorICAgIH5Qb2x5SnVtcFZhbHVlKCk7
CisgICAgCisgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBhcHBlbmRTdWNjZXNzb3IoY29uc3Qg
RnJlcXVlbnRlZEJsb2NrJik7CisgICAgCisgICAgdHlwZWRlZiB2b2lkIENhbGxiYWNrRnVuY3Rp
b25UeXBlKGNvbnN0IFZlY3RvcjxNYWNyb0Fzc2VtYmxlckNvZGVQdHI+Jik7CisgICAgCisgICAg
SlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBzZXRDYWxsYmFja1Rhc2soUmVmUHRyPFNoYXJlZFRhc2s8
Q2FsbGJhY2tGdW5jdGlvblR5cGU+PiB0YXNrKTsKKyAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBGdW5jPgorICAgIHZvaWQgc2V0Q2FsbGJhY2soY29uc3QgRnVuYyYgZnVuYykKKyAgICB7Cisg
ICAgICAgIHNldENhbGxiYWNrVGFzayhjcmVhdGVTaGFyZWRUYXNrPENhbGxiYWNrRnVuY3Rpb25U
eXBlPihmdW5jKSk7CisgICAgfQorICAgIAorICAgIFNoYXJlZFRhc2s8Q2FsbGJhY2tGdW5jdGlv
blR5cGU+KiBjYWxsYmFja1Rhc2soKSBjb25zdCB7IHJldHVybiBtX3Rhc2suZ2V0KCk7IH0KKyAg
ICAKKyAgICBib29sIGlzQ2xvbmVhYmxlKCkgY29uc3Qgb3ZlcnJpZGU7CisKK3Byb3RlY3RlZDoK
KyAgICB2b2lkIGR1bXBNZXRhKENvbW1hUHJpbnRlciYsIFByaW50U3RyZWFtJikgY29uc3Qgb3Zl
cnJpZGU7CisgICAgCisgICAgVmFsdWUqIGNsb25lSW1wbCgpIGNvbnN0IG92ZXJyaWRlOworCitw
cml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBQcm9jZWR1cmU7CisgICAgCisgICAgSlNfRVhQT1JU
X1BSSVZBVEUgUG9seUp1bXBWYWx1ZShPcmlnaW4sIFZhbHVlKiBjaGlsZCk7CisgICAgCisgICAg
UmVmUHRyPFNoYXJlZFRhc2s8Q2FsbGJhY2tGdW5jdGlvblR5cGU+PiBtX3Rhc2s7Cit9OworCit9
IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKKworI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCisKKyNl
bmRpZiAvLyBCM1BvbHlKdW1wVmFsdWVfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNQcm9jZWR1cmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1Byb2NlZHVyZS5jcHAJKHJldmlzaW9uIDIwMjEzNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM1Byb2NlZHVyZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgyLDYgKzgyLDggQEAg
VmFyaWFibGUqIFByb2NlZHVyZTo6YWRkVmFyaWFibGUoVHlwZSB0eQogCiBWYWx1ZSogUHJvY2Vk
dXJlOjpjbG9uZShWYWx1ZSogdmFsdWUpCiB7CisgICAgQVNTRVJUKHZhbHVlLT5pc0Nsb25lYWJs
ZSgpKTsKKyAgICAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmFsdWU+IGNsb25lKHZhbHVlLT5jbG9u
ZUltcGwoKSk7CiAgICAgY2xvbmUtPm1faW5kZXggPSBVSU5UX01BWDsKICAgICBjbG9uZS0+b3du
ZXIgPSBudWxscHRyOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmgJ
KHJldmlzaW9uIDIwMjEzNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVy
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsNiArMTAxLDcgQEAgcHVibGljOgogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5hbWUuLi4gQXJndW1lbnRzPgogICAgIFZhbHVl
VHlwZSogYWRkKEFyZ3VtZW50cy4uLik7CiAKKyAgICAvLyBOb3RlIHRoYXQgbm90IGFsbCB2YWx1
ZXMgYXJlIGNsb25lYWJsZS4gQ2hlY2sgVmFsdWU6OmlzQ2xvbmVhYmxlKCkgYmVmb3JlIHByb2Nl
ZWRpbmcuCiAgICAgVmFsdWUqIGNsb25lKFZhbHVlKik7CiAKICAgICBWYWx1ZSogYWRkSW50Q29u
c3RhbnQoT3JpZ2luLCBUeXBlLCBpbnQ2NF90IHZhbHVlKTsKQEAgLTIxOCw2ICsyMTksOSBAQCBw
dWJsaWM6CiAKICAgICBjb25zdCBjaGFyKiBsYXN0UGhhc2VOYW1lKCkgY29uc3QgeyByZXR1cm4g
bV9sYXN0UGhhc2VOYW1lOyB9CiAKKyAgICAvLyBBbGxvY2F0ZXMgYSBzbGFiIG9mIG1lbW9yeSB0
aGF0IHdpbGwgYmUga2VwdCBhbGl2ZSBieSBhbnlvbmUgd2hvIGtlZXBzIHRoZSByZXN1bHRpbmcg
Y29kZQorICAgIC8vIGFsaXZlLiBHcmVhdCBmb3IgY29tcGlsZXItZ2VuZXJhdGVkIGRhdGEgc2Vj
dGlvbnMsIGxpa2Ugc3dpdGNoIGp1bXAgdGFibGVzIGFuZCBjb25zdGFudCBwb29scy4KKyAgICAv
LyBUaGlzIHJldHVybnMgbWVtb3J5IHRoYXQgaGFzIGJlZW4gemVyby1pbml0aWFsaXplZC4KICAg
ICB2b2lkKiBhZGREYXRhU2VjdGlvbihzaXplX3Qgc2l6ZSk7CiAKICAgICBPcGFxdWVCeXByb2R1
Y3RzJiBieXByb2R1Y3RzKCkgeyByZXR1cm4gKm1fYnlwcm9kdWN0czsgfQpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcAkocmV2aXNpb24gMjAy
MTM3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xNzczLDcgKzE3NzMsMTcgQEAgcHJpdmF0ZToKICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHZhbHVlLT5vcGNvZGUoKSA9PSBTZWxlY3QKICAgICAgICAgICAgICAg
ICAgICAgICAgICYmICh2YWx1ZS0+Y2hpbGQoMSktPmlzQ29uc3RhbnQoKSAmJiB2YWx1ZS0+Y2hp
bGQoMiktPmlzQ29uc3RhbnQoKSk7CiAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBp
ZiAoc2VsZWN0KSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0
IHRoZSByZWxldmFudCBjb2RlIGlzIGNsb25lYWJsZS4KKyAgICAgICAgICAgIGJvb2wgYWxsQXJl
Q2xvbmVhYmxlID0gdHJ1ZTsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgaW5kZXggPSBtX2lu
ZGV4ICsgMTsgaW5kZXgtLTspIHsKKyAgICAgICAgICAgICAgICBWYWx1ZSogdmFsdWUgPSBtX2Js
b2NrLT5hdChpbmRleCk7CisgICAgICAgICAgICAgICAgYWxsQXJlQ2xvbmVhYmxlICY9IHZhbHVl
LT5pc0Nsb25lYWJsZSgpOworICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBzZWxlY3QpCisg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisg
ICAgICAgICAgICBpZiAoc2VsZWN0ICYmIGFsbEFyZUNsb25lYWJsZSkgewogICAgICAgICAgICAg
ICAgIHNwZWNpYWxpemVTZWxlY3Qoc2VsZWN0KTsKICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbGlkYXRlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWxpZGF0ZS5jcHAJ
KHJldmlzaW9uIDIwMjEzNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbGlkYXRl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzg3LDYgKzM4NywxMSBAQCBwdWJsaWM6CiAgICAgICAg
ICAgICAgICAgVkFMSURBVEUoaXNJbnQodmFsdWUtPmNoaWxkKDApLT50eXBlKCkpLCAoIkF0ICIs
ICp2YWx1ZSkpOwogICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgPT0gVm9p
ZCwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgUG9seUp1bXA6CisgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPm51bUNoaWxk
cmVuKCkgPT0gMSwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFURSh2
YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSA9PSBwb2ludGVyVHlwZSgpLCAoIkF0ICIsICp2YWx1ZSkp
OworICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgPT0gVm9pZCwgKCJBdCAi
LCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KIAogICAg
ICAgICAgICAgVkFMSURBVEUoISh2YWx1ZS0+ZWZmZWN0cygpLndyaXRlcyAmJiB2YWx1ZS0+a2V5
KCkpLCAoIkF0ICIsICp2YWx1ZSkpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
VmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVl
LmNwcAkocmV2aXNpb24gMjAyMTM3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFs
dWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NDAsNiArNTQwLDcgQEAgRWZmZWN0cyBWYWx1ZTo6
ZWZmZWN0cygpIGNvbnN0CiAgICAgY2FzZSBKdW1wOgogICAgIGNhc2UgQnJhbmNoOgogICAgIGNh
c2UgU3dpdGNoOgorICAgIGNhc2UgUG9seUp1bXA6CiAgICAgY2FzZSBSZXR1cm46CiAgICAgY2Fz
ZSBPb3BzOgogICAgICAgICByZXN1bHQudGVybWluYWwgPSB0cnVlOwpAQCAtNTQ4LDYgKzU0OSwx
MSBAQCBFZmZlY3RzIFZhbHVlOjplZmZlY3RzKCkgY29uc3QKICAgICByZXR1cm4gcmVzdWx0Owog
fQogCitib29sIFZhbHVlOjppc0Nsb25lYWJsZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRydWU7
Cit9CisKIFZhbHVlS2V5IFZhbHVlOjprZXkoKSBjb25zdAogewogICAgIHN3aXRjaCAob3Bjb2Rl
KCkpIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuaAkocmV2aXNpb24gMjAyMTM3
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuaAkod29ya2luZyBjb3B5KQpA
QCAtMjAwLDYgKzIwMCwxMSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0xpa2VOb25aZXJvKCkgY29u
c3QgeyByZXR1cm4gYXNUcmlTdGF0ZSgpID09IFRydWVUcmlTdGF0ZTsgfQogCiAgICAgRWZmZWN0
cyBlZmZlY3RzKCkgY29uc3Q7CisgICAgCisgICAgLy8gU29tZSBvcGVyYXRpb25zIHdpbGwgcmVm
dXNlIHRvIGJlIGNsb25lZC4gVGhpcyBoYXBwZW5zIHdoZW4gdGhlIG9wZXJhdGlvbiBoYXMgc29t
ZSBpbnNpZGUKKyAgICAvLyBrbm93bGVkZ2UgYWJvdXQgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVu
IGl0cyBpZGVudGl0eSBhbmQgdGhlIGlkZW50aXR5IG9mIHRoZSBjb2RlIGl0IHdpbGwKKyAgICAv
LyBnZW5lcmF0ZS4KKyAgICB2aXJ0dWFsIGJvb2wgaXNDbG9uZWFibGUoKSBjb25zdDsKIAogICAg
IC8vIFRoaXMgcmV0dXJucyBhIFZhbHVlS2V5IHRoYXQgZGVzY3JpYmVzIHRoYXQgdGhpcyBWYWx1
ZSByZXR1cm5zIHdoZW4gaXQgZXhlY3V0ZXMuIFJldHVybnMgYW4KICAgICAvLyBlbXB0eSBWYWx1
ZUtleSBpZiB0aGlzIFZhbHVlIGlzIGltcHVyZS4gTm90ZSB0aGF0IGFuIG9wZXJhdGlvbiB0aGF0
IHJldHVybnMgVm9pZCBjb3VsZCBzdGlsbApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L3Rlc3RiMy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3Ri
My5jcHAJKHJldmlzaW9uIDIwMjEzNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0
YjMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiQjNDb25z
dFB0clZhbHVlLmgiCiAjaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKICNpbmNsdWRlICJCM0Vm
ZmVjdHMuaCIKKyNpbmNsdWRlICJCM1BvbHlKdW1wVmFsdWUuaCIKICNpbmNsdWRlICJCM01hdGhF
eHRyYXMuaCIKICNpbmNsdWRlICJCM01lbW9yeVZhbHVlLmgiCiAjaW5jbHVkZSAiQjNQcm9jZWR1
cmUuaCIKQEAgLTQ0LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJCM1N3aXRjaFZhbHVlLmgiCiAjaW5j
bHVkZSAiQjNVcHNpbG9uVmFsdWUuaCIKICNpbmNsdWRlICJCM1ZhbHVlSW5saW5lcy5oIgorI2lu
Y2x1ZGUgIkIzVmFyaWFibGVWYWx1ZS5oIgogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgogI2lu
Y2x1ZGUgIkluaXRpYWxpemVUaHJlYWRpbmcuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCkBA
IC01Miw2ICs1NCw3IEBACiAjaW5jbHVkZSAiVk0uaCIKICNpbmNsdWRlIDxjbWF0aD4KICNpbmNs
dWRlIDxzdHJpbmc+CisjaW5jbHVkZSA8d3RmL0xpc3REdW1wLmg+CiAjaW5jbHVkZSA8d3RmL0xv
Y2suaD4KICNpbmNsdWRlIDx3dGYvTnVtYmVyT2ZDb3Jlcy5oPgogI2luY2x1ZGUgPHd0Zi9UaHJl
YWRpbmcuaD4KQEAgLTczLDYgKzc2LDExIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M6OkIzOwogCiBu
YW1lc3BhY2UgewogCitib29sIHNob3VsZEJlVmVyYm9zZSgpCit7CisgICAgcmV0dXJuIHNob3Vs
ZER1bXBJUihCM01vZGUpOworfQorCiBTdGF0aWNMb2NrIGNyYXNoTG9jazsKIAogLy8gTm90aGlu
ZyBmYW5jeSBmb3Igbm93OyB3ZSBqdXN0IHVzZSB0aGUgZXhpc3RpbmcgV1RGIGFzc2VydGlvbiBt
YWNoaW5lcnkuCkBAIC0xMDEyOCw3ICsxMDEzNiwxMCBAQCB2b2lkIHRlc3RTd2l0Y2hDaGlsbERp
dih1bnNpZ25lZCBkZWdyZWUsCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIAogICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBkZWdyZWU7ICsraSkgewotICAgICAgICBDSEVDSyhp
bnZva2U8aW50MzJfdD4oKmNvZGUsIGkgKiBnYXAsIDQyLCAxMSkgPT0gKChpICYgMSkgPyAxMS80
MiA6IDQyLzExKSk7CisgICAgICAgIGRhdGFMb2coImkgPSAiLCBpLCAiXG4iKTsKKyAgICAgICAg
aW50MzJfdCByZXN1bHQgPSBpbnZva2U8aW50MzJfdD4oKmNvZGUsIGkgKiBnYXAsIDQyLCAxMSk7
CisgICAgICAgIGRhdGFMb2coInJlc3VsdCA9ICIsIHJlc3VsdCwgIlxuIik7CisgICAgICAgIENI
RUNLKHJlc3VsdCA9PSAoKGkgJiAxKSA/IDExLzQyIDogNDIvMTEpKTsKICAgICAgICAgaWYgKGdh
cCA+IDEpIHsKICAgICAgICAgICAgIENIRUNLKCFpbnZva2U8aW50MzJfdD4oKmNvZGUsIGkgKiBn
YXAgKyAxLCA0MiwgMTEpKTsKICAgICAgICAgICAgIENIRUNLKCFpbnZva2U8aW50MzJfdD4oKmNv
ZGUsIGkgKiBnYXAgLSAxLCA0MiwgMTEpKTsKQEAgLTEyMDUwLDYgKzEyMDYxLDIzMSBAQCB2b2lk
IHRlc3RMYXRlUmVnaXN0ZXIoKQogICAgIENIRUNLKGludm9rZTx1aW50NjRfdD4oKmNvZGUpID09
IHJlc3VsdCk7CiB9CiAKK3ZvaWQgdGhyZWFkZWRJbnRlcnByZXRlclByaW50KFZlY3RvcjxpbnRw
dHJfdD4qIHN0cmVhbSwgaW50cHRyX3QgdmFsdWUpCit7CisgICAgc3RyZWFtLT5hcHBlbmQodmFs
dWUpOworfQorCit2b2lkIHRlc3RUaHJlYWRlZEludGVycHJldGVyKCkKK3sKKyAgICAvLyBUaGlz
IGNyZWF0ZXMgYSBwb29yIG1hbidzIHRocmVhZGVkIGludGVycHJldGVyIHVzaW5nIFBvbHlKdW1w
IGFuZCBzZWVzIGlmIGl0IHdvcmtzLiBOb3RlCisgICAgLy8gdGhhdCBQb2x5SnVtcCBpcyBub3Qg
bGlrZSBpbmRpcmVjdCBicmFuY2hlcyBpbiBMTFZNLCBzbyB5b3UgY2FuJ3QgYWN0dWFsbHkgdXNl
IGl0IHRvCisgICAgLy8gaW1wbGVtZW50IGEgcHJvcGVyIHRocmVhZGVkIGludGVycHJldGVyLiBU
aGlzIGNoZWF0czogdGhlIGRpc3BhdGNoIGluc3RydWN0aW9uIGlzIGF0IHRoZSB0b3AKKyAgICAv
LyBvZiB0aGUgbG9vcC4gVGhpcyBhbHNvIHRlc3RzIFZhcmlhYmxlVmFsdWUuCisgICAgCisgICAg
UHJvY2VkdXJlIHByb2M7CisgICAgCisgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKKyAgICBCYXNpY0Jsb2NrKiBkaXNwYXRjaCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBC
YXNpY0Jsb2NrKiBhZGRUb0RhdGFQb2ludGVyID0gcHJvYy5hZGRCbG9jaygpOworICAgIEJhc2lj
QmxvY2sqIGFkZFRvQ29kZVBvaW50ZXIgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9j
ayogYWRkVG9Db2RlUG9pbnRlclRha2VuID0gcHJvYy5hZGRCbG9jaygpOworICAgIEJhc2ljQmxv
Y2sqIGFkZFRvQ29kZVBvaW50ZXJOb3RUYWtlbiA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBCYXNp
Y0Jsb2NrKiBhZGRUb0RhdGEgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayogcHJp
bnQgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayogc3RvcCA9IHByb2MuYWRkQmxv
Y2soKTsKKyAgICAKKyAgICBWYXJpYWJsZSogZGF0YVBvaW50ZXIgPSBwcm9jLmFkZFZhcmlhYmxl
KHBvaW50ZXJUeXBlKCkpOworICAgIFZhcmlhYmxlKiBjb2RlUG9pbnRlciA9IHByb2MuYWRkVmFy
aWFibGUocG9pbnRlclR5cGUoKSk7CisgICAgCisgICAgcm9vdC0+YXBwZW5kTmV3PFZhcmlhYmxl
VmFsdWU+KAorICAgICAgICBwcm9jLCBTZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRlciwKKyAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApKTsKKyAgICByb290LT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4o
CisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyLAorICAgICAgICByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMSkpOworICAgIFZhbHVlKiBjb250ZXh0ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpOworICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVx
dWVudGVkQmxvY2soZGlzcGF0Y2gpKTsKKyAgICAKKyAgICBQb2x5SnVtcFZhbHVlKiBwb2x5SnVt
cCA9IGRpc3BhdGNoLT5hcHBlbmROZXc8UG9seUp1bXBWYWx1ZT4oCisgICAgICAgIHByb2MsIE9y
aWdpbigpLAorICAgICAgICBkaXNwYXRjaC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAg
ICAgICAgIHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLAorICAgICAgICAgICAg
ZGlzcGF0Y2gtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPigKKyAgICAgICAgICAgICAgICBwcm9j
LCBCMzo6R2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIpKSk7CisgICAgcG9seUp1bXAtPmFwcGVu
ZFN1Y2Nlc3NvcihGcmVxdWVudGVkQmxvY2soYWRkVG9EYXRhUG9pbnRlcikpOworICAgIHBvbHlK
dW1wLT5hcHBlbmRTdWNjZXNzb3IoRnJlcXVlbnRlZEJsb2NrKGFkZFRvQ29kZVBvaW50ZXIpKTsK
KyAgICBwb2x5SnVtcC0+YXBwZW5kU3VjY2Vzc29yKEZyZXF1ZW50ZWRCbG9jayhhZGRUb0RhdGEp
KTsKKyAgICBwb2x5SnVtcC0+YXBwZW5kU3VjY2Vzc29yKEZyZXF1ZW50ZWRCbG9jayhwcmludCkp
OworICAgIHBvbHlKdW1wLT5hcHBlbmRTdWNjZXNzb3IoRnJlcXVlbnRlZEJsb2NrKHN0b3ApKTsK
KyAgICAKKyAgICAvLyBPdXIgIm9wY29kZXMiLiBUaGV5IHdpbGwgaGF2ZSBtZWFuaW5nIG9uY2Ug
d2UgY29tcGlsZS4KKyAgICBpbnRwdHJfdCBBZGREUCA9IDA7CisgICAgaW50cHRyX3QgQWRkQ1Ag
PSAwOworICAgIGludHB0cl90IEFkZCA9IDA7CisgICAgaW50cHRyX3QgUHJpbnQgPSAwOworICAg
IGludHB0cl90IFN0b3AgPSAwOworICAgIHBvbHlKdW1wLT5zZXRDYWxsYmFjaygKKyAgICAgICAg
WyZdIChjb25zdCBWZWN0b3I8TWFjcm9Bc3NlbWJsZXJDb2RlUHRyPiYgcG9pbnRlcnMpIHsKKyAg
ICAgICAgICAgIGF1dG8gZ2V0ID0gWyZdIChzaXplX3QgaW5kZXgpIC0+IGludHB0cl90IHsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gYml0d2lzZV9jYXN0PGludHB0cl90Pihwb2ludGVyc1tpbmRl
eF0uZXhlY3V0YWJsZUFkZHJlc3MoKSk7CisgICAgICAgICAgICB9OworICAgICAgICAgICAgCisg
ICAgICAgICAgICBBZGREUCA9IGdldCgwKTsKKyAgICAgICAgICAgIEFkZENQID0gZ2V0KDEpOwor
ICAgICAgICAgICAgQWRkID0gZ2V0KDIpOworICAgICAgICAgICAgUHJpbnQgPSBnZXQoMyk7Cisg
ICAgICAgICAgICBTdG9wID0gZ2V0KDQpOworICAgICAgICB9KTsKKyAgICAKKyAgICAvLyBBZGRE
UCA8b3BlcmFuZD46IGFkZHMgPG9wZXJhbmQ+IHRvIERQLgorICAgIFZhbHVlKiBjb2RlUG9pbnRl
clZhbHVlID0KKyAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFs
dWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlcik7CisgICAgYWRkVG9EYXRh
UG9pbnRlci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAgICAgICBwcm9jLCBTZXQsIE9y
aWdpbigpLCBkYXRhUG9pbnRlciwKKyAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3
PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEIzOjpBZGQsIE9yaWdpbigpLAorICAgICAgICAg
ICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHByb2MsIEIzOjpH
ZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRlciksCisgICAgICAgICAgICBhZGRUb0RhdGFQb2ludGVy
LT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgICAgIHByb2MsIE11bCwgT3JpZ2luKCks
CisgICAgICAgICAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PE1lbW9yeVZhbHVl
PigKKyAgICAgICAgICAgICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2lu
KCksIGNvZGVQb2ludGVyVmFsdWUsIHNpemVvZihpbnRwdHJfdCkpLAorICAgICAgICAgICAgICAg
IGFkZFRvRGF0YVBvaW50ZXItPmFwcGVuZEludENvbnN0YW50KAorICAgICAgICAgICAgICAgICAg
ICBwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6ZW9mKGludHB0cl90KSkpKSk7Cisg
ICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAgICAgICBw
cm9jLCBTZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlciwKKyAgICAgICAgYWRkVG9EYXRhUG9pbnRl
ci0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEIzOjpBZGQsIE9yaWdpbigp
LCBjb2RlUG9pbnRlclZhbHVlLAorICAgICAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5k
SW50Q29uc3RhbnQoCisgICAgICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBl
KCksIHNpemVvZihpbnRwdHJfdCkgKiAyKSkpOworICAgIGFkZFRvRGF0YVBvaW50ZXItPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2so
ZGlzcGF0Y2gpKTsKKyAgICAKKyAgICAvLyBBZGRDUCA8b3BlcmFuZD46IGFkZHMgPG9wZXJhbmQ+
IHRvIENQIGlmIHRoZSBjdXJyZW50IHZhbHVlIGF0IERQIGlzIG5vbi16ZXJvLCBvdGhlcndpc2UK
KyAgICAvLyBmYWxscyB0aHJvdWdoIG5vcm1hbGx5LgorICAgIGNvZGVQb2ludGVyVmFsdWUgPQor
ICAgICAgICBhZGRUb0NvZGVQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywg
QjM6OkdldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyKTsKKyAgICBWYWx1ZSogZGF0YVBvaW50ZXJW
YWx1ZSA9CisgICAgICAgIGFkZFRvQ29kZVBvaW50ZXItPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVl
Pihwcm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwgZGF0YVBvaW50ZXIpOworICAgIGFkZFRvQ29kZVBv
aW50ZXItPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICBwcm9jLCBCcmFuY2gsIE9y
aWdpbigpLAorICAgICAgICBhZGRUb0NvZGVQb2ludGVyLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+
KAorICAgICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCksIGRhdGFQ
b2ludGVyVmFsdWUpLAorICAgICAgICBGcmVxdWVudGVkQmxvY2soYWRkVG9Db2RlUG9pbnRlclRh
a2VuKSwgRnJlcXVlbnRlZEJsb2NrKGFkZFRvQ29kZVBvaW50ZXJOb3RUYWtlbikpOworICAgIGFk
ZFRvQ29kZVBvaW50ZXJUYWtlbi0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAgICAgICBw
cm9jLCBTZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlciwKKyAgICAgICAgYWRkVG9Db2RlUG9pbnRl
clRha2VuLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgQjM6OkFkZCwgT3Jp
Z2luKCksIGNvZGVQb2ludGVyVmFsdWUsCisgICAgICAgICAgICBhZGRUb0NvZGVQb2ludGVyVGFr
ZW4tPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICAgICAgcHJvYywgTXVsLCBPcmlnaW4o
KSwKKyAgICAgICAgICAgICAgICBhZGRUb0NvZGVQb2ludGVyVGFrZW4tPmFwcGVuZE5ldzxNZW1v
cnlWYWx1ZT4oCisgICAgICAgICAgICAgICAgICAgIHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCks
IE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLCBzaXplb2YoaW50cHRyX3QpKSwKKyAgICAgICAg
ICAgICAgICBhZGRUb0NvZGVQb2ludGVyVGFrZW4tPmFwcGVuZEludENvbnN0YW50KAorICAgICAg
ICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6ZW9mKGludHB0
cl90KSkpKSk7CisgICAgYWRkVG9Db2RlUG9pbnRlclRha2VuLT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRpc3BhdGNoKSk7Cisg
ICAgYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisg
ICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyLAorICAgICAgICBhZGRUb0Nv
ZGVQb2ludGVyTm90VGFrZW4tPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBC
Mzo6QWRkLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwKKyAgICAgICAgICAgIGFkZFRvQ29k
ZVBvaW50ZXJOb3RUYWtlbi0+YXBwZW5kSW50Q29uc3RhbnQoCisgICAgICAgICAgICAgICAgcHJv
YywgT3JpZ2luKCksIHBvaW50ZXJUeXBlKCksIHNpemVvZihpbnRwdHJfdCkgKiAyKSkpOworICAg
IGFkZFRvQ29kZVBvaW50ZXJOb3RUYWtlbi0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
ICAgIHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZGlzcGF0Y2gpKTsKKwor
ICAgIC8vIEFkZCA8b3BlcmFuZD46IGFkZHMgPG9wZXJhbmQ+IHRvIHRoZSBzbG90IHBvaW50ZWQg
dG8gYnkgRFAuCisgICAgY29kZVBvaW50ZXJWYWx1ZSA9IGFkZFRvRGF0YS0+YXBwZW5kTmV3PFZh
cmlhYmxlVmFsdWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlcik7CisgICAg
ZGF0YVBvaW50ZXJWYWx1ZSA9IGFkZFRvRGF0YS0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHBy
b2MsIEIzOjpHZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRlcik7CisgICAgYWRkVG9EYXRhLT5hcHBl
bmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICBwcm9jLCBTdG9yZSwgT3JpZ2luKCksCisgICAg
ICAgIGFkZFRvRGF0YS0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEIzOjpB
ZGQsIE9yaWdpbigpLAorICAgICAgICAgICAgYWRkVG9EYXRhLT5hcHBlbmROZXc8TWVtb3J5VmFs
dWU+KAorICAgICAgICAgICAgICAgIHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigp
LCBkYXRhUG9pbnRlclZhbHVlKSwKKyAgICAgICAgICAgIGFkZFRvRGF0YS0+YXBwZW5kTmV3PE1l
bW9yeVZhbHVlPigKKyAgICAgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBP
cmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwgc2l6ZW9mKGludHB0cl90KSkpLAorICAgICAgICBk
YXRhUG9pbnRlclZhbHVlKTsKKyAgICBhZGRUb0RhdGEtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVl
PigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIsCisgICAgICAgIGFk
ZFRvRGF0YS0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEIzOjpBZGQsIE9y
aWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLAorICAgICAgICAgICAgYWRkVG9EYXRhLT5hcHBlbmRJ
bnRDb25zdGFudChwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6ZW9mKGludHB0cl90
KSAqIDIpKSk7CisgICAgYWRkVG9EYXRhLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBK
dW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRpc3BhdGNoKSk7CisgICAgCisgICAgLy8g
UHJpbnQ6ICJwcmludHMiIHRoZSB2YWx1ZSBwb2ludGVkIHRvIGJ5IERQLiBXaGF0IHRoaXMgYWN0
dWFsbHkgbWVhbnMgaXMgdGhhdCB0aGUgdmFsdWUgaXMKKyAgICAvLyBhcHBlbmRlZCB0byB0aGUg
c3RyZWFtIHZlY3RvciBieSB0aGUgdGhyZWFkZWRJbnRlcnByZXRlclByaW50IGZ1bmN0aW9uLgor
ICAgIGNvZGVQb2ludGVyVmFsdWUgPSBwcmludC0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHBy
b2MsIEIzOjpHZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlcik7CisgICAgZGF0YVBvaW50ZXJWYWx1
ZSA9IHByaW50LT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2lu
KCksIGRhdGFQb2ludGVyKTsKKyAgICBwcmludC0+YXBwZW5kTmV3PENDYWxsVmFsdWU+KAorICAg
ICAgICBwcm9jLCBWb2lkLCBPcmlnaW4oKSwKKyAgICAgICAgcHJpbnQtPmFwcGVuZE5ldzxDb25z
dFB0clZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLCBiaXR3aXNlX2Nhc3Q8dm9p
ZCo+KHRocmVhZGVkSW50ZXJwcmV0ZXJQcmludCkpLAorICAgICAgICBjb250ZXh0LAorICAgICAg
ICBwcmludC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgp
LCBPcmlnaW4oKSwgZGF0YVBvaW50ZXJWYWx1ZSkpOworICAgIHByaW50LT5hcHBlbmROZXc8VmFy
aWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyLAor
ICAgICAgICBwcmludC0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEIzOjpB
ZGQsIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLAorICAgICAgICAgICAgcHJpbnQtPmFwcGVu
ZEludENvbnN0YW50KHByb2MsIE9yaWdpbigpLCBwb2ludGVyVHlwZSgpLCBzaXplb2YoaW50cHRy
X3QpKSkpOworICAgIHByaW50LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBP
cmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRpc3BhdGNoKSk7CisgICAgCisgICAgLy8gU3RvcDog
cmV0dXJucy4KKyAgICBzdG9wLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICAgICAgc3RvcC0+YXBwZW5kSW50Q29uc3RhbnQocHJv
YywgT3JpZ2luKCksIHBvaW50ZXJUeXBlKCksIDApKTsKKyAgICAKKyAgICBhdXRvIGludGVycHJl
dGVyID0gY29tcGlsZShwcm9jKTsKKyAgICAKKyAgICBDSEVDSyhBZGREUCk7CisgICAgQ0hFQ0so
QWRkQ1ApOworICAgIENIRUNLKEFkZCk7CisgICAgQ0hFQ0soUHJpbnQpOworICAgIENIRUNLKFN0
b3ApOworICAgIAorICAgIFZlY3RvcjxpbnRwdHJfdD4gZGF0YTsKKyAgICBWZWN0b3I8aW50cHRy
X3Q+IGNvZGU7CisgICAgVmVjdG9yPGludHB0cl90PiBzdHJlYW07CisgICAgCisgICAgZGF0YS5h
cHBlbmQoMSk7CisgICAgZGF0YS5hcHBlbmQoMCk7CisgICAgCisgICAgaWYgKHNob3VsZEJlVmVy
Ym9zZSgpKQorICAgICAgICBkYXRhTG9nKCJkYXRhID0gIiwgbGlzdER1bXAoZGF0YSksICJcbiIp
OworICAgIAorICAgIC8vIFdlJ2xsIHdyaXRlIGEgcHJvZ3JhbSB0aGF0IHByaW50cyB0aGUgbnVt
YmVycyAxLi4xMDAuCisgICAgLy8gV2UgZXhwZWN0IERQIHRvIHBvaW50IGF0ICMwLgorICAgIGNv
ZGUuYXBwZW5kKEFkZENQKTsKKyAgICBjb2RlLmFwcGVuZCg2KTsgLy8gZ28gdG8gbG9vcCBib2R5
CisgICAgCisgICAgLy8gTG9vcCByZS1lbnRyeToKKyAgICAvLyBXZSBleHBlY3QgRFAgdG8gcG9p
bnQgYXQgIzEgYW5kIGZvciAjMSB0byBiZSBvZmZzZXQgYnkgLTEwMC4KKyAgICBjb2RlLmFwcGVu
ZChBZGQpOworICAgIGNvZGUuYXBwZW5kKDEwMCk7CisgICAgCisgICAgY29kZS5hcHBlbmQoQWRk
RFApOworICAgIGNvZGUuYXBwZW5kKC0xKTsKKyAgICAKKyAgICAvLyBMb29wIGhlYWRlcjoKKyAg
ICAvLyBXZSBleHBlY3QgRFAgdG8gcG9pbnQgYXQgIzAuCisgICAgY29kZS5hcHBlbmQoQWRkRFAp
OworICAgIGNvZGUuYXBwZW5kKDEpOworICAgIAorICAgIGNvZGUuYXBwZW5kKEFkZCk7CisgICAg
Y29kZS5hcHBlbmQoMSk7CisgICAgCisgICAgY29kZS5hcHBlbmQoUHJpbnQpOworICAgIAorICAg
IGNvZGUuYXBwZW5kKEFkZCk7CisgICAgY29kZS5hcHBlbmQoLTEwMCk7CisgICAgCisgICAgLy8g
V2Ugd2FudCB0byBzdG9wIGlmIGl0J3MgemVybyBhbmQgY29udGludWUgaWYgaXQncyBub24temVy
by4gQWRkQ1AgdGFrZXMgdGhlIGJyYW5jaCBpZiBpdCdzCisgICAgLy8gbm9uLXplcm8uCisgICAg
Y29kZS5hcHBlbmQoQWRkQ1ApOworICAgIGNvZGUuYXBwZW5kKC0xMSk7IC8vIGdvIHRvIGxvb3Ag
cmUtZW50cnkuCisgICAgCisgICAgY29kZS5hcHBlbmQoU3RvcCk7CisgICAgCisgICAgaWYgKHNo
b3VsZEJlVmVyYm9zZSgpKQorICAgICAgICBkYXRhTG9nKCJjb2RlID0gIiwgbGlzdER1bXAoY29k
ZSksICJcbiIpOworICAgIAorICAgIENIRUNLKCFpbnZva2U8aW50cHRyX3Q+KCppbnRlcnByZXRl
ciwgZGF0YS5kYXRhKCksIGNvZGUuZGF0YSgpLCAmc3RyZWFtKSk7CisgICAgCisgICAgQ0hFQ0so
c3RyZWFtLnNpemUoKSA9PSAxMDApOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCAxMDA7
ICsraSkKKyAgICAgICAgQ0hFQ0soc3RyZWFtW2ldID09IGkgKyAxKTsKKyAgICAKKyAgICBpZiAo
c2hvdWxkQmVWZXJib3NlKCkpCisgICAgICAgIGRhdGFMb2coInN0cmVhbSA9ICIsIGxpc3REdW1w
KHN0cmVhbSksICJcbiIpOworfQorCiAvLyBNYWtlIHN1cmUgdGhlIGNvbXBpbGVyIGRvZXMgbm90
IHRyeSB0byBvcHRpbWl6ZSBhbnl0aGluZyBvdXQuCiBORVZFUl9JTkxJTkUgZG91YmxlIHplcm8o
KQogewpAQCAtMTM0NTQsNiArMTM2OTAsOCBAQCB2b2lkIHJ1bihjb25zdCBjaGFyKiBmaWx0ZXIp
CiAgICAgUlVOKHRlc3RTcGlsbFVzZUxhcmdlclRoYW5EZWYoKSk7CiAKICAgICBSVU4odGVzdExh
dGVSZWdpc3RlcigpKTsKKyAgICAKKyAgICBSVU4odGVzdFRocmVhZGVkSW50ZXJwcmV0ZXIoKSk7
CiAKICAgICBpZiAodGFza3MuaXNFbXB0eSgpKQogICAgICAgICB1c2FnZSgpOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmgJKHJldmlzaW9uIDIwMjEzNykKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
Myw2ICszMyw3IEBACiAjaW5jbHVkZSAiQWlyU3BlY2lhbC5oIgogI2luY2x1ZGUgIkFpclN0YWNr
U2xvdC5oIgogI2luY2x1ZGUgIkFpclRtcC5oIgorI2luY2x1ZGUgIkIzSW5kZXhNYXAuaCIKICNp
bmNsdWRlICJCM1NwYXJzZUNvbGxlY3Rpb24uaCIKICNpbmNsdWRlICJSZWdpc3RlckF0T2Zmc2V0
TGlzdC5oIgogI2luY2x1ZGUgIlN0YWNrQWxpZ25tZW50LmgiCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRlLmNwcAkocmV2aXNpb24gMjAyMTM3KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0ZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQ4LDEwICs0OCwxMyBAQAogI2luY2x1ZGUgIkFpclZhbGlkYXRlLmgiCiAjaW5jbHVk
ZSAiQjNDb21tb24uaCIKICNpbmNsdWRlICJCM0luZGV4TWFwLmgiCisjaW5jbHVkZSAiQjNQb2x5
SnVtcFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNQcm9jZWR1cmUuaCIKICNpbmNsdWRlICJCM1RpbWlu
Z1Njb3BlLmgiCisjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJDQ2FsbEhl
bHBlcnMuaCIKICNpbmNsdWRlICJEaXNhbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UuaCIK
KyNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMg
eyBuYW1lc3BhY2UgQWlyIHsKIApAQCAtMTk2LDcgKzE5OSw4IEBAIHZvaWQgZ2VuZXJhdGUoQ29k
ZSYgY29kZSwgQ0NhbGxIZWxwZXJzJiAKIAogICAgIGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiBj
b2RlKSB7CiAgICAgICAgIGJsb2NrSnVtcHNbYmxvY2tdLmxpbmsoJmppdCk7Ci0gICAgICAgIGJs
b2NrTGFiZWxzW2Jsb2NrXSA9IGppdC5sYWJlbCgpOworICAgICAgICBDQ2FsbEhlbHBlcnM6Okxh
YmVsIGxhYmVsID0gaml0LmxhYmVsKCk7CisgICAgICAgIGJsb2NrTGFiZWxzW2Jsb2NrXSA9IGxh
YmVsOwogICAgICAgICBBU1NFUlQoYmxvY2stPnNpemUoKSA+PSAxKTsKICAgICAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IGJsb2NrLT5zaXplKCkgLSAxOyArK2kpIHsKICAgICAgICAgICAg
IEluc3QmIGluc3QgPSBibG9jay0+YXQoaSk7CkBAIC0yMjgsMjYgKzIzMiw1NCBAQCB2b2lkIGdl
bmVyYXRlKENvZGUmIGNvZGUsIENDYWxsSGVscGVycyYgCiAgICAgICAgICAgICBhZGRJdGVtKGJs
b2NrLT5sYXN0KCkpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KLQorICAgICAg
ICAKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGp1bXAgPSBibG9jay0+bGFzdCgpLmdlbmVy
YXRlKGppdCwgY29udGV4dCk7Ci0gICAgICAgIHN3aXRjaCAoYmxvY2stPm51bVN1Y2Nlc3NvcnMo
KSkgewotICAgICAgICBjYXNlIDA6Ci0gICAgICAgICAgICBBU1NFUlQoIWp1bXAuaXNTZXQoKSk7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAxOgotICAgICAgICAgICAgbGluayhq
dW1wLCBibG9jay0+c3VjY2Vzc29yQmxvY2soMCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGNhc2UgMjoKLSAgICAgICAgICAgIGxpbmsoanVtcCwgYmxvY2stPnN1Y2Nlc3NvckJsb2Nr
KDApKTsKLSAgICAgICAgICAgIGlmIChibG9jay0+c3VjY2Vzc29yQmxvY2soMSkgIT0gY29kZS5m
aW5kTmV4dEJsb2NrKGJsb2NrKSkKLSAgICAgICAgICAgICAgICBsaW5rKGppdC5qdW1wKCksIGJs
b2NrLT5zdWNjZXNzb3JCbG9jaygxKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgZGVm
YXVsdDoKLSAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgLy8gVGhlIGp1bXAgd29uJ3QgYmUgc2V0IGZvciBQb2x5SnVt
cCBiZWNhdXNlIGl0IGxldHMgaXRzIGZhaXRoIGluIHRoZSBhZGRyZXNzIG9wZXJhbmQKKyAgICAg
ICAgLy8gZ3VpZGUgd2hlcmUgaXQganVtcHMuIEl0IHdvbid0IGJlIHNldCBmb3IgT29wcyBiZWNh
dXNlIHRoZW4gaXQgd29uJ3QgaGF2ZSBhbnkgc3VjY2Vzc29ycy4KKyAgICAgICAgaWYgKGp1bXAu
aXNTZXQoKSkgeworICAgICAgICAgICAgc3dpdGNoIChibG9jay0+bnVtU3VjY2Vzc29ycygpKSB7
CisgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgbGluayhqdW1wLCBibG9jay0+
c3VjY2Vzc29yQmxvY2soMCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSAyOgorICAgICAgICAgICAgICAgIGxpbmsoanVtcCwgYmxvY2stPnN1Y2Nlc3NvckJsb2Nr
KDApKTsKKyAgICAgICAgICAgICAgICBpZiAoYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDEpICE9IGNv
ZGUuZmluZE5leHRCbG9jayhibG9jaykpCisgICAgICAgICAgICAgICAgICAgIGxpbmsoaml0Lmp1
bXAoKSwgYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDEpKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KICAgICAg
ICAgfQogICAgICAgICBhZGRJdGVtKGJsb2NrLT5sYXN0KCkpOwogICAgIH0KKyAgICAKKyAgICAv
LyBUYWtlIGNhcmUgb2YgUG9seUp1bXAuIFdlIGRvIHRoaXMgbGFzdCBiZWNhdXNlIGl0IHJlbGll
cyBvbiBrbm93aW5nIHdoZXJlIGFsbCBvZiB0aGUgYmFzaWMKKyAgICAvLyBibG9jayBsYW5kZWQu
CisgICAgZm9yIChCYXNpY0Jsb2NrKiBibG9jayA6IGNvZGUpIHsKKyAgICAgICAgaWYgKGJsb2Nr
LT5sYXN0KCkub3Bjb2RlICE9IFBvbHlKdW1wKQorICAgICAgICAgICAgY29udGludWU7CisgICAg
ICAgIAorICAgICAgICBQb2x5SnVtcFZhbHVlKiBwb2x5SnVtcCA9IGJsb2NrLT5sYXN0KCkub3Jp
Z2luLT5hczxQb2x5SnVtcFZhbHVlPigpOworICAgICAgICBSRUxFQVNFX0FTU0VSVChwb2x5SnVt
cC0+bnVtU3VjY2Vzc29ycygpID09IGJsb2NrLT5udW1TdWNjZXNzb3JzKCkpOworICAgICAgICAK
KyAgICAgICAgUmVmUHRyPFNoYXJlZFRhc2s8UG9seUp1bXBWYWx1ZTo6Q2FsbGJhY2tGdW5jdGlv
blR5cGU+PiB0YXNrID0gcG9seUp1bXAtPmNhbGxiYWNrVGFzaygpOworICAgICAgICBpZiAoIXRh
c2spCisgICAgICAgICAgICBjb250aW51ZTsgLy8gVGhpcyB3b3VsZCBiZSB3ZWlyZCwgYnV0IHdl
IGFsbG93IGl0LgorICAgICAgICAKKyAgICAgICAgVmVjdG9yPENDYWxsSGVscGVyczo6TGFiZWw+
IGxhYmVsczsKKyAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBzdWNjZXNzb3IgOiBibG9jay0+c3Vj
Y2Vzc29yQmxvY2tzKCkpCisgICAgICAgICAgICBsYWJlbHMuYXBwZW5kKGJsb2NrTGFiZWxzW3N1
Y2Nlc3Nvcl0pOworICAgICAgICAKKyAgICAgICAgaml0LmFkZExpbmtUYXNrKAorICAgICAgICAg
ICAgWz1dIChMaW5rQnVmZmVyJiBsaW5rQnVmZmVyKSB7CisgICAgICAgICAgICAgICAgVmVjdG9y
PE1hY3JvQXNzZW1ibGVyQ29kZVB0cj4gcG9pbnRlcnM7CisgICAgICAgICAgICAgICAgZm9yIChD
Q2FsbEhlbHBlcnM6OkxhYmVsIGxhYmVsIDogbGFiZWxzKQorICAgICAgICAgICAgICAgICAgICBw
b2ludGVycy5hcHBlbmQobGlua0J1ZmZlci5sb2NhdGlvbk9mKGxhYmVsKSk7CisgICAgICAgICAg
ICAgICAgCisgICAgICAgICAgICAgICAgdGFzay0+cnVuKHBvaW50ZXJzKTsKKyAgICAgICAgICAg
IH0pOworICAgIH0KIAogICAgIHBjVG9PcmlnaW5NYXAuYXBwZW5kSXRlbShqaXQubGFiZWwoKSwg
T3JpZ2luKCkpOwogICAgIC8vIEZJWE1FOiBNYWtlIGxhdGUgcGF0aHMgaGF2ZSBPcmlnaW5zOiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzNjg5CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckluc3QuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdC5jcHAJKHJldmlzaW9uIDIwMjEzNykKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQ1LDYgKzQ1LDExIEBAIGJvb2wgSW5zdDo6aGFzQXJnRWZmZWN0cygpCiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KIAorYm9vbCBJbnN0Ojppc0Nsb25lYWJsZSgpCit7CisgICAgcmV0dXJuICFv
cmlnaW4gfHwgb3JpZ2luLT5pc0Nsb25lYWJsZSgpOworfQorCiB1bnNpZ25lZCBJbnN0Ojpqc0hh
c2goKSBjb25zdAogewogICAgIHVuc2lnbmVkIHJlc3VsdCA9IHN0YXRpY19jYXN0PHVuc2lnbmVk
PihvcGNvZGUpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0LmgJKHJl
dmlzaW9uIDIwMjEzNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xODgsNiArMTg4LDEwIEBAIHB1YmxpYzoKICAgICAvLyByZXR1
cm5zIDIgaWYgMCBhbmQgMSBiZW5lZml0IGZyb20gYWxpYXNpbmcgdG8gVG1wMy4KICAgICBPcHRp
b25hbDx1bnNpZ25lZD4gc2hvdWxkVHJ5QWxpYXNpbmdEZWYoKTsKICAgICAKKyAgICAvLyBTb21l
IGluc3R1Y3Rpb25zIHdpbGwgcmVmdXNlIHRvIGFsbG93IGNsb25pbmcuIElmIHRoaXMgcmV0dXJu
cyBmYWxzZSwgeW91IG11c3QgbWFrZSBzdXJlIHRoYXQKKyAgICAvLyB5b3UgbmV2ZXIgaW50cm9k
dWNlIGNvcGllcyBvZiB0aGUgaW5zdHJ1Y3Rpb24uCisgICAgYm9vbCBpc0Nsb25lYWJsZSgpOwor
ICAgIAogICAgIC8vIFRoaXMgY29tcHV0ZXMgYSBoYXNoIGZvciBjb21wYXJpbmcgdGhpcyB0byBK
U0FpcidzIEluc3QuCiAgICAgdW5zaWduZWQganNIYXNoKCkgY29uc3Q7CiAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bjb2RlcwkocmV2aXNpb24g
MjAyMTM3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bjb2Rl
cwkod29ya2luZyBjb3B5KQpAQCAtODM1LDYgKzgzNSwxNCBAQCBNb3ZlRG91YmxlQ29uZGl0aW9u
YWxseUZsb2F0IFU6RzozMiwgVTpGCiAKIEp1bXAgL2JyYW5jaAogCisjIFRoaXMgbWFzcXVlcmFk
ZXMgYXMgYSBub24tYnJhbmNoIHRlcm1pbmFsIGJlY2F1c2UgaXQgZG9lc24ndCBuZWVkIHRoZSB0
cmFkaXRpb25hbCBzb3J0IG9mIGxpbmtpbmcuCisjICJCcmFuY2giIGluIHRoaXMgY29udGV4dCBq
dXN0IG1lYW5zIHRoYXQgaXQncyBhIHRlcm1pbmFsIHRoYXQgcmV0dXJucyBhIEp1bXAgdGhhdCBu
ZWVkcyB0byBiZQorIyBsaW5rZWQuIEluc3RlYWQsIEFpcjo6Z2VuZXJhdGUoKSBoYXMgYSBzcGVj
aWFsLWNhc2UgZm9yIFBvbHlKdW1wLgorUG9seUp1bXAgVTpHOlB0ciAvdGVybWluYWwKKyAgICBU
bXAgYXMganVtcAorICAgIHg4NjogQWRkciBhcyBqdW1wCisgICAgeDg2OiBJbmRleCBhcyBqdW1w
CisKIFJldDMyIFU6RzozMiAvcmV0dXJuCiAgICAgVG1wCiAKSW5kZXg6IFdlYnNpdGVzL3dlYmtp
dC5vcmcvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3dlYmtpdC5vcmcvQ2hhbmdl
TG9nCShyZXZpc2lvbiAyMDIxMzcpCisrKyBXZWJzaXRlcy93ZWJraXQub3JnL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE2LTA1LTI5ICBGaWxpcCBQaXpsbyAg
PGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IHRhYmxlLWJhc2VkIHN3aXRj
aGVzIGluIEIzL0FpcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTUxMTQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAg
ICAgIAorICAgICAgICBVcGRhdGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIG5ldyBQb2x5SnVtcCBv
cGNvZGUuCisKKyAgICAgICAgKiBkb2NzL2IzL2ludGVybWVkaWF0ZS1yZXByZXNlbnRhdGlvbi5o
dG1sOgorCiAyMDE2LTA2LTEzICBKb24gRGF2aXMgIDxqb25kQGFwcGxlLmNvbT4KIAogICAgICAg
ICBNaW5vciBzdHlsZSB1cGRhdGVzIGZvciBmaWdjYXB0aW9ucyBhbmQgcG9zdCBmb3Jld29yZHMu
CkluZGV4OiBXZWJzaXRlcy93ZWJraXQub3JnL2RvY3MvYjMvaW50ZXJtZWRpYXRlLXJlcHJlc2Vu
dGF0aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvd2Via2l0Lm9yZy9kb2NzL2IzL2lu
dGVybWVkaWF0ZS1yZXByZXNlbnRhdGlvbi5odG1sCShyZXZpc2lvbiAyMDIxMzcpCisrKyBXZWJz
aXRlcy93ZWJraXQub3JnL2RvY3MvYjMvaW50ZXJtZWRpYXRlLXJlcHJlc2VudGF0aW9uLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTUzNyw2ICs1MzcsMzkgQEAgcGF0Y2hwb2ludC0+c2V0R2VuZXJh
dG9yKAogICAgICAgICBhbHNvIGNvbnRhaW5zIGEgZmFsbC10aHJvdWdoIHRhcmdldCBpbiBjYXNl
IHRoZSBjaGlsZCBoYXMgYSB2YWx1ZSB0aGF0IHdhc24ndCBtZW50aW9uZWQKICAgICAgICAgaW4g
dGhlIGNhc2VzIGxpc3QuICBNdXN0IHVzZSB0aGUgU3dpdGNoVmFsdWUgY2xhc3MuICBNdXN0IGFw
cGVhciBhdCB0aGUgZW5kIG9mIHRoZSBiYXNpYwogICAgICAgICBibG9jay48L2RkPgorICAgICAg
CisgICAgICA8ZHQ+Vm9pZCBQb2x5SnVtcChJbnRQdHIsIGJsb2Nrcy4uLik8L2R0PgorICAgICAg
PGRkPgorICAgICAgICA8cD5KdW1wcyB0byB0aGUgZ2l2ZW4gYWRkcmVzcy4gVGhlIGNvbXBpbGVy
IHdpbGwgYXNzdW1lIHRoYXQgdGhpcyBqdW1wcyB0byBvbmUgb2YgdGhlIGdpdmVuCisgICAgICAg
ICAgYmxvY2tzLiBUaGUgY29tcGlsZXIgbWFrZXMgbm8gYXR0ZW1wdCB0byBwcm92ZSBvciB2YWxp
ZGF0ZSB0aGF0IHRoZSBwYXNzZWQganVtcCBhZGRyZXNzIGlzCisgICAgICAgICAgYWN0dWFsbHkg
dGhlIGFkZHJlc3Mgb2YgYW55IG9mIHRob3NlIGJsb2Nrcy4gTm9uc2Vuc2ljYWwgdGhpbmdzIHdp
bGwgaGFwcGVuIGlmIHRoZSBwYXNzZWQKKyAgICAgICAgICBhZGRyZXNzIGlzIG5vdCB0aGUgYWRk
cmVzcyBvZiBvbmUgb2YgdGhlIGJsb2NrcyBpbiB0aGUgc3VjY2Vzc29yIGxpc3QuIFlvdSBjYW4g
YXJyYW5nZSB0bworICAgICAgICAgIGdldCB0aGUgYWRkcmVzc2VzIG9mIGJsb2NrcyBieSBwYXNz
aW5nIGEgY2FsbGJhY2sgdG8gUG9seUp1bXAuIFRoaXMgaXMgdXNlZCBpbnRlcm5hbGx5CisgICAg
ICAgICAgZm9yIGxvd2VyaW5nIFN3aXRjaCBvcGNvZGVzLiBZb3UgY2FuIGFsc28gdXNlIGl0IGRp
cmVjdGx5LjwvcD4KKyAgICAgIAorICAgICAgICA8cD5Qb2x5SnVtcCBpcyBub3QgY2xvbmVhYmxl
LiBGb3IgZWFjaCBQb2x5SnVtcCB5b3UgY3JlYXRlLCB0aGVyZSB3aWxsIGJlIG9uZSBpbmRpcmVj
dAorICAgICAgICAgIGp1bXAgZ2VuZXJhdGVkLiBUaGlzIGlzIG5lY2Vzc2FyeSB0byBlbnN1cmUg
c291bmRuZXNzIG9mIHRoZSBjYWxsYmFjay4gSWYgdGhlIFBvbHlKdW1wCisgICAgICAgICAgY291
bGQgYmUgY2xvbmVkLCB0aGVuIHRoZSBjYWxsYmFjayB3b3VsZCBnZXQgY2FsbGVkIGZvciBlYWNo
IGNsb25lLiBQcmVzdW1hYmx5LCB5b3UnZAorICAgICAgICAgIGltcGxlbWVudCB0aGUgY2FsbGJh
Y2sgYnkgcG9wdWxhdGluZyBzb21lIHRhYmxlIHdpdGggdGhlIGFkZHJlc3NlcyBvZiB0aGUgYmxv
Y2tzLiBJZiB0aGUKKyAgICAgICAgICBjYWxsYmFjayBnZXRzIGNhbGxlZCBtdWx0aXBsZSB0aW1l
cyB0aGVuIGl0IG1heSByZXR1cm4gZGlmZmVyZW50IGFkZHJlc3NlcyBlYWNoIHRpbWUgLQorICAg
ICAgICAgIHNpbmNlIGFmdGVyIGNsb25pbmcgYSBQb2x5SnVtcCwgdGhlIGNvbXBpbGVyIG1heSBy
ZXRhcmdldCBhbnkgb2YgaXRzIHN1Y2Nlc3NvciBlZGdlcy4KKyAgICAgICAgICBUaGlzIHdvdWxk
IGJlIGNvbmZ1c2luZywgc2luY2UgdGhlbiB5b3Ugd291bGRuJ3Qga25vdyB3aGF0IHRvIGRvIHdp
dGggZGlzY3JlcGFuY2llcyBiZXR3ZWVuCisgICAgICAgICAgYWRkcmVzc2VzIHJldHVybmVkIGJ5
IHRoZSB2YXJpb3VzIGNhbGxzIHRvIHRoZSBjYWxsYmFjay4gRGlzYWxsb3dpbmcgY2xvbmluZyBv
ZiBQb2x5SnVtcAorICAgICAgICAgIHNvbHZlcyB0aGlzIHByb2JsZW0uPC9wPgorICAgICAgICAK
KyAgICAgICAgPHA+QSBjbG9zZWx5IHJlbGF0ZWQgcHJvYmxlbSBpcyB0aGF0IGlmIHlvdSBlbWl0
IG11bHRpcGxlIFBvbHlKdW1wIGluc3RydWN0aW9ucywgdGhlbiBldmVuCisgICAgICAgICAgaWYg
dGhleSBpbml0aWFsbHkgc2hhcmUgdGhlIHNhbWUgc3VjY2Vzc29ycywgeW91IGNhbm5vdCBndWFy
YW50ZWUgdGhhdCB0aGV5IHdpbGwgY29udGludWUKKyAgICAgICAgICB0byBzaGFyZSB0aGUgc2Ft
ZSBzdWNjZXNzb3JzIGFmdGVyIG9wdGltaXphdGlvbi4gVGhpcyBtZWFucyB0aGF0IFBvbHlKdW1w
IGNhbm5vdAorICAgICAgICAgIGN1cnJlbnRseSBiZSB1c2VkIGZvciBpbXBsZW1lbnRpbmcgZGly
ZWN0IHRocmVhZGVkIGludGVycHJldGVycywgYXQgbGVhc3Qgbm90IHRoZSBjbGFzc2ljCisgICAg
ICAgICAga2luZDogdG8gbWFrZSBpdCB3b3JrLCB5b3UgaGF2ZSB0byBoYXZlIGEgc2hhcmVkIGRp
c3BhdGNoIGJsb2NrIHNvIHRoYXQgeW91IGhhdmUgYSBzaW5nbGUKKyAgICAgICAgICBQb2x5SnVt
cC4gVGhpcyBtaWdodCBiZSBiZXR0ZXIgdGhhbiBhIFN3aXRjaC1iYXNlZCBpbnRlcnByZXRlciwg
YnV0IGl0J3MgZGVmaW5pdGVseSBub3QKKyAgICAgICAgICBhcyBnb29kIGFzIHdoYXQgeW91J2Qg
Z2V0IHdpdGggR0NDLXN0eWxlIGNvbXB1dGVkIGdvdG8uPC9wPgorICAgICAgICAKKyAgICAgICAg
PHA+UG9seUp1bXAgaXMgc28gbmFtZWQgdG8gYXZvaWQgY29uZnVzaW9uIHdpdGggY29tcHV0ZWQg
Z290b3MgYW5kIGluZGlyZWN0IGJyYW5jaGVzIGluCisgICAgICAgICAgb3RoZXIgY29tcGlsZXJz
LiBJdCBoYXMgc2lnbmlmaWNhbnQgcmVzdHJpY3Rpb25zIHRoYXQgdGhvc2Ugb3BlcmF0aW9ucyBk
byBub3QgaGF2ZS4gVGhlc2UKKyAgICAgICAgICByZXN0cmljdGlvbnMgbWFrZSBpdCBlYXNpZXIg
Zm9yIHRoZSBvcHRpbWl6ZXIgdG8gd29yayB3aXRoIHNpbmNlIHRoZSBjb250cm9sIGZsb3cgZ2V0
cyB0bworICAgICAgICAgIGJlIGV4cGxpY2l0IChQb2x5SnVtcCBoYXMgYSBmaW5pdGUgc2V0IG9m
IHN1Y2Nlc3NvcnMgbGlrZSBhbnkgb3RoZXIgYmxvY2sgdGVybWluYWwpLjwvcD4KKyAgICAgIDwv
ZGQ+CiAKICAgICAgIDxkdD5Wb2lkIFJldHVybihUKTwvZHQ+CiAgICAgICA8ZGQ+V29ya3MgZm9y
IGFueSB0eXBlIGV4Y2VwdCBWb2lkLiAgUmV0dXJucyB0aGUgZ2l2ZW4gdmFsdWUgYW5kIHRlcm1p
bmF0ZXMgdGhlIHByb2NlZHVyZS4KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMjEzNykKKysrIExheW91
dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE2LTA1
LTI5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50
IHRhYmxlLWJhc2VkIHN3aXRjaGVzIGluIEIzL0FpcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxMTQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBqcy9yZWdyZXNzL2JpZ3N3aXRjaC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvYmlnc3dpdGNoLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2JpZ3N3aXRjaC5qczogQWRkZWQuCisg
ICAgICAgIChmb28pOgorCiAyMDE2LTA2LTE1ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJA
YXBwbGUuY29tPgogCiAgICAgICAgIFtpT1MgV0syXSBPbiBpUGFkLCBpbmRpcmVjdCBmb2N1c3Np
bmcgb2YgYSB0ZXh0IGZpZWxkIGRvZXNuJ3QgYWx3YXlzIHNjcm9sbCB0byB0aGUgY29ycmVjdCBs
b2NhdGlvbgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2gtZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNo
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3Mv
Ymlnc3dpdGNoCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5vIGV4Y2Vw
dGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLmh0bWwJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFRE
IEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
c2NyaXB0LXRlc3RzL2JpZ3N3aXRjaC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9iaWdzd2l0Y2guanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvYmlnc3dpdGNo
LmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMv
Ymlnc3dpdGNoLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjExIEBACitmdW5jdGlvbiBm
b28obykgeworICAgIHZhciByZXN1bHQgPSAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAw
MDsgKytpKSB7CisgICAgICAgIHZhciB2YWx1ZSA9IGkgJiA2MzsKKyAgICAgICAgc3dpdGNoICh2
YWx1ZSkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICByZXN1bHQgKz0gby5hOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
LmI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgcmVz
dWx0ICs9IG8uYzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM6CisgICAgICAg
ICAgICByZXN1bHQgKz0gby5kOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDoK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSA1OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZjsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIDY6CisgICAgICAgICAgICByZXN1bHQgKz0gby5nOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgNzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA4OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8u
aTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDk6CisgICAgICAgICAgICByZXN1
bHQgKz0gby5qOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTA6CisgICAgICAg
ICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTE6
CisgICAgICAgICAgICByZXN1bHQgKz0gby5hOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgMTI6CisgICAgICAgICAgICByZXN1bHQgKz0gby5iOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgMTM6CisgICAgICAgICAgICByZXN1bHQgKz0gby5jOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTQ6CisgICAgICAgICAgICByZXN1bHQgKz0gby5kOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTU6CisgICAgICAgICAgICByZXN1bHQg
Kz0gby5lOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTY6CisgICAgICAgICAg
ICByZXN1bHQgKz0gby5mOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTc6Cisg
ICAgICAgICAgICByZXN1bHQgKz0gby5nOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgMTg6CisgICAgICAgICAgICByZXN1bHQgKz0gby5oOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgMTk6CisgICAgICAgICAgICByZXN1bHQgKz0gby5pOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgMjA6CisgICAgICAgICAgICByZXN1bHQgKz0gby5qOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjE6CisgICAgICAgICAgICByZXN1bHQgKz0g
by5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjI6CisgICAgICAgICAgICBy
ZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjM6CisgICAg
ICAgICAgICByZXN1bHQgKz0gby5hOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
MjQ6CisgICAgICAgICAgICByZXN1bHQgKz0gby5iOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgMjU6CisgICAgICAgICAgICByZXN1bHQgKz0gby5jOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgMjY6CisgICAgICAgICAgICByZXN1bHQgKz0gby5kOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjc6CisgICAgICAgICAgICByZXN1bHQgKz0gby5l
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjg6CisgICAgICAgICAgICByZXN1
bHQgKz0gby5mOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjk6CisgICAgICAg
ICAgICByZXN1bHQgKz0gby5nOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzA6
CisgICAgICAgICAgICByZXN1bHQgKz0gby5oOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgMzE6CisgICAgICAgICAgICByZXN1bHQgKz0gby5pOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgMzI6CisgICAgICAgICAgICByZXN1bHQgKz0gby5qOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzM6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzQ6CisgICAgICAgICAgICByZXN1bHQg
Kz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzU6CisgICAgICAgICAg
ICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzY6Cisg
ICAgICAgICAgICByZXN1bHQgKz0gby5hOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgMzc6CisgICAgICAgICAgICByZXN1bHQgKz0gby5iOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgMzg6CisgICAgICAgICAgICByZXN1bHQgKz0gby5jOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgMzk6CisgICAgICAgICAgICByZXN1bHQgKz0gby5kOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDA6CisgICAgICAgICAgICByZXN1bHQgKz0g
by5lOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDE6CisgICAgICAgICAgICBy
ZXN1bHQgKz0gby5mOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDI6CisgICAg
ICAgICAgICByZXN1bHQgKz0gby5nOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
NDM6CisgICAgICAgICAgICByZXN1bHQgKz0gby5oOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgNDQ6CisgICAgICAgICAgICByZXN1bHQgKz0gby5pOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgNDU6CisgICAgICAgICAgICByZXN1bHQgKz0gby5qOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDY6CisgICAgICAgICAgICByZXN1bHQgKz0gby5r
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDc6CisgICAgICAgICAgICByZXN1
bHQgKz0gby5pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDg6CisgICAgICAg
ICAgICByZXN1bHQgKz0gby5qOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDk6
CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgNTA6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgNTE6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTI6CisgICAgICAgICAgICByZXN1bHQgKz0gby5hOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTM6CisgICAgICAgICAgICByZXN1bHQg
Kz0gby5iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTQ6CisgICAgICAgICAg
ICByZXN1bHQgKz0gby5jOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTU6Cisg
ICAgICAgICAgICByZXN1bHQgKz0gby5kOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgNTY6CisgICAgICAgICAgICByZXN1bHQgKz0gby5lOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgNTc6CisgICAgICAgICAgICByZXN1bHQgKz0gby5mOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgNTg6CisgICAgICAgICAgICByZXN1bHQgKz0gby5nOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTk6CisgICAgICAgICAgICByZXN1bHQgKz0g
by5oOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNjA6CisgICAgICAgICAgICBy
ZXN1bHQgKz0gby5pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNjE6CisgICAg
ICAgICAgICByZXN1bHQgKz0gby5qOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
NjI6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXN1bHQgKz0gby56OworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworKGZ1bmN0aW9u
KCkgeworICAgIHZhciBvID0ge2E6MSwgYjoyLCBjOjMsIGQ6NCwgZTo1LCBmOjYsIGc6NywgaDo4
LCBpOjksIGo6MTAsIGs6MTEsIHo6MTAwfTsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpCisgICAgICAgIHJlc3VsdCArPSBmb28obyk7Cisg
ICAgaWYgKHJlc3VsdCAhPSA3OTY2MDAwMCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVz
dWx0OiAiICsgcmVzdWx0OworfSkoKTsKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282088</attachid>
            <date>2016-06-25 20:13:52 -0700</date>
            <delta_ts>2016-07-04 10:30:55 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>70813</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAyNDY5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2NiBA
QAorMjAxNi0wNS0yOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IEltcGxlbWVudCB0YWJsZS1iYXNlZCBzd2l0Y2hlcyBpbiBCMy9BaXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTE0MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgSWYgYSBzd2l0Y2ggc3Rh
dGVtZW50IGdldHMgbGFyZ2UsIGl0J3MgYmV0dGVyIHRvIGV4cHJlc3MgaXQgYXMgYW4gaW5kaXJl
Y3QganVtcCByYXRoZXIgdGhhbgorICAgICAgICB1c2luZyBhIGJpbmFyeSBzd2l0Y2ggKGRpdmlk
ZS1hbmQtY29ucXVlciB0cmVlIG9mIGNvbXBhcmlzb25zIGxlYWRpbmcgdG8gTyhsb2cgbikgYnJh
bmNoZXMgdG8KKyAgICAgICAgZ2V0IHRvIHRoZSBzd2l0Y2ggY2FzZSkuIFdoZW4gZGVhbGluZyB3
aXRoIGludGVnZXIgc3dpdGNoZXMsIEZUTCB3aWxsIGFscmVhZHkgdXNlIHRoZSBCMworICAgICAg
ICBTd2l0Y2ggYW5kIGV4cGVjdCB0aGlzIHRvIGdldCBsb3dlcmVkIGFzIGVmZmljaWVudGx5IGFz
IHBvc3NpYmxlOyBpdCdzIGEgYnVnIHRoYXQgQjMgd2lsbAorICAgICAgICBhbHdheXMgdXNlIGEg
YmluYXJ5IHN3aXRjaCByYXRoZXIgdGhhbiBpbmRpcmVjdCBqdW1wcy4gV2hlbiBkZWFsaW5nIHdp
dGggc3dpdGNoZXMgb3ZlciBzb21lCisgICAgICAgIG1vcmUgc29waGlzdGljYXRlZCB0eXBlcywg
d2UnZCB3YW50IEZUTCB0byBidWlsZCBhbiBpbmRpcmVjdCBqdW1wIHRhYmxlIGl0c2VsZiBhbmQg
dXNlCisgICAgICAgIHNvbWV0aGluZyBsaWtlIGEgaGFzaHRhYmxlIHRvIGZlZWQgaXQuIEluIHRo
YXQgY2FzZSwgdGhlcmUgd2lsbCBiZSBubyBCMyBTd2l0Y2g7IHdlJ2xsIHdhbnQKKyAgICAgICAg
c29tZSBraW5kIG9mIGluZGlyZWN0IGp1bXAgaW5zdHJ1Y3Rpb24uCisgICAgICAgIAorICAgICAg
ICBUaGlzIGltcGxpZXMgdGhhdCB3ZSB3YW50IEIzIHRvIGhhdmUgdGhlIGFiaWxpdHkgdG8gbG93
ZXIgU3dpdGNoIHRvIGluZGlyZWN0IGp1bXBzIGFuZCB0bworICAgICAgICBleHBvc2UgdGhvc2Ug
aW5kaXJlY3QganVtcHMgaW4gSVIgc28gdGhhdCB0aGUgRlRMIGNvdWxkIGRvIGl0cyBvd24gaW5k
aXJlY3QganVtcHMgZm9yCisgICAgICAgIHN3aXRjaGVzIG92ZXIgbW9yZSBjb21wbGljYXRlZCB0
aGluZ3MgbGlrZSBzdHJpbmdzLiBUaGlzIGNoYW5nZSBpbnRyb2R1Y2VzIGFuIGluZGlyZWN0IGp1
bXAKKyAgICAgICAgaW5zdHJ1Y3Rpb24gdG8gQjMgYW5kIGNhbGxzIGl0IFBvbHlKdW1wLiBJdCBo
YXMgc29tZSB1bmlxdWUgc2VtYW50aWNzIHRoYXQgbWFrZSBpdCB2ZXJ5CisgICAgICAgIGRpZmZl
cmVudCBmcm9tICJpbmRpcmVjdCBqdW1wcyIsICJpbmRpcmVjdCBicmFuY2hlcyIsIGFuZCAiY29t
cHV0ZWQgZ290b3MiIC0gYWxsIHRlcm1zIG9mIGFydAorICAgICAgICB1c2VkIGluIG90aGVyIGNv
bXBpbGVycy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaW1wbGVtZW50cyB0aGUgbW9zdCBiYXNp
YyBraW5kIG9mIFN3aXRjaC10by1Qb2x5SnVtcCBsb3dlcmluZyBpbiBCMzo6bG93ZXJNYWNyb3Mo
KS4gQXMKKyAgICAgICAgcGFydCBvZiB0aGUgZXhpc3RpbmcgZGl2aWRlLWFuZC1jb25xdWVyIHRo
YXQgY3JlYXRlcyBicmFuY2hlcywgaWYgaXQgZGV0ZWN0cyB0aGF0IHRoZSBzZXQgb2YKKyAgICAg
ICAgY2FzZXMgc2F0aXNmaWVzIHNvbWUgY29uZGl0aW9ucyAoZGVuc2l0eSBvZiBjYXNlIHZhbHVl
cyBhbmQgdG90YWwgc2l6ZSksIHRoZW4gaXQgd2lsbCBlbWl0IGEKKyAgICAgICAgUG9seUp1bXAu
CisgICAgICAgIAorICAgICAgICBUaGUgcHJvYmxlbSB3aXRoIGNsYXNzaWMgaW5kaXJlY3QganVt
cHMgaXMgdGhhdCB0aGV5IGZvcmNlIHRoZSBjb21waWxlciB0byBiZSBjb25zZXJ2YXRpdmUKKyAg
ICAgICAgYWJvdXQgY29udHJvbCBmbG93LiBUaGUgY29tcGlsZXIgbXVzdCBhc3N1bWUgdGhhdCB0
aGUgaW5kaXJlY3QganVtcCBtYXkgdHJhbnNmZXIgY29udHJvbCBmbG93CisgICAgICAgIHRvIGFu
eSBlc2NhcGVkIGJsb2NrIChibG9jayBsYWJlbGVkIGFzIGJlaW5nIGEgcG9zc2libGUgdGFyZ2V0
IGZvciBpbmRpcmVjdCBqdW1wcywgb3IgaWYgbm8KKyAgICAgICAgc3VjaCBsYWJlbGluZyBpcyBh
dmFpbGFibGUsIHRoZSBjb21waWxlciBtdXN0IGFzc3VtZSB0aGF0IGl0IG1heSB0YXJnZXQgYW55
IGJsb2NrKS4gVGhlIHdvcnN0CisgICAgICAgIHBhcnQgaXMgdGhhdCB0aGUgaW1wbGljaXQgY29u
dHJvbCBmbG93IGVkZ2VzIGZyb20gdGhlIGluZGlyZWN0IGp1bXAgdG8gdGhlIGVzY2FwZWQgYmxv
Y2tzCisgICAgICAgIGNhbm5vdCBiZSBicm9rZW4uIFRoaXMgaW52YWxpZGF0ZXMgYSBwcmluY2lw
bGUgb2YgQjMgSVI6IGFueSBwaGFzZSBtYXkgYnJlYWsgYW55IGNyaXRpY2FsCisgICAgICAgIGVk
Z2UgZm9yIGFueSByZWFzb24uIE91ciBTU0EgY29udmVyc2lvbiB3b3VsZCBicmVhayBpZiB3ZSBy
ZXZva2VkIHRoaXMgZmVhdHVyZS4gSXQncyBhY3R1YWxseQorICAgICAgICBtdWNoIHdvcnNlIHRo
YW4gdGhpcyAtIGJhc2ljYWxseSBhbnkgbG9naWMgb3ZlciBjb250cm9sIGZsb3cgd291bGQgaGF2
ZSB0byBiZSBoYWNrZWQgdG8gZGVhbAorICAgICAgICB3aXRoIHRoZXNlIHVuYnJlYWthYmxlIGVk
Z2VzLiBUaGlzIHdvdWxkIG1lYW4gY2hhbmdpbmcgYWxsIENGRyB0cmFuc2Zvcm1hdGlvbiB1dGls
aXRpZXMgYW5kCisgICAgICAgIHBhc3Nlcy4gV2UgaGF2ZSBhIGxvdCBvZiB0aG9zZSBhbmQgd2Ug
d2FudCBpdCB0byBiZSBlYXN5IHRvIHdyaXRlIG5ldyBvbmVzLgorICAgICAgICAKKyAgICAgICAg
VGhpcyBpcyB3aHkgd2UgdXNlIHNvbWV0aGluZyBuZXcgYW5kIHF1aXRlIGRpZmZlcmVudCBmcm9t
IGNsYXNzaWMgaW5kaXJlY3QganVtcHMuIFBvbHlKdW1wCisgICAgICAgIG1ha2VzIHRoZSBjb250
cm9sIGZsb3cgZWRnZXMgZXhwbGljaXQuIFRoZSBjbGllbnQgbXVzdCBzdXBwbHkgdGhlIHN1Y2Nl
c3NvcnMgd2hlbiBpdCBjcmVhdGVzCisgICAgICAgIHRoZSBQb2x5SnVtcC4gVGhlIGNvbXBpbGVy
IG1heSByZXdpcmUgdGhvc2Ugc3VjY2Vzc29yIGVkZ2VzIHRoZSBzYW1lIHdheSB0aGF0IGl0IHdv
dWxkIHJld2lyZQorICAgICAgICBhbnkgY29udHJvbCBmbG93IGVkZ2VzLiBDb25zZXF1ZW50bHkg
dGhlIHZhc3QgbWFqb3JpdHkgb2YgQ0ZHIHJlYXNvbmluZyBpbiBCMyBpcyB1bmNoYW5nZWQuCisg
ICAgICAgIElmIHlvdSBkb24ndCB3YW50IHRvIHVuZGVyc3RhbmQgUG9seUp1bXAsIGp1c3QgdGhp
bmsgb2YgaXQgbGlrZSB5b3Ugd291bGQgYSBTd2l0Y2ggd2l0aCBhbgorICAgICAgICBvcGFxdWUg
aW5jb21pbmcgdmFsdWUuIFRoaXMgd29ya3MgYmVjYXVzZSB3ZSBkbyBub3QgYWRkIGFueSBub3Rp
b24gb2YgZXNjYXBlZCBiYXNpYyBibG9ja3MuCisgICAgICAgIEluc3RlYWQgb2YgbGV0dGluZyB0
aGUgY2xpZW50IGdldCB0aGUgcG9pbnRlcnMgdG8gYmFzaWMgYmxvY2tzIGJ5IGVzY2FwaW5nIHRo
ZW0gbGlrZSBpbiBMTFZNLAorICAgICAgICB5b3UgY2FuIG9ubHkgZ2V0IHRoZSBwb2ludGVycyBv
ZiB0aGUgc3VjY2Vzc29ycyBvZiBQb2x5SnVtcCBieSByZWdpc3RlcmluZyBhIGNhbGxiYWNrIHdp
dGgKKyAgICAgICAgUG9seUp1bXAuIFRoaXMgY2FsbGJhY2sgZG9lc24ndCBhY3R1YWxseSBnaXZl
IHlvdSB0aGUgYWRkcmVzc2VzIG9mIGJhc2ljIGJsb2Nrcy4gSXQganVzdAorICAgICAgICBnaXZl
cyB5b3UgdGhlIGFkZHJlc3NlcyB3aGVyZSB5b3UgbXVzdCBqdW1wIHRvIHRyYW5zZmVyIGNvbnRy
b2wgZmxvdyBmcm9tIHRoYXQgUG9seUp1bXAgdG8KKyAgICAgICAgaXRzIHN1Y2Nlc3NvcnMuIFRo
aXMgbWVhbnMgdGhhdCB0aGUgbWFnaWMgb2YgUG9seUp1bXAgaXMgY29uZmluZWQgb25seSB0byB0
aGUgUG9seUp1bXAgaXRzZWxmCisgICAgICAgIGFuZCBkb2Vzbid0IGluZmVjdCByZWFzb25pbmcg
YWJvdXQgdGhlIGJhc2ljIGJsb2NrcyB0aGF0IGl0IGp1bXBzIHRvLgorICAgICAgICAKKyAgICAg
ICAgVGhlIG9ubHkgZG93bnNpZGUgaXMgdGhhdCB0aGF0IFBvbHlKdW1wIGlzIG5vdCBjbG9uZWFi
bGUuIFlvdSBjYW4ndCBjbG9uZSBpdCBiZWNhdXNlIGlmIHlvdQorICAgICAgICBkaWQsIHRoZW4g
dGhlIHR3byByZXN1bHRpbmcgUG9seUp1bXBzIG1heSBoYXZlIHRoZWlyIHN1Y2Nlc3NvciBlZGdl
cyByZXdpcmVkIGluZGVwZW5kZW50bHkgb2YKKyAgICAgICAgZWFjaCBvdGhlci4gVGhpcyBjb3Vs
ZCBlYXNpbHkgaGFwcGVuIGlmIHdlIGJyZWFrIGNyaXRpY2FsIGVkZ2VzLiBJZiB0aGF0IGRpZCBo
YXBwZW4gdGhlbiBpdAorICAgICAgICB3b3VsZCBicmVhayB0aGUgY2xpZW50IG9mIFBvbHlKdW1w
OiB0aGV5IHdvdWxkIGhhdmUgYWxyZWFkeSBjcmVhdGVkIHNvbWV0aGluZyBsaWtlIGEganVtcAor
ICAgICAgICB0YWJsZSBhbmQgd2lsbCBiZSBwb3B1bGF0aW5nIGl0IHZpYSB0aGUgY2FsbGJhY2ss
IGJ1dCBub3cgdGhlIGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkIHR3aWNlLAorICAgICAgICBhbmQg
bWF5IHJldHVybiBkaWZmZXJlbnQganVtcCBkZXN0aW5hdGlvbnMgZWFjaCB0aW1lLiBTbywgdGhp
cyBwYXRjaCBpbnRyb2R1Y2VzCisgICAgICAgIFZhbHVlOjppc0Nsb25lYWJsZSgpIGFuZCB0ZWFj
aGVzIGJvdGggb2Ygb3VyIGNvZGUgc3BlY2lhbGl6YXRpb24gb3B0aW1pemF0aW9ucyAodGFpbAor
ICAgICAgICBkdXBsaWNhdGlvbiBhbmQgc2VsZWN0IHNwZWNpYWxpemF0aW9uKSB0byBiYWlsIGlm
IHRoZSBjb2RlIHRoZXkgd2FudCB0byBzcGVjaWFsaXplIGlzIG5vdAorICAgICAgICBjbG9uZWFi
bGUuIFRoaXMgaXMgdG90YWxseSBiZW5pZ24gbW9zdCBvZiB0aGUgdGltZSwgc2luY2UgdGhvc2Ug
b3B0aW1pemF0aW9ucyB1c3VhbGx5IHJ1bgorICAgICAgICBiZWZvcmUgU3dpdGNoIGxvd2VyaW5n
LiBDbGllbnRzIHRoYXQgdXNlIFBvbHlKdW1wIGRpcmVjdGx5IGhhdmUgdG8gYXBwcmVjaWF0ZSB0
aGUgdHJhZGUtb2ZmOgorICAgICAgICBQb2x5SnVtcCBtYXkgZ2FpbiB0aGVtIHNvbWUgcGVyZm9y
bWFuY2UgYnV0IHRoZXkgYXJlIG9wdGluZyBvdXQgb2Ygb3B0aW1pemF0aW9ucyB0aGF0IHVzZQor
ICAgICAgICBjbG9uaW5nLiBBIGNsb3NlIGNvcm9sbGFyeSBvZiB0aGUgbm8tY2xvbmUgcnVsZSBp
cyB0aGF0IHRoZSBjbGllbnQgY2Fubm90IGNyZWF0ZSBtdWx0aXBsZQorICAgICAgICBQb2x5SnVt
cHMgdGhhdCBhcmUgZmVkIGJ5IGEgY29tbW9uIGp1bXAgdGFibGU6IHRoZSBmYWN0IHRoYXQgZWFj
aCBQb2x5SnVtcCBoYXMgYSBjYWxsYmFjaworICAgICAgICB0aGF0IGp1c3QgdGVsbHMgeW91IHRo
ZSBqdW1wIGRlc3RpbmF0aW9ucyBmb3IgaXRzIHN1Y2Nlc3NvciAqZWRnZXMqLCBub3Qgc3VjY2Vz
c29yICpibG9ja3MqLAorICAgICAgICBtZWFucyB0aGF0IGlmIHlvdSBjcmVhdGUgdHdvIFBvbHlK
dW1wcyBhbmQgZ2l2ZSB0aGVtIHRoZSBzYW1lIHN1Y2Nlc3NvciBsaXN0LCB5b3UgYXJlIG5vdAor
ICAgICAgICBndWFyYW50ZWVkIHRoYXQgdGhleSB3aWxsIGdldCB0aGUgc2FtZSBqdW1wIGRlc3Rp
bmF0aW9ucy4gVGhpcyBodXJ0cyBpZiB5b3Ugd2FudCB0byB1c2UKKyAgICAgICAgUG9seUp1bXAg
Zm9yIHRocmVhZGVkIGludGVycHJldGVycyBidXQgaXQncyBoYXJtbGVzcyBmb3Igc3dpdGNoIGxv
d2VyaW5nLiBUaGUgZ29hbCBvZgorICAgICAgICBQb2x5SnVtcCBpcyB0byBiZSBhd2Vzb21lIGZv
ciBzd2l0Y2ggbG93ZXJpbmcgd2hpbGUgbm90IGJyZWFraW5nIHRoZSByZXN0IG9mIHRoZSBjb21w
aWxlciwgc28KKyAgICAgICAgdGhpcyBpcyBwcm9iYWJseSBmaW5lLgorICAgICAgICAKKyAgICAg
ICAgVGhlIGlzQ2xvbmVhYmxlKCkgbWV0aG9kIGN1cnJlbnRseSBvbmx5IHJldHVybnMgdHJ1ZSBm
b3IgUG9seUp1bXAsIGJ1dCBJIGFudGljaXBhdGUgd2Ugd2lsbAorICAgICAgICBhZGQgb3RoZXIg
bm9uLWNsb25lYWJsZSB0aGluZ3MgbGF0ZXIuIEkgdGhpbmsgaXMgaXMgaW5oZXJlbnQgaW4gYSBj
b21waWxlciB0aGF0IGFsbG93cyBzdWNoCisgICAgICAgIGN1c3RvbWl6ZWFiaWxpdHkgZm9yIGl0
cyBjbGllbnRzLiBGb3IgZXhhbXBsZSwgd2UgbWF5IHdhbnQgdG8gYWRkIGEgZmxhZyB0byBQYXRj
aHBvaW50IHRoYXQKKyAgICAgICAgbWFrZXMgaXQgbm9uLWNsb25lYWJsZS4gU29tZXRpbWVzIHdl
IGhhdmUgdG8ganVtcCB0aHJvdWdoIGhvb3BzIGluIHRoZSBGVEwgYmVjYXVzZSBvZiB0aGUKKyAg
ICAgICAgY2xvbmVhYmlsaXR5IG9mIHBhdGNocG9pbnRzLiBUaGlzIGhhcHBlbnMgaW4gT1NSIGV4
aXRzLCB3aGljaCBwYXkgYSBzaWduaWZpY2FudCBtZW1vcnkgY29zdAorICAgICAgICBmb3IgYWRk
aXRpb25hbCBkYXRhIHN0cnVjdHVyZXMgdGhhdCBhcmUgdGhlcmUgaW4gY2FzZSBhbiBleGl0IGdl
dHMgY2xvbmVkLiBJdCBtYXkgYmUgbW9yZQorICAgICAgICBwcm9maXRhYmxlIHRvIGp1c3Qgc2F5
IHRoYXQgT1NSIGV4aXRzIChpLmUuIENoZWNrcyBhbmQgSW52YWxpZGF0aW9uUG9pbnQgUGF0Y2hw
b2ludHMpIGFyZSBub3QKKyAgICAgICAgY2xvbmVhYmxlLiBTdXJlbHkgdGhpcyB3b3VsZCByZWR1
Y2UgdGFpbCBkdXBsaWNhdGlvbiwgYnV0IHRhaWwgZHVwbGljYXRpb24gaXMgbW9zdCBwcm9maXRh
YmxlCisgICAgICAgIHdoZW4gaXQgY2xvbmVzIG9ubHkgYSB0aW55IGFtb3VudCBvZiBjb2RlOyBp
ZiB0aGVyZSdzIGFuIGV4aXQgdGhlbiB3ZSdyZSBub3QgdGFsa2luZyBhYm91dCBhCisgICAgICAg
IHRpbnkgYW1vdW50IG9mIGNvZGUgYW55bW9yZS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaXMg
YSB+MzAlIHNwZWVkLXVwIG9uIG1pY3JvYmVuY2htYXJrcyB0aGF0IGhhdmUgYmlnIHN3aXRjaCBz
dGF0ZW1lbnRzICh+NjAgY2FzZXMpLiBJdCdzCisgICAgICAgIG5vdCBhIHNwZWVkLXVwIG9uIG1h
aW5zdHJlYW0gYmVuY2htYXJrcy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgYWxzbyBhZGRzIGEg
bmV3IHRlc3QgdG8gdGVzdGIzIGZvciBQb2x5SnVtcCwgR2V0LCBhbmQgU2V0LiBUaGUgRlRMIGRv
ZXMgbm90IGN1cnJlbnRseQorICAgICAgICB1c2UgUG9seUp1bXAgZGlyZWN0bHksIGJ1dCB3ZSB3
YW50IHRoaXMgdG8gYmUgcG9zc2libGUuIEl0IGFsc28gZG9lc24ndCB1c2UgR2V0L1NldCBkaXJl
Y3RseQorICAgICAgICBldmVuIHRob3VnaCB3ZSB3YW50IHRoaXMgdG8gYmUgcG9zc2libGUuIEl0
J3MgaW1wb3J0YW50IHRvIHRlc3QgdGhlc2Ugc2luY2Ugb3Bjb2RlcyB0aGF0CisgICAgICAgIHJl
c3VsdCBmcm9tIGxvd2VyaW5nIGRvbid0IGFmZmVjdCBlYXJseSBwaGFzZXMsIHNvIHdlIGNvdWxk
IGhhdmUgcmVncmVzc2lvbnMgaW4gZWFybHkgcGhhc2VzCisgICAgICAgIHJlbGF0ZWQgdG8gdGhl
c2Ugb3Bjb2RlcyB0aGF0IHdvdWxkbid0IGJlIGNhdWdodCBieSBhbnkgSlMgdGVzdC4gU28sIHRo
aXMgYWRkcyBhIHZlcnkgYmFzaWMKKyAgICAgICAgdGhyZWFkZWQgaW50ZXJwcmV0ZXIgdG8gdGVz
dGIzIGZvciBhIEJyYWluZnVjay1zdHlsZSBsYW5ndWFnZSwgYW5kIHRlc3RzIGl0IGJ5IGhhdmlu
ZyBpdCBydW4KKyAgICAgICAgYSBwcm9ncmFtIHRoYXQgcHJpbnRzIHRoZSBudW1iZXJzIDEuLjEw
MCBpbiBhIGxvb3AuIFVubGlrZSBhIHJlYWwgdGhyZWFkZWQgaW50ZXJwcmV0ZXIsIGl0CisgICAg
ICAgIHVzZXMgYSBjb21tb24gZGlzcGF0Y2ggYmxvY2sgcmF0aGVyIHRoYW4gaGF2aW5nIGRpc3Bh
dGNoIGF0IHRoZSB0ZXJtaW51cyBvZiBlYWNoIG9wY29kZS4KKyAgICAgICAgVGhhdCdzIG5lY2Vz
c2FyeSBiZWNhdXNlIFBvbHlKdW1wIGlzIG5vdCBjbG9uZWFibGUuIFRoZSBzdGF0ZSBvZiB0aGUg
aW50ZXJwcmV0ZXIgaXMKKyAgICAgICAgcmVwcmVzZW50ZWQgdXNpbmcgVmFyaWFibGVzIHRoYXQg
d2UgR2V0IGFuZCBTZXQsIHNvIGl0IHRlc3RzIEdldC9TZXQgYXMgd2VsbC4KKworICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9u
Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpqdW1wKToKKyAgICAg
ICAgKiBhc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxl
cjo6am1wX20pOgorICAgICAgICAqIGIzL0IzQmFzaWNCbG9jay5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpCYXNpY0Jsb2NrOjp1cGRhdGVQcmVkZWNlc3NvcnNBZnRlcik6CisgICAgICAgIChKU0M6
OkIzOjpCYXNpY0Jsb2NrOjppc0Nsb25lYWJsZSk6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Js
b2NrOjpkdW1wKToKKyAgICAgICAgKiBiMy9CM0Jhc2ljQmxvY2suaDoKKyAgICAgICAgKEpTQzo6
QjM6OkJhc2ljQmxvY2s6OmZyZXF1ZW5jeSk6CisgICAgICAgICogYjMvQjNDb21tb24uaDoKKyAg
ICAgICAgKEpTQzo6QjM6OmlzNjRCaXQpOgorICAgICAgICAqIGIzL0IzQ29udHJvbFZhbHVlLmg6
CisgICAgICAgICogYjMvQjNEYXRhU2VjdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkIzOjpEYXRh
U2VjdGlvbjo6RGF0YVNlY3Rpb24pOgorICAgICAgICAqIGIzL0IzRHVwbGljYXRlVGFpbHMuY3Bw
OgorICAgICAgICAqIGIzL0IzTG93ZXJNYWNyb3MuY3BwOgorICAgICAgICAqIGIzL0IzTG93ZXJU
b0Fpci5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okxvd2VyVG9BaXI6Omxvd2VyKToKKyAg
ICAgICAgKiBiMy9CM09wY29kZS5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgor
ICAgICAgICAqIGIzL0IzT3Bjb2RlLmg6CisgICAgICAgICogYjMvQjNQb2x5SnVtcFZhbHVlLmNw
cDogQWRkZWQuCisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjp+UG9seUp1bXBWYWx1
ZSk6CisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjphcHBlbmRTdWNjZXNzb3IpOgor
ICAgICAgICAoSlNDOjpCMzo6UG9seUp1bXBWYWx1ZTo6c2V0Q2FsbGJhY2tUYXNrKToKKyAgICAg
ICAgKEpTQzo6QjM6OlBvbHlKdW1wVmFsdWU6OmlzQ2xvbmVhYmxlKToKKyAgICAgICAgKEpTQzo6
QjM6OlBvbHlKdW1wVmFsdWU6OmR1bXBNZXRhKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1w
VmFsdWU6OmNsb25lSW1wbCk6CisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjpQb2x5
SnVtcFZhbHVlKToKKyAgICAgICAgKiBiMy9CM1BvbHlKdW1wVmFsdWUuaDogQWRkZWQuCisgICAg
ICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjphY2NlcHRzKToKKyAgICAgICAgKEpTQzo6QjM6
OlBvbHlKdW1wVmFsdWU6OnNldENhbGxiYWNrKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1w
VmFsdWU6OmNhbGxiYWNrVGFzayk6CisgICAgICAgICogYjMvQjNQcm9jZWR1cmUuY3BwOgorICAg
ICAgICAoSlNDOjpCMzo6UHJvY2VkdXJlOjpjbG9uZSk6CisgICAgICAgICogYjMvQjNQcm9jZWR1
cmUuaDoKKyAgICAgICAgKEpTQzo6QjM6OlByb2NlZHVyZTo6bGFzdFBoYXNlTmFtZSk6CisgICAg
ICAgIChKU0M6OkIzOjpQcm9jZWR1cmU6OmJ5cHJvZHVjdHMpOgorICAgICAgICAqIGIzL0IzUmVk
dWNlU3RyZW5ndGguY3BwOgorICAgICAgICAqIGIzL0IzVmFsaWRhdGUuY3BwOgorICAgICAgICAq
IGIzL0IzVmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6OmVmZmVjdHMpOgorICAg
ICAgICAoSlNDOjpCMzo6VmFsdWU6OmlzQ2xvbmVhYmxlKToKKyAgICAgICAgKEpTQzo6QjM6OlZh
bHVlOjprZXkpOgorICAgICAgICAqIGIzL0IzVmFsdWUuaDoKKyAgICAgICAgKiBiMy9haXIvQWly
Q29kZS5oOgorICAgICAgICAqIGIzL2Fpci9BaXJHZW5lcmF0ZS5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpBaXI6OmdlbmVyYXRlKToKKyAgICAgICAgKiBiMy9haXIvQWlySW5zdC5jcHA6CisgICAg
ICAgIChKU0M6OkIzOjpBaXI6Okluc3Q6Omhhc0FyZ0VmZmVjdHMpOgorICAgICAgICAoSlNDOjpC
Mzo6QWlyOjpJbnN0Ojppc0Nsb25lYWJsZSk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okluc3Q6
OmR1bXApOgorICAgICAgICAqIGIzL2Fpci9BaXJJbnN0Lmg6CisgICAgICAgICogYjMvYWlyL0Fp
ck9wY29kZS5vcGNvZGVzOgorICAgICAgICAqIGIzL3Rlc3RiMy5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpzaG91bGRCZVZlcmJvc2UpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN3aXRjaENoaWxs
RGl2KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RMYXRlUmVnaXN0ZXIpOgorICAgICAgICAoSlND
OjpCMzo6dGhyZWFkZWRJbnRlcnByZXRlclByaW50KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RU
aHJlYWRlZEludGVycHJldGVyKToKKyAgICAgICAgKEpTQzo6QjM6Onplcm8pOgorICAgICAgICAo
SlNDOjpCMzo6cnVuKToKKwogMjAxNi0wNi0yNCAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUu
Y29tPgogCiAgICAgICAgIEIzIHNob3VsZCBkaWUgc29vbmVyIGlmIGEgVmFsdWUgaGFzIHRoZSB3
cm9uZyBudW1iZXIgb2YgY2hpbGRyZW4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFr
ZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0
cy50eHQJKHJldmlzaW9uIDIwMjQ2OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxp
c3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTQ0LDYgKzE0NCw3IEBAIHNldChKYXZhU2NyaXB0
Q29yZV9TT1VSQ0VTCiAgICAgYjMvQjNQYXRjaHBvaW50VmFsdWUuY3BwCiAgICAgYjMvQjNQaGFz
ZVNjb3BlLmNwcAogICAgIGIzL0IzUGhpQ2hpbGRyZW4uY3BwCisgICAgYjMvQjNQb2x5SnVtcFZh
bHVlLmNwcAogICAgIGIzL0IzUHJvY2VkdXJlLmNwcAogICAgIGIzL0IzUHVyZUNTRS5jcHAKICAg
ICBiMy9CM1JlZHVjZURvdWJsZVRvRmxvYXQuY3BwCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkocmV2aXNpb24gMjAyNDY5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE5
ODYsNiArMTk4Niw4IEBACiAJCURDMTdFODFBMUM5QzkxRTkwMDhBNkFCMyAvKiBDQ2FsbEhlbHBl
cnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREMx
N0U4MTYxQzlDODAyQjAwOEE2QUIzIC8qIENDYWxsSGVscGVycy5jcHAgKi87IH07CiAJCURDMjE0
MzA3MUNBMzJFNTUwMDBBODg2OSAvKiBJQ1N0YXRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzIxNDMwNjFDQTMyRTUyMDAwQTg4NjkgLyogSUNTdGF0
cy5oICovOyB9OwogCQlEQzIxNDMwODFDQTMyRTU4MDAwQTg4NjkgLyogSUNTdGF0cy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzIxNDMwNTFDQTMy
RTUyMDAwQTg4NjkgLyogSUNTdGF0cy5jcHAgKi87IH07CisJCURDNDU0Qjg4MUNGRjZGRTcwMDRD
MThBRiAvKiBCM1BvbHlKdW1wVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gREM0NTRCODYxQ0ZGNkZFNTAwNEMxOEFGIC8qIEIzUG9seUp1bXBW
YWx1ZS5jcHAgKi87IH07CisJCURDNDU0Qjg5MUNGRjZGRUEwMDRDMThBRiAvKiBCM1BvbHlKdW1w
VmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERD
NDU0Qjg3MUNGRjZGRTUwMDRDMThBRiAvKiBCM1BvbHlKdW1wVmFsdWUuaCAqLzsgfTsKIAkJREM0
NTRCOEMxRDAwRTgyMjAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDNDU0QjhBMUQwMEU4MUYwMDRDMThBRiAv
KiBBaXJEdW1wQXNKUy5jcHAgKi87IH07CiAJCURDNDU0QjhEMUQwMEU4MjQwMDRDMThBRiAvKiBB
aXJEdW1wQXNKUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gREM0NTRCOEIxRDAwRTgxRjAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmggKi87IH07CiAJCURD
NjA1QjVEMUNFMjZFQTAwMDU5MzcxOCAvKiBQcm9maWxlckV2ZW50LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDNjA1QjU5MUNFMjZFOTgwMDU5Mzcx
OCAvKiBQcm9maWxlckV2ZW50LmNwcCAqLzsgfTsKQEAgLTQyMDUsNiArNDIwNyw4IEBACiAJCURD
MTdFODE2MUM5QzgwMkIwMDhBNkFCMyAvKiBDQ2FsbEhlbHBlcnMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ0NhbGxIZWxwZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJREMyMTQzMDUxQ0EzMkU1MjAwMEE4ODY5IC8qIElDU3RhdHMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSUNTdGF0cy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDMjE0MzA2MUNBMzJFNTIwMDBBODg2OSAvKiBJQ1N0YXRz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElDU3RhdHMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREM0NTRCODYxQ0ZGNkZFNTAwNEMxOEFGIC8qIEIzUG9seUp1
bXBWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBCM1BvbHlK
dW1wVmFsdWUuY3BwOyBwYXRoID0gYjMvQjNQb2x5SnVtcFZhbHVlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJREM0NTRCODcxQ0ZGNkZFNTAwNEMxOEFGIC8qIEIzUG9seUp1bXBW
YWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCM1BvbHlKdW1wVmFsdWUu
aDsgcGF0aCA9IGIzL0IzUG9seUp1bXBWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlEQzQ1NEI4QTFEMDBFODFGMDA0QzE4QUYgLyogQWlyRHVtcEFzSlMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQWlyRHVtcEFzSlMuY3BwOyBwYXRoID0gYjMv
YWlyL0FpckR1bXBBc0pTLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREM0NTRC
OEIxRDAwRTgxRjAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IEFpckR1bXBBc0pTLmg7IHBhdGggPSBiMy9haXIvQWlyRHVtcEFzSlMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREM2MDVCNTkxQ0UyNkU5ODAwNTkzNzE4IC8q
IFByb2ZpbGVyRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
UHJvZmlsZXJFdmVudC5jcHA7IHBhdGggPSBwcm9maWxlci9Qcm9maWxlckV2ZW50LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ3NTgsNiArNDc2Miw4IEBACiAJCQkJMEZFQzg0
RTAxQkRBQ0RBQzAwODBGRjc0IC8qIEIzUGhhc2VTY29wZS5oICovLAogCQkJCTBGMzczMDhBMUMw
QkQyOTEwMDA1MkJGQSAvKiBCM1BoaUNoaWxkcmVuLmNwcCAqLywKIAkJCQkwRjM3MzA4QjFDMEJE
MjkxMDAwNTJCRkEgLyogQjNQaGlDaGlsZHJlbi5oICovLAorCQkJCURDNDU0Qjg2MUNGRjZGRTUw
MDRDMThBRiAvKiBCM1BvbHlKdW1wVmFsdWUuY3BwICovLAorCQkJCURDNDU0Qjg3MUNGRjZGRTUw
MDRDMThBRiAvKiBCM1BvbHlKdW1wVmFsdWUuaCAqLywKIAkJCQkwRkVDODRFMTFCREFDREFDMDA4
MEZGNzQgLyogQjNQcm9jZWR1cmUuY3BwICovLAogCQkJCTBGRUM4NEUyMUJEQUNEQUMwMDgwRkY3
NCAvKiBCM1Byb2NlZHVyZS5oICovLAogCQkJCTBGRUM4NEUzMUJEQUNEQUMwMDgwRkY3NCAvKiBC
M1Byb2NlZHVyZUlubGluZXMuaCAqLywKQEAgLTcxMzcsNiArNzE0Myw3IEBACiAJCQkJMEY4Rjk0
NDExNjY3NjMzMjAwRDYxOTcxIC8qIENvZGVCbG9ja0hhc2guaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGQzk3RjM0MTgyMDIwRDcwMDJDOUIyNiAvKiBDb2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG9p
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRDhBMzE0MTdENDMyNkMwMENBMkM0MCAvKiBDb2Rl
QmxvY2tTZXQuaCBpbiBIZWFkZXJzICovLAorCQkJCURDNDU0Qjg5MUNGRjZGRUEwMDRDMThBRiAv
KiBCM1BvbHlKdW1wVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOTZFQkIzMTY2NzZFRjYw
MDhCQURFMyAvKiBDb2RlQmxvY2tXaXRoSklUVHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc3
RjE4MjIxNjQwODhCMjAwNjQwQTQ3IC8qIENvZGVDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTlDQzBCNjMxOEJFOTk1MDAwNkNFQkNDIC8qIENvZGVHZW5lcmF0b3JSZXBsYXlJbnB1dHMucHkg
aW4gSGVhZGVycyAqLywKQEAgLTk0MTcsNiArOTQyNCw3IEBACiAJCQkJNzA5RkI4NkIxQUUzMzVD
NjAwMzlEMDY5IC8qIFdlYWtTZXRQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkE0
RUM5MEIxODYwRDZDMjAwOTRGNzgyIC8qIFdyaXRlQmFycmllckJ1ZmZlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwRkM4MTUwQjE0MDQzQzBFMDBDRkE2MDMgLyogV3JpdGVCYXJyaWVyU3VwcG9y
dC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlEQzQ1NEI4ODFDRkY2RkU3MDA0QzE4QUYgLyogQjNQ
b2x5SnVtcFZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3RTVBQjNBMTc5OUU0QjIwMEQy
ODMzRCAvKiBYODZEaXNhc3NlbWJsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYyQkJEOTcx
QzVGRjNGNTAwMjNFRjIzIC8qIEIzVmFyaWFibGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODYz
QzZEOUMxNTIxMTExQTAwNTg1RTRFIC8qIFlhcnJDYW5vbmljYWxpemVVQ1MyLmNwcCBpbiBTb3Vy
Y2VzICovLApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
Ymxlclg4NkNvbW1vbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaAkocmV2aXNpb24gMjAyNDY5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yMjYyLDYgKzIyNjIsMTIgQEAgcHVibGljOgogICAgICAgICBtX2Fz
c2VtYmxlci5qbXBfbShhZGRyZXNzLm9mZnNldCwgYWRkcmVzcy5iYXNlKTsKICAgICB9CiAKKyAg
ICAvLyBBZGRyZXNzIGlzIGEgbWVtb3J5IGxvY2F0aW9uIGNvbnRhaW5pbmcgdGhlIGFkZHJlc3Mg
dG8ganVtcCB0bworICAgIHZvaWQganVtcChCYXNlSW5kZXggYWRkcmVzcykKKyAgICB7CisgICAg
ICAgIG1fYXNzZW1ibGVyLmptcF9tKGFkZHJlc3Mub2Zmc2V0LCBhZGRyZXNzLmJhc2UsIGFkZHJl
c3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUpOworICAgIH0KKwogCiAgICAgLy8gQXJpdGhtZXRpYyBj
b250cm9sIGZsb3cgb3BlcmF0aW9uczoKICAgICAvLwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oCShyZXZpc2lvbiAyMDI0NjkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xOTgzLDYgKzE5ODMsMTEgQEAgcHVibGljOgogICAgICAgICBtX2Zvcm1hdHRlci5v
bmVCeXRlT3AoT1BfR1JPVVA1X0V2LCBHUk9VUDVfT1BfSk1QTiwgYmFzZSwgb2Zmc2V0KTsKICAg
ICB9CiAgICAgCisgICAgdm9pZCBqbXBfbShpbnQgb2Zmc2V0LCBSZWdpc3RlcklEIGJhc2UsIFJl
Z2lzdGVySUQgaW5kZXgsIGludCBzY2FsZSkKKyAgICB7CisgICAgICAgIG1fZm9ybWF0dGVyLm9u
ZUJ5dGVPcChPUF9HUk9VUDVfRXYsIEdST1VQNV9PUF9KTVBOLCBiYXNlLCBpbmRleCwgc2NhbGUs
IG9mZnNldCk7CisgICAgfQorICAgIAogI2lmICFDUFUoWDg2XzY0KQogICAgIHZvaWQgam1wX20o
Y29uc3Qgdm9pZCogYWRkcmVzcykKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNCYXNpY0Jsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNCYXNpY0Jsb2NrLmNwcAkocmV2aXNpb24gMjAyNDY5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzQmFzaWNCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwOSw2ICsxMDks
MTUgQEAgdm9pZCBCYXNpY0Jsb2NrOjp1cGRhdGVQcmVkZWNlc3NvcnNBZnRlcgogICAgIEIzOjp1
cGRhdGVQcmVkZWNlc3NvcnNBZnRlcih0aGlzKTsKIH0KIAorYm9vbCBCYXNpY0Jsb2NrOjppc0Ns
b25lYWJsZSgpIGNvbnN0Cit7CisgICAgZm9yIChWYWx1ZSogdmFsdWUgOiAqdGhpcykgeworICAg
ICAgICBpZiAoIXZhbHVlLT5pc0Nsb25lYWJsZSgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBCYXNpY0Jsb2NrOjpkdW1wKFBy
aW50U3RyZWFtJiBvdXQpIGNvbnN0CiB7CiAgICAgb3V0LnByaW50KGR1bXBQcmVmaXgsIG1faW5k
ZXgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2suaAkocmV2aXNp
b24gMjAyNDY5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xMTUsNiArMTE1LDggQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRl
UHJlZGVjZXNzb3JzQWZ0ZXIoKTsKIAogICAgIGRvdWJsZSBmcmVxdWVuY3koKSBjb25zdCB7IHJl
dHVybiBtX2ZyZXF1ZW5jeTsgfQorICAgIAorICAgIGJvb2wgaXNDbG9uZWFibGUoKSBjb25zdDsK
IAogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0OwogICAgIHZvaWQgZGVlcER1bXAo
Y29uc3QgUHJvY2VkdXJlJiwgUHJpbnRTdHJlYW0mKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0NvbW1vbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM0NvbW1vbi5oCShyZXZpc2lvbiAyMDI0NjkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNDb21tb24uaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCw2ICsyOCw4IEBACiAKICNpZiBF
TkFCTEUoQjNfSklUKQogCisjaW5jbHVkZSAiSlNFeHBvcnRNYWNyb3MuaCIKKwogbmFtZXNwYWNl
IEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKIGlubGluZSBib29sIGlzNjRCaXQoKSB7IHJldHVybiBz
aXplb2Yodm9pZCopID09IDg7IH0KQEAgLTM4LDcgKzQwLDcgQEAgZW51bSBCM0NvbXBsaXRhdGlv
bk1vZGUgewogICAgIEFpck1vZGUKIH07CiAKLWJvb2wgc2hvdWxkRHVtcElSKEIzQ29tcGxpdGF0
aW9uTW9kZSk7CitKU19FWFBPUlRfUFJJVkFURSBib29sIHNob3VsZER1bXBJUihCM0NvbXBsaXRh
dGlvbk1vZGUpOwogYm9vbCBzaG91bGREdW1wSVJBdEVhY2hQaGFzZShCM0NvbXBsaXRhdGlvbk1v
ZGUpOwogYm9vbCBzaG91bGRWYWxpZGF0ZUlSKCk7CiBib29sIHNob3VsZFZhbGlkYXRlSVJBdEVh
Y2hQaGFzZSgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29udHJvbFZhbHVl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29udHJvbFZhbHVl
LmgJKHJldmlzaW9uIDIwMjQ2OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnRy
b2xWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Niw5ICs0NiwxMCBAQCBwdWJsaWM6CiAgICAg
ICAgIGNhc2UgUmV0dXJuOgogICAgICAgICBjYXNlIE9vcHM6CiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKLSAgICAgICAgY2FzZSBTd2l0Y2g6IAotICAgICAgICAgICAgLy8gVGhpcyBpcyBoZXJl
IGJlY2F1c2UgU3dpdGNoVmFsdWUgaXMgYSBzdWJjbGFzcyBvZiBDb250cm9sVmFsdWUsIHNvIHdl
IHdhbnQKLSAgICAgICAgICAgIC8vIHN3aXRjaFZhbHVlLT5hczxDb250cm9sVmFsdWU+KCkgdG8g
cmV0dXJuIG5vbi1udWxsLgorICAgICAgICBjYXNlIFN3aXRjaDoKKyAgICAgICAgY2FzZSBQb2x5
SnVtcDoKKyAgICAgICAgICAgIC8vIFRoaXMgaXMgaGVyZSBiZWNhdXNlIFN3aXRjaFZhbHVlIGFu
ZCBQb2x5SnVtcFZhbHVlIGFyZSBzdWJjbGFzc2VzIG9mIENvbnRyb2xWYWx1ZSwKKyAgICAgICAg
ICAgIC8vIHNvIHdlIHdhbnQgdGhpbmdzIGxpa2Ugc3dpdGNoVmFsdWUtPmFzPENvbnRyb2xWYWx1
ZT4oKSB0byByZXR1cm4gbm9uLW51bGwuCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAg
ICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTc3LDcgKzc4LDcgQEAg
cHVibGljOgogICAgIH0KIAogICAgIGJvb2wgcmVwbGFjZVN1Y2Nlc3NvcihCYXNpY0Jsb2NrKiBm
cm9tLCBCYXNpY0Jsb2NrKiB0byk7Ci0KKyAgICAKICAgICBjb25zdCBGcmVxdWVudGVkQmxvY2sm
IHRha2VuKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChvcGNvZGUoKSA9PSBKdW1wIHx8
IG9wY29kZSgpID09IEJyYW5jaCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNE
YXRhU2VjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
RGF0YVNlY3Rpb24uY3BwCShyZXZpc2lvbiAyMDI0NjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNEYXRhU2VjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzEsNyArMzEsNyBAQAogbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKIERhdGFTZWN0aW9uOjpEYXRhU2VjdGlvbihz
aXplX3Qgc2l6ZSkKLSAgICA6IG1fZGF0YShmYXN0TWFsbG9jKHNpemUpKQorICAgIDogbV9kYXRh
KGZhc3RaZXJvZWRNYWxsb2Moc2l6ZSkpCiAgICAgLCBtX3NpemUoc2l6ZSkKIHsKIH0KSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0R1cGxpY2F0ZVRhaWxzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEdXBsaWNhdGVUYWlscy5jcHAJKHJldmlz
aW9uIDIwMjQ2OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0R1cGxpY2F0ZVRhaWxz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzIsOSArNzIsMTEgQEAgcHVibGljOgogICAgICAgICBJ
bmRleFNldDxCYXNpY0Jsb2NrPiBjYW5kaWRhdGVzOwogCiAgICAgICAgIGZvciAoQmFzaWNCbG9j
ayogYmxvY2sgOiBtX3Byb2MpIHsKLSAgICAgICAgICAgIGlmIChibG9jay0+c2l6ZSgpID4gbV9t
YXhTaXplIHx8IGJsb2NrLT5udW1TdWNjZXNzb3JzKCkgPiBtX21heFN1Y2Nlc3NvcnMpCisgICAg
ICAgICAgICBpZiAoYmxvY2stPnNpemUoKSA+IG1fbWF4U2l6ZQorICAgICAgICAgICAgICAgIHx8
IGJsb2NrLT5udW1TdWNjZXNzb3JzKCkgPiBtX21heFN1Y2Nlc3NvcnMKKyAgICAgICAgICAgICAg
ICB8fCAhYmxvY2stPmlzQ2xvbmVhYmxlKCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7Ci0K
KyAgICAgICAgICAgIAogICAgICAgICAgICAgY2FuZGlkYXRlcy5hZGQoYmxvY2spOwogICAgICAg
ICB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyTWFjcm9zLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlck1hY3Jvcy5jcHAJ
KHJldmlzaW9uIDIwMjQ2OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyTWFj
cm9zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCw3ICszNCw5IEBACiAjaW5jbHVkZSAiQjNDb25zdFB0
clZhbHVlLmgiCiAjaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKICNpbmNsdWRlICJCM0luc2Vy
dGlvblNldElubGluZXMuaCIKKyNpbmNsdWRlICJCM01lbW9yeVZhbHVlLmgiCiAjaW5jbHVkZSAi
QjNQaGFzZVNjb3BlLmgiCisjaW5jbHVkZSAiQjNQb2x5SnVtcFZhbHVlLmgiCiAjaW5jbHVkZSAi
QjNQcm9jZWR1cmVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNTd2l0Y2hWYWx1ZS5oIgogI2luY2x1
ZGUgIkIzVXBzaWxvblZhbHVlLmgiCkBAIC0yNzUsOCArMjc3LDk1IEBAIHByaXZhdGU6CiAgICAg
ICAgIGNvbnN0IFZlY3RvcjxTd2l0Y2hDYXNlPiYgY2FzZXMsIHVuc2lnbmVkIHN0YXJ0LCBib29s
IGhhcmRTdGFydCwgdW5zaWduZWQgZW5kLAogICAgICAgICBCYXNpY0Jsb2NrKiBiZWZvcmUpCiAg
ICAgewotICAgICAgICAvLyBGSVhNRTogQWRkIHRhYmxlLWJhc2VkIHN3aXRjaCBsb3dlcmluZy4K
LSAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTE0
MQorICAgICAgICBWYWx1ZSogY2hpbGQgPSBtX3ZhbHVlLT5jaGlsZCgwKTsKKyAgICAgICAgVHlw
ZSB0eXBlID0gY2hpbGQtPnR5cGUoKTsKKyAgICAgICAgRnJlcXVlbnRlZEJsb2NrIGZhbGxUaHJv
dWdoID0gbV92YWx1ZS0+YXM8U3dpdGNoVmFsdWU+KCktPmZhbGxUaHJvdWdoKCk7CisgICAgICAg
IAorICAgICAgICAvLyBJdCdzIGEgZ29vZCBpZGVhIHRvIHVzZSBhIHRhYmxlLWJhc2VkIHN3aXRj
aCBpbiBzb21lIGNhc2VzOiB0aGUgbnVtYmVyIG9mIGNhc2VzIGhhcyB0byBiZQorICAgICAgICAv
LyBsYXJnZSBlbm91Z2ggYW5kIHRoZXkgaGF2ZSB0byBiZSBkZW5zZSBlbm91Z2guIFRoaXMgY291
bGQgcHJvYmFibHkgYmUgaW1wcm92ZWQgYSBsb3QuIEZvcgorICAgICAgICAvLyBleGFtcGxlLCB3
ZSBjb3VsZCBzdGlsbCB1c2UgYSBqdW1wIHRhYmxlIGluIGNhc2VzIHdoZXJlIHRoZSBpbnB1dHMg
YXJlIHNwYXJzZSBzbyBsb25nIGFzIHdlCisgICAgICAgIC8vIHNoaWZ0IG9mZiB0aGUgdW5pbnRl
cmVzdGluZyBiaXRzLiBPbiB0aGUgb3RoZXIgaGFuZCwgaXQncyBub3QgY2xlYXIgdGhhdCB0aGlz
IHdvdWxkCisgICAgICAgIC8vIGFjdHVhbGx5IGJlIGFueSBiZXR0ZXIgdGhhbiB3aGF0IHdlIGhh
dmUgZG9uZSBoZXJlIGFuZCBpdCdzIG5vdCBjbGVhciB0aGF0IGl0IHdvdWxkIGJlCisgICAgICAg
IC8vIGJldHRlciB0aGFuIGEgYmluYXJ5IHN3aXRjaC4KKyAgICAgICAgY29uc3QgdW5zaWduZWQg
bWluQ2FzZXNGb3JUYWJsZSA9IDc7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGRlbnNpdHlMaW1p
dCA9IDQ7CisgICAgICAgIGlmIChlbmQgLSBzdGFydCA+PSBtaW5DYXNlc0ZvclRhYmxlKSB7Cisg
ICAgICAgICAgICBpbnQ2NF90IGZpcnN0VmFsdWUgPSBjYXNlc1tzdGFydF0uY2FzZVZhbHVlKCk7
CisgICAgICAgICAgICBpbnQ2NF90IGxhc3RWYWx1ZSA9IGNhc2VzW2VuZCAtIDFdLmNhc2VWYWx1
ZSgpOworICAgICAgICAgICAgaWYgKChsYXN0VmFsdWUgLSBmaXJzdFZhbHVlICsgMSkgLyBjYXNl
cy5zaXplKCkgPCBkZW5zaXR5TGltaXQpIHsKKyAgICAgICAgICAgICAgICBCYXNpY0Jsb2NrKiBz
d2l0Y2hCbG9jayA9IG1fYmxvY2tJbnNlcnRpb25TZXQuaW5zZXJ0QWZ0ZXIobV9ibG9jayk7Cisg
ICAgICAgICAgICAgICAgVmFsdWUqIGluZGV4ID0gYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+KAor
ICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIFN1YiwgbV9vcmlnaW4sIGNoaWxkLAorICAgICAg
ICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZEludENvbnN0YW50KG1fcHJvYywgbV9vcmlnaW4s
IHR5cGUsIGZpcnN0VmFsdWUpKTsKKyAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIEJyYW5jaCwgbV9vcmln
aW4sCisgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAg
ICAgICAgICAgICAgICAgICAgIG1fcHJvYywgQWJvdmUsIG1fb3JpZ2luLCBpbmRleCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kSW50Q29uc3RhbnQobV9wcm9jLCBtX29y
aWdpbiwgdHlwZSwgbGFzdFZhbHVlIC0gZmlyc3RWYWx1ZSkpLAorICAgICAgICAgICAgICAgICAg
ICBmYWxsVGhyb3VnaCwgRnJlcXVlbnRlZEJsb2NrKHN3aXRjaEJsb2NrKSk7CisgICAgICAgICAg
ICAgICAgCisgICAgICAgICAgICAgICAgc2l6ZV90IHRhYmxlU2l6ZSA9IGxhc3RWYWx1ZSAtIGZp
cnN0VmFsdWUgKyAxOworICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0cioganVt
cFRhYmxlID0gYml0d2lzZV9jYXN0PE1hY3JvQXNzZW1ibGVyQ29kZVB0cio+KAorICAgICAgICAg
ICAgICAgICAgICBtX3Byb2MuYWRkRGF0YVNlY3Rpb24oc2l6ZW9mKE1hY3JvQXNzZW1ibGVyQ29k
ZVB0cikgKiB0YWJsZVNpemUpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBW
YWx1ZSogYmFzZSA9IHN3aXRjaEJsb2NrLT5hcHBlbmRJbnRDb25zdGFudCgKKyAgICAgICAgICAg
ICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwgcG9pbnRlclR5cGUoKSwgYml0d2lzZV9jYXN0PGlu
dHB0cl90PihqdW1wVGFibGUpKTsKKyAgICAgICAgICAgICAgICBpZiAoaW5kZXgtPnR5cGUoKSAh
PSBiYXNlLT50eXBlKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGluZGV4LT50eXBlKCkg
PT0gSW50MzIpCisgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9IHN3aXRjaEJsb2NrLT5h
cHBlbmROZXc8VmFsdWU+KG1fcHJvYywgWkV4dDMyLCBtX29yaWdpbiwgaW5kZXgpOworICAgICAg
ICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9IHN3aXRj
aEJsb2NrLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgVHJ1bmMsIG1fb3JpZ2luLCBpbmRleCk7
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGluZGV4ID0gc3dpdGNoQmxvY2st
PmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgTXVsLCBtX29y
aWdpbiwgaW5kZXgsCisgICAgICAgICAgICAgICAgICAgIHN3aXRjaEJsb2NrLT5hcHBlbmRJbnRD
b25zdGFudCgKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgbV9vcmlnaW4sIHBvaW50
ZXJUeXBlKCksIHNpemVvZihNYWNyb0Fzc2VtYmxlckNvZGVQdHIpKSk7CisgICAgICAgICAgICAg
ICAgVmFsdWUqIHB0ciA9IHN3aXRjaEJsb2NrLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgQWRk
LCBtX29yaWdpbiwgYmFzZSwgaW5kZXgpOworICAgICAgICAgICAgICAgIFZhbHVlKiBqdW1wVGFy
Z2V0ID0KKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoQmxvY2stPmFwcGVuZE5ldzxNZW1vcnlW
YWx1ZT4obV9wcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBtX29yaWdpbiwgcHRyKTsKKyAgICAg
ICAgICAgICAgICBQb2x5SnVtcFZhbHVlKiBwb2x5SnVtcCA9CisgICAgICAgICAgICAgICAgICAg
IHN3aXRjaEJsb2NrLT5hcHBlbmROZXc8UG9seUp1bXBWYWx1ZT4obV9wcm9jLCBtX29yaWdpbiwg
anVtcFRhcmdldCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgQml0VmVjdG9y
IGhhbmRsZWRJbmRpY2VzOworICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IHN0YXJ0
OyBpIDwgZW5kOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrIGJs
b2NrID0gY2FzZXNbaV0udGFyZ2V0KCk7CisgICAgICAgICAgICAgICAgICAgIGludDY0X3QgdmFs
dWUgPSBjYXNlc1tpXS5jYXNlVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgcG9seUp1bXAt
PmFwcGVuZFN1Y2Nlc3NvcihibG9jayk7CisgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbmRl
eCA9IHZhbHVlIC0gZmlyc3RWYWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUKCFoYW5k
bGVkSW5kaWNlcy5nZXQoaW5kZXgpKTsKKyAgICAgICAgICAgICAgICAgICAgaGFuZGxlZEluZGlj
ZXMuc2V0KGluZGV4KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAg
ICAgICAgICAgICAgYm9vbCBoYXNVbmhhbmRsZWRJbmRleCA9IGZhbHNlOworICAgICAgICAgICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB0YWJsZVNpemU7ICsraSkgeworICAgICAgICAg
ICAgICAgICAgICBpZiAoIWhhbmRsZWRJbmRpY2VzLmdldChpKSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgaGFzVW5oYW5kbGVkSW5kZXggPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGhhc1VuaGFuZGxlZEluZGV4KQorICAg
ICAgICAgICAgICAgICAgICBwb2x5SnVtcC0+YXBwZW5kU3VjY2Vzc29yKGZhbGxUaHJvdWdoKTsK
KyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBwb2x5SnVtcC0+c2V0Q2FsbGJhY2so
CisgICAgICAgICAgICAgICAgICAgIFs9XSAoY29uc3QgVmVjdG9yPE1hY3JvQXNzZW1ibGVyQ29k
ZVB0cj4mIHBvaW50ZXJzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgcG9pbnRl
ckluZGV4ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoc2l6ZV90IGluZGV4IDog
aGFuZGxlZEluZGljZXMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAganVtcFRhYmxlW2lu
ZGV4XSA9IHBvaW50ZXJzW3BvaW50ZXJJbmRleCsrXTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IAorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGhhc1VuaGFuZGxlZEluZGV4KSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB0YWJsZVNpemU7
ICsraSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWhhbmRsZWRJbmRp
Y2VzLmdldChpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGp1bXBUYWJs
ZVtpXSA9IHBvaW50ZXJzW3BvaW50ZXJJbmRleF07CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50ZXJJbmRleCsrOworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAg
ICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChwb2ludGVySW5kZXggPT0gcG9pbnRlcnMuc2l6
ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgICAgIAogICAgICAgICAvLyBTZWUgY29tbWVu
dHMgaW4gaml0L0JpbmFyeVN3aXRjaC5jcHAgZm9yIGEganVzdGlmaWNhdGlvbiBvZiB0aGlzIGFs
Z29yaXRobS4gVGhlIG9ubHkKICAgICAgICAgLy8gdGhpbmcgd2UgZG8gZGlmZmVyZW50bHkgaXMg
dGhhdCB3ZSBkb24ndCB1c2UgcmFuZG9tbmVzcy4KQEAgLTMwNywyMiArMzk2LDE5IEBAIHByaXZh
dGU6CiAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKICAg
ICAgICAgICAgICAgICAgICAgbV9wcm9jLCBCcmFuY2gsIG1fb3JpZ2luLAogICAgICAgICAgICAg
ICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4oCi0gICAgICAgICAgICAgICAgICAgICAg
ICBtX3Byb2MsIEVxdWFsLCBtX29yaWdpbiwgbV92YWx1ZS0+Y2hpbGQoMCksCisgICAgICAgICAg
ICAgICAgICAgICAgICBtX3Byb2MsIEVxdWFsLCBtX29yaWdpbiwgY2hpbGQsCiAgICAgICAgICAg
ICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZEludENvbnN0YW50KAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1fcHJvYywgbV9vcmlnaW4sIG1fdmFsdWUtPmNoaWxkKDApLT50eXBlKCks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwgdHlwZSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlc1tzdGFydCArIGldLmNhc2VWYWx1ZSgpKSks
CiAgICAgICAgICAgICAgICAgICAgIGNhc2VzW3N0YXJ0ICsgaV0udGFyZ2V0KCksIEZyZXF1ZW50
ZWRCbG9jayhuZXh0Q2hlY2spKTsKIAogICAgICAgICAgICAgICAgIGJlZm9yZSA9IG5leHRDaGVj
azsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgaWYgKGFsbENvbnNlY3V0aXZlKSB7Ci0g
ICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAg
ICAgICAgICAgICAgbV9wcm9jLCBKdW1wLCBtX29yaWdpbiwgY2FzZXNbZW5kIC0gMV0udGFyZ2V0
KCkpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAotICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIEp1bXAsIG1f
b3JpZ2luLCBtX3ZhbHVlLT5hczxTd2l0Y2hWYWx1ZT4oKS0+ZmFsbFRocm91Z2goKSk7Ci0gICAg
ICAgICAgICB9CisgICAgICAgICAgICBpZiAoYWxsQ29uc2VjdXRpdmUpCisgICAgICAgICAgICAg
ICAgYmVmb3JlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihtX3Byb2MsIEp1bXAsIG1fb3JpZ2lu
LCBjYXNlc1tlbmQgLSAxXS50YXJnZXQoKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgYmVmb3JlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihtX3Byb2MsIEp1bXAsIG1fb3Jp
Z2luLCBmYWxsVGhyb3VnaCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIApAQCAt
MzM0LDkgKzQyMCw5IEBAIHByaXZhdGU6CiAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCiAgICAgICAgICAgICBtX3Byb2MsIEJyYW5jaCwgbV9vcmlnaW4sCiAgICAgICAg
ICAgICBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4oCi0gICAgICAgICAgICAgICAgbV9wcm9jLCBM
ZXNzVGhhbiwgbV9vcmlnaW4sIG1fdmFsdWUtPmNoaWxkKDApLAorICAgICAgICAgICAgICAgIG1f
cHJvYywgTGVzc1RoYW4sIG1fb3JpZ2luLCBjaGlsZCwKICAgICAgICAgICAgICAgICBiZWZvcmUt
PmFwcGVuZEludENvbnN0YW50KAotICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIG1fb3JpZ2lu
LCBtX3ZhbHVlLT5jaGlsZCgwKS0+dHlwZSgpLAorICAgICAgICAgICAgICAgICAgICBtX3Byb2Ms
IG1fb3JpZ2luLCB0eXBlLAogICAgICAgICAgICAgICAgICAgICBjYXNlc1ttZWRpYW5JbmRleF0u
Y2FzZVZhbHVlKCkpKSwKICAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhsZWZ0KSwgRnJlcXVl
bnRlZEJsb2NrKHJpZ2h0KSk7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xv
d2VyVG9BaXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xv
d2VyVG9BaXIuY3BwCShyZXZpc2lvbiAyMDI0NjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNMb3dlclRvQWlyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU1LDcgKzE1NSw2IEBAIHB1
YmxpYzoKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgdGhl
IHN1Y2Nlc3NvcnMgYXJlIHNldCB1cCBjb3JyZWN0bHkuCi0gICAgICAgICAgICBBU1NFUlQoYmxv
Y2stPnN1Y2Nlc3NvcnMoKS5zaXplKCkgPD0gMik7CiAgICAgICAgICAgICBmb3IgKEIzOjpGcmVx
dWVudGVkQmxvY2sgc3VjY2Vzc29yIDogYmxvY2stPnN1Y2Nlc3NvcnMoKSkgewogICAgICAgICAg
ICAgICAgIG1fYmxvY2tUb0Jsb2NrW2Jsb2NrXS0+c3VjY2Vzc29ycygpLmFwcGVuZCgKICAgICAg
ICAgICAgICAgICAgICAgQWlyOjpGcmVxdWVudGVkQmxvY2sobV9ibG9ja1RvQmxvY2tbc3VjY2Vz
c29yLmJsb2NrKCldLCBzdWNjZXNzb3IuZnJlcXVlbmN5KCkpKTsKQEAgLTI0NDEsNiArMjQ0MCwx
NiBAQCBwcml2YXRlOgogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CisgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBCMzo6UG9seUp1bXA6IHsKKyAgICAgICAg
ICAgIEFyZ1Byb21pc2UgYWRkciA9IGxvYWRQcm9taXNlKG1fdmFsdWUtPmNoaWxkKDApKTsKKyAg
ICAgICAgICAgIGlmIChpc1ZhbGlkRm9ybShBaXI6OlBvbHlKdW1wLCBhZGRyLmtpbmQoKSkpIHsK
KyAgICAgICAgICAgICAgICBhcHBlbmQoQWlyOjpQb2x5SnVtcCwgYWRkci5jb25zdW1lKCp0aGlz
KSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
YXBwZW5kKEFpcjo6UG9seUp1bXAsIHRtcChtX3ZhbHVlLT5jaGlsZCgwKSkpOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CiAKICAgICAgICAgY2FzZSBCMzo6T29wczogewogICAgICAg
ICAgICAgYXBwZW5kKEFpcjo6T29wcyk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNPcGNvZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09w
Y29kZS5jcHAJKHJldmlzaW9uIDIwMjQ2OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M09wY29kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5MCw2ICsyOTAsOSBAQCB2b2lkIHByaW50
SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgT3BjCiAgICAgY2FzZSBTd2l0Y2g6CiAgICAgICAg
IG91dC5wcmludCgiU3dpdGNoIik7CiAgICAgICAgIHJldHVybjsKKyAgICBjYXNlIFBvbHlKdW1w
OgorICAgICAgICBvdXQucHJpbnQoIlBvbHlKdW1wIik7CisgICAgICAgIHJldHVybjsKICAgICBj
YXNlIFJldHVybjoKICAgICAgICAgb3V0LnByaW50KCJSZXR1cm4iKTsKICAgICAgICAgcmV0dXJu
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmgJKHJldmlzaW9uIDIwMjQ2OSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yMTYsNiArMjE2LDEzIEBAIGVudW0gT3Bjb2RlIDogaW50MTZfdCB7CiAKICAgICAvLyBTd2l0
Y2guIFN3aXRjaGVzIG92ZXIgZWl0aGVyIEludDMyIG9yIEludDY0LiBVc2VzIHRoZSBTd2l0Y2hW
YWx1ZSBjbGFzcy4KICAgICBTd2l0Y2gsCisgICAgCisgICAgLy8gSnVtcCB0byB0aGUgZ2l2ZW4g
YWRkcmVzcy4gVGhlIGNvbXBpbGVyIGFzc3VtZXMgdGhhdCB0aGlzIHdpbGwganVtcCB0byBvbmUg
b2YgdGhlIHN1cHBsaWVkCisgICAgLy8gc3VjY2Vzc29ycywgYnV0IHdpbGwgbWFrZSBhYnNvbHV0
ZWx5IG5vIGFzc3VtcHRpb25zIGFib3V0IHdoaWNoLiBJdCdzIGVudGlyZWx5IHVwIHRvIHRoZSB1
c2VyCisgICAgLy8gdG8gYXJyYW5nZSBmb3IgdGhlIGp1bXAgdG8ganVtcCB0byBvbmUgb2YgdGhv
c2Ugc3VjY2Vzc29ycy4gVGhpcyBjYW5ub3QgdHJhcCBvciBkbyBhbnl0aGluZyBidXQKKyAgICAv
LyBqdW1wIHRvIG9uZSBvZiB0aGUgc3VjY2Vzc29yczsgaWYgaXQgZG9lcyBhbnl0aGluZyBlbHNl
IHRoZW4gZGVtb25zIHdpbGwgY29tZSBvdXQgb2YgdGhlIHVzZXIncworICAgIC8vIG5vc2UuIAor
ICAgIFBvbHlKdW1wLAogCiAgICAgLy8gUmV0dXJuLiBOb3RlIHRoYXQgQjMgcHJvY2VkdXJlcyBk
b24ndCBrbm93IHRoZWlyIHJldHVybiB0eXBlLCBzbyB0aGlzIGNhbiBqdXN0IHJldHVybiBhbnkK
ICAgICAvLyB0eXBlLiBVc2VzIHRoZSBDb250cm9sVmFsdWUgY2xhc3MuCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNQb2x5SnVtcFZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQb2x5SnVtcFZhbHVlLmNwcAkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BvbHlKdW1wVmFsdWUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkIzUG9seUp1bXBWYWx1
ZS5oIgorCisjaWYgRU5BQkxFKEIzX0pJVCkKKworI2luY2x1ZGUgIkIzQmFzaWNCbG9jay5oIgor
CituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKKworUG9seUp1bXBWYWx1ZTo6flBvbHlK
dW1wVmFsdWUoKQoreworfQorCit2b2lkIFBvbHlKdW1wVmFsdWU6OmFwcGVuZFN1Y2Nlc3Nvcihj
b25zdCBGcmVxdWVudGVkQmxvY2smIGJsb2NrKQoreworICAgIG1fc3VjY2Vzc29ycy5hcHBlbmQo
YmxvY2spOworfQorCit2b2lkIFBvbHlKdW1wVmFsdWU6OnNldENhbGxiYWNrVGFzayhSZWZQdHI8
U2hhcmVkVGFzazxDYWxsYmFja0Z1bmN0aW9uVHlwZT4+IHRhc2spCit7CisgICAgbV90YXNrID0g
dGFzazsKK30KKworYm9vbCBQb2x5SnVtcFZhbHVlOjppc0Nsb25lYWJsZSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIFBvbHlKdW1wVmFsdWU6OmR1bXBNZXRhKENvbW1h
UHJpbnRlciYgY29tbWEsIFByaW50U3RyZWFtJiBvdXQpIGNvbnN0Cit7CisgICAgQ29udHJvbFZh
bHVlOjpkdW1wTWV0YShjb21tYSwgb3V0KTsKKyAgICBvdXQucHJpbnQoY29tbWEsICJ0YXNrID0g
IiwgUmF3UG9pbnRlcihtX3Rhc2suZ2V0KCkpKTsKK30KKworVmFsdWUqIFBvbHlKdW1wVmFsdWU6
OmNsb25lSW1wbCgpIGNvbnN0Cit7CisgICAgZGF0YUxvZygiRkFUQUw6IEF0dGVtcHQgdG8gY2xv
bmUgbm9uLWNsb25lYWJsZSBQb2x5SnVtcFZhbHVlIVxuIik7CisgICAgUkVMRUFTRV9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKK30KKworUG9seUp1bXBWYWx1ZTo6UG9seUp1bXBWYWx1ZShPcmlnaW4g
b3JpZ2luLCBWYWx1ZSogY2hpbGQpCisgICAgOiBDb250cm9sVmFsdWUoUG9seUp1bXAsIFZvaWQs
IG9yaWdpbiwgY2hpbGQpCit7Cit9CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMworCisjZW5k
aWYgLy8gRU5BQkxFKEIzX0pJVCkKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
UG9seUp1bXBWYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1BvbHlKdW1wVmFsdWUuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1BvbHlKdW1wVmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDc2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgQjNQb2x5
SnVtcFZhbHVlX2gKKyNkZWZpbmUgQjNQb2x5SnVtcFZhbHVlX2gKKworI2lmIEVOQUJMRShCM19K
SVQpCisKKyNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgorI2luY2x1ZGUgPHd0Zi9TaGFyZWRU
YXNrLmg+CisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeworCitjbGFzcyBQb2x5SnVt
cFZhbHVlIDogcHVibGljIENvbnRyb2xWYWx1ZSB7CitwdWJsaWM6CisgICAgc3RhdGljIGJvb2wg
YWNjZXB0cyhPcGNvZGUgb3Bjb2RlKSB7IHJldHVybiBvcGNvZGUgPT0gUG9seUp1bXA7IH0KKyAg
ICAKKyAgICB+UG9seUp1bXBWYWx1ZSgpOworICAgIAorICAgIEpTX0VYUE9SVF9QUklWQVRFIHZv
aWQgYXBwZW5kU3VjY2Vzc29yKGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYpOworICAgIAorICAgIHR5
cGVkZWYgdm9pZCBDYWxsYmFja0Z1bmN0aW9uVHlwZShjb25zdCBWZWN0b3I8TWFjcm9Bc3NlbWJs
ZXJDb2RlUHRyPiYpOworICAgIAorICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgc2V0Q2FsbGJh
Y2tUYXNrKFJlZlB0cjxTaGFyZWRUYXNrPENhbGxiYWNrRnVuY3Rpb25UeXBlPj4gdGFzayk7Cisg
ICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuYz4KKyAgICB2b2lkIHNldENhbGxiYWNrKGNv
bnN0IEZ1bmMmIGZ1bmMpCisgICAgeworICAgICAgICBzZXRDYWxsYmFja1Rhc2soY3JlYXRlU2hh
cmVkVGFzazxDYWxsYmFja0Z1bmN0aW9uVHlwZT4oZnVuYykpOworICAgIH0KKyAgICAKKyAgICBT
aGFyZWRUYXNrPENhbGxiYWNrRnVuY3Rpb25UeXBlPiogY2FsbGJhY2tUYXNrKCkgY29uc3QgeyBy
ZXR1cm4gbV90YXNrLmdldCgpOyB9CisgICAgCisgICAgYm9vbCBpc0Nsb25lYWJsZSgpIGNvbnN0
IG92ZXJyaWRlOworCitwcm90ZWN0ZWQ6CisgICAgdm9pZCBkdW1wTWV0YShDb21tYVByaW50ZXIm
LCBQcmludFN0cmVhbSYpIGNvbnN0IG92ZXJyaWRlOworICAgIAorICAgIFZhbHVlKiBjbG9uZUlt
cGwoKSBjb25zdCBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgUHJvY2Vk
dXJlOworICAgIAorICAgIEpTX0VYUE9SVF9QUklWQVRFIFBvbHlKdW1wVmFsdWUoT3JpZ2luLCBW
YWx1ZSogY2hpbGQpOworICAgIAorICAgIFJlZlB0cjxTaGFyZWRUYXNrPENhbGxiYWNrRnVuY3Rp
b25UeXBlPj4gbV90YXNrOworfTsKKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzCisKKyNlbmRp
ZiAvLyBFTkFCTEUoQjNfSklUKQorCisjZW5kaWYgLy8gQjNQb2x5SnVtcFZhbHVlX2gKKwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuY3BwCShyZXZpc2lvbiAyMDI0
NjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC04Miw2ICs4Miw4IEBAIFZhcmlhYmxlKiBQcm9jZWR1cmU6OmFkZFZhcmlhYmxl
KFR5cGUgdHkKIAogVmFsdWUqIFByb2NlZHVyZTo6Y2xvbmUoVmFsdWUqIHZhbHVlKQogeworICAg
IEFTU0VSVCh2YWx1ZS0+aXNDbG9uZWFibGUoKSk7CisgICAgCiAgICAgc3RkOjp1bmlxdWVfcHRy
PFZhbHVlPiBjbG9uZSh2YWx1ZS0+Y2xvbmVJbXBsKCkpOwogICAgIGNsb25lLT5tX2luZGV4ID0g
VUlOVF9NQVg7CiAgICAgY2xvbmUtPm93bmVyID0gbnVsbHB0cjsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5oCShyZXZpc2lvbiAyMDI0NjkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuaAkod29ya2luZyBjb3B5KQpAQCAtMTAxLDYgKzEw
MSw3IEBAIHB1YmxpYzoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBWYWx1ZVR5cGUsIHR5cGVuYW1l
Li4uIEFyZ3VtZW50cz4KICAgICBWYWx1ZVR5cGUqIGFkZChBcmd1bWVudHMuLi4pOwogCisgICAg
Ly8gTm90ZSB0aGF0IG5vdCBhbGwgdmFsdWVzIGFyZSBjbG9uZWFibGUuIENoZWNrIFZhbHVlOjpp
c0Nsb25lYWJsZSgpIGJlZm9yZSBwcm9jZWVkaW5nLgogICAgIFZhbHVlKiBjbG9uZShWYWx1ZSop
OwogCiAgICAgVmFsdWUqIGFkZEludENvbnN0YW50KE9yaWdpbiwgVHlwZSwgaW50NjRfdCB2YWx1
ZSk7CkBAIC0yMTgsNiArMjE5LDkgQEAgcHVibGljOgogCiAgICAgY29uc3QgY2hhciogbGFzdFBo
YXNlTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdFBoYXNlTmFtZTsgfQogCisgICAgLy8gQWxs
b2NhdGVzIGEgc2xhYiBvZiBtZW1vcnkgdGhhdCB3aWxsIGJlIGtlcHQgYWxpdmUgYnkgYW55b25l
IHdobyBrZWVwcyB0aGUgcmVzdWx0aW5nIGNvZGUKKyAgICAvLyBhbGl2ZS4gR3JlYXQgZm9yIGNv
bXBpbGVyLWdlbmVyYXRlZCBkYXRhIHNlY3Rpb25zLCBsaWtlIHN3aXRjaCBqdW1wIHRhYmxlcyBh
bmQgY29uc3RhbnQgcG9vbHMuCisgICAgLy8gVGhpcyByZXR1cm5zIG1lbW9yeSB0aGF0IGhhcyBi
ZWVuIHplcm8taW5pdGlhbGl6ZWQuCiAgICAgdm9pZCogYWRkRGF0YVNlY3Rpb24oc2l6ZV90IHNp
emUpOwogCiAgICAgT3BhcXVlQnlwcm9kdWN0cyYgYnlwcm9kdWN0cygpIHsgcmV0dXJuICptX2J5
cHJvZHVjdHM7IH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVu
Z3RoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VT
dHJlbmd0aC5jcHAJKHJldmlzaW9uIDIwMjQ2OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1JlZHVjZVN0cmVuZ3RoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTc3Myw3ICsxNzczLDE3
IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZS0+b3Bjb2RlKCkg
PT0gU2VsZWN0CiAgICAgICAgICAgICAgICAgICAgICAgICAmJiAodmFsdWUtPmNoaWxkKDEpLT5p
c0NvbnN0YW50KCkgJiYgdmFsdWUtPmNoaWxkKDIpLT5pc0NvbnN0YW50KCkpOwogICAgICAgICAg
ICAgICAgIH0pOwotICAgICAgICAgICAgaWYgKHNlbGVjdCkgeworICAgICAgICAgICAgCisgICAg
ICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCB0aGUgcmVsZXZhbnQgY29kZSBpcyBjbG9uZWFibGUu
CisgICAgICAgICAgICBib29sIGFsbEFyZUNsb25lYWJsZSA9IHRydWU7CisgICAgICAgICAgICBm
b3IgKHVuc2lnbmVkIGluZGV4ID0gbV9pbmRleCArIDE7IGluZGV4LS07KSB7CisgICAgICAgICAg
ICAgICAgVmFsdWUqIHZhbHVlID0gbV9ibG9jay0+YXQoaW5kZXgpOworICAgICAgICAgICAgICAg
IGFsbEFyZUNsb25lYWJsZSAmPSB2YWx1ZS0+aXNDbG9uZWFibGUoKTsKKyAgICAgICAgICAgICAg
ICBpZiAodmFsdWUgPT0gc2VsZWN0KQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHNlbGVjdCAmJiBhbGxBcmVD
bG9uZWFibGUpIHsKICAgICAgICAgICAgICAgICBzcGVjaWFsaXplU2VsZWN0KHNlbGVjdCk7CiAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNWYWxpZGF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzVmFsaWRhdGUuY3BwCShyZXZpc2lvbiAyMDI0NjkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNWYWxpZGF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4Nyw2ICsz
ODcsMTEgQEAgcHVibGljOgogICAgICAgICAgICAgICAgIFZBTElEQVRFKGlzSW50KHZhbHVlLT5j
aGlsZCgwKS0+dHlwZSgpKSwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAgICBWQUxJ
REFURSh2YWx1ZS0+dHlwZSgpID09IFZvaWQsICgiQXQgIiwgKnZhbHVlKSk7CiAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFBvbHlKdW1wOgorICAgICAgICAgICAgICAg
IFZBTElEQVRFKHZhbHVlLT5udW1DaGlsZHJlbigpID09IDEsICgiQXQgIiwgKnZhbHVlKSk7Cisg
ICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPmNoaWxkKDApLT50eXBlKCkgPT0gcG9pbnRl
clR5cGUoKSwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1
ZS0+dHlwZSgpID09IFZvaWQsICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIFZBTElEQVRFKCEodmFsdWUtPmVmZmVj
dHMoKS53cml0ZXMgJiYgdmFsdWUtPmtleSgpKSwgKCJBdCAiLCAqdmFsdWUpKTsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAJKHJldmlzaW9uIDIwMjQ2OSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTQwLDYg
KzU0MCw3IEBAIEVmZmVjdHMgVmFsdWU6OmVmZmVjdHMoKSBjb25zdAogICAgIGNhc2UgSnVtcDoK
ICAgICBjYXNlIEJyYW5jaDoKICAgICBjYXNlIFN3aXRjaDoKKyAgICBjYXNlIFBvbHlKdW1wOgog
ICAgIGNhc2UgUmV0dXJuOgogICAgIGNhc2UgT29wczoKICAgICAgICAgcmVzdWx0LnRlcm1pbmFs
ID0gdHJ1ZTsKQEAgLTU0OCw2ICs1NDksMTEgQEAgRWZmZWN0cyBWYWx1ZTo6ZWZmZWN0cygpIGNv
bnN0CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorYm9vbCBWYWx1ZTo6aXNDbG9uZWFibGUoKSBj
b25zdAoreworICAgIHJldHVybiB0cnVlOworfQorCiBWYWx1ZUtleSBWYWx1ZTo6a2V5KCkgY29u
c3QKIHsKICAgICBzd2l0Y2ggKG9wY29kZSgpKSB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNWYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1ZhbHVlLmgJKHJldmlzaW9uIDIwMjQ2OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1ZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTIwMCw2ICsyMDAsMTEgQEAgcHVibGljOgogICAg
IGJvb2wgaXNMaWtlTm9uWmVybygpIGNvbnN0IHsgcmV0dXJuIGFzVHJpU3RhdGUoKSA9PSBUcnVl
VHJpU3RhdGU7IH0KIAogICAgIEVmZmVjdHMgZWZmZWN0cygpIGNvbnN0OworICAgIAorICAgIC8v
IFNvbWUgb3BlcmF0aW9ucyB3aWxsIHJlZnVzZSB0byBiZSBjbG9uZWQuIFRoaXMgaGFwcGVucyB3
aGVuIHRoZSBvcGVyYXRpb24gaGFzIHNvbWUgaW5zaWRlCisgICAgLy8ga25vd2xlZGdlIGFib3V0
IHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBpdHMgaWRlbnRpdHkgYW5kIHRoZSBpZGVudGl0eSBv
ZiB0aGUgY29kZSBpdCB3aWxsCisgICAgLy8gZ2VuZXJhdGUuCisgICAgdmlydHVhbCBib29sIGlz
Q2xvbmVhYmxlKCkgY29uc3Q7CiAKICAgICAvLyBUaGlzIHJldHVybnMgYSBWYWx1ZUtleSB0aGF0
IGRlc2NyaWJlcyB0aGF0IHRoaXMgVmFsdWUgcmV0dXJucyB3aGVuIGl0IGV4ZWN1dGVzLiBSZXR1
cm5zIGFuCiAgICAgLy8gZW1wdHkgVmFsdWVLZXkgaWYgdGhpcyBWYWx1ZSBpcyBpbXB1cmUuIE5v
dGUgdGhhdCBhbiBvcGVyYXRpb24gdGhhdCByZXR1cm5zIFZvaWQgY291bGQgc3RpbGwKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCShyZXZpc2lvbiAyMDI0NjkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiAr
MzUsNyBAQAogI2luY2x1ZGUgIkIzQ29uc3RQdHJWYWx1ZS5oIgogI2luY2x1ZGUgIkIzQ29udHJv
bFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNFZmZlY3RzLmgiCisjaW5jbHVkZSAiQjNQb2x5SnVtcFZh
bHVlLmgiCiAjaW5jbHVkZSAiQjNNYXRoRXh0cmFzLmgiCiAjaW5jbHVkZSAiQjNNZW1vcnlWYWx1
ZS5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJlLmgiCkBAIC00NCw2ICs0NSw3IEBACiAjaW5jbHVk
ZSAiQjNTd2l0Y2hWYWx1ZS5oIgogI2luY2x1ZGUgIkIzVXBzaWxvblZhbHVlLmgiCiAjaW5jbHVk
ZSAiQjNWYWx1ZUlubGluZXMuaCIKKyNpbmNsdWRlICJCM1ZhcmlhYmxlVmFsdWUuaCIKICNpbmNs
dWRlICJDQ2FsbEhlbHBlcnMuaCIKICNpbmNsdWRlICJJbml0aWFsaXplVGhyZWFkaW5nLmgiCiAj
aW5jbHVkZSAiSlNDSW5saW5lcy5oIgpAQCAtNTIsNiArNTQsNyBAQAogI2luY2x1ZGUgIlZNLmgi
CiAjaW5jbHVkZSA8Y21hdGg+CiAjaW5jbHVkZSA8c3RyaW5nPgorI2luY2x1ZGUgPHd0Zi9MaXN0
RHVtcC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL051bWJlck9mQ29y
ZXMuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CkBAIC03Myw2ICs3NiwxMSBAQCB1c2lu
ZyBuYW1lc3BhY2UgSlNDOjpCMzsKIAogbmFtZXNwYWNlIHsKIAorYm9vbCBzaG91bGRCZVZlcmJv
c2UoKQoreworICAgIHJldHVybiBzaG91bGREdW1wSVIoQjNNb2RlKTsKK30KKwogU3RhdGljTG9j
ayBjcmFzaExvY2s7CiAKIC8vIE5vdGhpbmcgZmFuY3kgZm9yIG5vdzsgd2UganVzdCB1c2UgdGhl
IGV4aXN0aW5nIFdURiBhc3NlcnRpb24gbWFjaGluZXJ5LgpAQCAtMTAxMjgsNyArMTAxMzYsMTAg
QEAgdm9pZCB0ZXN0U3dpdGNoQ2hpbGxEaXYodW5zaWduZWQgZGVncmVlLAogICAgIGF1dG8gY29k
ZSA9IGNvbXBpbGUocHJvYyk7CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZGVncmVl
OyArK2kpIHsKLSAgICAgICAgQ0hFQ0soaW52b2tlPGludDMyX3Q+KCpjb2RlLCBpICogZ2FwLCA0
MiwgMTEpID09ICgoaSAmIDEpID8gMTEvNDIgOiA0Mi8xMSkpOworICAgICAgICBkYXRhTG9nKCJp
ID0gIiwgaSwgIlxuIik7CisgICAgICAgIGludDMyX3QgcmVzdWx0ID0gaW52b2tlPGludDMyX3Q+
KCpjb2RlLCBpICogZ2FwLCA0MiwgMTEpOworICAgICAgICBkYXRhTG9nKCJyZXN1bHQgPSAiLCBy
ZXN1bHQsICJcbiIpOworICAgICAgICBDSEVDSyhyZXN1bHQgPT0gKChpICYgMSkgPyAxMS80MiA6
IDQyLzExKSk7CiAgICAgICAgIGlmIChnYXAgPiAxKSB7CiAgICAgICAgICAgICBDSEVDSyghaW52
b2tlPGludDMyX3Q+KCpjb2RlLCBpICogZ2FwICsgMSwgNDIsIDExKSk7CiAgICAgICAgICAgICBD
SEVDSyghaW52b2tlPGludDMyX3Q+KCpjb2RlLCBpICogZ2FwIC0gMSwgNDIsIDExKSk7CkBAIC0x
MjA1MCw2ICsxMjA2MSwyMzEgQEAgdm9pZCB0ZXN0TGF0ZVJlZ2lzdGVyKCkKICAgICBDSEVDSyhp
bnZva2U8dWludDY0X3Q+KCpjb2RlKSA9PSByZXN1bHQpOwogfQogCit2b2lkIHRocmVhZGVkSW50
ZXJwcmV0ZXJQcmludChWZWN0b3I8aW50cHRyX3Q+KiBzdHJlYW0sIGludHB0cl90IHZhbHVlKQor
eworICAgIHN0cmVhbS0+YXBwZW5kKHZhbHVlKTsKK30KKwordm9pZCB0ZXN0VGhyZWFkZWRJbnRl
cnByZXRlcigpCit7CisgICAgLy8gVGhpcyBjcmVhdGVzIGEgcG9vciBtYW4ncyB0aHJlYWRlZCBp
bnRlcnByZXRlciB1c2luZyBQb2x5SnVtcCBhbmQgc2VlcyBpZiBpdCB3b3Jrcy4gTm90ZQorICAg
IC8vIHRoYXQgUG9seUp1bXAgaXMgbm90IGxpa2UgaW5kaXJlY3QgYnJhbmNoZXMgaW4gTExWTSwg
c28geW91IGNhbid0IGFjdHVhbGx5IHVzZSBpdCB0bworICAgIC8vIGltcGxlbWVudCBhIHByb3Bl
ciB0aHJlYWRlZCBpbnRlcnByZXRlci4gVGhpcyBjaGVhdHM6IHRoZSBkaXNwYXRjaCBpbnN0cnVj
dGlvbiBpcyBhdCB0aGUgdG9wCisgICAgLy8gb2YgdGhlIGxvb3AuIFRoaXMgYWxzbyB0ZXN0cyBW
YXJpYWJsZVZhbHVlLgorICAgIAorICAgIFByb2NlZHVyZSBwcm9jOworICAgIAorICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayogZGlzcGF0Y2gg
PSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayogYWRkVG9EYXRhUG9pbnRlciA9IHBy
b2MuYWRkQmxvY2soKTsKKyAgICBCYXNpY0Jsb2NrKiBhZGRUb0NvZGVQb2ludGVyID0gcHJvYy5h
ZGRCbG9jaygpOworICAgIEJhc2ljQmxvY2sqIGFkZFRvQ29kZVBvaW50ZXJUYWtlbiA9IHByb2Mu
YWRkQmxvY2soKTsKKyAgICBCYXNpY0Jsb2NrKiBhZGRUb0NvZGVQb2ludGVyTm90VGFrZW4gPSBw
cm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayogYWRkVG9EYXRhID0gcHJvYy5hZGRCbG9j
aygpOworICAgIEJhc2ljQmxvY2sqIHByaW50ID0gcHJvYy5hZGRCbG9jaygpOworICAgIEJhc2lj
QmxvY2sqIHN0b3AgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgCisgICAgVmFyaWFibGUqIGRhdGFQ
b2ludGVyID0gcHJvYy5hZGRWYXJpYWJsZShwb2ludGVyVHlwZSgpKTsKKyAgICBWYXJpYWJsZSog
Y29kZVBvaW50ZXIgPSBwcm9jLmFkZFZhcmlhYmxlKHBvaW50ZXJUeXBlKCkpOworICAgIAorICAg
IHJvb3QtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPigKKyAgICAgICAgcHJvYywgU2V0LCBPcmln
aW4oKSwgZGF0YVBvaW50ZXIsCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CisgICAgcm9vdC0+
YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAgICAgICBwcm9jLCBTZXQsIE9yaWdpbigpLCBj
b2RlUG9pbnRlciwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKTsKKyAgICBWYWx1ZSogY29udGV4
dCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BS
SW5mbzo6YXJndW1lbnRHUFIyKTsKKyAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRpc3BhdGNoKSk7CisgICAgCisg
ICAgUG9seUp1bXBWYWx1ZSogcG9seUp1bXAgPSBkaXNwYXRjaC0+YXBwZW5kTmV3PFBvbHlKdW1w
VmFsdWU+KAorICAgICAgICBwcm9jLCBPcmlnaW4oKSwKKyAgICAgICAgZGlzcGF0Y2gtPmFwcGVu
ZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgp
LCBPcmlnaW4oKSwKKyAgICAgICAgICAgIGRpc3BhdGNoLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1
ZT4oCisgICAgICAgICAgICAgICAgcHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGNvZGVQb2ludGVy
KSkpOworICAgIHBvbHlKdW1wLT5hcHBlbmRTdWNjZXNzb3IoRnJlcXVlbnRlZEJsb2NrKGFkZFRv
RGF0YVBvaW50ZXIpKTsKKyAgICBwb2x5SnVtcC0+YXBwZW5kU3VjY2Vzc29yKEZyZXF1ZW50ZWRC
bG9jayhhZGRUb0NvZGVQb2ludGVyKSk7CisgICAgcG9seUp1bXAtPmFwcGVuZFN1Y2Nlc3NvcihG
cmVxdWVudGVkQmxvY2soYWRkVG9EYXRhKSk7CisgICAgcG9seUp1bXAtPmFwcGVuZFN1Y2Nlc3Nv
cihGcmVxdWVudGVkQmxvY2socHJpbnQpKTsKKyAgICBwb2x5SnVtcC0+YXBwZW5kU3VjY2Vzc29y
KEZyZXF1ZW50ZWRCbG9jayhzdG9wKSk7CisgICAgCisgICAgLy8gT3VyICJvcGNvZGVzIi4gVGhl
eSB3aWxsIGhhdmUgbWVhbmluZyBvbmNlIHdlIGNvbXBpbGUuCisgICAgaW50cHRyX3QgQWRkRFAg
PSAwOworICAgIGludHB0cl90IEFkZENQID0gMDsKKyAgICBpbnRwdHJfdCBBZGQgPSAwOworICAg
IGludHB0cl90IFByaW50ID0gMDsKKyAgICBpbnRwdHJfdCBTdG9wID0gMDsKKyAgICBwb2x5SnVt
cC0+c2V0Q2FsbGJhY2soCisgICAgICAgIFsmXSAoY29uc3QgVmVjdG9yPE1hY3JvQXNzZW1ibGVy
Q29kZVB0cj4mIHBvaW50ZXJzKSB7CisgICAgICAgICAgICBhdXRvIGdldCA9IFsmXSAoc2l6ZV90
IGluZGV4KSAtPiBpbnRwdHJfdCB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2Fz
dDxpbnRwdHJfdD4ocG9pbnRlcnNbaW5kZXhdLmV4ZWN1dGFibGVBZGRyZXNzKCkpOworICAgICAg
ICAgICAgfTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgQWRkRFAgPSBnZXQoMCk7CisgICAg
ICAgICAgICBBZGRDUCA9IGdldCgxKTsKKyAgICAgICAgICAgIEFkZCA9IGdldCgyKTsKKyAgICAg
ICAgICAgIFByaW50ID0gZ2V0KDMpOworICAgICAgICAgICAgU3RvcCA9IGdldCg0KTsKKyAgICAg
ICAgfSk7CisgICAgCisgICAgLy8gQWRkRFAgPG9wZXJhbmQ+OiBhZGRzIDxvcGVyYW5kPiB0byBE
UC4KKyAgICBWYWx1ZSogY29kZVBvaW50ZXJWYWx1ZSA9CisgICAgICAgIGFkZFRvRGF0YVBvaW50
ZXItPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPihwcm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwgY29k
ZVBvaW50ZXIpOworICAgIGFkZFRvRGF0YVBvaW50ZXItPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVl
PigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgZGF0YVBvaW50ZXIsCisgICAgICAgIGFk
ZFRvRGF0YVBvaW50ZXItPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBCMzo6
QWRkLCBPcmlnaW4oKSwKKyAgICAgICAgICAgIGFkZFRvRGF0YVBvaW50ZXItPmFwcGVuZE5ldzxW
YXJpYWJsZVZhbHVlPihwcm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwgZGF0YVBvaW50ZXIpLAorICAg
ICAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAg
ICAgICBwcm9jLCBNdWwsIE9yaWdpbigpLAorICAgICAgICAgICAgICAgIGFkZFRvRGF0YVBvaW50
ZXItPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgICAgICAgICAgICAgIHByb2MsIExv
YWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLCBzaXplb2YoaW50
cHRyX3QpKSwKKyAgICAgICAgICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmRJbnRDb25z
dGFudCgKKyAgICAgICAgICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBlKCks
IHNpemVvZihpbnRwdHJfdCkpKSkpOworICAgIGFkZFRvRGF0YVBvaW50ZXItPmFwcGVuZE5ldzxW
YXJpYWJsZVZhbHVlPigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIs
CisgICAgICAgIGFkZFRvRGF0YVBvaW50ZXItPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAg
ICBwcm9jLCBCMzo6QWRkLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwKKyAgICAgICAgICAg
IGFkZFRvRGF0YVBvaW50ZXItPmFwcGVuZEludENvbnN0YW50KAorICAgICAgICAgICAgICAgIHBy
b2MsIE9yaWdpbigpLCBwb2ludGVyVHlwZSgpLCBzaXplb2YoaW50cHRyX3QpICogMikpKTsKKyAg
ICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBP
cmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRpc3BhdGNoKSk7CisgICAgCisgICAgLy8gQWRkQ1Ag
PG9wZXJhbmQ+OiBhZGRzIDxvcGVyYW5kPiB0byBDUCBpZiB0aGUgY3VycmVudCB2YWx1ZSBhdCBE
UCBpcyBub24temVybywgb3RoZXJ3aXNlCisgICAgLy8gZmFsbHMgdGhyb3VnaCBub3JtYWxseS4K
KyAgICBjb2RlUG9pbnRlclZhbHVlID0KKyAgICAgICAgYWRkVG9Db2RlUG9pbnRlci0+YXBwZW5k
TmV3PFZhcmlhYmxlVmFsdWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlcik7
CisgICAgVmFsdWUqIGRhdGFQb2ludGVyVmFsdWUgPQorICAgICAgICBhZGRUb0NvZGVQb2ludGVy
LT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGRhdGFQ
b2ludGVyKTsKKyAgICBhZGRUb0NvZGVQb2ludGVyLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKKyAgICAgICAgYWRkVG9Db2RlUG9pbnRl
ci0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIExvYWQsIHBvaW50
ZXJUeXBlKCksIE9yaWdpbigpLCBkYXRhUG9pbnRlclZhbHVlKSwKKyAgICAgICAgRnJlcXVlbnRl
ZEJsb2NrKGFkZFRvQ29kZVBvaW50ZXJUYWtlbiksIEZyZXF1ZW50ZWRCbG9jayhhZGRUb0NvZGVQ
b2ludGVyTm90VGFrZW4pKTsKKyAgICBhZGRUb0NvZGVQb2ludGVyVGFrZW4tPmFwcGVuZE5ldzxW
YXJpYWJsZVZhbHVlPigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIs
CisgICAgICAgIGFkZFRvQ29kZVBvaW50ZXJUYWtlbi0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAg
ICAgICAgIHByb2MsIEIzOjpBZGQsIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLAorICAgICAg
ICAgICAgYWRkVG9Db2RlUG9pbnRlclRha2VuLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAg
ICAgICAgIHByb2MsIE11bCwgT3JpZ2luKCksCisgICAgICAgICAgICAgICAgYWRkVG9Db2RlUG9p
bnRlclRha2VuLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICAgICAgICAgICAgICBw
cm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwgc2l6
ZW9mKGludHB0cl90KSksCisgICAgICAgICAgICAgICAgYWRkVG9Db2RlUG9pbnRlclRha2VuLT5h
cHBlbmRJbnRDb25zdGFudCgKKyAgICAgICAgICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksIHBv
aW50ZXJUeXBlKCksIHNpemVvZihpbnRwdHJfdCkpKSkpOworICAgIGFkZFRvQ29kZVBvaW50ZXJU
YWtlbi0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1
ZW50ZWRCbG9jayhkaXNwYXRjaCkpOworICAgIGFkZFRvQ29kZVBvaW50ZXJOb3RUYWtlbi0+YXBw
ZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAgICAgICBwcm9jLCBTZXQsIE9yaWdpbigpLCBjb2Rl
UG9pbnRlciwKKyAgICAgICAgYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuLT5hcHBlbmROZXc8VmFs
dWU+KAorICAgICAgICAgICAgcHJvYywgQjM6OkFkZCwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFs
dWUsCisgICAgICAgICAgICBhZGRUb0NvZGVQb2ludGVyTm90VGFrZW4tPmFwcGVuZEludENvbnN0
YW50KAorICAgICAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLCBwb2ludGVyVHlwZSgpLCBzaXpl
b2YoaW50cHRyX3QpICogMikpKTsKKyAgICBhZGRUb0NvZGVQb2ludGVyTm90VGFrZW4tPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICBwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVl
bnRlZEJsb2NrKGRpc3BhdGNoKSk7CisKKyAgICAvLyBBZGQgPG9wZXJhbmQ+OiBhZGRzIDxvcGVy
YW5kPiB0byB0aGUgc2xvdCBwb2ludGVkIHRvIGJ5IERQLgorICAgIGNvZGVQb2ludGVyVmFsdWUg
PSBhZGRUb0RhdGEtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPihwcm9jLCBCMzo6R2V0LCBPcmln
aW4oKSwgY29kZVBvaW50ZXIpOworICAgIGRhdGFQb2ludGVyVmFsdWUgPSBhZGRUb0RhdGEtPmFw
cGVuZE5ldzxWYXJpYWJsZVZhbHVlPihwcm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwgZGF0YVBvaW50
ZXIpOworICAgIGFkZFRvRGF0YS0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgcHJv
YywgU3RvcmUsIE9yaWdpbigpLAorICAgICAgICBhZGRUb0RhdGEtPmFwcGVuZE5ldzxWYWx1ZT4o
CisgICAgICAgICAgICBwcm9jLCBCMzo6QWRkLCBPcmlnaW4oKSwKKyAgICAgICAgICAgIGFkZFRv
RGF0YS0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAgICAgICBwcm9jLCBMb2Fk
LCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwgZGF0YVBvaW50ZXJWYWx1ZSksCisgICAgICAgICAg
ICBhZGRUb0RhdGEtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgICAgICAgICAgcHJv
YywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUsIHNpemVv
ZihpbnRwdHJfdCkpKSwKKyAgICAgICAgZGF0YVBvaW50ZXJWYWx1ZSk7CisgICAgYWRkVG9EYXRh
LT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCks
IGNvZGVQb2ludGVyLAorICAgICAgICBhZGRUb0RhdGEtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAg
ICAgICAgICBwcm9jLCBCMzo6QWRkLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwKKyAgICAg
ICAgICAgIGFkZFRvRGF0YS0+YXBwZW5kSW50Q29uc3RhbnQocHJvYywgT3JpZ2luKCksIHBvaW50
ZXJUeXBlKCksIHNpemVvZihpbnRwdHJfdCkgKiAyKSkpOworICAgIGFkZFRvRGF0YS0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhk
aXNwYXRjaCkpOworICAgIAorICAgIC8vIFByaW50OiAicHJpbnRzIiB0aGUgdmFsdWUgcG9pbnRl
ZCB0byBieSBEUC4gV2hhdCB0aGlzIGFjdHVhbGx5IG1lYW5zIGlzIHRoYXQgdGhlIHZhbHVlIGlz
CisgICAgLy8gYXBwZW5kZWQgdG8gdGhlIHN0cmVhbSB2ZWN0b3IgYnkgdGhlIHRocmVhZGVkSW50
ZXJwcmV0ZXJQcmludCBmdW5jdGlvbi4KKyAgICBjb2RlUG9pbnRlclZhbHVlID0gcHJpbnQtPmFw
cGVuZE5ldzxWYXJpYWJsZVZhbHVlPihwcm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwgY29kZVBvaW50
ZXIpOworICAgIGRhdGFQb2ludGVyVmFsdWUgPSBwcmludC0+YXBwZW5kTmV3PFZhcmlhYmxlVmFs
dWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRlcik7CisgICAgcHJpbnQtPmFw
cGVuZE5ldzxDQ2FsbFZhbHVlPigKKyAgICAgICAgcHJvYywgVm9pZCwgT3JpZ2luKCksCisgICAg
ICAgIHByaW50LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBP
cmlnaW4oKSwgYml0d2lzZV9jYXN0PHZvaWQqPih0aHJlYWRlZEludGVycHJldGVyUHJpbnQpKSwK
KyAgICAgICAgY29udGV4dCwKKyAgICAgICAgcHJpbnQtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4o
cHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCksIGRhdGFQb2ludGVyVmFsdWUpKTsK
KyAgICBwcmludC0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAgICAgICBwcm9jLCBTZXQs
IE9yaWdpbigpLCBjb2RlUG9pbnRlciwKKyAgICAgICAgcHJpbnQtPmFwcGVuZE5ldzxWYWx1ZT4o
CisgICAgICAgICAgICBwcm9jLCBCMzo6QWRkLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwK
KyAgICAgICAgICAgIHByaW50LT5hcHBlbmRJbnRDb25zdGFudChwcm9jLCBPcmlnaW4oKSwgcG9p
bnRlclR5cGUoKSwgc2l6ZW9mKGludHB0cl90KSkpKTsKKyAgICBwcmludC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhkaXNwYXRj
aCkpOworICAgIAorICAgIC8vIFN0b3A6IHJldHVybnMuCisgICAgc3RvcC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgICAgIHN0
b3AtPmFwcGVuZEludENvbnN0YW50KHByb2MsIE9yaWdpbigpLCBwb2ludGVyVHlwZSgpLCAwKSk7
CisgICAgCisgICAgYXV0byBpbnRlcnByZXRlciA9IGNvbXBpbGUocHJvYyk7CisgICAgCisgICAg
Q0hFQ0soQWRkRFApOworICAgIENIRUNLKEFkZENQKTsKKyAgICBDSEVDSyhBZGQpOworICAgIENI
RUNLKFByaW50KTsKKyAgICBDSEVDSyhTdG9wKTsKKyAgICAKKyAgICBWZWN0b3I8aW50cHRyX3Q+
IGRhdGE7CisgICAgVmVjdG9yPGludHB0cl90PiBjb2RlOworICAgIFZlY3RvcjxpbnRwdHJfdD4g
c3RyZWFtOworICAgIAorICAgIGRhdGEuYXBwZW5kKDEpOworICAgIGRhdGEuYXBwZW5kKDApOwor
ICAgIAorICAgIGlmIChzaG91bGRCZVZlcmJvc2UoKSkKKyAgICAgICAgZGF0YUxvZygiZGF0YSA9
ICIsIGxpc3REdW1wKGRhdGEpLCAiXG4iKTsKKyAgICAKKyAgICAvLyBXZSdsbCB3cml0ZSBhIHBy
b2dyYW0gdGhhdCBwcmludHMgdGhlIG51bWJlcnMgMS4uMTAwLgorICAgIC8vIFdlIGV4cGVjdCBE
UCB0byBwb2ludCBhdCAjMC4KKyAgICBjb2RlLmFwcGVuZChBZGRDUCk7CisgICAgY29kZS5hcHBl
bmQoNik7IC8vIGdvIHRvIGxvb3AgYm9keQorICAgIAorICAgIC8vIExvb3AgcmUtZW50cnk6Cisg
ICAgLy8gV2UgZXhwZWN0IERQIHRvIHBvaW50IGF0ICMxIGFuZCBmb3IgIzEgdG8gYmUgb2Zmc2V0
IGJ5IC0xMDAuCisgICAgY29kZS5hcHBlbmQoQWRkKTsKKyAgICBjb2RlLmFwcGVuZCgxMDApOwor
ICAgIAorICAgIGNvZGUuYXBwZW5kKEFkZERQKTsKKyAgICBjb2RlLmFwcGVuZCgtMSk7CisgICAg
CisgICAgLy8gTG9vcCBoZWFkZXI6CisgICAgLy8gV2UgZXhwZWN0IERQIHRvIHBvaW50IGF0ICMw
LgorICAgIGNvZGUuYXBwZW5kKEFkZERQKTsKKyAgICBjb2RlLmFwcGVuZCgxKTsKKyAgICAKKyAg
ICBjb2RlLmFwcGVuZChBZGQpOworICAgIGNvZGUuYXBwZW5kKDEpOworICAgIAorICAgIGNvZGUu
YXBwZW5kKFByaW50KTsKKyAgICAKKyAgICBjb2RlLmFwcGVuZChBZGQpOworICAgIGNvZGUuYXBw
ZW5kKC0xMDApOworICAgIAorICAgIC8vIFdlIHdhbnQgdG8gc3RvcCBpZiBpdCdzIHplcm8gYW5k
IGNvbnRpbnVlIGlmIGl0J3Mgbm9uLXplcm8uIEFkZENQIHRha2VzIHRoZSBicmFuY2ggaWYgaXQn
cworICAgIC8vIG5vbi16ZXJvLgorICAgIGNvZGUuYXBwZW5kKEFkZENQKTsKKyAgICBjb2RlLmFw
cGVuZCgtMTEpOyAvLyBnbyB0byBsb29wIHJlLWVudHJ5LgorICAgIAorICAgIGNvZGUuYXBwZW5k
KFN0b3ApOworICAgIAorICAgIGlmIChzaG91bGRCZVZlcmJvc2UoKSkKKyAgICAgICAgZGF0YUxv
ZygiY29kZSA9ICIsIGxpc3REdW1wKGNvZGUpLCAiXG4iKTsKKyAgICAKKyAgICBDSEVDSyghaW52
b2tlPGludHB0cl90PigqaW50ZXJwcmV0ZXIsIGRhdGEuZGF0YSgpLCBjb2RlLmRhdGEoKSwgJnN0
cmVhbSkpOworICAgIAorICAgIENIRUNLKHN0cmVhbS5zaXplKCkgPT0gMTAwKTsKKyAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgMTAwOyArK2kpCisgICAgICAgIENIRUNLKHN0cmVhbVtpXSA9
PSBpICsgMSk7CisgICAgCisgICAgaWYgKHNob3VsZEJlVmVyYm9zZSgpKQorICAgICAgICBkYXRh
TG9nKCJzdHJlYW0gPSAiLCBsaXN0RHVtcChzdHJlYW0pLCAiXG4iKTsKK30KKwogLy8gTWFrZSBz
dXJlIHRoZSBjb21waWxlciBkb2VzIG5vdCB0cnkgdG8gb3B0aW1pemUgYW55dGhpbmcgb3V0Lgog
TkVWRVJfSU5MSU5FIGRvdWJsZSB6ZXJvKCkKIHsKQEAgLTEzNDU0LDYgKzEzNjkwLDggQEAgdm9p
ZCBydW4oY29uc3QgY2hhciogZmlsdGVyKQogICAgIFJVTih0ZXN0U3BpbGxVc2VMYXJnZXJUaGFu
RGVmKCkpOwogCiAgICAgUlVOKHRlc3RMYXRlUmVnaXN0ZXIoKSk7CisgICAgCisgICAgUlVOKHRl
c3RUaHJlYWRlZEludGVycHJldGVyKCkpOwogCiAgICAgaWYgKHRhc2tzLmlzRW1wdHkoKSkKICAg
ICAgICAgdXNhZ2UoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29k
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5o
CShyZXZpc2lvbiAyMDI0NjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNv
ZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkFpclNwZWNp
YWwuaCIKICNpbmNsdWRlICJBaXJTdGFja1Nsb3QuaCIKICNpbmNsdWRlICJBaXJUbXAuaCIKKyNp
bmNsdWRlICJCM0luZGV4TWFwLmgiCiAjaW5jbHVkZSAiQjNTcGFyc2VDb2xsZWN0aW9uLmgiCiAj
aW5jbHVkZSAiUmVnaXN0ZXJBdE9mZnNldExpc3QuaCIKICNpbmNsdWRlICJTdGFja0FsaWdubWVu
dC5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0ZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0ZS5j
cHAJKHJldmlzaW9uIDIwMjQ2OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWly
R2VuZXJhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OCwxMCArNDgsMTMgQEAKICNpbmNsdWRl
ICJBaXJWYWxpZGF0ZS5oIgogI2luY2x1ZGUgIkIzQ29tbW9uLmgiCiAjaW5jbHVkZSAiQjNJbmRl
eE1hcC5oIgorI2luY2x1ZGUgIkIzUG9seUp1bXBWYWx1ZS5oIgogI2luY2x1ZGUgIkIzUHJvY2Vk
dXJlLmgiCiAjaW5jbHVkZSAiQjNUaW1pbmdTY29wZS5oIgorI2luY2x1ZGUgIkIzVmFsdWVJbmxp
bmVzLmgiCiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiRGlzYWxsb3dNYWNy
b1NjcmF0Y2hSZWdpc3RlclVzYWdlLmgiCisjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgogCiBuYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsgbmFtZXNwYWNlIEFpciB7CiAKQEAgLTE5Niw3ICsx
OTksOCBAQCB2b2lkIGdlbmVyYXRlKENvZGUmIGNvZGUsIENDYWxsSGVscGVycyYgCiAKICAgICBm
b3IgKEJhc2ljQmxvY2sqIGJsb2NrIDogY29kZSkgewogICAgICAgICBibG9ja0p1bXBzW2Jsb2Nr
XS5saW5rKCZqaXQpOwotICAgICAgICBibG9ja0xhYmVsc1tibG9ja10gPSBqaXQubGFiZWwoKTsK
KyAgICAgICAgQ0NhbGxIZWxwZXJzOjpMYWJlbCBsYWJlbCA9IGppdC5sYWJlbCgpOworICAgICAg
ICBibG9ja0xhYmVsc1tibG9ja10gPSBsYWJlbDsKICAgICAgICAgQVNTRVJUKGJsb2NrLT5zaXpl
KCkgPj0gMSk7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBibG9jay0+c2l6ZSgp
IC0gMTsgKytpKSB7CiAgICAgICAgICAgICBJbnN0JiBpbnN0ID0gYmxvY2stPmF0KGkpOwpAQCAt
MjI4LDI2ICsyMzIsNTQgQEAgdm9pZCBnZW5lcmF0ZShDb2RlJiBjb2RlLCBDQ2FsbEhlbHBlcnMm
IAogICAgICAgICAgICAgYWRkSXRlbShibG9jay0+bGFzdCgpKTsKICAgICAgICAgICAgIGNvbnRp
bnVlOwogICAgICAgICB9Ci0KKyAgICAgICAgCiAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcCBq
dW1wID0gYmxvY2stPmxhc3QoKS5nZW5lcmF0ZShqaXQsIGNvbnRleHQpOwotICAgICAgICBzd2l0
Y2ggKGJsb2NrLT5udW1TdWNjZXNzb3JzKCkpIHsKLSAgICAgICAgY2FzZSAwOgotICAgICAgICAg
ICAgQVNTRVJUKCFqdW1wLmlzU2V0KCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNh
c2UgMToKLSAgICAgICAgICAgIGxpbmsoanVtcCwgYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDApKTsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIDI6Ci0gICAgICAgICAgICBsaW5rKGp1
bXAsIGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKSk7Ci0gICAgICAgICAgICBpZiAoYmxvY2stPnN1
Y2Nlc3NvckJsb2NrKDEpICE9IGNvZGUuZmluZE5leHRCbG9jayhibG9jaykpCi0gICAgICAgICAg
ICAgICAgbGluayhqaXQuanVtcCgpLCBibG9jay0+c3VjY2Vzc29yQmxvY2soMSkpOwotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIC8vIFRoZSBqdW1w
IHdvbid0IGJlIHNldCBmb3IgUG9seUp1bXAgYmVjYXVzZSBpdCBsZXRzIGl0cyBmYWl0aCBpbiB0
aGUgYWRkcmVzcyBvcGVyYW5kCisgICAgICAgIC8vIGd1aWRlIHdoZXJlIGl0IGp1bXBzLiBJdCB3
b24ndCBiZSBzZXQgZm9yIE9vcHMgYmVjYXVzZSB0aGVuIGl0IHdvbid0IGhhdmUgYW55IHN1Y2Nl
c3NvcnMuCisgICAgICAgIGlmIChqdW1wLmlzU2V0KCkpIHsKKyAgICAgICAgICAgIHN3aXRjaCAo
YmxvY2stPm51bVN1Y2Nlc3NvcnMoKSkgeworICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAg
ICAgICAgIGxpbmsoanVtcCwgYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDApKTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICBsaW5rKGp1
bXAsIGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKSk7CisgICAgICAgICAgICAgICAgaWYgKGJsb2Nr
LT5zdWNjZXNzb3JCbG9jaygxKSAhPSBjb2RlLmZpbmROZXh0QmxvY2soYmxvY2spKQorICAgICAg
ICAgICAgICAgICAgICBsaW5rKGppdC5qdW1wKCksIGJsb2NrLT5zdWNjZXNzb3JCbG9jaygxKSk7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgYWRkSXRlbShibG9jay0+bGFz
dCgpKTsKICAgICB9CisgICAgCisgICAgLy8gVGFrZSBjYXJlIG9mIFBvbHlKdW1wLiBXZSBkbyB0
aGlzIGxhc3QgYmVjYXVzZSBpdCByZWxpZXMgb24ga25vd2luZyB3aGVyZSBhbGwgb2YgdGhlIGJh
c2ljCisgICAgLy8gYmxvY2sgbGFuZGVkLgorICAgIGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiBj
b2RlKSB7CisgICAgICAgIGlmIChibG9jay0+bGFzdCgpLm9wY29kZSAhPSBQb2x5SnVtcCkKKyAg
ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAKKyAgICAgICAgUG9seUp1bXBWYWx1ZSogcG9s
eUp1bXAgPSBibG9jay0+bGFzdCgpLm9yaWdpbi0+YXM8UG9seUp1bXBWYWx1ZT4oKTsKKyAgICAg
ICAgUkVMRUFTRV9BU1NFUlQocG9seUp1bXAtPm51bVN1Y2Nlc3NvcnMoKSA9PSBibG9jay0+bnVt
U3VjY2Vzc29ycygpKTsKKyAgICAgICAgCisgICAgICAgIFJlZlB0cjxTaGFyZWRUYXNrPFBvbHlK
dW1wVmFsdWU6OkNhbGxiYWNrRnVuY3Rpb25UeXBlPj4gdGFzayA9IHBvbHlKdW1wLT5jYWxsYmFj
a1Rhc2soKTsKKyAgICAgICAgaWYgKCF0YXNrKQorICAgICAgICAgICAgY29udGludWU7IC8vIFRo
aXMgd291bGQgYmUgd2VpcmQsIGJ1dCB3ZSBhbGxvdyBpdC4KKyAgICAgICAgCisgICAgICAgIFZl
Y3RvcjxDQ2FsbEhlbHBlcnM6OkxhYmVsPiBsYWJlbHM7CisgICAgICAgIGZvciAoQmFzaWNCbG9j
ayogc3VjY2Vzc29yIDogYmxvY2stPnN1Y2Nlc3NvckJsb2NrcygpKQorICAgICAgICAgICAgbGFi
ZWxzLmFwcGVuZChibG9ja0xhYmVsc1tzdWNjZXNzb3JdKTsKKyAgICAgICAgCisgICAgICAgIGpp
dC5hZGRMaW5rVGFzaygKKyAgICAgICAgICAgIFs9XSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikg
eworICAgICAgICAgICAgICAgIFZlY3RvcjxNYWNyb0Fzc2VtYmxlckNvZGVQdHI+IHBvaW50ZXJz
OworICAgICAgICAgICAgICAgIGZvciAoQ0NhbGxIZWxwZXJzOjpMYWJlbCBsYWJlbCA6IGxhYmVs
cykKKyAgICAgICAgICAgICAgICAgICAgcG9pbnRlcnMuYXBwZW5kKGxpbmtCdWZmZXIubG9jYXRp
b25PZihsYWJlbCkpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHRhc2stPnJ1
bihwb2ludGVycyk7CisgICAgICAgICAgICB9KTsKKyAgICB9CiAKICAgICBwY1RvT3JpZ2luTWFw
LmFwcGVuZEl0ZW0oaml0LmxhYmVsKCksIE9yaWdpbigpKTsKICAgICAvLyBGSVhNRTogTWFrZSBs
YXRlIHBhdGhzIGhhdmUgT3JpZ2luczogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1MzY4OQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckluc3Qu
Y3BwCShyZXZpc2lvbiAyMDI0NjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fp
ckluc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NSw2ICs0NSwxMSBAQCBib29sIEluc3Q6Omhh
c0FyZ0VmZmVjdHMoKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK2Jvb2wgSW5zdDo6aXNDbG9u
ZWFibGUoKQoreworICAgIHJldHVybiAhb3JpZ2luIHx8IG9yaWdpbi0+aXNDbG9uZWFibGUoKTsK
K30KKwogdW5zaWduZWQgSW5zdDo6anNIYXNoKCkgY29uc3QKIHsKICAgICB1bnNpZ25lZCByZXN1
bHQgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4ob3Bjb2RlKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvQWlySW5zdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvQWlySW5zdC5oCShyZXZpc2lvbiAyMDI0NjkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvYWlyL0Fpckluc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMTg4LDYgKzE4OCwx
MCBAQCBwdWJsaWM6CiAgICAgLy8gcmV0dXJucyAyIGlmIDAgYW5kIDEgYmVuZWZpdCBmcm9tIGFs
aWFzaW5nIHRvIFRtcDMuCiAgICAgT3B0aW9uYWw8dW5zaWduZWQ+IHNob3VsZFRyeUFsaWFzaW5n
RGVmKCk7CiAgICAgCisgICAgLy8gU29tZSBpbnN0dWN0aW9ucyB3aWxsIHJlZnVzZSB0byBhbGxv
dyBjbG9uaW5nLiBJZiB0aGlzIHJldHVybnMgZmFsc2UsIHlvdSBtdXN0IG1ha2Ugc3VyZSB0aGF0
CisgICAgLy8geW91IG5ldmVyIGludHJvZHVjZSBjb3BpZXMgb2YgdGhlIGluc3RydWN0aW9uLgor
ICAgIGJvb2wgaXNDbG9uZWFibGUoKTsKKyAgICAKICAgICAvLyBUaGlzIGNvbXB1dGVzIGEgaGFz
aCBmb3IgY29tcGFyaW5nIHRoaXMgdG8gSlNBaXIncyBJbnN0LgogICAgIHVuc2lnbmVkIGpzSGFz
aCgpIGNvbnN0OwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29k
ZS5vcGNvZGVzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWly
T3Bjb2RlLm9wY29kZXMJKHJldmlzaW9uIDIwMjQ2OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMJKHdvcmtpbmcgY29weSkKQEAgLTgzNSw2ICs4MzUs
MTQgQEAgTW92ZURvdWJsZUNvbmRpdGlvbmFsbHlGbG9hdCBVOkc6MzIsIFU6RgogCiBKdW1wIC9i
cmFuY2gKIAorIyBUaGlzIG1hc3F1ZXJhZGVzIGFzIGEgbm9uLWJyYW5jaCB0ZXJtaW5hbCBiZWNh
dXNlIGl0IGRvZXNuJ3QgbmVlZCB0aGUgdHJhZGl0aW9uYWwgc29ydCBvZiBsaW5raW5nLgorIyAi
QnJhbmNoIiBpbiB0aGlzIGNvbnRleHQganVzdCBtZWFucyB0aGF0IGl0J3MgYSB0ZXJtaW5hbCB0
aGF0IHJldHVybnMgYSBKdW1wIHRoYXQgbmVlZHMgdG8gYmUKKyMgbGlua2VkLiBJbnN0ZWFkLCBB
aXI6OmdlbmVyYXRlKCkgaGFzIGEgc3BlY2lhbC1jYXNlIGZvciBQb2x5SnVtcC4KK1BvbHlKdW1w
IFU6RzpQdHIgL3Rlcm1pbmFsCisgICAgVG1wIGFzIGp1bXAKKyAgICB4ODY6IEFkZHIgYXMganVt
cAorICAgIHg4NjogSW5kZXggYXMganVtcAorCiBSZXQzMiBVOkc6MzIgL3JldHVybgogICAgIFRt
cAogCkluZGV4OiBXZWJzaXRlcy93ZWJraXQub3JnL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJzaXRlcy93ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMjAyNDY5KQorKysgV2Vic2l0
ZXMvd2Via2l0Lm9yZy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAor
MjAxNi0wNS0yOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAgIElt
cGxlbWVudCB0YWJsZS1iYXNlZCBzd2l0Y2hlcyBpbiBCMy9BaXIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTE0MQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgVXBkYXRlIGRvY3VtZW50YXRp
b24gZm9yIHRoZSBuZXcgUG9seUp1bXAgb3Bjb2RlLgorCisgICAgICAgICogZG9jcy9iMy9pbnRl
cm1lZGlhdGUtcmVwcmVzZW50YXRpb24uaHRtbDoKKwogMjAxNi0wNi0yNCAgRGVhbiBKYWNrc29u
ICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAgICAgTW9yZSBleGFtcGxlcyBmb3IgdGhlIHdpZGUt
Z2FtdXQgZGVtby4KSW5kZXg6IFdlYnNpdGVzL3dlYmtpdC5vcmcvZG9jcy9iMy9pbnRlcm1lZGlh
dGUtcmVwcmVzZW50YXRpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy93ZWJraXQub3Jn
L2RvY3MvYjMvaW50ZXJtZWRpYXRlLXJlcHJlc2VudGF0aW9uLmh0bWwJKHJldmlzaW9uIDIwMjQ2
OSkKKysrIFdlYnNpdGVzL3dlYmtpdC5vcmcvZG9jcy9iMy9pbnRlcm1lZGlhdGUtcmVwcmVzZW50
YXRpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNTM3LDYgKzUzNywzOSBAQCBwYXRjaHBvaW50
LT5zZXRHZW5lcmF0b3IoCiAgICAgICAgIGFsc28gY29udGFpbnMgYSBmYWxsLXRocm91Z2ggdGFy
Z2V0IGluIGNhc2UgdGhlIGNoaWxkIGhhcyBhIHZhbHVlIHRoYXQgd2Fzbid0IG1lbnRpb25lZAog
ICAgICAgICBpbiB0aGUgY2FzZXMgbGlzdC4gIE11c3QgdXNlIHRoZSBTd2l0Y2hWYWx1ZSBjbGFz
cy4gIE11c3QgYXBwZWFyIGF0IHRoZSBlbmQgb2YgdGhlIGJhc2ljCiAgICAgICAgIGJsb2NrLjwv
ZGQ+CisgICAgICAKKyAgICAgIDxkdD5Wb2lkIFBvbHlKdW1wKEludFB0ciwgYmxvY2tzLi4uKTwv
ZHQ+CisgICAgICA8ZGQ+CisgICAgICAgIDxwPkp1bXBzIHRvIHRoZSBnaXZlbiBhZGRyZXNzLiBU
aGUgY29tcGlsZXIgd2lsbCBhc3N1bWUgdGhhdCB0aGlzIGp1bXBzIHRvIG9uZSBvZiB0aGUgZ2l2
ZW4KKyAgICAgICAgICBibG9ja3MuIFRoZSBjb21waWxlciBtYWtlcyBubyBhdHRlbXB0IHRvIHBy
b3ZlIG9yIHZhbGlkYXRlIHRoYXQgdGhlIHBhc3NlZCBqdW1wIGFkZHJlc3MgaXMKKyAgICAgICAg
ICBhY3R1YWxseSB0aGUgYWRkcmVzcyBvZiBhbnkgb2YgdGhvc2UgYmxvY2tzLiBOb25zZW5zaWNh
bCB0aGluZ3Mgd2lsbCBoYXBwZW4gaWYgdGhlIHBhc3NlZAorICAgICAgICAgIGFkZHJlc3MgaXMg
bm90IHRoZSBhZGRyZXNzIG9mIG9uZSBvZiB0aGUgYmxvY2tzIGluIHRoZSBzdWNjZXNzb3IgbGlz
dC4gWW91IGNhbiBhcnJhbmdlIHRvCisgICAgICAgICAgZ2V0IHRoZSBhZGRyZXNzZXMgb2YgYmxv
Y2tzIGJ5IHBhc3NpbmcgYSBjYWxsYmFjayB0byBQb2x5SnVtcC4gVGhpcyBpcyB1c2VkIGludGVy
bmFsbHkKKyAgICAgICAgICBmb3IgbG93ZXJpbmcgU3dpdGNoIG9wY29kZXMuIFlvdSBjYW4gYWxz
byB1c2UgaXQgZGlyZWN0bHkuPC9wPgorICAgICAgCisgICAgICAgIDxwPlBvbHlKdW1wIGlzIG5v
dCBjbG9uZWFibGUuIEZvciBlYWNoIFBvbHlKdW1wIHlvdSBjcmVhdGUsIHRoZXJlIHdpbGwgYmUg
b25lIGluZGlyZWN0CisgICAgICAgICAganVtcCBnZW5lcmF0ZWQuIFRoaXMgaXMgbmVjZXNzYXJ5
IHRvIGVuc3VyZSBzb3VuZG5lc3Mgb2YgdGhlIGNhbGxiYWNrLiBJZiB0aGUgUG9seUp1bXAKKyAg
ICAgICAgICBjb3VsZCBiZSBjbG9uZWQsIHRoZW4gdGhlIGNhbGxiYWNrIHdvdWxkIGdldCBjYWxs
ZWQgZm9yIGVhY2ggY2xvbmUuIFByZXN1bWFibHksIHlvdSdkCisgICAgICAgICAgaW1wbGVtZW50
IHRoZSBjYWxsYmFjayBieSBwb3B1bGF0aW5nIHNvbWUgdGFibGUgd2l0aCB0aGUgYWRkcmVzc2Vz
IG9mIHRoZSBibG9ja3MuIElmIHRoZQorICAgICAgICAgIGNhbGxiYWNrIGdldHMgY2FsbGVkIG11
bHRpcGxlIHRpbWVzIHRoZW4gaXQgbWF5IHJldHVybiBkaWZmZXJlbnQgYWRkcmVzc2VzIGVhY2gg
dGltZSAtCisgICAgICAgICAgc2luY2UgYWZ0ZXIgY2xvbmluZyBhIFBvbHlKdW1wLCB0aGUgY29t
cGlsZXIgbWF5IHJldGFyZ2V0IGFueSBvZiBpdHMgc3VjY2Vzc29yIGVkZ2VzLgorICAgICAgICAg
IFRoaXMgd291bGQgYmUgY29uZnVzaW5nLCBzaW5jZSB0aGVuIHlvdSB3b3VsZG4ndCBrbm93IHdo
YXQgdG8gZG8gd2l0aCBkaXNjcmVwYW5jaWVzIGJldHdlZW4KKyAgICAgICAgICBhZGRyZXNzZXMg
cmV0dXJuZWQgYnkgdGhlIHZhcmlvdXMgY2FsbHMgdG8gdGhlIGNhbGxiYWNrLiBEaXNhbGxvd2lu
ZyBjbG9uaW5nIG9mIFBvbHlKdW1wCisgICAgICAgICAgc29sdmVzIHRoaXMgcHJvYmxlbS48L3A+
CisgICAgICAgIAorICAgICAgICA8cD5BIGNsb3NlbHkgcmVsYXRlZCBwcm9ibGVtIGlzIHRoYXQg
aWYgeW91IGVtaXQgbXVsdGlwbGUgUG9seUp1bXAgaW5zdHJ1Y3Rpb25zLCB0aGVuIGV2ZW4KKyAg
ICAgICAgICBpZiB0aGV5IGluaXRpYWxseSBzaGFyZSB0aGUgc2FtZSBzdWNjZXNzb3JzLCB5b3Ug
Y2Fubm90IGd1YXJhbnRlZSB0aGF0IHRoZXkgd2lsbCBjb250aW51ZQorICAgICAgICAgIHRvIHNo
YXJlIHRoZSBzYW1lIHN1Y2Nlc3NvcnMgYWZ0ZXIgb3B0aW1pemF0aW9uLiBUaGlzIG1lYW5zIHRo
YXQgUG9seUp1bXAgY2Fubm90CisgICAgICAgICAgY3VycmVudGx5IGJlIHVzZWQgZm9yIGltcGxl
bWVudGluZyBkaXJlY3QgdGhyZWFkZWQgaW50ZXJwcmV0ZXJzLCBhdCBsZWFzdCBub3QgdGhlIGNs
YXNzaWMKKyAgICAgICAgICBraW5kOiB0byBtYWtlIGl0IHdvcmssIHlvdSBoYXZlIHRvIGhhdmUg
YSBzaGFyZWQgZGlzcGF0Y2ggYmxvY2sgc28gdGhhdCB5b3UgaGF2ZSBhIHNpbmdsZQorICAgICAg
ICAgIFBvbHlKdW1wLiBUaGlzIG1pZ2h0IGJlIGJldHRlciB0aGFuIGEgU3dpdGNoLWJhc2VkIGlu
dGVycHJldGVyLCBidXQgaXQncyBkZWZpbml0ZWx5IG5vdAorICAgICAgICAgIGFzIGdvb2QgYXMg
d2hhdCB5b3UnZCBnZXQgd2l0aCBHQ0Mtc3R5bGUgY29tcHV0ZWQgZ290by48L3A+CisgICAgICAg
IAorICAgICAgICA8cD5Qb2x5SnVtcCBpcyBzbyBuYW1lZCB0byBhdm9pZCBjb25mdXNpb24gd2l0
aCBjb21wdXRlZCBnb3RvcyBhbmQgaW5kaXJlY3QgYnJhbmNoZXMgaW4KKyAgICAgICAgICBvdGhl
ciBjb21waWxlcnMuIEl0IGhhcyBzaWduaWZpY2FudCByZXN0cmljdGlvbnMgdGhhdCB0aG9zZSBv
cGVyYXRpb25zIGRvIG5vdCBoYXZlLiBUaGVzZQorICAgICAgICAgIHJlc3RyaWN0aW9ucyBtYWtl
IGl0IGVhc2llciBmb3IgdGhlIG9wdGltaXplciB0byB3b3JrIHdpdGggc2luY2UgdGhlIGNvbnRy
b2wgZmxvdyBnZXRzIHRvCisgICAgICAgICAgYmUgZXhwbGljaXQgKFBvbHlKdW1wIGhhcyBhIGZp
bml0ZSBzZXQgb2Ygc3VjY2Vzc29ycyBsaWtlIGFueSBvdGhlciBibG9jayB0ZXJtaW5hbCkuPC9w
PgorICAgICAgPC9kZD4KIAogICAgICAgPGR0PlZvaWQgUmV0dXJuKFQpPC9kdD4KICAgICAgIDxk
ZD5Xb3JrcyBmb3IgYW55IHR5cGUgZXhjZXB0IFZvaWQuICBSZXR1cm5zIHRoZSBnaXZlbiB2YWx1
ZSBhbmQgdGVybWluYXRlcyB0aGUgcHJvY2VkdXJlLgpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjAyNDY5
KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTYtMDUtMjkgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAg
ICBJbXBsZW1lbnQgdGFibGUtYmFzZWQgc3dpdGNoZXMgaW4gQjMvQWlyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTExNDEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGpzL3JlZ3Jlc3MvYmlnc3dpdGNo
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9iaWdzd2l0Y2guaHRt
bDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvYmlnc3dpdGNoLmpz
OiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisKIDIwMTYtMDYtMjQgIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgQ29uc2lkZXIgZXhwb3Npbmcgb3IgaGlkaW5nIGtu
b3dsZWRnZSBvZiBhIHJlZGlyZWN0IGZyb20gY2xpZW50cyBvZiBXZWJDb3JlTlNVUkxTZXNzaW9u
CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2gtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2gtZXhwZWN0
ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAgQEAKK0pTUmVncmVzcy9iaWdzd2l0
Y2gKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRo
cm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
SW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2guaHRtbAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8v
RU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQt
dGVzdHMvYmlnc3dpdGNoLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2JpZ3N3aXRjaC5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9iaWdzd2l0Y2guanMJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9iaWdzd2l0
Y2guanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMTEgQEAKK2Z1bmN0aW9uIGZvbyhvKSB7
CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kp
IHsKKyAgICAgICAgdmFyIHZhbHVlID0gaSAmIDYzOworICAgICAgICBzd2l0Y2ggKHZhbHVlKSB7
CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYjsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICByZXN1bHQgKz0g
by5jOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLmQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0OgorICAgICAg
ICAgICAgcmVzdWx0ICs9IG8uZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDU6
CisgICAgICAgICAgICByZXN1bHQgKz0gby5mOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgNjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSA3OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaDsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIDg6CisgICAgICAgICAgICByZXN1bHQgKz0gby5pOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgOToKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
Lmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxMDoKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxMToKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAx
MjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSAxMzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmM7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSAxNDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmQ7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxNToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmU7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxNjoKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLmY7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxNzoKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxODoK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSAxOToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSAyMDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSAyMToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyMjoKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyMzoKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLmE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyNDoKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSAyNToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmM7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSAyNjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmQ7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSAyNzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmU7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
LmY7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyOToKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzMDoKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAz
MToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSAzMjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSAzMzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzNDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzNToKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzNjoKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzNzoK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSAzODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmM7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSAzOToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmQ7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSA0MDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmU7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0MToKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLmY7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0MjoKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0MzoKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSA0NDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSA0NToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSA0NjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0NzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
Lmk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0ODoKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0OToKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1
MDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSA1MToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSA1MjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1MzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmI7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1NDoKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLmM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1NToKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLmQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1NjoK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSA1NzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmY7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSA1ODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSA1OToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA2MDoKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLmk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA2MToKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA2MjoKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLno7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworfQorCisoZnVuY3Rpb24oKSB7Cisg
ICAgdmFyIG8gPSB7YToxLCBiOjIsIGM6MywgZDo0LCBlOjUsIGY6NiwgZzo3LCBoOjgsIGk6OSwg
ajoxMCwgazoxMSwgejoxMDB9OworICAgIHZhciByZXN1bHQgPSAwOworICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgMTAwMDA7ICsraSkKKyAgICAgICAgcmVzdWx0ICs9IGZvbyhvKTsKKyAgICBpZiAo
cmVzdWx0ICE9IDc5NjYwMDAwKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIg
KyByZXN1bHQ7Cit9KSgpOworCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282728</attachid>
            <date>2016-07-04 10:30:55 -0700</date>
            <delta_ts>2016-07-04 11:39:00 -0700</delta_ts>
            <desc>rebased patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>70974</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2NiBA
QAorMjAxNi0wNS0yOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IEltcGxlbWVudCB0YWJsZS1iYXNlZCBzd2l0Y2hlcyBpbiBCMy9BaXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTE0MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgSWYgYSBzd2l0Y2ggc3Rh
dGVtZW50IGdldHMgbGFyZ2UsIGl0J3MgYmV0dGVyIHRvIGV4cHJlc3MgaXQgYXMgYW4gaW5kaXJl
Y3QganVtcCByYXRoZXIgdGhhbgorICAgICAgICB1c2luZyBhIGJpbmFyeSBzd2l0Y2ggKGRpdmlk
ZS1hbmQtY29ucXVlciB0cmVlIG9mIGNvbXBhcmlzb25zIGxlYWRpbmcgdG8gTyhsb2cgbikgYnJh
bmNoZXMgdG8KKyAgICAgICAgZ2V0IHRvIHRoZSBzd2l0Y2ggY2FzZSkuIFdoZW4gZGVhbGluZyB3
aXRoIGludGVnZXIgc3dpdGNoZXMsIEZUTCB3aWxsIGFscmVhZHkgdXNlIHRoZSBCMworICAgICAg
ICBTd2l0Y2ggYW5kIGV4cGVjdCB0aGlzIHRvIGdldCBsb3dlcmVkIGFzIGVmZmljaWVudGx5IGFz
IHBvc3NpYmxlOyBpdCdzIGEgYnVnIHRoYXQgQjMgd2lsbAorICAgICAgICBhbHdheXMgdXNlIGEg
YmluYXJ5IHN3aXRjaCByYXRoZXIgdGhhbiBpbmRpcmVjdCBqdW1wcy4gV2hlbiBkZWFsaW5nIHdp
dGggc3dpdGNoZXMgb3ZlciBzb21lCisgICAgICAgIG1vcmUgc29waGlzdGljYXRlZCB0eXBlcywg
d2UnZCB3YW50IEZUTCB0byBidWlsZCBhbiBpbmRpcmVjdCBqdW1wIHRhYmxlIGl0c2VsZiBhbmQg
dXNlCisgICAgICAgIHNvbWV0aGluZyBsaWtlIGEgaGFzaHRhYmxlIHRvIGZlZWQgaXQuIEluIHRo
YXQgY2FzZSwgdGhlcmUgd2lsbCBiZSBubyBCMyBTd2l0Y2g7IHdlJ2xsIHdhbnQKKyAgICAgICAg
c29tZSBraW5kIG9mIGluZGlyZWN0IGp1bXAgaW5zdHJ1Y3Rpb24uCisgICAgICAgIAorICAgICAg
ICBUaGlzIGltcGxpZXMgdGhhdCB3ZSB3YW50IEIzIHRvIGhhdmUgdGhlIGFiaWxpdHkgdG8gbG93
ZXIgU3dpdGNoIHRvIGluZGlyZWN0IGp1bXBzIGFuZCB0bworICAgICAgICBleHBvc2UgdGhvc2Ug
aW5kaXJlY3QganVtcHMgaW4gSVIgc28gdGhhdCB0aGUgRlRMIGNvdWxkIGRvIGl0cyBvd24gaW5k
aXJlY3QganVtcHMgZm9yCisgICAgICAgIHN3aXRjaGVzIG92ZXIgbW9yZSBjb21wbGljYXRlZCB0
aGluZ3MgbGlrZSBzdHJpbmdzLiBUaGlzIGNoYW5nZSBpbnRyb2R1Y2VzIGFuIGluZGlyZWN0IGp1
bXAKKyAgICAgICAgaW5zdHJ1Y3Rpb24gdG8gQjMgYW5kIGNhbGxzIGl0IFBvbHlKdW1wLiBJdCBo
YXMgc29tZSB1bmlxdWUgc2VtYW50aWNzIHRoYXQgbWFrZSBpdCB2ZXJ5CisgICAgICAgIGRpZmZl
cmVudCBmcm9tICJpbmRpcmVjdCBqdW1wcyIsICJpbmRpcmVjdCBicmFuY2hlcyIsIGFuZCAiY29t
cHV0ZWQgZ290b3MiIC0gYWxsIHRlcm1zIG9mIGFydAorICAgICAgICB1c2VkIGluIG90aGVyIGNv
bXBpbGVycy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaW1wbGVtZW50cyB0aGUgbW9zdCBiYXNp
YyBraW5kIG9mIFN3aXRjaC10by1Qb2x5SnVtcCBsb3dlcmluZyBpbiBCMzo6bG93ZXJNYWNyb3Mo
KS4gQXMKKyAgICAgICAgcGFydCBvZiB0aGUgZXhpc3RpbmcgZGl2aWRlLWFuZC1jb25xdWVyIHRo
YXQgY3JlYXRlcyBicmFuY2hlcywgaWYgaXQgZGV0ZWN0cyB0aGF0IHRoZSBzZXQgb2YKKyAgICAg
ICAgY2FzZXMgc2F0aXNmaWVzIHNvbWUgY29uZGl0aW9ucyAoZGVuc2l0eSBvZiBjYXNlIHZhbHVl
cyBhbmQgdG90YWwgc2l6ZSksIHRoZW4gaXQgd2lsbCBlbWl0IGEKKyAgICAgICAgUG9seUp1bXAu
CisgICAgICAgIAorICAgICAgICBUaGUgcHJvYmxlbSB3aXRoIGNsYXNzaWMgaW5kaXJlY3QganVt
cHMgaXMgdGhhdCB0aGV5IGZvcmNlIHRoZSBjb21waWxlciB0byBiZSBjb25zZXJ2YXRpdmUKKyAg
ICAgICAgYWJvdXQgY29udHJvbCBmbG93LiBUaGUgY29tcGlsZXIgbXVzdCBhc3N1bWUgdGhhdCB0
aGUgaW5kaXJlY3QganVtcCBtYXkgdHJhbnNmZXIgY29udHJvbCBmbG93CisgICAgICAgIHRvIGFu
eSBlc2NhcGVkIGJsb2NrIChibG9jayBsYWJlbGVkIGFzIGJlaW5nIGEgcG9zc2libGUgdGFyZ2V0
IGZvciBpbmRpcmVjdCBqdW1wcywgb3IgaWYgbm8KKyAgICAgICAgc3VjaCBsYWJlbGluZyBpcyBh
dmFpbGFibGUsIHRoZSBjb21waWxlciBtdXN0IGFzc3VtZSB0aGF0IGl0IG1heSB0YXJnZXQgYW55
IGJsb2NrKS4gVGhlIHdvcnN0CisgICAgICAgIHBhcnQgaXMgdGhhdCB0aGUgaW1wbGljaXQgY29u
dHJvbCBmbG93IGVkZ2VzIGZyb20gdGhlIGluZGlyZWN0IGp1bXAgdG8gdGhlIGVzY2FwZWQgYmxv
Y2tzCisgICAgICAgIGNhbm5vdCBiZSBicm9rZW4uIFRoaXMgaW52YWxpZGF0ZXMgYSBwcmluY2lw
bGUgb2YgQjMgSVI6IGFueSBwaGFzZSBtYXkgYnJlYWsgYW55IGNyaXRpY2FsCisgICAgICAgIGVk
Z2UgZm9yIGFueSByZWFzb24uIE91ciBTU0EgY29udmVyc2lvbiB3b3VsZCBicmVhayBpZiB3ZSBy
ZXZva2VkIHRoaXMgZmVhdHVyZS4gSXQncyBhY3R1YWxseQorICAgICAgICBtdWNoIHdvcnNlIHRo
YW4gdGhpcyAtIGJhc2ljYWxseSBhbnkgbG9naWMgb3ZlciBjb250cm9sIGZsb3cgd291bGQgaGF2
ZSB0byBiZSBoYWNrZWQgdG8gZGVhbAorICAgICAgICB3aXRoIHRoZXNlIHVuYnJlYWthYmxlIGVk
Z2VzLiBUaGlzIHdvdWxkIG1lYW4gY2hhbmdpbmcgYWxsIENGRyB0cmFuc2Zvcm1hdGlvbiB1dGls
aXRpZXMgYW5kCisgICAgICAgIHBhc3Nlcy4gV2UgaGF2ZSBhIGxvdCBvZiB0aG9zZSBhbmQgd2Ug
d2FudCBpdCB0byBiZSBlYXN5IHRvIHdyaXRlIG5ldyBvbmVzLgorICAgICAgICAKKyAgICAgICAg
VGhpcyBpcyB3aHkgd2UgdXNlIHNvbWV0aGluZyBuZXcgYW5kIHF1aXRlIGRpZmZlcmVudCBmcm9t
IGNsYXNzaWMgaW5kaXJlY3QganVtcHMuIFBvbHlKdW1wCisgICAgICAgIG1ha2VzIHRoZSBjb250
cm9sIGZsb3cgZWRnZXMgZXhwbGljaXQuIFRoZSBjbGllbnQgbXVzdCBzdXBwbHkgdGhlIHN1Y2Nl
c3NvcnMgd2hlbiBpdCBjcmVhdGVzCisgICAgICAgIHRoZSBQb2x5SnVtcC4gVGhlIGNvbXBpbGVy
IG1heSByZXdpcmUgdGhvc2Ugc3VjY2Vzc29yIGVkZ2VzIHRoZSBzYW1lIHdheSB0aGF0IGl0IHdv
dWxkIHJld2lyZQorICAgICAgICBhbnkgY29udHJvbCBmbG93IGVkZ2VzLiBDb25zZXF1ZW50bHkg
dGhlIHZhc3QgbWFqb3JpdHkgb2YgQ0ZHIHJlYXNvbmluZyBpbiBCMyBpcyB1bmNoYW5nZWQuCisg
ICAgICAgIElmIHlvdSBkb24ndCB3YW50IHRvIHVuZGVyc3RhbmQgUG9seUp1bXAsIGp1c3QgdGhp
bmsgb2YgaXQgbGlrZSB5b3Ugd291bGQgYSBTd2l0Y2ggd2l0aCBhbgorICAgICAgICBvcGFxdWUg
aW5jb21pbmcgdmFsdWUuIFRoaXMgd29ya3MgYmVjYXVzZSB3ZSBkbyBub3QgYWRkIGFueSBub3Rp
b24gb2YgZXNjYXBlZCBiYXNpYyBibG9ja3MuCisgICAgICAgIEluc3RlYWQgb2YgbGV0dGluZyB0
aGUgY2xpZW50IGdldCB0aGUgcG9pbnRlcnMgdG8gYmFzaWMgYmxvY2tzIGJ5IGVzY2FwaW5nIHRo
ZW0gbGlrZSBpbiBMTFZNLAorICAgICAgICB5b3UgY2FuIG9ubHkgZ2V0IHRoZSBwb2ludGVycyBv
ZiB0aGUgc3VjY2Vzc29ycyBvZiBQb2x5SnVtcCBieSByZWdpc3RlcmluZyBhIGNhbGxiYWNrIHdp
dGgKKyAgICAgICAgUG9seUp1bXAuIFRoaXMgY2FsbGJhY2sgZG9lc24ndCBhY3R1YWxseSBnaXZl
IHlvdSB0aGUgYWRkcmVzc2VzIG9mIGJhc2ljIGJsb2Nrcy4gSXQganVzdAorICAgICAgICBnaXZl
cyB5b3UgdGhlIGFkZHJlc3NlcyB3aGVyZSB5b3UgbXVzdCBqdW1wIHRvIHRyYW5zZmVyIGNvbnRy
b2wgZmxvdyBmcm9tIHRoYXQgUG9seUp1bXAgdG8KKyAgICAgICAgaXRzIHN1Y2Nlc3NvcnMuIFRo
aXMgbWVhbnMgdGhhdCB0aGUgbWFnaWMgb2YgUG9seUp1bXAgaXMgY29uZmluZWQgb25seSB0byB0
aGUgUG9seUp1bXAgaXRzZWxmCisgICAgICAgIGFuZCBkb2Vzbid0IGluZmVjdCByZWFzb25pbmcg
YWJvdXQgdGhlIGJhc2ljIGJsb2NrcyB0aGF0IGl0IGp1bXBzIHRvLgorICAgICAgICAKKyAgICAg
ICAgVGhlIG9ubHkgZG93bnNpZGUgaXMgdGhhdCB0aGF0IFBvbHlKdW1wIGlzIG5vdCBjbG9uZWFi
bGUuIFlvdSBjYW4ndCBjbG9uZSBpdCBiZWNhdXNlIGlmIHlvdQorICAgICAgICBkaWQsIHRoZW4g
dGhlIHR3byByZXN1bHRpbmcgUG9seUp1bXBzIG1heSBoYXZlIHRoZWlyIHN1Y2Nlc3NvciBlZGdl
cyByZXdpcmVkIGluZGVwZW5kZW50bHkgb2YKKyAgICAgICAgZWFjaCBvdGhlci4gVGhpcyBjb3Vs
ZCBlYXNpbHkgaGFwcGVuIGlmIHdlIGJyZWFrIGNyaXRpY2FsIGVkZ2VzLiBJZiB0aGF0IGRpZCBo
YXBwZW4gdGhlbiBpdAorICAgICAgICB3b3VsZCBicmVhayB0aGUgY2xpZW50IG9mIFBvbHlKdW1w
OiB0aGV5IHdvdWxkIGhhdmUgYWxyZWFkeSBjcmVhdGVkIHNvbWV0aGluZyBsaWtlIGEganVtcAor
ICAgICAgICB0YWJsZSBhbmQgd2lsbCBiZSBwb3B1bGF0aW5nIGl0IHZpYSB0aGUgY2FsbGJhY2ss
IGJ1dCBub3cgdGhlIGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkIHR3aWNlLAorICAgICAgICBhbmQg
bWF5IHJldHVybiBkaWZmZXJlbnQganVtcCBkZXN0aW5hdGlvbnMgZWFjaCB0aW1lLiBTbywgdGhp
cyBwYXRjaCBpbnRyb2R1Y2VzCisgICAgICAgIFZhbHVlOjppc0Nsb25lYWJsZSgpIGFuZCB0ZWFj
aGVzIGJvdGggb2Ygb3VyIGNvZGUgc3BlY2lhbGl6YXRpb24gb3B0aW1pemF0aW9ucyAodGFpbAor
ICAgICAgICBkdXBsaWNhdGlvbiBhbmQgc2VsZWN0IHNwZWNpYWxpemF0aW9uKSB0byBiYWlsIGlm
IHRoZSBjb2RlIHRoZXkgd2FudCB0byBzcGVjaWFsaXplIGlzIG5vdAorICAgICAgICBjbG9uZWFi
bGUuIFRoaXMgaXMgdG90YWxseSBiZW5pZ24gbW9zdCBvZiB0aGUgdGltZSwgc2luY2UgdGhvc2Ug
b3B0aW1pemF0aW9ucyB1c3VhbGx5IHJ1bgorICAgICAgICBiZWZvcmUgU3dpdGNoIGxvd2VyaW5n
LiBDbGllbnRzIHRoYXQgdXNlIFBvbHlKdW1wIGRpcmVjdGx5IGhhdmUgdG8gYXBwcmVjaWF0ZSB0
aGUgdHJhZGUtb2ZmOgorICAgICAgICBQb2x5SnVtcCBtYXkgZ2FpbiB0aGVtIHNvbWUgcGVyZm9y
bWFuY2UgYnV0IHRoZXkgYXJlIG9wdGluZyBvdXQgb2Ygb3B0aW1pemF0aW9ucyB0aGF0IHVzZQor
ICAgICAgICBjbG9uaW5nLiBBIGNsb3NlIGNvcm9sbGFyeSBvZiB0aGUgbm8tY2xvbmUgcnVsZSBp
cyB0aGF0IHRoZSBjbGllbnQgY2Fubm90IGNyZWF0ZSBtdWx0aXBsZQorICAgICAgICBQb2x5SnVt
cHMgdGhhdCBhcmUgZmVkIGJ5IGEgY29tbW9uIGp1bXAgdGFibGU6IHRoZSBmYWN0IHRoYXQgZWFj
aCBQb2x5SnVtcCBoYXMgYSBjYWxsYmFjaworICAgICAgICB0aGF0IGp1c3QgdGVsbHMgeW91IHRo
ZSBqdW1wIGRlc3RpbmF0aW9ucyBmb3IgaXRzIHN1Y2Nlc3NvciAqZWRnZXMqLCBub3Qgc3VjY2Vz
c29yICpibG9ja3MqLAorICAgICAgICBtZWFucyB0aGF0IGlmIHlvdSBjcmVhdGUgdHdvIFBvbHlK
dW1wcyBhbmQgZ2l2ZSB0aGVtIHRoZSBzYW1lIHN1Y2Nlc3NvciBsaXN0LCB5b3UgYXJlIG5vdAor
ICAgICAgICBndWFyYW50ZWVkIHRoYXQgdGhleSB3aWxsIGdldCB0aGUgc2FtZSBqdW1wIGRlc3Rp
bmF0aW9ucy4gVGhpcyBodXJ0cyBpZiB5b3Ugd2FudCB0byB1c2UKKyAgICAgICAgUG9seUp1bXAg
Zm9yIHRocmVhZGVkIGludGVycHJldGVycyBidXQgaXQncyBoYXJtbGVzcyBmb3Igc3dpdGNoIGxv
d2VyaW5nLiBUaGUgZ29hbCBvZgorICAgICAgICBQb2x5SnVtcCBpcyB0byBiZSBhd2Vzb21lIGZv
ciBzd2l0Y2ggbG93ZXJpbmcgd2hpbGUgbm90IGJyZWFraW5nIHRoZSByZXN0IG9mIHRoZSBjb21w
aWxlciwgc28KKyAgICAgICAgdGhpcyBpcyBwcm9iYWJseSBmaW5lLgorICAgICAgICAKKyAgICAg
ICAgVGhlIGlzQ2xvbmVhYmxlKCkgbWV0aG9kIGN1cnJlbnRseSBvbmx5IHJldHVybnMgdHJ1ZSBm
b3IgUG9seUp1bXAsIGJ1dCBJIGFudGljaXBhdGUgd2Ugd2lsbAorICAgICAgICBhZGQgb3RoZXIg
bm9uLWNsb25lYWJsZSB0aGluZ3MgbGF0ZXIuIEkgdGhpbmsgaXMgaXMgaW5oZXJlbnQgaW4gYSBj
b21waWxlciB0aGF0IGFsbG93cyBzdWNoCisgICAgICAgIGN1c3RvbWl6ZWFiaWxpdHkgZm9yIGl0
cyBjbGllbnRzLiBGb3IgZXhhbXBsZSwgd2UgbWF5IHdhbnQgdG8gYWRkIGEgZmxhZyB0byBQYXRj
aHBvaW50IHRoYXQKKyAgICAgICAgbWFrZXMgaXQgbm9uLWNsb25lYWJsZS4gU29tZXRpbWVzIHdl
IGhhdmUgdG8ganVtcCB0aHJvdWdoIGhvb3BzIGluIHRoZSBGVEwgYmVjYXVzZSBvZiB0aGUKKyAg
ICAgICAgY2xvbmVhYmlsaXR5IG9mIHBhdGNocG9pbnRzLiBUaGlzIGhhcHBlbnMgaW4gT1NSIGV4
aXRzLCB3aGljaCBwYXkgYSBzaWduaWZpY2FudCBtZW1vcnkgY29zdAorICAgICAgICBmb3IgYWRk
aXRpb25hbCBkYXRhIHN0cnVjdHVyZXMgdGhhdCBhcmUgdGhlcmUgaW4gY2FzZSBhbiBleGl0IGdl
dHMgY2xvbmVkLiBJdCBtYXkgYmUgbW9yZQorICAgICAgICBwcm9maXRhYmxlIHRvIGp1c3Qgc2F5
IHRoYXQgT1NSIGV4aXRzIChpLmUuIENoZWNrcyBhbmQgSW52YWxpZGF0aW9uUG9pbnQgUGF0Y2hw
b2ludHMpIGFyZSBub3QKKyAgICAgICAgY2xvbmVhYmxlLiBTdXJlbHkgdGhpcyB3b3VsZCByZWR1
Y2UgdGFpbCBkdXBsaWNhdGlvbiwgYnV0IHRhaWwgZHVwbGljYXRpb24gaXMgbW9zdCBwcm9maXRh
YmxlCisgICAgICAgIHdoZW4gaXQgY2xvbmVzIG9ubHkgYSB0aW55IGFtb3VudCBvZiBjb2RlOyBp
ZiB0aGVyZSdzIGFuIGV4aXQgdGhlbiB3ZSdyZSBub3QgdGFsa2luZyBhYm91dCBhCisgICAgICAg
IHRpbnkgYW1vdW50IG9mIGNvZGUgYW55bW9yZS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaXMg
YSB+MzAlIHNwZWVkLXVwIG9uIG1pY3JvYmVuY2htYXJrcyB0aGF0IGhhdmUgYmlnIHN3aXRjaCBz
dGF0ZW1lbnRzICh+NjAgY2FzZXMpLiBJdCdzCisgICAgICAgIG5vdCBhIHNwZWVkLXVwIG9uIG1h
aW5zdHJlYW0gYmVuY2htYXJrcy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgYWxzbyBhZGRzIGEg
bmV3IHRlc3QgdG8gdGVzdGIzIGZvciBQb2x5SnVtcCwgR2V0LCBhbmQgU2V0LiBUaGUgRlRMIGRv
ZXMgbm90IGN1cnJlbnRseQorICAgICAgICB1c2UgUG9seUp1bXAgZGlyZWN0bHksIGJ1dCB3ZSB3
YW50IHRoaXMgdG8gYmUgcG9zc2libGUuIEl0IGFsc28gZG9lc24ndCB1c2UgR2V0L1NldCBkaXJl
Y3RseQorICAgICAgICBldmVuIHRob3VnaCB3ZSB3YW50IHRoaXMgdG8gYmUgcG9zc2libGUuIEl0
J3MgaW1wb3J0YW50IHRvIHRlc3QgdGhlc2Ugc2luY2Ugb3Bjb2RlcyB0aGF0CisgICAgICAgIHJl
c3VsdCBmcm9tIGxvd2VyaW5nIGRvbid0IGFmZmVjdCBlYXJseSBwaGFzZXMsIHNvIHdlIGNvdWxk
IGhhdmUgcmVncmVzc2lvbnMgaW4gZWFybHkgcGhhc2VzCisgICAgICAgIHJlbGF0ZWQgdG8gdGhl
c2Ugb3Bjb2RlcyB0aGF0IHdvdWxkbid0IGJlIGNhdWdodCBieSBhbnkgSlMgdGVzdC4gU28sIHRo
aXMgYWRkcyBhIHZlcnkgYmFzaWMKKyAgICAgICAgdGhyZWFkZWQgaW50ZXJwcmV0ZXIgdG8gdGVz
dGIzIGZvciBhIEJyYWluZnVjay1zdHlsZSBsYW5ndWFnZSwgYW5kIHRlc3RzIGl0IGJ5IGhhdmlu
ZyBpdCBydW4KKyAgICAgICAgYSBwcm9ncmFtIHRoYXQgcHJpbnRzIHRoZSBudW1iZXJzIDEuLjEw
MCBpbiBhIGxvb3AuIFVubGlrZSBhIHJlYWwgdGhyZWFkZWQgaW50ZXJwcmV0ZXIsIGl0CisgICAg
ICAgIHVzZXMgYSBjb21tb24gZGlzcGF0Y2ggYmxvY2sgcmF0aGVyIHRoYW4gaGF2aW5nIGRpc3Bh
dGNoIGF0IHRoZSB0ZXJtaW51cyBvZiBlYWNoIG9wY29kZS4KKyAgICAgICAgVGhhdCdzIG5lY2Vz
c2FyeSBiZWNhdXNlIFBvbHlKdW1wIGlzIG5vdCBjbG9uZWFibGUuIFRoZSBzdGF0ZSBvZiB0aGUg
aW50ZXJwcmV0ZXIgaXMKKyAgICAgICAgcmVwcmVzZW50ZWQgdXNpbmcgVmFyaWFibGVzIHRoYXQg
d2UgR2V0IGFuZCBTZXQsIHNvIGl0IHRlc3RzIEdldC9TZXQgYXMgd2VsbC4KKworICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9u
Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpqdW1wKToKKyAgICAg
ICAgKiBhc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxl
cjo6am1wX20pOgorICAgICAgICAqIGIzL0IzQmFzaWNCbG9jay5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpCYXNpY0Jsb2NrOjp1cGRhdGVQcmVkZWNlc3NvcnNBZnRlcik6CisgICAgICAgIChKU0M6
OkIzOjpCYXNpY0Jsb2NrOjppc0Nsb25lYWJsZSk6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Js
b2NrOjpkdW1wKToKKyAgICAgICAgKiBiMy9CM0Jhc2ljQmxvY2suaDoKKyAgICAgICAgKEpTQzo6
QjM6OkJhc2ljQmxvY2s6OmZyZXF1ZW5jeSk6CisgICAgICAgICogYjMvQjNDb21tb24uaDoKKyAg
ICAgICAgKEpTQzo6QjM6OmlzNjRCaXQpOgorICAgICAgICAqIGIzL0IzQ29udHJvbFZhbHVlLmg6
CisgICAgICAgICogYjMvQjNEYXRhU2VjdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkIzOjpEYXRh
U2VjdGlvbjo6RGF0YVNlY3Rpb24pOgorICAgICAgICAqIGIzL0IzRHVwbGljYXRlVGFpbHMuY3Bw
OgorICAgICAgICAqIGIzL0IzTG93ZXJNYWNyb3MuY3BwOgorICAgICAgICAqIGIzL0IzTG93ZXJU
b0Fpci5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okxvd2VyVG9BaXI6Omxvd2VyKToKKyAg
ICAgICAgKiBiMy9CM09wY29kZS5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgor
ICAgICAgICAqIGIzL0IzT3Bjb2RlLmg6CisgICAgICAgICogYjMvQjNQb2x5SnVtcFZhbHVlLmNw
cDogQWRkZWQuCisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjp+UG9seUp1bXBWYWx1
ZSk6CisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjphcHBlbmRTdWNjZXNzb3IpOgor
ICAgICAgICAoSlNDOjpCMzo6UG9seUp1bXBWYWx1ZTo6c2V0Q2FsbGJhY2tUYXNrKToKKyAgICAg
ICAgKEpTQzo6QjM6OlBvbHlKdW1wVmFsdWU6OmlzQ2xvbmVhYmxlKToKKyAgICAgICAgKEpTQzo6
QjM6OlBvbHlKdW1wVmFsdWU6OmR1bXBNZXRhKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1w
VmFsdWU6OmNsb25lSW1wbCk6CisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjpQb2x5
SnVtcFZhbHVlKToKKyAgICAgICAgKiBiMy9CM1BvbHlKdW1wVmFsdWUuaDogQWRkZWQuCisgICAg
ICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjphY2NlcHRzKToKKyAgICAgICAgKEpTQzo6QjM6
OlBvbHlKdW1wVmFsdWU6OnNldENhbGxiYWNrKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1w
VmFsdWU6OmNhbGxiYWNrVGFzayk6CisgICAgICAgICogYjMvQjNQcm9jZWR1cmUuY3BwOgorICAg
ICAgICAoSlNDOjpCMzo6UHJvY2VkdXJlOjpjbG9uZSk6CisgICAgICAgICogYjMvQjNQcm9jZWR1
cmUuaDoKKyAgICAgICAgKEpTQzo6QjM6OlByb2NlZHVyZTo6bGFzdFBoYXNlTmFtZSk6CisgICAg
ICAgIChKU0M6OkIzOjpQcm9jZWR1cmU6OmJ5cHJvZHVjdHMpOgorICAgICAgICAqIGIzL0IzUmVk
dWNlU3RyZW5ndGguY3BwOgorICAgICAgICAqIGIzL0IzVmFsaWRhdGUuY3BwOgorICAgICAgICAq
IGIzL0IzVmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6OmVmZmVjdHMpOgorICAg
ICAgICAoSlNDOjpCMzo6VmFsdWU6OmlzQ2xvbmVhYmxlKToKKyAgICAgICAgKEpTQzo6QjM6OlZh
bHVlOjprZXkpOgorICAgICAgICAqIGIzL0IzVmFsdWUuaDoKKyAgICAgICAgKiBiMy9haXIvQWly
Q29kZS5oOgorICAgICAgICAqIGIzL2Fpci9BaXJHZW5lcmF0ZS5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpBaXI6OmdlbmVyYXRlKToKKyAgICAgICAgKiBiMy9haXIvQWlySW5zdC5jcHA6CisgICAg
ICAgIChKU0M6OkIzOjpBaXI6Okluc3Q6Omhhc0FyZ0VmZmVjdHMpOgorICAgICAgICAoSlNDOjpC
Mzo6QWlyOjpJbnN0Ojppc0Nsb25lYWJsZSk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okluc3Q6
OmR1bXApOgorICAgICAgICAqIGIzL2Fpci9BaXJJbnN0Lmg6CisgICAgICAgICogYjMvYWlyL0Fp
ck9wY29kZS5vcGNvZGVzOgorICAgICAgICAqIGIzL3Rlc3RiMy5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpzaG91bGRCZVZlcmJvc2UpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN3aXRjaENoaWxs
RGl2KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RMYXRlUmVnaXN0ZXIpOgorICAgICAgICAoSlND
OjpCMzo6dGhyZWFkZWRJbnRlcnByZXRlclByaW50KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RU
aHJlYWRlZEludGVycHJldGVyKToKKyAgICAgICAgKEpTQzo6QjM6Onplcm8pOgorICAgICAgICAo
SlNDOjpCMzo6cnVuKToKKwogMjAxNi0wNy0wMyAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gRExMcyBhcmUgbWlzc2luZyB2ZXJzaW9uIGluZm9y
bWF0aW9uLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24g
MjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0xNDQsNiArMTQ0LDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAg
ICBiMy9CM1BhdGNocG9pbnRWYWx1ZS5jcHAKICAgICBiMy9CM1BoYXNlU2NvcGUuY3BwCiAgICAg
YjMvQjNQaGlDaGlsZHJlbi5jcHAKKyAgICBiMy9CM1BvbHlKdW1wVmFsdWUuY3BwCiAgICAgYjMv
QjNQcm9jZWR1cmUuY3BwCiAgICAgYjMvQjNQdXJlQ1NFLmNwcAogICAgIGIzL0IzUmVkdWNlRG91
YmxlVG9GbG9hdC5jcHAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lv
biAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTk4OCw2ICsxOTg4LDggQEAK
IAkJREMxN0U4MUExQzlDOTFFOTAwOEE2QUIzIC8qIENDYWxsSGVscGVycy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzE3RTgxNjFDOUM4MDJCMDA4
QTZBQjMgLyogQ0NhbGxIZWxwZXJzLmNwcCAqLzsgfTsKIAkJREMyMTQzMDcxQ0EzMkU1NTAwMEE4
ODY5IC8qIElDU3RhdHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IERDMjE0MzA2MUNBMzJFNTIwMDBBODg2OSAvKiBJQ1N0YXRzLmggKi87IH07CiAJCURD
MjE0MzA4MUNBMzJFNTgwMDBBODg2OSAvKiBJQ1N0YXRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDMjE0MzA1MUNBMzJFNTIwMDBBODg2OSAvKiBJ
Q1N0YXRzLmNwcCAqLzsgfTsKKwkJREM0NTRCODgxQ0ZGNkZFNzAwNEMxOEFGIC8qIEIzUG9seUp1
bXBWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBEQzQ1NEI4NjFDRkY2RkU1MDA0QzE4QUYgLyogQjNQb2x5SnVtcFZhbHVlLmNwcCAqLzsgfTsK
KwkJREM0NTRCODkxQ0ZGNkZFQTAwNEMxOEFGIC8qIEIzUG9seUp1bXBWYWx1ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM0NTRCODcxQ0ZGNkZFNTAw
NEMxOEFGIC8qIEIzUG9seUp1bXBWYWx1ZS5oICovOyB9OwogCQlEQzQ1NEI4QzFEMDBFODIyMDA0
QzE4QUYgLyogQWlyRHVtcEFzSlMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gREM0NTRCOEExRDAwRTgxRjAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmNw
cCAqLzsgfTsKIAkJREM0NTRCOEQxRDAwRTgyNDAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzQ1NEI4QjFEMDBF
ODFGMDA0QzE4QUYgLyogQWlyRHVtcEFzSlMuaCAqLzsgfTsKIAkJREM2MDVCNUQxQ0UyNkVBMDAw
NTkzNzE4IC8qIFByb2ZpbGVyRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gREM2MDVCNTkxQ0UyNkU5ODAwNTkzNzE4IC8qIFByb2ZpbGVyRXZl
bnQuY3BwICovOyB9OwpAQCAtNDIxNiw2ICs0MjE4LDggQEAKIAkJREMxN0U4MTYxQzlDODAyQjAw
OEE2QUIzIC8qIENDYWxsSGVscGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBDQ2FsbEhlbHBlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlE
QzIxNDMwNTFDQTMyRTUyMDAwQTg4NjkgLyogSUNTdGF0cy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBJQ1N0YXRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJREMyMTQzMDYxQ0EzMkU1MjAwMEE4ODY5IC8qIElDU3RhdHMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSUNTdGF0cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlEQzQ1NEI4NjFDRkY2RkU1MDA0QzE4QUYgLyogQjNQb2x5SnVtcFZhbHVlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEIzUG9seUp1bXBWYWx1ZS5jcHA7IHBh
dGggPSBiMy9CM1BvbHlKdW1wVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlEQzQ1NEI4NzFDRkY2RkU1MDA0QzE4QUYgLyogQjNQb2x5SnVtcFZhbHVlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEIzUG9seUp1bXBWYWx1ZS5oOyBwYXRoID0gYjMvQjNQ
b2x5SnVtcFZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDNDU0QjhBMUQw
MEU4MUYwMDRDMThBRiAvKiBBaXJEdW1wQXNKUy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBBaXJEdW1wQXNKUy5jcHA7IHBhdGggPSBiMy9haXIvQWlyRHVtcEFzSlMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzQ1NEI4QjFEMDBFODFGMDA0QzE4
QUYgLyogQWlyRHVtcEFzSlMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQWly
RHVtcEFzSlMuaDsgcGF0aCA9IGIzL2Fpci9BaXJEdW1wQXNKUy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlEQzYwNUI1OTFDRTI2RTk4MDA1OTM3MTggLyogUHJvZmlsZXJFdmVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQcm9maWxlckV2ZW50LmNw
cDsgcGF0aCA9IHByb2ZpbGVyL1Byb2ZpbGVyRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNDc3NSw2ICs0Nzc5LDggQEAKIAkJCQkwRkVDODRFMDFCREFDREFDMDA4MEZG
NzQgLyogQjNQaGFzZVNjb3BlLmggKi8sCiAJCQkJMEYzNzMwOEExQzBCRDI5MTAwMDUyQkZBIC8q
IEIzUGhpQ2hpbGRyZW4uY3BwICovLAogCQkJCTBGMzczMDhCMUMwQkQyOTEwMDA1MkJGQSAvKiBC
M1BoaUNoaWxkcmVuLmggKi8sCisJCQkJREM0NTRCODYxQ0ZGNkZFNTAwNEMxOEFGIC8qIEIzUG9s
eUp1bXBWYWx1ZS5jcHAgKi8sCisJCQkJREM0NTRCODcxQ0ZGNkZFNTAwNEMxOEFGIC8qIEIzUG9s
eUp1bXBWYWx1ZS5oICovLAogCQkJCTBGRUM4NEUxMUJEQUNEQUMwMDgwRkY3NCAvKiBCM1Byb2Nl
ZHVyZS5jcHAgKi8sCiAJCQkJMEZFQzg0RTIxQkRBQ0RBQzAwODBGRjc0IC8qIEIzUHJvY2VkdXJl
LmggKi8sCiAJCQkJMEZFQzg0RTMxQkRBQ0RBQzAwODBGRjc0IC8qIEIzUHJvY2VkdXJlSW5saW5l
cy5oICovLApAQCAtNzE2Myw2ICs3MTY5LDcgQEAKIAkJCQkwRjhGOTQ0MTE2Njc2MzMyMDBENjE5
NzEgLyogQ29kZUJsb2NrSGFzaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDOTdGMzQxODIwMjBE
NzAwMkM5QjI2IC8qIENvZGVCbG9ja0pldHRpc29uaW5nV2F0Y2hwb2ludC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEZEOEEzMTQxN0Q0MzI2QzAwQ0EyQzQwIC8qIENvZGVCbG9ja1NldC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJREM0NTRCODkxQ0ZGNkZFQTAwNEMxOEFGIC8qIEIzUG9seUp1bXBWYWx1
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5NkVCQjMxNjY3NkVGNjAwOEJBREUzIC8qIENvZGVC
bG9ja1dpdGhKSVRUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzdGMTgyMjE2NDA4OEIyMDA2
NDBBNDcgLyogQ29kZUNhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OUNDMEI2MzE4QkU5OTUw
MDA2Q0VCQ0MgLyogQ29kZUdlbmVyYXRvclJlcGxheUlucHV0cy5weSBpbiBIZWFkZXJzICovLApA
QCAtOTQ0Nyw2ICs5NDU0LDcgQEAKIAkJCQk3MDlGQjg2QjFBRTMzNUM2MDAzOUQwNjkgLyogV2Vh
a1NldFByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyQTRFQzkwQjE4NjBENkMyMDA5
NEY3ODIgLyogV3JpdGVCYXJyaWVyQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQzgx
NTBCMTQwNDNDMEUwMENGQTYwMyAvKiBXcml0ZUJhcnJpZXJTdXBwb3J0LmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCURDNDU0Qjg4MUNGRjZGRTcwMDRDMThBRiAvKiBCM1BvbHlKdW1wVmFsdWUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTdFNUFCM0ExNzk5RTRCMjAwRDI4MzNEIC8qIFg4NkRpc2Fz
c2VtYmxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjJCQkQ5NzFDNUZGM0Y1MDAyM0VGMjMg
LyogQjNWYXJpYWJsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NjNDNkQ5QzE1MjExMTFBMDA1
ODVFNEUgLyogWWFyckNhbm9uaWNhbGl6ZVVDUzIuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
Ymxlclg4NkNvbW1vbi5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgJKHdvcmtpbmcgY29weSkKQEAg
LTIyNjMsNiArMjI2MywxMiBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLmptcF9tKGFk
ZHJlc3Mub2Zmc2V0LCBhZGRyZXNzLmJhc2UpOwogICAgIH0KIAorICAgIC8vIEFkZHJlc3MgaXMg
YSBtZW1vcnkgbG9jYXRpb24gY29udGFpbmluZyB0aGUgYWRkcmVzcyB0byBqdW1wIHRvCisgICAg
dm9pZCBqdW1wKEJhc2VJbmRleCBhZGRyZXNzKQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIu
am1wX20oYWRkcmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFzZSwgYWRkcmVzcy5pbmRleCwgYWRkcmVz
cy5zY2FsZSk7CisgICAgfQorCiAKICAgICAvLyBBcml0aG1ldGljIGNvbnRyb2wgZmxvdyBvcGVy
YXRpb25zOgogICAgIC8vCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4
NkFzc2VtYmxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvWDg2QXNzZW1ibGVyLmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTE5ODMsNiAr
MTk4MywxMSBAQCBwdWJsaWM6CiAgICAgICAgIG1fZm9ybWF0dGVyLm9uZUJ5dGVPcChPUF9HUk9V
UDVfRXYsIEdST1VQNV9PUF9KTVBOLCBiYXNlLCBvZmZzZXQpOwogICAgIH0KICAgICAKKyAgICB2
b2lkIGptcF9tKGludCBvZmZzZXQsIFJlZ2lzdGVySUQgYmFzZSwgUmVnaXN0ZXJJRCBpbmRleCwg
aW50IHNjYWxlKQorICAgIHsKKyAgICAgICAgbV9mb3JtYXR0ZXIub25lQnl0ZU9wKE9QX0dST1VQ
NV9FdiwgR1JPVVA1X09QX0pNUE4sIGJhc2UsIGluZGV4LCBzY2FsZSwgb2Zmc2V0KTsKKyAgICB9
CisgICAgCiAjaWYgIUNQVShYODZfNjQpCiAgICAgdm9pZCBqbXBfbShjb25zdCB2b2lkKiBhZGRy
ZXNzKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2su
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2su
Y3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYXNp
Y0Jsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA5LDYgKzEwOSwxNSBAQCB2b2lkIEJhc2lj
QmxvY2s6OnVwZGF0ZVByZWRlY2Vzc29yc0FmdGVyCiAgICAgQjM6OnVwZGF0ZVByZWRlY2Vzc29y
c0FmdGVyKHRoaXMpOwogfQogCitib29sIEJhc2ljQmxvY2s6OmlzQ2xvbmVhYmxlKCkgY29uc3QK
K3sKKyAgICBmb3IgKFZhbHVlKiB2YWx1ZSA6ICp0aGlzKSB7CisgICAgICAgIGlmICghdmFsdWUt
PmlzQ2xvbmVhYmxlKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJl
dHVybiB0cnVlOworfQorCiB2b2lkIEJhc2ljQmxvY2s6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkg
Y29uc3QKIHsKICAgICBvdXQucHJpbnQoZHVtcFByZWZpeCwgbV9pbmRleCk7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAg
LTExNSw2ICsxMTUsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVQcmVkZWNlc3NvcnNBZnRl
cigpOwogCiAgICAgZG91YmxlIGZyZXF1ZW5jeSgpIGNvbnN0IHsgcmV0dXJuIG1fZnJlcXVlbmN5
OyB9CisgICAgCisgICAgYm9vbCBpc0Nsb25lYWJsZSgpIGNvbnN0OwogCiAgICAgdm9pZCBkdW1w
KFByaW50U3RyZWFtJikgY29uc3Q7CiAgICAgdm9pZCBkZWVwRHVtcChjb25zdCBQcm9jZWR1cmUm
LCBQcmludFN0cmVhbSYpIGNvbnN0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
Q29tbW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29tbW9u
LmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbW1v
bi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDYgKzI4LDggQEAKIAogI2lmIEVOQUJMRShCM19KSVQpCiAK
KyNpbmNsdWRlICJKU0V4cG9ydE1hY3Jvcy5oIgorCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNl
IEIzIHsKIAogaW5saW5lIGJvb2wgaXM2NEJpdCgpIHsgcmV0dXJuIHNpemVvZih2b2lkKikgPT0g
ODsgfQpAQCAtMzgsNyArNDAsNyBAQCBlbnVtIEIzQ29tcGxpdGF0aW9uTW9kZSB7CiAgICAgQWly
TW9kZQogfTsKIAotYm9vbCBzaG91bGREdW1wSVIoQjNDb21wbGl0YXRpb25Nb2RlKTsKK0pTX0VY
UE9SVF9QUklWQVRFIGJvb2wgc2hvdWxkRHVtcElSKEIzQ29tcGxpdGF0aW9uTW9kZSk7CiBib29s
IHNob3VsZER1bXBJUkF0RWFjaFBoYXNlKEIzQ29tcGxpdGF0aW9uTW9kZSk7CiBib29sIHNob3Vs
ZFZhbGlkYXRlSVIoKTsKIGJvb2wgc2hvdWxkVmFsaWRhdGVJUkF0RWFjaFBoYXNlKCk7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb250cm9sVmFsdWUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb250cm9sVmFsdWUuaAkocmV2aXNpb24gMjAy
ODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29udHJvbFZhbHVlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTQ2LDkgKzQ2LDEwIEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBSZXR1cm46
CiAgICAgICAgIGNhc2UgT29wczoKICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBj
YXNlIFN3aXRjaDogCi0gICAgICAgICAgICAvLyBUaGlzIGlzIGhlcmUgYmVjYXVzZSBTd2l0Y2hW
YWx1ZSBpcyBhIHN1YmNsYXNzIG9mIENvbnRyb2xWYWx1ZSwgc28gd2Ugd2FudAotICAgICAgICAg
ICAgLy8gc3dpdGNoVmFsdWUtPmFzPENvbnRyb2xWYWx1ZT4oKSB0byByZXR1cm4gbm9uLW51bGwu
CisgICAgICAgIGNhc2UgU3dpdGNoOgorICAgICAgICBjYXNlIFBvbHlKdW1wOgorICAgICAgICAg
ICAgLy8gVGhpcyBpcyBoZXJlIGJlY2F1c2UgU3dpdGNoVmFsdWUgYW5kIFBvbHlKdW1wVmFsdWUg
YXJlIHN1YmNsYXNzZXMgb2YgQ29udHJvbFZhbHVlLAorICAgICAgICAgICAgLy8gc28gd2Ugd2Fu
dCB0aGluZ3MgbGlrZSBzd2l0Y2hWYWx1ZS0+YXM8Q29udHJvbFZhbHVlPigpIHRvIHJldHVybiBu
b24tbnVsbC4KICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBkZWZhdWx0OgogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNzcsNyArNzgsNyBAQCBwdWJsaWM6CiAgICAgfQog
CiAgICAgYm9vbCByZXBsYWNlU3VjY2Vzc29yKEJhc2ljQmxvY2sqIGZyb20sIEJhc2ljQmxvY2sq
IHRvKTsKLQorICAgIAogICAgIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgdGFrZW4oKSBjb25zdAog
ICAgIHsKICAgICAgICAgQVNTRVJUKG9wY29kZSgpID09IEp1bXAgfHwgb3Bjb2RlKCkgPT0gQnJh
bmNoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0RhdGFTZWN0aW9uLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEYXRhU2VjdGlvbi5jcHAJ
KHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0RhdGFTZWN0
aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0zMSw3ICszMSw3IEBACiBuYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIEIzIHsKIAogRGF0YVNlY3Rpb246OkRhdGFTZWN0aW9uKHNpemVfdCBzaXplKQotICAg
IDogbV9kYXRhKGZhc3RNYWxsb2Moc2l6ZSkpCisgICAgOiBtX2RhdGEoZmFzdFplcm9lZE1hbGxv
YyhzaXplKSkKICAgICAsIG1fc2l6ZShzaXplKQogewogfQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzRHVwbGljYXRlVGFpbHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0R1cGxpY2F0ZVRhaWxzLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRHVwbGljYXRlVGFpbHMuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC03Miw5ICs3MiwxMSBAQCBwdWJsaWM6CiAgICAgICAgIEluZGV4U2V0PEJhc2ljQmxv
Y2s+IGNhbmRpZGF0ZXM7CiAKICAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBibG9jayA6IG1fcHJv
YykgewotICAgICAgICAgICAgaWYgKGJsb2NrLT5zaXplKCkgPiBtX21heFNpemUgfHwgYmxvY2st
Pm51bVN1Y2Nlc3NvcnMoKSA+IG1fbWF4U3VjY2Vzc29ycykKKyAgICAgICAgICAgIGlmIChibG9j
ay0+c2l6ZSgpID4gbV9tYXhTaXplCisgICAgICAgICAgICAgICAgfHwgYmxvY2stPm51bVN1Y2Nl
c3NvcnMoKSA+IG1fbWF4U3VjY2Vzc29ycworICAgICAgICAgICAgICAgIHx8ICFibG9jay0+aXND
bG9uZWFibGUoKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKLQorICAgICAgICAgICAgCiAg
ICAgICAgICAgICBjYW5kaWRhdGVzLmFkZChibG9jayk7CiAgICAgICAgIH0KIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJNYWNyb3MuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyTWFjcm9zLmNwcAkocmV2aXNpb24gMjAyODA5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJNYWNyb3MuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTM0LDcgKzM0LDkgQEAKICNpbmNsdWRlICJCM0NvbnN0UHRyVmFsdWUuaCIKICNpbmNs
dWRlICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzSW5zZXJ0aW9uU2V0SW5saW5lcy5o
IgorI2luY2x1ZGUgIkIzTWVtb3J5VmFsdWUuaCIKICNpbmNsdWRlICJCM1BoYXNlU2NvcGUuaCIK
KyNpbmNsdWRlICJCM1BvbHlKdW1wVmFsdWUuaCIKICNpbmNsdWRlICJCM1Byb2NlZHVyZUlubGlu
ZXMuaCIKICNpbmNsdWRlICJCM1N3aXRjaFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNVcHNpbG9uVmFs
dWUuaCIKQEAgLTI3NSw4ICsyNzcsOTUgQEAgcHJpdmF0ZToKICAgICAgICAgY29uc3QgVmVjdG9y
PFN3aXRjaENhc2U+JiBjYXNlcywgdW5zaWduZWQgc3RhcnQsIGJvb2wgaGFyZFN0YXJ0LCB1bnNp
Z25lZCBlbmQsCiAgICAgICAgIEJhc2ljQmxvY2sqIGJlZm9yZSkKICAgICB7Ci0gICAgICAgIC8v
IEZJWE1FOiBBZGQgdGFibGUtYmFzZWQgc3dpdGNoIGxvd2VyaW5nLgotICAgICAgICAvLyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxMTQxCisgICAgICAgIFZhbHVl
KiBjaGlsZCA9IG1fdmFsdWUtPmNoaWxkKDApOworICAgICAgICBUeXBlIHR5cGUgPSBjaGlsZC0+
dHlwZSgpOworICAgICAgICBGcmVxdWVudGVkQmxvY2sgZmFsbFRocm91Z2ggPSBtX3ZhbHVlLT5h
czxTd2l0Y2hWYWx1ZT4oKS0+ZmFsbFRocm91Z2goKTsKKyAgICAgICAgCisgICAgICAgIC8vIEl0
J3MgYSBnb29kIGlkZWEgdG8gdXNlIGEgdGFibGUtYmFzZWQgc3dpdGNoIGluIHNvbWUgY2FzZXM6
IHRoZSBudW1iZXIgb2YgY2FzZXMgaGFzIHRvIGJlCisgICAgICAgIC8vIGxhcmdlIGVub3VnaCBh
bmQgdGhleSBoYXZlIHRvIGJlIGRlbnNlIGVub3VnaC4gVGhpcyBjb3VsZCBwcm9iYWJseSBiZSBp
bXByb3ZlZCBhIGxvdC4gRm9yCisgICAgICAgIC8vIGV4YW1wbGUsIHdlIGNvdWxkIHN0aWxsIHVz
ZSBhIGp1bXAgdGFibGUgaW4gY2FzZXMgd2hlcmUgdGhlIGlucHV0cyBhcmUgc3BhcnNlIHNvIGxv
bmcgYXMgd2UKKyAgICAgICAgLy8gc2hpZnQgb2ZmIHRoZSB1bmludGVyZXN0aW5nIGJpdHMuIE9u
IHRoZSBvdGhlciBoYW5kLCBpdCdzIG5vdCBjbGVhciB0aGF0IHRoaXMgd291bGQKKyAgICAgICAg
Ly8gYWN0dWFsbHkgYmUgYW55IGJldHRlciB0aGFuIHdoYXQgd2UgaGF2ZSBkb25lIGhlcmUgYW5k
IGl0J3Mgbm90IGNsZWFyIHRoYXQgaXQgd291bGQgYmUKKyAgICAgICAgLy8gYmV0dGVyIHRoYW4g
YSBiaW5hcnkgc3dpdGNoLgorICAgICAgICBjb25zdCB1bnNpZ25lZCBtaW5DYXNlc0ZvclRhYmxl
ID0gNzsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgZGVuc2l0eUxpbWl0ID0gNDsKKyAgICAgICAg
aWYgKGVuZCAtIHN0YXJ0ID49IG1pbkNhc2VzRm9yVGFibGUpIHsKKyAgICAgICAgICAgIGludDY0
X3QgZmlyc3RWYWx1ZSA9IGNhc2VzW3N0YXJ0XS5jYXNlVmFsdWUoKTsKKyAgICAgICAgICAgIGlu
dDY0X3QgbGFzdFZhbHVlID0gY2FzZXNbZW5kIC0gMV0uY2FzZVZhbHVlKCk7CisgICAgICAgICAg
ICBpZiAoKGxhc3RWYWx1ZSAtIGZpcnN0VmFsdWUgKyAxKSAvIGNhc2VzLnNpemUoKSA8IGRlbnNp
dHlMaW1pdCkgeworICAgICAgICAgICAgICAgIEJhc2ljQmxvY2sqIHN3aXRjaEJsb2NrID0gbV9i
bG9ja0luc2VydGlvblNldC5pbnNlcnRBZnRlcihtX2Jsb2NrKTsKKyAgICAgICAgICAgICAgICBW
YWx1ZSogaW5kZXggPSBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICAgICAg
ICAgIG1fcHJvYywgU3ViLCBtX29yaWdpbiwgY2hpbGQsCisgICAgICAgICAgICAgICAgICAgIGJl
Zm9yZS0+YXBwZW5kSW50Q29uc3RhbnQobV9wcm9jLCBtX29yaWdpbiwgdHlwZSwgZmlyc3RWYWx1
ZSkpOworICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgICAgICAgICAgICAgICAgIG1fcHJvYywgQnJhbmNoLCBtX29yaWdpbiwKKyAgICAgICAgICAg
ICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgICAgICAgICAg
ICAgbV9wcm9jLCBBYm92ZSwgbV9vcmlnaW4sIGluZGV4LAorICAgICAgICAgICAgICAgICAgICAg
ICAgYmVmb3JlLT5hcHBlbmRJbnRDb25zdGFudChtX3Byb2MsIG1fb3JpZ2luLCB0eXBlLCBsYXN0
VmFsdWUgLSBmaXJzdFZhbHVlKSksCisgICAgICAgICAgICAgICAgICAgIGZhbGxUaHJvdWdoLCBG
cmVxdWVudGVkQmxvY2soc3dpdGNoQmxvY2spKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAg
ICAgICAgICBzaXplX3QgdGFibGVTaXplID0gbGFzdFZhbHVlIC0gZmlyc3RWYWx1ZSArIDE7Cisg
ICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKiBqdW1wVGFibGUgPSBiaXR3aXNl
X2Nhc3Q8TWFjcm9Bc3NlbWJsZXJDb2RlUHRyKj4oCisgICAgICAgICAgICAgICAgICAgIG1fcHJv
Yy5hZGREYXRhU2VjdGlvbihzaXplb2YoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKSAqIHRhYmxlU2l6
ZSkpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFZhbHVlKiBiYXNlID0gc3dp
dGNoQmxvY2stPmFwcGVuZEludENvbnN0YW50KAorICAgICAgICAgICAgICAgICAgICBtX3Byb2Ms
IG1fb3JpZ2luLCBwb2ludGVyVHlwZSgpLCBiaXR3aXNlX2Nhc3Q8aW50cHRyX3Q+KGp1bXBUYWJs
ZSkpOworICAgICAgICAgICAgICAgIGlmIChpbmRleC0+dHlwZSgpICE9IGJhc2UtPnR5cGUoKSkg
eworICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXgtPnR5cGUoKSA9PSBJbnQzMikKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGluZGV4ID0gc3dpdGNoQmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4o
bV9wcm9jLCBaRXh0MzIsIG1fb3JpZ2luLCBpbmRleCk7CisgICAgICAgICAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gc3dpdGNoQmxvY2stPmFwcGVuZE5l
dzxWYWx1ZT4obV9wcm9jLCBUcnVuYywgbV9vcmlnaW4sIGluZGV4KTsKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgaW5kZXggPSBzd2l0Y2hCbG9jay0+YXBwZW5kTmV3PFZhbHVl
PigKKyAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBNdWwsIG1fb3JpZ2luLCBpbmRleCwKKyAg
ICAgICAgICAgICAgICAgICAgc3dpdGNoQmxvY2stPmFwcGVuZEludENvbnN0YW50KAorICAgICAg
ICAgICAgICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwgcG9pbnRlclR5cGUoKSwgc2l6ZW9m
KE1hY3JvQXNzZW1ibGVyQ29kZVB0cikpKTsKKyAgICAgICAgICAgICAgICBWYWx1ZSogcHRyID0g
c3dpdGNoQmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBBZGQsIG1fb3JpZ2luLCBiYXNl
LCBpbmRleCk7CisgICAgICAgICAgICAgICAgVmFsdWUqIGp1bXBUYXJnZXQgPQorICAgICAgICAg
ICAgICAgICAgICBzd2l0Y2hCbG9jay0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihtX3Byb2MsIExv
YWQsIHBvaW50ZXJUeXBlKCksIG1fb3JpZ2luLCBwdHIpOworICAgICAgICAgICAgICAgIFBvbHlK
dW1wVmFsdWUqIHBvbHlKdW1wID0KKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoQmxvY2stPmFw
cGVuZE5ldzxQb2x5SnVtcFZhbHVlPihtX3Byb2MsIG1fb3JpZ2luLCBqdW1wVGFyZ2V0KTsKKyAg
ICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBCaXRWZWN0b3IgaGFuZGxlZEluZGljZXM7
CisgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gc3RhcnQ7IGkgPCBlbmQ7ICsraSkg
eworICAgICAgICAgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2sgYmxvY2sgPSBjYXNlc1tpXS50
YXJnZXQoKTsKKyAgICAgICAgICAgICAgICAgICAgaW50NjRfdCB2YWx1ZSA9IGNhc2VzW2ldLmNh
c2VWYWx1ZSgpOworICAgICAgICAgICAgICAgICAgICBwb2x5SnVtcC0+YXBwZW5kU3VjY2Vzc29y
KGJsb2NrKTsKKyAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGluZGV4ID0gdmFsdWUgLSBmaXJz
dFZhbHVlOworICAgICAgICAgICAgICAgICAgICBBU1NFUlQoIWhhbmRsZWRJbmRpY2VzLmdldChp
bmRleCkpOworICAgICAgICAgICAgICAgICAgICBoYW5kbGVkSW5kaWNlcy5zZXQoaW5kZXgpOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBib29s
IGhhc1VuaGFuZGxlZEluZGV4ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IHRhYmxlU2l6ZTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgh
aGFuZGxlZEluZGljZXMuZ2V0KGkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBoYXNVbmhh
bmRsZWRJbmRleCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAg
ICAgICAgICAgICAgICBpZiAoaGFzVW5oYW5kbGVkSW5kZXgpCisgICAgICAgICAgICAgICAgICAg
IHBvbHlKdW1wLT5hcHBlbmRTdWNjZXNzb3IoZmFsbFRocm91Z2gpOworICAgICAgICAgICAgICAg
IAorICAgICAgICAgICAgICAgIHBvbHlKdW1wLT5zZXRDYWxsYmFjaygKKyAgICAgICAgICAgICAg
ICAgICAgWz1dIChjb25zdCBWZWN0b3I8TWFjcm9Bc3NlbWJsZXJDb2RlUHRyPiYgcG9pbnRlcnMp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBwb2ludGVySW5kZXggPSAwOworICAg
ICAgICAgICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaW5kZXggOiBoYW5kbGVkSW5kaWNlcykK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBqdW1wVGFibGVbaW5kZXhdID0gcG9pbnRlcnNb
cG9pbnRlckluZGV4KytdOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoaGFzVW5oYW5kbGVkSW5kZXgpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRhYmxlU2l6ZTsgKytpKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaGFuZGxlZEluZGljZXMuZ2V0KGkpKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganVtcFRhYmxlW2ldID0gcG9pbnRlcnNb
cG9pbnRlckluZGV4XTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcG9pbnRlckluZGV4Kys7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIFJF
TEVBU0VfQVNTRVJUKHBvaW50ZXJJbmRleCA9PSBwb2ludGVycy5zaXplKCkpOworICAgICAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIC8vIFNlZSBjb21tZW50cyBpbiBqaXQvQmluYXJ5
U3dpdGNoLmNwcCBmb3IgYSBqdXN0aWZpY2F0aW9uIG9mIHRoaXMgYWxnb3JpdGhtLiBUaGUgb25s
eQogICAgICAgICAvLyB0aGluZyB3ZSBkbyBkaWZmZXJlbnRseSBpcyB0aGF0IHdlIGRvbid0IHVz
ZSByYW5kb21uZXNzLgpAQCAtMzA3LDIyICszOTYsMTkgQEAgcHJpdmF0ZToKICAgICAgICAgICAg
ICAgICBiZWZvcmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAogICAgICAgICAgICAgICAgICAg
ICBtX3Byb2MsIEJyYW5jaCwgbV9vcmlnaW4sCiAgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+
YXBwZW5kTmV3PFZhbHVlPigKLSAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgRXF1YWws
IG1fb3JpZ2luLCBtX3ZhbHVlLT5jaGlsZCgwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1f
cHJvYywgRXF1YWwsIG1fb3JpZ2luLCBjaGlsZCwKICAgICAgICAgICAgICAgICAgICAgICAgIGJl
Zm9yZS0+YXBwZW5kSW50Q29uc3RhbnQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9w
cm9jLCBtX29yaWdpbiwgbV92YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLCB0eXBlLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNhc2VzW3N0YXJ0ICsgaV0uY2FzZVZhbHVlKCkpKSwKICAgICAgICAgICAgICAg
ICAgICAgY2FzZXNbc3RhcnQgKyBpXS50YXJnZXQoKSwgRnJlcXVlbnRlZEJsb2NrKG5leHRDaGVj
aykpOwogCiAgICAgICAgICAgICAgICAgYmVmb3JlID0gbmV4dENoZWNrOwogICAgICAgICAgICAg
fQogCi0gICAgICAgICAgICBpZiAoYWxsQ29uc2VjdXRpdmUpIHsKLSAgICAgICAgICAgICAgICBi
ZWZvcmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAotICAgICAgICAgICAgICAgICAgICBtX3By
b2MsIEp1bXAsIG1fb3JpZ2luLCBjYXNlc1tlbmQgLSAxXS50YXJnZXQoKSk7Ci0gICAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCi0gICAgICAgICAgICAgICAgICAgIG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIG1fdmFsdWUt
PmFzPFN3aXRjaFZhbHVlPigpLT5mYWxsVGhyb3VnaCgpKTsKLSAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIGlmIChhbGxDb25zZWN1dGl2ZSkKKyAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIGNhc2VzW2VuZCAtIDFd
LnRhcmdldCgpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBiZWZvcmUtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIGZhbGxUaHJvdWdo
KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC0zMzQsOSArNDIwLDkgQEAg
cHJpdmF0ZToKICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKICAgICAg
ICAgICAgIG1fcHJvYywgQnJhbmNoLCBtX29yaWdpbiwKICAgICAgICAgICAgIGJlZm9yZS0+YXBw
ZW5kTmV3PFZhbHVlPigKLSAgICAgICAgICAgICAgICBtX3Byb2MsIExlc3NUaGFuLCBtX29yaWdp
biwgbV92YWx1ZS0+Y2hpbGQoMCksCisgICAgICAgICAgICAgICAgbV9wcm9jLCBMZXNzVGhhbiwg
bV9vcmlnaW4sIGNoaWxkLAogICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kSW50Q29uc3Rh
bnQoCi0gICAgICAgICAgICAgICAgICAgIG1fcHJvYywgbV9vcmlnaW4sIG1fdmFsdWUtPmNoaWxk
KDApLT50eXBlKCksCisgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgbV9vcmlnaW4sIHR5cGUs
CiAgICAgICAgICAgICAgICAgICAgIGNhc2VzW21lZGlhbkluZGV4XS5jYXNlVmFsdWUoKSkpLAog
ICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKGxlZnQpLCBGcmVxdWVudGVkQmxvY2socmlnaHQp
KTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAJKHJl
dmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTUsNyArMTU1LDYgQEAgcHVibGljOgogICAgICAgICAg
ICAgfQogCiAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCB0aGUgc3VjY2Vzc29ycyBhcmUg
c2V0IHVwIGNvcnJlY3RseS4KLSAgICAgICAgICAgIEFTU0VSVChibG9jay0+c3VjY2Vzc29ycygp
LnNpemUoKSA8PSAyKTsKICAgICAgICAgICAgIGZvciAoQjM6OkZyZXF1ZW50ZWRCbG9jayBzdWNj
ZXNzb3IgOiBibG9jay0+c3VjY2Vzc29ycygpKSB7CiAgICAgICAgICAgICAgICAgbV9ibG9ja1Rv
QmxvY2tbYmxvY2tdLT5zdWNjZXNzb3JzKCkuYXBwZW5kKAogICAgICAgICAgICAgICAgICAgICBB
aXI6OkZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrVG9CbG9ja1tzdWNjZXNzb3IuYmxvY2soKV0sIHN1
Y2Nlc3Nvci5mcmVxdWVuY3koKSkpOwpAQCAtMjQ0MSw2ICsyNDQwLDE2IEBAIHByaXZhdGU6CiAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KKyAgICAgICAgICAg
IAorICAgICAgICBjYXNlIEIzOjpQb2x5SnVtcDogeworICAgICAgICAgICAgQXJnUHJvbWlzZSBh
ZGRyID0gbG9hZFByb21pc2UobV92YWx1ZS0+Y2hpbGQoMCkpOworICAgICAgICAgICAgaWYgKGlz
VmFsaWRGb3JtKEFpcjo6UG9seUp1bXAsIGFkZHIua2luZCgpKSkgeworICAgICAgICAgICAgICAg
IGFwcGVuZChBaXI6OlBvbHlKdW1wLCBhZGRyLmNvbnN1bWUoKnRoaXMpKTsKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBhcHBlbmQoQWlyOjpQb2x5
SnVtcCwgdG1wKG1fdmFsdWUtPmNoaWxkKDApKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KIAogICAgICAgICBjYXNlIEIzOjpPb3BzOiB7CiAgICAgICAgICAgICBhcHBlbmQoQWly
OjpPb3BzKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmNwcAkocmV2aXNp
b24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjkwLDYgKzI5MCw5IEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0
cmVhbSYgb3V0LCBPcGMKICAgICBjYXNlIFN3aXRjaDoKICAgICAgICAgb3V0LnByaW50KCJTd2l0
Y2giKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgUG9seUp1bXA6CisgICAgICAgIG91dC5w
cmludCgiUG9seUp1bXAiKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgUmV0dXJuOgogICAg
ICAgICBvdXQucHJpbnQoIlJldHVybiIpOwogICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNPcGNvZGUuaAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxNiw2ICsyMTYsMTMg
QEAgZW51bSBPcGNvZGUgOiBpbnQxNl90IHsKIAogICAgIC8vIFN3aXRjaC4gU3dpdGNoZXMgb3Zl
ciBlaXRoZXIgSW50MzIgb3IgSW50NjQuIFVzZXMgdGhlIFN3aXRjaFZhbHVlIGNsYXNzLgogICAg
IFN3aXRjaCwKKyAgICAKKyAgICAvLyBKdW1wIHRvIHRoZSBnaXZlbiBhZGRyZXNzLiBUaGUgY29t
cGlsZXIgYXNzdW1lcyB0aGF0IHRoaXMgd2lsbCBqdW1wIHRvIG9uZSBvZiB0aGUgc3VwcGxpZWQK
KyAgICAvLyBzdWNjZXNzb3JzLCBidXQgd2lsbCBtYWtlIGFic29sdXRlbHkgbm8gYXNzdW1wdGlv
bnMgYWJvdXQgd2hpY2guIEl0J3MgZW50aXJlbHkgdXAgdG8gdGhlIHVzZXIKKyAgICAvLyB0byBh
cnJhbmdlIGZvciB0aGUganVtcCB0byBqdW1wIHRvIG9uZSBvZiB0aG9zZSBzdWNjZXNzb3JzLiBU
aGlzIGNhbm5vdCB0cmFwIG9yIGRvIGFueXRoaW5nIGJ1dAorICAgIC8vIGp1bXAgdG8gb25lIG9m
IHRoZSBzdWNjZXNzb3JzOyBpZiBpdCBkb2VzIGFueXRoaW5nIGVsc2UgdGhlbiBkZW1vbnMgd2ls
bCBjb21lIG91dCBvZiB0aGUgdXNlcidzCisgICAgLy8gbm9zZS4gCisgICAgUG9seUp1bXAsCiAK
ICAgICAvLyBSZXR1cm4uIE5vdGUgdGhhdCBCMyBwcm9jZWR1cmVzIGRvbid0IGtub3cgdGhlaXIg
cmV0dXJuIHR5cGUsIHNvIHRoaXMgY2FuIGp1c3QgcmV0dXJuIGFueQogICAgIC8vIHR5cGUuIFVz
ZXMgdGhlIENvbnRyb2xWYWx1ZSBjbGFzcy4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1BvbHlKdW1wVmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM1BvbHlKdW1wVmFsdWUuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzUG9seUp1bXBWYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3
NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQjNQb2x5SnVtcFZhbHVlLmgiCisKKyNpZiBFTkFC
TEUoQjNfSklUKQorCisjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrLmgiCisKK25hbWVzcGFjZSBKU0Mg
eyBuYW1lc3BhY2UgQjMgeworCitQb2x5SnVtcFZhbHVlOjp+UG9seUp1bXBWYWx1ZSgpCit7Cit9
CisKK3ZvaWQgUG9seUp1bXBWYWx1ZTo6YXBwZW5kU3VjY2Vzc29yKGNvbnN0IEZyZXF1ZW50ZWRC
bG9jayYgYmxvY2spCit7CisgICAgbV9zdWNjZXNzb3JzLmFwcGVuZChibG9jayk7Cit9CisKK3Zv
aWQgUG9seUp1bXBWYWx1ZTo6c2V0Q2FsbGJhY2tUYXNrKFJlZlB0cjxTaGFyZWRUYXNrPENhbGxi
YWNrRnVuY3Rpb25UeXBlPj4gdGFzaykKK3sKKyAgICBtX3Rhc2sgPSB0YXNrOworfQorCitib29s
IFBvbHlKdW1wVmFsdWU6OmlzQ2xvbmVhYmxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK3ZvaWQgUG9seUp1bXBWYWx1ZTo6ZHVtcE1ldGEoQ29tbWFQcmludGVyJiBjb21tYSwg
UHJpbnRTdHJlYW0mIG91dCkgY29uc3QKK3sKKyAgICBDb250cm9sVmFsdWU6OmR1bXBNZXRhKGNv
bW1hLCBvdXQpOworICAgIG91dC5wcmludChjb21tYSwgInRhc2sgPSAiLCBSYXdQb2ludGVyKG1f
dGFzay5nZXQoKSkpOworfQorCitWYWx1ZSogUG9seUp1bXBWYWx1ZTo6Y2xvbmVJbXBsKCkgY29u
c3QKK3sKKyAgICBkYXRhTG9nKCJGQVRBTDogQXR0ZW1wdCB0byBjbG9uZSBub24tY2xvbmVhYmxl
IFBvbHlKdW1wVmFsdWUhXG4iKTsKKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
fQorCitQb2x5SnVtcFZhbHVlOjpQb2x5SnVtcFZhbHVlKE9yaWdpbiBvcmlnaW4sIFZhbHVlKiBj
aGlsZCkKKyAgICA6IENvbnRyb2xWYWx1ZShQb2x5SnVtcCwgVm9pZCwgb3JpZ2luLCBjaGlsZCkK
K3sKK30KKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzCisKKyNlbmRpZiAvLyBFTkFCTEUoQjNf
SklUKQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQb2x5SnVtcFZhbHVlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUG9seUp1bXBWYWx1ZS5o
CShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUG9seUp1bXBWYWx1
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBCM1BvbHlKdW1wVmFsdWVfaAorI2Rl
ZmluZSBCM1BvbHlKdW1wVmFsdWVfaAorCisjaWYgRU5BQkxFKEIzX0pJVCkKKworI2luY2x1ZGUg
IkIzQ29udHJvbFZhbHVlLmgiCisjaW5jbHVkZSA8d3RmL1NoYXJlZFRhc2suaD4KKworbmFtZXNw
YWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CisKK2NsYXNzIFBvbHlKdW1wVmFsdWUgOiBwdWJsaWMg
Q29udHJvbFZhbHVlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgYm9vbCBhY2NlcHRzKE9wY29kZSBv
cGNvZGUpIHsgcmV0dXJuIG9wY29kZSA9PSBQb2x5SnVtcDsgfQorICAgIAorICAgIH5Qb2x5SnVt
cFZhbHVlKCk7CisgICAgCisgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBhcHBlbmRTdWNjZXNz
b3IoY29uc3QgRnJlcXVlbnRlZEJsb2NrJik7CisgICAgCisgICAgdHlwZWRlZiB2b2lkIENhbGxi
YWNrRnVuY3Rpb25UeXBlKGNvbnN0IFZlY3RvcjxNYWNyb0Fzc2VtYmxlckNvZGVQdHI+Jik7Cisg
ICAgCisgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBzZXRDYWxsYmFja1Rhc2soUmVmUHRyPFNo
YXJlZFRhc2s8Q2FsbGJhY2tGdW5jdGlvblR5cGU+PiB0YXNrKTsKKyAgICAKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBGdW5jPgorICAgIHZvaWQgc2V0Q2FsbGJhY2soY29uc3QgRnVuYyYgZnVuYykK
KyAgICB7CisgICAgICAgIHNldENhbGxiYWNrVGFzayhjcmVhdGVTaGFyZWRUYXNrPENhbGxiYWNr
RnVuY3Rpb25UeXBlPihmdW5jKSk7CisgICAgfQorICAgIAorICAgIFNoYXJlZFRhc2s8Q2FsbGJh
Y2tGdW5jdGlvblR5cGU+KiBjYWxsYmFja1Rhc2soKSBjb25zdCB7IHJldHVybiBtX3Rhc2suZ2V0
KCk7IH0KKyAgICAKKyAgICBib29sIGlzQ2xvbmVhYmxlKCkgY29uc3Qgb3ZlcnJpZGU7CisKK3By
b3RlY3RlZDoKKyAgICB2b2lkIGR1bXBNZXRhKENvbW1hUHJpbnRlciYsIFByaW50U3RyZWFtJikg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgCisgICAgVmFsdWUqIGNsb25lSW1wbCgpIGNvbnN0IG92ZXJy
aWRlOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBQcm9jZWR1cmU7CisgICAgCisgICAg
SlNfRVhQT1JUX1BSSVZBVEUgUG9seUp1bXBWYWx1ZShPcmlnaW4sIFZhbHVlKiBjaGlsZCk7Cisg
ICAgCisgICAgUmVmUHRyPFNoYXJlZFRhc2s8Q2FsbGJhY2tGdW5jdGlvblR5cGU+PiBtX3Rhc2s7
Cit9OworCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKKworI2VuZGlmIC8vIEVOQUJMRShCM19K
SVQpCisKKyNlbmRpZiAvLyBCM1BvbHlKdW1wVmFsdWVfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgzLDYg
KzgzLDggQEAgVmFyaWFibGUqIFByb2NlZHVyZTo6YWRkVmFyaWFibGUoVHlwZSB0eQogCiBWYWx1
ZSogUHJvY2VkdXJlOjpjbG9uZShWYWx1ZSogdmFsdWUpCiB7CisgICAgQVNTRVJUKHZhbHVlLT5p
c0Nsb25lYWJsZSgpKTsKKyAgICAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmFsdWU+IGNsb25lKHZh
bHVlLT5jbG9uZUltcGwoKSk7CiAgICAgY2xvbmUtPm1faW5kZXggPSBVSU5UX01BWDsKICAgICBj
bG9uZS0+b3duZXIgPSBudWxscHRyOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
UHJvY2VkdXJlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJv
Y2VkdXJlLmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1Byb2NlZHVyZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsNiArMTAxLDcgQEAgcHVibGljOgog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5hbWUuLi4gQXJndW1lbnRzPgog
ICAgIFZhbHVlVHlwZSogYWRkKEFyZ3VtZW50cy4uLik7CiAKKyAgICAvLyBOb3RlIHRoYXQgbm90
IGFsbCB2YWx1ZXMgYXJlIGNsb25lYWJsZS4gQ2hlY2sgVmFsdWU6OmlzQ2xvbmVhYmxlKCkgYmVm
b3JlIHByb2NlZWRpbmcuCiAgICAgVmFsdWUqIGNsb25lKFZhbHVlKik7CiAKICAgICBWYWx1ZSog
YWRkSW50Q29uc3RhbnQoT3JpZ2luLCBUeXBlLCBpbnQ2NF90IHZhbHVlKTsKQEAgLTIxOCw2ICsy
MTksOSBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBjaGFyKiBsYXN0UGhhc2VOYW1lKCkgY29uc3Qg
eyByZXR1cm4gbV9sYXN0UGhhc2VOYW1lOyB9CiAKKyAgICAvLyBBbGxvY2F0ZXMgYSBzbGFiIG9m
IG1lbW9yeSB0aGF0IHdpbGwgYmUga2VwdCBhbGl2ZSBieSBhbnlvbmUgd2hvIGtlZXBzIHRoZSBy
ZXN1bHRpbmcgY29kZQorICAgIC8vIGFsaXZlLiBHcmVhdCBmb3IgY29tcGlsZXItZ2VuZXJhdGVk
IGRhdGEgc2VjdGlvbnMsIGxpa2Ugc3dpdGNoIGp1bXAgdGFibGVzIGFuZCBjb25zdGFudCBwb29s
cy4KKyAgICAvLyBUaGlzIHJldHVybnMgbWVtb3J5IHRoYXQgaGFzIGJlZW4gemVyby1pbml0aWFs
aXplZC4KICAgICB2b2lkKiBhZGREYXRhU2VjdGlvbihzaXplX3Qgc2l6ZSk7CiAKICAgICBPcGFx
dWVCeXByb2R1Y3RzJiBieXByb2R1Y3RzKCkgeyByZXR1cm4gKm1fYnlwcm9kdWN0czsgfQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcAkocmV2
aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5n
dGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzczLDcgKzE3NzMsMTcgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlLT5vcGNvZGUoKSA9PSBTZWxlY3QKICAgICAg
ICAgICAgICAgICAgICAgICAgICYmICh2YWx1ZS0+Y2hpbGQoMSktPmlzQ29uc3RhbnQoKSAmJiB2
YWx1ZS0+Y2hpbGQoMiktPmlzQ29uc3RhbnQoKSk7CiAgICAgICAgICAgICAgICAgfSk7Ci0gICAg
ICAgICAgICBpZiAoc2VsZWN0KSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIE1ha2Ug
c3VyZSB0aGF0IHRoZSByZWxldmFudCBjb2RlIGlzIGNsb25lYWJsZS4KKyAgICAgICAgICAgIGJv
b2wgYWxsQXJlQ2xvbmVhYmxlID0gdHJ1ZTsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgaW5k
ZXggPSBtX2luZGV4ICsgMTsgaW5kZXgtLTspIHsKKyAgICAgICAgICAgICAgICBWYWx1ZSogdmFs
dWUgPSBtX2Jsb2NrLT5hdChpbmRleCk7CisgICAgICAgICAgICAgICAgYWxsQXJlQ2xvbmVhYmxl
ICY9IHZhbHVlLT5pc0Nsb25lYWJsZSgpOworICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBz
ZWxlY3QpCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgCisgICAgICAgICAgICBpZiAoc2VsZWN0ICYmIGFsbEFyZUNsb25lYWJsZSkgewogICAg
ICAgICAgICAgICAgIHNwZWNpYWxpemVTZWxlY3Qoc2VsZWN0KTsKICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Zh
bGlkYXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWxp
ZGF0ZS5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1ZhbGlkYXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzg3LDYgKzM4NywxMSBAQCBwdWJsaWM6
CiAgICAgICAgICAgICAgICAgVkFMSURBVEUoaXNJbnQodmFsdWUtPmNoaWxkKDApLT50eXBlKCkp
LCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBl
KCkgPT0gVm9pZCwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgUG9seUp1bXA6CisgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUt
Pm51bUNoaWxkcmVuKCkgPT0gMSwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBW
QUxJREFURSh2YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSA9PSBwb2ludGVyVHlwZSgpLCAoIkF0ICIs
ICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgPT0gVm9p
ZCwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
IH0KIAogICAgICAgICAgICAgVkFMSURBVEUoISh2YWx1ZS0+ZWZmZWN0cygpLndyaXRlcyAmJiB2
YWx1ZS0+a2V5KCkpLCAoIkF0ICIsICp2YWx1ZSkpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzVmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1ZhbHVlLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzVmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NTIsNiArNTUyLDcgQEAgRWZmZWN0
cyBWYWx1ZTo6ZWZmZWN0cygpIGNvbnN0CiAgICAgY2FzZSBKdW1wOgogICAgIGNhc2UgQnJhbmNo
OgogICAgIGNhc2UgU3dpdGNoOgorICAgIGNhc2UgUG9seUp1bXA6CiAgICAgY2FzZSBSZXR1cm46
CiAgICAgY2FzZSBPb3BzOgogICAgICAgICByZXN1bHQudGVybWluYWwgPSB0cnVlOwpAQCAtNTYw
LDYgKzU2MSwxMSBAQCBFZmZlY3RzIFZhbHVlOjplZmZlY3RzKCkgY29uc3QKICAgICByZXR1cm4g
cmVzdWx0OwogfQogCitib29sIFZhbHVlOjppc0Nsb25lYWJsZSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIHRydWU7Cit9CisKIFZhbHVlS2V5IFZhbHVlOjprZXkoKSBjb25zdAogewogICAgIHN3aXRj
aCAob3Bjb2RlKCkpIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuaAkocmV2aXNp
b24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjIzLDYgKzIyMywxMSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0xpa2VOb25a
ZXJvKCkgY29uc3QgeyByZXR1cm4gYXNUcmlTdGF0ZSgpID09IFRydWVUcmlTdGF0ZTsgfQogCiAg
ICAgRWZmZWN0cyBlZmZlY3RzKCkgY29uc3Q7CisgICAgCisgICAgLy8gU29tZSBvcGVyYXRpb25z
IHdpbGwgcmVmdXNlIHRvIGJlIGNsb25lZC4gVGhpcyBoYXBwZW5zIHdoZW4gdGhlIG9wZXJhdGlv
biBoYXMgc29tZSBpbnNpZGUKKyAgICAvLyBrbm93bGVkZ2UgYWJvdXQgdGhlIHJlbGF0aW9uc2hp
cCBiZXR3ZWVuIGl0cyBpZGVudGl0eSBhbmQgdGhlIGlkZW50aXR5IG9mIHRoZSBjb2RlIGl0IHdp
bGwKKyAgICAvLyBnZW5lcmF0ZS4KKyAgICB2aXJ0dWFsIGJvb2wgaXNDbG9uZWFibGUoKSBjb25z
dDsKIAogICAgIC8vIFRoaXMgcmV0dXJucyBhIFZhbHVlS2V5IHRoYXQgZGVzY3JpYmVzIHRoYXQg
dGhpcyBWYWx1ZSByZXR1cm5zIHdoZW4gaXQgZXhlY3V0ZXMuIFJldHVybnMgYW4KICAgICAvLyBl
bXB0eSBWYWx1ZUtleSBpZiB0aGlzIFZhbHVlIGlzIGltcHVyZS4gTm90ZSB0aGF0IGFuIG9wZXJh
dGlvbiB0aGF0IHJldHVybnMgVm9pZCBjb3VsZCBzdGlsbApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL3Rlc3RiMy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL3Rlc3RiMy5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy90ZXN0YjMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVk
ZSAiQjNDb25zdFB0clZhbHVlLmgiCiAjaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKICNpbmNs
dWRlICJCM0VmZmVjdHMuaCIKKyNpbmNsdWRlICJCM1BvbHlKdW1wVmFsdWUuaCIKICNpbmNsdWRl
ICJCM01hdGhFeHRyYXMuaCIKICNpbmNsdWRlICJCM01lbW9yeVZhbHVlLmgiCiAjaW5jbHVkZSAi
QjNQcm9jZWR1cmUuaCIKQEAgLTQ2LDYgKzQ3LDcgQEAKICNpbmNsdWRlICJCM1Vwc2lsb25WYWx1
ZS5oIgogI2luY2x1ZGUgIkIzVmFsaWRhdGUuaCIKICNpbmNsdWRlICJCM1ZhbHVlSW5saW5lcy5o
IgorI2luY2x1ZGUgIkIzVmFyaWFibGVWYWx1ZS5oIgogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5o
IgogI2luY2x1ZGUgIkluaXRpYWxpemVUaHJlYWRpbmcuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVz
LmgiCkBAIC01NCw2ICs1Niw3IEBACiAjaW5jbHVkZSAiVk0uaCIKICNpbmNsdWRlIDxjbWF0aD4K
ICNpbmNsdWRlIDxzdHJpbmc+CisjaW5jbHVkZSA8d3RmL0xpc3REdW1wLmg+CiAjaW5jbHVkZSA8
d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTnVtYmVyT2ZDb3Jlcy5oPgogI2luY2x1ZGUgPHd0
Zi9UaHJlYWRpbmcuaD4KQEAgLTc1LDYgKzc4LDExIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M6OkIz
OwogCiBuYW1lc3BhY2UgewogCitib29sIHNob3VsZEJlVmVyYm9zZSgpCit7CisgICAgcmV0dXJu
IHNob3VsZER1bXBJUihCM01vZGUpOworfQorCiBTdGF0aWNMb2NrIGNyYXNoTG9jazsKIAogLy8g
Tm90aGluZyBmYW5jeSBmb3Igbm93OyB3ZSBqdXN0IHVzZSB0aGUgZXhpc3RpbmcgV1RGIGFzc2Vy
dGlvbiBtYWNoaW5lcnkuCkBAIC0xMDE3MCw3ICsxMDE3OCwxMCBAQCB2b2lkIHRlc3RTd2l0Y2hD
aGlsbERpdih1bnNpZ25lZCBkZWdyZWUsCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsK
IAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBkZWdyZWU7ICsraSkgewotICAgICAgICBD
SEVDSyhpbnZva2U8aW50MzJfdD4oKmNvZGUsIGkgKiBnYXAsIDQyLCAxMSkgPT0gKChpICYgMSkg
PyAxMS80MiA6IDQyLzExKSk7CisgICAgICAgIGRhdGFMb2coImkgPSAiLCBpLCAiXG4iKTsKKyAg
ICAgICAgaW50MzJfdCByZXN1bHQgPSBpbnZva2U8aW50MzJfdD4oKmNvZGUsIGkgKiBnYXAsIDQy
LCAxMSk7CisgICAgICAgIGRhdGFMb2coInJlc3VsdCA9ICIsIHJlc3VsdCwgIlxuIik7CisgICAg
ICAgIENIRUNLKHJlc3VsdCA9PSAoKGkgJiAxKSA/IDExLzQyIDogNDIvMTEpKTsKICAgICAgICAg
aWYgKGdhcCA+IDEpIHsKICAgICAgICAgICAgIENIRUNLKCFpbnZva2U8aW50MzJfdD4oKmNvZGUs
IGkgKiBnYXAgKyAxLCA0MiwgMTEpKTsKICAgICAgICAgICAgIENIRUNLKCFpbnZva2U8aW50MzJf
dD4oKmNvZGUsIGkgKiBnYXAgLSAxLCA0MiwgMTEpKTsKQEAgLTEyMDkyLDYgKzEyMTAzLDIzMSBA
QCB2b2lkIHRlc3RMYXRlUmVnaXN0ZXIoKQogICAgIENIRUNLKGludm9rZTx1aW50NjRfdD4oKmNv
ZGUpID09IHJlc3VsdCk7CiB9CiAKK3ZvaWQgdGhyZWFkZWRJbnRlcnByZXRlclByaW50KFZlY3Rv
cjxpbnRwdHJfdD4qIHN0cmVhbSwgaW50cHRyX3QgdmFsdWUpCit7CisgICAgc3RyZWFtLT5hcHBl
bmQodmFsdWUpOworfQorCit2b2lkIHRlc3RUaHJlYWRlZEludGVycHJldGVyKCkKK3sKKyAgICAv
LyBUaGlzIGNyZWF0ZXMgYSBwb29yIG1hbidzIHRocmVhZGVkIGludGVycHJldGVyIHVzaW5nIFBv
bHlKdW1wIGFuZCBzZWVzIGlmIGl0IHdvcmtzLiBOb3RlCisgICAgLy8gdGhhdCBQb2x5SnVtcCBp
cyBub3QgbGlrZSBpbmRpcmVjdCBicmFuY2hlcyBpbiBMTFZNLCBzbyB5b3UgY2FuJ3QgYWN0dWFs
bHkgdXNlIGl0IHRvCisgICAgLy8gaW1wbGVtZW50IGEgcHJvcGVyIHRocmVhZGVkIGludGVycHJl
dGVyLiBUaGlzIGNoZWF0czogdGhlIGRpc3BhdGNoIGluc3RydWN0aW9uIGlzIGF0IHRoZSB0b3AK
KyAgICAvLyBvZiB0aGUgbG9vcC4gVGhpcyBhbHNvIHRlc3RzIFZhcmlhYmxlVmFsdWUuCisgICAg
CisgICAgUHJvY2VkdXJlIHByb2M7CisgICAgCisgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKKyAgICBCYXNpY0Jsb2NrKiBkaXNwYXRjaCA9IHByb2MuYWRkQmxvY2soKTsK
KyAgICBCYXNpY0Jsb2NrKiBhZGRUb0RhdGFQb2ludGVyID0gcHJvYy5hZGRCbG9jaygpOworICAg
IEJhc2ljQmxvY2sqIGFkZFRvQ29kZVBvaW50ZXIgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFz
aWNCbG9jayogYWRkVG9Db2RlUG9pbnRlclRha2VuID0gcHJvYy5hZGRCbG9jaygpOworICAgIEJh
c2ljQmxvY2sqIGFkZFRvQ29kZVBvaW50ZXJOb3RUYWtlbiA9IHByb2MuYWRkQmxvY2soKTsKKyAg
ICBCYXNpY0Jsb2NrKiBhZGRUb0RhdGEgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9j
ayogcHJpbnQgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayogc3RvcCA9IHByb2Mu
YWRkQmxvY2soKTsKKyAgICAKKyAgICBWYXJpYWJsZSogZGF0YVBvaW50ZXIgPSBwcm9jLmFkZFZh
cmlhYmxlKHBvaW50ZXJUeXBlKCkpOworICAgIFZhcmlhYmxlKiBjb2RlUG9pbnRlciA9IHByb2Mu
YWRkVmFyaWFibGUocG9pbnRlclR5cGUoKSk7CisgICAgCisgICAgcm9vdC0+YXBwZW5kTmV3PFZh
cmlhYmxlVmFsdWU+KAorICAgICAgICBwcm9jLCBTZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRlciwK
KyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKKyAgICByb290LT5hcHBlbmROZXc8VmFyaWFibGVW
YWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyLAorICAgICAg
ICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMSkpOworICAgIFZhbHVlKiBjb250ZXh0ID0gcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIp
OworICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigp
LCBGcmVxdWVudGVkQmxvY2soZGlzcGF0Y2gpKTsKKyAgICAKKyAgICBQb2x5SnVtcFZhbHVlKiBw
b2x5SnVtcCA9IGRpc3BhdGNoLT5hcHBlbmROZXc8UG9seUp1bXBWYWx1ZT4oCisgICAgICAgIHBy
b2MsIE9yaWdpbigpLAorICAgICAgICBkaXNwYXRjaC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigK
KyAgICAgICAgICAgIHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLAorICAgICAg
ICAgICAgZGlzcGF0Y2gtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPigKKyAgICAgICAgICAgICAg
ICBwcm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIpKSk7CisgICAgcG9seUp1bXAt
PmFwcGVuZFN1Y2Nlc3NvcihGcmVxdWVudGVkQmxvY2soYWRkVG9EYXRhUG9pbnRlcikpOworICAg
IHBvbHlKdW1wLT5hcHBlbmRTdWNjZXNzb3IoRnJlcXVlbnRlZEJsb2NrKGFkZFRvQ29kZVBvaW50
ZXIpKTsKKyAgICBwb2x5SnVtcC0+YXBwZW5kU3VjY2Vzc29yKEZyZXF1ZW50ZWRCbG9jayhhZGRU
b0RhdGEpKTsKKyAgICBwb2x5SnVtcC0+YXBwZW5kU3VjY2Vzc29yKEZyZXF1ZW50ZWRCbG9jayhw
cmludCkpOworICAgIHBvbHlKdW1wLT5hcHBlbmRTdWNjZXNzb3IoRnJlcXVlbnRlZEJsb2NrKHN0
b3ApKTsKKyAgICAKKyAgICAvLyBPdXIgIm9wY29kZXMiLiBUaGV5IHdpbGwgaGF2ZSBtZWFuaW5n
IG9uY2Ugd2UgY29tcGlsZS4KKyAgICBpbnRwdHJfdCBBZGREUCA9IDA7CisgICAgaW50cHRyX3Qg
QWRkQ1AgPSAwOworICAgIGludHB0cl90IEFkZCA9IDA7CisgICAgaW50cHRyX3QgUHJpbnQgPSAw
OworICAgIGludHB0cl90IFN0b3AgPSAwOworICAgIHBvbHlKdW1wLT5zZXRDYWxsYmFjaygKKyAg
ICAgICAgWyZdIChjb25zdCBWZWN0b3I8TWFjcm9Bc3NlbWJsZXJDb2RlUHRyPiYgcG9pbnRlcnMp
IHsKKyAgICAgICAgICAgIGF1dG8gZ2V0ID0gWyZdIChzaXplX3QgaW5kZXgpIC0+IGludHB0cl90
IHsKKyAgICAgICAgICAgICAgICByZXR1cm4gYml0d2lzZV9jYXN0PGludHB0cl90Pihwb2ludGVy
c1tpbmRleF0uZXhlY3V0YWJsZUFkZHJlc3MoKSk7CisgICAgICAgICAgICB9OworICAgICAgICAg
ICAgCisgICAgICAgICAgICBBZGREUCA9IGdldCgwKTsKKyAgICAgICAgICAgIEFkZENQID0gZ2V0
KDEpOworICAgICAgICAgICAgQWRkID0gZ2V0KDIpOworICAgICAgICAgICAgUHJpbnQgPSBnZXQo
Myk7CisgICAgICAgICAgICBTdG9wID0gZ2V0KDQpOworICAgICAgICB9KTsKKyAgICAKKyAgICAv
LyBBZGREUCA8b3BlcmFuZD46IGFkZHMgPG9wZXJhbmQ+IHRvIERQLgorICAgIFZhbHVlKiBjb2Rl
UG9pbnRlclZhbHVlID0KKyAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhcmlh
YmxlVmFsdWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlcik7CisgICAgYWRk
VG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAgICAgICBwcm9jLCBT
ZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRlciwKKyAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBw
ZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEIzOjpBZGQsIE9yaWdpbigpLAorICAg
ICAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHByb2Ms
IEIzOjpHZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRlciksCisgICAgICAgICAgICBhZGRUb0RhdGFQ
b2ludGVyLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgICAgIHByb2MsIE11bCwgT3Jp
Z2luKCksCisgICAgICAgICAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PE1lbW9y
eVZhbHVlPigKKyAgICAgICAgICAgICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwg
T3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUsIHNpemVvZihpbnRwdHJfdCkpLAorICAgICAgICAg
ICAgICAgIGFkZFRvRGF0YVBvaW50ZXItPmFwcGVuZEludENvbnN0YW50KAorICAgICAgICAgICAg
ICAgICAgICBwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6ZW9mKGludHB0cl90KSkp
KSk7CisgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAg
ICAgICBwcm9jLCBTZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlciwKKyAgICAgICAgYWRkVG9EYXRh
UG9pbnRlci0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEIzOjpBZGQsIE9y
aWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLAorICAgICAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+
YXBwZW5kSW50Q29uc3RhbnQoCisgICAgICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksIHBvaW50
ZXJUeXBlKCksIHNpemVvZihpbnRwdHJfdCkgKiAyKSkpOworICAgIGFkZFRvRGF0YVBvaW50ZXIt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVk
QmxvY2soZGlzcGF0Y2gpKTsKKyAgICAKKyAgICAvLyBBZGRDUCA8b3BlcmFuZD46IGFkZHMgPG9w
ZXJhbmQ+IHRvIENQIGlmIHRoZSBjdXJyZW50IHZhbHVlIGF0IERQIGlzIG5vbi16ZXJvLCBvdGhl
cndpc2UKKyAgICAvLyBmYWxscyB0aHJvdWdoIG5vcm1hbGx5LgorICAgIGNvZGVQb2ludGVyVmFs
dWUgPQorICAgICAgICBhZGRUb0NvZGVQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4o
cHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyKTsKKyAgICBWYWx1ZSogZGF0YVBv
aW50ZXJWYWx1ZSA9CisgICAgICAgIGFkZFRvQ29kZVBvaW50ZXItPmFwcGVuZE5ldzxWYXJpYWJs
ZVZhbHVlPihwcm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwgZGF0YVBvaW50ZXIpOworICAgIGFkZFRv
Q29kZVBvaW50ZXItPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICBwcm9jLCBCcmFu
Y2gsIE9yaWdpbigpLAorICAgICAgICBhZGRUb0NvZGVQb2ludGVyLT5hcHBlbmROZXc8TWVtb3J5
VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCks
IGRhdGFQb2ludGVyVmFsdWUpLAorICAgICAgICBGcmVxdWVudGVkQmxvY2soYWRkVG9Db2RlUG9p
bnRlclRha2VuKSwgRnJlcXVlbnRlZEJsb2NrKGFkZFRvQ29kZVBvaW50ZXJOb3RUYWtlbikpOwor
ICAgIGFkZFRvQ29kZVBvaW50ZXJUYWtlbi0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAg
ICAgICBwcm9jLCBTZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlciwKKyAgICAgICAgYWRkVG9Db2Rl
UG9pbnRlclRha2VuLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgQjM6OkFk
ZCwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUsCisgICAgICAgICAgICBhZGRUb0NvZGVQb2lu
dGVyVGFrZW4tPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICAgICAgcHJvYywgTXVsLCBP
cmlnaW4oKSwKKyAgICAgICAgICAgICAgICBhZGRUb0NvZGVQb2ludGVyVGFrZW4tPmFwcGVuZE5l
dzxNZW1vcnlWYWx1ZT4oCisgICAgICAgICAgICAgICAgICAgIHByb2MsIExvYWQsIHBvaW50ZXJU
eXBlKCksIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLCBzaXplb2YoaW50cHRyX3QpKSwKKyAg
ICAgICAgICAgICAgICBhZGRUb0NvZGVQb2ludGVyVGFrZW4tPmFwcGVuZEludENvbnN0YW50KAor
ICAgICAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6ZW9m
KGludHB0cl90KSkpKSk7CisgICAgYWRkVG9Db2RlUG9pbnRlclRha2VuLT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRpc3BhdGNo
KSk7CisgICAgYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1
ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyLAorICAgICAgICBh
ZGRUb0NvZGVQb2ludGVyTm90VGFrZW4tPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICBw
cm9jLCBCMzo6QWRkLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwKKyAgICAgICAgICAgIGFk
ZFRvQ29kZVBvaW50ZXJOb3RUYWtlbi0+YXBwZW5kSW50Q29uc3RhbnQoCisgICAgICAgICAgICAg
ICAgcHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBlKCksIHNpemVvZihpbnRwdHJfdCkgKiAyKSkp
OworICAgIGFkZFRvQ29kZVBvaW50ZXJOb3RUYWtlbi0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgICAgIHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZGlzcGF0Y2gp
KTsKKworICAgIC8vIEFkZCA8b3BlcmFuZD46IGFkZHMgPG9wZXJhbmQ+IHRvIHRoZSBzbG90IHBv
aW50ZWQgdG8gYnkgRFAuCisgICAgY29kZVBvaW50ZXJWYWx1ZSA9IGFkZFRvRGF0YS0+YXBwZW5k
TmV3PFZhcmlhYmxlVmFsdWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlcik7
CisgICAgZGF0YVBvaW50ZXJWYWx1ZSA9IGFkZFRvRGF0YS0+YXBwZW5kTmV3PFZhcmlhYmxlVmFs
dWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRlcik7CisgICAgYWRkVG9EYXRh
LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICBwcm9jLCBTdG9yZSwgT3JpZ2luKCks
CisgICAgICAgIGFkZFRvRGF0YS0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2Ms
IEIzOjpBZGQsIE9yaWdpbigpLAorICAgICAgICAgICAgYWRkVG9EYXRhLT5hcHBlbmROZXc8TWVt
b3J5VmFsdWU+KAorICAgICAgICAgICAgICAgIHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9y
aWdpbigpLCBkYXRhUG9pbnRlclZhbHVlKSwKKyAgICAgICAgICAgIGFkZFRvRGF0YS0+YXBwZW5k
TmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVyVHlw
ZSgpLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwgc2l6ZW9mKGludHB0cl90KSkpLAorICAg
ICAgICBkYXRhUG9pbnRlclZhbHVlKTsKKyAgICBhZGRUb0RhdGEtPmFwcGVuZE5ldzxWYXJpYWJs
ZVZhbHVlPigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIsCisgICAg
ICAgIGFkZFRvRGF0YS0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEIzOjpB
ZGQsIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLAorICAgICAgICAgICAgYWRkVG9EYXRhLT5h
cHBlbmRJbnRDb25zdGFudChwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6ZW9mKGlu
dHB0cl90KSAqIDIpKSk7CisgICAgYWRkVG9EYXRhLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRpc3BhdGNoKSk7CisgICAgCisg
ICAgLy8gUHJpbnQ6ICJwcmludHMiIHRoZSB2YWx1ZSBwb2ludGVkIHRvIGJ5IERQLiBXaGF0IHRo
aXMgYWN0dWFsbHkgbWVhbnMgaXMgdGhhdCB0aGUgdmFsdWUgaXMKKyAgICAvLyBhcHBlbmRlZCB0
byB0aGUgc3RyZWFtIHZlY3RvciBieSB0aGUgdGhyZWFkZWRJbnRlcnByZXRlclByaW50IGZ1bmN0
aW9uLgorICAgIGNvZGVQb2ludGVyVmFsdWUgPSBwcmludC0+YXBwZW5kTmV3PFZhcmlhYmxlVmFs
dWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlcik7CisgICAgZGF0YVBvaW50
ZXJWYWx1ZSA9IHByaW50LT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwg
T3JpZ2luKCksIGRhdGFQb2ludGVyKTsKKyAgICBwcmludC0+YXBwZW5kTmV3PENDYWxsVmFsdWU+
KAorICAgICAgICBwcm9jLCBWb2lkLCBPcmlnaW4oKSwKKyAgICAgICAgcHJpbnQtPmFwcGVuZE5l
dzxDb25zdFB0clZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLCBiaXR3aXNlX2Nh
c3Q8dm9pZCo+KHRocmVhZGVkSW50ZXJwcmV0ZXJQcmludCkpLAorICAgICAgICBjb250ZXh0LAor
ICAgICAgICBwcmludC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBwb2ludGVy
VHlwZSgpLCBPcmlnaW4oKSwgZGF0YVBvaW50ZXJWYWx1ZSkpOworICAgIHByaW50LT5hcHBlbmRO
ZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2lu
dGVyLAorICAgICAgICBwcmludC0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2Ms
IEIzOjpBZGQsIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLAorICAgICAgICAgICAgcHJpbnQt
PmFwcGVuZEludENvbnN0YW50KHByb2MsIE9yaWdpbigpLCBwb2ludGVyVHlwZSgpLCBzaXplb2Yo
aW50cHRyX3QpKSkpOworICAgIHByaW50LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBK
dW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRpc3BhdGNoKSk7CisgICAgCisgICAgLy8g
U3RvcDogcmV0dXJucy4KKyAgICBzdG9wLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICAgICAgc3RvcC0+YXBwZW5kSW50Q29uc3Rh
bnQocHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBlKCksIDApKTsKKyAgICAKKyAgICBhdXRvIGlu
dGVycHJldGVyID0gY29tcGlsZShwcm9jKTsKKyAgICAKKyAgICBDSEVDSyhBZGREUCk7CisgICAg
Q0hFQ0soQWRkQ1ApOworICAgIENIRUNLKEFkZCk7CisgICAgQ0hFQ0soUHJpbnQpOworICAgIENI
RUNLKFN0b3ApOworICAgIAorICAgIFZlY3RvcjxpbnRwdHJfdD4gZGF0YTsKKyAgICBWZWN0b3I8
aW50cHRyX3Q+IGNvZGU7CisgICAgVmVjdG9yPGludHB0cl90PiBzdHJlYW07CisgICAgCisgICAg
ZGF0YS5hcHBlbmQoMSk7CisgICAgZGF0YS5hcHBlbmQoMCk7CisgICAgCisgICAgaWYgKHNob3Vs
ZEJlVmVyYm9zZSgpKQorICAgICAgICBkYXRhTG9nKCJkYXRhID0gIiwgbGlzdER1bXAoZGF0YSks
ICJcbiIpOworICAgIAorICAgIC8vIFdlJ2xsIHdyaXRlIGEgcHJvZ3JhbSB0aGF0IHByaW50cyB0
aGUgbnVtYmVycyAxLi4xMDAuCisgICAgLy8gV2UgZXhwZWN0IERQIHRvIHBvaW50IGF0ICMwLgor
ICAgIGNvZGUuYXBwZW5kKEFkZENQKTsKKyAgICBjb2RlLmFwcGVuZCg2KTsgLy8gZ28gdG8gbG9v
cCBib2R5CisgICAgCisgICAgLy8gTG9vcCByZS1lbnRyeToKKyAgICAvLyBXZSBleHBlY3QgRFAg
dG8gcG9pbnQgYXQgIzEgYW5kIGZvciAjMSB0byBiZSBvZmZzZXQgYnkgLTEwMC4KKyAgICBjb2Rl
LmFwcGVuZChBZGQpOworICAgIGNvZGUuYXBwZW5kKDEwMCk7CisgICAgCisgICAgY29kZS5hcHBl
bmQoQWRkRFApOworICAgIGNvZGUuYXBwZW5kKC0xKTsKKyAgICAKKyAgICAvLyBMb29wIGhlYWRl
cjoKKyAgICAvLyBXZSBleHBlY3QgRFAgdG8gcG9pbnQgYXQgIzAuCisgICAgY29kZS5hcHBlbmQo
QWRkRFApOworICAgIGNvZGUuYXBwZW5kKDEpOworICAgIAorICAgIGNvZGUuYXBwZW5kKEFkZCk7
CisgICAgY29kZS5hcHBlbmQoMSk7CisgICAgCisgICAgY29kZS5hcHBlbmQoUHJpbnQpOworICAg
IAorICAgIGNvZGUuYXBwZW5kKEFkZCk7CisgICAgY29kZS5hcHBlbmQoLTEwMCk7CisgICAgCisg
ICAgLy8gV2Ugd2FudCB0byBzdG9wIGlmIGl0J3MgemVybyBhbmQgY29udGludWUgaWYgaXQncyBu
b24temVyby4gQWRkQ1AgdGFrZXMgdGhlIGJyYW5jaCBpZiBpdCdzCisgICAgLy8gbm9uLXplcm8u
CisgICAgY29kZS5hcHBlbmQoQWRkQ1ApOworICAgIGNvZGUuYXBwZW5kKC0xMSk7IC8vIGdvIHRv
IGxvb3AgcmUtZW50cnkuCisgICAgCisgICAgY29kZS5hcHBlbmQoU3RvcCk7CisgICAgCisgICAg
aWYgKHNob3VsZEJlVmVyYm9zZSgpKQorICAgICAgICBkYXRhTG9nKCJjb2RlID0gIiwgbGlzdER1
bXAoY29kZSksICJcbiIpOworICAgIAorICAgIENIRUNLKCFpbnZva2U8aW50cHRyX3Q+KCppbnRl
cnByZXRlciwgZGF0YS5kYXRhKCksIGNvZGUuZGF0YSgpLCAmc3RyZWFtKSk7CisgICAgCisgICAg
Q0hFQ0soc3RyZWFtLnNpemUoKSA9PSAxMDApOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCAxMDA7ICsraSkKKyAgICAgICAgQ0hFQ0soc3RyZWFtW2ldID09IGkgKyAxKTsKKyAgICAKKyAg
ICBpZiAoc2hvdWxkQmVWZXJib3NlKCkpCisgICAgICAgIGRhdGFMb2coInN0cmVhbSA9ICIsIGxp
c3REdW1wKHN0cmVhbSksICJcbiIpOworfQorCiB2b2lkIHRlc3RSZWR1Y2VTdHJlbmd0aENoZWNr
Qm90dG9tVXNlSW5Bbm90aGVyQmxvY2soKQogewogICAgIFByb2NlZHVyZSBwcm9jOwpAQCAtMTM1
NDcsOCArMTM3ODMsMTMgQEAgdm9pZCBydW4oY29uc3QgY2hhciogZmlsdGVyKQogICAgIFJVTih0
ZXN0U3BpbGxEZWZTbWFsbGVyVGhhblVzZSgpKTsKICAgICBSVU4odGVzdFNwaWxsVXNlTGFyZ2Vy
VGhhbkRlZigpKTsKICAgICBSVU4odGVzdExhdGVSZWdpc3RlcigpKTsKKzw8PDw8PDwgLm1pbmUK
KyAgICAKKyAgICBSVU4odGVzdFRocmVhZGVkSW50ZXJwcmV0ZXIoKSk7Cis9PT09PT09CiAgICAg
UlVOKHRlc3RSZWR1Y2VTdHJlbmd0aENoZWNrQm90dG9tVXNlSW5Bbm90aGVyQmxvY2soKSk7CiAg
ICAgUlVOKHRlc3RSZXNldFJlYWNoYWJpbGl0eURhbmdsaW5nUmVmZXJlbmNlKCkpOworPj4+Pj4+
PiAucjIwMjgwOQogCiAgICAgaWYgKHRhc2tzLmlzRW1wdHkoKSkKICAgICAgICAgdXNhZ2UoKTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5oCShyZXZpc2lvbiAyMDI4
MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuaAkod29ya2luZyBj
b3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkFpclNwZWNpYWwuaCIKICNpbmNsdWRl
ICJBaXJTdGFja1Nsb3QuaCIKICNpbmNsdWRlICJBaXJUbXAuaCIKKyNpbmNsdWRlICJCM0luZGV4
TWFwLmgiCiAjaW5jbHVkZSAiQjNTcGFyc2VDb2xsZWN0aW9uLmgiCiAjaW5jbHVkZSAiUmVnaXN0
ZXJBdE9mZnNldExpc3QuaCIKICNpbmNsdWRlICJTdGFja0FsaWdubWVudC5oIgpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0ZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0ZS5jcHAJKHJldmlzaW9uIDIw
MjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00OCwxMCArNDgsMTMgQEAKICNpbmNsdWRlICJBaXJWYWxpZGF0ZS5o
IgogI2luY2x1ZGUgIkIzQ29tbW9uLmgiCiAjaW5jbHVkZSAiQjNJbmRleE1hcC5oIgorI2luY2x1
ZGUgIkIzUG9seUp1bXBWYWx1ZS5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJlLmgiCiAjaW5jbHVk
ZSAiQjNUaW1pbmdTY29wZS5oIgorI2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiRGlzYWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3Rl
clVzYWdlLmgiCisjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIEIzIHsgbmFtZXNwYWNlIEFpciB7CiAKQEAgLTE5Niw3ICsxOTksOCBAQCB2b2lkIGdl
bmVyYXRlKENvZGUmIGNvZGUsIENDYWxsSGVscGVycyYgCiAKICAgICBmb3IgKEJhc2ljQmxvY2sq
IGJsb2NrIDogY29kZSkgewogICAgICAgICBibG9ja0p1bXBzW2Jsb2NrXS5saW5rKCZqaXQpOwot
ICAgICAgICBibG9ja0xhYmVsc1tibG9ja10gPSBqaXQubGFiZWwoKTsKKyAgICAgICAgQ0NhbGxI
ZWxwZXJzOjpMYWJlbCBsYWJlbCA9IGppdC5sYWJlbCgpOworICAgICAgICBibG9ja0xhYmVsc1ti
bG9ja10gPSBsYWJlbDsKICAgICAgICAgQVNTRVJUKGJsb2NrLT5zaXplKCkgPj0gMSk7CiAgICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBibG9jay0+c2l6ZSgpIC0gMTsgKytpKSB7CiAg
ICAgICAgICAgICBJbnN0JiBpbnN0ID0gYmxvY2stPmF0KGkpOwpAQCAtMjI4LDI2ICsyMzIsNTQg
QEAgdm9pZCBnZW5lcmF0ZShDb2RlJiBjb2RlLCBDQ2FsbEhlbHBlcnMmIAogICAgICAgICAgICAg
YWRkSXRlbShibG9jay0+bGFzdCgpKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
Ci0KKyAgICAgICAgCiAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcCBqdW1wID0gYmxvY2stPmxh
c3QoKS5nZW5lcmF0ZShqaXQsIGNvbnRleHQpOwotICAgICAgICBzd2l0Y2ggKGJsb2NrLT5udW1T
dWNjZXNzb3JzKCkpIHsKLSAgICAgICAgY2FzZSAwOgotICAgICAgICAgICAgQVNTRVJUKCFqdW1w
LmlzU2V0KCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgMToKLSAgICAgICAg
ICAgIGxpbmsoanVtcCwgYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDApKTsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBjYXNlIDI6Ci0gICAgICAgICAgICBsaW5rKGp1bXAsIGJsb2NrLT5zdWNj
ZXNzb3JCbG9jaygwKSk7Ci0gICAgICAgICAgICBpZiAoYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDEp
ICE9IGNvZGUuZmluZE5leHRCbG9jayhibG9jaykpCi0gICAgICAgICAgICAgICAgbGluayhqaXQu
anVtcCgpLCBibG9jay0+c3VjY2Vzc29yQmxvY2soMSkpOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OwotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIC8vIFRoZSBqdW1wIHdvbid0IGJlIHNldCBm
b3IgUG9seUp1bXAgYmVjYXVzZSBpdCBsZXRzIGl0cyBmYWl0aCBpbiB0aGUgYWRkcmVzcyBvcGVy
YW5kCisgICAgICAgIC8vIGd1aWRlIHdoZXJlIGl0IGp1bXBzLiBJdCB3b24ndCBiZSBzZXQgZm9y
IE9vcHMgYmVjYXVzZSB0aGVuIGl0IHdvbid0IGhhdmUgYW55IHN1Y2Nlc3NvcnMuCisgICAgICAg
IGlmIChqdW1wLmlzU2V0KCkpIHsKKyAgICAgICAgICAgIHN3aXRjaCAoYmxvY2stPm51bVN1Y2Nl
c3NvcnMoKSkgeworICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgIGxpbmsoanVt
cCwgYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDApKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICBsaW5rKGp1bXAsIGJsb2NrLT5zdWNj
ZXNzb3JCbG9jaygwKSk7CisgICAgICAgICAgICAgICAgaWYgKGJsb2NrLT5zdWNjZXNzb3JCbG9j
aygxKSAhPSBjb2RlLmZpbmROZXh0QmxvY2soYmxvY2spKQorICAgICAgICAgICAgICAgICAgICBs
aW5rKGppdC5qdW1wKCksIGJsb2NrLT5zdWNjZXNzb3JCbG9jaygxKSk7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIFJFTEVBU0Vf
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICB9CiAgICAgICAgIH0KICAgICAgICAgYWRkSXRlbShibG9jay0+bGFzdCgpKTsKICAgICB9Cisg
ICAgCisgICAgLy8gVGFrZSBjYXJlIG9mIFBvbHlKdW1wLiBXZSBkbyB0aGlzIGxhc3QgYmVjYXVz
ZSBpdCByZWxpZXMgb24ga25vd2luZyB3aGVyZSBhbGwgb2YgdGhlIGJhc2ljCisgICAgLy8gYmxv
Y2sgbGFuZGVkLgorICAgIGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiBjb2RlKSB7CisgICAgICAg
IGlmIChibG9jay0+bGFzdCgpLm9wY29kZSAhPSBQb2x5SnVtcCkKKyAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICAKKyAgICAgICAgUG9seUp1bXBWYWx1ZSogcG9seUp1bXAgPSBibG9jay0+
bGFzdCgpLm9yaWdpbi0+YXM8UG9seUp1bXBWYWx1ZT4oKTsKKyAgICAgICAgUkVMRUFTRV9BU1NF
UlQocG9seUp1bXAtPm51bVN1Y2Nlc3NvcnMoKSA9PSBibG9jay0+bnVtU3VjY2Vzc29ycygpKTsK
KyAgICAgICAgCisgICAgICAgIFJlZlB0cjxTaGFyZWRUYXNrPFBvbHlKdW1wVmFsdWU6OkNhbGxi
YWNrRnVuY3Rpb25UeXBlPj4gdGFzayA9IHBvbHlKdW1wLT5jYWxsYmFja1Rhc2soKTsKKyAgICAg
ICAgaWYgKCF0YXNrKQorICAgICAgICAgICAgY29udGludWU7IC8vIFRoaXMgd291bGQgYmUgd2Vp
cmQsIGJ1dCB3ZSBhbGxvdyBpdC4KKyAgICAgICAgCisgICAgICAgIFZlY3RvcjxDQ2FsbEhlbHBl
cnM6OkxhYmVsPiBsYWJlbHM7CisgICAgICAgIGZvciAoQmFzaWNCbG9jayogc3VjY2Vzc29yIDog
YmxvY2stPnN1Y2Nlc3NvckJsb2NrcygpKQorICAgICAgICAgICAgbGFiZWxzLmFwcGVuZChibG9j
a0xhYmVsc1tzdWNjZXNzb3JdKTsKKyAgICAgICAgCisgICAgICAgIGppdC5hZGRMaW5rVGFzaygK
KyAgICAgICAgICAgIFs9XSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikgeworICAgICAgICAgICAg
ICAgIFZlY3RvcjxNYWNyb0Fzc2VtYmxlckNvZGVQdHI+IHBvaW50ZXJzOworICAgICAgICAgICAg
ICAgIGZvciAoQ0NhbGxIZWxwZXJzOjpMYWJlbCBsYWJlbCA6IGxhYmVscykKKyAgICAgICAgICAg
ICAgICAgICAgcG9pbnRlcnMuYXBwZW5kKGxpbmtCdWZmZXIubG9jYXRpb25PZihsYWJlbCkpOwor
ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHRhc2stPnJ1bihwb2ludGVycyk7Cisg
ICAgICAgICAgICB9KTsKKyAgICB9CiAKICAgICBwY1RvT3JpZ2luTWFwLmFwcGVuZEl0ZW0oaml0
LmxhYmVsKCksIE9yaWdpbigpKTsKICAgICAvLyBGSVhNRTogTWFrZSBsYXRlIHBhdGhzIGhhdmUg
T3JpZ2luczogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MzY4OQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckluc3QuY3BwCShyZXZpc2lvbiAy
MDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckluc3QuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00NSw2ICs0NSwxMSBAQCBib29sIEluc3Q6Omhhc0FyZ0VmZmVjdHMoKQog
ICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK2Jvb2wgSW5zdDo6aXNDbG9uZWFibGUoKQoreworICAg
IHJldHVybiAhb3JpZ2luIHx8IG9yaWdpbi0+aXNDbG9uZWFibGUoKTsKK30KKwogdW5zaWduZWQg
SW5zdDo6anNIYXNoKCkgY29uc3QKIHsKICAgICB1bnNpZ25lZCByZXN1bHQgPSBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4ob3Bjb2RlKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlySW5zdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWly
SW5zdC5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0Fpckluc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMTg4LDYgKzE4OCwxMCBAQCBwdWJsaWM6CiAg
ICAgLy8gcmV0dXJucyAyIGlmIDAgYW5kIDEgYmVuZWZpdCBmcm9tIGFsaWFzaW5nIHRvIFRtcDMu
CiAgICAgT3B0aW9uYWw8dW5zaWduZWQ+IHNob3VsZFRyeUFsaWFzaW5nRGVmKCk7CiAgICAgCisg
ICAgLy8gU29tZSBpbnN0dWN0aW9ucyB3aWxsIHJlZnVzZSB0byBhbGxvdyBjbG9uaW5nLiBJZiB0
aGlzIHJldHVybnMgZmFsc2UsIHlvdSBtdXN0IG1ha2Ugc3VyZSB0aGF0CisgICAgLy8geW91IG5l
dmVyIGludHJvZHVjZSBjb3BpZXMgb2YgdGhlIGluc3RydWN0aW9uLgorICAgIGJvb2wgaXNDbG9u
ZWFibGUoKTsKKyAgICAKICAgICAvLyBUaGlzIGNvbXB1dGVzIGEgaGFzaCBmb3IgY29tcGFyaW5n
IHRoaXMgdG8gSlNBaXIncyBJbnN0LgogICAgIHVuc2lnbmVkIGpzSGFzaCgpIGNvbnN0OwogCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMJ
KHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bj
b2RlLm9wY29kZXMJKHdvcmtpbmcgY29weSkKQEAgLTgzNSw2ICs4MzUsMTQgQEAgTW92ZURvdWJs
ZUNvbmRpdGlvbmFsbHlGbG9hdCBVOkc6MzIsIFU6RgogCiBKdW1wIC9icmFuY2gKIAorIyBUaGlz
IG1hc3F1ZXJhZGVzIGFzIGEgbm9uLWJyYW5jaCB0ZXJtaW5hbCBiZWNhdXNlIGl0IGRvZXNuJ3Qg
bmVlZCB0aGUgdHJhZGl0aW9uYWwgc29ydCBvZiBsaW5raW5nLgorIyAiQnJhbmNoIiBpbiB0aGlz
IGNvbnRleHQganVzdCBtZWFucyB0aGF0IGl0J3MgYSB0ZXJtaW5hbCB0aGF0IHJldHVybnMgYSBK
dW1wIHRoYXQgbmVlZHMgdG8gYmUKKyMgbGlua2VkLiBJbnN0ZWFkLCBBaXI6OmdlbmVyYXRlKCkg
aGFzIGEgc3BlY2lhbC1jYXNlIGZvciBQb2x5SnVtcC4KK1BvbHlKdW1wIFU6RzpQdHIgL3Rlcm1p
bmFsCisgICAgVG1wIGFzIGp1bXAKKyAgICB4ODY6IEFkZHIgYXMganVtcAorICAgIHg4NjogSW5k
ZXggYXMganVtcAorCiBSZXQzMiBVOkc6MzIgL3JldHVybgogICAgIFRtcAogCkluZGV4OiBXZWJz
aXRlcy93ZWJraXQub3JnL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy93ZWJraXQu
b3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMjAyODA5KQorKysgV2Vic2l0ZXMvd2Via2l0Lm9yZy9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxNi0wNS0yOSAgRmls
aXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCB0YWJsZS1i
YXNlZCBzd2l0Y2hlcyBpbiBCMy9BaXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE1MTE0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorICAgICAgICAKKyAgICAgICAgVXBkYXRlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBuZXcg
UG9seUp1bXAgb3Bjb2RlLgorCisgICAgICAgICogZG9jcy9iMy9pbnRlcm1lZGlhdGUtcmVwcmVz
ZW50YXRpb24uaHRtbDoKKwogMjAxNi0wNy0wMSAgSm9uIERhdmlzICA8am9uZEBhcHBsZS5jb20+
CiAKICAgICAgICAgQWRkZWQgYSBjb2xvcmZ1bCBuZXcgaW1hZ2UgYW5kIGZpeGVkIHRoZSBPcGVu
IEdyYXBoIGF0dHJpYnV0ZS4KSW5kZXg6IFdlYnNpdGVzL3dlYmtpdC5vcmcvZG9jcy9iMy9pbnRl
cm1lZGlhdGUtcmVwcmVzZW50YXRpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy93ZWJr
aXQub3JnL2RvY3MvYjMvaW50ZXJtZWRpYXRlLXJlcHJlc2VudGF0aW9uLmh0bWwJKHJldmlzaW9u
IDIwMjgwOSkKKysrIFdlYnNpdGVzL3dlYmtpdC5vcmcvZG9jcy9iMy9pbnRlcm1lZGlhdGUtcmVw
cmVzZW50YXRpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNTM3LDYgKzUzNywzOSBAQCBwYXRj
aHBvaW50LT5zZXRHZW5lcmF0b3IoCiAgICAgICAgIGFsc28gY29udGFpbnMgYSBmYWxsLXRocm91
Z2ggdGFyZ2V0IGluIGNhc2UgdGhlIGNoaWxkIGhhcyBhIHZhbHVlIHRoYXQgd2Fzbid0IG1lbnRp
b25lZAogICAgICAgICBpbiB0aGUgY2FzZXMgbGlzdC4gIE11c3QgdXNlIHRoZSBTd2l0Y2hWYWx1
ZSBjbGFzcy4gIE11c3QgYXBwZWFyIGF0IHRoZSBlbmQgb2YgdGhlIGJhc2ljCiAgICAgICAgIGJs
b2NrLjwvZGQ+CisgICAgICAKKyAgICAgIDxkdD5Wb2lkIFBvbHlKdW1wKEludFB0ciwgYmxvY2tz
Li4uKTwvZHQ+CisgICAgICA8ZGQ+CisgICAgICAgIDxwPkp1bXBzIHRvIHRoZSBnaXZlbiBhZGRy
ZXNzLiBUaGUgY29tcGlsZXIgd2lsbCBhc3N1bWUgdGhhdCB0aGlzIGp1bXBzIHRvIG9uZSBvZiB0
aGUgZ2l2ZW4KKyAgICAgICAgICBibG9ja3MuIFRoZSBjb21waWxlciBtYWtlcyBubyBhdHRlbXB0
IHRvIHByb3ZlIG9yIHZhbGlkYXRlIHRoYXQgdGhlIHBhc3NlZCBqdW1wIGFkZHJlc3MgaXMKKyAg
ICAgICAgICBhY3R1YWxseSB0aGUgYWRkcmVzcyBvZiBhbnkgb2YgdGhvc2UgYmxvY2tzLiBOb25z
ZW5zaWNhbCB0aGluZ3Mgd2lsbCBoYXBwZW4gaWYgdGhlIHBhc3NlZAorICAgICAgICAgIGFkZHJl
c3MgaXMgbm90IHRoZSBhZGRyZXNzIG9mIG9uZSBvZiB0aGUgYmxvY2tzIGluIHRoZSBzdWNjZXNz
b3IgbGlzdC4gWW91IGNhbiBhcnJhbmdlIHRvCisgICAgICAgICAgZ2V0IHRoZSBhZGRyZXNzZXMg
b2YgYmxvY2tzIGJ5IHBhc3NpbmcgYSBjYWxsYmFjayB0byBQb2x5SnVtcC4gVGhpcyBpcyB1c2Vk
IGludGVybmFsbHkKKyAgICAgICAgICBmb3IgbG93ZXJpbmcgU3dpdGNoIG9wY29kZXMuIFlvdSBj
YW4gYWxzbyB1c2UgaXQgZGlyZWN0bHkuPC9wPgorICAgICAgCisgICAgICAgIDxwPlBvbHlKdW1w
IGlzIG5vdCBjbG9uZWFibGUuIEZvciBlYWNoIFBvbHlKdW1wIHlvdSBjcmVhdGUsIHRoZXJlIHdp
bGwgYmUgb25lIGluZGlyZWN0CisgICAgICAgICAganVtcCBnZW5lcmF0ZWQuIFRoaXMgaXMgbmVj
ZXNzYXJ5IHRvIGVuc3VyZSBzb3VuZG5lc3Mgb2YgdGhlIGNhbGxiYWNrLiBJZiB0aGUgUG9seUp1
bXAKKyAgICAgICAgICBjb3VsZCBiZSBjbG9uZWQsIHRoZW4gdGhlIGNhbGxiYWNrIHdvdWxkIGdl
dCBjYWxsZWQgZm9yIGVhY2ggY2xvbmUuIFByZXN1bWFibHksIHlvdSdkCisgICAgICAgICAgaW1w
bGVtZW50IHRoZSBjYWxsYmFjayBieSBwb3B1bGF0aW5nIHNvbWUgdGFibGUgd2l0aCB0aGUgYWRk
cmVzc2VzIG9mIHRoZSBibG9ja3MuIElmIHRoZQorICAgICAgICAgIGNhbGxiYWNrIGdldHMgY2Fs
bGVkIG11bHRpcGxlIHRpbWVzIHRoZW4gaXQgbWF5IHJldHVybiBkaWZmZXJlbnQgYWRkcmVzc2Vz
IGVhY2ggdGltZSAtCisgICAgICAgICAgc2luY2UgYWZ0ZXIgY2xvbmluZyBhIFBvbHlKdW1wLCB0
aGUgY29tcGlsZXIgbWF5IHJldGFyZ2V0IGFueSBvZiBpdHMgc3VjY2Vzc29yIGVkZ2VzLgorICAg
ICAgICAgIFRoaXMgd291bGQgYmUgY29uZnVzaW5nLCBzaW5jZSB0aGVuIHlvdSB3b3VsZG4ndCBr
bm93IHdoYXQgdG8gZG8gd2l0aCBkaXNjcmVwYW5jaWVzIGJldHdlZW4KKyAgICAgICAgICBhZGRy
ZXNzZXMgcmV0dXJuZWQgYnkgdGhlIHZhcmlvdXMgY2FsbHMgdG8gdGhlIGNhbGxiYWNrLiBEaXNh
bGxvd2luZyBjbG9uaW5nIG9mIFBvbHlKdW1wCisgICAgICAgICAgc29sdmVzIHRoaXMgcHJvYmxl
bS48L3A+CisgICAgICAgIAorICAgICAgICA8cD5BIGNsb3NlbHkgcmVsYXRlZCBwcm9ibGVtIGlz
IHRoYXQgaWYgeW91IGVtaXQgbXVsdGlwbGUgUG9seUp1bXAgaW5zdHJ1Y3Rpb25zLCB0aGVuIGV2
ZW4KKyAgICAgICAgICBpZiB0aGV5IGluaXRpYWxseSBzaGFyZSB0aGUgc2FtZSBzdWNjZXNzb3Jz
LCB5b3UgY2Fubm90IGd1YXJhbnRlZSB0aGF0IHRoZXkgd2lsbCBjb250aW51ZQorICAgICAgICAg
IHRvIHNoYXJlIHRoZSBzYW1lIHN1Y2Nlc3NvcnMgYWZ0ZXIgb3B0aW1pemF0aW9uLiBUaGlzIG1l
YW5zIHRoYXQgUG9seUp1bXAgY2Fubm90CisgICAgICAgICAgY3VycmVudGx5IGJlIHVzZWQgZm9y
IGltcGxlbWVudGluZyBkaXJlY3QgdGhyZWFkZWQgaW50ZXJwcmV0ZXJzLCBhdCBsZWFzdCBub3Qg
dGhlIGNsYXNzaWMKKyAgICAgICAgICBraW5kOiB0byBtYWtlIGl0IHdvcmssIHlvdSBoYXZlIHRv
IGhhdmUgYSBzaGFyZWQgZGlzcGF0Y2ggYmxvY2sgc28gdGhhdCB5b3UgaGF2ZSBhIHNpbmdsZQor
ICAgICAgICAgIFBvbHlKdW1wLiBUaGlzIG1pZ2h0IGJlIGJldHRlciB0aGFuIGEgU3dpdGNoLWJh
c2VkIGludGVycHJldGVyLCBidXQgaXQncyBkZWZpbml0ZWx5IG5vdAorICAgICAgICAgIGFzIGdv
b2QgYXMgd2hhdCB5b3UnZCBnZXQgd2l0aCBHQ0Mtc3R5bGUgY29tcHV0ZWQgZ290by48L3A+Cisg
ICAgICAgIAorICAgICAgICA8cD5Qb2x5SnVtcCBpcyBzbyBuYW1lZCB0byBhdm9pZCBjb25mdXNp
b24gd2l0aCBjb21wdXRlZCBnb3RvcyBhbmQgaW5kaXJlY3QgYnJhbmNoZXMgaW4KKyAgICAgICAg
ICBvdGhlciBjb21waWxlcnMuIEl0IGhhcyBzaWduaWZpY2FudCByZXN0cmljdGlvbnMgdGhhdCB0
aG9zZSBvcGVyYXRpb25zIGRvIG5vdCBoYXZlLiBUaGVzZQorICAgICAgICAgIHJlc3RyaWN0aW9u
cyBtYWtlIGl0IGVhc2llciBmb3IgdGhlIG9wdGltaXplciB0byB3b3JrIHdpdGggc2luY2UgdGhl
IGNvbnRyb2wgZmxvdyBnZXRzIHRvCisgICAgICAgICAgYmUgZXhwbGljaXQgKFBvbHlKdW1wIGhh
cyBhIGZpbml0ZSBzZXQgb2Ygc3VjY2Vzc29ycyBsaWtlIGFueSBvdGhlciBibG9jayB0ZXJtaW5h
bCkuPC9wPgorICAgICAgPC9kZD4KIAogICAgICAgPGR0PlZvaWQgUmV0dXJuKFQpPC9kdD4KICAg
ICAgIDxkZD5Xb3JrcyBmb3IgYW55IHR5cGUgZXhjZXB0IFZvaWQuICBSZXR1cm5zIHRoZSBnaXZl
biB2YWx1ZSBhbmQgdGVybWluYXRlcyB0aGUgcHJvY2VkdXJlLgpJbmRleDogTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24g
MjAyODA5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMTYtMDUtMjkgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKwor
ICAgICAgICBJbXBsZW1lbnQgdGFibGUtYmFzZWQgc3dpdGNoZXMgaW4gQjMvQWlyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTExNDEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGpzL3JlZ3Jlc3MvYmln
c3dpdGNoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9iaWdzd2l0
Y2guaHRtbDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvYmlnc3dp
dGNoLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisKIDIwMTYtMDctMDQgIFl1c3VrZSBTdXp1
a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgc2tpcCBt
aXNjLWJ1Z3MtODQ3Mzg5LWpwZWcyMDAwLmpzIGluIGpzYyBzdHJlc3MgdGVzdHMKSW5kZXg6IExh
eW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdyZXNzL2JpZ3N3aXRjaAorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBubyBleGNlcHRpb24gdGhyb3duCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9iaWdzd2l0Y2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEy
IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
cmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9iaWdz
d2l0Y2guanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNz
LXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9zY3JpcHQtdGVzdHMvYmlnc3dpdGNoLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2JpZ3N3aXRjaC5qcwkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2JpZ3N3aXRjaC5qcwkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDIxMSBAQAorZnVuY3Rpb24gZm9vKG8pIHsKKyAgICB2YXIg
cmVzdWx0ID0gMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7ICsraSkgeworICAgICAg
ICB2YXIgdmFsdWUgPSBpICYgNjM7CisgICAgICAgIHN3aXRjaCAodmFsdWUpIHsKKyAgICAgICAg
Y2FzZSAwOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXN1bHQgKz0gby5iOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmM7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8u
ZDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ6CisgICAgICAgICAgICByZXN1
bHQgKz0gby5lOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNToKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLmY7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA2Ogor
ICAgICAgICAgICAgcmVzdWx0ICs9IG8uZzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIDc6CisgICAgICAgICAgICByZXN1bHQgKz0gby5oOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSA5OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uajsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDEwOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8u
azsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDExOgorICAgICAgICAgICAgcmVz
dWx0ICs9IG8uYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDEyOgorICAgICAg
ICAgICAgcmVzdWx0ICs9IG8uYjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDEz
OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIDE0OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZDsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIDE1OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIDE2OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZjsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE3OgorICAgICAgICAgICAgcmVzdWx0
ICs9IG8uZzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE4OgorICAgICAgICAg
ICAgcmVzdWx0ICs9IG8uaDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE5Ogor
ICAgICAgICAgICAgcmVzdWx0ICs9IG8uaTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIDIwOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uajsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIDIxOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIDIyOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDIzOgorICAgICAgICAgICAgcmVzdWx0ICs9
IG8uYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI0OgorICAgICAgICAgICAg
cmVzdWx0ICs9IG8uYjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI1OgorICAg
ICAgICAgICAgcmVzdWx0ICs9IG8uYzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IDI2OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZDsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIDI3OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIDI4OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZjsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI5OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8u
ZzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDMwOgorICAgICAgICAgICAgcmVz
dWx0ICs9IG8uaDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDMxOgorICAgICAg
ICAgICAgcmVzdWx0ICs9IG8uaTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDMy
OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uajsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIDMzOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIDM0OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIDM1OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM2OgorICAgICAgICAgICAgcmVzdWx0
ICs9IG8uYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM3OgorICAgICAgICAg
ICAgcmVzdWx0ICs9IG8uYjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM4Ogor
ICAgICAgICAgICAgcmVzdWx0ICs9IG8uYzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIDM5OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZDsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIDQwOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIDQxOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZjsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQyOgorICAgICAgICAgICAgcmVzdWx0ICs9
IG8uZzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQzOgorICAgICAgICAgICAg
cmVzdWx0ICs9IG8uaDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ0OgorICAg
ICAgICAgICAgcmVzdWx0ICs9IG8uaTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IDQ1OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uajsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIDQ2OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIDQ3OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ4OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8u
ajsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ5OgorICAgICAgICAgICAgcmVz
dWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDUwOgorICAgICAg
ICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDUx
OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIDUyOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIDUzOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYjsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIDU0OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYzsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDU1OgorICAgICAgICAgICAgcmVzdWx0
ICs9IG8uZDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDU2OgorICAgICAgICAg
ICAgcmVzdWx0ICs9IG8uZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDU3Ogor
ICAgICAgICAgICAgcmVzdWx0ICs9IG8uZjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIDU4OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZzsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIDU5OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaDsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIDYwOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDYxOgorICAgICAgICAgICAgcmVzdWx0ICs9
IG8uajsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDYyOgorICAgICAgICAgICAg
cmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgcmVzdWx0ICs9IG8uejsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9Cisg
ICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKKyhmdW5jdGlvbigpIHsKKyAgICB2YXIgbyA9
IHthOjEsIGI6MiwgYzozLCBkOjQsIGU6NSwgZjo2LCBnOjcsIGg6OCwgaTo5LCBqOjEwLCBrOjEx
LCB6OjEwMH07CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAx
MDAwMDsgKytpKQorICAgICAgICByZXN1bHQgKz0gZm9vKG8pOworICAgIGlmIChyZXN1bHQgIT0g
Nzk2NjAwMDApCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsK
K30pKCk7CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282730</attachid>
            <date>2016-07-04 10:49:22 -0700</date>
            <delta_ts>2016-07-04 11:37:13 -0700</delta_ts>
            <desc>a new approach</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>85326</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2NiBA
QAorMjAxNi0wNS0yOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IEltcGxlbWVudCB0YWJsZS1iYXNlZCBzd2l0Y2hlcyBpbiBCMy9BaXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTE0MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgSWYgYSBzd2l0Y2ggc3Rh
dGVtZW50IGdldHMgbGFyZ2UsIGl0J3MgYmV0dGVyIHRvIGV4cHJlc3MgaXQgYXMgYW4gaW5kaXJl
Y3QganVtcCByYXRoZXIgdGhhbgorICAgICAgICB1c2luZyBhIGJpbmFyeSBzd2l0Y2ggKGRpdmlk
ZS1hbmQtY29ucXVlciB0cmVlIG9mIGNvbXBhcmlzb25zIGxlYWRpbmcgdG8gTyhsb2cgbikgYnJh
bmNoZXMgdG8KKyAgICAgICAgZ2V0IHRvIHRoZSBzd2l0Y2ggY2FzZSkuIFdoZW4gZGVhbGluZyB3
aXRoIGludGVnZXIgc3dpdGNoZXMsIEZUTCB3aWxsIGFscmVhZHkgdXNlIHRoZSBCMworICAgICAg
ICBTd2l0Y2ggYW5kIGV4cGVjdCB0aGlzIHRvIGdldCBsb3dlcmVkIGFzIGVmZmljaWVudGx5IGFz
IHBvc3NpYmxlOyBpdCdzIGEgYnVnIHRoYXQgQjMgd2lsbAorICAgICAgICBhbHdheXMgdXNlIGEg
YmluYXJ5IHN3aXRjaCByYXRoZXIgdGhhbiBpbmRpcmVjdCBqdW1wcy4gV2hlbiBkZWFsaW5nIHdp
dGggc3dpdGNoZXMgb3ZlciBzb21lCisgICAgICAgIG1vcmUgc29waGlzdGljYXRlZCB0eXBlcywg
d2UnZCB3YW50IEZUTCB0byBidWlsZCBhbiBpbmRpcmVjdCBqdW1wIHRhYmxlIGl0c2VsZiBhbmQg
dXNlCisgICAgICAgIHNvbWV0aGluZyBsaWtlIGEgaGFzaHRhYmxlIHRvIGZlZWQgaXQuIEluIHRo
YXQgY2FzZSwgdGhlcmUgd2lsbCBiZSBubyBCMyBTd2l0Y2g7IHdlJ2xsIHdhbnQKKyAgICAgICAg
c29tZSBraW5kIG9mIGluZGlyZWN0IGp1bXAgaW5zdHJ1Y3Rpb24uCisgICAgICAgIAorICAgICAg
ICBUaGlzIGltcGxpZXMgdGhhdCB3ZSB3YW50IEIzIHRvIGhhdmUgdGhlIGFiaWxpdHkgdG8gbG93
ZXIgU3dpdGNoIHRvIGluZGlyZWN0IGp1bXBzIGFuZCB0bworICAgICAgICBleHBvc2UgdGhvc2Ug
aW5kaXJlY3QganVtcHMgaW4gSVIgc28gdGhhdCB0aGUgRlRMIGNvdWxkIGRvIGl0cyBvd24gaW5k
aXJlY3QganVtcHMgZm9yCisgICAgICAgIHN3aXRjaGVzIG92ZXIgbW9yZSBjb21wbGljYXRlZCB0
aGluZ3MgbGlrZSBzdHJpbmdzLiBUaGlzIGNoYW5nZSBpbnRyb2R1Y2VzIGFuIGluZGlyZWN0IGp1
bXAKKyAgICAgICAgaW5zdHJ1Y3Rpb24gdG8gQjMgYW5kIGNhbGxzIGl0IFBvbHlKdW1wLiBJdCBo
YXMgc29tZSB1bmlxdWUgc2VtYW50aWNzIHRoYXQgbWFrZSBpdCB2ZXJ5CisgICAgICAgIGRpZmZl
cmVudCBmcm9tICJpbmRpcmVjdCBqdW1wcyIsICJpbmRpcmVjdCBicmFuY2hlcyIsIGFuZCAiY29t
cHV0ZWQgZ290b3MiIC0gYWxsIHRlcm1zIG9mIGFydAorICAgICAgICB1c2VkIGluIG90aGVyIGNv
bXBpbGVycy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaW1wbGVtZW50cyB0aGUgbW9zdCBiYXNp
YyBraW5kIG9mIFN3aXRjaC10by1Qb2x5SnVtcCBsb3dlcmluZyBpbiBCMzo6bG93ZXJNYWNyb3Mo
KS4gQXMKKyAgICAgICAgcGFydCBvZiB0aGUgZXhpc3RpbmcgZGl2aWRlLWFuZC1jb25xdWVyIHRo
YXQgY3JlYXRlcyBicmFuY2hlcywgaWYgaXQgZGV0ZWN0cyB0aGF0IHRoZSBzZXQgb2YKKyAgICAg
ICAgY2FzZXMgc2F0aXNmaWVzIHNvbWUgY29uZGl0aW9ucyAoZGVuc2l0eSBvZiBjYXNlIHZhbHVl
cyBhbmQgdG90YWwgc2l6ZSksIHRoZW4gaXQgd2lsbCBlbWl0IGEKKyAgICAgICAgUG9seUp1bXAu
CisgICAgICAgIAorICAgICAgICBUaGUgcHJvYmxlbSB3aXRoIGNsYXNzaWMgaW5kaXJlY3QganVt
cHMgaXMgdGhhdCB0aGV5IGZvcmNlIHRoZSBjb21waWxlciB0byBiZSBjb25zZXJ2YXRpdmUKKyAg
ICAgICAgYWJvdXQgY29udHJvbCBmbG93LiBUaGUgY29tcGlsZXIgbXVzdCBhc3N1bWUgdGhhdCB0
aGUgaW5kaXJlY3QganVtcCBtYXkgdHJhbnNmZXIgY29udHJvbCBmbG93CisgICAgICAgIHRvIGFu
eSBlc2NhcGVkIGJsb2NrIChibG9jayBsYWJlbGVkIGFzIGJlaW5nIGEgcG9zc2libGUgdGFyZ2V0
IGZvciBpbmRpcmVjdCBqdW1wcywgb3IgaWYgbm8KKyAgICAgICAgc3VjaCBsYWJlbGluZyBpcyBh
dmFpbGFibGUsIHRoZSBjb21waWxlciBtdXN0IGFzc3VtZSB0aGF0IGl0IG1heSB0YXJnZXQgYW55
IGJsb2NrKS4gVGhlIHdvcnN0CisgICAgICAgIHBhcnQgaXMgdGhhdCB0aGUgaW1wbGljaXQgY29u
dHJvbCBmbG93IGVkZ2VzIGZyb20gdGhlIGluZGlyZWN0IGp1bXAgdG8gdGhlIGVzY2FwZWQgYmxv
Y2tzCisgICAgICAgIGNhbm5vdCBiZSBicm9rZW4uIFRoaXMgaW52YWxpZGF0ZXMgYSBwcmluY2lw
bGUgb2YgQjMgSVI6IGFueSBwaGFzZSBtYXkgYnJlYWsgYW55IGNyaXRpY2FsCisgICAgICAgIGVk
Z2UgZm9yIGFueSByZWFzb24uIE91ciBTU0EgY29udmVyc2lvbiB3b3VsZCBicmVhayBpZiB3ZSBy
ZXZva2VkIHRoaXMgZmVhdHVyZS4gSXQncyBhY3R1YWxseQorICAgICAgICBtdWNoIHdvcnNlIHRo
YW4gdGhpcyAtIGJhc2ljYWxseSBhbnkgbG9naWMgb3ZlciBjb250cm9sIGZsb3cgd291bGQgaGF2
ZSB0byBiZSBoYWNrZWQgdG8gZGVhbAorICAgICAgICB3aXRoIHRoZXNlIHVuYnJlYWthYmxlIGVk
Z2VzLiBUaGlzIHdvdWxkIG1lYW4gY2hhbmdpbmcgYWxsIENGRyB0cmFuc2Zvcm1hdGlvbiB1dGls
aXRpZXMgYW5kCisgICAgICAgIHBhc3Nlcy4gV2UgaGF2ZSBhIGxvdCBvZiB0aG9zZSBhbmQgd2Ug
d2FudCBpdCB0byBiZSBlYXN5IHRvIHdyaXRlIG5ldyBvbmVzLgorICAgICAgICAKKyAgICAgICAg
VGhpcyBpcyB3aHkgd2UgdXNlIHNvbWV0aGluZyBuZXcgYW5kIHF1aXRlIGRpZmZlcmVudCBmcm9t
IGNsYXNzaWMgaW5kaXJlY3QganVtcHMuIFBvbHlKdW1wCisgICAgICAgIG1ha2VzIHRoZSBjb250
cm9sIGZsb3cgZWRnZXMgZXhwbGljaXQuIFRoZSBjbGllbnQgbXVzdCBzdXBwbHkgdGhlIHN1Y2Nl
c3NvcnMgd2hlbiBpdCBjcmVhdGVzCisgICAgICAgIHRoZSBQb2x5SnVtcC4gVGhlIGNvbXBpbGVy
IG1heSByZXdpcmUgdGhvc2Ugc3VjY2Vzc29yIGVkZ2VzIHRoZSBzYW1lIHdheSB0aGF0IGl0IHdv
dWxkIHJld2lyZQorICAgICAgICBhbnkgY29udHJvbCBmbG93IGVkZ2VzLiBDb25zZXF1ZW50bHkg
dGhlIHZhc3QgbWFqb3JpdHkgb2YgQ0ZHIHJlYXNvbmluZyBpbiBCMyBpcyB1bmNoYW5nZWQuCisg
ICAgICAgIElmIHlvdSBkb24ndCB3YW50IHRvIHVuZGVyc3RhbmQgUG9seUp1bXAsIGp1c3QgdGhp
bmsgb2YgaXQgbGlrZSB5b3Ugd291bGQgYSBTd2l0Y2ggd2l0aCBhbgorICAgICAgICBvcGFxdWUg
aW5jb21pbmcgdmFsdWUuIFRoaXMgd29ya3MgYmVjYXVzZSB3ZSBkbyBub3QgYWRkIGFueSBub3Rp
b24gb2YgZXNjYXBlZCBiYXNpYyBibG9ja3MuCisgICAgICAgIEluc3RlYWQgb2YgbGV0dGluZyB0
aGUgY2xpZW50IGdldCB0aGUgcG9pbnRlcnMgdG8gYmFzaWMgYmxvY2tzIGJ5IGVzY2FwaW5nIHRo
ZW0gbGlrZSBpbiBMTFZNLAorICAgICAgICB5b3UgY2FuIG9ubHkgZ2V0IHRoZSBwb2ludGVycyBv
ZiB0aGUgc3VjY2Vzc29ycyBvZiBQb2x5SnVtcCBieSByZWdpc3RlcmluZyBhIGNhbGxiYWNrIHdp
dGgKKyAgICAgICAgUG9seUp1bXAuIFRoaXMgY2FsbGJhY2sgZG9lc24ndCBhY3R1YWxseSBnaXZl
IHlvdSB0aGUgYWRkcmVzc2VzIG9mIGJhc2ljIGJsb2Nrcy4gSXQganVzdAorICAgICAgICBnaXZl
cyB5b3UgdGhlIGFkZHJlc3NlcyB3aGVyZSB5b3UgbXVzdCBqdW1wIHRvIHRyYW5zZmVyIGNvbnRy
b2wgZmxvdyBmcm9tIHRoYXQgUG9seUp1bXAgdG8KKyAgICAgICAgaXRzIHN1Y2Nlc3NvcnMuIFRo
aXMgbWVhbnMgdGhhdCB0aGUgbWFnaWMgb2YgUG9seUp1bXAgaXMgY29uZmluZWQgb25seSB0byB0
aGUgUG9seUp1bXAgaXRzZWxmCisgICAgICAgIGFuZCBkb2Vzbid0IGluZmVjdCByZWFzb25pbmcg
YWJvdXQgdGhlIGJhc2ljIGJsb2NrcyB0aGF0IGl0IGp1bXBzIHRvLgorICAgICAgICAKKyAgICAg
ICAgVGhlIG9ubHkgZG93bnNpZGUgaXMgdGhhdCB0aGF0IFBvbHlKdW1wIGlzIG5vdCBjbG9uZWFi
bGUuIFlvdSBjYW4ndCBjbG9uZSBpdCBiZWNhdXNlIGlmIHlvdQorICAgICAgICBkaWQsIHRoZW4g
dGhlIHR3byByZXN1bHRpbmcgUG9seUp1bXBzIG1heSBoYXZlIHRoZWlyIHN1Y2Nlc3NvciBlZGdl
cyByZXdpcmVkIGluZGVwZW5kZW50bHkgb2YKKyAgICAgICAgZWFjaCBvdGhlci4gVGhpcyBjb3Vs
ZCBlYXNpbHkgaGFwcGVuIGlmIHdlIGJyZWFrIGNyaXRpY2FsIGVkZ2VzLiBJZiB0aGF0IGRpZCBo
YXBwZW4gdGhlbiBpdAorICAgICAgICB3b3VsZCBicmVhayB0aGUgY2xpZW50IG9mIFBvbHlKdW1w
OiB0aGV5IHdvdWxkIGhhdmUgYWxyZWFkeSBjcmVhdGVkIHNvbWV0aGluZyBsaWtlIGEganVtcAor
ICAgICAgICB0YWJsZSBhbmQgd2lsbCBiZSBwb3B1bGF0aW5nIGl0IHZpYSB0aGUgY2FsbGJhY2ss
IGJ1dCBub3cgdGhlIGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkIHR3aWNlLAorICAgICAgICBhbmQg
bWF5IHJldHVybiBkaWZmZXJlbnQganVtcCBkZXN0aW5hdGlvbnMgZWFjaCB0aW1lLiBTbywgdGhp
cyBwYXRjaCBpbnRyb2R1Y2VzCisgICAgICAgIFZhbHVlOjppc0Nsb25lYWJsZSgpIGFuZCB0ZWFj
aGVzIGJvdGggb2Ygb3VyIGNvZGUgc3BlY2lhbGl6YXRpb24gb3B0aW1pemF0aW9ucyAodGFpbAor
ICAgICAgICBkdXBsaWNhdGlvbiBhbmQgc2VsZWN0IHNwZWNpYWxpemF0aW9uKSB0byBiYWlsIGlm
IHRoZSBjb2RlIHRoZXkgd2FudCB0byBzcGVjaWFsaXplIGlzIG5vdAorICAgICAgICBjbG9uZWFi
bGUuIFRoaXMgaXMgdG90YWxseSBiZW5pZ24gbW9zdCBvZiB0aGUgdGltZSwgc2luY2UgdGhvc2Ug
b3B0aW1pemF0aW9ucyB1c3VhbGx5IHJ1bgorICAgICAgICBiZWZvcmUgU3dpdGNoIGxvd2VyaW5n
LiBDbGllbnRzIHRoYXQgdXNlIFBvbHlKdW1wIGRpcmVjdGx5IGhhdmUgdG8gYXBwcmVjaWF0ZSB0
aGUgdHJhZGUtb2ZmOgorICAgICAgICBQb2x5SnVtcCBtYXkgZ2FpbiB0aGVtIHNvbWUgcGVyZm9y
bWFuY2UgYnV0IHRoZXkgYXJlIG9wdGluZyBvdXQgb2Ygb3B0aW1pemF0aW9ucyB0aGF0IHVzZQor
ICAgICAgICBjbG9uaW5nLiBBIGNsb3NlIGNvcm9sbGFyeSBvZiB0aGUgbm8tY2xvbmUgcnVsZSBp
cyB0aGF0IHRoZSBjbGllbnQgY2Fubm90IGNyZWF0ZSBtdWx0aXBsZQorICAgICAgICBQb2x5SnVt
cHMgdGhhdCBhcmUgZmVkIGJ5IGEgY29tbW9uIGp1bXAgdGFibGU6IHRoZSBmYWN0IHRoYXQgZWFj
aCBQb2x5SnVtcCBoYXMgYSBjYWxsYmFjaworICAgICAgICB0aGF0IGp1c3QgdGVsbHMgeW91IHRo
ZSBqdW1wIGRlc3RpbmF0aW9ucyBmb3IgaXRzIHN1Y2Nlc3NvciAqZWRnZXMqLCBub3Qgc3VjY2Vz
c29yICpibG9ja3MqLAorICAgICAgICBtZWFucyB0aGF0IGlmIHlvdSBjcmVhdGUgdHdvIFBvbHlK
dW1wcyBhbmQgZ2l2ZSB0aGVtIHRoZSBzYW1lIHN1Y2Nlc3NvciBsaXN0LCB5b3UgYXJlIG5vdAor
ICAgICAgICBndWFyYW50ZWVkIHRoYXQgdGhleSB3aWxsIGdldCB0aGUgc2FtZSBqdW1wIGRlc3Rp
bmF0aW9ucy4gVGhpcyBodXJ0cyBpZiB5b3Ugd2FudCB0byB1c2UKKyAgICAgICAgUG9seUp1bXAg
Zm9yIHRocmVhZGVkIGludGVycHJldGVycyBidXQgaXQncyBoYXJtbGVzcyBmb3Igc3dpdGNoIGxv
d2VyaW5nLiBUaGUgZ29hbCBvZgorICAgICAgICBQb2x5SnVtcCBpcyB0byBiZSBhd2Vzb21lIGZv
ciBzd2l0Y2ggbG93ZXJpbmcgd2hpbGUgbm90IGJyZWFraW5nIHRoZSByZXN0IG9mIHRoZSBjb21w
aWxlciwgc28KKyAgICAgICAgdGhpcyBpcyBwcm9iYWJseSBmaW5lLgorICAgICAgICAKKyAgICAg
ICAgVGhlIGlzQ2xvbmVhYmxlKCkgbWV0aG9kIGN1cnJlbnRseSBvbmx5IHJldHVybnMgdHJ1ZSBm
b3IgUG9seUp1bXAsIGJ1dCBJIGFudGljaXBhdGUgd2Ugd2lsbAorICAgICAgICBhZGQgb3RoZXIg
bm9uLWNsb25lYWJsZSB0aGluZ3MgbGF0ZXIuIEkgdGhpbmsgaXMgaXMgaW5oZXJlbnQgaW4gYSBj
b21waWxlciB0aGF0IGFsbG93cyBzdWNoCisgICAgICAgIGN1c3RvbWl6ZWFiaWxpdHkgZm9yIGl0
cyBjbGllbnRzLiBGb3IgZXhhbXBsZSwgd2UgbWF5IHdhbnQgdG8gYWRkIGEgZmxhZyB0byBQYXRj
aHBvaW50IHRoYXQKKyAgICAgICAgbWFrZXMgaXQgbm9uLWNsb25lYWJsZS4gU29tZXRpbWVzIHdl
IGhhdmUgdG8ganVtcCB0aHJvdWdoIGhvb3BzIGluIHRoZSBGVEwgYmVjYXVzZSBvZiB0aGUKKyAg
ICAgICAgY2xvbmVhYmlsaXR5IG9mIHBhdGNocG9pbnRzLiBUaGlzIGhhcHBlbnMgaW4gT1NSIGV4
aXRzLCB3aGljaCBwYXkgYSBzaWduaWZpY2FudCBtZW1vcnkgY29zdAorICAgICAgICBmb3IgYWRk
aXRpb25hbCBkYXRhIHN0cnVjdHVyZXMgdGhhdCBhcmUgdGhlcmUgaW4gY2FzZSBhbiBleGl0IGdl
dHMgY2xvbmVkLiBJdCBtYXkgYmUgbW9yZQorICAgICAgICBwcm9maXRhYmxlIHRvIGp1c3Qgc2F5
IHRoYXQgT1NSIGV4aXRzIChpLmUuIENoZWNrcyBhbmQgSW52YWxpZGF0aW9uUG9pbnQgUGF0Y2hw
b2ludHMpIGFyZSBub3QKKyAgICAgICAgY2xvbmVhYmxlLiBTdXJlbHkgdGhpcyB3b3VsZCByZWR1
Y2UgdGFpbCBkdXBsaWNhdGlvbiwgYnV0IHRhaWwgZHVwbGljYXRpb24gaXMgbW9zdCBwcm9maXRh
YmxlCisgICAgICAgIHdoZW4gaXQgY2xvbmVzIG9ubHkgYSB0aW55IGFtb3VudCBvZiBjb2RlOyBp
ZiB0aGVyZSdzIGFuIGV4aXQgdGhlbiB3ZSdyZSBub3QgdGFsa2luZyBhYm91dCBhCisgICAgICAg
IHRpbnkgYW1vdW50IG9mIGNvZGUgYW55bW9yZS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaXMg
YSB+MzAlIHNwZWVkLXVwIG9uIG1pY3JvYmVuY2htYXJrcyB0aGF0IGhhdmUgYmlnIHN3aXRjaCBz
dGF0ZW1lbnRzICh+NjAgY2FzZXMpLiBJdCdzCisgICAgICAgIG5vdCBhIHNwZWVkLXVwIG9uIG1h
aW5zdHJlYW0gYmVuY2htYXJrcy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgYWxzbyBhZGRzIGEg
bmV3IHRlc3QgdG8gdGVzdGIzIGZvciBQb2x5SnVtcCwgR2V0LCBhbmQgU2V0LiBUaGUgRlRMIGRv
ZXMgbm90IGN1cnJlbnRseQorICAgICAgICB1c2UgUG9seUp1bXAgZGlyZWN0bHksIGJ1dCB3ZSB3
YW50IHRoaXMgdG8gYmUgcG9zc2libGUuIEl0IGFsc28gZG9lc24ndCB1c2UgR2V0L1NldCBkaXJl
Y3RseQorICAgICAgICBldmVuIHRob3VnaCB3ZSB3YW50IHRoaXMgdG8gYmUgcG9zc2libGUuIEl0
J3MgaW1wb3J0YW50IHRvIHRlc3QgdGhlc2Ugc2luY2Ugb3Bjb2RlcyB0aGF0CisgICAgICAgIHJl
c3VsdCBmcm9tIGxvd2VyaW5nIGRvbid0IGFmZmVjdCBlYXJseSBwaGFzZXMsIHNvIHdlIGNvdWxk
IGhhdmUgcmVncmVzc2lvbnMgaW4gZWFybHkgcGhhc2VzCisgICAgICAgIHJlbGF0ZWQgdG8gdGhl
c2Ugb3Bjb2RlcyB0aGF0IHdvdWxkbid0IGJlIGNhdWdodCBieSBhbnkgSlMgdGVzdC4gU28sIHRo
aXMgYWRkcyBhIHZlcnkgYmFzaWMKKyAgICAgICAgdGhyZWFkZWQgaW50ZXJwcmV0ZXIgdG8gdGVz
dGIzIGZvciBhIEJyYWluZnVjay1zdHlsZSBsYW5ndWFnZSwgYW5kIHRlc3RzIGl0IGJ5IGhhdmlu
ZyBpdCBydW4KKyAgICAgICAgYSBwcm9ncmFtIHRoYXQgcHJpbnRzIHRoZSBudW1iZXJzIDEuLjEw
MCBpbiBhIGxvb3AuIFVubGlrZSBhIHJlYWwgdGhyZWFkZWQgaW50ZXJwcmV0ZXIsIGl0CisgICAg
ICAgIHVzZXMgYSBjb21tb24gZGlzcGF0Y2ggYmxvY2sgcmF0aGVyIHRoYW4gaGF2aW5nIGRpc3Bh
dGNoIGF0IHRoZSB0ZXJtaW51cyBvZiBlYWNoIG9wY29kZS4KKyAgICAgICAgVGhhdCdzIG5lY2Vz
c2FyeSBiZWNhdXNlIFBvbHlKdW1wIGlzIG5vdCBjbG9uZWFibGUuIFRoZSBzdGF0ZSBvZiB0aGUg
aW50ZXJwcmV0ZXIgaXMKKyAgICAgICAgcmVwcmVzZW50ZWQgdXNpbmcgVmFyaWFibGVzIHRoYXQg
d2UgR2V0IGFuZCBTZXQsIHNvIGl0IHRlc3RzIEdldC9TZXQgYXMgd2VsbC4KKworICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9u
Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpqdW1wKToKKyAgICAg
ICAgKiBhc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxl
cjo6am1wX20pOgorICAgICAgICAqIGIzL0IzQmFzaWNCbG9jay5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpCYXNpY0Jsb2NrOjp1cGRhdGVQcmVkZWNlc3NvcnNBZnRlcik6CisgICAgICAgIChKU0M6
OkIzOjpCYXNpY0Jsb2NrOjppc0Nsb25lYWJsZSk6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Js
b2NrOjpkdW1wKToKKyAgICAgICAgKiBiMy9CM0Jhc2ljQmxvY2suaDoKKyAgICAgICAgKEpTQzo6
QjM6OkJhc2ljQmxvY2s6OmZyZXF1ZW5jeSk6CisgICAgICAgICogYjMvQjNDb21tb24uaDoKKyAg
ICAgICAgKEpTQzo6QjM6OmlzNjRCaXQpOgorICAgICAgICAqIGIzL0IzQ29udHJvbFZhbHVlLmg6
CisgICAgICAgICogYjMvQjNEYXRhU2VjdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkIzOjpEYXRh
U2VjdGlvbjo6RGF0YVNlY3Rpb24pOgorICAgICAgICAqIGIzL0IzRHVwbGljYXRlVGFpbHMuY3Bw
OgorICAgICAgICAqIGIzL0IzTG93ZXJNYWNyb3MuY3BwOgorICAgICAgICAqIGIzL0IzTG93ZXJU
b0Fpci5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okxvd2VyVG9BaXI6Omxvd2VyKToKKyAg
ICAgICAgKiBiMy9CM09wY29kZS5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgor
ICAgICAgICAqIGIzL0IzT3Bjb2RlLmg6CisgICAgICAgICogYjMvQjNQb2x5SnVtcFZhbHVlLmNw
cDogQWRkZWQuCisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjp+UG9seUp1bXBWYWx1
ZSk6CisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjphcHBlbmRTdWNjZXNzb3IpOgor
ICAgICAgICAoSlNDOjpCMzo6UG9seUp1bXBWYWx1ZTo6c2V0Q2FsbGJhY2tUYXNrKToKKyAgICAg
ICAgKEpTQzo6QjM6OlBvbHlKdW1wVmFsdWU6OmlzQ2xvbmVhYmxlKToKKyAgICAgICAgKEpTQzo6
QjM6OlBvbHlKdW1wVmFsdWU6OmR1bXBNZXRhKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1w
VmFsdWU6OmNsb25lSW1wbCk6CisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjpQb2x5
SnVtcFZhbHVlKToKKyAgICAgICAgKiBiMy9CM1BvbHlKdW1wVmFsdWUuaDogQWRkZWQuCisgICAg
ICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjphY2NlcHRzKToKKyAgICAgICAgKEpTQzo6QjM6
OlBvbHlKdW1wVmFsdWU6OnNldENhbGxiYWNrKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1w
VmFsdWU6OmNhbGxiYWNrVGFzayk6CisgICAgICAgICogYjMvQjNQcm9jZWR1cmUuY3BwOgorICAg
ICAgICAoSlNDOjpCMzo6UHJvY2VkdXJlOjpjbG9uZSk6CisgICAgICAgICogYjMvQjNQcm9jZWR1
cmUuaDoKKyAgICAgICAgKEpTQzo6QjM6OlByb2NlZHVyZTo6bGFzdFBoYXNlTmFtZSk6CisgICAg
ICAgIChKU0M6OkIzOjpQcm9jZWR1cmU6OmJ5cHJvZHVjdHMpOgorICAgICAgICAqIGIzL0IzUmVk
dWNlU3RyZW5ndGguY3BwOgorICAgICAgICAqIGIzL0IzVmFsaWRhdGUuY3BwOgorICAgICAgICAq
IGIzL0IzVmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6OmVmZmVjdHMpOgorICAg
ICAgICAoSlNDOjpCMzo6VmFsdWU6OmlzQ2xvbmVhYmxlKToKKyAgICAgICAgKEpTQzo6QjM6OlZh
bHVlOjprZXkpOgorICAgICAgICAqIGIzL0IzVmFsdWUuaDoKKyAgICAgICAgKiBiMy9haXIvQWly
Q29kZS5oOgorICAgICAgICAqIGIzL2Fpci9BaXJHZW5lcmF0ZS5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpBaXI6OmdlbmVyYXRlKToKKyAgICAgICAgKiBiMy9haXIvQWlySW5zdC5jcHA6CisgICAg
ICAgIChKU0M6OkIzOjpBaXI6Okluc3Q6Omhhc0FyZ0VmZmVjdHMpOgorICAgICAgICAoSlNDOjpC
Mzo6QWlyOjpJbnN0Ojppc0Nsb25lYWJsZSk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okluc3Q6
OmR1bXApOgorICAgICAgICAqIGIzL2Fpci9BaXJJbnN0Lmg6CisgICAgICAgICogYjMvYWlyL0Fp
ck9wY29kZS5vcGNvZGVzOgorICAgICAgICAqIGIzL3Rlc3RiMy5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpzaG91bGRCZVZlcmJvc2UpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN3aXRjaENoaWxs
RGl2KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RMYXRlUmVnaXN0ZXIpOgorICAgICAgICAoSlND
OjpCMzo6dGhyZWFkZWRJbnRlcnByZXRlclByaW50KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RU
aHJlYWRlZEludGVycHJldGVyKToKKyAgICAgICAgKEpTQzo6QjM6Onplcm8pOgorICAgICAgICAo
SlNDOjpCMzo6cnVuKToKKwogMjAxNi0wNy0wMyAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gRExMcyBhcmUgbWlzc2luZyB2ZXJzaW9uIGluZm9y
bWF0aW9uLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24g
MjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0xNDQsNiArMTQ0LDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAg
ICBiMy9CM1BhdGNocG9pbnRWYWx1ZS5jcHAKICAgICBiMy9CM1BoYXNlU2NvcGUuY3BwCiAgICAg
YjMvQjNQaGlDaGlsZHJlbi5jcHAKKyAgICBiMy9CM1BvbHlKdW1wVmFsdWUuY3BwCiAgICAgYjMv
QjNQcm9jZWR1cmUuY3BwCiAgICAgYjMvQjNQdXJlQ1NFLmNwcAogICAgIGIzL0IzUmVkdWNlRG91
YmxlVG9GbG9hdC5jcHAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lv
biAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTk4OCw2ICsxOTg4LDggQEAK
IAkJREMxN0U4MUExQzlDOTFFOTAwOEE2QUIzIC8qIENDYWxsSGVscGVycy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzE3RTgxNjFDOUM4MDJCMDA4
QTZBQjMgLyogQ0NhbGxIZWxwZXJzLmNwcCAqLzsgfTsKIAkJREMyMTQzMDcxQ0EzMkU1NTAwMEE4
ODY5IC8qIElDU3RhdHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IERDMjE0MzA2MUNBMzJFNTIwMDBBODg2OSAvKiBJQ1N0YXRzLmggKi87IH07CiAJCURD
MjE0MzA4MUNBMzJFNTgwMDBBODg2OSAvKiBJQ1N0YXRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDMjE0MzA1MUNBMzJFNTIwMDBBODg2OSAvKiBJ
Q1N0YXRzLmNwcCAqLzsgfTsKKwkJREM0NTRCODgxQ0ZGNkZFNzAwNEMxOEFGIC8qIEIzUG9seUp1
bXBWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBEQzQ1NEI4NjFDRkY2RkU1MDA0QzE4QUYgLyogQjNQb2x5SnVtcFZhbHVlLmNwcCAqLzsgfTsK
KwkJREM0NTRCODkxQ0ZGNkZFQTAwNEMxOEFGIC8qIEIzUG9seUp1bXBWYWx1ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM0NTRCODcxQ0ZGNkZFNTAw
NEMxOEFGIC8qIEIzUG9seUp1bXBWYWx1ZS5oICovOyB9OwogCQlEQzQ1NEI4QzFEMDBFODIyMDA0
QzE4QUYgLyogQWlyRHVtcEFzSlMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gREM0NTRCOEExRDAwRTgxRjAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmNw
cCAqLzsgfTsKIAkJREM0NTRCOEQxRDAwRTgyNDAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzQ1NEI4QjFEMDBF
ODFGMDA0QzE4QUYgLyogQWlyRHVtcEFzSlMuaCAqLzsgfTsKIAkJREM2MDVCNUQxQ0UyNkVBMDAw
NTkzNzE4IC8qIFByb2ZpbGVyRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gREM2MDVCNTkxQ0UyNkU5ODAwNTkzNzE4IC8qIFByb2ZpbGVyRXZl
bnQuY3BwICovOyB9OwpAQCAtNDIxNiw2ICs0MjE4LDggQEAKIAkJREMxN0U4MTYxQzlDODAyQjAw
OEE2QUIzIC8qIENDYWxsSGVscGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBDQ2FsbEhlbHBlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlE
QzIxNDMwNTFDQTMyRTUyMDAwQTg4NjkgLyogSUNTdGF0cy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBJQ1N0YXRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJREMyMTQzMDYxQ0EzMkU1MjAwMEE4ODY5IC8qIElDU3RhdHMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSUNTdGF0cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlEQzQ1NEI4NjFDRkY2RkU1MDA0QzE4QUYgLyogQjNQb2x5SnVtcFZhbHVlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEIzUG9seUp1bXBWYWx1ZS5jcHA7IHBh
dGggPSBiMy9CM1BvbHlKdW1wVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlEQzQ1NEI4NzFDRkY2RkU1MDA0QzE4QUYgLyogQjNQb2x5SnVtcFZhbHVlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEIzUG9seUp1bXBWYWx1ZS5oOyBwYXRoID0gYjMvQjNQ
b2x5SnVtcFZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDNDU0QjhBMUQw
MEU4MUYwMDRDMThBRiAvKiBBaXJEdW1wQXNKUy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBBaXJEdW1wQXNKUy5jcHA7IHBhdGggPSBiMy9haXIvQWlyRHVtcEFzSlMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzQ1NEI4QjFEMDBFODFGMDA0QzE4
QUYgLyogQWlyRHVtcEFzSlMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQWly
RHVtcEFzSlMuaDsgcGF0aCA9IGIzL2Fpci9BaXJEdW1wQXNKUy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlEQzYwNUI1OTFDRTI2RTk4MDA1OTM3MTggLyogUHJvZmlsZXJFdmVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQcm9maWxlckV2ZW50LmNw
cDsgcGF0aCA9IHByb2ZpbGVyL1Byb2ZpbGVyRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNDc3NSw2ICs0Nzc5LDggQEAKIAkJCQkwRkVDODRFMDFCREFDREFDMDA4MEZG
NzQgLyogQjNQaGFzZVNjb3BlLmggKi8sCiAJCQkJMEYzNzMwOEExQzBCRDI5MTAwMDUyQkZBIC8q
IEIzUGhpQ2hpbGRyZW4uY3BwICovLAogCQkJCTBGMzczMDhCMUMwQkQyOTEwMDA1MkJGQSAvKiBC
M1BoaUNoaWxkcmVuLmggKi8sCisJCQkJREM0NTRCODYxQ0ZGNkZFNTAwNEMxOEFGIC8qIEIzUG9s
eUp1bXBWYWx1ZS5jcHAgKi8sCisJCQkJREM0NTRCODcxQ0ZGNkZFNTAwNEMxOEFGIC8qIEIzUG9s
eUp1bXBWYWx1ZS5oICovLAogCQkJCTBGRUM4NEUxMUJEQUNEQUMwMDgwRkY3NCAvKiBCM1Byb2Nl
ZHVyZS5jcHAgKi8sCiAJCQkJMEZFQzg0RTIxQkRBQ0RBQzAwODBGRjc0IC8qIEIzUHJvY2VkdXJl
LmggKi8sCiAJCQkJMEZFQzg0RTMxQkRBQ0RBQzAwODBGRjc0IC8qIEIzUHJvY2VkdXJlSW5saW5l
cy5oICovLApAQCAtNzE2Myw2ICs3MTY5LDcgQEAKIAkJCQkwRjhGOTQ0MTE2Njc2MzMyMDBENjE5
NzEgLyogQ29kZUJsb2NrSGFzaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDOTdGMzQxODIwMjBE
NzAwMkM5QjI2IC8qIENvZGVCbG9ja0pldHRpc29uaW5nV2F0Y2hwb2ludC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEZEOEEzMTQxN0Q0MzI2QzAwQ0EyQzQwIC8qIENvZGVCbG9ja1NldC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJREM0NTRCODkxQ0ZGNkZFQTAwNEMxOEFGIC8qIEIzUG9seUp1bXBWYWx1
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5NkVCQjMxNjY3NkVGNjAwOEJBREUzIC8qIENvZGVC
bG9ja1dpdGhKSVRUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzdGMTgyMjE2NDA4OEIyMDA2
NDBBNDcgLyogQ29kZUNhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OUNDMEI2MzE4QkU5OTUw
MDA2Q0VCQ0MgLyogQ29kZUdlbmVyYXRvclJlcGxheUlucHV0cy5weSBpbiBIZWFkZXJzICovLApA
QCAtOTQ0Nyw2ICs5NDU0LDcgQEAKIAkJCQk3MDlGQjg2QjFBRTMzNUM2MDAzOUQwNjkgLyogV2Vh
a1NldFByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyQTRFQzkwQjE4NjBENkMyMDA5
NEY3ODIgLyogV3JpdGVCYXJyaWVyQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQzgx
NTBCMTQwNDNDMEUwMENGQTYwMyAvKiBXcml0ZUJhcnJpZXJTdXBwb3J0LmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCURDNDU0Qjg4MUNGRjZGRTcwMDRDMThBRiAvKiBCM1BvbHlKdW1wVmFsdWUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTdFNUFCM0ExNzk5RTRCMjAwRDI4MzNEIC8qIFg4NkRpc2Fz
c2VtYmxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjJCQkQ5NzFDNUZGM0Y1MDAyM0VGMjMg
LyogQjNWYXJpYWJsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NjNDNkQ5QzE1MjExMTFBMDA1
ODVFNEUgLyogWWFyckNhbm9uaWNhbGl6ZVVDUzIuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
Ymxlclg4NkNvbW1vbi5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgJKHdvcmtpbmcgY29weSkKQEAg
LTIyNjMsNiArMjI2MywxMiBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLmptcF9tKGFk
ZHJlc3Mub2Zmc2V0LCBhZGRyZXNzLmJhc2UpOwogICAgIH0KIAorICAgIC8vIEFkZHJlc3MgaXMg
YSBtZW1vcnkgbG9jYXRpb24gY29udGFpbmluZyB0aGUgYWRkcmVzcyB0byBqdW1wIHRvCisgICAg
dm9pZCBqdW1wKEJhc2VJbmRleCBhZGRyZXNzKQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIu
am1wX20oYWRkcmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFzZSwgYWRkcmVzcy5pbmRleCwgYWRkcmVz
cy5zY2FsZSk7CisgICAgfQorCiAKICAgICAvLyBBcml0aG1ldGljIGNvbnRyb2wgZmxvdyBvcGVy
YXRpb25zOgogICAgIC8vCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4
NkFzc2VtYmxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvWDg2QXNzZW1ibGVyLmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTE5ODMsNiAr
MTk4MywxMSBAQCBwdWJsaWM6CiAgICAgICAgIG1fZm9ybWF0dGVyLm9uZUJ5dGVPcChPUF9HUk9V
UDVfRXYsIEdST1VQNV9PUF9KTVBOLCBiYXNlLCBvZmZzZXQpOwogICAgIH0KICAgICAKKyAgICB2
b2lkIGptcF9tKGludCBvZmZzZXQsIFJlZ2lzdGVySUQgYmFzZSwgUmVnaXN0ZXJJRCBpbmRleCwg
aW50IHNjYWxlKQorICAgIHsKKyAgICAgICAgbV9mb3JtYXR0ZXIub25lQnl0ZU9wKE9QX0dST1VQ
NV9FdiwgR1JPVVA1X09QX0pNUE4sIGJhc2UsIGluZGV4LCBzY2FsZSwgb2Zmc2V0KTsKKyAgICB9
CisgICAgCiAjaWYgIUNQVShYODZfNjQpCiAgICAgdm9pZCBqbXBfbShjb25zdCB2b2lkKiBhZGRy
ZXNzKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2su
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2su
Y3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYXNp
Y0Jsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODQsOSArODQsNDEgQEAgVmFsdWUqIEJhc2lj
QmxvY2s6OmFwcGVuZEludENvbnN0YW50KFBybwogICAgIHJldHVybiBhcHBlbmRJbnRDb25zdGFu
dChwcm9jLCBsaWtlVmFsdWUtPm9yaWdpbigpLCBsaWtlVmFsdWUtPnR5cGUoKSwgdmFsdWUpOwog
fQogCit2b2lkIEJhc2ljQmxvY2s6OmNsZWFyU3VjY2Vzc29ycygpCit7CisgICAgbV9zdWNjZXNz
b3JzLmNsZWFyKCk7Cit9CisKK3ZvaWQgQmFzaWNCbG9jazo6YXBwZW5kU3VjY2Vzc29yKGNvbnN0
IEZyZXF1ZW50ZWRCbG9jayYgdGFyZ2V0KQoreworICAgIG1fc3VjY2Vzc29ycy5hcHBlbmQodGFy
Z2V0KTsKK30KKwordm9pZCBCYXNpY0Jsb2NrOjpyZXBsYWNlU3VjY2Vzc29yc1dpdGgoY29uc3Qg
RnJlcXVlbnRlZEJsb2NrJiB0YXJnZXQpCit7CisgICAgbV9zdWNjZXNzb3JzLnJlc2l6ZSgxKTsK
KyAgICBtX3N1Y2Nlc3NvcnNbMF0gPSB0YXJnZXQ7Cit9CisKK3ZvaWQgQmFzaWNCbG9jazo6cmVw
bGFjZVN1Y2Nlc3NvcnNXaXRoKGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgdGFrZW4sIGNvbnN0IEZy
ZXF1ZW50ZWRCbG9jayYgbm90VGFrZW4pCit7CisgICAgbV9zdWNjZXNzb3JzLnJlc2l6ZSgyKTsK
KyAgICBtX3N1Y2Nlc3NvcnNbMF0gPSB0YWtlbjsKKyAgICBtX3N1Y2Nlc3NvcnNbMV0gPSBub3RU
YWtlbjsKK30KKwogYm9vbCBCYXNpY0Jsb2NrOjpyZXBsYWNlU3VjY2Vzc29yKEJhc2ljQmxvY2sq
IGZyb20sIEJhc2ljQmxvY2sqIHRvKQogewotICAgIHJldHVybiBsYXN0KCktPmFzPENvbnRyb2xW
YWx1ZT4oKS0+cmVwbGFjZVN1Y2Nlc3Nvcihmcm9tLCB0byk7CisgICAgYm9vbCByZXN1bHQgPSBm
YWxzZTsKKyAgICBmb3IgKEJhc2ljQmxvY2sqJiBzdWNjZXNzb3IgOiBzdWNjZXNzb3JCbG9ja3Mo
KSkgeworICAgICAgICBpZiAoc3VjY2Vzc29yID09IGZyb20pIHsKKyAgICAgICAgICAgIHN1Y2Nl
c3NvciA9IHRvOworICAgICAgICAgICAgcmVzdWx0ID0gdHJ1ZTsKKyAgICAgICAgICAgIAorICAg
ICAgICAgICAgLy8gS2VlcCBsb29waW5nIGJlY2F1c2UgYSBzdWNjZXNzb3IgbWF5IGJlIG1lbnRp
b25lZCBtdWx0aXBsZSB0aW1lcywgbGlrZSBpbiBhIFN3aXRjaC4KKyAgICAgICAgfQorICAgIH0K
KyAgICByZXR1cm4gcmVzdWx0OwogfQogCiBib29sIEJhc2ljQmxvY2s6OmFkZFByZWRlY2Vzc29y
KEJhc2ljQmxvY2sqIGJsb2NrKQpAQCAtMTA5LDYgKzE0MSwxNSBAQCB2b2lkIEJhc2ljQmxvY2s6
OnVwZGF0ZVByZWRlY2Vzc29yc0FmdGVyCiAgICAgQjM6OnVwZGF0ZVByZWRlY2Vzc29yc0FmdGVy
KHRoaXMpOwogfQogCitib29sIEJhc2ljQmxvY2s6OmlzQ2xvbmVhYmxlKCkgY29uc3QKK3sKKyAg
ICBmb3IgKFZhbHVlKiB2YWx1ZSA6ICp0aGlzKSB7CisgICAgICAgIGlmICghdmFsdWUtPmlzQ2xv
bmVhYmxlKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0
cnVlOworfQorCiB2b2lkIEJhc2ljQmxvY2s6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QK
IHsKICAgICBvdXQucHJpbnQoZHVtcFByZWZpeCwgbV9pbmRleCk7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcg
KzQ3LDcgQEAgY2xhc3MgQmFzaWNCbG9jayB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBWZWN0b3I8
VmFsdWUqPiBWYWx1ZUxpc3Q7CiAgICAgdHlwZWRlZiBWZWN0b3I8QmFzaWNCbG9jayosIDI+IFBy
ZWRlY2Vzc29yTGlzdDsKLSAgICB0eXBlZGVmIFZlY3RvcjxGcmVxdWVudGVkQmxvY2ssIDI+IFN1
Y2Nlc3Nvckxpc3Q7IC8vIFRoaXMgbWF0Y2hlcyBDb250cm9sVmFsdWU6OlN1Y2Nlc3Nvckxpc3QK
KyAgICB0eXBlZGVmIFZlY3RvcjxGcmVxdWVudGVkQmxvY2ssIDI+IFN1Y2Nlc3Nvckxpc3Q7CiAK
ICAgICBzdGF0aWMgY29uc3QgY2hhciogY29uc3QgZHVtcFByZWZpeDsKIApAQCAtODcsMTggKzg3
LDM2IEBAIHB1YmxpYzoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBWYWx1ZVR5cGUsIHR5cGVuYW1l
Li4uIEFyZ3VtZW50cz4KICAgICBWYWx1ZVR5cGUqIHJlcGxhY2VMYXN0V2l0aE5ldyhQcm9jZWR1
cmUmLCBBcmd1bWVudHMuLi4pOwogCi0gICAgdW5zaWduZWQgbnVtU3VjY2Vzc29ycygpIGNvbnN0
OwotICAgIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgc3VjY2Vzc29yKHVuc2lnbmVkIGluZGV4KSBj
b25zdDsKLSAgICBGcmVxdWVudGVkQmxvY2smIHN1Y2Nlc3Nvcih1bnNpZ25lZCBpbmRleCk7Ci0g
ICAgY29uc3QgU3VjY2Vzc29yTGlzdCYgc3VjY2Vzc29ycygpIGNvbnN0OwotICAgIFN1Y2Nlc3Nv
ckxpc3QmIHN1Y2Nlc3NvcnMoKTsKLQotICAgIEJhc2ljQmxvY2sqIHN1Y2Nlc3NvckJsb2NrKHVu
c2lnbmVkIGluZGV4KSBjb25zdDsKLSAgICBCYXNpY0Jsb2NrKiYgc3VjY2Vzc29yQmxvY2sodW5z
aWduZWQgaW5kZXgpOwotICAgIFN1Y2Nlc3NvckNvbGxlY3Rpb248QmFzaWNCbG9jaywgU3VjY2Vz
c29yTGlzdD4gc3VjY2Vzc29yQmxvY2tzKCk7Ci0gICAgU3VjY2Vzc29yQ29sbGVjdGlvbjxjb25z
dCBCYXNpY0Jsb2NrLCBjb25zdCBTdWNjZXNzb3JMaXN0PiBzdWNjZXNzb3JCbG9ja3MoKSBjb25z
dDsKKyAgICB1bnNpZ25lZCBudW1TdWNjZXNzb3JzKCkgY29uc3QgeyByZXR1cm4gbV9zdWNjZXNz
b3JzLnNpemUoKTsgfQorICAgIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgc3VjY2Vzc29yKHVuc2ln
bmVkIGluZGV4KSBjb25zdCB7IHJldHVybiBtX3N1Y2Nlc3NvcnNbaW5kZXhdOyB9CisgICAgRnJl
cXVlbnRlZEJsb2NrJiBzdWNjZXNzb3IodW5zaWduZWQgaW5kZXgpIHsgcmV0dXJuIG1fc3VjY2Vz
c29yc1tpbmRleF07IH0KKyAgICBjb25zdCBTdWNjZXNzb3JMaXN0JiBzdWNjZXNzb3JzKCkgY29u
c3QgeyByZXR1cm4gbV9zdWNjZXNzb3JzOyB9CisgICAgU3VjY2Vzc29yTGlzdCYgc3VjY2Vzc29y
cygpIHsgcmV0dXJuIG1fc3VjY2Vzc29yczsgfQorICAgIAorICAgIHZvaWQgY2xlYXJTdWNjZXNz
b3JzKCk7CisgICAgdm9pZCBhcHBlbmRTdWNjZXNzb3IoY29uc3QgRnJlcXVlbnRlZEJsb2NrJik7
CisgICAgdm9pZCByZXBsYWNlU3VjY2Vzc29yc1dpdGgoY29uc3QgRnJlcXVlbnRlZEJsb2NrJik7
CisgICAgdm9pZCByZXBsYWNlU3VjY2Vzc29yc1dpdGgoY29uc3QgRnJlcXVlbnRlZEJsb2NrJiwg
Y29uc3QgRnJlcXVlbnRlZEJsb2NrJik7CisKKyAgICBCYXNpY0Jsb2NrKiBzdWNjZXNzb3JCbG9j
ayh1bnNpZ25lZCBpbmRleCkgY29uc3QgeyByZXR1cm4gc3VjY2Vzc29yKGluZGV4KS5ibG9jaygp
OyB9CisgICAgQmFzaWNCbG9jayomIHN1Y2Nlc3NvckJsb2NrKHVuc2lnbmVkIGluZGV4KSB7IHJl
dHVybiBzdWNjZXNzb3IoaW5kZXgpLmJsb2NrKCk7IH0KKyAgICBTdWNjZXNzb3JDb2xsZWN0aW9u
PEJhc2ljQmxvY2ssIFN1Y2Nlc3Nvckxpc3Q+IHN1Y2Nlc3NvckJsb2NrcygpCisgICAgeworICAg
ICAgICByZXR1cm4gU3VjY2Vzc29yQ29sbGVjdGlvbjxCYXNpY0Jsb2NrLCBTdWNjZXNzb3JMaXN0
PihzdWNjZXNzb3JzKCkpOworICAgIH0KKyAgICBTdWNjZXNzb3JDb2xsZWN0aW9uPGNvbnN0IEJh
c2ljQmxvY2ssIGNvbnN0IFN1Y2Nlc3Nvckxpc3Q+IHN1Y2Nlc3NvckJsb2NrcygpIGNvbnN0Cisg
ICAgeworICAgICAgICByZXR1cm4gU3VjY2Vzc29yQ29sbGVjdGlvbjxjb25zdCBCYXNpY0Jsb2Nr
LCBTdWNjZXNzb3JMaXN0PihzdWNjZXNzb3JzKCkpOworICAgIH0KIAogICAgIGJvb2wgcmVwbGFj
ZVN1Y2Nlc3NvcihCYXNpY0Jsb2NrKiBmcm9tLCBCYXNpY0Jsb2NrKiB0byk7CisgICAgCisgICAg
Ly8gVGhpcyBpcyBvbmx5IHZhbGlkIGZvciBKdW1wIGFuZCBCcmFuY2guCisgICAgY29uc3QgRnJl
cXVlbnRlZEJsb2NrJiB0YWtlbigpIGNvbnN0OworICAgIEZyZXF1ZW50ZWRCbG9jayYgdGFrZW4o
KTsKKyAgICAvLyBUaGlzIGlzIG9ubHkgdmxhaWQgZm9yIEJyYW5jaC4KKyAgICBjb25zdCBGcmVx
dWVudGVkQmxvY2smIG5vdFRha2VuKCkgY29uc3Q7CisgICAgRnJlcXVlbnRlZEJsb2NrJiBub3RU
YWtlbigpIGNvbnN0OwogCiAgICAgdW5zaWduZWQgbnVtUHJlZGVjZXNzb3JzKCkgY29uc3QgeyBy
ZXR1cm4gbV9wcmVkZWNlc3NvcnMuc2l6ZSgpOyB9CiAgICAgQmFzaWNCbG9jayogcHJlZGVjZXNz
b3IodW5zaWduZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fcHJlZGVjZXNzb3JzW2luZGV4XTsg
fQpAQCAtMTE1LDYgKzEzMyw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZVByZWRlY2Vzc29y
c0FmdGVyKCk7CiAKICAgICBkb3VibGUgZnJlcXVlbmN5KCkgY29uc3QgeyByZXR1cm4gbV9mcmVx
dWVuY3k7IH0KKyAgICAKKyAgICBib29sIGlzQ2xvbmVhYmxlKCkgY29uc3Q7CiAKICAgICB2b2lk
IGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKICAgICB2b2lkIGRlZXBEdW1wKGNvbnN0IFByb2Nl
ZHVyZSYsIFByaW50U3RyZWFtJikgY29uc3Q7CkBAIC0xMzAsNiArMTUwLDcgQEAgcHJpdmF0ZToK
ICAgICB1bnNpZ25lZCBtX2luZGV4OwogICAgIFZhbHVlTGlzdCBtX3ZhbHVlczsKICAgICBQcmVk
ZWNlc3Nvckxpc3QgbV9wcmVkZWNlc3NvcnM7CisgICAgU3VjY2Vzc29yTGlzdCBtX3N1Y2Nlc3Nv
cnM7CiAgICAgZG91YmxlIG1fZnJlcXVlbmN5OwogfTsKIApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzQmFzaWNCbG9ja0lubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrSW5saW5lcy5oCShyZXZpc2lvbiAyMDI4MDkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrSW5saW5lcy5oCSh3b3JraW5n
IGNvcHkpCkBAIC01OCw0OSArNTgsMjggQEAgVmFsdWVUeXBlKiBCYXNpY0Jsb2NrOjpyZXBsYWNl
TGFzdFdpdGhOZQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLWlubGluZSB1bnNpZ25lZCBCYXNp
Y0Jsb2NrOjpudW1TdWNjZXNzb3JzKCkgY29uc3QKK2NvbnN0IEZyZXF1ZW50ZWRCbG9jayYgQmFz
aWNCbG9jazo6dGFrZW4oKSBjb25zdAogewotICAgIHJldHVybiBsYXN0KCktPmFzPENvbnRyb2xW
YWx1ZT4oKS0+bnVtU3VjY2Vzc29ycygpOworICAgIEFTU0VSVChsYXN0KCktPm9wY29kZSgpID09
IEp1bXAgfHwgbGFzdCgpLT5vcGNvZGUoKSA9PSBCcmFuY2gpOworICAgIHJldHVybiBtX3N1Y2Nl
c3NvcnNbMF07CiB9CiAKLWlubGluZSBjb25zdCBGcmVxdWVudGVkQmxvY2smIEJhc2ljQmxvY2s6
OnN1Y2Nlc3Nvcih1bnNpZ25lZCBpbmRleCkgY29uc3QKK0ZyZXF1ZW50ZWRCbG9jayYgQmFzaWNC
bG9jazo6dGFrZW4oKQogewotICAgIHJldHVybiBsYXN0KCktPmFzPENvbnRyb2xWYWx1ZT4oKS0+
c3VjY2Vzc29yKGluZGV4KTsKKyAgICBBU1NFUlQobGFzdCgpLT5vcGNvZGUoKSA9PSBKdW1wIHx8
IGxhc3QoKS0+b3Bjb2RlKCkgPT0gQnJhbmNoKTsKKyAgICByZXR1cm4gbV9zdWNjZXNzb3JzWzBd
OwogfQogCi1pbmxpbmUgRnJlcXVlbnRlZEJsb2NrJiBCYXNpY0Jsb2NrOjpzdWNjZXNzb3IodW5z
aWduZWQgaW5kZXgpCitjb25zdCBGcmVxdWVudGVkQmxvY2smIEJhc2ljQmxvY2s6Om5vdFRha2Vu
KCkgY29uc3QKIHsKLSAgICByZXR1cm4gbGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCktPnN1Y2Nl
c3NvcihpbmRleCk7CisgICAgQVNTRVJUKGxhc3QoKS0+b3Bjb2RlKCkgPT0gQnJhbmNoKTsKKyAg
ICByZXR1cm4gbV9zdWNjZXNzb3JzWzFdOwogfQogCi1pbmxpbmUgY29uc3QgQmFzaWNCbG9jazo6
U3VjY2Vzc29yTGlzdCYgQmFzaWNCbG9jazo6c3VjY2Vzc29ycygpIGNvbnN0CitGcmVxdWVudGVk
QmxvY2smIEJhc2ljQmxvY2s6Om5vdFRha2VuKCkKIHsKLSAgICByZXR1cm4gbGFzdCgpLT5hczxD
b250cm9sVmFsdWU+KCktPnN1Y2Nlc3NvcnMoKTsKLX0KLQotaW5saW5lIEJhc2ljQmxvY2s6OlN1
Y2Nlc3Nvckxpc3QmIEJhc2ljQmxvY2s6OnN1Y2Nlc3NvcnMoKQotewotICAgIHJldHVybiBsYXN0
KCktPmFzPENvbnRyb2xWYWx1ZT4oKS0+c3VjY2Vzc29ycygpOwotfQotCi1pbmxpbmUgQmFzaWNC
bG9jayogQmFzaWNCbG9jazo6c3VjY2Vzc29yQmxvY2sodW5zaWduZWQgaW5kZXgpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIHN1Y2Nlc3NvcihpbmRleCkuYmxvY2soKTsKLX0KLQotaW5saW5lIEJhc2lj
QmxvY2sqJiBCYXNpY0Jsb2NrOjpzdWNjZXNzb3JCbG9jayh1bnNpZ25lZCBpbmRleCkKLXsKLSAg
ICByZXR1cm4gc3VjY2Vzc29yKGluZGV4KS5ibG9jaygpOwotfQotCi1pbmxpbmUgU3VjY2Vzc29y
Q29sbGVjdGlvbjxCYXNpY0Jsb2NrLCBCYXNpY0Jsb2NrOjpTdWNjZXNzb3JMaXN0PiBCYXNpY0Js
b2NrOjpzdWNjZXNzb3JCbG9ja3MoKQotewotICAgIHJldHVybiBTdWNjZXNzb3JDb2xsZWN0aW9u
PEJhc2ljQmxvY2ssIFN1Y2Nlc3Nvckxpc3Q+KHN1Y2Nlc3NvcnMoKSk7Ci19Ci0KLWlubGluZSBT
dWNjZXNzb3JDb2xsZWN0aW9uPGNvbnN0IEJhc2ljQmxvY2ssIGNvbnN0IEJhc2ljQmxvY2s6OlN1
Y2Nlc3Nvckxpc3Q+IEJhc2ljQmxvY2s6OnN1Y2Nlc3NvckJsb2NrcygpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIFN1Y2Nlc3NvckNvbGxlY3Rpb248Y29uc3QgQmFzaWNCbG9jaywgY29uc3QgU3VjY2Vz
c29yTGlzdD4oc3VjY2Vzc29ycygpKTsKKyAgICBBU1NFUlQobGFzdCgpLT5vcGNvZGUoKSA9PSBC
cmFuY2gpOworICAgIHJldHVybiBtX3N1Y2Nlc3NvcnNbMV07CiB9CiAKIH0gfSAvLyBuYW1lc3Bh
Y2UgSlNDOjpCMwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29tbW9uLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29tbW9uLmgJKHJldmlzaW9u
IDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbW1vbi5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTI4LDYgKzI4LDggQEAKIAogI2lmIEVOQUJMRShCM19KSVQpCiAKKyNpbmNsdWRlICJK
U0V4cG9ydE1hY3Jvcy5oIgorCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIAogaW5s
aW5lIGJvb2wgaXM2NEJpdCgpIHsgcmV0dXJuIHNpemVvZih2b2lkKikgPT0gODsgfQpAQCAtMzgs
NyArNDAsNyBAQCBlbnVtIEIzQ29tcGxpdGF0aW9uTW9kZSB7CiAgICAgQWlyTW9kZQogfTsKIAot
Ym9vbCBzaG91bGREdW1wSVIoQjNDb21wbGl0YXRpb25Nb2RlKTsKK0pTX0VYUE9SVF9QUklWQVRF
IGJvb2wgc2hvdWxkRHVtcElSKEIzQ29tcGxpdGF0aW9uTW9kZSk7CiBib29sIHNob3VsZER1bXBJ
UkF0RWFjaFBoYXNlKEIzQ29tcGxpdGF0aW9uTW9kZSk7CiBib29sIHNob3VsZFZhbGlkYXRlSVIo
KTsKIGJvb2wgc2hvdWxkVmFsaWRhdGVJUkF0RWFjaFBoYXNlKCk7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNDb250cm9sVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNDb250cm9sVmFsdWUuaAkocmV2aXNpb24gMjAyODA5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29udHJvbFZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTQ2LDkgKzQ2LDEwIEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBSZXR1cm46CiAgICAgICAgIGNh
c2UgT29wczoKICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBjYXNlIFN3aXRjaDog
Ci0gICAgICAgICAgICAvLyBUaGlzIGlzIGhlcmUgYmVjYXVzZSBTd2l0Y2hWYWx1ZSBpcyBhIHN1
YmNsYXNzIG9mIENvbnRyb2xWYWx1ZSwgc28gd2Ugd2FudAotICAgICAgICAgICAgLy8gc3dpdGNo
VmFsdWUtPmFzPENvbnRyb2xWYWx1ZT4oKSB0byByZXR1cm4gbm9uLW51bGwuCisgICAgICAgIGNh
c2UgU3dpdGNoOgorICAgICAgICBjYXNlIFBvbHlKdW1wOgorICAgICAgICAgICAgLy8gVGhpcyBp
cyBoZXJlIGJlY2F1c2UgU3dpdGNoVmFsdWUgYW5kIFBvbHlKdW1wVmFsdWUgYXJlIHN1YmNsYXNz
ZXMgb2YgQ29udHJvbFZhbHVlLAorICAgICAgICAgICAgLy8gc28gd2Ugd2FudCB0aGluZ3MgbGlr
ZSBzd2l0Y2hWYWx1ZS0+YXM8Q29udHJvbFZhbHVlPigpIHRvIHJldHVybiBub24tbnVsbC4KICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwpAQCAtNzcsNyArNzgsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgYm9vbCBy
ZXBsYWNlU3VjY2Vzc29yKEJhc2ljQmxvY2sqIGZyb20sIEJhc2ljQmxvY2sqIHRvKTsKLQorICAg
IAogICAgIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgdGFrZW4oKSBjb25zdAogICAgIHsKICAgICAg
ICAgQVNTRVJUKG9wY29kZSgpID09IEp1bXAgfHwgb3Bjb2RlKCkgPT0gQnJhbmNoKTsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0RhdGFTZWN0aW9uLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEYXRhU2VjdGlvbi5jcHAJKHJldmlzaW9uIDIw
MjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0RhdGFTZWN0aW9uLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0zMSw3ICszMSw3IEBACiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsK
IAogRGF0YVNlY3Rpb246OkRhdGFTZWN0aW9uKHNpemVfdCBzaXplKQotICAgIDogbV9kYXRhKGZh
c3RNYWxsb2Moc2l6ZSkpCisgICAgOiBtX2RhdGEoZmFzdFplcm9lZE1hbGxvYyhzaXplKSkKICAg
ICAsIG1fc2l6ZShzaXplKQogewogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
RHVwbGljYXRlVGFpbHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM0R1cGxpY2F0ZVRhaWxzLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzRHVwbGljYXRlVGFpbHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03Miw5
ICs3MiwxMSBAQCBwdWJsaWM6CiAgICAgICAgIEluZGV4U2V0PEJhc2ljQmxvY2s+IGNhbmRpZGF0
ZXM7CiAKICAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBibG9jayA6IG1fcHJvYykgewotICAgICAg
ICAgICAgaWYgKGJsb2NrLT5zaXplKCkgPiBtX21heFNpemUgfHwgYmxvY2stPm51bVN1Y2Nlc3Nv
cnMoKSA+IG1fbWF4U3VjY2Vzc29ycykKKyAgICAgICAgICAgIGlmIChibG9jay0+c2l6ZSgpID4g
bV9tYXhTaXplCisgICAgICAgICAgICAgICAgfHwgYmxvY2stPm51bVN1Y2Nlc3NvcnMoKSA+IG1f
bWF4U3VjY2Vzc29ycworICAgICAgICAgICAgICAgIHx8ICFibG9jay0+aXNDbG9uZWFibGUoKSkK
ICAgICAgICAgICAgICAgICBjb250aW51ZTsKLQorICAgICAgICAgICAgCiAgICAgICAgICAgICBj
YW5kaWRhdGVzLmFkZChibG9jayk7CiAgICAgICAgIH0KIApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzTG93ZXJNYWNyb3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0xvd2VyTWFjcm9zLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJNYWNyb3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDcg
KzM0LDkgQEAKICNpbmNsdWRlICJCM0NvbnN0UHRyVmFsdWUuaCIKICNpbmNsdWRlICJCM0NvbnRy
b2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzSW5zZXJ0aW9uU2V0SW5saW5lcy5oIgorI2luY2x1ZGUg
IkIzTWVtb3J5VmFsdWUuaCIKICNpbmNsdWRlICJCM1BoYXNlU2NvcGUuaCIKKyNpbmNsdWRlICJC
M1BvbHlKdW1wVmFsdWUuaCIKICNpbmNsdWRlICJCM1Byb2NlZHVyZUlubGluZXMuaCIKICNpbmNs
dWRlICJCM1N3aXRjaFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNVcHNpbG9uVmFsdWUuaCIKQEAgLTI3
NSw4ICsyNzcsOTUgQEAgcHJpdmF0ZToKICAgICAgICAgY29uc3QgVmVjdG9yPFN3aXRjaENhc2U+
JiBjYXNlcywgdW5zaWduZWQgc3RhcnQsIGJvb2wgaGFyZFN0YXJ0LCB1bnNpZ25lZCBlbmQsCiAg
ICAgICAgIEJhc2ljQmxvY2sqIGJlZm9yZSkKICAgICB7Ci0gICAgICAgIC8vIEZJWE1FOiBBZGQg
dGFibGUtYmFzZWQgc3dpdGNoIGxvd2VyaW5nLgotICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxMTQxCisgICAgICAgIFZhbHVlKiBjaGlsZCA9IG1f
dmFsdWUtPmNoaWxkKDApOworICAgICAgICBUeXBlIHR5cGUgPSBjaGlsZC0+dHlwZSgpOworICAg
ICAgICBGcmVxdWVudGVkQmxvY2sgZmFsbFRocm91Z2ggPSBtX3ZhbHVlLT5hczxTd2l0Y2hWYWx1
ZT4oKS0+ZmFsbFRocm91Z2goKTsKKyAgICAgICAgCisgICAgICAgIC8vIEl0J3MgYSBnb29kIGlk
ZWEgdG8gdXNlIGEgdGFibGUtYmFzZWQgc3dpdGNoIGluIHNvbWUgY2FzZXM6IHRoZSBudW1iZXIg
b2YgY2FzZXMgaGFzIHRvIGJlCisgICAgICAgIC8vIGxhcmdlIGVub3VnaCBhbmQgdGhleSBoYXZl
IHRvIGJlIGRlbnNlIGVub3VnaC4gVGhpcyBjb3VsZCBwcm9iYWJseSBiZSBpbXByb3ZlZCBhIGxv
dC4gRm9yCisgICAgICAgIC8vIGV4YW1wbGUsIHdlIGNvdWxkIHN0aWxsIHVzZSBhIGp1bXAgdGFi
bGUgaW4gY2FzZXMgd2hlcmUgdGhlIGlucHV0cyBhcmUgc3BhcnNlIHNvIGxvbmcgYXMgd2UKKyAg
ICAgICAgLy8gc2hpZnQgb2ZmIHRoZSB1bmludGVyZXN0aW5nIGJpdHMuIE9uIHRoZSBvdGhlciBo
YW5kLCBpdCdzIG5vdCBjbGVhciB0aGF0IHRoaXMgd291bGQKKyAgICAgICAgLy8gYWN0dWFsbHkg
YmUgYW55IGJldHRlciB0aGFuIHdoYXQgd2UgaGF2ZSBkb25lIGhlcmUgYW5kIGl0J3Mgbm90IGNs
ZWFyIHRoYXQgaXQgd291bGQgYmUKKyAgICAgICAgLy8gYmV0dGVyIHRoYW4gYSBiaW5hcnkgc3dp
dGNoLgorICAgICAgICBjb25zdCB1bnNpZ25lZCBtaW5DYXNlc0ZvclRhYmxlID0gNzsKKyAgICAg
ICAgY29uc3QgdW5zaWduZWQgZGVuc2l0eUxpbWl0ID0gNDsKKyAgICAgICAgaWYgKGVuZCAtIHN0
YXJ0ID49IG1pbkNhc2VzRm9yVGFibGUpIHsKKyAgICAgICAgICAgIGludDY0X3QgZmlyc3RWYWx1
ZSA9IGNhc2VzW3N0YXJ0XS5jYXNlVmFsdWUoKTsKKyAgICAgICAgICAgIGludDY0X3QgbGFzdFZh
bHVlID0gY2FzZXNbZW5kIC0gMV0uY2FzZVZhbHVlKCk7CisgICAgICAgICAgICBpZiAoKGxhc3RW
YWx1ZSAtIGZpcnN0VmFsdWUgKyAxKSAvIGNhc2VzLnNpemUoKSA8IGRlbnNpdHlMaW1pdCkgewor
ICAgICAgICAgICAgICAgIEJhc2ljQmxvY2sqIHN3aXRjaEJsb2NrID0gbV9ibG9ja0luc2VydGlv
blNldC5pbnNlcnRBZnRlcihtX2Jsb2NrKTsKKyAgICAgICAgICAgICAgICBWYWx1ZSogaW5kZXgg
PSBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICAgICAgICAgIG1fcHJvYywg
U3ViLCBtX29yaWdpbiwgY2hpbGQsCisgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5k
SW50Q29uc3RhbnQobV9wcm9jLCBtX29yaWdpbiwgdHlwZSwgZmlyc3RWYWx1ZSkpOworICAgICAg
ICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgICAgICAg
ICAgICAgIG1fcHJvYywgQnJhbmNoLCBtX29yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAgYmVm
b3JlLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBB
Ym92ZSwgbV9vcmlnaW4sIGluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgYmVmb3JlLT5h
cHBlbmRJbnRDb25zdGFudChtX3Byb2MsIG1fb3JpZ2luLCB0eXBlLCBsYXN0VmFsdWUgLSBmaXJz
dFZhbHVlKSksCisgICAgICAgICAgICAgICAgICAgIGZhbGxUaHJvdWdoLCBGcmVxdWVudGVkQmxv
Y2soc3dpdGNoQmxvY2spKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBzaXpl
X3QgdGFibGVTaXplID0gbGFzdFZhbHVlIC0gZmlyc3RWYWx1ZSArIDE7CisgICAgICAgICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKiBqdW1wVGFibGUgPSBiaXR3aXNlX2Nhc3Q8TWFjcm9B
c3NlbWJsZXJDb2RlUHRyKj4oCisgICAgICAgICAgICAgICAgICAgIG1fcHJvYy5hZGREYXRhU2Vj
dGlvbihzaXplb2YoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKSAqIHRhYmxlU2l6ZSkpOworICAgICAg
ICAgICAgICAgIAorICAgICAgICAgICAgICAgIFZhbHVlKiBiYXNlID0gc3dpdGNoQmxvY2stPmFw
cGVuZEludENvbnN0YW50KAorICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLCBw
b2ludGVyVHlwZSgpLCBiaXR3aXNlX2Nhc3Q8aW50cHRyX3Q+KGp1bXBUYWJsZSkpOworICAgICAg
ICAgICAgICAgIGlmIChpbmRleC0+dHlwZSgpICE9IGJhc2UtPnR5cGUoKSkgeworICAgICAgICAg
ICAgICAgICAgICBpZiAoaW5kZXgtPnR5cGUoKSA9PSBJbnQzMikKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGluZGV4ID0gc3dpdGNoQmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBaRXh0
MzIsIG1fb3JpZ2luLCBpbmRleCk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGluZGV4ID0gc3dpdGNoQmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4obV9w
cm9jLCBUcnVuYywgbV9vcmlnaW4sIGluZGV4KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgaW5kZXggPSBzd2l0Y2hCbG9jay0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAg
ICAgICAgICAgICAgbV9wcm9jLCBNdWwsIG1fb3JpZ2luLCBpbmRleCwKKyAgICAgICAgICAgICAg
ICAgICAgc3dpdGNoQmxvY2stPmFwcGVuZEludENvbnN0YW50KAorICAgICAgICAgICAgICAgICAg
ICAgICAgbV9wcm9jLCBtX29yaWdpbiwgcG9pbnRlclR5cGUoKSwgc2l6ZW9mKE1hY3JvQXNzZW1i
bGVyQ29kZVB0cikpKTsKKyAgICAgICAgICAgICAgICBWYWx1ZSogcHRyID0gc3dpdGNoQmxvY2st
PmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBBZGQsIG1fb3JpZ2luLCBiYXNlLCBpbmRleCk7Cisg
ICAgICAgICAgICAgICAgVmFsdWUqIGp1bXBUYXJnZXQgPQorICAgICAgICAgICAgICAgICAgICBz
d2l0Y2hCbG9jay0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihtX3Byb2MsIExvYWQsIHBvaW50ZXJU
eXBlKCksIG1fb3JpZ2luLCBwdHIpOworICAgICAgICAgICAgICAgIFBvbHlKdW1wVmFsdWUqIHBv
bHlKdW1wID0KKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoQmxvY2stPmFwcGVuZE5ldzxQb2x5
SnVtcFZhbHVlPihtX3Byb2MsIG1fb3JpZ2luLCBqdW1wVGFyZ2V0KTsKKyAgICAgICAgICAgICAg
ICAKKyAgICAgICAgICAgICAgICBCaXRWZWN0b3IgaGFuZGxlZEluZGljZXM7CisgICAgICAgICAg
ICAgICAgZm9yICh1bnNpZ25lZCBpID0gc3RhcnQ7IGkgPCBlbmQ7ICsraSkgeworICAgICAgICAg
ICAgICAgICAgICBGcmVxdWVudGVkQmxvY2sgYmxvY2sgPSBjYXNlc1tpXS50YXJnZXQoKTsKKyAg
ICAgICAgICAgICAgICAgICAgaW50NjRfdCB2YWx1ZSA9IGNhc2VzW2ldLmNhc2VWYWx1ZSgpOwor
ICAgICAgICAgICAgICAgICAgICBwb2x5SnVtcC0+YXBwZW5kU3VjY2Vzc29yKGJsb2NrKTsKKyAg
ICAgICAgICAgICAgICAgICAgc2l6ZV90IGluZGV4ID0gdmFsdWUgLSBmaXJzdFZhbHVlOworICAg
ICAgICAgICAgICAgICAgICBBU1NFUlQoIWhhbmRsZWRJbmRpY2VzLmdldChpbmRleCkpOworICAg
ICAgICAgICAgICAgICAgICBoYW5kbGVkSW5kaWNlcy5zZXQoaW5kZXgpOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBib29sIGhhc1VuaGFuZGxl
ZEluZGV4ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IHRhYmxlU2l6ZTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghaGFuZGxlZEluZGlj
ZXMuZ2V0KGkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBoYXNVbmhhbmRsZWRJbmRleCA9
IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAg
ICBpZiAoaGFzVW5oYW5kbGVkSW5kZXgpCisgICAgICAgICAgICAgICAgICAgIHBvbHlKdW1wLT5h
cHBlbmRTdWNjZXNzb3IoZmFsbFRocm91Z2gpOworICAgICAgICAgICAgICAgIAorICAgICAgICAg
ICAgICAgIHBvbHlKdW1wLT5zZXRDYWxsYmFjaygKKyAgICAgICAgICAgICAgICAgICAgWz1dIChj
b25zdCBWZWN0b3I8TWFjcm9Bc3NlbWJsZXJDb2RlUHRyPiYgcG9pbnRlcnMpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHNpemVfdCBwb2ludGVySW5kZXggPSAwOworICAgICAgICAgICAgICAg
ICAgICAgICAgZm9yIChzaXplX3QgaW5kZXggOiBoYW5kbGVkSW5kaWNlcykKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBqdW1wVGFibGVbaW5kZXhdID0gcG9pbnRlcnNbcG9pbnRlckluZGV4
KytdOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoaGFzVW5oYW5kbGVkSW5kZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IHRhYmxlU2l6ZTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmICghaGFuZGxlZEluZGljZXMuZ2V0KGkpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAganVtcFRhYmxlW2ldID0gcG9pbnRlcnNbcG9pbnRlckluZGV4
XTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcG9pbnRlckluZGV4Kys7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJU
KHBvaW50ZXJJbmRleCA9PSBwb2ludGVycy5zaXplKCkpOworICAgICAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAg
ICAgICAgCiAgICAgICAgIC8vIFNlZSBjb21tZW50cyBpbiBqaXQvQmluYXJ5U3dpdGNoLmNwcCBm
b3IgYSBqdXN0aWZpY2F0aW9uIG9mIHRoaXMgYWxnb3JpdGhtLiBUaGUgb25seQogICAgICAgICAv
LyB0aGluZyB3ZSBkbyBkaWZmZXJlbnRseSBpcyB0aGF0IHdlIGRvbid0IHVzZSByYW5kb21uZXNz
LgpAQCAtMzA3LDIyICszOTYsMTkgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBiZWZvcmUt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAogICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIEJy
YW5jaCwgbV9vcmlnaW4sCiAgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PFZh
bHVlPigKLSAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgRXF1YWwsIG1fb3JpZ2luLCBt
X3ZhbHVlLT5jaGlsZCgwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgRXF1YWws
IG1fb3JpZ2luLCBjaGlsZCwKICAgICAgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5k
SW50Q29uc3RhbnQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdp
biwgbV92YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtX3Byb2MsIG1fb3JpZ2luLCB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNh
c2VzW3N0YXJ0ICsgaV0uY2FzZVZhbHVlKCkpKSwKICAgICAgICAgICAgICAgICAgICAgY2FzZXNb
c3RhcnQgKyBpXS50YXJnZXQoKSwgRnJlcXVlbnRlZEJsb2NrKG5leHRDaGVjaykpOwogCiAgICAg
ICAgICAgICAgICAgYmVmb3JlID0gbmV4dENoZWNrOwogICAgICAgICAgICAgfQogCi0gICAgICAg
ICAgICBpZiAoYWxsQ29uc2VjdXRpdmUpIHsKLSAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAotICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIEp1bXAsIG1f
b3JpZ2luLCBjYXNlc1tlbmQgLSAxXS50YXJnZXQoKSk7Ci0gICAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCi0gICAgICAg
ICAgICAgICAgICAgIG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIG1fdmFsdWUtPmFzPFN3aXRjaFZh
bHVlPigpLT5mYWxsVGhyb3VnaCgpKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChh
bGxDb25zZWN1dGl2ZSkKKyAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIGNhc2VzW2VuZCAtIDFdLnRhcmdldCgpKTsK
KyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIGZhbGxUaHJvdWdoKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC0zMzQsOSArNDIwLDkgQEAgcHJpdmF0ZToKICAg
ICAgICAgYmVmb3JlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKICAgICAgICAgICAgIG1fcHJv
YywgQnJhbmNoLCBtX29yaWdpbiwKICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PFZhbHVl
PigKLSAgICAgICAgICAgICAgICBtX3Byb2MsIExlc3NUaGFuLCBtX29yaWdpbiwgbV92YWx1ZS0+
Y2hpbGQoMCksCisgICAgICAgICAgICAgICAgbV9wcm9jLCBMZXNzVGhhbiwgbV9vcmlnaW4sIGNo
aWxkLAogICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kSW50Q29uc3RhbnQoCi0gICAgICAg
ICAgICAgICAgICAgIG1fcHJvYywgbV9vcmlnaW4sIG1fdmFsdWUtPmNoaWxkKDApLT50eXBlKCks
CisgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgbV9vcmlnaW4sIHR5cGUsCiAgICAgICAgICAg
ICAgICAgICAgIGNhc2VzW21lZGlhbkluZGV4XS5jYXNlVmFsdWUoKSkpLAogICAgICAgICAgICAg
RnJlcXVlbnRlZEJsb2NrKGxlZnQpLCBGcmVxdWVudGVkQmxvY2socmlnaHQpKTsKIApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAJKHJldmlzaW9uIDIwMjgw
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xNTUsNyArMTU1LDYgQEAgcHVibGljOgogICAgICAgICAgICAgfQogCiAgICAg
ICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCB0aGUgc3VjY2Vzc29ycyBhcmUgc2V0IHVwIGNvcnJl
Y3RseS4KLSAgICAgICAgICAgIEFTU0VSVChibG9jay0+c3VjY2Vzc29ycygpLnNpemUoKSA8PSAy
KTsKICAgICAgICAgICAgIGZvciAoQjM6OkZyZXF1ZW50ZWRCbG9jayBzdWNjZXNzb3IgOiBibG9j
ay0+c3VjY2Vzc29ycygpKSB7CiAgICAgICAgICAgICAgICAgbV9ibG9ja1RvQmxvY2tbYmxvY2td
LT5zdWNjZXNzb3JzKCkuYXBwZW5kKAogICAgICAgICAgICAgICAgICAgICBBaXI6OkZyZXF1ZW50
ZWRCbG9jayhtX2Jsb2NrVG9CbG9ja1tzdWNjZXNzb3IuYmxvY2soKV0sIHN1Y2Nlc3Nvci5mcmVx
dWVuY3koKSkpOwpAQCAtMjQ0MSw2ICsyNDQwLDE2IEBAIHByaXZhdGU6CiAgICAgICAgICAgICB9
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICBj
YXNlIEIzOjpQb2x5SnVtcDogeworICAgICAgICAgICAgQXJnUHJvbWlzZSBhZGRyID0gbG9hZFBy
b21pc2UobV92YWx1ZS0+Y2hpbGQoMCkpOworICAgICAgICAgICAgaWYgKGlzVmFsaWRGb3JtKEFp
cjo6UG9seUp1bXAsIGFkZHIua2luZCgpKSkgeworICAgICAgICAgICAgICAgIGFwcGVuZChBaXI6
OlBvbHlKdW1wLCBhZGRyLmNvbnN1bWUoKnRoaXMpKTsKKyAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICB9CisgICAgICAgICAgICBhcHBlbmQoQWlyOjpQb2x5SnVtcCwgdG1wKG1f
dmFsdWUtPmNoaWxkKDApKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KIAogICAg
ICAgICBjYXNlIEIzOjpPb3BzOiB7CiAgICAgICAgICAgICBhcHBlbmQoQWlyOjpPb3BzKTsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmNwcAkocmV2aXNpb24gMjAyODA5KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjkwLDYgKzI5MCw5IEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBP
cGMKICAgICBjYXNlIFN3aXRjaDoKICAgICAgICAgb3V0LnByaW50KCJTd2l0Y2giKTsKICAgICAg
ICAgcmV0dXJuOworICAgIGNhc2UgUG9seUp1bXA6CisgICAgICAgIG91dC5wcmludCgiUG9seUp1
bXAiKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgUmV0dXJuOgogICAgICAgICBvdXQucHJp
bnQoIlJldHVybiIpOwogICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNPcGNvZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNPcGNvZGUuaAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzT3Bjb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxNiw2ICsyMTYsMTMgQEAgZW51bSBPcGNv
ZGUgOiBpbnQxNl90IHsKIAogICAgIC8vIFN3aXRjaC4gU3dpdGNoZXMgb3ZlciBlaXRoZXIgSW50
MzIgb3IgSW50NjQuIFVzZXMgdGhlIFN3aXRjaFZhbHVlIGNsYXNzLgogICAgIFN3aXRjaCwKKyAg
ICAKKyAgICAvLyBKdW1wIHRvIHRoZSBnaXZlbiBhZGRyZXNzLiBUaGUgY29tcGlsZXIgYXNzdW1l
cyB0aGF0IHRoaXMgd2lsbCBqdW1wIHRvIG9uZSBvZiB0aGUgc3VwcGxpZWQKKyAgICAvLyBzdWNj
ZXNzb3JzLCBidXQgd2lsbCBtYWtlIGFic29sdXRlbHkgbm8gYXNzdW1wdGlvbnMgYWJvdXQgd2hp
Y2guIEl0J3MgZW50aXJlbHkgdXAgdG8gdGhlIHVzZXIKKyAgICAvLyB0byBhcnJhbmdlIGZvciB0
aGUganVtcCB0byBqdW1wIHRvIG9uZSBvZiB0aG9zZSBzdWNjZXNzb3JzLiBUaGlzIGNhbm5vdCB0
cmFwIG9yIGRvIGFueXRoaW5nIGJ1dAorICAgIC8vIGp1bXAgdG8gb25lIG9mIHRoZSBzdWNjZXNz
b3JzOyBpZiBpdCBkb2VzIGFueXRoaW5nIGVsc2UgdGhlbiBkZW1vbnMgd2lsbCBjb21lIG91dCBv
ZiB0aGUgdXNlcidzCisgICAgLy8gbm9zZS4gCisgICAgUG9seUp1bXAsCiAKICAgICAvLyBSZXR1
cm4uIE5vdGUgdGhhdCBCMyBwcm9jZWR1cmVzIGRvbid0IGtub3cgdGhlaXIgcmV0dXJuIHR5cGUs
IHNvIHRoaXMgY2FuIGp1c3QgcmV0dXJuIGFueQogICAgIC8vIHR5cGUuIFVzZXMgdGhlIENvbnRy
b2xWYWx1ZSBjbGFzcy4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BvbHlKdW1w
VmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BvbHlK
dW1wVmFsdWUuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
UG9seUp1bXBWYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiQjNQb2x5SnVtcFZhbHVlLmgiCisKKyNpZiBFTkFCTEUoQjNfSklUKQor
CisjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrLmgiCisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
QjMgeworCitQb2x5SnVtcFZhbHVlOjp+UG9seUp1bXBWYWx1ZSgpCit7Cit9CisKK3ZvaWQgUG9s
eUp1bXBWYWx1ZTo6YXBwZW5kU3VjY2Vzc29yKGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgYmxvY2sp
Cit7CisgICAgbV9zdWNjZXNzb3JzLmFwcGVuZChibG9jayk7Cit9CisKK3ZvaWQgUG9seUp1bXBW
YWx1ZTo6c2V0Q2FsbGJhY2tUYXNrKFJlZlB0cjxTaGFyZWRUYXNrPENhbGxiYWNrRnVuY3Rpb25U
eXBlPj4gdGFzaykKK3sKKyAgICBtX3Rhc2sgPSB0YXNrOworfQorCitib29sIFBvbHlKdW1wVmFs
dWU6OmlzQ2xvbmVhYmxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQg
UG9seUp1bXBWYWx1ZTo6ZHVtcE1ldGEoQ29tbWFQcmludGVyJiBjb21tYSwgUHJpbnRTdHJlYW0m
IG91dCkgY29uc3QKK3sKKyAgICBDb250cm9sVmFsdWU6OmR1bXBNZXRhKGNvbW1hLCBvdXQpOwor
ICAgIG91dC5wcmludChjb21tYSwgInRhc2sgPSAiLCBSYXdQb2ludGVyKG1fdGFzay5nZXQoKSkp
OworfQorCitWYWx1ZSogUG9seUp1bXBWYWx1ZTo6Y2xvbmVJbXBsKCkgY29uc3QKK3sKKyAgICBk
YXRhTG9nKCJGQVRBTDogQXR0ZW1wdCB0byBjbG9uZSBub24tY2xvbmVhYmxlIFBvbHlKdW1wVmFs
dWUhXG4iKTsKKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCitQb2x5SnVt
cFZhbHVlOjpQb2x5SnVtcFZhbHVlKE9yaWdpbiBvcmlnaW4sIFZhbHVlKiBjaGlsZCkKKyAgICA6
IENvbnRyb2xWYWx1ZShQb2x5SnVtcCwgVm9pZCwgb3JpZ2luLCBjaGlsZCkKK3sKK30KKworfSB9
IC8vIG5hbWVzcGFjZSBKU0M6OkIzCisKKyNlbmRpZiAvLyBFTkFCTEUoQjNfSklUKQorCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQb2x5SnVtcFZhbHVlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUG9seUp1bXBWYWx1ZS5oCShyZXZpc2lvbiAw
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUG9seUp1bXBWYWx1ZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2lmbmRlZiBCM1BvbHlKdW1wVmFsdWVfaAorI2RlZmluZSBCM1BvbHlK
dW1wVmFsdWVfaAorCisjaWYgRU5BQkxFKEIzX0pJVCkKKworI2luY2x1ZGUgIkIzQ29udHJvbFZh
bHVlLmgiCisjaW5jbHVkZSA8d3RmL1NoYXJlZFRhc2suaD4KKworbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBCMyB7CisKK2NsYXNzIFBvbHlKdW1wVmFsdWUgOiBwdWJsaWMgQ29udHJvbFZhbHVl
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgYm9vbCBhY2NlcHRzKE9wY29kZSBvcGNvZGUpIHsgcmV0
dXJuIG9wY29kZSA9PSBQb2x5SnVtcDsgfQorICAgIAorICAgIH5Qb2x5SnVtcFZhbHVlKCk7Cisg
ICAgCisgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBhcHBlbmRTdWNjZXNzb3IoY29uc3QgRnJl
cXVlbnRlZEJsb2NrJik7CisgICAgCisgICAgdHlwZWRlZiB2b2lkIENhbGxiYWNrRnVuY3Rpb25U
eXBlKGNvbnN0IFZlY3RvcjxNYWNyb0Fzc2VtYmxlckNvZGVQdHI+Jik7CisgICAgCisgICAgSlNf
RVhQT1JUX1BSSVZBVEUgdm9pZCBzZXRDYWxsYmFja1Rhc2soUmVmUHRyPFNoYXJlZFRhc2s8Q2Fs
bGJhY2tGdW5jdGlvblR5cGU+PiB0YXNrKTsKKyAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBG
dW5jPgorICAgIHZvaWQgc2V0Q2FsbGJhY2soY29uc3QgRnVuYyYgZnVuYykKKyAgICB7CisgICAg
ICAgIHNldENhbGxiYWNrVGFzayhjcmVhdGVTaGFyZWRUYXNrPENhbGxiYWNrRnVuY3Rpb25UeXBl
PihmdW5jKSk7CisgICAgfQorICAgIAorICAgIFNoYXJlZFRhc2s8Q2FsbGJhY2tGdW5jdGlvblR5
cGU+KiBjYWxsYmFja1Rhc2soKSBjb25zdCB7IHJldHVybiBtX3Rhc2suZ2V0KCk7IH0KKyAgICAK
KyAgICBib29sIGlzQ2xvbmVhYmxlKCkgY29uc3Qgb3ZlcnJpZGU7CisKK3Byb3RlY3RlZDoKKyAg
ICB2b2lkIGR1bXBNZXRhKENvbW1hUHJpbnRlciYsIFByaW50U3RyZWFtJikgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgCisgICAgVmFsdWUqIGNsb25lSW1wbCgpIGNvbnN0IG92ZXJyaWRlOworCitwcml2
YXRlOgorICAgIGZyaWVuZCBjbGFzcyBQcm9jZWR1cmU7CisgICAgCisgICAgSlNfRVhQT1JUX1BS
SVZBVEUgUG9seUp1bXBWYWx1ZShPcmlnaW4sIFZhbHVlKiBjaGlsZCk7CisgICAgCisgICAgUmVm
UHRyPFNoYXJlZFRhc2s8Q2FsbGJhY2tGdW5jdGlvblR5cGU+PiBtX3Rhc2s7Cit9OworCit9IH0g
Ly8gbmFtZXNwYWNlIEpTQzo6QjMKKworI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCisKKyNlbmRp
ZiAvLyBCM1BvbHlKdW1wVmFsdWVfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNQcm9jZWR1cmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1Byb2NlZHVyZS5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM1Byb2NlZHVyZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgzLDYgKzgzLDggQEAgVmFy
aWFibGUqIFByb2NlZHVyZTo6YWRkVmFyaWFibGUoVHlwZSB0eQogCiBWYWx1ZSogUHJvY2VkdXJl
OjpjbG9uZShWYWx1ZSogdmFsdWUpCiB7CisgICAgQVNTRVJUKHZhbHVlLT5pc0Nsb25lYWJsZSgp
KTsKKyAgICAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmFsdWU+IGNsb25lKHZhbHVlLT5jbG9uZUlt
cGwoKSk7CiAgICAgY2xvbmUtPm1faW5kZXggPSBVSU5UX01BWDsKICAgICBjbG9uZS0+b3duZXIg
PSBudWxscHRyOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmgJKHJl
dmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsNiArMTAxLDcgQEAgcHVibGljOgogICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5hbWUuLi4gQXJndW1lbnRzPgogICAgIFZhbHVlVHlw
ZSogYWRkKEFyZ3VtZW50cy4uLik7CiAKKyAgICAvLyBOb3RlIHRoYXQgbm90IGFsbCB2YWx1ZXMg
YXJlIGNsb25lYWJsZS4gQ2hlY2sgVmFsdWU6OmlzQ2xvbmVhYmxlKCkgYmVmb3JlIHByb2NlZWRp
bmcuCiAgICAgVmFsdWUqIGNsb25lKFZhbHVlKik7CiAKICAgICBWYWx1ZSogYWRkSW50Q29uc3Rh
bnQoT3JpZ2luLCBUeXBlLCBpbnQ2NF90IHZhbHVlKTsKQEAgLTIxOCw2ICsyMTksOSBAQCBwdWJs
aWM6CiAKICAgICBjb25zdCBjaGFyKiBsYXN0UGhhc2VOYW1lKCkgY29uc3QgeyByZXR1cm4gbV9s
YXN0UGhhc2VOYW1lOyB9CiAKKyAgICAvLyBBbGxvY2F0ZXMgYSBzbGFiIG9mIG1lbW9yeSB0aGF0
IHdpbGwgYmUga2VwdCBhbGl2ZSBieSBhbnlvbmUgd2hvIGtlZXBzIHRoZSByZXN1bHRpbmcgY29k
ZQorICAgIC8vIGFsaXZlLiBHcmVhdCBmb3IgY29tcGlsZXItZ2VuZXJhdGVkIGRhdGEgc2VjdGlv
bnMsIGxpa2Ugc3dpdGNoIGp1bXAgdGFibGVzIGFuZCBjb25zdGFudCBwb29scy4KKyAgICAvLyBU
aGlzIHJldHVybnMgbWVtb3J5IHRoYXQgaGFzIGJlZW4gemVyby1pbml0aWFsaXplZC4KICAgICB2
b2lkKiBhZGREYXRhU2VjdGlvbihzaXplX3Qgc2l6ZSk7CiAKICAgICBPcGFxdWVCeXByb2R1Y3Rz
JiBieXByb2R1Y3RzKCkgeyByZXR1cm4gKm1fYnlwcm9kdWN0czsgfQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcAkocmV2aXNpb24gMjAyODA5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNzczLDcgKzE3NzMsMTcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIHZhbHVlLT5vcGNvZGUoKSA9PSBTZWxlY3QKICAgICAgICAgICAgICAgICAg
ICAgICAgICYmICh2YWx1ZS0+Y2hpbGQoMSktPmlzQ29uc3RhbnQoKSAmJiB2YWx1ZS0+Y2hpbGQo
MiktPmlzQ29uc3RhbnQoKSk7CiAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBpZiAo
c2VsZWN0KSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHRo
ZSByZWxldmFudCBjb2RlIGlzIGNsb25lYWJsZS4KKyAgICAgICAgICAgIGJvb2wgYWxsQXJlQ2xv
bmVhYmxlID0gdHJ1ZTsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgaW5kZXggPSBtX2luZGV4
ICsgMTsgaW5kZXgtLTspIHsKKyAgICAgICAgICAgICAgICBWYWx1ZSogdmFsdWUgPSBtX2Jsb2Nr
LT5hdChpbmRleCk7CisgICAgICAgICAgICAgICAgYWxsQXJlQ2xvbmVhYmxlICY9IHZhbHVlLT5p
c0Nsb25lYWJsZSgpOworICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBzZWxlY3QpCisgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAg
ICAgICAgICBpZiAoc2VsZWN0ICYmIGFsbEFyZUNsb25lYWJsZSkgewogICAgICAgICAgICAgICAg
IHNwZWNpYWxpemVTZWxlY3Qoc2VsZWN0KTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgIH0KQEAgLTE3ODEsNTAgKzE3OTEsNDggQEAgcHJpdmF0ZToKICAgICAgICAgfQogCiAg
ICAgICAgIGNhc2UgQnJhbmNoOiB7Ci0gICAgICAgICAgICBDb250cm9sVmFsdWUqIGJyYW5jaCA9
IG1fdmFsdWUtPmFzPENvbnRyb2xWYWx1ZT4oKTsKLQogICAgICAgICAgICAgLy8gVHVybiB0aGlz
OiBCcmFuY2goTm90RXF1YWwoeCwgMCkpCiAgICAgICAgICAgICAvLyBJbnRvIHRoaXM6IEJyYW5j
aCh4KQotICAgICAgICAgICAgaWYgKGJyYW5jaC0+Y2hpbGQoMCktPm9wY29kZSgpID09IE5vdEVx
dWFsICYmIGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDEpLT5pc0ludCgwKSkgewotICAgICAgICAg
ICAgICAgIGJyYW5jaC0+Y2hpbGQoMCkgPSBicmFuY2gtPmNoaWxkKDApLT5jaGlsZCgwKTsKKyAg
ICAgICAgICAgIGlmIChtX3ZhbHVlLT5jaGlsZCgwKS0+b3Bjb2RlKCkgPT0gTm90RXF1YWwgJiYg
bV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDEpLT5pc0ludCgwKSkgeworICAgICAgICAgICAgICAg
IG1fdmFsdWUtPmNoaWxkKDApID0gbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDApOwogICAgICAg
ICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAg
IC8vIFR1cm4gdGhpczogQnJhbmNoKEVxdWFsKHgsIDApLCB0aGVuLCBlbHNlKQogICAgICAgICAg
ICAgLy8gSW50byB0aGlzOiBCcmFuY2goeCwgZWxzZSwgdGhlbikKLSAgICAgICAgICAgIGlmIChi
cmFuY2gtPmNoaWxkKDApLT5vcGNvZGUoKSA9PSBFcXVhbCAmJiBicmFuY2gtPmNoaWxkKDApLT5j
aGlsZCgxKS0+aXNJbnQoMCkpIHsKLSAgICAgICAgICAgICAgICBicmFuY2gtPmNoaWxkKDApID0g
YnJhbmNoLT5jaGlsZCgwKS0+Y2hpbGQoMCk7Ci0gICAgICAgICAgICAgICAgc3RkOjpzd2FwKGJy
YW5jaC0+dGFrZW4oKSwgYnJhbmNoLT5ub3RUYWtlbigpKTsKKyAgICAgICAgICAgIGlmIChtX3Zh
bHVlLT5jaGlsZCgwKS0+b3Bjb2RlKCkgPT0gRXF1YWwgJiYgbV92YWx1ZS0+Y2hpbGQoMCktPmNo
aWxkKDEpLT5pc0ludCgwKSkgeworICAgICAgICAgICAgICAgIG1fdmFsdWUtPmNoaWxkKDApID0g
bV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDApOworICAgICAgICAgICAgICAgIHN0ZDo6c3dhcCht
X2Jsb2NrLT50YWtlbigpLCBtX2Jsb2NrLT5ub3RUYWtlbigpKTsKICAgICAgICAgICAgICAgICBt
X2NoYW5nZWQgPSB0cnVlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgICAg
ICAvLyBUdXJuIHRoaXM6IEJyYW5jaChCaXRYb3IoYm9vbCwgMSksIHRoZW4sIGVsc2UpCiAgICAg
ICAgICAgICAvLyBJbnRvIHRoaXM6IEJyYW5jaChib29sLCBlbHNlLCB0aGVuKQotICAgICAgICAg
ICAgaWYgKGJyYW5jaC0+Y2hpbGQoMCktPm9wY29kZSgpID09IEJpdFhvcgotICAgICAgICAgICAg
ICAgICYmIGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDEpLT5pc0ludDMyKDEpCi0gICAgICAgICAg
ICAgICAgJiYgYnJhbmNoLT5jaGlsZCgwKS0+Y2hpbGQoMCktPnJldHVybnNCb29sKCkpIHsKLSAg
ICAgICAgICAgICAgICBicmFuY2gtPmNoaWxkKDApID0gYnJhbmNoLT5jaGlsZCgwKS0+Y2hpbGQo
MCk7Ci0gICAgICAgICAgICAgICAgc3RkOjpzd2FwKGJyYW5jaC0+dGFrZW4oKSwgYnJhbmNoLT5u
b3RUYWtlbigpKTsKKyAgICAgICAgICAgIGlmIChtX3ZhbHVlLT5jaGlsZCgwKS0+b3Bjb2RlKCkg
PT0gQml0WG9yCisgICAgICAgICAgICAgICAgJiYgbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDEp
LT5pc0ludDMyKDEpCisgICAgICAgICAgICAgICAgJiYgbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxk
KDApLT5yZXR1cm5zQm9vbCgpKSB7CisgICAgICAgICAgICAgICAgbV92YWx1ZS0+Y2hpbGQoMCkg
PSBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMCk7CisgICAgICAgICAgICAgICAgc3RkOjpzd2Fw
KG1fYmxvY2stPnRha2VuKCksIG1fYmxvY2stPm5vdFRha2VuKCkpOwogICAgICAgICAgICAgICAg
IG1fY2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIC8vIFR1cm4g
dGhpczogQnJhbmNoKEJpdEFuZChib29sLCB4eWIxKSwgdGhlbiwgZWxzZSkKICAgICAgICAgICAg
IC8vIEludG8gdGhpczogQnJhbmNoKGJvb2wsIHRoZW4sIGVsc2UpCi0gICAgICAgICAgICBpZiAo
YnJhbmNoLT5jaGlsZCgwKS0+b3Bjb2RlKCkgPT0gQml0QW5kCi0gICAgICAgICAgICAgICAgJiYg
YnJhbmNoLT5jaGlsZCgwKS0+Y2hpbGQoMSktPmhhc0ludCgpCi0gICAgICAgICAgICAgICAgJiYg
YnJhbmNoLT5jaGlsZCgwKS0+Y2hpbGQoMSktPmFzSW50KCkgJiAxCi0gICAgICAgICAgICAgICAg
JiYgYnJhbmNoLT5jaGlsZCgwKS0+Y2hpbGQoMCktPnJldHVybnNCb29sKCkpIHsKLSAgICAgICAg
ICAgICAgICBicmFuY2gtPmNoaWxkKDApID0gYnJhbmNoLT5jaGlsZCgwKS0+Y2hpbGQoMCk7Cisg
ICAgICAgICAgICBpZiAobV92YWx1ZS0+Y2hpbGQoMCktPm9wY29kZSgpID09IEJpdEFuZAorICAg
ICAgICAgICAgICAgICYmIG1fdmFsdWUtPmNoaWxkKDApLT5jaGlsZCgxKS0+aGFzSW50KCkKKyAg
ICAgICAgICAgICAgICAmJiBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMSktPmFzSW50KCkgJiAx
CisgICAgICAgICAgICAgICAgJiYgbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDApLT5yZXR1cm5z
Qm9vbCgpKSB7CisgICAgICAgICAgICAgICAgbV92YWx1ZS0+Y2hpbGQoMCkgPSBtX3ZhbHVlLT5j
aGlsZCgwKS0+Y2hpbGQoMCk7CiAgICAgICAgICAgICAgICAgbV9jaGFuZ2VkID0gdHJ1ZTsKICAg
ICAgICAgICAgIH0KIAotICAgICAgICAgICAgVHJpU3RhdGUgdHJpU3RhdGUgPSBicmFuY2gtPmNo
aWxkKDApLT5hc1RyaVN0YXRlKCk7CisgICAgICAgICAgICBUcmlTdGF0ZSB0cmlTdGF0ZSA9IG1f
dmFsdWUtPmNoaWxkKDApLT5hc1RyaVN0YXRlKCk7CiAKICAgICAgICAgICAgIC8vIFR1cm4gdGhp
czogQnJhbmNoKDAsIHRoZW4sIGVsc2UpCiAgICAgICAgICAgICAvLyBJbnRvIHRoaXM6IEp1bXAo
ZWxzZSkKICAgICAgICAgICAgIGlmICh0cmlTdGF0ZSA9PSBGYWxzZVRyaVN0YXRlKSB7Ci0gICAg
ICAgICAgICAgICAgYnJhbmNoLT50YWtlbigpLmJsb2NrKCktPnJlbW92ZVByZWRlY2Vzc29yKG1f
YmxvY2spOwotICAgICAgICAgICAgICAgIGJyYW5jaC0+Y29udmVydFRvSnVtcChicmFuY2gtPm5v
dFRha2VuKCkuYmxvY2soKSk7CisgICAgICAgICAgICAgICAgbV9ibG9jay0+dGFrZW4oKS5ibG9j
aygpLT5yZW1vdmVQcmVkZWNlc3NvcihtX2Jsb2NrKTsKKyAgICAgICAgICAgICAgICBtX3ZhbHVl
LT5yZXBsYWNlV2l0aEp1bXAobV9ibG9jaywgbV9ibG9jay0+bm90VGFrZW4oKS5ibG9jaygpKTsK
ICAgICAgICAgICAgICAgICBtX2NoYW5nZWRDRkcgPSB0cnVlOwogICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgfQpAQCAtMTgzMiw4ICsxODQwLDggQEAgcHJpdmF0ZToKICAgICAg
ICAgICAgIC8vIFR1cm4gdGhpczogQnJhbmNoKG5vdCAwLCB0aGVuLCBlbHNlKQogICAgICAgICAg
ICAgLy8gSW50byB0aGlzOiBKdW1wKHRoZW4pCiAgICAgICAgICAgICBpZiAodHJpU3RhdGUgPT0g
VHJ1ZVRyaVN0YXRlKSB7Ci0gICAgICAgICAgICAgICAgYnJhbmNoLT5ub3RUYWtlbigpLmJsb2Nr
KCktPnJlbW92ZVByZWRlY2Vzc29yKG1fYmxvY2spOwotICAgICAgICAgICAgICAgIGJyYW5jaC0+
Y29udmVydFRvSnVtcChicmFuY2gtPnRha2VuKCkuYmxvY2soKSk7CisgICAgICAgICAgICAgICAg
bV9ibG9jay0+bm90VGFrZW4oKS5ibG9jaygpLT5yZW1vdmVQcmVkZWNlc3NvcihtX2Jsb2NrKTsK
KyAgICAgICAgICAgICAgICBtX3ZhbHVlLT5yZXBsYWNlV2l0aEp1bXAobV9ibG9jaywgbV9ibG9j
ay0+dGFrZW4oKS5ibG9jaygpKTsKICAgICAgICAgICAgICAgICBtX2NoYW5nZWRDRkcgPSB0cnVl
OwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpAQCAtMTg0MiwxMiArMTg1
MCwxMiBAQCBwcml2YXRlOgogICAgICAgICAgICAgLy8gb2YgbWFrZXMgc2Vuc2UgaGVyZSBiZWNh
dXNlIGl0J3MgY2hlYXAsIGJ1dCBoYWNrcyBsaWtlIHRoaXMgc2hvdyB0aGF0IHdlJ3JlIGdvaW5n
CiAgICAgICAgICAgICAvLyB0byBuZWVkIFNDQ1AuCiAgICAgICAgICAgICBWYWx1ZSogY2hlY2sg
PSBtX3B1cmVDU0UuZmluZE1hdGNoKAotICAgICAgICAgICAgICAgIFZhbHVlS2V5KENoZWNrLCBW
b2lkLCBicmFuY2gtPmNoaWxkKDApKSwgbV9ibG9jaywgKm1fZG9taW5hdG9ycyk7CisgICAgICAg
ICAgICAgICAgVmFsdWVLZXkoQ2hlY2ssIFZvaWQsIG1fdmFsdWUtPmNoaWxkKDApKSwgbV9ibG9j
aywgKm1fZG9taW5hdG9ycyk7CiAgICAgICAgICAgICBpZiAoY2hlY2spIHsKICAgICAgICAgICAg
ICAgICAvLyBUaGUgQ2hlY2sgd291bGQgaGF2ZSBzaWRlLWV4aXRlZCBpZiBjaGlsZCgwKSB3YXMg
bm9uLXplcm8uIFNvLCBpdCBtdXN0IGJlCiAgICAgICAgICAgICAgICAgLy8gemVybyBoZXJlLgot
ICAgICAgICAgICAgICAgIGJyYW5jaC0+dGFrZW4oKS5ibG9jaygpLT5yZW1vdmVQcmVkZWNlc3Nv
cihtX2Jsb2NrKTsKLSAgICAgICAgICAgICAgICBicmFuY2gtPmNvbnZlcnRUb0p1bXAoYnJhbmNo
LT5ub3RUYWtlbigpLmJsb2NrKCkpOworICAgICAgICAgICAgICAgIG1fYmxvY2stPnRha2VuKCku
YmxvY2soKS0+cmVtb3ZlUHJlZGVjZXNzb3IobV9ibG9jayk7CisgICAgICAgICAgICAgICAgbV92
YWx1ZS0+cmVwbGFjZVdpdGhKdW1wKG1fYmxvY2ssIG1fYmxvY2stPm5vdFRha2VuKCkuYmxvY2so
KSk7CiAgICAgICAgICAgICAgICAgbV9jaGFuZ2VkQ0ZHID0gdHJ1ZTsKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjIyMSw3ICsyMjI5LDcgQEAgcHJpdmF0ZToKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBkYXRhTG9nKAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiQ2hhbmdpbmcgIiwgcG9pbnRlckR1bXAoYmxvY2spLCAiJ3MgdGVybWluYWwgdG8g
YSBKdW1wLlxuIik7CiAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBibG9jay0+bGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCktPmNvbnZlcnRUb0p1bXAo
Zmlyc3RTdWNjZXNzb3IpOworICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2stPmxhc3QoKS0+
cmVwbGFjZVdpdGhKdW1wKGJsb2NrLCBmaXJzdFN1Y2Nlc3Nvcik7CiAgICAgICAgICAgICAgICAg
ICAgICAgICBtX2NoYW5nZWRDRkcgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgfQpAQCAtMjI0OCw3ICsyMjU2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAg
ICAgICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgdGhlIHN1Y2Nlc3NvciBoYXMgbm90aGluZyBsZWZ0
IGluIGl0LiBNYWtlIHN1cmUgdGhhdCB0aGUgYmxvY2sKICAgICAgICAgICAgICAgICAgICAgLy8g
aGFzIGEgdGVybWluYWwgc28gdGhhdCBub2JvZHkgY2hva2VzIHdoZW4gdGhleSBsb29rIGF0IGl0
LgogICAgICAgICAgICAgICAgICAgICBzdWNjZXNzb3ItPnZhbHVlcygpLnJlc2l6ZSgwKTsKLSAg
ICAgICAgICAgICAgICAgICAgc3VjY2Vzc29yLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihtX3By
b2MsIE9vcHMsIGp1bXBPcmlnaW4pOworICAgICAgICAgICAgICAgICAgICBzdWNjZXNzb3ItPmFw
cGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBPb3BzLCBqdW1wT3JpZ2luKTsKICAgICAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgICAgIC8vIEVuc3VyZSB0aGF0IHByZWRlY2Vzc29ycyBv
ZiBibG9jaydzIG5ldyBzdWNjZXNzb3JzIGtub3cgd2hhdCdzIHVwLgogICAgICAgICAgICAgICAg
ICAgICBmb3IgKEJhc2ljQmxvY2sqIG5ld1N1Y2Nlc3NvciA6IGJsb2NrLT5zdWNjZXNzb3JCbG9j
a3MoKSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbGlkYXRlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWxpZGF0ZS5jcHAJKHJldmlz
aW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbGlkYXRlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzg3LDYgKzM4NywxMSBAQCBwdWJsaWM6CiAgICAgICAgICAgICAg
ICAgVkFMSURBVEUoaXNJbnQodmFsdWUtPmNoaWxkKDApLT50eXBlKCkpLCAoIkF0ICIsICp2YWx1
ZSkpOwogICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgPT0gVm9pZCwgKCJB
dCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
UG9seUp1bXA6CisgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPm51bUNoaWxkcmVuKCkg
PT0gMSwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+
Y2hpbGQoMCktPnR5cGUoKSA9PSBwb2ludGVyVHlwZSgpLCAoIkF0ICIsICp2YWx1ZSkpOworICAg
ICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgPT0gVm9pZCwgKCJBdCAiLCAqdmFs
dWUpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KIAogICAgICAgICAg
ICAgVkFMSURBVEUoISh2YWx1ZS0+ZWZmZWN0cygpLndyaXRlcyAmJiB2YWx1ZS0+a2V5KCkpLCAo
IkF0ICIsICp2YWx1ZSkpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmNwcAko
cmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMjUsNiArMTI1LDUwIEBAIHZvaWQgVmFsdWU6OnJlcGxhY2VX
aXRoUGhpKCkKICAgICB0aGlzLT5tX2luZGV4ID0gaW5kZXg7CiB9CiAKK3ZvaWQgVmFsdWU6OnJl
cGxhY2VXaXRoSnVtcChCYXNpY0Jsb2NrKiBvd25lciwgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0
YXJnZXQpCit7CisgICAgUkVMRUFTRV9BU1NFUlQob3duZXItPmxhc3QoKSA9PSB0aGlzKTsKKyAg
ICAKKyAgICB1bnNpZ25lZCBpbmRleCA9IG1faW5kZXg7CisgICAgT3JpZ2luIG9yaWdpbiA9IG1f
b3JpZ2luOworICAgIAorICAgIHRoaXMtPn5WYWx1ZSgpOworICAgIAorICAgIG5ldyAodGhpcykg
VmFsdWUoSnVtcCwgVm9pZCwgb3JpZ2luKTsKKyAgICAKKyAgICB0aGlzLT5vd25lciA9IG93bmVy
OworICAgIHRoaXMtPm1faW5kZXggPSBpbmRleDsKKyAgICAKKyAgICBvd25lci0+cmVwbGFjZVN1
Y2Nlc3NvcnNXaXRoKHRhcmdldCk7Cit9CisKK3ZvaWQgVmFsdWU6OnJlcGxhY2VXaXRoT29wcyhC
YXNpY0Jsb2NrKiBvd25lcikKK3sKKyAgICBSRUxFQVNFX0FTU0VSVChvd25lci0+bGFzdCgpID09
IHRoaXMpOworICAgIAorICAgIHVuc2lnbmVkIGluZGV4ID0gbV9pbmRleDsKKyAgICBPcmlnaW4g
b3JpZ2luID0gbV9vcmlnaW47CisgICAgCisgICAgdGhpcy0+flZhbHVlKCk7CisgICAgCisgICAg
bmV3ICh0aGlzKSBWYWx1ZShPb3BzLCBWb2lkLCBvcmlnaW4pOworICAgIAorICAgIHRoaXMtPm93
bmVyID0gb3duZXI7CisgICAgdGhpcy0+bV9pbmRleCA9IGluZGV4OworICAgIAorICAgIG93bmVy
LT5jbGVhclN1Y2Nlc3NvcnMoKTsKK30KKwordm9pZCBWYWx1ZTo6cmVwbGFjZVdpdGhKdW1wKGNv
bnN0IEZyZXF1ZW50ZWRCbG9jayYgdGFyZ2V0KQoreworICAgIHJlcGxhY2VXaXRoSnVtcChvd25l
ciwgdGFyZ2V0KTsKK30KKwordm9pZCBWYWx1ZTo6cmVwbGFjZVdpdGhPb3BzKCkKK3sKKyAgICBy
ZXBsYWNlV2l0aE9vcHMob3duZXIpOworfQorCiB2b2lkIFZhbHVlOjpkdW1wKFByaW50U3RyZWFt
JiBvdXQpIGNvbnN0CiB7CiAgICAgYm9vbCBpc0NvbnN0YW50ID0gZmFsc2U7CkBAIC01NTIsNiAr
NTk2LDcgQEAgRWZmZWN0cyBWYWx1ZTo6ZWZmZWN0cygpIGNvbnN0CiAgICAgY2FzZSBKdW1wOgog
ICAgIGNhc2UgQnJhbmNoOgogICAgIGNhc2UgU3dpdGNoOgorICAgIGNhc2UgUG9seUp1bXA6CiAg
ICAgY2FzZSBSZXR1cm46CiAgICAgY2FzZSBPb3BzOgogICAgICAgICByZXN1bHQudGVybWluYWwg
PSB0cnVlOwpAQCAtNTYwLDYgKzYwNSwxMSBAQCBFZmZlY3RzIFZhbHVlOjplZmZlY3RzKCkgY29u
c3QKICAgICByZXR1cm4gcmVzdWx0OwogfQogCitib29sIFZhbHVlOjppc0Nsb25lYWJsZSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIFZhbHVlS2V5IFZhbHVlOjprZXkoKSBjb25z
dAogewogICAgIHN3aXRjaCAob3Bjb2RlKCkpIHsKQEAgLTcxMyw2ICs3NjMsMTAgQEAgVHlwZSBW
YWx1ZTo6dHlwZUZvcihPcGNvZGUgb3Bjb2RlLCBWYWx1ZQogICAgICAgICB9CiAgICAgICAgIHJl
dHVybiBWb2lkOwogICAgIGNhc2UgTm9wOgorICAgIGNhc2UgSnVtcDoKKyAgICBjYXNlIEJyYW5j
aDoKKyAgICBjYXNlIFJldHVybjoKKyAgICBjYXNlIE9vcHM6CiAgICAgICAgIHJldHVybiBWb2lk
OwogICAgIGNhc2UgU2VsZWN0OgogICAgICAgICBBU1NFUlQoc2Vjb25kQ2hpbGQpOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDksNiArMTA5
LDE0IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcGxhY2VXaXRoTm9wSWdub3JpbmdUeXBlKCk7CiAg
ICAgCiAgICAgdm9pZCByZXBsYWNlV2l0aFBoaSgpOworICAgIAorICAgIC8vIFRoZXNlIHRyYW5z
Zm9ybWF0aW9ucyBhcmUgb25seSB2YWxpZCBmb3IgdGVybWluYWxzLgorICAgIHZvaWQgcmVwbGFj
ZVdpdGhKdW1wKEJhc2ljQmxvY2sqIG93bmVyLCBjb25zdCBGcmVxdWVudGVkQmxvY2smKTsKKyAg
ICB2b2lkIHJlcGxhY2VXaXRoT29wcyhCYXNpY0Jsb2NrKiBvd25lcik7CisgICAgCisgICAgLy8g
WW91IGNhbiB1c2UgdGhpcyBmb3JtIGlmIG93bmVycyBhcmUgdmFsaWQuIFRoZXkncmUgdXN1YWxs
eSBub3QgdmFsaWQuCisgICAgdm9pZCByZXBsYWNlV2l0aEp1bXAoY29uc3QgRnJlcXVlbnRlZEJs
b2NrJik7CisgICAgdm9pZCByZXBsYWNlV2l0aE9vcHMoKTsKIAogICAgIHZvaWQgZHVtcChQcmlu
dFN0cmVhbSYpIGNvbnN0OwogICAgIHZvaWQgZGVlcER1bXAoY29uc3QgUHJvY2VkdXJlKiwgUHJp
bnRTdHJlYW0mKSBjb25zdDsKQEAgLTIyMyw2ICsyMzEsMTEgQEAgcHVibGljOgogICAgIGJvb2wg
aXNMaWtlTm9uWmVybygpIGNvbnN0IHsgcmV0dXJuIGFzVHJpU3RhdGUoKSA9PSBUcnVlVHJpU3Rh
dGU7IH0KIAogICAgIEVmZmVjdHMgZWZmZWN0cygpIGNvbnN0OworICAgIAorICAgIC8vIFNvbWUg
b3BlcmF0aW9ucyB3aWxsIHJlZnVzZSB0byBiZSBjbG9uZWQuIFRoaXMgaGFwcGVucyB3aGVuIHRo
ZSBvcGVyYXRpb24gaGFzIHNvbWUgaW5zaWRlCisgICAgLy8ga25vd2xlZGdlIGFib3V0IHRoZSBy
ZWxhdGlvbnNoaXAgYmV0d2VlbiBpdHMgaWRlbnRpdHkgYW5kIHRoZSBpZGVudGl0eSBvZiB0aGUg
Y29kZSBpdCB3aWxsCisgICAgLy8gZ2VuZXJhdGUuCisgICAgdmlydHVhbCBib29sIGlzQ2xvbmVh
YmxlKCkgY29uc3Q7CiAKICAgICAvLyBUaGlzIHJldHVybnMgYSBWYWx1ZUtleSB0aGF0IGRlc2Ny
aWJlcyB0aGF0IHRoaXMgVmFsdWUgcmV0dXJucyB3aGVuIGl0IGV4ZWN1dGVzLiBSZXR1cm5zIGFu
CiAgICAgLy8gZW1wdHkgVmFsdWVLZXkgaWYgdGhpcyBWYWx1ZSBpcyBpbXB1cmUuIE5vdGUgdGhh
dCBhbiBvcGVyYXRpb24gdGhhdCByZXR1cm5zIFZvaWQgY291bGQgc3RpbGwKQEAgLTI2NCw2ICsy
NzcsOCBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIEZyYW1lUG9pbnRlcjoKICAgICAgICAgY2Fz
ZSBOb3A6CiAgICAgICAgIGNhc2UgUGhpOgorICAgICAgICBjYXNlIEp1bXA6CisgICAgICAgIGNh
c2UgT29wczoKICAgICAgICAgICAgIGlmIChVTkxJS0VMWShudW1BcmdzKSkKICAgICAgICAgICAg
ICAgICBiYWRPcGNvZGUob3Bjb2RlLCBudW1BcmdzKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAt
Mjg0LDYgKzI5OSw4IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgRG91YmxlVG9GbG9hdDoKICAg
ICAgICAgY2FzZSBJVG9GOgogICAgICAgICBjYXNlIEJpdHdpc2VDYXN0OgorICAgICAgICBjYXNl
IEJyYW5jaDoKKyAgICAgICAgY2FzZSBSZXR1cm46CiAgICAgICAgICAgICBpZiAoVU5MSUtFTFko
bnVtQXJncyAhPSAxKSkKICAgICAgICAgICAgICAgICBiYWRPcGNvZGUob3Bjb2RlLCBudW1Bcmdz
KTsKICAgICAgICAgICAgIGJyZWFrOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rl
c3RiMy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5j
cHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiQjNDb25zdFB0
clZhbHVlLmgiCiAjaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKICNpbmNsdWRlICJCM0VmZmVj
dHMuaCIKKyNpbmNsdWRlICJCM1BvbHlKdW1wVmFsdWUuaCIKICNpbmNsdWRlICJCM01hdGhFeHRy
YXMuaCIKICNpbmNsdWRlICJCM01lbW9yeVZhbHVlLmgiCiAjaW5jbHVkZSAiQjNQcm9jZWR1cmUu
aCIKQEAgLTQ2LDYgKzQ3LDcgQEAKICNpbmNsdWRlICJCM1Vwc2lsb25WYWx1ZS5oIgogI2luY2x1
ZGUgIkIzVmFsaWRhdGUuaCIKICNpbmNsdWRlICJCM1ZhbHVlSW5saW5lcy5oIgorI2luY2x1ZGUg
IkIzVmFyaWFibGVWYWx1ZS5oIgogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgogI2luY2x1ZGUg
IkluaXRpYWxpemVUaHJlYWRpbmcuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCkBAIC01NCw2
ICs1Niw3IEBACiAjaW5jbHVkZSAiVk0uaCIKICNpbmNsdWRlIDxjbWF0aD4KICNpbmNsdWRlIDxz
dHJpbmc+CisjaW5jbHVkZSA8d3RmL0xpc3REdW1wLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4K
ICNpbmNsdWRlIDx3dGYvTnVtYmVyT2ZDb3Jlcy5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcu
aD4KQEAgLTc1LDYgKzc4LDExIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M6OkIzOwogCiBuYW1lc3Bh
Y2UgewogCitib29sIHNob3VsZEJlVmVyYm9zZSgpCit7CisgICAgcmV0dXJuIHNob3VsZER1bXBJ
UihCM01vZGUpOworfQorCiBTdGF0aWNMb2NrIGNyYXNoTG9jazsKIAogLy8gTm90aGluZyBmYW5j
eSBmb3Igbm93OyB3ZSBqdXN0IHVzZSB0aGUgZXhpc3RpbmcgV1RGIGFzc2VydGlvbiBtYWNoaW5l
cnkuCkBAIC0xMDE3MCw3ICsxMDE3OCwxMCBAQCB2b2lkIHRlc3RTd2l0Y2hDaGlsbERpdih1bnNp
Z25lZCBkZWdyZWUsCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIAogICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBkZWdyZWU7ICsraSkgewotICAgICAgICBDSEVDSyhpbnZva2U8
aW50MzJfdD4oKmNvZGUsIGkgKiBnYXAsIDQyLCAxMSkgPT0gKChpICYgMSkgPyAxMS80MiA6IDQy
LzExKSk7CisgICAgICAgIGRhdGFMb2coImkgPSAiLCBpLCAiXG4iKTsKKyAgICAgICAgaW50MzJf
dCByZXN1bHQgPSBpbnZva2U8aW50MzJfdD4oKmNvZGUsIGkgKiBnYXAsIDQyLCAxMSk7CisgICAg
ICAgIGRhdGFMb2coInJlc3VsdCA9ICIsIHJlc3VsdCwgIlxuIik7CisgICAgICAgIENIRUNLKHJl
c3VsdCA9PSAoKGkgJiAxKSA/IDExLzQyIDogNDIvMTEpKTsKICAgICAgICAgaWYgKGdhcCA+IDEp
IHsKICAgICAgICAgICAgIENIRUNLKCFpbnZva2U8aW50MzJfdD4oKmNvZGUsIGkgKiBnYXAgKyAx
LCA0MiwgMTEpKTsKICAgICAgICAgICAgIENIRUNLKCFpbnZva2U8aW50MzJfdD4oKmNvZGUsIGkg
KiBnYXAgLSAxLCA0MiwgMTEpKTsKQEAgLTEyMDkyLDYgKzEyMTAzLDIzMSBAQCB2b2lkIHRlc3RM
YXRlUmVnaXN0ZXIoKQogICAgIENIRUNLKGludm9rZTx1aW50NjRfdD4oKmNvZGUpID09IHJlc3Vs
dCk7CiB9CiAKK3ZvaWQgdGhyZWFkZWRJbnRlcnByZXRlclByaW50KFZlY3RvcjxpbnRwdHJfdD4q
IHN0cmVhbSwgaW50cHRyX3QgdmFsdWUpCit7CisgICAgc3RyZWFtLT5hcHBlbmQodmFsdWUpOwor
fQorCit2b2lkIHRlc3RUaHJlYWRlZEludGVycHJldGVyKCkKK3sKKyAgICAvLyBUaGlzIGNyZWF0
ZXMgYSBwb29yIG1hbidzIHRocmVhZGVkIGludGVycHJldGVyIHVzaW5nIFBvbHlKdW1wIGFuZCBz
ZWVzIGlmIGl0IHdvcmtzLiBOb3RlCisgICAgLy8gdGhhdCBQb2x5SnVtcCBpcyBub3QgbGlrZSBp
bmRpcmVjdCBicmFuY2hlcyBpbiBMTFZNLCBzbyB5b3UgY2FuJ3QgYWN0dWFsbHkgdXNlIGl0IHRv
CisgICAgLy8gaW1wbGVtZW50IGEgcHJvcGVyIHRocmVhZGVkIGludGVycHJldGVyLiBUaGlzIGNo
ZWF0czogdGhlIGRpc3BhdGNoIGluc3RydWN0aW9uIGlzIGF0IHRoZSB0b3AKKyAgICAvLyBvZiB0
aGUgbG9vcC4gVGhpcyBhbHNvIHRlc3RzIFZhcmlhYmxlVmFsdWUuCisgICAgCisgICAgUHJvY2Vk
dXJlIHByb2M7CisgICAgCisgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
KyAgICBCYXNpY0Jsb2NrKiBkaXNwYXRjaCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBCYXNpY0Js
b2NrKiBhZGRUb0RhdGFQb2ludGVyID0gcHJvYy5hZGRCbG9jaygpOworICAgIEJhc2ljQmxvY2sq
IGFkZFRvQ29kZVBvaW50ZXIgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayogYWRk
VG9Db2RlUG9pbnRlclRha2VuID0gcHJvYy5hZGRCbG9jaygpOworICAgIEJhc2ljQmxvY2sqIGFk
ZFRvQ29kZVBvaW50ZXJOb3RUYWtlbiA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBCYXNpY0Jsb2Nr
KiBhZGRUb0RhdGEgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayogcHJpbnQgPSBw
cm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayogc3RvcCA9IHByb2MuYWRkQmxvY2soKTsK
KyAgICAKKyAgICBWYXJpYWJsZSogZGF0YVBvaW50ZXIgPSBwcm9jLmFkZFZhcmlhYmxlKHBvaW50
ZXJUeXBlKCkpOworICAgIFZhcmlhYmxlKiBjb2RlUG9pbnRlciA9IHByb2MuYWRkVmFyaWFibGUo
cG9pbnRlclR5cGUoKSk7CisgICAgCisgICAgcm9vdC0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+
KAorICAgICAgICBwcm9jLCBTZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRlciwKKyAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApKTsKKyAgICByb290LT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAg
ICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyLAorICAgICAgICByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMSkpOworICAgIFZhbHVlKiBjb250ZXh0ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpOworICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVk
QmxvY2soZGlzcGF0Y2gpKTsKKyAgICAKKyAgICBQb2x5SnVtcFZhbHVlKiBwb2x5SnVtcCA9IGRp
c3BhdGNoLT5hcHBlbmROZXc8UG9seUp1bXBWYWx1ZT4oCisgICAgICAgIHByb2MsIE9yaWdpbigp
LAorICAgICAgICBkaXNwYXRjaC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAg
IHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLAorICAgICAgICAgICAgZGlzcGF0
Y2gtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPigKKyAgICAgICAgICAgICAgICBwcm9jLCBCMzo6
R2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIpKSk7CisgICAgcG9seUp1bXAtPmFwcGVuZFN1Y2Nl
c3NvcihGcmVxdWVudGVkQmxvY2soYWRkVG9EYXRhUG9pbnRlcikpOworICAgIHBvbHlKdW1wLT5h
cHBlbmRTdWNjZXNzb3IoRnJlcXVlbnRlZEJsb2NrKGFkZFRvQ29kZVBvaW50ZXIpKTsKKyAgICBw
b2x5SnVtcC0+YXBwZW5kU3VjY2Vzc29yKEZyZXF1ZW50ZWRCbG9jayhhZGRUb0RhdGEpKTsKKyAg
ICBwb2x5SnVtcC0+YXBwZW5kU3VjY2Vzc29yKEZyZXF1ZW50ZWRCbG9jayhwcmludCkpOworICAg
IHBvbHlKdW1wLT5hcHBlbmRTdWNjZXNzb3IoRnJlcXVlbnRlZEJsb2NrKHN0b3ApKTsKKyAgICAK
KyAgICAvLyBPdXIgIm9wY29kZXMiLiBUaGV5IHdpbGwgaGF2ZSBtZWFuaW5nIG9uY2Ugd2UgY29t
cGlsZS4KKyAgICBpbnRwdHJfdCBBZGREUCA9IDA7CisgICAgaW50cHRyX3QgQWRkQ1AgPSAwOwor
ICAgIGludHB0cl90IEFkZCA9IDA7CisgICAgaW50cHRyX3QgUHJpbnQgPSAwOworICAgIGludHB0
cl90IFN0b3AgPSAwOworICAgIHBvbHlKdW1wLT5zZXRDYWxsYmFjaygKKyAgICAgICAgWyZdIChj
b25zdCBWZWN0b3I8TWFjcm9Bc3NlbWJsZXJDb2RlUHRyPiYgcG9pbnRlcnMpIHsKKyAgICAgICAg
ICAgIGF1dG8gZ2V0ID0gWyZdIChzaXplX3QgaW5kZXgpIC0+IGludHB0cl90IHsKKyAgICAgICAg
ICAgICAgICByZXR1cm4gYml0d2lzZV9jYXN0PGludHB0cl90Pihwb2ludGVyc1tpbmRleF0uZXhl
Y3V0YWJsZUFkZHJlc3MoKSk7CisgICAgICAgICAgICB9OworICAgICAgICAgICAgCisgICAgICAg
ICAgICBBZGREUCA9IGdldCgwKTsKKyAgICAgICAgICAgIEFkZENQID0gZ2V0KDEpOworICAgICAg
ICAgICAgQWRkID0gZ2V0KDIpOworICAgICAgICAgICAgUHJpbnQgPSBnZXQoMyk7CisgICAgICAg
ICAgICBTdG9wID0gZ2V0KDQpOworICAgICAgICB9KTsKKyAgICAKKyAgICAvLyBBZGREUCA8b3Bl
cmFuZD46IGFkZHMgPG9wZXJhbmQ+IHRvIERQLgorICAgIFZhbHVlKiBjb2RlUG9pbnRlclZhbHVl
ID0KKyAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHBy
b2MsIEIzOjpHZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlcik7CisgICAgYWRkVG9EYXRhUG9pbnRl
ci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAgICAgICBwcm9jLCBTZXQsIE9yaWdpbigp
LCBkYXRhUG9pbnRlciwKKyAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhbHVl
PigKKyAgICAgICAgICAgIHByb2MsIEIzOjpBZGQsIE9yaWdpbigpLAorICAgICAgICAgICAgYWRk
VG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHByb2MsIEIzOjpHZXQsIE9y
aWdpbigpLCBkYXRhUG9pbnRlciksCisgICAgICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBl
bmROZXc8VmFsdWU+KAorICAgICAgICAgICAgICAgIHByb2MsIE11bCwgT3JpZ2luKCksCisgICAg
ICAgICAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAg
ICAgICAgICAgICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCksIGNv
ZGVQb2ludGVyVmFsdWUsIHNpemVvZihpbnRwdHJfdCkpLAorICAgICAgICAgICAgICAgIGFkZFRv
RGF0YVBvaW50ZXItPmFwcGVuZEludENvbnN0YW50KAorICAgICAgICAgICAgICAgICAgICBwcm9j
LCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6ZW9mKGludHB0cl90KSkpKSk7CisgICAgYWRk
VG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAgICAgICBwcm9jLCBT
ZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlciwKKyAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBw
ZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEIzOjpBZGQsIE9yaWdpbigpLCBjb2Rl
UG9pbnRlclZhbHVlLAorICAgICAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kSW50Q29u
c3RhbnQoCisgICAgICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBlKCksIHNp
emVvZihpbnRwdHJfdCkgKiAyKSkpOworICAgIGFkZFRvRGF0YVBvaW50ZXItPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZGlzcGF0
Y2gpKTsKKyAgICAKKyAgICAvLyBBZGRDUCA8b3BlcmFuZD46IGFkZHMgPG9wZXJhbmQ+IHRvIENQ
IGlmIHRoZSBjdXJyZW50IHZhbHVlIGF0IERQIGlzIG5vbi16ZXJvLCBvdGhlcndpc2UKKyAgICAv
LyBmYWxscyB0aHJvdWdoIG5vcm1hbGx5LgorICAgIGNvZGVQb2ludGVyVmFsdWUgPQorICAgICAg
ICBhZGRUb0NvZGVQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6Okdl
dCwgT3JpZ2luKCksIGNvZGVQb2ludGVyKTsKKyAgICBWYWx1ZSogZGF0YVBvaW50ZXJWYWx1ZSA9
CisgICAgICAgIGFkZFRvQ29kZVBvaW50ZXItPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPihwcm9j
LCBCMzo6R2V0LCBPcmlnaW4oKSwgZGF0YVBvaW50ZXIpOworICAgIGFkZFRvQ29kZVBvaW50ZXIt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigp
LAorICAgICAgICBhZGRUb0NvZGVQb2ludGVyLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAg
ICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCksIGRhdGFQb2ludGVy
VmFsdWUpLAorICAgICAgICBGcmVxdWVudGVkQmxvY2soYWRkVG9Db2RlUG9pbnRlclRha2VuKSwg
RnJlcXVlbnRlZEJsb2NrKGFkZFRvQ29kZVBvaW50ZXJOb3RUYWtlbikpOworICAgIGFkZFRvQ29k
ZVBvaW50ZXJUYWtlbi0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAgICAgICBwcm9jLCBT
ZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlciwKKyAgICAgICAgYWRkVG9Db2RlUG9pbnRlclRha2Vu
LT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgQjM6OkFkZCwgT3JpZ2luKCks
IGNvZGVQb2ludGVyVmFsdWUsCisgICAgICAgICAgICBhZGRUb0NvZGVQb2ludGVyVGFrZW4tPmFw
cGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICAgICAgcHJvYywgTXVsLCBPcmlnaW4oKSwKKyAg
ICAgICAgICAgICAgICBhZGRUb0NvZGVQb2ludGVyVGFrZW4tPmFwcGVuZE5ldzxNZW1vcnlWYWx1
ZT4oCisgICAgICAgICAgICAgICAgICAgIHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9yaWdp
bigpLCBjb2RlUG9pbnRlclZhbHVlLCBzaXplb2YoaW50cHRyX3QpKSwKKyAgICAgICAgICAgICAg
ICBhZGRUb0NvZGVQb2ludGVyVGFrZW4tPmFwcGVuZEludENvbnN0YW50KAorICAgICAgICAgICAg
ICAgICAgICBwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6ZW9mKGludHB0cl90KSkp
KSk7CisgICAgYWRkVG9Db2RlUG9pbnRlclRha2VuLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRpc3BhdGNoKSk7CisgICAgYWRk
VG9Db2RlUG9pbnRlck5vdFRha2VuLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAg
IHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyLAorICAgICAgICBhZGRUb0NvZGVQb2lu
dGVyTm90VGFrZW4tPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBCMzo6QWRk
LCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwKKyAgICAgICAgICAgIGFkZFRvQ29kZVBvaW50
ZXJOb3RUYWtlbi0+YXBwZW5kSW50Q29uc3RhbnQoCisgICAgICAgICAgICAgICAgcHJvYywgT3Jp
Z2luKCksIHBvaW50ZXJUeXBlKCksIHNpemVvZihpbnRwdHJfdCkgKiAyKSkpOworICAgIGFkZFRv
Q29kZVBvaW50ZXJOb3RUYWtlbi0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHBy
b2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZGlzcGF0Y2gpKTsKKworICAgIC8v
IEFkZCA8b3BlcmFuZD46IGFkZHMgPG9wZXJhbmQ+IHRvIHRoZSBzbG90IHBvaW50ZWQgdG8gYnkg
RFAuCisgICAgY29kZVBvaW50ZXJWYWx1ZSA9IGFkZFRvRGF0YS0+YXBwZW5kTmV3PFZhcmlhYmxl
VmFsdWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlcik7CisgICAgZGF0YVBv
aW50ZXJWYWx1ZSA9IGFkZFRvRGF0YS0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHByb2MsIEIz
OjpHZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRlcik7CisgICAgYWRkVG9EYXRhLT5hcHBlbmROZXc8
TWVtb3J5VmFsdWU+KAorICAgICAgICBwcm9jLCBTdG9yZSwgT3JpZ2luKCksCisgICAgICAgIGFk
ZFRvRGF0YS0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEIzOjpBZGQsIE9y
aWdpbigpLAorICAgICAgICAgICAgYWRkVG9EYXRhLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAor
ICAgICAgICAgICAgICAgIHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLCBkYXRh
UG9pbnRlclZhbHVlKSwKKyAgICAgICAgICAgIGFkZFRvRGF0YS0+YXBwZW5kTmV3PE1lbW9yeVZh
bHVlPigKKyAgICAgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4o
KSwgY29kZVBvaW50ZXJWYWx1ZSwgc2l6ZW9mKGludHB0cl90KSkpLAorICAgICAgICBkYXRhUG9p
bnRlclZhbHVlKTsKKyAgICBhZGRUb0RhdGEtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPigKKyAg
ICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIsCisgICAgICAgIGFkZFRvRGF0
YS0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEIzOjpBZGQsIE9yaWdpbigp
LCBjb2RlUG9pbnRlclZhbHVlLAorICAgICAgICAgICAgYWRkVG9EYXRhLT5hcHBlbmRJbnRDb25z
dGFudChwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6ZW9mKGludHB0cl90KSAqIDIp
KSk7CisgICAgYWRkVG9EYXRhLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBP
cmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRpc3BhdGNoKSk7CisgICAgCisgICAgLy8gUHJpbnQ6
ICJwcmludHMiIHRoZSB2YWx1ZSBwb2ludGVkIHRvIGJ5IERQLiBXaGF0IHRoaXMgYWN0dWFsbHkg
bWVhbnMgaXMgdGhhdCB0aGUgdmFsdWUgaXMKKyAgICAvLyBhcHBlbmRlZCB0byB0aGUgc3RyZWFt
IHZlY3RvciBieSB0aGUgdGhyZWFkZWRJbnRlcnByZXRlclByaW50IGZ1bmN0aW9uLgorICAgIGNv
ZGVQb2ludGVyVmFsdWUgPSBwcmludC0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHByb2MsIEIz
OjpHZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlcik7CisgICAgZGF0YVBvaW50ZXJWYWx1ZSA9IHBy
aW50LT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGRh
dGFQb2ludGVyKTsKKyAgICBwcmludC0+YXBwZW5kTmV3PENDYWxsVmFsdWU+KAorICAgICAgICBw
cm9jLCBWb2lkLCBPcmlnaW4oKSwKKyAgICAgICAgcHJpbnQtPmFwcGVuZE5ldzxDb25zdFB0clZh
bHVlPigKKyAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLCBiaXR3aXNlX2Nhc3Q8dm9pZCo+KHRo
cmVhZGVkSW50ZXJwcmV0ZXJQcmludCkpLAorICAgICAgICBjb250ZXh0LAorICAgICAgICBwcmlu
dC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmln
aW4oKSwgZGF0YVBvaW50ZXJWYWx1ZSkpOworICAgIHByaW50LT5hcHBlbmROZXc8VmFyaWFibGVW
YWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyLAorICAgICAg
ICBwcmludC0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEIzOjpBZGQsIE9y
aWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLAorICAgICAgICAgICAgcHJpbnQtPmFwcGVuZEludENv
bnN0YW50KHByb2MsIE9yaWdpbigpLCBwb2ludGVyVHlwZSgpLCBzaXplb2YoaW50cHRyX3QpKSkp
OworICAgIHByaW50LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4o
KSwgRnJlcXVlbnRlZEJsb2NrKGRpc3BhdGNoKSk7CisgICAgCisgICAgLy8gU3RvcDogcmV0dXJu
cy4KKyAgICBzdG9wLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKKyAgICAgICAgc3RvcC0+YXBwZW5kSW50Q29uc3RhbnQocHJvYywgT3Jp
Z2luKCksIHBvaW50ZXJUeXBlKCksIDApKTsKKyAgICAKKyAgICBhdXRvIGludGVycHJldGVyID0g
Y29tcGlsZShwcm9jKTsKKyAgICAKKyAgICBDSEVDSyhBZGREUCk7CisgICAgQ0hFQ0soQWRkQ1Ap
OworICAgIENIRUNLKEFkZCk7CisgICAgQ0hFQ0soUHJpbnQpOworICAgIENIRUNLKFN0b3ApOwor
ICAgIAorICAgIFZlY3RvcjxpbnRwdHJfdD4gZGF0YTsKKyAgICBWZWN0b3I8aW50cHRyX3Q+IGNv
ZGU7CisgICAgVmVjdG9yPGludHB0cl90PiBzdHJlYW07CisgICAgCisgICAgZGF0YS5hcHBlbmQo
MSk7CisgICAgZGF0YS5hcHBlbmQoMCk7CisgICAgCisgICAgaWYgKHNob3VsZEJlVmVyYm9zZSgp
KQorICAgICAgICBkYXRhTG9nKCJkYXRhID0gIiwgbGlzdER1bXAoZGF0YSksICJcbiIpOworICAg
IAorICAgIC8vIFdlJ2xsIHdyaXRlIGEgcHJvZ3JhbSB0aGF0IHByaW50cyB0aGUgbnVtYmVycyAx
Li4xMDAuCisgICAgLy8gV2UgZXhwZWN0IERQIHRvIHBvaW50IGF0ICMwLgorICAgIGNvZGUuYXBw
ZW5kKEFkZENQKTsKKyAgICBjb2RlLmFwcGVuZCg2KTsgLy8gZ28gdG8gbG9vcCBib2R5CisgICAg
CisgICAgLy8gTG9vcCByZS1lbnRyeToKKyAgICAvLyBXZSBleHBlY3QgRFAgdG8gcG9pbnQgYXQg
IzEgYW5kIGZvciAjMSB0byBiZSBvZmZzZXQgYnkgLTEwMC4KKyAgICBjb2RlLmFwcGVuZChBZGQp
OworICAgIGNvZGUuYXBwZW5kKDEwMCk7CisgICAgCisgICAgY29kZS5hcHBlbmQoQWRkRFApOwor
ICAgIGNvZGUuYXBwZW5kKC0xKTsKKyAgICAKKyAgICAvLyBMb29wIGhlYWRlcjoKKyAgICAvLyBX
ZSBleHBlY3QgRFAgdG8gcG9pbnQgYXQgIzAuCisgICAgY29kZS5hcHBlbmQoQWRkRFApOworICAg
IGNvZGUuYXBwZW5kKDEpOworICAgIAorICAgIGNvZGUuYXBwZW5kKEFkZCk7CisgICAgY29kZS5h
cHBlbmQoMSk7CisgICAgCisgICAgY29kZS5hcHBlbmQoUHJpbnQpOworICAgIAorICAgIGNvZGUu
YXBwZW5kKEFkZCk7CisgICAgY29kZS5hcHBlbmQoLTEwMCk7CisgICAgCisgICAgLy8gV2Ugd2Fu
dCB0byBzdG9wIGlmIGl0J3MgemVybyBhbmQgY29udGludWUgaWYgaXQncyBub24temVyby4gQWRk
Q1AgdGFrZXMgdGhlIGJyYW5jaCBpZiBpdCdzCisgICAgLy8gbm9uLXplcm8uCisgICAgY29kZS5h
cHBlbmQoQWRkQ1ApOworICAgIGNvZGUuYXBwZW5kKC0xMSk7IC8vIGdvIHRvIGxvb3AgcmUtZW50
cnkuCisgICAgCisgICAgY29kZS5hcHBlbmQoU3RvcCk7CisgICAgCisgICAgaWYgKHNob3VsZEJl
VmVyYm9zZSgpKQorICAgICAgICBkYXRhTG9nKCJjb2RlID0gIiwgbGlzdER1bXAoY29kZSksICJc
biIpOworICAgIAorICAgIENIRUNLKCFpbnZva2U8aW50cHRyX3Q+KCppbnRlcnByZXRlciwgZGF0
YS5kYXRhKCksIGNvZGUuZGF0YSgpLCAmc3RyZWFtKSk7CisgICAgCisgICAgQ0hFQ0soc3RyZWFt
LnNpemUoKSA9PSAxMDApOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCAxMDA7ICsraSkK
KyAgICAgICAgQ0hFQ0soc3RyZWFtW2ldID09IGkgKyAxKTsKKyAgICAKKyAgICBpZiAoc2hvdWxk
QmVWZXJib3NlKCkpCisgICAgICAgIGRhdGFMb2coInN0cmVhbSA9ICIsIGxpc3REdW1wKHN0cmVh
bSksICJcbiIpOworfQorCiB2b2lkIHRlc3RSZWR1Y2VTdHJlbmd0aENoZWNrQm90dG9tVXNlSW5B
bm90aGVyQmxvY2soKQogewogICAgIFByb2NlZHVyZSBwcm9jOwpAQCAtMTM1NDcsOCArMTM3ODMs
MTMgQEAgdm9pZCBydW4oY29uc3QgY2hhciogZmlsdGVyKQogICAgIFJVTih0ZXN0U3BpbGxEZWZT
bWFsbGVyVGhhblVzZSgpKTsKICAgICBSVU4odGVzdFNwaWxsVXNlTGFyZ2VyVGhhbkRlZigpKTsK
ICAgICBSVU4odGVzdExhdGVSZWdpc3RlcigpKTsKKzw8PDw8PDwgLm1pbmUKKyAgICAKKyAgICBS
VU4odGVzdFRocmVhZGVkSW50ZXJwcmV0ZXIoKSk7Cis9PT09PT09CiAgICAgUlVOKHRlc3RSZWR1
Y2VTdHJlbmd0aENoZWNrQm90dG9tVXNlSW5Bbm90aGVyQmxvY2soKSk7CiAgICAgUlVOKHRlc3RS
ZXNldFJlYWNoYWJpbGl0eURhbmdsaW5nUmVmZXJlbmNlKCkpOworPj4+Pj4+PiAucjIwMjgwOQog
CiAgICAgaWYgKHRhc2tzLmlzRW1wdHkoKSkKICAgICAgICAgdXNhZ2UoKTsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzMs
NiArMzMsNyBAQAogI2luY2x1ZGUgIkFpclNwZWNpYWwuaCIKICNpbmNsdWRlICJBaXJTdGFja1Ns
b3QuaCIKICNpbmNsdWRlICJBaXJUbXAuaCIKKyNpbmNsdWRlICJCM0luZGV4TWFwLmgiCiAjaW5j
bHVkZSAiQjNTcGFyc2VDb2xsZWN0aW9uLmgiCiAjaW5jbHVkZSAiUmVnaXN0ZXJBdE9mZnNldExp
c3QuaCIKICNpbmNsdWRlICJTdGFja0FsaWdubWVudC5oIgpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0ZS5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00OCwxMCArNDgsMTMgQEAKICNpbmNsdWRlICJBaXJWYWxpZGF0ZS5oIgogI2luY2x1ZGUg
IkIzQ29tbW9uLmgiCiAjaW5jbHVkZSAiQjNJbmRleE1hcC5oIgorI2luY2x1ZGUgIkIzUG9seUp1
bXBWYWx1ZS5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJlLmgiCiAjaW5jbHVkZSAiQjNUaW1pbmdT
Y29wZS5oIgorI2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQ0NhbGxIZWxw
ZXJzLmgiCiAjaW5jbHVkZSAiRGlzYWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlLmgiCisj
aW5jbHVkZSAiTGlua0J1ZmZlci5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsg
bmFtZXNwYWNlIEFpciB7CiAKQEAgLTE5Niw3ICsxOTksOCBAQCB2b2lkIGdlbmVyYXRlKENvZGUm
IGNvZGUsIENDYWxsSGVscGVycyYgCiAKICAgICBmb3IgKEJhc2ljQmxvY2sqIGJsb2NrIDogY29k
ZSkgewogICAgICAgICBibG9ja0p1bXBzW2Jsb2NrXS5saW5rKCZqaXQpOwotICAgICAgICBibG9j
a0xhYmVsc1tibG9ja10gPSBqaXQubGFiZWwoKTsKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpMYWJl
bCBsYWJlbCA9IGppdC5sYWJlbCgpOworICAgICAgICBibG9ja0xhYmVsc1tibG9ja10gPSBsYWJl
bDsKICAgICAgICAgQVNTRVJUKGJsb2NrLT5zaXplKCkgPj0gMSk7CiAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBibG9jay0+c2l6ZSgpIC0gMTsgKytpKSB7CiAgICAgICAgICAgICBJ
bnN0JiBpbnN0ID0gYmxvY2stPmF0KGkpOwpAQCAtMjI4LDI2ICsyMzIsNTQgQEAgdm9pZCBnZW5l
cmF0ZShDb2RlJiBjb2RlLCBDQ2FsbEhlbHBlcnMmIAogICAgICAgICAgICAgYWRkSXRlbShibG9j
ay0+bGFzdCgpKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9Ci0KKyAgICAgICAg
CiAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcCBqdW1wID0gYmxvY2stPmxhc3QoKS5nZW5lcmF0
ZShqaXQsIGNvbnRleHQpOwotICAgICAgICBzd2l0Y2ggKGJsb2NrLT5udW1TdWNjZXNzb3JzKCkp
IHsKLSAgICAgICAgY2FzZSAwOgotICAgICAgICAgICAgQVNTRVJUKCFqdW1wLmlzU2V0KCkpOwot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgMToKLSAgICAgICAgICAgIGxpbmsoanVt
cCwgYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDApKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICBjYXNlIDI6Ci0gICAgICAgICAgICBsaW5rKGp1bXAsIGJsb2NrLT5zdWNjZXNzb3JCbG9jaygw
KSk7Ci0gICAgICAgICAgICBpZiAoYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDEpICE9IGNvZGUuZmlu
ZE5leHRCbG9jayhibG9jaykpCi0gICAgICAgICAgICAgICAgbGluayhqaXQuanVtcCgpLCBibG9j
ay0+c3VjY2Vzc29yQmxvY2soMSkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGRlZmF1
bHQ6Ci0gICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIC8vIFRoZSBqdW1wIHdvbid0IGJlIHNldCBmb3IgUG9seUp1bXAg
YmVjYXVzZSBpdCBsZXRzIGl0cyBmYWl0aCBpbiB0aGUgYWRkcmVzcyBvcGVyYW5kCisgICAgICAg
IC8vIGd1aWRlIHdoZXJlIGl0IGp1bXBzLiBJdCB3b24ndCBiZSBzZXQgZm9yIE9vcHMgYmVjYXVz
ZSB0aGVuIGl0IHdvbid0IGhhdmUgYW55IHN1Y2Nlc3NvcnMuCisgICAgICAgIGlmIChqdW1wLmlz
U2V0KCkpIHsKKyAgICAgICAgICAgIHN3aXRjaCAoYmxvY2stPm51bVN1Y2Nlc3NvcnMoKSkgewor
ICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgIGxpbmsoanVtcCwgYmxvY2stPnN1
Y2Nlc3NvckJsb2NrKDApKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgMjoKKyAgICAgICAgICAgICAgICBsaW5rKGp1bXAsIGJsb2NrLT5zdWNjZXNzb3JCbG9jaygw
KSk7CisgICAgICAgICAgICAgICAgaWYgKGJsb2NrLT5zdWNjZXNzb3JCbG9jaygxKSAhPSBjb2Rl
LmZpbmROZXh0QmxvY2soYmxvY2spKQorICAgICAgICAgICAgICAgICAgICBsaW5rKGppdC5qdW1w
KCksIGJsb2NrLT5zdWNjZXNzb3JCbG9jaygxKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CiAgICAgICAg
IH0KICAgICAgICAgYWRkSXRlbShibG9jay0+bGFzdCgpKTsKICAgICB9CisgICAgCisgICAgLy8g
VGFrZSBjYXJlIG9mIFBvbHlKdW1wLiBXZSBkbyB0aGlzIGxhc3QgYmVjYXVzZSBpdCByZWxpZXMg
b24ga25vd2luZyB3aGVyZSBhbGwgb2YgdGhlIGJhc2ljCisgICAgLy8gYmxvY2sgbGFuZGVkLgor
ICAgIGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiBjb2RlKSB7CisgICAgICAgIGlmIChibG9jay0+
bGFzdCgpLm9wY29kZSAhPSBQb2x5SnVtcCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICAKKyAgICAgICAgUG9seUp1bXBWYWx1ZSogcG9seUp1bXAgPSBibG9jay0+bGFzdCgpLm9yaWdp
bi0+YXM8UG9seUp1bXBWYWx1ZT4oKTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQocG9seUp1bXAt
Pm51bVN1Y2Nlc3NvcnMoKSA9PSBibG9jay0+bnVtU3VjY2Vzc29ycygpKTsKKyAgICAgICAgCisg
ICAgICAgIFJlZlB0cjxTaGFyZWRUYXNrPFBvbHlKdW1wVmFsdWU6OkNhbGxiYWNrRnVuY3Rpb25U
eXBlPj4gdGFzayA9IHBvbHlKdW1wLT5jYWxsYmFja1Rhc2soKTsKKyAgICAgICAgaWYgKCF0YXNr
KQorICAgICAgICAgICAgY29udGludWU7IC8vIFRoaXMgd291bGQgYmUgd2VpcmQsIGJ1dCB3ZSBh
bGxvdyBpdC4KKyAgICAgICAgCisgICAgICAgIFZlY3RvcjxDQ2FsbEhlbHBlcnM6OkxhYmVsPiBs
YWJlbHM7CisgICAgICAgIGZvciAoQmFzaWNCbG9jayogc3VjY2Vzc29yIDogYmxvY2stPnN1Y2Nl
c3NvckJsb2NrcygpKQorICAgICAgICAgICAgbGFiZWxzLmFwcGVuZChibG9ja0xhYmVsc1tzdWNj
ZXNzb3JdKTsKKyAgICAgICAgCisgICAgICAgIGppdC5hZGRMaW5rVGFzaygKKyAgICAgICAgICAg
IFs9XSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikgeworICAgICAgICAgICAgICAgIFZlY3RvcjxN
YWNyb0Fzc2VtYmxlckNvZGVQdHI+IHBvaW50ZXJzOworICAgICAgICAgICAgICAgIGZvciAoQ0Nh
bGxIZWxwZXJzOjpMYWJlbCBsYWJlbCA6IGxhYmVscykKKyAgICAgICAgICAgICAgICAgICAgcG9p
bnRlcnMuYXBwZW5kKGxpbmtCdWZmZXIubG9jYXRpb25PZihsYWJlbCkpOworICAgICAgICAgICAg
ICAgIAorICAgICAgICAgICAgICAgIHRhc2stPnJ1bihwb2ludGVycyk7CisgICAgICAgICAgICB9
KTsKKyAgICB9CiAKICAgICBwY1RvT3JpZ2luTWFwLmFwcGVuZEl0ZW0oaml0LmxhYmVsKCksIE9y
aWdpbigpKTsKICAgICAvLyBGSVhNRTogTWFrZSBsYXRlIHBhdGhzIGhhdmUgT3JpZ2luczogaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MzY4OQpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckluc3QuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckluc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00NSw2ICs0NSwxMSBAQCBib29sIEluc3Q6Omhhc0FyZ0VmZmVjdHMoKQogICAgIHJldHVybiBy
ZXN1bHQ7CiB9CiAKK2Jvb2wgSW5zdDo6aXNDbG9uZWFibGUoKQoreworICAgIHJldHVybiAhb3Jp
Z2luIHx8IG9yaWdpbi0+aXNDbG9uZWFibGUoKTsKK30KKwogdW5zaWduZWQgSW5zdDo6anNIYXNo
KCkgY29uc3QKIHsKICAgICB1bnNpZ25lZCByZXN1bHQgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
b3Bjb2RlKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdC5oCShyZXZp
c2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckluc3QuaAko
d29ya2luZyBjb3B5KQpAQCAtMTg4LDYgKzE4OCwxMCBAQCBwdWJsaWM6CiAgICAgLy8gcmV0dXJu
cyAyIGlmIDAgYW5kIDEgYmVuZWZpdCBmcm9tIGFsaWFzaW5nIHRvIFRtcDMuCiAgICAgT3B0aW9u
YWw8dW5zaWduZWQ+IHNob3VsZFRyeUFsaWFzaW5nRGVmKCk7CiAgICAgCisgICAgLy8gU29tZSBp
bnN0dWN0aW9ucyB3aWxsIHJlZnVzZSB0byBhbGxvdyBjbG9uaW5nLiBJZiB0aGlzIHJldHVybnMg
ZmFsc2UsIHlvdSBtdXN0IG1ha2Ugc3VyZSB0aGF0CisgICAgLy8geW91IG5ldmVyIGludHJvZHVj
ZSBjb3BpZXMgb2YgdGhlIGluc3RydWN0aW9uLgorICAgIGJvb2wgaXNDbG9uZWFibGUoKTsKKyAg
ICAKICAgICAvLyBUaGlzIGNvbXB1dGVzIGEgaGFzaCBmb3IgY29tcGFyaW5nIHRoaXMgdG8gSlNB
aXIncyBJbnN0LgogICAgIHVuc2lnbmVkIGpzSGFzaCgpIGNvbnN0OwogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpck9wY29kZS5vcGNvZGVzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMJKHJldmlzaW9uIDIw
MjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMJ
KHdvcmtpbmcgY29weSkKQEAgLTgzNSw2ICs4MzUsMTQgQEAgTW92ZURvdWJsZUNvbmRpdGlvbmFs
bHlGbG9hdCBVOkc6MzIsIFU6RgogCiBKdW1wIC9icmFuY2gKIAorIyBUaGlzIG1hc3F1ZXJhZGVz
IGFzIGEgbm9uLWJyYW5jaCB0ZXJtaW5hbCBiZWNhdXNlIGl0IGRvZXNuJ3QgbmVlZCB0aGUgdHJh
ZGl0aW9uYWwgc29ydCBvZiBsaW5raW5nLgorIyAiQnJhbmNoIiBpbiB0aGlzIGNvbnRleHQganVz
dCBtZWFucyB0aGF0IGl0J3MgYSB0ZXJtaW5hbCB0aGF0IHJldHVybnMgYSBKdW1wIHRoYXQgbmVl
ZHMgdG8gYmUKKyMgbGlua2VkLiBJbnN0ZWFkLCBBaXI6OmdlbmVyYXRlKCkgaGFzIGEgc3BlY2lh
bC1jYXNlIGZvciBQb2x5SnVtcC4KK1BvbHlKdW1wIFU6RzpQdHIgL3Rlcm1pbmFsCisgICAgVG1w
IGFzIGp1bXAKKyAgICB4ODY6IEFkZHIgYXMganVtcAorICAgIHg4NjogSW5kZXggYXMganVtcAor
CiBSZXQzMiBVOkc6MzIgL3JldHVybgogICAgIFRtcAogCkluZGV4OiBXZWJzaXRlcy93ZWJraXQu
b3JnL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy93ZWJraXQub3JnL0NoYW5nZUxv
ZwkocmV2aXNpb24gMjAyODA5KQorKysgV2Vic2l0ZXMvd2Via2l0Lm9yZy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxNi0wNS0yOSAgRmlsaXAgUGl6bG8gIDxm
cGl6bG9AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCB0YWJsZS1iYXNlZCBzd2l0Y2hl
cyBpbiBCMy9BaXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE1MTE0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAg
ICAKKyAgICAgICAgVXBkYXRlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBuZXcgUG9seUp1bXAgb3Bj
b2RlLgorCisgICAgICAgICogZG9jcy9iMy9pbnRlcm1lZGlhdGUtcmVwcmVzZW50YXRpb24uaHRt
bDoKKwogMjAxNi0wNy0wMSAgSm9uIERhdmlzICA8am9uZEBhcHBsZS5jb20+CiAKICAgICAgICAg
QWRkZWQgYSBjb2xvcmZ1bCBuZXcgaW1hZ2UgYW5kIGZpeGVkIHRoZSBPcGVuIEdyYXBoIGF0dHJp
YnV0ZS4KSW5kZXg6IFdlYnNpdGVzL3dlYmtpdC5vcmcvZG9jcy9iMy9pbnRlcm1lZGlhdGUtcmVw
cmVzZW50YXRpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy93ZWJraXQub3JnL2RvY3Mv
YjMvaW50ZXJtZWRpYXRlLXJlcHJlc2VudGF0aW9uLmh0bWwJKHJldmlzaW9uIDIwMjgwOSkKKysr
IFdlYnNpdGVzL3dlYmtpdC5vcmcvZG9jcy9iMy9pbnRlcm1lZGlhdGUtcmVwcmVzZW50YXRpb24u
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtNTM3LDYgKzUzNywzOSBAQCBwYXRjaHBvaW50LT5zZXRH
ZW5lcmF0b3IoCiAgICAgICAgIGFsc28gY29udGFpbnMgYSBmYWxsLXRocm91Z2ggdGFyZ2V0IGlu
IGNhc2UgdGhlIGNoaWxkIGhhcyBhIHZhbHVlIHRoYXQgd2Fzbid0IG1lbnRpb25lZAogICAgICAg
ICBpbiB0aGUgY2FzZXMgbGlzdC4gIE11c3QgdXNlIHRoZSBTd2l0Y2hWYWx1ZSBjbGFzcy4gIE11
c3QgYXBwZWFyIGF0IHRoZSBlbmQgb2YgdGhlIGJhc2ljCiAgICAgICAgIGJsb2NrLjwvZGQ+Cisg
ICAgICAKKyAgICAgIDxkdD5Wb2lkIFBvbHlKdW1wKEludFB0ciwgYmxvY2tzLi4uKTwvZHQ+Cisg
ICAgICA8ZGQ+CisgICAgICAgIDxwPkp1bXBzIHRvIHRoZSBnaXZlbiBhZGRyZXNzLiBUaGUgY29t
cGlsZXIgd2lsbCBhc3N1bWUgdGhhdCB0aGlzIGp1bXBzIHRvIG9uZSBvZiB0aGUgZ2l2ZW4KKyAg
ICAgICAgICBibG9ja3MuIFRoZSBjb21waWxlciBtYWtlcyBubyBhdHRlbXB0IHRvIHByb3ZlIG9y
IHZhbGlkYXRlIHRoYXQgdGhlIHBhc3NlZCBqdW1wIGFkZHJlc3MgaXMKKyAgICAgICAgICBhY3R1
YWxseSB0aGUgYWRkcmVzcyBvZiBhbnkgb2YgdGhvc2UgYmxvY2tzLiBOb25zZW5zaWNhbCB0aGlu
Z3Mgd2lsbCBoYXBwZW4gaWYgdGhlIHBhc3NlZAorICAgICAgICAgIGFkZHJlc3MgaXMgbm90IHRo
ZSBhZGRyZXNzIG9mIG9uZSBvZiB0aGUgYmxvY2tzIGluIHRoZSBzdWNjZXNzb3IgbGlzdC4gWW91
IGNhbiBhcnJhbmdlIHRvCisgICAgICAgICAgZ2V0IHRoZSBhZGRyZXNzZXMgb2YgYmxvY2tzIGJ5
IHBhc3NpbmcgYSBjYWxsYmFjayB0byBQb2x5SnVtcC4gVGhpcyBpcyB1c2VkIGludGVybmFsbHkK
KyAgICAgICAgICBmb3IgbG93ZXJpbmcgU3dpdGNoIG9wY29kZXMuIFlvdSBjYW4gYWxzbyB1c2Ug
aXQgZGlyZWN0bHkuPC9wPgorICAgICAgCisgICAgICAgIDxwPlBvbHlKdW1wIGlzIG5vdCBjbG9u
ZWFibGUuIEZvciBlYWNoIFBvbHlKdW1wIHlvdSBjcmVhdGUsIHRoZXJlIHdpbGwgYmUgb25lIGlu
ZGlyZWN0CisgICAgICAgICAganVtcCBnZW5lcmF0ZWQuIFRoaXMgaXMgbmVjZXNzYXJ5IHRvIGVu
c3VyZSBzb3VuZG5lc3Mgb2YgdGhlIGNhbGxiYWNrLiBJZiB0aGUgUG9seUp1bXAKKyAgICAgICAg
ICBjb3VsZCBiZSBjbG9uZWQsIHRoZW4gdGhlIGNhbGxiYWNrIHdvdWxkIGdldCBjYWxsZWQgZm9y
IGVhY2ggY2xvbmUuIFByZXN1bWFibHksIHlvdSdkCisgICAgICAgICAgaW1wbGVtZW50IHRoZSBj
YWxsYmFjayBieSBwb3B1bGF0aW5nIHNvbWUgdGFibGUgd2l0aCB0aGUgYWRkcmVzc2VzIG9mIHRo
ZSBibG9ja3MuIElmIHRoZQorICAgICAgICAgIGNhbGxiYWNrIGdldHMgY2FsbGVkIG11bHRpcGxl
IHRpbWVzIHRoZW4gaXQgbWF5IHJldHVybiBkaWZmZXJlbnQgYWRkcmVzc2VzIGVhY2ggdGltZSAt
CisgICAgICAgICAgc2luY2UgYWZ0ZXIgY2xvbmluZyBhIFBvbHlKdW1wLCB0aGUgY29tcGlsZXIg
bWF5IHJldGFyZ2V0IGFueSBvZiBpdHMgc3VjY2Vzc29yIGVkZ2VzLgorICAgICAgICAgIFRoaXMg
d291bGQgYmUgY29uZnVzaW5nLCBzaW5jZSB0aGVuIHlvdSB3b3VsZG4ndCBrbm93IHdoYXQgdG8g
ZG8gd2l0aCBkaXNjcmVwYW5jaWVzIGJldHdlZW4KKyAgICAgICAgICBhZGRyZXNzZXMgcmV0dXJu
ZWQgYnkgdGhlIHZhcmlvdXMgY2FsbHMgdG8gdGhlIGNhbGxiYWNrLiBEaXNhbGxvd2luZyBjbG9u
aW5nIG9mIFBvbHlKdW1wCisgICAgICAgICAgc29sdmVzIHRoaXMgcHJvYmxlbS48L3A+CisgICAg
ICAgIAorICAgICAgICA8cD5BIGNsb3NlbHkgcmVsYXRlZCBwcm9ibGVtIGlzIHRoYXQgaWYgeW91
IGVtaXQgbXVsdGlwbGUgUG9seUp1bXAgaW5zdHJ1Y3Rpb25zLCB0aGVuIGV2ZW4KKyAgICAgICAg
ICBpZiB0aGV5IGluaXRpYWxseSBzaGFyZSB0aGUgc2FtZSBzdWNjZXNzb3JzLCB5b3UgY2Fubm90
IGd1YXJhbnRlZSB0aGF0IHRoZXkgd2lsbCBjb250aW51ZQorICAgICAgICAgIHRvIHNoYXJlIHRo
ZSBzYW1lIHN1Y2Nlc3NvcnMgYWZ0ZXIgb3B0aW1pemF0aW9uLiBUaGlzIG1lYW5zIHRoYXQgUG9s
eUp1bXAgY2Fubm90CisgICAgICAgICAgY3VycmVudGx5IGJlIHVzZWQgZm9yIGltcGxlbWVudGlu
ZyBkaXJlY3QgdGhyZWFkZWQgaW50ZXJwcmV0ZXJzLCBhdCBsZWFzdCBub3QgdGhlIGNsYXNzaWMK
KyAgICAgICAgICBraW5kOiB0byBtYWtlIGl0IHdvcmssIHlvdSBoYXZlIHRvIGhhdmUgYSBzaGFy
ZWQgZGlzcGF0Y2ggYmxvY2sgc28gdGhhdCB5b3UgaGF2ZSBhIHNpbmdsZQorICAgICAgICAgIFBv
bHlKdW1wLiBUaGlzIG1pZ2h0IGJlIGJldHRlciB0aGFuIGEgU3dpdGNoLWJhc2VkIGludGVycHJl
dGVyLCBidXQgaXQncyBkZWZpbml0ZWx5IG5vdAorICAgICAgICAgIGFzIGdvb2QgYXMgd2hhdCB5
b3UnZCBnZXQgd2l0aCBHQ0Mtc3R5bGUgY29tcHV0ZWQgZ290by48L3A+CisgICAgICAgIAorICAg
ICAgICA8cD5Qb2x5SnVtcCBpcyBzbyBuYW1lZCB0byBhdm9pZCBjb25mdXNpb24gd2l0aCBjb21w
dXRlZCBnb3RvcyBhbmQgaW5kaXJlY3QgYnJhbmNoZXMgaW4KKyAgICAgICAgICBvdGhlciBjb21w
aWxlcnMuIEl0IGhhcyBzaWduaWZpY2FudCByZXN0cmljdGlvbnMgdGhhdCB0aG9zZSBvcGVyYXRp
b25zIGRvIG5vdCBoYXZlLiBUaGVzZQorICAgICAgICAgIHJlc3RyaWN0aW9ucyBtYWtlIGl0IGVh
c2llciBmb3IgdGhlIG9wdGltaXplciB0byB3b3JrIHdpdGggc2luY2UgdGhlIGNvbnRyb2wgZmxv
dyBnZXRzIHRvCisgICAgICAgICAgYmUgZXhwbGljaXQgKFBvbHlKdW1wIGhhcyBhIGZpbml0ZSBz
ZXQgb2Ygc3VjY2Vzc29ycyBsaWtlIGFueSBvdGhlciBibG9jayB0ZXJtaW5hbCkuPC9wPgorICAg
ICAgPC9kZD4KIAogICAgICAgPGR0PlZvaWQgUmV0dXJuKFQpPC9kdD4KICAgICAgIDxkZD5Xb3Jr
cyBmb3IgYW55IHR5cGUgZXhjZXB0IFZvaWQuICBSZXR1cm5zIHRoZSBnaXZlbiB2YWx1ZSBhbmQg
dGVybWluYXRlcyB0aGUgcHJvY2VkdXJlLgpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjAyODA5KQorKysg
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MTYtMDUtMjkgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBs
ZW1lbnQgdGFibGUtYmFzZWQgc3dpdGNoZXMgaW4gQjMvQWlyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTExNDEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGpzL3JlZ3Jlc3MvYmlnc3dpdGNoLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9iaWdzd2l0Y2guaHRtbDogQWRk
ZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvYmlnc3dpdGNoLmpzOiBBZGRl
ZC4KKyAgICAgICAgKGZvbyk6CisKIDIwMTYtMDctMDQgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5l
LnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgc2tpcCBtaXNjLWJ1Z3MtODQ3
Mzg5LWpwZWcyMDAwLmpzIGluIGpzYyBzdHJlc3MgdGVzdHMKSW5kZXg6IExheW91dFRlc3RzL2pz
L3JlZ3Jlc3MvYmlnc3dpdGNoLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwxMCBAQAorSlNSZWdyZXNzL2JpZ3N3aXRjaAorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworUEFTUyBubyBleGNlcHRpb24gdGhyb3duCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9iaWdzd2l0Y2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL2JpZ3N3aXRjaC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9iaWdzd2l0Y2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZ
UEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9iaWdzd2l0Y2guanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9z
Y3JpcHQtdGVzdHMvYmlnc3dpdGNoLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3Jl
Z3Jlc3Mvc2NyaXB0LXRlc3RzL2JpZ3N3aXRjaC5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2JpZ3N3aXRjaC5qcwkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDIxMSBAQAorZnVuY3Rpb24gZm9vKG8pIHsKKyAgICB2YXIgcmVzdWx0ID0gMDsK
KyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7ICsraSkgeworICAgICAgICB2YXIgdmFsdWUg
PSBpICYgNjM7CisgICAgICAgIHN3aXRjaCAodmFsdWUpIHsKKyAgICAgICAgY2FzZSAwOgorICAg
ICAgICAgICAgcmVzdWx0ICs9IG8uYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IDE6CisgICAgICAgICAgICByZXN1bHQgKz0gby5iOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmM7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZDsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ6CisgICAgICAgICAgICByZXN1bHQgKz0gby5lOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNToKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLmY7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA2OgorICAgICAgICAgICAg
cmVzdWx0ICs9IG8uZzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDc6CisgICAg
ICAgICAgICByZXN1bHQgKz0gby5oOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
ODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSA5OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uajsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIDEwOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIDExOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDEyOgorICAgICAgICAgICAgcmVzdWx0
ICs9IG8uYjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDEzOgorICAgICAgICAg
ICAgcmVzdWx0ICs9IG8uYzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE0Ogor
ICAgICAgICAgICAgcmVzdWx0ICs9IG8uZDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIDE1OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIDE2OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZjsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIDE3OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZzsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE4OgorICAgICAgICAgICAgcmVzdWx0ICs9
IG8uaDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE5OgorICAgICAgICAgICAg
cmVzdWx0ICs9IG8uaTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDIwOgorICAg
ICAgICAgICAgcmVzdWx0ICs9IG8uajsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IDIxOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIDIyOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIDIzOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI0OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8u
YjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI1OgorICAgICAgICAgICAgcmVz
dWx0ICs9IG8uYzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI2OgorICAgICAg
ICAgICAgcmVzdWx0ICs9IG8uZDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI3
OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIDI4OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZjsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIDI5OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZzsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIDMwOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaDsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDMxOgorICAgICAgICAgICAgcmVzdWx0
ICs9IG8uaTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDMyOgorICAgICAgICAg
ICAgcmVzdWx0ICs9IG8uajsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDMzOgor
ICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIDM0OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIDM1OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIDM2OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM3OgorICAgICAgICAgICAgcmVzdWx0ICs9
IG8uYjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM4OgorICAgICAgICAgICAg
cmVzdWx0ICs9IG8uYzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM5OgorICAg
ICAgICAgICAgcmVzdWx0ICs9IG8uZDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IDQwOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIDQxOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZjsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIDQyOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZzsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQzOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8u
aDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ0OgorICAgICAgICAgICAgcmVz
dWx0ICs9IG8uaTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ1OgorICAgICAg
ICAgICAgcmVzdWx0ICs9IG8uajsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ2
OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIDQ3OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIDQ4OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uajsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ5OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDUwOgorICAgICAgICAgICAgcmVzdWx0
ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDUxOgorICAgICAgICAg
ICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDUyOgor
ICAgICAgICAgICAgcmVzdWx0ICs9IG8uYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIDUzOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYjsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIDU0OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYzsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIDU1OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZDsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDU2OgorICAgICAgICAgICAgcmVzdWx0ICs9
IG8uZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDU3OgorICAgICAgICAgICAg
cmVzdWx0ICs9IG8uZjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDU4OgorICAg
ICAgICAgICAgcmVzdWx0ICs9IG8uZzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IDU5OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaDsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIDYwOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIDYxOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uajsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDYyOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8u
azsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmVz
dWx0ICs9IG8uejsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIHJl
dHVybiByZXN1bHQ7Cit9CisKKyhmdW5jdGlvbigpIHsKKyAgICB2YXIgbyA9IHthOjEsIGI6Miwg
YzozLCBkOjQsIGU6NSwgZjo2LCBnOjcsIGg6OCwgaTo5LCBqOjEwLCBrOjExLCB6OjEwMH07Cisg
ICAgdmFyIHJlc3VsdCA9IDA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKQor
ICAgICAgICByZXN1bHQgKz0gZm9vKG8pOworICAgIGlmIChyZXN1bHQgIT0gNzk2NjAwMDApCisg
ICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30pKCk7CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282731</attachid>
            <date>2016-07-04 11:37:13 -0700</date>
            <delta_ts>2016-07-04 13:44:17 -0700</delta_ts>
            <desc>a bit more</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>92231</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2NiBA
QAorMjAxNi0wNS0yOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IEltcGxlbWVudCB0YWJsZS1iYXNlZCBzd2l0Y2hlcyBpbiBCMy9BaXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTE0MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgSWYgYSBzd2l0Y2ggc3Rh
dGVtZW50IGdldHMgbGFyZ2UsIGl0J3MgYmV0dGVyIHRvIGV4cHJlc3MgaXQgYXMgYW4gaW5kaXJl
Y3QganVtcCByYXRoZXIgdGhhbgorICAgICAgICB1c2luZyBhIGJpbmFyeSBzd2l0Y2ggKGRpdmlk
ZS1hbmQtY29ucXVlciB0cmVlIG9mIGNvbXBhcmlzb25zIGxlYWRpbmcgdG8gTyhsb2cgbikgYnJh
bmNoZXMgdG8KKyAgICAgICAgZ2V0IHRvIHRoZSBzd2l0Y2ggY2FzZSkuIFdoZW4gZGVhbGluZyB3
aXRoIGludGVnZXIgc3dpdGNoZXMsIEZUTCB3aWxsIGFscmVhZHkgdXNlIHRoZSBCMworICAgICAg
ICBTd2l0Y2ggYW5kIGV4cGVjdCB0aGlzIHRvIGdldCBsb3dlcmVkIGFzIGVmZmljaWVudGx5IGFz
IHBvc3NpYmxlOyBpdCdzIGEgYnVnIHRoYXQgQjMgd2lsbAorICAgICAgICBhbHdheXMgdXNlIGEg
YmluYXJ5IHN3aXRjaCByYXRoZXIgdGhhbiBpbmRpcmVjdCBqdW1wcy4gV2hlbiBkZWFsaW5nIHdp
dGggc3dpdGNoZXMgb3ZlciBzb21lCisgICAgICAgIG1vcmUgc29waGlzdGljYXRlZCB0eXBlcywg
d2UnZCB3YW50IEZUTCB0byBidWlsZCBhbiBpbmRpcmVjdCBqdW1wIHRhYmxlIGl0c2VsZiBhbmQg
dXNlCisgICAgICAgIHNvbWV0aGluZyBsaWtlIGEgaGFzaHRhYmxlIHRvIGZlZWQgaXQuIEluIHRo
YXQgY2FzZSwgdGhlcmUgd2lsbCBiZSBubyBCMyBTd2l0Y2g7IHdlJ2xsIHdhbnQKKyAgICAgICAg
c29tZSBraW5kIG9mIGluZGlyZWN0IGp1bXAgaW5zdHJ1Y3Rpb24uCisgICAgICAgIAorICAgICAg
ICBUaGlzIGltcGxpZXMgdGhhdCB3ZSB3YW50IEIzIHRvIGhhdmUgdGhlIGFiaWxpdHkgdG8gbG93
ZXIgU3dpdGNoIHRvIGluZGlyZWN0IGp1bXBzIGFuZCB0bworICAgICAgICBleHBvc2UgdGhvc2Ug
aW5kaXJlY3QganVtcHMgaW4gSVIgc28gdGhhdCB0aGUgRlRMIGNvdWxkIGRvIGl0cyBvd24gaW5k
aXJlY3QganVtcHMgZm9yCisgICAgICAgIHN3aXRjaGVzIG92ZXIgbW9yZSBjb21wbGljYXRlZCB0
aGluZ3MgbGlrZSBzdHJpbmdzLiBUaGlzIGNoYW5nZSBpbnRyb2R1Y2VzIGFuIGluZGlyZWN0IGp1
bXAKKyAgICAgICAgaW5zdHJ1Y3Rpb24gdG8gQjMgYW5kIGNhbGxzIGl0IFBvbHlKdW1wLiBJdCBo
YXMgc29tZSB1bmlxdWUgc2VtYW50aWNzIHRoYXQgbWFrZSBpdCB2ZXJ5CisgICAgICAgIGRpZmZl
cmVudCBmcm9tICJpbmRpcmVjdCBqdW1wcyIsICJpbmRpcmVjdCBicmFuY2hlcyIsIGFuZCAiY29t
cHV0ZWQgZ290b3MiIC0gYWxsIHRlcm1zIG9mIGFydAorICAgICAgICB1c2VkIGluIG90aGVyIGNv
bXBpbGVycy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaW1wbGVtZW50cyB0aGUgbW9zdCBiYXNp
YyBraW5kIG9mIFN3aXRjaC10by1Qb2x5SnVtcCBsb3dlcmluZyBpbiBCMzo6bG93ZXJNYWNyb3Mo
KS4gQXMKKyAgICAgICAgcGFydCBvZiB0aGUgZXhpc3RpbmcgZGl2aWRlLWFuZC1jb25xdWVyIHRo
YXQgY3JlYXRlcyBicmFuY2hlcywgaWYgaXQgZGV0ZWN0cyB0aGF0IHRoZSBzZXQgb2YKKyAgICAg
ICAgY2FzZXMgc2F0aXNmaWVzIHNvbWUgY29uZGl0aW9ucyAoZGVuc2l0eSBvZiBjYXNlIHZhbHVl
cyBhbmQgdG90YWwgc2l6ZSksIHRoZW4gaXQgd2lsbCBlbWl0IGEKKyAgICAgICAgUG9seUp1bXAu
CisgICAgICAgIAorICAgICAgICBUaGUgcHJvYmxlbSB3aXRoIGNsYXNzaWMgaW5kaXJlY3QganVt
cHMgaXMgdGhhdCB0aGV5IGZvcmNlIHRoZSBjb21waWxlciB0byBiZSBjb25zZXJ2YXRpdmUKKyAg
ICAgICAgYWJvdXQgY29udHJvbCBmbG93LiBUaGUgY29tcGlsZXIgbXVzdCBhc3N1bWUgdGhhdCB0
aGUgaW5kaXJlY3QganVtcCBtYXkgdHJhbnNmZXIgY29udHJvbCBmbG93CisgICAgICAgIHRvIGFu
eSBlc2NhcGVkIGJsb2NrIChibG9jayBsYWJlbGVkIGFzIGJlaW5nIGEgcG9zc2libGUgdGFyZ2V0
IGZvciBpbmRpcmVjdCBqdW1wcywgb3IgaWYgbm8KKyAgICAgICAgc3VjaCBsYWJlbGluZyBpcyBh
dmFpbGFibGUsIHRoZSBjb21waWxlciBtdXN0IGFzc3VtZSB0aGF0IGl0IG1heSB0YXJnZXQgYW55
IGJsb2NrKS4gVGhlIHdvcnN0CisgICAgICAgIHBhcnQgaXMgdGhhdCB0aGUgaW1wbGljaXQgY29u
dHJvbCBmbG93IGVkZ2VzIGZyb20gdGhlIGluZGlyZWN0IGp1bXAgdG8gdGhlIGVzY2FwZWQgYmxv
Y2tzCisgICAgICAgIGNhbm5vdCBiZSBicm9rZW4uIFRoaXMgaW52YWxpZGF0ZXMgYSBwcmluY2lw
bGUgb2YgQjMgSVI6IGFueSBwaGFzZSBtYXkgYnJlYWsgYW55IGNyaXRpY2FsCisgICAgICAgIGVk
Z2UgZm9yIGFueSByZWFzb24uIE91ciBTU0EgY29udmVyc2lvbiB3b3VsZCBicmVhayBpZiB3ZSBy
ZXZva2VkIHRoaXMgZmVhdHVyZS4gSXQncyBhY3R1YWxseQorICAgICAgICBtdWNoIHdvcnNlIHRo
YW4gdGhpcyAtIGJhc2ljYWxseSBhbnkgbG9naWMgb3ZlciBjb250cm9sIGZsb3cgd291bGQgaGF2
ZSB0byBiZSBoYWNrZWQgdG8gZGVhbAorICAgICAgICB3aXRoIHRoZXNlIHVuYnJlYWthYmxlIGVk
Z2VzLiBUaGlzIHdvdWxkIG1lYW4gY2hhbmdpbmcgYWxsIENGRyB0cmFuc2Zvcm1hdGlvbiB1dGls
aXRpZXMgYW5kCisgICAgICAgIHBhc3Nlcy4gV2UgaGF2ZSBhIGxvdCBvZiB0aG9zZSBhbmQgd2Ug
d2FudCBpdCB0byBiZSBlYXN5IHRvIHdyaXRlIG5ldyBvbmVzLgorICAgICAgICAKKyAgICAgICAg
VGhpcyBpcyB3aHkgd2UgdXNlIHNvbWV0aGluZyBuZXcgYW5kIHF1aXRlIGRpZmZlcmVudCBmcm9t
IGNsYXNzaWMgaW5kaXJlY3QganVtcHMuIFBvbHlKdW1wCisgICAgICAgIG1ha2VzIHRoZSBjb250
cm9sIGZsb3cgZWRnZXMgZXhwbGljaXQuIFRoZSBjbGllbnQgbXVzdCBzdXBwbHkgdGhlIHN1Y2Nl
c3NvcnMgd2hlbiBpdCBjcmVhdGVzCisgICAgICAgIHRoZSBQb2x5SnVtcC4gVGhlIGNvbXBpbGVy
IG1heSByZXdpcmUgdGhvc2Ugc3VjY2Vzc29yIGVkZ2VzIHRoZSBzYW1lIHdheSB0aGF0IGl0IHdv
dWxkIHJld2lyZQorICAgICAgICBhbnkgY29udHJvbCBmbG93IGVkZ2VzLiBDb25zZXF1ZW50bHkg
dGhlIHZhc3QgbWFqb3JpdHkgb2YgQ0ZHIHJlYXNvbmluZyBpbiBCMyBpcyB1bmNoYW5nZWQuCisg
ICAgICAgIElmIHlvdSBkb24ndCB3YW50IHRvIHVuZGVyc3RhbmQgUG9seUp1bXAsIGp1c3QgdGhp
bmsgb2YgaXQgbGlrZSB5b3Ugd291bGQgYSBTd2l0Y2ggd2l0aCBhbgorICAgICAgICBvcGFxdWUg
aW5jb21pbmcgdmFsdWUuIFRoaXMgd29ya3MgYmVjYXVzZSB3ZSBkbyBub3QgYWRkIGFueSBub3Rp
b24gb2YgZXNjYXBlZCBiYXNpYyBibG9ja3MuCisgICAgICAgIEluc3RlYWQgb2YgbGV0dGluZyB0
aGUgY2xpZW50IGdldCB0aGUgcG9pbnRlcnMgdG8gYmFzaWMgYmxvY2tzIGJ5IGVzY2FwaW5nIHRo
ZW0gbGlrZSBpbiBMTFZNLAorICAgICAgICB5b3UgY2FuIG9ubHkgZ2V0IHRoZSBwb2ludGVycyBv
ZiB0aGUgc3VjY2Vzc29ycyBvZiBQb2x5SnVtcCBieSByZWdpc3RlcmluZyBhIGNhbGxiYWNrIHdp
dGgKKyAgICAgICAgUG9seUp1bXAuIFRoaXMgY2FsbGJhY2sgZG9lc24ndCBhY3R1YWxseSBnaXZl
IHlvdSB0aGUgYWRkcmVzc2VzIG9mIGJhc2ljIGJsb2Nrcy4gSXQganVzdAorICAgICAgICBnaXZl
cyB5b3UgdGhlIGFkZHJlc3NlcyB3aGVyZSB5b3UgbXVzdCBqdW1wIHRvIHRyYW5zZmVyIGNvbnRy
b2wgZmxvdyBmcm9tIHRoYXQgUG9seUp1bXAgdG8KKyAgICAgICAgaXRzIHN1Y2Nlc3NvcnMuIFRo
aXMgbWVhbnMgdGhhdCB0aGUgbWFnaWMgb2YgUG9seUp1bXAgaXMgY29uZmluZWQgb25seSB0byB0
aGUgUG9seUp1bXAgaXRzZWxmCisgICAgICAgIGFuZCBkb2Vzbid0IGluZmVjdCByZWFzb25pbmcg
YWJvdXQgdGhlIGJhc2ljIGJsb2NrcyB0aGF0IGl0IGp1bXBzIHRvLgorICAgICAgICAKKyAgICAg
ICAgVGhlIG9ubHkgZG93bnNpZGUgaXMgdGhhdCB0aGF0IFBvbHlKdW1wIGlzIG5vdCBjbG9uZWFi
bGUuIFlvdSBjYW4ndCBjbG9uZSBpdCBiZWNhdXNlIGlmIHlvdQorICAgICAgICBkaWQsIHRoZW4g
dGhlIHR3byByZXN1bHRpbmcgUG9seUp1bXBzIG1heSBoYXZlIHRoZWlyIHN1Y2Nlc3NvciBlZGdl
cyByZXdpcmVkIGluZGVwZW5kZW50bHkgb2YKKyAgICAgICAgZWFjaCBvdGhlci4gVGhpcyBjb3Vs
ZCBlYXNpbHkgaGFwcGVuIGlmIHdlIGJyZWFrIGNyaXRpY2FsIGVkZ2VzLiBJZiB0aGF0IGRpZCBo
YXBwZW4gdGhlbiBpdAorICAgICAgICB3b3VsZCBicmVhayB0aGUgY2xpZW50IG9mIFBvbHlKdW1w
OiB0aGV5IHdvdWxkIGhhdmUgYWxyZWFkeSBjcmVhdGVkIHNvbWV0aGluZyBsaWtlIGEganVtcAor
ICAgICAgICB0YWJsZSBhbmQgd2lsbCBiZSBwb3B1bGF0aW5nIGl0IHZpYSB0aGUgY2FsbGJhY2ss
IGJ1dCBub3cgdGhlIGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkIHR3aWNlLAorICAgICAgICBhbmQg
bWF5IHJldHVybiBkaWZmZXJlbnQganVtcCBkZXN0aW5hdGlvbnMgZWFjaCB0aW1lLiBTbywgdGhp
cyBwYXRjaCBpbnRyb2R1Y2VzCisgICAgICAgIFZhbHVlOjppc0Nsb25lYWJsZSgpIGFuZCB0ZWFj
aGVzIGJvdGggb2Ygb3VyIGNvZGUgc3BlY2lhbGl6YXRpb24gb3B0aW1pemF0aW9ucyAodGFpbAor
ICAgICAgICBkdXBsaWNhdGlvbiBhbmQgc2VsZWN0IHNwZWNpYWxpemF0aW9uKSB0byBiYWlsIGlm
IHRoZSBjb2RlIHRoZXkgd2FudCB0byBzcGVjaWFsaXplIGlzIG5vdAorICAgICAgICBjbG9uZWFi
bGUuIFRoaXMgaXMgdG90YWxseSBiZW5pZ24gbW9zdCBvZiB0aGUgdGltZSwgc2luY2UgdGhvc2Ug
b3B0aW1pemF0aW9ucyB1c3VhbGx5IHJ1bgorICAgICAgICBiZWZvcmUgU3dpdGNoIGxvd2VyaW5n
LiBDbGllbnRzIHRoYXQgdXNlIFBvbHlKdW1wIGRpcmVjdGx5IGhhdmUgdG8gYXBwcmVjaWF0ZSB0
aGUgdHJhZGUtb2ZmOgorICAgICAgICBQb2x5SnVtcCBtYXkgZ2FpbiB0aGVtIHNvbWUgcGVyZm9y
bWFuY2UgYnV0IHRoZXkgYXJlIG9wdGluZyBvdXQgb2Ygb3B0aW1pemF0aW9ucyB0aGF0IHVzZQor
ICAgICAgICBjbG9uaW5nLiBBIGNsb3NlIGNvcm9sbGFyeSBvZiB0aGUgbm8tY2xvbmUgcnVsZSBp
cyB0aGF0IHRoZSBjbGllbnQgY2Fubm90IGNyZWF0ZSBtdWx0aXBsZQorICAgICAgICBQb2x5SnVt
cHMgdGhhdCBhcmUgZmVkIGJ5IGEgY29tbW9uIGp1bXAgdGFibGU6IHRoZSBmYWN0IHRoYXQgZWFj
aCBQb2x5SnVtcCBoYXMgYSBjYWxsYmFjaworICAgICAgICB0aGF0IGp1c3QgdGVsbHMgeW91IHRo
ZSBqdW1wIGRlc3RpbmF0aW9ucyBmb3IgaXRzIHN1Y2Nlc3NvciAqZWRnZXMqLCBub3Qgc3VjY2Vz
c29yICpibG9ja3MqLAorICAgICAgICBtZWFucyB0aGF0IGlmIHlvdSBjcmVhdGUgdHdvIFBvbHlK
dW1wcyBhbmQgZ2l2ZSB0aGVtIHRoZSBzYW1lIHN1Y2Nlc3NvciBsaXN0LCB5b3UgYXJlIG5vdAor
ICAgICAgICBndWFyYW50ZWVkIHRoYXQgdGhleSB3aWxsIGdldCB0aGUgc2FtZSBqdW1wIGRlc3Rp
bmF0aW9ucy4gVGhpcyBodXJ0cyBpZiB5b3Ugd2FudCB0byB1c2UKKyAgICAgICAgUG9seUp1bXAg
Zm9yIHRocmVhZGVkIGludGVycHJldGVycyBidXQgaXQncyBoYXJtbGVzcyBmb3Igc3dpdGNoIGxv
d2VyaW5nLiBUaGUgZ29hbCBvZgorICAgICAgICBQb2x5SnVtcCBpcyB0byBiZSBhd2Vzb21lIGZv
ciBzd2l0Y2ggbG93ZXJpbmcgd2hpbGUgbm90IGJyZWFraW5nIHRoZSByZXN0IG9mIHRoZSBjb21w
aWxlciwgc28KKyAgICAgICAgdGhpcyBpcyBwcm9iYWJseSBmaW5lLgorICAgICAgICAKKyAgICAg
ICAgVGhlIGlzQ2xvbmVhYmxlKCkgbWV0aG9kIGN1cnJlbnRseSBvbmx5IHJldHVybnMgdHJ1ZSBm
b3IgUG9seUp1bXAsIGJ1dCBJIGFudGljaXBhdGUgd2Ugd2lsbAorICAgICAgICBhZGQgb3RoZXIg
bm9uLWNsb25lYWJsZSB0aGluZ3MgbGF0ZXIuIEkgdGhpbmsgaXMgaXMgaW5oZXJlbnQgaW4gYSBj
b21waWxlciB0aGF0IGFsbG93cyBzdWNoCisgICAgICAgIGN1c3RvbWl6ZWFiaWxpdHkgZm9yIGl0
cyBjbGllbnRzLiBGb3IgZXhhbXBsZSwgd2UgbWF5IHdhbnQgdG8gYWRkIGEgZmxhZyB0byBQYXRj
aHBvaW50IHRoYXQKKyAgICAgICAgbWFrZXMgaXQgbm9uLWNsb25lYWJsZS4gU29tZXRpbWVzIHdl
IGhhdmUgdG8ganVtcCB0aHJvdWdoIGhvb3BzIGluIHRoZSBGVEwgYmVjYXVzZSBvZiB0aGUKKyAg
ICAgICAgY2xvbmVhYmlsaXR5IG9mIHBhdGNocG9pbnRzLiBUaGlzIGhhcHBlbnMgaW4gT1NSIGV4
aXRzLCB3aGljaCBwYXkgYSBzaWduaWZpY2FudCBtZW1vcnkgY29zdAorICAgICAgICBmb3IgYWRk
aXRpb25hbCBkYXRhIHN0cnVjdHVyZXMgdGhhdCBhcmUgdGhlcmUgaW4gY2FzZSBhbiBleGl0IGdl
dHMgY2xvbmVkLiBJdCBtYXkgYmUgbW9yZQorICAgICAgICBwcm9maXRhYmxlIHRvIGp1c3Qgc2F5
IHRoYXQgT1NSIGV4aXRzIChpLmUuIENoZWNrcyBhbmQgSW52YWxpZGF0aW9uUG9pbnQgUGF0Y2hw
b2ludHMpIGFyZSBub3QKKyAgICAgICAgY2xvbmVhYmxlLiBTdXJlbHkgdGhpcyB3b3VsZCByZWR1
Y2UgdGFpbCBkdXBsaWNhdGlvbiwgYnV0IHRhaWwgZHVwbGljYXRpb24gaXMgbW9zdCBwcm9maXRh
YmxlCisgICAgICAgIHdoZW4gaXQgY2xvbmVzIG9ubHkgYSB0aW55IGFtb3VudCBvZiBjb2RlOyBp
ZiB0aGVyZSdzIGFuIGV4aXQgdGhlbiB3ZSdyZSBub3QgdGFsa2luZyBhYm91dCBhCisgICAgICAg
IHRpbnkgYW1vdW50IG9mIGNvZGUgYW55bW9yZS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaXMg
YSB+MzAlIHNwZWVkLXVwIG9uIG1pY3JvYmVuY2htYXJrcyB0aGF0IGhhdmUgYmlnIHN3aXRjaCBz
dGF0ZW1lbnRzICh+NjAgY2FzZXMpLiBJdCdzCisgICAgICAgIG5vdCBhIHNwZWVkLXVwIG9uIG1h
aW5zdHJlYW0gYmVuY2htYXJrcy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgYWxzbyBhZGRzIGEg
bmV3IHRlc3QgdG8gdGVzdGIzIGZvciBQb2x5SnVtcCwgR2V0LCBhbmQgU2V0LiBUaGUgRlRMIGRv
ZXMgbm90IGN1cnJlbnRseQorICAgICAgICB1c2UgUG9seUp1bXAgZGlyZWN0bHksIGJ1dCB3ZSB3
YW50IHRoaXMgdG8gYmUgcG9zc2libGUuIEl0IGFsc28gZG9lc24ndCB1c2UgR2V0L1NldCBkaXJl
Y3RseQorICAgICAgICBldmVuIHRob3VnaCB3ZSB3YW50IHRoaXMgdG8gYmUgcG9zc2libGUuIEl0
J3MgaW1wb3J0YW50IHRvIHRlc3QgdGhlc2Ugc2luY2Ugb3Bjb2RlcyB0aGF0CisgICAgICAgIHJl
c3VsdCBmcm9tIGxvd2VyaW5nIGRvbid0IGFmZmVjdCBlYXJseSBwaGFzZXMsIHNvIHdlIGNvdWxk
IGhhdmUgcmVncmVzc2lvbnMgaW4gZWFybHkgcGhhc2VzCisgICAgICAgIHJlbGF0ZWQgdG8gdGhl
c2Ugb3Bjb2RlcyB0aGF0IHdvdWxkbid0IGJlIGNhdWdodCBieSBhbnkgSlMgdGVzdC4gU28sIHRo
aXMgYWRkcyBhIHZlcnkgYmFzaWMKKyAgICAgICAgdGhyZWFkZWQgaW50ZXJwcmV0ZXIgdG8gdGVz
dGIzIGZvciBhIEJyYWluZnVjay1zdHlsZSBsYW5ndWFnZSwgYW5kIHRlc3RzIGl0IGJ5IGhhdmlu
ZyBpdCBydW4KKyAgICAgICAgYSBwcm9ncmFtIHRoYXQgcHJpbnRzIHRoZSBudW1iZXJzIDEuLjEw
MCBpbiBhIGxvb3AuIFVubGlrZSBhIHJlYWwgdGhyZWFkZWQgaW50ZXJwcmV0ZXIsIGl0CisgICAg
ICAgIHVzZXMgYSBjb21tb24gZGlzcGF0Y2ggYmxvY2sgcmF0aGVyIHRoYW4gaGF2aW5nIGRpc3Bh
dGNoIGF0IHRoZSB0ZXJtaW51cyBvZiBlYWNoIG9wY29kZS4KKyAgICAgICAgVGhhdCdzIG5lY2Vz
c2FyeSBiZWNhdXNlIFBvbHlKdW1wIGlzIG5vdCBjbG9uZWFibGUuIFRoZSBzdGF0ZSBvZiB0aGUg
aW50ZXJwcmV0ZXIgaXMKKyAgICAgICAgcmVwcmVzZW50ZWQgdXNpbmcgVmFyaWFibGVzIHRoYXQg
d2UgR2V0IGFuZCBTZXQsIHNvIGl0IHRlc3RzIEdldC9TZXQgYXMgd2VsbC4KKworICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9u
Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpqdW1wKToKKyAgICAg
ICAgKiBhc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxl
cjo6am1wX20pOgorICAgICAgICAqIGIzL0IzQmFzaWNCbG9jay5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpCYXNpY0Jsb2NrOjp1cGRhdGVQcmVkZWNlc3NvcnNBZnRlcik6CisgICAgICAgIChKU0M6
OkIzOjpCYXNpY0Jsb2NrOjppc0Nsb25lYWJsZSk6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Js
b2NrOjpkdW1wKToKKyAgICAgICAgKiBiMy9CM0Jhc2ljQmxvY2suaDoKKyAgICAgICAgKEpTQzo6
QjM6OkJhc2ljQmxvY2s6OmZyZXF1ZW5jeSk6CisgICAgICAgICogYjMvQjNDb21tb24uaDoKKyAg
ICAgICAgKEpTQzo6QjM6OmlzNjRCaXQpOgorICAgICAgICAqIGIzL0IzQ29udHJvbFZhbHVlLmg6
CisgICAgICAgICogYjMvQjNEYXRhU2VjdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkIzOjpEYXRh
U2VjdGlvbjo6RGF0YVNlY3Rpb24pOgorICAgICAgICAqIGIzL0IzRHVwbGljYXRlVGFpbHMuY3Bw
OgorICAgICAgICAqIGIzL0IzTG93ZXJNYWNyb3MuY3BwOgorICAgICAgICAqIGIzL0IzTG93ZXJU
b0Fpci5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okxvd2VyVG9BaXI6Omxvd2VyKToKKyAg
ICAgICAgKiBiMy9CM09wY29kZS5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgor
ICAgICAgICAqIGIzL0IzT3Bjb2RlLmg6CisgICAgICAgICogYjMvQjNQb2x5SnVtcFZhbHVlLmNw
cDogQWRkZWQuCisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjp+UG9seUp1bXBWYWx1
ZSk6CisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjphcHBlbmRTdWNjZXNzb3IpOgor
ICAgICAgICAoSlNDOjpCMzo6UG9seUp1bXBWYWx1ZTo6c2V0Q2FsbGJhY2tUYXNrKToKKyAgICAg
ICAgKEpTQzo6QjM6OlBvbHlKdW1wVmFsdWU6OmlzQ2xvbmVhYmxlKToKKyAgICAgICAgKEpTQzo6
QjM6OlBvbHlKdW1wVmFsdWU6OmR1bXBNZXRhKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1w
VmFsdWU6OmNsb25lSW1wbCk6CisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjpQb2x5
SnVtcFZhbHVlKToKKyAgICAgICAgKiBiMy9CM1BvbHlKdW1wVmFsdWUuaDogQWRkZWQuCisgICAg
ICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjphY2NlcHRzKToKKyAgICAgICAgKEpTQzo6QjM6
OlBvbHlKdW1wVmFsdWU6OnNldENhbGxiYWNrKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1w
VmFsdWU6OmNhbGxiYWNrVGFzayk6CisgICAgICAgICogYjMvQjNQcm9jZWR1cmUuY3BwOgorICAg
ICAgICAoSlNDOjpCMzo6UHJvY2VkdXJlOjpjbG9uZSk6CisgICAgICAgICogYjMvQjNQcm9jZWR1
cmUuaDoKKyAgICAgICAgKEpTQzo6QjM6OlByb2NlZHVyZTo6bGFzdFBoYXNlTmFtZSk6CisgICAg
ICAgIChKU0M6OkIzOjpQcm9jZWR1cmU6OmJ5cHJvZHVjdHMpOgorICAgICAgICAqIGIzL0IzUmVk
dWNlU3RyZW5ndGguY3BwOgorICAgICAgICAqIGIzL0IzVmFsaWRhdGUuY3BwOgorICAgICAgICAq
IGIzL0IzVmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6OmVmZmVjdHMpOgorICAg
ICAgICAoSlNDOjpCMzo6VmFsdWU6OmlzQ2xvbmVhYmxlKToKKyAgICAgICAgKEpTQzo6QjM6OlZh
bHVlOjprZXkpOgorICAgICAgICAqIGIzL0IzVmFsdWUuaDoKKyAgICAgICAgKiBiMy9haXIvQWly
Q29kZS5oOgorICAgICAgICAqIGIzL2Fpci9BaXJHZW5lcmF0ZS5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpBaXI6OmdlbmVyYXRlKToKKyAgICAgICAgKiBiMy9haXIvQWlySW5zdC5jcHA6CisgICAg
ICAgIChKU0M6OkIzOjpBaXI6Okluc3Q6Omhhc0FyZ0VmZmVjdHMpOgorICAgICAgICAoSlNDOjpC
Mzo6QWlyOjpJbnN0Ojppc0Nsb25lYWJsZSk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okluc3Q6
OmR1bXApOgorICAgICAgICAqIGIzL2Fpci9BaXJJbnN0Lmg6CisgICAgICAgICogYjMvYWlyL0Fp
ck9wY29kZS5vcGNvZGVzOgorICAgICAgICAqIGIzL3Rlc3RiMy5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpzaG91bGRCZVZlcmJvc2UpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN3aXRjaENoaWxs
RGl2KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RMYXRlUmVnaXN0ZXIpOgorICAgICAgICAoSlND
OjpCMzo6dGhyZWFkZWRJbnRlcnByZXRlclByaW50KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RU
aHJlYWRlZEludGVycHJldGVyKToKKyAgICAgICAgKEpTQzo6QjM6Onplcm8pOgorICAgICAgICAo
SlNDOjpCMzo6cnVuKToKKwogMjAxNi0wNy0wMyAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gRExMcyBhcmUgbWlzc2luZyB2ZXJzaW9uIGluZm9y
bWF0aW9uLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24g
MjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0xNDQsNiArMTQ0LDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAg
ICBiMy9CM1BhdGNocG9pbnRWYWx1ZS5jcHAKICAgICBiMy9CM1BoYXNlU2NvcGUuY3BwCiAgICAg
YjMvQjNQaGlDaGlsZHJlbi5jcHAKKyAgICBiMy9CM1BvbHlKdW1wVmFsdWUuY3BwCiAgICAgYjMv
QjNQcm9jZWR1cmUuY3BwCiAgICAgYjMvQjNQdXJlQ1NFLmNwcAogICAgIGIzL0IzUmVkdWNlRG91
YmxlVG9GbG9hdC5jcHAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lv
biAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTk4OCw2ICsxOTg4LDggQEAK
IAkJREMxN0U4MUExQzlDOTFFOTAwOEE2QUIzIC8qIENDYWxsSGVscGVycy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzE3RTgxNjFDOUM4MDJCMDA4
QTZBQjMgLyogQ0NhbGxIZWxwZXJzLmNwcCAqLzsgfTsKIAkJREMyMTQzMDcxQ0EzMkU1NTAwMEE4
ODY5IC8qIElDU3RhdHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IERDMjE0MzA2MUNBMzJFNTIwMDBBODg2OSAvKiBJQ1N0YXRzLmggKi87IH07CiAJCURD
MjE0MzA4MUNBMzJFNTgwMDBBODg2OSAvKiBJQ1N0YXRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDMjE0MzA1MUNBMzJFNTIwMDBBODg2OSAvKiBJ
Q1N0YXRzLmNwcCAqLzsgfTsKKwkJREM0NTRCODgxQ0ZGNkZFNzAwNEMxOEFGIC8qIEIzUG9seUp1
bXBWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBEQzQ1NEI4NjFDRkY2RkU1MDA0QzE4QUYgLyogQjNQb2x5SnVtcFZhbHVlLmNwcCAqLzsgfTsK
KwkJREM0NTRCODkxQ0ZGNkZFQTAwNEMxOEFGIC8qIEIzUG9seUp1bXBWYWx1ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM0NTRCODcxQ0ZGNkZFNTAw
NEMxOEFGIC8qIEIzUG9seUp1bXBWYWx1ZS5oICovOyB9OwogCQlEQzQ1NEI4QzFEMDBFODIyMDA0
QzE4QUYgLyogQWlyRHVtcEFzSlMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gREM0NTRCOEExRDAwRTgxRjAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmNw
cCAqLzsgfTsKIAkJREM0NTRCOEQxRDAwRTgyNDAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzQ1NEI4QjFEMDBF
ODFGMDA0QzE4QUYgLyogQWlyRHVtcEFzSlMuaCAqLzsgfTsKIAkJREM2MDVCNUQxQ0UyNkVBMDAw
NTkzNzE4IC8qIFByb2ZpbGVyRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gREM2MDVCNTkxQ0UyNkU5ODAwNTkzNzE4IC8qIFByb2ZpbGVyRXZl
bnQuY3BwICovOyB9OwpAQCAtNDIxNiw2ICs0MjE4LDggQEAKIAkJREMxN0U4MTYxQzlDODAyQjAw
OEE2QUIzIC8qIENDYWxsSGVscGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBDQ2FsbEhlbHBlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlE
QzIxNDMwNTFDQTMyRTUyMDAwQTg4NjkgLyogSUNTdGF0cy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBJQ1N0YXRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJREMyMTQzMDYxQ0EzMkU1MjAwMEE4ODY5IC8qIElDU3RhdHMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSUNTdGF0cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlEQzQ1NEI4NjFDRkY2RkU1MDA0QzE4QUYgLyogQjNQb2x5SnVtcFZhbHVlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEIzUG9seUp1bXBWYWx1ZS5jcHA7IHBh
dGggPSBiMy9CM1BvbHlKdW1wVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlEQzQ1NEI4NzFDRkY2RkU1MDA0QzE4QUYgLyogQjNQb2x5SnVtcFZhbHVlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEIzUG9seUp1bXBWYWx1ZS5oOyBwYXRoID0gYjMvQjNQ
b2x5SnVtcFZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDNDU0QjhBMUQw
MEU4MUYwMDRDMThBRiAvKiBBaXJEdW1wQXNKUy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBBaXJEdW1wQXNKUy5jcHA7IHBhdGggPSBiMy9haXIvQWlyRHVtcEFzSlMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzQ1NEI4QjFEMDBFODFGMDA0QzE4
QUYgLyogQWlyRHVtcEFzSlMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQWly
RHVtcEFzSlMuaDsgcGF0aCA9IGIzL2Fpci9BaXJEdW1wQXNKUy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlEQzYwNUI1OTFDRTI2RTk4MDA1OTM3MTggLyogUHJvZmlsZXJFdmVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQcm9maWxlckV2ZW50LmNw
cDsgcGF0aCA9IHByb2ZpbGVyL1Byb2ZpbGVyRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNDc3NSw2ICs0Nzc5LDggQEAKIAkJCQkwRkVDODRFMDFCREFDREFDMDA4MEZG
NzQgLyogQjNQaGFzZVNjb3BlLmggKi8sCiAJCQkJMEYzNzMwOEExQzBCRDI5MTAwMDUyQkZBIC8q
IEIzUGhpQ2hpbGRyZW4uY3BwICovLAogCQkJCTBGMzczMDhCMUMwQkQyOTEwMDA1MkJGQSAvKiBC
M1BoaUNoaWxkcmVuLmggKi8sCisJCQkJREM0NTRCODYxQ0ZGNkZFNTAwNEMxOEFGIC8qIEIzUG9s
eUp1bXBWYWx1ZS5jcHAgKi8sCisJCQkJREM0NTRCODcxQ0ZGNkZFNTAwNEMxOEFGIC8qIEIzUG9s
eUp1bXBWYWx1ZS5oICovLAogCQkJCTBGRUM4NEUxMUJEQUNEQUMwMDgwRkY3NCAvKiBCM1Byb2Nl
ZHVyZS5jcHAgKi8sCiAJCQkJMEZFQzg0RTIxQkRBQ0RBQzAwODBGRjc0IC8qIEIzUHJvY2VkdXJl
LmggKi8sCiAJCQkJMEZFQzg0RTMxQkRBQ0RBQzAwODBGRjc0IC8qIEIzUHJvY2VkdXJlSW5saW5l
cy5oICovLApAQCAtNzE2Myw2ICs3MTY5LDcgQEAKIAkJCQkwRjhGOTQ0MTE2Njc2MzMyMDBENjE5
NzEgLyogQ29kZUJsb2NrSGFzaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDOTdGMzQxODIwMjBE
NzAwMkM5QjI2IC8qIENvZGVCbG9ja0pldHRpc29uaW5nV2F0Y2hwb2ludC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEZEOEEzMTQxN0Q0MzI2QzAwQ0EyQzQwIC8qIENvZGVCbG9ja1NldC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJREM0NTRCODkxQ0ZGNkZFQTAwNEMxOEFGIC8qIEIzUG9seUp1bXBWYWx1
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5NkVCQjMxNjY3NkVGNjAwOEJBREUzIC8qIENvZGVC
bG9ja1dpdGhKSVRUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzdGMTgyMjE2NDA4OEIyMDA2
NDBBNDcgLyogQ29kZUNhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OUNDMEI2MzE4QkU5OTUw
MDA2Q0VCQ0MgLyogQ29kZUdlbmVyYXRvclJlcGxheUlucHV0cy5weSBpbiBIZWFkZXJzICovLApA
QCAtOTQ0Nyw2ICs5NDU0LDcgQEAKIAkJCQk3MDlGQjg2QjFBRTMzNUM2MDAzOUQwNjkgLyogV2Vh
a1NldFByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyQTRFQzkwQjE4NjBENkMyMDA5
NEY3ODIgLyogV3JpdGVCYXJyaWVyQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQzgx
NTBCMTQwNDNDMEUwMENGQTYwMyAvKiBXcml0ZUJhcnJpZXJTdXBwb3J0LmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCURDNDU0Qjg4MUNGRjZGRTcwMDRDMThBRiAvKiBCM1BvbHlKdW1wVmFsdWUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTdFNUFCM0ExNzk5RTRCMjAwRDI4MzNEIC8qIFg4NkRpc2Fz
c2VtYmxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjJCQkQ5NzFDNUZGM0Y1MDAyM0VGMjMg
LyogQjNWYXJpYWJsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NjNDNkQ5QzE1MjExMTFBMDA1
ODVFNEUgLyogWWFyckNhbm9uaWNhbGl6ZVVDUzIuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
Ymxlclg4NkNvbW1vbi5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgJKHdvcmtpbmcgY29weSkKQEAg
LTIyNjMsNiArMjI2MywxMiBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLmptcF9tKGFk
ZHJlc3Mub2Zmc2V0LCBhZGRyZXNzLmJhc2UpOwogICAgIH0KIAorICAgIC8vIEFkZHJlc3MgaXMg
YSBtZW1vcnkgbG9jYXRpb24gY29udGFpbmluZyB0aGUgYWRkcmVzcyB0byBqdW1wIHRvCisgICAg
dm9pZCBqdW1wKEJhc2VJbmRleCBhZGRyZXNzKQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIu
am1wX20oYWRkcmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFzZSwgYWRkcmVzcy5pbmRleCwgYWRkcmVz
cy5zY2FsZSk7CisgICAgfQorCiAKICAgICAvLyBBcml0aG1ldGljIGNvbnRyb2wgZmxvdyBvcGVy
YXRpb25zOgogICAgIC8vCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4
NkFzc2VtYmxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvWDg2QXNzZW1ibGVyLmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTE5ODMsNiAr
MTk4MywxMSBAQCBwdWJsaWM6CiAgICAgICAgIG1fZm9ybWF0dGVyLm9uZUJ5dGVPcChPUF9HUk9V
UDVfRXYsIEdST1VQNV9PUF9KTVBOLCBiYXNlLCBvZmZzZXQpOwogICAgIH0KICAgICAKKyAgICB2
b2lkIGptcF9tKGludCBvZmZzZXQsIFJlZ2lzdGVySUQgYmFzZSwgUmVnaXN0ZXJJRCBpbmRleCwg
aW50IHNjYWxlKQorICAgIHsKKyAgICAgICAgbV9mb3JtYXR0ZXIub25lQnl0ZU9wKE9QX0dST1VQ
NV9FdiwgR1JPVVA1X09QX0pNUE4sIGJhc2UsIGluZGV4LCBzY2FsZSwgb2Zmc2V0KTsKKyAgICB9
CisgICAgCiAjaWYgIUNQVShYODZfNjQpCiAgICAgdm9pZCBqbXBfbShjb25zdCB2b2lkKiBhZGRy
ZXNzKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2su
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2su
Y3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYXNp
Y0Jsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNiBAQAogCiAjaW5jbHVkZSAi
QjNCYXNpY0Jsb2NrSW5saW5lcy5oIgogI2luY2x1ZGUgIkIzQmFzaWNCbG9ja1V0aWxzLmgiCi0j
aW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKICNpbmNsdWRlICJCM1Byb2NlZHVyZS5oIgogI2lu
Y2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSA8d3RmL0xpc3REdW1wLmg+CkBAIC04
NCw5ICs4Myw0MSBAQCBWYWx1ZSogQmFzaWNCbG9jazo6YXBwZW5kSW50Q29uc3RhbnQoUHJvCiAg
ICAgcmV0dXJuIGFwcGVuZEludENvbnN0YW50KHByb2MsIGxpa2VWYWx1ZS0+b3JpZ2luKCksIGxp
a2VWYWx1ZS0+dHlwZSgpLCB2YWx1ZSk7CiB9CiAKK3ZvaWQgQmFzaWNCbG9jazo6Y2xlYXJTdWNj
ZXNzb3JzKCkKK3sKKyAgICBtX3N1Y2Nlc3NvcnMuY2xlYXIoKTsKK30KKwordm9pZCBCYXNpY0Js
b2NrOjphcHBlbmRTdWNjZXNzb3IoY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YXJnZXQpCit7Cisg
ICAgbV9zdWNjZXNzb3JzLmFwcGVuZCh0YXJnZXQpOworfQorCit2b2lkIEJhc2ljQmxvY2s6OnNl
dFN1Y2Nlc3NvcnMoY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YXJnZXQpCit7CisgICAgbV9zdWNj
ZXNzb3JzLnJlc2l6ZSgxKTsKKyAgICBtX3N1Y2Nlc3NvcnNbMF0gPSB0YXJnZXQ7Cit9CisKK3Zv
aWQgQmFzaWNCbG9jazo6c2V0U3VjY2Vzc29ycyhjb25zdCBGcmVxdWVudGVkQmxvY2smIHRha2Vu
LCBjb25zdCBGcmVxdWVudGVkQmxvY2smIG5vdFRha2VuKQoreworICAgIG1fc3VjY2Vzc29ycy5y
ZXNpemUoMik7CisgICAgbV9zdWNjZXNzb3JzWzBdID0gdGFrZW47CisgICAgbV9zdWNjZXNzb3Jz
WzFdID0gbm90VGFrZW47Cit9CisKIGJvb2wgQmFzaWNCbG9jazo6cmVwbGFjZVN1Y2Nlc3NvcihC
YXNpY0Jsb2NrKiBmcm9tLCBCYXNpY0Jsb2NrKiB0bykKIHsKLSAgICByZXR1cm4gbGFzdCgpLT5h
czxDb250cm9sVmFsdWU+KCktPnJlcGxhY2VTdWNjZXNzb3IoZnJvbSwgdG8pOworICAgIGJvb2wg
cmVzdWx0ID0gZmFsc2U7CisgICAgZm9yIChCYXNpY0Jsb2NrKiYgc3VjY2Vzc29yIDogc3VjY2Vz
c29yQmxvY2tzKCkpIHsKKyAgICAgICAgaWYgKHN1Y2Nlc3NvciA9PSBmcm9tKSB7CisgICAgICAg
ICAgICBzdWNjZXNzb3IgPSB0bzsKKyAgICAgICAgICAgIHJlc3VsdCA9IHRydWU7CisgICAgICAg
ICAgICAKKyAgICAgICAgICAgIC8vIEtlZXAgbG9vcGluZyBiZWNhdXNlIGEgc3VjY2Vzc29yIG1h
eSBiZSBtZW50aW9uZWQgbXVsdGlwbGUgdGltZXMsIGxpa2UgaW4gYSBTd2l0Y2guCisgICAgICAg
IH0KKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogYm9vbCBCYXNpY0Jsb2NrOjphZGRQ
cmVkZWNlc3NvcihCYXNpY0Jsb2NrKiBibG9jaykKQEAgLTEwOSw2ICsxNDAsMTUgQEAgdm9pZCBC
YXNpY0Jsb2NrOjp1cGRhdGVQcmVkZWNlc3NvcnNBZnRlcgogICAgIEIzOjp1cGRhdGVQcmVkZWNl
c3NvcnNBZnRlcih0aGlzKTsKIH0KIAorYm9vbCBCYXNpY0Jsb2NrOjppc0Nsb25lYWJsZSgpIGNv
bnN0Cit7CisgICAgZm9yIChWYWx1ZSogdmFsdWUgOiAqdGhpcykgeworICAgICAgICBpZiAoIXZh
bHVlLT5pc0Nsb25lYWJsZSgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAg
ICByZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBCYXNpY0Jsb2NrOjpkdW1wKFByaW50U3RyZWFtJiBv
dXQpIGNvbnN0CiB7CiAgICAgb3V0LnByaW50KGR1bXBQcmVmaXgsIG1faW5kZXgpOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2suaAkocmV2aXNpb24gMjAyODA5KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5oCSh3b3JraW5nIGNvcHkp
CkBAIC00Nyw3ICs0Nyw3IEBAIGNsYXNzIEJhc2ljQmxvY2sgewogcHVibGljOgogICAgIHR5cGVk
ZWYgVmVjdG9yPFZhbHVlKj4gVmFsdWVMaXN0OwogICAgIHR5cGVkZWYgVmVjdG9yPEJhc2ljQmxv
Y2sqLCAyPiBQcmVkZWNlc3Nvckxpc3Q7Ci0gICAgdHlwZWRlZiBWZWN0b3I8RnJlcXVlbnRlZEJs
b2NrLCAyPiBTdWNjZXNzb3JMaXN0OyAvLyBUaGlzIG1hdGNoZXMgQ29udHJvbFZhbHVlOjpTdWNj
ZXNzb3JMaXN0CisgICAgdHlwZWRlZiBWZWN0b3I8RnJlcXVlbnRlZEJsb2NrLCAyPiBTdWNjZXNz
b3JMaXN0OwogCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGR1bXBQcmVmaXg7CiAKQEAg
LTg3LDE4ICs4NywzNiBAQCBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVmFsdWVUeXBl
LCB0eXBlbmFtZS4uLiBBcmd1bWVudHM+CiAgICAgVmFsdWVUeXBlKiByZXBsYWNlTGFzdFdpdGhO
ZXcoUHJvY2VkdXJlJiwgQXJndW1lbnRzLi4uKTsKIAotICAgIHVuc2lnbmVkIG51bVN1Y2Nlc3Nv
cnMoKSBjb25zdDsKLSAgICBjb25zdCBGcmVxdWVudGVkQmxvY2smIHN1Y2Nlc3Nvcih1bnNpZ25l
ZCBpbmRleCkgY29uc3Q7Ci0gICAgRnJlcXVlbnRlZEJsb2NrJiBzdWNjZXNzb3IodW5zaWduZWQg
aW5kZXgpOwotICAgIGNvbnN0IFN1Y2Nlc3Nvckxpc3QmIHN1Y2Nlc3NvcnMoKSBjb25zdDsKLSAg
ICBTdWNjZXNzb3JMaXN0JiBzdWNjZXNzb3JzKCk7Ci0KLSAgICBCYXNpY0Jsb2NrKiBzdWNjZXNz
b3JCbG9jayh1bnNpZ25lZCBpbmRleCkgY29uc3Q7Ci0gICAgQmFzaWNCbG9jayomIHN1Y2Nlc3Nv
ckJsb2NrKHVuc2lnbmVkIGluZGV4KTsKLSAgICBTdWNjZXNzb3JDb2xsZWN0aW9uPEJhc2ljQmxv
Y2ssIFN1Y2Nlc3Nvckxpc3Q+IHN1Y2Nlc3NvckJsb2NrcygpOwotICAgIFN1Y2Nlc3NvckNvbGxl
Y3Rpb248Y29uc3QgQmFzaWNCbG9jaywgY29uc3QgU3VjY2Vzc29yTGlzdD4gc3VjY2Vzc29yQmxv
Y2tzKCkgY29uc3Q7CisgICAgdW5zaWduZWQgbnVtU3VjY2Vzc29ycygpIGNvbnN0IHsgcmV0dXJu
IG1fc3VjY2Vzc29ycy5zaXplKCk7IH0KKyAgICBjb25zdCBGcmVxdWVudGVkQmxvY2smIHN1Y2Nl
c3Nvcih1bnNpZ25lZCBpbmRleCkgY29uc3QgeyByZXR1cm4gbV9zdWNjZXNzb3JzW2luZGV4XTsg
fQorICAgIEZyZXF1ZW50ZWRCbG9jayYgc3VjY2Vzc29yKHVuc2lnbmVkIGluZGV4KSB7IHJldHVy
biBtX3N1Y2Nlc3NvcnNbaW5kZXhdOyB9CisgICAgY29uc3QgU3VjY2Vzc29yTGlzdCYgc3VjY2Vz
c29ycygpIGNvbnN0IHsgcmV0dXJuIG1fc3VjY2Vzc29yczsgfQorICAgIFN1Y2Nlc3Nvckxpc3Qm
IHN1Y2Nlc3NvcnMoKSB7IHJldHVybiBtX3N1Y2Nlc3NvcnM7IH0KKyAgICAKKyAgICB2b2lkIGNs
ZWFyU3VjY2Vzc29ycygpOworICAgIHZvaWQgYXBwZW5kU3VjY2Vzc29yKGNvbnN0IEZyZXF1ZW50
ZWRCbG9jayYpOworICAgIHZvaWQgc2V0U3VjY2Vzc29ycyhjb25zdCBGcmVxdWVudGVkQmxvY2sm
KTsKKyAgICB2b2lkIHNldFN1Y2Nlc3NvcnMoY29uc3QgRnJlcXVlbnRlZEJsb2NrJiwgY29uc3Qg
RnJlcXVlbnRlZEJsb2NrJik7CisKKyAgICBCYXNpY0Jsb2NrKiBzdWNjZXNzb3JCbG9jayh1bnNp
Z25lZCBpbmRleCkgY29uc3QgeyByZXR1cm4gc3VjY2Vzc29yKGluZGV4KS5ibG9jaygpOyB9Cisg
ICAgQmFzaWNCbG9jayomIHN1Y2Nlc3NvckJsb2NrKHVuc2lnbmVkIGluZGV4KSB7IHJldHVybiBz
dWNjZXNzb3IoaW5kZXgpLmJsb2NrKCk7IH0KKyAgICBTdWNjZXNzb3JDb2xsZWN0aW9uPEJhc2lj
QmxvY2ssIFN1Y2Nlc3Nvckxpc3Q+IHN1Y2Nlc3NvckJsb2NrcygpCisgICAgeworICAgICAgICBy
ZXR1cm4gU3VjY2Vzc29yQ29sbGVjdGlvbjxCYXNpY0Jsb2NrLCBTdWNjZXNzb3JMaXN0PihzdWNj
ZXNzb3JzKCkpOworICAgIH0KKyAgICBTdWNjZXNzb3JDb2xsZWN0aW9uPGNvbnN0IEJhc2ljQmxv
Y2ssIGNvbnN0IFN1Y2Nlc3Nvckxpc3Q+IHN1Y2Nlc3NvckJsb2NrcygpIGNvbnN0CisgICAgewor
ICAgICAgICByZXR1cm4gU3VjY2Vzc29yQ29sbGVjdGlvbjxjb25zdCBCYXNpY0Jsb2NrLCBTdWNj
ZXNzb3JMaXN0PihzdWNjZXNzb3JzKCkpOworICAgIH0KIAogICAgIGJvb2wgcmVwbGFjZVN1Y2Nl
c3NvcihCYXNpY0Jsb2NrKiBmcm9tLCBCYXNpY0Jsb2NrKiB0byk7CisgICAgCisgICAgLy8gVGhp
cyBpcyBvbmx5IHZhbGlkIGZvciBKdW1wIGFuZCBCcmFuY2guCisgICAgY29uc3QgRnJlcXVlbnRl
ZEJsb2NrJiB0YWtlbigpIGNvbnN0OworICAgIEZyZXF1ZW50ZWRCbG9jayYgdGFrZW4oKTsKKyAg
ICAvLyBUaGlzIGlzIG9ubHkgdmxhaWQgZm9yIEJyYW5jaC4KKyAgICBjb25zdCBGcmVxdWVudGVk
QmxvY2smIG5vdFRha2VuKCkgY29uc3Q7CisgICAgRnJlcXVlbnRlZEJsb2NrJiBub3RUYWtlbigp
IGNvbnN0OwogCiAgICAgdW5zaWduZWQgbnVtUHJlZGVjZXNzb3JzKCkgY29uc3QgeyByZXR1cm4g
bV9wcmVkZWNlc3NvcnMuc2l6ZSgpOyB9CiAgICAgQmFzaWNCbG9jayogcHJlZGVjZXNzb3IodW5z
aWduZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fcHJlZGVjZXNzb3JzW2luZGV4XTsgfQpAQCAt
MTE1LDYgKzEzMyw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZVByZWRlY2Vzc29yc0FmdGVy
KCk7CiAKICAgICBkb3VibGUgZnJlcXVlbmN5KCkgY29uc3QgeyByZXR1cm4gbV9mcmVxdWVuY3k7
IH0KKyAgICAKKyAgICBib29sIGlzQ2xvbmVhYmxlKCkgY29uc3Q7CiAKICAgICB2b2lkIGR1bXAo
UHJpbnRTdHJlYW0mKSBjb25zdDsKICAgICB2b2lkIGRlZXBEdW1wKGNvbnN0IFByb2NlZHVyZSYs
IFByaW50U3RyZWFtJikgY29uc3Q7CkBAIC0xMzAsNiArMTUwLDcgQEAgcHJpdmF0ZToKICAgICB1
bnNpZ25lZCBtX2luZGV4OwogICAgIFZhbHVlTGlzdCBtX3ZhbHVlczsKICAgICBQcmVkZWNlc3Nv
ckxpc3QgbV9wcmVkZWNlc3NvcnM7CisgICAgU3VjY2Vzc29yTGlzdCBtX3N1Y2Nlc3NvcnM7CiAg
ICAgZG91YmxlIG1fZnJlcXVlbmN5OwogfTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzQmFzaWNCbG9ja0lubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNCYXNpY0Jsb2NrSW5saW5lcy5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrSW5saW5lcy5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yOSw3ICsyOSw2IEBACiAjaWYgRU5BQkxFKEIzX0pJVCkKIAogI2luY2x1ZGUgIkIzQmFz
aWNCbG9jay5oIgotI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNQcm9j
ZWR1cmVJbmxpbmVzLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewpAQCAtNTgs
NDkgKzU3LDI4IEBAIFZhbHVlVHlwZSogQmFzaWNCbG9jazo6cmVwbGFjZUxhc3RXaXRoTmUKICAg
ICByZXR1cm4gcmVzdWx0OwogfQogCi1pbmxpbmUgdW5zaWduZWQgQmFzaWNCbG9jazo6bnVtU3Vj
Y2Vzc29ycygpIGNvbnN0Citjb25zdCBGcmVxdWVudGVkQmxvY2smIEJhc2ljQmxvY2s6OnRha2Vu
KCkgY29uc3QKIHsKLSAgICByZXR1cm4gbGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCktPm51bVN1
Y2Nlc3NvcnMoKTsKKyAgICBBU1NFUlQobGFzdCgpLT5vcGNvZGUoKSA9PSBKdW1wIHx8IGxhc3Qo
KS0+b3Bjb2RlKCkgPT0gQnJhbmNoKTsKKyAgICByZXR1cm4gbV9zdWNjZXNzb3JzWzBdOwogfQog
Ci1pbmxpbmUgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBCYXNpY0Jsb2NrOjpzdWNjZXNzb3IodW5z
aWduZWQgaW5kZXgpIGNvbnN0CitGcmVxdWVudGVkQmxvY2smIEJhc2ljQmxvY2s6OnRha2VuKCkK
IHsKLSAgICByZXR1cm4gbGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCktPnN1Y2Nlc3NvcihpbmRl
eCk7CisgICAgQVNTRVJUKGxhc3QoKS0+b3Bjb2RlKCkgPT0gSnVtcCB8fCBsYXN0KCktPm9wY29k
ZSgpID09IEJyYW5jaCk7CisgICAgcmV0dXJuIG1fc3VjY2Vzc29yc1swXTsKIH0KIAotaW5saW5l
IEZyZXF1ZW50ZWRCbG9jayYgQmFzaWNCbG9jazo6c3VjY2Vzc29yKHVuc2lnbmVkIGluZGV4KQor
Y29uc3QgRnJlcXVlbnRlZEJsb2NrJiBCYXNpY0Jsb2NrOjpub3RUYWtlbigpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIGxhc3QoKS0+YXM8Q29udHJvbFZhbHVlPigpLT5zdWNjZXNzb3IoaW5kZXgpOwor
ICAgIEFTU0VSVChsYXN0KCktPm9wY29kZSgpID09IEJyYW5jaCk7CisgICAgcmV0dXJuIG1fc3Vj
Y2Vzc29yc1sxXTsKIH0KIAotaW5saW5lIGNvbnN0IEJhc2ljQmxvY2s6OlN1Y2Nlc3Nvckxpc3Qm
IEJhc2ljQmxvY2s6OnN1Y2Nlc3NvcnMoKSBjb25zdAorRnJlcXVlbnRlZEJsb2NrJiBCYXNpY0Js
b2NrOjpub3RUYWtlbigpCiB7Ci0gICAgcmV0dXJuIGxhc3QoKS0+YXM8Q29udHJvbFZhbHVlPigp
LT5zdWNjZXNzb3JzKCk7Ci19Ci0KLWlubGluZSBCYXNpY0Jsb2NrOjpTdWNjZXNzb3JMaXN0JiBC
YXNpY0Jsb2NrOjpzdWNjZXNzb3JzKCkKLXsKLSAgICByZXR1cm4gbGFzdCgpLT5hczxDb250cm9s
VmFsdWU+KCktPnN1Y2Nlc3NvcnMoKTsKLX0KLQotaW5saW5lIEJhc2ljQmxvY2sqIEJhc2ljQmxv
Y2s6OnN1Y2Nlc3NvckJsb2NrKHVuc2lnbmVkIGluZGV4KSBjb25zdAotewotICAgIHJldHVybiBz
dWNjZXNzb3IoaW5kZXgpLmJsb2NrKCk7Ci19Ci0KLWlubGluZSBCYXNpY0Jsb2NrKiYgQmFzaWNC
bG9jazo6c3VjY2Vzc29yQmxvY2sodW5zaWduZWQgaW5kZXgpCi17Ci0gICAgcmV0dXJuIHN1Y2Nl
c3NvcihpbmRleCkuYmxvY2soKTsKLX0KLQotaW5saW5lIFN1Y2Nlc3NvckNvbGxlY3Rpb248QmFz
aWNCbG9jaywgQmFzaWNCbG9jazo6U3VjY2Vzc29yTGlzdD4gQmFzaWNCbG9jazo6c3VjY2Vzc29y
QmxvY2tzKCkKLXsKLSAgICByZXR1cm4gU3VjY2Vzc29yQ29sbGVjdGlvbjxCYXNpY0Jsb2NrLCBT
dWNjZXNzb3JMaXN0PihzdWNjZXNzb3JzKCkpOwotfQotCi1pbmxpbmUgU3VjY2Vzc29yQ29sbGVj
dGlvbjxjb25zdCBCYXNpY0Jsb2NrLCBjb25zdCBCYXNpY0Jsb2NrOjpTdWNjZXNzb3JMaXN0PiBC
YXNpY0Jsb2NrOjpzdWNjZXNzb3JCbG9ja3MoKSBjb25zdAotewotICAgIHJldHVybiBTdWNjZXNz
b3JDb2xsZWN0aW9uPGNvbnN0IEJhc2ljQmxvY2ssIGNvbnN0IFN1Y2Nlc3Nvckxpc3Q+KHN1Y2Nl
c3NvcnMoKSk7CisgICAgQVNTRVJUKGxhc3QoKS0+b3Bjb2RlKCkgPT0gQnJhbmNoKTsKKyAgICBy
ZXR1cm4gbV9zdWNjZXNzb3JzWzFdOwogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jsb2NrSW5zZXJ0aW9uU2V0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCbG9ja0luc2VydGlvblNldC5j
cHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jsb2Nr
SW5zZXJ0aW9uU2V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzgsOCArNzgsOCBAQCBCYXNpY0Js
b2NrKiBCbG9ja0luc2VydGlvblNldDo6c3BsaXRGb3J3CiAgICAgICAgIHJlc3VsdC0+bV92YWx1
ZXNbaV0gPSBibG9jay0+bV92YWx1ZXNbaV07CiAKICAgICAvLyBNYWtlIHRoZSBuZXcgYmxvY2sg
anVtcCB0byAnYmxvY2snLgotICAgIHJlc3VsdC0+bV92YWx1ZXNbdmFsdWVJbmRleF0gPQotICAg
ICAgICBtX3Byb2MuYWRkPENvbnRyb2xWYWx1ZT4oSnVtcCwgdmFsdWUtPm9yaWdpbigpLCBGcmVx
dWVudGVkQmxvY2soYmxvY2spKTsKKyAgICByZXN1bHQtPm1fdmFsdWVzW3ZhbHVlSW5kZXhdID0g
bV9wcm9jLmFkZDxWYWx1ZT4oSnVtcCwgdmFsdWUtPm9yaWdpbigpKTsKKyAgICByZXN1bHQtPnNl
dFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2NrKGJsb2NrKSk7CiAKICAgICAvLyBJZiB3ZSBoYWQg
aW5zZXJ0ZWQgdGhpbmdzIGludG8gJ2Jsb2NrJyBiZWZvcmUgdGhpcywgZXhlY3V0ZSB0aG9zZSBp
bnNlcnRpb25zIG5vdy4KICAgICBpZiAoaW5zZXJ0aW9uU2V0KQpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzQnJlYWtDcml0aWNhbEVkZ2VzLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCcmVha0NyaXRpY2FsRWRnZXMuY3BwCShyZXZpc2lvbiAy
MDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCcmVha0NyaXRpY2FsRWRnZXMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw2IEBACiAKICNpbmNsdWRlICJCM0Jhc2lj
QmxvY2tJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNCbG9ja0luc2VydGlvblNldC5oIgotI2luY2x1
ZGUgIkIzQ29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNQcm9jZWR1cmVJbmxpbmVzLmgiCiAj
aW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKIApAQCAtNTAsOCArNDksOCBAQCB2b2lkIGJyZWFr
Q3JpdGljYWxFZGdlcyhQcm9jZWR1cmUmIHByb2MpCiAKICAgICAgICAgICAgIEJhc2ljQmxvY2sq
IHBhZCA9CiAgICAgICAgICAgICAgICAgaW5zZXJ0aW9uU2V0Lmluc2VydEJlZm9yZShzdWNjZXNz
b3IsIHN1Y2Nlc3Nvci0+ZnJlcXVlbmN5KCkpOwotICAgICAgICAgICAgcGFkLT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKLSAgICAgICAgICAgICAgICBwcm9jLCBKdW1wLCBzdWNjZXNzb3ItPmF0
KDApLT5vcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHN1Y2Nlc3NvcikpOworICAgICAgICAgICAg
cGFkLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEp1bXAsIHN1Y2Nlc3Nvci0+YXQoMCktPm9yaWdp
bigpKTsKKyAgICAgICAgICAgIHBhZC0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2soc3Vj
Y2Vzc29yKSk7CiAgICAgICAgICAgICBwYWQtPmFkZFByZWRlY2Vzc29yKGJsb2NrKTsKICAgICAg
ICAgICAgIHN1Y2Nlc3Nvci0+cmVwbGFjZVByZWRlY2Vzc29yKGJsb2NrLCBwYWQpOwogICAgICAg
ICAgICAgc3VjY2Vzc29yID0gcGFkOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
Q29tbW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29tbW9u
LmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbW1v
bi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDYgKzI4LDggQEAKIAogI2lmIEVOQUJMRShCM19KSVQpCiAK
KyNpbmNsdWRlICJKU0V4cG9ydE1hY3Jvcy5oIgorCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNl
IEIzIHsKIAogaW5saW5lIGJvb2wgaXM2NEJpdCgpIHsgcmV0dXJuIHNpemVvZih2b2lkKikgPT0g
ODsgfQpAQCAtMzgsNyArNDAsNyBAQCBlbnVtIEIzQ29tcGxpdGF0aW9uTW9kZSB7CiAgICAgQWly
TW9kZQogfTsKIAotYm9vbCBzaG91bGREdW1wSVIoQjNDb21wbGl0YXRpb25Nb2RlKTsKK0pTX0VY
UE9SVF9QUklWQVRFIGJvb2wgc2hvdWxkRHVtcElSKEIzQ29tcGxpdGF0aW9uTW9kZSk7CiBib29s
IHNob3VsZER1bXBJUkF0RWFjaFBoYXNlKEIzQ29tcGxpdGF0aW9uTW9kZSk7CiBib29sIHNob3Vs
ZFZhbGlkYXRlSVIoKTsKIGJvb2wgc2hvdWxkVmFsaWRhdGVJUkF0RWFjaFBoYXNlKCk7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb250cm9sVmFsdWUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb250cm9sVmFsdWUuaAkocmV2aXNpb24gMjAy
ODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29udHJvbFZhbHVlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTQ2LDkgKzQ2LDEwIEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBSZXR1cm46
CiAgICAgICAgIGNhc2UgT29wczoKICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBj
YXNlIFN3aXRjaDogCi0gICAgICAgICAgICAvLyBUaGlzIGlzIGhlcmUgYmVjYXVzZSBTd2l0Y2hW
YWx1ZSBpcyBhIHN1YmNsYXNzIG9mIENvbnRyb2xWYWx1ZSwgc28gd2Ugd2FudAotICAgICAgICAg
ICAgLy8gc3dpdGNoVmFsdWUtPmFzPENvbnRyb2xWYWx1ZT4oKSB0byByZXR1cm4gbm9uLW51bGwu
CisgICAgICAgIGNhc2UgU3dpdGNoOgorICAgICAgICBjYXNlIFBvbHlKdW1wOgorICAgICAgICAg
ICAgLy8gVGhpcyBpcyBoZXJlIGJlY2F1c2UgU3dpdGNoVmFsdWUgYW5kIFBvbHlKdW1wVmFsdWUg
YXJlIHN1YmNsYXNzZXMgb2YgQ29udHJvbFZhbHVlLAorICAgICAgICAgICAgLy8gc28gd2Ugd2Fu
dCB0aGluZ3MgbGlrZSBzd2l0Y2hWYWx1ZS0+YXM8Q29udHJvbFZhbHVlPigpIHRvIHJldHVybiBu
b24tbnVsbC4KICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBkZWZhdWx0OgogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNzcsNyArNzgsNyBAQCBwdWJsaWM6CiAgICAgfQog
CiAgICAgYm9vbCByZXBsYWNlU3VjY2Vzc29yKEJhc2ljQmxvY2sqIGZyb20sIEJhc2ljQmxvY2sq
IHRvKTsKLQorICAgIAogICAgIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgdGFrZW4oKSBjb25zdAog
ICAgIHsKICAgICAgICAgQVNTRVJUKG9wY29kZSgpID09IEp1bXAgfHwgb3Bjb2RlKCkgPT0gQnJh
bmNoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0RhdGFTZWN0aW9uLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEYXRhU2VjdGlvbi5jcHAJ
KHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0RhdGFTZWN0
aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0zMSw3ICszMSw3IEBACiBuYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIEIzIHsKIAogRGF0YVNlY3Rpb246OkRhdGFTZWN0aW9uKHNpemVfdCBzaXplKQotICAg
IDogbV9kYXRhKGZhc3RNYWxsb2Moc2l6ZSkpCisgICAgOiBtX2RhdGEoZmFzdFplcm9lZE1hbGxv
YyhzaXplKSkKICAgICAsIG1fc2l6ZShzaXplKQogewogfQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzRHVwbGljYXRlVGFpbHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0R1cGxpY2F0ZVRhaWxzLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRHVwbGljYXRlVGFpbHMuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zMCw3ICszMCw2IEBACiAKICNpbmNsdWRlICJCM0Jhc2ljQmxvY2tJbmxpbmVzLmgi
CiAjaW5jbHVkZSAiQjNCcmVha0NyaXRpY2FsRWRnZXMuaCIKLSNpbmNsdWRlICJCM0NvbnRyb2xW
YWx1ZS5oIgogI2luY2x1ZGUgIkIzRG9taW5hdG9ycy5oIgogI2luY2x1ZGUgIkIzRml4U1NBLmgi
CiAjaW5jbHVkZSAiQjNJbmRleFNldC5oIgpAQCAtNzIsOSArNzEsMTEgQEAgcHVibGljOgogICAg
ICAgICBJbmRleFNldDxCYXNpY0Jsb2NrPiBjYW5kaWRhdGVzOwogCiAgICAgICAgIGZvciAoQmFz
aWNCbG9jayogYmxvY2sgOiBtX3Byb2MpIHsKLSAgICAgICAgICAgIGlmIChibG9jay0+c2l6ZSgp
ID4gbV9tYXhTaXplIHx8IGJsb2NrLT5udW1TdWNjZXNzb3JzKCkgPiBtX21heFN1Y2Nlc3NvcnMp
CisgICAgICAgICAgICBpZiAoYmxvY2stPnNpemUoKSA+IG1fbWF4U2l6ZQorICAgICAgICAgICAg
ICAgIHx8IGJsb2NrLT5udW1TdWNjZXNzb3JzKCkgPiBtX21heFN1Y2Nlc3NvcnMKKyAgICAgICAg
ICAgICAgICB8fCAhYmxvY2stPmlzQ2xvbmVhYmxlKCkpCiAgICAgICAgICAgICAgICAgY29udGlu
dWU7Ci0KKyAgICAgICAgICAgIAogICAgICAgICAgICAgY2FuZGlkYXRlcy5hZGQoYmxvY2spOwog
ICAgICAgICB9CiAKQEAgLTk3LDExICs5OCwxMCBAQCBwdWJsaWM6CiAgICAgICAgIH0KIAogICAg
ICAgICBmb3IgKEJhc2ljQmxvY2sqIGJsb2NrIDogbV9wcm9jKSB7Ci0gICAgICAgICAgICBDb250
cm9sVmFsdWUqIGp1bXAgPSBibG9jay0+bGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCk7Ci0gICAg
ICAgICAgICBpZiAoanVtcC0+b3Bjb2RlKCkgIT0gSnVtcCkKKyAgICAgICAgICAgIGlmIChibG9j
ay0+bGFzdCgpLT5vcGNvZGUgIT0gSnVtcCkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAot
ICAgICAgICAgICAgQmFzaWNCbG9jayogdGFpbCA9IGp1bXAtPnN1Y2Nlc3NvckJsb2NrKDApOwor
ICAgICAgICAgICAgQmFzaWNCbG9jayogdGFpbCA9IGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKTsK
ICAgICAgICAgICAgIGlmICghY2FuZGlkYXRlcy5jb250YWlucyh0YWlsKSkKICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKIApAQCAtMTMwLDYgKzEzMCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAg
ICAgICAgICAgbWFwLmFkZCh2YWx1ZSwgY2xvbmUpOwogICAgICAgICAgICAgICAgIGJsb2NrLT5h
cHBlbmQoY2xvbmUpOwogICAgICAgICAgICAgfQorICAgICAgICAgICAgYmxvY2stPnN1Y2Nlc3Nv
cnMoKSA9IHRhaWwtPnN1Y2Nlc3NvcnMoKTsKICAgICAgICAgfQogCiAgICAgICAgIG1fcHJvYy5y
ZXNldFJlYWNoYWJpbGl0eSgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRml4
U1NBLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNGaXhTU0Eu
Y3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNGaXhT
U0EuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw2IEBACiAKICNpbmNsdWRlICJCM0Jh
c2ljQmxvY2tJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNCcmVha0NyaXRpY2FsRWRnZXMuaCIKLSNp
bmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzRG9taW5hdG9ycy5oIgogI2lu
Y2x1ZGUgIkIzSW5kZXhTZXQuaCIKICNpbmNsdWRlICJCM0luc2VydGlvblNldElubGluZXMuaCIK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0ZvbGRQYXRoQ29uc3RhbnRzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNGb2xkUGF0aENvbnN0YW50
cy5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Zv
bGRQYXRoQ29uc3RhbnRzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNiBAQAogI2lm
IEVOQUJMRShCM19KSVQpCiAKICNpbmNsdWRlICJCM0Jhc2ljQmxvY2tJbmxpbmVzLmgiCi0jaW5j
bHVkZSAiQjNDb250cm9sVmFsdWUuaCIKICNpbmNsdWRlICJCM0RvbWluYXRvcnMuaCIKICNpbmNs
dWRlICJCM0luc2VydGlvblNldElubGluZXMuaCIKICNpbmNsdWRlICJCM1BoYXNlU2NvcGUuaCIK
QEAgLTg3LDI0ICs4NiwyNCBAQCBwdWJsaWM6CiAgICAgICAgIH07CiAgICAgICAgIAogICAgICAg
ICBmb3IgKEJhc2ljQmxvY2sqIGJsb2NrIDogbV9wcm9jKSB7Ci0gICAgICAgICAgICBDb250cm9s
VmFsdWUqIGJyYW5jaCA9IGJsb2NrLT5sYXN0KCktPmFzPENvbnRyb2xWYWx1ZT4oKTsKKyAgICAg
ICAgICAgIFZhbHVlKiBicmFuY2ggPSBibG9jay0+bGFzdCgpOwogICAgICAgICAgICAgc3dpdGNo
IChicmFuY2gtPm9wY29kZSgpKSB7CiAgICAgICAgICAgICBjYXNlIEJyYW5jaDoKLSAgICAgICAg
ICAgICAgICBpZiAoYnJhbmNoLT5zdWNjZXNzb3JCbG9jaygwKSA9PSBicmFuY2gtPnN1Y2Nlc3Nv
ckJsb2NrKDEpKQorICAgICAgICAgICAgICAgIGlmIChibG9jay0+c3VjY2Vzc29yQmxvY2soMCkg
PT0gYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDEpKQogICAgICAgICAgICAgICAgICAgICBjb250aW51
ZTsKICAgICAgICAgICAgICAgICBhZGRPdmVycmlkZSgKICAgICAgICAgICAgICAgICAgICAgYmxv
Y2ssIGJyYW5jaC0+Y2hpbGQoMCksCi0gICAgICAgICAgICAgICAgICAgIE92ZXJyaWRlOjpub25a
ZXJvKGJyYW5jaC0+c3VjY2Vzc29yQmxvY2soMCkpKTsKKyAgICAgICAgICAgICAgICAgICAgT3Zl
cnJpZGU6Om5vblplcm8oYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDApKSk7CiAgICAgICAgICAgICAg
ICAgYWRkT3ZlcnJpZGUoCiAgICAgICAgICAgICAgICAgICAgIGJsb2NrLCBicmFuY2gtPmNoaWxk
KDApLAotICAgICAgICAgICAgICAgICAgICBPdmVycmlkZTo6Y29uc3RhbnQoYnJhbmNoLT5zdWNj
ZXNzb3JCbG9jaygxKSwgMCkpOworICAgICAgICAgICAgICAgICAgICBPdmVycmlkZTo6Y29uc3Rh
bnQoYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDEpLCAwKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICBjYXNlIFN3aXRjaDogewogICAgICAgICAgICAgICAgIEhhc2hNYXA8QmFz
aWNCbG9jayosIHVuc2lnbmVkPiB0YXJnZXRVc2VzOwotICAgICAgICAgICAgICAgIGZvciAoY29u
c3QgU3dpdGNoQ2FzZSYgc3dpdGNoQ2FzZSA6ICpicmFuY2gtPmFzPFN3aXRjaFZhbHVlPigpKQor
ICAgICAgICAgICAgICAgIGZvciAoY29uc3QgU3dpdGNoQ2FzZSYgc3dpdGNoQ2FzZSA6IGJyYW5j
aC0+YXM8U3dpdGNoVmFsdWU+KCktPmNhc2VzKGJsb2NrKSkKICAgICAgICAgICAgICAgICAgICAg
dGFyZ2V0VXNlcy5hZGQoc3dpdGNoQ2FzZS50YXJnZXRCbG9jaygpLCAwKS5pdGVyYXRvci0+dmFs
dWUrKzsKIAotICAgICAgICAgICAgICAgIGZvciAoY29uc3QgU3dpdGNoQ2FzZSYgc3dpdGNoQ2Fz
ZSA6ICpicmFuY2gtPmFzPFN3aXRjaFZhbHVlPigpKSB7CisgICAgICAgICAgICAgICAgZm9yIChj
b25zdCBTd2l0Y2hDYXNlJiBzd2l0Y2hDYXNlIDogYnJhbmNoLT5hczxTd2l0Y2hWYWx1ZT4oKS0+
Y2FzZXMoYmxvY2spKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICh0YXJnZXRVc2VzLmZpbmQo
c3dpdGNoQ2FzZS50YXJnZXRCbG9jaygpKS0+dmFsdWUgIT0gMSkKICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOwogCkBAIC0xNTgsOSArMTU3LDggQEAgcHVibGljOgogCiAgICAgICAg
ICAgICAgICAgc3dpdGNoICh2YWx1ZS0+b3Bjb2RlKCkpIHsKICAgICAgICAgICAgICAgICBjYXNl
IEJyYW5jaDogewotICAgICAgICAgICAgICAgICAgICBDb250cm9sVmFsdWUqIGJyYW5jaCA9IHZh
bHVlLT5hczxDb250cm9sVmFsdWU+KCk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChnZXRPdmVy
cmlkZShibG9jaywgYnJhbmNoLT5jaGlsZCgwKSkuaXNOb25aZXJvKSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBicmFuY2gtPmNvbnZlcnRUb0p1bXAoYnJhbmNoLT50YWtlbigpLmJsb2NrKCkp
OworICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUtPnJlcGxhY2VXaXRoSnVtcChibG9jaywg
YmxvY2stPnRha2VuKCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7
CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlck1hY3Jvcy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJNYWNyb3MuY3BwCShyZXZpc2lvbiAy
MDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlck1hY3Jvcy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMzQsNyArMzQsOSBAQAogI2luY2x1ZGUgIkIzQ29uc3RQdHJWYWx1ZS5oIgog
I2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNJbnNlcnRpb25TZXRJbmxp
bmVzLmgiCisjaW5jbHVkZSAiQjNNZW1vcnlWYWx1ZS5oIgogI2luY2x1ZGUgIkIzUGhhc2VTY29w
ZS5oIgorI2luY2x1ZGUgIkIzUG9seUp1bXBWYWx1ZS5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJl
SW5saW5lcy5oIgogI2luY2x1ZGUgIkIzU3dpdGNoVmFsdWUuaCIKICNpbmNsdWRlICJCM1Vwc2ls
b25WYWx1ZS5oIgpAQCAtMjc1LDggKzI3Nyw5NSBAQCBwcml2YXRlOgogICAgICAgICBjb25zdCBW
ZWN0b3I8U3dpdGNoQ2FzZT4mIGNhc2VzLCB1bnNpZ25lZCBzdGFydCwgYm9vbCBoYXJkU3RhcnQs
IHVuc2lnbmVkIGVuZCwKICAgICAgICAgQmFzaWNCbG9jayogYmVmb3JlKQogICAgIHsKLSAgICAg
ICAgLy8gRklYTUU6IEFkZCB0YWJsZS1iYXNlZCBzd2l0Y2ggbG93ZXJpbmcuCi0gICAgICAgIC8v
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTExNDEKKyAgICAgICAg
VmFsdWUqIGNoaWxkID0gbV92YWx1ZS0+Y2hpbGQoMCk7CisgICAgICAgIFR5cGUgdHlwZSA9IGNo
aWxkLT50eXBlKCk7CisgICAgICAgIEZyZXF1ZW50ZWRCbG9jayBmYWxsVGhyb3VnaCA9IG1fdmFs
dWUtPmFzPFN3aXRjaFZhbHVlPigpLT5mYWxsVGhyb3VnaCgpOworICAgICAgICAKKyAgICAgICAg
Ly8gSXQncyBhIGdvb2QgaWRlYSB0byB1c2UgYSB0YWJsZS1iYXNlZCBzd2l0Y2ggaW4gc29tZSBj
YXNlczogdGhlIG51bWJlciBvZiBjYXNlcyBoYXMgdG8gYmUKKyAgICAgICAgLy8gbGFyZ2UgZW5v
dWdoIGFuZCB0aGV5IGhhdmUgdG8gYmUgZGVuc2UgZW5vdWdoLiBUaGlzIGNvdWxkIHByb2JhYmx5
IGJlIGltcHJvdmVkIGEgbG90LiBGb3IKKyAgICAgICAgLy8gZXhhbXBsZSwgd2UgY291bGQgc3Rp
bGwgdXNlIGEganVtcCB0YWJsZSBpbiBjYXNlcyB3aGVyZSB0aGUgaW5wdXRzIGFyZSBzcGFyc2Ug
c28gbG9uZyBhcyB3ZQorICAgICAgICAvLyBzaGlmdCBvZmYgdGhlIHVuaW50ZXJlc3RpbmcgYml0
cy4gT24gdGhlIG90aGVyIGhhbmQsIGl0J3Mgbm90IGNsZWFyIHRoYXQgdGhpcyB3b3VsZAorICAg
ICAgICAvLyBhY3R1YWxseSBiZSBhbnkgYmV0dGVyIHRoYW4gd2hhdCB3ZSBoYXZlIGRvbmUgaGVy
ZSBhbmQgaXQncyBub3QgY2xlYXIgdGhhdCBpdCB3b3VsZCBiZQorICAgICAgICAvLyBiZXR0ZXIg
dGhhbiBhIGJpbmFyeSBzd2l0Y2guCisgICAgICAgIGNvbnN0IHVuc2lnbmVkIG1pbkNhc2VzRm9y
VGFibGUgPSA3OworICAgICAgICBjb25zdCB1bnNpZ25lZCBkZW5zaXR5TGltaXQgPSA0OworICAg
ICAgICBpZiAoZW5kIC0gc3RhcnQgPj0gbWluQ2FzZXNGb3JUYWJsZSkgeworICAgICAgICAgICAg
aW50NjRfdCBmaXJzdFZhbHVlID0gY2FzZXNbc3RhcnRdLmNhc2VWYWx1ZSgpOworICAgICAgICAg
ICAgaW50NjRfdCBsYXN0VmFsdWUgPSBjYXNlc1tlbmQgLSAxXS5jYXNlVmFsdWUoKTsKKyAgICAg
ICAgICAgIGlmICgobGFzdFZhbHVlIC0gZmlyc3RWYWx1ZSArIDEpIC8gY2FzZXMuc2l6ZSgpIDwg
ZGVuc2l0eUxpbWl0KSB7CisgICAgICAgICAgICAgICAgQmFzaWNCbG9jayogc3dpdGNoQmxvY2sg
PSBtX2Jsb2NrSW5zZXJ0aW9uU2V0Lmluc2VydEFmdGVyKG1fYmxvY2spOworICAgICAgICAgICAg
ICAgIFZhbHVlKiBpbmRleCA9IGJlZm9yZS0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAg
ICAgICAgICAgbV9wcm9jLCBTdWIsIG1fb3JpZ2luLCBjaGlsZCwKKyAgICAgICAgICAgICAgICAg
ICAgYmVmb3JlLT5hcHBlbmRJbnRDb25zdGFudChtX3Byb2MsIG1fb3JpZ2luLCB0eXBlLCBmaXJz
dFZhbHVlKSk7CisgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBCcmFuY2gsIG1fb3JpZ2luLAorICAgICAg
ICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICAgICAg
ICAgICAgICBtX3Byb2MsIEFib3ZlLCBtX29yaWdpbiwgaW5kZXgsCisgICAgICAgICAgICAgICAg
ICAgICAgICBiZWZvcmUtPmFwcGVuZEludENvbnN0YW50KG1fcHJvYywgbV9vcmlnaW4sIHR5cGUs
IGxhc3RWYWx1ZSAtIGZpcnN0VmFsdWUpKSwKKyAgICAgICAgICAgICAgICAgICAgZmFsbFRocm91
Z2gsIEZyZXF1ZW50ZWRCbG9jayhzd2l0Y2hCbG9jaykpOworICAgICAgICAgICAgICAgIAorICAg
ICAgICAgICAgICAgIHNpemVfdCB0YWJsZVNpemUgPSBsYXN0VmFsdWUgLSBmaXJzdFZhbHVlICsg
MTsKKyAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIqIGp1bXBUYWJsZSA9IGJp
dHdpc2VfY2FzdDxNYWNyb0Fzc2VtYmxlckNvZGVQdHIqPigKKyAgICAgICAgICAgICAgICAgICAg
bV9wcm9jLmFkZERhdGFTZWN0aW9uKHNpemVvZihNYWNyb0Fzc2VtYmxlckNvZGVQdHIpICogdGFi
bGVTaXplKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgVmFsdWUqIGJhc2Ug
PSBzd2l0Y2hCbG9jay0+YXBwZW5kSW50Q29uc3RhbnQoCisgICAgICAgICAgICAgICAgICAgIG1f
cHJvYywgbV9vcmlnaW4sIHBvaW50ZXJUeXBlKCksIGJpdHdpc2VfY2FzdDxpbnRwdHJfdD4oanVt
cFRhYmxlKSk7CisgICAgICAgICAgICAgICAgaWYgKGluZGV4LT50eXBlKCkgIT0gYmFzZS0+dHlw
ZSgpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChpbmRleC0+dHlwZSgpID09IEludDMyKQor
ICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPSBzd2l0Y2hCbG9jay0+YXBwZW5kTmV3PFZh
bHVlPihtX3Byb2MsIFpFeHQzMiwgbV9vcmlnaW4sIGluZGV4KTsKKyAgICAgICAgICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPSBzd2l0Y2hCbG9jay0+YXBw
ZW5kTmV3PFZhbHVlPihtX3Byb2MsIFRydW5jLCBtX29yaWdpbiwgaW5kZXgpOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICBpbmRleCA9IHN3aXRjaEJsb2NrLT5hcHBlbmROZXc8
VmFsdWU+KAorICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIE11bCwgbV9vcmlnaW4sIGluZGV4
LAorICAgICAgICAgICAgICAgICAgICBzd2l0Y2hCbG9jay0+YXBwZW5kSW50Q29uc3RhbnQoCisg
ICAgICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLCBwb2ludGVyVHlwZSgpLCBz
aXplb2YoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKSkpOworICAgICAgICAgICAgICAgIFZhbHVlKiBw
dHIgPSBzd2l0Y2hCbG9jay0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIEFkZCwgbV9vcmlnaW4s
IGJhc2UsIGluZGV4KTsKKyAgICAgICAgICAgICAgICBWYWx1ZSoganVtcFRhcmdldCA9CisgICAg
ICAgICAgICAgICAgICAgIHN3aXRjaEJsb2NrLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KG1fcHJv
YywgTG9hZCwgcG9pbnRlclR5cGUoKSwgbV9vcmlnaW4sIHB0cik7CisgICAgICAgICAgICAgICAg
UG9seUp1bXBWYWx1ZSogcG9seUp1bXAgPQorICAgICAgICAgICAgICAgICAgICBzd2l0Y2hCbG9j
ay0+YXBwZW5kTmV3PFBvbHlKdW1wVmFsdWU+KG1fcHJvYywgbV9vcmlnaW4sIGp1bXBUYXJnZXQp
OworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIEJpdFZlY3RvciBoYW5kbGVkSW5k
aWNlczsKKyAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBzdGFydDsgaSA8IGVuZDsg
KytpKSB7CisgICAgICAgICAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayBibG9jayA9IGNhc2Vz
W2ldLnRhcmdldCgpOworICAgICAgICAgICAgICAgICAgICBpbnQ2NF90IHZhbHVlID0gY2FzZXNb
aV0uY2FzZVZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgIHBvbHlKdW1wLT5hcHBlbmRTdWNj
ZXNzb3IoYmxvY2spOworICAgICAgICAgICAgICAgICAgICBzaXplX3QgaW5kZXggPSB2YWx1ZSAt
IGZpcnN0VmFsdWU7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVCghaGFuZGxlZEluZGljZXMu
Z2V0KGluZGV4KSk7CisgICAgICAgICAgICAgICAgICAgIGhhbmRsZWRJbmRpY2VzLnNldChpbmRl
eCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAg
IGJvb2wgaGFzVW5oYW5kbGVkSW5kZXggPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgdGFibGVTaXplOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKCFoYW5kbGVkSW5kaWNlcy5nZXQoaSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhh
c1VuaGFuZGxlZEluZGV4ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IAorICAgICAgICAgICAgICAgIGlmIChoYXNVbmhhbmRsZWRJbmRleCkKKyAgICAgICAgICAgICAg
ICAgICAgcG9seUp1bXAtPmFwcGVuZFN1Y2Nlc3NvcihmYWxsVGhyb3VnaCk7CisgICAgICAgICAg
ICAgICAgCisgICAgICAgICAgICAgICAgcG9seUp1bXAtPnNldENhbGxiYWNrKAorICAgICAgICAg
ICAgICAgICAgICBbPV0gKGNvbnN0IFZlY3RvcjxNYWNyb0Fzc2VtYmxlckNvZGVQdHI+JiBwb2lu
dGVycykgeworICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHBvaW50ZXJJbmRleCA9IDA7
CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpbmRleCA6IGhhbmRsZWRJbmRp
Y2VzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGp1bXBUYWJsZVtpbmRleF0gPSBwb2lu
dGVyc1twb2ludGVySW5kZXgrK107CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIChoYXNVbmhhbmRsZWRJbmRleCkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdGFibGVTaXplOyArK2kpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFoYW5kbGVkSW5kaWNlcy5nZXQoaSkp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqdW1wVGFibGVbaV0gPSBwb2lu
dGVyc1twb2ludGVySW5kZXhdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwb2ludGVySW5kZXgrKzsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAg
ICAgUkVMRUFTRV9BU1NFUlQocG9pbnRlckluZGV4ID09IHBvaW50ZXJzLnNpemUoKSk7CisgICAg
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQogICAgICAgICAKICAgICAgICAgLy8gU2VlIGNvbW1lbnRzIGluIGppdC9C
aW5hcnlTd2l0Y2guY3BwIGZvciBhIGp1c3RpZmljYXRpb24gb2YgdGhpcyBhbGdvcml0aG0uIFRo
ZSBvbmx5CiAgICAgICAgIC8vIHRoaW5nIHdlIGRvIGRpZmZlcmVudGx5IGlzIHRoYXQgd2UgZG9u
J3QgdXNlIHJhbmRvbW5lc3MuCkBAIC0zMDcsMjIgKzM5NiwxOSBAQCBwcml2YXRlOgogICAgICAg
ICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCiAgICAgICAgICAgICAg
ICAgICAgIG1fcHJvYywgQnJhbmNoLCBtX29yaWdpbiwKICAgICAgICAgICAgICAgICAgICAgYmVm
b3JlLT5hcHBlbmROZXc8VmFsdWU+KAotICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBF
cXVhbCwgbV9vcmlnaW4sIG1fdmFsdWUtPmNoaWxkKDApLAorICAgICAgICAgICAgICAgICAgICAg
ICAgbV9wcm9jLCBFcXVhbCwgbV9vcmlnaW4sIGNoaWxkLAogICAgICAgICAgICAgICAgICAgICAg
ICAgYmVmb3JlLT5hcHBlbmRJbnRDb25zdGFudCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtX3Byb2MsIG1fb3JpZ2luLCBtX3ZhbHVlLT5jaGlsZCgwKS0+dHlwZSgpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1fcHJvYywgbV9vcmlnaW4sIHR5cGUsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY2FzZXNbc3RhcnQgKyBpXS5jYXNlVmFsdWUoKSkpLAogICAgICAgICAg
ICAgICAgICAgICBjYXNlc1tzdGFydCArIGldLnRhcmdldCgpLCBGcmVxdWVudGVkQmxvY2sobmV4
dENoZWNrKSk7CiAKICAgICAgICAgICAgICAgICBiZWZvcmUgPSBuZXh0Q2hlY2s7CiAgICAgICAg
ICAgICB9CiAKLSAgICAgICAgICAgIGlmIChhbGxDb25zZWN1dGl2ZSkgewotICAgICAgICAgICAg
ICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCi0gICAgICAgICAgICAgICAgICAg
IG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIGNhc2VzW2VuZCAtIDFdLnRhcmdldCgpKTsKLSAgICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKLSAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBKdW1wLCBtX29yaWdpbiwgbV92
YWx1ZS0+YXM8U3dpdGNoVmFsdWU+KCktPmZhbGxUaHJvdWdoKCkpOwotICAgICAgICAgICAgfQor
ICAgICAgICAgICAgaWYgKGFsbENvbnNlY3V0aXZlKQorICAgICAgICAgICAgICAgIGJlZm9yZS0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4obV9wcm9jLCBKdW1wLCBtX29yaWdpbiwgY2FzZXNbZW5k
IC0gMV0udGFyZ2V0KCkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGJlZm9y
ZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4obV9wcm9jLCBKdW1wLCBtX29yaWdpbiwgZmFsbFRo
cm91Z2gpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAgLTMzNCw5ICs0MjAs
OSBAQCBwcml2YXRlOgogICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAog
ICAgICAgICAgICAgbV9wcm9jLCBCcmFuY2gsIG1fb3JpZ2luLAogICAgICAgICAgICAgYmVmb3Jl
LT5hcHBlbmROZXc8VmFsdWU+KAotICAgICAgICAgICAgICAgIG1fcHJvYywgTGVzc1RoYW4sIG1f
b3JpZ2luLCBtX3ZhbHVlLT5jaGlsZCgwKSwKKyAgICAgICAgICAgICAgICBtX3Byb2MsIExlc3NU
aGFuLCBtX29yaWdpbiwgY2hpbGQsCiAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmRJbnRD
b25zdGFudCgKLSAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwgbV92YWx1ZS0+
Y2hpbGQoMCktPnR5cGUoKSwKKyAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwg
dHlwZSwKICAgICAgICAgICAgICAgICAgICAgY2FzZXNbbWVkaWFuSW5kZXhdLmNhc2VWYWx1ZSgp
KSksCiAgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2sobGVmdCksIEZyZXF1ZW50ZWRCbG9jayhy
aWdodCkpOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNw
cAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJU
b0Fpci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1NSw3ICsxNTUsNiBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICB9CiAKICAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBzdWNjZXNzb3Jz
IGFyZSBzZXQgdXAgY29ycmVjdGx5LgotICAgICAgICAgICAgQVNTRVJUKGJsb2NrLT5zdWNjZXNz
b3JzKCkuc2l6ZSgpIDw9IDIpOwogICAgICAgICAgICAgZm9yIChCMzo6RnJlcXVlbnRlZEJsb2Nr
IHN1Y2Nlc3NvciA6IGJsb2NrLT5zdWNjZXNzb3JzKCkpIHsKICAgICAgICAgICAgICAgICBtX2Js
b2NrVG9CbG9ja1tibG9ja10tPnN1Y2Nlc3NvcnMoKS5hcHBlbmQoCiAgICAgICAgICAgICAgICAg
ICAgIEFpcjo6RnJlcXVlbnRlZEJsb2NrKG1fYmxvY2tUb0Jsb2NrW3N1Y2Nlc3Nvci5ibG9jaygp
XSwgc3VjY2Vzc29yLmZyZXF1ZW5jeSgpKSk7CkBAIC0yNDQxLDYgKzI0NDAsMTYgQEAgcHJpdmF0
ZToKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorICAgICAg
ICAgICAgCisgICAgICAgIGNhc2UgQjM6OlBvbHlKdW1wOiB7CisgICAgICAgICAgICBBcmdQcm9t
aXNlIGFkZHIgPSBsb2FkUHJvbWlzZShtX3ZhbHVlLT5jaGlsZCgwKSk7CisgICAgICAgICAgICBp
ZiAoaXNWYWxpZEZvcm0oQWlyOjpQb2x5SnVtcCwgYWRkci5raW5kKCkpKSB7CisgICAgICAgICAg
ICAgICAgYXBwZW5kKEFpcjo6UG9seUp1bXAsIGFkZHIuY29uc3VtZSgqdGhpcykpOworICAgICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGFwcGVuZChBaXI6
OlBvbHlKdW1wLCB0bXAobV92YWx1ZS0+Y2hpbGQoMCkpKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQogCiAgICAgICAgIGNhc2UgQjM6Ok9vcHM6IHsKICAgICAgICAgICAgIGFwcGVu
ZChBaXI6Ok9vcHMpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuY3BwCShy
ZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yOTAsNiArMjkwLDkgQEAgdm9pZCBwcmludEludGVybmFsKFBy
aW50U3RyZWFtJiBvdXQsIE9wYwogICAgIGNhc2UgU3dpdGNoOgogICAgICAgICBvdXQucHJpbnQo
IlN3aXRjaCIpOwogICAgICAgICByZXR1cm47CisgICAgY2FzZSBQb2x5SnVtcDoKKyAgICAgICAg
b3V0LnByaW50KCJQb2x5SnVtcCIpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBSZXR1cm46
CiAgICAgICAgIG91dC5wcmludCgiUmV0dXJuIik7CiAgICAgICAgIHJldHVybjsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjE2LDYgKzIx
NiwxMyBAQCBlbnVtIE9wY29kZSA6IGludDE2X3QgewogCiAgICAgLy8gU3dpdGNoLiBTd2l0Y2hl
cyBvdmVyIGVpdGhlciBJbnQzMiBvciBJbnQ2NC4gVXNlcyB0aGUgU3dpdGNoVmFsdWUgY2xhc3Mu
CiAgICAgU3dpdGNoLAorICAgIAorICAgIC8vIEp1bXAgdG8gdGhlIGdpdmVuIGFkZHJlc3MuIFRo
ZSBjb21waWxlciBhc3N1bWVzIHRoYXQgdGhpcyB3aWxsIGp1bXAgdG8gb25lIG9mIHRoZSBzdXBw
bGllZAorICAgIC8vIHN1Y2Nlc3NvcnMsIGJ1dCB3aWxsIG1ha2UgYWJzb2x1dGVseSBubyBhc3N1
bXB0aW9ucyBhYm91dCB3aGljaC4gSXQncyBlbnRpcmVseSB1cCB0byB0aGUgdXNlcgorICAgIC8v
IHRvIGFycmFuZ2UgZm9yIHRoZSBqdW1wIHRvIGp1bXAgdG8gb25lIG9mIHRob3NlIHN1Y2Nlc3Nv
cnMuIFRoaXMgY2Fubm90IHRyYXAgb3IgZG8gYW55dGhpbmcgYnV0CisgICAgLy8ganVtcCB0byBv
bmUgb2YgdGhlIHN1Y2Nlc3NvcnM7IGlmIGl0IGRvZXMgYW55dGhpbmcgZWxzZSB0aGVuIGRlbW9u
cyB3aWxsIGNvbWUgb3V0IG9mIHRoZSB1c2VyJ3MKKyAgICAvLyBub3NlLiAKKyAgICBQb2x5SnVt
cCwKIAogICAgIC8vIFJldHVybi4gTm90ZSB0aGF0IEIzIHByb2NlZHVyZXMgZG9uJ3Qga25vdyB0
aGVpciByZXR1cm4gdHlwZSwgc28gdGhpcyBjYW4ganVzdCByZXR1cm4gYW55CiAgICAgLy8gdHlw
ZS4gVXNlcyB0aGUgQ29udHJvbFZhbHVlIGNsYXNzLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzUG9seUp1bXBWYWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzUG9seUp1bXBWYWx1ZS5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNQb2x5SnVtcFZhbHVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJCM1BvbHlKdW1wVmFsdWUuaCIKKworI2lm
IEVOQUJMRShCM19KSVQpCisKKyNpbmNsdWRlICJCM0Jhc2ljQmxvY2suaCIKKworbmFtZXNwYWNl
IEpTQyB7IG5hbWVzcGFjZSBCMyB7CisKK1BvbHlKdW1wVmFsdWU6On5Qb2x5SnVtcFZhbHVlKCkK
K3sKK30KKwordm9pZCBQb2x5SnVtcFZhbHVlOjphcHBlbmRTdWNjZXNzb3IoY29uc3QgRnJlcXVl
bnRlZEJsb2NrJiBibG9jaykKK3sKKyAgICBtX3N1Y2Nlc3NvcnMuYXBwZW5kKGJsb2NrKTsKK30K
Kwordm9pZCBQb2x5SnVtcFZhbHVlOjpzZXRDYWxsYmFja1Rhc2soUmVmUHRyPFNoYXJlZFRhc2s8
Q2FsbGJhY2tGdW5jdGlvblR5cGU+PiB0YXNrKQoreworICAgIG1fdGFzayA9IHRhc2s7Cit9CisK
K2Jvb2wgUG9seUp1bXBWYWx1ZTo6aXNDbG9uZWFibGUoKSBjb25zdAoreworICAgIHJldHVybiBm
YWxzZTsKK30KKwordm9pZCBQb2x5SnVtcFZhbHVlOjpkdW1wTWV0YShDb21tYVByaW50ZXImIGNv
bW1hLCBQcmludFN0cmVhbSYgb3V0KSBjb25zdAoreworICAgIENvbnRyb2xWYWx1ZTo6ZHVtcE1l
dGEoY29tbWEsIG91dCk7CisgICAgb3V0LnByaW50KGNvbW1hLCAidGFzayA9ICIsIFJhd1BvaW50
ZXIobV90YXNrLmdldCgpKSk7Cit9CisKK1ZhbHVlKiBQb2x5SnVtcFZhbHVlOjpjbG9uZUltcGwo
KSBjb25zdAoreworICAgIGRhdGFMb2coIkZBVEFMOiBBdHRlbXB0IHRvIGNsb25lIG5vbi1jbG9u
ZWFibGUgUG9seUp1bXBWYWx1ZSFcbiIpOworICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVE
KCk7Cit9CisKK1BvbHlKdW1wVmFsdWU6OlBvbHlKdW1wVmFsdWUoT3JpZ2luIG9yaWdpbiwgVmFs
dWUqIGNoaWxkKQorICAgIDogQ29udHJvbFZhbHVlKFBvbHlKdW1wLCBWb2lkLCBvcmlnaW4sIGNo
aWxkKQoreworfQorCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKKworI2VuZGlmIC8vIEVOQUJM
RShCM19KSVQpCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BvbHlKdW1wVmFs
dWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQb2x5SnVtcFZh
bHVlLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQb2x5SnVt
cFZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEIzUG9seUp1bXBWYWx1ZV9o
CisjZGVmaW5lIEIzUG9seUp1bXBWYWx1ZV9oCisKKyNpZiBFTkFCTEUoQjNfSklUKQorCisjaW5j
bHVkZSAiQjNDb250cm9sVmFsdWUuaCIKKyNpbmNsdWRlIDx3dGYvU2hhcmVkVGFzay5oPgorCitu
YW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKKworY2xhc3MgUG9seUp1bXBWYWx1ZSA6IHB1
YmxpYyBDb250cm9sVmFsdWUgeworcHVibGljOgorICAgIHN0YXRpYyBib29sIGFjY2VwdHMoT3Bj
b2RlIG9wY29kZSkgeyByZXR1cm4gb3Bjb2RlID09IFBvbHlKdW1wOyB9CisgICAgCisgICAgflBv
bHlKdW1wVmFsdWUoKTsKKyAgICAKKyAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIGFwcGVuZFN1
Y2Nlc3Nvcihjb25zdCBGcmVxdWVudGVkQmxvY2smKTsKKyAgICAKKyAgICB0eXBlZGVmIHZvaWQg
Q2FsbGJhY2tGdW5jdGlvblR5cGUoY29uc3QgVmVjdG9yPE1hY3JvQXNzZW1ibGVyQ29kZVB0cj4m
KTsKKyAgICAKKyAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIHNldENhbGxiYWNrVGFzayhSZWZQ
dHI8U2hhcmVkVGFzazxDYWxsYmFja0Z1bmN0aW9uVHlwZT4+IHRhc2spOworICAgIAorICAgIHRl
bXBsYXRlPHR5cGVuYW1lIEZ1bmM+CisgICAgdm9pZCBzZXRDYWxsYmFjayhjb25zdCBGdW5jJiBm
dW5jKQorICAgIHsKKyAgICAgICAgc2V0Q2FsbGJhY2tUYXNrKGNyZWF0ZVNoYXJlZFRhc2s8Q2Fs
bGJhY2tGdW5jdGlvblR5cGU+KGZ1bmMpKTsKKyAgICB9CisgICAgCisgICAgU2hhcmVkVGFzazxD
YWxsYmFja0Z1bmN0aW9uVHlwZT4qIGNhbGxiYWNrVGFzaygpIGNvbnN0IHsgcmV0dXJuIG1fdGFz
ay5nZXQoKTsgfQorICAgIAorICAgIGJvb2wgaXNDbG9uZWFibGUoKSBjb25zdCBvdmVycmlkZTsK
KworcHJvdGVjdGVkOgorICAgIHZvaWQgZHVtcE1ldGEoQ29tbWFQcmludGVyJiwgUHJpbnRTdHJl
YW0mKSBjb25zdCBvdmVycmlkZTsKKyAgICAKKyAgICBWYWx1ZSogY2xvbmVJbXBsKCkgY29uc3Qg
b3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIFByb2NlZHVyZTsKKyAgICAK
KyAgICBKU19FWFBPUlRfUFJJVkFURSBQb2x5SnVtcFZhbHVlKE9yaWdpbiwgVmFsdWUqIGNoaWxk
KTsKKyAgICAKKyAgICBSZWZQdHI8U2hhcmVkVGFzazxDYWxsYmFja0Z1bmN0aW9uVHlwZT4+IG1f
dGFzazsKK307CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMworCisjZW5kaWYgLy8gRU5BQkxF
KEIzX0pJVCkKKworI2VuZGlmIC8vIEIzUG9seUp1bXBWYWx1ZV9oCisKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
ODMsNiArODMsOCBAQCBWYXJpYWJsZSogUHJvY2VkdXJlOjphZGRWYXJpYWJsZShUeXBlIHR5CiAK
IFZhbHVlKiBQcm9jZWR1cmU6OmNsb25lKFZhbHVlKiB2YWx1ZSkKIHsKKyAgICBBU1NFUlQodmFs
dWUtPmlzQ2xvbmVhYmxlKCkpOworICAgIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxWYWx1ZT4gY2xv
bmUodmFsdWUtPmNsb25lSW1wbCgpKTsKICAgICBjbG9uZS0+bV9pbmRleCA9IFVJTlRfTUFYOwog
ICAgIGNsb25lLT5vd25lciA9IG51bGxwdHI7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNQcm9jZWR1cmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNQcm9jZWR1cmUuaAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzUHJvY2VkdXJlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMSw2ICsxMDEsNyBAQCBwdWJs
aWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVmFsdWVUeXBlLCB0eXBlbmFtZS4uLiBBcmd1bWVu
dHM+CiAgICAgVmFsdWVUeXBlKiBhZGQoQXJndW1lbnRzLi4uKTsKIAorICAgIC8vIE5vdGUgdGhh
dCBub3QgYWxsIHZhbHVlcyBhcmUgY2xvbmVhYmxlLiBDaGVjayBWYWx1ZTo6aXNDbG9uZWFibGUo
KSBiZWZvcmUgcHJvY2VlZGluZy4KICAgICBWYWx1ZSogY2xvbmUoVmFsdWUqKTsKIAogICAgIFZh
bHVlKiBhZGRJbnRDb25zdGFudChPcmlnaW4sIFR5cGUsIGludDY0X3QgdmFsdWUpOwpAQCAtMjE4
LDYgKzIxOSw5IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IGNoYXIqIGxhc3RQaGFzZU5hbWUoKSBj
b25zdCB7IHJldHVybiBtX2xhc3RQaGFzZU5hbWU7IH0KIAorICAgIC8vIEFsbG9jYXRlcyBhIHNs
YWIgb2YgbWVtb3J5IHRoYXQgd2lsbCBiZSBrZXB0IGFsaXZlIGJ5IGFueW9uZSB3aG8ga2VlcHMg
dGhlIHJlc3VsdGluZyBjb2RlCisgICAgLy8gYWxpdmUuIEdyZWF0IGZvciBjb21waWxlci1nZW5l
cmF0ZWQgZGF0YSBzZWN0aW9ucywgbGlrZSBzd2l0Y2gganVtcCB0YWJsZXMgYW5kIGNvbnN0YW50
IHBvb2xzLgorICAgIC8vIFRoaXMgcmV0dXJucyBtZW1vcnkgdGhhdCBoYXMgYmVlbiB6ZXJvLWlu
aXRpYWxpemVkLgogICAgIHZvaWQqIGFkZERhdGFTZWN0aW9uKHNpemVfdCBzaXplKTsKIAogICAg
IE9wYXF1ZUJ5cHJvZHVjdHMmIGJ5cHJvZHVjdHMoKSB7IHJldHVybiAqbV9ieXByb2R1Y3RzOyB9
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VTdHJlbmd0aC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3Bw
CShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VT
dHJlbmd0aC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3NzMsNyArMTc3MywxNyBAQCBwcml2YXRl
OgogICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUtPm9wY29kZSgpID09IFNlbGVjdAog
ICAgICAgICAgICAgICAgICAgICAgICAgJiYgKHZhbHVlLT5jaGlsZCgxKS0+aXNDb25zdGFudCgp
ICYmIHZhbHVlLT5jaGlsZCgyKS0+aXNDb25zdGFudCgpKTsKICAgICAgICAgICAgICAgICB9KTsK
LSAgICAgICAgICAgIGlmIChzZWxlY3QpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8g
TWFrZSBzdXJlIHRoYXQgdGhlIHJlbGV2YW50IGNvZGUgaXMgY2xvbmVhYmxlLgorICAgICAgICAg
ICAgYm9vbCBhbGxBcmVDbG9uZWFibGUgPSB0cnVlOworICAgICAgICAgICAgZm9yICh1bnNpZ25l
ZCBpbmRleCA9IG1faW5kZXggKyAxOyBpbmRleC0tOykgeworICAgICAgICAgICAgICAgIFZhbHVl
KiB2YWx1ZSA9IG1fYmxvY2stPmF0KGluZGV4KTsKKyAgICAgICAgICAgICAgICBhbGxBcmVDbG9u
ZWFibGUgJj0gdmFsdWUtPmlzQ2xvbmVhYmxlKCk7CisgICAgICAgICAgICAgICAgaWYgKHZhbHVl
ID09IHNlbGVjdCkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChzZWxlY3QgJiYgYWxsQXJlQ2xvbmVhYmxlKSB7
CiAgICAgICAgICAgICAgICAgc3BlY2lhbGl6ZVNlbGVjdChzZWxlY3QpOwogICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgfQpAQCAtMTc4MSw1MCArMTc5MSw0OCBAQCBwcml2YXRl
OgogICAgICAgICB9CiAKICAgICAgICAgY2FzZSBCcmFuY2g6IHsKLSAgICAgICAgICAgIENvbnRy
b2xWYWx1ZSogYnJhbmNoID0gbV92YWx1ZS0+YXM8Q29udHJvbFZhbHVlPigpOwotCiAgICAgICAg
ICAgICAvLyBUdXJuIHRoaXM6IEJyYW5jaChOb3RFcXVhbCh4LCAwKSkKICAgICAgICAgICAgIC8v
IEludG8gdGhpczogQnJhbmNoKHgpCi0gICAgICAgICAgICBpZiAoYnJhbmNoLT5jaGlsZCgwKS0+
b3Bjb2RlKCkgPT0gTm90RXF1YWwgJiYgYnJhbmNoLT5jaGlsZCgwKS0+Y2hpbGQoMSktPmlzSW50
KDApKSB7Ci0gICAgICAgICAgICAgICAgYnJhbmNoLT5jaGlsZCgwKSA9IGJyYW5jaC0+Y2hpbGQo
MCktPmNoaWxkKDApOworICAgICAgICAgICAgaWYgKG1fdmFsdWUtPmNoaWxkKDApLT5vcGNvZGUo
KSA9PSBOb3RFcXVhbCAmJiBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMSktPmlzSW50KDApKSB7
CisgICAgICAgICAgICAgICAgbV92YWx1ZS0+Y2hpbGQoMCkgPSBtX3ZhbHVlLT5jaGlsZCgwKS0+
Y2hpbGQoMCk7CiAgICAgICAgICAgICAgICAgbV9jaGFuZ2VkID0gdHJ1ZTsKICAgICAgICAgICAg
IH0KIAogICAgICAgICAgICAgLy8gVHVybiB0aGlzOiBCcmFuY2goRXF1YWwoeCwgMCksIHRoZW4s
IGVsc2UpCiAgICAgICAgICAgICAvLyBJbnRvIHRoaXM6IEJyYW5jaCh4LCBlbHNlLCB0aGVuKQot
ICAgICAgICAgICAgaWYgKGJyYW5jaC0+Y2hpbGQoMCktPm9wY29kZSgpID09IEVxdWFsICYmIGJy
YW5jaC0+Y2hpbGQoMCktPmNoaWxkKDEpLT5pc0ludCgwKSkgewotICAgICAgICAgICAgICAgIGJy
YW5jaC0+Y2hpbGQoMCkgPSBicmFuY2gtPmNoaWxkKDApLT5jaGlsZCgwKTsKLSAgICAgICAgICAg
ICAgICBzdGQ6OnN3YXAoYnJhbmNoLT50YWtlbigpLCBicmFuY2gtPm5vdFRha2VuKCkpOworICAg
ICAgICAgICAgaWYgKG1fdmFsdWUtPmNoaWxkKDApLT5vcGNvZGUoKSA9PSBFcXVhbCAmJiBtX3Zh
bHVlLT5jaGlsZCgwKS0+Y2hpbGQoMSktPmlzSW50KDApKSB7CisgICAgICAgICAgICAgICAgbV92
YWx1ZS0+Y2hpbGQoMCkgPSBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMCk7CisgICAgICAgICAg
ICAgICAgc3RkOjpzd2FwKG1fYmxvY2stPnRha2VuKCksIG1fYmxvY2stPm5vdFRha2VuKCkpOwog
ICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAKICAgICAgICAgICAgIC8vIFR1cm4gdGhpczogQnJhbmNoKEJpdFhvcihib29sLCAxKSwg
dGhlbiwgZWxzZSkKICAgICAgICAgICAgIC8vIEludG8gdGhpczogQnJhbmNoKGJvb2wsIGVsc2Us
IHRoZW4pCi0gICAgICAgICAgICBpZiAoYnJhbmNoLT5jaGlsZCgwKS0+b3Bjb2RlKCkgPT0gQml0
WG9yCi0gICAgICAgICAgICAgICAgJiYgYnJhbmNoLT5jaGlsZCgwKS0+Y2hpbGQoMSktPmlzSW50
MzIoMSkKLSAgICAgICAgICAgICAgICAmJiBicmFuY2gtPmNoaWxkKDApLT5jaGlsZCgwKS0+cmV0
dXJuc0Jvb2woKSkgewotICAgICAgICAgICAgICAgIGJyYW5jaC0+Y2hpbGQoMCkgPSBicmFuY2gt
PmNoaWxkKDApLT5jaGlsZCgwKTsKLSAgICAgICAgICAgICAgICBzdGQ6OnN3YXAoYnJhbmNoLT50
YWtlbigpLCBicmFuY2gtPm5vdFRha2VuKCkpOworICAgICAgICAgICAgaWYgKG1fdmFsdWUtPmNo
aWxkKDApLT5vcGNvZGUoKSA9PSBCaXRYb3IKKyAgICAgICAgICAgICAgICAmJiBtX3ZhbHVlLT5j
aGlsZCgwKS0+Y2hpbGQoMSktPmlzSW50MzIoMSkKKyAgICAgICAgICAgICAgICAmJiBtX3ZhbHVl
LT5jaGlsZCgwKS0+Y2hpbGQoMCktPnJldHVybnNCb29sKCkpIHsKKyAgICAgICAgICAgICAgICBt
X3ZhbHVlLT5jaGlsZCgwKSA9IG1fdmFsdWUtPmNoaWxkKDApLT5jaGlsZCgwKTsKKyAgICAgICAg
ICAgICAgICBzdGQ6OnN3YXAobV9ibG9jay0+dGFrZW4oKSwgbV9ibG9jay0+bm90VGFrZW4oKSk7
CiAgICAgICAgICAgICAgICAgbV9jaGFuZ2VkID0gdHJ1ZTsKICAgICAgICAgICAgIH0KIAogICAg
ICAgICAgICAgLy8gVHVybiB0aGlzOiBCcmFuY2goQml0QW5kKGJvb2wsIHh5YjEpLCB0aGVuLCBl
bHNlKQogICAgICAgICAgICAgLy8gSW50byB0aGlzOiBCcmFuY2goYm9vbCwgdGhlbiwgZWxzZSkK
LSAgICAgICAgICAgIGlmIChicmFuY2gtPmNoaWxkKDApLT5vcGNvZGUoKSA9PSBCaXRBbmQKLSAg
ICAgICAgICAgICAgICAmJiBicmFuY2gtPmNoaWxkKDApLT5jaGlsZCgxKS0+aGFzSW50KCkKLSAg
ICAgICAgICAgICAgICAmJiBicmFuY2gtPmNoaWxkKDApLT5jaGlsZCgxKS0+YXNJbnQoKSAmIDEK
LSAgICAgICAgICAgICAgICAmJiBicmFuY2gtPmNoaWxkKDApLT5jaGlsZCgwKS0+cmV0dXJuc0Jv
b2woKSkgewotICAgICAgICAgICAgICAgIGJyYW5jaC0+Y2hpbGQoMCkgPSBicmFuY2gtPmNoaWxk
KDApLT5jaGlsZCgwKTsKKyAgICAgICAgICAgIGlmIChtX3ZhbHVlLT5jaGlsZCgwKS0+b3Bjb2Rl
KCkgPT0gQml0QW5kCisgICAgICAgICAgICAgICAgJiYgbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxk
KDEpLT5oYXNJbnQoKQorICAgICAgICAgICAgICAgICYmIG1fdmFsdWUtPmNoaWxkKDApLT5jaGls
ZCgxKS0+YXNJbnQoKSAmIDEKKyAgICAgICAgICAgICAgICAmJiBtX3ZhbHVlLT5jaGlsZCgwKS0+
Y2hpbGQoMCktPnJldHVybnNCb29sKCkpIHsKKyAgICAgICAgICAgICAgICBtX3ZhbHVlLT5jaGls
ZCgwKSA9IG1fdmFsdWUtPmNoaWxkKDApLT5jaGlsZCgwKTsKICAgICAgICAgICAgICAgICBtX2No
YW5nZWQgPSB0cnVlOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBUcmlTdGF0ZSB0cmlT
dGF0ZSA9IGJyYW5jaC0+Y2hpbGQoMCktPmFzVHJpU3RhdGUoKTsKKyAgICAgICAgICAgIFRyaVN0
YXRlIHRyaVN0YXRlID0gbV92YWx1ZS0+Y2hpbGQoMCktPmFzVHJpU3RhdGUoKTsKIAogICAgICAg
ICAgICAgLy8gVHVybiB0aGlzOiBCcmFuY2goMCwgdGhlbiwgZWxzZSkKICAgICAgICAgICAgIC8v
IEludG8gdGhpczogSnVtcChlbHNlKQogICAgICAgICAgICAgaWYgKHRyaVN0YXRlID09IEZhbHNl
VHJpU3RhdGUpIHsKLSAgICAgICAgICAgICAgICBicmFuY2gtPnRha2VuKCkuYmxvY2soKS0+cmVt
b3ZlUHJlZGVjZXNzb3IobV9ibG9jayk7Ci0gICAgICAgICAgICAgICAgYnJhbmNoLT5jb252ZXJ0
VG9KdW1wKGJyYW5jaC0+bm90VGFrZW4oKS5ibG9jaygpKTsKKyAgICAgICAgICAgICAgICBtX2Js
b2NrLT50YWtlbigpLmJsb2NrKCktPnJlbW92ZVByZWRlY2Vzc29yKG1fYmxvY2spOworICAgICAg
ICAgICAgICAgIG1fdmFsdWUtPnJlcGxhY2VXaXRoSnVtcChtX2Jsb2NrLCBtX2Jsb2NrLT5ub3RU
YWtlbigpLmJsb2NrKCkpOwogICAgICAgICAgICAgICAgIG1fY2hhbmdlZENGRyA9IHRydWU7CiAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CkBAIC0xODMyLDggKzE4NDAsOCBA
QCBwcml2YXRlOgogICAgICAgICAgICAgLy8gVHVybiB0aGlzOiBCcmFuY2gobm90IDAsIHRoZW4s
IGVsc2UpCiAgICAgICAgICAgICAvLyBJbnRvIHRoaXM6IEp1bXAodGhlbikKICAgICAgICAgICAg
IGlmICh0cmlTdGF0ZSA9PSBUcnVlVHJpU3RhdGUpIHsKLSAgICAgICAgICAgICAgICBicmFuY2gt
Pm5vdFRha2VuKCkuYmxvY2soKS0+cmVtb3ZlUHJlZGVjZXNzb3IobV9ibG9jayk7Ci0gICAgICAg
ICAgICAgICAgYnJhbmNoLT5jb252ZXJ0VG9KdW1wKGJyYW5jaC0+dGFrZW4oKS5ibG9jaygpKTsK
KyAgICAgICAgICAgICAgICBtX2Jsb2NrLT5ub3RUYWtlbigpLmJsb2NrKCktPnJlbW92ZVByZWRl
Y2Vzc29yKG1fYmxvY2spOworICAgICAgICAgICAgICAgIG1fdmFsdWUtPnJlcGxhY2VXaXRoSnVt
cChtX2Jsb2NrLCBtX2Jsb2NrLT50YWtlbigpLmJsb2NrKCkpOwogICAgICAgICAgICAgICAgIG1f
Y2hhbmdlZENGRyA9IHRydWU7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9
CkBAIC0xODQyLDEyICsxODUwLDEyIEBAIHByaXZhdGU6CiAgICAgICAgICAgICAvLyBvZiBtYWtl
cyBzZW5zZSBoZXJlIGJlY2F1c2UgaXQncyBjaGVhcCwgYnV0IGhhY2tzIGxpa2UgdGhpcyBzaG93
IHRoYXQgd2UncmUgZ29pbmcKICAgICAgICAgICAgIC8vIHRvIG5lZWQgU0NDUC4KICAgICAgICAg
ICAgIFZhbHVlKiBjaGVjayA9IG1fcHVyZUNTRS5maW5kTWF0Y2goCi0gICAgICAgICAgICAgICAg
VmFsdWVLZXkoQ2hlY2ssIFZvaWQsIGJyYW5jaC0+Y2hpbGQoMCkpLCBtX2Jsb2NrLCAqbV9kb21p
bmF0b3JzKTsKKyAgICAgICAgICAgICAgICBWYWx1ZUtleShDaGVjaywgVm9pZCwgbV92YWx1ZS0+
Y2hpbGQoMCkpLCBtX2Jsb2NrLCAqbV9kb21pbmF0b3JzKTsKICAgICAgICAgICAgIGlmIChjaGVj
aykgewogICAgICAgICAgICAgICAgIC8vIFRoZSBDaGVjayB3b3VsZCBoYXZlIHNpZGUtZXhpdGVk
IGlmIGNoaWxkKDApIHdhcyBub24temVyby4gU28sIGl0IG11c3QgYmUKICAgICAgICAgICAgICAg
ICAvLyB6ZXJvIGhlcmUuCi0gICAgICAgICAgICAgICAgYnJhbmNoLT50YWtlbigpLmJsb2NrKCkt
PnJlbW92ZVByZWRlY2Vzc29yKG1fYmxvY2spOwotICAgICAgICAgICAgICAgIGJyYW5jaC0+Y29u
dmVydFRvSnVtcChicmFuY2gtPm5vdFRha2VuKCkuYmxvY2soKSk7CisgICAgICAgICAgICAgICAg
bV9ibG9jay0+dGFrZW4oKS5ibG9jaygpLT5yZW1vdmVQcmVkZWNlc3NvcihtX2Jsb2NrKTsKKyAg
ICAgICAgICAgICAgICBtX3ZhbHVlLT5yZXBsYWNlV2l0aEp1bXAobV9ibG9jaywgbV9ibG9jay0+
bm90VGFrZW4oKS5ibG9jaygpKTsKICAgICAgICAgICAgICAgICBtX2NoYW5nZWRDRkcgPSB0cnVl
OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CkBAIC0yMjIxLDcgKzIyMjksNyBA
QCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFMb2coCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJDaGFuZ2luZyAiLCBwb2ludGVyRHVtcChibG9jayks
ICIncyB0ZXJtaW5hbCB0byBhIEp1bXAuXG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLT5sYXN0KCktPmFzPENvbnRyb2xWYWx1ZT4o
KS0+Y29udmVydFRvSnVtcChmaXJzdFN1Y2Nlc3Nvcik7CisgICAgICAgICAgICAgICAgICAgICAg
ICBibG9jay0+bGFzdCgpLT5yZXBsYWNlV2l0aEp1bXAoYmxvY2ssIGZpcnN0U3VjY2Vzc29yKTsK
ICAgICAgICAgICAgICAgICAgICAgICAgIG1fY2hhbmdlZENGRyA9IHRydWU7CiAgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CkBAIC0yMjQ0LDExICsyMjUyLDEzIEBAIHBy
aXZhdGU6CiAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAvLyBBcHBl
bmQgdGhlIGZ1bGwgY29udGVudHMgb2YgdGhlIHN1Y2Nlc3NvciB0byB0aGUgcHJlZGVjZXNzb3Iu
CiAgICAgICAgICAgICAgICAgICAgIGJsb2NrLT52YWx1ZXMoKS5hcHBlbmRWZWN0b3Ioc3VjY2Vz
c29yLT52YWx1ZXMoKSk7CisgICAgICAgICAgICAgICAgICAgIGJsb2NrLT5zdWNjZXNzb3JzKCkg
PSBzdWNjZXNzb3ItPnN1Y2Nlc3NvcnMoKTsKICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBzdWNjZXNzb3IgaGFzIG5vdGhpbmcg
bGVmdCBpbiBpdC4gTWFrZSBzdXJlIHRoYXQgdGhlIGJsb2NrCiAgICAgICAgICAgICAgICAgICAg
IC8vIGhhcyBhIHRlcm1pbmFsIHNvIHRoYXQgbm9ib2R5IGNob2tlcyB3aGVuIHRoZXkgbG9vayBh
dCBpdC4KICAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc29yLT52YWx1ZXMoKS5yZXNpemUoMCk7
Ci0gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3Nvci0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
bV9wcm9jLCBPb3BzLCBqdW1wT3JpZ2luKTsKKyAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc29y
LT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgT29wcywganVtcE9yaWdpbik7CisgICAgICAgICAg
ICAgICAgICAgIHN1Y2Nlc3Nvci0+Y2xlYXJTdWNjZXNzb3JzKCk7CiAgICAgICAgICAgICAgICAg
ICAgIAogICAgICAgICAgICAgICAgICAgICAvLyBFbnN1cmUgdGhhdCBwcmVkZWNlc3NvcnMgb2Yg
YmxvY2sncyBuZXcgc3VjY2Vzc29ycyBrbm93IHdoYXQncyB1cC4KICAgICAgICAgICAgICAgICAg
ICAgZm9yIChCYXNpY0Jsb2NrKiBuZXdTdWNjZXNzb3IgOiBibG9jay0+c3VjY2Vzc29yQmxvY2tz
KCkpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTd2l0Y2hWYWx1ZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N3aXRjaFZhbHVlLmgJKHJldmlz
aW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N3aXRjaFZhbHVlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDEwIEBACiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1l
c3BhY2UgQjMgewogCisvLyBGSVhNRTogQ3JlYXRlIGEgdGhpbmcgY2FsbGVkIGEgU3dpdGNoQ2Fz
ZUNvbGxlY3Rpb24gb3IganVzdCBDYXNlQ29sbGVjdGlvbiwgd2hpY2ggaXMgYSB0dXBsZSBvZgor
Ly8gU3dpdGNoVmFsdWUgYW5kIEJhc2ljQmxvY2suIFlvdSBjYW4gZ2V0IGl0IGJ5IGNhbGxpbmcg
Y2FzZXMoQmFzaWNCbG9jayopIG9yIGp1c3QgY2FzZXMoKSBpZiB5b3UKKy8vIGtub3cgdGhhdCBv
d25lciBpcyBzZXQuCisKIGNsYXNzIFN3aXRjaFZhbHVlIDogcHVibGljIENvbnRyb2xWYWx1ZSB7
CiBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgYWNjZXB0cyhPcGNvZGUgb3Bjb2RlKSB7IHJldHVy
biBvcGNvZGUgPT0gU3dpdGNoOyB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNW
YWxpZGF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFs
aWRhdGUuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNWYWxpZGF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4Nyw2ICszODcsMTEgQEAgcHVibGlj
OgogICAgICAgICAgICAgICAgIFZBTElEQVRFKGlzSW50KHZhbHVlLT5jaGlsZCgwKS0+dHlwZSgp
KSwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+dHlw
ZSgpID09IFZvaWQsICgiQXQgIiwgKnZhbHVlKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlIFBvbHlKdW1wOgorICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVl
LT5udW1DaGlsZHJlbigpID09IDEsICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAgICAg
VkFMSURBVEUodmFsdWUtPmNoaWxkKDApLT50eXBlKCkgPT0gcG9pbnRlclR5cGUoKSwgKCJBdCAi
LCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+dHlwZSgpID09IFZv
aWQsICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICB9CiAKICAgICAgICAgICAgIFZBTElEQVRFKCEodmFsdWUtPmVmZmVjdHMoKS53cml0ZXMgJiYg
dmFsdWUtPmtleSgpKSwgKCJBdCAiLCAqdmFsdWUpKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM1ZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNWYWx1ZS5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM1ZhbHVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI1LDYgKzEyNSw1MCBAQCB2b2lk
IFZhbHVlOjpyZXBsYWNlV2l0aFBoaSgpCiAgICAgdGhpcy0+bV9pbmRleCA9IGluZGV4OwogfQog
Cit2b2lkIFZhbHVlOjpyZXBsYWNlV2l0aEp1bXAoQmFzaWNCbG9jayogb3duZXIsIGNvbnN0IEZy
ZXF1ZW50ZWRCbG9jayYgdGFyZ2V0KQoreworICAgIFJFTEVBU0VfQVNTRVJUKG93bmVyLT5sYXN0
KCkgPT0gdGhpcyk7CisgICAgCisgICAgdW5zaWduZWQgaW5kZXggPSBtX2luZGV4OworICAgIE9y
aWdpbiBvcmlnaW4gPSBtX29yaWdpbjsKKyAgICAKKyAgICB0aGlzLT5+VmFsdWUoKTsKKyAgICAK
KyAgICBuZXcgKHRoaXMpIFZhbHVlKEp1bXAsIFZvaWQsIG9yaWdpbik7CisgICAgCisgICAgdGhp
cy0+b3duZXIgPSBvd25lcjsKKyAgICB0aGlzLT5tX2luZGV4ID0gaW5kZXg7CisgICAgCisgICAg
b3duZXItPnNldFN1Y2Nlc3NvcnModGFyZ2V0KTsKK30KKwordm9pZCBWYWx1ZTo6cmVwbGFjZVdp
dGhPb3BzKEJhc2ljQmxvY2sqIG93bmVyKQoreworICAgIFJFTEVBU0VfQVNTRVJUKG93bmVyLT5s
YXN0KCkgPT0gdGhpcyk7CisgICAgCisgICAgdW5zaWduZWQgaW5kZXggPSBtX2luZGV4OworICAg
IE9yaWdpbiBvcmlnaW4gPSBtX29yaWdpbjsKKyAgICAKKyAgICB0aGlzLT5+VmFsdWUoKTsKKyAg
ICAKKyAgICBuZXcgKHRoaXMpIFZhbHVlKE9vcHMsIFZvaWQsIG9yaWdpbik7CisgICAgCisgICAg
dGhpcy0+b3duZXIgPSBvd25lcjsKKyAgICB0aGlzLT5tX2luZGV4ID0gaW5kZXg7CisgICAgCisg
ICAgb3duZXItPmNsZWFyU3VjY2Vzc29ycygpOworfQorCit2b2lkIFZhbHVlOjpyZXBsYWNlV2l0
aEp1bXAoY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YXJnZXQpCit7CisgICAgcmVwbGFjZVdpdGhK
dW1wKG93bmVyLCB0YXJnZXQpOworfQorCit2b2lkIFZhbHVlOjpyZXBsYWNlV2l0aE9vcHMoKQor
eworICAgIHJlcGxhY2VXaXRoT29wcyhvd25lcik7Cit9CisKIHZvaWQgVmFsdWU6OmR1bXAoUHJp
bnRTdHJlYW0mIG91dCkgY29uc3QKIHsKICAgICBib29sIGlzQ29uc3RhbnQgPSBmYWxzZTsKQEAg
LTU1Miw2ICs1OTYsNyBAQCBFZmZlY3RzIFZhbHVlOjplZmZlY3RzKCkgY29uc3QKICAgICBjYXNl
IEp1bXA6CiAgICAgY2FzZSBCcmFuY2g6CiAgICAgY2FzZSBTd2l0Y2g6CisgICAgY2FzZSBQb2x5
SnVtcDoKICAgICBjYXNlIFJldHVybjoKICAgICBjYXNlIE9vcHM6CiAgICAgICAgIHJlc3VsdC50
ZXJtaW5hbCA9IHRydWU7CkBAIC01NjAsNiArNjA1LDExIEBAIEVmZmVjdHMgVmFsdWU6OmVmZmVj
dHMoKSBjb25zdAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK2Jvb2wgVmFsdWU6OmlzQ2xvbmVh
YmxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogVmFsdWVLZXkgVmFsdWU6Omtl
eSgpIGNvbnN0CiB7CiAgICAgc3dpdGNoIChvcGNvZGUoKSkgewpAQCAtNzEzLDYgKzc2MywxMCBA
QCBUeXBlIFZhbHVlOjp0eXBlRm9yKE9wY29kZSBvcGNvZGUsIFZhbHVlCiAgICAgICAgIH0KICAg
ICAgICAgcmV0dXJuIFZvaWQ7CiAgICAgY2FzZSBOb3A6CisgICAgY2FzZSBKdW1wOgorICAgIGNh
c2UgQnJhbmNoOgorICAgIGNhc2UgUmV0dXJuOgorICAgIGNhc2UgT29wczoKICAgICAgICAgcmV0
dXJuIFZvaWQ7CiAgICAgY2FzZSBTZWxlY3Q6CiAgICAgICAgIEFTU0VSVChzZWNvbmRDaGlsZCk7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmgJKHJldmlzaW9uIDIwMjgwOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEw
OSw2ICsxMDksMTQgQEAgcHVibGljOgogICAgIHZvaWQgcmVwbGFjZVdpdGhOb3BJZ25vcmluZ1R5
cGUoKTsKICAgICAKICAgICB2b2lkIHJlcGxhY2VXaXRoUGhpKCk7CisgICAgCisgICAgLy8gVGhl
c2UgdHJhbnNmb3JtYXRpb25zIGFyZSBvbmx5IHZhbGlkIGZvciB0ZXJtaW5hbHMuCisgICAgdm9p
ZCByZXBsYWNlV2l0aEp1bXAoQmFzaWNCbG9jayogb3duZXIsIGNvbnN0IEZyZXF1ZW50ZWRCbG9j
ayYpOworICAgIHZvaWQgcmVwbGFjZVdpdGhPb3BzKEJhc2ljQmxvY2sqIG93bmVyKTsKKyAgICAK
KyAgICAvLyBZb3UgY2FuIHVzZSB0aGlzIGZvcm0gaWYgb3duZXJzIGFyZSB2YWxpZC4gVGhleSdy
ZSB1c3VhbGx5IG5vdCB2YWxpZC4KKyAgICB2b2lkIHJlcGxhY2VXaXRoSnVtcChjb25zdCBGcmVx
dWVudGVkQmxvY2smKTsKKyAgICB2b2lkIHJlcGxhY2VXaXRoT29wcygpOwogCiAgICAgdm9pZCBk
dW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAgICAgdm9pZCBkZWVwRHVtcChjb25zdCBQcm9jZWR1
cmUqLCBQcmludFN0cmVhbSYpIGNvbnN0OwpAQCAtMjIzLDYgKzIzMSwxMSBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBpc0xpa2VOb25aZXJvKCkgY29uc3QgeyByZXR1cm4gYXNUcmlTdGF0ZSgpID09IFRy
dWVUcmlTdGF0ZTsgfQogCiAgICAgRWZmZWN0cyBlZmZlY3RzKCkgY29uc3Q7CisgICAgCisgICAg
Ly8gU29tZSBvcGVyYXRpb25zIHdpbGwgcmVmdXNlIHRvIGJlIGNsb25lZC4gVGhpcyBoYXBwZW5z
IHdoZW4gdGhlIG9wZXJhdGlvbiBoYXMgc29tZSBpbnNpZGUKKyAgICAvLyBrbm93bGVkZ2UgYWJv
dXQgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIGl0cyBpZGVudGl0eSBhbmQgdGhlIGlkZW50aXR5
IG9mIHRoZSBjb2RlIGl0IHdpbGwKKyAgICAvLyBnZW5lcmF0ZS4KKyAgICB2aXJ0dWFsIGJvb2wg
aXNDbG9uZWFibGUoKSBjb25zdDsKIAogICAgIC8vIFRoaXMgcmV0dXJucyBhIFZhbHVlS2V5IHRo
YXQgZGVzY3JpYmVzIHRoYXQgdGhpcyBWYWx1ZSByZXR1cm5zIHdoZW4gaXQgZXhlY3V0ZXMuIFJl
dHVybnMgYW4KICAgICAvLyBlbXB0eSBWYWx1ZUtleSBpZiB0aGlzIFZhbHVlIGlzIGltcHVyZS4g
Tm90ZSB0aGF0IGFuIG9wZXJhdGlvbiB0aGF0IHJldHVybnMgVm9pZCBjb3VsZCBzdGlsbApAQCAt
MjY0LDYgKzI3Nyw4IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgRnJhbWVQb2ludGVyOgogICAg
ICAgICBjYXNlIE5vcDoKICAgICAgICAgY2FzZSBQaGk6CisgICAgICAgIGNhc2UgSnVtcDoKKyAg
ICAgICAgY2FzZSBPb3BzOgogICAgICAgICAgICAgaWYgKFVOTElLRUxZKG51bUFyZ3MpKQogICAg
ICAgICAgICAgICAgIGJhZE9wY29kZShvcGNvZGUsIG51bUFyZ3MpOwogICAgICAgICAgICAgYnJl
YWs7CkBAIC0yODQsNiArMjk5LDggQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBEb3VibGVUb0Zs
b2F0OgogICAgICAgICBjYXNlIElUb0Y6CiAgICAgICAgIGNhc2UgQml0d2lzZUNhc3Q6CisgICAg
ICAgIGNhc2UgQnJhbmNoOgorICAgICAgICBjYXNlIFJldHVybjoKICAgICAgICAgICAgIGlmIChV
TkxJS0VMWShudW1BcmdzICE9IDEpKQogICAgICAgICAgICAgICAgIGJhZE9wY29kZShvcGNvZGUs
IG51bUFyZ3MpOwogICAgICAgICAgICAgYnJlYWs7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvdGVzdGIzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
dGVzdGIzLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L3Rlc3RiMy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJC
M0NvbnN0UHRyVmFsdWUuaCIKICNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUg
IkIzRWZmZWN0cy5oIgorI2luY2x1ZGUgIkIzUG9seUp1bXBWYWx1ZS5oIgogI2luY2x1ZGUgIkIz
TWF0aEV4dHJhcy5oIgogI2luY2x1ZGUgIkIzTWVtb3J5VmFsdWUuaCIKICNpbmNsdWRlICJCM1By
b2NlZHVyZS5oIgpAQCAtNDYsNiArNDcsNyBAQAogI2luY2x1ZGUgIkIzVXBzaWxvblZhbHVlLmgi
CiAjaW5jbHVkZSAiQjNWYWxpZGF0ZS5oIgogI2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCisj
aW5jbHVkZSAiQjNWYXJpYWJsZVZhbHVlLmgiCiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAj
aW5jbHVkZSAiSW5pdGlhbGl6ZVRocmVhZGluZy5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIK
QEAgLTU0LDYgKzU2LDcgQEAKICNpbmNsdWRlICJWTS5oIgogI2luY2x1ZGUgPGNtYXRoPgogI2lu
Y2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDx3dGYvTGlzdER1bXAuaD4KICNpbmNsdWRlIDx3dGYv
TG9jay5oPgogI2luY2x1ZGUgPHd0Zi9OdW1iZXJPZkNvcmVzLmg+CiAjaW5jbHVkZSA8d3RmL1Ro
cmVhZGluZy5oPgpAQCAtNzUsNiArNzgsMTEgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzo6QjM7CiAK
IG5hbWVzcGFjZSB7CiAKK2Jvb2wgc2hvdWxkQmVWZXJib3NlKCkKK3sKKyAgICByZXR1cm4gc2hv
dWxkRHVtcElSKEIzTW9kZSk7Cit9CisKIFN0YXRpY0xvY2sgY3Jhc2hMb2NrOwogCiAvLyBOb3Ro
aW5nIGZhbmN5IGZvciBub3c7IHdlIGp1c3QgdXNlIHRoZSBleGlzdGluZyBXVEYgYXNzZXJ0aW9u
IG1hY2hpbmVyeS4KQEAgLTEwMTcwLDcgKzEwMTc4LDEwIEBAIHZvaWQgdGVzdFN3aXRjaENoaWxs
RGl2KHVuc2lnbmVkIGRlZ3JlZSwKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCiAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGRlZ3JlZTsgKytpKSB7Ci0gICAgICAgIENIRUNL
KGludm9rZTxpbnQzMl90PigqY29kZSwgaSAqIGdhcCwgNDIsIDExKSA9PSAoKGkgJiAxKSA/IDEx
LzQyIDogNDIvMTEpKTsKKyAgICAgICAgZGF0YUxvZygiaSA9ICIsIGksICJcbiIpOworICAgICAg
ICBpbnQzMl90IHJlc3VsdCA9IGludm9rZTxpbnQzMl90PigqY29kZSwgaSAqIGdhcCwgNDIsIDEx
KTsKKyAgICAgICAgZGF0YUxvZygicmVzdWx0ID0gIiwgcmVzdWx0LCAiXG4iKTsKKyAgICAgICAg
Q0hFQ0socmVzdWx0ID09ICgoaSAmIDEpID8gMTEvNDIgOiA0Mi8xMSkpOwogICAgICAgICBpZiAo
Z2FwID4gMSkgewogICAgICAgICAgICAgQ0hFQ0soIWludm9rZTxpbnQzMl90PigqY29kZSwgaSAq
IGdhcCArIDEsIDQyLCAxMSkpOwogICAgICAgICAgICAgQ0hFQ0soIWludm9rZTxpbnQzMl90Pigq
Y29kZSwgaSAqIGdhcCAtIDEsIDQyLCAxMSkpOwpAQCAtMTIwOTIsNiArMTIxMDMsMjMxIEBAIHZv
aWQgdGVzdExhdGVSZWdpc3RlcigpCiAgICAgQ0hFQ0soaW52b2tlPHVpbnQ2NF90PigqY29kZSkg
PT0gcmVzdWx0KTsKIH0KIAordm9pZCB0aHJlYWRlZEludGVycHJldGVyUHJpbnQoVmVjdG9yPGlu
dHB0cl90Piogc3RyZWFtLCBpbnRwdHJfdCB2YWx1ZSkKK3sKKyAgICBzdHJlYW0tPmFwcGVuZCh2
YWx1ZSk7Cit9CisKK3ZvaWQgdGVzdFRocmVhZGVkSW50ZXJwcmV0ZXIoKQoreworICAgIC8vIFRo
aXMgY3JlYXRlcyBhIHBvb3IgbWFuJ3MgdGhyZWFkZWQgaW50ZXJwcmV0ZXIgdXNpbmcgUG9seUp1
bXAgYW5kIHNlZXMgaWYgaXQgd29ya3MuIE5vdGUKKyAgICAvLyB0aGF0IFBvbHlKdW1wIGlzIG5v
dCBsaWtlIGluZGlyZWN0IGJyYW5jaGVzIGluIExMVk0sIHNvIHlvdSBjYW4ndCBhY3R1YWxseSB1
c2UgaXQgdG8KKyAgICAvLyBpbXBsZW1lbnQgYSBwcm9wZXIgdGhyZWFkZWQgaW50ZXJwcmV0ZXIu
IFRoaXMgY2hlYXRzOiB0aGUgZGlzcGF0Y2ggaW5zdHJ1Y3Rpb24gaXMgYXQgdGhlIHRvcAorICAg
IC8vIG9mIHRoZSBsb29wLiBUaGlzIGFsc28gdGVzdHMgVmFyaWFibGVWYWx1ZS4KKyAgICAKKyAg
ICBQcm9jZWR1cmUgcHJvYzsKKyAgICAKKyAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOworICAgIEJhc2ljQmxvY2sqIGRpc3BhdGNoID0gcHJvYy5hZGRCbG9jaygpOworICAg
IEJhc2ljQmxvY2sqIGFkZFRvRGF0YVBvaW50ZXIgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFz
aWNCbG9jayogYWRkVG9Db2RlUG9pbnRlciA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBCYXNpY0Js
b2NrKiBhZGRUb0NvZGVQb2ludGVyVGFrZW4gPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNC
bG9jayogYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuID0gcHJvYy5hZGRCbG9jaygpOworICAgIEJh
c2ljQmxvY2sqIGFkZFRvRGF0YSA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBCYXNpY0Jsb2NrKiBw
cmludCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBCYXNpY0Jsb2NrKiBzdG9wID0gcHJvYy5hZGRC
bG9jaygpOworICAgIAorICAgIFZhcmlhYmxlKiBkYXRhUG9pbnRlciA9IHByb2MuYWRkVmFyaWFi
bGUocG9pbnRlclR5cGUoKSk7CisgICAgVmFyaWFibGUqIGNvZGVQb2ludGVyID0gcHJvYy5hZGRW
YXJpYWJsZShwb2ludGVyVHlwZSgpKTsKKyAgICAKKyAgICByb290LT5hcHBlbmROZXc8VmFyaWFi
bGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGRhdGFQb2ludGVyLAorICAg
ICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMCkpOworICAgIHJvb3QtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVl
PigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIsCisgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIxKSk7CisgICAgVmFsdWUqIGNvbnRleHQgPSByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMik7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZy
ZXF1ZW50ZWRCbG9jayhkaXNwYXRjaCkpOworICAgIAorICAgIFBvbHlKdW1wVmFsdWUqIHBvbHlK
dW1wID0gZGlzcGF0Y2gtPmFwcGVuZE5ldzxQb2x5SnVtcFZhbHVlPigKKyAgICAgICAgcHJvYywg
T3JpZ2luKCksCisgICAgICAgIGRpc3BhdGNoLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAg
ICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCksCisgICAgICAgICAg
ICBkaXNwYXRjaC0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAgICAgICAgICAgICAgIHBy
b2MsIEIzOjpHZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlcikpKTsKKyAgICBwb2x5SnVtcC0+YXBw
ZW5kU3VjY2Vzc29yKEZyZXF1ZW50ZWRCbG9jayhhZGRUb0RhdGFQb2ludGVyKSk7CisgICAgcG9s
eUp1bXAtPmFwcGVuZFN1Y2Nlc3NvcihGcmVxdWVudGVkQmxvY2soYWRkVG9Db2RlUG9pbnRlcikp
OworICAgIHBvbHlKdW1wLT5hcHBlbmRTdWNjZXNzb3IoRnJlcXVlbnRlZEJsb2NrKGFkZFRvRGF0
YSkpOworICAgIHBvbHlKdW1wLT5hcHBlbmRTdWNjZXNzb3IoRnJlcXVlbnRlZEJsb2NrKHByaW50
KSk7CisgICAgcG9seUp1bXAtPmFwcGVuZFN1Y2Nlc3NvcihGcmVxdWVudGVkQmxvY2soc3RvcCkp
OworICAgIAorICAgIC8vIE91ciAib3Bjb2RlcyIuIFRoZXkgd2lsbCBoYXZlIG1lYW5pbmcgb25j
ZSB3ZSBjb21waWxlLgorICAgIGludHB0cl90IEFkZERQID0gMDsKKyAgICBpbnRwdHJfdCBBZGRD
UCA9IDA7CisgICAgaW50cHRyX3QgQWRkID0gMDsKKyAgICBpbnRwdHJfdCBQcmludCA9IDA7Cisg
ICAgaW50cHRyX3QgU3RvcCA9IDA7CisgICAgcG9seUp1bXAtPnNldENhbGxiYWNrKAorICAgICAg
ICBbJl0gKGNvbnN0IFZlY3RvcjxNYWNyb0Fzc2VtYmxlckNvZGVQdHI+JiBwb2ludGVycykgewor
ICAgICAgICAgICAgYXV0byBnZXQgPSBbJl0gKHNpemVfdCBpbmRleCkgLT4gaW50cHRyX3Qgewor
ICAgICAgICAgICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8aW50cHRyX3Q+KHBvaW50ZXJzW2lu
ZGV4XS5leGVjdXRhYmxlQWRkcmVzcygpKTsKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICAK
KyAgICAgICAgICAgIEFkZERQID0gZ2V0KDApOworICAgICAgICAgICAgQWRkQ1AgPSBnZXQoMSk7
CisgICAgICAgICAgICBBZGQgPSBnZXQoMik7CisgICAgICAgICAgICBQcmludCA9IGdldCgzKTsK
KyAgICAgICAgICAgIFN0b3AgPSBnZXQoNCk7CisgICAgICAgIH0pOworICAgIAorICAgIC8vIEFk
ZERQIDxvcGVyYW5kPjogYWRkcyA8b3BlcmFuZD4gdG8gRFAuCisgICAgVmFsdWUqIGNvZGVQb2lu
dGVyVmFsdWUgPQorICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVW
YWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyKTsKKyAgICBhZGRUb0Rh
dGFQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwg
T3JpZ2luKCksIGRhdGFQb2ludGVyLAorICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmRO
ZXc8VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgQjM6OkFkZCwgT3JpZ2luKCksCisgICAgICAg
ICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6
OkdldCwgT3JpZ2luKCksIGRhdGFQb2ludGVyKSwKKyAgICAgICAgICAgIGFkZFRvRGF0YVBvaW50
ZXItPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICAgICAgcHJvYywgTXVsLCBPcmlnaW4o
KSwKKyAgICAgICAgICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8TWVtb3J5VmFs
dWU+KAorICAgICAgICAgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmln
aW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwgc2l6ZW9mKGludHB0cl90KSksCisgICAgICAgICAgICAg
ICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kSW50Q29uc3RhbnQoCisgICAgICAgICAgICAgICAg
ICAgIHByb2MsIE9yaWdpbigpLCBwb2ludGVyVHlwZSgpLCBzaXplb2YoaW50cHRyX3QpKSkpKTsK
KyAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAg
IHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyLAorICAgICAgICBhZGRUb0RhdGFQb2lu
dGVyLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgQjM6OkFkZCwgT3JpZ2lu
KCksIGNvZGVQb2ludGVyVmFsdWUsCisgICAgICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBl
bmRJbnRDb25zdGFudCgKKyAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5
cGUoKSwgc2l6ZW9mKGludHB0cl90KSAqIDIpKSk7CisgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9j
ayhkaXNwYXRjaCkpOworICAgIAorICAgIC8vIEFkZENQIDxvcGVyYW5kPjogYWRkcyA8b3BlcmFu
ZD4gdG8gQ1AgaWYgdGhlIGN1cnJlbnQgdmFsdWUgYXQgRFAgaXMgbm9uLXplcm8sIG90aGVyd2lz
ZQorICAgIC8vIGZhbGxzIHRocm91Z2ggbm9ybWFsbHkuCisgICAgY29kZVBvaW50ZXJWYWx1ZSA9
CisgICAgICAgIGFkZFRvQ29kZVBvaW50ZXItPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPihwcm9j
LCBCMzo6R2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIpOworICAgIFZhbHVlKiBkYXRhUG9pbnRl
clZhbHVlID0KKyAgICAgICAgYWRkVG9Db2RlUG9pbnRlci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFs
dWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRlcik7CisgICAgYWRkVG9Db2Rl
UG9pbnRlci0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHByb2MsIEJyYW5jaCwg
T3JpZ2luKCksCisgICAgICAgIGFkZFRvQ29kZVBvaW50ZXItPmFwcGVuZE5ldzxNZW1vcnlWYWx1
ZT4oCisgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwgZGF0
YVBvaW50ZXJWYWx1ZSksCisgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhhZGRUb0NvZGVQb2ludGVy
VGFrZW4pLCBGcmVxdWVudGVkQmxvY2soYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuKSk7CisgICAg
YWRkVG9Db2RlUG9pbnRlclRha2VuLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAg
IHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyLAorICAgICAgICBhZGRUb0NvZGVQb2lu
dGVyVGFrZW4tPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBCMzo6QWRkLCBP
cmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwKKyAgICAgICAgICAgIGFkZFRvQ29kZVBvaW50ZXJU
YWtlbi0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgICAgICBwcm9jLCBNdWwsIE9yaWdp
bigpLAorICAgICAgICAgICAgICAgIGFkZFRvQ29kZVBvaW50ZXJUYWtlbi0+YXBwZW5kTmV3PE1l
bW9yeVZhbHVlPigKKyAgICAgICAgICAgICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5cGUo
KSwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUsIHNpemVvZihpbnRwdHJfdCkpLAorICAgICAg
ICAgICAgICAgIGFkZFRvQ29kZVBvaW50ZXJUYWtlbi0+YXBwZW5kSW50Q29uc3RhbnQoCisgICAg
ICAgICAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLCBwb2ludGVyVHlwZSgpLCBzaXplb2YoaW50
cHRyX3QpKSkpKTsKKyAgICBhZGRUb0NvZGVQb2ludGVyVGFrZW4tPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZGlzcGF0Y2gpKTsK
KyAgICBhZGRUb0NvZGVQb2ludGVyTm90VGFrZW4tPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPigK
KyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIsCisgICAgICAgIGFkZFRv
Q29kZVBvaW50ZXJOb3RUYWtlbi0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2Ms
IEIzOjpBZGQsIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLAorICAgICAgICAgICAgYWRkVG9D
b2RlUG9pbnRlck5vdFRha2VuLT5hcHBlbmRJbnRDb25zdGFudCgKKyAgICAgICAgICAgICAgICBw
cm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6ZW9mKGludHB0cl90KSAqIDIpKSk7Cisg
ICAgYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICAgICAgcHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhkaXNwYXRjaCkpOwor
CisgICAgLy8gQWRkIDxvcGVyYW5kPjogYWRkcyA8b3BlcmFuZD4gdG8gdGhlIHNsb3QgcG9pbnRl
ZCB0byBieSBEUC4KKyAgICBjb2RlUG9pbnRlclZhbHVlID0gYWRkVG9EYXRhLT5hcHBlbmROZXc8
VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyKTsKKyAg
ICBkYXRhUG9pbnRlclZhbHVlID0gYWRkVG9EYXRhLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4o
cHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGRhdGFQb2ludGVyKTsKKyAgICBhZGRUb0RhdGEtPmFw
cGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgIHByb2MsIFN0b3JlLCBPcmlnaW4oKSwKKyAg
ICAgICAgYWRkVG9EYXRhLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgQjM6
OkFkZCwgT3JpZ2luKCksCisgICAgICAgICAgICBhZGRUb0RhdGEtPmFwcGVuZE5ldzxNZW1vcnlW
YWx1ZT4oCisgICAgICAgICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2lu
KCksIGRhdGFQb2ludGVyVmFsdWUpLAorICAgICAgICAgICAgYWRkVG9EYXRhLT5hcHBlbmROZXc8
TWVtb3J5VmFsdWU+KAorICAgICAgICAgICAgICAgIHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCks
IE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLCBzaXplb2YoaW50cHRyX3QpKSksCisgICAgICAg
IGRhdGFQb2ludGVyVmFsdWUpOworICAgIGFkZFRvRGF0YS0+YXBwZW5kTmV3PFZhcmlhYmxlVmFs
dWU+KAorICAgICAgICBwcm9jLCBTZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlciwKKyAgICAgICAg
YWRkVG9EYXRhLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgQjM6OkFkZCwg
T3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUsCisgICAgICAgICAgICBhZGRUb0RhdGEtPmFwcGVu
ZEludENvbnN0YW50KHByb2MsIE9yaWdpbigpLCBwb2ludGVyVHlwZSgpLCBzaXplb2YoaW50cHRy
X3QpICogMikpKTsKKyAgICBhZGRUb0RhdGEtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZGlzcGF0Y2gpKTsKKyAgICAKKyAgICAv
LyBQcmludDogInByaW50cyIgdGhlIHZhbHVlIHBvaW50ZWQgdG8gYnkgRFAuIFdoYXQgdGhpcyBh
Y3R1YWxseSBtZWFucyBpcyB0aGF0IHRoZSB2YWx1ZSBpcworICAgIC8vIGFwcGVuZGVkIHRvIHRo
ZSBzdHJlYW0gdmVjdG9yIGJ5IHRoZSB0aHJlYWRlZEludGVycHJldGVyUHJpbnQgZnVuY3Rpb24u
CisgICAgY29kZVBvaW50ZXJWYWx1ZSA9IHByaW50LT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4o
cHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyKTsKKyAgICBkYXRhUG9pbnRlclZh
bHVlID0gcHJpbnQtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPihwcm9jLCBCMzo6R2V0LCBPcmln
aW4oKSwgZGF0YVBvaW50ZXIpOworICAgIHByaW50LT5hcHBlbmROZXc8Q0NhbGxWYWx1ZT4oCisg
ICAgICAgIHByb2MsIFZvaWQsIE9yaWdpbigpLAorICAgICAgICBwcmludC0+YXBwZW5kTmV3PENv
bnN0UHRyVmFsdWU+KAorICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksIGJpdHdpc2VfY2FzdDx2
b2lkKj4odGhyZWFkZWRJbnRlcnByZXRlclByaW50KSksCisgICAgICAgIGNvbnRleHQsCisgICAg
ICAgIHByaW50LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIHBvaW50ZXJUeXBl
KCksIE9yaWdpbigpLCBkYXRhUG9pbnRlclZhbHVlKSk7CisgICAgcHJpbnQtPmFwcGVuZE5ldzxW
YXJpYWJsZVZhbHVlPigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIs
CisgICAgICAgIHByaW50LT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgQjM6
OkFkZCwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUsCisgICAgICAgICAgICBwcmludC0+YXBw
ZW5kSW50Q29uc3RhbnQocHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBlKCksIHNpemVvZihpbnRw
dHJfdCkpKSk7CisgICAgcHJpbnQtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAs
IE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZGlzcGF0Y2gpKTsKKyAgICAKKyAgICAvLyBTdG9w
OiByZXR1cm5zLgorICAgIHN0b3AtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgICAgICBzdG9wLT5hcHBlbmRJbnRDb25zdGFudChw
cm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgMCkpOworICAgIAorICAgIGF1dG8gaW50ZXJw
cmV0ZXIgPSBjb21waWxlKHByb2MpOworICAgIAorICAgIENIRUNLKEFkZERQKTsKKyAgICBDSEVD
SyhBZGRDUCk7CisgICAgQ0hFQ0soQWRkKTsKKyAgICBDSEVDSyhQcmludCk7CisgICAgQ0hFQ0so
U3RvcCk7CisgICAgCisgICAgVmVjdG9yPGludHB0cl90PiBkYXRhOworICAgIFZlY3RvcjxpbnRw
dHJfdD4gY29kZTsKKyAgICBWZWN0b3I8aW50cHRyX3Q+IHN0cmVhbTsKKyAgICAKKyAgICBkYXRh
LmFwcGVuZCgxKTsKKyAgICBkYXRhLmFwcGVuZCgwKTsKKyAgICAKKyAgICBpZiAoc2hvdWxkQmVW
ZXJib3NlKCkpCisgICAgICAgIGRhdGFMb2coImRhdGEgPSAiLCBsaXN0RHVtcChkYXRhKSwgIlxu
Iik7CisgICAgCisgICAgLy8gV2UnbGwgd3JpdGUgYSBwcm9ncmFtIHRoYXQgcHJpbnRzIHRoZSBu
dW1iZXJzIDEuLjEwMC4KKyAgICAvLyBXZSBleHBlY3QgRFAgdG8gcG9pbnQgYXQgIzAuCisgICAg
Y29kZS5hcHBlbmQoQWRkQ1ApOworICAgIGNvZGUuYXBwZW5kKDYpOyAvLyBnbyB0byBsb29wIGJv
ZHkKKyAgICAKKyAgICAvLyBMb29wIHJlLWVudHJ5OgorICAgIC8vIFdlIGV4cGVjdCBEUCB0byBw
b2ludCBhdCAjMSBhbmQgZm9yICMxIHRvIGJlIG9mZnNldCBieSAtMTAwLgorICAgIGNvZGUuYXBw
ZW5kKEFkZCk7CisgICAgY29kZS5hcHBlbmQoMTAwKTsKKyAgICAKKyAgICBjb2RlLmFwcGVuZChB
ZGREUCk7CisgICAgY29kZS5hcHBlbmQoLTEpOworICAgIAorICAgIC8vIExvb3AgaGVhZGVyOgor
ICAgIC8vIFdlIGV4cGVjdCBEUCB0byBwb2ludCBhdCAjMC4KKyAgICBjb2RlLmFwcGVuZChBZGRE
UCk7CisgICAgY29kZS5hcHBlbmQoMSk7CisgICAgCisgICAgY29kZS5hcHBlbmQoQWRkKTsKKyAg
ICBjb2RlLmFwcGVuZCgxKTsKKyAgICAKKyAgICBjb2RlLmFwcGVuZChQcmludCk7CisgICAgCisg
ICAgY29kZS5hcHBlbmQoQWRkKTsKKyAgICBjb2RlLmFwcGVuZCgtMTAwKTsKKyAgICAKKyAgICAv
LyBXZSB3YW50IHRvIHN0b3AgaWYgaXQncyB6ZXJvIGFuZCBjb250aW51ZSBpZiBpdCdzIG5vbi16
ZXJvLiBBZGRDUCB0YWtlcyB0aGUgYnJhbmNoIGlmIGl0J3MKKyAgICAvLyBub24temVyby4KKyAg
ICBjb2RlLmFwcGVuZChBZGRDUCk7CisgICAgY29kZS5hcHBlbmQoLTExKTsgLy8gZ28gdG8gbG9v
cCByZS1lbnRyeS4KKyAgICAKKyAgICBjb2RlLmFwcGVuZChTdG9wKTsKKyAgICAKKyAgICBpZiAo
c2hvdWxkQmVWZXJib3NlKCkpCisgICAgICAgIGRhdGFMb2coImNvZGUgPSAiLCBsaXN0RHVtcChj
b2RlKSwgIlxuIik7CisgICAgCisgICAgQ0hFQ0soIWludm9rZTxpbnRwdHJfdD4oKmludGVycHJl
dGVyLCBkYXRhLmRhdGEoKSwgY29kZS5kYXRhKCksICZzdHJlYW0pKTsKKyAgICAKKyAgICBDSEVD
SyhzdHJlYW0uc2l6ZSgpID09IDEwMCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDEw
MDsgKytpKQorICAgICAgICBDSEVDSyhzdHJlYW1baV0gPT0gaSArIDEpOworICAgIAorICAgIGlm
IChzaG91bGRCZVZlcmJvc2UoKSkKKyAgICAgICAgZGF0YUxvZygic3RyZWFtID0gIiwgbGlzdER1
bXAoc3RyZWFtKSwgIlxuIik7Cit9CisKIHZvaWQgdGVzdFJlZHVjZVN0cmVuZ3RoQ2hlY2tCb3R0
b21Vc2VJbkFub3RoZXJCbG9jaygpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CkBAIC0xMzU0Nyw4
ICsxMzc4MywxMyBAQCB2b2lkIHJ1bihjb25zdCBjaGFyKiBmaWx0ZXIpCiAgICAgUlVOKHRlc3RT
cGlsbERlZlNtYWxsZXJUaGFuVXNlKCkpOwogICAgIFJVTih0ZXN0U3BpbGxVc2VMYXJnZXJUaGFu
RGVmKCkpOwogICAgIFJVTih0ZXN0TGF0ZVJlZ2lzdGVyKCkpOworPDw8PDw8PCAubWluZQorICAg
IAorICAgIFJVTih0ZXN0VGhyZWFkZWRJbnRlcnByZXRlcigpKTsKKz09PT09PT0KICAgICBSVU4o
dGVzdFJlZHVjZVN0cmVuZ3RoQ2hlY2tCb3R0b21Vc2VJbkFub3RoZXJCbG9jaygpKTsKICAgICBS
VU4odGVzdFJlc2V0UmVhY2hhYmlsaXR5RGFuZ2xpbmdSZWZlcmVuY2UoKSk7Cis+Pj4+Pj4+IC5y
MjAyODA5CiAKICAgICBpZiAodGFza3MuaXNFbXB0eSgpKQogICAgICAgICB1c2FnZSgpOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmgJKHJldmlzaW9uIDIwMjgwOSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiQWlyU3BlY2lhbC5oIgogI2luY2x1ZGUgIkFp
clN0YWNrU2xvdC5oIgogI2luY2x1ZGUgIkFpclRtcC5oIgorI2luY2x1ZGUgIkIzSW5kZXhNYXAu
aCIKICNpbmNsdWRlICJCM1NwYXJzZUNvbGxlY3Rpb24uaCIKICNpbmNsdWRlICJSZWdpc3RlckF0
T2Zmc2V0TGlzdC5oIgogI2luY2x1ZGUgIlN0YWNrQWxpZ25tZW50LmgiCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRlLmNwcAkocmV2aXNpb24gMjAyODA5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0ZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQ4LDEwICs0OCwxMyBAQAogI2luY2x1ZGUgIkFpclZhbGlkYXRlLmgiCiAj
aW5jbHVkZSAiQjNDb21tb24uaCIKICNpbmNsdWRlICJCM0luZGV4TWFwLmgiCisjaW5jbHVkZSAi
QjNQb2x5SnVtcFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNQcm9jZWR1cmUuaCIKICNpbmNsdWRlICJC
M1RpbWluZ1Njb3BlLmgiCisjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJD
Q2FsbEhlbHBlcnMuaCIKICNpbmNsdWRlICJEaXNhbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNh
Z2UuaCIKKyNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3Bh
Y2UgQjMgeyBuYW1lc3BhY2UgQWlyIHsKIApAQCAtMTk2LDcgKzE5OSw4IEBAIHZvaWQgZ2VuZXJh
dGUoQ29kZSYgY29kZSwgQ0NhbGxIZWxwZXJzJiAKIAogICAgIGZvciAoQmFzaWNCbG9jayogYmxv
Y2sgOiBjb2RlKSB7CiAgICAgICAgIGJsb2NrSnVtcHNbYmxvY2tdLmxpbmsoJmppdCk7Ci0gICAg
ICAgIGJsb2NrTGFiZWxzW2Jsb2NrXSA9IGppdC5sYWJlbCgpOworICAgICAgICBDQ2FsbEhlbHBl
cnM6OkxhYmVsIGxhYmVsID0gaml0LmxhYmVsKCk7CisgICAgICAgIGJsb2NrTGFiZWxzW2Jsb2Nr
XSA9IGxhYmVsOwogICAgICAgICBBU1NFUlQoYmxvY2stPnNpemUoKSA+PSAxKTsKICAgICAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGJsb2NrLT5zaXplKCkgLSAxOyArK2kpIHsKICAgICAg
ICAgICAgIEluc3QmIGluc3QgPSBibG9jay0+YXQoaSk7CkBAIC0yMjgsMjYgKzIzMiw1NCBAQCB2
b2lkIGdlbmVyYXRlKENvZGUmIGNvZGUsIENDYWxsSGVscGVycyYgCiAgICAgICAgICAgICBhZGRJ
dGVtKGJsb2NrLT5sYXN0KCkpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KLQor
ICAgICAgICAKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGp1bXAgPSBibG9jay0+bGFzdCgp
LmdlbmVyYXRlKGppdCwgY29udGV4dCk7Ci0gICAgICAgIHN3aXRjaCAoYmxvY2stPm51bVN1Y2Nl
c3NvcnMoKSkgewotICAgICAgICBjYXNlIDA6Ci0gICAgICAgICAgICBBU1NFUlQoIWp1bXAuaXNT
ZXQoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAxOgotICAgICAgICAgICAg
bGluayhqdW1wLCBibG9jay0+c3VjY2Vzc29yQmxvY2soMCkpOwotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIGNhc2UgMjoKLSAgICAgICAgICAgIGxpbmsoanVtcCwgYmxvY2stPnN1Y2Nlc3Nv
ckJsb2NrKDApKTsKLSAgICAgICAgICAgIGlmIChibG9jay0+c3VjY2Vzc29yQmxvY2soMSkgIT0g
Y29kZS5maW5kTmV4dEJsb2NrKGJsb2NrKSkKLSAgICAgICAgICAgICAgICBsaW5rKGppdC5qdW1w
KCksIGJsb2NrLT5zdWNjZXNzb3JCbG9jaygxKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgZGVmYXVsdDoKLSAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0g
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgLy8gVGhlIGp1bXAgd29uJ3QgYmUgc2V0IGZvciBQ
b2x5SnVtcCBiZWNhdXNlIGl0IGxldHMgaXRzIGZhaXRoIGluIHRoZSBhZGRyZXNzIG9wZXJhbmQK
KyAgICAgICAgLy8gZ3VpZGUgd2hlcmUgaXQganVtcHMuIEl0IHdvbid0IGJlIHNldCBmb3IgT29w
cyBiZWNhdXNlIHRoZW4gaXQgd29uJ3QgaGF2ZSBhbnkgc3VjY2Vzc29ycy4KKyAgICAgICAgaWYg
KGp1bXAuaXNTZXQoKSkgeworICAgICAgICAgICAgc3dpdGNoIChibG9jay0+bnVtU3VjY2Vzc29y
cygpKSB7CisgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgbGluayhqdW1wLCBi
bG9jay0+c3VjY2Vzc29yQmxvY2soMCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAgIGxpbmsoanVtcCwgYmxvY2stPnN1Y2Nlc3Nv
ckJsb2NrKDApKTsKKyAgICAgICAgICAgICAgICBpZiAoYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDEp
ICE9IGNvZGUuZmluZE5leHRCbG9jayhibG9jaykpCisgICAgICAgICAgICAgICAgICAgIGxpbmso
aml0Lmp1bXAoKSwgYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDEpKTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0K
ICAgICAgICAgfQogICAgICAgICBhZGRJdGVtKGJsb2NrLT5sYXN0KCkpOwogICAgIH0KKyAgICAK
KyAgICAvLyBUYWtlIGNhcmUgb2YgUG9seUp1bXAuIFdlIGRvIHRoaXMgbGFzdCBiZWNhdXNlIGl0
IHJlbGllcyBvbiBrbm93aW5nIHdoZXJlIGFsbCBvZiB0aGUgYmFzaWMKKyAgICAvLyBibG9jayBs
YW5kZWQuCisgICAgZm9yIChCYXNpY0Jsb2NrKiBibG9jayA6IGNvZGUpIHsKKyAgICAgICAgaWYg
KGJsb2NrLT5sYXN0KCkub3Bjb2RlICE9IFBvbHlKdW1wKQorICAgICAgICAgICAgY29udGludWU7
CisgICAgICAgIAorICAgICAgICBQb2x5SnVtcFZhbHVlKiBwb2x5SnVtcCA9IGJsb2NrLT5sYXN0
KCkub3JpZ2luLT5hczxQb2x5SnVtcFZhbHVlPigpOworICAgICAgICBSRUxFQVNFX0FTU0VSVChw
b2x5SnVtcC0+bnVtU3VjY2Vzc29ycygpID09IGJsb2NrLT5udW1TdWNjZXNzb3JzKCkpOworICAg
ICAgICAKKyAgICAgICAgUmVmUHRyPFNoYXJlZFRhc2s8UG9seUp1bXBWYWx1ZTo6Q2FsbGJhY2tG
dW5jdGlvblR5cGU+PiB0YXNrID0gcG9seUp1bXAtPmNhbGxiYWNrVGFzaygpOworICAgICAgICBp
ZiAoIXRhc2spCisgICAgICAgICAgICBjb250aW51ZTsgLy8gVGhpcyB3b3VsZCBiZSB3ZWlyZCwg
YnV0IHdlIGFsbG93IGl0LgorICAgICAgICAKKyAgICAgICAgVmVjdG9yPENDYWxsSGVscGVyczo6
TGFiZWw+IGxhYmVsczsKKyAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBzdWNjZXNzb3IgOiBibG9j
ay0+c3VjY2Vzc29yQmxvY2tzKCkpCisgICAgICAgICAgICBsYWJlbHMuYXBwZW5kKGJsb2NrTGFi
ZWxzW3N1Y2Nlc3Nvcl0pOworICAgICAgICAKKyAgICAgICAgaml0LmFkZExpbmtUYXNrKAorICAg
ICAgICAgICAgWz1dIChMaW5rQnVmZmVyJiBsaW5rQnVmZmVyKSB7CisgICAgICAgICAgICAgICAg
VmVjdG9yPE1hY3JvQXNzZW1ibGVyQ29kZVB0cj4gcG9pbnRlcnM7CisgICAgICAgICAgICAgICAg
Zm9yIChDQ2FsbEhlbHBlcnM6OkxhYmVsIGxhYmVsIDogbGFiZWxzKQorICAgICAgICAgICAgICAg
ICAgICBwb2ludGVycy5hcHBlbmQobGlua0J1ZmZlci5sb2NhdGlvbk9mKGxhYmVsKSk7CisgICAg
ICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgdGFzay0+cnVuKHBvaW50ZXJzKTsKKyAgICAg
ICAgICAgIH0pOworICAgIH0KIAogICAgIHBjVG9PcmlnaW5NYXAuYXBwZW5kSXRlbShqaXQubGFi
ZWwoKSwgT3JpZ2luKCkpOwogICAgIC8vIEZJWE1FOiBNYWtlIGxhdGUgcGF0aHMgaGF2ZSBPcmln
aW5zOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzNjg5CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckluc3QuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdC5jcHAJKHJldmlzaW9uIDIwMjgw
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQ1LDYgKzQ1LDExIEBAIGJvb2wgSW5zdDo6aGFzQXJnRWZmZWN0cygpCiAgICAg
cmV0dXJuIHJlc3VsdDsKIH0KIAorYm9vbCBJbnN0Ojppc0Nsb25lYWJsZSgpCit7CisgICAgcmV0
dXJuICFvcmlnaW4gfHwgb3JpZ2luLT5pc0Nsb25lYWJsZSgpOworfQorCiB1bnNpZ25lZCBJbnN0
Ojpqc0hhc2goKSBjb25zdAogewogICAgIHVuc2lnbmVkIHJlc3VsdCA9IHN0YXRpY19jYXN0PHVu
c2lnbmVkPihvcGNvZGUpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJ
bnN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0
LmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWly
SW5zdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODgsNiArMTg4LDEwIEBAIHB1YmxpYzoKICAgICAv
LyByZXR1cm5zIDIgaWYgMCBhbmQgMSBiZW5lZml0IGZyb20gYWxpYXNpbmcgdG8gVG1wMy4KICAg
ICBPcHRpb25hbDx1bnNpZ25lZD4gc2hvdWxkVHJ5QWxpYXNpbmdEZWYoKTsKICAgICAKKyAgICAv
LyBTb21lIGluc3R1Y3Rpb25zIHdpbGwgcmVmdXNlIHRvIGFsbG93IGNsb25pbmcuIElmIHRoaXMg
cmV0dXJucyBmYWxzZSwgeW91IG11c3QgbWFrZSBzdXJlIHRoYXQKKyAgICAvLyB5b3UgbmV2ZXIg
aW50cm9kdWNlIGNvcGllcyBvZiB0aGUgaW5zdHJ1Y3Rpb24uCisgICAgYm9vbCBpc0Nsb25lYWJs
ZSgpOworICAgIAogICAgIC8vIFRoaXMgY29tcHV0ZXMgYSBoYXNoIGZvciBjb21wYXJpbmcgdGhp
cyB0byBKU0FpcidzIEluc3QuCiAgICAgdW5zaWduZWQganNIYXNoKCkgY29uc3Q7CiAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyT3Bjb2RlLm9wY29kZXMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUub3Bjb2RlcwkocmV2
aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJPcGNvZGUu
b3Bjb2Rlcwkod29ya2luZyBjb3B5KQpAQCAtODM1LDYgKzgzNSwxNCBAQCBNb3ZlRG91YmxlQ29u
ZGl0aW9uYWxseUZsb2F0IFU6RzozMiwgVTpGCiAKIEp1bXAgL2JyYW5jaAogCisjIFRoaXMgbWFz
cXVlcmFkZXMgYXMgYSBub24tYnJhbmNoIHRlcm1pbmFsIGJlY2F1c2UgaXQgZG9lc24ndCBuZWVk
IHRoZSB0cmFkaXRpb25hbCBzb3J0IG9mIGxpbmtpbmcuCisjICJCcmFuY2giIGluIHRoaXMgY29u
dGV4dCBqdXN0IG1lYW5zIHRoYXQgaXQncyBhIHRlcm1pbmFsIHRoYXQgcmV0dXJucyBhIEp1bXAg
dGhhdCBuZWVkcyB0byBiZQorIyBsaW5rZWQuIEluc3RlYWQsIEFpcjo6Z2VuZXJhdGUoKSBoYXMg
YSBzcGVjaWFsLWNhc2UgZm9yIFBvbHlKdW1wLgorUG9seUp1bXAgVTpHOlB0ciAvdGVybWluYWwK
KyAgICBUbXAgYXMganVtcAorICAgIHg4NjogQWRkciBhcyBqdW1wCisgICAgeDg2OiBJbmRleCBh
cyBqdW1wCisKIFJldDMyIFU6RzozMiAvcmV0dXJuCiAgICAgVG1wCiAKSW5kZXg6IFdlYnNpdGVz
L3dlYmtpdC5vcmcvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3dlYmtpdC5vcmcv
Q2hhbmdlTG9nCShyZXZpc2lvbiAyMDI4MDkpCisrKyBXZWJzaXRlcy93ZWJraXQub3JnL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE2LTA1LTI5ICBGaWxpcCBQ
aXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IHRhYmxlLWJhc2Vk
IHN3aXRjaGVzIGluIEIzL0FpcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTUxMTQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisgICAgICAgIAorICAgICAgICBVcGRhdGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIG5ldyBQb2x5
SnVtcCBvcGNvZGUuCisKKyAgICAgICAgKiBkb2NzL2IzL2ludGVybWVkaWF0ZS1yZXByZXNlbnRh
dGlvbi5odG1sOgorCiAyMDE2LTA3LTAxICBKb24gRGF2aXMgIDxqb25kQGFwcGxlLmNvbT4KIAog
ICAgICAgICBBZGRlZCBhIGNvbG9yZnVsIG5ldyBpbWFnZSBhbmQgZml4ZWQgdGhlIE9wZW4gR3Jh
cGggYXR0cmlidXRlLgpJbmRleDogV2Vic2l0ZXMvd2Via2l0Lm9yZy9kb2NzL2IzL2ludGVybWVk
aWF0ZS1yZXByZXNlbnRhdGlvbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3dlYmtpdC5v
cmcvZG9jcy9iMy9pbnRlcm1lZGlhdGUtcmVwcmVzZW50YXRpb24uaHRtbAkocmV2aXNpb24gMjAy
ODA5KQorKysgV2Vic2l0ZXMvd2Via2l0Lm9yZy9kb2NzL2IzL2ludGVybWVkaWF0ZS1yZXByZXNl
bnRhdGlvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01MzcsNiArNTM3LDM5IEBAIHBhdGNocG9p
bnQtPnNldEdlbmVyYXRvcigKICAgICAgICAgYWxzbyBjb250YWlucyBhIGZhbGwtdGhyb3VnaCB0
YXJnZXQgaW4gY2FzZSB0aGUgY2hpbGQgaGFzIGEgdmFsdWUgdGhhdCB3YXNuJ3QgbWVudGlvbmVk
CiAgICAgICAgIGluIHRoZSBjYXNlcyBsaXN0LiAgTXVzdCB1c2UgdGhlIFN3aXRjaFZhbHVlIGNs
YXNzLiAgTXVzdCBhcHBlYXIgYXQgdGhlIGVuZCBvZiB0aGUgYmFzaWMKICAgICAgICAgYmxvY2su
PC9kZD4KKyAgICAgIAorICAgICAgPGR0PlZvaWQgUG9seUp1bXAoSW50UHRyLCBibG9ja3MuLi4p
PC9kdD4KKyAgICAgIDxkZD4KKyAgICAgICAgPHA+SnVtcHMgdG8gdGhlIGdpdmVuIGFkZHJlc3Mu
IFRoZSBjb21waWxlciB3aWxsIGFzc3VtZSB0aGF0IHRoaXMganVtcHMgdG8gb25lIG9mIHRoZSBn
aXZlbgorICAgICAgICAgIGJsb2Nrcy4gVGhlIGNvbXBpbGVyIG1ha2VzIG5vIGF0dGVtcHQgdG8g
cHJvdmUgb3IgdmFsaWRhdGUgdGhhdCB0aGUgcGFzc2VkIGp1bXAgYWRkcmVzcyBpcworICAgICAg
ICAgIGFjdHVhbGx5IHRoZSBhZGRyZXNzIG9mIGFueSBvZiB0aG9zZSBibG9ja3MuIE5vbnNlbnNp
Y2FsIHRoaW5ncyB3aWxsIGhhcHBlbiBpZiB0aGUgcGFzc2VkCisgICAgICAgICAgYWRkcmVzcyBp
cyBub3QgdGhlIGFkZHJlc3Mgb2Ygb25lIG9mIHRoZSBibG9ja3MgaW4gdGhlIHN1Y2Nlc3NvciBs
aXN0LiBZb3UgY2FuIGFycmFuZ2UgdG8KKyAgICAgICAgICBnZXQgdGhlIGFkZHJlc3NlcyBvZiBi
bG9ja3MgYnkgcGFzc2luZyBhIGNhbGxiYWNrIHRvIFBvbHlKdW1wLiBUaGlzIGlzIHVzZWQgaW50
ZXJuYWxseQorICAgICAgICAgIGZvciBsb3dlcmluZyBTd2l0Y2ggb3Bjb2Rlcy4gWW91IGNhbiBh
bHNvIHVzZSBpdCBkaXJlY3RseS48L3A+CisgICAgICAKKyAgICAgICAgPHA+UG9seUp1bXAgaXMg
bm90IGNsb25lYWJsZS4gRm9yIGVhY2ggUG9seUp1bXAgeW91IGNyZWF0ZSwgdGhlcmUgd2lsbCBi
ZSBvbmUgaW5kaXJlY3QKKyAgICAgICAgICBqdW1wIGdlbmVyYXRlZC4gVGhpcyBpcyBuZWNlc3Nh
cnkgdG8gZW5zdXJlIHNvdW5kbmVzcyBvZiB0aGUgY2FsbGJhY2suIElmIHRoZSBQb2x5SnVtcAor
ICAgICAgICAgIGNvdWxkIGJlIGNsb25lZCwgdGhlbiB0aGUgY2FsbGJhY2sgd291bGQgZ2V0IGNh
bGxlZCBmb3IgZWFjaCBjbG9uZS4gUHJlc3VtYWJseSwgeW91J2QKKyAgICAgICAgICBpbXBsZW1l
bnQgdGhlIGNhbGxiYWNrIGJ5IHBvcHVsYXRpbmcgc29tZSB0YWJsZSB3aXRoIHRoZSBhZGRyZXNz
ZXMgb2YgdGhlIGJsb2Nrcy4gSWYgdGhlCisgICAgICAgICAgY2FsbGJhY2sgZ2V0cyBjYWxsZWQg
bXVsdGlwbGUgdGltZXMgdGhlbiBpdCBtYXkgcmV0dXJuIGRpZmZlcmVudCBhZGRyZXNzZXMgZWFj
aCB0aW1lIC0KKyAgICAgICAgICBzaW5jZSBhZnRlciBjbG9uaW5nIGEgUG9seUp1bXAsIHRoZSBj
b21waWxlciBtYXkgcmV0YXJnZXQgYW55IG9mIGl0cyBzdWNjZXNzb3IgZWRnZXMuCisgICAgICAg
ICAgVGhpcyB3b3VsZCBiZSBjb25mdXNpbmcsIHNpbmNlIHRoZW4geW91IHdvdWxkbid0IGtub3cg
d2hhdCB0byBkbyB3aXRoIGRpc2NyZXBhbmNpZXMgYmV0d2VlbgorICAgICAgICAgIGFkZHJlc3Nl
cyByZXR1cm5lZCBieSB0aGUgdmFyaW91cyBjYWxscyB0byB0aGUgY2FsbGJhY2suIERpc2FsbG93
aW5nIGNsb25pbmcgb2YgUG9seUp1bXAKKyAgICAgICAgICBzb2x2ZXMgdGhpcyBwcm9ibGVtLjwv
cD4KKyAgICAgICAgCisgICAgICAgIDxwPkEgY2xvc2VseSByZWxhdGVkIHByb2JsZW0gaXMgdGhh
dCBpZiB5b3UgZW1pdCBtdWx0aXBsZSBQb2x5SnVtcCBpbnN0cnVjdGlvbnMsIHRoZW4gZXZlbgor
ICAgICAgICAgIGlmIHRoZXkgaW5pdGlhbGx5IHNoYXJlIHRoZSBzYW1lIHN1Y2Nlc3NvcnMsIHlv
dSBjYW5ub3QgZ3VhcmFudGVlIHRoYXQgdGhleSB3aWxsIGNvbnRpbnVlCisgICAgICAgICAgdG8g
c2hhcmUgdGhlIHNhbWUgc3VjY2Vzc29ycyBhZnRlciBvcHRpbWl6YXRpb24uIFRoaXMgbWVhbnMg
dGhhdCBQb2x5SnVtcCBjYW5ub3QKKyAgICAgICAgICBjdXJyZW50bHkgYmUgdXNlZCBmb3IgaW1w
bGVtZW50aW5nIGRpcmVjdCB0aHJlYWRlZCBpbnRlcnByZXRlcnMsIGF0IGxlYXN0IG5vdCB0aGUg
Y2xhc3NpYworICAgICAgICAgIGtpbmQ6IHRvIG1ha2UgaXQgd29yaywgeW91IGhhdmUgdG8gaGF2
ZSBhIHNoYXJlZCBkaXNwYXRjaCBibG9jayBzbyB0aGF0IHlvdSBoYXZlIGEgc2luZ2xlCisgICAg
ICAgICAgUG9seUp1bXAuIFRoaXMgbWlnaHQgYmUgYmV0dGVyIHRoYW4gYSBTd2l0Y2gtYmFzZWQg
aW50ZXJwcmV0ZXIsIGJ1dCBpdCdzIGRlZmluaXRlbHkgbm90CisgICAgICAgICAgYXMgZ29vZCBh
cyB3aGF0IHlvdSdkIGdldCB3aXRoIEdDQy1zdHlsZSBjb21wdXRlZCBnb3RvLjwvcD4KKyAgICAg
ICAgCisgICAgICAgIDxwPlBvbHlKdW1wIGlzIHNvIG5hbWVkIHRvIGF2b2lkIGNvbmZ1c2lvbiB3
aXRoIGNvbXB1dGVkIGdvdG9zIGFuZCBpbmRpcmVjdCBicmFuY2hlcyBpbgorICAgICAgICAgIG90
aGVyIGNvbXBpbGVycy4gSXQgaGFzIHNpZ25pZmljYW50IHJlc3RyaWN0aW9ucyB0aGF0IHRob3Nl
IG9wZXJhdGlvbnMgZG8gbm90IGhhdmUuIFRoZXNlCisgICAgICAgICAgcmVzdHJpY3Rpb25zIG1h
a2UgaXQgZWFzaWVyIGZvciB0aGUgb3B0aW1pemVyIHRvIHdvcmsgd2l0aCBzaW5jZSB0aGUgY29u
dHJvbCBmbG93IGdldHMgdG8KKyAgICAgICAgICBiZSBleHBsaWNpdCAoUG9seUp1bXAgaGFzIGEg
ZmluaXRlIHNldCBvZiBzdWNjZXNzb3JzIGxpa2UgYW55IG90aGVyIGJsb2NrIHRlcm1pbmFsKS48
L3A+CisgICAgICA8L2RkPgogCiAgICAgICA8ZHQ+Vm9pZCBSZXR1cm4oVCk8L2R0PgogICAgICAg
PGRkPldvcmtzIGZvciBhbnkgdHlwZSBleGNlcHQgVm9pZC4gIFJldHVybnMgdGhlIGdpdmVuIHZh
bHVlIGFuZCB0ZXJtaW5hdGVzIHRoZSBwcm9jZWR1cmUuCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMDI4
MDkpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
NSBAQAorMjAxNi0wNS0yOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAg
ICAgIEltcGxlbWVudCB0YWJsZS1iYXNlZCBzd2l0Y2hlcyBpbiBCMy9BaXIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTE0MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICoganMvcmVncmVzcy9iaWdzd2l0
Y2gtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2JpZ3N3aXRjaC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9iaWdzd2l0Y2gu
anM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKwogMjAxNi0wNy0wNCAgWXVzdWtlIFN1enVraSAg
PHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBza2lwIG1pc2Mt
YnVncy04NDczODktanBlZzIwMDAuanMgaW4ganNjIHN0cmVzcyB0ZXN0cwpJbmRleDogTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2gtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3MvYmlnc3dpdGNoCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRU
ZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL2JpZ3N3aXRjaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIgQEAK
KzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdy
ZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2JpZ3N3aXRj
aC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL3NjcmlwdC10ZXN0cy9iaWdzd2l0Y2guanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvYmlnc3dpdGNoLmpzCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvYmlnc3dpdGNoLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMjExIEBACitmdW5jdGlvbiBmb28obykgeworICAgIHZhciByZXN1
bHQgPSAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgKytpKSB7CisgICAgICAgIHZh
ciB2YWx1ZSA9IGkgJiA2MzsKKyAgICAgICAgc3dpdGNoICh2YWx1ZSkgeworICAgICAgICBjYXNl
IDA6CisgICAgICAgICAgICByZXN1bHQgKz0gby5hOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgMToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYzsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICByZXN1bHQgKz0gby5kOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDoKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1OgorICAgICAgICAgICAg
cmVzdWx0ICs9IG8uZjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDY6CisgICAg
ICAgICAgICByZXN1bHQgKz0gby5nOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
NzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSA4OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIDk6CisgICAgICAgICAgICByZXN1bHQgKz0gby5qOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTA6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTE6CisgICAgICAgICAgICByZXN1bHQg
Kz0gby5hOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTI6CisgICAgICAgICAg
ICByZXN1bHQgKz0gby5iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTM6Cisg
ICAgICAgICAgICByZXN1bHQgKz0gby5jOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgMTQ6CisgICAgICAgICAgICByZXN1bHQgKz0gby5kOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgMTU6CisgICAgICAgICAgICByZXN1bHQgKz0gby5lOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgMTY6CisgICAgICAgICAgICByZXN1bHQgKz0gby5mOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTc6CisgICAgICAgICAgICByZXN1bHQgKz0g
by5nOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTg6CisgICAgICAgICAgICBy
ZXN1bHQgKz0gby5oOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTk6CisgICAg
ICAgICAgICByZXN1bHQgKz0gby5pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
MjA6CisgICAgICAgICAgICByZXN1bHQgKz0gby5qOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgMjE6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgMjI6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjM6CisgICAgICAgICAgICByZXN1bHQgKz0gby5h
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjQ6CisgICAgICAgICAgICByZXN1
bHQgKz0gby5iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjU6CisgICAgICAg
ICAgICByZXN1bHQgKz0gby5jOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjY6
CisgICAgICAgICAgICByZXN1bHQgKz0gby5kOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgMjc6CisgICAgICAgICAgICByZXN1bHQgKz0gby5lOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgMjg6CisgICAgICAgICAgICByZXN1bHQgKz0gby5mOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjk6CisgICAgICAgICAgICByZXN1bHQgKz0gby5nOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzA6CisgICAgICAgICAgICByZXN1bHQg
Kz0gby5oOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzE6CisgICAgICAgICAg
ICByZXN1bHQgKz0gby5pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzI6Cisg
ICAgICAgICAgICByZXN1bHQgKz0gby5qOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgMzM6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgMzQ6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgMzU6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzY6CisgICAgICAgICAgICByZXN1bHQgKz0g
by5hOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzc6CisgICAgICAgICAgICBy
ZXN1bHQgKz0gby5iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzg6CisgICAg
ICAgICAgICByZXN1bHQgKz0gby5jOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
Mzk6CisgICAgICAgICAgICByZXN1bHQgKz0gby5kOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgNDA6CisgICAgICAgICAgICByZXN1bHQgKz0gby5lOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgNDE6CisgICAgICAgICAgICByZXN1bHQgKz0gby5mOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDI6CisgICAgICAgICAgICByZXN1bHQgKz0gby5n
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDM6CisgICAgICAgICAgICByZXN1
bHQgKz0gby5oOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDQ6CisgICAgICAg
ICAgICByZXN1bHQgKz0gby5pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDU6
CisgICAgICAgICAgICByZXN1bHQgKz0gby5qOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgNDY6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgNDc6CisgICAgICAgICAgICByZXN1bHQgKz0gby5pOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDg6CisgICAgICAgICAgICByZXN1bHQgKz0gby5qOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDk6CisgICAgICAgICAgICByZXN1bHQg
Kz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTA6CisgICAgICAgICAg
ICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTE6Cisg
ICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgNTI6CisgICAgICAgICAgICByZXN1bHQgKz0gby5hOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgNTM6CisgICAgICAgICAgICByZXN1bHQgKz0gby5iOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgNTQ6CisgICAgICAgICAgICByZXN1bHQgKz0gby5jOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTU6CisgICAgICAgICAgICByZXN1bHQgKz0g
by5kOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTY6CisgICAgICAgICAgICBy
ZXN1bHQgKz0gby5lOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTc6CisgICAg
ICAgICAgICByZXN1bHQgKz0gby5mOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
NTg6CisgICAgICAgICAgICByZXN1bHQgKz0gby5nOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgNTk6CisgICAgICAgICAgICByZXN1bHQgKz0gby5oOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgNjA6CisgICAgICAgICAgICByZXN1bHQgKz0gby5pOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNjE6CisgICAgICAgICAgICByZXN1bHQgKz0gby5q
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNjI6CisgICAgICAgICAgICByZXN1
bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAg
ICAgICByZXN1bHQgKz0gby56OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworKGZ1bmN0aW9uKCkgeworICAgIHZhciBvID0ge2E6
MSwgYjoyLCBjOjMsIGQ6NCwgZTo1LCBmOjYsIGc6NywgaDo4LCBpOjksIGo6MTAsIGs6MTEsIHo6
MTAwfTsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAw
OyArK2kpCisgICAgICAgIHJlc3VsdCArPSBmb28obyk7CisgICAgaWYgKHJlc3VsdCAhPSA3OTY2
MDAwMCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfSko
KTsKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282732</attachid>
            <date>2016-07-04 13:44:17 -0700</date>
            <delta_ts>2016-07-04 13:49:49 -0700</delta_ts>
            <desc>tiny bit more</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>94353</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2NiBA
QAorMjAxNi0wNS0yOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IEltcGxlbWVudCB0YWJsZS1iYXNlZCBzd2l0Y2hlcyBpbiBCMy9BaXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTE0MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgSWYgYSBzd2l0Y2ggc3Rh
dGVtZW50IGdldHMgbGFyZ2UsIGl0J3MgYmV0dGVyIHRvIGV4cHJlc3MgaXQgYXMgYW4gaW5kaXJl
Y3QganVtcCByYXRoZXIgdGhhbgorICAgICAgICB1c2luZyBhIGJpbmFyeSBzd2l0Y2ggKGRpdmlk
ZS1hbmQtY29ucXVlciB0cmVlIG9mIGNvbXBhcmlzb25zIGxlYWRpbmcgdG8gTyhsb2cgbikgYnJh
bmNoZXMgdG8KKyAgICAgICAgZ2V0IHRvIHRoZSBzd2l0Y2ggY2FzZSkuIFdoZW4gZGVhbGluZyB3
aXRoIGludGVnZXIgc3dpdGNoZXMsIEZUTCB3aWxsIGFscmVhZHkgdXNlIHRoZSBCMworICAgICAg
ICBTd2l0Y2ggYW5kIGV4cGVjdCB0aGlzIHRvIGdldCBsb3dlcmVkIGFzIGVmZmljaWVudGx5IGFz
IHBvc3NpYmxlOyBpdCdzIGEgYnVnIHRoYXQgQjMgd2lsbAorICAgICAgICBhbHdheXMgdXNlIGEg
YmluYXJ5IHN3aXRjaCByYXRoZXIgdGhhbiBpbmRpcmVjdCBqdW1wcy4gV2hlbiBkZWFsaW5nIHdp
dGggc3dpdGNoZXMgb3ZlciBzb21lCisgICAgICAgIG1vcmUgc29waGlzdGljYXRlZCB0eXBlcywg
d2UnZCB3YW50IEZUTCB0byBidWlsZCBhbiBpbmRpcmVjdCBqdW1wIHRhYmxlIGl0c2VsZiBhbmQg
dXNlCisgICAgICAgIHNvbWV0aGluZyBsaWtlIGEgaGFzaHRhYmxlIHRvIGZlZWQgaXQuIEluIHRo
YXQgY2FzZSwgdGhlcmUgd2lsbCBiZSBubyBCMyBTd2l0Y2g7IHdlJ2xsIHdhbnQKKyAgICAgICAg
c29tZSBraW5kIG9mIGluZGlyZWN0IGp1bXAgaW5zdHJ1Y3Rpb24uCisgICAgICAgIAorICAgICAg
ICBUaGlzIGltcGxpZXMgdGhhdCB3ZSB3YW50IEIzIHRvIGhhdmUgdGhlIGFiaWxpdHkgdG8gbG93
ZXIgU3dpdGNoIHRvIGluZGlyZWN0IGp1bXBzIGFuZCB0bworICAgICAgICBleHBvc2UgdGhvc2Ug
aW5kaXJlY3QganVtcHMgaW4gSVIgc28gdGhhdCB0aGUgRlRMIGNvdWxkIGRvIGl0cyBvd24gaW5k
aXJlY3QganVtcHMgZm9yCisgICAgICAgIHN3aXRjaGVzIG92ZXIgbW9yZSBjb21wbGljYXRlZCB0
aGluZ3MgbGlrZSBzdHJpbmdzLiBUaGlzIGNoYW5nZSBpbnRyb2R1Y2VzIGFuIGluZGlyZWN0IGp1
bXAKKyAgICAgICAgaW5zdHJ1Y3Rpb24gdG8gQjMgYW5kIGNhbGxzIGl0IFBvbHlKdW1wLiBJdCBo
YXMgc29tZSB1bmlxdWUgc2VtYW50aWNzIHRoYXQgbWFrZSBpdCB2ZXJ5CisgICAgICAgIGRpZmZl
cmVudCBmcm9tICJpbmRpcmVjdCBqdW1wcyIsICJpbmRpcmVjdCBicmFuY2hlcyIsIGFuZCAiY29t
cHV0ZWQgZ290b3MiIC0gYWxsIHRlcm1zIG9mIGFydAorICAgICAgICB1c2VkIGluIG90aGVyIGNv
bXBpbGVycy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaW1wbGVtZW50cyB0aGUgbW9zdCBiYXNp
YyBraW5kIG9mIFN3aXRjaC10by1Qb2x5SnVtcCBsb3dlcmluZyBpbiBCMzo6bG93ZXJNYWNyb3Mo
KS4gQXMKKyAgICAgICAgcGFydCBvZiB0aGUgZXhpc3RpbmcgZGl2aWRlLWFuZC1jb25xdWVyIHRo
YXQgY3JlYXRlcyBicmFuY2hlcywgaWYgaXQgZGV0ZWN0cyB0aGF0IHRoZSBzZXQgb2YKKyAgICAg
ICAgY2FzZXMgc2F0aXNmaWVzIHNvbWUgY29uZGl0aW9ucyAoZGVuc2l0eSBvZiBjYXNlIHZhbHVl
cyBhbmQgdG90YWwgc2l6ZSksIHRoZW4gaXQgd2lsbCBlbWl0IGEKKyAgICAgICAgUG9seUp1bXAu
CisgICAgICAgIAorICAgICAgICBUaGUgcHJvYmxlbSB3aXRoIGNsYXNzaWMgaW5kaXJlY3QganVt
cHMgaXMgdGhhdCB0aGV5IGZvcmNlIHRoZSBjb21waWxlciB0byBiZSBjb25zZXJ2YXRpdmUKKyAg
ICAgICAgYWJvdXQgY29udHJvbCBmbG93LiBUaGUgY29tcGlsZXIgbXVzdCBhc3N1bWUgdGhhdCB0
aGUgaW5kaXJlY3QganVtcCBtYXkgdHJhbnNmZXIgY29udHJvbCBmbG93CisgICAgICAgIHRvIGFu
eSBlc2NhcGVkIGJsb2NrIChibG9jayBsYWJlbGVkIGFzIGJlaW5nIGEgcG9zc2libGUgdGFyZ2V0
IGZvciBpbmRpcmVjdCBqdW1wcywgb3IgaWYgbm8KKyAgICAgICAgc3VjaCBsYWJlbGluZyBpcyBh
dmFpbGFibGUsIHRoZSBjb21waWxlciBtdXN0IGFzc3VtZSB0aGF0IGl0IG1heSB0YXJnZXQgYW55
IGJsb2NrKS4gVGhlIHdvcnN0CisgICAgICAgIHBhcnQgaXMgdGhhdCB0aGUgaW1wbGljaXQgY29u
dHJvbCBmbG93IGVkZ2VzIGZyb20gdGhlIGluZGlyZWN0IGp1bXAgdG8gdGhlIGVzY2FwZWQgYmxv
Y2tzCisgICAgICAgIGNhbm5vdCBiZSBicm9rZW4uIFRoaXMgaW52YWxpZGF0ZXMgYSBwcmluY2lw
bGUgb2YgQjMgSVI6IGFueSBwaGFzZSBtYXkgYnJlYWsgYW55IGNyaXRpY2FsCisgICAgICAgIGVk
Z2UgZm9yIGFueSByZWFzb24uIE91ciBTU0EgY29udmVyc2lvbiB3b3VsZCBicmVhayBpZiB3ZSBy
ZXZva2VkIHRoaXMgZmVhdHVyZS4gSXQncyBhY3R1YWxseQorICAgICAgICBtdWNoIHdvcnNlIHRo
YW4gdGhpcyAtIGJhc2ljYWxseSBhbnkgbG9naWMgb3ZlciBjb250cm9sIGZsb3cgd291bGQgaGF2
ZSB0byBiZSBoYWNrZWQgdG8gZGVhbAorICAgICAgICB3aXRoIHRoZXNlIHVuYnJlYWthYmxlIGVk
Z2VzLiBUaGlzIHdvdWxkIG1lYW4gY2hhbmdpbmcgYWxsIENGRyB0cmFuc2Zvcm1hdGlvbiB1dGls
aXRpZXMgYW5kCisgICAgICAgIHBhc3Nlcy4gV2UgaGF2ZSBhIGxvdCBvZiB0aG9zZSBhbmQgd2Ug
d2FudCBpdCB0byBiZSBlYXN5IHRvIHdyaXRlIG5ldyBvbmVzLgorICAgICAgICAKKyAgICAgICAg
VGhpcyBpcyB3aHkgd2UgdXNlIHNvbWV0aGluZyBuZXcgYW5kIHF1aXRlIGRpZmZlcmVudCBmcm9t
IGNsYXNzaWMgaW5kaXJlY3QganVtcHMuIFBvbHlKdW1wCisgICAgICAgIG1ha2VzIHRoZSBjb250
cm9sIGZsb3cgZWRnZXMgZXhwbGljaXQuIFRoZSBjbGllbnQgbXVzdCBzdXBwbHkgdGhlIHN1Y2Nl
c3NvcnMgd2hlbiBpdCBjcmVhdGVzCisgICAgICAgIHRoZSBQb2x5SnVtcC4gVGhlIGNvbXBpbGVy
IG1heSByZXdpcmUgdGhvc2Ugc3VjY2Vzc29yIGVkZ2VzIHRoZSBzYW1lIHdheSB0aGF0IGl0IHdv
dWxkIHJld2lyZQorICAgICAgICBhbnkgY29udHJvbCBmbG93IGVkZ2VzLiBDb25zZXF1ZW50bHkg
dGhlIHZhc3QgbWFqb3JpdHkgb2YgQ0ZHIHJlYXNvbmluZyBpbiBCMyBpcyB1bmNoYW5nZWQuCisg
ICAgICAgIElmIHlvdSBkb24ndCB3YW50IHRvIHVuZGVyc3RhbmQgUG9seUp1bXAsIGp1c3QgdGhp
bmsgb2YgaXQgbGlrZSB5b3Ugd291bGQgYSBTd2l0Y2ggd2l0aCBhbgorICAgICAgICBvcGFxdWUg
aW5jb21pbmcgdmFsdWUuIFRoaXMgd29ya3MgYmVjYXVzZSB3ZSBkbyBub3QgYWRkIGFueSBub3Rp
b24gb2YgZXNjYXBlZCBiYXNpYyBibG9ja3MuCisgICAgICAgIEluc3RlYWQgb2YgbGV0dGluZyB0
aGUgY2xpZW50IGdldCB0aGUgcG9pbnRlcnMgdG8gYmFzaWMgYmxvY2tzIGJ5IGVzY2FwaW5nIHRo
ZW0gbGlrZSBpbiBMTFZNLAorICAgICAgICB5b3UgY2FuIG9ubHkgZ2V0IHRoZSBwb2ludGVycyBv
ZiB0aGUgc3VjY2Vzc29ycyBvZiBQb2x5SnVtcCBieSByZWdpc3RlcmluZyBhIGNhbGxiYWNrIHdp
dGgKKyAgICAgICAgUG9seUp1bXAuIFRoaXMgY2FsbGJhY2sgZG9lc24ndCBhY3R1YWxseSBnaXZl
IHlvdSB0aGUgYWRkcmVzc2VzIG9mIGJhc2ljIGJsb2Nrcy4gSXQganVzdAorICAgICAgICBnaXZl
cyB5b3UgdGhlIGFkZHJlc3NlcyB3aGVyZSB5b3UgbXVzdCBqdW1wIHRvIHRyYW5zZmVyIGNvbnRy
b2wgZmxvdyBmcm9tIHRoYXQgUG9seUp1bXAgdG8KKyAgICAgICAgaXRzIHN1Y2Nlc3NvcnMuIFRo
aXMgbWVhbnMgdGhhdCB0aGUgbWFnaWMgb2YgUG9seUp1bXAgaXMgY29uZmluZWQgb25seSB0byB0
aGUgUG9seUp1bXAgaXRzZWxmCisgICAgICAgIGFuZCBkb2Vzbid0IGluZmVjdCByZWFzb25pbmcg
YWJvdXQgdGhlIGJhc2ljIGJsb2NrcyB0aGF0IGl0IGp1bXBzIHRvLgorICAgICAgICAKKyAgICAg
ICAgVGhlIG9ubHkgZG93bnNpZGUgaXMgdGhhdCB0aGF0IFBvbHlKdW1wIGlzIG5vdCBjbG9uZWFi
bGUuIFlvdSBjYW4ndCBjbG9uZSBpdCBiZWNhdXNlIGlmIHlvdQorICAgICAgICBkaWQsIHRoZW4g
dGhlIHR3byByZXN1bHRpbmcgUG9seUp1bXBzIG1heSBoYXZlIHRoZWlyIHN1Y2Nlc3NvciBlZGdl
cyByZXdpcmVkIGluZGVwZW5kZW50bHkgb2YKKyAgICAgICAgZWFjaCBvdGhlci4gVGhpcyBjb3Vs
ZCBlYXNpbHkgaGFwcGVuIGlmIHdlIGJyZWFrIGNyaXRpY2FsIGVkZ2VzLiBJZiB0aGF0IGRpZCBo
YXBwZW4gdGhlbiBpdAorICAgICAgICB3b3VsZCBicmVhayB0aGUgY2xpZW50IG9mIFBvbHlKdW1w
OiB0aGV5IHdvdWxkIGhhdmUgYWxyZWFkeSBjcmVhdGVkIHNvbWV0aGluZyBsaWtlIGEganVtcAor
ICAgICAgICB0YWJsZSBhbmQgd2lsbCBiZSBwb3B1bGF0aW5nIGl0IHZpYSB0aGUgY2FsbGJhY2ss
IGJ1dCBub3cgdGhlIGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkIHR3aWNlLAorICAgICAgICBhbmQg
bWF5IHJldHVybiBkaWZmZXJlbnQganVtcCBkZXN0aW5hdGlvbnMgZWFjaCB0aW1lLiBTbywgdGhp
cyBwYXRjaCBpbnRyb2R1Y2VzCisgICAgICAgIFZhbHVlOjppc0Nsb25lYWJsZSgpIGFuZCB0ZWFj
aGVzIGJvdGggb2Ygb3VyIGNvZGUgc3BlY2lhbGl6YXRpb24gb3B0aW1pemF0aW9ucyAodGFpbAor
ICAgICAgICBkdXBsaWNhdGlvbiBhbmQgc2VsZWN0IHNwZWNpYWxpemF0aW9uKSB0byBiYWlsIGlm
IHRoZSBjb2RlIHRoZXkgd2FudCB0byBzcGVjaWFsaXplIGlzIG5vdAorICAgICAgICBjbG9uZWFi
bGUuIFRoaXMgaXMgdG90YWxseSBiZW5pZ24gbW9zdCBvZiB0aGUgdGltZSwgc2luY2UgdGhvc2Ug
b3B0aW1pemF0aW9ucyB1c3VhbGx5IHJ1bgorICAgICAgICBiZWZvcmUgU3dpdGNoIGxvd2VyaW5n
LiBDbGllbnRzIHRoYXQgdXNlIFBvbHlKdW1wIGRpcmVjdGx5IGhhdmUgdG8gYXBwcmVjaWF0ZSB0
aGUgdHJhZGUtb2ZmOgorICAgICAgICBQb2x5SnVtcCBtYXkgZ2FpbiB0aGVtIHNvbWUgcGVyZm9y
bWFuY2UgYnV0IHRoZXkgYXJlIG9wdGluZyBvdXQgb2Ygb3B0aW1pemF0aW9ucyB0aGF0IHVzZQor
ICAgICAgICBjbG9uaW5nLiBBIGNsb3NlIGNvcm9sbGFyeSBvZiB0aGUgbm8tY2xvbmUgcnVsZSBp
cyB0aGF0IHRoZSBjbGllbnQgY2Fubm90IGNyZWF0ZSBtdWx0aXBsZQorICAgICAgICBQb2x5SnVt
cHMgdGhhdCBhcmUgZmVkIGJ5IGEgY29tbW9uIGp1bXAgdGFibGU6IHRoZSBmYWN0IHRoYXQgZWFj
aCBQb2x5SnVtcCBoYXMgYSBjYWxsYmFjaworICAgICAgICB0aGF0IGp1c3QgdGVsbHMgeW91IHRo
ZSBqdW1wIGRlc3RpbmF0aW9ucyBmb3IgaXRzIHN1Y2Nlc3NvciAqZWRnZXMqLCBub3Qgc3VjY2Vz
c29yICpibG9ja3MqLAorICAgICAgICBtZWFucyB0aGF0IGlmIHlvdSBjcmVhdGUgdHdvIFBvbHlK
dW1wcyBhbmQgZ2l2ZSB0aGVtIHRoZSBzYW1lIHN1Y2Nlc3NvciBsaXN0LCB5b3UgYXJlIG5vdAor
ICAgICAgICBndWFyYW50ZWVkIHRoYXQgdGhleSB3aWxsIGdldCB0aGUgc2FtZSBqdW1wIGRlc3Rp
bmF0aW9ucy4gVGhpcyBodXJ0cyBpZiB5b3Ugd2FudCB0byB1c2UKKyAgICAgICAgUG9seUp1bXAg
Zm9yIHRocmVhZGVkIGludGVycHJldGVycyBidXQgaXQncyBoYXJtbGVzcyBmb3Igc3dpdGNoIGxv
d2VyaW5nLiBUaGUgZ29hbCBvZgorICAgICAgICBQb2x5SnVtcCBpcyB0byBiZSBhd2Vzb21lIGZv
ciBzd2l0Y2ggbG93ZXJpbmcgd2hpbGUgbm90IGJyZWFraW5nIHRoZSByZXN0IG9mIHRoZSBjb21w
aWxlciwgc28KKyAgICAgICAgdGhpcyBpcyBwcm9iYWJseSBmaW5lLgorICAgICAgICAKKyAgICAg
ICAgVGhlIGlzQ2xvbmVhYmxlKCkgbWV0aG9kIGN1cnJlbnRseSBvbmx5IHJldHVybnMgdHJ1ZSBm
b3IgUG9seUp1bXAsIGJ1dCBJIGFudGljaXBhdGUgd2Ugd2lsbAorICAgICAgICBhZGQgb3RoZXIg
bm9uLWNsb25lYWJsZSB0aGluZ3MgbGF0ZXIuIEkgdGhpbmsgaXMgaXMgaW5oZXJlbnQgaW4gYSBj
b21waWxlciB0aGF0IGFsbG93cyBzdWNoCisgICAgICAgIGN1c3RvbWl6ZWFiaWxpdHkgZm9yIGl0
cyBjbGllbnRzLiBGb3IgZXhhbXBsZSwgd2UgbWF5IHdhbnQgdG8gYWRkIGEgZmxhZyB0byBQYXRj
aHBvaW50IHRoYXQKKyAgICAgICAgbWFrZXMgaXQgbm9uLWNsb25lYWJsZS4gU29tZXRpbWVzIHdl
IGhhdmUgdG8ganVtcCB0aHJvdWdoIGhvb3BzIGluIHRoZSBGVEwgYmVjYXVzZSBvZiB0aGUKKyAg
ICAgICAgY2xvbmVhYmlsaXR5IG9mIHBhdGNocG9pbnRzLiBUaGlzIGhhcHBlbnMgaW4gT1NSIGV4
aXRzLCB3aGljaCBwYXkgYSBzaWduaWZpY2FudCBtZW1vcnkgY29zdAorICAgICAgICBmb3IgYWRk
aXRpb25hbCBkYXRhIHN0cnVjdHVyZXMgdGhhdCBhcmUgdGhlcmUgaW4gY2FzZSBhbiBleGl0IGdl
dHMgY2xvbmVkLiBJdCBtYXkgYmUgbW9yZQorICAgICAgICBwcm9maXRhYmxlIHRvIGp1c3Qgc2F5
IHRoYXQgT1NSIGV4aXRzIChpLmUuIENoZWNrcyBhbmQgSW52YWxpZGF0aW9uUG9pbnQgUGF0Y2hw
b2ludHMpIGFyZSBub3QKKyAgICAgICAgY2xvbmVhYmxlLiBTdXJlbHkgdGhpcyB3b3VsZCByZWR1
Y2UgdGFpbCBkdXBsaWNhdGlvbiwgYnV0IHRhaWwgZHVwbGljYXRpb24gaXMgbW9zdCBwcm9maXRh
YmxlCisgICAgICAgIHdoZW4gaXQgY2xvbmVzIG9ubHkgYSB0aW55IGFtb3VudCBvZiBjb2RlOyBp
ZiB0aGVyZSdzIGFuIGV4aXQgdGhlbiB3ZSdyZSBub3QgdGFsa2luZyBhYm91dCBhCisgICAgICAg
IHRpbnkgYW1vdW50IG9mIGNvZGUgYW55bW9yZS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaXMg
YSB+MzAlIHNwZWVkLXVwIG9uIG1pY3JvYmVuY2htYXJrcyB0aGF0IGhhdmUgYmlnIHN3aXRjaCBz
dGF0ZW1lbnRzICh+NjAgY2FzZXMpLiBJdCdzCisgICAgICAgIG5vdCBhIHNwZWVkLXVwIG9uIG1h
aW5zdHJlYW0gYmVuY2htYXJrcy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgYWxzbyBhZGRzIGEg
bmV3IHRlc3QgdG8gdGVzdGIzIGZvciBQb2x5SnVtcCwgR2V0LCBhbmQgU2V0LiBUaGUgRlRMIGRv
ZXMgbm90IGN1cnJlbnRseQorICAgICAgICB1c2UgUG9seUp1bXAgZGlyZWN0bHksIGJ1dCB3ZSB3
YW50IHRoaXMgdG8gYmUgcG9zc2libGUuIEl0IGFsc28gZG9lc24ndCB1c2UgR2V0L1NldCBkaXJl
Y3RseQorICAgICAgICBldmVuIHRob3VnaCB3ZSB3YW50IHRoaXMgdG8gYmUgcG9zc2libGUuIEl0
J3MgaW1wb3J0YW50IHRvIHRlc3QgdGhlc2Ugc2luY2Ugb3Bjb2RlcyB0aGF0CisgICAgICAgIHJl
c3VsdCBmcm9tIGxvd2VyaW5nIGRvbid0IGFmZmVjdCBlYXJseSBwaGFzZXMsIHNvIHdlIGNvdWxk
IGhhdmUgcmVncmVzc2lvbnMgaW4gZWFybHkgcGhhc2VzCisgICAgICAgIHJlbGF0ZWQgdG8gdGhl
c2Ugb3Bjb2RlcyB0aGF0IHdvdWxkbid0IGJlIGNhdWdodCBieSBhbnkgSlMgdGVzdC4gU28sIHRo
aXMgYWRkcyBhIHZlcnkgYmFzaWMKKyAgICAgICAgdGhyZWFkZWQgaW50ZXJwcmV0ZXIgdG8gdGVz
dGIzIGZvciBhIEJyYWluZnVjay1zdHlsZSBsYW5ndWFnZSwgYW5kIHRlc3RzIGl0IGJ5IGhhdmlu
ZyBpdCBydW4KKyAgICAgICAgYSBwcm9ncmFtIHRoYXQgcHJpbnRzIHRoZSBudW1iZXJzIDEuLjEw
MCBpbiBhIGxvb3AuIFVubGlrZSBhIHJlYWwgdGhyZWFkZWQgaW50ZXJwcmV0ZXIsIGl0CisgICAg
ICAgIHVzZXMgYSBjb21tb24gZGlzcGF0Y2ggYmxvY2sgcmF0aGVyIHRoYW4gaGF2aW5nIGRpc3Bh
dGNoIGF0IHRoZSB0ZXJtaW51cyBvZiBlYWNoIG9wY29kZS4KKyAgICAgICAgVGhhdCdzIG5lY2Vz
c2FyeSBiZWNhdXNlIFBvbHlKdW1wIGlzIG5vdCBjbG9uZWFibGUuIFRoZSBzdGF0ZSBvZiB0aGUg
aW50ZXJwcmV0ZXIgaXMKKyAgICAgICAgcmVwcmVzZW50ZWQgdXNpbmcgVmFyaWFibGVzIHRoYXQg
d2UgR2V0IGFuZCBTZXQsIHNvIGl0IHRlc3RzIEdldC9TZXQgYXMgd2VsbC4KKworICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9u
Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpqdW1wKToKKyAgICAg
ICAgKiBhc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxl
cjo6am1wX20pOgorICAgICAgICAqIGIzL0IzQmFzaWNCbG9jay5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpCYXNpY0Jsb2NrOjp1cGRhdGVQcmVkZWNlc3NvcnNBZnRlcik6CisgICAgICAgIChKU0M6
OkIzOjpCYXNpY0Jsb2NrOjppc0Nsb25lYWJsZSk6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Js
b2NrOjpkdW1wKToKKyAgICAgICAgKiBiMy9CM0Jhc2ljQmxvY2suaDoKKyAgICAgICAgKEpTQzo6
QjM6OkJhc2ljQmxvY2s6OmZyZXF1ZW5jeSk6CisgICAgICAgICogYjMvQjNDb21tb24uaDoKKyAg
ICAgICAgKEpTQzo6QjM6OmlzNjRCaXQpOgorICAgICAgICAqIGIzL0IzQ29udHJvbFZhbHVlLmg6
CisgICAgICAgICogYjMvQjNEYXRhU2VjdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkIzOjpEYXRh
U2VjdGlvbjo6RGF0YVNlY3Rpb24pOgorICAgICAgICAqIGIzL0IzRHVwbGljYXRlVGFpbHMuY3Bw
OgorICAgICAgICAqIGIzL0IzTG93ZXJNYWNyb3MuY3BwOgorICAgICAgICAqIGIzL0IzTG93ZXJU
b0Fpci5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okxvd2VyVG9BaXI6Omxvd2VyKToKKyAg
ICAgICAgKiBiMy9CM09wY29kZS5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgor
ICAgICAgICAqIGIzL0IzT3Bjb2RlLmg6CisgICAgICAgICogYjMvQjNQb2x5SnVtcFZhbHVlLmNw
cDogQWRkZWQuCisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjp+UG9seUp1bXBWYWx1
ZSk6CisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjphcHBlbmRTdWNjZXNzb3IpOgor
ICAgICAgICAoSlNDOjpCMzo6UG9seUp1bXBWYWx1ZTo6c2V0Q2FsbGJhY2tUYXNrKToKKyAgICAg
ICAgKEpTQzo6QjM6OlBvbHlKdW1wVmFsdWU6OmlzQ2xvbmVhYmxlKToKKyAgICAgICAgKEpTQzo6
QjM6OlBvbHlKdW1wVmFsdWU6OmR1bXBNZXRhKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1w
VmFsdWU6OmNsb25lSW1wbCk6CisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjpQb2x5
SnVtcFZhbHVlKToKKyAgICAgICAgKiBiMy9CM1BvbHlKdW1wVmFsdWUuaDogQWRkZWQuCisgICAg
ICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjphY2NlcHRzKToKKyAgICAgICAgKEpTQzo6QjM6
OlBvbHlKdW1wVmFsdWU6OnNldENhbGxiYWNrKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1w
VmFsdWU6OmNhbGxiYWNrVGFzayk6CisgICAgICAgICogYjMvQjNQcm9jZWR1cmUuY3BwOgorICAg
ICAgICAoSlNDOjpCMzo6UHJvY2VkdXJlOjpjbG9uZSk6CisgICAgICAgICogYjMvQjNQcm9jZWR1
cmUuaDoKKyAgICAgICAgKEpTQzo6QjM6OlByb2NlZHVyZTo6bGFzdFBoYXNlTmFtZSk6CisgICAg
ICAgIChKU0M6OkIzOjpQcm9jZWR1cmU6OmJ5cHJvZHVjdHMpOgorICAgICAgICAqIGIzL0IzUmVk
dWNlU3RyZW5ndGguY3BwOgorICAgICAgICAqIGIzL0IzVmFsaWRhdGUuY3BwOgorICAgICAgICAq
IGIzL0IzVmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6OmVmZmVjdHMpOgorICAg
ICAgICAoSlNDOjpCMzo6VmFsdWU6OmlzQ2xvbmVhYmxlKToKKyAgICAgICAgKEpTQzo6QjM6OlZh
bHVlOjprZXkpOgorICAgICAgICAqIGIzL0IzVmFsdWUuaDoKKyAgICAgICAgKiBiMy9haXIvQWly
Q29kZS5oOgorICAgICAgICAqIGIzL2Fpci9BaXJHZW5lcmF0ZS5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpBaXI6OmdlbmVyYXRlKToKKyAgICAgICAgKiBiMy9haXIvQWlySW5zdC5jcHA6CisgICAg
ICAgIChKU0M6OkIzOjpBaXI6Okluc3Q6Omhhc0FyZ0VmZmVjdHMpOgorICAgICAgICAoSlNDOjpC
Mzo6QWlyOjpJbnN0Ojppc0Nsb25lYWJsZSk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okluc3Q6
OmR1bXApOgorICAgICAgICAqIGIzL2Fpci9BaXJJbnN0Lmg6CisgICAgICAgICogYjMvYWlyL0Fp
ck9wY29kZS5vcGNvZGVzOgorICAgICAgICAqIGIzL3Rlc3RiMy5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpzaG91bGRCZVZlcmJvc2UpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN3aXRjaENoaWxs
RGl2KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RMYXRlUmVnaXN0ZXIpOgorICAgICAgICAoSlND
OjpCMzo6dGhyZWFkZWRJbnRlcnByZXRlclByaW50KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RU
aHJlYWRlZEludGVycHJldGVyKToKKyAgICAgICAgKEpTQzo6QjM6Onplcm8pOgorICAgICAgICAo
SlNDOjpCMzo6cnVuKToKKwogMjAxNi0wNy0wMyAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gRExMcyBhcmUgbWlzc2luZyB2ZXJzaW9uIGluZm9y
bWF0aW9uLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24g
MjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0xNDQsNiArMTQ0LDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAg
ICBiMy9CM1BhdGNocG9pbnRWYWx1ZS5jcHAKICAgICBiMy9CM1BoYXNlU2NvcGUuY3BwCiAgICAg
YjMvQjNQaGlDaGlsZHJlbi5jcHAKKyAgICBiMy9CM1BvbHlKdW1wVmFsdWUuY3BwCiAgICAgYjMv
QjNQcm9jZWR1cmUuY3BwCiAgICAgYjMvQjNQdXJlQ1NFLmNwcAogICAgIGIzL0IzUmVkdWNlRG91
YmxlVG9GbG9hdC5jcHAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lv
biAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTk4OCw2ICsxOTg4LDggQEAK
IAkJREMxN0U4MUExQzlDOTFFOTAwOEE2QUIzIC8qIENDYWxsSGVscGVycy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzE3RTgxNjFDOUM4MDJCMDA4
QTZBQjMgLyogQ0NhbGxIZWxwZXJzLmNwcCAqLzsgfTsKIAkJREMyMTQzMDcxQ0EzMkU1NTAwMEE4
ODY5IC8qIElDU3RhdHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IERDMjE0MzA2MUNBMzJFNTIwMDBBODg2OSAvKiBJQ1N0YXRzLmggKi87IH07CiAJCURD
MjE0MzA4MUNBMzJFNTgwMDBBODg2OSAvKiBJQ1N0YXRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDMjE0MzA1MUNBMzJFNTIwMDBBODg2OSAvKiBJ
Q1N0YXRzLmNwcCAqLzsgfTsKKwkJREM0NTRCODgxQ0ZGNkZFNzAwNEMxOEFGIC8qIEIzUG9seUp1
bXBWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBEQzQ1NEI4NjFDRkY2RkU1MDA0QzE4QUYgLyogQjNQb2x5SnVtcFZhbHVlLmNwcCAqLzsgfTsK
KwkJREM0NTRCODkxQ0ZGNkZFQTAwNEMxOEFGIC8qIEIzUG9seUp1bXBWYWx1ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM0NTRCODcxQ0ZGNkZFNTAw
NEMxOEFGIC8qIEIzUG9seUp1bXBWYWx1ZS5oICovOyB9OwogCQlEQzQ1NEI4QzFEMDBFODIyMDA0
QzE4QUYgLyogQWlyRHVtcEFzSlMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gREM0NTRCOEExRDAwRTgxRjAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmNw
cCAqLzsgfTsKIAkJREM0NTRCOEQxRDAwRTgyNDAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzQ1NEI4QjFEMDBF
ODFGMDA0QzE4QUYgLyogQWlyRHVtcEFzSlMuaCAqLzsgfTsKIAkJREM2MDVCNUQxQ0UyNkVBMDAw
NTkzNzE4IC8qIFByb2ZpbGVyRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gREM2MDVCNTkxQ0UyNkU5ODAwNTkzNzE4IC8qIFByb2ZpbGVyRXZl
bnQuY3BwICovOyB9OwpAQCAtNDIxNiw2ICs0MjE4LDggQEAKIAkJREMxN0U4MTYxQzlDODAyQjAw
OEE2QUIzIC8qIENDYWxsSGVscGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBDQ2FsbEhlbHBlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlE
QzIxNDMwNTFDQTMyRTUyMDAwQTg4NjkgLyogSUNTdGF0cy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBJQ1N0YXRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJREMyMTQzMDYxQ0EzMkU1MjAwMEE4ODY5IC8qIElDU3RhdHMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSUNTdGF0cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlEQzQ1NEI4NjFDRkY2RkU1MDA0QzE4QUYgLyogQjNQb2x5SnVtcFZhbHVlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEIzUG9seUp1bXBWYWx1ZS5jcHA7IHBh
dGggPSBiMy9CM1BvbHlKdW1wVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlEQzQ1NEI4NzFDRkY2RkU1MDA0QzE4QUYgLyogQjNQb2x5SnVtcFZhbHVlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEIzUG9seUp1bXBWYWx1ZS5oOyBwYXRoID0gYjMvQjNQ
b2x5SnVtcFZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDNDU0QjhBMUQw
MEU4MUYwMDRDMThBRiAvKiBBaXJEdW1wQXNKUy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBBaXJEdW1wQXNKUy5jcHA7IHBhdGggPSBiMy9haXIvQWlyRHVtcEFzSlMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzQ1NEI4QjFEMDBFODFGMDA0QzE4
QUYgLyogQWlyRHVtcEFzSlMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQWly
RHVtcEFzSlMuaDsgcGF0aCA9IGIzL2Fpci9BaXJEdW1wQXNKUy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlEQzYwNUI1OTFDRTI2RTk4MDA1OTM3MTggLyogUHJvZmlsZXJFdmVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQcm9maWxlckV2ZW50LmNw
cDsgcGF0aCA9IHByb2ZpbGVyL1Byb2ZpbGVyRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNDc3NSw2ICs0Nzc5LDggQEAKIAkJCQkwRkVDODRFMDFCREFDREFDMDA4MEZG
NzQgLyogQjNQaGFzZVNjb3BlLmggKi8sCiAJCQkJMEYzNzMwOEExQzBCRDI5MTAwMDUyQkZBIC8q
IEIzUGhpQ2hpbGRyZW4uY3BwICovLAogCQkJCTBGMzczMDhCMUMwQkQyOTEwMDA1MkJGQSAvKiBC
M1BoaUNoaWxkcmVuLmggKi8sCisJCQkJREM0NTRCODYxQ0ZGNkZFNTAwNEMxOEFGIC8qIEIzUG9s
eUp1bXBWYWx1ZS5jcHAgKi8sCisJCQkJREM0NTRCODcxQ0ZGNkZFNTAwNEMxOEFGIC8qIEIzUG9s
eUp1bXBWYWx1ZS5oICovLAogCQkJCTBGRUM4NEUxMUJEQUNEQUMwMDgwRkY3NCAvKiBCM1Byb2Nl
ZHVyZS5jcHAgKi8sCiAJCQkJMEZFQzg0RTIxQkRBQ0RBQzAwODBGRjc0IC8qIEIzUHJvY2VkdXJl
LmggKi8sCiAJCQkJMEZFQzg0RTMxQkRBQ0RBQzAwODBGRjc0IC8qIEIzUHJvY2VkdXJlSW5saW5l
cy5oICovLApAQCAtNzE2Myw2ICs3MTY5LDcgQEAKIAkJCQkwRjhGOTQ0MTE2Njc2MzMyMDBENjE5
NzEgLyogQ29kZUJsb2NrSGFzaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDOTdGMzQxODIwMjBE
NzAwMkM5QjI2IC8qIENvZGVCbG9ja0pldHRpc29uaW5nV2F0Y2hwb2ludC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEZEOEEzMTQxN0Q0MzI2QzAwQ0EyQzQwIC8qIENvZGVCbG9ja1NldC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJREM0NTRCODkxQ0ZGNkZFQTAwNEMxOEFGIC8qIEIzUG9seUp1bXBWYWx1
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5NkVCQjMxNjY3NkVGNjAwOEJBREUzIC8qIENvZGVC
bG9ja1dpdGhKSVRUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzdGMTgyMjE2NDA4OEIyMDA2
NDBBNDcgLyogQ29kZUNhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OUNDMEI2MzE4QkU5OTUw
MDA2Q0VCQ0MgLyogQ29kZUdlbmVyYXRvclJlcGxheUlucHV0cy5weSBpbiBIZWFkZXJzICovLApA
QCAtOTQ0Nyw2ICs5NDU0LDcgQEAKIAkJCQk3MDlGQjg2QjFBRTMzNUM2MDAzOUQwNjkgLyogV2Vh
a1NldFByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyQTRFQzkwQjE4NjBENkMyMDA5
NEY3ODIgLyogV3JpdGVCYXJyaWVyQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQzgx
NTBCMTQwNDNDMEUwMENGQTYwMyAvKiBXcml0ZUJhcnJpZXJTdXBwb3J0LmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCURDNDU0Qjg4MUNGRjZGRTcwMDRDMThBRiAvKiBCM1BvbHlKdW1wVmFsdWUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTdFNUFCM0ExNzk5RTRCMjAwRDI4MzNEIC8qIFg4NkRpc2Fz
c2VtYmxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjJCQkQ5NzFDNUZGM0Y1MDAyM0VGMjMg
LyogQjNWYXJpYWJsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NjNDNkQ5QzE1MjExMTFBMDA1
ODVFNEUgLyogWWFyckNhbm9uaWNhbGl6ZVVDUzIuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
QVJNNjQuaAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4NzQsNiArMjg3
NCwxMiBAQCBwdWJsaWM6CiAgICAgICAgIGxvYWQ2NChhZGRyZXNzLCBnZXRDYWNoZWREYXRhVGVt
cFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCkpOwogICAgICAgICBtX2Fzc2VtYmxlci5icihkYXRh
VGVtcFJlZ2lzdGVyKTsKICAgICB9CisgICAgCisgICAgdm9pZCBqdW1wKEJhc2VJbmRleCBhZGRy
ZXNzKQorICAgIHsKKyAgICAgICAgbG9hZDY0KGFkZHJlc3MsIGdldENhY2hlZERhdGFUZW1wUmVn
aXN0ZXJJREFuZEludmFsaWRhdGUoKSk7CisgICAgICAgIG1fYXNzZW1ibGVyLmJyKGRhdGFUZW1w
UmVnaXN0ZXIpOworICAgIH0KIAogICAgIHZvaWQganVtcChBYnNvbHV0ZUFkZHJlc3MgYWRkcmVz
cykKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyWDg2Q29tbW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTIyNjMsNiArMjI2MywxMiBAQCBwdWJsaWM6CiAgICAgICAgIG1f
YXNzZW1ibGVyLmptcF9tKGFkZHJlc3Mub2Zmc2V0LCBhZGRyZXNzLmJhc2UpOwogICAgIH0KIAor
ICAgIC8vIEFkZHJlc3MgaXMgYSBtZW1vcnkgbG9jYXRpb24gY29udGFpbmluZyB0aGUgYWRkcmVz
cyB0byBqdW1wIHRvCisgICAgdm9pZCBqdW1wKEJhc2VJbmRleCBhZGRyZXNzKQorICAgIHsKKyAg
ICAgICAgbV9hc3NlbWJsZXIuam1wX20oYWRkcmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFzZSwgYWRk
cmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZSk7CisgICAgfQorCiAKICAgICAvLyBBcml0aG1ldGlj
IGNvbnRyb2wgZmxvdyBvcGVyYXRpb25zOgogICAgIC8vCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgJKHJldmlzaW9uIDIwMjgwOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTE5ODMsNiArMTk4MywxMSBAQCBwdWJsaWM6CiAgICAgICAgIG1fZm9ybWF0dGVy
Lm9uZUJ5dGVPcChPUF9HUk9VUDVfRXYsIEdST1VQNV9PUF9KTVBOLCBiYXNlLCBvZmZzZXQpOwog
ICAgIH0KICAgICAKKyAgICB2b2lkIGptcF9tKGludCBvZmZzZXQsIFJlZ2lzdGVySUQgYmFzZSwg
UmVnaXN0ZXJJRCBpbmRleCwgaW50IHNjYWxlKQorICAgIHsKKyAgICAgICAgbV9mb3JtYXR0ZXIu
b25lQnl0ZU9wKE9QX0dST1VQNV9FdiwgR1JPVVA1X09QX0pNUE4sIGJhc2UsIGluZGV4LCBzY2Fs
ZSwgb2Zmc2V0KTsKKyAgICB9CisgICAgCiAjaWYgIUNQVShYODZfNjQpCiAgICAgdm9pZCBqbXBf
bShjb25zdCB2b2lkKiBhZGRyZXNzKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0Jhc2ljQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0Jhc2ljQmxvY2suY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAs
NiBAQAogCiAjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrSW5saW5lcy5oIgogI2luY2x1ZGUgIkIzQmFz
aWNCbG9ja1V0aWxzLmgiCi0jaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKICNpbmNsdWRlICJC
M1Byb2NlZHVyZS5oIgogI2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSA8d3Rm
L0xpc3REdW1wLmg+CkBAIC04NCw5ICs4Myw0MSBAQCBWYWx1ZSogQmFzaWNCbG9jazo6YXBwZW5k
SW50Q29uc3RhbnQoUHJvCiAgICAgcmV0dXJuIGFwcGVuZEludENvbnN0YW50KHByb2MsIGxpa2VW
YWx1ZS0+b3JpZ2luKCksIGxpa2VWYWx1ZS0+dHlwZSgpLCB2YWx1ZSk7CiB9CiAKK3ZvaWQgQmFz
aWNCbG9jazo6Y2xlYXJTdWNjZXNzb3JzKCkKK3sKKyAgICBtX3N1Y2Nlc3NvcnMuY2xlYXIoKTsK
K30KKwordm9pZCBCYXNpY0Jsb2NrOjphcHBlbmRTdWNjZXNzb3IoY29uc3QgRnJlcXVlbnRlZEJs
b2NrJiB0YXJnZXQpCit7CisgICAgbV9zdWNjZXNzb3JzLmFwcGVuZCh0YXJnZXQpOworfQorCit2
b2lkIEJhc2ljQmxvY2s6OnNldFN1Y2Nlc3NvcnMoY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YXJn
ZXQpCit7CisgICAgbV9zdWNjZXNzb3JzLnJlc2l6ZSgxKTsKKyAgICBtX3N1Y2Nlc3NvcnNbMF0g
PSB0YXJnZXQ7Cit9CisKK3ZvaWQgQmFzaWNCbG9jazo6c2V0U3VjY2Vzc29ycyhjb25zdCBGcmVx
dWVudGVkQmxvY2smIHRha2VuLCBjb25zdCBGcmVxdWVudGVkQmxvY2smIG5vdFRha2VuKQorewor
ICAgIG1fc3VjY2Vzc29ycy5yZXNpemUoMik7CisgICAgbV9zdWNjZXNzb3JzWzBdID0gdGFrZW47
CisgICAgbV9zdWNjZXNzb3JzWzFdID0gbm90VGFrZW47Cit9CisKIGJvb2wgQmFzaWNCbG9jazo6
cmVwbGFjZVN1Y2Nlc3NvcihCYXNpY0Jsb2NrKiBmcm9tLCBCYXNpY0Jsb2NrKiB0bykKIHsKLSAg
ICByZXR1cm4gbGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCktPnJlcGxhY2VTdWNjZXNzb3IoZnJv
bSwgdG8pOworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgZm9yIChCYXNpY0Jsb2NrKiYg
c3VjY2Vzc29yIDogc3VjY2Vzc29yQmxvY2tzKCkpIHsKKyAgICAgICAgaWYgKHN1Y2Nlc3NvciA9
PSBmcm9tKSB7CisgICAgICAgICAgICBzdWNjZXNzb3IgPSB0bzsKKyAgICAgICAgICAgIHJlc3Vs
dCA9IHRydWU7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIEtlZXAgbG9vcGluZyBiZWNh
dXNlIGEgc3VjY2Vzc29yIG1heSBiZSBtZW50aW9uZWQgbXVsdGlwbGUgdGltZXMsIGxpa2UgaW4g
YSBTd2l0Y2guCisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogYm9v
bCBCYXNpY0Jsb2NrOjphZGRQcmVkZWNlc3NvcihCYXNpY0Jsb2NrKiBibG9jaykKQEAgLTEwOSw2
ICsxNDAsMTUgQEAgdm9pZCBCYXNpY0Jsb2NrOjp1cGRhdGVQcmVkZWNlc3NvcnNBZnRlcgogICAg
IEIzOjp1cGRhdGVQcmVkZWNlc3NvcnNBZnRlcih0aGlzKTsKIH0KIAorYm9vbCBCYXNpY0Jsb2Nr
Ojppc0Nsb25lYWJsZSgpIGNvbnN0Cit7CisgICAgZm9yIChWYWx1ZSogdmFsdWUgOiAqdGhpcykg
eworICAgICAgICBpZiAoIXZhbHVlLT5pc0Nsb25lYWJsZSgpKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBCYXNpY0Jsb2NrOjpk
dW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiB7CiAgICAgb3V0LnByaW50KGR1bXBQcmVmaXgs
IG1faW5kZXgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2suaAko
cmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9j
ay5oCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw3IEBAIGNsYXNzIEJhc2ljQmxvY2sgewog
cHVibGljOgogICAgIHR5cGVkZWYgVmVjdG9yPFZhbHVlKj4gVmFsdWVMaXN0OwogICAgIHR5cGVk
ZWYgVmVjdG9yPEJhc2ljQmxvY2sqLCAyPiBQcmVkZWNlc3Nvckxpc3Q7Ci0gICAgdHlwZWRlZiBW
ZWN0b3I8RnJlcXVlbnRlZEJsb2NrLCAyPiBTdWNjZXNzb3JMaXN0OyAvLyBUaGlzIG1hdGNoZXMg
Q29udHJvbFZhbHVlOjpTdWNjZXNzb3JMaXN0CisgICAgdHlwZWRlZiBWZWN0b3I8RnJlcXVlbnRl
ZEJsb2NrLCAyPiBTdWNjZXNzb3JMaXN0OwogCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0
IGR1bXBQcmVmaXg7CiAKQEAgLTg3LDE4ICs4NywzNiBAQCBwdWJsaWM6CiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgVmFsdWVUeXBlLCB0eXBlbmFtZS4uLiBBcmd1bWVudHM+CiAgICAgVmFsdWVUeXBl
KiByZXBsYWNlTGFzdFdpdGhOZXcoUHJvY2VkdXJlJiwgQXJndW1lbnRzLi4uKTsKIAotICAgIHVu
c2lnbmVkIG51bVN1Y2Nlc3NvcnMoKSBjb25zdDsKLSAgICBjb25zdCBGcmVxdWVudGVkQmxvY2sm
IHN1Y2Nlc3Nvcih1bnNpZ25lZCBpbmRleCkgY29uc3Q7Ci0gICAgRnJlcXVlbnRlZEJsb2NrJiBz
dWNjZXNzb3IodW5zaWduZWQgaW5kZXgpOwotICAgIGNvbnN0IFN1Y2Nlc3Nvckxpc3QmIHN1Y2Nl
c3NvcnMoKSBjb25zdDsKLSAgICBTdWNjZXNzb3JMaXN0JiBzdWNjZXNzb3JzKCk7Ci0KLSAgICBC
YXNpY0Jsb2NrKiBzdWNjZXNzb3JCbG9jayh1bnNpZ25lZCBpbmRleCkgY29uc3Q7Ci0gICAgQmFz
aWNCbG9jayomIHN1Y2Nlc3NvckJsb2NrKHVuc2lnbmVkIGluZGV4KTsKLSAgICBTdWNjZXNzb3JD
b2xsZWN0aW9uPEJhc2ljQmxvY2ssIFN1Y2Nlc3Nvckxpc3Q+IHN1Y2Nlc3NvckJsb2NrcygpOwot
ICAgIFN1Y2Nlc3NvckNvbGxlY3Rpb248Y29uc3QgQmFzaWNCbG9jaywgY29uc3QgU3VjY2Vzc29y
TGlzdD4gc3VjY2Vzc29yQmxvY2tzKCkgY29uc3Q7CisgICAgdW5zaWduZWQgbnVtU3VjY2Vzc29y
cygpIGNvbnN0IHsgcmV0dXJuIG1fc3VjY2Vzc29ycy5zaXplKCk7IH0KKyAgICBjb25zdCBGcmVx
dWVudGVkQmxvY2smIHN1Y2Nlc3Nvcih1bnNpZ25lZCBpbmRleCkgY29uc3QgeyByZXR1cm4gbV9z
dWNjZXNzb3JzW2luZGV4XTsgfQorICAgIEZyZXF1ZW50ZWRCbG9jayYgc3VjY2Vzc29yKHVuc2ln
bmVkIGluZGV4KSB7IHJldHVybiBtX3N1Y2Nlc3NvcnNbaW5kZXhdOyB9CisgICAgY29uc3QgU3Vj
Y2Vzc29yTGlzdCYgc3VjY2Vzc29ycygpIGNvbnN0IHsgcmV0dXJuIG1fc3VjY2Vzc29yczsgfQor
ICAgIFN1Y2Nlc3Nvckxpc3QmIHN1Y2Nlc3NvcnMoKSB7IHJldHVybiBtX3N1Y2Nlc3NvcnM7IH0K
KyAgICAKKyAgICB2b2lkIGNsZWFyU3VjY2Vzc29ycygpOworICAgIHZvaWQgYXBwZW5kU3VjY2Vz
c29yKGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYpOworICAgIHZvaWQgc2V0U3VjY2Vzc29ycyhjb25z
dCBGcmVxdWVudGVkQmxvY2smKTsKKyAgICB2b2lkIHNldFN1Y2Nlc3NvcnMoY29uc3QgRnJlcXVl
bnRlZEJsb2NrJiwgY29uc3QgRnJlcXVlbnRlZEJsb2NrJik7CisKKyAgICBCYXNpY0Jsb2NrKiBz
dWNjZXNzb3JCbG9jayh1bnNpZ25lZCBpbmRleCkgY29uc3QgeyByZXR1cm4gc3VjY2Vzc29yKGlu
ZGV4KS5ibG9jaygpOyB9CisgICAgQmFzaWNCbG9jayomIHN1Y2Nlc3NvckJsb2NrKHVuc2lnbmVk
IGluZGV4KSB7IHJldHVybiBzdWNjZXNzb3IoaW5kZXgpLmJsb2NrKCk7IH0KKyAgICBTdWNjZXNz
b3JDb2xsZWN0aW9uPEJhc2ljQmxvY2ssIFN1Y2Nlc3Nvckxpc3Q+IHN1Y2Nlc3NvckJsb2Nrcygp
CisgICAgeworICAgICAgICByZXR1cm4gU3VjY2Vzc29yQ29sbGVjdGlvbjxCYXNpY0Jsb2NrLCBT
dWNjZXNzb3JMaXN0PihzdWNjZXNzb3JzKCkpOworICAgIH0KKyAgICBTdWNjZXNzb3JDb2xsZWN0
aW9uPGNvbnN0IEJhc2ljQmxvY2ssIGNvbnN0IFN1Y2Nlc3Nvckxpc3Q+IHN1Y2Nlc3NvckJsb2Nr
cygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gU3VjY2Vzc29yQ29sbGVjdGlvbjxjb25z
dCBCYXNpY0Jsb2NrLCBTdWNjZXNzb3JMaXN0PihzdWNjZXNzb3JzKCkpOworICAgIH0KIAogICAg
IGJvb2wgcmVwbGFjZVN1Y2Nlc3NvcihCYXNpY0Jsb2NrKiBmcm9tLCBCYXNpY0Jsb2NrKiB0byk7
CisgICAgCisgICAgLy8gVGhpcyBpcyBvbmx5IHZhbGlkIGZvciBKdW1wIGFuZCBCcmFuY2guCisg
ICAgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YWtlbigpIGNvbnN0OworICAgIEZyZXF1ZW50ZWRC
bG9jayYgdGFrZW4oKTsKKyAgICAvLyBUaGlzIGlzIG9ubHkgdmxhaWQgZm9yIEJyYW5jaC4KKyAg
ICBjb25zdCBGcmVxdWVudGVkQmxvY2smIG5vdFRha2VuKCkgY29uc3Q7CisgICAgRnJlcXVlbnRl
ZEJsb2NrJiBub3RUYWtlbigpIGNvbnN0OwogCiAgICAgdW5zaWduZWQgbnVtUHJlZGVjZXNzb3Jz
KCkgY29uc3QgeyByZXR1cm4gbV9wcmVkZWNlc3NvcnMuc2l6ZSgpOyB9CiAgICAgQmFzaWNCbG9j
ayogcHJlZGVjZXNzb3IodW5zaWduZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fcHJlZGVjZXNz
b3JzW2luZGV4XTsgfQpAQCAtMTE1LDYgKzEzMyw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0
ZVByZWRlY2Vzc29yc0FmdGVyKCk7CiAKICAgICBkb3VibGUgZnJlcXVlbmN5KCkgY29uc3QgeyBy
ZXR1cm4gbV9mcmVxdWVuY3k7IH0KKyAgICAKKyAgICBib29sIGlzQ2xvbmVhYmxlKCkgY29uc3Q7
CiAKICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKICAgICB2b2lkIGRlZXBEdW1w
KGNvbnN0IFByb2NlZHVyZSYsIFByaW50U3RyZWFtJikgY29uc3Q7CkBAIC0xMzAsNiArMTUwLDcg
QEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2luZGV4OwogICAgIFZhbHVlTGlzdCBtX3ZhbHVl
czsKICAgICBQcmVkZWNlc3Nvckxpc3QgbV9wcmVkZWNlc3NvcnM7CisgICAgU3VjY2Vzc29yTGlz
dCBtX3N1Y2Nlc3NvcnM7CiAgICAgZG91YmxlIG1fZnJlcXVlbmN5OwogfTsKIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9ja0lubGluZXMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrSW5saW5lcy5oCShyZXZpc2lv
biAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrSW5saW5l
cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw2IEBACiAjaWYgRU5BQkxFKEIzX0pJVCkK
IAogI2luY2x1ZGUgIkIzQmFzaWNCbG9jay5oIgotI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgi
CiAjaW5jbHVkZSAiQjNQcm9jZWR1cmVJbmxpbmVzLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1l
c3BhY2UgQjMgewpAQCAtNTgsNDkgKzU3LDI4IEBAIFZhbHVlVHlwZSogQmFzaWNCbG9jazo6cmVw
bGFjZUxhc3RXaXRoTmUKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1pbmxpbmUgdW5zaWduZWQg
QmFzaWNCbG9jazo6bnVtU3VjY2Vzc29ycygpIGNvbnN0Citjb25zdCBGcmVxdWVudGVkQmxvY2sm
IEJhc2ljQmxvY2s6OnRha2VuKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbGFzdCgpLT5hczxDb250
cm9sVmFsdWU+KCktPm51bVN1Y2Nlc3NvcnMoKTsKKyAgICBBU1NFUlQobGFzdCgpLT5vcGNvZGUo
KSA9PSBKdW1wIHx8IGxhc3QoKS0+b3Bjb2RlKCkgPT0gQnJhbmNoKTsKKyAgICByZXR1cm4gbV9z
dWNjZXNzb3JzWzBdOwogfQogCi1pbmxpbmUgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBCYXNpY0Js
b2NrOjpzdWNjZXNzb3IodW5zaWduZWQgaW5kZXgpIGNvbnN0CitGcmVxdWVudGVkQmxvY2smIEJh
c2ljQmxvY2s6OnRha2VuKCkKIHsKLSAgICByZXR1cm4gbGFzdCgpLT5hczxDb250cm9sVmFsdWU+
KCktPnN1Y2Nlc3NvcihpbmRleCk7CisgICAgQVNTRVJUKGxhc3QoKS0+b3Bjb2RlKCkgPT0gSnVt
cCB8fCBsYXN0KCktPm9wY29kZSgpID09IEJyYW5jaCk7CisgICAgcmV0dXJuIG1fc3VjY2Vzc29y
c1swXTsKIH0KIAotaW5saW5lIEZyZXF1ZW50ZWRCbG9jayYgQmFzaWNCbG9jazo6c3VjY2Vzc29y
KHVuc2lnbmVkIGluZGV4KQorY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBCYXNpY0Jsb2NrOjpub3RU
YWtlbigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGxhc3QoKS0+YXM8Q29udHJvbFZhbHVlPigpLT5z
dWNjZXNzb3IoaW5kZXgpOworICAgIEFTU0VSVChsYXN0KCktPm9wY29kZSgpID09IEJyYW5jaCk7
CisgICAgcmV0dXJuIG1fc3VjY2Vzc29yc1sxXTsKIH0KIAotaW5saW5lIGNvbnN0IEJhc2ljQmxv
Y2s6OlN1Y2Nlc3Nvckxpc3QmIEJhc2ljQmxvY2s6OnN1Y2Nlc3NvcnMoKSBjb25zdAorRnJlcXVl
bnRlZEJsb2NrJiBCYXNpY0Jsb2NrOjpub3RUYWtlbigpCiB7Ci0gICAgcmV0dXJuIGxhc3QoKS0+
YXM8Q29udHJvbFZhbHVlPigpLT5zdWNjZXNzb3JzKCk7Ci19Ci0KLWlubGluZSBCYXNpY0Jsb2Nr
OjpTdWNjZXNzb3JMaXN0JiBCYXNpY0Jsb2NrOjpzdWNjZXNzb3JzKCkKLXsKLSAgICByZXR1cm4g
bGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCktPnN1Y2Nlc3NvcnMoKTsKLX0KLQotaW5saW5lIEJh
c2ljQmxvY2sqIEJhc2ljQmxvY2s6OnN1Y2Nlc3NvckJsb2NrKHVuc2lnbmVkIGluZGV4KSBjb25z
dAotewotICAgIHJldHVybiBzdWNjZXNzb3IoaW5kZXgpLmJsb2NrKCk7Ci19Ci0KLWlubGluZSBC
YXNpY0Jsb2NrKiYgQmFzaWNCbG9jazo6c3VjY2Vzc29yQmxvY2sodW5zaWduZWQgaW5kZXgpCi17
Ci0gICAgcmV0dXJuIHN1Y2Nlc3NvcihpbmRleCkuYmxvY2soKTsKLX0KLQotaW5saW5lIFN1Y2Nl
c3NvckNvbGxlY3Rpb248QmFzaWNCbG9jaywgQmFzaWNCbG9jazo6U3VjY2Vzc29yTGlzdD4gQmFz
aWNCbG9jazo6c3VjY2Vzc29yQmxvY2tzKCkKLXsKLSAgICByZXR1cm4gU3VjY2Vzc29yQ29sbGVj
dGlvbjxCYXNpY0Jsb2NrLCBTdWNjZXNzb3JMaXN0PihzdWNjZXNzb3JzKCkpOwotfQotCi1pbmxp
bmUgU3VjY2Vzc29yQ29sbGVjdGlvbjxjb25zdCBCYXNpY0Jsb2NrLCBjb25zdCBCYXNpY0Jsb2Nr
OjpTdWNjZXNzb3JMaXN0PiBCYXNpY0Jsb2NrOjpzdWNjZXNzb3JCbG9ja3MoKSBjb25zdAotewot
ICAgIHJldHVybiBTdWNjZXNzb3JDb2xsZWN0aW9uPGNvbnN0IEJhc2ljQmxvY2ssIGNvbnN0IFN1
Y2Nlc3Nvckxpc3Q+KHN1Y2Nlc3NvcnMoKSk7CisgICAgQVNTRVJUKGxhc3QoKS0+b3Bjb2RlKCkg
PT0gQnJhbmNoKTsKKyAgICByZXR1cm4gbV9zdWNjZXNzb3JzWzFdOwogfQogCiB9IH0gLy8gbmFt
ZXNwYWNlIEpTQzo6QjMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jsb2NrSW5z
ZXJ0aW9uU2V0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNC
bG9ja0luc2VydGlvblNldC5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0Jsb2NrSW5zZXJ0aW9uU2V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzgs
OCArNzgsOCBAQCBCYXNpY0Jsb2NrKiBCbG9ja0luc2VydGlvblNldDo6c3BsaXRGb3J3CiAgICAg
ICAgIHJlc3VsdC0+bV92YWx1ZXNbaV0gPSBibG9jay0+bV92YWx1ZXNbaV07CiAKICAgICAvLyBN
YWtlIHRoZSBuZXcgYmxvY2sganVtcCB0byAnYmxvY2snLgotICAgIHJlc3VsdC0+bV92YWx1ZXNb
dmFsdWVJbmRleF0gPQotICAgICAgICBtX3Byb2MuYWRkPENvbnRyb2xWYWx1ZT4oSnVtcCwgdmFs
dWUtPm9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soYmxvY2spKTsKKyAgICByZXN1bHQtPm1fdmFs
dWVzW3ZhbHVlSW5kZXhdID0gbV9wcm9jLmFkZDxWYWx1ZT4oSnVtcCwgdmFsdWUtPm9yaWdpbigp
KTsKKyAgICByZXN1bHQtPnNldFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2NrKGJsb2NrKSk7CiAK
ICAgICAvLyBJZiB3ZSBoYWQgaW5zZXJ0ZWQgdGhpbmdzIGludG8gJ2Jsb2NrJyBiZWZvcmUgdGhp
cywgZXhlY3V0ZSB0aG9zZSBpbnNlcnRpb25zIG5vdy4KICAgICBpZiAoaW5zZXJ0aW9uU2V0KQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQnJlYWtDcml0aWNhbEVkZ2VzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCcmVha0NyaXRpY2FsRWRn
ZXMuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNC
cmVha0NyaXRpY2FsRWRnZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw2IEBACiAK
ICNpbmNsdWRlICJCM0Jhc2ljQmxvY2tJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNCbG9ja0luc2Vy
dGlvblNldC5oIgotI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNQcm9j
ZWR1cmVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKIApAQCAtNTAsOCAr
NDksOCBAQCB2b2lkIGJyZWFrQ3JpdGljYWxFZGdlcyhQcm9jZWR1cmUmIHByb2MpCiAKICAgICAg
ICAgICAgIEJhc2ljQmxvY2sqIHBhZCA9CiAgICAgICAgICAgICAgICAgaW5zZXJ0aW9uU2V0Lmlu
c2VydEJlZm9yZShzdWNjZXNzb3IsIHN1Y2Nlc3Nvci0+ZnJlcXVlbmN5KCkpOwotICAgICAgICAg
ICAgcGFkLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgICAgICAgICBwcm9jLCBK
dW1wLCBzdWNjZXNzb3ItPmF0KDApLT5vcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHN1Y2Nlc3Nv
cikpOworICAgICAgICAgICAgcGFkLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEp1bXAsIHN1Y2Nl
c3Nvci0+YXQoMCktPm9yaWdpbigpKTsKKyAgICAgICAgICAgIHBhZC0+c2V0U3VjY2Vzc29ycyhG
cmVxdWVudGVkQmxvY2soc3VjY2Vzc29yKSk7CiAgICAgICAgICAgICBwYWQtPmFkZFByZWRlY2Vz
c29yKGJsb2NrKTsKICAgICAgICAgICAgIHN1Y2Nlc3Nvci0+cmVwbGFjZVByZWRlY2Vzc29yKGJs
b2NrLCBwYWQpOwogICAgICAgICAgICAgc3VjY2Vzc29yID0gcGFkOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzQ29tbW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzQ29tbW9uLmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0NvbW1vbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDYgKzI4LDggQEAKIAogI2lm
IEVOQUJMRShCM19KSVQpCiAKKyNpbmNsdWRlICJKU0V4cG9ydE1hY3Jvcy5oIgorCiBuYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIAogaW5saW5lIGJvb2wgaXM2NEJpdCgpIHsgcmV0dXJu
IHNpemVvZih2b2lkKikgPT0gODsgfQpAQCAtMzgsNyArNDAsNyBAQCBlbnVtIEIzQ29tcGxpdGF0
aW9uTW9kZSB7CiAgICAgQWlyTW9kZQogfTsKIAotYm9vbCBzaG91bGREdW1wSVIoQjNDb21wbGl0
YXRpb25Nb2RlKTsKK0pTX0VYUE9SVF9QUklWQVRFIGJvb2wgc2hvdWxkRHVtcElSKEIzQ29tcGxp
dGF0aW9uTW9kZSk7CiBib29sIHNob3VsZER1bXBJUkF0RWFjaFBoYXNlKEIzQ29tcGxpdGF0aW9u
TW9kZSk7CiBib29sIHNob3VsZFZhbGlkYXRlSVIoKTsKIGJvb2wgc2hvdWxkVmFsaWRhdGVJUkF0
RWFjaFBoYXNlKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb250cm9sVmFs
dWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb250cm9sVmFs
dWUuaAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29u
dHJvbFZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDkgKzQ2LDEwIEBAIHB1YmxpYzoKICAg
ICAgICAgY2FzZSBSZXR1cm46CiAgICAgICAgIGNhc2UgT29wczoKICAgICAgICAgICAgIHJldHVy
biB0cnVlOwotICAgICAgICBjYXNlIFN3aXRjaDogCi0gICAgICAgICAgICAvLyBUaGlzIGlzIGhl
cmUgYmVjYXVzZSBTd2l0Y2hWYWx1ZSBpcyBhIHN1YmNsYXNzIG9mIENvbnRyb2xWYWx1ZSwgc28g
d2Ugd2FudAotICAgICAgICAgICAgLy8gc3dpdGNoVmFsdWUtPmFzPENvbnRyb2xWYWx1ZT4oKSB0
byByZXR1cm4gbm9uLW51bGwuCisgICAgICAgIGNhc2UgU3dpdGNoOgorICAgICAgICBjYXNlIFBv
bHlKdW1wOgorICAgICAgICAgICAgLy8gVGhpcyBpcyBoZXJlIGJlY2F1c2UgU3dpdGNoVmFsdWUg
YW5kIFBvbHlKdW1wVmFsdWUgYXJlIHN1YmNsYXNzZXMgb2YgQ29udHJvbFZhbHVlLAorICAgICAg
ICAgICAgLy8gc28gd2Ugd2FudCB0aGluZ3MgbGlrZSBzd2l0Y2hWYWx1ZS0+YXM8Q29udHJvbFZh
bHVlPigpIHRvIHJldHVybiBub24tbnVsbC4KICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
ICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNzcsNyArNzgsNyBA
QCBwdWJsaWM6CiAgICAgfQogCiAgICAgYm9vbCByZXBsYWNlU3VjY2Vzc29yKEJhc2ljQmxvY2sq
IGZyb20sIEJhc2ljQmxvY2sqIHRvKTsKLQorICAgIAogICAgIGNvbnN0IEZyZXF1ZW50ZWRCbG9j
ayYgdGFrZW4oKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUKG9wY29kZSgpID09IEp1bXAg
fHwgb3Bjb2RlKCkgPT0gQnJhbmNoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0RhdGFTZWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNEYXRhU2VjdGlvbi5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM0RhdGFTZWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMSw3ICszMSw3IEBACiBu
YW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIAogRGF0YVNlY3Rpb246OkRhdGFTZWN0aW9u
KHNpemVfdCBzaXplKQotICAgIDogbV9kYXRhKGZhc3RNYWxsb2Moc2l6ZSkpCisgICAgOiBtX2Rh
dGEoZmFzdFplcm9lZE1hbGxvYyhzaXplKSkKICAgICAsIG1fc2l6ZShzaXplKQogewogfQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRHVwbGljYXRlVGFpbHMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0R1cGxpY2F0ZVRhaWxzLmNwcAkocmV2
aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRHVwbGljYXRlVGFp
bHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw2IEBACiAKICNpbmNsdWRlICJCM0Jh
c2ljQmxvY2tJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNCcmVha0NyaXRpY2FsRWRnZXMuaCIKLSNp
bmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzRG9taW5hdG9ycy5oIgogI2lu
Y2x1ZGUgIkIzRml4U1NBLmgiCiAjaW5jbHVkZSAiQjNJbmRleFNldC5oIgpAQCAtNzIsOSArNzEs
MTEgQEAgcHVibGljOgogICAgICAgICBJbmRleFNldDxCYXNpY0Jsb2NrPiBjYW5kaWRhdGVzOwog
CiAgICAgICAgIGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiBtX3Byb2MpIHsKLSAgICAgICAgICAg
IGlmIChibG9jay0+c2l6ZSgpID4gbV9tYXhTaXplIHx8IGJsb2NrLT5udW1TdWNjZXNzb3JzKCkg
PiBtX21heFN1Y2Nlc3NvcnMpCisgICAgICAgICAgICBpZiAoYmxvY2stPnNpemUoKSA+IG1fbWF4
U2l6ZQorICAgICAgICAgICAgICAgIHx8IGJsb2NrLT5udW1TdWNjZXNzb3JzKCkgPiBtX21heFN1
Y2Nlc3NvcnMKKyAgICAgICAgICAgICAgICB8fCAhYmxvY2stPmlzQ2xvbmVhYmxlKCkpCiAgICAg
ICAgICAgICAgICAgY29udGludWU7Ci0KKyAgICAgICAgICAgIAogICAgICAgICAgICAgY2FuZGlk
YXRlcy5hZGQoYmxvY2spOwogICAgICAgICB9CiAKQEAgLTk3LDExICs5OCwxMCBAQCBwdWJsaWM6
CiAgICAgICAgIH0KIAogICAgICAgICBmb3IgKEJhc2ljQmxvY2sqIGJsb2NrIDogbV9wcm9jKSB7
Ci0gICAgICAgICAgICBDb250cm9sVmFsdWUqIGp1bXAgPSBibG9jay0+bGFzdCgpLT5hczxDb250
cm9sVmFsdWU+KCk7Ci0gICAgICAgICAgICBpZiAoanVtcC0+b3Bjb2RlKCkgIT0gSnVtcCkKKyAg
ICAgICAgICAgIGlmIChibG9jay0+bGFzdCgpLT5vcGNvZGUgIT0gSnVtcCkKICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKIAotICAgICAgICAgICAgQmFzaWNCbG9jayogdGFpbCA9IGp1bXAtPnN1
Y2Nlc3NvckJsb2NrKDApOworICAgICAgICAgICAgQmFzaWNCbG9jayogdGFpbCA9IGJsb2NrLT5z
dWNjZXNzb3JCbG9jaygwKTsKICAgICAgICAgICAgIGlmICghY2FuZGlkYXRlcy5jb250YWlucyh0
YWlsKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIApAQCAtMTMwLDYgKzEzMCw3IEBAIHB1
YmxpYzoKICAgICAgICAgICAgICAgICAgICAgbWFwLmFkZCh2YWx1ZSwgY2xvbmUpOwogICAgICAg
ICAgICAgICAgIGJsb2NrLT5hcHBlbmQoY2xvbmUpOwogICAgICAgICAgICAgfQorICAgICAgICAg
ICAgYmxvY2stPnN1Y2Nlc3NvcnMoKSA9IHRhaWwtPnN1Y2Nlc3NvcnMoKTsKICAgICAgICAgfQog
CiAgICAgICAgIG1fcHJvYy5yZXNldFJlYWNoYWJpbGl0eSgpOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzRml4U1NBLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNGaXhTU0EuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNGaXhTU0EuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw2IEBA
CiAKICNpbmNsdWRlICJCM0Jhc2ljQmxvY2tJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNCcmVha0Ny
aXRpY2FsRWRnZXMuaCIKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIz
RG9taW5hdG9ycy5oIgogI2luY2x1ZGUgIkIzSW5kZXhTZXQuaCIKICNpbmNsdWRlICJCM0luc2Vy
dGlvblNldElubGluZXMuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0ZvbGRQ
YXRoQ29uc3RhbnRzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNGb2xkUGF0aENvbnN0YW50cy5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0ZvbGRQYXRoQ29uc3RhbnRzLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjksNyArMjksNiBAQAogI2lmIEVOQUJMRShCM19KSVQpCiAKICNpbmNsdWRlICJCM0Jhc2ljQmxv
Y2tJbmxpbmVzLmgiCi0jaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKICNpbmNsdWRlICJCM0Rv
bWluYXRvcnMuaCIKICNpbmNsdWRlICJCM0luc2VydGlvblNldElubGluZXMuaCIKICNpbmNsdWRl
ICJCM1BoYXNlU2NvcGUuaCIKQEAgLTg3LDI0ICs4NiwyNCBAQCBwdWJsaWM6CiAgICAgICAgIH07
CiAgICAgICAgIAogICAgICAgICBmb3IgKEJhc2ljQmxvY2sqIGJsb2NrIDogbV9wcm9jKSB7Ci0g
ICAgICAgICAgICBDb250cm9sVmFsdWUqIGJyYW5jaCA9IGJsb2NrLT5sYXN0KCktPmFzPENvbnRy
b2xWYWx1ZT4oKTsKKyAgICAgICAgICAgIFZhbHVlKiBicmFuY2ggPSBibG9jay0+bGFzdCgpOwog
ICAgICAgICAgICAgc3dpdGNoIChicmFuY2gtPm9wY29kZSgpKSB7CiAgICAgICAgICAgICBjYXNl
IEJyYW5jaDoKLSAgICAgICAgICAgICAgICBpZiAoYnJhbmNoLT5zdWNjZXNzb3JCbG9jaygwKSA9
PSBicmFuY2gtPnN1Y2Nlc3NvckJsb2NrKDEpKQorICAgICAgICAgICAgICAgIGlmIChibG9jay0+
c3VjY2Vzc29yQmxvY2soMCkgPT0gYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDEpKQogICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICBhZGRPdmVycmlkZSgKICAgICAg
ICAgICAgICAgICAgICAgYmxvY2ssIGJyYW5jaC0+Y2hpbGQoMCksCi0gICAgICAgICAgICAgICAg
ICAgIE92ZXJyaWRlOjpub25aZXJvKGJyYW5jaC0+c3VjY2Vzc29yQmxvY2soMCkpKTsKKyAgICAg
ICAgICAgICAgICAgICAgT3ZlcnJpZGU6Om5vblplcm8oYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDAp
KSk7CiAgICAgICAgICAgICAgICAgYWRkT3ZlcnJpZGUoCiAgICAgICAgICAgICAgICAgICAgIGJs
b2NrLCBicmFuY2gtPmNoaWxkKDApLAotICAgICAgICAgICAgICAgICAgICBPdmVycmlkZTo6Y29u
c3RhbnQoYnJhbmNoLT5zdWNjZXNzb3JCbG9jaygxKSwgMCkpOworICAgICAgICAgICAgICAgICAg
ICBPdmVycmlkZTo6Y29uc3RhbnQoYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDEpLCAwKSk7CiAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIFN3aXRjaDogewogICAgICAgICAg
ICAgICAgIEhhc2hNYXA8QmFzaWNCbG9jayosIHVuc2lnbmVkPiB0YXJnZXRVc2VzOwotICAgICAg
ICAgICAgICAgIGZvciAoY29uc3QgU3dpdGNoQ2FzZSYgc3dpdGNoQ2FzZSA6ICpicmFuY2gtPmFz
PFN3aXRjaFZhbHVlPigpKQorICAgICAgICAgICAgICAgIGZvciAoY29uc3QgU3dpdGNoQ2FzZSYg
c3dpdGNoQ2FzZSA6IGJyYW5jaC0+YXM8U3dpdGNoVmFsdWU+KCktPmNhc2VzKGJsb2NrKSkKICAg
ICAgICAgICAgICAgICAgICAgdGFyZ2V0VXNlcy5hZGQoc3dpdGNoQ2FzZS50YXJnZXRCbG9jaygp
LCAwKS5pdGVyYXRvci0+dmFsdWUrKzsKIAotICAgICAgICAgICAgICAgIGZvciAoY29uc3QgU3dp
dGNoQ2FzZSYgc3dpdGNoQ2FzZSA6ICpicmFuY2gtPmFzPFN3aXRjaFZhbHVlPigpKSB7CisgICAg
ICAgICAgICAgICAgZm9yIChjb25zdCBTd2l0Y2hDYXNlJiBzd2l0Y2hDYXNlIDogYnJhbmNoLT5h
czxTd2l0Y2hWYWx1ZT4oKS0+Y2FzZXMoYmxvY2spKSB7CiAgICAgICAgICAgICAgICAgICAgIGlm
ICh0YXJnZXRVc2VzLmZpbmQoc3dpdGNoQ2FzZS50YXJnZXRCbG9jaygpKS0+dmFsdWUgIT0gMSkK
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCkBAIC0xNTgsOSArMTU3LDggQEAg
cHVibGljOgogCiAgICAgICAgICAgICAgICAgc3dpdGNoICh2YWx1ZS0+b3Bjb2RlKCkpIHsKICAg
ICAgICAgICAgICAgICBjYXNlIEJyYW5jaDogewotICAgICAgICAgICAgICAgICAgICBDb250cm9s
VmFsdWUqIGJyYW5jaCA9IHZhbHVlLT5hczxDb250cm9sVmFsdWU+KCk7CiAgICAgICAgICAgICAg
ICAgICAgIGlmIChnZXRPdmVycmlkZShibG9jaywgYnJhbmNoLT5jaGlsZCgwKSkuaXNOb25aZXJv
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmFuY2gtPmNvbnZlcnRUb0p1bXAoYnJhbmNo
LT50YWtlbigpLmJsb2NrKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUtPnJlcGxh
Y2VXaXRoSnVtcChibG9jaywgYmxvY2stPnRha2VuKCkpOwogICAgICAgICAgICAgICAgICAgICAg
ICAgY2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlck1hY3Jv
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJNYWNy
b3MuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNM
b3dlck1hY3Jvcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsNyArMzQsOSBAQAogI2luY2x1ZGUgIkIz
Q29uc3RQdHJWYWx1ZS5oIgogI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAi
QjNJbnNlcnRpb25TZXRJbmxpbmVzLmgiCisjaW5jbHVkZSAiQjNNZW1vcnlWYWx1ZS5oIgogI2lu
Y2x1ZGUgIkIzUGhhc2VTY29wZS5oIgorI2luY2x1ZGUgIkIzUG9seUp1bXBWYWx1ZS5oIgogI2lu
Y2x1ZGUgIkIzUHJvY2VkdXJlSW5saW5lcy5oIgogI2luY2x1ZGUgIkIzU3dpdGNoVmFsdWUuaCIK
ICNpbmNsdWRlICJCM1Vwc2lsb25WYWx1ZS5oIgpAQCAtMjc1LDggKzI3NywxMDcgQEAgcHJpdmF0
ZToKICAgICAgICAgY29uc3QgVmVjdG9yPFN3aXRjaENhc2U+JiBjYXNlcywgdW5zaWduZWQgc3Rh
cnQsIGJvb2wgaGFyZFN0YXJ0LCB1bnNpZ25lZCBlbmQsCiAgICAgICAgIEJhc2ljQmxvY2sqIGJl
Zm9yZSkKICAgICB7Ci0gICAgICAgIC8vIEZJWE1FOiBBZGQgdGFibGUtYmFzZWQgc3dpdGNoIGxv
d2VyaW5nLgotICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTUxMTQxCisgICAgICAgIFZhbHVlKiBjaGlsZCA9IG1fdmFsdWUtPmNoaWxkKDApOworICAg
ICAgICBUeXBlIHR5cGUgPSBjaGlsZC0+dHlwZSgpOworICAgICAgICBGcmVxdWVudGVkQmxvY2sg
ZmFsbFRocm91Z2ggPSBtX3ZhbHVlLT5hczxTd2l0Y2hWYWx1ZT4oKS0+ZmFsbFRocm91Z2goKTsK
KyAgICAgICAgCisgICAgICAgIC8vIEl0J3MgYSBnb29kIGlkZWEgdG8gdXNlIGEgdGFibGUtYmFz
ZWQgc3dpdGNoIGluIHNvbWUgY2FzZXM6IHRoZSBudW1iZXIgb2YgY2FzZXMgaGFzIHRvIGJlCisg
ICAgICAgIC8vIGxhcmdlIGVub3VnaCBhbmQgdGhleSBoYXZlIHRvIGJlIGRlbnNlIGVub3VnaC4g
VGhpcyBjb3VsZCBwcm9iYWJseSBiZSBpbXByb3ZlZCBhIGxvdC4gRm9yCisgICAgICAgIC8vIGV4
YW1wbGUsIHdlIGNvdWxkIHN0aWxsIHVzZSBhIGp1bXAgdGFibGUgaW4gY2FzZXMgd2hlcmUgdGhl
IGlucHV0cyBhcmUgc3BhcnNlIHNvIGxvbmcgYXMgd2UKKyAgICAgICAgLy8gc2hpZnQgb2ZmIHRo
ZSB1bmludGVyZXN0aW5nIGJpdHMuIE9uIHRoZSBvdGhlciBoYW5kLCBpdCdzIG5vdCBjbGVhciB0
aGF0IHRoaXMgd291bGQKKyAgICAgICAgLy8gYWN0dWFsbHkgYmUgYW55IGJldHRlciB0aGFuIHdo
YXQgd2UgaGF2ZSBkb25lIGhlcmUgYW5kIGl0J3Mgbm90IGNsZWFyIHRoYXQgaXQgd291bGQgYmUK
KyAgICAgICAgLy8gYmV0dGVyIHRoYW4gYSBiaW5hcnkgc3dpdGNoLgorICAgICAgICBjb25zdCB1
bnNpZ25lZCBtaW5DYXNlc0ZvclRhYmxlID0gNzsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgZGVu
c2l0eUxpbWl0ID0gNDsKKyAgICAgICAgaWYgKGVuZCAtIHN0YXJ0ID49IG1pbkNhc2VzRm9yVGFi
bGUpIHsKKyAgICAgICAgICAgIGludDY0X3QgZmlyc3RWYWx1ZSA9IGNhc2VzW3N0YXJ0XS5jYXNl
VmFsdWUoKTsKKyAgICAgICAgICAgIGludDY0X3QgbGFzdFZhbHVlID0gY2FzZXNbZW5kIC0gMV0u
Y2FzZVZhbHVlKCk7CisgICAgICAgICAgICBpZiAoKGxhc3RWYWx1ZSAtIGZpcnN0VmFsdWUgKyAx
KSAvIGNhc2VzLnNpemUoKSA8IGRlbnNpdHlMaW1pdCkgeworICAgICAgICAgICAgICAgIEJhc2lj
QmxvY2sqIHN3aXRjaEJsb2NrID0gbV9ibG9ja0luc2VydGlvblNldC5pbnNlcnRBZnRlcihtX2Js
b2NrKTsKKyAgICAgICAgICAgICAgICBWYWx1ZSogaW5kZXggPSBiZWZvcmUtPmFwcGVuZE5ldzxW
YWx1ZT4oCisgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgU3ViLCBtX29yaWdpbiwgY2hpbGQs
CisgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kSW50Q29uc3RhbnQobV9wcm9jLCBt
X29yaWdpbiwgdHlwZSwgZmlyc3RWYWx1ZSkpOworICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBw
ZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBCcmFuY2gsIG1fb3Jp
Z2luLAorICAgICAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAg
ICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIEFib3ZlLCBtX29yaWdpbiwgaW5kZXgsCisgICAg
ICAgICAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZEludENvbnN0YW50KG1fcHJvYywgbV9v
cmlnaW4sIHR5cGUsIGxhc3RWYWx1ZSAtIGZpcnN0VmFsdWUpKSk7CisgICAgICAgICAgICAgICAg
YmVmb3JlLT5zZXRTdWNjZXNzb3JzKGZhbGxUaHJvdWdoLCBGcmVxdWVudGVkQmxvY2soc3dpdGNo
QmxvY2spKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBzaXplX3QgdGFibGVT
aXplID0gbGFzdFZhbHVlIC0gZmlyc3RWYWx1ZSArIDE7CisgICAgICAgICAgICAgICAgCisgICAg
ICAgICAgICAgICAgaWYgKGluZGV4LT50eXBlKCkgIT0gYmFzZS0+dHlwZSgpKSB7CisgICAgICAg
ICAgICAgICAgICAgIGlmIChpbmRleC0+dHlwZSgpID09IEludDMyKQorICAgICAgICAgICAgICAg
ICAgICAgICAgaW5kZXggPSBzd2l0Y2hCbG9jay0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIFpF
eHQzMiwgbV9vcmlnaW4sIGluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgICAgICAgICAgaW5kZXggPSBzd2l0Y2hCbG9jay0+YXBwZW5kTmV3PFZhbHVlPiht
X3Byb2MsIFRydW5jLCBtX29yaWdpbiwgaW5kZXgpOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBQYXRjaHBvaW50VmFsdWUqIHBhdGNocG9pbnQg
PQorICAgICAgICAgICAgICAgICAgICBzd2l0Y2hCbG9jay0+YXBwZW5kTmV3PFBhdGNocG9pbnRW
YWx1ZT4obV9wcm9jLCBWb2lkLCBtX29yaWdpbik7CisgICAgICAgICAgICAgICAgCisgICAgICAg
ICAgICAgICAgcGF0Y2hwb2ludC0+ZWZmZWN0cy50ZXJtaW5hbCA9IHRydWU7CisgICAgICAgICAg
ICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kU29tZVJlZ2lzdGVyKGluZGV4KTsKKyAgICAgICAgICAg
ICAgICBwYXRjaHBvaW50LT5udW1HUFNjcmF0Y2hSZWdpc3RlcnMrKzsKKyAgICAgICAgICAgICAg
ICAvLyBUZWNobmljYWxseSwgd2UgZG9uJ3QgaGF2ZSB0byBjbG9iYmVyIG1hY3JvIHJlZ2lzdGVy
cyBvbiBYODZfNjQuIFRoYXQncyBwcm9iYWJseQorICAgICAgICAgICAgICAgIC8vIE9LIHRob3Vn
aC4KKyAgICAgICAgICAgICAgICBwYXRjaHBvaW50LT5jbG9iYmVyKFJlZ2lzdGVyU2V0OjptYWNy
b1NjcmF0Y2hSZWdpc3RlcnMoKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAg
Qml0VmVjdG9yIGhhbmRsZWRJbmRpY2VzOworICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQg
aSA9IHN0YXJ0OyBpIDwgZW5kOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgRnJlcXVlbnRl
ZEJsb2NrIGJsb2NrID0gY2FzZXNbaV0udGFyZ2V0KCk7CisgICAgICAgICAgICAgICAgICAgIGlu
dDY0X3QgdmFsdWUgPSBjYXNlc1tpXS5jYXNlVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAg
c3dpdGNoQmxvY2stPmFwcGVuZFN1Y2Nlc3NvcihibG9jayk7CisgICAgICAgICAgICAgICAgICAg
IHNpemVfdCBpbmRleCA9IHZhbHVlIC0gZmlyc3RWYWx1ZTsKKyAgICAgICAgICAgICAgICAgICAg
QVNTRVJUKCFoYW5kbGVkSW5kaWNlcy5nZXQoaW5kZXgpKTsKKyAgICAgICAgICAgICAgICAgICAg
aGFuZGxlZEluZGljZXMuc2V0KGluZGV4KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgCisgICAgICAgICAgICAgICAgYm9vbCBoYXNVbmhhbmRsZWRJbmRleCA9IGZhbHNlOwor
ICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB0YWJsZVNpemU7ICsraSkg
eworICAgICAgICAgICAgICAgICAgICBpZiAoIWhhbmRsZWRJbmRpY2VzLmdldChpKSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgaGFzVW5oYW5kbGVkSW5kZXggPSB0cnVlOworICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGhhc1VuaGFuZGxl
ZEluZGV4KQorICAgICAgICAgICAgICAgICAgICBzd2l0Y2hCbG9jay0+YXBwZW5kU3VjY2Vzc29y
KGZhbGxUaHJvdWdoKTsKKworICAgICAgICAgICAgICAgIHBhdGNocG9pbnQtPnNldEdlbmVyYXRv
cigKKyAgICAgICAgICAgICAgICAgICAgWz1dIChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU3Rh
Y2ttYXBHZW5lcmF0aW9uUGFyYW1zJiBwYXJhbXMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IEFsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSBhbGxvd1NjcmF0Y2goaml0KTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJs
ZXJDb2RlUHRyKiBqdW1wVGFibGUgPSBwYXJhbXMucHJvYygpLmFkZERhdGFTZWN0aW9uKAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihNYWNyb0Fzc2VtYmxlckNvZGVQdHIpICog
dGFibGVTaXplKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAg
ICAgICAgR1BSUmVnIGluZGV4ID0gcGFyYW1zWzBdLmdwcigpOworICAgICAgICAgICAgICAgICAg
ICAgICAgR1BSUmVnIHNjcmF0Y2ggPSBwYXJhbXMuZ3BTY3JhdGNoKDApOworICAgICAgICAgICAg
ICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBqaXQubW92ZShUcnVzdGVkSW1t
UHRyKGp1bXBUYWJsZSksIHNjcmF0Y2gpOworICAgICAgICAgICAgICAgICAgICAgICAgaml0Lmp1
bXAoQ0NhbGxIZWxwZXJzOjpCYXNlSW5kZXgoc2NyYXRjaCwgaW5kZXgsIENDYWxsSGVscGVyczo6
dGltZXNQdHIoKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAg
ICAgICAgICBWZWN0b3I8Qm94PENDYWxsSGVscGVyczo6TGFiZWw+PiBsYWJlbHMgPSBwYXJhbXMu
c3VjY2Vzc29yTGFiZWxzKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGppdC5hZGRMaW5rVGFzaygKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbPV0gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKGhhc1VuaGFuZGxlZEluZGV4KSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgZmFsbFRocm91Z2ggPQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmtCdWZmZXIubG9jYXRpb25PZigq
bGFiZWxzLmxhc3QoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSB0YWJsZVNpemU7IGktLTspCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAganVtcFRhYmxlW2ldID0gZmFsbFRocm91Z2g7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxhYmVsSW5kZXggPSAwOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIHRhYmxlSW5kZXgg
OiBoYW5kbGVkSW5kaWNlcykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
anVtcFRhYmxlW3RhYmxlSW5kZXhdID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBsaW5rQnVmZmVyLmxvY2F0aW9uT2YoKmxhYmVsc1tsYWJlbEluZGV4KytdKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIC8vIFNlZSBjb21t
ZW50cyBpbiBqaXQvQmluYXJ5U3dpdGNoLmNwcCBmb3IgYSBqdXN0aWZpY2F0aW9uIG9mIHRoaXMg
YWxnb3JpdGhtLiBUaGUgb25seQogICAgICAgICAvLyB0aGluZyB3ZSBkbyBkaWZmZXJlbnRseSBp
cyB0aGF0IHdlIGRvbid0IHVzZSByYW5kb21uZXNzLgpAQCAtMzA0LDI1ICs0MDUsMjMgQEAgcHJp
dmF0ZToKICAgICAgICAgICAgIAogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IGxpbWl0OyArK2kpIHsKICAgICAgICAgICAgICAgICBCYXNpY0Jsb2NrKiBuZXh0Q2hlY2sgPSBt
X2Jsb2NrSW5zZXJ0aW9uU2V0Lmluc2VydEFmdGVyKG1fYmxvY2spOwotICAgICAgICAgICAgICAg
IGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgICAgICAgICAgYmVmb3Jl
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIEJyYW5jaCwg
bV9vcmlnaW4sCiAgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PFZhbHVlPigK
LSAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgRXF1YWwsIG1fb3JpZ2luLCBtX3ZhbHVl
LT5jaGlsZCgwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgRXF1YWwsIG1fb3Jp
Z2luLCBjaGlsZCwKICAgICAgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kSW50Q29u
c3RhbnQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwgbV92
YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNl
c1tzdGFydCArIGldLmNhc2VWYWx1ZSgpKSksCi0gICAgICAgICAgICAgICAgICAgIGNhc2VzW3N0
YXJ0ICsgaV0udGFyZ2V0KCksIEZyZXF1ZW50ZWRCbG9jayhuZXh0Q2hlY2spKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLCB0eXBlLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNhc2VzW3N0YXJ0ICsgaV0uY2FzZVZhbHVlKCkpKSk7CisgICAgICAg
ICAgICAgICAgYmVmb3JlLT5zZXRTdWNjZXNzb3JzKGNhc2VzW3N0YXJ0ICsgaV0udGFyZ2V0KCks
IEZyZXF1ZW50ZWRCbG9jayhuZXh0Q2hlY2spKTsKIAogICAgICAgICAgICAgICAgIGJlZm9yZSA9
IG5leHRDaGVjazsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgaWYgKGFsbENvbnNlY3V0
aXZlKSB7Ci0gICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
LSAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBKdW1wLCBtX29yaWdpbiwgY2FzZXNbZW5kIC0g
MV0udGFyZ2V0KCkpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBiZWZv
cmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAotICAgICAgICAgICAgICAgICAgICBtX3Byb2Ms
IEp1bXAsIG1fb3JpZ2luLCBtX3ZhbHVlLT5hczxTd2l0Y2hWYWx1ZT4oKS0+ZmFsbFRocm91Z2go
KSk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4o
bV9wcm9jLCBKdW1wLCBtX29yaWdpbik7CisgICAgICAgICAgICBpZiAoYWxsQ29uc2VjdXRpdmUp
CisgICAgICAgICAgICAgICAgYmVmb3JlLT5zZXRTdWNjZXNzb3JzKGNhc2VzW2VuZCAtIDFdLnRh
cmdldCgpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBiZWZvcmUtPnNldFN1
Y2Nlc3NvcnMoZmFsbFRocm91Z2gpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAK
QEAgLTMzMSwxNCArNDMwLDE0IEBAIHByaXZhdGU6CiAgICAgICAgIEJhc2ljQmxvY2sqIGxlZnQg
PSBtX2Jsb2NrSW5zZXJ0aW9uU2V0Lmluc2VydEFmdGVyKG1fYmxvY2spOwogICAgICAgICBCYXNp
Y0Jsb2NrKiByaWdodCA9IG1fYmxvY2tJbnNlcnRpb25TZXQuaW5zZXJ0QWZ0ZXIobV9ibG9jayk7
CiAKLSAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgYmVm
b3JlLT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgbV9wcm9jLCBCcmFuY2gsIG1fb3Jp
Z2luLAogICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+KAotICAgICAgICAgICAg
ICAgIG1fcHJvYywgTGVzc1RoYW4sIG1fb3JpZ2luLCBtX3ZhbHVlLT5jaGlsZCgwKSwKKyAgICAg
ICAgICAgICAgICBtX3Byb2MsIExlc3NUaGFuLCBtX29yaWdpbiwgY2hpbGQsCiAgICAgICAgICAg
ICAgICAgYmVmb3JlLT5hcHBlbmRJbnRDb25zdGFudCgKLSAgICAgICAgICAgICAgICAgICAgbV9w
cm9jLCBtX29yaWdpbiwgbV92YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSwKLSAgICAgICAgICAgICAg
ICAgICAgY2FzZXNbbWVkaWFuSW5kZXhdLmNhc2VWYWx1ZSgpKSksCi0gICAgICAgICAgICBGcmVx
dWVudGVkQmxvY2sobGVmdCksIEZyZXF1ZW50ZWRCbG9jayhyaWdodCkpOworICAgICAgICAgICAg
ICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLCB0eXBlLAorICAgICAgICAgICAgICAgICAgICBjYXNl
c1ttZWRpYW5JbmRleF0uY2FzZVZhbHVlKCkpKSk7CisgICAgICAgIGJlZm9yZS0+c2V0U3VjY2Vz
c29ycyhGcmVxdWVudGVkQmxvY2sobGVmdCksIEZyZXF1ZW50ZWRCbG9jayhyaWdodCkpOwogCiAg
ICAgICAgIHJlY3Vyc2l2ZWx5QnVpbGRTd2l0Y2goY2FzZXMsIHN0YXJ0LCBoYXJkU3RhcnQsIG1l
ZGlhbkluZGV4LCBsZWZ0KTsKICAgICAgICAgcmVjdXJzaXZlbHlCdWlsZFN3aXRjaChjYXNlcywg
bWVkaWFuSW5kZXgsIHRydWUsIGVuZCwgcmlnaHQpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTUsNyAr
MTU1LDYgQEAgcHVibGljOgogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAvLyBNYWtlIHN1
cmUgdGhhdCB0aGUgc3VjY2Vzc29ycyBhcmUgc2V0IHVwIGNvcnJlY3RseS4KLSAgICAgICAgICAg
IEFTU0VSVChibG9jay0+c3VjY2Vzc29ycygpLnNpemUoKSA8PSAyKTsKICAgICAgICAgICAgIGZv
ciAoQjM6OkZyZXF1ZW50ZWRCbG9jayBzdWNjZXNzb3IgOiBibG9jay0+c3VjY2Vzc29ycygpKSB7
CiAgICAgICAgICAgICAgICAgbV9ibG9ja1RvQmxvY2tbYmxvY2tdLT5zdWNjZXNzb3JzKCkuYXBw
ZW5kKAogICAgICAgICAgICAgICAgICAgICBBaXI6OkZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrVG9C
bG9ja1tzdWNjZXNzb3IuYmxvY2soKV0sIHN1Y2Nlc3Nvci5mcmVxdWVuY3koKSkpOwpAQCAtMjQ0
MSw2ICsyNDQwLDE2IEBAIHByaXZhdGU6CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICBjYXNlIEIzOjpQb2x5SnVtcDog
eworICAgICAgICAgICAgQXJnUHJvbWlzZSBhZGRyID0gbG9hZFByb21pc2UobV92YWx1ZS0+Y2hp
bGQoMCkpOworICAgICAgICAgICAgaWYgKGlzVmFsaWRGb3JtKEFpcjo6UG9seUp1bXAsIGFkZHIu
a2luZCgpKSkgeworICAgICAgICAgICAgICAgIGFwcGVuZChBaXI6OlBvbHlKdW1wLCBhZGRyLmNv
bnN1bWUoKnRoaXMpKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICBhcHBlbmQoQWlyOjpQb2x5SnVtcCwgdG1wKG1fdmFsdWUtPmNoaWxkKDApKSk7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KIAogICAgICAgICBjYXNlIEIzOjpPb3Bz
OiB7CiAgICAgICAgICAgICBhcHBlbmQoQWlyOjpPb3BzKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM09wY29kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzT3Bjb2RlLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzT3Bjb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjkwLDYgKzI5MCw5IEBA
IHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBPcGMKICAgICBjYXNlIFN3aXRj
aDoKICAgICAgICAgb3V0LnByaW50KCJTd2l0Y2giKTsKICAgICAgICAgcmV0dXJuOworICAgIGNh
c2UgUG9seUp1bXA6CisgICAgICAgIG91dC5wcmludCgiUG9seUp1bXAiKTsKKyAgICAgICAgcmV0
dXJuOwogICAgIGNhc2UgUmV0dXJuOgogICAgICAgICBvdXQucHJpbnQoIlJldHVybiIpOwogICAg
ICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuaAkocmV2aXNp
b24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTIxNiw2ICsyMTYsMTMgQEAgZW51bSBPcGNvZGUgOiBpbnQxNl90IHsKIAog
ICAgIC8vIFN3aXRjaC4gU3dpdGNoZXMgb3ZlciBlaXRoZXIgSW50MzIgb3IgSW50NjQuIFVzZXMg
dGhlIFN3aXRjaFZhbHVlIGNsYXNzLgogICAgIFN3aXRjaCwKKyAgICAKKyAgICAvLyBKdW1wIHRv
IHRoZSBnaXZlbiBhZGRyZXNzLiBUaGUgY29tcGlsZXIgYXNzdW1lcyB0aGF0IHRoaXMgd2lsbCBq
dW1wIHRvIG9uZSBvZiB0aGUgc3VwcGxpZWQKKyAgICAvLyBzdWNjZXNzb3JzLCBidXQgd2lsbCBt
YWtlIGFic29sdXRlbHkgbm8gYXNzdW1wdGlvbnMgYWJvdXQgd2hpY2guIEl0J3MgZW50aXJlbHkg
dXAgdG8gdGhlIHVzZXIKKyAgICAvLyB0byBhcnJhbmdlIGZvciB0aGUganVtcCB0byBqdW1wIHRv
IG9uZSBvZiB0aG9zZSBzdWNjZXNzb3JzLiBUaGlzIGNhbm5vdCB0cmFwIG9yIGRvIGFueXRoaW5n
IGJ1dAorICAgIC8vIGp1bXAgdG8gb25lIG9mIHRoZSBzdWNjZXNzb3JzOyBpZiBpdCBkb2VzIGFu
eXRoaW5nIGVsc2UgdGhlbiBkZW1vbnMgd2lsbCBjb21lIG91dCBvZiB0aGUgdXNlcidzCisgICAg
Ly8gbm9zZS4gCisgICAgUG9seUp1bXAsCiAKICAgICAvLyBSZXR1cm4uIE5vdGUgdGhhdCBCMyBw
cm9jZWR1cmVzIGRvbid0IGtub3cgdGhlaXIgcmV0dXJuIHR5cGUsIHNvIHRoaXMgY2FuIGp1c3Qg
cmV0dXJuIGFueQogICAgIC8vIHR5cGUuIFVzZXMgdGhlIENvbnRyb2xWYWx1ZSBjbGFzcy4KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BvbHlKdW1wVmFsdWUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BvbHlKdW1wVmFsdWUuY3BwCShyZXZp
c2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUG9seUp1bXBWYWx1ZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQjNQ
b2x5SnVtcFZhbHVlLmgiCisKKyNpZiBFTkFCTEUoQjNfSklUKQorCisjaW5jbHVkZSAiQjNCYXNp
Y0Jsb2NrLmgiCisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeworCitQb2x5SnVtcFZh
bHVlOjp+UG9seUp1bXBWYWx1ZSgpCit7Cit9CisKK3ZvaWQgUG9seUp1bXBWYWx1ZTo6YXBwZW5k
U3VjY2Vzc29yKGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgYmxvY2spCit7CisgICAgbV9zdWNjZXNz
b3JzLmFwcGVuZChibG9jayk7Cit9CisKK3ZvaWQgUG9seUp1bXBWYWx1ZTo6c2V0Q2FsbGJhY2tU
YXNrKFJlZlB0cjxTaGFyZWRUYXNrPENhbGxiYWNrRnVuY3Rpb25UeXBlPj4gdGFzaykKK3sKKyAg
ICBtX3Rhc2sgPSB0YXNrOworfQorCitib29sIFBvbHlKdW1wVmFsdWU6OmlzQ2xvbmVhYmxlKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgUG9seUp1bXBWYWx1ZTo6ZHVt
cE1ldGEoQ29tbWFQcmludGVyJiBjb21tYSwgUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKK3sKKyAg
ICBDb250cm9sVmFsdWU6OmR1bXBNZXRhKGNvbW1hLCBvdXQpOworICAgIG91dC5wcmludChjb21t
YSwgInRhc2sgPSAiLCBSYXdQb2ludGVyKG1fdGFzay5nZXQoKSkpOworfQorCitWYWx1ZSogUG9s
eUp1bXBWYWx1ZTo6Y2xvbmVJbXBsKCkgY29uc3QKK3sKKyAgICBkYXRhTG9nKCJGQVRBTDogQXR0
ZW1wdCB0byBjbG9uZSBub24tY2xvbmVhYmxlIFBvbHlKdW1wVmFsdWUhXG4iKTsKKyAgICBSRUxF
QVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCitQb2x5SnVtcFZhbHVlOjpQb2x5SnVtcFZh
bHVlKE9yaWdpbiBvcmlnaW4sIFZhbHVlKiBjaGlsZCkKKyAgICA6IENvbnRyb2xWYWx1ZShQb2x5
SnVtcCwgVm9pZCwgb3JpZ2luLCBjaGlsZCkKK3sKK30KKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6
OkIzCisKKyNlbmRpZiAvLyBFTkFCTEUoQjNfSklUKQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNQb2x5SnVtcFZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzUG9seUp1bXBWYWx1ZS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzUG9seUp1bXBWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
NzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lm
bmRlZiBCM1BvbHlKdW1wVmFsdWVfaAorI2RlZmluZSBCM1BvbHlKdW1wVmFsdWVfaAorCisjaWYg
RU5BQkxFKEIzX0pJVCkKKworI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCisjaW5jbHVkZSA8
d3RmL1NoYXJlZFRhc2suaD4KKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CisKK2Ns
YXNzIFBvbHlKdW1wVmFsdWUgOiBwdWJsaWMgQ29udHJvbFZhbHVlIHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgYm9vbCBhY2NlcHRzKE9wY29kZSBvcGNvZGUpIHsgcmV0dXJuIG9wY29kZSA9PSBQb2x5
SnVtcDsgfQorICAgIAorICAgIH5Qb2x5SnVtcFZhbHVlKCk7CisgICAgCisgICAgSlNfRVhQT1JU
X1BSSVZBVEUgdm9pZCBhcHBlbmRTdWNjZXNzb3IoY29uc3QgRnJlcXVlbnRlZEJsb2NrJik7Cisg
ICAgCisgICAgdHlwZWRlZiB2b2lkIENhbGxiYWNrRnVuY3Rpb25UeXBlKGNvbnN0IFZlY3RvcjxN
YWNyb0Fzc2VtYmxlckNvZGVQdHI+Jik7CisgICAgCisgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9p
ZCBzZXRDYWxsYmFja1Rhc2soUmVmUHRyPFNoYXJlZFRhc2s8Q2FsbGJhY2tGdW5jdGlvblR5cGU+
PiB0YXNrKTsKKyAgICAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jPgorICAgIHZvaWQgc2V0
Q2FsbGJhY2soY29uc3QgRnVuYyYgZnVuYykKKyAgICB7CisgICAgICAgIHNldENhbGxiYWNrVGFz
ayhjcmVhdGVTaGFyZWRUYXNrPENhbGxiYWNrRnVuY3Rpb25UeXBlPihmdW5jKSk7CisgICAgfQor
ICAgIAorICAgIFNoYXJlZFRhc2s8Q2FsbGJhY2tGdW5jdGlvblR5cGU+KiBjYWxsYmFja1Rhc2so
KSBjb25zdCB7IHJldHVybiBtX3Rhc2suZ2V0KCk7IH0KKyAgICAKKyAgICBib29sIGlzQ2xvbmVh
YmxlKCkgY29uc3Qgb3ZlcnJpZGU7CisKK3Byb3RlY3RlZDoKKyAgICB2b2lkIGR1bXBNZXRhKENv
bW1hUHJpbnRlciYsIFByaW50U3RyZWFtJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgCisgICAgVmFs
dWUqIGNsb25lSW1wbCgpIGNvbnN0IG92ZXJyaWRlOworCitwcml2YXRlOgorICAgIGZyaWVuZCBj
bGFzcyBQcm9jZWR1cmU7CisgICAgCisgICAgSlNfRVhQT1JUX1BSSVZBVEUgUG9seUp1bXBWYWx1
ZShPcmlnaW4sIFZhbHVlKiBjaGlsZCk7CisgICAgCisgICAgUmVmUHRyPFNoYXJlZFRhc2s8Q2Fs
bGJhY2tGdW5jdGlvblR5cGU+PiBtX3Rhc2s7Cit9OworCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6
QjMKKworI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCisKKyNlbmRpZiAvLyBCM1BvbHlKdW1wVmFs
dWVfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5jcHAJKHJl
dmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTgzLDYgKzgzLDggQEAgVmFyaWFibGUqIFByb2NlZHVyZTo6
YWRkVmFyaWFibGUoVHlwZSB0eQogCiBWYWx1ZSogUHJvY2VkdXJlOjpjbG9uZShWYWx1ZSogdmFs
dWUpCiB7CisgICAgQVNTRVJUKHZhbHVlLT5pc0Nsb25lYWJsZSgpKTsKKyAgICAKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8VmFsdWU+IGNsb25lKHZhbHVlLT5jbG9uZUltcGwoKSk7CiAgICAgY2xvbmUt
Pm1faW5kZXggPSBVSU5UX01BWDsKICAgICBjbG9uZS0+b3duZXIgPSBudWxscHRyOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmgJKHJldmlzaW9uIDIwMjgwOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xMDEsNiArMTAxLDcgQEAgcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlw
ZSwgdHlwZW5hbWUuLi4gQXJndW1lbnRzPgogICAgIFZhbHVlVHlwZSogYWRkKEFyZ3VtZW50cy4u
Lik7CiAKKyAgICAvLyBOb3RlIHRoYXQgbm90IGFsbCB2YWx1ZXMgYXJlIGNsb25lYWJsZS4gQ2hl
Y2sgVmFsdWU6OmlzQ2xvbmVhYmxlKCkgYmVmb3JlIHByb2NlZWRpbmcuCiAgICAgVmFsdWUqIGNs
b25lKFZhbHVlKik7CiAKICAgICBWYWx1ZSogYWRkSW50Q29uc3RhbnQoT3JpZ2luLCBUeXBlLCBp
bnQ2NF90IHZhbHVlKTsKQEAgLTIxOCw3ICsyMTksMTAgQEAgcHVibGljOgogCiAgICAgY29uc3Qg
Y2hhciogbGFzdFBoYXNlTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdFBoYXNlTmFtZTsgfQog
Ci0gICAgdm9pZCogYWRkRGF0YVNlY3Rpb24oc2l6ZV90IHNpemUpOworICAgIC8vIEFsbG9jYXRl
cyBhIHNsYWIgb2YgbWVtb3J5IHRoYXQgd2lsbCBiZSBrZXB0IGFsaXZlIGJ5IGFueW9uZSB3aG8g
a2VlcHMgdGhlIHJlc3VsdGluZyBjb2RlCisgICAgLy8gYWxpdmUuIEdyZWF0IGZvciBjb21waWxl
ci1nZW5lcmF0ZWQgZGF0YSBzZWN0aW9ucywgbGlrZSBzd2l0Y2gganVtcCB0YWJsZXMgYW5kIGNv
bnN0YW50IHBvb2xzLgorICAgIC8vIFRoaXMgcmV0dXJucyBtZW1vcnkgdGhhdCBoYXMgYmVlbiB6
ZXJvLWluaXRpYWxpemVkLgorICAgIHZvaWQqIGFkZERhdGFTZWN0aW9uKHNpemVfdCk7CiAKICAg
ICBPcGFxdWVCeXByb2R1Y3RzJiBieXByb2R1Y3RzKCkgeyByZXR1cm4gKm1fYnlwcm9kdWN0czsg
fQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VTdHJlbmd0aC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGgu
Y3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1
Y2VTdHJlbmd0aC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3NzMsNyArMTc3MywxNyBAQCBwcml2
YXRlOgogICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUtPm9wY29kZSgpID09IFNlbGVj
dAogICAgICAgICAgICAgICAgICAgICAgICAgJiYgKHZhbHVlLT5jaGlsZCgxKS0+aXNDb25zdGFu
dCgpICYmIHZhbHVlLT5jaGlsZCgyKS0+aXNDb25zdGFudCgpKTsKICAgICAgICAgICAgICAgICB9
KTsKLSAgICAgICAgICAgIGlmIChzZWxlY3QpIHsKKyAgICAgICAgICAgIAorICAgICAgICAgICAg
Ly8gTWFrZSBzdXJlIHRoYXQgdGhlIHJlbGV2YW50IGNvZGUgaXMgY2xvbmVhYmxlLgorICAgICAg
ICAgICAgYm9vbCBhbGxBcmVDbG9uZWFibGUgPSB0cnVlOworICAgICAgICAgICAgZm9yICh1bnNp
Z25lZCBpbmRleCA9IG1faW5kZXggKyAxOyBpbmRleC0tOykgeworICAgICAgICAgICAgICAgIFZh
bHVlKiB2YWx1ZSA9IG1fYmxvY2stPmF0KGluZGV4KTsKKyAgICAgICAgICAgICAgICBhbGxBcmVD
bG9uZWFibGUgJj0gdmFsdWUtPmlzQ2xvbmVhYmxlKCk7CisgICAgICAgICAgICAgICAgaWYgKHZh
bHVlID09IHNlbGVjdCkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9
CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChzZWxlY3QgJiYgYWxsQXJlQ2xvbmVhYmxl
KSB7CiAgICAgICAgICAgICAgICAgc3BlY2lhbGl6ZVNlbGVjdChzZWxlY3QpOwogICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpAQCAtMTc4MSw1MCArMTc5MSw0OCBAQCBwcml2
YXRlOgogICAgICAgICB9CiAKICAgICAgICAgY2FzZSBCcmFuY2g6IHsKLSAgICAgICAgICAgIENv
bnRyb2xWYWx1ZSogYnJhbmNoID0gbV92YWx1ZS0+YXM8Q29udHJvbFZhbHVlPigpOwotCiAgICAg
ICAgICAgICAvLyBUdXJuIHRoaXM6IEJyYW5jaChOb3RFcXVhbCh4LCAwKSkKICAgICAgICAgICAg
IC8vIEludG8gdGhpczogQnJhbmNoKHgpCi0gICAgICAgICAgICBpZiAoYnJhbmNoLT5jaGlsZCgw
KS0+b3Bjb2RlKCkgPT0gTm90RXF1YWwgJiYgYnJhbmNoLT5jaGlsZCgwKS0+Y2hpbGQoMSktPmlz
SW50KDApKSB7Ci0gICAgICAgICAgICAgICAgYnJhbmNoLT5jaGlsZCgwKSA9IGJyYW5jaC0+Y2hp
bGQoMCktPmNoaWxkKDApOworICAgICAgICAgICAgaWYgKG1fdmFsdWUtPmNoaWxkKDApLT5vcGNv
ZGUoKSA9PSBOb3RFcXVhbCAmJiBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMSktPmlzSW50KDAp
KSB7CisgICAgICAgICAgICAgICAgbV92YWx1ZS0+Y2hpbGQoMCkgPSBtX3ZhbHVlLT5jaGlsZCgw
KS0+Y2hpbGQoMCk7CiAgICAgICAgICAgICAgICAgbV9jaGFuZ2VkID0gdHJ1ZTsKICAgICAgICAg
ICAgIH0KIAogICAgICAgICAgICAgLy8gVHVybiB0aGlzOiBCcmFuY2goRXF1YWwoeCwgMCksIHRo
ZW4sIGVsc2UpCiAgICAgICAgICAgICAvLyBJbnRvIHRoaXM6IEJyYW5jaCh4LCBlbHNlLCB0aGVu
KQotICAgICAgICAgICAgaWYgKGJyYW5jaC0+Y2hpbGQoMCktPm9wY29kZSgpID09IEVxdWFsICYm
IGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDEpLT5pc0ludCgwKSkgewotICAgICAgICAgICAgICAg
IGJyYW5jaC0+Y2hpbGQoMCkgPSBicmFuY2gtPmNoaWxkKDApLT5jaGlsZCgwKTsKLSAgICAgICAg
ICAgICAgICBzdGQ6OnN3YXAoYnJhbmNoLT50YWtlbigpLCBicmFuY2gtPm5vdFRha2VuKCkpOwor
ICAgICAgICAgICAgaWYgKG1fdmFsdWUtPmNoaWxkKDApLT5vcGNvZGUoKSA9PSBFcXVhbCAmJiBt
X3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMSktPmlzSW50KDApKSB7CisgICAgICAgICAgICAgICAg
bV92YWx1ZS0+Y2hpbGQoMCkgPSBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMCk7CisgICAgICAg
ICAgICAgICAgc3RkOjpzd2FwKG1fYmxvY2stPnRha2VuKCksIG1fYmxvY2stPm5vdFRha2VuKCkp
OwogICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAKICAgICAgICAgICAgIC8vIFR1cm4gdGhpczogQnJhbmNoKEJpdFhvcihib29sLCAx
KSwgdGhlbiwgZWxzZSkKICAgICAgICAgICAgIC8vIEludG8gdGhpczogQnJhbmNoKGJvb2wsIGVs
c2UsIHRoZW4pCi0gICAgICAgICAgICBpZiAoYnJhbmNoLT5jaGlsZCgwKS0+b3Bjb2RlKCkgPT0g
Qml0WG9yCi0gICAgICAgICAgICAgICAgJiYgYnJhbmNoLT5jaGlsZCgwKS0+Y2hpbGQoMSktPmlz
SW50MzIoMSkKLSAgICAgICAgICAgICAgICAmJiBicmFuY2gtPmNoaWxkKDApLT5jaGlsZCgwKS0+
cmV0dXJuc0Jvb2woKSkgewotICAgICAgICAgICAgICAgIGJyYW5jaC0+Y2hpbGQoMCkgPSBicmFu
Y2gtPmNoaWxkKDApLT5jaGlsZCgwKTsKLSAgICAgICAgICAgICAgICBzdGQ6OnN3YXAoYnJhbmNo
LT50YWtlbigpLCBicmFuY2gtPm5vdFRha2VuKCkpOworICAgICAgICAgICAgaWYgKG1fdmFsdWUt
PmNoaWxkKDApLT5vcGNvZGUoKSA9PSBCaXRYb3IKKyAgICAgICAgICAgICAgICAmJiBtX3ZhbHVl
LT5jaGlsZCgwKS0+Y2hpbGQoMSktPmlzSW50MzIoMSkKKyAgICAgICAgICAgICAgICAmJiBtX3Zh
bHVlLT5jaGlsZCgwKS0+Y2hpbGQoMCktPnJldHVybnNCb29sKCkpIHsKKyAgICAgICAgICAgICAg
ICBtX3ZhbHVlLT5jaGlsZCgwKSA9IG1fdmFsdWUtPmNoaWxkKDApLT5jaGlsZCgwKTsKKyAgICAg
ICAgICAgICAgICBzdGQ6OnN3YXAobV9ibG9jay0+dGFrZW4oKSwgbV9ibG9jay0+bm90VGFrZW4o
KSk7CiAgICAgICAgICAgICAgICAgbV9jaGFuZ2VkID0gdHJ1ZTsKICAgICAgICAgICAgIH0KIAog
ICAgICAgICAgICAgLy8gVHVybiB0aGlzOiBCcmFuY2goQml0QW5kKGJvb2wsIHh5YjEpLCB0aGVu
LCBlbHNlKQogICAgICAgICAgICAgLy8gSW50byB0aGlzOiBCcmFuY2goYm9vbCwgdGhlbiwgZWxz
ZSkKLSAgICAgICAgICAgIGlmIChicmFuY2gtPmNoaWxkKDApLT5vcGNvZGUoKSA9PSBCaXRBbmQK
LSAgICAgICAgICAgICAgICAmJiBicmFuY2gtPmNoaWxkKDApLT5jaGlsZCgxKS0+aGFzSW50KCkK
LSAgICAgICAgICAgICAgICAmJiBicmFuY2gtPmNoaWxkKDApLT5jaGlsZCgxKS0+YXNJbnQoKSAm
IDEKLSAgICAgICAgICAgICAgICAmJiBicmFuY2gtPmNoaWxkKDApLT5jaGlsZCgwKS0+cmV0dXJu
c0Jvb2woKSkgewotICAgICAgICAgICAgICAgIGJyYW5jaC0+Y2hpbGQoMCkgPSBicmFuY2gtPmNo
aWxkKDApLT5jaGlsZCgwKTsKKyAgICAgICAgICAgIGlmIChtX3ZhbHVlLT5jaGlsZCgwKS0+b3Bj
b2RlKCkgPT0gQml0QW5kCisgICAgICAgICAgICAgICAgJiYgbV92YWx1ZS0+Y2hpbGQoMCktPmNo
aWxkKDEpLT5oYXNJbnQoKQorICAgICAgICAgICAgICAgICYmIG1fdmFsdWUtPmNoaWxkKDApLT5j
aGlsZCgxKS0+YXNJbnQoKSAmIDEKKyAgICAgICAgICAgICAgICAmJiBtX3ZhbHVlLT5jaGlsZCgw
KS0+Y2hpbGQoMCktPnJldHVybnNCb29sKCkpIHsKKyAgICAgICAgICAgICAgICBtX3ZhbHVlLT5j
aGlsZCgwKSA9IG1fdmFsdWUtPmNoaWxkKDApLT5jaGlsZCgwKTsKICAgICAgICAgICAgICAgICBt
X2NoYW5nZWQgPSB0cnVlOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBUcmlTdGF0ZSB0
cmlTdGF0ZSA9IGJyYW5jaC0+Y2hpbGQoMCktPmFzVHJpU3RhdGUoKTsKKyAgICAgICAgICAgIFRy
aVN0YXRlIHRyaVN0YXRlID0gbV92YWx1ZS0+Y2hpbGQoMCktPmFzVHJpU3RhdGUoKTsKIAogICAg
ICAgICAgICAgLy8gVHVybiB0aGlzOiBCcmFuY2goMCwgdGhlbiwgZWxzZSkKICAgICAgICAgICAg
IC8vIEludG8gdGhpczogSnVtcChlbHNlKQogICAgICAgICAgICAgaWYgKHRyaVN0YXRlID09IEZh
bHNlVHJpU3RhdGUpIHsKLSAgICAgICAgICAgICAgICBicmFuY2gtPnRha2VuKCkuYmxvY2soKS0+
cmVtb3ZlUHJlZGVjZXNzb3IobV9ibG9jayk7Ci0gICAgICAgICAgICAgICAgYnJhbmNoLT5jb252
ZXJ0VG9KdW1wKGJyYW5jaC0+bm90VGFrZW4oKS5ibG9jaygpKTsKKyAgICAgICAgICAgICAgICBt
X2Jsb2NrLT50YWtlbigpLmJsb2NrKCktPnJlbW92ZVByZWRlY2Vzc29yKG1fYmxvY2spOworICAg
ICAgICAgICAgICAgIG1fdmFsdWUtPnJlcGxhY2VXaXRoSnVtcChtX2Jsb2NrLCBtX2Jsb2NrLT5u
b3RUYWtlbigpLmJsb2NrKCkpOwogICAgICAgICAgICAgICAgIG1fY2hhbmdlZENGRyA9IHRydWU7
CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CkBAIC0xODMyLDggKzE4NDAs
OCBAQCBwcml2YXRlOgogICAgICAgICAgICAgLy8gVHVybiB0aGlzOiBCcmFuY2gobm90IDAsIHRo
ZW4sIGVsc2UpCiAgICAgICAgICAgICAvLyBJbnRvIHRoaXM6IEp1bXAodGhlbikKICAgICAgICAg
ICAgIGlmICh0cmlTdGF0ZSA9PSBUcnVlVHJpU3RhdGUpIHsKLSAgICAgICAgICAgICAgICBicmFu
Y2gtPm5vdFRha2VuKCkuYmxvY2soKS0+cmVtb3ZlUHJlZGVjZXNzb3IobV9ibG9jayk7Ci0gICAg
ICAgICAgICAgICAgYnJhbmNoLT5jb252ZXJ0VG9KdW1wKGJyYW5jaC0+dGFrZW4oKS5ibG9jaygp
KTsKKyAgICAgICAgICAgICAgICBtX2Jsb2NrLT5ub3RUYWtlbigpLmJsb2NrKCktPnJlbW92ZVBy
ZWRlY2Vzc29yKG1fYmxvY2spOworICAgICAgICAgICAgICAgIG1fdmFsdWUtPnJlcGxhY2VXaXRo
SnVtcChtX2Jsb2NrLCBtX2Jsb2NrLT50YWtlbigpLmJsb2NrKCkpOwogICAgICAgICAgICAgICAg
IG1fY2hhbmdlZENGRyA9IHRydWU7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICB9CkBAIC0xODQyLDEyICsxODUwLDEyIEBAIHByaXZhdGU6CiAgICAgICAgICAgICAvLyBvZiBt
YWtlcyBzZW5zZSBoZXJlIGJlY2F1c2UgaXQncyBjaGVhcCwgYnV0IGhhY2tzIGxpa2UgdGhpcyBz
aG93IHRoYXQgd2UncmUgZ29pbmcKICAgICAgICAgICAgIC8vIHRvIG5lZWQgU0NDUC4KICAgICAg
ICAgICAgIFZhbHVlKiBjaGVjayA9IG1fcHVyZUNTRS5maW5kTWF0Y2goCi0gICAgICAgICAgICAg
ICAgVmFsdWVLZXkoQ2hlY2ssIFZvaWQsIGJyYW5jaC0+Y2hpbGQoMCkpLCBtX2Jsb2NrLCAqbV9k
b21pbmF0b3JzKTsKKyAgICAgICAgICAgICAgICBWYWx1ZUtleShDaGVjaywgVm9pZCwgbV92YWx1
ZS0+Y2hpbGQoMCkpLCBtX2Jsb2NrLCAqbV9kb21pbmF0b3JzKTsKICAgICAgICAgICAgIGlmIChj
aGVjaykgewogICAgICAgICAgICAgICAgIC8vIFRoZSBDaGVjayB3b3VsZCBoYXZlIHNpZGUtZXhp
dGVkIGlmIGNoaWxkKDApIHdhcyBub24temVyby4gU28sIGl0IG11c3QgYmUKICAgICAgICAgICAg
ICAgICAvLyB6ZXJvIGhlcmUuCi0gICAgICAgICAgICAgICAgYnJhbmNoLT50YWtlbigpLmJsb2Nr
KCktPnJlbW92ZVByZWRlY2Vzc29yKG1fYmxvY2spOwotICAgICAgICAgICAgICAgIGJyYW5jaC0+
Y29udmVydFRvSnVtcChicmFuY2gtPm5vdFRha2VuKCkuYmxvY2soKSk7CisgICAgICAgICAgICAg
ICAgbV9ibG9jay0+dGFrZW4oKS5ibG9jaygpLT5yZW1vdmVQcmVkZWNlc3NvcihtX2Jsb2NrKTsK
KyAgICAgICAgICAgICAgICBtX3ZhbHVlLT5yZXBsYWNlV2l0aEp1bXAobV9ibG9jaywgbV9ibG9j
ay0+bm90VGFrZW4oKS5ibG9jaygpKTsKICAgICAgICAgICAgICAgICBtX2NoYW5nZWRDRkcgPSB0
cnVlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CkBAIC0yMjIxLDcgKzIyMjks
NyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFMb2coCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDaGFuZ2luZyAiLCBwb2ludGVyRHVtcChibG9j
ayksICIncyB0ZXJtaW5hbCB0byBhIEp1bXAuXG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLT5sYXN0KCktPmFzPENvbnRyb2xWYWx1
ZT4oKS0+Y29udmVydFRvSnVtcChmaXJzdFN1Y2Nlc3Nvcik7CisgICAgICAgICAgICAgICAgICAg
ICAgICBibG9jay0+bGFzdCgpLT5yZXBsYWNlV2l0aEp1bXAoYmxvY2ssIGZpcnN0U3VjY2Vzc29y
KTsKICAgICAgICAgICAgICAgICAgICAgICAgIG1fY2hhbmdlZENGRyA9IHRydWU7CiAgICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CkBAIC0yMjQ0LDExICsyMjUyLDEzIEBA
IHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAvLyBB
cHBlbmQgdGhlIGZ1bGwgY29udGVudHMgb2YgdGhlIHN1Y2Nlc3NvciB0byB0aGUgcHJlZGVjZXNz
b3IuCiAgICAgICAgICAgICAgICAgICAgIGJsb2NrLT52YWx1ZXMoKS5hcHBlbmRWZWN0b3Ioc3Vj
Y2Vzc29yLT52YWx1ZXMoKSk7CisgICAgICAgICAgICAgICAgICAgIGJsb2NrLT5zdWNjZXNzb3Jz
KCkgPSBzdWNjZXNzb3ItPnN1Y2Nlc3NvcnMoKTsKICAgICAgICAgICAgICAgICAgICAgCiAgICAg
ICAgICAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBzdWNjZXNzb3IgaGFzIG5vdGhp
bmcgbGVmdCBpbiBpdC4gTWFrZSBzdXJlIHRoYXQgdGhlIGJsb2NrCiAgICAgICAgICAgICAgICAg
ICAgIC8vIGhhcyBhIHRlcm1pbmFsIHNvIHRoYXQgbm9ib2R5IGNob2tlcyB3aGVuIHRoZXkgbG9v
ayBhdCBpdC4KICAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc29yLT52YWx1ZXMoKS5yZXNpemUo
MCk7Ci0gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3Nvci0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4obV9wcm9jLCBPb3BzLCBqdW1wT3JpZ2luKTsKKyAgICAgICAgICAgICAgICAgICAgc3VjY2Vz
c29yLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgT29wcywganVtcE9yaWdpbik7CisgICAgICAg
ICAgICAgICAgICAgIHN1Y2Nlc3Nvci0+Y2xlYXJTdWNjZXNzb3JzKCk7CiAgICAgICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAvLyBFbnN1cmUgdGhhdCBwcmVkZWNlc3NvcnMg
b2YgYmxvY2sncyBuZXcgc3VjY2Vzc29ycyBrbm93IHdoYXQncyB1cC4KICAgICAgICAgICAgICAg
ICAgICAgZm9yIChCYXNpY0Jsb2NrKiBuZXdTdWNjZXNzb3IgOiBibG9jay0+c3VjY2Vzc29yQmxv
Y2tzKCkpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTd2l0Y2hWYWx1ZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N3aXRjaFZhbHVlLmgJKHJl
dmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N3aXRjaFZhbHVl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDEwIEBACiAKIG5hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgQjMgewogCisvLyBGSVhNRTogQ3JlYXRlIGEgdGhpbmcgY2FsbGVkIGEgU3dpdGNo
Q2FzZUNvbGxlY3Rpb24gb3IganVzdCBDYXNlQ29sbGVjdGlvbiwgd2hpY2ggaXMgYSB0dXBsZSBv
ZgorLy8gU3dpdGNoVmFsdWUgYW5kIEJhc2ljQmxvY2suIFlvdSBjYW4gZ2V0IGl0IGJ5IGNhbGxp
bmcgY2FzZXMoQmFzaWNCbG9jayopIG9yIGp1c3QgY2FzZXMoKSBpZiB5b3UKKy8vIGtub3cgdGhh
dCBvd25lciBpcyBzZXQuCisKIGNsYXNzIFN3aXRjaFZhbHVlIDogcHVibGljIENvbnRyb2xWYWx1
ZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgYWNjZXB0cyhPcGNvZGUgb3Bjb2RlKSB7IHJl
dHVybiBvcGNvZGUgPT0gU3dpdGNoOyB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNWYWxpZGF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
VmFsaWRhdGUuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNWYWxpZGF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4Nyw2ICszODcsMTEgQEAgcHVi
bGljOgogICAgICAgICAgICAgICAgIFZBTElEQVRFKGlzSW50KHZhbHVlLT5jaGlsZCgwKS0+dHlw
ZSgpKSwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+
dHlwZSgpID09IFZvaWQsICgiQXQgIiwgKnZhbHVlKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBjYXNlIFBvbHlKdW1wOgorICAgICAgICAgICAgICAgIFZBTElEQVRFKHZh
bHVlLT5udW1DaGlsZHJlbigpID09IDEsICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAg
ICAgVkFMSURBVEUodmFsdWUtPmNoaWxkKDApLT50eXBlKCkgPT0gcG9pbnRlclR5cGUoKSwgKCJB
dCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+dHlwZSgpID09
IFZvaWQsICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
ICAgICB9CiAKICAgICAgICAgICAgIFZBTElEQVRFKCEodmFsdWUtPmVmZmVjdHMoKS53cml0ZXMg
JiYgdmFsdWUtPmtleSgpKSwgKCJBdCAiLCAqdmFsdWUpKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM1ZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNWYWx1ZS5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM1ZhbHVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI1LDYgKzEyNSw1MCBAQCB2
b2lkIFZhbHVlOjpyZXBsYWNlV2l0aFBoaSgpCiAgICAgdGhpcy0+bV9pbmRleCA9IGluZGV4Owog
fQogCit2b2lkIFZhbHVlOjpyZXBsYWNlV2l0aEp1bXAoQmFzaWNCbG9jayogb3duZXIsIGNvbnN0
IEZyZXF1ZW50ZWRCbG9jayYgdGFyZ2V0KQoreworICAgIFJFTEVBU0VfQVNTRVJUKG93bmVyLT5s
YXN0KCkgPT0gdGhpcyk7CisgICAgCisgICAgdW5zaWduZWQgaW5kZXggPSBtX2luZGV4OworICAg
IE9yaWdpbiBvcmlnaW4gPSBtX29yaWdpbjsKKyAgICAKKyAgICB0aGlzLT5+VmFsdWUoKTsKKyAg
ICAKKyAgICBuZXcgKHRoaXMpIFZhbHVlKEp1bXAsIFZvaWQsIG9yaWdpbik7CisgICAgCisgICAg
dGhpcy0+b3duZXIgPSBvd25lcjsKKyAgICB0aGlzLT5tX2luZGV4ID0gaW5kZXg7CisgICAgCisg
ICAgb3duZXItPnNldFN1Y2Nlc3NvcnModGFyZ2V0KTsKK30KKwordm9pZCBWYWx1ZTo6cmVwbGFj
ZVdpdGhPb3BzKEJhc2ljQmxvY2sqIG93bmVyKQoreworICAgIFJFTEVBU0VfQVNTRVJUKG93bmVy
LT5sYXN0KCkgPT0gdGhpcyk7CisgICAgCisgICAgdW5zaWduZWQgaW5kZXggPSBtX2luZGV4Owor
ICAgIE9yaWdpbiBvcmlnaW4gPSBtX29yaWdpbjsKKyAgICAKKyAgICB0aGlzLT5+VmFsdWUoKTsK
KyAgICAKKyAgICBuZXcgKHRoaXMpIFZhbHVlKE9vcHMsIFZvaWQsIG9yaWdpbik7CisgICAgCisg
ICAgdGhpcy0+b3duZXIgPSBvd25lcjsKKyAgICB0aGlzLT5tX2luZGV4ID0gaW5kZXg7CisgICAg
CisgICAgb3duZXItPmNsZWFyU3VjY2Vzc29ycygpOworfQorCit2b2lkIFZhbHVlOjpyZXBsYWNl
V2l0aEp1bXAoY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YXJnZXQpCit7CisgICAgcmVwbGFjZVdp
dGhKdW1wKG93bmVyLCB0YXJnZXQpOworfQorCit2b2lkIFZhbHVlOjpyZXBsYWNlV2l0aE9vcHMo
KQoreworICAgIHJlcGxhY2VXaXRoT29wcyhvd25lcik7Cit9CisKIHZvaWQgVmFsdWU6OmR1bXAo
UHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHsKICAgICBib29sIGlzQ29uc3RhbnQgPSBmYWxzZTsK
QEAgLTU1Miw2ICs1OTYsNyBAQCBFZmZlY3RzIFZhbHVlOjplZmZlY3RzKCkgY29uc3QKICAgICBj
YXNlIEp1bXA6CiAgICAgY2FzZSBCcmFuY2g6CiAgICAgY2FzZSBTd2l0Y2g6CisgICAgY2FzZSBQ
b2x5SnVtcDoKICAgICBjYXNlIFJldHVybjoKICAgICBjYXNlIE9vcHM6CiAgICAgICAgIHJlc3Vs
dC50ZXJtaW5hbCA9IHRydWU7CkBAIC01NjAsNiArNjA1LDExIEBAIEVmZmVjdHMgVmFsdWU6OmVm
ZmVjdHMoKSBjb25zdAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK2Jvb2wgVmFsdWU6OmlzQ2xv
bmVhYmxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogVmFsdWVLZXkgVmFsdWU6
OmtleSgpIGNvbnN0CiB7CiAgICAgc3dpdGNoIChvcGNvZGUoKSkgewpAQCAtNzEzLDYgKzc2Mywx
MCBAQCBUeXBlIFZhbHVlOjp0eXBlRm9yKE9wY29kZSBvcGNvZGUsIFZhbHVlCiAgICAgICAgIH0K
ICAgICAgICAgcmV0dXJuIFZvaWQ7CiAgICAgY2FzZSBOb3A6CisgICAgY2FzZSBKdW1wOgorICAg
IGNhc2UgQnJhbmNoOgorICAgIGNhc2UgUmV0dXJuOgorICAgIGNhc2UgT29wczoKICAgICAgICAg
cmV0dXJuIFZvaWQ7CiAgICAgY2FzZSBTZWxlY3Q6CiAgICAgICAgIEFTU0VSVChzZWNvbmRDaGls
ZCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmgJKHJldmlzaW9uIDIwMjgwOSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTEwOSw2ICsxMDksMTQgQEAgcHVibGljOgogICAgIHZvaWQgcmVwbGFjZVdpdGhOb3BJZ25vcmlu
Z1R5cGUoKTsKICAgICAKICAgICB2b2lkIHJlcGxhY2VXaXRoUGhpKCk7CisgICAgCisgICAgLy8g
VGhlc2UgdHJhbnNmb3JtYXRpb25zIGFyZSBvbmx5IHZhbGlkIGZvciB0ZXJtaW5hbHMuCisgICAg
dm9pZCByZXBsYWNlV2l0aEp1bXAoQmFzaWNCbG9jayogb3duZXIsIGNvbnN0IEZyZXF1ZW50ZWRC
bG9jayYpOworICAgIHZvaWQgcmVwbGFjZVdpdGhPb3BzKEJhc2ljQmxvY2sqIG93bmVyKTsKKyAg
ICAKKyAgICAvLyBZb3UgY2FuIHVzZSB0aGlzIGZvcm0gaWYgb3duZXJzIGFyZSB2YWxpZC4gVGhl
eSdyZSB1c3VhbGx5IG5vdCB2YWxpZC4KKyAgICB2b2lkIHJlcGxhY2VXaXRoSnVtcChjb25zdCBG
cmVxdWVudGVkQmxvY2smKTsKKyAgICB2b2lkIHJlcGxhY2VXaXRoT29wcygpOwogCiAgICAgdm9p
ZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAgICAgdm9pZCBkZWVwRHVtcChjb25zdCBQcm9j
ZWR1cmUqLCBQcmludFN0cmVhbSYpIGNvbnN0OwpAQCAtMjIzLDYgKzIzMSwxMSBAQCBwdWJsaWM6
CiAgICAgYm9vbCBpc0xpa2VOb25aZXJvKCkgY29uc3QgeyByZXR1cm4gYXNUcmlTdGF0ZSgpID09
IFRydWVUcmlTdGF0ZTsgfQogCiAgICAgRWZmZWN0cyBlZmZlY3RzKCkgY29uc3Q7CisgICAgCisg
ICAgLy8gU29tZSBvcGVyYXRpb25zIHdpbGwgcmVmdXNlIHRvIGJlIGNsb25lZC4gVGhpcyBoYXBw
ZW5zIHdoZW4gdGhlIG9wZXJhdGlvbiBoYXMgc29tZSBpbnNpZGUKKyAgICAvLyBrbm93bGVkZ2Ug
YWJvdXQgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIGl0cyBpZGVudGl0eSBhbmQgdGhlIGlkZW50
aXR5IG9mIHRoZSBjb2RlIGl0IHdpbGwKKyAgICAvLyBnZW5lcmF0ZS4KKyAgICB2aXJ0dWFsIGJv
b2wgaXNDbG9uZWFibGUoKSBjb25zdDsKIAogICAgIC8vIFRoaXMgcmV0dXJucyBhIFZhbHVlS2V5
IHRoYXQgZGVzY3JpYmVzIHRoYXQgdGhpcyBWYWx1ZSByZXR1cm5zIHdoZW4gaXQgZXhlY3V0ZXMu
IFJldHVybnMgYW4KICAgICAvLyBlbXB0eSBWYWx1ZUtleSBpZiB0aGlzIFZhbHVlIGlzIGltcHVy
ZS4gTm90ZSB0aGF0IGFuIG9wZXJhdGlvbiB0aGF0IHJldHVybnMgVm9pZCBjb3VsZCBzdGlsbApA
QCAtMjY0LDYgKzI3Nyw4IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgRnJhbWVQb2ludGVyOgog
ICAgICAgICBjYXNlIE5vcDoKICAgICAgICAgY2FzZSBQaGk6CisgICAgICAgIGNhc2UgSnVtcDoK
KyAgICAgICAgY2FzZSBPb3BzOgogICAgICAgICAgICAgaWYgKFVOTElLRUxZKG51bUFyZ3MpKQog
ICAgICAgICAgICAgICAgIGJhZE9wY29kZShvcGNvZGUsIG51bUFyZ3MpOwogICAgICAgICAgICAg
YnJlYWs7CkBAIC0yODQsNiArMjk5LDggQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBEb3VibGVU
b0Zsb2F0OgogICAgICAgICBjYXNlIElUb0Y6CiAgICAgICAgIGNhc2UgQml0d2lzZUNhc3Q6Cisg
ICAgICAgIGNhc2UgQnJhbmNoOgorICAgICAgICBjYXNlIFJldHVybjoKICAgICAgICAgICAgIGlm
IChVTkxJS0VMWShudW1BcmdzICE9IDEpKQogICAgICAgICAgICAgICAgIGJhZE9wY29kZShvcGNv
ZGUsIG51bUFyZ3MpOwogICAgICAgICAgICAgYnJlYWs7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvdGVzdGIzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvdGVzdGIzLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL3Rlc3RiMy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRl
ICJCM0NvbnN0UHRyVmFsdWUuaCIKICNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1
ZGUgIkIzRWZmZWN0cy5oIgorI2luY2x1ZGUgIkIzUG9seUp1bXBWYWx1ZS5oIgogI2luY2x1ZGUg
IkIzTWF0aEV4dHJhcy5oIgogI2luY2x1ZGUgIkIzTWVtb3J5VmFsdWUuaCIKICNpbmNsdWRlICJC
M1Byb2NlZHVyZS5oIgpAQCAtNDYsNiArNDcsNyBAQAogI2luY2x1ZGUgIkIzVXBzaWxvblZhbHVl
LmgiCiAjaW5jbHVkZSAiQjNWYWxpZGF0ZS5oIgogI2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgi
CisjaW5jbHVkZSAiQjNWYXJpYWJsZVZhbHVlLmgiCiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgi
CiAjaW5jbHVkZSAiSW5pdGlhbGl6ZVRocmVhZGluZy5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMu
aCIKQEAgLTU0LDYgKzU2LDcgQEAKICNpbmNsdWRlICJWTS5oIgogI2luY2x1ZGUgPGNtYXRoPgog
I2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDx3dGYvTGlzdER1bXAuaD4KICNpbmNsdWRlIDx3
dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9OdW1iZXJPZkNvcmVzLmg+CiAjaW5jbHVkZSA8d3Rm
L1RocmVhZGluZy5oPgpAQCAtNzUsNiArNzgsMTEgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzo6QjM7
CiAKIG5hbWVzcGFjZSB7CiAKK2Jvb2wgc2hvdWxkQmVWZXJib3NlKCkKK3sKKyAgICByZXR1cm4g
c2hvdWxkRHVtcElSKEIzTW9kZSk7Cit9CisKIFN0YXRpY0xvY2sgY3Jhc2hMb2NrOwogCiAvLyBO
b3RoaW5nIGZhbmN5IGZvciBub3c7IHdlIGp1c3QgdXNlIHRoZSBleGlzdGluZyBXVEYgYXNzZXJ0
aW9uIG1hY2hpbmVyeS4KQEAgLTEwMTcwLDcgKzEwMTc4LDEwIEBAIHZvaWQgdGVzdFN3aXRjaENo
aWxsRGl2KHVuc2lnbmVkIGRlZ3JlZSwKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwog
CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGRlZ3JlZTsgKytpKSB7Ci0gICAgICAgIENI
RUNLKGludm9rZTxpbnQzMl90PigqY29kZSwgaSAqIGdhcCwgNDIsIDExKSA9PSAoKGkgJiAxKSA/
IDExLzQyIDogNDIvMTEpKTsKKyAgICAgICAgZGF0YUxvZygiaSA9ICIsIGksICJcbiIpOworICAg
ICAgICBpbnQzMl90IHJlc3VsdCA9IGludm9rZTxpbnQzMl90PigqY29kZSwgaSAqIGdhcCwgNDIs
IDExKTsKKyAgICAgICAgZGF0YUxvZygicmVzdWx0ID0gIiwgcmVzdWx0LCAiXG4iKTsKKyAgICAg
ICAgQ0hFQ0socmVzdWx0ID09ICgoaSAmIDEpID8gMTEvNDIgOiA0Mi8xMSkpOwogICAgICAgICBp
ZiAoZ2FwID4gMSkgewogICAgICAgICAgICAgQ0hFQ0soIWludm9rZTxpbnQzMl90PigqY29kZSwg
aSAqIGdhcCArIDEsIDQyLCAxMSkpOwogICAgICAgICAgICAgQ0hFQ0soIWludm9rZTxpbnQzMl90
PigqY29kZSwgaSAqIGdhcCAtIDEsIDQyLCAxMSkpOwpAQCAtMTIwOTIsNiArMTIxMDMsMjMxIEBA
IHZvaWQgdGVzdExhdGVSZWdpc3RlcigpCiAgICAgQ0hFQ0soaW52b2tlPHVpbnQ2NF90PigqY29k
ZSkgPT0gcmVzdWx0KTsKIH0KIAordm9pZCB0aHJlYWRlZEludGVycHJldGVyUHJpbnQoVmVjdG9y
PGludHB0cl90Piogc3RyZWFtLCBpbnRwdHJfdCB2YWx1ZSkKK3sKKyAgICBzdHJlYW0tPmFwcGVu
ZCh2YWx1ZSk7Cit9CisKK3ZvaWQgdGVzdFRocmVhZGVkSW50ZXJwcmV0ZXIoKQoreworICAgIC8v
IFRoaXMgY3JlYXRlcyBhIHBvb3IgbWFuJ3MgdGhyZWFkZWQgaW50ZXJwcmV0ZXIgdXNpbmcgUG9s
eUp1bXAgYW5kIHNlZXMgaWYgaXQgd29ya3MuIE5vdGUKKyAgICAvLyB0aGF0IFBvbHlKdW1wIGlz
IG5vdCBsaWtlIGluZGlyZWN0IGJyYW5jaGVzIGluIExMVk0sIHNvIHlvdSBjYW4ndCBhY3R1YWxs
eSB1c2UgaXQgdG8KKyAgICAvLyBpbXBsZW1lbnQgYSBwcm9wZXIgdGhyZWFkZWQgaW50ZXJwcmV0
ZXIuIFRoaXMgY2hlYXRzOiB0aGUgZGlzcGF0Y2ggaW5zdHJ1Y3Rpb24gaXMgYXQgdGhlIHRvcAor
ICAgIC8vIG9mIHRoZSBsb29wLiBUaGlzIGFsc28gdGVzdHMgVmFyaWFibGVWYWx1ZS4KKyAgICAK
KyAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICAKKyAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOworICAgIEJhc2ljQmxvY2sqIGRpc3BhdGNoID0gcHJvYy5hZGRCbG9jaygpOwor
ICAgIEJhc2ljQmxvY2sqIGFkZFRvRGF0YVBvaW50ZXIgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAg
QmFzaWNCbG9jayogYWRkVG9Db2RlUG9pbnRlciA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBCYXNp
Y0Jsb2NrKiBhZGRUb0NvZGVQb2ludGVyVGFrZW4gPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFz
aWNCbG9jayogYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuID0gcHJvYy5hZGRCbG9jaygpOworICAg
IEJhc2ljQmxvY2sqIGFkZFRvRGF0YSA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBCYXNpY0Jsb2Nr
KiBwcmludCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBCYXNpY0Jsb2NrKiBzdG9wID0gcHJvYy5h
ZGRCbG9jaygpOworICAgIAorICAgIFZhcmlhYmxlKiBkYXRhUG9pbnRlciA9IHByb2MuYWRkVmFy
aWFibGUocG9pbnRlclR5cGUoKSk7CisgICAgVmFyaWFibGUqIGNvZGVQb2ludGVyID0gcHJvYy5h
ZGRWYXJpYWJsZShwb2ludGVyVHlwZSgpKTsKKyAgICAKKyAgICByb290LT5hcHBlbmROZXc8VmFy
aWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGRhdGFQb2ludGVyLAor
ICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOworICAgIHJvb3QtPmFwcGVuZE5ldzxWYXJpYWJsZVZh
bHVlPigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIsCisgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIxKSk7CisgICAgVmFsdWUqIGNvbnRleHQgPSByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMik7
CisgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCks
IEZyZXF1ZW50ZWRCbG9jayhkaXNwYXRjaCkpOworICAgIAorICAgIFBvbHlKdW1wVmFsdWUqIHBv
bHlKdW1wID0gZGlzcGF0Y2gtPmFwcGVuZE5ldzxQb2x5SnVtcFZhbHVlPigKKyAgICAgICAgcHJv
YywgT3JpZ2luKCksCisgICAgICAgIGRpc3BhdGNoLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAor
ICAgICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCksCisgICAgICAg
ICAgICBkaXNwYXRjaC0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAgICAgICAgICAgICAg
IHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlcikpKTsKKyAgICBwb2x5SnVtcC0+
YXBwZW5kU3VjY2Vzc29yKEZyZXF1ZW50ZWRCbG9jayhhZGRUb0RhdGFQb2ludGVyKSk7CisgICAg
cG9seUp1bXAtPmFwcGVuZFN1Y2Nlc3NvcihGcmVxdWVudGVkQmxvY2soYWRkVG9Db2RlUG9pbnRl
cikpOworICAgIHBvbHlKdW1wLT5hcHBlbmRTdWNjZXNzb3IoRnJlcXVlbnRlZEJsb2NrKGFkZFRv
RGF0YSkpOworICAgIHBvbHlKdW1wLT5hcHBlbmRTdWNjZXNzb3IoRnJlcXVlbnRlZEJsb2NrKHBy
aW50KSk7CisgICAgcG9seUp1bXAtPmFwcGVuZFN1Y2Nlc3NvcihGcmVxdWVudGVkQmxvY2soc3Rv
cCkpOworICAgIAorICAgIC8vIE91ciAib3Bjb2RlcyIuIFRoZXkgd2lsbCBoYXZlIG1lYW5pbmcg
b25jZSB3ZSBjb21waWxlLgorICAgIGludHB0cl90IEFkZERQID0gMDsKKyAgICBpbnRwdHJfdCBB
ZGRDUCA9IDA7CisgICAgaW50cHRyX3QgQWRkID0gMDsKKyAgICBpbnRwdHJfdCBQcmludCA9IDA7
CisgICAgaW50cHRyX3QgU3RvcCA9IDA7CisgICAgcG9seUp1bXAtPnNldENhbGxiYWNrKAorICAg
ICAgICBbJl0gKGNvbnN0IFZlY3RvcjxNYWNyb0Fzc2VtYmxlckNvZGVQdHI+JiBwb2ludGVycykg
eworICAgICAgICAgICAgYXV0byBnZXQgPSBbJl0gKHNpemVfdCBpbmRleCkgLT4gaW50cHRyX3Qg
eworICAgICAgICAgICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8aW50cHRyX3Q+KHBvaW50ZXJz
W2luZGV4XS5leGVjdXRhYmxlQWRkcmVzcygpKTsKKyAgICAgICAgICAgIH07CisgICAgICAgICAg
ICAKKyAgICAgICAgICAgIEFkZERQID0gZ2V0KDApOworICAgICAgICAgICAgQWRkQ1AgPSBnZXQo
MSk7CisgICAgICAgICAgICBBZGQgPSBnZXQoMik7CisgICAgICAgICAgICBQcmludCA9IGdldCgz
KTsKKyAgICAgICAgICAgIFN0b3AgPSBnZXQoNCk7CisgICAgICAgIH0pOworICAgIAorICAgIC8v
IEFkZERQIDxvcGVyYW5kPjogYWRkcyA8b3BlcmFuZD4gdG8gRFAuCisgICAgVmFsdWUqIGNvZGVQ
b2ludGVyVmFsdWUgPQorICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFi
bGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyKTsKKyAgICBhZGRU
b0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNl
dCwgT3JpZ2luKCksIGRhdGFQb2ludGVyLAorICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBl
bmROZXc8VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgQjM6OkFkZCwgT3JpZ2luKCksCisgICAg
ICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywg
QjM6OkdldCwgT3JpZ2luKCksIGRhdGFQb2ludGVyKSwKKyAgICAgICAgICAgIGFkZFRvRGF0YVBv
aW50ZXItPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICAgICAgcHJvYywgTXVsLCBPcmln
aW4oKSwKKyAgICAgICAgICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8TWVtb3J5
VmFsdWU+KAorICAgICAgICAgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBP
cmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwgc2l6ZW9mKGludHB0cl90KSksCisgICAgICAgICAg
ICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kSW50Q29uc3RhbnQoCisgICAgICAgICAgICAg
ICAgICAgIHByb2MsIE9yaWdpbigpLCBwb2ludGVyVHlwZSgpLCBzaXplb2YoaW50cHRyX3QpKSkp
KTsKKyAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAg
ICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyLAorICAgICAgICBhZGRUb0RhdGFQ
b2ludGVyLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgQjM6OkFkZCwgT3Jp
Z2luKCksIGNvZGVQb2ludGVyVmFsdWUsCisgICAgICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5h
cHBlbmRJbnRDb25zdGFudCgKKyAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgcG9pbnRl
clR5cGUoKSwgc2l6ZW9mKGludHB0cl90KSAqIDIpKSk7CisgICAgYWRkVG9EYXRhUG9pbnRlci0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRC
bG9jayhkaXNwYXRjaCkpOworICAgIAorICAgIC8vIEFkZENQIDxvcGVyYW5kPjogYWRkcyA8b3Bl
cmFuZD4gdG8gQ1AgaWYgdGhlIGN1cnJlbnQgdmFsdWUgYXQgRFAgaXMgbm9uLXplcm8sIG90aGVy
d2lzZQorICAgIC8vIGZhbGxzIHRocm91Z2ggbm9ybWFsbHkuCisgICAgY29kZVBvaW50ZXJWYWx1
ZSA9CisgICAgICAgIGFkZFRvQ29kZVBvaW50ZXItPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPihw
cm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIpOworICAgIFZhbHVlKiBkYXRhUG9p
bnRlclZhbHVlID0KKyAgICAgICAgYWRkVG9Db2RlUG9pbnRlci0+YXBwZW5kTmV3PFZhcmlhYmxl
VmFsdWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRlcik7CisgICAgYWRkVG9D
b2RlUG9pbnRlci0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHByb2MsIEJyYW5j
aCwgT3JpZ2luKCksCisgICAgICAgIGFkZFRvQ29kZVBvaW50ZXItPmFwcGVuZE5ldzxNZW1vcnlW
YWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwg
ZGF0YVBvaW50ZXJWYWx1ZSksCisgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhhZGRUb0NvZGVQb2lu
dGVyVGFrZW4pLCBGcmVxdWVudGVkQmxvY2soYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuKSk7Cisg
ICAgYWRkVG9Db2RlUG9pbnRlclRha2VuLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAg
ICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyLAorICAgICAgICBhZGRUb0NvZGVQ
b2ludGVyVGFrZW4tPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBCMzo6QWRk
LCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwKKyAgICAgICAgICAgIGFkZFRvQ29kZVBvaW50
ZXJUYWtlbi0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgICAgICBwcm9jLCBNdWwsIE9y
aWdpbigpLAorICAgICAgICAgICAgICAgIGFkZFRvQ29kZVBvaW50ZXJUYWtlbi0+YXBwZW5kTmV3
PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAgICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5
cGUoKSwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUsIHNpemVvZihpbnRwdHJfdCkpLAorICAg
ICAgICAgICAgICAgIGFkZFRvQ29kZVBvaW50ZXJUYWtlbi0+YXBwZW5kSW50Q29uc3RhbnQoCisg
ICAgICAgICAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLCBwb2ludGVyVHlwZSgpLCBzaXplb2Yo
aW50cHRyX3QpKSkpKTsKKyAgICBhZGRUb0NvZGVQb2ludGVyVGFrZW4tPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZGlzcGF0Y2gp
KTsKKyAgICBhZGRUb0NvZGVQb2ludGVyTm90VGFrZW4tPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVl
PigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIsCisgICAgICAgIGFk
ZFRvQ29kZVBvaW50ZXJOb3RUYWtlbi0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHBy
b2MsIEIzOjpBZGQsIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLAorICAgICAgICAgICAgYWRk
VG9Db2RlUG9pbnRlck5vdFRha2VuLT5hcHBlbmRJbnRDb25zdGFudCgKKyAgICAgICAgICAgICAg
ICBwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6ZW9mKGludHB0cl90KSAqIDIpKSk7
CisgICAgYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICAgICAgcHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhkaXNwYXRjaCkp
OworCisgICAgLy8gQWRkIDxvcGVyYW5kPjogYWRkcyA8b3BlcmFuZD4gdG8gdGhlIHNsb3QgcG9p
bnRlZCB0byBieSBEUC4KKyAgICBjb2RlUG9pbnRlclZhbHVlID0gYWRkVG9EYXRhLT5hcHBlbmRO
ZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyKTsK
KyAgICBkYXRhUG9pbnRlclZhbHVlID0gYWRkVG9EYXRhLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1
ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGRhdGFQb2ludGVyKTsKKyAgICBhZGRUb0RhdGEt
PmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgIHByb2MsIFN0b3JlLCBPcmlnaW4oKSwK
KyAgICAgICAgYWRkVG9EYXRhLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgcHJvYywg
QjM6OkFkZCwgT3JpZ2luKCksCisgICAgICAgICAgICBhZGRUb0RhdGEtPmFwcGVuZE5ldzxNZW1v
cnlWYWx1ZT4oCisgICAgICAgICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3Jp
Z2luKCksIGRhdGFQb2ludGVyVmFsdWUpLAorICAgICAgICAgICAgYWRkVG9EYXRhLT5hcHBlbmRO
ZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICAgICAgICAgIHByb2MsIExvYWQsIHBvaW50ZXJUeXBl
KCksIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLCBzaXplb2YoaW50cHRyX3QpKSksCisgICAg
ICAgIGRhdGFQb2ludGVyVmFsdWUpOworICAgIGFkZFRvRGF0YS0+YXBwZW5kTmV3PFZhcmlhYmxl
VmFsdWU+KAorICAgICAgICBwcm9jLCBTZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlciwKKyAgICAg
ICAgYWRkVG9EYXRhLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgQjM6OkFk
ZCwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUsCisgICAgICAgICAgICBhZGRUb0RhdGEtPmFw
cGVuZEludENvbnN0YW50KHByb2MsIE9yaWdpbigpLCBwb2ludGVyVHlwZSgpLCBzaXplb2YoaW50
cHRyX3QpICogMikpKTsKKyAgICBhZGRUb0RhdGEtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZGlzcGF0Y2gpKTsKKyAgICAKKyAg
ICAvLyBQcmludDogInByaW50cyIgdGhlIHZhbHVlIHBvaW50ZWQgdG8gYnkgRFAuIFdoYXQgdGhp
cyBhY3R1YWxseSBtZWFucyBpcyB0aGF0IHRoZSB2YWx1ZSBpcworICAgIC8vIGFwcGVuZGVkIHRv
IHRoZSBzdHJlYW0gdmVjdG9yIGJ5IHRoZSB0aHJlYWRlZEludGVycHJldGVyUHJpbnQgZnVuY3Rp
b24uCisgICAgY29kZVBvaW50ZXJWYWx1ZSA9IHByaW50LT5hcHBlbmROZXc8VmFyaWFibGVWYWx1
ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyKTsKKyAgICBkYXRhUG9pbnRl
clZhbHVlID0gcHJpbnQtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPihwcm9jLCBCMzo6R2V0LCBP
cmlnaW4oKSwgZGF0YVBvaW50ZXIpOworICAgIHByaW50LT5hcHBlbmROZXc8Q0NhbGxWYWx1ZT4o
CisgICAgICAgIHByb2MsIFZvaWQsIE9yaWdpbigpLAorICAgICAgICBwcmludC0+YXBwZW5kTmV3
PENvbnN0UHRyVmFsdWU+KAorICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksIGJpdHdpc2VfY2Fz
dDx2b2lkKj4odGhyZWFkZWRJbnRlcnByZXRlclByaW50KSksCisgICAgICAgIGNvbnRleHQsCisg
ICAgICAgIHByaW50LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIHBvaW50ZXJU
eXBlKCksIE9yaWdpbigpLCBkYXRhUG9pbnRlclZhbHVlKSk7CisgICAgcHJpbnQtPmFwcGVuZE5l
dzxWYXJpYWJsZVZhbHVlPigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgY29kZVBvaW50
ZXIsCisgICAgICAgIHByaW50LT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgcHJvYywg
QjM6OkFkZCwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUsCisgICAgICAgICAgICBwcmludC0+
YXBwZW5kSW50Q29uc3RhbnQocHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBlKCksIHNpemVvZihp
bnRwdHJfdCkpKSk7CisgICAgcHJpbnQtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1
bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZGlzcGF0Y2gpKTsKKyAgICAKKyAgICAvLyBT
dG9wOiByZXR1cm5zLgorICAgIHN0b3AtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgICAgICBzdG9wLT5hcHBlbmRJbnRDb25zdGFu
dChwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgMCkpOworICAgIAorICAgIGF1dG8gaW50
ZXJwcmV0ZXIgPSBjb21waWxlKHByb2MpOworICAgIAorICAgIENIRUNLKEFkZERQKTsKKyAgICBD
SEVDSyhBZGRDUCk7CisgICAgQ0hFQ0soQWRkKTsKKyAgICBDSEVDSyhQcmludCk7CisgICAgQ0hF
Q0soU3RvcCk7CisgICAgCisgICAgVmVjdG9yPGludHB0cl90PiBkYXRhOworICAgIFZlY3Rvcjxp
bnRwdHJfdD4gY29kZTsKKyAgICBWZWN0b3I8aW50cHRyX3Q+IHN0cmVhbTsKKyAgICAKKyAgICBk
YXRhLmFwcGVuZCgxKTsKKyAgICBkYXRhLmFwcGVuZCgwKTsKKyAgICAKKyAgICBpZiAoc2hvdWxk
QmVWZXJib3NlKCkpCisgICAgICAgIGRhdGFMb2coImRhdGEgPSAiLCBsaXN0RHVtcChkYXRhKSwg
IlxuIik7CisgICAgCisgICAgLy8gV2UnbGwgd3JpdGUgYSBwcm9ncmFtIHRoYXQgcHJpbnRzIHRo
ZSBudW1iZXJzIDEuLjEwMC4KKyAgICAvLyBXZSBleHBlY3QgRFAgdG8gcG9pbnQgYXQgIzAuCisg
ICAgY29kZS5hcHBlbmQoQWRkQ1ApOworICAgIGNvZGUuYXBwZW5kKDYpOyAvLyBnbyB0byBsb29w
IGJvZHkKKyAgICAKKyAgICAvLyBMb29wIHJlLWVudHJ5OgorICAgIC8vIFdlIGV4cGVjdCBEUCB0
byBwb2ludCBhdCAjMSBhbmQgZm9yICMxIHRvIGJlIG9mZnNldCBieSAtMTAwLgorICAgIGNvZGUu
YXBwZW5kKEFkZCk7CisgICAgY29kZS5hcHBlbmQoMTAwKTsKKyAgICAKKyAgICBjb2RlLmFwcGVu
ZChBZGREUCk7CisgICAgY29kZS5hcHBlbmQoLTEpOworICAgIAorICAgIC8vIExvb3AgaGVhZGVy
OgorICAgIC8vIFdlIGV4cGVjdCBEUCB0byBwb2ludCBhdCAjMC4KKyAgICBjb2RlLmFwcGVuZChB
ZGREUCk7CisgICAgY29kZS5hcHBlbmQoMSk7CisgICAgCisgICAgY29kZS5hcHBlbmQoQWRkKTsK
KyAgICBjb2RlLmFwcGVuZCgxKTsKKyAgICAKKyAgICBjb2RlLmFwcGVuZChQcmludCk7CisgICAg
CisgICAgY29kZS5hcHBlbmQoQWRkKTsKKyAgICBjb2RlLmFwcGVuZCgtMTAwKTsKKyAgICAKKyAg
ICAvLyBXZSB3YW50IHRvIHN0b3AgaWYgaXQncyB6ZXJvIGFuZCBjb250aW51ZSBpZiBpdCdzIG5v
bi16ZXJvLiBBZGRDUCB0YWtlcyB0aGUgYnJhbmNoIGlmIGl0J3MKKyAgICAvLyBub24temVyby4K
KyAgICBjb2RlLmFwcGVuZChBZGRDUCk7CisgICAgY29kZS5hcHBlbmQoLTExKTsgLy8gZ28gdG8g
bG9vcCByZS1lbnRyeS4KKyAgICAKKyAgICBjb2RlLmFwcGVuZChTdG9wKTsKKyAgICAKKyAgICBp
ZiAoc2hvdWxkQmVWZXJib3NlKCkpCisgICAgICAgIGRhdGFMb2coImNvZGUgPSAiLCBsaXN0RHVt
cChjb2RlKSwgIlxuIik7CisgICAgCisgICAgQ0hFQ0soIWludm9rZTxpbnRwdHJfdD4oKmludGVy
cHJldGVyLCBkYXRhLmRhdGEoKSwgY29kZS5kYXRhKCksICZzdHJlYW0pKTsKKyAgICAKKyAgICBD
SEVDSyhzdHJlYW0uc2l6ZSgpID09IDEwMCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IDEwMDsgKytpKQorICAgICAgICBDSEVDSyhzdHJlYW1baV0gPT0gaSArIDEpOworICAgIAorICAg
IGlmIChzaG91bGRCZVZlcmJvc2UoKSkKKyAgICAgICAgZGF0YUxvZygic3RyZWFtID0gIiwgbGlz
dER1bXAoc3RyZWFtKSwgIlxuIik7Cit9CisKIHZvaWQgdGVzdFJlZHVjZVN0cmVuZ3RoQ2hlY2tC
b3R0b21Vc2VJbkFub3RoZXJCbG9jaygpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CkBAIC0xMzU0
Nyw4ICsxMzc4MywxMyBAQCB2b2lkIHJ1bihjb25zdCBjaGFyKiBmaWx0ZXIpCiAgICAgUlVOKHRl
c3RTcGlsbERlZlNtYWxsZXJUaGFuVXNlKCkpOwogICAgIFJVTih0ZXN0U3BpbGxVc2VMYXJnZXJU
aGFuRGVmKCkpOwogICAgIFJVTih0ZXN0TGF0ZVJlZ2lzdGVyKCkpOworPDw8PDw8PCAubWluZQor
ICAgIAorICAgIFJVTih0ZXN0VGhyZWFkZWRJbnRlcnByZXRlcigpKTsKKz09PT09PT0KICAgICBS
VU4odGVzdFJlZHVjZVN0cmVuZ3RoQ2hlY2tCb3R0b21Vc2VJbkFub3RoZXJCbG9jaygpKTsKICAg
ICBSVU4odGVzdFJlc2V0UmVhY2hhYmlsaXR5RGFuZ2xpbmdSZWZlcmVuY2UoKSk7Cis+Pj4+Pj4+
IC5yMjAyODA5CiAKICAgICBpZiAodGFza3MuaXNFbXB0eSgpKQogICAgICAgICB1c2FnZSgpOwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuY3BwCShyZXZpc2lvbiAy
MDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMzUsNiArMTM1LDExIEBAIHZvaWQgQ29kZTo6YWRkRmFzdFRtcChUbXAg
dG1wKQogICAgIG1fZmFzdFRtcHMuYWRkKHRtcCk7CiB9CiAKK3ZvaWQqIENvZGU6OmFkZERhdGFT
ZWN0aW9uKHNpemVfdCBzaXplKQoreworICAgIHJldHVybiBtX3Byb2MuYWRkRGF0YVNlY3Rpb24o
c2l6ZSk7Cit9CisKIHVuc2lnbmVkIENvZGU6OmpzSGFzaCgpIGNvbnN0CiB7CiAgICAgdW5zaWdu
ZWQgcmVzdWx0ID0gMDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29k
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5o
CShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNv
ZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkFpclNwZWNp
YWwuaCIKICNpbmNsdWRlICJBaXJTdGFja1Nsb3QuaCIKICNpbmNsdWRlICJBaXJUbXAuaCIKKyNp
bmNsdWRlICJCM0luZGV4TWFwLmgiCiAjaW5jbHVkZSAiQjNTcGFyc2VDb2xsZWN0aW9uLmgiCiAj
aW5jbHVkZSAiUmVnaXN0ZXJBdE9mZnNldExpc3QuaCIKICNpbmNsdWRlICJTdGFja0FsaWdubWVu
dC5oIgpAQCAtMjAzLDYgKzIwNCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZEZhc3RUbXAoVG1w
KTsKICAgICBib29sIGlzRmFzdFRtcChUbXAgdG1wKSBjb25zdCB7IHJldHVybiBtX2Zhc3RUbXBz
LmNvbnRhaW5zKHRtcCk7IH0KICAgICAKKyAgICB2b2lkKiBhZGREYXRhU2VjdGlvbihzaXplX3Qp
OworICAgIAogICAgIC8vIFRoZSBuYW1lIGhhcyB0byBiZSBhIHN0cmluZyBsaXRlcmFsLCBzaW5j
ZSB3ZSBkb24ndCBkbyBhbnkgbWVtb3J5IG1hbmFnZW1lbnQgZm9yIHRoZSBzdHJpbmcuCiAgICAg
dm9pZCBzZXRMYXN0UGhhc2VOYW1lKGNvbnN0IGNoYXIqIG5hbWUpCiAgICAgewpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0ZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0ZS5jcHAJKHJldmlzaW9uIDIw
MjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00OCwxMCArNDgsMTMgQEAKICNpbmNsdWRlICJBaXJWYWxpZGF0ZS5o
IgogI2luY2x1ZGUgIkIzQ29tbW9uLmgiCiAjaW5jbHVkZSAiQjNJbmRleE1hcC5oIgorI2luY2x1
ZGUgIkIzUG9seUp1bXBWYWx1ZS5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJlLmgiCiAjaW5jbHVk
ZSAiQjNUaW1pbmdTY29wZS5oIgorI2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiRGlzYWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3Rl
clVzYWdlLmgiCisjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIEIzIHsgbmFtZXNwYWNlIEFpciB7CiAKQEAgLTE5Niw3ICsxOTksOCBAQCB2b2lkIGdl
bmVyYXRlKENvZGUmIGNvZGUsIENDYWxsSGVscGVycyYgCiAKICAgICBmb3IgKEJhc2ljQmxvY2sq
IGJsb2NrIDogY29kZSkgewogICAgICAgICBibG9ja0p1bXBzW2Jsb2NrXS5saW5rKCZqaXQpOwot
ICAgICAgICBibG9ja0xhYmVsc1tibG9ja10gPSBqaXQubGFiZWwoKTsKKyAgICAgICAgQ0NhbGxI
ZWxwZXJzOjpMYWJlbCBsYWJlbCA9IGppdC5sYWJlbCgpOworICAgICAgICBibG9ja0xhYmVsc1ti
bG9ja10gPSBsYWJlbDsKICAgICAgICAgQVNTRVJUKGJsb2NrLT5zaXplKCkgPj0gMSk7CiAgICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBibG9jay0+c2l6ZSgpIC0gMTsgKytpKSB7CiAg
ICAgICAgICAgICBJbnN0JiBpbnN0ID0gYmxvY2stPmF0KGkpOwpAQCAtMjI4LDI2ICsyMzIsNTQg
QEAgdm9pZCBnZW5lcmF0ZShDb2RlJiBjb2RlLCBDQ2FsbEhlbHBlcnMmIAogICAgICAgICAgICAg
YWRkSXRlbShibG9jay0+bGFzdCgpKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
Ci0KKyAgICAgICAgCiAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcCBqdW1wID0gYmxvY2stPmxh
c3QoKS5nZW5lcmF0ZShqaXQsIGNvbnRleHQpOwotICAgICAgICBzd2l0Y2ggKGJsb2NrLT5udW1T
dWNjZXNzb3JzKCkpIHsKLSAgICAgICAgY2FzZSAwOgotICAgICAgICAgICAgQVNTRVJUKCFqdW1w
LmlzU2V0KCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgMToKLSAgICAgICAg
ICAgIGxpbmsoanVtcCwgYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDApKTsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBjYXNlIDI6Ci0gICAgICAgICAgICBsaW5rKGp1bXAsIGJsb2NrLT5zdWNj
ZXNzb3JCbG9jaygwKSk7Ci0gICAgICAgICAgICBpZiAoYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDEp
ICE9IGNvZGUuZmluZE5leHRCbG9jayhibG9jaykpCi0gICAgICAgICAgICAgICAgbGluayhqaXQu
anVtcCgpLCBibG9jay0+c3VjY2Vzc29yQmxvY2soMSkpOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OwotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIC8vIFRoZSBqdW1wIHdvbid0IGJlIHNldCBm
b3IgUG9seUp1bXAgYmVjYXVzZSBpdCBsZXRzIGl0cyBmYWl0aCBpbiB0aGUgYWRkcmVzcyBvcGVy
YW5kCisgICAgICAgIC8vIGd1aWRlIHdoZXJlIGl0IGp1bXBzLiBJdCB3b24ndCBiZSBzZXQgZm9y
IE9vcHMgYmVjYXVzZSB0aGVuIGl0IHdvbid0IGhhdmUgYW55IHN1Y2Nlc3NvcnMuCisgICAgICAg
IGlmIChqdW1wLmlzU2V0KCkpIHsKKyAgICAgICAgICAgIHN3aXRjaCAoYmxvY2stPm51bVN1Y2Nl
c3NvcnMoKSkgeworICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgIGxpbmsoanVt
cCwgYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDApKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICBsaW5rKGp1bXAsIGJsb2NrLT5zdWNj
ZXNzb3JCbG9jaygwKSk7CisgICAgICAgICAgICAgICAgaWYgKGJsb2NrLT5zdWNjZXNzb3JCbG9j
aygxKSAhPSBjb2RlLmZpbmROZXh0QmxvY2soYmxvY2spKQorICAgICAgICAgICAgICAgICAgICBs
aW5rKGppdC5qdW1wKCksIGJsb2NrLT5zdWNjZXNzb3JCbG9jaygxKSk7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIFJFTEVBU0Vf
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICB9CiAgICAgICAgIH0KICAgICAgICAgYWRkSXRlbShibG9jay0+bGFzdCgpKTsKICAgICB9Cisg
ICAgCisgICAgLy8gVGFrZSBjYXJlIG9mIFBvbHlKdW1wLiBXZSBkbyB0aGlzIGxhc3QgYmVjYXVz
ZSBpdCByZWxpZXMgb24ga25vd2luZyB3aGVyZSBhbGwgb2YgdGhlIGJhc2ljCisgICAgLy8gYmxv
Y2sgbGFuZGVkLgorICAgIGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiBjb2RlKSB7CisgICAgICAg
IGlmIChibG9jay0+bGFzdCgpLm9wY29kZSAhPSBQb2x5SnVtcCkKKyAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICAKKyAgICAgICAgUG9seUp1bXBWYWx1ZSogcG9seUp1bXAgPSBibG9jay0+
bGFzdCgpLm9yaWdpbi0+YXM8UG9seUp1bXBWYWx1ZT4oKTsKKyAgICAgICAgUkVMRUFTRV9BU1NF
UlQocG9seUp1bXAtPm51bVN1Y2Nlc3NvcnMoKSA9PSBibG9jay0+bnVtU3VjY2Vzc29ycygpKTsK
KyAgICAgICAgCisgICAgICAgIFJlZlB0cjxTaGFyZWRUYXNrPFBvbHlKdW1wVmFsdWU6OkNhbGxi
YWNrRnVuY3Rpb25UeXBlPj4gdGFzayA9IHBvbHlKdW1wLT5jYWxsYmFja1Rhc2soKTsKKyAgICAg
ICAgaWYgKCF0YXNrKQorICAgICAgICAgICAgY29udGludWU7IC8vIFRoaXMgd291bGQgYmUgd2Vp
cmQsIGJ1dCB3ZSBhbGxvdyBpdC4KKyAgICAgICAgCisgICAgICAgIFZlY3RvcjxDQ2FsbEhlbHBl
cnM6OkxhYmVsPiBsYWJlbHM7CisgICAgICAgIGZvciAoQmFzaWNCbG9jayogc3VjY2Vzc29yIDog
YmxvY2stPnN1Y2Nlc3NvckJsb2NrcygpKQorICAgICAgICAgICAgbGFiZWxzLmFwcGVuZChibG9j
a0xhYmVsc1tzdWNjZXNzb3JdKTsKKyAgICAgICAgCisgICAgICAgIGppdC5hZGRMaW5rVGFzaygK
KyAgICAgICAgICAgIFs9XSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikgeworICAgICAgICAgICAg
ICAgIFZlY3RvcjxNYWNyb0Fzc2VtYmxlckNvZGVQdHI+IHBvaW50ZXJzOworICAgICAgICAgICAg
ICAgIGZvciAoQ0NhbGxIZWxwZXJzOjpMYWJlbCBsYWJlbCA6IGxhYmVscykKKyAgICAgICAgICAg
ICAgICAgICAgcG9pbnRlcnMuYXBwZW5kKGxpbmtCdWZmZXIubG9jYXRpb25PZihsYWJlbCkpOwor
ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHRhc2stPnJ1bihwb2ludGVycyk7Cisg
ICAgICAgICAgICB9KTsKKyAgICB9CiAKICAgICBwY1RvT3JpZ2luTWFwLmFwcGVuZEl0ZW0oaml0
LmxhYmVsKCksIE9yaWdpbigpKTsKICAgICAvLyBGSVhNRTogTWFrZSBsYXRlIHBhdGhzIGhhdmUg
T3JpZ2luczogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MzY4OQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckluc3QuY3BwCShyZXZpc2lvbiAy
MDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckluc3QuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00NSw2ICs0NSwxMSBAQCBib29sIEluc3Q6Omhhc0FyZ0VmZmVjdHMoKQog
ICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK2Jvb2wgSW5zdDo6aXNDbG9uZWFibGUoKQoreworICAg
IHJldHVybiAhb3JpZ2luIHx8IG9yaWdpbi0+aXNDbG9uZWFibGUoKTsKK30KKwogdW5zaWduZWQg
SW5zdDo6anNIYXNoKCkgY29uc3QKIHsKICAgICB1bnNpZ25lZCByZXN1bHQgPSBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4ob3Bjb2RlKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlySW5zdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWly
SW5zdC5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0Fpckluc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMTg4LDYgKzE4OCwxMCBAQCBwdWJsaWM6CiAg
ICAgLy8gcmV0dXJucyAyIGlmIDAgYW5kIDEgYmVuZWZpdCBmcm9tIGFsaWFzaW5nIHRvIFRtcDMu
CiAgICAgT3B0aW9uYWw8dW5zaWduZWQ+IHNob3VsZFRyeUFsaWFzaW5nRGVmKCk7CiAgICAgCisg
ICAgLy8gU29tZSBpbnN0dWN0aW9ucyB3aWxsIHJlZnVzZSB0byBhbGxvdyBjbG9uaW5nLiBJZiB0
aGlzIHJldHVybnMgZmFsc2UsIHlvdSBtdXN0IG1ha2Ugc3VyZSB0aGF0CisgICAgLy8geW91IG5l
dmVyIGludHJvZHVjZSBjb3BpZXMgb2YgdGhlIGluc3RydWN0aW9uLgorICAgIGJvb2wgaXNDbG9u
ZWFibGUoKTsKKyAgICAKICAgICAvLyBUaGlzIGNvbXB1dGVzIGEgaGFzaCBmb3IgY29tcGFyaW5n
IHRoaXMgdG8gSlNBaXIncyBJbnN0LgogICAgIHVuc2lnbmVkIGpzSGFzaCgpIGNvbnN0OwogCklu
ZGV4OiBXZWJzaXRlcy93ZWJraXQub3JnL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRl
cy93ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMjAyODA5KQorKysgV2Vic2l0ZXMvd2Vi
a2l0Lm9yZy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxNi0w
NS0yOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVu
dCB0YWJsZS1iYXNlZCBzd2l0Y2hlcyBpbiBCMy9BaXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTE0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgVXBkYXRlIGRvY3VtZW50YXRpb24gZm9y
IHRoZSBuZXcgUG9seUp1bXAgb3Bjb2RlLgorCisgICAgICAgICogZG9jcy9iMy9pbnRlcm1lZGlh
dGUtcmVwcmVzZW50YXRpb24uaHRtbDoKKwogMjAxNi0wNy0wMSAgSm9uIERhdmlzICA8am9uZEBh
cHBsZS5jb20+CiAKICAgICAgICAgQWRkZWQgYSBjb2xvcmZ1bCBuZXcgaW1hZ2UgYW5kIGZpeGVk
IHRoZSBPcGVuIEdyYXBoIGF0dHJpYnV0ZS4KSW5kZXg6IFdlYnNpdGVzL3dlYmtpdC5vcmcvZG9j
cy9iMy9pbnRlcm1lZGlhdGUtcmVwcmVzZW50YXRpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJz
aXRlcy93ZWJraXQub3JnL2RvY3MvYjMvaW50ZXJtZWRpYXRlLXJlcHJlc2VudGF0aW9uLmh0bWwJ
KHJldmlzaW9uIDIwMjgwOSkKKysrIFdlYnNpdGVzL3dlYmtpdC5vcmcvZG9jcy9iMy9pbnRlcm1l
ZGlhdGUtcmVwcmVzZW50YXRpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNTM3LDYgKzUzNywz
OSBAQCBwYXRjaHBvaW50LT5zZXRHZW5lcmF0b3IoCiAgICAgICAgIGFsc28gY29udGFpbnMgYSBm
YWxsLXRocm91Z2ggdGFyZ2V0IGluIGNhc2UgdGhlIGNoaWxkIGhhcyBhIHZhbHVlIHRoYXQgd2Fz
bid0IG1lbnRpb25lZAogICAgICAgICBpbiB0aGUgY2FzZXMgbGlzdC4gIE11c3QgdXNlIHRoZSBT
d2l0Y2hWYWx1ZSBjbGFzcy4gIE11c3QgYXBwZWFyIGF0IHRoZSBlbmQgb2YgdGhlIGJhc2ljCiAg
ICAgICAgIGJsb2NrLjwvZGQ+CisgICAgICAKKyAgICAgIDxkdD5Wb2lkIFBvbHlKdW1wKEludFB0
ciwgYmxvY2tzLi4uKTwvZHQ+CisgICAgICA8ZGQ+CisgICAgICAgIDxwPkp1bXBzIHRvIHRoZSBn
aXZlbiBhZGRyZXNzLiBUaGUgY29tcGlsZXIgd2lsbCBhc3N1bWUgdGhhdCB0aGlzIGp1bXBzIHRv
IG9uZSBvZiB0aGUgZ2l2ZW4KKyAgICAgICAgICBibG9ja3MuIFRoZSBjb21waWxlciBtYWtlcyBu
byBhdHRlbXB0IHRvIHByb3ZlIG9yIHZhbGlkYXRlIHRoYXQgdGhlIHBhc3NlZCBqdW1wIGFkZHJl
c3MgaXMKKyAgICAgICAgICBhY3R1YWxseSB0aGUgYWRkcmVzcyBvZiBhbnkgb2YgdGhvc2UgYmxv
Y2tzLiBOb25zZW5zaWNhbCB0aGluZ3Mgd2lsbCBoYXBwZW4gaWYgdGhlIHBhc3NlZAorICAgICAg
ICAgIGFkZHJlc3MgaXMgbm90IHRoZSBhZGRyZXNzIG9mIG9uZSBvZiB0aGUgYmxvY2tzIGluIHRo
ZSBzdWNjZXNzb3IgbGlzdC4gWW91IGNhbiBhcnJhbmdlIHRvCisgICAgICAgICAgZ2V0IHRoZSBh
ZGRyZXNzZXMgb2YgYmxvY2tzIGJ5IHBhc3NpbmcgYSBjYWxsYmFjayB0byBQb2x5SnVtcC4gVGhp
cyBpcyB1c2VkIGludGVybmFsbHkKKyAgICAgICAgICBmb3IgbG93ZXJpbmcgU3dpdGNoIG9wY29k
ZXMuIFlvdSBjYW4gYWxzbyB1c2UgaXQgZGlyZWN0bHkuPC9wPgorICAgICAgCisgICAgICAgIDxw
PlBvbHlKdW1wIGlzIG5vdCBjbG9uZWFibGUuIEZvciBlYWNoIFBvbHlKdW1wIHlvdSBjcmVhdGUs
IHRoZXJlIHdpbGwgYmUgb25lIGluZGlyZWN0CisgICAgICAgICAganVtcCBnZW5lcmF0ZWQuIFRo
aXMgaXMgbmVjZXNzYXJ5IHRvIGVuc3VyZSBzb3VuZG5lc3Mgb2YgdGhlIGNhbGxiYWNrLiBJZiB0
aGUgUG9seUp1bXAKKyAgICAgICAgICBjb3VsZCBiZSBjbG9uZWQsIHRoZW4gdGhlIGNhbGxiYWNr
IHdvdWxkIGdldCBjYWxsZWQgZm9yIGVhY2ggY2xvbmUuIFByZXN1bWFibHksIHlvdSdkCisgICAg
ICAgICAgaW1wbGVtZW50IHRoZSBjYWxsYmFjayBieSBwb3B1bGF0aW5nIHNvbWUgdGFibGUgd2l0
aCB0aGUgYWRkcmVzc2VzIG9mIHRoZSBibG9ja3MuIElmIHRoZQorICAgICAgICAgIGNhbGxiYWNr
IGdldHMgY2FsbGVkIG11bHRpcGxlIHRpbWVzIHRoZW4gaXQgbWF5IHJldHVybiBkaWZmZXJlbnQg
YWRkcmVzc2VzIGVhY2ggdGltZSAtCisgICAgICAgICAgc2luY2UgYWZ0ZXIgY2xvbmluZyBhIFBv
bHlKdW1wLCB0aGUgY29tcGlsZXIgbWF5IHJldGFyZ2V0IGFueSBvZiBpdHMgc3VjY2Vzc29yIGVk
Z2VzLgorICAgICAgICAgIFRoaXMgd291bGQgYmUgY29uZnVzaW5nLCBzaW5jZSB0aGVuIHlvdSB3
b3VsZG4ndCBrbm93IHdoYXQgdG8gZG8gd2l0aCBkaXNjcmVwYW5jaWVzIGJldHdlZW4KKyAgICAg
ICAgICBhZGRyZXNzZXMgcmV0dXJuZWQgYnkgdGhlIHZhcmlvdXMgY2FsbHMgdG8gdGhlIGNhbGxi
YWNrLiBEaXNhbGxvd2luZyBjbG9uaW5nIG9mIFBvbHlKdW1wCisgICAgICAgICAgc29sdmVzIHRo
aXMgcHJvYmxlbS48L3A+CisgICAgICAgIAorICAgICAgICA8cD5BIGNsb3NlbHkgcmVsYXRlZCBw
cm9ibGVtIGlzIHRoYXQgaWYgeW91IGVtaXQgbXVsdGlwbGUgUG9seUp1bXAgaW5zdHJ1Y3Rpb25z
LCB0aGVuIGV2ZW4KKyAgICAgICAgICBpZiB0aGV5IGluaXRpYWxseSBzaGFyZSB0aGUgc2FtZSBz
dWNjZXNzb3JzLCB5b3UgY2Fubm90IGd1YXJhbnRlZSB0aGF0IHRoZXkgd2lsbCBjb250aW51ZQor
ICAgICAgICAgIHRvIHNoYXJlIHRoZSBzYW1lIHN1Y2Nlc3NvcnMgYWZ0ZXIgb3B0aW1pemF0aW9u
LiBUaGlzIG1lYW5zIHRoYXQgUG9seUp1bXAgY2Fubm90CisgICAgICAgICAgY3VycmVudGx5IGJl
IHVzZWQgZm9yIGltcGxlbWVudGluZyBkaXJlY3QgdGhyZWFkZWQgaW50ZXJwcmV0ZXJzLCBhdCBs
ZWFzdCBub3QgdGhlIGNsYXNzaWMKKyAgICAgICAgICBraW5kOiB0byBtYWtlIGl0IHdvcmssIHlv
dSBoYXZlIHRvIGhhdmUgYSBzaGFyZWQgZGlzcGF0Y2ggYmxvY2sgc28gdGhhdCB5b3UgaGF2ZSBh
IHNpbmdsZQorICAgICAgICAgIFBvbHlKdW1wLiBUaGlzIG1pZ2h0IGJlIGJldHRlciB0aGFuIGEg
U3dpdGNoLWJhc2VkIGludGVycHJldGVyLCBidXQgaXQncyBkZWZpbml0ZWx5IG5vdAorICAgICAg
ICAgIGFzIGdvb2QgYXMgd2hhdCB5b3UnZCBnZXQgd2l0aCBHQ0Mtc3R5bGUgY29tcHV0ZWQgZ290
by48L3A+CisgICAgICAgIAorICAgICAgICA8cD5Qb2x5SnVtcCBpcyBzbyBuYW1lZCB0byBhdm9p
ZCBjb25mdXNpb24gd2l0aCBjb21wdXRlZCBnb3RvcyBhbmQgaW5kaXJlY3QgYnJhbmNoZXMgaW4K
KyAgICAgICAgICBvdGhlciBjb21waWxlcnMuIEl0IGhhcyBzaWduaWZpY2FudCByZXN0cmljdGlv
bnMgdGhhdCB0aG9zZSBvcGVyYXRpb25zIGRvIG5vdCBoYXZlLiBUaGVzZQorICAgICAgICAgIHJl
c3RyaWN0aW9ucyBtYWtlIGl0IGVhc2llciBmb3IgdGhlIG9wdGltaXplciB0byB3b3JrIHdpdGgg
c2luY2UgdGhlIGNvbnRyb2wgZmxvdyBnZXRzIHRvCisgICAgICAgICAgYmUgZXhwbGljaXQgKFBv
bHlKdW1wIGhhcyBhIGZpbml0ZSBzZXQgb2Ygc3VjY2Vzc29ycyBsaWtlIGFueSBvdGhlciBibG9j
ayB0ZXJtaW5hbCkuPC9wPgorICAgICAgPC9kZD4KIAogICAgICAgPGR0PlZvaWQgUmV0dXJuKFQp
PC9kdD4KICAgICAgIDxkZD5Xb3JrcyBmb3IgYW55IHR5cGUgZXhjZXB0IFZvaWQuICBSZXR1cm5z
IHRoZSBnaXZlbiB2YWx1ZSBhbmQgdGVybWluYXRlcyB0aGUgcHJvY2VkdXJlLgpJbmRleDogTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwko
cmV2aXNpb24gMjAyODA5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMTYtMDUtMjkgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxl
LmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgdGFibGUtYmFzZWQgc3dpdGNoZXMgaW4gQjMvQWly
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTExNDEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGpzL3Jl
Z3Jlc3MvYmlnc3dpdGNoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVz
cy9iaWdzd2l0Y2guaHRtbDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVz
dHMvYmlnc3dpdGNoLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisKIDIwMTYtMDctMDQgIFl1
c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCwgc2tpcCBtaXNjLWJ1Z3MtODQ3Mzg5LWpwZWcyMDAwLmpzIGluIGpzYyBzdHJlc3MgdGVzdHMK
SW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdyZXNzL2JpZ3N3aXRj
aAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBubyBleGNlcHRpb24gdGhy
b3duCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJ
bmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2guaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC5odG1sCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9F
TiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10
ZXN0cy9iaWdzd2l0Y2guanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvYmlnc3dpdGNoLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2JpZ3N3aXRjaC5qcwkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2JpZ3N3aXRj
aC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIxMSBAQAorZnVuY3Rpb24gZm9vKG8pIHsK
KyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7ICsraSkg
eworICAgICAgICB2YXIgdmFsdWUgPSBpICYgNjM7CisgICAgICAgIHN3aXRjaCAodmFsdWUpIHsK
KyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXN1bHQgKz0gby5iOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
LmM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgcmVz
dWx0ICs9IG8uZDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ6CisgICAgICAg
ICAgICByZXN1bHQgKz0gby5lOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNToK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmY7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSA2OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZzsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIDc6CisgICAgICAgICAgICByZXN1bHQgKz0gby5oOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA5OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8u
ajsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDEwOgorICAgICAgICAgICAgcmVz
dWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDExOgorICAgICAg
ICAgICAgcmVzdWx0ICs9IG8uYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDEy
OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIDEzOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYzsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIDE0OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZDsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIDE1OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE2OgorICAgICAgICAgICAgcmVzdWx0
ICs9IG8uZjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE3OgorICAgICAgICAg
ICAgcmVzdWx0ICs9IG8uZzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE4Ogor
ICAgICAgICAgICAgcmVzdWx0ICs9IG8uaDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIDE5OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIDIwOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uajsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIDIxOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDIyOgorICAgICAgICAgICAgcmVzdWx0ICs9
IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDIzOgorICAgICAgICAgICAg
cmVzdWx0ICs9IG8uYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI0OgorICAg
ICAgICAgICAgcmVzdWx0ICs9IG8uYjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IDI1OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYzsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIDI2OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZDsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIDI3OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI4OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8u
ZjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI5OgorICAgICAgICAgICAgcmVz
dWx0ICs9IG8uZzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDMwOgorICAgICAg
ICAgICAgcmVzdWx0ICs9IG8uaDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDMx
OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIDMyOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uajsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIDMzOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIDM0OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM1OgorICAgICAgICAgICAgcmVzdWx0
ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM2OgorICAgICAgICAg
ICAgcmVzdWx0ICs9IG8uYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM3Ogor
ICAgICAgICAgICAgcmVzdWx0ICs9IG8uYjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIDM4OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYzsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIDM5OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZDsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIDQwOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQxOgorICAgICAgICAgICAgcmVzdWx0ICs9
IG8uZjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQyOgorICAgICAgICAgICAg
cmVzdWx0ICs9IG8uZzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQzOgorICAg
ICAgICAgICAgcmVzdWx0ICs9IG8uaDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IDQ0OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIDQ1OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uajsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIDQ2OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ3OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8u
aTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ4OgorICAgICAgICAgICAgcmVz
dWx0ICs9IG8uajsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ5OgorICAgICAg
ICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDUw
OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIDUxOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIDUyOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIDUzOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYjsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDU0OgorICAgICAgICAgICAgcmVzdWx0
ICs9IG8uYzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDU1OgorICAgICAgICAg
ICAgcmVzdWx0ICs9IG8uZDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDU2Ogor
ICAgICAgICAgICAgcmVzdWx0ICs9IG8uZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIDU3OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZjsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIDU4OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZzsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIDU5OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaDsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDYwOgorICAgICAgICAgICAgcmVzdWx0ICs9
IG8uaTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDYxOgorICAgICAgICAgICAg
cmVzdWx0ICs9IG8uajsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDYyOgorICAg
ICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uejsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKKyhmdW5jdGlvbigpIHsKKyAg
ICB2YXIgbyA9IHthOjEsIGI6MiwgYzozLCBkOjQsIGU6NSwgZjo2LCBnOjcsIGg6OCwgaTo5LCBq
OjEwLCBrOjExLCB6OjEwMH07CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCAxMDAwMDsgKytpKQorICAgICAgICByZXN1bHQgKz0gZm9vKG8pOworICAgIGlmIChy
ZXN1bHQgIT0gNzk2NjAwMDApCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiAr
IHJlc3VsdDsKK30pKCk7CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282733</attachid>
            <date>2016-07-04 13:49:49 -0700</date>
            <delta_ts>2016-07-05 15:50:46 -0700</delta_ts>
            <desc>so fun</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>101315</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2NiBA
QAorMjAxNi0wNS0yOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IEltcGxlbWVudCB0YWJsZS1iYXNlZCBzd2l0Y2hlcyBpbiBCMy9BaXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTE0MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgSWYgYSBzd2l0Y2ggc3Rh
dGVtZW50IGdldHMgbGFyZ2UsIGl0J3MgYmV0dGVyIHRvIGV4cHJlc3MgaXQgYXMgYW4gaW5kaXJl
Y3QganVtcCByYXRoZXIgdGhhbgorICAgICAgICB1c2luZyBhIGJpbmFyeSBzd2l0Y2ggKGRpdmlk
ZS1hbmQtY29ucXVlciB0cmVlIG9mIGNvbXBhcmlzb25zIGxlYWRpbmcgdG8gTyhsb2cgbikgYnJh
bmNoZXMgdG8KKyAgICAgICAgZ2V0IHRvIHRoZSBzd2l0Y2ggY2FzZSkuIFdoZW4gZGVhbGluZyB3
aXRoIGludGVnZXIgc3dpdGNoZXMsIEZUTCB3aWxsIGFscmVhZHkgdXNlIHRoZSBCMworICAgICAg
ICBTd2l0Y2ggYW5kIGV4cGVjdCB0aGlzIHRvIGdldCBsb3dlcmVkIGFzIGVmZmljaWVudGx5IGFz
IHBvc3NpYmxlOyBpdCdzIGEgYnVnIHRoYXQgQjMgd2lsbAorICAgICAgICBhbHdheXMgdXNlIGEg
YmluYXJ5IHN3aXRjaCByYXRoZXIgdGhhbiBpbmRpcmVjdCBqdW1wcy4gV2hlbiBkZWFsaW5nIHdp
dGggc3dpdGNoZXMgb3ZlciBzb21lCisgICAgICAgIG1vcmUgc29waGlzdGljYXRlZCB0eXBlcywg
d2UnZCB3YW50IEZUTCB0byBidWlsZCBhbiBpbmRpcmVjdCBqdW1wIHRhYmxlIGl0c2VsZiBhbmQg
dXNlCisgICAgICAgIHNvbWV0aGluZyBsaWtlIGEgaGFzaHRhYmxlIHRvIGZlZWQgaXQuIEluIHRo
YXQgY2FzZSwgdGhlcmUgd2lsbCBiZSBubyBCMyBTd2l0Y2g7IHdlJ2xsIHdhbnQKKyAgICAgICAg
c29tZSBraW5kIG9mIGluZGlyZWN0IGp1bXAgaW5zdHJ1Y3Rpb24uCisgICAgICAgIAorICAgICAg
ICBUaGlzIGltcGxpZXMgdGhhdCB3ZSB3YW50IEIzIHRvIGhhdmUgdGhlIGFiaWxpdHkgdG8gbG93
ZXIgU3dpdGNoIHRvIGluZGlyZWN0IGp1bXBzIGFuZCB0bworICAgICAgICBleHBvc2UgdGhvc2Ug
aW5kaXJlY3QganVtcHMgaW4gSVIgc28gdGhhdCB0aGUgRlRMIGNvdWxkIGRvIGl0cyBvd24gaW5k
aXJlY3QganVtcHMgZm9yCisgICAgICAgIHN3aXRjaGVzIG92ZXIgbW9yZSBjb21wbGljYXRlZCB0
aGluZ3MgbGlrZSBzdHJpbmdzLiBUaGlzIGNoYW5nZSBpbnRyb2R1Y2VzIGFuIGluZGlyZWN0IGp1
bXAKKyAgICAgICAgaW5zdHJ1Y3Rpb24gdG8gQjMgYW5kIGNhbGxzIGl0IFBvbHlKdW1wLiBJdCBo
YXMgc29tZSB1bmlxdWUgc2VtYW50aWNzIHRoYXQgbWFrZSBpdCB2ZXJ5CisgICAgICAgIGRpZmZl
cmVudCBmcm9tICJpbmRpcmVjdCBqdW1wcyIsICJpbmRpcmVjdCBicmFuY2hlcyIsIGFuZCAiY29t
cHV0ZWQgZ290b3MiIC0gYWxsIHRlcm1zIG9mIGFydAorICAgICAgICB1c2VkIGluIG90aGVyIGNv
bXBpbGVycy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaW1wbGVtZW50cyB0aGUgbW9zdCBiYXNp
YyBraW5kIG9mIFN3aXRjaC10by1Qb2x5SnVtcCBsb3dlcmluZyBpbiBCMzo6bG93ZXJNYWNyb3Mo
KS4gQXMKKyAgICAgICAgcGFydCBvZiB0aGUgZXhpc3RpbmcgZGl2aWRlLWFuZC1jb25xdWVyIHRo
YXQgY3JlYXRlcyBicmFuY2hlcywgaWYgaXQgZGV0ZWN0cyB0aGF0IHRoZSBzZXQgb2YKKyAgICAg
ICAgY2FzZXMgc2F0aXNmaWVzIHNvbWUgY29uZGl0aW9ucyAoZGVuc2l0eSBvZiBjYXNlIHZhbHVl
cyBhbmQgdG90YWwgc2l6ZSksIHRoZW4gaXQgd2lsbCBlbWl0IGEKKyAgICAgICAgUG9seUp1bXAu
CisgICAgICAgIAorICAgICAgICBUaGUgcHJvYmxlbSB3aXRoIGNsYXNzaWMgaW5kaXJlY3QganVt
cHMgaXMgdGhhdCB0aGV5IGZvcmNlIHRoZSBjb21waWxlciB0byBiZSBjb25zZXJ2YXRpdmUKKyAg
ICAgICAgYWJvdXQgY29udHJvbCBmbG93LiBUaGUgY29tcGlsZXIgbXVzdCBhc3N1bWUgdGhhdCB0
aGUgaW5kaXJlY3QganVtcCBtYXkgdHJhbnNmZXIgY29udHJvbCBmbG93CisgICAgICAgIHRvIGFu
eSBlc2NhcGVkIGJsb2NrIChibG9jayBsYWJlbGVkIGFzIGJlaW5nIGEgcG9zc2libGUgdGFyZ2V0
IGZvciBpbmRpcmVjdCBqdW1wcywgb3IgaWYgbm8KKyAgICAgICAgc3VjaCBsYWJlbGluZyBpcyBh
dmFpbGFibGUsIHRoZSBjb21waWxlciBtdXN0IGFzc3VtZSB0aGF0IGl0IG1heSB0YXJnZXQgYW55
IGJsb2NrKS4gVGhlIHdvcnN0CisgICAgICAgIHBhcnQgaXMgdGhhdCB0aGUgaW1wbGljaXQgY29u
dHJvbCBmbG93IGVkZ2VzIGZyb20gdGhlIGluZGlyZWN0IGp1bXAgdG8gdGhlIGVzY2FwZWQgYmxv
Y2tzCisgICAgICAgIGNhbm5vdCBiZSBicm9rZW4uIFRoaXMgaW52YWxpZGF0ZXMgYSBwcmluY2lw
bGUgb2YgQjMgSVI6IGFueSBwaGFzZSBtYXkgYnJlYWsgYW55IGNyaXRpY2FsCisgICAgICAgIGVk
Z2UgZm9yIGFueSByZWFzb24uIE91ciBTU0EgY29udmVyc2lvbiB3b3VsZCBicmVhayBpZiB3ZSBy
ZXZva2VkIHRoaXMgZmVhdHVyZS4gSXQncyBhY3R1YWxseQorICAgICAgICBtdWNoIHdvcnNlIHRo
YW4gdGhpcyAtIGJhc2ljYWxseSBhbnkgbG9naWMgb3ZlciBjb250cm9sIGZsb3cgd291bGQgaGF2
ZSB0byBiZSBoYWNrZWQgdG8gZGVhbAorICAgICAgICB3aXRoIHRoZXNlIHVuYnJlYWthYmxlIGVk
Z2VzLiBUaGlzIHdvdWxkIG1lYW4gY2hhbmdpbmcgYWxsIENGRyB0cmFuc2Zvcm1hdGlvbiB1dGls
aXRpZXMgYW5kCisgICAgICAgIHBhc3Nlcy4gV2UgaGF2ZSBhIGxvdCBvZiB0aG9zZSBhbmQgd2Ug
d2FudCBpdCB0byBiZSBlYXN5IHRvIHdyaXRlIG5ldyBvbmVzLgorICAgICAgICAKKyAgICAgICAg
VGhpcyBpcyB3aHkgd2UgdXNlIHNvbWV0aGluZyBuZXcgYW5kIHF1aXRlIGRpZmZlcmVudCBmcm9t
IGNsYXNzaWMgaW5kaXJlY3QganVtcHMuIFBvbHlKdW1wCisgICAgICAgIG1ha2VzIHRoZSBjb250
cm9sIGZsb3cgZWRnZXMgZXhwbGljaXQuIFRoZSBjbGllbnQgbXVzdCBzdXBwbHkgdGhlIHN1Y2Nl
c3NvcnMgd2hlbiBpdCBjcmVhdGVzCisgICAgICAgIHRoZSBQb2x5SnVtcC4gVGhlIGNvbXBpbGVy
IG1heSByZXdpcmUgdGhvc2Ugc3VjY2Vzc29yIGVkZ2VzIHRoZSBzYW1lIHdheSB0aGF0IGl0IHdv
dWxkIHJld2lyZQorICAgICAgICBhbnkgY29udHJvbCBmbG93IGVkZ2VzLiBDb25zZXF1ZW50bHkg
dGhlIHZhc3QgbWFqb3JpdHkgb2YgQ0ZHIHJlYXNvbmluZyBpbiBCMyBpcyB1bmNoYW5nZWQuCisg
ICAgICAgIElmIHlvdSBkb24ndCB3YW50IHRvIHVuZGVyc3RhbmQgUG9seUp1bXAsIGp1c3QgdGhp
bmsgb2YgaXQgbGlrZSB5b3Ugd291bGQgYSBTd2l0Y2ggd2l0aCBhbgorICAgICAgICBvcGFxdWUg
aW5jb21pbmcgdmFsdWUuIFRoaXMgd29ya3MgYmVjYXVzZSB3ZSBkbyBub3QgYWRkIGFueSBub3Rp
b24gb2YgZXNjYXBlZCBiYXNpYyBibG9ja3MuCisgICAgICAgIEluc3RlYWQgb2YgbGV0dGluZyB0
aGUgY2xpZW50IGdldCB0aGUgcG9pbnRlcnMgdG8gYmFzaWMgYmxvY2tzIGJ5IGVzY2FwaW5nIHRo
ZW0gbGlrZSBpbiBMTFZNLAorICAgICAgICB5b3UgY2FuIG9ubHkgZ2V0IHRoZSBwb2ludGVycyBv
ZiB0aGUgc3VjY2Vzc29ycyBvZiBQb2x5SnVtcCBieSByZWdpc3RlcmluZyBhIGNhbGxiYWNrIHdp
dGgKKyAgICAgICAgUG9seUp1bXAuIFRoaXMgY2FsbGJhY2sgZG9lc24ndCBhY3R1YWxseSBnaXZl
IHlvdSB0aGUgYWRkcmVzc2VzIG9mIGJhc2ljIGJsb2Nrcy4gSXQganVzdAorICAgICAgICBnaXZl
cyB5b3UgdGhlIGFkZHJlc3NlcyB3aGVyZSB5b3UgbXVzdCBqdW1wIHRvIHRyYW5zZmVyIGNvbnRy
b2wgZmxvdyBmcm9tIHRoYXQgUG9seUp1bXAgdG8KKyAgICAgICAgaXRzIHN1Y2Nlc3NvcnMuIFRo
aXMgbWVhbnMgdGhhdCB0aGUgbWFnaWMgb2YgUG9seUp1bXAgaXMgY29uZmluZWQgb25seSB0byB0
aGUgUG9seUp1bXAgaXRzZWxmCisgICAgICAgIGFuZCBkb2Vzbid0IGluZmVjdCByZWFzb25pbmcg
YWJvdXQgdGhlIGJhc2ljIGJsb2NrcyB0aGF0IGl0IGp1bXBzIHRvLgorICAgICAgICAKKyAgICAg
ICAgVGhlIG9ubHkgZG93bnNpZGUgaXMgdGhhdCB0aGF0IFBvbHlKdW1wIGlzIG5vdCBjbG9uZWFi
bGUuIFlvdSBjYW4ndCBjbG9uZSBpdCBiZWNhdXNlIGlmIHlvdQorICAgICAgICBkaWQsIHRoZW4g
dGhlIHR3byByZXN1bHRpbmcgUG9seUp1bXBzIG1heSBoYXZlIHRoZWlyIHN1Y2Nlc3NvciBlZGdl
cyByZXdpcmVkIGluZGVwZW5kZW50bHkgb2YKKyAgICAgICAgZWFjaCBvdGhlci4gVGhpcyBjb3Vs
ZCBlYXNpbHkgaGFwcGVuIGlmIHdlIGJyZWFrIGNyaXRpY2FsIGVkZ2VzLiBJZiB0aGF0IGRpZCBo
YXBwZW4gdGhlbiBpdAorICAgICAgICB3b3VsZCBicmVhayB0aGUgY2xpZW50IG9mIFBvbHlKdW1w
OiB0aGV5IHdvdWxkIGhhdmUgYWxyZWFkeSBjcmVhdGVkIHNvbWV0aGluZyBsaWtlIGEganVtcAor
ICAgICAgICB0YWJsZSBhbmQgd2lsbCBiZSBwb3B1bGF0aW5nIGl0IHZpYSB0aGUgY2FsbGJhY2ss
IGJ1dCBub3cgdGhlIGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkIHR3aWNlLAorICAgICAgICBhbmQg
bWF5IHJldHVybiBkaWZmZXJlbnQganVtcCBkZXN0aW5hdGlvbnMgZWFjaCB0aW1lLiBTbywgdGhp
cyBwYXRjaCBpbnRyb2R1Y2VzCisgICAgICAgIFZhbHVlOjppc0Nsb25lYWJsZSgpIGFuZCB0ZWFj
aGVzIGJvdGggb2Ygb3VyIGNvZGUgc3BlY2lhbGl6YXRpb24gb3B0aW1pemF0aW9ucyAodGFpbAor
ICAgICAgICBkdXBsaWNhdGlvbiBhbmQgc2VsZWN0IHNwZWNpYWxpemF0aW9uKSB0byBiYWlsIGlm
IHRoZSBjb2RlIHRoZXkgd2FudCB0byBzcGVjaWFsaXplIGlzIG5vdAorICAgICAgICBjbG9uZWFi
bGUuIFRoaXMgaXMgdG90YWxseSBiZW5pZ24gbW9zdCBvZiB0aGUgdGltZSwgc2luY2UgdGhvc2Ug
b3B0aW1pemF0aW9ucyB1c3VhbGx5IHJ1bgorICAgICAgICBiZWZvcmUgU3dpdGNoIGxvd2VyaW5n
LiBDbGllbnRzIHRoYXQgdXNlIFBvbHlKdW1wIGRpcmVjdGx5IGhhdmUgdG8gYXBwcmVjaWF0ZSB0
aGUgdHJhZGUtb2ZmOgorICAgICAgICBQb2x5SnVtcCBtYXkgZ2FpbiB0aGVtIHNvbWUgcGVyZm9y
bWFuY2UgYnV0IHRoZXkgYXJlIG9wdGluZyBvdXQgb2Ygb3B0aW1pemF0aW9ucyB0aGF0IHVzZQor
ICAgICAgICBjbG9uaW5nLiBBIGNsb3NlIGNvcm9sbGFyeSBvZiB0aGUgbm8tY2xvbmUgcnVsZSBp
cyB0aGF0IHRoZSBjbGllbnQgY2Fubm90IGNyZWF0ZSBtdWx0aXBsZQorICAgICAgICBQb2x5SnVt
cHMgdGhhdCBhcmUgZmVkIGJ5IGEgY29tbW9uIGp1bXAgdGFibGU6IHRoZSBmYWN0IHRoYXQgZWFj
aCBQb2x5SnVtcCBoYXMgYSBjYWxsYmFjaworICAgICAgICB0aGF0IGp1c3QgdGVsbHMgeW91IHRo
ZSBqdW1wIGRlc3RpbmF0aW9ucyBmb3IgaXRzIHN1Y2Nlc3NvciAqZWRnZXMqLCBub3Qgc3VjY2Vz
c29yICpibG9ja3MqLAorICAgICAgICBtZWFucyB0aGF0IGlmIHlvdSBjcmVhdGUgdHdvIFBvbHlK
dW1wcyBhbmQgZ2l2ZSB0aGVtIHRoZSBzYW1lIHN1Y2Nlc3NvciBsaXN0LCB5b3UgYXJlIG5vdAor
ICAgICAgICBndWFyYW50ZWVkIHRoYXQgdGhleSB3aWxsIGdldCB0aGUgc2FtZSBqdW1wIGRlc3Rp
bmF0aW9ucy4gVGhpcyBodXJ0cyBpZiB5b3Ugd2FudCB0byB1c2UKKyAgICAgICAgUG9seUp1bXAg
Zm9yIHRocmVhZGVkIGludGVycHJldGVycyBidXQgaXQncyBoYXJtbGVzcyBmb3Igc3dpdGNoIGxv
d2VyaW5nLiBUaGUgZ29hbCBvZgorICAgICAgICBQb2x5SnVtcCBpcyB0byBiZSBhd2Vzb21lIGZv
ciBzd2l0Y2ggbG93ZXJpbmcgd2hpbGUgbm90IGJyZWFraW5nIHRoZSByZXN0IG9mIHRoZSBjb21w
aWxlciwgc28KKyAgICAgICAgdGhpcyBpcyBwcm9iYWJseSBmaW5lLgorICAgICAgICAKKyAgICAg
ICAgVGhlIGlzQ2xvbmVhYmxlKCkgbWV0aG9kIGN1cnJlbnRseSBvbmx5IHJldHVybnMgdHJ1ZSBm
b3IgUG9seUp1bXAsIGJ1dCBJIGFudGljaXBhdGUgd2Ugd2lsbAorICAgICAgICBhZGQgb3RoZXIg
bm9uLWNsb25lYWJsZSB0aGluZ3MgbGF0ZXIuIEkgdGhpbmsgaXMgaXMgaW5oZXJlbnQgaW4gYSBj
b21waWxlciB0aGF0IGFsbG93cyBzdWNoCisgICAgICAgIGN1c3RvbWl6ZWFiaWxpdHkgZm9yIGl0
cyBjbGllbnRzLiBGb3IgZXhhbXBsZSwgd2UgbWF5IHdhbnQgdG8gYWRkIGEgZmxhZyB0byBQYXRj
aHBvaW50IHRoYXQKKyAgICAgICAgbWFrZXMgaXQgbm9uLWNsb25lYWJsZS4gU29tZXRpbWVzIHdl
IGhhdmUgdG8ganVtcCB0aHJvdWdoIGhvb3BzIGluIHRoZSBGVEwgYmVjYXVzZSBvZiB0aGUKKyAg
ICAgICAgY2xvbmVhYmlsaXR5IG9mIHBhdGNocG9pbnRzLiBUaGlzIGhhcHBlbnMgaW4gT1NSIGV4
aXRzLCB3aGljaCBwYXkgYSBzaWduaWZpY2FudCBtZW1vcnkgY29zdAorICAgICAgICBmb3IgYWRk
aXRpb25hbCBkYXRhIHN0cnVjdHVyZXMgdGhhdCBhcmUgdGhlcmUgaW4gY2FzZSBhbiBleGl0IGdl
dHMgY2xvbmVkLiBJdCBtYXkgYmUgbW9yZQorICAgICAgICBwcm9maXRhYmxlIHRvIGp1c3Qgc2F5
IHRoYXQgT1NSIGV4aXRzIChpLmUuIENoZWNrcyBhbmQgSW52YWxpZGF0aW9uUG9pbnQgUGF0Y2hw
b2ludHMpIGFyZSBub3QKKyAgICAgICAgY2xvbmVhYmxlLiBTdXJlbHkgdGhpcyB3b3VsZCByZWR1
Y2UgdGFpbCBkdXBsaWNhdGlvbiwgYnV0IHRhaWwgZHVwbGljYXRpb24gaXMgbW9zdCBwcm9maXRh
YmxlCisgICAgICAgIHdoZW4gaXQgY2xvbmVzIG9ubHkgYSB0aW55IGFtb3VudCBvZiBjb2RlOyBp
ZiB0aGVyZSdzIGFuIGV4aXQgdGhlbiB3ZSdyZSBub3QgdGFsa2luZyBhYm91dCBhCisgICAgICAg
IHRpbnkgYW1vdW50IG9mIGNvZGUgYW55bW9yZS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaXMg
YSB+MzAlIHNwZWVkLXVwIG9uIG1pY3JvYmVuY2htYXJrcyB0aGF0IGhhdmUgYmlnIHN3aXRjaCBz
dGF0ZW1lbnRzICh+NjAgY2FzZXMpLiBJdCdzCisgICAgICAgIG5vdCBhIHNwZWVkLXVwIG9uIG1h
aW5zdHJlYW0gYmVuY2htYXJrcy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgYWxzbyBhZGRzIGEg
bmV3IHRlc3QgdG8gdGVzdGIzIGZvciBQb2x5SnVtcCwgR2V0LCBhbmQgU2V0LiBUaGUgRlRMIGRv
ZXMgbm90IGN1cnJlbnRseQorICAgICAgICB1c2UgUG9seUp1bXAgZGlyZWN0bHksIGJ1dCB3ZSB3
YW50IHRoaXMgdG8gYmUgcG9zc2libGUuIEl0IGFsc28gZG9lc24ndCB1c2UgR2V0L1NldCBkaXJl
Y3RseQorICAgICAgICBldmVuIHRob3VnaCB3ZSB3YW50IHRoaXMgdG8gYmUgcG9zc2libGUuIEl0
J3MgaW1wb3J0YW50IHRvIHRlc3QgdGhlc2Ugc2luY2Ugb3Bjb2RlcyB0aGF0CisgICAgICAgIHJl
c3VsdCBmcm9tIGxvd2VyaW5nIGRvbid0IGFmZmVjdCBlYXJseSBwaGFzZXMsIHNvIHdlIGNvdWxk
IGhhdmUgcmVncmVzc2lvbnMgaW4gZWFybHkgcGhhc2VzCisgICAgICAgIHJlbGF0ZWQgdG8gdGhl
c2Ugb3Bjb2RlcyB0aGF0IHdvdWxkbid0IGJlIGNhdWdodCBieSBhbnkgSlMgdGVzdC4gU28sIHRo
aXMgYWRkcyBhIHZlcnkgYmFzaWMKKyAgICAgICAgdGhyZWFkZWQgaW50ZXJwcmV0ZXIgdG8gdGVz
dGIzIGZvciBhIEJyYWluZnVjay1zdHlsZSBsYW5ndWFnZSwgYW5kIHRlc3RzIGl0IGJ5IGhhdmlu
ZyBpdCBydW4KKyAgICAgICAgYSBwcm9ncmFtIHRoYXQgcHJpbnRzIHRoZSBudW1iZXJzIDEuLjEw
MCBpbiBhIGxvb3AuIFVubGlrZSBhIHJlYWwgdGhyZWFkZWQgaW50ZXJwcmV0ZXIsIGl0CisgICAg
ICAgIHVzZXMgYSBjb21tb24gZGlzcGF0Y2ggYmxvY2sgcmF0aGVyIHRoYW4gaGF2aW5nIGRpc3Bh
dGNoIGF0IHRoZSB0ZXJtaW51cyBvZiBlYWNoIG9wY29kZS4KKyAgICAgICAgVGhhdCdzIG5lY2Vz
c2FyeSBiZWNhdXNlIFBvbHlKdW1wIGlzIG5vdCBjbG9uZWFibGUuIFRoZSBzdGF0ZSBvZiB0aGUg
aW50ZXJwcmV0ZXIgaXMKKyAgICAgICAgcmVwcmVzZW50ZWQgdXNpbmcgVmFyaWFibGVzIHRoYXQg
d2UgR2V0IGFuZCBTZXQsIHNvIGl0IHRlc3RzIEdldC9TZXQgYXMgd2VsbC4KKworICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9u
Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpqdW1wKToKKyAgICAg
ICAgKiBhc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxl
cjo6am1wX20pOgorICAgICAgICAqIGIzL0IzQmFzaWNCbG9jay5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpCYXNpY0Jsb2NrOjp1cGRhdGVQcmVkZWNlc3NvcnNBZnRlcik6CisgICAgICAgIChKU0M6
OkIzOjpCYXNpY0Jsb2NrOjppc0Nsb25lYWJsZSk6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Js
b2NrOjpkdW1wKToKKyAgICAgICAgKiBiMy9CM0Jhc2ljQmxvY2suaDoKKyAgICAgICAgKEpTQzo6
QjM6OkJhc2ljQmxvY2s6OmZyZXF1ZW5jeSk6CisgICAgICAgICogYjMvQjNDb21tb24uaDoKKyAg
ICAgICAgKEpTQzo6QjM6OmlzNjRCaXQpOgorICAgICAgICAqIGIzL0IzQ29udHJvbFZhbHVlLmg6
CisgICAgICAgICogYjMvQjNEYXRhU2VjdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkIzOjpEYXRh
U2VjdGlvbjo6RGF0YVNlY3Rpb24pOgorICAgICAgICAqIGIzL0IzRHVwbGljYXRlVGFpbHMuY3Bw
OgorICAgICAgICAqIGIzL0IzTG93ZXJNYWNyb3MuY3BwOgorICAgICAgICAqIGIzL0IzTG93ZXJU
b0Fpci5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okxvd2VyVG9BaXI6Omxvd2VyKToKKyAg
ICAgICAgKiBiMy9CM09wY29kZS5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgor
ICAgICAgICAqIGIzL0IzT3Bjb2RlLmg6CisgICAgICAgICogYjMvQjNQb2x5SnVtcFZhbHVlLmNw
cDogQWRkZWQuCisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjp+UG9seUp1bXBWYWx1
ZSk6CisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjphcHBlbmRTdWNjZXNzb3IpOgor
ICAgICAgICAoSlNDOjpCMzo6UG9seUp1bXBWYWx1ZTo6c2V0Q2FsbGJhY2tUYXNrKToKKyAgICAg
ICAgKEpTQzo6QjM6OlBvbHlKdW1wVmFsdWU6OmlzQ2xvbmVhYmxlKToKKyAgICAgICAgKEpTQzo6
QjM6OlBvbHlKdW1wVmFsdWU6OmR1bXBNZXRhKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1w
VmFsdWU6OmNsb25lSW1wbCk6CisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjpQb2x5
SnVtcFZhbHVlKToKKyAgICAgICAgKiBiMy9CM1BvbHlKdW1wVmFsdWUuaDogQWRkZWQuCisgICAg
ICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjphY2NlcHRzKToKKyAgICAgICAgKEpTQzo6QjM6
OlBvbHlKdW1wVmFsdWU6OnNldENhbGxiYWNrKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1w
VmFsdWU6OmNhbGxiYWNrVGFzayk6CisgICAgICAgICogYjMvQjNQcm9jZWR1cmUuY3BwOgorICAg
ICAgICAoSlNDOjpCMzo6UHJvY2VkdXJlOjpjbG9uZSk6CisgICAgICAgICogYjMvQjNQcm9jZWR1
cmUuaDoKKyAgICAgICAgKEpTQzo6QjM6OlByb2NlZHVyZTo6bGFzdFBoYXNlTmFtZSk6CisgICAg
ICAgIChKU0M6OkIzOjpQcm9jZWR1cmU6OmJ5cHJvZHVjdHMpOgorICAgICAgICAqIGIzL0IzUmVk
dWNlU3RyZW5ndGguY3BwOgorICAgICAgICAqIGIzL0IzVmFsaWRhdGUuY3BwOgorICAgICAgICAq
IGIzL0IzVmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6OmVmZmVjdHMpOgorICAg
ICAgICAoSlNDOjpCMzo6VmFsdWU6OmlzQ2xvbmVhYmxlKToKKyAgICAgICAgKEpTQzo6QjM6OlZh
bHVlOjprZXkpOgorICAgICAgICAqIGIzL0IzVmFsdWUuaDoKKyAgICAgICAgKiBiMy9haXIvQWly
Q29kZS5oOgorICAgICAgICAqIGIzL2Fpci9BaXJHZW5lcmF0ZS5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpBaXI6OmdlbmVyYXRlKToKKyAgICAgICAgKiBiMy9haXIvQWlySW5zdC5jcHA6CisgICAg
ICAgIChKU0M6OkIzOjpBaXI6Okluc3Q6Omhhc0FyZ0VmZmVjdHMpOgorICAgICAgICAoSlNDOjpC
Mzo6QWlyOjpJbnN0Ojppc0Nsb25lYWJsZSk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okluc3Q6
OmR1bXApOgorICAgICAgICAqIGIzL2Fpci9BaXJJbnN0Lmg6CisgICAgICAgICogYjMvYWlyL0Fp
ck9wY29kZS5vcGNvZGVzOgorICAgICAgICAqIGIzL3Rlc3RiMy5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpzaG91bGRCZVZlcmJvc2UpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN3aXRjaENoaWxs
RGl2KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RMYXRlUmVnaXN0ZXIpOgorICAgICAgICAoSlND
OjpCMzo6dGhyZWFkZWRJbnRlcnByZXRlclByaW50KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RU
aHJlYWRlZEludGVycHJldGVyKToKKyAgICAgICAgKEpTQzo6QjM6Onplcm8pOgorICAgICAgICAo
SlNDOjpCMzo6cnVuKToKKwogMjAxNi0wNy0wMyAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gRExMcyBhcmUgbWlzc2luZyB2ZXJzaW9uIGluZm9y
bWF0aW9uLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24g
MjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0xNDQsNiArMTQ0LDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAg
ICBiMy9CM1BhdGNocG9pbnRWYWx1ZS5jcHAKICAgICBiMy9CM1BoYXNlU2NvcGUuY3BwCiAgICAg
YjMvQjNQaGlDaGlsZHJlbi5jcHAKKyAgICBiMy9CM1BvbHlKdW1wVmFsdWUuY3BwCiAgICAgYjMv
QjNQcm9jZWR1cmUuY3BwCiAgICAgYjMvQjNQdXJlQ1NFLmNwcAogICAgIGIzL0IzUmVkdWNlRG91
YmxlVG9GbG9hdC5jcHAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lv
biAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTk4OCw2ICsxOTg4LDggQEAK
IAkJREMxN0U4MUExQzlDOTFFOTAwOEE2QUIzIC8qIENDYWxsSGVscGVycy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzE3RTgxNjFDOUM4MDJCMDA4
QTZBQjMgLyogQ0NhbGxIZWxwZXJzLmNwcCAqLzsgfTsKIAkJREMyMTQzMDcxQ0EzMkU1NTAwMEE4
ODY5IC8qIElDU3RhdHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IERDMjE0MzA2MUNBMzJFNTIwMDBBODg2OSAvKiBJQ1N0YXRzLmggKi87IH07CiAJCURD
MjE0MzA4MUNBMzJFNTgwMDBBODg2OSAvKiBJQ1N0YXRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDMjE0MzA1MUNBMzJFNTIwMDBBODg2OSAvKiBJ
Q1N0YXRzLmNwcCAqLzsgfTsKKwkJREM0NTRCODgxQ0ZGNkZFNzAwNEMxOEFGIC8qIEIzUG9seUp1
bXBWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBEQzQ1NEI4NjFDRkY2RkU1MDA0QzE4QUYgLyogQjNQb2x5SnVtcFZhbHVlLmNwcCAqLzsgfTsK
KwkJREM0NTRCODkxQ0ZGNkZFQTAwNEMxOEFGIC8qIEIzUG9seUp1bXBWYWx1ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM0NTRCODcxQ0ZGNkZFNTAw
NEMxOEFGIC8qIEIzUG9seUp1bXBWYWx1ZS5oICovOyB9OwogCQlEQzQ1NEI4QzFEMDBFODIyMDA0
QzE4QUYgLyogQWlyRHVtcEFzSlMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gREM0NTRCOEExRDAwRTgxRjAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmNw
cCAqLzsgfTsKIAkJREM0NTRCOEQxRDAwRTgyNDAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzQ1NEI4QjFEMDBF
ODFGMDA0QzE4QUYgLyogQWlyRHVtcEFzSlMuaCAqLzsgfTsKIAkJREM2MDVCNUQxQ0UyNkVBMDAw
NTkzNzE4IC8qIFByb2ZpbGVyRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gREM2MDVCNTkxQ0UyNkU5ODAwNTkzNzE4IC8qIFByb2ZpbGVyRXZl
bnQuY3BwICovOyB9OwpAQCAtNDIxNiw2ICs0MjE4LDggQEAKIAkJREMxN0U4MTYxQzlDODAyQjAw
OEE2QUIzIC8qIENDYWxsSGVscGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBDQ2FsbEhlbHBlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlE
QzIxNDMwNTFDQTMyRTUyMDAwQTg4NjkgLyogSUNTdGF0cy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBJQ1N0YXRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJREMyMTQzMDYxQ0EzMkU1MjAwMEE4ODY5IC8qIElDU3RhdHMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSUNTdGF0cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlEQzQ1NEI4NjFDRkY2RkU1MDA0QzE4QUYgLyogQjNQb2x5SnVtcFZhbHVlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEIzUG9seUp1bXBWYWx1ZS5jcHA7IHBh
dGggPSBiMy9CM1BvbHlKdW1wVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlEQzQ1NEI4NzFDRkY2RkU1MDA0QzE4QUYgLyogQjNQb2x5SnVtcFZhbHVlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEIzUG9seUp1bXBWYWx1ZS5oOyBwYXRoID0gYjMvQjNQ
b2x5SnVtcFZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDNDU0QjhBMUQw
MEU4MUYwMDRDMThBRiAvKiBBaXJEdW1wQXNKUy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBBaXJEdW1wQXNKUy5jcHA7IHBhdGggPSBiMy9haXIvQWlyRHVtcEFzSlMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzQ1NEI4QjFEMDBFODFGMDA0QzE4
QUYgLyogQWlyRHVtcEFzSlMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQWly
RHVtcEFzSlMuaDsgcGF0aCA9IGIzL2Fpci9BaXJEdW1wQXNKUy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlEQzYwNUI1OTFDRTI2RTk4MDA1OTM3MTggLyogUHJvZmlsZXJFdmVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQcm9maWxlckV2ZW50LmNw
cDsgcGF0aCA9IHByb2ZpbGVyL1Byb2ZpbGVyRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNDc3NSw2ICs0Nzc5LDggQEAKIAkJCQkwRkVDODRFMDFCREFDREFDMDA4MEZG
NzQgLyogQjNQaGFzZVNjb3BlLmggKi8sCiAJCQkJMEYzNzMwOEExQzBCRDI5MTAwMDUyQkZBIC8q
IEIzUGhpQ2hpbGRyZW4uY3BwICovLAogCQkJCTBGMzczMDhCMUMwQkQyOTEwMDA1MkJGQSAvKiBC
M1BoaUNoaWxkcmVuLmggKi8sCisJCQkJREM0NTRCODYxQ0ZGNkZFNTAwNEMxOEFGIC8qIEIzUG9s
eUp1bXBWYWx1ZS5jcHAgKi8sCisJCQkJREM0NTRCODcxQ0ZGNkZFNTAwNEMxOEFGIC8qIEIzUG9s
eUp1bXBWYWx1ZS5oICovLAogCQkJCTBGRUM4NEUxMUJEQUNEQUMwMDgwRkY3NCAvKiBCM1Byb2Nl
ZHVyZS5jcHAgKi8sCiAJCQkJMEZFQzg0RTIxQkRBQ0RBQzAwODBGRjc0IC8qIEIzUHJvY2VkdXJl
LmggKi8sCiAJCQkJMEZFQzg0RTMxQkRBQ0RBQzAwODBGRjc0IC8qIEIzUHJvY2VkdXJlSW5saW5l
cy5oICovLApAQCAtNzE2Myw2ICs3MTY5LDcgQEAKIAkJCQkwRjhGOTQ0MTE2Njc2MzMyMDBENjE5
NzEgLyogQ29kZUJsb2NrSGFzaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDOTdGMzQxODIwMjBE
NzAwMkM5QjI2IC8qIENvZGVCbG9ja0pldHRpc29uaW5nV2F0Y2hwb2ludC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEZEOEEzMTQxN0Q0MzI2QzAwQ0EyQzQwIC8qIENvZGVCbG9ja1NldC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJREM0NTRCODkxQ0ZGNkZFQTAwNEMxOEFGIC8qIEIzUG9seUp1bXBWYWx1
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5NkVCQjMxNjY3NkVGNjAwOEJBREUzIC8qIENvZGVC
bG9ja1dpdGhKSVRUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzdGMTgyMjE2NDA4OEIyMDA2
NDBBNDcgLyogQ29kZUNhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OUNDMEI2MzE4QkU5OTUw
MDA2Q0VCQ0MgLyogQ29kZUdlbmVyYXRvclJlcGxheUlucHV0cy5weSBpbiBIZWFkZXJzICovLApA
QCAtOTQ0Nyw2ICs5NDU0LDcgQEAKIAkJCQk3MDlGQjg2QjFBRTMzNUM2MDAzOUQwNjkgLyogV2Vh
a1NldFByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyQTRFQzkwQjE4NjBENkMyMDA5
NEY3ODIgLyogV3JpdGVCYXJyaWVyQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQzgx
NTBCMTQwNDNDMEUwMENGQTYwMyAvKiBXcml0ZUJhcnJpZXJTdXBwb3J0LmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCURDNDU0Qjg4MUNGRjZGRTcwMDRDMThBRiAvKiBCM1BvbHlKdW1wVmFsdWUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTdFNUFCM0ExNzk5RTRCMjAwRDI4MzNEIC8qIFg4NkRpc2Fz
c2VtYmxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjJCQkQ5NzFDNUZGM0Y1MDAyM0VGMjMg
LyogQjNWYXJpYWJsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NjNDNkQ5QzE1MjExMTFBMDA1
ODVFNEUgLyogWWFyckNhbm9uaWNhbGl6ZVVDUzIuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
QVJNNjQuaAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4NzQsNiArMjg3
NCwxMiBAQCBwdWJsaWM6CiAgICAgICAgIGxvYWQ2NChhZGRyZXNzLCBnZXRDYWNoZWREYXRhVGVt
cFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCkpOwogICAgICAgICBtX2Fzc2VtYmxlci5icihkYXRh
VGVtcFJlZ2lzdGVyKTsKICAgICB9CisgICAgCisgICAgdm9pZCBqdW1wKEJhc2VJbmRleCBhZGRy
ZXNzKQorICAgIHsKKyAgICAgICAgbG9hZDY0KGFkZHJlc3MsIGdldENhY2hlZERhdGFUZW1wUmVn
aXN0ZXJJREFuZEludmFsaWRhdGUoKSk7CisgICAgICAgIG1fYXNzZW1ibGVyLmJyKGRhdGFUZW1w
UmVnaXN0ZXIpOworICAgIH0KIAogICAgIHZvaWQganVtcChBYnNvbHV0ZUFkZHJlc3MgYWRkcmVz
cykKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyWDg2Q29tbW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTIyNjMsNiArMjI2MywxMiBAQCBwdWJsaWM6CiAgICAgICAgIG1f
YXNzZW1ibGVyLmptcF9tKGFkZHJlc3Mub2Zmc2V0LCBhZGRyZXNzLmJhc2UpOwogICAgIH0KIAor
ICAgIC8vIEFkZHJlc3MgaXMgYSBtZW1vcnkgbG9jYXRpb24gY29udGFpbmluZyB0aGUgYWRkcmVz
cyB0byBqdW1wIHRvCisgICAgdm9pZCBqdW1wKEJhc2VJbmRleCBhZGRyZXNzKQorICAgIHsKKyAg
ICAgICAgbV9hc3NlbWJsZXIuam1wX20oYWRkcmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFzZSwgYWRk
cmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZSk7CisgICAgfQorCiAKICAgICAvLyBBcml0aG1ldGlj
IGNvbnRyb2wgZmxvdyBvcGVyYXRpb25zOgogICAgIC8vCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgJKHJldmlzaW9uIDIwMjgwOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTE5ODMsNiArMTk4MywxMSBAQCBwdWJsaWM6CiAgICAgICAgIG1fZm9ybWF0dGVy
Lm9uZUJ5dGVPcChPUF9HUk9VUDVfRXYsIEdST1VQNV9PUF9KTVBOLCBiYXNlLCBvZmZzZXQpOwog
ICAgIH0KICAgICAKKyAgICB2b2lkIGptcF9tKGludCBvZmZzZXQsIFJlZ2lzdGVySUQgYmFzZSwg
UmVnaXN0ZXJJRCBpbmRleCwgaW50IHNjYWxlKQorICAgIHsKKyAgICAgICAgbV9mb3JtYXR0ZXIu
b25lQnl0ZU9wKE9QX0dST1VQNV9FdiwgR1JPVVA1X09QX0pNUE4sIGJhc2UsIGluZGV4LCBzY2Fs
ZSwgb2Zmc2V0KTsKKyAgICB9CisgICAgCiAjaWYgIUNQVShYODZfNjQpCiAgICAgdm9pZCBqbXBf
bShjb25zdCB2b2lkKiBhZGRyZXNzKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0Jhc2ljQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0Jhc2ljQmxvY2suY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAs
NiBAQAogCiAjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrSW5saW5lcy5oIgogI2luY2x1ZGUgIkIzQmFz
aWNCbG9ja1V0aWxzLmgiCi0jaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKICNpbmNsdWRlICJC
M1Byb2NlZHVyZS5oIgogI2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSA8d3Rm
L0xpc3REdW1wLmg+CkBAIC04NCw5ICs4Myw0MSBAQCBWYWx1ZSogQmFzaWNCbG9jazo6YXBwZW5k
SW50Q29uc3RhbnQoUHJvCiAgICAgcmV0dXJuIGFwcGVuZEludENvbnN0YW50KHByb2MsIGxpa2VW
YWx1ZS0+b3JpZ2luKCksIGxpa2VWYWx1ZS0+dHlwZSgpLCB2YWx1ZSk7CiB9CiAKK3ZvaWQgQmFz
aWNCbG9jazo6Y2xlYXJTdWNjZXNzb3JzKCkKK3sKKyAgICBtX3N1Y2Nlc3NvcnMuY2xlYXIoKTsK
K30KKwordm9pZCBCYXNpY0Jsb2NrOjphcHBlbmRTdWNjZXNzb3IoY29uc3QgRnJlcXVlbnRlZEJs
b2NrJiB0YXJnZXQpCit7CisgICAgbV9zdWNjZXNzb3JzLmFwcGVuZCh0YXJnZXQpOworfQorCit2
b2lkIEJhc2ljQmxvY2s6OnNldFN1Y2Nlc3NvcnMoY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YXJn
ZXQpCit7CisgICAgbV9zdWNjZXNzb3JzLnJlc2l6ZSgxKTsKKyAgICBtX3N1Y2Nlc3NvcnNbMF0g
PSB0YXJnZXQ7Cit9CisKK3ZvaWQgQmFzaWNCbG9jazo6c2V0U3VjY2Vzc29ycyhjb25zdCBGcmVx
dWVudGVkQmxvY2smIHRha2VuLCBjb25zdCBGcmVxdWVudGVkQmxvY2smIG5vdFRha2VuKQorewor
ICAgIG1fc3VjY2Vzc29ycy5yZXNpemUoMik7CisgICAgbV9zdWNjZXNzb3JzWzBdID0gdGFrZW47
CisgICAgbV9zdWNjZXNzb3JzWzFdID0gbm90VGFrZW47Cit9CisKIGJvb2wgQmFzaWNCbG9jazo6
cmVwbGFjZVN1Y2Nlc3NvcihCYXNpY0Jsb2NrKiBmcm9tLCBCYXNpY0Jsb2NrKiB0bykKIHsKLSAg
ICByZXR1cm4gbGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCktPnJlcGxhY2VTdWNjZXNzb3IoZnJv
bSwgdG8pOworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgZm9yIChCYXNpY0Jsb2NrKiYg
c3VjY2Vzc29yIDogc3VjY2Vzc29yQmxvY2tzKCkpIHsKKyAgICAgICAgaWYgKHN1Y2Nlc3NvciA9
PSBmcm9tKSB7CisgICAgICAgICAgICBzdWNjZXNzb3IgPSB0bzsKKyAgICAgICAgICAgIHJlc3Vs
dCA9IHRydWU7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIEtlZXAgbG9vcGluZyBiZWNh
dXNlIGEgc3VjY2Vzc29yIG1heSBiZSBtZW50aW9uZWQgbXVsdGlwbGUgdGltZXMsIGxpa2UgaW4g
YSBTd2l0Y2guCisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogYm9v
bCBCYXNpY0Jsb2NrOjphZGRQcmVkZWNlc3NvcihCYXNpY0Jsb2NrKiBibG9jaykKQEAgLTEwOSw2
ICsxNDAsMTUgQEAgdm9pZCBCYXNpY0Jsb2NrOjp1cGRhdGVQcmVkZWNlc3NvcnNBZnRlcgogICAg
IEIzOjp1cGRhdGVQcmVkZWNlc3NvcnNBZnRlcih0aGlzKTsKIH0KIAorYm9vbCBCYXNpY0Jsb2Nr
Ojppc0Nsb25lYWJsZSgpIGNvbnN0Cit7CisgICAgZm9yIChWYWx1ZSogdmFsdWUgOiAqdGhpcykg
eworICAgICAgICBpZiAoIXZhbHVlLT5pc0Nsb25lYWJsZSgpKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBCYXNpY0Jsb2NrOjpk
dW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiB7CiAgICAgb3V0LnByaW50KGR1bXBQcmVmaXgs
IG1faW5kZXgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2suaAko
cmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9j
ay5oCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw3IEBAIGNsYXNzIEJhc2ljQmxvY2sgewog
cHVibGljOgogICAgIHR5cGVkZWYgVmVjdG9yPFZhbHVlKj4gVmFsdWVMaXN0OwogICAgIHR5cGVk
ZWYgVmVjdG9yPEJhc2ljQmxvY2sqLCAyPiBQcmVkZWNlc3Nvckxpc3Q7Ci0gICAgdHlwZWRlZiBW
ZWN0b3I8RnJlcXVlbnRlZEJsb2NrLCAyPiBTdWNjZXNzb3JMaXN0OyAvLyBUaGlzIG1hdGNoZXMg
Q29udHJvbFZhbHVlOjpTdWNjZXNzb3JMaXN0CisgICAgdHlwZWRlZiBWZWN0b3I8RnJlcXVlbnRl
ZEJsb2NrLCAyPiBTdWNjZXNzb3JMaXN0OwogCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0
IGR1bXBQcmVmaXg7CiAKQEAgLTg3LDE4ICs4NywzNiBAQCBwdWJsaWM6CiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgVmFsdWVUeXBlLCB0eXBlbmFtZS4uLiBBcmd1bWVudHM+CiAgICAgVmFsdWVUeXBl
KiByZXBsYWNlTGFzdFdpdGhOZXcoUHJvY2VkdXJlJiwgQXJndW1lbnRzLi4uKTsKIAotICAgIHVu
c2lnbmVkIG51bVN1Y2Nlc3NvcnMoKSBjb25zdDsKLSAgICBjb25zdCBGcmVxdWVudGVkQmxvY2sm
IHN1Y2Nlc3Nvcih1bnNpZ25lZCBpbmRleCkgY29uc3Q7Ci0gICAgRnJlcXVlbnRlZEJsb2NrJiBz
dWNjZXNzb3IodW5zaWduZWQgaW5kZXgpOwotICAgIGNvbnN0IFN1Y2Nlc3Nvckxpc3QmIHN1Y2Nl
c3NvcnMoKSBjb25zdDsKLSAgICBTdWNjZXNzb3JMaXN0JiBzdWNjZXNzb3JzKCk7Ci0KLSAgICBC
YXNpY0Jsb2NrKiBzdWNjZXNzb3JCbG9jayh1bnNpZ25lZCBpbmRleCkgY29uc3Q7Ci0gICAgQmFz
aWNCbG9jayomIHN1Y2Nlc3NvckJsb2NrKHVuc2lnbmVkIGluZGV4KTsKLSAgICBTdWNjZXNzb3JD
b2xsZWN0aW9uPEJhc2ljQmxvY2ssIFN1Y2Nlc3Nvckxpc3Q+IHN1Y2Nlc3NvckJsb2NrcygpOwot
ICAgIFN1Y2Nlc3NvckNvbGxlY3Rpb248Y29uc3QgQmFzaWNCbG9jaywgY29uc3QgU3VjY2Vzc29y
TGlzdD4gc3VjY2Vzc29yQmxvY2tzKCkgY29uc3Q7CisgICAgdW5zaWduZWQgbnVtU3VjY2Vzc29y
cygpIGNvbnN0IHsgcmV0dXJuIG1fc3VjY2Vzc29ycy5zaXplKCk7IH0KKyAgICBjb25zdCBGcmVx
dWVudGVkQmxvY2smIHN1Y2Nlc3Nvcih1bnNpZ25lZCBpbmRleCkgY29uc3QgeyByZXR1cm4gbV9z
dWNjZXNzb3JzW2luZGV4XTsgfQorICAgIEZyZXF1ZW50ZWRCbG9jayYgc3VjY2Vzc29yKHVuc2ln
bmVkIGluZGV4KSB7IHJldHVybiBtX3N1Y2Nlc3NvcnNbaW5kZXhdOyB9CisgICAgY29uc3QgU3Vj
Y2Vzc29yTGlzdCYgc3VjY2Vzc29ycygpIGNvbnN0IHsgcmV0dXJuIG1fc3VjY2Vzc29yczsgfQor
ICAgIFN1Y2Nlc3Nvckxpc3QmIHN1Y2Nlc3NvcnMoKSB7IHJldHVybiBtX3N1Y2Nlc3NvcnM7IH0K
KyAgICAKKyAgICB2b2lkIGNsZWFyU3VjY2Vzc29ycygpOworICAgIHZvaWQgYXBwZW5kU3VjY2Vz
c29yKGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYpOworICAgIHZvaWQgc2V0U3VjY2Vzc29ycyhjb25z
dCBGcmVxdWVudGVkQmxvY2smKTsKKyAgICB2b2lkIHNldFN1Y2Nlc3NvcnMoY29uc3QgRnJlcXVl
bnRlZEJsb2NrJiwgY29uc3QgRnJlcXVlbnRlZEJsb2NrJik7CisKKyAgICBCYXNpY0Jsb2NrKiBz
dWNjZXNzb3JCbG9jayh1bnNpZ25lZCBpbmRleCkgY29uc3QgeyByZXR1cm4gc3VjY2Vzc29yKGlu
ZGV4KS5ibG9jaygpOyB9CisgICAgQmFzaWNCbG9jayomIHN1Y2Nlc3NvckJsb2NrKHVuc2lnbmVk
IGluZGV4KSB7IHJldHVybiBzdWNjZXNzb3IoaW5kZXgpLmJsb2NrKCk7IH0KKyAgICBTdWNjZXNz
b3JDb2xsZWN0aW9uPEJhc2ljQmxvY2ssIFN1Y2Nlc3Nvckxpc3Q+IHN1Y2Nlc3NvckJsb2Nrcygp
CisgICAgeworICAgICAgICByZXR1cm4gU3VjY2Vzc29yQ29sbGVjdGlvbjxCYXNpY0Jsb2NrLCBT
dWNjZXNzb3JMaXN0PihzdWNjZXNzb3JzKCkpOworICAgIH0KKyAgICBTdWNjZXNzb3JDb2xsZWN0
aW9uPGNvbnN0IEJhc2ljQmxvY2ssIGNvbnN0IFN1Y2Nlc3Nvckxpc3Q+IHN1Y2Nlc3NvckJsb2Nr
cygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gU3VjY2Vzc29yQ29sbGVjdGlvbjxjb25z
dCBCYXNpY0Jsb2NrLCBTdWNjZXNzb3JMaXN0PihzdWNjZXNzb3JzKCkpOworICAgIH0KIAogICAg
IGJvb2wgcmVwbGFjZVN1Y2Nlc3NvcihCYXNpY0Jsb2NrKiBmcm9tLCBCYXNpY0Jsb2NrKiB0byk7
CisgICAgCisgICAgLy8gVGhpcyBpcyBvbmx5IHZhbGlkIGZvciBKdW1wIGFuZCBCcmFuY2guCisg
ICAgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YWtlbigpIGNvbnN0OworICAgIEZyZXF1ZW50ZWRC
bG9jayYgdGFrZW4oKTsKKyAgICAvLyBUaGlzIGlzIG9ubHkgdmxhaWQgZm9yIEJyYW5jaC4KKyAg
ICBjb25zdCBGcmVxdWVudGVkQmxvY2smIG5vdFRha2VuKCkgY29uc3Q7CisgICAgRnJlcXVlbnRl
ZEJsb2NrJiBub3RUYWtlbigpIGNvbnN0OwogCiAgICAgdW5zaWduZWQgbnVtUHJlZGVjZXNzb3Jz
KCkgY29uc3QgeyByZXR1cm4gbV9wcmVkZWNlc3NvcnMuc2l6ZSgpOyB9CiAgICAgQmFzaWNCbG9j
ayogcHJlZGVjZXNzb3IodW5zaWduZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fcHJlZGVjZXNz
b3JzW2luZGV4XTsgfQpAQCAtMTE1LDYgKzEzMyw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0
ZVByZWRlY2Vzc29yc0FmdGVyKCk7CiAKICAgICBkb3VibGUgZnJlcXVlbmN5KCkgY29uc3QgeyBy
ZXR1cm4gbV9mcmVxdWVuY3k7IH0KKyAgICAKKyAgICBib29sIGlzQ2xvbmVhYmxlKCkgY29uc3Q7
CiAKICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKICAgICB2b2lkIGRlZXBEdW1w
KGNvbnN0IFByb2NlZHVyZSYsIFByaW50U3RyZWFtJikgY29uc3Q7CkBAIC0xMzAsNiArMTUwLDcg
QEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2luZGV4OwogICAgIFZhbHVlTGlzdCBtX3ZhbHVl
czsKICAgICBQcmVkZWNlc3Nvckxpc3QgbV9wcmVkZWNlc3NvcnM7CisgICAgU3VjY2Vzc29yTGlz
dCBtX3N1Y2Nlc3NvcnM7CiAgICAgZG91YmxlIG1fZnJlcXVlbmN5OwogfTsKIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9ja0lubGluZXMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrSW5saW5lcy5oCShyZXZpc2lv
biAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrSW5saW5l
cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw2IEBACiAjaWYgRU5BQkxFKEIzX0pJVCkK
IAogI2luY2x1ZGUgIkIzQmFzaWNCbG9jay5oIgotI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgi
CiAjaW5jbHVkZSAiQjNQcm9jZWR1cmVJbmxpbmVzLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1l
c3BhY2UgQjMgewpAQCAtNTgsNDkgKzU3LDI4IEBAIFZhbHVlVHlwZSogQmFzaWNCbG9jazo6cmVw
bGFjZUxhc3RXaXRoTmUKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1pbmxpbmUgdW5zaWduZWQg
QmFzaWNCbG9jazo6bnVtU3VjY2Vzc29ycygpIGNvbnN0Citjb25zdCBGcmVxdWVudGVkQmxvY2sm
IEJhc2ljQmxvY2s6OnRha2VuKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbGFzdCgpLT5hczxDb250
cm9sVmFsdWU+KCktPm51bVN1Y2Nlc3NvcnMoKTsKKyAgICBBU1NFUlQobGFzdCgpLT5vcGNvZGUo
KSA9PSBKdW1wIHx8IGxhc3QoKS0+b3Bjb2RlKCkgPT0gQnJhbmNoKTsKKyAgICByZXR1cm4gbV9z
dWNjZXNzb3JzWzBdOwogfQogCi1pbmxpbmUgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBCYXNpY0Js
b2NrOjpzdWNjZXNzb3IodW5zaWduZWQgaW5kZXgpIGNvbnN0CitGcmVxdWVudGVkQmxvY2smIEJh
c2ljQmxvY2s6OnRha2VuKCkKIHsKLSAgICByZXR1cm4gbGFzdCgpLT5hczxDb250cm9sVmFsdWU+
KCktPnN1Y2Nlc3NvcihpbmRleCk7CisgICAgQVNTRVJUKGxhc3QoKS0+b3Bjb2RlKCkgPT0gSnVt
cCB8fCBsYXN0KCktPm9wY29kZSgpID09IEJyYW5jaCk7CisgICAgcmV0dXJuIG1fc3VjY2Vzc29y
c1swXTsKIH0KIAotaW5saW5lIEZyZXF1ZW50ZWRCbG9jayYgQmFzaWNCbG9jazo6c3VjY2Vzc29y
KHVuc2lnbmVkIGluZGV4KQorY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBCYXNpY0Jsb2NrOjpub3RU
YWtlbigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGxhc3QoKS0+YXM8Q29udHJvbFZhbHVlPigpLT5z
dWNjZXNzb3IoaW5kZXgpOworICAgIEFTU0VSVChsYXN0KCktPm9wY29kZSgpID09IEJyYW5jaCk7
CisgICAgcmV0dXJuIG1fc3VjY2Vzc29yc1sxXTsKIH0KIAotaW5saW5lIGNvbnN0IEJhc2ljQmxv
Y2s6OlN1Y2Nlc3Nvckxpc3QmIEJhc2ljQmxvY2s6OnN1Y2Nlc3NvcnMoKSBjb25zdAorRnJlcXVl
bnRlZEJsb2NrJiBCYXNpY0Jsb2NrOjpub3RUYWtlbigpCiB7Ci0gICAgcmV0dXJuIGxhc3QoKS0+
YXM8Q29udHJvbFZhbHVlPigpLT5zdWNjZXNzb3JzKCk7Ci19Ci0KLWlubGluZSBCYXNpY0Jsb2Nr
OjpTdWNjZXNzb3JMaXN0JiBCYXNpY0Jsb2NrOjpzdWNjZXNzb3JzKCkKLXsKLSAgICByZXR1cm4g
bGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCktPnN1Y2Nlc3NvcnMoKTsKLX0KLQotaW5saW5lIEJh
c2ljQmxvY2sqIEJhc2ljQmxvY2s6OnN1Y2Nlc3NvckJsb2NrKHVuc2lnbmVkIGluZGV4KSBjb25z
dAotewotICAgIHJldHVybiBzdWNjZXNzb3IoaW5kZXgpLmJsb2NrKCk7Ci19Ci0KLWlubGluZSBC
YXNpY0Jsb2NrKiYgQmFzaWNCbG9jazo6c3VjY2Vzc29yQmxvY2sodW5zaWduZWQgaW5kZXgpCi17
Ci0gICAgcmV0dXJuIHN1Y2Nlc3NvcihpbmRleCkuYmxvY2soKTsKLX0KLQotaW5saW5lIFN1Y2Nl
c3NvckNvbGxlY3Rpb248QmFzaWNCbG9jaywgQmFzaWNCbG9jazo6U3VjY2Vzc29yTGlzdD4gQmFz
aWNCbG9jazo6c3VjY2Vzc29yQmxvY2tzKCkKLXsKLSAgICByZXR1cm4gU3VjY2Vzc29yQ29sbGVj
dGlvbjxCYXNpY0Jsb2NrLCBTdWNjZXNzb3JMaXN0PihzdWNjZXNzb3JzKCkpOwotfQotCi1pbmxp
bmUgU3VjY2Vzc29yQ29sbGVjdGlvbjxjb25zdCBCYXNpY0Jsb2NrLCBjb25zdCBCYXNpY0Jsb2Nr
OjpTdWNjZXNzb3JMaXN0PiBCYXNpY0Jsb2NrOjpzdWNjZXNzb3JCbG9ja3MoKSBjb25zdAotewot
ICAgIHJldHVybiBTdWNjZXNzb3JDb2xsZWN0aW9uPGNvbnN0IEJhc2ljQmxvY2ssIGNvbnN0IFN1
Y2Nlc3Nvckxpc3Q+KHN1Y2Nlc3NvcnMoKSk7CisgICAgQVNTRVJUKGxhc3QoKS0+b3Bjb2RlKCkg
PT0gQnJhbmNoKTsKKyAgICByZXR1cm4gbV9zdWNjZXNzb3JzWzFdOwogfQogCiB9IH0gLy8gbmFt
ZXNwYWNlIEpTQzo6QjMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jsb2NrSW5z
ZXJ0aW9uU2V0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNC
bG9ja0luc2VydGlvblNldC5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0Jsb2NrSW5zZXJ0aW9uU2V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzgs
OCArNzgsOCBAQCBCYXNpY0Jsb2NrKiBCbG9ja0luc2VydGlvblNldDo6c3BsaXRGb3J3CiAgICAg
ICAgIHJlc3VsdC0+bV92YWx1ZXNbaV0gPSBibG9jay0+bV92YWx1ZXNbaV07CiAKICAgICAvLyBN
YWtlIHRoZSBuZXcgYmxvY2sganVtcCB0byAnYmxvY2snLgotICAgIHJlc3VsdC0+bV92YWx1ZXNb
dmFsdWVJbmRleF0gPQotICAgICAgICBtX3Byb2MuYWRkPENvbnRyb2xWYWx1ZT4oSnVtcCwgdmFs
dWUtPm9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soYmxvY2spKTsKKyAgICByZXN1bHQtPm1fdmFs
dWVzW3ZhbHVlSW5kZXhdID0gbV9wcm9jLmFkZDxWYWx1ZT4oSnVtcCwgdmFsdWUtPm9yaWdpbigp
KTsKKyAgICByZXN1bHQtPnNldFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2NrKGJsb2NrKSk7CiAK
ICAgICAvLyBJZiB3ZSBoYWQgaW5zZXJ0ZWQgdGhpbmdzIGludG8gJ2Jsb2NrJyBiZWZvcmUgdGhp
cywgZXhlY3V0ZSB0aG9zZSBpbnNlcnRpb25zIG5vdy4KICAgICBpZiAoaW5zZXJ0aW9uU2V0KQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQnJlYWtDcml0aWNhbEVkZ2VzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCcmVha0NyaXRpY2FsRWRn
ZXMuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNC
cmVha0NyaXRpY2FsRWRnZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw2IEBACiAK
ICNpbmNsdWRlICJCM0Jhc2ljQmxvY2tJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNCbG9ja0luc2Vy
dGlvblNldC5oIgotI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNQcm9j
ZWR1cmVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKIApAQCAtNTAsOCAr
NDksOCBAQCB2b2lkIGJyZWFrQ3JpdGljYWxFZGdlcyhQcm9jZWR1cmUmIHByb2MpCiAKICAgICAg
ICAgICAgIEJhc2ljQmxvY2sqIHBhZCA9CiAgICAgICAgICAgICAgICAgaW5zZXJ0aW9uU2V0Lmlu
c2VydEJlZm9yZShzdWNjZXNzb3IsIHN1Y2Nlc3Nvci0+ZnJlcXVlbmN5KCkpOwotICAgICAgICAg
ICAgcGFkLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgICAgICAgICBwcm9jLCBK
dW1wLCBzdWNjZXNzb3ItPmF0KDApLT5vcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHN1Y2Nlc3Nv
cikpOworICAgICAgICAgICAgcGFkLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEp1bXAsIHN1Y2Nl
c3Nvci0+YXQoMCktPm9yaWdpbigpKTsKKyAgICAgICAgICAgIHBhZC0+c2V0U3VjY2Vzc29ycyhG
cmVxdWVudGVkQmxvY2soc3VjY2Vzc29yKSk7CiAgICAgICAgICAgICBwYWQtPmFkZFByZWRlY2Vz
c29yKGJsb2NrKTsKICAgICAgICAgICAgIHN1Y2Nlc3Nvci0+cmVwbGFjZVByZWRlY2Vzc29yKGJs
b2NrLCBwYWQpOwogICAgICAgICAgICAgc3VjY2Vzc29yID0gcGFkOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzQ29tbW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzQ29tbW9uLmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0NvbW1vbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDYgKzI4LDggQEAKIAogI2lm
IEVOQUJMRShCM19KSVQpCiAKKyNpbmNsdWRlICJKU0V4cG9ydE1hY3Jvcy5oIgorCiBuYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIAogaW5saW5lIGJvb2wgaXM2NEJpdCgpIHsgcmV0dXJu
IHNpemVvZih2b2lkKikgPT0gODsgfQpAQCAtMzgsNyArNDAsNyBAQCBlbnVtIEIzQ29tcGxpdGF0
aW9uTW9kZSB7CiAgICAgQWlyTW9kZQogfTsKIAotYm9vbCBzaG91bGREdW1wSVIoQjNDb21wbGl0
YXRpb25Nb2RlKTsKK0pTX0VYUE9SVF9QUklWQVRFIGJvb2wgc2hvdWxkRHVtcElSKEIzQ29tcGxp
dGF0aW9uTW9kZSk7CiBib29sIHNob3VsZER1bXBJUkF0RWFjaFBoYXNlKEIzQ29tcGxpdGF0aW9u
TW9kZSk7CiBib29sIHNob3VsZFZhbGlkYXRlSVIoKTsKIGJvb2wgc2hvdWxkVmFsaWRhdGVJUkF0
RWFjaFBoYXNlKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb250cm9sVmFs
dWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb250cm9sVmFs
dWUuaAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29u
dHJvbFZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDkgKzQ2LDEwIEBAIHB1YmxpYzoKICAg
ICAgICAgY2FzZSBSZXR1cm46CiAgICAgICAgIGNhc2UgT29wczoKICAgICAgICAgICAgIHJldHVy
biB0cnVlOwotICAgICAgICBjYXNlIFN3aXRjaDogCi0gICAgICAgICAgICAvLyBUaGlzIGlzIGhl
cmUgYmVjYXVzZSBTd2l0Y2hWYWx1ZSBpcyBhIHN1YmNsYXNzIG9mIENvbnRyb2xWYWx1ZSwgc28g
d2Ugd2FudAotICAgICAgICAgICAgLy8gc3dpdGNoVmFsdWUtPmFzPENvbnRyb2xWYWx1ZT4oKSB0
byByZXR1cm4gbm9uLW51bGwuCisgICAgICAgIGNhc2UgU3dpdGNoOgorICAgICAgICBjYXNlIFBv
bHlKdW1wOgorICAgICAgICAgICAgLy8gVGhpcyBpcyBoZXJlIGJlY2F1c2UgU3dpdGNoVmFsdWUg
YW5kIFBvbHlKdW1wVmFsdWUgYXJlIHN1YmNsYXNzZXMgb2YgQ29udHJvbFZhbHVlLAorICAgICAg
ICAgICAgLy8gc28gd2Ugd2FudCB0aGluZ3MgbGlrZSBzd2l0Y2hWYWx1ZS0+YXM8Q29udHJvbFZh
bHVlPigpIHRvIHJldHVybiBub24tbnVsbC4KICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
ICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNzcsNyArNzgsNyBA
QCBwdWJsaWM6CiAgICAgfQogCiAgICAgYm9vbCByZXBsYWNlU3VjY2Vzc29yKEJhc2ljQmxvY2sq
IGZyb20sIEJhc2ljQmxvY2sqIHRvKTsKLQorICAgIAogICAgIGNvbnN0IEZyZXF1ZW50ZWRCbG9j
ayYgdGFrZW4oKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUKG9wY29kZSgpID09IEp1bXAg
fHwgb3Bjb2RlKCkgPT0gQnJhbmNoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0RhdGFTZWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNEYXRhU2VjdGlvbi5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM0RhdGFTZWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMSw3ICszMSw3IEBACiBu
YW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIAogRGF0YVNlY3Rpb246OkRhdGFTZWN0aW9u
KHNpemVfdCBzaXplKQotICAgIDogbV9kYXRhKGZhc3RNYWxsb2Moc2l6ZSkpCisgICAgOiBtX2Rh
dGEoZmFzdFplcm9lZE1hbGxvYyhzaXplKSkKICAgICAsIG1fc2l6ZShzaXplKQogewogfQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRHVwbGljYXRlVGFpbHMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0R1cGxpY2F0ZVRhaWxzLmNwcAkocmV2
aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRHVwbGljYXRlVGFp
bHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw2IEBACiAKICNpbmNsdWRlICJCM0Jh
c2ljQmxvY2tJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNCcmVha0NyaXRpY2FsRWRnZXMuaCIKLSNp
bmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzRG9taW5hdG9ycy5oIgogI2lu
Y2x1ZGUgIkIzRml4U1NBLmgiCiAjaW5jbHVkZSAiQjNJbmRleFNldC5oIgpAQCAtNzIsOSArNzEs
MTEgQEAgcHVibGljOgogICAgICAgICBJbmRleFNldDxCYXNpY0Jsb2NrPiBjYW5kaWRhdGVzOwog
CiAgICAgICAgIGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiBtX3Byb2MpIHsKLSAgICAgICAgICAg
IGlmIChibG9jay0+c2l6ZSgpID4gbV9tYXhTaXplIHx8IGJsb2NrLT5udW1TdWNjZXNzb3JzKCkg
PiBtX21heFN1Y2Nlc3NvcnMpCisgICAgICAgICAgICBpZiAoYmxvY2stPnNpemUoKSA+IG1fbWF4
U2l6ZQorICAgICAgICAgICAgICAgIHx8IGJsb2NrLT5udW1TdWNjZXNzb3JzKCkgPiBtX21heFN1
Y2Nlc3NvcnMKKyAgICAgICAgICAgICAgICB8fCAhYmxvY2stPmlzQ2xvbmVhYmxlKCkpCiAgICAg
ICAgICAgICAgICAgY29udGludWU7Ci0KKyAgICAgICAgICAgIAogICAgICAgICAgICAgY2FuZGlk
YXRlcy5hZGQoYmxvY2spOwogICAgICAgICB9CiAKQEAgLTk3LDExICs5OCwxMCBAQCBwdWJsaWM6
CiAgICAgICAgIH0KIAogICAgICAgICBmb3IgKEJhc2ljQmxvY2sqIGJsb2NrIDogbV9wcm9jKSB7
Ci0gICAgICAgICAgICBDb250cm9sVmFsdWUqIGp1bXAgPSBibG9jay0+bGFzdCgpLT5hczxDb250
cm9sVmFsdWU+KCk7Ci0gICAgICAgICAgICBpZiAoanVtcC0+b3Bjb2RlKCkgIT0gSnVtcCkKKyAg
ICAgICAgICAgIGlmIChibG9jay0+bGFzdCgpLT5vcGNvZGUgIT0gSnVtcCkKICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKIAotICAgICAgICAgICAgQmFzaWNCbG9jayogdGFpbCA9IGp1bXAtPnN1
Y2Nlc3NvckJsb2NrKDApOworICAgICAgICAgICAgQmFzaWNCbG9jayogdGFpbCA9IGJsb2NrLT5z
dWNjZXNzb3JCbG9jaygwKTsKICAgICAgICAgICAgIGlmICghY2FuZGlkYXRlcy5jb250YWlucyh0
YWlsKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIApAQCAtMTMwLDYgKzEzMCw3IEBAIHB1
YmxpYzoKICAgICAgICAgICAgICAgICAgICAgbWFwLmFkZCh2YWx1ZSwgY2xvbmUpOwogICAgICAg
ICAgICAgICAgIGJsb2NrLT5hcHBlbmQoY2xvbmUpOwogICAgICAgICAgICAgfQorICAgICAgICAg
ICAgYmxvY2stPnN1Y2Nlc3NvcnMoKSA9IHRhaWwtPnN1Y2Nlc3NvcnMoKTsKICAgICAgICAgfQog
CiAgICAgICAgIG1fcHJvYy5yZXNldFJlYWNoYWJpbGl0eSgpOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzRml4U1NBLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNGaXhTU0EuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNGaXhTU0EuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw2IEBA
CiAKICNpbmNsdWRlICJCM0Jhc2ljQmxvY2tJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNCcmVha0Ny
aXRpY2FsRWRnZXMuaCIKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIz
RG9taW5hdG9ycy5oIgogI2luY2x1ZGUgIkIzSW5kZXhTZXQuaCIKICNpbmNsdWRlICJCM0luc2Vy
dGlvblNldElubGluZXMuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0ZvbGRQ
YXRoQ29uc3RhbnRzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNGb2xkUGF0aENvbnN0YW50cy5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0ZvbGRQYXRoQ29uc3RhbnRzLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjksNyArMjksNiBAQAogI2lmIEVOQUJMRShCM19KSVQpCiAKICNpbmNsdWRlICJCM0Jhc2ljQmxv
Y2tJbmxpbmVzLmgiCi0jaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKICNpbmNsdWRlICJCM0Rv
bWluYXRvcnMuaCIKICNpbmNsdWRlICJCM0luc2VydGlvblNldElubGluZXMuaCIKICNpbmNsdWRl
ICJCM1BoYXNlU2NvcGUuaCIKQEAgLTg3LDI0ICs4NiwyNCBAQCBwdWJsaWM6CiAgICAgICAgIH07
CiAgICAgICAgIAogICAgICAgICBmb3IgKEJhc2ljQmxvY2sqIGJsb2NrIDogbV9wcm9jKSB7Ci0g
ICAgICAgICAgICBDb250cm9sVmFsdWUqIGJyYW5jaCA9IGJsb2NrLT5sYXN0KCktPmFzPENvbnRy
b2xWYWx1ZT4oKTsKKyAgICAgICAgICAgIFZhbHVlKiBicmFuY2ggPSBibG9jay0+bGFzdCgpOwog
ICAgICAgICAgICAgc3dpdGNoIChicmFuY2gtPm9wY29kZSgpKSB7CiAgICAgICAgICAgICBjYXNl
IEJyYW5jaDoKLSAgICAgICAgICAgICAgICBpZiAoYnJhbmNoLT5zdWNjZXNzb3JCbG9jaygwKSA9
PSBicmFuY2gtPnN1Y2Nlc3NvckJsb2NrKDEpKQorICAgICAgICAgICAgICAgIGlmIChibG9jay0+
c3VjY2Vzc29yQmxvY2soMCkgPT0gYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDEpKQogICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICBhZGRPdmVycmlkZSgKICAgICAg
ICAgICAgICAgICAgICAgYmxvY2ssIGJyYW5jaC0+Y2hpbGQoMCksCi0gICAgICAgICAgICAgICAg
ICAgIE92ZXJyaWRlOjpub25aZXJvKGJyYW5jaC0+c3VjY2Vzc29yQmxvY2soMCkpKTsKKyAgICAg
ICAgICAgICAgICAgICAgT3ZlcnJpZGU6Om5vblplcm8oYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDAp
KSk7CiAgICAgICAgICAgICAgICAgYWRkT3ZlcnJpZGUoCiAgICAgICAgICAgICAgICAgICAgIGJs
b2NrLCBicmFuY2gtPmNoaWxkKDApLAotICAgICAgICAgICAgICAgICAgICBPdmVycmlkZTo6Y29u
c3RhbnQoYnJhbmNoLT5zdWNjZXNzb3JCbG9jaygxKSwgMCkpOworICAgICAgICAgICAgICAgICAg
ICBPdmVycmlkZTo6Y29uc3RhbnQoYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDEpLCAwKSk7CiAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIFN3aXRjaDogewogICAgICAgICAg
ICAgICAgIEhhc2hNYXA8QmFzaWNCbG9jayosIHVuc2lnbmVkPiB0YXJnZXRVc2VzOwotICAgICAg
ICAgICAgICAgIGZvciAoY29uc3QgU3dpdGNoQ2FzZSYgc3dpdGNoQ2FzZSA6ICpicmFuY2gtPmFz
PFN3aXRjaFZhbHVlPigpKQorICAgICAgICAgICAgICAgIGZvciAoY29uc3QgU3dpdGNoQ2FzZSYg
c3dpdGNoQ2FzZSA6IGJyYW5jaC0+YXM8U3dpdGNoVmFsdWU+KCktPmNhc2VzKGJsb2NrKSkKICAg
ICAgICAgICAgICAgICAgICAgdGFyZ2V0VXNlcy5hZGQoc3dpdGNoQ2FzZS50YXJnZXRCbG9jaygp
LCAwKS5pdGVyYXRvci0+dmFsdWUrKzsKIAotICAgICAgICAgICAgICAgIGZvciAoY29uc3QgU3dp
dGNoQ2FzZSYgc3dpdGNoQ2FzZSA6ICpicmFuY2gtPmFzPFN3aXRjaFZhbHVlPigpKSB7CisgICAg
ICAgICAgICAgICAgZm9yIChjb25zdCBTd2l0Y2hDYXNlJiBzd2l0Y2hDYXNlIDogYnJhbmNoLT5h
czxTd2l0Y2hWYWx1ZT4oKS0+Y2FzZXMoYmxvY2spKSB7CiAgICAgICAgICAgICAgICAgICAgIGlm
ICh0YXJnZXRVc2VzLmZpbmQoc3dpdGNoQ2FzZS50YXJnZXRCbG9jaygpKS0+dmFsdWUgIT0gMSkK
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCkBAIC0xNTgsOSArMTU3LDggQEAg
cHVibGljOgogCiAgICAgICAgICAgICAgICAgc3dpdGNoICh2YWx1ZS0+b3Bjb2RlKCkpIHsKICAg
ICAgICAgICAgICAgICBjYXNlIEJyYW5jaDogewotICAgICAgICAgICAgICAgICAgICBDb250cm9s
VmFsdWUqIGJyYW5jaCA9IHZhbHVlLT5hczxDb250cm9sVmFsdWU+KCk7CiAgICAgICAgICAgICAg
ICAgICAgIGlmIChnZXRPdmVycmlkZShibG9jaywgYnJhbmNoLT5jaGlsZCgwKSkuaXNOb25aZXJv
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmFuY2gtPmNvbnZlcnRUb0p1bXAoYnJhbmNo
LT50YWtlbigpLmJsb2NrKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUtPnJlcGxh
Y2VXaXRoSnVtcChibG9jaywgYmxvY2stPnRha2VuKCkpOwogICAgICAgICAgICAgICAgICAgICAg
ICAgY2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlck1hY3Jv
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJNYWNy
b3MuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNM
b3dlck1hY3Jvcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsNyArMzQsOSBAQAogI2luY2x1ZGUgIkIz
Q29uc3RQdHJWYWx1ZS5oIgogI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAi
QjNJbnNlcnRpb25TZXRJbmxpbmVzLmgiCisjaW5jbHVkZSAiQjNNZW1vcnlWYWx1ZS5oIgogI2lu
Y2x1ZGUgIkIzUGhhc2VTY29wZS5oIgorI2luY2x1ZGUgIkIzUG9seUp1bXBWYWx1ZS5oIgogI2lu
Y2x1ZGUgIkIzUHJvY2VkdXJlSW5saW5lcy5oIgogI2luY2x1ZGUgIkIzU3dpdGNoVmFsdWUuaCIK
ICNpbmNsdWRlICJCM1Vwc2lsb25WYWx1ZS5oIgpAQCAtMjc1LDggKzI3NywxMDcgQEAgcHJpdmF0
ZToKICAgICAgICAgY29uc3QgVmVjdG9yPFN3aXRjaENhc2U+JiBjYXNlcywgdW5zaWduZWQgc3Rh
cnQsIGJvb2wgaGFyZFN0YXJ0LCB1bnNpZ25lZCBlbmQsCiAgICAgICAgIEJhc2ljQmxvY2sqIGJl
Zm9yZSkKICAgICB7Ci0gICAgICAgIC8vIEZJWE1FOiBBZGQgdGFibGUtYmFzZWQgc3dpdGNoIGxv
d2VyaW5nLgotICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTUxMTQxCisgICAgICAgIFZhbHVlKiBjaGlsZCA9IG1fdmFsdWUtPmNoaWxkKDApOworICAg
ICAgICBUeXBlIHR5cGUgPSBjaGlsZC0+dHlwZSgpOworICAgICAgICBGcmVxdWVudGVkQmxvY2sg
ZmFsbFRocm91Z2ggPSBtX3ZhbHVlLT5hczxTd2l0Y2hWYWx1ZT4oKS0+ZmFsbFRocm91Z2goKTsK
KyAgICAgICAgCisgICAgICAgIC8vIEl0J3MgYSBnb29kIGlkZWEgdG8gdXNlIGEgdGFibGUtYmFz
ZWQgc3dpdGNoIGluIHNvbWUgY2FzZXM6IHRoZSBudW1iZXIgb2YgY2FzZXMgaGFzIHRvIGJlCisg
ICAgICAgIC8vIGxhcmdlIGVub3VnaCBhbmQgdGhleSBoYXZlIHRvIGJlIGRlbnNlIGVub3VnaC4g
VGhpcyBjb3VsZCBwcm9iYWJseSBiZSBpbXByb3ZlZCBhIGxvdC4gRm9yCisgICAgICAgIC8vIGV4
YW1wbGUsIHdlIGNvdWxkIHN0aWxsIHVzZSBhIGp1bXAgdGFibGUgaW4gY2FzZXMgd2hlcmUgdGhl
IGlucHV0cyBhcmUgc3BhcnNlIHNvIGxvbmcgYXMgd2UKKyAgICAgICAgLy8gc2hpZnQgb2ZmIHRo
ZSB1bmludGVyZXN0aW5nIGJpdHMuIE9uIHRoZSBvdGhlciBoYW5kLCBpdCdzIG5vdCBjbGVhciB0
aGF0IHRoaXMgd291bGQKKyAgICAgICAgLy8gYWN0dWFsbHkgYmUgYW55IGJldHRlciB0aGFuIHdo
YXQgd2UgaGF2ZSBkb25lIGhlcmUgYW5kIGl0J3Mgbm90IGNsZWFyIHRoYXQgaXQgd291bGQgYmUK
KyAgICAgICAgLy8gYmV0dGVyIHRoYW4gYSBiaW5hcnkgc3dpdGNoLgorICAgICAgICBjb25zdCB1
bnNpZ25lZCBtaW5DYXNlc0ZvclRhYmxlID0gNzsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgZGVu
c2l0eUxpbWl0ID0gNDsKKyAgICAgICAgaWYgKGVuZCAtIHN0YXJ0ID49IG1pbkNhc2VzRm9yVGFi
bGUpIHsKKyAgICAgICAgICAgIGludDY0X3QgZmlyc3RWYWx1ZSA9IGNhc2VzW3N0YXJ0XS5jYXNl
VmFsdWUoKTsKKyAgICAgICAgICAgIGludDY0X3QgbGFzdFZhbHVlID0gY2FzZXNbZW5kIC0gMV0u
Y2FzZVZhbHVlKCk7CisgICAgICAgICAgICBpZiAoKGxhc3RWYWx1ZSAtIGZpcnN0VmFsdWUgKyAx
KSAvIGNhc2VzLnNpemUoKSA8IGRlbnNpdHlMaW1pdCkgeworICAgICAgICAgICAgICAgIEJhc2lj
QmxvY2sqIHN3aXRjaEJsb2NrID0gbV9ibG9ja0luc2VydGlvblNldC5pbnNlcnRBZnRlcihtX2Js
b2NrKTsKKyAgICAgICAgICAgICAgICBWYWx1ZSogaW5kZXggPSBiZWZvcmUtPmFwcGVuZE5ldzxW
YWx1ZT4oCisgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgU3ViLCBtX29yaWdpbiwgY2hpbGQs
CisgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kSW50Q29uc3RhbnQobV9wcm9jLCBt
X29yaWdpbiwgdHlwZSwgZmlyc3RWYWx1ZSkpOworICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBw
ZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBCcmFuY2gsIG1fb3Jp
Z2luLAorICAgICAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAg
ICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIEFib3ZlLCBtX29yaWdpbiwgaW5kZXgsCisgICAg
ICAgICAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZEludENvbnN0YW50KG1fcHJvYywgbV9v
cmlnaW4sIHR5cGUsIGxhc3RWYWx1ZSAtIGZpcnN0VmFsdWUpKSk7CisgICAgICAgICAgICAgICAg
YmVmb3JlLT5zZXRTdWNjZXNzb3JzKGZhbGxUaHJvdWdoLCBGcmVxdWVudGVkQmxvY2soc3dpdGNo
QmxvY2spKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBzaXplX3QgdGFibGVT
aXplID0gbGFzdFZhbHVlIC0gZmlyc3RWYWx1ZSArIDE7CisgICAgICAgICAgICAgICAgCisgICAg
ICAgICAgICAgICAgaWYgKGluZGV4LT50eXBlKCkgIT0gYmFzZS0+dHlwZSgpKSB7CisgICAgICAg
ICAgICAgICAgICAgIGlmIChpbmRleC0+dHlwZSgpID09IEludDMyKQorICAgICAgICAgICAgICAg
ICAgICAgICAgaW5kZXggPSBzd2l0Y2hCbG9jay0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIFpF
eHQzMiwgbV9vcmlnaW4sIGluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgICAgICAgICAgaW5kZXggPSBzd2l0Y2hCbG9jay0+YXBwZW5kTmV3PFZhbHVlPiht
X3Byb2MsIFRydW5jLCBtX29yaWdpbiwgaW5kZXgpOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBQYXRjaHBvaW50VmFsdWUqIHBhdGNocG9pbnQg
PQorICAgICAgICAgICAgICAgICAgICBzd2l0Y2hCbG9jay0+YXBwZW5kTmV3PFBhdGNocG9pbnRW
YWx1ZT4obV9wcm9jLCBWb2lkLCBtX29yaWdpbik7CisgICAgICAgICAgICAgICAgCisgICAgICAg
ICAgICAgICAgcGF0Y2hwb2ludC0+ZWZmZWN0cy50ZXJtaW5hbCA9IHRydWU7CisgICAgICAgICAg
ICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kU29tZVJlZ2lzdGVyKGluZGV4KTsKKyAgICAgICAgICAg
ICAgICBwYXRjaHBvaW50LT5udW1HUFNjcmF0Y2hSZWdpc3RlcnMrKzsKKyAgICAgICAgICAgICAg
ICAvLyBUZWNobmljYWxseSwgd2UgZG9uJ3QgaGF2ZSB0byBjbG9iYmVyIG1hY3JvIHJlZ2lzdGVy
cyBvbiBYODZfNjQuIFRoYXQncyBwcm9iYWJseQorICAgICAgICAgICAgICAgIC8vIE9LIHRob3Vn
aC4KKyAgICAgICAgICAgICAgICBwYXRjaHBvaW50LT5jbG9iYmVyKFJlZ2lzdGVyU2V0OjptYWNy
b1NjcmF0Y2hSZWdpc3RlcnMoKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAg
Qml0VmVjdG9yIGhhbmRsZWRJbmRpY2VzOworICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQg
aSA9IHN0YXJ0OyBpIDwgZW5kOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgRnJlcXVlbnRl
ZEJsb2NrIGJsb2NrID0gY2FzZXNbaV0udGFyZ2V0KCk7CisgICAgICAgICAgICAgICAgICAgIGlu
dDY0X3QgdmFsdWUgPSBjYXNlc1tpXS5jYXNlVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAg
c3dpdGNoQmxvY2stPmFwcGVuZFN1Y2Nlc3NvcihibG9jayk7CisgICAgICAgICAgICAgICAgICAg
IHNpemVfdCBpbmRleCA9IHZhbHVlIC0gZmlyc3RWYWx1ZTsKKyAgICAgICAgICAgICAgICAgICAg
QVNTRVJUKCFoYW5kbGVkSW5kaWNlcy5nZXQoaW5kZXgpKTsKKyAgICAgICAgICAgICAgICAgICAg
aGFuZGxlZEluZGljZXMuc2V0KGluZGV4KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgCisgICAgICAgICAgICAgICAgYm9vbCBoYXNVbmhhbmRsZWRJbmRleCA9IGZhbHNlOwor
ICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB0YWJsZVNpemU7ICsraSkg
eworICAgICAgICAgICAgICAgICAgICBpZiAoIWhhbmRsZWRJbmRpY2VzLmdldChpKSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgaGFzVW5oYW5kbGVkSW5kZXggPSB0cnVlOworICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGhhc1VuaGFuZGxl
ZEluZGV4KQorICAgICAgICAgICAgICAgICAgICBzd2l0Y2hCbG9jay0+YXBwZW5kU3VjY2Vzc29y
KGZhbGxUaHJvdWdoKTsKKworICAgICAgICAgICAgICAgIHBhdGNocG9pbnQtPnNldEdlbmVyYXRv
cigKKyAgICAgICAgICAgICAgICAgICAgWz1dIChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU3Rh
Y2ttYXBHZW5lcmF0aW9uUGFyYW1zJiBwYXJhbXMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IEFsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSBhbGxvd1NjcmF0Y2goaml0KTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJs
ZXJDb2RlUHRyKiBqdW1wVGFibGUgPSBwYXJhbXMucHJvYygpLmFkZERhdGFTZWN0aW9uKAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihNYWNyb0Fzc2VtYmxlckNvZGVQdHIpICog
dGFibGVTaXplKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAg
ICAgICAgR1BSUmVnIGluZGV4ID0gcGFyYW1zWzBdLmdwcigpOworICAgICAgICAgICAgICAgICAg
ICAgICAgR1BSUmVnIHNjcmF0Y2ggPSBwYXJhbXMuZ3BTY3JhdGNoKDApOworICAgICAgICAgICAg
ICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBqaXQubW92ZShUcnVzdGVkSW1t
UHRyKGp1bXBUYWJsZSksIHNjcmF0Y2gpOworICAgICAgICAgICAgICAgICAgICAgICAgaml0Lmp1
bXAoQ0NhbGxIZWxwZXJzOjpCYXNlSW5kZXgoc2NyYXRjaCwgaW5kZXgsIENDYWxsSGVscGVyczo6
dGltZXNQdHIoKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAg
ICAgICAgICBWZWN0b3I8Qm94PENDYWxsSGVscGVyczo6TGFiZWw+PiBsYWJlbHMgPSBwYXJhbXMu
c3VjY2Vzc29yTGFiZWxzKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGppdC5hZGRMaW5rVGFzaygKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbPV0gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKGhhc1VuaGFuZGxlZEluZGV4KSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgZmFsbFRocm91Z2ggPQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmtCdWZmZXIubG9jYXRpb25PZigq
bGFiZWxzLmxhc3QoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSB0YWJsZVNpemU7IGktLTspCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAganVtcFRhYmxlW2ldID0gZmFsbFRocm91Z2g7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxhYmVsSW5kZXggPSAwOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIHRhYmxlSW5kZXgg
OiBoYW5kbGVkSW5kaWNlcykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
anVtcFRhYmxlW3RhYmxlSW5kZXhdID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBsaW5rQnVmZmVyLmxvY2F0aW9uT2YoKmxhYmVsc1tsYWJlbEluZGV4KytdKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIC8vIFNlZSBjb21t
ZW50cyBpbiBqaXQvQmluYXJ5U3dpdGNoLmNwcCBmb3IgYSBqdXN0aWZpY2F0aW9uIG9mIHRoaXMg
YWxnb3JpdGhtLiBUaGUgb25seQogICAgICAgICAvLyB0aGluZyB3ZSBkbyBkaWZmZXJlbnRseSBp
cyB0aGF0IHdlIGRvbid0IHVzZSByYW5kb21uZXNzLgpAQCAtMzA0LDI1ICs0MDUsMjMgQEAgcHJp
dmF0ZToKICAgICAgICAgICAgIAogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IGxpbWl0OyArK2kpIHsKICAgICAgICAgICAgICAgICBCYXNpY0Jsb2NrKiBuZXh0Q2hlY2sgPSBt
X2Jsb2NrSW5zZXJ0aW9uU2V0Lmluc2VydEFmdGVyKG1fYmxvY2spOwotICAgICAgICAgICAgICAg
IGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgICAgICAgICAgYmVmb3Jl
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIEJyYW5jaCwg
bV9vcmlnaW4sCiAgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PFZhbHVlPigK
LSAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgRXF1YWwsIG1fb3JpZ2luLCBtX3ZhbHVl
LT5jaGlsZCgwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgRXF1YWwsIG1fb3Jp
Z2luLCBjaGlsZCwKICAgICAgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kSW50Q29u
c3RhbnQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwgbV92
YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNl
c1tzdGFydCArIGldLmNhc2VWYWx1ZSgpKSksCi0gICAgICAgICAgICAgICAgICAgIGNhc2VzW3N0
YXJ0ICsgaV0udGFyZ2V0KCksIEZyZXF1ZW50ZWRCbG9jayhuZXh0Q2hlY2spKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLCB0eXBlLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNhc2VzW3N0YXJ0ICsgaV0uY2FzZVZhbHVlKCkpKSk7CisgICAgICAg
ICAgICAgICAgYmVmb3JlLT5zZXRTdWNjZXNzb3JzKGNhc2VzW3N0YXJ0ICsgaV0udGFyZ2V0KCks
IEZyZXF1ZW50ZWRCbG9jayhuZXh0Q2hlY2spKTsKIAogICAgICAgICAgICAgICAgIGJlZm9yZSA9
IG5leHRDaGVjazsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgaWYgKGFsbENvbnNlY3V0
aXZlKSB7Ci0gICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
LSAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBKdW1wLCBtX29yaWdpbiwgY2FzZXNbZW5kIC0g
MV0udGFyZ2V0KCkpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBiZWZv
cmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAotICAgICAgICAgICAgICAgICAgICBtX3Byb2Ms
IEp1bXAsIG1fb3JpZ2luLCBtX3ZhbHVlLT5hczxTd2l0Y2hWYWx1ZT4oKS0+ZmFsbFRocm91Z2go
KSk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4o
bV9wcm9jLCBKdW1wLCBtX29yaWdpbik7CisgICAgICAgICAgICBpZiAoYWxsQ29uc2VjdXRpdmUp
CisgICAgICAgICAgICAgICAgYmVmb3JlLT5zZXRTdWNjZXNzb3JzKGNhc2VzW2VuZCAtIDFdLnRh
cmdldCgpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBiZWZvcmUtPnNldFN1
Y2Nlc3NvcnMoZmFsbFRocm91Z2gpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAK
QEAgLTMzMSwxNCArNDMwLDE0IEBAIHByaXZhdGU6CiAgICAgICAgIEJhc2ljQmxvY2sqIGxlZnQg
PSBtX2Jsb2NrSW5zZXJ0aW9uU2V0Lmluc2VydEFmdGVyKG1fYmxvY2spOwogICAgICAgICBCYXNp
Y0Jsb2NrKiByaWdodCA9IG1fYmxvY2tJbnNlcnRpb25TZXQuaW5zZXJ0QWZ0ZXIobV9ibG9jayk7
CiAKLSAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgYmVm
b3JlLT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgbV9wcm9jLCBCcmFuY2gsIG1fb3Jp
Z2luLAogICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+KAotICAgICAgICAgICAg
ICAgIG1fcHJvYywgTGVzc1RoYW4sIG1fb3JpZ2luLCBtX3ZhbHVlLT5jaGlsZCgwKSwKKyAgICAg
ICAgICAgICAgICBtX3Byb2MsIExlc3NUaGFuLCBtX29yaWdpbiwgY2hpbGQsCiAgICAgICAgICAg
ICAgICAgYmVmb3JlLT5hcHBlbmRJbnRDb25zdGFudCgKLSAgICAgICAgICAgICAgICAgICAgbV9w
cm9jLCBtX29yaWdpbiwgbV92YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSwKLSAgICAgICAgICAgICAg
ICAgICAgY2FzZXNbbWVkaWFuSW5kZXhdLmNhc2VWYWx1ZSgpKSksCi0gICAgICAgICAgICBGcmVx
dWVudGVkQmxvY2sobGVmdCksIEZyZXF1ZW50ZWRCbG9jayhyaWdodCkpOworICAgICAgICAgICAg
ICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLCB0eXBlLAorICAgICAgICAgICAgICAgICAgICBjYXNl
c1ttZWRpYW5JbmRleF0uY2FzZVZhbHVlKCkpKSk7CisgICAgICAgIGJlZm9yZS0+c2V0U3VjY2Vz
c29ycyhGcmVxdWVudGVkQmxvY2sobGVmdCksIEZyZXF1ZW50ZWRCbG9jayhyaWdodCkpOwogCiAg
ICAgICAgIHJlY3Vyc2l2ZWx5QnVpbGRTd2l0Y2goY2FzZXMsIHN0YXJ0LCBoYXJkU3RhcnQsIG1l
ZGlhbkluZGV4LCBsZWZ0KTsKICAgICAgICAgcmVjdXJzaXZlbHlCdWlsZFN3aXRjaChjYXNlcywg
bWVkaWFuSW5kZXgsIHRydWUsIGVuZCwgcmlnaHQpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTUsNyAr
MTU1LDYgQEAgcHVibGljOgogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAvLyBNYWtlIHN1
cmUgdGhhdCB0aGUgc3VjY2Vzc29ycyBhcmUgc2V0IHVwIGNvcnJlY3RseS4KLSAgICAgICAgICAg
IEFTU0VSVChibG9jay0+c3VjY2Vzc29ycygpLnNpemUoKSA8PSAyKTsKICAgICAgICAgICAgIGZv
ciAoQjM6OkZyZXF1ZW50ZWRCbG9jayBzdWNjZXNzb3IgOiBibG9jay0+c3VjY2Vzc29ycygpKSB7
CiAgICAgICAgICAgICAgICAgbV9ibG9ja1RvQmxvY2tbYmxvY2tdLT5zdWNjZXNzb3JzKCkuYXBw
ZW5kKAogICAgICAgICAgICAgICAgICAgICBBaXI6OkZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrVG9C
bG9ja1tzdWNjZXNzb3IuYmxvY2soKV0sIHN1Y2Nlc3Nvci5mcmVxdWVuY3koKSkpOwpAQCAtMjQ0
MSw2ICsyNDQwLDE2IEBAIHByaXZhdGU6CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICBjYXNlIEIzOjpQb2x5SnVtcDog
eworICAgICAgICAgICAgQXJnUHJvbWlzZSBhZGRyID0gbG9hZFByb21pc2UobV92YWx1ZS0+Y2hp
bGQoMCkpOworICAgICAgICAgICAgaWYgKGlzVmFsaWRGb3JtKEFpcjo6UG9seUp1bXAsIGFkZHIu
a2luZCgpKSkgeworICAgICAgICAgICAgICAgIGFwcGVuZChBaXI6OlBvbHlKdW1wLCBhZGRyLmNv
bnN1bWUoKnRoaXMpKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICBhcHBlbmQoQWlyOjpQb2x5SnVtcCwgdG1wKG1fdmFsdWUtPmNoaWxkKDApKSk7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KIAogICAgICAgICBjYXNlIEIzOjpPb3Bz
OiB7CiAgICAgICAgICAgICBhcHBlbmQoQWlyOjpPb3BzKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM01hdGhFeHRyYXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM01hdGhFeHRyYXMuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNNYXRoRXh0cmFzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMyw3ICsz
Myw2IEBACiAjaW5jbHVkZSAiQjNDb25zdDMyVmFsdWUuaCIKICNpbmNsdWRlICJCM0NvbnN0RG91
YmxlVmFsdWUuaCIKICNpbmNsdWRlICJCM0NvbnN0UHRyVmFsdWUuaCIKLSNpbmNsdWRlICJCM0Nv
bnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzVXBzaWxvblZhbHVlLmgiCiAjaW5jbHVkZSAiQjNW
YWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJNYXRoQ29tbW9uLmgiCkBAIC01MiwxMCArNTEsOCBA
QCBzdGQ6OnBhaXI8QmFzaWNCbG9jayosIFZhbHVlKj4gcG93RG91YmxlCiAgICAgVmFsdWUqIHNo
b3VsZEdvU2xvd1BhdGggPSBzdGFydC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jZWR1cmUsIEFib3Zl
LCBvcmlnaW4sCiAgICAgICAgIHksCiAgICAgICAgIHN0YXJ0LT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jZWR1cmUsIG9yaWdpbiwgbWF4RXhwb25lbnRGb3JJbnRlZ2VyTWF0aFBvdykpOwot
ICAgIHN0YXJ0LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgcHJvY2VkdXJlLCBC
cmFuY2gsIG9yaWdpbiwKLSAgICAgICAgc2hvdWxkR29TbG93UGF0aCwKLSAgICAgICAgRnJlcXVl
bnRlZEJsb2NrKGZ1bmN0aW9uQ2FsbENhc2UpLCBGcmVxdWVudGVkQmxvY2sobG9vcFByZUhlYWRl
ckNhc2UpKTsKKyAgICBzdGFydC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jZWR1cmUsIEJyYW5jaCwg
b3JpZ2luLCBzaG91bGRHb1Nsb3dQYXRoKTsKKyAgICBzdGFydC0+c2V0U3VjY2Vzc29ycyhGcmVx
dWVudGVkQmxvY2soZnVuY3Rpb25DYWxsQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhsb29wUHJlSGVh
ZGVyQ2FzZSkpOwogCiAgICAgLy8gRnVuY3Rpb24gY2FsbC4KICAgICBWYWx1ZSogeUFzRG91Ymxl
ID0gZnVuY3Rpb25DYWxsQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihwcm9jZWR1cmUsIElUb0QsIG9y
aWdpbiwgeSk7CkBAIC02NSw3ICs2Miw4IEBAIHN0ZDo6cGFpcjxCYXNpY0Jsb2NrKiwgVmFsdWUq
PiBwb3dEb3VibGUKICAgICAgICAgZnVuY3Rpb25DYWxsQ2FzZS0+YXBwZW5kTmV3PENvbnN0UHRy
VmFsdWU+KHByb2NlZHVyZSwgb3JpZ2luLCBiaXR3aXNlX2Nhc3Q8dm9pZCo+KHBvd0RvdWJsZSkp
LAogICAgICAgICB4LCB5QXNEb3VibGUpOwogICAgIFVwc2lsb25WYWx1ZSogcG93UmVzdWx0VXBz
aWxvbiA9IGZ1bmN0aW9uQ2FsbENhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2NlZHVy
ZSwgb3JpZ2luLCBwb3dSZXN1bHQpOwotICAgIGZ1bmN0aW9uQ2FsbENhc2UtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2NlZHVyZSwgSnVtcCwgb3JpZ2luLCBGcmVxdWVudGVkQmxvY2soY29u
dGludWF0aW9uKSk7CisgICAgZnVuY3Rpb25DYWxsQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
ZWR1cmUsIEp1bXAsIG9yaWdpbik7CisgICAgZnVuY3Rpb25DYWxsQ2FzZS0+c2V0U3VjY2Vzc29y
cyhGcmVxdWVudGVkQmxvY2soY29udGludWF0aW9uKSk7CiAKICAgICAvLyBMb29wIHByZS1oZWFk
ZXIuCiAgICAgVmFsdWUqIGluaXRpYWxSZXN1bHQgPSBsb29wUHJlSGVhZGVyQ2FzZS0+YXBwZW5k
TmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2NlZHVyZSwgb3JpZ2luLCAxLik7CkBAIC03Myw3ICs3
MSw4IEBAIHN0ZDo6cGFpcjxCYXNpY0Jsb2NrKiwgVmFsdWUqPiBwb3dEb3VibGUKICAgICBVcHNp
bG9uVmFsdWUqIGluaXRpYWxSZXN1bHRWYWx1ZSA9IGxvb3BQcmVIZWFkZXJDYXNlLT5hcHBlbmRO
ZXc8VXBzaWxvblZhbHVlPihwcm9jZWR1cmUsIG9yaWdpbiwgaW5pdGlhbFJlc3VsdCk7CiAgICAg
VXBzaWxvblZhbHVlKiBpbml0aWFsU3F1YXJlZElucHV0ID0gbG9vcFByZUhlYWRlckNhc2UtPmFw
cGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2NlZHVyZSwgb3JpZ2luLCB4KTsKICAgICBVcHNpbG9u
VmFsdWUqIGluaXRpYWxMb29wQ291bnRlciA9IGxvb3BQcmVIZWFkZXJDYXNlLT5hcHBlbmROZXc8
VXBzaWxvblZhbHVlPihwcm9jZWR1cmUsIG9yaWdpbiwgeSk7Ci0gICAgbG9vcFByZUhlYWRlckNh
c2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2NlZHVyZSwgSnVtcCwgb3JpZ2luLCBGcmVx
dWVudGVkQmxvY2sobG9vcFRlc3RGb3JFdmVuQ2FzZSkpOworICAgIGxvb3BQcmVIZWFkZXJDYXNl
LT5hcHBlbmROZXc8VmFsdWU+KHByb2NlZHVyZSwgSnVtcCwgb3JpZ2luKTsKKyAgICBsb29wUHJl
SGVhZGVyQ2FzZS0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2sobG9vcFRlc3RGb3JFdmVu
Q2FzZSkpOwogCiAgICAgLy8gVGVzdCBpZiB3aGF0IGlzIGxlZnQgb2YgdGhlIGNvdW50ZXIgaXMg
ZXZlbi4KICAgICBWYWx1ZSogaW5Mb29wQ291bnRlciA9IGxvb3BUZXN0Rm9yRXZlbkNhc2UtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvY2VkdXJlLCBQaGksIEludDMyLCBvcmlnaW4pOwpAQCAtODEsMTAg
KzgwLDggQEAgc3RkOjpwYWlyPEJhc2ljQmxvY2sqLCBWYWx1ZSo+IHBvd0RvdWJsZQogICAgIFZh
bHVlKiBsYXN0Q291bnRlckJpdCA9IGxvb3BUZXN0Rm9yRXZlbkNhc2UtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvY2VkdXJlLCBCaXRBbmQsIG9yaWdpbiwKICAgICAgICAgaW5Mb29wQ291bnRlciwKICAg
ICAgICAgbG9vcFRlc3RGb3JFdmVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvY2Vk
dXJlLCBvcmlnaW4sIDEpKTsKLSAgICBsb29wVGVzdEZvckV2ZW5DYXNlLT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKLSAgICAgICAgcHJvY2VkdXJlLCBCcmFuY2gsIG9yaWdpbiwKLSAgICAgICAg
bGFzdENvdW50ZXJCaXQsCi0gICAgICAgIEZyZXF1ZW50ZWRCbG9jayhsb29wT2RkKSwgRnJlcXVl
bnRlZEJsb2NrKGxvb3BFdmVuT2RkKSk7CisgICAgbG9vcFRlc3RGb3JFdmVuQ2FzZS0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jZWR1cmUsIEJyYW5jaCwgb3JpZ2luLCBsYXN0Q291bnRlckJpdCk7Cisg
ICAgbG9vcFRlc3RGb3JFdmVuQ2FzZS0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2sobG9v
cE9kZCksIEZyZXF1ZW50ZWRCbG9jayhsb29wRXZlbk9kZCkpOwogCiAgICAgLy8gQ291bnRlciBp
cyBvZGQuCiAgICAgVmFsdWUqIGluTG9vcFJlc3VsdCA9IGxvb3BPZGQtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvY2VkdXJlLCBQaGksIERvdWJsZSwgb3JpZ2luKTsKQEAgLTk0LDcgKzkxLDggQEAgc3Rk
OjpwYWlyPEJhc2ljQmxvY2sqLCBWYWx1ZSo+IHBvd0RvdWJsZQogICAgIHVwZGF0ZWRMb29wUmVz
dWx0VXBzaWxvbi0+c2V0UGhpKGluTG9vcFJlc3VsdCk7CiAgICAgVXBzaWxvblZhbHVlKiB1cGRh
dGVkTG9vcFJlc3VsdCA9IGxvb3BPZGQtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2NlZHVy
ZSwgb3JpZ2luLCB1cGRhdGVkUmVzdWx0KTsKIAotICAgIGxvb3BPZGQtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2NlZHVyZSwgSnVtcCwgb3JpZ2luLCBGcmVxdWVudGVkQmxvY2sobG9vcEV2
ZW5PZGQpKTsKKyAgICBsb29wT2RkLT5hcHBlbmROZXc8VmFsdWU+KHByb2NlZHVyZSwgSnVtcCwg
b3JpZ2luKTsKKyAgICBsb29wT2RkLT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhsb29w
RXZlbk9kZCkpOwogCiAgICAgLy8gRXZlbiB2YWx1ZSBhbmQgZm9sbG93aW5nIHRoZSBPZGQuCiAg
ICAgVmFsdWUqIHNxdWFyZWRJbnB1dCA9IGxvb3BFdmVuT2RkLT5hcHBlbmROZXc8VmFsdWU+KHBy
b2NlZHVyZSwgTXVsLCBvcmlnaW4sIGluTG9vcFNxdWFyZWRJbnB1dCwgaW5Mb29wU3F1YXJlZElu
cHV0KTsKQEAgLTEwOSwxMCArMTA3LDggQEAgc3RkOjpwYWlyPEJhc2ljQmxvY2sqLCBWYWx1ZSo+
IHBvd0RvdWJsZQogICAgIGluaXRpYWxMb29wQ291bnRlci0+c2V0UGhpKGluTG9vcENvdW50ZXIp
OwogICAgIHVwZGF0ZWRDb3VudGVyVXBzaWxvbi0+c2V0UGhpKGluTG9vcENvdW50ZXIpOwogCi0g
ICAgbG9vcEV2ZW5PZGQtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAotICAgICAgICBwcm9jZWR1
cmUsIEJyYW5jaCwgb3JpZ2luLAotICAgICAgICB1cGRhdGVkQ291bnRlciwKLSAgICAgICAgRnJl
cXVlbnRlZEJsb2NrKGxvb3BUZXN0Rm9yRXZlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soY29udGlu
dWF0aW9uKSk7CisgICAgbG9vcEV2ZW5PZGQtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvY2VkdXJlLCBC
cmFuY2gsIG9yaWdpbiwgdXBkYXRlZENvdW50ZXIpOworICAgIGxvb3BFdmVuT2RkLT5zZXRTdWNj
ZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhsb29wVGVzdEZvckV2ZW5DYXNlKSwgRnJlcXVlbnRlZEJs
b2NrKGNvbnRpbnVhdGlvbikpOwogCiAgICAgLy8gSW5saW5lIGxvb3AuCiAgICAgVmFsdWUqIGZp
bmFsUmVzdWx0UGhpID0gY29udGludWF0aW9uLT5hcHBlbmROZXc8VmFsdWU+KHByb2NlZHVyZSwg
UGhpLCBEb3VibGUsIG9yaWdpbik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNP
cGNvZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29k
ZS5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09w
Y29kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5MCw2ICsyOTAsOSBAQCB2b2lkIHByaW50SW50
ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgT3BjCiAgICAgY2FzZSBTd2l0Y2g6CiAgICAgICAgIG91
dC5wcmludCgiU3dpdGNoIik7CiAgICAgICAgIHJldHVybjsKKyAgICBjYXNlIFBvbHlKdW1wOgor
ICAgICAgICBvdXQucHJpbnQoIlBvbHlKdW1wIik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNl
IFJldHVybjoKICAgICAgICAgb3V0LnByaW50KCJSZXR1cm4iKTsKICAgICAgICAgcmV0dXJuOwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmgJKHJldmlzaW9uIDIwMjgwOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
MDcsMjEgKzIwNywyMSBAQCBlbnVtIE9wY29kZSA6IGludDE2X3QgewogICAgIFVwc2lsb24sIC8v
IFRoaXMgdXNlcyB0aGUgVXBzaWxvblZhbHVlIGNsYXNzLgogICAgIFBoaSwKIAotICAgIC8vIEp1
bXAuIFVzZXMgdGhlIENvbnRyb2xWYWx1ZSBjbGFzcy4KKyAgICAvLyBKdW1wLgogICAgIEp1bXAs
CiAgICAgCi0gICAgLy8gUG9seW1vcnBoaWMgYnJhbmNoLCB1c2FibGUgd2l0aCBhbnkgaW50ZWdl
ciB0eXBlLiBCcmFuY2hlcyBpZiBub3QgZXF1YWwgdG8gemVyby4gVXNlcyB0aGUKLSAgICAvLyBD
b250cm9sVmFsdWUgY2xhc3MsIHdpdGggdGhlIDAtaW5kZXggc3VjY2Vzc29yIGJlaW5nIHRoZSB0
cnVlIHN1Y2Nlc3Nvci4KKyAgICAvLyBQb2x5bW9ycGhpYyBicmFuY2gsIHVzYWJsZSB3aXRoIGFu
eSBpbnRlZ2VyIHR5cGUuIEJyYW5jaGVzIGlmIG5vdCBlcXVhbCB0byB6ZXJvLiBUaGUgMC1pbmRl
eAorICAgIC8vIHN1Y2Nlc3NvciBpcyB0aGUgdHJ1ZSBzdWNjZXNzb3IuCiAgICAgQnJhbmNoLAog
CiAgICAgLy8gU3dpdGNoLiBTd2l0Y2hlcyBvdmVyIGVpdGhlciBJbnQzMiBvciBJbnQ2NC4gVXNl
cyB0aGUgU3dpdGNoVmFsdWUgY2xhc3MuCiAgICAgU3dpdGNoLAotCisgICAgCiAgICAgLy8gUmV0
dXJuLiBOb3RlIHRoYXQgQjMgcHJvY2VkdXJlcyBkb24ndCBrbm93IHRoZWlyIHJldHVybiB0eXBl
LCBzbyB0aGlzIGNhbiBqdXN0IHJldHVybiBhbnkKLSAgICAvLyB0eXBlLiBVc2VzIHRoZSBDb250
cm9sVmFsdWUgY2xhc3MuCisgICAgLy8gdHlwZS4KICAgICBSZXR1cm4sCiAKLSAgICAvLyBUaGlz
IGlzIGEgdGVybWluYWwgdGhhdCBpbmRpY2F0ZXMgdGhhdCB3ZSB3aWxsIG5ldmVyIGdldCBoZXJl
LiBVc2VzIHRoZSBDb250cm9sVmFsdWUgY2xhc3MuCisgICAgLy8gVGhpcyBpcyBhIHRlcm1pbmFs
IHRoYXQgaW5kaWNhdGVzIHRoYXQgd2Ugd2lsbCBuZXZlciBnZXQgaGVyZS4KICAgICBPb3BzCiB9
OwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQb2x5SnVtcFZhbHVlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQb2x5SnVtcFZhbHVlLmNw
cAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BvbHlKdW1wVmFs
dWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkIzUG9seUp1bXBWYWx1ZS5oIgorCisjaWYgRU5BQkxFKEIzX0pJVCkKKworI2luY2x1ZGUg
IkIzQmFzaWNCbG9jay5oIgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKKworUG9s
eUp1bXBWYWx1ZTo6flBvbHlKdW1wVmFsdWUoKQoreworfQorCit2b2lkIFBvbHlKdW1wVmFsdWU6
OmFwcGVuZFN1Y2Nlc3Nvcihjb25zdCBGcmVxdWVudGVkQmxvY2smIGJsb2NrKQoreworICAgIG1f
c3VjY2Vzc29ycy5hcHBlbmQoYmxvY2spOworfQorCit2b2lkIFBvbHlKdW1wVmFsdWU6OnNldENh
bGxiYWNrVGFzayhSZWZQdHI8U2hhcmVkVGFzazxDYWxsYmFja0Z1bmN0aW9uVHlwZT4+IHRhc2sp
Cit7CisgICAgbV90YXNrID0gdGFzazsKK30KKworYm9vbCBQb2x5SnVtcFZhbHVlOjppc0Nsb25l
YWJsZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIFBvbHlKdW1wVmFs
dWU6OmR1bXBNZXRhKENvbW1hUHJpbnRlciYgY29tbWEsIFByaW50U3RyZWFtJiBvdXQpIGNvbnN0
Cit7CisgICAgQ29udHJvbFZhbHVlOjpkdW1wTWV0YShjb21tYSwgb3V0KTsKKyAgICBvdXQucHJp
bnQoY29tbWEsICJ0YXNrID0gIiwgUmF3UG9pbnRlcihtX3Rhc2suZ2V0KCkpKTsKK30KKworVmFs
dWUqIFBvbHlKdW1wVmFsdWU6OmNsb25lSW1wbCgpIGNvbnN0Cit7CisgICAgZGF0YUxvZygiRkFU
QUw6IEF0dGVtcHQgdG8gY2xvbmUgbm9uLWNsb25lYWJsZSBQb2x5SnVtcFZhbHVlIVxuIik7Cisg
ICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKworUG9seUp1bXBWYWx1ZTo6UG9s
eUp1bXBWYWx1ZShPcmlnaW4gb3JpZ2luLCBWYWx1ZSogY2hpbGQpCisgICAgOiBDb250cm9sVmFs
dWUoUG9seUp1bXAsIFZvaWQsIG9yaWdpbiwgY2hpbGQpCit7Cit9CisKK30gfSAvLyBuYW1lc3Bh
Y2UgSlNDOjpCMworCisjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKKwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzUG9seUp1bXBWYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM1BvbHlKdW1wVmFsdWUuaAkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BvbHlKdW1wVmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICov
CisKKyNpZm5kZWYgQjNQb2x5SnVtcFZhbHVlX2gKKyNkZWZpbmUgQjNQb2x5SnVtcFZhbHVlX2gK
KworI2lmIEVOQUJMRShCM19KSVQpCisKKyNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgorI2lu
Y2x1ZGUgPHd0Zi9TaGFyZWRUYXNrLmg+CisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMg
eworCitjbGFzcyBQb2x5SnVtcFZhbHVlIDogcHVibGljIENvbnRyb2xWYWx1ZSB7CitwdWJsaWM6
CisgICAgc3RhdGljIGJvb2wgYWNjZXB0cyhPcGNvZGUgb3Bjb2RlKSB7IHJldHVybiBvcGNvZGUg
PT0gUG9seUp1bXA7IH0KKyAgICAKKyAgICB+UG9seUp1bXBWYWx1ZSgpOworICAgIAorICAgIEpT
X0VYUE9SVF9QUklWQVRFIHZvaWQgYXBwZW5kU3VjY2Vzc29yKGNvbnN0IEZyZXF1ZW50ZWRCbG9j
ayYpOworICAgIAorICAgIHR5cGVkZWYgdm9pZCBDYWxsYmFja0Z1bmN0aW9uVHlwZShjb25zdCBW
ZWN0b3I8TWFjcm9Bc3NlbWJsZXJDb2RlUHRyPiYpOworICAgIAorICAgIEpTX0VYUE9SVF9QUklW
QVRFIHZvaWQgc2V0Q2FsbGJhY2tUYXNrKFJlZlB0cjxTaGFyZWRUYXNrPENhbGxiYWNrRnVuY3Rp
b25UeXBlPj4gdGFzayk7CisgICAgCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuYz4KKyAgICB2
b2lkIHNldENhbGxiYWNrKGNvbnN0IEZ1bmMmIGZ1bmMpCisgICAgeworICAgICAgICBzZXRDYWxs
YmFja1Rhc2soY3JlYXRlU2hhcmVkVGFzazxDYWxsYmFja0Z1bmN0aW9uVHlwZT4oZnVuYykpOwor
ICAgIH0KKyAgICAKKyAgICBTaGFyZWRUYXNrPENhbGxiYWNrRnVuY3Rpb25UeXBlPiogY2FsbGJh
Y2tUYXNrKCkgY29uc3QgeyByZXR1cm4gbV90YXNrLmdldCgpOyB9CisgICAgCisgICAgYm9vbCBp
c0Nsb25lYWJsZSgpIGNvbnN0IG92ZXJyaWRlOworCitwcm90ZWN0ZWQ6CisgICAgdm9pZCBkdW1w
TWV0YShDb21tYVByaW50ZXImLCBQcmludFN0cmVhbSYpIGNvbnN0IG92ZXJyaWRlOworICAgIAor
ICAgIFZhbHVlKiBjbG9uZUltcGwoKSBjb25zdCBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICBm
cmllbmQgY2xhc3MgUHJvY2VkdXJlOworICAgIAorICAgIEpTX0VYUE9SVF9QUklWQVRFIFBvbHlK
dW1wVmFsdWUoT3JpZ2luLCBWYWx1ZSogY2hpbGQpOworICAgIAorICAgIFJlZlB0cjxTaGFyZWRU
YXNrPENhbGxiYWNrRnVuY3Rpb25UeXBlPj4gbV90YXNrOworfTsKKworfSB9IC8vIG5hbWVzcGFj
ZSBKU0M6OkIzCisKKyNlbmRpZiAvLyBFTkFCTEUoQjNfSklUKQorCisjZW5kaWYgLy8gQjNQb2x5
SnVtcFZhbHVlX2gKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUu
Y3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9j
ZWR1cmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04Myw2ICs4Myw4IEBAIFZhcmlhYmxlKiBQcm9j
ZWR1cmU6OmFkZFZhcmlhYmxlKFR5cGUgdHkKIAogVmFsdWUqIFByb2NlZHVyZTo6Y2xvbmUoVmFs
dWUqIHZhbHVlKQogeworICAgIEFTU0VSVCh2YWx1ZS0+aXNDbG9uZWFibGUoKSk7CisgICAgCiAg
ICAgc3RkOjp1bmlxdWVfcHRyPFZhbHVlPiBjbG9uZSh2YWx1ZS0+Y2xvbmVJbXBsKCkpOwogICAg
IGNsb25lLT5tX2luZGV4ID0gVUlOVF9NQVg7CiAgICAgY2xvbmUtPm93bmVyID0gbnVsbHB0cjsK
QEAgLTE0OCwzMSArMTUwLDYgQEAgdm9pZCBQcm9jZWR1cmU6OnJlc2V0VmFsdWVPd25lcnMoKQog
CiB2b2lkIFByb2NlZHVyZTo6cmVzZXRSZWFjaGFiaWxpdHkoKQogewotICAgIGlmIChzaG91bGRW
YWxpZGF0ZUlSKCkpIHsKLSAgICAgICAgLy8gVmFsaWRhdGUgdGhlIGJhc2ljIHByb3BlcnRpZXMg
dGhhdCB3ZSBuZWVkIGZvciByZXNldHRpbmcgcmVhY2hhYmlsaXR5LiBXZSBvZnRlbiByZXNldAot
ICAgICAgICAvLyByZWFjaGFiaWxpdHkgYmVmb3JlIElSIHZhbGlkYXRpb24sIHNvIHdpdGhvdXQg
dGhpcyBtaW5pLXZhbGlkYXRpb24sIHlvdSB3b3VsZCBjcmFzaCBpbnNpZGUKLSAgICAgICAgLy8g
QjM6OnJlc2V0UmVhY2hhYmlsaXR5KCkgd2l0aG91dCBnZXR0aW5nIGFueSBJUiBkdW1wLgotCi0g
ICAgICAgIEJhc2ljQmxvY2sqIGJhZEJsb2NrID0gbnVsbHB0cjsKLSAgICAgICAgZm9yIChCYXNp
Y0Jsb2NrKiBibG9jayA6ICp0aGlzKSB7Ci0gICAgICAgICAgICBpZiAoIWJsb2NrLT5zaXplKCkp
IHsKLSAgICAgICAgICAgICAgICBiYWRCbG9jayA9IGJsb2NrOwotICAgICAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAoIWJsb2NrLT5sYXN0KCktPmFz
PENvbnRyb2xWYWx1ZT4oKSkgewotICAgICAgICAgICAgICAgIGJhZEJsb2NrID0gYmxvY2s7Ci0g
ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAg
ICBpZiAoYmFkQmxvY2spIHsKLSAgICAgICAgICAgIGRhdGFMb2coIkZBVEFMOiBJbnZhbGlkIGJh
c2ljIGJsb2NrICIsICpiYWRCbG9jaywgIiB3aGlsZSBydW5uaW5nIFByb2NlZHVyZTo6cmVzZXRS
ZWFjaGFiaWxpdHkoKS5cbiIpOwotICAgICAgICAgICAgZGF0YUxvZygqdGhpcyk7Ci0gICAgICAg
ICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICB9Ci0gICAgfQotICAg
IAogICAgIHJlY29tcHV0ZVByZWRlY2Vzc29ycyhtX2Jsb2Nrcyk7CiAgICAgCiAgICAgLy8gVGhl
IGNvbW1vbiBjYXNlIGlzIHRoYXQgdGhpcyBkb2VzIG5vdCBmaW5kIGFueSBkZWFkIGJsb2Nrcy4K
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5oCShyZXZpc2lvbiAyMDI4
MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuaAkod29ya2luZyBj
b3B5KQpAQCAtMTAxLDYgKzEwMSw3IEBAIHB1YmxpYzoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBW
YWx1ZVR5cGUsIHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KICAgICBWYWx1ZVR5cGUqIGFkZChBcmd1
bWVudHMuLi4pOwogCisgICAgLy8gTm90ZSB0aGF0IG5vdCBhbGwgdmFsdWVzIGFyZSBjbG9uZWFi
bGUuIENoZWNrIFZhbHVlOjppc0Nsb25lYWJsZSgpIGJlZm9yZSBwcm9jZWVkaW5nLgogICAgIFZh
bHVlKiBjbG9uZShWYWx1ZSopOwogCiAgICAgVmFsdWUqIGFkZEludENvbnN0YW50KE9yaWdpbiwg
VHlwZSwgaW50NjRfdCB2YWx1ZSk7CkBAIC0yMTgsNyArMjE5LDEwIEBAIHB1YmxpYzoKIAogICAg
IGNvbnN0IGNoYXIqIGxhc3RQaGFzZU5hbWUoKSBjb25zdCB7IHJldHVybiBtX2xhc3RQaGFzZU5h
bWU7IH0KIAotICAgIHZvaWQqIGFkZERhdGFTZWN0aW9uKHNpemVfdCBzaXplKTsKKyAgICAvLyBB
bGxvY2F0ZXMgYSBzbGFiIG9mIG1lbW9yeSB0aGF0IHdpbGwgYmUga2VwdCBhbGl2ZSBieSBhbnlv
bmUgd2hvIGtlZXBzIHRoZSByZXN1bHRpbmcgY29kZQorICAgIC8vIGFsaXZlLiBHcmVhdCBmb3Ig
Y29tcGlsZXItZ2VuZXJhdGVkIGRhdGEgc2VjdGlvbnMsIGxpa2Ugc3dpdGNoIGp1bXAgdGFibGVz
IGFuZCBjb25zdGFudCBwb29scy4KKyAgICAvLyBUaGlzIHJldHVybnMgbWVtb3J5IHRoYXQgaGFz
IGJlZW4gemVyby1pbml0aWFsaXplZC4KKyAgICB2b2lkKiBhZGREYXRhU2VjdGlvbihzaXplX3Qp
OwogCiAgICAgT3BhcXVlQnlwcm9kdWN0cyYgYnlwcm9kdWN0cygpIHsgcmV0dXJuICptX2J5cHJv
ZHVjdHM7IH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5n
dGguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0
cmVuZ3RoLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzUmVkdWNlU3RyZW5ndGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzczLDcgKzE3NzMsMTcg
QEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlLT5vcGNvZGUoKSA9
PSBTZWxlY3QKICAgICAgICAgICAgICAgICAgICAgICAgICYmICh2YWx1ZS0+Y2hpbGQoMSktPmlz
Q29uc3RhbnQoKSAmJiB2YWx1ZS0+Y2hpbGQoMiktPmlzQ29uc3RhbnQoKSk7CiAgICAgICAgICAg
ICAgICAgfSk7Ci0gICAgICAgICAgICBpZiAoc2VsZWN0KSB7CisgICAgICAgICAgICAKKyAgICAg
ICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHRoZSByZWxldmFudCBjb2RlIGlzIGNsb25lYWJsZS4K
KyAgICAgICAgICAgIGJvb2wgYWxsQXJlQ2xvbmVhYmxlID0gdHJ1ZTsKKyAgICAgICAgICAgIGZv
ciAodW5zaWduZWQgaW5kZXggPSBtX2luZGV4ICsgMTsgaW5kZXgtLTspIHsKKyAgICAgICAgICAg
ICAgICBWYWx1ZSogdmFsdWUgPSBtX2Jsb2NrLT5hdChpbmRleCk7CisgICAgICAgICAgICAgICAg
YWxsQXJlQ2xvbmVhYmxlICY9IHZhbHVlLT5pc0Nsb25lYWJsZSgpOworICAgICAgICAgICAgICAg
IGlmICh2YWx1ZSA9PSBzZWxlY3QpCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoc2VsZWN0ICYmIGFsbEFyZUNs
b25lYWJsZSkgewogICAgICAgICAgICAgICAgIHNwZWNpYWxpemVTZWxlY3Qoc2VsZWN0KTsKICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KQEAgLTE3ODEsNTAgKzE3OTEsNDgg
QEAgcHJpdmF0ZToKICAgICAgICAgfQogCiAgICAgICAgIGNhc2UgQnJhbmNoOiB7Ci0gICAgICAg
ICAgICBDb250cm9sVmFsdWUqIGJyYW5jaCA9IG1fdmFsdWUtPmFzPENvbnRyb2xWYWx1ZT4oKTsK
LQogICAgICAgICAgICAgLy8gVHVybiB0aGlzOiBCcmFuY2goTm90RXF1YWwoeCwgMCkpCiAgICAg
ICAgICAgICAvLyBJbnRvIHRoaXM6IEJyYW5jaCh4KQotICAgICAgICAgICAgaWYgKGJyYW5jaC0+
Y2hpbGQoMCktPm9wY29kZSgpID09IE5vdEVxdWFsICYmIGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxk
KDEpLT5pc0ludCgwKSkgewotICAgICAgICAgICAgICAgIGJyYW5jaC0+Y2hpbGQoMCkgPSBicmFu
Y2gtPmNoaWxkKDApLT5jaGlsZCgwKTsKKyAgICAgICAgICAgIGlmIChtX3ZhbHVlLT5jaGlsZCgw
KS0+b3Bjb2RlKCkgPT0gTm90RXF1YWwgJiYgbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDEpLT5p
c0ludCgwKSkgeworICAgICAgICAgICAgICAgIG1fdmFsdWUtPmNoaWxkKDApID0gbV92YWx1ZS0+
Y2hpbGQoMCktPmNoaWxkKDApOwogICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7CiAg
ICAgICAgICAgICB9CiAKICAgICAgICAgICAgIC8vIFR1cm4gdGhpczogQnJhbmNoKEVxdWFsKHgs
IDApLCB0aGVuLCBlbHNlKQogICAgICAgICAgICAgLy8gSW50byB0aGlzOiBCcmFuY2goeCwgZWxz
ZSwgdGhlbikKLSAgICAgICAgICAgIGlmIChicmFuY2gtPmNoaWxkKDApLT5vcGNvZGUoKSA9PSBF
cXVhbCAmJiBicmFuY2gtPmNoaWxkKDApLT5jaGlsZCgxKS0+aXNJbnQoMCkpIHsKLSAgICAgICAg
ICAgICAgICBicmFuY2gtPmNoaWxkKDApID0gYnJhbmNoLT5jaGlsZCgwKS0+Y2hpbGQoMCk7Ci0g
ICAgICAgICAgICAgICAgc3RkOjpzd2FwKGJyYW5jaC0+dGFrZW4oKSwgYnJhbmNoLT5ub3RUYWtl
bigpKTsKKyAgICAgICAgICAgIGlmIChtX3ZhbHVlLT5jaGlsZCgwKS0+b3Bjb2RlKCkgPT0gRXF1
YWwgJiYgbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDEpLT5pc0ludCgwKSkgeworICAgICAgICAg
ICAgICAgIG1fdmFsdWUtPmNoaWxkKDApID0gbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDApOwor
ICAgICAgICAgICAgICAgIHN0ZDo6c3dhcChtX2Jsb2NrLT50YWtlbigpLCBtX2Jsb2NrLT5ub3RU
YWtlbigpKTsKICAgICAgICAgICAgICAgICBtX2NoYW5nZWQgPSB0cnVlOwogICAgICAgICAgICAg
fQogICAgICAgICAgICAgCiAgICAgICAgICAgICAvLyBUdXJuIHRoaXM6IEJyYW5jaChCaXRYb3Io
Ym9vbCwgMSksIHRoZW4sIGVsc2UpCiAgICAgICAgICAgICAvLyBJbnRvIHRoaXM6IEJyYW5jaChi
b29sLCBlbHNlLCB0aGVuKQotICAgICAgICAgICAgaWYgKGJyYW5jaC0+Y2hpbGQoMCktPm9wY29k
ZSgpID09IEJpdFhvcgotICAgICAgICAgICAgICAgICYmIGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxk
KDEpLT5pc0ludDMyKDEpCi0gICAgICAgICAgICAgICAgJiYgYnJhbmNoLT5jaGlsZCgwKS0+Y2hp
bGQoMCktPnJldHVybnNCb29sKCkpIHsKLSAgICAgICAgICAgICAgICBicmFuY2gtPmNoaWxkKDAp
ID0gYnJhbmNoLT5jaGlsZCgwKS0+Y2hpbGQoMCk7Ci0gICAgICAgICAgICAgICAgc3RkOjpzd2Fw
KGJyYW5jaC0+dGFrZW4oKSwgYnJhbmNoLT5ub3RUYWtlbigpKTsKKyAgICAgICAgICAgIGlmICht
X3ZhbHVlLT5jaGlsZCgwKS0+b3Bjb2RlKCkgPT0gQml0WG9yCisgICAgICAgICAgICAgICAgJiYg
bV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDEpLT5pc0ludDMyKDEpCisgICAgICAgICAgICAgICAg
JiYgbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDApLT5yZXR1cm5zQm9vbCgpKSB7CisgICAgICAg
ICAgICAgICAgbV92YWx1ZS0+Y2hpbGQoMCkgPSBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMCk7
CisgICAgICAgICAgICAgICAgc3RkOjpzd2FwKG1fYmxvY2stPnRha2VuKCksIG1fYmxvY2stPm5v
dFRha2VuKCkpOwogICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAg
ICB9CiAKICAgICAgICAgICAgIC8vIFR1cm4gdGhpczogQnJhbmNoKEJpdEFuZChib29sLCB4eWIx
KSwgdGhlbiwgZWxzZSkKICAgICAgICAgICAgIC8vIEludG8gdGhpczogQnJhbmNoKGJvb2wsIHRo
ZW4sIGVsc2UpCi0gICAgICAgICAgICBpZiAoYnJhbmNoLT5jaGlsZCgwKS0+b3Bjb2RlKCkgPT0g
Qml0QW5kCi0gICAgICAgICAgICAgICAgJiYgYnJhbmNoLT5jaGlsZCgwKS0+Y2hpbGQoMSktPmhh
c0ludCgpCi0gICAgICAgICAgICAgICAgJiYgYnJhbmNoLT5jaGlsZCgwKS0+Y2hpbGQoMSktPmFz
SW50KCkgJiAxCi0gICAgICAgICAgICAgICAgJiYgYnJhbmNoLT5jaGlsZCgwKS0+Y2hpbGQoMCkt
PnJldHVybnNCb29sKCkpIHsKLSAgICAgICAgICAgICAgICBicmFuY2gtPmNoaWxkKDApID0gYnJh
bmNoLT5jaGlsZCgwKS0+Y2hpbGQoMCk7CisgICAgICAgICAgICBpZiAobV92YWx1ZS0+Y2hpbGQo
MCktPm9wY29kZSgpID09IEJpdEFuZAorICAgICAgICAgICAgICAgICYmIG1fdmFsdWUtPmNoaWxk
KDApLT5jaGlsZCgxKS0+aGFzSW50KCkKKyAgICAgICAgICAgICAgICAmJiBtX3ZhbHVlLT5jaGls
ZCgwKS0+Y2hpbGQoMSktPmFzSW50KCkgJiAxCisgICAgICAgICAgICAgICAgJiYgbV92YWx1ZS0+
Y2hpbGQoMCktPmNoaWxkKDApLT5yZXR1cm5zQm9vbCgpKSB7CisgICAgICAgICAgICAgICAgbV92
YWx1ZS0+Y2hpbGQoMCkgPSBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMCk7CiAgICAgICAgICAg
ICAgICAgbV9jaGFuZ2VkID0gdHJ1ZTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgVHJp
U3RhdGUgdHJpU3RhdGUgPSBicmFuY2gtPmNoaWxkKDApLT5hc1RyaVN0YXRlKCk7CisgICAgICAg
ICAgICBUcmlTdGF0ZSB0cmlTdGF0ZSA9IG1fdmFsdWUtPmNoaWxkKDApLT5hc1RyaVN0YXRlKCk7
CiAKICAgICAgICAgICAgIC8vIFR1cm4gdGhpczogQnJhbmNoKDAsIHRoZW4sIGVsc2UpCiAgICAg
ICAgICAgICAvLyBJbnRvIHRoaXM6IEp1bXAoZWxzZSkKICAgICAgICAgICAgIGlmICh0cmlTdGF0
ZSA9PSBGYWxzZVRyaVN0YXRlKSB7Ci0gICAgICAgICAgICAgICAgYnJhbmNoLT50YWtlbigpLmJs
b2NrKCktPnJlbW92ZVByZWRlY2Vzc29yKG1fYmxvY2spOwotICAgICAgICAgICAgICAgIGJyYW5j
aC0+Y29udmVydFRvSnVtcChicmFuY2gtPm5vdFRha2VuKCkuYmxvY2soKSk7CisgICAgICAgICAg
ICAgICAgbV9ibG9jay0+dGFrZW4oKS5ibG9jaygpLT5yZW1vdmVQcmVkZWNlc3NvcihtX2Jsb2Nr
KTsKKyAgICAgICAgICAgICAgICBtX3ZhbHVlLT5yZXBsYWNlV2l0aEp1bXAobV9ibG9jaywgbV9i
bG9jay0+bm90VGFrZW4oKS5ibG9jaygpKTsKICAgICAgICAgICAgICAgICBtX2NoYW5nZWRDRkcg
PSB0cnVlOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpAQCAtMTgzMiw4
ICsxODQwLDggQEAgcHJpdmF0ZToKICAgICAgICAgICAgIC8vIFR1cm4gdGhpczogQnJhbmNoKG5v
dCAwLCB0aGVuLCBlbHNlKQogICAgICAgICAgICAgLy8gSW50byB0aGlzOiBKdW1wKHRoZW4pCiAg
ICAgICAgICAgICBpZiAodHJpU3RhdGUgPT0gVHJ1ZVRyaVN0YXRlKSB7Ci0gICAgICAgICAgICAg
ICAgYnJhbmNoLT5ub3RUYWtlbigpLmJsb2NrKCktPnJlbW92ZVByZWRlY2Vzc29yKG1fYmxvY2sp
OwotICAgICAgICAgICAgICAgIGJyYW5jaC0+Y29udmVydFRvSnVtcChicmFuY2gtPnRha2VuKCku
YmxvY2soKSk7CisgICAgICAgICAgICAgICAgbV9ibG9jay0+bm90VGFrZW4oKS5ibG9jaygpLT5y
ZW1vdmVQcmVkZWNlc3NvcihtX2Jsb2NrKTsKKyAgICAgICAgICAgICAgICBtX3ZhbHVlLT5yZXBs
YWNlV2l0aEp1bXAobV9ibG9jaywgbV9ibG9jay0+dGFrZW4oKS5ibG9jaygpKTsKICAgICAgICAg
ICAgICAgICBtX2NoYW5nZWRDRkcgPSB0cnVlOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgfQpAQCAtMTg0MiwxMiArMTg1MCwxMiBAQCBwcml2YXRlOgogICAgICAgICAgICAg
Ly8gb2YgbWFrZXMgc2Vuc2UgaGVyZSBiZWNhdXNlIGl0J3MgY2hlYXAsIGJ1dCBoYWNrcyBsaWtl
IHRoaXMgc2hvdyB0aGF0IHdlJ3JlIGdvaW5nCiAgICAgICAgICAgICAvLyB0byBuZWVkIFNDQ1Au
CiAgICAgICAgICAgICBWYWx1ZSogY2hlY2sgPSBtX3B1cmVDU0UuZmluZE1hdGNoKAotICAgICAg
ICAgICAgICAgIFZhbHVlS2V5KENoZWNrLCBWb2lkLCBicmFuY2gtPmNoaWxkKDApKSwgbV9ibG9j
aywgKm1fZG9taW5hdG9ycyk7CisgICAgICAgICAgICAgICAgVmFsdWVLZXkoQ2hlY2ssIFZvaWQs
IG1fdmFsdWUtPmNoaWxkKDApKSwgbV9ibG9jaywgKm1fZG9taW5hdG9ycyk7CiAgICAgICAgICAg
ICBpZiAoY2hlY2spIHsKICAgICAgICAgICAgICAgICAvLyBUaGUgQ2hlY2sgd291bGQgaGF2ZSBz
aWRlLWV4aXRlZCBpZiBjaGlsZCgwKSB3YXMgbm9uLXplcm8uIFNvLCBpdCBtdXN0IGJlCiAgICAg
ICAgICAgICAgICAgLy8gemVybyBoZXJlLgotICAgICAgICAgICAgICAgIGJyYW5jaC0+dGFrZW4o
KS5ibG9jaygpLT5yZW1vdmVQcmVkZWNlc3NvcihtX2Jsb2NrKTsKLSAgICAgICAgICAgICAgICBi
cmFuY2gtPmNvbnZlcnRUb0p1bXAoYnJhbmNoLT5ub3RUYWtlbigpLmJsb2NrKCkpOworICAgICAg
ICAgICAgICAgIG1fYmxvY2stPnRha2VuKCkuYmxvY2soKS0+cmVtb3ZlUHJlZGVjZXNzb3IobV9i
bG9jayk7CisgICAgICAgICAgICAgICAgbV92YWx1ZS0+cmVwbGFjZVdpdGhKdW1wKG1fYmxvY2ss
IG1fYmxvY2stPm5vdFRha2VuKCkuYmxvY2soKSk7CiAgICAgICAgICAgICAgICAgbV9jaGFuZ2Vk
Q0ZHID0gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjIyMSw3
ICsyMjI5LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhTG9n
KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ2hhbmdpbmcgIiwgcG9pbnRlckR1
bXAoYmxvY2spLCAiJ3MgdGVybWluYWwgdG8gYSBKdW1wLlxuIik7CiAgICAgICAgICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBibG9jay0+bGFzdCgpLT5hczxDb250
cm9sVmFsdWU+KCktPmNvbnZlcnRUb0p1bXAoZmlyc3RTdWNjZXNzb3IpOworICAgICAgICAgICAg
ICAgICAgICAgICAgYmxvY2stPmxhc3QoKS0+cmVwbGFjZVdpdGhKdW1wKGJsb2NrLCBmaXJzdFN1
Y2Nlc3Nvcik7CiAgICAgICAgICAgICAgICAgICAgICAgICBtX2NoYW5nZWRDRkcgPSB0cnVlOwog
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQpAQCAtMjI0NCwxMSArMjI1
MiwxMyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg
ICAgLy8gQXBwZW5kIHRoZSBmdWxsIGNvbnRlbnRzIG9mIHRoZSBzdWNjZXNzb3IgdG8gdGhlIHBy
ZWRlY2Vzc29yLgogICAgICAgICAgICAgICAgICAgICBibG9jay0+dmFsdWVzKCkuYXBwZW5kVmVj
dG9yKHN1Y2Nlc3Nvci0+dmFsdWVzKCkpOworICAgICAgICAgICAgICAgICAgICBibG9jay0+c3Vj
Y2Vzc29ycygpID0gc3VjY2Vzc29yLT5zdWNjZXNzb3JzKCk7CiAgICAgICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCB0aGUgc3VjY2Vzc29yIGhh
cyBub3RoaW5nIGxlZnQgaW4gaXQuIE1ha2Ugc3VyZSB0aGF0IHRoZSBibG9jawogICAgICAgICAg
ICAgICAgICAgICAvLyBoYXMgYSB0ZXJtaW5hbCBzbyB0aGF0IG5vYm9keSBjaG9rZXMgd2hlbiB0
aGV5IGxvb2sgYXQgaXQuCiAgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3Nvci0+dmFsdWVzKCku
cmVzaXplKDApOwotICAgICAgICAgICAgICAgICAgICBzdWNjZXNzb3ItPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KG1fcHJvYywgT29wcywganVtcE9yaWdpbik7CisgICAgICAgICAgICAgICAgICAg
IHN1Y2Nlc3Nvci0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIE9vcHMsIGp1bXBPcmlnaW4pOwor
ICAgICAgICAgICAgICAgICAgICBzdWNjZXNzb3ItPmNsZWFyU3VjY2Vzc29ycygpOwogICAgICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgLy8gRW5zdXJlIHRoYXQgcHJlZGVj
ZXNzb3JzIG9mIGJsb2NrJ3MgbmV3IHN1Y2Nlc3NvcnMga25vdyB3aGF0J3MgdXAuCiAgICAgICAg
ICAgICAgICAgICAgIGZvciAoQmFzaWNCbG9jayogbmV3U3VjY2Vzc29yIDogYmxvY2stPnN1Y2Nl
c3NvckJsb2NrcygpKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3dpdGNoVmFs
dWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTd2l0Y2hWYWx1
ZS5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTd2l0
Y2hWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMywxMCBAQAogCiBuYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIEIzIHsKIAorLy8gRklYTUU6IENyZWF0ZSBhIHRoaW5nIGNhbGxlZCBh
IFN3aXRjaENhc2VDb2xsZWN0aW9uIG9yIGp1c3QgQ2FzZUNvbGxlY3Rpb24sIHdoaWNoIGlzIGEg
dHVwbGUgb2YKKy8vIFN3aXRjaFZhbHVlIGFuZCBCYXNpY0Jsb2NrLiBZb3UgY2FuIGdldCBpdCBi
eSBjYWxsaW5nIGNhc2VzKEJhc2ljQmxvY2sqKSBvciBqdXN0IGNhc2VzKCkgaWYgeW91CisvLyBr
bm93IHRoYXQgb3duZXIgaXMgc2V0LgorCiBjbGFzcyBTd2l0Y2hWYWx1ZSA6IHB1YmxpYyBDb250
cm9sVmFsdWUgewogcHVibGljOgogICAgIHN0YXRpYyBib29sIGFjY2VwdHMoT3Bjb2RlIG9wY29k
ZSkgeyByZXR1cm4gb3Bjb2RlID09IFN3aXRjaDsgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzVmFsaWRhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM1ZhbGlkYXRlLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzVmFsaWRhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDcsOCArMTA3LDgg
QEAgcHVibGljOgogICAgICAgICBmb3IgKEJhc2ljQmxvY2sqIGJsb2NrIDogYmxvY2tzKSB7CiAg
ICAgICAgICAgICBWQUxJREFURShibG9jay0+c2l6ZSgpID49IDEsICgiQXQgIiwgKmJsb2NrKSk7
CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYmxvY2stPnNpemUoKSAtIDE7
ICsraSkKLSAgICAgICAgICAgICAgICBWQUxJREFURSghQ29udHJvbFZhbHVlOjphY2NlcHRzKGJs
b2NrLT5hdChpKS0+b3Bjb2RlKCkpLCAoIkF0ICIsICpibG9jay0+YXQoaSkpKTsKLSAgICAgICAg
ICAgIFZBTElEQVRFKENvbnRyb2xWYWx1ZTo6YWNjZXB0cyhibG9jay0+bGFzdCgpLT5vcGNvZGUo
KSksICgiQXQgIiwgKmJsb2NrLT5sYXN0KCkpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFURSgh
YmxvY2stPmF0KGkpLT5lZmZlY3RzKCkudGVybWluYWwsICgiQXQgIiwgKmJsb2NrLT5hdChpKSkp
OworICAgICAgICAgICAgVkFMSURBVEUoYmxvY2stPmxhc3QoKS0+ZWZmZWN0cygpLnRlcm1pbmFs
LCAoIkF0ICIsICpibG9jay0+bGFzdCgpKSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGZv
ciAoQmFzaWNCbG9jayogc3VjY2Vzc29yIDogYmxvY2stPnN1Y2Nlc3NvckJsb2NrcygpKSB7CiAg
ICAgICAgICAgICAgICAgYWxsUHJlZGVjZXNzb3JzLmFkZChzdWNjZXNzb3IsIEhhc2hTZXQ8QmFz
aWNCbG9jayo+KCkpLml0ZXJhdG9yLT52YWx1ZS5hZGQoYmxvY2spOwpAQCAtMzg3LDYgKzM4Nywx
MSBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgVkFMSURBVEUoaXNJbnQodmFsdWUtPmNoaWxk
KDApLT50eXBlKCkpLCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAgICAgIFZBTElEQVRF
KHZhbHVlLT50eXBlKCkgPT0gVm9pZCwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgUG9seUp1bXA6CisgICAgICAgICAgICAgICAgVkFM
SURBVEUodmFsdWUtPm51bUNoaWxkcmVuKCkgPT0gMSwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAg
ICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSA9PSBwb2ludGVyVHlw
ZSgpLCAoIkF0ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT50
eXBlKCkgPT0gVm9pZCwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgVkFMSURBVEUoISh2YWx1ZS0+ZWZmZWN0cygp
LndyaXRlcyAmJiB2YWx1ZS0+a2V5KCkpLCAoIkF0ICIsICp2YWx1ZSkpOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjUsNiArMTI1
LDUwIEBAIHZvaWQgVmFsdWU6OnJlcGxhY2VXaXRoUGhpKCkKICAgICB0aGlzLT5tX2luZGV4ID0g
aW5kZXg7CiB9CiAKK3ZvaWQgVmFsdWU6OnJlcGxhY2VXaXRoSnVtcChCYXNpY0Jsb2NrKiBvd25l
ciwgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YXJnZXQpCit7CisgICAgUkVMRUFTRV9BU1NFUlQo
b3duZXItPmxhc3QoKSA9PSB0aGlzKTsKKyAgICAKKyAgICB1bnNpZ25lZCBpbmRleCA9IG1faW5k
ZXg7CisgICAgT3JpZ2luIG9yaWdpbiA9IG1fb3JpZ2luOworICAgIAorICAgIHRoaXMtPn5WYWx1
ZSgpOworICAgIAorICAgIG5ldyAodGhpcykgVmFsdWUoSnVtcCwgVm9pZCwgb3JpZ2luKTsKKyAg
ICAKKyAgICB0aGlzLT5vd25lciA9IG93bmVyOworICAgIHRoaXMtPm1faW5kZXggPSBpbmRleDsK
KyAgICAKKyAgICBvd25lci0+c2V0U3VjY2Vzc29ycyh0YXJnZXQpOworfQorCit2b2lkIFZhbHVl
OjpyZXBsYWNlV2l0aE9vcHMoQmFzaWNCbG9jayogb3duZXIpCit7CisgICAgUkVMRUFTRV9BU1NF
UlQob3duZXItPmxhc3QoKSA9PSB0aGlzKTsKKyAgICAKKyAgICB1bnNpZ25lZCBpbmRleCA9IG1f
aW5kZXg7CisgICAgT3JpZ2luIG9yaWdpbiA9IG1fb3JpZ2luOworICAgIAorICAgIHRoaXMtPn5W
YWx1ZSgpOworICAgIAorICAgIG5ldyAodGhpcykgVmFsdWUoT29wcywgVm9pZCwgb3JpZ2luKTsK
KyAgICAKKyAgICB0aGlzLT5vd25lciA9IG93bmVyOworICAgIHRoaXMtPm1faW5kZXggPSBpbmRl
eDsKKyAgICAKKyAgICBvd25lci0+Y2xlYXJTdWNjZXNzb3JzKCk7Cit9CisKK3ZvaWQgVmFsdWU6
OnJlcGxhY2VXaXRoSnVtcChjb25zdCBGcmVxdWVudGVkQmxvY2smIHRhcmdldCkKK3sKKyAgICBy
ZXBsYWNlV2l0aEp1bXAob3duZXIsIHRhcmdldCk7Cit9CisKK3ZvaWQgVmFsdWU6OnJlcGxhY2VX
aXRoT29wcygpCit7CisgICAgcmVwbGFjZVdpdGhPb3BzKG93bmVyKTsKK30KKwogdm9pZCBWYWx1
ZTo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogewogICAgIGJvb2wgaXNDb25zdGFudCA9
IGZhbHNlOwpAQCAtNTUyLDYgKzU5Niw3IEBAIEVmZmVjdHMgVmFsdWU6OmVmZmVjdHMoKSBjb25z
dAogICAgIGNhc2UgSnVtcDoKICAgICBjYXNlIEJyYW5jaDoKICAgICBjYXNlIFN3aXRjaDoKKyAg
ICBjYXNlIFBvbHlKdW1wOgogICAgIGNhc2UgUmV0dXJuOgogICAgIGNhc2UgT29wczoKICAgICAg
ICAgcmVzdWx0LnRlcm1pbmFsID0gdHJ1ZTsKQEAgLTU2MCw2ICs2MDUsMTEgQEAgRWZmZWN0cyBW
YWx1ZTo6ZWZmZWN0cygpIGNvbnN0CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorYm9vbCBWYWx1
ZTo6aXNDbG9uZWFibGUoKSBjb25zdAoreworICAgIHJldHVybiB0cnVlOworfQorCiBWYWx1ZUtl
eSBWYWx1ZTo6a2V5KCkgY29uc3QKIHsKICAgICBzd2l0Y2ggKG9wY29kZSgpKSB7CkBAIC03MTMs
NiArNzYzLDEwIEBAIFR5cGUgVmFsdWU6OnR5cGVGb3IoT3Bjb2RlIG9wY29kZSwgVmFsdWUKICAg
ICAgICAgfQogICAgICAgICByZXR1cm4gVm9pZDsKICAgICBjYXNlIE5vcDoKKyAgICBjYXNlIEp1
bXA6CisgICAgY2FzZSBCcmFuY2g6CisgICAgY2FzZSBSZXR1cm46CisgICAgY2FzZSBPb3BzOgog
ICAgICAgICByZXR1cm4gVm9pZDsKICAgICBjYXNlIFNlbGVjdDoKICAgICAgICAgQVNTRVJUKHNl
Y29uZENoaWxkKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuaAkocmV2aXNpb24g
MjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuaAkod29ya2luZyBj
b3B5KQpAQCAtMTA5LDYgKzEwOSwxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXBsYWNlV2l0aE5v
cElnbm9yaW5nVHlwZSgpOwogICAgIAogICAgIHZvaWQgcmVwbGFjZVdpdGhQaGkoKTsKKyAgICAK
KyAgICAvLyBUaGVzZSB0cmFuc2Zvcm1hdGlvbnMgYXJlIG9ubHkgdmFsaWQgZm9yIHRlcm1pbmFs
cy4KKyAgICB2b2lkIHJlcGxhY2VXaXRoSnVtcChCYXNpY0Jsb2NrKiBvd25lciwgY29uc3QgRnJl
cXVlbnRlZEJsb2NrJik7CisgICAgdm9pZCByZXBsYWNlV2l0aE9vcHMoQmFzaWNCbG9jayogb3du
ZXIpOworICAgIAorICAgIC8vIFlvdSBjYW4gdXNlIHRoaXMgZm9ybSBpZiBvd25lcnMgYXJlIHZh
bGlkLiBUaGV5J3JlIHVzdWFsbHkgbm90IHZhbGlkLgorICAgIHZvaWQgcmVwbGFjZVdpdGhKdW1w
KGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYpOworICAgIHZvaWQgcmVwbGFjZVdpdGhPb3BzKCk7CiAK
ICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKICAgICB2b2lkIGRlZXBEdW1wKGNv
bnN0IFByb2NlZHVyZSosIFByaW50U3RyZWFtJikgY29uc3Q7CkBAIC0yMjMsNiArMjMxLDExIEBA
IHB1YmxpYzoKICAgICBib29sIGlzTGlrZU5vblplcm8oKSBjb25zdCB7IHJldHVybiBhc1RyaVN0
YXRlKCkgPT0gVHJ1ZVRyaVN0YXRlOyB9CiAKICAgICBFZmZlY3RzIGVmZmVjdHMoKSBjb25zdDsK
KyAgICAKKyAgICAvLyBTb21lIG9wZXJhdGlvbnMgd2lsbCByZWZ1c2UgdG8gYmUgY2xvbmVkLiBU
aGlzIGhhcHBlbnMgd2hlbiB0aGUgb3BlcmF0aW9uIGhhcyBzb21lIGluc2lkZQorICAgIC8vIGtu
b3dsZWRnZSBhYm91dCB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gaXRzIGlkZW50aXR5IGFuZCB0
aGUgaWRlbnRpdHkgb2YgdGhlIGNvZGUgaXQgd2lsbAorICAgIC8vIGdlbmVyYXRlLgorICAgIHZp
cnR1YWwgYm9vbCBpc0Nsb25lYWJsZSgpIGNvbnN0OwogCiAgICAgLy8gVGhpcyByZXR1cm5zIGEg
VmFsdWVLZXkgdGhhdCBkZXNjcmliZXMgdGhhdCB0aGlzIFZhbHVlIHJldHVybnMgd2hlbiBpdCBl
eGVjdXRlcy4gUmV0dXJucyBhbgogICAgIC8vIGVtcHR5IFZhbHVlS2V5IGlmIHRoaXMgVmFsdWUg
aXMgaW1wdXJlLiBOb3RlIHRoYXQgYW4gb3BlcmF0aW9uIHRoYXQgcmV0dXJucyBWb2lkIGNvdWxk
IHN0aWxsCkBAIC0yNjQsNiArMjc3LDggQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBGcmFtZVBv
aW50ZXI6CiAgICAgICAgIGNhc2UgTm9wOgogICAgICAgICBjYXNlIFBoaToKKyAgICAgICAgY2Fz
ZSBKdW1wOgorICAgICAgICBjYXNlIE9vcHM6CiAgICAgICAgICAgICBpZiAoVU5MSUtFTFkobnVt
QXJncykpCiAgICAgICAgICAgICAgICAgYmFkT3Bjb2RlKG9wY29kZSwgbnVtQXJncyk7CiAgICAg
ICAgICAgICBicmVhazsKQEAgLTI4NCw2ICsyOTksOCBAQCBwcml2YXRlOgogICAgICAgICBjYXNl
IERvdWJsZVRvRmxvYXQ6CiAgICAgICAgIGNhc2UgSVRvRjoKICAgICAgICAgY2FzZSBCaXR3aXNl
Q2FzdDoKKyAgICAgICAgY2FzZSBCcmFuY2g6CisgICAgICAgIGNhc2UgUmV0dXJuOgogICAgICAg
ICAgICAgaWYgKFVOTElLRUxZKG51bUFyZ3MgIT0gMSkpCiAgICAgICAgICAgICAgICAgYmFkT3Bj
b2RlKG9wY29kZSwgbnVtQXJncyk7CiAgICAgICAgICAgICBicmVhazsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy90ZXN0YjMuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvdGVzdGIzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBAQAog
I2luY2x1ZGUgIkIzQ29uc3RQdHJWYWx1ZS5oIgogI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgi
CiAjaW5jbHVkZSAiQjNFZmZlY3RzLmgiCisjaW5jbHVkZSAiQjNQb2x5SnVtcFZhbHVlLmgiCiAj
aW5jbHVkZSAiQjNNYXRoRXh0cmFzLmgiCiAjaW5jbHVkZSAiQjNNZW1vcnlWYWx1ZS5oIgogI2lu
Y2x1ZGUgIkIzUHJvY2VkdXJlLmgiCkBAIC00Niw2ICs0Nyw3IEBACiAjaW5jbHVkZSAiQjNVcHNp
bG9uVmFsdWUuaCIKICNpbmNsdWRlICJCM1ZhbGlkYXRlLmgiCiAjaW5jbHVkZSAiQjNWYWx1ZUlu
bGluZXMuaCIKKyNpbmNsdWRlICJCM1ZhcmlhYmxlVmFsdWUuaCIKICNpbmNsdWRlICJDQ2FsbEhl
bHBlcnMuaCIKICNpbmNsdWRlICJJbml0aWFsaXplVGhyZWFkaW5nLmgiCiAjaW5jbHVkZSAiSlND
SW5saW5lcy5oIgpAQCAtNTQsNiArNTYsNyBAQAogI2luY2x1ZGUgIlZNLmgiCiAjaW5jbHVkZSA8
Y21hdGg+CiAjaW5jbHVkZSA8c3RyaW5nPgorI2luY2x1ZGUgPHd0Zi9MaXN0RHVtcC5oPgogI2lu
Y2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL051bWJlck9mQ29yZXMuaD4KICNpbmNs
dWRlIDx3dGYvVGhyZWFkaW5nLmg+CkBAIC03NSw2ICs3OCwxMSBAQCB1c2luZyBuYW1lc3BhY2Ug
SlNDOjpCMzsKIAogbmFtZXNwYWNlIHsKIAorYm9vbCBzaG91bGRCZVZlcmJvc2UoKQoreworICAg
IHJldHVybiBzaG91bGREdW1wSVIoQjNNb2RlKTsKK30KKwogU3RhdGljTG9jayBjcmFzaExvY2s7
CiAKIC8vIE5vdGhpbmcgZmFuY3kgZm9yIG5vdzsgd2UganVzdCB1c2UgdGhlIGV4aXN0aW5nIFdU
RiBhc3NlcnRpb24gbWFjaGluZXJ5LgpAQCAtMTAxNzAsNyArMTAxNzgsMTAgQEAgdm9pZCB0ZXN0
U3dpdGNoQ2hpbGxEaXYodW5zaWduZWQgZGVncmVlLAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUo
cHJvYyk7CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZGVncmVlOyArK2kpIHsKLSAg
ICAgICAgQ0hFQ0soaW52b2tlPGludDMyX3Q+KCpjb2RlLCBpICogZ2FwLCA0MiwgMTEpID09ICgo
aSAmIDEpID8gMTEvNDIgOiA0Mi8xMSkpOworICAgICAgICBkYXRhTG9nKCJpID0gIiwgaSwgIlxu
Iik7CisgICAgICAgIGludDMyX3QgcmVzdWx0ID0gaW52b2tlPGludDMyX3Q+KCpjb2RlLCBpICog
Z2FwLCA0MiwgMTEpOworICAgICAgICBkYXRhTG9nKCJyZXN1bHQgPSAiLCByZXN1bHQsICJcbiIp
OworICAgICAgICBDSEVDSyhyZXN1bHQgPT0gKChpICYgMSkgPyAxMS80MiA6IDQyLzExKSk7CiAg
ICAgICAgIGlmIChnYXAgPiAxKSB7CiAgICAgICAgICAgICBDSEVDSyghaW52b2tlPGludDMyX3Q+
KCpjb2RlLCBpICogZ2FwICsgMSwgNDIsIDExKSk7CiAgICAgICAgICAgICBDSEVDSyghaW52b2tl
PGludDMyX3Q+KCpjb2RlLCBpICogZ2FwIC0gMSwgNDIsIDExKSk7CkBAIC0xMjA5Miw2ICsxMjEw
MywyMzEgQEAgdm9pZCB0ZXN0TGF0ZVJlZ2lzdGVyKCkKICAgICBDSEVDSyhpbnZva2U8dWludDY0
X3Q+KCpjb2RlKSA9PSByZXN1bHQpOwogfQogCit2b2lkIHRocmVhZGVkSW50ZXJwcmV0ZXJQcmlu
dChWZWN0b3I8aW50cHRyX3Q+KiBzdHJlYW0sIGludHB0cl90IHZhbHVlKQoreworICAgIHN0cmVh
bS0+YXBwZW5kKHZhbHVlKTsKK30KKwordm9pZCB0ZXN0VGhyZWFkZWRJbnRlcnByZXRlcigpCit7
CisgICAgLy8gVGhpcyBjcmVhdGVzIGEgcG9vciBtYW4ncyB0aHJlYWRlZCBpbnRlcnByZXRlciB1
c2luZyBQb2x5SnVtcCBhbmQgc2VlcyBpZiBpdCB3b3Jrcy4gTm90ZQorICAgIC8vIHRoYXQgUG9s
eUp1bXAgaXMgbm90IGxpa2UgaW5kaXJlY3QgYnJhbmNoZXMgaW4gTExWTSwgc28geW91IGNhbid0
IGFjdHVhbGx5IHVzZSBpdCB0bworICAgIC8vIGltcGxlbWVudCBhIHByb3BlciB0aHJlYWRlZCBp
bnRlcnByZXRlci4gVGhpcyBjaGVhdHM6IHRoZSBkaXNwYXRjaCBpbnN0cnVjdGlvbiBpcyBhdCB0
aGUgdG9wCisgICAgLy8gb2YgdGhlIGxvb3AuIFRoaXMgYWxzbyB0ZXN0cyBWYXJpYWJsZVZhbHVl
LgorICAgIAorICAgIFByb2NlZHVyZSBwcm9jOworICAgIAorICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayogZGlzcGF0Y2ggPSBwcm9jLmFkZEJs
b2NrKCk7CisgICAgQmFzaWNCbG9jayogYWRkVG9EYXRhUG9pbnRlciA9IHByb2MuYWRkQmxvY2so
KTsKKyAgICBCYXNpY0Jsb2NrKiBhZGRUb0NvZGVQb2ludGVyID0gcHJvYy5hZGRCbG9jaygpOwor
ICAgIEJhc2ljQmxvY2sqIGFkZFRvQ29kZVBvaW50ZXJUYWtlbiA9IHByb2MuYWRkQmxvY2soKTsK
KyAgICBCYXNpY0Jsb2NrKiBhZGRUb0NvZGVQb2ludGVyTm90VGFrZW4gPSBwcm9jLmFkZEJsb2Nr
KCk7CisgICAgQmFzaWNCbG9jayogYWRkVG9EYXRhID0gcHJvYy5hZGRCbG9jaygpOworICAgIEJh
c2ljQmxvY2sqIHByaW50ID0gcHJvYy5hZGRCbG9jaygpOworICAgIEJhc2ljQmxvY2sqIHN0b3Ag
PSBwcm9jLmFkZEJsb2NrKCk7CisgICAgCisgICAgVmFyaWFibGUqIGRhdGFQb2ludGVyID0gcHJv
Yy5hZGRWYXJpYWJsZShwb2ludGVyVHlwZSgpKTsKKyAgICBWYXJpYWJsZSogY29kZVBvaW50ZXIg
PSBwcm9jLmFkZFZhcmlhYmxlKHBvaW50ZXJUeXBlKCkpOworICAgIAorICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYXJpYWJsZVZhbHVlPigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgZGF0YVBv
aW50ZXIsCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3PFZh
cmlhYmxlVmFsdWU+KAorICAgICAgICBwcm9jLCBTZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlciwK
KyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKTsKKyAgICBWYWx1ZSogY29udGV4dCA9IHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIyKTsKKyAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBP
cmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRpc3BhdGNoKSk7CisgICAgCisgICAgUG9seUp1bXBW
YWx1ZSogcG9seUp1bXAgPSBkaXNwYXRjaC0+YXBwZW5kTmV3PFBvbHlKdW1wVmFsdWU+KAorICAg
ICAgICBwcm9jLCBPcmlnaW4oKSwKKyAgICAgICAgZGlzcGF0Y2gtPmFwcGVuZE5ldzxNZW1vcnlW
YWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwK
KyAgICAgICAgICAgIGRpc3BhdGNoLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAg
ICAgICAgICAgcHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyKSkpOworICAgIHBv
bHlKdW1wLT5hcHBlbmRTdWNjZXNzb3IoRnJlcXVlbnRlZEJsb2NrKGFkZFRvRGF0YVBvaW50ZXIp
KTsKKyAgICBwb2x5SnVtcC0+YXBwZW5kU3VjY2Vzc29yKEZyZXF1ZW50ZWRCbG9jayhhZGRUb0Nv
ZGVQb2ludGVyKSk7CisgICAgcG9seUp1bXAtPmFwcGVuZFN1Y2Nlc3NvcihGcmVxdWVudGVkQmxv
Y2soYWRkVG9EYXRhKSk7CisgICAgcG9seUp1bXAtPmFwcGVuZFN1Y2Nlc3NvcihGcmVxdWVudGVk
QmxvY2socHJpbnQpKTsKKyAgICBwb2x5SnVtcC0+YXBwZW5kU3VjY2Vzc29yKEZyZXF1ZW50ZWRC
bG9jayhzdG9wKSk7CisgICAgCisgICAgLy8gT3VyICJvcGNvZGVzIi4gVGhleSB3aWxsIGhhdmUg
bWVhbmluZyBvbmNlIHdlIGNvbXBpbGUuCisgICAgaW50cHRyX3QgQWRkRFAgPSAwOworICAgIGlu
dHB0cl90IEFkZENQID0gMDsKKyAgICBpbnRwdHJfdCBBZGQgPSAwOworICAgIGludHB0cl90IFBy
aW50ID0gMDsKKyAgICBpbnRwdHJfdCBTdG9wID0gMDsKKyAgICBwb2x5SnVtcC0+c2V0Q2FsbGJh
Y2soCisgICAgICAgIFsmXSAoY29uc3QgVmVjdG9yPE1hY3JvQXNzZW1ibGVyQ29kZVB0cj4mIHBv
aW50ZXJzKSB7CisgICAgICAgICAgICBhdXRvIGdldCA9IFsmXSAoc2l6ZV90IGluZGV4KSAtPiBp
bnRwdHJfdCB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxpbnRwdHJfdD4o
cG9pbnRlcnNbaW5kZXhdLmV4ZWN1dGFibGVBZGRyZXNzKCkpOworICAgICAgICAgICAgfTsKKyAg
ICAgICAgICAgIAorICAgICAgICAgICAgQWRkRFAgPSBnZXQoMCk7CisgICAgICAgICAgICBBZGRD
UCA9IGdldCgxKTsKKyAgICAgICAgICAgIEFkZCA9IGdldCgyKTsKKyAgICAgICAgICAgIFByaW50
ID0gZ2V0KDMpOworICAgICAgICAgICAgU3RvcCA9IGdldCg0KTsKKyAgICAgICAgfSk7CisgICAg
CisgICAgLy8gQWRkRFAgPG9wZXJhbmQ+OiBhZGRzIDxvcGVyYW5kPiB0byBEUC4KKyAgICBWYWx1
ZSogY29kZVBvaW50ZXJWYWx1ZSA9CisgICAgICAgIGFkZFRvRGF0YVBvaW50ZXItPmFwcGVuZE5l
dzxWYXJpYWJsZVZhbHVlPihwcm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIpOwor
ICAgIGFkZFRvRGF0YVBvaW50ZXItPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPigKKyAgICAgICAg
cHJvYywgU2V0LCBPcmlnaW4oKSwgZGF0YVBvaW50ZXIsCisgICAgICAgIGFkZFRvRGF0YVBvaW50
ZXItPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBCMzo6QWRkLCBPcmlnaW4o
KSwKKyAgICAgICAgICAgIGFkZFRvRGF0YVBvaW50ZXItPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVl
Pihwcm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwgZGF0YVBvaW50ZXIpLAorICAgICAgICAgICAgYWRk
VG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgICAgICBwcm9jLCBN
dWwsIE9yaWdpbigpLAorICAgICAgICAgICAgICAgIGFkZFRvRGF0YVBvaW50ZXItPmFwcGVuZE5l
dzxNZW1vcnlWYWx1ZT4oCisgICAgICAgICAgICAgICAgICAgIHByb2MsIExvYWQsIHBvaW50ZXJU
eXBlKCksIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLCBzaXplb2YoaW50cHRyX3QpKSwKKyAg
ICAgICAgICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmRJbnRDb25zdGFudCgKKyAgICAg
ICAgICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBlKCksIHNpemVvZihpbnRw
dHJfdCkpKSkpOworICAgIGFkZFRvRGF0YVBvaW50ZXItPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVl
PigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIsCisgICAgICAgIGFk
ZFRvRGF0YVBvaW50ZXItPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBCMzo6
QWRkLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwKKyAgICAgICAgICAgIGFkZFRvRGF0YVBv
aW50ZXItPmFwcGVuZEludENvbnN0YW50KAorICAgICAgICAgICAgICAgIHByb2MsIE9yaWdpbigp
LCBwb2ludGVyVHlwZSgpLCBzaXplb2YoaW50cHRyX3QpICogMikpKTsKKyAgICBhZGRUb0RhdGFQ
b2ludGVyLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJl
cXVlbnRlZEJsb2NrKGRpc3BhdGNoKSk7CisgICAgCisgICAgLy8gQWRkQ1AgPG9wZXJhbmQ+OiBh
ZGRzIDxvcGVyYW5kPiB0byBDUCBpZiB0aGUgY3VycmVudCB2YWx1ZSBhdCBEUCBpcyBub24temVy
bywgb3RoZXJ3aXNlCisgICAgLy8gZmFsbHMgdGhyb3VnaCBub3JtYWxseS4KKyAgICBjb2RlUG9p
bnRlclZhbHVlID0KKyAgICAgICAgYWRkVG9Db2RlUG9pbnRlci0+YXBwZW5kTmV3PFZhcmlhYmxl
VmFsdWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlcik7CisgICAgVmFsdWUq
IGRhdGFQb2ludGVyVmFsdWUgPQorICAgICAgICBhZGRUb0NvZGVQb2ludGVyLT5hcHBlbmROZXc8
VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGRhdGFQb2ludGVyKTsKKyAg
ICBhZGRUb0NvZGVQb2ludGVyLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcHJv
YywgQnJhbmNoLCBPcmlnaW4oKSwKKyAgICAgICAgYWRkVG9Db2RlUG9pbnRlci0+YXBwZW5kTmV3
PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9y
aWdpbigpLCBkYXRhUG9pbnRlclZhbHVlKSwKKyAgICAgICAgRnJlcXVlbnRlZEJsb2NrKGFkZFRv
Q29kZVBvaW50ZXJUYWtlbiksIEZyZXF1ZW50ZWRCbG9jayhhZGRUb0NvZGVQb2ludGVyTm90VGFr
ZW4pKTsKKyAgICBhZGRUb0NvZGVQb2ludGVyVGFrZW4tPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVl
PigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIsCisgICAgICAgIGFk
ZFRvQ29kZVBvaW50ZXJUYWtlbi0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2Ms
IEIzOjpBZGQsIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLAorICAgICAgICAgICAgYWRkVG9D
b2RlUG9pbnRlclRha2VuLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgICAgIHByb2Ms
IE11bCwgT3JpZ2luKCksCisgICAgICAgICAgICAgICAgYWRkVG9Db2RlUG9pbnRlclRha2VuLT5h
cHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICAgICAgICAgICAgICBwcm9jLCBMb2FkLCBw
b2ludGVyVHlwZSgpLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwgc2l6ZW9mKGludHB0cl90
KSksCisgICAgICAgICAgICAgICAgYWRkVG9Db2RlUG9pbnRlclRha2VuLT5hcHBlbmRJbnRDb25z
dGFudCgKKyAgICAgICAgICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBlKCks
IHNpemVvZihpbnRwdHJfdCkpKSkpOworICAgIGFkZFRvQ29kZVBvaW50ZXJUYWtlbi0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhk
aXNwYXRjaCkpOworICAgIGFkZFRvQ29kZVBvaW50ZXJOb3RUYWtlbi0+YXBwZW5kTmV3PFZhcmlh
YmxlVmFsdWU+KAorICAgICAgICBwcm9jLCBTZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlciwKKyAg
ICAgICAgYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAg
ICAgICAgcHJvYywgQjM6OkFkZCwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUsCisgICAgICAg
ICAgICBhZGRUb0NvZGVQb2ludGVyTm90VGFrZW4tPmFwcGVuZEludENvbnN0YW50KAorICAgICAg
ICAgICAgICAgIHByb2MsIE9yaWdpbigpLCBwb2ludGVyVHlwZSgpLCBzaXplb2YoaW50cHRyX3Qp
ICogMikpKTsKKyAgICBhZGRUb0NvZGVQb2ludGVyTm90VGFrZW4tPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgICAgICBwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRp
c3BhdGNoKSk7CisKKyAgICAvLyBBZGQgPG9wZXJhbmQ+OiBhZGRzIDxvcGVyYW5kPiB0byB0aGUg
c2xvdCBwb2ludGVkIHRvIGJ5IERQLgorICAgIGNvZGVQb2ludGVyVmFsdWUgPSBhZGRUb0RhdGEt
PmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPihwcm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwgY29kZVBv
aW50ZXIpOworICAgIGRhdGFQb2ludGVyVmFsdWUgPSBhZGRUb0RhdGEtPmFwcGVuZE5ldzxWYXJp
YWJsZVZhbHVlPihwcm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwgZGF0YVBvaW50ZXIpOworICAgIGFk
ZFRvRGF0YS0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgcHJvYywgU3RvcmUsIE9y
aWdpbigpLAorICAgICAgICBhZGRUb0RhdGEtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAg
ICBwcm9jLCBCMzo6QWRkLCBPcmlnaW4oKSwKKyAgICAgICAgICAgIGFkZFRvRGF0YS0+YXBwZW5k
TmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVyVHlw
ZSgpLCBPcmlnaW4oKSwgZGF0YVBvaW50ZXJWYWx1ZSksCisgICAgICAgICAgICBhZGRUb0RhdGEt
PmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgICAgICAgICAgcHJvYywgTG9hZCwgcG9p
bnRlclR5cGUoKSwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUsIHNpemVvZihpbnRwdHJfdCkp
KSwKKyAgICAgICAgZGF0YVBvaW50ZXJWYWx1ZSk7CisgICAgYWRkVG9EYXRhLT5hcHBlbmROZXc8
VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2ludGVy
LAorICAgICAgICBhZGRUb0RhdGEtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICBwcm9j
LCBCMzo6QWRkLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwKKyAgICAgICAgICAgIGFkZFRv
RGF0YS0+YXBwZW5kSW50Q29uc3RhbnQocHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBlKCksIHNp
emVvZihpbnRwdHJfdCkgKiAyKSkpOworICAgIGFkZFRvRGF0YS0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhkaXNwYXRjaCkpOwor
ICAgIAorICAgIC8vIFByaW50OiAicHJpbnRzIiB0aGUgdmFsdWUgcG9pbnRlZCB0byBieSBEUC4g
V2hhdCB0aGlzIGFjdHVhbGx5IG1lYW5zIGlzIHRoYXQgdGhlIHZhbHVlIGlzCisgICAgLy8gYXBw
ZW5kZWQgdG8gdGhlIHN0cmVhbSB2ZWN0b3IgYnkgdGhlIHRocmVhZGVkSW50ZXJwcmV0ZXJQcmlu
dCBmdW5jdGlvbi4KKyAgICBjb2RlUG9pbnRlclZhbHVlID0gcHJpbnQtPmFwcGVuZE5ldzxWYXJp
YWJsZVZhbHVlPihwcm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIpOworICAgIGRh
dGFQb2ludGVyVmFsdWUgPSBwcmludC0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHByb2MsIEIz
OjpHZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRlcik7CisgICAgcHJpbnQtPmFwcGVuZE5ldzxDQ2Fs
bFZhbHVlPigKKyAgICAgICAgcHJvYywgVm9pZCwgT3JpZ2luKCksCisgICAgICAgIHByaW50LT5h
cHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgYml0
d2lzZV9jYXN0PHZvaWQqPih0aHJlYWRlZEludGVycHJldGVyUHJpbnQpKSwKKyAgICAgICAgY29u
dGV4dCwKKyAgICAgICAgcHJpbnQtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwg
cG9pbnRlclR5cGUoKSwgT3JpZ2luKCksIGRhdGFQb2ludGVyVmFsdWUpKTsKKyAgICBwcmludC0+
YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAgICAgICBwcm9jLCBTZXQsIE9yaWdpbigpLCBj
b2RlUG9pbnRlciwKKyAgICAgICAgcHJpbnQtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAg
ICBwcm9jLCBCMzo6QWRkLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwKKyAgICAgICAgICAg
IHByaW50LT5hcHBlbmRJbnRDb25zdGFudChwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwg
c2l6ZW9mKGludHB0cl90KSkpKTsKKyAgICBwcmludC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhkaXNwYXRjaCkpOworICAgIAor
ICAgIC8vIFN0b3A6IHJldHVybnMuCisgICAgc3RvcC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgICAgIHN0b3AtPmFwcGVuZElu
dENvbnN0YW50KHByb2MsIE9yaWdpbigpLCBwb2ludGVyVHlwZSgpLCAwKSk7CisgICAgCisgICAg
YXV0byBpbnRlcnByZXRlciA9IGNvbXBpbGUocHJvYyk7CisgICAgCisgICAgQ0hFQ0soQWRkRFAp
OworICAgIENIRUNLKEFkZENQKTsKKyAgICBDSEVDSyhBZGQpOworICAgIENIRUNLKFByaW50KTsK
KyAgICBDSEVDSyhTdG9wKTsKKyAgICAKKyAgICBWZWN0b3I8aW50cHRyX3Q+IGRhdGE7CisgICAg
VmVjdG9yPGludHB0cl90PiBjb2RlOworICAgIFZlY3RvcjxpbnRwdHJfdD4gc3RyZWFtOworICAg
IAorICAgIGRhdGEuYXBwZW5kKDEpOworICAgIGRhdGEuYXBwZW5kKDApOworICAgIAorICAgIGlm
IChzaG91bGRCZVZlcmJvc2UoKSkKKyAgICAgICAgZGF0YUxvZygiZGF0YSA9ICIsIGxpc3REdW1w
KGRhdGEpLCAiXG4iKTsKKyAgICAKKyAgICAvLyBXZSdsbCB3cml0ZSBhIHByb2dyYW0gdGhhdCBw
cmludHMgdGhlIG51bWJlcnMgMS4uMTAwLgorICAgIC8vIFdlIGV4cGVjdCBEUCB0byBwb2ludCBh
dCAjMC4KKyAgICBjb2RlLmFwcGVuZChBZGRDUCk7CisgICAgY29kZS5hcHBlbmQoNik7IC8vIGdv
IHRvIGxvb3AgYm9keQorICAgIAorICAgIC8vIExvb3AgcmUtZW50cnk6CisgICAgLy8gV2UgZXhw
ZWN0IERQIHRvIHBvaW50IGF0ICMxIGFuZCBmb3IgIzEgdG8gYmUgb2Zmc2V0IGJ5IC0xMDAuCisg
ICAgY29kZS5hcHBlbmQoQWRkKTsKKyAgICBjb2RlLmFwcGVuZCgxMDApOworICAgIAorICAgIGNv
ZGUuYXBwZW5kKEFkZERQKTsKKyAgICBjb2RlLmFwcGVuZCgtMSk7CisgICAgCisgICAgLy8gTG9v
cCBoZWFkZXI6CisgICAgLy8gV2UgZXhwZWN0IERQIHRvIHBvaW50IGF0ICMwLgorICAgIGNvZGUu
YXBwZW5kKEFkZERQKTsKKyAgICBjb2RlLmFwcGVuZCgxKTsKKyAgICAKKyAgICBjb2RlLmFwcGVu
ZChBZGQpOworICAgIGNvZGUuYXBwZW5kKDEpOworICAgIAorICAgIGNvZGUuYXBwZW5kKFByaW50
KTsKKyAgICAKKyAgICBjb2RlLmFwcGVuZChBZGQpOworICAgIGNvZGUuYXBwZW5kKC0xMDApOwor
ICAgIAorICAgIC8vIFdlIHdhbnQgdG8gc3RvcCBpZiBpdCdzIHplcm8gYW5kIGNvbnRpbnVlIGlm
IGl0J3Mgbm9uLXplcm8uIEFkZENQIHRha2VzIHRoZSBicmFuY2ggaWYgaXQncworICAgIC8vIG5v
bi16ZXJvLgorICAgIGNvZGUuYXBwZW5kKEFkZENQKTsKKyAgICBjb2RlLmFwcGVuZCgtMTEpOyAv
LyBnbyB0byBsb29wIHJlLWVudHJ5LgorICAgIAorICAgIGNvZGUuYXBwZW5kKFN0b3ApOworICAg
IAorICAgIGlmIChzaG91bGRCZVZlcmJvc2UoKSkKKyAgICAgICAgZGF0YUxvZygiY29kZSA9ICIs
IGxpc3REdW1wKGNvZGUpLCAiXG4iKTsKKyAgICAKKyAgICBDSEVDSyghaW52b2tlPGludHB0cl90
PigqaW50ZXJwcmV0ZXIsIGRhdGEuZGF0YSgpLCBjb2RlLmRhdGEoKSwgJnN0cmVhbSkpOworICAg
IAorICAgIENIRUNLKHN0cmVhbS5zaXplKCkgPT0gMTAwKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgMTAwOyArK2kpCisgICAgICAgIENIRUNLKHN0cmVhbVtpXSA9PSBpICsgMSk7Cisg
ICAgCisgICAgaWYgKHNob3VsZEJlVmVyYm9zZSgpKQorICAgICAgICBkYXRhTG9nKCJzdHJlYW0g
PSAiLCBsaXN0RHVtcChzdHJlYW0pLCAiXG4iKTsKK30KKwogdm9pZCB0ZXN0UmVkdWNlU3RyZW5n
dGhDaGVja0JvdHRvbVVzZUluQW5vdGhlckJsb2NrKCkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsK
QEAgLTEzNTQ3LDggKzEzNzgzLDEzIEBAIHZvaWQgcnVuKGNvbnN0IGNoYXIqIGZpbHRlcikKICAg
ICBSVU4odGVzdFNwaWxsRGVmU21hbGxlclRoYW5Vc2UoKSk7CiAgICAgUlVOKHRlc3RTcGlsbFVz
ZUxhcmdlclRoYW5EZWYoKSk7CiAgICAgUlVOKHRlc3RMYXRlUmVnaXN0ZXIoKSk7Cis8PDw8PDw8
IC5taW5lCisgICAgCisgICAgUlVOKHRlc3RUaHJlYWRlZEludGVycHJldGVyKCkpOworPT09PT09
PQogICAgIFJVTih0ZXN0UmVkdWNlU3RyZW5ndGhDaGVja0JvdHRvbVVzZUluQW5vdGhlckJsb2Nr
KCkpOwogICAgIFJVTih0ZXN0UmVzZXRSZWFjaGFiaWxpdHlEYW5nbGluZ1JlZmVyZW5jZSgpKTsK
Kz4+Pj4+Pj4gLnIyMDI4MDkKIAogICAgIGlmICh0YXNrcy5pc0VtcHR5KCkpCiAgICAgICAgIHVz
YWdlKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5jcHAJKHJl
dmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEzNSw2ICsxMzUsMTEgQEAgdm9pZCBDb2RlOjphZGRGYXN0
VG1wKFRtcCB0bXApCiAgICAgbV9mYXN0VG1wcy5hZGQodG1wKTsKIH0KIAordm9pZCogQ29kZTo6
YWRkRGF0YVNlY3Rpb24oc2l6ZV90IHNpemUpCit7CisgICAgcmV0dXJuIG1fcHJvYy5hZGREYXRh
U2VjdGlvbihzaXplKTsKK30KKwogdW5zaWduZWQgQ29kZTo6anNIYXNoKCkgY29uc3QKIHsKICAg
ICB1bnNpZ25lZCByZXN1bHQgPSAwOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fp
ci9BaXJDb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9B
aXJDb2RlLmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvQWlyQ29kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAi
QWlyU3BlY2lhbC5oIgogI2luY2x1ZGUgIkFpclN0YWNrU2xvdC5oIgogI2luY2x1ZGUgIkFpclRt
cC5oIgorI2luY2x1ZGUgIkIzSW5kZXhNYXAuaCIKICNpbmNsdWRlICJCM1NwYXJzZUNvbGxlY3Rp
b24uaCIKICNpbmNsdWRlICJSZWdpc3RlckF0T2Zmc2V0TGlzdC5oIgogI2luY2x1ZGUgIlN0YWNr
QWxpZ25tZW50LmgiCkBAIC0yMDMsNiArMjA0LDggQEAgcHVibGljOgogICAgIHZvaWQgYWRkRmFz
dFRtcChUbXApOwogICAgIGJvb2wgaXNGYXN0VG1wKFRtcCB0bXApIGNvbnN0IHsgcmV0dXJuIG1f
ZmFzdFRtcHMuY29udGFpbnModG1wKTsgfQogICAgIAorICAgIHZvaWQqIGFkZERhdGFTZWN0aW9u
KHNpemVfdCk7CisgICAgCiAgICAgLy8gVGhlIG5hbWUgaGFzIHRvIGJlIGEgc3RyaW5nIGxpdGVy
YWwsIHNpbmNlIHdlIGRvbid0IGRvIGFueSBtZW1vcnkgbWFuYWdlbWVudCBmb3IgdGhlIHN0cmlu
Zy4KICAgICB2b2lkIHNldExhc3RQaGFzZU5hbWUoY29uc3QgY2hhciogbmFtZSkKICAgICB7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRlLmNwcAkocmV2
aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDEwICs0OCwxMyBAQAogI2luY2x1ZGUgIkFpclZh
bGlkYXRlLmgiCiAjaW5jbHVkZSAiQjNDb21tb24uaCIKICNpbmNsdWRlICJCM0luZGV4TWFwLmgi
CisjaW5jbHVkZSAiQjNQb2x5SnVtcFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNQcm9jZWR1cmUuaCIK
ICNpbmNsdWRlICJCM1RpbWluZ1Njb3BlLmgiCisjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIK
ICNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKICNpbmNsdWRlICJEaXNhbGxvd01hY3JvU2NyYXRj
aFJlZ2lzdGVyVXNhZ2UuaCIKKyNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAKIG5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UgQWlyIHsKIApAQCAtMTk2LDcgKzE5OSw4IEBA
IHZvaWQgZ2VuZXJhdGUoQ29kZSYgY29kZSwgQ0NhbGxIZWxwZXJzJiAKIAogICAgIGZvciAoQmFz
aWNCbG9jayogYmxvY2sgOiBjb2RlKSB7CiAgICAgICAgIGJsb2NrSnVtcHNbYmxvY2tdLmxpbmso
JmppdCk7Ci0gICAgICAgIGJsb2NrTGFiZWxzW2Jsb2NrXSA9IGppdC5sYWJlbCgpOworICAgICAg
ICBDQ2FsbEhlbHBlcnM6OkxhYmVsIGxhYmVsID0gaml0LmxhYmVsKCk7CisgICAgICAgIGJsb2Nr
TGFiZWxzW2Jsb2NrXSA9IGxhYmVsOwogICAgICAgICBBU1NFUlQoYmxvY2stPnNpemUoKSA+PSAx
KTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGJsb2NrLT5zaXplKCkgLSAxOyAr
K2kpIHsKICAgICAgICAgICAgIEluc3QmIGluc3QgPSBibG9jay0+YXQoaSk7CkBAIC0yMjgsMjYg
KzIzMiw1NCBAQCB2b2lkIGdlbmVyYXRlKENvZGUmIGNvZGUsIENDYWxsSGVscGVycyYgCiAgICAg
ICAgICAgICBhZGRJdGVtKGJsb2NrLT5sYXN0KCkpOwogICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgIH0KLQorICAgICAgICAKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGp1bXAgPSBi
bG9jay0+bGFzdCgpLmdlbmVyYXRlKGppdCwgY29udGV4dCk7Ci0gICAgICAgIHN3aXRjaCAoYmxv
Y2stPm51bVN1Y2Nlc3NvcnMoKSkgewotICAgICAgICBjYXNlIDA6Ci0gICAgICAgICAgICBBU1NF
UlQoIWp1bXAuaXNTZXQoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAxOgot
ICAgICAgICAgICAgbGluayhqdW1wLCBibG9jay0+c3VjY2Vzc29yQmxvY2soMCkpOwotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgMjoKLSAgICAgICAgICAgIGxpbmsoanVtcCwgYmxv
Y2stPnN1Y2Nlc3NvckJsb2NrKDApKTsKLSAgICAgICAgICAgIGlmIChibG9jay0+c3VjY2Vzc29y
QmxvY2soMSkgIT0gY29kZS5maW5kTmV4dEJsb2NrKGJsb2NrKSkKLSAgICAgICAgICAgICAgICBs
aW5rKGppdC5qdW1wKCksIGJsb2NrLT5zdWNjZXNzb3JCbG9jaygxKSk7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgLy8gVGhlIGp1bXAgd29uJ3Qg
YmUgc2V0IGZvciBQb2x5SnVtcCBiZWNhdXNlIGl0IGxldHMgaXRzIGZhaXRoIGluIHRoZSBhZGRy
ZXNzIG9wZXJhbmQKKyAgICAgICAgLy8gZ3VpZGUgd2hlcmUgaXQganVtcHMuIEl0IHdvbid0IGJl
IHNldCBmb3IgT29wcyBiZWNhdXNlIHRoZW4gaXQgd29uJ3QgaGF2ZSBhbnkgc3VjY2Vzc29ycy4K
KyAgICAgICAgaWYgKGp1bXAuaXNTZXQoKSkgeworICAgICAgICAgICAgc3dpdGNoIChibG9jay0+
bnVtU3VjY2Vzc29ycygpKSB7CisgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAg
bGluayhqdW1wLCBibG9jay0+c3VjY2Vzc29yQmxvY2soMCkpOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAgIGxpbmsoanVtcCwgYmxv
Y2stPnN1Y2Nlc3NvckJsb2NrKDApKTsKKyAgICAgICAgICAgICAgICBpZiAoYmxvY2stPnN1Y2Nl
c3NvckJsb2NrKDEpICE9IGNvZGUuZmluZE5leHRCbG9jayhibG9jaykpCisgICAgICAgICAgICAg
ICAgICAgIGxpbmsoaml0Lmp1bXAoKSwgYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDEpKTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAg
UkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBhZGRJdGVtKGJsb2NrLT5sYXN0KCkpOwog
ICAgIH0KKyAgICAKKyAgICAvLyBUYWtlIGNhcmUgb2YgUG9seUp1bXAuIFdlIGRvIHRoaXMgbGFz
dCBiZWNhdXNlIGl0IHJlbGllcyBvbiBrbm93aW5nIHdoZXJlIGFsbCBvZiB0aGUgYmFzaWMKKyAg
ICAvLyBibG9jayBsYW5kZWQuCisgICAgZm9yIChCYXNpY0Jsb2NrKiBibG9jayA6IGNvZGUpIHsK
KyAgICAgICAgaWYgKGJsb2NrLT5sYXN0KCkub3Bjb2RlICE9IFBvbHlKdW1wKQorICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgIAorICAgICAgICBQb2x5SnVtcFZhbHVlKiBwb2x5SnVtcCA9
IGJsb2NrLT5sYXN0KCkub3JpZ2luLT5hczxQb2x5SnVtcFZhbHVlPigpOworICAgICAgICBSRUxF
QVNFX0FTU0VSVChwb2x5SnVtcC0+bnVtU3VjY2Vzc29ycygpID09IGJsb2NrLT5udW1TdWNjZXNz
b3JzKCkpOworICAgICAgICAKKyAgICAgICAgUmVmUHRyPFNoYXJlZFRhc2s8UG9seUp1bXBWYWx1
ZTo6Q2FsbGJhY2tGdW5jdGlvblR5cGU+PiB0YXNrID0gcG9seUp1bXAtPmNhbGxiYWNrVGFzaygp
OworICAgICAgICBpZiAoIXRhc2spCisgICAgICAgICAgICBjb250aW51ZTsgLy8gVGhpcyB3b3Vs
ZCBiZSB3ZWlyZCwgYnV0IHdlIGFsbG93IGl0LgorICAgICAgICAKKyAgICAgICAgVmVjdG9yPEND
YWxsSGVscGVyczo6TGFiZWw+IGxhYmVsczsKKyAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBzdWNj
ZXNzb3IgOiBibG9jay0+c3VjY2Vzc29yQmxvY2tzKCkpCisgICAgICAgICAgICBsYWJlbHMuYXBw
ZW5kKGJsb2NrTGFiZWxzW3N1Y2Nlc3Nvcl0pOworICAgICAgICAKKyAgICAgICAgaml0LmFkZExp
bmtUYXNrKAorICAgICAgICAgICAgWz1dIChMaW5rQnVmZmVyJiBsaW5rQnVmZmVyKSB7CisgICAg
ICAgICAgICAgICAgVmVjdG9yPE1hY3JvQXNzZW1ibGVyQ29kZVB0cj4gcG9pbnRlcnM7CisgICAg
ICAgICAgICAgICAgZm9yIChDQ2FsbEhlbHBlcnM6OkxhYmVsIGxhYmVsIDogbGFiZWxzKQorICAg
ICAgICAgICAgICAgICAgICBwb2ludGVycy5hcHBlbmQobGlua0J1ZmZlci5sb2NhdGlvbk9mKGxh
YmVsKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgdGFzay0+cnVuKHBvaW50
ZXJzKTsKKyAgICAgICAgICAgIH0pOworICAgIH0KIAogICAgIHBjVG9PcmlnaW5NYXAuYXBwZW5k
SXRlbShqaXQubGFiZWwoKSwgT3JpZ2luKCkpOwogICAgIC8vIEZJWE1FOiBNYWtlIGxhdGUgcGF0
aHMgaGF2ZSBPcmlnaW5zOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTUzNjg5CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckluc3QuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdC5jcHAJKHJl
dmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDYgKzQ1LDExIEBAIGJvb2wgSW5zdDo6aGFzQXJnRWZm
ZWN0cygpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorYm9vbCBJbnN0Ojppc0Nsb25lYWJsZSgp
Cit7CisgICAgcmV0dXJuICFvcmlnaW4gfHwgb3JpZ2luLT5pc0Nsb25lYWJsZSgpOworfQorCiB1
bnNpZ25lZCBJbnN0Ojpqc0hhc2goKSBjb25zdAogewogICAgIHVuc2lnbmVkIHJlc3VsdCA9IHN0
YXRpY19jYXN0PHVuc2lnbmVkPihvcGNvZGUpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJJbnN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9BaXJJbnN0LmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvQWlySW5zdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODgsNiArMTg4LDEwIEBAIHB1
YmxpYzoKICAgICAvLyByZXR1cm5zIDIgaWYgMCBhbmQgMSBiZW5lZml0IGZyb20gYWxpYXNpbmcg
dG8gVG1wMy4KICAgICBPcHRpb25hbDx1bnNpZ25lZD4gc2hvdWxkVHJ5QWxpYXNpbmdEZWYoKTsK
ICAgICAKKyAgICAvLyBTb21lIGluc3R1Y3Rpb25zIHdpbGwgcmVmdXNlIHRvIGFsbG93IGNsb25p
bmcuIElmIHRoaXMgcmV0dXJucyBmYWxzZSwgeW91IG11c3QgbWFrZSBzdXJlIHRoYXQKKyAgICAv
LyB5b3UgbmV2ZXIgaW50cm9kdWNlIGNvcGllcyBvZiB0aGUgaW5zdHJ1Y3Rpb24uCisgICAgYm9v
bCBpc0Nsb25lYWJsZSgpOworICAgIAogICAgIC8vIFRoaXMgY29tcHV0ZXMgYSBoYXNoIGZvciBj
b21wYXJpbmcgdGhpcyB0byBKU0FpcidzIEluc3QuCiAgICAgdW5zaWduZWQganNIYXNoKCkgY29u
c3Q7CiAKSW5kZXg6IFdlYnNpdGVzL3dlYmtpdC5vcmcvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYnNpdGVzL3dlYmtpdC5vcmcvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMDI4MDkpCisrKyBXZWJz
aXRlcy93ZWJraXQub3JnL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBA
CisyMDE2LTA1LTI5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
SW1wbGVtZW50IHRhYmxlLWJhc2VkIHN3aXRjaGVzIGluIEIzL0FpcgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxMTQxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBVcGRhdGUgZG9jdW1lbnRh
dGlvbiBmb3IgdGhlIG5ldyBQb2x5SnVtcCBvcGNvZGUuCisKKyAgICAgICAgKiBkb2NzL2IzL2lu
dGVybWVkaWF0ZS1yZXByZXNlbnRhdGlvbi5odG1sOgorCiAyMDE2LTA3LTAxICBKb24gRGF2aXMg
IDxqb25kQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGRlZCBhIGNvbG9yZnVsIG5ldyBpbWFnZSBh
bmQgZml4ZWQgdGhlIE9wZW4gR3JhcGggYXR0cmlidXRlLgpJbmRleDogV2Vic2l0ZXMvd2Via2l0
Lm9yZy9kb2NzL2IzL2ludGVybWVkaWF0ZS1yZXByZXNlbnRhdGlvbi5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYnNpdGVzL3dlYmtpdC5vcmcvZG9jcy9iMy9pbnRlcm1lZGlhdGUtcmVwcmVzZW50YXRp
b24uaHRtbAkocmV2aXNpb24gMjAyODA5KQorKysgV2Vic2l0ZXMvd2Via2l0Lm9yZy9kb2NzL2Iz
L2ludGVybWVkaWF0ZS1yZXByZXNlbnRhdGlvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01Mzcs
NiArNTM3LDM5IEBAIHBhdGNocG9pbnQtPnNldEdlbmVyYXRvcigKICAgICAgICAgYWxzbyBjb250
YWlucyBhIGZhbGwtdGhyb3VnaCB0YXJnZXQgaW4gY2FzZSB0aGUgY2hpbGQgaGFzIGEgdmFsdWUg
dGhhdCB3YXNuJ3QgbWVudGlvbmVkCiAgICAgICAgIGluIHRoZSBjYXNlcyBsaXN0LiAgTXVzdCB1
c2UgdGhlIFN3aXRjaFZhbHVlIGNsYXNzLiAgTXVzdCBhcHBlYXIgYXQgdGhlIGVuZCBvZiB0aGUg
YmFzaWMKICAgICAgICAgYmxvY2suPC9kZD4KKyAgICAgIAorICAgICAgPGR0PlZvaWQgUG9seUp1
bXAoSW50UHRyLCBibG9ja3MuLi4pPC9kdD4KKyAgICAgIDxkZD4KKyAgICAgICAgPHA+SnVtcHMg
dG8gdGhlIGdpdmVuIGFkZHJlc3MuIFRoZSBjb21waWxlciB3aWxsIGFzc3VtZSB0aGF0IHRoaXMg
anVtcHMgdG8gb25lIG9mIHRoZSBnaXZlbgorICAgICAgICAgIGJsb2Nrcy4gVGhlIGNvbXBpbGVy
IG1ha2VzIG5vIGF0dGVtcHQgdG8gcHJvdmUgb3IgdmFsaWRhdGUgdGhhdCB0aGUgcGFzc2VkIGp1
bXAgYWRkcmVzcyBpcworICAgICAgICAgIGFjdHVhbGx5IHRoZSBhZGRyZXNzIG9mIGFueSBvZiB0
aG9zZSBibG9ja3MuIE5vbnNlbnNpY2FsIHRoaW5ncyB3aWxsIGhhcHBlbiBpZiB0aGUgcGFzc2Vk
CisgICAgICAgICAgYWRkcmVzcyBpcyBub3QgdGhlIGFkZHJlc3Mgb2Ygb25lIG9mIHRoZSBibG9j
a3MgaW4gdGhlIHN1Y2Nlc3NvciBsaXN0LiBZb3UgY2FuIGFycmFuZ2UgdG8KKyAgICAgICAgICBn
ZXQgdGhlIGFkZHJlc3NlcyBvZiBibG9ja3MgYnkgcGFzc2luZyBhIGNhbGxiYWNrIHRvIFBvbHlK
dW1wLiBUaGlzIGlzIHVzZWQgaW50ZXJuYWxseQorICAgICAgICAgIGZvciBsb3dlcmluZyBTd2l0
Y2ggb3Bjb2Rlcy4gWW91IGNhbiBhbHNvIHVzZSBpdCBkaXJlY3RseS48L3A+CisgICAgICAKKyAg
ICAgICAgPHA+UG9seUp1bXAgaXMgbm90IGNsb25lYWJsZS4gRm9yIGVhY2ggUG9seUp1bXAgeW91
IGNyZWF0ZSwgdGhlcmUgd2lsbCBiZSBvbmUgaW5kaXJlY3QKKyAgICAgICAgICBqdW1wIGdlbmVy
YXRlZC4gVGhpcyBpcyBuZWNlc3NhcnkgdG8gZW5zdXJlIHNvdW5kbmVzcyBvZiB0aGUgY2FsbGJh
Y2suIElmIHRoZSBQb2x5SnVtcAorICAgICAgICAgIGNvdWxkIGJlIGNsb25lZCwgdGhlbiB0aGUg
Y2FsbGJhY2sgd291bGQgZ2V0IGNhbGxlZCBmb3IgZWFjaCBjbG9uZS4gUHJlc3VtYWJseSwgeW91
J2QKKyAgICAgICAgICBpbXBsZW1lbnQgdGhlIGNhbGxiYWNrIGJ5IHBvcHVsYXRpbmcgc29tZSB0
YWJsZSB3aXRoIHRoZSBhZGRyZXNzZXMgb2YgdGhlIGJsb2Nrcy4gSWYgdGhlCisgICAgICAgICAg
Y2FsbGJhY2sgZ2V0cyBjYWxsZWQgbXVsdGlwbGUgdGltZXMgdGhlbiBpdCBtYXkgcmV0dXJuIGRp
ZmZlcmVudCBhZGRyZXNzZXMgZWFjaCB0aW1lIC0KKyAgICAgICAgICBzaW5jZSBhZnRlciBjbG9u
aW5nIGEgUG9seUp1bXAsIHRoZSBjb21waWxlciBtYXkgcmV0YXJnZXQgYW55IG9mIGl0cyBzdWNj
ZXNzb3IgZWRnZXMuCisgICAgICAgICAgVGhpcyB3b3VsZCBiZSBjb25mdXNpbmcsIHNpbmNlIHRo
ZW4geW91IHdvdWxkbid0IGtub3cgd2hhdCB0byBkbyB3aXRoIGRpc2NyZXBhbmNpZXMgYmV0d2Vl
bgorICAgICAgICAgIGFkZHJlc3NlcyByZXR1cm5lZCBieSB0aGUgdmFyaW91cyBjYWxscyB0byB0
aGUgY2FsbGJhY2suIERpc2FsbG93aW5nIGNsb25pbmcgb2YgUG9seUp1bXAKKyAgICAgICAgICBz
b2x2ZXMgdGhpcyBwcm9ibGVtLjwvcD4KKyAgICAgICAgCisgICAgICAgIDxwPkEgY2xvc2VseSBy
ZWxhdGVkIHByb2JsZW0gaXMgdGhhdCBpZiB5b3UgZW1pdCBtdWx0aXBsZSBQb2x5SnVtcCBpbnN0
cnVjdGlvbnMsIHRoZW4gZXZlbgorICAgICAgICAgIGlmIHRoZXkgaW5pdGlhbGx5IHNoYXJlIHRo
ZSBzYW1lIHN1Y2Nlc3NvcnMsIHlvdSBjYW5ub3QgZ3VhcmFudGVlIHRoYXQgdGhleSB3aWxsIGNv
bnRpbnVlCisgICAgICAgICAgdG8gc2hhcmUgdGhlIHNhbWUgc3VjY2Vzc29ycyBhZnRlciBvcHRp
bWl6YXRpb24uIFRoaXMgbWVhbnMgdGhhdCBQb2x5SnVtcCBjYW5ub3QKKyAgICAgICAgICBjdXJy
ZW50bHkgYmUgdXNlZCBmb3IgaW1wbGVtZW50aW5nIGRpcmVjdCB0aHJlYWRlZCBpbnRlcnByZXRl
cnMsIGF0IGxlYXN0IG5vdCB0aGUgY2xhc3NpYworICAgICAgICAgIGtpbmQ6IHRvIG1ha2UgaXQg
d29yaywgeW91IGhhdmUgdG8gaGF2ZSBhIHNoYXJlZCBkaXNwYXRjaCBibG9jayBzbyB0aGF0IHlv
dSBoYXZlIGEgc2luZ2xlCisgICAgICAgICAgUG9seUp1bXAuIFRoaXMgbWlnaHQgYmUgYmV0dGVy
IHRoYW4gYSBTd2l0Y2gtYmFzZWQgaW50ZXJwcmV0ZXIsIGJ1dCBpdCdzIGRlZmluaXRlbHkgbm90
CisgICAgICAgICAgYXMgZ29vZCBhcyB3aGF0IHlvdSdkIGdldCB3aXRoIEdDQy1zdHlsZSBjb21w
dXRlZCBnb3RvLjwvcD4KKyAgICAgICAgCisgICAgICAgIDxwPlBvbHlKdW1wIGlzIHNvIG5hbWVk
IHRvIGF2b2lkIGNvbmZ1c2lvbiB3aXRoIGNvbXB1dGVkIGdvdG9zIGFuZCBpbmRpcmVjdCBicmFu
Y2hlcyBpbgorICAgICAgICAgIG90aGVyIGNvbXBpbGVycy4gSXQgaGFzIHNpZ25pZmljYW50IHJl
c3RyaWN0aW9ucyB0aGF0IHRob3NlIG9wZXJhdGlvbnMgZG8gbm90IGhhdmUuIFRoZXNlCisgICAg
ICAgICAgcmVzdHJpY3Rpb25zIG1ha2UgaXQgZWFzaWVyIGZvciB0aGUgb3B0aW1pemVyIHRvIHdv
cmsgd2l0aCBzaW5jZSB0aGUgY29udHJvbCBmbG93IGdldHMgdG8KKyAgICAgICAgICBiZSBleHBs
aWNpdCAoUG9seUp1bXAgaGFzIGEgZmluaXRlIHNldCBvZiBzdWNjZXNzb3JzIGxpa2UgYW55IG90
aGVyIGJsb2NrIHRlcm1pbmFsKS48L3A+CisgICAgICA8L2RkPgogCiAgICAgICA8ZHQ+Vm9pZCBS
ZXR1cm4oVCk8L2R0PgogICAgICAgPGRkPldvcmtzIGZvciBhbnkgdHlwZSBleGNlcHQgVm9pZC4g
IFJldHVybnMgdGhlIGdpdmVuIHZhbHVlIGFuZCB0ZXJtaW5hdGVzIHRoZSBwcm9jZWR1cmUuCklu
ZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyMDI4MDkpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxNi0wNS0yOSAgRmlsaXAgUGl6bG8gIDxmcGl6
bG9AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCB0YWJsZS1iYXNlZCBzd2l0Y2hlcyBp
biBCMy9BaXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE1MTE0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICoganMvcmVncmVzcy9iaWdzd2l0Y2gtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBq
cy9yZWdyZXNzL2JpZ3N3aXRjaC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL3Nj
cmlwdC10ZXN0cy9iaWdzd2l0Y2guanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKwogMjAxNi0w
Ny0wNCAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBV
bnJldmlld2VkLCBza2lwIG1pc2MtYnVncy04NDczODktanBlZzIwMDAuanMgaW4ganNjIHN0cmVz
cyB0ZXN0cwpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2gtZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNo
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3Mv
Ymlnc3dpdGNoCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5vIGV4Y2Vw
dGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLmh0bWwJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFRE
IEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
c2NyaXB0LXRlc3RzL2JpZ3N3aXRjaC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9iaWdzd2l0Y2guanMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvYmlnc3dpdGNo
LmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMv
Ymlnc3dpdGNoLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjExIEBACitmdW5jdGlvbiBm
b28obykgeworICAgIHZhciByZXN1bHQgPSAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAw
MDsgKytpKSB7CisgICAgICAgIHZhciB2YWx1ZSA9IGkgJiA2MzsKKyAgICAgICAgc3dpdGNoICh2
YWx1ZSkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICByZXN1bHQgKz0gby5hOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
LmI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgcmVz
dWx0ICs9IG8uYzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM6CisgICAgICAg
ICAgICByZXN1bHQgKz0gby5kOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDoK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSA1OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZjsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIDY6CisgICAgICAgICAgICByZXN1bHQgKz0gby5nOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgNzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA4OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8u
aTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDk6CisgICAgICAgICAgICByZXN1
bHQgKz0gby5qOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTA6CisgICAgICAg
ICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTE6
CisgICAgICAgICAgICByZXN1bHQgKz0gby5hOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgMTI6CisgICAgICAgICAgICByZXN1bHQgKz0gby5iOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgMTM6CisgICAgICAgICAgICByZXN1bHQgKz0gby5jOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTQ6CisgICAgICAgICAgICByZXN1bHQgKz0gby5kOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTU6CisgICAgICAgICAgICByZXN1bHQg
Kz0gby5lOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTY6CisgICAgICAgICAg
ICByZXN1bHQgKz0gby5mOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTc6Cisg
ICAgICAgICAgICByZXN1bHQgKz0gby5nOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgMTg6CisgICAgICAgICAgICByZXN1bHQgKz0gby5oOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgMTk6CisgICAgICAgICAgICByZXN1bHQgKz0gby5pOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgMjA6CisgICAgICAgICAgICByZXN1bHQgKz0gby5qOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjE6CisgICAgICAgICAgICByZXN1bHQgKz0g
by5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjI6CisgICAgICAgICAgICBy
ZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjM6CisgICAg
ICAgICAgICByZXN1bHQgKz0gby5hOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
MjQ6CisgICAgICAgICAgICByZXN1bHQgKz0gby5iOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgMjU6CisgICAgICAgICAgICByZXN1bHQgKz0gby5jOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgMjY6CisgICAgICAgICAgICByZXN1bHQgKz0gby5kOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjc6CisgICAgICAgICAgICByZXN1bHQgKz0gby5l
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjg6CisgICAgICAgICAgICByZXN1
bHQgKz0gby5mOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjk6CisgICAgICAg
ICAgICByZXN1bHQgKz0gby5nOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzA6
CisgICAgICAgICAgICByZXN1bHQgKz0gby5oOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgMzE6CisgICAgICAgICAgICByZXN1bHQgKz0gby5pOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgMzI6CisgICAgICAgICAgICByZXN1bHQgKz0gby5qOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzM6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzQ6CisgICAgICAgICAgICByZXN1bHQg
Kz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzU6CisgICAgICAgICAg
ICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzY6Cisg
ICAgICAgICAgICByZXN1bHQgKz0gby5hOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgMzc6CisgICAgICAgICAgICByZXN1bHQgKz0gby5iOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgMzg6CisgICAgICAgICAgICByZXN1bHQgKz0gby5jOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgMzk6CisgICAgICAgICAgICByZXN1bHQgKz0gby5kOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDA6CisgICAgICAgICAgICByZXN1bHQgKz0g
by5lOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDE6CisgICAgICAgICAgICBy
ZXN1bHQgKz0gby5mOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDI6CisgICAg
ICAgICAgICByZXN1bHQgKz0gby5nOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
NDM6CisgICAgICAgICAgICByZXN1bHQgKz0gby5oOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgNDQ6CisgICAgICAgICAgICByZXN1bHQgKz0gby5pOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgNDU6CisgICAgICAgICAgICByZXN1bHQgKz0gby5qOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDY6CisgICAgICAgICAgICByZXN1bHQgKz0gby5r
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDc6CisgICAgICAgICAgICByZXN1
bHQgKz0gby5pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDg6CisgICAgICAg
ICAgICByZXN1bHQgKz0gby5qOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDk6
CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgNTA6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgNTE6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTI6CisgICAgICAgICAgICByZXN1bHQgKz0gby5hOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTM6CisgICAgICAgICAgICByZXN1bHQg
Kz0gby5iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTQ6CisgICAgICAgICAg
ICByZXN1bHQgKz0gby5jOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTU6Cisg
ICAgICAgICAgICByZXN1bHQgKz0gby5kOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgNTY6CisgICAgICAgICAgICByZXN1bHQgKz0gby5lOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgNTc6CisgICAgICAgICAgICByZXN1bHQgKz0gby5mOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgNTg6CisgICAgICAgICAgICByZXN1bHQgKz0gby5nOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTk6CisgICAgICAgICAgICByZXN1bHQgKz0g
by5oOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNjA6CisgICAgICAgICAgICBy
ZXN1bHQgKz0gby5pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNjE6CisgICAg
ICAgICAgICByZXN1bHQgKz0gby5qOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
NjI6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXN1bHQgKz0gby56OworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworKGZ1bmN0aW9u
KCkgeworICAgIHZhciBvID0ge2E6MSwgYjoyLCBjOjMsIGQ6NCwgZTo1LCBmOjYsIGc6NywgaDo4
LCBpOjksIGo6MTAsIGs6MTEsIHo6MTAwfTsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpCisgICAgICAgIHJlc3VsdCArPSBmb28obyk7Cisg
ICAgaWYgKHJlc3VsdCAhPSA3OTY2MDAwMCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVz
dWx0OiAiICsgcmVzdWx0OworfSkoKTsKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282819</attachid>
            <date>2016-07-05 15:50:46 -0700</date>
            <delta_ts>2016-07-05 16:07:46 -0700</delta_ts>
            <desc>a tiny bit more</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>119331</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2NiBA
QAorMjAxNi0wNS0yOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IEltcGxlbWVudCB0YWJsZS1iYXNlZCBzd2l0Y2hlcyBpbiBCMy9BaXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTE0MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgSWYgYSBzd2l0Y2ggc3Rh
dGVtZW50IGdldHMgbGFyZ2UsIGl0J3MgYmV0dGVyIHRvIGV4cHJlc3MgaXQgYXMgYW4gaW5kaXJl
Y3QganVtcCByYXRoZXIgdGhhbgorICAgICAgICB1c2luZyBhIGJpbmFyeSBzd2l0Y2ggKGRpdmlk
ZS1hbmQtY29ucXVlciB0cmVlIG9mIGNvbXBhcmlzb25zIGxlYWRpbmcgdG8gTyhsb2cgbikgYnJh
bmNoZXMgdG8KKyAgICAgICAgZ2V0IHRvIHRoZSBzd2l0Y2ggY2FzZSkuIFdoZW4gZGVhbGluZyB3
aXRoIGludGVnZXIgc3dpdGNoZXMsIEZUTCB3aWxsIGFscmVhZHkgdXNlIHRoZSBCMworICAgICAg
ICBTd2l0Y2ggYW5kIGV4cGVjdCB0aGlzIHRvIGdldCBsb3dlcmVkIGFzIGVmZmljaWVudGx5IGFz
IHBvc3NpYmxlOyBpdCdzIGEgYnVnIHRoYXQgQjMgd2lsbAorICAgICAgICBhbHdheXMgdXNlIGEg
YmluYXJ5IHN3aXRjaCByYXRoZXIgdGhhbiBpbmRpcmVjdCBqdW1wcy4gV2hlbiBkZWFsaW5nIHdp
dGggc3dpdGNoZXMgb3ZlciBzb21lCisgICAgICAgIG1vcmUgc29waGlzdGljYXRlZCB0eXBlcywg
d2UnZCB3YW50IEZUTCB0byBidWlsZCBhbiBpbmRpcmVjdCBqdW1wIHRhYmxlIGl0c2VsZiBhbmQg
dXNlCisgICAgICAgIHNvbWV0aGluZyBsaWtlIGEgaGFzaHRhYmxlIHRvIGZlZWQgaXQuIEluIHRo
YXQgY2FzZSwgdGhlcmUgd2lsbCBiZSBubyBCMyBTd2l0Y2g7IHdlJ2xsIHdhbnQKKyAgICAgICAg
c29tZSBraW5kIG9mIGluZGlyZWN0IGp1bXAgaW5zdHJ1Y3Rpb24uCisgICAgICAgIAorICAgICAg
ICBUaGlzIGltcGxpZXMgdGhhdCB3ZSB3YW50IEIzIHRvIGhhdmUgdGhlIGFiaWxpdHkgdG8gbG93
ZXIgU3dpdGNoIHRvIGluZGlyZWN0IGp1bXBzIGFuZCB0bworICAgICAgICBleHBvc2UgdGhvc2Ug
aW5kaXJlY3QganVtcHMgaW4gSVIgc28gdGhhdCB0aGUgRlRMIGNvdWxkIGRvIGl0cyBvd24gaW5k
aXJlY3QganVtcHMgZm9yCisgICAgICAgIHN3aXRjaGVzIG92ZXIgbW9yZSBjb21wbGljYXRlZCB0
aGluZ3MgbGlrZSBzdHJpbmdzLiBUaGlzIGNoYW5nZSBpbnRyb2R1Y2VzIGFuIGluZGlyZWN0IGp1
bXAKKyAgICAgICAgaW5zdHJ1Y3Rpb24gdG8gQjMgYW5kIGNhbGxzIGl0IFBvbHlKdW1wLiBJdCBo
YXMgc29tZSB1bmlxdWUgc2VtYW50aWNzIHRoYXQgbWFrZSBpdCB2ZXJ5CisgICAgICAgIGRpZmZl
cmVudCBmcm9tICJpbmRpcmVjdCBqdW1wcyIsICJpbmRpcmVjdCBicmFuY2hlcyIsIGFuZCAiY29t
cHV0ZWQgZ290b3MiIC0gYWxsIHRlcm1zIG9mIGFydAorICAgICAgICB1c2VkIGluIG90aGVyIGNv
bXBpbGVycy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaW1wbGVtZW50cyB0aGUgbW9zdCBiYXNp
YyBraW5kIG9mIFN3aXRjaC10by1Qb2x5SnVtcCBsb3dlcmluZyBpbiBCMzo6bG93ZXJNYWNyb3Mo
KS4gQXMKKyAgICAgICAgcGFydCBvZiB0aGUgZXhpc3RpbmcgZGl2aWRlLWFuZC1jb25xdWVyIHRo
YXQgY3JlYXRlcyBicmFuY2hlcywgaWYgaXQgZGV0ZWN0cyB0aGF0IHRoZSBzZXQgb2YKKyAgICAg
ICAgY2FzZXMgc2F0aXNmaWVzIHNvbWUgY29uZGl0aW9ucyAoZGVuc2l0eSBvZiBjYXNlIHZhbHVl
cyBhbmQgdG90YWwgc2l6ZSksIHRoZW4gaXQgd2lsbCBlbWl0IGEKKyAgICAgICAgUG9seUp1bXAu
CisgICAgICAgIAorICAgICAgICBUaGUgcHJvYmxlbSB3aXRoIGNsYXNzaWMgaW5kaXJlY3QganVt
cHMgaXMgdGhhdCB0aGV5IGZvcmNlIHRoZSBjb21waWxlciB0byBiZSBjb25zZXJ2YXRpdmUKKyAg
ICAgICAgYWJvdXQgY29udHJvbCBmbG93LiBUaGUgY29tcGlsZXIgbXVzdCBhc3N1bWUgdGhhdCB0
aGUgaW5kaXJlY3QganVtcCBtYXkgdHJhbnNmZXIgY29udHJvbCBmbG93CisgICAgICAgIHRvIGFu
eSBlc2NhcGVkIGJsb2NrIChibG9jayBsYWJlbGVkIGFzIGJlaW5nIGEgcG9zc2libGUgdGFyZ2V0
IGZvciBpbmRpcmVjdCBqdW1wcywgb3IgaWYgbm8KKyAgICAgICAgc3VjaCBsYWJlbGluZyBpcyBh
dmFpbGFibGUsIHRoZSBjb21waWxlciBtdXN0IGFzc3VtZSB0aGF0IGl0IG1heSB0YXJnZXQgYW55
IGJsb2NrKS4gVGhlIHdvcnN0CisgICAgICAgIHBhcnQgaXMgdGhhdCB0aGUgaW1wbGljaXQgY29u
dHJvbCBmbG93IGVkZ2VzIGZyb20gdGhlIGluZGlyZWN0IGp1bXAgdG8gdGhlIGVzY2FwZWQgYmxv
Y2tzCisgICAgICAgIGNhbm5vdCBiZSBicm9rZW4uIFRoaXMgaW52YWxpZGF0ZXMgYSBwcmluY2lw
bGUgb2YgQjMgSVI6IGFueSBwaGFzZSBtYXkgYnJlYWsgYW55IGNyaXRpY2FsCisgICAgICAgIGVk
Z2UgZm9yIGFueSByZWFzb24uIE91ciBTU0EgY29udmVyc2lvbiB3b3VsZCBicmVhayBpZiB3ZSBy
ZXZva2VkIHRoaXMgZmVhdHVyZS4gSXQncyBhY3R1YWxseQorICAgICAgICBtdWNoIHdvcnNlIHRo
YW4gdGhpcyAtIGJhc2ljYWxseSBhbnkgbG9naWMgb3ZlciBjb250cm9sIGZsb3cgd291bGQgaGF2
ZSB0byBiZSBoYWNrZWQgdG8gZGVhbAorICAgICAgICB3aXRoIHRoZXNlIHVuYnJlYWthYmxlIGVk
Z2VzLiBUaGlzIHdvdWxkIG1lYW4gY2hhbmdpbmcgYWxsIENGRyB0cmFuc2Zvcm1hdGlvbiB1dGls
aXRpZXMgYW5kCisgICAgICAgIHBhc3Nlcy4gV2UgaGF2ZSBhIGxvdCBvZiB0aG9zZSBhbmQgd2Ug
d2FudCBpdCB0byBiZSBlYXN5IHRvIHdyaXRlIG5ldyBvbmVzLgorICAgICAgICAKKyAgICAgICAg
VGhpcyBpcyB3aHkgd2UgdXNlIHNvbWV0aGluZyBuZXcgYW5kIHF1aXRlIGRpZmZlcmVudCBmcm9t
IGNsYXNzaWMgaW5kaXJlY3QganVtcHMuIFBvbHlKdW1wCisgICAgICAgIG1ha2VzIHRoZSBjb250
cm9sIGZsb3cgZWRnZXMgZXhwbGljaXQuIFRoZSBjbGllbnQgbXVzdCBzdXBwbHkgdGhlIHN1Y2Nl
c3NvcnMgd2hlbiBpdCBjcmVhdGVzCisgICAgICAgIHRoZSBQb2x5SnVtcC4gVGhlIGNvbXBpbGVy
IG1heSByZXdpcmUgdGhvc2Ugc3VjY2Vzc29yIGVkZ2VzIHRoZSBzYW1lIHdheSB0aGF0IGl0IHdv
dWxkIHJld2lyZQorICAgICAgICBhbnkgY29udHJvbCBmbG93IGVkZ2VzLiBDb25zZXF1ZW50bHkg
dGhlIHZhc3QgbWFqb3JpdHkgb2YgQ0ZHIHJlYXNvbmluZyBpbiBCMyBpcyB1bmNoYW5nZWQuCisg
ICAgICAgIElmIHlvdSBkb24ndCB3YW50IHRvIHVuZGVyc3RhbmQgUG9seUp1bXAsIGp1c3QgdGhp
bmsgb2YgaXQgbGlrZSB5b3Ugd291bGQgYSBTd2l0Y2ggd2l0aCBhbgorICAgICAgICBvcGFxdWUg
aW5jb21pbmcgdmFsdWUuIFRoaXMgd29ya3MgYmVjYXVzZSB3ZSBkbyBub3QgYWRkIGFueSBub3Rp
b24gb2YgZXNjYXBlZCBiYXNpYyBibG9ja3MuCisgICAgICAgIEluc3RlYWQgb2YgbGV0dGluZyB0
aGUgY2xpZW50IGdldCB0aGUgcG9pbnRlcnMgdG8gYmFzaWMgYmxvY2tzIGJ5IGVzY2FwaW5nIHRo
ZW0gbGlrZSBpbiBMTFZNLAorICAgICAgICB5b3UgY2FuIG9ubHkgZ2V0IHRoZSBwb2ludGVycyBv
ZiB0aGUgc3VjY2Vzc29ycyBvZiBQb2x5SnVtcCBieSByZWdpc3RlcmluZyBhIGNhbGxiYWNrIHdp
dGgKKyAgICAgICAgUG9seUp1bXAuIFRoaXMgY2FsbGJhY2sgZG9lc24ndCBhY3R1YWxseSBnaXZl
IHlvdSB0aGUgYWRkcmVzc2VzIG9mIGJhc2ljIGJsb2Nrcy4gSXQganVzdAorICAgICAgICBnaXZl
cyB5b3UgdGhlIGFkZHJlc3NlcyB3aGVyZSB5b3UgbXVzdCBqdW1wIHRvIHRyYW5zZmVyIGNvbnRy
b2wgZmxvdyBmcm9tIHRoYXQgUG9seUp1bXAgdG8KKyAgICAgICAgaXRzIHN1Y2Nlc3NvcnMuIFRo
aXMgbWVhbnMgdGhhdCB0aGUgbWFnaWMgb2YgUG9seUp1bXAgaXMgY29uZmluZWQgb25seSB0byB0
aGUgUG9seUp1bXAgaXRzZWxmCisgICAgICAgIGFuZCBkb2Vzbid0IGluZmVjdCByZWFzb25pbmcg
YWJvdXQgdGhlIGJhc2ljIGJsb2NrcyB0aGF0IGl0IGp1bXBzIHRvLgorICAgICAgICAKKyAgICAg
ICAgVGhlIG9ubHkgZG93bnNpZGUgaXMgdGhhdCB0aGF0IFBvbHlKdW1wIGlzIG5vdCBjbG9uZWFi
bGUuIFlvdSBjYW4ndCBjbG9uZSBpdCBiZWNhdXNlIGlmIHlvdQorICAgICAgICBkaWQsIHRoZW4g
dGhlIHR3byByZXN1bHRpbmcgUG9seUp1bXBzIG1heSBoYXZlIHRoZWlyIHN1Y2Nlc3NvciBlZGdl
cyByZXdpcmVkIGluZGVwZW5kZW50bHkgb2YKKyAgICAgICAgZWFjaCBvdGhlci4gVGhpcyBjb3Vs
ZCBlYXNpbHkgaGFwcGVuIGlmIHdlIGJyZWFrIGNyaXRpY2FsIGVkZ2VzLiBJZiB0aGF0IGRpZCBo
YXBwZW4gdGhlbiBpdAorICAgICAgICB3b3VsZCBicmVhayB0aGUgY2xpZW50IG9mIFBvbHlKdW1w
OiB0aGV5IHdvdWxkIGhhdmUgYWxyZWFkeSBjcmVhdGVkIHNvbWV0aGluZyBsaWtlIGEganVtcAor
ICAgICAgICB0YWJsZSBhbmQgd2lsbCBiZSBwb3B1bGF0aW5nIGl0IHZpYSB0aGUgY2FsbGJhY2ss
IGJ1dCBub3cgdGhlIGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkIHR3aWNlLAorICAgICAgICBhbmQg
bWF5IHJldHVybiBkaWZmZXJlbnQganVtcCBkZXN0aW5hdGlvbnMgZWFjaCB0aW1lLiBTbywgdGhp
cyBwYXRjaCBpbnRyb2R1Y2VzCisgICAgICAgIFZhbHVlOjppc0Nsb25lYWJsZSgpIGFuZCB0ZWFj
aGVzIGJvdGggb2Ygb3VyIGNvZGUgc3BlY2lhbGl6YXRpb24gb3B0aW1pemF0aW9ucyAodGFpbAor
ICAgICAgICBkdXBsaWNhdGlvbiBhbmQgc2VsZWN0IHNwZWNpYWxpemF0aW9uKSB0byBiYWlsIGlm
IHRoZSBjb2RlIHRoZXkgd2FudCB0byBzcGVjaWFsaXplIGlzIG5vdAorICAgICAgICBjbG9uZWFi
bGUuIFRoaXMgaXMgdG90YWxseSBiZW5pZ24gbW9zdCBvZiB0aGUgdGltZSwgc2luY2UgdGhvc2Ug
b3B0aW1pemF0aW9ucyB1c3VhbGx5IHJ1bgorICAgICAgICBiZWZvcmUgU3dpdGNoIGxvd2VyaW5n
LiBDbGllbnRzIHRoYXQgdXNlIFBvbHlKdW1wIGRpcmVjdGx5IGhhdmUgdG8gYXBwcmVjaWF0ZSB0
aGUgdHJhZGUtb2ZmOgorICAgICAgICBQb2x5SnVtcCBtYXkgZ2FpbiB0aGVtIHNvbWUgcGVyZm9y
bWFuY2UgYnV0IHRoZXkgYXJlIG9wdGluZyBvdXQgb2Ygb3B0aW1pemF0aW9ucyB0aGF0IHVzZQor
ICAgICAgICBjbG9uaW5nLiBBIGNsb3NlIGNvcm9sbGFyeSBvZiB0aGUgbm8tY2xvbmUgcnVsZSBp
cyB0aGF0IHRoZSBjbGllbnQgY2Fubm90IGNyZWF0ZSBtdWx0aXBsZQorICAgICAgICBQb2x5SnVt
cHMgdGhhdCBhcmUgZmVkIGJ5IGEgY29tbW9uIGp1bXAgdGFibGU6IHRoZSBmYWN0IHRoYXQgZWFj
aCBQb2x5SnVtcCBoYXMgYSBjYWxsYmFjaworICAgICAgICB0aGF0IGp1c3QgdGVsbHMgeW91IHRo
ZSBqdW1wIGRlc3RpbmF0aW9ucyBmb3IgaXRzIHN1Y2Nlc3NvciAqZWRnZXMqLCBub3Qgc3VjY2Vz
c29yICpibG9ja3MqLAorICAgICAgICBtZWFucyB0aGF0IGlmIHlvdSBjcmVhdGUgdHdvIFBvbHlK
dW1wcyBhbmQgZ2l2ZSB0aGVtIHRoZSBzYW1lIHN1Y2Nlc3NvciBsaXN0LCB5b3UgYXJlIG5vdAor
ICAgICAgICBndWFyYW50ZWVkIHRoYXQgdGhleSB3aWxsIGdldCB0aGUgc2FtZSBqdW1wIGRlc3Rp
bmF0aW9ucy4gVGhpcyBodXJ0cyBpZiB5b3Ugd2FudCB0byB1c2UKKyAgICAgICAgUG9seUp1bXAg
Zm9yIHRocmVhZGVkIGludGVycHJldGVycyBidXQgaXQncyBoYXJtbGVzcyBmb3Igc3dpdGNoIGxv
d2VyaW5nLiBUaGUgZ29hbCBvZgorICAgICAgICBQb2x5SnVtcCBpcyB0byBiZSBhd2Vzb21lIGZv
ciBzd2l0Y2ggbG93ZXJpbmcgd2hpbGUgbm90IGJyZWFraW5nIHRoZSByZXN0IG9mIHRoZSBjb21w
aWxlciwgc28KKyAgICAgICAgdGhpcyBpcyBwcm9iYWJseSBmaW5lLgorICAgICAgICAKKyAgICAg
ICAgVGhlIGlzQ2xvbmVhYmxlKCkgbWV0aG9kIGN1cnJlbnRseSBvbmx5IHJldHVybnMgdHJ1ZSBm
b3IgUG9seUp1bXAsIGJ1dCBJIGFudGljaXBhdGUgd2Ugd2lsbAorICAgICAgICBhZGQgb3RoZXIg
bm9uLWNsb25lYWJsZSB0aGluZ3MgbGF0ZXIuIEkgdGhpbmsgaXMgaXMgaW5oZXJlbnQgaW4gYSBj
b21waWxlciB0aGF0IGFsbG93cyBzdWNoCisgICAgICAgIGN1c3RvbWl6ZWFiaWxpdHkgZm9yIGl0
cyBjbGllbnRzLiBGb3IgZXhhbXBsZSwgd2UgbWF5IHdhbnQgdG8gYWRkIGEgZmxhZyB0byBQYXRj
aHBvaW50IHRoYXQKKyAgICAgICAgbWFrZXMgaXQgbm9uLWNsb25lYWJsZS4gU29tZXRpbWVzIHdl
IGhhdmUgdG8ganVtcCB0aHJvdWdoIGhvb3BzIGluIHRoZSBGVEwgYmVjYXVzZSBvZiB0aGUKKyAg
ICAgICAgY2xvbmVhYmlsaXR5IG9mIHBhdGNocG9pbnRzLiBUaGlzIGhhcHBlbnMgaW4gT1NSIGV4
aXRzLCB3aGljaCBwYXkgYSBzaWduaWZpY2FudCBtZW1vcnkgY29zdAorICAgICAgICBmb3IgYWRk
aXRpb25hbCBkYXRhIHN0cnVjdHVyZXMgdGhhdCBhcmUgdGhlcmUgaW4gY2FzZSBhbiBleGl0IGdl
dHMgY2xvbmVkLiBJdCBtYXkgYmUgbW9yZQorICAgICAgICBwcm9maXRhYmxlIHRvIGp1c3Qgc2F5
IHRoYXQgT1NSIGV4aXRzIChpLmUuIENoZWNrcyBhbmQgSW52YWxpZGF0aW9uUG9pbnQgUGF0Y2hw
b2ludHMpIGFyZSBub3QKKyAgICAgICAgY2xvbmVhYmxlLiBTdXJlbHkgdGhpcyB3b3VsZCByZWR1
Y2UgdGFpbCBkdXBsaWNhdGlvbiwgYnV0IHRhaWwgZHVwbGljYXRpb24gaXMgbW9zdCBwcm9maXRh
YmxlCisgICAgICAgIHdoZW4gaXQgY2xvbmVzIG9ubHkgYSB0aW55IGFtb3VudCBvZiBjb2RlOyBp
ZiB0aGVyZSdzIGFuIGV4aXQgdGhlbiB3ZSdyZSBub3QgdGFsa2luZyBhYm91dCBhCisgICAgICAg
IHRpbnkgYW1vdW50IG9mIGNvZGUgYW55bW9yZS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaXMg
YSB+MzAlIHNwZWVkLXVwIG9uIG1pY3JvYmVuY2htYXJrcyB0aGF0IGhhdmUgYmlnIHN3aXRjaCBz
dGF0ZW1lbnRzICh+NjAgY2FzZXMpLiBJdCdzCisgICAgICAgIG5vdCBhIHNwZWVkLXVwIG9uIG1h
aW5zdHJlYW0gYmVuY2htYXJrcy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgYWxzbyBhZGRzIGEg
bmV3IHRlc3QgdG8gdGVzdGIzIGZvciBQb2x5SnVtcCwgR2V0LCBhbmQgU2V0LiBUaGUgRlRMIGRv
ZXMgbm90IGN1cnJlbnRseQorICAgICAgICB1c2UgUG9seUp1bXAgZGlyZWN0bHksIGJ1dCB3ZSB3
YW50IHRoaXMgdG8gYmUgcG9zc2libGUuIEl0IGFsc28gZG9lc24ndCB1c2UgR2V0L1NldCBkaXJl
Y3RseQorICAgICAgICBldmVuIHRob3VnaCB3ZSB3YW50IHRoaXMgdG8gYmUgcG9zc2libGUuIEl0
J3MgaW1wb3J0YW50IHRvIHRlc3QgdGhlc2Ugc2luY2Ugb3Bjb2RlcyB0aGF0CisgICAgICAgIHJl
c3VsdCBmcm9tIGxvd2VyaW5nIGRvbid0IGFmZmVjdCBlYXJseSBwaGFzZXMsIHNvIHdlIGNvdWxk
IGhhdmUgcmVncmVzc2lvbnMgaW4gZWFybHkgcGhhc2VzCisgICAgICAgIHJlbGF0ZWQgdG8gdGhl
c2Ugb3Bjb2RlcyB0aGF0IHdvdWxkbid0IGJlIGNhdWdodCBieSBhbnkgSlMgdGVzdC4gU28sIHRo
aXMgYWRkcyBhIHZlcnkgYmFzaWMKKyAgICAgICAgdGhyZWFkZWQgaW50ZXJwcmV0ZXIgdG8gdGVz
dGIzIGZvciBhIEJyYWluZnVjay1zdHlsZSBsYW5ndWFnZSwgYW5kIHRlc3RzIGl0IGJ5IGhhdmlu
ZyBpdCBydW4KKyAgICAgICAgYSBwcm9ncmFtIHRoYXQgcHJpbnRzIHRoZSBudW1iZXJzIDEuLjEw
MCBpbiBhIGxvb3AuIFVubGlrZSBhIHJlYWwgdGhyZWFkZWQgaW50ZXJwcmV0ZXIsIGl0CisgICAg
ICAgIHVzZXMgYSBjb21tb24gZGlzcGF0Y2ggYmxvY2sgcmF0aGVyIHRoYW4gaGF2aW5nIGRpc3Bh
dGNoIGF0IHRoZSB0ZXJtaW51cyBvZiBlYWNoIG9wY29kZS4KKyAgICAgICAgVGhhdCdzIG5lY2Vz
c2FyeSBiZWNhdXNlIFBvbHlKdW1wIGlzIG5vdCBjbG9uZWFibGUuIFRoZSBzdGF0ZSBvZiB0aGUg
aW50ZXJwcmV0ZXIgaXMKKyAgICAgICAgcmVwcmVzZW50ZWQgdXNpbmcgVmFyaWFibGVzIHRoYXQg
d2UgR2V0IGFuZCBTZXQsIHNvIGl0IHRlc3RzIEdldC9TZXQgYXMgd2VsbC4KKworICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9u
Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpqdW1wKToKKyAgICAg
ICAgKiBhc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxl
cjo6am1wX20pOgorICAgICAgICAqIGIzL0IzQmFzaWNCbG9jay5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpCYXNpY0Jsb2NrOjp1cGRhdGVQcmVkZWNlc3NvcnNBZnRlcik6CisgICAgICAgIChKU0M6
OkIzOjpCYXNpY0Jsb2NrOjppc0Nsb25lYWJsZSk6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Js
b2NrOjpkdW1wKToKKyAgICAgICAgKiBiMy9CM0Jhc2ljQmxvY2suaDoKKyAgICAgICAgKEpTQzo6
QjM6OkJhc2ljQmxvY2s6OmZyZXF1ZW5jeSk6CisgICAgICAgICogYjMvQjNDb21tb24uaDoKKyAg
ICAgICAgKEpTQzo6QjM6OmlzNjRCaXQpOgorICAgICAgICAqIGIzL0IzQ29udHJvbFZhbHVlLmg6
CisgICAgICAgICogYjMvQjNEYXRhU2VjdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkIzOjpEYXRh
U2VjdGlvbjo6RGF0YVNlY3Rpb24pOgorICAgICAgICAqIGIzL0IzRHVwbGljYXRlVGFpbHMuY3Bw
OgorICAgICAgICAqIGIzL0IzTG93ZXJNYWNyb3MuY3BwOgorICAgICAgICAqIGIzL0IzTG93ZXJU
b0Fpci5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okxvd2VyVG9BaXI6Omxvd2VyKToKKyAg
ICAgICAgKiBiMy9CM09wY29kZS5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgor
ICAgICAgICAqIGIzL0IzT3Bjb2RlLmg6CisgICAgICAgICogYjMvQjNQb2x5SnVtcFZhbHVlLmNw
cDogQWRkZWQuCisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjp+UG9seUp1bXBWYWx1
ZSk6CisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjphcHBlbmRTdWNjZXNzb3IpOgor
ICAgICAgICAoSlNDOjpCMzo6UG9seUp1bXBWYWx1ZTo6c2V0Q2FsbGJhY2tUYXNrKToKKyAgICAg
ICAgKEpTQzo6QjM6OlBvbHlKdW1wVmFsdWU6OmlzQ2xvbmVhYmxlKToKKyAgICAgICAgKEpTQzo6
QjM6OlBvbHlKdW1wVmFsdWU6OmR1bXBNZXRhKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1w
VmFsdWU6OmNsb25lSW1wbCk6CisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjpQb2x5
SnVtcFZhbHVlKToKKyAgICAgICAgKiBiMy9CM1BvbHlKdW1wVmFsdWUuaDogQWRkZWQuCisgICAg
ICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjphY2NlcHRzKToKKyAgICAgICAgKEpTQzo6QjM6
OlBvbHlKdW1wVmFsdWU6OnNldENhbGxiYWNrKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1w
VmFsdWU6OmNhbGxiYWNrVGFzayk6CisgICAgICAgICogYjMvQjNQcm9jZWR1cmUuY3BwOgorICAg
ICAgICAoSlNDOjpCMzo6UHJvY2VkdXJlOjpjbG9uZSk6CisgICAgICAgICogYjMvQjNQcm9jZWR1
cmUuaDoKKyAgICAgICAgKEpTQzo6QjM6OlByb2NlZHVyZTo6bGFzdFBoYXNlTmFtZSk6CisgICAg
ICAgIChKU0M6OkIzOjpQcm9jZWR1cmU6OmJ5cHJvZHVjdHMpOgorICAgICAgICAqIGIzL0IzUmVk
dWNlU3RyZW5ndGguY3BwOgorICAgICAgICAqIGIzL0IzVmFsaWRhdGUuY3BwOgorICAgICAgICAq
IGIzL0IzVmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6OmVmZmVjdHMpOgorICAg
ICAgICAoSlNDOjpCMzo6VmFsdWU6OmlzQ2xvbmVhYmxlKToKKyAgICAgICAgKEpTQzo6QjM6OlZh
bHVlOjprZXkpOgorICAgICAgICAqIGIzL0IzVmFsdWUuaDoKKyAgICAgICAgKiBiMy9haXIvQWly
Q29kZS5oOgorICAgICAgICAqIGIzL2Fpci9BaXJHZW5lcmF0ZS5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpBaXI6OmdlbmVyYXRlKToKKyAgICAgICAgKiBiMy9haXIvQWlySW5zdC5jcHA6CisgICAg
ICAgIChKU0M6OkIzOjpBaXI6Okluc3Q6Omhhc0FyZ0VmZmVjdHMpOgorICAgICAgICAoSlNDOjpC
Mzo6QWlyOjpJbnN0Ojppc0Nsb25lYWJsZSk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okluc3Q6
OmR1bXApOgorICAgICAgICAqIGIzL2Fpci9BaXJJbnN0Lmg6CisgICAgICAgICogYjMvYWlyL0Fp
ck9wY29kZS5vcGNvZGVzOgorICAgICAgICAqIGIzL3Rlc3RiMy5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpzaG91bGRCZVZlcmJvc2UpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN3aXRjaENoaWxs
RGl2KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RMYXRlUmVnaXN0ZXIpOgorICAgICAgICAoSlND
OjpCMzo6dGhyZWFkZWRJbnRlcnByZXRlclByaW50KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RU
aHJlYWRlZEludGVycHJldGVyKToKKyAgICAgICAgKEpTQzo6QjM6Onplcm8pOgorICAgICAgICAo
SlNDOjpCMzo6cnVuKToKKwogMjAxNi0wNy0wMyAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gRExMcyBhcmUgbWlzc2luZyB2ZXJzaW9uIGluZm9y
bWF0aW9uLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24g
MjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0xNDQsNiArMTQ0LDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAg
ICBiMy9CM1BhdGNocG9pbnRWYWx1ZS5jcHAKICAgICBiMy9CM1BoYXNlU2NvcGUuY3BwCiAgICAg
YjMvQjNQaGlDaGlsZHJlbi5jcHAKKyAgICBiMy9CM1BvbHlKdW1wVmFsdWUuY3BwCiAgICAgYjMv
QjNQcm9jZWR1cmUuY3BwCiAgICAgYjMvQjNQdXJlQ1NFLmNwcAogICAgIGIzL0IzUmVkdWNlRG91
YmxlVG9GbG9hdC5jcHAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lv
biAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTk4OCw2ICsxOTg4LDggQEAK
IAkJREMxN0U4MUExQzlDOTFFOTAwOEE2QUIzIC8qIENDYWxsSGVscGVycy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzE3RTgxNjFDOUM4MDJCMDA4
QTZBQjMgLyogQ0NhbGxIZWxwZXJzLmNwcCAqLzsgfTsKIAkJREMyMTQzMDcxQ0EzMkU1NTAwMEE4
ODY5IC8qIElDU3RhdHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IERDMjE0MzA2MUNBMzJFNTIwMDBBODg2OSAvKiBJQ1N0YXRzLmggKi87IH07CiAJCURD
MjE0MzA4MUNBMzJFNTgwMDBBODg2OSAvKiBJQ1N0YXRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDMjE0MzA1MUNBMzJFNTIwMDBBODg2OSAvKiBJ
Q1N0YXRzLmNwcCAqLzsgfTsKKwkJREM0NTRCODgxQ0ZGNkZFNzAwNEMxOEFGIC8qIEIzUG9seUp1
bXBWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBEQzQ1NEI4NjFDRkY2RkU1MDA0QzE4QUYgLyogQjNQb2x5SnVtcFZhbHVlLmNwcCAqLzsgfTsK
KwkJREM0NTRCODkxQ0ZGNkZFQTAwNEMxOEFGIC8qIEIzUG9seUp1bXBWYWx1ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM0NTRCODcxQ0ZGNkZFNTAw
NEMxOEFGIC8qIEIzUG9seUp1bXBWYWx1ZS5oICovOyB9OwogCQlEQzQ1NEI4QzFEMDBFODIyMDA0
QzE4QUYgLyogQWlyRHVtcEFzSlMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gREM0NTRCOEExRDAwRTgxRjAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmNw
cCAqLzsgfTsKIAkJREM0NTRCOEQxRDAwRTgyNDAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzQ1NEI4QjFEMDBF
ODFGMDA0QzE4QUYgLyogQWlyRHVtcEFzSlMuaCAqLzsgfTsKIAkJREM2MDVCNUQxQ0UyNkVBMDAw
NTkzNzE4IC8qIFByb2ZpbGVyRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gREM2MDVCNTkxQ0UyNkU5ODAwNTkzNzE4IC8qIFByb2ZpbGVyRXZl
bnQuY3BwICovOyB9OwpAQCAtNDIxNiw2ICs0MjE4LDggQEAKIAkJREMxN0U4MTYxQzlDODAyQjAw
OEE2QUIzIC8qIENDYWxsSGVscGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBDQ2FsbEhlbHBlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlE
QzIxNDMwNTFDQTMyRTUyMDAwQTg4NjkgLyogSUNTdGF0cy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBJQ1N0YXRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJREMyMTQzMDYxQ0EzMkU1MjAwMEE4ODY5IC8qIElDU3RhdHMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSUNTdGF0cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlEQzQ1NEI4NjFDRkY2RkU1MDA0QzE4QUYgLyogQjNQb2x5SnVtcFZhbHVlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEIzUG9seUp1bXBWYWx1ZS5jcHA7IHBh
dGggPSBiMy9CM1BvbHlKdW1wVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlEQzQ1NEI4NzFDRkY2RkU1MDA0QzE4QUYgLyogQjNQb2x5SnVtcFZhbHVlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEIzUG9seUp1bXBWYWx1ZS5oOyBwYXRoID0gYjMvQjNQ
b2x5SnVtcFZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDNDU0QjhBMUQw
MEU4MUYwMDRDMThBRiAvKiBBaXJEdW1wQXNKUy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBBaXJEdW1wQXNKUy5jcHA7IHBhdGggPSBiMy9haXIvQWlyRHVtcEFzSlMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzQ1NEI4QjFEMDBFODFGMDA0QzE4
QUYgLyogQWlyRHVtcEFzSlMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQWly
RHVtcEFzSlMuaDsgcGF0aCA9IGIzL2Fpci9BaXJEdW1wQXNKUy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlEQzYwNUI1OTFDRTI2RTk4MDA1OTM3MTggLyogUHJvZmlsZXJFdmVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQcm9maWxlckV2ZW50LmNw
cDsgcGF0aCA9IHByb2ZpbGVyL1Byb2ZpbGVyRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNDc3NSw2ICs0Nzc5LDggQEAKIAkJCQkwRkVDODRFMDFCREFDREFDMDA4MEZG
NzQgLyogQjNQaGFzZVNjb3BlLmggKi8sCiAJCQkJMEYzNzMwOEExQzBCRDI5MTAwMDUyQkZBIC8q
IEIzUGhpQ2hpbGRyZW4uY3BwICovLAogCQkJCTBGMzczMDhCMUMwQkQyOTEwMDA1MkJGQSAvKiBC
M1BoaUNoaWxkcmVuLmggKi8sCisJCQkJREM0NTRCODYxQ0ZGNkZFNTAwNEMxOEFGIC8qIEIzUG9s
eUp1bXBWYWx1ZS5jcHAgKi8sCisJCQkJREM0NTRCODcxQ0ZGNkZFNTAwNEMxOEFGIC8qIEIzUG9s
eUp1bXBWYWx1ZS5oICovLAogCQkJCTBGRUM4NEUxMUJEQUNEQUMwMDgwRkY3NCAvKiBCM1Byb2Nl
ZHVyZS5jcHAgKi8sCiAJCQkJMEZFQzg0RTIxQkRBQ0RBQzAwODBGRjc0IC8qIEIzUHJvY2VkdXJl
LmggKi8sCiAJCQkJMEZFQzg0RTMxQkRBQ0RBQzAwODBGRjc0IC8qIEIzUHJvY2VkdXJlSW5saW5l
cy5oICovLApAQCAtNzE2Myw2ICs3MTY5LDcgQEAKIAkJCQkwRjhGOTQ0MTE2Njc2MzMyMDBENjE5
NzEgLyogQ29kZUJsb2NrSGFzaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDOTdGMzQxODIwMjBE
NzAwMkM5QjI2IC8qIENvZGVCbG9ja0pldHRpc29uaW5nV2F0Y2hwb2ludC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEZEOEEzMTQxN0Q0MzI2QzAwQ0EyQzQwIC8qIENvZGVCbG9ja1NldC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJREM0NTRCODkxQ0ZGNkZFQTAwNEMxOEFGIC8qIEIzUG9seUp1bXBWYWx1
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5NkVCQjMxNjY3NkVGNjAwOEJBREUzIC8qIENvZGVC
bG9ja1dpdGhKSVRUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzdGMTgyMjE2NDA4OEIyMDA2
NDBBNDcgLyogQ29kZUNhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OUNDMEI2MzE4QkU5OTUw
MDA2Q0VCQ0MgLyogQ29kZUdlbmVyYXRvclJlcGxheUlucHV0cy5weSBpbiBIZWFkZXJzICovLApA
QCAtOTQ0Nyw2ICs5NDU0LDcgQEAKIAkJCQk3MDlGQjg2QjFBRTMzNUM2MDAzOUQwNjkgLyogV2Vh
a1NldFByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyQTRFQzkwQjE4NjBENkMyMDA5
NEY3ODIgLyogV3JpdGVCYXJyaWVyQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQzgx
NTBCMTQwNDNDMEUwMENGQTYwMyAvKiBXcml0ZUJhcnJpZXJTdXBwb3J0LmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCURDNDU0Qjg4MUNGRjZGRTcwMDRDMThBRiAvKiBCM1BvbHlKdW1wVmFsdWUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTdFNUFCM0ExNzk5RTRCMjAwRDI4MzNEIC8qIFg4NkRpc2Fz
c2VtYmxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjJCQkQ5NzFDNUZGM0Y1MDAyM0VGMjMg
LyogQjNWYXJpYWJsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NjNDNkQ5QzE1MjExMTFBMDA1
ODVFNEUgLyogWWFyckNhbm9uaWNhbGl6ZVVDUzIuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
QVJNNjQuaAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4NzQsNiArMjg3
NCwxMiBAQCBwdWJsaWM6CiAgICAgICAgIGxvYWQ2NChhZGRyZXNzLCBnZXRDYWNoZWREYXRhVGVt
cFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCkpOwogICAgICAgICBtX2Fzc2VtYmxlci5icihkYXRh
VGVtcFJlZ2lzdGVyKTsKICAgICB9CisgICAgCisgICAgdm9pZCBqdW1wKEJhc2VJbmRleCBhZGRy
ZXNzKQorICAgIHsKKyAgICAgICAgbG9hZDY0KGFkZHJlc3MsIGdldENhY2hlZERhdGFUZW1wUmVn
aXN0ZXJJREFuZEludmFsaWRhdGUoKSk7CisgICAgICAgIG1fYXNzZW1ibGVyLmJyKGRhdGFUZW1w
UmVnaXN0ZXIpOworICAgIH0KIAogICAgIHZvaWQganVtcChBYnNvbHV0ZUFkZHJlc3MgYWRkcmVz
cykKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyWDg2Q29tbW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTIyNjMsNiArMjI2MywxMiBAQCBwdWJsaWM6CiAgICAgICAgIG1f
YXNzZW1ibGVyLmptcF9tKGFkZHJlc3Mub2Zmc2V0LCBhZGRyZXNzLmJhc2UpOwogICAgIH0KIAor
ICAgIC8vIEFkZHJlc3MgaXMgYSBtZW1vcnkgbG9jYXRpb24gY29udGFpbmluZyB0aGUgYWRkcmVz
cyB0byBqdW1wIHRvCisgICAgdm9pZCBqdW1wKEJhc2VJbmRleCBhZGRyZXNzKQorICAgIHsKKyAg
ICAgICAgbV9hc3NlbWJsZXIuam1wX20oYWRkcmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFzZSwgYWRk
cmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZSk7CisgICAgfQorCiAKICAgICAvLyBBcml0aG1ldGlj
IGNvbnRyb2wgZmxvdyBvcGVyYXRpb25zOgogICAgIC8vCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgJKHJldmlzaW9uIDIwMjgwOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTE5ODMsNiArMTk4MywxMSBAQCBwdWJsaWM6CiAgICAgICAgIG1fZm9ybWF0dGVy
Lm9uZUJ5dGVPcChPUF9HUk9VUDVfRXYsIEdST1VQNV9PUF9KTVBOLCBiYXNlLCBvZmZzZXQpOwog
ICAgIH0KICAgICAKKyAgICB2b2lkIGptcF9tKGludCBvZmZzZXQsIFJlZ2lzdGVySUQgYmFzZSwg
UmVnaXN0ZXJJRCBpbmRleCwgaW50IHNjYWxlKQorICAgIHsKKyAgICAgICAgbV9mb3JtYXR0ZXIu
b25lQnl0ZU9wKE9QX0dST1VQNV9FdiwgR1JPVVA1X09QX0pNUE4sIGJhc2UsIGluZGV4LCBzY2Fs
ZSwgb2Zmc2V0KTsKKyAgICB9CisgICAgCiAjaWYgIUNQVShYODZfNjQpCiAgICAgdm9pZCBqbXBf
bShjb25zdCB2b2lkKiBhZGRyZXNzKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0Jhc2ljQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0Jhc2ljQmxvY2suY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAs
NiBAQAogCiAjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrSW5saW5lcy5oIgogI2luY2x1ZGUgIkIzQmFz
aWNCbG9ja1V0aWxzLmgiCi0jaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKICNpbmNsdWRlICJC
M1Byb2NlZHVyZS5oIgogI2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSA8d3Rm
L0xpc3REdW1wLmg+CkBAIC04NCw5ICs4Myw0MSBAQCBWYWx1ZSogQmFzaWNCbG9jazo6YXBwZW5k
SW50Q29uc3RhbnQoUHJvCiAgICAgcmV0dXJuIGFwcGVuZEludENvbnN0YW50KHByb2MsIGxpa2VW
YWx1ZS0+b3JpZ2luKCksIGxpa2VWYWx1ZS0+dHlwZSgpLCB2YWx1ZSk7CiB9CiAKK3ZvaWQgQmFz
aWNCbG9jazo6Y2xlYXJTdWNjZXNzb3JzKCkKK3sKKyAgICBtX3N1Y2Nlc3NvcnMuY2xlYXIoKTsK
K30KKwordm9pZCBCYXNpY0Jsb2NrOjphcHBlbmRTdWNjZXNzb3IoY29uc3QgRnJlcXVlbnRlZEJs
b2NrJiB0YXJnZXQpCit7CisgICAgbV9zdWNjZXNzb3JzLmFwcGVuZCh0YXJnZXQpOworfQorCit2
b2lkIEJhc2ljQmxvY2s6OnNldFN1Y2Nlc3NvcnMoY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YXJn
ZXQpCit7CisgICAgbV9zdWNjZXNzb3JzLnJlc2l6ZSgxKTsKKyAgICBtX3N1Y2Nlc3NvcnNbMF0g
PSB0YXJnZXQ7Cit9CisKK3ZvaWQgQmFzaWNCbG9jazo6c2V0U3VjY2Vzc29ycyhjb25zdCBGcmVx
dWVudGVkQmxvY2smIHRha2VuLCBjb25zdCBGcmVxdWVudGVkQmxvY2smIG5vdFRha2VuKQorewor
ICAgIG1fc3VjY2Vzc29ycy5yZXNpemUoMik7CisgICAgbV9zdWNjZXNzb3JzWzBdID0gdGFrZW47
CisgICAgbV9zdWNjZXNzb3JzWzFdID0gbm90VGFrZW47Cit9CisKIGJvb2wgQmFzaWNCbG9jazo6
cmVwbGFjZVN1Y2Nlc3NvcihCYXNpY0Jsb2NrKiBmcm9tLCBCYXNpY0Jsb2NrKiB0bykKIHsKLSAg
ICByZXR1cm4gbGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCktPnJlcGxhY2VTdWNjZXNzb3IoZnJv
bSwgdG8pOworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgZm9yIChCYXNpY0Jsb2NrKiYg
c3VjY2Vzc29yIDogc3VjY2Vzc29yQmxvY2tzKCkpIHsKKyAgICAgICAgaWYgKHN1Y2Nlc3NvciA9
PSBmcm9tKSB7CisgICAgICAgICAgICBzdWNjZXNzb3IgPSB0bzsKKyAgICAgICAgICAgIHJlc3Vs
dCA9IHRydWU7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIEtlZXAgbG9vcGluZyBiZWNh
dXNlIGEgc3VjY2Vzc29yIG1heSBiZSBtZW50aW9uZWQgbXVsdGlwbGUgdGltZXMsIGxpa2UgaW4g
YSBTd2l0Y2guCisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogYm9v
bCBCYXNpY0Jsb2NrOjphZGRQcmVkZWNlc3NvcihCYXNpY0Jsb2NrKiBibG9jaykKQEAgLTEwOSw2
ICsxNDAsMTUgQEAgdm9pZCBCYXNpY0Jsb2NrOjp1cGRhdGVQcmVkZWNlc3NvcnNBZnRlcgogICAg
IEIzOjp1cGRhdGVQcmVkZWNlc3NvcnNBZnRlcih0aGlzKTsKIH0KIAorYm9vbCBCYXNpY0Jsb2Nr
Ojppc0Nsb25lYWJsZSgpIGNvbnN0Cit7CisgICAgZm9yIChWYWx1ZSogdmFsdWUgOiAqdGhpcykg
eworICAgICAgICBpZiAoIXZhbHVlLT5pc0Nsb25lYWJsZSgpKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBCYXNpY0Jsb2NrOjpk
dW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiB7CiAgICAgb3V0LnByaW50KGR1bXBQcmVmaXgs
IG1faW5kZXgpOwpAQCAtMTIxLDYgKzE2MSwxNCBAQCB2b2lkIEJhc2ljQmxvY2s6OmRlZXBEdW1w
KGNvbnN0IFByb2NlZHVyCiAgICAgICAgIG91dC5wcmludCgiICBQcmVkZWNlc3NvcnM6ICIsIHBv
aW50ZXJMaXN0RHVtcChwcmVkZWNlc3NvcnMoKSksICJcbiIpOwogICAgIGZvciAoVmFsdWUqIHZh
bHVlIDogKnRoaXMpCiAgICAgICAgIG91dC5wcmludCgiICAgICIsIEIzOjpkZWVwRHVtcChwcm9j
LCB2YWx1ZSksICJcbiIpOworICAgIGlmIChzdWNjZXNzb3JzKCkuc2l6ZSgpKSB7CisgICAgICAg
IG91dC5wcmludCgiICBTdWNjZXNzb3JzOiAiKTsKKyAgICAgICAgaWYgKHNpemUoKSkKKyAgICAg
ICAgICAgIGxhc3QoKS0+ZHVtcFN1Y2Nlc3NvcnModGhpcywgb3V0KTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgb3V0LnByaW50KGxpc3REdW1wKHN1Y2Nlc3NvcnMoKSkpOworICAgICAgICBv
dXQucHJpbnQoIlxuIik7CisgICAgfQogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2suaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmgJKHJldmlzaW9uIDIwMjgw
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2suaAkod29ya2luZyBj
b3B5KQpAQCAtNDcsNyArNDcsNyBAQCBjbGFzcyBCYXNpY0Jsb2NrIHsKIHB1YmxpYzoKICAgICB0
eXBlZGVmIFZlY3RvcjxWYWx1ZSo+IFZhbHVlTGlzdDsKICAgICB0eXBlZGVmIFZlY3RvcjxCYXNp
Y0Jsb2NrKiwgMj4gUHJlZGVjZXNzb3JMaXN0OwotICAgIHR5cGVkZWYgVmVjdG9yPEZyZXF1ZW50
ZWRCbG9jaywgMj4gU3VjY2Vzc29yTGlzdDsgLy8gVGhpcyBtYXRjaGVzIENvbnRyb2xWYWx1ZTo6
U3VjY2Vzc29yTGlzdAorICAgIHR5cGVkZWYgVmVjdG9yPEZyZXF1ZW50ZWRCbG9jaywgMj4gU3Vj
Y2Vzc29yTGlzdDsKIAogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBkdW1wUHJlZml4Owog
CkBAIC04NywxOCArODcsMzkgQEAgcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVl
VHlwZSwgdHlwZW5hbWUuLi4gQXJndW1lbnRzPgogICAgIFZhbHVlVHlwZSogcmVwbGFjZUxhc3RX
aXRoTmV3KFByb2NlZHVyZSYsIEFyZ3VtZW50cy4uLik7CiAKLSAgICB1bnNpZ25lZCBudW1TdWNj
ZXNzb3JzKCkgY29uc3Q7Ci0gICAgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBzdWNjZXNzb3IodW5z
aWduZWQgaW5kZXgpIGNvbnN0OwotICAgIEZyZXF1ZW50ZWRCbG9jayYgc3VjY2Vzc29yKHVuc2ln
bmVkIGluZGV4KTsKLSAgICBjb25zdCBTdWNjZXNzb3JMaXN0JiBzdWNjZXNzb3JzKCkgY29uc3Q7
Ci0gICAgU3VjY2Vzc29yTGlzdCYgc3VjY2Vzc29ycygpOwotCi0gICAgQmFzaWNCbG9jayogc3Vj
Y2Vzc29yQmxvY2sodW5zaWduZWQgaW5kZXgpIGNvbnN0OwotICAgIEJhc2ljQmxvY2sqJiBzdWNj
ZXNzb3JCbG9jayh1bnNpZ25lZCBpbmRleCk7Ci0gICAgU3VjY2Vzc29yQ29sbGVjdGlvbjxCYXNp
Y0Jsb2NrLCBTdWNjZXNzb3JMaXN0PiBzdWNjZXNzb3JCbG9ja3MoKTsKLSAgICBTdWNjZXNzb3JD
b2xsZWN0aW9uPGNvbnN0IEJhc2ljQmxvY2ssIGNvbnN0IFN1Y2Nlc3Nvckxpc3Q+IHN1Y2Nlc3Nv
ckJsb2NrcygpIGNvbnN0OworICAgIHVuc2lnbmVkIG51bVN1Y2Nlc3NvcnMoKSBjb25zdCB7IHJl
dHVybiBtX3N1Y2Nlc3NvcnMuc2l6ZSgpOyB9CisgICAgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBz
dWNjZXNzb3IodW5zaWduZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fc3VjY2Vzc29yc1tpbmRl
eF07IH0KKyAgICBGcmVxdWVudGVkQmxvY2smIHN1Y2Nlc3Nvcih1bnNpZ25lZCBpbmRleCkgeyBy
ZXR1cm4gbV9zdWNjZXNzb3JzW2luZGV4XTsgfQorICAgIGNvbnN0IFN1Y2Nlc3Nvckxpc3QmIHN1
Y2Nlc3NvcnMoKSBjb25zdCB7IHJldHVybiBtX3N1Y2Nlc3NvcnM7IH0KKyAgICBTdWNjZXNzb3JM
aXN0JiBzdWNjZXNzb3JzKCkgeyByZXR1cm4gbV9zdWNjZXNzb3JzOyB9CisgICAgCisgICAgdm9p
ZCBjbGVhclN1Y2Nlc3NvcnMoKTsKKyAgICB2b2lkIGFwcGVuZFN1Y2Nlc3Nvcihjb25zdCBGcmVx
dWVudGVkQmxvY2smKTsKKyAgICB2b2lkIHNldFN1Y2Nlc3NvcnMoY29uc3QgRnJlcXVlbnRlZEJs
b2NrJik7CisgICAgdm9pZCBzZXRTdWNjZXNzb3JzKGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYsIGNv
bnN0IEZyZXF1ZW50ZWRCbG9jayYpOworCisgICAgQmFzaWNCbG9jayogc3VjY2Vzc29yQmxvY2so
dW5zaWduZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIHN1Y2Nlc3NvcihpbmRleCkuYmxvY2soKTsg
fQorICAgIEJhc2ljQmxvY2sqJiBzdWNjZXNzb3JCbG9jayh1bnNpZ25lZCBpbmRleCkgeyByZXR1
cm4gc3VjY2Vzc29yKGluZGV4KS5ibG9jaygpOyB9CisgICAgU3VjY2Vzc29yQ29sbGVjdGlvbjxC
YXNpY0Jsb2NrLCBTdWNjZXNzb3JMaXN0PiBzdWNjZXNzb3JCbG9ja3MoKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIFN1Y2Nlc3NvckNvbGxlY3Rpb248QmFzaWNCbG9jaywgU3VjY2Vzc29yTGlzdD4o
c3VjY2Vzc29ycygpKTsKKyAgICB9CisgICAgU3VjY2Vzc29yQ29sbGVjdGlvbjxjb25zdCBCYXNp
Y0Jsb2NrLCBjb25zdCBTdWNjZXNzb3JMaXN0PiBzdWNjZXNzb3JCbG9ja3MoKSBjb25zdAorICAg
IHsKKyAgICAgICAgcmV0dXJuIFN1Y2Nlc3NvckNvbGxlY3Rpb248Y29uc3QgQmFzaWNCbG9jaywg
U3VjY2Vzc29yTGlzdD4oc3VjY2Vzc29ycygpKTsKKyAgICB9CiAKICAgICBib29sIHJlcGxhY2VT
dWNjZXNzb3IoQmFzaWNCbG9jayogZnJvbSwgQmFzaWNCbG9jayogdG8pOworICAgIAorICAgIC8v
IFRoaXMgaXMgb25seSB2YWxpZCBmb3IgSnVtcCBhbmQgQnJhbmNoLgorICAgIGNvbnN0IEZyZXF1
ZW50ZWRCbG9jayYgdGFrZW4oKSBjb25zdDsKKyAgICBGcmVxdWVudGVkQmxvY2smIHRha2VuKCk7
CisgICAgLy8gVGhpcyBpcyBvbmx5IHZhbGlkIGZvciBCcmFuY2guCisgICAgY29uc3QgRnJlcXVl
bnRlZEJsb2NrJiBub3RUYWtlbigpIGNvbnN0OworICAgIEZyZXF1ZW50ZWRCbG9jayYgbm90VGFr
ZW4oKSBjb25zdDsKKyAgICAvLyBUaGlzIGlzIG9ubHkgdmFsaWQgZm9yIEJyYW5jaCBhbmQgU3dp
dGNoLgorICAgIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgZmFsbFRocm91Z2goKSBjb25zdDsKKyAg
ICBGcmVxdWVudGVkQmxvY2smIGZhbGxUaHJvdWdoKCkgY29uc3Q7CiAKICAgICB1bnNpZ25lZCBu
dW1QcmVkZWNlc3NvcnMoKSBjb25zdCB7IHJldHVybiBtX3ByZWRlY2Vzc29ycy5zaXplKCk7IH0K
ICAgICBCYXNpY0Jsb2NrKiBwcmVkZWNlc3Nvcih1bnNpZ25lZCBpbmRleCkgY29uc3QgeyByZXR1
cm4gbV9wcmVkZWNlc3NvcnNbaW5kZXhdOyB9CkBAIC0xMTUsNiArMTM2LDggQEAgcHVibGljOgog
ICAgIHZvaWQgdXBkYXRlUHJlZGVjZXNzb3JzQWZ0ZXIoKTsKIAogICAgIGRvdWJsZSBmcmVxdWVu
Y3koKSBjb25zdCB7IHJldHVybiBtX2ZyZXF1ZW5jeTsgfQorICAgIAorICAgIGJvb2wgaXNDbG9u
ZWFibGUoKSBjb25zdDsKIAogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0OwogICAg
IHZvaWQgZGVlcER1bXAoY29uc3QgUHJvY2VkdXJlJiwgUHJpbnRTdHJlYW0mKSBjb25zdDsKQEAg
LTEzMCw2ICsxNTMsNyBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1faW5kZXg7CiAgICAgVmFs
dWVMaXN0IG1fdmFsdWVzOwogICAgIFByZWRlY2Vzc29yTGlzdCBtX3ByZWRlY2Vzc29yczsKKyAg
ICBTdWNjZXNzb3JMaXN0IG1fc3VjY2Vzc29yczsKICAgICBkb3VibGUgbV9mcmVxdWVuY3k7CiB9
OwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrSW5saW5lcy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2tJbmxp
bmVzLmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jh
c2ljQmxvY2tJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDYgQEAKICNpZiBF
TkFCTEUoQjNfSklUKQogCiAjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrLmgiCi0jaW5jbHVkZSAiQjND
b250cm9sVmFsdWUuaCIKICNpbmNsdWRlICJCM1Byb2NlZHVyZUlubGluZXMuaCIKIAogbmFtZXNw
YWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CkBAIC01OCw0OSArNTcsNDAgQEAgVmFsdWVUeXBlKiBC
YXNpY0Jsb2NrOjpyZXBsYWNlTGFzdFdpdGhOZQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLWlu
bGluZSB1bnNpZ25lZCBCYXNpY0Jsb2NrOjpudW1TdWNjZXNzb3JzKCkgY29uc3QKK2NvbnN0IEZy
ZXF1ZW50ZWRCbG9jayYgQmFzaWNCbG9jazo6dGFrZW4oKSBjb25zdAogewotICAgIHJldHVybiBs
YXN0KCktPmFzPENvbnRyb2xWYWx1ZT4oKS0+bnVtU3VjY2Vzc29ycygpOworICAgIEFTU0VSVChs
YXN0KCktPm9wY29kZSgpID09IEp1bXAgfHwgbGFzdCgpLT5vcGNvZGUoKSA9PSBCcmFuY2gpOwor
ICAgIHJldHVybiBtX3N1Y2Nlc3NvcnNbMF07CiB9CiAKLWlubGluZSBjb25zdCBGcmVxdWVudGVk
QmxvY2smIEJhc2ljQmxvY2s6OnN1Y2Nlc3Nvcih1bnNpZ25lZCBpbmRleCkgY29uc3QKK0ZyZXF1
ZW50ZWRCbG9jayYgQmFzaWNCbG9jazo6dGFrZW4oKQogewotICAgIHJldHVybiBsYXN0KCktPmFz
PENvbnRyb2xWYWx1ZT4oKS0+c3VjY2Vzc29yKGluZGV4KTsKKyAgICBBU1NFUlQobGFzdCgpLT5v
cGNvZGUoKSA9PSBKdW1wIHx8IGxhc3QoKS0+b3Bjb2RlKCkgPT0gQnJhbmNoKTsKKyAgICByZXR1
cm4gbV9zdWNjZXNzb3JzWzBdOwogfQogCi1pbmxpbmUgRnJlcXVlbnRlZEJsb2NrJiBCYXNpY0Js
b2NrOjpzdWNjZXNzb3IodW5zaWduZWQgaW5kZXgpCitjb25zdCBGcmVxdWVudGVkQmxvY2smIEJh
c2ljQmxvY2s6Om5vdFRha2VuKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbGFzdCgpLT5hczxDb250
cm9sVmFsdWU+KCktPnN1Y2Nlc3NvcihpbmRleCk7CisgICAgQVNTRVJUKGxhc3QoKS0+b3Bjb2Rl
KCkgPT0gQnJhbmNoKTsKKyAgICByZXR1cm4gbV9zdWNjZXNzb3JzWzFdOwogfQogCi1pbmxpbmUg
Y29uc3QgQmFzaWNCbG9jazo6U3VjY2Vzc29yTGlzdCYgQmFzaWNCbG9jazo6c3VjY2Vzc29ycygp
IGNvbnN0CitGcmVxdWVudGVkQmxvY2smIEJhc2ljQmxvY2s6Om5vdFRha2VuKCkKIHsKLSAgICBy
ZXR1cm4gbGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCktPnN1Y2Nlc3NvcnMoKTsKKyAgICBBU1NF
UlQobGFzdCgpLT5vcGNvZGUoKSA9PSBCcmFuY2gpOworICAgIHJldHVybiBtX3N1Y2Nlc3NvcnNb
MV07CiB9CiAKLWlubGluZSBCYXNpY0Jsb2NrOjpTdWNjZXNzb3JMaXN0JiBCYXNpY0Jsb2NrOjpz
dWNjZXNzb3JzKCkKK2NvbnN0IEZyZXF1ZW50ZWRCbG9jayYgQmFzaWNCbG9jazo6ZmFsbFRocm91
Z2goKSBjb25zdAogewotICAgIHJldHVybiBsYXN0KCktPmFzPENvbnRyb2xWYWx1ZT4oKS0+c3Vj
Y2Vzc29ycygpOworICAgIEFTU0VSVChsYXN0KCktPm9wY29kZSgpID09IEJyYW5jaCB8fCBsYXN0
KCktPm9wY29kZSgpID09IFN3aXRjaCk7CisgICAgcmV0dXJuIG1fc3VjY2Vzc29ycy5sYXN0KCk7
CiB9CiAKLWlubGluZSBCYXNpY0Jsb2NrKiBCYXNpY0Jsb2NrOjpzdWNjZXNzb3JCbG9jayh1bnNp
Z25lZCBpbmRleCkgY29uc3QKK0ZyZXF1ZW50ZWRCbG9jayYgQmFzaWNCbG9jazo6ZmFsbFRocm91
Z2goKQogewotICAgIHJldHVybiBzdWNjZXNzb3IoaW5kZXgpLmJsb2NrKCk7Ci19Ci0KLWlubGlu
ZSBCYXNpY0Jsb2NrKiYgQmFzaWNCbG9jazo6c3VjY2Vzc29yQmxvY2sodW5zaWduZWQgaW5kZXgp
Ci17Ci0gICAgcmV0dXJuIHN1Y2Nlc3NvcihpbmRleCkuYmxvY2soKTsKLX0KLQotaW5saW5lIFN1
Y2Nlc3NvckNvbGxlY3Rpb248QmFzaWNCbG9jaywgQmFzaWNCbG9jazo6U3VjY2Vzc29yTGlzdD4g
QmFzaWNCbG9jazo6c3VjY2Vzc29yQmxvY2tzKCkKLXsKLSAgICByZXR1cm4gU3VjY2Vzc29yQ29s
bGVjdGlvbjxCYXNpY0Jsb2NrLCBTdWNjZXNzb3JMaXN0PihzdWNjZXNzb3JzKCkpOwotfQotCi1p
bmxpbmUgU3VjY2Vzc29yQ29sbGVjdGlvbjxjb25zdCBCYXNpY0Jsb2NrLCBjb25zdCBCYXNpY0Js
b2NrOjpTdWNjZXNzb3JMaXN0PiBCYXNpY0Jsb2NrOjpzdWNjZXNzb3JCbG9ja3MoKSBjb25zdAot
ewotICAgIHJldHVybiBTdWNjZXNzb3JDb2xsZWN0aW9uPGNvbnN0IEJhc2ljQmxvY2ssIGNvbnN0
IFN1Y2Nlc3Nvckxpc3Q+KHN1Y2Nlc3NvcnMoKSk7CisgICAgQVNTRVJUKGxhc3QoKS0+b3Bjb2Rl
KCkgPT0gQnJhbmNoIHx8IGxhc3QoKS0+b3Bjb2RlKCkgPT0gU3dpdGNoKTsKKyAgICByZXR1cm4g
bV9zdWNjZXNzb3JzLmxhc3QoKTsKIH0KIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCbG9ja0luc2VydGlvblNldC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmxvY2tJbnNlcnRpb25TZXQuY3Bw
CShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCbG9ja0lu
c2VydGlvblNldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc4LDggKzc4LDggQEAgQmFzaWNCbG9j
ayogQmxvY2tJbnNlcnRpb25TZXQ6OnNwbGl0Rm9ydwogICAgICAgICByZXN1bHQtPm1fdmFsdWVz
W2ldID0gYmxvY2stPm1fdmFsdWVzW2ldOwogCiAgICAgLy8gTWFrZSB0aGUgbmV3IGJsb2NrIGp1
bXAgdG8gJ2Jsb2NrJy4KLSAgICByZXN1bHQtPm1fdmFsdWVzW3ZhbHVlSW5kZXhdID0KLSAgICAg
ICAgbV9wcm9jLmFkZDxDb250cm9sVmFsdWU+KEp1bXAsIHZhbHVlLT5vcmlnaW4oKSwgRnJlcXVl
bnRlZEJsb2NrKGJsb2NrKSk7CisgICAgcmVzdWx0LT5tX3ZhbHVlc1t2YWx1ZUluZGV4XSA9IG1f
cHJvYy5hZGQ8VmFsdWU+KEp1bXAsIHZhbHVlLT5vcmlnaW4oKSk7CisgICAgcmVzdWx0LT5zZXRT
dWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhibG9jaykpOwogCiAgICAgLy8gSWYgd2UgaGFkIGlu
c2VydGVkIHRoaW5ncyBpbnRvICdibG9jaycgYmVmb3JlIHRoaXMsIGV4ZWN1dGUgdGhvc2UgaW5z
ZXJ0aW9ucyBub3cuCiAgICAgaWYgKGluc2VydGlvblNldCkKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0JyZWFrQ3JpdGljYWxFZGdlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzQnJlYWtDcml0aWNhbEVkZ2VzLmNwcAkocmV2aXNpb24gMjAy
ODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQnJlYWtDcml0aWNhbEVkZ2VzLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNiBAQAogCiAjaW5jbHVkZSAiQjNCYXNpY0Js
b2NrSW5saW5lcy5oIgogI2luY2x1ZGUgIkIzQmxvY2tJbnNlcnRpb25TZXQuaCIKLSNpbmNsdWRl
ICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJlSW5saW5lcy5oIgogI2lu
Y2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCiAKQEAgLTUwLDggKzQ5LDggQEAgdm9pZCBicmVha0Ny
aXRpY2FsRWRnZXMoUHJvY2VkdXJlJiBwcm9jKQogCiAgICAgICAgICAgICBCYXNpY0Jsb2NrKiBw
YWQgPQogICAgICAgICAgICAgICAgIGluc2VydGlvblNldC5pbnNlcnRCZWZvcmUoc3VjY2Vzc29y
LCBzdWNjZXNzb3ItPmZyZXF1ZW5jeSgpKTsKLSAgICAgICAgICAgIHBhZC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCi0gICAgICAgICAgICAgICAgcHJvYywgSnVtcCwgc3VjY2Vzc29yLT5hdCgw
KS0+b3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhzdWNjZXNzb3IpKTsKKyAgICAgICAgICAgIHBh
ZC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBKdW1wLCBzdWNjZXNzb3ItPmF0KDApLT5vcmlnaW4o
KSk7CisgICAgICAgICAgICBwYWQtPnNldFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2NrKHN1Y2Nl
c3NvcikpOwogICAgICAgICAgICAgcGFkLT5hZGRQcmVkZWNlc3NvcihibG9jayk7CiAgICAgICAg
ICAgICBzdWNjZXNzb3ItPnJlcGxhY2VQcmVkZWNlc3NvcihibG9jaywgcGFkKTsKICAgICAgICAg
ICAgIHN1Y2Nlc3NvciA9IHBhZDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nh
c2VDb2xsZWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNDYXNlQ29sbGVjdGlvbi5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNDYXNlQ29sbGVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQjNDYXNlQ29sbGVjdGlvbi5oIgorCisjaWYgRU5BQkxF
KEIzX0pJVCkKKworI2luY2x1ZGUgIkIzQ2FzZUNvbGxlY3Rpb25JbmxpbmVzLmgiCisjaW5jbHVk
ZSA8d3RmL0NvbW1hUHJpbnRlci5oPgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsK
Kwordm9pZCBDYXNlQ29sbGVjdGlvbjo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAorewor
ICAgIENvbW1hUHJpbnRlciBjb21tYTsKKyAgICBmb3IgKFN3aXRjaENhc2Ugc3dpdGNoQ2FzZSA6
ICp0aGlzKQorICAgICAgICBvdXQucHJpbnQoY29tbWEsIHN3aXRjaENhc2UpOworICAgIG91dC5w
cmludChjb21tYSwgImRlZmF1bHQtPiIsIGZhbGxUaHJvdWdoKCkpOworfQorCit9IH0gLy8gbmFt
ZXNwYWNlIEpTQzo6QjMKKworI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCisKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nhc2VDb2xsZWN0aW9uLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2FzZUNvbGxlY3Rpb24uaAkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nhc2VDb2xsZWN0aW9uLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwxMjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworI2lmbmRlZiBCM0Nhc2VDb2xsZWN0aW9uX2gKKyNkZWZpbmUgQjNDYXNlQ29s
bGVjdGlvbl9oCisKKyNpZiBFTkFCTEUoQjNfSklUKQorCisjaW5jbHVkZSAiQjNTd2l0Y2hDYXNl
LmgiCisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeworCitjbGFzcyBCYXNpY0Jsb2Nr
OworY2xhc3MgU3dpdGNoVmFsdWU7CisKKy8vIE5PVEU6IFlvdSdsbCBhbHdheXMgd2FudCB0byBp
bmNsdWRlIEIzQ2FzZUNvbGxlY3Rpb25JbmxpbmVzLmggd2hlbiB5b3UgdXNlIHRoaXMuCisKK2Ns
YXNzIENhc2VDb2xsZWN0aW9uIHsKK3B1YmxpYzoKKyAgICBDYXNlQ29sbGVjdGlvbigpCisgICAg
eworICAgIH0KKyAgICAKKyAgICBDYXNlQ29sbGVjdGlvbihTd2l0Y2hWYWx1ZSogdGVybWluYWws
IEJhc2ljQmxvY2sqIG93bmVyKQorICAgICAgICA6IG1fc3dpdGNoKHRlcm1pbmFsKQorICAgICAg
ICAsIG1fb3duZXIob3duZXIpCisgICAgeworICAgIH0KKyAgICAKKyAgICBjb25zdCBGcmVxdWVu
dGVkQmxvY2smIGZhbGxUaHJvdWdoKCkgY29uc3Q7CisKKyAgICB1bnNpZ25lZCBzaXplKCkgY29u
c3Q7CisgICAgU3dpdGNoQ2FzZSBhdCh1bnNpZ25lZCBpbmRleCkgY29uc3Q7CisgICAgCisgICAg
U3dpdGNoQ2FzZSBvcGVyYXRvcltdKHVuc2lnbmVkIGluZGV4KSBjb25zdAorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGF0KGluZGV4KTsKKyAgICB9CisKKyAgICBjbGFzcyBpdGVyYXRvciB7CisgICAg
cHVibGljOgorICAgICAgICBpdGVyYXRvcigpCisgICAgICAgICAgICA6IG1fc3dpdGNoKG51bGxw
dHIpCisgICAgICAgICAgICAsIG1faW5kZXgoMCkKKyAgICAgICAgeworICAgICAgICB9CisKKyAg
ICAgICAgaXRlcmF0b3IoY29uc3QgU3dpdGNoVmFsdWUmIHN3aXRjaFZhbHVlLCB1bnNpZ25lZCBp
bmRleCkKKyAgICAgICAgICAgIDogbV9zd2l0Y2goJnN3aXRjaFZhbHVlKQorICAgICAgICAgICAg
LCBtX2luZGV4KGluZGV4KQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBTd2l0Y2hD
YXNlIG9wZXJhdG9yKigpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtX3N3aXRjaC0+
YXQobV9pbmRleCk7CisgICAgICAgIH0KKworICAgICAgICBpdGVyYXRvciYgb3BlcmF0b3IrKygp
CisgICAgICAgIHsKKyAgICAgICAgICAgIG1faW5kZXgrKzsKKyAgICAgICAgICAgIHJldHVybiAq
dGhpczsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBpdGVyYXRv
ciYgb3RoZXIpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VSVChtX3N3aXRjaCA9
PSBvdGhlci5tX3N3aXRjaCk7CisgICAgICAgICAgICByZXR1cm4gbV9pbmRleCA9PSBvdGhlci5t
X2luZGV4OworICAgICAgICB9CisKKyAgICAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IGl0ZXJh
dG9yJiBvdGhlcikgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICEoKnRoaXMg
PT0gb3RoZXIpOworICAgICAgICB9CisKKyAgICBwcml2YXRlOgorICAgICAgICBjb25zdCBTd2l0
Y2hWYWx1ZSogbV9zd2l0Y2g7CisgICAgICAgIHVuc2lnbmVkIG1faW5kZXg7CisgICAgfTsKKwor
ICAgIHR5cGVkZWYgaXRlcmF0b3IgY29uc3RfaXRlcmF0b3I7CisKKyAgICBpdGVyYXRvciBiZWdp
bigpIGNvbnN0IHsgcmV0dXJuIGl0ZXJhdG9yKCp0aGlzLCAwKTsgfQorICAgIGl0ZXJhdG9yIGVu
ZCgpIGNvbnN0IHsgcmV0dXJuIGl0ZXJhdG9yKCp0aGlzLCBzaXplKCkpOyB9CisgICAgCisgICAg
dm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CisgICAgCitwcml2YXRlOgorICAgIFN3aXRj
aFZhbHVlKiBtX3N3aXRjaCB7IG51bGxwdHIgfTsKKyAgICBCYXNpY0Jsb2NrKiBtX293bmVyIHsg
bnVsbHB0ciB9OworfTsKKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzCisKKyNlbmRpZiAvLyBF
TkFCTEUoQjNfSklUKQorCisjZW5kaWYgLy8gQjNDYXNlQ29sbGVjdGlvbl9oCisKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5o
CShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2FzZUNvbGxlY3Rp
b25JbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEIzQ2FzZUNvbGxlY3Rp
b25JbmxpbmVzX2gKKyNkZWZpbmUgQjNDYXNlQ29sbGVjdGlvbklubGluZXNfaAorCisjaWYgRU5B
QkxFKEIzX0pJVCkKKworI2luY2x1ZGUgIkIzQ2FzZUNvbGxlY3Rpb24uaCIKKyNpbmNsdWRlICJC
M1N3aXRjaFZhbHVlLmgiCisjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrLmgiCisKK25hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgQjMgeworCitpbmxpbmUgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBDYXNl
Q29sbGVjdGlvbjo6ZmFsbFRocm91Z2goKSBjb25zdAoreworICAgIHJldHVybiBtX293bmVyLT5m
YWxsVGhyb3VnaCgpOworfQorCitpbmxpbmUgdW5zaWduZWQgQ2FzZUNvbGxlY3Rpb246OnNpemUo
KSBjb25zdAoreworICAgIHJldHVybiBtX3N3aXRjaC0+bnVtQ2FzZVZhbHVlcygpOworfQorCitp
bmxpbmUgU3dpdGNoQ2FzZSBDYXNlQ29sbGVjdGlvbjo6YXQodW5zaWduZWQgaW5kZXgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIFN3aXRjaENhc2UobV9zd2l0Y2gtPmNhc2VWYWx1ZShpbmRleCksIG1f
b3duZXItPnN1Y2Nlc3NvcihpbmRleCkpOworfQorCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMK
KworI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCisKKyNlbmRpZiAvLyBCM0Nhc2VDb2xsZWN0aW9u
SW5saW5lc19oCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbW1vbi5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbW1vbi5oCShyZXZpc2lv
biAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb21tb24uaAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0yOCw2ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoQjNfSklUKQogCisjaW5jbHVkZSAi
SlNFeHBvcnRNYWNyb3MuaCIKKwogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKIGlu
bGluZSBib29sIGlzNjRCaXQoKSB7IHJldHVybiBzaXplb2Yodm9pZCopID09IDg7IH0KQEAgLTM4
LDcgKzQwLDcgQEAgZW51bSBCM0NvbXBsaXRhdGlvbk1vZGUgewogICAgIEFpck1vZGUKIH07CiAK
LWJvb2wgc2hvdWxkRHVtcElSKEIzQ29tcGxpdGF0aW9uTW9kZSk7CitKU19FWFBPUlRfUFJJVkFU
RSBib29sIHNob3VsZER1bXBJUihCM0NvbXBsaXRhdGlvbk1vZGUpOwogYm9vbCBzaG91bGREdW1w
SVJBdEVhY2hQaGFzZShCM0NvbXBsaXRhdGlvbk1vZGUpOwogYm9vbCBzaG91bGRWYWxpZGF0ZUlS
KCk7CiBib29sIHNob3VsZFZhbGlkYXRlSVJBdEVhY2hQaGFzZSgpOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzQ29udHJvbFZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzQ29udHJvbFZhbHVlLmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnRyb2xWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC00Niw5ICs0NiwxMCBAQCBwdWJsaWM6CiAgICAgICAgIGNhc2UgUmV0dXJuOgogICAgICAgICBj
YXNlIE9vcHM6CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgY2FzZSBTd2l0Y2g6
IAotICAgICAgICAgICAgLy8gVGhpcyBpcyBoZXJlIGJlY2F1c2UgU3dpdGNoVmFsdWUgaXMgYSBz
dWJjbGFzcyBvZiBDb250cm9sVmFsdWUsIHNvIHdlIHdhbnQKLSAgICAgICAgICAgIC8vIHN3aXRj
aFZhbHVlLT5hczxDb250cm9sVmFsdWU+KCkgdG8gcmV0dXJuIG5vbi1udWxsLgorICAgICAgICBj
YXNlIFN3aXRjaDoKKyAgICAgICAgY2FzZSBQb2x5SnVtcDoKKyAgICAgICAgICAgIC8vIFRoaXMg
aXMgaGVyZSBiZWNhdXNlIFN3aXRjaFZhbHVlIGFuZCBQb2x5SnVtcFZhbHVlIGFyZSBzdWJjbGFz
c2VzIG9mIENvbnRyb2xWYWx1ZSwKKyAgICAgICAgICAgIC8vIHNvIHdlIHdhbnQgdGhpbmdzIGxp
a2Ugc3dpdGNoVmFsdWUtPmFzPENvbnRyb2xWYWx1ZT4oKSB0byByZXR1cm4gbm9uLW51bGwuCiAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKQEAgLTc3LDcgKzc4LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIGJvb2wg
cmVwbGFjZVN1Y2Nlc3NvcihCYXNpY0Jsb2NrKiBmcm9tLCBCYXNpY0Jsb2NrKiB0byk7Ci0KKyAg
ICAKICAgICBjb25zdCBGcmVxdWVudGVkQmxvY2smIHRha2VuKCkgY29uc3QKICAgICB7CiAgICAg
ICAgIEFTU0VSVChvcGNvZGUoKSA9PSBKdW1wIHx8IG9wY29kZSgpID09IEJyYW5jaCk7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEYXRhU2VjdGlvbi5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRGF0YVNlY3Rpb24uY3BwCShyZXZpc2lvbiAy
MDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEYXRhU2VjdGlvbi5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMzEsNyArMzEsNyBAQAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7
CiAKIERhdGFTZWN0aW9uOjpEYXRhU2VjdGlvbihzaXplX3Qgc2l6ZSkKLSAgICA6IG1fZGF0YShm
YXN0TWFsbG9jKHNpemUpKQorICAgIDogbV9kYXRhKGZhc3RaZXJvZWRNYWxsb2Moc2l6ZSkpCiAg
ICAgLCBtX3NpemUoc2l6ZSkKIHsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0R1cGxpY2F0ZVRhaWxzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNEdXBsaWNhdGVUYWlscy5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0R1cGxpY2F0ZVRhaWxzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAs
NyArMzAsNiBAQAogCiAjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrSW5saW5lcy5oIgogI2luY2x1ZGUg
IkIzQnJlYWtDcml0aWNhbEVkZ2VzLmgiCi0jaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKICNp
bmNsdWRlICJCM0RvbWluYXRvcnMuaCIKICNpbmNsdWRlICJCM0ZpeFNTQS5oIgogI2luY2x1ZGUg
IkIzSW5kZXhTZXQuaCIKQEAgLTcyLDkgKzcxLDExIEBAIHB1YmxpYzoKICAgICAgICAgSW5kZXhT
ZXQ8QmFzaWNCbG9jaz4gY2FuZGlkYXRlczsKIAogICAgICAgICBmb3IgKEJhc2ljQmxvY2sqIGJs
b2NrIDogbV9wcm9jKSB7Ci0gICAgICAgICAgICBpZiAoYmxvY2stPnNpemUoKSA+IG1fbWF4U2l6
ZSB8fCBibG9jay0+bnVtU3VjY2Vzc29ycygpID4gbV9tYXhTdWNjZXNzb3JzKQorICAgICAgICAg
ICAgaWYgKGJsb2NrLT5zaXplKCkgPiBtX21heFNpemUKKyAgICAgICAgICAgICAgICB8fCBibG9j
ay0+bnVtU3VjY2Vzc29ycygpID4gbV9tYXhTdWNjZXNzb3JzCisgICAgICAgICAgICAgICAgfHwg
IWJsb2NrLT5pc0Nsb25lYWJsZSgpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotCisgICAg
ICAgICAgICAKICAgICAgICAgICAgIGNhbmRpZGF0ZXMuYWRkKGJsb2NrKTsKICAgICAgICAgfQog
CkBAIC05NywxMSArOTgsMTAgQEAgcHVibGljOgogICAgICAgICB9CiAKICAgICAgICAgZm9yIChC
YXNpY0Jsb2NrKiBibG9jayA6IG1fcHJvYykgewotICAgICAgICAgICAgQ29udHJvbFZhbHVlKiBq
dW1wID0gYmxvY2stPmxhc3QoKS0+YXM8Q29udHJvbFZhbHVlPigpOwotICAgICAgICAgICAgaWYg
KGp1bXAtPm9wY29kZSgpICE9IEp1bXApCisgICAgICAgICAgICBpZiAoYmxvY2stPmxhc3QoKS0+
b3Bjb2RlICE9IEp1bXApCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgICAg
IEJhc2ljQmxvY2sqIHRhaWwgPSBqdW1wLT5zdWNjZXNzb3JCbG9jaygwKTsKKyAgICAgICAgICAg
IEJhc2ljQmxvY2sqIHRhaWwgPSBibG9jay0+c3VjY2Vzc29yQmxvY2soMCk7CiAgICAgICAgICAg
ICBpZiAoIWNhbmRpZGF0ZXMuY29udGFpbnModGFpbCkpCiAgICAgICAgICAgICAgICAgY29udGlu
dWU7CiAKQEAgLTEzMCw2ICsxMzAsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgIG1h
cC5hZGQodmFsdWUsIGNsb25lKTsKICAgICAgICAgICAgICAgICBibG9jay0+YXBwZW5kKGNsb25l
KTsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJsb2NrLT5zdWNjZXNzb3JzKCkgPSB0YWls
LT5zdWNjZXNzb3JzKCk7CiAgICAgICAgIH0KIAogICAgICAgICBtX3Byb2MucmVzZXRSZWFjaGFi
aWxpdHkoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0ZpeFNTQS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRml4U1NBLmNwcAkocmV2aXNp
b24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRml4U1NBLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNiBAQAogCiAjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrSW5s
aW5lcy5oIgogI2luY2x1ZGUgIkIzQnJlYWtDcml0aWNhbEVkZ2VzLmgiCi0jaW5jbHVkZSAiQjND
b250cm9sVmFsdWUuaCIKICNpbmNsdWRlICJCM0RvbWluYXRvcnMuaCIKICNpbmNsdWRlICJCM0lu
ZGV4U2V0LmgiCiAjaW5jbHVkZSAiQjNJbnNlcnRpb25TZXRJbmxpbmVzLmgiCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNGb2xkUGF0aENvbnN0YW50cy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRm9sZFBhdGhDb25zdGFudHMuY3BwCShyZXZp
c2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNGb2xkUGF0aENvbnN0
YW50cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDYgQEAKICNpZiBFTkFCTEUoQjNf
SklUKQogCiAjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrSW5saW5lcy5oIgotI2luY2x1ZGUgIkIzQ29u
dHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNEb21pbmF0b3JzLmgiCiAjaW5jbHVkZSAiQjNJbnNl
cnRpb25TZXRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNQaGFzZVNjb3BlLmgiCkBAIC04NywyNCAr
ODYsMjQgQEAgcHVibGljOgogICAgICAgICB9OwogICAgICAgICAKICAgICAgICAgZm9yIChCYXNp
Y0Jsb2NrKiBibG9jayA6IG1fcHJvYykgewotICAgICAgICAgICAgQ29udHJvbFZhbHVlKiBicmFu
Y2ggPSBibG9jay0+bGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCk7CisgICAgICAgICAgICBWYWx1
ZSogYnJhbmNoID0gYmxvY2stPmxhc3QoKTsKICAgICAgICAgICAgIHN3aXRjaCAoYnJhbmNoLT5v
cGNvZGUoKSkgewogICAgICAgICAgICAgY2FzZSBCcmFuY2g6Ci0gICAgICAgICAgICAgICAgaWYg
KGJyYW5jaC0+c3VjY2Vzc29yQmxvY2soMCkgPT0gYnJhbmNoLT5zdWNjZXNzb3JCbG9jaygxKSkK
KyAgICAgICAgICAgICAgICBpZiAoYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDApID09IGJsb2NrLT5z
dWNjZXNzb3JCbG9jaygxKSkKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
ICAgICAgICAgYWRkT3ZlcnJpZGUoCiAgICAgICAgICAgICAgICAgICAgIGJsb2NrLCBicmFuY2gt
PmNoaWxkKDApLAotICAgICAgICAgICAgICAgICAgICBPdmVycmlkZTo6bm9uWmVybyhicmFuY2gt
PnN1Y2Nlc3NvckJsb2NrKDApKSk7CisgICAgICAgICAgICAgICAgICAgIE92ZXJyaWRlOjpub25a
ZXJvKGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKSkpOwogICAgICAgICAgICAgICAgIGFkZE92ZXJy
aWRlKAogICAgICAgICAgICAgICAgICAgICBibG9jaywgYnJhbmNoLT5jaGlsZCgwKSwKLSAgICAg
ICAgICAgICAgICAgICAgT3ZlcnJpZGU6OmNvbnN0YW50KGJyYW5jaC0+c3VjY2Vzc29yQmxvY2so
MSksIDApKTsKKyAgICAgICAgICAgICAgICAgICAgT3ZlcnJpZGU6OmNvbnN0YW50KGJsb2NrLT5z
dWNjZXNzb3JCbG9jaygxKSwgMCkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgY2FzZSBTd2l0Y2g6IHsKICAgICAgICAgICAgICAgICBIYXNoTWFwPEJhc2ljQmxvY2sqLCB1
bnNpZ25lZD4gdGFyZ2V0VXNlczsKLSAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFN3aXRjaENh
c2UmIHN3aXRjaENhc2UgOiAqYnJhbmNoLT5hczxTd2l0Y2hWYWx1ZT4oKSkKKyAgICAgICAgICAg
ICAgICBmb3IgKGNvbnN0IFN3aXRjaENhc2UmIHN3aXRjaENhc2UgOiBicmFuY2gtPmFzPFN3aXRj
aFZhbHVlPigpLT5jYXNlcyhibG9jaykpCiAgICAgICAgICAgICAgICAgICAgIHRhcmdldFVzZXMu
YWRkKHN3aXRjaENhc2UudGFyZ2V0QmxvY2soKSwgMCkuaXRlcmF0b3ItPnZhbHVlKys7CiAKLSAg
ICAgICAgICAgICAgICBmb3IgKGNvbnN0IFN3aXRjaENhc2UmIHN3aXRjaENhc2UgOiAqYnJhbmNo
LT5hczxTd2l0Y2hWYWx1ZT4oKSkgeworICAgICAgICAgICAgICAgIGZvciAoY29uc3QgU3dpdGNo
Q2FzZSYgc3dpdGNoQ2FzZSA6IGJyYW5jaC0+YXM8U3dpdGNoVmFsdWU+KCktPmNhc2VzKGJsb2Nr
KSkgewogICAgICAgICAgICAgICAgICAgICBpZiAodGFyZ2V0VXNlcy5maW5kKHN3aXRjaENhc2Uu
dGFyZ2V0QmxvY2soKSktPnZhbHVlICE9IDEpCiAgICAgICAgICAgICAgICAgICAgICAgICBjb250
aW51ZTsKIApAQCAtMTU4LDkgKzE1Nyw4IEBAIHB1YmxpYzoKIAogICAgICAgICAgICAgICAgIHN3
aXRjaCAodmFsdWUtPm9wY29kZSgpKSB7CiAgICAgICAgICAgICAgICAgY2FzZSBCcmFuY2g6IHsK
LSAgICAgICAgICAgICAgICAgICAgQ29udHJvbFZhbHVlKiBicmFuY2ggPSB2YWx1ZS0+YXM8Q29u
dHJvbFZhbHVlPigpOwogICAgICAgICAgICAgICAgICAgICBpZiAoZ2V0T3ZlcnJpZGUoYmxvY2ss
IGJyYW5jaC0+Y2hpbGQoMCkpLmlzTm9uWmVybykgewotICAgICAgICAgICAgICAgICAgICAgICAg
YnJhbmNoLT5jb252ZXJ0VG9KdW1wKGJyYW5jaC0+dGFrZW4oKS5ibG9jaygpKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHZhbHVlLT5yZXBsYWNlV2l0aEp1bXAoYmxvY2ssIGJsb2NrLT50YWtl
bigpKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlOwogICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJNYWNyb3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyTWFjcm9zLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJNYWNyb3MuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTM0LDcgKzM0LDkgQEAKICNpbmNsdWRlICJCM0NvbnN0UHRyVmFsdWUuaCIKICNpbmNsdWRlICJC
M0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzSW5zZXJ0aW9uU2V0SW5saW5lcy5oIgorI2lu
Y2x1ZGUgIkIzTWVtb3J5VmFsdWUuaCIKICNpbmNsdWRlICJCM1BoYXNlU2NvcGUuaCIKKyNpbmNs
dWRlICJCM1BvbHlKdW1wVmFsdWUuaCIKICNpbmNsdWRlICJCM1Byb2NlZHVyZUlubGluZXMuaCIK
ICNpbmNsdWRlICJCM1N3aXRjaFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNVcHNpbG9uVmFsdWUuaCIK
QEAgLTE0Nyw3ICsxNDksNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgY2FzZSBTd2l0Y2g6IHsK
ICAgICAgICAgICAgICAgICBTd2l0Y2hWYWx1ZSogc3dpdGNoVmFsdWUgPSBtX3ZhbHVlLT5hczxT
d2l0Y2hWYWx1ZT4oKTsKICAgICAgICAgICAgICAgICBWZWN0b3I8U3dpdGNoQ2FzZT4gY2FzZXM7
Ci0gICAgICAgICAgICAgICAgZm9yIChjb25zdCBTd2l0Y2hDYXNlJiBzd2l0Y2hDYXNlIDogKnN3
aXRjaFZhbHVlKQorICAgICAgICAgICAgICAgIGZvciAoY29uc3QgU3dpdGNoQ2FzZSYgc3dpdGNo
Q2FzZSA6IHN3aXRjaFZhbHVlLT5jYXNlcyhtX2Jsb2NrKSkKICAgICAgICAgICAgICAgICAgICAg
Y2FzZXMuYXBwZW5kKHN3aXRjaENhc2UpOwogICAgICAgICAgICAgICAgIHN0ZDo6c29ydCgKICAg
ICAgICAgICAgICAgICAgICAgY2FzZXMuYmVnaW4oKSwgY2FzZXMuZW5kKCksCkBAIC0yNzUsOCAr
Mjc3LDEwNyBAQCBwcml2YXRlOgogICAgICAgICBjb25zdCBWZWN0b3I8U3dpdGNoQ2FzZT4mIGNh
c2VzLCB1bnNpZ25lZCBzdGFydCwgYm9vbCBoYXJkU3RhcnQsIHVuc2lnbmVkIGVuZCwKICAgICAg
ICAgQmFzaWNCbG9jayogYmVmb3JlKQogICAgIHsKLSAgICAgICAgLy8gRklYTUU6IEFkZCB0YWJs
ZS1iYXNlZCBzd2l0Y2ggbG93ZXJpbmcuCi0gICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTExNDEKKyAgICAgICAgVmFsdWUqIGNoaWxkID0gbV92YWx1
ZS0+Y2hpbGQoMCk7CisgICAgICAgIFR5cGUgdHlwZSA9IGNoaWxkLT50eXBlKCk7CisgICAgICAg
IEZyZXF1ZW50ZWRCbG9jayBmYWxsVGhyb3VnaCA9IG1fYmxvY2stPmZhbGxUaHJvdWdoKCk7Cisg
ICAgICAgIAorICAgICAgICAvLyBJdCdzIGEgZ29vZCBpZGVhIHRvIHVzZSBhIHRhYmxlLWJhc2Vk
IHN3aXRjaCBpbiBzb21lIGNhc2VzOiB0aGUgbnVtYmVyIG9mIGNhc2VzIGhhcyB0byBiZQorICAg
ICAgICAvLyBsYXJnZSBlbm91Z2ggYW5kIHRoZXkgaGF2ZSB0byBiZSBkZW5zZSBlbm91Z2guIFRo
aXMgY291bGQgcHJvYmFibHkgYmUgaW1wcm92ZWQgYSBsb3QuIEZvcgorICAgICAgICAvLyBleGFt
cGxlLCB3ZSBjb3VsZCBzdGlsbCB1c2UgYSBqdW1wIHRhYmxlIGluIGNhc2VzIHdoZXJlIHRoZSBp
bnB1dHMgYXJlIHNwYXJzZSBzbyBsb25nIGFzIHdlCisgICAgICAgIC8vIHNoaWZ0IG9mZiB0aGUg
dW5pbnRlcmVzdGluZyBiaXRzLiBPbiB0aGUgb3RoZXIgaGFuZCwgaXQncyBub3QgY2xlYXIgdGhh
dCB0aGlzIHdvdWxkCisgICAgICAgIC8vIGFjdHVhbGx5IGJlIGFueSBiZXR0ZXIgdGhhbiB3aGF0
IHdlIGhhdmUgZG9uZSBoZXJlIGFuZCBpdCdzIG5vdCBjbGVhciB0aGF0IGl0IHdvdWxkIGJlCisg
ICAgICAgIC8vIGJldHRlciB0aGFuIGEgYmluYXJ5IHN3aXRjaC4KKyAgICAgICAgY29uc3QgdW5z
aWduZWQgbWluQ2FzZXNGb3JUYWJsZSA9IDc7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGRlbnNp
dHlMaW1pdCA9IDQ7CisgICAgICAgIGlmIChlbmQgLSBzdGFydCA+PSBtaW5DYXNlc0ZvclRhYmxl
KSB7CisgICAgICAgICAgICBpbnQ2NF90IGZpcnN0VmFsdWUgPSBjYXNlc1tzdGFydF0uY2FzZVZh
bHVlKCk7CisgICAgICAgICAgICBpbnQ2NF90IGxhc3RWYWx1ZSA9IGNhc2VzW2VuZCAtIDFdLmNh
c2VWYWx1ZSgpOworICAgICAgICAgICAgaWYgKChsYXN0VmFsdWUgLSBmaXJzdFZhbHVlICsgMSkg
LyBjYXNlcy5zaXplKCkgPCBkZW5zaXR5TGltaXQpIHsKKyAgICAgICAgICAgICAgICBCYXNpY0Js
b2NrKiBzd2l0Y2hCbG9jayA9IG1fYmxvY2tJbnNlcnRpb25TZXQuaW5zZXJ0QWZ0ZXIobV9ibG9j
ayk7CisgICAgICAgICAgICAgICAgVmFsdWUqIGluZGV4ID0gYmVmb3JlLT5hcHBlbmROZXc8VmFs
dWU+KAorICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIFN1YiwgbV9vcmlnaW4sIGNoaWxkLAor
ICAgICAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZEludENvbnN0YW50KG1fcHJvYywgbV9v
cmlnaW4sIHR5cGUsIGZpcnN0VmFsdWUpKTsKKyAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVu
ZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgQnJhbmNoLCBtX29yaWdp
biwKKyAgICAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAg
ICAgICAgICAgICAgICAgICAgbV9wcm9jLCBBYm92ZSwgbV9vcmlnaW4sIGluZGV4LAorICAgICAg
ICAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmRJbnRDb25zdGFudChtX3Byb2MsIG1fb3Jp
Z2luLCB0eXBlLCBsYXN0VmFsdWUgLSBmaXJzdFZhbHVlKSkpOworICAgICAgICAgICAgICAgIGJl
Zm9yZS0+c2V0U3VjY2Vzc29ycyhmYWxsVGhyb3VnaCwgRnJlcXVlbnRlZEJsb2NrKHN3aXRjaEJs
b2NrKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgc2l6ZV90IHRhYmxlU2l6
ZSA9IGxhc3RWYWx1ZSAtIGZpcnN0VmFsdWUgKyAxOworICAgICAgICAgICAgICAgIAorICAgICAg
ICAgICAgICAgIGlmIChpbmRleC0+dHlwZSgpICE9IGJhc2UtPnR5cGUoKSkgeworICAgICAgICAg
ICAgICAgICAgICBpZiAoaW5kZXgtPnR5cGUoKSA9PSBJbnQzMikKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGluZGV4ID0gc3dpdGNoQmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBaRXh0
MzIsIG1fb3JpZ2luLCBpbmRleCk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGluZGV4ID0gc3dpdGNoQmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4obV9w
cm9jLCBUcnVuYywgbV9vcmlnaW4sIGluZGV4KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgCisgICAgICAgICAgICAgICAgUGF0Y2hwb2ludFZhbHVlKiBwYXRjaHBvaW50ID0K
KyAgICAgICAgICAgICAgICAgICAgc3dpdGNoQmxvY2stPmFwcGVuZE5ldzxQYXRjaHBvaW50VmFs
dWU+KG1fcHJvYywgVm9pZCwgbV9vcmlnaW4pOworICAgICAgICAgICAgICAgIAorICAgICAgICAg
ICAgICAgIHBhdGNocG9pbnQtPmVmZmVjdHMudGVybWluYWwgPSB0cnVlOworICAgICAgICAgICAg
ICAgIHBhdGNocG9pbnQtPmFwcGVuZFNvbWVSZWdpc3RlcihpbmRleCk7CisgICAgICAgICAgICAg
ICAgcGF0Y2hwb2ludC0+bnVtR1BTY3JhdGNoUmVnaXN0ZXJzKys7CisgICAgICAgICAgICAgICAg
Ly8gVGVjaG5pY2FsbHksIHdlIGRvbid0IGhhdmUgdG8gY2xvYmJlciBtYWNybyByZWdpc3RlcnMg
b24gWDg2XzY0LiBUaGF0J3MgcHJvYmFibHkKKyAgICAgICAgICAgICAgICAvLyBPSyB0aG91Z2gu
CisgICAgICAgICAgICAgICAgcGF0Y2hwb2ludC0+Y2xvYmJlcihSZWdpc3RlclNldDo6bWFjcm9T
Y3JhdGNoUmVnaXN0ZXJzKCkpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIEJp
dFZlY3RvciBoYW5kbGVkSW5kaWNlczsKKyAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkg
PSBzdGFydDsgaSA8IGVuZDsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIEZyZXF1ZW50ZWRC
bG9jayBibG9jayA9IGNhc2VzW2ldLnRhcmdldCgpOworICAgICAgICAgICAgICAgICAgICBpbnQ2
NF90IHZhbHVlID0gY2FzZXNbaV0uY2FzZVZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgIHN3
aXRjaEJsb2NrLT5hcHBlbmRTdWNjZXNzb3IoYmxvY2spOworICAgICAgICAgICAgICAgICAgICBz
aXplX3QgaW5kZXggPSB2YWx1ZSAtIGZpcnN0VmFsdWU7CisgICAgICAgICAgICAgICAgICAgIEFT
U0VSVCghaGFuZGxlZEluZGljZXMuZ2V0KGluZGV4KSk7CisgICAgICAgICAgICAgICAgICAgIGhh
bmRsZWRJbmRpY2VzLnNldChpbmRleCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIAorICAgICAgICAgICAgICAgIGJvb2wgaGFzVW5oYW5kbGVkSW5kZXggPSBmYWxzZTsKKyAg
ICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgdGFibGVTaXplOyArK2kpIHsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKCFoYW5kbGVkSW5kaWNlcy5nZXQoaSkpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGhhc1VuaGFuZGxlZEluZGV4ID0gdHJ1ZTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChoYXNVbmhhbmRsZWRJ
bmRleCkKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoQmxvY2stPmFwcGVuZFN1Y2Nlc3Nvcihm
YWxsVGhyb3VnaCk7CisKKyAgICAgICAgICAgICAgICBwYXRjaHBvaW50LT5zZXRHZW5lcmF0b3Io
CisgICAgICAgICAgICAgICAgICAgIFs9XSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNr
bWFwR2VuZXJhdGlvblBhcmFtcyYgcGFyYW1zKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBB
bGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UgYWxsb3dTY3JhdGNoKGppdCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVy
Q29kZVB0cioganVtcFRhYmxlID0gcGFyYW1zLnByb2MoKS5hZGREYXRhU2VjdGlvbigKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKSAqIHRh
YmxlU2l6ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAg
ICAgIEdQUlJlZyBpbmRleCA9IHBhcmFtc1swXS5ncHIoKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIEdQUlJlZyBzY3JhdGNoID0gcGFyYW1zLmdwU2NyYXRjaCgwKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgaml0Lm1vdmUoVHJ1c3RlZEltbVB0
cihqdW1wVGFibGUpLCBzY3JhdGNoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGppdC5qdW1w
KENDYWxsSGVscGVyczo6QmFzZUluZGV4KHNjcmF0Y2gsIGluZGV4LCBDQ2FsbEhlbHBlcnM6OnRp
bWVzUHRyKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAg
ICAgICAgVmVjdG9yPEJveDxDQ2FsbEhlbHBlcnM6OkxhYmVsPj4gbGFiZWxzID0gcGFyYW1zLnN1
Y2Nlc3NvckxhYmVscygpOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAg
ICAgICAgICAgICBqaXQuYWRkTGlua1Rhc2soCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Wz1dIChMaW5rQnVmZmVyJiBsaW5rQnVmZmVyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIChoYXNVbmhhbmRsZWRJbmRleCkgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGZhbGxUaHJvdWdoID0KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rQnVmZmVyLmxvY2F0aW9uT2YoKmxh
YmVscy5sYXN0KCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh1
bnNpZ25lZCBpID0gdGFibGVTaXplOyBpLS07KQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGp1bXBUYWJsZVtpXSA9IGZhbGxUaHJvdWdoOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsYWJlbEluZGV4ID0gMDsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCB0YWJsZUluZGV4IDog
aGFuZGxlZEluZGljZXMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGp1
bXBUYWJsZVt0YWJsZUluZGV4XSA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbGlua0J1ZmZlci5sb2NhdGlvbk9mKCpsYWJlbHNbbGFiZWxJbmRleCsrXSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgICAgIAogICAgICAgICAvLyBTZWUgY29tbWVu
dHMgaW4gaml0L0JpbmFyeVN3aXRjaC5jcHAgZm9yIGEganVzdGlmaWNhdGlvbiBvZiB0aGlzIGFs
Z29yaXRobS4gVGhlIG9ubHkKICAgICAgICAgLy8gdGhpbmcgd2UgZG8gZGlmZmVyZW50bHkgaXMg
dGhhdCB3ZSBkb24ndCB1c2UgcmFuZG9tbmVzcy4KQEAgLTMwNCwyNSArNDA1LDIzIEBAIHByaXZh
dGU6CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBs
aW1pdDsgKytpKSB7CiAgICAgICAgICAgICAgICAgQmFzaWNCbG9jayogbmV4dENoZWNrID0gbV9i
bG9ja0luc2VydGlvblNldC5pbnNlcnRBZnRlcihtX2Jsb2NrKTsKLSAgICAgICAgICAgICAgICBi
ZWZvcmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICAgICAgICAgIGJlZm9yZS0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBCcmFuY2gsIG1f
b3JpZ2luLAogICAgICAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4oCi0g
ICAgICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIEVxdWFsLCBtX29yaWdpbiwgbV92YWx1ZS0+
Y2hpbGQoMCksCisgICAgICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIEVxdWFsLCBtX29yaWdp
biwgY2hpbGQsCiAgICAgICAgICAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZEludENvbnN0
YW50KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgbV9vcmlnaW4sIG1fdmFs
dWUtPmNoaWxkKDApLT50eXBlKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZXNb
c3RhcnQgKyBpXS5jYXNlVmFsdWUoKSkpLAotICAgICAgICAgICAgICAgICAgICBjYXNlc1tzdGFy
dCArIGldLnRhcmdldCgpLCBGcmVxdWVudGVkQmxvY2sobmV4dENoZWNrKSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwgdHlwZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjYXNlc1tzdGFydCArIGldLmNhc2VWYWx1ZSgpKSkpOworICAgICAgICAg
ICAgICAgIGJlZm9yZS0+c2V0U3VjY2Vzc29ycyhjYXNlc1tzdGFydCArIGldLnRhcmdldCgpLCBG
cmVxdWVudGVkQmxvY2sobmV4dENoZWNrKSk7CiAKICAgICAgICAgICAgICAgICBiZWZvcmUgPSBu
ZXh0Q2hlY2s7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGlmIChhbGxDb25zZWN1dGl2
ZSkgewotICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCi0g
ICAgICAgICAgICAgICAgICAgIG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIGNhc2VzW2VuZCAtIDFd
LnRhcmdldCgpKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgYmVmb3Jl
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBK
dW1wLCBtX29yaWdpbiwgbV92YWx1ZS0+YXM8U3dpdGNoVmFsdWU+KCktPmZhbGxUaHJvdWdoKCkp
OwotICAgICAgICAgICAgfQorICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+KG1f
cHJvYywgSnVtcCwgbV9vcmlnaW4pOworICAgICAgICAgICAgaWYgKGFsbENvbnNlY3V0aXZlKQor
ICAgICAgICAgICAgICAgIGJlZm9yZS0+c2V0U3VjY2Vzc29ycyhjYXNlc1tlbmQgLSAxXS50YXJn
ZXQoKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgYmVmb3JlLT5zZXRTdWNj
ZXNzb3JzKGZhbGxUaHJvdWdoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBA
IC0zMzEsMTQgKzQzMCwxNCBAQCBwcml2YXRlOgogICAgICAgICBCYXNpY0Jsb2NrKiBsZWZ0ID0g
bV9ibG9ja0luc2VydGlvblNldC5pbnNlcnRBZnRlcihtX2Jsb2NrKTsKICAgICAgICAgQmFzaWNC
bG9jayogcmlnaHQgPSBtX2Jsb2NrSW5zZXJ0aW9uU2V0Lmluc2VydEFmdGVyKG1fYmxvY2spOwog
Ci0gICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIGJlZm9y
ZS0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIG1fcHJvYywgQnJhbmNoLCBtX29yaWdp
biwKICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PFZhbHVlPigKLSAgICAgICAgICAgICAg
ICBtX3Byb2MsIExlc3NUaGFuLCBtX29yaWdpbiwgbV92YWx1ZS0+Y2hpbGQoMCksCisgICAgICAg
ICAgICAgICAgbV9wcm9jLCBMZXNzVGhhbiwgbV9vcmlnaW4sIGNoaWxkLAogICAgICAgICAgICAg
ICAgIGJlZm9yZS0+YXBwZW5kSW50Q29uc3RhbnQoCi0gICAgICAgICAgICAgICAgICAgIG1fcHJv
YywgbV9vcmlnaW4sIG1fdmFsdWUtPmNoaWxkKDApLT50eXBlKCksCi0gICAgICAgICAgICAgICAg
ICAgIGNhc2VzW21lZGlhbkluZGV4XS5jYXNlVmFsdWUoKSkpLAotICAgICAgICAgICAgRnJlcXVl
bnRlZEJsb2NrKGxlZnQpLCBGcmVxdWVudGVkQmxvY2socmlnaHQpKTsKKyAgICAgICAgICAgICAg
ICAgICAgbV9wcm9jLCBtX29yaWdpbiwgdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgY2FzZXNb
bWVkaWFuSW5kZXhdLmNhc2VWYWx1ZSgpKSkpOworICAgICAgICBiZWZvcmUtPnNldFN1Y2Nlc3Nv
cnMoRnJlcXVlbnRlZEJsb2NrKGxlZnQpLCBGcmVxdWVudGVkQmxvY2socmlnaHQpKTsKIAogICAg
ICAgICByZWN1cnNpdmVseUJ1aWxkU3dpdGNoKGNhc2VzLCBzdGFydCwgaGFyZFN0YXJ0LCBtZWRp
YW5JbmRleCwgbGVmdCk7CiAgICAgICAgIHJlY3Vyc2l2ZWx5QnVpbGRTd2l0Y2goY2FzZXMsIG1l
ZGlhbkluZGV4LCB0cnVlLCBlbmQsIHJpZ2h0KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0xvd2VyVG9BaXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0xvd2VyVG9BaXIuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU1LDcgKzE1
NSw2IEBAIHB1YmxpYzoKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgLy8gTWFrZSBzdXJl
IHRoYXQgdGhlIHN1Y2Nlc3NvcnMgYXJlIHNldCB1cCBjb3JyZWN0bHkuCi0gICAgICAgICAgICBB
U1NFUlQoYmxvY2stPnN1Y2Nlc3NvcnMoKS5zaXplKCkgPD0gMik7CiAgICAgICAgICAgICBmb3Ig
KEIzOjpGcmVxdWVudGVkQmxvY2sgc3VjY2Vzc29yIDogYmxvY2stPnN1Y2Nlc3NvcnMoKSkgewog
ICAgICAgICAgICAgICAgIG1fYmxvY2tUb0Jsb2NrW2Jsb2NrXS0+c3VjY2Vzc29ycygpLmFwcGVu
ZCgKICAgICAgICAgICAgICAgICAgICAgQWlyOjpGcmVxdWVudGVkQmxvY2sobV9ibG9ja1RvQmxv
Y2tbc3VjY2Vzc29yLmJsb2NrKCldLCBzdWNjZXNzb3IuZnJlcXVlbmN5KCkpKTsKQEAgLTI0NDEs
NiArMjQ0MCwxNiBAQCBwcml2YXRlOgogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBCMzo6UG9seUp1bXA6IHsK
KyAgICAgICAgICAgIEFyZ1Byb21pc2UgYWRkciA9IGxvYWRQcm9taXNlKG1fdmFsdWUtPmNoaWxk
KDApKTsKKyAgICAgICAgICAgIGlmIChpc1ZhbGlkRm9ybShBaXI6OlBvbHlKdW1wLCBhZGRyLmtp
bmQoKSkpIHsKKyAgICAgICAgICAgICAgICBhcHBlbmQoQWlyOjpQb2x5SnVtcCwgYWRkci5jb25z
dW1lKCp0aGlzKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgYXBwZW5kKEFpcjo6UG9seUp1bXAsIHRtcChtX3ZhbHVlLT5jaGlsZCgwKSkpOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAKICAgICAgICAgY2FzZSBCMzo6T29wczog
ewogICAgICAgICAgICAgYXBwZW5kKEFpcjo6T29wcyk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNNYXRoRXh0cmFzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNNYXRoRXh0cmFzLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzTWF0aEV4dHJhcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzMsNyArMzMs
NiBAQAogI2luY2x1ZGUgIkIzQ29uc3QzMlZhbHVlLmgiCiAjaW5jbHVkZSAiQjNDb25zdERvdWJs
ZVZhbHVlLmgiCiAjaW5jbHVkZSAiQjNDb25zdFB0clZhbHVlLmgiCi0jaW5jbHVkZSAiQjNDb250
cm9sVmFsdWUuaCIKICNpbmNsdWRlICJCM1Vwc2lsb25WYWx1ZS5oIgogI2luY2x1ZGUgIkIzVmFs
dWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiTWF0aENvbW1vbi5oIgpAQCAtNTIsMTAgKzUxLDggQEAg
c3RkOjpwYWlyPEJhc2ljQmxvY2sqLCBWYWx1ZSo+IHBvd0RvdWJsZQogICAgIFZhbHVlKiBzaG91
bGRHb1Nsb3dQYXRoID0gc3RhcnQtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvY2VkdXJlLCBBYm92ZSwg
b3JpZ2luLAogICAgICAgICB5LAogICAgICAgICBzdGFydC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvY2VkdXJlLCBvcmlnaW4sIG1heEV4cG9uZW50Rm9ySW50ZWdlck1hdGhQb3cpKTsKLSAg
ICBzdGFydC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCi0gICAgICAgIHByb2NlZHVyZSwgQnJh
bmNoLCBvcmlnaW4sCi0gICAgICAgIHNob3VsZEdvU2xvd1BhdGgsCi0gICAgICAgIEZyZXF1ZW50
ZWRCbG9jayhmdW5jdGlvbkNhbGxDYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3BQcmVIZWFkZXJD
YXNlKSk7CisgICAgc3RhcnQtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvY2VkdXJlLCBCcmFuY2gsIG9y
aWdpbiwgc2hvdWxkR29TbG93UGF0aCk7CisgICAgc3RhcnQtPnNldFN1Y2Nlc3NvcnMoRnJlcXVl
bnRlZEJsb2NrKGZ1bmN0aW9uQ2FsbENhc2UpLCBGcmVxdWVudGVkQmxvY2sobG9vcFByZUhlYWRl
ckNhc2UpKTsKIAogICAgIC8vIEZ1bmN0aW9uIGNhbGwuCiAgICAgVmFsdWUqIHlBc0RvdWJsZSA9
IGZ1bmN0aW9uQ2FsbENhc2UtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvY2VkdXJlLCBJVG9ELCBvcmln
aW4sIHkpOwpAQCAtNjUsNyArNjIsOCBAQCBzdGQ6OnBhaXI8QmFzaWNCbG9jayosIFZhbHVlKj4g
cG93RG91YmxlCiAgICAgICAgIGZ1bmN0aW9uQ2FsbENhc2UtPmFwcGVuZE5ldzxDb25zdFB0clZh
bHVlPihwcm9jZWR1cmUsIG9yaWdpbiwgYml0d2lzZV9jYXN0PHZvaWQqPihwb3dEb3VibGUpKSwK
ICAgICAgICAgeCwgeUFzRG91YmxlKTsKICAgICBVcHNpbG9uVmFsdWUqIHBvd1Jlc3VsdFVwc2ls
b24gPSBmdW5jdGlvbkNhbGxDYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jZWR1cmUs
IG9yaWdpbiwgcG93UmVzdWx0KTsKLSAgICBmdW5jdGlvbkNhbGxDYXNlLT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jZWR1cmUsIEp1bXAsIG9yaWdpbiwgRnJlcXVlbnRlZEJsb2NrKGNvbnRp
bnVhdGlvbikpOworICAgIGZ1bmN0aW9uQ2FsbENhc2UtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvY2Vk
dXJlLCBKdW1wLCBvcmlnaW4pOworICAgIGZ1bmN0aW9uQ2FsbENhc2UtPnNldFN1Y2Nlc3NvcnMo
RnJlcXVlbnRlZEJsb2NrKGNvbnRpbnVhdGlvbikpOwogCiAgICAgLy8gTG9vcCBwcmUtaGVhZGVy
LgogICAgIFZhbHVlKiBpbml0aWFsUmVzdWx0ID0gbG9vcFByZUhlYWRlckNhc2UtPmFwcGVuZE5l
dzxDb25zdERvdWJsZVZhbHVlPihwcm9jZWR1cmUsIG9yaWdpbiwgMS4pOwpAQCAtNzMsNyArNzEs
OCBAQCBzdGQ6OnBhaXI8QmFzaWNCbG9jayosIFZhbHVlKj4gcG93RG91YmxlCiAgICAgVXBzaWxv
blZhbHVlKiBpbml0aWFsUmVzdWx0VmFsdWUgPSBsb29wUHJlSGVhZGVyQ2FzZS0+YXBwZW5kTmV3
PFVwc2lsb25WYWx1ZT4ocHJvY2VkdXJlLCBvcmlnaW4sIGluaXRpYWxSZXN1bHQpOwogICAgIFVw
c2lsb25WYWx1ZSogaW5pdGlhbFNxdWFyZWRJbnB1dCA9IGxvb3BQcmVIZWFkZXJDYXNlLT5hcHBl
bmROZXc8VXBzaWxvblZhbHVlPihwcm9jZWR1cmUsIG9yaWdpbiwgeCk7CiAgICAgVXBzaWxvblZh
bHVlKiBpbml0aWFsTG9vcENvdW50ZXIgPSBsb29wUHJlSGVhZGVyQ2FzZS0+YXBwZW5kTmV3PFVw
c2lsb25WYWx1ZT4ocHJvY2VkdXJlLCBvcmlnaW4sIHkpOwotICAgIGxvb3BQcmVIZWFkZXJDYXNl
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jZWR1cmUsIEp1bXAsIG9yaWdpbiwgRnJlcXVl
bnRlZEJsb2NrKGxvb3BUZXN0Rm9yRXZlbkNhc2UpKTsKKyAgICBsb29wUHJlSGVhZGVyQ2FzZS0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jZWR1cmUsIEp1bXAsIG9yaWdpbik7CisgICAgbG9vcFByZUhl
YWRlckNhc2UtPnNldFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2NrKGxvb3BUZXN0Rm9yRXZlbkNh
c2UpKTsKIAogICAgIC8vIFRlc3QgaWYgd2hhdCBpcyBsZWZ0IG9mIHRoZSBjb3VudGVyIGlzIGV2
ZW4uCiAgICAgVmFsdWUqIGluTG9vcENvdW50ZXIgPSBsb29wVGVzdEZvckV2ZW5DYXNlLT5hcHBl
bmROZXc8VmFsdWU+KHByb2NlZHVyZSwgUGhpLCBJbnQzMiwgb3JpZ2luKTsKQEAgLTgxLDEwICs4
MCw4IEBAIHN0ZDo6cGFpcjxCYXNpY0Jsb2NrKiwgVmFsdWUqPiBwb3dEb3VibGUKICAgICBWYWx1
ZSogbGFzdENvdW50ZXJCaXQgPSBsb29wVGVzdEZvckV2ZW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+
KHByb2NlZHVyZSwgQml0QW5kLCBvcmlnaW4sCiAgICAgICAgIGluTG9vcENvdW50ZXIsCiAgICAg
ICAgIGxvb3BUZXN0Rm9yRXZlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2NlZHVy
ZSwgb3JpZ2luLCAxKSk7Ci0gICAgbG9vcFRlc3RGb3JFdmVuQ2FzZS0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCi0gICAgICAgIHByb2NlZHVyZSwgQnJhbmNoLCBvcmlnaW4sCi0gICAgICAgIGxh
c3RDb3VudGVyQml0LAotICAgICAgICBGcmVxdWVudGVkQmxvY2sobG9vcE9kZCksIEZyZXF1ZW50
ZWRCbG9jayhsb29wRXZlbk9kZCkpOworICAgIGxvb3BUZXN0Rm9yRXZlbkNhc2UtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvY2VkdXJlLCBCcmFuY2gsIG9yaWdpbiwgbGFzdENvdW50ZXJCaXQpOworICAg
IGxvb3BUZXN0Rm9yRXZlbkNhc2UtPnNldFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2NrKGxvb3BP
ZGQpLCBGcmVxdWVudGVkQmxvY2sobG9vcEV2ZW5PZGQpKTsKIAogICAgIC8vIENvdW50ZXIgaXMg
b2RkLgogICAgIFZhbHVlKiBpbkxvb3BSZXN1bHQgPSBsb29wT2RkLT5hcHBlbmROZXc8VmFsdWU+
KHByb2NlZHVyZSwgUGhpLCBEb3VibGUsIG9yaWdpbik7CkBAIC05NCw3ICs5MSw4IEBAIHN0ZDo6
cGFpcjxCYXNpY0Jsb2NrKiwgVmFsdWUqPiBwb3dEb3VibGUKICAgICB1cGRhdGVkTG9vcFJlc3Vs
dFVwc2lsb24tPnNldFBoaShpbkxvb3BSZXN1bHQpOwogICAgIFVwc2lsb25WYWx1ZSogdXBkYXRl
ZExvb3BSZXN1bHQgPSBsb29wT2RkLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jZWR1cmUs
IG9yaWdpbiwgdXBkYXRlZFJlc3VsdCk7CiAKLSAgICBsb29wT2RkLT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jZWR1cmUsIEp1bXAsIG9yaWdpbiwgRnJlcXVlbnRlZEJsb2NrKGxvb3BFdmVu
T2RkKSk7CisgICAgbG9vcE9kZC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jZWR1cmUsIEp1bXAsIG9y
aWdpbik7CisgICAgbG9vcE9kZC0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2sobG9vcEV2
ZW5PZGQpKTsKIAogICAgIC8vIEV2ZW4gdmFsdWUgYW5kIGZvbGxvd2luZyB0aGUgT2RkLgogICAg
IFZhbHVlKiBzcXVhcmVkSW5wdXQgPSBsb29wRXZlbk9kZC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
ZWR1cmUsIE11bCwgb3JpZ2luLCBpbkxvb3BTcXVhcmVkSW5wdXQsIGluTG9vcFNxdWFyZWRJbnB1
dCk7CkBAIC0xMDksMTAgKzEwNyw4IEBAIHN0ZDo6cGFpcjxCYXNpY0Jsb2NrKiwgVmFsdWUqPiBw
b3dEb3VibGUKICAgICBpbml0aWFsTG9vcENvdW50ZXItPnNldFBoaShpbkxvb3BDb3VudGVyKTsK
ICAgICB1cGRhdGVkQ291bnRlclVwc2lsb24tPnNldFBoaShpbkxvb3BDb3VudGVyKTsKIAotICAg
IGxvb3BFdmVuT2RkLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgcHJvY2VkdXJl
LCBCcmFuY2gsIG9yaWdpbiwKLSAgICAgICAgdXBkYXRlZENvdW50ZXIsCi0gICAgICAgIEZyZXF1
ZW50ZWRCbG9jayhsb29wVGVzdEZvckV2ZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGNvbnRpbnVh
dGlvbikpOworICAgIGxvb3BFdmVuT2RkLT5hcHBlbmROZXc8VmFsdWU+KHByb2NlZHVyZSwgQnJh
bmNoLCBvcmlnaW4sIHVwZGF0ZWRDb3VudGVyKTsKKyAgICBsb29wRXZlbk9kZC0+c2V0U3VjY2Vz
c29ycyhGcmVxdWVudGVkQmxvY2sobG9vcFRlc3RGb3JFdmVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9j
ayhjb250aW51YXRpb24pKTsKIAogICAgIC8vIElubGluZSBsb29wLgogICAgIFZhbHVlKiBmaW5h
bFJlc3VsdFBoaSA9IGNvbnRpbnVhdGlvbi0+YXBwZW5kTmV3PFZhbHVlPihwcm9jZWR1cmUsIFBo
aSwgRG91YmxlLCBvcmlnaW4pOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bj
b2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUu
Y3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNv
ZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOTAsNiArMjkwLDkgQEAgdm9pZCBwcmludEludGVy
bmFsKFByaW50U3RyZWFtJiBvdXQsIE9wYwogICAgIGNhc2UgU3dpdGNoOgogICAgICAgICBvdXQu
cHJpbnQoIlN3aXRjaCIpOwogICAgICAgICByZXR1cm47CisgICAgY2FzZSBQb2x5SnVtcDoKKyAg
ICAgICAgb3V0LnByaW50KCJQb2x5SnVtcCIpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBS
ZXR1cm46CiAgICAgICAgIG91dC5wcmludCgiUmV0dXJuIik7CiAgICAgICAgIHJldHVybjsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjA3
LDIxICsyMDcsMjEgQEAgZW51bSBPcGNvZGUgOiBpbnQxNl90IHsKICAgICBVcHNpbG9uLCAvLyBU
aGlzIHVzZXMgdGhlIFVwc2lsb25WYWx1ZSBjbGFzcy4KICAgICBQaGksCiAKLSAgICAvLyBKdW1w
LiBVc2VzIHRoZSBDb250cm9sVmFsdWUgY2xhc3MuCisgICAgLy8gSnVtcC4KICAgICBKdW1wLAog
ICAgIAotICAgIC8vIFBvbHltb3JwaGljIGJyYW5jaCwgdXNhYmxlIHdpdGggYW55IGludGVnZXIg
dHlwZS4gQnJhbmNoZXMgaWYgbm90IGVxdWFsIHRvIHplcm8uIFVzZXMgdGhlCi0gICAgLy8gQ29u
dHJvbFZhbHVlIGNsYXNzLCB3aXRoIHRoZSAwLWluZGV4IHN1Y2Nlc3NvciBiZWluZyB0aGUgdHJ1
ZSBzdWNjZXNzb3IuCisgICAgLy8gUG9seW1vcnBoaWMgYnJhbmNoLCB1c2FibGUgd2l0aCBhbnkg
aW50ZWdlciB0eXBlLiBCcmFuY2hlcyBpZiBub3QgZXF1YWwgdG8gemVyby4gVGhlIDAtaW5kZXgK
KyAgICAvLyBzdWNjZXNzb3IgaXMgdGhlIHRydWUgc3VjY2Vzc29yLgogICAgIEJyYW5jaCwKIAog
ICAgIC8vIFN3aXRjaC4gU3dpdGNoZXMgb3ZlciBlaXRoZXIgSW50MzIgb3IgSW50NjQuIFVzZXMg
dGhlIFN3aXRjaFZhbHVlIGNsYXNzLgogICAgIFN3aXRjaCwKLQorICAgIAogICAgIC8vIFJldHVy
bi4gTm90ZSB0aGF0IEIzIHByb2NlZHVyZXMgZG9uJ3Qga25vdyB0aGVpciByZXR1cm4gdHlwZSwg
c28gdGhpcyBjYW4ganVzdCByZXR1cm4gYW55Ci0gICAgLy8gdHlwZS4gVXNlcyB0aGUgQ29udHJv
bFZhbHVlIGNsYXNzLgorICAgIC8vIHR5cGUuCiAgICAgUmV0dXJuLAogCi0gICAgLy8gVGhpcyBp
cyBhIHRlcm1pbmFsIHRoYXQgaW5kaWNhdGVzIHRoYXQgd2Ugd2lsbCBuZXZlciBnZXQgaGVyZS4g
VXNlcyB0aGUgQ29udHJvbFZhbHVlIGNsYXNzLgorICAgIC8vIFRoaXMgaXMgYSB0ZXJtaW5hbCB0
aGF0IGluZGljYXRlcyB0aGF0IHdlIHdpbGwgbmV2ZXIgZ2V0IGhlcmUuCiAgICAgT29wcwogfTsK
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUG9seUp1bXBWYWx1ZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUG9seUp1bXBWYWx1ZS5jcHAJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQb2x5SnVtcFZhbHVl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJCM1BvbHlKdW1wVmFsdWUuaCIKKworI2lmIEVOQUJMRShCM19KSVQpCisKKyNpbmNsdWRlICJC
M0Jhc2ljQmxvY2suaCIKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CisKK1BvbHlK
dW1wVmFsdWU6On5Qb2x5SnVtcFZhbHVlKCkKK3sKK30KKwordm9pZCBQb2x5SnVtcFZhbHVlOjph
cHBlbmRTdWNjZXNzb3IoY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBibG9jaykKK3sKKyAgICBtX3N1
Y2Nlc3NvcnMuYXBwZW5kKGJsb2NrKTsKK30KKwordm9pZCBQb2x5SnVtcFZhbHVlOjpzZXRDYWxs
YmFja1Rhc2soUmVmUHRyPFNoYXJlZFRhc2s8Q2FsbGJhY2tGdW5jdGlvblR5cGU+PiB0YXNrKQor
eworICAgIG1fdGFzayA9IHRhc2s7Cit9CisKK2Jvb2wgUG9seUp1bXBWYWx1ZTo6aXNDbG9uZWFi
bGUoKSBjb25zdAoreworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBQb2x5SnVtcFZhbHVl
OjpkdW1wTWV0YShDb21tYVByaW50ZXImIGNvbW1hLCBQcmludFN0cmVhbSYgb3V0KSBjb25zdAor
eworICAgIENvbnRyb2xWYWx1ZTo6ZHVtcE1ldGEoY29tbWEsIG91dCk7CisgICAgb3V0LnByaW50
KGNvbW1hLCAidGFzayA9ICIsIFJhd1BvaW50ZXIobV90YXNrLmdldCgpKSk7Cit9CisKK1ZhbHVl
KiBQb2x5SnVtcFZhbHVlOjpjbG9uZUltcGwoKSBjb25zdAoreworICAgIGRhdGFMb2coIkZBVEFM
OiBBdHRlbXB0IHRvIGNsb25lIG5vbi1jbG9uZWFibGUgUG9seUp1bXBWYWx1ZSFcbiIpOworICAg
IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK1BvbHlKdW1wVmFsdWU6OlBvbHlK
dW1wVmFsdWUoT3JpZ2luIG9yaWdpbiwgVmFsdWUqIGNoaWxkKQorICAgIDogQ29udHJvbFZhbHVl
KFBvbHlKdW1wLCBWb2lkLCBvcmlnaW4sIGNoaWxkKQoreworfQorCit9IH0gLy8gbmFtZXNwYWNl
IEpTQzo6QjMKKworI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCisKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM1BvbHlKdW1wVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNQb2x5SnVtcFZhbHVlLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNQb2x5SnVtcFZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaWZuZGVmIEIzUG9seUp1bXBWYWx1ZV9oCisjZGVmaW5lIEIzUG9seUp1bXBWYWx1ZV9oCisK
KyNpZiBFTkFCTEUoQjNfSklUKQorCisjaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKKyNpbmNs
dWRlIDx3dGYvU2hhcmVkVGFzay5oPgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsK
KworY2xhc3MgUG9seUp1bXBWYWx1ZSA6IHB1YmxpYyBDb250cm9sVmFsdWUgeworcHVibGljOgor
ICAgIHN0YXRpYyBib29sIGFjY2VwdHMoT3Bjb2RlIG9wY29kZSkgeyByZXR1cm4gb3Bjb2RlID09
IFBvbHlKdW1wOyB9CisgICAgCisgICAgflBvbHlKdW1wVmFsdWUoKTsKKyAgICAKKyAgICBKU19F
WFBPUlRfUFJJVkFURSB2b2lkIGFwcGVuZFN1Y2Nlc3Nvcihjb25zdCBGcmVxdWVudGVkQmxvY2sm
KTsKKyAgICAKKyAgICB0eXBlZGVmIHZvaWQgQ2FsbGJhY2tGdW5jdGlvblR5cGUoY29uc3QgVmVj
dG9yPE1hY3JvQXNzZW1ibGVyQ29kZVB0cj4mKTsKKyAgICAKKyAgICBKU19FWFBPUlRfUFJJVkFU
RSB2b2lkIHNldENhbGxiYWNrVGFzayhSZWZQdHI8U2hhcmVkVGFzazxDYWxsYmFja0Z1bmN0aW9u
VHlwZT4+IHRhc2spOworICAgIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmM+CisgICAgdm9p
ZCBzZXRDYWxsYmFjayhjb25zdCBGdW5jJiBmdW5jKQorICAgIHsKKyAgICAgICAgc2V0Q2FsbGJh
Y2tUYXNrKGNyZWF0ZVNoYXJlZFRhc2s8Q2FsbGJhY2tGdW5jdGlvblR5cGU+KGZ1bmMpKTsKKyAg
ICB9CisgICAgCisgICAgU2hhcmVkVGFzazxDYWxsYmFja0Z1bmN0aW9uVHlwZT4qIGNhbGxiYWNr
VGFzaygpIGNvbnN0IHsgcmV0dXJuIG1fdGFzay5nZXQoKTsgfQorICAgIAorICAgIGJvb2wgaXND
bG9uZWFibGUoKSBjb25zdCBvdmVycmlkZTsKKworcHJvdGVjdGVkOgorICAgIHZvaWQgZHVtcE1l
dGEoQ29tbWFQcmludGVyJiwgUHJpbnRTdHJlYW0mKSBjb25zdCBvdmVycmlkZTsKKyAgICAKKyAg
ICBWYWx1ZSogY2xvbmVJbXBsKCkgY29uc3Qgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgZnJp
ZW5kIGNsYXNzIFByb2NlZHVyZTsKKyAgICAKKyAgICBKU19FWFBPUlRfUFJJVkFURSBQb2x5SnVt
cFZhbHVlKE9yaWdpbiwgVmFsdWUqIGNoaWxkKTsKKyAgICAKKyAgICBSZWZQdHI8U2hhcmVkVGFz
azxDYWxsYmFja0Z1bmN0aW9uVHlwZT4+IG1fdGFzazsKK307CisKK30gfSAvLyBuYW1lc3BhY2Ug
SlNDOjpCMworCisjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKKworI2VuZGlmIC8vIEIzUG9seUp1
bXBWYWx1ZV9oCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmNw
cAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2Vk
dXJlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODMsNiArODMsOCBAQCBWYXJpYWJsZSogUHJvY2Vk
dXJlOjphZGRWYXJpYWJsZShUeXBlIHR5CiAKIFZhbHVlKiBQcm9jZWR1cmU6OmNsb25lKFZhbHVl
KiB2YWx1ZSkKIHsKKyAgICBBU1NFUlQodmFsdWUtPmlzQ2xvbmVhYmxlKCkpOworICAgIAogICAg
IHN0ZDo6dW5pcXVlX3B0cjxWYWx1ZT4gY2xvbmUodmFsdWUtPmNsb25lSW1wbCgpKTsKICAgICBj
bG9uZS0+bV9pbmRleCA9IFVJTlRfTUFYOwogICAgIGNsb25lLT5vd25lciA9IG51bGxwdHI7CkBA
IC0xNDgsMzEgKzE1MCw2IEBAIHZvaWQgUHJvY2VkdXJlOjpyZXNldFZhbHVlT3duZXJzKCkKIAog
dm9pZCBQcm9jZWR1cmU6OnJlc2V0UmVhY2hhYmlsaXR5KCkKIHsKLSAgICBpZiAoc2hvdWxkVmFs
aWRhdGVJUigpKSB7Ci0gICAgICAgIC8vIFZhbGlkYXRlIHRoZSBiYXNpYyBwcm9wZXJ0aWVzIHRo
YXQgd2UgbmVlZCBmb3IgcmVzZXR0aW5nIHJlYWNoYWJpbGl0eS4gV2Ugb2Z0ZW4gcmVzZXQKLSAg
ICAgICAgLy8gcmVhY2hhYmlsaXR5IGJlZm9yZSBJUiB2YWxpZGF0aW9uLCBzbyB3aXRob3V0IHRo
aXMgbWluaS12YWxpZGF0aW9uLCB5b3Ugd291bGQgY3Jhc2ggaW5zaWRlCi0gICAgICAgIC8vIEIz
OjpyZXNldFJlYWNoYWJpbGl0eSgpIHdpdGhvdXQgZ2V0dGluZyBhbnkgSVIgZHVtcC4KLQotICAg
ICAgICBCYXNpY0Jsb2NrKiBiYWRCbG9jayA9IG51bGxwdHI7Ci0gICAgICAgIGZvciAoQmFzaWNC
bG9jayogYmxvY2sgOiAqdGhpcykgewotICAgICAgICAgICAgaWYgKCFibG9jay0+c2l6ZSgpKSB7
Ci0gICAgICAgICAgICAgICAgYmFkQmxvY2sgPSBibG9jazsKLSAgICAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKCFibG9jay0+bGFzdCgpLT5hczxD
b250cm9sVmFsdWU+KCkpIHsKLSAgICAgICAgICAgICAgICBiYWRCbG9jayA9IGJsb2NrOwotICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAg
aWYgKGJhZEJsb2NrKSB7Ci0gICAgICAgICAgICBkYXRhTG9nKCJGQVRBTDogSW52YWxpZCBiYXNp
YyBibG9jayAiLCAqYmFkQmxvY2ssICIgd2hpbGUgcnVubmluZyBQcm9jZWR1cmU6OnJlc2V0UmVh
Y2hhYmlsaXR5KCkuXG4iKTsKLSAgICAgICAgICAgIGRhdGFMb2coKnRoaXMpOwotICAgICAgICAg
ICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgfQotICAgIH0KLSAgICAK
ICAgICByZWNvbXB1dGVQcmVkZWNlc3NvcnMobV9ibG9ja3MpOwogICAgIAogICAgIC8vIFRoZSBj
b21tb24gY2FzZSBpcyB0aGF0IHRoaXMgZG9lcyBub3QgZmluZCBhbnkgZGVhZCBibG9ja3MuCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuaAkocmV2aXNpb24gMjAyODA5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEwMSw2ICsxMDEsNyBAQCBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVmFs
dWVUeXBlLCB0eXBlbmFtZS4uLiBBcmd1bWVudHM+CiAgICAgVmFsdWVUeXBlKiBhZGQoQXJndW1l
bnRzLi4uKTsKIAorICAgIC8vIE5vdGUgdGhhdCBub3QgYWxsIHZhbHVlcyBhcmUgY2xvbmVhYmxl
LiBDaGVjayBWYWx1ZTo6aXNDbG9uZWFibGUoKSBiZWZvcmUgcHJvY2VlZGluZy4KICAgICBWYWx1
ZSogY2xvbmUoVmFsdWUqKTsKIAogICAgIFZhbHVlKiBhZGRJbnRDb25zdGFudChPcmlnaW4sIFR5
cGUsIGludDY0X3QgdmFsdWUpOwpAQCAtMjE4LDcgKzIxOSwxMCBAQCBwdWJsaWM6CiAKICAgICBj
b25zdCBjaGFyKiBsYXN0UGhhc2VOYW1lKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0UGhhc2VOYW1l
OyB9CiAKLSAgICB2b2lkKiBhZGREYXRhU2VjdGlvbihzaXplX3Qgc2l6ZSk7CisgICAgLy8gQWxs
b2NhdGVzIGEgc2xhYiBvZiBtZW1vcnkgdGhhdCB3aWxsIGJlIGtlcHQgYWxpdmUgYnkgYW55b25l
IHdobyBrZWVwcyB0aGUgcmVzdWx0aW5nIGNvZGUKKyAgICAvLyBhbGl2ZS4gR3JlYXQgZm9yIGNv
bXBpbGVyLWdlbmVyYXRlZCBkYXRhIHNlY3Rpb25zLCBsaWtlIHN3aXRjaCBqdW1wIHRhYmxlcyBh
bmQgY29uc3RhbnQgcG9vbHMuCisgICAgLy8gVGhpcyByZXR1cm5zIG1lbW9yeSB0aGF0IGhhcyBi
ZWVuIHplcm8taW5pdGlhbGl6ZWQuCisgICAgdm9pZCogYWRkRGF0YVNlY3Rpb24oc2l6ZV90KTsK
IAogICAgIE9wYXF1ZUJ5cHJvZHVjdHMmIGJ5cHJvZHVjdHMoKSB7IHJldHVybiAqbV9ieXByb2R1
Y3RzOyB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3Ro
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VTdHJl
bmd0aC5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1JlZHVjZVN0cmVuZ3RoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNiBAQAogI2lu
Y2x1ZGUgIkIzQmFzaWNCbG9ja0lubGluZXMuaCIKICNpbmNsdWRlICJCM0Jsb2NrSW5zZXJ0aW9u
U2V0LmgiCiAjaW5jbHVkZSAiQjNDb21wdXRlRGl2aXNpb25NYWdpYy5oIgotI2luY2x1ZGUgIkIz
Q29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNEb21pbmF0b3JzLmgiCiAjaW5jbHVkZSAiQjNJ
bmRleFNldC5oIgogI2luY2x1ZGUgIkIzSW5zZXJ0aW9uU2V0SW5saW5lcy5oIgpAQCAtMTcxNyw3
ICsxNzE2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAvLyBSZXBsYWNlIHRoZSByZXN0
IG9mIHRoZSBibG9jayB3aXRoIGFuIE9vcHMuCiAgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25l
ZCBpID0gbV9pbmRleCArIDE7IGkgPCBtX2Jsb2NrLT5zaXplKCkgLSAxOyArK2kpCiAgICAgICAg
ICAgICAgICAgICAgIG1fYmxvY2stPmF0KGkpLT5yZXBsYWNlV2l0aEJvdHRvbShtX2luc2VydGlv
blNldCwgbV9pbmRleCk7Ci0gICAgICAgICAgICAgICAgbV9ibG9jay0+bGFzdCgpLT5hczxDb250
cm9sVmFsdWU+KCktPmNvbnZlcnRUb09vcHMoKTsKKyAgICAgICAgICAgICAgICBtX2Jsb2NrLT5s
YXN0KCktPnJlcGxhY2VXaXRoT29wcyhtX2Jsb2NrKTsKICAgICAgICAgICAgICAgICBtX2Jsb2Nr
LT5sYXN0KCktPnNldE9yaWdpbihjaGVja1ZhbHVlLT5vcmlnaW4oKSk7CiAKICAgICAgICAgICAg
ICAgICAvLyBSZXBsYWNlIG91cnNlbHZlcyBsYXN0LgpAQCAtMTc3Myw3ICsxNzcyLDE3IEBAIHBy
aXZhdGU6CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZS0+b3Bjb2RlKCkgPT0gU2Vs
ZWN0CiAgICAgICAgICAgICAgICAgICAgICAgICAmJiAodmFsdWUtPmNoaWxkKDEpLT5pc0NvbnN0
YW50KCkgJiYgdmFsdWUtPmNoaWxkKDIpLT5pc0NvbnN0YW50KCkpOwogICAgICAgICAgICAgICAg
IH0pOwotICAgICAgICAgICAgaWYgKHNlbGVjdCkgeworICAgICAgICAgICAgCisgICAgICAgICAg
ICAvLyBNYWtlIHN1cmUgdGhhdCB0aGUgcmVsZXZhbnQgY29kZSBpcyBjbG9uZWFibGUuCisgICAg
ICAgICAgICBib29sIGFsbEFyZUNsb25lYWJsZSA9IHRydWU7CisgICAgICAgICAgICBmb3IgKHVu
c2lnbmVkIGluZGV4ID0gbV9pbmRleCArIDE7IGluZGV4LS07KSB7CisgICAgICAgICAgICAgICAg
VmFsdWUqIHZhbHVlID0gbV9ibG9jay0+YXQoaW5kZXgpOworICAgICAgICAgICAgICAgIGFsbEFy
ZUNsb25lYWJsZSAmPSB2YWx1ZS0+aXNDbG9uZWFibGUoKTsKKyAgICAgICAgICAgICAgICBpZiAo
dmFsdWUgPT0gc2VsZWN0KQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHNlbGVjdCAmJiBhbGxBcmVDbG9uZWFi
bGUpIHsKICAgICAgICAgICAgICAgICBzcGVjaWFsaXplU2VsZWN0KHNlbGVjdCk7CiAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CkBAIC0xNzgxLDUwICsxNzkwLDQ4IEBAIHBy
aXZhdGU6CiAgICAgICAgIH0KIAogICAgICAgICBjYXNlIEJyYW5jaDogewotICAgICAgICAgICAg
Q29udHJvbFZhbHVlKiBicmFuY2ggPSBtX3ZhbHVlLT5hczxDb250cm9sVmFsdWU+KCk7Ci0KICAg
ICAgICAgICAgIC8vIFR1cm4gdGhpczogQnJhbmNoKE5vdEVxdWFsKHgsIDApKQogICAgICAgICAg
ICAgLy8gSW50byB0aGlzOiBCcmFuY2goeCkKLSAgICAgICAgICAgIGlmIChicmFuY2gtPmNoaWxk
KDApLT5vcGNvZGUoKSA9PSBOb3RFcXVhbCAmJiBicmFuY2gtPmNoaWxkKDApLT5jaGlsZCgxKS0+
aXNJbnQoMCkpIHsKLSAgICAgICAgICAgICAgICBicmFuY2gtPmNoaWxkKDApID0gYnJhbmNoLT5j
aGlsZCgwKS0+Y2hpbGQoMCk7CisgICAgICAgICAgICBpZiAobV92YWx1ZS0+Y2hpbGQoMCktPm9w
Y29kZSgpID09IE5vdEVxdWFsICYmIG1fdmFsdWUtPmNoaWxkKDApLT5jaGlsZCgxKS0+aXNJbnQo
MCkpIHsKKyAgICAgICAgICAgICAgICBtX3ZhbHVlLT5jaGlsZCgwKSA9IG1fdmFsdWUtPmNoaWxk
KDApLT5jaGlsZCgwKTsKICAgICAgICAgICAgICAgICBtX2NoYW5nZWQgPSB0cnVlOwogICAgICAg
ICAgICAgfQogCiAgICAgICAgICAgICAvLyBUdXJuIHRoaXM6IEJyYW5jaChFcXVhbCh4LCAwKSwg
dGhlbiwgZWxzZSkKICAgICAgICAgICAgIC8vIEludG8gdGhpczogQnJhbmNoKHgsIGVsc2UsIHRo
ZW4pCi0gICAgICAgICAgICBpZiAoYnJhbmNoLT5jaGlsZCgwKS0+b3Bjb2RlKCkgPT0gRXF1YWwg
JiYgYnJhbmNoLT5jaGlsZCgwKS0+Y2hpbGQoMSktPmlzSW50KDApKSB7Ci0gICAgICAgICAgICAg
ICAgYnJhbmNoLT5jaGlsZCgwKSA9IGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDApOwotICAgICAg
ICAgICAgICAgIHN0ZDo6c3dhcChicmFuY2gtPnRha2VuKCksIGJyYW5jaC0+bm90VGFrZW4oKSk7
CisgICAgICAgICAgICBpZiAobV92YWx1ZS0+Y2hpbGQoMCktPm9wY29kZSgpID09IEVxdWFsICYm
IG1fdmFsdWUtPmNoaWxkKDApLT5jaGlsZCgxKS0+aXNJbnQoMCkpIHsKKyAgICAgICAgICAgICAg
ICBtX3ZhbHVlLT5jaGlsZCgwKSA9IG1fdmFsdWUtPmNoaWxkKDApLT5jaGlsZCgwKTsKKyAgICAg
ICAgICAgICAgICBzdGQ6OnN3YXAobV9ibG9jay0+dGFrZW4oKSwgbV9ibG9jay0+bm90VGFrZW4o
KSk7CiAgICAgICAgICAgICAgICAgbV9jaGFuZ2VkID0gdHJ1ZTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIAogICAgICAgICAgICAgLy8gVHVybiB0aGlzOiBCcmFuY2goQml0WG9yKGJvb2ws
IDEpLCB0aGVuLCBlbHNlKQogICAgICAgICAgICAgLy8gSW50byB0aGlzOiBCcmFuY2goYm9vbCwg
ZWxzZSwgdGhlbikKLSAgICAgICAgICAgIGlmIChicmFuY2gtPmNoaWxkKDApLT5vcGNvZGUoKSA9
PSBCaXRYb3IKLSAgICAgICAgICAgICAgICAmJiBicmFuY2gtPmNoaWxkKDApLT5jaGlsZCgxKS0+
aXNJbnQzMigxKQotICAgICAgICAgICAgICAgICYmIGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDAp
LT5yZXR1cm5zQm9vbCgpKSB7Ci0gICAgICAgICAgICAgICAgYnJhbmNoLT5jaGlsZCgwKSA9IGJy
YW5jaC0+Y2hpbGQoMCktPmNoaWxkKDApOwotICAgICAgICAgICAgICAgIHN0ZDo6c3dhcChicmFu
Y2gtPnRha2VuKCksIGJyYW5jaC0+bm90VGFrZW4oKSk7CisgICAgICAgICAgICBpZiAobV92YWx1
ZS0+Y2hpbGQoMCktPm9wY29kZSgpID09IEJpdFhvcgorICAgICAgICAgICAgICAgICYmIG1fdmFs
dWUtPmNoaWxkKDApLT5jaGlsZCgxKS0+aXNJbnQzMigxKQorICAgICAgICAgICAgICAgICYmIG1f
dmFsdWUtPmNoaWxkKDApLT5jaGlsZCgwKS0+cmV0dXJuc0Jvb2woKSkgeworICAgICAgICAgICAg
ICAgIG1fdmFsdWUtPmNoaWxkKDApID0gbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDApOworICAg
ICAgICAgICAgICAgIHN0ZDo6c3dhcChtX2Jsb2NrLT50YWtlbigpLCBtX2Jsb2NrLT5ub3RUYWtl
bigpKTsKICAgICAgICAgICAgICAgICBtX2NoYW5nZWQgPSB0cnVlOwogICAgICAgICAgICAgfQog
CiAgICAgICAgICAgICAvLyBUdXJuIHRoaXM6IEJyYW5jaChCaXRBbmQoYm9vbCwgeHliMSksIHRo
ZW4sIGVsc2UpCiAgICAgICAgICAgICAvLyBJbnRvIHRoaXM6IEJyYW5jaChib29sLCB0aGVuLCBl
bHNlKQotICAgICAgICAgICAgaWYgKGJyYW5jaC0+Y2hpbGQoMCktPm9wY29kZSgpID09IEJpdEFu
ZAotICAgICAgICAgICAgICAgICYmIGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDEpLT5oYXNJbnQo
KQotICAgICAgICAgICAgICAgICYmIGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDEpLT5hc0ludCgp
ICYgMQotICAgICAgICAgICAgICAgICYmIGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDApLT5yZXR1
cm5zQm9vbCgpKSB7Ci0gICAgICAgICAgICAgICAgYnJhbmNoLT5jaGlsZCgwKSA9IGJyYW5jaC0+
Y2hpbGQoMCktPmNoaWxkKDApOworICAgICAgICAgICAgaWYgKG1fdmFsdWUtPmNoaWxkKDApLT5v
cGNvZGUoKSA9PSBCaXRBbmQKKyAgICAgICAgICAgICAgICAmJiBtX3ZhbHVlLT5jaGlsZCgwKS0+
Y2hpbGQoMSktPmhhc0ludCgpCisgICAgICAgICAgICAgICAgJiYgbV92YWx1ZS0+Y2hpbGQoMCkt
PmNoaWxkKDEpLT5hc0ludCgpICYgMQorICAgICAgICAgICAgICAgICYmIG1fdmFsdWUtPmNoaWxk
KDApLT5jaGlsZCgwKS0+cmV0dXJuc0Jvb2woKSkgeworICAgICAgICAgICAgICAgIG1fdmFsdWUt
PmNoaWxkKDApID0gbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDApOwogICAgICAgICAgICAgICAg
IG1fY2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIFRyaVN0YXRl
IHRyaVN0YXRlID0gYnJhbmNoLT5jaGlsZCgwKS0+YXNUcmlTdGF0ZSgpOworICAgICAgICAgICAg
VHJpU3RhdGUgdHJpU3RhdGUgPSBtX3ZhbHVlLT5jaGlsZCgwKS0+YXNUcmlTdGF0ZSgpOwogCiAg
ICAgICAgICAgICAvLyBUdXJuIHRoaXM6IEJyYW5jaCgwLCB0aGVuLCBlbHNlKQogICAgICAgICAg
ICAgLy8gSW50byB0aGlzOiBKdW1wKGVsc2UpCiAgICAgICAgICAgICBpZiAodHJpU3RhdGUgPT0g
RmFsc2VUcmlTdGF0ZSkgewotICAgICAgICAgICAgICAgIGJyYW5jaC0+dGFrZW4oKS5ibG9jaygp
LT5yZW1vdmVQcmVkZWNlc3NvcihtX2Jsb2NrKTsKLSAgICAgICAgICAgICAgICBicmFuY2gtPmNv
bnZlcnRUb0p1bXAoYnJhbmNoLT5ub3RUYWtlbigpLmJsb2NrKCkpOworICAgICAgICAgICAgICAg
IG1fYmxvY2stPnRha2VuKCkuYmxvY2soKS0+cmVtb3ZlUHJlZGVjZXNzb3IobV9ibG9jayk7Cisg
ICAgICAgICAgICAgICAgbV92YWx1ZS0+cmVwbGFjZVdpdGhKdW1wKG1fYmxvY2ssIG1fYmxvY2st
Pm5vdFRha2VuKCkuYmxvY2soKSk7CiAgICAgICAgICAgICAgICAgbV9jaGFuZ2VkQ0ZHID0gdHJ1
ZTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KQEAgLTE4MzIsOCArMTgz
OSw4IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAvLyBUdXJuIHRoaXM6IEJyYW5jaChub3QgMCwg
dGhlbiwgZWxzZSkKICAgICAgICAgICAgIC8vIEludG8gdGhpczogSnVtcCh0aGVuKQogICAgICAg
ICAgICAgaWYgKHRyaVN0YXRlID09IFRydWVUcmlTdGF0ZSkgewotICAgICAgICAgICAgICAgIGJy
YW5jaC0+bm90VGFrZW4oKS5ibG9jaygpLT5yZW1vdmVQcmVkZWNlc3NvcihtX2Jsb2NrKTsKLSAg
ICAgICAgICAgICAgICBicmFuY2gtPmNvbnZlcnRUb0p1bXAoYnJhbmNoLT50YWtlbigpLmJsb2Nr
KCkpOworICAgICAgICAgICAgICAgIG1fYmxvY2stPm5vdFRha2VuKCkuYmxvY2soKS0+cmVtb3Zl
UHJlZGVjZXNzb3IobV9ibG9jayk7CisgICAgICAgICAgICAgICAgbV92YWx1ZS0+cmVwbGFjZVdp
dGhKdW1wKG1fYmxvY2ssIG1fYmxvY2stPnRha2VuKCkuYmxvY2soKSk7CiAgICAgICAgICAgICAg
ICAgbV9jaGFuZ2VkQ0ZHID0gdHJ1ZTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgIH0KQEAgLTE4NDIsMTIgKzE4NDksMTIgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIC8vIG9m
IG1ha2VzIHNlbnNlIGhlcmUgYmVjYXVzZSBpdCdzIGNoZWFwLCBidXQgaGFja3MgbGlrZSB0aGlz
IHNob3cgdGhhdCB3ZSdyZSBnb2luZwogICAgICAgICAgICAgLy8gdG8gbmVlZCBTQ0NQLgogICAg
ICAgICAgICAgVmFsdWUqIGNoZWNrID0gbV9wdXJlQ1NFLmZpbmRNYXRjaCgKLSAgICAgICAgICAg
ICAgICBWYWx1ZUtleShDaGVjaywgVm9pZCwgYnJhbmNoLT5jaGlsZCgwKSksIG1fYmxvY2ssICpt
X2RvbWluYXRvcnMpOworICAgICAgICAgICAgICAgIFZhbHVlS2V5KENoZWNrLCBWb2lkLCBtX3Zh
bHVlLT5jaGlsZCgwKSksIG1fYmxvY2ssICptX2RvbWluYXRvcnMpOwogICAgICAgICAgICAgaWYg
KGNoZWNrKSB7CiAgICAgICAgICAgICAgICAgLy8gVGhlIENoZWNrIHdvdWxkIGhhdmUgc2lkZS1l
eGl0ZWQgaWYgY2hpbGQoMCkgd2FzIG5vbi16ZXJvLiBTbywgaXQgbXVzdCBiZQogICAgICAgICAg
ICAgICAgIC8vIHplcm8gaGVyZS4KLSAgICAgICAgICAgICAgICBicmFuY2gtPnRha2VuKCkuYmxv
Y2soKS0+cmVtb3ZlUHJlZGVjZXNzb3IobV9ibG9jayk7Ci0gICAgICAgICAgICAgICAgYnJhbmNo
LT5jb252ZXJ0VG9KdW1wKGJyYW5jaC0+bm90VGFrZW4oKS5ibG9jaygpKTsKKyAgICAgICAgICAg
ICAgICBtX2Jsb2NrLT50YWtlbigpLmJsb2NrKCktPnJlbW92ZVByZWRlY2Vzc29yKG1fYmxvY2sp
OworICAgICAgICAgICAgICAgIG1fdmFsdWUtPnJlcGxhY2VXaXRoSnVtcChtX2Jsb2NrLCBtX2Js
b2NrLT5ub3RUYWtlbigpLmJsb2NrKCkpOwogICAgICAgICAgICAgICAgIG1fY2hhbmdlZENGRyA9
IHRydWU7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKQEAgLTE5ODYsMTMgKzE5
OTMsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgLy8gUmVtb3ZlIHRoZSB2YWx1ZXMgZnJvbSB0aGUg
cHJlZGVjZXNzb3IuCiAgICAgICAgIHByZWRlY2Vzc29yLT52YWx1ZXMoKS5yZXNpemUoc3RhcnRJ
bmRleCk7CiAgICAgICAgIAotICAgICAgICBwcmVkZWNlc3Nvci0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCi0gICAgICAgICAgICBtX3Byb2MsIEJyYW5jaCwgc291cmNlLT5vcmlnaW4oKSwgcHJl
ZGljYXRlLAotICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKGNhc2VzWzBdKSwgRnJlcXVlbnRl
ZEJsb2NrKGNhc2VzWzFdKSk7CisgICAgICAgIHByZWRlY2Vzc29yLT5hcHBlbmROZXc8VmFsdWU+
KG1fcHJvYywgQnJhbmNoLCBzb3VyY2UtPm9yaWdpbigpLCBwcmVkaWNhdGUpOworICAgICAgICBw
cmVkZWNlc3Nvci0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2soY2FzZXNbMF0pLCBGcmVx
dWVudGVkQmxvY2soY2FzZXNbMV0pKTsKIAogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgbnVtQ2FzZXM7ICsraSkgewotICAgICAgICAgICAgY2FzZXNbaV0tPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAotICAgICAgICAgICAgICAgIG1fcHJvYywgSnVtcCwgbV92YWx1ZS0+b3JpZ2lu
KCksIEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7CisgICAgICAgICAgICBjYXNlc1tpXS0+YXBw
ZW5kTmV3PFZhbHVlPihtX3Byb2MsIEp1bXAsIG1fdmFsdWUtPm9yaWdpbigpKTsKKyAgICAgICAg
ICAgIGNhc2VzW2ldLT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7CiAg
ICAgICAgIH0KIAogICAgICAgICBtX2NoYW5nZWQgPSB0cnVlOwpAQCAtMjIyMSw3ICsyMjI3LDcg
QEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhTG9nKAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiQ2hhbmdpbmcgIiwgcG9pbnRlckR1bXAoYmxvY2sp
LCAiJ3MgdGVybWluYWwgdG8gYSBKdW1wLlxuIik7CiAgICAgICAgICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgICAgICAgICBibG9jay0+bGFzdCgpLT5hczxDb250cm9sVmFsdWU+
KCktPmNvbnZlcnRUb0p1bXAoZmlyc3RTdWNjZXNzb3IpOworICAgICAgICAgICAgICAgICAgICAg
ICAgYmxvY2stPmxhc3QoKS0+cmVwbGFjZVdpdGhKdW1wKGJsb2NrLCBmaXJzdFN1Y2Nlc3Nvcik7
CiAgICAgICAgICAgICAgICAgICAgICAgICBtX2NoYW5nZWRDRkcgPSB0cnVlOwogICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQpAQCAtMjIzOSwxNiArMjI0NSwxOCBAQCBw
cml2YXRlOgogICAgICAgICAgICAgICAgICAgICAvLyBSZW1vdmUgdGhlIHRlcm1pbmFsLgogICAg
ICAgICAgICAgICAgICAgICBWYWx1ZSogdmFsdWUgPSBibG9jay0+dmFsdWVzKCkudGFrZUxhc3Qo
KTsKICAgICAgICAgICAgICAgICAgICAgT3JpZ2luIGp1bXBPcmlnaW4gPSB2YWx1ZS0+b3JpZ2lu
KCk7Ci0gICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHZhbHVlLT5hczxDb250cm9s
VmFsdWU+KCkpOworICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVCh2YWx1ZS0+ZWZm
ZWN0cygpLnRlcm1pbmFsKTsKICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLmRlbGV0ZVZhbHVl
KHZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgIC8vIEFw
cGVuZCB0aGUgZnVsbCBjb250ZW50cyBvZiB0aGUgc3VjY2Vzc29yIHRvIHRoZSBwcmVkZWNlc3Nv
ci4KICAgICAgICAgICAgICAgICAgICAgYmxvY2stPnZhbHVlcygpLmFwcGVuZFZlY3RvcihzdWNj
ZXNzb3ItPnZhbHVlcygpKTsKKyAgICAgICAgICAgICAgICAgICAgYmxvY2stPnN1Y2Nlc3NvcnMo
KSA9IHN1Y2Nlc3Nvci0+c3VjY2Vzc29ycygpOwogICAgICAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgdGhlIHN1Y2Nlc3NvciBoYXMgbm90aGlu
ZyBsZWZ0IGluIGl0LiBNYWtlIHN1cmUgdGhhdCB0aGUgYmxvY2sKICAgICAgICAgICAgICAgICAg
ICAgLy8gaGFzIGEgdGVybWluYWwgc28gdGhhdCBub2JvZHkgY2hva2VzIHdoZW4gdGhleSBsb29r
IGF0IGl0LgogICAgICAgICAgICAgICAgICAgICBzdWNjZXNzb3ItPnZhbHVlcygpLnJlc2l6ZSgw
KTsKLSAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc29yLT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PihtX3Byb2MsIE9vcHMsIGp1bXBPcmlnaW4pOworICAgICAgICAgICAgICAgICAgICBzdWNjZXNz
b3ItPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBPb3BzLCBqdW1wT3JpZ2luKTsKKyAgICAgICAg
ICAgICAgICAgICAgc3VjY2Vzc29yLT5jbGVhclN1Y2Nlc3NvcnMoKTsKICAgICAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgICAgIC8vIEVuc3VyZSB0aGF0IHByZWRlY2Vzc29ycyBv
ZiBibG9jaydzIG5ldyBzdWNjZXNzb3JzIGtub3cgd2hhdCdzIHVwLgogICAgICAgICAgICAgICAg
ICAgICBmb3IgKEJhc2ljQmxvY2sqIG5ld1N1Y2Nlc3NvciA6IGJsb2NrLT5zdWNjZXNzb3JCbG9j
a3MoKSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N3aXRjaFZhbHVlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTd2l0Y2hWYWx1ZS5jcHAJ
KHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N3aXRjaFZh
bHVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsMzAgKzM3LDM5IEBAIFN3aXRjaFZhbHVlOjp+
U3dpdGNoVmFsdWUoKQogewogfQogCi1Td2l0Y2hDYXNlIFN3aXRjaFZhbHVlOjpyZW1vdmVDYXNl
KHVuc2lnbmVkIGluZGV4KQorU3dpdGNoQ2FzZSBTd2l0Y2hWYWx1ZTo6cmVtb3ZlQ2FzZShCYXNp
Y0Jsb2NrKiBibG9jaywgdW5zaWduZWQgaW5kZXgpCiB7Ci0gICAgRnJlcXVlbnRlZEJsb2NrIHJl
c3VsdEJsb2NrID0gbV9zdWNjZXNzb3JzW2luZGV4XTsKKyAgICBGcmVxdWVudGVkQmxvY2sgcmVz
dWx0QmxvY2sgPSBibG9jay0+c3VjY2Vzc29yKGluZGV4KTsKICAgICBpbnQ2NF90IHJlc3VsdFZh
bHVlID0gbV92YWx1ZXNbaW5kZXhdOwotICAgIG1fc3VjY2Vzc29yc1tpbmRleF0gPSBtX3N1Y2Nl
c3NvcnMubGFzdCgpOwotICAgIG1fc3VjY2Vzc29ycy5yZW1vdmVMYXN0KCk7CisgICAgYmxvY2st
PnN1Y2Nlc3NvcihpbmRleCkgPSBibG9jay0+c3VjY2Vzc29ycygpLmxhc3QoKTsKKyAgICBibG9j
ay0+c3VjY2Vzc29ycygpLnJlbW92ZUxhc3QoKTsKICAgICBtX3ZhbHVlc1tpbmRleF0gPSBtX3Zh
bHVlcy5sYXN0KCk7CiAgICAgbV92YWx1ZXMucmVtb3ZlTGFzdCgpOwogICAgIHJldHVybiBTd2l0
Y2hDYXNlKHJlc3VsdFZhbHVlLCByZXN1bHRCbG9jayk7CiB9CiAKLXZvaWQgU3dpdGNoVmFsdWU6
OmFwcGVuZENhc2UoY29uc3QgU3dpdGNoQ2FzZSYgc3dpdGNoQ2FzZSkKK3ZvaWQgU3dpdGNoVmFs
dWU6OmFwcGVuZENhc2UoQmFzaWNCbG9jayogYmxvY2ssIGNvbnN0IFN3aXRjaENhc2UmIHN3aXRj
aENhc2UpCiB7Ci0gICAgbV9zdWNjZXNzb3JzLmFwcGVuZChtX3N1Y2Nlc3NvcnMubGFzdCgpKTsK
LSAgICBtX3N1Y2Nlc3NvcnNbbV9zdWNjZXNzb3JzLnNpemUoKSAtIDJdID0gc3dpdGNoQ2FzZS50
YXJnZXQoKTsKKyAgICBibG9jay0+c3VjY2Vzc29ycygpLmFwcGVuZChibG9jay0+c3VjY2Vzc29y
cygpLmxhc3QoKSk7CisgICAgYmxvY2stPnN1Y2Nlc3NvcihibG9jay0+bnVtU3VjY2Vzc29ycygp
IC0gMikgPSBzd2l0Y2hDYXNlLnRhcmdldCgpOwogICAgIG1fdmFsdWVzLmFwcGVuZChzd2l0Y2hD
YXNlLmNhc2VWYWx1ZSgpKTsKIH0KIAordm9pZCBTd2l0Y2hWYWx1ZTo6ZHVtcFN1Y2Nlc3NvcnMo
QmFzaWNCbG9jayogYmxvY2ssIFByaW50U3RyZWFtJiBvdXQpIGNvbnN0Cit7CisgICAgLy8gV2Ug
bXVzdCBub3QgY3Jhc2ggZHVlIHRvIGEgbnVtYmVyLW9mLXN1Y2Nlc3NvcnMgbWlzbWF0Y2ghIFNv
bWVvbmUgZGVidWdnaW5nIGEKKyAgICAvLyBudW1iZXItb2Ytc3VjY2Vzc29ycyBidWcgd2lsbCB3
YW50IHRvIGR1bXAgSVIhCisgICAgaWYgKG51bUNhc2VWYWx1ZXMoKSArIDEgIT0gYmxvY2stPm51
bVN1Y2Nlc3NvcnMoKSkgeworICAgICAgICBWYWx1ZTo6ZHVtcFN1Y2Nlc3NvcnMoYmxvY2ssIG91
dCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgb3V0LnByaW50KGNhc2VzKGJs
b2NrKSk7Cit9CisKIHZvaWQgU3dpdGNoVmFsdWU6OmR1bXBNZXRhKENvbW1hUHJpbnRlciYgY29t
bWEsIFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiB7Ci0gICAgLy8gVGhpcyBkZXN0cnVjdGl2ZWx5
IG92ZXJyaWRlcyBDb250cm9sVmFsdWUncyBkdW1wTWV0YSgpLgotICAgIGZvciAoU3dpdGNoQ2Fz
ZSBzd2l0Y2hDYXNlIDogKnRoaXMpCi0gICAgICAgIG91dC5wcmludChjb21tYSwgc3dpdGNoQ2Fz
ZSk7Ci0gICAgb3V0LnByaW50KGNvbW1hLCAiZmFsbFRocm91Z2ggPSAiLCBmYWxsVGhyb3VnaCgp
KTsKKyAgICBvdXQucHJpbnQoY29tbWEsICJjYXNlcyA9IFsiLCBsaXN0RHVtcChtX3ZhbHVlcyks
ICJdIik7CiB9CiAKIFZhbHVlKiBTd2l0Y2hWYWx1ZTo6Y2xvbmVJbXBsKCkgY29uc3QKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N3aXRjaFZhbHVlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3dpdGNoVmFsdWUuaAkocmV2aXNpb24gMjAyODA5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3dpdGNoVmFsdWUuaAkod29ya2luZyBj
b3B5KQpAQCAtMjgsMTIgKzI4LDEzIEBACiAKICNpZiBFTkFCTEUoQjNfSklUKQogCi0jaW5jbHVk
ZSAiQjNDb250cm9sVmFsdWUuaCIKKyNpbmNsdWRlICJCM0Nhc2VDb2xsZWN0aW9uLmgiCiAjaW5j
bHVkZSAiQjNTd2l0Y2hDYXNlLmgiCisjaW5jbHVkZSAiQjNWYWx1ZS5oIgogCiBuYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIEIzIHsKIAotY2xhc3MgU3dpdGNoVmFsdWUgOiBwdWJsaWMgQ29udHJv
bFZhbHVlIHsKK2NsYXNzIFN3aXRjaFZhbHVlIDogcHVibGljIFZhbHVlIHsKIHB1YmxpYzoKICAg
ICBzdGF0aWMgYm9vbCBhY2NlcHRzKE9wY29kZSBvcGNvZGUpIHsgcmV0dXJuIG9wY29kZSA9PSBT
d2l0Y2g7IH0KIApAQCAtNDcsNzEgKzQ4LDE3IEBAIHB1YmxpYzoKICAgICAKICAgICBjb25zdCBW
ZWN0b3I8aW50NjRfdD4mIGNhc2VWYWx1ZXMoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlczsgfQog
Ci0gICAgRnJlcXVlbnRlZEJsb2NrIGZhbGxUaHJvdWdoKCkgY29uc3QgeyByZXR1cm4gc3VjY2Vz
c29ycygpLmxhc3QoKTsgfQotICAgIEZyZXF1ZW50ZWRCbG9jayYgZmFsbFRocm91Z2goKSB7IHJl
dHVybiBzdWNjZXNzb3JzKCkubGFzdCgpOyB9Ci0KLSAgICB1bnNpZ25lZCBzaXplKCkgY29uc3Qg
eyByZXR1cm4gbnVtQ2FzZVZhbHVlcygpOyB9Ci0gICAgU3dpdGNoQ2FzZSBhdCh1bnNpZ25lZCBp
bmRleCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBTd2l0Y2hDYXNlKGNhc2VWYWx1ZShp
bmRleCksIHN1Y2Nlc3NvcihpbmRleCkpOwotICAgIH0KLSAgICBTd2l0Y2hDYXNlIG9wZXJhdG9y
W10odW5zaWduZWQgaW5kZXgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gYXQoaW5kZXgp
OwotICAgIH0KLQotICAgIGNsYXNzIGl0ZXJhdG9yIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIGl0
ZXJhdG9yKCkKLSAgICAgICAgICAgIDogbV9zd2l0Y2gobnVsbHB0cikKLSAgICAgICAgICAgICwg
bV9pbmRleCgwKQotICAgICAgICB7Ci0gICAgICAgIH0KLQotICAgICAgICBpdGVyYXRvcihjb25z
dCBTd2l0Y2hWYWx1ZSYgc3dpdGNoVmFsdWUsIHVuc2lnbmVkIGluZGV4KQotICAgICAgICAgICAg
OiBtX3N3aXRjaCgmc3dpdGNoVmFsdWUpCi0gICAgICAgICAgICAsIG1faW5kZXgoaW5kZXgpCi0g
ICAgICAgIHsKLSAgICAgICAgfQotCi0gICAgICAgIFN3aXRjaENhc2Ugb3BlcmF0b3IqKCkKLSAg
ICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG1fc3dpdGNoLT5hdChtX2luZGV4KTsKLSAgICAg
ICAgfQotCi0gICAgICAgIGl0ZXJhdG9yJiBvcGVyYXRvcisrKCkKLSAgICAgICAgewotICAgICAg
ICAgICAgbV9pbmRleCsrOwotICAgICAgICAgICAgcmV0dXJuICp0aGlzOwotICAgICAgICB9Ci0K
LSAgICAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IGl0ZXJhdG9yJiBvdGhlcikgY29uc3QKLSAg
ICAgICAgewotICAgICAgICAgICAgQVNTRVJUKG1fc3dpdGNoID09IG90aGVyLm1fc3dpdGNoKTsK
LSAgICAgICAgICAgIHJldHVybiBtX2luZGV4ID09IG90aGVyLm1faW5kZXg7Ci0gICAgICAgIH0K
LQotICAgICAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgaXRlcmF0b3ImIG90aGVyKSBjb25zdAot
ICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7Ci0gICAgICAg
IH0KLQotICAgIHByaXZhdGU6Ci0gICAgICAgIGNvbnN0IFN3aXRjaFZhbHVlKiBtX3N3aXRjaDsK
LSAgICAgICAgdW5zaWduZWQgbV9pbmRleDsKLSAgICB9OwotCi0gICAgdHlwZWRlZiBpdGVyYXRv
ciBjb25zdF9pdGVyYXRvcjsKLQotICAgIGl0ZXJhdG9yIGJlZ2luKCkgY29uc3QgeyByZXR1cm4g
aXRlcmF0b3IoKnRoaXMsIDApOyB9Ci0gICAgaXRlcmF0b3IgZW5kKCkgY29uc3QgeyByZXR1cm4g
aXRlcmF0b3IoKnRoaXMsIHNpemUoKSk7IH0KKyAgICBDYXNlQ29sbGVjdGlvbiBjYXNlcyhCYXNp
Y0Jsb2NrKiBvd25lcikgY29uc3QgeyByZXR1cm4gQ2FzZUNvbGxlY3Rpb24odGhpcywgb3duZXIp
OyB9CisgICAgQ2FzZUNvbGxlY3Rpb24gY2FzZXMoKSBjb25zdCB7IHJldHVybiBjYXNlcyhvd25l
cik7IH0KIAogICAgIC8vIFRoaXMgcmVtb3ZlcyB0aGUgY2FzZSBhbmQgcmVvcmRlcnMgdGhpbmdz
IGEgYml0LiBJZiB5b3UncmUgaXRlcmF0aW5nIHRoZSBjYXNlcyBmcm9tIDAgdG8gTiwKICAgICAv
LyB0aGVuIHlvdSBjYW4ga2VlcCBpdGVyYXRpbmcgYWZ0ZXIgdGhpcyBzbyBsb25nIGFzIHlvdSBy
ZXZpc2l0IHRoaXMgc2FtZSBpbmRleCAod2hpY2ggd2lsbCBub3cKICAgICAvLyBjb250YWluIHNv
bWUgb3RoZXIgY2FzZSB2YWx1ZSkuIFRoaXMgcmVtb3ZlcyB0aGUgY2FzZSB0aGF0IHdhcyByZW1v
dmVkLgotICAgIFN3aXRjaENhc2UgcmVtb3ZlQ2FzZSh1bnNpZ25lZCBpbmRleCk7CisgICAgU3dp
dGNoQ2FzZSByZW1vdmVDYXNlKEJhc2ljQmxvY2sqLCB1bnNpZ25lZCBpbmRleCk7CisKKyAgICBK
U19FWFBPUlRfUFJJVkFURSB2b2lkIGFwcGVuZENhc2UoQmFzaWNCbG9jayosIGNvbnN0IFN3aXRj
aENhc2UmKTsKIAotICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgYXBwZW5kQ2FzZShjb25zdCBT
d2l0Y2hDYXNlJik7CisgICAgdm9pZCBkdW1wU3VjY2Vzc29ycyhCYXNpY0Jsb2NrKiwgUHJpbnRT
dHJlYW0mKSBjb25zdCBvdmVycmlkZTsKIAogcHJvdGVjdGVkOgogICAgIHZvaWQgZHVtcE1ldGEo
Q29tbWFQcmludGVyJiwgUHJpbnRTdHJlYW0mKSBjb25zdCBvdmVycmlkZTsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbGlkYXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNWYWxpZGF0ZS5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbGlkYXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTA3LDggKzEwNyw4IEBAIHB1YmxpYzoKICAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBibG9jayA6
IGJsb2NrcykgewogICAgICAgICAgICAgVkFMSURBVEUoYmxvY2stPnNpemUoKSA+PSAxLCAoIkF0
ICIsICpibG9jaykpOwogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGJsb2Nr
LT5zaXplKCkgLSAxOyArK2kpCi0gICAgICAgICAgICAgICAgVkFMSURBVEUoIUNvbnRyb2xWYWx1
ZTo6YWNjZXB0cyhibG9jay0+YXQoaSktPm9wY29kZSgpKSwgKCJBdCAiLCAqYmxvY2stPmF0KGkp
KSk7Ci0gICAgICAgICAgICBWQUxJREFURShDb250cm9sVmFsdWU6OmFjY2VwdHMoYmxvY2stPmxh
c3QoKS0+b3Bjb2RlKCkpLCAoIkF0ICIsICpibG9jay0+bGFzdCgpKSk7CisgICAgICAgICAgICAg
ICAgVkFMSURBVEUoIWJsb2NrLT5hdChpKS0+ZWZmZWN0cygpLnRlcm1pbmFsLCAoIkF0ICIsICpi
bG9jay0+YXQoaSkpKTsKKyAgICAgICAgICAgIFZBTElEQVRFKGJsb2NrLT5sYXN0KCktPmVmZmVj
dHMoKS50ZXJtaW5hbCwgKCJBdCAiLCAqYmxvY2stPmxhc3QoKSkpOwogICAgICAgICAgICAgCiAg
ICAgICAgICAgICBmb3IgKEJhc2ljQmxvY2sqIHN1Y2Nlc3NvciA6IGJsb2NrLT5zdWNjZXNzb3JC
bG9ja3MoKSkgewogICAgICAgICAgICAgICAgIGFsbFByZWRlY2Vzc29ycy5hZGQoc3VjY2Vzc29y
LCBIYXNoU2V0PEJhc2ljQmxvY2sqPigpKS5pdGVyYXRvci0+dmFsdWUuYWRkKGJsb2NrKTsKQEAg
LTEyOSw4ICsxMjksNiBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgVkFMSURBVEUoY2hpbGQt
PnR5cGUoKSAhPSBWb2lkLCAoIkF0ICIsICp2YWx1ZSwgIi0+IiwgKmNoaWxkKSk7CiAgICAgICAg
ICAgICBzd2l0Y2ggKHZhbHVlLT5vcGNvZGUoKSkgewogICAgICAgICAgICAgY2FzZSBOb3A6Ci0g
ICAgICAgICAgICBjYXNlIEp1bXA6Ci0gICAgICAgICAgICBjYXNlIE9vcHM6CiAgICAgICAgICAg
ICAgICAgVkFMSURBVEUoIXZhbHVlLT5udW1DaGlsZHJlbigpLCAoIkF0ICIsICp2YWx1ZSkpOwog
ICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgPT0gVm9pZCwgKCJBdCAiLCAq
dmFsdWUpKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTM3NywxNSArMzc1LDMyIEBAIHB1
YmxpYzoKICAgICAgICAgICAgICAgICBWQUxJREFURSghdmFsdWUtPm51bUNoaWxkcmVuKCksICgi
QXQgIiwgKnZhbHVlKSk7CiAgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPnR5cGUoKSAh
PSBWb2lkLCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgY2FzZSBKdW1wOgorICAgICAgICAgICAgICAgIFZBTElEQVRFKCF2YWx1ZS0+bnVtQ2hp
bGRyZW4oKSwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1
ZS0+dHlwZSgpID09IFZvaWQsICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAgICAgVkFM
SURBVEUodmFsdWVPd25lci5nZXQodmFsdWUpLT5udW1TdWNjZXNzb3JzKCkgPT0gMSk7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIE9vcHM6CisgICAgICAgICAgICAg
ICAgVkFMSURBVEUoIXZhbHVlLT5udW1DaGlsZHJlbigpLCAoIkF0ICIsICp2YWx1ZSkpOworICAg
ICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgPT0gVm9pZCwgKCJBdCAiLCAqdmFs
dWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFURSghdmFsdWVPd25lci5nZXQodmFsdWUpLT5u
dW1TdWNjZXNzb3JzKCkpOworICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2Fz
ZSBSZXR1cm46CiAgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPm51bUNoaWxkcmVuKCkg
PT0gMSwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+
dHlwZSgpID09IFZvaWQsICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAgICAgVkFMSURB
VEUoIXZhbHVlT3duZXIuZ2V0KHZhbHVlKS0+bnVtU3VjY2Vzc29ycygpKTsKICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgQnJhbmNoOgorICAgICAgICAgICAgICAgIFZB
TElEQVRFKHZhbHVlLT5udW1DaGlsZHJlbigpID09IDEsICgiQXQgIiwgKnZhbHVlKSk7CisgICAg
ICAgICAgICAgICAgVkFMSURBVEUoaXNJbnQodmFsdWUtPmNoaWxkKDApLT50eXBlKCkpLCAoIkF0
ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgPT0g
Vm9pZCwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZU93
bmVyLmdldCh2YWx1ZSktPm51bVN1Y2Nlc3NvcnMoKSA9PSAyKTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgIGNhc2UgU3dpdGNoOgogICAgICAgICAgICAgICAgIFZBTElEQVRF
KHZhbHVlLT5udW1DaGlsZHJlbigpID09IDEsICgiQXQgIiwgKnZhbHVlKSk7CiAgICAgICAgICAg
ICAgICAgVkFMSURBVEUoaXNJbnQodmFsdWUtPmNoaWxkKDApLT50eXBlKCkpLCAoIkF0ICIsICp2
YWx1ZSkpOwogICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgPT0gVm9pZCwg
KCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZU93bmVyLmdl
dCh2YWx1ZSktPm51bVN1Y2Nlc3NvcnMoKSA9PSB2YWx1ZS0+YXM8U3dpdGNoVmFsdWU+KCktPm51
bUNhc2VWYWx1ZXMoKSArIDEpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
fQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuY3BwCShyZXZpc2lvbiAyMDI4
MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEyNSw2ICsxMjUsNTAgQEAgdm9pZCBWYWx1ZTo6cmVwbGFjZVdpdGhQaGkoKQogICAg
IHRoaXMtPm1faW5kZXggPSBpbmRleDsKIH0KIAordm9pZCBWYWx1ZTo6cmVwbGFjZVdpdGhKdW1w
KEJhc2ljQmxvY2sqIG93bmVyLCBjb25zdCBGcmVxdWVudGVkQmxvY2smIHRhcmdldCkKK3sKKyAg
ICBSRUxFQVNFX0FTU0VSVChvd25lci0+bGFzdCgpID09IHRoaXMpOworICAgIAorICAgIHVuc2ln
bmVkIGluZGV4ID0gbV9pbmRleDsKKyAgICBPcmlnaW4gb3JpZ2luID0gbV9vcmlnaW47CisgICAg
CisgICAgdGhpcy0+flZhbHVlKCk7CisgICAgCisgICAgbmV3ICh0aGlzKSBWYWx1ZShKdW1wLCBW
b2lkLCBvcmlnaW4pOworICAgIAorICAgIHRoaXMtPm93bmVyID0gb3duZXI7CisgICAgdGhpcy0+
bV9pbmRleCA9IGluZGV4OworICAgIAorICAgIG93bmVyLT5zZXRTdWNjZXNzb3JzKHRhcmdldCk7
Cit9CisKK3ZvaWQgVmFsdWU6OnJlcGxhY2VXaXRoT29wcyhCYXNpY0Jsb2NrKiBvd25lcikKK3sK
KyAgICBSRUxFQVNFX0FTU0VSVChvd25lci0+bGFzdCgpID09IHRoaXMpOworICAgIAorICAgIHVu
c2lnbmVkIGluZGV4ID0gbV9pbmRleDsKKyAgICBPcmlnaW4gb3JpZ2luID0gbV9vcmlnaW47Cisg
ICAgCisgICAgdGhpcy0+flZhbHVlKCk7CisgICAgCisgICAgbmV3ICh0aGlzKSBWYWx1ZShPb3Bz
LCBWb2lkLCBvcmlnaW4pOworICAgIAorICAgIHRoaXMtPm93bmVyID0gb3duZXI7CisgICAgdGhp
cy0+bV9pbmRleCA9IGluZGV4OworICAgIAorICAgIG93bmVyLT5jbGVhclN1Y2Nlc3NvcnMoKTsK
K30KKwordm9pZCBWYWx1ZTo6cmVwbGFjZVdpdGhKdW1wKGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYg
dGFyZ2V0KQoreworICAgIHJlcGxhY2VXaXRoSnVtcChvd25lciwgdGFyZ2V0KTsKK30KKwordm9p
ZCBWYWx1ZTo6cmVwbGFjZVdpdGhPb3BzKCkKK3sKKyAgICByZXBsYWNlV2l0aE9vcHMob3duZXIp
OworfQorCiB2b2lkIFZhbHVlOjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiB7CiAgICAg
Ym9vbCBpc0NvbnN0YW50ID0gZmFsc2U7CkBAIC0xODksNiArMjMzLDE5IEBAIHZvaWQgVmFsdWU6
OmRlZXBEdW1wKGNvbnN0IFByb2NlZHVyZSogcHIKICAgICBvdXQucHJpbnQoIikiKTsKIH0KIAor
dm9pZCBWYWx1ZTo6ZHVtcFN1Y2Nlc3NvcnMoQmFzaWNCbG9jayogYmxvY2ssIFByaW50U3RyZWFt
JiBvdXQpIGNvbnN0Cit7CisgICAgLy8gTm90ZSB0aGF0IHRoaXMgbXVzdCBub3QgY3Jhc2ggaWYg
d2UgaGF2ZSB0aGUgd3JvbmcgbnVtYmVyIG9mIHN1Y2Nlc3NvcnMsIHNpbmNlIHNvbWVvbmUKKyAg
ICAvLyBkZWJ1Z2dpbmcgYSBudW1iZXItb2Ytc3VjY2Vzc29ycyBidWcgd2lsbCBwcm9iYWJseSB3
YW50IHRvIGR1bXAgSVIhCisgICAgCisgICAgaWYgKG9wY29kZSgpID09IEJyYW5jaCAmJiBibG9j
ay0+bnVtU3VjY2Vzc29ycygpID09IDIpIHsKKyAgICAgICAgb3V0LnByaW50KCJUaGVuOiIsIGJs
b2NrLT50YWtlbigpLCAiLCBFbHNlOiIsIGJsb2NrLT5ub3RUYWtlbigpKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICAKKyAgICBvdXQucHJpbnQobGlzdER1bXAoYmxvY2stPnN1Y2Nlc3Nv
cnMoKSkpOworfQorCiBWYWx1ZSogVmFsdWU6Om5lZ0NvbnN0YW50KFByb2NlZHVyZSYpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC01NTIsNiArNjA5LDcgQEAgRWZmZWN0cyBWYWx1
ZTo6ZWZmZWN0cygpIGNvbnN0CiAgICAgY2FzZSBKdW1wOgogICAgIGNhc2UgQnJhbmNoOgogICAg
IGNhc2UgU3dpdGNoOgorICAgIGNhc2UgUG9seUp1bXA6CiAgICAgY2FzZSBSZXR1cm46CiAgICAg
Y2FzZSBPb3BzOgogICAgICAgICByZXN1bHQudGVybWluYWwgPSB0cnVlOwpAQCAtNTYwLDYgKzYx
OCwxMSBAQCBFZmZlY3RzIFZhbHVlOjplZmZlY3RzKCkgY29uc3QKICAgICByZXR1cm4gcmVzdWx0
OwogfQogCitib29sIFZhbHVlOjppc0Nsb25lYWJsZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRy
dWU7Cit9CisKIFZhbHVlS2V5IFZhbHVlOjprZXkoKSBjb25zdAogewogICAgIHN3aXRjaCAob3Bj
b2RlKCkpIHsKQEAgLTcxMyw2ICs3NzYsMTAgQEAgVHlwZSBWYWx1ZTo6dHlwZUZvcihPcGNvZGUg
b3Bjb2RlLCBWYWx1ZQogICAgICAgICB9CiAgICAgICAgIHJldHVybiBWb2lkOwogICAgIGNhc2Ug
Tm9wOgorICAgIGNhc2UgSnVtcDoKKyAgICBjYXNlIEJyYW5jaDoKKyAgICBjYXNlIFJldHVybjoK
KyAgICBjYXNlIE9vcHM6CiAgICAgICAgIHJldHVybiBWb2lkOwogICAgIGNhc2UgU2VsZWN0Ogog
ICAgICAgICBBU1NFUlQoc2Vjb25kQ2hpbGQpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNW
YWx1ZS5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNW
YWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDksOSArMTA5LDE5IEBAIHB1YmxpYzoKICAgICB2
b2lkIHJlcGxhY2VXaXRoTm9wSWdub3JpbmdUeXBlKCk7CiAgICAgCiAgICAgdm9pZCByZXBsYWNl
V2l0aFBoaSgpOworICAgIAorICAgIC8vIFRoZXNlIHRyYW5zZm9ybWF0aW9ucyBhcmUgb25seSB2
YWxpZCBmb3IgdGVybWluYWxzLgorICAgIHZvaWQgcmVwbGFjZVdpdGhKdW1wKEJhc2ljQmxvY2sq
IG93bmVyLCBjb25zdCBGcmVxdWVudGVkQmxvY2smKTsKKyAgICB2b2lkIHJlcGxhY2VXaXRoT29w
cyhCYXNpY0Jsb2NrKiBvd25lcik7CisgICAgCisgICAgLy8gWW91IGNhbiB1c2UgdGhpcyBmb3Jt
IGlmIG93bmVycyBhcmUgdmFsaWQuIFRoZXkncmUgdXN1YWxseSBub3QgdmFsaWQuCisgICAgdm9p
ZCByZXBsYWNlV2l0aEp1bXAoY29uc3QgRnJlcXVlbnRlZEJsb2NrJik7CisgICAgdm9pZCByZXBs
YWNlV2l0aE9vcHMoKTsKIAogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0OwogICAg
IHZvaWQgZGVlcER1bXAoY29uc3QgUHJvY2VkdXJlKiwgUHJpbnRTdHJlYW0mKSBjb25zdDsKKyAg
ICAKKyAgICB2aXJ0dWFsIHZvaWQgZHVtcFN1Y2Nlc3NvcnMoQmFzaWNCbG9jayosIFByaW50U3Ry
ZWFtJikgY29uc3Q7CiAKICAgICAvLyBUaGlzIGlzIGhvdyB5b3UgY2FzdCBWYWx1ZXMuIEZvciBl
eGFtcGxlLCBpZiB5b3Ugd2FudCB0byBkbyBzb21ldGhpbmcgcHJvdmlkZWQgdGhhdCB3ZSBoYXZl
IGEKICAgICAvLyBBcmd1bWVudFJlZ1ZhbHVlLCB5b3UgY2FuIGRvOgpAQCAtMjIzLDYgKzIzMywx
MSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0xpa2VOb25aZXJvKCkgY29uc3QgeyByZXR1cm4gYXNU
cmlTdGF0ZSgpID09IFRydWVUcmlTdGF0ZTsgfQogCiAgICAgRWZmZWN0cyBlZmZlY3RzKCkgY29u
c3Q7CisgICAgCisgICAgLy8gU29tZSBvcGVyYXRpb25zIHdpbGwgcmVmdXNlIHRvIGJlIGNsb25l
ZC4gVGhpcyBoYXBwZW5zIHdoZW4gdGhlIG9wZXJhdGlvbiBoYXMgc29tZSBpbnNpZGUKKyAgICAv
LyBrbm93bGVkZ2UgYWJvdXQgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIGl0cyBpZGVudGl0eSBh
bmQgdGhlIGlkZW50aXR5IG9mIHRoZSBjb2RlIGl0IHdpbGwKKyAgICAvLyBnZW5lcmF0ZS4KKyAg
ICB2aXJ0dWFsIGJvb2wgaXNDbG9uZWFibGUoKSBjb25zdDsKIAogICAgIC8vIFRoaXMgcmV0dXJu
cyBhIFZhbHVlS2V5IHRoYXQgZGVzY3JpYmVzIHRoYXQgdGhpcyBWYWx1ZSByZXR1cm5zIHdoZW4g
aXQgZXhlY3V0ZXMuIFJldHVybnMgYW4KICAgICAvLyBlbXB0eSBWYWx1ZUtleSBpZiB0aGlzIFZh
bHVlIGlzIGltcHVyZS4gTm90ZSB0aGF0IGFuIG9wZXJhdGlvbiB0aGF0IHJldHVybnMgVm9pZCBj
b3VsZCBzdGlsbApAQCAtMjY0LDYgKzI3OSw4IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgRnJh
bWVQb2ludGVyOgogICAgICAgICBjYXNlIE5vcDoKICAgICAgICAgY2FzZSBQaGk6CisgICAgICAg
IGNhc2UgSnVtcDoKKyAgICAgICAgY2FzZSBPb3BzOgogICAgICAgICAgICAgaWYgKFVOTElLRUxZ
KG51bUFyZ3MpKQogICAgICAgICAgICAgICAgIGJhZE9wY29kZShvcGNvZGUsIG51bUFyZ3MpOwog
ICAgICAgICAgICAgYnJlYWs7CkBAIC0yODQsNiArMzAxLDggQEAgcHJpdmF0ZToKICAgICAgICAg
Y2FzZSBEb3VibGVUb0Zsb2F0OgogICAgICAgICBjYXNlIElUb0Y6CiAgICAgICAgIGNhc2UgQml0
d2lzZUNhc3Q6CisgICAgICAgIGNhc2UgQnJhbmNoOgorICAgICAgICBjYXNlIFJldHVybjoKICAg
ICAgICAgICAgIGlmIChVTkxJS0VMWShudW1BcmdzICE9IDEpKQogICAgICAgICAgICAgICAgIGJh
ZE9wY29kZShvcGNvZGUsIG51bUFyZ3MpOwogICAgICAgICAgICAgYnJlYWs7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcg
QEAKICNpbmNsdWRlICJCM0NvbnN0UHRyVmFsdWUuaCIKICNpbmNsdWRlICJCM0NvbnRyb2xWYWx1
ZS5oIgogI2luY2x1ZGUgIkIzRWZmZWN0cy5oIgorI2luY2x1ZGUgIkIzUG9seUp1bXBWYWx1ZS5o
IgogI2luY2x1ZGUgIkIzTWF0aEV4dHJhcy5oIgogI2luY2x1ZGUgIkIzTWVtb3J5VmFsdWUuaCIK
ICNpbmNsdWRlICJCM1Byb2NlZHVyZS5oIgpAQCAtNDYsNiArNDcsNyBAQAogI2luY2x1ZGUgIkIz
VXBzaWxvblZhbHVlLmgiCiAjaW5jbHVkZSAiQjNWYWxpZGF0ZS5oIgogI2luY2x1ZGUgIkIzVmFs
dWVJbmxpbmVzLmgiCisjaW5jbHVkZSAiQjNWYXJpYWJsZVZhbHVlLmgiCiAjaW5jbHVkZSAiQ0Nh
bGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiSW5pdGlhbGl6ZVRocmVhZGluZy5oIgogI2luY2x1ZGUg
IkpTQ0lubGluZXMuaCIKQEAgLTU0LDYgKzU2LDcgQEAKICNpbmNsdWRlICJWTS5oIgogI2luY2x1
ZGUgPGNtYXRoPgogI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDx3dGYvTGlzdER1bXAuaD4K
ICNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9OdW1iZXJPZkNvcmVzLmg+CiAj
aW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgpAQCAtNzUsNiArNzgsMTEgQEAgdXNpbmcgbmFtZXNw
YWNlIEpTQzo6QjM7CiAKIG5hbWVzcGFjZSB7CiAKK2Jvb2wgc2hvdWxkQmVWZXJib3NlKCkKK3sK
KyAgICByZXR1cm4gc2hvdWxkRHVtcElSKEIzTW9kZSk7Cit9CisKIFN0YXRpY0xvY2sgY3Jhc2hM
b2NrOwogCiAvLyBOb3RoaW5nIGZhbmN5IGZvciBub3c7IHdlIGp1c3QgdXNlIHRoZSBleGlzdGlu
ZyBXVEYgYXNzZXJ0aW9uIG1hY2hpbmVyeS4KQEAgLTEwMTcwLDcgKzEwMTc4LDEwIEBAIHZvaWQg
dGVzdFN3aXRjaENoaWxsRGl2KHVuc2lnbmVkIGRlZ3JlZSwKICAgICBhdXRvIGNvZGUgPSBjb21w
aWxlKHByb2MpOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGRlZ3JlZTsgKytpKSB7
Ci0gICAgICAgIENIRUNLKGludm9rZTxpbnQzMl90PigqY29kZSwgaSAqIGdhcCwgNDIsIDExKSA9
PSAoKGkgJiAxKSA/IDExLzQyIDogNDIvMTEpKTsKKyAgICAgICAgZGF0YUxvZygiaSA9ICIsIGks
ICJcbiIpOworICAgICAgICBpbnQzMl90IHJlc3VsdCA9IGludm9rZTxpbnQzMl90PigqY29kZSwg
aSAqIGdhcCwgNDIsIDExKTsKKyAgICAgICAgZGF0YUxvZygicmVzdWx0ID0gIiwgcmVzdWx0LCAi
XG4iKTsKKyAgICAgICAgQ0hFQ0socmVzdWx0ID09ICgoaSAmIDEpID8gMTEvNDIgOiA0Mi8xMSkp
OwogICAgICAgICBpZiAoZ2FwID4gMSkgewogICAgICAgICAgICAgQ0hFQ0soIWludm9rZTxpbnQz
Ml90PigqY29kZSwgaSAqIGdhcCArIDEsIDQyLCAxMSkpOwogICAgICAgICAgICAgQ0hFQ0soIWlu
dm9rZTxpbnQzMl90PigqY29kZSwgaSAqIGdhcCAtIDEsIDQyLCAxMSkpOwpAQCAtMTIwOTIsNiAr
MTIxMDMsMjMxIEBAIHZvaWQgdGVzdExhdGVSZWdpc3RlcigpCiAgICAgQ0hFQ0soaW52b2tlPHVp
bnQ2NF90PigqY29kZSkgPT0gcmVzdWx0KTsKIH0KIAordm9pZCB0aHJlYWRlZEludGVycHJldGVy
UHJpbnQoVmVjdG9yPGludHB0cl90Piogc3RyZWFtLCBpbnRwdHJfdCB2YWx1ZSkKK3sKKyAgICBz
dHJlYW0tPmFwcGVuZCh2YWx1ZSk7Cit9CisKK3ZvaWQgdGVzdFRocmVhZGVkSW50ZXJwcmV0ZXIo
KQoreworICAgIC8vIFRoaXMgY3JlYXRlcyBhIHBvb3IgbWFuJ3MgdGhyZWFkZWQgaW50ZXJwcmV0
ZXIgdXNpbmcgUG9seUp1bXAgYW5kIHNlZXMgaWYgaXQgd29ya3MuIE5vdGUKKyAgICAvLyB0aGF0
IFBvbHlKdW1wIGlzIG5vdCBsaWtlIGluZGlyZWN0IGJyYW5jaGVzIGluIExMVk0sIHNvIHlvdSBj
YW4ndCBhY3R1YWxseSB1c2UgaXQgdG8KKyAgICAvLyBpbXBsZW1lbnQgYSBwcm9wZXIgdGhyZWFk
ZWQgaW50ZXJwcmV0ZXIuIFRoaXMgY2hlYXRzOiB0aGUgZGlzcGF0Y2ggaW5zdHJ1Y3Rpb24gaXMg
YXQgdGhlIHRvcAorICAgIC8vIG9mIHRoZSBsb29wLiBUaGlzIGFsc28gdGVzdHMgVmFyaWFibGVW
YWx1ZS4KKyAgICAKKyAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICAKKyAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOworICAgIEJhc2ljQmxvY2sqIGRpc3BhdGNoID0gcHJvYy5h
ZGRCbG9jaygpOworICAgIEJhc2ljQmxvY2sqIGFkZFRvRGF0YVBvaW50ZXIgPSBwcm9jLmFkZEJs
b2NrKCk7CisgICAgQmFzaWNCbG9jayogYWRkVG9Db2RlUG9pbnRlciA9IHByb2MuYWRkQmxvY2so
KTsKKyAgICBCYXNpY0Jsb2NrKiBhZGRUb0NvZGVQb2ludGVyVGFrZW4gPSBwcm9jLmFkZEJsb2Nr
KCk7CisgICAgQmFzaWNCbG9jayogYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuID0gcHJvYy5hZGRC
bG9jaygpOworICAgIEJhc2ljQmxvY2sqIGFkZFRvRGF0YSA9IHByb2MuYWRkQmxvY2soKTsKKyAg
ICBCYXNpY0Jsb2NrKiBwcmludCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBCYXNpY0Jsb2NrKiBz
dG9wID0gcHJvYy5hZGRCbG9jaygpOworICAgIAorICAgIFZhcmlhYmxlKiBkYXRhUG9pbnRlciA9
IHByb2MuYWRkVmFyaWFibGUocG9pbnRlclR5cGUoKSk7CisgICAgVmFyaWFibGUqIGNvZGVQb2lu
dGVyID0gcHJvYy5hZGRWYXJpYWJsZShwb2ludGVyVHlwZSgpKTsKKyAgICAKKyAgICByb290LT5h
cHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGRh
dGFQb2ludGVyLAorICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOworICAgIHJvb3QtPmFwcGVuZE5l
dzxWYXJpYWJsZVZhbHVlPigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgY29kZVBvaW50
ZXIsCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7CisgICAgVmFsdWUqIGNvbnRleHQgPSByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMik7CisgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVt
cCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhkaXNwYXRjaCkpOworICAgIAorICAgIFBvbHlK
dW1wVmFsdWUqIHBvbHlKdW1wID0gZGlzcGF0Y2gtPmFwcGVuZE5ldzxQb2x5SnVtcFZhbHVlPigK
KyAgICAgICAgcHJvYywgT3JpZ2luKCksCisgICAgICAgIGRpc3BhdGNoLT5hcHBlbmROZXc8TWVt
b3J5VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2lu
KCksCisgICAgICAgICAgICBkaXNwYXRjaC0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAg
ICAgICAgICAgICAgIHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlcikpKTsKKyAg
ICBwb2x5SnVtcC0+YXBwZW5kU3VjY2Vzc29yKEZyZXF1ZW50ZWRCbG9jayhhZGRUb0RhdGFQb2lu
dGVyKSk7CisgICAgcG9seUp1bXAtPmFwcGVuZFN1Y2Nlc3NvcihGcmVxdWVudGVkQmxvY2soYWRk
VG9Db2RlUG9pbnRlcikpOworICAgIHBvbHlKdW1wLT5hcHBlbmRTdWNjZXNzb3IoRnJlcXVlbnRl
ZEJsb2NrKGFkZFRvRGF0YSkpOworICAgIHBvbHlKdW1wLT5hcHBlbmRTdWNjZXNzb3IoRnJlcXVl
bnRlZEJsb2NrKHByaW50KSk7CisgICAgcG9seUp1bXAtPmFwcGVuZFN1Y2Nlc3NvcihGcmVxdWVu
dGVkQmxvY2soc3RvcCkpOworICAgIAorICAgIC8vIE91ciAib3Bjb2RlcyIuIFRoZXkgd2lsbCBo
YXZlIG1lYW5pbmcgb25jZSB3ZSBjb21waWxlLgorICAgIGludHB0cl90IEFkZERQID0gMDsKKyAg
ICBpbnRwdHJfdCBBZGRDUCA9IDA7CisgICAgaW50cHRyX3QgQWRkID0gMDsKKyAgICBpbnRwdHJf
dCBQcmludCA9IDA7CisgICAgaW50cHRyX3QgU3RvcCA9IDA7CisgICAgcG9seUp1bXAtPnNldENh
bGxiYWNrKAorICAgICAgICBbJl0gKGNvbnN0IFZlY3RvcjxNYWNyb0Fzc2VtYmxlckNvZGVQdHI+
JiBwb2ludGVycykgeworICAgICAgICAgICAgYXV0byBnZXQgPSBbJl0gKHNpemVfdCBpbmRleCkg
LT4gaW50cHRyX3QgeworICAgICAgICAgICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8aW50cHRy
X3Q+KHBvaW50ZXJzW2luZGV4XS5leGVjdXRhYmxlQWRkcmVzcygpKTsKKyAgICAgICAgICAgIH07
CisgICAgICAgICAgICAKKyAgICAgICAgICAgIEFkZERQID0gZ2V0KDApOworICAgICAgICAgICAg
QWRkQ1AgPSBnZXQoMSk7CisgICAgICAgICAgICBBZGQgPSBnZXQoMik7CisgICAgICAgICAgICBQ
cmludCA9IGdldCgzKTsKKyAgICAgICAgICAgIFN0b3AgPSBnZXQoNCk7CisgICAgICAgIH0pOwor
ICAgIAorICAgIC8vIEFkZERQIDxvcGVyYW5kPjogYWRkcyA8b3BlcmFuZD4gdG8gRFAuCisgICAg
VmFsdWUqIGNvZGVQb2ludGVyVmFsdWUgPQorICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBl
bmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGNvZGVQb2ludGVy
KTsKKyAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAg
ICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGRhdGFQb2ludGVyLAorICAgICAgICBhZGRUb0RhdGFQ
b2ludGVyLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgQjM6OkFkZCwgT3Jp
Z2luKCksCisgICAgICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVW
YWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGRhdGFQb2ludGVyKSwKKyAgICAgICAgICAg
IGFkZFRvRGF0YVBvaW50ZXItPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICAgICAgcHJv
YywgTXVsLCBPcmlnaW4oKSwKKyAgICAgICAgICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBl
bmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICAgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2lu
dGVyVHlwZSgpLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwgc2l6ZW9mKGludHB0cl90KSks
CisgICAgICAgICAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kSW50Q29uc3RhbnQoCisg
ICAgICAgICAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLCBwb2ludGVyVHlwZSgpLCBzaXplb2Yo
aW50cHRyX3QpKSkpKTsKKyAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVW
YWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyLAorICAgICAg
ICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgcHJvYywg
QjM6OkFkZCwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUsCisgICAgICAgICAgICBhZGRUb0Rh
dGFQb2ludGVyLT5hcHBlbmRJbnRDb25zdGFudCgKKyAgICAgICAgICAgICAgICBwcm9jLCBPcmln
aW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6ZW9mKGludHB0cl90KSAqIDIpKSk7CisgICAgYWRkVG9E
YXRhUG9pbnRlci0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCks
IEZyZXF1ZW50ZWRCbG9jayhkaXNwYXRjaCkpOworICAgIAorICAgIC8vIEFkZENQIDxvcGVyYW5k
PjogYWRkcyA8b3BlcmFuZD4gdG8gQ1AgaWYgdGhlIGN1cnJlbnQgdmFsdWUgYXQgRFAgaXMgbm9u
LXplcm8sIG90aGVyd2lzZQorICAgIC8vIGZhbGxzIHRocm91Z2ggbm9ybWFsbHkuCisgICAgY29k
ZVBvaW50ZXJWYWx1ZSA9CisgICAgICAgIGFkZFRvQ29kZVBvaW50ZXItPmFwcGVuZE5ldzxWYXJp
YWJsZVZhbHVlPihwcm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIpOworICAgIFZh
bHVlKiBkYXRhUG9pbnRlclZhbHVlID0KKyAgICAgICAgYWRkVG9Db2RlUG9pbnRlci0+YXBwZW5k
TmV3PFZhcmlhYmxlVmFsdWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRlcik7
CisgICAgYWRkVG9Db2RlUG9pbnRlci0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAg
IHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCisgICAgICAgIGFkZFRvQ29kZVBvaW50ZXItPmFwcGVu
ZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgp
LCBPcmlnaW4oKSwgZGF0YVBvaW50ZXJWYWx1ZSksCisgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhh
ZGRUb0NvZGVQb2ludGVyVGFrZW4pLCBGcmVxdWVudGVkQmxvY2soYWRkVG9Db2RlUG9pbnRlck5v
dFRha2VuKSk7CisgICAgYWRkVG9Db2RlUG9pbnRlclRha2VuLT5hcHBlbmROZXc8VmFyaWFibGVW
YWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyLAorICAgICAg
ICBhZGRUb0NvZGVQb2ludGVyVGFrZW4tPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICBw
cm9jLCBCMzo6QWRkLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwKKyAgICAgICAgICAgIGFk
ZFRvQ29kZVBvaW50ZXJUYWtlbi0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgICAgICBw
cm9jLCBNdWwsIE9yaWdpbigpLAorICAgICAgICAgICAgICAgIGFkZFRvQ29kZVBvaW50ZXJUYWtl
bi0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAgICAgICAgICAgcHJvYywgTG9h
ZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUsIHNpemVvZihpbnRw
dHJfdCkpLAorICAgICAgICAgICAgICAgIGFkZFRvQ29kZVBvaW50ZXJUYWtlbi0+YXBwZW5kSW50
Q29uc3RhbnQoCisgICAgICAgICAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLCBwb2ludGVyVHlw
ZSgpLCBzaXplb2YoaW50cHRyX3QpKSkpKTsKKyAgICBhZGRUb0NvZGVQb2ludGVyVGFrZW4tPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxv
Y2soZGlzcGF0Y2gpKTsKKyAgICBhZGRUb0NvZGVQb2ludGVyTm90VGFrZW4tPmFwcGVuZE5ldzxW
YXJpYWJsZVZhbHVlPigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIs
CisgICAgICAgIGFkZFRvQ29kZVBvaW50ZXJOb3RUYWtlbi0+YXBwZW5kTmV3PFZhbHVlPigKKyAg
ICAgICAgICAgIHByb2MsIEIzOjpBZGQsIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLAorICAg
ICAgICAgICAgYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuLT5hcHBlbmRJbnRDb25zdGFudCgKKyAg
ICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6ZW9mKGludHB0
cl90KSAqIDIpKSk7CisgICAgYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuLT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICAgICAgcHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9j
ayhkaXNwYXRjaCkpOworCisgICAgLy8gQWRkIDxvcGVyYW5kPjogYWRkcyA8b3BlcmFuZD4gdG8g
dGhlIHNsb3QgcG9pbnRlZCB0byBieSBEUC4KKyAgICBjb2RlUG9pbnRlclZhbHVlID0gYWRkVG9E
YXRhLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGNv
ZGVQb2ludGVyKTsKKyAgICBkYXRhUG9pbnRlclZhbHVlID0gYWRkVG9EYXRhLT5hcHBlbmROZXc8
VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGRhdGFQb2ludGVyKTsKKyAg
ICBhZGRUb0RhdGEtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgIHByb2MsIFN0b3Jl
LCBPcmlnaW4oKSwKKyAgICAgICAgYWRkVG9EYXRhLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAg
ICAgICAgcHJvYywgQjM6OkFkZCwgT3JpZ2luKCksCisgICAgICAgICAgICBhZGRUb0RhdGEtPmFw
cGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRl
clR5cGUoKSwgT3JpZ2luKCksIGRhdGFQb2ludGVyVmFsdWUpLAorICAgICAgICAgICAgYWRkVG9E
YXRhLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICAgICAgICAgIHByb2MsIExvYWQs
IHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLCBzaXplb2YoaW50cHRy
X3QpKSksCisgICAgICAgIGRhdGFQb2ludGVyVmFsdWUpOworICAgIGFkZFRvRGF0YS0+YXBwZW5k
TmV3PFZhcmlhYmxlVmFsdWU+KAorICAgICAgICBwcm9jLCBTZXQsIE9yaWdpbigpLCBjb2RlUG9p
bnRlciwKKyAgICAgICAgYWRkVG9EYXRhLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAg
cHJvYywgQjM6OkFkZCwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUsCisgICAgICAgICAgICBh
ZGRUb0RhdGEtPmFwcGVuZEludENvbnN0YW50KHByb2MsIE9yaWdpbigpLCBwb2ludGVyVHlwZSgp
LCBzaXplb2YoaW50cHRyX3QpICogMikpKTsKKyAgICBhZGRUb0RhdGEtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZGlzcGF0Y2gp
KTsKKyAgICAKKyAgICAvLyBQcmludDogInByaW50cyIgdGhlIHZhbHVlIHBvaW50ZWQgdG8gYnkg
RFAuIFdoYXQgdGhpcyBhY3R1YWxseSBtZWFucyBpcyB0aGF0IHRoZSB2YWx1ZSBpcworICAgIC8v
IGFwcGVuZGVkIHRvIHRoZSBzdHJlYW0gdmVjdG9yIGJ5IHRoZSB0aHJlYWRlZEludGVycHJldGVy
UHJpbnQgZnVuY3Rpb24uCisgICAgY29kZVBvaW50ZXJWYWx1ZSA9IHByaW50LT5hcHBlbmROZXc8
VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyKTsKKyAg
ICBkYXRhUG9pbnRlclZhbHVlID0gcHJpbnQtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPihwcm9j
LCBCMzo6R2V0LCBPcmlnaW4oKSwgZGF0YVBvaW50ZXIpOworICAgIHByaW50LT5hcHBlbmROZXc8
Q0NhbGxWYWx1ZT4oCisgICAgICAgIHByb2MsIFZvaWQsIE9yaWdpbigpLAorICAgICAgICBwcmlu
dC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KAorICAgICAgICAgICAgcHJvYywgT3JpZ2luKCks
IGJpdHdpc2VfY2FzdDx2b2lkKj4odGhyZWFkZWRJbnRlcnByZXRlclByaW50KSksCisgICAgICAg
IGNvbnRleHQsCisgICAgICAgIHByaW50LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExv
YWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLCBkYXRhUG9pbnRlclZhbHVlKSk7CisgICAgcHJp
bnQtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4o
KSwgY29kZVBvaW50ZXIsCisgICAgICAgIHByaW50LT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAg
ICAgICAgcHJvYywgQjM6OkFkZCwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUsCisgICAgICAg
ICAgICBwcmludC0+YXBwZW5kSW50Q29uc3RhbnQocHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBl
KCksIHNpemVvZihpbnRwdHJfdCkpKSk7CisgICAgcHJpbnQtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZGlzcGF0Y2gpKTsKKyAg
ICAKKyAgICAvLyBTdG9wOiByZXR1cm5zLgorICAgIHN0b3AtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgICAgICBzdG9wLT5hcHBl
bmRJbnRDb25zdGFudChwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgMCkpOworICAgIAor
ICAgIGF1dG8gaW50ZXJwcmV0ZXIgPSBjb21waWxlKHByb2MpOworICAgIAorICAgIENIRUNLKEFk
ZERQKTsKKyAgICBDSEVDSyhBZGRDUCk7CisgICAgQ0hFQ0soQWRkKTsKKyAgICBDSEVDSyhQcmlu
dCk7CisgICAgQ0hFQ0soU3RvcCk7CisgICAgCisgICAgVmVjdG9yPGludHB0cl90PiBkYXRhOwor
ICAgIFZlY3RvcjxpbnRwdHJfdD4gY29kZTsKKyAgICBWZWN0b3I8aW50cHRyX3Q+IHN0cmVhbTsK
KyAgICAKKyAgICBkYXRhLmFwcGVuZCgxKTsKKyAgICBkYXRhLmFwcGVuZCgwKTsKKyAgICAKKyAg
ICBpZiAoc2hvdWxkQmVWZXJib3NlKCkpCisgICAgICAgIGRhdGFMb2coImRhdGEgPSAiLCBsaXN0
RHVtcChkYXRhKSwgIlxuIik7CisgICAgCisgICAgLy8gV2UnbGwgd3JpdGUgYSBwcm9ncmFtIHRo
YXQgcHJpbnRzIHRoZSBudW1iZXJzIDEuLjEwMC4KKyAgICAvLyBXZSBleHBlY3QgRFAgdG8gcG9p
bnQgYXQgIzAuCisgICAgY29kZS5hcHBlbmQoQWRkQ1ApOworICAgIGNvZGUuYXBwZW5kKDYpOyAv
LyBnbyB0byBsb29wIGJvZHkKKyAgICAKKyAgICAvLyBMb29wIHJlLWVudHJ5OgorICAgIC8vIFdl
IGV4cGVjdCBEUCB0byBwb2ludCBhdCAjMSBhbmQgZm9yICMxIHRvIGJlIG9mZnNldCBieSAtMTAw
LgorICAgIGNvZGUuYXBwZW5kKEFkZCk7CisgICAgY29kZS5hcHBlbmQoMTAwKTsKKyAgICAKKyAg
ICBjb2RlLmFwcGVuZChBZGREUCk7CisgICAgY29kZS5hcHBlbmQoLTEpOworICAgIAorICAgIC8v
IExvb3AgaGVhZGVyOgorICAgIC8vIFdlIGV4cGVjdCBEUCB0byBwb2ludCBhdCAjMC4KKyAgICBj
b2RlLmFwcGVuZChBZGREUCk7CisgICAgY29kZS5hcHBlbmQoMSk7CisgICAgCisgICAgY29kZS5h
cHBlbmQoQWRkKTsKKyAgICBjb2RlLmFwcGVuZCgxKTsKKyAgICAKKyAgICBjb2RlLmFwcGVuZChQ
cmludCk7CisgICAgCisgICAgY29kZS5hcHBlbmQoQWRkKTsKKyAgICBjb2RlLmFwcGVuZCgtMTAw
KTsKKyAgICAKKyAgICAvLyBXZSB3YW50IHRvIHN0b3AgaWYgaXQncyB6ZXJvIGFuZCBjb250aW51
ZSBpZiBpdCdzIG5vbi16ZXJvLiBBZGRDUCB0YWtlcyB0aGUgYnJhbmNoIGlmIGl0J3MKKyAgICAv
LyBub24temVyby4KKyAgICBjb2RlLmFwcGVuZChBZGRDUCk7CisgICAgY29kZS5hcHBlbmQoLTEx
KTsgLy8gZ28gdG8gbG9vcCByZS1lbnRyeS4KKyAgICAKKyAgICBjb2RlLmFwcGVuZChTdG9wKTsK
KyAgICAKKyAgICBpZiAoc2hvdWxkQmVWZXJib3NlKCkpCisgICAgICAgIGRhdGFMb2coImNvZGUg
PSAiLCBsaXN0RHVtcChjb2RlKSwgIlxuIik7CisgICAgCisgICAgQ0hFQ0soIWludm9rZTxpbnRw
dHJfdD4oKmludGVycHJldGVyLCBkYXRhLmRhdGEoKSwgY29kZS5kYXRhKCksICZzdHJlYW0pKTsK
KyAgICAKKyAgICBDSEVDSyhzdHJlYW0uc2l6ZSgpID09IDEwMCk7CisgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IDEwMDsgKytpKQorICAgICAgICBDSEVDSyhzdHJlYW1baV0gPT0gaSArIDEp
OworICAgIAorICAgIGlmIChzaG91bGRCZVZlcmJvc2UoKSkKKyAgICAgICAgZGF0YUxvZygic3Ry
ZWFtID0gIiwgbGlzdER1bXAoc3RyZWFtKSwgIlxuIik7Cit9CisKIHZvaWQgdGVzdFJlZHVjZVN0
cmVuZ3RoQ2hlY2tCb3R0b21Vc2VJbkFub3RoZXJCbG9jaygpCiB7CiAgICAgUHJvY2VkdXJlIHBy
b2M7CkBAIC0xMzU0Nyw4ICsxMzc4MywxMyBAQCB2b2lkIHJ1bihjb25zdCBjaGFyKiBmaWx0ZXIp
CiAgICAgUlVOKHRlc3RTcGlsbERlZlNtYWxsZXJUaGFuVXNlKCkpOwogICAgIFJVTih0ZXN0U3Bp
bGxVc2VMYXJnZXJUaGFuRGVmKCkpOwogICAgIFJVTih0ZXN0TGF0ZVJlZ2lzdGVyKCkpOworPDw8
PDw8PCAubWluZQorICAgIAorICAgIFJVTih0ZXN0VGhyZWFkZWRJbnRlcnByZXRlcigpKTsKKz09
PT09PT0KICAgICBSVU4odGVzdFJlZHVjZVN0cmVuZ3RoQ2hlY2tCb3R0b21Vc2VJbkFub3RoZXJC
bG9jaygpKTsKICAgICBSVU4odGVzdFJlc2V0UmVhY2hhYmlsaXR5RGFuZ2xpbmdSZWZlcmVuY2Uo
KSk7Cis+Pj4+Pj4+IC5yMjAyODA5CiAKICAgICBpZiAodGFza3MuaXNFbXB0eSgpKQogICAgICAg
ICB1c2FnZSgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuY3Bw
CShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNv
ZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzUsNiArMTM1LDExIEBAIHZvaWQgQ29kZTo6YWRk
RmFzdFRtcChUbXAgdG1wKQogICAgIG1fZmFzdFRtcHMuYWRkKHRtcCk7CiB9CiAKK3ZvaWQqIENv
ZGU6OmFkZERhdGFTZWN0aW9uKHNpemVfdCBzaXplKQoreworICAgIHJldHVybiBtX3Byb2MuYWRk
RGF0YVNlY3Rpb24oc2l6ZSk7Cit9CisKIHVuc2lnbmVkIENvZGU6OmpzSGFzaCgpIGNvbnN0CiB7
CiAgICAgdW5zaWduZWQgcmVzdWx0ID0gMDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyQ29kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvQWlyQ29kZS5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvYWlyL0FpckNvZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1
ZGUgIkFpclNwZWNpYWwuaCIKICNpbmNsdWRlICJBaXJTdGFja1Nsb3QuaCIKICNpbmNsdWRlICJB
aXJUbXAuaCIKKyNpbmNsdWRlICJCM0luZGV4TWFwLmgiCiAjaW5jbHVkZSAiQjNTcGFyc2VDb2xs
ZWN0aW9uLmgiCiAjaW5jbHVkZSAiUmVnaXN0ZXJBdE9mZnNldExpc3QuaCIKICNpbmNsdWRlICJT
dGFja0FsaWdubWVudC5oIgpAQCAtMjAzLDYgKzIwNCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGFk
ZEZhc3RUbXAoVG1wKTsKICAgICBib29sIGlzRmFzdFRtcChUbXAgdG1wKSBjb25zdCB7IHJldHVy
biBtX2Zhc3RUbXBzLmNvbnRhaW5zKHRtcCk7IH0KICAgICAKKyAgICB2b2lkKiBhZGREYXRhU2Vj
dGlvbihzaXplX3QpOworICAgIAogICAgIC8vIFRoZSBuYW1lIGhhcyB0byBiZSBhIHN0cmluZyBs
aXRlcmFsLCBzaW5jZSB3ZSBkb24ndCBkbyBhbnkgbWVtb3J5IG1hbmFnZW1lbnQgZm9yIHRoZSBz
dHJpbmcuCiAgICAgdm9pZCBzZXRMYXN0UGhhc2VOYW1lKGNvbnN0IGNoYXIqIG5hbWUpCiAgICAg
ewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0ZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0ZS5jcHAJ
KHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2Vu
ZXJhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OCwxMCArNDgsMTMgQEAKICNpbmNsdWRlICJB
aXJWYWxpZGF0ZS5oIgogI2luY2x1ZGUgIkIzQ29tbW9uLmgiCiAjaW5jbHVkZSAiQjNJbmRleE1h
cC5oIgorI2luY2x1ZGUgIkIzUG9seUp1bXBWYWx1ZS5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJl
LmgiCiAjaW5jbHVkZSAiQjNUaW1pbmdTY29wZS5oIgorI2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVz
LmgiCiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiRGlzYWxsb3dNYWNyb1Nj
cmF0Y2hSZWdpc3RlclVzYWdlLmgiCisjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgogCiBuYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsgbmFtZXNwYWNlIEFpciB7CiAKQEAgLTE5Niw3ICsxOTks
OCBAQCB2b2lkIGdlbmVyYXRlKENvZGUmIGNvZGUsIENDYWxsSGVscGVycyYgCiAKICAgICBmb3Ig
KEJhc2ljQmxvY2sqIGJsb2NrIDogY29kZSkgewogICAgICAgICBibG9ja0p1bXBzW2Jsb2NrXS5s
aW5rKCZqaXQpOwotICAgICAgICBibG9ja0xhYmVsc1tibG9ja10gPSBqaXQubGFiZWwoKTsKKyAg
ICAgICAgQ0NhbGxIZWxwZXJzOjpMYWJlbCBsYWJlbCA9IGppdC5sYWJlbCgpOworICAgICAgICBi
bG9ja0xhYmVsc1tibG9ja10gPSBsYWJlbDsKICAgICAgICAgQVNTRVJUKGJsb2NrLT5zaXplKCkg
Pj0gMSk7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBibG9jay0+c2l6ZSgpIC0g
MTsgKytpKSB7CiAgICAgICAgICAgICBJbnN0JiBpbnN0ID0gYmxvY2stPmF0KGkpOwpAQCAtMjI4
LDI2ICsyMzIsNTQgQEAgdm9pZCBnZW5lcmF0ZShDb2RlJiBjb2RlLCBDQ2FsbEhlbHBlcnMmIAog
ICAgICAgICAgICAgYWRkSXRlbShibG9jay0+bGFzdCgpKTsKICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICB9Ci0KKyAgICAgICAgCiAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcCBqdW1w
ID0gYmxvY2stPmxhc3QoKS5nZW5lcmF0ZShqaXQsIGNvbnRleHQpOwotICAgICAgICBzd2l0Y2gg
KGJsb2NrLT5udW1TdWNjZXNzb3JzKCkpIHsKLSAgICAgICAgY2FzZSAwOgotICAgICAgICAgICAg
QVNTRVJUKCFqdW1wLmlzU2V0KCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
MToKLSAgICAgICAgICAgIGxpbmsoanVtcCwgYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDApKTsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIDI6Ci0gICAgICAgICAgICBsaW5rKGp1bXAs
IGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKSk7Ci0gICAgICAgICAgICBpZiAoYmxvY2stPnN1Y2Nl
c3NvckJsb2NrKDEpICE9IGNvZGUuZmluZE5leHRCbG9jayhibG9jaykpCi0gICAgICAgICAgICAg
ICAgbGluayhqaXQuanVtcCgpLCBibG9jay0+c3VjY2Vzc29yQmxvY2soMSkpOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOwotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIC8vIFRoZSBqdW1wIHdv
bid0IGJlIHNldCBmb3IgUG9seUp1bXAgYmVjYXVzZSBpdCBsZXRzIGl0cyBmYWl0aCBpbiB0aGUg
YWRkcmVzcyBvcGVyYW5kCisgICAgICAgIC8vIGd1aWRlIHdoZXJlIGl0IGp1bXBzLiBJdCB3b24n
dCBiZSBzZXQgZm9yIE9vcHMgYmVjYXVzZSB0aGVuIGl0IHdvbid0IGhhdmUgYW55IHN1Y2Nlc3Nv
cnMuCisgICAgICAgIGlmIChqdW1wLmlzU2V0KCkpIHsKKyAgICAgICAgICAgIHN3aXRjaCAoYmxv
Y2stPm51bVN1Y2Nlc3NvcnMoKSkgeworICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAg
ICAgIGxpbmsoanVtcCwgYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDApKTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICBsaW5rKGp1bXAs
IGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKSk7CisgICAgICAgICAgICAgICAgaWYgKGJsb2NrLT5z
dWNjZXNzb3JCbG9jaygxKSAhPSBjb2RlLmZpbmROZXh0QmxvY2soYmxvY2spKQorICAgICAgICAg
ICAgICAgICAgICBsaW5rKGppdC5qdW1wKCksIGJsb2NrLT5zdWNjZXNzb3JCbG9jaygxKSk7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAg
ICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgYWRkSXRlbShibG9jay0+bGFzdCgp
KTsKICAgICB9CisgICAgCisgICAgLy8gVGFrZSBjYXJlIG9mIFBvbHlKdW1wLiBXZSBkbyB0aGlz
IGxhc3QgYmVjYXVzZSBpdCByZWxpZXMgb24ga25vd2luZyB3aGVyZSBhbGwgb2YgdGhlIGJhc2lj
CisgICAgLy8gYmxvY2sgbGFuZGVkLgorICAgIGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiBjb2Rl
KSB7CisgICAgICAgIGlmIChibG9jay0+bGFzdCgpLm9wY29kZSAhPSBQb2x5SnVtcCkKKyAgICAg
ICAgICAgIGNvbnRpbnVlOworICAgICAgICAKKyAgICAgICAgUG9seUp1bXBWYWx1ZSogcG9seUp1
bXAgPSBibG9jay0+bGFzdCgpLm9yaWdpbi0+YXM8UG9seUp1bXBWYWx1ZT4oKTsKKyAgICAgICAg
UkVMRUFTRV9BU1NFUlQocG9seUp1bXAtPm51bVN1Y2Nlc3NvcnMoKSA9PSBibG9jay0+bnVtU3Vj
Y2Vzc29ycygpKTsKKyAgICAgICAgCisgICAgICAgIFJlZlB0cjxTaGFyZWRUYXNrPFBvbHlKdW1w
VmFsdWU6OkNhbGxiYWNrRnVuY3Rpb25UeXBlPj4gdGFzayA9IHBvbHlKdW1wLT5jYWxsYmFja1Rh
c2soKTsKKyAgICAgICAgaWYgKCF0YXNrKQorICAgICAgICAgICAgY29udGludWU7IC8vIFRoaXMg
d291bGQgYmUgd2VpcmQsIGJ1dCB3ZSBhbGxvdyBpdC4KKyAgICAgICAgCisgICAgICAgIFZlY3Rv
cjxDQ2FsbEhlbHBlcnM6OkxhYmVsPiBsYWJlbHM7CisgICAgICAgIGZvciAoQmFzaWNCbG9jayog
c3VjY2Vzc29yIDogYmxvY2stPnN1Y2Nlc3NvckJsb2NrcygpKQorICAgICAgICAgICAgbGFiZWxz
LmFwcGVuZChibG9ja0xhYmVsc1tzdWNjZXNzb3JdKTsKKyAgICAgICAgCisgICAgICAgIGppdC5h
ZGRMaW5rVGFzaygKKyAgICAgICAgICAgIFs9XSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikgewor
ICAgICAgICAgICAgICAgIFZlY3RvcjxNYWNyb0Fzc2VtYmxlckNvZGVQdHI+IHBvaW50ZXJzOwor
ICAgICAgICAgICAgICAgIGZvciAoQ0NhbGxIZWxwZXJzOjpMYWJlbCBsYWJlbCA6IGxhYmVscykK
KyAgICAgICAgICAgICAgICAgICAgcG9pbnRlcnMuYXBwZW5kKGxpbmtCdWZmZXIubG9jYXRpb25P
ZihsYWJlbCkpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHRhc2stPnJ1bihw
b2ludGVycyk7CisgICAgICAgICAgICB9KTsKKyAgICB9CiAKICAgICBwY1RvT3JpZ2luTWFwLmFw
cGVuZEl0ZW0oaml0LmxhYmVsKCksIE9yaWdpbigpKTsKICAgICAvLyBGSVhNRTogTWFrZSBsYXRl
IHBhdGhzIGhhdmUgT3JpZ2luczogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE1MzY4OQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckluc3QuY3Bw
CShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpcklu
c3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NSw2ICs0NSwxMSBAQCBib29sIEluc3Q6Omhhc0Fy
Z0VmZmVjdHMoKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK2Jvb2wgSW5zdDo6aXNDbG9uZWFi
bGUoKQoreworICAgIHJldHVybiAhb3JpZ2luIHx8IG9yaWdpbi0+aXNDbG9uZWFibGUoKTsKK30K
KwogdW5zaWduZWQgSW5zdDo6anNIYXNoKCkgY29uc3QKIHsKICAgICB1bnNpZ25lZCByZXN1bHQg
PSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4ob3Bjb2RlKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvQWlySW5zdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvQWlySW5zdC5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvYWlyL0Fpckluc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMTg4LDYgKzE4OCwxMCBA
QCBwdWJsaWM6CiAgICAgLy8gcmV0dXJucyAyIGlmIDAgYW5kIDEgYmVuZWZpdCBmcm9tIGFsaWFz
aW5nIHRvIFRtcDMuCiAgICAgT3B0aW9uYWw8dW5zaWduZWQ+IHNob3VsZFRyeUFsaWFzaW5nRGVm
KCk7CiAgICAgCisgICAgLy8gU29tZSBpbnN0dWN0aW9ucyB3aWxsIHJlZnVzZSB0byBhbGxvdyBj
bG9uaW5nLiBJZiB0aGlzIHJldHVybnMgZmFsc2UsIHlvdSBtdXN0IG1ha2Ugc3VyZSB0aGF0Cisg
ICAgLy8geW91IG5ldmVyIGludHJvZHVjZSBjb3BpZXMgb2YgdGhlIGluc3RydWN0aW9uLgorICAg
IGJvb2wgaXNDbG9uZWFibGUoKTsKKyAgICAKICAgICAvLyBUaGlzIGNvbXB1dGVzIGEgaGFzaCBm
b3IgY29tcGFyaW5nIHRoaXMgdG8gSlNBaXIncyBJbnN0LgogICAgIHVuc2lnbmVkIGpzSGFzaCgp
IGNvbnN0OwogCkluZGV4OiBXZWJzaXRlcy93ZWJraXQub3JnL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJzaXRlcy93ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMjAyODA5KQorKysg
V2Vic2l0ZXMvd2Via2l0Lm9yZy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
NCBAQAorMjAxNi0wNS0yOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAg
ICAgIEltcGxlbWVudCB0YWJsZS1iYXNlZCBzd2l0Y2hlcyBpbiBCMy9BaXIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTE0MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgVXBkYXRlIGRvY3Vt
ZW50YXRpb24gZm9yIHRoZSBuZXcgUG9seUp1bXAgb3Bjb2RlLgorCisgICAgICAgICogZG9jcy9i
My9pbnRlcm1lZGlhdGUtcmVwcmVzZW50YXRpb24uaHRtbDoKKwogMjAxNi0wNy0wMSAgSm9uIERh
dmlzICA8am9uZEBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkZWQgYSBjb2xvcmZ1bCBuZXcgaW1h
Z2UgYW5kIGZpeGVkIHRoZSBPcGVuIEdyYXBoIGF0dHJpYnV0ZS4KSW5kZXg6IFdlYnNpdGVzL3dl
YmtpdC5vcmcvZG9jcy9iMy9pbnRlcm1lZGlhdGUtcmVwcmVzZW50YXRpb24uaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJzaXRlcy93ZWJraXQub3JnL2RvY3MvYjMvaW50ZXJtZWRpYXRlLXJlcHJlc2Vu
dGF0aW9uLmh0bWwJKHJldmlzaW9uIDIwMjgwOSkKKysrIFdlYnNpdGVzL3dlYmtpdC5vcmcvZG9j
cy9iMy9pbnRlcm1lZGlhdGUtcmVwcmVzZW50YXRpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
NTM3LDYgKzUzNywzOSBAQCBwYXRjaHBvaW50LT5zZXRHZW5lcmF0b3IoCiAgICAgICAgIGFsc28g
Y29udGFpbnMgYSBmYWxsLXRocm91Z2ggdGFyZ2V0IGluIGNhc2UgdGhlIGNoaWxkIGhhcyBhIHZh
bHVlIHRoYXQgd2Fzbid0IG1lbnRpb25lZAogICAgICAgICBpbiB0aGUgY2FzZXMgbGlzdC4gIE11
c3QgdXNlIHRoZSBTd2l0Y2hWYWx1ZSBjbGFzcy4gIE11c3QgYXBwZWFyIGF0IHRoZSBlbmQgb2Yg
dGhlIGJhc2ljCiAgICAgICAgIGJsb2NrLjwvZGQ+CisgICAgICAKKyAgICAgIDxkdD5Wb2lkIFBv
bHlKdW1wKEludFB0ciwgYmxvY2tzLi4uKTwvZHQ+CisgICAgICA8ZGQ+CisgICAgICAgIDxwPkp1
bXBzIHRvIHRoZSBnaXZlbiBhZGRyZXNzLiBUaGUgY29tcGlsZXIgd2lsbCBhc3N1bWUgdGhhdCB0
aGlzIGp1bXBzIHRvIG9uZSBvZiB0aGUgZ2l2ZW4KKyAgICAgICAgICBibG9ja3MuIFRoZSBjb21w
aWxlciBtYWtlcyBubyBhdHRlbXB0IHRvIHByb3ZlIG9yIHZhbGlkYXRlIHRoYXQgdGhlIHBhc3Nl
ZCBqdW1wIGFkZHJlc3MgaXMKKyAgICAgICAgICBhY3R1YWxseSB0aGUgYWRkcmVzcyBvZiBhbnkg
b2YgdGhvc2UgYmxvY2tzLiBOb25zZW5zaWNhbCB0aGluZ3Mgd2lsbCBoYXBwZW4gaWYgdGhlIHBh
c3NlZAorICAgICAgICAgIGFkZHJlc3MgaXMgbm90IHRoZSBhZGRyZXNzIG9mIG9uZSBvZiB0aGUg
YmxvY2tzIGluIHRoZSBzdWNjZXNzb3IgbGlzdC4gWW91IGNhbiBhcnJhbmdlIHRvCisgICAgICAg
ICAgZ2V0IHRoZSBhZGRyZXNzZXMgb2YgYmxvY2tzIGJ5IHBhc3NpbmcgYSBjYWxsYmFjayB0byBQ
b2x5SnVtcC4gVGhpcyBpcyB1c2VkIGludGVybmFsbHkKKyAgICAgICAgICBmb3IgbG93ZXJpbmcg
U3dpdGNoIG9wY29kZXMuIFlvdSBjYW4gYWxzbyB1c2UgaXQgZGlyZWN0bHkuPC9wPgorICAgICAg
CisgICAgICAgIDxwPlBvbHlKdW1wIGlzIG5vdCBjbG9uZWFibGUuIEZvciBlYWNoIFBvbHlKdW1w
IHlvdSBjcmVhdGUsIHRoZXJlIHdpbGwgYmUgb25lIGluZGlyZWN0CisgICAgICAgICAganVtcCBn
ZW5lcmF0ZWQuIFRoaXMgaXMgbmVjZXNzYXJ5IHRvIGVuc3VyZSBzb3VuZG5lc3Mgb2YgdGhlIGNh
bGxiYWNrLiBJZiB0aGUgUG9seUp1bXAKKyAgICAgICAgICBjb3VsZCBiZSBjbG9uZWQsIHRoZW4g
dGhlIGNhbGxiYWNrIHdvdWxkIGdldCBjYWxsZWQgZm9yIGVhY2ggY2xvbmUuIFByZXN1bWFibHks
IHlvdSdkCisgICAgICAgICAgaW1wbGVtZW50IHRoZSBjYWxsYmFjayBieSBwb3B1bGF0aW5nIHNv
bWUgdGFibGUgd2l0aCB0aGUgYWRkcmVzc2VzIG9mIHRoZSBibG9ja3MuIElmIHRoZQorICAgICAg
ICAgIGNhbGxiYWNrIGdldHMgY2FsbGVkIG11bHRpcGxlIHRpbWVzIHRoZW4gaXQgbWF5IHJldHVy
biBkaWZmZXJlbnQgYWRkcmVzc2VzIGVhY2ggdGltZSAtCisgICAgICAgICAgc2luY2UgYWZ0ZXIg
Y2xvbmluZyBhIFBvbHlKdW1wLCB0aGUgY29tcGlsZXIgbWF5IHJldGFyZ2V0IGFueSBvZiBpdHMg
c3VjY2Vzc29yIGVkZ2VzLgorICAgICAgICAgIFRoaXMgd291bGQgYmUgY29uZnVzaW5nLCBzaW5j
ZSB0aGVuIHlvdSB3b3VsZG4ndCBrbm93IHdoYXQgdG8gZG8gd2l0aCBkaXNjcmVwYW5jaWVzIGJl
dHdlZW4KKyAgICAgICAgICBhZGRyZXNzZXMgcmV0dXJuZWQgYnkgdGhlIHZhcmlvdXMgY2FsbHMg
dG8gdGhlIGNhbGxiYWNrLiBEaXNhbGxvd2luZyBjbG9uaW5nIG9mIFBvbHlKdW1wCisgICAgICAg
ICAgc29sdmVzIHRoaXMgcHJvYmxlbS48L3A+CisgICAgICAgIAorICAgICAgICA8cD5BIGNsb3Nl
bHkgcmVsYXRlZCBwcm9ibGVtIGlzIHRoYXQgaWYgeW91IGVtaXQgbXVsdGlwbGUgUG9seUp1bXAg
aW5zdHJ1Y3Rpb25zLCB0aGVuIGV2ZW4KKyAgICAgICAgICBpZiB0aGV5IGluaXRpYWxseSBzaGFy
ZSB0aGUgc2FtZSBzdWNjZXNzb3JzLCB5b3UgY2Fubm90IGd1YXJhbnRlZSB0aGF0IHRoZXkgd2ls
bCBjb250aW51ZQorICAgICAgICAgIHRvIHNoYXJlIHRoZSBzYW1lIHN1Y2Nlc3NvcnMgYWZ0ZXIg
b3B0aW1pemF0aW9uLiBUaGlzIG1lYW5zIHRoYXQgUG9seUp1bXAgY2Fubm90CisgICAgICAgICAg
Y3VycmVudGx5IGJlIHVzZWQgZm9yIGltcGxlbWVudGluZyBkaXJlY3QgdGhyZWFkZWQgaW50ZXJw
cmV0ZXJzLCBhdCBsZWFzdCBub3QgdGhlIGNsYXNzaWMKKyAgICAgICAgICBraW5kOiB0byBtYWtl
IGl0IHdvcmssIHlvdSBoYXZlIHRvIGhhdmUgYSBzaGFyZWQgZGlzcGF0Y2ggYmxvY2sgc28gdGhh
dCB5b3UgaGF2ZSBhIHNpbmdsZQorICAgICAgICAgIFBvbHlKdW1wLiBUaGlzIG1pZ2h0IGJlIGJl
dHRlciB0aGFuIGEgU3dpdGNoLWJhc2VkIGludGVycHJldGVyLCBidXQgaXQncyBkZWZpbml0ZWx5
IG5vdAorICAgICAgICAgIGFzIGdvb2QgYXMgd2hhdCB5b3UnZCBnZXQgd2l0aCBHQ0Mtc3R5bGUg
Y29tcHV0ZWQgZ290by48L3A+CisgICAgICAgIAorICAgICAgICA8cD5Qb2x5SnVtcCBpcyBzbyBu
YW1lZCB0byBhdm9pZCBjb25mdXNpb24gd2l0aCBjb21wdXRlZCBnb3RvcyBhbmQgaW5kaXJlY3Qg
YnJhbmNoZXMgaW4KKyAgICAgICAgICBvdGhlciBjb21waWxlcnMuIEl0IGhhcyBzaWduaWZpY2Fu
dCByZXN0cmljdGlvbnMgdGhhdCB0aG9zZSBvcGVyYXRpb25zIGRvIG5vdCBoYXZlLiBUaGVzZQor
ICAgICAgICAgIHJlc3RyaWN0aW9ucyBtYWtlIGl0IGVhc2llciBmb3IgdGhlIG9wdGltaXplciB0
byB3b3JrIHdpdGggc2luY2UgdGhlIGNvbnRyb2wgZmxvdyBnZXRzIHRvCisgICAgICAgICAgYmUg
ZXhwbGljaXQgKFBvbHlKdW1wIGhhcyBhIGZpbml0ZSBzZXQgb2Ygc3VjY2Vzc29ycyBsaWtlIGFu
eSBvdGhlciBibG9jayB0ZXJtaW5hbCkuPC9wPgorICAgICAgPC9kZD4KIAogICAgICAgPGR0PlZv
aWQgUmV0dXJuKFQpPC9kdD4KICAgICAgIDxkZD5Xb3JrcyBmb3IgYW55IHR5cGUgZXhjZXB0IFZv
aWQuICBSZXR1cm5zIHRoZSBnaXZlbiB2YWx1ZSBhbmQgdGVybWluYXRlcyB0aGUgcHJvY2VkdXJl
LgpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkocmV2aXNpb24gMjAyODA5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTYtMDUtMjkgIEZpbGlwIFBpemxvICA8
ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgdGFibGUtYmFzZWQgc3dpdGNo
ZXMgaW4gQjMvQWlyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNTExNDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGpzL3JlZ3Jlc3MvYmlnc3dpdGNoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICoganMvcmVncmVzcy9iaWdzd2l0Y2guaHRtbDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVz
cy9zY3JpcHQtdGVzdHMvYmlnc3dpdGNoLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisKIDIw
MTYtMDctMDQgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCwgc2tpcCBtaXNjLWJ1Z3MtODQ3Mzg5LWpwZWcyMDAwLmpzIGluIGpzYyBz
dHJlc3MgdGVzdHMKSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3
aXRjaC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdy
ZXNzL2JpZ3N3aXRjaAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBubyBl
eGNlcHRpb24gdGhyb3duCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2guaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC5odG1sCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2guaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYv
L0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InNjcmlwdC10ZXN0cy9iaWdzd2l0Y2guanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvYmlnc3dpdGNoLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2JpZ3N3
aXRjaC5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRl
c3RzL2JpZ3N3aXRjaC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIxMSBAQAorZnVuY3Rp
b24gZm9vKG8pIHsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8
IDEwMDA7ICsraSkgeworICAgICAgICB2YXIgdmFsdWUgPSBpICYgNjM7CisgICAgICAgIHN3aXRj
aCAodmFsdWUpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXN1bHQg
Kz0gby5iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLmM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzOgorICAg
ICAgICAgICAgcmVzdWx0ICs9IG8uZDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IDQ6CisgICAgICAgICAgICByZXN1bHQgKz0gby5lOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgNToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmY7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSA2OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZzsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIDc6CisgICAgICAgICAgICByZXN1bHQgKz0gby5oOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgODoKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLmk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA5OgorICAgICAgICAgICAg
cmVzdWx0ICs9IG8uajsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDEwOgorICAg
ICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IDExOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIDEyOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYjsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIDEzOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYzsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE0OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8u
ZDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE1OgorICAgICAgICAgICAgcmVz
dWx0ICs9IG8uZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE2OgorICAgICAg
ICAgICAgcmVzdWx0ICs9IG8uZjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE3
OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIDE4OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaDsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIDE5OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIDIwOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uajsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDIxOgorICAgICAgICAgICAgcmVzdWx0
ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDIyOgorICAgICAgICAg
ICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDIzOgor
ICAgICAgICAgICAgcmVzdWx0ICs9IG8uYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIDI0OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYjsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIDI1OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYzsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIDI2OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZDsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI3OgorICAgICAgICAgICAgcmVzdWx0ICs9
IG8uZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI4OgorICAgICAgICAgICAg
cmVzdWx0ICs9IG8uZjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI5OgorICAg
ICAgICAgICAgcmVzdWx0ICs9IG8uZzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IDMwOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaDsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIDMxOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIDMyOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uajsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDMzOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8u
azsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM0OgorICAgICAgICAgICAgcmVz
dWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM1OgorICAgICAg
ICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM2
OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIDM3OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYjsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIDM4OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYzsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIDM5OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZDsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQwOgorICAgICAgICAgICAgcmVzdWx0
ICs9IG8uZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQxOgorICAgICAgICAg
ICAgcmVzdWx0ICs9IG8uZjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQyOgor
ICAgICAgICAgICAgcmVzdWx0ICs9IG8uZzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIDQzOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaDsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIDQ0OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIDQ1OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uajsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ2OgorICAgICAgICAgICAgcmVzdWx0ICs9
IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ3OgorICAgICAgICAgICAg
cmVzdWx0ICs9IG8uaTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ4OgorICAg
ICAgICAgICAgcmVzdWx0ICs9IG8uajsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IDQ5OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIDUwOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIDUxOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDUyOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8u
YTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDUzOgorICAgICAgICAgICAgcmVz
dWx0ICs9IG8uYjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDU0OgorICAgICAg
ICAgICAgcmVzdWx0ICs9IG8uYzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDU1
OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIDU2OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIDU3OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZjsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIDU4OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZzsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDU5OgorICAgICAgICAgICAgcmVzdWx0
ICs9IG8uaDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDYwOgorICAgICAgICAg
ICAgcmVzdWx0ICs9IG8uaTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDYxOgor
ICAgICAgICAgICAgcmVzdWx0ICs9IG8uajsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIDYyOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uejsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKKyhmdW5j
dGlvbigpIHsKKyAgICB2YXIgbyA9IHthOjEsIGI6MiwgYzozLCBkOjQsIGU6NSwgZjo2LCBnOjcs
IGg6OCwgaTo5LCBqOjEwLCBrOjExLCB6OjEwMH07CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKQorICAgICAgICByZXN1bHQgKz0gZm9vKG8p
OworICAgIGlmIChyZXN1bHQgIT0gNzk2NjAwMDApCisgICAgICAgIHRocm93ICJFcnJvcjogYmFk
IHJlc3VsdDogIiArIHJlc3VsdDsKK30pKCk7CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282823</attachid>
            <date>2016-07-05 16:07:46 -0700</date>
            <delta_ts>2016-07-05 20:15:35 -0700</delta_ts>
            <desc>so small patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>389113</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2NiBA
QAorMjAxNi0wNS0yOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IEltcGxlbWVudCB0YWJsZS1iYXNlZCBzd2l0Y2hlcyBpbiBCMy9BaXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTE0MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgSWYgYSBzd2l0Y2ggc3Rh
dGVtZW50IGdldHMgbGFyZ2UsIGl0J3MgYmV0dGVyIHRvIGV4cHJlc3MgaXQgYXMgYW4gaW5kaXJl
Y3QganVtcCByYXRoZXIgdGhhbgorICAgICAgICB1c2luZyBhIGJpbmFyeSBzd2l0Y2ggKGRpdmlk
ZS1hbmQtY29ucXVlciB0cmVlIG9mIGNvbXBhcmlzb25zIGxlYWRpbmcgdG8gTyhsb2cgbikgYnJh
bmNoZXMgdG8KKyAgICAgICAgZ2V0IHRvIHRoZSBzd2l0Y2ggY2FzZSkuIFdoZW4gZGVhbGluZyB3
aXRoIGludGVnZXIgc3dpdGNoZXMsIEZUTCB3aWxsIGFscmVhZHkgdXNlIHRoZSBCMworICAgICAg
ICBTd2l0Y2ggYW5kIGV4cGVjdCB0aGlzIHRvIGdldCBsb3dlcmVkIGFzIGVmZmljaWVudGx5IGFz
IHBvc3NpYmxlOyBpdCdzIGEgYnVnIHRoYXQgQjMgd2lsbAorICAgICAgICBhbHdheXMgdXNlIGEg
YmluYXJ5IHN3aXRjaCByYXRoZXIgdGhhbiBpbmRpcmVjdCBqdW1wcy4gV2hlbiBkZWFsaW5nIHdp
dGggc3dpdGNoZXMgb3ZlciBzb21lCisgICAgICAgIG1vcmUgc29waGlzdGljYXRlZCB0eXBlcywg
d2UnZCB3YW50IEZUTCB0byBidWlsZCBhbiBpbmRpcmVjdCBqdW1wIHRhYmxlIGl0c2VsZiBhbmQg
dXNlCisgICAgICAgIHNvbWV0aGluZyBsaWtlIGEgaGFzaHRhYmxlIHRvIGZlZWQgaXQuIEluIHRo
YXQgY2FzZSwgdGhlcmUgd2lsbCBiZSBubyBCMyBTd2l0Y2g7IHdlJ2xsIHdhbnQKKyAgICAgICAg
c29tZSBraW5kIG9mIGluZGlyZWN0IGp1bXAgaW5zdHJ1Y3Rpb24uCisgICAgICAgIAorICAgICAg
ICBUaGlzIGltcGxpZXMgdGhhdCB3ZSB3YW50IEIzIHRvIGhhdmUgdGhlIGFiaWxpdHkgdG8gbG93
ZXIgU3dpdGNoIHRvIGluZGlyZWN0IGp1bXBzIGFuZCB0bworICAgICAgICBleHBvc2UgdGhvc2Ug
aW5kaXJlY3QganVtcHMgaW4gSVIgc28gdGhhdCB0aGUgRlRMIGNvdWxkIGRvIGl0cyBvd24gaW5k
aXJlY3QganVtcHMgZm9yCisgICAgICAgIHN3aXRjaGVzIG92ZXIgbW9yZSBjb21wbGljYXRlZCB0
aGluZ3MgbGlrZSBzdHJpbmdzLiBUaGlzIGNoYW5nZSBpbnRyb2R1Y2VzIGFuIGluZGlyZWN0IGp1
bXAKKyAgICAgICAgaW5zdHJ1Y3Rpb24gdG8gQjMgYW5kIGNhbGxzIGl0IFBvbHlKdW1wLiBJdCBo
YXMgc29tZSB1bmlxdWUgc2VtYW50aWNzIHRoYXQgbWFrZSBpdCB2ZXJ5CisgICAgICAgIGRpZmZl
cmVudCBmcm9tICJpbmRpcmVjdCBqdW1wcyIsICJpbmRpcmVjdCBicmFuY2hlcyIsIGFuZCAiY29t
cHV0ZWQgZ290b3MiIC0gYWxsIHRlcm1zIG9mIGFydAorICAgICAgICB1c2VkIGluIG90aGVyIGNv
bXBpbGVycy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaW1wbGVtZW50cyB0aGUgbW9zdCBiYXNp
YyBraW5kIG9mIFN3aXRjaC10by1Qb2x5SnVtcCBsb3dlcmluZyBpbiBCMzo6bG93ZXJNYWNyb3Mo
KS4gQXMKKyAgICAgICAgcGFydCBvZiB0aGUgZXhpc3RpbmcgZGl2aWRlLWFuZC1jb25xdWVyIHRo
YXQgY3JlYXRlcyBicmFuY2hlcywgaWYgaXQgZGV0ZWN0cyB0aGF0IHRoZSBzZXQgb2YKKyAgICAg
ICAgY2FzZXMgc2F0aXNmaWVzIHNvbWUgY29uZGl0aW9ucyAoZGVuc2l0eSBvZiBjYXNlIHZhbHVl
cyBhbmQgdG90YWwgc2l6ZSksIHRoZW4gaXQgd2lsbCBlbWl0IGEKKyAgICAgICAgUG9seUp1bXAu
CisgICAgICAgIAorICAgICAgICBUaGUgcHJvYmxlbSB3aXRoIGNsYXNzaWMgaW5kaXJlY3QganVt
cHMgaXMgdGhhdCB0aGV5IGZvcmNlIHRoZSBjb21waWxlciB0byBiZSBjb25zZXJ2YXRpdmUKKyAg
ICAgICAgYWJvdXQgY29udHJvbCBmbG93LiBUaGUgY29tcGlsZXIgbXVzdCBhc3N1bWUgdGhhdCB0
aGUgaW5kaXJlY3QganVtcCBtYXkgdHJhbnNmZXIgY29udHJvbCBmbG93CisgICAgICAgIHRvIGFu
eSBlc2NhcGVkIGJsb2NrIChibG9jayBsYWJlbGVkIGFzIGJlaW5nIGEgcG9zc2libGUgdGFyZ2V0
IGZvciBpbmRpcmVjdCBqdW1wcywgb3IgaWYgbm8KKyAgICAgICAgc3VjaCBsYWJlbGluZyBpcyBh
dmFpbGFibGUsIHRoZSBjb21waWxlciBtdXN0IGFzc3VtZSB0aGF0IGl0IG1heSB0YXJnZXQgYW55
IGJsb2NrKS4gVGhlIHdvcnN0CisgICAgICAgIHBhcnQgaXMgdGhhdCB0aGUgaW1wbGljaXQgY29u
dHJvbCBmbG93IGVkZ2VzIGZyb20gdGhlIGluZGlyZWN0IGp1bXAgdG8gdGhlIGVzY2FwZWQgYmxv
Y2tzCisgICAgICAgIGNhbm5vdCBiZSBicm9rZW4uIFRoaXMgaW52YWxpZGF0ZXMgYSBwcmluY2lw
bGUgb2YgQjMgSVI6IGFueSBwaGFzZSBtYXkgYnJlYWsgYW55IGNyaXRpY2FsCisgICAgICAgIGVk
Z2UgZm9yIGFueSByZWFzb24uIE91ciBTU0EgY29udmVyc2lvbiB3b3VsZCBicmVhayBpZiB3ZSBy
ZXZva2VkIHRoaXMgZmVhdHVyZS4gSXQncyBhY3R1YWxseQorICAgICAgICBtdWNoIHdvcnNlIHRo
YW4gdGhpcyAtIGJhc2ljYWxseSBhbnkgbG9naWMgb3ZlciBjb250cm9sIGZsb3cgd291bGQgaGF2
ZSB0byBiZSBoYWNrZWQgdG8gZGVhbAorICAgICAgICB3aXRoIHRoZXNlIHVuYnJlYWthYmxlIGVk
Z2VzLiBUaGlzIHdvdWxkIG1lYW4gY2hhbmdpbmcgYWxsIENGRyB0cmFuc2Zvcm1hdGlvbiB1dGls
aXRpZXMgYW5kCisgICAgICAgIHBhc3Nlcy4gV2UgaGF2ZSBhIGxvdCBvZiB0aG9zZSBhbmQgd2Ug
d2FudCBpdCB0byBiZSBlYXN5IHRvIHdyaXRlIG5ldyBvbmVzLgorICAgICAgICAKKyAgICAgICAg
VGhpcyBpcyB3aHkgd2UgdXNlIHNvbWV0aGluZyBuZXcgYW5kIHF1aXRlIGRpZmZlcmVudCBmcm9t
IGNsYXNzaWMgaW5kaXJlY3QganVtcHMuIFBvbHlKdW1wCisgICAgICAgIG1ha2VzIHRoZSBjb250
cm9sIGZsb3cgZWRnZXMgZXhwbGljaXQuIFRoZSBjbGllbnQgbXVzdCBzdXBwbHkgdGhlIHN1Y2Nl
c3NvcnMgd2hlbiBpdCBjcmVhdGVzCisgICAgICAgIHRoZSBQb2x5SnVtcC4gVGhlIGNvbXBpbGVy
IG1heSByZXdpcmUgdGhvc2Ugc3VjY2Vzc29yIGVkZ2VzIHRoZSBzYW1lIHdheSB0aGF0IGl0IHdv
dWxkIHJld2lyZQorICAgICAgICBhbnkgY29udHJvbCBmbG93IGVkZ2VzLiBDb25zZXF1ZW50bHkg
dGhlIHZhc3QgbWFqb3JpdHkgb2YgQ0ZHIHJlYXNvbmluZyBpbiBCMyBpcyB1bmNoYW5nZWQuCisg
ICAgICAgIElmIHlvdSBkb24ndCB3YW50IHRvIHVuZGVyc3RhbmQgUG9seUp1bXAsIGp1c3QgdGhp
bmsgb2YgaXQgbGlrZSB5b3Ugd291bGQgYSBTd2l0Y2ggd2l0aCBhbgorICAgICAgICBvcGFxdWUg
aW5jb21pbmcgdmFsdWUuIFRoaXMgd29ya3MgYmVjYXVzZSB3ZSBkbyBub3QgYWRkIGFueSBub3Rp
b24gb2YgZXNjYXBlZCBiYXNpYyBibG9ja3MuCisgICAgICAgIEluc3RlYWQgb2YgbGV0dGluZyB0
aGUgY2xpZW50IGdldCB0aGUgcG9pbnRlcnMgdG8gYmFzaWMgYmxvY2tzIGJ5IGVzY2FwaW5nIHRo
ZW0gbGlrZSBpbiBMTFZNLAorICAgICAgICB5b3UgY2FuIG9ubHkgZ2V0IHRoZSBwb2ludGVycyBv
ZiB0aGUgc3VjY2Vzc29ycyBvZiBQb2x5SnVtcCBieSByZWdpc3RlcmluZyBhIGNhbGxiYWNrIHdp
dGgKKyAgICAgICAgUG9seUp1bXAuIFRoaXMgY2FsbGJhY2sgZG9lc24ndCBhY3R1YWxseSBnaXZl
IHlvdSB0aGUgYWRkcmVzc2VzIG9mIGJhc2ljIGJsb2Nrcy4gSXQganVzdAorICAgICAgICBnaXZl
cyB5b3UgdGhlIGFkZHJlc3NlcyB3aGVyZSB5b3UgbXVzdCBqdW1wIHRvIHRyYW5zZmVyIGNvbnRy
b2wgZmxvdyBmcm9tIHRoYXQgUG9seUp1bXAgdG8KKyAgICAgICAgaXRzIHN1Y2Nlc3NvcnMuIFRo
aXMgbWVhbnMgdGhhdCB0aGUgbWFnaWMgb2YgUG9seUp1bXAgaXMgY29uZmluZWQgb25seSB0byB0
aGUgUG9seUp1bXAgaXRzZWxmCisgICAgICAgIGFuZCBkb2Vzbid0IGluZmVjdCByZWFzb25pbmcg
YWJvdXQgdGhlIGJhc2ljIGJsb2NrcyB0aGF0IGl0IGp1bXBzIHRvLgorICAgICAgICAKKyAgICAg
ICAgVGhlIG9ubHkgZG93bnNpZGUgaXMgdGhhdCB0aGF0IFBvbHlKdW1wIGlzIG5vdCBjbG9uZWFi
bGUuIFlvdSBjYW4ndCBjbG9uZSBpdCBiZWNhdXNlIGlmIHlvdQorICAgICAgICBkaWQsIHRoZW4g
dGhlIHR3byByZXN1bHRpbmcgUG9seUp1bXBzIG1heSBoYXZlIHRoZWlyIHN1Y2Nlc3NvciBlZGdl
cyByZXdpcmVkIGluZGVwZW5kZW50bHkgb2YKKyAgICAgICAgZWFjaCBvdGhlci4gVGhpcyBjb3Vs
ZCBlYXNpbHkgaGFwcGVuIGlmIHdlIGJyZWFrIGNyaXRpY2FsIGVkZ2VzLiBJZiB0aGF0IGRpZCBo
YXBwZW4gdGhlbiBpdAorICAgICAgICB3b3VsZCBicmVhayB0aGUgY2xpZW50IG9mIFBvbHlKdW1w
OiB0aGV5IHdvdWxkIGhhdmUgYWxyZWFkeSBjcmVhdGVkIHNvbWV0aGluZyBsaWtlIGEganVtcAor
ICAgICAgICB0YWJsZSBhbmQgd2lsbCBiZSBwb3B1bGF0aW5nIGl0IHZpYSB0aGUgY2FsbGJhY2ss
IGJ1dCBub3cgdGhlIGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkIHR3aWNlLAorICAgICAgICBhbmQg
bWF5IHJldHVybiBkaWZmZXJlbnQganVtcCBkZXN0aW5hdGlvbnMgZWFjaCB0aW1lLiBTbywgdGhp
cyBwYXRjaCBpbnRyb2R1Y2VzCisgICAgICAgIFZhbHVlOjppc0Nsb25lYWJsZSgpIGFuZCB0ZWFj
aGVzIGJvdGggb2Ygb3VyIGNvZGUgc3BlY2lhbGl6YXRpb24gb3B0aW1pemF0aW9ucyAodGFpbAor
ICAgICAgICBkdXBsaWNhdGlvbiBhbmQgc2VsZWN0IHNwZWNpYWxpemF0aW9uKSB0byBiYWlsIGlm
IHRoZSBjb2RlIHRoZXkgd2FudCB0byBzcGVjaWFsaXplIGlzIG5vdAorICAgICAgICBjbG9uZWFi
bGUuIFRoaXMgaXMgdG90YWxseSBiZW5pZ24gbW9zdCBvZiB0aGUgdGltZSwgc2luY2UgdGhvc2Ug
b3B0aW1pemF0aW9ucyB1c3VhbGx5IHJ1bgorICAgICAgICBiZWZvcmUgU3dpdGNoIGxvd2VyaW5n
LiBDbGllbnRzIHRoYXQgdXNlIFBvbHlKdW1wIGRpcmVjdGx5IGhhdmUgdG8gYXBwcmVjaWF0ZSB0
aGUgdHJhZGUtb2ZmOgorICAgICAgICBQb2x5SnVtcCBtYXkgZ2FpbiB0aGVtIHNvbWUgcGVyZm9y
bWFuY2UgYnV0IHRoZXkgYXJlIG9wdGluZyBvdXQgb2Ygb3B0aW1pemF0aW9ucyB0aGF0IHVzZQor
ICAgICAgICBjbG9uaW5nLiBBIGNsb3NlIGNvcm9sbGFyeSBvZiB0aGUgbm8tY2xvbmUgcnVsZSBp
cyB0aGF0IHRoZSBjbGllbnQgY2Fubm90IGNyZWF0ZSBtdWx0aXBsZQorICAgICAgICBQb2x5SnVt
cHMgdGhhdCBhcmUgZmVkIGJ5IGEgY29tbW9uIGp1bXAgdGFibGU6IHRoZSBmYWN0IHRoYXQgZWFj
aCBQb2x5SnVtcCBoYXMgYSBjYWxsYmFjaworICAgICAgICB0aGF0IGp1c3QgdGVsbHMgeW91IHRo
ZSBqdW1wIGRlc3RpbmF0aW9ucyBmb3IgaXRzIHN1Y2Nlc3NvciAqZWRnZXMqLCBub3Qgc3VjY2Vz
c29yICpibG9ja3MqLAorICAgICAgICBtZWFucyB0aGF0IGlmIHlvdSBjcmVhdGUgdHdvIFBvbHlK
dW1wcyBhbmQgZ2l2ZSB0aGVtIHRoZSBzYW1lIHN1Y2Nlc3NvciBsaXN0LCB5b3UgYXJlIG5vdAor
ICAgICAgICBndWFyYW50ZWVkIHRoYXQgdGhleSB3aWxsIGdldCB0aGUgc2FtZSBqdW1wIGRlc3Rp
bmF0aW9ucy4gVGhpcyBodXJ0cyBpZiB5b3Ugd2FudCB0byB1c2UKKyAgICAgICAgUG9seUp1bXAg
Zm9yIHRocmVhZGVkIGludGVycHJldGVycyBidXQgaXQncyBoYXJtbGVzcyBmb3Igc3dpdGNoIGxv
d2VyaW5nLiBUaGUgZ29hbCBvZgorICAgICAgICBQb2x5SnVtcCBpcyB0byBiZSBhd2Vzb21lIGZv
ciBzd2l0Y2ggbG93ZXJpbmcgd2hpbGUgbm90IGJyZWFraW5nIHRoZSByZXN0IG9mIHRoZSBjb21w
aWxlciwgc28KKyAgICAgICAgdGhpcyBpcyBwcm9iYWJseSBmaW5lLgorICAgICAgICAKKyAgICAg
ICAgVGhlIGlzQ2xvbmVhYmxlKCkgbWV0aG9kIGN1cnJlbnRseSBvbmx5IHJldHVybnMgdHJ1ZSBm
b3IgUG9seUp1bXAsIGJ1dCBJIGFudGljaXBhdGUgd2Ugd2lsbAorICAgICAgICBhZGQgb3RoZXIg
bm9uLWNsb25lYWJsZSB0aGluZ3MgbGF0ZXIuIEkgdGhpbmsgaXMgaXMgaW5oZXJlbnQgaW4gYSBj
b21waWxlciB0aGF0IGFsbG93cyBzdWNoCisgICAgICAgIGN1c3RvbWl6ZWFiaWxpdHkgZm9yIGl0
cyBjbGllbnRzLiBGb3IgZXhhbXBsZSwgd2UgbWF5IHdhbnQgdG8gYWRkIGEgZmxhZyB0byBQYXRj
aHBvaW50IHRoYXQKKyAgICAgICAgbWFrZXMgaXQgbm9uLWNsb25lYWJsZS4gU29tZXRpbWVzIHdl
IGhhdmUgdG8ganVtcCB0aHJvdWdoIGhvb3BzIGluIHRoZSBGVEwgYmVjYXVzZSBvZiB0aGUKKyAg
ICAgICAgY2xvbmVhYmlsaXR5IG9mIHBhdGNocG9pbnRzLiBUaGlzIGhhcHBlbnMgaW4gT1NSIGV4
aXRzLCB3aGljaCBwYXkgYSBzaWduaWZpY2FudCBtZW1vcnkgY29zdAorICAgICAgICBmb3IgYWRk
aXRpb25hbCBkYXRhIHN0cnVjdHVyZXMgdGhhdCBhcmUgdGhlcmUgaW4gY2FzZSBhbiBleGl0IGdl
dHMgY2xvbmVkLiBJdCBtYXkgYmUgbW9yZQorICAgICAgICBwcm9maXRhYmxlIHRvIGp1c3Qgc2F5
IHRoYXQgT1NSIGV4aXRzIChpLmUuIENoZWNrcyBhbmQgSW52YWxpZGF0aW9uUG9pbnQgUGF0Y2hw
b2ludHMpIGFyZSBub3QKKyAgICAgICAgY2xvbmVhYmxlLiBTdXJlbHkgdGhpcyB3b3VsZCByZWR1
Y2UgdGFpbCBkdXBsaWNhdGlvbiwgYnV0IHRhaWwgZHVwbGljYXRpb24gaXMgbW9zdCBwcm9maXRh
YmxlCisgICAgICAgIHdoZW4gaXQgY2xvbmVzIG9ubHkgYSB0aW55IGFtb3VudCBvZiBjb2RlOyBp
ZiB0aGVyZSdzIGFuIGV4aXQgdGhlbiB3ZSdyZSBub3QgdGFsa2luZyBhYm91dCBhCisgICAgICAg
IHRpbnkgYW1vdW50IG9mIGNvZGUgYW55bW9yZS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaXMg
YSB+MzAlIHNwZWVkLXVwIG9uIG1pY3JvYmVuY2htYXJrcyB0aGF0IGhhdmUgYmlnIHN3aXRjaCBz
dGF0ZW1lbnRzICh+NjAgY2FzZXMpLiBJdCdzCisgICAgICAgIG5vdCBhIHNwZWVkLXVwIG9uIG1h
aW5zdHJlYW0gYmVuY2htYXJrcy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgYWxzbyBhZGRzIGEg
bmV3IHRlc3QgdG8gdGVzdGIzIGZvciBQb2x5SnVtcCwgR2V0LCBhbmQgU2V0LiBUaGUgRlRMIGRv
ZXMgbm90IGN1cnJlbnRseQorICAgICAgICB1c2UgUG9seUp1bXAgZGlyZWN0bHksIGJ1dCB3ZSB3
YW50IHRoaXMgdG8gYmUgcG9zc2libGUuIEl0IGFsc28gZG9lc24ndCB1c2UgR2V0L1NldCBkaXJl
Y3RseQorICAgICAgICBldmVuIHRob3VnaCB3ZSB3YW50IHRoaXMgdG8gYmUgcG9zc2libGUuIEl0
J3MgaW1wb3J0YW50IHRvIHRlc3QgdGhlc2Ugc2luY2Ugb3Bjb2RlcyB0aGF0CisgICAgICAgIHJl
c3VsdCBmcm9tIGxvd2VyaW5nIGRvbid0IGFmZmVjdCBlYXJseSBwaGFzZXMsIHNvIHdlIGNvdWxk
IGhhdmUgcmVncmVzc2lvbnMgaW4gZWFybHkgcGhhc2VzCisgICAgICAgIHJlbGF0ZWQgdG8gdGhl
c2Ugb3Bjb2RlcyB0aGF0IHdvdWxkbid0IGJlIGNhdWdodCBieSBhbnkgSlMgdGVzdC4gU28sIHRo
aXMgYWRkcyBhIHZlcnkgYmFzaWMKKyAgICAgICAgdGhyZWFkZWQgaW50ZXJwcmV0ZXIgdG8gdGVz
dGIzIGZvciBhIEJyYWluZnVjay1zdHlsZSBsYW5ndWFnZSwgYW5kIHRlc3RzIGl0IGJ5IGhhdmlu
ZyBpdCBydW4KKyAgICAgICAgYSBwcm9ncmFtIHRoYXQgcHJpbnRzIHRoZSBudW1iZXJzIDEuLjEw
MCBpbiBhIGxvb3AuIFVubGlrZSBhIHJlYWwgdGhyZWFkZWQgaW50ZXJwcmV0ZXIsIGl0CisgICAg
ICAgIHVzZXMgYSBjb21tb24gZGlzcGF0Y2ggYmxvY2sgcmF0aGVyIHRoYW4gaGF2aW5nIGRpc3Bh
dGNoIGF0IHRoZSB0ZXJtaW51cyBvZiBlYWNoIG9wY29kZS4KKyAgICAgICAgVGhhdCdzIG5lY2Vz
c2FyeSBiZWNhdXNlIFBvbHlKdW1wIGlzIG5vdCBjbG9uZWFibGUuIFRoZSBzdGF0ZSBvZiB0aGUg
aW50ZXJwcmV0ZXIgaXMKKyAgICAgICAgcmVwcmVzZW50ZWQgdXNpbmcgVmFyaWFibGVzIHRoYXQg
d2UgR2V0IGFuZCBTZXQsIHNvIGl0IHRlc3RzIEdldC9TZXQgYXMgd2VsbC4KKworICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9u
Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpqdW1wKToKKyAgICAg
ICAgKiBhc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxl
cjo6am1wX20pOgorICAgICAgICAqIGIzL0IzQmFzaWNCbG9jay5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpCYXNpY0Jsb2NrOjp1cGRhdGVQcmVkZWNlc3NvcnNBZnRlcik6CisgICAgICAgIChKU0M6
OkIzOjpCYXNpY0Jsb2NrOjppc0Nsb25lYWJsZSk6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Js
b2NrOjpkdW1wKToKKyAgICAgICAgKiBiMy9CM0Jhc2ljQmxvY2suaDoKKyAgICAgICAgKEpTQzo6
QjM6OkJhc2ljQmxvY2s6OmZyZXF1ZW5jeSk6CisgICAgICAgICogYjMvQjNDb21tb24uaDoKKyAg
ICAgICAgKEpTQzo6QjM6OmlzNjRCaXQpOgorICAgICAgICAqIGIzL0IzQ29udHJvbFZhbHVlLmg6
CisgICAgICAgICogYjMvQjNEYXRhU2VjdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkIzOjpEYXRh
U2VjdGlvbjo6RGF0YVNlY3Rpb24pOgorICAgICAgICAqIGIzL0IzRHVwbGljYXRlVGFpbHMuY3Bw
OgorICAgICAgICAqIGIzL0IzTG93ZXJNYWNyb3MuY3BwOgorICAgICAgICAqIGIzL0IzTG93ZXJU
b0Fpci5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okxvd2VyVG9BaXI6Omxvd2VyKToKKyAg
ICAgICAgKiBiMy9CM09wY29kZS5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgor
ICAgICAgICAqIGIzL0IzT3Bjb2RlLmg6CisgICAgICAgICogYjMvQjNQb2x5SnVtcFZhbHVlLmNw
cDogQWRkZWQuCisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjp+UG9seUp1bXBWYWx1
ZSk6CisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjphcHBlbmRTdWNjZXNzb3IpOgor
ICAgICAgICAoSlNDOjpCMzo6UG9seUp1bXBWYWx1ZTo6c2V0Q2FsbGJhY2tUYXNrKToKKyAgICAg
ICAgKEpTQzo6QjM6OlBvbHlKdW1wVmFsdWU6OmlzQ2xvbmVhYmxlKToKKyAgICAgICAgKEpTQzo6
QjM6OlBvbHlKdW1wVmFsdWU6OmR1bXBNZXRhKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1w
VmFsdWU6OmNsb25lSW1wbCk6CisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjpQb2x5
SnVtcFZhbHVlKToKKyAgICAgICAgKiBiMy9CM1BvbHlKdW1wVmFsdWUuaDogQWRkZWQuCisgICAg
ICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjphY2NlcHRzKToKKyAgICAgICAgKEpTQzo6QjM6
OlBvbHlKdW1wVmFsdWU6OnNldENhbGxiYWNrKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1w
VmFsdWU6OmNhbGxiYWNrVGFzayk6CisgICAgICAgICogYjMvQjNQcm9jZWR1cmUuY3BwOgorICAg
ICAgICAoSlNDOjpCMzo6UHJvY2VkdXJlOjpjbG9uZSk6CisgICAgICAgICogYjMvQjNQcm9jZWR1
cmUuaDoKKyAgICAgICAgKEpTQzo6QjM6OlByb2NlZHVyZTo6bGFzdFBoYXNlTmFtZSk6CisgICAg
ICAgIChKU0M6OkIzOjpQcm9jZWR1cmU6OmJ5cHJvZHVjdHMpOgorICAgICAgICAqIGIzL0IzUmVk
dWNlU3RyZW5ndGguY3BwOgorICAgICAgICAqIGIzL0IzVmFsaWRhdGUuY3BwOgorICAgICAgICAq
IGIzL0IzVmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6OmVmZmVjdHMpOgorICAg
ICAgICAoSlNDOjpCMzo6VmFsdWU6OmlzQ2xvbmVhYmxlKToKKyAgICAgICAgKEpTQzo6QjM6OlZh
bHVlOjprZXkpOgorICAgICAgICAqIGIzL0IzVmFsdWUuaDoKKyAgICAgICAgKiBiMy9haXIvQWly
Q29kZS5oOgorICAgICAgICAqIGIzL2Fpci9BaXJHZW5lcmF0ZS5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpBaXI6OmdlbmVyYXRlKToKKyAgICAgICAgKiBiMy9haXIvQWlySW5zdC5jcHA6CisgICAg
ICAgIChKU0M6OkIzOjpBaXI6Okluc3Q6Omhhc0FyZ0VmZmVjdHMpOgorICAgICAgICAoSlNDOjpC
Mzo6QWlyOjpJbnN0Ojppc0Nsb25lYWJsZSk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okluc3Q6
OmR1bXApOgorICAgICAgICAqIGIzL2Fpci9BaXJJbnN0Lmg6CisgICAgICAgICogYjMvYWlyL0Fp
ck9wY29kZS5vcGNvZGVzOgorICAgICAgICAqIGIzL3Rlc3RiMy5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpzaG91bGRCZVZlcmJvc2UpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN3aXRjaENoaWxs
RGl2KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RMYXRlUmVnaXN0ZXIpOgorICAgICAgICAoSlND
OjpCMzo6dGhyZWFkZWRJbnRlcnByZXRlclByaW50KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RU
aHJlYWRlZEludGVycHJldGVyKToKKyAgICAgICAgKEpTQzo6QjM6Onplcm8pOgorICAgICAgICAo
SlNDOjpCMzo6cnVuKToKKwogMjAxNi0wNy0wMyAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gRExMcyBhcmUgbWlzc2luZyB2ZXJzaW9uIGluZm9y
bWF0aW9uLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24g
MjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0xNDQsNiArMTQ0LDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAg
ICBiMy9CM1BhdGNocG9pbnRWYWx1ZS5jcHAKICAgICBiMy9CM1BoYXNlU2NvcGUuY3BwCiAgICAg
YjMvQjNQaGlDaGlsZHJlbi5jcHAKKyAgICBiMy9CM1BvbHlKdW1wVmFsdWUuY3BwCiAgICAgYjMv
QjNQcm9jZWR1cmUuY3BwCiAgICAgYjMvQjNQdXJlQ1NFLmNwcAogICAgIGIzL0IzUmVkdWNlRG91
YmxlVG9GbG9hdC5jcHAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lv
biAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTk4OCw2ICsxOTg4LDggQEAK
IAkJREMxN0U4MUExQzlDOTFFOTAwOEE2QUIzIC8qIENDYWxsSGVscGVycy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzE3RTgxNjFDOUM4MDJCMDA4
QTZBQjMgLyogQ0NhbGxIZWxwZXJzLmNwcCAqLzsgfTsKIAkJREMyMTQzMDcxQ0EzMkU1NTAwMEE4
ODY5IC8qIElDU3RhdHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IERDMjE0MzA2MUNBMzJFNTIwMDBBODg2OSAvKiBJQ1N0YXRzLmggKi87IH07CiAJCURD
MjE0MzA4MUNBMzJFNTgwMDBBODg2OSAvKiBJQ1N0YXRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDMjE0MzA1MUNBMzJFNTIwMDBBODg2OSAvKiBJ
Q1N0YXRzLmNwcCAqLzsgfTsKKwkJREM0NTRCODgxQ0ZGNkZFNzAwNEMxOEFGIC8qIEIzUG9seUp1
bXBWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBEQzQ1NEI4NjFDRkY2RkU1MDA0QzE4QUYgLyogQjNQb2x5SnVtcFZhbHVlLmNwcCAqLzsgfTsK
KwkJREM0NTRCODkxQ0ZGNkZFQTAwNEMxOEFGIC8qIEIzUG9seUp1bXBWYWx1ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM0NTRCODcxQ0ZGNkZFNTAw
NEMxOEFGIC8qIEIzUG9seUp1bXBWYWx1ZS5oICovOyB9OwogCQlEQzQ1NEI4QzFEMDBFODIyMDA0
QzE4QUYgLyogQWlyRHVtcEFzSlMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gREM0NTRCOEExRDAwRTgxRjAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmNw
cCAqLzsgfTsKIAkJREM0NTRCOEQxRDAwRTgyNDAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzQ1NEI4QjFEMDBF
ODFGMDA0QzE4QUYgLyogQWlyRHVtcEFzSlMuaCAqLzsgfTsKIAkJREM2MDVCNUQxQ0UyNkVBMDAw
NTkzNzE4IC8qIFByb2ZpbGVyRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gREM2MDVCNTkxQ0UyNkU5ODAwNTkzNzE4IC8qIFByb2ZpbGVyRXZl
bnQuY3BwICovOyB9OwpAQCAtNDIxNiw2ICs0MjE4LDggQEAKIAkJREMxN0U4MTYxQzlDODAyQjAw
OEE2QUIzIC8qIENDYWxsSGVscGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBDQ2FsbEhlbHBlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlE
QzIxNDMwNTFDQTMyRTUyMDAwQTg4NjkgLyogSUNTdGF0cy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBJQ1N0YXRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJREMyMTQzMDYxQ0EzMkU1MjAwMEE4ODY5IC8qIElDU3RhdHMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSUNTdGF0cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlEQzQ1NEI4NjFDRkY2RkU1MDA0QzE4QUYgLyogQjNQb2x5SnVtcFZhbHVlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEIzUG9seUp1bXBWYWx1ZS5jcHA7IHBh
dGggPSBiMy9CM1BvbHlKdW1wVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlEQzQ1NEI4NzFDRkY2RkU1MDA0QzE4QUYgLyogQjNQb2x5SnVtcFZhbHVlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEIzUG9seUp1bXBWYWx1ZS5oOyBwYXRoID0gYjMvQjNQ
b2x5SnVtcFZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDNDU0QjhBMUQw
MEU4MUYwMDRDMThBRiAvKiBBaXJEdW1wQXNKUy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBBaXJEdW1wQXNKUy5jcHA7IHBhdGggPSBiMy9haXIvQWlyRHVtcEFzSlMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzQ1NEI4QjFEMDBFODFGMDA0QzE4
QUYgLyogQWlyRHVtcEFzSlMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQWly
RHVtcEFzSlMuaDsgcGF0aCA9IGIzL2Fpci9BaXJEdW1wQXNKUy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlEQzYwNUI1OTFDRTI2RTk4MDA1OTM3MTggLyogUHJvZmlsZXJFdmVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQcm9maWxlckV2ZW50LmNw
cDsgcGF0aCA9IHByb2ZpbGVyL1Byb2ZpbGVyRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNDc3NSw2ICs0Nzc5LDggQEAKIAkJCQkwRkVDODRFMDFCREFDREFDMDA4MEZG
NzQgLyogQjNQaGFzZVNjb3BlLmggKi8sCiAJCQkJMEYzNzMwOEExQzBCRDI5MTAwMDUyQkZBIC8q
IEIzUGhpQ2hpbGRyZW4uY3BwICovLAogCQkJCTBGMzczMDhCMUMwQkQyOTEwMDA1MkJGQSAvKiBC
M1BoaUNoaWxkcmVuLmggKi8sCisJCQkJREM0NTRCODYxQ0ZGNkZFNTAwNEMxOEFGIC8qIEIzUG9s
eUp1bXBWYWx1ZS5jcHAgKi8sCisJCQkJREM0NTRCODcxQ0ZGNkZFNTAwNEMxOEFGIC8qIEIzUG9s
eUp1bXBWYWx1ZS5oICovLAogCQkJCTBGRUM4NEUxMUJEQUNEQUMwMDgwRkY3NCAvKiBCM1Byb2Nl
ZHVyZS5jcHAgKi8sCiAJCQkJMEZFQzg0RTIxQkRBQ0RBQzAwODBGRjc0IC8qIEIzUHJvY2VkdXJl
LmggKi8sCiAJCQkJMEZFQzg0RTMxQkRBQ0RBQzAwODBGRjc0IC8qIEIzUHJvY2VkdXJlSW5saW5l
cy5oICovLApAQCAtNzE2Myw2ICs3MTY5LDcgQEAKIAkJCQkwRjhGOTQ0MTE2Njc2MzMyMDBENjE5
NzEgLyogQ29kZUJsb2NrSGFzaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDOTdGMzQxODIwMjBE
NzAwMkM5QjI2IC8qIENvZGVCbG9ja0pldHRpc29uaW5nV2F0Y2hwb2ludC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEZEOEEzMTQxN0Q0MzI2QzAwQ0EyQzQwIC8qIENvZGVCbG9ja1NldC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJREM0NTRCODkxQ0ZGNkZFQTAwNEMxOEFGIC8qIEIzUG9seUp1bXBWYWx1
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5NkVCQjMxNjY3NkVGNjAwOEJBREUzIC8qIENvZGVC
bG9ja1dpdGhKSVRUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzdGMTgyMjE2NDA4OEIyMDA2
NDBBNDcgLyogQ29kZUNhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OUNDMEI2MzE4QkU5OTUw
MDA2Q0VCQ0MgLyogQ29kZUdlbmVyYXRvclJlcGxheUlucHV0cy5weSBpbiBIZWFkZXJzICovLApA
QCAtOTQ0Nyw2ICs5NDU0LDcgQEAKIAkJCQk3MDlGQjg2QjFBRTMzNUM2MDAzOUQwNjkgLyogV2Vh
a1NldFByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyQTRFQzkwQjE4NjBENkMyMDA5
NEY3ODIgLyogV3JpdGVCYXJyaWVyQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQzgx
NTBCMTQwNDNDMEUwMENGQTYwMyAvKiBXcml0ZUJhcnJpZXJTdXBwb3J0LmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCURDNDU0Qjg4MUNGRjZGRTcwMDRDMThBRiAvKiBCM1BvbHlKdW1wVmFsdWUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTdFNUFCM0ExNzk5RTRCMjAwRDI4MzNEIC8qIFg4NkRpc2Fz
c2VtYmxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjJCQkQ5NzFDNUZGM0Y1MDAyM0VGMjMg
LyogQjNWYXJpYWJsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NjNDNkQ5QzE1MjExMTFBMDA1
ODVFNEUgLyogWWFyckNhbm9uaWNhbGl6ZVVDUzIuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
QVJNNjQuaAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4NzQsNiArMjg3
NCwxMiBAQCBwdWJsaWM6CiAgICAgICAgIGxvYWQ2NChhZGRyZXNzLCBnZXRDYWNoZWREYXRhVGVt
cFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCkpOwogICAgICAgICBtX2Fzc2VtYmxlci5icihkYXRh
VGVtcFJlZ2lzdGVyKTsKICAgICB9CisgICAgCisgICAgdm9pZCBqdW1wKEJhc2VJbmRleCBhZGRy
ZXNzKQorICAgIHsKKyAgICAgICAgbG9hZDY0KGFkZHJlc3MsIGdldENhY2hlZERhdGFUZW1wUmVn
aXN0ZXJJREFuZEludmFsaWRhdGUoKSk7CisgICAgICAgIG1fYXNzZW1ibGVyLmJyKGRhdGFUZW1w
UmVnaXN0ZXIpOworICAgIH0KIAogICAgIHZvaWQganVtcChBYnNvbHV0ZUFkZHJlc3MgYWRkcmVz
cykKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyWDg2Q29tbW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTIyNjMsNiArMjI2MywxMiBAQCBwdWJsaWM6CiAgICAgICAgIG1f
YXNzZW1ibGVyLmptcF9tKGFkZHJlc3Mub2Zmc2V0LCBhZGRyZXNzLmJhc2UpOwogICAgIH0KIAor
ICAgIC8vIEFkZHJlc3MgaXMgYSBtZW1vcnkgbG9jYXRpb24gY29udGFpbmluZyB0aGUgYWRkcmVz
cyB0byBqdW1wIHRvCisgICAgdm9pZCBqdW1wKEJhc2VJbmRleCBhZGRyZXNzKQorICAgIHsKKyAg
ICAgICAgbV9hc3NlbWJsZXIuam1wX20oYWRkcmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFzZSwgYWRk
cmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZSk7CisgICAgfQorCiAKICAgICAvLyBBcml0aG1ldGlj
IGNvbnRyb2wgZmxvdyBvcGVyYXRpb25zOgogICAgIC8vCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgJKHJldmlzaW9uIDIwMjgwOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTE5ODMsNiArMTk4MywxMSBAQCBwdWJsaWM6CiAgICAgICAgIG1fZm9ybWF0dGVy
Lm9uZUJ5dGVPcChPUF9HUk9VUDVfRXYsIEdST1VQNV9PUF9KTVBOLCBiYXNlLCBvZmZzZXQpOwog
ICAgIH0KICAgICAKKyAgICB2b2lkIGptcF9tKGludCBvZmZzZXQsIFJlZ2lzdGVySUQgYmFzZSwg
UmVnaXN0ZXJJRCBpbmRleCwgaW50IHNjYWxlKQorICAgIHsKKyAgICAgICAgbV9mb3JtYXR0ZXIu
b25lQnl0ZU9wKE9QX0dST1VQNV9FdiwgR1JPVVA1X09QX0pNUE4sIGJhc2UsIGluZGV4LCBzY2Fs
ZSwgb2Zmc2V0KTsKKyAgICB9CisgICAgCiAjaWYgIUNQVShYODZfNjQpCiAgICAgdm9pZCBqbXBf
bShjb25zdCB2b2lkKiBhZGRyZXNzKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0Jhc2ljQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0Jhc2ljQmxvY2suY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAs
NiBAQAogCiAjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrSW5saW5lcy5oIgogI2luY2x1ZGUgIkIzQmFz
aWNCbG9ja1V0aWxzLmgiCi0jaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKICNpbmNsdWRlICJC
M1Byb2NlZHVyZS5oIgogI2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSA8d3Rm
L0xpc3REdW1wLmg+CkBAIC04NCw5ICs4Myw0MSBAQCBWYWx1ZSogQmFzaWNCbG9jazo6YXBwZW5k
SW50Q29uc3RhbnQoUHJvCiAgICAgcmV0dXJuIGFwcGVuZEludENvbnN0YW50KHByb2MsIGxpa2VW
YWx1ZS0+b3JpZ2luKCksIGxpa2VWYWx1ZS0+dHlwZSgpLCB2YWx1ZSk7CiB9CiAKK3ZvaWQgQmFz
aWNCbG9jazo6Y2xlYXJTdWNjZXNzb3JzKCkKK3sKKyAgICBtX3N1Y2Nlc3NvcnMuY2xlYXIoKTsK
K30KKwordm9pZCBCYXNpY0Jsb2NrOjphcHBlbmRTdWNjZXNzb3IoY29uc3QgRnJlcXVlbnRlZEJs
b2NrJiB0YXJnZXQpCit7CisgICAgbV9zdWNjZXNzb3JzLmFwcGVuZCh0YXJnZXQpOworfQorCit2
b2lkIEJhc2ljQmxvY2s6OnNldFN1Y2Nlc3NvcnMoY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YXJn
ZXQpCit7CisgICAgbV9zdWNjZXNzb3JzLnJlc2l6ZSgxKTsKKyAgICBtX3N1Y2Nlc3NvcnNbMF0g
PSB0YXJnZXQ7Cit9CisKK3ZvaWQgQmFzaWNCbG9jazo6c2V0U3VjY2Vzc29ycyhjb25zdCBGcmVx
dWVudGVkQmxvY2smIHRha2VuLCBjb25zdCBGcmVxdWVudGVkQmxvY2smIG5vdFRha2VuKQorewor
ICAgIG1fc3VjY2Vzc29ycy5yZXNpemUoMik7CisgICAgbV9zdWNjZXNzb3JzWzBdID0gdGFrZW47
CisgICAgbV9zdWNjZXNzb3JzWzFdID0gbm90VGFrZW47Cit9CisKIGJvb2wgQmFzaWNCbG9jazo6
cmVwbGFjZVN1Y2Nlc3NvcihCYXNpY0Jsb2NrKiBmcm9tLCBCYXNpY0Jsb2NrKiB0bykKIHsKLSAg
ICByZXR1cm4gbGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCktPnJlcGxhY2VTdWNjZXNzb3IoZnJv
bSwgdG8pOworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgZm9yIChCYXNpY0Jsb2NrKiYg
c3VjY2Vzc29yIDogc3VjY2Vzc29yQmxvY2tzKCkpIHsKKyAgICAgICAgaWYgKHN1Y2Nlc3NvciA9
PSBmcm9tKSB7CisgICAgICAgICAgICBzdWNjZXNzb3IgPSB0bzsKKyAgICAgICAgICAgIHJlc3Vs
dCA9IHRydWU7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIEtlZXAgbG9vcGluZyBiZWNh
dXNlIGEgc3VjY2Vzc29yIG1heSBiZSBtZW50aW9uZWQgbXVsdGlwbGUgdGltZXMsIGxpa2UgaW4g
YSBTd2l0Y2guCisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogYm9v
bCBCYXNpY0Jsb2NrOjphZGRQcmVkZWNlc3NvcihCYXNpY0Jsb2NrKiBibG9jaykKQEAgLTEwOSw2
ICsxNDAsMTUgQEAgdm9pZCBCYXNpY0Jsb2NrOjp1cGRhdGVQcmVkZWNlc3NvcnNBZnRlcgogICAg
IEIzOjp1cGRhdGVQcmVkZWNlc3NvcnNBZnRlcih0aGlzKTsKIH0KIAorYm9vbCBCYXNpY0Jsb2Nr
Ojppc0Nsb25lYWJsZSgpIGNvbnN0Cit7CisgICAgZm9yIChWYWx1ZSogdmFsdWUgOiAqdGhpcykg
eworICAgICAgICBpZiAoIXZhbHVlLT5pc0Nsb25lYWJsZSgpKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBCYXNpY0Jsb2NrOjpk
dW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiB7CiAgICAgb3V0LnByaW50KGR1bXBQcmVmaXgs
IG1faW5kZXgpOwpAQCAtMTIxLDYgKzE2MSw0MiBAQCB2b2lkIEJhc2ljQmxvY2s6OmRlZXBEdW1w
KGNvbnN0IFByb2NlZHVyCiAgICAgICAgIG91dC5wcmludCgiICBQcmVkZWNlc3NvcnM6ICIsIHBv
aW50ZXJMaXN0RHVtcChwcmVkZWNlc3NvcnMoKSksICJcbiIpOwogICAgIGZvciAoVmFsdWUqIHZh
bHVlIDogKnRoaXMpCiAgICAgICAgIG91dC5wcmludCgiICAgICIsIEIzOjpkZWVwRHVtcChwcm9j
LCB2YWx1ZSksICJcbiIpOworICAgIGlmIChzdWNjZXNzb3JzKCkuc2l6ZSgpKSB7CisgICAgICAg
IG91dC5wcmludCgiICBTdWNjZXNzb3JzOiAiKTsKKyAgICAgICAgaWYgKHNpemUoKSkKKyAgICAg
ICAgICAgIGxhc3QoKS0+ZHVtcFN1Y2Nlc3NvcnModGhpcywgb3V0KTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgb3V0LnByaW50KGxpc3REdW1wKHN1Y2Nlc3NvcnMoKSkpOworICAgICAgICBv
dXQucHJpbnQoIlxuIik7CisgICAgfQorfQorCitWYWx1ZSogQmFzaWNCbG9jazo6YXBwZW5kTmV3
Q29udHJvbFZhbHVlKFByb2NlZHVyZSYgcHJvYywgT3Bjb2RlIG9wY29kZSwgT3JpZ2luIG9yaWdp
bikKK3sKKyAgICBSRUxFQVNFX0FTU0VSVChvcGNvZGUgPT0gT29wcyk7CisgICAgY2xlYXJTdWNj
ZXNzb3JzKCk7CisgICAgcmV0dXJuIGFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgb3Bjb2RlLCBvcmln
aW4pOworfQorCitWYWx1ZSogQmFzaWNCbG9jazo6YXBwZW5kTmV3Q29udHJvbFZhbHVlKFByb2Nl
ZHVyZSYgcHJvYywgT3Bjb2RlIG9wY29kZSwgT3JpZ2luIG9yaWdpbiwgVmFsdWUqIHZhbHVlKQor
eworICAgIFJFTEVBU0VfQVNTRVJUKG9wY29kZSA9PSBSZXR1cm4pOworICAgIGNsZWFyU3VjY2Vz
c29ycygpOworICAgIHJldHVybiBhcHBlbmROZXc8VmFsdWU+KHByb2MsIG9wY29kZSwgb3JpZ2lu
LCB2YWx1ZSk7Cit9CisKK1ZhbHVlKiBCYXNpY0Jsb2NrOjphcHBlbmROZXdDb250cm9sVmFsdWUo
UHJvY2VkdXJlJiBwcm9jLCBPcGNvZGUgb3Bjb2RlLCBPcmlnaW4gb3JpZ2luLCBjb25zdCBGcmVx
dWVudGVkQmxvY2smIHRhcmdldCkKK3sKKyAgICBSRUxFQVNFX0FTU0VSVChvcGNvZGUgPT0gSnVt
cCk7CisgICAgc2V0U3VjY2Vzc29ycyh0YXJnZXQpOworICAgIHJldHVybiBhcHBlbmROZXc8VmFs
dWU+KHByb2MsIG9wY29kZSwgb3JpZ2luKTsKK30KKworVmFsdWUqIEJhc2ljQmxvY2s6OmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShQcm9jZWR1cmUmIHByb2MsIE9wY29kZSBvcGNvZGUsIE9yaWdpbiBv
cmlnaW4sIFZhbHVlKiBwcmVkaWNhdGUsIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgdGFrZW4sIGNv
bnN0IEZyZXF1ZW50ZWRCbG9jayYgbm90VGFrZW4pCit7CisgICAgUkVMRUFTRV9BU1NFUlQob3Bj
b2RlID09IEJyYW5jaCk7CisgICAgc2V0U3VjY2Vzc29ycyh0YWtlbiwgbm90VGFrZW4pOworICAg
IHJldHVybiBhcHBlbmROZXc8VmFsdWU+KHByb2MsIG9wY29kZSwgb3JpZ2luLCBwcmVkaWNhdGUp
OwogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM0Jhc2ljQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNCYXNpY0Jsb2NrLmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtNDcsNyArNDcsNyBA
QCBjbGFzcyBCYXNpY0Jsb2NrIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIFZlY3RvcjxWYWx1ZSo+
IFZhbHVlTGlzdDsKICAgICB0eXBlZGVmIFZlY3RvcjxCYXNpY0Jsb2NrKiwgMj4gUHJlZGVjZXNz
b3JMaXN0OwotICAgIHR5cGVkZWYgVmVjdG9yPEZyZXF1ZW50ZWRCbG9jaywgMj4gU3VjY2Vzc29y
TGlzdDsgLy8gVGhpcyBtYXRjaGVzIENvbnRyb2xWYWx1ZTo6U3VjY2Vzc29yTGlzdAorICAgIHR5
cGVkZWYgVmVjdG9yPEZyZXF1ZW50ZWRCbG9jaywgMj4gU3VjY2Vzc29yTGlzdDsKIAogICAgIHN0
YXRpYyBjb25zdCBjaGFyKiBjb25zdCBkdW1wUHJlZml4OwogCkBAIC03OCw3ICs3OCw3IEBAIHB1
YmxpYzoKICAgICBWYWx1ZVR5cGUqIGFwcGVuZE5ldyhQcm9jZWR1cmUmLCBBcmd1bWVudHMuLi4p
OwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5hbWUuLi4gQXJndW1lbnRz
PgogICAgIFZhbHVlVHlwZSogYXBwZW5kTmV3Tm9uVGVybWluYWwoUHJvY2VkdXJlJiwgQXJndW1l
bnRzLi4uKTsKLQorICAgIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIFZhbHVlKiBhcHBlbmRJbnRD
b25zdGFudChQcm9jZWR1cmUmLCBPcmlnaW4sIFR5cGUsIGludDY0X3QgdmFsdWUpOwogICAgIFZh
bHVlKiBhcHBlbmRJbnRDb25zdGFudChQcm9jZWR1cmUmLCBWYWx1ZSogbGlrZVZhbHVlLCBpbnQ2
NF90IHZhbHVlKTsKIApAQCAtODcsMTggKzg3LDM5IEBAIHB1YmxpYzoKICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBWYWx1ZVR5cGUsIHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KICAgICBWYWx1ZVR5cGUq
IHJlcGxhY2VMYXN0V2l0aE5ldyhQcm9jZWR1cmUmLCBBcmd1bWVudHMuLi4pOwogCi0gICAgdW5z
aWduZWQgbnVtU3VjY2Vzc29ycygpIGNvbnN0OwotICAgIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYg
c3VjY2Vzc29yKHVuc2lnbmVkIGluZGV4KSBjb25zdDsKLSAgICBGcmVxdWVudGVkQmxvY2smIHN1
Y2Nlc3Nvcih1bnNpZ25lZCBpbmRleCk7Ci0gICAgY29uc3QgU3VjY2Vzc29yTGlzdCYgc3VjY2Vz
c29ycygpIGNvbnN0OwotICAgIFN1Y2Nlc3Nvckxpc3QmIHN1Y2Nlc3NvcnMoKTsKLQotICAgIEJh
c2ljQmxvY2sqIHN1Y2Nlc3NvckJsb2NrKHVuc2lnbmVkIGluZGV4KSBjb25zdDsKLSAgICBCYXNp
Y0Jsb2NrKiYgc3VjY2Vzc29yQmxvY2sodW5zaWduZWQgaW5kZXgpOwotICAgIFN1Y2Nlc3NvckNv
bGxlY3Rpb248QmFzaWNCbG9jaywgU3VjY2Vzc29yTGlzdD4gc3VjY2Vzc29yQmxvY2tzKCk7Ci0g
ICAgU3VjY2Vzc29yQ29sbGVjdGlvbjxjb25zdCBCYXNpY0Jsb2NrLCBjb25zdCBTdWNjZXNzb3JM
aXN0PiBzdWNjZXNzb3JCbG9ja3MoKSBjb25zdDsKKyAgICB1bnNpZ25lZCBudW1TdWNjZXNzb3Jz
KCkgY29uc3QgeyByZXR1cm4gbV9zdWNjZXNzb3JzLnNpemUoKTsgfQorICAgIGNvbnN0IEZyZXF1
ZW50ZWRCbG9jayYgc3VjY2Vzc29yKHVuc2lnbmVkIGluZGV4KSBjb25zdCB7IHJldHVybiBtX3N1
Y2Nlc3NvcnNbaW5kZXhdOyB9CisgICAgRnJlcXVlbnRlZEJsb2NrJiBzdWNjZXNzb3IodW5zaWdu
ZWQgaW5kZXgpIHsgcmV0dXJuIG1fc3VjY2Vzc29yc1tpbmRleF07IH0KKyAgICBjb25zdCBTdWNj
ZXNzb3JMaXN0JiBzdWNjZXNzb3JzKCkgY29uc3QgeyByZXR1cm4gbV9zdWNjZXNzb3JzOyB9Cisg
ICAgU3VjY2Vzc29yTGlzdCYgc3VjY2Vzc29ycygpIHsgcmV0dXJuIG1fc3VjY2Vzc29yczsgfQor
ICAgIAorICAgIHZvaWQgY2xlYXJTdWNjZXNzb3JzKCk7CisgICAgdm9pZCBhcHBlbmRTdWNjZXNz
b3IoY29uc3QgRnJlcXVlbnRlZEJsb2NrJik7CisgICAgdm9pZCBzZXRTdWNjZXNzb3JzKGNvbnN0
IEZyZXF1ZW50ZWRCbG9jayYpOworICAgIHZvaWQgc2V0U3VjY2Vzc29ycyhjb25zdCBGcmVxdWVu
dGVkQmxvY2smLCBjb25zdCBGcmVxdWVudGVkQmxvY2smKTsKKworICAgIEJhc2ljQmxvY2sqIHN1
Y2Nlc3NvckJsb2NrKHVuc2lnbmVkIGluZGV4KSBjb25zdCB7IHJldHVybiBzdWNjZXNzb3IoaW5k
ZXgpLmJsb2NrKCk7IH0KKyAgICBCYXNpY0Jsb2NrKiYgc3VjY2Vzc29yQmxvY2sodW5zaWduZWQg
aW5kZXgpIHsgcmV0dXJuIHN1Y2Nlc3NvcihpbmRleCkuYmxvY2soKTsgfQorICAgIFN1Y2Nlc3Nv
ckNvbGxlY3Rpb248QmFzaWNCbG9jaywgU3VjY2Vzc29yTGlzdD4gc3VjY2Vzc29yQmxvY2tzKCkK
KyAgICB7CisgICAgICAgIHJldHVybiBTdWNjZXNzb3JDb2xsZWN0aW9uPEJhc2ljQmxvY2ssIFN1
Y2Nlc3Nvckxpc3Q+KHN1Y2Nlc3NvcnMoKSk7CisgICAgfQorICAgIFN1Y2Nlc3NvckNvbGxlY3Rp
b248Y29uc3QgQmFzaWNCbG9jaywgY29uc3QgU3VjY2Vzc29yTGlzdD4gc3VjY2Vzc29yQmxvY2tz
KCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBTdWNjZXNzb3JDb2xsZWN0aW9uPGNvbnN0
IEJhc2ljQmxvY2ssIFN1Y2Nlc3Nvckxpc3Q+KHN1Y2Nlc3NvcnMoKSk7CisgICAgfQogCiAgICAg
Ym9vbCByZXBsYWNlU3VjY2Vzc29yKEJhc2ljQmxvY2sqIGZyb20sIEJhc2ljQmxvY2sqIHRvKTsK
KyAgICAKKyAgICAvLyBUaGlzIGlzIG9ubHkgdmFsaWQgZm9yIEp1bXAgYW5kIEJyYW5jaC4KKyAg
ICBjb25zdCBGcmVxdWVudGVkQmxvY2smIHRha2VuKCkgY29uc3Q7CisgICAgRnJlcXVlbnRlZEJs
b2NrJiB0YWtlbigpOworICAgIC8vIFRoaXMgaXMgb25seSB2YWxpZCBmb3IgQnJhbmNoLgorICAg
IGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgbm90VGFrZW4oKSBjb25zdDsKKyAgICBGcmVxdWVudGVk
QmxvY2smIG5vdFRha2VuKCkgY29uc3Q7CisgICAgLy8gVGhpcyBpcyBvbmx5IHZhbGlkIGZvciBC
cmFuY2ggYW5kIFN3aXRjaC4KKyAgICBjb25zdCBGcmVxdWVudGVkQmxvY2smIGZhbGxUaHJvdWdo
KCkgY29uc3Q7CisgICAgRnJlcXVlbnRlZEJsb2NrJiBmYWxsVGhyb3VnaCgpIGNvbnN0OwogCiAg
ICAgdW5zaWduZWQgbnVtUHJlZGVjZXNzb3JzKCkgY29uc3QgeyByZXR1cm4gbV9wcmVkZWNlc3Nv
cnMuc2l6ZSgpOyB9CiAgICAgQmFzaWNCbG9jayogcHJlZGVjZXNzb3IodW5zaWduZWQgaW5kZXgp
IGNvbnN0IHsgcmV0dXJuIG1fcHJlZGVjZXNzb3JzW2luZGV4XTsgfQpAQCAtMTE1LDEwICsxMzYs
MjUgQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlUHJlZGVjZXNzb3JzQWZ0ZXIoKTsKIAogICAg
IGRvdWJsZSBmcmVxdWVuY3koKSBjb25zdCB7IHJldHVybiBtX2ZyZXF1ZW5jeTsgfQorICAgIAor
ICAgIGJvb2wgaXNDbG9uZWFibGUoKSBjb25zdDsKIAogICAgIHZvaWQgZHVtcChQcmludFN0cmVh
bSYpIGNvbnN0OwogICAgIHZvaWQgZGVlcER1bXAoY29uc3QgUHJvY2VkdXJlJiwgUHJpbnRTdHJl
YW0mKSBjb25zdDsKIAorICAgIC8vIFRoZXNlIGFyZSBkZXByZWNhdGVkIG1ldGhvZCBmb3IgY29t
cGF0aWJpbGl0eSB3aXRoIHRoZSBvbGQgQ29udHJvbFZhbHVlIGNsYXNzLiBEb24ndCB1c2UgdGhl
bQorICAgIC8vIGluIG5ldyBjb2RlLgorICAgIC8vIEZJWE1FOiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5NDQwCisgICAgCisgICAgLy8gVXNlIHRoaXMgZm9yIE9v
cHMuCisgICAgSlNfRVhQT1JUX1BSSVZBVEUgVmFsdWUqIGFwcGVuZE5ld0NvbnRyb2xWYWx1ZShQ
cm9jZWR1cmUmLCBPcGNvZGUsIE9yaWdpbik7CisgICAgLy8gVXNlIHRoaXMgZm9yIFJldHVybi4K
KyAgICBKU19FWFBPUlRfUFJJVkFURSBWYWx1ZSogYXBwZW5kTmV3Q29udHJvbFZhbHVlKFByb2Nl
ZHVyZSYsIE9wY29kZSwgT3JpZ2luLCBWYWx1ZSopOworICAgIC8vIFVzZSB0aGlzIGZvciBKdW1w
LgorICAgIEpTX0VYUE9SVF9QUklWQVRFIFZhbHVlKiBhcHBlbmROZXdDb250cm9sVmFsdWUoUHJv
Y2VkdXJlJiwgT3Bjb2RlLCBPcmlnaW4sIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYpOworICAgIC8v
IFVzZSB0aGlzIGZvciBCcmFuY2guCisgICAgSlNfRVhQT1JUX1BSSVZBVEUgVmFsdWUqIGFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShQcm9jZWR1cmUmLCBPcGNvZGUsIE9yaWdpbiwgVmFsdWUqLCBjb25z
dCBGcmVxdWVudGVkQmxvY2smLCBjb25zdCBGcmVxdWVudGVkQmxvY2smKTsKKyAgICAKIHByaXZh
dGU6CiAgICAgZnJpZW5kIGNsYXNzIEJsb2NrSW5zZXJ0aW9uU2V0OwogICAgIGZyaWVuZCBjbGFz
cyBJbnNlcnRpb25TZXQ7CkBAIC0xMzAsNiArMTY2LDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25l
ZCBtX2luZGV4OwogICAgIFZhbHVlTGlzdCBtX3ZhbHVlczsKICAgICBQcmVkZWNlc3Nvckxpc3Qg
bV9wcmVkZWNlc3NvcnM7CisgICAgU3VjY2Vzc29yTGlzdCBtX3N1Y2Nlc3NvcnM7CiAgICAgZG91
YmxlIG1fZnJlcXVlbmN5OwogfTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
QmFzaWNCbG9ja0lubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNCYXNpY0Jsb2NrSW5saW5lcy5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrSW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
OSw3ICsyOSw2IEBACiAjaWYgRU5BQkxFKEIzX0pJVCkKIAogI2luY2x1ZGUgIkIzQmFzaWNCbG9j
ay5oIgotI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNQcm9jZWR1cmVJ
bmxpbmVzLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewpAQCAtNTgsNDkgKzU3
LDQwIEBAIFZhbHVlVHlwZSogQmFzaWNCbG9jazo6cmVwbGFjZUxhc3RXaXRoTmUKICAgICByZXR1
cm4gcmVzdWx0OwogfQogCi1pbmxpbmUgdW5zaWduZWQgQmFzaWNCbG9jazo6bnVtU3VjY2Vzc29y
cygpIGNvbnN0Citjb25zdCBGcmVxdWVudGVkQmxvY2smIEJhc2ljQmxvY2s6OnRha2VuKCkgY29u
c3QKIHsKLSAgICByZXR1cm4gbGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCktPm51bVN1Y2Nlc3Nv
cnMoKTsKKyAgICBBU1NFUlQobGFzdCgpLT5vcGNvZGUoKSA9PSBKdW1wIHx8IGxhc3QoKS0+b3Bj
b2RlKCkgPT0gQnJhbmNoKTsKKyAgICByZXR1cm4gbV9zdWNjZXNzb3JzWzBdOwogfQogCi1pbmxp
bmUgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBCYXNpY0Jsb2NrOjpzdWNjZXNzb3IodW5zaWduZWQg
aW5kZXgpIGNvbnN0CitGcmVxdWVudGVkQmxvY2smIEJhc2ljQmxvY2s6OnRha2VuKCkKIHsKLSAg
ICByZXR1cm4gbGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCktPnN1Y2Nlc3NvcihpbmRleCk7Cisg
ICAgQVNTRVJUKGxhc3QoKS0+b3Bjb2RlKCkgPT0gSnVtcCB8fCBsYXN0KCktPm9wY29kZSgpID09
IEJyYW5jaCk7CisgICAgcmV0dXJuIG1fc3VjY2Vzc29yc1swXTsKIH0KIAotaW5saW5lIEZyZXF1
ZW50ZWRCbG9jayYgQmFzaWNCbG9jazo6c3VjY2Vzc29yKHVuc2lnbmVkIGluZGV4KQorY29uc3Qg
RnJlcXVlbnRlZEJsb2NrJiBCYXNpY0Jsb2NrOjpub3RUYWtlbigpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIGxhc3QoKS0+YXM8Q29udHJvbFZhbHVlPigpLT5zdWNjZXNzb3IoaW5kZXgpOworICAgIEFT
U0VSVChsYXN0KCktPm9wY29kZSgpID09IEJyYW5jaCk7CisgICAgcmV0dXJuIG1fc3VjY2Vzc29y
c1sxXTsKIH0KIAotaW5saW5lIGNvbnN0IEJhc2ljQmxvY2s6OlN1Y2Nlc3Nvckxpc3QmIEJhc2lj
QmxvY2s6OnN1Y2Nlc3NvcnMoKSBjb25zdAorRnJlcXVlbnRlZEJsb2NrJiBCYXNpY0Jsb2NrOjpu
b3RUYWtlbigpCiB7Ci0gICAgcmV0dXJuIGxhc3QoKS0+YXM8Q29udHJvbFZhbHVlPigpLT5zdWNj
ZXNzb3JzKCk7CisgICAgQVNTRVJUKGxhc3QoKS0+b3Bjb2RlKCkgPT0gQnJhbmNoKTsKKyAgICBy
ZXR1cm4gbV9zdWNjZXNzb3JzWzFdOwogfQogCi1pbmxpbmUgQmFzaWNCbG9jazo6U3VjY2Vzc29y
TGlzdCYgQmFzaWNCbG9jazo6c3VjY2Vzc29ycygpCitjb25zdCBGcmVxdWVudGVkQmxvY2smIEJh
c2ljQmxvY2s6OmZhbGxUaHJvdWdoKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbGFzdCgpLT5hczxD
b250cm9sVmFsdWU+KCktPnN1Y2Nlc3NvcnMoKTsKKyAgICBBU1NFUlQobGFzdCgpLT5vcGNvZGUo
KSA9PSBCcmFuY2ggfHwgbGFzdCgpLT5vcGNvZGUoKSA9PSBTd2l0Y2gpOworICAgIHJldHVybiBt
X3N1Y2Nlc3NvcnMubGFzdCgpOwogfQogCi1pbmxpbmUgQmFzaWNCbG9jayogQmFzaWNCbG9jazo6
c3VjY2Vzc29yQmxvY2sodW5zaWduZWQgaW5kZXgpIGNvbnN0CitGcmVxdWVudGVkQmxvY2smIEJh
c2ljQmxvY2s6OmZhbGxUaHJvdWdoKCkKIHsKLSAgICByZXR1cm4gc3VjY2Vzc29yKGluZGV4KS5i
bG9jaygpOwotfQotCi1pbmxpbmUgQmFzaWNCbG9jayomIEJhc2ljQmxvY2s6OnN1Y2Nlc3NvckJs
b2NrKHVuc2lnbmVkIGluZGV4KQotewotICAgIHJldHVybiBzdWNjZXNzb3IoaW5kZXgpLmJsb2Nr
KCk7Ci19Ci0KLWlubGluZSBTdWNjZXNzb3JDb2xsZWN0aW9uPEJhc2ljQmxvY2ssIEJhc2ljQmxv
Y2s6OlN1Y2Nlc3Nvckxpc3Q+IEJhc2ljQmxvY2s6OnN1Y2Nlc3NvckJsb2NrcygpCi17Ci0gICAg
cmV0dXJuIFN1Y2Nlc3NvckNvbGxlY3Rpb248QmFzaWNCbG9jaywgU3VjY2Vzc29yTGlzdD4oc3Vj
Y2Vzc29ycygpKTsKLX0KLQotaW5saW5lIFN1Y2Nlc3NvckNvbGxlY3Rpb248Y29uc3QgQmFzaWNC
bG9jaywgY29uc3QgQmFzaWNCbG9jazo6U3VjY2Vzc29yTGlzdD4gQmFzaWNCbG9jazo6c3VjY2Vz
c29yQmxvY2tzKCkgY29uc3QKLXsKLSAgICByZXR1cm4gU3VjY2Vzc29yQ29sbGVjdGlvbjxjb25z
dCBCYXNpY0Jsb2NrLCBjb25zdCBTdWNjZXNzb3JMaXN0PihzdWNjZXNzb3JzKCkpOworICAgIEFT
U0VSVChsYXN0KCktPm9wY29kZSgpID09IEJyYW5jaCB8fCBsYXN0KCktPm9wY29kZSgpID09IFN3
aXRjaCk7CisgICAgcmV0dXJuIG1fc3VjY2Vzc29ycy5sYXN0KCk7CiB9CiAKIH0gfSAvLyBuYW1l
c3BhY2UgSlNDOjpCMwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmxvY2tJbnNl
cnRpb25TZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Js
b2NrSW5zZXJ0aW9uU2V0LmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzQmxvY2tJbnNlcnRpb25TZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OCw4
ICs3OCw4IEBAIEJhc2ljQmxvY2sqIEJsb2NrSW5zZXJ0aW9uU2V0OjpzcGxpdEZvcncKICAgICAg
ICAgcmVzdWx0LT5tX3ZhbHVlc1tpXSA9IGJsb2NrLT5tX3ZhbHVlc1tpXTsKIAogICAgIC8vIE1h
a2UgdGhlIG5ldyBibG9jayBqdW1wIHRvICdibG9jaycuCi0gICAgcmVzdWx0LT5tX3ZhbHVlc1t2
YWx1ZUluZGV4XSA9Ci0gICAgICAgIG1fcHJvYy5hZGQ8Q29udHJvbFZhbHVlPihKdW1wLCB2YWx1
ZS0+b3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhibG9jaykpOworICAgIHJlc3VsdC0+bV92YWx1
ZXNbdmFsdWVJbmRleF0gPSBtX3Byb2MuYWRkPFZhbHVlPihKdW1wLCB2YWx1ZS0+b3JpZ2luKCkp
OworICAgIHJlc3VsdC0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2soYmxvY2spKTsKIAog
ICAgIC8vIElmIHdlIGhhZCBpbnNlcnRlZCB0aGluZ3MgaW50byAnYmxvY2snIGJlZm9yZSB0aGlz
LCBleGVjdXRlIHRob3NlIGluc2VydGlvbnMgbm93LgogICAgIGlmIChpbnNlcnRpb25TZXQpCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCcmVha0NyaXRpY2FsRWRnZXMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0JyZWFrQ3JpdGljYWxFZGdl
cy5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jy
ZWFrQ3JpdGljYWxFZGdlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDYgQEAKIAog
I2luY2x1ZGUgIkIzQmFzaWNCbG9ja0lubGluZXMuaCIKICNpbmNsdWRlICJCM0Jsb2NrSW5zZXJ0
aW9uU2V0LmgiCi0jaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKICNpbmNsdWRlICJCM1Byb2Nl
ZHVyZUlubGluZXMuaCIKICNpbmNsdWRlICJCM1ZhbHVlSW5saW5lcy5oIgogCkBAIC01MCw4ICs0
OSw4IEBAIHZvaWQgYnJlYWtDcml0aWNhbEVkZ2VzKFByb2NlZHVyZSYgcHJvYykKIAogICAgICAg
ICAgICAgQmFzaWNCbG9jayogcGFkID0KICAgICAgICAgICAgICAgICBpbnNlcnRpb25TZXQuaW5z
ZXJ0QmVmb3JlKHN1Y2Nlc3Nvciwgc3VjY2Vzc29yLT5mcmVxdWVuY3koKSk7Ci0gICAgICAgICAg
ICBwYWQtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAotICAgICAgICAgICAgICAgIHByb2MsIEp1
bXAsIHN1Y2Nlc3Nvci0+YXQoMCktPm9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soc3VjY2Vzc29y
KSk7CisgICAgICAgICAgICBwYWQtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSnVtcCwgc3VjY2Vz
c29yLT5hdCgwKS0+b3JpZ2luKCkpOworICAgICAgICAgICAgcGFkLT5zZXRTdWNjZXNzb3JzKEZy
ZXF1ZW50ZWRCbG9jayhzdWNjZXNzb3IpKTsKICAgICAgICAgICAgIHBhZC0+YWRkUHJlZGVjZXNz
b3IoYmxvY2spOwogICAgICAgICAgICAgc3VjY2Vzc29yLT5yZXBsYWNlUHJlZGVjZXNzb3IoYmxv
Y2ssIHBhZCk7CiAgICAgICAgICAgICBzdWNjZXNzb3IgPSBwYWQ7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNDYXNlQ29sbGVjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzQ2FzZUNvbGxlY3Rpb24uY3BwCShyZXZpc2lvbiAwKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2FzZUNvbGxlY3Rpb24uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkIzQ2FzZUNvbGxlY3Rp
b24uaCIKKworI2lmIEVOQUJMRShCM19KSVQpCisKKyNpbmNsdWRlICJCM0Nhc2VDb2xsZWN0aW9u
SW5saW5lcy5oIgorI2luY2x1ZGUgPHd0Zi9Db21tYVByaW50ZXIuaD4KKworbmFtZXNwYWNlIEpT
QyB7IG5hbWVzcGFjZSBCMyB7CisKK3ZvaWQgQ2FzZUNvbGxlY3Rpb246OmR1bXAoUHJpbnRTdHJl
YW0mIG91dCkgY29uc3QKK3sKKyAgICBDb21tYVByaW50ZXIgY29tbWE7CisgICAgZm9yIChTd2l0
Y2hDYXNlIHN3aXRjaENhc2UgOiAqdGhpcykKKyAgICAgICAgb3V0LnByaW50KGNvbW1hLCBzd2l0
Y2hDYXNlKTsKKyAgICBvdXQucHJpbnQoY29tbWEsICJkZWZhdWx0LT4iLCBmYWxsVGhyb3VnaCgp
KTsKK30KKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzCisKKyNlbmRpZiAvLyBFTkFCTEUoQjNf
SklUKQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDYXNlQ29sbGVjdGlvbi5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nhc2VDb2xsZWN0aW9u
LmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDYXNlQ29sbGVj
dGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIwIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgQjNDYXNlQ29sbGVjdGlvbl9o
CisjZGVmaW5lIEIzQ2FzZUNvbGxlY3Rpb25faAorCisjaWYgRU5BQkxFKEIzX0pJVCkKKworI2lu
Y2x1ZGUgIkIzU3dpdGNoQ2FzZS5oIgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsK
KworY2xhc3MgQmFzaWNCbG9jazsKK2NsYXNzIFN3aXRjaFZhbHVlOworCisvLyBOT1RFOiBZb3Un
bGwgYWx3YXlzIHdhbnQgdG8gaW5jbHVkZSBCM0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oIHdoZW4g
eW91IHVzZSB0aGlzLgorCitjbGFzcyBDYXNlQ29sbGVjdGlvbiB7CitwdWJsaWM6CisgICAgQ2Fz
ZUNvbGxlY3Rpb24oKQorICAgIHsKKyAgICB9CisgICAgCisgICAgQ2FzZUNvbGxlY3Rpb24oU3dp
dGNoVmFsdWUqIHRlcm1pbmFsLCBCYXNpY0Jsb2NrKiBvd25lcikKKyAgICAgICAgOiBtX3N3aXRj
aCh0ZXJtaW5hbCkKKyAgICAgICAgLCBtX293bmVyKG93bmVyKQorICAgIHsKKyAgICB9CisgICAg
CisgICAgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBmYWxsVGhyb3VnaCgpIGNvbnN0OworCisgICAg
dW5zaWduZWQgc2l6ZSgpIGNvbnN0OworICAgIFN3aXRjaENhc2UgYXQodW5zaWduZWQgaW5kZXgp
IGNvbnN0OworICAgIAorICAgIFN3aXRjaENhc2Ugb3BlcmF0b3JbXSh1bnNpZ25lZCBpbmRleCkg
Y29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBhdChpbmRleCk7CisgICAgfQorCisgICAgY2xh
c3MgaXRlcmF0b3IgeworICAgIHB1YmxpYzoKKyAgICAgICAgaXRlcmF0b3IoKQorICAgICAgICAg
ICAgOiBtX3N3aXRjaChudWxscHRyKQorICAgICAgICAgICAgLCBtX2luZGV4KDApCisgICAgICAg
IHsKKyAgICAgICAgfQorCisgICAgICAgIGl0ZXJhdG9yKGNvbnN0IFN3aXRjaFZhbHVlJiBzd2l0
Y2hWYWx1ZSwgdW5zaWduZWQgaW5kZXgpCisgICAgICAgICAgICA6IG1fc3dpdGNoKCZzd2l0Y2hW
YWx1ZSkKKyAgICAgICAgICAgICwgbV9pbmRleChpbmRleCkKKyAgICAgICAgeworICAgICAgICB9
CisKKyAgICAgICAgU3dpdGNoQ2FzZSBvcGVyYXRvciooKQorICAgICAgICB7CisgICAgICAgICAg
ICByZXR1cm4gbV9zd2l0Y2gtPmF0KG1faW5kZXgpOworICAgICAgICB9CisKKyAgICAgICAgaXRl
cmF0b3ImIG9wZXJhdG9yKysoKQorICAgICAgICB7CisgICAgICAgICAgICBtX2luZGV4Kys7Cisg
ICAgICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgICAgIH0KKworICAgICAgICBib29sIG9wZXJh
dG9yPT0oY29uc3QgaXRlcmF0b3ImIG90aGVyKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAg
ICBBU1NFUlQobV9zd2l0Y2ggPT0gb3RoZXIubV9zd2l0Y2gpOworICAgICAgICAgICAgcmV0dXJu
IG1faW5kZXggPT0gb3RoZXIubV9pbmRleDsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2wgb3Bl
cmF0b3IhPShjb25zdCBpdGVyYXRvciYgb3RoZXIpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAg
ICAgIHJldHVybiAhKCp0aGlzID09IG90aGVyKTsKKyAgICAgICAgfQorCisgICAgcHJpdmF0ZToK
KyAgICAgICAgY29uc3QgU3dpdGNoVmFsdWUqIG1fc3dpdGNoOworICAgICAgICB1bnNpZ25lZCBt
X2luZGV4OworICAgIH07CisKKyAgICB0eXBlZGVmIGl0ZXJhdG9yIGNvbnN0X2l0ZXJhdG9yOwor
CisgICAgaXRlcmF0b3IgYmVnaW4oKSBjb25zdCB7IHJldHVybiBpdGVyYXRvcigqdGhpcywgMCk7
IH0KKyAgICBpdGVyYXRvciBlbmQoKSBjb25zdCB7IHJldHVybiBpdGVyYXRvcigqdGhpcywgc2l6
ZSgpKTsgfQorICAgIAorICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0OworICAgIAor
cHJpdmF0ZToKKyAgICBTd2l0Y2hWYWx1ZSogbV9zd2l0Y2ggeyBudWxscHRyIH07CisgICAgQmFz
aWNCbG9jayogbV9vd25lciB7IG51bGxwdHIgfTsKK307CisKK30gfSAvLyBuYW1lc3BhY2UgSlND
OjpCMworCisjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKKworI2VuZGlmIC8vIEIzQ2FzZUNvbGxl
Y3Rpb25faAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDYXNlQ29sbGVjdGlv
bklubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDYXNl
Q29sbGVjdGlvbklubGluZXMuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
NTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lm
bmRlZiBCM0Nhc2VDb2xsZWN0aW9uSW5saW5lc19oCisjZGVmaW5lIEIzQ2FzZUNvbGxlY3Rpb25J
bmxpbmVzX2gKKworI2lmIEVOQUJMRShCM19KSVQpCisKKyNpbmNsdWRlICJCM0Nhc2VDb2xsZWN0
aW9uLmgiCisjaW5jbHVkZSAiQjNTd2l0Y2hWYWx1ZS5oIgorI2luY2x1ZGUgIkIzQmFzaWNCbG9j
ay5oIgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKKworaW5saW5lIGNvbnN0IEZy
ZXF1ZW50ZWRCbG9jayYgQ2FzZUNvbGxlY3Rpb246OmZhbGxUaHJvdWdoKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9vd25lci0+ZmFsbFRocm91Z2goKTsKK30KKworaW5saW5lIHVuc2lnbmVkIENh
c2VDb2xsZWN0aW9uOjpzaXplKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zd2l0Y2gtPm51bUNh
c2VWYWx1ZXMoKTsKK30KKworaW5saW5lIFN3aXRjaENhc2UgQ2FzZUNvbGxlY3Rpb246OmF0KHVu
c2lnbmVkIGluZGV4KSBjb25zdAoreworICAgIHJldHVybiBTd2l0Y2hDYXNlKG1fc3dpdGNoLT5j
YXNlVmFsdWUoaW5kZXgpLCBtX293bmVyLT5zdWNjZXNzb3IoaW5kZXgpKTsKK30KKworfSB9IC8v
IG5hbWVzcGFjZSBKU0M6OkIzCisKKyNlbmRpZiAvLyBFTkFCTEUoQjNfSklUKQorCisjZW5kaWYg
Ly8gQjNDYXNlQ29sbGVjdGlvbklubGluZXNfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNDb21tb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNDb21tb24uaAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzQ29tbW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsNiArMjgsOCBAQAogCiAjaWYgRU5BQkxFKEIz
X0pJVCkKIAorI2luY2x1ZGUgIkpTRXhwb3J0TWFjcm9zLmgiCisKIG5hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgQjMgewogCiBpbmxpbmUgYm9vbCBpczY0Qml0KCkgeyByZXR1cm4gc2l6ZW9mKHZv
aWQqKSA9PSA4OyB9CkBAIC0zOCw3ICs0MCw3IEBAIGVudW0gQjNDb21wbGl0YXRpb25Nb2RlIHsK
ICAgICBBaXJNb2RlCiB9OwogCi1ib29sIHNob3VsZER1bXBJUihCM0NvbXBsaXRhdGlvbk1vZGUp
OworSlNfRVhQT1JUX1BSSVZBVEUgYm9vbCBzaG91bGREdW1wSVIoQjNDb21wbGl0YXRpb25Nb2Rl
KTsKIGJvb2wgc2hvdWxkRHVtcElSQXRFYWNoUGhhc2UoQjNDb21wbGl0YXRpb25Nb2RlKTsKIGJv
b2wgc2hvdWxkVmFsaWRhdGVJUigpOwogYm9vbCBzaG91bGRWYWxpZGF0ZUlSQXRFYWNoUGhhc2Uo
KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnRyb2xWYWx1ZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnRyb2xWYWx1ZS5oCShyZXZp
c2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb250cm9sVmFsdWUu
aAkod29ya2luZyBjb3B5KQpAQCAtNDYsOSArNDYsMTAgQEAgcHVibGljOgogICAgICAgICBjYXNl
IFJldHVybjoKICAgICAgICAgY2FzZSBPb3BzOgogICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICAgICAgIGNhc2UgU3dpdGNoOiAKLSAgICAgICAgICAgIC8vIFRoaXMgaXMgaGVyZSBiZWNhdXNl
IFN3aXRjaFZhbHVlIGlzIGEgc3ViY2xhc3Mgb2YgQ29udHJvbFZhbHVlLCBzbyB3ZSB3YW50Ci0g
ICAgICAgICAgICAvLyBzd2l0Y2hWYWx1ZS0+YXM8Q29udHJvbFZhbHVlPigpIHRvIHJldHVybiBu
b24tbnVsbC4KKyAgICAgICAgY2FzZSBTd2l0Y2g6CisgICAgICAgIGNhc2UgUG9seUp1bXA6Cisg
ICAgICAgICAgICAvLyBUaGlzIGlzIGhlcmUgYmVjYXVzZSBTd2l0Y2hWYWx1ZSBhbmQgUG9seUp1
bXBWYWx1ZSBhcmUgc3ViY2xhc3NlcyBvZiBDb250cm9sVmFsdWUsCisgICAgICAgICAgICAvLyBz
byB3ZSB3YW50IHRoaW5ncyBsaWtlIHN3aXRjaFZhbHVlLT5hczxDb250cm9sVmFsdWU+KCkgdG8g
cmV0dXJuIG5vbi1udWxsLgogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGRlZmF1
bHQ6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC03Nyw3ICs3OCw3IEBAIHB1YmxpYzoK
ICAgICB9CiAKICAgICBib29sIHJlcGxhY2VTdWNjZXNzb3IoQmFzaWNCbG9jayogZnJvbSwgQmFz
aWNCbG9jayogdG8pOwotCisgICAgCiAgICAgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YWtlbigp
IGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQob3Bjb2RlKCkgPT0gSnVtcCB8fCBvcGNvZGUo
KSA9PSBCcmFuY2gpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRGF0YVNlY3Rp
b24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0RhdGFTZWN0
aW9uLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
RGF0YVNlY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMxLDcgKzMxLDcgQEAKIG5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgQjMgewogCiBEYXRhU2VjdGlvbjo6RGF0YVNlY3Rpb24oc2l6ZV90IHNp
emUpCi0gICAgOiBtX2RhdGEoZmFzdE1hbGxvYyhzaXplKSkKKyAgICA6IG1fZGF0YShmYXN0WmVy
b2VkTWFsbG9jKHNpemUpKQogICAgICwgbV9zaXplKHNpemUpCiB7CiB9CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNEdXBsaWNhdGVUYWlscy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRHVwbGljYXRlVGFpbHMuY3BwCShyZXZpc2lvbiAyMDI4
MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEdXBsaWNhdGVUYWlscy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDYgQEAKIAogI2luY2x1ZGUgIkIzQmFzaWNCbG9ja0lu
bGluZXMuaCIKICNpbmNsdWRlICJCM0JyZWFrQ3JpdGljYWxFZGdlcy5oIgotI2luY2x1ZGUgIkIz
Q29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNEb21pbmF0b3JzLmgiCiAjaW5jbHVkZSAiQjNG
aXhTU0EuaCIKICNpbmNsdWRlICJCM0luZGV4U2V0LmgiCkBAIC03Miw5ICs3MSwxMSBAQCBwdWJs
aWM6CiAgICAgICAgIEluZGV4U2V0PEJhc2ljQmxvY2s+IGNhbmRpZGF0ZXM7CiAKICAgICAgICAg
Zm9yIChCYXNpY0Jsb2NrKiBibG9jayA6IG1fcHJvYykgewotICAgICAgICAgICAgaWYgKGJsb2Nr
LT5zaXplKCkgPiBtX21heFNpemUgfHwgYmxvY2stPm51bVN1Y2Nlc3NvcnMoKSA+IG1fbWF4U3Vj
Y2Vzc29ycykKKyAgICAgICAgICAgIGlmIChibG9jay0+c2l6ZSgpID4gbV9tYXhTaXplCisgICAg
ICAgICAgICAgICAgfHwgYmxvY2stPm51bVN1Y2Nlc3NvcnMoKSA+IG1fbWF4U3VjY2Vzc29ycwor
ICAgICAgICAgICAgICAgIHx8ICFibG9jay0+aXNDbG9uZWFibGUoKSkKICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKLQorICAgICAgICAgICAgCiAgICAgICAgICAgICBjYW5kaWRhdGVzLmFkZChi
bG9jayk7CiAgICAgICAgIH0KIApAQCAtOTcsMTEgKzk4LDEwIEBAIHB1YmxpYzoKICAgICAgICAg
fQogCiAgICAgICAgIGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiBtX3Byb2MpIHsKLSAgICAgICAg
ICAgIENvbnRyb2xWYWx1ZSoganVtcCA9IGJsb2NrLT5sYXN0KCktPmFzPENvbnRyb2xWYWx1ZT4o
KTsKLSAgICAgICAgICAgIGlmIChqdW1wLT5vcGNvZGUoKSAhPSBKdW1wKQorICAgICAgICAgICAg
aWYgKGJsb2NrLT5sYXN0KCktPm9wY29kZSAhPSBKdW1wKQogICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwogCi0gICAgICAgICAgICBCYXNpY0Jsb2NrKiB0YWlsID0ganVtcC0+c3VjY2Vzc29yQmxv
Y2soMCk7CisgICAgICAgICAgICBCYXNpY0Jsb2NrKiB0YWlsID0gYmxvY2stPnN1Y2Nlc3NvckJs
b2NrKDApOwogICAgICAgICAgICAgaWYgKCFjYW5kaWRhdGVzLmNvbnRhaW5zKHRhaWwpKQogICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOwogCkBAIC0xMzAsNiArMTMwLDcgQEAgcHVibGljOgogICAg
ICAgICAgICAgICAgICAgICBtYXAuYWRkKHZhbHVlLCBjbG9uZSk7CiAgICAgICAgICAgICAgICAg
YmxvY2stPmFwcGVuZChjbG9uZSk7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICBibG9jay0+
c3VjY2Vzc29ycygpID0gdGFpbC0+c3VjY2Vzc29ycygpOwogICAgICAgICB9CiAKICAgICAgICAg
bV9wcm9jLnJlc2V0UmVhY2hhYmlsaXR5KCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNGaXhTU0EuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0ZpeFNTQS5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM0ZpeFNTQS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDYgQEAKIAogI2luY2x1
ZGUgIkIzQmFzaWNCbG9ja0lubGluZXMuaCIKICNpbmNsdWRlICJCM0JyZWFrQ3JpdGljYWxFZGdl
cy5oIgotI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNEb21pbmF0b3Jz
LmgiCiAjaW5jbHVkZSAiQjNJbmRleFNldC5oIgogI2luY2x1ZGUgIkIzSW5zZXJ0aW9uU2V0SW5s
aW5lcy5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRm9sZFBhdGhDb25zdGFu
dHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0ZvbGRQYXRo
Q29uc3RhbnRzLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzRm9sZFBhdGhDb25zdGFudHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw2
IEBACiAjaWYgRU5BQkxFKEIzX0pJVCkKIAogI2luY2x1ZGUgIkIzQmFzaWNCbG9ja0lubGluZXMu
aCIKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzRG9taW5hdG9ycy5o
IgogI2luY2x1ZGUgIkIzSW5zZXJ0aW9uU2V0SW5saW5lcy5oIgogI2luY2x1ZGUgIkIzUGhhc2VT
Y29wZS5oIgpAQCAtODcsMjQgKzg2LDI0IEBAIHB1YmxpYzoKICAgICAgICAgfTsKICAgICAgICAg
CiAgICAgICAgIGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiBtX3Byb2MpIHsKLSAgICAgICAgICAg
IENvbnRyb2xWYWx1ZSogYnJhbmNoID0gYmxvY2stPmxhc3QoKS0+YXM8Q29udHJvbFZhbHVlPigp
OworICAgICAgICAgICAgVmFsdWUqIGJyYW5jaCA9IGJsb2NrLT5sYXN0KCk7CiAgICAgICAgICAg
ICBzd2l0Y2ggKGJyYW5jaC0+b3Bjb2RlKCkpIHsKICAgICAgICAgICAgIGNhc2UgQnJhbmNoOgot
ICAgICAgICAgICAgICAgIGlmIChicmFuY2gtPnN1Y2Nlc3NvckJsb2NrKDApID09IGJyYW5jaC0+
c3VjY2Vzc29yQmxvY2soMSkpCisgICAgICAgICAgICAgICAgaWYgKGJsb2NrLT5zdWNjZXNzb3JC
bG9jaygwKSA9PSBibG9jay0+c3VjY2Vzc29yQmxvY2soMSkpCiAgICAgICAgICAgICAgICAgICAg
IGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIGFkZE92ZXJyaWRlKAogICAgICAgICAgICAgICAg
ICAgICBibG9jaywgYnJhbmNoLT5jaGlsZCgwKSwKLSAgICAgICAgICAgICAgICAgICAgT3ZlcnJp
ZGU6Om5vblplcm8oYnJhbmNoLT5zdWNjZXNzb3JCbG9jaygwKSkpOworICAgICAgICAgICAgICAg
ICAgICBPdmVycmlkZTo6bm9uWmVybyhibG9jay0+c3VjY2Vzc29yQmxvY2soMCkpKTsKICAgICAg
ICAgICAgICAgICBhZGRPdmVycmlkZSgKICAgICAgICAgICAgICAgICAgICAgYmxvY2ssIGJyYW5j
aC0+Y2hpbGQoMCksCi0gICAgICAgICAgICAgICAgICAgIE92ZXJyaWRlOjpjb25zdGFudChicmFu
Y2gtPnN1Y2Nlc3NvckJsb2NrKDEpLCAwKSk7CisgICAgICAgICAgICAgICAgICAgIE92ZXJyaWRl
Ojpjb25zdGFudChibG9jay0+c3VjY2Vzc29yQmxvY2soMSksIDApKTsKICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgIGNhc2UgU3dpdGNoOiB7CiAgICAgICAgICAgICAgICAgSGFz
aE1hcDxCYXNpY0Jsb2NrKiwgdW5zaWduZWQ+IHRhcmdldFVzZXM7Ci0gICAgICAgICAgICAgICAg
Zm9yIChjb25zdCBTd2l0Y2hDYXNlJiBzd2l0Y2hDYXNlIDogKmJyYW5jaC0+YXM8U3dpdGNoVmFs
dWU+KCkpCisgICAgICAgICAgICAgICAgZm9yIChjb25zdCBTd2l0Y2hDYXNlJiBzd2l0Y2hDYXNl
IDogYnJhbmNoLT5hczxTd2l0Y2hWYWx1ZT4oKS0+Y2FzZXMoYmxvY2spKQogICAgICAgICAgICAg
ICAgICAgICB0YXJnZXRVc2VzLmFkZChzd2l0Y2hDYXNlLnRhcmdldEJsb2NrKCksIDApLml0ZXJh
dG9yLT52YWx1ZSsrOwogCi0gICAgICAgICAgICAgICAgZm9yIChjb25zdCBTd2l0Y2hDYXNlJiBz
d2l0Y2hDYXNlIDogKmJyYW5jaC0+YXM8U3dpdGNoVmFsdWU+KCkpIHsKKyAgICAgICAgICAgICAg
ICBmb3IgKGNvbnN0IFN3aXRjaENhc2UmIHN3aXRjaENhc2UgOiBicmFuY2gtPmFzPFN3aXRjaFZh
bHVlPigpLT5jYXNlcyhibG9jaykpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKHRhcmdldFVz
ZXMuZmluZChzd2l0Y2hDYXNlLnRhcmdldEJsb2NrKCkpLT52YWx1ZSAhPSAxKQogICAgICAgICAg
ICAgICAgICAgICAgICAgY29udGludWU7CiAKQEAgLTE1OCw5ICsxNTcsOCBAQCBwdWJsaWM6CiAK
ICAgICAgICAgICAgICAgICBzd2l0Y2ggKHZhbHVlLT5vcGNvZGUoKSkgewogICAgICAgICAgICAg
ICAgIGNhc2UgQnJhbmNoOiB7Ci0gICAgICAgICAgICAgICAgICAgIENvbnRyb2xWYWx1ZSogYnJh
bmNoID0gdmFsdWUtPmFzPENvbnRyb2xWYWx1ZT4oKTsKICAgICAgICAgICAgICAgICAgICAgaWYg
KGdldE92ZXJyaWRlKGJsb2NrLCBicmFuY2gtPmNoaWxkKDApKS5pc05vblplcm8pIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGJyYW5jaC0+Y29udmVydFRvSnVtcChicmFuY2gtPnRha2VuKCku
YmxvY2soKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZS0+cmVwbGFjZVdpdGhKdW1w
KGJsb2NrLCBibG9jay0+dGFrZW4oKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2Vk
ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICBicmVh
azsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyTWFjcm9zLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlck1hY3Jvcy5jcHAJKHJl
dmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyTWFjcm9z
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0zNCw3ICszNCw5IEBACiAjaW5jbHVkZSAiQjNDb25zdFB0clZh
bHVlLmgiCiAjaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKICNpbmNsdWRlICJCM0luc2VydGlv
blNldElubGluZXMuaCIKKyNpbmNsdWRlICJCM01lbW9yeVZhbHVlLmgiCiAjaW5jbHVkZSAiQjNQ
aGFzZVNjb3BlLmgiCisjaW5jbHVkZSAiQjNQb2x5SnVtcFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNQ
cm9jZWR1cmVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNTd2l0Y2hWYWx1ZS5oIgogI2luY2x1ZGUg
IkIzVXBzaWxvblZhbHVlLmgiCkBAIC0xNDcsNyArMTQ5LDcgQEAgcHJpdmF0ZToKICAgICAgICAg
ICAgIGNhc2UgU3dpdGNoOiB7CiAgICAgICAgICAgICAgICAgU3dpdGNoVmFsdWUqIHN3aXRjaFZh
bHVlID0gbV92YWx1ZS0+YXM8U3dpdGNoVmFsdWU+KCk7CiAgICAgICAgICAgICAgICAgVmVjdG9y
PFN3aXRjaENhc2U+IGNhc2VzOwotICAgICAgICAgICAgICAgIGZvciAoY29uc3QgU3dpdGNoQ2Fz
ZSYgc3dpdGNoQ2FzZSA6ICpzd2l0Y2hWYWx1ZSkKKyAgICAgICAgICAgICAgICBmb3IgKGNvbnN0
IFN3aXRjaENhc2UmIHN3aXRjaENhc2UgOiBzd2l0Y2hWYWx1ZS0+Y2FzZXMobV9ibG9jaykpCiAg
ICAgICAgICAgICAgICAgICAgIGNhc2VzLmFwcGVuZChzd2l0Y2hDYXNlKTsKICAgICAgICAgICAg
ICAgICBzdGQ6OnNvcnQoCiAgICAgICAgICAgICAgICAgICAgIGNhc2VzLmJlZ2luKCksIGNhc2Vz
LmVuZCgpLApAQCAtMjc1LDggKzI3NywxMDcgQEAgcHJpdmF0ZToKICAgICAgICAgY29uc3QgVmVj
dG9yPFN3aXRjaENhc2U+JiBjYXNlcywgdW5zaWduZWQgc3RhcnQsIGJvb2wgaGFyZFN0YXJ0LCB1
bnNpZ25lZCBlbmQsCiAgICAgICAgIEJhc2ljQmxvY2sqIGJlZm9yZSkKICAgICB7Ci0gICAgICAg
IC8vIEZJWE1FOiBBZGQgdGFibGUtYmFzZWQgc3dpdGNoIGxvd2VyaW5nLgotICAgICAgICAvLyBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxMTQxCisgICAgICAgIFZh
bHVlKiBjaGlsZCA9IG1fdmFsdWUtPmNoaWxkKDApOworICAgICAgICBUeXBlIHR5cGUgPSBjaGls
ZC0+dHlwZSgpOworICAgICAgICBGcmVxdWVudGVkQmxvY2sgZmFsbFRocm91Z2ggPSBtX2Jsb2Nr
LT5mYWxsVGhyb3VnaCgpOworICAgICAgICAKKyAgICAgICAgLy8gSXQncyBhIGdvb2QgaWRlYSB0
byB1c2UgYSB0YWJsZS1iYXNlZCBzd2l0Y2ggaW4gc29tZSBjYXNlczogdGhlIG51bWJlciBvZiBj
YXNlcyBoYXMgdG8gYmUKKyAgICAgICAgLy8gbGFyZ2UgZW5vdWdoIGFuZCB0aGV5IGhhdmUgdG8g
YmUgZGVuc2UgZW5vdWdoLiBUaGlzIGNvdWxkIHByb2JhYmx5IGJlIGltcHJvdmVkIGEgbG90LiBG
b3IKKyAgICAgICAgLy8gZXhhbXBsZSwgd2UgY291bGQgc3RpbGwgdXNlIGEganVtcCB0YWJsZSBp
biBjYXNlcyB3aGVyZSB0aGUgaW5wdXRzIGFyZSBzcGFyc2Ugc28gbG9uZyBhcyB3ZQorICAgICAg
ICAvLyBzaGlmdCBvZmYgdGhlIHVuaW50ZXJlc3RpbmcgYml0cy4gT24gdGhlIG90aGVyIGhhbmQs
IGl0J3Mgbm90IGNsZWFyIHRoYXQgdGhpcyB3b3VsZAorICAgICAgICAvLyBhY3R1YWxseSBiZSBh
bnkgYmV0dGVyIHRoYW4gd2hhdCB3ZSBoYXZlIGRvbmUgaGVyZSBhbmQgaXQncyBub3QgY2xlYXIg
dGhhdCBpdCB3b3VsZCBiZQorICAgICAgICAvLyBiZXR0ZXIgdGhhbiBhIGJpbmFyeSBzd2l0Y2gu
CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIG1pbkNhc2VzRm9yVGFibGUgPSA3OworICAgICAgICBj
b25zdCB1bnNpZ25lZCBkZW5zaXR5TGltaXQgPSA0OworICAgICAgICBpZiAoZW5kIC0gc3RhcnQg
Pj0gbWluQ2FzZXNGb3JUYWJsZSkgeworICAgICAgICAgICAgaW50NjRfdCBmaXJzdFZhbHVlID0g
Y2FzZXNbc3RhcnRdLmNhc2VWYWx1ZSgpOworICAgICAgICAgICAgaW50NjRfdCBsYXN0VmFsdWUg
PSBjYXNlc1tlbmQgLSAxXS5jYXNlVmFsdWUoKTsKKyAgICAgICAgICAgIGlmICgobGFzdFZhbHVl
IC0gZmlyc3RWYWx1ZSArIDEpIC8gY2FzZXMuc2l6ZSgpIDwgZGVuc2l0eUxpbWl0KSB7CisgICAg
ICAgICAgICAgICAgQmFzaWNCbG9jayogc3dpdGNoQmxvY2sgPSBtX2Jsb2NrSW5zZXJ0aW9uU2V0
Lmluc2VydEFmdGVyKG1fYmxvY2spOworICAgICAgICAgICAgICAgIFZhbHVlKiBpbmRleCA9IGJl
Zm9yZS0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBTdWIs
IG1fb3JpZ2luLCBjaGlsZCwKKyAgICAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmRJbnRD
b25zdGFudChtX3Byb2MsIG1fb3JpZ2luLCB0eXBlLCBmaXJzdFZhbHVlKSk7CisgICAgICAgICAg
ICAgICAgYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgICAgICAgICBtX3By
b2MsIEJyYW5jaCwgbV9vcmlnaW4sCisgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5k
TmV3PFZhbHVlPigKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgQWJvdmUsIG1fb3Jp
Z2luLCBpbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kSW50Q29u
c3RhbnQobV9wcm9jLCBtX29yaWdpbiwgdHlwZSwgbGFzdFZhbHVlIC0gZmlyc3RWYWx1ZSkpKTsK
KyAgICAgICAgICAgICAgICBiZWZvcmUtPnNldFN1Y2Nlc3NvcnMoZmFsbFRocm91Z2gsIEZyZXF1
ZW50ZWRCbG9jayhzd2l0Y2hCbG9jaykpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAg
ICAgIHNpemVfdCB0YWJsZVNpemUgPSBsYXN0VmFsdWUgLSBmaXJzdFZhbHVlICsgMTsKKyAgICAg
ICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoaW5kZXgtPnR5cGUoKSAhPSBiYXNlLT50
eXBlKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGluZGV4LT50eXBlKCkgPT0gSW50MzIp
CisgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9IHN3aXRjaEJsb2NrLT5hcHBlbmROZXc8
VmFsdWU+KG1fcHJvYywgWkV4dDMyLCBtX29yaWdpbiwgaW5kZXgpOworICAgICAgICAgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9IHN3aXRjaEJsb2NrLT5h
cHBlbmROZXc8VmFsdWU+KG1fcHJvYywgVHJ1bmMsIG1fb3JpZ2luLCBpbmRleCk7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFBhdGNocG9pbnRW
YWx1ZSogcGF0Y2hwb2ludCA9CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaEJsb2NrLT5hcHBl
bmROZXc8UGF0Y2hwb2ludFZhbHVlPihtX3Byb2MsIFZvaWQsIG1fb3JpZ2luKTsKKyAgICAgICAg
ICAgICAgICAKKyAgICAgICAgICAgICAgICBwYXRjaHBvaW50LT5lZmZlY3RzLnRlcm1pbmFsID0g
dHJ1ZTsKKyAgICAgICAgICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmRTb21lUmVnaXN0ZXIoaW5k
ZXgpOworICAgICAgICAgICAgICAgIHBhdGNocG9pbnQtPm51bUdQU2NyYXRjaFJlZ2lzdGVycysr
OworICAgICAgICAgICAgICAgIC8vIFRlY2huaWNhbGx5LCB3ZSBkb24ndCBoYXZlIHRvIGNsb2Ji
ZXIgbWFjcm8gcmVnaXN0ZXJzIG9uIFg4Nl82NC4gVGhhdCdzIHByb2JhYmx5CisgICAgICAgICAg
ICAgICAgLy8gT0sgdGhvdWdoLgorICAgICAgICAgICAgICAgIHBhdGNocG9pbnQtPmNsb2JiZXIo
UmVnaXN0ZXJTZXQ6Om1hY3JvU2NyYXRjaFJlZ2lzdGVycygpKTsKKyAgICAgICAgICAgICAgICAK
KyAgICAgICAgICAgICAgICBCaXRWZWN0b3IgaGFuZGxlZEluZGljZXM7CisgICAgICAgICAgICAg
ICAgZm9yICh1bnNpZ25lZCBpID0gc3RhcnQ7IGkgPCBlbmQ7ICsraSkgeworICAgICAgICAgICAg
ICAgICAgICBGcmVxdWVudGVkQmxvY2sgYmxvY2sgPSBjYXNlc1tpXS50YXJnZXQoKTsKKyAgICAg
ICAgICAgICAgICAgICAgaW50NjRfdCB2YWx1ZSA9IGNhc2VzW2ldLmNhc2VWYWx1ZSgpOworICAg
ICAgICAgICAgICAgICAgICBzd2l0Y2hCbG9jay0+YXBwZW5kU3VjY2Vzc29yKGJsb2NrKTsKKyAg
ICAgICAgICAgICAgICAgICAgc2l6ZV90IGluZGV4ID0gdmFsdWUgLSBmaXJzdFZhbHVlOworICAg
ICAgICAgICAgICAgICAgICBBU1NFUlQoIWhhbmRsZWRJbmRpY2VzLmdldChpbmRleCkpOworICAg
ICAgICAgICAgICAgICAgICBoYW5kbGVkSW5kaWNlcy5zZXQoaW5kZXgpOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBib29sIGhhc1VuaGFuZGxl
ZEluZGV4ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IHRhYmxlU2l6ZTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghaGFuZGxlZEluZGlj
ZXMuZ2V0KGkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBoYXNVbmhhbmRsZWRJbmRleCA9
IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAg
ICBpZiAoaGFzVW5oYW5kbGVkSW5kZXgpCisgICAgICAgICAgICAgICAgICAgIHN3aXRjaEJsb2Nr
LT5hcHBlbmRTdWNjZXNzb3IoZmFsbFRocm91Z2gpOworCisgICAgICAgICAgICAgICAgcGF0Y2hw
b2ludC0+c2V0R2VuZXJhdG9yKAorICAgICAgICAgICAgICAgICAgICBbPV0gKENDYWxsSGVscGVy
cyYgaml0LCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmIHBhcmFtcykgeworICAgICAg
ICAgICAgICAgICAgICAgICAgQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlIGFsbG93U2Ny
YXRjaChqaXQpOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAg
ICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIqIGp1bXBUYWJsZSA9IHBhcmFtcy5wcm9jKCkuYWRk
RGF0YVNlY3Rpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKE1hY3JvQXNz
ZW1ibGVyQ29kZVB0cikgKiB0YWJsZVNpemUpOworICAgICAgICAgICAgICAgICAgICAgICAgCisg
ICAgICAgICAgICAgICAgICAgICAgICBHUFJSZWcgaW5kZXggPSBwYXJhbXNbMF0uZ3ByKCk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBHUFJSZWcgc2NyYXRjaCA9IHBhcmFtcy5ncFNjcmF0Y2go
MCk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGpp
dC5tb3ZlKFRydXN0ZWRJbW1QdHIoanVtcFRhYmxlKSwgc2NyYXRjaCk7CisgICAgICAgICAgICAg
ICAgICAgICAgICBqaXQuanVtcChDQ2FsbEhlbHBlcnM6OkJhc2VJbmRleChzY3JhdGNoLCBpbmRl
eCwgQ0NhbGxIZWxwZXJzOjp0aW1lc1B0cigpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAK
KyAgICAgICAgICAgICAgICAgICAgICAgIFZlY3RvcjxCb3g8Q0NhbGxIZWxwZXJzOjpMYWJlbD4+
IGxhYmVscyA9IHBhcmFtcy5zdWNjZXNzb3JMYWJlbHMoKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgaml0LmFkZExpbmtUYXNrKAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFs9XSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGFzVW5oYW5kbGVkSW5kZXgpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBmYWxs
VGhyb3VnaCA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlua0J1
ZmZlci5sb2NhdGlvbk9mKCpsYWJlbHMubGFzdCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IHRhYmxlU2l6ZTsgaS0tOykKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqdW1wVGFibGVbaV0gPSBmYWxsVGhyb3Vn
aDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg
bGFiZWxJbmRleCA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodW5z
aWduZWQgdGFibGVJbmRleCA6IGhhbmRsZWRJbmRpY2VzKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBqdW1wVGFibGVbdGFibGVJbmRleF0gPQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmtCdWZmZXIubG9jYXRpb25PZigqbGFiZWxzW2xh
YmVsSW5kZXgrK10pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgICAgICAKICAg
ICAgICAgLy8gU2VlIGNvbW1lbnRzIGluIGppdC9CaW5hcnlTd2l0Y2guY3BwIGZvciBhIGp1c3Rp
ZmljYXRpb24gb2YgdGhpcyBhbGdvcml0aG0uIFRoZSBvbmx5CiAgICAgICAgIC8vIHRoaW5nIHdl
IGRvIGRpZmZlcmVudGx5IGlzIHRoYXQgd2UgZG9uJ3QgdXNlIHJhbmRvbW5lc3MuCkBAIC0zMDQs
MjUgKzQwNSwyMyBAQCBwcml2YXRlOgogICAgICAgICAgICAgCiAgICAgICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbGltaXQ7ICsraSkgewogICAgICAgICAgICAgICAgIEJhc2ljQmxv
Y2sqIG5leHRDaGVjayA9IG1fYmxvY2tJbnNlcnRpb25TZXQuaW5zZXJ0QWZ0ZXIobV9ibG9jayk7
Ci0gICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAg
ICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICAgICAgICAg
IG1fcHJvYywgQnJhbmNoLCBtX29yaWdpbiwKICAgICAgICAgICAgICAgICAgICAgYmVmb3JlLT5h
cHBlbmROZXc8VmFsdWU+KAotICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBFcXVhbCwg
bV9vcmlnaW4sIG1fdmFsdWUtPmNoaWxkKDApLAorICAgICAgICAgICAgICAgICAgICAgICAgbV9w
cm9jLCBFcXVhbCwgbV9vcmlnaW4sIGNoaWxkLAogICAgICAgICAgICAgICAgICAgICAgICAgYmVm
b3JlLT5hcHBlbmRJbnRDb25zdGFudCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3By
b2MsIG1fb3JpZ2luLCBtX3ZhbHVlLT5jaGlsZCgwKS0+dHlwZSgpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNhc2VzW3N0YXJ0ICsgaV0uY2FzZVZhbHVlKCkpKSwKLSAgICAgICAgICAg
ICAgICAgICAgY2FzZXNbc3RhcnQgKyBpXS50YXJnZXQoKSwgRnJlcXVlbnRlZEJsb2NrKG5leHRD
aGVjaykpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgbV9vcmlnaW4sIHR5
cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZXNbc3RhcnQgKyBpXS5jYXNlVmFs
dWUoKSkpKTsKKyAgICAgICAgICAgICAgICBiZWZvcmUtPnNldFN1Y2Nlc3NvcnMoY2FzZXNbc3Rh
cnQgKyBpXS50YXJnZXQoKSwgRnJlcXVlbnRlZEJsb2NrKG5leHRDaGVjaykpOwogCiAgICAgICAg
ICAgICAgICAgYmVmb3JlID0gbmV4dENoZWNrOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAg
ICBpZiAoYWxsQ29uc2VjdXRpdmUpIHsKLSAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAotICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIEp1bXAsIG1fb3Jp
Z2luLCBjYXNlc1tlbmQgLSAxXS50YXJnZXQoKSk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCi0gICAgICAgICAg
ICAgICAgICAgIG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIG1fdmFsdWUtPmFzPFN3aXRjaFZhbHVl
PigpLT5mYWxsVGhyb3VnaCgpKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJlZm9yZS0+
YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIEp1bXAsIG1fb3JpZ2luKTsKKyAgICAgICAgICAgIGlm
IChhbGxDb25zZWN1dGl2ZSkKKyAgICAgICAgICAgICAgICBiZWZvcmUtPnNldFN1Y2Nlc3NvcnMo
Y2FzZXNbZW5kIC0gMV0udGFyZ2V0KCkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgIGJlZm9yZS0+c2V0U3VjY2Vzc29ycyhmYWxsVGhyb3VnaCk7CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KIApAQCAtMzMxLDE0ICs0MzAsMTQgQEAgcHJpdmF0ZToKICAgICAgICAg
QmFzaWNCbG9jayogbGVmdCA9IG1fYmxvY2tJbnNlcnRpb25TZXQuaW5zZXJ0QWZ0ZXIobV9ibG9j
ayk7CiAgICAgICAgIEJhc2ljQmxvY2sqIHJpZ2h0ID0gbV9ibG9ja0luc2VydGlvblNldC5pbnNl
cnRBZnRlcihtX2Jsb2NrKTsKIAotICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBtX3By
b2MsIEJyYW5jaCwgbV9vcmlnaW4sCiAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1
ZT4oCi0gICAgICAgICAgICAgICAgbV9wcm9jLCBMZXNzVGhhbiwgbV9vcmlnaW4sIG1fdmFsdWUt
PmNoaWxkKDApLAorICAgICAgICAgICAgICAgIG1fcHJvYywgTGVzc1RoYW4sIG1fb3JpZ2luLCBj
aGlsZCwKICAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZEludENvbnN0YW50KAotICAgICAg
ICAgICAgICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLCBtX3ZhbHVlLT5jaGlsZCgwKS0+dHlwZSgp
LAotICAgICAgICAgICAgICAgICAgICBjYXNlc1ttZWRpYW5JbmRleF0uY2FzZVZhbHVlKCkpKSwK
LSAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhsZWZ0KSwgRnJlcXVlbnRlZEJsb2NrKHJpZ2h0
KSk7CisgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgbV9vcmlnaW4sIHR5cGUsCisgICAgICAg
ICAgICAgICAgICAgIGNhc2VzW21lZGlhbkluZGV4XS5jYXNlVmFsdWUoKSkpKTsKKyAgICAgICAg
YmVmb3JlLT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhsZWZ0KSwgRnJlcXVlbnRlZEJs
b2NrKHJpZ2h0KSk7CiAKICAgICAgICAgcmVjdXJzaXZlbHlCdWlsZFN3aXRjaChjYXNlcywgc3Rh
cnQsIGhhcmRTdGFydCwgbWVkaWFuSW5kZXgsIGxlZnQpOwogICAgICAgICByZWN1cnNpdmVseUJ1
aWxkU3dpdGNoKGNhc2VzLCBtZWRpYW5JbmRleCwgdHJ1ZSwgZW5kLCByaWdodCk7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAkocmV2aXNpb24gMjAyODA5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE1NSw3ICsxNTUsNiBAQCBwdWJsaWM6CiAgICAgICAgICAgICB9CiAKICAgICAg
ICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBzdWNjZXNzb3JzIGFyZSBzZXQgdXAgY29ycmVj
dGx5LgotICAgICAgICAgICAgQVNTRVJUKGJsb2NrLT5zdWNjZXNzb3JzKCkuc2l6ZSgpIDw9IDIp
OwogICAgICAgICAgICAgZm9yIChCMzo6RnJlcXVlbnRlZEJsb2NrIHN1Y2Nlc3NvciA6IGJsb2Nr
LT5zdWNjZXNzb3JzKCkpIHsKICAgICAgICAgICAgICAgICBtX2Jsb2NrVG9CbG9ja1tibG9ja10t
PnN1Y2Nlc3NvcnMoKS5hcHBlbmQoCiAgICAgICAgICAgICAgICAgICAgIEFpcjo6RnJlcXVlbnRl
ZEJsb2NrKG1fYmxvY2tUb0Jsb2NrW3N1Y2Nlc3Nvci5ibG9jaygpXSwgc3VjY2Vzc29yLmZyZXF1
ZW5jeSgpKSk7CkBAIC0yNDQxLDYgKzI0NDAsMTYgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIGNh
c2UgQjM6OlBvbHlKdW1wOiB7CisgICAgICAgICAgICBBcmdQcm9taXNlIGFkZHIgPSBsb2FkUHJv
bWlzZShtX3ZhbHVlLT5jaGlsZCgwKSk7CisgICAgICAgICAgICBpZiAoaXNWYWxpZEZvcm0oQWly
OjpQb2x5SnVtcCwgYWRkci5raW5kKCkpKSB7CisgICAgICAgICAgICAgICAgYXBwZW5kKEFpcjo6
UG9seUp1bXAsIGFkZHIuY29uc3VtZSgqdGhpcykpOworICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGFwcGVuZChBaXI6OlBvbHlKdW1wLCB0bXAobV92
YWx1ZS0+Y2hpbGQoMCkpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogCiAgICAg
ICAgIGNhc2UgQjM6Ok9vcHM6IHsKICAgICAgICAgICAgIGFwcGVuZChBaXI6Ok9vcHMpOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTWF0aEV4dHJhcy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTWF0aEV4dHJhcy5jcHAJKHJldmlzaW9uIDIw
MjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM01hdGhFeHRyYXMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTMzLDcgKzMzLDYgQEAKICNpbmNsdWRlICJCM0NvbnN0MzJWYWx1ZS5oIgogI2lu
Y2x1ZGUgIkIzQ29uc3REb3VibGVWYWx1ZS5oIgogI2luY2x1ZGUgIkIzQ29uc3RQdHJWYWx1ZS5o
IgotI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNVcHNpbG9uVmFsdWUu
aCIKICNpbmNsdWRlICJCM1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIk1hdGhDb21tb24uaCIK
QEAgLTUyLDEwICs1MSw4IEBAIHN0ZDo6cGFpcjxCYXNpY0Jsb2NrKiwgVmFsdWUqPiBwb3dEb3Vi
bGUKICAgICBWYWx1ZSogc2hvdWxkR29TbG93UGF0aCA9IHN0YXJ0LT5hcHBlbmROZXc8VmFsdWU+
KHByb2NlZHVyZSwgQWJvdmUsIG9yaWdpbiwKICAgICAgICAgeSwKICAgICAgICAgc3RhcnQtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2NlZHVyZSwgb3JpZ2luLCBtYXhFeHBvbmVudEZvcklu
dGVnZXJNYXRoUG93KSk7Ci0gICAgc3RhcnQtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAotICAg
ICAgICBwcm9jZWR1cmUsIEJyYW5jaCwgb3JpZ2luLAotICAgICAgICBzaG91bGRHb1Nsb3dQYXRo
LAotICAgICAgICBGcmVxdWVudGVkQmxvY2soZnVuY3Rpb25DYWxsQ2FzZSksIEZyZXF1ZW50ZWRC
bG9jayhsb29wUHJlSGVhZGVyQ2FzZSkpOworICAgIHN0YXJ0LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2NlZHVyZSwgQnJhbmNoLCBvcmlnaW4sIHNob3VsZEdvU2xvd1BhdGgpOworICAgIHN0YXJ0LT5z
ZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhmdW5jdGlvbkNhbGxDYXNlKSwgRnJlcXVlbnRl
ZEJsb2NrKGxvb3BQcmVIZWFkZXJDYXNlKSk7CiAKICAgICAvLyBGdW5jdGlvbiBjYWxsLgogICAg
IFZhbHVlKiB5QXNEb3VibGUgPSBmdW5jdGlvbkNhbGxDYXNlLT5hcHBlbmROZXc8VmFsdWU+KHBy
b2NlZHVyZSwgSVRvRCwgb3JpZ2luLCB5KTsKQEAgLTY1LDcgKzYyLDggQEAgc3RkOjpwYWlyPEJh
c2ljQmxvY2sqLCBWYWx1ZSo+IHBvd0RvdWJsZQogICAgICAgICBmdW5jdGlvbkNhbGxDYXNlLT5h
cHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvY2VkdXJlLCBvcmlnaW4sIGJpdHdpc2VfY2FzdDx2
b2lkKj4ocG93RG91YmxlKSksCiAgICAgICAgIHgsIHlBc0RvdWJsZSk7CiAgICAgVXBzaWxvblZh
bHVlKiBwb3dSZXN1bHRVcHNpbG9uID0gZnVuY3Rpb25DYWxsQ2FzZS0+YXBwZW5kTmV3PFVwc2ls
b25WYWx1ZT4ocHJvY2VkdXJlLCBvcmlnaW4sIHBvd1Jlc3VsdCk7Ci0gICAgZnVuY3Rpb25DYWxs
Q2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvY2VkdXJlLCBKdW1wLCBvcmlnaW4sIEZy
ZXF1ZW50ZWRCbG9jayhjb250aW51YXRpb24pKTsKKyAgICBmdW5jdGlvbkNhbGxDYXNlLT5hcHBl
bmROZXc8VmFsdWU+KHByb2NlZHVyZSwgSnVtcCwgb3JpZ2luKTsKKyAgICBmdW5jdGlvbkNhbGxD
YXNlLT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhjb250aW51YXRpb24pKTsKIAogICAg
IC8vIExvb3AgcHJlLWhlYWRlci4KICAgICBWYWx1ZSogaW5pdGlhbFJlc3VsdCA9IGxvb3BQcmVI
ZWFkZXJDYXNlLT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvY2VkdXJlLCBvcmlnaW4s
IDEuKTsKQEAgLTczLDcgKzcxLDggQEAgc3RkOjpwYWlyPEJhc2ljQmxvY2sqLCBWYWx1ZSo+IHBv
d0RvdWJsZQogICAgIFVwc2lsb25WYWx1ZSogaW5pdGlhbFJlc3VsdFZhbHVlID0gbG9vcFByZUhl
YWRlckNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2NlZHVyZSwgb3JpZ2luLCBpbml0
aWFsUmVzdWx0KTsKICAgICBVcHNpbG9uVmFsdWUqIGluaXRpYWxTcXVhcmVkSW5wdXQgPSBsb29w
UHJlSGVhZGVyQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvY2VkdXJlLCBvcmlnaW4s
IHgpOwogICAgIFVwc2lsb25WYWx1ZSogaW5pdGlhbExvb3BDb3VudGVyID0gbG9vcFByZUhlYWRl
ckNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2NlZHVyZSwgb3JpZ2luLCB5KTsKLSAg
ICBsb29wUHJlSGVhZGVyQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvY2VkdXJlLCBK
dW1wLCBvcmlnaW4sIEZyZXF1ZW50ZWRCbG9jayhsb29wVGVzdEZvckV2ZW5DYXNlKSk7CisgICAg
bG9vcFByZUhlYWRlckNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvY2VkdXJlLCBKdW1wLCBvcmln
aW4pOworICAgIGxvb3BQcmVIZWFkZXJDYXNlLT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9j
ayhsb29wVGVzdEZvckV2ZW5DYXNlKSk7CiAKICAgICAvLyBUZXN0IGlmIHdoYXQgaXMgbGVmdCBv
ZiB0aGUgY291bnRlciBpcyBldmVuLgogICAgIFZhbHVlKiBpbkxvb3BDb3VudGVyID0gbG9vcFRl
c3RGb3JFdmVuQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihwcm9jZWR1cmUsIFBoaSwgSW50MzIsIG9y
aWdpbik7CkBAIC04MSwxMCArODAsOCBAQCBzdGQ6OnBhaXI8QmFzaWNCbG9jayosIFZhbHVlKj4g
cG93RG91YmxlCiAgICAgVmFsdWUqIGxhc3RDb3VudGVyQml0ID0gbG9vcFRlc3RGb3JFdmVuQ2Fz
ZS0+YXBwZW5kTmV3PFZhbHVlPihwcm9jZWR1cmUsIEJpdEFuZCwgb3JpZ2luLAogICAgICAgICBp
bkxvb3BDb3VudGVyLAogICAgICAgICBsb29wVGVzdEZvckV2ZW5DYXNlLT5hcHBlbmROZXc8Q29u
c3QzMlZhbHVlPihwcm9jZWR1cmUsIG9yaWdpbiwgMSkpOwotICAgIGxvb3BUZXN0Rm9yRXZlbkNh
c2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAotICAgICAgICBwcm9jZWR1cmUsIEJyYW5jaCwg
b3JpZ2luLAotICAgICAgICBsYXN0Q291bnRlckJpdCwKLSAgICAgICAgRnJlcXVlbnRlZEJsb2Nr
KGxvb3BPZGQpLCBGcmVxdWVudGVkQmxvY2sobG9vcEV2ZW5PZGQpKTsKKyAgICBsb29wVGVzdEZv
ckV2ZW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+KHByb2NlZHVyZSwgQnJhbmNoLCBvcmlnaW4sIGxh
c3RDb3VudGVyQml0KTsKKyAgICBsb29wVGVzdEZvckV2ZW5DYXNlLT5zZXRTdWNjZXNzb3JzKEZy
ZXF1ZW50ZWRCbG9jayhsb29wT2RkKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3BFdmVuT2RkKSk7CiAK
ICAgICAvLyBDb3VudGVyIGlzIG9kZC4KICAgICBWYWx1ZSogaW5Mb29wUmVzdWx0ID0gbG9vcE9k
ZC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jZWR1cmUsIFBoaSwgRG91YmxlLCBvcmlnaW4pOwpAQCAt
OTQsNyArOTEsOCBAQCBzdGQ6OnBhaXI8QmFzaWNCbG9jayosIFZhbHVlKj4gcG93RG91YmxlCiAg
ICAgdXBkYXRlZExvb3BSZXN1bHRVcHNpbG9uLT5zZXRQaGkoaW5Mb29wUmVzdWx0KTsKICAgICBV
cHNpbG9uVmFsdWUqIHVwZGF0ZWRMb29wUmVzdWx0ID0gbG9vcE9kZC0+YXBwZW5kTmV3PFVwc2ls
b25WYWx1ZT4ocHJvY2VkdXJlLCBvcmlnaW4sIHVwZGF0ZWRSZXN1bHQpOwogCi0gICAgbG9vcE9k
ZC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvY2VkdXJlLCBKdW1wLCBvcmlnaW4sIEZyZXF1
ZW50ZWRCbG9jayhsb29wRXZlbk9kZCkpOworICAgIGxvb3BPZGQtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvY2VkdXJlLCBKdW1wLCBvcmlnaW4pOworICAgIGxvb3BPZGQtPnNldFN1Y2Nlc3NvcnMoRnJl
cXVlbnRlZEJsb2NrKGxvb3BFdmVuT2RkKSk7CiAKICAgICAvLyBFdmVuIHZhbHVlIGFuZCBmb2xs
b3dpbmcgdGhlIE9kZC4KICAgICBWYWx1ZSogc3F1YXJlZElucHV0ID0gbG9vcEV2ZW5PZGQtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvY2VkdXJlLCBNdWwsIG9yaWdpbiwgaW5Mb29wU3F1YXJlZElucHV0
LCBpbkxvb3BTcXVhcmVkSW5wdXQpOwpAQCAtMTA5LDEwICsxMDcsOCBAQCBzdGQ6OnBhaXI8QmFz
aWNCbG9jayosIFZhbHVlKj4gcG93RG91YmxlCiAgICAgaW5pdGlhbExvb3BDb3VudGVyLT5zZXRQ
aGkoaW5Mb29wQ291bnRlcik7CiAgICAgdXBkYXRlZENvdW50ZXJVcHNpbG9uLT5zZXRQaGkoaW5M
b29wQ291bnRlcik7CiAKLSAgICBsb29wRXZlbk9kZC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
Ci0gICAgICAgIHByb2NlZHVyZSwgQnJhbmNoLCBvcmlnaW4sCi0gICAgICAgIHVwZGF0ZWRDb3Vu
dGVyLAotICAgICAgICBGcmVxdWVudGVkQmxvY2sobG9vcFRlc3RGb3JFdmVuQ2FzZSksIEZyZXF1
ZW50ZWRCbG9jayhjb250aW51YXRpb24pKTsKKyAgICBsb29wRXZlbk9kZC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jZWR1cmUsIEJyYW5jaCwgb3JpZ2luLCB1cGRhdGVkQ291bnRlcik7CisgICAgbG9v
cEV2ZW5PZGQtPnNldFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2NrKGxvb3BUZXN0Rm9yRXZlbkNh
c2UpLCBGcmVxdWVudGVkQmxvY2soY29udGludWF0aW9uKSk7CiAKICAgICAvLyBJbmxpbmUgbG9v
cC4KICAgICBWYWx1ZSogZmluYWxSZXN1bHRQaGkgPSBjb250aW51YXRpb24tPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvY2VkdXJlLCBQaGksIERvdWJsZSwgb3JpZ2luKTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM09wY29kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzT3Bjb2RlLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjkwLDYgKzI5MCw5
IEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBPcGMKICAgICBjYXNlIFN3
aXRjaDoKICAgICAgICAgb3V0LnByaW50KCJTd2l0Y2giKTsKICAgICAgICAgcmV0dXJuOworICAg
IGNhc2UgUG9seUp1bXA6CisgICAgICAgIG91dC5wcmludCgiUG9seUp1bXAiKTsKKyAgICAgICAg
cmV0dXJuOwogICAgIGNhc2UgUmV0dXJuOgogICAgICAgICBvdXQucHJpbnQoIlJldHVybiIpOwog
ICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuaAkocmV2
aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTIwNywyMSArMjA3LDIxIEBAIGVudW0gT3Bjb2RlIDogaW50MTZfdCB7
CiAgICAgVXBzaWxvbiwgLy8gVGhpcyB1c2VzIHRoZSBVcHNpbG9uVmFsdWUgY2xhc3MuCiAgICAg
UGhpLAogCi0gICAgLy8gSnVtcC4gVXNlcyB0aGUgQ29udHJvbFZhbHVlIGNsYXNzLgorICAgIC8v
IEp1bXAuCiAgICAgSnVtcCwKICAgICAKLSAgICAvLyBQb2x5bW9ycGhpYyBicmFuY2gsIHVzYWJs
ZSB3aXRoIGFueSBpbnRlZ2VyIHR5cGUuIEJyYW5jaGVzIGlmIG5vdCBlcXVhbCB0byB6ZXJvLiBV
c2VzIHRoZQotICAgIC8vIENvbnRyb2xWYWx1ZSBjbGFzcywgd2l0aCB0aGUgMC1pbmRleCBzdWNj
ZXNzb3IgYmVpbmcgdGhlIHRydWUgc3VjY2Vzc29yLgorICAgIC8vIFBvbHltb3JwaGljIGJyYW5j
aCwgdXNhYmxlIHdpdGggYW55IGludGVnZXIgdHlwZS4gQnJhbmNoZXMgaWYgbm90IGVxdWFsIHRv
IHplcm8uIFRoZSAwLWluZGV4CisgICAgLy8gc3VjY2Vzc29yIGlzIHRoZSB0cnVlIHN1Y2Nlc3Nv
ci4KICAgICBCcmFuY2gsCiAKICAgICAvLyBTd2l0Y2guIFN3aXRjaGVzIG92ZXIgZWl0aGVyIElu
dDMyIG9yIEludDY0LiBVc2VzIHRoZSBTd2l0Y2hWYWx1ZSBjbGFzcy4KICAgICBTd2l0Y2gsCi0K
KyAgICAKICAgICAvLyBSZXR1cm4uIE5vdGUgdGhhdCBCMyBwcm9jZWR1cmVzIGRvbid0IGtub3cg
dGhlaXIgcmV0dXJuIHR5cGUsIHNvIHRoaXMgY2FuIGp1c3QgcmV0dXJuIGFueQotICAgIC8vIHR5
cGUuIFVzZXMgdGhlIENvbnRyb2xWYWx1ZSBjbGFzcy4KKyAgICAvLyB0eXBlLgogICAgIFJldHVy
biwKIAotICAgIC8vIFRoaXMgaXMgYSB0ZXJtaW5hbCB0aGF0IGluZGljYXRlcyB0aGF0IHdlIHdp
bGwgbmV2ZXIgZ2V0IGhlcmUuIFVzZXMgdGhlIENvbnRyb2xWYWx1ZSBjbGFzcy4KKyAgICAvLyBU
aGlzIGlzIGEgdGVybWluYWwgdGhhdCBpbmRpY2F0ZXMgdGhhdCB3ZSB3aWxsIG5ldmVyIGdldCBo
ZXJlLgogICAgIE9vcHMKIH07CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Bv
bHlKdW1wVmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1BvbHlKdW1wVmFsdWUuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzUG9seUp1bXBWYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3NCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiQjNQb2x5SnVtcFZhbHVlLmgiCisKKyNpZiBFTkFCTEUoQjNf
SklUKQorCisjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrLmgiCisKK25hbWVzcGFjZSBKU0MgeyBuYW1l
c3BhY2UgQjMgeworCitQb2x5SnVtcFZhbHVlOjp+UG9seUp1bXBWYWx1ZSgpCit7Cit9CisKK3Zv
aWQgUG9seUp1bXBWYWx1ZTo6YXBwZW5kU3VjY2Vzc29yKGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYg
YmxvY2spCit7CisgICAgbV9zdWNjZXNzb3JzLmFwcGVuZChibG9jayk7Cit9CisKK3ZvaWQgUG9s
eUp1bXBWYWx1ZTo6c2V0Q2FsbGJhY2tUYXNrKFJlZlB0cjxTaGFyZWRUYXNrPENhbGxiYWNrRnVu
Y3Rpb25UeXBlPj4gdGFzaykKK3sKKyAgICBtX3Rhc2sgPSB0YXNrOworfQorCitib29sIFBvbHlK
dW1wVmFsdWU6OmlzQ2xvbmVhYmxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisK
K3ZvaWQgUG9seUp1bXBWYWx1ZTo6ZHVtcE1ldGEoQ29tbWFQcmludGVyJiBjb21tYSwgUHJpbnRT
dHJlYW0mIG91dCkgY29uc3QKK3sKKyAgICBDb250cm9sVmFsdWU6OmR1bXBNZXRhKGNvbW1hLCBv
dXQpOworICAgIG91dC5wcmludChjb21tYSwgInRhc2sgPSAiLCBSYXdQb2ludGVyKG1fdGFzay5n
ZXQoKSkpOworfQorCitWYWx1ZSogUG9seUp1bXBWYWx1ZTo6Y2xvbmVJbXBsKCkgY29uc3QKK3sK
KyAgICBkYXRhTG9nKCJGQVRBTDogQXR0ZW1wdCB0byBjbG9uZSBub24tY2xvbmVhYmxlIFBvbHlK
dW1wVmFsdWUhXG4iKTsKKyAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCitQ
b2x5SnVtcFZhbHVlOjpQb2x5SnVtcFZhbHVlKE9yaWdpbiBvcmlnaW4sIFZhbHVlKiBjaGlsZCkK
KyAgICA6IENvbnRyb2xWYWx1ZShQb2x5SnVtcCwgVm9pZCwgb3JpZ2luLCBjaGlsZCkKK3sKK30K
KworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzCisKKyNlbmRpZiAvLyBFTkFCTEUoQjNfSklUKQor
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQb2x5SnVtcFZhbHVlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUG9seUp1bXBWYWx1ZS5oCShyZXZp
c2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUG9seUp1bXBWYWx1ZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBCM1BvbHlKdW1wVmFsdWVfaAorI2RlZmluZSBC
M1BvbHlKdW1wVmFsdWVfaAorCisjaWYgRU5BQkxFKEIzX0pJVCkKKworI2luY2x1ZGUgIkIzQ29u
dHJvbFZhbHVlLmgiCisjaW5jbHVkZSA8d3RmL1NoYXJlZFRhc2suaD4KKworbmFtZXNwYWNlIEpT
QyB7IG5hbWVzcGFjZSBCMyB7CisKK2NsYXNzIFBvbHlKdW1wVmFsdWUgOiBwdWJsaWMgQ29udHJv
bFZhbHVlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgYm9vbCBhY2NlcHRzKE9wY29kZSBvcGNvZGUp
IHsgcmV0dXJuIG9wY29kZSA9PSBQb2x5SnVtcDsgfQorICAgIAorICAgIH5Qb2x5SnVtcFZhbHVl
KCk7CisgICAgCisgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBhcHBlbmRTdWNjZXNzb3IoY29u
c3QgRnJlcXVlbnRlZEJsb2NrJik7CisgICAgCisgICAgdHlwZWRlZiB2b2lkIENhbGxiYWNrRnVu
Y3Rpb25UeXBlKGNvbnN0IFZlY3RvcjxNYWNyb0Fzc2VtYmxlckNvZGVQdHI+Jik7CisgICAgCisg
ICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBzZXRDYWxsYmFja1Rhc2soUmVmUHRyPFNoYXJlZFRh
c2s8Q2FsbGJhY2tGdW5jdGlvblR5cGU+PiB0YXNrKTsKKyAgICAKKyAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBGdW5jPgorICAgIHZvaWQgc2V0Q2FsbGJhY2soY29uc3QgRnVuYyYgZnVuYykKKyAgICB7
CisgICAgICAgIHNldENhbGxiYWNrVGFzayhjcmVhdGVTaGFyZWRUYXNrPENhbGxiYWNrRnVuY3Rp
b25UeXBlPihmdW5jKSk7CisgICAgfQorICAgIAorICAgIFNoYXJlZFRhc2s8Q2FsbGJhY2tGdW5j
dGlvblR5cGU+KiBjYWxsYmFja1Rhc2soKSBjb25zdCB7IHJldHVybiBtX3Rhc2suZ2V0KCk7IH0K
KyAgICAKKyAgICBib29sIGlzQ2xvbmVhYmxlKCkgY29uc3Qgb3ZlcnJpZGU7CisKK3Byb3RlY3Rl
ZDoKKyAgICB2b2lkIGR1bXBNZXRhKENvbW1hUHJpbnRlciYsIFByaW50U3RyZWFtJikgY29uc3Qg
b3ZlcnJpZGU7CisgICAgCisgICAgVmFsdWUqIGNsb25lSW1wbCgpIGNvbnN0IG92ZXJyaWRlOwor
Citwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBQcm9jZWR1cmU7CisgICAgCisgICAgSlNfRVhQ
T1JUX1BSSVZBVEUgUG9seUp1bXBWYWx1ZShPcmlnaW4sIFZhbHVlKiBjaGlsZCk7CisgICAgCisg
ICAgUmVmUHRyPFNoYXJlZFRhc2s8Q2FsbGJhY2tGdW5jdGlvblR5cGU+PiBtX3Rhc2s7Cit9Owor
Cit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKKworI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCisK
KyNlbmRpZiAvLyBCM1BvbHlKdW1wVmFsdWVfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNQcm9jZWR1cmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM1Byb2NlZHVyZS5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgzLDYgKzgzLDgg
QEAgVmFyaWFibGUqIFByb2NlZHVyZTo6YWRkVmFyaWFibGUoVHlwZSB0eQogCiBWYWx1ZSogUHJv
Y2VkdXJlOjpjbG9uZShWYWx1ZSogdmFsdWUpCiB7CisgICAgQVNTRVJUKHZhbHVlLT5pc0Nsb25l
YWJsZSgpKTsKKyAgICAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VmFsdWU+IGNsb25lKHZhbHVlLT5j
bG9uZUltcGwoKSk7CiAgICAgY2xvbmUtPm1faW5kZXggPSBVSU5UX01BWDsKICAgICBjbG9uZS0+
b3duZXIgPSBudWxscHRyOwpAQCAtMTQ4LDMxICsxNTAsNiBAQCB2b2lkIFByb2NlZHVyZTo6cmVz
ZXRWYWx1ZU93bmVycygpCiAKIHZvaWQgUHJvY2VkdXJlOjpyZXNldFJlYWNoYWJpbGl0eSgpCiB7
Ci0gICAgaWYgKHNob3VsZFZhbGlkYXRlSVIoKSkgewotICAgICAgICAvLyBWYWxpZGF0ZSB0aGUg
YmFzaWMgcHJvcGVydGllcyB0aGF0IHdlIG5lZWQgZm9yIHJlc2V0dGluZyByZWFjaGFiaWxpdHku
IFdlIG9mdGVuIHJlc2V0Ci0gICAgICAgIC8vIHJlYWNoYWJpbGl0eSBiZWZvcmUgSVIgdmFsaWRh
dGlvbiwgc28gd2l0aG91dCB0aGlzIG1pbmktdmFsaWRhdGlvbiwgeW91IHdvdWxkIGNyYXNoIGlu
c2lkZQotICAgICAgICAvLyBCMzo6cmVzZXRSZWFjaGFiaWxpdHkoKSB3aXRob3V0IGdldHRpbmcg
YW55IElSIGR1bXAuCi0KLSAgICAgICAgQmFzaWNCbG9jayogYmFkQmxvY2sgPSBudWxscHRyOwot
ICAgICAgICBmb3IgKEJhc2ljQmxvY2sqIGJsb2NrIDogKnRoaXMpIHsKLSAgICAgICAgICAgIGlm
ICghYmxvY2stPnNpemUoKSkgewotICAgICAgICAgICAgICAgIGJhZEJsb2NrID0gYmxvY2s7Ci0g
ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmICgh
YmxvY2stPmxhc3QoKS0+YXM8Q29udHJvbFZhbHVlPigpKSB7Ci0gICAgICAgICAgICAgICAgYmFk
QmxvY2sgPSBibG9jazsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgfQotCi0gICAgICAgIGlmIChiYWRCbG9jaykgewotICAgICAgICAgICAgZGF0YUxvZygi
RkFUQUw6IEludmFsaWQgYmFzaWMgYmxvY2sgIiwgKmJhZEJsb2NrLCAiIHdoaWxlIHJ1bm5pbmcg
UHJvY2VkdXJlOjpyZXNldFJlYWNoYWJpbGl0eSgpLlxuIik7Ci0gICAgICAgICAgICBkYXRhTG9n
KCp0aGlzKTsKLSAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
ICAgIH0KLSAgICB9Ci0gICAgCiAgICAgcmVjb21wdXRlUHJlZGVjZXNzb3JzKG1fYmxvY2tzKTsK
ICAgICAKICAgICAvLyBUaGUgY29tbW9uIGNhc2UgaXMgdGhhdCB0aGlzIGRvZXMgbm90IGZpbmQg
YW55IGRlYWQgYmxvY2tzLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2Vk
dXJlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJl
LmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2Nl
ZHVyZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsNiArMTAxLDcgQEAgcHVibGljOgogICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5hbWUuLi4gQXJndW1lbnRzPgogICAgIFZh
bHVlVHlwZSogYWRkKEFyZ3VtZW50cy4uLik7CiAKKyAgICAvLyBOb3RlIHRoYXQgbm90IGFsbCB2
YWx1ZXMgYXJlIGNsb25lYWJsZS4gQ2hlY2sgVmFsdWU6OmlzQ2xvbmVhYmxlKCkgYmVmb3JlIHBy
b2NlZWRpbmcuCiAgICAgVmFsdWUqIGNsb25lKFZhbHVlKik7CiAKICAgICBWYWx1ZSogYWRkSW50
Q29uc3RhbnQoT3JpZ2luLCBUeXBlLCBpbnQ2NF90IHZhbHVlKTsKQEAgLTIxOCw3ICsyMTksMTAg
QEAgcHVibGljOgogCiAgICAgY29uc3QgY2hhciogbGFzdFBoYXNlTmFtZSgpIGNvbnN0IHsgcmV0
dXJuIG1fbGFzdFBoYXNlTmFtZTsgfQogCi0gICAgdm9pZCogYWRkRGF0YVNlY3Rpb24oc2l6ZV90
IHNpemUpOworICAgIC8vIEFsbG9jYXRlcyBhIHNsYWIgb2YgbWVtb3J5IHRoYXQgd2lsbCBiZSBr
ZXB0IGFsaXZlIGJ5IGFueW9uZSB3aG8ga2VlcHMgdGhlIHJlc3VsdGluZyBjb2RlCisgICAgLy8g
YWxpdmUuIEdyZWF0IGZvciBjb21waWxlci1nZW5lcmF0ZWQgZGF0YSBzZWN0aW9ucywgbGlrZSBz
d2l0Y2gganVtcCB0YWJsZXMgYW5kIGNvbnN0YW50IHBvb2xzLgorICAgIC8vIFRoaXMgcmV0dXJu
cyBtZW1vcnkgdGhhdCBoYXMgYmVlbiB6ZXJvLWluaXRpYWxpemVkLgorICAgIHZvaWQqIGFkZERh
dGFTZWN0aW9uKHNpemVfdCk7CiAKICAgICBPcGFxdWVCeXByb2R1Y3RzJiBieXByb2R1Y3RzKCkg
eyByZXR1cm4gKm1fYnlwcm9kdWN0czsgfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNSZWR1Y2VTdHJlbmd0aC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VTdHJlbmd0aC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJCM0Jhc2ljQmxvY2tJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiQjNCbG9ja0luc2VydGlvblNldC5oIgogI2luY2x1ZGUgIkIzQ29tcHV0ZURpdmlzaW9uTWFn
aWMuaCIKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzRG9taW5hdG9y
cy5oIgogI2luY2x1ZGUgIkIzSW5kZXhTZXQuaCIKICNpbmNsdWRlICJCM0luc2VydGlvblNldElu
bGluZXMuaCIKQEAgLTE3MTcsNyArMTcxNiw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAg
Ly8gUmVwbGFjZSB0aGUgcmVzdCBvZiB0aGUgYmxvY2sgd2l0aCBhbiBPb3BzLgogICAgICAgICAg
ICAgICAgIGZvciAodW5zaWduZWQgaSA9IG1faW5kZXggKyAxOyBpIDwgbV9ibG9jay0+c2l6ZSgp
IC0gMTsgKytpKQogICAgICAgICAgICAgICAgICAgICBtX2Jsb2NrLT5hdChpKS0+cmVwbGFjZVdp
dGhCb3R0b20obV9pbnNlcnRpb25TZXQsIG1faW5kZXgpOwotICAgICAgICAgICAgICAgIG1fYmxv
Y2stPmxhc3QoKS0+YXM8Q29udHJvbFZhbHVlPigpLT5jb252ZXJ0VG9Pb3BzKCk7CisgICAgICAg
ICAgICAgICAgbV9ibG9jay0+bGFzdCgpLT5yZXBsYWNlV2l0aE9vcHMobV9ibG9jayk7CiAgICAg
ICAgICAgICAgICAgbV9ibG9jay0+bGFzdCgpLT5zZXRPcmlnaW4oY2hlY2tWYWx1ZS0+b3JpZ2lu
KCkpOwogCiAgICAgICAgICAgICAgICAgLy8gUmVwbGFjZSBvdXJzZWx2ZXMgbGFzdC4KQEAgLTE3
NzMsNyArMTc3MiwxNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFs
dWUtPm9wY29kZSgpID09IFNlbGVjdAogICAgICAgICAgICAgICAgICAgICAgICAgJiYgKHZhbHVl
LT5jaGlsZCgxKS0+aXNDb25zdGFudCgpICYmIHZhbHVlLT5jaGlsZCgyKS0+aXNDb25zdGFudCgp
KTsKICAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGlmIChzZWxlY3QpIHsKKyAgICAg
ICAgICAgIAorICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgdGhlIHJlbGV2YW50IGNvZGUg
aXMgY2xvbmVhYmxlLgorICAgICAgICAgICAgYm9vbCBhbGxBcmVDbG9uZWFibGUgPSB0cnVlOwor
ICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpbmRleCA9IG1faW5kZXggKyAxOyBpbmRleC0tOykg
eworICAgICAgICAgICAgICAgIFZhbHVlKiB2YWx1ZSA9IG1fYmxvY2stPmF0KGluZGV4KTsKKyAg
ICAgICAgICAgICAgICBhbGxBcmVDbG9uZWFibGUgJj0gdmFsdWUtPmlzQ2xvbmVhYmxlKCk7Cisg
ICAgICAgICAgICAgICAgaWYgKHZhbHVlID09IHNlbGVjdCkKKyAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChzZWxl
Y3QgJiYgYWxsQXJlQ2xvbmVhYmxlKSB7CiAgICAgICAgICAgICAgICAgc3BlY2lhbGl6ZVNlbGVj
dChzZWxlY3QpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpAQCAtMTc4
MSw1MCArMTc5MCw0OCBAQCBwcml2YXRlOgogICAgICAgICB9CiAKICAgICAgICAgY2FzZSBCcmFu
Y2g6IHsKLSAgICAgICAgICAgIENvbnRyb2xWYWx1ZSogYnJhbmNoID0gbV92YWx1ZS0+YXM8Q29u
dHJvbFZhbHVlPigpOwotCiAgICAgICAgICAgICAvLyBUdXJuIHRoaXM6IEJyYW5jaChOb3RFcXVh
bCh4LCAwKSkKICAgICAgICAgICAgIC8vIEludG8gdGhpczogQnJhbmNoKHgpCi0gICAgICAgICAg
ICBpZiAoYnJhbmNoLT5jaGlsZCgwKS0+b3Bjb2RlKCkgPT0gTm90RXF1YWwgJiYgYnJhbmNoLT5j
aGlsZCgwKS0+Y2hpbGQoMSktPmlzSW50KDApKSB7Ci0gICAgICAgICAgICAgICAgYnJhbmNoLT5j
aGlsZCgwKSA9IGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDApOworICAgICAgICAgICAgaWYgKG1f
dmFsdWUtPmNoaWxkKDApLT5vcGNvZGUoKSA9PSBOb3RFcXVhbCAmJiBtX3ZhbHVlLT5jaGlsZCgw
KS0+Y2hpbGQoMSktPmlzSW50KDApKSB7CisgICAgICAgICAgICAgICAgbV92YWx1ZS0+Y2hpbGQo
MCkgPSBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMCk7CiAgICAgICAgICAgICAgICAgbV9jaGFu
Z2VkID0gdHJ1ZTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgLy8gVHVybiB0aGlzOiBC
cmFuY2goRXF1YWwoeCwgMCksIHRoZW4sIGVsc2UpCiAgICAgICAgICAgICAvLyBJbnRvIHRoaXM6
IEJyYW5jaCh4LCBlbHNlLCB0aGVuKQotICAgICAgICAgICAgaWYgKGJyYW5jaC0+Y2hpbGQoMCkt
Pm9wY29kZSgpID09IEVxdWFsICYmIGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDEpLT5pc0ludCgw
KSkgewotICAgICAgICAgICAgICAgIGJyYW5jaC0+Y2hpbGQoMCkgPSBicmFuY2gtPmNoaWxkKDAp
LT5jaGlsZCgwKTsKLSAgICAgICAgICAgICAgICBzdGQ6OnN3YXAoYnJhbmNoLT50YWtlbigpLCBi
cmFuY2gtPm5vdFRha2VuKCkpOworICAgICAgICAgICAgaWYgKG1fdmFsdWUtPmNoaWxkKDApLT5v
cGNvZGUoKSA9PSBFcXVhbCAmJiBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMSktPmlzSW50KDAp
KSB7CisgICAgICAgICAgICAgICAgbV92YWx1ZS0+Y2hpbGQoMCkgPSBtX3ZhbHVlLT5jaGlsZCgw
KS0+Y2hpbGQoMCk7CisgICAgICAgICAgICAgICAgc3RkOjpzd2FwKG1fYmxvY2stPnRha2VuKCks
IG1fYmxvY2stPm5vdFRha2VuKCkpOwogICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgICAgIC8vIFR1cm4gdGhpczog
QnJhbmNoKEJpdFhvcihib29sLCAxKSwgdGhlbiwgZWxzZSkKICAgICAgICAgICAgIC8vIEludG8g
dGhpczogQnJhbmNoKGJvb2wsIGVsc2UsIHRoZW4pCi0gICAgICAgICAgICBpZiAoYnJhbmNoLT5j
aGlsZCgwKS0+b3Bjb2RlKCkgPT0gQml0WG9yCi0gICAgICAgICAgICAgICAgJiYgYnJhbmNoLT5j
aGlsZCgwKS0+Y2hpbGQoMSktPmlzSW50MzIoMSkKLSAgICAgICAgICAgICAgICAmJiBicmFuY2gt
PmNoaWxkKDApLT5jaGlsZCgwKS0+cmV0dXJuc0Jvb2woKSkgewotICAgICAgICAgICAgICAgIGJy
YW5jaC0+Y2hpbGQoMCkgPSBicmFuY2gtPmNoaWxkKDApLT5jaGlsZCgwKTsKLSAgICAgICAgICAg
ICAgICBzdGQ6OnN3YXAoYnJhbmNoLT50YWtlbigpLCBicmFuY2gtPm5vdFRha2VuKCkpOworICAg
ICAgICAgICAgaWYgKG1fdmFsdWUtPmNoaWxkKDApLT5vcGNvZGUoKSA9PSBCaXRYb3IKKyAgICAg
ICAgICAgICAgICAmJiBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMSktPmlzSW50MzIoMSkKKyAg
ICAgICAgICAgICAgICAmJiBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMCktPnJldHVybnNCb29s
KCkpIHsKKyAgICAgICAgICAgICAgICBtX3ZhbHVlLT5jaGlsZCgwKSA9IG1fdmFsdWUtPmNoaWxk
KDApLT5jaGlsZCgwKTsKKyAgICAgICAgICAgICAgICBzdGQ6OnN3YXAobV9ibG9jay0+dGFrZW4o
KSwgbV9ibG9jay0+bm90VGFrZW4oKSk7CiAgICAgICAgICAgICAgICAgbV9jaGFuZ2VkID0gdHJ1
ZTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgLy8gVHVybiB0aGlzOiBCcmFuY2goQml0
QW5kKGJvb2wsIHh5YjEpLCB0aGVuLCBlbHNlKQogICAgICAgICAgICAgLy8gSW50byB0aGlzOiBC
cmFuY2goYm9vbCwgdGhlbiwgZWxzZSkKLSAgICAgICAgICAgIGlmIChicmFuY2gtPmNoaWxkKDAp
LT5vcGNvZGUoKSA9PSBCaXRBbmQKLSAgICAgICAgICAgICAgICAmJiBicmFuY2gtPmNoaWxkKDAp
LT5jaGlsZCgxKS0+aGFzSW50KCkKLSAgICAgICAgICAgICAgICAmJiBicmFuY2gtPmNoaWxkKDAp
LT5jaGlsZCgxKS0+YXNJbnQoKSAmIDEKLSAgICAgICAgICAgICAgICAmJiBicmFuY2gtPmNoaWxk
KDApLT5jaGlsZCgwKS0+cmV0dXJuc0Jvb2woKSkgewotICAgICAgICAgICAgICAgIGJyYW5jaC0+
Y2hpbGQoMCkgPSBicmFuY2gtPmNoaWxkKDApLT5jaGlsZCgwKTsKKyAgICAgICAgICAgIGlmICht
X3ZhbHVlLT5jaGlsZCgwKS0+b3Bjb2RlKCkgPT0gQml0QW5kCisgICAgICAgICAgICAgICAgJiYg
bV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDEpLT5oYXNJbnQoKQorICAgICAgICAgICAgICAgICYm
IG1fdmFsdWUtPmNoaWxkKDApLT5jaGlsZCgxKS0+YXNJbnQoKSAmIDEKKyAgICAgICAgICAgICAg
ICAmJiBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMCktPnJldHVybnNCb29sKCkpIHsKKyAgICAg
ICAgICAgICAgICBtX3ZhbHVlLT5jaGlsZCgwKSA9IG1fdmFsdWUtPmNoaWxkKDApLT5jaGlsZCgw
KTsKICAgICAgICAgICAgICAgICBtX2NoYW5nZWQgPSB0cnVlOwogICAgICAgICAgICAgfQogCi0g
ICAgICAgICAgICBUcmlTdGF0ZSB0cmlTdGF0ZSA9IGJyYW5jaC0+Y2hpbGQoMCktPmFzVHJpU3Rh
dGUoKTsKKyAgICAgICAgICAgIFRyaVN0YXRlIHRyaVN0YXRlID0gbV92YWx1ZS0+Y2hpbGQoMCkt
PmFzVHJpU3RhdGUoKTsKIAogICAgICAgICAgICAgLy8gVHVybiB0aGlzOiBCcmFuY2goMCwgdGhl
biwgZWxzZSkKICAgICAgICAgICAgIC8vIEludG8gdGhpczogSnVtcChlbHNlKQogICAgICAgICAg
ICAgaWYgKHRyaVN0YXRlID09IEZhbHNlVHJpU3RhdGUpIHsKLSAgICAgICAgICAgICAgICBicmFu
Y2gtPnRha2VuKCkuYmxvY2soKS0+cmVtb3ZlUHJlZGVjZXNzb3IobV9ibG9jayk7Ci0gICAgICAg
ICAgICAgICAgYnJhbmNoLT5jb252ZXJ0VG9KdW1wKGJyYW5jaC0+bm90VGFrZW4oKS5ibG9jaygp
KTsKKyAgICAgICAgICAgICAgICBtX2Jsb2NrLT50YWtlbigpLmJsb2NrKCktPnJlbW92ZVByZWRl
Y2Vzc29yKG1fYmxvY2spOworICAgICAgICAgICAgICAgIG1fdmFsdWUtPnJlcGxhY2VXaXRoSnVt
cChtX2Jsb2NrLCBtX2Jsb2NrLT5ub3RUYWtlbigpLmJsb2NrKCkpOwogICAgICAgICAgICAgICAg
IG1fY2hhbmdlZENGRyA9IHRydWU7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICB9CkBAIC0xODMyLDggKzE4MzksOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgLy8gVHVybiB0
aGlzOiBCcmFuY2gobm90IDAsIHRoZW4sIGVsc2UpCiAgICAgICAgICAgICAvLyBJbnRvIHRoaXM6
IEp1bXAodGhlbikKICAgICAgICAgICAgIGlmICh0cmlTdGF0ZSA9PSBUcnVlVHJpU3RhdGUpIHsK
LSAgICAgICAgICAgICAgICBicmFuY2gtPm5vdFRha2VuKCkuYmxvY2soKS0+cmVtb3ZlUHJlZGVj
ZXNzb3IobV9ibG9jayk7Ci0gICAgICAgICAgICAgICAgYnJhbmNoLT5jb252ZXJ0VG9KdW1wKGJy
YW5jaC0+dGFrZW4oKS5ibG9jaygpKTsKKyAgICAgICAgICAgICAgICBtX2Jsb2NrLT5ub3RUYWtl
bigpLmJsb2NrKCktPnJlbW92ZVByZWRlY2Vzc29yKG1fYmxvY2spOworICAgICAgICAgICAgICAg
IG1fdmFsdWUtPnJlcGxhY2VXaXRoSnVtcChtX2Jsb2NrLCBtX2Jsb2NrLT50YWtlbigpLmJsb2Nr
KCkpOwogICAgICAgICAgICAgICAgIG1fY2hhbmdlZENGRyA9IHRydWU7CiAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICB9CkBAIC0xODQyLDEyICsxODQ5LDEyIEBAIHByaXZhdGU6
CiAgICAgICAgICAgICAvLyBvZiBtYWtlcyBzZW5zZSBoZXJlIGJlY2F1c2UgaXQncyBjaGVhcCwg
YnV0IGhhY2tzIGxpa2UgdGhpcyBzaG93IHRoYXQgd2UncmUgZ29pbmcKICAgICAgICAgICAgIC8v
IHRvIG5lZWQgU0NDUC4KICAgICAgICAgICAgIFZhbHVlKiBjaGVjayA9IG1fcHVyZUNTRS5maW5k
TWF0Y2goCi0gICAgICAgICAgICAgICAgVmFsdWVLZXkoQ2hlY2ssIFZvaWQsIGJyYW5jaC0+Y2hp
bGQoMCkpLCBtX2Jsb2NrLCAqbV9kb21pbmF0b3JzKTsKKyAgICAgICAgICAgICAgICBWYWx1ZUtl
eShDaGVjaywgVm9pZCwgbV92YWx1ZS0+Y2hpbGQoMCkpLCBtX2Jsb2NrLCAqbV9kb21pbmF0b3Jz
KTsKICAgICAgICAgICAgIGlmIChjaGVjaykgewogICAgICAgICAgICAgICAgIC8vIFRoZSBDaGVj
ayB3b3VsZCBoYXZlIHNpZGUtZXhpdGVkIGlmIGNoaWxkKDApIHdhcyBub24temVyby4gU28sIGl0
IG11c3QgYmUKICAgICAgICAgICAgICAgICAvLyB6ZXJvIGhlcmUuCi0gICAgICAgICAgICAgICAg
YnJhbmNoLT50YWtlbigpLmJsb2NrKCktPnJlbW92ZVByZWRlY2Vzc29yKG1fYmxvY2spOwotICAg
ICAgICAgICAgICAgIGJyYW5jaC0+Y29udmVydFRvSnVtcChicmFuY2gtPm5vdFRha2VuKCkuYmxv
Y2soKSk7CisgICAgICAgICAgICAgICAgbV9ibG9jay0+dGFrZW4oKS5ibG9jaygpLT5yZW1vdmVQ
cmVkZWNlc3NvcihtX2Jsb2NrKTsKKyAgICAgICAgICAgICAgICBtX3ZhbHVlLT5yZXBsYWNlV2l0
aEp1bXAobV9ibG9jaywgbV9ibG9jay0+bm90VGFrZW4oKS5ibG9jaygpKTsKICAgICAgICAgICAg
ICAgICBtX2NoYW5nZWRDRkcgPSB0cnVlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJl
YWs7CkBAIC0xOTg2LDEzICsxOTkzLDEyIEBAIHByaXZhdGU6CiAgICAgICAgIC8vIFJlbW92ZSB0
aGUgdmFsdWVzIGZyb20gdGhlIHByZWRlY2Vzc29yLgogICAgICAgICBwcmVkZWNlc3Nvci0+dmFs
dWVzKCkucmVzaXplKHN0YXJ0SW5kZXgpOwogICAgICAgICAKLSAgICAgICAgcHJlZGVjZXNzb3It
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAotICAgICAgICAgICAgbV9wcm9jLCBCcmFuY2gsIHNv
dXJjZS0+b3JpZ2luKCksIHByZWRpY2F0ZSwKLSAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhj
YXNlc1swXSksIEZyZXF1ZW50ZWRCbG9jayhjYXNlc1sxXSkpOworICAgICAgICBwcmVkZWNlc3Nv
ci0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIEJyYW5jaCwgc291cmNlLT5vcmlnaW4oKSwgcHJl
ZGljYXRlKTsKKyAgICAgICAgcHJlZGVjZXNzb3ItPnNldFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJs
b2NrKGNhc2VzWzBdKSwgRnJlcXVlbnRlZEJsb2NrKGNhc2VzWzFdKSk7CiAKICAgICAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bUNhc2VzOyArK2kpIHsKLSAgICAgICAgICAgIGNhc2Vz
W2ldLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgICAgICAgICBtX3Byb2MsIEp1
bXAsIG1fdmFsdWUtPm9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sobV9ibG9jaykpOworICAgICAg
ICAgICAgY2FzZXNbaV0tPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBKdW1wLCBtX3ZhbHVlLT5v
cmlnaW4oKSk7CisgICAgICAgICAgICBjYXNlc1tpXS0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVk
QmxvY2sobV9ibG9jaykpOwogICAgICAgICB9CiAKICAgICAgICAgbV9jaGFuZ2VkID0gdHJ1ZTsK
QEAgLTIyMjEsNyArMjIyNyw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGF0YUxvZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNoYW5naW5nICIs
IHBvaW50ZXJEdW1wKGJsb2NrKSwgIidzIHRlcm1pbmFsIHRvIGEgSnVtcC5cbiIpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2stPmxhc3Qo
KS0+YXM8Q29udHJvbFZhbHVlPigpLT5jb252ZXJ0VG9KdW1wKGZpcnN0U3VjY2Vzc29yKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLT5sYXN0KCktPnJlcGxhY2VXaXRoSnVtcChibG9j
aywgZmlyc3RTdWNjZXNzb3IpOwogICAgICAgICAgICAgICAgICAgICAgICAgbV9jaGFuZ2VkQ0ZH
ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KQEAgLTIy
MzksMTYgKzIyNDUsMTggQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgLy8gUmVtb3Zl
IHRoZSB0ZXJtaW5hbC4KICAgICAgICAgICAgICAgICAgICAgVmFsdWUqIHZhbHVlID0gYmxvY2st
PnZhbHVlcygpLnRha2VMYXN0KCk7CiAgICAgICAgICAgICAgICAgICAgIE9yaWdpbiBqdW1wT3Jp
Z2luID0gdmFsdWUtPm9yaWdpbigpOwotICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VS
VCh2YWx1ZS0+YXM8Q29udHJvbFZhbHVlPigpKTsKKyAgICAgICAgICAgICAgICAgICAgUkVMRUFT
RV9BU1NFUlQodmFsdWUtPmVmZmVjdHMoKS50ZXJtaW5hbCk7CiAgICAgICAgICAgICAgICAgICAg
IG1fcHJvYy5kZWxldGVWYWx1ZSh2YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgICAgICAvLyBBcHBlbmQgdGhlIGZ1bGwgY29udGVudHMgb2YgdGhlIHN1Y2Nlc3Nv
ciB0byB0aGUgcHJlZGVjZXNzb3IuCiAgICAgICAgICAgICAgICAgICAgIGJsb2NrLT52YWx1ZXMo
KS5hcHBlbmRWZWN0b3Ioc3VjY2Vzc29yLT52YWx1ZXMoKSk7CisgICAgICAgICAgICAgICAgICAg
IGJsb2NrLT5zdWNjZXNzb3JzKCkgPSBzdWNjZXNzb3ItPnN1Y2Nlc3NvcnMoKTsKICAgICAgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBz
dWNjZXNzb3IgaGFzIG5vdGhpbmcgbGVmdCBpbiBpdC4gTWFrZSBzdXJlIHRoYXQgdGhlIGJsb2Nr
CiAgICAgICAgICAgICAgICAgICAgIC8vIGhhcyBhIHRlcm1pbmFsIHNvIHRoYXQgbm9ib2R5IGNo
b2tlcyB3aGVuIHRoZXkgbG9vayBhdCBpdC4KICAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc29y
LT52YWx1ZXMoKS5yZXNpemUoMCk7Ci0gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3Nvci0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4obV9wcm9jLCBPb3BzLCBqdW1wT3JpZ2luKTsKKyAgICAgICAg
ICAgICAgICAgICAgc3VjY2Vzc29yLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgT29wcywganVt
cE9yaWdpbik7CisgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3Nvci0+Y2xlYXJTdWNjZXNzb3Jz
KCk7CiAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAvLyBFbnN1cmUg
dGhhdCBwcmVkZWNlc3NvcnMgb2YgYmxvY2sncyBuZXcgc3VjY2Vzc29ycyBrbm93IHdoYXQncyB1
cC4KICAgICAgICAgICAgICAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBuZXdTdWNjZXNzb3IgOiBi
bG9jay0+c3VjY2Vzc29yQmxvY2tzKCkpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNTd2l0Y2hWYWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzU3dpdGNoVmFsdWUuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNTd2l0Y2hWYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDMwICszNywz
OSBAQCBTd2l0Y2hWYWx1ZTo6flN3aXRjaFZhbHVlKCkKIHsKIH0KIAotU3dpdGNoQ2FzZSBTd2l0
Y2hWYWx1ZTo6cmVtb3ZlQ2FzZSh1bnNpZ25lZCBpbmRleCkKK1N3aXRjaENhc2UgU3dpdGNoVmFs
dWU6OnJlbW92ZUNhc2UoQmFzaWNCbG9jayogYmxvY2ssIHVuc2lnbmVkIGluZGV4KQogewotICAg
IEZyZXF1ZW50ZWRCbG9jayByZXN1bHRCbG9jayA9IG1fc3VjY2Vzc29yc1tpbmRleF07CisgICAg
RnJlcXVlbnRlZEJsb2NrIHJlc3VsdEJsb2NrID0gYmxvY2stPnN1Y2Nlc3NvcihpbmRleCk7CiAg
ICAgaW50NjRfdCByZXN1bHRWYWx1ZSA9IG1fdmFsdWVzW2luZGV4XTsKLSAgICBtX3N1Y2Nlc3Nv
cnNbaW5kZXhdID0gbV9zdWNjZXNzb3JzLmxhc3QoKTsKLSAgICBtX3N1Y2Nlc3NvcnMucmVtb3Zl
TGFzdCgpOworICAgIGJsb2NrLT5zdWNjZXNzb3IoaW5kZXgpID0gYmxvY2stPnN1Y2Nlc3NvcnMo
KS5sYXN0KCk7CisgICAgYmxvY2stPnN1Y2Nlc3NvcnMoKS5yZW1vdmVMYXN0KCk7CiAgICAgbV92
YWx1ZXNbaW5kZXhdID0gbV92YWx1ZXMubGFzdCgpOwogICAgIG1fdmFsdWVzLnJlbW92ZUxhc3Qo
KTsKICAgICByZXR1cm4gU3dpdGNoQ2FzZShyZXN1bHRWYWx1ZSwgcmVzdWx0QmxvY2spOwogfQog
Ci12b2lkIFN3aXRjaFZhbHVlOjphcHBlbmRDYXNlKGNvbnN0IFN3aXRjaENhc2UmIHN3aXRjaENh
c2UpCit2b2lkIFN3aXRjaFZhbHVlOjphcHBlbmRDYXNlKEJhc2ljQmxvY2sqIGJsb2NrLCBjb25z
dCBTd2l0Y2hDYXNlJiBzd2l0Y2hDYXNlKQogewotICAgIG1fc3VjY2Vzc29ycy5hcHBlbmQobV9z
dWNjZXNzb3JzLmxhc3QoKSk7Ci0gICAgbV9zdWNjZXNzb3JzW21fc3VjY2Vzc29ycy5zaXplKCkg
LSAyXSA9IHN3aXRjaENhc2UudGFyZ2V0KCk7CisgICAgYmxvY2stPnN1Y2Nlc3NvcnMoKS5hcHBl
bmQoYmxvY2stPnN1Y2Nlc3NvcnMoKS5sYXN0KCkpOworICAgIGJsb2NrLT5zdWNjZXNzb3IoYmxv
Y2stPm51bVN1Y2Nlc3NvcnMoKSAtIDIpID0gc3dpdGNoQ2FzZS50YXJnZXQoKTsKICAgICBtX3Zh
bHVlcy5hcHBlbmQoc3dpdGNoQ2FzZS5jYXNlVmFsdWUoKSk7CiB9CiAKK3ZvaWQgU3dpdGNoVmFs
dWU6OmR1bXBTdWNjZXNzb3JzKEJhc2ljQmxvY2sqIGJsb2NrLCBQcmludFN0cmVhbSYgb3V0KSBj
b25zdAoreworICAgIC8vIFdlIG11c3Qgbm90IGNyYXNoIGR1ZSB0byBhIG51bWJlci1vZi1zdWNj
ZXNzb3JzIG1pc21hdGNoISBTb21lb25lIGRlYnVnZ2luZyBhCisgICAgLy8gbnVtYmVyLW9mLXN1
Y2Nlc3NvcnMgYnVnIHdpbGwgd2FudCB0byBkdW1wIElSIQorICAgIGlmIChudW1DYXNlVmFsdWVz
KCkgKyAxICE9IGJsb2NrLT5udW1TdWNjZXNzb3JzKCkpIHsKKyAgICAgICAgVmFsdWU6OmR1bXBT
dWNjZXNzb3JzKGJsb2NrLCBvdXQpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAg
IG91dC5wcmludChjYXNlcyhibG9jaykpOworfQorCiB2b2lkIFN3aXRjaFZhbHVlOjpkdW1wTWV0
YShDb21tYVByaW50ZXImIGNvbW1hLCBQcmludFN0cmVhbSYgb3V0KSBjb25zdAogewotICAgIC8v
IFRoaXMgZGVzdHJ1Y3RpdmVseSBvdmVycmlkZXMgQ29udHJvbFZhbHVlJ3MgZHVtcE1ldGEoKS4K
LSAgICBmb3IgKFN3aXRjaENhc2Ugc3dpdGNoQ2FzZSA6ICp0aGlzKQotICAgICAgICBvdXQucHJp
bnQoY29tbWEsIHN3aXRjaENhc2UpOwotICAgIG91dC5wcmludChjb21tYSwgImZhbGxUaHJvdWdo
ID0gIiwgZmFsbFRocm91Z2goKSk7CisgICAgb3V0LnByaW50KGNvbW1hLCAiY2FzZXMgPSBbIiwg
bGlzdER1bXAobV92YWx1ZXMpLCAiXSIpOwogfQogCiBWYWx1ZSogU3dpdGNoVmFsdWU6OmNsb25l
SW1wbCgpIGNvbnN0CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTd2l0Y2hWYWx1
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N3aXRjaFZhbHVl
LmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N3aXRj
aFZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDEyICsyOCwxMyBAQAogCiAjaWYgRU5BQkxF
KEIzX0pJVCkKIAotI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCisjaW5jbHVkZSAiQjNDYXNl
Q29sbGVjdGlvbi5oIgogI2luY2x1ZGUgIkIzU3dpdGNoQ2FzZS5oIgorI2luY2x1ZGUgIkIzVmFs
dWUuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKLWNsYXNzIFN3aXRjaFZh
bHVlIDogcHVibGljIENvbnRyb2xWYWx1ZSB7CitjbGFzcyBTd2l0Y2hWYWx1ZSA6IHB1YmxpYyBW
YWx1ZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgYWNjZXB0cyhPcGNvZGUgb3Bjb2RlKSB7
IHJldHVybiBvcGNvZGUgPT0gU3dpdGNoOyB9CiAKQEAgLTQ3LDcxICs0OCwxNyBAQCBwdWJsaWM6
CiAgICAgCiAgICAgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBjYXNlVmFsdWVzKCkgY29uc3QgeyBy
ZXR1cm4gbV92YWx1ZXM7IH0KIAotICAgIEZyZXF1ZW50ZWRCbG9jayBmYWxsVGhyb3VnaCgpIGNv
bnN0IHsgcmV0dXJuIHN1Y2Nlc3NvcnMoKS5sYXN0KCk7IH0KLSAgICBGcmVxdWVudGVkQmxvY2sm
IGZhbGxUaHJvdWdoKCkgeyByZXR1cm4gc3VjY2Vzc29ycygpLmxhc3QoKTsgfQotCi0gICAgdW5z
aWduZWQgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG51bUNhc2VWYWx1ZXMoKTsgfQotICAgIFN3aXRj
aENhc2UgYXQodW5zaWduZWQgaW5kZXgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gU3dp
dGNoQ2FzZShjYXNlVmFsdWUoaW5kZXgpLCBzdWNjZXNzb3IoaW5kZXgpKTsKLSAgICB9Ci0gICAg
U3dpdGNoQ2FzZSBvcGVyYXRvcltdKHVuc2lnbmVkIGluZGV4KSBjb25zdAotICAgIHsKLSAgICAg
ICAgcmV0dXJuIGF0KGluZGV4KTsKLSAgICB9Ci0KLSAgICBjbGFzcyBpdGVyYXRvciB7Ci0gICAg
cHVibGljOgotICAgICAgICBpdGVyYXRvcigpCi0gICAgICAgICAgICA6IG1fc3dpdGNoKG51bGxw
dHIpCi0gICAgICAgICAgICAsIG1faW5kZXgoMCkKLSAgICAgICAgewotICAgICAgICB9Ci0KLSAg
ICAgICAgaXRlcmF0b3IoY29uc3QgU3dpdGNoVmFsdWUmIHN3aXRjaFZhbHVlLCB1bnNpZ25lZCBp
bmRleCkKLSAgICAgICAgICAgIDogbV9zd2l0Y2goJnN3aXRjaFZhbHVlKQotICAgICAgICAgICAg
LCBtX2luZGV4KGluZGV4KQotICAgICAgICB7Ci0gICAgICAgIH0KLQotICAgICAgICBTd2l0Y2hD
YXNlIG9wZXJhdG9yKigpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBtX3N3aXRjaC0+
YXQobV9pbmRleCk7Ci0gICAgICAgIH0KLQotICAgICAgICBpdGVyYXRvciYgb3BlcmF0b3IrKygp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIG1faW5kZXgrKzsKLSAgICAgICAgICAgIHJldHVybiAq
dGhpczsKLSAgICAgICAgfQotCi0gICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBpdGVyYXRv
ciYgb3RoZXIpIGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAgICAgIEFTU0VSVChtX3N3aXRjaCA9
PSBvdGhlci5tX3N3aXRjaCk7Ci0gICAgICAgICAgICByZXR1cm4gbV9pbmRleCA9PSBvdGhlci5t
X2luZGV4OwotICAgICAgICB9Ci0KLSAgICAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IGl0ZXJh
dG9yJiBvdGhlcikgY29uc3QKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuICEoKnRoaXMg
PT0gb3RoZXIpOwotICAgICAgICB9Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBjb25zdCBTd2l0
Y2hWYWx1ZSogbV9zd2l0Y2g7Ci0gICAgICAgIHVuc2lnbmVkIG1faW5kZXg7Ci0gICAgfTsKLQot
ICAgIHR5cGVkZWYgaXRlcmF0b3IgY29uc3RfaXRlcmF0b3I7Ci0KLSAgICBpdGVyYXRvciBiZWdp
bigpIGNvbnN0IHsgcmV0dXJuIGl0ZXJhdG9yKCp0aGlzLCAwKTsgfQotICAgIGl0ZXJhdG9yIGVu
ZCgpIGNvbnN0IHsgcmV0dXJuIGl0ZXJhdG9yKCp0aGlzLCBzaXplKCkpOyB9CisgICAgQ2FzZUNv
bGxlY3Rpb24gY2FzZXMoQmFzaWNCbG9jayogb3duZXIpIGNvbnN0IHsgcmV0dXJuIENhc2VDb2xs
ZWN0aW9uKHRoaXMsIG93bmVyKTsgfQorICAgIENhc2VDb2xsZWN0aW9uIGNhc2VzKCkgY29uc3Qg
eyByZXR1cm4gY2FzZXMob3duZXIpOyB9CiAKICAgICAvLyBUaGlzIHJlbW92ZXMgdGhlIGNhc2Ug
YW5kIHJlb3JkZXJzIHRoaW5ncyBhIGJpdC4gSWYgeW91J3JlIGl0ZXJhdGluZyB0aGUgY2FzZXMg
ZnJvbSAwIHRvIE4sCiAgICAgLy8gdGhlbiB5b3UgY2FuIGtlZXAgaXRlcmF0aW5nIGFmdGVyIHRo
aXMgc28gbG9uZyBhcyB5b3UgcmV2aXNpdCB0aGlzIHNhbWUgaW5kZXggKHdoaWNoIHdpbGwgbm93
CiAgICAgLy8gY29udGFpbiBzb21lIG90aGVyIGNhc2UgdmFsdWUpLiBUaGlzIHJlbW92ZXMgdGhl
IGNhc2UgdGhhdCB3YXMgcmVtb3ZlZC4KLSAgICBTd2l0Y2hDYXNlIHJlbW92ZUNhc2UodW5zaWdu
ZWQgaW5kZXgpOworICAgIFN3aXRjaENhc2UgcmVtb3ZlQ2FzZShCYXNpY0Jsb2NrKiwgdW5zaWdu
ZWQgaW5kZXgpOworCisgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBhcHBlbmRDYXNlKEJhc2lj
QmxvY2sqLCBjb25zdCBTd2l0Y2hDYXNlJik7CiAKLSAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lk
IGFwcGVuZENhc2UoY29uc3QgU3dpdGNoQ2FzZSYpOworICAgIHZvaWQgZHVtcFN1Y2Nlc3NvcnMo
QmFzaWNCbG9jayosIFByaW50U3RyZWFtJikgY29uc3Qgb3ZlcnJpZGU7CiAKIHByb3RlY3RlZDoK
ICAgICB2b2lkIGR1bXBNZXRhKENvbW1hUHJpbnRlciYsIFByaW50U3RyZWFtJikgY29uc3Qgb3Zl
cnJpZGU7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWxpZGF0ZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsaWRhdGUuY3BwCShyZXZp
c2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWxpZGF0ZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEwNyw4ICsxMDcsOCBAQCBwdWJsaWM6CiAgICAgICAgIGZvciAo
QmFzaWNCbG9jayogYmxvY2sgOiBibG9ja3MpIHsKICAgICAgICAgICAgIFZBTElEQVRFKGJsb2Nr
LT5zaXplKCkgPj0gMSwgKCJBdCAiLCAqYmxvY2spKTsKICAgICAgICAgICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBibG9jay0+c2l6ZSgpIC0gMTsgKytpKQotICAgICAgICAgICAgICAgIFZB
TElEQVRFKCFDb250cm9sVmFsdWU6OmFjY2VwdHMoYmxvY2stPmF0KGkpLT5vcGNvZGUoKSksICgi
QXQgIiwgKmJsb2NrLT5hdChpKSkpOwotICAgICAgICAgICAgVkFMSURBVEUoQ29udHJvbFZhbHVl
OjphY2NlcHRzKGJsb2NrLT5sYXN0KCktPm9wY29kZSgpKSwgKCJBdCAiLCAqYmxvY2stPmxhc3Qo
KSkpOworICAgICAgICAgICAgICAgIFZBTElEQVRFKCFibG9jay0+YXQoaSktPmVmZmVjdHMoKS50
ZXJtaW5hbCwgKCJBdCAiLCAqYmxvY2stPmF0KGkpKSk7CisgICAgICAgICAgICBWQUxJREFURShi
bG9jay0+bGFzdCgpLT5lZmZlY3RzKCkudGVybWluYWwsICgiQXQgIiwgKmJsb2NrLT5sYXN0KCkp
KTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBzdWNjZXNzb3Ig
OiBibG9jay0+c3VjY2Vzc29yQmxvY2tzKCkpIHsKICAgICAgICAgICAgICAgICBhbGxQcmVkZWNl
c3NvcnMuYWRkKHN1Y2Nlc3NvciwgSGFzaFNldDxCYXNpY0Jsb2NrKj4oKSkuaXRlcmF0b3ItPnZh
bHVlLmFkZChibG9jayk7CkBAIC0xMjksOCArMTI5LDYgQEAgcHVibGljOgogICAgICAgICAgICAg
ICAgIFZBTElEQVRFKGNoaWxkLT50eXBlKCkgIT0gVm9pZCwgKCJBdCAiLCAqdmFsdWUsICItPiIs
ICpjaGlsZCkpOwogICAgICAgICAgICAgc3dpdGNoICh2YWx1ZS0+b3Bjb2RlKCkpIHsKICAgICAg
ICAgICAgIGNhc2UgTm9wOgotICAgICAgICAgICAgY2FzZSBKdW1wOgotICAgICAgICAgICAgY2Fz
ZSBPb3BzOgogICAgICAgICAgICAgICAgIFZBTElEQVRFKCF2YWx1ZS0+bnVtQ2hpbGRyZW4oKSwg
KCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+dHlwZSgp
ID09IFZvaWQsICgiQXQgIiwgKnZhbHVlKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0z
NzcsMTUgKzM3NSwzMiBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgVkFMSURBVEUoIXZhbHVl
LT5udW1DaGlsZHJlbigpLCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAgICAgIFZBTElE
QVRFKHZhbHVlLT50eXBlKCkgIT0gVm9pZCwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgSnVtcDoKKyAgICAgICAgICAgICAgICBWQUxJ
REFURSghdmFsdWUtPm51bUNoaWxkcmVuKCksICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAg
ICAgICAgVkFMSURBVEUodmFsdWUtPnR5cGUoKSA9PSBWb2lkLCAoIkF0ICIsICp2YWx1ZSkpOwor
ICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlT3duZXIuZ2V0KHZhbHVlKS0+bnVtU3VjY2Vz
c29ycygpID09IDEpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBP
b3BzOgorICAgICAgICAgICAgICAgIFZBTElEQVRFKCF2YWx1ZS0+bnVtQ2hpbGRyZW4oKSwgKCJB
dCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+dHlwZSgpID09
IFZvaWQsICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAgICAgVkFMSURBVEUoIXZhbHVl
T3duZXIuZ2V0KHZhbHVlKS0+bnVtU3VjY2Vzc29ycygpKTsKKyAgICAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgIGNhc2UgUmV0dXJuOgogICAgICAgICAgICAgICAgIFZBTElEQVRFKHZh
bHVlLT5udW1DaGlsZHJlbigpID09IDEsICgiQXQgIiwgKnZhbHVlKSk7CiAgICAgICAgICAgICAg
ICAgVkFMSURBVEUodmFsdWUtPnR5cGUoKSA9PSBWb2lkLCAoIkF0ICIsICp2YWx1ZSkpOworICAg
ICAgICAgICAgICAgIFZBTElEQVRFKCF2YWx1ZU93bmVyLmdldCh2YWx1ZSktPm51bVN1Y2Nlc3Nv
cnMoKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIEJyYW5jaDoK
KyAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+bnVtQ2hpbGRyZW4oKSA9PSAxLCAoIkF0
ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIFZBTElEQVRFKGlzSW50KHZhbHVlLT5jaGls
ZCgwKS0+dHlwZSgpKSwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFU
RSh2YWx1ZS0+dHlwZSgpID09IFZvaWQsICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAg
ICAgVkFMSURBVEUodmFsdWVPd25lci5nZXQodmFsdWUpLT5udW1TdWNjZXNzb3JzKCkgPT0gMik7
CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIFN3aXRjaDoKICAgICAg
ICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+bnVtQ2hpbGRyZW4oKSA9PSAxLCAoIkF0ICIsICp2
YWx1ZSkpOwogICAgICAgICAgICAgICAgIFZBTElEQVRFKGlzSW50KHZhbHVlLT5jaGlsZCgwKS0+
dHlwZSgpKSwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1
ZS0+dHlwZSgpID09IFZvaWQsICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAgICAgVkFM
SURBVEUodmFsdWVPd25lci5nZXQodmFsdWUpLT5udW1TdWNjZXNzb3JzKCkgPT0gdmFsdWUtPmFz
PFN3aXRjaFZhbHVlPigpLT5udW1DYXNlVmFsdWVzKCkgKyAxKTsKICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
VmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVl
LmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFs
dWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjUsNiArMTI1LDUwIEBAIHZvaWQgVmFsdWU6OnJl
cGxhY2VXaXRoUGhpKCkKICAgICB0aGlzLT5tX2luZGV4ID0gaW5kZXg7CiB9CiAKK3ZvaWQgVmFs
dWU6OnJlcGxhY2VXaXRoSnVtcChCYXNpY0Jsb2NrKiBvd25lciwgY29uc3QgRnJlcXVlbnRlZEJs
b2NrJiB0YXJnZXQpCit7CisgICAgUkVMRUFTRV9BU1NFUlQob3duZXItPmxhc3QoKSA9PSB0aGlz
KTsKKyAgICAKKyAgICB1bnNpZ25lZCBpbmRleCA9IG1faW5kZXg7CisgICAgT3JpZ2luIG9yaWdp
biA9IG1fb3JpZ2luOworICAgIAorICAgIHRoaXMtPn5WYWx1ZSgpOworICAgIAorICAgIG5ldyAo
dGhpcykgVmFsdWUoSnVtcCwgVm9pZCwgb3JpZ2luKTsKKyAgICAKKyAgICB0aGlzLT5vd25lciA9
IG93bmVyOworICAgIHRoaXMtPm1faW5kZXggPSBpbmRleDsKKyAgICAKKyAgICBvd25lci0+c2V0
U3VjY2Vzc29ycyh0YXJnZXQpOworfQorCit2b2lkIFZhbHVlOjpyZXBsYWNlV2l0aE9vcHMoQmFz
aWNCbG9jayogb3duZXIpCit7CisgICAgUkVMRUFTRV9BU1NFUlQob3duZXItPmxhc3QoKSA9PSB0
aGlzKTsKKyAgICAKKyAgICB1bnNpZ25lZCBpbmRleCA9IG1faW5kZXg7CisgICAgT3JpZ2luIG9y
aWdpbiA9IG1fb3JpZ2luOworICAgIAorICAgIHRoaXMtPn5WYWx1ZSgpOworICAgIAorICAgIG5l
dyAodGhpcykgVmFsdWUoT29wcywgVm9pZCwgb3JpZ2luKTsKKyAgICAKKyAgICB0aGlzLT5vd25l
ciA9IG93bmVyOworICAgIHRoaXMtPm1faW5kZXggPSBpbmRleDsKKyAgICAKKyAgICBvd25lci0+
Y2xlYXJTdWNjZXNzb3JzKCk7Cit9CisKK3ZvaWQgVmFsdWU6OnJlcGxhY2VXaXRoSnVtcChjb25z
dCBGcmVxdWVudGVkQmxvY2smIHRhcmdldCkKK3sKKyAgICByZXBsYWNlV2l0aEp1bXAob3duZXIs
IHRhcmdldCk7Cit9CisKK3ZvaWQgVmFsdWU6OnJlcGxhY2VXaXRoT29wcygpCit7CisgICAgcmVw
bGFjZVdpdGhPb3BzKG93bmVyKTsKK30KKwogdm9pZCBWYWx1ZTo6ZHVtcChQcmludFN0cmVhbSYg
b3V0KSBjb25zdAogewogICAgIGJvb2wgaXNDb25zdGFudCA9IGZhbHNlOwpAQCAtMTg5LDYgKzIz
MywxOSBAQCB2b2lkIFZhbHVlOjpkZWVwRHVtcChjb25zdCBQcm9jZWR1cmUqIHByCiAgICAgb3V0
LnByaW50KCIpIik7CiB9CiAKK3ZvaWQgVmFsdWU6OmR1bXBTdWNjZXNzb3JzKEJhc2ljQmxvY2sq
IGJsb2NrLCBQcmludFN0cmVhbSYgb3V0KSBjb25zdAoreworICAgIC8vIE5vdGUgdGhhdCB0aGlz
IG11c3Qgbm90IGNyYXNoIGlmIHdlIGhhdmUgdGhlIHdyb25nIG51bWJlciBvZiBzdWNjZXNzb3Jz
LCBzaW5jZSBzb21lb25lCisgICAgLy8gZGVidWdnaW5nIGEgbnVtYmVyLW9mLXN1Y2Nlc3NvcnMg
YnVnIHdpbGwgcHJvYmFibHkgd2FudCB0byBkdW1wIElSIQorICAgIAorICAgIGlmIChvcGNvZGUo
KSA9PSBCcmFuY2ggJiYgYmxvY2stPm51bVN1Y2Nlc3NvcnMoKSA9PSAyKSB7CisgICAgICAgIG91
dC5wcmludCgiVGhlbjoiLCBibG9jay0+dGFrZW4oKSwgIiwgRWxzZToiLCBibG9jay0+bm90VGFr
ZW4oKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgb3V0LnByaW50KGxpc3RE
dW1wKGJsb2NrLT5zdWNjZXNzb3JzKCkpKTsKK30KKwogVmFsdWUqIFZhbHVlOjpuZWdDb25zdGFu
dChQcm9jZWR1cmUmKSBjb25zdAogewogICAgIHJldHVybiBudWxscHRyOwpAQCAtNTUyLDYgKzYw
OSw3IEBAIEVmZmVjdHMgVmFsdWU6OmVmZmVjdHMoKSBjb25zdAogICAgIGNhc2UgSnVtcDoKICAg
ICBjYXNlIEJyYW5jaDoKICAgICBjYXNlIFN3aXRjaDoKKyAgICBjYXNlIFBvbHlKdW1wOgogICAg
IGNhc2UgUmV0dXJuOgogICAgIGNhc2UgT29wczoKICAgICAgICAgcmVzdWx0LnRlcm1pbmFsID0g
dHJ1ZTsKQEAgLTU2MCw2ICs2MTgsMTEgQEAgRWZmZWN0cyBWYWx1ZTo6ZWZmZWN0cygpIGNvbnN0
CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorYm9vbCBWYWx1ZTo6aXNDbG9uZWFibGUoKSBjb25z
dAoreworICAgIHJldHVybiB0cnVlOworfQorCiBWYWx1ZUtleSBWYWx1ZTo6a2V5KCkgY29uc3QK
IHsKICAgICBzd2l0Y2ggKG9wY29kZSgpKSB7CkBAIC03MTMsNiArNzc2LDEwIEBAIFR5cGUgVmFs
dWU6OnR5cGVGb3IoT3Bjb2RlIG9wY29kZSwgVmFsdWUKICAgICAgICAgfQogICAgICAgICByZXR1
cm4gVm9pZDsKICAgICBjYXNlIE5vcDoKKyAgICBjYXNlIEp1bXA6CisgICAgY2FzZSBCcmFuY2g6
CisgICAgY2FzZSBSZXR1cm46CisgICAgY2FzZSBPb3BzOgogICAgICAgICByZXR1cm4gVm9pZDsK
ICAgICBjYXNlIFNlbGVjdDoKICAgICAgICAgQVNTRVJUKHNlY29uZENoaWxkKTsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuaAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMTA5LDkgKzEwOSwx
OSBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXBsYWNlV2l0aE5vcElnbm9yaW5nVHlwZSgpOwogICAg
IAogICAgIHZvaWQgcmVwbGFjZVdpdGhQaGkoKTsKKyAgICAKKyAgICAvLyBUaGVzZSB0cmFuc2Zv
cm1hdGlvbnMgYXJlIG9ubHkgdmFsaWQgZm9yIHRlcm1pbmFscy4KKyAgICB2b2lkIHJlcGxhY2VX
aXRoSnVtcChCYXNpY0Jsb2NrKiBvd25lciwgY29uc3QgRnJlcXVlbnRlZEJsb2NrJik7CisgICAg
dm9pZCByZXBsYWNlV2l0aE9vcHMoQmFzaWNCbG9jayogb3duZXIpOworICAgIAorICAgIC8vIFlv
dSBjYW4gdXNlIHRoaXMgZm9ybSBpZiBvd25lcnMgYXJlIHZhbGlkLiBUaGV5J3JlIHVzdWFsbHkg
bm90IHZhbGlkLgorICAgIHZvaWQgcmVwbGFjZVdpdGhKdW1wKGNvbnN0IEZyZXF1ZW50ZWRCbG9j
ayYpOworICAgIHZvaWQgcmVwbGFjZVdpdGhPb3BzKCk7CiAKICAgICB2b2lkIGR1bXAoUHJpbnRT
dHJlYW0mKSBjb25zdDsKICAgICB2b2lkIGRlZXBEdW1wKGNvbnN0IFByb2NlZHVyZSosIFByaW50
U3RyZWFtJikgY29uc3Q7CisgICAgCisgICAgdmlydHVhbCB2b2lkIGR1bXBTdWNjZXNzb3JzKEJh
c2ljQmxvY2sqLCBQcmludFN0cmVhbSYpIGNvbnN0OwogCiAgICAgLy8gVGhpcyBpcyBob3cgeW91
IGNhc3QgVmFsdWVzLiBGb3IgZXhhbXBsZSwgaWYgeW91IHdhbnQgdG8gZG8gc29tZXRoaW5nIHBy
b3ZpZGVkIHRoYXQgd2UgaGF2ZSBhCiAgICAgLy8gQXJndW1lbnRSZWdWYWx1ZSwgeW91IGNhbiBk
bzoKQEAgLTIyMyw2ICsyMzMsMTEgQEAgcHVibGljOgogICAgIGJvb2wgaXNMaWtlTm9uWmVybygp
IGNvbnN0IHsgcmV0dXJuIGFzVHJpU3RhdGUoKSA9PSBUcnVlVHJpU3RhdGU7IH0KIAogICAgIEVm
ZmVjdHMgZWZmZWN0cygpIGNvbnN0OworICAgIAorICAgIC8vIFNvbWUgb3BlcmF0aW9ucyB3aWxs
IHJlZnVzZSB0byBiZSBjbG9uZWQuIFRoaXMgaGFwcGVucyB3aGVuIHRoZSBvcGVyYXRpb24gaGFz
IHNvbWUgaW5zaWRlCisgICAgLy8ga25vd2xlZGdlIGFib3V0IHRoZSByZWxhdGlvbnNoaXAgYmV0
d2VlbiBpdHMgaWRlbnRpdHkgYW5kIHRoZSBpZGVudGl0eSBvZiB0aGUgY29kZSBpdCB3aWxsCisg
ICAgLy8gZ2VuZXJhdGUuCisgICAgdmlydHVhbCBib29sIGlzQ2xvbmVhYmxlKCkgY29uc3Q7CiAK
ICAgICAvLyBUaGlzIHJldHVybnMgYSBWYWx1ZUtleSB0aGF0IGRlc2NyaWJlcyB0aGF0IHRoaXMg
VmFsdWUgcmV0dXJucyB3aGVuIGl0IGV4ZWN1dGVzLiBSZXR1cm5zIGFuCiAgICAgLy8gZW1wdHkg
VmFsdWVLZXkgaWYgdGhpcyBWYWx1ZSBpcyBpbXB1cmUuIE5vdGUgdGhhdCBhbiBvcGVyYXRpb24g
dGhhdCByZXR1cm5zIFZvaWQgY291bGQgc3RpbGwKQEAgLTI2NCw2ICsyNzksOCBAQCBwcml2YXRl
OgogICAgICAgICBjYXNlIEZyYW1lUG9pbnRlcjoKICAgICAgICAgY2FzZSBOb3A6CiAgICAgICAg
IGNhc2UgUGhpOgorICAgICAgICBjYXNlIEp1bXA6CisgICAgICAgIGNhc2UgT29wczoKICAgICAg
ICAgICAgIGlmIChVTkxJS0VMWShudW1BcmdzKSkKICAgICAgICAgICAgICAgICBiYWRPcGNvZGUo
b3Bjb2RlLCBudW1BcmdzKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjg0LDYgKzMwMSw4IEBA
IHByaXZhdGU6CiAgICAgICAgIGNhc2UgRG91YmxlVG9GbG9hdDoKICAgICAgICAgY2FzZSBJVG9G
OgogICAgICAgICBjYXNlIEJpdHdpc2VDYXN0OgorICAgICAgICBjYXNlIEJyYW5jaDoKKyAgICAg
ICAgY2FzZSBSZXR1cm46CiAgICAgICAgICAgICBpZiAoVU5MSUtFTFkobnVtQXJncyAhPSAxKSkK
ICAgICAgICAgICAgICAgICBiYWRPcGNvZGUob3Bjb2RlLCBudW1BcmdzKTsKICAgICAgICAgICAg
IGJyZWFrOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAJKHJldmlzaW9uIDIw
MjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiQjNDb25zdFB0clZhbHVlLmgiCiAjaW5j
bHVkZSAiQjNDb250cm9sVmFsdWUuaCIKICNpbmNsdWRlICJCM0VmZmVjdHMuaCIKKyNpbmNsdWRl
ICJCM1BvbHlKdW1wVmFsdWUuaCIKICNpbmNsdWRlICJCM01hdGhFeHRyYXMuaCIKICNpbmNsdWRl
ICJCM01lbW9yeVZhbHVlLmgiCiAjaW5jbHVkZSAiQjNQcm9jZWR1cmUuaCIKQEAgLTQ2LDYgKzQ3
LDcgQEAKICNpbmNsdWRlICJCM1Vwc2lsb25WYWx1ZS5oIgogI2luY2x1ZGUgIkIzVmFsaWRhdGUu
aCIKICNpbmNsdWRlICJCM1ZhbHVlSW5saW5lcy5oIgorI2luY2x1ZGUgIkIzVmFyaWFibGVWYWx1
ZS5oIgogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgogI2luY2x1ZGUgIkluaXRpYWxpemVUaHJl
YWRpbmcuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCkBAIC01NCw2ICs1Niw3IEBACiAjaW5j
bHVkZSAiVk0uaCIKICNpbmNsdWRlIDxjbWF0aD4KICNpbmNsdWRlIDxzdHJpbmc+CisjaW5jbHVk
ZSA8d3RmL0xpc3REdW1wLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYv
TnVtYmVyT2ZDb3Jlcy5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KQEAgLTc1LDYgKzc4
LDExIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M6OkIzOwogCiBuYW1lc3BhY2UgewogCitib29sIHNo
b3VsZEJlVmVyYm9zZSgpCit7CisgICAgcmV0dXJuIHNob3VsZER1bXBJUihCM01vZGUpOworfQor
CiBTdGF0aWNMb2NrIGNyYXNoTG9jazsKIAogLy8gTm90aGluZyBmYW5jeSBmb3Igbm93OyB3ZSBq
dXN0IHVzZSB0aGUgZXhpc3RpbmcgV1RGIGFzc2VydGlvbiBtYWNoaW5lcnkuCkBAIC0xOTQsNyAr
MjAyLDcgQEAgdm9pZCB0ZXN0NDIoKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGNvbnN0NDIgPSByb290LT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNvbnN0NDIpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBj
b25zdDQyKTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jKSA9PSA0Mik7CiB9
CkBAIC0yMDQsNyArMjEyLDcgQEAgdm9pZCB0ZXN0TG9hZDQyKCkKICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIGludCB4ID0g
NDI7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZCwg
SW50MzIsIE9yaWdpbigpLApAQCAtMjIwLDcgKzIyOCw3IEBAIHZvaWQgdGVzdExvYWRXaXRoT2Zm
c2V0SW1wbChpbnQzMl90IG9mZnMKICAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKICAgICAgICAgaW50NjRfdCB4ID0gLTQyOwogICAgICAgICBWYWx1ZSogYmFzZSA9
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIwKTsKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFs
dWU+KAogICAgICAgICAgICAgICAgIHByb2MsIExvYWQsIEludDY0LCBPcmlnaW4oKSwKQEAgLTIz
NSw3ICsyNDMsNyBAQCB2b2lkIHRlc3RMb2FkV2l0aE9mZnNldEltcGwoaW50MzJfdCBvZmZzCiAg
ICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgICAgIGludDMy
X3QgeCA9IC00MjsKICAgICAgICAgVmFsdWUqIGJhc2UgPSByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgICAgICBw
cm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2luKCksCkBAIC0yODgsNyArMjk2LDcgQEAgdm9pZCB0ZXN0
QXJnKGludCBhcmd1bWVudCkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKIApAQCAtMjk5LDcgKzMw
Nyw3IEBAIHZvaWQgdGVzdFJldHVybkNvbnN0NjQoaW50NjRfdCB2YWx1ZSkKIHsKICAgICBQcm9j
ZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKSk7CiAKQEAgLTMx
MSw3ICszMTksNyBAQCB2b2lkIHRlc3RBZGRBcmcoaW50IGEpCiAgICAgUHJvY2VkdXJlIHByb2M7
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFs
dWUgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3Jp
Z2luKCksIHZhbHVlLCB2YWx1ZSkpOwogCkBAIC0zMjIsNyArMzMwLDcgQEAgdm9pZCB0ZXN0QWRk
QXJncyhpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAtMzM2LDcgKzM0NCw3IEBAIHZvaWQgdGVzdEFk
ZEFyZ0ltbShpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAtMzUwLDcgKzM1OCw3IEBAIHZvaWQgdGVz
dEFkZEltbUFyZyhpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAtMzcwLDcgKzM3OCw3IEBAIHZvaWQg
dGVzdEFkZEFyZ01lbShpbnQ2NF90IGEsIGludDY0X3QgYikKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApLAogICAgICAgICBsb2FkKTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHBy
b2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgaW50NjRfdCBpbnB1dE91dHB1dCA9
IGI7CiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgYSwgJmlucHV0T3V0
cHV0KSk7CkBAIC0zODYsNyArMzk0LDcgQEAgdm9pZCB0ZXN0QWRkTWVtQXJnKGludDY0X3QgYSwg
aW50NjRfdCBiKQogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEFkZCwgT3JpZ2luKCksCiAgICAgICAgIGxvYWQsCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIx
KSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRf
dD4ocHJvYywgJmEsIGIpID09IGEgKyBiKTsKIH0KQEAgLTQwMSw3ICs0MDksNyBAQCB2b2lkIHRl
c3RBZGRJbW1NZW0oaW50NjRfdCBhLCBpbnQ2NF90IGIpCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKSwKICAgICAgICAgbG9hZCk7CiAgICAg
cm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3Vs
dCwgYWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDApKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDAp
KTsKIAogICAgIGludDY0X3QgaW5wdXRPdXRwdXQgPSBiOwogICAgIENIRUNLKCFjb21waWxlQW5k
UnVuPGludD4ocHJvYywgJmlucHV0T3V0cHV0KSk7CkBAIC00MTQsNyArNDIyLDcgQEAgdm9pZCB0
ZXN0QWRkQXJnMzIoaW50IGEpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5j
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgdmFsdWUsIHZhbHVlKSk7CiAKQEAgLTQyNSw3ICs0MzMs
NyBAQCB2b2lkIHRlc3RBZGRBcmdzMzIoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBw
cm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKQEAgLTQ0OSw3ICs0
NTcsNyBAQCB2b2lkIHRlc3RBZGRBcmdNZW0zMihpbnQzMl90IGEsIGludDMyX3QgCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIwKSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYXJndW1lbnQsIGxvYWQpOwogICAgIHJvb3QtPmFw
cGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGFkZHJl
c3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAg
ICBpbnQzMl90IGlucHV0T3V0cHV0ID0gYjsKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQz
Ml90Pihwcm9jLCBhLCAmaW5wdXRPdXRwdXQpKTsKQEAgLTQ2NSw3ICs0NzMsNyBAQCB2b2lkIHRl
c3RBZGRNZW1BcmczMihpbnQzMl90IGEsIGludDMyX3QgCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIxKSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgbG9hZCwgYXJndW1lbnQpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsICZhLCBiKSA9PSBh
ICsgYik7CiB9CkBAIC00ODAsNyArNDg4LDcgQEAgdm9pZCB0ZXN0QWRkSW1tTWVtMzIoaW50MzJf
dCBhLCBpbnQzMl90IAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgYSksCiAgICAgICAgIGxvYWQpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1v
cnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGFkZHJlc3MpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3Qt
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBpbnQzMl90IGlu
cHV0T3V0cHV0ID0gYjsKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsICZpbnB1
dE91dHB1dCkpOwpAQCAtNDk1LDcgKzUwMyw3IEBAIHZvaWQgdGVzdEFkZEFyZ1plcm9JbW1aRGVm
KCkKICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BS
MCkpOwogICAgIFZhbHVlKiBjb25zdFplcm8gPSByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgQWRkLCBPcmlnaW4oKSwKQEAgLTUxNSw3ICs1MjMsNyBAQCB2b2lkIHRlc3RBZGRMb2Fk
VHdpY2UoKQogICAgICAgICBWYWx1ZSogbG9hZCA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2luKCksCiAgICAgICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZ2YWx1ZSkp
OwotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4o
KSwgbG9hZCwgbG9hZCkpOwogCkBAIC01MzIsNyArNTQwLDcgQEAgdm9pZCB0ZXN0QWRkQXJnRG91
YmxlKGRvdWJsZSBhKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCB2YWx1ZSwgdmFsdWUpKTsK
IApAQCAtNTQ1LDcgKzU1Myw3IEBAIHZvaWQgdGVzdEFkZEFyZ3NEb3VibGUoZG91YmxlIGEsIGRv
dWJsZSAKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVl
KiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1l
bnRGUFIxKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgdmFsdWVB
LCB2YWx1ZUIpKTsKIApAQCAtNTU4LDcgKzU2Niw3IEBAIHZvaWQgdGVzdEFkZEFyZ0ltbURvdWJs
ZShkb3VibGUgYSwgZG91YmwKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIHZhbHVl
QiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVC
KSk7CiAKQEAgLTU3MSw3ICs1NzksNyBAQCB2b2lkIHRlc3RBZGRJbW1BcmdEb3VibGUoZG91Ymxl
IGEsIGRvdWJsCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBW
YWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBhKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50
UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBA
IC01ODQsNyArNTkyLDcgQEAgdm9pZCB0ZXN0QWRkSW1tc0RvdWJsZShkb3VibGUgYSwgZG91Ymxl
IAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZh
bHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
YSk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgYik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3Jp
Z2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTYwMCw3ICs2MDgsNyBAQCB2b2lkIHRlc3RB
ZGRBcmdGbG9hdChmbG9hdCBhKQogICAgIFZhbHVlKiBmbG9hdFZhbHVlID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAg
IFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2lu
KCksIGZsb2F0VmFsdWUsIGZsb2F0VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxl
QW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2Vf
Y2FzdDxpbnQzMl90PihhICsgYSkpKTsKQEAgLTYxOCw3ICs2MjYsNyBAQCB2b2lkIHRlc3RBZGRB
cmdzRmxvYXQoZmxvYXQgYSwgZmxvYXQgYikKICAgICBWYWx1ZSogZmxvYXRWYWx1ZTIgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQy
aW50MzIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEFkZCwgT3JpZ2luKCksIGZsb2F0VmFsdWUxLCBmbG9hdFZhbHVlMik7CiAgICAgVmFsdWUqIHJl
c3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2lu
KCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50
aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90Pihh
KSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgKyBi
KSkpOwogfQpAQCAtNjMzLDcgKzY0MSw3IEBAIHZvaWQgdGVzdEFkZEFyZ0ltbUZsb2F0KGZsb2F0
IGEsIGZsb2F0IGIKICAgICBWYWx1ZSogY29uc3RWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25z
dEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBmbG9hdFZhbHVlLCBjb25z
dFZhbHVlKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMy
KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywg
Yml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgKyBiKSkp
OwogfQpAQCAtNjQ4LDcgKzY1Niw3IEBAIHZvaWQgdGVzdEFkZEltbUFyZ0Zsb2F0KGZsb2F0IGEs
IGZsb2F0IGIKICAgICBWYWx1ZSogY29uc3RWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZs
b2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBjb25zdFZhbHVlLCBmbG9hdFZh
bHVlKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsK
IAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0
d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgKyBiKSkpOwog
fQpAQCAtNjYxLDcgKzY2OSw3IEBAIHZvaWQgdGVzdEFkZEltbXNGbG9hdChmbG9hdCBhLCBmbG9h
dCBiKQogICAgIFZhbHVlKiBjb25zdFZhbHVlMiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBjb25zdFZhbHVlMSwgY29uc3RWYWx1
ZTIpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
Qml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwog
CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jKSwgYml0
d2lzZV9jYXN0PGludDMyX3Q+KGEgKyBiKSkpOwogfQpAQCAtNjc3LDcgKzY4NSw3IEBAIHZvaWQg
dGVzdEFkZEFyZ0Zsb2F0V2l0aFVzZWxlc3NEb3VibGVDb24KICAgICBWYWx1ZSogcmVzdWx0ID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBhc0RvdWJsZSwgYXNE
b3VibGUpOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgVmFsdWUqIHJlc3Vs
dDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCks
IGZsb2F0UmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRl
bnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+
KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgKyBhKSkpOwogfQpAQCAtNjk3LDcgKzcwNSw3
IEBAIHZvaWQgdGVzdEFkZEFyZ3NGbG9hdFdpdGhVc2VsZXNzRG91YmxlQ28KICAgICBWYWx1ZSog
cmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBhc0Rv
dWJsZTEsIGFzRG91YmxlMik7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICBW
YWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0
LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAg
Q0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nh
c3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSksIGJpdHdpc2VfY2FzdDxp
bnQzMl90PihhICsgYikpKTsKIH0KQEAgLTcxOSw3ICs3MjcsNyBAQCB2b2lkIHRlc3RBZGRBcmdz
RmxvYXRXaXRoRWZmZWN0ZnVsRG91YmxlCiAgICAgVmFsdWUqIGRvdWJsZUFkZHJlc3MgPSByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMik7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9y
ZSwgT3JpZ2luKCksIHJlc3VsdCwgZG91YmxlQWRkcmVzcyk7CiAgICAgVmFsdWUqIHJlc3VsdDMy
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZs
b2F0UmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIGRvdWJsZSBlZmZlY3Qg
PSAwOwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywg
Yml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYiksICZlZmZl
Y3QpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSArIGIpKSk7CkBAIC03MzIsNyArNzQwLDcgQEAg
dm9pZCB0ZXN0TXVsQXJnKGludCBhKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCB2YWx1ZSwgdmFsdWUpKTsKIApAQCAtNzU5LDcg
Kzc2Nyw3IEBAIHZvaWQgdGVzdE11bEFyZ1N0b3JlKGludCBhKQogICAgICAgICBwcm9jLCBTdG9y
ZSwgT3JpZ2luKCksIG11bCwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAmbXVsU2xvdCkpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgMCkpOwogCiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCBhKSk7
CkBAIC03NzQsNyArNzgyLDcgQEAgdm9pZCB0ZXN0TXVsQWRkQXJnKGludCBhKQogICAgIFZhbHVl
KiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgIHByb2MsIFRydW5jLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
CiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAtNzg4LDcgKzc5Niw3IEBAIHZv
aWQgdGVzdE11bEFyZ3MoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgTXVsLCBPcmlnaW4oKSwKQEAgLTgwMiw3ICs4MTAsNyBAQCB2
b2lkIHRlc3RNdWxBcmdJbW0oaW50NjRfdCBhLCBpbnQ2NF90IGIpCiB7CiAgICAgUHJvY2VkdXJl
IHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBNdWwsIE9yaWdpbigpLApAQCAtODE2LDcg
KzgyNCw3IEBAIHZvaWQgdGVzdE11bEltbUFyZyhpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2Vk
dXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBNdWwsIE9yaWdpbigpLApAQCAtODMw
LDcgKzgzOCw3IEBAIHZvaWQgdGVzdE11bEFyZ3MzMihpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJv
Y2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBNdWwsIE9yaWdpbigpLApAQCAt
ODUzLDcgKzg2MSw3IEBAIHZvaWQgdGVzdE11bExvYWRUd2ljZSgpCiAgICAgICAgIFZhbHVlKiBs
b2FkID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgIHByb2MsIExv
YWQsIEludDMyLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0
clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJnZhbHVlKSk7Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBsb2FkLCBsb2FkKSk7CiAKQEAgLTg3
NSw3ICs4ODMsNyBAQCB2b2lkIHRlc3RNdWxBZGRBcmdzTGVmdCgpCiAgICAgVmFsdWUqIGFyZzIg
PSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMik7CiAgICAgVmFsdWUqIG11bHRpcGxpZWQgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGFyZzAsIGFyZzEpOwogICAgIFZhbHVlKiBh
ZGRlZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgbXVsdGlw
bGllZCwgYXJnMik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgYWRkZWQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxl
KHByb2MpOwogCkBAIC04OTksNyArOTA3LDcgQEAgdm9pZCB0ZXN0TXVsQWRkQXJnc1JpZ2h0KCkK
ICAgICBWYWx1ZSogYXJnMiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKTsKICAgICBWYWx1ZSogbXVsdGlwbGll
ZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgYXJnMSwgYXJn
Mik7CiAgICAgVmFsdWUqIGFkZGVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQs
IE9yaWdpbigpLCBhcmcwLCBtdWx0aXBsaWVkKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKIAogICAgIGF1
dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKQEAgLTkyNiw3ICs5MzQsNyBAQCB2b2lkIHRlc3RN
dWxBZGRBcmdzTGVmdDMyKCkKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpKTsKICAgICBWYWx1ZSog
bXVsdGlwbGllZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwg
YXJnMCwgYXJnMSk7CiAgICAgVmFsdWUqIGFkZGVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBBZGQsIE9yaWdpbigpLCBtdWx0aXBsaWVkLCBhcmcyKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsK
IAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKQEAgLTk1Myw3ICs5NjEsNyBAQCB2
b2lkIHRlc3RNdWxBZGRBcmdzUmlnaHQzMigpCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKSk7CiAg
ICAgVmFsdWUqIG11bHRpcGxpZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwg
T3JpZ2luKCksIGFyZzEsIGFyZzIpOwogICAgIFZhbHVlKiBhZGRlZCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYXJnMCwgbXVsdGlwbGllZCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBhZGRlZCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC05NzcsNyAr
OTg1LDcgQEAgdm9pZCB0ZXN0TXVsU3ViQXJnc0xlZnQoKQogICAgIFZhbHVlKiBhcmcyID0gcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjIpOwogICAgIFZhbHVlKiBtdWx0aXBsaWVkID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBhcmcwLCBhcmcxKTsKICAgICBWYWx1ZSogYWRkZWQg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIG11bHRpcGxpZWQs
IGFyZzIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIGFkZGVkKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9j
KTsKIApAQCAtMTAwMSw3ICsxMDA5LDcgQEAgdm9pZCB0ZXN0TXVsU3ViQXJnc1JpZ2h0KCkKICAg
ICBWYWx1ZSogYXJnMiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKTsKICAgICBWYWx1ZSogbXVsdGlwbGllZCA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgYXJnMSwgYXJnMik7
CiAgICAgVmFsdWUqIGFkZGVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9y
aWdpbigpLCBhcmcwLCBtdWx0aXBsaWVkKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKIAogICAgIGF1dG8g
Y29kZSA9IGNvbXBpbGUocHJvYyk7CiAKQEAgLTEwMjgsNyArMTAzNiw3IEBAIHZvaWQgdGVzdE11
bFN1YkFyZ3NMZWZ0MzIoKQogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMikpOwogICAgIFZhbHVlKiBt
dWx0aXBsaWVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBh
cmcwLCBhcmcxKTsKICAgICBWYWx1ZSogYWRkZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIFN1YiwgT3JpZ2luKCksIG11bHRpcGxpZWQsIGFyZzIpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOwog
CiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAtMTA1NSw3ICsxMDYzLDcgQEAg
dm9pZCB0ZXN0TXVsU3ViQXJnc1JpZ2h0MzIoKQogICAgICAgICByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMikpOwog
ICAgIFZhbHVlKiBtdWx0aXBsaWVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWws
IE9yaWdpbigpLCBhcmcxLCBhcmcyKTsKICAgICBWYWx1ZSogYWRkZWQgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIGFyZzAsIG11bHRpcGxpZWQpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVk
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgYWRkZWQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAtMTA3OSw3
ICsxMDg3LDcgQEAgdm9pZCB0ZXN0TXVsTmVnQXJncygpCiAgICAgVmFsdWUqIG11bHRpcGxpZWQg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGFyZzAsIGFyZzEp
OwogICAgIFZhbHVlKiB6ZXJvID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDApOwogICAgIFZhbHVlKiBhZGRlZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgU3ViLCBPcmlnaW4oKSwgemVybywgbXVsdGlwbGllZCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7
CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC0xMTAzLDcgKzExMTEsNyBA
QCB2b2lkIHRlc3RNdWxOZWdBcmdzMzIoKQogICAgIFZhbHVlKiBtdWx0aXBsaWVkID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBhcmcwLCBhcmcxKTsKICAgICBW
YWx1ZSogemVybyA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCAwKTsKICAgICBWYWx1ZSogYWRkZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1
YiwgT3JpZ2luKCksIHplcm8sIG11bHRpcGxpZWQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOwogCiAgICAg
YXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAtMTEyMCw3ICsxMTI4LDcgQEAgdm9pZCB0
ZXN0TXVsQXJnRG91YmxlKGRvdWJsZSBhKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1
bWVudEZQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCB2YWx1
ZSwgdmFsdWUpKTsKIApAQCAtMTEzMyw3ICsxMTQxLDcgQEAgdm9pZCB0ZXN0TXVsQXJnc0RvdWJs
ZShkb3VibGUgYSwgZG91YmxlIAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogdmFs
dWVCID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBG
UFJJbmZvOjphcmd1bWVudEZQUjEpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9y
aWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC0xMTQ2LDcgKzExNTQsNyBAQCB2b2lkIHRl
c3RNdWxBcmdJbW1Eb3VibGUoZG91YmxlIGEsIGRvdWJsCiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwog
ICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIGIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigp
LCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC0xMTU5LDcgKzExNjcsNyBAQCB2b2lkIHRlc3RNdWxJ
bW1BcmdEb3VibGUoZG91YmxlIGEsIGRvdWJsCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91
YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1
bWVudEZQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCB2YWx1
ZUEsIHZhbHVlQikpOwogCkBAIC0xMTcyLDcgKzExODAsNyBAQCB2b2lkIHRlc3RNdWxJbW1zRG91
YmxlKGRvdWJsZSBhLCBkb3VibGUgCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5k
TmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTE4OCw3
ICsxMTk2LDcgQEAgdm9pZCB0ZXN0TXVsQXJnRmxvYXQoZmxvYXQgYSkKICAgICBWYWx1ZSogZmxv
YXRWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdp
bigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBmbG9hdFZhbHVlLCBmbG9hdFZhbHVlKTsKICAgICBW
YWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0
LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogCiAgICAgQ0hF
Q0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAqIGEpKSk7CkBAIC0xMjA2LDcg
KzEyMTQsNyBAQCB2b2lkIHRlc3RNdWxBcmdzRmxvYXQoZmxvYXQgYSwgZmxvYXQgYikKICAgICBW
YWx1ZSogZmxvYXRWYWx1ZTIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VD
YXN0LCBPcmlnaW4oKSwgYXJndW1lbnQyaW50MzIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGZsb2F0VmFsdWUxLCBmbG9h
dFZhbHVlMik7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQz
Mik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2Ms
IGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0
d2lzZV9jYXN0PGludDMyX3Q+KGEgKiBiKSkpOwogfQpAQCAtMTIyMSw3ICsxMjI5LDcgQEAgdm9p
ZCB0ZXN0TXVsQXJnSW1tRmxvYXQoZmxvYXQgYSwgZmxvYXQgYgogICAgIFZhbHVlKiBjb25zdFZh
bHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIp
OwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwg
T3JpZ2luKCksIGZsb2F0VmFsdWUsIGNvbnN0VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1
bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29t
cGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oYSAqIGIpKSk7CiB9CkBAIC0xMjM2LDcgKzEyNDQsNyBAQCB2b2lk
IHRlc3RNdWxJbW1BcmdGbG9hdChmbG9hdCBhLCBmbG9hdCBiCiAgICAgVmFsdWUqIGNvbnN0VmFs
dWUgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7
CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBP
cmlnaW4oKSwgY29uc3RWYWx1ZSwgZmxvYXRWYWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3Vs
dCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21w
aWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSksIGJpdHdp
c2VfY2FzdDxpbnQzMl90PihhICogYikpKTsKIH0KQEAgLTEyNDksNyArMTI1Nyw3IEBAIHZvaWQg
dGVzdE11bEltbXNGbG9hdChmbG9hdCBhLCBmbG9hdCBiKQogICAgIFZhbHVlKiBjb25zdFZhbHVl
MiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsK
ICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9y
aWdpbigpLCBjb25zdFZhbHVlMSwgY29uc3RWYWx1ZTIpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1
bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29t
cGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgKiBiKSkp
OwogfQpAQCAtMTI2NSw3ICsxMjczLDcgQEAgdm9pZCB0ZXN0TXVsQXJnRmxvYXRXaXRoVXNlbGVz
c0RvdWJsZUNvbgogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIE11bCwgT3JpZ2luKCksIGFzRG91YmxlLCBhc0RvdWJsZSk7CiAgICAgVmFsdWUqIGZsb2F0
UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmln
aW4oKSwgcmVzdWx0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMy
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQz
Ml90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJf
dD4oYSAqIGEpKSk7CiB9CkBAIC0xMjg1LDcgKzEyOTMsNyBAQCB2b2lkIHRlc3RNdWxBcmdzRmxv
YXRXaXRoVXNlbGVzc0RvdWJsZUNvCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgYXNEb3VibGUxLCBhc0RvdWJsZTIpOwogICAg
IFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91Ymxl
VG9GbG9hdCwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBp
bGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNl
X2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAqIGIpKSk7CiB9CkBA
IC0xMzA3LDcgKzEzMTUsNyBAQCB2b2lkIHRlc3RNdWxBcmdzRmxvYXRXaXRoRWZmZWN0ZnVsRG91
YmxlCiAgICAgVmFsdWUqIGRvdWJsZU11bHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMik7CiAgICAgcm9v
dC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwg
ZG91YmxlTXVscmVzcyk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQz
Mik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdDMyKTsKIAogICAgIGRvdWJsZSBlZmZlY3QgPSAwOwogICAgIENIRUNLKGlzSWRl
bnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+
KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYiksICZlZmZlY3QpLCBiaXR3aXNlX2Nhc3Q8aW50
MzJfdD4oYSAqIGIpKSk7CkBAIC0xMzE5LDcgKzEzMjcsNyBAQCB2b2lkIHRlc3REaXZBcmdEb3Vi
bGUoZG91YmxlIGEpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERpdiwgT3JpZ2luKCksIHZhbHVlLCB2YWx1ZSkpOwog
CkBAIC0xMzMyLDcgKzEzNDAsNyBAQCB2b2lkIHRlc3REaXZBcmdzRG91YmxlKGRvdWJsZSBhLCBk
b3VibGUgCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1
ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3Vt
ZW50RlBSMSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERpdiwgT3JpZ2luKCksIHZhbHVl
QSwgdmFsdWVCKSk7CiAKQEAgLTEzNDUsNyArMTM1Myw3IEBAIHZvaWQgdGVzdERpdkFyZ0ltbURv
dWJsZShkb3VibGUgYSwgZG91YmwKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIHZh
bHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
Yik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERpdiwgT3JpZ2luKCksIHZhbHVlQSwgdmFs
dWVCKSk7CiAKQEAgLTEzNTgsNyArMTM2Niw3IEBAIHZvaWQgdGVzdERpdkltbUFyZ0RvdWJsZShk
b3VibGUgYSwgZG91YmwKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwog
ICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERpdiwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7
CiAKQEAgLTEzNzEsNyArMTM3OSw3IEBAIHZvaWQgdGVzdERpdkltbXNEb3VibGUoZG91YmxlIGEs
IGRvdWJsZSAKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZh
bHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIGEpOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3Vi
bGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBE
aXYsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC0xMzg3LDcgKzEzOTUsNyBAQCB2
b2lkIHRlc3REaXZBcmdGbG9hdChmbG9hdCBhKQogICAgIFZhbHVlKiBmbG9hdFZhbHVlID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50
MzIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERp
diwgT3JpZ2luKCksIGZsb2F0VmFsdWUsIGZsb2F0VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQz
MiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBy
ZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAKICAgICBDSEVDSyhpc0lkZW50aWNh
bChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSks
IGJpdHdpc2VfY2FzdDxpbnQzMl90PihhIC8gYSkpKTsKQEAgLTE0MDUsNyArMTQxMyw3IEBAIHZv
aWQgdGVzdERpdkFyZ3NGbG9hdChmbG9hdCBhLCBmbG9hdCBiKQogICAgIFZhbHVlKiBmbG9hdFZh
bHVlMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigp
LCBhcmd1bWVudDJpbnQzMik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwgZmxvYXRWYWx1ZTEsIGZsb2F0VmFsdWUyKTsKICAg
ICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VD
YXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENI
RUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0
PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50
MzJfdD4oYSAvIGIpKSk7CiB9CkBAIC0xNDIwLDcgKzE0MjgsNyBAQCB2b2lkIHRlc3REaXZBcmdJ
bW1GbG9hdChmbG9hdCBhLCBmbG9hdCBiCiAgICAgVmFsdWUqIGNvbnN0VmFsdWUgPSByb290LT5h
cHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7CiAgICAgVmFsdWUq
IHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwgZmxv
YXRWYWx1ZSwgY29uc3RWYWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGlu
dDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQz
Ml90PihhIC8gYikpKTsKIH0KQEAgLTE0MzUsNyArMTQ0Myw3IEBAIHZvaWQgdGVzdERpdkltbUFy
Z0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIKICAgICBWYWx1ZSogY29uc3RWYWx1ZSA9IHJvb3QtPmFw
cGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSog
cmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEaXYsIE9yaWdpbigpLCBjb25z
dFZhbHVlLCBmbG9hdFZhbHVlKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQz
Mik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50
MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0PGludDMy
X3Q+KGEgLyBiKSkpOwogfQpAQCAtMTQ0OCw3ICsxNDU2LDcgQEAgdm9pZCB0ZXN0RGl2SW1tc0Zs
b2F0KGZsb2F0IGEsIGZsb2F0IGIpCiAgICAgVmFsdWUqIGNvbnN0VmFsdWUyID0gcm9vdC0+YXBw
ZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiBy
ZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERpdiwgT3JpZ2luKCksIGNvbnN0
VmFsdWUxLCBjb25zdFZhbHVlMik7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGlu
dDMyX3Q+KHByb2MpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAvIGIpKSk7CiB9CkBAIC0xNDU4
LDcgKzE0NjYsNyBAQCB2b2lkIHRlc3RNb2RBcmdEb3VibGUoZG91YmxlIGEpCiAgICAgUHJvY2Vk
dXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBW
YWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IE1vZCwgT3JpZ2luKCksIHZhbHVlLCB2YWx1ZSkpOwogCkBAIC0xNDcxLDcgKzE0NzksNyBAQCB2
b2lkIHRlc3RNb2RBcmdzRG91YmxlKGRvdWJsZSBhLCBkb3VibGUgCiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQ
UjApOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMSk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTE0ODQs
NyArMTQ5Miw3IEBAIHZvaWQgdGVzdE1vZEFyZ0ltbURvdWJsZShkb3VibGUgYSwgZG91YmwKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEg
PSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUklu
Zm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxD
b25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIE1vZCwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTE0OTcsNyArMTUw
NSw3IEBAIHZvaWQgdGVzdE1vZEltbUFyZ0RvdWJsZShkb3VibGUgYSwgZG91YmwKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290
LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZh
bHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IE1vZCwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTE1MTAsNyArMTUxOCw3IEBA
IHZvaWQgdGVzdE1vZEltbXNEb3VibGUoZG91YmxlIGEsIGRvdWJsZSAKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBl
bmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiB2
YWx1ZUIgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IGIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigpLCB2YWx1ZUEsIHZh
bHVlQikpOwogCkBAIC0xNTI2LDcgKzE1MzQsNyBAQCB2b2lkIHRlc3RNb2RBcmdGbG9hdChmbG9h
dCBhKQogICAgIFZhbHVlKiBmbG9hdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiByZXN1bHQg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIGZsb2F0VmFsdWUs
IGZsb2F0VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0MzIpOwogCiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+
KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90Pihz
dGF0aWNfY2FzdDxmbG9hdD4oZm1vZChhLCBhKSkpKSk7CkBAIC0xNTQ0LDcgKzE1NTIsNyBAQCB2
b2lkIHRlc3RNb2RBcmdzRmxvYXQoZmxvYXQgYSwgZmxvYXQgYikKICAgICBWYWx1ZSogZmxvYXRW
YWx1ZTIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4o
KSwgYXJndW1lbnQyaW50MzIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIGZsb2F0VmFsdWUxLCBmbG9hdFZhbHVlMik7CiAg
ICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNl
Q2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBD
SEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2Fz
dDxpbnQzMl90PihhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KHN0YXRpY19jYXN0PGZsb2F0PihmbW9kKGEsIGIpKSkpKTsKIH0KQEAgLTE1NTksNyAr
MTU2Nyw3IEBAIHZvaWQgdGVzdE1vZEFyZ0ltbUZsb2F0KGZsb2F0IGEsIGZsb2F0IGIKICAgICBW
YWx1ZSogY29uc3RWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBiKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBNb2QsIE9yaWdpbigpLCBmbG9hdFZhbHVlLCBjb25zdFZhbHVlKTsKICAgICBWYWx1
ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBP
cmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlz
SWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMy
X3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0PGZsb2F0PihmbW9kKGEs
IGIpKSkpKTsKIH0KQEAgLTE1NzQsNyArMTU4Miw3IEBAIHZvaWQgdGVzdE1vZEltbUFyZ0Zsb2F0
KGZsb2F0IGEsIGZsb2F0IGIKICAgICBWYWx1ZSogY29uc3RWYWx1ZSA9IHJvb3QtPmFwcGVuZE5l
dzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogcmVzdWx0
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigpLCBjb25zdFZhbHVl
LCBmbG9hdFZhbHVlKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
c3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4o
cHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHN0
YXRpY19jYXN0PGZsb2F0PihmbW9kKGEsIGIpKSkpKTsKIH0KQEAgLTE1ODcsNyArMTU5NSw3IEBA
IHZvaWQgdGVzdE1vZEltbXNGbG9hdChmbG9hdCBhLCBmbG9hdCBiKQogICAgIFZhbHVlKiBjb25z
dFZhbHVlMiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigp
LCBiKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBN
b2QsIE9yaWdpbigpLCBjb25zdFZhbHVlMSwgY29uc3RWYWx1ZTIpOwogICAgIFZhbHVlKiByZXN1
bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigp
LCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGlj
YWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHN0
YXRpY19jYXN0PGZsb2F0PihmbW9kKGEsIGIpKSkpKTsKIH0KQEAgLTE2MDMsNyArMTYxMSw3IEBA
IHZvaWQgdGVzdERpdkFyZ0Zsb2F0V2l0aFVzZWxlc3NEb3VibGVDb24KICAgICBWYWx1ZSogcmVz
dWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEaXYsIE9yaWdpbigpLCBhc0RvdWJs
ZSwgYXNEb3VibGUpOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgVmFsdWUq
IHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3Jp
Z2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNL
KGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLyBhKSkpOwogfQpAQCAtMTYyMyw3
ICsxNjMxLDcgQEAgdm9pZCB0ZXN0RGl2QXJnc0Zsb2F0V2l0aFVzZWxlc3NEb3VibGVDbwogICAg
IFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERpdiwgT3JpZ2lu
KCksIGFzRG91YmxlMSwgYXNEb3VibGUyKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCByZXN1bHQp
OwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0
d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7
CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJp
dHdpc2VfY2FzdDxpbnQzMl90PihhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0d2lz
ZV9jYXN0PGludDMyX3Q+KGEgLyBiKSkpOwogfQpAQCAtMTY0NSw3ICsxNjUzLDcgQEAgdm9pZCB0
ZXN0RGl2QXJnc0Zsb2F0V2l0aEVmZmVjdGZ1bERvdWJsZQogICAgIFZhbHVlKiBkb3VibGVEaXZy
ZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjIpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4o
cHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGRvdWJsZURpdnJlc3MpOwogICAgIFZhbHVl
KiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9y
aWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBkb3Vi
bGUgZWZmZWN0ID0gMDsKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMy
X3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+
KGIpLCAmZWZmZWN0KSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLyBiKSkpOwpAQCAtMTY1Nyw3
ICsxNjY1LDcgQEAgdm9pZCB0ZXN0U3ViQXJnKGludCBhKQogICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVl
ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdp
bigpLCB2YWx1ZSwgdmFsdWUpKTsKIApAQCAtMTY2OCw3ICsxNjc2LDcgQEAgdm9pZCB0ZXN0U3Vi
QXJncyhpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBTdWIsIE9yaWdpbigpLApAQCAtMTY4Miw3ICsxNjkwLDcgQEAgdm9pZCB0ZXN0
U3ViQXJnSW1tKGludDY0X3QgYSwgaW50NjRfdCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KAogICAgICAgICAgICAgcHJvYywgU3ViLCBPcmlnaW4oKSwKQEAgLTE3MDMsNyArMTcxMSw3
IEBAIHZvaWQgdGVzdE5lZ1ZhbHVlU3ViT25lKGludCBhKQogICAgIFZhbHVlKiBuZWdBcmd1bWVu
dE1pbnVzT25lID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLAog
ICAgICAgICBuZWdBcmd1bWVudCwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBuZWdBcmd1bWVudE1pbnVzT25lKTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgbmVnQXJndW1l
bnRNaW51c09uZSk7CiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIGEpID09IC1h
IC0gMSk7CiB9CiAKQEAgLTE3MTEsNyArMTcxOSw3IEBAIHZvaWQgdGVzdFN1YkltbUFyZyhpbnQg
YSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBTdWIsIE9yaWdpbigpLApAQCAtMTczMCw3ICsxNzM4LDcgQEAgdm9pZCB0ZXN0U3ViQXJnTWVt
KGludDY0X3QgYSwgaW50NjRfdCBiKQogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwK
ICAgICAgICAgbG9hZCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVB
bmRSdW48aW50NjRfdD4ocHJvYywgYSwgJmIpID09IGEgLSBiKTsKIH0KQEAgLTE3NDUsNyArMTc1
Myw3IEBAIHZvaWQgdGVzdFN1Yk1lbUFyZyhpbnQ2NF90IGEsIGludDY0X3QgYikKICAgICAgICAg
bG9hZCwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKTsKICAgICByb290LT5hcHBlbmROZXc8TWVt
b3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBhZGRyZXNzKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgaW50NjRfdCBp
bnB1dE91dHB1dCA9IGE7CiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywg
JmlucHV0T3V0cHV0LCBiKSk7CkBAIC0xNzYyLDcgKzE3NzAsNyBAQCB2b2lkIHRlc3RTdWJJbW1N
ZW0oaW50NjRfdCBhLCBpbnQ2NF90IGIpCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKSwKICAgICAgICAgbG9hZCk7CiAgICAgcm9vdC0+YXBw
ZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgYWRkcmVz
cyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAg
IGludDY0X3QgaW5wdXRPdXRwdXQgPSBiOwogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludD4o
cHJvYywgJmlucHV0T3V0cHV0KSk7CkBAIC0xNzc5LDcgKzE3ODcsNyBAQCB2b2lkIHRlc3RTdWJN
ZW1JbW0oaW50NjRfdCBhLCBpbnQ2NF90IGIpCiAgICAgICAgIGxvYWQsCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKSk7CiAgICAgcm9vdC0+
YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgYWRk
cmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDAp
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAog
ICAgIGludDY0X3QgaW5wdXRPdXRwdXQgPSBhOwogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGlu
dD4ocHJvYywgJmlucHV0T3V0cHV0KSk7CkBAIC0xNzkxLDcgKzE3OTksNyBAQCB2b2lkIHRlc3RT
dWJBcmdzMzIoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgU3ViLCBPcmlnaW4oKSwKQEAgLTE4MDksNyArMTgxNyw3IEBAIHZvaWQg
dGVzdFN1YkFyZ0ltbTMyKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIFN1YiwgT3JpZ2luKCksCkBAIC0xODI1LDcgKzE4MzMsNyBA
QCB2b2lkIHRlc3RTdWJJbW1BcmczMihpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHBy
b2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTdWIsIE9yaWdpbigpLApAQCAtMTg0Nyw3ICsx
ODU1LDcgQEAgdm9pZCB0ZXN0U3ViTWVtQXJnMzIoaW50MzJfdCBhLCBpbnQzMl90IAogICAgICAg
ICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMSkpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIGxvYWQsIGFyZ3VtZW50KTsKICAgICByb290LT5h
cHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBhZGRy
ZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAg
ICAgaW50MzJfdCBpbnB1dE91dHB1dCA9IGE7CiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50
MzJfdD4ocHJvYywgJmlucHV0T3V0cHV0LCBiKSk7CkBAIC0xODYzLDcgKzE4NzEsNyBAQCB2b2lk
IHRlc3RTdWJBcmdNZW0zMihpbnQzMl90IGEsIGludDMyX3QgCiAgICAgVmFsdWUqIGFyZ3VtZW50
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIwKSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgYXJndW1lbnQsIGxvYWQpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
c3VsdCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGEsICZiKSA9
PSBhIC0gYik7CiB9CkBAIC0xODc4LDcgKzE4ODYsNyBAQCB2b2lkIHRlc3RTdWJJbW1NZW0zMihp
bnQzMl90IGEsIGludDMyX3QgCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBhKSwKICAgICAgICAgbG9hZCk7CiAgICAgcm9vdC0+YXBwZW5kTmV3
PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgYWRkcmVzcyk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGludDMy
X3QgaW5wdXRPdXRwdXQgPSBiOwogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludD4ocHJvYywg
JmlucHV0T3V0cHV0KSk7CkBAIC0xODk1LDcgKzE5MDMsNyBAQCB2b2lkIHRlc3RTdWJNZW1JbW0z
MihpbnQzMl90IGEsIGludDMyX3QgCiAgICAgICAgIGxvYWQsCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKSk7CiAgICAgcm9vdC0+YXBwZW5k
TmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgYWRkcmVzcyk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9v
dC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGlu
dDMyX3QgaW5wdXRPdXRwdXQgPSBhOwogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludD4ocHJv
YywgJmlucHV0T3V0cHV0KSk7CkBAIC0xOTE0LDcgKzE5MjIsNyBAQCB2b2lkIHRlc3ROZWdWYWx1
ZVN1Yk9uZTMyKGludCBhKQogICAgIFZhbHVlKiBuZWdBcmd1bWVudE1pbnVzT25lID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLAogICAgICAgICBuZWdBcmd1bWVu
dCwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IDEpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBuZWdBcmd1bWVudE1pbnVzT25lKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgbmVnQXJndW1lbnRNaW51c09uZSk7CiAgICAg
Q0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIGEpID09IC1hIC0gMSk7CiB9CiAKQEAgLTE5
MjMsNyArMTkzMSw3IEBAIHZvaWQgdGVzdFN1YkFyZ0RvdWJsZShkb3VibGUgYSkKICAgICBQcm9j
ZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAg
IFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgU3ViLCBPcmlnaW4oKSwgdmFsdWUsIHZhbHVlKSk7CiAKQEAgLTE5MzYsNyArMTk0NCw3IEBA
IHZvaWQgdGVzdFN1YkFyZ3NEb3VibGUoZG91YmxlIGEsIGRvdWJsZSAKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50
RlBSMCk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIxKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTk0
OSw3ICsxOTU3LDcgQEAgdm9pZCB0ZXN0U3ViQXJnSW1tRG91YmxlKGRvdWJsZSBhLCBkb3VibAog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVl
QSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBS
SW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3
PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTk2Miw3ICsx
OTcwLDcgQEAgdm9pZCB0ZXN0U3ViSW1tQXJnRG91YmxlKGRvdWJsZSBhLCBkb3VibAogICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJv
b3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAg
VmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgU3ViLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTk3NSw3ICsxOTgzLDcg
QEAgdm9pZCB0ZXN0U3ViSW1tc0RvdWJsZShkb3VibGUgYSwgZG91YmxlIAogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFw
cGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUq
IHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgYik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIHZhbHVlQSwg
dmFsdWVCKSk7CiAgICAgCkBAIC0xOTkxLDcgKzE5OTksNyBAQCB2b2lkIHRlc3RTdWJBcmdGbG9h
dChmbG9hdCBhKQogICAgIFZhbHVlKiBmbG9hdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiBy
ZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIGZsb2F0
VmFsdWUsIGZsb2F0VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMy
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0MzIpOwogCiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGlu
dDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQz
Ml90PihhIC0gYSkpKTsKQEAgLTIwMDksNyArMjAxNyw3IEBAIHZvaWQgdGVzdFN1YkFyZ3NGbG9h
dChmbG9hdCBhLCBmbG9hdCBiKQogICAgIFZhbHVlKiBmbG9hdFZhbHVlMiA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDJpbnQzMik7
CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBP
cmlnaW4oKSwgZmxvYXRWYWx1ZTEsIGZsb2F0VmFsdWUyKTsKICAgICBWYWx1ZSogcmVzdWx0MzIg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVz
dWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNv
bXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAtIGIpKSk7CiB9
CkBAIC0yMDI0LDcgKzIwMzIsNyBAQCB2b2lkIHRlc3RTdWJBcmdJbW1GbG9hdChmbG9hdCBhLCBm
bG9hdCBiCiAgICAgVmFsdWUqIGNvbnN0VmFsdWUgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9h
dFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSwgY29uc3RWYWx1
ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBC
aXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAK
ICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdp
c2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhIC0gYikpKTsKIH0K
QEAgLTIwMzksNyArMjA0Nyw3IEBAIHZvaWQgdGVzdFN1YkltbUFyZ0Zsb2F0KGZsb2F0IGEsIGZs
b2F0IGIKICAgICBWYWx1ZSogY29uc3RWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBjb25zdFZhbHVlLCBmbG9hdFZhbHVl
KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJp
dHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAog
ICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lz
ZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLSBiKSkpOwogfQpA
QCAtMjA1Miw3ICsyMDYwLDcgQEAgdm9pZCB0ZXN0U3ViSW1tc0Zsb2F0KGZsb2F0IGEsIGZsb2F0
IGIpCiAgICAgVmFsdWUqIGNvbnN0VmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIGNvbnN0VmFsdWUxLCBjb25zdFZhbHVl
Mik7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBC
aXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAK
ICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MpLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oYSAtIGIpKSk7CiB9CkBAIC0yMDY4LDcgKzIwNzYsNyBAQCB2b2lk
IHRlc3RTdWJBcmdGbG9hdFdpdGhVc2VsZXNzRG91YmxlQ29uCiAgICAgVmFsdWUqIHJlc3VsdCA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgYXNEb3VibGUsIGFz
RG91YmxlKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCByZXN1bHQpOwogICAgIFZhbHVlKiByZXN1
bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigp
LCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lk
ZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90
PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhIC0gYSkpKTsKIH0KQEAgLTIwODgsNyArMjA5
Niw3IEBAIHZvaWQgdGVzdFN1YkFyZ3NGbG9hdFdpdGhVc2VsZXNzRG91YmxlQ28KICAgICBWYWx1
ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBh
c0RvdWJsZTEsIGFzRG91YmxlMik7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgcmVzdWx0KTsKICAg
ICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VD
YXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAg
ICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNl
X2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSksIGJpdHdpc2VfY2Fz
dDxpbnQzMl90PihhIC0gYikpKTsKIH0KQEAgLTIxMTAsNyArMjExOCw3IEBAIHZvaWQgdGVzdFN1
YkFyZ3NGbG9hdFdpdGhFZmZlY3RmdWxEb3VibGUKICAgICBWYWx1ZSogZG91YmxlU3VicmVzcyA9
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIyKTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2Ms
IFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBkb3VibGVTdWJyZXNzKTsKICAgICBWYWx1ZSogcmVz
dWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4o
KSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgZG91YmxlIGVm
ZmVjdCA9IDA7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihw
cm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSwg
JmVmZmVjdCksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhIC0gYikpKTsKQEAgLTIxMjEsNyArMjEy
OSw3IEBAIHZvaWQgdGVzdEJpdEFuZEFyZ3MoaW50NjRfdCBhLCBpbnQ2NF90IGIKIHsKICAgICBQ
cm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCks
CkBAIC0yMTM2LDcgKzIxNDQsNyBAQCB2b2lkIHRlc3RCaXRBbmRTYW1lQXJnKGludDY0X3QgYSkK
ICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMjE1MCw3
ICsyMTU4LDcgQEAgdm9pZCB0ZXN0Qml0QW5kSW1tcyhpbnQ2NF90IGEsIGludDY0X3QgYgogewog
ICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmln
aW4oKSwKQEAgLTIxNjQsNyArMjE3Miw3IEBAIHZvaWQgdGVzdEJpdEFuZEFyZ0ltbShpbnQ2NF90
IGEsIGludDY0X3QKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0yMTc4LDcgKzIxODYsNyBAQCB2b2lkIHRlc3RCaXRB
bmRJbW1BcmcoaW50NjRfdCBhLCBpbnQ2NF90CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
CiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMjE5Niw3ICsyMjA0LDcg
QEAgdm9pZCB0ZXN0Qml0QW5kQml0QW5kQXJnSW1tSW1tKGludDY0X3QgYQogICAgICAgICBwcm9j
LCBCaXRBbmQsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKSk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTIy
MTQsNyArMjIyMiw3IEBAIHZvaWQgdGVzdEJpdEFuZEltbUJpdEFuZEFyZ0ltbShpbnQ2NF90IGEK
ICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjAp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
YykpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3Jp
Z2luKCksCkBAIC0yMjI4LDcgKzIyMzYsNyBAQCB2b2lkIHRlc3RCaXRBbmRBcmdzMzIoaW50IGEs
IGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
Qml0QW5kLCBPcmlnaW4oKSwKQEAgLTIyNDgsNyArMjI1Niw3IEBAIHZvaWQgdGVzdEJpdEFuZFNh
bWVBcmczMihpbnQgYSkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwog
ICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMs
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0yMjYyLDcgKzIyNzAs
NyBAQCB2b2lkIHRlc3RCaXRBbmRJbW1zMzIoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVy
ZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTIy
NzYsNyArMjI4NCw3IEBAIHZvaWQgdGVzdEJpdEFuZEFyZ0ltbTMyKGludCBhLCBpbnQgYikKIHsK
ICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3Jp
Z2luKCksCkBAIC0yMjkyLDcgKzIzMDAsNyBAQCB2b2lkIHRlc3RCaXRBbmRJbW1BcmczMihpbnQg
YSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMjMxNCw3ICsyMzIyLDcgQEAgdm9pZCB0ZXN0Qml0QW5k
Qml0QW5kQXJnSW1tSW1tMzIoaW50IGEsIAogICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdp
bigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMjMzNCw3ICsyMzQy
LDcgQEAgdm9pZCB0ZXN0Qml0QW5kSW1tQml0QW5kQXJnSW1tMzIoaW50IGEsIAogICAgICAgICAg
ICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGMp
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdp
bigpLApAQCAtMjM2MSw3ICsyMzY5LDcgQEAgdm9pZCB0ZXN0Qml0QW5kV2l0aE1hc2tSZXR1cm5z
Qm9vbGVhbnMoaQogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgNDIpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgLTUpKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHNlbGVjdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlbGVjdCk7CiAKICAgICBpbnQ2NF90IGV4
cGVjdGVkID0gKGEgPT0gYikgPyAtNSA6IDQyOwogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50
NjRfdD4ocHJvYywgYSwgYikgPT0gZXhwZWN0ZWQpOwpAQCAtMjM3OCw3ICsyMzg2LDcgQEAgdm9p
ZCB0ZXN0Qml0QW5kQXJnRG91YmxlKGRvdWJsZSBhKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwog
ICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdEFuZCwg
T3JpZ2luKCksIGFyZ3VtZW50LCBhcmd1bWVudCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAg
IENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBhKSwgYml0QW5k
RG91YmxlKGEsIGEpKSk7CiB9CkBAIC0yMzkwLDcgKzIzOTgsNyBAQCB2b2lkIHRlc3RCaXRBbmRB
cmdzRG91YmxlKGRvdWJsZSBhLCBkb3ViCiAgICAgVmFsdWUqIGFyZ3VtZW50QSA9IHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1l
bnRGUFIwKTsKICAgICBWYWx1ZSogYXJndW1lbnRCID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50
UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjEpOwogICAgIFZh
bHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdEFuZCwgT3JpZ2lu
KCksIGFyZ3VtZW50QSwgYXJndW1lbnRCKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hF
Q0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIGEsIGIpLCBiaXRBbmRE
b3VibGUoYSwgYikpKTsKIH0KQEAgLTI0MDIsNyArMjQxMCw3IEBAIHZvaWQgdGVzdEJpdEFuZEFy
Z0ltbURvdWJsZShkb3VibGUgYSwgZG8KICAgICBWYWx1ZSogYXJndW1lbnRBID0gcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVu
dEZQUjApOwogICAgIFZhbHVlKiBhcmd1bWVudEIgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3Vi
bGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdEFuZCwgT3JpZ2luKCksIGFyZ3VtZW50QSwgYXJndW1l
bnRCKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGls
ZUFuZFJ1bjxkb3VibGU+KHByb2MsIGEsIGIpLCBiaXRBbmREb3VibGUoYSwgYikpKTsKIH0KQEAg
LTI0MTQsNyArMjQyMiw3IEBAIHZvaWQgdGVzdEJpdEFuZEltbXNEb3VibGUoZG91YmxlIGEsIGRv
dWIKICAgICBWYWx1ZSogYXJndW1lbnRBID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogYXJndW1lbnRCID0gcm9vdC0+YXBw
ZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKICAgICBWYWx1ZSog
cmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXRBbmQsIE9yaWdpbigpLCBh
cmd1bWVudEEsIGFyZ3VtZW50Qik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGlz
SWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jKSwgYml0QW5kRG91YmxlKGEsIGIp
KSk7CiB9CkBAIC0yNDMyLDcgKzI0NDAsNyBAQCB2b2lkIHRlc3RCaXRBbmRBcmdGbG9hdChmbG9h
dCBhKQogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4o
KSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSkpOwogICAgIFZhbHVlKiByZXN1bHQgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdEFuZCwgT3JpZ2luKCksIGFyZ3VtZW50LCBh
cmd1bWVudCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNv
bXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdEFu
ZEZsb2F0KGEsIGEpKSk7CiB9CkBAIC0yNDQ4LDcgKzI0NTYsNyBAQCB2b2lkIHRlc3RCaXRBbmRB
cmdzRmxvYXQoZmxvYXQgYSwgZmxvYXQgCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKSk7CiAg
ICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0QW5kLCBP
cmlnaW4oKSwgYXJndW1lbnRBLCBhcmd1bWVudEIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAg
ICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jLCBiaXR3aXNlX2Nh
c3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSksIGJpdEFuZEZsb2F0KGEs
IGIpKSk7CiB9CkBAIC0yNDYyLDcgKzI0NzAsNyBAQCB2b2lkIHRlc3RCaXRBbmRBcmdJbW1GbG9h
dChmbG9hdCBhLCBmbG9hCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpKTsKICAgICBWYWx1
ZSogYXJndW1lbnRCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIGIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEJpdEFuZCwgT3JpZ2luKCksIGFyZ3VtZW50QSwgYXJndW1lbnRCKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJv
YywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBi
aXRBbmRGbG9hdChhLCBiKSkpOwogfQpAQCAtMjQ3NCw3ICsyNDgyLDcgQEAgdm9pZCB0ZXN0Qml0
QW5kSW1tc0Zsb2F0KGZsb2F0IGEsIGZsb2F0IAogICAgIFZhbHVlKiBhcmd1bWVudEEgPSByb290
LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFs
dWUqIGFyZ3VtZW50QiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9y
aWdpbigpLCBiKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBCaXRBbmQsIE9yaWdpbigpLCBhcmd1bWVudEEsIGFyZ3VtZW50Qik7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHBy
b2MpLCBiaXRBbmRGbG9hdChhLCBiKSkpOwogfQpAQCAtMjQ5Myw3ICsyNTAxLDcgQEAgdm9pZCB0
ZXN0Qml0QW5kQXJnc0Zsb2F0V2l0aFVzZWxlc3NEb3VibAogICAgIFZhbHVlKiBhcmd1bWVudEJh
c0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3Jp
Z2luKCksIGFyZ3VtZW50Qik7CiAgICAgVmFsdWUqIGRvdWJsZVJlc3VsdCA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQml0QW5kLCBPcmlnaW4oKSwgYXJndW1lbnRBYXNEb3VibGUsIGFy
Z3VtZW50QmFzRG91YmxlKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBkb3VibGVSZXN1bHQpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IGZsb2F0UmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwogCiAgICAgZG91YmxlIGRvdWJsZUEgPSBhOwog
ICAgIGRvdWJsZSBkb3VibGVCID0gYjsKQEAgLTI1MDUsNyArMjUxMyw3IEBAIHZvaWQgdGVzdEJp
dE9yQXJncyhpbnQ2NF90IGEsIGludDY0X3QgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIEJpdE9yLCBPcmlnaW4oKSwKQEAgLTI1MjAsNyArMjUyOCw3
IEBAIHZvaWQgdGVzdEJpdE9yU2FtZUFyZyhpbnQ2NF90IGEpCiAgICAgUHJvY2VkdXJlIHByb2M7
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJn
dW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgQml0T3IsIE9yaWdpbigpLApAQCAtMjUzNCw3ICsyNTQyLDcgQEAgdm9pZCB0ZXN0
Qml0T3JJbW1zKGludDY0X3QgYSwgaW50NjRfdCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KAogICAgICAgICAgICAgcHJvYywgQml0T3IsIE9yaWdpbigpLApAQCAtMjU0OCw3ICsyNTU2
LDcgQEAgdm9pZCB0ZXN0Qml0T3JBcmdJbW0oaW50NjRfdCBhLCBpbnQ2NF90IAogewogICAgIFBy
b2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0T3IsIE9yaWdpbigpLApA
QCAtMjU2Miw3ICsyNTcwLDcgQEAgdm9pZCB0ZXN0Qml0T3JJbW1BcmcoaW50NjRfdCBhLCBpbnQ2
NF90IAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0
T3IsIE9yaWdpbigpLApAQCAtMjU4MCw3ICsyNTg4LDcgQEAgdm9pZCB0ZXN0Qml0T3JCaXRPckFy
Z0ltbUltbShpbnQ2NF90IGEsIAogICAgICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BS
SW5mbzo6YXJndW1lbnRHUFIwKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIGIpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBCaXRPciwgT3JpZ2luKCksCkBAIC0yNTk4LDcgKzI2MDYsNyBAQCB2b2lkIHRlc3RC
aXRPckltbUJpdE9yQXJnSW1tKGludDY0X3QgYSwgCiAgICAgICAgIHByb2MsIEJpdE9yLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApLAogICAgICAgICByb290LT5hcHBlbmROZXc8
Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYykpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIEJpdE9yLCBPcmlnaW4oKSwKQEAgLTI2MTIsNyArMjYyMCw3IEBA
IHZvaWQgdGVzdEJpdE9yQXJnczMyKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdE9yLCBPcmlnaW4oKSwKQEAgLTI2MzMsNyAr
MjY0MSw3IEBAIHZvaWQgdGVzdEJpdE9yU2FtZUFyZzMyKGludCBhKQogICAgIFZhbHVlKiBhcmd1
bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgIHByb2MsIFRydW5jLCBPcmln
aW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgQml0T3IsIE9yaWdpbigpLApAQCAtMjY0Nyw3ICsyNjU1LDcg
QEAgdm9pZCB0ZXN0Qml0T3JJbW1zMzIoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBw
cm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0T3IsIE9yaWdpbigpLApAQCAtMjY2MSw3
ICsyNjY5LDcgQEAgdm9pZCB0ZXN0Qml0T3JBcmdJbW0zMihpbnQgYSwgaW50IGIpCiB7CiAgICAg
UHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCks
CkBAIC0yNjc3LDcgKzI2ODUsNyBAQCB2b2lkIHRlc3RCaXRPckltbUFyZzMyKGludCBhLCBpbnQg
YikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdE9y
LCBPcmlnaW4oKSwKQEAgLTI2OTksNyArMjcwNyw3IEBAIHZvaWQgdGVzdEJpdE9yQml0T3JBcmdJ
bW1JbW0zMihpbnQgYSwgaW4KICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAg
ICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgQml0T3IsIE9yaWdpbigpLApAQCAtMjcxOSw3ICsyNzI3LDcgQEAgdm9p
ZCB0ZXN0Qml0T3JJbW1CaXRPckFyZ0ltbTMyKGludCBhLCBpbgogICAgICAgICAgICAgcHJvYywg
VHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGMpKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCksCkBAIC0y
NzMzLDcgKzI3NDEsNyBAQCB2b2lkIHRlc3RCaXRYb3JBcmdzKGludDY0X3QgYSwgaW50NjRfdCBi
CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRYb3Is
IE9yaWdpbigpLApAQCAtMjc0OCw3ICsyNzU2LDcgQEAgdm9pZCB0ZXN0Qml0WG9yU2FtZUFyZyhp
bnQ2NF90IGEpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwK
QEAgLTI3NjIsNyArMjc3MCw3IEBAIHZvaWQgdGVzdEJpdFhvckltbXMoaW50NjRfdCBhLCBpbnQ2
NF90IGIKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJp
dFhvciwgT3JpZ2luKCksCkBAIC0yNzc2LDcgKzI3ODQsNyBAQCB2b2lkIHRlc3RCaXRYb3JBcmdJ
bW0oaW50NjRfdCBhLCBpbnQ2NF90CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjc5MCw3ICsyNzk4LDcgQEAgdm9p
ZCB0ZXN0Qml0WG9ySW1tQXJnKGludDY0X3QgYSwgaW50NjRfdAogewogICAgIFByb2NlZHVyZSBw
cm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTI4MDgs
NyArMjgxNiw3IEBAIHZvaWQgdGVzdEJpdFhvckJpdFhvckFyZ0ltbUltbShpbnQ2NF90IGEKICAg
ICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYikp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2lu
KCksCkBAIC0yODI2LDcgKzI4MzQsNyBAQCB2b2lkIHRlc3RCaXRYb3JJbW1CaXRYb3JBcmdJbW0o
aW50NjRfdCBhCiAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIGMpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBC
aXRYb3IsIE9yaWdpbigpLApAQCAtMjg0MCw3ICsyODQ4LDcgQEAgdm9pZCB0ZXN0Qml0WG9yQXJn
czMyKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCkBAIC0yODYxLDcgKzI4NjksNyBAQCB2b2lkIHRl
c3RCaXRYb3JTYW1lQXJnMzIoaW50IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBw
cm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjg3NSw3ICsyODgzLDcgQEAgdm9pZCB0ZXN0Qml0
WG9ySW1tczMyKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCkBAIC0yODg5LDcgKzI4OTcsNyBAQCB2
b2lkIHRlc3RCaXRYb3JBcmdJbW0zMihpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHBy
b2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjkwNSw3
ICsyOTEzLDcgQEAgdm9pZCB0ZXN0Qml0WG9ySW1tQXJnMzIoaW50IGEsIGludCBiKQogewogICAg
IFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4o
KSwKQEAgLTI5MjcsNyArMjkzNSw3IEBAIHZvaWQgdGVzdEJpdFhvckJpdFhvckFyZ0ltbUltbTMy
KGludCBhLCAKICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBiKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTI5NDcsNyArMjk1NSw3IEBAIHZvaWQgdGVzdEJp
dFhvckltbUJpdFhvckFyZ0ltbTMyKGludCBhLCAKICAgICAgICAgICAgIHByb2MsIFRydW5jLCBP
cmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBjKSk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTI5NjEsNyAr
Mjk2OSw3IEBAIHZvaWQgdGVzdEJpdE5vdEFyZyhpbnQ2NF90IGEpCiB7CiAgICAgUHJvY2VkdXJl
IHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjk3
NSw3ICsyOTgzLDcgQEAgdm9pZCB0ZXN0Qml0Tm90SW1tKGludDY0X3QgYSkKIHsKICAgICBQcm9j
ZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCkBA
IC0yOTk1LDcgKzMwMDMsNyBAQCB2b2lkIHRlc3RCaXROb3RNZW0oaW50NjRfdCBhKQogICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTEpLAogICAg
ICAgICBsb2FkKTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3Jl
LCBPcmlnaW4oKSwgbm90TG9hZCwgYWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGludDY0X3QgaW5wdXQgPSBhOwogICAgIGNvbXBp
bGVBbmRSdW48aW50MzJfdD4ocHJvYywgJmlucHV0KTsKQEAgLTMwMDgsNyArMzAxNiw3IEBAIHZv
aWQgdGVzdEJpdE5vdEFyZzMyKGludDMyX3QgYSkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXRYb3IsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xKSwKQEAgLTMwMjAs
NyArMzAyOCw3IEBAIHZvaWQgdGVzdEJpdE5vdEltbTMyKGludDMyX3QgYSkKIHsKICAgICBQcm9j
ZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCkBA
IC0zMDQwLDcgKzMwNDgsNyBAQCB2b2lkIHRlc3RCaXROb3RNZW0zMihpbnQzMl90IGEpCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMSksCiAg
ICAgICAgIGxvYWQpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3Rv
cmUsIE9yaWdpbigpLCBub3RMb2FkLCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgaW50MzJfdCBpbnB1dCA9IGE7CiAgICAgY29t
cGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCAmaW5wdXQpOwpAQCAtMzA2MywxNiArMzA3MSwxNiBA
QCB2b2lkIHRlc3RCaXROb3RPbkJvb2xlYW5BbmRCcmFuY2gzMihpbnQ2CiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMSksCiAgICAgICAgIGFy
Z3NBcmVFcXVhbCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2lu
KCksCiAgICAgICAgIGFyZ3NBcmVOb3RFcXVhbCwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRo
ZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwogCi0gICAgZWxzZUNh
c2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VD
YXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTQyKSk7CiAKQEAg
LTMwODQsNyArMzA5Miw3IEBAIHZvaWQgdGVzdFNobEFyZ3MoaW50NjRfdCBhLCBpbnQ2NF90IGIp
CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTaGwsIE9y
aWdpbigpLApAQCAtMzEwMCw3ICszMTA4LDcgQEAgdm9pZCB0ZXN0U2hsSW1tcyhpbnQ2NF90IGEs
IGludDY0X3QgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIFNobCwgT3JpZ2luKCksCkBAIC0zMTE0LDcgKzMxMjIsNyBAQCB2b2lkIHRlc3RTaGxBcmdJ
bW0oaW50NjRfdCBhLCBpbnQ2NF90IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBTaGwsIE9yaWdpbigpLApAQCAtMzEzMSw3ICszMTM5LDcgQEAgdm9p
ZCB0ZXN0U2hsQXJnMzIoaW50MzJfdCBhKQogICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU2hsLCBPcmlnaW4oKSwg
dmFsdWUsIHZhbHVlKSk7CiAKQEAgLTMxNDIsNyArMzE1MCw3IEBAIHZvaWQgdGVzdFNobEFyZ3Mz
MihpbnQzMl90IGEsIGludDMyX3QgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIFNobCwgT3JpZ2luKCksCkBAIC0zMTYwLDcgKzMxNjgsNyBAQCB2b2lk
IHRlc3RTaGxJbW1zMzIoaW50MzJfdCBhLCBpbnQzMl90IGIpCiB7CiAgICAgUHJvY2VkdXJlIHBy
b2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTaGwsIE9yaWdpbigpLApAQCAtMzE3NCw3ICsz
MTgyLDcgQEAgdm9pZCB0ZXN0U2hsQXJnSW1tMzIoaW50MzJfdCBhLCBpbnQzMl90IAogewogICAg
IFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2hsLCBPcmlnaW4oKSwK
QEAgLTMxOTAsNyArMzE5OCw3IEBAIHZvaWQgdGVzdFNTaHJBcmdzKGludDY0X3QgYSwgaW50NjRf
dCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU1No
ciwgT3JpZ2luKCksCkBAIC0zMjA2LDcgKzMyMTQsNyBAQCB2b2lkIHRlc3RTU2hySW1tcyhpbnQ2
NF90IGEsIGludDY0X3QgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIFNTaHIsIE9yaWdpbigpLApAQCAtMzIyMCw3ICszMjI4LDcgQEAgdm9pZCB0ZXN0
U1NockFyZ0ltbShpbnQ2NF90IGEsIGludDY0X3QgYgogewogICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KAogICAgICAgICAgICAgcHJvYywgU1NociwgT3JpZ2luKCksCkBAIC0zMjM3LDcgKzMyNDUs
NyBAQCB2b2lkIHRlc3RTU2hyQXJnMzIoaW50MzJfdCBhKQogICAgIFZhbHVlKiB2YWx1ZSA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU1Nociwg
T3JpZ2luKCksIHZhbHVlLCB2YWx1ZSkpOwogCkBAIC0zMjQ4LDcgKzMyNTYsNyBAQCB2b2lkIHRl
c3RTU2hyQXJnczMyKGludDMyX3QgYSwgaW50MzJfdCBiCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTU2hyLCBPcmlnaW4oKSwKQEAgLTMyNjYsNyArMzI3
NCw3IEBAIHZvaWQgdGVzdFNTaHJJbW1zMzIoaW50MzJfdCBhLCBpbnQzMl90IGIKIHsKICAgICBQ
cm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNTaHIsIE9yaWdpbigpLApA
QCAtMzI4MCw3ICszMjg4LDcgQEAgdm9pZCB0ZXN0U1NockFyZ0ltbTMyKGludDMyX3QgYSwgaW50
MzJfdAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU1No
ciwgT3JpZ2luKCksCkBAIC0zMjk2LDcgKzMzMDQsNyBAQCB2b2lkIHRlc3RaU2hyQXJncyh1aW50
NjRfdCBhLCB1aW50NjRfdCBiCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBaU2hyLCBPcmlnaW4oKSwKQEAgLTMzMTIsNyArMzMyMCw3IEBAIHZvaWQgdGVz
dFpTaHJJbW1zKHVpbnQ2NF90IGEsIHVpbnQ2NF90IGIKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKICAgICAgICAgICAgIHByb2MsIFpTaHIsIE9yaWdpbigpLApAQCAtMzMyNiw3ICszMzM0
LDcgQEAgdm9pZCB0ZXN0WlNockFyZ0ltbSh1aW50NjRfdCBhLCB1aW50NjRfdAogewogICAgIFBy
b2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgWlNociwgT3JpZ2luKCksCkBA
IC0zMzQzLDcgKzMzNTEsNyBAQCB2b2lkIHRlc3RaU2hyQXJnMzIodWludDMyX3QgYSkKICAgICBW
YWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICBwcm9jLCBUcnVu
YywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIFpTaHIsIE9yaWdpbigpLCB2YWx1ZSwgdmFsdWUpKTsKIApAQCAtMzM1NCw3ICsz
MzYyLDcgQEAgdm9pZCB0ZXN0WlNockFyZ3MzMih1aW50MzJfdCBhLCB1aW50MzJfdAogewogICAg
IFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgWlNociwgT3JpZ2luKCks
CkBAIC0zMzcyLDcgKzMzODAsNyBAQCB2b2lkIHRlc3RaU2hySW1tczMyKHVpbnQzMl90IGEsIHVp
bnQzMl90CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBa
U2hyLCBPcmlnaW4oKSwKQEAgLTMzODYsNyArMzM5NCw3IEBAIHZvaWQgdGVzdFpTaHJBcmdJbW0z
Mih1aW50MzJfdCBhLCB1aW50MzIKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIFpTaHIsIE9yaWdpbigpLApAQCAtMzQxOSw3ICszNDI3LDcgQEAgdm9pZCB0
ZXN0Q2x6QXJnNjQoaW50NjRfdCBhKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFZhbHVl
KiBjbHpWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2x6LCBPcmlnaW4oKSwg
YXJndW1lbnQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIGNselZhbHVlKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2x6VmFsdWUpOwogICAgIENIRUNLKGNvbXBpbGVBbmRS
dW48dW5zaWduZWQ+KHByb2MsIGEpID09IGNvdW50TGVhZGluZ1plcm8oYSkpOwogfQogCkBAIC0z
NDMwLDcgKzM0MzgsNyBAQCB2b2lkIHRlc3RDbHpNZW02NChpbnQ2NF90IGEpCiAgICAgVmFsdWUq
IGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIHZhbHVlID0gcm9v
dC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQ2NCwgT3JpZ2luKCksIGFk
ZHJlc3MpOwogICAgIFZhbHVlKiBjbHpWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQ2x6LCBPcmlnaW4oKSwgdmFsdWUpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNselZhbHVlKTsKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2x6VmFsdWUpOwogICAgIENI
RUNLKGNvbXBpbGVBbmRSdW48dW5zaWduZWQ+KHByb2MsICZhKSA9PSBjb3VudExlYWRpbmdaZXJv
KGEpKTsKIH0KIApAQCAtMzQ0MSw3ICszNDQ5LDcgQEAgdm9pZCB0ZXN0Q2x6QXJnMzIoaW50MzJf
dCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
VHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiBj
bHpWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2x6LCBPcmlnaW4oKSwgYXJn
dW1lbnQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIGNselZhbHVlKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgY2x6VmFsdWUpOwogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48
dW5zaWduZWQ+KHByb2MsIGEpID09IGNvdW50TGVhZGluZ1plcm8oYSkpOwogfQogCkBAIC0zNDUy
LDcgKzM0NjAsNyBAQCB2b2lkIHRlc3RDbHpNZW0zMihpbnQzMl90IGEpCiAgICAgVmFsdWUqIGFk
ZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIHZhbHVlID0gcm9vdC0+
YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2luKCksIGFkZHJl
c3MpOwogICAgIFZhbHVlKiBjbHpWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
Q2x6LCBPcmlnaW4oKSwgdmFsdWUpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNselZhbHVlKTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2x6VmFsdWUpOwogICAgIENIRUNL
KGNvbXBpbGVBbmRSdW48dW5zaWduZWQ+KHByb2MsICZhKSA9PSBjb3VudExlYWRpbmdaZXJvKGEp
KTsKIH0KIApAQCAtMzQ2MCw3ICszNDY4LDcgQEAgdm9pZCB0ZXN0QWJzQXJnKGRvdWJsZSBhKQog
ewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWJzLCBPcmln
aW4oKSwKQEAgLTM0NzQsNyArMzQ4Miw3IEBAIHZvaWQgdGVzdEFic0ltbShkb3VibGUgYSkKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgYSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFicywgT3Jp
Z2luKCksIGFyZ3VtZW50KSk7CiAKQEAgLTM0ODcsNyArMzQ5NSw3IEBAIHZvaWQgdGVzdEFic01l
bShkb3VibGUgYSkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAg
IFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2Fk
RG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBEb3VibGUs
IE9yaWdpbigpLCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBPcmln
aW4oKSwgbG9hZERvdWJsZSkpOwogCkBAIC0zNTAxLDcgKzM1MDksNyBAQCB2b2lkIHRlc3RBYnNB
YnNBcmcoZG91YmxlIGEpCiAgICAgVmFsdWUqIGZpcnN0QWJzID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBBYnMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCkpOwogICAg
IFZhbHVlKiBzZWNvbmRBYnMgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFicywgT3Jp
Z2luKCksIGZpcnN0QWJzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmRBYnMpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmRBYnMpOwogCiAgICAgQ0hFQ0so
aXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIGEpLCBmYWJzKGEpKSk7CiB9
CkBAIC0zNTEzLDcgKzM1MjEsNyBAQCB2b2lkIHRlc3RBYnNCaXR3aXNlQ2FzdEFyZyhkb3VibGUg
YSkKICAgICBWYWx1ZSogYXJndW1lbnRBc0ludDY0ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50
UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFZh
bHVlKiBhcmd1bWVudEFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3
aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50QXNJbnQ2NCk7CiAgICAgVmFsdWUqIGFic1ZhbHVl
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdpbigpLCBhcmd1bWVudEFz
RG91YmxlKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBhYnNWYWx1ZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIGFic1ZhbHVlKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2Fs
KGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50NjRfdD4oYSkpLCBm
YWJzKGEpKSk7CiB9CkBAIC0zNTI3LDcgKzM1MzUsNyBAQCB2b2lkIHRlc3RCaXR3aXNlQ2FzdEFi
c0JpdHdpc2VDYXN0QXJnKGRvCiAgICAgVmFsdWUqIGFic1ZhbHVlID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdpbigpLCBhcmd1bWVudEFzRG91YmxlKTsKICAgICBWYWx1
ZSogcmVzdWx0QXNJbnQ2NCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNh
c3QsIE9yaWdpbigpLCBhYnNWYWx1ZSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHRBc0ludDY0KTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0QXNJbnQ2
NCk7CiAKICAgICBpbnQ2NF90IGV4cGVjdGVkUmVzdWx0ID0gYml0d2lzZV9jYXN0PGludDY0X3Q+
KGZhYnMoYSkpOwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50NjRfdD4o
cHJvYywgYml0d2lzZV9jYXN0PGludDY0X3Q+KGEpKSwgZXhwZWN0ZWRSZXN1bHQpKTsKQEAgLTM1
NDIsNyArMzU1MCw3IEBAIHZvaWQgdGVzdEFic0FyZyhmbG9hdCBhKQogICAgIFZhbHVlKiBhcmd1
bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigp
LCBhcmd1bWVudDMyKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBBYnMsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3Vs
dCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21w
aWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdp
c2VfY2FzdDxpbnQzMl90PihzdGF0aWNfY2FzdDxmbG9hdD4oZmFicyhhKSkpKSk7CiB9CkBAIC0z
NTU0LDcgKzM1NjIsNyBAQCB2b2lkIHRlc3RBYnNJbW0oZmxvYXQgYSkKICAgICBWYWx1ZSogYXJn
dW1lbnQgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
YSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJz
LCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxp
bnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50
MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KGZhYnMoYSkpKSkpOwogfQpAQCAtMzU2Nyw3ICszNTc1
LDcgQEAgdm9pZCB0ZXN0QWJzTWVtKGZsb2F0IGEpCiAgICAgTWVtb3J5VmFsdWUqIGxvYWRGbG9h
dCA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgRmxvYXQsIE9yaWdp
bigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBBYnMsIE9yaWdpbigpLCBsb2FkRmxvYXQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1
bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29t
cGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCAmYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihzdGF0
aWNfY2FzdDxmbG9hdD4oZmFicyhhKSkpKSk7CiB9CkBAIC0zNTgxLDcgKzM1ODksNyBAQCB2b2lk
IHRlc3RBYnNBYnNBcmcoZmxvYXQgYSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAg
ICAgVmFsdWUqIGZpcnN0QWJzID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9y
aWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHNlY29uZEFicyA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQWJzLCBPcmlnaW4oKSwgZmlyc3RBYnMpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZEFicyk7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNl
Y29uZEFicyk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihw
cm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBzdGF0aWNfY2FzdDxmbG9hdD4oZmFicyhh
KSkpKTsKIH0KQEAgLTM1OTQsNyArMzYwMiw3IEBAIHZvaWQgdGVzdEFic0JpdHdpc2VDYXN0QXJn
KGZsb2F0IGEpCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgVmFsdWUqIGFyZ3VtZW50
QXNmbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdp
bigpLCBhcmd1bWVudEFzSW50MzIpOwogICAgIFZhbHVlKiBhYnNWYWx1ZSA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBPcmlnaW4oKSwgYXJndW1lbnRBc2Zsb2F0KTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhYnNW
YWx1ZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIGFic1ZhbHVlKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48
ZmxvYXQ+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIHN0YXRpY19jYXN0PGZsb2F0
PihmYWJzKGEpKSkpOwogfQpAQCAtMzYwOSw3ICszNjE3LDcgQEAgdm9pZCB0ZXN0Qml0d2lzZUNh
c3RBYnNCaXR3aXNlQ2FzdEFyZyhmbAogICAgIFZhbHVlKiBhYnNWYWx1ZSA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBPcmlnaW4oKSwgYXJndW1lbnRBc2Zsb2F0KTsKICAgICBW
YWx1ZSogcmVzdWx0QXNJbnQ2NCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lz
ZUNhc3QsIE9yaWdpbigpLCBhYnNWYWx1ZSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHRBc0ludDY0KTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0QXNJ
bnQ2NCk7CiAKICAgICBpbnQzMl90IGV4cGVjdGVkUmVzdWx0ID0gYml0d2lzZV9jYXN0PGludDMy
X3Q+KHN0YXRpY19jYXN0PGZsb2F0PihmYWJzKGEpKSk7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwo
Y29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBl
eHBlY3RlZFJlc3VsdCkpOwpAQCAtMzYyNiw3ICszNjM0LDcgQEAgdm9pZCB0ZXN0QWJzQXJnV2l0
aFVzZWxlc3NEb3VibGVDb252ZXJzaQogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEFicywgT3JpZ2luKCksIGFzRG91YmxlKTsKICAgICBWYWx1ZSogZmxv
YXRSZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9y
aWdpbigpLCByZXN1bHQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGlu
dDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQz
Ml90PihzdGF0aWNfY2FzdDxmbG9hdD4oZmFicyhhKSkpKSk7CiB9CkBAIC0zNjQ0LDcgKzM2NTIs
NyBAQCB2b2lkIHRlc3RBYnNBcmdXaXRoRWZmZWN0ZnVsRG91YmxlQ29udmVyCiAgICAgVmFsdWUq
IHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3Jp
Z2luKCksIGZsb2F0UmVzdWx0KTsKICAgICBWYWx1ZSogZG91YmxlQWRkcmVzcyA9IHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIxKTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBP
cmlnaW4oKSwgcmVzdWx0LCBkb3VibGVBZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsK
IAogICAgIGRvdWJsZSBlZmZlY3QgPSAwOwogICAgIGludDMyX3QgcmVzdWx0VmFsdWUgPSBjb21w
aWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgJmVmZmVj
dCk7CkBAIC0zNjU2LDcgKzM2NjQsNyBAQCB2b2lkIHRlc3RDZWlsQXJnKGRvdWJsZSBhKQogewog
ICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQ2VpbCwgT3JpZ2lu
KCksCkBAIC0zNjcwLDcgKzM2NzgsNyBAQCB2b2lkIHRlc3RDZWlsSW1tKGRvdWJsZSBhKQogICAg
IFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBhKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3Jp
Z2luKCksIGFyZ3VtZW50KSk7CiAKQEAgLTM2ODMsNyArMzY5MSw3IEBAIHZvaWQgdGVzdENlaWxN
ZW0oZG91YmxlIGEpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAg
ICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBNZW1vcnlWYWx1ZSogbG9h
ZERvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgRG91Ymxl
LCBPcmlnaW4oKSwgYWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9y
aWdpbigpLCBsb2FkRG91YmxlKSk7CiAKQEAgLTM2OTcsNyArMzcwNSw3IEBAIHZvaWQgdGVzdENl
aWxDZWlsQXJnKGRvdWJsZSBhKQogICAgIFZhbHVlKiBmaXJzdENlaWwgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCkp
OwogICAgIFZhbHVlKiBzZWNvbmRDZWlsID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBD
ZWlsLCBPcmlnaW4oKSwgZmlyc3RDZWlsKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmRDZWlsKTsKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kQ2VpbCk7CiAK
ICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgYSksIGNl
aWwoYSkpKTsKIH0KQEAgLTM3MDksNyArMzcxNyw3IEBAIHZvaWQgdGVzdEZsb29yQ2VpbEFyZyhk
b3VibGUgYSkKICAgICBWYWx1ZSogZmlyc3RDZWlsID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBDZWlsLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApKTsKICAgICBWYWx1
ZSogd3JhcHBpbmdGbG9vciA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9y
aWdpbigpLCBmaXJzdENlaWwpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHdyYXBwaW5nRmxvb3IpOworICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB3cmFwcGluZ0Zsb29yKTsKIAog
ICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBhKSwgY2Vp
bChhKSkpOwogfQpAQCAtMzcyMSw3ICszNzI5LDcgQEAgdm9pZCB0ZXN0Q2VpbElUb0Q2NChpbnQ2
NF90IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFZhbHVl
KiBhcmd1bWVudEFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBP
cmlnaW4oKSwgYXJndW1lbnQpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9y
aWdpbigpLCBhcmd1bWVudEFzRG91YmxlKSk7CiAKQEAgLTM3MzYsNyArMzc0NCw3IEBAIHZvaWQg
dGVzdENlaWxJVG9EMzIoaW50NjRfdCBhKQogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAg
IFZhbHVlKiBhcmd1bWVudEFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJ
VG9ELCBPcmlnaW4oKSwgYXJndW1lbnQpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENl
aWwsIE9yaWdpbigpLCBhcmd1bWVudEFzRG91YmxlKSk7CiAKQEAgLTM3NTIsNyArMzc2MCw3IEBA
IHZvaWQgdGVzdENlaWxBcmcoZmxvYXQgYSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7
CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwg
T3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQz
Mik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50
MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMy
X3Q+KGNlaWxmKGEpKSkpOwogfQpAQCAtMzc2NCw3ICszNzcyLDcgQEAgdm9pZCB0ZXN0Q2VpbElt
bShmbG9hdCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZs
b2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDZWlsLCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZh
bHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3Qs
IE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0so
aXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50
MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oY2VpbGYoYSkpKSk7CiB9CkBAIC0zNzc3
LDcgKzM3ODUsNyBAQCB2b2lkIHRlc3RDZWlsTWVtKGZsb2F0IGEpCiAgICAgTWVtb3J5VmFsdWUq
IGxvYWRGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgRmxv
YXQsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBDZWlsLCBPcmlnaW4oKSwgbG9hZEZsb2F0KTsKICAgICBWYWx1ZSog
cmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmln
aW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRl
bnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgJmEpLCBiaXR3aXNlX2Nhc3Q8aW50
MzJfdD4oY2VpbGYoYSkpKSk7CiB9CkBAIC0zNzkxLDcgKzM3OTksNyBAQCB2b2lkIHRlc3RDZWls
Q2VpbEFyZyhmbG9hdCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1
ZSogZmlyc3RDZWlsID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDZWlsLCBPcmlnaW4o
KSwgYXJndW1lbnQpOwogICAgIFZhbHVlKiBzZWNvbmRDZWlsID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBDZWlsLCBPcmlnaW4oKSwgZmlyc3RDZWlsKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmRDZWlsKTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vj
b25kQ2VpbCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihw
cm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBjZWlsZihhKSkpOwogfQpAQCAtMzgwNSw3
ICszODEzLDcgQEAgdm9pZCB0ZXN0Rmxvb3JDZWlsQXJnKGZsb2F0IGEpCiAgICAgVmFsdWUqIGFy
Z3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2lu
KCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiBmaXJzdENlaWwgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHdyYXBw
aW5nRmxvb3IgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwg
Zmlyc3RDZWlsKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCB3cmFwcGluZ0Zsb29yKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgd3JhcHBpbmdGbG9vcik7CiAKICAgICBDSEVD
Syhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50
MzJfdD4oYSkpLCBjZWlsZihhKSkpOwogfQpAQCAtMzgyMSw3ICszODI5LDcgQEAgdm9pZCB0ZXN0
Q2VpbEFyZ1dpdGhVc2VsZXNzRG91YmxlQ29udmVycwogICAgIFZhbHVlKiByZXN1bHQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBhc0RvdWJsZSk7CiAgICAg
VmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVU
b0Zsb2F0LCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGls
ZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNl
X2Nhc3Q8aW50MzJfdD4oY2VpbGYoYSkpKSk7CiB9CkBAIC0zODM5LDcgKzM4NDcsNyBAQCB2b2lk
IHRlc3RDZWlsQXJnV2l0aEVmZmVjdGZ1bERvdWJsZUNvbnZlCiAgICAgVmFsdWUqIHJlc3VsdDMy
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZs
b2F0UmVzdWx0KTsKICAgICBWYWx1ZSogZG91YmxlQWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsK
ICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwg
cmVzdWx0LCBkb3VibGVBZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIGRv
dWJsZSBlZmZlY3QgPSAwOwogICAgIGludDMyX3QgcmVzdWx0VmFsdWUgPSBjb21waWxlQW5kUnVu
PGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgJmVmZmVjdCk7CkBAIC0z
ODUxLDcgKzM4NTksNyBAQCB2b2lkIHRlc3RGbG9vckFyZyhkb3VibGUgYSkKIHsKICAgICBQcm9j
ZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEZsb29yLCBPcmlnaW4oKSwKQEAg
LTM4NjUsNyArMzg3Myw3IEBAIHZvaWQgdGVzdEZsb29ySW1tKGRvdWJsZSBhKQogICAgIFByb2Nl
ZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAg
VmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBhKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigp
LCBhcmd1bWVudCkpOwogCkBAIC0zODc4LDcgKzM4ODYsNyBAQCB2b2lkIHRlc3RGbG9vck1lbShk
b3VibGUgYSkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZh
bHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkRG91
YmxlID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBEb3VibGUsIE9y
aWdpbigpLCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdp
bigpLCBsb2FkRG91YmxlKSk7CiAKQEAgLTM4OTIsNyArMzkwMCw3IEBAIHZvaWQgdGVzdEZsb29y
Rmxvb3JBcmcoZG91YmxlIGEpCiAgICAgVmFsdWUqIGZpcnN0Rmxvb3IgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjAp
KTsKICAgICBWYWx1ZSogc2Vjb25kRmxvb3IgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEZsb29yLCBPcmlnaW4oKSwgZmlyc3RGbG9vcik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kRmxvb3IpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmRGbG9v
cik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywg
YSksIGZsb29yKGEpKSk7CiB9CkBAIC0zOTA0LDcgKzM5MTIsNyBAQCB2b2lkIHRlc3RDZWlsRmxv
b3JBcmcoZG91YmxlIGEpCiAgICAgVmFsdWUqIGZpcnN0Rmxvb3IgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApKTsK
ICAgICBWYWx1ZSogd3JhcHBpbmdDZWlsID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBD
ZWlsLCBPcmlnaW4oKSwgZmlyc3RGbG9vcik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgd3JhcHBpbmdDZWlsKTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgd3JhcHBpbmdDZWls
KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBh
KSwgZmxvb3IoYSkpKTsKIH0KQEAgLTM5MTYsNyArMzkyNCw3IEBAIHZvaWQgdGVzdEZsb29ySVRv
RDY0KGludDY0X3QgYSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAg
ICAgVmFsdWUqIGFyZ3VtZW50QXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IElUb0QsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
Rmxvb3IsIE9yaWdpbigpLCBhcmd1bWVudEFzRG91YmxlKSk7CiAKQEAgLTM5MzEsNyArMzkzOSw3
IEBAIHZvaWQgdGVzdEZsb29ySVRvRDMyKGludDY0X3QgYSkKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApKTsKICAgICBWYWx1ZSogYXJndW1lbnRBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGFyZ3VtZW50KTsKIAotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGFyZ3VtZW50QXNEb3VibGUpKTsKIApAQCAtMzk0Nyw3
ICszOTU1LDcgQEAgdm9pZCB0ZXN0Rmxvb3JBcmcoZmxvYXQgYSkKICAgICBWYWx1ZSogYXJndW1l
bnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwg
YXJndW1lbnQzMik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgRmxvb3IsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3Vs
dCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21w
aWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdp
c2VfY2FzdDxpbnQzMl90PihmbG9vcmYoYSkpKSk7CiB9CkBAIC0zOTU5LDcgKzM5NjcsNyBAQCB2
b2lkIHRlc3RGbG9vckltbShmbG9hdCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFw
cGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSog
cmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGFy
Z3VtZW50KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMy
KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywg
Yml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGZsb29yZihh
KSkpKTsKIH0KQEAgLTM5NzIsNyArMzk4MCw3IEBAIHZvaWQgdGVzdEZsb29yTWVtKGZsb2F0IGEp
CiAgICAgTWVtb3J5VmFsdWUqIGxvYWRGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1
ZT4ocHJvYywgTG9hZCwgRmxvYXQsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogcmVz
dWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGxvYWRG
bG9hdCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7
CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsICZh
KSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGZsb29yZihhKSkpKTsKIH0KQEAgLTM5ODYsNyArMzk5
NCw3IEBAIHZvaWQgdGVzdEZsb29yRmxvb3JBcmcoZmxvYXQgYSkKICAgICBWYWx1ZSogYXJndW1l
bnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwg
YXJndW1lbnQzMik7CiAgICAgVmFsdWUqIGZpcnN0Rmxvb3IgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZhbHVlKiBzZWNvbmRG
bG9vciA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBmaXJz
dEZsb29yKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBzZWNvbmRGbG9vcik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZEZsb29yKTsKIAogICAgIENIRUNLKGlzSWRl
bnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90Pihh
KSksIGZsb29yZihhKSkpOwogfQpAQCAtNDAwMCw3ICs0MDA4LDcgQEAgdm9pZCB0ZXN0Q2VpbEZs
b29yQXJnKGZsb2F0IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVl
KiBmaXJzdEZsb29yID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2lu
KCksIGFyZ3VtZW50KTsKICAgICBWYWx1ZSogd3JhcHBpbmdDZWlsID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBDZWlsLCBPcmlnaW4oKSwgZmlyc3RGbG9vcik7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgd3JhcHBpbmdDZWls
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgd3JhcHBpbmdDZWlsKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48
ZmxvYXQ+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGZsb29yZihhKSkpOwogfQpA
QCAtNDAxNiw3ICs0MDI0LDcgQEAgdm9pZCB0ZXN0Rmxvb3JBcmdXaXRoVXNlbGVzc0RvdWJsZUNv
bnZlcgogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZs
b29yLCBPcmlnaW4oKSwgYXNEb3VibGUpOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIHJlc3VsdCk7
CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3
aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsK
IAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0
d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGZsb29yZihhKSkp
KTsKIH0KQEAgLTQwMzQsNyArNDA0Miw3IEBAIHZvaWQgdGVzdEZsb29yQXJnV2l0aEVmZmVjdGZ1
bERvdWJsZUNvbnYKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwogICAgIFZhbHVlKiBk
b3VibGVBZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1v
cnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGRvdWJsZUFkZHJlc3MpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgZG91YmxlIGVmZmVjdCA9IDA7CiAgICAgaW50
MzJfdCByZXN1bHRWYWx1ZSA9IGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9j
YXN0PGludDMyX3Q+KGEpLCAmZWZmZWN0KTsKQEAgLTQwNDYsNyArNDA1NCw3IEBAIHZvaWQgdGVz
dFNxcnRBcmcoZG91YmxlIGEpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBTcXJ0LCBPcmlnaW4oKSwKQEAgLTQwNjAsNyArNDA2OCw3IEBAIHZvaWQgdGVz
dFNxcnRJbW0oZG91YmxlIGEpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBl
bmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBTcXJ0LCBPcmlnaW4oKSwgYXJndW1lbnQpKTsKIApAQCAtNDA3Myw3ICs0
MDgxLDcgQEAgdm9pZCB0ZXN0U3FydE1lbShkb3VibGUgYSkKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjAp
OwogICAgIE1lbW9yeVZhbHVlKiBsb2FkRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZh
bHVlPihwcm9jLCBMb2FkLCBEb3VibGUsIE9yaWdpbigpLCBhZGRyZXNzKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgU3FydCwgT3JpZ2luKCksIGxvYWREb3VibGUpKTsKIApAQCAtNDA4OSw3
ICs0MDk3LDcgQEAgdm9pZCB0ZXN0U3FydEFyZyhmbG9hdCBhKQogICAgIFZhbHVlKiBhcmd1bWVu
dCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBh
cmd1bWVudDMyKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBTcXJ0LCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGls
ZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNl
X2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KHNxcnQoYSkpKSkpOwogfQpAQCAtNDEw
MSw3ICs0MTA5LDcgQEAgdm9pZCB0ZXN0U3FydEltbShmbG9hdCBhKQogICAgIFZhbHVlKiBhcmd1
bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBh
KTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTcXJ0
LCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxp
bnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50
MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KHNxcnQoYSkpKSkpOwogfQpAQCAtNDExNCw3ICs0MTIy
LDcgQEAgdm9pZCB0ZXN0U3FydE1lbShmbG9hdCBhKQogICAgIE1lbW9yeVZhbHVlKiBsb2FkRmxv
YXQgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEZsb2F0LCBPcmln
aW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgU3FydCwgT3JpZ2luKCksIGxvYWRGbG9hdCk7CiAgICAgVmFsdWUqIHJlc3VsdDMy
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJl
c3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChj
b21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsICZhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHN0
YXRpY19jYXN0PGZsb2F0PihzcXJ0KGEpKSkpKTsKIH0KQEAgLTQxMzAsNyArNDEzOCw3IEBAIHZv
aWQgdGVzdFNxcnRBcmdXaXRoVXNlbGVzc0RvdWJsZUNvbnZlcnMKICAgICBWYWx1ZSogcmVzdWx0
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTcXJ0LCBPcmlnaW4oKSwgYXNEb3VibGUp
OwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
RG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0
UmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2Fs
KGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwg
Yml0d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0PGZsb2F0PihzcXJ0KGEpKSkpKTsKIH0K
QEAgLTQxNDgsNyArNDE1Niw3IEBAIHZvaWQgdGVzdFNxcnRBcmdXaXRoRWZmZWN0ZnVsRG91Ymxl
Q29udmUKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwogICAgIFZhbHVlKiBkb3VibGVB
ZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1
ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGRvdWJsZUFkZHJlc3MpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0MzIpOwogCiAgICAgZG91YmxlIGVmZmVjdCA9IDA7CiAgICAgaW50MzJfdCBy
ZXN1bHRWYWx1ZSA9IGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KGEpLCAmZWZmZWN0KTsKQEAgLTQxNzIsNyArNDE4MCw3IEBAIHZvaWQgdGVzdENvbXBh
cmVUd29GbG9hdFRvRG91YmxlKGZsb2F0IGEKICAgICBWYWx1ZSogYXJnMkFzRG91YmxlID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgYXJnMkZs
b2F0KTsKICAgICBWYWx1ZSogZXF1YWwgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEVx
dWFsLCBPcmlnaW4oKSwgYXJnMUFzRG91YmxlLCBhcmcyQXNEb3VibGUpOwogCi0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZXF1YWwpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBl
cXVhbCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIGJpdHdpc2Vf
Y2FzdDxpbnQzMl90PihhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSA9PSAoYSA9PSBiKSk7
CiB9CkBAIC00MTkwLDcgKzQxOTgsNyBAQCB2b2lkIHRlc3RDb21wYXJlT25lRmxvYXRUb0RvdWJs
ZShmbG9hdCBhCiAgICAgVmFsdWUqIGFyZzJBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAg
ICBWYWx1ZSogZXF1YWwgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEVxdWFsLCBPcmln
aW4oKSwgYXJnMUFzRG91YmxlLCBhcmcyQXNEb3VibGUpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZXF1YWwpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBlcXVhbCk7CiAK
ICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQz
Ml90PihhKSwgYikgPT0gKGEgPT0gYikpOwogfQpAQCAtNDIxNCwyMyArNDIyMiwyMyBAQCB2b2lk
IHRlc3RDb21wYXJlRmxvYXRUb0RvdWJsZVRocm91Z2hQaGkoCiAgICAgVmFsdWUqIGFyZzJBc0Zs
b2F0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4o
KSwgYXJnMkFzRG91YmxlKTsKICAgICBWYWx1ZSogYXJnMkFzRlJvdW5kZWREb3VibGUgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBhcmcyQXNG
bG9hdCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAg
ICAgICAgIGNvbmRpdGlvbiwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJl
cXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKICAgICBVcHNpbG9uVmFsdWUqIHRoZW5WYWx1ZSA9
IHRoZW5DYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYXJnMUFz
RG91YmxlKTsKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVt
cCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CisgICAgdGhlbkNhc2UtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRh
aWwpKTsKIAogICAgIFZhbHVlKiBlbHNlQ29uc3QgPSBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0
RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwLik7CiAgICAgVXBzaWxvblZhbHVlKiBlbHNl
VmFsdWUgPSBlbHNlQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCks
IGVsc2VDb25zdCk7Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOworICAgIGVsc2VDYXNlLT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9j
ayh0YWlsKSk7CiAKICAgICBWYWx1ZSogZG91YmxlSW5wdXQgPSB0YWlsLT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIFBoaSwgRG91YmxlLCBPcmlnaW4oKSk7CiAgICAgdGhlblZhbHVlLT5zZXRQaGko
ZG91YmxlSW5wdXQpOwogICAgIGVsc2VWYWx1ZS0+c2V0UGhpKGRvdWJsZUlucHV0KTsKICAgICBW
YWx1ZSogZXF1YWwgPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEVxdWFsLCBPcmlnaW4o
KSwgZG91YmxlSW5wdXQsIGFyZzJBc0ZSb3VuZGVkRG91YmxlKTsKLSAgICB0YWlsLT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBlcXVhbCk7CisgICAgdGFp
bC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGVxdWFsKTsK
IAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgaW50MzJfdCBpbnRlZ2VyQSA9
IGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKTsKQEAgLTQyNjEsNyArNDI2OSw3IEBAIHZvaWQgdGVz
dERvdWJsZVRvRmxvYXRUaHJvdWdoUGhpKGZsb2F0IHYKICAgICBWYWx1ZSogZmxvYXRWYWx1ZSA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1
bWVudDMyKTsKICAgICBWYWx1ZSogYXJnQXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBmbG9hdFZhbHVlKTsKIAotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgY29uZGl0aW9uLAog
ICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNh
c2UpKTsKQEAgLTQyNjksMTcgKzQyNzcsMTcgQEAgdm9pZCB0ZXN0RG91YmxlVG9GbG9hdFRocm91
Z2hQaGkoZmxvYXQgdgogICAgIFZhbHVlKiBwb3N0aXRpdmVDb25zdCA9IHRoZW5DYXNlLT5hcHBl
bmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyLjVmKTsKICAgICBWYWx1
ZSogdGhlbkFkZCA9IHRoZW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2lu
KCksIGFyZ0FzRG91YmxlLCBwb3N0aXRpdmVDb25zdCk7CiAgICAgVXBzaWxvblZhbHVlKiB0aGVu
VmFsdWUgPSB0aGVuQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCks
IHRoZW5BZGQpOwotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBK
dW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKKyAgICB0aGVuQ2FzZS0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2so
dGFpbCkpOwogCiAgICAgVmFsdWUqIGVsc2VDb25zdCA9IGVsc2VDYXNlLT5hcHBlbmROZXc8Q29u
c3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIE1fUEkpOwogICAgIFVwc2lsb25WYWx1ZSog
ZWxzZVZhbHVlID0gZWxzZUNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBlbHNlQ29uc3QpOwotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKKyAgICBlbHNlQ2Fz
ZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVk
QmxvY2sodGFpbCkpOwogCiAgICAgVmFsdWUqIGRvdWJsZUlucHV0ID0gdGFpbC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBQaGksIERvdWJsZSwgT3JpZ2luKCkpOwogICAgIHRoZW5WYWx1ZS0+c2V0
UGhpKGRvdWJsZUlucHV0KTsKICAgICBlbHNlVmFsdWUtPnNldFBoaShkb3VibGVJbnB1dCk7CiAg
ICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gdGFpbC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3Vi
bGVUb0Zsb2F0LCBPcmlnaW4oKSwgZG91YmxlSW5wdXQpOwotICAgIHRhaWwtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKKyAgICB0
YWlsLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZmxvYXRS
ZXN1bHQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBDSEVDSyhpc0lk
ZW50aWNhbChpbnZva2U8ZmxvYXQ+KCpjb2RlLCAxLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4odmFs
dWUpKSwgdmFsdWUgKyA0Mi41ZikpOwpAQCAtNDI5OSwxOCArNDMwNywxOCBAQCB2b2lkIHRlc3RE
b3VibGVQcm9kdWNlclBoaVRvRmxvYXRDb252ZXJzCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7
CiAgICAgVmFsdWUqIGZsb2F0VmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJp
dHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIGNvbmRpdGlvbiwKICAgICAgICAgRnJl
cXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKICAg
ICBWYWx1ZSogYXNEb3VibGUgPSB0aGVuQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9h
dFRvRG91YmxlLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSk7CiAgICAgVXBzaWxvblZhbHVlKiB0aGVu
VmFsdWUgPSB0aGVuQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCks
IGFzRG91YmxlKTsKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
SnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CisgICAgdGhlbkNhc2UtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2Nr
KHRhaWwpKTsKIAogICAgIFZhbHVlKiBjb25zdERvdWJsZSA9IGVsc2VDYXNlLT5hcHBlbmROZXc8
Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyLjUpOwogICAgIFVwc2lsb25WYWx1
ZSogZWxzZVZhbHVlID0gZWxzZUNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBjb25zdERvdWJsZSk7Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOworICAgIGVs
c2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1
ZW50ZWRCbG9jayh0YWlsKSk7CiAKICAgICBWYWx1ZSogZG91YmxlSW5wdXQgPSB0YWlsLT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIFBoaSwgRG91YmxlLCBPcmlnaW4oKSk7CiAgICAgdGhlblZhbHVl
LT5zZXRQaGkoZG91YmxlSW5wdXQpOwpAQCAtNDMxOSw3ICs0MzI3LDcgQEAgdm9pZCB0ZXN0RG91
YmxlUHJvZHVjZXJQaGlUb0Zsb2F0Q29udmVycwogICAgIFZhbHVlKiBhcmdBc0RvdWJsZUFnYWlu
ID0gdGFpbC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwg
ZmxvYXRWYWx1ZSk7CiAgICAgVmFsdWUqIGZpbmFsQWRkID0gdGFpbC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBBZGQsIE9yaWdpbigpLCBkb3VibGVJbnB1dCwgYXJnQXNEb3VibGVBZ2Fpbik7CiAg
ICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gdGFpbC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3Vi
bGVUb0Zsb2F0LCBPcmlnaW4oKSwgZmluYWxBZGQpOwotICAgIHRhaWwtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKKyAgICB0YWls
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZmxvYXRSZXN1
bHQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBDSEVDSyhpc0lkZW50
aWNhbChpbnZva2U8ZmxvYXQ+KCpjb2RlLCAxLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4odmFsdWUp
KSwgdmFsdWUgKyB2YWx1ZSkpOwpAQCAtNDM0MSwxOCArNDM0OSwxOCBAQCB2b2lkIHRlc3REb3Vi
bGVQcm9kdWNlclBoaVRvRmxvYXRDb252ZXJzCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7CiAg
ICAgVmFsdWUqIGZsb2F0VmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdp
c2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIGNvbmRpdGlvbiwKICAgICAgICAgRnJlcXVl
bnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKICAgICBW
YWx1ZSogYXNEb3VibGUgPSB0aGVuQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRv
RG91YmxlLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSk7CiAgICAgVXBzaWxvblZhbHVlKiB0aGVuVmFs
dWUgPSB0aGVuQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFz
RG91YmxlKTsKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVt
cCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CisgICAgdGhlbkNhc2UtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRh
aWwpKTsKIAogICAgIFZhbHVlKiBjb25zdERvdWJsZSA9IGVsc2VDYXNlLT5hcHBlbmROZXc8Q29u
c3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyLjUpOwogICAgIFVwc2lsb25WYWx1ZSog
ZWxzZVZhbHVlID0gZWxzZUNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBjb25zdERvdWJsZSk7Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOworICAgIGVsc2VD
YXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50
ZWRCbG9jayh0YWlsKSk7CiAKICAgICBWYWx1ZSogZG91YmxlSW5wdXQgPSB0YWlsLT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIFBoaSwgRG91YmxlLCBPcmlnaW4oKSk7CiAgICAgdGhlblZhbHVlLT5z
ZXRQaGkoZG91YmxlSW5wdXQpOwpAQCAtNDM2OCw3ICs0Mzc2LDcgQEAgdm9pZCB0ZXN0RG91Ymxl
UHJvZHVjZXJQaGlUb0Zsb2F0Q29udmVycwogICAgIC8vIFRoaXMgb25lICpjYW5ub3QqIGJlIGVs
aW1pbmF0ZWQKICAgICBWYWx1ZSogZG91YmxlQWRkID0gdGFpbC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBBZGQsIE9yaWdpbigpLCBkb3VibGVJbnB1dCwgZG91YmxlUmVzdWx0KTsKIAotICAgIHRh
aWwtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGRvdWJs
ZUFkZCk7CisgICAgdGFpbC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIGRvdWJsZUFkZCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAg
IENIRUNLKGlzSWRlbnRpY2FsKGludm9rZTxkb3VibGU+KCpjb2RlLCAxLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4odmFsdWUpKSwgKHZhbHVlICsgdmFsdWUpICsgc3RhdGljX2Nhc3Q8ZG91YmxlPih2
YWx1ZSkpKTsKQEAgLTQzODgsMTggKzQzOTYsMTggQEAgdm9pZCB0ZXN0RG91YmxlUHJvZHVjZXJQ
aGlXaXRoTm9uRmxvYXRDbwogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSkpOwogICAgIFZhbHVlKiBm
bG9hdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3Jp
Z2luKCksIGFyZ3VtZW50MzIpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gs
IE9yaWdpbigpLAogICAgICAgICBjb25kaXRpb24sCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0
aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCiAgICAgVmFsdWUqIGFzRG91
YmxlID0gdGhlbkNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3Jp
Z2luKCksIGZsb2F0VmFsdWUpOwogICAgIFVwc2lsb25WYWx1ZSogdGhlblZhbHVlID0gdGhlbkNh
c2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhc0RvdWJsZSk7Ci0g
ICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigp
LCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOworICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CiAKICAg
ICBWYWx1ZSogY29uc3REb3VibGUgPSBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBjb25zdFZhbHVlKTsKICAgICBVcHNpbG9uVmFsdWUqIGVsc2VW
YWx1ZSA9IGVsc2VDYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
Y29uc3REb3VibGUpOwotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKKyAgICBlbHNlQ2FzZS0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxv
Y2sodGFpbCkpOwogCiAgICAgVmFsdWUqIGRvdWJsZUlucHV0ID0gdGFpbC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBQaGksIERvdWJsZSwgT3JpZ2luKCkpOwogICAgIHRoZW5WYWx1ZS0+c2V0UGhp
KGRvdWJsZUlucHV0KTsKQEAgLTQ0MDgsNyArNDQxNiw3IEBAIHZvaWQgdGVzdERvdWJsZVByb2R1
Y2VyUGhpV2l0aE5vbkZsb2F0Q28KICAgICBWYWx1ZSogYXJnQXNEb3VibGVBZ2FpbiA9IHRhaWwt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGZsb2F0VmFs
dWUpOwogICAgIFZhbHVlKiBmaW5hbEFkZCA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
QWRkLCBPcmlnaW4oKSwgZG91YmxlSW5wdXQsIGFyZ0FzRG91YmxlQWdhaW4pOwogICAgIFZhbHVl
KiBmbG9hdFJlc3VsdCA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9h
dCwgT3JpZ2luKCksIGZpbmFsQWRkKTsKLSAgICB0YWlsLT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CisgICAgdGFpbC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKIAog
ICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoaW52
b2tlPGZsb2F0PigqY29kZSwgMSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHZhbHVlKSksIHZhbHVl
ICsgdmFsdWUpKTsKQEAgLTQ0MjEsNyArNDQyOSw3IEBAIHZvaWQgdGVzdERvdWJsZUFyZ1RvSW50
NjRCaXR3aXNlQ2FzdChkb3UKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKIAotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1l
bnQpKTsKQEAgLTQ0MzUsNyArNDQ0Myw3IEBAIHZvaWQgdGVzdERvdWJsZUltbVRvSW50NjRCaXR3
aXNlQ2FzdChkb3UKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAg
IFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgdmFsdWUpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudCkpOwpAQCAtNDQ1MCw3ICs0NDU4
LDcgQEAgdm9pZCB0ZXN0VHdvQml0d2lzZUNhc3RPbkRvdWJsZShkb3VibGUgdgogICAgIFZhbHVl
KiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogZmlyc3QgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQpOwog
ICAgIFZhbHVlKiBzZWNvbmQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VD
YXN0LCBPcmlnaW4oKSwgZmlyc3QpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZCk7CiAKICAgICBDSEVDSyhp
c0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgdmFsdWUpLCB2YWx1ZSkpOwog
fQpAQCAtNDQ2Miw3ICs0NDcwLDcgQEAgdm9pZCB0ZXN0Qml0d2lzZUNhc3RPbkRvdWJsZUluTWVt
b3J5KGRvdQogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9y
eVZhbHVlKiBsb2FkRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBM
b2FkLCBEb3VibGUsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogY2FzdCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBsb2FkRG91Ymxl
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBjYXN0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgY2FzdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVu
PGludDY0X3Q+KHByb2MsICZ2YWx1ZSksIGJpdHdpc2VfY2FzdDxpbnQ2NF90Pih2YWx1ZSkpKTsK
IH0KQEAgLTQ0NzksNyArNDQ4Nyw3IEBAIHZvaWQgdGVzdEJpdHdpc2VDYXN0T25Eb3VibGVJbk1l
bW9yeUluZGUKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQWRkLCBPcmlnaW4oKSwgYmFzZSwgc2NhbGVkT2Zmc2V0KTsKICAgICBNZW1vcnlWYWx1ZSog
bG9hZERvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgRG91
YmxlLCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIGNhc3QgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgbG9hZERvdWJsZSk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2Fz
dCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIGNhc3QpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQ2NF90
Pihwcm9jLCAmdmFsdWUsIDApLCBiaXR3aXNlX2Nhc3Q8aW50NjRfdD4odmFsdWUpKSk7CiB9CkBA
IC00NDkwLDcgKzQ0OTgsNyBAQCB2b2lkIHRlc3RJbnQ2NEJBcmdUb0RvdWJsZUJpdHdpc2VDYXN0
KGluCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSog
YXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50KSk7CkBAIC00NTA0
LDcgKzQ1MTIsNyBAQCB2b2lkIHRlc3RJbnQ2NEJJbW1Ub0RvdWJsZUJpdHdpc2VDYXN0KGluCiAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1l
bnQgPSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUp
OwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0d2lzZUNhc3Qs
IE9yaWdpbigpLCBhcmd1bWVudCkpOwpAQCAtNDUxOSw3ICs0NTI3LDcgQEAgdm9pZCB0ZXN0VHdv
Qml0d2lzZUNhc3RPbkludDY0KGludDY0X3QgdgogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKTsKICAgICBWYWx1ZSogZmlyc3QgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZhbHVlKiBzZWNvbmQg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmly
c3QpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHNlY29uZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHNlY29uZCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxl
QW5kUnVuPGludDY0X3Q+KHByb2MsIHZhbHVlKSwgdmFsdWUpKTsKIH0KQEAgLTQ1MzEsNyArNDUz
OSw3IEBAIHZvaWQgdGVzdEJpdHdpc2VDYXN0T25JbnQ2NEluTWVtb3J5KGludDYKICAgICBWYWx1
ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBNZW1vcnlWYWx1ZSogbG9hZERvdWJs
ZSA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50NjQsIE9yaWdp
bigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogY2FzdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBsb2FkRG91YmxlKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0KTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FzdCk7
CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgJnZh
bHVlKSwgYml0d2lzZV9jYXN0PGRvdWJsZT4odmFsdWUpKSk7CiB9CkBAIC00NTQ4LDcgKzQ1NTYs
NyBAQCB2b2lkIHRlc3RCaXR3aXNlQ2FzdE9uSW50NjRJbk1lbW9yeUluZGV4CiAgICAgVmFsdWUq
IGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGJh
c2UsIHNjYWxlZE9mZnNldCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWREb3VibGUgPSByb290LT5h
cHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDY0LCBPcmlnaW4oKSwgYWRkcmVz
cyk7CiAgICAgVmFsdWUqIGNhc3QgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdp
c2VDYXN0LCBPcmlnaW4oKSwgbG9hZERvdWJsZSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FzdCk7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNhc3QpOwogCiAgICAgQ0hF
Q0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsICZ2YWx1ZSwgMCksIGJp
dHdpc2VfY2FzdDxkb3VibGU+KHZhbHVlKSkpOwogfQpAQCAtNDU1OSw3ICs0NTY3LDcgQEAgdm9p
ZCB0ZXN0RmxvYXRJbW1Ub0ludDMyQml0d2lzZUNhc3QoZmxvYQogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5k
TmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKTsKIAotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJn
dW1lbnQpKTsKQEAgLTQ1NzQsNyArNDU4Miw3IEBAIHZvaWQgdGVzdEJpdHdpc2VDYXN0T25GbG9h
dEluTWVtb3J5KGZsb2EKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAg
ICBNZW1vcnlWYWx1ZSogbG9hZEZsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihw
cm9jLCBMb2FkLCBGbG9hdCwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBjYXN0ID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGxvYWRG
bG9hdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgY2FzdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIGNhc3QpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFu
ZFJ1bjxpbnQzMl90Pihwcm9jLCAmdmFsdWUpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4odmFsdWUp
KSk7CiB9CkBAIC00NTg1LDcgKzQ1OTMsNyBAQCB2b2lkIHRlc3RJbnQzMkJBcmdUb0Zsb2F0Qml0
d2lzZUNhc3QoaW50CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAg
ICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50KSk7
CkBAIC00NTk5LDcgKzQ2MDcsNyBAQCB2b2lkIHRlc3RJbnQzMkJJbW1Ub0Zsb2F0Qml0d2lzZUNh
c3QoaW50CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1
ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgdmFsdWUpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0
d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudCkpOwpAQCAtNDYxNCw3ICs0NjIyLDcgQEAgdm9p
ZCB0ZXN0VHdvQml0d2lzZUNhc3RPbkludDMyKGludDMyX3QgdgogICAgIFZhbHVlKiBhcmd1bWVu
dCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BS
SW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBWYWx1ZSogZmlyc3QgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZhbHVl
KiBzZWNvbmQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmln
aW4oKSwgZmlyc3QpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHNlY29uZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNh
bChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIHZhbHVlKSwgdmFsdWUpKTsKIH0KQEAgLTQ2
MjYsNyArNDYzNCw3IEBAIHZvaWQgdGVzdEJpdHdpc2VDYXN0T25JbnQzMkluTWVtb3J5KGludDMK
ICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBNZW1vcnlWYWx1ZSog
bG9hZEZsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQz
MiwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBjYXN0ID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGxvYWRGbG9hdCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FzdCk7
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IGNhc3QpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJv
YywgJnZhbHVlKSwgYml0d2lzZV9jYXN0PGZsb2F0Pih2YWx1ZSkpKTsKIH0KQEAgLTQ2MzcsNyAr
NDY0NSw3IEBAIHZvaWQgdGVzdENvbnZlcnREb3VibGVUb0Zsb2F0QXJnKGRvdWJsZSAKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5m
bzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogYXNGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIGFyZ3VtZW50KTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0Zsb2F0
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgYXNGbG9hdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0
Pihwcm9jLCB2YWx1ZSksIHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZSkpKTsKIH0KQEAgLTQ2NDgs
NyArNDY1Niw3IEBAIHZvaWQgdGVzdENvbnZlcnREb3VibGVUb0Zsb2F0SW1tKGRvdWJsZSAKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVu
dCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFs
dWUpOwogICAgIFZhbHVlKiBhc0Zsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBE
b3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgYXJndW1lbnQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFzRmxvYXQpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0Zsb2F0KTsK
IAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MpLCBzdGF0
aWNfY2FzdDxmbG9hdD4odmFsdWUpKSk7CiB9CkBAIC00NjYwLDcgKzQ2NjgsNyBAQCB2b2lkIHRl
c3RDb252ZXJ0RG91YmxlVG9GbG9hdE1lbShkb3VibGUgCiAgICAgVmFsdWUqIGFkZHJlc3MgPSBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWRlZERvdWJsZSA9IHJvb3QtPmFw
cGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgRG91YmxlLCBPcmlnaW4oKSwgYWRkcmVz
cyk7CiAgICAgVmFsdWUqIGFzRmxvYXQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERv
dWJsZVRvRmxvYXQsIE9yaWdpbigpLCBsb2FkZWREb3VibGUpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFzRmxvYXQpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0Zsb2F0
KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsICZ2
YWx1ZSksIHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZSkpKTsKIH0KQEAgLTQ2NzMsNyArNDY4MSw3
IEBAIHZvaWQgdGVzdENvbnZlcnRGbG9hdFRvRG91YmxlQXJnKGZsb2F0IHYKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSogZmxvYXRWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1
ZSogYXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUs
IE9yaWdpbigpLCBmbG9hdFZhbHVlKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0RvdWJsZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFzRG91YmxlKTsKIAogICAgIENI
RUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4odmFsdWUpKSwgc3RhdGljX2Nhc3Q8ZG91YmxlPih2YWx1ZSkpKTsKIH0KQEAgLTQ2
ODQsNyArNDY5Miw3IEBAIHZvaWQgdGVzdENvbnZlcnRGbG9hdFRvRG91YmxlSW1tKGZsb2F0IHYK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1
bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCB2
YWx1ZSk7CiAgICAgVmFsdWUqIGFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgYXJndW1lbnQpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFzRG91YmxlKTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNEb3Vi
bGUpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2Mp
LCBzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVlKSkpOwogfQpAQCAtNDY5Niw3ICs0NzA0LDcgQEAg
dm9pZCB0ZXN0Q29udmVydEZsb2F0VG9Eb3VibGVNZW0oZmxvYXQgdgogICAgIFZhbHVlKiBhZGRy
ZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkZWRGbG9hdCA9IHJv
b3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgRmxvYXQsIE9yaWdpbigpLCBh
ZGRyZXNzKTsKICAgICBWYWx1ZSogYXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBsb2FkZWRGbG9hdCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNEb3VibGUpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBh
c0RvdWJsZSk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4o
cHJvYywgJnZhbHVlKSwgc3RhdGljX2Nhc3Q8ZG91YmxlPih2YWx1ZSkpKTsKIH0KQEAgLTQ3MDks
NyArNDcxNyw3IEBAIHZvaWQgdGVzdENvbnZlcnREb3VibGVUb0Zsb2F0VG9Eb3VibGVUb0YKICAg
ICBWYWx1ZSogYXNGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9G
bG9hdCwgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBWYWx1ZSogYXNEb3VibGUgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBhc0Zsb2F0KTsK
ICAgICBWYWx1ZSogYXNGbG9hdEFnYWluID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBE
b3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgYXNEb3VibGUpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFzRmxvYXRBZ2Fpbik7CisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFzRmxv
YXRBZ2Fpbik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihw
cm9jLCB2YWx1ZSksIHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZSkpKTsKIH0KQEAgLTQ3MjUsNyAr
NDczMyw3IEBAIHZvaWQgdGVzdExvYWRGbG9hdENvbnZlcnREb3VibGVDb252ZXJ0RmwKICAgICBW
YWx1ZSogYXNGbG9hdEFnYWluID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVU
b0Zsb2F0LCBPcmlnaW4oKSwgYXNEb3VibGUpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlW
YWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCBhc0Zsb2F0QWdhaW4sIGRzdCk7CiAKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgZmxvYXQgaW5w
dXQgPSB2YWx1ZTsKICAgICBmbG9hdCBvdXRwdXQgPSAwLjsKQEAgLTQ3NDAsNyArNDc0OCw3IEBA
IHZvaWQgdGVzdEZyb3VuZEFyZyhkb3VibGUgdmFsdWUpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0g
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZv
Ojphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiBhc0Zsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZhbHVl
KiBhc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwg
T3JpZ2luKCksIGFzRmxvYXQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIGFzRG91YmxlKTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNEb3VibGUpOwogCiAgICAgQ0hFQ0so
aXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIHZhbHVlKSwgc3RhdGljX2Nh
c3Q8ZG91YmxlPihzdGF0aWNfY2FzdDxmbG9hdD4odmFsdWUpKSkpOwogfQpAQCAtNDc1Myw3ICs0
NzYxLDcgQEAgdm9pZCB0ZXN0RnJvdW5kTWVtKGRvdWJsZSB2YWx1ZSkKICAgICBNZW1vcnlWYWx1
ZSogbG9hZGVkRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2Fk
LCBEb3VibGUsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogYXNGbG9hdCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIGxvYWRlZERv
dWJsZSk7CiAgICAgVmFsdWUqIGFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgYXNGbG9hdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNEb3VibGUpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0RvdWJs
ZSk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywg
JnZhbHVlKSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihzdGF0aWNfY2FzdDxmbG9hdD4odmFsdWUpKSkp
OwogfQpAQCAtNDc2NCw3ICs0NzcyLDcgQEAgdm9pZCB0ZXN0SVRvRDY0QXJnKCkKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBzcmMgPSByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCk7CiAgICAgVmFsdWUqIHNyY0FzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgc3JjKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0RvdWJsZSk7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRG91Ymxl
KTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgZm9yIChhdXRvIHRlc3RW
YWx1ZSA6IGludDY0T3BlcmFuZHMoKSkKQEAgLTQ3NzcsNyArNDc4NSw3IEBAIHZvaWQgdGVzdElU
b0Y2NEFyZygpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBW
YWx1ZSogc3JjID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFZhbHVlKiBzcmNBc0Zsb2F0ID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9GLCBPcmlnaW4oKSwgc3JjKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zs
b2F0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgc3JjQXNGbG9hdCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAg
IGZvciAoYXV0byB0ZXN0VmFsdWUgOiBpbnQ2NE9wZXJhbmRzKCkpCkBAIC00NzkxLDcgKzQ3OTks
NyBAQCB2b2lkIHRlc3RJVG9EMzJBcmcoKQogICAgIFZhbHVlKiBzcmMgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjAp
KTsKICAgICBWYWx1ZSogc3JjQXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IElUb0QsIE9yaWdpbigpLCBzcmMpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRG91YmxlKTsKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNEb3VibGUpOwogCiAg
ICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBmb3IgKGF1dG8gdGVzdFZhbHVlIDog
aW50MzJPcGVyYW5kcygpKQpAQCAtNDgwNSw3ICs0ODEzLDcgQEAgdm9pZCB0ZXN0SVRvRjMyQXJn
KCkKICAgICBWYWx1ZSogc3JjID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgVmFsdWUqIHNyY0FzRmxv
YXQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0YsIE9yaWdpbigpLCBzcmMpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHNyY0FzRmxvYXQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0KTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJv
Yyk7CiAgICAgZm9yIChhdXRvIHRlc3RWYWx1ZSA6IGludDMyT3BlcmFuZHMoKSkKQEAgLTQ4MTks
NyArNDgyNyw3IEBAIHZvaWQgdGVzdElUb0Q2NE1lbSgpCiAgICAgVmFsdWUqIGFkZHJlc3MgPSBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWRlZFNyYyA9IHJvb3QtPmFwcGVu
ZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50NjQsIE9yaWdpbigpLCBhZGRyZXNzKTsK
ICAgICBWYWx1ZSogc3JjQXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElU
b0QsIE9yaWdpbigpLCBsb2FkZWRTcmMpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRG91YmxlKTsKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNEb3VibGUpOwog
CiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBpbnQ2NF90IGluTWVtb3J5VmFs
dWU7CkBAIC00ODM3LDcgKzQ4NDUsNyBAQCB2b2lkIHRlc3RJVG9GNjRNZW0oKQogICAgIFZhbHVl
KiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkZWRTcmMg
PSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDY0LCBPcmlnaW4o
KSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIHNyY0FzRmxvYXQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIElUb0YsIE9yaWdpbigpLCBsb2FkZWRTcmMpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXQpOworICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNB
c0Zsb2F0KTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgaW50NjRfdCBp
bk1lbW9yeVZhbHVlOwpAQCAtNDg1NSw3ICs0ODYzLDcgQEAgdm9pZCB0ZXN0SVRvRDMyTWVtKCkK
ICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBNZW1vcnlWYWx1ZSog
bG9hZGVkU3JjID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQz
MiwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBzcmNBc0RvdWJsZSA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGxvYWRlZFNyYyk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNE
b3VibGUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBzcmNBc0RvdWJsZSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwog
ICAgIGludDMyX3QgaW5NZW1vcnlWYWx1ZTsKQEAgLTQ4NzMsNyArNDg4MSw3IEBAIHZvaWQgdGVz
dElUb0YzMk1lbSgpCiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAg
TWVtb3J5VmFsdWUqIGxvYWRlZFNyYyA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJv
YywgTG9hZCwgSW50MzIsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogc3JjQXNGbG9h
dCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRiwgT3JpZ2luKCksIGxvYWRlZFNy
Yyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgc3JjQXNGbG9hdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGls
ZShwcm9jKTsKICAgICBpbnQzMl90IGluTWVtb3J5VmFsdWU7CkBAIC00ODkwLDcgKzQ4OTgsNyBA
QCB2b2lkIHRlc3RJVG9ENjRJbW0oaW50NjRfdCB2YWx1ZSkKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBzcmMgPSByb290LT5hcHBlbmROZXc8Q29u
c3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpOwogICAgIFZhbHVlKiBzcmNBc0Zsb2F0
aW5nUG9pbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBz
cmMpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHNyY0FzRmxvYXRpbmdQb2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXRpbmdQb2ludCk7CiAgICAgQ0hF
Q0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MpLCBzdGF0aWNfY2FzdDxk
b3VibGU+KHZhbHVlKSkpOwogfQogCkBAIC00OTAwLDcgKzQ5MDgsNyBAQCB2b2lkIHRlc3RJVG9G
NjRJbW0oaW50NjRfdCB2YWx1ZSkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwogICAgIFZhbHVlKiBzcmMgPSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgdmFsdWUpOwogICAgIFZhbHVlKiBzcmNBc0Zsb2F0aW5nUG9pbnQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0YsIE9yaWdpbigpLCBzcmMpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxv
YXRpbmdQb2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHNyY0FzRmxvYXRpbmdQb2ludCk7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwo
Y29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYyksIHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZSkpKTsK
IH0KIApAQCAtNDkxMCw3ICs0OTE4LDcgQEAgdm9pZCB0ZXN0SVRvRDMySW1tKGludDMyX3QgdmFs
dWUpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSog
c3JjID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVl
KTsKICAgICBWYWx1ZSogc3JjQXNGbG9hdGluZ1BvaW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgc3JjKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0aW5nUG9pbnQpOworICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNB
c0Zsb2F0aW5nUG9pbnQpOwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91
YmxlPihwcm9jKSwgc3RhdGljX2Nhc3Q8ZG91YmxlPih2YWx1ZSkpKTsKIH0KIApAQCAtNDkyMCw3
ICs0OTI4LDcgQEAgdm9pZCB0ZXN0SVRvRjMySW1tKGludDMyX3QgdmFsdWUpCiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogc3JjID0gcm9vdC0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKTsKICAgICBWYWx1ZSog
c3JjQXNGbG9hdGluZ1BvaW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9GLCBP
cmlnaW4oKSwgc3JjKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0aW5nUG9pbnQpOworICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0aW5nUG9pbnQp
OwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MpLCBzdGF0
aWNfY2FzdDxmbG9hdD4odmFsdWUpKSk7CiB9CiAKQEAgLTQ5MzEsNyArNDkzOSw3IEBAIHZvaWQg
dGVzdElUb0RSZWR1Y2VkVG9JVG9GNjRBcmcoKQogICAgIFZhbHVlKiBzcmMgPSByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCk7CiAgICAgVmFsdWUqIHNyY0FzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBJVG9ELCBPcmlnaW4oKSwgc3JjKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBzcmNBc0Rv
dWJsZSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgZmxvYXRSZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CiAKICAgICBhdXRvIGNvZGUgPSBj
b21waWxlKHByb2MpOwogICAgIGZvciAoYXV0byB0ZXN0VmFsdWUgOiBpbnQ2NE9wZXJhbmRzKCkp
CkBAIC00OTQ2LDcgKzQ5NTQsNyBAQCB2b2lkIHRlc3RJVG9EUmVkdWNlZFRvSVRvRjMyQXJnKCkK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSogc3JjQXNEb3VibGUgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBzcmMpOwogICAgIFZhbHVl
KiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9h
dCwgT3JpZ2luKCksIHNyY0FzRG91YmxlKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsK
IAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgZm9yIChhdXRvIHRlc3RWYWx1
ZSA6IGludDMyT3BlcmFuZHMoKSkKQEAgLTQ5NjQsNyArNDk3Miw3IEBAIHZvaWQgdGVzdFN0b3Jl
MzIoaW50IHZhbHVlKQogICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRy
VmFsdWU+KHByb2MsIE9yaWdpbigpLCAmc2xvdCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDApKTsKIAogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludD4ocHJvYywgdmFs
dWUpKTsKQEAgLTQ5ODAsNyArNDk4OCw3IEBAIHZvaWQgdGVzdFN0b3JlQ29uc3RhbnQoaW50IHZh
bHVlKQogICAgICAgICBwcm9jLCBTdG9yZSwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJnNsb3QpKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBDSEVDSyghY29tcGlsZUFu
ZFJ1bjxpbnQ+KHByb2MpKTsKQEAgLTUwMDAsNyArNTAwOCw3IEBAIHZvaWQgdGVzdFN0b3JlQ29u
c3RhbnRQdHIoaW50cHRyX3QgdmFsdWUKICAgICAgICAgcHJvYywgU3RvcmUsIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZh
bHVlKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAmc2xvdCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAog
ICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludD4ocHJvYykpOwpAQCAtNTAxOCw3ICs1MDI2LDcg
QEAgdm9pZCB0ZXN0U3RvcmU4QXJnKCkKICAgICAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMSk7CiAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBT
dG9yZTgsIE9yaWdpbigpLCB2YWx1ZSwgYWRkcmVzcyk7Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKKyAgICAgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVl
KTsKIAogICAgICAgICBpbnQ4X3Qgc3RvcmFnZSA9IDA7CiAgICAgICAgIENIRUNLKGNvbXBpbGVB
bmRSdW48aW50NjRfdD4ocHJvYywgNDIsICZzdG9yYWdlKSA9PSA0Mik7CkBAIC01MDM5LDcgKzUw
NDcsNyBAQCB2b2lkIHRlc3RTdG9yZThBcmcoKQogICAgICAgICBWYWx1ZSogYWRkcmVzcyA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYmFzZURpc3BsYWNlbWVu
dCwgb2Zmc2V0KTsKIAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2Ms
IFN0b3JlOCwgT3JpZ2luKCksIHZhbHVlLCBhZGRyZXNzKTsKLSAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOworICAgICAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFs
dWUpOwogCiAgICAgICAgIGludDhfdCBzdG9yYWdlID0gMDsKICAgICAgICAgQ0hFQ0soY29tcGls
ZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCA0MiwgJnN0b3JhZ2UsIDEpID09IDQyKTsKQEAgLTUwNTcs
NyArNTA2NSw3IEBAIHZvaWQgdGVzdFN0b3JlOEltbSgpCiAgICAgICAgIFZhbHVlKiBhZGRyZXNz
ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApOwogCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1
ZT4ocHJvYywgU3RvcmU4LCBPcmlnaW4oKSwgdmFsdWUsIGFkZHJlc3MpOwotICAgICAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7
CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCB2YWx1ZSk7CiAKICAgICAgICAgaW50OF90IHN0b3JhZ2UgPSAwOwogICAgICAgICBDSEVD
Syhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsICZzdG9yYWdlKSA9PSA0Mik7CkBAIC01MDc3
LDcgKzUwODUsNyBAQCB2b2lkIHRlc3RTdG9yZThJbW0oKQogICAgICAgICBWYWx1ZSogYWRkcmVz
cyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYmFzZURpc3Bs
YWNlbWVudCwgb2Zmc2V0KTsKIAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+
KHByb2MsIFN0b3JlOCwgT3JpZ2luKCksIHZhbHVlLCBhZGRyZXNzKTsKLSAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOwor
ICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgdmFsdWUpOwogCiAgICAgICAgIGludDhfdCBzdG9yYWdlID0gMDsKICAgICAgICAgQ0hFQ0so
Y29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAmc3RvcmFnZSwgMSkgPT0gNDIpOwpAQCAtNTEy
OSw3ICs1MTM3LDcgQEAgdm9pZCB0ZXN0U3RvcmVQYXJ0aWFsOEJpdFJlZ2lzdGVyT25YODYoKQog
ICAgIC8vIGlmIHdlIHVzZSBYODYgcGFydGlhbCByZWdpc3RlcnMuCiAgICAgcm9vdC0+YXBwZW5k
TmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZTgsIE9yaWdpbigpLCBwYXRjaHBvaW50LCB3aGVy
ZVRvU3RvcmUpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmV0dXJuVmFsdWUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXR1cm5WYWx1ZSk7CiAKICAgICBpbnQ4X3Qg
c3RvcmFnZSA9IDB4ZmY7CiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAw
eDEyMzQ1Njc4YWJjZGVmMTIsICZzdG9yYWdlKSA9PSAweDEyMzQ1Njc4YWJjZGVmMTIpOwpAQCAt
NTE0Nyw3ICs1MTU1LDcgQEAgdm9pZCB0ZXN0U3RvcmUxNkFyZygpCiAgICAgICAgIFZhbHVlKiBh
ZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwogCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1v
cnlWYWx1ZT4ocHJvYywgU3RvcmUxNiwgT3JpZ2luKCksIHZhbHVlLCBhZGRyZXNzKTsKLSAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
dmFsdWUpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgdmFsdWUpOwogCiAgICAgICAgIGludDE2X3Qgc3RvcmFnZSA9IC0xOwogICAg
ICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIDQyLCAmc3RvcmFnZSkgPT0g
NDIpOwpAQCAtNTE2OCw3ICs1MTc2LDcgQEAgdm9pZCB0ZXN0U3RvcmUxNkFyZygpCiAgICAgICAg
IFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdp
bigpLCBiYXNlRGlzcGxhY2VtZW50LCBvZmZzZXQpOwogCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUxNiwgT3JpZ2luKCksIHZhbHVlLCBhZGRyZXNzKTsK
LSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgdmFsdWUpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOwogCiAgICAgICAgIGludDE2X3Qgc3RvcmFnZSA9IC0x
OwogICAgICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIDQyLCAmc3RvcmFn
ZSwgMSkgPT0gNDIpOwpAQCAtNTE4Niw3ICs1MTk0LDcgQEAgdm9pZCB0ZXN0U3RvcmUxNkltbSgp
CiAgICAgICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUxNiwgT3JpZ2luKCksIHZhbHVl
LCBhZGRyZXNzKTsKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOwogCiAgICAgICAgIGludDE2X3Qg
c3RvcmFnZSA9IC0xOwogICAgICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2Ms
ICZzdG9yYWdlKSA9PSA0Mik7CkBAIC01MjA2LDcgKzUyMTQsNyBAQCB2b2lkIHRlc3RTdG9yZTE2
SW1tKCkKICAgICAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEFkZCwgT3JpZ2luKCksIGJhc2VEaXNwbGFjZW1lbnQsIG9mZnNldCk7CiAKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZTE2LCBPcmlnaW4oKSwgdmFs
dWUsIGFkZHJlc3MpOwotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CiAKICAgICAgICAgaW50MTZf
dCBzdG9yYWdlID0gLTE7CiAgICAgICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJv
YywgJnN0b3JhZ2UsIDEpID09IDQyKTsKQEAgLTUyMTgsNyArNTIyNiw3IEBAIHZvaWQgdGVzdFRy
dW5jKGludDY0X3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCkBAIC01MjMxLDcgKzUyMzksNyBAQCB2b2lkIHRl
c3RBZGQxKGludCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCkBAIC01MjQ3LDcgKzUyNTUsNyBAQCB2b2lkIHRlc3RB
ZGQxUHRyKGludHB0cl90IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKQEAgLTUyNjEsNyArNTI2OSw3IEBAIHZvaWQg
dGVzdE5lZzMyKGludDMyX3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBTdWIsIE9yaWdpbigpLApAQCAtNTI3Nyw3ICs1Mjg1LDcgQEAgdm9p
ZCB0ZXN0TmVnUHRyKGludHB0cl90IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgU3ViLCBPcmlnaW4oKSwKQEAgLTUzMDIsNyArNTMxMCw3IEBA
IHZvaWQgdGVzdFN0b3JlQWRkTG9hZDMyKGludCBhbW91bnQpCiAgICAgICAgICAgICAgICAgcHJv
YywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSkpLAog
ICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAwKSk7CiAKQEAgLTUzMjMsNyArNTMzMSw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9hZElt
bTMyKGludCBhbW91bnQpCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+
KHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwgc2xvdFB0ciksCiAgICAgICAgICAgICByb290
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYW1vdW50KSksCiAgICAg
ICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IDApKTsKIApAQCAtNTM0Niw3ICs1MzU0LDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkOChpbnQg
YW1vdW50LCBCMzo6TwogICAgICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAg
ICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01MzY3LDcg
KzUzNzUsNyBAQCB2b2lkIHRlc3RTdG9yZUFkZExvYWRJbW04KGludCBhbW91bnQsIEIzCiAgICAg
ICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIGxvYWRPcGNvZGUsIE9y
aWdpbigpLCBzbG90UHRyKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBhbW91bnQpKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01MzkwLDcgKzUz
OTgsNyBAQCB2b2lkIHRlc3RTdG9yZUFkZExvYWQxNihpbnQgYW1vdW50LCBCMzo6CiAgICAgICAg
ICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwKSkpLAogICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTU0MTEsNyArNTQxOSw3IEBAIHZvaWQgdGVzdFN0
b3JlQWRkTG9hZEltbTE2KGludCBhbW91bnQsIEIKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxNZW1vcnlWYWx1ZT4ocHJvYywgbG9hZE9wY29kZSwgT3JpZ2luKCksIHNsb3RQdHIpLAogICAg
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFt
b3VudCkpLAogICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTU0MzIsNyArNTQ0MCw3IEBAIHZvaWQgdGVzdFN0b3Jl
QWRkTG9hZDY0KGludCBhbW91bnQpCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5
VmFsdWU+KHByb2MsIExvYWQsIEludDY0LCBPcmlnaW4oKSwgc2xvdFB0ciksCiAgICAgICAgICAg
ICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTU0NTMsNyArNTQ2MSw3IEBAIHZv
aWQgdGVzdFN0b3JlQWRkTG9hZEltbTY0KGludDY0X3QgYW1vdW4KICAgICAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50NjQsIE9yaWdpbigpLCBzbG90
UHRyKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9y
aWdpbigpLCBhbW91bnQpKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01NDg1LDcgKzU0OTMsNyBAQCB2b2lk
IHRlc3RTdG9yZUFkZExvYWQzMkluZGV4KGludCBhbW91bnQpCiAgICAgICAgICAgICAgICAgcHJv
YywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSkpLAog
ICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAwKSk7CiAKQEAgLTU1MTUsNyArNTUyMyw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9hZElt
bTMySW5kZXgoaW50IGFtb3UKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1
ZT4ocHJvYywgTG9hZCwgSW50MzIsIE9yaWdpbigpLCBzbG90UHRyKSwKICAgICAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhbW91bnQpKSwKICAg
ICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgMCkpOwogCkBAIC01NTQ3LDcgKzU1NTUsNyBAQCB2b2lkIHRlc3RTdG9yZUFkZExvYWQ4SW5k
ZXgoaW50IGFtb3VudCwgCiAgICAgICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAog
ICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSkpLAogICAgICAgICBzbG90UHRyKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTU1Nzcs
NyArNTU4NSw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9hZEltbThJbmRleChpbnQgYW1vdW4KICAg
ICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgbG9hZE9wY29kZSwg
T3JpZ2luKCksIHNsb3RQdHIpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIGFtb3VudCkpLAogICAgICAgICBzbG90UHRyKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTU2MDksNyAr
NTYxNyw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9hZDE2SW5kZXgoaW50IGFtb3VudCwKICAgICAg
ICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjApKSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNTYzOSw3ICs1NjQ3LDcgQEAgdm9pZCB0ZXN0
U3RvcmVBZGRMb2FkSW1tMTZJbmRleChpbnQgYW1vdQogICAgICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PE1lbW9yeVZhbHVlPihwcm9jLCBsb2FkT3Bjb2RlLCBPcmlnaW4oKSwgc2xvdFB0ciksCiAg
ICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
YW1vdW50KSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNTY2OSw3ICs1Njc3LDcgQEAgdm9pZCB0ZXN0U3Rv
cmVBZGRMb2FkNjRJbmRleChpbnQgYW1vdW50KQogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQ2NCwgT3JpZ2luKCksIHNsb3RQdHIpLAogICAg
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01Njk5LDcgKzU3MDcs
NyBAQCB2b2lkIHRlc3RTdG9yZUFkZExvYWRJbW02NEluZGV4KGludDY0X3QgCiAgICAgICAgICAg
ICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDY0LCBPcmlnaW4o
KSwgc2xvdFB0ciksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgYW1vdW50KSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNTcyMyw3ICs1NzMxLDcg
QEAgdm9pZCB0ZXN0U3RvcmVTdWJMb2FkKGludCBhbW91bnQpCiAgICAgICAgICAgICAgICAgcHJv
YywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSkpLAog
ICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAwKSk7CiAKQEAgLTU3NTAsNyArNTc1OCw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9hZElu
dGVyZmVyZW5jZShpbnQgYW0KICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCiAgICAg
ICAgICAgICBsb2FkLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgYW1vdW50KSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNTc3NCw3ICs1NzgyLDcgQEAgdm9pZCB0ZXN0
U3RvcmVBZGRBbmRMb2FkKGludCBhbW91bnQsIGludAogICAgICAgICAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhbW91bnQpKSwKICAgICAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBtYXNrKSks
CiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIDApKTsKIApAQCAtNTc5OSw3ICs1ODA3LDcgQEAgdm9pZCB0ZXN0U3RvcmVOZWdMb2Fk
MzIoaW50MzJfdCB2YWx1ZSkKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1
ZT4ocHJvYywgTG9hZCwgSW50MzIsIE9yaWdpbigpLCBzbG90UHRyKSksCiAgICAgICAgIHNsb3RQ
dHIpOwogICAgIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAg
IENIRUNLKCFjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MpKTsKQEAgLTU4MjMsNyArNTgzMSw3
IEBAIHZvaWQgdGVzdFN0b3JlTmVnTG9hZFB0cihpbnRwdHJfdCB2YWx1ZSkKICAgICAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwg
T3JpZ2luKCksIHNsb3RQdHIpKSwKICAgICAgICAgc2xvdFB0cik7CiAgICAgCi0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48
aW50MzJfdD4ocHJvYykpOwpAQCAtNTgzNCw3ICs1ODQyLDcgQEAgdm9pZCB0ZXN0QWRkMVVuY29t
bXV0ZWQoaW50IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKQEAgLTU4NTIsNyArNTg2MCw3IEBAIHZvaWQgdGVzdExv
YWRPZmZzZXQoKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAg
aW50IGFycmF5W10gPSB7IDEsIDIgfTsKICAgICBDb25zdFB0clZhbHVlKiBhcnJheVB0ciA9IHJv
b3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYXJyYXkpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCkBAIC01
ODY4LDcgKzU4NzYsNyBAQCB2b2lkIHRlc3RMb2FkT2Zmc2V0Tm90Q29uc3RhbnQoKQogICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgaW50IGFycmF5W10gPSB7IDEs
IDIgfTsKICAgICBWYWx1ZSogYXJyYXlQdHIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKQEAgLTU4ODQsNyAr
NTg5Miw3IEBAIHZvaWQgdGVzdExvYWRPZmZzZXRVc2luZ0FkZCgpCiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBpbnQgYXJyYXlbXSA9IHsgMSwgMiB9OwogICAg
IENvbnN0UHRyVmFsdWUqIGFycmF5UHRyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBhcnJheSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKQEAgLTU5MjUsNyArNTkzMyw3IEBAIHZvaWQgdGVzdExv
YWRPZmZzZXRVc2luZ0FkZEludGVyZmVyZW5jZSgKICAgICAgICAgcHJvYywgU3RvcmUsIE9yaWdp
bigpLCB0aGVOdW1iZXJPZlRoZUJlYXN0LCBvdGhlckFycmF5UHRyLCAwKTsKICAgICByb290LT5h
cHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICBwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHRo
ZU51bWJlck9mVGhlQmVhc3QsIG90aGVyQXJyYXlQdHIsIHNpemVvZihpbnQpKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLCBsZWZ0LCByaWdo
dCkpOwpAQCAtNTk0MSw3ICs1OTQ5LDcgQEAgdm9pZCB0ZXN0TG9hZE9mZnNldFVzaW5nQWRkTm90
Q29uc3RhbnQoKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAg
aW50IGFycmF5W10gPSB7IDEsIDIgfTsKICAgICBWYWx1ZSogYXJyYXlQdHIgPSByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmln
aW4oKSwKQEAgLTU5NzcsNyArNTk4NSw3IEBAIHZvaWQgdGVzdExvYWRBZGRyU2hpZnQodW5zaWdu
ZWQgc2hpZnQpCiAKICAgICAqc2xvdCA9IDg2NzUzMDk7CiAgICAgCi0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVt
b3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZCwgSW50MzIsIE9yaWdpbigpLApAQCAt
NTk5Myw3ICs2MDAxLDcgQEAgdm9pZCB0ZXN0RnJhbWVQb2ludGVyKCkKIHsKICAgICBQcm9jZWR1
cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBGcmFtZVBvaW50ZXIsIE9yaWdpbigpKSk7CiAKQEAgLTYwMTYs
NyArNjAyNCw3IEBAIHZvaWQgdGVzdE92ZXJyaWRlRnJhbWVQb2ludGVyKCkKICAgICAgICAgVmFs
dWUqIGZwID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGcmFtZVBvaW50ZXIsIE9yaWdp
bigpKTsKICAgICAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgU3ViLCBPcmlnaW4oKSwgZnAsIG9mZnNldCk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICAgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dCk7CiAgICAgICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgMSkpOwogICAg
IH0KICAgICB7CkBAIC02MDMyLDcgKzYwNDAsNyBAQCB2b2lkIHRlc3RPdmVycmlkZUZyYW1lUG9p
bnRlcigpCiAgICAgICAgIFZhbHVlKiBvZmZzZXRBcmcgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEFkZCwgT3JpZ2luKCksIG9mZnNldCwgYXJnKTsKICAgICAgICAgVmFsdWUqIHJlc3Vs
dCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgb2Zmc2V0QXJn
LCBvZmZzZXRGUCk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgICAgIENIRUNL
KGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgMSwgMikpOwogICAgIH0KIH0KQEAgLTYwNDEs
NyArNjA0OSw3IEBAIHZvaWQgdGVzdFN0YWNrU2xvdCgpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxT
bG90QmFzZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgcHJvYy5hZGRTdGFja1Nsb3QoMSkpKTsKIApA
QCAtNjA1NCw3ICs2MDYyLDcgQEAgdm9pZCB0ZXN0TG9hZEZyb21GcmFtZVBvaW50ZXIoKQogewog
ICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZCwg
cG9pbnRlclR5cGUoKSwgT3JpZ2luKCksCkBAIC02MDgxLDcgKzYwODksNyBAQCB2b2lkIHRlc3RT
dG9yZUxvYWRTdGFja1Nsb3QoaW50IHZhbHVlKQogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjAp
KSwKICAgICAgICAgc3RhY2spOwogICAgIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9j
LCBMb2FkLCBJbnQzMiwgT3JpZ2luKCksIHN0YWNrKSk7CiAKQEAgLTYxMTYsNyArNjEyNCw3IEBA
IHZvaWQgdGVzdExvYWQoQjM6Ok9wY29kZSBvcGNvZGUsIElucHV0VHkKICAgICAgICAgUHJvY2Vk
dXJlIHByb2M7CiAgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAg
ICAgICAgIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAg
ICAgICAgICAgICAgcHJvYywgb3Bjb2RlLCB0eXBlLCBPcmlnaW4oKSwKQEAgLTYxMzAsNyArNjEz
OCw3IEBAIHZvaWQgdGVzdExvYWQoQjM6Ok9wY29kZSBvcGNvZGUsIElucHV0VHkKICAgICAgICAg
UHJvY2VkdXJlIHByb2M7CiAgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7CiAgICAgICAgIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4o
CiAgICAgICAgICAgICAgICAgcHJvYywgb3Bjb2RlLCB0eXBlLCBPcmlnaW4oKSwKQEAgLTYxNDQs
NyArNjE1Miw3IEBAIHZvaWQgdGVzdExvYWQoQjM6Ok9wY29kZSBvcGNvZGUsIElucHV0VHkKICAg
ICAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7CiAgICAgICAgIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlW
YWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgb3Bjb2RlLCB0eXBlLCBPcmlnaW4oKSwKQEAg
LTYxNTksNyArNjE2Nyw3IEBAIHZvaWQgdGVzdExvYWQoQjM6Ok9wY29kZSBvcGNvZGUsIElucHV0
VHkKICAgICAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFs
dWU+KAogICAgICAgICAgICAgICAgIHByb2MsIG9wY29kZSwgdHlwZSwgT3JpZ2luKCksCkBAIC02
MTc5LDcgKzYxODcsNyBAQCB2b2lkIHRlc3RMb2FkKEIzOjpPcGNvZGUgb3Bjb2RlLCBJbnB1dFR5
CiAgICAgICAgIFByb2NlZHVyZSBwcm9jOwogICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwogCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVl
PigKICAgICAgICAgICAgICAgICBwcm9jLCBvcGNvZGUsIHR5cGUsIE9yaWdpbigpLApAQCAtNjIx
OSw3ICs2MjI3LDcgQEAgdm9pZCB0ZXN0U3RvcmVGbG9hdChkb3VibGUgaW5wdXQpCiAgICAgICAg
IFZhbHVlKiBkZXN0aW5hdGlvbkFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCBhcmd1bWVu
dEFzRmxvYXQsIGRlc3RpbmF0aW9uQWRkcmVzcyk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICAgICAgZmxvYXQgb3V0cHV0ID0g
MC47CiAgICAgICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIGlucHV0LCAm
b3V0cHV0KSk7CkBAIC02MjQzLDcgKzYyNTEsNyBAQCB2b2lkIHRlc3RTdG9yZUZsb2F0KGRvdWJs
ZSBpbnB1dCkKIAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0
b3JlLCBPcmlnaW4oKSwgYXJndW1lbnRBc0Zsb2F0LCBkZXN0aW5hdGlvbkFkZHJlc3MpOwogCi0g
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7Cisg
ICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAg
ICAgICAgIGZsb2F0IG91dHB1dCA9IDAuOwogICAgICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxp
bnQ2NF90Pihwcm9jLCBpbnB1dCwgJm91dHB1dCAtIDEsIDEpKTsKQEAgLTYyNjMsNyArNjI3MSw3
IEBAIHZvaWQgdGVzdFN0b3JlRG91YmxlQ29uc3RhbnRBc0Zsb2F0KGRvdWIKIAogICAgIHJvb3Qt
PmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCB2YWx1ZUFzRmxv
YXQsIGRlc3RpbmF0aW9uQWRkcmVzcyk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgMCkpOwogCiAgICAgZmxvYXQgb3V0cHV0ID0gMC47CiAgICAgQ0hFQ0soIWNv
bXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgaW5wdXQsICZvdXRwdXQpKTsKQEAgLTYyODksNyAr
NjI5Nyw3IEBAIHZvaWQgdGVzdFNwaWxsR1AoKQogICAgIGZvciAoVmFsdWUqIHZhbHVlIDogc291
cmNlcykKICAgICAgICAgdG90YWwgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwg
T3JpZ2luKCksIHRvdGFsLCB2YWx1ZSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB0b3RhbCk7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHRvdGFsKTsKICAgICBjb21waWxl
QW5kUnVuPGludD4ocHJvYywgMSwgMik7CiB9CiAKQEAgLTYzMTIsNyArNjMyMCw3IEBAIHZvaWQg
dGVzdFNwaWxsRlAoKQogICAgIGZvciAoVmFsdWUqIHZhbHVlIDogc291cmNlcykKICAgICAgICAg
dG90YWwgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIHRvdGFs
LCB2YWx1ZSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCB0b3RhbCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHRvdGFsKTsKICAgICBjb21waWxlQW5kUnVuPGRvdWJsZT4o
cHJvYywgMS4xLCAyLjUpOwogfQogCkBAIC02MzI4LDcgKzYzMzYsNyBAQCB2b2lkIHRlc3RJbnQz
MlRvRG91YmxlUGFydGlhbFJlZ2lzdGVyU3RhCiAgICAgVmFsdWUqIGNvdW50ZXIgPSByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCk7CiAgICAgVXBzaWxvblZhbHVlKiBvcmlnaW5hbFRvdGFsID0gcm9vdC0+YXBwZW5k
TmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHRvdGFsKTsKICAgICBVcHNpbG9uVmFs
dWUqIG9yaWdpbmFsQ291bnRlciA9IHJvb3QtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBjb3VudGVyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3ApKTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9j
ayhsb29wKSk7CiAKICAgICAvLyBMb29wLgogICAgIFZhbHVlKiBsb29wQ291bnRlciA9IGxvb3At
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBJbnQ2NCwgT3JpZ2luKCkpOwpAQCAtNjM0NSwx
MyArNjM1MywxMyBAQCB2b2lkIHRlc3RJbnQzMlRvRG91YmxlUGFydGlhbFJlZ2lzdGVyU3RhCiAg
ICAgVmFsdWUqIGRlY0NvdW50ZXIgPSBsb29wLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1Yiwg
T3JpZ2luKCksIGxvb3BDb3VudGVyLCBsb29wLT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgMSkpOwogICAgIFVwc2lsb25WYWx1ZSogZGVjQ291bnRlclVwc2lsb24gPSBs
b29wLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgZGVjQ291bnRlcik7
CiAgICAgZGVjQ291bnRlclVwc2lsb24tPnNldFBoaShsb29wQ291bnRlcik7Ci0gICAgbG9vcC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgbG9vcC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICBkZWNDb3VudGVyLAog
ICAgICAgICBGcmVxdWVudGVkQmxvY2sobG9vcCksIEZyZXF1ZW50ZWRCbG9jayhkb25lKSk7CiAK
ICAgICAvLyBUYWlsLgotICAgIGRvbmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHVwZGF0ZWRUb3RhbCk7CisgICAgZG9uZS0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHVwZGF0ZWRUb3RhbCk7CiAgICAgQ0hFQ0so
aXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIDEwMDAwMCksIDUwMDAwNTAw
MDAuKSk7CiB9CiAKQEAgLTYzNzEsNyArNjM3OSw3IEBAIHZvaWQgdGVzdEludDMyVG9Eb3VibGVQ
YXJ0aWFsUmVnaXN0ZXJXaXQKICAgICBWYWx1ZSogZm9yUGFkZGluZ0lucHV0QWRkcmVzcyA9IHJv
b3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJmZvclBhZGRpbmdJ
bnB1dCk7CiAgICAgdWludDY0X3QgZm9yUGFkZGluZ091dHB1dDsKICAgICBWYWx1ZSogZm9yUGFk
ZGluZ091dHB1dEFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksICZmb3JQYWRkaW5nT3V0cHV0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3ApKTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1
ZW50ZWRCbG9jayhsb29wKSk7CiAKICAgICAvLyBMb29wLgogICAgIFZhbHVlKiBsb29wQ291bnRl
ciA9IGxvb3AtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBJbnQ2NCwgT3JpZ2luKCkpOwpA
QCAtNjQwNSwxMyArNjQxMywxMyBAQCB2b2lkIHRlc3RJbnQzMlRvRG91YmxlUGFydGlhbFJlZ2lz
dGVyV2l0CiAgICAgVmFsdWUqIGRlY0NvdW50ZXIgPSBsb29wLT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIFN1YiwgT3JpZ2luKCksIGxvb3BDb3VudGVyLCBsb29wLT5hcHBlbmROZXc8Q29uc3Q2NFZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogICAgIFVwc2lsb25WYWx1ZSogZGVjQ291bnRlclVw
c2lsb24gPSBsb29wLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgZGVj
Q291bnRlcik7CiAgICAgZGVjQ291bnRlclVwc2lsb24tPnNldFBoaShsb29wQ291bnRlcik7Ci0g
ICAgbG9vcC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgbG9vcC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICBkZWND
b3VudGVyLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sobG9vcCksIEZyZXF1ZW50ZWRCbG9jayhk
b25lKSk7CiAKICAgICAvLyBUYWlsLgotICAgIGRvbmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHVwZGF0ZWRUb3RhbCk7CisgICAgZG9uZS0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHVwZGF0ZWRUb3RhbCk7CiAg
ICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIDEwMDAwMCks
IDUwMDAwNTAwMDAuKSk7CiB9CiAKQEAgLTY0MjIsMTggKzY0MzAsMTggQEAgdm9pZCB0ZXN0QnJh
bmNoKCkKICAgICBCYXNpY0Jsb2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAgICBC
YXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1
ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC02NDQ5LDE2ICs2NDU3LDE2
IEBAIHZvaWQgdGVzdEJyYW5jaFB0cigpCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9j
LmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7
CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIwKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJl
cXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTY0NzUsNyArNjQ4Myw3
IEBAIHZvaWQgdGVzdERpYW1vbmQoKQogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5h
ZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGRvbmUgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCkBA
IC02NDg0LDE2ICs2NDkyLDE2IEBAIHZvaWQgdGVzdERpYW1vbmQoKQogCiAgICAgVXBzaWxvblZh
bHVlKiB0aGVuUmVzdWx0ID0gdGhlbkNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KAogICAg
ICAgICBwcm9jLCBPcmlnaW4oKSwgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAxKSk7Ci0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZG9uZSkpOworICAgIHRoZW5D
YXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50
ZWRCbG9jayhkb25lKSk7CiAKICAgICBVcHNpbG9uVmFsdWUqIGVsc2VSZXN1bHQgPSBlbHNlQ2Fz
ZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4oCiAgICAgICAgIHByb2MsIE9yaWdpbigpLCBlbHNl
Q2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKLSAgICBl
bHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZy
ZXF1ZW50ZWRCbG9jayhkb25lKSk7CisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRvbmUpKTsKIAogICAgIFZh
bHVlKiBwaGkgPSBkb25lLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFBoaSwgSW50MzIsIE9yaWdp
bigpKTsKICAgICB0aGVuUmVzdWx0LT5zZXRQaGkocGhpKTsKICAgICBlbHNlUmVzdWx0LT5zZXRQ
aGkocGhpKTsKLSAgICBkb25lLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBwaGkpOworICAgIGRvbmUtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCBwaGkpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsK
ICAgICBDSEVDSyhpbnZva2U8aW50PigqY29kZSwgNDIpID09IDEpOwpAQCAtNjUwNyw3ICs2NTE1
LDcgQEAgdm9pZCB0ZXN0QnJhbmNoTm90RXF1YWwoKQogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNl
ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRC
bG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTm90RXF1
YWwsIE9yaWdpbigpLApAQCAtNjUxNywxMSArNjUyNSwxMSBAQCB2b2lkIHRlc3RCcmFuY2hOb3RF
cXVhbCgpCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgMCkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVu
dGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNjUzNyw3ICs2NTQ1LDcgQEAg
dm9pZCB0ZXN0QnJhbmNoTm90RXF1YWxDb21tdXRlKCkKICAgICBCYXNpY0Jsb2NrKiB0aGVuQ2Fz
ZSA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRk
QmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIE5vdEVx
dWFsLCBPcmlnaW4oKSwKQEAgLTY1NDcsMTEgKzY1NTUsMTEgQEAgdm9pZCB0ZXN0QnJhbmNoTm90
RXF1YWxDb21tdXRlKCkKICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpKSwKICAgICAg
ICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7
CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2Ut
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxz
ZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCAwKSk7CiAKQEAgLTY1NjcsNyArNjU3NSw3IEBAIHZvaWQgdGVzdEJyYW5jaE5vdEVx
dWFsTm90RXF1YWwoKQogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygp
OwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTm90RXF1YWwsIE9yaWdpbigpLApAQCAt
NjU4MCwxMSArNjU4OCwxMSBAQCB2b2lkIHRlc3RCcmFuY2hOb3RFcXVhbE5vdEVxdWFsKCkKICAg
ICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAw
KSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhl
bHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC02NjAwLDcgKzY2MDgsNyBAQCB2b2lkIHRlc3RC
cmFuY2hFcXVhbCgpCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7
CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBFcXVhbCwgT3JpZ2luKCksCkBAIC02NjEw
LDExICs2NjE4LDExIEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsKCkKICAgICAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSksCiAgICAgICAgIEZy
ZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0g
ICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkp
OwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNl
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgMSkpOwogCkBAIC02NjMwLDcgKzY2MzgsNyBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbEVxdWFs
KCkKICAgICBCYXNpY0Jsb2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNp
Y0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIEVxdWFsLCBPcmlnaW4oKSwKQEAgLTY2NDMsMTEgKzY2NTEs
MTEgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxFcXVhbCgpCiAgICAgICAgICAgICByb290LT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpLAogICAgICAgICBGcmVxdWVu
dGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRo
ZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0
aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAot
ICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDAp
KTsKIApAQCAtNjY2Myw3ICs2NjcxLDcgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxDb21tdXRlKCkK
ICAgICBCYXNpY0Jsb2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Js
b2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIEVxdWFsLCBPcmlnaW4oKSwKQEAgLTY2NzMsMTEgKzY2ODEsMTEg
QEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxDb21tdXRlKCkKICAgICAgICAgICAgICAgICByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCkpKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRl
ZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKQEAgLTY2OTMsNyArNjcwMSw3IEBAIHZv
aWQgdGVzdEJyYW5jaEVxdWFsRXF1YWwxKCkKICAgICBCYXNpY0Jsb2NrKiB0aGVuQ2FzZSA9IHBy
b2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2so
KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEVxdWFsLCBPcmln
aW4oKSwKQEAgLTY3MDYsMTEgKzY3MTQsMTEgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxFcXVhbDEo
KQogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDEpKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJs
b2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMy
VmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKQEAgLTY3MjgsNyArNjczNiw3IEBAIHZvaWQg
dGVzdEJyYW5jaEVxdWFsT3JVbm9yZGVyZWRBcmdzKGRvdWIKIAogICAgIFZhbHVlKiBhcmd1bWVu
dEEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQ
UkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50QiA9IHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRG
UFIxKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBFcXVhbE9yVW5v
cmRlcmVkLCBPcmlnaW4oKSwKQEAgLTY3MzYsMTEgKzY3NDQsMTEgQEAgdm9pZCB0ZXN0QnJhbmNo
RXF1YWxPclVub3JkZXJlZEFyZ3MoZG91YgogICAgICAgICAgICAgYXJndW1lbnRCKSwKICAgICAg
ICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7
CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2Ut
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCA0MikpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVs
c2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgLTEzKSk7CiAKQEAgLTY3NjAsNyArNjc2OCw3IEBAIHZvaWQgdGVzdEJyYW5jaEVx
dWFsT3JVbm9yZGVyZWRBcmdzKGZsb2EKICAgICBWYWx1ZSogYXJndW1lbnRCID0gcm9vdC0+YXBw
ZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBGbG9hdCwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIxKSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBw
cm9jLCBFcXVhbE9yVW5vcmRlcmVkLCBPcmlnaW4oKSwKQEAgLTY3NjgsMTEgKzY3NzYsMTEgQEAg
dm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJlZEFyZ3MoZmxvYQogICAgICAgICAgICAgYXJn
dW1lbnRCKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJs
b2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCA0MikpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTEzKSk7CiAKQEAgLTY3OTcsMTYgKzY4MDUsMTYgQEAg
dm9pZCB0ZXN0QnJhbmNoTm90RXF1YWxBbmRPcmRlcmVkQXJncyhkbwogICAgICAgICBwcm9jLCBF
cXVhbCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAwKSwKICAgICAgICAgZXF1YWxPclVub3JkZXJlZCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICBub3RFcXVhbEFuZE9y
ZGVyZWQsCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9j
ayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgNDIpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xMykpOwogCkBAIC02ODMzLDE2ICs2ODQxLDE2IEBAIHZv
aWQgdGVzdEJyYW5jaE5vdEVxdWFsQW5kT3JkZXJlZEFyZ3MoZmwKICAgICAgICAgcHJvYywgRXF1
YWwsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgMCksCiAgICAgICAgIGVxdWFsT3JVbm9yZGVyZWQpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgbm90RXF1YWxBbmRPcmRl
cmVkLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2so
ZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIDQyKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCAtMTMpKTsKIApAQCAtNjg1OSw3ICs2ODY3LDcgQEAgdm9pZCB0
ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJlZERvdWJsZUFyZwogCiAgICAgVmFsdWUqIGFyZ3VtZW50
QSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBS
SW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogYXJndW1lbnRCID0gcm9vdC0+YXBwZW5k
TmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBFcXVhbE9yVW5vcmRlcmVkLCBPcmlnaW4oKSwKQEAg
LTY4NjcsMTEgKzY4NzUsMTEgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJlZERvdWJs
ZUFyZwogICAgICAgICAgICAgYXJndW1lbnRCKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRo
ZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwogCi0gICAgZWxzZUNh
c2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VD
YXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTEzKSk7CiAKQEAg
LTY4OTAsNyArNjg5OCw3IEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsT3JVbm9yZGVyZWRGbG9hdEFy
Z0kKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSogYXJndW1lbnRCID0gcm9v
dC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogCi0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgRXF1YWxPclVub3JkZXJlZCwgT3Jp
Z2luKCksCkBAIC02ODk4LDExICs2OTA2LDExIEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsT3JVbm9y
ZGVyZWRGbG9hdEFyZ0kKICAgICAgICAgICAgIGFyZ3VtZW50QiksCiAgICAgICAgIEZyZXF1ZW50
ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhl
bkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRo
ZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpKTsKIAot
ICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0x
MykpOwogCkBAIC02OTE5LDcgKzY5MjcsNyBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRl
cmVkRG91YmxlSW1tCiAKICAgICBWYWx1ZSogYXJndW1lbnRBID0gcm9vdC0+YXBwZW5kTmV3PENv
bnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogYXJndW1lbnRC
ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBFcXVhbE9yVW5vcmRlcmVk
LCBPcmlnaW4oKSwKQEAgLTY5MjcsMTEgKzY5MzUsMTEgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxP
clVub3JkZXJlZERvdWJsZUltbQogICAgICAgICAgICAgYXJndW1lbnRCKSwKICAgICAgICAgRnJl
cXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAg
ICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0Mikp
OwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNl
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgLTEzKSk7CiAKQEAgLTY5NDksNyArNjk1Nyw3IEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsT3JV
bm9yZGVyZWRGbG9hdEltbXMKICAgICBWYWx1ZSogYXJndW1lbnRBID0gcm9vdC0+YXBwZW5kTmV3
PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiBhcmd1bWVu
dEIgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7
CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBFcXVhbE9yVW5vcmRl
cmVkLCBPcmlnaW4oKSwKQEAgLTY5NTcsMTEgKzY5NjUsMTEgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1
YWxPclVub3JkZXJlZEZsb2F0SW1tcwogICAgICAgICAgICAgYXJndW1lbnRCKSwKICAgICAgICAg
RnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAK
LSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0
MikpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VD
YXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgLTEzKSk7CiAKQEAgLTY5ODMsNyArNjk5MSw3IEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFs
T3JVbm9yZGVyZWRGbG9hdFdpdGgKICAgICBWYWx1ZSogYXJndW1lbnQxQXNEb3VibGUgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBhcmd1bWVu
dDEpOwogICAgIFZhbHVlKiBhcmd1bWVudDJBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGFyZ3VtZW50Mik7CiAKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBFcXVhbE9yVW5vcmRlcmVkLCBPcmlnaW4o
KSwKQEAgLTY5OTEsMTEgKzY5OTksMTEgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJl
ZEZsb2F0V2l0aAogICAgICAgICAgICAgYXJndW1lbnQyQXNEb3VibGUpLAogICAgICAgICBGcmVx
dWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAg
IHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7
CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2Ut
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCAtMTMpKTsKIApAQCAtNzAxMCwxNiArNzAxOCwxNiBAQCB2b2lkIHRlc3RCcmFuY2hGb2xkKGlu
dCB2YWx1ZSkKICAgICBCYXNpY0Jsb2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAg
ICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKSwKICAgICAgICAgRnJlcXVlbnRl
ZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVu
Q2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhl
bkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKLSAg
ICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7
CiAKQEAgLTcwMzQsMjMgKzcwNDIsMjMgQEAgdm9pZCB0ZXN0RGlhbW9uZEZvbGQoaW50IHZhbHVl
KQogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2lj
QmxvY2sqIGRvbmUgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVu
Q2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCiAgICAgVXBzaWxvblZhbHVlKiB0
aGVuUmVzdWx0ID0gdGhlbkNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KAogICAgICAgICBw
cm9jLCBPcmlnaW4oKSwgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCAxKSk7Ci0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZG9uZSkpOworICAgIHRoZW5DYXNlLT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9j
ayhkb25lKSk7CiAKICAgICBVcHNpbG9uVmFsdWUqIGVsc2VSZXN1bHQgPSBlbHNlQ2FzZS0+YXBw
ZW5kTmV3PFVwc2lsb25WYWx1ZT4oCiAgICAgICAgIHByb2MsIE9yaWdpbigpLCBlbHNlQ2FzZS0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKLSAgICBlbHNlQ2Fz
ZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50
ZWRCbG9jayhkb25lKSk7CisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRvbmUpKTsKIAogICAgIFZhbHVlKiBw
aGkgPSBkb25lLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFBoaSwgSW50MzIsIE9yaWdpbigpKTsK
ICAgICB0aGVuUmVzdWx0LT5zZXRQaGkocGhpKTsKICAgICBlbHNlUmVzdWx0LT5zZXRQaGkocGhp
KTsKLSAgICBkb25lLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBwaGkpOworICAgIGRvbmUtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBwaGkpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MpID09
ICEhdmFsdWUpOwogfQpAQCAtNzA2Miw3ICs3MDcwLDcgQEAgdm9pZCB0ZXN0QnJhbmNoTm90RXF1
YWxGb2xkUHRyKGludHB0cl90IAogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRC
bG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTm90RXF1YWwsIE9yaWdpbigp
LApAQCAtNzA3MCwxMSArNzA3OCwxMSBAQCB2b2lkIHRlc3RCcmFuY2hOb3RFcXVhbEZvbGRQdHIo
aW50cHRyX3QgCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIDApKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJl
cXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTcwODgsNyArNzA5Niw3
IEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsRm9sZFB0cihpbnRwdHJfdCB2YWwKICAgICBCYXNpY0Js
b2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2Fz
ZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNo
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIEVxdWFsLCBPcmlnaW4oKSwKQEAgLTcwOTYsMTEgKzcxMDQsMTEgQEAgdm9pZCB0ZXN0
QnJhbmNoRXF1YWxGb2xkUHRyKGludHB0cl90IHZhbAogICAgICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSksCiAgICAgICAgIEZyZXF1ZW50
ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhl
bkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRo
ZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0g
ICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkp
OwogCkBAIC03MTE0LDE4ICs3MTIyLDE4IEBAIHZvaWQgdGVzdEJyYW5jaExvYWRQdHIoKQogICAg
IEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sq
IGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCksCiAgICAg
ICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNh
c2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNzE0NCwx
OCArNzE1MiwxOCBAQCB2b2lkIHRlc3RCcmFuY2hMb2FkMzIoKQogICAgIEJhc2ljQmxvY2sqIHRo
ZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJv
Yy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgTG9hZCwgSW50MzIsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjAp
KSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVs
c2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
dGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTcxNzQsMTggKzcxODIsMTggQEAgdm9pZCB0ZXN0
QnJhbmNoTG9hZDhTKCkKICAgICBCYXNpY0Jsb2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2so
KTsKICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgIHByb2MsIExvYWQ4UywgT3JpZ2luKCks
CiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2so
dGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VD
YXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNl
Q2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAt
NzIwNCwxOCArNzIxMiwxOCBAQCB2b2lkIHRlc3RCcmFuY2hMb2FkOFooKQogICAgIEJhc2ljQmxv
Y2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNl
ID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gs
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAg
ICAgICAgcHJvYywgTG9hZDhaLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIw
KSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhl
bHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC03MjM0LDE4ICs3MjQyLDE4IEBAIHZvaWQgdGVz
dEJyYW5jaExvYWQxNlMoKQogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9j
aygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZDE2UywgT3JpZ2lu
KCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICBGcmVxdWVudGVkQmxv
Y2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNl
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2Fz
ZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVs
c2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBl
bHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApA
QCAtNzI2NCwxOCArNzI3MiwxOCBAQCB2b2lkIHRlc3RCcmFuY2hMb2FkMTZaKCkKICAgICBCYXNp
Y0Jsb2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBlbHNl
Q2FzZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJh
bmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIExvYWQxNlosIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjApKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJs
b2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMy
VmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTcyOTUsNyArNzMwMyw3IEBAIHZvaWQg
dGVzdEJyYW5jaDhXaXRoTG9hZDhaSW5kZXgoKQogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0g
cHJvYy5hZGRCbG9jaygpOwogCiAgICAgaW50IGxvZ1NjYWxlID0gMTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBYm92ZSwgT3JpZ2luKCksCkBAIC03MzExLDExICs3
MzE5LDExIEBAIHZvaWQgdGVzdEJyYW5jaDhXaXRoTG9hZDhaSW5kZXgoKQogICAgICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDI1MCkpLAogICAg
ICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2Up
KTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2Fz
ZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBl
bHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDApKTsKIApAQCAtNzM1Nyw3ICs3MzY1LDcgQEAgdm9pZCB0ZXN0Q29tcGxleCh1
bnNpZ25lZCBudW1WYXJzLCB1bnNpZwogICAgICAgICAgICAgQmFzaWNCbG9jayogZWxzZUJsb2Nr
ID0gcHJvYy5hZGRCbG9jaygpOwogICAgICAgICAgICAgQmFzaWNCbG9jayogY29udGludWF0aW9u
ID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgICAgICAgICBjdXJyZW50LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICAgICAgICAgIGN1cnJlbnQtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLCB2YXJzW3ByZWRpY2F0ZVZh
ckluZGV4XSwKICAgICAgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkJsb2NrKSwgRnJl
cXVlbnRlZEJsb2NrKGVsc2VCbG9jaykpOwogCkBAIC03MzY2LDE0ICs3Mzc0LDE0IEBAIHZvaWQg
dGVzdENvbXBsZXgodW5zaWduZWQgbnVtVmFycywgdW5zaWcKICAgICAgICAgICAgICAgICB0aGVu
QmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgdmFyc1t0aGVuSW5j
VmFySW5kZXhdLCBvbmUpKTsKICAgICAgICAgICAgIFVwc2lsb25WYWx1ZSogdGhlbkVsc2VSZXN1
bHQgPSB0aGVuQmxvY2stPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KAogICAgICAgICAgICAgICAg
IHByb2MsIE9yaWdpbigpLCB2YXJzW2Vsc2VJbmNWYXJJbmRleF0pOwotICAgICAgICAgICAgdGhl
bkJsb2NrLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJl
cXVlbnRlZEJsb2NrKGNvbnRpbnVhdGlvbikpOworICAgICAgICAgICAgdGhlbkJsb2NrLT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhj
b250aW51YXRpb24pKTsKIAogICAgICAgICAgICAgVXBzaWxvblZhbHVlKiBlbHNlRWxzZVJlc3Vs
dCA9IGVsc2VCbG9jay0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4oCiAgICAgICAgICAgICAgICAg
cHJvYywgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgZWxzZUJsb2NrLT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIHZhcnNbZWxzZUluY1ZhckluZGV4XSwgb25lKSk7CiAg
ICAgICAgICAgICBVcHNpbG9uVmFsdWUqIGVsc2VUaGVuUmVzdWx0ID0gZWxzZUJsb2NrLT5hcHBl
bmROZXc8VXBzaWxvblZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgdmFy
c1t0aGVuSW5jVmFySW5kZXhdKTsKLSAgICAgICAgICAgIGVsc2VCbG9jay0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhjb250aW51
YXRpb24pKTsKKyAgICAgICAgICAgIGVsc2VCbG9jay0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soY29udGludWF0aW9uKSk7CiAKICAg
ICAgICAgICAgIFZhbHVlKiB0aGVuUGhpID0gY29udGludWF0aW9uLT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIFBoaSwgSW50MzIsIE9yaWdpbigpKTsKICAgICAgICAgICAgIHRoZW5UaGVuUmVzdWx0
LT5zZXRQaGkodGhlblBoaSk7CkBAIC03Mzk4LDcgKzc0MDYsNyBAQCB2b2lkIHRlc3RDb21wbGV4
KHVuc2lnbmVkIG51bVZhcnMsIHVuc2lnCiAgICAgICAgICAgICAKICAgICAgICAgICAgIFZhbHVl
KiBzdGFydEluZGV4ID0gdmFyc1soKGkgPj4gMSkgKyAxKSAlIG51bVZhcnNdOwogICAgICAgICAg
ICAgVmFsdWUqIHN0YXJ0U3VtID0gY3VycmVudC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIDApOwotICAgICAgICAgICAgY3VycmVudC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgICAgICAgICBjdXJyZW50LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwgc3RhcnRJbmRleCwKICAgICAgICAg
ICAgICAgICBGcmVxdWVudGVkQmxvY2sobG9vcEVudHJ5KSwgRnJlcXVlbnRlZEJsb2NrKGxvb3BT
a2lwKSk7CiAKQEAgLTc0MDYsNyArNzQxNCw3IEBAIHZvaWQgdGVzdENvbXBsZXgodW5zaWduZWQg
bnVtVmFycywgdW5zaWcKICAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgc3RhcnRJbmRl
eCk7CiAgICAgICAgICAgICBVcHNpbG9uVmFsdWUqIHN0YXJ0U3VtRm9yQm9keSA9IGxvb3BFbnRy
eS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgT3JpZ2lu
KCksIHN0YXJ0U3VtKTsKLSAgICAgICAgICAgIGxvb3BFbnRyeS0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhsb29wQm9keSkpOwor
ICAgICAgICAgICAgbG9vcEVudHJ5LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwg
T3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhsb29wQm9keSkpOwogCiAgICAgICAgICAgICBWYWx1
ZSogYm9keUluZGV4ID0gbG9vcEJvZHktPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBJbnQz
MiwgT3JpZ2luKCkpOwogICAgICAgICAgICAgc3RhcnRJbmRleEZvckJvZHktPnNldFBoaShib2R5
SW5kZXgpOwpAQCAtNzQzMSwxOSArNzQzOSwxOSBAQCB2b2lkIHRlc3RDb21wbGV4KHVuc2lnbmVk
IG51bVZhcnMsIHVuc2lnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb29w
Qm9keS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4oCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksIG51bVZhcnMgLSAxKSkpLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGxvb3BCb2R5LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgMikpKSkpOwotICAgICAgICAgICAgbG9vcEJvZHktPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgICAgICAgICAgbG9vcEJvZHktPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLCBuZXdCb2R5SW5kZXgsCiAg
ICAgICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKGxvb3BSZWVudHJ5KSwgRnJlcXVlbnRlZEJs
b2NrKGxvb3BFeGl0KSk7CiAKICAgICAgICAgICAgIGxvb3BSZWVudHJ5LT5hcHBlbmROZXc8VXBz
aWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgbmV3Qm9keUluZGV4LCBib2R5SW5kZXgpOwogICAg
ICAgICAgICAgbG9vcFJlZW50cnktPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBuZXdCb2R5U3VtLCBib2R5U3VtKTsKLSAgICAgICAgICAgIGxvb3BSZWVudHJ5LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2Nr
KGxvb3BCb2R5KSk7CisgICAgICAgICAgICBsb29wUmVlbnRyeS0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sobG9vcEJvZHkpKTsKIAog
ICAgICAgICAgICAgVXBzaWxvblZhbHVlKiBleGl0U3VtID0gbG9vcEV4aXQtPmFwcGVuZE5ldzxV
cHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCBuZXdCb2R5U3VtKTsKLSAgICAgICAgICAgIGxv
b3BFeGl0LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJl
cXVlbnRlZEJsb2NrKGNvbnRpbnVhdGlvbikpOworICAgICAgICAgICAgbG9vcEV4aXQtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGNv
bnRpbnVhdGlvbikpOwogCiAgICAgICAgICAgICBVcHNpbG9uVmFsdWUqIHNraXBTdW0gPSBsb29w
U2tpcC0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHN0YXJ0U3VtKTsK
LSAgICAgICAgICAgIGxvb3BTa2lwLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1w
LCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGNvbnRpbnVhdGlvbikpOworICAgICAgICAgICAg
bG9vcFNraXAtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJl
cXVlbnRlZEJsb2NrKGNvbnRpbnVhdGlvbikpOwogCiAgICAgICAgICAgICBWYWx1ZSogZmluYWxT
dW0gPSBjb250aW51YXRpb24tPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBJbnQzMiwgT3Jp
Z2luKCkpOwogICAgICAgICAgICAgZXhpdFN1bS0+c2V0UGhpKGZpbmFsU3VtKTsKQEAgLTc0NTQs
NyArNzQ2Miw3IEBAIHZvaWQgdGVzdENvbXBsZXgodW5zaWduZWQgbnVtVmFycywgdW5zaWcKICAg
ICAgICAgfQogICAgIH0KIAotICAgIGN1cnJlbnQtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHZhcnNbMF0pOworICAgIGN1cnJlbnQtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YXJzWzBdKTsKIAogICAgIGNvbXBp
bGUocHJvYyk7CiAKQEAgLTc0ODAsNyArNzQ4OCw3IEBAIHZvaWQgdGVzdFNpbXBsZVBhdGNocG9p
bnQoKQogICAgICAgICAgICAgQ0hFQ0socGFyYW1zWzJdLmlzR1BSKCkpOwogICAgICAgICAgICAg
YWRkMzIoaml0LCBwYXJhbXNbMV0uZ3ByKCksIHBhcmFtc1syXS5ncHIoKSwgcGFyYW1zWzBdLmdw
cigpKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOwogCiAgICAgQ0hF
Q0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIDEsIDIpID09IDMpOwogfQpAQCAtNzUxMSw3ICs3
NTE5LDcgQEAgdm9pZCB0ZXN0U2ltcGxlUGF0Y2hwb2ludFdpdGhvdXRPdXB1dENsbwogICAgICAg
ICB9KTsKIAogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEFkZCwgT3JpZ2luKCksIGFyZzEsIGFyZzIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBD
SEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywgMSwgMikgPT0gMyk7CiB9CkBAIC03NTYwLDcg
Kzc1NjgsNyBAQCB2b2lkIHRlc3RTaW1wbGVQYXRjaHBvaW50V2l0aE91cHV0Q2xvYmJlCiAKICAg
ICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdp
bigpLCBwYXRjaHBvaW50LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFk
ZCwgT3JpZ2luKCksIGFyZzEsIGFyZzIpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hF
Q0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIDEsIDIpID09IDU4KTsKIH0KQEAgLTc1OTEsNyAr
NzU5OSw3IEBAIHZvaWQgdGVzdFNpbXBsZVBhdGNocG9pbnRXaXRob3V0T3VwdXRDbG8KICAgICAg
ICAgfSk7CiAKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBBZGQsIE9yaWdpbigpLCBhcmcxLCBhcmcyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAg
Q0hFQ0soY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIDEuNSwgMi41KSA9PSA0KTsKIH0KQEAg
LTc2MzIsNyArNzY0MCw3IEBAIHZvaWQgdGVzdFNpbXBsZVBhdGNocG9pbnRXaXRoT3VwdXRDbG9i
YmUKIAogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFk
ZCwgT3JpZ2luKCksIHBhdGNocG9pbnQsCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQWRkLCBPcmlnaW4oKSwgYXJnMSwgYXJnMikpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAK
ICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgMS41LCAyLjUpID09IDU5LjYp
OwogfQpAQCAtNzY1Nyw3ICs3NjY1LDcgQEAgdm9pZCB0ZXN0UGF0Y2hwb2ludFdpdGhFYXJseUNs
b2JiZXIoKQogICAgICAgICAgICAgICAgIGFkZDMyKGppdCwgcGFyYW1zWzFdLmdwcigpLCBwYXJh
bXNbMl0uZ3ByKCksIHBhcmFtc1swXS5ncHIoKSk7CiAgICAgICAgICAgICB9KTsKIAotICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBw
YXRjaHBvaW50KTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOwogCiAgICAgICAgIENIRUNLKGNvbXBpbGVBbmRS
dW48aW50Pihwcm9jLCAxLCAyKSA9PSAzKTsKICAgICB9OwpAQCAtNzY5MCw3ICs3Njk4LDcgQEAg
dm9pZCB0ZXN0UGF0Y2hwb2ludENhbGxBcmcoKQogICAgICAgICAgICAgICAgIENDYWxsSGVscGVy
czo6QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgcGFyYW1zWzJdLm9mZnNldEZy
b21GUCgpKSwKICAgICAgICAgICAgICAgICBwYXJhbXNbMF0uZ3ByKCkpOwogICAgICAgICB9KTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBwYXRjaHBvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGlu
dD4ocHJvYywgMSwgMikgPT0gMyk7CiB9CkBAIC03NzEzLDcgKzc3MjEsNyBAQCB2b2lkIHRlc3RQ
YXRjaHBvaW50Rml4ZWRSZWdpc3RlcigpCiAgICAgICAgICAgICBDSEVDSyhwYXJhbXNbMl0gPT0g
VmFsdWVSZXAoR1BSSW5mbzo6cmVnVDEpKTsKICAgICAgICAgICAgIGFkZDMyKGppdCwgR1BSSW5m
bzo6cmVnVDAsIEdQUkluZm86OnJlZ1QxLCBwYXJhbXNbMF0uZ3ByKCkpOwogICAgICAgICB9KTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBwYXRjaHBvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGlu
dD4ocHJvYywgMSwgMikgPT0gMyk7CiB9CkBAIC03NzM3LDcgKzc3NDUsNyBAQCB2b2lkIHRlc3RQ
YXRjaHBvaW50QW55KFZhbHVlUmVwIHJlcCkKICAgICAgICAgICAgIENIRUNLKHBhcmFtc1syXS5p
c0dQUigpKTsKICAgICAgICAgICAgIGFkZDMyKGppdCwgcGFyYW1zWzFdLmdwcigpLCBwYXJhbXNb
Ml0uZ3ByKCksIHBhcmFtc1swXS5ncHIoKSk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBw
YXRjaHBvaW50KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAxLCAyKSA9
PSAzKTsKIH0KQEAgLTc3NzMsNyArNzc4MSw3IEBAIHZvaWQgdGVzdFBhdGNocG9pbnRHUFNjcmF0
Y2goKQogICAgICAgICAgICAgQ0hFQ0soIXBhcmFtcy51bmF2YWlsYWJsZVJlZ2lzdGVycygpLmdl
dChwYXJhbXMuZ3BTY3JhdGNoKDEpKSk7CiAgICAgICAgICAgICBhZGQzMihqaXQsIHBhcmFtc1sx
XS5ncHIoKSwgcGFyYW1zWzJdLmdwcigpLCBwYXJhbXNbMF0uZ3ByKCkpOwogICAgICAgICB9KTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBwYXRjaHBvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGlu
dD4ocHJvYywgMSwgMikgPT0gMyk7CiB9CkBAIC03ODAzLDcgKzc4MTEsNyBAQCB2b2lkIHRlc3RQ
YXRjaHBvaW50RlBTY3JhdGNoKCkKICAgICAgICAgICAgIENIRUNLKCFwYXJhbXMudW5hdmFpbGFi
bGVSZWdpc3RlcnMoKS5nZXQocGFyYW1zLmZwU2NyYXRjaCgxKSkpOwogICAgICAgICAgICAgYWRk
MzIoaml0LCBwYXJhbXNbMV0uZ3ByKCksIHBhcmFtc1syXS5ncHIoKSwgcGFyYW1zWzBdLmdwcigp
KTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOwogCiAgICAgQ0hFQ0so
Y29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIDEsIDIpID09IDMpOwogfQpAQCAtNzg0NSw3ICs3ODUz
LDcgQEAgdm9pZCB0ZXN0UGF0Y2hwb2ludExvdHNPZkxhdGVBbnlzKCkKICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50
KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jKSA9PSAodGhpbmdzLnNpemUo
KSAqICh0aGluZ3Muc2l6ZSgpIC0gMSkpIC8gMik7CiB9CkBAIC03ODczLDcgKzc4ODEsNyBAQCB2
b2lkIHRlc3RQYXRjaHBvaW50QW55SW1tKFZhbHVlUmVwIHJlcCkKICAgICAgICAgICAgICAgICBD
Q2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihzdGF0aWNfY2FzdDxpbnQzMl90PihwYXJhbXNbMl0u
dmFsdWUoKSkpLAogICAgICAgICAgICAgICAgIHBhcmFtc1sxXS5ncHIoKSwgcGFyYW1zWzBdLmdw
cigpKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOwogCiAgICAgQ0hF
Q0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIDEpID09IDQzKTsKIH0KQEAgLTc4OTksNyArNzkw
Nyw3IEBAIHZvaWQgdGVzdFBhdGNocG9pbnRNYW55SW1tcygpCiAgICAgICAgICAgICBDSEVDSyhw
YXJhbXNbMl0gPT0gVmFsdWVSZXA6OmNvbnN0YW50KDQzMDAwMDAwMDAwMDAwbGwpKTsKICAgICAg
ICAgICAgIENIRUNLKHBhcmFtc1szXSA9PSBWYWx1ZVJlcDo6Y29uc3RhbnQoYml0d2lzZV9jYXN0
PGludDY0X3Q+KDQyLjUpKSk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNzkyNSw3ICs3OTMzLDcgQEAgdm9pZCB0ZXN0
UGF0Y2hwb2ludFdpdGhSZWdpc3RlclJlc3VsdCgpCiAgICAgICAgICAgICBDSEVDSyhwYXJhbXNb
Ml0uaXNHUFIoKSk7CiAgICAgICAgICAgICBhZGQzMihqaXQsIHBhcmFtc1sxXS5ncHIoKSwgcGFy
YW1zWzJdLmdwcigpLCBHUFJJbmZvOjpub25BcmdHUFIwKTsKICAgICAgICAgfSk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hw
b2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHBhdGNocG9pbnQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2Ms
IDEsIDIpID09IDMpOwogfQpAQCAtNzk1MSw3ICs3OTU5LDcgQEAgdm9pZCB0ZXN0UGF0Y2hwb2lu
dFdpdGhTdGFja0FyZ3VtZW50UmVzdQogICAgICAgICAgICAgaml0LmFkZDMyKHBhcmFtc1sxXS5n
cHIoKSwgcGFyYW1zWzJdLmdwcigpLCBqaXQuc2NyYXRjaFJlZ2lzdGVyKCkpOwogICAgICAgICAg
ICAgaml0LnN0b3JlMzIoaml0LnNjcmF0Y2hSZWdpc3RlcigpLCBDQ2FsbEhlbHBlcnM6OkFkZHJl
c3MoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgMCkpOwogICAgICAgICB9KTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBwYXRjaHBvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGlu
dD4ocHJvYywgMSwgMikgPT0gMyk7CiB9CkBAIC03OTgwLDcgKzc5ODgsNyBAQCB2b2lkIHRlc3RQ
YXRjaHBvaW50V2l0aEFueVJlc3VsdCgpCiAgICAgICAgICAgICBqaXQuY29udmVydEludDMyVG9E
b3VibGUoR1BSSW5mbzo6cmVnVDAsIEZQUkluZm86OmZwUmVnVDApOwogICAgICAgICAgICAgaml0
LnN0b3JlRG91YmxlKEZQUkluZm86OmZwUmVnVDAsIENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJ
bmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgcGFyYW1zWzBdLm9mZnNldEZyb21GUCgpKSk7CiAgICAg
ICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHBhdGNocG9pbnQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKIAogICAgIENIRUNLKGNvbXBpbGVB
bmRSdW48ZG91YmxlPihwcm9jLCAxLCAyKSA9PSAzKTsKIH0KQEAgLTgwMDIsNyArODAxMCw3IEBA
IHZvaWQgdGVzdFNpbXBsZUNoZWNrKCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGls
b2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMy
VmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHBy
b2MpOwpAQCAtODAyMSw3ICs4MDI5LDcgQEAgdm9pZCB0ZXN0Q2hlY2tGYWxzZSgpCiAgICAgICAg
IFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgewog
ICAgICAgICAgICAgQ0hFQ0soISJUaGlzIHNob3VsZCBub3QgaGF2ZSBleGVjdXRlZCIpOwogICAg
ICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJv
b3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBh
dXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwpAQCAtODA0Nyw3ICs4MDU1LDcgQEAgdm9pZCB0ZXN0
Q2hlY2tUcnVlKCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAg
ICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAwKSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwpAQCAtODA3
OCw3ICs4MDg2LDcgQEAgdm9pZCB0ZXN0Q2hlY2tMZXNzVGhhbigpCiAgICAgICAgICAgICBqaXQu
ZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAg
fSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgYXV0byBj
b2RlID0gY29tcGlsZShwcm9jKTsKQEAgLTgxMjQsNyArODEzMiw3IEBAIHZvaWQgdGVzdENoZWNr
TWVnYUNvbWJvKCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAg
ICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAwKSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwpAQCAtODE3
OSw3ICs4MTg3LDcgQEAgdm9pZCB0ZXN0Q2hlY2tUcmlja3lNZWdhQ29tYm8oKQogICAgICAgICAg
ICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAg
ICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAg
IGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CkBAIC04MjQzLDcgKzgyNTEsNyBAQCB2b2lkIHRl
c3RDaGVja1R3b01lZ2FDb21ib3MoKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxv
Z3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJv
Yyk7CkBAIC04MjkzLDcgKzgzMDEsNyBAQCB2b2lkIHRlc3RDaGVja1R3b05vblJlZHVuZGFudE1l
Z2FDb21ib3MoCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9h
ZDhTLCBPcmlnaW4oKSwgcHRyKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJy
YW5jaCwgT3JpZ2luKCksIGJyYW5jaFByZWRpY2F0ZSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2Nr
KHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAgICAgCkBAIC04MzA5LDcg
KzgzMTcsNyBAQCB2b2lkIHRlc3RDaGVja1R3b05vblJlZHVuZGFudE1lZ2FDb21ib3MoCiAgICAg
ICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQo
KTsKICAgICAgICAgfSk7Ci0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgNDMpKTsKIAogICAgIENoZWNrVmFsdWUqIGNoZWNrMiA9IGVsc2VDYXNlLT5hcHBlbmRO
ZXc8Q2hlY2tWYWx1ZT4ocHJvYywgQ2hlY2ssIE9yaWdpbigpLCBjaGVja1ByZWRpY2F0ZSk7CkBA
IC04MzI0LDcgKzgzMzIsNyBAQCB2b2lkIHRlc3RDaGVja1R3b05vblJlZHVuZGFudE1lZ2FDb21i
b3MoCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAg
IGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgNDUpKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CkBA
IC04Mzc4LDcgKzgzODYsNyBAQCB2b2lkIHRlc3RDaGVja0FkZEltbSgpCiAgICAgICAgICAgICBq
aXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAg
ICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVja0Fk
ZCkpOwogCkBAIC04NDE0LDcgKzg0MjIsNyBAQCB2b2lkIHRlc3RDaGVja0FkZEltbUNvbW11dGUo
KQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBq
aXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBP
cmlnaW4oKSwgY2hlY2tBZGQpKTsKIApAQCAtODQ0OSw3ICs4NDU3LDcgQEAgdm9pZCB0ZXN0Q2hl
Y2tBZGRJbW1Tb21lUmVnaXN0ZXIoKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxv
Z3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tBZGQpKTsKIApAQCAtODQ4Niw3ICs4
NDk0LDcgQEAgdm9pZCB0ZXN0Q2hlY2tBZGQoKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlv
bkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tBZGQpKTsKIApAQCAtODUx
OSw3ICs4NTI3LDcgQEAgdm9pZCB0ZXN0Q2hlY2tBZGQ2NCgpCiAgICAgICAgICAgICBqaXQuZW1p
dEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVja0FkZCkpOwog
CkBAIC04NTQyLDcgKzg1NTAsNyBAQCB2b2lkIHRlc3RDaGVja0FkZEZvbGQoaW50IGEsIGludCBi
KQogICAgICAgICBbJl0gKENDYWxsSGVscGVycyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBh
cmFtcyYpIHsKICAgICAgICAgICAgIENIRUNLKCEiU2hvdWxkIGhhdmUgYmVlbiBmb2xkZWQiKTsK
ICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgY2hlY2tBZGQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja0FkZCk7CiAKICAgICBhdXRvIGNvZGUgPSBj
b21waWxlKHByb2MpOwogCkBAIC04NTYzLDcgKzg1NzEsNyBAQCB2b2lkIHRlc3RDaGVja0FkZEZv
bGRGYWlsKGludCBhLCBpbnQgYikKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1
ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja0FkZCk7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNo
ZWNrQWRkKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKQEAgLTg2MDIsNyAr
ODYxMCw3IEBAIHZvaWQgdGVzdENoZWNrQWRkQXJndW1lbnRBbGlhc2luZzY0KCkKICAgICBDaGVj
a1ZhbHVlKiBjaGVja0FkZDMgPSByb290LT5hcHBlbmROZXc8Q2hlY2tWYWx1ZT4ocHJvYywgQ2hl
Y2tBZGQsIE9yaWdpbigpLCBjaGVja0FkZDEsIGNoZWNrQWRkMik7CiAgICAgY2hlY2tBZGQzLT5z
ZXRHZW5lcmF0b3IoWyZdIChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU3RhY2ttYXBHZW5lcmF0
aW9uUGFyYW1zJikgeyBqaXQub29wcygpOyB9KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrQWRkMyk7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrQWRkMyk7
CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIDEsIDIsIDMpID09IDgp
OwogfQpAQCAtODY0NSw3ICs4NjUzLDcgQEAgdm9pZCB0ZXN0Q2hlY2tBZGRBcmd1bWVudEFsaWFz
aW5nMzIoKQogICAgIENoZWNrVmFsdWUqIGNoZWNrQWRkMyA9IHJvb3QtPmFwcGVuZE5ldzxDaGVj
a1ZhbHVlPihwcm9jLCBDaGVja0FkZCwgT3JpZ2luKCksIGNoZWNrQWRkMSwgY2hlY2tBZGQyKTsK
ICAgICBjaGVja0FkZDMtPnNldEdlbmVyYXRvcihbJl0gKENDYWxsSGVscGVycyYgaml0LCBjb25z
dCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7IGppdC5vb3BzKCk7IH0pOwogCi0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tB
ZGQzKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgY2hlY2tBZGQzKTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJv
YywgMSwgMiwgMykgPT0gOCk7CiB9CkBAIC04NjcwLDcgKzg2NzgsNyBAQCB2b2lkIHRlc3RDaGVj
a0FkZFNlbGZPdmVyZmxvdzY0KCkKICAgICBvcGFxdWVVc2UtPmFwcGVuZChDb25zdHJhaW5lZFZh
bHVlKGFyZywgVmFsdWVSZXA6OlNvbWVSZWdpc3RlcikpOwogICAgIG9wYXF1ZVVzZS0+c2V0R2Vu
ZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1z
JikgeyB9KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIGNoZWNrQWRkKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tBZGQpOwogCiAgICAgYXV0byBjb2RlID0gY29t
cGlsZShwcm9jKTsKIApAQCAtODcwMSw3ICs4NzA5LDcgQEAgdm9pZCB0ZXN0Q2hlY2tBZGRTZWxm
T3ZlcmZsb3czMigpCiAgICAgb3BhcXVlVXNlLT5hcHBlbmQoQ29uc3RyYWluZWRWYWx1ZShhcmcs
IFZhbHVlUmVwOjpTb21lUmVnaXN0ZXIpKTsKICAgICBvcGFxdWVVc2UtPnNldEdlbmVyYXRvcihb
Jl0gKENDYWxsSGVscGVycyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsgfSk7
CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBjaGVja0FkZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIGNoZWNrQWRkKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJv
Yyk7CiAKQEAgLTg3MzQsNyArODc0Miw3IEBAIHZvaWQgdGVzdENoZWNrU3ViSW1tKCkKICAgICAg
ICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgp
OwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCks
IGNoZWNrU3ViKSk7CiAKQEAgLTg3NzYsNyArODc4NCw3IEBAIHZvaWQgdGVzdENoZWNrU3ViQmFk
SW1tKCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAg
ICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRv
RCwgT3JpZ2luKCksIGNoZWNrU3ViKSk7CiAKQEAgLTg4MTMsNyArODgyMSw3IEBAIHZvaWQgdGVz
dENoZWNrU3ViKCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAg
ICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgSVRvRCwgT3JpZ2luKCksIGNoZWNrU3ViKSk7CiAKQEAgLTg4NTEsNyArODg1OSw3IEBAIHZv
aWQgdGVzdENoZWNrU3ViNjQoKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3Vl
KCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tTdWIpKTsKIApAQCAtODg3NCw3ICs4ODgy
LDcgQEAgdm9pZCB0ZXN0Q2hlY2tTdWJGb2xkKGludCBhLCBpbnQgYikKICAgICAgICAgWyZdIChD
Q2FsbEhlbHBlcnMmLCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7CiAgICAgICAg
ICAgICBDSEVDSyghIlNob3VsZCBoYXZlIGJlZW4gZm9sZGVkIik7CiAgICAgICAgIH0pOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNo
ZWNrU3ViKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgY2hlY2tTdWIpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApA
QCAtODg5NSw3ICs4OTAzLDcgQEAgdm9pZCB0ZXN0Q2hlY2tTdWJGb2xkRmFpbChpbnQgYSwgaW50
IGIpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAg
IGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tTdWIpOworICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja1N1Yik7CiAKICAgICBh
dXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC04OTIyLDcgKzg5MzAsNyBAQCB2b2lkIHRl
c3RDaGVja05lZygpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAg
ICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIElUb0QsIE9yaWdpbigpLCBjaGVja05lZykpOwogCkBAIC04OTUyLDcgKzg5NjAsNyBAQCB2
b2lkIHRlc3RDaGVja05lZzY0KCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1
ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGNoZWNrTmVnKSk7CiAKQEAgLTg5ODksNyArODk5
Nyw3IEBAIHZvaWQgdGVzdENoZWNrTXVsKCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25F
cGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGNoZWNrTXVsKSk7CiAKQEAgLTkwMzAs
NyArOTAzOCw3IEBAIHZvaWQgdGVzdENoZWNrTXVsTWVtb3J5KCkKICAgICAgICAgICAgIGppdC5l
bWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGNoZWNrTXVsKSk7
CiAKQEAgLTkwNzcsNyArOTA4NSw3IEBAIHZvaWQgdGVzdENoZWNrTXVsMigpCiAgICAgICAgICAg
ICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAg
ICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVj
a011bCkpOwogCkBAIC05MTEwLDcgKzkxMTgsNyBAQCB2b2lkIHRlc3RDaGVja011bDY0KCkKICAg
ICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJl
dCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2lu
KCksIGNoZWNrTXVsKSk7CiAKQEAgLTkxMzMsNyArOTE0MSw3IEBAIHZvaWQgdGVzdENoZWNrTXVs
Rm9sZChpbnQgYSwgaW50IGIpCiAgICAgICAgIFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3Rh
Y2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgewogICAgICAgICAgICAgQ0hFQ0soISJTaG91bGQgaGF2
ZSBiZWVuIGZvbGRlZCIpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja011bCk7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrTXVsKTsKIAog
ICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKQEAgLTkxNTQsNyArOTE2Miw3IEBAIHZv
aWQgdGVzdENoZWNrTXVsRm9sZEZhaWwoaW50IGEsIGludCBiKQogICAgICAgICAgICAgaml0LmVt
aXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0p
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIGNoZWNrTXVsKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgY2hlY2tNdWwpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9j
KTsKIApAQCAtOTE5Myw3ICs5MjAxLDcgQEAgdm9pZCB0ZXN0Q2hlY2tNdWxBcmd1bWVudEFsaWFz
aW5nNjQoKQogICAgIENoZWNrVmFsdWUqIGNoZWNrTXVsMyA9IHJvb3QtPmFwcGVuZE5ldzxDaGVj
a1ZhbHVlPihwcm9jLCBDaGVja011bCwgT3JpZ2luKCksIGNoZWNrTXVsMSwgY2hlY2tNdWwyKTsK
ICAgICBjaGVja011bDMtPnNldEdlbmVyYXRvcihbJl0gKENDYWxsSGVscGVycyYgaml0LCBjb25z
dCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7IGppdC5vb3BzKCk7IH0pOwogCi0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tN
dWwzKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgY2hlY2tNdWwzKTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJv
YywgMiwgMywgNCkgPT0gNzIpOwogfQpAQCAtOTIzNiw3ICs5MjQ0LDcgQEAgdm9pZCB0ZXN0Q2hl
Y2tNdWxBcmd1bWVudEFsaWFzaW5nMzIoKQogICAgIENoZWNrVmFsdWUqIGNoZWNrTXVsMyA9IHJv
b3QtPmFwcGVuZE5ldzxDaGVja1ZhbHVlPihwcm9jLCBDaGVja011bCwgT3JpZ2luKCksIGNoZWNr
TXVsMSwgY2hlY2tNdWwyKTsKICAgICBjaGVja011bDMtPnNldEdlbmVyYXRvcihbJl0gKENDYWxs
SGVscGVycyYgaml0LCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7IGppdC5vb3Bz
KCk7IH0pOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgY2hlY2tNdWwzKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tNdWwzKTsKIAogICAgIENIRUNLKGNvbXBpbGVB
bmRSdW48aW50MzJfdD4ocHJvYywgMiwgMywgNCkgPT0gNzIpOwogfQpAQCAtOTI2OCw3ICs5Mjc2
LDcgQEAgdm9pZCB0ZXN0Q2hlY2tNdWw2NFNTaHIoKQogICAgICAgICAgICAgaml0LmVtaXRGdW5j
dGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tNdWwpKTsKIApAQCAt
OTI5NCw3ICs5MzAyLDcgQEAgdm9pZCBnZW5lcmljVGVzdENvbXBhcmUoCiAgICAgICAgIFZhbHVl
KiByaWdodFZhbHVlID0gcmlnaHRGdW5jdG9yKHJvb3QsIHByb2MpOwogICAgICAgICBWYWx1ZSog
Y29tcGFyaXNvblJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgb3Bjb2RlLCBP
cmlnaW4oKSwgbGVmdFZhbHVlLCByaWdodFZhbHVlKTsKICAgICAgICAgCi0gICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBOb3RFcXVhbCwg
T3JpZ2luKCksCkBAIC05MzE0LDcgKzkzMjIsNyBAQCB2b2lkIGdlbmVyaWNUZXN0Q29tcGFyZSgK
ICAgICAgICAgVmFsdWUqIGxlZnRWYWx1ZSA9IGxlZnRGdW5jdG9yKHJvb3QsIHByb2MpOwogICAg
ICAgICBWYWx1ZSogcmlnaHRWYWx1ZSA9IHJpZ2h0RnVuY3Rvcihyb290LCBwcm9jKTsKIAotICAg
ICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAg
ICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgb3Bjb2RlLCBPcmlnaW4oKSwg
bGVmdFZhbHVlLCByaWdodFZhbHVlKSwKICAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVu
Q2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwpAQCAtOTMyOCw5ICs5MzM2LDkgQEAg
dm9pZCBnZW5lcmljVGVzdENvbXBhcmUoCiAgICAgICAgICAgICAgICAgQ0hFQ0socGFyYW1zWzBd
LmlzR1BSKCkpOwogICAgICAgICAgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3Rl
ZEltbTMyKDEpLCBwYXJhbXNbMF0uZ3ByKCkpOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIHRo
ZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBw
YXRjaHBvaW50KTsKKyAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKIAotICAgICAgICBlbHNlQ2FzZS0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAg
ZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAK
QEAgLTk1NjksNyArOTU3Nyw3IEBAIHZvaWQgdGVzdEVxdWFsRG91YmxlKGRvdWJsZSBsZWZ0LCBk
b3VibGUKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEVx
dWFsLCBPcmlnaW4oKSwKQEAgLTk1ODgsNyArOTU5Niw3IEBAIHZvaWQgdGVzdENhbGxTaW1wbGUo
aW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q0NhbGxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBJbnQzMiwgT3JpZ2luKCksCkBAIC05NjA2LDE2ICs5NjE0LDE2IEBAIHZvaWQg
dGVzdENhbGxSYXJlKGludCBhLCBpbnQgYikKICAgICBCYXNpY0Jsb2NrKiBjb21tb24gPSBwcm9j
LmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogcmFyZSA9IHByb2MuYWRkQmxvY2soKTsKIAot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApLAogICAgICAgICBGcmVxdWVudGVkQmxvY2socmFyZSwgRnJlcXVlbmN5Q2xh
c3M6OlJhcmUpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2soY29tbW9uKSk7CiAKLSAgICBjb21t
b24tPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGNvbW1vbi0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjb21tb24tPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAgICAgCi0gICAgcmFyZS0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcmFyZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByYXJlLT5hcHBlbmROZXc8
Q0NhbGxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBJbnQzMiwgT3JpZ2luKCksCkBAIC05NjMz
LDE2ICs5NjQxLDE2IEBAIHZvaWQgdGVzdENhbGxSYXJlTGl2ZShpbnQgYSwgaW50IGIsIGludCAK
ICAgICBCYXNpY0Jsb2NrKiBjb21tb24gPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9j
ayogcmFyZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
QnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApLAogICAgICAgICBGcmVx
dWVudGVkQmxvY2socmFyZSwgRnJlcXVlbmN5Q2xhc3M6OlJhcmUpLAogICAgICAgICBGcmVxdWVu
dGVkQmxvY2soY29tbW9uKSk7CiAKLSAgICBjb21tb24tPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIGNvbW1vbi0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBjb21tb24tPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAwKSk7CiAgICAgCi0gICAgcmFyZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cmFyZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByYXJlLT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
QWRkLCBPcmlnaW4oKSwKQEAgLTk2NjIsNyArOTY3MCw3IEBAIHZvaWQgdGVzdENhbGxTaW1wbGVQ
dXJlKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENDYWxsVmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgSW50MzIsIE9yaWdpbigpLCBFZmZlY3RzOjpub25lKCksCkBAIC05Njky
LDcgKzk3MDAsNyBAQCB2b2lkIHRlc3RDYWxsRnVuY3Rpb25XaXRoSGVsbGFBcmd1bWVudHMoCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYml0
d2lzZV9jYXN0PHZvaWQqPihmdW5jdGlvbldpdGhIZWxsYUFyZ3VtZW50cykpKTsKICAgICBjYWxs
LT5jaGlsZHJlbigpLmFwcGVuZFZlY3RvcihhcmdzKTsKICAgICAKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYWxsKTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FsbCk7CiAK
ICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYykgPT0gZnVuY3Rpb25XaXRoSGVsbGFB
cmd1bWVudHMoMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAx
NSwgMTYsIDE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNCwgMjUsIDI2KSk7CiB9CkBAIC05
NzAxLDcgKzk3MDksNyBAQCB2b2lkIHRlc3RSZXR1cm5Eb3VibGUoZG91YmxlIHZhbHVlKQogewog
ICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVl
KSk7CiAKQEAgLTk3MTIsNyArOTcyMCw3IEBAIHZvaWQgdGVzdFJldHVybkZsb2F0KGZsb2F0IHZh
bHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgdmFsdWUpKTsKIApAQCAtOTcyOCw3ICs5NzM2LDcgQEAgdm9pZCB0ZXN0Q2FsbFNpbXBsZURv
dWJsZShkb3VibGUgYSwgZG91YgogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q0NhbGxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBEb3VibGUsIE9yaWdpbigpLApAQCAtOTc1NCw3ICs5NzYyLDcgQEAg
dm9pZCB0ZXN0Q2FsbFNpbXBsZUZsb2F0KGZsb2F0IGEsIGZsb2F0IAogICAgICAgICByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMSkpOwogICAgIFZhbHVlKiBmbG9hdFZhbHVlMSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDFpbnQzMik7CiAgICAgVmFs
dWUqIGZsb2F0VmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2Fz
dCwgT3JpZ2luKCksIGFyZ3VtZW50MmludDMyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDQ2FsbFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIEZsb2F0LCBPcmlnaW4oKSwKQEAgLTk3ODQsNyArOTc5Miw3IEBA
IHZvaWQgdGVzdENhbGxGdW5jdGlvbldpdGhIZWxsYURvdWJsZUFyZ3UKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiaXR3aXNlX2Nhc3Q8dm9p
ZCo+KGZ1bmN0aW9uV2l0aEhlbGxhRG91YmxlQXJndW1lbnRzKSkpOwogICAgIGNhbGwtPmNoaWxk
cmVuKCkuYXBwZW5kVmVjdG9yKGFyZ3MpOwogICAgIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNhbGwpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYWxsKTsKIAogICAgIENI
RUNLKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jKSA9PSBmdW5jdGlvbldpdGhIZWxsYURvdWJs
ZUFyZ3VtZW50cygxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQs
IDE1LCAxNiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYpKTsKIH0KQEAg
LTk4MDgsNyArOTgxNiw3IEBAIHZvaWQgdGVzdENhbGxGdW5jdGlvbldpdGhIZWxsYUZsb2F0QXJn
dW0KICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBiaXR3aXNlX2Nhc3Q8dm9pZCo+KGZ1bmN0aW9uV2l0aEhlbGxhRmxvYXRBcmd1bWVudHMpKSk7
CiAgICAgY2FsbC0+Y2hpbGRyZW4oKS5hcHBlbmRWZWN0b3IoYXJncyk7CiAgICAgCi0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FsbCk7
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IGNhbGwpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYykgPT0gZnVuY3Rp
b25XaXRoSGVsbGFGbG9hdEFyZ3VtZW50cygxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwg
MTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0LCAy
NSwgMjYpKTsKIH0KQEAgLTk4MjAsNyArOTgyOCw3IEBAIHZvaWQgdGVzdENoaWxsRGl2KGludCBu
dW0sIGludCBkZW4sIGludCAKICAgICAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgICAgIAotICAgICAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgQ2hpbGxEaXYsIE9y
aWdpbigpLApAQCAtOTgzOSw3ICs5ODQ3LDcgQEAgdm9pZCB0ZXN0Q2hpbGxEaXYoaW50IG51bSwg
aW50IGRlbiwgaW50IAogICAgICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICAgICAgCi0gICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBDaGlsbERpdiwgT3JpZ2lu
KCksCkBAIC05ODU1LDcgKzk4NjMsNyBAQCB2b2lkIHRlc3RDaGlsbERpdlR3aWNlKGludCBudW0x
LCBpbnQgZGVuCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IEFkZCwgT3JpZ2luKCksCkBAIC05ODg5LDcgKzk4OTcsNyBAQCB2b2lkIHRlc3RDaGlsbERpdjY0
KGludDY0X3QgbnVtLCBpbnQ2NF90CiAgICAgICAgIFByb2NlZHVyZSBwcm9jOwogICAgICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgICAgICAKLSAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIENoaWxsRGl2
LCBPcmlnaW4oKSwKQEAgLTk5MDQsNyArOTkxMiw3IEBAIHZvaWQgdGVzdENoaWxsRGl2NjQoaW50
NjRfdCBudW0sIGludDY0X3QKICAgICAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgICAgIAotICAgICAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgQ2hpbGxEaXYsIE9y
aWdpbigpLApAQCAtOTkyNSw3ICs5OTMzLDcgQEAgdm9pZCB0ZXN0TW9kQXJnKGludDY0X3QgdmFs
dWUpCiAKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUq
IHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgYXJn
dW1lbnQsIGFyZ3VtZW50KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soIWNvbXBp
bGVBbmRSdW48aW50NjRfdD4ocHJvYywgdmFsdWUpKTsKIH0KQEAgLTk5NDMsNyArOTk1MSw3IEBA
IHZvaWQgdGVzdE1vZEFyZ3MoaW50NjRfdCBudW1lcmF0b3IsIGludDYKICAgICBWYWx1ZSogYXJn
dW1lbnQxID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFZhbHVlKiBhcmd1bWVudDIgPSByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgTW9kLCBPcmlnaW4oKSwgYXJndW1lbnQxLCBhcmd1bWVudDIpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIG51bWVyYXRvciwg
ZGVub21pbmF0b3IpID09IG51bWVyYXRvciAlIGRlbm9taW5hdG9yKTsKIH0KQEAgLTk5NjEsNyAr
OTk2OSw3IEBAIHZvaWQgdGVzdE1vZEltbXMoaW50NjRfdCBudW1lcmF0b3IsIGludDYKICAgICBW
YWx1ZSogYXJndW1lbnQxID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIG51bWVyYXRvcik7CiAgICAgVmFsdWUqIGFyZ3VtZW50MiA9IHJvb3QtPmFwcGVuZE5l
dzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBkZW5vbWluYXRvcik7CiAgICAgVmFsdWUq
IHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgYXJn
dW1lbnQxLCBhcmd1bWVudDIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhjb21w
aWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIG51bWVyYXRvciwgZGVub21pbmF0b3IpID09IG51bWVy
YXRvciAlIGRlbm9taW5hdG9yKTsKIH0KQEAgLTk5NzcsNyArOTk4NSw3IEBAIHZvaWQgdGVzdE1v
ZEFyZzMyKGludDMyX3QgdmFsdWUpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIw
KSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9k
LCBPcmlnaW4oKSwgYXJndW1lbnQsIGFyZ3VtZW50KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAg
ICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgdmFsdWUpKTsKIH0KQEAgLTk5
OTcsNyArMTAwMDUsNyBAQCB2b2lkIHRlc3RNb2RBcmdzMzIoaW50MzJfdCBudW1lcmF0b3IsIGlu
CiAgICAgVmFsdWUqIGFyZ3VtZW50MiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1
bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSkpOwogICAgIFZhbHVlKiByZXN1
bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIGFyZ3VtZW50
MSwgYXJndW1lbnQyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFu
ZFJ1bjxpbnQzMl90Pihwcm9jLCBudW1lcmF0b3IsIGRlbm9taW5hdG9yKSA9PSBudW1lcmF0b3Ig
JSBkZW5vbWluYXRvcik7CiB9CkBAIC0xMDAxNSw3ICsxMDAyMyw3IEBAIHZvaWQgdGVzdE1vZElt
bXMzMihpbnQzMl90IG51bWVyYXRvciwgaW4KICAgICBWYWx1ZSogYXJndW1lbnQxID0gcm9vdC0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIG51bWVyYXRvcik7CiAgICAg
VmFsdWUqIGFyZ3VtZW50MiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBkZW5vbWluYXRvcik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgYXJndW1lbnQxLCBhcmd1bWVudDIpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
c3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2Ms
IG51bWVyYXRvciwgZGVub21pbmF0b3IpID09IG51bWVyYXRvciAlIGRlbm9taW5hdG9yKTsKIH0K
QEAgLTEwMDI3LDcgKzEwMDM1LDcgQEAgdm9pZCB0ZXN0Q2hpbGxNb2RBcmcoaW50NjRfdCB2YWx1
ZSkKIAogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBWYWx1ZSog
cmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDaGlsbE1vZCwgT3JpZ2luKCks
IGFyZ3VtZW50LCBhcmd1bWVudCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKCFj
b21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIHZhbHVlKSk7CiB9CkBAIC0xMDA0MCw3ICsxMDA0
OCw3IEBAIHZvaWQgdGVzdENoaWxsTW9kQXJncyhpbnQ2NF90IG51bWVyYXRvciwKICAgICBWYWx1
ZSogYXJndW1lbnQxID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFZhbHVlKiBhcmd1bWVudDIgPSBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQ2hpbGxNb2QsIE9yaWdpbigpLCBhcmd1bWVudDEsIGFyZ3VtZW50Mik7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywg
bnVtZXJhdG9yLCBkZW5vbWluYXRvcikgPT0gY2hpbGxNb2QobnVtZXJhdG9yLCBkZW5vbWluYXRv
cikpOwogfQpAQCAtMTAwNTMsNyArMTAwNjEsNyBAQCB2b2lkIHRlc3RDaGlsbE1vZEltbXMoaW50
NjRfdCBudW1lcmF0b3IsCiAgICAgVmFsdWUqIGFyZ3VtZW50MSA9IHJvb3QtPmFwcGVuZE5ldzxD
b25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBudW1lcmF0b3IpOwogICAgIFZhbHVlKiBhcmd1
bWVudDIgPSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgZGVu
b21pbmF0b3IpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIENoaWxsTW9kLCBPcmlnaW4oKSwgYXJndW1lbnQxLCBhcmd1bWVudDIpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJlc3VsdCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIG51bWVy
YXRvciwgZGVub21pbmF0b3IpID09IGNoaWxsTW9kKG51bWVyYXRvciwgZGVub21pbmF0b3IpKTsK
IH0KQEAgLTEwMDY2LDcgKzEwMDc0LDcgQEAgdm9pZCB0ZXN0Q2hpbGxNb2RBcmczMihpbnQzMl90
IHZhbHVlKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVl
KiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENoaWxsTW9kLCBPcmlnaW4o
KSwgYXJndW1lbnQsIGFyZ3VtZW50KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0so
IWNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgdmFsdWUpKTsKIH0KQEAgLTEwMDgxLDcgKzEw
MDg5LDcgQEAgdm9pZCB0ZXN0Q2hpbGxNb2RBcmdzMzIoaW50MzJfdCBudW1lcmF0bwogICAgIFZh
bHVlKiBhcmd1bWVudDIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDaGlsbE1vZCwgT3JpZ2luKCksIGFyZ3VtZW50MSwg
YXJndW1lbnQyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1
bjxpbnQzMl90Pihwcm9jLCBudW1lcmF0b3IsIGRlbm9taW5hdG9yKSA9PSBjaGlsbE1vZChudW1l
cmF0b3IsIGRlbm9taW5hdG9yKSk7CiB9CkBAIC0xMDA5NCw3ICsxMDEwMiw3IEBAIHZvaWQgdGVz
dENoaWxsTW9kSW1tczMyKGludDMyX3QgbnVtZXJhdG8KICAgICBWYWx1ZSogYXJndW1lbnQxID0g
cm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIG51bWVyYXRvcik7
CiAgICAgVmFsdWUqIGFyZ3VtZW50MiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBkZW5vbWluYXRvcik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2hpbGxNb2QsIE9yaWdpbigpLCBhcmd1bWVudDEsIGFyZ3Vt
ZW50Mik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50
MzJfdD4ocHJvYywgbnVtZXJhdG9yLCBkZW5vbWluYXRvcikgPT0gY2hpbGxNb2QobnVtZXJhdG9y
LCBkZW5vbWluYXRvcikpOwogfQpAQCAtMTAxMDUsNyArMTAxMTMsNyBAQCB2b2lkIHRlc3RTd2l0
Y2godW5zaWduZWQgZGVncmVlLCB1bnNpZ25lCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKIAogICAgIEJhc2ljQmxvY2sqIHRlcm1pbmF0ZSA9IHByb2MuYWRkQmxvY2so
KTsKLSAgICB0ZXJtaW5hdGUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRlcm1pbmF0
ZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICB0ZXJtaW5hdGUtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAwKSk7CiAKQEAgLTEwMTE2LDcgKzEwMTI0LDcgQEAgdm9pZCB0ZXN0U3dpdGNoKHVuc2ln
bmVkIGRlZ3JlZSwgdW5zaWduZQogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGRlZ3Jl
ZTsgKytpKSB7CiAgICAgICAgIEJhc2ljQmxvY2sqIG5ld0Jsb2NrID0gcHJvYy5hZGRCbG9jaygp
OwotICAgICAgICBuZXdCbG9jay0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIG5l
d0Jsb2NrLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICAgICAgbmV3QmxvY2stPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgKGkgJiAxKSA/IEdQUkluZm86
OmFyZ3VtZW50R1BSMiA6IEdQUkluZm86OmFyZ3VtZW50R1BSMSkpOwpAQCAtMTAxNDcsNyArMTAx
NTUsNyBAQCB2b2lkIHRlc3RTd2l0Y2hDaGlsbERpdih1bnNpZ25lZCBkZWdyZWUsCiAgICAgVmFs
dWUqIHJpZ2h0ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpOwogCiAgICAgQmFzaWNCbG9jayogdGVybWluYXRl
ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHRlcm1pbmF0ZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgdGVybWluYXRlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRlcm1pbmF0ZS0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtMTAxNTksNyArMTAxNjcsNyBAQCB2b2lk
IHRlc3RTd2l0Y2hDaGlsbERpdih1bnNpZ25lZCBkZWdyZWUsCiAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IGRlZ3JlZTsgKytpKSB7CiAgICAgICAgIEJhc2ljQmxvY2sqIG5ld0Jsb2NrID0g
cHJvYy5hZGRCbG9jaygpOwogCi0gICAgICAgIG5ld0Jsb2NrLT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICAgICAgbmV3QmxvY2stPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICBuZXdCbG9jay0+YXBwZW5k
TmV3PFZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBDaGlsbERpdiwgT3JpZ2luKCksIChp
ICYgMSkgPyByaWdodCA6IGxlZnQsIChpICYgMSkgPyBsZWZ0IDogcmlnaHQpKTsKQEAgLTEwMTcw
LDcgKzEwMTc4LDEwIEBAIHZvaWQgdGVzdFN3aXRjaENoaWxsRGl2KHVuc2lnbmVkIGRlZ3JlZSwK
ICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IGRlZ3JlZTsgKytpKSB7Ci0gICAgICAgIENIRUNLKGludm9rZTxpbnQzMl90PigqY29k
ZSwgaSAqIGdhcCwgNDIsIDExKSA9PSAoKGkgJiAxKSA/IDExLzQyIDogNDIvMTEpKTsKKyAgICAg
ICAgZGF0YUxvZygiaSA9ICIsIGksICJcbiIpOworICAgICAgICBpbnQzMl90IHJlc3VsdCA9IGlu
dm9rZTxpbnQzMl90PigqY29kZSwgaSAqIGdhcCwgNDIsIDExKTsKKyAgICAgICAgZGF0YUxvZygi
cmVzdWx0ID0gIiwgcmVzdWx0LCAiXG4iKTsKKyAgICAgICAgQ0hFQ0socmVzdWx0ID09ICgoaSAm
IDEpID8gMTEvNDIgOiA0Mi8xMSkpOwogICAgICAgICBpZiAoZ2FwID4gMSkgewogICAgICAgICAg
ICAgQ0hFQ0soIWludm9rZTxpbnQzMl90PigqY29kZSwgaSAqIGdhcCArIDEsIDQyLCAxMSkpOwog
ICAgICAgICAgICAgQ0hFQ0soIWludm9rZTxpbnQzMl90PigqY29kZSwgaSAqIGdhcCAtIDEsIDQy
LCAxMSkpOwpAQCAtMTAxODgsNyArMTAxOTksNyBAQCB2b2lkIHRlc3RTd2l0Y2hUYXJnZXR0aW5n
U2FtZUJsb2NrKCkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogCiAg
ICAgQmFzaWNCbG9jayogdGVybWluYXRlID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHRlcm1pbmF0
ZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGVybWluYXRlLT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRlcm1p
bmF0ZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDUpKTsKIApAQCAt
MTAxOTgsNyArMTAyMDksNyBAQCB2b2lkIHRlc3RTd2l0Y2hUYXJnZXR0aW5nU2FtZUJsb2NrKCkK
ICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRlcm1pbmF0ZSkpOwogCiAgICAgQmFzaWNCbG9jayog
b3RoZXJUYXJnZXQgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgb3RoZXJUYXJnZXQtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIG90aGVyVGFyZ2V0LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIG90aGVyVGFyZ2V0LT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpKTsKICAgICBzd2l0Y2hW
YWx1ZS0+YXBwZW5kQ2FzZShTd2l0Y2hDYXNlKDMsIEZyZXF1ZW50ZWRCbG9jayhvdGhlclRhcmdl
dCkpKTsKQEAgLTEwMjE4LDcgKzEwMjI5LDcgQEAgdm9pZCB0ZXN0U3dpdGNoVGFyZ2V0dGluZ1Nh
bWVCbG9ja0ZvbGRQYQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAK
ICAgICBCYXNpY0Jsb2NrKiB0ZXJtaW5hdGUgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgdGVybWlu
YXRlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0ZXJtaW5hdGUtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGVy
bWluYXRlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpKTsKIApA
QCAtMTAyMjksNyArMTAyNDAsNyBAQCB2b2lkIHRlc3RTd2l0Y2hUYXJnZXR0aW5nU2FtZUJsb2Nr
Rm9sZFBhCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0ZXJtaW5hdGUpKTsKIAogICAgIEJhc2lj
QmxvY2sqIG90aGVyVGFyZ2V0ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIG90aGVyVGFyZ2V0LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBvdGhlclRhcmdldC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAg
c3dpdGNoVmFsdWUtPmFwcGVuZENhc2UoU3dpdGNoQ2FzZSgzLCBGcmVxdWVudGVkQmxvY2sob3Ro
ZXJUYXJnZXQpKSk7CiAgICAgc3dpdGNoVmFsdWUtPmFwcGVuZENhc2UoU3dpdGNoQ2FzZSgxMywg
RnJlcXVlbnRlZEJsb2NrKG90aGVyVGFyZ2V0KSkpOwpAQCAtMTAyNDYsNyArMTAyNTcsNyBAQCB2
b2lkIHRlc3RUcnVuY0ZvbGQoaW50NjRfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKQEAgLTEwMjU5LDcgKzEw
MjcwLDcgQEAgdm9pZCB0ZXN0WkV4dDMyKGludDMyX3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJl
IHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBaRXh0MzIsIE9yaWdpbigpLApAQCAtMTAy
NzQsNyArMTAyODUsNyBAQCB2b2lkIHRlc3RaRXh0MzJGb2xkKGludDMyX3QgdmFsdWUpCiB7CiAg
ICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBaRXh0MzIsIE9yaWdp
bigpLApAQCAtMTAyODcsNyArMTAyOTgsNyBAQCB2b2lkIHRlc3RTRXh0MzIoaW50MzJfdCB2YWx1
ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNFeHQz
MiwgT3JpZ2luKCksCkBAIC0xMDMwMiw3ICsxMDMxMyw3IEBAIHZvaWQgdGVzdFNFeHQzMkZvbGQo
aW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIFNFeHQzMiwgT3JpZ2luKCksCkBAIC0xMDMxNSw3ICsxMDMyNiw3IEBAIHZvaWQgdGVz
dFRydW5jWkV4dDMyKGludDMyX3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
CiAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCkBAIC0xMDMzMiw3ICsxMDM0Myw3
IEBAIHZvaWQgdGVzdFRydW5jU0V4dDMyKGludDMyX3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJl
IHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCkBAIC0xMDM0
OSw3ICsxMDM2MCw3IEBAIHZvaWQgdGVzdFNFeHQ4KGludDMyX3QgdmFsdWUpCiB7CiAgICAgUHJv
Y2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTRXh0OCwgT3JpZ2luKCksCkBA
IC0xMDM2NCw3ICsxMDM3NSw3IEBAIHZvaWQgdGVzdFNFeHQ4Rm9sZChpbnQzMl90IHZhbHVlKQog
ewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU0V4dDgsIE9y
aWdpbigpLApAQCAtMTAzNzcsNyArMTAzODgsNyBAQCB2b2lkIHRlc3RTRXh0OFNFeHQ4KGludDMy
X3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBTRXh0OCwgT3JpZ2luKCksCkBAIC0xMDM5NCw3ICsxMDQwNSw3IEBAIHZvaWQgdGVzdFNFeHQ4
U0V4dDE2KGludDMyX3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBTRXh0OCwgT3JpZ2luKCksCkBAIC0xMDQxMSw3ICsxMDQyMiw3IEBAIHZv
aWQgdGVzdFNFeHQ4Qml0QW5kKGludDMyX3QgdmFsdWUsIGludDMKIHsKICAgICBQcm9jZWR1cmUg
cHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNFeHQ4LCBPcmlnaW4oKSwKQEAgLTEwNDI5
LDcgKzEwNDQwLDcgQEAgdm9pZCB0ZXN0Qml0QW5kU0V4dDgoaW50MzJfdCB2YWx1ZSwgaW50Mwog
ewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBP
cmlnaW4oKSwKQEAgLTEwNDQ3LDcgKzEwNDU4LDcgQEAgdm9pZCB0ZXN0U0V4dDE2KGludDMyX3Qg
dmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBT
RXh0MTYsIE9yaWdpbigpLApAQCAtMTA0NjIsNyArMTA0NzMsNyBAQCB2b2lkIHRlc3RTRXh0MTZG
b2xkKGludDMyX3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBTRXh0MTYsIE9yaWdpbigpLApAQCAtMTA0NzUsNyArMTA0ODYsNyBAQCB2b2lk
IHRlc3RTRXh0MTZTRXh0MTYoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKICAgICAgICAgICAgIHByb2MsIFNFeHQxNiwgT3JpZ2luKCksCkBAIC0xMDQ5Miw3ICsx
MDUwMyw3IEBAIHZvaWQgdGVzdFNFeHQxNlNFeHQ4KGludDMyX3QgdmFsdWUpCiB7CiAgICAgUHJv
Y2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTRXh0MTYsIE9yaWdpbigpLApA
QCAtMTA1MDksNyArMTA1MjAsNyBAQCB2b2lkIHRlc3RTRXh0MTZCaXRBbmQoaW50MzJfdCB2YWx1
ZSwgaW50CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBT
RXh0MTYsIE9yaWdpbigpLApAQCAtMTA1MjcsNyArMTA1MzgsNyBAQCB2b2lkIHRlc3RCaXRBbmRT
RXh0MTYoaW50MzJfdCB2YWx1ZSwgaW50CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMTA1NDUsNyArMTA1NTYsNyBA
QCB2b2lkIHRlc3RTRXh0MzJCaXRBbmQoaW50MzJfdCB2YWx1ZSwgaW50CiB7CiAgICAgUHJvY2Vk
dXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTRXh0MzIsIE9yaWdpbigpLApAQCAt
MTA1NjMsNyArMTA1NzQsNyBAQCB2b2lkIHRlc3RCaXRBbmRTRXh0MzIoaW50MzJfdCB2YWx1ZSwg
aW50CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRB
bmQsIE9yaWdpbigpLApAQCAtMTA1ODEsNyArMTA1OTIsNyBAQCB2b2lkIHRlc3RCYXNpY1NlbGVj
dCgpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTZWxl
Y3QsIE9yaWdpbigpLApAQCAtMTA2MDMsNyArMTA2MTQsNyBAQCB2b2lkIHRlc3RTZWxlY3RUZXN0
KCkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNlbGVj
dCwgT3JpZ2luKCksCkBAIC0xMDYyMiw3ICsxMDYzMyw3IEBAIHZvaWQgdGVzdFNlbGVjdENvbXBh
cmVEb3VibGUoKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTEwNjUzLDcgKzEwNjY0LDcgQEAgdm9pZCB0ZXN0U2Vs
ZWN0Q29tcGFyZUZsb2F0KGZsb2F0IGEsIGZsbwogICAgIFZhbHVlKiBmbG9hdFZhbHVlMSA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVu
dDFpbnQzMik7CiAgICAgVmFsdWUqIGZsb2F0VmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MmludDMyKTsKIAotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0x
MDY5MSw3ICsxMDcwMiw3IEBAIHZvaWQgdGVzdFNlbGVjdENvbXBhcmVGbG9hdFRvRG91YmxlKGZs
b2EKICAgICBWYWx1ZSogZG91YmxlVmFsdWUxID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZTEpOwogICAgIFZhbHVlKiBkb3Vi
bGVWYWx1ZTIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9y
aWdpbigpLCBmbG9hdFZhbHVlMik7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLApAQCAtMTA3MTksNyArMTA3MzAsNyBAQCB2b2lkIHRl
c3RTZWxlY3REb3VibGUoKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTEwNzQxLDcgKzEwNzUyLDcgQEAgdm9pZCB0
ZXN0U2VsZWN0RG91YmxlVGVzdCgpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLApAQCAtMTA3NjAsNyArMTA3NzEsNyBAQCB2
b2lkIHRlc3RTZWxlY3REb3VibGVDb21wYXJlRG91YmxlKCkKIHsKICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0xMDc5MCw3
ICsxMDgwMSw3IEBAIHZvaWQgdGVzdFNlbGVjdERvdWJsZUNvbXBhcmVGbG9hdChmbG9hdCAKICAg
ICBWYWx1ZSogZmxvYXRWYWx1ZTEgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdp
c2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQxaW50MzIpOwogICAgIFZhbHVlKiBmbG9hdFZhbHVl
MiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBh
cmd1bWVudDJpbnQzMik7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBTZWxlY3QsIE9yaWdpbigpLApAQCAtMTA4MjEsNyArMTA4MzIsNyBAQCB2b2lkIHRlc3RTZWxl
Y3RGbG9hdENvbXBhcmVGbG9hdChmbG9hdCBhCiAgICAgVmFsdWUqIGZsb2F0VmFsdWUzID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50
M2ludDMyKTsKICAgICBWYWx1ZSogZmxvYXRWYWx1ZTQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQ0aW50MzIpOwogCi0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTEw
ODQ3LDcgKzEwODU4LDcgQEAgdm9pZCB0ZXN0U2VsZWN0RG91YmxlQ29tcGFyZURvdWJsZShib29s
IAogICAgICAgICBWYWx1ZSogYXJnMiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIyKTsKICAgICAgICAgVmFsdWUq
IGFyZzMgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEZQUkluZm86OmFyZ3VtZW50RlBSMyk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0xMDg4
Myw3ICsxMDg5NCw3IEBAIHZvaWQgdGVzdFNlbGVjdERvdWJsZUNvbXBhcmVEb3VibGUoYm9vbCAK
ICAgICAgICAga2VlcFZhbHVlc0xpdmUtPmFwcGVuZChDb25zdHJhaW5lZFZhbHVlKGFyZzIsIFZh
bHVlUmVwOjpTb21lUmVnaXN0ZXIpKTsKICAgICAgICAga2VlcFZhbHVlc0xpdmUtPnNldEdlbmVy
YXRvcihbJl0gKENDYWxsSGVscGVycyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYp
IHsgfSk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgICAgIGF1dG8gY29kZSA9
IGNvbXBpbGUocHJvYyk7CiAKICAgICAgICAgZm9yIChhdXRvJiBsZWZ0IDogZmxvYXRpbmdQb2lu
dE9wZXJhbmRzPGRvdWJsZT4oKSkgewpAQCAtMTA5MTAsNyArMTA5MjEsNyBAQCB2b2lkIHRlc3RT
ZWxlY3REb3VibGVDb21wYXJlRG91YmxlKGJvb2wgCiAgICAgICAgIGtlZXBWYWx1ZXNMaXZlLT5h
cHBlbmQoQ29uc3RyYWluZWRWYWx1ZShhcmczLCBWYWx1ZVJlcDo6U29tZVJlZ2lzdGVyKSk7CiAg
ICAgICAgIGtlZXBWYWx1ZXNMaXZlLT5zZXRHZW5lcmF0b3IoWyZdIChDQ2FsbEhlbHBlcnMmLCBj
b25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7IH0pOwogCi0gICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7Cisg
ICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQpOwogICAgICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCiAgICAgICAg
IGZvciAoYXV0byYgbGVmdCA6IGZsb2F0aW5nUG9pbnRPcGVyYW5kczxkb3VibGU+KCkpIHsKQEAg
LTEwOTM4LDcgKzEwOTQ5LDcgQEAgdm9pZCB0ZXN0U2VsZWN0RG91YmxlQ29tcGFyZURvdWJsZShi
b29sIAogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+YXBwZW5kKENvbnN0cmFpbmVkVmFsdWUoYXJn
MywgVmFsdWVSZXA6OlNvbWVSZWdpc3RlcikpOwogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+c2V0
R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFy
YW1zJikgeyB9KTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICAgICAgYXV0byBj
b2RlID0gY29tcGlsZShwcm9jKTsKIAogICAgICAgICBmb3IgKGF1dG8mIGxlZnQgOiBmbG9hdGlu
Z1BvaW50T3BlcmFuZHM8ZG91YmxlPigpKSB7CkBAIC0xMDk1NSw3ICsxMDk2Niw3IEBAIHZvaWQg
dGVzdFNlbGVjdERvdWJsZUNvbXBhcmVEb3VibGUoYm9vbCAKICAgICAgICAgVmFsdWUqIGFyZzEg
PSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUklu
Zm86OmFyZ3VtZW50RlBSMSk7CiAgICAgICAgIFZhbHVlKiBhcmcyID0gcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjIp
OwogCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgICAg
ICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLApAQCAtMTA5OTAsNyArMTEwMDEsNyBAQCB2b2lkIHRl
c3RTZWxlY3REb3VibGVDb21wYXJlRG91YmxlKGJvb2wgCiAgICAgICAgIGtlZXBWYWx1ZXNMaXZl
LT5hcHBlbmQoQ29uc3RyYWluZWRWYWx1ZShhcmcyLCBWYWx1ZVJlcDo6U29tZVJlZ2lzdGVyKSk7
CiAgICAgICAgIGtlZXBWYWx1ZXNMaXZlLT5zZXRHZW5lcmF0b3IoWyZdIChDQ2FsbEhlbHBlcnMm
LCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7IH0pOwogCi0gICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7
CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQpOwogICAgICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCiAgICAg
ICAgIGZvciAoYXV0byYgbGVmdCA6IGZsb2F0aW5nUG9pbnRPcGVyYW5kczxkb3VibGU+KCkpIHsK
QEAgLTExMDMzLDcgKzExMDQ0LDcgQEAgdm9pZCB0ZXN0U2VsZWN0RmxvYXRDb21wYXJlRmxvYXQo
Ym9vbCAoKgogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywg
T3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjMpKSk7CiAKLSAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIFNlbGVj
dCwgT3JpZ2luKCksCkBAIC0xMTA3Nyw3ICsxMTA4OCw3IEBAIHZvaWQgdGVzdFNlbGVjdEZsb2F0
Q29tcGFyZUZsb2F0KGJvb2wgKCoKICAgICAgICAga2VlcFZhbHVlc0xpdmUtPmFwcGVuZChDb25z
dHJhaW5lZFZhbHVlKGFyZzIsIFZhbHVlUmVwOjpTb21lUmVnaXN0ZXIpKTsKICAgICAgICAga2Vl
cFZhbHVlc0xpdmUtPnNldEdlbmVyYXRvcihbJl0gKENDYWxsSGVscGVycyYsIGNvbnN0IFN0YWNr
bWFwR2VuZXJhdGlvblBhcmFtcyYpIHsgfSk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICAgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7
CiAgICAgICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKICAgICAgICAgZm9yIChhdXRv
JiBsZWZ0IDogZmxvYXRpbmdQb2ludE9wZXJhbmRzPGZsb2F0PigpKSB7CkBAIC0xMTExMiw3ICsx
MTEyMyw3IEBAIHZvaWQgdGVzdFNlbGVjdEZsb2F0Q29tcGFyZUZsb2F0KGJvb2wgKCoKICAgICAg
ICAga2VlcFZhbHVlc0xpdmUtPmFwcGVuZChDb25zdHJhaW5lZFZhbHVlKGFyZzMsIFZhbHVlUmVw
OjpTb21lUmVnaXN0ZXIpKTsKICAgICAgICAga2VlcFZhbHVlc0xpdmUtPnNldEdlbmVyYXRvcihb
Jl0gKENDYWxsSGVscGVycyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsgfSk7
CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0KTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgICAgIGF1dG8gY29kZSA9IGNvbXBp
bGUocHJvYyk7CiAKICAgICAgICAgZm9yIChhdXRvJiBsZWZ0IDogZmxvYXRpbmdQb2ludE9wZXJh
bmRzPGZsb2F0PigpKSB7CkBAIC0xMTE0OCw3ICsxMTE1OSw3IEBAIHZvaWQgdGVzdFNlbGVjdEZs
b2F0Q29tcGFyZUZsb2F0KGJvb2wgKCoKICAgICAgICAga2VlcFZhbHVlc0xpdmUtPmFwcGVuZChD
b25zdHJhaW5lZFZhbHVlKGFyZzMsIFZhbHVlUmVwOjpTb21lUmVnaXN0ZXIpKTsKICAgICAgICAg
a2VlcFZhbHVlc0xpdmUtPnNldEdlbmVyYXRvcihbJl0gKENDYWxsSGVscGVycyYsIGNvbnN0IFN0
YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsgfSk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICAgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dCk7CiAgICAgICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKICAgICAgICAgZm9yIChh
dXRvJiBsZWZ0IDogZmxvYXRpbmdQb2ludE9wZXJhbmRzPGZsb2F0PigpKSB7CkBAIC0xMTE3MSw3
ICsxMTE4Miw3IEBAIHZvaWQgdGVzdFNlbGVjdEZsb2F0Q29tcGFyZUZsb2F0KGJvb2wgKCoKICAg
ICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLAog
ICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKSkpOwogCi0gICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigp
LApAQCAtMTEyMTIsNyArMTEyMjMsNyBAQCB2b2lkIHRlc3RTZWxlY3RGbG9hdENvbXBhcmVGbG9h
dChib29sICgqCiAgICAgICAgIGtlZXBWYWx1ZXNMaXZlLT5hcHBlbmQoQ29uc3RyYWluZWRWYWx1
ZShhcmcyLCBWYWx1ZVJlcDo6U29tZVJlZ2lzdGVyKSk7CiAgICAgICAgIGtlZXBWYWx1ZXNMaXZl
LT5zZXRHZW5lcmF0b3IoWyZdIChDQ2FsbEhlbHBlcnMmLCBjb25zdCBTdGFja21hcEdlbmVyYXRp
b25QYXJhbXMmKSB7IH0pOwogCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogICAgICAgICBh
dXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCiAgICAgICAgIGZvciAoYXV0byYgbGVmdCA6IGZs
b2F0aW5nUG9pbnRPcGVyYW5kczxmbG9hdD4oKSkgewpAQCAtMTEyMzksNyArMTEyNTAsNyBAQCB2
b2lkIHRlc3RTZWxlY3RGb2xkKGludHB0cl90IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9j
OwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTExMjU5LDcg
KzExMjcwLDcgQEAgdm9pZCB0ZXN0U2VsZWN0SW52ZXJ0KCkKIHsKICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0xMTMxMiw3
ICsxMTMyMyw3IEBAIHZvaWQgdGVzdENoZWNrU2VsZWN0KCkKICAgICAgICAgICAgIGppdC5yZXQo
KTsKICAgICAgICAgfSk7CiAgICAgCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgMCkpOwogCkBAIC0xMTM4Myw3ICsxMTM5NCw3IEBAIHZvaWQgdGVzdENoZWNrU2Vs
ZWN0Q2hlY2tTZWxlY3QoKQogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKICAg
ICAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAg
LTExNDE5LDcgKzExNDMwLDcgQEAgdm9pZCB0ZXN0UG93RG91YmxlQnlJbnRlZ2VyTG9vcChkb3Vi
bGUgeAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIGF1dG8gcmVzdWx0ID0gcG93RG91
YmxlSW50MzIocHJvYywgcm9vdCwgT3JpZ2luKCksIHgsIHkpOwogICAgIEJhc2ljQmxvY2sqIGNv
bnRpbnVhdGlvbiA9IHJlc3VsdC5maXJzdDsKLSAgICBjb250aW51YXRpb24tPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdC5zZWNvbmQpOworICAg
IGNvbnRpbnVhdGlvbi0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdC5zZWNvbmQpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1
bjxkb3VibGU+KHByb2MsIHhPcGVyYW5kLCB5T3BlcmFuZCksIGIzUG93KHhPcGVyYW5kLCB5T3Bl
cmFuZCkpKTsKIH0KQEAgLTExNDI5LDcgKzExNDQwLDcgQEAgdm9pZCB0ZXN0VHJ1bmNPckhpZ2go
KQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBUcnVuYywg
T3JpZ2luKCksCkBAIC0xMTQ0Nyw3ICsxMTQ1OCw3IEBAIHZvaWQgdGVzdFRydW5jT3JMb3coKQog
ICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3Jp
Z2luKCksCkBAIC0xMTQ2NSw3ICsxMTQ3Niw3IEBAIHZvaWQgdGVzdEJpdEFuZE9ySGlnaCgpCiAg
ICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3Jp
Z2luKCksCkBAIC0xMTQ4NCw3ICsxMTQ5NSw3IEBAIHZvaWQgdGVzdEJpdEFuZE9yTG93KCkKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmln
aW4oKSwKQEAgLTExNTA3LDIwICsxMTUxOCwyMCBAQCB2b2lkIHRlc3RCcmFuY2g2NEVxdWFsKGlu
dDY0X3QgbGVmdCwgaW50CiAKICAgICBWYWx1ZSogYXJnMSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAg
ICBWYWx1ZSogYXJnMiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgRXF1YWwsIE9yaWdpbigpLCBhcmcxLCBhcmcyKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2Nr
KHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKICAgICBib29sIHRydWVS
ZXN1bHQgPSB0cnVlOwotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIExvYWQ4WiwgT3JpZ2luKCksCiAgICAgICAgICAgICB0aGVuQ2FzZS0+
YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAmdHJ1ZVJlc3VsdCkpKTsK
IAogICAgIGJvb2wgZWxzZVJlc3VsdCA9IGZhbHNlOwotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3
PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgIHByb2MsIExvYWQ4WiwgT3JpZ2luKCksCkBAIC0x
MTUzOCwyMCArMTE1NDksMjAgQEAgdm9pZCB0ZXN0QnJhbmNoNjRFcXVhbEltbShpbnQ2NF90IGxl
ZnQsIAogCiAgICAgVmFsdWUqIGFyZzEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIGFy
ZzIgPSByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHJpZ2h0
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRXF1YWwsIE9yaWdpbigpLCBhcmcxLCBhcmcy
KSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVs
c2VDYXNlKSk7CiAKICAgICBib29sIHRydWVSZXN1bHQgPSB0cnVlOwotICAgIHRoZW5DYXNlLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+
YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgIHByb2MsIExvYWQ4WiwgT3JpZ2lu
KCksCiAgICAgICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAmdHJ1ZVJlc3VsdCkpKTsKIAogICAgIGJvb2wgZWxzZVJlc3VsdCA9IGZhbHNl
OwotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIExvYWQ4WiwgT3JpZ2luKCksCkBAIC0xMTU3MSwyMCArMTE1ODIsMjAgQEAgdm9pZCB0ZXN0
QnJhbmNoNjRFcXVhbE1lbShpbnQ2NF90IGxlZnQsIAogICAgICAgICBwcm9jLCBMb2FkLCBwb2lu
dGVyVHlwZSgpLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAgICBWYWx1
ZSogYXJnMiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJy
YW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRXF1
YWwsIE9yaWdpbigpLCBhcmcxLCBhcmcyKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5D
YXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKICAgICBib29sIHRydWVSZXN1bHQg
PSB0cnVlOwotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVu
Q2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIExvYWQ4WiwgT3JpZ2luKCksCiAgICAgICAgICAgICB0aGVuQ2FzZS0+YXBwZW5k
TmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAmdHJ1ZVJlc3VsdCkpKTsKIAogICAg
IGJvb2wgZWxzZVJlc3VsdCA9IGZhbHNlOwotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PE1lbW9y
eVZhbHVlPigKICAgICAgICAgICAgIHByb2MsIExvYWQ4WiwgT3JpZ2luKCksCkBAIC0xMTYwNCwy
MCArMTE2MTUsMjAgQEAgdm9pZCB0ZXN0QnJhbmNoNjRFcXVhbE1lbUltbShpbnQ2NF90IGxlZgog
ICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSogYXJnMiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0
clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgcmlnaHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBFcXVhbCwgT3JpZ2luKCksIGFyZzEsIGFyZzIpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2so
dGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAogICAgIGJvb2wgdHJ1ZVJl
c3VsdCA9IHRydWU7Ci0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgTG9hZDhaLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHRoZW5DYXNlLT5h
cHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZ0cnVlUmVzdWx0KSkpOwog
CiAgICAgYm9vbCBlbHNlUmVzdWx0ID0gZmFsc2U7Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8
TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZDhaLCBPcmlnaW4oKSwKQEAgLTEx
NjQxLDcgKzExNjUyLDcgQEAgdm9pZCB0ZXN0U3RvcmU4TG9hZDhaKGludDMyX3QgdmFsdWUpCiAg
ICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICBwdHIpOwogCi0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQ4WiwgT3JpZ2luKCksIHB0cikpOwogCkBAIC0xMTY2
Myw3ICsxMTY3NCw3IEBAIHZvaWQgdGVzdFN0b3JlMTZMb2FkMTZaKGludDMyX3QgdmFsdWUpCiAg
ICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICBwdHIpOwogCi0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQxNlosIE9yaWdpbigpLCBwdHIpKTsKIApAQCAtMTE2
NzUsNyArMTE2ODYsNyBAQCB2b2lkIHRlc3RTU2hyU2hsMzIoaW50MzJfdCB2YWx1ZSwgaW50MzJf
CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNTaHIsIE9y
aWdpbigpLApAQCAtMTE2OTcsNyArMTE3MDgsNyBAQCB2b2lkIHRlc3RTU2hyU2hsNjQoaW50NjRf
dCB2YWx1ZSwgaW50MzJfCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIFNTaHIsIE9yaWdpbigpLApAQCAtMTE3MjUsOCArMTE3MzYsOCBAQCB2b2lkIHRlc3RU
cml2aWFsSW5maW5pdGVMb29wKCkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGxvb3AgPSBwcm9jLmFk
ZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwg
T3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhsb29wKSk7Ci0gICAgbG9vcC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhsb29wKSk7
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBG
cmVxdWVudGVkQmxvY2sobG9vcCkpOworICAgIGxvb3AtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3ApKTsKIAogICAgIGNvbXBp
bGUocHJvYyk7CiB9CkBAIC0xMTc0MCwxNSArMTE3NTEsMTUgQEAgdm9pZCB0ZXN0Rm9sZFBhdGhF
cXVhbCgpCiAKICAgICBWYWx1ZSogYXJnID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogCi0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLCBhcmcsIEZyZXF1ZW50ZWRCbG9jayh0
aGVuQmxvY2spLCBGcmVxdWVudGVkQmxvY2soZWxzZUJsb2NrKSk7CiAKLSAgICB0aGVuQmxvY2st
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5CbG9jay0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQmxv
Y2stPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBFcXVhbCwgT3JpZ2luKCks
IGFyZywgdGhlbkJsb2NrLT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IDApKSk7CiAKLSAgICBlbHNlQmxvY2stPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVs
c2VCbG9jay0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICBlbHNlQmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBFcXVhbCwgT3JpZ2luKCksIGFyZywgZWxzZUJsb2NrLT5hcHBlbmROZXc8Q29uc3RQ
dHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKSk7CkBAIC0xMTc2Niw3ICsxMTc3Nyw3IEBAIHZv
aWQgdGVzdExTaGlmdFNlbGYzMigpCiAgICAgVmFsdWUqIGFyZyA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjApKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU2hsLCBPcmlnaW4oKSwgYXJnLCBh
cmcpKTsKIApAQCAtMTE3ODksNyArMTE4MDAsNyBAQCB2b2lkIHRlc3RSU2hpZnRTZWxmMzIoKQog
ICAgIFZhbHVlKiBhcmcgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICBwcm9jLCBU
cnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIFNTaHIsIE9yaWdpbigpLCBhcmcsIGFyZykpOwogCkBAIC0xMTgxMiw3ICsx
MTgyMyw3IEBAIHZvaWQgdGVzdFVSU2hpZnRTZWxmMzIoKQogICAgIFZhbHVlKiBhcmcgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BS
SW5mbzo6YXJndW1lbnRHUFIwKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFpTaHIsIE9y
aWdpbigpLCBhcmcsIGFyZykpOwogCkBAIC0xMTgzMyw3ICsxMTg0NCw3IEBAIHZvaWQgdGVzdExT
aGlmdFNlbGY2NCgpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJnID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNobCwgT3JpZ2luKCksIGFyZywg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksIGFyZykpKTsKQEAg
LTExODU3LDcgKzExODY4LDcgQEAgdm9pZCB0ZXN0UlNoaWZ0U2VsZjY0KCkKICAgICBQcm9jZWR1
cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZh
bHVlKiBhcmcgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgcHJvYywgU1NociwgT3JpZ2luKCksIGFyZywgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBUcnVuYywgT3JpZ2luKCksIGFyZykpKTsKQEAgLTExODgxLDcgKzExODkyLDcgQEAgdm9p
ZCB0ZXN0VVJTaGlmdFNlbGY2NCgpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJnID0gcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFpTaHIsIE9yaWdp
bigpLCBhcmcsIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLCBh
cmcpKSk7CkBAIC0xMTkxNyw3ICsxMTkyOCw3IEBAIHZvaWQgdGVzdFBhdGNocG9pbnREb3VibGVS
ZWdzKCkKICAgICAgICAgICAgIG51bUNhbGxzKys7CiAgICAgICAgIH0pOwogCi0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2lu
dCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHBhdGNocG9pbnQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBD
SEVDSyhudW1DYWxscyA9PSAxKTsKQEAgLTExOTUwLDcgKzExOTYxLDcgQEAgdm9pZCB0ZXN0U3Bp
bGxEZWZTbWFsbGVyVGhhblVzZSgpCiAKICAgICAvLyBPbiB4ODYsIFN1YiBhZG1pdCBhbiBhZGRy
ZXNzIGZvciBhbnkgb3BlcmFuZC4gSWYgaXQgdXNlcyB0aGUgc3RhY2ssIHRoZSB0b3AgYml0cyBt
dXN0IGJlIHplcm8uCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgU3ViLCBPcmlnaW4oKSwgZm9yY2VTcGlsbCwgYXJnNjQpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIENIRUNLKGludm9rZTxp
bnQ2NF90PigqY29kZSwgMHhmZmZmZmZmZjAwMDAwMDAwKSA9PSAwKTsKQEAgLTExOTcwLDcgKzEx
OTgxLDcgQEAgdm9pZCB0ZXN0U3BpbGxVc2VMYXJnZXJUaGFuRGVmKCkKIAogICAgIFZhbHVlKiBj
b25kaXRpb24gPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjEpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFRydW5j
LCBPcmlnaW4oKSwKQEAgLTExOTgwLDEwICsxMTk5MSwxMCBAQCB2b2lkIHRlc3RTcGlsbFVzZUxh
cmdlclRoYW5EZWYoKQogICAgIFZhbHVlKiB0cnVuY2F0ZWQgPSB0aGVuQ2FzZS0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBaRXh0MzIsIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksIGFyZ3VtZW50KSk7CiAgICAgVXBzaWxv
blZhbHVlKiB0aGVuUmVzdWx0ID0gdGhlbkNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCB0cnVuY2F0ZWQpOwotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKKyAg
ICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBG
cmVxdWVudGVkQmxvY2sodGFpbCkpOwogCiAgICAgVXBzaWxvblZhbHVlKiBlbHNlUmVzdWx0ID0g
ZWxzZUNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhcmd1bWVu
dCk7Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9y
aWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOworICAgIGVsc2VDYXNlLT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7
CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgMTAwOyArK2kpIHsKICAgICAgICAgUGF0
Y2hwb2ludFZhbHVlKiBwcmV2ZW50VGFpbER1cGxpY2F0aW9uID0gdGFpbC0+YXBwZW5kTmV3PFBh
dGNocG9pbnRWYWx1ZT4ocHJvYywgVm9pZCwgT3JpZ2luKCkpOwpAQCAtMTIwMDQsNyArMTIwMTUs
NyBAQCB2b2lkIHRlc3RTcGlsbFVzZUxhcmdlclRoYW5EZWYoKQogICAgIFZhbHVlKiBwaGkgPSB0
YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFBoaSwgSW50NjQsIE9yaWdpbigpKTsKICAgICB0
aGVuUmVzdWx0LT5zZXRQaGkocGhpKTsKICAgICBlbHNlUmVzdWx0LT5zZXRQaGkocGhpKTsKLSAg
ICB0YWlsLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBw
aGkpOworICAgIHRhaWwtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBwaGkpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBDSEVDSyhp
bnZva2U8dWludDY0X3Q+KCpjb2RlLCAxLCAweGZmZmZmZmZmMDAwMDAwMDApID09IDApOwpAQCAt
MTIwODYsMTIgKzEyMDk3LDIzNyBAQCB2b2lkIHRlc3RMYXRlUmVnaXN0ZXIoKQogICAgICAgICAg
ICAgaml0Lm5vcCgpOwogICAgICAgICAgICAgaml0Lm5vcCgpOwogICAgICAgICB9KTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNv
bmRQYXRjaHBvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgc2Vjb25kUGF0Y2hwb2ludCk7CiAgICAgCiAgICAgYXV0byBjb2RlID0g
Y29tcGlsZShwcm9jKTsKICAgICBDSEVDSyhpbnZva2U8dWludDY0X3Q+KCpjb2RlKSA9PSByZXN1
bHQpOwogfQogCit2b2lkIHRocmVhZGVkSW50ZXJwcmV0ZXJQcmludChWZWN0b3I8aW50cHRyX3Q+
KiBzdHJlYW0sIGludHB0cl90IHZhbHVlKQoreworICAgIHN0cmVhbS0+YXBwZW5kKHZhbHVlKTsK
K30KKwordm9pZCB0ZXN0VGhyZWFkZWRJbnRlcnByZXRlcigpCit7CisgICAgLy8gVGhpcyBjcmVh
dGVzIGEgcG9vciBtYW4ncyB0aHJlYWRlZCBpbnRlcnByZXRlciB1c2luZyBQb2x5SnVtcCBhbmQg
c2VlcyBpZiBpdCB3b3Jrcy4gTm90ZQorICAgIC8vIHRoYXQgUG9seUp1bXAgaXMgbm90IGxpa2Ug
aW5kaXJlY3QgYnJhbmNoZXMgaW4gTExWTSwgc28geW91IGNhbid0IGFjdHVhbGx5IHVzZSBpdCB0
bworICAgIC8vIGltcGxlbWVudCBhIHByb3BlciB0aHJlYWRlZCBpbnRlcnByZXRlci4gVGhpcyBj
aGVhdHM6IHRoZSBkaXNwYXRjaCBpbnN0cnVjdGlvbiBpcyBhdCB0aGUgdG9wCisgICAgLy8gb2Yg
dGhlIGxvb3AuIFRoaXMgYWxzbyB0ZXN0cyBWYXJpYWJsZVZhbHVlLgorICAgIAorICAgIFByb2Nl
ZHVyZSBwcm9jOworICAgIAorICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
CisgICAgQmFzaWNCbG9jayogZGlzcGF0Y2ggPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNC
bG9jayogYWRkVG9EYXRhUG9pbnRlciA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBCYXNpY0Jsb2Nr
KiBhZGRUb0NvZGVQb2ludGVyID0gcHJvYy5hZGRCbG9jaygpOworICAgIEJhc2ljQmxvY2sqIGFk
ZFRvQ29kZVBvaW50ZXJUYWtlbiA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBCYXNpY0Jsb2NrKiBh
ZGRUb0NvZGVQb2ludGVyTm90VGFrZW4gPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9j
ayogYWRkVG9EYXRhID0gcHJvYy5hZGRCbG9jaygpOworICAgIEJhc2ljQmxvY2sqIHByaW50ID0g
cHJvYy5hZGRCbG9jaygpOworICAgIEJhc2ljQmxvY2sqIHN0b3AgPSBwcm9jLmFkZEJsb2NrKCk7
CisgICAgCisgICAgVmFyaWFibGUqIGRhdGFQb2ludGVyID0gcHJvYy5hZGRWYXJpYWJsZShwb2lu
dGVyVHlwZSgpKTsKKyAgICBWYXJpYWJsZSogY29kZVBvaW50ZXIgPSBwcm9jLmFkZFZhcmlhYmxl
KHBvaW50ZXJUeXBlKCkpOworICAgIAorICAgIHJvb3QtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVl
PigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgZGF0YVBvaW50ZXIsCisgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAg
ICAgICBwcm9jLCBTZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlciwKKyAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjEpKTsKKyAgICBWYWx1ZSogY29udGV4dCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRC
bG9jayhkaXNwYXRjaCkpOworICAgIAorICAgIFBvbHlKdW1wVmFsdWUqIHBvbHlKdW1wID0gZGlz
cGF0Y2gtPmFwcGVuZE5ldzxQb2x5SnVtcFZhbHVlPigKKyAgICAgICAgcHJvYywgT3JpZ2luKCks
CisgICAgICAgIGRpc3BhdGNoLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICAgICAg
cHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCksCisgICAgICAgICAgICBkaXNwYXRj
aC0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAgICAgICAgICAgICAgIHByb2MsIEIzOjpH
ZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlcikpKTsKKyAgICBwb2x5SnVtcC0+YXBwZW5kU3VjY2Vz
c29yKEZyZXF1ZW50ZWRCbG9jayhhZGRUb0RhdGFQb2ludGVyKSk7CisgICAgcG9seUp1bXAtPmFw
cGVuZFN1Y2Nlc3NvcihGcmVxdWVudGVkQmxvY2soYWRkVG9Db2RlUG9pbnRlcikpOworICAgIHBv
bHlKdW1wLT5hcHBlbmRTdWNjZXNzb3IoRnJlcXVlbnRlZEJsb2NrKGFkZFRvRGF0YSkpOworICAg
IHBvbHlKdW1wLT5hcHBlbmRTdWNjZXNzb3IoRnJlcXVlbnRlZEJsb2NrKHByaW50KSk7CisgICAg
cG9seUp1bXAtPmFwcGVuZFN1Y2Nlc3NvcihGcmVxdWVudGVkQmxvY2soc3RvcCkpOworICAgIAor
ICAgIC8vIE91ciAib3Bjb2RlcyIuIFRoZXkgd2lsbCBoYXZlIG1lYW5pbmcgb25jZSB3ZSBjb21w
aWxlLgorICAgIGludHB0cl90IEFkZERQID0gMDsKKyAgICBpbnRwdHJfdCBBZGRDUCA9IDA7Cisg
ICAgaW50cHRyX3QgQWRkID0gMDsKKyAgICBpbnRwdHJfdCBQcmludCA9IDA7CisgICAgaW50cHRy
X3QgU3RvcCA9IDA7CisgICAgcG9seUp1bXAtPnNldENhbGxiYWNrKAorICAgICAgICBbJl0gKGNv
bnN0IFZlY3RvcjxNYWNyb0Fzc2VtYmxlckNvZGVQdHI+JiBwb2ludGVycykgeworICAgICAgICAg
ICAgYXV0byBnZXQgPSBbJl0gKHNpemVfdCBpbmRleCkgLT4gaW50cHRyX3QgeworICAgICAgICAg
ICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8aW50cHRyX3Q+KHBvaW50ZXJzW2luZGV4XS5leGVj
dXRhYmxlQWRkcmVzcygpKTsKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICAKKyAgICAgICAg
ICAgIEFkZERQID0gZ2V0KDApOworICAgICAgICAgICAgQWRkQ1AgPSBnZXQoMSk7CisgICAgICAg
ICAgICBBZGQgPSBnZXQoMik7CisgICAgICAgICAgICBQcmludCA9IGdldCgzKTsKKyAgICAgICAg
ICAgIFN0b3AgPSBnZXQoNCk7CisgICAgICAgIH0pOworICAgIAorICAgIC8vIEFkZERQIDxvcGVy
YW5kPjogYWRkcyA8b3BlcmFuZD4gdG8gRFAuCisgICAgVmFsdWUqIGNvZGVQb2ludGVyVmFsdWUg
PQorICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJv
YywgQjM6OkdldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyKTsKKyAgICBhZGRUb0RhdGFQb2ludGVy
LT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCks
IGRhdGFQb2ludGVyLAorICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFsdWU+
KAorICAgICAgICAgICAgcHJvYywgQjM6OkFkZCwgT3JpZ2luKCksCisgICAgICAgICAgICBhZGRU
b0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3Jp
Z2luKCksIGRhdGFQb2ludGVyKSwKKyAgICAgICAgICAgIGFkZFRvRGF0YVBvaW50ZXItPmFwcGVu
ZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICAgICAgcHJvYywgTXVsLCBPcmlnaW4oKSwKKyAgICAg
ICAgICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAg
ICAgICAgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwgY29k
ZVBvaW50ZXJWYWx1ZSwgc2l6ZW9mKGludHB0cl90KSksCisgICAgICAgICAgICAgICAgYWRkVG9E
YXRhUG9pbnRlci0+YXBwZW5kSW50Q29uc3RhbnQoCisgICAgICAgICAgICAgICAgICAgIHByb2Ms
IE9yaWdpbigpLCBwb2ludGVyVHlwZSgpLCBzaXplb2YoaW50cHRyX3QpKSkpKTsKKyAgICBhZGRU
b0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNl
dCwgT3JpZ2luKCksIGNvZGVQb2ludGVyLAorICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBl
bmROZXc8VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgQjM6OkFkZCwgT3JpZ2luKCksIGNvZGVQ
b2ludGVyVmFsdWUsCisgICAgICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmRJbnRDb25z
dGFudCgKKyAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6
ZW9mKGludHB0cl90KSAqIDIpKSk7CisgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZGlzcGF0Y2gp
KTsKKyAgICAKKyAgICAvLyBBZGRDUCA8b3BlcmFuZD46IGFkZHMgPG9wZXJhbmQ+IHRvIENQIGlm
IHRoZSBjdXJyZW50IHZhbHVlIGF0IERQIGlzIG5vbi16ZXJvLCBvdGhlcndpc2UKKyAgICAvLyBm
YWxscyB0aHJvdWdoIG5vcm1hbGx5LgorICAgIGNvZGVQb2ludGVyVmFsdWUgPQorICAgICAgICBh
ZGRUb0NvZGVQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwg
T3JpZ2luKCksIGNvZGVQb2ludGVyKTsKKyAgICBWYWx1ZSogZGF0YVBvaW50ZXJWYWx1ZSA9Cisg
ICAgICAgIGFkZFRvQ29kZVBvaW50ZXItPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPihwcm9jLCBC
Mzo6R2V0LCBPcmlnaW4oKSwgZGF0YVBvaW50ZXIpOworICAgIGFkZFRvQ29kZVBvaW50ZXItPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKKyAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKKyAg
ICAgICAgYWRkVG9Db2RlUG9pbnRlci0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAg
ICAgIHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLCBkYXRhUG9pbnRlclZhbHVl
KSwKKyAgICAgICAgRnJlcXVlbnRlZEJsb2NrKGFkZFRvQ29kZVBvaW50ZXJUYWtlbiksIEZyZXF1
ZW50ZWRCbG9jayhhZGRUb0NvZGVQb2ludGVyTm90VGFrZW4pKTsKKyAgICBhZGRUb0NvZGVQb2lu
dGVyVGFrZW4tPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPigKKyAgICAgICAgcHJvYywgU2V0LCBP
cmlnaW4oKSwgY29kZVBvaW50ZXIsCisgICAgICAgIGFkZFRvQ29kZVBvaW50ZXJUYWtlbi0+YXBw
ZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEIzOjpBZGQsIE9yaWdpbigpLCBjb2Rl
UG9pbnRlclZhbHVlLAorICAgICAgICAgICAgYWRkVG9Db2RlUG9pbnRlclRha2VuLT5hcHBlbmRO
ZXc8VmFsdWU+KAorICAgICAgICAgICAgICAgIHByb2MsIE11bCwgT3JpZ2luKCksCisgICAgICAg
ICAgICAgICAgYWRkVG9Db2RlUG9pbnRlclRha2VuLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAor
ICAgICAgICAgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwg
Y29kZVBvaW50ZXJWYWx1ZSwgc2l6ZW9mKGludHB0cl90KSksCisgICAgICAgICAgICAgICAgYWRk
VG9Db2RlUG9pbnRlclRha2VuLT5hcHBlbmRJbnRDb25zdGFudCgKKyAgICAgICAgICAgICAgICAg
ICAgcHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBlKCksIHNpemVvZihpbnRwdHJfdCkpKSkpOwor
ICAgIGFkZFRvQ29kZVBvaW50ZXJUYWtlbi0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1
bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZGlzcGF0Y2gpKTsKKyAgICBhZGRUb0NvZGVQ
b2ludGVyTm90VGFrZW4tPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPigKKyAgICAgICAgcHJvYywg
U2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIsCisgICAgICAgIGFkZFRvQ29kZVBvaW50ZXJOb3RU
YWtlbi0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEIzOjpBZGQsIE9yaWdp
bigpLCBjb2RlUG9pbnRlclZhbHVlLAorICAgICAgICAgICAgYWRkVG9Db2RlUG9pbnRlck5vdFRh
a2VuLT5hcHBlbmRJbnRDb25zdGFudCgKKyAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwg
cG9pbnRlclR5cGUoKSwgc2l6ZW9mKGludHB0cl90KSAqIDIpKSk7CisgICAgYWRkVG9Db2RlUG9p
bnRlck5vdFRha2VuLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCisgICAgICAgIHByb2MsIEp1bXAs
IE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZGlzcGF0Y2gpKTsKKworICAgIC8vIEFkZCA8b3Bl
cmFuZD46IGFkZHMgPG9wZXJhbmQ+IHRvIHRoZSBzbG90IHBvaW50ZWQgdG8gYnkgRFAuCisgICAg
Y29kZVBvaW50ZXJWYWx1ZSA9IGFkZFRvRGF0YS0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHBy
b2MsIEIzOjpHZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlcik7CisgICAgZGF0YVBvaW50ZXJWYWx1
ZSA9IGFkZFRvRGF0YS0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHByb2MsIEIzOjpHZXQsIE9y
aWdpbigpLCBkYXRhUG9pbnRlcik7CisgICAgYWRkVG9EYXRhLT5hcHBlbmROZXc8TWVtb3J5VmFs
dWU+KAorICAgICAgICBwcm9jLCBTdG9yZSwgT3JpZ2luKCksCisgICAgICAgIGFkZFRvRGF0YS0+
YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEIzOjpBZGQsIE9yaWdpbigpLAor
ICAgICAgICAgICAgYWRkVG9EYXRhLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICAg
ICAgICAgIHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLCBkYXRhUG9pbnRlclZh
bHVlKSwKKyAgICAgICAgICAgIGFkZFRvRGF0YS0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAg
ICAgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwgY29kZVBv
aW50ZXJWYWx1ZSwgc2l6ZW9mKGludHB0cl90KSkpLAorICAgICAgICBkYXRhUG9pbnRlclZhbHVl
KTsKKyAgICBhZGRUb0RhdGEtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPigKKyAgICAgICAgcHJv
YywgU2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIsCisgICAgICAgIGFkZFRvRGF0YS0+YXBwZW5k
TmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEIzOjpBZGQsIE9yaWdpbigpLCBjb2RlUG9p
bnRlclZhbHVlLAorICAgICAgICAgICAgYWRkVG9EYXRhLT5hcHBlbmRJbnRDb25zdGFudChwcm9j
LCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6ZW9mKGludHB0cl90KSAqIDIpKSk7CisgICAg
YWRkVG9EYXRhLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZy
ZXF1ZW50ZWRCbG9jayhkaXNwYXRjaCkpOworICAgIAorICAgIC8vIFByaW50OiAicHJpbnRzIiB0
aGUgdmFsdWUgcG9pbnRlZCB0byBieSBEUC4gV2hhdCB0aGlzIGFjdHVhbGx5IG1lYW5zIGlzIHRo
YXQgdGhlIHZhbHVlIGlzCisgICAgLy8gYXBwZW5kZWQgdG8gdGhlIHN0cmVhbSB2ZWN0b3IgYnkg
dGhlIHRocmVhZGVkSW50ZXJwcmV0ZXJQcmludCBmdW5jdGlvbi4KKyAgICBjb2RlUG9pbnRlclZh
bHVlID0gcHJpbnQtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPihwcm9jLCBCMzo6R2V0LCBPcmln
aW4oKSwgY29kZVBvaW50ZXIpOworICAgIGRhdGFQb2ludGVyVmFsdWUgPSBwcmludC0+YXBwZW5k
TmV3PFZhcmlhYmxlVmFsdWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRlcik7
CisgICAgcHJpbnQtPmFwcGVuZE5ldzxDQ2FsbFZhbHVlPigKKyAgICAgICAgcHJvYywgVm9pZCwg
T3JpZ2luKCksCisgICAgICAgIHByaW50LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4oCisgICAg
ICAgICAgICBwcm9jLCBPcmlnaW4oKSwgYml0d2lzZV9jYXN0PHZvaWQqPih0aHJlYWRlZEludGVy
cHJldGVyUHJpbnQpKSwKKyAgICAgICAgY29udGV4dCwKKyAgICAgICAgcHJpbnQtPmFwcGVuZE5l
dzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCksIGRhdGFQ
b2ludGVyVmFsdWUpKTsKKyAgICBwcmludC0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAg
ICAgICBwcm9jLCBTZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlciwKKyAgICAgICAgcHJpbnQtPmFw
cGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBCMzo6QWRkLCBPcmlnaW4oKSwgY29k
ZVBvaW50ZXJWYWx1ZSwKKyAgICAgICAgICAgIHByaW50LT5hcHBlbmRJbnRDb25zdGFudChwcm9j
LCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6ZW9mKGludHB0cl90KSkpKTsKKyAgICBwcmlu
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVk
QmxvY2soZGlzcGF0Y2gpKTsKKyAgICAKKyAgICAvLyBTdG9wOiByZXR1cm5zLgorICAgIHN0b3At
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKKyAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
KyAgICAgICAgc3RvcC0+YXBwZW5kSW50Q29uc3RhbnQocHJvYywgT3JpZ2luKCksIHBvaW50ZXJU
eXBlKCksIDApKTsKKyAgICAKKyAgICBhdXRvIGludGVycHJldGVyID0gY29tcGlsZShwcm9jKTsK
KyAgICAKKyAgICBDSEVDSyhBZGREUCk7CisgICAgQ0hFQ0soQWRkQ1ApOworICAgIENIRUNLKEFk
ZCk7CisgICAgQ0hFQ0soUHJpbnQpOworICAgIENIRUNLKFN0b3ApOworICAgIAorICAgIFZlY3Rv
cjxpbnRwdHJfdD4gZGF0YTsKKyAgICBWZWN0b3I8aW50cHRyX3Q+IGNvZGU7CisgICAgVmVjdG9y
PGludHB0cl90PiBzdHJlYW07CisgICAgCisgICAgZGF0YS5hcHBlbmQoMSk7CisgICAgZGF0YS5h
cHBlbmQoMCk7CisgICAgCisgICAgaWYgKHNob3VsZEJlVmVyYm9zZSgpKQorICAgICAgICBkYXRh
TG9nKCJkYXRhID0gIiwgbGlzdER1bXAoZGF0YSksICJcbiIpOworICAgIAorICAgIC8vIFdlJ2xs
IHdyaXRlIGEgcHJvZ3JhbSB0aGF0IHByaW50cyB0aGUgbnVtYmVycyAxLi4xMDAuCisgICAgLy8g
V2UgZXhwZWN0IERQIHRvIHBvaW50IGF0ICMwLgorICAgIGNvZGUuYXBwZW5kKEFkZENQKTsKKyAg
ICBjb2RlLmFwcGVuZCg2KTsgLy8gZ28gdG8gbG9vcCBib2R5CisgICAgCisgICAgLy8gTG9vcCBy
ZS1lbnRyeToKKyAgICAvLyBXZSBleHBlY3QgRFAgdG8gcG9pbnQgYXQgIzEgYW5kIGZvciAjMSB0
byBiZSBvZmZzZXQgYnkgLTEwMC4KKyAgICBjb2RlLmFwcGVuZChBZGQpOworICAgIGNvZGUuYXBw
ZW5kKDEwMCk7CisgICAgCisgICAgY29kZS5hcHBlbmQoQWRkRFApOworICAgIGNvZGUuYXBwZW5k
KC0xKTsKKyAgICAKKyAgICAvLyBMb29wIGhlYWRlcjoKKyAgICAvLyBXZSBleHBlY3QgRFAgdG8g
cG9pbnQgYXQgIzAuCisgICAgY29kZS5hcHBlbmQoQWRkRFApOworICAgIGNvZGUuYXBwZW5kKDEp
OworICAgIAorICAgIGNvZGUuYXBwZW5kKEFkZCk7CisgICAgY29kZS5hcHBlbmQoMSk7CisgICAg
CisgICAgY29kZS5hcHBlbmQoUHJpbnQpOworICAgIAorICAgIGNvZGUuYXBwZW5kKEFkZCk7Cisg
ICAgY29kZS5hcHBlbmQoLTEwMCk7CisgICAgCisgICAgLy8gV2Ugd2FudCB0byBzdG9wIGlmIGl0
J3MgemVybyBhbmQgY29udGludWUgaWYgaXQncyBub24temVyby4gQWRkQ1AgdGFrZXMgdGhlIGJy
YW5jaCBpZiBpdCdzCisgICAgLy8gbm9uLXplcm8uCisgICAgY29kZS5hcHBlbmQoQWRkQ1ApOwor
ICAgIGNvZGUuYXBwZW5kKC0xMSk7IC8vIGdvIHRvIGxvb3AgcmUtZW50cnkuCisgICAgCisgICAg
Y29kZS5hcHBlbmQoU3RvcCk7CisgICAgCisgICAgaWYgKHNob3VsZEJlVmVyYm9zZSgpKQorICAg
ICAgICBkYXRhTG9nKCJjb2RlID0gIiwgbGlzdER1bXAoY29kZSksICJcbiIpOworICAgIAorICAg
IENIRUNLKCFpbnZva2U8aW50cHRyX3Q+KCppbnRlcnByZXRlciwgZGF0YS5kYXRhKCksIGNvZGUu
ZGF0YSgpLCAmc3RyZWFtKSk7CisgICAgCisgICAgQ0hFQ0soc3RyZWFtLnNpemUoKSA9PSAxMDAp
OworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCAxMDA7ICsraSkKKyAgICAgICAgQ0hFQ0so
c3RyZWFtW2ldID09IGkgKyAxKTsKKyAgICAKKyAgICBpZiAoc2hvdWxkQmVWZXJib3NlKCkpCisg
ICAgICAgIGRhdGFMb2coInN0cmVhbSA9ICIsIGxpc3REdW1wKHN0cmVhbSksICJcbiIpOworfQor
CiB2b2lkIHRlc3RSZWR1Y2VTdHJlbmd0aENoZWNrQm90dG9tVXNlSW5Bbm90aGVyQmxvY2soKQog
ewogICAgIFByb2NlZHVyZSBwcm9jOwpAQCAtMTIxMTAsNyArMTIzNDYsNyBAQCB2b2lkIHRlc3RS
ZWR1Y2VTdHJlbmd0aENoZWNrQm90dG9tVXNlSW5BCiAgICAgICAgICAgICBqaXQucmV0KCk7CiAg
ICAgICAgIH0pOwogICAgIFZhbHVlKiBhcmcgPSBvbmUtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICBvbmUtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxv
Y2sodHdvKSk7CisgICAgb25lLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3Jp
Z2luKCksIEZyZXF1ZW50ZWRCbG9jayh0d28pKTsKICAgICAKICAgICBjaGVjayA9IHR3by0+YXBw
ZW5kTmV3PENoZWNrVmFsdWU+KAogICAgICAgICBwcm9jLCBDaGVja0FkZCwgT3JpZ2luKCksIGFy
ZywKQEAgLTEyMTE5LDcgKzEyMzU1LDcgQEAgdm9pZCB0ZXN0UmVkdWNlU3RyZW5ndGhDaGVja0Jv
dHRvbVVzZUluQQogICAgICAgICBbJl0gKENDYWxsSGVscGVycyYsIGNvbnN0IFN0YWNrbWFwR2Vu
ZXJhdGlvblBhcmFtcyYpIHsKICAgICAgICAgICAgIENIRUNLKCEiU2hvdWxkIG5vdCBleGVjdXRl
Iik7CiAgICAgICAgIH0pOwotICAgIHR3by0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgY2hlY2spOworICAgIHR3by0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrKTsKICAgICAKICAgICBwcm9jLnJlc2V0UmVh
Y2hhYmlsaXR5KCk7CiAgICAgcmVkdWNlU3RyZW5ndGgocHJvYyk7CkBAIC0xMjEzNCwxMSArMTIz
NzAsMTEgQEAgdm9pZCB0ZXN0UmVzZXRSZWFjaGFiaWxpdHlEYW5nbGluZ1JlZmVyZQogICAgIAog
ICAgIFVwc2lsb25WYWx1ZSogdXBzaWxvbiA9IG9uZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4o
CiAgICAgICAgIHByb2MsIE9yaWdpbigpLCBvbmUtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCA0MikpOwotICAgIG9uZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgT29wcywgT3JpZ2luKCkpOworICAgIG9uZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IE9vcHMsIE9yaWdpbigpKTsKICAgICAKICAgICBWYWx1ZSogcGhpID0gdHdvLT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIFBoaSwgSW50MzIsIE9yaWdpbigpKTsKICAgICB1cHNpbG9uLT5zZXRQaGko
cGhpKTsKLSAgICB0d28tPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIE9vcHMsIE9yaWdp
bigpKTsKKyAgICB0d28tPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBPb3BzLCBPcmlnaW4o
KSk7CiAgICAgCiAgICAgcHJvYy5yZXNldFJlYWNoYWJpbGl0eSgpOwogICAgIHZhbGlkYXRlKHBy
b2MpOwpAQCAtMTM1NDcsOCArMTM3ODMsMTMgQEAgdm9pZCBydW4oY29uc3QgY2hhciogZmlsdGVy
KQogICAgIFJVTih0ZXN0U3BpbGxEZWZTbWFsbGVyVGhhblVzZSgpKTsKICAgICBSVU4odGVzdFNw
aWxsVXNlTGFyZ2VyVGhhbkRlZigpKTsKICAgICBSVU4odGVzdExhdGVSZWdpc3RlcigpKTsKKzw8
PDw8PDwgLm1pbmUKKyAgICAKKyAgICBSVU4odGVzdFRocmVhZGVkSW50ZXJwcmV0ZXIoKSk7Cis9
PT09PT09CiAgICAgUlVOKHRlc3RSZWR1Y2VTdHJlbmd0aENoZWNrQm90dG9tVXNlSW5Bbm90aGVy
QmxvY2soKSk7CiAgICAgUlVOKHRlc3RSZXNldFJlYWNoYWJpbGl0eURhbmdsaW5nUmVmZXJlbmNl
KCkpOworPj4+Pj4+PiAucjIwMjgwOQogCiAgICAgaWYgKHRhc2tzLmlzRW1wdHkoKSkKICAgICAg
ICAgdXNhZ2UoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmNw
cAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJD
b2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM1LDYgKzEzNSwxMSBAQCB2b2lkIENvZGU6OmFk
ZEZhc3RUbXAoVG1wIHRtcCkKICAgICBtX2Zhc3RUbXBzLmFkZCh0bXApOwogfQogCit2b2lkKiBD
b2RlOjphZGREYXRhU2VjdGlvbihzaXplX3Qgc2l6ZSkKK3sKKyAgICByZXR1cm4gbV9wcm9jLmFk
ZERhdGFTZWN0aW9uKHNpemUpOworfQorCiB1bnNpZ25lZCBDb2RlOjpqc0hhc2goKSBjb25zdAog
ewogICAgIHVuc2lnbmVkIHJlc3VsdCA9IDA7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvYWlyL0FpckNvZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
YWlyL0FpckNvZGUuaAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJDb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNs
dWRlICJBaXJTcGVjaWFsLmgiCiAjaW5jbHVkZSAiQWlyU3RhY2tTbG90LmgiCiAjaW5jbHVkZSAi
QWlyVG1wLmgiCisjaW5jbHVkZSAiQjNJbmRleE1hcC5oIgogI2luY2x1ZGUgIkIzU3BhcnNlQ29s
bGVjdGlvbi5oIgogI2luY2x1ZGUgIlJlZ2lzdGVyQXRPZmZzZXRMaXN0LmgiCiAjaW5jbHVkZSAi
U3RhY2tBbGlnbm1lbnQuaCIKQEAgLTIwMyw2ICsyMDQsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBh
ZGRGYXN0VG1wKFRtcCk7CiAgICAgYm9vbCBpc0Zhc3RUbXAoVG1wIHRtcCkgY29uc3QgeyByZXR1
cm4gbV9mYXN0VG1wcy5jb250YWlucyh0bXApOyB9CiAgICAgCisgICAgdm9pZCogYWRkRGF0YVNl
Y3Rpb24oc2l6ZV90KTsKKyAgICAKICAgICAvLyBUaGUgbmFtZSBoYXMgdG8gYmUgYSBzdHJpbmcg
bGl0ZXJhbCwgc2luY2Ugd2UgZG9uJ3QgZG8gYW55IG1lbW9yeSBtYW5hZ2VtZW50IGZvciB0aGUg
c3RyaW5nLgogICAgIHZvaWQgc2V0TGFzdFBoYXNlTmFtZShjb25zdCBjaGFyKiBuYW1lKQogICAg
IHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGUuY3Bw
CShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckdl
bmVyYXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgsMTAgKzQ4LDEzIEBACiAjaW5jbHVkZSAi
QWlyVmFsaWRhdGUuaCIKICNpbmNsdWRlICJCM0NvbW1vbi5oIgogI2luY2x1ZGUgIkIzSW5kZXhN
YXAuaCIKKyNpbmNsdWRlICJCM1BvbHlKdW1wVmFsdWUuaCIKICNpbmNsdWRlICJCM1Byb2NlZHVy
ZS5oIgogI2luY2x1ZGUgIkIzVGltaW5nU2NvcGUuaCIKKyNpbmNsdWRlICJCM1ZhbHVlSW5saW5l
cy5oIgogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgogI2luY2x1ZGUgIkRpc2FsbG93TWFjcm9T
Y3JhdGNoUmVnaXN0ZXJVc2FnZS5oIgorI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKIAogbmFtZXNw
YWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7IG5hbWVzcGFjZSBBaXIgewogCkBAIC0xOTYsNyArMTk5
LDggQEAgdm9pZCBnZW5lcmF0ZShDb2RlJiBjb2RlLCBDQ2FsbEhlbHBlcnMmIAogCiAgICAgZm9y
IChCYXNpY0Jsb2NrKiBibG9jayA6IGNvZGUpIHsKICAgICAgICAgYmxvY2tKdW1wc1tibG9ja10u
bGluaygmaml0KTsKLSAgICAgICAgYmxvY2tMYWJlbHNbYmxvY2tdID0gaml0LmxhYmVsKCk7Cisg
ICAgICAgIENDYWxsSGVscGVyczo6TGFiZWwgbGFiZWwgPSBqaXQubGFiZWwoKTsKKyAgICAgICAg
YmxvY2tMYWJlbHNbYmxvY2tdID0gbGFiZWw7CiAgICAgICAgIEFTU0VSVChibG9jay0+c2l6ZSgp
ID49IDEpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYmxvY2stPnNpemUoKSAt
IDE7ICsraSkgewogICAgICAgICAgICAgSW5zdCYgaW5zdCA9IGJsb2NrLT5hdChpKTsKQEAgLTIy
OCwyNiArMjMyLDU0IEBAIHZvaWQgZ2VuZXJhdGUoQ29kZSYgY29kZSwgQ0NhbGxIZWxwZXJzJiAK
ICAgICAgICAgICAgIGFkZEl0ZW0oYmxvY2stPmxhc3QoKSk7CiAgICAgICAgICAgICBjb250aW51
ZTsKICAgICAgICAgfQotCisgICAgICAgIAogICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAganVt
cCA9IGJsb2NrLT5sYXN0KCkuZ2VuZXJhdGUoaml0LCBjb250ZXh0KTsKLSAgICAgICAgc3dpdGNo
IChibG9jay0+bnVtU3VjY2Vzc29ycygpKSB7Ci0gICAgICAgIGNhc2UgMDoKLSAgICAgICAgICAg
IEFTU0VSVCghanVtcC5pc1NldCgpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNl
IDE6Ci0gICAgICAgICAgICBsaW5rKGp1bXAsIGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKSk7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAyOgotICAgICAgICAgICAgbGluayhqdW1w
LCBibG9jay0+c3VjY2Vzc29yQmxvY2soMCkpOwotICAgICAgICAgICAgaWYgKGJsb2NrLT5zdWNj
ZXNzb3JCbG9jaygxKSAhPSBjb2RlLmZpbmROZXh0QmxvY2soYmxvY2spKQotICAgICAgICAgICAg
ICAgIGxpbmsoaml0Lmp1bXAoKSwgYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDEpKTsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICAvLyBUaGUganVtcCB3
b24ndCBiZSBzZXQgZm9yIFBvbHlKdW1wIGJlY2F1c2UgaXQgbGV0cyBpdHMgZmFpdGggaW4gdGhl
IGFkZHJlc3Mgb3BlcmFuZAorICAgICAgICAvLyBndWlkZSB3aGVyZSBpdCBqdW1wcy4gSXQgd29u
J3QgYmUgc2V0IGZvciBPb3BzIGJlY2F1c2UgdGhlbiBpdCB3b24ndCBoYXZlIGFueSBzdWNjZXNz
b3JzLgorICAgICAgICBpZiAoanVtcC5pc1NldCgpKSB7CisgICAgICAgICAgICBzd2l0Y2ggKGJs
b2NrLT5udW1TdWNjZXNzb3JzKCkpIHsKKyAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAg
ICAgICBsaW5rKGp1bXAsIGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKSk7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICAgICAgbGluayhqdW1w
LCBibG9jay0+c3VjY2Vzc29yQmxvY2soMCkpOworICAgICAgICAgICAgICAgIGlmIChibG9jay0+
c3VjY2Vzc29yQmxvY2soMSkgIT0gY29kZS5maW5kTmV4dEJsb2NrKGJsb2NrKSkKKyAgICAgICAg
ICAgICAgICAgICAgbGluayhqaXQuanVtcCgpLCBibG9jay0+c3VjY2Vzc29yQmxvY2soMSkpOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
ICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGFkZEl0ZW0oYmxvY2stPmxhc3Qo
KSk7CiAgICAgfQorICAgIAorICAgIC8vIFRha2UgY2FyZSBvZiBQb2x5SnVtcC4gV2UgZG8gdGhp
cyBsYXN0IGJlY2F1c2UgaXQgcmVsaWVzIG9uIGtub3dpbmcgd2hlcmUgYWxsIG9mIHRoZSBiYXNp
YworICAgIC8vIGJsb2NrIGxhbmRlZC4KKyAgICBmb3IgKEJhc2ljQmxvY2sqIGJsb2NrIDogY29k
ZSkgeworICAgICAgICBpZiAoYmxvY2stPmxhc3QoKS5vcGNvZGUgIT0gUG9seUp1bXApCisgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgCisgICAgICAgIFBvbHlKdW1wVmFsdWUqIHBvbHlK
dW1wID0gYmxvY2stPmxhc3QoKS5vcmlnaW4tPmFzPFBvbHlKdW1wVmFsdWU+KCk7CisgICAgICAg
IFJFTEVBU0VfQVNTRVJUKHBvbHlKdW1wLT5udW1TdWNjZXNzb3JzKCkgPT0gYmxvY2stPm51bVN1
Y2Nlc3NvcnMoKSk7CisgICAgICAgIAorICAgICAgICBSZWZQdHI8U2hhcmVkVGFzazxQb2x5SnVt
cFZhbHVlOjpDYWxsYmFja0Z1bmN0aW9uVHlwZT4+IHRhc2sgPSBwb2x5SnVtcC0+Y2FsbGJhY2tU
YXNrKCk7CisgICAgICAgIGlmICghdGFzaykKKyAgICAgICAgICAgIGNvbnRpbnVlOyAvLyBUaGlz
IHdvdWxkIGJlIHdlaXJkLCBidXQgd2UgYWxsb3cgaXQuCisgICAgICAgIAorICAgICAgICBWZWN0
b3I8Q0NhbGxIZWxwZXJzOjpMYWJlbD4gbGFiZWxzOworICAgICAgICBmb3IgKEJhc2ljQmxvY2sq
IHN1Y2Nlc3NvciA6IGJsb2NrLT5zdWNjZXNzb3JCbG9ja3MoKSkKKyAgICAgICAgICAgIGxhYmVs
cy5hcHBlbmQoYmxvY2tMYWJlbHNbc3VjY2Vzc29yXSk7CisgICAgICAgIAorICAgICAgICBqaXQu
YWRkTGlua1Rhc2soCisgICAgICAgICAgICBbPV0gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsK
KyAgICAgICAgICAgICAgICBWZWN0b3I8TWFjcm9Bc3NlbWJsZXJDb2RlUHRyPiBwb2ludGVyczsK
KyAgICAgICAgICAgICAgICBmb3IgKENDYWxsSGVscGVyczo6TGFiZWwgbGFiZWwgOiBsYWJlbHMp
CisgICAgICAgICAgICAgICAgICAgIHBvaW50ZXJzLmFwcGVuZChsaW5rQnVmZmVyLmxvY2F0aW9u
T2YobGFiZWwpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB0YXNrLT5ydW4o
cG9pbnRlcnMpOworICAgICAgICAgICAgfSk7CisgICAgfQogCiAgICAgcGNUb09yaWdpbk1hcC5h
cHBlbmRJdGVtKGppdC5sYWJlbCgpLCBPcmlnaW4oKSk7CiAgICAgLy8gRklYTUU6IE1ha2UgbGF0
ZSBwYXRocyBoYXZlIE9yaWdpbnM6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNTM2ODkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0LmNw
cAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJ
bnN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDUsNiArNDUsMTEgQEAgYm9vbCBJbnN0OjpoYXNB
cmdFZmZlY3RzKCkKICAgICByZXR1cm4gcmVzdWx0OwogfQogCitib29sIEluc3Q6OmlzQ2xvbmVh
YmxlKCkKK3sKKyAgICByZXR1cm4gIW9yaWdpbiB8fCBvcmlnaW4tPmlzQ2xvbmVhYmxlKCk7Cit9
CisKIHVuc2lnbmVkIEluc3Q6OmpzSGFzaCgpIGNvbnN0CiB7CiAgICAgdW5zaWduZWQgcmVzdWx0
ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG9wY29kZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvYWlyL0Fpckluc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL0Fpckluc3QuaAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL2Fpci9BaXJJbnN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTE4OCw2ICsxODgsMTAg
QEAgcHVibGljOgogICAgIC8vIHJldHVybnMgMiBpZiAwIGFuZCAxIGJlbmVmaXQgZnJvbSBhbGlh
c2luZyB0byBUbXAzLgogICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBzaG91bGRUcnlBbGlhc2luZ0Rl
ZigpOwogICAgIAorICAgIC8vIFNvbWUgaW5zdHVjdGlvbnMgd2lsbCByZWZ1c2UgdG8gYWxsb3cg
Y2xvbmluZy4gSWYgdGhpcyByZXR1cm5zIGZhbHNlLCB5b3UgbXVzdCBtYWtlIHN1cmUgdGhhdAor
ICAgIC8vIHlvdSBuZXZlciBpbnRyb2R1Y2UgY29waWVzIG9mIHRoZSBpbnN0cnVjdGlvbi4KKyAg
ICBib29sIGlzQ2xvbmVhYmxlKCk7CisgICAgCiAgICAgLy8gVGhpcyBjb21wdXRlcyBhIGhhc2gg
Zm9yIGNvbXBhcmluZyB0aGlzIHRvIEpTQWlyJ3MgSW5zdC4KICAgICB1bnNpZ25lZCBqc0hhc2go
KSBjb25zdDsKIApJbmRleDogV2Vic2l0ZXMvd2Via2l0Lm9yZy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2Vic2l0ZXMvd2Via2l0Lm9yZy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMjgwOSkKKysr
IFdlYnNpdGVzL3dlYmtpdC5vcmcvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTQgQEAKKzIwMTYtMDUtMjkgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAg
ICAgICBJbXBsZW1lbnQgdGFibGUtYmFzZWQgc3dpdGNoZXMgaW4gQjMvQWlyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTExNDEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFVwZGF0ZSBkb2N1
bWVudGF0aW9uIGZvciB0aGUgbmV3IFBvbHlKdW1wIG9wY29kZS4KKworICAgICAgICAqIGRvY3Mv
YjMvaW50ZXJtZWRpYXRlLXJlcHJlc2VudGF0aW9uLmh0bWw6CisKIDIwMTYtMDctMDEgIEpvbiBE
YXZpcyAgPGpvbmRAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZGVkIGEgY29sb3JmdWwgbmV3IGlt
YWdlIGFuZCBmaXhlZCB0aGUgT3BlbiBHcmFwaCBhdHRyaWJ1dGUuCkluZGV4OiBXZWJzaXRlcy93
ZWJraXQub3JnL2RvY3MvYjMvaW50ZXJtZWRpYXRlLXJlcHJlc2VudGF0aW9uLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2Vic2l0ZXMvd2Via2l0Lm9yZy9kb2NzL2IzL2ludGVybWVkaWF0ZS1yZXByZXNl
bnRhdGlvbi5odG1sCShyZXZpc2lvbiAyMDI4MDkpCisrKyBXZWJzaXRlcy93ZWJraXQub3JnL2Rv
Y3MvYjMvaW50ZXJtZWRpYXRlLXJlcHJlc2VudGF0aW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTUzNyw2ICs1MzcsMzkgQEAgcGF0Y2hwb2ludC0+c2V0R2VuZXJhdG9yKAogICAgICAgICBhbHNv
IGNvbnRhaW5zIGEgZmFsbC10aHJvdWdoIHRhcmdldCBpbiBjYXNlIHRoZSBjaGlsZCBoYXMgYSB2
YWx1ZSB0aGF0IHdhc24ndCBtZW50aW9uZWQKICAgICAgICAgaW4gdGhlIGNhc2VzIGxpc3QuICBN
dXN0IHVzZSB0aGUgU3dpdGNoVmFsdWUgY2xhc3MuICBNdXN0IGFwcGVhciBhdCB0aGUgZW5kIG9m
IHRoZSBiYXNpYwogICAgICAgICBibG9jay48L2RkPgorICAgICAgCisgICAgICA8ZHQ+Vm9pZCBQ
b2x5SnVtcChJbnRQdHIsIGJsb2Nrcy4uLik8L2R0PgorICAgICAgPGRkPgorICAgICAgICA8cD5K
dW1wcyB0byB0aGUgZ2l2ZW4gYWRkcmVzcy4gVGhlIGNvbXBpbGVyIHdpbGwgYXNzdW1lIHRoYXQg
dGhpcyBqdW1wcyB0byBvbmUgb2YgdGhlIGdpdmVuCisgICAgICAgICAgYmxvY2tzLiBUaGUgY29t
cGlsZXIgbWFrZXMgbm8gYXR0ZW1wdCB0byBwcm92ZSBvciB2YWxpZGF0ZSB0aGF0IHRoZSBwYXNz
ZWQganVtcCBhZGRyZXNzIGlzCisgICAgICAgICAgYWN0dWFsbHkgdGhlIGFkZHJlc3Mgb2YgYW55
IG9mIHRob3NlIGJsb2Nrcy4gTm9uc2Vuc2ljYWwgdGhpbmdzIHdpbGwgaGFwcGVuIGlmIHRoZSBw
YXNzZWQKKyAgICAgICAgICBhZGRyZXNzIGlzIG5vdCB0aGUgYWRkcmVzcyBvZiBvbmUgb2YgdGhl
IGJsb2NrcyBpbiB0aGUgc3VjY2Vzc29yIGxpc3QuIFlvdSBjYW4gYXJyYW5nZSB0bworICAgICAg
ICAgIGdldCB0aGUgYWRkcmVzc2VzIG9mIGJsb2NrcyBieSBwYXNzaW5nIGEgY2FsbGJhY2sgdG8g
UG9seUp1bXAuIFRoaXMgaXMgdXNlZCBpbnRlcm5hbGx5CisgICAgICAgICAgZm9yIGxvd2VyaW5n
IFN3aXRjaCBvcGNvZGVzLiBZb3UgY2FuIGFsc28gdXNlIGl0IGRpcmVjdGx5LjwvcD4KKyAgICAg
IAorICAgICAgICA8cD5Qb2x5SnVtcCBpcyBub3QgY2xvbmVhYmxlLiBGb3IgZWFjaCBQb2x5SnVt
cCB5b3UgY3JlYXRlLCB0aGVyZSB3aWxsIGJlIG9uZSBpbmRpcmVjdAorICAgICAgICAgIGp1bXAg
Z2VuZXJhdGVkLiBUaGlzIGlzIG5lY2Vzc2FyeSB0byBlbnN1cmUgc291bmRuZXNzIG9mIHRoZSBj
YWxsYmFjay4gSWYgdGhlIFBvbHlKdW1wCisgICAgICAgICAgY291bGQgYmUgY2xvbmVkLCB0aGVu
IHRoZSBjYWxsYmFjayB3b3VsZCBnZXQgY2FsbGVkIGZvciBlYWNoIGNsb25lLiBQcmVzdW1hYmx5
LCB5b3UnZAorICAgICAgICAgIGltcGxlbWVudCB0aGUgY2FsbGJhY2sgYnkgcG9wdWxhdGluZyBz
b21lIHRhYmxlIHdpdGggdGhlIGFkZHJlc3NlcyBvZiB0aGUgYmxvY2tzLiBJZiB0aGUKKyAgICAg
ICAgICBjYWxsYmFjayBnZXRzIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyB0aGVuIGl0IG1heSByZXR1
cm4gZGlmZmVyZW50IGFkZHJlc3NlcyBlYWNoIHRpbWUgLQorICAgICAgICAgIHNpbmNlIGFmdGVy
IGNsb25pbmcgYSBQb2x5SnVtcCwgdGhlIGNvbXBpbGVyIG1heSByZXRhcmdldCBhbnkgb2YgaXRz
IHN1Y2Nlc3NvciBlZGdlcy4KKyAgICAgICAgICBUaGlzIHdvdWxkIGJlIGNvbmZ1c2luZywgc2lu
Y2UgdGhlbiB5b3Ugd291bGRuJ3Qga25vdyB3aGF0IHRvIGRvIHdpdGggZGlzY3JlcGFuY2llcyBi
ZXR3ZWVuCisgICAgICAgICAgYWRkcmVzc2VzIHJldHVybmVkIGJ5IHRoZSB2YXJpb3VzIGNhbGxz
IHRvIHRoZSBjYWxsYmFjay4gRGlzYWxsb3dpbmcgY2xvbmluZyBvZiBQb2x5SnVtcAorICAgICAg
ICAgIHNvbHZlcyB0aGlzIHByb2JsZW0uPC9wPgorICAgICAgICAKKyAgICAgICAgPHA+QSBjbG9z
ZWx5IHJlbGF0ZWQgcHJvYmxlbSBpcyB0aGF0IGlmIHlvdSBlbWl0IG11bHRpcGxlIFBvbHlKdW1w
IGluc3RydWN0aW9ucywgdGhlbiBldmVuCisgICAgICAgICAgaWYgdGhleSBpbml0aWFsbHkgc2hh
cmUgdGhlIHNhbWUgc3VjY2Vzc29ycywgeW91IGNhbm5vdCBndWFyYW50ZWUgdGhhdCB0aGV5IHdp
bGwgY29udGludWUKKyAgICAgICAgICB0byBzaGFyZSB0aGUgc2FtZSBzdWNjZXNzb3JzIGFmdGVy
IG9wdGltaXphdGlvbi4gVGhpcyBtZWFucyB0aGF0IFBvbHlKdW1wIGNhbm5vdAorICAgICAgICAg
IGN1cnJlbnRseSBiZSB1c2VkIGZvciBpbXBsZW1lbnRpbmcgZGlyZWN0IHRocmVhZGVkIGludGVy
cHJldGVycywgYXQgbGVhc3Qgbm90IHRoZSBjbGFzc2ljCisgICAgICAgICAga2luZDogdG8gbWFr
ZSBpdCB3b3JrLCB5b3UgaGF2ZSB0byBoYXZlIGEgc2hhcmVkIGRpc3BhdGNoIGJsb2NrIHNvIHRo
YXQgeW91IGhhdmUgYSBzaW5nbGUKKyAgICAgICAgICBQb2x5SnVtcC4gVGhpcyBtaWdodCBiZSBi
ZXR0ZXIgdGhhbiBhIFN3aXRjaC1iYXNlZCBpbnRlcnByZXRlciwgYnV0IGl0J3MgZGVmaW5pdGVs
eSBub3QKKyAgICAgICAgICBhcyBnb29kIGFzIHdoYXQgeW91J2QgZ2V0IHdpdGggR0NDLXN0eWxl
IGNvbXB1dGVkIGdvdG8uPC9wPgorICAgICAgICAKKyAgICAgICAgPHA+UG9seUp1bXAgaXMgc28g
bmFtZWQgdG8gYXZvaWQgY29uZnVzaW9uIHdpdGggY29tcHV0ZWQgZ290b3MgYW5kIGluZGlyZWN0
IGJyYW5jaGVzIGluCisgICAgICAgICAgb3RoZXIgY29tcGlsZXJzLiBJdCBoYXMgc2lnbmlmaWNh
bnQgcmVzdHJpY3Rpb25zIHRoYXQgdGhvc2Ugb3BlcmF0aW9ucyBkbyBub3QgaGF2ZS4gVGhlc2UK
KyAgICAgICAgICByZXN0cmljdGlvbnMgbWFrZSBpdCBlYXNpZXIgZm9yIHRoZSBvcHRpbWl6ZXIg
dG8gd29yayB3aXRoIHNpbmNlIHRoZSBjb250cm9sIGZsb3cgZ2V0cyB0bworICAgICAgICAgIGJl
IGV4cGxpY2l0IChQb2x5SnVtcCBoYXMgYSBmaW5pdGUgc2V0IG9mIHN1Y2Nlc3NvcnMgbGlrZSBh
bnkgb3RoZXIgYmxvY2sgdGVybWluYWwpLjwvcD4KKyAgICAgIDwvZGQ+CiAKICAgICAgIDxkdD5W
b2lkIFJldHVybihUKTwvZHQ+CiAgICAgICA8ZGQ+V29ya3MgZm9yIGFueSB0eXBlIGV4Y2VwdCBW
b2lkLiAgUmV0dXJucyB0aGUgZ2l2ZW4gdmFsdWUgYW5kIHRlcm1pbmF0ZXMgdGhlIHByb2NlZHVy
ZS4KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMjgwOSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE2LTA1LTI5ICBGaWxpcCBQaXpsbyAg
PGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IHRhYmxlLWJhc2VkIHN3aXRj
aGVzIGluIEIzL0FpcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTUxMTQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBqcy9yZWdyZXNzL2JpZ3N3aXRjaC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGpzL3JlZ3Jlc3MvYmlnc3dpdGNoLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jl
c3Mvc2NyaXB0LXRlc3RzL2JpZ3N3aXRjaC5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorCiAy
MDE2LTA3LTA0ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIHNraXAgbWlzYy1idWdzLTg0NzM4OS1qcGVnMjAwMC5qcyBpbiBqc2Mg
c3RyZXNzIHRlc3RzCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2gt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9iaWdz
d2l0Y2gtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAgQEAKK0pTUmVn
cmVzcy9iaWdzd2l0Y2gKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8g
ZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2guaHRtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRG
Ly9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJzY3JpcHQtdGVzdHMvYmlnc3dpdGNoLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2JpZ3N3aXRjaC5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9iaWdz
d2l0Y2guanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10
ZXN0cy9iaWdzd2l0Y2guanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMTEgQEAKK2Z1bmN0
aW9uIGZvbyhvKSB7CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHZhbHVlID0gaSAmIDYzOworICAgICAgICBzd2l0
Y2ggKHZhbHVlKSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmE7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgcmVzdWx0
ICs9IG8uYjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAg
ICByZXN1bHQgKz0gby5jOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzoKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLmQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSA0OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIDU6CisgICAgICAgICAgICByZXN1bHQgKz0gby5mOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSA3OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaDsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDg6CisgICAgICAgICAgICByZXN1bHQg
Kz0gby5pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgOToKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxMDoKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSAxMToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSAxMjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSAxMzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmM7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxNDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
LmQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxNToKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxNjoKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLmY7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAx
NzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSAxODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSAxOToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyMDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyMToKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyMjoKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyMzoK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSAyNDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSAyNToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmM7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSAyNjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmQ7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyNzoKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyODoKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLmY7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyOToKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSAzMDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSAzMToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSAzMjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzMzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
Lms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzNDoKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzNToKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAz
NjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSAzNzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSAzODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmM7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzOToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmQ7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0MDoKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0MToKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLmY7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0MjoK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSA0MzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSA0NDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSA0NToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0NjoKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0NzoKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLmk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0ODoKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSA0OToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSA1MDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSA1MToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1MjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
LmE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1MzoKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLmI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1NDoKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLmM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1
NToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSA1NjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmU7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSA1NzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmY7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1ODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1OToKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLmg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA2MDoKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA2MToK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSA2MjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLno7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworfQorCisoZnVu
Y3Rpb24oKSB7CisgICAgdmFyIG8gPSB7YToxLCBiOjIsIGM6MywgZDo0LCBlOjUsIGY6NiwgZzo3
LCBoOjgsIGk6OSwgajoxMCwgazoxMSwgejoxMDB9OworICAgIHZhciByZXN1bHQgPSAwOworICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKKyAgICAgICAgcmVzdWx0ICs9IGZvbyhv
KTsKKyAgICBpZiAocmVzdWx0ICE9IDc5NjYwMDAwKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJh
ZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9KSgpOworCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282846</attachid>
            <date>2016-07-05 20:15:35 -0700</date>
            <delta_ts>2016-07-05 20:18:32 -0700</delta_ts>
            <desc>maybe it&apos;s done</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>417645</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2NiBA
QAorMjAxNi0wNS0yOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IEltcGxlbWVudCB0YWJsZS1iYXNlZCBzd2l0Y2hlcyBpbiBCMy9BaXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTE0MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgSWYgYSBzd2l0Y2ggc3Rh
dGVtZW50IGdldHMgbGFyZ2UsIGl0J3MgYmV0dGVyIHRvIGV4cHJlc3MgaXQgYXMgYW4gaW5kaXJl
Y3QganVtcCByYXRoZXIgdGhhbgorICAgICAgICB1c2luZyBhIGJpbmFyeSBzd2l0Y2ggKGRpdmlk
ZS1hbmQtY29ucXVlciB0cmVlIG9mIGNvbXBhcmlzb25zIGxlYWRpbmcgdG8gTyhsb2cgbikgYnJh
bmNoZXMgdG8KKyAgICAgICAgZ2V0IHRvIHRoZSBzd2l0Y2ggY2FzZSkuIFdoZW4gZGVhbGluZyB3
aXRoIGludGVnZXIgc3dpdGNoZXMsIEZUTCB3aWxsIGFscmVhZHkgdXNlIHRoZSBCMworICAgICAg
ICBTd2l0Y2ggYW5kIGV4cGVjdCB0aGlzIHRvIGdldCBsb3dlcmVkIGFzIGVmZmljaWVudGx5IGFz
IHBvc3NpYmxlOyBpdCdzIGEgYnVnIHRoYXQgQjMgd2lsbAorICAgICAgICBhbHdheXMgdXNlIGEg
YmluYXJ5IHN3aXRjaCByYXRoZXIgdGhhbiBpbmRpcmVjdCBqdW1wcy4gV2hlbiBkZWFsaW5nIHdp
dGggc3dpdGNoZXMgb3ZlciBzb21lCisgICAgICAgIG1vcmUgc29waGlzdGljYXRlZCB0eXBlcywg
d2UnZCB3YW50IEZUTCB0byBidWlsZCBhbiBpbmRpcmVjdCBqdW1wIHRhYmxlIGl0c2VsZiBhbmQg
dXNlCisgICAgICAgIHNvbWV0aGluZyBsaWtlIGEgaGFzaHRhYmxlIHRvIGZlZWQgaXQuIEluIHRo
YXQgY2FzZSwgdGhlcmUgd2lsbCBiZSBubyBCMyBTd2l0Y2g7IHdlJ2xsIHdhbnQKKyAgICAgICAg
c29tZSBraW5kIG9mIGluZGlyZWN0IGp1bXAgaW5zdHJ1Y3Rpb24uCisgICAgICAgIAorICAgICAg
ICBUaGlzIGltcGxpZXMgdGhhdCB3ZSB3YW50IEIzIHRvIGhhdmUgdGhlIGFiaWxpdHkgdG8gbG93
ZXIgU3dpdGNoIHRvIGluZGlyZWN0IGp1bXBzIGFuZCB0bworICAgICAgICBleHBvc2UgdGhvc2Ug
aW5kaXJlY3QganVtcHMgaW4gSVIgc28gdGhhdCB0aGUgRlRMIGNvdWxkIGRvIGl0cyBvd24gaW5k
aXJlY3QganVtcHMgZm9yCisgICAgICAgIHN3aXRjaGVzIG92ZXIgbW9yZSBjb21wbGljYXRlZCB0
aGluZ3MgbGlrZSBzdHJpbmdzLiBUaGlzIGNoYW5nZSBpbnRyb2R1Y2VzIGFuIGluZGlyZWN0IGp1
bXAKKyAgICAgICAgaW5zdHJ1Y3Rpb24gdG8gQjMgYW5kIGNhbGxzIGl0IFBvbHlKdW1wLiBJdCBo
YXMgc29tZSB1bmlxdWUgc2VtYW50aWNzIHRoYXQgbWFrZSBpdCB2ZXJ5CisgICAgICAgIGRpZmZl
cmVudCBmcm9tICJpbmRpcmVjdCBqdW1wcyIsICJpbmRpcmVjdCBicmFuY2hlcyIsIGFuZCAiY29t
cHV0ZWQgZ290b3MiIC0gYWxsIHRlcm1zIG9mIGFydAorICAgICAgICB1c2VkIGluIG90aGVyIGNv
bXBpbGVycy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaW1wbGVtZW50cyB0aGUgbW9zdCBiYXNp
YyBraW5kIG9mIFN3aXRjaC10by1Qb2x5SnVtcCBsb3dlcmluZyBpbiBCMzo6bG93ZXJNYWNyb3Mo
KS4gQXMKKyAgICAgICAgcGFydCBvZiB0aGUgZXhpc3RpbmcgZGl2aWRlLWFuZC1jb25xdWVyIHRo
YXQgY3JlYXRlcyBicmFuY2hlcywgaWYgaXQgZGV0ZWN0cyB0aGF0IHRoZSBzZXQgb2YKKyAgICAg
ICAgY2FzZXMgc2F0aXNmaWVzIHNvbWUgY29uZGl0aW9ucyAoZGVuc2l0eSBvZiBjYXNlIHZhbHVl
cyBhbmQgdG90YWwgc2l6ZSksIHRoZW4gaXQgd2lsbCBlbWl0IGEKKyAgICAgICAgUG9seUp1bXAu
CisgICAgICAgIAorICAgICAgICBUaGUgcHJvYmxlbSB3aXRoIGNsYXNzaWMgaW5kaXJlY3QganVt
cHMgaXMgdGhhdCB0aGV5IGZvcmNlIHRoZSBjb21waWxlciB0byBiZSBjb25zZXJ2YXRpdmUKKyAg
ICAgICAgYWJvdXQgY29udHJvbCBmbG93LiBUaGUgY29tcGlsZXIgbXVzdCBhc3N1bWUgdGhhdCB0
aGUgaW5kaXJlY3QganVtcCBtYXkgdHJhbnNmZXIgY29udHJvbCBmbG93CisgICAgICAgIHRvIGFu
eSBlc2NhcGVkIGJsb2NrIChibG9jayBsYWJlbGVkIGFzIGJlaW5nIGEgcG9zc2libGUgdGFyZ2V0
IGZvciBpbmRpcmVjdCBqdW1wcywgb3IgaWYgbm8KKyAgICAgICAgc3VjaCBsYWJlbGluZyBpcyBh
dmFpbGFibGUsIHRoZSBjb21waWxlciBtdXN0IGFzc3VtZSB0aGF0IGl0IG1heSB0YXJnZXQgYW55
IGJsb2NrKS4gVGhlIHdvcnN0CisgICAgICAgIHBhcnQgaXMgdGhhdCB0aGUgaW1wbGljaXQgY29u
dHJvbCBmbG93IGVkZ2VzIGZyb20gdGhlIGluZGlyZWN0IGp1bXAgdG8gdGhlIGVzY2FwZWQgYmxv
Y2tzCisgICAgICAgIGNhbm5vdCBiZSBicm9rZW4uIFRoaXMgaW52YWxpZGF0ZXMgYSBwcmluY2lw
bGUgb2YgQjMgSVI6IGFueSBwaGFzZSBtYXkgYnJlYWsgYW55IGNyaXRpY2FsCisgICAgICAgIGVk
Z2UgZm9yIGFueSByZWFzb24uIE91ciBTU0EgY29udmVyc2lvbiB3b3VsZCBicmVhayBpZiB3ZSBy
ZXZva2VkIHRoaXMgZmVhdHVyZS4gSXQncyBhY3R1YWxseQorICAgICAgICBtdWNoIHdvcnNlIHRo
YW4gdGhpcyAtIGJhc2ljYWxseSBhbnkgbG9naWMgb3ZlciBjb250cm9sIGZsb3cgd291bGQgaGF2
ZSB0byBiZSBoYWNrZWQgdG8gZGVhbAorICAgICAgICB3aXRoIHRoZXNlIHVuYnJlYWthYmxlIGVk
Z2VzLiBUaGlzIHdvdWxkIG1lYW4gY2hhbmdpbmcgYWxsIENGRyB0cmFuc2Zvcm1hdGlvbiB1dGls
aXRpZXMgYW5kCisgICAgICAgIHBhc3Nlcy4gV2UgaGF2ZSBhIGxvdCBvZiB0aG9zZSBhbmQgd2Ug
d2FudCBpdCB0byBiZSBlYXN5IHRvIHdyaXRlIG5ldyBvbmVzLgorICAgICAgICAKKyAgICAgICAg
VGhpcyBpcyB3aHkgd2UgdXNlIHNvbWV0aGluZyBuZXcgYW5kIHF1aXRlIGRpZmZlcmVudCBmcm9t
IGNsYXNzaWMgaW5kaXJlY3QganVtcHMuIFBvbHlKdW1wCisgICAgICAgIG1ha2VzIHRoZSBjb250
cm9sIGZsb3cgZWRnZXMgZXhwbGljaXQuIFRoZSBjbGllbnQgbXVzdCBzdXBwbHkgdGhlIHN1Y2Nl
c3NvcnMgd2hlbiBpdCBjcmVhdGVzCisgICAgICAgIHRoZSBQb2x5SnVtcC4gVGhlIGNvbXBpbGVy
IG1heSByZXdpcmUgdGhvc2Ugc3VjY2Vzc29yIGVkZ2VzIHRoZSBzYW1lIHdheSB0aGF0IGl0IHdv
dWxkIHJld2lyZQorICAgICAgICBhbnkgY29udHJvbCBmbG93IGVkZ2VzLiBDb25zZXF1ZW50bHkg
dGhlIHZhc3QgbWFqb3JpdHkgb2YgQ0ZHIHJlYXNvbmluZyBpbiBCMyBpcyB1bmNoYW5nZWQuCisg
ICAgICAgIElmIHlvdSBkb24ndCB3YW50IHRvIHVuZGVyc3RhbmQgUG9seUp1bXAsIGp1c3QgdGhp
bmsgb2YgaXQgbGlrZSB5b3Ugd291bGQgYSBTd2l0Y2ggd2l0aCBhbgorICAgICAgICBvcGFxdWUg
aW5jb21pbmcgdmFsdWUuIFRoaXMgd29ya3MgYmVjYXVzZSB3ZSBkbyBub3QgYWRkIGFueSBub3Rp
b24gb2YgZXNjYXBlZCBiYXNpYyBibG9ja3MuCisgICAgICAgIEluc3RlYWQgb2YgbGV0dGluZyB0
aGUgY2xpZW50IGdldCB0aGUgcG9pbnRlcnMgdG8gYmFzaWMgYmxvY2tzIGJ5IGVzY2FwaW5nIHRo
ZW0gbGlrZSBpbiBMTFZNLAorICAgICAgICB5b3UgY2FuIG9ubHkgZ2V0IHRoZSBwb2ludGVycyBv
ZiB0aGUgc3VjY2Vzc29ycyBvZiBQb2x5SnVtcCBieSByZWdpc3RlcmluZyBhIGNhbGxiYWNrIHdp
dGgKKyAgICAgICAgUG9seUp1bXAuIFRoaXMgY2FsbGJhY2sgZG9lc24ndCBhY3R1YWxseSBnaXZl
IHlvdSB0aGUgYWRkcmVzc2VzIG9mIGJhc2ljIGJsb2Nrcy4gSXQganVzdAorICAgICAgICBnaXZl
cyB5b3UgdGhlIGFkZHJlc3NlcyB3aGVyZSB5b3UgbXVzdCBqdW1wIHRvIHRyYW5zZmVyIGNvbnRy
b2wgZmxvdyBmcm9tIHRoYXQgUG9seUp1bXAgdG8KKyAgICAgICAgaXRzIHN1Y2Nlc3NvcnMuIFRo
aXMgbWVhbnMgdGhhdCB0aGUgbWFnaWMgb2YgUG9seUp1bXAgaXMgY29uZmluZWQgb25seSB0byB0
aGUgUG9seUp1bXAgaXRzZWxmCisgICAgICAgIGFuZCBkb2Vzbid0IGluZmVjdCByZWFzb25pbmcg
YWJvdXQgdGhlIGJhc2ljIGJsb2NrcyB0aGF0IGl0IGp1bXBzIHRvLgorICAgICAgICAKKyAgICAg
ICAgVGhlIG9ubHkgZG93bnNpZGUgaXMgdGhhdCB0aGF0IFBvbHlKdW1wIGlzIG5vdCBjbG9uZWFi
bGUuIFlvdSBjYW4ndCBjbG9uZSBpdCBiZWNhdXNlIGlmIHlvdQorICAgICAgICBkaWQsIHRoZW4g
dGhlIHR3byByZXN1bHRpbmcgUG9seUp1bXBzIG1heSBoYXZlIHRoZWlyIHN1Y2Nlc3NvciBlZGdl
cyByZXdpcmVkIGluZGVwZW5kZW50bHkgb2YKKyAgICAgICAgZWFjaCBvdGhlci4gVGhpcyBjb3Vs
ZCBlYXNpbHkgaGFwcGVuIGlmIHdlIGJyZWFrIGNyaXRpY2FsIGVkZ2VzLiBJZiB0aGF0IGRpZCBo
YXBwZW4gdGhlbiBpdAorICAgICAgICB3b3VsZCBicmVhayB0aGUgY2xpZW50IG9mIFBvbHlKdW1w
OiB0aGV5IHdvdWxkIGhhdmUgYWxyZWFkeSBjcmVhdGVkIHNvbWV0aGluZyBsaWtlIGEganVtcAor
ICAgICAgICB0YWJsZSBhbmQgd2lsbCBiZSBwb3B1bGF0aW5nIGl0IHZpYSB0aGUgY2FsbGJhY2ss
IGJ1dCBub3cgdGhlIGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkIHR3aWNlLAorICAgICAgICBhbmQg
bWF5IHJldHVybiBkaWZmZXJlbnQganVtcCBkZXN0aW5hdGlvbnMgZWFjaCB0aW1lLiBTbywgdGhp
cyBwYXRjaCBpbnRyb2R1Y2VzCisgICAgICAgIFZhbHVlOjppc0Nsb25lYWJsZSgpIGFuZCB0ZWFj
aGVzIGJvdGggb2Ygb3VyIGNvZGUgc3BlY2lhbGl6YXRpb24gb3B0aW1pemF0aW9ucyAodGFpbAor
ICAgICAgICBkdXBsaWNhdGlvbiBhbmQgc2VsZWN0IHNwZWNpYWxpemF0aW9uKSB0byBiYWlsIGlm
IHRoZSBjb2RlIHRoZXkgd2FudCB0byBzcGVjaWFsaXplIGlzIG5vdAorICAgICAgICBjbG9uZWFi
bGUuIFRoaXMgaXMgdG90YWxseSBiZW5pZ24gbW9zdCBvZiB0aGUgdGltZSwgc2luY2UgdGhvc2Ug
b3B0aW1pemF0aW9ucyB1c3VhbGx5IHJ1bgorICAgICAgICBiZWZvcmUgU3dpdGNoIGxvd2VyaW5n
LiBDbGllbnRzIHRoYXQgdXNlIFBvbHlKdW1wIGRpcmVjdGx5IGhhdmUgdG8gYXBwcmVjaWF0ZSB0
aGUgdHJhZGUtb2ZmOgorICAgICAgICBQb2x5SnVtcCBtYXkgZ2FpbiB0aGVtIHNvbWUgcGVyZm9y
bWFuY2UgYnV0IHRoZXkgYXJlIG9wdGluZyBvdXQgb2Ygb3B0aW1pemF0aW9ucyB0aGF0IHVzZQor
ICAgICAgICBjbG9uaW5nLiBBIGNsb3NlIGNvcm9sbGFyeSBvZiB0aGUgbm8tY2xvbmUgcnVsZSBp
cyB0aGF0IHRoZSBjbGllbnQgY2Fubm90IGNyZWF0ZSBtdWx0aXBsZQorICAgICAgICBQb2x5SnVt
cHMgdGhhdCBhcmUgZmVkIGJ5IGEgY29tbW9uIGp1bXAgdGFibGU6IHRoZSBmYWN0IHRoYXQgZWFj
aCBQb2x5SnVtcCBoYXMgYSBjYWxsYmFjaworICAgICAgICB0aGF0IGp1c3QgdGVsbHMgeW91IHRo
ZSBqdW1wIGRlc3RpbmF0aW9ucyBmb3IgaXRzIHN1Y2Nlc3NvciAqZWRnZXMqLCBub3Qgc3VjY2Vz
c29yICpibG9ja3MqLAorICAgICAgICBtZWFucyB0aGF0IGlmIHlvdSBjcmVhdGUgdHdvIFBvbHlK
dW1wcyBhbmQgZ2l2ZSB0aGVtIHRoZSBzYW1lIHN1Y2Nlc3NvciBsaXN0LCB5b3UgYXJlIG5vdAor
ICAgICAgICBndWFyYW50ZWVkIHRoYXQgdGhleSB3aWxsIGdldCB0aGUgc2FtZSBqdW1wIGRlc3Rp
bmF0aW9ucy4gVGhpcyBodXJ0cyBpZiB5b3Ugd2FudCB0byB1c2UKKyAgICAgICAgUG9seUp1bXAg
Zm9yIHRocmVhZGVkIGludGVycHJldGVycyBidXQgaXQncyBoYXJtbGVzcyBmb3Igc3dpdGNoIGxv
d2VyaW5nLiBUaGUgZ29hbCBvZgorICAgICAgICBQb2x5SnVtcCBpcyB0byBiZSBhd2Vzb21lIGZv
ciBzd2l0Y2ggbG93ZXJpbmcgd2hpbGUgbm90IGJyZWFraW5nIHRoZSByZXN0IG9mIHRoZSBjb21w
aWxlciwgc28KKyAgICAgICAgdGhpcyBpcyBwcm9iYWJseSBmaW5lLgorICAgICAgICAKKyAgICAg
ICAgVGhlIGlzQ2xvbmVhYmxlKCkgbWV0aG9kIGN1cnJlbnRseSBvbmx5IHJldHVybnMgdHJ1ZSBm
b3IgUG9seUp1bXAsIGJ1dCBJIGFudGljaXBhdGUgd2Ugd2lsbAorICAgICAgICBhZGQgb3RoZXIg
bm9uLWNsb25lYWJsZSB0aGluZ3MgbGF0ZXIuIEkgdGhpbmsgaXMgaXMgaW5oZXJlbnQgaW4gYSBj
b21waWxlciB0aGF0IGFsbG93cyBzdWNoCisgICAgICAgIGN1c3RvbWl6ZWFiaWxpdHkgZm9yIGl0
cyBjbGllbnRzLiBGb3IgZXhhbXBsZSwgd2UgbWF5IHdhbnQgdG8gYWRkIGEgZmxhZyB0byBQYXRj
aHBvaW50IHRoYXQKKyAgICAgICAgbWFrZXMgaXQgbm9uLWNsb25lYWJsZS4gU29tZXRpbWVzIHdl
IGhhdmUgdG8ganVtcCB0aHJvdWdoIGhvb3BzIGluIHRoZSBGVEwgYmVjYXVzZSBvZiB0aGUKKyAg
ICAgICAgY2xvbmVhYmlsaXR5IG9mIHBhdGNocG9pbnRzLiBUaGlzIGhhcHBlbnMgaW4gT1NSIGV4
aXRzLCB3aGljaCBwYXkgYSBzaWduaWZpY2FudCBtZW1vcnkgY29zdAorICAgICAgICBmb3IgYWRk
aXRpb25hbCBkYXRhIHN0cnVjdHVyZXMgdGhhdCBhcmUgdGhlcmUgaW4gY2FzZSBhbiBleGl0IGdl
dHMgY2xvbmVkLiBJdCBtYXkgYmUgbW9yZQorICAgICAgICBwcm9maXRhYmxlIHRvIGp1c3Qgc2F5
IHRoYXQgT1NSIGV4aXRzIChpLmUuIENoZWNrcyBhbmQgSW52YWxpZGF0aW9uUG9pbnQgUGF0Y2hw
b2ludHMpIGFyZSBub3QKKyAgICAgICAgY2xvbmVhYmxlLiBTdXJlbHkgdGhpcyB3b3VsZCByZWR1
Y2UgdGFpbCBkdXBsaWNhdGlvbiwgYnV0IHRhaWwgZHVwbGljYXRpb24gaXMgbW9zdCBwcm9maXRh
YmxlCisgICAgICAgIHdoZW4gaXQgY2xvbmVzIG9ubHkgYSB0aW55IGFtb3VudCBvZiBjb2RlOyBp
ZiB0aGVyZSdzIGFuIGV4aXQgdGhlbiB3ZSdyZSBub3QgdGFsa2luZyBhYm91dCBhCisgICAgICAg
IHRpbnkgYW1vdW50IG9mIGNvZGUgYW55bW9yZS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaXMg
YSB+MzAlIHNwZWVkLXVwIG9uIG1pY3JvYmVuY2htYXJrcyB0aGF0IGhhdmUgYmlnIHN3aXRjaCBz
dGF0ZW1lbnRzICh+NjAgY2FzZXMpLiBJdCdzCisgICAgICAgIG5vdCBhIHNwZWVkLXVwIG9uIG1h
aW5zdHJlYW0gYmVuY2htYXJrcy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgYWxzbyBhZGRzIGEg
bmV3IHRlc3QgdG8gdGVzdGIzIGZvciBQb2x5SnVtcCwgR2V0LCBhbmQgU2V0LiBUaGUgRlRMIGRv
ZXMgbm90IGN1cnJlbnRseQorICAgICAgICB1c2UgUG9seUp1bXAgZGlyZWN0bHksIGJ1dCB3ZSB3
YW50IHRoaXMgdG8gYmUgcG9zc2libGUuIEl0IGFsc28gZG9lc24ndCB1c2UgR2V0L1NldCBkaXJl
Y3RseQorICAgICAgICBldmVuIHRob3VnaCB3ZSB3YW50IHRoaXMgdG8gYmUgcG9zc2libGUuIEl0
J3MgaW1wb3J0YW50IHRvIHRlc3QgdGhlc2Ugc2luY2Ugb3Bjb2RlcyB0aGF0CisgICAgICAgIHJl
c3VsdCBmcm9tIGxvd2VyaW5nIGRvbid0IGFmZmVjdCBlYXJseSBwaGFzZXMsIHNvIHdlIGNvdWxk
IGhhdmUgcmVncmVzc2lvbnMgaW4gZWFybHkgcGhhc2VzCisgICAgICAgIHJlbGF0ZWQgdG8gdGhl
c2Ugb3Bjb2RlcyB0aGF0IHdvdWxkbid0IGJlIGNhdWdodCBieSBhbnkgSlMgdGVzdC4gU28sIHRo
aXMgYWRkcyBhIHZlcnkgYmFzaWMKKyAgICAgICAgdGhyZWFkZWQgaW50ZXJwcmV0ZXIgdG8gdGVz
dGIzIGZvciBhIEJyYWluZnVjay1zdHlsZSBsYW5ndWFnZSwgYW5kIHRlc3RzIGl0IGJ5IGhhdmlu
ZyBpdCBydW4KKyAgICAgICAgYSBwcm9ncmFtIHRoYXQgcHJpbnRzIHRoZSBudW1iZXJzIDEuLjEw
MCBpbiBhIGxvb3AuIFVubGlrZSBhIHJlYWwgdGhyZWFkZWQgaW50ZXJwcmV0ZXIsIGl0CisgICAg
ICAgIHVzZXMgYSBjb21tb24gZGlzcGF0Y2ggYmxvY2sgcmF0aGVyIHRoYW4gaGF2aW5nIGRpc3Bh
dGNoIGF0IHRoZSB0ZXJtaW51cyBvZiBlYWNoIG9wY29kZS4KKyAgICAgICAgVGhhdCdzIG5lY2Vz
c2FyeSBiZWNhdXNlIFBvbHlKdW1wIGlzIG5vdCBjbG9uZWFibGUuIFRoZSBzdGF0ZSBvZiB0aGUg
aW50ZXJwcmV0ZXIgaXMKKyAgICAgICAgcmVwcmVzZW50ZWQgdXNpbmcgVmFyaWFibGVzIHRoYXQg
d2UgR2V0IGFuZCBTZXQsIHNvIGl0IHRlc3RzIEdldC9TZXQgYXMgd2VsbC4KKworICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9u
Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpqdW1wKToKKyAgICAg
ICAgKiBhc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxl
cjo6am1wX20pOgorICAgICAgICAqIGIzL0IzQmFzaWNCbG9jay5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpCYXNpY0Jsb2NrOjp1cGRhdGVQcmVkZWNlc3NvcnNBZnRlcik6CisgICAgICAgIChKU0M6
OkIzOjpCYXNpY0Jsb2NrOjppc0Nsb25lYWJsZSk6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Js
b2NrOjpkdW1wKToKKyAgICAgICAgKiBiMy9CM0Jhc2ljQmxvY2suaDoKKyAgICAgICAgKEpTQzo6
QjM6OkJhc2ljQmxvY2s6OmZyZXF1ZW5jeSk6CisgICAgICAgICogYjMvQjNDb21tb24uaDoKKyAg
ICAgICAgKEpTQzo6QjM6OmlzNjRCaXQpOgorICAgICAgICAqIGIzL0IzQ29udHJvbFZhbHVlLmg6
CisgICAgICAgICogYjMvQjNEYXRhU2VjdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkIzOjpEYXRh
U2VjdGlvbjo6RGF0YVNlY3Rpb24pOgorICAgICAgICAqIGIzL0IzRHVwbGljYXRlVGFpbHMuY3Bw
OgorICAgICAgICAqIGIzL0IzTG93ZXJNYWNyb3MuY3BwOgorICAgICAgICAqIGIzL0IzTG93ZXJU
b0Fpci5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okxvd2VyVG9BaXI6Omxvd2VyKToKKyAg
ICAgICAgKiBiMy9CM09wY29kZS5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgor
ICAgICAgICAqIGIzL0IzT3Bjb2RlLmg6CisgICAgICAgICogYjMvQjNQb2x5SnVtcFZhbHVlLmNw
cDogQWRkZWQuCisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjp+UG9seUp1bXBWYWx1
ZSk6CisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjphcHBlbmRTdWNjZXNzb3IpOgor
ICAgICAgICAoSlNDOjpCMzo6UG9seUp1bXBWYWx1ZTo6c2V0Q2FsbGJhY2tUYXNrKToKKyAgICAg
ICAgKEpTQzo6QjM6OlBvbHlKdW1wVmFsdWU6OmlzQ2xvbmVhYmxlKToKKyAgICAgICAgKEpTQzo6
QjM6OlBvbHlKdW1wVmFsdWU6OmR1bXBNZXRhKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1w
VmFsdWU6OmNsb25lSW1wbCk6CisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjpQb2x5
SnVtcFZhbHVlKToKKyAgICAgICAgKiBiMy9CM1BvbHlKdW1wVmFsdWUuaDogQWRkZWQuCisgICAg
ICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjphY2NlcHRzKToKKyAgICAgICAgKEpTQzo6QjM6
OlBvbHlKdW1wVmFsdWU6OnNldENhbGxiYWNrKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1w
VmFsdWU6OmNhbGxiYWNrVGFzayk6CisgICAgICAgICogYjMvQjNQcm9jZWR1cmUuY3BwOgorICAg
ICAgICAoSlNDOjpCMzo6UHJvY2VkdXJlOjpjbG9uZSk6CisgICAgICAgICogYjMvQjNQcm9jZWR1
cmUuaDoKKyAgICAgICAgKEpTQzo6QjM6OlByb2NlZHVyZTo6bGFzdFBoYXNlTmFtZSk6CisgICAg
ICAgIChKU0M6OkIzOjpQcm9jZWR1cmU6OmJ5cHJvZHVjdHMpOgorICAgICAgICAqIGIzL0IzUmVk
dWNlU3RyZW5ndGguY3BwOgorICAgICAgICAqIGIzL0IzVmFsaWRhdGUuY3BwOgorICAgICAgICAq
IGIzL0IzVmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6OmVmZmVjdHMpOgorICAg
ICAgICAoSlNDOjpCMzo6VmFsdWU6OmlzQ2xvbmVhYmxlKToKKyAgICAgICAgKEpTQzo6QjM6OlZh
bHVlOjprZXkpOgorICAgICAgICAqIGIzL0IzVmFsdWUuaDoKKyAgICAgICAgKiBiMy9haXIvQWly
Q29kZS5oOgorICAgICAgICAqIGIzL2Fpci9BaXJHZW5lcmF0ZS5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpBaXI6OmdlbmVyYXRlKToKKyAgICAgICAgKiBiMy9haXIvQWlySW5zdC5jcHA6CisgICAg
ICAgIChKU0M6OkIzOjpBaXI6Okluc3Q6Omhhc0FyZ0VmZmVjdHMpOgorICAgICAgICAoSlNDOjpC
Mzo6QWlyOjpJbnN0Ojppc0Nsb25lYWJsZSk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okluc3Q6
OmR1bXApOgorICAgICAgICAqIGIzL2Fpci9BaXJJbnN0Lmg6CisgICAgICAgICogYjMvYWlyL0Fp
ck9wY29kZS5vcGNvZGVzOgorICAgICAgICAqIGIzL3Rlc3RiMy5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpzaG91bGRCZVZlcmJvc2UpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN3aXRjaENoaWxs
RGl2KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RMYXRlUmVnaXN0ZXIpOgorICAgICAgICAoSlND
OjpCMzo6dGhyZWFkZWRJbnRlcnByZXRlclByaW50KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RU
aHJlYWRlZEludGVycHJldGVyKToKKyAgICAgICAgKEpTQzo6QjM6Onplcm8pOgorICAgICAgICAo
SlNDOjpCMzo6cnVuKToKKwogMjAxNi0wNy0wMyAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gRExMcyBhcmUgbWlzc2luZyB2ZXJzaW9uIGluZm9y
bWF0aW9uLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24g
MjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0xNDQsNiArMTQ0LDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAg
ICBiMy9CM1BhdGNocG9pbnRWYWx1ZS5jcHAKICAgICBiMy9CM1BoYXNlU2NvcGUuY3BwCiAgICAg
YjMvQjNQaGlDaGlsZHJlbi5jcHAKKyAgICBiMy9CM1BvbHlKdW1wVmFsdWUuY3BwCiAgICAgYjMv
QjNQcm9jZWR1cmUuY3BwCiAgICAgYjMvQjNQdXJlQ1NFLmNwcAogICAgIGIzL0IzUmVkdWNlRG91
YmxlVG9GbG9hdC5jcHAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lv
biAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTk4OCw2ICsxOTg4LDggQEAK
IAkJREMxN0U4MUExQzlDOTFFOTAwOEE2QUIzIC8qIENDYWxsSGVscGVycy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzE3RTgxNjFDOUM4MDJCMDA4
QTZBQjMgLyogQ0NhbGxIZWxwZXJzLmNwcCAqLzsgfTsKIAkJREMyMTQzMDcxQ0EzMkU1NTAwMEE4
ODY5IC8qIElDU3RhdHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IERDMjE0MzA2MUNBMzJFNTIwMDBBODg2OSAvKiBJQ1N0YXRzLmggKi87IH07CiAJCURD
MjE0MzA4MUNBMzJFNTgwMDBBODg2OSAvKiBJQ1N0YXRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDMjE0MzA1MUNBMzJFNTIwMDBBODg2OSAvKiBJ
Q1N0YXRzLmNwcCAqLzsgfTsKKwkJREM0NTRCODgxQ0ZGNkZFNzAwNEMxOEFGIC8qIEIzUG9seUp1
bXBWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBEQzQ1NEI4NjFDRkY2RkU1MDA0QzE4QUYgLyogQjNQb2x5SnVtcFZhbHVlLmNwcCAqLzsgfTsK
KwkJREM0NTRCODkxQ0ZGNkZFQTAwNEMxOEFGIC8qIEIzUG9seUp1bXBWYWx1ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM0NTRCODcxQ0ZGNkZFNTAw
NEMxOEFGIC8qIEIzUG9seUp1bXBWYWx1ZS5oICovOyB9OwogCQlEQzQ1NEI4QzFEMDBFODIyMDA0
QzE4QUYgLyogQWlyRHVtcEFzSlMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gREM0NTRCOEExRDAwRTgxRjAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmNw
cCAqLzsgfTsKIAkJREM0NTRCOEQxRDAwRTgyNDAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzQ1NEI4QjFEMDBF
ODFGMDA0QzE4QUYgLyogQWlyRHVtcEFzSlMuaCAqLzsgfTsKIAkJREM2MDVCNUQxQ0UyNkVBMDAw
NTkzNzE4IC8qIFByb2ZpbGVyRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gREM2MDVCNTkxQ0UyNkU5ODAwNTkzNzE4IC8qIFByb2ZpbGVyRXZl
bnQuY3BwICovOyB9OwpAQCAtNDIxNiw2ICs0MjE4LDggQEAKIAkJREMxN0U4MTYxQzlDODAyQjAw
OEE2QUIzIC8qIENDYWxsSGVscGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBDQ2FsbEhlbHBlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlE
QzIxNDMwNTFDQTMyRTUyMDAwQTg4NjkgLyogSUNTdGF0cy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBJQ1N0YXRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJREMyMTQzMDYxQ0EzMkU1MjAwMEE4ODY5IC8qIElDU3RhdHMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSUNTdGF0cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlEQzQ1NEI4NjFDRkY2RkU1MDA0QzE4QUYgLyogQjNQb2x5SnVtcFZhbHVlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEIzUG9seUp1bXBWYWx1ZS5jcHA7IHBh
dGggPSBiMy9CM1BvbHlKdW1wVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlEQzQ1NEI4NzFDRkY2RkU1MDA0QzE4QUYgLyogQjNQb2x5SnVtcFZhbHVlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEIzUG9seUp1bXBWYWx1ZS5oOyBwYXRoID0gYjMvQjNQ
b2x5SnVtcFZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDNDU0QjhBMUQw
MEU4MUYwMDRDMThBRiAvKiBBaXJEdW1wQXNKUy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBBaXJEdW1wQXNKUy5jcHA7IHBhdGggPSBiMy9haXIvQWlyRHVtcEFzSlMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzQ1NEI4QjFEMDBFODFGMDA0QzE4
QUYgLyogQWlyRHVtcEFzSlMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQWly
RHVtcEFzSlMuaDsgcGF0aCA9IGIzL2Fpci9BaXJEdW1wQXNKUy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlEQzYwNUI1OTFDRTI2RTk4MDA1OTM3MTggLyogUHJvZmlsZXJFdmVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQcm9maWxlckV2ZW50LmNw
cDsgcGF0aCA9IHByb2ZpbGVyL1Byb2ZpbGVyRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNDc3NSw2ICs0Nzc5LDggQEAKIAkJCQkwRkVDODRFMDFCREFDREFDMDA4MEZG
NzQgLyogQjNQaGFzZVNjb3BlLmggKi8sCiAJCQkJMEYzNzMwOEExQzBCRDI5MTAwMDUyQkZBIC8q
IEIzUGhpQ2hpbGRyZW4uY3BwICovLAogCQkJCTBGMzczMDhCMUMwQkQyOTEwMDA1MkJGQSAvKiBC
M1BoaUNoaWxkcmVuLmggKi8sCisJCQkJREM0NTRCODYxQ0ZGNkZFNTAwNEMxOEFGIC8qIEIzUG9s
eUp1bXBWYWx1ZS5jcHAgKi8sCisJCQkJREM0NTRCODcxQ0ZGNkZFNTAwNEMxOEFGIC8qIEIzUG9s
eUp1bXBWYWx1ZS5oICovLAogCQkJCTBGRUM4NEUxMUJEQUNEQUMwMDgwRkY3NCAvKiBCM1Byb2Nl
ZHVyZS5jcHAgKi8sCiAJCQkJMEZFQzg0RTIxQkRBQ0RBQzAwODBGRjc0IC8qIEIzUHJvY2VkdXJl
LmggKi8sCiAJCQkJMEZFQzg0RTMxQkRBQ0RBQzAwODBGRjc0IC8qIEIzUHJvY2VkdXJlSW5saW5l
cy5oICovLApAQCAtNzE2Myw2ICs3MTY5LDcgQEAKIAkJCQkwRjhGOTQ0MTE2Njc2MzMyMDBENjE5
NzEgLyogQ29kZUJsb2NrSGFzaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDOTdGMzQxODIwMjBE
NzAwMkM5QjI2IC8qIENvZGVCbG9ja0pldHRpc29uaW5nV2F0Y2hwb2ludC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEZEOEEzMTQxN0Q0MzI2QzAwQ0EyQzQwIC8qIENvZGVCbG9ja1NldC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJREM0NTRCODkxQ0ZGNkZFQTAwNEMxOEFGIC8qIEIzUG9seUp1bXBWYWx1
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5NkVCQjMxNjY3NkVGNjAwOEJBREUzIC8qIENvZGVC
bG9ja1dpdGhKSVRUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzdGMTgyMjE2NDA4OEIyMDA2
NDBBNDcgLyogQ29kZUNhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OUNDMEI2MzE4QkU5OTUw
MDA2Q0VCQ0MgLyogQ29kZUdlbmVyYXRvclJlcGxheUlucHV0cy5weSBpbiBIZWFkZXJzICovLApA
QCAtOTQ0Nyw2ICs5NDU0LDcgQEAKIAkJCQk3MDlGQjg2QjFBRTMzNUM2MDAzOUQwNjkgLyogV2Vh
a1NldFByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyQTRFQzkwQjE4NjBENkMyMDA5
NEY3ODIgLyogV3JpdGVCYXJyaWVyQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQzgx
NTBCMTQwNDNDMEUwMENGQTYwMyAvKiBXcml0ZUJhcnJpZXJTdXBwb3J0LmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCURDNDU0Qjg4MUNGRjZGRTcwMDRDMThBRiAvKiBCM1BvbHlKdW1wVmFsdWUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTdFNUFCM0ExNzk5RTRCMjAwRDI4MzNEIC8qIFg4NkRpc2Fz
c2VtYmxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjJCQkQ5NzFDNUZGM0Y1MDAyM0VGMjMg
LyogQjNWYXJpYWJsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NjNDNkQ5QzE1MjExMTFBMDA1
ODVFNEUgLyogWWFyckNhbm9uaWNhbGl6ZVVDUzIuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
QVJNNjQuaAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4NzQsNiArMjg3
NCwxMiBAQCBwdWJsaWM6CiAgICAgICAgIGxvYWQ2NChhZGRyZXNzLCBnZXRDYWNoZWREYXRhVGVt
cFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCkpOwogICAgICAgICBtX2Fzc2VtYmxlci5icihkYXRh
VGVtcFJlZ2lzdGVyKTsKICAgICB9CisgICAgCisgICAgdm9pZCBqdW1wKEJhc2VJbmRleCBhZGRy
ZXNzKQorICAgIHsKKyAgICAgICAgbG9hZDY0KGFkZHJlc3MsIGdldENhY2hlZERhdGFUZW1wUmVn
aXN0ZXJJREFuZEludmFsaWRhdGUoKSk7CisgICAgICAgIG1fYXNzZW1ibGVyLmJyKGRhdGFUZW1w
UmVnaXN0ZXIpOworICAgIH0KIAogICAgIHZvaWQganVtcChBYnNvbHV0ZUFkZHJlc3MgYWRkcmVz
cykKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyWDg2Q29tbW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTIyNjMsNiArMjI2MywxMiBAQCBwdWJsaWM6CiAgICAgICAgIG1f
YXNzZW1ibGVyLmptcF9tKGFkZHJlc3Mub2Zmc2V0LCBhZGRyZXNzLmJhc2UpOwogICAgIH0KIAor
ICAgIC8vIEFkZHJlc3MgaXMgYSBtZW1vcnkgbG9jYXRpb24gY29udGFpbmluZyB0aGUgYWRkcmVz
cyB0byBqdW1wIHRvCisgICAgdm9pZCBqdW1wKEJhc2VJbmRleCBhZGRyZXNzKQorICAgIHsKKyAg
ICAgICAgbV9hc3NlbWJsZXIuam1wX20oYWRkcmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFzZSwgYWRk
cmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZSk7CisgICAgfQorCiAKICAgICAvLyBBcml0aG1ldGlj
IGNvbnRyb2wgZmxvdyBvcGVyYXRpb25zOgogICAgIC8vCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgJKHJldmlzaW9uIDIwMjgwOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTE5ODMsNiArMTk4MywxMSBAQCBwdWJsaWM6CiAgICAgICAgIG1fZm9ybWF0dGVy
Lm9uZUJ5dGVPcChPUF9HUk9VUDVfRXYsIEdST1VQNV9PUF9KTVBOLCBiYXNlLCBvZmZzZXQpOwog
ICAgIH0KICAgICAKKyAgICB2b2lkIGptcF9tKGludCBvZmZzZXQsIFJlZ2lzdGVySUQgYmFzZSwg
UmVnaXN0ZXJJRCBpbmRleCwgaW50IHNjYWxlKQorICAgIHsKKyAgICAgICAgbV9mb3JtYXR0ZXIu
b25lQnl0ZU9wKE9QX0dST1VQNV9FdiwgR1JPVVA1X09QX0pNUE4sIGJhc2UsIGluZGV4LCBzY2Fs
ZSwgb2Zmc2V0KTsKKyAgICB9CisgICAgCiAjaWYgIUNQVShYODZfNjQpCiAgICAgdm9pZCBqbXBf
bShjb25zdCB2b2lkKiBhZGRyZXNzKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0Jhc2ljQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0Jhc2ljQmxvY2suY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAs
NiBAQAogCiAjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrSW5saW5lcy5oIgogI2luY2x1ZGUgIkIzQmFz
aWNCbG9ja1V0aWxzLmgiCi0jaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKICNpbmNsdWRlICJC
M1Byb2NlZHVyZS5oIgogI2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSA8d3Rm
L0xpc3REdW1wLmg+CkBAIC01MiwxMiArNTEsMTQgQEAgQmFzaWNCbG9jazo6fkJhc2ljQmxvY2so
KQogdm9pZCBCYXNpY0Jsb2NrOjphcHBlbmQoVmFsdWUqIHZhbHVlKQogewogICAgIG1fdmFsdWVz
LmFwcGVuZCh2YWx1ZSk7CisgICAgdmFsdWUtPm93bmVyID0gdGhpczsKIH0KIAogdm9pZCBCYXNp
Y0Jsb2NrOjphcHBlbmROb25UZXJtaW5hbChWYWx1ZSogdmFsdWUpCiB7CiAgICAgbV92YWx1ZXMu
YXBwZW5kKG1fdmFsdWVzLmxhc3QoKSk7CiAgICAgbV92YWx1ZXNbbV92YWx1ZXMuc2l6ZSgpIC0g
MV0gPSB2YWx1ZTsKKyAgICB2YWx1ZS0+b3duZXIgPSB0aGlzOwogfQogCiB2b2lkIEJhc2ljQmxv
Y2s6OnJlbW92ZUxhc3QoUHJvY2VkdXJlJiBwcm9jKQpAQCAtODQsOSArODUsNDEgQEAgVmFsdWUq
IEJhc2ljQmxvY2s6OmFwcGVuZEludENvbnN0YW50KFBybwogICAgIHJldHVybiBhcHBlbmRJbnRD
b25zdGFudChwcm9jLCBsaWtlVmFsdWUtPm9yaWdpbigpLCBsaWtlVmFsdWUtPnR5cGUoKSwgdmFs
dWUpOwogfQogCit2b2lkIEJhc2ljQmxvY2s6OmNsZWFyU3VjY2Vzc29ycygpCit7CisgICAgbV9z
dWNjZXNzb3JzLmNsZWFyKCk7Cit9CisKK3ZvaWQgQmFzaWNCbG9jazo6YXBwZW5kU3VjY2Vzc29y
KGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgdGFyZ2V0KQoreworICAgIG1fc3VjY2Vzc29ycy5hcHBl
bmQodGFyZ2V0KTsKK30KKwordm9pZCBCYXNpY0Jsb2NrOjpzZXRTdWNjZXNzb3JzKGNvbnN0IEZy
ZXF1ZW50ZWRCbG9jayYgdGFyZ2V0KQoreworICAgIG1fc3VjY2Vzc29ycy5yZXNpemUoMSk7Cisg
ICAgbV9zdWNjZXNzb3JzWzBdID0gdGFyZ2V0OworfQorCit2b2lkIEJhc2ljQmxvY2s6OnNldFN1
Y2Nlc3NvcnMoY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YWtlbiwgY29uc3QgRnJlcXVlbnRlZEJs
b2NrJiBub3RUYWtlbikKK3sKKyAgICBtX3N1Y2Nlc3NvcnMucmVzaXplKDIpOworICAgIG1fc3Vj
Y2Vzc29yc1swXSA9IHRha2VuOworICAgIG1fc3VjY2Vzc29yc1sxXSA9IG5vdFRha2VuOworfQor
CiBib29sIEJhc2ljQmxvY2s6OnJlcGxhY2VTdWNjZXNzb3IoQmFzaWNCbG9jayogZnJvbSwgQmFz
aWNCbG9jayogdG8pCiB7Ci0gICAgcmV0dXJuIGxhc3QoKS0+YXM8Q29udHJvbFZhbHVlPigpLT5y
ZXBsYWNlU3VjY2Vzc29yKGZyb20sIHRvKTsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAg
IGZvciAoQmFzaWNCbG9jayomIHN1Y2Nlc3NvciA6IHN1Y2Nlc3NvckJsb2NrcygpKSB7CisgICAg
ICAgIGlmIChzdWNjZXNzb3IgPT0gZnJvbSkgeworICAgICAgICAgICAgc3VjY2Vzc29yID0gdG87
CisgICAgICAgICAgICByZXN1bHQgPSB0cnVlOworICAgICAgICAgICAgCisgICAgICAgICAgICAv
LyBLZWVwIGxvb3BpbmcgYmVjYXVzZSBhIHN1Y2Nlc3NvciBtYXkgYmUgbWVudGlvbmVkIG11bHRp
cGxlIHRpbWVzLCBsaWtlIGluIGEgU3dpdGNoLgorICAgICAgICB9CisgICAgfQorICAgIHJldHVy
biByZXN1bHQ7CiB9CiAKIGJvb2wgQmFzaWNCbG9jazo6YWRkUHJlZGVjZXNzb3IoQmFzaWNCbG9j
ayogYmxvY2spCkBAIC0xMDksNiArMTQyLDE1IEBAIHZvaWQgQmFzaWNCbG9jazo6dXBkYXRlUHJl
ZGVjZXNzb3JzQWZ0ZXIKICAgICBCMzo6dXBkYXRlUHJlZGVjZXNzb3JzQWZ0ZXIodGhpcyk7CiB9
CiAKK2Jvb2wgQmFzaWNCbG9jazo6aXNDbG9uZWFibGUoKSBjb25zdAoreworICAgIGZvciAoVmFs
dWUqIHZhbHVlIDogKnRoaXMpIHsKKyAgICAgICAgaWYgKCF2YWx1ZS0+aXNDbG9uZWFibGUoKSkK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisK
IHZvaWQgQmFzaWNCbG9jazo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogewogICAgIG91
dC5wcmludChkdW1wUHJlZml4LCBtX2luZGV4KTsKQEAgLTEyMSw2ICsxNjMsNDIgQEAgdm9pZCBC
YXNpY0Jsb2NrOjpkZWVwRHVtcChjb25zdCBQcm9jZWR1cgogICAgICAgICBvdXQucHJpbnQoIiAg
UHJlZGVjZXNzb3JzOiAiLCBwb2ludGVyTGlzdER1bXAocHJlZGVjZXNzb3JzKCkpLCAiXG4iKTsK
ICAgICBmb3IgKFZhbHVlKiB2YWx1ZSA6ICp0aGlzKQogICAgICAgICBvdXQucHJpbnQoIiAgICAi
LCBCMzo6ZGVlcER1bXAocHJvYywgdmFsdWUpLCAiXG4iKTsKKyAgICBpZiAoc3VjY2Vzc29ycygp
LnNpemUoKSkgeworICAgICAgICBvdXQucHJpbnQoIiAgU3VjY2Vzc29yczogIik7CisgICAgICAg
IGlmIChzaXplKCkpCisgICAgICAgICAgICBsYXN0KCktPmR1bXBTdWNjZXNzb3JzKHRoaXMsIG91
dCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG91dC5wcmludChsaXN0RHVtcChzdWNjZXNz
b3JzKCkpKTsKKyAgICAgICAgb3V0LnByaW50KCJcbiIpOworICAgIH0KK30KKworVmFsdWUqIEJh
c2ljQmxvY2s6OmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShQcm9jZWR1cmUmIHByb2MsIE9wY29kZSBv
cGNvZGUsIE9yaWdpbiBvcmlnaW4pCit7CisgICAgUkVMRUFTRV9BU1NFUlQob3Bjb2RlID09IE9v
cHMpOworICAgIGNsZWFyU3VjY2Vzc29ycygpOworICAgIHJldHVybiBhcHBlbmROZXc8VmFsdWU+
KHByb2MsIG9wY29kZSwgb3JpZ2luKTsKK30KKworVmFsdWUqIEJhc2ljQmxvY2s6OmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShQcm9jZWR1cmUmIHByb2MsIE9wY29kZSBvcGNvZGUsIE9yaWdpbiBvcmln
aW4sIFZhbHVlKiB2YWx1ZSkKK3sKKyAgICBSRUxFQVNFX0FTU0VSVChvcGNvZGUgPT0gUmV0dXJu
KTsKKyAgICBjbGVhclN1Y2Nlc3NvcnMoKTsKKyAgICByZXR1cm4gYXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBvcGNvZGUsIG9yaWdpbiwgdmFsdWUpOworfQorCitWYWx1ZSogQmFzaWNCbG9jazo6YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKFByb2NlZHVyZSYgcHJvYywgT3Bjb2RlIG9wY29kZSwgT3JpZ2lu
IG9yaWdpbiwgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YXJnZXQpCit7CisgICAgUkVMRUFTRV9B
U1NFUlQob3Bjb2RlID09IEp1bXApOworICAgIHNldFN1Y2Nlc3NvcnModGFyZ2V0KTsKKyAgICBy
ZXR1cm4gYXBwZW5kTmV3PFZhbHVlPihwcm9jLCBvcGNvZGUsIG9yaWdpbik7Cit9CisKK1ZhbHVl
KiBCYXNpY0Jsb2NrOjphcHBlbmROZXdDb250cm9sVmFsdWUoUHJvY2VkdXJlJiBwcm9jLCBPcGNv
ZGUgb3Bjb2RlLCBPcmlnaW4gb3JpZ2luLCBWYWx1ZSogcHJlZGljYXRlLCBjb25zdCBGcmVxdWVu
dGVkQmxvY2smIHRha2VuLCBjb25zdCBGcmVxdWVudGVkQmxvY2smIG5vdFRha2VuKQoreworICAg
IFJFTEVBU0VfQVNTRVJUKG9wY29kZSA9PSBCcmFuY2gpOworICAgIHNldFN1Y2Nlc3NvcnModGFr
ZW4sIG5vdFRha2VuKTsKKyAgICByZXR1cm4gYXBwZW5kTmV3PFZhbHVlPihwcm9jLCBvcGNvZGUs
IG9yaWdpbiwgcHJlZGljYXRlKTsKIH0KIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5oCShyZXZpc2lvbiAyMDI4MDkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTQ3LDcgKzQ3LDcgQEAgY2xhc3MgQmFzaWNCbG9jayB7CiBwdWJsaWM6CiAgICAgdHlw
ZWRlZiBWZWN0b3I8VmFsdWUqPiBWYWx1ZUxpc3Q7CiAgICAgdHlwZWRlZiBWZWN0b3I8QmFzaWNC
bG9jayosIDI+IFByZWRlY2Vzc29yTGlzdDsKLSAgICB0eXBlZGVmIFZlY3RvcjxGcmVxdWVudGVk
QmxvY2ssIDI+IFN1Y2Nlc3Nvckxpc3Q7IC8vIFRoaXMgbWF0Y2hlcyBDb250cm9sVmFsdWU6OlN1
Y2Nlc3Nvckxpc3QKKyAgICB0eXBlZGVmIFZlY3RvcjxGcmVxdWVudGVkQmxvY2ssIDI+IFN1Y2Nl
c3Nvckxpc3Q7CiAKICAgICBzdGF0aWMgY29uc3QgY2hhciogY29uc3QgZHVtcFByZWZpeDsKIApA
QCAtNzUsMzAgKzc1LDUxIEBAIHB1YmxpYzoKICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIHJl
cGxhY2VMYXN0KFByb2NlZHVyZSYsIFZhbHVlKik7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBW
YWx1ZVR5cGUsIHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KLSAgICBWYWx1ZVR5cGUqIGFwcGVuZE5l
dyhQcm9jZWR1cmUmLCBBcmd1bWVudHMuLi4pOworICAgIFZhbHVlVHlwZSogYXBwZW5kTmV3KFBy
b2NlZHVyZSYsIEFyZ3VtZW50cyYmLi4uKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBWYWx1ZVR5
cGUsIHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KLSAgICBWYWx1ZVR5cGUqIGFwcGVuZE5ld05vblRl
cm1pbmFsKFByb2NlZHVyZSYsIEFyZ3VtZW50cy4uLik7Ci0KKyAgICBWYWx1ZVR5cGUqIGFwcGVu
ZE5ld05vblRlcm1pbmFsKFByb2NlZHVyZSYsIEFyZ3VtZW50cyYmLi4uKTsKKyAgICAKICAgICBK
U19FWFBPUlRfUFJJVkFURSBWYWx1ZSogYXBwZW5kSW50Q29uc3RhbnQoUHJvY2VkdXJlJiwgT3Jp
Z2luLCBUeXBlLCBpbnQ2NF90IHZhbHVlKTsKICAgICBWYWx1ZSogYXBwZW5kSW50Q29uc3RhbnQo
UHJvY2VkdXJlJiwgVmFsdWUqIGxpa2VWYWx1ZSwgaW50NjRfdCB2YWx1ZSk7CiAKICAgICB2b2lk
IHJlbW92ZUxhc3QoUHJvY2VkdXJlJik7CiAgICAgCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVmFs
dWVUeXBlLCB0eXBlbmFtZS4uLiBBcmd1bWVudHM+Ci0gICAgVmFsdWVUeXBlKiByZXBsYWNlTGFz
dFdpdGhOZXcoUHJvY2VkdXJlJiwgQXJndW1lbnRzLi4uKTsKKyAgICBWYWx1ZVR5cGUqIHJlcGxh
Y2VMYXN0V2l0aE5ldyhQcm9jZWR1cmUmLCBBcmd1bWVudHMmJi4uLik7CiAKLSAgICB1bnNpZ25l
ZCBudW1TdWNjZXNzb3JzKCkgY29uc3Q7Ci0gICAgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBzdWNj
ZXNzb3IodW5zaWduZWQgaW5kZXgpIGNvbnN0OwotICAgIEZyZXF1ZW50ZWRCbG9jayYgc3VjY2Vz
c29yKHVuc2lnbmVkIGluZGV4KTsKLSAgICBjb25zdCBTdWNjZXNzb3JMaXN0JiBzdWNjZXNzb3Jz
KCkgY29uc3Q7Ci0gICAgU3VjY2Vzc29yTGlzdCYgc3VjY2Vzc29ycygpOwotCi0gICAgQmFzaWNC
bG9jayogc3VjY2Vzc29yQmxvY2sodW5zaWduZWQgaW5kZXgpIGNvbnN0OwotICAgIEJhc2ljQmxv
Y2sqJiBzdWNjZXNzb3JCbG9jayh1bnNpZ25lZCBpbmRleCk7Ci0gICAgU3VjY2Vzc29yQ29sbGVj
dGlvbjxCYXNpY0Jsb2NrLCBTdWNjZXNzb3JMaXN0PiBzdWNjZXNzb3JCbG9ja3MoKTsKLSAgICBT
dWNjZXNzb3JDb2xsZWN0aW9uPGNvbnN0IEJhc2ljQmxvY2ssIGNvbnN0IFN1Y2Nlc3Nvckxpc3Q+
IHN1Y2Nlc3NvckJsb2NrcygpIGNvbnN0OworICAgIHVuc2lnbmVkIG51bVN1Y2Nlc3NvcnMoKSBj
b25zdCB7IHJldHVybiBtX3N1Y2Nlc3NvcnMuc2l6ZSgpOyB9CisgICAgY29uc3QgRnJlcXVlbnRl
ZEJsb2NrJiBzdWNjZXNzb3IodW5zaWduZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fc3VjY2Vz
c29yc1tpbmRleF07IH0KKyAgICBGcmVxdWVudGVkQmxvY2smIHN1Y2Nlc3Nvcih1bnNpZ25lZCBp
bmRleCkgeyByZXR1cm4gbV9zdWNjZXNzb3JzW2luZGV4XTsgfQorICAgIGNvbnN0IFN1Y2Nlc3Nv
ckxpc3QmIHN1Y2Nlc3NvcnMoKSBjb25zdCB7IHJldHVybiBtX3N1Y2Nlc3NvcnM7IH0KKyAgICBT
dWNjZXNzb3JMaXN0JiBzdWNjZXNzb3JzKCkgeyByZXR1cm4gbV9zdWNjZXNzb3JzOyB9CisgICAg
CisgICAgdm9pZCBjbGVhclN1Y2Nlc3NvcnMoKTsKKyAgICB2b2lkIGFwcGVuZFN1Y2Nlc3Nvcihj
b25zdCBGcmVxdWVudGVkQmxvY2smKTsKKyAgICB2b2lkIHNldFN1Y2Nlc3NvcnMoY29uc3QgRnJl
cXVlbnRlZEJsb2NrJik7CisgICAgdm9pZCBzZXRTdWNjZXNzb3JzKGNvbnN0IEZyZXF1ZW50ZWRC
bG9jayYsIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYpOworCisgICAgQmFzaWNCbG9jayogc3VjY2Vz
c29yQmxvY2sodW5zaWduZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIHN1Y2Nlc3NvcihpbmRleCku
YmxvY2soKTsgfQorICAgIEJhc2ljQmxvY2sqJiBzdWNjZXNzb3JCbG9jayh1bnNpZ25lZCBpbmRl
eCkgeyByZXR1cm4gc3VjY2Vzc29yKGluZGV4KS5ibG9jaygpOyB9CisgICAgU3VjY2Vzc29yQ29s
bGVjdGlvbjxCYXNpY0Jsb2NrLCBTdWNjZXNzb3JMaXN0PiBzdWNjZXNzb3JCbG9ja3MoKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIFN1Y2Nlc3NvckNvbGxlY3Rpb248QmFzaWNCbG9jaywgU3VjY2Vz
c29yTGlzdD4oc3VjY2Vzc29ycygpKTsKKyAgICB9CisgICAgU3VjY2Vzc29yQ29sbGVjdGlvbjxj
b25zdCBCYXNpY0Jsb2NrLCBjb25zdCBTdWNjZXNzb3JMaXN0PiBzdWNjZXNzb3JCbG9ja3MoKSBj
b25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIFN1Y2Nlc3NvckNvbGxlY3Rpb248Y29uc3QgQmFz
aWNCbG9jaywgU3VjY2Vzc29yTGlzdD4oc3VjY2Vzc29ycygpKTsKKyAgICB9CiAKICAgICBib29s
IHJlcGxhY2VTdWNjZXNzb3IoQmFzaWNCbG9jayogZnJvbSwgQmFzaWNCbG9jayogdG8pOworICAg
IAorICAgIC8vIFRoaXMgaXMgb25seSB2YWxpZCBmb3IgSnVtcCBhbmQgQnJhbmNoLgorICAgIGNv
bnN0IEZyZXF1ZW50ZWRCbG9jayYgdGFrZW4oKSBjb25zdDsKKyAgICBGcmVxdWVudGVkQmxvY2sm
IHRha2VuKCk7CisgICAgLy8gVGhpcyBpcyBvbmx5IHZhbGlkIGZvciBCcmFuY2guCisgICAgY29u
c3QgRnJlcXVlbnRlZEJsb2NrJiBub3RUYWtlbigpIGNvbnN0OworICAgIEZyZXF1ZW50ZWRCbG9j
ayYgbm90VGFrZW4oKSBjb25zdDsKKyAgICAvLyBUaGlzIGlzIG9ubHkgdmFsaWQgZm9yIEJyYW5j
aCBhbmQgU3dpdGNoLgorICAgIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgZmFsbFRocm91Z2goKSBj
b25zdDsKKyAgICBGcmVxdWVudGVkQmxvY2smIGZhbGxUaHJvdWdoKCkgY29uc3Q7CiAKICAgICB1
bnNpZ25lZCBudW1QcmVkZWNlc3NvcnMoKSBjb25zdCB7IHJldHVybiBtX3ByZWRlY2Vzc29ycy5z
aXplKCk7IH0KICAgICBCYXNpY0Jsb2NrKiBwcmVkZWNlc3Nvcih1bnNpZ25lZCBpbmRleCkgY29u
c3QgeyByZXR1cm4gbV9wcmVkZWNlc3NvcnNbaW5kZXhdOyB9CkBAIC0xMTUsMTAgKzEzNiwyNSBA
QCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVQcmVkZWNlc3NvcnNBZnRlcigpOwogCiAgICAgZG91
YmxlIGZyZXF1ZW5jeSgpIGNvbnN0IHsgcmV0dXJuIG1fZnJlcXVlbmN5OyB9CisgICAgCisgICAg
Ym9vbCBpc0Nsb25lYWJsZSgpIGNvbnN0OwogCiAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJikg
Y29uc3Q7CiAgICAgdm9pZCBkZWVwRHVtcChjb25zdCBQcm9jZWR1cmUmLCBQcmludFN0cmVhbSYp
IGNvbnN0OwogCisgICAgLy8gVGhlc2UgYXJlIGRlcHJlY2F0ZWQgbWV0aG9kIGZvciBjb21wYXRp
YmlsaXR5IHdpdGggdGhlIG9sZCBDb250cm9sVmFsdWUgY2xhc3MuIERvbid0IHVzZSB0aGVtCisg
ICAgLy8gaW4gbmV3IGNvZGUuCisgICAgLy8gRklYTUU6IGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNTk0NDAKKyAgICAKKyAgICAvLyBVc2UgdGhpcyBmb3IgT29wcy4K
KyAgICBKU19FWFBPUlRfUFJJVkFURSBWYWx1ZSogYXBwZW5kTmV3Q29udHJvbFZhbHVlKFByb2Nl
ZHVyZSYsIE9wY29kZSwgT3JpZ2luKTsKKyAgICAvLyBVc2UgdGhpcyBmb3IgUmV0dXJuLgorICAg
IEpTX0VYUE9SVF9QUklWQVRFIFZhbHVlKiBhcHBlbmROZXdDb250cm9sVmFsdWUoUHJvY2VkdXJl
JiwgT3Bjb2RlLCBPcmlnaW4sIFZhbHVlKik7CisgICAgLy8gVXNlIHRoaXMgZm9yIEp1bXAuCisg
ICAgSlNfRVhQT1JUX1BSSVZBVEUgVmFsdWUqIGFwcGVuZE5ld0NvbnRyb2xWYWx1ZShQcm9jZWR1
cmUmLCBPcGNvZGUsIE9yaWdpbiwgY29uc3QgRnJlcXVlbnRlZEJsb2NrJik7CisgICAgLy8gVXNl
IHRoaXMgZm9yIEJyYW5jaC4KKyAgICBKU19FWFBPUlRfUFJJVkFURSBWYWx1ZSogYXBwZW5kTmV3
Q29udHJvbFZhbHVlKFByb2NlZHVyZSYsIE9wY29kZSwgT3JpZ2luLCBWYWx1ZSosIGNvbnN0IEZy
ZXF1ZW50ZWRCbG9jayYsIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYpOworICAgIAogcHJpdmF0ZToK
ICAgICBmcmllbmQgY2xhc3MgQmxvY2tJbnNlcnRpb25TZXQ7CiAgICAgZnJpZW5kIGNsYXNzIElu
c2VydGlvblNldDsKQEAgLTEzMCw2ICsxNjYsNyBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1f
aW5kZXg7CiAgICAgVmFsdWVMaXN0IG1fdmFsdWVzOwogICAgIFByZWRlY2Vzc29yTGlzdCBtX3By
ZWRlY2Vzc29yczsKKyAgICBTdWNjZXNzb3JMaXN0IG1fc3VjY2Vzc29yczsKICAgICBkb3VibGUg
bV9mcmVxdWVuY3k7CiB9OwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYXNp
Y0Jsb2NrSW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0Jhc2ljQmxvY2tJbmxpbmVzLmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2tJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDc4
ICsyOSw2OCBAQAogI2lmIEVOQUJMRShCM19KSVQpCiAKICNpbmNsdWRlICJCM0Jhc2ljQmxvY2su
aCIKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJlSW5s
aW5lcy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIAogdGVtcGxhdGU8dHlw
ZW5hbWUgVmFsdWVUeXBlLCB0eXBlbmFtZS4uLiBBcmd1bWVudHM+Ci1WYWx1ZVR5cGUqIEJhc2lj
QmxvY2s6OmFwcGVuZE5ldyhQcm9jZWR1cmUmIHByb2NlZHVyZSwgQXJndW1lbnRzLi4uIGFyZ3Vt
ZW50cykKK1ZhbHVlVHlwZSogQmFzaWNCbG9jazo6YXBwZW5kTmV3KFByb2NlZHVyZSYgcHJvY2Vk
dXJlLCBBcmd1bWVudHMmJi4uLiBhcmd1bWVudHMpCiB7Ci0gICAgVmFsdWVUeXBlKiByZXN1bHQg
PSBwcm9jZWR1cmUuYWRkPFZhbHVlVHlwZT4oYXJndW1lbnRzLi4uKTsKKyAgICBWYWx1ZVR5cGUq
IHJlc3VsdCA9IHByb2NlZHVyZS5hZGQ8VmFsdWVUeXBlPihzdGQ6OmZvcndhcmQ8QXJndW1lbnRz
Pihhcmd1bWVudHMpLi4uKTsKICAgICBhcHBlbmQocmVzdWx0KTsKICAgICByZXR1cm4gcmVzdWx0
OwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWYWx1ZVR5cGUsIHR5cGVuYW1lLi4uIEFyZ3VtZW50
cz4KLVZhbHVlVHlwZSogQmFzaWNCbG9jazo6YXBwZW5kTmV3Tm9uVGVybWluYWwoUHJvY2VkdXJl
JiBwcm9jZWR1cmUsIEFyZ3VtZW50cy4uLiBhcmd1bWVudHMpCitWYWx1ZVR5cGUqIEJhc2ljQmxv
Y2s6OmFwcGVuZE5ld05vblRlcm1pbmFsKFByb2NlZHVyZSYgcHJvY2VkdXJlLCBBcmd1bWVudHMm
Ji4uLiBhcmd1bWVudHMpCiB7Ci0gICAgVmFsdWVUeXBlKiByZXN1bHQgPSBwcm9jZWR1cmUuYWRk
PFZhbHVlVHlwZT4oYXJndW1lbnRzLi4uKTsKKyAgICBWYWx1ZVR5cGUqIHJlc3VsdCA9IHByb2Nl
ZHVyZS5hZGQ8VmFsdWVUeXBlPihzdGQ6OmZvcndhcmQ8QXJndW1lbnRzPihhcmd1bWVudHMpLi4u
KTsKICAgICBhcHBlbmROb25UZXJtaW5hbChyZXN1bHQpOwogICAgIHJldHVybiByZXN1bHQ7CiB9
CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5hbWUuLi4gQXJndW1lbnRzPgot
VmFsdWVUeXBlKiBCYXNpY0Jsb2NrOjpyZXBsYWNlTGFzdFdpdGhOZXcoUHJvY2VkdXJlJiBwcm9j
ZWR1cmUsIEFyZ3VtZW50cy4uLiBhcmd1bWVudHMpCitWYWx1ZVR5cGUqIEJhc2ljQmxvY2s6OnJl
cGxhY2VMYXN0V2l0aE5ldyhQcm9jZWR1cmUmIHByb2NlZHVyZSwgQXJndW1lbnRzJiYuLi4gYXJn
dW1lbnRzKQogewotICAgIFZhbHVlVHlwZSogcmVzdWx0ID0gcHJvY2VkdXJlLmFkZDxWYWx1ZVR5
cGU+KGFyZ3VtZW50cy4uLik7CisgICAgVmFsdWVUeXBlKiByZXN1bHQgPSBwcm9jZWR1cmUuYWRk
PFZhbHVlVHlwZT4oc3RkOjpmb3J3YXJkPEFyZ3VtZW50cz4oYXJndW1lbnRzKS4uLik7CiAgICAg
cmVwbGFjZUxhc3QocHJvY2VkdXJlLCByZXN1bHQpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAK
LWlubGluZSB1bnNpZ25lZCBCYXNpY0Jsb2NrOjpudW1TdWNjZXNzb3JzKCkgY29uc3QKK2NvbnN0
IEZyZXF1ZW50ZWRCbG9jayYgQmFzaWNCbG9jazo6dGFrZW4oKSBjb25zdAogewotICAgIHJldHVy
biBsYXN0KCktPmFzPENvbnRyb2xWYWx1ZT4oKS0+bnVtU3VjY2Vzc29ycygpOworICAgIEFTU0VS
VChsYXN0KCktPm9wY29kZSgpID09IEp1bXAgfHwgbGFzdCgpLT5vcGNvZGUoKSA9PSBCcmFuY2gp
OworICAgIHJldHVybiBtX3N1Y2Nlc3NvcnNbMF07CiB9CiAKLWlubGluZSBjb25zdCBGcmVxdWVu
dGVkQmxvY2smIEJhc2ljQmxvY2s6OnN1Y2Nlc3Nvcih1bnNpZ25lZCBpbmRleCkgY29uc3QKK0Zy
ZXF1ZW50ZWRCbG9jayYgQmFzaWNCbG9jazo6dGFrZW4oKQogewotICAgIHJldHVybiBsYXN0KCkt
PmFzPENvbnRyb2xWYWx1ZT4oKS0+c3VjY2Vzc29yKGluZGV4KTsKKyAgICBBU1NFUlQobGFzdCgp
LT5vcGNvZGUoKSA9PSBKdW1wIHx8IGxhc3QoKS0+b3Bjb2RlKCkgPT0gQnJhbmNoKTsKKyAgICBy
ZXR1cm4gbV9zdWNjZXNzb3JzWzBdOwogfQogCi1pbmxpbmUgRnJlcXVlbnRlZEJsb2NrJiBCYXNp
Y0Jsb2NrOjpzdWNjZXNzb3IodW5zaWduZWQgaW5kZXgpCitjb25zdCBGcmVxdWVudGVkQmxvY2sm
IEJhc2ljQmxvY2s6Om5vdFRha2VuKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbGFzdCgpLT5hczxD
b250cm9sVmFsdWU+KCktPnN1Y2Nlc3NvcihpbmRleCk7CisgICAgQVNTRVJUKGxhc3QoKS0+b3Bj
b2RlKCkgPT0gQnJhbmNoKTsKKyAgICByZXR1cm4gbV9zdWNjZXNzb3JzWzFdOwogfQogCi1pbmxp
bmUgY29uc3QgQmFzaWNCbG9jazo6U3VjY2Vzc29yTGlzdCYgQmFzaWNCbG9jazo6c3VjY2Vzc29y
cygpIGNvbnN0CitGcmVxdWVudGVkQmxvY2smIEJhc2ljQmxvY2s6Om5vdFRha2VuKCkKIHsKLSAg
ICByZXR1cm4gbGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCktPnN1Y2Nlc3NvcnMoKTsKKyAgICBB
U1NFUlQobGFzdCgpLT5vcGNvZGUoKSA9PSBCcmFuY2gpOworICAgIHJldHVybiBtX3N1Y2Nlc3Nv
cnNbMV07CiB9CiAKLWlubGluZSBCYXNpY0Jsb2NrOjpTdWNjZXNzb3JMaXN0JiBCYXNpY0Jsb2Nr
OjpzdWNjZXNzb3JzKCkKK2NvbnN0IEZyZXF1ZW50ZWRCbG9jayYgQmFzaWNCbG9jazo6ZmFsbFRo
cm91Z2goKSBjb25zdAogewotICAgIHJldHVybiBsYXN0KCktPmFzPENvbnRyb2xWYWx1ZT4oKS0+
c3VjY2Vzc29ycygpOworICAgIEFTU0VSVChsYXN0KCktPm9wY29kZSgpID09IEJyYW5jaCB8fCBs
YXN0KCktPm9wY29kZSgpID09IFN3aXRjaCk7CisgICAgcmV0dXJuIG1fc3VjY2Vzc29ycy5sYXN0
KCk7CiB9CiAKLWlubGluZSBCYXNpY0Jsb2NrKiBCYXNpY0Jsb2NrOjpzdWNjZXNzb3JCbG9jayh1
bnNpZ25lZCBpbmRleCkgY29uc3QKK0ZyZXF1ZW50ZWRCbG9jayYgQmFzaWNCbG9jazo6ZmFsbFRo
cm91Z2goKQogewotICAgIHJldHVybiBzdWNjZXNzb3IoaW5kZXgpLmJsb2NrKCk7Ci19Ci0KLWlu
bGluZSBCYXNpY0Jsb2NrKiYgQmFzaWNCbG9jazo6c3VjY2Vzc29yQmxvY2sodW5zaWduZWQgaW5k
ZXgpCi17Ci0gICAgcmV0dXJuIHN1Y2Nlc3NvcihpbmRleCkuYmxvY2soKTsKLX0KLQotaW5saW5l
IFN1Y2Nlc3NvckNvbGxlY3Rpb248QmFzaWNCbG9jaywgQmFzaWNCbG9jazo6U3VjY2Vzc29yTGlz
dD4gQmFzaWNCbG9jazo6c3VjY2Vzc29yQmxvY2tzKCkKLXsKLSAgICByZXR1cm4gU3VjY2Vzc29y
Q29sbGVjdGlvbjxCYXNpY0Jsb2NrLCBTdWNjZXNzb3JMaXN0PihzdWNjZXNzb3JzKCkpOwotfQot
Ci1pbmxpbmUgU3VjY2Vzc29yQ29sbGVjdGlvbjxjb25zdCBCYXNpY0Jsb2NrLCBjb25zdCBCYXNp
Y0Jsb2NrOjpTdWNjZXNzb3JMaXN0PiBCYXNpY0Jsb2NrOjpzdWNjZXNzb3JCbG9ja3MoKSBjb25z
dAotewotICAgIHJldHVybiBTdWNjZXNzb3JDb2xsZWN0aW9uPGNvbnN0IEJhc2ljQmxvY2ssIGNv
bnN0IFN1Y2Nlc3Nvckxpc3Q+KHN1Y2Nlc3NvcnMoKSk7CisgICAgQVNTRVJUKGxhc3QoKS0+b3Bj
b2RlKCkgPT0gQnJhbmNoIHx8IGxhc3QoKS0+b3Bjb2RlKCkgPT0gU3dpdGNoKTsKKyAgICByZXR1
cm4gbV9zdWNjZXNzb3JzLmxhc3QoKTsKIH0KIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCbG9ja0luc2VydGlvblNldC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmxvY2tJbnNlcnRpb25TZXQu
Y3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCbG9j
a0luc2VydGlvblNldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc4LDggKzc4LDggQEAgQmFzaWNC
bG9jayogQmxvY2tJbnNlcnRpb25TZXQ6OnNwbGl0Rm9ydwogICAgICAgICByZXN1bHQtPm1fdmFs
dWVzW2ldID0gYmxvY2stPm1fdmFsdWVzW2ldOwogCiAgICAgLy8gTWFrZSB0aGUgbmV3IGJsb2Nr
IGp1bXAgdG8gJ2Jsb2NrJy4KLSAgICByZXN1bHQtPm1fdmFsdWVzW3ZhbHVlSW5kZXhdID0KLSAg
ICAgICAgbV9wcm9jLmFkZDxDb250cm9sVmFsdWU+KEp1bXAsIHZhbHVlLT5vcmlnaW4oKSwgRnJl
cXVlbnRlZEJsb2NrKGJsb2NrKSk7CisgICAgcmVzdWx0LT5tX3ZhbHVlc1t2YWx1ZUluZGV4XSA9
IG1fcHJvYy5hZGQ8VmFsdWU+KEp1bXAsIHZhbHVlLT5vcmlnaW4oKSk7CisgICAgcmVzdWx0LT5z
ZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhibG9jaykpOwogCiAgICAgLy8gSWYgd2UgaGFk
IGluc2VydGVkIHRoaW5ncyBpbnRvICdibG9jaycgYmVmb3JlIHRoaXMsIGV4ZWN1dGUgdGhvc2Ug
aW5zZXJ0aW9ucyBub3cuCiAgICAgaWYgKGluc2VydGlvblNldCkKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0JyZWFrQ3JpdGljYWxFZGdlcy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQnJlYWtDcml0aWNhbEVkZ2VzLmNwcAkocmV2aXNpb24g
MjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQnJlYWtDcml0aWNhbEVkZ2Vz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNiBAQAogCiAjaW5jbHVkZSAiQjNCYXNp
Y0Jsb2NrSW5saW5lcy5oIgogI2luY2x1ZGUgIkIzQmxvY2tJbnNlcnRpb25TZXQuaCIKLSNpbmNs
dWRlICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJlSW5saW5lcy5oIgog
I2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCiAKQEAgLTUwLDggKzQ5LDggQEAgdm9pZCBicmVh
a0NyaXRpY2FsRWRnZXMoUHJvY2VkdXJlJiBwcm9jKQogCiAgICAgICAgICAgICBCYXNpY0Jsb2Nr
KiBwYWQgPQogICAgICAgICAgICAgICAgIGluc2VydGlvblNldC5pbnNlcnRCZWZvcmUoc3VjY2Vz
c29yLCBzdWNjZXNzb3ItPmZyZXF1ZW5jeSgpKTsKLSAgICAgICAgICAgIHBhZC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCi0gICAgICAgICAgICAgICAgcHJvYywgSnVtcCwgc3VjY2Vzc29yLT5h
dCgwKS0+b3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhzdWNjZXNzb3IpKTsKKyAgICAgICAgICAg
IHBhZC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBKdW1wLCBzdWNjZXNzb3ItPmF0KDApLT5vcmln
aW4oKSk7CisgICAgICAgICAgICBwYWQtPnNldFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2NrKHN1
Y2Nlc3NvcikpOwogICAgICAgICAgICAgcGFkLT5hZGRQcmVkZWNlc3NvcihibG9jayk7CiAgICAg
ICAgICAgICBzdWNjZXNzb3ItPnJlcGxhY2VQcmVkZWNlc3NvcihibG9jaywgcGFkKTsKICAgICAg
ICAgICAgIHN1Y2Nlc3NvciA9IHBhZDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0Nhc2VDb2xsZWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNDYXNlQ29sbGVjdGlvbi5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNDYXNlQ29sbGVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0
NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQjNDYXNlQ29sbGVjdGlvbi5oIgorCisjaWYgRU5B
QkxFKEIzX0pJVCkKKworI2luY2x1ZGUgIkIzQ2FzZUNvbGxlY3Rpb25JbmxpbmVzLmgiCisjaW5j
bHVkZSA8d3RmL0NvbW1hUHJpbnRlci5oPgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIz
IHsKKwordm9pZCBDYXNlQ29sbGVjdGlvbjo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAor
eworICAgIENvbW1hUHJpbnRlciBjb21tYTsKKyAgICBmb3IgKFN3aXRjaENhc2Ugc3dpdGNoQ2Fz
ZSA6ICp0aGlzKQorICAgICAgICBvdXQucHJpbnQoY29tbWEsIHN3aXRjaENhc2UpOworICAgIG91
dC5wcmludChjb21tYSwgImRlZmF1bHQtPiIsIGZhbGxUaHJvdWdoKCkpOworfQorCit9IH0gLy8g
bmFtZXNwYWNlIEpTQzo6QjMKKworI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCisKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nhc2VDb2xsZWN0aW9uLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2FzZUNvbGxlY3Rpb24uaAkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nhc2VDb2xsZWN0aW9uLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwxMjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2lmbmRlZiBCM0Nhc2VDb2xsZWN0aW9uX2gKKyNkZWZpbmUgQjNDYXNl
Q29sbGVjdGlvbl9oCisKKyNpZiBFTkFCTEUoQjNfSklUKQorCisjaW5jbHVkZSAiQjNTd2l0Y2hD
YXNlLmgiCisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeworCitjbGFzcyBCYXNpY0Js
b2NrOworY2xhc3MgU3dpdGNoVmFsdWU7CisKKy8vIE5PVEU6IFlvdSdsbCBhbHdheXMgd2FudCB0
byBpbmNsdWRlIEIzQ2FzZUNvbGxlY3Rpb25JbmxpbmVzLmggd2hlbiB5b3UgdXNlIHRoaXMuCisK
K2NsYXNzIENhc2VDb2xsZWN0aW9uIHsKK3B1YmxpYzoKKyAgICBDYXNlQ29sbGVjdGlvbigpCisg
ICAgeworICAgIH0KKyAgICAKKyAgICBDYXNlQ29sbGVjdGlvbihTd2l0Y2hWYWx1ZSogdGVybWlu
YWwsIEJhc2ljQmxvY2sqIG93bmVyKQorICAgICAgICA6IG1fc3dpdGNoKHRlcm1pbmFsKQorICAg
ICAgICAsIG1fb3duZXIob3duZXIpCisgICAgeworICAgIH0KKyAgICAKKyAgICBjb25zdCBGcmVx
dWVudGVkQmxvY2smIGZhbGxUaHJvdWdoKCkgY29uc3Q7CisKKyAgICB1bnNpZ25lZCBzaXplKCkg
Y29uc3Q7CisgICAgU3dpdGNoQ2FzZSBhdCh1bnNpZ25lZCBpbmRleCkgY29uc3Q7CisgICAgCisg
ICAgU3dpdGNoQ2FzZSBvcGVyYXRvcltdKHVuc2lnbmVkIGluZGV4KSBjb25zdAorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGF0KGluZGV4KTsKKyAgICB9CisKKyAgICBjbGFzcyBpdGVyYXRvciB7Cisg
ICAgcHVibGljOgorICAgICAgICBpdGVyYXRvcigpCisgICAgICAgICAgICA6IG1fc3dpdGNoKG51
bGxwdHIpCisgICAgICAgICAgICAsIG1faW5kZXgoMCkKKyAgICAgICAgeworICAgICAgICB9CisK
KyAgICAgICAgaXRlcmF0b3IoY29uc3QgU3dpdGNoVmFsdWUmIHN3aXRjaFZhbHVlLCB1bnNpZ25l
ZCBpbmRleCkKKyAgICAgICAgICAgIDogbV9zd2l0Y2goJnN3aXRjaFZhbHVlKQorICAgICAgICAg
ICAgLCBtX2luZGV4KGluZGV4KQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBTd2l0
Y2hDYXNlIG9wZXJhdG9yKigpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtX3N3aXRj
aC0+YXQobV9pbmRleCk7CisgICAgICAgIH0KKworICAgICAgICBpdGVyYXRvciYgb3BlcmF0b3Ir
KygpCisgICAgICAgIHsKKyAgICAgICAgICAgIG1faW5kZXgrKzsKKyAgICAgICAgICAgIHJldHVy
biAqdGhpczsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBpdGVy
YXRvciYgb3RoZXIpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VSVChtX3N3aXRj
aCA9PSBvdGhlci5tX3N3aXRjaCk7CisgICAgICAgICAgICByZXR1cm4gbV9pbmRleCA9PSBvdGhl
ci5tX2luZGV4OworICAgICAgICB9CisKKyAgICAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IGl0
ZXJhdG9yJiBvdGhlcikgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICEoKnRo
aXMgPT0gb3RoZXIpOworICAgICAgICB9CisKKyAgICBwcml2YXRlOgorICAgICAgICBjb25zdCBT
d2l0Y2hWYWx1ZSogbV9zd2l0Y2g7CisgICAgICAgIHVuc2lnbmVkIG1faW5kZXg7CisgICAgfTsK
KworICAgIHR5cGVkZWYgaXRlcmF0b3IgY29uc3RfaXRlcmF0b3I7CisKKyAgICBpdGVyYXRvciBi
ZWdpbigpIGNvbnN0IHsgcmV0dXJuIGl0ZXJhdG9yKCp0aGlzLCAwKTsgfQorICAgIGl0ZXJhdG9y
IGVuZCgpIGNvbnN0IHsgcmV0dXJuIGl0ZXJhdG9yKCp0aGlzLCBzaXplKCkpOyB9CisgICAgCisg
ICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CisgICAgCitwcml2YXRlOgorICAgIFN3
aXRjaFZhbHVlKiBtX3N3aXRjaCB7IG51bGxwdHIgfTsKKyAgICBCYXNpY0Jsb2NrKiBtX293bmVy
IHsgbnVsbHB0ciB9OworfTsKKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzCisKKyNlbmRpZiAv
LyBFTkFCTEUoQjNfSklUKQorCisjZW5kaWYgLy8gQjNDYXNlQ29sbGVjdGlvbl9oCisKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nhc2VDb2xsZWN0aW9uSW5saW5l
cy5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2FzZUNvbGxl
Y3Rpb25JbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEIzQ2FzZUNvbGxl
Y3Rpb25JbmxpbmVzX2gKKyNkZWZpbmUgQjNDYXNlQ29sbGVjdGlvbklubGluZXNfaAorCisjaWYg
RU5BQkxFKEIzX0pJVCkKKworI2luY2x1ZGUgIkIzQ2FzZUNvbGxlY3Rpb24uaCIKKyNpbmNsdWRl
ICJCM1N3aXRjaFZhbHVlLmgiCisjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrLmgiCisKK25hbWVzcGFj
ZSBKU0MgeyBuYW1lc3BhY2UgQjMgeworCitpbmxpbmUgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBD
YXNlQ29sbGVjdGlvbjo6ZmFsbFRocm91Z2goKSBjb25zdAoreworICAgIHJldHVybiBtX293bmVy
LT5mYWxsVGhyb3VnaCgpOworfQorCitpbmxpbmUgdW5zaWduZWQgQ2FzZUNvbGxlY3Rpb246OnNp
emUoKSBjb25zdAoreworICAgIHJldHVybiBtX3N3aXRjaC0+bnVtQ2FzZVZhbHVlcygpOworfQor
CitpbmxpbmUgU3dpdGNoQ2FzZSBDYXNlQ29sbGVjdGlvbjo6YXQodW5zaWduZWQgaW5kZXgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIFN3aXRjaENhc2UobV9zd2l0Y2gtPmNhc2VWYWx1ZShpbmRleCks
IG1fb3duZXItPnN1Y2Nlc3NvcihpbmRleCkpOworfQorCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6
QjMKKworI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCisKKyNlbmRpZiAvLyBCM0Nhc2VDb2xsZWN0
aW9uSW5saW5lc19oCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbW1vbi5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbW1vbi5oCShyZXZp
c2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb21tb24uaAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0yOCw2ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoQjNfSklUKQogCisjaW5jbHVk
ZSAiSlNFeHBvcnRNYWNyb3MuaCIKKwogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAK
IGlubGluZSBib29sIGlzNjRCaXQoKSB7IHJldHVybiBzaXplb2Yodm9pZCopID09IDg7IH0KQEAg
LTM4LDcgKzQwLDcgQEAgZW51bSBCM0NvbXBsaXRhdGlvbk1vZGUgewogICAgIEFpck1vZGUKIH07
CiAKLWJvb2wgc2hvdWxkRHVtcElSKEIzQ29tcGxpdGF0aW9uTW9kZSk7CitKU19FWFBPUlRfUFJJ
VkFURSBib29sIHNob3VsZER1bXBJUihCM0NvbXBsaXRhdGlvbk1vZGUpOwogYm9vbCBzaG91bGRE
dW1wSVJBdEVhY2hQaGFzZShCM0NvbXBsaXRhdGlvbk1vZGUpOwogYm9vbCBzaG91bGRWYWxpZGF0
ZUlSKCk7CiBib29sIHNob3VsZFZhbGlkYXRlSVJBdEVhY2hQaGFzZSgpOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzQ29udHJvbFZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb250cm9sVmFsdWUuY3BwCShyZXZpc2lvbiAyMDI4MDkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb250cm9sVmFsdWUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDk1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQjNDb250
cm9sVmFsdWUuaCIKLQotI2lmIEVOQUJMRShCM19KSVQpCi0KLSNpbmNsdWRlICJCM0Jhc2ljQmxv
Y2suaCIKLQotbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7Ci0KLUNvbnRyb2xWYWx1ZTo6
fkNvbnRyb2xWYWx1ZSgpCi17Ci19Ci0KLWJvb2wgQ29udHJvbFZhbHVlOjpyZXBsYWNlU3VjY2Vz
c29yKEJhc2ljQmxvY2sqIGZyb20sIEJhc2ljQmxvY2sqIHRvKQotewotICAgIGJvb2wgcmVzdWx0
ID0gZmFsc2U7Ci0gICAgZm9yIChGcmVxdWVudGVkQmxvY2smIHN1Y2Nlc3NvciA6IG1fc3VjY2Vz
c29ycykgewotICAgICAgICBpZiAoc3VjY2Vzc29yLmJsb2NrKCkgPT0gZnJvbSkgewotICAgICAg
ICAgICAgc3VjY2Vzc29yLmJsb2NrKCkgPSB0bzsKLSAgICAgICAgICAgIHJlc3VsdCA9IHRydWU7
Ci0KLSAgICAgICAgICAgIC8vIEtlZXAgbG9vcGluZyBiZWNhdXNlIGl0J3MgdmFsaWQgZm9yIGEg
c3VjY2Vzc29yIHRvIGJlIG1lbnRpb25lZCBtdWx0aXBsZSB0aW1lcywKLSAgICAgICAgICAgIC8v
IGxpa2UgaWYgbXVsdGlwbGUgc3dpdGNoIGNhc2VzIGhhdmUgdGhlIHNhbWUgdGFyZ2V0LgotICAg
ICAgICB9Ci0gICAgfQotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLXZvaWQgQ29udHJvbFZhbHVl
Ojpjb252ZXJ0VG9KdW1wKEJhc2ljQmxvY2sqIGRlc3RpbmF0aW9uKQotewotICAgIHVuc2lnbmVk
IGluZGV4ID0gdGhpcy0+aW5kZXgoKTsKLSAgICBPcmlnaW4gb3JpZ2luID0gdGhpcy0+b3JpZ2lu
KCk7Ci0gICAgQmFzaWNCbG9jayogb3duZXIgPSB0aGlzLT5vd25lcjsKLQotICAgIHRoaXMtPn5D
b250cm9sVmFsdWUoKTsKLQotICAgIG5ldyAodGhpcykgQ29udHJvbFZhbHVlKEp1bXAsIG9yaWdp
biwgRnJlcXVlbnRlZEJsb2NrKGRlc3RpbmF0aW9uKSk7Ci0KLSAgICB0aGlzLT5vd25lciA9IG93
bmVyOwotICAgIHRoaXMtPm1faW5kZXggPSBpbmRleDsKLX0KLQotdm9pZCBDb250cm9sVmFsdWU6
OmNvbnZlcnRUb09vcHMoKQotewotICAgIHVuc2lnbmVkIGluZGV4ID0gdGhpcy0+aW5kZXgoKTsK
LSAgICBPcmlnaW4gb3JpZ2luID0gdGhpcy0+b3JpZ2luKCk7Ci0gICAgQmFzaWNCbG9jayogb3du
ZXIgPSB0aGlzLT5vd25lcjsKLQotICAgIHRoaXMtPn5Db250cm9sVmFsdWUoKTsKLQotICAgIG5l
dyAodGhpcykgQ29udHJvbFZhbHVlKE9vcHMsIG9yaWdpbik7Ci0KLSAgICB0aGlzLT5vd25lciA9
IG93bmVyOwotICAgIHRoaXMtPm1faW5kZXggPSBpbmRleDsKLX0KLQotdm9pZCBDb250cm9sVmFs
dWU6OmR1bXBNZXRhKENvbW1hUHJpbnRlciYgY29tbWEsIFByaW50U3RyZWFtJiBvdXQpIGNvbnN0
Ci17Ci0gICAgZm9yIChGcmVxdWVudGVkQmxvY2sgc3VjY2Vzc29yIDogbV9zdWNjZXNzb3JzKQot
ICAgICAgICBvdXQucHJpbnQoY29tbWEsIHN1Y2Nlc3Nvcik7Ci19Ci0KLVZhbHVlKiBDb250cm9s
VmFsdWU6OmNsb25lSW1wbCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG5ldyBDb250cm9sVmFsdWUo
KnRoaXMpOwotfQotCi19IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKLQotI2VuZGlmIC8vIEVOQUJM
RShCM19KSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb250cm9sVmFsdWUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb250cm9sVmFsdWUu
aAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29udHJv
bFZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsMTYzICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
Ci0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIEIzQ29udHJvbFZh
bHVlX2gKLSNkZWZpbmUgQjNDb250cm9sVmFsdWVfaAotCi0jaWYgRU5BQkxFKEIzX0pJVCkKLQot
I2luY2x1ZGUgIkIzRnJlcXVlbnRlZEJsb2NrLmgiCi0jaW5jbHVkZSAiQjNTdWNjZXNzb3JDb2xs
ZWN0aW9uLmgiCi0jaW5jbHVkZSAiQjNWYWx1ZS5oIgotCi1uYW1lc3BhY2UgSlNDIHsgbmFtZXNw
YWNlIEIzIHsKLQotY2xhc3MgQmFzaWNCbG9jazsKLQotY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUg
Q29udHJvbFZhbHVlIDogcHVibGljIFZhbHVlIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgYm9vbCBh
Y2NlcHRzKE9wY29kZSBvcGNvZGUpCi0gICAgewotICAgICAgICBzd2l0Y2ggKG9wY29kZSkgewot
ICAgICAgICBjYXNlIEp1bXA6Ci0gICAgICAgIGNhc2UgQnJhbmNoOgotICAgICAgICBjYXNlIFJl
dHVybjoKLSAgICAgICAgY2FzZSBPb3BzOgotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg
ICAgIGNhc2UgU3dpdGNoOiAKLSAgICAgICAgICAgIC8vIFRoaXMgaXMgaGVyZSBiZWNhdXNlIFN3
aXRjaFZhbHVlIGlzIGEgc3ViY2xhc3Mgb2YgQ29udHJvbFZhbHVlLCBzbyB3ZSB3YW50Ci0gICAg
ICAgICAgICAvLyBzd2l0Y2hWYWx1ZS0+YXM8Q29udHJvbFZhbHVlPigpIHRvIHJldHVybiBub24t
bnVsbC4KLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBkZWZhdWx0OgotICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgdHlwZWRlZiBWZWN0
b3I8RnJlcXVlbnRlZEJsb2NrLCAyPiBTdWNjZXNzb3JMaXN0OwotCi0gICAgfkNvbnRyb2xWYWx1
ZSgpOwotCi0gICAgdW5zaWduZWQgbnVtU3VjY2Vzc29ycygpIGNvbnN0IHsgcmV0dXJuIG1fc3Vj
Y2Vzc29ycy5zaXplKCk7IH0KLSAgICBjb25zdCBGcmVxdWVudGVkQmxvY2smIHN1Y2Nlc3Nvcih1
bnNpZ25lZCBpbmRleCkgY29uc3QgeyByZXR1cm4gbV9zdWNjZXNzb3JzW2luZGV4XTsgfQotICAg
IEZyZXF1ZW50ZWRCbG9jayYgc3VjY2Vzc29yKHVuc2lnbmVkIGluZGV4KSB7IHJldHVybiBtX3N1
Y2Nlc3NvcnNbaW5kZXhdOyB9Ci0gICAgY29uc3QgU3VjY2Vzc29yTGlzdCYgc3VjY2Vzc29ycygp
IGNvbnN0IHsgcmV0dXJuIG1fc3VjY2Vzc29yczsgfQotICAgIFN1Y2Nlc3Nvckxpc3QmIHN1Y2Nl
c3NvcnMoKSB7IHJldHVybiBtX3N1Y2Nlc3NvcnM7IH0KLQotICAgIEJhc2ljQmxvY2sqIHN1Y2Nl
c3NvckJsb2NrKHVuc2lnbmVkIGluZGV4KSBjb25zdCB7IHJldHVybiBzdWNjZXNzb3IoaW5kZXgp
LmJsb2NrKCk7IH0KLSAgICBCYXNpY0Jsb2NrKiYgc3VjY2Vzc29yQmxvY2sodW5zaWduZWQgaW5k
ZXgpIHsgcmV0dXJuIHN1Y2Nlc3NvcihpbmRleCkuYmxvY2soKTsgfQotICAgIFN1Y2Nlc3NvckNv
bGxlY3Rpb248QmFzaWNCbG9jaywgU3VjY2Vzc29yTGlzdD4gc3VjY2Vzc29yQmxvY2tzKCkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBTdWNjZXNzb3JDb2xsZWN0aW9uPEJhc2ljQmxvY2ssIFN1Y2Nl
c3Nvckxpc3Q+KHN1Y2Nlc3NvcnMoKSk7Ci0gICAgfQotICAgIFN1Y2Nlc3NvckNvbGxlY3Rpb248
Y29uc3QgQmFzaWNCbG9jaywgY29uc3QgU3VjY2Vzc29yTGlzdD4gc3VjY2Vzc29yQmxvY2tzKCkg
Y29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBTdWNjZXNzb3JDb2xsZWN0aW9uPGNvbnN0IEJh
c2ljQmxvY2ssIGNvbnN0IFN1Y2Nlc3Nvckxpc3Q+KHN1Y2Nlc3NvcnMoKSk7Ci0gICAgfQotCi0g
ICAgYm9vbCByZXBsYWNlU3VjY2Vzc29yKEJhc2ljQmxvY2sqIGZyb20sIEJhc2ljQmxvY2sqIHRv
KTsKLQotICAgIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgdGFrZW4oKSBjb25zdAotICAgIHsKLSAg
ICAgICAgQVNTRVJUKG9wY29kZSgpID09IEp1bXAgfHwgb3Bjb2RlKCkgPT0gQnJhbmNoKTsKLSAg
ICAgICAgcmV0dXJuIHN1Y2Nlc3NvcigwKTsKLSAgICB9Ci0gICAgRnJlcXVlbnRlZEJsb2NrJiB0
YWtlbigpCi0gICAgewotICAgICAgICBBU1NFUlQob3Bjb2RlKCkgPT0gSnVtcCB8fCBvcGNvZGUo
KSA9PSBCcmFuY2gpOwotICAgICAgICByZXR1cm4gc3VjY2Vzc29yKDApOwotICAgIH0KLSAgICBj
b25zdCBGcmVxdWVudGVkQmxvY2smIG5vdFRha2VuKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFT
U0VSVChvcGNvZGUoKSA9PSBCcmFuY2gpOwotICAgICAgICByZXR1cm4gc3VjY2Vzc29yKDEpOwot
ICAgIH0KLSAgICBGcmVxdWVudGVkQmxvY2smIG5vdFRha2VuKCkKLSAgICB7Ci0gICAgICAgIEFT
U0VSVChvcGNvZGUoKSA9PSBCcmFuY2gpOwotICAgICAgICByZXR1cm4gc3VjY2Vzc29yKDEpOwot
ICAgIH0KLQotICAgIHZvaWQgY29udmVydFRvSnVtcChCYXNpY0Jsb2NrKiBkZXN0aW5hdGlvbik7
Ci0gICAgdm9pZCBjb252ZXJ0VG9Pb3BzKCk7Ci0KLXByb3RlY3RlZDoKLSAgICB2b2lkIGR1bXBN
ZXRhKENvbW1hUHJpbnRlciYsIFByaW50U3RyZWFtJikgY29uc3Qgb3ZlcnJpZGU7Ci0KLSAgICBW
YWx1ZSogY2xvbmVJbXBsKCkgY29uc3Qgb3ZlcnJpZGU7Ci0KLSAgICAvLyBVc2UgdGhpcyBmb3Ig
c3ViY2xhc3Nlcy4KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+Ci0gICAgQ29u
dHJvbFZhbHVlKE9wY29kZSBvcGNvZGUsIFR5cGUgdHlwZSwgT3JpZ2luIG9yaWdpbiwgQXJndW1l
bnRzLi4uIGFyZ3VtZW50cykKLSAgICAgICAgOiBWYWx1ZShDaGVja2VkT3Bjb2RlLCBvcGNvZGUs
IHR5cGUsIG9yaWdpbiwgYXJndW1lbnRzLi4uKQotICAgIHsKLSAgICAgICAgQVNTRVJUKGFjY2Vw
dHMob3Bjb2RlKSk7Ci0gICAgfQotCi0gICAgLy8gU3ViY2xhc3NlcyB3aWxsIHBvcHVsYXRlIHRo
aXMuCi0gICAgU3VjY2Vzc29yTGlzdCBtX3N1Y2Nlc3NvcnM7Ci0KLXByaXZhdGU6Ci0gICAgZnJp
ZW5kIGNsYXNzIFByb2NlZHVyZTsKLQotICAgIC8vIFVzZSB0aGlzIGZvciBPb3BzLgotICAgIENv
bnRyb2xWYWx1ZShPcGNvZGUgb3Bjb2RlLCBPcmlnaW4gb3JpZ2luKQotICAgICAgICA6IFZhbHVl
KENoZWNrZWRPcGNvZGUsIG9wY29kZSwgVm9pZCwgb3JpZ2luKQotICAgIHsKLSAgICAgICAgQVNT
RVJUKG9wY29kZSA9PSBPb3BzKTsKLSAgICB9Ci0KLSAgICAvLyBVc2UgdGhpcyBmb3IgUmV0dXJu
LgotICAgIENvbnRyb2xWYWx1ZShPcGNvZGUgb3Bjb2RlLCBPcmlnaW4gb3JpZ2luLCBWYWx1ZSog
cmVzdWx0KQotICAgICAgICA6IFZhbHVlKENoZWNrZWRPcGNvZGUsIG9wY29kZSwgVm9pZCwgb3Jp
Z2luLCByZXN1bHQpCi0gICAgewotICAgICAgICBBU1NFUlQob3Bjb2RlID09IFJldHVybik7Ci0g
ICAgfQotCi0gICAgLy8gVXNlIHRoaXMgZm9yIEp1bXAuCi0gICAgQ29udHJvbFZhbHVlKE9wY29k
ZSBvcGNvZGUsIE9yaWdpbiBvcmlnaW4sIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgdGFyZ2V0KQot
ICAgICAgICA6IFZhbHVlKENoZWNrZWRPcGNvZGUsIG9wY29kZSwgVm9pZCwgb3JpZ2luKQotICAg
IHsKLSAgICAgICAgQVNTRVJUKG9wY29kZSA9PSBKdW1wKTsKLSAgICAgICAgbV9zdWNjZXNzb3Jz
LmFwcGVuZCh0YXJnZXQpOwotICAgIH0KLQotICAgIC8vIFVzZSB0aGlzIGZvciBCcmFuY2guCi0g
ICAgQ29udHJvbFZhbHVlKAotICAgICAgICBPcGNvZGUgb3Bjb2RlLCBPcmlnaW4gb3JpZ2luLCBW
YWx1ZSogcHJlZGljYXRlLAotICAgICAgICBjb25zdCBGcmVxdWVudGVkQmxvY2smIHllcywgY29u
c3QgRnJlcXVlbnRlZEJsb2NrJiBubykKLSAgICAgICAgOiBWYWx1ZShDaGVja2VkT3Bjb2RlLCBv
cGNvZGUsIFZvaWQsIG9yaWdpbiwgcHJlZGljYXRlKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG9w
Y29kZSA9PSBCcmFuY2gpOwotICAgICAgICBtX3N1Y2Nlc3NvcnMuYXBwZW5kKHllcyk7Ci0gICAg
ICAgIG1fc3VjY2Vzc29ycy5hcHBlbmQobm8pOwotICAgIH0KLX07Ci0KLX0gfSAvLyBuYW1lc3Bh
Y2UgSlNDOjpCMwotCi0jZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKLQotI2VuZGlmIC8vIEIzQ29u
dHJvbFZhbHVlX2gKLQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRGF0YVNlY3Rp
b24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0RhdGFTZWN0
aW9uLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
RGF0YVNlY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMxLDcgKzMxLDcgQEAKIG5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgQjMgewogCiBEYXRhU2VjdGlvbjo6RGF0YVNlY3Rpb24oc2l6ZV90IHNp
emUpCi0gICAgOiBtX2RhdGEoZmFzdE1hbGxvYyhzaXplKSkKKyAgICA6IG1fZGF0YShmYXN0WmVy
b2VkTWFsbG9jKHNpemUpKQogICAgICwgbV9zaXplKHNpemUpCiB7CiB9CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNEdXBsaWNhdGVUYWlscy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRHVwbGljYXRlVGFpbHMuY3BwCShyZXZpc2lvbiAyMDI4
MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEdXBsaWNhdGVUYWlscy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDYgQEAKIAogI2luY2x1ZGUgIkIzQmFzaWNCbG9ja0lu
bGluZXMuaCIKICNpbmNsdWRlICJCM0JyZWFrQ3JpdGljYWxFZGdlcy5oIgotI2luY2x1ZGUgIkIz
Q29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNEb21pbmF0b3JzLmgiCiAjaW5jbHVkZSAiQjNG
aXhTU0EuaCIKICNpbmNsdWRlICJCM0luZGV4U2V0LmgiCkBAIC03Miw5ICs3MSwxMSBAQCBwdWJs
aWM6CiAgICAgICAgIEluZGV4U2V0PEJhc2ljQmxvY2s+IGNhbmRpZGF0ZXM7CiAKICAgICAgICAg
Zm9yIChCYXNpY0Jsb2NrKiBibG9jayA6IG1fcHJvYykgewotICAgICAgICAgICAgaWYgKGJsb2Nr
LT5zaXplKCkgPiBtX21heFNpemUgfHwgYmxvY2stPm51bVN1Y2Nlc3NvcnMoKSA+IG1fbWF4U3Vj
Y2Vzc29ycykKKyAgICAgICAgICAgIGlmIChibG9jay0+c2l6ZSgpID4gbV9tYXhTaXplCisgICAg
ICAgICAgICAgICAgfHwgYmxvY2stPm51bVN1Y2Nlc3NvcnMoKSA+IG1fbWF4U3VjY2Vzc29ycwor
ICAgICAgICAgICAgICAgIHx8ICFibG9jay0+aXNDbG9uZWFibGUoKSkKICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKLQorICAgICAgICAgICAgCiAgICAgICAgICAgICBjYW5kaWRhdGVzLmFkZChi
bG9jayk7CiAgICAgICAgIH0KIApAQCAtOTcsMTEgKzk4LDEwIEBAIHB1YmxpYzoKICAgICAgICAg
fQogCiAgICAgICAgIGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiBtX3Byb2MpIHsKLSAgICAgICAg
ICAgIENvbnRyb2xWYWx1ZSoganVtcCA9IGJsb2NrLT5sYXN0KCktPmFzPENvbnRyb2xWYWx1ZT4o
KTsKLSAgICAgICAgICAgIGlmIChqdW1wLT5vcGNvZGUoKSAhPSBKdW1wKQorICAgICAgICAgICAg
aWYgKGJsb2NrLT5sYXN0KCktPm9wY29kZSAhPSBKdW1wKQogICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwogCi0gICAgICAgICAgICBCYXNpY0Jsb2NrKiB0YWlsID0ganVtcC0+c3VjY2Vzc29yQmxv
Y2soMCk7CisgICAgICAgICAgICBCYXNpY0Jsb2NrKiB0YWlsID0gYmxvY2stPnN1Y2Nlc3NvckJs
b2NrKDApOwogICAgICAgICAgICAgaWYgKCFjYW5kaWRhdGVzLmNvbnRhaW5zKHRhaWwpKQogICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOwogCkBAIC0xMzAsNiArMTMwLDcgQEAgcHVibGljOgogICAg
ICAgICAgICAgICAgICAgICBtYXAuYWRkKHZhbHVlLCBjbG9uZSk7CiAgICAgICAgICAgICAgICAg
YmxvY2stPmFwcGVuZChjbG9uZSk7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICBibG9jay0+
c3VjY2Vzc29ycygpID0gdGFpbC0+c3VjY2Vzc29ycygpOwogICAgICAgICB9CiAKICAgICAgICAg
bV9wcm9jLnJlc2V0UmVhY2hhYmlsaXR5KCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNGaXhTU0EuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0ZpeFNTQS5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM0ZpeFNTQS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDYgQEAKIAogI2luY2x1
ZGUgIkIzQmFzaWNCbG9ja0lubGluZXMuaCIKICNpbmNsdWRlICJCM0JyZWFrQ3JpdGljYWxFZGdl
cy5oIgotI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNEb21pbmF0b3Jz
LmgiCiAjaW5jbHVkZSAiQjNJbmRleFNldC5oIgogI2luY2x1ZGUgIkIzSW5zZXJ0aW9uU2V0SW5s
aW5lcy5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRm9sZFBhdGhDb25zdGFu
dHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0ZvbGRQYXRo
Q29uc3RhbnRzLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzRm9sZFBhdGhDb25zdGFudHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw2
IEBACiAjaWYgRU5BQkxFKEIzX0pJVCkKIAogI2luY2x1ZGUgIkIzQmFzaWNCbG9ja0lubGluZXMu
aCIKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzRG9taW5hdG9ycy5o
IgogI2luY2x1ZGUgIkIzSW5zZXJ0aW9uU2V0SW5saW5lcy5oIgogI2luY2x1ZGUgIkIzUGhhc2VT
Y29wZS5oIgpAQCAtODcsMjQgKzg2LDI0IEBAIHB1YmxpYzoKICAgICAgICAgfTsKICAgICAgICAg
CiAgICAgICAgIGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiBtX3Byb2MpIHsKLSAgICAgICAgICAg
IENvbnRyb2xWYWx1ZSogYnJhbmNoID0gYmxvY2stPmxhc3QoKS0+YXM8Q29udHJvbFZhbHVlPigp
OworICAgICAgICAgICAgVmFsdWUqIGJyYW5jaCA9IGJsb2NrLT5sYXN0KCk7CiAgICAgICAgICAg
ICBzd2l0Y2ggKGJyYW5jaC0+b3Bjb2RlKCkpIHsKICAgICAgICAgICAgIGNhc2UgQnJhbmNoOgot
ICAgICAgICAgICAgICAgIGlmIChicmFuY2gtPnN1Y2Nlc3NvckJsb2NrKDApID09IGJyYW5jaC0+
c3VjY2Vzc29yQmxvY2soMSkpCisgICAgICAgICAgICAgICAgaWYgKGJsb2NrLT5zdWNjZXNzb3JC
bG9jaygwKSA9PSBibG9jay0+c3VjY2Vzc29yQmxvY2soMSkpCiAgICAgICAgICAgICAgICAgICAg
IGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIGFkZE92ZXJyaWRlKAogICAgICAgICAgICAgICAg
ICAgICBibG9jaywgYnJhbmNoLT5jaGlsZCgwKSwKLSAgICAgICAgICAgICAgICAgICAgT3ZlcnJp
ZGU6Om5vblplcm8oYnJhbmNoLT5zdWNjZXNzb3JCbG9jaygwKSkpOworICAgICAgICAgICAgICAg
ICAgICBPdmVycmlkZTo6bm9uWmVybyhibG9jay0+c3VjY2Vzc29yQmxvY2soMCkpKTsKICAgICAg
ICAgICAgICAgICBhZGRPdmVycmlkZSgKICAgICAgICAgICAgICAgICAgICAgYmxvY2ssIGJyYW5j
aC0+Y2hpbGQoMCksCi0gICAgICAgICAgICAgICAgICAgIE92ZXJyaWRlOjpjb25zdGFudChicmFu
Y2gtPnN1Y2Nlc3NvckJsb2NrKDEpLCAwKSk7CisgICAgICAgICAgICAgICAgICAgIE92ZXJyaWRl
Ojpjb25zdGFudChibG9jay0+c3VjY2Vzc29yQmxvY2soMSksIDApKTsKICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgIGNhc2UgU3dpdGNoOiB7CiAgICAgICAgICAgICAgICAgSGFz
aE1hcDxCYXNpY0Jsb2NrKiwgdW5zaWduZWQ+IHRhcmdldFVzZXM7Ci0gICAgICAgICAgICAgICAg
Zm9yIChjb25zdCBTd2l0Y2hDYXNlJiBzd2l0Y2hDYXNlIDogKmJyYW5jaC0+YXM8U3dpdGNoVmFs
dWU+KCkpCisgICAgICAgICAgICAgICAgZm9yIChjb25zdCBTd2l0Y2hDYXNlJiBzd2l0Y2hDYXNl
IDogYnJhbmNoLT5hczxTd2l0Y2hWYWx1ZT4oKS0+Y2FzZXMoYmxvY2spKQogICAgICAgICAgICAg
ICAgICAgICB0YXJnZXRVc2VzLmFkZChzd2l0Y2hDYXNlLnRhcmdldEJsb2NrKCksIDApLml0ZXJh
dG9yLT52YWx1ZSsrOwogCi0gICAgICAgICAgICAgICAgZm9yIChjb25zdCBTd2l0Y2hDYXNlJiBz
d2l0Y2hDYXNlIDogKmJyYW5jaC0+YXM8U3dpdGNoVmFsdWU+KCkpIHsKKyAgICAgICAgICAgICAg
ICBmb3IgKGNvbnN0IFN3aXRjaENhc2UmIHN3aXRjaENhc2UgOiBicmFuY2gtPmFzPFN3aXRjaFZh
bHVlPigpLT5jYXNlcyhibG9jaykpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKHRhcmdldFVz
ZXMuZmluZChzd2l0Y2hDYXNlLnRhcmdldEJsb2NrKCkpLT52YWx1ZSAhPSAxKQogICAgICAgICAg
ICAgICAgICAgICAgICAgY29udGludWU7CiAKQEAgLTE1OCw5ICsxNTcsOCBAQCBwdWJsaWM6CiAK
ICAgICAgICAgICAgICAgICBzd2l0Y2ggKHZhbHVlLT5vcGNvZGUoKSkgewogICAgICAgICAgICAg
ICAgIGNhc2UgQnJhbmNoOiB7Ci0gICAgICAgICAgICAgICAgICAgIENvbnRyb2xWYWx1ZSogYnJh
bmNoID0gdmFsdWUtPmFzPENvbnRyb2xWYWx1ZT4oKTsKICAgICAgICAgICAgICAgICAgICAgaWYg
KGdldE92ZXJyaWRlKGJsb2NrLCBicmFuY2gtPmNoaWxkKDApKS5pc05vblplcm8pIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGJyYW5jaC0+Y29udmVydFRvSnVtcChicmFuY2gtPnRha2VuKCku
YmxvY2soKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZS0+cmVwbGFjZVdpdGhKdW1w
KGJsb2NrLCBibG9jay0+dGFrZW4oKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2Vk
ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICBicmVh
azsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyTWFjcm9zLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlck1hY3Jvcy5jcHAJKHJl
dmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyTWFjcm9z
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0zMiw5ICszMiwxMCBAQAogI2luY2x1ZGUgIkIzQmxvY2tJbnNl
cnRpb25TZXQuaCIKICNpbmNsdWRlICJCM0NDYWxsVmFsdWUuaCIKICNpbmNsdWRlICJCM0NvbnN0
UHRyVmFsdWUuaCIKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzSW5z
ZXJ0aW9uU2V0SW5saW5lcy5oIgorI2luY2x1ZGUgIkIzTWVtb3J5VmFsdWUuaCIKICNpbmNsdWRl
ICJCM1BoYXNlU2NvcGUuaCIKKyNpbmNsdWRlICJCM1BvbHlKdW1wVmFsdWUuaCIKICNpbmNsdWRl
ICJCM1Byb2NlZHVyZUlubGluZXMuaCIKICNpbmNsdWRlICJCM1N3aXRjaFZhbHVlLmgiCiAjaW5j
bHVkZSAiQjNVcHNpbG9uVmFsdWUuaCIKQEAgLTExOCw4ICsxMTksOCBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgICAgICAgICBCYXNpY0Jsb2NrKiB6ZXJvRGVuQ2FzZSA9IG1fYmxvY2tJbnNlcnRp
b25TZXQuaW5zZXJ0QmVmb3JlKG1fYmxvY2spOwogICAgICAgICAgICAgICAgICAgICBCYXNpY0Js
b2NrKiBub3JtYWxNb2RDYXNlID0gbV9ibG9ja0luc2VydGlvblNldC5pbnNlcnRCZWZvcmUobV9i
bG9jayk7CiAKLSAgICAgICAgICAgICAgICAgICAgYmVmb3JlLT5yZXBsYWNlTGFzdFdpdGhOZXc8
Q29udHJvbFZhbHVlPigKLSAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgQnJhbmNoLCBt
X29yaWdpbiwgbV92YWx1ZS0+Y2hpbGQoMSksCisgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+
cmVwbGFjZUxhc3RXaXRoTmV3PFZhbHVlPihtX3Byb2MsIEJyYW5jaCwgbV9vcmlnaW4sIG1fdmFs
dWUtPmNoaWxkKDEpKTsKKyAgICAgICAgICAgICAgICAgICAgYmVmb3JlLT5zZXRTdWNjZXNzb3Jz
KAogICAgICAgICAgICAgICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKG5vcm1hbE1vZENhc2Us
IEZyZXF1ZW5jeUNsYXNzOjpOb3JtYWwpLAogICAgICAgICAgICAgICAgICAgICAgICAgRnJlcXVl
bnRlZEJsb2NrKHplcm9EZW5DYXNlLCBGcmVxdWVuY3lDbGFzczo6UmFyZSkpOwogCkBAIC0xMjcs
MTIgKzEyOCwxNCBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICBWYWx1ZSogbXVsdGlw
bGllZEJhY2sgPSBub3JtYWxNb2RDYXNlLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgTXVsLCBt
X29yaWdpbiwgZGl2UmVzdWx0LCBtX3ZhbHVlLT5jaGlsZCgxKSk7CiAgICAgICAgICAgICAgICAg
ICAgIFZhbHVlKiByZXN1bHQgPSBub3JtYWxNb2RDYXNlLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJv
YywgU3ViLCBtX29yaWdpbiwgbV92YWx1ZS0+Y2hpbGQoMCksIG11bHRpcGxpZWRCYWNrKTsKICAg
ICAgICAgICAgICAgICAgICAgVXBzaWxvblZhbHVlKiBub3JtYWxSZXN1bHQgPSBub3JtYWxNb2RD
YXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihtX3Byb2MsIG1fb3JpZ2luLCByZXN1bHQpOwot
ICAgICAgICAgICAgICAgICAgICBub3JtYWxNb2RDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PihtX3Byb2MsIEp1bXAsIG1fb3JpZ2luLCBGcmVxdWVudGVkQmxvY2sobV9ibG9jaykpOworICAg
ICAgICAgICAgICAgICAgICBub3JtYWxNb2RDYXNlLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywg
SnVtcCwgbV9vcmlnaW4pOworICAgICAgICAgICAgICAgICAgICBub3JtYWxNb2RDYXNlLT5zZXRT
dWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7CiAKICAgICAgICAgICAgICAgICAg
ICAgVXBzaWxvblZhbHVlKiB6ZXJvUmVzdWx0ID0gemVyb0RlbkNhc2UtPmFwcGVuZE5ldzxVcHNp
bG9uVmFsdWU+KAogICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwKICAg
ICAgICAgICAgICAgICAgICAgICAgIHplcm9EZW5DYXNlLT5hcHBlbmRJbnRDb25zdGFudChtX3By
b2MsIG1fdmFsdWUsIDApKTsKLSAgICAgICAgICAgICAgICAgICAgemVyb0RlbkNhc2UtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIEZyZXF1ZW50ZWRCbG9j
ayhtX2Jsb2NrKSk7CisgICAgICAgICAgICAgICAgICAgIHplcm9EZW5DYXNlLT5hcHBlbmROZXc8
VmFsdWU+KG1fcHJvYywgSnVtcCwgbV9vcmlnaW4pOworICAgICAgICAgICAgICAgICAgICB6ZXJv
RGVuQ2FzZS0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2sobV9ibG9jaykpOwogCiAgICAg
ICAgICAgICAgICAgICAgIFZhbHVlKiBwaGkgPSBtX2luc2VydGlvblNldC5pbnNlcnQ8VmFsdWU+
KG1faW5kZXgsIFBoaSwgbV92YWx1ZS0+dHlwZSgpLCBtX29yaWdpbik7CiAgICAgICAgICAgICAg
ICAgICAgIG5vcm1hbFJlc3VsdC0+c2V0UGhpKHBoaSk7CkBAIC0xNDcsNyArMTUwLDcgQEAgcHJp
dmF0ZToKICAgICAgICAgICAgIGNhc2UgU3dpdGNoOiB7CiAgICAgICAgICAgICAgICAgU3dpdGNo
VmFsdWUqIHN3aXRjaFZhbHVlID0gbV92YWx1ZS0+YXM8U3dpdGNoVmFsdWU+KCk7CiAgICAgICAg
ICAgICAgICAgVmVjdG9yPFN3aXRjaENhc2U+IGNhc2VzOwotICAgICAgICAgICAgICAgIGZvciAo
Y29uc3QgU3dpdGNoQ2FzZSYgc3dpdGNoQ2FzZSA6ICpzd2l0Y2hWYWx1ZSkKKyAgICAgICAgICAg
ICAgICBmb3IgKGNvbnN0IFN3aXRjaENhc2UmIHN3aXRjaENhc2UgOiBzd2l0Y2hWYWx1ZS0+Y2Fz
ZXMobV9ibG9jaykpCiAgICAgICAgICAgICAgICAgICAgIGNhc2VzLmFwcGVuZChzd2l0Y2hDYXNl
KTsKICAgICAgICAgICAgICAgICBzdGQ6OnNvcnQoCiAgICAgICAgICAgICAgICAgICAgIGNhc2Vz
LmJlZ2luKCksIGNhc2VzLmVuZCgpLApAQCAtMjEwLDI3ICsyMTMsMjcgQEAgcHJpdmF0ZToKICAg
ICAgICAgQmFzaWNCbG9jayogbmVnMURlbkNhc2UgPSBtX2Jsb2NrSW5zZXJ0aW9uU2V0Lmluc2Vy
dEJlZm9yZShtX2Jsb2NrKTsKICAgICAgICAgQmFzaWNCbG9jayogaW50TWluQ2FzZSA9IG1fYmxv
Y2tJbnNlcnRpb25TZXQuaW5zZXJ0QmVmb3JlKG1fYmxvY2spOwogCi0gICAgICAgIGJlZm9yZS0+
cmVwbGFjZUxhc3RXaXRoTmV3PENvbnRyb2xWYWx1ZT4oCi0gICAgICAgICAgICBtX3Byb2MsIEJy
YW5jaCwgbV9vcmlnaW4sIGlzRGVuT0ssCisgICAgICAgIGJlZm9yZS0+cmVwbGFjZUxhc3RXaXRo
TmV3PFZhbHVlPihtX3Byb2MsIEJyYW5jaCwgbV9vcmlnaW4sIGlzRGVuT0spOworICAgICAgICBi
ZWZvcmUtPnNldFN1Y2Nlc3NvcnMoCiAgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2sobm9ybWFs
RGl2Q2FzZSwgRnJlcXVlbmN5Q2xhc3M6Ok5vcm1hbCksCiAgICAgICAgICAgICBGcmVxdWVudGVk
QmxvY2soc2hhZHlEZW5DYXNlLCBGcmVxdWVuY3lDbGFzczo6UmFyZSkpOwogCiAgICAgICAgIFVw
c2lsb25WYWx1ZSogbm9ybWFsUmVzdWx0ID0gbm9ybWFsRGl2Q2FzZS0+YXBwZW5kTmV3PFVwc2ls
b25WYWx1ZT4oCiAgICAgICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLAogICAgICAgICAgICAgbm9y
bWFsRGl2Q2FzZS0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIG5vbkNoaWxsT3Bjb2RlLCBtX29y
aWdpbiwgbnVtLCBkZW4pKTsKLSAgICAgICAgbm9ybWFsRGl2Q2FzZS0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCi0gICAgICAgICAgICBtX3Byb2MsIEp1bXAsIG1fb3JpZ2luLCBGcmVxdWVudGVk
QmxvY2sobV9ibG9jaykpOworICAgICAgICBub3JtYWxEaXZDYXNlLT5hcHBlbmROZXc8VmFsdWU+
KG1fcHJvYywgSnVtcCwgbV9vcmlnaW4pOworICAgICAgICBub3JtYWxEaXZDYXNlLT5zZXRTdWNj
ZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7CiAKLSAgICAgICAgc2hhZHlEZW5DYXNl
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgICAgIG1fcHJvYywgQnJhbmNoLCBt
X29yaWdpbiwgZGVuLAorICAgICAgICBzaGFkeURlbkNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4obV9w
cm9jLCBCcmFuY2gsIG1fb3JpZ2luLCBkZW4pOworICAgICAgICBzaGFkeURlbkNhc2UtPnNldFN1
Y2Nlc3NvcnMoCiAgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2sobmVnMURlbkNhc2UsIEZyZXF1
ZW5jeUNsYXNzOjpOb3JtYWwpLAogICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHplcm9EZW5D
YXNlLCBGcmVxdWVuY3lDbGFzczo6UmFyZSkpOwogCiAgICAgICAgIFVwc2lsb25WYWx1ZSogemVy
b1Jlc3VsdCA9IHplcm9EZW5DYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPigKICAgICAgICAg
ICAgIG1fcHJvYywgbV9vcmlnaW4sCiAgICAgICAgICAgICB6ZXJvRGVuQ2FzZS0+YXBwZW5kSW50
Q29uc3RhbnQobV9wcm9jLCBtX3ZhbHVlLCAwKSk7Ci0gICAgICAgIHplcm9EZW5DYXNlLT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgICAgIG1fcHJvYywgSnVtcCwgbV9vcmlnaW4s
IEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7CisgICAgICAgIHplcm9EZW5DYXNlLT5hcHBlbmRO
ZXc8VmFsdWU+KG1fcHJvYywgSnVtcCwgbV9vcmlnaW4pOworICAgICAgICB6ZXJvRGVuQ2FzZS0+
c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2sobV9ibG9jaykpOwogCiAgICAgICAgIGludDY0
X3QgYmFkTnVtZXJhdG9yQ29uc3QgPSAwOwogICAgICAgICBzd2l0Y2ggKG1fdmFsdWUtPnR5cGUo
KSkgewpAQCAtMjQ4LDE4ICsyNTEsMTkgQEAgcHJpdmF0ZToKICAgICAgICAgVmFsdWUqIGJhZE51
bWVyYXRvciA9CiAgICAgICAgICAgICBuZWcxRGVuQ2FzZS0+YXBwZW5kSW50Q29uc3RhbnQobV9w
cm9jLCBtX3ZhbHVlLCBiYWROdW1lcmF0b3JDb25zdCk7CiAKLSAgICAgICAgbmVnMURlbkNhc2Ut
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICBuZWcxRGVuQ2FzZS0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIG1fcHJvYywgQnJhbmNoLCBtX29yaWdpbiwKICAgICAgICAg
ICAgIG5lZzFEZW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+KAotICAgICAgICAgICAgICAgIG1fcHJv
YywgRXF1YWwsIG1fb3JpZ2luLCBudW0sIGJhZE51bWVyYXRvciksCisgICAgICAgICAgICAgICAg
bV9wcm9jLCBFcXVhbCwgbV9vcmlnaW4sIG51bSwgYmFkTnVtZXJhdG9yKSk7CisgICAgICAgIG5l
ZzFEZW5DYXNlLT5zZXRTdWNjZXNzb3JzKAogICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKGlu
dE1pbkNhc2UsIEZyZXF1ZW5jeUNsYXNzOjpSYXJlKSwKICAgICAgICAgICAgIEZyZXF1ZW50ZWRC
bG9jayhub3JtYWxEaXZDYXNlLCBGcmVxdWVuY3lDbGFzczo6Tm9ybWFsKSk7CiAKICAgICAgICAg
VmFsdWUqIGludE1pblJlc3VsdCA9IG5vbkNoaWxsT3Bjb2RlID09IERpdiA/IGJhZE51bWVyYXRv
ciA6IGludE1pbkNhc2UtPmFwcGVuZEludENvbnN0YW50KG1fcHJvYywgbV92YWx1ZSwgMCk7CiAg
ICAgICAgIFVwc2lsb25WYWx1ZSogaW50TWluUmVzdWx0VXBzaWxvbiA9IGludE1pbkNhc2UtPmFw
cGVuZE5ldzxVcHNpbG9uVmFsdWU+KAogICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwgaW50
TWluUmVzdWx0KTsKLSAgICAgICAgaW50TWluQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
Ci0gICAgICAgICAgICBtX3Byb2MsIEp1bXAsIG1fb3JpZ2luLCBGcmVxdWVudGVkQmxvY2sobV9i
bG9jaykpOworICAgICAgICBpbnRNaW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgSnVt
cCwgbV9vcmlnaW4pOworICAgICAgICBpbnRNaW5DYXNlLT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50
ZWRCbG9jayhtX2Jsb2NrKSk7CiAKICAgICAgICAgVmFsdWUqIHBoaSA9IG1faW5zZXJ0aW9uU2V0
Lmluc2VydDxWYWx1ZT4oCiAgICAgICAgICAgICBtX2luZGV4LCBQaGksIG1fdmFsdWUtPnR5cGUo
KSwgbV9vcmlnaW4pOwpAQCAtMjc1LDggKzI3OSwxMDcgQEAgcHJpdmF0ZToKICAgICAgICAgY29u
c3QgVmVjdG9yPFN3aXRjaENhc2U+JiBjYXNlcywgdW5zaWduZWQgc3RhcnQsIGJvb2wgaGFyZFN0
YXJ0LCB1bnNpZ25lZCBlbmQsCiAgICAgICAgIEJhc2ljQmxvY2sqIGJlZm9yZSkKICAgICB7Ci0g
ICAgICAgIC8vIEZJWE1FOiBBZGQgdGFibGUtYmFzZWQgc3dpdGNoIGxvd2VyaW5nLgotICAgICAg
ICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxMTQxCisgICAg
ICAgIFZhbHVlKiBjaGlsZCA9IG1fdmFsdWUtPmNoaWxkKDApOworICAgICAgICBUeXBlIHR5cGUg
PSBjaGlsZC0+dHlwZSgpOworICAgICAgICBGcmVxdWVudGVkQmxvY2sgZmFsbFRocm91Z2ggPSBt
X2Jsb2NrLT5mYWxsVGhyb3VnaCgpOworICAgICAgICAKKyAgICAgICAgLy8gSXQncyBhIGdvb2Qg
aWRlYSB0byB1c2UgYSB0YWJsZS1iYXNlZCBzd2l0Y2ggaW4gc29tZSBjYXNlczogdGhlIG51bWJl
ciBvZiBjYXNlcyBoYXMgdG8gYmUKKyAgICAgICAgLy8gbGFyZ2UgZW5vdWdoIGFuZCB0aGV5IGhh
dmUgdG8gYmUgZGVuc2UgZW5vdWdoLiBUaGlzIGNvdWxkIHByb2JhYmx5IGJlIGltcHJvdmVkIGEg
bG90LiBGb3IKKyAgICAgICAgLy8gZXhhbXBsZSwgd2UgY291bGQgc3RpbGwgdXNlIGEganVtcCB0
YWJsZSBpbiBjYXNlcyB3aGVyZSB0aGUgaW5wdXRzIGFyZSBzcGFyc2Ugc28gbG9uZyBhcyB3ZQor
ICAgICAgICAvLyBzaGlmdCBvZmYgdGhlIHVuaW50ZXJlc3RpbmcgYml0cy4gT24gdGhlIG90aGVy
IGhhbmQsIGl0J3Mgbm90IGNsZWFyIHRoYXQgdGhpcyB3b3VsZAorICAgICAgICAvLyBhY3R1YWxs
eSBiZSBhbnkgYmV0dGVyIHRoYW4gd2hhdCB3ZSBoYXZlIGRvbmUgaGVyZSBhbmQgaXQncyBub3Qg
Y2xlYXIgdGhhdCBpdCB3b3VsZCBiZQorICAgICAgICAvLyBiZXR0ZXIgdGhhbiBhIGJpbmFyeSBz
d2l0Y2guCisgICAgICAgIGNvbnN0IHVuc2lnbmVkIG1pbkNhc2VzRm9yVGFibGUgPSA3OworICAg
ICAgICBjb25zdCB1bnNpZ25lZCBkZW5zaXR5TGltaXQgPSA0OworICAgICAgICBpZiAoZW5kIC0g
c3RhcnQgPj0gbWluQ2FzZXNGb3JUYWJsZSkgeworICAgICAgICAgICAgaW50NjRfdCBmaXJzdFZh
bHVlID0gY2FzZXNbc3RhcnRdLmNhc2VWYWx1ZSgpOworICAgICAgICAgICAgaW50NjRfdCBsYXN0
VmFsdWUgPSBjYXNlc1tlbmQgLSAxXS5jYXNlVmFsdWUoKTsKKyAgICAgICAgICAgIGlmICgobGFz
dFZhbHVlIC0gZmlyc3RWYWx1ZSArIDEpIC8gY2FzZXMuc2l6ZSgpIDwgZGVuc2l0eUxpbWl0KSB7
CisgICAgICAgICAgICAgICAgQmFzaWNCbG9jayogc3dpdGNoQmxvY2sgPSBtX2Jsb2NrSW5zZXJ0
aW9uU2V0Lmluc2VydEFmdGVyKG1fYmxvY2spOworICAgICAgICAgICAgICAgIFZhbHVlKiBpbmRl
eCA9IGJlZm9yZS0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgICAgICAgICAgbV9wcm9j
LCBTdWIsIG1fb3JpZ2luLCBjaGlsZCwKKyAgICAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBl
bmRJbnRDb25zdGFudChtX3Byb2MsIG1fb3JpZ2luLCB0eXBlLCBmaXJzdFZhbHVlKSk7CisgICAg
ICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgICAgICAg
ICBtX3Byb2MsIEJyYW5jaCwgbV9vcmlnaW4sCisgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+
YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgQWJvdmUs
IG1fb3JpZ2luLCBpbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5k
SW50Q29uc3RhbnQobV9wcm9jLCBtX29yaWdpbiwgdHlwZSwgbGFzdFZhbHVlIC0gZmlyc3RWYWx1
ZSkpKTsKKyAgICAgICAgICAgICAgICBiZWZvcmUtPnNldFN1Y2Nlc3NvcnMoZmFsbFRocm91Z2gs
IEZyZXF1ZW50ZWRCbG9jayhzd2l0Y2hCbG9jaykpOworICAgICAgICAgICAgICAgIAorICAgICAg
ICAgICAgICAgIHNpemVfdCB0YWJsZVNpemUgPSBsYXN0VmFsdWUgLSBmaXJzdFZhbHVlICsgMTsK
KyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoaW5kZXgtPnR5cGUoKSAhPSBi
YXNlLT50eXBlKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGluZGV4LT50eXBlKCkgPT0g
SW50MzIpCisgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9IHN3aXRjaEJsb2NrLT5hcHBl
bmROZXc8VmFsdWU+KG1fcHJvYywgWkV4dDMyLCBtX29yaWdpbiwgaW5kZXgpOworICAgICAgICAg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9IHN3aXRjaEJs
b2NrLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgVHJ1bmMsIG1fb3JpZ2luLCBpbmRleCk7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFBhdGNo
cG9pbnRWYWx1ZSogcGF0Y2hwb2ludCA9CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaEJsb2Nr
LT5hcHBlbmROZXc8UGF0Y2hwb2ludFZhbHVlPihtX3Byb2MsIFZvaWQsIG1fb3JpZ2luKTsKKyAg
ICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBwYXRjaHBvaW50LT5lZmZlY3RzLnRlcm1p
bmFsID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmRTb21lUmVnaXN0
ZXIoaW5kZXgpOworICAgICAgICAgICAgICAgIHBhdGNocG9pbnQtPm51bUdQU2NyYXRjaFJlZ2lz
dGVycysrOworICAgICAgICAgICAgICAgIC8vIFRlY2huaWNhbGx5LCB3ZSBkb24ndCBoYXZlIHRv
IGNsb2JiZXIgbWFjcm8gcmVnaXN0ZXJzIG9uIFg4Nl82NC4gVGhpcyBpcyBwcm9iYWJseQorICAg
ICAgICAgICAgICAgIC8vIE9LIHRob3VnaC4KKyAgICAgICAgICAgICAgICBwYXRjaHBvaW50LT5j
bG9iYmVyKFJlZ2lzdGVyU2V0OjptYWNyb1NjcmF0Y2hSZWdpc3RlcnMoKSk7CisgICAgICAgICAg
ICAgICAgCisgICAgICAgICAgICAgICAgQml0VmVjdG9yIGhhbmRsZWRJbmRpY2VzOworICAgICAg
ICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IHN0YXJ0OyBpIDwgZW5kOyArK2kpIHsKKyAgICAg
ICAgICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrIGJsb2NrID0gY2FzZXNbaV0udGFyZ2V0KCk7
CisgICAgICAgICAgICAgICAgICAgIGludDY0X3QgdmFsdWUgPSBjYXNlc1tpXS5jYXNlVmFsdWUo
KTsKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoQmxvY2stPmFwcGVuZFN1Y2Nlc3NvcihibG9j
ayk7CisgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbmRleCA9IHZhbHVlIC0gZmlyc3RWYWx1
ZTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUKCFoYW5kbGVkSW5kaWNlcy5nZXQoaW5kZXgp
KTsKKyAgICAgICAgICAgICAgICAgICAgaGFuZGxlZEluZGljZXMuc2V0KGluZGV4KTsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgYm9vbCBoYXNV
bmhhbmRsZWRJbmRleCA9IGZhbHNlOworICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCB0YWJsZVNpemU7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIWhhbmRs
ZWRJbmRpY2VzLmdldChpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaGFzVW5oYW5kbGVk
SW5kZXggPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAg
ICAgICAgICAgaWYgKGhhc1VuaGFuZGxlZEluZGV4KQorICAgICAgICAgICAgICAgICAgICBzd2l0
Y2hCbG9jay0+YXBwZW5kU3VjY2Vzc29yKGZhbGxUaHJvdWdoKTsKKworICAgICAgICAgICAgICAg
IHBhdGNocG9pbnQtPnNldEdlbmVyYXRvcigKKyAgICAgICAgICAgICAgICAgICAgWz1dIChDQ2Fs
bEhlbHBlcnMmIGppdCwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJiBwYXJhbXMpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIEFsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSBh
bGxvd1NjcmF0Y2goaml0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAg
ICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKiBqdW1wVGFibGUgPSBwYXJhbXMucHJv
YygpLmFkZERhdGFTZWN0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihN
YWNyb0Fzc2VtYmxlckNvZGVQdHIpICogdGFibGVTaXplKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgR1BSUmVnIGluZGV4ID0gcGFyYW1zWzBdLmdw
cigpOworICAgICAgICAgICAgICAgICAgICAgICAgR1BSUmVnIHNjcmF0Y2ggPSBwYXJhbXMuZ3BT
Y3JhdGNoKDApOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAg
ICAgICBqaXQubW92ZShUcnVzdGVkSW1tUHRyKGp1bXBUYWJsZSksIHNjcmF0Y2gpOworICAgICAg
ICAgICAgICAgICAgICAgICAgaml0Lmp1bXAoQ0NhbGxIZWxwZXJzOjpCYXNlSW5kZXgoc2NyYXRj
aCwgaW5kZXgsIENDYWxsSGVscGVyczo6dGltZXNQdHIoKSkpOworICAgICAgICAgICAgICAgICAg
ICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBWZWN0b3I8Qm94PENDYWxsSGVscGVyczo6
TGFiZWw+PiBsYWJlbHMgPSBwYXJhbXMuc3VjY2Vzc29yTGFiZWxzKCk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGppdC5hZGRMaW5rVGFzaygKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBbPV0gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGhhc1VuaGFuZGxlZEluZGV4KSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQ
dHIgZmFsbFRocm91Z2ggPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxpbmtCdWZmZXIubG9jYXRpb25PZigqbGFiZWxzLmxhc3QoKSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSB0YWJsZVNpemU7IGktLTspCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganVtcFRhYmxlW2ldID0gZmFs
bFRocm91Z2g7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu
c2lnbmVkIGxhYmVsSW5kZXggPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
b3IgKHVuc2lnbmVkIHRhYmxlSW5kZXggOiBoYW5kbGVkSW5kaWNlcykgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAganVtcFRhYmxlW3RhYmxlSW5kZXhdID0KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rQnVmZmVyLmxvY2F0aW9uT2YoKmxh
YmVsc1tsYWJlbEluZGV4KytdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICAg
ICAgCiAgICAgICAgIC8vIFNlZSBjb21tZW50cyBpbiBqaXQvQmluYXJ5U3dpdGNoLmNwcCBmb3Ig
YSBqdXN0aWZpY2F0aW9uIG9mIHRoaXMgYWxnb3JpdGhtLiBUaGUgb25seQogICAgICAgICAvLyB0
aGluZyB3ZSBkbyBkaWZmZXJlbnRseSBpcyB0aGF0IHdlIGRvbid0IHVzZSByYW5kb21uZXNzLgpA
QCAtMzA0LDI1ICs0MDcsMjMgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIAogICAgICAgICAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxpbWl0OyArK2kpIHsKICAgICAgICAgICAgICAgICBC
YXNpY0Jsb2NrKiBuZXh0Q2hlY2sgPSBtX2Jsb2NrSW5zZXJ0aW9uU2V0Lmluc2VydEFmdGVyKG1f
YmxvY2spOwotICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
ICAgICAgICBtX3Byb2MsIEJyYW5jaCwgbV9vcmlnaW4sCiAgICAgICAgICAgICAgICAgICAgIGJl
Zm9yZS0+YXBwZW5kTmV3PFZhbHVlPigKLSAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywg
RXF1YWwsIG1fb3JpZ2luLCBtX3ZhbHVlLT5jaGlsZCgwKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgIG1fcHJvYywgRXF1YWwsIG1fb3JpZ2luLCBjaGlsZCwKICAgICAgICAgICAgICAgICAgICAg
ICAgIGJlZm9yZS0+YXBwZW5kSW50Q29uc3RhbnQoCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbV9wcm9jLCBtX29yaWdpbiwgbV92YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjYXNlc1tzdGFydCArIGldLmNhc2VWYWx1ZSgpKSksCi0gICAg
ICAgICAgICAgICAgICAgIGNhc2VzW3N0YXJ0ICsgaV0udGFyZ2V0KCksIEZyZXF1ZW50ZWRCbG9j
ayhuZXh0Q2hlY2spKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIG1fb3Jp
Z2luLCB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2VzW3N0YXJ0ICsgaV0u
Y2FzZVZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgYmVmb3JlLT5zZXRTdWNjZXNzb3JzKGNh
c2VzW3N0YXJ0ICsgaV0udGFyZ2V0KCksIEZyZXF1ZW50ZWRCbG9jayhuZXh0Q2hlY2spKTsKIAog
ICAgICAgICAgICAgICAgIGJlZm9yZSA9IG5leHRDaGVjazsKICAgICAgICAgICAgIH0KIAotICAg
ICAgICAgICAgaWYgKGFsbENvbnNlY3V0aXZlKSB7Ci0gICAgICAgICAgICAgICAgYmVmb3JlLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBKdW1w
LCBtX29yaWdpbiwgY2FzZXNbZW5kIC0gMV0udGFyZ2V0KCkpOwotICAgICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAotICAg
ICAgICAgICAgICAgICAgICBtX3Byb2MsIEp1bXAsIG1fb3JpZ2luLCBtX3ZhbHVlLT5hczxTd2l0
Y2hWYWx1ZT4oKS0+ZmFsbFRocm91Z2goKSk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBi
ZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBKdW1wLCBtX29yaWdpbik7CisgICAgICAg
ICAgICBpZiAoYWxsQ29uc2VjdXRpdmUpCisgICAgICAgICAgICAgICAgYmVmb3JlLT5zZXRTdWNj
ZXNzb3JzKGNhc2VzW2VuZCAtIDFdLnRhcmdldCgpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICBiZWZvcmUtPnNldFN1Y2Nlc3NvcnMoZmFsbFRocm91Z2gpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAgLTMzMSwxNCArNDMyLDE0IEBAIHByaXZhdGU6CiAg
ICAgICAgIEJhc2ljQmxvY2sqIGxlZnQgPSBtX2Jsb2NrSW5zZXJ0aW9uU2V0Lmluc2VydEFmdGVy
KG1fYmxvY2spOwogICAgICAgICBCYXNpY0Jsb2NrKiByaWdodCA9IG1fYmxvY2tJbnNlcnRpb25T
ZXQuaW5zZXJ0QWZ0ZXIobV9ibG9jayk7CiAKLSAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgbV9wcm9jLCBCcmFuY2gsIG1fb3JpZ2luLAogICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmRO
ZXc8VmFsdWU+KAotICAgICAgICAgICAgICAgIG1fcHJvYywgTGVzc1RoYW4sIG1fb3JpZ2luLCBt
X3ZhbHVlLT5jaGlsZCgwKSwKKyAgICAgICAgICAgICAgICBtX3Byb2MsIExlc3NUaGFuLCBtX29y
aWdpbiwgY2hpbGQsCiAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmRJbnRDb25zdGFudCgK
LSAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwgbV92YWx1ZS0+Y2hpbGQoMCkt
PnR5cGUoKSwKLSAgICAgICAgICAgICAgICAgICAgY2FzZXNbbWVkaWFuSW5kZXhdLmNhc2VWYWx1
ZSgpKSksCi0gICAgICAgICAgICBGcmVxdWVudGVkQmxvY2sobGVmdCksIEZyZXF1ZW50ZWRCbG9j
ayhyaWdodCkpOworICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLCB0eXBlLAor
ICAgICAgICAgICAgICAgICAgICBjYXNlc1ttZWRpYW5JbmRleF0uY2FzZVZhbHVlKCkpKSk7Cisg
ICAgICAgIGJlZm9yZS0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2sobGVmdCksIEZyZXF1
ZW50ZWRCbG9jayhyaWdodCkpOwogCiAgICAgICAgIHJlY3Vyc2l2ZWx5QnVpbGRTd2l0Y2goY2Fz
ZXMsIHN0YXJ0LCBoYXJkU3RhcnQsIG1lZGlhbkluZGV4LCBsZWZ0KTsKICAgICAgICAgcmVjdXJz
aXZlbHlCdWlsZFN3aXRjaChjYXNlcywgbWVkaWFuSW5kZXgsIHRydWUsIGVuZCwgcmlnaHQpOwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAJKHJldmlzaW9u
IDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xNTUsNyArMTU1LDYgQEAgcHVibGljOgogICAgICAgICAgICAgfQog
CiAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCB0aGUgc3VjY2Vzc29ycyBhcmUgc2V0IHVw
IGNvcnJlY3RseS4KLSAgICAgICAgICAgIEFTU0VSVChibG9jay0+c3VjY2Vzc29ycygpLnNpemUo
KSA8PSAyKTsKICAgICAgICAgICAgIGZvciAoQjM6OkZyZXF1ZW50ZWRCbG9jayBzdWNjZXNzb3Ig
OiBibG9jay0+c3VjY2Vzc29ycygpKSB7CiAgICAgICAgICAgICAgICAgbV9ibG9ja1RvQmxvY2tb
YmxvY2tdLT5zdWNjZXNzb3JzKCkuYXBwZW5kKAogICAgICAgICAgICAgICAgICAgICBBaXI6OkZy
ZXF1ZW50ZWRCbG9jayhtX2Jsb2NrVG9CbG9ja1tzdWNjZXNzb3IuYmxvY2soKV0sIHN1Y2Nlc3Nv
ci5mcmVxdWVuY3koKSkpOwpAQCAtMjQ0MSw2ICsyNDQwLDE2IEBAIHByaXZhdGU6CiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAg
ICAgICBjYXNlIEIzOjpQb2x5SnVtcDogeworICAgICAgICAgICAgQXJnUHJvbWlzZSBhZGRyID0g
bG9hZFByb21pc2UobV92YWx1ZS0+Y2hpbGQoMCkpOworICAgICAgICAgICAgaWYgKGlzVmFsaWRG
b3JtKEFpcjo6UG9seUp1bXAsIGFkZHIua2luZCgpKSkgeworICAgICAgICAgICAgICAgIGFwcGVu
ZChBaXI6OlBvbHlKdW1wLCBhZGRyLmNvbnN1bWUoKnRoaXMpKTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBhcHBlbmQoQWlyOjpQb2x5SnVtcCwg
dG1wKG1fdmFsdWUtPmNoaWxkKDApKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
IAogICAgICAgICBjYXNlIEIzOjpPb3BzOiB7CiAgICAgICAgICAgICBhcHBlbmQoQWlyOjpPb3Bz
KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM01hdGhFeHRyYXMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM01hdGhFeHRyYXMuY3BwCShyZXZp
c2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNNYXRoRXh0cmFzLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1
LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSAiQjNDb25zdDMyVmFsdWUu
aCIKICNpbmNsdWRlICJCM0NvbnN0RG91YmxlVmFsdWUuaCIKICNpbmNsdWRlICJCM0NvbnN0UHRy
VmFsdWUuaCIKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzVXBzaWxv
blZhbHVlLmgiCiAjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJNYXRoQ29t
bW9uLmgiCkBAIC01MiwxMCArNTEsOCBAQCBzdGQ6OnBhaXI8QmFzaWNCbG9jayosIFZhbHVlKj4g
cG93RG91YmxlCiAgICAgVmFsdWUqIHNob3VsZEdvU2xvd1BhdGggPSBzdGFydC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jZWR1cmUsIEFib3ZlLCBvcmlnaW4sCiAgICAgICAgIHksCiAgICAgICAgIHN0
YXJ0LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jZWR1cmUsIG9yaWdpbiwgbWF4RXhwb25l
bnRGb3JJbnRlZ2VyTWF0aFBvdykpOwotICAgIHN0YXJ0LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKLSAgICAgICAgcHJvY2VkdXJlLCBCcmFuY2gsIG9yaWdpbiwKLSAgICAgICAgc2hvdWxkR29T
bG93UGF0aCwKLSAgICAgICAgRnJlcXVlbnRlZEJsb2NrKGZ1bmN0aW9uQ2FsbENhc2UpLCBGcmVx
dWVudGVkQmxvY2sobG9vcFByZUhlYWRlckNhc2UpKTsKKyAgICBzdGFydC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jZWR1cmUsIEJyYW5jaCwgb3JpZ2luLCBzaG91bGRHb1Nsb3dQYXRoKTsKKyAgICBz
dGFydC0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2soZnVuY3Rpb25DYWxsQ2FzZSksIEZy
ZXF1ZW50ZWRCbG9jayhsb29wUHJlSGVhZGVyQ2FzZSkpOwogCiAgICAgLy8gRnVuY3Rpb24gY2Fs
bC4KICAgICBWYWx1ZSogeUFzRG91YmxlID0gZnVuY3Rpb25DYWxsQ2FzZS0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jZWR1cmUsIElUb0QsIG9yaWdpbiwgeSk7CkBAIC02NSw3ICs2Miw4IEBAIHN0ZDo6
cGFpcjxCYXNpY0Jsb2NrKiwgVmFsdWUqPiBwb3dEb3VibGUKICAgICAgICAgZnVuY3Rpb25DYWxs
Q2FzZS0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2NlZHVyZSwgb3JpZ2luLCBiaXR3aXNl
X2Nhc3Q8dm9pZCo+KHBvd0RvdWJsZSkpLAogICAgICAgICB4LCB5QXNEb3VibGUpOwogICAgIFVw
c2lsb25WYWx1ZSogcG93UmVzdWx0VXBzaWxvbiA9IGZ1bmN0aW9uQ2FsbENhc2UtPmFwcGVuZE5l
dzxVcHNpbG9uVmFsdWU+KHByb2NlZHVyZSwgb3JpZ2luLCBwb3dSZXN1bHQpOwotICAgIGZ1bmN0
aW9uQ2FsbENhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2NlZHVyZSwgSnVtcCwgb3Jp
Z2luLCBGcmVxdWVudGVkQmxvY2soY29udGludWF0aW9uKSk7CisgICAgZnVuY3Rpb25DYWxsQ2Fz
ZS0+YXBwZW5kTmV3PFZhbHVlPihwcm9jZWR1cmUsIEp1bXAsIG9yaWdpbik7CisgICAgZnVuY3Rp
b25DYWxsQ2FzZS0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2soY29udGludWF0aW9uKSk7
CiAKICAgICAvLyBMb29wIHByZS1oZWFkZXIuCiAgICAgVmFsdWUqIGluaXRpYWxSZXN1bHQgPSBs
b29wUHJlSGVhZGVyQ2FzZS0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2NlZHVyZSwg
b3JpZ2luLCAxLik7CkBAIC03Myw3ICs3MSw4IEBAIHN0ZDo6cGFpcjxCYXNpY0Jsb2NrKiwgVmFs
dWUqPiBwb3dEb3VibGUKICAgICBVcHNpbG9uVmFsdWUqIGluaXRpYWxSZXN1bHRWYWx1ZSA9IGxv
b3BQcmVIZWFkZXJDYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jZWR1cmUsIG9yaWdp
biwgaW5pdGlhbFJlc3VsdCk7CiAgICAgVXBzaWxvblZhbHVlKiBpbml0aWFsU3F1YXJlZElucHV0
ID0gbG9vcFByZUhlYWRlckNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2NlZHVyZSwg
b3JpZ2luLCB4KTsKICAgICBVcHNpbG9uVmFsdWUqIGluaXRpYWxMb29wQ291bnRlciA9IGxvb3BQ
cmVIZWFkZXJDYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jZWR1cmUsIG9yaWdpbiwg
eSk7Ci0gICAgbG9vcFByZUhlYWRlckNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Nl
ZHVyZSwgSnVtcCwgb3JpZ2luLCBGcmVxdWVudGVkQmxvY2sobG9vcFRlc3RGb3JFdmVuQ2FzZSkp
OworICAgIGxvb3BQcmVIZWFkZXJDYXNlLT5hcHBlbmROZXc8VmFsdWU+KHByb2NlZHVyZSwgSnVt
cCwgb3JpZ2luKTsKKyAgICBsb29wUHJlSGVhZGVyQ2FzZS0+c2V0U3VjY2Vzc29ycyhGcmVxdWVu
dGVkQmxvY2sobG9vcFRlc3RGb3JFdmVuQ2FzZSkpOwogCiAgICAgLy8gVGVzdCBpZiB3aGF0IGlz
IGxlZnQgb2YgdGhlIGNvdW50ZXIgaXMgZXZlbi4KICAgICBWYWx1ZSogaW5Mb29wQ291bnRlciA9
IGxvb3BUZXN0Rm9yRXZlbkNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvY2VkdXJlLCBQaGksIElu
dDMyLCBvcmlnaW4pOwpAQCAtODEsMTAgKzgwLDggQEAgc3RkOjpwYWlyPEJhc2ljQmxvY2sqLCBW
YWx1ZSo+IHBvd0RvdWJsZQogICAgIFZhbHVlKiBsYXN0Q291bnRlckJpdCA9IGxvb3BUZXN0Rm9y
RXZlbkNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvY2VkdXJlLCBCaXRBbmQsIG9yaWdpbiwKICAg
ICAgICAgaW5Mb29wQ291bnRlciwKICAgICAgICAgbG9vcFRlc3RGb3JFdmVuQ2FzZS0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvY2VkdXJlLCBvcmlnaW4sIDEpKTsKLSAgICBsb29wVGVzdEZv
ckV2ZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgcHJvY2VkdXJlLCBC
cmFuY2gsIG9yaWdpbiwKLSAgICAgICAgbGFzdENvdW50ZXJCaXQsCi0gICAgICAgIEZyZXF1ZW50
ZWRCbG9jayhsb29wT2RkKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3BFdmVuT2RkKSk7CisgICAgbG9v
cFRlc3RGb3JFdmVuQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihwcm9jZWR1cmUsIEJyYW5jaCwgb3Jp
Z2luLCBsYXN0Q291bnRlckJpdCk7CisgICAgbG9vcFRlc3RGb3JFdmVuQ2FzZS0+c2V0U3VjY2Vz
c29ycyhGcmVxdWVudGVkQmxvY2sobG9vcE9kZCksIEZyZXF1ZW50ZWRCbG9jayhsb29wRXZlbk9k
ZCkpOwogCiAgICAgLy8gQ291bnRlciBpcyBvZGQuCiAgICAgVmFsdWUqIGluTG9vcFJlc3VsdCA9
IGxvb3BPZGQtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvY2VkdXJlLCBQaGksIERvdWJsZSwgb3JpZ2lu
KTsKQEAgLTk0LDcgKzkxLDggQEAgc3RkOjpwYWlyPEJhc2ljQmxvY2sqLCBWYWx1ZSo+IHBvd0Rv
dWJsZQogICAgIHVwZGF0ZWRMb29wUmVzdWx0VXBzaWxvbi0+c2V0UGhpKGluTG9vcFJlc3VsdCk7
CiAgICAgVXBzaWxvblZhbHVlKiB1cGRhdGVkTG9vcFJlc3VsdCA9IGxvb3BPZGQtPmFwcGVuZE5l
dzxVcHNpbG9uVmFsdWU+KHByb2NlZHVyZSwgb3JpZ2luLCB1cGRhdGVkUmVzdWx0KTsKIAotICAg
IGxvb3BPZGQtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2NlZHVyZSwgSnVtcCwgb3JpZ2lu
LCBGcmVxdWVudGVkQmxvY2sobG9vcEV2ZW5PZGQpKTsKKyAgICBsb29wT2RkLT5hcHBlbmROZXc8
VmFsdWU+KHByb2NlZHVyZSwgSnVtcCwgb3JpZ2luKTsKKyAgICBsb29wT2RkLT5zZXRTdWNjZXNz
b3JzKEZyZXF1ZW50ZWRCbG9jayhsb29wRXZlbk9kZCkpOwogCiAgICAgLy8gRXZlbiB2YWx1ZSBh
bmQgZm9sbG93aW5nIHRoZSBPZGQuCiAgICAgVmFsdWUqIHNxdWFyZWRJbnB1dCA9IGxvb3BFdmVu
T2RkLT5hcHBlbmROZXc8VmFsdWU+KHByb2NlZHVyZSwgTXVsLCBvcmlnaW4sIGluTG9vcFNxdWFy
ZWRJbnB1dCwgaW5Mb29wU3F1YXJlZElucHV0KTsKQEAgLTEwOSwxMCArMTA3LDggQEAgc3RkOjpw
YWlyPEJhc2ljQmxvY2sqLCBWYWx1ZSo+IHBvd0RvdWJsZQogICAgIGluaXRpYWxMb29wQ291bnRl
ci0+c2V0UGhpKGluTG9vcENvdW50ZXIpOwogICAgIHVwZGF0ZWRDb3VudGVyVXBzaWxvbi0+c2V0
UGhpKGluTG9vcENvdW50ZXIpOwogCi0gICAgbG9vcEV2ZW5PZGQtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAotICAgICAgICBwcm9jZWR1cmUsIEJyYW5jaCwgb3JpZ2luLAotICAgICAgICB1cGRh
dGVkQ291bnRlciwKLSAgICAgICAgRnJlcXVlbnRlZEJsb2NrKGxvb3BUZXN0Rm9yRXZlbkNhc2Up
LCBGcmVxdWVudGVkQmxvY2soY29udGludWF0aW9uKSk7CisgICAgbG9vcEV2ZW5PZGQtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvY2VkdXJlLCBCcmFuY2gsIG9yaWdpbiwgdXBkYXRlZENvdW50ZXIpOwor
ICAgIGxvb3BFdmVuT2RkLT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhsb29wVGVzdEZv
ckV2ZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGNvbnRpbnVhdGlvbikpOwogCiAgICAgLy8gSW5s
aW5lIGxvb3AuCiAgICAgVmFsdWUqIGZpbmFsUmVzdWx0UGhpID0gY29udGludWF0aW9uLT5hcHBl
bmROZXc8VmFsdWU+KHByb2NlZHVyZSwgUGhpLCBEb3VibGUsIG9yaWdpbik7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5MCw2
ICsyOTAsOSBAQCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgT3BjCiAgICAg
Y2FzZSBTd2l0Y2g6CiAgICAgICAgIG91dC5wcmludCgiU3dpdGNoIik7CiAgICAgICAgIHJldHVy
bjsKKyAgICBjYXNlIFBvbHlKdW1wOgorICAgICAgICBvdXQucHJpbnQoIlBvbHlKdW1wIik7Cisg
ICAgICAgIHJldHVybjsKICAgICBjYXNlIFJldHVybjoKICAgICAgICAgb3V0LnByaW50KCJSZXR1
cm4iKTsKICAgICAgICAgcmV0dXJuOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
T3Bjb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2Rl
LmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29k
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMDcsMjEgKzIwNywyMSBAQCBlbnVtIE9wY29kZSA6IGlu
dDE2X3QgewogICAgIFVwc2lsb24sIC8vIFRoaXMgdXNlcyB0aGUgVXBzaWxvblZhbHVlIGNsYXNz
LgogICAgIFBoaSwKIAotICAgIC8vIEp1bXAuIFVzZXMgdGhlIENvbnRyb2xWYWx1ZSBjbGFzcy4K
KyAgICAvLyBKdW1wLgogICAgIEp1bXAsCiAgICAgCi0gICAgLy8gUG9seW1vcnBoaWMgYnJhbmNo
LCB1c2FibGUgd2l0aCBhbnkgaW50ZWdlciB0eXBlLiBCcmFuY2hlcyBpZiBub3QgZXF1YWwgdG8g
emVyby4gVXNlcyB0aGUKLSAgICAvLyBDb250cm9sVmFsdWUgY2xhc3MsIHdpdGggdGhlIDAtaW5k
ZXggc3VjY2Vzc29yIGJlaW5nIHRoZSB0cnVlIHN1Y2Nlc3Nvci4KKyAgICAvLyBQb2x5bW9ycGhp
YyBicmFuY2gsIHVzYWJsZSB3aXRoIGFueSBpbnRlZ2VyIHR5cGUuIEJyYW5jaGVzIGlmIG5vdCBl
cXVhbCB0byB6ZXJvLiBUaGUgMC1pbmRleAorICAgIC8vIHN1Y2Nlc3NvciBpcyB0aGUgdHJ1ZSBz
dWNjZXNzb3IuCiAgICAgQnJhbmNoLAogCiAgICAgLy8gU3dpdGNoLiBTd2l0Y2hlcyBvdmVyIGVp
dGhlciBJbnQzMiBvciBJbnQ2NC4gVXNlcyB0aGUgU3dpdGNoVmFsdWUgY2xhc3MuCiAgICAgU3dp
dGNoLAotCisgICAgCiAgICAgLy8gUmV0dXJuLiBOb3RlIHRoYXQgQjMgcHJvY2VkdXJlcyBkb24n
dCBrbm93IHRoZWlyIHJldHVybiB0eXBlLCBzbyB0aGlzIGNhbiBqdXN0IHJldHVybiBhbnkKLSAg
ICAvLyB0eXBlLiBVc2VzIHRoZSBDb250cm9sVmFsdWUgY2xhc3MuCisgICAgLy8gdHlwZS4KICAg
ICBSZXR1cm4sCiAKLSAgICAvLyBUaGlzIGlzIGEgdGVybWluYWwgdGhhdCBpbmRpY2F0ZXMgdGhh
dCB3ZSB3aWxsIG5ldmVyIGdldCBoZXJlLiBVc2VzIHRoZSBDb250cm9sVmFsdWUgY2xhc3MuCisg
ICAgLy8gVGhpcyBpcyBhIHRlcm1pbmFsIHRoYXQgaW5kaWNhdGVzIHRoYXQgd2Ugd2lsbCBuZXZl
ciBnZXQgaGVyZS4KICAgICBPb3BzCiB9OwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNQYXRjaHBvaW50U3BlY2lhbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzUGF0Y2hwb2ludFNwZWNpYWwuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQYXRjaHBvaW50U3BlY2lhbC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE0Niw2ICsxNDYsMTEgQEAgQ0NhbGxIZWxwZXJzOjpKdW1wIFBhdGNocG9pbnRT
cGVjaWFsOjpnZQogICAgIHJldHVybiBDQ2FsbEhlbHBlcnM6Okp1bXAoKTsKIH0KIAorYm9vbCBQ
YXRjaHBvaW50U3BlY2lhbDo6aXNUZXJtaW5hbChJbnN0JiBpbnN0KQoreworICAgIHJldHVybiBp
bnN0Lm93bmVyLT5hczxQYXRjaHBvaW50VmFsdWU+KCktPmVmZmVjdHMudGVybWluYWw7Cit9CisK
IHZvaWQgUGF0Y2hwb2ludFNwZWNpYWw6OmR1bXBJbXBsKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0
CiB7CiAgICAgb3V0LnByaW50KCJQYXRjaHBvaW50Iik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNQYXRjaHBvaW50U3BlY2lhbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM1BhdGNocG9pbnRTcGVjaWFsLmgJKHJldmlzaW9uIDIwMjgwOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BhdGNocG9pbnRTcGVjaWFsLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtNTYsNiArNTYsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgLy8gZ2VuZXJhdGVzIHRoZSBzdGFj
a21hcC4gU3VwZXIgY3JhenkgZHVkZSEKIAogICAgIENDYWxsSGVscGVyczo6SnVtcCBnZW5lcmF0
ZShBaXI6Okluc3QmLCBDQ2FsbEhlbHBlcnMmLCBBaXI6OkdlbmVyYXRpb25Db250ZXh0Jikgb3Zl
cnJpZGU7CisgICAgCisgICAgYm9vbCBpc1Rlcm1pbmFsKEluc3QmKSBvdmVycmlkZTsKIAogICAg
IHZvaWQgZHVtcEltcGwoUHJpbnRTdHJlYW0mKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIGRl
ZXBEdW1wSW1wbChQcmludFN0cmVhbSYpIGNvbnN0IG92ZXJyaWRlOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04
Myw2ICs4Myw4IEBAIFZhcmlhYmxlKiBQcm9jZWR1cmU6OmFkZFZhcmlhYmxlKFR5cGUgdHkKIAog
VmFsdWUqIFByb2NlZHVyZTo6Y2xvbmUoVmFsdWUqIHZhbHVlKQogeworICAgIEFTU0VSVCh2YWx1
ZS0+aXNDbG9uZWFibGUoKSk7CisgICAgCiAgICAgc3RkOjp1bmlxdWVfcHRyPFZhbHVlPiBjbG9u
ZSh2YWx1ZS0+Y2xvbmVJbXBsKCkpOwogICAgIGNsb25lLT5tX2luZGV4ID0gVUlOVF9NQVg7CiAg
ICAgY2xvbmUtPm93bmVyID0gbnVsbHB0cjsKQEAgLTE0OCwzMSArMTUwLDYgQEAgdm9pZCBQcm9j
ZWR1cmU6OnJlc2V0VmFsdWVPd25lcnMoKQogCiB2b2lkIFByb2NlZHVyZTo6cmVzZXRSZWFjaGFi
aWxpdHkoKQogewotICAgIGlmIChzaG91bGRWYWxpZGF0ZUlSKCkpIHsKLSAgICAgICAgLy8gVmFs
aWRhdGUgdGhlIGJhc2ljIHByb3BlcnRpZXMgdGhhdCB3ZSBuZWVkIGZvciByZXNldHRpbmcgcmVh
Y2hhYmlsaXR5LiBXZSBvZnRlbiByZXNldAotICAgICAgICAvLyByZWFjaGFiaWxpdHkgYmVmb3Jl
IElSIHZhbGlkYXRpb24sIHNvIHdpdGhvdXQgdGhpcyBtaW5pLXZhbGlkYXRpb24sIHlvdSB3b3Vs
ZCBjcmFzaCBpbnNpZGUKLSAgICAgICAgLy8gQjM6OnJlc2V0UmVhY2hhYmlsaXR5KCkgd2l0aG91
dCBnZXR0aW5nIGFueSBJUiBkdW1wLgotCi0gICAgICAgIEJhc2ljQmxvY2sqIGJhZEJsb2NrID0g
bnVsbHB0cjsKLSAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBibG9jayA6ICp0aGlzKSB7Ci0gICAg
ICAgICAgICBpZiAoIWJsb2NrLT5zaXplKCkpIHsKLSAgICAgICAgICAgICAgICBiYWRCbG9jayA9
IGJsb2NrOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICBpZiAoIWJsb2NrLT5sYXN0KCktPmFzPENvbnRyb2xWYWx1ZT4oKSkgewotICAgICAgICAg
ICAgICAgIGJhZEJsb2NrID0gYmxvY2s7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoYmFkQmxvY2spIHsKLSAgICAgICAgICAg
IGRhdGFMb2coIkZBVEFMOiBJbnZhbGlkIGJhc2ljIGJsb2NrICIsICpiYWRCbG9jaywgIiB3aGls
ZSBydW5uaW5nIFByb2NlZHVyZTo6cmVzZXRSZWFjaGFiaWxpdHkoKS5cbiIpOwotICAgICAgICAg
ICAgZGF0YUxvZygqdGhpcyk7Ci0gICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hF
RCgpOwotICAgICAgICB9Ci0gICAgfQotICAgIAogICAgIHJlY29tcHV0ZVByZWRlY2Vzc29ycyht
X2Jsb2Nrcyk7CiAgICAgCiAgICAgLy8gVGhlIGNvbW1vbiBjYXNlIGlzIHRoYXQgdGhpcyBkb2Vz
IG5vdCBmaW5kIGFueSBkZWFkIGJsb2Nrcy4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1Byb2NlZHVyZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1Byb2NlZHVyZS5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNQcm9jZWR1cmUuaAkod29ya2luZyBjb3B5KQpAQCAtMTAxLDYgKzEwMSw3IEBAIHB1Ymxp
YzoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBWYWx1ZVR5cGUsIHR5cGVuYW1lLi4uIEFyZ3VtZW50
cz4KICAgICBWYWx1ZVR5cGUqIGFkZChBcmd1bWVudHMuLi4pOwogCisgICAgLy8gTm90ZSB0aGF0
IG5vdCBhbGwgdmFsdWVzIGFyZSBjbG9uZWFibGUuIENoZWNrIFZhbHVlOjppc0Nsb25lYWJsZSgp
IGJlZm9yZSBwcm9jZWVkaW5nLgogICAgIFZhbHVlKiBjbG9uZShWYWx1ZSopOwogCiAgICAgVmFs
dWUqIGFkZEludENvbnN0YW50KE9yaWdpbiwgVHlwZSwgaW50NjRfdCB2YWx1ZSk7CkBAIC0yMTgs
NyArMjE5LDEwIEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IGNoYXIqIGxhc3RQaGFzZU5hbWUoKSBj
b25zdCB7IHJldHVybiBtX2xhc3RQaGFzZU5hbWU7IH0KIAotICAgIHZvaWQqIGFkZERhdGFTZWN0
aW9uKHNpemVfdCBzaXplKTsKKyAgICAvLyBBbGxvY2F0ZXMgYSBzbGFiIG9mIG1lbW9yeSB0aGF0
IHdpbGwgYmUga2VwdCBhbGl2ZSBieSBhbnlvbmUgd2hvIGtlZXBzIHRoZSByZXN1bHRpbmcgY29k
ZQorICAgIC8vIGFsaXZlLiBHcmVhdCBmb3IgY29tcGlsZXItZ2VuZXJhdGVkIGRhdGEgc2VjdGlv
bnMsIGxpa2Ugc3dpdGNoIGp1bXAgdGFibGVzIGFuZCBjb25zdGFudCBwb29scy4KKyAgICAvLyBU
aGlzIHJldHVybnMgbWVtb3J5IHRoYXQgaGFzIGJlZW4gemVyby1pbml0aWFsaXplZC4KKyAgICB2
b2lkKiBhZGREYXRhU2VjdGlvbihzaXplX3QpOwogCiAgICAgT3BhcXVlQnlwcm9kdWN0cyYgYnlw
cm9kdWN0cygpIHsgcmV0dXJuICptX2J5cHJvZHVjdHM7IH0KIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcAkocmV2aXNpb24gMjAyODA5KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrSW5saW5lcy5o
IgogI2luY2x1ZGUgIkIzQmxvY2tJbnNlcnRpb25TZXQuaCIKICNpbmNsdWRlICJCM0NvbXB1dGVE
aXZpc2lvbk1hZ2ljLmgiCi0jaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKICNpbmNsdWRlICJC
M0RvbWluYXRvcnMuaCIKICNpbmNsdWRlICJCM0luZGV4U2V0LmgiCiAjaW5jbHVkZSAiQjNJbnNl
cnRpb25TZXRJbmxpbmVzLmgiCkBAIC0xNzE3LDcgKzE3MTYsNyBAQCBwcml2YXRlOgogICAgICAg
ICAgICAgICAgIC8vIFJlcGxhY2UgdGhlIHJlc3Qgb2YgdGhlIGJsb2NrIHdpdGggYW4gT29wcy4K
ICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBtX2luZGV4ICsgMTsgaSA8IG1fYmxv
Y2stPnNpemUoKSAtIDE7ICsraSkKICAgICAgICAgICAgICAgICAgICAgbV9ibG9jay0+YXQoaSkt
PnJlcGxhY2VXaXRoQm90dG9tKG1faW5zZXJ0aW9uU2V0LCBtX2luZGV4KTsKLSAgICAgICAgICAg
ICAgICBtX2Jsb2NrLT5sYXN0KCktPmFzPENvbnRyb2xWYWx1ZT4oKS0+Y29udmVydFRvT29wcygp
OworICAgICAgICAgICAgICAgIG1fYmxvY2stPmxhc3QoKS0+cmVwbGFjZVdpdGhPb3BzKG1fYmxv
Y2spOwogICAgICAgICAgICAgICAgIG1fYmxvY2stPmxhc3QoKS0+c2V0T3JpZ2luKGNoZWNrVmFs
dWUtPm9yaWdpbigpKTsKIAogICAgICAgICAgICAgICAgIC8vIFJlcGxhY2Ugb3Vyc2VsdmVzIGxh
c3QuCkBAIC0xNzczLDcgKzE3NzIsMTcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHZhbHVlLT5vcGNvZGUoKSA9PSBTZWxlY3QKICAgICAgICAgICAgICAgICAgICAgICAg
ICYmICh2YWx1ZS0+Y2hpbGQoMSktPmlzQ29uc3RhbnQoKSAmJiB2YWx1ZS0+Y2hpbGQoMiktPmlz
Q29uc3RhbnQoKSk7CiAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBpZiAoc2VsZWN0
KSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHRoZSByZWxl
dmFudCBjb2RlIGlzIGNsb25lYWJsZS4KKyAgICAgICAgICAgIGJvb2wgYWxsQXJlQ2xvbmVhYmxl
ID0gdHJ1ZTsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgaW5kZXggPSBtX2luZGV4ICsgMTsg
aW5kZXgtLTspIHsKKyAgICAgICAgICAgICAgICBWYWx1ZSogdmFsdWUgPSBtX2Jsb2NrLT5hdChp
bmRleCk7CisgICAgICAgICAgICAgICAgYWxsQXJlQ2xvbmVhYmxlICY9IHZhbHVlLT5pc0Nsb25l
YWJsZSgpOworICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBzZWxlY3QpCisgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAg
ICBpZiAoc2VsZWN0ICYmIGFsbEFyZUNsb25lYWJsZSkgewogICAgICAgICAgICAgICAgIHNwZWNp
YWxpemVTZWxlY3Qoc2VsZWN0KTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
IH0KQEAgLTE3ODEsNTAgKzE3OTAsNDggQEAgcHJpdmF0ZToKICAgICAgICAgfQogCiAgICAgICAg
IGNhc2UgQnJhbmNoOiB7Ci0gICAgICAgICAgICBDb250cm9sVmFsdWUqIGJyYW5jaCA9IG1fdmFs
dWUtPmFzPENvbnRyb2xWYWx1ZT4oKTsKLQogICAgICAgICAgICAgLy8gVHVybiB0aGlzOiBCcmFu
Y2goTm90RXF1YWwoeCwgMCkpCiAgICAgICAgICAgICAvLyBJbnRvIHRoaXM6IEJyYW5jaCh4KQot
ICAgICAgICAgICAgaWYgKGJyYW5jaC0+Y2hpbGQoMCktPm9wY29kZSgpID09IE5vdEVxdWFsICYm
IGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDEpLT5pc0ludCgwKSkgewotICAgICAgICAgICAgICAg
IGJyYW5jaC0+Y2hpbGQoMCkgPSBicmFuY2gtPmNoaWxkKDApLT5jaGlsZCgwKTsKKyAgICAgICAg
ICAgIGlmIChtX3ZhbHVlLT5jaGlsZCgwKS0+b3Bjb2RlKCkgPT0gTm90RXF1YWwgJiYgbV92YWx1
ZS0+Y2hpbGQoMCktPmNoaWxkKDEpLT5pc0ludCgwKSkgeworICAgICAgICAgICAgICAgIG1fdmFs
dWUtPmNoaWxkKDApID0gbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDApOwogICAgICAgICAgICAg
ICAgIG1fY2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIC8vIFR1
cm4gdGhpczogQnJhbmNoKEVxdWFsKHgsIDApLCB0aGVuLCBlbHNlKQogICAgICAgICAgICAgLy8g
SW50byB0aGlzOiBCcmFuY2goeCwgZWxzZSwgdGhlbikKLSAgICAgICAgICAgIGlmIChicmFuY2gt
PmNoaWxkKDApLT5vcGNvZGUoKSA9PSBFcXVhbCAmJiBicmFuY2gtPmNoaWxkKDApLT5jaGlsZCgx
KS0+aXNJbnQoMCkpIHsKLSAgICAgICAgICAgICAgICBicmFuY2gtPmNoaWxkKDApID0gYnJhbmNo
LT5jaGlsZCgwKS0+Y2hpbGQoMCk7Ci0gICAgICAgICAgICAgICAgc3RkOjpzd2FwKGJyYW5jaC0+
dGFrZW4oKSwgYnJhbmNoLT5ub3RUYWtlbigpKTsKKyAgICAgICAgICAgIGlmIChtX3ZhbHVlLT5j
aGlsZCgwKS0+b3Bjb2RlKCkgPT0gRXF1YWwgJiYgbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDEp
LT5pc0ludCgwKSkgeworICAgICAgICAgICAgICAgIG1fdmFsdWUtPmNoaWxkKDApID0gbV92YWx1
ZS0+Y2hpbGQoMCktPmNoaWxkKDApOworICAgICAgICAgICAgICAgIHN0ZDo6c3dhcChtX2Jsb2Nr
LT50YWtlbigpLCBtX2Jsb2NrLT5ub3RUYWtlbigpKTsKICAgICAgICAgICAgICAgICBtX2NoYW5n
ZWQgPSB0cnVlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgICAgICAvLyBU
dXJuIHRoaXM6IEJyYW5jaChCaXRYb3IoYm9vbCwgMSksIHRoZW4sIGVsc2UpCiAgICAgICAgICAg
ICAvLyBJbnRvIHRoaXM6IEJyYW5jaChib29sLCBlbHNlLCB0aGVuKQotICAgICAgICAgICAgaWYg
KGJyYW5jaC0+Y2hpbGQoMCktPm9wY29kZSgpID09IEJpdFhvcgotICAgICAgICAgICAgICAgICYm
IGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDEpLT5pc0ludDMyKDEpCi0gICAgICAgICAgICAgICAg
JiYgYnJhbmNoLT5jaGlsZCgwKS0+Y2hpbGQoMCktPnJldHVybnNCb29sKCkpIHsKLSAgICAgICAg
ICAgICAgICBicmFuY2gtPmNoaWxkKDApID0gYnJhbmNoLT5jaGlsZCgwKS0+Y2hpbGQoMCk7Ci0g
ICAgICAgICAgICAgICAgc3RkOjpzd2FwKGJyYW5jaC0+dGFrZW4oKSwgYnJhbmNoLT5ub3RUYWtl
bigpKTsKKyAgICAgICAgICAgIGlmIChtX3ZhbHVlLT5jaGlsZCgwKS0+b3Bjb2RlKCkgPT0gQml0
WG9yCisgICAgICAgICAgICAgICAgJiYgbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDEpLT5pc0lu
dDMyKDEpCisgICAgICAgICAgICAgICAgJiYgbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDApLT5y
ZXR1cm5zQm9vbCgpKSB7CisgICAgICAgICAgICAgICAgbV92YWx1ZS0+Y2hpbGQoMCkgPSBtX3Zh
bHVlLT5jaGlsZCgwKS0+Y2hpbGQoMCk7CisgICAgICAgICAgICAgICAgc3RkOjpzd2FwKG1fYmxv
Y2stPnRha2VuKCksIG1fYmxvY2stPm5vdFRha2VuKCkpOwogICAgICAgICAgICAgICAgIG1fY2hh
bmdlZCA9IHRydWU7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIC8vIFR1cm4gdGhpczog
QnJhbmNoKEJpdEFuZChib29sLCB4eWIxKSwgdGhlbiwgZWxzZSkKICAgICAgICAgICAgIC8vIElu
dG8gdGhpczogQnJhbmNoKGJvb2wsIHRoZW4sIGVsc2UpCi0gICAgICAgICAgICBpZiAoYnJhbmNo
LT5jaGlsZCgwKS0+b3Bjb2RlKCkgPT0gQml0QW5kCi0gICAgICAgICAgICAgICAgJiYgYnJhbmNo
LT5jaGlsZCgwKS0+Y2hpbGQoMSktPmhhc0ludCgpCi0gICAgICAgICAgICAgICAgJiYgYnJhbmNo
LT5jaGlsZCgwKS0+Y2hpbGQoMSktPmFzSW50KCkgJiAxCi0gICAgICAgICAgICAgICAgJiYgYnJh
bmNoLT5jaGlsZCgwKS0+Y2hpbGQoMCktPnJldHVybnNCb29sKCkpIHsKLSAgICAgICAgICAgICAg
ICBicmFuY2gtPmNoaWxkKDApID0gYnJhbmNoLT5jaGlsZCgwKS0+Y2hpbGQoMCk7CisgICAgICAg
ICAgICBpZiAobV92YWx1ZS0+Y2hpbGQoMCktPm9wY29kZSgpID09IEJpdEFuZAorICAgICAgICAg
ICAgICAgICYmIG1fdmFsdWUtPmNoaWxkKDApLT5jaGlsZCgxKS0+aGFzSW50KCkKKyAgICAgICAg
ICAgICAgICAmJiBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMSktPmFzSW50KCkgJiAxCisgICAg
ICAgICAgICAgICAgJiYgbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDApLT5yZXR1cm5zQm9vbCgp
KSB7CisgICAgICAgICAgICAgICAgbV92YWx1ZS0+Y2hpbGQoMCkgPSBtX3ZhbHVlLT5jaGlsZCgw
KS0+Y2hpbGQoMCk7CiAgICAgICAgICAgICAgICAgbV9jaGFuZ2VkID0gdHJ1ZTsKICAgICAgICAg
ICAgIH0KIAotICAgICAgICAgICAgVHJpU3RhdGUgdHJpU3RhdGUgPSBicmFuY2gtPmNoaWxkKDAp
LT5hc1RyaVN0YXRlKCk7CisgICAgICAgICAgICBUcmlTdGF0ZSB0cmlTdGF0ZSA9IG1fdmFsdWUt
PmNoaWxkKDApLT5hc1RyaVN0YXRlKCk7CiAKICAgICAgICAgICAgIC8vIFR1cm4gdGhpczogQnJh
bmNoKDAsIHRoZW4sIGVsc2UpCiAgICAgICAgICAgICAvLyBJbnRvIHRoaXM6IEp1bXAoZWxzZSkK
ICAgICAgICAgICAgIGlmICh0cmlTdGF0ZSA9PSBGYWxzZVRyaVN0YXRlKSB7Ci0gICAgICAgICAg
ICAgICAgYnJhbmNoLT50YWtlbigpLmJsb2NrKCktPnJlbW92ZVByZWRlY2Vzc29yKG1fYmxvY2sp
OwotICAgICAgICAgICAgICAgIGJyYW5jaC0+Y29udmVydFRvSnVtcChicmFuY2gtPm5vdFRha2Vu
KCkuYmxvY2soKSk7CisgICAgICAgICAgICAgICAgbV9ibG9jay0+dGFrZW4oKS5ibG9jaygpLT5y
ZW1vdmVQcmVkZWNlc3NvcihtX2Jsb2NrKTsKKyAgICAgICAgICAgICAgICBtX3ZhbHVlLT5yZXBs
YWNlV2l0aEp1bXAobV9ibG9jaywgbV9ibG9jay0+bm90VGFrZW4oKS5ibG9jaygpKTsKICAgICAg
ICAgICAgICAgICBtX2NoYW5nZWRDRkcgPSB0cnVlOwogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgfQpAQCAtMTgzMiw4ICsxODM5LDggQEAgcHJpdmF0ZToKICAgICAgICAgICAg
IC8vIFR1cm4gdGhpczogQnJhbmNoKG5vdCAwLCB0aGVuLCBlbHNlKQogICAgICAgICAgICAgLy8g
SW50byB0aGlzOiBKdW1wKHRoZW4pCiAgICAgICAgICAgICBpZiAodHJpU3RhdGUgPT0gVHJ1ZVRy
aVN0YXRlKSB7Ci0gICAgICAgICAgICAgICAgYnJhbmNoLT5ub3RUYWtlbigpLmJsb2NrKCktPnJl
bW92ZVByZWRlY2Vzc29yKG1fYmxvY2spOwotICAgICAgICAgICAgICAgIGJyYW5jaC0+Y29udmVy
dFRvSnVtcChicmFuY2gtPnRha2VuKCkuYmxvY2soKSk7CisgICAgICAgICAgICAgICAgbV9ibG9j
ay0+bm90VGFrZW4oKS5ibG9jaygpLT5yZW1vdmVQcmVkZWNlc3NvcihtX2Jsb2NrKTsKKyAgICAg
ICAgICAgICAgICBtX3ZhbHVlLT5yZXBsYWNlV2l0aEp1bXAobV9ibG9jaywgbV9ibG9jay0+dGFr
ZW4oKS5ibG9jaygpKTsKICAgICAgICAgICAgICAgICBtX2NoYW5nZWRDRkcgPSB0cnVlOwogICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpAQCAtMTg0MiwxMiArMTg0OSwxMiBA
QCBwcml2YXRlOgogICAgICAgICAgICAgLy8gb2YgbWFrZXMgc2Vuc2UgaGVyZSBiZWNhdXNlIGl0
J3MgY2hlYXAsIGJ1dCBoYWNrcyBsaWtlIHRoaXMgc2hvdyB0aGF0IHdlJ3JlIGdvaW5nCiAgICAg
ICAgICAgICAvLyB0byBuZWVkIFNDQ1AuCiAgICAgICAgICAgICBWYWx1ZSogY2hlY2sgPSBtX3B1
cmVDU0UuZmluZE1hdGNoKAotICAgICAgICAgICAgICAgIFZhbHVlS2V5KENoZWNrLCBWb2lkLCBi
cmFuY2gtPmNoaWxkKDApKSwgbV9ibG9jaywgKm1fZG9taW5hdG9ycyk7CisgICAgICAgICAgICAg
ICAgVmFsdWVLZXkoQ2hlY2ssIFZvaWQsIG1fdmFsdWUtPmNoaWxkKDApKSwgbV9ibG9jaywgKm1f
ZG9taW5hdG9ycyk7CiAgICAgICAgICAgICBpZiAoY2hlY2spIHsKICAgICAgICAgICAgICAgICAv
LyBUaGUgQ2hlY2sgd291bGQgaGF2ZSBzaWRlLWV4aXRlZCBpZiBjaGlsZCgwKSB3YXMgbm9uLXpl
cm8uIFNvLCBpdCBtdXN0IGJlCiAgICAgICAgICAgICAgICAgLy8gemVybyBoZXJlLgotICAgICAg
ICAgICAgICAgIGJyYW5jaC0+dGFrZW4oKS5ibG9jaygpLT5yZW1vdmVQcmVkZWNlc3NvcihtX2Js
b2NrKTsKLSAgICAgICAgICAgICAgICBicmFuY2gtPmNvbnZlcnRUb0p1bXAoYnJhbmNoLT5ub3RU
YWtlbigpLmJsb2NrKCkpOworICAgICAgICAgICAgICAgIG1fYmxvY2stPnRha2VuKCkuYmxvY2so
KS0+cmVtb3ZlUHJlZGVjZXNzb3IobV9ibG9jayk7CisgICAgICAgICAgICAgICAgbV92YWx1ZS0+
cmVwbGFjZVdpdGhKdW1wKG1fYmxvY2ssIG1fYmxvY2stPm5vdFRha2VuKCkuYmxvY2soKSk7CiAg
ICAgICAgICAgICAgICAgbV9jaGFuZ2VkQ0ZHID0gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIGJyZWFrOwpAQCAtMTk4NiwxMyArMTk5MywxMiBAQCBwcml2YXRlOgogICAgICAgICAv
LyBSZW1vdmUgdGhlIHZhbHVlcyBmcm9tIHRoZSBwcmVkZWNlc3Nvci4KICAgICAgICAgcHJlZGVj
ZXNzb3ItPnZhbHVlcygpLnJlc2l6ZShzdGFydEluZGV4KTsKICAgICAgICAgCi0gICAgICAgIHBy
ZWRlY2Vzc29yLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgICAgIG1fcHJvYywg
QnJhbmNoLCBzb3VyY2UtPm9yaWdpbigpLCBwcmVkaWNhdGUsCi0gICAgICAgICAgICBGcmVxdWVu
dGVkQmxvY2soY2FzZXNbMF0pLCBGcmVxdWVudGVkQmxvY2soY2FzZXNbMV0pKTsKKyAgICAgICAg
cHJlZGVjZXNzb3ItPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBCcmFuY2gsIHNvdXJjZS0+b3Jp
Z2luKCksIHByZWRpY2F0ZSk7CisgICAgICAgIHByZWRlY2Vzc29yLT5zZXRTdWNjZXNzb3JzKEZy
ZXF1ZW50ZWRCbG9jayhjYXNlc1swXSksIEZyZXF1ZW50ZWRCbG9jayhjYXNlc1sxXSkpOwogCiAg
ICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1DYXNlczsgKytpKSB7Ci0gICAgICAg
ICAgICBjYXNlc1tpXS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCi0gICAgICAgICAgICAgICAg
bV9wcm9jLCBKdW1wLCBtX3ZhbHVlLT5vcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKG1fYmxvY2sp
KTsKKyAgICAgICAgICAgIGNhc2VzW2ldLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgSnVtcCwg
bV92YWx1ZS0+b3JpZ2luKCkpOworICAgICAgICAgICAgY2FzZXNbaV0tPnNldFN1Y2Nlc3NvcnMo
RnJlcXVlbnRlZEJsb2NrKG1fYmxvY2spKTsKICAgICAgICAgfQogCiAgICAgICAgIG1fY2hhbmdl
ZCA9IHRydWU7CkBAIC0yMjIxLDcgKzIyMjcsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRhdGFMb2coCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJD
aGFuZ2luZyAiLCBwb2ludGVyRHVtcChibG9jayksICIncyB0ZXJtaW5hbCB0byBhIEp1bXAuXG4i
KTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGJs
b2NrLT5sYXN0KCktPmFzPENvbnRyb2xWYWx1ZT4oKS0+Y29udmVydFRvSnVtcChmaXJzdFN1Y2Nl
c3Nvcik7CisgICAgICAgICAgICAgICAgICAgICAgICBibG9jay0+bGFzdCgpLT5yZXBsYWNlV2l0
aEp1bXAoYmxvY2ssIGZpcnN0U3VjY2Vzc29yKTsKICAgICAgICAgICAgICAgICAgICAgICAgIG1f
Y2hhbmdlZENGRyA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICB9CkBAIC0yMjM5LDE2ICsyMjQ1LDE4IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAg
IC8vIFJlbW92ZSB0aGUgdGVybWluYWwuCiAgICAgICAgICAgICAgICAgICAgIFZhbHVlKiB2YWx1
ZSA9IGJsb2NrLT52YWx1ZXMoKS50YWtlTGFzdCgpOwogICAgICAgICAgICAgICAgICAgICBPcmln
aW4ganVtcE9yaWdpbiA9IHZhbHVlLT5vcmlnaW4oKTsKLSAgICAgICAgICAgICAgICAgICAgUkVM
RUFTRV9BU1NFUlQodmFsdWUtPmFzPENvbnRyb2xWYWx1ZT4oKSk7CisgICAgICAgICAgICAgICAg
ICAgIFJFTEVBU0VfQVNTRVJUKHZhbHVlLT5lZmZlY3RzKCkudGVybWluYWwpOwogICAgICAgICAg
ICAgICAgICAgICBtX3Byb2MuZGVsZXRlVmFsdWUodmFsdWUpOwogICAgICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICAgICAgLy8gQXBwZW5kIHRoZSBmdWxsIGNvbnRlbnRzIG9mIHRo
ZSBzdWNjZXNzb3IgdG8gdGhlIHByZWRlY2Vzc29yLgogICAgICAgICAgICAgICAgICAgICBibG9j
ay0+dmFsdWVzKCkuYXBwZW5kVmVjdG9yKHN1Y2Nlc3Nvci0+dmFsdWVzKCkpOworICAgICAgICAg
ICAgICAgICAgICBibG9jay0+c3VjY2Vzc29ycygpID0gc3VjY2Vzc29yLT5zdWNjZXNzb3JzKCk7
CiAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAvLyBNYWtlIHN1cmUg
dGhhdCB0aGUgc3VjY2Vzc29yIGhhcyBub3RoaW5nIGxlZnQgaW4gaXQuIE1ha2Ugc3VyZSB0aGF0
IHRoZSBibG9jawogICAgICAgICAgICAgICAgICAgICAvLyBoYXMgYSB0ZXJtaW5hbCBzbyB0aGF0
IG5vYm9keSBjaG9rZXMgd2hlbiB0aGV5IGxvb2sgYXQgaXQuCiAgICAgICAgICAgICAgICAgICAg
IHN1Y2Nlc3Nvci0+dmFsdWVzKCkucmVzaXplKDApOwotICAgICAgICAgICAgICAgICAgICBzdWNj
ZXNzb3ItPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KG1fcHJvYywgT29wcywganVtcE9yaWdpbik7
CisgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3Nvci0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2Ms
IE9vcHMsIGp1bXBPcmlnaW4pOworICAgICAgICAgICAgICAgICAgICBzdWNjZXNzb3ItPmNsZWFy
U3VjY2Vzc29ycygpOwogICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg
Ly8gRW5zdXJlIHRoYXQgcHJlZGVjZXNzb3JzIG9mIGJsb2NrJ3MgbmV3IHN1Y2Nlc3NvcnMga25v
dyB3aGF0J3MgdXAuCiAgICAgICAgICAgICAgICAgICAgIGZvciAoQmFzaWNCbG9jayogbmV3U3Vj
Y2Vzc29yIDogYmxvY2stPnN1Y2Nlc3NvckJsb2NrcygpKQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcEdlbmVyYXRpb25QYXJhbXMuY3BwCShy
ZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcEdl
bmVyYXRpb25QYXJhbXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU5LDYgKzU5LDI3IEBAIFJlZ2lzdGVy
U2V0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtczo6dW4KICAgICByZXR1cm4gcmVzdWx0OwogfQog
CitWZWN0b3I8Qm94PENDYWxsSGVscGVyczo6TGFiZWw+PiBTdGFja21hcEdlbmVyYXRpb25QYXJh
bXM6OnN1Y2Nlc3NvckxhYmVscygpIGNvbnN0Cit7CisgICAgUkVMRUFTRV9BU1NFUlQobV9jb250
ZXh0LmluZGV4SW5CbG9jayA9PSBtX2NvbnRleHQuYmxvY2stPnNpemUoKSAtIDEpOworICAgIFJF
TEVBU0VfQVNTRVJUKG1fdmFsdWUtPmVmZmVjdHMoKS50ZXJtaW5hbCk7CisgICAgCisgICAgVmVj
dG9yPEJveDxDQ2FsbEhlbHBlcnM6OkxhYmVsPj4gcmVzdWx0KG1fY29udGV4dC5ibG9jay0+bnVt
U3VjY2Vzc29ycygpKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSBtX2NvbnRleHQuYmxvY2stPm51
bVN1Y2Nlc3NvcnMoKTsgaS0tOykKKyAgICAgICAgcmVzdWx0W2ldID0gbV9jb250ZXh0LmJsb2Nr
TGFiZWxzW21fY29udGV4dC5ibG9jay0+c3VjY2Vzc29yQmxvY2soaSldOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CisKK2Jvb2wgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zOjpmYWxsc1Rocm91Z2hU
b1N1Y2Nlc3Nvcih1bnNpZ25lZCBzdWNjZXNzb3JJbmRleCkgY29uc3QKK3sKKyAgICBSRUxFQVNF
X0FTU0VSVChtX2NvbnRleHQuaW5kZXhJbkJsb2NrID09IG1fY29udGV4dC5ibG9jay0+c2l6ZSgp
IC0gMSk7CisgICAgUkVMRUFTRV9BU1NFUlQobV92YWx1ZS0+ZWZmZWN0cygpLnRlcm1pbmFsKTsK
KyAgICAKKyAgICBCYXNpY0Jsb2NrKiBzdWNjZXNzb3IgPSBtX2NvbnRleHQuYmxvY2stPnN1Y2Nl
c3NvckJsb2NrKHN1Y2Nlc3NvckluZGV4KTsKKyAgICBCYXNpY0JsY29rKiBuZXh0QmxvY2sgPSBt
X2NvbnRleHQuY29kZS0+ZmluZE5leHRCbG9jayhtX2NvbnRleHQuYmxvY2spOworICAgIHJldHVy
biBzdWNjZXNzb3IgPT0gbmV4dEJsb2NrOworfQorCiBQcm9jZWR1cmUmIFN0YWNrbWFwR2VuZXJh
dGlvblBhcmFtczo6cHJvYygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fY29udGV4dC5jb2RlLT5w
cm9jKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcEdlbmVyYXRp
b25QYXJhbXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFj
a21hcEdlbmVyYXRpb25QYXJhbXMuaAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmgJKHdvcmtpbmcgY29weSkK
QEAgLTMwLDcgKzMwLDkgQEAKIAogI2luY2x1ZGUgIkFpckdlbmVyYXRpb25Db250ZXh0LmgiCiAj
aW5jbHVkZSAiQjNWYWx1ZVJlcC5oIgorI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgogI2luY2x1
ZGUgIlJlZ2lzdGVyU2V0LmgiCisjaW5jbHVkZSA8d3RmL0JveC5oPgogCiBuYW1lc3BhY2UgSlND
IHsgbmFtZXNwYWNlIEIzIHsKIApAQCAtMzksNiArNDEsOCBAQCBjbGFzcyBQYXRjaHBvaW50U3Bl
Y2lhbDsKIGNsYXNzIFByb2NlZHVyZTsKIGNsYXNzIFN0YWNrbWFwVmFsdWU7CiAKKy8vIE5PVEU6
IEl0J3MgcG9zc2libGUgdG8gY2FwdHVyZSBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMgYnkgdmFs
dWUsIGJ1dCBub3QgYWxsIG9mIHRoZSBtZXRob2RzIHdpbGwKKy8vIHdvcmsgaWYgeW91IGRvIHRo
YXQuCiBjbGFzcyBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMgewogcHVibGljOgogICAgIC8vIFRo
aXMgaXMgdGhlIHN0YWNrbWFwIHZhbHVlIHRoYXQgd2UncmUgZ2VuZXJhdGluZy4KQEAgLTgwLDYg
Kzg0LDEyIEBAIHB1YmxpYzoKIAogICAgIEdQUlJlZyBncFNjcmF0Y2godW5zaWduZWQgaW5kZXgp
IGNvbnN0IHsgcmV0dXJuIG1fZ3BTY3JhdGNoW2luZGV4XTsgfQogICAgIEZQUlJlZyBmcFNjcmF0
Y2godW5zaWduZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fZnBTY3JhdGNoW2luZGV4XTsgfQor
ICAgIAorICAgIC8vIFRoaXMgaXMgY29tcHV0ZWQgbGF6aWx5LCBzbyBpdCB3b24ndCB3b3JrIGlm
IHlvdSBjYXB0dXJlIFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyBieSB2YWx1ZS4KKyAgICBWZWN0
b3I8Qm94PENDYWxsSGVscGVyczo6TGFiZWw+PiBzdWNjZXNzb3JMYWJlbHMoKSBjb25zdDsKKyAg
ICAKKyAgICAvLyBUaGlzIGlzIGNvbXB1dGVkIGxhemlseSBhbHNvLgorICAgIGJvb2wgZmFsbHNU
aHJvdWdoVG9TdWNjZXNzb3IodW5zaWduZWQgc3VjY2Vzc29ySW5kZXgpIGNvbnN0OwogCiAgICAg
Ly8gVGhpcyBpcyBwcm92aWRlZCBmb3IgY29udmVuaWVuY2U7IGl0IG1lYW5zIHRoYXQgeW91IGRv
bid0IGhhdmUgdG8gY2FwdHVyZSBpdCBpZiB5b3UgZG9uJ3Qgd2FudCB0by4KICAgICBQcm9jZWR1
cmUmIHByb2MoKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N3aXRj
aFZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTd2l0
Y2hWYWx1ZS5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1N3aXRjaFZhbHVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsMzAgKzM3LDY5IEBAIFN3
aXRjaFZhbHVlOjp+U3dpdGNoVmFsdWUoKQogewogfQogCi1Td2l0Y2hDYXNlIFN3aXRjaFZhbHVl
OjpyZW1vdmVDYXNlKHVuc2lnbmVkIGluZGV4KQorU3dpdGNoQ2FzZSBTd2l0Y2hWYWx1ZTo6cmVt
b3ZlQ2FzZShCYXNpY0Jsb2NrKiBibG9jaywgdW5zaWduZWQgaW5kZXgpCiB7Ci0gICAgRnJlcXVl
bnRlZEJsb2NrIHJlc3VsdEJsb2NrID0gbV9zdWNjZXNzb3JzW2luZGV4XTsKKyAgICBGcmVxdWVu
dGVkQmxvY2sgcmVzdWx0QmxvY2sgPSBibG9jay0+c3VjY2Vzc29yKGluZGV4KTsKICAgICBpbnQ2
NF90IHJlc3VsdFZhbHVlID0gbV92YWx1ZXNbaW5kZXhdOwotICAgIG1fc3VjY2Vzc29yc1tpbmRl
eF0gPSBtX3N1Y2Nlc3NvcnMubGFzdCgpOwotICAgIG1fc3VjY2Vzc29ycy5yZW1vdmVMYXN0KCk7
CisgICAgYmxvY2stPnN1Y2Nlc3NvcihpbmRleCkgPSBibG9jay0+c3VjY2Vzc29ycygpLmxhc3Qo
KTsKKyAgICBibG9jay0+c3VjY2Vzc29ycygpLnJlbW92ZUxhc3QoKTsKICAgICBtX3ZhbHVlc1tp
bmRleF0gPSBtX3ZhbHVlcy5sYXN0KCk7CiAgICAgbV92YWx1ZXMucmVtb3ZlTGFzdCgpOwogICAg
IHJldHVybiBTd2l0Y2hDYXNlKHJlc3VsdFZhbHVlLCByZXN1bHRCbG9jayk7CiB9CiAKLXZvaWQg
U3dpdGNoVmFsdWU6OmFwcGVuZENhc2UoY29uc3QgU3dpdGNoQ2FzZSYgc3dpdGNoQ2FzZSkKK3Zv
aWQgU3dpdGNoVmFsdWU6OnNldEZhbGx0aHJvdWdoKEJhc2ljQmxvY2sqIGJsb2NrLCBjb25zdCBG
cmVxdWVudGVkQmxvY2smIHRhcmdldCkKIHsKLSAgICBtX3N1Y2Nlc3NvcnMuYXBwZW5kKG1fc3Vj
Y2Vzc29ycy5sYXN0KCkpOwotICAgIG1fc3VjY2Vzc29yc1ttX3N1Y2Nlc3NvcnMuc2l6ZSgpIC0g
Ml0gPSBzd2l0Y2hDYXNlLnRhcmdldCgpOworICAgIHVuc2lnbmVkIG51bVN1Y2Nlc3NvcnMgPSBi
bG9jay0+bnVtU3VjY2Vzc29ycygpOworICAgIHVuc2lnbmVkIG51bVZhbHVlcyA9IG1fdmFsdWVz
LnNpemUoKTsKKyAgICBSRUxFQVNFX0FTU0VSVCh2YWx1ZXMgPT0gbnVtU3VjY2Vzc29ycyB8fCB2
YWx1ZXMgKyAxID09IG51bVN1Y2Nlc3NvcnMpOworICAgIAorICAgIGlmICh2YWx1ZXMgPT0gbnVt
U3VjY2Vzc29ycykKKyAgICAgICAgYmxvY2stPnN1Y2Nlc3NvcnMoKS5hcHBlbmQoc3dpdGNoQ2Fz
ZS50YXJnZXQoKSk7CisgICAgZWxzZQorICAgICAgICBibG9jay0+c3VjY2Vzc29ycygpLmxhc3Qo
KSA9IHN3aXRjaENhc2UudGFyZ2V0KCk7Cit9CisKK3ZvaWQgU3dpdGNoVmFsdWU6OmFwcGVuZENh
c2UoQmFzaWNCbG9jayogYmxvY2ssIGNvbnN0IFN3aXRjaENhc2UmIHN3aXRjaENhc2UpCit7Cisg
ICAgdW5zaWduZWQgbnVtU3VjY2Vzc29ycyA9IGJsb2NrLT5udW1TdWNjZXNzb3JzKCk7CisgICAg
dW5zaWduZWQgbnVtVmFsdWVzID0gbV92YWx1ZXMuc2l6ZSgpOworICAgIFJFTEVBU0VfQVNTRVJU
KHZhbHVlcyA9PSBudW1TdWNjZXNzb3JzIHx8IHZhbHVlcyArIDEgPT0gbnVtU3VjY2Vzc29ycyk7
CisgICAgCisgICAgaWYgKHZhbHVlcyA9PSBudW1TdWNjZXNzb3JzKQorICAgICAgICBibG9jay0+
c3VjY2Vzc29ycygpLmFwcGVuZChzd2l0Y2hDYXNlLnRhcmdldCgpKTsKKyAgICBlbHNlIHsKKyAg
ICAgICAgYmxvY2stPnN1Y2Nlc3NvcnMoKS5hcHBlbmQoYmxvY2stPnN1Y2Nlc3NvcnMoKS5sYXN0
KCkpOworICAgICAgICBibG9jay0+c3VjY2Vzc29yKGJsb2NrLT5udW1TdWNjZXNzb3JzKCkgLSAy
KSA9IHN3aXRjaENhc2UudGFyZ2V0KCk7CisgICAgfQogICAgIG1fdmFsdWVzLmFwcGVuZChzd2l0
Y2hDYXNlLmNhc2VWYWx1ZSgpKTsKIH0KIAordm9pZCBTd2l0Y2hWYWx1ZTo6c2V0RmFsbHRocm91
Z2goY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YXJnZXQpCit7CisgICAgc2V0RmFsbHRocm91Z2go
b3duZXIsIHRhcmdldCk7Cit9CisKK3ZvaWQgU3dpdGNoVmFsdWU6OmFwcGVuZENhc2UoY29uc3Qg
U3dpdGNoQ2FzZSYgc3dpdGNoQ2FzZSkKK3sKKyAgICBhcHBlbmRDYXNlKG93bmVyLCBzd2l0Y2hD
YXNlKTsKK30KKwordm9pZCBTd2l0Y2hWYWx1ZTo6ZHVtcFN1Y2Nlc3NvcnMoQmFzaWNCbG9jayog
YmxvY2ssIFByaW50U3RyZWFtJiBvdXQpIGNvbnN0Cit7CisgICAgLy8gV2UgbXVzdCBub3QgY3Jh
c2ggZHVlIHRvIGEgbnVtYmVyLW9mLXN1Y2Nlc3NvcnMgbWlzbWF0Y2ghIFNvbWVvbmUgZGVidWdn
aW5nIGEKKyAgICAvLyBudW1iZXItb2Ytc3VjY2Vzc29ycyBidWcgd2lsbCB3YW50IHRvIGR1bXAg
SVIhCisgICAgaWYgKG51bUNhc2VWYWx1ZXMoKSArIDEgIT0gYmxvY2stPm51bVN1Y2Nlc3NvcnMo
KSkgeworICAgICAgICBWYWx1ZTo6ZHVtcFN1Y2Nlc3NvcnMoYmxvY2ssIG91dCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisgICAgCisgICAgb3V0LnByaW50KGNhc2VzKGJsb2NrKSk7Cit9CisK
IHZvaWQgU3dpdGNoVmFsdWU6OmR1bXBNZXRhKENvbW1hUHJpbnRlciYgY29tbWEsIFByaW50U3Ry
ZWFtJiBvdXQpIGNvbnN0CiB7Ci0gICAgLy8gVGhpcyBkZXN0cnVjdGl2ZWx5IG92ZXJyaWRlcyBD
b250cm9sVmFsdWUncyBkdW1wTWV0YSgpLgotICAgIGZvciAoU3dpdGNoQ2FzZSBzd2l0Y2hDYXNl
IDogKnRoaXMpCi0gICAgICAgIG91dC5wcmludChjb21tYSwgc3dpdGNoQ2FzZSk7Ci0gICAgb3V0
LnByaW50KGNvbW1hLCAiZmFsbFRocm91Z2ggPSAiLCBmYWxsVGhyb3VnaCgpKTsKKyAgICBvdXQu
cHJpbnQoY29tbWEsICJjYXNlcyA9IFsiLCBsaXN0RHVtcChtX3ZhbHVlcyksICJdIik7CiB9CiAK
IFZhbHVlKiBTd2l0Y2hWYWx1ZTo6Y2xvbmVJbXBsKCkgY29uc3QKQEAgLTY4LDEwICsxMDcsOSBA
QCBWYWx1ZSogU3dpdGNoVmFsdWU6OmNsb25lSW1wbCgpIGNvbnN0CiAgICAgcmV0dXJuIG5ldyBT
d2l0Y2hWYWx1ZSgqdGhpcyk7CiB9CiAKLVN3aXRjaFZhbHVlOjpTd2l0Y2hWYWx1ZShPcmlnaW4g
b3JpZ2luLCBWYWx1ZSogY2hpbGQsIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgZmFsbFRocm91Z2gp
Ci0gICAgOiBDb250cm9sVmFsdWUoU3dpdGNoLCBWb2lkLCBvcmlnaW4sIGNoaWxkKQorU3dpdGNo
VmFsdWU6OlN3aXRjaFZhbHVlKE9yaWdpbiBvcmlnaW4sIFZhbHVlKiBjaGlsZCkKKyAgICA6IFZh
bHVlKENoZWNrZWRPcGNvZGUsIFN3aXRjaCwgVm9pZCwgb3JpZ2luLCBjaGlsZCkKIHsKLSAgICBt
X3N1Y2Nlc3NvcnMuYXBwZW5kKGZhbGxUaHJvdWdoKTsKIH0KIAogfSB9IC8vIG5hbWVzcGFjZSBK
U0M6OkIzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTd2l0Y2hWYWx1ZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N3aXRjaFZhbHVlLmgJKHJl
dmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N3aXRjaFZhbHVl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDEyICsyOCwxMyBAQAogCiAjaWYgRU5BQkxFKEIzX0pJ
VCkKIAotI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCisjaW5jbHVkZSAiQjNDYXNlQ29sbGVj
dGlvbi5oIgogI2luY2x1ZGUgIkIzU3dpdGNoQ2FzZS5oIgorI2luY2x1ZGUgIkIzVmFsdWUuaCIK
IAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKLWNsYXNzIFN3aXRjaFZhbHVlIDog
cHVibGljIENvbnRyb2xWYWx1ZSB7CitjbGFzcyBTd2l0Y2hWYWx1ZSA6IHB1YmxpYyBWYWx1ZSB7
CiBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgYWNjZXB0cyhPcGNvZGUgb3Bjb2RlKSB7IHJldHVy
biBvcGNvZGUgPT0gU3dpdGNoOyB9CiAKQEAgLTQ3LDcyICs0OCwyMyBAQCBwdWJsaWM6CiAgICAg
CiAgICAgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBjYXNlVmFsdWVzKCkgY29uc3QgeyByZXR1cm4g
bV92YWx1ZXM7IH0KIAotICAgIEZyZXF1ZW50ZWRCbG9jayBmYWxsVGhyb3VnaCgpIGNvbnN0IHsg
cmV0dXJuIHN1Y2Nlc3NvcnMoKS5sYXN0KCk7IH0KLSAgICBGcmVxdWVudGVkQmxvY2smIGZhbGxU
aHJvdWdoKCkgeyByZXR1cm4gc3VjY2Vzc29ycygpLmxhc3QoKTsgfQotCi0gICAgdW5zaWduZWQg
c2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG51bUNhc2VWYWx1ZXMoKTsgfQotICAgIFN3aXRjaENhc2Ug
YXQodW5zaWduZWQgaW5kZXgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gU3dpdGNoQ2Fz
ZShjYXNlVmFsdWUoaW5kZXgpLCBzdWNjZXNzb3IoaW5kZXgpKTsKLSAgICB9Ci0gICAgU3dpdGNo
Q2FzZSBvcGVyYXRvcltdKHVuc2lnbmVkIGluZGV4KSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0
dXJuIGF0KGluZGV4KTsKLSAgICB9Ci0KLSAgICBjbGFzcyBpdGVyYXRvciB7Ci0gICAgcHVibGlj
OgotICAgICAgICBpdGVyYXRvcigpCi0gICAgICAgICAgICA6IG1fc3dpdGNoKG51bGxwdHIpCi0g
ICAgICAgICAgICAsIG1faW5kZXgoMCkKLSAgICAgICAgewotICAgICAgICB9Ci0KLSAgICAgICAg
aXRlcmF0b3IoY29uc3QgU3dpdGNoVmFsdWUmIHN3aXRjaFZhbHVlLCB1bnNpZ25lZCBpbmRleCkK
LSAgICAgICAgICAgIDogbV9zd2l0Y2goJnN3aXRjaFZhbHVlKQotICAgICAgICAgICAgLCBtX2lu
ZGV4KGluZGV4KQotICAgICAgICB7Ci0gICAgICAgIH0KLQotICAgICAgICBTd2l0Y2hDYXNlIG9w
ZXJhdG9yKigpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBtX3N3aXRjaC0+YXQobV9p
bmRleCk7Ci0gICAgICAgIH0KLQotICAgICAgICBpdGVyYXRvciYgb3BlcmF0b3IrKygpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIG1faW5kZXgrKzsKLSAgICAgICAgICAgIHJldHVybiAqdGhpczsK
LSAgICAgICAgfQotCi0gICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBpdGVyYXRvciYgb3Ro
ZXIpIGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAgICAgIEFTU0VSVChtX3N3aXRjaCA9PSBvdGhl
ci5tX3N3aXRjaCk7Ci0gICAgICAgICAgICByZXR1cm4gbV9pbmRleCA9PSBvdGhlci5tX2luZGV4
OwotICAgICAgICB9Ci0KLSAgICAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IGl0ZXJhdG9yJiBv
dGhlcikgY29uc3QKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuICEoKnRoaXMgPT0gb3Ro
ZXIpOwotICAgICAgICB9Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBjb25zdCBTd2l0Y2hWYWx1
ZSogbV9zd2l0Y2g7Ci0gICAgICAgIHVuc2lnbmVkIG1faW5kZXg7Ci0gICAgfTsKLQotICAgIHR5
cGVkZWYgaXRlcmF0b3IgY29uc3RfaXRlcmF0b3I7Ci0KLSAgICBpdGVyYXRvciBiZWdpbigpIGNv
bnN0IHsgcmV0dXJuIGl0ZXJhdG9yKCp0aGlzLCAwKTsgfQotICAgIGl0ZXJhdG9yIGVuZCgpIGNv
bnN0IHsgcmV0dXJuIGl0ZXJhdG9yKCp0aGlzLCBzaXplKCkpOyB9CisgICAgQ2FzZUNvbGxlY3Rp
b24gY2FzZXMoQmFzaWNCbG9jayogb3duZXIpIGNvbnN0IHsgcmV0dXJuIENhc2VDb2xsZWN0aW9u
KHRoaXMsIG93bmVyKTsgfQorICAgIENhc2VDb2xsZWN0aW9uIGNhc2VzKCkgY29uc3QgeyByZXR1
cm4gY2FzZXMob3duZXIpOyB9CiAKICAgICAvLyBUaGlzIHJlbW92ZXMgdGhlIGNhc2UgYW5kIHJl
b3JkZXJzIHRoaW5ncyBhIGJpdC4gSWYgeW91J3JlIGl0ZXJhdGluZyB0aGUgY2FzZXMgZnJvbSAw
IHRvIE4sCiAgICAgLy8gdGhlbiB5b3UgY2FuIGtlZXAgaXRlcmF0aW5nIGFmdGVyIHRoaXMgc28g
bG9uZyBhcyB5b3UgcmV2aXNpdCB0aGlzIHNhbWUgaW5kZXggKHdoaWNoIHdpbGwgbm93CiAgICAg
Ly8gY29udGFpbiBzb21lIG90aGVyIGNhc2UgdmFsdWUpLiBUaGlzIHJlbW92ZXMgdGhlIGNhc2Ug
dGhhdCB3YXMgcmVtb3ZlZC4KLSAgICBTd2l0Y2hDYXNlIHJlbW92ZUNhc2UodW5zaWduZWQgaW5k
ZXgpOworICAgIFN3aXRjaENhc2UgcmVtb3ZlQ2FzZShCYXNpY0Jsb2NrKiwgdW5zaWduZWQgaW5k
ZXgpOwogCisgICAgLy8gVGhlc2UgdHdvIGZ1bmN0aW9ucyBjYW4gYmUgY2FsbGVkIGluIGFueSBv
cmRlci4KKyAgICB2b2lkIHNldEZhbGx0aHJvdWdoKEJhc2ljQmxvY2sqLCBjb25zdCBGcmVxdWVu
dGVkQmxvY2smKTsKKyAgICB2b2lkIGFwcGVuZENhc2UoQmFzaWNCbG9jayosIGNvbnN0IFN3aXRj
aENhc2UmKTsKKyAgICAKKyAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIHNldEZhbGx0aHJvdWdo
KGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYpOwogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgYXBw
ZW5kQ2FzZShjb25zdCBTd2l0Y2hDYXNlJik7CiAKKyAgICB2b2lkIGR1bXBTdWNjZXNzb3JzKEJh
c2ljQmxvY2sqLCBQcmludFN0cmVhbSYpIGNvbnN0IG92ZXJyaWRlOworCiBwcm90ZWN0ZWQ6CiAg
ICAgdm9pZCBkdW1wTWV0YShDb21tYVByaW50ZXImLCBQcmludFN0cmVhbSYpIGNvbnN0IG92ZXJy
aWRlOwogCkBAIC0xMjEsNyArNzMsNyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIGZyaWVu
ZCBjbGFzcyBQcm9jZWR1cmU7CiAKLSAgICBKU19FWFBPUlRfUFJJVkFURSBTd2l0Y2hWYWx1ZShP
cmlnaW4sIFZhbHVlKiBjaGlsZCwgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBmYWxsVGhyb3VnaCk7
CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgU3dpdGNoVmFsdWUoT3JpZ2luLCBWYWx1ZSogY2hpbGQp
OwogCiAgICAgVmVjdG9yPGludDY0X3Q+IG1fdmFsdWVzOwogfTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM1ZhbGlkYXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNWYWxpZGF0ZS5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM1ZhbGlkYXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA3LDgg
KzEwNyw4IEBAIHB1YmxpYzoKICAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBibG9jayA6IGJsb2Nr
cykgewogICAgICAgICAgICAgVkFMSURBVEUoYmxvY2stPnNpemUoKSA+PSAxLCAoIkF0ICIsICpi
bG9jaykpOwogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGJsb2NrLT5zaXpl
KCkgLSAxOyArK2kpCi0gICAgICAgICAgICAgICAgVkFMSURBVEUoIUNvbnRyb2xWYWx1ZTo6YWNj
ZXB0cyhibG9jay0+YXQoaSktPm9wY29kZSgpKSwgKCJBdCAiLCAqYmxvY2stPmF0KGkpKSk7Ci0g
ICAgICAgICAgICBWQUxJREFURShDb250cm9sVmFsdWU6OmFjY2VwdHMoYmxvY2stPmxhc3QoKS0+
b3Bjb2RlKCkpLCAoIkF0ICIsICpibG9jay0+bGFzdCgpKSk7CisgICAgICAgICAgICAgICAgVkFM
SURBVEUoIWJsb2NrLT5hdChpKS0+ZWZmZWN0cygpLnRlcm1pbmFsLCAoIkF0ICIsICpibG9jay0+
YXQoaSkpKTsKKyAgICAgICAgICAgIFZBTElEQVRFKGJsb2NrLT5sYXN0KCktPmVmZmVjdHMoKS50
ZXJtaW5hbCwgKCJBdCAiLCAqYmxvY2stPmxhc3QoKSkpOwogICAgICAgICAgICAgCiAgICAgICAg
ICAgICBmb3IgKEJhc2ljQmxvY2sqIHN1Y2Nlc3NvciA6IGJsb2NrLT5zdWNjZXNzb3JCbG9ja3Mo
KSkgewogICAgICAgICAgICAgICAgIGFsbFByZWRlY2Vzc29ycy5hZGQoc3VjY2Vzc29yLCBIYXNo
U2V0PEJhc2ljQmxvY2sqPigpKS5pdGVyYXRvci0+dmFsdWUuYWRkKGJsb2NrKTsKQEAgLTEyOSw4
ICsxMjksNiBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgVkFMSURBVEUoY2hpbGQtPnR5cGUo
KSAhPSBWb2lkLCAoIkF0ICIsICp2YWx1ZSwgIi0+IiwgKmNoaWxkKSk7CiAgICAgICAgICAgICBz
d2l0Y2ggKHZhbHVlLT5vcGNvZGUoKSkgewogICAgICAgICAgICAgY2FzZSBOb3A6Ci0gICAgICAg
ICAgICBjYXNlIEp1bXA6Ci0gICAgICAgICAgICBjYXNlIE9vcHM6CiAgICAgICAgICAgICAgICAg
VkFMSURBVEUoIXZhbHVlLT5udW1DaGlsZHJlbigpLCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAg
ICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgPT0gVm9pZCwgKCJBdCAiLCAqdmFsdWUp
KTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTM3NywxNSArMzc1LDMyIEBAIHB1YmxpYzoK
ICAgICAgICAgICAgICAgICBWQUxJREFURSghdmFsdWUtPm51bUNoaWxkcmVuKCksICgiQXQgIiwg
KnZhbHVlKSk7CiAgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPnR5cGUoKSAhPSBWb2lk
LCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSBKdW1wOgorICAgICAgICAgICAgICAgIFZBTElEQVRFKCF2YWx1ZS0+bnVtQ2hpbGRyZW4o
KSwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+dHlw
ZSgpID09IFZvaWQsICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAgICAgVkFMSURBVEUo
dmFsdWVPd25lci5nZXQodmFsdWUpLT5udW1TdWNjZXNzb3JzKCkgPT0gMSk7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIE9vcHM6CisgICAgICAgICAgICAgICAgVkFM
SURBVEUoIXZhbHVlLT5udW1DaGlsZHJlbigpLCAoIkF0ICIsICp2YWx1ZSkpOworICAgICAgICAg
ICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgPT0gVm9pZCwgKCJBdCAiLCAqdmFsdWUpKTsK
KyAgICAgICAgICAgICAgICBWQUxJREFURSghdmFsdWVPd25lci5nZXQodmFsdWUpLT5udW1TdWNj
ZXNzb3JzKCkpOworICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBSZXR1
cm46CiAgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPm51bUNoaWxkcmVuKCkgPT0gMSwg
KCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+dHlwZSgp
ID09IFZvaWQsICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAgICAgVkFMSURBVEUoIXZh
bHVlT3duZXIuZ2V0KHZhbHVlKS0+bnVtU3VjY2Vzc29ycygpKTsKICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgIGNhc2UgQnJhbmNoOgorICAgICAgICAgICAgICAgIFZBTElEQVRF
KHZhbHVlLT5udW1DaGlsZHJlbigpID09IDEsICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAg
ICAgICAgVkFMSURBVEUoaXNJbnQodmFsdWUtPmNoaWxkKDApLT50eXBlKCkpLCAoIkF0ICIsICp2
YWx1ZSkpOworICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgPT0gVm9pZCwg
KCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZU93bmVyLmdl
dCh2YWx1ZSktPm51bVN1Y2Nlc3NvcnMoKSA9PSAyKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgIGNhc2UgU3dpdGNoOgogICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVl
LT5udW1DaGlsZHJlbigpID09IDEsICgiQXQgIiwgKnZhbHVlKSk7CiAgICAgICAgICAgICAgICAg
VkFMSURBVEUoaXNJbnQodmFsdWUtPmNoaWxkKDApLT50eXBlKCkpLCAoIkF0ICIsICp2YWx1ZSkp
OwogICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgPT0gVm9pZCwgKCJBdCAi
LCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZU93bmVyLmdldCh2YWx1
ZSktPm51bVN1Y2Nlc3NvcnMoKSA9PSB2YWx1ZS0+YXM8U3dpdGNoVmFsdWU+KCktPm51bUNhc2VW
YWx1ZXMoKSArIDEpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJCM0FyZ3VtZW50UmVnVmFsdWUuaCIKICNpbmNsdWRl
ICJCM0JvdHRvbVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiQjNDQ2FsbFZhbHVlLmgiCi0jaW5jbHVk
ZSAiQjNDb250cm9sVmFsdWUuaCIKICNpbmNsdWRlICJCM01lbW9yeVZhbHVlLmgiCiAjaW5jbHVk
ZSAiQjNPcmlnaW5EdW1wLmgiCiAjaW5jbHVkZSAiQjNQcm9jZWR1cmVJbmxpbmVzLmgiCkBAIC0x
MjUsNiArMTI0LDUwIEBAIHZvaWQgVmFsdWU6OnJlcGxhY2VXaXRoUGhpKCkKICAgICB0aGlzLT5t
X2luZGV4ID0gaW5kZXg7CiB9CiAKK3ZvaWQgVmFsdWU6OnJlcGxhY2VXaXRoSnVtcChCYXNpY0Js
b2NrKiBvd25lciwgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YXJnZXQpCit7CisgICAgUkVMRUFT
RV9BU1NFUlQob3duZXItPmxhc3QoKSA9PSB0aGlzKTsKKyAgICAKKyAgICB1bnNpZ25lZCBpbmRl
eCA9IG1faW5kZXg7CisgICAgT3JpZ2luIG9yaWdpbiA9IG1fb3JpZ2luOworICAgIAorICAgIHRo
aXMtPn5WYWx1ZSgpOworICAgIAorICAgIG5ldyAodGhpcykgVmFsdWUoSnVtcCwgVm9pZCwgb3Jp
Z2luKTsKKyAgICAKKyAgICB0aGlzLT5vd25lciA9IG93bmVyOworICAgIHRoaXMtPm1faW5kZXgg
PSBpbmRleDsKKyAgICAKKyAgICBvd25lci0+c2V0U3VjY2Vzc29ycyh0YXJnZXQpOworfQorCit2
b2lkIFZhbHVlOjpyZXBsYWNlV2l0aE9vcHMoQmFzaWNCbG9jayogb3duZXIpCit7CisgICAgUkVM
RUFTRV9BU1NFUlQob3duZXItPmxhc3QoKSA9PSB0aGlzKTsKKyAgICAKKyAgICB1bnNpZ25lZCBp
bmRleCA9IG1faW5kZXg7CisgICAgT3JpZ2luIG9yaWdpbiA9IG1fb3JpZ2luOworICAgIAorICAg
IHRoaXMtPn5WYWx1ZSgpOworICAgIAorICAgIG5ldyAodGhpcykgVmFsdWUoT29wcywgVm9pZCwg
b3JpZ2luKTsKKyAgICAKKyAgICB0aGlzLT5vd25lciA9IG93bmVyOworICAgIHRoaXMtPm1faW5k
ZXggPSBpbmRleDsKKyAgICAKKyAgICBvd25lci0+Y2xlYXJTdWNjZXNzb3JzKCk7Cit9CisKK3Zv
aWQgVmFsdWU6OnJlcGxhY2VXaXRoSnVtcChjb25zdCBGcmVxdWVudGVkQmxvY2smIHRhcmdldCkK
K3sKKyAgICByZXBsYWNlV2l0aEp1bXAob3duZXIsIHRhcmdldCk7Cit9CisKK3ZvaWQgVmFsdWU6
OnJlcGxhY2VXaXRoT29wcygpCit7CisgICAgcmVwbGFjZVdpdGhPb3BzKG93bmVyKTsKK30KKwog
dm9pZCBWYWx1ZTo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogewogICAgIGJvb2wgaXND
b25zdGFudCA9IGZhbHNlOwpAQCAtMTg5LDYgKzIzMiwxOSBAQCB2b2lkIFZhbHVlOjpkZWVwRHVt
cChjb25zdCBQcm9jZWR1cmUqIHByCiAgICAgb3V0LnByaW50KCIpIik7CiB9CiAKK3ZvaWQgVmFs
dWU6OmR1bXBTdWNjZXNzb3JzKEJhc2ljQmxvY2sqIGJsb2NrLCBQcmludFN0cmVhbSYgb3V0KSBj
b25zdAoreworICAgIC8vIE5vdGUgdGhhdCB0aGlzIG11c3Qgbm90IGNyYXNoIGlmIHdlIGhhdmUg
dGhlIHdyb25nIG51bWJlciBvZiBzdWNjZXNzb3JzLCBzaW5jZSBzb21lb25lCisgICAgLy8gZGVi
dWdnaW5nIGEgbnVtYmVyLW9mLXN1Y2Nlc3NvcnMgYnVnIHdpbGwgcHJvYmFibHkgd2FudCB0byBk
dW1wIElSIQorICAgIAorICAgIGlmIChvcGNvZGUoKSA9PSBCcmFuY2ggJiYgYmxvY2stPm51bVN1
Y2Nlc3NvcnMoKSA9PSAyKSB7CisgICAgICAgIG91dC5wcmludCgiVGhlbjoiLCBibG9jay0+dGFr
ZW4oKSwgIiwgRWxzZToiLCBibG9jay0+bm90VGFrZW4oKSk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgCisgICAgb3V0LnByaW50KGxpc3REdW1wKGJsb2NrLT5zdWNjZXNzb3JzKCkpKTsK
K30KKwogVmFsdWUqIFZhbHVlOjpuZWdDb25zdGFudChQcm9jZWR1cmUmKSBjb25zdAogewogICAg
IHJldHVybiBudWxscHRyOwpAQCAtNTUyLDYgKzYwOCw3IEBAIEVmZmVjdHMgVmFsdWU6OmVmZmVj
dHMoKSBjb25zdAogICAgIGNhc2UgSnVtcDoKICAgICBjYXNlIEJyYW5jaDoKICAgICBjYXNlIFN3
aXRjaDoKKyAgICBjYXNlIFBvbHlKdW1wOgogICAgIGNhc2UgUmV0dXJuOgogICAgIGNhc2UgT29w
czoKICAgICAgICAgcmVzdWx0LnRlcm1pbmFsID0gdHJ1ZTsKQEAgLTU2MCw2ICs2MTcsMTEgQEAg
RWZmZWN0cyBWYWx1ZTo6ZWZmZWN0cygpIGNvbnN0CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAor
Ym9vbCBWYWx1ZTo6aXNDbG9uZWFibGUoKSBjb25zdAoreworICAgIHJldHVybiB0cnVlOworfQor
CiBWYWx1ZUtleSBWYWx1ZTo6a2V5KCkgY29uc3QKIHsKICAgICBzd2l0Y2ggKG9wY29kZSgpKSB7
CkBAIC03MTMsNiArNzc1LDEwIEBAIFR5cGUgVmFsdWU6OnR5cGVGb3IoT3Bjb2RlIG9wY29kZSwg
VmFsdWUKICAgICAgICAgfQogICAgICAgICByZXR1cm4gVm9pZDsKICAgICBjYXNlIE5vcDoKKyAg
ICBjYXNlIEp1bXA6CisgICAgY2FzZSBCcmFuY2g6CisgICAgY2FzZSBSZXR1cm46CisgICAgY2Fz
ZSBPb3BzOgogICAgICAgICByZXR1cm4gVm9pZDsKICAgICBjYXNlIFNlbGVjdDoKICAgICAgICAg
QVNTRVJUKHNlY29uZENoaWxkKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Zh
bHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuaAko
cmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuaAko
d29ya2luZyBjb3B5KQpAQCAtMTA5LDkgKzEwOSwxOSBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXBs
YWNlV2l0aE5vcElnbm9yaW5nVHlwZSgpOwogICAgIAogICAgIHZvaWQgcmVwbGFjZVdpdGhQaGko
KTsKKyAgICAKKyAgICAvLyBUaGVzZSB0cmFuc2Zvcm1hdGlvbnMgYXJlIG9ubHkgdmFsaWQgZm9y
IHRlcm1pbmFscy4KKyAgICB2b2lkIHJlcGxhY2VXaXRoSnVtcChCYXNpY0Jsb2NrKiBvd25lciwg
Y29uc3QgRnJlcXVlbnRlZEJsb2NrJik7CisgICAgdm9pZCByZXBsYWNlV2l0aE9vcHMoQmFzaWNC
bG9jayogb3duZXIpOworICAgIAorICAgIC8vIFlvdSBjYW4gdXNlIHRoaXMgZm9ybSBpZiBvd25l
cnMgYXJlIHZhbGlkLiBUaGV5J3JlIHVzdWFsbHkgbm90IHZhbGlkLgorICAgIHZvaWQgcmVwbGFj
ZVdpdGhKdW1wKGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYpOworICAgIHZvaWQgcmVwbGFjZVdpdGhP
b3BzKCk7CiAKICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKICAgICB2b2lkIGRl
ZXBEdW1wKGNvbnN0IFByb2NlZHVyZSosIFByaW50U3RyZWFtJikgY29uc3Q7CisgICAgCisgICAg
dmlydHVhbCB2b2lkIGR1bXBTdWNjZXNzb3JzKEJhc2ljQmxvY2sqLCBQcmludFN0cmVhbSYpIGNv
bnN0OwogCiAgICAgLy8gVGhpcyBpcyBob3cgeW91IGNhc3QgVmFsdWVzLiBGb3IgZXhhbXBsZSwg
aWYgeW91IHdhbnQgdG8gZG8gc29tZXRoaW5nIHByb3ZpZGVkIHRoYXQgd2UgaGF2ZSBhCiAgICAg
Ly8gQXJndW1lbnRSZWdWYWx1ZSwgeW91IGNhbiBkbzoKQEAgLTIyMyw2ICsyMzMsMTEgQEAgcHVi
bGljOgogICAgIGJvb2wgaXNMaWtlTm9uWmVybygpIGNvbnN0IHsgcmV0dXJuIGFzVHJpU3RhdGUo
KSA9PSBUcnVlVHJpU3RhdGU7IH0KIAogICAgIEVmZmVjdHMgZWZmZWN0cygpIGNvbnN0OworICAg
IAorICAgIC8vIFNvbWUgb3BlcmF0aW9ucyB3aWxsIHJlZnVzZSB0byBiZSBjbG9uZWQuIFRoaXMg
aGFwcGVucyB3aGVuIHRoZSBvcGVyYXRpb24gaGFzIHNvbWUgaW5zaWRlCisgICAgLy8ga25vd2xl
ZGdlIGFib3V0IHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBpdHMgaWRlbnRpdHkgYW5kIHRoZSBp
ZGVudGl0eSBvZiB0aGUgY29kZSBpdCB3aWxsCisgICAgLy8gZ2VuZXJhdGUuCisgICAgdmlydHVh
bCBib29sIGlzQ2xvbmVhYmxlKCkgY29uc3Q7CiAKICAgICAvLyBUaGlzIHJldHVybnMgYSBWYWx1
ZUtleSB0aGF0IGRlc2NyaWJlcyB0aGF0IHRoaXMgVmFsdWUgcmV0dXJucyB3aGVuIGl0IGV4ZWN1
dGVzLiBSZXR1cm5zIGFuCiAgICAgLy8gZW1wdHkgVmFsdWVLZXkgaWYgdGhpcyBWYWx1ZSBpcyBp
bXB1cmUuIE5vdGUgdGhhdCBhbiBvcGVyYXRpb24gdGhhdCByZXR1cm5zIFZvaWQgY291bGQgc3Rp
bGwKQEAgLTI2NCw2ICsyNzksOCBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIEZyYW1lUG9pbnRl
cjoKICAgICAgICAgY2FzZSBOb3A6CiAgICAgICAgIGNhc2UgUGhpOgorICAgICAgICBjYXNlIEp1
bXA6CisgICAgICAgIGNhc2UgT29wczoKICAgICAgICAgICAgIGlmIChVTkxJS0VMWShudW1Bcmdz
KSkKICAgICAgICAgICAgICAgICBiYWRPcGNvZGUob3Bjb2RlLCBudW1BcmdzKTsKICAgICAgICAg
ICAgIGJyZWFrOwpAQCAtMjg0LDYgKzMwMSw4IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgRG91
YmxlVG9GbG9hdDoKICAgICAgICAgY2FzZSBJVG9GOgogICAgICAgICBjYXNlIEJpdHdpc2VDYXN0
OgorICAgICAgICBjYXNlIEJyYW5jaDoKKyAgICAgICAgY2FzZSBSZXR1cm46CiAgICAgICAgICAg
ICBpZiAoVU5MSUtFTFkobnVtQXJncyAhPSAxKSkKICAgICAgICAgICAgICAgICBiYWRPcGNvZGUo
b3Bjb2RlLCBudW1BcmdzKTsKICAgICAgICAgICAgIGJyZWFrOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL3Rlc3RiMy5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy90ZXN0YjMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw4ICszMyw4IEBACiAjaW5j
bHVkZSAiQjNDb21wdXRlRGl2aXNpb25NYWdpYy5oIgogI2luY2x1ZGUgIkIzQ29uc3QzMlZhbHVl
LmgiCiAjaW5jbHVkZSAiQjNDb25zdFB0clZhbHVlLmgiCi0jaW5jbHVkZSAiQjNDb250cm9sVmFs
dWUuaCIKICNpbmNsdWRlICJCM0VmZmVjdHMuaCIKKyNpbmNsdWRlICJCM1BvbHlKdW1wVmFsdWUu
aCIKICNpbmNsdWRlICJCM01hdGhFeHRyYXMuaCIKICNpbmNsdWRlICJCM01lbW9yeVZhbHVlLmgi
CiAjaW5jbHVkZSAiQjNQcm9jZWR1cmUuaCIKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJC
M1Vwc2lsb25WYWx1ZS5oIgogI2luY2x1ZGUgIkIzVmFsaWRhdGUuaCIKICNpbmNsdWRlICJCM1Zh
bHVlSW5saW5lcy5oIgorI2luY2x1ZGUgIkIzVmFyaWFibGVWYWx1ZS5oIgogI2luY2x1ZGUgIkND
YWxsSGVscGVycy5oIgogI2luY2x1ZGUgIkluaXRpYWxpemVUaHJlYWRpbmcuaCIKICNpbmNsdWRl
ICJKU0NJbmxpbmVzLmgiCkBAIC01NCw2ICs1NSw3IEBACiAjaW5jbHVkZSAiVk0uaCIKICNpbmNs
dWRlIDxjbWF0aD4KICNpbmNsdWRlIDxzdHJpbmc+CisjaW5jbHVkZSA8d3RmL0xpc3REdW1wLmg+
CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTnVtYmVyT2ZDb3Jlcy5oPgog
I2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KQEAgLTc1LDYgKzc3LDExIEBAIHVzaW5nIG5hbWVz
cGFjZSBKU0M6OkIzOwogCiBuYW1lc3BhY2UgewogCitib29sIHNob3VsZEJlVmVyYm9zZSgpCit7
CisgICAgcmV0dXJuIHNob3VsZER1bXBJUihCM01vZGUpOworfQorCiBTdGF0aWNMb2NrIGNyYXNo
TG9jazsKIAogLy8gTm90aGluZyBmYW5jeSBmb3Igbm93OyB3ZSBqdXN0IHVzZSB0aGUgZXhpc3Rp
bmcgV1RGIGFzc2VydGlvbiBtYWNoaW5lcnkuCkBAIC0xOTQsNyArMjAxLDcgQEAgdm9pZCB0ZXN0
NDIoKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7CiAgICAgVmFsdWUqIGNvbnN0NDIgPSByb290LT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNvbnN0NDIpOworICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjb25zdDQyKTsKIAogICAgIENI
RUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jKSA9PSA0Mik7CiB9CkBAIC0yMDQsNyArMjExLDcg
QEAgdm9pZCB0ZXN0TG9hZDQyKCkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIGludCB4ID0gNDI7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZCwgSW50MzIsIE9yaWdpbigpLApA
QCAtMjIwLDcgKzIyNyw3IEBAIHZvaWQgdGVzdExvYWRXaXRoT2Zmc2V0SW1wbChpbnQzMl90IG9m
ZnMKICAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICAgICAg
aW50NjRfdCB4ID0gLTQyOwogICAgICAgICBWYWx1ZSogYmFzZSA9IHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsK
LSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAg
ICAgIHByb2MsIExvYWQsIEludDY0LCBPcmlnaW4oKSwKQEAgLTIzNSw3ICsyNDIsNyBAQCB2b2lk
IHRlc3RMb2FkV2l0aE9mZnNldEltcGwoaW50MzJfdCBvZmZzCiAgICAgICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgICAgIGludDMyX3QgeCA9IC00MjsKICAgICAg
ICAgVmFsdWUqIGJhc2UgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBMb2FkLCBJbnQzMiwg
T3JpZ2luKCksCkBAIC0yODgsNyArMjk1LDcgQEAgdm9pZCB0ZXN0QXJnKGludCBhcmd1bWVudCkK
IHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApKTsKIApAQCAtMjk5LDcgKzMwNiw3IEBAIHZvaWQgdGVzdFJl
dHVybkNvbnN0NjQoaW50NjRfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKSk7CiAKQEAgLTMxMSw3ICszMTgsNyBAQCB2b2lk
IHRlc3RBZGRBcmcoaW50IGEpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BS
MCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIHZhbHVlLCB2YWx1
ZSkpOwogCkBAIC0zMjIsNyArMzI5LDcgQEAgdm9pZCB0ZXN0QWRkQXJncyhpbnQgYSwgaW50IGIp
CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9y
aWdpbigpLApAQCAtMzM2LDcgKzM0Myw3IEBAIHZvaWQgdGVzdEFkZEFyZ0ltbShpbnQgYSwgaW50
IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQs
IE9yaWdpbigpLApAQCAtMzUwLDcgKzM1Nyw3IEBAIHZvaWQgdGVzdEFkZEltbUFyZyhpbnQgYSwg
aW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBB
ZGQsIE9yaWdpbigpLApAQCAtMzcwLDcgKzM3Nyw3IEBAIHZvaWQgdGVzdEFkZEFyZ01lbShpbnQ2
NF90IGEsIGludDY0X3QgYikKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApLAogICAgICAgICBsb2Fk
KTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4o
KSwgcmVzdWx0LCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgMCkpOwogCiAgICAgaW50NjRfdCBpbnB1dE91dHB1dCA9IGI7CiAgICAgQ0hFQ0soIWNv
bXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgYSwgJmlucHV0T3V0cHV0KSk7CkBAIC0zODYsNyAr
MzkzLDcgQEAgdm9pZCB0ZXN0QWRkTWVtQXJnKGludDY0X3QgYSwgaW50NjRfdCBiKQogICAgIFZh
bHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCks
CiAgICAgICAgIGxvYWQsCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgJmEsIGIpID09
IGEgKyBiKTsKIH0KQEAgLTQwMSw3ICs0MDgsNyBAQCB2b2lkIHRlc3RBZGRJbW1NZW0oaW50NjRf
dCBhLCBpbnQ2NF90IGIpCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBhKSwKICAgICAgICAgbG9hZCk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1l
bW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgYWRkcmVzcyk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9v
dC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGludDY0X3Qg
aW5wdXRPdXRwdXQgPSBiOwogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludD4ocHJvYywgJmlu
cHV0T3V0cHV0KSk7CkBAIC00MTQsNyArNDIxLDcgQEAgdm9pZCB0ZXN0QWRkQXJnMzIoaW50IGEp
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFs
dWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmln
aW4oKSwgdmFsdWUsIHZhbHVlKSk7CiAKQEAgLTQyNSw3ICs0MzIsNyBAQCB2b2lkIHRlc3RBZGRB
cmdzMzIoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKQEAgLTQ0OSw3ICs0NTYsNyBAQCB2b2lkIHRlc3RB
ZGRBcmdNZW0zMihpbnQzMl90IGEsIGludDMyX3QgCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7
CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBP
cmlnaW4oKSwgYXJndW1lbnQsIGxvYWQpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1
ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGFkZHJlc3MpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBpbnQzMl90IGlucHV0T3V0
cHV0ID0gYjsKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBhLCAmaW5w
dXRPdXRwdXQpKTsKQEAgLTQ2NSw3ICs0NzIsNyBAQCB2b2lkIHRlc3RBZGRNZW1BcmczMihpbnQz
Ml90IGEsIGludDMyX3QgCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7CiAg
ICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmln
aW4oKSwgbG9hZCwgYXJndW1lbnQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhj
b21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsICZhLCBiKSA9PSBhICsgYik7CiB9CkBAIC00ODAs
NyArNDg3LDcgQEAgdm9pZCB0ZXN0QWRkSW1tTWVtMzIoaW50MzJfdCBhLCBpbnQzMl90IAogICAg
ICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSksCiAg
ICAgICAgIGxvYWQpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3Rv
cmUsIE9yaWdpbigpLCByZXN1bHQsIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMy
VmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBpbnQzMl90IGlucHV0T3V0cHV0ID0gYjsKICAg
ICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsICZpbnB1dE91dHB1dCkpOwpAQCAtNDk1
LDcgKzUwMiw3IEBAIHZvaWQgdGVzdEFkZEFyZ1plcm9JbW1aRGVmKCkKICAgICAgICAgcHJvYywg
VHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiBj
b25zdFplcm8gPSByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
MCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4o
KSwKQEAgLTUxNSw3ICs1MjIsNyBAQCB2b2lkIHRlc3RBZGRMb2FkVHdpY2UoKQogICAgICAgICBW
YWx1ZSogbG9hZCA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBw
cm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8
Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZ2YWx1ZSkpOwotICAgICAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgbG9hZCwgbG9hZCkpOwog
CkBAIC01MzIsNyArNTM5LDcgQEAgdm9pZCB0ZXN0QWRkQXJnRG91YmxlKGRvdWJsZSBhKQogICAg
IFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
CiAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBBZGQsIE9yaWdpbigpLCB2YWx1ZSwgdmFsdWUpKTsKIApAQCAtNTQ1LDcgKzU1Miw3
IEBAIHZvaWQgdGVzdEFkZEFyZ3NEb3VibGUoZG91YmxlIGEsIGRvdWJsZSAKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3Vt
ZW50RlBSMCk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIxKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAt
NTU4LDcgKzU2NSw3IEBAIHZvaWQgdGVzdEFkZEFyZ0ltbURvdWJsZShkb3VibGUgYSwgZG91YmwK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1
ZUEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQ
UkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5l
dzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTU3MSw3ICs1
NzgsNyBAQCB2b2lkIHRlc3RBZGRJbW1BcmdEb3VibGUoZG91YmxlIGEsIGRvdWJsCiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9v
dC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBW
YWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBBZGQsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC01ODQsNyArNTkxLDcgQEAg
dm9pZCB0ZXN0QWRkSW1tc0RvdWJsZShkb3VibGUgYSwgZG91YmxlIAogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVu
ZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHZh
bHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
Yik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIHZhbHVlQSwgdmFs
dWVCKSk7CiAKQEAgLTYwMCw3ICs2MDcsNyBAQCB2b2lkIHRlc3RBZGRBcmdGbG9hdChmbG9hdCBh
KQogICAgIFZhbHVlKiBmbG9hdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBC
aXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiByZXN1bHQgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGZsb2F0VmFsdWUsIGZs
b2F0VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
MzIpOwogCiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHBy
b2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhICsg
YSkpKTsKQEAgLTYxOCw3ICs2MjUsNyBAQCB2b2lkIHRlc3RBZGRBcmdzRmxvYXQoZmxvYXQgYSwg
ZmxvYXQgYikKICAgICBWYWx1ZSogZmxvYXRWYWx1ZTIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQyaW50MzIpOwogICAgIFZhbHVl
KiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGZs
b2F0VmFsdWUxLCBmbG9hdFZhbHVlMik7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVu
PGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgKyBiKSkpOwogfQpAQCAtNjMzLDcg
KzY0MCw3IEBAIHZvaWQgdGVzdEFkZEFyZ0ltbUZsb2F0KGZsb2F0IGEsIGZsb2F0IGIKICAgICBW
YWx1ZSogY29uc3RWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBiKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBBZGQsIE9yaWdpbigpLCBmbG9hdFZhbHVlLCBjb25zdFZhbHVlKTsKICAgICBWYWx1
ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBP
cmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlz
SWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMy
X3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgKyBiKSkpOwogfQpAQCAtNjQ4LDcgKzY1
NSw3IEBAIHZvaWQgdGVzdEFkZEltbUFyZ0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIKICAgICBWYWx1
ZSogY29uc3RWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9y
aWdpbigpLCBhKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBBZGQsIE9yaWdpbigpLCBjb25zdFZhbHVlLCBmbG9hdFZhbHVlKTsKICAgICBWYWx1ZSog
cmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmln
aW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRl
bnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+
KGIpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgKyBiKSkpOwogfQpAQCAtNjYxLDcgKzY2OCw3
IEBAIHZvaWQgdGVzdEFkZEltbXNGbG9hdChmbG9hdCBhLCBmbG9hdCBiKQogICAgIFZhbHVlKiBj
b25zdFZhbHVlMiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdp
bigpLCBiKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBBZGQsIE9yaWdpbigpLCBjb25zdFZhbHVlMSwgY29uc3RWYWx1ZTIpOwogICAgIFZhbHVlKiBy
ZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdp
bigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVu
dGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+
KGEgKyBiKSkpOwogfQpAQCAtNjc3LDcgKzY4NCw3IEBAIHZvaWQgdGVzdEFkZEFyZ0Zsb2F0V2l0
aFVzZWxlc3NEb3VibGVDb24KICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBhc0RvdWJsZSwgYXNEb3VibGUpOwogICAgIFZhbHVl
KiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9h
dCwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRS
dW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0
PGludDMyX3Q+KGEgKyBhKSkpOwogfQpAQCAtNjk3LDcgKzcwNCw3IEBAIHZvaWQgdGVzdEFkZEFy
Z3NGbG9hdFdpdGhVc2VsZXNzRG91YmxlQ28KICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBhc0RvdWJsZTEsIGFzRG91YmxlMik7
CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBE
b3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRS
ZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwo
Y29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJp
dHdpc2VfY2FzdDxpbnQzMl90PihiKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhICsgYikpKTsK
IH0KQEAgLTcxOSw3ICs3MjYsNyBAQCB2b2lkIHRlc3RBZGRBcmdzRmxvYXRXaXRoRWZmZWN0ZnVs
RG91YmxlCiAgICAgVmFsdWUqIGRvdWJsZUFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMik7CiAgICAg
cm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3Vs
dCwgZG91YmxlQWRkcmVzcyk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1
bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdDMyKTsKIAogICAgIGRvdWJsZSBlZmZlY3QgPSAwOwogICAgIENIRUNLKGlz
SWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMy
X3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYiksICZlZmZlY3QpLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4oYSArIGIpKSk7CkBAIC03MzIsNyArNzM5LDcgQEAgdm9pZCB0ZXN0TXVsQXJnKGlu
dCBhKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUq
IHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgcHJvYywgVHJ1bmMsIE9y
aWdpbigpLCByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWws
IE9yaWdpbigpLCB2YWx1ZSwgdmFsdWUpKTsKIApAQCAtNzU5LDcgKzc2Niw3IEBAIHZvaWQgdGVz
dE11bEFyZ1N0b3JlKGludCBhKQogICAgICAgICBwcm9jLCBTdG9yZSwgT3JpZ2luKCksIG11bCwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAm
bXVsU2xvdCkpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAg
ICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCBhKSk7CkBAIC03NzQsNyArNzgxLDcg
QEAgdm9pZCB0ZXN0TXVsQWRkQXJnKGludCBhKQogICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjApKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBBZGQsIE9yaWdpbigpLApAQCAtNzg4LDcgKzc5NSw3IEBAIHZvaWQgdGVzdE11bEFyZ3MoaW50
IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgTXVsLCBPcmlnaW4oKSwKQEAgLTgwMiw3ICs4MDksNyBAQCB2b2lkIHRlc3RNdWxBcmdJbW0o
aW50NjRfdCBhLCBpbnQ2NF90IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBNdWwsIE9yaWdpbigpLApAQCAtODE2LDcgKzgyMyw3IEBAIHZvaWQgdGVz
dE11bEltbUFyZyhpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBNdWwsIE9yaWdpbigpLApAQCAtODMwLDcgKzgzNyw3IEBAIHZvaWQg
dGVzdE11bEFyZ3MzMihpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
CiAgICAgICAgICAgICBwcm9jLCBNdWwsIE9yaWdpbigpLApAQCAtODUzLDcgKzg2MCw3IEBAIHZv
aWQgdGVzdE11bExvYWRUd2ljZSgpCiAgICAgICAgIFZhbHVlKiBsb2FkID0gcm9vdC0+YXBwZW5k
TmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgIHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4o
KSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmln
aW4oKSwgJnZhbHVlKSk7Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBNdWwsIE9yaWdpbigpLCBsb2FkLCBsb2FkKSk7CiAKQEAgLTg3NSw3ICs4ODIsNyBAQCB2b2lk
IHRlc3RNdWxBZGRBcmdzTGVmdCgpCiAgICAgVmFsdWUqIGFyZzIgPSByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMik7
CiAgICAgVmFsdWUqIG11bHRpcGxpZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11
bCwgT3JpZ2luKCksIGFyZzAsIGFyZzEpOwogICAgIFZhbHVlKiBhZGRlZCA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgbXVsdGlwbGllZCwgYXJnMik7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRk
ZWQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBhZGRlZCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC04OTks
NyArOTA2LDcgQEAgdm9pZCB0ZXN0TXVsQWRkQXJnc1JpZ2h0KCkKICAgICBWYWx1ZSogYXJnMiA9
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIyKTsKICAgICBWYWx1ZSogbXVsdGlwbGllZCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgYXJnMSwgYXJnMik7CiAgICAgVmFsdWUqIGFk
ZGVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBhcmcwLCBt
dWx0aXBsaWVkKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBhZGRlZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUo
cHJvYyk7CiAKQEAgLTkyNiw3ICs5MzMsNyBAQCB2b2lkIHRlc3RNdWxBZGRBcmdzTGVmdDMyKCkK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjIpKTsKICAgICBWYWx1ZSogbXVsdGlwbGllZCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgYXJnMCwgYXJnMSk7CiAgICAg
VmFsdWUqIGFkZGVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigp
LCBtdWx0aXBsaWVkLCBhcmcyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKIAogICAgIGF1dG8gY29kZSA9
IGNvbXBpbGUocHJvYyk7CiAKQEAgLTk1Myw3ICs5NjAsNyBAQCB2b2lkIHRlc3RNdWxBZGRBcmdz
UmlnaHQzMigpCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKSk7CiAgICAgVmFsdWUqIG11bHRpcGxp
ZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGFyZzEsIGFy
ZzIpOwogICAgIFZhbHVlKiBhZGRlZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRk
LCBPcmlnaW4oKSwgYXJnMCwgbXVsdGlwbGllZCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CiAKICAgICBh
dXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC05NzcsNyArOTg0LDcgQEAgdm9pZCB0ZXN0
TXVsU3ViQXJnc0xlZnQoKQogICAgIFZhbHVlKiBhcmcyID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpOwogICAg
IFZhbHVlKiBtdWx0aXBsaWVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9y
aWdpbigpLCBhcmcwLCBhcmcxKTsKICAgICBWYWx1ZSogYWRkZWQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIG11bHRpcGxpZWQsIGFyZzIpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
YWRkZWQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAtMTAwMSw3ICsx
MDA4LDcgQEAgdm9pZCB0ZXN0TXVsU3ViQXJnc1JpZ2h0KCkKICAgICBWYWx1ZSogYXJnMiA9IHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIyKTsKICAgICBWYWx1ZSogbXVsdGlwbGllZCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgYXJnMSwgYXJnMik7CiAgICAgVmFsdWUqIGFkZGVk
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBhcmcwLCBtdWx0
aXBsaWVkKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBhZGRlZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJv
Yyk7CiAKQEAgLTEwMjgsNyArMTAzNSw3IEBAIHZvaWQgdGVzdE11bFN1YkFyZ3NMZWZ0MzIoKQog
ICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMikpOwogICAgIFZhbHVlKiBtdWx0aXBsaWVkID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBhcmcwLCBhcmcxKTsKICAgICBW
YWx1ZSogYWRkZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCks
IG11bHRpcGxpZWQsIGFyZzIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOwogCiAgICAgYXV0byBjb2RlID0g
Y29tcGlsZShwcm9jKTsKIApAQCAtMTA1NSw3ICsxMDYyLDcgQEAgdm9pZCB0ZXN0TXVsU3ViQXJn
c1JpZ2h0MzIoKQogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMikpOwogICAgIFZhbHVlKiBtdWx0aXBs
aWVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBhcmcxLCBh
cmcyKTsKICAgICBWYWx1ZSogYWRkZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1
YiwgT3JpZ2luKCksIGFyZzAsIG11bHRpcGxpZWQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOwogCiAgICAg
YXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAtMTA3OSw3ICsxMDg2LDcgQEAgdm9pZCB0
ZXN0TXVsTmVnQXJncygpCiAgICAgVmFsdWUqIG11bHRpcGxpZWQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGFyZzAsIGFyZzEpOwogICAgIFZhbHVlKiB6ZXJv
ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApOwogICAg
IFZhbHVlKiBhZGRlZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4o
KSwgemVybywgbXVsdGlwbGllZCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CiAKICAgICBhdXRvIGNvZGUg
PSBjb21waWxlKHByb2MpOwogCkBAIC0xMTAzLDcgKzExMTAsNyBAQCB2b2lkIHRlc3RNdWxOZWdB
cmdzMzIoKQogICAgIFZhbHVlKiBtdWx0aXBsaWVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBNdWwsIE9yaWdpbigpLCBhcmcwLCBhcmcxKTsKICAgICBWYWx1ZSogemVybyA9IHJvb3Qt
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKTsKICAgICBWYWx1ZSog
YWRkZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIHplcm8s
IG11bHRpcGxpZWQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIGFkZGVkKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGls
ZShwcm9jKTsKIApAQCAtMTEyMCw3ICsxMTI3LDcgQEAgdm9pZCB0ZXN0TXVsQXJnRG91YmxlKGRv
dWJsZSBhKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50
UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCB2YWx1ZSwgdmFsdWUpKTsKIApAQCAt
MTEzMyw3ICsxMTQwLDcgQEAgdm9pZCB0ZXN0TXVsQXJnc0RvdWJsZShkb3VibGUgYSwgZG91Ymxl
IAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZh
bHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
RlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQ
UjEpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCB2YWx1ZUEsIHZh
bHVlQikpOwogCkBAIC0xMTQ2LDcgKzExNTMsNyBAQCB2b2lkIHRlc3RNdWxBcmdJbW1Eb3VibGUo
ZG91YmxlIGEsIGRvdWJsCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
ICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiB2YWx1ZUIg
PSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikp
OwogCkBAIC0xMTU5LDcgKzExNjYsNyBAQCB2b2lkIHRlc3RNdWxJbW1BcmdEb3VibGUoZG91Ymxl
IGEsIGRvdWJsCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBW
YWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBhKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50
UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBA
IC0xMTcyLDcgKzExNzksNyBAQCB2b2lkIHRlc3RNdWxJbW1zRG91YmxlKGRvdWJsZSBhLCBkb3Vi
bGUgCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSog
dmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBhKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBiKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBP
cmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTE4OCw3ICsxMTk1LDcgQEAgdm9pZCB0
ZXN0TXVsQXJnRmxvYXQoZmxvYXQgYSkKICAgICBWYWx1ZSogZmxvYXRWYWx1ZSA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsK
ICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9y
aWdpbigpLCBmbG9hdFZhbHVlLCBmbG9hdFZhbHVlKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29t
cGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oYSAqIGEpKSk7CkBAIC0xMjA2LDcgKzEyMTMsNyBAQCB2b2lkIHRl
c3RNdWxBcmdzRmxvYXQoZmxvYXQgYSwgZmxvYXQgYikKICAgICBWYWx1ZSogZmxvYXRWYWx1ZTIg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJn
dW1lbnQyaW50MzIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIE11bCwgT3JpZ2luKCksIGZsb2F0VmFsdWUxLCBmbG9hdFZhbHVlMik7CiAgICAgVmFs
dWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwg
T3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhp
c0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQz
Ml90PihhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+
KGEgKiBiKSkpOwogfQpAQCAtMTIyMSw3ICsxMjI4LDcgQEAgdm9pZCB0ZXN0TXVsQXJnSW1tRmxv
YXQoZmxvYXQgYSwgZmxvYXQgYgogICAgIFZhbHVlKiBjb25zdFZhbHVlID0gcm9vdC0+YXBwZW5k
TmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiByZXN1
bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGZsb2F0VmFs
dWUsIGNvbnN0VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90
Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4o
YSAqIGIpKSk7CiB9CkBAIC0xMjM2LDcgKzEyNDMsNyBAQCB2b2lkIHRlc3RNdWxJbW1BcmdGbG9h
dChmbG9hdCBhLCBmbG9hdCBiCiAgICAgVmFsdWUqIGNvbnN0VmFsdWUgPSByb290LT5hcHBlbmRO
ZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHJlc3Vs
dCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgY29uc3RWYWx1
ZSwgZmxvYXRWYWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+
KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90Pihh
ICogYikpKTsKIH0KQEAgLTEyNDksNyArMTI1Niw3IEBAIHZvaWQgdGVzdE11bEltbXNGbG9hdChm
bG9hdCBhLCBmbG9hdCBiKQogICAgIFZhbHVlKiBjb25zdFZhbHVlMiA9IHJvb3QtPmFwcGVuZE5l
dzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKICAgICBWYWx1ZSogcmVzdWx0
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBjb25zdFZhbHVl
MSwgY29uc3RWYWx1ZTIpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90
Pihwcm9jKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgKiBiKSkpOwogfQpAQCAtMTI2NSw3ICsx
MjcyLDcgQEAgdm9pZCB0ZXN0TXVsQXJnRmxvYXRXaXRoVXNlbGVzc0RvdWJsZUNvbgogICAgIFZh
bHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCks
IGFzRG91YmxlLCBhc0RvdWJsZSk7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgcmVzdWx0KTsKICAg
ICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VD
YXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAg
ICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNl
X2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAqIGEpKSk7CiB9CkBA
IC0xMjg1LDcgKzEyOTIsNyBAQCB2b2lkIHRlc3RNdWxBcmdzRmxvYXRXaXRoVXNlbGVzc0RvdWJs
ZUNvCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVs
LCBPcmlnaW4oKSwgYXNEb3VibGUxLCBhc0RvdWJsZTIpOwogICAgIFZhbHVlKiBmbG9hdFJlc3Vs
dCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCks
IHJlc3VsdCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
c3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4o
cHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikp
LCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAqIGIpKSk7CiB9CkBAIC0xMzA3LDcgKzEzMTQsNyBA
QCB2b2lkIHRlc3RNdWxBcmdzRmxvYXRXaXRoRWZmZWN0ZnVsRG91YmxlCiAgICAgVmFsdWUqIGRv
dWJsZU11bHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMik7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9y
eVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgZG91YmxlTXVscmVzcyk7CiAg
ICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNl
Q2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAog
ICAgIGRvdWJsZSBlZmZlY3QgPSAwOwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRS
dW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4oYiksICZlZmZlY3QpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAqIGIpKSk7CkBA
IC0xMzE5LDcgKzEzMjYsNyBAQCB2b2lkIHRlc3REaXZBcmdEb3VibGUoZG91YmxlIGEpCiAgICAg
UHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
ICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIERpdiwgT3JpZ2luKCksIHZhbHVlLCB2YWx1ZSkpOwogCkBAIC0xMzMyLDcgKzEzMzks
NyBAQCB2b2lkIHRlc3REaXZBcmdzRG91YmxlKGRvdWJsZSBhLCBkb3VibGUgCiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1
bWVudEZQUjApOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMSk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIERpdiwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAg
LTEzNDUsNyArMTM1Miw3IEBAIHZvaWQgdGVzdERpdkFyZ0ltbURvdWJsZShkb3VibGUgYSwgZG91
YmwKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2
YWx1ZUEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVu
ZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIERpdiwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTEzNTgs
NyArMTM2NSw3IEBAIHZvaWQgdGVzdERpdkltbUFyZ0RvdWJsZShkb3VibGUgYSwgZG91YmwKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEg
PSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwog
ICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIERpdiwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTEzNzEsNyArMTM3
OCw3IEBAIHZvaWQgdGVzdERpdkltbXNEb3VibGUoZG91YmxlIGEsIGRvdWJsZSAKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290
LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZh
bHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIGIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEaXYsIE9yaWdpbigpLCB2YWx1
ZUEsIHZhbHVlQikpOwogCkBAIC0xMzg3LDcgKzEzOTQsNyBAQCB2b2lkIHRlc3REaXZBcmdGbG9h
dChmbG9hdCBhKQogICAgIFZhbHVlKiBmbG9hdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiBy
ZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERpdiwgT3JpZ2luKCksIGZsb2F0
VmFsdWUsIGZsb2F0VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMy
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0MzIpOwogCiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGlu
dDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQz
Ml90PihhIC8gYSkpKTsKQEAgLTE0MDUsNyArMTQxMiw3IEBAIHZvaWQgdGVzdERpdkFyZ3NGbG9h
dChmbG9hdCBhLCBmbG9hdCBiKQogICAgIFZhbHVlKiBmbG9hdFZhbHVlMiA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDJpbnQzMik7
CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRGl2LCBP
cmlnaW4oKSwgZmxvYXRWYWx1ZTEsIGZsb2F0VmFsdWUyKTsKICAgICBWYWx1ZSogcmVzdWx0MzIg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVz
dWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNv
bXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAvIGIpKSk7CiB9
CkBAIC0xNDIwLDcgKzE0MjcsNyBAQCB2b2lkIHRlc3REaXZBcmdJbW1GbG9hdChmbG9hdCBhLCBm
bG9hdCBiCiAgICAgVmFsdWUqIGNvbnN0VmFsdWUgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9h
dFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSwgY29uc3RWYWx1
ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBC
aXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAK
ICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdp
c2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhIC8gYikpKTsKIH0K
QEAgLTE0MzUsNyArMTQ0Miw3IEBAIHZvaWQgdGVzdERpdkltbUFyZ0Zsb2F0KGZsb2F0IGEsIGZs
b2F0IGIKICAgICBWYWx1ZSogY29uc3RWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBEaXYsIE9yaWdpbigpLCBjb25zdFZhbHVlLCBmbG9hdFZhbHVl
KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJp
dHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAog
ICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lz
ZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLyBiKSkpOwogfQpA
QCAtMTQ0OCw3ICsxNDU1LDcgQEAgdm9pZCB0ZXN0RGl2SW1tc0Zsb2F0KGZsb2F0IGEsIGZsb2F0
IGIpCiAgICAgVmFsdWUqIGNvbnN0VmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIERpdiwgT3JpZ2luKCksIGNvbnN0VmFsdWUxLCBjb25zdFZhbHVl
Mik7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBC
aXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAK
ICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MpLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oYSAvIGIpKSk7CiB9CkBAIC0xNDU4LDcgKzE0NjUsNyBAQCB2b2lk
IHRlc3RNb2RBcmdEb3VibGUoZG91YmxlIGEpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWUgPSByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFy
Z3VtZW50RlBSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIHZh
bHVlLCB2YWx1ZSkpOwogCkBAIC0xNDcxLDcgKzE0NzgsNyBAQCB2b2lkIHRlc3RNb2RBcmdzRG91
YmxlKGRvdWJsZSBhLCBkb3VibGUgCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiB2
YWx1ZUIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEZQUkluZm86OmFyZ3VtZW50RlBSMSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE1vZCwg
T3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTE0ODQsNyArMTQ5MSw3IEBAIHZvaWQg
dGVzdE1vZEFyZ0ltbURvdWJsZShkb3VibGUgYSwgZG91YmwKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7
CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgYik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2lu
KCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTE0OTcsNyArMTUwNCw3IEBAIHZvaWQgdGVzdE1v
ZEltbUFyZ0RvdWJsZShkb3VibGUgYSwgZG91YmwKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8Q29uc3RE
b3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFy
Z3VtZW50RlBSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIHZh
bHVlQSwgdmFsdWVCKSk7CiAKQEAgLTE1MTAsNyArMTUxNyw3IEBAIHZvaWQgdGVzdE1vZEltbXNE
b3VibGUoZG91YmxlIGEsIGRvdWJsZSAKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBl
bmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC0xNTI2
LDcgKzE1MzMsNyBAQCB2b2lkIHRlc3RNb2RBcmdGbG9hdChmbG9hdCBhKQogICAgIFZhbHVlKiBm
bG9hdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3Jp
Z2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIGZsb2F0VmFsdWUsIGZsb2F0VmFsdWUpOwogICAg
IFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNh
c3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAKICAgICBD
SEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2Fz
dDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihzdGF0aWNfY2FzdDxmbG9hdD4o
Zm1vZChhLCBhKSkpKSk7CkBAIC0xNTQ0LDcgKzE1NTEsNyBAQCB2b2lkIHRlc3RNb2RBcmdzRmxv
YXQoZmxvYXQgYSwgZmxvYXQgYikKICAgICBWYWx1ZSogZmxvYXRWYWx1ZTIgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQyaW50MzIp
OwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE1vZCwg
T3JpZ2luKCksIGZsb2F0VmFsdWUxLCBmbG9hdFZhbHVlMik7CiAgICAgVmFsdWUqIHJlc3VsdDMy
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJl
c3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChj
b21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgYml0
d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0
PGZsb2F0PihmbW9kKGEsIGIpKSkpKTsKIH0KQEAgLTE1NTksNyArMTU2Niw3IEBAIHZvaWQgdGVz
dE1vZEFyZ0ltbUZsb2F0KGZsb2F0IGEsIGZsb2F0IGIKICAgICBWYWx1ZSogY29uc3RWYWx1ZSA9
IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKICAg
ICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdp
bigpLCBmbG9hdFZhbHVlLCBjb25zdFZhbHVlKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVB
bmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9j
YXN0PGludDMyX3Q+KHN0YXRpY19jYXN0PGZsb2F0PihmbW9kKGEsIGIpKSkpKTsKIH0KQEAgLTE1
NzQsNyArMTU4MSw3IEBAIHZvaWQgdGVzdE1vZEltbUFyZ0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIK
ICAgICBWYWx1ZSogY29uc3RWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+
KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigpLCBjb25zdFZhbHVlLCBmbG9hdFZhbHVlKTsKICAg
ICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VD
YXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENI
RUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0
PGludDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0PGZsb2F0Pihm
bW9kKGEsIGIpKSkpKTsKIH0KQEAgLTE1ODcsNyArMTU5NCw3IEBAIHZvaWQgdGVzdE1vZEltbXNG
bG9hdChmbG9hdCBhLCBmbG9hdCBiKQogICAgIFZhbHVlKiBjb25zdFZhbHVlMiA9IHJvb3QtPmFw
cGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKICAgICBWYWx1ZSog
cmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigpLCBjb25z
dFZhbHVlMSwgY29uc3RWYWx1ZTIpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxp
bnQzMl90Pihwcm9jKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0PGZsb2F0Pihm
bW9kKGEsIGIpKSkpKTsKIH0KQEAgLTE2MDMsNyArMTYxMCw3IEBAIHZvaWQgdGVzdERpdkFyZ0Zs
b2F0V2l0aFVzZWxlc3NEb3VibGVDb24KICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBEaXYsIE9yaWdpbigpLCBhc0RvdWJsZSwgYXNEb3VibGUpOwogICAg
IFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91Ymxl
VG9GbG9hdCwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBp
bGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lz
ZV9jYXN0PGludDMyX3Q+KGEgLyBhKSkpOwogfQpAQCAtMTYyMyw3ICsxNjMwLDcgQEAgdm9pZCB0
ZXN0RGl2QXJnc0Zsb2F0V2l0aFVzZWxlc3NEb3VibGVDbwogICAgIFZhbHVlKiByZXN1bHQgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERpdiwgT3JpZ2luKCksIGFzRG91YmxlMSwgYXNE
b3VibGUyKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCByZXN1bHQpOwogICAgIFZhbHVlKiByZXN1
bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigp
LCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lk
ZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90
PihhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEg
LyBiKSkpOwogfQpAQCAtMTY0NSw3ICsxNjUyLDcgQEAgdm9pZCB0ZXN0RGl2QXJnc0Zsb2F0V2l0
aEVmZmVjdGZ1bERvdWJsZQogICAgIFZhbHVlKiBkb3VibGVEaXZyZXNzID0gcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjIpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdp
bigpLCByZXN1bHQsIGRvdWJsZURpdnJlc3MpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3Vs
dCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBkb3VibGUgZWZmZWN0ID0gMDsKICAg
ICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2Vf
Y2FzdDxpbnQzMl90PihhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpLCAmZWZmZWN0KSwgYml0
d2lzZV9jYXN0PGludDMyX3Q+KGEgLyBiKSkpOwpAQCAtMTY1Nyw3ICsxNjY0LDcgQEAgdm9pZCB0
ZXN0U3ViQXJnKGludCBhKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjAp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCB2YWx1ZSwgdmFsdWUp
KTsKIApAQCAtMTY2OCw3ICsxNjc1LDcgQEAgdm9pZCB0ZXN0U3ViQXJncyhpbnQgYSwgaW50IGIp
CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTdWIsIE9y
aWdpbigpLApAQCAtMTY4Miw3ICsxNjg5LDcgQEAgdm9pZCB0ZXN0U3ViQXJnSW1tKGludDY0X3Qg
YSwgaW50NjRfdCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgU3ViLCBPcmlnaW4oKSwKQEAgLTE3MDMsNyArMTcxMCw3IEBAIHZvaWQgdGVzdE5lZ1Zh
bHVlU3ViT25lKGludCBhKQogICAgIFZhbHVlKiBuZWdBcmd1bWVudE1pbnVzT25lID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLAogICAgICAgICBuZWdBcmd1bWVu
dCwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IDEpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBuZWdBcmd1bWVudE1pbnVzT25lKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgbmVnQXJndW1lbnRNaW51c09uZSk7CiAgICAg
Q0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIGEpID09IC1hIC0gMSk7CiB9CiAKQEAgLTE3
MTEsNyArMTcxOCw3IEBAIHZvaWQgdGVzdFN1YkltbUFyZyhpbnQgYSwgaW50IGIpCiB7CiAgICAg
UHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTdWIsIE9yaWdpbigpLApA
QCAtMTczMCw3ICsxNzM3LDcgQEAgdm9pZCB0ZXN0U3ViQXJnTWVtKGludDY0X3QgYSwgaW50NjRf
dCBiKQogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1
YiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwKICAgICAgICAgbG9hZCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJv
YywgYSwgJmIpID09IGEgLSBiKTsKIH0KQEAgLTE3NDUsNyArMTc1Miw3IEBAIHZvaWQgdGVzdFN1
Yk1lbUFyZyhpbnQ2NF90IGEsIGludDY0X3QgYikKICAgICAgICAgbG9hZCwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjEpKTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0
b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgaW50NjRfdCBpbnB1dE91dHB1dCA9IGE7CiAg
ICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgJmlucHV0T3V0cHV0LCBiKSk7
CkBAIC0xNzYyLDcgKzE3NjksNyBAQCB2b2lkIHRlc3RTdWJJbW1NZW0oaW50NjRfdCBhLCBpbnQ2
NF90IGIpCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdp
bigpLCBhKSwKICAgICAgICAgbG9hZCk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVl
Pihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgYWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGludDY0X3QgaW5wdXRPdXRw
dXQgPSBiOwogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludD4ocHJvYywgJmlucHV0T3V0cHV0
KSk7CkBAIC0xNzc5LDcgKzE3ODYsNyBAQCB2b2lkIHRlc3RTdWJNZW1JbW0oaW50NjRfdCBhLCBp
bnQ2NF90IGIpCiAgICAgICAgIGxvYWQsCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKSk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZh
bHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgYWRkcmVzcyk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGludDY0X3QgaW5wdXRP
dXRwdXQgPSBhOwogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludD4ocHJvYywgJmlucHV0T3V0
cHV0KSk7CkBAIC0xNzkxLDcgKzE3OTgsNyBAQCB2b2lkIHRlc3RTdWJBcmdzMzIoaW50IGEsIGlu
dCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU3Vi
LCBPcmlnaW4oKSwKQEAgLTE4MDksNyArMTgxNiw3IEBAIHZvaWQgdGVzdFN1YkFyZ0ltbTMyKGlu
dCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIFN1YiwgT3JpZ2luKCksCkBAIC0xODI1LDcgKzE4MzIsNyBAQCB2b2lkIHRlc3RTdWJJbW1B
cmczMihpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBTdWIsIE9yaWdpbigpLApAQCAtMTg0Nyw3ICsxODU0LDcgQEAgdm9pZCB0ZXN0
U3ViTWVtQXJnMzIoaW50MzJfdCBhLCBpbnQzMl90IAogICAgICAgICByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSkp
OwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1Yiwg
T3JpZ2luKCksIGxvYWQsIGFyZ3VtZW50KTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFs
dWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBhZGRyZXNzKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgaW50MzJfdCBpbnB1dE91
dHB1dCA9IGE7CiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgJmlucHV0
T3V0cHV0LCBiKSk7CkBAIC0xODYzLDcgKzE4NzAsNyBAQCB2b2lkIHRlc3RTdWJBcmdNZW0zMihp
bnQzMl90IGEsIGludDMyX3QgCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7
CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBP
cmlnaW4oKSwgYXJndW1lbnQsIGxvYWQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVD
Syhjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGEsICZiKSA9PSBhIC0gYik7CiB9CkBAIC0x
ODc4LDcgKzE4ODUsNyBAQCB2b2lkIHRlc3RTdWJJbW1NZW0zMihpbnQzMl90IGEsIGludDMyX3Qg
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBh
KSwKICAgICAgICAgbG9hZCk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9j
LCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgYWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGludDMyX3QgaW5wdXRPdXRwdXQgPSBi
OwogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludD4ocHJvYywgJmlucHV0T3V0cHV0KSk7CkBA
IC0xODk1LDcgKzE5MDIsNyBAQCB2b2lkIHRlc3RTdWJNZW1JbW0zMihpbnQzMl90IGEsIGludDMy
X3QgCiAgICAgICAgIGxvYWQsCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBiKSk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihw
cm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgYWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGludDMyX3QgaW5wdXRPdXRwdXQg
PSBhOwogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludD4ocHJvYywgJmlucHV0T3V0cHV0KSk7
CkBAIC0xOTE0LDcgKzE5MjEsNyBAQCB2b2lkIHRlc3ROZWdWYWx1ZVN1Yk9uZTMyKGludCBhKQog
ICAgIFZhbHVlKiBuZWdBcmd1bWVudE1pbnVzT25lID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBTdWIsIE9yaWdpbigpLAogICAgICAgICBuZWdBcmd1bWVudCwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBuZWdBcmd1bWVu
dE1pbnVzT25lKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgbmVnQXJndW1lbnRNaW51c09uZSk7CiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1
bjxpbnQ+KHByb2MsIGEpID09IC1hIC0gMSk7CiB9CiAKQEAgLTE5MjMsNyArMTkzMCw3IEBAIHZv
aWQgdGVzdFN1YkFyZ0RvdWJsZShkb3VibGUgYSkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZSA9IHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6
YXJndW1lbnRGUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwg
dmFsdWUsIHZhbHVlKSk7CiAKQEAgLTE5MzYsNyArMTk0Myw3IEBAIHZvaWQgdGVzdFN1YkFyZ3NE
b3VibGUoZG91YmxlIGEsIGRvdWJsZSAKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUq
IHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgRlBSSW5mbzo6YXJndW1lbnRGUFIxKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3Vi
LCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTk0OSw3ICsxOTU2LDcgQEAgdm9p
ZCB0ZXN0U3ViQXJnSW1tRG91YmxlKGRvdWJsZSBhLCBkb3VibAogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIw
KTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBiKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmln
aW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTk2Miw3ICsxOTY5LDcgQEAgdm9pZCB0ZXN0
U3ViSW1tQXJnRG91YmxlKGRvdWJsZSBhLCBkb3VibAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxDb25z
dERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6
YXJndW1lbnRGUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwg
dmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTk3NSw3ICsxOTgyLDcgQEAgdm9pZCB0ZXN0U3ViSW1t
c0RvdWJsZShkb3VibGUgYSwgZG91YmxlIAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJs
ZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFw
cGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAgICAgCkBA
IC0xOTkxLDcgKzE5OTgsNyBAQCB2b2lkIHRlc3RTdWJBcmdGbG9hdChmbG9hdCBhKQogICAgIFZh
bHVlKiBmbG9hdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2Fz
dCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIGZsb2F0VmFsdWUsIGZsb2F0VmFsdWUp
OwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0
d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAK
ICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdp
c2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhIC0gYSkpKTsKQEAg
LTIwMDksNyArMjAxNiw3IEBAIHZvaWQgdGVzdFN1YkFyZ3NGbG9hdChmbG9hdCBhLCBmbG9hdCBi
KQogICAgIFZhbHVlKiBmbG9hdFZhbHVlMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
Qml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDJpbnQzMik7CiAgICAgVmFsdWUqIHJlc3Vs
dCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgZmxvYXRWYWx1
ZTEsIGZsb2F0VmFsdWUyKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJf
dD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4o
YikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAtIGIpKSk7CiB9CkBAIC0yMDI0LDcgKzIwMzEs
NyBAQCB2b2lkIHRlc3RTdWJBcmdJbW1GbG9hdChmbG9hdCBhLCBmbG9hdCBiCiAgICAgVmFsdWUq
IGNvbnN0VmFsdWUgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmln
aW4oKSwgYik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgU3ViLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSwgY29uc3RWYWx1ZSk7CiAgICAgVmFsdWUqIHJl
c3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2lu
KCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50
aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90Pihh
KSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhIC0gYikpKTsKIH0KQEAgLTIwMzksNyArMjA0Niw3
IEBAIHZvaWQgdGVzdFN1YkltbUFyZ0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIKICAgICBWYWx1ZSog
Y29uc3RWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdp
bigpLCBhKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBTdWIsIE9yaWdpbigpLCBjb25zdFZhbHVlLCBmbG9hdFZhbHVlKTsKICAgICBWYWx1ZSogcmVz
dWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4o
KSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRp
Y2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIp
KSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLSBiKSkpOwogfQpAQCAtMjA1Miw3ICsyMDU5LDcg
QEAgdm9pZCB0ZXN0U3ViSW1tc0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIpCiAgICAgVmFsdWUqIGNv
bnN0VmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIGIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IFN1YiwgT3JpZ2luKCksIGNvbnN0VmFsdWUxLCBjb25zdFZhbHVlMik7CiAgICAgVmFsdWUqIHJl
c3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2lu
KCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50
aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4o
YSAtIGIpKSk7CiB9CkBAIC0yMDY4LDcgKzIwNzUsNyBAQCB2b2lkIHRlc3RTdWJBcmdGbG9hdFdp
dGhVc2VsZXNzRG91YmxlQ29uCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgYXNEb3VibGUsIGFzRG91YmxlKTsKICAgICBWYWx1
ZSogZmxvYXRSZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxv
YXQsIE9yaWdpbigpLCByZXN1bHQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5k
UnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2Fz
dDxpbnQzMl90PihhIC0gYSkpKTsKIH0KQEAgLTIwODgsNyArMjA5NSw3IEBAIHZvaWQgdGVzdFN1
YkFyZ3NGbG9hdFdpdGhVc2VsZXNzRG91YmxlQ28KICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBhc0RvdWJsZTEsIGFzRG91Ymxl
Mik7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxv
YXRSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGlj
YWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSks
IGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhIC0gYikp
KTsKIH0KQEAgLTIxMTAsNyArMjExNyw3IEBAIHZvaWQgdGVzdFN1YkFyZ3NGbG9hdFdpdGhFZmZl
Y3RmdWxEb3VibGUKICAgICBWYWx1ZSogZG91YmxlU3VicmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKTsK
ICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwg
cmVzdWx0LCBkb3VibGVTdWJyZXNzKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgZG91YmxlIGVmZmVjdCA9IDA7CiAgICAgQ0hF
Q0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSwgJmVmZmVjdCksIGJpdHdpc2Vf
Y2FzdDxpbnQzMl90PihhIC0gYikpKTsKQEAgLTIxMjEsNyArMjEyOCw3IEBAIHZvaWQgdGVzdEJp
dEFuZEFyZ3MoaW50NjRfdCBhLCBpbnQ2NF90IGIKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0yMTM2LDcgKzIxNDMs
NyBAQCB2b2lkIHRlc3RCaXRBbmRTYW1lQXJnKGludDY0X3QgYSkKICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBh
cmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMjE1MCw3ICsyMTU3LDcgQEAgdm9pZCB0
ZXN0Qml0QW5kSW1tcyhpbnQ2NF90IGEsIGludDY0X3QgYgogewogICAgIFByb2NlZHVyZSBwcm9j
OwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTIxNjQsNyAr
MjE3MSw3IEBAIHZvaWQgdGVzdEJpdEFuZEFyZ0ltbShpbnQ2NF90IGEsIGludDY0X3QKIHsKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2lu
KCksCkBAIC0yMTc4LDcgKzIxODUsNyBAQCB2b2lkIHRlc3RCaXRBbmRJbW1BcmcoaW50NjRfdCBh
LCBpbnQ2NF90CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMjE5Niw3ICsyMjAzLDcgQEAgdm9pZCB0ZXN0Qml0QW5k
Qml0QW5kQXJnSW1tSW1tKGludDY0X3QgYQogICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25z
dDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTIyMTQsNyArMjIyMSw3IEBAIHZv
aWQgdGVzdEJpdEFuZEltbUJpdEFuZEFyZ0ltbShpbnQ2NF90IGEKICAgICAgICAgcHJvYywgQml0
QW5kLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApLAogICAgICAgICByb290LT5h
cHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYykpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0yMjI4LDcg
KzIyMzUsNyBAQCB2b2lkIHRlc3RCaXRBbmRBcmdzMzIoaW50IGEsIGludCBiKQogewogICAgIFBy
b2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwK
QEAgLTIyNDgsNyArMjI1NSw3IEBAIHZvaWQgdGVzdEJpdEFuZFNhbWVBcmczMihpbnQgYSkKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVu
dCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0yMjYyLDcgKzIyNjksNyBAQCB2b2lkIHRlc3RCaXRB
bmRJbW1zMzIoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTIyNzYsNyArMjI4Myw3IEBAIHZv
aWQgdGVzdEJpdEFuZEFyZ0ltbTMyKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0yMjkyLDcg
KzIyOTksNyBAQCB2b2lkIHRlc3RCaXRBbmRJbW1BcmczMihpbnQgYSwgaW50IGIpCiB7CiAgICAg
UHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigp
LApAQCAtMjMxNCw3ICsyMzIxLDcgQEAgdm9pZCB0ZXN0Qml0QW5kQml0QW5kQXJnSW1tSW1tMzIo
aW50IGEsIAogICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjApKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIGIpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBw
cm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMjMzNCw3ICsyMzQxLDcgQEAgdm9pZCB0ZXN0Qml0
QW5kSW1tQml0QW5kQXJnSW1tMzIoaW50IGEsIAogICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9y
aWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGMpKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMjM2MSw3ICsy
MzY4LDcgQEAgdm9pZCB0ZXN0Qml0QW5kV2l0aE1hc2tSZXR1cm5zQm9vbGVhbnMoaQogICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTUpKTsK
IAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHNlbGVjdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHNlbGVjdCk7CiAKICAgICBpbnQ2NF90IGV4cGVjdGVkID0gKGEgPT0gYikg
PyAtNSA6IDQyOwogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgYSwgYikg
PT0gZXhwZWN0ZWQpOwpAQCAtMjM3OCw3ICsyMzg1LDcgQEAgdm9pZCB0ZXN0Qml0QW5kQXJnRG91
YmxlKGRvdWJsZSBhKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAg
ICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiByZXN1bHQg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdEFuZCwgT3JpZ2luKCksIGFyZ3VtZW50
LCBhcmd1bWVudCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2Fs
KGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBhKSwgYml0QW5kRG91YmxlKGEsIGEpKSk7CiB9
CkBAIC0yMzkwLDcgKzIzOTcsNyBAQCB2b2lkIHRlc3RCaXRBbmRBcmdzRG91YmxlKGRvdWJsZSBh
LCBkb3ViCiAgICAgVmFsdWUqIGFyZ3VtZW50QSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1
ZSogYXJndW1lbnRCID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjEpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdEFuZCwgT3JpZ2luKCksIGFyZ3VtZW50QSwgYXJn
dW1lbnRCKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29t
cGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIGEsIGIpLCBiaXRBbmREb3VibGUoYSwgYikpKTsKIH0K
QEAgLTI0MDIsNyArMjQwOSw3IEBAIHZvaWQgdGVzdEJpdEFuZEFyZ0ltbURvdWJsZShkb3VibGUg
YSwgZG8KICAgICBWYWx1ZSogYXJndW1lbnRBID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVl
KiBhcmd1bWVudEIgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIGIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEJpdEFuZCwgT3JpZ2luKCksIGFyZ3VtZW50QSwgYXJndW1lbnRCKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHBy
b2MsIGEsIGIpLCBiaXRBbmREb3VibGUoYSwgYikpKTsKIH0KQEAgLTI0MTQsNyArMjQyMSw3IEBA
IHZvaWQgdGVzdEJpdEFuZEltbXNEb3VibGUoZG91YmxlIGEsIGRvdWIKICAgICBWYWx1ZSogYXJn
dW1lbnRBID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBhKTsKICAgICBWYWx1ZSogYXJndW1lbnRCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91Ymxl
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBCaXRBbmQsIE9yaWdpbigpLCBhcmd1bWVudEEsIGFyZ3VtZW50
Qik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVB
bmRSdW48ZG91YmxlPihwcm9jKSwgYml0QW5kRG91YmxlKGEsIGIpKSk7CiB9CkBAIC0yNDMyLDcg
KzI0MzksNyBAQCB2b2lkIHRlc3RCaXRBbmRBcmdGbG9hdChmbG9hdCBhKQogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKSkpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEJpdEFuZCwgT3JpZ2luKCksIGFyZ3VtZW50LCBhcmd1bWVudCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+
KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdEFuZEZsb2F0KGEsIGEpKSk7CiB9
CkBAIC0yNDQ4LDcgKzI0NTUsNyBAQCB2b2lkIHRlc3RCaXRBbmRBcmdzRmxvYXQoZmxvYXQgYSwg
ZmxvYXQgCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdp
bigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0QW5kLCBPcmlnaW4oKSwgYXJndW1lbnRB
LCBhcmd1bWVudEIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNh
bChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJp
dHdpc2VfY2FzdDxpbnQzMl90PihiKSksIGJpdEFuZEZsb2F0KGEsIGIpKSk7CiB9CkBAIC0yNDYy
LDcgKzI0NjksNyBAQCB2b2lkIHRlc3RCaXRBbmRBcmdJbW1GbG9hdChmbG9hdCBhLCBmbG9hCiAg
ICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpKTsKICAgICBWYWx1ZSogYXJndW1lbnRCID0gcm9v
dC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogICAgIFZh
bHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdEFuZCwgT3JpZ2lu
KCksIGFyZ3VtZW50QSwgYXJndW1lbnRCKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hF
Q0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYywgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXRBbmRGbG9hdChhLCBiKSkp
OwogfQpAQCAtMjQ3NCw3ICsyNDgxLDcgQEAgdm9pZCB0ZXN0Qml0QW5kSW1tc0Zsb2F0KGZsb2F0
IGEsIGZsb2F0IAogICAgIFZhbHVlKiBhcmd1bWVudEEgPSByb290LT5hcHBlbmROZXc8Q29uc3RG
bG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIGFyZ3VtZW50QiA9IHJv
b3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKICAgICBW
YWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXRBbmQsIE9yaWdp
bigpLCBhcmd1bWVudEEsIGFyZ3VtZW50Qik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENI
RUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MpLCBiaXRBbmRGbG9hdChh
LCBiKSkpOwogfQpAQCAtMjQ5Myw3ICsyNTAwLDcgQEAgdm9pZCB0ZXN0Qml0QW5kQXJnc0Zsb2F0
V2l0aFVzZWxlc3NEb3VibAogICAgIFZhbHVlKiBhcmd1bWVudEJhc0RvdWJsZSA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGFyZ3VtZW50Qik7
CiAgICAgVmFsdWUqIGRvdWJsZVJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
Qml0QW5kLCBPcmlnaW4oKSwgYXJndW1lbnRBYXNEb3VibGUsIGFyZ3VtZW50QmFzRG91YmxlKTsK
ICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERv
dWJsZVRvRmxvYXQsIE9yaWdpbigpLCBkb3VibGVSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZmxv
YXRSZXN1bHQpOwogCiAgICAgZG91YmxlIGRvdWJsZUEgPSBhOwogICAgIGRvdWJsZSBkb3VibGVC
ID0gYjsKQEAgLTI1MDUsNyArMjUxMiw3IEBAIHZvaWQgdGVzdEJpdE9yQXJncyhpbnQ2NF90IGEs
IGludDY0X3QgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIEJpdE9yLCBPcmlnaW4oKSwKQEAgLTI1MjAsNyArMjUyNyw3IEBAIHZvaWQgdGVzdEJpdE9y
U2FtZUFyZyhpbnQ2NF90IGEpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0T3IsIE9y
aWdpbigpLApAQCAtMjUzNCw3ICsyNTQxLDcgQEAgdm9pZCB0ZXN0Qml0T3JJbW1zKGludDY0X3Qg
YSwgaW50NjRfdCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgQml0T3IsIE9yaWdpbigpLApAQCAtMjU0OCw3ICsyNTU1LDcgQEAgdm9pZCB0ZXN0Qml0
T3JBcmdJbW0oaW50NjRfdCBhLCBpbnQ2NF90IAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgQml0T3IsIE9yaWdpbigpLApAQCAtMjU2Miw3ICsyNTY5LDcg
QEAgdm9pZCB0ZXN0Qml0T3JJbW1BcmcoaW50NjRfdCBhLCBpbnQ2NF90IAogewogICAgIFByb2Nl
ZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0T3IsIE9yaWdpbigpLApAQCAt
MjU4MCw3ICsyNTg3LDcgQEAgdm9pZCB0ZXN0Qml0T3JCaXRPckFyZ0ltbUltbShpbnQ2NF90IGEs
IAogICAgICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIw
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IGIpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRPciwgT3Jp
Z2luKCksCkBAIC0yNTk4LDcgKzI2MDUsNyBAQCB2b2lkIHRlc3RCaXRPckltbUJpdE9yQXJnSW1t
KGludDY0X3QgYSwgCiAgICAgICAgIHByb2MsIEJpdE9yLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgYykpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IEJpdE9yLCBPcmlnaW4oKSwKQEAgLTI2MTIsNyArMjYxOSw3IEBAIHZvaWQgdGVzdEJpdE9yQXJn
czMyKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIEJpdE9yLCBPcmlnaW4oKSwKQEAgLTI2MzMsNyArMjY0MCw3IEBAIHZvaWQgdGVz
dEJpdE9yU2FtZUFyZzMyKGludCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIwKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgQml0T3IsIE9yaWdpbigpLApAQCAtMjY0Nyw3ICsyNjU0LDcgQEAgdm9pZCB0ZXN0Qml0T3JJ
bW1zMzIoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgcHJvYywgQml0T3IsIE9yaWdpbigpLApAQCAtMjY2MSw3ICsyNjY4LDcgQEAgdm9pZCB0
ZXN0Qml0T3JBcmdJbW0zMihpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCksCkBAIC0yNjc3LDcgKzI2ODQs
NyBAQCB2b2lkIHRlc3RCaXRPckltbUFyZzMyKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1
cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdE9yLCBPcmlnaW4oKSwKQEAgLTI2
OTksNyArMjcwNiw3IEBAIHZvaWQgdGVzdEJpdE9yQml0T3JBcmdJbW1JbW0zMihpbnQgYSwgaW4K
ICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwKSksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBiKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0
T3IsIE9yaWdpbigpLApAQCAtMjcxOSw3ICsyNzI2LDcgQEAgdm9pZCB0ZXN0Qml0T3JJbW1CaXRP
ckFyZ0ltbTMyKGludCBhLCBpbgogICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAog
ICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGMpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCksCkBAIC0yNzMzLDcgKzI3NDAsNyBAQCB2
b2lkIHRlc3RCaXRYb3JBcmdzKGludDY0X3QgYSwgaW50NjRfdCBiCiB7CiAgICAgUHJvY2VkdXJl
IHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjc0
OCw3ICsyNzU1LDcgQEAgdm9pZCB0ZXN0Qml0WG9yU2FtZUFyZyhpbnQ2NF90IGEpCiAgICAgUHJv
Y2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAg
ICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTI3NjIsNyArMjc2OSw3
IEBAIHZvaWQgdGVzdEJpdFhvckltbXMoaW50NjRfdCBhLCBpbnQ2NF90IGIKIHsKICAgICBQcm9j
ZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCkBA
IC0yNzc2LDcgKzI3ODMsNyBAQCB2b2lkIHRlc3RCaXRYb3JBcmdJbW0oaW50NjRfdCBhLCBpbnQ2
NF90CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRY
b3IsIE9yaWdpbigpLApAQCAtMjc5MCw3ICsyNzk3LDcgQEAgdm9pZCB0ZXN0Qml0WG9ySW1tQXJn
KGludDY0X3QgYSwgaW50NjRfdAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTI4MDgsNyArMjgxNSw3IEBAIHZvaWQg
dGVzdEJpdFhvckJpdFhvckFyZ0ltbUltbShpbnQ2NF90IGEKICAgICAgICAgcHJvYywgQml0WG9y
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApLAogICAgICAgICByb290LT5hcHBl
bmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYikpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCkBAIC0yODI2LDcgKzI4
MzMsNyBAQCB2b2lkIHRlc3RCaXRYb3JJbW1CaXRYb3JBcmdJbW0oaW50NjRfdCBhCiAgICAgICAg
IHByb2MsIEJpdFhvciwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGMpKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApA
QCAtMjg0MCw3ICsyODQ3LDcgQEAgdm9pZCB0ZXN0Qml0WG9yQXJnczMyKGludCBhLCBpbnQgYikK
IHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwg
T3JpZ2luKCksCkBAIC0yODYxLDcgKzI4NjgsNyBAQCB2b2lkIHRlc3RCaXRYb3JTYW1lQXJnMzIo
aW50IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAg
ICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjAp
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdp
bigpLApAQCAtMjg3NSw3ICsyODgyLDcgQEAgdm9pZCB0ZXN0Qml0WG9ySW1tczMyKGludCBhLCBp
bnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJp
dFhvciwgT3JpZ2luKCksCkBAIC0yODg5LDcgKzI4OTYsNyBAQCB2b2lkIHRlc3RCaXRYb3JBcmdJ
bW0zMihpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjkwNSw3ICsyOTEyLDcgQEAgdm9pZCB0
ZXN0Qml0WG9ySW1tQXJnMzIoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTI5MjcsNyArMjkz
NCw3IEBAIHZvaWQgdGVzdEJpdFhvckJpdFhvckFyZ0ltbUltbTMyKGludCBhLCAKICAgICAgICAg
ICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBi
KSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmln
aW4oKSwKQEAgLTI5NDcsNyArMjk1NCw3IEBAIHZvaWQgdGVzdEJpdFhvckltbUJpdFhvckFyZ0lt
bTMyKGludCBhLCAKICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BS
SW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBjKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTI5NjEsNyArMjk2OCw3IEBAIHZvaWQgdGVz
dEJpdE5vdEFyZyhpbnQ2NF90IGEpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjk3NSw3ICsyOTgyLDcgQEAgdm9p
ZCB0ZXN0Qml0Tm90SW1tKGludDY0X3QgYSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCkBAIC0yOTk1LDcgKzMwMDIsNyBA
QCB2b2lkIHRlc3RCaXROb3RNZW0oaW50NjRfdCBhKQogICAgICAgICByb290LT5hcHBlbmROZXc8
Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTEpLAogICAgICAgICBsb2FkKTsKICAgICBy
b290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgbm90TG9h
ZCwgYWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDApKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDAp
KTsKIAogICAgIGludDY0X3QgaW5wdXQgPSBhOwogICAgIGNvbXBpbGVBbmRSdW48aW50MzJfdD4o
cHJvYywgJmlucHV0KTsKQEAgLTMwMDgsNyArMzAxNSw3IEBAIHZvaWQgdGVzdEJpdE5vdEFyZzMy
KGludDMyX3QgYSkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAg
IFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBCaXRYb3IsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xKSwKQEAgLTMwMjAsNyArMzAyNyw3IEBAIHZvaWQg
dGVzdEJpdE5vdEltbTMyKGludDMyX3QgYSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCkBAIC0zMDQwLDcgKzMwNDcsNyBA
QCB2b2lkIHRlc3RCaXROb3RNZW0zMihpbnQzMl90IGEpCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMSksCiAgICAgICAgIGxvYWQpOwogICAg
IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCBub3RM
b2FkLCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
MCkpOwogCiAgICAgaW50MzJfdCBpbnB1dCA9IGE7CiAgICAgY29tcGlsZUFuZFJ1bjxpbnQzMl90
Pihwcm9jLCAmaW5wdXQpOwpAQCAtMzA2MywxNiArMzA3MCwxNiBAQCB2b2lkIHRlc3RCaXROb3RP
bkJvb2xlYW5BbmRCcmFuY2gzMihpbnQ2CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMy
VmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMSksCiAgICAgICAgIGFyZ3NBcmVFcXVhbCk7CiAKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIGFyZ3NB
cmVOb3RFcXVhbCwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRl
ZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29u
c3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTQyKSk7CiAKQEAgLTMwODQsNyArMzA5MSw3IEBA
IHZvaWQgdGVzdFNobEFyZ3MoaW50NjRfdCBhLCBpbnQ2NF90IGIpCiB7CiAgICAgUHJvY2VkdXJl
IHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTaGwsIE9yaWdpbigpLApAQCAtMzEwMCw3
ICszMTA3LDcgQEAgdm9pZCB0ZXN0U2hsSW1tcyhpbnQ2NF90IGEsIGludDY0X3QgYikKIHsKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNobCwgT3JpZ2luKCks
CkBAIC0zMTE0LDcgKzMxMjEsNyBAQCB2b2lkIHRlc3RTaGxBcmdJbW0oaW50NjRfdCBhLCBpbnQ2
NF90IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBT
aGwsIE9yaWdpbigpLApAQCAtMzEzMSw3ICszMTM4LDcgQEAgdm9pZCB0ZXN0U2hsQXJnMzIoaW50
MzJfdCBhKQogICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU2hsLCBPcmlnaW4oKSwgdmFsdWUsIHZhbHVlKSk7CiAK
QEAgLTMxNDIsNyArMzE0OSw3IEBAIHZvaWQgdGVzdFNobEFyZ3MzMihpbnQzMl90IGEsIGludDMy
X3QgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNo
bCwgT3JpZ2luKCksCkBAIC0zMTYwLDcgKzMxNjcsNyBAQCB2b2lkIHRlc3RTaGxJbW1zMzIoaW50
MzJfdCBhLCBpbnQzMl90IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBTaGwsIE9yaWdpbigpLApAQCAtMzE3NCw3ICszMTgxLDcgQEAgdm9pZCB0ZXN0
U2hsQXJnSW1tMzIoaW50MzJfdCBhLCBpbnQzMl90IAogewogICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KAogICAgICAgICAgICAgcHJvYywgU2hsLCBPcmlnaW4oKSwKQEAgLTMxOTAsNyArMzE5Nyw3
IEBAIHZvaWQgdGVzdFNTaHJBcmdzKGludDY0X3QgYSwgaW50NjRfdCBiKQogewogICAgIFByb2Nl
ZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU1NociwgT3JpZ2luKCksCkBAIC0z
MjA2LDcgKzMyMTMsNyBAQCB2b2lkIHRlc3RTU2hySW1tcyhpbnQ2NF90IGEsIGludDY0X3QgYikK
IHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNTaHIsIE9y
aWdpbigpLApAQCAtMzIyMCw3ICszMjI3LDcgQEAgdm9pZCB0ZXN0U1NockFyZ0ltbShpbnQ2NF90
IGEsIGludDY0X3QgYgogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgU1NociwgT3JpZ2luKCksCkBAIC0zMjM3LDcgKzMyNDQsNyBAQCB2b2lkIHRlc3RTU2hy
QXJnMzIoaW50MzJfdCBhKQogICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU1NociwgT3JpZ2luKCksIHZhbHVlLCB2
YWx1ZSkpOwogCkBAIC0zMjQ4LDcgKzMyNTUsNyBAQCB2b2lkIHRlc3RTU2hyQXJnczMyKGludDMy
X3QgYSwgaW50MzJfdCBiCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBTU2hyLCBPcmlnaW4oKSwKQEAgLTMyNjYsNyArMzI3Myw3IEBAIHZvaWQgdGVzdFNT
aHJJbW1zMzIoaW50MzJfdCBhLCBpbnQzMl90IGIKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIFNTaHIsIE9yaWdpbigpLApAQCAtMzI4MCw3ICszMjg3LDcg
QEAgdm9pZCB0ZXN0U1NockFyZ0ltbTMyKGludDMyX3QgYSwgaW50MzJfdAogewogICAgIFByb2Nl
ZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU1NociwgT3JpZ2luKCksCkBAIC0z
Mjk2LDcgKzMzMDMsNyBAQCB2b2lkIHRlc3RaU2hyQXJncyh1aW50NjRfdCBhLCB1aW50NjRfdCBi
CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBaU2hyLCBP
cmlnaW4oKSwKQEAgLTMzMTIsNyArMzMxOSw3IEBAIHZvaWQgdGVzdFpTaHJJbW1zKHVpbnQ2NF90
IGEsIHVpbnQ2NF90IGIKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIFpTaHIsIE9yaWdpbigpLApAQCAtMzMyNiw3ICszMzMzLDcgQEAgdm9pZCB0ZXN0WlNo
ckFyZ0ltbSh1aW50NjRfdCBhLCB1aW50NjRfdAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgWlNociwgT3JpZ2luKCksCkBAIC0zMzQzLDcgKzMzNTAsNyBA
QCB2b2lkIHRlc3RaU2hyQXJnMzIodWludDMyX3QgYSkKICAgICBWYWx1ZSogdmFsdWUgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BS
SW5mbzo6YXJndW1lbnRHUFIwKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFpTaHIsIE9y
aWdpbigpLCB2YWx1ZSwgdmFsdWUpKTsKIApAQCAtMzM1NCw3ICszMzYxLDcgQEAgdm9pZCB0ZXN0
WlNockFyZ3MzMih1aW50MzJfdCBhLCB1aW50MzJfdAogewogICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KAogICAgICAgICAgICAgcHJvYywgWlNociwgT3JpZ2luKCksCkBAIC0zMzcyLDcgKzMzNzks
NyBAQCB2b2lkIHRlc3RaU2hySW1tczMyKHVpbnQzMl90IGEsIHVpbnQzMl90CiB7CiAgICAgUHJv
Y2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBaU2hyLCBPcmlnaW4oKSwKQEAg
LTMzODYsNyArMzM5Myw3IEBAIHZvaWQgdGVzdFpTaHJBcmdJbW0zMih1aW50MzJfdCBhLCB1aW50
MzIKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFpTaHIs
IE9yaWdpbigpLApAQCAtMzQxOSw3ICszNDI2LDcgQEAgdm9pZCB0ZXN0Q2x6QXJnNjQoaW50NjRf
dCBhKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUq
IGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFZhbHVlKiBjbHpWYWx1ZSA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2x6LCBPcmlnaW4oKSwgYXJndW1lbnQpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNselZh
bHVlKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgY2x6VmFsdWUpOwogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48dW5zaWduZWQ+KHByb2Ms
IGEpID09IGNvdW50TGVhZGluZ1plcm8oYSkpOwogfQogCkBAIC0zNDMwLDcgKzM0MzcsNyBAQCB2
b2lkIHRlc3RDbHpNZW02NChpbnQ2NF90IGEpCiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9y
eVZhbHVlPihwcm9jLCBMb2FkLCBJbnQ2NCwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVl
KiBjbHpWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2x6LCBPcmlnaW4oKSwg
dmFsdWUpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIGNselZhbHVlKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgY2x6VmFsdWUpOwogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48
dW5zaWduZWQ+KHByb2MsICZhKSA9PSBjb3VudExlYWRpbmdaZXJvKGEpKTsKIH0KIApAQCAtMzQ0
MSw3ICszNDQ4LDcgQEAgdm9pZCB0ZXN0Q2x6QXJnMzIoaW50MzJfdCBhKQogICAgIFZhbHVlKiBh
cmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiBjbHpWYWx1ZSA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2x6LCBPcmlnaW4oKSwgYXJndW1lbnQpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNselZhbHVl
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgY2x6VmFsdWUpOwogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48dW5zaWduZWQ+KHByb2MsIGEp
ID09IGNvdW50TGVhZGluZ1plcm8oYSkpOwogfQogCkBAIC0zNDUyLDcgKzM0NTksNyBAQCB2b2lk
IHRlc3RDbHpNZW0zMihpbnQzMl90IGEpCiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZh
bHVlPihwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBj
bHpWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2x6LCBPcmlnaW4oKSwgdmFs
dWUpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIGNselZhbHVlKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgY2x6VmFsdWUpOwogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48dW5z
aWduZWQ+KHByb2MsICZhKSA9PSBjb3VudExlYWRpbmdaZXJvKGEpKTsKIH0KIApAQCAtMzQ2MCw3
ICszNDY3LDcgQEAgdm9pZCB0ZXN0QWJzQXJnKGRvdWJsZSBhKQogewogICAgIFByb2NlZHVyZSBw
cm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWJzLCBPcmlnaW4oKSwKQEAgLTM0NzQsNyAr
MzQ4MSw3IEBAIHZvaWQgdGVzdEFic0ltbShkb3VibGUgYSkKICAgICBQcm9jZWR1cmUgcHJvYzsK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1
bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
YSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFicywgT3JpZ2luKCksIGFyZ3VtZW50KSk7
CiAKQEAgLTM0ODcsNyArMzQ5NCw3IEBAIHZvaWQgdGVzdEFic01lbShkb3VibGUgYSkKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhZGRyZXNzID0g
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkRG91YmxlID0gcm9vdC0+YXBw
ZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBEb3VibGUsIE9yaWdpbigpLCBhZGRyZXNz
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBPcmlnaW4oKSwgbG9hZERvdWJsZSkp
OwogCkBAIC0zNTAxLDcgKzM1MDgsNyBAQCB2b2lkIHRlc3RBYnNBYnNBcmcoZG91YmxlIGEpCiAg
ICAgVmFsdWUqIGZpcnN0QWJzID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCkpOwogICAgIFZhbHVlKiBzZWNvbmRBYnMg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFicywgT3JpZ2luKCksIGZpcnN0QWJzKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBzZWNvbmRBYnMpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBzZWNvbmRBYnMpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGls
ZUFuZFJ1bjxkb3VibGU+KHByb2MsIGEpLCBmYWJzKGEpKSk7CiB9CkBAIC0zNTEzLDcgKzM1MjAs
NyBAQCB2b2lkIHRlc3RBYnNCaXR3aXNlQ2FzdEFyZyhkb3VibGUgYSkKICAgICBWYWx1ZSogYXJn
dW1lbnRBc0ludDY0ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFZhbHVlKiBhcmd1bWVudEFzRG91
YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCks
IGFyZ3VtZW50QXNJbnQ2NCk7CiAgICAgVmFsdWUqIGFic1ZhbHVlID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdpbigpLCBhcmd1bWVudEFzRG91YmxlKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhYnNWYWx1
ZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIGFic1ZhbHVlKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91
YmxlPihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50NjRfdD4oYSkpLCBmYWJzKGEpKSk7CiB9CkBAIC0z
NTI3LDcgKzM1MzQsNyBAQCB2b2lkIHRlc3RCaXR3aXNlQ2FzdEFic0JpdHdpc2VDYXN0QXJnKGRv
CiAgICAgVmFsdWUqIGFic1ZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMs
IE9yaWdpbigpLCBhcmd1bWVudEFzRG91YmxlKTsKICAgICBWYWx1ZSogcmVzdWx0QXNJbnQ2NCA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhYnNW
YWx1ZSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHRBc0ludDY0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0QXNJbnQ2NCk7CiAKICAgICBpbnQ2NF90
IGV4cGVjdGVkUmVzdWx0ID0gYml0d2lzZV9jYXN0PGludDY0X3Q+KGZhYnMoYSkpOwogICAgIENI
RUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgYml0d2lzZV9jYXN0
PGludDY0X3Q+KGEpKSwgZXhwZWN0ZWRSZXN1bHQpKTsKQEAgLTM1NDIsNyArMzU0OSw3IEBAIHZv
aWQgdGVzdEFic0FyZyhmbG9hdCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKICAg
ICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdp
bigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+
KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90Pihz
dGF0aWNfY2FzdDxmbG9hdD4oZmFicyhhKSkpKSk7CiB9CkBAIC0zNTU0LDcgKzM1NjEsNyBAQCB2
b2lkIHRlc3RBYnNJbW0oZmxvYXQgYSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBl
bmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHJl
c3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBPcmlnaW4oKSwgYXJndW1l
bnQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
Qml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwog
CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8
ZmxvYXQ+KGZhYnMoYSkpKSkpOwogfQpAQCAtMzU2Nyw3ICszNTc0LDcgQEAgdm9pZCB0ZXN0QWJz
TWVtKGZsb2F0IGEpCiAgICAgTWVtb3J5VmFsdWUqIGxvYWRGbG9hdCA9IHJvb3QtPmFwcGVuZE5l
dzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgRmxvYXQsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAg
ICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdp
bigpLCBsb2FkRmxvYXQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90
Pihwcm9jLCAmYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihzdGF0aWNfY2FzdDxmbG9hdD4oZmFi
cyhhKSkpKSk7CiB9CkBAIC0zNTgxLDcgKzM1ODgsNyBAQCB2b2lkIHRlc3RBYnNBYnNBcmcoZmxv
YXQgYSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUqIGZpcnN0QWJz
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdpbigpLCBhcmd1bWVudCk7
CiAgICAgVmFsdWUqIHNlY29uZEFicyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJz
LCBPcmlnaW4oKSwgZmlyc3RBYnMpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZEFicyk7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZEFicyk7CiAKICAgICBD
SEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4oYSkpLCBzdGF0aWNfY2FzdDxmbG9hdD4oZmFicyhhKSkpKTsKIH0KQEAgLTM1OTQs
NyArMzYwMSw3IEBAIHZvaWQgdGVzdEFic0JpdHdpc2VDYXN0QXJnKGZsb2F0IGEpCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIwKSk7CiAgICAgVmFsdWUqIGFyZ3VtZW50QXNmbG9hdCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudEFzSW50
MzIpOwogICAgIFZhbHVlKiBhYnNWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
QWJzLCBPcmlnaW4oKSwgYXJndW1lbnRBc2Zsb2F0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhYnNWYWx1ZSk7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFic1ZhbHVlKTsK
IAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsIGJpdHdp
c2VfY2FzdDxpbnQzMl90PihhKSksIHN0YXRpY19jYXN0PGZsb2F0PihmYWJzKGEpKSkpOwogfQpA
QCAtMzYwOSw3ICszNjE2LDcgQEAgdm9pZCB0ZXN0Qml0d2lzZUNhc3RBYnNCaXR3aXNlQ2FzdEFy
ZyhmbAogICAgIFZhbHVlKiBhYnNWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
QWJzLCBPcmlnaW4oKSwgYXJndW1lbnRBc2Zsb2F0KTsKICAgICBWYWx1ZSogcmVzdWx0QXNJbnQ2
NCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBh
YnNWYWx1ZSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByZXN1bHRBc0ludDY0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0QXNJbnQ2NCk7CiAKICAgICBpbnQz
Ml90IGV4cGVjdGVkUmVzdWx0ID0gYml0d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0PGZs
b2F0PihmYWJzKGEpKSk7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQz
Ml90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBleHBlY3RlZFJlc3VsdCkpOwpA
QCAtMzYyNiw3ICszNjMzLDcgQEAgdm9pZCB0ZXN0QWJzQXJnV2l0aFVzZWxlc3NEb3VibGVDb252
ZXJzaQogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFi
cywgT3JpZ2luKCksIGFzRG91YmxlKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCByZXN1bHQpOwog
ICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lz
ZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAK
ICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdp
c2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihzdGF0aWNfY2FzdDxm
bG9hdD4oZmFicyhhKSkpKSk7CiB9CkBAIC0zNjQ0LDcgKzM2NTEsNyBAQCB2b2lkIHRlc3RBYnNB
cmdXaXRoRWZmZWN0ZnVsRG91YmxlQ29udmVyCiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0
KTsKICAgICBWYWx1ZSogZG91YmxlQWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKICAgICByb290
LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBk
b3VibGVBZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIGRvdWJsZSBlZmZl
Y3QgPSAwOwogICAgIGludDMyX3QgcmVzdWx0VmFsdWUgPSBjb21waWxlQW5kUnVuPGludDMyX3Q+
KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgJmVmZmVjdCk7CkBAIC0zNjU2LDcgKzM2
NjMsNyBAQCB2b2lkIHRlc3RDZWlsQXJnKGRvdWJsZSBhKQogewogICAgIFByb2NlZHVyZSBwcm9j
OwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQ2VpbCwgT3JpZ2luKCksCkBAIC0zNjcwLDcgKzM2
NzcsNyBAQCB2b2lkIHRlc3RDZWlsSW1tKGRvdWJsZSBhKQogICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3Vt
ZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBh
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCksIGFyZ3VtZW50KSk7
CiAKQEAgLTM2ODMsNyArMzY5MCw3IEBAIHZvaWQgdGVzdENlaWxNZW0oZG91YmxlIGEpCiAgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYWRkcmVzcyA9
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIwKTsKICAgICBNZW1vcnlWYWx1ZSogbG9hZERvdWJsZSA9IHJvb3QtPmFw
cGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgRG91YmxlLCBPcmlnaW4oKSwgYWRkcmVz
cyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBsb2FkRG91Ymxl
KSk7CiAKQEAgLTM2OTcsNyArMzcwNCw3IEBAIHZvaWQgdGVzdENlaWxDZWlsQXJnKGRvdWJsZSBh
KQogICAgIFZhbHVlKiBmaXJzdENlaWwgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENl
aWwsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCkpOwogICAgIFZhbHVlKiBzZWNv
bmRDZWlsID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDZWlsLCBPcmlnaW4oKSwgZmly
c3RDZWlsKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBzZWNvbmRDZWlsKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kQ2VpbCk7CiAKICAgICBDSEVDSyhpc0lkZW50
aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgYSksIGNlaWwoYSkpKTsKIH0KQEAgLTM3
MDksNyArMzcxNiw3IEBAIHZvaWQgdGVzdEZsb29yQ2VpbEFyZyhkb3VibGUgYSkKICAgICBWYWx1
ZSogZmlyc3RDZWlsID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDZWlsLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApKTsKICAgICBWYWx1ZSogd3JhcHBpbmdGbG9vciA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBmaXJzdENlaWwp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHdyYXBwaW5nRmxvb3IpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCB3cmFwcGluZ0Zsb29yKTsKIAogICAgIENIRUNLKGlzSWRlbnRp
Y2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBhKSwgY2VpbChhKSkpOwogfQpAQCAtMzcy
MSw3ICszNzI4LDcgQEAgdm9pZCB0ZXN0Q2VpbElUb0Q2NChpbnQ2NF90IGEpCiAgICAgVmFsdWUq
IGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFZhbHVlKiBhcmd1bWVudEFzRG91Ymxl
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgYXJndW1lbnQp
OwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBhcmd1bWVudEFz
RG91YmxlKSk7CiAKQEAgLTM3MzYsNyArMzc0Myw3IEBAIHZvaWQgdGVzdENlaWxJVG9EMzIoaW50
NjRfdCBhKQogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiBhcmd1bWVudEFz
RG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgYXJn
dW1lbnQpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBhcmd1
bWVudEFzRG91YmxlKSk7CiAKQEAgLTM3NTIsNyArMzc1OSw3IEBAIHZvaWQgdGVzdENlaWxBcmco
ZmxvYXQgYSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUqIHJlc3Vs
dCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCksIGFyZ3VtZW50
KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJp
dHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAog
ICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lz
ZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGNlaWxmKGEpKSkpOwog
fQpAQCAtMzc2NCw3ICszNzcxLDcgQEAgdm9pZCB0ZXN0Q2VpbEltbShmbG9hdCBhKQogICAgIFZh
bHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9y
aWdpbigpLCBhKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBDZWlsLCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGls
ZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNl
X2Nhc3Q8aW50MzJfdD4oY2VpbGYoYSkpKSk7CiB9CkBAIC0zNzc3LDcgKzM3ODQsNyBAQCB2b2lk
IHRlc3RDZWlsTWVtKGZsb2F0IGEpCiAgICAgTWVtb3J5VmFsdWUqIGxvYWRGbG9hdCA9IHJvb3Qt
PmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgRmxvYXQsIE9yaWdpbigpLCBhZGRy
ZXNzKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBD
ZWlsLCBPcmlnaW4oKSwgbG9hZEZsb2F0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRS
dW48aW50MzJfdD4ocHJvYywgJmEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oY2VpbGYoYSkpKSk7
CiB9CkBAIC0zNzkxLDcgKzM3OTgsNyBAQCB2b2lkIHRlc3RDZWlsQ2VpbEFyZyhmbG9hdCBhKQog
ICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lz
ZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1ZSogZmlyc3RDZWlsID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDZWlsLCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAg
IFZhbHVlKiBzZWNvbmRDZWlsID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDZWlsLCBP
cmlnaW4oKSwgZmlyc3RDZWlsKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmRDZWlsKTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kQ2VpbCk7CiAKICAgICBD
SEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4oYSkpLCBjZWlsZihhKSkpOwogfQpAQCAtMzgwNSw3ICszODEyLDcgQEAgdm9pZCB0
ZXN0Rmxvb3JDZWlsQXJnKGZsb2F0IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwog
ICAgIFZhbHVlKiBmaXJzdENlaWwgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWws
IE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHdyYXBwaW5nRmxvb3IgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgZmlyc3RDZWlsKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB3cmFw
cGluZ0Zsb29yKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgd3JhcHBpbmdGbG9vcik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21w
aWxlQW5kUnVuPGZsb2F0Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBjZWlsZihh
KSkpOwogfQpAQCAtMzgyMSw3ICszODI4LDcgQEAgdm9pZCB0ZXN0Q2VpbEFyZ1dpdGhVc2VsZXNz
RG91YmxlQ29udmVycwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIENlaWwsIE9yaWdpbigpLCBhc0RvdWJsZSk7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwg
cmVzdWx0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihw
cm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oY2Vp
bGYoYSkpKSk7CiB9CkBAIC0zODM5LDcgKzM4NDYsNyBAQCB2b2lkIHRlc3RDZWlsQXJnV2l0aEVm
ZmVjdGZ1bERvdWJsZUNvbnZlCiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKICAgICBW
YWx1ZSogZG91YmxlQWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKICAgICByb290LT5hcHBlbmRO
ZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBkb3VibGVBZGRy
ZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIGRvdWJsZSBlZmZlY3QgPSAwOwog
ICAgIGludDMyX3QgcmVzdWx0VmFsdWUgPSBjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJp
dHdpc2VfY2FzdDxpbnQzMl90PihhKSwgJmVmZmVjdCk7CkBAIC0zODUxLDcgKzM4NTgsNyBAQCB2
b2lkIHRlc3RGbG9vckFyZyhkb3VibGUgYSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIEZsb29yLCBPcmlnaW4oKSwKQEAgLTM4NjUsNyArMzg3Miw3IEBA
IHZvaWQgdGVzdEZsb29ySW1tKGRvdWJsZSBhKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0g
cm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBhcmd1bWVudCkpOwogCkBA
IC0zODc4LDcgKzM4ODUsNyBAQCB2b2lkIHRlc3RGbG9vck1lbShkb3VibGUgYSkKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkRG91YmxlID0gcm9vdC0+YXBwZW5k
TmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBEb3VibGUsIE9yaWdpbigpLCBhZGRyZXNzKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBsb2FkRG91YmxlKSk7
CiAKQEAgLTM4OTIsNyArMzg5OSw3IEBAIHZvaWQgdGVzdEZsb29yRmxvb3JBcmcoZG91YmxlIGEp
CiAgICAgVmFsdWUqIGZpcnN0Rmxvb3IgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZs
b29yLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApKTsKICAgICBWYWx1ZSogc2Vj
b25kRmxvb3IgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwg
Zmlyc3RGbG9vcik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgc2Vjb25kRmxvb3IpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmRGbG9vcik7CiAKICAgICBDSEVDSyhp
c0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgYSksIGZsb29yKGEpKSk7CiB9
CkBAIC0zOTA0LDcgKzM5MTEsNyBAQCB2b2lkIHRlc3RDZWlsRmxvb3JBcmcoZG91YmxlIGEpCiAg
ICAgVmFsdWUqIGZpcnN0Rmxvb3IgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29y
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApKTsKICAgICBWYWx1ZSogd3JhcHBp
bmdDZWlsID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDZWlsLCBPcmlnaW4oKSwgZmly
c3RGbG9vcik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgd3JhcHBpbmdDZWlsKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgd3JhcHBpbmdDZWlsKTsKIAogICAgIENIRUNLKGlz
SWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBhKSwgZmxvb3IoYSkpKTsKIH0K
QEAgLTM5MTYsNyArMzkyMyw3IEBAIHZvaWQgdGVzdEZsb29ySVRvRDY0KGludDY0X3QgYSkKICAg
ICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50
QXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBh
cmd1bWVudCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBh
cmd1bWVudEFzRG91YmxlKSk7CiAKQEAgLTM5MzEsNyArMzkzOCw3IEBAIHZvaWQgdGVzdEZsb29y
SVRvRDMyKGludDY0X3QgYSkKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSog
YXJndW1lbnRBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3Jp
Z2luKCksIGFyZ3VtZW50KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3Jp
Z2luKCksIGFyZ3VtZW50QXNEb3VibGUpKTsKIApAQCAtMzk0Nyw3ICszOTU0LDcgQEAgdm9pZCB0
ZXN0Rmxvb3JBcmcoZmxvYXQgYSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAg
VmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdp
bigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+
KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90Pihm
bG9vcmYoYSkpKSk7CiB9CkBAIC0zOTU5LDcgKzM5NjYsNyBAQCB2b2lkIHRlc3RGbG9vckltbShm
bG9hdCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBWYWx1
ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBP
cmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlz
SWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMy
X3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGZsb29yZihhKSkpKTsKIH0KQEAgLTM5NzIs
NyArMzk3OSw3IEBAIHZvaWQgdGVzdEZsb29yTWVtKGZsb2F0IGEpCiAgICAgTWVtb3J5VmFsdWUq
IGxvYWRGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgRmxv
YXQsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGxvYWRGbG9hdCk7CiAgICAgVmFsdWUq
IHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3Jp
Z2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lk
ZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsICZhKSwgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KGZsb29yZihhKSkpKTsKIH0KQEAgLTM5ODYsNyArMzk5Myw3IEBAIHZvaWQgdGVzdEZs
b29yRmxvb3JBcmcoZmxvYXQgYSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAg
VmFsdWUqIGZpcnN0Rmxvb3IgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBP
cmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZhbHVlKiBzZWNvbmRGbG9vciA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBmaXJzdEZsb29yKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmRG
bG9vcik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHNlY29uZEZsb29yKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRS
dW48ZmxvYXQ+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGZsb29yZihhKSkpOwog
fQpAQCAtNDAwMCw3ICs0MDA3LDcgQEAgdm9pZCB0ZXN0Q2VpbEZsb29yQXJnKGZsb2F0IGEpCiAg
ICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNl
Q2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiBmaXJzdEZsb29yID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAg
ICBWYWx1ZSogd3JhcHBpbmdDZWlsID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDZWls
LCBPcmlnaW4oKSwgZmlyc3RGbG9vcik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgd3JhcHBpbmdDZWlsKTsKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgd3JhcHBpbmdDZWlsKTsK
IAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsIGJpdHdp
c2VfY2FzdDxpbnQzMl90PihhKSksIGZsb29yZihhKSkpOwogfQpAQCAtNDAxNiw3ICs0MDIzLDcg
QEAgdm9pZCB0ZXN0Rmxvb3JBcmdXaXRoVXNlbGVzc0RvdWJsZUNvbnZlcgogICAgIFZhbHVlKiBy
ZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgYXNE
b3VibGUpOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgVmFsdWUqIHJlc3Vs
dDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCks
IGZsb2F0UmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRl
bnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+
KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGZsb29yZihhKSkpKTsKIH0KQEAgLTQwMzQsNyAr
NDA0MSw3IEBAIHZvaWQgdGVzdEZsb29yQXJnV2l0aEVmZmVjdGZ1bERvdWJsZUNvbnYKICAgICBW
YWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0
LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwogICAgIFZhbHVlKiBkb3VibGVBZGRyZXNzID0gcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjEpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3Rv
cmUsIE9yaWdpbigpLCByZXN1bHQsIGRvdWJsZUFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
MzIpOwogCiAgICAgZG91YmxlIGVmZmVjdCA9IDA7CiAgICAgaW50MzJfdCByZXN1bHRWYWx1ZSA9
IGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCAm
ZWZmZWN0KTsKQEAgLTQwNDYsNyArNDA1Myw3IEBAIHZvaWQgdGVzdFNxcnRBcmcoZG91YmxlIGEp
CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTcXJ0LCBP
cmlnaW4oKSwKQEAgLTQwNjAsNyArNDA2Nyw3IEBAIHZvaWQgdGVzdFNxcnRJbW0oZG91YmxlIGEp
CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTcXJ0
LCBPcmlnaW4oKSwgYXJndW1lbnQpKTsKIApAQCAtNDA3Myw3ICs0MDgwLDcgQEAgdm9pZCB0ZXN0
U3FydE1lbShkb3VibGUgYSkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVl
KiBsb2FkRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBE
b3VibGUsIE9yaWdpbigpLCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3Fy
dCwgT3JpZ2luKCksIGxvYWREb3VibGUpKTsKIApAQCAtNDA4OSw3ICs0MDk2LDcgQEAgdm9pZCB0
ZXN0U3FydEFyZyhmbG9hdCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBW
YWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTcXJ0LCBPcmlnaW4o
KSwgYXJndW1lbnQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihw
cm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3Rh
dGljX2Nhc3Q8ZmxvYXQ+KHNxcnQoYSkpKSkpOwogfQpAQCAtNDEwMSw3ICs0MTA4LDcgQEAgdm9p
ZCB0ZXN0U3FydEltbShmbG9hdCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVu
ZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogcmVz
dWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTcXJ0LCBPcmlnaW4oKSwgYXJndW1l
bnQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
Qml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwog
CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8
ZmxvYXQ+KHNxcnQoYSkpKSkpOwogfQpAQCAtNDExNCw3ICs0MTIxLDcgQEAgdm9pZCB0ZXN0U3Fy
dE1lbShmbG9hdCBhKQogICAgIE1lbW9yeVZhbHVlKiBsb2FkRmxvYXQgPSByb290LT5hcHBlbmRO
ZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEZsb2F0LCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAg
ICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3FydCwgT3Jp
Z2luKCksIGxvYWRGbG9hdCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMy
X3Q+KHByb2MsICZhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0PGZsb2F0Pihz
cXJ0KGEpKSkpKTsKIH0KQEAgLTQxMzAsNyArNDEzNyw3IEBAIHZvaWQgdGVzdFNxcnRBcmdXaXRo
VXNlbGVzc0RvdWJsZUNvbnZlcnMKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBTcXJ0LCBPcmlnaW4oKSwgYXNEb3VibGUpOwogICAgIFZhbHVlKiBmbG9h
dFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3Jp
Z2luKCksIHJlc3VsdCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQz
Mik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50
MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMy
X3Q+KHN0YXRpY19jYXN0PGZsb2F0PihzcXJ0KGEpKSkpKTsKIH0KQEAgLTQxNDgsNyArNDE1NSw3
IEBAIHZvaWQgdGVzdFNxcnRBcmdXaXRoRWZmZWN0ZnVsRG91YmxlQ29udmUKICAgICBWYWx1ZSog
cmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmln
aW4oKSwgZmxvYXRSZXN1bHQpOwogICAgIFZhbHVlKiBkb3VibGVBZGRyZXNzID0gcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjEpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9y
aWdpbigpLCByZXN1bHQsIGRvdWJsZUFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwog
CiAgICAgZG91YmxlIGVmZmVjdCA9IDA7CiAgICAgaW50MzJfdCByZXN1bHRWYWx1ZSA9IGNvbXBp
bGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCAmZWZmZWN0
KTsKQEAgLTQxNzIsNyArNDE3OSw3IEBAIHZvaWQgdGVzdENvbXBhcmVUd29GbG9hdFRvRG91Ymxl
KGZsb2F0IGEKICAgICBWYWx1ZSogYXJnMkFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgYXJnMkZsb2F0KTsKICAgICBWYWx1ZSog
ZXF1YWwgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEVxdWFsLCBPcmlnaW4oKSwgYXJn
MUFzRG91YmxlLCBhcmcyQXNEb3VibGUpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZXF1YWwpOworICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBlcXVhbCk7CiAKICAgICBDSEVD
Syhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwg
Yml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSA9PSAoYSA9PSBiKSk7CiB9CkBAIC00MTkwLDcgKzQx
OTcsNyBAQCB2b2lkIHRlc3RDb21wYXJlT25lRmxvYXRUb0RvdWJsZShmbG9hdCBhCiAgICAgVmFs
dWUqIGFyZzJBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogZXF1YWwgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEVxdWFsLCBPcmlnaW4oKSwgYXJnMUFzRG91Ymxl
LCBhcmcyQXNEb3VibGUpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgZXF1YWwpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBlcXVhbCk7CiAKICAgICBDSEVDSyhjb21waWxl
QW5kUnVuPGludDY0X3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgYikgPT0gKGEg
PT0gYikpOwogfQpAQCAtNDIxNCwyMyArNDIyMSwyMyBAQCB2b2lkIHRlc3RDb21wYXJlRmxvYXRU
b0RvdWJsZVRocm91Z2hQaGkoCiAgICAgVmFsdWUqIGFyZzJBc0Zsb2F0ID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgYXJnMkFzRG91YmxlKTsK
ICAgICBWYWx1ZSogYXJnMkFzRlJvdW5kZWREb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBhcmcyQXNGbG9hdCk7CiAKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIGNvbmRpdGlvbiwK
ICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VD
YXNlKSk7CiAKICAgICBVcHNpbG9uVmFsdWUqIHRoZW5WYWx1ZSA9IHRoZW5DYXNlLT5hcHBlbmRO
ZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYXJnMUFzRG91YmxlKTsKLSAgICB0aGVu
Q2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1
ZW50ZWRCbG9jayh0YWlsKSk7CisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKIAogICAgIFZhbHVl
KiBlbHNlQ29uc3QgPSBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAwLik7CiAgICAgVXBzaWxvblZhbHVlKiBlbHNlVmFsdWUgPSBlbHNlQ2FzZS0+
YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGVsc2VDb25zdCk7Ci0gICAg
ZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBG
cmVxdWVudGVkQmxvY2sodGFpbCkpOworICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CiAKICAgICBW
YWx1ZSogZG91YmxlSW5wdXQgPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFBoaSwgRG91
YmxlLCBPcmlnaW4oKSk7CiAgICAgdGhlblZhbHVlLT5zZXRQaGkoZG91YmxlSW5wdXQpOwogICAg
IGVsc2VWYWx1ZS0+c2V0UGhpKGRvdWJsZUlucHV0KTsKICAgICBWYWx1ZSogZXF1YWwgPSB0YWls
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEVxdWFsLCBPcmlnaW4oKSwgZG91YmxlSW5wdXQsIGFy
ZzJBc0ZSb3VuZGVkRG91YmxlKTsKLSAgICB0YWlsLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBlcXVhbCk7CisgICAgdGFpbC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGVxdWFsKTsKIAogICAgIGF1dG8gY29kZSA9
IGNvbXBpbGUocHJvYyk7CiAgICAgaW50MzJfdCBpbnRlZ2VyQSA9IGJpdHdpc2VfY2FzdDxpbnQz
Ml90PihhKTsKQEAgLTQyNjEsNyArNDI2OCw3IEBAIHZvaWQgdGVzdERvdWJsZVRvRmxvYXRUaHJv
dWdoUGhpKGZsb2F0IHYKICAgICBWYWx1ZSogZmxvYXRWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1
ZSogYXJnQXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3Vi
bGUsIE9yaWdpbigpLCBmbG9hdFZhbHVlKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
QnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgY29uZGl0aW9uLAogICAgICAgICBGcmVxdWVudGVk
QmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKQEAgLTQyNjksMTcg
KzQyNzYsMTcgQEAgdm9pZCB0ZXN0RG91YmxlVG9GbG9hdFRocm91Z2hQaGkoZmxvYXQgdgogICAg
IFZhbHVlKiBwb3N0aXRpdmVDb25zdCA9IHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3REb3VibGVW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyLjVmKTsKICAgICBWYWx1ZSogdGhlbkFkZCA9IHRoZW5D
YXNlLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGFyZ0FzRG91YmxlLCBw
b3N0aXRpdmVDb25zdCk7CiAgICAgVXBzaWxvblZhbHVlKiB0aGVuVmFsdWUgPSB0aGVuQ2FzZS0+
YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHRoZW5BZGQpOwotICAgIHRo
ZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJl
cXVlbnRlZEJsb2NrKHRhaWwpKTsKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOwogCiAgICAgVmFs
dWUqIGVsc2VDb25zdCA9IGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIE1fUEkpOwogICAgIFVwc2lsb25WYWx1ZSogZWxzZVZhbHVlID0gZWxzZUNh
c2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCBlbHNlQ29uc3QpOwot
ICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4o
KSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOwogCiAg
ICAgVmFsdWUqIGRvdWJsZUlucHV0ID0gdGFpbC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBQaGks
IERvdWJsZSwgT3JpZ2luKCkpOwogICAgIHRoZW5WYWx1ZS0+c2V0UGhpKGRvdWJsZUlucHV0KTsK
ICAgICBlbHNlVmFsdWUtPnNldFBoaShkb3VibGVJbnB1dCk7CiAgICAgVmFsdWUqIGZsb2F0UmVz
dWx0ID0gdGFpbC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4o
KSwgZG91YmxlSW5wdXQpOwotICAgIHRhaWwtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKKyAgICB0YWlsLT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwogCiAgICAgYXV0
byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBDSEVDSyhpc0lkZW50aWNhbChpbnZva2U8Zmxv
YXQ+KCpjb2RlLCAxLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4odmFsdWUpKSwgdmFsdWUgKyA0Mi41
ZikpOwpAQCAtNDI5OSwxOCArNDMwNiwxOCBAQCB2b2lkIHRlc3REb3VibGVQcm9kdWNlclBoaVRv
RmxvYXRDb252ZXJzCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7CiAgICAgVmFsdWUqIGZsb2F0
VmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4o
KSwgYXJndW1lbnQzMik7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3Jp
Z2luKCksCiAgICAgICAgIGNvbmRpdGlvbiwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5D
YXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKICAgICBWYWx1ZSogYXNEb3VibGUg
PSB0aGVuQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4o
KSwgZmxvYXRWYWx1ZSk7CiAgICAgVXBzaWxvblZhbHVlKiB0aGVuVmFsdWUgPSB0aGVuQ2FzZS0+
YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFzRG91YmxlKTsKLSAgICB0
aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZy
ZXF1ZW50ZWRCbG9jayh0YWlsKSk7CisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKIAogICAgIFZh
bHVlKiBjb25zdERvdWJsZSA9IGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIDQyLjUpOwogICAgIFVwc2lsb25WYWx1ZSogZWxzZVZhbHVlID0gZWxz
ZUNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCBjb25zdERvdWJs
ZSk7Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9y
aWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOworICAgIGVsc2VDYXNlLT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7
CiAKICAgICBWYWx1ZSogZG91YmxlSW5wdXQgPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IFBoaSwgRG91YmxlLCBPcmlnaW4oKSk7CiAgICAgdGhlblZhbHVlLT5zZXRQaGkoZG91YmxlSW5w
dXQpOwpAQCAtNDMxOSw3ICs0MzI2LDcgQEAgdm9pZCB0ZXN0RG91YmxlUHJvZHVjZXJQaGlUb0Zs
b2F0Q29udmVycwogICAgIFZhbHVlKiBhcmdBc0RvdWJsZUFnYWluID0gdGFpbC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSk7CiAgICAg
VmFsdWUqIGZpbmFsQWRkID0gdGFpbC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdp
bigpLCBkb3VibGVJbnB1dCwgYXJnQXNEb3VibGVBZ2Fpbik7CiAgICAgVmFsdWUqIGZsb2F0UmVz
dWx0ID0gdGFpbC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4o
KSwgZmluYWxBZGQpOwotICAgIHRhaWwtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKKyAgICB0YWlsLT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwogCiAgICAgYXV0byBj
b2RlID0gY29tcGlsZShwcm9jKTsKICAgICBDSEVDSyhpc0lkZW50aWNhbChpbnZva2U8ZmxvYXQ+
KCpjb2RlLCAxLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4odmFsdWUpKSwgdmFsdWUgKyB2YWx1ZSkp
OwpAQCAtNDM0MSwxOCArNDM0OCwxOCBAQCB2b2lkIHRlc3REb3VibGVQcm9kdWNlclBoaVRvRmxv
YXRDb252ZXJzCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7CiAgICAgVmFsdWUqIGZsb2F0VmFs
dWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwg
YXJndW1lbnQzMik7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2lu
KCksCiAgICAgICAgIGNvbmRpdGlvbiwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNl
KSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKICAgICBWYWx1ZSogYXNEb3VibGUgPSB0
aGVuQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwg
ZmxvYXRWYWx1ZSk7CiAgICAgVXBzaWxvblZhbHVlKiB0aGVuVmFsdWUgPSB0aGVuQ2FzZS0+YXBw
ZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFzRG91YmxlKTsKLSAgICB0aGVu
Q2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1
ZW50ZWRCbG9jayh0YWlsKSk7CisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKIAogICAgIFZhbHVl
KiBjb25zdERvdWJsZSA9IGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIDQyLjUpOwogICAgIFVwc2lsb25WYWx1ZSogZWxzZVZhbHVlID0gZWxzZUNh
c2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCBjb25zdERvdWJsZSk7
Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdp
bigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOworICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CiAK
ICAgICBWYWx1ZSogZG91YmxlSW5wdXQgPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFBo
aSwgRG91YmxlLCBPcmlnaW4oKSk7CiAgICAgdGhlblZhbHVlLT5zZXRQaGkoZG91YmxlSW5wdXQp
OwpAQCAtNDM2OCw3ICs0Mzc1LDcgQEAgdm9pZCB0ZXN0RG91YmxlUHJvZHVjZXJQaGlUb0Zsb2F0
Q29udmVycwogICAgIC8vIFRoaXMgb25lICpjYW5ub3QqIGJlIGVsaW1pbmF0ZWQKICAgICBWYWx1
ZSogZG91YmxlQWRkID0gdGFpbC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigp
LCBkb3VibGVJbnB1dCwgZG91YmxlUmVzdWx0KTsKIAotICAgIHRhaWwtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGRvdWJsZUFkZCk7CisgICAgdGFpbC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGRvdWJsZUFkZCk7
CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIENIRUNLKGlzSWRlbnRpY2Fs
KGludm9rZTxkb3VibGU+KCpjb2RlLCAxLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4odmFsdWUpKSwg
KHZhbHVlICsgdmFsdWUpICsgc3RhdGljX2Nhc3Q8ZG91YmxlPih2YWx1ZSkpKTsKQEAgLTQzODgs
MTggKzQzOTUsMTggQEAgdm9pZCB0ZXN0RG91YmxlUHJvZHVjZXJQaGlXaXRoTm9uRmxvYXRDbwog
ICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMSkpOwogICAgIFZhbHVlKiBmbG9hdFZhbHVlID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIp
OwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAg
ICBjb25kaXRpb24sCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50
ZWRCbG9jayhlbHNlQ2FzZSkpOwogCiAgICAgVmFsdWUqIGFzRG91YmxlID0gdGhlbkNhc2UtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGZsb2F0VmFsdWUp
OwogICAgIFVwc2lsb25WYWx1ZSogdGhlblZhbHVlID0gdGhlbkNhc2UtPmFwcGVuZE5ldzxVcHNp
bG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhc0RvdWJsZSk7Ci0gICAgdGhlbkNhc2UtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2so
dGFpbCkpOworICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwg
T3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CiAKICAgICBWYWx1ZSogY29uc3REb3Vi
bGUgPSBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBjb25zdFZhbHVlKTsKICAgICBVcHNpbG9uVmFsdWUqIGVsc2VWYWx1ZSA9IGVsc2VDYXNlLT5h
cHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgY29uc3REb3VibGUpOwotICAg
IGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwg
RnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOwogCiAgICAg
VmFsdWUqIGRvdWJsZUlucHV0ID0gdGFpbC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBQaGksIERv
dWJsZSwgT3JpZ2luKCkpOwogICAgIHRoZW5WYWx1ZS0+c2V0UGhpKGRvdWJsZUlucHV0KTsKQEAg
LTQ0MDgsNyArNDQxNSw3IEBAIHZvaWQgdGVzdERvdWJsZVByb2R1Y2VyUGhpV2l0aE5vbkZsb2F0
Q28KICAgICBWYWx1ZSogYXJnQXNEb3VibGVBZ2FpbiA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGZsb2F0VmFsdWUpOwogICAgIFZhbHVlKiBm
aW5hbEFkZCA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgZG91
YmxlSW5wdXQsIGFyZ0FzRG91YmxlQWdhaW4pOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHRh
aWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIGZpbmFs
QWRkKTsKLSAgICB0YWlsLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBmbG9hdFJlc3VsdCk7CisgICAgdGFpbC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKIAogICAgIGF1dG8gY29kZSA9IGNv
bXBpbGUocHJvYyk7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoaW52b2tlPGZsb2F0PigqY29kZSwg
MSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHZhbHVlKSksIHZhbHVlICsgdmFsdWUpKTsKQEAgLTQ0
MjEsNyArNDQyOCw3IEBAIHZvaWQgdGVzdERvdWJsZUFyZ1RvSW50NjRCaXR3aXNlQ2FzdChkb3UK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1
bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
RlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQpKTsKQEAgLTQ0MzUsNyAr
NDQ0Miw3IEBAIHZvaWQgdGVzdERvdWJsZUltbVRvSW50NjRCaXR3aXNlQ2FzdChkb3UKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9
IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUp
OwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0d2lzZUNhc3Qs
IE9yaWdpbigpLCBhcmd1bWVudCkpOwpAQCAtNDQ1MCw3ICs0NDU3LDcgQEAgdm9pZCB0ZXN0VHdv
Qml0d2lzZUNhc3RPbkRvdWJsZShkb3VibGUgdgogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJn
dW1lbnRGUFIwKTsKICAgICBWYWx1ZSogZmlyc3QgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZhbHVlKiBzZWNvbmQg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmly
c3QpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHNlY29uZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHNlY29uZCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxl
QW5kUnVuPGRvdWJsZT4ocHJvYywgdmFsdWUpLCB2YWx1ZSkpOwogfQpAQCAtNDQ2Miw3ICs0NDY5
LDcgQEAgdm9pZCB0ZXN0Qml0d2lzZUNhc3RPbkRvdWJsZUluTWVtb3J5KGRvdQogICAgIFZhbHVl
KiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkRG91Ymxl
ID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBEb3VibGUsIE9yaWdp
bigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogY2FzdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBsb2FkRG91YmxlKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0KTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FzdCk7
CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsICZ2
YWx1ZSksIGJpdHdpc2VfY2FzdDxpbnQ2NF90Pih2YWx1ZSkpKTsKIH0KQEAgLTQ0NzksNyArNDQ4
Niw3IEBAIHZvaWQgdGVzdEJpdHdpc2VDYXN0T25Eb3VibGVJbk1lbW9yeUluZGUKICAgICBWYWx1
ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwg
YmFzZSwgc2NhbGVkT2Zmc2V0KTsKICAgICBNZW1vcnlWYWx1ZSogbG9hZERvdWJsZSA9IHJvb3Qt
PmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgRG91YmxlLCBPcmlnaW4oKSwgYWRk
cmVzcyk7CiAgICAgVmFsdWUqIGNhc3QgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJp
dHdpc2VDYXN0LCBPcmlnaW4oKSwgbG9hZERvdWJsZSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FzdCk7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNhc3QpOwogCiAgICAg
Q0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAmdmFsdWUsIDAp
LCBiaXR3aXNlX2Nhc3Q8aW50NjRfdD4odmFsdWUpKSk7CiB9CkBAIC00NDkwLDcgKzQ0OTcsNyBA
QCB2b2lkIHRlc3RJbnQ2NEJBcmdUb0RvdWJsZUJpdHdpc2VDYXN0KGluCiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXR3
aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50KSk7CkBAIC00NTA0LDcgKzQ1MTEsNyBAQCB2b2lk
IHRlc3RJbnQ2NEJJbW1Ub0RvdWJsZUJpdHdpc2VDYXN0KGluCiAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmRO
ZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpOwogCi0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVu
dCkpOwpAQCAtNDUxOSw3ICs0NTI2LDcgQEAgdm9pZCB0ZXN0VHdvQml0d2lzZUNhc3RPbkludDY0
KGludDY0X3QgdgogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBW
YWx1ZSogZmlyc3QgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBP
cmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZhbHVlKiBzZWNvbmQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmlyc3QpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZCk7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNl
Y29uZCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDY0X3Q+KHBy
b2MsIHZhbHVlKSwgdmFsdWUpKTsKIH0KQEAgLTQ1MzEsNyArNDUzOCw3IEBAIHZvaWQgdGVzdEJp
dHdpc2VDYXN0T25JbnQ2NEluTWVtb3J5KGludDYKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKTsKICAgICBNZW1vcnlWYWx1ZSogbG9hZERvdWJsZSA9IHJvb3QtPmFwcGVuZE5l
dzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50NjQsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAg
ICBWYWx1ZSogY2FzdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3Qs
IE9yaWdpbigpLCBsb2FkRG91YmxlKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FzdCk7CiAKICAgICBDSEVDSyhpc0lk
ZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgJnZhbHVlKSwgYml0d2lzZV9jYXN0
PGRvdWJsZT4odmFsdWUpKSk7CiB9CkBAIC00NTQ4LDcgKzQ1NTUsNyBAQCB2b2lkIHRlc3RCaXR3
aXNlQ2FzdE9uSW50NjRJbk1lbW9yeUluZGV4CiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGJhc2UsIHNjYWxlZE9mZnNldCk7
CiAgICAgTWVtb3J5VmFsdWUqIGxvYWREb3VibGUgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFs
dWU+KHByb2MsIExvYWQsIEludDY0LCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIGNh
c3QgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwg
bG9hZERvdWJsZSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgY2FzdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIGNhc3QpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29t
cGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsICZ2YWx1ZSwgMCksIGJpdHdpc2VfY2FzdDxkb3VibGU+
KHZhbHVlKSkpOwogfQpAQCAtNDU1OSw3ICs0NTY2LDcgQEAgdm9pZCB0ZXN0RmxvYXRJbW1Ub0lu
dDMyQml0d2lzZUNhc3QoZmxvYQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQpKTsKQEAgLTQ1NzQs
NyArNDU4MSw3IEBAIHZvaWQgdGVzdEJpdHdpc2VDYXN0T25GbG9hdEluTWVtb3J5KGZsb2EKICAg
ICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBNZW1vcnlWYWx1ZSogbG9h
ZEZsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBGbG9hdCwg
T3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBjYXN0ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGxvYWRGbG9hdCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FzdCk7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNh
c3QpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9j
LCAmdmFsdWUpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4odmFsdWUpKSk7CiB9CkBAIC00NTg1LDcg
KzQ1OTIsNyBAQCB2b2lkIHRlc3RJbnQzMkJBcmdUb0Zsb2F0Qml0d2lzZUNhc3QoaW50CiAgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQg
PSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBw
cm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50KSk7CkBAIC00NTk5LDcgKzQ2MDYs
NyBAQCB2b2lkIHRlc3RJbnQzMkJJbW1Ub0Zsb2F0Qml0d2lzZUNhc3QoaW50CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290
LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpOwogCi0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigp
LCBhcmd1bWVudCkpOwpAQCAtNDYxNCw3ICs0NjIxLDcgQEAgdm9pZCB0ZXN0VHdvQml0d2lzZUNh
c3RPbkludDMyKGludDMyX3QgdgogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIw
KTsKICAgICBWYWx1ZSogZmlyc3QgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdp
c2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZhbHVlKiBzZWNvbmQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmlyc3QpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNl
Y29uZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHNlY29uZCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGlu
dDMyX3Q+KHByb2MsIHZhbHVlKSwgdmFsdWUpKTsKIH0KQEAgLTQ2MjYsNyArNDYzMyw3IEBAIHZv
aWQgdGVzdEJpdHdpc2VDYXN0T25JbnQzMkluTWVtb3J5KGludDMKICAgICBWYWx1ZSogYWRkcmVz
cyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BS
SW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBNZW1vcnlWYWx1ZSogbG9hZEZsb2F0ID0gcm9vdC0+
YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2luKCksIGFkZHJl
c3MpOwogICAgIFZhbHVlKiBjYXN0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3
aXNlQ2FzdCwgT3JpZ2luKCksIGxvYWRGbG9hdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FzdCk7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNhc3QpOwogCiAgICAgQ0hF
Q0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYywgJnZhbHVlKSwgYml0d2lz
ZV9jYXN0PGZsb2F0Pih2YWx1ZSkpKTsKIH0KQEAgLTQ2MzcsNyArNDY0NCw3IEBAIHZvaWQgdGVz
dENvbnZlcnREb3VibGVUb0Zsb2F0QXJnKGRvdWJsZSAKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsK
ICAgICBWYWx1ZSogYXNGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91Ymxl
VG9GbG9hdCwgT3JpZ2luKCksIGFyZ3VtZW50KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0Zsb2F0KTsKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNGbG9hdCk7CiAKICAg
ICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jLCB2YWx1ZSksIHN0
YXRpY19jYXN0PGZsb2F0Pih2YWx1ZSkpKTsKIH0KQEAgLTQ2NDgsNyArNDY1NSw3IEBAIHZvaWQg
dGVzdENvbnZlcnREb3VibGVUb0Zsb2F0SW1tKGRvdWJsZSAKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5l
dzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpOwogICAgIFZhbHVlKiBh
c0Zsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmln
aW4oKSwgYXJndW1lbnQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIGFzRmxvYXQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0Zsb2F0KTsKIAogICAgIENIRUNLKGlzSWRl
bnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MpLCBzdGF0aWNfY2FzdDxmbG9hdD4odmFs
dWUpKSk7CiB9CkBAIC00NjYwLDcgKzQ2NjcsNyBAQCB2b2lkIHRlc3RDb252ZXJ0RG91YmxlVG9G
bG9hdE1lbShkb3VibGUgCiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAg
ICAgTWVtb3J5VmFsdWUqIGxvYWRlZERvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1
ZT4ocHJvYywgTG9hZCwgRG91YmxlLCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIGFz
RmxvYXQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdp
bigpLCBsb2FkZWREb3VibGUpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIGFzRmxvYXQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0Zsb2F0KTsKIAogICAgIENIRUNLKGlz
SWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsICZ2YWx1ZSksIHN0YXRpY19jYXN0
PGZsb2F0Pih2YWx1ZSkpKTsKIH0KQEAgLTQ2NzMsNyArNDY4MCw3IEBAIHZvaWQgdGVzdENvbnZl
cnRGbG9hdFRvRG91YmxlQXJnKGZsb2F0IHYKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAg
ICBWYWx1ZSogZmxvYXRWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lz
ZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1ZSogYXNEb3VibGUgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBmbG9hdFZh
bHVlKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBhc0RvdWJsZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIGFzRG91YmxlKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNv
bXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4odmFsdWUpKSwg
c3RhdGljX2Nhc3Q8ZG91YmxlPih2YWx1ZSkpKTsKIH0KQEAgLTQ2ODQsNyArNDY5MSw3IEBAIHZv
aWQgdGVzdENvbnZlcnRGbG9hdFRvRG91YmxlSW1tKGZsb2F0IHYKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVu
ZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSk7CiAgICAgVmFsdWUq
IGFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBP
cmlnaW4oKSwgYXJndW1lbnQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIGFzRG91YmxlKTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNEb3VibGUpOwogCiAgICAgQ0hFQ0so
aXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MpLCBzdGF0aWNfY2FzdDxkb3Vi
bGU+KHZhbHVlKSkpOwogfQpAQCAtNDY5Niw3ICs0NzAzLDcgQEAgdm9pZCB0ZXN0Q29udmVydEZs
b2F0VG9Eb3VibGVNZW0oZmxvYXQgdgogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkZWRGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxNZW1v
cnlWYWx1ZT4ocHJvYywgTG9hZCwgRmxvYXQsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1
ZSogYXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUs
IE9yaWdpbigpLCBsb2FkZWRGbG9hdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNEb3VibGUpOworICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0RvdWJsZSk7CiAKICAgICBD
SEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgJnZhbHVlKSwgc3Rh
dGljX2Nhc3Q8ZG91YmxlPih2YWx1ZSkpKTsKIH0KQEAgLTQ3MDksNyArNDcxNiw3IEBAIHZvaWQg
dGVzdENvbnZlcnREb3VibGVUb0Zsb2F0VG9Eb3VibGVUb0YKICAgICBWYWx1ZSogYXNGbG9hdCA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIGFy
Z3VtZW50KTsKICAgICBWYWx1ZSogYXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBhc0Zsb2F0KTsKICAgICBWYWx1ZSogYXNGbG9h
dEFnYWluID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmln
aW4oKSwgYXNEb3VibGUpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIGFzRmxvYXRBZ2Fpbik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFzRmxvYXRBZ2Fpbik7CiAKICAgICBD
SEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jLCB2YWx1ZSksIHN0YXRp
Y19jYXN0PGZsb2F0Pih2YWx1ZSkpKTsKIH0KQEAgLTQ3MjUsNyArNDczMiw3IEBAIHZvaWQgdGVz
dExvYWRGbG9hdENvbnZlcnREb3VibGVDb252ZXJ0RmwKICAgICBWYWx1ZSogYXNGbG9hdEFnYWlu
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwg
YXNEb3VibGUpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUs
IE9yaWdpbigpLCBhc0Zsb2F0QWdhaW4sIGRzdCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgZmxvYXQgaW5wdXQgPSB2YWx1ZTsKICAgICBm
bG9hdCBvdXRwdXQgPSAwLjsKQEAgLTQ3NDAsNyArNDc0Nyw3IEBAIHZvaWQgdGVzdEZyb3VuZEFy
Zyhkb3VibGUgdmFsdWUpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwog
ICAgIFZhbHVlKiBhc0Zsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVU
b0Zsb2F0LCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZhbHVlKiBhc0RvdWJsZSA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGFzRmxvYXQp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIGFzRG91YmxlKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgYXNEb3VibGUpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGls
ZUFuZFJ1bjxkb3VibGU+KHByb2MsIHZhbHVlKSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihzdGF0aWNf
Y2FzdDxmbG9hdD4odmFsdWUpKSkpOwogfQpAQCAtNDc1Myw3ICs0NzYwLDcgQEAgdm9pZCB0ZXN0
RnJvdW5kTWVtKGRvdWJsZSB2YWx1ZSkKICAgICBNZW1vcnlWYWx1ZSogbG9hZGVkRG91YmxlID0g
cm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBEb3VibGUsIE9yaWdpbigp
LCBhZGRyZXNzKTsKICAgICBWYWx1ZSogYXNGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIGxvYWRlZERvdWJsZSk7CiAgICAgVmFsdWUq
IGFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBP
cmlnaW4oKSwgYXNGbG9hdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgYXNEb3VibGUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0RvdWJsZSk7CiAKICAgICBDSEVDSyhp
c0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgJnZhbHVlKSwgc3RhdGljX2Nh
c3Q8ZG91YmxlPihzdGF0aWNfY2FzdDxmbG9hdD4odmFsdWUpKSkpOwogfQpAQCAtNDc2NCw3ICs0
NzcxLDcgQEAgdm9pZCB0ZXN0SVRvRDY0QXJnKCkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBzcmMgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFs
dWUqIHNyY0FzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmln
aW4oKSwgc3JjKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBzcmNBc0RvdWJsZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRG91YmxlKTsKIAogICAgIGF1dG8gY29k
ZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgZm9yIChhdXRvIHRlc3RWYWx1ZSA6IGludDY0T3BlcmFu
ZHMoKSkKQEAgLTQ3NzcsNyArNDc4NCw3IEBAIHZvaWQgdGVzdElUb0Y2NEFyZygpCiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogc3JjID0gcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjApOwogICAgIFZhbHVlKiBzcmNBc0Zsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBJVG9GLCBPcmlnaW4oKSwgc3JjKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0KTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdCk7
CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIGZvciAoYXV0byB0ZXN0VmFs
dWUgOiBpbnQ2NE9wZXJhbmRzKCkpCkBAIC00NzkxLDcgKzQ3OTgsNyBAQCB2b2lkIHRlc3RJVG9E
MzJBcmcoKQogICAgIFZhbHVlKiBzcmMgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRy
dW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSogc3Jj
QXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBz
cmMpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHNyY0FzRG91YmxlKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNEb3VibGUpOwogCiAgICAgYXV0byBjb2RlID0gY29t
cGlsZShwcm9jKTsKICAgICBmb3IgKGF1dG8gdGVzdFZhbHVlIDogaW50MzJPcGVyYW5kcygpKQpA
QCAtNDgwNSw3ICs0ODEyLDcgQEAgdm9pZCB0ZXN0SVRvRjMyQXJnKCkKICAgICBWYWx1ZSogc3Jj
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIwKSk7CiAgICAgVmFsdWUqIHNyY0FzRmxvYXQgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIElUb0YsIE9yaWdpbigpLCBzcmMpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXQpOworICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNB
c0Zsb2F0KTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgZm9yIChhdXRv
IHRlc3RWYWx1ZSA6IGludDMyT3BlcmFuZHMoKSkKQEAgLTQ4MTksNyArNDgyNiw3IEBAIHZvaWQg
dGVzdElUb0Q2NE1lbSgpCiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAg
ICAgTWVtb3J5VmFsdWUqIGxvYWRlZFNyYyA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4o
cHJvYywgTG9hZCwgSW50NjQsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogc3JjQXNE
b3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBsb2Fk
ZWRTcmMpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHNyY0FzRG91YmxlKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNEb3VibGUpOwogCiAgICAgYXV0byBjb2RlID0g
Y29tcGlsZShwcm9jKTsKICAgICBpbnQ2NF90IGluTWVtb3J5VmFsdWU7CkBAIC00ODM3LDcgKzQ4
NDQsNyBAQCB2b2lkIHRlc3RJVG9GNjRNZW0oKQogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkZWRTcmMgPSByb290LT5hcHBlbmROZXc8
TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDY0LCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAg
VmFsdWUqIHNyY0FzRmxvYXQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0YsIE9y
aWdpbigpLCBsb2FkZWRTcmMpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXQpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0KTsKIAogICAgIGF1
dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgaW50NjRfdCBpbk1lbW9yeVZhbHVlOwpAQCAt
NDg1NSw3ICs0ODYyLDcgQEAgdm9pZCB0ZXN0SVRvRDMyTWVtKCkKICAgICBWYWx1ZSogYWRkcmVz
cyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BS
SW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBNZW1vcnlWYWx1ZSogbG9hZGVkU3JjID0gcm9vdC0+
YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2luKCksIGFkZHJl
c3MpOwogICAgIFZhbHVlKiBzcmNBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgSVRvRCwgT3JpZ2luKCksIGxvYWRlZFNyYyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNEb3VibGUpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0RvdWJs
ZSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIGludDMyX3QgaW5NZW1v
cnlWYWx1ZTsKQEAgLTQ4NzMsNyArNDg4MCw3IEBAIHZvaWQgdGVzdElUb0YzMk1lbSgpCiAgICAg
VmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWRl
ZFNyYyA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50MzIsIE9y
aWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogc3JjQXNGbG9hdCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgSVRvRiwgT3JpZ2luKCksIGxvYWRlZFNyYyk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdCk7
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHNyY0FzRmxvYXQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBpbnQz
Ml90IGluTWVtb3J5VmFsdWU7CkBAIC00ODkwLDcgKzQ4OTcsNyBAQCB2b2lkIHRlc3RJVG9ENjRJ
bW0oaW50NjRfdCB2YWx1ZSkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwogICAgIFZhbHVlKiBzcmMgPSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgdmFsdWUpOwogICAgIFZhbHVlKiBzcmNBc0Zsb2F0aW5nUG9pbnQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBzcmMpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXRp
bmdQb2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHNyY0FzRmxvYXRpbmdQb2ludCk7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29t
cGlsZUFuZFJ1bjxkb3VibGU+KHByb2MpLCBzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVlKSkpOwog
fQogCkBAIC00OTAwLDcgKzQ5MDcsNyBAQCB2b2lkIHRlc3RJVG9GNjRJbW0oaW50NjRfdCB2YWx1
ZSkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBz
cmMgPSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUp
OwogICAgIFZhbHVlKiBzcmNBc0Zsb2F0aW5nUG9pbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIElUb0YsIE9yaWdpbigpLCBzcmMpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXRpbmdQb2ludCk7CisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0Fz
RmxvYXRpbmdQb2ludCk7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9h
dD4ocHJvYyksIHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZSkpKTsKIH0KIApAQCAtNDkxMCw3ICs0
OTE3LDcgQEAgdm9pZCB0ZXN0SVRvRDMySW1tKGludDMyX3QgdmFsdWUpCiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogc3JjID0gcm9vdC0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKTsKICAgICBWYWx1ZSogc3Jj
QXNGbG9hdGluZ1BvaW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmln
aW4oKSwgc3JjKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0aW5nUG9pbnQpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0aW5nUG9pbnQpOwog
ICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jKSwgc3RhdGlj
X2Nhc3Q8ZG91YmxlPih2YWx1ZSkpKTsKIH0KIApAQCAtNDkyMCw3ICs0OTI3LDcgQEAgdm9pZCB0
ZXN0SVRvRjMySW1tKGludDMyX3QgdmFsdWUpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKICAgICBWYWx1ZSogc3JjID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKTsKICAgICBWYWx1ZSogc3JjQXNGbG9hdGluZ1BvaW50
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9GLCBPcmlnaW4oKSwgc3JjKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBz
cmNBc0Zsb2F0aW5nUG9pbnQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0aW5nUG9pbnQpOwogICAgIENIRUNLKGlzSWRl
bnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MpLCBzdGF0aWNfY2FzdDxmbG9hdD4odmFs
dWUpKSk7CiB9CiAKQEAgLTQ5MzEsNyArNDkzOCw3IEBAIHZvaWQgdGVzdElUb0RSZWR1Y2VkVG9J
VG9GNjRBcmcoKQogICAgIFZhbHVlKiBzcmMgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUq
IHNyY0FzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4o
KSwgc3JjKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBzcmNBc0RvdWJsZSk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZmxvYXRSZXN1
bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBmbG9hdFJlc3VsdCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAg
IGZvciAoYXV0byB0ZXN0VmFsdWUgOiBpbnQ2NE9wZXJhbmRzKCkpCkBAIC00OTQ2LDcgKzQ5NTMs
NyBAQCB2b2lkIHRlc3RJVG9EUmVkdWNlZFRvSVRvRjMyQXJnKCkKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjApKTsKICAgICBWYWx1ZSogc3JjQXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIElUb0QsIE9yaWdpbigpLCBzcmMpOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIHNyY0Fz
RG91YmxlKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKIAogICAgIGF1dG8gY29kZSA9
IGNvbXBpbGUocHJvYyk7CiAgICAgZm9yIChhdXRvIHRlc3RWYWx1ZSA6IGludDMyT3BlcmFuZHMo
KSkKQEAgLTQ5NjQsNyArNDk3MSw3IEBAIHZvaWQgdGVzdFN0b3JlMzIoaW50IHZhbHVlKQogICAg
ICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAmc2xvdCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAog
ICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludD4ocHJvYywgdmFsdWUpKTsKQEAgLTQ5ODAsNyAr
NDk4Nyw3IEBAIHZvaWQgdGVzdFN0b3JlQ29uc3RhbnQoaW50IHZhbHVlKQogICAgICAgICBwcm9j
LCBTdG9yZSwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCB2YWx1ZSksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0
clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJnNsb3QpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAwKSk7CiAKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MpKTsK
QEAgLTUwMDAsNyArNTAwNyw3IEBAIHZvaWQgdGVzdFN0b3JlQ29uc3RhbnRQdHIoaW50cHRyX3Qg
dmFsdWUKICAgICAgICAgcHJvYywgU3RvcmUsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAmc2xvdCkpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIENIRUNLKCFjb21waWxl
QW5kUnVuPGludD4ocHJvYykpOwpAQCAtNTAxOCw3ICs1MDI1LDcgQEAgdm9pZCB0ZXN0U3RvcmU4
QXJnKCkKICAgICAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CiAKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZTgsIE9yaWdpbigpLCB2
YWx1ZSwgYWRkcmVzcyk7Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKIAogICAgICAgICBpbnQ4
X3Qgc3RvcmFnZSA9IDA7CiAgICAgICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJv
YywgNDIsICZzdG9yYWdlKSA9PSA0Mik7CkBAIC01MDM5LDcgKzUwNDYsNyBAQCB2b2lkIHRlc3RT
dG9yZThBcmcoKQogICAgICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYmFzZURpc3BsYWNlbWVudCwgb2Zmc2V0KTsKIAogICAg
ICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlOCwgT3JpZ2luKCks
IHZhbHVlLCBhZGRyZXNzKTsKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOworICAgICAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOwogCiAgICAgICAgIGlu
dDhfdCBzdG9yYWdlID0gMDsKICAgICAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihw
cm9jLCA0MiwgJnN0b3JhZ2UsIDEpID09IDQyKTsKQEAgLTUwNTcsNyArNTA2NCw3IEBAIHZvaWQg
dGVzdFN0b3JlOEltbSgpCiAgICAgICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjAp
OwogCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmU4LCBP
cmlnaW4oKSwgdmFsdWUsIGFkZHJlc3MpOwotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CisgICAgICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CiAKICAg
ICAgICAgaW50OF90IHN0b3JhZ2UgPSAwOwogICAgICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGlu
dDY0X3Q+KHByb2MsICZzdG9yYWdlKSA9PSA0Mik7CkBAIC01MDc3LDcgKzUwODQsNyBAQCB2b2lk
IHRlc3RTdG9yZThJbW0oKQogICAgICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYmFzZURpc3BsYWNlbWVudCwgb2Zmc2V0KTsK
IAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlOCwgT3Jp
Z2luKCksIHZhbHVlLCBhZGRyZXNzKTsKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOworICAgICAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOwogCiAgICAg
ICAgIGludDhfdCBzdG9yYWdlID0gMDsKICAgICAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2
NF90Pihwcm9jLCAmc3RvcmFnZSwgMSkgPT0gNDIpOwpAQCAtNTEyOSw3ICs1MTM2LDcgQEAgdm9p
ZCB0ZXN0U3RvcmVQYXJ0aWFsOEJpdFJlZ2lzdGVyT25YODYoKQogICAgIC8vIGlmIHdlIHVzZSBY
ODYgcGFydGlhbCByZWdpc3RlcnMuCiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihw
cm9jLCBTdG9yZTgsIE9yaWdpbigpLCBwYXRjaHBvaW50LCB3aGVyZVRvU3RvcmUpOwogCi0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmV0
dXJuVmFsdWUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXR1cm5WYWx1ZSk7CiAKICAgICBpbnQ4X3Qgc3RvcmFnZSA9IDB4ZmY7CiAg
ICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAweDEyMzQ1Njc4YWJjZGVmMTIs
ICZzdG9yYWdlKSA9PSAweDEyMzQ1Njc4YWJjZGVmMTIpOwpAQCAtNTE0Nyw3ICs1MTU0LDcgQEAg
dm9pZCB0ZXN0U3RvcmUxNkFyZygpCiAgICAgICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjEpOwogCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3Rv
cmUxNiwgT3JpZ2luKCksIHZhbHVlLCBhZGRyZXNzKTsKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOworICAgICAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUp
OwogCiAgICAgICAgIGludDE2X3Qgc3RvcmFnZSA9IC0xOwogICAgICAgICBDSEVDSyhjb21waWxl
QW5kUnVuPGludDY0X3Q+KHByb2MsIDQyLCAmc3RvcmFnZSkgPT0gNDIpOwpAQCAtNTE2OCw3ICs1
MTc1LDcgQEAgdm9pZCB0ZXN0U3RvcmUxNkFyZygpCiAgICAgICAgIFZhbHVlKiBhZGRyZXNzID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBiYXNlRGlzcGxhY2Vt
ZW50LCBvZmZzZXQpOwogCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJv
YywgU3RvcmUxNiwgT3JpZ2luKCksIHZhbHVlLCBhZGRyZXNzKTsKLSAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOworICAg
ICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
dmFsdWUpOwogCiAgICAgICAgIGludDE2X3Qgc3RvcmFnZSA9IC0xOwogICAgICAgICBDSEVDSyhj
b21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIDQyLCAmc3RvcmFnZSwgMSkgPT0gNDIpOwpAQCAt
NTE4Niw3ICs1MTkzLDcgQEAgdm9pZCB0ZXN0U3RvcmUxNkltbSgpCiAgICAgICAgIFZhbHVlKiBh
ZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1v
cnlWYWx1ZT4ocHJvYywgU3RvcmUxNiwgT3JpZ2luKCksIHZhbHVlLCBhZGRyZXNzKTsKLSAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
dmFsdWUpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgdmFsdWUpOwogCiAgICAgICAgIGludDE2X3Qgc3RvcmFnZSA9IC0xOwogICAg
ICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsICZzdG9yYWdlKSA9PSA0Mik7
CkBAIC01MjA2LDcgKzUyMTMsNyBAQCB2b2lkIHRlc3RTdG9yZTE2SW1tKCkKICAgICAgICAgVmFs
dWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCks
IGJhc2VEaXNwbGFjZW1lbnQsIG9mZnNldCk7CiAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1l
bW9yeVZhbHVlPihwcm9jLCBTdG9yZTE2LCBPcmlnaW4oKSwgdmFsdWUsIGFkZHJlc3MpOwotICAg
ICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCB2YWx1ZSk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCB2YWx1ZSk7CiAKICAgICAgICAgaW50MTZfdCBzdG9yYWdlID0gLTE7CiAg
ICAgICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgJnN0b3JhZ2UsIDEpID09
IDQyKTsKQEAgLTUyMTgsNyArNTIyNSw3IEBAIHZvaWQgdGVzdFRydW5jKGludDY0X3QgdmFsdWUp
CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBUcnVuYywg
T3JpZ2luKCksCkBAIC01MjMxLDcgKzUyMzgsNyBAQCB2b2lkIHRlc3RBZGQxKGludCB2YWx1ZSkK
IHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEFkZCwgT3Jp
Z2luKCksCkBAIC01MjQ3LDcgKzUyNTQsNyBAQCB2b2lkIHRlc3RBZGQxUHRyKGludHB0cl90IHZh
bHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRk
LCBPcmlnaW4oKSwKQEAgLTUyNjEsNyArNTI2OCw3IEBAIHZvaWQgdGVzdE5lZzMyKGludDMyX3Qg
dmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBT
dWIsIE9yaWdpbigpLApAQCAtNTI3Nyw3ICs1Mjg0LDcgQEAgdm9pZCB0ZXN0TmVnUHRyKGludHB0
cl90IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgU3ViLCBPcmlnaW4oKSwKQEAgLTUzMDIsNyArNTMwOSw3IEBAIHZvaWQgdGVzdFN0b3JlQWRk
TG9hZDMyKGludCBhbW91bnQpCiAgICAgICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigp
LAogICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSkpLAogICAgICAgICBzbG90UHRyKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTUz
MjMsNyArNTMzMCw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9hZEltbTMyKGludCBhbW91bnQpCiAg
ICAgICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDMy
LCBPcmlnaW4oKSwgc2xvdFB0ciksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYW1vdW50KSksCiAgICAgICAgIHNsb3RQdHIpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNTM0Niw3
ICs1MzUzLDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkOChpbnQgYW1vdW50LCBCMzo6TwogICAg
ICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgICAgICByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMCkpKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01MzY3LDcgKzUzNzQsNyBAQCB2b2lkIHRl
c3RTdG9yZUFkZExvYWRJbW04KGludCBhbW91bnQsIEIzCiAgICAgICAgICAgICByb290LT5hcHBl
bmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIGxvYWRPcGNvZGUsIE9yaWdpbigpLCBzbG90UHRyKSwK
ICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBhbW91bnQpKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01MzkwLDcgKzUzOTcsNyBAQCB2b2lkIHRlc3RT
dG9yZUFkZExvYWQxNihpbnQgYW1vdW50LCBCMzo6CiAgICAgICAgICAgICAgICAgcHJvYywgVHJ1
bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSkpLAogICAgICAg
ICBzbG90UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAw
KSk7CiAKQEAgLTU0MTEsNyArNTQxOCw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9hZEltbTE2KGlu
dCBhbW91bnQsIEIKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJv
YywgbG9hZE9wY29kZSwgT3JpZ2luKCksIHNsb3RQdHIpLAogICAgICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFtb3VudCkpLAogICAgICAgICBz
bG90UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7
CiAKQEAgLTU0MzIsNyArNTQzOSw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9hZDY0KGludCBhbW91
bnQpCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQs
IEludDY0LCBPcmlnaW4oKSwgc2xvdFB0ciksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkp
LAogICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCAwKSk7CiAKQEAgLTU0NTMsNyArNTQ2MCw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9h
ZEltbTY0KGludDY0X3QgYW1vdW4KICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlW
YWx1ZT4ocHJvYywgTG9hZCwgSW50NjQsIE9yaWdpbigpLCBzbG90UHRyKSwKICAgICAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhbW91bnQpKSwK
ICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgMCkpOwogCkBAIC01NDg1LDcgKzU0OTIsNyBAQCB2b2lkIHRlc3RTdG9yZUFkZExvYWQz
MkluZGV4KGludCBhbW91bnQpCiAgICAgICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigp
LAogICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSkpLAogICAgICAgICBzbG90UHRyKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTU1
MTUsNyArNTUyMiw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9hZEltbTMySW5kZXgoaW50IGFtb3UK
ICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50
MzIsIE9yaWdpbigpLCBzbG90UHRyKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhbW91bnQpKSwKICAgICAgICAgc2xvdFB0cik7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01NTQ3
LDcgKzU1NTQsNyBAQCB2b2lkIHRlc3RTdG9yZUFkZExvYWQ4SW5kZXgoaW50IGFtb3VudCwgCiAg
ICAgICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKSkpLAogICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMy
VmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTU1NzcsNyArNTU4NCw3IEBAIHZvaWQg
dGVzdFN0b3JlQWRkTG9hZEltbThJbmRleChpbnQgYW1vdW4KICAgICAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgbG9hZE9wY29kZSwgT3JpZ2luKCksIHNsb3RQdHIp
LAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIGFtb3VudCkpLAogICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTU2MDksNyArNTYxNiw3IEBAIHZvaWQgdGVz
dFN0b3JlQWRkTG9hZDE2SW5kZXgoaW50IGFtb3VudCwKICAgICAgICAgICAgICAgICBwcm9jLCBU
cnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50
UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSksCiAgICAg
ICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IDApKTsKIApAQCAtNTYzOSw3ICs1NjQ2LDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkSW1tMTZJ
bmRleChpbnQgYW1vdQogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihw
cm9jLCBsb2FkT3Bjb2RlLCBPcmlnaW4oKSwgc2xvdFB0ciksCiAgICAgICAgICAgICByb290LT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYW1vdW50KSksCiAgICAgICAg
IHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDAp
KTsKIApAQCAtNTY2OSw3ICs1Njc2LDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkNjRJbmRleChp
bnQgYW1vdW50KQogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9j
LCBMb2FkLCBJbnQ2NCwgT3JpZ2luKCksIHNsb3RQdHIpLAogICAgICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjApKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01Njk5LDcgKzU3MDYsNyBAQCB2b2lkIHRlc3RTdG9y
ZUFkZExvYWRJbW02NEluZGV4KGludDY0X3QgCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8
TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDY0LCBPcmlnaW4oKSwgc2xvdFB0ciksCiAgICAg
ICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYW1v
dW50KSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIDApKTsKIApAQCAtNTcyMyw3ICs1NzMwLDcgQEAgdm9pZCB0ZXN0U3RvcmVT
dWJMb2FkKGludCBhbW91bnQpCiAgICAgICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigp
LAogICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSkpLAogICAgICAgICBzbG90UHRyKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTU3
NTAsNyArNTc1Nyw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9hZEludGVyZmVyZW5jZShpbnQgYW0K
ICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCiAgICAgICAgICAgICBsb2FkLCByb290
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYW1vdW50KSksCiAgICAg
ICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IDApKTsKIApAQCAtNTc3NCw3ICs1NzgxLDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRBbmRMb2FkKGlu
dCBhbW91bnQsIGludAogICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBhbW91bnQpKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBtYXNrKSksCiAgICAgICAgIHNsb3RQdHIp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAt
NTc5OSw3ICs1ODA2LDcgQEAgdm9pZCB0ZXN0U3RvcmVOZWdMb2FkMzIoaW50MzJfdCB2YWx1ZSkK
ICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50
MzIsIE9yaWdpbigpLCBzbG90UHRyKSksCiAgICAgICAgIHNsb3RQdHIpOwogICAgIAotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIENIRUNLKCFjb21waWxlQW5k
UnVuPGludDMyX3Q+KHByb2MpKTsKQEAgLTU4MjMsNyArNTgzMCw3IEBAIHZvaWQgdGVzdFN0b3Jl
TmVnTG9hZFB0cihpbnRwdHJfdCB2YWx1ZSkKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxN
ZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCksIHNsb3RQdHIp
KSwKICAgICAgICAgc2xvdFB0cik7CiAgICAgCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgMCkpOwogCiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYykpOwpA
QCAtNTgzNCw3ICs1ODQxLDcgQEAgdm9pZCB0ZXN0QWRkMVVuY29tbXV0ZWQoaW50IHZhbHVlKQog
ewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmln
aW4oKSwKQEAgLTU4NTIsNyArNTg1OSw3IEBAIHZvaWQgdGVzdExvYWRPZmZzZXQoKQogICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgaW50IGFycmF5W10gPSB7IDEs
IDIgfTsKICAgICBDb25zdFB0clZhbHVlKiBhcnJheVB0ciA9IHJvb3QtPmFwcGVuZE5ldzxDb25z
dFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYXJyYXkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCkBAIC01ODY4LDcgKzU4NzUsNyBAQCB2
b2lkIHRlc3RMb2FkT2Zmc2V0Tm90Q29uc3RhbnQoKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7CiAgICAgaW50IGFycmF5W10gPSB7IDEsIDIgfTsKICAgICBWYWx1ZSog
YXJyYXlQdHIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKQEAgLTU4ODQsNyArNTg5MSw3IEBAIHZvaWQgdGVz
dExvYWRPZmZzZXRVc2luZ0FkZCgpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKICAgICBpbnQgYXJyYXlbXSA9IHsgMSwgMiB9OwogICAgIENvbnN0UHRyVmFsdWUqIGFy
cmF5UHRyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBh
cnJheSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmln
aW4oKSwKQEAgLTU5MjUsNyArNTkzMiw3IEBAIHZvaWQgdGVzdExvYWRPZmZzZXRVc2luZ0FkZElu
dGVyZmVyZW5jZSgKICAgICAgICAgcHJvYywgU3RvcmUsIE9yaWdpbigpLCB0aGVOdW1iZXJPZlRo
ZUJlYXN0LCBvdGhlckFycmF5UHRyLCAwKTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFs
dWU+KAogICAgICAgICBwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHRoZU51bWJlck9mVGhlQmVhc3Qs
IG90aGVyQXJyYXlQdHIsIHNpemVvZihpbnQpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLCBsZWZ0LCByaWdodCkpOwpAQCAtNTk0MSw3ICs1
OTQ4LDcgQEAgdm9pZCB0ZXN0TG9hZE9mZnNldFVzaW5nQWRkTm90Q29uc3RhbnQoKQogICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgaW50IGFycmF5W10gPSB7IDEs
IDIgfTsKICAgICBWYWx1ZSogYXJyYXlQdHIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKQEAgLTU5NzcsNyAr
NTk4NCw3IEBAIHZvaWQgdGVzdExvYWRBZGRyU2hpZnQodW5zaWduZWQgc2hpZnQpCiAKICAgICAq
c2xvdCA9IDg2NzUzMDk7CiAgICAgCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAg
ICAgICAgcHJvYywgTG9hZCwgSW50MzIsIE9yaWdpbigpLApAQCAtNTk5Myw3ICs2MDAwLDcgQEAg
dm9pZCB0ZXN0RnJhbWVQb2ludGVyKCkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBGcmFtZVBvaW50ZXIsIE9yaWdpbigpKSk7CiAKQEAgLTYwMTYsNyArNjAyMyw3IEBAIHZvaWQg
dGVzdE92ZXJyaWRlRnJhbWVQb2ludGVyKCkKICAgICAgICAgVmFsdWUqIGZwID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBGcmFtZVBvaW50ZXIsIE9yaWdpbigpKTsKICAgICAgICAgVmFs
dWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwg
ZnAsIG9mZnNldCk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgICAgIENIRUNL
KGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgMSkpOwogICAgIH0KICAgICB7CkBAIC02MDMy
LDcgKzYwMzksNyBAQCB2b2lkIHRlc3RPdmVycmlkZUZyYW1lUG9pbnRlcigpCiAgICAgICAgIFZh
bHVlKiBvZmZzZXRBcmcgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2lu
KCksIG9mZnNldCwgYXJnKTsKICAgICAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgb2Zmc2V0QXJnLCBvZmZzZXRGUCk7CiAKLSAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0KTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50
NjRfdD4ocHJvYywgMSwgMikpOwogICAgIH0KIH0KQEAgLTYwNDEsNyArNjA0OCw3IEBAIHZvaWQg
dGVzdFN0YWNrU2xvdCgpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxTbG90QmFzZVZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgcHJvYy5hZGRTdGFja1Nsb3QoMSkpKTsKIApAQCAtNjA1NCw3ICs2MDYxLDcg
QEAgdm9pZCB0ZXN0TG9hZEZyb21GcmFtZVBvaW50ZXIoKQogewogICAgIFByb2NlZHVyZSBwcm9j
OwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3Jp
Z2luKCksCkBAIC02MDgxLDcgKzYwODgsNyBAQCB2b2lkIHRlc3RTdG9yZUxvYWRTdGFja1Nsb3Qo
aW50IHZhbHVlKQogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAgc3RhY2sp
OwogICAgIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQzMiwgT3Jp
Z2luKCksIHN0YWNrKSk7CiAKQEAgLTYxMTYsNyArNjEyMyw3IEBAIHZvaWQgdGVzdExvYWQoQjM6
Ok9wY29kZSBvcGNvZGUsIElucHV0VHkKICAgICAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgICAgIAotICAgICAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywg
b3Bjb2RlLCB0eXBlLCBPcmlnaW4oKSwKQEAgLTYxMzAsNyArNjEzNyw3IEBAIHZvaWQgdGVzdExv
YWQoQjM6Ok9wY29kZSBvcGNvZGUsIElucHV0VHkKICAgICAgICAgUHJvY2VkdXJlIHByb2M7CiAg
ICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgICAgIAotICAg
ICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICAgICAg
cHJvYywgb3Bjb2RlLCB0eXBlLCBPcmlnaW4oKSwKQEAgLTYxNDQsNyArNjE1MSw3IEBAIHZvaWQg
dGVzdExvYWQoQjM6Ok9wY29kZSBvcGNvZGUsIElucHV0VHkKICAgICAgICAgUHJvY2VkdXJlIHBy
b2M7CiAgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgICAg
IAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAg
ICAgICAgcHJvYywgb3Bjb2RlLCB0eXBlLCBPcmlnaW4oKSwKQEAgLTYxNTksNyArNjE2Niw3IEBA
IHZvaWQgdGVzdExvYWQoQjM6Ok9wY29kZSBvcGNvZGUsIElucHV0VHkKICAgICAgICAgUHJvY2Vk
dXJlIHByb2M7CiAgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAK
LSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAg
ICAgIHByb2MsIG9wY29kZSwgdHlwZSwgT3JpZ2luKCksCkBAIC02MTc5LDcgKzYxODYsNyBAQCB2
b2lkIHRlc3RMb2FkKEIzOjpPcGNvZGUgb3Bjb2RlLCBJbnB1dFR5CiAgICAgICAgIFByb2NlZHVy
ZSBwcm9jOwogICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogCi0g
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgICAg
ICBwcm9jLCBvcGNvZGUsIHR5cGUsIE9yaWdpbigpLApAQCAtNjIxOSw3ICs2MjI2LDcgQEAgdm9p
ZCB0ZXN0U3RvcmVGbG9hdChkb3VibGUgaW5wdXQpCiAgICAgICAgIFZhbHVlKiBkZXN0aW5hdGlv
bkFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1v
cnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCBhcmd1bWVudEFzRmxvYXQsIGRlc3RpbmF0
aW9uQWRkcmVzcyk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDApKTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCAwKSk7CiAKICAgICAgICAgZmxvYXQgb3V0cHV0ID0gMC47CiAgICAgICAgIENIRUNL
KCFjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIGlucHV0LCAmb3V0cHV0KSk7CkBAIC02MjQz
LDcgKzYyNTAsNyBAQCB2b2lkIHRlc3RTdG9yZUZsb2F0KGRvdWJsZSBpbnB1dCkKIAogICAgICAg
ICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgYXJn
dW1lbnRBc0Zsb2F0LCBkZXN0aW5hdGlvbkFkZHJlc3MpOwogCi0gICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgICAgIGZsb2F0IG91dHB1
dCA9IDAuOwogICAgICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCBpbnB1
dCwgJm91dHB1dCAtIDEsIDEpKTsKQEAgLTYyNjMsNyArNjI3MCw3IEBAIHZvaWQgdGVzdFN0b3Jl
RG91YmxlQ29uc3RhbnRBc0Zsb2F0KGRvdWIKIAogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlW
YWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCB2YWx1ZUFzRmxvYXQsIGRlc3RpbmF0aW9uQWRk
cmVzcyk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
MCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwog
CiAgICAgZmxvYXQgb3V0cHV0ID0gMC47CiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50NjRf
dD4ocHJvYywgaW5wdXQsICZvdXRwdXQpKTsKQEAgLTYyODksNyArNjI5Niw3IEBAIHZvaWQgdGVz
dFNwaWxsR1AoKQogICAgIGZvciAoVmFsdWUqIHZhbHVlIDogc291cmNlcykKICAgICAgICAgdG90
YWwgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIHRvdGFsLCB2
YWx1ZSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCB0b3RhbCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHRvdGFsKTsKICAgICBjb21waWxlQW5kUnVuPGludD4ocHJvYywg
MSwgMik7CiB9CiAKQEAgLTYzMTIsNyArNjMxOSw3IEBAIHZvaWQgdGVzdFNwaWxsRlAoKQogICAg
IGZvciAoVmFsdWUqIHZhbHVlIDogc291cmNlcykKICAgICAgICAgdG90YWwgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIHRvdGFsLCB2YWx1ZSk7CiAKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB0b3Rh
bCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHRvdGFsKTsKICAgICBjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgMS4xLCAyLjUpOwog
fQogCkBAIC02MzI4LDcgKzYzMzUsNyBAQCB2b2lkIHRlc3RJbnQzMlRvRG91YmxlUGFydGlhbFJl
Z2lzdGVyU3RhCiAgICAgVmFsdWUqIGNvdW50ZXIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVXBz
aWxvblZhbHVlKiBvcmlnaW5hbFRvdGFsID0gcm9vdC0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4o
cHJvYywgT3JpZ2luKCksIHRvdGFsKTsKICAgICBVcHNpbG9uVmFsdWUqIG9yaWdpbmFsQ291bnRl
ciA9IHJvb3QtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCBjb3VudGVy
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4o
KSwgRnJlcXVlbnRlZEJsb2NrKGxvb3ApKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhsb29wKSk7CiAKICAgICAv
LyBMb29wLgogICAgIFZhbHVlKiBsb29wQ291bnRlciA9IGxvb3AtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgUGhpLCBJbnQ2NCwgT3JpZ2luKCkpOwpAQCAtNjM0NSwxMyArNjM1MiwxMyBAQCB2b2lk
IHRlc3RJbnQzMlRvRG91YmxlUGFydGlhbFJlZ2lzdGVyU3RhCiAgICAgVmFsdWUqIGRlY0NvdW50
ZXIgPSBsb29wLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIGxvb3BDb3Vu
dGVyLCBsb29wLT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwog
ICAgIFVwc2lsb25WYWx1ZSogZGVjQ291bnRlclVwc2lsb24gPSBsb29wLT5hcHBlbmROZXc8VXBz
aWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgZGVjQ291bnRlcik7CiAgICAgZGVjQ291bnRlclVw
c2lsb24tPnNldFBoaShsb29wQ291bnRlcik7Ci0gICAgbG9vcC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgbG9vcC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBC
cmFuY2gsIE9yaWdpbigpLAogICAgICAgICBkZWNDb3VudGVyLAogICAgICAgICBGcmVxdWVudGVk
QmxvY2sobG9vcCksIEZyZXF1ZW50ZWRCbG9jayhkb25lKSk7CiAKICAgICAvLyBUYWlsLgotICAg
IGRvbmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHVw
ZGF0ZWRUb3RhbCk7CisgICAgZG9uZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHVwZGF0ZWRUb3RhbCk7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGls
ZUFuZFJ1bjxkb3VibGU+KHByb2MsIDEwMDAwMCksIDUwMDAwNTAwMDAuKSk7CiB9CiAKQEAgLTYz
NzEsNyArNjM3OCw3IEBAIHZvaWQgdGVzdEludDMyVG9Eb3VibGVQYXJ0aWFsUmVnaXN0ZXJXaXQK
ICAgICBWYWx1ZSogZm9yUGFkZGluZ0lucHV0QWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxDb25z
dFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJmZvclBhZGRpbmdJbnB1dCk7CiAgICAgdWludDY0
X3QgZm9yUGFkZGluZ091dHB1dDsKICAgICBWYWx1ZSogZm9yUGFkZGluZ091dHB1dEFkZHJlc3Mg
PSByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZmb3JQYWRk
aW5nT3V0cHV0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1w
LCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3ApKTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhsb29wKSk7
CiAKICAgICAvLyBMb29wLgogICAgIFZhbHVlKiBsb29wQ291bnRlciA9IGxvb3AtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgUGhpLCBJbnQ2NCwgT3JpZ2luKCkpOwpAQCAtNjQwNSwxMyArNjQxMiwx
MyBAQCB2b2lkIHRlc3RJbnQzMlRvRG91YmxlUGFydGlhbFJlZ2lzdGVyV2l0CiAgICAgVmFsdWUq
IGRlY0NvdW50ZXIgPSBsb29wLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCks
IGxvb3BDb3VudGVyLCBsb29wLT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgMSkpOwogICAgIFVwc2lsb25WYWx1ZSogZGVjQ291bnRlclVwc2lsb24gPSBsb29wLT5hcHBl
bmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgZGVjQ291bnRlcik7CiAgICAgZGVj
Q291bnRlclVwc2lsb24tPnNldFBoaShsb29wQ291bnRlcik7Ci0gICAgbG9vcC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgbG9vcC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICBkZWNDb3VudGVyLAogICAgICAgICBG
cmVxdWVudGVkQmxvY2sobG9vcCksIEZyZXF1ZW50ZWRCbG9jayhkb25lKSk7CiAKICAgICAvLyBU
YWlsLgotICAgIGRvbmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHVwZGF0ZWRUb3RhbCk7CisgICAgZG9uZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHVwZGF0ZWRUb3RhbCk7CiAgICAgQ0hFQ0soaXNJZGVudGlj
YWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIDEwMDAwMCksIDUwMDAwNTAwMDAuKSk7CiB9
CiAKQEAgLTY0MjIsMTggKzY0MjksMTggQEAgdm9pZCB0ZXN0QnJhbmNoKCkKICAgICBCYXNpY0Js
b2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2Fz
ZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNo
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAg
ICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2Fz
ZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5D
YXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgMSkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgMCkpOwogCkBAIC02NDQ5LDE2ICs2NDU2LDE2IEBAIHZvaWQgdGVzdEJyYW5j
aFB0cigpCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAg
QmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwK
ICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VD
YXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhl
bkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTY0NzUsNyArNjQ4Miw3IEBAIHZvaWQgdGVzdERpYW1v
bmQoKQogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJh
c2ljQmxvY2sqIGRvbmUgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
CiAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCkBAIC02NDg0LDE2ICs2NDkxLDE2
IEBAIHZvaWQgdGVzdERpYW1vbmQoKQogCiAgICAgVXBzaWxvblZhbHVlKiB0aGVuUmVzdWx0ID0g
dGhlbkNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KAogICAgICAgICBwcm9jLCBPcmlnaW4o
KSwgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7
Ci0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdp
bigpLCBGcmVxdWVudGVkQmxvY2soZG9uZSkpOworICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhkb25lKSk7CiAK
ICAgICBVcHNpbG9uVmFsdWUqIGVsc2VSZXN1bHQgPSBlbHNlQ2FzZS0+YXBwZW5kTmV3PFVwc2ls
b25WYWx1ZT4oCiAgICAgICAgIHByb2MsIE9yaWdpbigpLCBlbHNlQ2FzZS0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhkb25l
KSk7CisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmln
aW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRvbmUpKTsKIAogICAgIFZhbHVlKiBwaGkgPSBkb25lLT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIFBoaSwgSW50MzIsIE9yaWdpbigpKTsKICAgICB0aGVuUmVz
dWx0LT5zZXRQaGkocGhpKTsKICAgICBlbHNlUmVzdWx0LT5zZXRQaGkocGhpKTsKLSAgICBkb25l
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwaGkpOwor
ICAgIGRvbmUtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBw
aGkpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBDSEVDSyhpbnZva2U8
aW50PigqY29kZSwgNDIpID09IDEpOwpAQCAtNjUwNyw3ICs2NTE0LDcgQEAgdm9pZCB0ZXN0QnJh
bmNoTm90RXF1YWwoKQogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygp
OwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTm90RXF1YWwsIE9yaWdpbigpLApAQCAt
NjUxNywxMSArNjUyNCwxMSBAQCB2b2lkIHRlc3RCcmFuY2hOb3RFcXVhbCgpCiAgICAgICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpLAogICAg
ICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2Up
KTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2Fz
ZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBl
bHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDApKTsKIApAQCAtNjUzNyw3ICs2NTQ0LDcgQEAgdm9pZCB0ZXN0QnJhbmNoTm90
RXF1YWxDb21tdXRlKCkKICAgICBCYXNpY0Jsb2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2so
KTsKICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIE5vdEVxdWFsLCBPcmlnaW4oKSwKQEAg
LTY1NDcsMTEgKzY1NTQsMTEgQEAgdm9pZCB0ZXN0QnJhbmNoTm90RXF1YWxDb21tdXRlKCkKICAg
ICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2Nr
KHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2Ut
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKLSAgICBlbHNl
Q2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxz
ZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAg
LTY1NjcsNyArNjU3NCw3IEBAIHZvaWQgdGVzdEJyYW5jaE5vdEVxdWFsTm90RXF1YWwoKQogICAg
IEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sq
IGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgTm90RXF1YWwsIE9yaWdpbigpLApAQCAtNjU4MCwxMSArNjU4NywxMSBA
QCB2b2lkIHRlc3RCcmFuY2hOb3RFcXVhbE5vdEVxdWFsKCkKICAgICAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSksCiAgICAgICAgIEZyZXF1
ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAg
dGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwog
Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
MCkpOwogCkBAIC02NjAwLDcgKzY2MDcsNyBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbCgpCiAgICAg
QmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayog
ZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBFcXVhbCwgT3JpZ2luKCksCkBAIC02NjEwLDExICs2NjE3LDExIEBAIHZv
aWQgdGVzdEJyYW5jaEVxdWFsKCkKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMy
VmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVu
Q2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCi0gICAgZWxzZUNhc2Ut
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNl
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCkBAIC02NjMw
LDcgKzY2MzcsNyBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbEVxdWFsKCkKICAgICBCYXNpY0Jsb2Nr
KiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9
IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIEVxdWFsLCBPcmlnaW4oKSwKQEAgLTY2NDMsMTEgKzY2NTAsMTEgQEAgdm9pZCB0ZXN0QnJh
bmNoRXF1YWxFcXVhbCgpCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgMCkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2Up
LCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNjY2Myw3ICs2
NjcwLDcgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxDb21tdXRlKCkKICAgICBCYXNpY0Jsb2NrKiB0
aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHBy
b2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IEVxdWFsLCBPcmlnaW4oKSwKQEAgLTY2NzMsMTEgKzY2ODAsMTEgQEAgdm9pZCB0ZXN0QnJhbmNo
RXF1YWxDb21tdXRlKCkKICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpKSwKICAgICAg
ICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7
CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2Ut
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCAwKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxz
ZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCAxKSk7CiAKQEAgLTY2OTMsNyArNjcwMCw3IEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFs
RXF1YWwxKCkKICAgICBCYXNpY0Jsb2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAg
ICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEVxdWFsLCBPcmlnaW4oKSwKQEAgLTY3MDYsMTEg
KzY3MTMsMTEgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxFcXVhbDEoKQogICAgICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKSwKICAgICAgICAg
RnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAK
LSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAw
KSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNh
c2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAxKSk7CiAKQEAgLTY3MjgsNyArNjczNSw3IEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsT3JV
bm9yZGVyZWRBcmdzKGRvdWIKIAogICAgIFZhbHVlKiBhcmd1bWVudEEgPSByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBS
MCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50QiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIxKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBFcXVhbE9yVW5vcmRlcmVkLCBPcmlnaW4oKSwK
QEAgLTY3MzYsMTEgKzY3NDMsMTEgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJlZEFy
Z3MoZG91YgogICAgICAgICAgICAgYXJndW1lbnRCKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2Nr
KHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2Ut
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwogCi0gICAgZWxz
ZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVs
c2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTEzKSk7CiAK
QEAgLTY3NjAsNyArNjc2Nyw3IEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsT3JVbm9yZGVyZWRBcmdz
KGZsb2EKICAgICBWYWx1ZSogYXJndW1lbnRCID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVl
Pihwcm9jLCBMb2FkLCBGbG9hdCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7
CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBFcXVhbE9yVW5vcmRl
cmVkLCBPcmlnaW4oKSwKQEAgLTY3NjgsMTEgKzY3NzUsMTEgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1
YWxPclVub3JkZXJlZEFyZ3MoZmxvYQogICAgICAgICAgICAgYXJndW1lbnRCKSwKICAgICAgICAg
RnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAK
LSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0
MikpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VD
YXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgLTEzKSk7CiAKQEAgLTY3OTcsMTYgKzY4MDQsMTYgQEAgdm9pZCB0ZXN0QnJhbmNoTm90
RXF1YWxBbmRPcmRlcmVkQXJncyhkbwogICAgICAgICBwcm9jLCBFcXVhbCwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSwK
ICAgICAgICAgZXF1YWxPclVub3JkZXJlZCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBC
cmFuY2gsIE9yaWdpbigpLAogICAgICAgICBub3RFcXVhbEFuZE9yZGVyZWQsCiAgICAgICAgIEZy
ZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0g
ICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIp
KTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2Fz
ZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIC0xMykpOwogCkBAIC02ODMzLDE2ICs2ODQwLDE2IEBAIHZvaWQgdGVzdEJyYW5jaE5vdEVx
dWFsQW5kT3JkZXJlZEFyZ3MoZmwKICAgICAgICAgcHJvYywgRXF1YWwsIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCksCiAg
ICAgICAgIGVxdWFsT3JVbm9yZGVyZWQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJh
bmNoLCBPcmlnaW4oKSwKICAgICAgICAgbm90RXF1YWxBbmRPcmRlcmVkLAogICAgICAgICBGcmVx
dWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAg
IHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7
CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2Ut
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCAtMTMpKTsKIApAQCAtNjg1OSw3ICs2ODY2LDcgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVu
b3JkZXJlZERvdWJsZUFyZwogCiAgICAgVmFsdWUqIGFyZ3VtZW50QSA9IHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIw
KTsKICAgICBWYWx1ZSogYXJndW1lbnRCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBiKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5j
aCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBFcXVhbE9yVW5vcmRlcmVkLCBPcmlnaW4oKSwKQEAgLTY4NjcsMTEgKzY4NzQsMTEg
QEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJlZERvdWJsZUFyZwogICAgICAgICAgICAg
YXJndW1lbnRCKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRl
ZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29u
c3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTEzKSk7CiAKQEAgLTY4OTAsNyArNjg5Nyw3IEBA
IHZvaWQgdGVzdEJyYW5jaEVxdWFsT3JVbm9yZGVyZWRGbG9hdEFyZ0kKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjApKTsKICAgICBWYWx1ZSogYXJndW1lbnRCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0
RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAog
ICAgICAgICAgICAgcHJvYywgRXF1YWxPclVub3JkZXJlZCwgT3JpZ2luKCksCkBAIC02ODk4LDEx
ICs2OTA1LDExIEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsT3JVbm9yZGVyZWRGbG9hdEFyZ0kKICAg
ICAgICAgICAgIGFyZ3VtZW50QiksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSks
IEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xMykpOwogCkBAIC02OTE5LDcg
KzY5MjYsNyBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVkRG91YmxlSW1tCiAKICAg
ICBWYWx1ZSogYXJndW1lbnRBID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogYXJndW1lbnRCID0gcm9vdC0+YXBwZW5kTmV3
PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBFcXVhbE9yVW5vcmRlcmVkLCBPcmlnaW4oKSwKQEAgLTY5
MjcsMTEgKzY5MzQsMTEgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJlZERvdWJsZUlt
bQogICAgICAgICAgICAgYXJndW1lbnRCKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5D
YXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwogCi0gICAgZWxzZUNhc2Ut
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNl
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTEzKSk7CiAKQEAgLTY5
NDksNyArNjk1Niw3IEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsT3JVbm9yZGVyZWRGbG9hdEltbXMK
ICAgICBWYWx1ZSogYXJndW1lbnRBID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiBhcmd1bWVudEIgPSByb290LT5hcHBlbmRO
ZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7CiAKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBFcXVhbE9yVW5vcmRlcmVkLCBPcmlnaW4oKSwKQEAg
LTY5NTcsMTEgKzY5NjQsMTEgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJlZEZsb2F0
SW1tcwogICAgICAgICAgICAgYXJndW1lbnRCKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRo
ZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwogCi0gICAgZWxzZUNh
c2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VD
YXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTEzKSk7CiAKQEAg
LTY5ODMsNyArNjk5MCw3IEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsT3JVbm9yZGVyZWRGbG9hdFdp
dGgKICAgICBWYWx1ZSogYXJndW1lbnQxQXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBhcmd1bWVudDEpOwogICAgIFZhbHVlKiBh
cmd1bWVudDJBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0Rv
dWJsZSwgT3JpZ2luKCksIGFyZ3VtZW50Mik7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBFcXVhbE9yVW5vcmRlcmVkLCBPcmlnaW4oKSwKQEAgLTY5OTEsMTEgKzY5
OTgsMTEgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJlZEZsb2F0V2l0aAogICAgICAg
ICAgICAgYXJndW1lbnQyQXNEb3VibGUpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNh
c2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7CiAKLSAgICBlbHNlQ2FzZS0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2Ut
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMTMpKTsKIApAQCAtNzAx
MCwxNiArNzAxNywxNiBAQCB2b2lkIHRlc3RCcmFuY2hGb2xkKGludCB2YWx1ZSkKICAgICBCYXNp
Y0Jsb2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBlbHNl
Q2FzZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJh
bmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIHZhbHVlKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwg
RnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTcwMzQsMjMgKzcw
NDEsMjMgQEAgdm9pZCB0ZXN0RGlhbW9uZEZvbGQoaW50IHZhbHVlKQogICAgIEJhc2ljQmxvY2sq
IGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGRvbmUgPSBwcm9j
LmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCB2YWx1ZSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRC
bG9jayhlbHNlQ2FzZSkpOwogCiAgICAgVXBzaWxvblZhbHVlKiB0aGVuUmVzdWx0ID0gdGhlbkNh
c2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KAogICAgICAgICBwcm9jLCBPcmlnaW4oKSwgdGhl
bkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7Ci0gICAg
dGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBG
cmVxdWVudGVkQmxvY2soZG9uZSkpOworICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhkb25lKSk7CiAKICAgICBV
cHNpbG9uVmFsdWUqIGVsc2VSZXN1bHQgPSBlbHNlQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1
ZT4oCiAgICAgICAgIHByb2MsIE9yaWdpbigpLCBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhkb25lKSk7Cisg
ICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwg
RnJlcXVlbnRlZEJsb2NrKGRvbmUpKTsKIAogICAgIFZhbHVlKiBwaGkgPSBkb25lLT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIFBoaSwgSW50MzIsIE9yaWdpbigpKTsKICAgICB0aGVuUmVzdWx0LT5z
ZXRQaGkocGhpKTsKICAgICBlbHNlUmVzdWx0LT5zZXRQaGkocGhpKTsKLSAgICBkb25lLT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwaGkpOworICAgIGRv
bmUtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwaGkpOwog
CiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MpID09ICEhdmFsdWUpOwogfQpAQCAt
NzA2Miw3ICs3MDY5LDcgQEAgdm9pZCB0ZXN0QnJhbmNoTm90RXF1YWxGb2xkUHRyKGludHB0cl90
IAogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2lj
QmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgTm90RXF1YWwsIE9yaWdpbigpLApAQCAtNzA3MCwxMSArNzA3
NywxMSBAQCB2b2lkIHRlc3RCcmFuY2hOb3RFcXVhbEZvbGRQdHIoaW50cHRyX3QgCiAgICAgICAg
ICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKSwK
ICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VD
YXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhl
bkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTcwODgsNyArNzA5NSw3IEBAIHZvaWQgdGVzdEJyYW5j
aEVxdWFsRm9sZFB0cihpbnRwdHJfdCB2YWwKICAgICBCYXNpY0Jsb2NrKiB0aGVuQ2FzZSA9IHBy
b2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2so
KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEVxdWFsLCBPcmln
aW4oKSwKQEAgLTcwOTYsMTEgKzcxMDMsMTEgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxGb2xkUHRy
KGludHB0cl90IHZhbAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAwKSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSks
IEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC03MTE0LDE4ICs3
MTIxLDE4IEBAIHZvaWQgdGVzdEJyYW5jaExvYWRQdHIoKQogICAgIEJhc2ljQmxvY2sqIHRoZW5D
YXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5h
ZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxv
Y2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNzE0NCwxOCArNzE1MSwxOCBAQCB2b2lk
IHRlc3RCcmFuY2hMb2FkMzIoKQogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRC
bG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZCwgSW50MzIs
IE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAgRnJlcXVl
bnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0
aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
dGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAK
LSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAw
KSk7CiAKQEAgLTcxNzQsMTggKzcxODEsMTggQEAgdm9pZCB0ZXN0QnJhbmNoTG9hZDhTKCkKICAg
ICBCYXNpY0Jsb2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2Nr
KiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIExvYWQ4UywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMCkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVu
dGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNzIwNCwxOCArNzIxMSwxOCBA
QCB2b2lkIHRlc3RCcmFuY2hMb2FkOFooKQogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJv
Yy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygp
OwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZDha
LCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIEZyZXF1
ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAg
dGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwog
Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
MCkpOwogCkBAIC03MjM0LDE4ICs3MjQxLDE4IEBAIHZvaWQgdGVzdEJyYW5jaExvYWQxNlMoKQog
ICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxv
Y2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFs
dWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZDE2UywgT3JpZ2luKCksCiAgICAgICAgICAgICBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVx
dWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNzI2NCwxOCArNzI3MSwx
OCBAQCB2b2lkIHRlc3RCcmFuY2hMb2FkMTZaKCkKICAgICBCYXNpY0Jsb2NrKiB0aGVuQ2FzZSA9
IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxv
Y2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgIHByb2MsIExv
YWQxNlosIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAg
RnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAK
LSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAx
KSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNh
c2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAwKSk7CiAKQEAgLTcyOTUsNyArNzMwMiw3IEBAIHZvaWQgdGVzdEJyYW5jaDhXaXRoTG9h
ZDhaSW5kZXgoKQogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwog
CiAgICAgaW50IGxvZ1NjYWxlID0gMTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5j
aCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBBYm92ZSwgT3JpZ2luKCksCkBAIC03MzExLDExICs3MzE4LDExIEBAIHZvaWQgdGVz
dEJyYW5jaDhXaXRoTG9hZDhaSW5kZXgoKQogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDI1MCkpLAogICAgICAgICBGcmVxdWVudGVkQmxv
Y2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNl
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2Fz
ZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVs
c2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBl
bHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApA
QCAtNzM1Nyw3ICs3MzY0LDcgQEAgdm9pZCB0ZXN0Q29tcGxleCh1bnNpZ25lZCBudW1WYXJzLCB1
bnNpZwogICAgICAgICAgICAgQmFzaWNCbG9jayogZWxzZUJsb2NrID0gcHJvYy5hZGRCbG9jaygp
OwogICAgICAgICAgICAgQmFzaWNCbG9jayogY29udGludWF0aW9uID0gcHJvYy5hZGRCbG9jaygp
OwogCi0gICAgICAgICAgICBjdXJyZW50LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAg
ICAgICAgIGN1cnJlbnQtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgICAgICBw
cm9jLCBCcmFuY2gsIE9yaWdpbigpLCB2YXJzW3ByZWRpY2F0ZVZhckluZGV4XSwKICAgICAgICAg
ICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkJsb2NrKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VC
bG9jaykpOwogCkBAIC03MzY2LDE0ICs3MzczLDE0IEBAIHZvaWQgdGVzdENvbXBsZXgodW5zaWdu
ZWQgbnVtVmFycywgdW5zaWcKICAgICAgICAgICAgICAgICB0aGVuQmxvY2stPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgdmFyc1t0aGVuSW5jVmFySW5kZXhdLCBvbmUpKTsK
ICAgICAgICAgICAgIFVwc2lsb25WYWx1ZSogdGhlbkVsc2VSZXN1bHQgPSB0aGVuQmxvY2stPmFw
cGVuZE5ldzxVcHNpbG9uVmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLCB2
YXJzW2Vsc2VJbmNWYXJJbmRleF0pOwotICAgICAgICAgICAgdGhlbkJsb2NrLT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGNvbnRp
bnVhdGlvbikpOworICAgICAgICAgICAgdGhlbkJsb2NrLT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhjb250aW51YXRpb24pKTsKIAog
ICAgICAgICAgICAgVXBzaWxvblZhbHVlKiBlbHNlRWxzZVJlc3VsdCA9IGVsc2VCbG9jay0+YXBw
ZW5kTmV3PFVwc2lsb25WYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksCiAg
ICAgICAgICAgICAgICAgZWxzZUJsb2NrLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3Jp
Z2luKCksIHZhcnNbZWxzZUluY1ZhckluZGV4XSwgb25lKSk7CiAgICAgICAgICAgICBVcHNpbG9u
VmFsdWUqIGVsc2VUaGVuUmVzdWx0ID0gZWxzZUJsb2NrLT5hcHBlbmROZXc8VXBzaWxvblZhbHVl
PigKICAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgdmFyc1t0aGVuSW5jVmFySW5kZXhd
KTsKLSAgICAgICAgICAgIGVsc2VCbG9jay0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
SnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhjb250aW51YXRpb24pKTsKKyAgICAgICAg
ICAgIGVsc2VCbG9jay0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigp
LCBGcmVxdWVudGVkQmxvY2soY29udGludWF0aW9uKSk7CiAKICAgICAgICAgICAgIFZhbHVlKiB0
aGVuUGhpID0gY29udGludWF0aW9uLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFBoaSwgSW50MzIs
IE9yaWdpbigpKTsKICAgICAgICAgICAgIHRoZW5UaGVuUmVzdWx0LT5zZXRQaGkodGhlblBoaSk7
CkBAIC03Mzk4LDcgKzc0MDUsNyBAQCB2b2lkIHRlc3RDb21wbGV4KHVuc2lnbmVkIG51bVZhcnMs
IHVuc2lnCiAgICAgICAgICAgICAKICAgICAgICAgICAgIFZhbHVlKiBzdGFydEluZGV4ID0gdmFy
c1soKGkgPj4gMSkgKyAxKSAlIG51bVZhcnNdOwogICAgICAgICAgICAgVmFsdWUqIHN0YXJ0U3Vt
ID0gY3VycmVudC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApOwot
ICAgICAgICAgICAgY3VycmVudC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgICAg
ICBjdXJyZW50LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICAgICAgcHJvYywg
QnJhbmNoLCBPcmlnaW4oKSwgc3RhcnRJbmRleCwKICAgICAgICAgICAgICAgICBGcmVxdWVudGVk
QmxvY2sobG9vcEVudHJ5KSwgRnJlcXVlbnRlZEJsb2NrKGxvb3BTa2lwKSk7CiAKQEAgLTc0MDYs
NyArNzQxMyw3IEBAIHZvaWQgdGVzdENvbXBsZXgodW5zaWduZWQgbnVtVmFycywgdW5zaWcKICAg
ICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgc3RhcnRJbmRleCk7CiAgICAgICAgICAgICBV
cHNpbG9uVmFsdWUqIHN0YXJ0U3VtRm9yQm9keSA9IGxvb3BFbnRyeS0+YXBwZW5kTmV3PFVwc2ls
b25WYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksIHN0YXJ0U3VtKTsKLSAg
ICAgICAgICAgIGxvb3BFbnRyeS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwg
T3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhsb29wQm9keSkpOworICAgICAgICAgICAgbG9vcEVu
dHJ5LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50
ZWRCbG9jayhsb29wQm9keSkpOwogCiAgICAgICAgICAgICBWYWx1ZSogYm9keUluZGV4ID0gbG9v
cEJvZHktPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBJbnQzMiwgT3JpZ2luKCkpOwogICAg
ICAgICAgICAgc3RhcnRJbmRleEZvckJvZHktPnNldFBoaShib2R5SW5kZXgpOwpAQCAtNzQzMSwx
OSArNzQzOCwxOSBAQCB2b2lkIHRlc3RDb21wbGV4KHVuc2lnbmVkIG51bVZhcnMsIHVuc2lnCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb29wQm9keS0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJv
YywgT3JpZ2luKCksIG51bVZhcnMgLSAxKSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxvb3BCb2R5LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMikpKSkp
OwotICAgICAgICAgICAgbG9vcEJvZHktPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAg
ICAgICAgbG9vcEJvZHktPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgICAgICBw
cm9jLCBCcmFuY2gsIE9yaWdpbigpLCBuZXdCb2R5SW5kZXgsCiAgICAgICAgICAgICAgICAgRnJl
cXVlbnRlZEJsb2NrKGxvb3BSZWVudHJ5KSwgRnJlcXVlbnRlZEJsb2NrKGxvb3BFeGl0KSk7CiAK
ICAgICAgICAgICAgIGxvb3BSZWVudHJ5LT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgbmV3Qm9keUluZGV4LCBib2R5SW5kZXgpOwogICAgICAgICAgICAgbG9vcFJlZW50
cnktPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCBuZXdCb2R5U3VtLCBi
b2R5U3VtKTsKLSAgICAgICAgICAgIGxvb3BSZWVudHJ5LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3BCb2R5KSk7CisgICAg
ICAgICAgICBsb29wUmVlbnRyeS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9y
aWdpbigpLCBGcmVxdWVudGVkQmxvY2sobG9vcEJvZHkpKTsKIAogICAgICAgICAgICAgVXBzaWxv
blZhbHVlKiBleGl0U3VtID0gbG9vcEV4aXQtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBuZXdCb2R5U3VtKTsKLSAgICAgICAgICAgIGxvb3BFeGl0LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGNvbnRp
bnVhdGlvbikpOworICAgICAgICAgICAgbG9vcEV4aXQtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGNvbnRpbnVhdGlvbikpOwogCiAg
ICAgICAgICAgICBVcHNpbG9uVmFsdWUqIHNraXBTdW0gPSBsb29wU2tpcC0+YXBwZW5kTmV3PFVw
c2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHN0YXJ0U3VtKTsKLSAgICAgICAgICAgIGxvb3BT
a2lwLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVl
bnRlZEJsb2NrKGNvbnRpbnVhdGlvbikpOworICAgICAgICAgICAgbG9vcFNraXAtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGNvbnRp
bnVhdGlvbikpOwogCiAgICAgICAgICAgICBWYWx1ZSogZmluYWxTdW0gPSBjb250aW51YXRpb24t
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBJbnQzMiwgT3JpZ2luKCkpOwogICAgICAgICAg
ICAgZXhpdFN1bS0+c2V0UGhpKGZpbmFsU3VtKTsKQEAgLTc0NTQsNyArNzQ2MSw3IEBAIHZvaWQg
dGVzdENvbXBsZXgodW5zaWduZWQgbnVtVmFycywgdW5zaWcKICAgICAgICAgfQogICAgIH0KIAot
ICAgIGN1cnJlbnQtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHZhcnNbMF0pOworICAgIGN1cnJlbnQtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCB2YXJzWzBdKTsKIAogICAgIGNvbXBpbGUocHJvYyk7CiAKQEAgLTc0
ODAsNyArNzQ4Nyw3IEBAIHZvaWQgdGVzdFNpbXBsZVBhdGNocG9pbnQoKQogICAgICAgICAgICAg
Q0hFQ0socGFyYW1zWzJdLmlzR1BSKCkpOwogICAgICAgICAgICAgYWRkMzIoaml0LCBwYXJhbXNb
MV0uZ3ByKCksIHBhcmFtc1syXS5ncHIoKSwgcGFyYW1zWzBdLmdwcigpKTsKICAgICAgICAgfSk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcGF0Y2hwb2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxp
bnQ+KHByb2MsIDEsIDIpID09IDMpOwogfQpAQCAtNzUxMSw3ICs3NTE4LDcgQEAgdm9pZCB0ZXN0
U2ltcGxlUGF0Y2hwb2ludFdpdGhvdXRPdXB1dENsbwogICAgICAgICB9KTsKIAogICAgIFZhbHVl
KiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGFy
ZzEsIGFyZzIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVu
PGludD4ocHJvYywgMSwgMikgPT0gMyk7CiB9CkBAIC03NTYwLDcgKzc1NjcsNyBAQCB2b2lkIHRl
c3RTaW1wbGVQYXRjaHBvaW50V2l0aE91cHV0Q2xvYmJlCiAKICAgICBWYWx1ZSogcmVzdWx0ID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBwYXRjaHBvaW50LAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGFyZzEs
IGFyZzIpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxp
bnQ+KHByb2MsIDEsIDIpID09IDU4KTsKIH0KQEAgLTc1OTEsNyArNzU5OCw3IEBAIHZvaWQgdGVz
dFNpbXBsZVBhdGNocG9pbnRXaXRob3V0T3VwdXRDbG8KICAgICAgICAgfSk7CiAKICAgICBWYWx1
ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBh
cmcxLCBhcmcyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1
bjxkb3VibGU+KHByb2MsIDEuNSwgMi41KSA9PSA0KTsKIH0KQEAgLTc2MzIsNyArNzYzOSw3IEBA
IHZvaWQgdGVzdFNpbXBsZVBhdGNocG9pbnRXaXRoT3VwdXRDbG9iYmUKIAogICAgIFZhbHVlKiBy
ZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIHBhdGNo
cG9pbnQsCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4o
KSwgYXJnMSwgYXJnMikpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhjb21waWxl
QW5kUnVuPGRvdWJsZT4ocHJvYywgMS41LCAyLjUpID09IDU5LjYpOwogfQpAQCAtNzY1Nyw3ICs3
NjY0LDcgQEAgdm9pZCB0ZXN0UGF0Y2hwb2ludFdpdGhFYXJseUNsb2JiZXIoKQogICAgICAgICAg
ICAgICAgIGFkZDMyKGppdCwgcGFyYW1zWzFdLmdwcigpLCBwYXJhbXNbMl0uZ3ByKCksIHBhcmFt
c1swXS5ncHIoKSk7CiAgICAgICAgICAgICB9KTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBh
dGNocG9pbnQpOwogCiAgICAgICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAxLCAy
KSA9PSAzKTsKICAgICB9OwpAQCAtNzY5MCw3ICs3Njk3LDcgQEAgdm9pZCB0ZXN0UGF0Y2hwb2lu
dENhbGxBcmcoKQogICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZv
OjpjYWxsRnJhbWVSZWdpc3RlciwgcGFyYW1zWzJdLm9mZnNldEZyb21GUCgpKSwKICAgICAgICAg
ICAgICAgICBwYXJhbXNbMF0uZ3ByKCkpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0
Y2hwb2ludCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywgMSwgMikgPT0g
Myk7CiB9CkBAIC03NzEzLDcgKzc3MjAsNyBAQCB2b2lkIHRlc3RQYXRjaHBvaW50Rml4ZWRSZWdp
c3RlcigpCiAgICAgICAgICAgICBDSEVDSyhwYXJhbXNbMl0gPT0gVmFsdWVSZXAoR1BSSW5mbzo6
cmVnVDEpKTsKICAgICAgICAgICAgIGFkZDMyKGppdCwgR1BSSW5mbzo6cmVnVDAsIEdQUkluZm86
OnJlZ1QxLCBwYXJhbXNbMF0uZ3ByKCkpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0
Y2hwb2ludCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywgMSwgMikgPT0g
Myk7CiB9CkBAIC03NzM3LDcgKzc3NDQsNyBAQCB2b2lkIHRlc3RQYXRjaHBvaW50QW55KFZhbHVl
UmVwIHJlcCkKICAgICAgICAgICAgIENIRUNLKHBhcmFtc1syXS5pc0dQUigpKTsKICAgICAgICAg
ICAgIGFkZDMyKGppdCwgcGFyYW1zWzFdLmdwcigpLCBwYXJhbXNbMl0uZ3ByKCksIHBhcmFtc1sw
XS5ncHIoKSk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOworICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKIAogICAg
IENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAxLCAyKSA9PSAzKTsKIH0KQEAgLTc3NzMs
NyArNzc4MCw3IEBAIHZvaWQgdGVzdFBhdGNocG9pbnRHUFNjcmF0Y2goKQogICAgICAgICAgICAg
Q0hFQ0soIXBhcmFtcy51bmF2YWlsYWJsZVJlZ2lzdGVycygpLmdldChwYXJhbXMuZ3BTY3JhdGNo
KDEpKSk7CiAgICAgICAgICAgICBhZGQzMihqaXQsIHBhcmFtc1sxXS5ncHIoKSwgcGFyYW1zWzJd
LmdwcigpLCBwYXJhbXNbMF0uZ3ByKCkpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0
Y2hwb2ludCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywgMSwgMikgPT0g
Myk7CiB9CkBAIC03ODAzLDcgKzc4MTAsNyBAQCB2b2lkIHRlc3RQYXRjaHBvaW50RlBTY3JhdGNo
KCkKICAgICAgICAgICAgIENIRUNLKCFwYXJhbXMudW5hdmFpbGFibGVSZWdpc3RlcnMoKS5nZXQo
cGFyYW1zLmZwU2NyYXRjaCgxKSkpOwogICAgICAgICAgICAgYWRkMzIoaml0LCBwYXJhbXNbMV0u
Z3ByKCksIHBhcmFtc1syXS5ncHIoKSwgcGFyYW1zWzBdLmdwcigpKTsKICAgICAgICAgfSk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cGF0Y2hwb2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHBhdGNocG9pbnQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+
KHByb2MsIDEsIDIpID09IDMpOwogfQpAQCAtNzg0NSw3ICs3ODUyLDcgQEAgdm9pZCB0ZXN0UGF0
Y2hwb2ludExvdHNPZkxhdGVBbnlzKCkKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKIAogICAgIENIRUNLKGNv
bXBpbGVBbmRSdW48aW50Pihwcm9jKSA9PSAodGhpbmdzLnNpemUoKSAqICh0aGluZ3Muc2l6ZSgp
IC0gMSkpIC8gMik7CiB9CkBAIC03ODczLDcgKzc4ODAsNyBAQCB2b2lkIHRlc3RQYXRjaHBvaW50
QW55SW1tKFZhbHVlUmVwIHJlcCkKICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0
ZWRJbW0zMihzdGF0aWNfY2FzdDxpbnQzMl90PihwYXJhbXNbMl0udmFsdWUoKSkpLAogICAgICAg
ICAgICAgICAgIHBhcmFtc1sxXS5ncHIoKSwgcGFyYW1zWzBdLmdwcigpKTsKICAgICAgICAgfSk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcGF0Y2hwb2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxp
bnQ+KHByb2MsIDEpID09IDQzKTsKIH0KQEAgLTc4OTksNyArNzkwNiw3IEBAIHZvaWQgdGVzdFBh
dGNocG9pbnRNYW55SW1tcygpCiAgICAgICAgICAgICBDSEVDSyhwYXJhbXNbMl0gPT0gVmFsdWVS
ZXA6OmNvbnN0YW50KDQzMDAwMDAwMDAwMDAwbGwpKTsKICAgICAgICAgICAgIENIRUNLKHBhcmFt
c1szXSA9PSBWYWx1ZVJlcDo6Y29uc3RhbnQoYml0d2lzZV9jYXN0PGludDY0X3Q+KDQyLjUpKSk7
CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IDApKTsKIApAQCAtNzkyNSw3ICs3OTMyLDcgQEAgdm9pZCB0ZXN0UGF0Y2hwb2ludFdpdGhSZWdp
c3RlclJlc3VsdCgpCiAgICAgICAgICAgICBDSEVDSyhwYXJhbXNbMl0uaXNHUFIoKSk7CiAgICAg
ICAgICAgICBhZGQzMihqaXQsIHBhcmFtc1sxXS5ncHIoKSwgcGFyYW1zWzJdLmdwcigpLCBHUFJJ
bmZvOjpub25BcmdHUFIwKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQp
OwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIDEsIDIpID09IDMpOwogfQpA
QCAtNzk1MSw3ICs3OTU4LDcgQEAgdm9pZCB0ZXN0UGF0Y2hwb2ludFdpdGhTdGFja0FyZ3VtZW50
UmVzdQogICAgICAgICAgICAgaml0LmFkZDMyKHBhcmFtc1sxXS5ncHIoKSwgcGFyYW1zWzJdLmdw
cigpLCBqaXQuc2NyYXRjaFJlZ2lzdGVyKCkpOwogICAgICAgICAgICAgaml0LnN0b3JlMzIoaml0
LnNjcmF0Y2hSZWdpc3RlcigpLCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpz
dGFja1BvaW50ZXJSZWdpc3RlciwgMCkpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0
Y2hwb2ludCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywgMSwgMikgPT0g
Myk7CiB9CkBAIC03OTgwLDcgKzc5ODcsNyBAQCB2b2lkIHRlc3RQYXRjaHBvaW50V2l0aEFueVJl
c3VsdCgpCiAgICAgICAgICAgICBqaXQuY29udmVydEludDMyVG9Eb3VibGUoR1BSSW5mbzo6cmVn
VDAsIEZQUkluZm86OmZwUmVnVDApOwogICAgICAgICAgICAgaml0LnN0b3JlRG91YmxlKEZQUklu
Zm86OmZwUmVnVDAsIENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdp
c3RlciwgcGFyYW1zWzBdLm9mZnNldEZyb21GUCgpKSk7CiAgICAgICAgIH0pOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9p
bnQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBwYXRjaHBvaW50KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9j
LCAxLCAyKSA9PSAzKTsKIH0KQEAgLTgwMDIsNyArODAwOSw3IEBAIHZvaWQgdGVzdFNpbXBsZUNo
ZWNrKCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAg
ICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAwKSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwpAQCAtODAyMSw3ICs4
MDI4LDcgQEAgdm9pZCB0ZXN0Q2hlY2tGYWxzZSgpCiAgICAgICAgIFsmXSAoQ0NhbGxIZWxwZXJz
JiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgewogICAgICAgICAgICAgQ0hFQ0so
ISJUaGlzIHNob3VsZCBub3QgaGF2ZSBleGVjdXRlZCIpOwogICAgICAgICB9KTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxl
KHByb2MpOwpAQCAtODA0Nyw3ICs4MDU0LDcgQEAgdm9pZCB0ZXN0Q2hlY2tUcnVlKCkKICAgICAg
ICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgp
OwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAK
ICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwpAQCAtODA3OCw3ICs4MDg1LDcgQEAgdm9p
ZCB0ZXN0Q2hlY2tMZXNzVGhhbigpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9n
dWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9j
KTsKQEAgLTgxMjQsNyArODEzMSw3IEBAIHZvaWQgdGVzdENoZWNrTWVnYUNvbWJvKCkKICAgICAg
ICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgp
OwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAK
ICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwpAQCAtODE3OSw3ICs4MTg2LDcgQEAgdm9p
ZCB0ZXN0Q2hlY2tUcmlja3lNZWdhQ29tYm8oKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlv
bkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBp
bGUocHJvYyk7CkBAIC04MjQzLDcgKzgyNTAsNyBAQCB2b2lkIHRlc3RDaGVja1R3b01lZ2FDb21i
b3MoKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAg
ICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDApKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CkBAIC04MjkzLDcgKzgz
MDAsNyBAQCB2b2lkIHRlc3RDaGVja1R3b05vblJlZHVuZGFudE1lZ2FDb21ib3MoCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZDhTLCBPcmlnaW4oKSwgcHRy
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IDQyKSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksIGJy
YW5jaFByZWRpY2F0ZSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVl
bnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAgICAgCkBAIC04MzA5LDcgKzgzMTYsNyBAQCB2b2lkIHRl
c3RDaGVja1R3b05vblJlZHVuZGFudE1lZ2FDb21ib3MoCiAgICAgICAgICAgICBqaXQuZW1pdEZ1
bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0g
ICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIHRoZW5D
YXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDMpKTsKIAogICAg
IENoZWNrVmFsdWUqIGNoZWNrMiA9IGVsc2VDYXNlLT5hcHBlbmROZXc8Q2hlY2tWYWx1ZT4ocHJv
YywgQ2hlY2ssIE9yaWdpbigpLCBjaGVja1ByZWRpY2F0ZSk7CkBAIC04MzI0LDcgKzgzMzEsNyBA
QCB2b2lkIHRlc3RDaGVja1R3b05vblJlZHVuZGFudE1lZ2FDb21ib3MoCiAgICAgICAgICAgICBq
aXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAg
ICAgfSk7Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VD
YXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDUp
KTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CkBAIC04Mzc4LDcgKzgzODUsNyBA
QCB2b2lkIHRlc3RDaGVja0FkZEltbSgpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBp
bG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVja0FkZCkpOwogCkBAIC04NDE0LDcg
Kzg0MjEsNyBAQCB2b2lkIHRlc3RDaGVja0FkZEltbUNvbW11dGUoKQogICAgICAgICAgICAgaml0
LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAg
IH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tBZGQp
KTsKIApAQCAtODQ0OSw3ICs4NDU2LDcgQEAgdm9pZCB0ZXN0Q2hlY2tBZGRJbW1Tb21lUmVnaXN0
ZXIoKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAg
ICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9E
LCBPcmlnaW4oKSwgY2hlY2tBZGQpKTsKIApAQCAtODQ4Niw3ICs4NDkzLDcgQEAgdm9pZCB0ZXN0
Q2hlY2tBZGQoKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAg
ICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tBZGQpKTsKIApAQCAtODUxOSw3ICs4NTI2LDcgQEAgdm9p
ZCB0ZXN0Q2hlY2tBZGQ2NCgpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUo
KTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVja0FkZCkpOwogCkBAIC04NTQyLDcgKzg1NDks
NyBAQCB2b2lkIHRlc3RDaGVja0FkZEZvbGQoaW50IGEsIGludCBiKQogICAgICAgICBbJl0gKEND
YWxsSGVscGVycyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsKICAgICAgICAg
ICAgIENIRUNLKCEiU2hvdWxkIGhhdmUgYmVlbiBmb2xkZWQiKTsKICAgICAgICAgfSk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hl
Y2tBZGQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBjaGVja0FkZCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBA
IC04NTYzLDcgKzg1NzAsNyBAQCB2b2lkIHRlc3RDaGVja0FkZEZvbGRGYWlsKGludCBhLCBpbnQg
YikKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAg
aml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja0FkZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrQWRkKTsKIAogICAgIGF1
dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKQEAgLTg2MDIsNyArODYwOSw3IEBAIHZvaWQgdGVz
dENoZWNrQWRkQXJndW1lbnRBbGlhc2luZzY0KCkKICAgICBDaGVja1ZhbHVlKiBjaGVja0FkZDMg
PSByb290LT5hcHBlbmROZXc8Q2hlY2tWYWx1ZT4ocHJvYywgQ2hlY2tBZGQsIE9yaWdpbigpLCBj
aGVja0FkZDEsIGNoZWNrQWRkMik7CiAgICAgY2hlY2tBZGQzLT5zZXRHZW5lcmF0b3IoWyZdIChD
Q2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeyBqaXQu
b29wcygpOyB9KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIGNoZWNrQWRkMyk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrQWRkMyk7CiAKICAgICBDSEVDSyhjb21w
aWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIDEsIDIsIDMpID09IDgpOwogfQpAQCAtODY0NSw3ICs4
NjUyLDcgQEAgdm9pZCB0ZXN0Q2hlY2tBZGRBcmd1bWVudEFsaWFzaW5nMzIoKQogICAgIENoZWNr
VmFsdWUqIGNoZWNrQWRkMyA9IHJvb3QtPmFwcGVuZE5ldzxDaGVja1ZhbHVlPihwcm9jLCBDaGVj
a0FkZCwgT3JpZ2luKCksIGNoZWNrQWRkMSwgY2hlY2tBZGQyKTsKICAgICBjaGVja0FkZDMtPnNl
dEdlbmVyYXRvcihbJl0gKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBTdGFja21hcEdlbmVyYXRp
b25QYXJhbXMmKSB7IGppdC5vb3BzKCk7IH0pOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tBZGQzKTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tBZGQzKTsK
IAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgMSwgMiwgMykgPT0gOCk7
CiB9CkBAIC04NjcwLDcgKzg2NzcsNyBAQCB2b2lkIHRlc3RDaGVja0FkZFNlbGZPdmVyZmxvdzY0
KCkKICAgICBvcGFxdWVVc2UtPmFwcGVuZChDb25zdHJhaW5lZFZhbHVlKGFyZywgVmFsdWVSZXA6
OlNvbWVSZWdpc3RlcikpOwogICAgIG9wYXF1ZVVzZS0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxI
ZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeyB9KTsKIAotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNr
QWRkKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgY2hlY2tBZGQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAt
ODcwMSw3ICs4NzA4LDcgQEAgdm9pZCB0ZXN0Q2hlY2tBZGRTZWxmT3ZlcmZsb3czMigpCiAgICAg
b3BhcXVlVXNlLT5hcHBlbmQoQ29uc3RyYWluZWRWYWx1ZShhcmcsIFZhbHVlUmVwOjpTb21lUmVn
aXN0ZXIpKTsKICAgICBvcGFxdWVVc2UtPnNldEdlbmVyYXRvcihbJl0gKENDYWxsSGVscGVycyYs
IGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsgfSk7CiAKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja0FkZCk7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNo
ZWNrQWRkKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKQEAgLTg3MzQsNyAr
ODc0MSw3IEBAIHZvaWQgdGVzdENoZWNrU3ViSW1tKCkKICAgICAgICAgICAgIGppdC5lbWl0RnVu
Y3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGNoZWNrU3ViKSk7CiAKQEAg
LTg3NzYsNyArODc4Myw3IEBAIHZvaWQgdGVzdENoZWNrU3ViQmFkSW1tKCkKICAgICAgICAgICAg
IGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAg
ICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGNoZWNr
U3ViKSk7CiAKQEAgLTg4MTMsNyArODgyMCw3IEBAIHZvaWQgdGVzdENoZWNrU3ViKCkKICAgICAg
ICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgp
OwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCks
IGNoZWNrU3ViKSk7CiAKQEAgLTg4NTEsNyArODg1OCw3IEBAIHZvaWQgdGVzdENoZWNrU3ViNjQo
KQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBq
aXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBP
cmlnaW4oKSwgY2hlY2tTdWIpKTsKIApAQCAtODg3NCw3ICs4ODgxLDcgQEAgdm9pZCB0ZXN0Q2hl
Y2tTdWJGb2xkKGludCBhLCBpbnQgYikKICAgICAgICAgWyZdIChDQ2FsbEhlbHBlcnMmLCBjb25z
dCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7CiAgICAgICAgICAgICBDSEVDSyghIlNob3Vs
ZCBoYXZlIGJlZW4gZm9sZGVkIik7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrU3ViKTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tTdWIp
OwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAtODg5NSw3ICs4OTAyLDcg
QEAgdm9pZCB0ZXN0Q2hlY2tTdWJGb2xkRmFpbChpbnQgYSwgaW50IGIpCiAgICAgICAgICAgICBq
aXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAg
ICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgY2hlY2tTdWIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja1N1Yik7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxl
KHByb2MpOwogCkBAIC04OTIyLDcgKzg5MjksNyBAQCB2b2lkIHRlc3RDaGVja05lZygpCiAgICAg
ICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQo
KTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigp
LCBjaGVja05lZykpOwogCkBAIC04OTUyLDcgKzg5NTksNyBAQCB2b2lkIHRlc3RDaGVja05lZzY0
KCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAg
aml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwg
T3JpZ2luKCksIGNoZWNrTmVnKSk7CiAKQEAgLTg5ODksNyArODk5Niw3IEBAIHZvaWQgdGVzdENo
ZWNrTXVsKCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAg
ICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
SVRvRCwgT3JpZ2luKCksIGNoZWNrTXVsKSk7CiAKQEAgLTkwMzAsNyArOTAzNyw3IEBAIHZvaWQg
dGVzdENoZWNrTXVsTWVtb3J5KCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1
ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGNoZWNrTXVsKSk7CiAKQEAgLTkwNzcsNyArOTA4
NCw3IEBAIHZvaWQgdGVzdENoZWNrTXVsMigpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9u
RXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVja011bCkpOwogCkBAIC05MTEw
LDcgKzkxMTcsNyBAQCB2b2lkIHRlc3RDaGVja011bDY0KCkKICAgICAgICAgICAgIGppdC5lbWl0
RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGNoZWNrTXVsKSk7CiAK
QEAgLTkxMzMsNyArOTE0MCw3IEBAIHZvaWQgdGVzdENoZWNrTXVsRm9sZChpbnQgYSwgaW50IGIp
CiAgICAgICAgIFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFy
YW1zJikgewogICAgICAgICAgICAgQ0hFQ0soISJTaG91bGQgaGF2ZSBiZWVuIGZvbGRlZCIpOwog
ICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBjaGVja011bCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrTXVsKTsKIAogICAgIGF1dG8gY29kZSA9IGNv
bXBpbGUocHJvYyk7CiAKQEAgLTkxNTQsNyArOTE2MSw3IEBAIHZvaWQgdGVzdENoZWNrTXVsRm9s
ZEZhaWwoaW50IGEsIGludCBiKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3Vl
KCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrTXVsKTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hl
Y2tNdWwpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAtOTE5Myw3ICs5
MjAwLDcgQEAgdm9pZCB0ZXN0Q2hlY2tNdWxBcmd1bWVudEFsaWFzaW5nNjQoKQogICAgIENoZWNr
VmFsdWUqIGNoZWNrTXVsMyA9IHJvb3QtPmFwcGVuZE5ldzxDaGVja1ZhbHVlPihwcm9jLCBDaGVj
a011bCwgT3JpZ2luKCksIGNoZWNrTXVsMSwgY2hlY2tNdWwyKTsKICAgICBjaGVja011bDMtPnNl
dEdlbmVyYXRvcihbJl0gKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBTdGFja21hcEdlbmVyYXRp
b25QYXJhbXMmKSB7IGppdC5vb3BzKCk7IH0pOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tNdWwzKTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tNdWwzKTsK
IAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgMiwgMywgNCkgPT0gNzIp
OwogfQpAQCAtOTIzNiw3ICs5MjQzLDcgQEAgdm9pZCB0ZXN0Q2hlY2tNdWxBcmd1bWVudEFsaWFz
aW5nMzIoKQogICAgIENoZWNrVmFsdWUqIGNoZWNrTXVsMyA9IHJvb3QtPmFwcGVuZE5ldzxDaGVj
a1ZhbHVlPihwcm9jLCBDaGVja011bCwgT3JpZ2luKCksIGNoZWNrTXVsMSwgY2hlY2tNdWwyKTsK
ICAgICBjaGVja011bDMtPnNldEdlbmVyYXRvcihbJl0gKENDYWxsSGVscGVycyYgaml0LCBjb25z
dCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7IGppdC5vb3BzKCk7IH0pOwogCi0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tN
dWwzKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgY2hlY2tNdWwzKTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJv
YywgMiwgMywgNCkgPT0gNzIpOwogfQpAQCAtOTI2OCw3ICs5Mjc1LDcgQEAgdm9pZCB0ZXN0Q2hl
Y2tNdWw2NFNTaHIoKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAg
ICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tNdWwpKTsKIApAQCAtOTI5NCw3ICs5MzAxLDcgQEAg
dm9pZCBnZW5lcmljVGVzdENvbXBhcmUoCiAgICAgICAgIFZhbHVlKiByaWdodFZhbHVlID0gcmln
aHRGdW5jdG9yKHJvb3QsIHByb2MpOwogICAgICAgICBWYWx1ZSogY29tcGFyaXNvblJlc3VsdCA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgb3Bjb2RlLCBPcmlnaW4oKSwgbGVmdFZhbHVl
LCByaWdodFZhbHVlKTsKICAgICAgICAgCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBOb3RFcXVhbCwgT3JpZ2luKCksCkBAIC05MzE0
LDcgKzkzMjEsNyBAQCB2b2lkIGdlbmVyaWNUZXN0Q29tcGFyZSgKICAgICAgICAgVmFsdWUqIGxl
ZnRWYWx1ZSA9IGxlZnRGdW5jdG9yKHJvb3QsIHByb2MpOwogICAgICAgICBWYWx1ZSogcmlnaHRW
YWx1ZSA9IHJpZ2h0RnVuY3Rvcihyb290LCBwcm9jKTsKIAotICAgICAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgb3Bjb2RlLCBPcmlnaW4oKSwgbGVmdFZhbHVlLCByaWdodFZh
bHVlKSwKICAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRC
bG9jayhlbHNlQ2FzZSkpOwpAQCAtOTMyOCw5ICs5MzM1LDkgQEAgdm9pZCBnZW5lcmljVGVzdENv
bXBhcmUoCiAgICAgICAgICAgICAgICAgQ0hFQ0socGFyYW1zWzBdLmlzR1BSKCkpOwogICAgICAg
ICAgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDEpLCBwYXJhbXNb
MF0uZ3ByKCkpOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICAg
ICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBwYXRjaHBvaW50KTsKIAotICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTk1NjksNyArOTU3Niw3
IEBAIHZvaWQgdGVzdEVxdWFsRG91YmxlKGRvdWJsZSBsZWZ0LCBkb3VibGUKIHsKICAgICBQcm9j
ZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEVxdWFsLCBPcmlnaW4oKSwKQEAg
LTk1ODgsNyArOTU5NSw3IEBAIHZvaWQgdGVzdENhbGxTaW1wbGUoaW50IGEsIGludCBiKQogewog
ICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8Q0NhbGxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBJbnQzMiwg
T3JpZ2luKCksCkBAIC05NjA2LDE2ICs5NjEzLDE2IEBAIHZvaWQgdGVzdENhbGxSYXJlKGludCBh
LCBpbnQgYikKICAgICBCYXNpY0Jsb2NrKiBjb21tb24gPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAg
QmFzaWNCbG9jayogcmFyZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApLAogICAg
ICAgICBGcmVxdWVudGVkQmxvY2socmFyZSwgRnJlcXVlbmN5Q2xhc3M6OlJhcmUpLAogICAgICAg
ICBGcmVxdWVudGVkQmxvY2soY29tbW9uKSk7CiAKLSAgICBjb21tb24tPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIGNvbW1vbi0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjb21tb24tPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAwKSk7CiAgICAgCi0gICAgcmFyZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcmFyZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByYXJlLT5hcHBlbmROZXc8Q0NhbGxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBJbnQzMiwgT3JpZ2luKCksCkBAIC05NjMzLDE2ICs5NjQwLDE2IEBAIHZv
aWQgdGVzdENhbGxSYXJlTGl2ZShpbnQgYSwgaW50IGIsIGludCAKICAgICBCYXNpY0Jsb2NrKiBj
b21tb24gPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogcmFyZSA9IHByb2MuYWRk
QmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApLAogICAgICAgICBGcmVxdWVudGVkQmxvY2socmFyZSwg
RnJlcXVlbmN5Q2xhc3M6OlJhcmUpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2soY29tbW9uKSk7
CiAKLSAgICBjb21tb24tPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGNvbW1vbi0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjb21t
b24tPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAgICAgCi0g
ICAgcmFyZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcmFyZS0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByYXJl
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKQEAg
LTk2NjIsNyArOTY2OSw3IEBAIHZvaWQgdGVzdENhbGxTaW1wbGVQdXJlKGludCBhLCBpbnQgYikK
IHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PENDYWxsVmFsdWU+KAogICAgICAgICAgICAgcHJvYywgSW50
MzIsIE9yaWdpbigpLCBFZmZlY3RzOjpub25lKCksCkBAIC05NjkyLDcgKzk2OTksNyBAQCB2b2lk
IHRlc3RDYWxsRnVuY3Rpb25XaXRoSGVsbGFBcmd1bWVudHMoCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYml0d2lzZV9jYXN0PHZvaWQqPihm
dW5jdGlvbldpdGhIZWxsYUFyZ3VtZW50cykpKTsKICAgICBjYWxsLT5jaGlsZHJlbigpLmFwcGVu
ZFZlY3RvcihhcmdzKTsKICAgICAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYWxsKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FsbCk7CiAKICAgICBDSEVDSyhjb21waWxl
QW5kUnVuPGludD4ocHJvYykgPT0gZnVuY3Rpb25XaXRoSGVsbGFBcmd1bWVudHMoMSwgMiwgMywg
NCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDE3LCAxOCwgMTks
IDIwLCAyMSwgMjIsIDIzLCAyNCwgMjUsIDI2KSk7CiB9CkBAIC05NzAxLDcgKzk3MDgsNyBAQCB2
b2lkIHRlc3RSZXR1cm5Eb3VibGUoZG91YmxlIHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9j
OwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKSk7CiAKQEAgLTk3MTIsNyAr
OTcxOSw3IEBAIHZvaWQgdGVzdFJldHVybkZsb2F0KGZsb2F0IHZhbHVlKQogewogICAgIFByb2Nl
ZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpKTsKIApAQCAt
OTcyOCw3ICs5NzM1LDcgQEAgdm9pZCB0ZXN0Q2FsbFNpbXBsZURvdWJsZShkb3VibGUgYSwgZG91
YgogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8Q0NhbGxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBE
b3VibGUsIE9yaWdpbigpLApAQCAtOTc1NCw3ICs5NzYxLDcgQEAgdm9pZCB0ZXN0Q2FsbFNpbXBs
ZUZsb2F0KGZsb2F0IGEsIGZsb2F0IAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSkpOwogICAgIFZh
bHVlKiBmbG9hdFZhbHVlMSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNh
c3QsIE9yaWdpbigpLCBhcmd1bWVudDFpbnQzMik7CiAgICAgVmFsdWUqIGZsb2F0VmFsdWUyID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3Vt
ZW50MmludDMyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDQ2FsbFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IEZsb2F0LCBPcmlnaW4oKSwKQEAgLTk3ODQsNyArOTc5MSw3IEBAIHZvaWQgdGVzdENhbGxGdW5j
dGlvbldpdGhIZWxsYURvdWJsZUFyZ3UKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRy
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiaXR3aXNlX2Nhc3Q8dm9pZCo+KGZ1bmN0aW9uV2l0aEhl
bGxhRG91YmxlQXJndW1lbnRzKSkpOwogICAgIGNhbGwtPmNoaWxkcmVuKCkuYXBwZW5kVmVjdG9y
KGFyZ3MpOwogICAgIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIGNhbGwpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYWxsKTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48
ZG91YmxlPihwcm9jKSA9PSBmdW5jdGlvbldpdGhIZWxsYURvdWJsZUFyZ3VtZW50cygxLCAyLCAz
LCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4LCAx
OSwgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYpKTsKIH0KQEAgLTk4MDgsNyArOTgxNSw3IEBA
IHZvaWQgdGVzdENhbGxGdW5jdGlvbldpdGhIZWxsYUZsb2F0QXJndW0KICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiaXR3aXNlX2Nhc3Q8dm9p
ZCo+KGZ1bmN0aW9uV2l0aEhlbGxhRmxvYXRBcmd1bWVudHMpKSk7CiAgICAgY2FsbC0+Y2hpbGRy
ZW4oKS5hcHBlbmRWZWN0b3IoYXJncyk7CiAgICAgCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FsbCk7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNhbGwpOwogCiAgICAgQ0hF
Q0soY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYykgPT0gZnVuY3Rpb25XaXRoSGVsbGFGbG9hdEFy
Z3VtZW50cygxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1
LCAxNiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYpKTsKIH0KQEAgLTk4
MjAsNyArOTgyNyw3IEBAIHZvaWQgdGVzdENoaWxsRGl2KGludCBudW0sIGludCBkZW4sIGludCAK
ICAgICAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7CiAgICAgICAgIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgQ2hpbGxEaXYsIE9yaWdpbigpLApAQCAtOTgzOSw3
ICs5ODQ2LDcgQEAgdm9pZCB0ZXN0Q2hpbGxEaXYoaW50IG51bSwgaW50IGRlbiwgaW50IAogICAg
ICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKICAgICAgICAgCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgICAgICBwcm9jLCBDaGlsbERpdiwgT3JpZ2luKCksCkBAIC05ODU1LDcgKzk4
NjIsNyBAQCB2b2lkIHRlc3RDaGlsbERpdlR3aWNlKGludCBudW0xLCBpbnQgZGVuCiAgICAgUHJv
Y2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKIAot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCkBA
IC05ODg5LDcgKzk4OTYsNyBAQCB2b2lkIHRlc3RDaGlsbERpdjY0KGludDY0X3QgbnVtLCBpbnQ2
NF90CiAgICAgICAgIFByb2NlZHVyZSBwcm9jOwogICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwogICAgICAgICAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIENoaWxsRGl2LCBPcmlnaW4oKSwKQEAgLTk5
MDQsNyArOTkxMSw3IEBAIHZvaWQgdGVzdENoaWxsRGl2NjQoaW50NjRfdCBudW0sIGludDY0X3QK
ICAgICAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7CiAgICAgICAgIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgQ2hpbGxEaXYsIE9yaWdpbigpLApAQCAtOTkyNSw3
ICs5OTMyLDcgQEAgdm9pZCB0ZXN0TW9kQXJnKGludDY0X3QgdmFsdWUpCiAKICAgICBWYWx1ZSog
YXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgYXJndW1lbnQsIGFyZ3VtZW50KTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50NjRfdD4o
cHJvYywgdmFsdWUpKTsKIH0KQEAgLTk5NDMsNyArOTk1MCw3IEBAIHZvaWQgdGVzdE1vZEFyZ3Mo
aW50NjRfdCBudW1lcmF0b3IsIGludDYKICAgICBWYWx1ZSogYXJndW1lbnQxID0gcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjApOwogICAgIFZhbHVlKiBhcmd1bWVudDIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CiAgICAgVmFs
dWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwg
YXJndW1lbnQxLCBhcmd1bWVudDIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhj
b21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIG51bWVyYXRvciwgZGVub21pbmF0b3IpID09IG51
bWVyYXRvciAlIGRlbm9taW5hdG9yKTsKIH0KQEAgLTk5NjEsNyArOTk2OCw3IEBAIHZvaWQgdGVz
dE1vZEltbXMoaW50NjRfdCBudW1lcmF0b3IsIGludDYKICAgICBWYWx1ZSogYXJndW1lbnQxID0g
cm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIG51bWVyYXRvcik7
CiAgICAgVmFsdWUqIGFyZ3VtZW50MiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBkZW5vbWluYXRvcik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgYXJndW1lbnQxLCBhcmd1bWVudDIp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+
KHByb2MsIG51bWVyYXRvciwgZGVub21pbmF0b3IpID09IG51bWVyYXRvciAlIGRlbm9taW5hdG9y
KTsKIH0KQEAgLTk5NzcsNyArOTk4NCw3IEBAIHZvaWQgdGVzdE1vZEFyZzMyKGludDMyX3QgdmFs
dWUpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBU
cnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgVmFsdWUqIHJl
c3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgYXJndW1l
bnQsIGFyZ3VtZW50KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soIWNvbXBpbGVB
bmRSdW48aW50MzJfdD4ocHJvYywgdmFsdWUpKTsKIH0KQEAgLTk5OTcsNyArMTAwMDQsNyBAQCB2
b2lkIHRlc3RNb2RBcmdzMzIoaW50MzJfdCBudW1lcmF0b3IsIGluCiAgICAgVmFsdWUqIGFyZ3Vt
ZW50MiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMSkpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIGFyZ3VtZW50MSwgYXJndW1lbnQyKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9j
LCBudW1lcmF0b3IsIGRlbm9taW5hdG9yKSA9PSBudW1lcmF0b3IgJSBkZW5vbWluYXRvcik7CiB9
CkBAIC0xMDAxNSw3ICsxMDAyMiw3IEBAIHZvaWQgdGVzdE1vZEltbXMzMihpbnQzMl90IG51bWVy
YXRvciwgaW4KICAgICBWYWx1ZSogYXJndW1lbnQxID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIG51bWVyYXRvcik7CiAgICAgVmFsdWUqIGFyZ3VtZW50MiA9
IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBkZW5vbWluYXRv
cik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9k
LCBPcmlnaW4oKSwgYXJndW1lbnQxLCBhcmd1bWVudDIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAK
ICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIG51bWVyYXRvciwgZGVub21p
bmF0b3IpID09IG51bWVyYXRvciAlIGRlbm9taW5hdG9yKTsKIH0KQEAgLTEwMDI3LDcgKzEwMDM0
LDcgQEAgdm9pZCB0ZXN0Q2hpbGxNb2RBcmcoaW50NjRfdCB2YWx1ZSkKIAogICAgIFZhbHVlKiBh
cmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBDaGlsbE1vZCwgT3JpZ2luKCksIGFyZ3VtZW50LCBhcmd1bWVu
dCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludDY0
X3Q+KHByb2MsIHZhbHVlKSk7CiB9CkBAIC0xMDA0MCw3ICsxMDA0Nyw3IEBAIHZvaWQgdGVzdENo
aWxsTW9kQXJncyhpbnQ2NF90IG51bWVyYXRvciwKICAgICBWYWx1ZSogYXJndW1lbnQxID0gcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApOwogICAgIFZhbHVlKiBhcmd1bWVudDIgPSByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CiAg
ICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2hpbGxNb2Qs
IE9yaWdpbigpLCBhcmd1bWVudDEsIGFyZ3VtZW50Mik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAog
ICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgbnVtZXJhdG9yLCBkZW5vbWlu
YXRvcikgPT0gY2hpbGxNb2QobnVtZXJhdG9yLCBkZW5vbWluYXRvcikpOwogfQpAQCAtMTAwNTMs
NyArMTAwNjAsNyBAQCB2b2lkIHRlc3RDaGlsbE1vZEltbXMoaW50NjRfdCBudW1lcmF0b3IsCiAg
ICAgVmFsdWUqIGFyZ3VtZW50MSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBudW1lcmF0b3IpOwogICAgIFZhbHVlKiBhcmd1bWVudDIgPSByb290LT5hcHBl
bmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgZGVub21pbmF0b3IpOwogICAgIFZh
bHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENoaWxsTW9kLCBPcmln
aW4oKSwgYXJndW1lbnQxLCBhcmd1bWVudDIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBD
SEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIG51bWVyYXRvciwgZGVub21pbmF0b3Ip
ID09IGNoaWxsTW9kKG51bWVyYXRvciwgZGVub21pbmF0b3IpKTsKIH0KQEAgLTEwMDY2LDcgKzEw
MDczLDcgQEAgdm9pZCB0ZXN0Q2hpbGxNb2RBcmczMihpbnQzMl90IHZhbHVlKQogICAgIFZhbHVl
KiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIENoaWxsTW9kLCBPcmlnaW4oKSwgYXJndW1lbnQsIGFyZ3Vt
ZW50KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50
MzJfdD4ocHJvYywgdmFsdWUpKTsKIH0KQEAgLTEwMDgxLDcgKzEwMDg4LDcgQEAgdm9pZCB0ZXN0
Q2hpbGxNb2RBcmdzMzIoaW50MzJfdCBudW1lcmF0bwogICAgIFZhbHVlKiBhcmd1bWVudDIgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjEpKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBDaGlsbE1vZCwgT3JpZ2luKCksIGFyZ3VtZW50MSwgYXJndW1lbnQyKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1
bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBu
dW1lcmF0b3IsIGRlbm9taW5hdG9yKSA9PSBjaGlsbE1vZChudW1lcmF0b3IsIGRlbm9taW5hdG9y
KSk7CiB9CkBAIC0xMDA5NCw3ICsxMDEwMSw3IEBAIHZvaWQgdGVzdENoaWxsTW9kSW1tczMyKGlu
dDMyX3QgbnVtZXJhdG8KICAgICBWYWx1ZSogYXJndW1lbnQxID0gcm9vdC0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIG51bWVyYXRvcik7CiAgICAgVmFsdWUqIGFyZ3Vt
ZW50MiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBkZW5v
bWluYXRvcik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQ2hpbGxNb2QsIE9yaWdpbigpLCBhcmd1bWVudDEsIGFyZ3VtZW50Mik7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgbnVtZXJh
dG9yLCBkZW5vbWluYXRvcikgPT0gY2hpbGxNb2QobnVtZXJhdG9yLCBkZW5vbWluYXRvcikpOwog
fQpAQCAtMTAxMDUsNyArMTAxMTIsNyBAQCB2b2lkIHRlc3RTd2l0Y2godW5zaWduZWQgZGVncmVl
LCB1bnNpZ25lCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKIAogICAg
IEJhc2ljQmxvY2sqIHRlcm1pbmF0ZSA9IHByb2MuYWRkQmxvY2soKTsKLSAgICB0ZXJtaW5hdGUt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRlcm1pbmF0ZS0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0ZXJtaW5h
dGUtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTEw
MTE2LDcgKzEwMTIzLDcgQEAgdm9pZCB0ZXN0U3dpdGNoKHVuc2lnbmVkIGRlZ3JlZSwgdW5zaWdu
ZQogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGRlZ3JlZTsgKytpKSB7CiAgICAgICAg
IEJhc2ljQmxvY2sqIG5ld0Jsb2NrID0gcHJvYy5hZGRCbG9jaygpOwotICAgICAgICBuZXdCbG9j
ay0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIG5ld0Jsb2NrLT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICAgICAgbmV3QmxvY2stPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPigKICAgICAgICAgICAg
ICAgICBwcm9jLCBPcmlnaW4oKSwgKGkgJiAxKSA/IEdQUkluZm86OmFyZ3VtZW50R1BSMiA6IEdQ
UkluZm86OmFyZ3VtZW50R1BSMSkpOwpAQCAtMTAxNDcsNyArMTAxNTQsNyBAQCB2b2lkIHRlc3RT
d2l0Y2hDaGlsbERpdih1bnNpZ25lZCBkZWdyZWUsCiAgICAgVmFsdWUqIHJpZ2h0ID0gcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjIpOwogCiAgICAgQmFzaWNCbG9jayogdGVybWluYXRlID0gcHJvYy5hZGRCbG9jaygp
OwotICAgIHRlcm1pbmF0ZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGVybWluYXRl
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHRlcm1pbmF0ZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDApKTsKIApAQCAtMTAxNTksNyArMTAxNjYsNyBAQCB2b2lkIHRlc3RTd2l0Y2hDaGlsbERp
dih1bnNpZ25lZCBkZWdyZWUsCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGRlZ3JlZTsg
KytpKSB7CiAgICAgICAgIEJhc2ljQmxvY2sqIG5ld0Jsb2NrID0gcHJvYy5hZGRCbG9jaygpOwog
Ci0gICAgICAgIG5ld0Jsb2NrLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgbmV3
QmxvY2stPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgICAgICBuZXdCbG9jay0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgICAgICBwcm9jLCBDaGlsbERpdiwgT3JpZ2luKCksIChpICYgMSkgPyByaWdodCA6IGxl
ZnQsIChpICYgMSkgPyBsZWZ0IDogcmlnaHQpKTsKQEAgLTEwMTcwLDcgKzEwMTc3LDEwIEBAIHZv
aWQgdGVzdFN3aXRjaENoaWxsRGl2KHVuc2lnbmVkIGRlZ3JlZSwKICAgICBhdXRvIGNvZGUgPSBj
b21waWxlKHByb2MpOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGRlZ3JlZTsgKytp
KSB7Ci0gICAgICAgIENIRUNLKGludm9rZTxpbnQzMl90PigqY29kZSwgaSAqIGdhcCwgNDIsIDEx
KSA9PSAoKGkgJiAxKSA/IDExLzQyIDogNDIvMTEpKTsKKyAgICAgICAgZGF0YUxvZygiaSA9ICIs
IGksICJcbiIpOworICAgICAgICBpbnQzMl90IHJlc3VsdCA9IGludm9rZTxpbnQzMl90PigqY29k
ZSwgaSAqIGdhcCwgNDIsIDExKTsKKyAgICAgICAgZGF0YUxvZygicmVzdWx0ID0gIiwgcmVzdWx0
LCAiXG4iKTsKKyAgICAgICAgQ0hFQ0socmVzdWx0ID09ICgoaSAmIDEpID8gMTEvNDIgOiA0Mi8x
MSkpOwogICAgICAgICBpZiAoZ2FwID4gMSkgewogICAgICAgICAgICAgQ0hFQ0soIWludm9rZTxp
bnQzMl90PigqY29kZSwgaSAqIGdhcCArIDEsIDQyLCAxMSkpOwogICAgICAgICAgICAgQ0hFQ0so
IWludm9rZTxpbnQzMl90PigqY29kZSwgaSAqIGdhcCAtIDEsIDQyLCAxMSkpOwpAQCAtMTAxODgs
NyArMTAxOTgsNyBAQCB2b2lkIHRlc3RTd2l0Y2hUYXJnZXR0aW5nU2FtZUJsb2NrKCkKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogCiAgICAgQmFzaWNCbG9jayogdGVy
bWluYXRlID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHRlcm1pbmF0ZS0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgdGVybWluYXRlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRlcm1pbmF0ZS0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDUpKTsKIApAQCAtMTAxOTgsNyArMTAyMDgsNyBA
QCB2b2lkIHRlc3RTd2l0Y2hUYXJnZXR0aW5nU2FtZUJsb2NrKCkKICAgICAgICAgRnJlcXVlbnRl
ZEJsb2NrKHRlcm1pbmF0ZSkpOwogCiAgICAgQmFzaWNCbG9jayogb3RoZXJUYXJnZXQgPSBwcm9j
LmFkZEJsb2NrKCk7Ci0gICAgb3RoZXJUYXJnZXQtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIG90aGVyVGFyZ2V0LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIG90aGVyVGFyZ2V0LT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpKTsKICAgICBzd2l0Y2hWYWx1ZS0+YXBwZW5kQ2FzZShT
d2l0Y2hDYXNlKDMsIEZyZXF1ZW50ZWRCbG9jayhvdGhlclRhcmdldCkpKTsKQEAgLTEwMjE4LDcg
KzEwMjI4LDcgQEAgdm9pZCB0ZXN0U3dpdGNoVGFyZ2V0dGluZ1NhbWVCbG9ja0ZvbGRQYQogICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAKICAgICBCYXNpY0Jsb2NrKiB0
ZXJtaW5hdGUgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgdGVybWluYXRlLT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICB0ZXJtaW5hdGUtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGVybWluYXRlLT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpKTsKIApAQCAtMTAyMjksNyArMTAyMzks
NyBAQCB2b2lkIHRlc3RTd2l0Y2hUYXJnZXR0aW5nU2FtZUJsb2NrRm9sZFBhCiAgICAgICAgIEZy
ZXF1ZW50ZWRCbG9jayh0ZXJtaW5hdGUpKTsKIAogICAgIEJhc2ljQmxvY2sqIG90aGVyVGFyZ2V0
ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIG90aGVyVGFyZ2V0LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICBvdGhlclRhcmdldC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgc3dpdGNoVmFsdWUtPmFwcGVu
ZENhc2UoU3dpdGNoQ2FzZSgzLCBGcmVxdWVudGVkQmxvY2sob3RoZXJUYXJnZXQpKSk7CiAgICAg
c3dpdGNoVmFsdWUtPmFwcGVuZENhc2UoU3dpdGNoQ2FzZSgxMywgRnJlcXVlbnRlZEJsb2NrKG90
aGVyVGFyZ2V0KSkpOwpAQCAtMTAyNDYsNyArMTAyNTYsNyBAQCB2b2lkIHRlc3RUcnVuY0ZvbGQo
aW50NjRfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIFRydW5jLCBPcmlnaW4oKSwKQEAgLTEwMjU5LDcgKzEwMjY5LDcgQEAgdm9pZCB0ZXN0
WkV4dDMyKGludDMyX3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBaRXh0MzIsIE9yaWdpbigpLApAQCAtMTAyNzQsNyArMTAyODQsNyBAQCB2
b2lkIHRlc3RaRXh0MzJGb2xkKGludDMyX3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBaRXh0MzIsIE9yaWdpbigpLApAQCAtMTAyODcsNyAr
MTAyOTcsNyBAQCB2b2lkIHRlc3RTRXh0MzIoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1
cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNFeHQzMiwgT3JpZ2luKCksCkBAIC0x
MDMwMiw3ICsxMDMxMiw3IEBAIHZvaWQgdGVzdFNFeHQzMkZvbGQoaW50MzJfdCB2YWx1ZSkKIHsK
ICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNFeHQzMiwgT3Jp
Z2luKCksCkBAIC0xMDMxNSw3ICsxMDMyNSw3IEBAIHZvaWQgdGVzdFRydW5jWkV4dDMyKGludDMy
X3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBUcnVuYywgT3JpZ2luKCksCkBAIC0xMDMzMiw3ICsxMDM0Miw3IEBAIHZvaWQgdGVzdFRydW5j
U0V4dDMyKGludDMyX3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCkBAIC0xMDM0OSw3ICsxMDM1OSw3IEBAIHZv
aWQgdGVzdFNFeHQ4KGludDMyX3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
CiAgICAgICAgICAgICBwcm9jLCBTRXh0OCwgT3JpZ2luKCksCkBAIC0xMDM2NCw3ICsxMDM3NCw3
IEBAIHZvaWQgdGVzdFNFeHQ4Rm9sZChpbnQzMl90IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBw
cm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU0V4dDgsIE9yaWdpbigpLApAQCAtMTAzNzcs
NyArMTAzODcsNyBAQCB2b2lkIHRlc3RTRXh0OFNFeHQ4KGludDMyX3QgdmFsdWUpCiB7CiAgICAg
UHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTRXh0OCwgT3JpZ2luKCks
CkBAIC0xMDM5NCw3ICsxMDQwNCw3IEBAIHZvaWQgdGVzdFNFeHQ4U0V4dDE2KGludDMyX3QgdmFs
dWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTRXh0
OCwgT3JpZ2luKCksCkBAIC0xMDQxMSw3ICsxMDQyMSw3IEBAIHZvaWQgdGVzdFNFeHQ4Qml0QW5k
KGludDMyX3QgdmFsdWUsIGludDMKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIFNFeHQ4LCBPcmlnaW4oKSwKQEAgLTEwNDI5LDcgKzEwNDM5LDcgQEAgdm9p
ZCB0ZXN0Qml0QW5kU0V4dDgoaW50MzJfdCB2YWx1ZSwgaW50MwogewogICAgIFByb2NlZHVyZSBw
cm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTEwNDQ3
LDcgKzEwNDU3LDcgQEAgdm9pZCB0ZXN0U0V4dDE2KGludDMyX3QgdmFsdWUpCiB7CiAgICAgUHJv
Y2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTRXh0MTYsIE9yaWdpbigpLApA
QCAtMTA0NjIsNyArMTA0NzIsNyBAQCB2b2lkIHRlc3RTRXh0MTZGb2xkKGludDMyX3QgdmFsdWUp
CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTRXh0MTYs
IE9yaWdpbigpLApAQCAtMTA0NzUsNyArMTA0ODUsNyBAQCB2b2lkIHRlc3RTRXh0MTZTRXh0MTYo
aW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIFNFeHQxNiwgT3JpZ2luKCksCkBAIC0xMDQ5Miw3ICsxMDUwMiw3IEBAIHZvaWQgdGVz
dFNFeHQxNlNFeHQ4KGludDMyX3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
CiAgICAgICAgICAgICBwcm9jLCBTRXh0MTYsIE9yaWdpbigpLApAQCAtMTA1MDksNyArMTA1MTks
NyBAQCB2b2lkIHRlc3RTRXh0MTZCaXRBbmQoaW50MzJfdCB2YWx1ZSwgaW50CiB7CiAgICAgUHJv
Y2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTRXh0MTYsIE9yaWdpbigpLApA
QCAtMTA1MjcsNyArMTA1MzcsNyBAQCB2b2lkIHRlc3RCaXRBbmRTRXh0MTYoaW50MzJfdCB2YWx1
ZSwgaW50CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBC
aXRBbmQsIE9yaWdpbigpLApAQCAtMTA1NDUsNyArMTA1NTUsNyBAQCB2b2lkIHRlc3RTRXh0MzJC
aXRBbmQoaW50MzJfdCB2YWx1ZSwgaW50CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBTRXh0MzIsIE9yaWdpbigpLApAQCAtMTA1NjMsNyArMTA1NzMsNyBA
QCB2b2lkIHRlc3RCaXRBbmRTRXh0MzIoaW50MzJfdCB2YWx1ZSwgaW50CiB7CiAgICAgUHJvY2Vk
dXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAt
MTA1ODEsNyArMTA1OTEsNyBAQCB2b2lkIHRlc3RCYXNpY1NlbGVjdCgpCiB7CiAgICAgUHJvY2Vk
dXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLApAQCAt
MTA2MDMsNyArMTA2MTMsNyBAQCB2b2lkIHRlc3RTZWxlY3RUZXN0KCkKIHsKICAgICBQcm9jZWR1
cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0x
MDYyMiw3ICsxMDYzMiw3IEBAIHZvaWQgdGVzdFNlbGVjdENvbXBhcmVEb3VibGUoKQogewogICAg
IFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4o
KSwKQEAgLTEwNjUzLDcgKzEwNjYzLDcgQEAgdm9pZCB0ZXN0U2VsZWN0Q29tcGFyZUZsb2F0KGZs
b2F0IGEsIGZsbwogICAgIFZhbHVlKiBmbG9hdFZhbHVlMSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDFpbnQzMik7CiAgICAgVmFs
dWUqIGZsb2F0VmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2Fz
dCwgT3JpZ2luKCksIGFyZ3VtZW50MmludDMyKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0xMDY5MSw3ICsxMDcwMSw3IEBA
IHZvaWQgdGVzdFNlbGVjdENvbXBhcmVGbG9hdFRvRG91YmxlKGZsb2EKICAgICBWYWx1ZSogZG91
YmxlVmFsdWUxID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBP
cmlnaW4oKSwgZmxvYXRWYWx1ZTEpOwogICAgIFZhbHVlKiBkb3VibGVWYWx1ZTIgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBmbG9hdFZhbHVl
Mik7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9y
aWdpbigpLApAQCAtMTA3MTksNyArMTA3MjksNyBAQCB2b2lkIHRlc3RTZWxlY3REb3VibGUoKQog
ewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBP
cmlnaW4oKSwKQEAgLTEwNzQxLDcgKzEwNzUxLDcgQEAgdm9pZCB0ZXN0U2VsZWN0RG91YmxlVGVz
dCgpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTZWxl
Y3QsIE9yaWdpbigpLApAQCAtMTA3NjAsNyArMTA3NzAsNyBAQCB2b2lkIHRlc3RTZWxlY3REb3Vi
bGVDb21wYXJlRG91YmxlKCkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0xMDc5MCw3ICsxMDgwMCw3IEBAIHZvaWQg
dGVzdFNlbGVjdERvdWJsZUNvbXBhcmVGbG9hdChmbG9hdCAKICAgICBWYWx1ZSogZmxvYXRWYWx1
ZTEgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwg
YXJndW1lbnQxaW50MzIpOwogICAgIFZhbHVlKiBmbG9hdFZhbHVlMiA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDJpbnQzMik7CiAK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigp
LApAQCAtMTA4MjEsNyArMTA4MzEsNyBAQCB2b2lkIHRlc3RTZWxlY3RGbG9hdENvbXBhcmVGbG9h
dChmbG9hdCBhCiAgICAgVmFsdWUqIGZsb2F0VmFsdWUzID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50M2ludDMyKTsKICAgICBWYWx1
ZSogZmxvYXRWYWx1ZTQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0
LCBPcmlnaW4oKSwgYXJndW1lbnQ0aW50MzIpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTEwODQ3LDcgKzEwODU3LDcgQEAg
dm9pZCB0ZXN0U2VsZWN0RG91YmxlQ29tcGFyZURvdWJsZShib29sIAogICAgICAgICBWYWx1ZSog
YXJnMiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
RlBSSW5mbzo6YXJndW1lbnRGUFIyKTsKICAgICAgICAgVmFsdWUqIGFyZzMgPSByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50
RlBSMyk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0xMDg4Myw3ICsxMDg5Myw3IEBAIHZv
aWQgdGVzdFNlbGVjdERvdWJsZUNvbXBhcmVEb3VibGUoYm9vbCAKICAgICAgICAga2VlcFZhbHVl
c0xpdmUtPmFwcGVuZChDb25zdHJhaW5lZFZhbHVlKGFyZzIsIFZhbHVlUmVwOjpTb21lUmVnaXN0
ZXIpKTsKICAgICAgICAga2VlcFZhbHVlc0xpdmUtPnNldEdlbmVyYXRvcihbJl0gKENDYWxsSGVs
cGVycyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsgfSk7CiAKLSAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0KTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdCk7CiAgICAgICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAK
ICAgICAgICAgZm9yIChhdXRvJiBsZWZ0IDogZmxvYXRpbmdQb2ludE9wZXJhbmRzPGRvdWJsZT4o
KSkgewpAQCAtMTA5MTAsNyArMTA5MjAsNyBAQCB2b2lkIHRlc3RTZWxlY3REb3VibGVDb21wYXJl
RG91YmxlKGJvb2wgCiAgICAgICAgIGtlZXBWYWx1ZXNMaXZlLT5hcHBlbmQoQ29uc3RyYWluZWRW
YWx1ZShhcmczLCBWYWx1ZVJlcDo6U29tZVJlZ2lzdGVyKSk7CiAgICAgICAgIGtlZXBWYWx1ZXNM
aXZlLT5zZXRHZW5lcmF0b3IoWyZdIChDQ2FsbEhlbHBlcnMmLCBjb25zdCBTdGFja21hcEdlbmVy
YXRpb25QYXJhbXMmKSB7IH0pOwogCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogICAgICAg
ICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCiAgICAgICAgIGZvciAoYXV0byYgbGVmdCA6
IGZsb2F0aW5nUG9pbnRPcGVyYW5kczxkb3VibGU+KCkpIHsKQEAgLTEwOTM4LDcgKzEwOTQ4LDcg
QEAgdm9pZCB0ZXN0U2VsZWN0RG91YmxlQ29tcGFyZURvdWJsZShib29sIAogICAgICAgICBrZWVw
VmFsdWVzTGl2ZS0+YXBwZW5kKENvbnN0cmFpbmVkVmFsdWUoYXJnMywgVmFsdWVSZXA6OlNvbWVS
ZWdpc3RlcikpOwogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+c2V0R2VuZXJhdG9yKFsmXSAoQ0Nh
bGxIZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeyB9KTsKIAotICAg
ICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9j
KTsKIAogICAgICAgICBmb3IgKGF1dG8mIGxlZnQgOiBmbG9hdGluZ1BvaW50T3BlcmFuZHM8ZG91
YmxlPigpKSB7CkBAIC0xMDk1NSw3ICsxMDk2NSw3IEBAIHZvaWQgdGVzdFNlbGVjdERvdWJsZUNv
bXBhcmVEb3VibGUoYm9vbCAKICAgICAgICAgVmFsdWUqIGFyZzEgPSByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMSk7
CiAgICAgICAgIFZhbHVlKiBhcmcyID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjIpOwogCi0gICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9y
aWdpbigpLApAQCAtMTA5OTAsNyArMTEwMDAsNyBAQCB2b2lkIHRlc3RTZWxlY3REb3VibGVDb21w
YXJlRG91YmxlKGJvb2wgCiAgICAgICAgIGtlZXBWYWx1ZXNMaXZlLT5hcHBlbmQoQ29uc3RyYWlu
ZWRWYWx1ZShhcmcyLCBWYWx1ZVJlcDo6U29tZVJlZ2lzdGVyKSk7CiAgICAgICAgIGtlZXBWYWx1
ZXNMaXZlLT5zZXRHZW5lcmF0b3IoWyZdIChDQ2FsbEhlbHBlcnMmLCBjb25zdCBTdGFja21hcEdl
bmVyYXRpb25QYXJhbXMmKSB7IH0pOwogCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogICAg
ICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCiAgICAgICAgIGZvciAoYXV0byYgbGVm
dCA6IGZsb2F0aW5nUG9pbnRPcGVyYW5kczxkb3VibGU+KCkpIHsKQEAgLTExMDMzLDcgKzExMDQz
LDcgQEAgdm9pZCB0ZXN0U2VsZWN0RmxvYXRDb21wYXJlRmxvYXQoYm9vbCAoKgogICAgICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAg
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjMpKSk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0x
MTA3Nyw3ICsxMTA4Nyw3IEBAIHZvaWQgdGVzdFNlbGVjdEZsb2F0Q29tcGFyZUZsb2F0KGJvb2wg
KCoKICAgICAgICAga2VlcFZhbHVlc0xpdmUtPmFwcGVuZChDb25zdHJhaW5lZFZhbHVlKGFyZzIs
IFZhbHVlUmVwOjpTb21lUmVnaXN0ZXIpKTsKICAgICAgICAga2VlcFZhbHVlc0xpdmUtPnNldEdl
bmVyYXRvcihbJl0gKENDYWxsSGVscGVycyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFt
cyYpIHsgfSk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgICAgIGF1dG8gY29k
ZSA9IGNvbXBpbGUocHJvYyk7CiAKICAgICAgICAgZm9yIChhdXRvJiBsZWZ0IDogZmxvYXRpbmdQ
b2ludE9wZXJhbmRzPGZsb2F0PigpKSB7CkBAIC0xMTExMiw3ICsxMTEyMiw3IEBAIHZvaWQgdGVz
dFNlbGVjdEZsb2F0Q29tcGFyZUZsb2F0KGJvb2wgKCoKICAgICAgICAga2VlcFZhbHVlc0xpdmUt
PmFwcGVuZChDb25zdHJhaW5lZFZhbHVlKGFyZzMsIFZhbHVlUmVwOjpTb21lUmVnaXN0ZXIpKTsK
ICAgICAgICAga2VlcFZhbHVlc0xpdmUtPnNldEdlbmVyYXRvcihbJl0gKENDYWxsSGVscGVycyYs
IGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsgfSk7CiAKLSAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsK
KyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdCk7CiAgICAgICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKICAgICAg
ICAgZm9yIChhdXRvJiBsZWZ0IDogZmxvYXRpbmdQb2ludE9wZXJhbmRzPGZsb2F0PigpKSB7CkBA
IC0xMTE0OCw3ICsxMTE1OCw3IEBAIHZvaWQgdGVzdFNlbGVjdEZsb2F0Q29tcGFyZUZsb2F0KGJv
b2wgKCoKICAgICAgICAga2VlcFZhbHVlc0xpdmUtPmFwcGVuZChDb25zdHJhaW5lZFZhbHVlKGFy
ZzMsIFZhbHVlUmVwOjpTb21lUmVnaXN0ZXIpKTsKICAgICAgICAga2VlcFZhbHVlc0xpdmUtPnNl
dEdlbmVyYXRvcihbJl0gKENDYWxsSGVscGVycyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBh
cmFtcyYpIHsgfSk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgICAgIGF1dG8g
Y29kZSA9IGNvbXBpbGUocHJvYyk7CiAKICAgICAgICAgZm9yIChhdXRvJiBsZWZ0IDogZmxvYXRp
bmdQb2ludE9wZXJhbmRzPGZsb2F0PigpKSB7CkBAIC0xMTE3MSw3ICsxMTE4MSw3IEBAIHZvaWQg
dGVzdFNlbGVjdEZsb2F0Q29tcGFyZUZsb2F0KGJvb2wgKCoKICAgICAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIyKSkpOwogCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLApAQCAtMTEyMTIsNyArMTEy
MjIsNyBAQCB2b2lkIHRlc3RTZWxlY3RGbG9hdENvbXBhcmVGbG9hdChib29sICgqCiAgICAgICAg
IGtlZXBWYWx1ZXNMaXZlLT5hcHBlbmQoQ29uc3RyYWluZWRWYWx1ZShhcmcyLCBWYWx1ZVJlcDo6
U29tZVJlZ2lzdGVyKSk7CiAgICAgICAgIGtlZXBWYWx1ZXNMaXZlLT5zZXRHZW5lcmF0b3IoWyZd
IChDQ2FsbEhlbHBlcnMmLCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7IH0pOwog
Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogICAgICAgICBhdXRvIGNvZGUgPSBjb21waWxl
KHByb2MpOwogCiAgICAgICAgIGZvciAoYXV0byYgbGVmdCA6IGZsb2F0aW5nUG9pbnRPcGVyYW5k
czxmbG9hdD4oKSkgewpAQCAtMTEyMzksNyArMTEyNDksNyBAQCB2b2lkIHRlc3RTZWxlY3RGb2xk
KGludHB0cl90IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTExMjU5LDcgKzExMjY5LDcgQEAgdm9pZCB0
ZXN0U2VsZWN0SW52ZXJ0KCkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0xMTMxMiw3ICsxMTMyMiw3IEBAIHZvaWQg
dGVzdENoZWNrU2VsZWN0KCkKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7CiAg
ICAgCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBA
IC0xMTM4Myw3ICsxMTM5Myw3IEBAIHZvaWQgdGVzdENoZWNrU2VsZWN0Q2hlY2tTZWxlY3QoKQog
ICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKICAgICAKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTExNDE5LDcgKzExNDI5LDcg
QEAgdm9pZCB0ZXN0UG93RG91YmxlQnlJbnRlZ2VyTG9vcChkb3VibGUgeAogICAgICAgICByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMCkpOwogICAgIGF1dG8gcmVzdWx0ID0gcG93RG91YmxlSW50MzIocHJvYywgcm9v
dCwgT3JpZ2luKCksIHgsIHkpOwogICAgIEJhc2ljQmxvY2sqIGNvbnRpbnVhdGlvbiA9IHJlc3Vs
dC5maXJzdDsKLSAgICBjb250aW51YXRpb24tPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdC5zZWNvbmQpOworICAgIGNvbnRpbnVhdGlvbi0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdC5zZWNvbmQp
OwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIHhP
cGVyYW5kLCB5T3BlcmFuZCksIGIzUG93KHhPcGVyYW5kLCB5T3BlcmFuZCkpKTsKIH0KQEAgLTEx
NDI5LDcgKzExNDM5LDcgQEAgdm9pZCB0ZXN0VHJ1bmNPckhpZ2goKQogICAgIFByb2NlZHVyZSBw
cm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCkBAIC0xMTQ0
Nyw3ICsxMTQ1Nyw3IEBAIHZvaWQgdGVzdFRydW5jT3JMb3coKQogICAgIFByb2NlZHVyZSBwcm9j
OwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCkBAIC0xMTQ2NSw3
ICsxMTQ3NSw3IEBAIHZvaWQgdGVzdEJpdEFuZE9ySGlnaCgpCiAgICAgUHJvY2VkdXJlIHByb2M7
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0xMTQ4NCw3
ICsxMTQ5NCw3IEBAIHZvaWQgdGVzdEJpdEFuZE9yTG93KCkKICAgICBQcm9jZWR1cmUgcHJvYzsK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTExNTA3LDIw
ICsxMTUxNywyMCBAQCB2b2lkIHRlc3RCcmFuY2g2NEVxdWFsKGludDY0X3QgbGVmdCwgaW50CiAK
ICAgICBWYWx1ZSogYXJnMSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBWYWx1ZSogYXJnMiA9IHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIxKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRXF1YWwsIE9yaWdpbigp
LCBhcmcxLCBhcmcyKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVl
bnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKICAgICBib29sIHRydWVSZXN1bHQgPSB0cnVlOwotICAg
IHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICB0aGVuQ2FzZS0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgIHByb2MsIExv
YWQ4WiwgT3JpZ2luKCksCiAgICAgICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0UHRy
VmFsdWU+KHByb2MsIE9yaWdpbigpLCAmdHJ1ZVJlc3VsdCkpKTsKIAogICAgIGJvb2wgZWxzZVJl
c3VsdCA9IGZhbHNlOwotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIExvYWQ4WiwgT3JpZ2luKCksCkBAIC0xMTUzOCwyMCArMTE1NDgsMjAg
QEAgdm9pZCB0ZXN0QnJhbmNoNjRFcXVhbEltbShpbnQ2NF90IGxlZnQsIAogCiAgICAgVmFsdWUq
IGFyZzEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIGFyZzIgPSByb290LT5hcHBlbmRO
ZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHJpZ2h0KTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgRXF1YWwsIE9yaWdpbigpLCBhcmcxLCBhcmcyKSwKICAgICAgICAgRnJlcXVl
bnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKICAgICBi
b29sIHRydWVSZXN1bHQgPSB0cnVlOwotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PE1lbW9yeVZh
bHVlPigKICAgICAgICAgICAgIHByb2MsIExvYWQ4WiwgT3JpZ2luKCksCiAgICAgICAgICAgICB0
aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAmdHJ1ZVJl
c3VsdCkpKTsKIAogICAgIGJvb2wgZWxzZVJlc3VsdCA9IGZhbHNlOwotICAgIGVsc2VDYXNlLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+
YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgIHByb2MsIExvYWQ4WiwgT3JpZ2lu
KCksCkBAIC0xMTU3MSwyMCArMTE1ODEsMjAgQEAgdm9pZCB0ZXN0QnJhbmNoNjRFcXVhbE1lbShp
bnQ2NF90IGxlZnQsIAogICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSogYXJnMiA9IHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIxKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRXF1YWwsIE9yaWdpbigpLCBhcmcx
LCBhcmcyKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJs
b2NrKGVsc2VDYXNlKSk7CiAKICAgICBib29sIHRydWVSZXN1bHQgPSB0cnVlOwotICAgIHRoZW5D
YXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVu
Q2FzZS0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgIHByb2MsIExvYWQ4Wiwg
T3JpZ2luKCksCiAgICAgICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAmdHJ1ZVJlc3VsdCkpKTsKIAogICAgIGJvb2wgZWxzZVJlc3VsdCA9
IGZhbHNlOwotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNl
Q2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIExvYWQ4WiwgT3JpZ2luKCksCkBAIC0xMTYwNCwyMCArMTE2MTQsMjAgQEAgdm9p
ZCB0ZXN0QnJhbmNoNjRFcXVhbE1lbUltbShpbnQ2NF90IGxlZgogICAgICAgICBwcm9jLCBMb2Fk
LCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAg
ICBWYWx1ZSogYXJnMiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmln
aW4oKSwgcmlnaHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBFcXVhbCwgT3JpZ2luKCks
IGFyZzEsIGFyZzIpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVu
dGVkQmxvY2soZWxzZUNhc2UpKTsKIAogICAgIGJvb2wgdHJ1ZVJlc3VsdCA9IHRydWU7Ci0gICAg
dGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHRoZW5DYXNlLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9h
ZDhaLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3RQdHJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksICZ0cnVlUmVzdWx0KSkpOwogCiAgICAgYm9vbCBlbHNlUmVz
dWx0ID0gZmFsc2U7Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgTG9hZDhaLCBPcmlnaW4oKSwKQEAgLTExNjQxLDcgKzExNjUxLDcgQEAg
dm9pZCB0ZXN0U3RvcmU4TG9hZDhaKGludDMyX3QgdmFsdWUpCiAgICAgICAgICAgICByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCkpLAogICAgICAgICBwdHIpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHBy
b2MsIExvYWQ4WiwgT3JpZ2luKCksIHB0cikpOwogCkBAIC0xMTY2Myw3ICsxMTY3Myw3IEBAIHZv
aWQgdGVzdFN0b3JlMTZMb2FkMTZaKGludDMyX3QgdmFsdWUpCiAgICAgICAgICAgICByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCkpLAogICAgICAgICBwdHIpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHBy
b2MsIExvYWQxNlosIE9yaWdpbigpLCBwdHIpKTsKIApAQCAtMTE2NzUsNyArMTE2ODUsNyBAQCB2
b2lkIHRlc3RTU2hyU2hsMzIoaW50MzJfdCB2YWx1ZSwgaW50MzJfCiAgICAgUHJvY2VkdXJlIHBy
b2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNTaHIsIE9yaWdpbigpLApAQCAtMTE2OTcs
NyArMTE3MDcsNyBAQCB2b2lkIHRlc3RTU2hyU2hsNjQoaW50NjRfdCB2YWx1ZSwgaW50MzJfCiAg
ICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNTaHIsIE9yaWdp
bigpLApAQCAtMTE3MjUsOCArMTE3MzUsOCBAQCB2b2lkIHRlc3RUcml2aWFsSW5maW5pdGVMb29w
KCkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGxvb3AgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50
ZWRCbG9jayhsb29wKSk7Ci0gICAgbG9vcC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
SnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhsb29wKSk7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sobG9v
cCkpOworICAgIGxvb3AtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4o
KSwgRnJlcXVlbnRlZEJsb2NrKGxvb3ApKTsKIAogICAgIGNvbXBpbGUocHJvYyk7CiB9CkBAIC0x
MTc0MCwxNSArMTE3NTAsMTUgQEAgdm9pZCB0ZXN0Rm9sZFBhdGhFcXVhbCgpCiAKICAgICBWYWx1
ZSogYXJnID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBC
cmFuY2gsIE9yaWdpbigpLCBhcmcsIEZyZXF1ZW50ZWRCbG9jayh0aGVuQmxvY2spLCBGcmVxdWVu
dGVkQmxvY2soZWxzZUJsb2NrKSk7CiAKLSAgICB0aGVuQmxvY2stPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHRoZW5CbG9jay0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQmxvY2stPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBFcXVhbCwgT3JpZ2luKCksIGFyZywgdGhlbkJsb2NrLT5h
cHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKSk7CiAKLSAgICBlbHNl
QmxvY2stPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VCbG9jay0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBl
bHNlQmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBFcXVhbCwgT3Jp
Z2luKCksIGFyZywgZWxzZUJsb2NrLT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIDApKSk7CkBAIC0xMTc2Niw3ICsxMTc3Niw3IEBAIHZvaWQgdGVzdExTaGlmdFNlbGYz
MigpCiAgICAgVmFsdWUqIGFyZyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgIHBy
b2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgU2hsLCBPcmlnaW4oKSwgYXJnLCBhcmcpKTsKIApAQCAtMTE3ODks
NyArMTE3OTksNyBAQCB2b2lkIHRlc3RSU2hpZnRTZWxmMzIoKQogICAgIFZhbHVlKiBhcmcgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
R1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFNTaHIs
IE9yaWdpbigpLCBhcmcsIGFyZykpOwogCkBAIC0xMTgxMiw3ICsxMTgyMiw3IEBAIHZvaWQgdGVz
dFVSU2hpZnRTZWxmMzIoKQogICAgIFZhbHVlKiBhcmcgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIw
KSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFpTaHIsIE9yaWdpbigpLCBhcmcsIGFyZykp
OwogCkBAIC0xMTgzMyw3ICsxMTg0Myw3IEBAIHZvaWQgdGVzdExTaGlmdFNlbGY2NCgpCiAgICAg
UHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
ICAgICBWYWx1ZSogYXJnID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIFNobCwgT3JpZ2luKCksIGFyZywgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksIGFyZykpKTsKQEAgLTExODU3LDcgKzExODY3LDcg
QEAgdm9pZCB0ZXN0UlNoaWZ0U2VsZjY0KCkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmcgPSByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU1Nociwg
T3JpZ2luKCksIGFyZywgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2lu
KCksIGFyZykpKTsKQEAgLTExODgxLDcgKzExODkxLDcgQEAgdm9pZCB0ZXN0VVJTaGlmdFNlbGY2
NCgpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKICAgICBWYWx1ZSogYXJnID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFpTaHIsIE9yaWdpbigpLCBhcmcsIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLCBhcmcpKSk7CkBAIC0xMTkxNyw3
ICsxMTkyNyw3IEBAIHZvaWQgdGVzdFBhdGNocG9pbnREb3VibGVSZWdzKCkKICAgICAgICAgICAg
IG51bUNhbGxzKys7CiAgICAgICAgIH0pOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOwog
CiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBDSEVDSyhudW1DYWxscyA9PSAx
KTsKQEAgLTExOTUwLDcgKzExOTYwLDcgQEAgdm9pZCB0ZXN0U3BpbGxEZWZTbWFsbGVyVGhhblVz
ZSgpCiAKICAgICAvLyBPbiB4ODYsIFN1YiBhZG1pdCBhbiBhZGRyZXNzIGZvciBhbnkgb3BlcmFu
ZC4gSWYgaXQgdXNlcyB0aGUgc3RhY2ssIHRoZSB0b3AgYml0cyBtdXN0IGJlIHplcm8uCiAgICAg
VmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4o
KSwgZm9yY2VTcGlsbCwgYXJnNjQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBhdXRvIGNv
ZGUgPSBjb21waWxlKHByb2MpOwogICAgIENIRUNLKGludm9rZTxpbnQ2NF90PigqY29kZSwgMHhm
ZmZmZmZmZjAwMDAwMDAwKSA9PSAwKTsKQEAgLTExOTcwLDcgKzExOTgwLDcgQEAgdm9pZCB0ZXN0
U3BpbGxVc2VMYXJnZXJUaGFuRGVmKCkKIAogICAgIFZhbHVlKiBjb25kaXRpb24gPSByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50
UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKQEAgLTEx
OTgwLDEwICsxMTk5MCwxMCBAQCB2b2lkIHRlc3RTcGlsbFVzZUxhcmdlclRoYW5EZWYoKQogICAg
IFZhbHVlKiB0cnVuY2F0ZWQgPSB0aGVuQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBaRXh0
MzIsIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBU
cnVuYywgT3JpZ2luKCksIGFyZ3VtZW50KSk7CiAgICAgVXBzaWxvblZhbHVlKiB0aGVuUmVzdWx0
ID0gdGhlbkNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCB0cnVu
Y2F0ZWQpOwotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1w
LCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKKyAgICB0aGVuQ2FzZS0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFp
bCkpOwogCiAgICAgVXBzaWxvblZhbHVlKiBlbHNlUmVzdWx0ID0gZWxzZUNhc2UtPmFwcGVuZE5l
dzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhcmd1bWVudCk7Ci0gICAgZWxzZUNhc2Ut
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVk
QmxvY2sodGFpbCkpOworICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
SnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CiAKICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgMTAwOyArK2kpIHsKICAgICAgICAgUGF0Y2hwb2ludFZhbHVlKiBwcmV2
ZW50VGFpbER1cGxpY2F0aW9uID0gdGFpbC0+YXBwZW5kTmV3PFBhdGNocG9pbnRWYWx1ZT4ocHJv
YywgVm9pZCwgT3JpZ2luKCkpOwpAQCAtMTIwMDQsNyArMTIwMTQsNyBAQCB2b2lkIHRlc3RTcGls
bFVzZUxhcmdlclRoYW5EZWYoKQogICAgIFZhbHVlKiBwaGkgPSB0YWlsLT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIFBoaSwgSW50NjQsIE9yaWdpbigpKTsKICAgICB0aGVuUmVzdWx0LT5zZXRQaGko
cGhpKTsKICAgICBlbHNlUmVzdWx0LT5zZXRQaGkocGhpKTsKLSAgICB0YWlsLT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwaGkpOworICAgIHRhaWwtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwaGkpOwogCiAgICAg
YXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBDSEVDSyhpbnZva2U8dWludDY0X3Q+KCpj
b2RlLCAxLCAweGZmZmZmZmZmMDAwMDAwMDApID09IDApOwpAQCAtMTIwODYsMTIgKzEyMDk2LDIz
NyBAQCB2b2lkIHRlc3RMYXRlUmVnaXN0ZXIoKQogICAgICAgICAgICAgaml0Lm5vcCgpOwogICAg
ICAgICAgICAgaml0Lm5vcCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmRQYXRjaHBvaW50KTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vj
b25kUGF0Y2hwb2ludCk7CiAgICAgCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAg
ICBDSEVDSyhpbnZva2U8dWludDY0X3Q+KCpjb2RlKSA9PSByZXN1bHQpOwogfQogCit2b2lkIHRo
cmVhZGVkSW50ZXJwcmV0ZXJQcmludChWZWN0b3I8aW50cHRyX3Q+KiBzdHJlYW0sIGludHB0cl90
IHZhbHVlKQoreworICAgIHN0cmVhbS0+YXBwZW5kKHZhbHVlKTsKK30KKwordm9pZCB0ZXN0VGhy
ZWFkZWRJbnRlcnByZXRlcigpCit7CisgICAgLy8gVGhpcyBjcmVhdGVzIGEgcG9vciBtYW4ncyB0
aHJlYWRlZCBpbnRlcnByZXRlciB1c2luZyBQb2x5SnVtcCBhbmQgc2VlcyBpZiBpdCB3b3Jrcy4g
Tm90ZQorICAgIC8vIHRoYXQgUG9seUp1bXAgaXMgbm90IGxpa2UgaW5kaXJlY3QgYnJhbmNoZXMg
aW4gTExWTSwgc28geW91IGNhbid0IGFjdHVhbGx5IHVzZSBpdCB0bworICAgIC8vIGltcGxlbWVu
dCBhIHByb3BlciB0aHJlYWRlZCBpbnRlcnByZXRlci4gVGhpcyBjaGVhdHM6IHRoZSBkaXNwYXRj
aCBpbnN0cnVjdGlvbiBpcyBhdCB0aGUgdG9wCisgICAgLy8gb2YgdGhlIGxvb3AuIFRoaXMgYWxz
byB0ZXN0cyBWYXJpYWJsZVZhbHVlLgorICAgIAorICAgIFByb2NlZHVyZSBwcm9jOworICAgIAor
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayog
ZGlzcGF0Y2ggPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayogYWRkVG9EYXRhUG9p
bnRlciA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBCYXNpY0Jsb2NrKiBhZGRUb0NvZGVQb2ludGVy
ID0gcHJvYy5hZGRCbG9jaygpOworICAgIEJhc2ljQmxvY2sqIGFkZFRvQ29kZVBvaW50ZXJUYWtl
biA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBCYXNpY0Jsb2NrKiBhZGRUb0NvZGVQb2ludGVyTm90
VGFrZW4gPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayogYWRkVG9EYXRhID0gcHJv
Yy5hZGRCbG9jaygpOworICAgIEJhc2ljQmxvY2sqIHByaW50ID0gcHJvYy5hZGRCbG9jaygpOwor
ICAgIEJhc2ljQmxvY2sqIHN0b3AgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgCisgICAgVmFyaWFi
bGUqIGRhdGFQb2ludGVyID0gcHJvYy5hZGRWYXJpYWJsZShwb2ludGVyVHlwZSgpKTsKKyAgICBW
YXJpYWJsZSogY29kZVBvaW50ZXIgPSBwcm9jLmFkZFZhcmlhYmxlKHBvaW50ZXJUeXBlKCkpOwor
ICAgIAorICAgIHJvb3QtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPigKKyAgICAgICAgcHJvYywg
U2V0LCBPcmlnaW4oKSwgZGF0YVBvaW50ZXIsCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAgICAgICBwcm9jLCBTZXQsIE9y
aWdpbigpLCBjb2RlUG9pbnRlciwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKTsKKyAgICBWYWx1
ZSogY29udGV4dCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhkaXNwYXRjaCkpOwor
ICAgIAorICAgIFBvbHlKdW1wVmFsdWUqIHBvbHlKdW1wID0gZGlzcGF0Y2gtPmFwcGVuZE5ldzxQ
b2x5SnVtcFZhbHVlPigKKyAgICAgICAgcHJvYywgT3JpZ2luKCksCisgICAgICAgIGRpc3BhdGNo
LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRl
clR5cGUoKSwgT3JpZ2luKCksCisgICAgICAgICAgICBkaXNwYXRjaC0+YXBwZW5kTmV3PFZhcmlh
YmxlVmFsdWU+KAorICAgICAgICAgICAgICAgIHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBjb2Rl
UG9pbnRlcikpKTsKKyAgICBwb2x5SnVtcC0+YXBwZW5kU3VjY2Vzc29yKEZyZXF1ZW50ZWRCbG9j
ayhhZGRUb0RhdGFQb2ludGVyKSk7CisgICAgcG9seUp1bXAtPmFwcGVuZFN1Y2Nlc3NvcihGcmVx
dWVudGVkQmxvY2soYWRkVG9Db2RlUG9pbnRlcikpOworICAgIHBvbHlKdW1wLT5hcHBlbmRTdWNj
ZXNzb3IoRnJlcXVlbnRlZEJsb2NrKGFkZFRvRGF0YSkpOworICAgIHBvbHlKdW1wLT5hcHBlbmRT
dWNjZXNzb3IoRnJlcXVlbnRlZEJsb2NrKHByaW50KSk7CisgICAgcG9seUp1bXAtPmFwcGVuZFN1
Y2Nlc3NvcihGcmVxdWVudGVkQmxvY2soc3RvcCkpOworICAgIAorICAgIC8vIE91ciAib3Bjb2Rl
cyIuIFRoZXkgd2lsbCBoYXZlIG1lYW5pbmcgb25jZSB3ZSBjb21waWxlLgorICAgIGludHB0cl90
IEFkZERQID0gMDsKKyAgICBpbnRwdHJfdCBBZGRDUCA9IDA7CisgICAgaW50cHRyX3QgQWRkID0g
MDsKKyAgICBpbnRwdHJfdCBQcmludCA9IDA7CisgICAgaW50cHRyX3QgU3RvcCA9IDA7CisgICAg
cG9seUp1bXAtPnNldENhbGxiYWNrKAorICAgICAgICBbJl0gKGNvbnN0IFZlY3RvcjxNYWNyb0Fz
c2VtYmxlckNvZGVQdHI+JiBwb2ludGVycykgeworICAgICAgICAgICAgYXV0byBnZXQgPSBbJl0g
KHNpemVfdCBpbmRleCkgLT4gaW50cHRyX3QgeworICAgICAgICAgICAgICAgIHJldHVybiBiaXR3
aXNlX2Nhc3Q8aW50cHRyX3Q+KHBvaW50ZXJzW2luZGV4XS5leGVjdXRhYmxlQWRkcmVzcygpKTsK
KyAgICAgICAgICAgIH07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIEFkZERQID0gZ2V0KDAp
OworICAgICAgICAgICAgQWRkQ1AgPSBnZXQoMSk7CisgICAgICAgICAgICBBZGQgPSBnZXQoMik7
CisgICAgICAgICAgICBQcmludCA9IGdldCgzKTsKKyAgICAgICAgICAgIFN0b3AgPSBnZXQoNCk7
CisgICAgICAgIH0pOworICAgIAorICAgIC8vIEFkZERQIDxvcGVyYW5kPjogYWRkcyA8b3BlcmFu
ZD4gdG8gRFAuCisgICAgVmFsdWUqIGNvZGVQb2ludGVyVmFsdWUgPQorICAgICAgICBhZGRUb0Rh
dGFQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2lu
KCksIGNvZGVQb2ludGVyKTsKKyAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFi
bGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGRhdGFQb2ludGVyLAorICAg
ICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgcHJv
YywgQjM6OkFkZCwgT3JpZ2luKCksCisgICAgICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBl
bmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGRhdGFQb2ludGVy
KSwKKyAgICAgICAgICAgIGFkZFRvRGF0YVBvaW50ZXItPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAg
ICAgICAgICAgICAgcHJvYywgTXVsLCBPcmlnaW4oKSwKKyAgICAgICAgICAgICAgICBhZGRUb0Rh
dGFQb2ludGVyLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICAgICAgICAgICAgICBw
cm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwgc2l6
ZW9mKGludHB0cl90KSksCisgICAgICAgICAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5k
SW50Q29uc3RhbnQoCisgICAgICAgICAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLCBwb2ludGVy
VHlwZSgpLCBzaXplb2YoaW50cHRyX3QpKSkpKTsKKyAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBl
bmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQ
b2ludGVyLAorICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFsdWU+KAorICAg
ICAgICAgICAgcHJvYywgQjM6OkFkZCwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUsCisgICAg
ICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmRJbnRDb25zdGFudCgKKyAgICAgICAgICAg
ICAgICBwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6ZW9mKGludHB0cl90KSAqIDIp
KSk7CisgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1
bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZGlzcGF0Y2gpKTsKKyAgICAKKyAgICAvLyBB
ZGRDUCA8b3BlcmFuZD46IGFkZHMgPG9wZXJhbmQ+IHRvIENQIGlmIHRoZSBjdXJyZW50IHZhbHVl
IGF0IERQIGlzIG5vbi16ZXJvLCBvdGhlcndpc2UKKyAgICAvLyBmYWxscyB0aHJvdWdoIG5vcm1h
bGx5LgorICAgIGNvZGVQb2ludGVyVmFsdWUgPQorICAgICAgICBhZGRUb0NvZGVQb2ludGVyLT5h
cHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGNvZGVQb2lu
dGVyKTsKKyAgICBWYWx1ZSogZGF0YVBvaW50ZXJWYWx1ZSA9CisgICAgICAgIGFkZFRvQ29kZVBv
aW50ZXItPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPihwcm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwg
ZGF0YVBvaW50ZXIpOworICAgIGFkZFRvQ29kZVBvaW50ZXItPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKKyAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKKyAgICAgICAgYWRkVG9Db2RlUG9p
bnRlci0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIExvYWQsIHBv
aW50ZXJUeXBlKCksIE9yaWdpbigpLCBkYXRhUG9pbnRlclZhbHVlKSwKKyAgICAgICAgRnJlcXVl
bnRlZEJsb2NrKGFkZFRvQ29kZVBvaW50ZXJUYWtlbiksIEZyZXF1ZW50ZWRCbG9jayhhZGRUb0Nv
ZGVQb2ludGVyTm90VGFrZW4pKTsKKyAgICBhZGRUb0NvZGVQb2ludGVyVGFrZW4tPmFwcGVuZE5l
dzxWYXJpYWJsZVZhbHVlPigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgY29kZVBvaW50
ZXIsCisgICAgICAgIGFkZFRvQ29kZVBvaW50ZXJUYWtlbi0+YXBwZW5kTmV3PFZhbHVlPigKKyAg
ICAgICAgICAgIHByb2MsIEIzOjpBZGQsIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLAorICAg
ICAgICAgICAgYWRkVG9Db2RlUG9pbnRlclRha2VuLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAg
ICAgICAgICAgIHByb2MsIE11bCwgT3JpZ2luKCksCisgICAgICAgICAgICAgICAgYWRkVG9Db2Rl
UG9pbnRlclRha2VuLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICAgICAgICAgICAg
ICBwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwg
c2l6ZW9mKGludHB0cl90KSksCisgICAgICAgICAgICAgICAgYWRkVG9Db2RlUG9pbnRlclRha2Vu
LT5hcHBlbmRJbnRDb25zdGFudCgKKyAgICAgICAgICAgICAgICAgICAgcHJvYywgT3JpZ2luKCks
IHBvaW50ZXJUeXBlKCksIHNpemVvZihpbnRwdHJfdCkpKSkpOworICAgIGFkZFRvQ29kZVBvaW50
ZXJUYWtlbi0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVx
dWVudGVkQmxvY2soZGlzcGF0Y2gpKTsKKyAgICBhZGRUb0NvZGVQb2ludGVyTm90VGFrZW4tPmFw
cGVuZE5ldzxWYXJpYWJsZVZhbHVlPigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgY29k
ZVBvaW50ZXIsCisgICAgICAgIGFkZFRvQ29kZVBvaW50ZXJOb3RUYWtlbi0+YXBwZW5kTmV3PFZh
bHVlPigKKyAgICAgICAgICAgIHByb2MsIEIzOjpBZGQsIE9yaWdpbigpLCBjb2RlUG9pbnRlclZh
bHVlLAorICAgICAgICAgICAgYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuLT5hcHBlbmRJbnRDb25z
dGFudCgKKyAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6
ZW9mKGludHB0cl90KSAqIDIpKSk7CisgICAgYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuLT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCisgICAgICAgIHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVu
dGVkQmxvY2soZGlzcGF0Y2gpKTsKKworICAgIC8vIEFkZCA8b3BlcmFuZD46IGFkZHMgPG9wZXJh
bmQ+IHRvIHRoZSBzbG90IHBvaW50ZWQgdG8gYnkgRFAuCisgICAgY29kZVBvaW50ZXJWYWx1ZSA9
IGFkZFRvRGF0YS0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHByb2MsIEIzOjpHZXQsIE9yaWdp
bigpLCBjb2RlUG9pbnRlcik7CisgICAgZGF0YVBvaW50ZXJWYWx1ZSA9IGFkZFRvRGF0YS0+YXBw
ZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRl
cik7CisgICAgYWRkVG9EYXRhLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICBwcm9j
LCBTdG9yZSwgT3JpZ2luKCksCisgICAgICAgIGFkZFRvRGF0YS0+YXBwZW5kTmV3PFZhbHVlPigK
KyAgICAgICAgICAgIHByb2MsIEIzOjpBZGQsIE9yaWdpbigpLAorICAgICAgICAgICAgYWRkVG9E
YXRhLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICAgICAgICAgIHByb2MsIExvYWQs
IHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLCBkYXRhUG9pbnRlclZhbHVlKSwKKyAgICAgICAgICAg
IGFkZFRvRGF0YS0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAgICAgICBwcm9j
LCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwgc2l6ZW9m
KGludHB0cl90KSkpLAorICAgICAgICBkYXRhUG9pbnRlclZhbHVlKTsKKyAgICBhZGRUb0RhdGEt
PmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwg
Y29kZVBvaW50ZXIsCisgICAgICAgIGFkZFRvRGF0YS0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAg
ICAgICAgIHByb2MsIEIzOjpBZGQsIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLAorICAgICAg
ICAgICAgYWRkVG9EYXRhLT5hcHBlbmRJbnRDb25zdGFudChwcm9jLCBPcmlnaW4oKSwgcG9pbnRl
clR5cGUoKSwgc2l6ZW9mKGludHB0cl90KSAqIDIpKSk7CisgICAgYWRkVG9EYXRhLT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhkaXNw
YXRjaCkpOworICAgIAorICAgIC8vIFByaW50OiAicHJpbnRzIiB0aGUgdmFsdWUgcG9pbnRlZCB0
byBieSBEUC4gV2hhdCB0aGlzIGFjdHVhbGx5IG1lYW5zIGlzIHRoYXQgdGhlIHZhbHVlIGlzCisg
ICAgLy8gYXBwZW5kZWQgdG8gdGhlIHN0cmVhbSB2ZWN0b3IgYnkgdGhlIHRocmVhZGVkSW50ZXJw
cmV0ZXJQcmludCBmdW5jdGlvbi4KKyAgICBjb2RlUG9pbnRlclZhbHVlID0gcHJpbnQtPmFwcGVu
ZE5ldzxWYXJpYWJsZVZhbHVlPihwcm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIp
OworICAgIGRhdGFQb2ludGVyVmFsdWUgPSBwcmludC0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+
KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRlcik7CisgICAgcHJpbnQtPmFwcGVu
ZE5ldzxDQ2FsbFZhbHVlPigKKyAgICAgICAgcHJvYywgVm9pZCwgT3JpZ2luKCksCisgICAgICAg
IHByaW50LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBPcmln
aW4oKSwgYml0d2lzZV9jYXN0PHZvaWQqPih0aHJlYWRlZEludGVycHJldGVyUHJpbnQpKSwKKyAg
ICAgICAgY29udGV4dCwKKyAgICAgICAgcHJpbnQtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJv
YywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCksIGRhdGFQb2ludGVyVmFsdWUpKTsKKyAg
ICBwcmludC0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAgICAgICBwcm9jLCBTZXQsIE9y
aWdpbigpLCBjb2RlUG9pbnRlciwKKyAgICAgICAgcHJpbnQtPmFwcGVuZE5ldzxWYWx1ZT4oCisg
ICAgICAgICAgICBwcm9jLCBCMzo6QWRkLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwKKyAg
ICAgICAgICAgIHByaW50LT5hcHBlbmRJbnRDb25zdGFudChwcm9jLCBPcmlnaW4oKSwgcG9pbnRl
clR5cGUoKSwgc2l6ZW9mKGludHB0cl90KSkpKTsKKyAgICBwcmludC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZGlzcGF0Y2gpKTsK
KyAgICAKKyAgICAvLyBTdG9wOiByZXR1cm5zLgorICAgIHN0b3AtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKKyAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICAgICAgc3RvcC0+YXBw
ZW5kSW50Q29uc3RhbnQocHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBlKCksIDApKTsKKyAgICAK
KyAgICBhdXRvIGludGVycHJldGVyID0gY29tcGlsZShwcm9jKTsKKyAgICAKKyAgICBDSEVDSyhB
ZGREUCk7CisgICAgQ0hFQ0soQWRkQ1ApOworICAgIENIRUNLKEFkZCk7CisgICAgQ0hFQ0soUHJp
bnQpOworICAgIENIRUNLKFN0b3ApOworICAgIAorICAgIFZlY3RvcjxpbnRwdHJfdD4gZGF0YTsK
KyAgICBWZWN0b3I8aW50cHRyX3Q+IGNvZGU7CisgICAgVmVjdG9yPGludHB0cl90PiBzdHJlYW07
CisgICAgCisgICAgZGF0YS5hcHBlbmQoMSk7CisgICAgZGF0YS5hcHBlbmQoMCk7CisgICAgCisg
ICAgaWYgKHNob3VsZEJlVmVyYm9zZSgpKQorICAgICAgICBkYXRhTG9nKCJkYXRhID0gIiwgbGlz
dER1bXAoZGF0YSksICJcbiIpOworICAgIAorICAgIC8vIFdlJ2xsIHdyaXRlIGEgcHJvZ3JhbSB0
aGF0IHByaW50cyB0aGUgbnVtYmVycyAxLi4xMDAuCisgICAgLy8gV2UgZXhwZWN0IERQIHRvIHBv
aW50IGF0ICMwLgorICAgIGNvZGUuYXBwZW5kKEFkZENQKTsKKyAgICBjb2RlLmFwcGVuZCg2KTsg
Ly8gZ28gdG8gbG9vcCBib2R5CisgICAgCisgICAgLy8gTG9vcCByZS1lbnRyeToKKyAgICAvLyBX
ZSBleHBlY3QgRFAgdG8gcG9pbnQgYXQgIzEgYW5kIGZvciAjMSB0byBiZSBvZmZzZXQgYnkgLTEw
MC4KKyAgICBjb2RlLmFwcGVuZChBZGQpOworICAgIGNvZGUuYXBwZW5kKDEwMCk7CisgICAgCisg
ICAgY29kZS5hcHBlbmQoQWRkRFApOworICAgIGNvZGUuYXBwZW5kKC0xKTsKKyAgICAKKyAgICAv
LyBMb29wIGhlYWRlcjoKKyAgICAvLyBXZSBleHBlY3QgRFAgdG8gcG9pbnQgYXQgIzAuCisgICAg
Y29kZS5hcHBlbmQoQWRkRFApOworICAgIGNvZGUuYXBwZW5kKDEpOworICAgIAorICAgIGNvZGUu
YXBwZW5kKEFkZCk7CisgICAgY29kZS5hcHBlbmQoMSk7CisgICAgCisgICAgY29kZS5hcHBlbmQo
UHJpbnQpOworICAgIAorICAgIGNvZGUuYXBwZW5kKEFkZCk7CisgICAgY29kZS5hcHBlbmQoLTEw
MCk7CisgICAgCisgICAgLy8gV2Ugd2FudCB0byBzdG9wIGlmIGl0J3MgemVybyBhbmQgY29udGlu
dWUgaWYgaXQncyBub24temVyby4gQWRkQ1AgdGFrZXMgdGhlIGJyYW5jaCBpZiBpdCdzCisgICAg
Ly8gbm9uLXplcm8uCisgICAgY29kZS5hcHBlbmQoQWRkQ1ApOworICAgIGNvZGUuYXBwZW5kKC0x
MSk7IC8vIGdvIHRvIGxvb3AgcmUtZW50cnkuCisgICAgCisgICAgY29kZS5hcHBlbmQoU3RvcCk7
CisgICAgCisgICAgaWYgKHNob3VsZEJlVmVyYm9zZSgpKQorICAgICAgICBkYXRhTG9nKCJjb2Rl
ID0gIiwgbGlzdER1bXAoY29kZSksICJcbiIpOworICAgIAorICAgIENIRUNLKCFpbnZva2U8aW50
cHRyX3Q+KCppbnRlcnByZXRlciwgZGF0YS5kYXRhKCksIGNvZGUuZGF0YSgpLCAmc3RyZWFtKSk7
CisgICAgCisgICAgQ0hFQ0soc3RyZWFtLnNpemUoKSA9PSAxMDApOworICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCAxMDA7ICsraSkKKyAgICAgICAgQ0hFQ0soc3RyZWFtW2ldID09IGkgKyAx
KTsKKyAgICAKKyAgICBpZiAoc2hvdWxkQmVWZXJib3NlKCkpCisgICAgICAgIGRhdGFMb2coInN0
cmVhbSA9ICIsIGxpc3REdW1wKHN0cmVhbSksICJcbiIpOworfQorCiB2b2lkIHRlc3RSZWR1Y2VT
dHJlbmd0aENoZWNrQm90dG9tVXNlSW5Bbm90aGVyQmxvY2soKQogewogICAgIFByb2NlZHVyZSBw
cm9jOwpAQCAtMTIxMTAsNyArMTIzNDUsNyBAQCB2b2lkIHRlc3RSZWR1Y2VTdHJlbmd0aENoZWNr
Qm90dG9tVXNlSW5BCiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwogICAgIFZh
bHVlKiBhcmcgPSBvbmUtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICBvbmUtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodHdvKSk7CisgICAgb25l
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRC
bG9jayh0d28pKTsKICAgICAKICAgICBjaGVjayA9IHR3by0+YXBwZW5kTmV3PENoZWNrVmFsdWU+
KAogICAgICAgICBwcm9jLCBDaGVja0FkZCwgT3JpZ2luKCksIGFyZywKQEAgLTEyMTE5LDcgKzEy
MzU0LDcgQEAgdm9pZCB0ZXN0UmVkdWNlU3RyZW5ndGhDaGVja0JvdHRvbVVzZUluQQogICAgICAg
ICBbJl0gKENDYWxsSGVscGVycyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsK
ICAgICAgICAgICAgIENIRUNLKCEiU2hvdWxkIG5vdCBleGVjdXRlIik7CiAgICAgICAgIH0pOwot
ICAgIHR3by0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
Y2hlY2spOworICAgIHR3by0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIGNoZWNrKTsKICAgICAKICAgICBwcm9jLnJlc2V0UmVhY2hhYmlsaXR5KCk7CiAgICAg
cmVkdWNlU3RyZW5ndGgocHJvYyk7CkBAIC0xMjEzNCwxMSArMTIzNjksMTEgQEAgdm9pZCB0ZXN0
UmVzZXRSZWFjaGFiaWxpdHlEYW5nbGluZ1JlZmVyZQogICAgIAogICAgIFVwc2lsb25WYWx1ZSog
dXBzaWxvbiA9IG9uZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4oCiAgICAgICAgIHByb2MsIE9y
aWdpbigpLCBvbmUtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0Mikp
OwotICAgIG9uZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgT29wcywgT3JpZ2luKCkp
OworICAgIG9uZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIE9vcHMsIE9yaWdpbigpKTsK
ICAgICAKICAgICBWYWx1ZSogcGhpID0gdHdvLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFBoaSwg
SW50MzIsIE9yaWdpbigpKTsKICAgICB1cHNpbG9uLT5zZXRQaGkocGhpKTsKLSAgICB0d28tPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIE9vcHMsIE9yaWdpbigpKTsKKyAgICB0d28tPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBPb3BzLCBPcmlnaW4oKSk7CiAgICAgCiAgICAgcHJv
Yy5yZXNldFJlYWNoYWJpbGl0eSgpOwogICAgIHZhbGlkYXRlKHByb2MpOwpAQCAtMTM1NDcsOCAr
MTM3ODIsMTMgQEAgdm9pZCBydW4oY29uc3QgY2hhciogZmlsdGVyKQogICAgIFJVTih0ZXN0U3Bp
bGxEZWZTbWFsbGVyVGhhblVzZSgpKTsKICAgICBSVU4odGVzdFNwaWxsVXNlTGFyZ2VyVGhhbkRl
ZigpKTsKICAgICBSVU4odGVzdExhdGVSZWdpc3RlcigpKTsKKzw8PDw8PDwgLm1pbmUKKyAgICAK
KyAgICBSVU4odGVzdFRocmVhZGVkSW50ZXJwcmV0ZXIoKSk7Cis9PT09PT09CiAgICAgUlVOKHRl
c3RSZWR1Y2VTdHJlbmd0aENoZWNrQm90dG9tVXNlSW5Bbm90aGVyQmxvY2soKSk7CiAgICAgUlVO
KHRlc3RSZXNldFJlYWNoYWJpbGl0eURhbmdsaW5nUmVmZXJlbmNlKCkpOworPj4+Pj4+PiAucjIw
MjgwOQogCiAgICAgaWYgKHRhc2tzLmlzRW1wdHkoKSkKICAgICAgICAgdXNhZ2UoKTsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmNwcAkocmV2aXNpb24gMjAyODA5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTM1LDYgKzEzNSwxMSBAQCB2b2lkIENvZGU6OmFkZEZhc3RUbXAoVG1wIHRtcCkK
ICAgICBtX2Zhc3RUbXBzLmFkZCh0bXApOwogfQogCit2b2lkKiBDb2RlOjphZGREYXRhU2VjdGlv
bihzaXplX3Qgc2l6ZSkKK3sKKyAgICByZXR1cm4gbV9wcm9jLmFkZERhdGFTZWN0aW9uKHNpemUp
OworfQorCiB1bnNpZ25lZCBDb2RlOjpqc0hhc2goKSBjb25zdAogewogICAgIHVuc2lnbmVkIHJl
c3VsdCA9IDA7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuaAkocmV2
aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJBaXJTcGVjaWFsLmgi
CiAjaW5jbHVkZSAiQWlyU3RhY2tTbG90LmgiCiAjaW5jbHVkZSAiQWlyVG1wLmgiCisjaW5jbHVk
ZSAiQjNJbmRleE1hcC5oIgogI2luY2x1ZGUgIkIzU3BhcnNlQ29sbGVjdGlvbi5oIgogI2luY2x1
ZGUgIlJlZ2lzdGVyQXRPZmZzZXRMaXN0LmgiCiAjaW5jbHVkZSAiU3RhY2tBbGlnbm1lbnQuaCIK
QEAgLTIwMyw2ICsyMDQsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGRGYXN0VG1wKFRtcCk7CiAg
ICAgYm9vbCBpc0Zhc3RUbXAoVG1wIHRtcCkgY29uc3QgeyByZXR1cm4gbV9mYXN0VG1wcy5jb250
YWlucyh0bXApOyB9CiAgICAgCisgICAgdm9pZCogYWRkRGF0YVNlY3Rpb24oc2l6ZV90KTsKKyAg
ICAKICAgICAvLyBUaGUgbmFtZSBoYXMgdG8gYmUgYSBzdHJpbmcgbGl0ZXJhbCwgc2luY2Ugd2Ug
ZG9uJ3QgZG8gYW55IG1lbW9yeSBtYW5hZ2VtZW50IGZvciB0aGUgc3RyaW5nLgogICAgIHZvaWQg
c2V0TGFzdFBoYXNlTmFtZShjb25zdCBjaGFyKiBuYW1lKQogICAgIHsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ3VzdG9tLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDdXN0b20uaAkocmV2aXNpb24gMjAyODA5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDdXN0b20uaAkod29ya2luZyBjb3B5KQpAQCAt
ODQsMTAgKzg0LDE1IEBAIHN0cnVjdCBQYXRjaEN1c3RvbSB7CiAgICAgewogICAgICAgICByZXR1
cm4gaW5zdC5hcmdzWzBdLnNwZWNpYWwoKS0+c2hvdWxkVHJ5QWxpYXNpbmdEZWYoaW5zdCk7CiAg
ICAgfQorICAgIAorICAgIHN0YXRpYyBib29sIGlzVGVybWluYWwoSW5zdCYgaW5zdCkKKyAgICB7
CisgICAgICAgIHJldHVybiBpbnN0LmFyZ3NbMF0uc3BlY2lhbCgpLT5pc1Rlcm1pbmFsKGluc3Qp
OworICAgIH0KIAogICAgIHN0YXRpYyBib29sIGhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKElu
c3QmIGluc3QpCiAgICAgewotICAgICAgICByZXR1cm4gaW5zdC5hcmdzWzBdLnNwZWNpYWwoKS0+
aGFzTm9uQXJnTm9uQ29udHJvbEVmZmVjdHMoKTsKKyAgICAgICAgcmV0dXJuIGluc3QuYXJnc1sw
XS5zcGVjaWFsKCktPmhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKGluc3QpOwogICAgIH0KIAog
ICAgIHN0YXRpYyBDQ2FsbEhlbHBlcnM6Okp1bXAgZ2VuZXJhdGUoCkBAIC0xMzgsNiArMTQzLDEx
IEBAIHN0cnVjdCBDQ2FsbEN1c3RvbSB7CiAgICAgewogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICB9CisgICAgCisgICAgc3RhdGljIGJvb2wgaXNUZXJtaW5hbChpbnN0JikKKyAgICB7CisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAKICAgICBzdGF0aWMgYm9vbCBoYXNOb25BcmdOb25D
b250cm9sRWZmZWN0cyhJbnN0JikKICAgICB7CkBAIC0xOTcsNiArMjA3LDExIEBAIHN0cnVjdCBT
aHVmZmxlQ3VzdG9tIHsKICAgICAgICAgfQogICAgIH0KIAorICAgIHN0YXRpYyBib29sIGlzVGVy
bWluYWwoaW5zdCYpCisgICAgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCiAgICAg
c3RhdGljIGJvb2wgaGFzTm9uQXJnTm9uQ29udHJvbEVmZmVjdHMoSW5zdCYpCiAgICAgewogICAg
ICAgICByZXR1cm4gZmFsc2U7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fp
ckdlbmVyYXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0FpckdlbmVyYXRlLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci9BaXJHZW5lcmF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDEwICs0OCwx
MyBAQAogI2luY2x1ZGUgIkFpclZhbGlkYXRlLmgiCiAjaW5jbHVkZSAiQjNDb21tb24uaCIKICNp
bmNsdWRlICJCM0luZGV4TWFwLmgiCisjaW5jbHVkZSAiQjNQb2x5SnVtcFZhbHVlLmgiCiAjaW5j
bHVkZSAiQjNQcm9jZWR1cmUuaCIKICNpbmNsdWRlICJCM1RpbWluZ1Njb3BlLmgiCisjaW5jbHVk
ZSAiQjNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKICNpbmNsdWRl
ICJEaXNhbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UuaCIKKyNpbmNsdWRlICJMaW5rQnVm
ZmVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UgQWlyIHsK
IApAQCAtMTczLDEyICsxNzYsMTYgQEAgdm9pZCBnZW5lcmF0ZShDb2RlJiBjb2RlLCBDQ2FsbEhl
bHBlcnMmIAogCiAgICAgR2VuZXJhdGlvbkNvbnRleHQgY29udGV4dDsKICAgICBjb250ZXh0LmNv
ZGUgPSAmY29kZTsKLSAgICBJbmRleE1hcDxCYXNpY0Jsb2NrLCBDQ2FsbEhlbHBlcnM6OkxhYmVs
PiBibG9ja0xhYmVscyhjb2RlLnNpemUoKSk7CisgICAgY29udGV4dC5ibG9ja0xhYmVscy5yZXNp
emUoY29kZS5zaXplKCkpOworICAgIGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiBjb2RlKSB7Cisg
ICAgICAgIGlmIChibG9jaykKKyAgICAgICAgICAgIGNvbnRleHQuYmxvY2tMYWJlbHNbYmxvY2td
ID0gQm94PENDYWxsSGVscGVyczo6TGFiZWw+OjpjcmVhdGUoKTsKKyAgICB9CiAgICAgSW5kZXhN
YXA8QmFzaWNCbG9jaywgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdD4gYmxvY2tKdW1wcyhjb2RlLnNp
emUoKSk7CiAKICAgICBhdXRvIGxpbmsgPSBbJl0gKENDYWxsSGVscGVyczo6SnVtcCBqdW1wLCBC
YXNpY0Jsb2NrKiB0YXJnZXQpIHsKLSAgICAgICAgaWYgKGJsb2NrTGFiZWxzW3RhcmdldF0uaXNT
ZXQoKSkgewotICAgICAgICAgICAganVtcC5saW5rVG8oYmxvY2tMYWJlbHNbdGFyZ2V0XSwgJmpp
dCk7CisgICAgICAgIGlmIChjb250ZXh0LmJsb2NrTGFiZWxzW3RhcmdldF0tPmlzU2V0KCkpIHsK
KyAgICAgICAgICAgIGp1bXAubGlua1RvKCpjb250ZXh0LmJsb2NrTGFiZWxzW3RhcmdldF0sICZq
aXQpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAgLTE5NSwxNiArMjAyLDIy
IEBAIHZvaWQgZ2VuZXJhdGUoQ29kZSYgY29kZSwgQ0NhbGxIZWxwZXJzJiAKICAgICB9OwogCiAg
ICAgZm9yIChCYXNpY0Jsb2NrKiBibG9jayA6IGNvZGUpIHsKKyAgICAgICAgY29udGV4dC5ibG9j
ayA9IGJsb2NrOworICAgICAgICBjb250ZXh0LmluZGV4SW5CbG9jayA9IFVJTlRfTUFYOwogICAg
ICAgICBibG9ja0p1bXBzW2Jsb2NrXS5saW5rKCZqaXQpOwotICAgICAgICBibG9ja0xhYmVsc1ti
bG9ja10gPSBqaXQubGFiZWwoKTsKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpMYWJlbCBsYWJlbCA9
IGppdC5sYWJlbCgpOworICAgICAgICAqY29udGV4dC5ibG9ja0xhYmVsc1tibG9ja10gPSBsYWJl
bDsKICAgICAgICAgQVNTRVJUKGJsb2NrLT5zaXplKCkgPj0gMSk7CiAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBibG9jay0+c2l6ZSgpIC0gMTsgKytpKSB7CisgICAgICAgICAgICBj
b250ZXh0LmluZGV4SW5CbG9jayA9IGk7CiAgICAgICAgICAgICBJbnN0JiBpbnN0ID0gYmxvY2st
PmF0KGkpOwogICAgICAgICAgICAgYWRkSXRlbShpbnN0KTsKICAgICAgICAgICAgIENDYWxsSGVs
cGVyczo6SnVtcCBqdW1wID0gaW5zdC5nZW5lcmF0ZShqaXQsIGNvbnRleHQpOwogICAgICAgICAg
ICAgQVNTRVJUX1VOVVNFRChqdW1wLCAhanVtcC5pc1NldCgpKTsKICAgICAgICAgfQogCisgICAg
ICAgIGNvbnRleHQuaW5kZXhJbkJsb2NrID0gYmxvY2stPnNpemUoKSAtIDE7CisgICAgICAgIAog
ICAgICAgICBpZiAoYmxvY2stPmxhc3QoKS5vcGNvZGUgPT0gSnVtcAogICAgICAgICAgICAgJiYg
YmxvY2stPnN1Y2Nlc3NvckJsb2NrKDApID09IGNvZGUuZmluZE5leHRCbG9jayhibG9jaykpCiAg
ICAgICAgICAgICBjb250aW51ZTsKQEAgLTIyOCwyNiArMjQxLDMwIEBAIHZvaWQgZ2VuZXJhdGUo
Q29kZSYgY29kZSwgQ0NhbGxIZWxwZXJzJiAKICAgICAgICAgICAgIGFkZEl0ZW0oYmxvY2stPmxh
c3QoKSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQotCisgICAgICAgIAogICAg
ICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAganVtcCA9IGJsb2NrLT5sYXN0KCkuZ2VuZXJhdGUoaml0
LCBjb250ZXh0KTsKLSAgICAgICAgc3dpdGNoIChibG9jay0+bnVtU3VjY2Vzc29ycygpKSB7Ci0g
ICAgICAgIGNhc2UgMDoKLSAgICAgICAgICAgIEFTU0VSVCghanVtcC5pc1NldCgpKTsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIDE6Ci0gICAgICAgICAgICBsaW5rKGp1bXAsIGJs
b2NrLT5zdWNjZXNzb3JCbG9jaygwKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSAyOgotICAgICAgICAgICAgbGluayhqdW1wLCBibG9jay0+c3VjY2Vzc29yQmxvY2soMCkpOwot
ICAgICAgICAgICAgaWYgKGJsb2NrLT5zdWNjZXNzb3JCbG9jaygxKSAhPSBjb2RlLmZpbmROZXh0
QmxvY2soYmxvY2spKQotICAgICAgICAgICAgICAgIGxpbmsoaml0Lmp1bXAoKSwgYmxvY2stPnN1
Y2Nlc3NvckJsb2NrKDEpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0Ogot
ICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAvLyBUaGUganVtcCB3b24ndCBiZSBzZXQgZm9yIHBhdGNocG9pbnRzLiBJ
dCB3b24ndCBiZSBzZXQgZm9yIE9vcHMgYmVjYXVzZSB0aGVuIGl0IHdvbid0IGhhdmUKKyAgICAg
ICAgLy8gYW55IHN1Y2Nlc3NvcnMuCisgICAgICAgIGlmIChqdW1wLmlzU2V0KCkpIHsKKyAgICAg
ICAgICAgIHN3aXRjaCAoYmxvY2stPm51bVN1Y2Nlc3NvcnMoKSkgeworICAgICAgICAgICAgY2Fz
ZSAxOgorICAgICAgICAgICAgICAgIGxpbmsoanVtcCwgYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDAp
KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAg
ICAgICAgICBsaW5rKGp1bXAsIGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKSk7CisgICAgICAgICAg
ICAgICAgaWYgKGJsb2NrLT5zdWNjZXNzb3JCbG9jaygxKSAhPSBjb2RlLmZpbmROZXh0QmxvY2so
YmxvY2spKQorICAgICAgICAgICAgICAgICAgICBsaW5rKGppdC5qdW1wKCksIGJsb2NrLT5zdWNj
ZXNzb3JCbG9jaygxKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgYWRk
SXRlbShibG9jay0+bGFzdCgpKTsKICAgICB9CisgICAgCisgICAgY29udGV4dC5ibG9jayA9IG51
bGxwdHI7CisgICAgY29udGV4dC5pbmRleEluQmxvY2sgPSBVSU5UX01BWDsKIAogICAgIHBjVG9P
cmlnaW5NYXAuYXBwZW5kSXRlbShqaXQubGFiZWwoKSwgT3JpZ2luKCkpOwogICAgIC8vIEZJWE1F
OiBNYWtlIGxhdGUgcGF0aHMgaGF2ZSBPcmlnaW5zOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTUzNjg5CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0FpckdlbmVyYXRpb25Db250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci9BaXJHZW5lcmF0aW9uQ29udGV4dC5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRpb25Db250ZXh0LmgJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMjgsMTQgKzI4LDE0IEBACiAKICNpZiBFTkFCTEUoQjNfSklUKQogCisjaW5jbHVk
ZSAiQWlyQmFzaWNCbG9jay5oIgorI2luY2x1ZGUgIkIzSW5kZXhNYXAuaCIKKyNpbmNsdWRlICJD
Q2FsbEhlbHBlcnMuaCIKKyNpbmNsdWRlIDx3dGYvQm94Lmg+CiAjaW5jbHVkZSA8d3RmL1NoYXJl
ZFRhc2suaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKLW5hbWVzcGFjZSBKU0MgewotCi1j
bGFzcyBDQ2FsbEhlbHBlcnM7Ci0KLW5hbWVzcGFjZSBCMyB7IG5hbWVzcGFjZSBBaXIgeworbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7IG5hbWVzcGFjZSBBaXIgewogCiBjbGFzcyBDb2Rl
OwogCkBAIC00NCw3ICs0NCwxMCBAQCBzdHJ1Y3QgR2VuZXJhdGlvbkNvbnRleHQgewogICAgIHR5
cGVkZWYgU2hhcmVkVGFzazxMYXRlUGF0aEZ1bmN0aW9uPiBMYXRlUGF0aDsKIAogICAgIFZlY3Rv
cjxSZWZQdHI8TGF0ZVBhdGg+PiBsYXRlUGF0aHM7Ci0gICAgQ29kZSogY29kZTsKKyAgICBJbmRl
eE1hcDxCYXNpY0Jsb2NrLCBCb3g8Q0NhbGxIZWxwZXJzOjpMYWJlbD4+IGJsb2NrTGFiZWxzOwor
ICAgIEJhc2ljQmxvY2sqIGN1cnJlbnRCbG9jayB7IG51bGxwdHIgfTsKKyAgICB1bnNpZ25lZCBp
bmRleEluQmxvY2sgeyBVSU5UX01BWCB9OworICAgIENvZGUqIGNvZGUgeyBudWxscHRyIH07CiB9
OwogCiB9IH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMzo6QWlyCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvYWlyL0Fpckluc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvQWlySW5zdC5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDYg
KzQ1LDExIEBAIGJvb2wgSW5zdDo6aGFzQXJnRWZmZWN0cygpCiAgICAgcmV0dXJuIHJlc3VsdDsK
IH0KIAorYm9vbCBJbnN0Ojppc0Nsb25lYWJsZSgpCit7CisgICAgcmV0dXJuICFvcmlnaW4gfHwg
b3JpZ2luLT5pc0Nsb25lYWJsZSgpOworfQorCiB1bnNpZ25lZCBJbnN0Ojpqc0hhc2goKSBjb25z
dAogewogICAgIHVuc2lnbmVkIHJlc3VsdCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihvcGNvZGUp
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0LmgJKHJldmlzaW9uIDIw
MjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xNzQsNiArMTc0LDkgQEAgcHVibGljOgogCiAgICAgLy8gVGVsbHMgeW91IGlm
IHRoaXMgb3BlcmF0aW9uIGhhcyBhcmcgZWZmZWN0cy4KICAgICBib29sIGhhc0FyZ0VmZmVjdHMo
KTsKKyAgICAKKyAgICAvLyBUZWxscyB5b3UgaWYgdGhpcyBvcGVyYXRpb24gaGFzIG5vbi1jb250
cm9sIGVmZmVjdHMuCisgICAgYm9vbCBoYXNOb25Db250cm9sRWZmZWN0cygpIHsgcmV0dXJuIGhh
c05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKCkgfHwgaGFzQXJnRWZmZWN0cygpOyB9CiAKICAgICAv
LyBHZW5lcmF0ZSBzb21lIGNvZGUgZm9yIHRoaXMgaW5zdHJ1Y3Rpb24uIFRoaXMgaXMsIGxpa2Us
IGxpdGVyYWxseSBvdXIgYmFja2VuZC4gSWYgdGhpcyBpcyB0aGUKICAgICAvLyB0ZXJtaW5hbCwg
aXQgcmV0dXJucyB0aGUganVtcCB0aGF0IG5lZWRzIHRvIGJlIGxpbmtlZCBmb3IgdGhlICJ0aGVu
IiBjYXNlLCB3aXRoIHRoZSAiZWxzZSIKQEAgLTE4OCw2ICsxOTEsMTAgQEAgcHVibGljOgogICAg
IC8vIHJldHVybnMgMiBpZiAwIGFuZCAxIGJlbmVmaXQgZnJvbSBhbGlhc2luZyB0byBUbXAzLgog
ICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBzaG91bGRUcnlBbGlhc2luZ0RlZigpOwogICAgIAorICAg
IC8vIFNvbWUgaW5zdHVjdGlvbnMgd2lsbCByZWZ1c2UgdG8gYWxsb3cgY2xvbmluZy4gSWYgdGhp
cyByZXR1cm5zIGZhbHNlLCB5b3UgbXVzdCBtYWtlIHN1cmUgdGhhdAorICAgIC8vIHlvdSBuZXZl
ciBpbnRyb2R1Y2UgY29waWVzIG9mIHRoZSBpbnN0cnVjdGlvbi4KKyAgICBib29sIGlzQ2xvbmVh
YmxlKCk7CisgICAgCiAgICAgLy8gVGhpcyBjb21wdXRlcyBhIGhhc2ggZm9yIGNvbXBhcmluZyB0
aGlzIHRvIEpTQWlyJ3MgSW5zdC4KICAgICB1bnNpZ25lZCBqc0hhc2goKSBjb25zdDsKIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJTaW1wbGlmeUNGRy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJTaW1wbGlmeUNGRy5jcHAJ
KHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyU2lt
cGxpZnlDRkcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05NSwzMyArOTUsMzIgQEAgYm9vbCBzaW1w
bGlmeUNGRyhDb2RlJiBjb2RlKQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIAot
ICAgICAgICAgICAgLy8gTm93IGNoZWNrIGlmIHRoZSBibG9jaydzIHRlcm1pbmFsIGNhbiBiZSBy
ZXBsYWNlZCB3aXRoIGEganVtcC4KLSAgICAgICAgICAgIGlmIChibG9jay0+bnVtU3VjY2Vzc29y
cygpID4gMSkgewotICAgICAgICAgICAgICAgIC8vIFRoZSB0ZXJtaW5hbCBtdXN0IG5vdCBoYXZl
IHdlaXJkIGVmZmVjdHMuCi0gICAgICAgICAgICAgICAgaWYgKCFibG9jay0+bGFzdCgpLmhhc0Fy
Z0VmZmVjdHMoKQotICAgICAgICAgICAgICAgICAgICAmJiAhYmxvY2stPmxhc3QoKS5oYXNOb25B
cmdOb25Db250cm9sRWZmZWN0cygpKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIEFsbCBvZiB0
aGUgc3VjY2Vzc29ycyBtdXN0IGJlIHRoZSBzYW1lLgotICAgICAgICAgICAgICAgICAgICBib29s
IGFsbFNhbWUgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICBCYXNpY0Jsb2NrKiBmaXJzdFN1
Y2Nlc3NvciA9IGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKTsKLSAgICAgICAgICAgICAgICAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMTsgaSA8IGJsb2NrLT5udW1TdWNjZXNzb3JzKCk7ICsraSkgewot
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJsb2NrLT5zdWNjZXNzb3JCbG9jayhpKSAhPSBm
aXJzdFN1Y2Nlc3NvcikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbFNhbWUgPSBm
YWxzZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBp
ZiAoYWxsU2FtZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygiQ2hhbmdpbmcgIiwgcG9pbnRlckR1bXAo
YmxvY2spLCAiJ3MgdGVybWluYWwgdG8gYSBKdW1wLlxuIik7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBibG9jay0+bGFzdCgpID0gSW5zdChKdW1wLCBibG9jay0+bGFzdCgpLm9yaWdpbik7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBibG9jay0+c3VjY2Vzc29ycygpLnJlc2l6ZSgxKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLT5zdWNjZXNzb3JzKClbMF0uZnJlcXVlbmN5KCkg
PSBGcmVxdWVuY3lDbGFzczo6Tm9ybWFsOwotICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdl
ZCA9IHRydWU7CisgICAgICAgICAgICAvLyBOb3cgY2hlY2sgaWYgdGhlIGJsb2NrJ3MgdGVybWlu
YWwgY2FuIGJlIHJlcGxhY2VkIHdpdGggYSBqdW1wLiBUaGUgdGVybWluYWwgbXVzdCBub3QKKyAg
ICAgICAgICAgIC8vIGhhdmUgd2VpcmQgZWZmZWN0cy4KKyAgICAgICAgICAgIGlmIChibG9jay0+
bnVtU3VjY2Vzc29ycygpID4gMSAKKyAgICAgICAgICAgICAgICAmJiAhYmxvY2stPmxhc3QoKS5o
YXNOb25Db250cm9sRWZmZWN0cygpKSB7CisgICAgICAgICAgICAgICAgLy8gQWxsIG9mIHRoZSBz
dWNjZXNzb3JzIG11c3QgYmUgdGhlIHNhbWUuCisgICAgICAgICAgICAgICAgYm9vbCBhbGxTYW1l
ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBCYXNpY0Jsb2NrKiBmaXJzdFN1Y2Nlc3NvciA9IGJs
b2NrLT5zdWNjZXNzb3JCbG9jaygwKTsKKyAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAxOyBpIDwgYmxvY2stPm51bVN1Y2Nlc3NvcnMoKTsgKytpKSB7CisgICAgICAgICAgICAgICAg
ICAgIGlmIChibG9jay0+c3VjY2Vzc29yQmxvY2soaSkgIT0gZmlyc3RTdWNjZXNzb3IpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGFsbFNhbWUgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIGlmIChhbGxTYW1lKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh2
ZXJib3NlKQorICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygiQ2hhbmdpbmcgIiwgcG9p
bnRlckR1bXAoYmxvY2spLCAiJ3MgdGVybWluYWwgdG8gYSBKdW1wLlxuIik7CisgICAgICAgICAg
ICAgICAgICAgIGJsb2NrLT5sYXN0KCkgPSBJbnN0KEp1bXAsIGJsb2NrLT5sYXN0KCkub3JpZ2lu
KTsKKyAgICAgICAgICAgICAgICAgICAgYmxvY2stPnN1Y2Nlc3NvcnMoKS5yZXNpemUoMSk7Cisg
ICAgICAgICAgICAgICAgICAgIGJsb2NrLT5zdWNjZXNzb3JzKClbMF0uZnJlcXVlbmN5KCkgPSBG
cmVxdWVuY3lDbGFzczo6Tm9ybWFsOworICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1
ZTsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIC8vIEZp
bmFsbHkgaGFuZGxlIGp1bXBzIHRvIGEgYmxvY2sgd2l0aCBvbmUgcHJlZGVjZXNzb3IuCi0gICAg
ICAgICAgICBpZiAoYmxvY2stPm51bVN1Y2Nlc3NvcnMoKSA9PSAxKSB7CisgICAgICAgICAgICBp
ZiAoYmxvY2stPm51bVN1Y2Nlc3NvcnMoKSA9PSAxCisgICAgICAgICAgICAgICAgJiYgIWJsb2Nr
LT5sYXN0KCkuaGFzTm9uQ29udHJvbEVmZmVjdHMoKSkgewogICAgICAgICAgICAgICAgIEJhc2lj
QmxvY2sqIHN1Y2Nlc3NvciA9IGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKTsKICAgICAgICAgICAg
ICAgICBpZiAoc3VjY2Vzc29yICE9IGJsb2NrICYmIHN1Y2Nlc3Nvci0+bnVtUHJlZGVjZXNzb3Jz
KCkgPT0gMSkgewogICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChzdWNjZXNzb3It
PnByZWRlY2Vzc29yKDApID09IGJsb2NrKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyU3BlY2lhbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJTcGVjaWFsLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJTcGVjaWFsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01NSw3ICs1NSwx
MiBAQCBPcHRpb25hbDx1bnNpZ25lZD4gU3BlY2lhbDo6c2hvdWxkVHJ5QWxpCiAgICAgcmV0dXJu
IE51bGxvcHQ7CiB9CiAKLWJvb2wgU3BlY2lhbDo6aGFzTm9uQXJnTm9uQ29udHJvbEVmZmVjdHMo
KQorYm9vbCBTcGVjaWFsOjppc1Rlcm1pbmFsKEluc3QmKQoreworICAgIHJldHVybiBmYWxzZTsK
K30KKworYm9vbCBTcGVjaWFsOjpoYXNOb25BcmdOb25Db250cm9sRWZmZWN0cyhJbnN0JikKIHsK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyU3BlY2lhbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyU3BlY2lhbC5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvYWlyL0FpclNwZWNpYWwuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC04Nyw5ICs4NywxMiBAQCBwdWJsaWM6
CiAKICAgICB2aXJ0dWFsIGNvbnN0IFJlZ2lzdGVyU2V0JiBleHRyYUVhcmx5Q2xvYmJlcmVkUmVn
cyhJbnN0JikgPSAwOwogICAgIHZpcnR1YWwgY29uc3QgUmVnaXN0ZXJTZXQmIGV4dHJhQ2xvYmJl
cmVkUmVncyhJbnN0JikgPSAwOworICAgIAorICAgIC8vIEJ5IGRlZmF1bHQsIHRoaXMgcmV0dXJu
cyBmYWxzZS4KKyAgICB2aXJ0dWFsIGJvb2wgaXNUZXJtaW5hbChJbnN0Jik7CiAKICAgICAvLyBC
eSBkZWZhdWx0LCB0aGlzIHJldHVybnMgdHJ1ZS4KLSAgICB2aXJ0dWFsIGJvb2wgaGFzTm9uQXJn
Tm9uQ29udHJvbEVmZmVjdHMoKTsKKyAgICB2aXJ0dWFsIGJvb2wgaGFzTm9uQXJnTm9uQ29udHJv
bEVmZmVjdHMoSW5zdCYpOwogCiAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAg
ICAgdm9pZCBkZWVwRHVtcChQcmludFN0cmVhbSYpIGNvbnN0OwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJiCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvb3Bjb2RlX2dlbmVyYXRvci5yYgkocmV2aXNpb24gMjAy
ODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJi
CSh3b3JraW5nIGNvcHkpCkBAIC05NzYsNiArOTc2LDMyIEBAIHdyaXRlSCgiT3Bjb2RlR2VuZXJh
dGVkIikgewogICAgIG91dHAucHV0cyAicmV0dXJuIGZhbHNlOyIKICAgICBvdXRwLnB1dHMgIn0i
CiAKKyAgICBvdXRwLnB1dHMgImJvb2wgSW5zdDo6aXNUZXJtaW5hbCgpIgorICAgIG91dHAucHV0
cyAieyIKKyAgICBvdXRwLnB1dHMgInN3aXRjaCAob3Bjb2RlKSB7IgorICAgIGZvdW5kVHJ1ZSA9
IGZhbHNlCisgICAgJG9wY29kZXMudmFsdWVzLmVhY2ggeworICAgICAgICB8IG9wY29kZSB8Cisg
ICAgICAgIGlmIG9wY29kZS5hdHRyaWJ1dGVzWzp0ZXJtaW5hbF0KKyAgICAgICAgICAgIG91dHAu
cHV0cyAiY2FzZSAje29wY29kZS5uYW1lfToiCisgICAgICAgICAgICBmb3VuZFRydWUgPSB0cnVl
CisgICAgICAgIGVuZAorICAgIH0KKyAgICBpZiBmb3VuZFRydWUKKyAgICAgICAgb3V0cC5wdXRz
ICJyZXR1cm4gdHJ1ZTsiCisgICAgZW5kCisgICAgJG9wY29kZXMudmFsdWVzLmVhY2ggeworICAg
ICAgICB8IG9wY29kZSB8CisgICAgICAgIGlmIG9wY29kZS5jdXN0b20KKyAgICAgICAgICAgIG91
dHAucHV0cyAiY2FzZSAje29wY29kZS5uYW1lfToiCisgICAgICAgICAgICBvdXRwLnB1dHMgInJl
dHVybiAje29wY29kZS5uYW1lfUN1c3RvbTo6aXNUZXJtaW5hbCgqdGhpcyk7IgorICAgICAgICBl
bmQKKyAgICB9CisgICAgb3V0cC5wdXRzICJkZWZhdWx0OiIKKyAgICBvdXRwLnB1dHMgInJldHVy
biBmYWxzZTsiCisgICAgb3V0cC5wdXRzICJ9IgorICAgIG91dHAucHV0cyAifSIKKyAgICAKICAg
ICBvdXRwLnB1dHMgImJvb2wgSW5zdDo6aGFzTm9uQXJnTm9uQ29udHJvbEVmZmVjdHMoKSIKICAg
ICBvdXRwLnB1dHMgInsiCiAgICAgb3V0cC5wdXRzICJzd2l0Y2ggKG9wY29kZSkgeyIKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5jcHAJKHJldmlzaW9uIDIwMjgwOSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjgsOCArMjgsMTggQEAKIAogI2lmIEVOQUJMRShGVExfSklUKQogCisjaW5jbHVkZSAi
QjNBcmd1bWVudFJlZ1ZhbHVlLmgiCisjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrSW5saW5lcy5oIgor
I2luY2x1ZGUgIkIzQ0NhbGxWYWx1ZS5oIgorI2luY2x1ZGUgIkIzQ29uc3QzMlZhbHVlLmgiCisj
aW5jbHVkZSAiQjNDb25zdFB0clZhbHVlLmgiCiAjaW5jbHVkZSAiQjNNYXRoRXh0cmFzLmgiCisj
aW5jbHVkZSAiQjNNZW1vcnlWYWx1ZS5oIgorI2luY2x1ZGUgIkIzU2xvdEJhc2VWYWx1ZS5oIgog
I2luY2x1ZGUgIkIzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmgiCisjaW5jbHVkZSAiQjNTd2l0
Y2hWYWx1ZS5oIgorI2luY2x1ZGUgIkIzVXBzaWxvblZhbHVlLmgiCisjaW5jbHVkZSAiQjNWYWx1
ZUlubGluZXMuaCIKICNpbmNsdWRlICJTdXBlclNhbXBsZXIuaCIKIAogbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBGVEwgewpAQCAtNTc4LDEyICs1ODgsMTIgQEAgTFZhbHVlIE91dHB1dDo6c2Vs
ZWN0KExWYWx1ZSB2YWx1ZSwgTFZhbAogCiB2b2lkIE91dHB1dDo6anVtcChMQmFzaWNCbG9jayBk
ZXN0aW5hdGlvbikKIHsKLSAgICBtX2Jsb2NrLT5hcHBlbmROZXc8QjM6OkNvbnRyb2xWYWx1ZT4o
bV9wcm9jLCBCMzo6SnVtcCwgb3JpZ2luKCksIEIzOjpGcmVxdWVudGVkQmxvY2soZGVzdGluYXRp
b24pKTsKKyAgICBtX2Jsb2NrLT5hcHBlbmROZXdDb250cm9sVmFsdWUobV9wcm9jLCBCMzo6SnVt
cCwgb3JpZ2luKCksIEIzOjpGcmVxdWVudGVkQmxvY2soZGVzdGluYXRpb24pKTsKIH0KIAogdm9p
ZCBPdXRwdXQ6OmJyYW5jaChMVmFsdWUgY29uZGl0aW9uLCBMQmFzaWNCbG9jayB0YWtlbiwgV2Vp
Z2h0IHRha2VuV2VpZ2h0LCBMQmFzaWNCbG9jayBub3RUYWtlbiwgV2VpZ2h0IG5vdFRha2VuV2Vp
Z2h0KQogewotICAgIG1fYmxvY2stPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIG1fYmxv
Y2stPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgbV9wcm9jLCBCMzo6QnJhbmNoLCBv
cmlnaW4oKSwgY29uZGl0aW9uLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGFrZW4sIHRha2Vu
V2VpZ2h0LmZyZXF1ZW5jeUNsYXNzKCkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sobm90VGFr
ZW4sIG5vdFRha2VuV2VpZ2h0LmZyZXF1ZW5jeUNsYXNzKCkpKTsKQEAgLTYwMywxMiArNjEzLDEy
IEBAIHZvaWQgT3V0cHV0OjpjaGVjayhMVmFsdWUgY29uZGl0aW9uLCBXZWkKIAogdm9pZCBPdXRw
dXQ6OnJldChMVmFsdWUgdmFsdWUpCiB7Ci0gICAgbV9ibG9jay0+YXBwZW5kTmV3PEIzOjpDb250
cm9sVmFsdWU+KG1fcHJvYywgQjM6OlJldHVybiwgb3JpZ2luKCksIHZhbHVlKTsKKyAgICBtX2Js
b2NrLT5hcHBlbmROZXdDb250cm9sVmFsdWUobV9wcm9jLCBCMzo6UmV0dXJuLCBvcmlnaW4oKSwg
dmFsdWUpOwogfQogCiB2b2lkIE91dHB1dDo6dW5yZWFjaGFibGUoKQogewotICAgIG1fYmxvY2st
PmFwcGVuZE5ldzxCMzo6Q29udHJvbFZhbHVlPihtX3Byb2MsIEIzOjpPb3BzLCBvcmlnaW4oKSk7
CisgICAgbV9ibG9jay0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKG1fcHJvYywgQjM6Ok9vcHMsIG9y
aWdpbigpKTsKIH0KIAogQ2hlY2tWYWx1ZSogT3V0cHV0OjpzcGVjdWxhdGUoTFZhbHVlIHZhbHVl
KQpAQCAtNjM4LDcgKzY0OCw3IEBAIFBhdGNocG9pbnRWYWx1ZSogT3V0cHV0OjpwYXRjaHBvaW50
KExUeXAKIAogdm9pZCBPdXRwdXQ6OnRyYXAoKQogewotICAgIG1fYmxvY2stPmFwcGVuZE5ldzxC
Mzo6Q29udHJvbFZhbHVlPihtX3Byb2MsIEIzOjpPb3BzLCBvcmlnaW4oKSk7CisgICAgbV9ibG9j
ay0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKG1fcHJvYywgQjM6Ok9vcHMsIG9yaWdpbigpKTsKIH0K
IAogVmFsdWVGcm9tQmxvY2sgT3V0cHV0OjphbmNob3IoTFZhbHVlIHZhbHVlKQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwx
OSArMzAsOCBAQAogCiAjaWYgRU5BQkxFKEZUTF9KSVQpCiAKLSNpbmNsdWRlICJCM0FyZ3VtZW50
UmVnVmFsdWUuaCIKLSNpbmNsdWRlICJCM0Jhc2ljQmxvY2tJbmxpbmVzLmgiCi0jaW5jbHVkZSAi
QjNDQ2FsbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNDb21waWxhdGlvbi5oIgotI2luY2x1ZGUgIkIz
Q29uc3QzMlZhbHVlLmgiCi0jaW5jbHVkZSAiQjNDb25zdFB0clZhbHVlLmgiCi0jaW5jbHVkZSAi
QjNDb250cm9sVmFsdWUuaCIKLSNpbmNsdWRlICJCM01lbW9yeVZhbHVlLmgiCiAjaW5jbHVkZSAi
QjNQcm9jZWR1cmUuaCIKLSNpbmNsdWRlICJCM1Nsb3RCYXNlVmFsdWUuaCIKLSNpbmNsdWRlICJC
M1N3aXRjaFZhbHVlLmgiCi0jaW5jbHVkZSAiQjNVcHNpbG9uVmFsdWUuaCIKLSNpbmNsdWRlICJC
M1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIkZUTEFiYnJldmlhdGVkVHlwZXMuaCIKICNpbmNs
dWRlICJGVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgiCiAjaW5jbHVkZSAiRlRMQ29tbW9uVmFs
dWVzLmgiCkBAIC0zNzgsOCArMzY3LDggQEAgcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFZlY3RvclR5cGU+CiAgICAgdm9pZCBzd2l0Y2hJbnN0cnVjdGlvbihMVmFsdWUgdmFsdWUsIGNv
bnN0IFZlY3RvclR5cGUmIGNhc2VzLCBMQmFzaWNCbG9jayBmYWxsVGhyb3VnaCwgV2VpZ2h0IGZh
bGxUaHJvdWdoV2VpZ2h0KQogICAgIHsKLSAgICAgICAgQjM6OlN3aXRjaFZhbHVlKiBzd2l0Y2hW
YWx1ZSA9IG1fYmxvY2stPmFwcGVuZE5ldzxCMzo6U3dpdGNoVmFsdWU+KAotICAgICAgICAgICAg
bV9wcm9jLCBvcmlnaW4oKSwgdmFsdWUsIEIzOjpGcmVxdWVudGVkQmxvY2soZmFsbFRocm91Z2gp
KTsKKyAgICAgICAgQjM6OlN3aXRjaFZhbHVlKiBzd2l0Y2hWYWx1ZSA9IG1fYmxvY2stPmFwcGVu
ZE5ldzxCMzo6U3dpdGNoVmFsdWU+KG1fcHJvYywgb3JpZ2luKCksIHZhbHVlKTsKKyAgICAgICAg
c3dpdGNoVmFsdWUtPnNldEZhbGxUaHJvdWdoKEZyZXF1ZW50ZWRCbG9jayhmYWxsVGhyb3VnaCkp
OwogICAgICAgICBmb3IgKGNvbnN0IFN3aXRjaENhc2UmIHN3aXRjaENhc2UgOiBjYXNlcykgewog
ICAgICAgICAgICAgaW50NjRfdCB2YWx1ZSA9IHN3aXRjaENhc2UudmFsdWUoKS0+YXNJbnQoKTsK
ICAgICAgICAgICAgIEIzOjpGcmVxdWVudGVkQmxvY2sgdGFyZ2V0KHN3aXRjaENhc2UudGFyZ2V0
KCksIHN3aXRjaENhc2Uud2VpZ2h0KCkuZnJlcXVlbmN5Q2xhc3MoKSk7CkluZGV4OiBXZWJzaXRl
cy93ZWJraXQub3JnL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy93ZWJraXQub3Jn
L0NoYW5nZUxvZwkocmV2aXNpb24gMjAyODA5KQorKysgV2Vic2l0ZXMvd2Via2l0Lm9yZy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxNi0wNS0yOSAgRmlsaXAg
UGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCB0YWJsZS1iYXNl
ZCBzd2l0Y2hlcyBpbiBCMy9BaXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1MTE0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorICAgICAgICAKKyAgICAgICAgVXBkYXRlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBuZXcgUG9s
eUp1bXAgb3Bjb2RlLgorCisgICAgICAgICogZG9jcy9iMy9pbnRlcm1lZGlhdGUtcmVwcmVzZW50
YXRpb24uaHRtbDoKKwogMjAxNi0wNy0wMSAgSm9uIERhdmlzICA8am9uZEBhcHBsZS5jb20+CiAK
ICAgICAgICAgQWRkZWQgYSBjb2xvcmZ1bCBuZXcgaW1hZ2UgYW5kIGZpeGVkIHRoZSBPcGVuIEdy
YXBoIGF0dHJpYnV0ZS4KSW5kZXg6IFdlYnNpdGVzL3dlYmtpdC5vcmcvZG9jcy9iMy9pbnRlcm1l
ZGlhdGUtcmVwcmVzZW50YXRpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy93ZWJraXQu
b3JnL2RvY3MvYjMvaW50ZXJtZWRpYXRlLXJlcHJlc2VudGF0aW9uLmh0bWwJKHJldmlzaW9uIDIw
MjgwOSkKKysrIFdlYnNpdGVzL3dlYmtpdC5vcmcvZG9jcy9iMy9pbnRlcm1lZGlhdGUtcmVwcmVz
ZW50YXRpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNTM3LDYgKzUzNywzOSBAQCBwYXRjaHBv
aW50LT5zZXRHZW5lcmF0b3IoCiAgICAgICAgIGFsc28gY29udGFpbnMgYSBmYWxsLXRocm91Z2gg
dGFyZ2V0IGluIGNhc2UgdGhlIGNoaWxkIGhhcyBhIHZhbHVlIHRoYXQgd2Fzbid0IG1lbnRpb25l
ZAogICAgICAgICBpbiB0aGUgY2FzZXMgbGlzdC4gIE11c3QgdXNlIHRoZSBTd2l0Y2hWYWx1ZSBj
bGFzcy4gIE11c3QgYXBwZWFyIGF0IHRoZSBlbmQgb2YgdGhlIGJhc2ljCiAgICAgICAgIGJsb2Nr
LjwvZGQ+CisgICAgICAKKyAgICAgIDxkdD5Wb2lkIFBvbHlKdW1wKEludFB0ciwgYmxvY2tzLi4u
KTwvZHQ+CisgICAgICA8ZGQ+CisgICAgICAgIDxwPkp1bXBzIHRvIHRoZSBnaXZlbiBhZGRyZXNz
LiBUaGUgY29tcGlsZXIgd2lsbCBhc3N1bWUgdGhhdCB0aGlzIGp1bXBzIHRvIG9uZSBvZiB0aGUg
Z2l2ZW4KKyAgICAgICAgICBibG9ja3MuIFRoZSBjb21waWxlciBtYWtlcyBubyBhdHRlbXB0IHRv
IHByb3ZlIG9yIHZhbGlkYXRlIHRoYXQgdGhlIHBhc3NlZCBqdW1wIGFkZHJlc3MgaXMKKyAgICAg
ICAgICBhY3R1YWxseSB0aGUgYWRkcmVzcyBvZiBhbnkgb2YgdGhvc2UgYmxvY2tzLiBOb25zZW5z
aWNhbCB0aGluZ3Mgd2lsbCBoYXBwZW4gaWYgdGhlIHBhc3NlZAorICAgICAgICAgIGFkZHJlc3Mg
aXMgbm90IHRoZSBhZGRyZXNzIG9mIG9uZSBvZiB0aGUgYmxvY2tzIGluIHRoZSBzdWNjZXNzb3Ig
bGlzdC4gWW91IGNhbiBhcnJhbmdlIHRvCisgICAgICAgICAgZ2V0IHRoZSBhZGRyZXNzZXMgb2Yg
YmxvY2tzIGJ5IHBhc3NpbmcgYSBjYWxsYmFjayB0byBQb2x5SnVtcC4gVGhpcyBpcyB1c2VkIGlu
dGVybmFsbHkKKyAgICAgICAgICBmb3IgbG93ZXJpbmcgU3dpdGNoIG9wY29kZXMuIFlvdSBjYW4g
YWxzbyB1c2UgaXQgZGlyZWN0bHkuPC9wPgorICAgICAgCisgICAgICAgIDxwPlBvbHlKdW1wIGlz
IG5vdCBjbG9uZWFibGUuIEZvciBlYWNoIFBvbHlKdW1wIHlvdSBjcmVhdGUsIHRoZXJlIHdpbGwg
YmUgb25lIGluZGlyZWN0CisgICAgICAgICAganVtcCBnZW5lcmF0ZWQuIFRoaXMgaXMgbmVjZXNz
YXJ5IHRvIGVuc3VyZSBzb3VuZG5lc3Mgb2YgdGhlIGNhbGxiYWNrLiBJZiB0aGUgUG9seUp1bXAK
KyAgICAgICAgICBjb3VsZCBiZSBjbG9uZWQsIHRoZW4gdGhlIGNhbGxiYWNrIHdvdWxkIGdldCBj
YWxsZWQgZm9yIGVhY2ggY2xvbmUuIFByZXN1bWFibHksIHlvdSdkCisgICAgICAgICAgaW1wbGVt
ZW50IHRoZSBjYWxsYmFjayBieSBwb3B1bGF0aW5nIHNvbWUgdGFibGUgd2l0aCB0aGUgYWRkcmVz
c2VzIG9mIHRoZSBibG9ja3MuIElmIHRoZQorICAgICAgICAgIGNhbGxiYWNrIGdldHMgY2FsbGVk
IG11bHRpcGxlIHRpbWVzIHRoZW4gaXQgbWF5IHJldHVybiBkaWZmZXJlbnQgYWRkcmVzc2VzIGVh
Y2ggdGltZSAtCisgICAgICAgICAgc2luY2UgYWZ0ZXIgY2xvbmluZyBhIFBvbHlKdW1wLCB0aGUg
Y29tcGlsZXIgbWF5IHJldGFyZ2V0IGFueSBvZiBpdHMgc3VjY2Vzc29yIGVkZ2VzLgorICAgICAg
ICAgIFRoaXMgd291bGQgYmUgY29uZnVzaW5nLCBzaW5jZSB0aGVuIHlvdSB3b3VsZG4ndCBrbm93
IHdoYXQgdG8gZG8gd2l0aCBkaXNjcmVwYW5jaWVzIGJldHdlZW4KKyAgICAgICAgICBhZGRyZXNz
ZXMgcmV0dXJuZWQgYnkgdGhlIHZhcmlvdXMgY2FsbHMgdG8gdGhlIGNhbGxiYWNrLiBEaXNhbGxv
d2luZyBjbG9uaW5nIG9mIFBvbHlKdW1wCisgICAgICAgICAgc29sdmVzIHRoaXMgcHJvYmxlbS48
L3A+CisgICAgICAgIAorICAgICAgICA8cD5BIGNsb3NlbHkgcmVsYXRlZCBwcm9ibGVtIGlzIHRo
YXQgaWYgeW91IGVtaXQgbXVsdGlwbGUgUG9seUp1bXAgaW5zdHJ1Y3Rpb25zLCB0aGVuIGV2ZW4K
KyAgICAgICAgICBpZiB0aGV5IGluaXRpYWxseSBzaGFyZSB0aGUgc2FtZSBzdWNjZXNzb3JzLCB5
b3UgY2Fubm90IGd1YXJhbnRlZSB0aGF0IHRoZXkgd2lsbCBjb250aW51ZQorICAgICAgICAgIHRv
IHNoYXJlIHRoZSBzYW1lIHN1Y2Nlc3NvcnMgYWZ0ZXIgb3B0aW1pemF0aW9uLiBUaGlzIG1lYW5z
IHRoYXQgUG9seUp1bXAgY2Fubm90CisgICAgICAgICAgY3VycmVudGx5IGJlIHVzZWQgZm9yIGlt
cGxlbWVudGluZyBkaXJlY3QgdGhyZWFkZWQgaW50ZXJwcmV0ZXJzLCBhdCBsZWFzdCBub3QgdGhl
IGNsYXNzaWMKKyAgICAgICAgICBraW5kOiB0byBtYWtlIGl0IHdvcmssIHlvdSBoYXZlIHRvIGhh
dmUgYSBzaGFyZWQgZGlzcGF0Y2ggYmxvY2sgc28gdGhhdCB5b3UgaGF2ZSBhIHNpbmdsZQorICAg
ICAgICAgIFBvbHlKdW1wLiBUaGlzIG1pZ2h0IGJlIGJldHRlciB0aGFuIGEgU3dpdGNoLWJhc2Vk
IGludGVycHJldGVyLCBidXQgaXQncyBkZWZpbml0ZWx5IG5vdAorICAgICAgICAgIGFzIGdvb2Qg
YXMgd2hhdCB5b3UnZCBnZXQgd2l0aCBHQ0Mtc3R5bGUgY29tcHV0ZWQgZ290by48L3A+CisgICAg
ICAgIAorICAgICAgICA8cD5Qb2x5SnVtcCBpcyBzbyBuYW1lZCB0byBhdm9pZCBjb25mdXNpb24g
d2l0aCBjb21wdXRlZCBnb3RvcyBhbmQgaW5kaXJlY3QgYnJhbmNoZXMgaW4KKyAgICAgICAgICBv
dGhlciBjb21waWxlcnMuIEl0IGhhcyBzaWduaWZpY2FudCByZXN0cmljdGlvbnMgdGhhdCB0aG9z
ZSBvcGVyYXRpb25zIGRvIG5vdCBoYXZlLiBUaGVzZQorICAgICAgICAgIHJlc3RyaWN0aW9ucyBt
YWtlIGl0IGVhc2llciBmb3IgdGhlIG9wdGltaXplciB0byB3b3JrIHdpdGggc2luY2UgdGhlIGNv
bnRyb2wgZmxvdyBnZXRzIHRvCisgICAgICAgICAgYmUgZXhwbGljaXQgKFBvbHlKdW1wIGhhcyBh
IGZpbml0ZSBzZXQgb2Ygc3VjY2Vzc29ycyBsaWtlIGFueSBvdGhlciBibG9jayB0ZXJtaW5hbCku
PC9wPgorICAgICAgPC9kZD4KIAogICAgICAgPGR0PlZvaWQgUmV0dXJuKFQpPC9kdD4KICAgICAg
IDxkZD5Xb3JrcyBmb3IgYW55IHR5cGUgZXhjZXB0IFZvaWQuICBSZXR1cm5zIHRoZSBnaXZlbiB2
YWx1ZSBhbmQgdGVybWluYXRlcyB0aGUgcHJvY2VkdXJlLgpJbmRleDogTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjAy
ODA5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMTYtMDUtMjkgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAg
ICAgICBJbXBsZW1lbnQgdGFibGUtYmFzZWQgc3dpdGNoZXMgaW4gQjMvQWlyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTExNDEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGpzL3JlZ3Jlc3MvYmlnc3dp
dGNoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9iaWdzd2l0Y2gu
aHRtbDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvYmlnc3dpdGNo
LmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisKIDIwMTYtMDctMDQgIFl1c3VrZSBTdXp1a2kg
IDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgc2tpcCBtaXNj
LWJ1Z3MtODQ3Mzg5LWpwZWcyMDAwLmpzIGluIGpzYyBzdHJlc3MgdGVzdHMKSW5kZXg6IExheW91
dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdyZXNzL2JpZ3N3aXRjaAorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBubyBleGNlcHRpb24gdGhyb3duCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9iaWdzd2l0Y2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEyIEBA
Cis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4K
KzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVn
cmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9iaWdzd2l0
Y2guanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBv
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9zY3JpcHQtdGVzdHMvYmlnc3dpdGNoLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2JpZ3N3aXRjaC5qcwkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2JpZ3N3aXRjaC5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDIxMSBAQAorZnVuY3Rpb24gZm9vKG8pIHsKKyAgICB2YXIgcmVz
dWx0ID0gMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7ICsraSkgeworICAgICAgICB2
YXIgdmFsdWUgPSBpICYgNjM7CisgICAgICAgIHN3aXRjaCAodmFsdWUpIHsKKyAgICAgICAgY2Fz
ZSAwOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXN1bHQgKz0gby5iOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmM7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZDsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ6CisgICAgICAgICAgICByZXN1bHQg
Kz0gby5lOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNToKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLmY7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA2OgorICAg
ICAgICAgICAgcmVzdWx0ICs9IG8uZzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IDc6CisgICAgICAgICAgICByZXN1bHQgKz0gby5oOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSA5OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uajsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIDEwOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDExOgorICAgICAgICAgICAgcmVzdWx0
ICs9IG8uYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDEyOgorICAgICAgICAg
ICAgcmVzdWx0ICs9IG8uYjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDEzOgor
ICAgICAgICAgICAgcmVzdWx0ICs9IG8uYzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIDE0OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZDsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIDE1OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIDE2OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZjsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE3OgorICAgICAgICAgICAgcmVzdWx0ICs9
IG8uZzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE4OgorICAgICAgICAgICAg
cmVzdWx0ICs9IG8uaDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE5OgorICAg
ICAgICAgICAgcmVzdWx0ICs9IG8uaTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IDIwOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uajsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIDIxOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIDIyOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDIzOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8u
YTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI0OgorICAgICAgICAgICAgcmVz
dWx0ICs9IG8uYjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI1OgorICAgICAg
ICAgICAgcmVzdWx0ICs9IG8uYzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI2
OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIDI3OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIDI4OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZjsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIDI5OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZzsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDMwOgorICAgICAgICAgICAgcmVzdWx0
ICs9IG8uaDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDMxOgorICAgICAgICAg
ICAgcmVzdWx0ICs9IG8uaTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDMyOgor
ICAgICAgICAgICAgcmVzdWx0ICs9IG8uajsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIDMzOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIDM0OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIDM1OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM2OgorICAgICAgICAgICAgcmVzdWx0ICs9
IG8uYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM3OgorICAgICAgICAgICAg
cmVzdWx0ICs9IG8uYjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM4OgorICAg
ICAgICAgICAgcmVzdWx0ICs9IG8uYzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IDM5OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZDsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIDQwOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIDQxOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZjsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQyOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8u
ZzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQzOgorICAgICAgICAgICAgcmVz
dWx0ICs9IG8uaDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ0OgorICAgICAg
ICAgICAgcmVzdWx0ICs9IG8uaTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ1
OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uajsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIDQ2OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIDQ3OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ4OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uajsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ5OgorICAgICAgICAgICAgcmVzdWx0
ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDUwOgorICAgICAgICAg
ICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDUxOgor
ICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIDUyOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIDUzOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYjsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIDU0OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYzsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDU1OgorICAgICAgICAgICAgcmVzdWx0ICs9
IG8uZDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDU2OgorICAgICAgICAgICAg
cmVzdWx0ICs9IG8uZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDU3OgorICAg
ICAgICAgICAgcmVzdWx0ICs9IG8uZjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IDU4OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZzsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIDU5OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaDsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIDYwOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDYxOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8u
ajsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDYyOgorICAgICAgICAgICAgcmVz
dWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgcmVzdWx0ICs9IG8uejsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
fQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKKyhmdW5jdGlvbigpIHsKKyAgICB2YXIgbyA9IHth
OjEsIGI6MiwgYzozLCBkOjQsIGU6NSwgZjo2LCBnOjcsIGg6OCwgaTo5LCBqOjEwLCBrOjExLCB6
OjEwMH07CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAw
MDsgKytpKQorICAgICAgICByZXN1bHQgKz0gZm9vKG8pOworICAgIGlmIChyZXN1bHQgIT0gNzk2
NjAwMDApCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30p
KCk7CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282847</attachid>
            <date>2016-07-05 20:18:32 -0700</date>
            <delta_ts>2016-07-07 14:51:07 -0700</delta_ts>
            <desc>a bit more</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>415320</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2NiBA
QAorMjAxNi0wNS0yOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IEltcGxlbWVudCB0YWJsZS1iYXNlZCBzd2l0Y2hlcyBpbiBCMy9BaXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTE0MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgSWYgYSBzd2l0Y2ggc3Rh
dGVtZW50IGdldHMgbGFyZ2UsIGl0J3MgYmV0dGVyIHRvIGV4cHJlc3MgaXQgYXMgYW4gaW5kaXJl
Y3QganVtcCByYXRoZXIgdGhhbgorICAgICAgICB1c2luZyBhIGJpbmFyeSBzd2l0Y2ggKGRpdmlk
ZS1hbmQtY29ucXVlciB0cmVlIG9mIGNvbXBhcmlzb25zIGxlYWRpbmcgdG8gTyhsb2cgbikgYnJh
bmNoZXMgdG8KKyAgICAgICAgZ2V0IHRvIHRoZSBzd2l0Y2ggY2FzZSkuIFdoZW4gZGVhbGluZyB3
aXRoIGludGVnZXIgc3dpdGNoZXMsIEZUTCB3aWxsIGFscmVhZHkgdXNlIHRoZSBCMworICAgICAg
ICBTd2l0Y2ggYW5kIGV4cGVjdCB0aGlzIHRvIGdldCBsb3dlcmVkIGFzIGVmZmljaWVudGx5IGFz
IHBvc3NpYmxlOyBpdCdzIGEgYnVnIHRoYXQgQjMgd2lsbAorICAgICAgICBhbHdheXMgdXNlIGEg
YmluYXJ5IHN3aXRjaCByYXRoZXIgdGhhbiBpbmRpcmVjdCBqdW1wcy4gV2hlbiBkZWFsaW5nIHdp
dGggc3dpdGNoZXMgb3ZlciBzb21lCisgICAgICAgIG1vcmUgc29waGlzdGljYXRlZCB0eXBlcywg
d2UnZCB3YW50IEZUTCB0byBidWlsZCBhbiBpbmRpcmVjdCBqdW1wIHRhYmxlIGl0c2VsZiBhbmQg
dXNlCisgICAgICAgIHNvbWV0aGluZyBsaWtlIGEgaGFzaHRhYmxlIHRvIGZlZWQgaXQuIEluIHRo
YXQgY2FzZSwgdGhlcmUgd2lsbCBiZSBubyBCMyBTd2l0Y2g7IHdlJ2xsIHdhbnQKKyAgICAgICAg
c29tZSBraW5kIG9mIGluZGlyZWN0IGp1bXAgaW5zdHJ1Y3Rpb24uCisgICAgICAgIAorICAgICAg
ICBUaGlzIGltcGxpZXMgdGhhdCB3ZSB3YW50IEIzIHRvIGhhdmUgdGhlIGFiaWxpdHkgdG8gbG93
ZXIgU3dpdGNoIHRvIGluZGlyZWN0IGp1bXBzIGFuZCB0bworICAgICAgICBleHBvc2UgdGhvc2Ug
aW5kaXJlY3QganVtcHMgaW4gSVIgc28gdGhhdCB0aGUgRlRMIGNvdWxkIGRvIGl0cyBvd24gaW5k
aXJlY3QganVtcHMgZm9yCisgICAgICAgIHN3aXRjaGVzIG92ZXIgbW9yZSBjb21wbGljYXRlZCB0
aGluZ3MgbGlrZSBzdHJpbmdzLiBUaGlzIGNoYW5nZSBpbnRyb2R1Y2VzIGFuIGluZGlyZWN0IGp1
bXAKKyAgICAgICAgaW5zdHJ1Y3Rpb24gdG8gQjMgYW5kIGNhbGxzIGl0IFBvbHlKdW1wLiBJdCBo
YXMgc29tZSB1bmlxdWUgc2VtYW50aWNzIHRoYXQgbWFrZSBpdCB2ZXJ5CisgICAgICAgIGRpZmZl
cmVudCBmcm9tICJpbmRpcmVjdCBqdW1wcyIsICJpbmRpcmVjdCBicmFuY2hlcyIsIGFuZCAiY29t
cHV0ZWQgZ290b3MiIC0gYWxsIHRlcm1zIG9mIGFydAorICAgICAgICB1c2VkIGluIG90aGVyIGNv
bXBpbGVycy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaW1wbGVtZW50cyB0aGUgbW9zdCBiYXNp
YyBraW5kIG9mIFN3aXRjaC10by1Qb2x5SnVtcCBsb3dlcmluZyBpbiBCMzo6bG93ZXJNYWNyb3Mo
KS4gQXMKKyAgICAgICAgcGFydCBvZiB0aGUgZXhpc3RpbmcgZGl2aWRlLWFuZC1jb25xdWVyIHRo
YXQgY3JlYXRlcyBicmFuY2hlcywgaWYgaXQgZGV0ZWN0cyB0aGF0IHRoZSBzZXQgb2YKKyAgICAg
ICAgY2FzZXMgc2F0aXNmaWVzIHNvbWUgY29uZGl0aW9ucyAoZGVuc2l0eSBvZiBjYXNlIHZhbHVl
cyBhbmQgdG90YWwgc2l6ZSksIHRoZW4gaXQgd2lsbCBlbWl0IGEKKyAgICAgICAgUG9seUp1bXAu
CisgICAgICAgIAorICAgICAgICBUaGUgcHJvYmxlbSB3aXRoIGNsYXNzaWMgaW5kaXJlY3QganVt
cHMgaXMgdGhhdCB0aGV5IGZvcmNlIHRoZSBjb21waWxlciB0byBiZSBjb25zZXJ2YXRpdmUKKyAg
ICAgICAgYWJvdXQgY29udHJvbCBmbG93LiBUaGUgY29tcGlsZXIgbXVzdCBhc3N1bWUgdGhhdCB0
aGUgaW5kaXJlY3QganVtcCBtYXkgdHJhbnNmZXIgY29udHJvbCBmbG93CisgICAgICAgIHRvIGFu
eSBlc2NhcGVkIGJsb2NrIChibG9jayBsYWJlbGVkIGFzIGJlaW5nIGEgcG9zc2libGUgdGFyZ2V0
IGZvciBpbmRpcmVjdCBqdW1wcywgb3IgaWYgbm8KKyAgICAgICAgc3VjaCBsYWJlbGluZyBpcyBh
dmFpbGFibGUsIHRoZSBjb21waWxlciBtdXN0IGFzc3VtZSB0aGF0IGl0IG1heSB0YXJnZXQgYW55
IGJsb2NrKS4gVGhlIHdvcnN0CisgICAgICAgIHBhcnQgaXMgdGhhdCB0aGUgaW1wbGljaXQgY29u
dHJvbCBmbG93IGVkZ2VzIGZyb20gdGhlIGluZGlyZWN0IGp1bXAgdG8gdGhlIGVzY2FwZWQgYmxv
Y2tzCisgICAgICAgIGNhbm5vdCBiZSBicm9rZW4uIFRoaXMgaW52YWxpZGF0ZXMgYSBwcmluY2lw
bGUgb2YgQjMgSVI6IGFueSBwaGFzZSBtYXkgYnJlYWsgYW55IGNyaXRpY2FsCisgICAgICAgIGVk
Z2UgZm9yIGFueSByZWFzb24uIE91ciBTU0EgY29udmVyc2lvbiB3b3VsZCBicmVhayBpZiB3ZSBy
ZXZva2VkIHRoaXMgZmVhdHVyZS4gSXQncyBhY3R1YWxseQorICAgICAgICBtdWNoIHdvcnNlIHRo
YW4gdGhpcyAtIGJhc2ljYWxseSBhbnkgbG9naWMgb3ZlciBjb250cm9sIGZsb3cgd291bGQgaGF2
ZSB0byBiZSBoYWNrZWQgdG8gZGVhbAorICAgICAgICB3aXRoIHRoZXNlIHVuYnJlYWthYmxlIGVk
Z2VzLiBUaGlzIHdvdWxkIG1lYW4gY2hhbmdpbmcgYWxsIENGRyB0cmFuc2Zvcm1hdGlvbiB1dGls
aXRpZXMgYW5kCisgICAgICAgIHBhc3Nlcy4gV2UgaGF2ZSBhIGxvdCBvZiB0aG9zZSBhbmQgd2Ug
d2FudCBpdCB0byBiZSBlYXN5IHRvIHdyaXRlIG5ldyBvbmVzLgorICAgICAgICAKKyAgICAgICAg
VGhpcyBpcyB3aHkgd2UgdXNlIHNvbWV0aGluZyBuZXcgYW5kIHF1aXRlIGRpZmZlcmVudCBmcm9t
IGNsYXNzaWMgaW5kaXJlY3QganVtcHMuIFBvbHlKdW1wCisgICAgICAgIG1ha2VzIHRoZSBjb250
cm9sIGZsb3cgZWRnZXMgZXhwbGljaXQuIFRoZSBjbGllbnQgbXVzdCBzdXBwbHkgdGhlIHN1Y2Nl
c3NvcnMgd2hlbiBpdCBjcmVhdGVzCisgICAgICAgIHRoZSBQb2x5SnVtcC4gVGhlIGNvbXBpbGVy
IG1heSByZXdpcmUgdGhvc2Ugc3VjY2Vzc29yIGVkZ2VzIHRoZSBzYW1lIHdheSB0aGF0IGl0IHdv
dWxkIHJld2lyZQorICAgICAgICBhbnkgY29udHJvbCBmbG93IGVkZ2VzLiBDb25zZXF1ZW50bHkg
dGhlIHZhc3QgbWFqb3JpdHkgb2YgQ0ZHIHJlYXNvbmluZyBpbiBCMyBpcyB1bmNoYW5nZWQuCisg
ICAgICAgIElmIHlvdSBkb24ndCB3YW50IHRvIHVuZGVyc3RhbmQgUG9seUp1bXAsIGp1c3QgdGhp
bmsgb2YgaXQgbGlrZSB5b3Ugd291bGQgYSBTd2l0Y2ggd2l0aCBhbgorICAgICAgICBvcGFxdWUg
aW5jb21pbmcgdmFsdWUuIFRoaXMgd29ya3MgYmVjYXVzZSB3ZSBkbyBub3QgYWRkIGFueSBub3Rp
b24gb2YgZXNjYXBlZCBiYXNpYyBibG9ja3MuCisgICAgICAgIEluc3RlYWQgb2YgbGV0dGluZyB0
aGUgY2xpZW50IGdldCB0aGUgcG9pbnRlcnMgdG8gYmFzaWMgYmxvY2tzIGJ5IGVzY2FwaW5nIHRo
ZW0gbGlrZSBpbiBMTFZNLAorICAgICAgICB5b3UgY2FuIG9ubHkgZ2V0IHRoZSBwb2ludGVycyBv
ZiB0aGUgc3VjY2Vzc29ycyBvZiBQb2x5SnVtcCBieSByZWdpc3RlcmluZyBhIGNhbGxiYWNrIHdp
dGgKKyAgICAgICAgUG9seUp1bXAuIFRoaXMgY2FsbGJhY2sgZG9lc24ndCBhY3R1YWxseSBnaXZl
IHlvdSB0aGUgYWRkcmVzc2VzIG9mIGJhc2ljIGJsb2Nrcy4gSXQganVzdAorICAgICAgICBnaXZl
cyB5b3UgdGhlIGFkZHJlc3NlcyB3aGVyZSB5b3UgbXVzdCBqdW1wIHRvIHRyYW5zZmVyIGNvbnRy
b2wgZmxvdyBmcm9tIHRoYXQgUG9seUp1bXAgdG8KKyAgICAgICAgaXRzIHN1Y2Nlc3NvcnMuIFRo
aXMgbWVhbnMgdGhhdCB0aGUgbWFnaWMgb2YgUG9seUp1bXAgaXMgY29uZmluZWQgb25seSB0byB0
aGUgUG9seUp1bXAgaXRzZWxmCisgICAgICAgIGFuZCBkb2Vzbid0IGluZmVjdCByZWFzb25pbmcg
YWJvdXQgdGhlIGJhc2ljIGJsb2NrcyB0aGF0IGl0IGp1bXBzIHRvLgorICAgICAgICAKKyAgICAg
ICAgVGhlIG9ubHkgZG93bnNpZGUgaXMgdGhhdCB0aGF0IFBvbHlKdW1wIGlzIG5vdCBjbG9uZWFi
bGUuIFlvdSBjYW4ndCBjbG9uZSBpdCBiZWNhdXNlIGlmIHlvdQorICAgICAgICBkaWQsIHRoZW4g
dGhlIHR3byByZXN1bHRpbmcgUG9seUp1bXBzIG1heSBoYXZlIHRoZWlyIHN1Y2Nlc3NvciBlZGdl
cyByZXdpcmVkIGluZGVwZW5kZW50bHkgb2YKKyAgICAgICAgZWFjaCBvdGhlci4gVGhpcyBjb3Vs
ZCBlYXNpbHkgaGFwcGVuIGlmIHdlIGJyZWFrIGNyaXRpY2FsIGVkZ2VzLiBJZiB0aGF0IGRpZCBo
YXBwZW4gdGhlbiBpdAorICAgICAgICB3b3VsZCBicmVhayB0aGUgY2xpZW50IG9mIFBvbHlKdW1w
OiB0aGV5IHdvdWxkIGhhdmUgYWxyZWFkeSBjcmVhdGVkIHNvbWV0aGluZyBsaWtlIGEganVtcAor
ICAgICAgICB0YWJsZSBhbmQgd2lsbCBiZSBwb3B1bGF0aW5nIGl0IHZpYSB0aGUgY2FsbGJhY2ss
IGJ1dCBub3cgdGhlIGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkIHR3aWNlLAorICAgICAgICBhbmQg
bWF5IHJldHVybiBkaWZmZXJlbnQganVtcCBkZXN0aW5hdGlvbnMgZWFjaCB0aW1lLiBTbywgdGhp
cyBwYXRjaCBpbnRyb2R1Y2VzCisgICAgICAgIFZhbHVlOjppc0Nsb25lYWJsZSgpIGFuZCB0ZWFj
aGVzIGJvdGggb2Ygb3VyIGNvZGUgc3BlY2lhbGl6YXRpb24gb3B0aW1pemF0aW9ucyAodGFpbAor
ICAgICAgICBkdXBsaWNhdGlvbiBhbmQgc2VsZWN0IHNwZWNpYWxpemF0aW9uKSB0byBiYWlsIGlm
IHRoZSBjb2RlIHRoZXkgd2FudCB0byBzcGVjaWFsaXplIGlzIG5vdAorICAgICAgICBjbG9uZWFi
bGUuIFRoaXMgaXMgdG90YWxseSBiZW5pZ24gbW9zdCBvZiB0aGUgdGltZSwgc2luY2UgdGhvc2Ug
b3B0aW1pemF0aW9ucyB1c3VhbGx5IHJ1bgorICAgICAgICBiZWZvcmUgU3dpdGNoIGxvd2VyaW5n
LiBDbGllbnRzIHRoYXQgdXNlIFBvbHlKdW1wIGRpcmVjdGx5IGhhdmUgdG8gYXBwcmVjaWF0ZSB0
aGUgdHJhZGUtb2ZmOgorICAgICAgICBQb2x5SnVtcCBtYXkgZ2FpbiB0aGVtIHNvbWUgcGVyZm9y
bWFuY2UgYnV0IHRoZXkgYXJlIG9wdGluZyBvdXQgb2Ygb3B0aW1pemF0aW9ucyB0aGF0IHVzZQor
ICAgICAgICBjbG9uaW5nLiBBIGNsb3NlIGNvcm9sbGFyeSBvZiB0aGUgbm8tY2xvbmUgcnVsZSBp
cyB0aGF0IHRoZSBjbGllbnQgY2Fubm90IGNyZWF0ZSBtdWx0aXBsZQorICAgICAgICBQb2x5SnVt
cHMgdGhhdCBhcmUgZmVkIGJ5IGEgY29tbW9uIGp1bXAgdGFibGU6IHRoZSBmYWN0IHRoYXQgZWFj
aCBQb2x5SnVtcCBoYXMgYSBjYWxsYmFjaworICAgICAgICB0aGF0IGp1c3QgdGVsbHMgeW91IHRo
ZSBqdW1wIGRlc3RpbmF0aW9ucyBmb3IgaXRzIHN1Y2Nlc3NvciAqZWRnZXMqLCBub3Qgc3VjY2Vz
c29yICpibG9ja3MqLAorICAgICAgICBtZWFucyB0aGF0IGlmIHlvdSBjcmVhdGUgdHdvIFBvbHlK
dW1wcyBhbmQgZ2l2ZSB0aGVtIHRoZSBzYW1lIHN1Y2Nlc3NvciBsaXN0LCB5b3UgYXJlIG5vdAor
ICAgICAgICBndWFyYW50ZWVkIHRoYXQgdGhleSB3aWxsIGdldCB0aGUgc2FtZSBqdW1wIGRlc3Rp
bmF0aW9ucy4gVGhpcyBodXJ0cyBpZiB5b3Ugd2FudCB0byB1c2UKKyAgICAgICAgUG9seUp1bXAg
Zm9yIHRocmVhZGVkIGludGVycHJldGVycyBidXQgaXQncyBoYXJtbGVzcyBmb3Igc3dpdGNoIGxv
d2VyaW5nLiBUaGUgZ29hbCBvZgorICAgICAgICBQb2x5SnVtcCBpcyB0byBiZSBhd2Vzb21lIGZv
ciBzd2l0Y2ggbG93ZXJpbmcgd2hpbGUgbm90IGJyZWFraW5nIHRoZSByZXN0IG9mIHRoZSBjb21w
aWxlciwgc28KKyAgICAgICAgdGhpcyBpcyBwcm9iYWJseSBmaW5lLgorICAgICAgICAKKyAgICAg
ICAgVGhlIGlzQ2xvbmVhYmxlKCkgbWV0aG9kIGN1cnJlbnRseSBvbmx5IHJldHVybnMgdHJ1ZSBm
b3IgUG9seUp1bXAsIGJ1dCBJIGFudGljaXBhdGUgd2Ugd2lsbAorICAgICAgICBhZGQgb3RoZXIg
bm9uLWNsb25lYWJsZSB0aGluZ3MgbGF0ZXIuIEkgdGhpbmsgaXMgaXMgaW5oZXJlbnQgaW4gYSBj
b21waWxlciB0aGF0IGFsbG93cyBzdWNoCisgICAgICAgIGN1c3RvbWl6ZWFiaWxpdHkgZm9yIGl0
cyBjbGllbnRzLiBGb3IgZXhhbXBsZSwgd2UgbWF5IHdhbnQgdG8gYWRkIGEgZmxhZyB0byBQYXRj
aHBvaW50IHRoYXQKKyAgICAgICAgbWFrZXMgaXQgbm9uLWNsb25lYWJsZS4gU29tZXRpbWVzIHdl
IGhhdmUgdG8ganVtcCB0aHJvdWdoIGhvb3BzIGluIHRoZSBGVEwgYmVjYXVzZSBvZiB0aGUKKyAg
ICAgICAgY2xvbmVhYmlsaXR5IG9mIHBhdGNocG9pbnRzLiBUaGlzIGhhcHBlbnMgaW4gT1NSIGV4
aXRzLCB3aGljaCBwYXkgYSBzaWduaWZpY2FudCBtZW1vcnkgY29zdAorICAgICAgICBmb3IgYWRk
aXRpb25hbCBkYXRhIHN0cnVjdHVyZXMgdGhhdCBhcmUgdGhlcmUgaW4gY2FzZSBhbiBleGl0IGdl
dHMgY2xvbmVkLiBJdCBtYXkgYmUgbW9yZQorICAgICAgICBwcm9maXRhYmxlIHRvIGp1c3Qgc2F5
IHRoYXQgT1NSIGV4aXRzIChpLmUuIENoZWNrcyBhbmQgSW52YWxpZGF0aW9uUG9pbnQgUGF0Y2hw
b2ludHMpIGFyZSBub3QKKyAgICAgICAgY2xvbmVhYmxlLiBTdXJlbHkgdGhpcyB3b3VsZCByZWR1
Y2UgdGFpbCBkdXBsaWNhdGlvbiwgYnV0IHRhaWwgZHVwbGljYXRpb24gaXMgbW9zdCBwcm9maXRh
YmxlCisgICAgICAgIHdoZW4gaXQgY2xvbmVzIG9ubHkgYSB0aW55IGFtb3VudCBvZiBjb2RlOyBp
ZiB0aGVyZSdzIGFuIGV4aXQgdGhlbiB3ZSdyZSBub3QgdGFsa2luZyBhYm91dCBhCisgICAgICAg
IHRpbnkgYW1vdW50IG9mIGNvZGUgYW55bW9yZS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaXMg
YSB+MzAlIHNwZWVkLXVwIG9uIG1pY3JvYmVuY2htYXJrcyB0aGF0IGhhdmUgYmlnIHN3aXRjaCBz
dGF0ZW1lbnRzICh+NjAgY2FzZXMpLiBJdCdzCisgICAgICAgIG5vdCBhIHNwZWVkLXVwIG9uIG1h
aW5zdHJlYW0gYmVuY2htYXJrcy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgYWxzbyBhZGRzIGEg
bmV3IHRlc3QgdG8gdGVzdGIzIGZvciBQb2x5SnVtcCwgR2V0LCBhbmQgU2V0LiBUaGUgRlRMIGRv
ZXMgbm90IGN1cnJlbnRseQorICAgICAgICB1c2UgUG9seUp1bXAgZGlyZWN0bHksIGJ1dCB3ZSB3
YW50IHRoaXMgdG8gYmUgcG9zc2libGUuIEl0IGFsc28gZG9lc24ndCB1c2UgR2V0L1NldCBkaXJl
Y3RseQorICAgICAgICBldmVuIHRob3VnaCB3ZSB3YW50IHRoaXMgdG8gYmUgcG9zc2libGUuIEl0
J3MgaW1wb3J0YW50IHRvIHRlc3QgdGhlc2Ugc2luY2Ugb3Bjb2RlcyB0aGF0CisgICAgICAgIHJl
c3VsdCBmcm9tIGxvd2VyaW5nIGRvbid0IGFmZmVjdCBlYXJseSBwaGFzZXMsIHNvIHdlIGNvdWxk
IGhhdmUgcmVncmVzc2lvbnMgaW4gZWFybHkgcGhhc2VzCisgICAgICAgIHJlbGF0ZWQgdG8gdGhl
c2Ugb3Bjb2RlcyB0aGF0IHdvdWxkbid0IGJlIGNhdWdodCBieSBhbnkgSlMgdGVzdC4gU28sIHRo
aXMgYWRkcyBhIHZlcnkgYmFzaWMKKyAgICAgICAgdGhyZWFkZWQgaW50ZXJwcmV0ZXIgdG8gdGVz
dGIzIGZvciBhIEJyYWluZnVjay1zdHlsZSBsYW5ndWFnZSwgYW5kIHRlc3RzIGl0IGJ5IGhhdmlu
ZyBpdCBydW4KKyAgICAgICAgYSBwcm9ncmFtIHRoYXQgcHJpbnRzIHRoZSBudW1iZXJzIDEuLjEw
MCBpbiBhIGxvb3AuIFVubGlrZSBhIHJlYWwgdGhyZWFkZWQgaW50ZXJwcmV0ZXIsIGl0CisgICAg
ICAgIHVzZXMgYSBjb21tb24gZGlzcGF0Y2ggYmxvY2sgcmF0aGVyIHRoYW4gaGF2aW5nIGRpc3Bh
dGNoIGF0IHRoZSB0ZXJtaW51cyBvZiBlYWNoIG9wY29kZS4KKyAgICAgICAgVGhhdCdzIG5lY2Vz
c2FyeSBiZWNhdXNlIFBvbHlKdW1wIGlzIG5vdCBjbG9uZWFibGUuIFRoZSBzdGF0ZSBvZiB0aGUg
aW50ZXJwcmV0ZXIgaXMKKyAgICAgICAgcmVwcmVzZW50ZWQgdXNpbmcgVmFyaWFibGVzIHRoYXQg
d2UgR2V0IGFuZCBTZXQsIHNvIGl0IHRlc3RzIEdldC9TZXQgYXMgd2VsbC4KKworICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9u
Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpqdW1wKToKKyAgICAg
ICAgKiBhc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxl
cjo6am1wX20pOgorICAgICAgICAqIGIzL0IzQmFzaWNCbG9jay5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpCYXNpY0Jsb2NrOjp1cGRhdGVQcmVkZWNlc3NvcnNBZnRlcik6CisgICAgICAgIChKU0M6
OkIzOjpCYXNpY0Jsb2NrOjppc0Nsb25lYWJsZSk6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Js
b2NrOjpkdW1wKToKKyAgICAgICAgKiBiMy9CM0Jhc2ljQmxvY2suaDoKKyAgICAgICAgKEpTQzo6
QjM6OkJhc2ljQmxvY2s6OmZyZXF1ZW5jeSk6CisgICAgICAgICogYjMvQjNDb21tb24uaDoKKyAg
ICAgICAgKEpTQzo6QjM6OmlzNjRCaXQpOgorICAgICAgICAqIGIzL0IzQ29udHJvbFZhbHVlLmg6
CisgICAgICAgICogYjMvQjNEYXRhU2VjdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkIzOjpEYXRh
U2VjdGlvbjo6RGF0YVNlY3Rpb24pOgorICAgICAgICAqIGIzL0IzRHVwbGljYXRlVGFpbHMuY3Bw
OgorICAgICAgICAqIGIzL0IzTG93ZXJNYWNyb3MuY3BwOgorICAgICAgICAqIGIzL0IzTG93ZXJU
b0Fpci5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okxvd2VyVG9BaXI6Omxvd2VyKToKKyAg
ICAgICAgKiBiMy9CM09wY29kZS5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgor
ICAgICAgICAqIGIzL0IzT3Bjb2RlLmg6CisgICAgICAgICogYjMvQjNQb2x5SnVtcFZhbHVlLmNw
cDogQWRkZWQuCisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjp+UG9seUp1bXBWYWx1
ZSk6CisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjphcHBlbmRTdWNjZXNzb3IpOgor
ICAgICAgICAoSlNDOjpCMzo6UG9seUp1bXBWYWx1ZTo6c2V0Q2FsbGJhY2tUYXNrKToKKyAgICAg
ICAgKEpTQzo6QjM6OlBvbHlKdW1wVmFsdWU6OmlzQ2xvbmVhYmxlKToKKyAgICAgICAgKEpTQzo6
QjM6OlBvbHlKdW1wVmFsdWU6OmR1bXBNZXRhKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1w
VmFsdWU6OmNsb25lSW1wbCk6CisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjpQb2x5
SnVtcFZhbHVlKToKKyAgICAgICAgKiBiMy9CM1BvbHlKdW1wVmFsdWUuaDogQWRkZWQuCisgICAg
ICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjphY2NlcHRzKToKKyAgICAgICAgKEpTQzo6QjM6
OlBvbHlKdW1wVmFsdWU6OnNldENhbGxiYWNrKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1w
VmFsdWU6OmNhbGxiYWNrVGFzayk6CisgICAgICAgICogYjMvQjNQcm9jZWR1cmUuY3BwOgorICAg
ICAgICAoSlNDOjpCMzo6UHJvY2VkdXJlOjpjbG9uZSk6CisgICAgICAgICogYjMvQjNQcm9jZWR1
cmUuaDoKKyAgICAgICAgKEpTQzo6QjM6OlByb2NlZHVyZTo6bGFzdFBoYXNlTmFtZSk6CisgICAg
ICAgIChKU0M6OkIzOjpQcm9jZWR1cmU6OmJ5cHJvZHVjdHMpOgorICAgICAgICAqIGIzL0IzUmVk
dWNlU3RyZW5ndGguY3BwOgorICAgICAgICAqIGIzL0IzVmFsaWRhdGUuY3BwOgorICAgICAgICAq
IGIzL0IzVmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6OmVmZmVjdHMpOgorICAg
ICAgICAoSlNDOjpCMzo6VmFsdWU6OmlzQ2xvbmVhYmxlKToKKyAgICAgICAgKEpTQzo6QjM6OlZh
bHVlOjprZXkpOgorICAgICAgICAqIGIzL0IzVmFsdWUuaDoKKyAgICAgICAgKiBiMy9haXIvQWly
Q29kZS5oOgorICAgICAgICAqIGIzL2Fpci9BaXJHZW5lcmF0ZS5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpBaXI6OmdlbmVyYXRlKToKKyAgICAgICAgKiBiMy9haXIvQWlySW5zdC5jcHA6CisgICAg
ICAgIChKU0M6OkIzOjpBaXI6Okluc3Q6Omhhc0FyZ0VmZmVjdHMpOgorICAgICAgICAoSlNDOjpC
Mzo6QWlyOjpJbnN0Ojppc0Nsb25lYWJsZSk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okluc3Q6
OmR1bXApOgorICAgICAgICAqIGIzL2Fpci9BaXJJbnN0Lmg6CisgICAgICAgICogYjMvYWlyL0Fp
ck9wY29kZS5vcGNvZGVzOgorICAgICAgICAqIGIzL3Rlc3RiMy5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpzaG91bGRCZVZlcmJvc2UpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN3aXRjaENoaWxs
RGl2KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RMYXRlUmVnaXN0ZXIpOgorICAgICAgICAoSlND
OjpCMzo6dGhyZWFkZWRJbnRlcnByZXRlclByaW50KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RU
aHJlYWRlZEludGVycHJldGVyKToKKyAgICAgICAgKEpTQzo6QjM6Onplcm8pOgorICAgICAgICAo
SlNDOjpCMzo6cnVuKToKKwogMjAxNi0wNy0wMyAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gRExMcyBhcmUgbWlzc2luZyB2ZXJzaW9uIGluZm9y
bWF0aW9uLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24g
MjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0xNDQsNiArMTQ0LDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAg
ICBiMy9CM1BhdGNocG9pbnRWYWx1ZS5jcHAKICAgICBiMy9CM1BoYXNlU2NvcGUuY3BwCiAgICAg
YjMvQjNQaGlDaGlsZHJlbi5jcHAKKyAgICBiMy9CM1BvbHlKdW1wVmFsdWUuY3BwCiAgICAgYjMv
QjNQcm9jZWR1cmUuY3BwCiAgICAgYjMvQjNQdXJlQ1NFLmNwcAogICAgIGIzL0IzUmVkdWNlRG91
YmxlVG9GbG9hdC5jcHAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lv
biAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTk4OCw2ICsxOTg4LDggQEAK
IAkJREMxN0U4MUExQzlDOTFFOTAwOEE2QUIzIC8qIENDYWxsSGVscGVycy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzE3RTgxNjFDOUM4MDJCMDA4
QTZBQjMgLyogQ0NhbGxIZWxwZXJzLmNwcCAqLzsgfTsKIAkJREMyMTQzMDcxQ0EzMkU1NTAwMEE4
ODY5IC8qIElDU3RhdHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IERDMjE0MzA2MUNBMzJFNTIwMDBBODg2OSAvKiBJQ1N0YXRzLmggKi87IH07CiAJCURD
MjE0MzA4MUNBMzJFNTgwMDBBODg2OSAvKiBJQ1N0YXRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDMjE0MzA1MUNBMzJFNTIwMDBBODg2OSAvKiBJ
Q1N0YXRzLmNwcCAqLzsgfTsKKwkJREM0NTRCODgxQ0ZGNkZFNzAwNEMxOEFGIC8qIEIzUG9seUp1
bXBWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBEQzQ1NEI4NjFDRkY2RkU1MDA0QzE4QUYgLyogQjNQb2x5SnVtcFZhbHVlLmNwcCAqLzsgfTsK
KwkJREM0NTRCODkxQ0ZGNkZFQTAwNEMxOEFGIC8qIEIzUG9seUp1bXBWYWx1ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM0NTRCODcxQ0ZGNkZFNTAw
NEMxOEFGIC8qIEIzUG9seUp1bXBWYWx1ZS5oICovOyB9OwogCQlEQzQ1NEI4QzFEMDBFODIyMDA0
QzE4QUYgLyogQWlyRHVtcEFzSlMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gREM0NTRCOEExRDAwRTgxRjAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmNw
cCAqLzsgfTsKIAkJREM0NTRCOEQxRDAwRTgyNDAwNEMxOEFGIC8qIEFpckR1bXBBc0pTLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzQ1NEI4QjFEMDBF
ODFGMDA0QzE4QUYgLyogQWlyRHVtcEFzSlMuaCAqLzsgfTsKIAkJREM2MDVCNUQxQ0UyNkVBMDAw
NTkzNzE4IC8qIFByb2ZpbGVyRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gREM2MDVCNTkxQ0UyNkU5ODAwNTkzNzE4IC8qIFByb2ZpbGVyRXZl
bnQuY3BwICovOyB9OwpAQCAtNDIxNiw2ICs0MjE4LDggQEAKIAkJREMxN0U4MTYxQzlDODAyQjAw
OEE2QUIzIC8qIENDYWxsSGVscGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBDQ2FsbEhlbHBlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlE
QzIxNDMwNTFDQTMyRTUyMDAwQTg4NjkgLyogSUNTdGF0cy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBJQ1N0YXRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJREMyMTQzMDYxQ0EzMkU1MjAwMEE4ODY5IC8qIElDU3RhdHMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSUNTdGF0cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlEQzQ1NEI4NjFDRkY2RkU1MDA0QzE4QUYgLyogQjNQb2x5SnVtcFZhbHVlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEIzUG9seUp1bXBWYWx1ZS5jcHA7IHBh
dGggPSBiMy9CM1BvbHlKdW1wVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlEQzQ1NEI4NzFDRkY2RkU1MDA0QzE4QUYgLyogQjNQb2x5SnVtcFZhbHVlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEIzUG9seUp1bXBWYWx1ZS5oOyBwYXRoID0gYjMvQjNQ
b2x5SnVtcFZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDNDU0QjhBMUQw
MEU4MUYwMDRDMThBRiAvKiBBaXJEdW1wQXNKUy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBBaXJEdW1wQXNKUy5jcHA7IHBhdGggPSBiMy9haXIvQWlyRHVtcEFzSlMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzQ1NEI4QjFEMDBFODFGMDA0QzE4
QUYgLyogQWlyRHVtcEFzSlMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQWly
RHVtcEFzSlMuaDsgcGF0aCA9IGIzL2Fpci9BaXJEdW1wQXNKUy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlEQzYwNUI1OTFDRTI2RTk4MDA1OTM3MTggLyogUHJvZmlsZXJFdmVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQcm9maWxlckV2ZW50LmNw
cDsgcGF0aCA9IHByb2ZpbGVyL1Byb2ZpbGVyRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNDc3NSw2ICs0Nzc5LDggQEAKIAkJCQkwRkVDODRFMDFCREFDREFDMDA4MEZG
NzQgLyogQjNQaGFzZVNjb3BlLmggKi8sCiAJCQkJMEYzNzMwOEExQzBCRDI5MTAwMDUyQkZBIC8q
IEIzUGhpQ2hpbGRyZW4uY3BwICovLAogCQkJCTBGMzczMDhCMUMwQkQyOTEwMDA1MkJGQSAvKiBC
M1BoaUNoaWxkcmVuLmggKi8sCisJCQkJREM0NTRCODYxQ0ZGNkZFNTAwNEMxOEFGIC8qIEIzUG9s
eUp1bXBWYWx1ZS5jcHAgKi8sCisJCQkJREM0NTRCODcxQ0ZGNkZFNTAwNEMxOEFGIC8qIEIzUG9s
eUp1bXBWYWx1ZS5oICovLAogCQkJCTBGRUM4NEUxMUJEQUNEQUMwMDgwRkY3NCAvKiBCM1Byb2Nl
ZHVyZS5jcHAgKi8sCiAJCQkJMEZFQzg0RTIxQkRBQ0RBQzAwODBGRjc0IC8qIEIzUHJvY2VkdXJl
LmggKi8sCiAJCQkJMEZFQzg0RTMxQkRBQ0RBQzAwODBGRjc0IC8qIEIzUHJvY2VkdXJlSW5saW5l
cy5oICovLApAQCAtNzE2Myw2ICs3MTY5LDcgQEAKIAkJCQkwRjhGOTQ0MTE2Njc2MzMyMDBENjE5
NzEgLyogQ29kZUJsb2NrSGFzaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDOTdGMzQxODIwMjBE
NzAwMkM5QjI2IC8qIENvZGVCbG9ja0pldHRpc29uaW5nV2F0Y2hwb2ludC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEZEOEEzMTQxN0Q0MzI2QzAwQ0EyQzQwIC8qIENvZGVCbG9ja1NldC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJREM0NTRCODkxQ0ZGNkZFQTAwNEMxOEFGIC8qIEIzUG9seUp1bXBWYWx1
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5NkVCQjMxNjY3NkVGNjAwOEJBREUzIC8qIENvZGVC
bG9ja1dpdGhKSVRUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzdGMTgyMjE2NDA4OEIyMDA2
NDBBNDcgLyogQ29kZUNhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OUNDMEI2MzE4QkU5OTUw
MDA2Q0VCQ0MgLyogQ29kZUdlbmVyYXRvclJlcGxheUlucHV0cy5weSBpbiBIZWFkZXJzICovLApA
QCAtOTQ0Nyw2ICs5NDU0LDcgQEAKIAkJCQk3MDlGQjg2QjFBRTMzNUM2MDAzOUQwNjkgLyogV2Vh
a1NldFByb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyQTRFQzkwQjE4NjBENkMyMDA5
NEY3ODIgLyogV3JpdGVCYXJyaWVyQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQzgx
NTBCMTQwNDNDMEUwMENGQTYwMyAvKiBXcml0ZUJhcnJpZXJTdXBwb3J0LmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCURDNDU0Qjg4MUNGRjZGRTcwMDRDMThBRiAvKiBCM1BvbHlKdW1wVmFsdWUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTdFNUFCM0ExNzk5RTRCMjAwRDI4MzNEIC8qIFg4NkRpc2Fz
c2VtYmxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjJCQkQ5NzFDNUZGM0Y1MDAyM0VGMjMg
LyogQjNWYXJpYWJsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NjNDNkQ5QzE1MjExMTFBMDA1
ODVFNEUgLyogWWFyckNhbm9uaWNhbGl6ZVVDUzIuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
QVJNNjQuaAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4NzQsNiArMjg3
NCwxMiBAQCBwdWJsaWM6CiAgICAgICAgIGxvYWQ2NChhZGRyZXNzLCBnZXRDYWNoZWREYXRhVGVt
cFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCkpOwogICAgICAgICBtX2Fzc2VtYmxlci5icihkYXRh
VGVtcFJlZ2lzdGVyKTsKICAgICB9CisgICAgCisgICAgdm9pZCBqdW1wKEJhc2VJbmRleCBhZGRy
ZXNzKQorICAgIHsKKyAgICAgICAgbG9hZDY0KGFkZHJlc3MsIGdldENhY2hlZERhdGFUZW1wUmVn
aXN0ZXJJREFuZEludmFsaWRhdGUoKSk7CisgICAgICAgIG1fYXNzZW1ibGVyLmJyKGRhdGFUZW1w
UmVnaXN0ZXIpOworICAgIH0KIAogICAgIHZvaWQganVtcChBYnNvbHV0ZUFkZHJlc3MgYWRkcmVz
cykKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyWDg2Q29tbW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTIyNjMsNiArMjI2MywxMiBAQCBwdWJsaWM6CiAgICAgICAgIG1f
YXNzZW1ibGVyLmptcF9tKGFkZHJlc3Mub2Zmc2V0LCBhZGRyZXNzLmJhc2UpOwogICAgIH0KIAor
ICAgIC8vIEFkZHJlc3MgaXMgYSBtZW1vcnkgbG9jYXRpb24gY29udGFpbmluZyB0aGUgYWRkcmVz
cyB0byBqdW1wIHRvCisgICAgdm9pZCBqdW1wKEJhc2VJbmRleCBhZGRyZXNzKQorICAgIHsKKyAg
ICAgICAgbV9hc3NlbWJsZXIuam1wX20oYWRkcmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFzZSwgYWRk
cmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZSk7CisgICAgfQorCiAKICAgICAvLyBBcml0aG1ldGlj
IGNvbnRyb2wgZmxvdyBvcGVyYXRpb25zOgogICAgIC8vCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgJKHJldmlzaW9uIDIwMjgwOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTE5ODMsNiArMTk4MywxMSBAQCBwdWJsaWM6CiAgICAgICAgIG1fZm9ybWF0dGVy
Lm9uZUJ5dGVPcChPUF9HUk9VUDVfRXYsIEdST1VQNV9PUF9KTVBOLCBiYXNlLCBvZmZzZXQpOwog
ICAgIH0KICAgICAKKyAgICB2b2lkIGptcF9tKGludCBvZmZzZXQsIFJlZ2lzdGVySUQgYmFzZSwg
UmVnaXN0ZXJJRCBpbmRleCwgaW50IHNjYWxlKQorICAgIHsKKyAgICAgICAgbV9mb3JtYXR0ZXIu
b25lQnl0ZU9wKE9QX0dST1VQNV9FdiwgR1JPVVA1X09QX0pNUE4sIGJhc2UsIGluZGV4LCBzY2Fs
ZSwgb2Zmc2V0KTsKKyAgICB9CisgICAgCiAjaWYgIUNQVShYODZfNjQpCiAgICAgdm9pZCBqbXBf
bShjb25zdCB2b2lkKiBhZGRyZXNzKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0Jhc2ljQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0Jhc2ljQmxvY2suY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAs
NiBAQAogCiAjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrSW5saW5lcy5oIgogI2luY2x1ZGUgIkIzQmFz
aWNCbG9ja1V0aWxzLmgiCi0jaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKICNpbmNsdWRlICJC
M1Byb2NlZHVyZS5oIgogI2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSA8d3Rm
L0xpc3REdW1wLmg+CkBAIC01MiwxMiArNTEsMTQgQEAgQmFzaWNCbG9jazo6fkJhc2ljQmxvY2so
KQogdm9pZCBCYXNpY0Jsb2NrOjphcHBlbmQoVmFsdWUqIHZhbHVlKQogewogICAgIG1fdmFsdWVz
LmFwcGVuZCh2YWx1ZSk7CisgICAgdmFsdWUtPm93bmVyID0gdGhpczsKIH0KIAogdm9pZCBCYXNp
Y0Jsb2NrOjphcHBlbmROb25UZXJtaW5hbChWYWx1ZSogdmFsdWUpCiB7CiAgICAgbV92YWx1ZXMu
YXBwZW5kKG1fdmFsdWVzLmxhc3QoKSk7CiAgICAgbV92YWx1ZXNbbV92YWx1ZXMuc2l6ZSgpIC0g
MV0gPSB2YWx1ZTsKKyAgICB2YWx1ZS0+b3duZXIgPSB0aGlzOwogfQogCiB2b2lkIEJhc2ljQmxv
Y2s6OnJlbW92ZUxhc3QoUHJvY2VkdXJlJiBwcm9jKQpAQCAtODQsOSArODUsNDEgQEAgVmFsdWUq
IEJhc2ljQmxvY2s6OmFwcGVuZEludENvbnN0YW50KFBybwogICAgIHJldHVybiBhcHBlbmRJbnRD
b25zdGFudChwcm9jLCBsaWtlVmFsdWUtPm9yaWdpbigpLCBsaWtlVmFsdWUtPnR5cGUoKSwgdmFs
dWUpOwogfQogCit2b2lkIEJhc2ljQmxvY2s6OmNsZWFyU3VjY2Vzc29ycygpCit7CisgICAgbV9z
dWNjZXNzb3JzLmNsZWFyKCk7Cit9CisKK3ZvaWQgQmFzaWNCbG9jazo6YXBwZW5kU3VjY2Vzc29y
KGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgdGFyZ2V0KQoreworICAgIG1fc3VjY2Vzc29ycy5hcHBl
bmQodGFyZ2V0KTsKK30KKwordm9pZCBCYXNpY0Jsb2NrOjpzZXRTdWNjZXNzb3JzKGNvbnN0IEZy
ZXF1ZW50ZWRCbG9jayYgdGFyZ2V0KQoreworICAgIG1fc3VjY2Vzc29ycy5yZXNpemUoMSk7Cisg
ICAgbV9zdWNjZXNzb3JzWzBdID0gdGFyZ2V0OworfQorCit2b2lkIEJhc2ljQmxvY2s6OnNldFN1
Y2Nlc3NvcnMoY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YWtlbiwgY29uc3QgRnJlcXVlbnRlZEJs
b2NrJiBub3RUYWtlbikKK3sKKyAgICBtX3N1Y2Nlc3NvcnMucmVzaXplKDIpOworICAgIG1fc3Vj
Y2Vzc29yc1swXSA9IHRha2VuOworICAgIG1fc3VjY2Vzc29yc1sxXSA9IG5vdFRha2VuOworfQor
CiBib29sIEJhc2ljQmxvY2s6OnJlcGxhY2VTdWNjZXNzb3IoQmFzaWNCbG9jayogZnJvbSwgQmFz
aWNCbG9jayogdG8pCiB7Ci0gICAgcmV0dXJuIGxhc3QoKS0+YXM8Q29udHJvbFZhbHVlPigpLT5y
ZXBsYWNlU3VjY2Vzc29yKGZyb20sIHRvKTsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAg
IGZvciAoQmFzaWNCbG9jayomIHN1Y2Nlc3NvciA6IHN1Y2Nlc3NvckJsb2NrcygpKSB7CisgICAg
ICAgIGlmIChzdWNjZXNzb3IgPT0gZnJvbSkgeworICAgICAgICAgICAgc3VjY2Vzc29yID0gdG87
CisgICAgICAgICAgICByZXN1bHQgPSB0cnVlOworICAgICAgICAgICAgCisgICAgICAgICAgICAv
LyBLZWVwIGxvb3BpbmcgYmVjYXVzZSBhIHN1Y2Nlc3NvciBtYXkgYmUgbWVudGlvbmVkIG11bHRp
cGxlIHRpbWVzLCBsaWtlIGluIGEgU3dpdGNoLgorICAgICAgICB9CisgICAgfQorICAgIHJldHVy
biByZXN1bHQ7CiB9CiAKIGJvb2wgQmFzaWNCbG9jazo6YWRkUHJlZGVjZXNzb3IoQmFzaWNCbG9j
ayogYmxvY2spCkBAIC0xMjEsNiArMTU0LDQyIEBAIHZvaWQgQmFzaWNCbG9jazo6ZGVlcER1bXAo
Y29uc3QgUHJvY2VkdXIKICAgICAgICAgb3V0LnByaW50KCIgIFByZWRlY2Vzc29yczogIiwgcG9p
bnRlckxpc3REdW1wKHByZWRlY2Vzc29ycygpKSwgIlxuIik7CiAgICAgZm9yIChWYWx1ZSogdmFs
dWUgOiAqdGhpcykKICAgICAgICAgb3V0LnByaW50KCIgICAgIiwgQjM6OmRlZXBEdW1wKHByb2Ms
IHZhbHVlKSwgIlxuIik7CisgICAgaWYgKHN1Y2Nlc3NvcnMoKS5zaXplKCkpIHsKKyAgICAgICAg
b3V0LnByaW50KCIgIFN1Y2Nlc3NvcnM6ICIpOworICAgICAgICBpZiAoc2l6ZSgpKQorICAgICAg
ICAgICAgbGFzdCgpLT5kdW1wU3VjY2Vzc29ycyh0aGlzLCBvdXQpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBvdXQucHJpbnQobGlzdER1bXAoc3VjY2Vzc29ycygpKSk7CisgICAgICAgIG91
dC5wcmludCgiXG4iKTsKKyAgICB9Cit9CisKK1ZhbHVlKiBCYXNpY0Jsb2NrOjphcHBlbmROZXdD
b250cm9sVmFsdWUoUHJvY2VkdXJlJiBwcm9jLCBPcGNvZGUgb3Bjb2RlLCBPcmlnaW4gb3JpZ2lu
KQoreworICAgIFJFTEVBU0VfQVNTRVJUKG9wY29kZSA9PSBPb3BzKTsKKyAgICBjbGVhclN1Y2Nl
c3NvcnMoKTsKKyAgICByZXR1cm4gYXBwZW5kTmV3PFZhbHVlPihwcm9jLCBvcGNvZGUsIG9yaWdp
bik7Cit9CisKK1ZhbHVlKiBCYXNpY0Jsb2NrOjphcHBlbmROZXdDb250cm9sVmFsdWUoUHJvY2Vk
dXJlJiBwcm9jLCBPcGNvZGUgb3Bjb2RlLCBPcmlnaW4gb3JpZ2luLCBWYWx1ZSogdmFsdWUpCit7
CisgICAgUkVMRUFTRV9BU1NFUlQob3Bjb2RlID09IFJldHVybik7CisgICAgY2xlYXJTdWNjZXNz
b3JzKCk7CisgICAgcmV0dXJuIGFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgb3Bjb2RlLCBvcmlnaW4s
IHZhbHVlKTsKK30KKworVmFsdWUqIEJhc2ljQmxvY2s6OmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShQ
cm9jZWR1cmUmIHByb2MsIE9wY29kZSBvcGNvZGUsIE9yaWdpbiBvcmlnaW4sIGNvbnN0IEZyZXF1
ZW50ZWRCbG9jayYgdGFyZ2V0KQoreworICAgIFJFTEVBU0VfQVNTRVJUKG9wY29kZSA9PSBKdW1w
KTsKKyAgICBzZXRTdWNjZXNzb3JzKHRhcmdldCk7CisgICAgcmV0dXJuIGFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgb3Bjb2RlLCBvcmlnaW4pOworfQorCitWYWx1ZSogQmFzaWNCbG9jazo6YXBwZW5k
TmV3Q29udHJvbFZhbHVlKFByb2NlZHVyZSYgcHJvYywgT3Bjb2RlIG9wY29kZSwgT3JpZ2luIG9y
aWdpbiwgVmFsdWUqIHByZWRpY2F0ZSwgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YWtlbiwgY29u
c3QgRnJlcXVlbnRlZEJsb2NrJiBub3RUYWtlbikKK3sKKyAgICBSRUxFQVNFX0FTU0VSVChvcGNv
ZGUgPT0gQnJhbmNoKTsKKyAgICBzZXRTdWNjZXNzb3JzKHRha2VuLCBub3RUYWtlbik7CisgICAg
cmV0dXJuIGFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgb3Bjb2RlLCBvcmlnaW4sIHByZWRpY2F0ZSk7
CiB9CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzQmFzaWNCbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0Jhc2ljQmxvY2suaAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzQmFzaWNCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw3IEBA
IGNsYXNzIEJhc2ljQmxvY2sgewogcHVibGljOgogICAgIHR5cGVkZWYgVmVjdG9yPFZhbHVlKj4g
VmFsdWVMaXN0OwogICAgIHR5cGVkZWYgVmVjdG9yPEJhc2ljQmxvY2sqLCAyPiBQcmVkZWNlc3Nv
ckxpc3Q7Ci0gICAgdHlwZWRlZiBWZWN0b3I8RnJlcXVlbnRlZEJsb2NrLCAyPiBTdWNjZXNzb3JM
aXN0OyAvLyBUaGlzIG1hdGNoZXMgQ29udHJvbFZhbHVlOjpTdWNjZXNzb3JMaXN0CisgICAgdHlw
ZWRlZiBWZWN0b3I8RnJlcXVlbnRlZEJsb2NrLCAyPiBTdWNjZXNzb3JMaXN0OwogCiAgICAgc3Rh
dGljIGNvbnN0IGNoYXIqIGNvbnN0IGR1bXBQcmVmaXg7CiAKQEAgLTc1LDMwICs3NSw1MSBAQCBw
dWJsaWM6CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCByZXBsYWNlTGFzdChQcm9jZWR1cmUm
LCBWYWx1ZSopOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVmFsdWVUeXBlLCB0eXBlbmFtZS4u
LiBBcmd1bWVudHM+Ci0gICAgVmFsdWVUeXBlKiBhcHBlbmROZXcoUHJvY2VkdXJlJiwgQXJndW1l
bnRzLi4uKTsKKyAgICBWYWx1ZVR5cGUqIGFwcGVuZE5ldyhQcm9jZWR1cmUmLCBBcmd1bWVudHMm
Ji4uLik7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVmFsdWVUeXBlLCB0eXBlbmFtZS4uLiBBcmd1
bWVudHM+Ci0gICAgVmFsdWVUeXBlKiBhcHBlbmROZXdOb25UZXJtaW5hbChQcm9jZWR1cmUmLCBB
cmd1bWVudHMuLi4pOwotCisgICAgVmFsdWVUeXBlKiBhcHBlbmROZXdOb25UZXJtaW5hbChQcm9j
ZWR1cmUmLCBBcmd1bWVudHMmJi4uLik7CisgICAgCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgVmFs
dWUqIGFwcGVuZEludENvbnN0YW50KFByb2NlZHVyZSYsIE9yaWdpbiwgVHlwZSwgaW50NjRfdCB2
YWx1ZSk7CiAgICAgVmFsdWUqIGFwcGVuZEludENvbnN0YW50KFByb2NlZHVyZSYsIFZhbHVlKiBs
aWtlVmFsdWUsIGludDY0X3QgdmFsdWUpOwogCiAgICAgdm9pZCByZW1vdmVMYXN0KFByb2NlZHVy
ZSYpOwogICAgIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5hbWUuLi4g
QXJndW1lbnRzPgotICAgIFZhbHVlVHlwZSogcmVwbGFjZUxhc3RXaXRoTmV3KFByb2NlZHVyZSYs
IEFyZ3VtZW50cy4uLik7CisgICAgVmFsdWVUeXBlKiByZXBsYWNlTGFzdFdpdGhOZXcoUHJvY2Vk
dXJlJiwgQXJndW1lbnRzJiYuLi4pOwogCi0gICAgdW5zaWduZWQgbnVtU3VjY2Vzc29ycygpIGNv
bnN0OwotICAgIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgc3VjY2Vzc29yKHVuc2lnbmVkIGluZGV4
KSBjb25zdDsKLSAgICBGcmVxdWVudGVkQmxvY2smIHN1Y2Nlc3Nvcih1bnNpZ25lZCBpbmRleCk7
Ci0gICAgY29uc3QgU3VjY2Vzc29yTGlzdCYgc3VjY2Vzc29ycygpIGNvbnN0OwotICAgIFN1Y2Nl
c3Nvckxpc3QmIHN1Y2Nlc3NvcnMoKTsKLQotICAgIEJhc2ljQmxvY2sqIHN1Y2Nlc3NvckJsb2Nr
KHVuc2lnbmVkIGluZGV4KSBjb25zdDsKLSAgICBCYXNpY0Jsb2NrKiYgc3VjY2Vzc29yQmxvY2so
dW5zaWduZWQgaW5kZXgpOwotICAgIFN1Y2Nlc3NvckNvbGxlY3Rpb248QmFzaWNCbG9jaywgU3Vj
Y2Vzc29yTGlzdD4gc3VjY2Vzc29yQmxvY2tzKCk7Ci0gICAgU3VjY2Vzc29yQ29sbGVjdGlvbjxj
b25zdCBCYXNpY0Jsb2NrLCBjb25zdCBTdWNjZXNzb3JMaXN0PiBzdWNjZXNzb3JCbG9ja3MoKSBj
b25zdDsKKyAgICB1bnNpZ25lZCBudW1TdWNjZXNzb3JzKCkgY29uc3QgeyByZXR1cm4gbV9zdWNj
ZXNzb3JzLnNpemUoKTsgfQorICAgIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgc3VjY2Vzc29yKHVu
c2lnbmVkIGluZGV4KSBjb25zdCB7IHJldHVybiBtX3N1Y2Nlc3NvcnNbaW5kZXhdOyB9CisgICAg
RnJlcXVlbnRlZEJsb2NrJiBzdWNjZXNzb3IodW5zaWduZWQgaW5kZXgpIHsgcmV0dXJuIG1fc3Vj
Y2Vzc29yc1tpbmRleF07IH0KKyAgICBjb25zdCBTdWNjZXNzb3JMaXN0JiBzdWNjZXNzb3JzKCkg
Y29uc3QgeyByZXR1cm4gbV9zdWNjZXNzb3JzOyB9CisgICAgU3VjY2Vzc29yTGlzdCYgc3VjY2Vz
c29ycygpIHsgcmV0dXJuIG1fc3VjY2Vzc29yczsgfQorICAgIAorICAgIHZvaWQgY2xlYXJTdWNj
ZXNzb3JzKCk7CisgICAgdm9pZCBhcHBlbmRTdWNjZXNzb3IoY29uc3QgRnJlcXVlbnRlZEJsb2Nr
Jik7CisgICAgdm9pZCBzZXRTdWNjZXNzb3JzKGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYpOworICAg
IHZvaWQgc2V0U3VjY2Vzc29ycyhjb25zdCBGcmVxdWVudGVkQmxvY2smLCBjb25zdCBGcmVxdWVu
dGVkQmxvY2smKTsKKworICAgIEJhc2ljQmxvY2sqIHN1Y2Nlc3NvckJsb2NrKHVuc2lnbmVkIGlu
ZGV4KSBjb25zdCB7IHJldHVybiBzdWNjZXNzb3IoaW5kZXgpLmJsb2NrKCk7IH0KKyAgICBCYXNp
Y0Jsb2NrKiYgc3VjY2Vzc29yQmxvY2sodW5zaWduZWQgaW5kZXgpIHsgcmV0dXJuIHN1Y2Nlc3Nv
cihpbmRleCkuYmxvY2soKTsgfQorICAgIFN1Y2Nlc3NvckNvbGxlY3Rpb248QmFzaWNCbG9jaywg
U3VjY2Vzc29yTGlzdD4gc3VjY2Vzc29yQmxvY2tzKCkKKyAgICB7CisgICAgICAgIHJldHVybiBT
dWNjZXNzb3JDb2xsZWN0aW9uPEJhc2ljQmxvY2ssIFN1Y2Nlc3Nvckxpc3Q+KHN1Y2Nlc3NvcnMo
KSk7CisgICAgfQorICAgIFN1Y2Nlc3NvckNvbGxlY3Rpb248Y29uc3QgQmFzaWNCbG9jaywgY29u
c3QgU3VjY2Vzc29yTGlzdD4gc3VjY2Vzc29yQmxvY2tzKCkgY29uc3QKKyAgICB7CisgICAgICAg
IHJldHVybiBTdWNjZXNzb3JDb2xsZWN0aW9uPGNvbnN0IEJhc2ljQmxvY2ssIFN1Y2Nlc3Nvckxp
c3Q+KHN1Y2Nlc3NvcnMoKSk7CisgICAgfQogCiAgICAgYm9vbCByZXBsYWNlU3VjY2Vzc29yKEJh
c2ljQmxvY2sqIGZyb20sIEJhc2ljQmxvY2sqIHRvKTsKKyAgICAKKyAgICAvLyBUaGlzIGlzIG9u
bHkgdmFsaWQgZm9yIEp1bXAgYW5kIEJyYW5jaC4KKyAgICBjb25zdCBGcmVxdWVudGVkQmxvY2sm
IHRha2VuKCkgY29uc3Q7CisgICAgRnJlcXVlbnRlZEJsb2NrJiB0YWtlbigpOworICAgIC8vIFRo
aXMgaXMgb25seSB2YWxpZCBmb3IgQnJhbmNoLgorICAgIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYg
bm90VGFrZW4oKSBjb25zdDsKKyAgICBGcmVxdWVudGVkQmxvY2smIG5vdFRha2VuKCkgY29uc3Q7
CisgICAgLy8gVGhpcyBpcyBvbmx5IHZhbGlkIGZvciBCcmFuY2ggYW5kIFN3aXRjaC4KKyAgICBj
b25zdCBGcmVxdWVudGVkQmxvY2smIGZhbGxUaHJvdWdoKCkgY29uc3Q7CisgICAgRnJlcXVlbnRl
ZEJsb2NrJiBmYWxsVGhyb3VnaCgpIGNvbnN0OwogCiAgICAgdW5zaWduZWQgbnVtUHJlZGVjZXNz
b3JzKCkgY29uc3QgeyByZXR1cm4gbV9wcmVkZWNlc3NvcnMuc2l6ZSgpOyB9CiAgICAgQmFzaWNC
bG9jayogcHJlZGVjZXNzb3IodW5zaWduZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fcHJlZGVj
ZXNzb3JzW2luZGV4XTsgfQpAQCAtMTE1LDEwICsxMzYsMjMgQEAgcHVibGljOgogICAgIHZvaWQg
dXBkYXRlUHJlZGVjZXNzb3JzQWZ0ZXIoKTsKIAogICAgIGRvdWJsZSBmcmVxdWVuY3koKSBjb25z
dCB7IHJldHVybiBtX2ZyZXF1ZW5jeTsgfQotCisgICAgCiAgICAgdm9pZCBkdW1wKFByaW50U3Ry
ZWFtJikgY29uc3Q7CiAgICAgdm9pZCBkZWVwRHVtcChjb25zdCBQcm9jZWR1cmUmLCBQcmludFN0
cmVhbSYpIGNvbnN0OwogCisgICAgLy8gVGhlc2UgYXJlIGRlcHJlY2F0ZWQgbWV0aG9kIGZvciBj
b21wYXRpYmlsaXR5IHdpdGggdGhlIG9sZCBDb250cm9sVmFsdWUgY2xhc3MuIERvbid0IHVzZSB0
aGVtCisgICAgLy8gaW4gbmV3IGNvZGUuCisgICAgLy8gRklYTUU6IGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk0NDAKKyAgICAKKyAgICAvLyBVc2UgdGhpcyBmb3Ig
T29wcy4KKyAgICBKU19FWFBPUlRfUFJJVkFURSBWYWx1ZSogYXBwZW5kTmV3Q29udHJvbFZhbHVl
KFByb2NlZHVyZSYsIE9wY29kZSwgT3JpZ2luKTsKKyAgICAvLyBVc2UgdGhpcyBmb3IgUmV0dXJu
LgorICAgIEpTX0VYUE9SVF9QUklWQVRFIFZhbHVlKiBhcHBlbmROZXdDb250cm9sVmFsdWUoUHJv
Y2VkdXJlJiwgT3Bjb2RlLCBPcmlnaW4sIFZhbHVlKik7CisgICAgLy8gVXNlIHRoaXMgZm9yIEp1
bXAuCisgICAgSlNfRVhQT1JUX1BSSVZBVEUgVmFsdWUqIGFwcGVuZE5ld0NvbnRyb2xWYWx1ZShQ
cm9jZWR1cmUmLCBPcGNvZGUsIE9yaWdpbiwgY29uc3QgRnJlcXVlbnRlZEJsb2NrJik7CisgICAg
Ly8gVXNlIHRoaXMgZm9yIEJyYW5jaC4KKyAgICBKU19FWFBPUlRfUFJJVkFURSBWYWx1ZSogYXBw
ZW5kTmV3Q29udHJvbFZhbHVlKFByb2NlZHVyZSYsIE9wY29kZSwgT3JpZ2luLCBWYWx1ZSosIGNv
bnN0IEZyZXF1ZW50ZWRCbG9jayYsIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYpOworICAgIAogcHJp
dmF0ZToKICAgICBmcmllbmQgY2xhc3MgQmxvY2tJbnNlcnRpb25TZXQ7CiAgICAgZnJpZW5kIGNs
YXNzIEluc2VydGlvblNldDsKQEAgLTEzMCw2ICsxNjQsNyBAQCBwcml2YXRlOgogICAgIHVuc2ln
bmVkIG1faW5kZXg7CiAgICAgVmFsdWVMaXN0IG1fdmFsdWVzOwogICAgIFByZWRlY2Vzc29yTGlz
dCBtX3ByZWRlY2Vzc29yczsKKyAgICBTdWNjZXNzb3JMaXN0IG1fc3VjY2Vzc29yczsKICAgICBk
b3VibGUgbV9mcmVxdWVuY3k7CiB9OwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNCYXNpY0Jsb2NrSW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0Jhc2ljQmxvY2tJbmxpbmVzLmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2tJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI5LDc4ICsyOSw2OCBAQAogI2lmIEVOQUJMRShCM19KSVQpCiAKICNpbmNsdWRlICJCM0Jhc2lj
QmxvY2suaCIKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzUHJvY2Vk
dXJlSW5saW5lcy5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIAogdGVtcGxh
dGU8dHlwZW5hbWUgVmFsdWVUeXBlLCB0eXBlbmFtZS4uLiBBcmd1bWVudHM+Ci1WYWx1ZVR5cGUq
IEJhc2ljQmxvY2s6OmFwcGVuZE5ldyhQcm9jZWR1cmUmIHByb2NlZHVyZSwgQXJndW1lbnRzLi4u
IGFyZ3VtZW50cykKK1ZhbHVlVHlwZSogQmFzaWNCbG9jazo6YXBwZW5kTmV3KFByb2NlZHVyZSYg
cHJvY2VkdXJlLCBBcmd1bWVudHMmJi4uLiBhcmd1bWVudHMpCiB7Ci0gICAgVmFsdWVUeXBlKiBy
ZXN1bHQgPSBwcm9jZWR1cmUuYWRkPFZhbHVlVHlwZT4oYXJndW1lbnRzLi4uKTsKKyAgICBWYWx1
ZVR5cGUqIHJlc3VsdCA9IHByb2NlZHVyZS5hZGQ8VmFsdWVUeXBlPihzdGQ6OmZvcndhcmQ8QXJn
dW1lbnRzPihhcmd1bWVudHMpLi4uKTsKICAgICBhcHBlbmQocmVzdWx0KTsKICAgICByZXR1cm4g
cmVzdWx0OwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWYWx1ZVR5cGUsIHR5cGVuYW1lLi4uIEFy
Z3VtZW50cz4KLVZhbHVlVHlwZSogQmFzaWNCbG9jazo6YXBwZW5kTmV3Tm9uVGVybWluYWwoUHJv
Y2VkdXJlJiBwcm9jZWR1cmUsIEFyZ3VtZW50cy4uLiBhcmd1bWVudHMpCitWYWx1ZVR5cGUqIEJh
c2ljQmxvY2s6OmFwcGVuZE5ld05vblRlcm1pbmFsKFByb2NlZHVyZSYgcHJvY2VkdXJlLCBBcmd1
bWVudHMmJi4uLiBhcmd1bWVudHMpCiB7Ci0gICAgVmFsdWVUeXBlKiByZXN1bHQgPSBwcm9jZWR1
cmUuYWRkPFZhbHVlVHlwZT4oYXJndW1lbnRzLi4uKTsKKyAgICBWYWx1ZVR5cGUqIHJlc3VsdCA9
IHByb2NlZHVyZS5hZGQ8VmFsdWVUeXBlPihzdGQ6OmZvcndhcmQ8QXJndW1lbnRzPihhcmd1bWVu
dHMpLi4uKTsKICAgICBhcHBlbmROb25UZXJtaW5hbChyZXN1bHQpOwogICAgIHJldHVybiByZXN1
bHQ7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5hbWUuLi4gQXJndW1l
bnRzPgotVmFsdWVUeXBlKiBCYXNpY0Jsb2NrOjpyZXBsYWNlTGFzdFdpdGhOZXcoUHJvY2VkdXJl
JiBwcm9jZWR1cmUsIEFyZ3VtZW50cy4uLiBhcmd1bWVudHMpCitWYWx1ZVR5cGUqIEJhc2ljQmxv
Y2s6OnJlcGxhY2VMYXN0V2l0aE5ldyhQcm9jZWR1cmUmIHByb2NlZHVyZSwgQXJndW1lbnRzJiYu
Li4gYXJndW1lbnRzKQogewotICAgIFZhbHVlVHlwZSogcmVzdWx0ID0gcHJvY2VkdXJlLmFkZDxW
YWx1ZVR5cGU+KGFyZ3VtZW50cy4uLik7CisgICAgVmFsdWVUeXBlKiByZXN1bHQgPSBwcm9jZWR1
cmUuYWRkPFZhbHVlVHlwZT4oc3RkOjpmb3J3YXJkPEFyZ3VtZW50cz4oYXJndW1lbnRzKS4uLik7
CiAgICAgcmVwbGFjZUxhc3QocHJvY2VkdXJlLCByZXN1bHQpOwogICAgIHJldHVybiByZXN1bHQ7
CiB9CiAKLWlubGluZSB1bnNpZ25lZCBCYXNpY0Jsb2NrOjpudW1TdWNjZXNzb3JzKCkgY29uc3QK
K2NvbnN0IEZyZXF1ZW50ZWRCbG9jayYgQmFzaWNCbG9jazo6dGFrZW4oKSBjb25zdAogewotICAg
IHJldHVybiBsYXN0KCktPmFzPENvbnRyb2xWYWx1ZT4oKS0+bnVtU3VjY2Vzc29ycygpOworICAg
IEFTU0VSVChsYXN0KCktPm9wY29kZSgpID09IEp1bXAgfHwgbGFzdCgpLT5vcGNvZGUoKSA9PSBC
cmFuY2gpOworICAgIHJldHVybiBtX3N1Y2Nlc3NvcnNbMF07CiB9CiAKLWlubGluZSBjb25zdCBG
cmVxdWVudGVkQmxvY2smIEJhc2ljQmxvY2s6OnN1Y2Nlc3Nvcih1bnNpZ25lZCBpbmRleCkgY29u
c3QKK0ZyZXF1ZW50ZWRCbG9jayYgQmFzaWNCbG9jazo6dGFrZW4oKQogewotICAgIHJldHVybiBs
YXN0KCktPmFzPENvbnRyb2xWYWx1ZT4oKS0+c3VjY2Vzc29yKGluZGV4KTsKKyAgICBBU1NFUlQo
bGFzdCgpLT5vcGNvZGUoKSA9PSBKdW1wIHx8IGxhc3QoKS0+b3Bjb2RlKCkgPT0gQnJhbmNoKTsK
KyAgICByZXR1cm4gbV9zdWNjZXNzb3JzWzBdOwogfQogCi1pbmxpbmUgRnJlcXVlbnRlZEJsb2Nr
JiBCYXNpY0Jsb2NrOjpzdWNjZXNzb3IodW5zaWduZWQgaW5kZXgpCitjb25zdCBGcmVxdWVudGVk
QmxvY2smIEJhc2ljQmxvY2s6Om5vdFRha2VuKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbGFzdCgp
LT5hczxDb250cm9sVmFsdWU+KCktPnN1Y2Nlc3NvcihpbmRleCk7CisgICAgQVNTRVJUKGxhc3Qo
KS0+b3Bjb2RlKCkgPT0gQnJhbmNoKTsKKyAgICByZXR1cm4gbV9zdWNjZXNzb3JzWzFdOwogfQog
Ci1pbmxpbmUgY29uc3QgQmFzaWNCbG9jazo6U3VjY2Vzc29yTGlzdCYgQmFzaWNCbG9jazo6c3Vj
Y2Vzc29ycygpIGNvbnN0CitGcmVxdWVudGVkQmxvY2smIEJhc2ljQmxvY2s6Om5vdFRha2VuKCkK
IHsKLSAgICByZXR1cm4gbGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCktPnN1Y2Nlc3NvcnMoKTsK
KyAgICBBU1NFUlQobGFzdCgpLT5vcGNvZGUoKSA9PSBCcmFuY2gpOworICAgIHJldHVybiBtX3N1
Y2Nlc3NvcnNbMV07CiB9CiAKLWlubGluZSBCYXNpY0Jsb2NrOjpTdWNjZXNzb3JMaXN0JiBCYXNp
Y0Jsb2NrOjpzdWNjZXNzb3JzKCkKK2NvbnN0IEZyZXF1ZW50ZWRCbG9jayYgQmFzaWNCbG9jazo6
ZmFsbFRocm91Z2goKSBjb25zdAogewotICAgIHJldHVybiBsYXN0KCktPmFzPENvbnRyb2xWYWx1
ZT4oKS0+c3VjY2Vzc29ycygpOworICAgIEFTU0VSVChsYXN0KCktPm9wY29kZSgpID09IEJyYW5j
aCB8fCBsYXN0KCktPm9wY29kZSgpID09IFN3aXRjaCk7CisgICAgcmV0dXJuIG1fc3VjY2Vzc29y
cy5sYXN0KCk7CiB9CiAKLWlubGluZSBCYXNpY0Jsb2NrKiBCYXNpY0Jsb2NrOjpzdWNjZXNzb3JC
bG9jayh1bnNpZ25lZCBpbmRleCkgY29uc3QKK0ZyZXF1ZW50ZWRCbG9jayYgQmFzaWNCbG9jazo6
ZmFsbFRocm91Z2goKQogewotICAgIHJldHVybiBzdWNjZXNzb3IoaW5kZXgpLmJsb2NrKCk7Ci19
Ci0KLWlubGluZSBCYXNpY0Jsb2NrKiYgQmFzaWNCbG9jazo6c3VjY2Vzc29yQmxvY2sodW5zaWdu
ZWQgaW5kZXgpCi17Ci0gICAgcmV0dXJuIHN1Y2Nlc3NvcihpbmRleCkuYmxvY2soKTsKLX0KLQot
aW5saW5lIFN1Y2Nlc3NvckNvbGxlY3Rpb248QmFzaWNCbG9jaywgQmFzaWNCbG9jazo6U3VjY2Vz
c29yTGlzdD4gQmFzaWNCbG9jazo6c3VjY2Vzc29yQmxvY2tzKCkKLXsKLSAgICByZXR1cm4gU3Vj
Y2Vzc29yQ29sbGVjdGlvbjxCYXNpY0Jsb2NrLCBTdWNjZXNzb3JMaXN0PihzdWNjZXNzb3JzKCkp
OwotfQotCi1pbmxpbmUgU3VjY2Vzc29yQ29sbGVjdGlvbjxjb25zdCBCYXNpY0Jsb2NrLCBjb25z
dCBCYXNpY0Jsb2NrOjpTdWNjZXNzb3JMaXN0PiBCYXNpY0Jsb2NrOjpzdWNjZXNzb3JCbG9ja3Mo
KSBjb25zdAotewotICAgIHJldHVybiBTdWNjZXNzb3JDb2xsZWN0aW9uPGNvbnN0IEJhc2ljQmxv
Y2ssIGNvbnN0IFN1Y2Nlc3Nvckxpc3Q+KHN1Y2Nlc3NvcnMoKSk7CisgICAgQVNTRVJUKGxhc3Qo
KS0+b3Bjb2RlKCkgPT0gQnJhbmNoIHx8IGxhc3QoKS0+b3Bjb2RlKCkgPT0gU3dpdGNoKTsKKyAg
ICByZXR1cm4gbV9zdWNjZXNzb3JzLmxhc3QoKTsKIH0KIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6
OkIzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCbG9ja0luc2VydGlvblNldC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmxvY2tJbnNlcnRp
b25TZXQuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNCbG9ja0luc2VydGlvblNldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc4LDggKzc4LDggQEAg
QmFzaWNCbG9jayogQmxvY2tJbnNlcnRpb25TZXQ6OnNwbGl0Rm9ydwogICAgICAgICByZXN1bHQt
Pm1fdmFsdWVzW2ldID0gYmxvY2stPm1fdmFsdWVzW2ldOwogCiAgICAgLy8gTWFrZSB0aGUgbmV3
IGJsb2NrIGp1bXAgdG8gJ2Jsb2NrJy4KLSAgICByZXN1bHQtPm1fdmFsdWVzW3ZhbHVlSW5kZXhd
ID0KLSAgICAgICAgbV9wcm9jLmFkZDxDb250cm9sVmFsdWU+KEp1bXAsIHZhbHVlLT5vcmlnaW4o
KSwgRnJlcXVlbnRlZEJsb2NrKGJsb2NrKSk7CisgICAgcmVzdWx0LT5tX3ZhbHVlc1t2YWx1ZUlu
ZGV4XSA9IG1fcHJvYy5hZGQ8VmFsdWU+KEp1bXAsIHZhbHVlLT5vcmlnaW4oKSk7CisgICAgcmVz
dWx0LT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhibG9jaykpOwogCiAgICAgLy8gSWYg
d2UgaGFkIGluc2VydGVkIHRoaW5ncyBpbnRvICdibG9jaycgYmVmb3JlIHRoaXMsIGV4ZWN1dGUg
dGhvc2UgaW5zZXJ0aW9ucyBub3cuCiAgICAgaWYgKGluc2VydGlvblNldCkKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0JyZWFrQ3JpdGljYWxFZGdlcy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQnJlYWtDcml0aWNhbEVkZ2VzLmNwcAkocmV2
aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQnJlYWtDcml0aWNh
bEVkZ2VzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNiBAQAogCiAjaW5jbHVkZSAi
QjNCYXNpY0Jsb2NrSW5saW5lcy5oIgogI2luY2x1ZGUgIkIzQmxvY2tJbnNlcnRpb25TZXQuaCIK
LSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJlSW5saW5l
cy5oIgogI2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCiAKQEAgLTUwLDggKzQ5LDggQEAgdm9p
ZCBicmVha0NyaXRpY2FsRWRnZXMoUHJvY2VkdXJlJiBwcm9jKQogCiAgICAgICAgICAgICBCYXNp
Y0Jsb2NrKiBwYWQgPQogICAgICAgICAgICAgICAgIGluc2VydGlvblNldC5pbnNlcnRCZWZvcmUo
c3VjY2Vzc29yLCBzdWNjZXNzb3ItPmZyZXF1ZW5jeSgpKTsKLSAgICAgICAgICAgIHBhZC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCi0gICAgICAgICAgICAgICAgcHJvYywgSnVtcCwgc3VjY2Vz
c29yLT5hdCgwKS0+b3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhzdWNjZXNzb3IpKTsKKyAgICAg
ICAgICAgIHBhZC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBKdW1wLCBzdWNjZXNzb3ItPmF0KDAp
LT5vcmlnaW4oKSk7CisgICAgICAgICAgICBwYWQtPnNldFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJs
b2NrKHN1Y2Nlc3NvcikpOwogICAgICAgICAgICAgcGFkLT5hZGRQcmVkZWNlc3NvcihibG9jayk7
CiAgICAgICAgICAgICBzdWNjZXNzb3ItPnJlcGxhY2VQcmVkZWNlc3NvcihibG9jaywgcGFkKTsK
ICAgICAgICAgICAgIHN1Y2Nlc3NvciA9IHBhZDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0Nhc2VDb2xsZWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNDYXNlQ29sbGVjdGlvbi5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNDYXNlQ29sbGVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQjNDYXNlQ29sbGVjdGlvbi5oIgorCisj
aWYgRU5BQkxFKEIzX0pJVCkKKworI2luY2x1ZGUgIkIzQ2FzZUNvbGxlY3Rpb25JbmxpbmVzLmgi
CisjaW5jbHVkZSA8d3RmL0NvbW1hUHJpbnRlci5oPgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNw
YWNlIEIzIHsKKwordm9pZCBDYXNlQ29sbGVjdGlvbjo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBj
b25zdAoreworICAgIENvbW1hUHJpbnRlciBjb21tYTsKKyAgICBmb3IgKFN3aXRjaENhc2Ugc3dp
dGNoQ2FzZSA6ICp0aGlzKQorICAgICAgICBvdXQucHJpbnQoY29tbWEsIHN3aXRjaENhc2UpOwor
ICAgIG91dC5wcmludChjb21tYSwgImRlZmF1bHQtPiIsIGZhbGxUaHJvdWdoKCkpOworfQorCit9
IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKKworI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCisKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nhc2VDb2xsZWN0aW9uLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2FzZUNvbGxlY3Rpb24uaAkocmV2aXNp
b24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nhc2VDb2xsZWN0aW9uLmgJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwxMjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBCM0Nhc2VDb2xsZWN0aW9uX2gKKyNkZWZpbmUg
QjNDYXNlQ29sbGVjdGlvbl9oCisKKyNpZiBFTkFCTEUoQjNfSklUKQorCisjaW5jbHVkZSAiQjNT
d2l0Y2hDYXNlLmgiCisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeworCitjbGFzcyBC
YXNpY0Jsb2NrOworY2xhc3MgU3dpdGNoVmFsdWU7CisKKy8vIE5PVEU6IFlvdSdsbCBhbHdheXMg
d2FudCB0byBpbmNsdWRlIEIzQ2FzZUNvbGxlY3Rpb25JbmxpbmVzLmggd2hlbiB5b3UgdXNlIHRo
aXMuCisKK2NsYXNzIENhc2VDb2xsZWN0aW9uIHsKK3B1YmxpYzoKKyAgICBDYXNlQ29sbGVjdGlv
bigpCisgICAgeworICAgIH0KKyAgICAKKyAgICBDYXNlQ29sbGVjdGlvbihTd2l0Y2hWYWx1ZSog
dGVybWluYWwsIEJhc2ljQmxvY2sqIG93bmVyKQorICAgICAgICA6IG1fc3dpdGNoKHRlcm1pbmFs
KQorICAgICAgICAsIG1fb3duZXIob3duZXIpCisgICAgeworICAgIH0KKyAgICAKKyAgICBjb25z
dCBGcmVxdWVudGVkQmxvY2smIGZhbGxUaHJvdWdoKCkgY29uc3Q7CisKKyAgICB1bnNpZ25lZCBz
aXplKCkgY29uc3Q7CisgICAgU3dpdGNoQ2FzZSBhdCh1bnNpZ25lZCBpbmRleCkgY29uc3Q7Cisg
ICAgCisgICAgU3dpdGNoQ2FzZSBvcGVyYXRvcltdKHVuc2lnbmVkIGluZGV4KSBjb25zdAorICAg
IHsKKyAgICAgICAgcmV0dXJuIGF0KGluZGV4KTsKKyAgICB9CisKKyAgICBjbGFzcyBpdGVyYXRv
ciB7CisgICAgcHVibGljOgorICAgICAgICBpdGVyYXRvcigpCisgICAgICAgICAgICA6IG1fc3dp
dGNoKG51bGxwdHIpCisgICAgICAgICAgICAsIG1faW5kZXgoMCkKKyAgICAgICAgeworICAgICAg
ICB9CisKKyAgICAgICAgaXRlcmF0b3IoY29uc3QgU3dpdGNoVmFsdWUmIHN3aXRjaFZhbHVlLCB1
bnNpZ25lZCBpbmRleCkKKyAgICAgICAgICAgIDogbV9zd2l0Y2goJnN3aXRjaFZhbHVlKQorICAg
ICAgICAgICAgLCBtX2luZGV4KGluZGV4KQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAg
ICBTd2l0Y2hDYXNlIG9wZXJhdG9yKigpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBt
X3N3aXRjaC0+YXQobV9pbmRleCk7CisgICAgICAgIH0KKworICAgICAgICBpdGVyYXRvciYgb3Bl
cmF0b3IrKygpCisgICAgICAgIHsKKyAgICAgICAgICAgIG1faW5kZXgrKzsKKyAgICAgICAgICAg
IHJldHVybiAqdGhpczsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25z
dCBpdGVyYXRvciYgb3RoZXIpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VSVCht
X3N3aXRjaCA9PSBvdGhlci5tX3N3aXRjaCk7CisgICAgICAgICAgICByZXR1cm4gbV9pbmRleCA9
PSBvdGhlci5tX2luZGV4OworICAgICAgICB9CisKKyAgICAgICAgYm9vbCBvcGVyYXRvciE9KGNv
bnN0IGl0ZXJhdG9yJiBvdGhlcikgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJu
ICEoKnRoaXMgPT0gb3RoZXIpOworICAgICAgICB9CisKKyAgICBwcml2YXRlOgorICAgICAgICBj
b25zdCBTd2l0Y2hWYWx1ZSogbV9zd2l0Y2g7CisgICAgICAgIHVuc2lnbmVkIG1faW5kZXg7Cisg
ICAgfTsKKworICAgIHR5cGVkZWYgaXRlcmF0b3IgY29uc3RfaXRlcmF0b3I7CisKKyAgICBpdGVy
YXRvciBiZWdpbigpIGNvbnN0IHsgcmV0dXJuIGl0ZXJhdG9yKCp0aGlzLCAwKTsgfQorICAgIGl0
ZXJhdG9yIGVuZCgpIGNvbnN0IHsgcmV0dXJuIGl0ZXJhdG9yKCp0aGlzLCBzaXplKCkpOyB9Cisg
ICAgCisgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CisgICAgCitwcml2YXRlOgor
ICAgIFN3aXRjaFZhbHVlKiBtX3N3aXRjaCB7IG51bGxwdHIgfTsKKyAgICBCYXNpY0Jsb2NrKiBt
X293bmVyIHsgbnVsbHB0ciB9OworfTsKKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzCisKKyNl
bmRpZiAvLyBFTkFCTEUoQjNfSklUKQorCisjZW5kaWYgLy8gQjNDYXNlQ29sbGVjdGlvbl9oCisK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nhc2VDb2xsZWN0aW9u
SW5saW5lcy5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2Fz
ZUNvbGxlY3Rpb25JbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1NyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEIzQ2Fz
ZUNvbGxlY3Rpb25JbmxpbmVzX2gKKyNkZWZpbmUgQjNDYXNlQ29sbGVjdGlvbklubGluZXNfaAor
CisjaWYgRU5BQkxFKEIzX0pJVCkKKworI2luY2x1ZGUgIkIzQ2FzZUNvbGxlY3Rpb24uaCIKKyNp
bmNsdWRlICJCM1N3aXRjaFZhbHVlLmgiCisjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrLmgiCisKK25h
bWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeworCitpbmxpbmUgY29uc3QgRnJlcXVlbnRlZEJs
b2NrJiBDYXNlQ29sbGVjdGlvbjo6ZmFsbFRocm91Z2goKSBjb25zdAoreworICAgIHJldHVybiBt
X293bmVyLT5mYWxsVGhyb3VnaCgpOworfQorCitpbmxpbmUgdW5zaWduZWQgQ2FzZUNvbGxlY3Rp
b246OnNpemUoKSBjb25zdAoreworICAgIHJldHVybiBtX3N3aXRjaC0+bnVtQ2FzZVZhbHVlcygp
OworfQorCitpbmxpbmUgU3dpdGNoQ2FzZSBDYXNlQ29sbGVjdGlvbjo6YXQodW5zaWduZWQgaW5k
ZXgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFN3aXRjaENhc2UobV9zd2l0Y2gtPmNhc2VWYWx1ZShp
bmRleCksIG1fb3duZXItPnN1Y2Nlc3NvcihpbmRleCkpOworfQorCit9IH0gLy8gbmFtZXNwYWNl
IEpTQzo6QjMKKworI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCisKKyNlbmRpZiAvLyBCM0Nhc2VD
b2xsZWN0aW9uSW5saW5lc19oCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nv
bW1vbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbW1vbi5o
CShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb21tb24u
aAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1
LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0yOCw2ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoQjNfSklUKQogCisj
aW5jbHVkZSAiSlNFeHBvcnRNYWNyb3MuaCIKKwogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBC
MyB7CiAKIGlubGluZSBib29sIGlzNjRCaXQoKSB7IHJldHVybiBzaXplb2Yodm9pZCopID09IDg7
IH0KQEAgLTM4LDcgKzQwLDcgQEAgZW51bSBCM0NvbXBsaXRhdGlvbk1vZGUgewogICAgIEFpck1v
ZGUKIH07CiAKLWJvb2wgc2hvdWxkRHVtcElSKEIzQ29tcGxpdGF0aW9uTW9kZSk7CitKU19FWFBP
UlRfUFJJVkFURSBib29sIHNob3VsZER1bXBJUihCM0NvbXBsaXRhdGlvbk1vZGUpOwogYm9vbCBz
aG91bGREdW1wSVJBdEVhY2hQaGFzZShCM0NvbXBsaXRhdGlvbk1vZGUpOwogYm9vbCBzaG91bGRW
YWxpZGF0ZUlSKCk7CiBib29sIHNob3VsZFZhbGlkYXRlSVJBdEVhY2hQaGFzZSgpOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29udHJvbFZhbHVlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb250cm9sVmFsdWUuY3BwCShyZXZpc2lvbiAy
MDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb250cm9sVmFsdWUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDk1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUt
MjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAi
QjNDb250cm9sVmFsdWUuaCIKLQotI2lmIEVOQUJMRShCM19KSVQpCi0KLSNpbmNsdWRlICJCM0Jh
c2ljQmxvY2suaCIKLQotbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7Ci0KLUNvbnRyb2xW
YWx1ZTo6fkNvbnRyb2xWYWx1ZSgpCi17Ci19Ci0KLWJvb2wgQ29udHJvbFZhbHVlOjpyZXBsYWNl
U3VjY2Vzc29yKEJhc2ljQmxvY2sqIGZyb20sIEJhc2ljQmxvY2sqIHRvKQotewotICAgIGJvb2wg
cmVzdWx0ID0gZmFsc2U7Ci0gICAgZm9yIChGcmVxdWVudGVkQmxvY2smIHN1Y2Nlc3NvciA6IG1f
c3VjY2Vzc29ycykgewotICAgICAgICBpZiAoc3VjY2Vzc29yLmJsb2NrKCkgPT0gZnJvbSkgewot
ICAgICAgICAgICAgc3VjY2Vzc29yLmJsb2NrKCkgPSB0bzsKLSAgICAgICAgICAgIHJlc3VsdCA9
IHRydWU7Ci0KLSAgICAgICAgICAgIC8vIEtlZXAgbG9vcGluZyBiZWNhdXNlIGl0J3MgdmFsaWQg
Zm9yIGEgc3VjY2Vzc29yIHRvIGJlIG1lbnRpb25lZCBtdWx0aXBsZSB0aW1lcywKLSAgICAgICAg
ICAgIC8vIGxpa2UgaWYgbXVsdGlwbGUgc3dpdGNoIGNhc2VzIGhhdmUgdGhlIHNhbWUgdGFyZ2V0
LgotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLXZvaWQgQ29udHJv
bFZhbHVlOjpjb252ZXJ0VG9KdW1wKEJhc2ljQmxvY2sqIGRlc3RpbmF0aW9uKQotewotICAgIHVu
c2lnbmVkIGluZGV4ID0gdGhpcy0+aW5kZXgoKTsKLSAgICBPcmlnaW4gb3JpZ2luID0gdGhpcy0+
b3JpZ2luKCk7Ci0gICAgQmFzaWNCbG9jayogb3duZXIgPSB0aGlzLT5vd25lcjsKLQotICAgIHRo
aXMtPn5Db250cm9sVmFsdWUoKTsKLQotICAgIG5ldyAodGhpcykgQ29udHJvbFZhbHVlKEp1bXAs
IG9yaWdpbiwgRnJlcXVlbnRlZEJsb2NrKGRlc3RpbmF0aW9uKSk7Ci0KLSAgICB0aGlzLT5vd25l
ciA9IG93bmVyOwotICAgIHRoaXMtPm1faW5kZXggPSBpbmRleDsKLX0KLQotdm9pZCBDb250cm9s
VmFsdWU6OmNvbnZlcnRUb09vcHMoKQotewotICAgIHVuc2lnbmVkIGluZGV4ID0gdGhpcy0+aW5k
ZXgoKTsKLSAgICBPcmlnaW4gb3JpZ2luID0gdGhpcy0+b3JpZ2luKCk7Ci0gICAgQmFzaWNCbG9j
ayogb3duZXIgPSB0aGlzLT5vd25lcjsKLQotICAgIHRoaXMtPn5Db250cm9sVmFsdWUoKTsKLQot
ICAgIG5ldyAodGhpcykgQ29udHJvbFZhbHVlKE9vcHMsIG9yaWdpbik7Ci0KLSAgICB0aGlzLT5v
d25lciA9IG93bmVyOwotICAgIHRoaXMtPm1faW5kZXggPSBpbmRleDsKLX0KLQotdm9pZCBDb250
cm9sVmFsdWU6OmR1bXBNZXRhKENvbW1hUHJpbnRlciYgY29tbWEsIFByaW50U3RyZWFtJiBvdXQp
IGNvbnN0Ci17Ci0gICAgZm9yIChGcmVxdWVudGVkQmxvY2sgc3VjY2Vzc29yIDogbV9zdWNjZXNz
b3JzKQotICAgICAgICBvdXQucHJpbnQoY29tbWEsIHN1Y2Nlc3Nvcik7Ci19Ci0KLVZhbHVlKiBD
b250cm9sVmFsdWU6OmNsb25lSW1wbCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG5ldyBDb250cm9s
VmFsdWUoKnRoaXMpOwotfQotCi19IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKLQotI2VuZGlmIC8v
IEVOQUJMRShCM19KSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb250cm9s
VmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb250cm9s
VmFsdWUuaAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
Q29udHJvbFZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsMTYzICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIEIzQ29u
dHJvbFZhbHVlX2gKLSNkZWZpbmUgQjNDb250cm9sVmFsdWVfaAotCi0jaWYgRU5BQkxFKEIzX0pJ
VCkKLQotI2luY2x1ZGUgIkIzRnJlcXVlbnRlZEJsb2NrLmgiCi0jaW5jbHVkZSAiQjNTdWNjZXNz
b3JDb2xsZWN0aW9uLmgiCi0jaW5jbHVkZSAiQjNWYWx1ZS5oIgotCi1uYW1lc3BhY2UgSlNDIHsg
bmFtZXNwYWNlIEIzIHsKLQotY2xhc3MgQmFzaWNCbG9jazsKLQotY2xhc3MgSlNfRVhQT1JUX1BS
SVZBVEUgQ29udHJvbFZhbHVlIDogcHVibGljIFZhbHVlIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMg
Ym9vbCBhY2NlcHRzKE9wY29kZSBvcGNvZGUpCi0gICAgewotICAgICAgICBzd2l0Y2ggKG9wY29k
ZSkgewotICAgICAgICBjYXNlIEp1bXA6Ci0gICAgICAgIGNhc2UgQnJhbmNoOgotICAgICAgICBj
YXNlIFJldHVybjoKLSAgICAgICAgY2FzZSBPb3BzOgotICAgICAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgICAgIGNhc2UgU3dpdGNoOiAKLSAgICAgICAgICAgIC8vIFRoaXMgaXMgaGVyZSBiZWNh
dXNlIFN3aXRjaFZhbHVlIGlzIGEgc3ViY2xhc3Mgb2YgQ29udHJvbFZhbHVlLCBzbyB3ZSB3YW50
Ci0gICAgICAgICAgICAvLyBzd2l0Y2hWYWx1ZS0+YXM8Q29udHJvbFZhbHVlPigpIHRvIHJldHVy
biBub24tbnVsbC4KLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBkZWZhdWx0Ogot
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgdHlwZWRl
ZiBWZWN0b3I8RnJlcXVlbnRlZEJsb2NrLCAyPiBTdWNjZXNzb3JMaXN0OwotCi0gICAgfkNvbnRy
b2xWYWx1ZSgpOwotCi0gICAgdW5zaWduZWQgbnVtU3VjY2Vzc29ycygpIGNvbnN0IHsgcmV0dXJu
IG1fc3VjY2Vzc29ycy5zaXplKCk7IH0KLSAgICBjb25zdCBGcmVxdWVudGVkQmxvY2smIHN1Y2Nl
c3Nvcih1bnNpZ25lZCBpbmRleCkgY29uc3QgeyByZXR1cm4gbV9zdWNjZXNzb3JzW2luZGV4XTsg
fQotICAgIEZyZXF1ZW50ZWRCbG9jayYgc3VjY2Vzc29yKHVuc2lnbmVkIGluZGV4KSB7IHJldHVy
biBtX3N1Y2Nlc3NvcnNbaW5kZXhdOyB9Ci0gICAgY29uc3QgU3VjY2Vzc29yTGlzdCYgc3VjY2Vz
c29ycygpIGNvbnN0IHsgcmV0dXJuIG1fc3VjY2Vzc29yczsgfQotICAgIFN1Y2Nlc3Nvckxpc3Qm
IHN1Y2Nlc3NvcnMoKSB7IHJldHVybiBtX3N1Y2Nlc3NvcnM7IH0KLQotICAgIEJhc2ljQmxvY2sq
IHN1Y2Nlc3NvckJsb2NrKHVuc2lnbmVkIGluZGV4KSBjb25zdCB7IHJldHVybiBzdWNjZXNzb3Io
aW5kZXgpLmJsb2NrKCk7IH0KLSAgICBCYXNpY0Jsb2NrKiYgc3VjY2Vzc29yQmxvY2sodW5zaWdu
ZWQgaW5kZXgpIHsgcmV0dXJuIHN1Y2Nlc3NvcihpbmRleCkuYmxvY2soKTsgfQotICAgIFN1Y2Nl
c3NvckNvbGxlY3Rpb248QmFzaWNCbG9jaywgU3VjY2Vzc29yTGlzdD4gc3VjY2Vzc29yQmxvY2tz
KCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBTdWNjZXNzb3JDb2xsZWN0aW9uPEJhc2ljQmxvY2ss
IFN1Y2Nlc3Nvckxpc3Q+KHN1Y2Nlc3NvcnMoKSk7Ci0gICAgfQotICAgIFN1Y2Nlc3NvckNvbGxl
Y3Rpb248Y29uc3QgQmFzaWNCbG9jaywgY29uc3QgU3VjY2Vzc29yTGlzdD4gc3VjY2Vzc29yQmxv
Y2tzKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBTdWNjZXNzb3JDb2xsZWN0aW9uPGNv
bnN0IEJhc2ljQmxvY2ssIGNvbnN0IFN1Y2Nlc3Nvckxpc3Q+KHN1Y2Nlc3NvcnMoKSk7Ci0gICAg
fQotCi0gICAgYm9vbCByZXBsYWNlU3VjY2Vzc29yKEJhc2ljQmxvY2sqIGZyb20sIEJhc2ljQmxv
Y2sqIHRvKTsKLQotICAgIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgdGFrZW4oKSBjb25zdAotICAg
IHsKLSAgICAgICAgQVNTRVJUKG9wY29kZSgpID09IEp1bXAgfHwgb3Bjb2RlKCkgPT0gQnJhbmNo
KTsKLSAgICAgICAgcmV0dXJuIHN1Y2Nlc3NvcigwKTsKLSAgICB9Ci0gICAgRnJlcXVlbnRlZEJs
b2NrJiB0YWtlbigpCi0gICAgewotICAgICAgICBBU1NFUlQob3Bjb2RlKCkgPT0gSnVtcCB8fCBv
cGNvZGUoKSA9PSBCcmFuY2gpOwotICAgICAgICByZXR1cm4gc3VjY2Vzc29yKDApOwotICAgIH0K
LSAgICBjb25zdCBGcmVxdWVudGVkQmxvY2smIG5vdFRha2VuKCkgY29uc3QKLSAgICB7Ci0gICAg
ICAgIEFTU0VSVChvcGNvZGUoKSA9PSBCcmFuY2gpOwotICAgICAgICByZXR1cm4gc3VjY2Vzc29y
KDEpOwotICAgIH0KLSAgICBGcmVxdWVudGVkQmxvY2smIG5vdFRha2VuKCkKLSAgICB7Ci0gICAg
ICAgIEFTU0VSVChvcGNvZGUoKSA9PSBCcmFuY2gpOwotICAgICAgICByZXR1cm4gc3VjY2Vzc29y
KDEpOwotICAgIH0KLQotICAgIHZvaWQgY29udmVydFRvSnVtcChCYXNpY0Jsb2NrKiBkZXN0aW5h
dGlvbik7Ci0gICAgdm9pZCBjb252ZXJ0VG9Pb3BzKCk7Ci0KLXByb3RlY3RlZDoKLSAgICB2b2lk
IGR1bXBNZXRhKENvbW1hUHJpbnRlciYsIFByaW50U3RyZWFtJikgY29uc3Qgb3ZlcnJpZGU7Ci0K
LSAgICBWYWx1ZSogY2xvbmVJbXBsKCkgY29uc3Qgb3ZlcnJpZGU7Ci0KLSAgICAvLyBVc2UgdGhp
cyBmb3Igc3ViY2xhc3Nlcy4KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+Ci0g
ICAgQ29udHJvbFZhbHVlKE9wY29kZSBvcGNvZGUsIFR5cGUgdHlwZSwgT3JpZ2luIG9yaWdpbiwg
QXJndW1lbnRzLi4uIGFyZ3VtZW50cykKLSAgICAgICAgOiBWYWx1ZShDaGVja2VkT3Bjb2RlLCBv
cGNvZGUsIHR5cGUsIG9yaWdpbiwgYXJndW1lbnRzLi4uKQotICAgIHsKLSAgICAgICAgQVNTRVJU
KGFjY2VwdHMob3Bjb2RlKSk7Ci0gICAgfQotCi0gICAgLy8gU3ViY2xhc3NlcyB3aWxsIHBvcHVs
YXRlIHRoaXMuCi0gICAgU3VjY2Vzc29yTGlzdCBtX3N1Y2Nlc3NvcnM7Ci0KLXByaXZhdGU6Ci0g
ICAgZnJpZW5kIGNsYXNzIFByb2NlZHVyZTsKLQotICAgIC8vIFVzZSB0aGlzIGZvciBPb3BzLgot
ICAgIENvbnRyb2xWYWx1ZShPcGNvZGUgb3Bjb2RlLCBPcmlnaW4gb3JpZ2luKQotICAgICAgICA6
IFZhbHVlKENoZWNrZWRPcGNvZGUsIG9wY29kZSwgVm9pZCwgb3JpZ2luKQotICAgIHsKLSAgICAg
ICAgQVNTRVJUKG9wY29kZSA9PSBPb3BzKTsKLSAgICB9Ci0KLSAgICAvLyBVc2UgdGhpcyBmb3Ig
UmV0dXJuLgotICAgIENvbnRyb2xWYWx1ZShPcGNvZGUgb3Bjb2RlLCBPcmlnaW4gb3JpZ2luLCBW
YWx1ZSogcmVzdWx0KQotICAgICAgICA6IFZhbHVlKENoZWNrZWRPcGNvZGUsIG9wY29kZSwgVm9p
ZCwgb3JpZ2luLCByZXN1bHQpCi0gICAgewotICAgICAgICBBU1NFUlQob3Bjb2RlID09IFJldHVy
bik7Ci0gICAgfQotCi0gICAgLy8gVXNlIHRoaXMgZm9yIEp1bXAuCi0gICAgQ29udHJvbFZhbHVl
KE9wY29kZSBvcGNvZGUsIE9yaWdpbiBvcmlnaW4sIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgdGFy
Z2V0KQotICAgICAgICA6IFZhbHVlKENoZWNrZWRPcGNvZGUsIG9wY29kZSwgVm9pZCwgb3JpZ2lu
KQotICAgIHsKLSAgICAgICAgQVNTRVJUKG9wY29kZSA9PSBKdW1wKTsKLSAgICAgICAgbV9zdWNj
ZXNzb3JzLmFwcGVuZCh0YXJnZXQpOwotICAgIH0KLQotICAgIC8vIFVzZSB0aGlzIGZvciBCcmFu
Y2guCi0gICAgQ29udHJvbFZhbHVlKAotICAgICAgICBPcGNvZGUgb3Bjb2RlLCBPcmlnaW4gb3Jp
Z2luLCBWYWx1ZSogcHJlZGljYXRlLAotICAgICAgICBjb25zdCBGcmVxdWVudGVkQmxvY2smIHll
cywgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBubykKLSAgICAgICAgOiBWYWx1ZShDaGVja2VkT3Bj
b2RlLCBvcGNvZGUsIFZvaWQsIG9yaWdpbiwgcHJlZGljYXRlKQotICAgIHsKLSAgICAgICAgQVNT
RVJUKG9wY29kZSA9PSBCcmFuY2gpOwotICAgICAgICBtX3N1Y2Nlc3NvcnMuYXBwZW5kKHllcyk7
Ci0gICAgICAgIG1fc3VjY2Vzc29ycy5hcHBlbmQobm8pOwotICAgIH0KLX07Ci0KLX0gfSAvLyBu
YW1lc3BhY2UgSlNDOjpCMwotCi0jZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKLQotI2VuZGlmIC8v
IEIzQ29udHJvbFZhbHVlX2gKLQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRGF0
YVNlY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Rh
dGFTZWN0aW9uLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzRGF0YVNlY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMxLDcgKzMxLDcgQEAKIG5hbWVz
cGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCiBEYXRhU2VjdGlvbjo6RGF0YVNlY3Rpb24oc2l6
ZV90IHNpemUpCi0gICAgOiBtX2RhdGEoZmFzdE1hbGxvYyhzaXplKSkKKyAgICA6IG1fZGF0YShm
YXN0WmVyb2VkTWFsbG9jKHNpemUpKQogICAgICwgbV9zaXplKHNpemUpCiB7CiB9CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEdXBsaWNhdGVUYWlscy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRHVwbGljYXRlVGFpbHMuY3BwCShyZXZpc2lv
biAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEdXBsaWNhdGVUYWlscy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDYgQEAKIAogI2luY2x1ZGUgIkIzQmFzaWNC
bG9ja0lubGluZXMuaCIKICNpbmNsdWRlICJCM0JyZWFrQ3JpdGljYWxFZGdlcy5oIgotI2luY2x1
ZGUgIkIzQ29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNEb21pbmF0b3JzLmgiCiAjaW5jbHVk
ZSAiQjNGaXhTU0EuaCIKICNpbmNsdWRlICJCM0luZGV4U2V0LmgiCkBAIC03Miw5ICs3MSwxMCBA
QCBwdWJsaWM6CiAgICAgICAgIEluZGV4U2V0PEJhc2ljQmxvY2s+IGNhbmRpZGF0ZXM7CiAKICAg
ICAgICAgZm9yIChCYXNpY0Jsb2NrKiBibG9jayA6IG1fcHJvYykgewotICAgICAgICAgICAgaWYg
KGJsb2NrLT5zaXplKCkgPiBtX21heFNpemUgfHwgYmxvY2stPm51bVN1Y2Nlc3NvcnMoKSA+IG1f
bWF4U3VjY2Vzc29ycykKKyAgICAgICAgICAgIGlmIChibG9jay0+c2l6ZSgpID4gbV9tYXhTaXpl
CisgICAgICAgICAgICAgICAgfHwgYmxvY2stPm51bVN1Y2Nlc3NvcnMoKSA+IG1fbWF4U3VjY2Vz
c29ycykKICAgICAgICAgICAgICAgICBjb250aW51ZTsKLQorICAgICAgICAgICAgCiAgICAgICAg
ICAgICBjYW5kaWRhdGVzLmFkZChibG9jayk7CiAgICAgICAgIH0KIApAQCAtOTcsMTEgKzk3LDEw
IEBAIHB1YmxpYzoKICAgICAgICAgfQogCiAgICAgICAgIGZvciAoQmFzaWNCbG9jayogYmxvY2sg
OiBtX3Byb2MpIHsKLSAgICAgICAgICAgIENvbnRyb2xWYWx1ZSoganVtcCA9IGJsb2NrLT5sYXN0
KCktPmFzPENvbnRyb2xWYWx1ZT4oKTsKLSAgICAgICAgICAgIGlmIChqdW1wLT5vcGNvZGUoKSAh
PSBKdW1wKQorICAgICAgICAgICAgaWYgKGJsb2NrLT5sYXN0KCktPm9wY29kZSAhPSBKdW1wKQog
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgICAgICBCYXNpY0Jsb2NrKiB0YWls
ID0ganVtcC0+c3VjY2Vzc29yQmxvY2soMCk7CisgICAgICAgICAgICBCYXNpY0Jsb2NrKiB0YWls
ID0gYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDApOwogICAgICAgICAgICAgaWYgKCFjYW5kaWRhdGVz
LmNvbnRhaW5zKHRhaWwpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCkBAIC0xMzAsNiAr
MTI5LDcgQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAgICBtYXAuYWRkKHZhbHVlLCBjbG9u
ZSk7CiAgICAgICAgICAgICAgICAgYmxvY2stPmFwcGVuZChjbG9uZSk7CiAgICAgICAgICAgICB9
CisgICAgICAgICAgICBibG9jay0+c3VjY2Vzc29ycygpID0gdGFpbC0+c3VjY2Vzc29ycygpOwog
ICAgICAgICB9CiAKICAgICAgICAgbV9wcm9jLnJlc2V0UmVhY2hhYmlsaXR5KCk7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNGaXhTU0EuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0ZpeFNTQS5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0ZpeFNTQS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMw
LDcgKzMwLDYgQEAKIAogI2luY2x1ZGUgIkIzQmFzaWNCbG9ja0lubGluZXMuaCIKICNpbmNsdWRl
ICJCM0JyZWFrQ3JpdGljYWxFZGdlcy5oIgotI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCiAj
aW5jbHVkZSAiQjNEb21pbmF0b3JzLmgiCiAjaW5jbHVkZSAiQjNJbmRleFNldC5oIgogI2luY2x1
ZGUgIkIzSW5zZXJ0aW9uU2V0SW5saW5lcy5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzRm9sZFBhdGhDb25zdGFudHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0ZvbGRQYXRoQ29uc3RhbnRzLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRm9sZFBhdGhDb25zdGFudHMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yOSw3ICsyOSw2IEBACiAjaWYgRU5BQkxFKEIzX0pJVCkKIAogI2luY2x1ZGUg
IkIzQmFzaWNCbG9ja0lubGluZXMuaCIKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgogI2lu
Y2x1ZGUgIkIzRG9taW5hdG9ycy5oIgogI2luY2x1ZGUgIkIzSW5zZXJ0aW9uU2V0SW5saW5lcy5o
IgogI2luY2x1ZGUgIkIzUGhhc2VTY29wZS5oIgpAQCAtODcsMjQgKzg2LDI0IEBAIHB1YmxpYzoK
ICAgICAgICAgfTsKICAgICAgICAgCiAgICAgICAgIGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiBt
X3Byb2MpIHsKLSAgICAgICAgICAgIENvbnRyb2xWYWx1ZSogYnJhbmNoID0gYmxvY2stPmxhc3Qo
KS0+YXM8Q29udHJvbFZhbHVlPigpOworICAgICAgICAgICAgVmFsdWUqIGJyYW5jaCA9IGJsb2Nr
LT5sYXN0KCk7CiAgICAgICAgICAgICBzd2l0Y2ggKGJyYW5jaC0+b3Bjb2RlKCkpIHsKICAgICAg
ICAgICAgIGNhc2UgQnJhbmNoOgotICAgICAgICAgICAgICAgIGlmIChicmFuY2gtPnN1Y2Nlc3Nv
ckJsb2NrKDApID09IGJyYW5jaC0+c3VjY2Vzc29yQmxvY2soMSkpCisgICAgICAgICAgICAgICAg
aWYgKGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKSA9PSBibG9jay0+c3VjY2Vzc29yQmxvY2soMSkp
CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIGFkZE92ZXJy
aWRlKAogICAgICAgICAgICAgICAgICAgICBibG9jaywgYnJhbmNoLT5jaGlsZCgwKSwKLSAgICAg
ICAgICAgICAgICAgICAgT3ZlcnJpZGU6Om5vblplcm8oYnJhbmNoLT5zdWNjZXNzb3JCbG9jaygw
KSkpOworICAgICAgICAgICAgICAgICAgICBPdmVycmlkZTo6bm9uWmVybyhibG9jay0+c3VjY2Vz
c29yQmxvY2soMCkpKTsKICAgICAgICAgICAgICAgICBhZGRPdmVycmlkZSgKICAgICAgICAgICAg
ICAgICAgICAgYmxvY2ssIGJyYW5jaC0+Y2hpbGQoMCksCi0gICAgICAgICAgICAgICAgICAgIE92
ZXJyaWRlOjpjb25zdGFudChicmFuY2gtPnN1Y2Nlc3NvckJsb2NrKDEpLCAwKSk7CisgICAgICAg
ICAgICAgICAgICAgIE92ZXJyaWRlOjpjb25zdGFudChibG9jay0+c3VjY2Vzc29yQmxvY2soMSks
IDApKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgU3dpdGNoOiB7
CiAgICAgICAgICAgICAgICAgSGFzaE1hcDxCYXNpY0Jsb2NrKiwgdW5zaWduZWQ+IHRhcmdldFVz
ZXM7Ci0gICAgICAgICAgICAgICAgZm9yIChjb25zdCBTd2l0Y2hDYXNlJiBzd2l0Y2hDYXNlIDog
KmJyYW5jaC0+YXM8U3dpdGNoVmFsdWU+KCkpCisgICAgICAgICAgICAgICAgZm9yIChjb25zdCBT
d2l0Y2hDYXNlJiBzd2l0Y2hDYXNlIDogYnJhbmNoLT5hczxTd2l0Y2hWYWx1ZT4oKS0+Y2FzZXMo
YmxvY2spKQogICAgICAgICAgICAgICAgICAgICB0YXJnZXRVc2VzLmFkZChzd2l0Y2hDYXNlLnRh
cmdldEJsb2NrKCksIDApLml0ZXJhdG9yLT52YWx1ZSsrOwogCi0gICAgICAgICAgICAgICAgZm9y
IChjb25zdCBTd2l0Y2hDYXNlJiBzd2l0Y2hDYXNlIDogKmJyYW5jaC0+YXM8U3dpdGNoVmFsdWU+
KCkpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFN3aXRjaENhc2UmIHN3aXRjaENhc2Ug
OiBicmFuY2gtPmFzPFN3aXRjaFZhbHVlPigpLT5jYXNlcyhibG9jaykpIHsKICAgICAgICAgICAg
ICAgICAgICAgaWYgKHRhcmdldFVzZXMuZmluZChzd2l0Y2hDYXNlLnRhcmdldEJsb2NrKCkpLT52
YWx1ZSAhPSAxKQogICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAKQEAgLTE1OCw5
ICsxNTcsOCBAQCBwdWJsaWM6CiAKICAgICAgICAgICAgICAgICBzd2l0Y2ggKHZhbHVlLT5vcGNv
ZGUoKSkgewogICAgICAgICAgICAgICAgIGNhc2UgQnJhbmNoOiB7Ci0gICAgICAgICAgICAgICAg
ICAgIENvbnRyb2xWYWx1ZSogYnJhbmNoID0gdmFsdWUtPmFzPENvbnRyb2xWYWx1ZT4oKTsKICAg
ICAgICAgICAgICAgICAgICAgaWYgKGdldE92ZXJyaWRlKGJsb2NrLCBicmFuY2gtPmNoaWxkKDAp
KS5pc05vblplcm8pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyYW5jaC0+Y29udmVydFRv
SnVtcChicmFuY2gtPnRha2VuKCkuYmxvY2soKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB2
YWx1ZS0+cmVwbGFjZVdpdGhKdW1wKGJsb2NrLCBibG9jay0+dGFrZW4oKSk7CiAgICAgICAgICAg
ICAgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgICAgICBicmVhazsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0xvd2VyTWFjcm9zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNMb3dlck1hY3Jvcy5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM0xvd2VyTWFjcm9zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMiw5ICszMiwxMCBAQAog
I2luY2x1ZGUgIkIzQmxvY2tJbnNlcnRpb25TZXQuaCIKICNpbmNsdWRlICJCM0NDYWxsVmFsdWUu
aCIKICNpbmNsdWRlICJCM0NvbnN0UHRyVmFsdWUuaCIKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1
ZS5oIgogI2luY2x1ZGUgIkIzSW5zZXJ0aW9uU2V0SW5saW5lcy5oIgorI2luY2x1ZGUgIkIzTWVt
b3J5VmFsdWUuaCIKICNpbmNsdWRlICJCM1BoYXNlU2NvcGUuaCIKKyNpbmNsdWRlICJCM1BvbHlK
dW1wVmFsdWUuaCIKICNpbmNsdWRlICJCM1Byb2NlZHVyZUlubGluZXMuaCIKICNpbmNsdWRlICJC
M1N3aXRjaFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNVcHNpbG9uVmFsdWUuaCIKQEAgLTExOCw4ICsx
MTksOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICBCYXNpY0Jsb2NrKiB6ZXJvRGVu
Q2FzZSA9IG1fYmxvY2tJbnNlcnRpb25TZXQuaW5zZXJ0QmVmb3JlKG1fYmxvY2spOwogICAgICAg
ICAgICAgICAgICAgICBCYXNpY0Jsb2NrKiBub3JtYWxNb2RDYXNlID0gbV9ibG9ja0luc2VydGlv
blNldC5pbnNlcnRCZWZvcmUobV9ibG9jayk7CiAKLSAgICAgICAgICAgICAgICAgICAgYmVmb3Jl
LT5yZXBsYWNlTGFzdFdpdGhOZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgICAgICAgICAgICAg
ICAgIG1fcHJvYywgQnJhbmNoLCBtX29yaWdpbiwgbV92YWx1ZS0+Y2hpbGQoMSksCisgICAgICAg
ICAgICAgICAgICAgIGJlZm9yZS0+cmVwbGFjZUxhc3RXaXRoTmV3PFZhbHVlPihtX3Byb2MsIEJy
YW5jaCwgbV9vcmlnaW4sIG1fdmFsdWUtPmNoaWxkKDEpKTsKKyAgICAgICAgICAgICAgICAgICAg
YmVmb3JlLT5zZXRTdWNjZXNzb3JzKAogICAgICAgICAgICAgICAgICAgICAgICAgRnJlcXVlbnRl
ZEJsb2NrKG5vcm1hbE1vZENhc2UsIEZyZXF1ZW5jeUNsYXNzOjpOb3JtYWwpLAogICAgICAgICAg
ICAgICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHplcm9EZW5DYXNlLCBGcmVxdWVuY3lDbGFz
czo6UmFyZSkpOwogCkBAIC0xMjcsMTIgKzEyOCwxNCBAQCBwcml2YXRlOgogICAgICAgICAgICAg
ICAgICAgICBWYWx1ZSogbXVsdGlwbGllZEJhY2sgPSBub3JtYWxNb2RDYXNlLT5hcHBlbmROZXc8
VmFsdWU+KG1fcHJvYywgTXVsLCBtX29yaWdpbiwgZGl2UmVzdWx0LCBtX3ZhbHVlLT5jaGlsZCgx
KSk7CiAgICAgICAgICAgICAgICAgICAgIFZhbHVlKiByZXN1bHQgPSBub3JtYWxNb2RDYXNlLT5h
cHBlbmROZXc8VmFsdWU+KG1fcHJvYywgU3ViLCBtX29yaWdpbiwgbV92YWx1ZS0+Y2hpbGQoMCks
IG11bHRpcGxpZWRCYWNrKTsKICAgICAgICAgICAgICAgICAgICAgVXBzaWxvblZhbHVlKiBub3Jt
YWxSZXN1bHQgPSBub3JtYWxNb2RDYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihtX3Byb2Ms
IG1fb3JpZ2luLCByZXN1bHQpOwotICAgICAgICAgICAgICAgICAgICBub3JtYWxNb2RDYXNlLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihtX3Byb2MsIEp1bXAsIG1fb3JpZ2luLCBGcmVxdWVudGVk
QmxvY2sobV9ibG9jaykpOworICAgICAgICAgICAgICAgICAgICBub3JtYWxNb2RDYXNlLT5hcHBl
bmROZXc8VmFsdWU+KG1fcHJvYywgSnVtcCwgbV9vcmlnaW4pOworICAgICAgICAgICAgICAgICAg
ICBub3JtYWxNb2RDYXNlLT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7
CiAKICAgICAgICAgICAgICAgICAgICAgVXBzaWxvblZhbHVlKiB6ZXJvUmVzdWx0ID0gemVyb0Rl
bkNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KAogICAgICAgICAgICAgICAgICAgICAgICAg
bV9wcm9jLCBtX29yaWdpbiwKICAgICAgICAgICAgICAgICAgICAgICAgIHplcm9EZW5DYXNlLT5h
cHBlbmRJbnRDb25zdGFudChtX3Byb2MsIG1fdmFsdWUsIDApKTsKLSAgICAgICAgICAgICAgICAg
ICAgemVyb0RlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KG1fcHJvYywgSnVtcCwgbV9v
cmlnaW4sIEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7CisgICAgICAgICAgICAgICAgICAgIHpl
cm9EZW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgSnVtcCwgbV9vcmlnaW4pOworICAg
ICAgICAgICAgICAgICAgICB6ZXJvRGVuQ2FzZS0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxv
Y2sobV9ibG9jaykpOwogCiAgICAgICAgICAgICAgICAgICAgIFZhbHVlKiBwaGkgPSBtX2luc2Vy
dGlvblNldC5pbnNlcnQ8VmFsdWU+KG1faW5kZXgsIFBoaSwgbV92YWx1ZS0+dHlwZSgpLCBtX29y
aWdpbik7CiAgICAgICAgICAgICAgICAgICAgIG5vcm1hbFJlc3VsdC0+c2V0UGhpKHBoaSk7CkBA
IC0xNDcsNyArMTUwLDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGNhc2UgU3dpdGNoOiB7CiAg
ICAgICAgICAgICAgICAgU3dpdGNoVmFsdWUqIHN3aXRjaFZhbHVlID0gbV92YWx1ZS0+YXM8U3dp
dGNoVmFsdWU+KCk7CiAgICAgICAgICAgICAgICAgVmVjdG9yPFN3aXRjaENhc2U+IGNhc2VzOwot
ICAgICAgICAgICAgICAgIGZvciAoY29uc3QgU3dpdGNoQ2FzZSYgc3dpdGNoQ2FzZSA6ICpzd2l0
Y2hWYWx1ZSkKKyAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFN3aXRjaENhc2UmIHN3aXRjaENh
c2UgOiBzd2l0Y2hWYWx1ZS0+Y2FzZXMobV9ibG9jaykpCiAgICAgICAgICAgICAgICAgICAgIGNh
c2VzLmFwcGVuZChzd2l0Y2hDYXNlKTsKICAgICAgICAgICAgICAgICBzdGQ6OnNvcnQoCiAgICAg
ICAgICAgICAgICAgICAgIGNhc2VzLmJlZ2luKCksIGNhc2VzLmVuZCgpLApAQCAtMjEwLDI3ICsy
MTMsMjcgQEAgcHJpdmF0ZToKICAgICAgICAgQmFzaWNCbG9jayogbmVnMURlbkNhc2UgPSBtX2Js
b2NrSW5zZXJ0aW9uU2V0Lmluc2VydEJlZm9yZShtX2Jsb2NrKTsKICAgICAgICAgQmFzaWNCbG9j
ayogaW50TWluQ2FzZSA9IG1fYmxvY2tJbnNlcnRpb25TZXQuaW5zZXJ0QmVmb3JlKG1fYmxvY2sp
OwogCi0gICAgICAgIGJlZm9yZS0+cmVwbGFjZUxhc3RXaXRoTmV3PENvbnRyb2xWYWx1ZT4oCi0g
ICAgICAgICAgICBtX3Byb2MsIEJyYW5jaCwgbV9vcmlnaW4sIGlzRGVuT0ssCisgICAgICAgIGJl
Zm9yZS0+cmVwbGFjZUxhc3RXaXRoTmV3PFZhbHVlPihtX3Byb2MsIEJyYW5jaCwgbV9vcmlnaW4s
IGlzRGVuT0spOworICAgICAgICBiZWZvcmUtPnNldFN1Y2Nlc3NvcnMoCiAgICAgICAgICAgICBG
cmVxdWVudGVkQmxvY2sobm9ybWFsRGl2Q2FzZSwgRnJlcXVlbmN5Q2xhc3M6Ok5vcm1hbCksCiAg
ICAgICAgICAgICBGcmVxdWVudGVkQmxvY2soc2hhZHlEZW5DYXNlLCBGcmVxdWVuY3lDbGFzczo6
UmFyZSkpOwogCiAgICAgICAgIFVwc2lsb25WYWx1ZSogbm9ybWFsUmVzdWx0ID0gbm9ybWFsRGl2
Q2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4oCiAgICAgICAgICAgICBtX3Byb2MsIG1fb3Jp
Z2luLAogICAgICAgICAgICAgbm9ybWFsRGl2Q2FzZS0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2Ms
IG5vbkNoaWxsT3Bjb2RlLCBtX29yaWdpbiwgbnVtLCBkZW4pKTsKLSAgICAgICAgbm9ybWFsRGl2
Q2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCi0gICAgICAgICAgICBtX3Byb2MsIEp1bXAs
IG1fb3JpZ2luLCBGcmVxdWVudGVkQmxvY2sobV9ibG9jaykpOworICAgICAgICBub3JtYWxEaXZD
YXNlLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgSnVtcCwgbV9vcmlnaW4pOworICAgICAgICBu
b3JtYWxEaXZDYXNlLT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7CiAK
LSAgICAgICAgc2hhZHlEZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAg
ICAgIG1fcHJvYywgQnJhbmNoLCBtX29yaWdpbiwgZGVuLAorICAgICAgICBzaGFkeURlbkNhc2Ut
PmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBCcmFuY2gsIG1fb3JpZ2luLCBkZW4pOworICAgICAg
ICBzaGFkeURlbkNhc2UtPnNldFN1Y2Nlc3NvcnMoCiAgICAgICAgICAgICBGcmVxdWVudGVkQmxv
Y2sobmVnMURlbkNhc2UsIEZyZXF1ZW5jeUNsYXNzOjpOb3JtYWwpLAogICAgICAgICAgICAgRnJl
cXVlbnRlZEJsb2NrKHplcm9EZW5DYXNlLCBGcmVxdWVuY3lDbGFzczo6UmFyZSkpOwogCiAgICAg
ICAgIFVwc2lsb25WYWx1ZSogemVyb1Jlc3VsdCA9IHplcm9EZW5DYXNlLT5hcHBlbmROZXc8VXBz
aWxvblZhbHVlPigKICAgICAgICAgICAgIG1fcHJvYywgbV9vcmlnaW4sCiAgICAgICAgICAgICB6
ZXJvRGVuQ2FzZS0+YXBwZW5kSW50Q29uc3RhbnQobV9wcm9jLCBtX3ZhbHVlLCAwKSk7Ci0gICAg
ICAgIHplcm9EZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgICAgIG1f
cHJvYywgSnVtcCwgbV9vcmlnaW4sIEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7CisgICAgICAg
IHplcm9EZW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgSnVtcCwgbV9vcmlnaW4pOwor
ICAgICAgICB6ZXJvRGVuQ2FzZS0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2sobV9ibG9j
aykpOwogCiAgICAgICAgIGludDY0X3QgYmFkTnVtZXJhdG9yQ29uc3QgPSAwOwogICAgICAgICBz
d2l0Y2ggKG1fdmFsdWUtPnR5cGUoKSkgewpAQCAtMjQ4LDE4ICsyNTEsMTkgQEAgcHJpdmF0ZToK
ICAgICAgICAgVmFsdWUqIGJhZE51bWVyYXRvciA9CiAgICAgICAgICAgICBuZWcxRGVuQ2FzZS0+
YXBwZW5kSW50Q29uc3RhbnQobV9wcm9jLCBtX3ZhbHVlLCBiYWROdW1lcmF0b3JDb25zdCk7CiAK
LSAgICAgICAgbmVnMURlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICBu
ZWcxRGVuQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIG1fcHJvYywgQnJhbmNo
LCBtX29yaWdpbiwKICAgICAgICAgICAgIG5lZzFEZW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+KAot
ICAgICAgICAgICAgICAgIG1fcHJvYywgRXF1YWwsIG1fb3JpZ2luLCBudW0sIGJhZE51bWVyYXRv
ciksCisgICAgICAgICAgICAgICAgbV9wcm9jLCBFcXVhbCwgbV9vcmlnaW4sIG51bSwgYmFkTnVt
ZXJhdG9yKSk7CisgICAgICAgIG5lZzFEZW5DYXNlLT5zZXRTdWNjZXNzb3JzKAogICAgICAgICAg
ICAgRnJlcXVlbnRlZEJsb2NrKGludE1pbkNhc2UsIEZyZXF1ZW5jeUNsYXNzOjpSYXJlKSwKICAg
ICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhub3JtYWxEaXZDYXNlLCBGcmVxdWVuY3lDbGFzczo6
Tm9ybWFsKSk7CiAKICAgICAgICAgVmFsdWUqIGludE1pblJlc3VsdCA9IG5vbkNoaWxsT3Bjb2Rl
ID09IERpdiA/IGJhZE51bWVyYXRvciA6IGludE1pbkNhc2UtPmFwcGVuZEludENvbnN0YW50KG1f
cHJvYywgbV92YWx1ZSwgMCk7CiAgICAgICAgIFVwc2lsb25WYWx1ZSogaW50TWluUmVzdWx0VXBz
aWxvbiA9IGludE1pbkNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KAogICAgICAgICAgICAg
bV9wcm9jLCBtX29yaWdpbiwgaW50TWluUmVzdWx0KTsKLSAgICAgICAgaW50TWluQ2FzZS0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCi0gICAgICAgICAgICBtX3Byb2MsIEp1bXAsIG1fb3JpZ2lu
LCBGcmVxdWVudGVkQmxvY2sobV9ibG9jaykpOworICAgICAgICBpbnRNaW5DYXNlLT5hcHBlbmRO
ZXc8VmFsdWU+KG1fcHJvYywgSnVtcCwgbV9vcmlnaW4pOworICAgICAgICBpbnRNaW5DYXNlLT5z
ZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7CiAKICAgICAgICAgVmFsdWUq
IHBoaSA9IG1faW5zZXJ0aW9uU2V0Lmluc2VydDxWYWx1ZT4oCiAgICAgICAgICAgICBtX2luZGV4
LCBQaGksIG1fdmFsdWUtPnR5cGUoKSwgbV9vcmlnaW4pOwpAQCAtMjc1LDggKzI3OSwxMDcgQEAg
cHJpdmF0ZToKICAgICAgICAgY29uc3QgVmVjdG9yPFN3aXRjaENhc2U+JiBjYXNlcywgdW5zaWdu
ZWQgc3RhcnQsIGJvb2wgaGFyZFN0YXJ0LCB1bnNpZ25lZCBlbmQsCiAgICAgICAgIEJhc2ljQmxv
Y2sqIGJlZm9yZSkKICAgICB7Ci0gICAgICAgIC8vIEZJWE1FOiBBZGQgdGFibGUtYmFzZWQgc3dp
dGNoIGxvd2VyaW5nLgotICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTUxMTQxCisgICAgICAgIFZhbHVlKiBjaGlsZCA9IG1fdmFsdWUtPmNoaWxkKDAp
OworICAgICAgICBUeXBlIHR5cGUgPSBjaGlsZC0+dHlwZSgpOworICAgICAgICBGcmVxdWVudGVk
QmxvY2sgZmFsbFRocm91Z2ggPSBtX2Jsb2NrLT5mYWxsVGhyb3VnaCgpOworICAgICAgICAKKyAg
ICAgICAgLy8gSXQncyBhIGdvb2QgaWRlYSB0byB1c2UgYSB0YWJsZS1iYXNlZCBzd2l0Y2ggaW4g
c29tZSBjYXNlczogdGhlIG51bWJlciBvZiBjYXNlcyBoYXMgdG8gYmUKKyAgICAgICAgLy8gbGFy
Z2UgZW5vdWdoIGFuZCB0aGV5IGhhdmUgdG8gYmUgZGVuc2UgZW5vdWdoLiBUaGlzIGNvdWxkIHBy
b2JhYmx5IGJlIGltcHJvdmVkIGEgbG90LiBGb3IKKyAgICAgICAgLy8gZXhhbXBsZSwgd2UgY291
bGQgc3RpbGwgdXNlIGEganVtcCB0YWJsZSBpbiBjYXNlcyB3aGVyZSB0aGUgaW5wdXRzIGFyZSBz
cGFyc2Ugc28gbG9uZyBhcyB3ZQorICAgICAgICAvLyBzaGlmdCBvZmYgdGhlIHVuaW50ZXJlc3Rp
bmcgYml0cy4gT24gdGhlIG90aGVyIGhhbmQsIGl0J3Mgbm90IGNsZWFyIHRoYXQgdGhpcyB3b3Vs
ZAorICAgICAgICAvLyBhY3R1YWxseSBiZSBhbnkgYmV0dGVyIHRoYW4gd2hhdCB3ZSBoYXZlIGRv
bmUgaGVyZSBhbmQgaXQncyBub3QgY2xlYXIgdGhhdCBpdCB3b3VsZCBiZQorICAgICAgICAvLyBi
ZXR0ZXIgdGhhbiBhIGJpbmFyeSBzd2l0Y2guCisgICAgICAgIGNvbnN0IHVuc2lnbmVkIG1pbkNh
c2VzRm9yVGFibGUgPSA3OworICAgICAgICBjb25zdCB1bnNpZ25lZCBkZW5zaXR5TGltaXQgPSA0
OworICAgICAgICBpZiAoZW5kIC0gc3RhcnQgPj0gbWluQ2FzZXNGb3JUYWJsZSkgeworICAgICAg
ICAgICAgaW50NjRfdCBmaXJzdFZhbHVlID0gY2FzZXNbc3RhcnRdLmNhc2VWYWx1ZSgpOworICAg
ICAgICAgICAgaW50NjRfdCBsYXN0VmFsdWUgPSBjYXNlc1tlbmQgLSAxXS5jYXNlVmFsdWUoKTsK
KyAgICAgICAgICAgIGlmICgobGFzdFZhbHVlIC0gZmlyc3RWYWx1ZSArIDEpIC8gY2FzZXMuc2l6
ZSgpIDwgZGVuc2l0eUxpbWl0KSB7CisgICAgICAgICAgICAgICAgQmFzaWNCbG9jayogc3dpdGNo
QmxvY2sgPSBtX2Jsb2NrSW5zZXJ0aW9uU2V0Lmluc2VydEFmdGVyKG1fYmxvY2spOworICAgICAg
ICAgICAgICAgIFZhbHVlKiBpbmRleCA9IGJlZm9yZS0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAg
ICAgICAgICAgICAgICAgbV9wcm9jLCBTdWIsIG1fb3JpZ2luLCBjaGlsZCwKKyAgICAgICAgICAg
ICAgICAgICAgYmVmb3JlLT5hcHBlbmRJbnRDb25zdGFudChtX3Byb2MsIG1fb3JpZ2luLCB0eXBl
LCBmaXJzdFZhbHVlKSk7CisgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+
KAorICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIEJyYW5jaCwgbV9vcmlnaW4sCisgICAgICAg
ICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG1fcHJvYywgQWJvdmUsIG1fb3JpZ2luLCBpbmRleCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGJlZm9yZS0+YXBwZW5kSW50Q29uc3RhbnQobV9wcm9jLCBtX29yaWdpbiwgdHlwZSwg
bGFzdFZhbHVlIC0gZmlyc3RWYWx1ZSkpKTsKKyAgICAgICAgICAgICAgICBiZWZvcmUtPnNldFN1
Y2Nlc3NvcnMoZmFsbFRocm91Z2gsIEZyZXF1ZW50ZWRCbG9jayhzd2l0Y2hCbG9jaykpOworICAg
ICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHNpemVfdCB0YWJsZVNpemUgPSBsYXN0VmFs
dWUgLSBmaXJzdFZhbHVlICsgMTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBp
ZiAoaW5kZXgtPnR5cGUoKSAhPSBiYXNlLT50eXBlKCkpIHsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKGluZGV4LT50eXBlKCkgPT0gSW50MzIpCisgICAgICAgICAgICAgICAgICAgICAgICBpbmRl
eCA9IHN3aXRjaEJsb2NrLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgWkV4dDMyLCBtX29yaWdp
biwgaW5kZXgpOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAg
ICAgICBpbmRleCA9IHN3aXRjaEJsb2NrLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgVHJ1bmMs
IG1fb3JpZ2luLCBpbmRleCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAor
ICAgICAgICAgICAgICAgIFBhdGNocG9pbnRWYWx1ZSogcGF0Y2hwb2ludCA9CisgICAgICAgICAg
ICAgICAgICAgIHN3aXRjaEJsb2NrLT5hcHBlbmROZXc8UGF0Y2hwb2ludFZhbHVlPihtX3Byb2Ms
IFZvaWQsIG1fb3JpZ2luKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBwYXRj
aHBvaW50LT5lZmZlY3RzLnRlcm1pbmFsID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBwYXRjaHBv
aW50LT5hcHBlbmRTb21lUmVnaXN0ZXIoaW5kZXgpOworICAgICAgICAgICAgICAgIHBhdGNocG9p
bnQtPm51bUdQU2NyYXRjaFJlZ2lzdGVycysrOworICAgICAgICAgICAgICAgIC8vIFRlY2huaWNh
bGx5LCB3ZSBkb24ndCBoYXZlIHRvIGNsb2JiZXIgbWFjcm8gcmVnaXN0ZXJzIG9uIFg4Nl82NC4g
VGhpcyBpcyBwcm9iYWJseQorICAgICAgICAgICAgICAgIC8vIE9LIHRob3VnaC4KKyAgICAgICAg
ICAgICAgICBwYXRjaHBvaW50LT5jbG9iYmVyKFJlZ2lzdGVyU2V0OjptYWNyb1NjcmF0Y2hSZWdp
c3RlcnMoKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgQml0VmVjdG9yIGhh
bmRsZWRJbmRpY2VzOworICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IHN0YXJ0OyBp
IDwgZW5kOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrIGJsb2Nr
ID0gY2FzZXNbaV0udGFyZ2V0KCk7CisgICAgICAgICAgICAgICAgICAgIGludDY0X3QgdmFsdWUg
PSBjYXNlc1tpXS5jYXNlVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoQmxvY2st
PmFwcGVuZFN1Y2Nlc3NvcihibG9jayk7CisgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbmRl
eCA9IHZhbHVlIC0gZmlyc3RWYWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUKCFoYW5k
bGVkSW5kaWNlcy5nZXQoaW5kZXgpKTsKKyAgICAgICAgICAgICAgICAgICAgaGFuZGxlZEluZGlj
ZXMuc2V0KGluZGV4KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAg
ICAgICAgICAgICAgYm9vbCBoYXNVbmhhbmRsZWRJbmRleCA9IGZhbHNlOworICAgICAgICAgICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB0YWJsZVNpemU7ICsraSkgeworICAgICAgICAg
ICAgICAgICAgICBpZiAoIWhhbmRsZWRJbmRpY2VzLmdldChpKSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgaGFzVW5oYW5kbGVkSW5kZXggPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGhhc1VuaGFuZGxlZEluZGV4KQorICAg
ICAgICAgICAgICAgICAgICBzd2l0Y2hCbG9jay0+YXBwZW5kU3VjY2Vzc29yKGZhbGxUaHJvdWdo
KTsKKworICAgICAgICAgICAgICAgIHBhdGNocG9pbnQtPnNldEdlbmVyYXRvcigKKyAgICAgICAg
ICAgICAgICAgICAgWz1dIChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU3RhY2ttYXBHZW5lcmF0
aW9uUGFyYW1zJiBwYXJhbXMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEFsbG93TWFjcm9T
Y3JhdGNoUmVnaXN0ZXJVc2FnZSBhbGxvd1NjcmF0Y2goaml0KTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKiBq
dW1wVGFibGUgPSBwYXJhbXMucHJvYygpLmFkZERhdGFTZWN0aW9uKAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNpemVvZihNYWNyb0Fzc2VtYmxlckNvZGVQdHIpICogdGFibGVTaXplKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgR1BSUmVn
IGluZGV4ID0gcGFyYW1zWzBdLmdwcigpOworICAgICAgICAgICAgICAgICAgICAgICAgR1BSUmVn
IHNjcmF0Y2ggPSBwYXJhbXMuZ3BTY3JhdGNoKDApOworICAgICAgICAgICAgICAgICAgICAgICAg
CisgICAgICAgICAgICAgICAgICAgICAgICBqaXQubW92ZShUcnVzdGVkSW1tUHRyKGp1bXBUYWJs
ZSksIHNjcmF0Y2gpOworICAgICAgICAgICAgICAgICAgICAgICAgaml0Lmp1bXAoQ0NhbGxIZWxw
ZXJzOjpCYXNlSW5kZXgoc2NyYXRjaCwgaW5kZXgsIENDYWxsSGVscGVyczo6dGltZXNQdHIoKSkp
OworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBWZWN0
b3I8Qm94PENDYWxsSGVscGVyczo6TGFiZWw+PiBsYWJlbHMgPSBwYXJhbXMuc3VjY2Vzc29yTGFi
ZWxzKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAg
IGppdC5hZGRMaW5rVGFzaygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBbPV0gKExpbmtC
dWZmZXImIGxpbmtCdWZmZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KGhhc1VuaGFuZGxlZEluZGV4KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgZmFsbFRocm91Z2ggPQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxpbmtCdWZmZXIubG9jYXRpb25PZigqbGFiZWxzLmxhc3Qo
KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkg
PSB0YWJsZVNpemU7IGktLTspCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAganVtcFRhYmxlW2ldID0gZmFsbFRocm91Z2g7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxhYmVsSW5kZXggPSAwOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIHRhYmxlSW5kZXggOiBoYW5kbGVkSW5k
aWNlcykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganVtcFRhYmxlW3Rh
YmxlSW5kZXhdID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5r
QnVmZmVyLmxvY2F0aW9uT2YoKmxhYmVsc1tsYWJlbEluZGV4KytdKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIC8vIFNlZSBjb21tZW50cyBpbiBqaXQv
QmluYXJ5U3dpdGNoLmNwcCBmb3IgYSBqdXN0aWZpY2F0aW9uIG9mIHRoaXMgYWxnb3JpdGhtLiBU
aGUgb25seQogICAgICAgICAvLyB0aGluZyB3ZSBkbyBkaWZmZXJlbnRseSBpcyB0aGF0IHdlIGRv
bid0IHVzZSByYW5kb21uZXNzLgpAQCAtMzA0LDI1ICs0MDcsMjMgQEAgcHJpdmF0ZToKICAgICAg
ICAgICAgIAogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxpbWl0OyArK2kp
IHsKICAgICAgICAgICAgICAgICBCYXNpY0Jsb2NrKiBuZXh0Q2hlY2sgPSBtX2Jsb2NrSW5zZXJ0
aW9uU2V0Lmluc2VydEFmdGVyKG1fYmxvY2spOwotICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIEJyYW5jaCwgbV9vcmlnaW4sCiAg
ICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PFZhbHVlPigKLSAgICAgICAgICAg
ICAgICAgICAgICAgIG1fcHJvYywgRXF1YWwsIG1fb3JpZ2luLCBtX3ZhbHVlLT5jaGlsZCgwKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgRXF1YWwsIG1fb3JpZ2luLCBjaGlsZCwK
ICAgICAgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kSW50Q29uc3RhbnQoCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwgbV92YWx1ZS0+Y2hpbGQo
MCktPnR5cGUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlc1tzdGFydCArIGld
LmNhc2VWYWx1ZSgpKSksCi0gICAgICAgICAgICAgICAgICAgIGNhc2VzW3N0YXJ0ICsgaV0udGFy
Z2V0KCksIEZyZXF1ZW50ZWRCbG9jayhuZXh0Q2hlY2spKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLCB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNhc2VzW3N0YXJ0ICsgaV0uY2FzZVZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgYmVm
b3JlLT5zZXRTdWNjZXNzb3JzKGNhc2VzW3N0YXJ0ICsgaV0udGFyZ2V0KCksIEZyZXF1ZW50ZWRC
bG9jayhuZXh0Q2hlY2spKTsKIAogICAgICAgICAgICAgICAgIGJlZm9yZSA9IG5leHRDaGVjazsK
ICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgaWYgKGFsbENvbnNlY3V0aXZlKSB7Ci0gICAg
ICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgICAg
ICAgICAgICAgbV9wcm9jLCBKdW1wLCBtX29yaWdpbiwgY2FzZXNbZW5kIC0gMV0udGFyZ2V0KCkp
OwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAotICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIEp1bXAsIG1fb3Jp
Z2luLCBtX3ZhbHVlLT5hczxTd2l0Y2hWYWx1ZT4oKS0+ZmFsbFRocm91Z2goKSk7Ci0gICAgICAg
ICAgICB9CisgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBKdW1w
LCBtX29yaWdpbik7CisgICAgICAgICAgICBpZiAoYWxsQ29uc2VjdXRpdmUpCisgICAgICAgICAg
ICAgICAgYmVmb3JlLT5zZXRTdWNjZXNzb3JzKGNhc2VzW2VuZCAtIDFdLnRhcmdldCgpKTsKKyAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBiZWZvcmUtPnNldFN1Y2Nlc3NvcnMoZmFs
bFRocm91Z2gpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAgLTMzMSwxNCAr
NDMyLDE0IEBAIHByaXZhdGU6CiAgICAgICAgIEJhc2ljQmxvY2sqIGxlZnQgPSBtX2Jsb2NrSW5z
ZXJ0aW9uU2V0Lmluc2VydEFmdGVyKG1fYmxvY2spOwogICAgICAgICBCYXNpY0Jsb2NrKiByaWdo
dCA9IG1fYmxvY2tJbnNlcnRpb25TZXQuaW5zZXJ0QWZ0ZXIobV9ibG9jayk7CiAKLSAgICAgICAg
YmVmb3JlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgYmVmb3JlLT5hcHBlbmRO
ZXc8VmFsdWU+KAogICAgICAgICAgICAgbV9wcm9jLCBCcmFuY2gsIG1fb3JpZ2luLAogICAgICAg
ICAgICAgYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+KAotICAgICAgICAgICAgICAgIG1fcHJvYywg
TGVzc1RoYW4sIG1fb3JpZ2luLCBtX3ZhbHVlLT5jaGlsZCgwKSwKKyAgICAgICAgICAgICAgICBt
X3Byb2MsIExlc3NUaGFuLCBtX29yaWdpbiwgY2hpbGQsCiAgICAgICAgICAgICAgICAgYmVmb3Jl
LT5hcHBlbmRJbnRDb25zdGFudCgKLSAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdp
biwgbV92YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSwKLSAgICAgICAgICAgICAgICAgICAgY2FzZXNb
bWVkaWFuSW5kZXhdLmNhc2VWYWx1ZSgpKSksCi0gICAgICAgICAgICBGcmVxdWVudGVkQmxvY2so
bGVmdCksIEZyZXF1ZW50ZWRCbG9jayhyaWdodCkpOworICAgICAgICAgICAgICAgICAgICBtX3By
b2MsIG1fb3JpZ2luLCB0eXBlLAorICAgICAgICAgICAgICAgICAgICBjYXNlc1ttZWRpYW5JbmRl
eF0uY2FzZVZhbHVlKCkpKSk7CisgICAgICAgIGJlZm9yZS0+c2V0U3VjY2Vzc29ycyhGcmVxdWVu
dGVkQmxvY2sobGVmdCksIEZyZXF1ZW50ZWRCbG9jayhyaWdodCkpOwogCiAgICAgICAgIHJlY3Vy
c2l2ZWx5QnVpbGRTd2l0Y2goY2FzZXMsIHN0YXJ0LCBoYXJkU3RhcnQsIG1lZGlhbkluZGV4LCBs
ZWZ0KTsKICAgICAgICAgcmVjdXJzaXZlbHlCdWlsZFN3aXRjaChjYXNlcywgbWVkaWFuSW5kZXgs
IHRydWUsIGVuZCwgcmlnaHQpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93
ZXJUb0Fpci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93
ZXJUb0Fpci5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM0xvd2VyVG9BaXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTUsNyArMTU1LDYgQEAgcHVi
bGljOgogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCB0aGUg
c3VjY2Vzc29ycyBhcmUgc2V0IHVwIGNvcnJlY3RseS4KLSAgICAgICAgICAgIEFTU0VSVChibG9j
ay0+c3VjY2Vzc29ycygpLnNpemUoKSA8PSAyKTsKICAgICAgICAgICAgIGZvciAoQjM6OkZyZXF1
ZW50ZWRCbG9jayBzdWNjZXNzb3IgOiBibG9jay0+c3VjY2Vzc29ycygpKSB7CiAgICAgICAgICAg
ICAgICAgbV9ibG9ja1RvQmxvY2tbYmxvY2tdLT5zdWNjZXNzb3JzKCkuYXBwZW5kKAogICAgICAg
ICAgICAgICAgICAgICBBaXI6OkZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrVG9CbG9ja1tzdWNjZXNz
b3IuYmxvY2soKV0sIHN1Y2Nlc3Nvci5mcmVxdWVuY3koKSkpOwpAQCAtMjQ0MSw2ICsyNDQwLDE2
IEBAIHByaXZhdGU6CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KKyAgICAgICAgICAgIAorICAgICAgICBjYXNlIEIzOjpQb2x5SnVtcDogeworICAgICAgICAg
ICAgQXJnUHJvbWlzZSBhZGRyID0gbG9hZFByb21pc2UobV92YWx1ZS0+Y2hpbGQoMCkpOworICAg
ICAgICAgICAgaWYgKGlzVmFsaWRGb3JtKEFpcjo6UG9seUp1bXAsIGFkZHIua2luZCgpKSkgewor
ICAgICAgICAgICAgICAgIGFwcGVuZChBaXI6OlBvbHlKdW1wLCBhZGRyLmNvbnN1bWUoKnRoaXMp
KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBh
cHBlbmQoQWlyOjpQb2x5SnVtcCwgdG1wKG1fdmFsdWUtPmNoaWxkKDApKSk7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KIAogICAgICAgICBjYXNlIEIzOjpPb3BzOiB7CiAgICAgICAg
ICAgICBhcHBlbmQoQWlyOjpPb3BzKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M01hdGhFeHRyYXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M01hdGhFeHRyYXMuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNNYXRoRXh0cmFzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMyw3ICszMyw2IEBACiAjaW5j
bHVkZSAiQjNDb25zdDMyVmFsdWUuaCIKICNpbmNsdWRlICJCM0NvbnN0RG91YmxlVmFsdWUuaCIK
ICNpbmNsdWRlICJCM0NvbnN0UHRyVmFsdWUuaCIKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5o
IgogI2luY2x1ZGUgIkIzVXBzaWxvblZhbHVlLmgiCiAjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMu
aCIKICNpbmNsdWRlICJNYXRoQ29tbW9uLmgiCkBAIC01MiwxMCArNTEsOCBAQCBzdGQ6OnBhaXI8
QmFzaWNCbG9jayosIFZhbHVlKj4gcG93RG91YmxlCiAgICAgVmFsdWUqIHNob3VsZEdvU2xvd1Bh
dGggPSBzdGFydC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jZWR1cmUsIEFib3ZlLCBvcmlnaW4sCiAg
ICAgICAgIHksCiAgICAgICAgIHN0YXJ0LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jZWR1
cmUsIG9yaWdpbiwgbWF4RXhwb25lbnRGb3JJbnRlZ2VyTWF0aFBvdykpOwotICAgIHN0YXJ0LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgcHJvY2VkdXJlLCBCcmFuY2gsIG9yaWdp
biwKLSAgICAgICAgc2hvdWxkR29TbG93UGF0aCwKLSAgICAgICAgRnJlcXVlbnRlZEJsb2NrKGZ1
bmN0aW9uQ2FsbENhc2UpLCBGcmVxdWVudGVkQmxvY2sobG9vcFByZUhlYWRlckNhc2UpKTsKKyAg
ICBzdGFydC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jZWR1cmUsIEJyYW5jaCwgb3JpZ2luLCBzaG91
bGRHb1Nsb3dQYXRoKTsKKyAgICBzdGFydC0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2so
ZnVuY3Rpb25DYWxsQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhsb29wUHJlSGVhZGVyQ2FzZSkpOwog
CiAgICAgLy8gRnVuY3Rpb24gY2FsbC4KICAgICBWYWx1ZSogeUFzRG91YmxlID0gZnVuY3Rpb25D
YWxsQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihwcm9jZWR1cmUsIElUb0QsIG9yaWdpbiwgeSk7CkBA
IC02NSw3ICs2Miw4IEBAIHN0ZDo6cGFpcjxCYXNpY0Jsb2NrKiwgVmFsdWUqPiBwb3dEb3VibGUK
ICAgICAgICAgZnVuY3Rpb25DYWxsQ2FzZS0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2Nl
ZHVyZSwgb3JpZ2luLCBiaXR3aXNlX2Nhc3Q8dm9pZCo+KHBvd0RvdWJsZSkpLAogICAgICAgICB4
LCB5QXNEb3VibGUpOwogICAgIFVwc2lsb25WYWx1ZSogcG93UmVzdWx0VXBzaWxvbiA9IGZ1bmN0
aW9uQ2FsbENhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2NlZHVyZSwgb3JpZ2luLCBw
b3dSZXN1bHQpOwotICAgIGZ1bmN0aW9uQ2FsbENhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2NlZHVyZSwgSnVtcCwgb3JpZ2luLCBGcmVxdWVudGVkQmxvY2soY29udGludWF0aW9uKSk7
CisgICAgZnVuY3Rpb25DYWxsQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihwcm9jZWR1cmUsIEp1bXAs
IG9yaWdpbik7CisgICAgZnVuY3Rpb25DYWxsQ2FzZS0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVk
QmxvY2soY29udGludWF0aW9uKSk7CiAKICAgICAvLyBMb29wIHByZS1oZWFkZXIuCiAgICAgVmFs
dWUqIGluaXRpYWxSZXN1bHQgPSBsb29wUHJlSGVhZGVyQ2FzZS0+YXBwZW5kTmV3PENvbnN0RG91
YmxlVmFsdWU+KHByb2NlZHVyZSwgb3JpZ2luLCAxLik7CkBAIC03Myw3ICs3MSw4IEBAIHN0ZDo6
cGFpcjxCYXNpY0Jsb2NrKiwgVmFsdWUqPiBwb3dEb3VibGUKICAgICBVcHNpbG9uVmFsdWUqIGlu
aXRpYWxSZXN1bHRWYWx1ZSA9IGxvb3BQcmVIZWFkZXJDYXNlLT5hcHBlbmROZXc8VXBzaWxvblZh
bHVlPihwcm9jZWR1cmUsIG9yaWdpbiwgaW5pdGlhbFJlc3VsdCk7CiAgICAgVXBzaWxvblZhbHVl
KiBpbml0aWFsU3F1YXJlZElucHV0ID0gbG9vcFByZUhlYWRlckNhc2UtPmFwcGVuZE5ldzxVcHNp
bG9uVmFsdWU+KHByb2NlZHVyZSwgb3JpZ2luLCB4KTsKICAgICBVcHNpbG9uVmFsdWUqIGluaXRp
YWxMb29wQ291bnRlciA9IGxvb3BQcmVIZWFkZXJDYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVl
Pihwcm9jZWR1cmUsIG9yaWdpbiwgeSk7Ci0gICAgbG9vcFByZUhlYWRlckNhc2UtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2NlZHVyZSwgSnVtcCwgb3JpZ2luLCBGcmVxdWVudGVkQmxvY2so
bG9vcFRlc3RGb3JFdmVuQ2FzZSkpOworICAgIGxvb3BQcmVIZWFkZXJDYXNlLT5hcHBlbmROZXc8
VmFsdWU+KHByb2NlZHVyZSwgSnVtcCwgb3JpZ2luKTsKKyAgICBsb29wUHJlSGVhZGVyQ2FzZS0+
c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2sobG9vcFRlc3RGb3JFdmVuQ2FzZSkpOwogCiAg
ICAgLy8gVGVzdCBpZiB3aGF0IGlzIGxlZnQgb2YgdGhlIGNvdW50ZXIgaXMgZXZlbi4KICAgICBW
YWx1ZSogaW5Mb29wQ291bnRlciA9IGxvb3BUZXN0Rm9yRXZlbkNhc2UtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvY2VkdXJlLCBQaGksIEludDMyLCBvcmlnaW4pOwpAQCAtODEsMTAgKzgwLDggQEAgc3Rk
OjpwYWlyPEJhc2ljQmxvY2sqLCBWYWx1ZSo+IHBvd0RvdWJsZQogICAgIFZhbHVlKiBsYXN0Q291
bnRlckJpdCA9IGxvb3BUZXN0Rm9yRXZlbkNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvY2VkdXJl
LCBCaXRBbmQsIG9yaWdpbiwKICAgICAgICAgaW5Mb29wQ291bnRlciwKICAgICAgICAgbG9vcFRl
c3RGb3JFdmVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvY2VkdXJlLCBvcmlnaW4s
IDEpKTsKLSAgICBsb29wVGVzdEZvckV2ZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
LSAgICAgICAgcHJvY2VkdXJlLCBCcmFuY2gsIG9yaWdpbiwKLSAgICAgICAgbGFzdENvdW50ZXJC
aXQsCi0gICAgICAgIEZyZXF1ZW50ZWRCbG9jayhsb29wT2RkKSwgRnJlcXVlbnRlZEJsb2NrKGxv
b3BFdmVuT2RkKSk7CisgICAgbG9vcFRlc3RGb3JFdmVuQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jZWR1cmUsIEJyYW5jaCwgb3JpZ2luLCBsYXN0Q291bnRlckJpdCk7CisgICAgbG9vcFRlc3RG
b3JFdmVuQ2FzZS0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2sobG9vcE9kZCksIEZyZXF1
ZW50ZWRCbG9jayhsb29wRXZlbk9kZCkpOwogCiAgICAgLy8gQ291bnRlciBpcyBvZGQuCiAgICAg
VmFsdWUqIGluTG9vcFJlc3VsdCA9IGxvb3BPZGQtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvY2VkdXJl
LCBQaGksIERvdWJsZSwgb3JpZ2luKTsKQEAgLTk0LDcgKzkxLDggQEAgc3RkOjpwYWlyPEJhc2lj
QmxvY2sqLCBWYWx1ZSo+IHBvd0RvdWJsZQogICAgIHVwZGF0ZWRMb29wUmVzdWx0VXBzaWxvbi0+
c2V0UGhpKGluTG9vcFJlc3VsdCk7CiAgICAgVXBzaWxvblZhbHVlKiB1cGRhdGVkTG9vcFJlc3Vs
dCA9IGxvb3BPZGQtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2NlZHVyZSwgb3JpZ2luLCB1
cGRhdGVkUmVzdWx0KTsKIAotICAgIGxvb3BPZGQtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2NlZHVyZSwgSnVtcCwgb3JpZ2luLCBGcmVxdWVudGVkQmxvY2sobG9vcEV2ZW5PZGQpKTsKKyAg
ICBsb29wT2RkLT5hcHBlbmROZXc8VmFsdWU+KHByb2NlZHVyZSwgSnVtcCwgb3JpZ2luKTsKKyAg
ICBsb29wT2RkLT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhsb29wRXZlbk9kZCkpOwog
CiAgICAgLy8gRXZlbiB2YWx1ZSBhbmQgZm9sbG93aW5nIHRoZSBPZGQuCiAgICAgVmFsdWUqIHNx
dWFyZWRJbnB1dCA9IGxvb3BFdmVuT2RkLT5hcHBlbmROZXc8VmFsdWU+KHByb2NlZHVyZSwgTXVs
LCBvcmlnaW4sIGluTG9vcFNxdWFyZWRJbnB1dCwgaW5Mb29wU3F1YXJlZElucHV0KTsKQEAgLTEw
OSwxMCArMTA3LDggQEAgc3RkOjpwYWlyPEJhc2ljQmxvY2sqLCBWYWx1ZSo+IHBvd0RvdWJsZQog
ICAgIGluaXRpYWxMb29wQ291bnRlci0+c2V0UGhpKGluTG9vcENvdW50ZXIpOwogICAgIHVwZGF0
ZWRDb3VudGVyVXBzaWxvbi0+c2V0UGhpKGluTG9vcENvdW50ZXIpOwogCi0gICAgbG9vcEV2ZW5P
ZGQtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAotICAgICAgICBwcm9jZWR1cmUsIEJyYW5jaCwg
b3JpZ2luLAotICAgICAgICB1cGRhdGVkQ291bnRlciwKLSAgICAgICAgRnJlcXVlbnRlZEJsb2Nr
KGxvb3BUZXN0Rm9yRXZlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soY29udGludWF0aW9uKSk7Cisg
ICAgbG9vcEV2ZW5PZGQtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvY2VkdXJlLCBCcmFuY2gsIG9yaWdp
biwgdXBkYXRlZENvdW50ZXIpOworICAgIGxvb3BFdmVuT2RkLT5zZXRTdWNjZXNzb3JzKEZyZXF1
ZW50ZWRCbG9jayhsb29wVGVzdEZvckV2ZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGNvbnRpbnVh
dGlvbikpOwogCiAgICAgLy8gSW5saW5lIGxvb3AuCiAgICAgVmFsdWUqIGZpbmFsUmVzdWx0UGhp
ID0gY29udGludWF0aW9uLT5hcHBlbmROZXc8VmFsdWU+KHByb2NlZHVyZSwgUGhpLCBEb3VibGUs
IG9yaWdpbik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5jcHAJKHJldmlz
aW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI5MCw2ICsyOTAsOSBAQCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRT
dHJlYW0mIG91dCwgT3BjCiAgICAgY2FzZSBTd2l0Y2g6CiAgICAgICAgIG91dC5wcmludCgiU3dp
dGNoIik7CiAgICAgICAgIHJldHVybjsKKyAgICBjYXNlIFBvbHlKdW1wOgorICAgICAgICBvdXQu
cHJpbnQoIlBvbHlKdW1wIik7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIFJldHVybjoKICAg
ICAgICAgb3V0LnByaW50KCJSZXR1cm4iKTsKICAgICAgICAgcmV0dXJuOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM09wY29kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMDcsMjEgKzIwNywy
MSBAQCBlbnVtIE9wY29kZSA6IGludDE2X3QgewogICAgIFVwc2lsb24sIC8vIFRoaXMgdXNlcyB0
aGUgVXBzaWxvblZhbHVlIGNsYXNzLgogICAgIFBoaSwKIAotICAgIC8vIEp1bXAuIFVzZXMgdGhl
IENvbnRyb2xWYWx1ZSBjbGFzcy4KKyAgICAvLyBKdW1wLgogICAgIEp1bXAsCiAgICAgCi0gICAg
Ly8gUG9seW1vcnBoaWMgYnJhbmNoLCB1c2FibGUgd2l0aCBhbnkgaW50ZWdlciB0eXBlLiBCcmFu
Y2hlcyBpZiBub3QgZXF1YWwgdG8gemVyby4gVXNlcyB0aGUKLSAgICAvLyBDb250cm9sVmFsdWUg
Y2xhc3MsIHdpdGggdGhlIDAtaW5kZXggc3VjY2Vzc29yIGJlaW5nIHRoZSB0cnVlIHN1Y2Nlc3Nv
ci4KKyAgICAvLyBQb2x5bW9ycGhpYyBicmFuY2gsIHVzYWJsZSB3aXRoIGFueSBpbnRlZ2VyIHR5
cGUuIEJyYW5jaGVzIGlmIG5vdCBlcXVhbCB0byB6ZXJvLiBUaGUgMC1pbmRleAorICAgIC8vIHN1
Y2Nlc3NvciBpcyB0aGUgdHJ1ZSBzdWNjZXNzb3IuCiAgICAgQnJhbmNoLAogCiAgICAgLy8gU3dp
dGNoLiBTd2l0Y2hlcyBvdmVyIGVpdGhlciBJbnQzMiBvciBJbnQ2NC4gVXNlcyB0aGUgU3dpdGNo
VmFsdWUgY2xhc3MuCiAgICAgU3dpdGNoLAotCisgICAgCiAgICAgLy8gUmV0dXJuLiBOb3RlIHRo
YXQgQjMgcHJvY2VkdXJlcyBkb24ndCBrbm93IHRoZWlyIHJldHVybiB0eXBlLCBzbyB0aGlzIGNh
biBqdXN0IHJldHVybiBhbnkKLSAgICAvLyB0eXBlLiBVc2VzIHRoZSBDb250cm9sVmFsdWUgY2xh
c3MuCisgICAgLy8gdHlwZS4KICAgICBSZXR1cm4sCiAKLSAgICAvLyBUaGlzIGlzIGEgdGVybWlu
YWwgdGhhdCBpbmRpY2F0ZXMgdGhhdCB3ZSB3aWxsIG5ldmVyIGdldCBoZXJlLiBVc2VzIHRoZSBD
b250cm9sVmFsdWUgY2xhc3MuCisgICAgLy8gVGhpcyBpcyBhIHRlcm1pbmFsIHRoYXQgaW5kaWNh
dGVzIHRoYXQgd2Ugd2lsbCBuZXZlciBnZXQgaGVyZS4KICAgICBPb3BzCiB9OwogCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQYXRjaHBvaW50U3BlY2lhbC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUGF0Y2hwb2ludFNwZWNpYWwuY3BwCShy
ZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQYXRjaHBvaW50
U3BlY2lhbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0Niw2ICsxNDYsMTEgQEAgQ0NhbGxIZWxw
ZXJzOjpKdW1wIFBhdGNocG9pbnRTcGVjaWFsOjpnZQogICAgIHJldHVybiBDQ2FsbEhlbHBlcnM6
Okp1bXAoKTsKIH0KIAorYm9vbCBQYXRjaHBvaW50U3BlY2lhbDo6aXNUZXJtaW5hbChJbnN0JiBp
bnN0KQoreworICAgIHJldHVybiBpbnN0Lm93bmVyLT5hczxQYXRjaHBvaW50VmFsdWU+KCktPmVm
ZmVjdHMudGVybWluYWw7Cit9CisKIHZvaWQgUGF0Y2hwb2ludFNwZWNpYWw6OmR1bXBJbXBsKFBy
aW50U3RyZWFtJiBvdXQpIGNvbnN0CiB7CiAgICAgb3V0LnByaW50KCJQYXRjaHBvaW50Iik7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQYXRjaHBvaW50U3BlY2lhbC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BhdGNocG9pbnRTcGVjaWFsLmgJ
KHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BhdGNocG9p
bnRTcGVjaWFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTYsNiArNTYsOCBAQCBwcm90ZWN0ZWQ6CiAgICAg
Ly8gZ2VuZXJhdGVzIHRoZSBzdGFja21hcC4gU3VwZXIgY3JhenkgZHVkZSEKIAogICAgIENDYWxs
SGVscGVyczo6SnVtcCBnZW5lcmF0ZShBaXI6Okluc3QmLCBDQ2FsbEhlbHBlcnMmLCBBaXI6Okdl
bmVyYXRpb25Db250ZXh0Jikgb3ZlcnJpZGU7CisgICAgCisgICAgYm9vbCBpc1Rlcm1pbmFsKElu
c3QmKSBvdmVycmlkZTsKIAogICAgIHZvaWQgZHVtcEltcGwoUHJpbnRTdHJlYW0mKSBjb25zdCBv
dmVycmlkZTsKICAgICB2b2lkIGRlZXBEdW1wSW1wbChQcmludFN0cmVhbSYpIGNvbnN0IG92ZXJy
aWRlOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuY3BwCShyZXZp
c2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xNDgsMzEgKzE0OCw2IEBAIHZvaWQgUHJvY2VkdXJlOjpyZXNl
dFZhbHVlT3duZXJzKCkKIAogdm9pZCBQcm9jZWR1cmU6OnJlc2V0UmVhY2hhYmlsaXR5KCkKIHsK
LSAgICBpZiAoc2hvdWxkVmFsaWRhdGVJUigpKSB7Ci0gICAgICAgIC8vIFZhbGlkYXRlIHRoZSBi
YXNpYyBwcm9wZXJ0aWVzIHRoYXQgd2UgbmVlZCBmb3IgcmVzZXR0aW5nIHJlYWNoYWJpbGl0eS4g
V2Ugb2Z0ZW4gcmVzZXQKLSAgICAgICAgLy8gcmVhY2hhYmlsaXR5IGJlZm9yZSBJUiB2YWxpZGF0
aW9uLCBzbyB3aXRob3V0IHRoaXMgbWluaS12YWxpZGF0aW9uLCB5b3Ugd291bGQgY3Jhc2ggaW5z
aWRlCi0gICAgICAgIC8vIEIzOjpyZXNldFJlYWNoYWJpbGl0eSgpIHdpdGhvdXQgZ2V0dGluZyBh
bnkgSVIgZHVtcC4KLQotICAgICAgICBCYXNpY0Jsb2NrKiBiYWRCbG9jayA9IG51bGxwdHI7Ci0g
ICAgICAgIGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiAqdGhpcykgewotICAgICAgICAgICAgaWYg
KCFibG9jay0+c2l6ZSgpKSB7Ci0gICAgICAgICAgICAgICAgYmFkQmxvY2sgPSBibG9jazsKLSAg
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKCFi
bG9jay0+bGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCkpIHsKLSAgICAgICAgICAgICAgICBiYWRC
bG9jayA9IGJsb2NrOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAg
ICAgICB9Ci0KLSAgICAgICAgaWYgKGJhZEJsb2NrKSB7Ci0gICAgICAgICAgICBkYXRhTG9nKCJG
QVRBTDogSW52YWxpZCBiYXNpYyBibG9jayAiLCAqYmFkQmxvY2ssICIgd2hpbGUgcnVubmluZyBQ
cm9jZWR1cmU6OnJlc2V0UmVhY2hhYmlsaXR5KCkuXG4iKTsKLSAgICAgICAgICAgIGRhdGFMb2co
KnRoaXMpOwotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAg
ICAgfQotICAgIH0KLSAgICAKICAgICByZWNvbXB1dGVQcmVkZWNlc3NvcnMobV9ibG9ja3MpOwog
ICAgIAogICAgIC8vIFRoZSBjb21tb24gY2FzZSBpcyB0aGF0IHRoaXMgZG9lcyBub3QgZmluZCBh
bnkgZGVhZCBibG9ja3MuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1
cmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUu
aAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2Vk
dXJlLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxOCw3ICsyMTgsMTAgQEAgcHVibGljOgogCiAgICAg
Y29uc3QgY2hhciogbGFzdFBoYXNlTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdFBoYXNlTmFt
ZTsgfQogCi0gICAgdm9pZCogYWRkRGF0YVNlY3Rpb24oc2l6ZV90IHNpemUpOworICAgIC8vIEFs
bG9jYXRlcyBhIHNsYWIgb2YgbWVtb3J5IHRoYXQgd2lsbCBiZSBrZXB0IGFsaXZlIGJ5IGFueW9u
ZSB3aG8ga2VlcHMgdGhlIHJlc3VsdGluZyBjb2RlCisgICAgLy8gYWxpdmUuIEdyZWF0IGZvciBj
b21waWxlci1nZW5lcmF0ZWQgZGF0YSBzZWN0aW9ucywgbGlrZSBzd2l0Y2gganVtcCB0YWJsZXMg
YW5kIGNvbnN0YW50IHBvb2xzLgorICAgIC8vIFRoaXMgcmV0dXJucyBtZW1vcnkgdGhhdCBoYXMg
YmVlbiB6ZXJvLWluaXRpYWxpemVkLgorICAgIHZvaWQqIGFkZERhdGFTZWN0aW9uKHNpemVfdCk7
CiAKICAgICBPcGFxdWVCeXByb2R1Y3RzJiBieXByb2R1Y3RzKCkgeyByZXR1cm4gKm1fYnlwcm9k
dWN0czsgfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VTdHJlbmd0
aC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3Ry
ZW5ndGguY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNSZWR1Y2VTdHJlbmd0aC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDYgQEAKICNp
bmNsdWRlICJCM0Jhc2ljQmxvY2tJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNCbG9ja0luc2VydGlv
blNldC5oIgogI2luY2x1ZGUgIkIzQ29tcHV0ZURpdmlzaW9uTWFnaWMuaCIKLSNpbmNsdWRlICJC
M0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzRG9taW5hdG9ycy5oIgogI2luY2x1ZGUgIkIz
SW5kZXhTZXQuaCIKICNpbmNsdWRlICJCM0luc2VydGlvblNldElubGluZXMuaCIKQEAgLTE3MTcs
NyArMTcxNiw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgLy8gUmVwbGFjZSB0aGUgcmVz
dCBvZiB0aGUgYmxvY2sgd2l0aCBhbiBPb3BzLgogICAgICAgICAgICAgICAgIGZvciAodW5zaWdu
ZWQgaSA9IG1faW5kZXggKyAxOyBpIDwgbV9ibG9jay0+c2l6ZSgpIC0gMTsgKytpKQogICAgICAg
ICAgICAgICAgICAgICBtX2Jsb2NrLT5hdChpKS0+cmVwbGFjZVdpdGhCb3R0b20obV9pbnNlcnRp
b25TZXQsIG1faW5kZXgpOwotICAgICAgICAgICAgICAgIG1fYmxvY2stPmxhc3QoKS0+YXM8Q29u
dHJvbFZhbHVlPigpLT5jb252ZXJ0VG9Pb3BzKCk7CisgICAgICAgICAgICAgICAgbV9ibG9jay0+
bGFzdCgpLT5yZXBsYWNlV2l0aE9vcHMobV9ibG9jayk7CiAgICAgICAgICAgICAgICAgbV9ibG9j
ay0+bGFzdCgpLT5zZXRPcmlnaW4oY2hlY2tWYWx1ZS0+b3JpZ2luKCkpOwogCiAgICAgICAgICAg
ICAgICAgLy8gUmVwbGFjZSBvdXJzZWx2ZXMgbGFzdC4KQEAgLTE3NzMsNiArMTc3Miw3IEBAIHBy
aXZhdGU6CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZS0+b3Bjb2RlKCkgPT0gU2Vs
ZWN0CiAgICAgICAgICAgICAgICAgICAgICAgICAmJiAodmFsdWUtPmNoaWxkKDEpLT5pc0NvbnN0
YW50KCkgJiYgdmFsdWUtPmNoaWxkKDIpLT5pc0NvbnN0YW50KCkpOwogICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoc2VsZWN0KSB7CiAgICAgICAgICAg
ICAgICAgc3BlY2lhbGl6ZVNlbGVjdChzZWxlY3QpOwogICAgICAgICAgICAgICAgIGJyZWFrOwpA
QCAtMTc4MSw1MCArMTc4MSw0OCBAQCBwcml2YXRlOgogICAgICAgICB9CiAKICAgICAgICAgY2Fz
ZSBCcmFuY2g6IHsKLSAgICAgICAgICAgIENvbnRyb2xWYWx1ZSogYnJhbmNoID0gbV92YWx1ZS0+
YXM8Q29udHJvbFZhbHVlPigpOwotCiAgICAgICAgICAgICAvLyBUdXJuIHRoaXM6IEJyYW5jaChO
b3RFcXVhbCh4LCAwKSkKICAgICAgICAgICAgIC8vIEludG8gdGhpczogQnJhbmNoKHgpCi0gICAg
ICAgICAgICBpZiAoYnJhbmNoLT5jaGlsZCgwKS0+b3Bjb2RlKCkgPT0gTm90RXF1YWwgJiYgYnJh
bmNoLT5jaGlsZCgwKS0+Y2hpbGQoMSktPmlzSW50KDApKSB7Ci0gICAgICAgICAgICAgICAgYnJh
bmNoLT5jaGlsZCgwKSA9IGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDApOworICAgICAgICAgICAg
aWYgKG1fdmFsdWUtPmNoaWxkKDApLT5vcGNvZGUoKSA9PSBOb3RFcXVhbCAmJiBtX3ZhbHVlLT5j
aGlsZCgwKS0+Y2hpbGQoMSktPmlzSW50KDApKSB7CisgICAgICAgICAgICAgICAgbV92YWx1ZS0+
Y2hpbGQoMCkgPSBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMCk7CiAgICAgICAgICAgICAgICAg
bV9jaGFuZ2VkID0gdHJ1ZTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgLy8gVHVybiB0
aGlzOiBCcmFuY2goRXF1YWwoeCwgMCksIHRoZW4sIGVsc2UpCiAgICAgICAgICAgICAvLyBJbnRv
IHRoaXM6IEJyYW5jaCh4LCBlbHNlLCB0aGVuKQotICAgICAgICAgICAgaWYgKGJyYW5jaC0+Y2hp
bGQoMCktPm9wY29kZSgpID09IEVxdWFsICYmIGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDEpLT5p
c0ludCgwKSkgewotICAgICAgICAgICAgICAgIGJyYW5jaC0+Y2hpbGQoMCkgPSBicmFuY2gtPmNo
aWxkKDApLT5jaGlsZCgwKTsKLSAgICAgICAgICAgICAgICBzdGQ6OnN3YXAoYnJhbmNoLT50YWtl
bigpLCBicmFuY2gtPm5vdFRha2VuKCkpOworICAgICAgICAgICAgaWYgKG1fdmFsdWUtPmNoaWxk
KDApLT5vcGNvZGUoKSA9PSBFcXVhbCAmJiBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMSktPmlz
SW50KDApKSB7CisgICAgICAgICAgICAgICAgbV92YWx1ZS0+Y2hpbGQoMCkgPSBtX3ZhbHVlLT5j
aGlsZCgwKS0+Y2hpbGQoMCk7CisgICAgICAgICAgICAgICAgc3RkOjpzd2FwKG1fYmxvY2stPnRh
a2VuKCksIG1fYmxvY2stPm5vdFRha2VuKCkpOwogICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9
IHRydWU7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgICAgIC8vIFR1cm4g
dGhpczogQnJhbmNoKEJpdFhvcihib29sLCAxKSwgdGhlbiwgZWxzZSkKICAgICAgICAgICAgIC8v
IEludG8gdGhpczogQnJhbmNoKGJvb2wsIGVsc2UsIHRoZW4pCi0gICAgICAgICAgICBpZiAoYnJh
bmNoLT5jaGlsZCgwKS0+b3Bjb2RlKCkgPT0gQml0WG9yCi0gICAgICAgICAgICAgICAgJiYgYnJh
bmNoLT5jaGlsZCgwKS0+Y2hpbGQoMSktPmlzSW50MzIoMSkKLSAgICAgICAgICAgICAgICAmJiBi
cmFuY2gtPmNoaWxkKDApLT5jaGlsZCgwKS0+cmV0dXJuc0Jvb2woKSkgewotICAgICAgICAgICAg
ICAgIGJyYW5jaC0+Y2hpbGQoMCkgPSBicmFuY2gtPmNoaWxkKDApLT5jaGlsZCgwKTsKLSAgICAg
ICAgICAgICAgICBzdGQ6OnN3YXAoYnJhbmNoLT50YWtlbigpLCBicmFuY2gtPm5vdFRha2VuKCkp
OworICAgICAgICAgICAgaWYgKG1fdmFsdWUtPmNoaWxkKDApLT5vcGNvZGUoKSA9PSBCaXRYb3IK
KyAgICAgICAgICAgICAgICAmJiBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMSktPmlzSW50MzIo
MSkKKyAgICAgICAgICAgICAgICAmJiBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMCktPnJldHVy
bnNCb29sKCkpIHsKKyAgICAgICAgICAgICAgICBtX3ZhbHVlLT5jaGlsZCgwKSA9IG1fdmFsdWUt
PmNoaWxkKDApLT5jaGlsZCgwKTsKKyAgICAgICAgICAgICAgICBzdGQ6OnN3YXAobV9ibG9jay0+
dGFrZW4oKSwgbV9ibG9jay0+bm90VGFrZW4oKSk7CiAgICAgICAgICAgICAgICAgbV9jaGFuZ2Vk
ID0gdHJ1ZTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgLy8gVHVybiB0aGlzOiBCcmFu
Y2goQml0QW5kKGJvb2wsIHh5YjEpLCB0aGVuLCBlbHNlKQogICAgICAgICAgICAgLy8gSW50byB0
aGlzOiBCcmFuY2goYm9vbCwgdGhlbiwgZWxzZSkKLSAgICAgICAgICAgIGlmIChicmFuY2gtPmNo
aWxkKDApLT5vcGNvZGUoKSA9PSBCaXRBbmQKLSAgICAgICAgICAgICAgICAmJiBicmFuY2gtPmNo
aWxkKDApLT5jaGlsZCgxKS0+aGFzSW50KCkKLSAgICAgICAgICAgICAgICAmJiBicmFuY2gtPmNo
aWxkKDApLT5jaGlsZCgxKS0+YXNJbnQoKSAmIDEKLSAgICAgICAgICAgICAgICAmJiBicmFuY2gt
PmNoaWxkKDApLT5jaGlsZCgwKS0+cmV0dXJuc0Jvb2woKSkgewotICAgICAgICAgICAgICAgIGJy
YW5jaC0+Y2hpbGQoMCkgPSBicmFuY2gtPmNoaWxkKDApLT5jaGlsZCgwKTsKKyAgICAgICAgICAg
IGlmIChtX3ZhbHVlLT5jaGlsZCgwKS0+b3Bjb2RlKCkgPT0gQml0QW5kCisgICAgICAgICAgICAg
ICAgJiYgbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDEpLT5oYXNJbnQoKQorICAgICAgICAgICAg
ICAgICYmIG1fdmFsdWUtPmNoaWxkKDApLT5jaGlsZCgxKS0+YXNJbnQoKSAmIDEKKyAgICAgICAg
ICAgICAgICAmJiBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMCktPnJldHVybnNCb29sKCkpIHsK
KyAgICAgICAgICAgICAgICBtX3ZhbHVlLT5jaGlsZCgwKSA9IG1fdmFsdWUtPmNoaWxkKDApLT5j
aGlsZCgwKTsKICAgICAgICAgICAgICAgICBtX2NoYW5nZWQgPSB0cnVlOwogICAgICAgICAgICAg
fQogCi0gICAgICAgICAgICBUcmlTdGF0ZSB0cmlTdGF0ZSA9IGJyYW5jaC0+Y2hpbGQoMCktPmFz
VHJpU3RhdGUoKTsKKyAgICAgICAgICAgIFRyaVN0YXRlIHRyaVN0YXRlID0gbV92YWx1ZS0+Y2hp
bGQoMCktPmFzVHJpU3RhdGUoKTsKIAogICAgICAgICAgICAgLy8gVHVybiB0aGlzOiBCcmFuY2go
MCwgdGhlbiwgZWxzZSkKICAgICAgICAgICAgIC8vIEludG8gdGhpczogSnVtcChlbHNlKQogICAg
ICAgICAgICAgaWYgKHRyaVN0YXRlID09IEZhbHNlVHJpU3RhdGUpIHsKLSAgICAgICAgICAgICAg
ICBicmFuY2gtPnRha2VuKCkuYmxvY2soKS0+cmVtb3ZlUHJlZGVjZXNzb3IobV9ibG9jayk7Ci0g
ICAgICAgICAgICAgICAgYnJhbmNoLT5jb252ZXJ0VG9KdW1wKGJyYW5jaC0+bm90VGFrZW4oKS5i
bG9jaygpKTsKKyAgICAgICAgICAgICAgICBtX2Jsb2NrLT50YWtlbigpLmJsb2NrKCktPnJlbW92
ZVByZWRlY2Vzc29yKG1fYmxvY2spOworICAgICAgICAgICAgICAgIG1fdmFsdWUtPnJlcGxhY2VX
aXRoSnVtcChtX2Jsb2NrLCBtX2Jsb2NrLT5ub3RUYWtlbigpLmJsb2NrKCkpOwogICAgICAgICAg
ICAgICAgIG1fY2hhbmdlZENGRyA9IHRydWU7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICB9CkBAIC0xODMyLDggKzE4MzAsOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgLy8g
VHVybiB0aGlzOiBCcmFuY2gobm90IDAsIHRoZW4sIGVsc2UpCiAgICAgICAgICAgICAvLyBJbnRv
IHRoaXM6IEp1bXAodGhlbikKICAgICAgICAgICAgIGlmICh0cmlTdGF0ZSA9PSBUcnVlVHJpU3Rh
dGUpIHsKLSAgICAgICAgICAgICAgICBicmFuY2gtPm5vdFRha2VuKCkuYmxvY2soKS0+cmVtb3Zl
UHJlZGVjZXNzb3IobV9ibG9jayk7Ci0gICAgICAgICAgICAgICAgYnJhbmNoLT5jb252ZXJ0VG9K
dW1wKGJyYW5jaC0+dGFrZW4oKS5ibG9jaygpKTsKKyAgICAgICAgICAgICAgICBtX2Jsb2NrLT5u
b3RUYWtlbigpLmJsb2NrKCktPnJlbW92ZVByZWRlY2Vzc29yKG1fYmxvY2spOworICAgICAgICAg
ICAgICAgIG1fdmFsdWUtPnJlcGxhY2VXaXRoSnVtcChtX2Jsb2NrLCBtX2Jsb2NrLT50YWtlbigp
LmJsb2NrKCkpOwogICAgICAgICAgICAgICAgIG1fY2hhbmdlZENGRyA9IHRydWU7CiAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CkBAIC0xODQyLDEyICsxODQwLDEyIEBAIHBy
aXZhdGU6CiAgICAgICAgICAgICAvLyBvZiBtYWtlcyBzZW5zZSBoZXJlIGJlY2F1c2UgaXQncyBj
aGVhcCwgYnV0IGhhY2tzIGxpa2UgdGhpcyBzaG93IHRoYXQgd2UncmUgZ29pbmcKICAgICAgICAg
ICAgIC8vIHRvIG5lZWQgU0NDUC4KICAgICAgICAgICAgIFZhbHVlKiBjaGVjayA9IG1fcHVyZUNT
RS5maW5kTWF0Y2goCi0gICAgICAgICAgICAgICAgVmFsdWVLZXkoQ2hlY2ssIFZvaWQsIGJyYW5j
aC0+Y2hpbGQoMCkpLCBtX2Jsb2NrLCAqbV9kb21pbmF0b3JzKTsKKyAgICAgICAgICAgICAgICBW
YWx1ZUtleShDaGVjaywgVm9pZCwgbV92YWx1ZS0+Y2hpbGQoMCkpLCBtX2Jsb2NrLCAqbV9kb21p
bmF0b3JzKTsKICAgICAgICAgICAgIGlmIChjaGVjaykgewogICAgICAgICAgICAgICAgIC8vIFRo
ZSBDaGVjayB3b3VsZCBoYXZlIHNpZGUtZXhpdGVkIGlmIGNoaWxkKDApIHdhcyBub24temVyby4g
U28sIGl0IG11c3QgYmUKICAgICAgICAgICAgICAgICAvLyB6ZXJvIGhlcmUuCi0gICAgICAgICAg
ICAgICAgYnJhbmNoLT50YWtlbigpLmJsb2NrKCktPnJlbW92ZVByZWRlY2Vzc29yKG1fYmxvY2sp
OwotICAgICAgICAgICAgICAgIGJyYW5jaC0+Y29udmVydFRvSnVtcChicmFuY2gtPm5vdFRha2Vu
KCkuYmxvY2soKSk7CisgICAgICAgICAgICAgICAgbV9ibG9jay0+dGFrZW4oKS5ibG9jaygpLT5y
ZW1vdmVQcmVkZWNlc3NvcihtX2Jsb2NrKTsKKyAgICAgICAgICAgICAgICBtX3ZhbHVlLT5yZXBs
YWNlV2l0aEp1bXAobV9ibG9jaywgbV9ibG9jay0+bm90VGFrZW4oKS5ibG9jaygpKTsKICAgICAg
ICAgICAgICAgICBtX2NoYW5nZWRDRkcgPSB0cnVlOwogICAgICAgICAgICAgfQogICAgICAgICAg
ICAgYnJlYWs7CkBAIC0xOTg2LDEzICsxOTg0LDEyIEBAIHByaXZhdGU6CiAgICAgICAgIC8vIFJl
bW92ZSB0aGUgdmFsdWVzIGZyb20gdGhlIHByZWRlY2Vzc29yLgogICAgICAgICBwcmVkZWNlc3Nv
ci0+dmFsdWVzKCkucmVzaXplKHN0YXJ0SW5kZXgpOwogICAgICAgICAKLSAgICAgICAgcHJlZGVj
ZXNzb3ItPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAotICAgICAgICAgICAgbV9wcm9jLCBCcmFu
Y2gsIHNvdXJjZS0+b3JpZ2luKCksIHByZWRpY2F0ZSwKLSAgICAgICAgICAgIEZyZXF1ZW50ZWRC
bG9jayhjYXNlc1swXSksIEZyZXF1ZW50ZWRCbG9jayhjYXNlc1sxXSkpOworICAgICAgICBwcmVk
ZWNlc3Nvci0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIEJyYW5jaCwgc291cmNlLT5vcmlnaW4o
KSwgcHJlZGljYXRlKTsKKyAgICAgICAgcHJlZGVjZXNzb3ItPnNldFN1Y2Nlc3NvcnMoRnJlcXVl
bnRlZEJsb2NrKGNhc2VzWzBdKSwgRnJlcXVlbnRlZEJsb2NrKGNhc2VzWzFdKSk7CiAKICAgICAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51bUNhc2VzOyArK2kpIHsKLSAgICAgICAgICAg
IGNhc2VzW2ldLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgICAgICAgICBtX3By
b2MsIEp1bXAsIG1fdmFsdWUtPm9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sobV9ibG9jaykpOwor
ICAgICAgICAgICAgY2FzZXNbaV0tPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBKdW1wLCBtX3Zh
bHVlLT5vcmlnaW4oKSk7CisgICAgICAgICAgICBjYXNlc1tpXS0+c2V0U3VjY2Vzc29ycyhGcmVx
dWVudGVkQmxvY2sobV9ibG9jaykpOwogICAgICAgICB9CiAKICAgICAgICAgbV9jaGFuZ2VkID0g
dHJ1ZTsKQEAgLTIyMjEsNyArMjIxOCw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZGF0YUxvZygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNoYW5n
aW5nICIsIHBvaW50ZXJEdW1wKGJsb2NrKSwgIidzIHRlcm1pbmFsIHRvIGEgSnVtcC5cbiIpOwog
ICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2st
Pmxhc3QoKS0+YXM8Q29udHJvbFZhbHVlPigpLT5jb252ZXJ0VG9KdW1wKGZpcnN0U3VjY2Vzc29y
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLT5sYXN0KCktPnJlcGxhY2VXaXRoSnVt
cChibG9jaywgZmlyc3RTdWNjZXNzb3IpOwogICAgICAgICAgICAgICAgICAgICAgICAgbV9jaGFu
Z2VkQ0ZHID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0K
QEAgLTIyMzksMTYgKzIyMzYsMTggQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgLy8g
UmVtb3ZlIHRoZSB0ZXJtaW5hbC4KICAgICAgICAgICAgICAgICAgICAgVmFsdWUqIHZhbHVlID0g
YmxvY2stPnZhbHVlcygpLnRha2VMYXN0KCk7CiAgICAgICAgICAgICAgICAgICAgIE9yaWdpbiBq
dW1wT3JpZ2luID0gdmFsdWUtPm9yaWdpbigpOwotICAgICAgICAgICAgICAgICAgICBSRUxFQVNF
X0FTU0VSVCh2YWx1ZS0+YXM8Q29udHJvbFZhbHVlPigpKTsKKyAgICAgICAgICAgICAgICAgICAg
UkVMRUFTRV9BU1NFUlQodmFsdWUtPmVmZmVjdHMoKS50ZXJtaW5hbCk7CiAgICAgICAgICAgICAg
ICAgICAgIG1fcHJvYy5kZWxldGVWYWx1ZSh2YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgIAog
ICAgICAgICAgICAgICAgICAgICAvLyBBcHBlbmQgdGhlIGZ1bGwgY29udGVudHMgb2YgdGhlIHN1
Y2Nlc3NvciB0byB0aGUgcHJlZGVjZXNzb3IuCiAgICAgICAgICAgICAgICAgICAgIGJsb2NrLT52
YWx1ZXMoKS5hcHBlbmRWZWN0b3Ioc3VjY2Vzc29yLT52YWx1ZXMoKSk7CisgICAgICAgICAgICAg
ICAgICAgIGJsb2NrLT5zdWNjZXNzb3JzKCkgPSBzdWNjZXNzb3ItPnN1Y2Nlc3NvcnMoKTsKICAg
ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0
IHRoZSBzdWNjZXNzb3IgaGFzIG5vdGhpbmcgbGVmdCBpbiBpdC4gTWFrZSBzdXJlIHRoYXQgdGhl
IGJsb2NrCiAgICAgICAgICAgICAgICAgICAgIC8vIGhhcyBhIHRlcm1pbmFsIHNvIHRoYXQgbm9i
b2R5IGNob2tlcyB3aGVuIHRoZXkgbG9vayBhdCBpdC4KICAgICAgICAgICAgICAgICAgICAgc3Vj
Y2Vzc29yLT52YWx1ZXMoKS5yZXNpemUoMCk7Ci0gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3Nv
ci0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4obV9wcm9jLCBPb3BzLCBqdW1wT3JpZ2luKTsKKyAg
ICAgICAgICAgICAgICAgICAgc3VjY2Vzc29yLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgT29w
cywganVtcE9yaWdpbik7CisgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3Nvci0+Y2xlYXJTdWNj
ZXNzb3JzKCk7CiAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAvLyBF
bnN1cmUgdGhhdCBwcmVkZWNlc3NvcnMgb2YgYmxvY2sncyBuZXcgc3VjY2Vzc29ycyBrbm93IHdo
YXQncyB1cC4KICAgICAgICAgICAgICAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBuZXdTdWNjZXNz
b3IgOiBibG9jay0+c3VjY2Vzc29yQmxvY2tzKCkpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNTdGFja21hcEdlbmVyYXRpb25QYXJhbXMuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5jcHAJKHJldmlz
aW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFwR2VuZXJh
dGlvblBhcmFtcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTksNiArNTksMjcgQEAgUmVnaXN0ZXJTZXQg
U3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zOjp1bgogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK1Zl
Y3RvcjxCb3g8Q0NhbGxIZWxwZXJzOjpMYWJlbD4+IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtczo6
c3VjY2Vzc29yTGFiZWxzKCkgY29uc3QKK3sKKyAgICBSRUxFQVNFX0FTU0VSVChtX2NvbnRleHQu
aW5kZXhJbkJsb2NrID09IG1fY29udGV4dC5ibG9jay0+c2l6ZSgpIC0gMSk7CisgICAgUkVMRUFT
RV9BU1NFUlQobV92YWx1ZS0+ZWZmZWN0cygpLnRlcm1pbmFsKTsKKyAgICAKKyAgICBWZWN0b3I8
Qm94PENDYWxsSGVscGVyczo6TGFiZWw+PiByZXN1bHQobV9jb250ZXh0LmJsb2NrLT5udW1TdWNj
ZXNzb3JzKCkpOworICAgIGZvciAodW5zaWduZWQgaSA9IG1fY29udGV4dC5ibG9jay0+bnVtU3Vj
Y2Vzc29ycygpOyBpLS07KQorICAgICAgICByZXN1bHRbaV0gPSBtX2NvbnRleHQuYmxvY2tMYWJl
bHNbbV9jb250ZXh0LmJsb2NrLT5zdWNjZXNzb3JCbG9jayhpKV07CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KKworYm9vbCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXM6OmZhbGxzVGhyb3VnaFRvU3Vj
Y2Vzc29yKHVuc2lnbmVkIHN1Y2Nlc3NvckluZGV4KSBjb25zdAoreworICAgIFJFTEVBU0VfQVNT
RVJUKG1fY29udGV4dC5pbmRleEluQmxvY2sgPT0gbV9jb250ZXh0LmJsb2NrLT5zaXplKCkgLSAx
KTsKKyAgICBSRUxFQVNFX0FTU0VSVChtX3ZhbHVlLT5lZmZlY3RzKCkudGVybWluYWwpOworICAg
IAorICAgIEJhc2ljQmxvY2sqIHN1Y2Nlc3NvciA9IG1fY29udGV4dC5ibG9jay0+c3VjY2Vzc29y
QmxvY2soc3VjY2Vzc29ySW5kZXgpOworICAgIEJhc2ljQmxjb2sqIG5leHRCbG9jayA9IG1fY29u
dGV4dC5jb2RlLT5maW5kTmV4dEJsb2NrKG1fY29udGV4dC5ibG9jayk7CisgICAgcmV0dXJuIHN1
Y2Nlc3NvciA9PSBuZXh0QmxvY2s7Cit9CisKIFByb2NlZHVyZSYgU3RhY2ttYXBHZW5lcmF0aW9u
UGFyYW1zOjpwcm9jKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9jb250ZXh0LmNvZGUtPnByb2Mo
KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFwR2VuZXJhdGlvblBh
cmFtcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFw
R2VuZXJhdGlvblBhcmFtcy5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNTdGFja21hcEdlbmVyYXRpb25QYXJhbXMuaAkod29ya2luZyBjb3B5KQpAQCAt
MzAsNyArMzAsOSBAQAogCiAjaW5jbHVkZSAiQWlyR2VuZXJhdGlvbkNvbnRleHQuaCIKICNpbmNs
dWRlICJCM1ZhbHVlUmVwLmgiCisjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAi
UmVnaXN0ZXJTZXQuaCIKKyNpbmNsdWRlIDx3dGYvQm94Lmg+CiAKIG5hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgQjMgewogCkBAIC0zOSw2ICs0MSw4IEBAIGNsYXNzIFBhdGNocG9pbnRTcGVjaWFs
OwogY2xhc3MgUHJvY2VkdXJlOwogY2xhc3MgU3RhY2ttYXBWYWx1ZTsKIAorLy8gTk9URTogSXQn
cyBwb3NzaWJsZSB0byBjYXB0dXJlIFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyBieSB2YWx1ZSwg
YnV0IG5vdCBhbGwgb2YgdGhlIG1ldGhvZHMgd2lsbAorLy8gd29yayBpZiB5b3UgZG8gdGhhdC4K
IGNsYXNzIFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyB7CiBwdWJsaWM6CiAgICAgLy8gVGhpcyBp
cyB0aGUgc3RhY2ttYXAgdmFsdWUgdGhhdCB3ZSdyZSBnZW5lcmF0aW5nLgpAQCAtODAsNiArODQs
MTIgQEAgcHVibGljOgogCiAgICAgR1BSUmVnIGdwU2NyYXRjaCh1bnNpZ25lZCBpbmRleCkgY29u
c3QgeyByZXR1cm4gbV9ncFNjcmF0Y2hbaW5kZXhdOyB9CiAgICAgRlBSUmVnIGZwU2NyYXRjaCh1
bnNpZ25lZCBpbmRleCkgY29uc3QgeyByZXR1cm4gbV9mcFNjcmF0Y2hbaW5kZXhdOyB9CisgICAg
CisgICAgLy8gVGhpcyBpcyBjb21wdXRlZCBsYXppbHksIHNvIGl0IHdvbid0IHdvcmsgaWYgeW91
IGNhcHR1cmUgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zIGJ5IHZhbHVlLgorICAgIFZlY3RvcjxC
b3g8Q0NhbGxIZWxwZXJzOjpMYWJlbD4+IHN1Y2Nlc3NvckxhYmVscygpIGNvbnN0OworICAgIAor
ICAgIC8vIFRoaXMgaXMgY29tcHV0ZWQgbGF6aWx5IGFsc28uCisgICAgYm9vbCBmYWxsc1Rocm91
Z2hUb1N1Y2Nlc3Nvcih1bnNpZ25lZCBzdWNjZXNzb3JJbmRleCkgY29uc3Q7CiAKICAgICAvLyBU
aGlzIGlzIHByb3ZpZGVkIGZvciBjb252ZW5pZW5jZTsgaXQgbWVhbnMgdGhhdCB5b3UgZG9uJ3Qg
aGF2ZSB0byBjYXB0dXJlIGl0IGlmIHlvdSBkb24ndCB3YW50IHRvLgogICAgIFByb2NlZHVyZSYg
cHJvYygpIGNvbnN0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3dpdGNoVmFs
dWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N3aXRjaFZh
bHVlLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
U3dpdGNoVmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNywzMCArMzcsNjkgQEAgU3dpdGNo
VmFsdWU6On5Td2l0Y2hWYWx1ZSgpCiB7CiB9CiAKLVN3aXRjaENhc2UgU3dpdGNoVmFsdWU6OnJl
bW92ZUNhc2UodW5zaWduZWQgaW5kZXgpCitTd2l0Y2hDYXNlIFN3aXRjaFZhbHVlOjpyZW1vdmVD
YXNlKEJhc2ljQmxvY2sqIGJsb2NrLCB1bnNpZ25lZCBpbmRleCkKIHsKLSAgICBGcmVxdWVudGVk
QmxvY2sgcmVzdWx0QmxvY2sgPSBtX3N1Y2Nlc3NvcnNbaW5kZXhdOworICAgIEZyZXF1ZW50ZWRC
bG9jayByZXN1bHRCbG9jayA9IGJsb2NrLT5zdWNjZXNzb3IoaW5kZXgpOwogICAgIGludDY0X3Qg
cmVzdWx0VmFsdWUgPSBtX3ZhbHVlc1tpbmRleF07Ci0gICAgbV9zdWNjZXNzb3JzW2luZGV4XSA9
IG1fc3VjY2Vzc29ycy5sYXN0KCk7Ci0gICAgbV9zdWNjZXNzb3JzLnJlbW92ZUxhc3QoKTsKKyAg
ICBibG9jay0+c3VjY2Vzc29yKGluZGV4KSA9IGJsb2NrLT5zdWNjZXNzb3JzKCkubGFzdCgpOwor
ICAgIGJsb2NrLT5zdWNjZXNzb3JzKCkucmVtb3ZlTGFzdCgpOwogICAgIG1fdmFsdWVzW2luZGV4
XSA9IG1fdmFsdWVzLmxhc3QoKTsKICAgICBtX3ZhbHVlcy5yZW1vdmVMYXN0KCk7CiAgICAgcmV0
dXJuIFN3aXRjaENhc2UocmVzdWx0VmFsdWUsIHJlc3VsdEJsb2NrKTsKIH0KIAotdm9pZCBTd2l0
Y2hWYWx1ZTo6YXBwZW5kQ2FzZShjb25zdCBTd2l0Y2hDYXNlJiBzd2l0Y2hDYXNlKQordm9pZCBT
d2l0Y2hWYWx1ZTo6c2V0RmFsbHRocm91Z2goQmFzaWNCbG9jayogYmxvY2ssIGNvbnN0IEZyZXF1
ZW50ZWRCbG9jayYgdGFyZ2V0KQogewotICAgIG1fc3VjY2Vzc29ycy5hcHBlbmQobV9zdWNjZXNz
b3JzLmxhc3QoKSk7Ci0gICAgbV9zdWNjZXNzb3JzW21fc3VjY2Vzc29ycy5zaXplKCkgLSAyXSA9
IHN3aXRjaENhc2UudGFyZ2V0KCk7CisgICAgdW5zaWduZWQgbnVtU3VjY2Vzc29ycyA9IGJsb2Nr
LT5udW1TdWNjZXNzb3JzKCk7CisgICAgdW5zaWduZWQgbnVtVmFsdWVzID0gbV92YWx1ZXMuc2l6
ZSgpOworICAgIFJFTEVBU0VfQVNTRVJUKHZhbHVlcyA9PSBudW1TdWNjZXNzb3JzIHx8IHZhbHVl
cyArIDEgPT0gbnVtU3VjY2Vzc29ycyk7CisgICAgCisgICAgaWYgKHZhbHVlcyA9PSBudW1TdWNj
ZXNzb3JzKQorICAgICAgICBibG9jay0+c3VjY2Vzc29ycygpLmFwcGVuZChzd2l0Y2hDYXNlLnRh
cmdldCgpKTsKKyAgICBlbHNlCisgICAgICAgIGJsb2NrLT5zdWNjZXNzb3JzKCkubGFzdCgpID0g
c3dpdGNoQ2FzZS50YXJnZXQoKTsKK30KKwordm9pZCBTd2l0Y2hWYWx1ZTo6YXBwZW5kQ2FzZShC
YXNpY0Jsb2NrKiBibG9jaywgY29uc3QgU3dpdGNoQ2FzZSYgc3dpdGNoQ2FzZSkKK3sKKyAgICB1
bnNpZ25lZCBudW1TdWNjZXNzb3JzID0gYmxvY2stPm51bVN1Y2Nlc3NvcnMoKTsKKyAgICB1bnNp
Z25lZCBudW1WYWx1ZXMgPSBtX3ZhbHVlcy5zaXplKCk7CisgICAgUkVMRUFTRV9BU1NFUlQodmFs
dWVzID09IG51bVN1Y2Nlc3NvcnMgfHwgdmFsdWVzICsgMSA9PSBudW1TdWNjZXNzb3JzKTsKKyAg
ICAKKyAgICBpZiAodmFsdWVzID09IG51bVN1Y2Nlc3NvcnMpCisgICAgICAgIGJsb2NrLT5zdWNj
ZXNzb3JzKCkuYXBwZW5kKHN3aXRjaENhc2UudGFyZ2V0KCkpOworICAgIGVsc2UgeworICAgICAg
ICBibG9jay0+c3VjY2Vzc29ycygpLmFwcGVuZChibG9jay0+c3VjY2Vzc29ycygpLmxhc3QoKSk7
CisgICAgICAgIGJsb2NrLT5zdWNjZXNzb3IoYmxvY2stPm51bVN1Y2Nlc3NvcnMoKSAtIDIpID0g
c3dpdGNoQ2FzZS50YXJnZXQoKTsKKyAgICB9CiAgICAgbV92YWx1ZXMuYXBwZW5kKHN3aXRjaENh
c2UuY2FzZVZhbHVlKCkpOwogfQogCit2b2lkIFN3aXRjaFZhbHVlOjpzZXRGYWxsdGhyb3VnaChj
b25zdCBGcmVxdWVudGVkQmxvY2smIHRhcmdldCkKK3sKKyAgICBzZXRGYWxsdGhyb3VnaChvd25l
ciwgdGFyZ2V0KTsKK30KKwordm9pZCBTd2l0Y2hWYWx1ZTo6YXBwZW5kQ2FzZShjb25zdCBTd2l0
Y2hDYXNlJiBzd2l0Y2hDYXNlKQoreworICAgIGFwcGVuZENhc2Uob3duZXIsIHN3aXRjaENhc2Up
OworfQorCit2b2lkIFN3aXRjaFZhbHVlOjpkdW1wU3VjY2Vzc29ycyhCYXNpY0Jsb2NrKiBibG9j
aywgUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKK3sKKyAgICAvLyBXZSBtdXN0IG5vdCBjcmFzaCBk
dWUgdG8gYSBudW1iZXItb2Ytc3VjY2Vzc29ycyBtaXNtYXRjaCEgU29tZW9uZSBkZWJ1Z2dpbmcg
YQorICAgIC8vIG51bWJlci1vZi1zdWNjZXNzb3JzIGJ1ZyB3aWxsIHdhbnQgdG8gZHVtcCBJUiEK
KyAgICBpZiAobnVtQ2FzZVZhbHVlcygpICsgMSAhPSBibG9jay0+bnVtU3VjY2Vzc29ycygpKSB7
CisgICAgICAgIFZhbHVlOjpkdW1wU3VjY2Vzc29ycyhibG9jaywgb3V0KTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICAKKyAgICBvdXQucHJpbnQoY2FzZXMoYmxvY2spKTsKK30KKwogdm9p
ZCBTd2l0Y2hWYWx1ZTo6ZHVtcE1ldGEoQ29tbWFQcmludGVyJiBjb21tYSwgUHJpbnRTdHJlYW0m
IG91dCkgY29uc3QKIHsKLSAgICAvLyBUaGlzIGRlc3RydWN0aXZlbHkgb3ZlcnJpZGVzIENvbnRy
b2xWYWx1ZSdzIGR1bXBNZXRhKCkuCi0gICAgZm9yIChTd2l0Y2hDYXNlIHN3aXRjaENhc2UgOiAq
dGhpcykKLSAgICAgICAgb3V0LnByaW50KGNvbW1hLCBzd2l0Y2hDYXNlKTsKLSAgICBvdXQucHJp
bnQoY29tbWEsICJmYWxsVGhyb3VnaCA9ICIsIGZhbGxUaHJvdWdoKCkpOworICAgIG91dC5wcmlu
dChjb21tYSwgImNhc2VzID0gWyIsIGxpc3REdW1wKG1fdmFsdWVzKSwgIl0iKTsKIH0KIAogVmFs
dWUqIFN3aXRjaFZhbHVlOjpjbG9uZUltcGwoKSBjb25zdApAQCAtNjgsMTAgKzEwNyw5IEBAIFZh
bHVlKiBTd2l0Y2hWYWx1ZTo6Y2xvbmVJbXBsKCkgY29uc3QKICAgICByZXR1cm4gbmV3IFN3aXRj
aFZhbHVlKCp0aGlzKTsKIH0KIAotU3dpdGNoVmFsdWU6OlN3aXRjaFZhbHVlKE9yaWdpbiBvcmln
aW4sIFZhbHVlKiBjaGlsZCwgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBmYWxsVGhyb3VnaCkKLSAg
ICA6IENvbnRyb2xWYWx1ZShTd2l0Y2gsIFZvaWQsIG9yaWdpbiwgY2hpbGQpCitTd2l0Y2hWYWx1
ZTo6U3dpdGNoVmFsdWUoT3JpZ2luIG9yaWdpbiwgVmFsdWUqIGNoaWxkKQorICAgIDogVmFsdWUo
Q2hlY2tlZE9wY29kZSwgU3dpdGNoLCBWb2lkLCBvcmlnaW4sIGNoaWxkKQogewotICAgIG1fc3Vj
Y2Vzc29ycy5hcHBlbmQoZmFsbFRocm91Z2gpOwogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6
QjMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N3aXRjaFZhbHVlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3dpdGNoVmFsdWUuaAkocmV2aXNp
b24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3dpdGNoVmFsdWUuaAko
d29ya2luZyBjb3B5KQpAQCAtMjgsMTIgKzI4LDEzIEBACiAKICNpZiBFTkFCTEUoQjNfSklUKQog
Ci0jaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKKyNpbmNsdWRlICJCM0Nhc2VDb2xsZWN0aW9u
LmgiCiAjaW5jbHVkZSAiQjNTd2l0Y2hDYXNlLmgiCisjaW5jbHVkZSAiQjNWYWx1ZS5oIgogCiBu
YW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIAotY2xhc3MgU3dpdGNoVmFsdWUgOiBwdWJs
aWMgQ29udHJvbFZhbHVlIHsKK2NsYXNzIFN3aXRjaFZhbHVlIDogcHVibGljIFZhbHVlIHsKIHB1
YmxpYzoKICAgICBzdGF0aWMgYm9vbCBhY2NlcHRzKE9wY29kZSBvcGNvZGUpIHsgcmV0dXJuIG9w
Y29kZSA9PSBTd2l0Y2g7IH0KIApAQCAtNDcsNzIgKzQ4LDIzIEBAIHB1YmxpYzoKICAgICAKICAg
ICBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGNhc2VWYWx1ZXMoKSBjb25zdCB7IHJldHVybiBtX3Zh
bHVlczsgfQogCi0gICAgRnJlcXVlbnRlZEJsb2NrIGZhbGxUaHJvdWdoKCkgY29uc3QgeyByZXR1
cm4gc3VjY2Vzc29ycygpLmxhc3QoKTsgfQotICAgIEZyZXF1ZW50ZWRCbG9jayYgZmFsbFRocm91
Z2goKSB7IHJldHVybiBzdWNjZXNzb3JzKCkubGFzdCgpOyB9Ci0KLSAgICB1bnNpZ25lZCBzaXpl
KCkgY29uc3QgeyByZXR1cm4gbnVtQ2FzZVZhbHVlcygpOyB9Ci0gICAgU3dpdGNoQ2FzZSBhdCh1
bnNpZ25lZCBpbmRleCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBTd2l0Y2hDYXNlKGNh
c2VWYWx1ZShpbmRleCksIHN1Y2Nlc3NvcihpbmRleCkpOwotICAgIH0KLSAgICBTd2l0Y2hDYXNl
IG9wZXJhdG9yW10odW5zaWduZWQgaW5kZXgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4g
YXQoaW5kZXgpOwotICAgIH0KLQotICAgIGNsYXNzIGl0ZXJhdG9yIHsKLSAgICBwdWJsaWM6Ci0g
ICAgICAgIGl0ZXJhdG9yKCkKLSAgICAgICAgICAgIDogbV9zd2l0Y2gobnVsbHB0cikKLSAgICAg
ICAgICAgICwgbV9pbmRleCgwKQotICAgICAgICB7Ci0gICAgICAgIH0KLQotICAgICAgICBpdGVy
YXRvcihjb25zdCBTd2l0Y2hWYWx1ZSYgc3dpdGNoVmFsdWUsIHVuc2lnbmVkIGluZGV4KQotICAg
ICAgICAgICAgOiBtX3N3aXRjaCgmc3dpdGNoVmFsdWUpCi0gICAgICAgICAgICAsIG1faW5kZXgo
aW5kZXgpCi0gICAgICAgIHsKLSAgICAgICAgfQotCi0gICAgICAgIFN3aXRjaENhc2Ugb3BlcmF0
b3IqKCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG1fc3dpdGNoLT5hdChtX2luZGV4
KTsKLSAgICAgICAgfQotCi0gICAgICAgIGl0ZXJhdG9yJiBvcGVyYXRvcisrKCkKLSAgICAgICAg
ewotICAgICAgICAgICAgbV9pbmRleCsrOwotICAgICAgICAgICAgcmV0dXJuICp0aGlzOwotICAg
ICAgICB9Ci0KLSAgICAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IGl0ZXJhdG9yJiBvdGhlcikg
Y29uc3QKLSAgICAgICAgewotICAgICAgICAgICAgQVNTRVJUKG1fc3dpdGNoID09IG90aGVyLm1f
c3dpdGNoKTsKLSAgICAgICAgICAgIHJldHVybiBtX2luZGV4ID09IG90aGVyLm1faW5kZXg7Ci0g
ICAgICAgIH0KLQotICAgICAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgaXRlcmF0b3ImIG90aGVy
KSBjb25zdAotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7
Ci0gICAgICAgIH0KLQotICAgIHByaXZhdGU6Ci0gICAgICAgIGNvbnN0IFN3aXRjaFZhbHVlKiBt
X3N3aXRjaDsKLSAgICAgICAgdW5zaWduZWQgbV9pbmRleDsKLSAgICB9OwotCi0gICAgdHlwZWRl
ZiBpdGVyYXRvciBjb25zdF9pdGVyYXRvcjsKLQotICAgIGl0ZXJhdG9yIGJlZ2luKCkgY29uc3Qg
eyByZXR1cm4gaXRlcmF0b3IoKnRoaXMsIDApOyB9Ci0gICAgaXRlcmF0b3IgZW5kKCkgY29uc3Qg
eyByZXR1cm4gaXRlcmF0b3IoKnRoaXMsIHNpemUoKSk7IH0KKyAgICBDYXNlQ29sbGVjdGlvbiBj
YXNlcyhCYXNpY0Jsb2NrKiBvd25lcikgY29uc3QgeyByZXR1cm4gQ2FzZUNvbGxlY3Rpb24odGhp
cywgb3duZXIpOyB9CisgICAgQ2FzZUNvbGxlY3Rpb24gY2FzZXMoKSBjb25zdCB7IHJldHVybiBj
YXNlcyhvd25lcik7IH0KIAogICAgIC8vIFRoaXMgcmVtb3ZlcyB0aGUgY2FzZSBhbmQgcmVvcmRl
cnMgdGhpbmdzIGEgYml0LiBJZiB5b3UncmUgaXRlcmF0aW5nIHRoZSBjYXNlcyBmcm9tIDAgdG8g
TiwKICAgICAvLyB0aGVuIHlvdSBjYW4ga2VlcCBpdGVyYXRpbmcgYWZ0ZXIgdGhpcyBzbyBsb25n
IGFzIHlvdSByZXZpc2l0IHRoaXMgc2FtZSBpbmRleCAod2hpY2ggd2lsbCBub3cKICAgICAvLyBj
b250YWluIHNvbWUgb3RoZXIgY2FzZSB2YWx1ZSkuIFRoaXMgcmVtb3ZlcyB0aGUgY2FzZSB0aGF0
IHdhcyByZW1vdmVkLgotICAgIFN3aXRjaENhc2UgcmVtb3ZlQ2FzZSh1bnNpZ25lZCBpbmRleCk7
CisgICAgU3dpdGNoQ2FzZSByZW1vdmVDYXNlKEJhc2ljQmxvY2sqLCB1bnNpZ25lZCBpbmRleCk7
CiAKKyAgICAvLyBUaGVzZSB0d28gZnVuY3Rpb25zIGNhbiBiZSBjYWxsZWQgaW4gYW55IG9yZGVy
LgorICAgIHZvaWQgc2V0RmFsbHRocm91Z2goQmFzaWNCbG9jayosIGNvbnN0IEZyZXF1ZW50ZWRC
bG9jayYpOworICAgIHZvaWQgYXBwZW5kQ2FzZShCYXNpY0Jsb2NrKiwgY29uc3QgU3dpdGNoQ2Fz
ZSYpOworICAgIAorICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgc2V0RmFsbHRocm91Z2goY29u
c3QgRnJlcXVlbnRlZEJsb2NrJik7CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBhcHBlbmRD
YXNlKGNvbnN0IFN3aXRjaENhc2UmKTsKIAorICAgIHZvaWQgZHVtcFN1Y2Nlc3NvcnMoQmFzaWNC
bG9jayosIFByaW50U3RyZWFtJikgY29uc3Qgb3ZlcnJpZGU7CisKIHByb3RlY3RlZDoKICAgICB2
b2lkIGR1bXBNZXRhKENvbW1hUHJpbnRlciYsIFByaW50U3RyZWFtJikgY29uc3Qgb3ZlcnJpZGU7
CiAKQEAgLTEyMSw3ICs3Myw3IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNs
YXNzIFByb2NlZHVyZTsKIAotICAgIEpTX0VYUE9SVF9QUklWQVRFIFN3aXRjaFZhbHVlKE9yaWdp
biwgVmFsdWUqIGNoaWxkLCBjb25zdCBGcmVxdWVudGVkQmxvY2smIGZhbGxUaHJvdWdoKTsKKyAg
ICBKU19FWFBPUlRfUFJJVkFURSBTd2l0Y2hWYWx1ZShPcmlnaW4sIFZhbHVlKiBjaGlsZCk7CiAK
ICAgICBWZWN0b3I8aW50NjRfdD4gbV92YWx1ZXM7CiB9OwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzVmFsaWRhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM1ZhbGlkYXRlLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzVmFsaWRhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDcsOCArMTA3
LDggQEAgcHVibGljOgogICAgICAgICBmb3IgKEJhc2ljQmxvY2sqIGJsb2NrIDogYmxvY2tzKSB7
CiAgICAgICAgICAgICBWQUxJREFURShibG9jay0+c2l6ZSgpID49IDEsICgiQXQgIiwgKmJsb2Nr
KSk7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYmxvY2stPnNpemUoKSAt
IDE7ICsraSkKLSAgICAgICAgICAgICAgICBWQUxJREFURSghQ29udHJvbFZhbHVlOjphY2NlcHRz
KGJsb2NrLT5hdChpKS0+b3Bjb2RlKCkpLCAoIkF0ICIsICpibG9jay0+YXQoaSkpKTsKLSAgICAg
ICAgICAgIFZBTElEQVRFKENvbnRyb2xWYWx1ZTo6YWNjZXB0cyhibG9jay0+bGFzdCgpLT5vcGNv
ZGUoKSksICgiQXQgIiwgKmJsb2NrLT5sYXN0KCkpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFU
RSghYmxvY2stPmF0KGkpLT5lZmZlY3RzKCkudGVybWluYWwsICgiQXQgIiwgKmJsb2NrLT5hdChp
KSkpOworICAgICAgICAgICAgVkFMSURBVEUoYmxvY2stPmxhc3QoKS0+ZWZmZWN0cygpLnRlcm1p
bmFsLCAoIkF0ICIsICpibG9jay0+bGFzdCgpKSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAg
IGZvciAoQmFzaWNCbG9jayogc3VjY2Vzc29yIDogYmxvY2stPnN1Y2Nlc3NvckJsb2NrcygpKSB7
CiAgICAgICAgICAgICAgICAgYWxsUHJlZGVjZXNzb3JzLmFkZChzdWNjZXNzb3IsIEhhc2hTZXQ8
QmFzaWNCbG9jayo+KCkpLml0ZXJhdG9yLT52YWx1ZS5hZGQoYmxvY2spOwpAQCAtMTI5LDggKzEy
OSw2IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICBWQUxJREFURShjaGlsZC0+dHlwZSgpICE9
IFZvaWQsICgiQXQgIiwgKnZhbHVlLCAiLT4iLCAqY2hpbGQpKTsKICAgICAgICAgICAgIHN3aXRj
aCAodmFsdWUtPm9wY29kZSgpKSB7CiAgICAgICAgICAgICBjYXNlIE5vcDoKLSAgICAgICAgICAg
IGNhc2UgSnVtcDoKLSAgICAgICAgICAgIGNhc2UgT29wczoKICAgICAgICAgICAgICAgICBWQUxJ
REFURSghdmFsdWUtPm51bUNoaWxkcmVuKCksICgiQXQgIiwgKnZhbHVlKSk7CiAgICAgICAgICAg
ICAgICAgVkFMSURBVEUodmFsdWUtPnR5cGUoKSA9PSBWb2lkLCAoIkF0ICIsICp2YWx1ZSkpOwog
ICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzc3LDE1ICszNzUsMzIgQEAgcHVibGljOgogICAg
ICAgICAgICAgICAgIFZBTElEQVRFKCF2YWx1ZS0+bnVtQ2hpbGRyZW4oKSwgKCJBdCAiLCAqdmFs
dWUpKTsKICAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+dHlwZSgpICE9IFZvaWQsICgi
QXQgIiwgKnZhbHVlKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNl
IEp1bXA6CisgICAgICAgICAgICAgICAgVkFMSURBVEUoIXZhbHVlLT5udW1DaGlsZHJlbigpLCAo
IkF0ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkg
PT0gVm9pZCwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1
ZU93bmVyLmdldCh2YWx1ZSktPm51bVN1Y2Nlc3NvcnMoKSA9PSAxKTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgT29wczoKKyAgICAgICAgICAgICAgICBWQUxJREFU
RSghdmFsdWUtPm51bUNoaWxkcmVuKCksICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAg
ICAgVkFMSURBVEUodmFsdWUtPnR5cGUoKSA9PSBWb2lkLCAoIkF0ICIsICp2YWx1ZSkpOworICAg
ICAgICAgICAgICAgIFZBTElEQVRFKCF2YWx1ZU93bmVyLmdldCh2YWx1ZSktPm51bVN1Y2Nlc3Nv
cnMoKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIFJldHVybjoK
ICAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+bnVtQ2hpbGRyZW4oKSA9PSAxLCAoIkF0
ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgPT0g
Vm9pZCwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFURSghdmFsdWVP
d25lci5nZXQodmFsdWUpLT5udW1TdWNjZXNzb3JzKCkpOwogICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgY2FzZSBCcmFuY2g6CisgICAgICAgICAgICAgICAgVkFMSURBVEUodmFs
dWUtPm51bUNoaWxkcmVuKCkgPT0gMSwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAg
ICBWQUxJREFURShpc0ludCh2YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSksICgiQXQgIiwgKnZhbHVl
KSk7CisgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPnR5cGUoKSA9PSBWb2lkLCAoIkF0
ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlT3duZXIuZ2V0KHZh
bHVlKS0+bnVtU3VjY2Vzc29ycygpID09IDIpOworICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgY2FzZSBTd2l0Y2g6CiAgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPm51
bUNoaWxkcmVuKCkgPT0gMSwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAgICBWQUxJ
REFURShpc0ludCh2YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSksICgiQXQgIiwgKnZhbHVlKSk7CiAg
ICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPnR5cGUoKSA9PSBWb2lkLCAoIkF0ICIsICp2
YWx1ZSkpOworICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlT3duZXIuZ2V0KHZhbHVlKS0+
bnVtU3VjY2Vzc29ycygpID09IHZhbHVlLT5hczxTd2l0Y2hWYWx1ZT4oKS0+bnVtQ2FzZVZhbHVl
cygpICsgMSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEs
NyArMzEsNiBAQAogI2luY2x1ZGUgIkIzQXJndW1lbnRSZWdWYWx1ZS5oIgogI2luY2x1ZGUgIkIz
Qm90dG9tUHJvdmlkZXIuaCIKICNpbmNsdWRlICJCM0NDYWxsVmFsdWUuaCIKLSNpbmNsdWRlICJC
M0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzTWVtb3J5VmFsdWUuaCIKICNpbmNsdWRlICJC
M09yaWdpbkR1bXAuaCIKICNpbmNsdWRlICJCM1Byb2NlZHVyZUlubGluZXMuaCIKQEAgLTEyNSw2
ICsxMjQsNTAgQEAgdm9pZCBWYWx1ZTo6cmVwbGFjZVdpdGhQaGkoKQogICAgIHRoaXMtPm1faW5k
ZXggPSBpbmRleDsKIH0KIAordm9pZCBWYWx1ZTo6cmVwbGFjZVdpdGhKdW1wKEJhc2ljQmxvY2sq
IG93bmVyLCBjb25zdCBGcmVxdWVudGVkQmxvY2smIHRhcmdldCkKK3sKKyAgICBSRUxFQVNFX0FT
U0VSVChvd25lci0+bGFzdCgpID09IHRoaXMpOworICAgIAorICAgIHVuc2lnbmVkIGluZGV4ID0g
bV9pbmRleDsKKyAgICBPcmlnaW4gb3JpZ2luID0gbV9vcmlnaW47CisgICAgCisgICAgdGhpcy0+
flZhbHVlKCk7CisgICAgCisgICAgbmV3ICh0aGlzKSBWYWx1ZShKdW1wLCBWb2lkLCBvcmlnaW4p
OworICAgIAorICAgIHRoaXMtPm93bmVyID0gb3duZXI7CisgICAgdGhpcy0+bV9pbmRleCA9IGlu
ZGV4OworICAgIAorICAgIG93bmVyLT5zZXRTdWNjZXNzb3JzKHRhcmdldCk7Cit9CisKK3ZvaWQg
VmFsdWU6OnJlcGxhY2VXaXRoT29wcyhCYXNpY0Jsb2NrKiBvd25lcikKK3sKKyAgICBSRUxFQVNF
X0FTU0VSVChvd25lci0+bGFzdCgpID09IHRoaXMpOworICAgIAorICAgIHVuc2lnbmVkIGluZGV4
ID0gbV9pbmRleDsKKyAgICBPcmlnaW4gb3JpZ2luID0gbV9vcmlnaW47CisgICAgCisgICAgdGhp
cy0+flZhbHVlKCk7CisgICAgCisgICAgbmV3ICh0aGlzKSBWYWx1ZShPb3BzLCBWb2lkLCBvcmln
aW4pOworICAgIAorICAgIHRoaXMtPm93bmVyID0gb3duZXI7CisgICAgdGhpcy0+bV9pbmRleCA9
IGluZGV4OworICAgIAorICAgIG93bmVyLT5jbGVhclN1Y2Nlc3NvcnMoKTsKK30KKwordm9pZCBW
YWx1ZTo6cmVwbGFjZVdpdGhKdW1wKGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgdGFyZ2V0KQorewor
ICAgIHJlcGxhY2VXaXRoSnVtcChvd25lciwgdGFyZ2V0KTsKK30KKwordm9pZCBWYWx1ZTo6cmVw
bGFjZVdpdGhPb3BzKCkKK3sKKyAgICByZXBsYWNlV2l0aE9vcHMob3duZXIpOworfQorCiB2b2lk
IFZhbHVlOjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiB7CiAgICAgYm9vbCBpc0NvbnN0
YW50ID0gZmFsc2U7CkBAIC0xODksNiArMjMyLDE5IEBAIHZvaWQgVmFsdWU6OmRlZXBEdW1wKGNv
bnN0IFByb2NlZHVyZSogcHIKICAgICBvdXQucHJpbnQoIikiKTsKIH0KIAordm9pZCBWYWx1ZTo6
ZHVtcFN1Y2Nlc3NvcnMoQmFzaWNCbG9jayogYmxvY2ssIFByaW50U3RyZWFtJiBvdXQpIGNvbnN0
Cit7CisgICAgLy8gTm90ZSB0aGF0IHRoaXMgbXVzdCBub3QgY3Jhc2ggaWYgd2UgaGF2ZSB0aGUg
d3JvbmcgbnVtYmVyIG9mIHN1Y2Nlc3NvcnMsIHNpbmNlIHNvbWVvbmUKKyAgICAvLyBkZWJ1Z2dp
bmcgYSBudW1iZXItb2Ytc3VjY2Vzc29ycyBidWcgd2lsbCBwcm9iYWJseSB3YW50IHRvIGR1bXAg
SVIhCisgICAgCisgICAgaWYgKG9wY29kZSgpID09IEJyYW5jaCAmJiBibG9jay0+bnVtU3VjY2Vz
c29ycygpID09IDIpIHsKKyAgICAgICAgb3V0LnByaW50KCJUaGVuOiIsIGJsb2NrLT50YWtlbigp
LCAiLCBFbHNlOiIsIGJsb2NrLT5ub3RUYWtlbigpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICAKKyAgICBvdXQucHJpbnQobGlzdER1bXAoYmxvY2stPnN1Y2Nlc3NvcnMoKSkpOworfQor
CiBWYWx1ZSogVmFsdWU6Om5lZ0NvbnN0YW50KFByb2NlZHVyZSYpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIG51bGxwdHI7CkBAIC01NTIsNiArNjA4LDcgQEAgRWZmZWN0cyBWYWx1ZTo6ZWZmZWN0cygp
IGNvbnN0CiAgICAgY2FzZSBKdW1wOgogICAgIGNhc2UgQnJhbmNoOgogICAgIGNhc2UgU3dpdGNo
OgorICAgIGNhc2UgUG9seUp1bXA6CiAgICAgY2FzZSBSZXR1cm46CiAgICAgY2FzZSBPb3BzOgog
ICAgICAgICByZXN1bHQudGVybWluYWwgPSB0cnVlOwpAQCAtNzEzLDYgKzc3MCwxMCBAQCBUeXBl
IFZhbHVlOjp0eXBlRm9yKE9wY29kZSBvcGNvZGUsIFZhbHVlCiAgICAgICAgIH0KICAgICAgICAg
cmV0dXJuIFZvaWQ7CiAgICAgY2FzZSBOb3A6CisgICAgY2FzZSBKdW1wOgorICAgIGNhc2UgQnJh
bmNoOgorICAgIGNhc2UgUmV0dXJuOgorICAgIGNhc2UgT29wczoKICAgICAgICAgcmV0dXJuIFZv
aWQ7CiAgICAgY2FzZSBTZWxlY3Q6CiAgICAgICAgIEFTU0VSVChzZWNvbmRDaGlsZCk7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwOSw5ICsx
MDksMTkgQEAgcHVibGljOgogICAgIHZvaWQgcmVwbGFjZVdpdGhOb3BJZ25vcmluZ1R5cGUoKTsK
ICAgICAKICAgICB2b2lkIHJlcGxhY2VXaXRoUGhpKCk7CisgICAgCisgICAgLy8gVGhlc2UgdHJh
bnNmb3JtYXRpb25zIGFyZSBvbmx5IHZhbGlkIGZvciB0ZXJtaW5hbHMuCisgICAgdm9pZCByZXBs
YWNlV2l0aEp1bXAoQmFzaWNCbG9jayogb3duZXIsIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYpOwor
ICAgIHZvaWQgcmVwbGFjZVdpdGhPb3BzKEJhc2ljQmxvY2sqIG93bmVyKTsKKyAgICAKKyAgICAv
LyBZb3UgY2FuIHVzZSB0aGlzIGZvcm0gaWYgb3duZXJzIGFyZSB2YWxpZC4gVGhleSdyZSB1c3Vh
bGx5IG5vdCB2YWxpZC4KKyAgICB2b2lkIHJlcGxhY2VXaXRoSnVtcChjb25zdCBGcmVxdWVudGVk
QmxvY2smKTsKKyAgICB2b2lkIHJlcGxhY2VXaXRoT29wcygpOwogCiAgICAgdm9pZCBkdW1wKFBy
aW50U3RyZWFtJikgY29uc3Q7CiAgICAgdm9pZCBkZWVwRHVtcChjb25zdCBQcm9jZWR1cmUqLCBQ
cmludFN0cmVhbSYpIGNvbnN0OworICAgIAorICAgIHZpcnR1YWwgdm9pZCBkdW1wU3VjY2Vzc29y
cyhCYXNpY0Jsb2NrKiwgUHJpbnRTdHJlYW0mKSBjb25zdDsKIAogICAgIC8vIFRoaXMgaXMgaG93
IHlvdSBjYXN0IFZhbHVlcy4gRm9yIGV4YW1wbGUsIGlmIHlvdSB3YW50IHRvIGRvIHNvbWV0aGlu
ZyBwcm92aWRlZCB0aGF0IHdlIGhhdmUgYQogICAgIC8vIEFyZ3VtZW50UmVnVmFsdWUsIHlvdSBj
YW4gZG86CkBAIC0yMjMsNyArMjMzLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNMaWtlTm9uWmVy
bygpIGNvbnN0IHsgcmV0dXJuIGFzVHJpU3RhdGUoKSA9PSBUcnVlVHJpU3RhdGU7IH0KIAogICAg
IEVmZmVjdHMgZWZmZWN0cygpIGNvbnN0OwotCisgICAgCiAgICAgLy8gVGhpcyByZXR1cm5zIGEg
VmFsdWVLZXkgdGhhdCBkZXNjcmliZXMgdGhhdCB0aGlzIFZhbHVlIHJldHVybnMgd2hlbiBpdCBl
eGVjdXRlcy4gUmV0dXJucyBhbgogICAgIC8vIGVtcHR5IFZhbHVlS2V5IGlmIHRoaXMgVmFsdWUg
aXMgaW1wdXJlLiBOb3RlIHRoYXQgYW4gb3BlcmF0aW9uIHRoYXQgcmV0dXJucyBWb2lkIGNvdWxk
IHN0aWxsCiAgICAgLy8gaGF2ZSBhIG5vbi1lbXB0eSBWYWx1ZUtleS4gVGhpcyBoYXBwZW5zIGZv
ciBleGFtcGxlIHdpdGggQ2hlY2sgb3BlcmF0aW9ucy4KQEAgLTI2NCw2ICsyNzQsOCBAQCBwcml2
YXRlOgogICAgICAgICBjYXNlIEZyYW1lUG9pbnRlcjoKICAgICAgICAgY2FzZSBOb3A6CiAgICAg
ICAgIGNhc2UgUGhpOgorICAgICAgICBjYXNlIEp1bXA6CisgICAgICAgIGNhc2UgT29wczoKICAg
ICAgICAgICAgIGlmIChVTkxJS0VMWShudW1BcmdzKSkKICAgICAgICAgICAgICAgICBiYWRPcGNv
ZGUob3Bjb2RlLCBudW1BcmdzKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjg0LDYgKzI5Niw4
IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgRG91YmxlVG9GbG9hdDoKICAgICAgICAgY2FzZSBJ
VG9GOgogICAgICAgICBjYXNlIEJpdHdpc2VDYXN0OgorICAgICAgICBjYXNlIEJyYW5jaDoKKyAg
ICAgICAgY2FzZSBSZXR1cm46CiAgICAgICAgICAgICBpZiAoVU5MSUtFTFkobnVtQXJncyAhPSAx
KSkKICAgICAgICAgICAgICAgICBiYWRPcGNvZGUob3Bjb2RlLCBudW1BcmdzKTsKICAgICAgICAg
ICAgIGJyZWFrOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAJKHJldmlzaW9u
IDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMyw4ICszMyw4IEBACiAjaW5jbHVkZSAiQjNDb21wdXRlRGl2aXNpb25NYWdp
Yy5oIgogI2luY2x1ZGUgIkIzQ29uc3QzMlZhbHVlLmgiCiAjaW5jbHVkZSAiQjNDb25zdFB0clZh
bHVlLmgiCi0jaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKICNpbmNsdWRlICJCM0VmZmVjdHMu
aCIKKyNpbmNsdWRlICJCM1BvbHlKdW1wVmFsdWUuaCIKICNpbmNsdWRlICJCM01hdGhFeHRyYXMu
aCIKICNpbmNsdWRlICJCM01lbW9yeVZhbHVlLmgiCiAjaW5jbHVkZSAiQjNQcm9jZWR1cmUuaCIK
QEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJCM1Vwc2lsb25WYWx1ZS5oIgogI2luY2x1ZGUg
IkIzVmFsaWRhdGUuaCIKICNpbmNsdWRlICJCM1ZhbHVlSW5saW5lcy5oIgorI2luY2x1ZGUgIkIz
VmFyaWFibGVWYWx1ZS5oIgogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgogI2luY2x1ZGUgIklu
aXRpYWxpemVUaHJlYWRpbmcuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCkBAIC01NCw2ICs1
NSw3IEBACiAjaW5jbHVkZSAiVk0uaCIKICNpbmNsdWRlIDxjbWF0aD4KICNpbmNsdWRlIDxzdHJp
bmc+CisjaW5jbHVkZSA8d3RmL0xpc3REdW1wLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNp
bmNsdWRlIDx3dGYvTnVtYmVyT2ZDb3Jlcy5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4K
QEAgLTc1LDYgKzc3LDExIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M6OkIzOwogCiBuYW1lc3BhY2Ug
ewogCitib29sIHNob3VsZEJlVmVyYm9zZSgpCit7CisgICAgcmV0dXJuIHNob3VsZER1bXBJUihC
M01vZGUpOworfQorCiBTdGF0aWNMb2NrIGNyYXNoTG9jazsKIAogLy8gTm90aGluZyBmYW5jeSBm
b3Igbm93OyB3ZSBqdXN0IHVzZSB0aGUgZXhpc3RpbmcgV1RGIGFzc2VydGlvbiBtYWNoaW5lcnku
CkBAIC0xOTQsNyArMjAxLDcgQEAgdm9pZCB0ZXN0NDIoKQogICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGNvbnN0
NDIgPSByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IGNvbnN0NDIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBjb25zdDQyKTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9j
KSA9PSA0Mik7CiB9CkBAIC0yMDQsNyArMjExLDcgQEAgdm9pZCB0ZXN0TG9hZDQyKCkKICAgICBQ
cm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwog
ICAgIGludCB4ID0gNDI7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgTG9hZCwgSW50MzIsIE9yaWdpbigpLApAQCAtMjIwLDcgKzIyNyw3IEBAIHZvaWQgdGVz
dExvYWRXaXRoT2Zmc2V0SW1wbChpbnQzMl90IG9mZnMKICAgICAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKICAgICAgICAgaW50NjRfdCB4ID0gLTQyOwogICAgICAgICBW
YWx1ZSogYmFzZSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmRO
ZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIExvYWQsIEludDY0LCBPcmln
aW4oKSwKQEAgLTIzNSw3ICsyNDIsNyBAQCB2b2lkIHRlc3RMb2FkV2l0aE9mZnNldEltcGwoaW50
MzJfdCBvZmZzCiAgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAg
ICAgICAgIGludDMyX3QgeCA9IC00MjsKICAgICAgICAgVmFsdWUqIGJhc2UgPSByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCk7Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAg
ICAgICAgICAgICBwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2luKCksCkBAIC0yODgsNyArMjk1LDcg
QEAgdm9pZCB0ZXN0QXJnKGludCBhcmd1bWVudCkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKIApA
QCAtMjk5LDcgKzMwNiw3IEBAIHZvaWQgdGVzdFJldHVybkNvbnN0NjQoaW50NjRfdCB2YWx1ZSkK
IHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVl
KSk7CiAKQEAgLTMxMSw3ICszMTgsNyBAQCB2b2lkIHRlc3RBZGRBcmcoaW50IGEpCiAgICAgUHJv
Y2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAg
ICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEFkZCwgT3JpZ2luKCksIHZhbHVlLCB2YWx1ZSkpOwogCkBAIC0zMjIsNyArMzI5LDcgQEAg
dm9pZCB0ZXN0QWRkQXJncyhpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAtMzM2LDcgKzM0Myw3IEBA
IHZvaWQgdGVzdEFkZEFyZ0ltbShpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAtMzUwLDcgKzM1Nyw3
IEBAIHZvaWQgdGVzdEFkZEltbUFyZyhpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHBy
b2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAtMzcwLDcgKzM3
Nyw3IEBAIHZvaWQgdGVzdEFkZEFyZ01lbShpbnQ2NF90IGEsIGludDY0X3QgYikKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjApLAogICAgICAgICBsb2FkKTsKICAgICByb290LT5hcHBlbmROZXc8TWVt
b3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBhZGRyZXNzKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgaW50NjRfdCBp
bnB1dE91dHB1dCA9IGI7CiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywg
YSwgJmlucHV0T3V0cHV0KSk7CkBAIC0zODYsNyArMzkzLDcgQEAgdm9pZCB0ZXN0QWRkTWVtQXJn
KGludDY0X3QgYSwgaW50NjRfdCBiKQogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksCiAgICAgICAgIGxvYWQsCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIxKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVB
bmRSdW48aW50NjRfdD4ocHJvYywgJmEsIGIpID09IGEgKyBiKTsKIH0KQEAgLTQwMSw3ICs0MDgs
NyBAQCB2b2lkIHRlc3RBZGRJbW1NZW0oaW50NjRfdCBhLCBpbnQ2NF90IGIpCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKSwKICAgICAgICAg
bG9hZCk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3Jp
Z2luKCksIHJlc3VsdCwgYWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIDApKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDApKTsKIAogICAgIGludDY0X3QgaW5wdXRPdXRwdXQgPSBiOwogICAgIENIRUNL
KCFjb21waWxlQW5kUnVuPGludD4ocHJvYywgJmlucHV0T3V0cHV0KSk7CkBAIC00MTQsNyArNDIx
LDcgQEAgdm9pZCB0ZXN0QWRkQXJnMzIoaW50IGEpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50
UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgdmFsdWUsIHZhbHVlKSk7CiAKQEAg
LTQyNSw3ICs0MzIsNyBAQCB2b2lkIHRlc3RBZGRBcmdzMzIoaW50IGEsIGludCBiKQogewogICAg
IFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwK
QEAgLTQ0OSw3ICs0NTYsNyBAQCB2b2lkIHRlc3RBZGRBcmdNZW0zMihpbnQzMl90IGEsIGludDMy
X3QgCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYXJndW1lbnQsIGxvYWQpOwog
ICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCBy
ZXN1bHQsIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCAwKSk7CiAKICAgICBpbnQzMl90IGlucHV0T3V0cHV0ID0gYjsKICAgICBDSEVDSyghY29tcGls
ZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBhLCAmaW5wdXRPdXRwdXQpKTsKQEAgLTQ2NSw3ICs0NzIs
NyBAQCB2b2lkIHRlc3RBZGRNZW1BcmczMihpbnQzMl90IGEsIGludDMyX3QgCiAgICAgVmFsdWUq
IGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgbG9hZCwgYXJndW1lbnQpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
c3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2Ms
ICZhLCBiKSA9PSBhICsgYik7CiB9CkBAIC00ODAsNyArNDg3LDcgQEAgdm9pZCB0ZXN0QWRkSW1t
TWVtMzIoaW50MzJfdCBhLCBpbnQzMl90IAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSksCiAgICAgICAgIGxvYWQpOwogICAgIHJvb3QtPmFw
cGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGFkZHJl
c3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAg
ICBpbnQzMl90IGlucHV0T3V0cHV0ID0gYjsKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ+
KHByb2MsICZpbnB1dE91dHB1dCkpOwpAQCAtNDk1LDcgKzUwMiw3IEBAIHZvaWQgdGVzdEFkZEFy
Z1plcm9JbW1aRGVmKCkKICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiBjb25zdFplcm8gPSByb290LT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAog
ICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKQEAgLTUxNSw3ICs1MjIsNyBAQCB2b2lk
IHRlc3RBZGRMb2FkVHdpY2UoKQogICAgICAgICBWYWx1ZSogbG9hZCA9IHJvb3QtPmFwcGVuZE5l
dzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2luKCks
CiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksICZ2YWx1ZSkpOwotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
QWRkLCBPcmlnaW4oKSwgbG9hZCwgbG9hZCkpOwogCkBAIC01MzIsNyArNTM5LDcgQEAgdm9pZCB0
ZXN0QWRkQXJnRG91YmxlKGRvdWJsZSBhKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1
bWVudEZQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCB2YWx1
ZSwgdmFsdWUpKTsKIApAQCAtNTQ1LDcgKzU1Miw3IEBAIHZvaWQgdGVzdEFkZEFyZ3NEb3VibGUo
ZG91YmxlIGEsIGRvdWJsZSAKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIHZhbHVl
QiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBS
SW5mbzo6YXJndW1lbnRGUFIxKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmln
aW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtNTU4LDcgKzU2NSw3IEBAIHZvaWQgdGVzdEFk
ZEFyZ0ltbURvdWJsZShkb3VibGUgYSwgZG91YmwKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAg
VmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgYik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIHZh
bHVlQSwgdmFsdWVCKSk7CiAKQEAgLTU3MSw3ICs1NzgsNyBAQCB2b2lkIHRlc3RBZGRJbW1BcmdE
b3VibGUoZG91YmxlIGEsIGRvdWJsCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQ
UjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCB2YWx1ZUEsIHZh
bHVlQikpOwogCkBAIC01ODQsNyArNTkxLDcgQEAgdm9pZCB0ZXN0QWRkSW1tc0RvdWJsZShkb3Vi
bGUgYSwgZG91YmxlIAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAg
ICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxDb25z
dERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEFkZCwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTYwMCw3ICs2MDcsNyBA
QCB2b2lkIHRlc3RBZGRBcmdGbG9hdChmbG9hdCBhKQogICAgIFZhbHVlKiBmbG9hdFZhbHVlID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3Vt
ZW50MzIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEFkZCwgT3JpZ2luKCksIGZsb2F0VmFsdWUsIGZsb2F0VmFsdWUpOwogICAgIFZhbHVlKiByZXN1
bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigp
LCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAKICAgICBDSEVDSyhpc0lkZW50
aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90Pihh
KSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhICsgYSkpKTsKQEAgLTYxOCw3ICs2MjUsNyBAQCB2
b2lkIHRlc3RBZGRBcmdzRmxvYXQoZmxvYXQgYSwgZmxvYXQgYikKICAgICBWYWx1ZSogZmxvYXRW
YWx1ZTIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4o
KSwgYXJndW1lbnQyaW50MzIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGZsb2F0VmFsdWUxLCBmbG9hdFZhbHVlMik7CiAg
ICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNl
Q2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBD
SEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2Fz
dDxpbnQzMl90PihhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KGEgKyBiKSkpOwogfQpAQCAtNjMzLDcgKzY0MCw3IEBAIHZvaWQgdGVzdEFkZEFyZ0lt
bUZsb2F0KGZsb2F0IGEsIGZsb2F0IGIKICAgICBWYWx1ZSogY29uc3RWYWx1ZSA9IHJvb3QtPmFw
cGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKICAgICBWYWx1ZSog
cmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBmbG9h
dFZhbHVlLCBjb25zdFZhbHVlKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQz
Mik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50
MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMy
X3Q+KGEgKyBiKSkpOwogfQpAQCAtNjQ4LDcgKzY1NSw3IEBAIHZvaWQgdGVzdEFkZEltbUFyZ0Zs
b2F0KGZsb2F0IGEsIGZsb2F0IGIKICAgICBWYWx1ZSogY29uc3RWYWx1ZSA9IHJvb3QtPmFwcGVu
ZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogcmVz
dWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBjb25zdFZh
bHVlLCBmbG9hdFZhbHVlKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJf
dD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+
KGEgKyBiKSkpOwogfQpAQCAtNjYxLDcgKzY2OCw3IEBAIHZvaWQgdGVzdEFkZEltbXNGbG9hdChm
bG9hdCBhLCBmbG9hdCBiKQogICAgIFZhbHVlKiBjb25zdFZhbHVlMiA9IHJvb3QtPmFwcGVuZE5l
dzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKICAgICBWYWx1ZSogcmVzdWx0
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBjb25zdFZhbHVl
MSwgY29uc3RWYWx1ZTIpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90
Pihwcm9jKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgKyBiKSkpOwogfQpAQCAtNjc3LDcgKzY4
NCw3IEBAIHZvaWQgdGVzdEFkZEFyZ0Zsb2F0V2l0aFVzZWxlc3NEb3VibGVDb24KICAgICBWYWx1
ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBh
c0RvdWJsZSwgYXNEb3VibGUpOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAg
VmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2Fz
dCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAg
IENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9j
YXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgKyBhKSkpOwogfQpAQCAt
Njk3LDcgKzcwNCw3IEBAIHZvaWQgdGVzdEFkZEFyZ3NGbG9hdFdpdGhVc2VsZXNzRG91YmxlQ28K
ICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9y
aWdpbigpLCBhc0RvdWJsZTEsIGFzRG91YmxlMik7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgcmVz
dWx0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9j
LCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSksIGJp
dHdpc2VfY2FzdDxpbnQzMl90PihhICsgYikpKTsKIH0KQEAgLTcxOSw3ICs3MjYsNyBAQCB2b2lk
IHRlc3RBZGRBcmdzRmxvYXRXaXRoRWZmZWN0ZnVsRG91YmxlCiAgICAgVmFsdWUqIGRvdWJsZUFk
ZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMik7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVl
Pihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgZG91YmxlQWRkcmVzcyk7CiAgICAgVmFs
dWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwg
T3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIGRv
dWJsZSBlZmZlY3QgPSAwOwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50
MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJf
dD4oYiksICZlZmZlY3QpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSArIGIpKSk7CkBAIC03MzIs
NyArNzM5LDcgQEAgdm9pZCB0ZXN0TXVsQXJnKGludCBhKQogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCB2YWx1ZSwgdmFsdWUpKTsK
IApAQCAtNzU5LDcgKzc2Niw3IEBAIHZvaWQgdGVzdE11bEFyZ1N0b3JlKGludCBhKQogICAgICAg
ICBwcm9jLCBTdG9yZSwgT3JpZ2luKCksIG11bCwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENv
bnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAmbXVsU2xvdCkpOwogCi0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50
Pihwcm9jLCBhKSk7CkBAIC03NzQsNyArNzgxLDcgQEAgdm9pZCB0ZXN0TXVsQWRkQXJnKGludCBh
KQogICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgIHBy
b2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAtNzg4LDcg
Kzc5NSw3IEBAIHZvaWQgdGVzdE11bEFyZ3MoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVy
ZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTXVsLCBPcmlnaW4oKSwKQEAgLTgwMiw3
ICs4MDksNyBAQCB2b2lkIHRlc3RNdWxBcmdJbW0oaW50NjRfdCBhLCBpbnQ2NF90IGIpCiB7CiAg
ICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBNdWwsIE9yaWdpbigp
LApAQCAtODE2LDcgKzgyMyw3IEBAIHZvaWQgdGVzdE11bEltbUFyZyhpbnQgYSwgaW50IGIpCiB7
CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBNdWwsIE9yaWdp
bigpLApAQCAtODMwLDcgKzgzNyw3IEBAIHZvaWQgdGVzdE11bEFyZ3MzMihpbnQgYSwgaW50IGIp
CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBNdWwsIE9y
aWdpbigpLApAQCAtODUzLDcgKzg2MCw3IEBAIHZvaWQgdGVzdE11bExvYWRUd2ljZSgpCiAgICAg
ICAgIFZhbHVlKiBsb2FkID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJnZhbHVlKSk7Ci0gICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBsb2FkLCBsb2Fk
KSk7CiAKQEAgLTg3NSw3ICs4ODIsNyBAQCB2b2lkIHRlc3RNdWxBZGRBcmdzTGVmdCgpCiAgICAg
VmFsdWUqIGFyZzIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMik7CiAgICAgVmFsdWUqIG11bHRpcGxpZWQgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGFyZzAsIGFyZzEpOwog
ICAgIFZhbHVlKiBhZGRlZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmln
aW4oKSwgbXVsdGlwbGllZCwgYXJnMik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CiAKICAgICBhdXRvIGNv
ZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC04OTksNyArOTA2LDcgQEAgdm9pZCB0ZXN0TXVsQWRk
QXJnc1JpZ2h0KCkKICAgICBWYWx1ZSogYXJnMiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKTsKICAgICBWYWx1
ZSogbXVsdGlwbGllZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4o
KSwgYXJnMSwgYXJnMik7CiAgICAgVmFsdWUqIGFkZGVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBBZGQsIE9yaWdpbigpLCBhcmcwLCBtdWx0aXBsaWVkKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVk
KTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKQEAgLTkyNiw3ICs5MzMsNyBA
QCB2b2lkIHRlc3RNdWxBZGRBcmdzTGVmdDMyKCkKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpKTsK
ICAgICBWYWx1ZSogbXVsdGlwbGllZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVs
LCBPcmlnaW4oKSwgYXJnMCwgYXJnMSk7CiAgICAgVmFsdWUqIGFkZGVkID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBtdWx0aXBsaWVkLCBhcmcyKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRl
ZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIGFkZGVkKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKQEAgLTk1Myw3
ICs5NjAsNyBAQCB2b2lkIHRlc3RNdWxBZGRBcmdzUmlnaHQzMigpCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIyKSk7CiAgICAgVmFsdWUqIG11bHRpcGxpZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIE11bCwgT3JpZ2luKCksIGFyZzEsIGFyZzIpOwogICAgIFZhbHVlKiBhZGRlZCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYXJnMCwgbXVsdGlwbGll
ZCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgYWRkZWQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBhZGRlZCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwog
CkBAIC05NzcsNyArOTg0LDcgQEAgdm9pZCB0ZXN0TXVsU3ViQXJnc0xlZnQoKQogICAgIFZhbHVl
KiBhcmcyID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjIpOwogICAgIFZhbHVlKiBtdWx0aXBsaWVkID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBhcmcwLCBhcmcxKTsKICAgICBW
YWx1ZSogYWRkZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCks
IG11bHRpcGxpZWQsIGFyZzIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOwogCiAgICAgYXV0byBjb2RlID0g
Y29tcGlsZShwcm9jKTsKIApAQCAtMTAwMSw3ICsxMDA4LDcgQEAgdm9pZCB0ZXN0TXVsU3ViQXJn
c1JpZ2h0KCkKICAgICBWYWx1ZSogYXJnMiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKTsKICAgICBWYWx1ZSog
bXVsdGlwbGllZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwg
YXJnMSwgYXJnMik7CiAgICAgVmFsdWUqIGFkZGVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBTdWIsIE9yaWdpbigpLCBhcmcwLCBtdWx0aXBsaWVkKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsK
IAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKQEAgLTEwMjgsNyArMTAzNSw3IEBA
IHZvaWQgdGVzdE11bFN1YkFyZ3NMZWZ0MzIoKQogICAgICAgICByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMikpOwog
ICAgIFZhbHVlKiBtdWx0aXBsaWVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWws
IE9yaWdpbigpLCBhcmcwLCBhcmcxKTsKICAgICBWYWx1ZSogYWRkZWQgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIG11bHRpcGxpZWQsIGFyZzIpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVk
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgYWRkZWQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAtMTA1NSw3
ICsxMDYyLDcgQEAgdm9pZCB0ZXN0TXVsU3ViQXJnc1JpZ2h0MzIoKQogICAgICAgICByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMikpOwogICAgIFZhbHVlKiBtdWx0aXBsaWVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBNdWwsIE9yaWdpbigpLCBhcmcxLCBhcmcyKTsKICAgICBWYWx1ZSogYWRkZWQgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIGFyZzAsIG11bHRpcGxp
ZWQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIGFkZGVkKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgYWRkZWQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsK
IApAQCAtMTA3OSw3ICsxMDg2LDcgQEAgdm9pZCB0ZXN0TXVsTmVnQXJncygpCiAgICAgVmFsdWUq
IG11bHRpcGxpZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCks
IGFyZzAsIGFyZzEpOwogICAgIFZhbHVlKiB6ZXJvID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDApOwogICAgIFZhbHVlKiBhZGRlZCA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgemVybywgbXVsdGlwbGllZCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRk
ZWQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBhZGRlZCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC0xMTAz
LDcgKzExMTAsNyBAQCB2b2lkIHRlc3RNdWxOZWdBcmdzMzIoKQogICAgIFZhbHVlKiBtdWx0aXBs
aWVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBhcmcwLCBh
cmcxKTsKICAgICBWYWx1ZSogemVybyA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAwKTsKICAgICBWYWx1ZSogYWRkZWQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIHplcm8sIG11bHRpcGxpZWQpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRk
ZWQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAtMTEyMCw3ICsxMTI3
LDcgQEAgdm9pZCB0ZXN0TXVsQXJnRG91YmxlKGRvdWJsZSBhKQogICAgIFByb2NlZHVyZSBwcm9j
OwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZh
bHVlID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBG
UFJJbmZvOjphcmd1bWVudEZQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9y
aWdpbigpLCB2YWx1ZSwgdmFsdWUpKTsKIApAQCAtMTEzMyw3ICsxMTQwLDcgQEAgdm9pZCB0ZXN0
TXVsQXJnc0RvdWJsZShkb3VibGUgYSwgZG91YmxlIAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAg
ICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjEpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBNdWwsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC0xMTQ2LDcgKzExNTMs
NyBAQCB2b2lkIHRlc3RNdWxBcmdJbW1Eb3VibGUoZG91YmxlIGEsIGRvdWJsCiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1
bWVudEZQUjApOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3Vi
bGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBN
dWwsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC0xMTU5LDcgKzExNjYsNyBAQCB2
b2lkIHRlc3RNdWxJbW1BcmdEb3VibGUoZG91YmxlIGEsIGRvdWJsCiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5k
TmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogdmFs
dWVCID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBG
UFJJbmZvOjphcmd1bWVudEZQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9y
aWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC0xMTcyLDcgKzExNzksNyBAQCB2b2lkIHRl
c3RNdWxJbW1zRG91YmxlKGRvdWJsZSBhLCBkb3VibGUgCiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PENv
bnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogdmFsdWVCID0g
cm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsK
IApAQCAtMTE4OCw3ICsxMTk1LDcgQEAgdm9pZCB0ZXN0TXVsQXJnRmxvYXQoZmxvYXQgYSkKICAg
ICBWYWx1ZSogZmxvYXRWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lz
ZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBmbG9hdFZhbHVlLCBmbG9hdFZh
bHVlKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsK
IAogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBi
aXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAqIGEpKSk7
CkBAIC0xMjA2LDcgKzEyMTMsNyBAQCB2b2lkIHRlc3RNdWxBcmdzRmxvYXQoZmxvYXQgYSwgZmxv
YXQgYikKICAgICBWYWx1ZSogZmxvYXRWYWx1ZTIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQyaW50MzIpOwogICAgIFZhbHVlKiBy
ZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGZsb2F0
VmFsdWUxLCBmbG9hdFZhbHVlMik7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGlu
dDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgYml0d2lzZV9jYXN0PGludDMy
X3Q+KGIpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgKiBiKSkpOwogfQpAQCAtMTIyMSw3ICsx
MjI4LDcgQEAgdm9pZCB0ZXN0TXVsQXJnSW1tRmxvYXQoZmxvYXQgYSwgZmxvYXQgYgogICAgIFZh
bHVlKiBjb25zdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIE11bCwgT3JpZ2luKCksIGZsb2F0VmFsdWUsIGNvbnN0VmFsdWUpOwogICAgIFZhbHVl
KiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9y
aWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJ
ZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJf
dD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAqIGIpKSk7CiB9CkBAIC0xMjM2LDcgKzEy
NDMsNyBAQCB2b2lkIHRlc3RNdWxJbW1BcmdGbG9hdChmbG9hdCBhLCBmbG9hdCBiCiAgICAgVmFs
dWUqIGNvbnN0VmFsdWUgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgTXVsLCBPcmlnaW4oKSwgY29uc3RWYWx1ZSwgZmxvYXRWYWx1ZSk7CiAgICAgVmFsdWUq
IHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3Jp
Z2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lk
ZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90
PihiKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhICogYikpKTsKIH0KQEAgLTEyNDksNyArMTI1
Niw3IEBAIHZvaWQgdGVzdE11bEltbXNGbG9hdChmbG9hdCBhLCBmbG9hdCBiKQogICAgIFZhbHVl
KiBjb25zdFZhbHVlMiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9y
aWdpbigpLCBiKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBNdWwsIE9yaWdpbigpLCBjb25zdFZhbHVlMSwgY29uc3RWYWx1ZTIpOwogICAgIFZhbHVl
KiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9y
aWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJ
ZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jKSwgYml0d2lzZV9jYXN0PGludDMy
X3Q+KGEgKiBiKSkpOwogfQpAQCAtMTI2NSw3ICsxMjcyLDcgQEAgdm9pZCB0ZXN0TXVsQXJnRmxv
YXRXaXRoVXNlbGVzc0RvdWJsZUNvbgogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGFzRG91YmxlLCBhc0RvdWJsZSk7CiAgICAg
VmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVU
b0Zsb2F0LCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGls
ZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNl
X2Nhc3Q8aW50MzJfdD4oYSAqIGEpKSk7CiB9CkBAIC0xMjg1LDcgKzEyOTIsNyBAQCB2b2lkIHRl
c3RNdWxBcmdzRmxvYXRXaXRoVXNlbGVzc0RvdWJsZUNvCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgYXNEb3VibGUxLCBhc0Rv
dWJsZTIpOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgVmFsdWUqIHJlc3Vs
dDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCks
IGZsb2F0UmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRl
bnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+
KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAq
IGIpKSk7CiB9CkBAIC0xMzA3LDcgKzEzMTQsNyBAQCB2b2lkIHRlc3RNdWxBcmdzRmxvYXRXaXRo
RWZmZWN0ZnVsRG91YmxlCiAgICAgVmFsdWUqIGRvdWJsZU11bHJlc3MgPSByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BS
Mik7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2lu
KCksIHJlc3VsdCwgZG91YmxlTXVscmVzcyk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIGRvdWJsZSBlZmZlY3QgPSAwOwogICAg
IENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9j
YXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYiksICZlZmZlY3QpLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oYSAqIGIpKSk7CkBAIC0xMzE5LDcgKzEzMjYsNyBAQCB2b2lkIHRl
c3REaXZBcmdEb3VibGUoZG91YmxlIGEpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3Vt
ZW50RlBSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERpdiwgT3JpZ2luKCksIHZhbHVl
LCB2YWx1ZSkpOwogCkBAIC0xMzMyLDcgKzEzMzksNyBAQCB2b2lkIHRlc3REaXZBcmdzRG91Ymxl
KGRvdWJsZSBhLCBkb3VibGUgCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiB2YWx1
ZUIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQ
UkluZm86OmFyZ3VtZW50RlBSMSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERpdiwgT3Jp
Z2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTEzNDUsNyArMTM1Miw3IEBAIHZvaWQgdGVz
dERpdkFyZ0ltbURvdWJsZShkb3VibGUgYSwgZG91YmwKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAg
ICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgYik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERpdiwgT3JpZ2luKCks
IHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTEzNTgsNyArMTM2NSw3IEBAIHZvaWQgdGVzdERpdklt
bUFyZ0RvdWJsZShkb3VibGUgYSwgZG91YmwKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3Vi
bGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3Vt
ZW50RlBSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERpdiwgT3JpZ2luKCksIHZhbHVl
QSwgdmFsdWVCKSk7CiAKQEAgLTEzNzEsNyArMTM3OCw3IEBAIHZvaWQgdGVzdERpdkltbXNEb3Vi
bGUoZG91YmxlIGEsIGRvdWJsZSAKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmRO
ZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBEaXYsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC0xMzg3LDcg
KzEzOTQsNyBAQCB2b2lkIHRlc3REaXZBcmdGbG9hdChmbG9hdCBhKQogICAgIFZhbHVlKiBmbG9h
dFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2lu
KCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIERpdiwgT3JpZ2luKCksIGZsb2F0VmFsdWUsIGZsb2F0VmFsdWUpOwogICAgIFZh
bHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3Qs
IE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAKICAgICBDSEVD
Syhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxp
bnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhIC8gYSkpKTsKQEAgLTE0MDUsNyAr
MTQxMiw3IEBAIHZvaWQgdGVzdERpdkFyZ3NGbG9hdChmbG9hdCBhLCBmbG9hdCBiKQogICAgIFZh
bHVlKiBmbG9hdFZhbHVlMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNh
c3QsIE9yaWdpbigpLCBhcmd1bWVudDJpbnQzMik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwgZmxvYXRWYWx1ZTEsIGZsb2F0
VmFsdWUyKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMy
KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywg
Yml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oYSAvIGIpKSk7CiB9CkBAIC0xNDIwLDcgKzE0MjcsNyBAQCB2b2lk
IHRlc3REaXZBcmdJbW1GbG9hdChmbG9hdCBhLCBmbG9hdCBiCiAgICAgVmFsdWUqIGNvbnN0VmFs
dWUgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7
CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRGl2LCBP
cmlnaW4oKSwgZmxvYXRWYWx1ZSwgY29uc3RWYWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3Vs
dCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21w
aWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdp
c2VfY2FzdDxpbnQzMl90PihhIC8gYikpKTsKIH0KQEAgLTE0MzUsNyArMTQ0Miw3IEBAIHZvaWQg
dGVzdERpdkltbUFyZ0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIKICAgICBWYWx1ZSogY29uc3RWYWx1
ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsK
ICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEaXYsIE9y
aWdpbigpLCBjb25zdFZhbHVlLCBmbG9hdFZhbHVlKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBp
bGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0d2lz
ZV9jYXN0PGludDMyX3Q+KGEgLyBiKSkpOwogfQpAQCAtMTQ0OCw3ICsxNDU1LDcgQEAgdm9pZCB0
ZXN0RGl2SW1tc0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIpCiAgICAgVmFsdWUqIGNvbnN0VmFsdWUy
ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwog
ICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERpdiwgT3Jp
Z2luKCksIGNvbnN0VmFsdWUxLCBjb25zdFZhbHVlMik7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3Vs
dCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21w
aWxlQW5kUnVuPGludDMyX3Q+KHByb2MpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAvIGIpKSk7
CiB9CkBAIC0xNDU4LDcgKzE0NjUsNyBAQCB2b2lkIHRlc3RNb2RBcmdEb3VibGUoZG91YmxlIGEp
CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIHZhbHVlLCB2YWx1ZSkpOwogCkBAIC0xNDcxLDcg
KzE0NzgsNyBAQCB2b2lkIHRlc3RNb2RBcmdzRG91YmxlKGRvdWJsZSBhLCBkb3VibGUgCiAgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0g
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZv
Ojphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMSk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7
CiAKQEAgLTE0ODQsNyArMTQ5MSw3IEBAIHZvaWQgdGVzdE1vZEFyZ0ltbURvdWJsZShkb3VibGUg
YSwgZG91YmwKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZh
bHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3Qt
PmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAg
LTE0OTcsNyArMTUwNCw3IEBAIHZvaWQgdGVzdE1vZEltbUFyZ0RvdWJsZShkb3VibGUgYSwgZG91
YmwKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2
YWx1ZUEgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IGEpOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTE1MTAs
NyArMTUxNyw3IEBAIHZvaWQgdGVzdE1vZEltbXNEb3VibGUoZG91YmxlIGEsIGRvdWJsZSAKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEg
PSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwog
ICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIGIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigp
LCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC0xNTI2LDcgKzE1MzMsNyBAQCB2b2lkIHRlc3RNb2RB
cmdGbG9hdChmbG9hdCBhKQogICAgIFZhbHVlKiBmbG9hdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZh
bHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2luKCks
IGZsb2F0VmFsdWUsIGZsb2F0VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
c3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0MzIpOwogCiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5k
UnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2Fz
dDxpbnQzMl90PihzdGF0aWNfY2FzdDxmbG9hdD4oZm1vZChhLCBhKSkpKSk7CkBAIC0xNTQ0LDcg
KzE1NTEsNyBAQCB2b2lkIHRlc3RNb2RBcmdzRmxvYXQoZmxvYXQgYSwgZmxvYXQgYikKICAgICBW
YWx1ZSogZmxvYXRWYWx1ZTIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VD
YXN0LCBPcmlnaW4oKSwgYXJndW1lbnQyaW50MzIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIGZsb2F0VmFsdWUxLCBmbG9h
dFZhbHVlMik7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQz
Mik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2Ms
IGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0
d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0PGZsb2F0PihmbW9kKGEsIGIpKSkpKTsKIH0K
QEAgLTE1NTksNyArMTU2Niw3IEBAIHZvaWQgdGVzdE1vZEFyZ0ltbUZsb2F0KGZsb2F0IGEsIGZs
b2F0IGIKICAgICBWYWx1ZSogY29uc3RWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigpLCBmbG9hdFZhbHVlLCBjb25zdFZhbHVl
KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJp
dHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAog
ICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lz
ZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0PGZs
b2F0PihmbW9kKGEsIGIpKSkpKTsKIH0KQEAgLTE1NzQsNyArMTU4MSw3IEBAIHZvaWQgdGVzdE1v
ZEltbUFyZ0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIKICAgICBWYWx1ZSogY29uc3RWYWx1ZSA9IHJv
b3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBW
YWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigp
LCBjb25zdFZhbHVlLCBmbG9hdFZhbHVlKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRS
dW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0
PGludDMyX3Q+KHN0YXRpY19jYXN0PGZsb2F0PihmbW9kKGEsIGIpKSkpKTsKIH0KQEAgLTE1ODcs
NyArMTU5NCw3IEBAIHZvaWQgdGVzdE1vZEltbXNGbG9hdChmbG9hdCBhLCBmbG9hdCBiKQogICAg
IFZhbHVlKiBjb25zdFZhbHVlMiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBiKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBNb2QsIE9yaWdpbigpLCBjb25zdFZhbHVlMSwgY29uc3RWYWx1ZTIpOwogICAg
IFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNh
c3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hF
Q0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jKSwgYml0d2lzZV9jYXN0
PGludDMyX3Q+KHN0YXRpY19jYXN0PGZsb2F0PihmbW9kKGEsIGIpKSkpKTsKIH0KQEAgLTE2MDMs
NyArMTYxMCw3IEBAIHZvaWQgdGVzdERpdkFyZ0Zsb2F0V2l0aFVzZWxlc3NEb3VibGVDb24KICAg
ICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEaXYsIE9yaWdp
bigpLCBhc0RvdWJsZSwgYXNEb3VibGUpOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIHJlc3VsdCk7
CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3
aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsK
IAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0
d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLyBhKSkpOwog
fQpAQCAtMTYyMyw3ICsxNjMwLDcgQEAgdm9pZCB0ZXN0RGl2QXJnc0Zsb2F0V2l0aFVzZWxlc3NE
b3VibGVDbwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IERpdiwgT3JpZ2luKCksIGFzRG91YmxlMSwgYXNEb3VibGUyKTsKICAgICBWYWx1ZSogZmxvYXRS
ZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdp
bigpLCByZXN1bHQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMy
X3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+
KGIpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLyBiKSkpOwogfQpAQCAtMTY0NSw3ICsxNjUy
LDcgQEAgdm9pZCB0ZXN0RGl2QXJnc0Zsb2F0V2l0aEVmZmVjdGZ1bERvdWJsZQogICAgIFZhbHVl
KiBkb3VibGVEaXZyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxN
ZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGRvdWJsZURpdnJlc3Mp
OwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0
d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7
CiAKICAgICBkb3VibGUgZWZmZWN0ID0gMDsKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxl
QW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgYml0d2lzZV9j
YXN0PGludDMyX3Q+KGIpLCAmZWZmZWN0KSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLyBiKSkp
OwpAQCAtMTY1Nyw3ICsxNjY0LDcgQEAgdm9pZCB0ZXN0U3ViQXJnKGludCBhKQogICAgIFByb2Nl
ZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAg
VmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBTdWIsIE9yaWdpbigpLCB2YWx1ZSwgdmFsdWUpKTsKIApAQCAtMTY2OCw3ICsxNjc1LDcgQEAg
dm9pZCB0ZXN0U3ViQXJncyhpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBTdWIsIE9yaWdpbigpLApAQCAtMTY4Miw3ICsxNjg5LDcg
QEAgdm9pZCB0ZXN0U3ViQXJnSW1tKGludDY0X3QgYSwgaW50NjRfdCBiKQogewogICAgIFByb2Nl
ZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU3ViLCBPcmlnaW4oKSwKQEAgLTE3
MDMsNyArMTcxMCw3IEBAIHZvaWQgdGVzdE5lZ1ZhbHVlU3ViT25lKGludCBhKQogICAgIFZhbHVl
KiBuZWdBcmd1bWVudE1pbnVzT25lID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIs
IE9yaWdpbigpLAogICAgICAgICBuZWdBcmd1bWVudCwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBuZWdBcmd1bWVudE1pbnVzT25l
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgbmVnQXJndW1lbnRNaW51c09uZSk7CiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHBy
b2MsIGEpID09IC1hIC0gMSk7CiB9CiAKQEAgLTE3MTEsNyArMTcxOCw3IEBAIHZvaWQgdGVzdFN1
YkltbUFyZyhpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBTdWIsIE9yaWdpbigpLApAQCAtMTczMCw3ICsxNzM3LDcgQEAgdm9pZCB0
ZXN0U3ViQXJnTWVtKGludDY0X3QgYSwgaW50NjRfdCBiKQogICAgIFZhbHVlKiByZXN1bHQgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKSwKICAgICAgICAgbG9hZCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENI
RUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgYSwgJmIpID09IGEgLSBiKTsKIH0KQEAg
LTE3NDUsNyArMTc1Miw3IEBAIHZvaWQgdGVzdFN1Yk1lbUFyZyhpbnQ2NF90IGEsIGludDY0X3Qg
YikKICAgICAgICAgbG9hZCwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKTsKICAgICByb290LT5h
cHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBhZGRy
ZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAg
ICAgaW50NjRfdCBpbnB1dE91dHB1dCA9IGE7CiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50
NjRfdD4ocHJvYywgJmlucHV0T3V0cHV0LCBiKSk7CkBAIC0xNzYyLDcgKzE3NjksNyBAQCB2b2lk
IHRlc3RTdWJJbW1NZW0oaW50NjRfdCBhLCBpbnQ2NF90IGIpCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKSwKICAgICAgICAgbG9hZCk7CiAg
ICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJl
c3VsdCwgYWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIDApKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IDApKTsKIAogICAgIGludDY0X3QgaW5wdXRPdXRwdXQgPSBiOwogICAgIENIRUNLKCFjb21waWxl
QW5kUnVuPGludD4ocHJvYywgJmlucHV0T3V0cHV0KSk7CkBAIC0xNzc5LDcgKzE3ODYsNyBAQCB2
b2lkIHRlc3RTdWJNZW1JbW0oaW50NjRfdCBhLCBpbnQ2NF90IGIpCiAgICAgICAgIGxvYWQsCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKSk7
CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCks
IHJlc3VsdCwgYWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDApKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDApKTsKIAogICAgIGludDY0X3QgaW5wdXRPdXRwdXQgPSBhOwogICAgIENIRUNLKCFjb21w
aWxlQW5kUnVuPGludD4ocHJvYywgJmlucHV0T3V0cHV0KSk7CkBAIC0xNzkxLDcgKzE3OTgsNyBA
QCB2b2lkIHRlc3RTdWJBcmdzMzIoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9j
OwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU3ViLCBPcmlnaW4oKSwKQEAgLTE4MDksNyArMTgx
Niw3IEBAIHZvaWQgdGVzdFN1YkFyZ0ltbTMyKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1
cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFN1YiwgT3JpZ2luKCksCkBAIC0xODI1
LDcgKzE4MzIsNyBAQCB2b2lkIHRlc3RTdWJJbW1BcmczMihpbnQgYSwgaW50IGIpCiB7CiAgICAg
UHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTdWIsIE9yaWdpbigpLApA
QCAtMTg0Nyw3ICsxODU0LDcgQEAgdm9pZCB0ZXN0U3ViTWVtQXJnMzIoaW50MzJfdCBhLCBpbnQz
Ml90IAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSkpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIGxvYWQsIGFyZ3VtZW50KTsK
ICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwg
cmVzdWx0LCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgMCkpOwogCiAgICAgaW50MzJfdCBpbnB1dE91dHB1dCA9IGE7CiAgICAgQ0hFQ0soIWNvbXBp
bGVBbmRSdW48aW50MzJfdD4ocHJvYywgJmlucHV0T3V0cHV0LCBiKSk7CkBAIC0xODYzLDcgKzE4
NzAsNyBAQCB2b2lkIHRlc3RTdWJBcmdNZW0zMihpbnQzMl90IGEsIGludDMyX3QgCiAgICAgVmFs
dWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgYXJndW1lbnQsIGxvYWQpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDMyX3Q+KHBy
b2MsIGEsICZiKSA9PSBhIC0gYik7CiB9CkBAIC0xODc4LDcgKzE4ODUsNyBAQCB2b2lkIHRlc3RT
dWJJbW1NZW0zMihpbnQzMl90IGEsIGludDMyX3QgCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKSwKICAgICAgICAgbG9hZCk7CiAgICAgcm9v
dC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwg
YWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IDApKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsK
IAogICAgIGludDMyX3QgaW5wdXRPdXRwdXQgPSBiOwogICAgIENIRUNLKCFjb21waWxlQW5kUnVu
PGludD4ocHJvYywgJmlucHV0T3V0cHV0KSk7CkBAIC0xODk1LDcgKzE5MDIsNyBAQCB2b2lkIHRl
c3RTdWJNZW1JbW0zMihpbnQzMl90IGEsIGludDMyX3QgCiAgICAgICAgIGxvYWQsCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKSk7CiAgICAg
cm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3Vs
dCwgYWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDApKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDAp
KTsKIAogICAgIGludDMyX3QgaW5wdXRPdXRwdXQgPSBhOwogICAgIENIRUNLKCFjb21waWxlQW5k
UnVuPGludD4ocHJvYywgJmlucHV0T3V0cHV0KSk7CkBAIC0xOTE0LDcgKzE5MjEsNyBAQCB2b2lk
IHRlc3ROZWdWYWx1ZVN1Yk9uZTMyKGludCBhKQogICAgIFZhbHVlKiBuZWdBcmd1bWVudE1pbnVz
T25lID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLAogICAgICAg
ICBuZWdBcmd1bWVudCwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIDEpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBuZWdBcmd1bWVudE1pbnVzT25lKTsKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgbmVnQXJndW1lbnRNaW51
c09uZSk7CiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIGEpID09IC1hIC0gMSk7
CiB9CiAKQEAgLTE5MjMsNyArMTkzMCw3IEBAIHZvaWQgdGVzdFN1YkFyZ0RvdWJsZShkb3VibGUg
YSkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgdmFsdWUsIHZhbHVlKSk7CiAKQEAgLTE5MzYs
NyArMTk0Myw3IEBAIHZvaWQgdGVzdFN1YkFyZ3NEb3VibGUoZG91YmxlIGEsIGRvdWJsZSAKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEg
PSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUklu
Zm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIxKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIp
KTsKIApAQCAtMTk0OSw3ICsxOTU2LDcgQEAgdm9pZCB0ZXN0U3ViQXJnSW1tRG91YmxlKGRvdWJs
ZSBhLCBkb3VibAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAg
VmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9v
dC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApA
QCAtMTk2Miw3ICsxOTY5LDcgQEAgdm9pZCB0ZXN0U3ViSW1tQXJnRG91YmxlKGRvdWJsZSBhLCBk
b3VibAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUq
IHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgYSk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTk3
NSw3ICsxOTgyLDcgQEAgdm9pZCB0ZXN0U3ViSW1tc0RvdWJsZShkb3VibGUgYSwgZG91YmxlIAog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVl
QSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7
CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgYik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2lu
KCksIHZhbHVlQSwgdmFsdWVCKSk7CiAgICAgCkBAIC0xOTkxLDcgKzE5OTgsNyBAQCB2b2lkIHRl
c3RTdWJBcmdGbG9hdChmbG9hdCBhKQogICAgIFZhbHVlKiBmbG9hdFZhbHVlID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwog
ICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3Jp
Z2luKCksIGZsb2F0VmFsdWUsIGZsb2F0VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21w
aWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdp
c2VfY2FzdDxpbnQzMl90PihhIC0gYSkpKTsKQEAgLTIwMDksNyArMjAxNiw3IEBAIHZvaWQgdGVz
dFN1YkFyZ3NGbG9hdChmbG9hdCBhLCBmbG9hdCBiKQogICAgIFZhbHVlKiBmbG9hdFZhbHVlMiA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1
bWVudDJpbnQzMik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgU3ViLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZTEsIGZsb2F0VmFsdWUyKTsKICAgICBWYWx1
ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBP
cmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlz
SWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMy
X3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4o
YSAtIGIpKSk7CiB9CkBAIC0yMDI0LDcgKzIwMzEsNyBAQCB2b2lkIHRlc3RTdWJBcmdJbW1GbG9h
dChmbG9hdCBhLCBmbG9hdCBiCiAgICAgVmFsdWUqIGNvbnN0VmFsdWUgPSByb290LT5hcHBlbmRO
ZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7CiAgICAgVmFsdWUqIHJlc3Vs
dCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgZmxvYXRWYWx1
ZSwgY29uc3RWYWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+
KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90Pihh
IC0gYikpKTsKIH0KQEAgLTIwMzksNyArMjA0Niw3IEBAIHZvaWQgdGVzdFN1YkltbUFyZ0Zsb2F0
KGZsb2F0IGEsIGZsb2F0IGIKICAgICBWYWx1ZSogY29uc3RWYWx1ZSA9IHJvb3QtPmFwcGVuZE5l
dzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogcmVzdWx0
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBjb25zdFZhbHVl
LCBmbG9hdFZhbHVlKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
c3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4o
cHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEg
LSBiKSkpOwogfQpAQCAtMjA1Miw3ICsyMDU5LDcgQEAgdm9pZCB0ZXN0U3ViSW1tc0Zsb2F0KGZs
b2F0IGEsIGZsb2F0IGIpCiAgICAgVmFsdWUqIGNvbnN0VmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3
PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiByZXN1bHQg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIGNvbnN0VmFsdWUx
LCBjb25zdFZhbHVlMik7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+
KHByb2MpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAtIGIpKSk7CiB9CkBAIC0yMDY4LDcgKzIw
NzUsNyBAQCB2b2lkIHRlc3RTdWJBcmdGbG9hdFdpdGhVc2VsZXNzRG91YmxlQ29uCiAgICAgVmFs
dWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwg
YXNEb3VibGUsIGFzRG91YmxlKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCByZXN1bHQpOwogICAg
IFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNh
c3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAg
ICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2Vf
Y2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhIC0gYSkpKTsKIH0KQEAg
LTIwODgsNyArMjA5NSw3IEBAIHZvaWQgdGVzdFN1YkFyZ3NGbG9hdFdpdGhVc2VsZXNzRG91Ymxl
Q28KICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIs
IE9yaWdpbigpLCBhc0RvdWJsZTEsIGFzRG91YmxlMik7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwg
cmVzdWx0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihw
cm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSks
IGJpdHdpc2VfY2FzdDxpbnQzMl90PihhIC0gYikpKTsKIH0KQEAgLTIxMTAsNyArMjExNyw3IEBA
IHZvaWQgdGVzdFN1YkFyZ3NGbG9hdFdpdGhFZmZlY3RmdWxEb3VibGUKICAgICBWYWx1ZSogZG91
YmxlU3VicmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5
VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBkb3VibGVTdWJyZXNzKTsKICAg
ICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VD
YXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAg
ICAgZG91YmxlIGVmZmVjdCA9IDA7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1
bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxp
bnQzMl90PihiKSwgJmVmZmVjdCksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhIC0gYikpKTsKQEAg
LTIxMjEsNyArMjEyOCw3IEBAIHZvaWQgdGVzdEJpdEFuZEFyZ3MoaW50NjRfdCBhLCBpbnQ2NF90
IGIKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdEFu
ZCwgT3JpZ2luKCksCkBAIC0yMTM2LDcgKzIxNDMsNyBAQCB2b2lkIHRlc3RCaXRBbmRTYW1lQXJn
KGludDY0X3QgYSkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigp
LApAQCAtMjE1MCw3ICsyMTU3LDcgQEAgdm9pZCB0ZXN0Qml0QW5kSW1tcyhpbnQ2NF90IGEsIGlu
dDY0X3QgYgogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
Qml0QW5kLCBPcmlnaW4oKSwKQEAgLTIxNjQsNyArMjE3MSw3IEBAIHZvaWQgdGVzdEJpdEFuZEFy
Z0ltbShpbnQ2NF90IGEsIGludDY0X3QKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0yMTc4LDcgKzIxODUsNyBAQCB2
b2lkIHRlc3RCaXRBbmRJbW1BcmcoaW50NjRfdCBhLCBpbnQ2NF90CiB7CiAgICAgUHJvY2VkdXJl
IHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMjE5
Niw3ICsyMjAzLDcgQEAgdm9pZCB0ZXN0Qml0QW5kQml0QW5kQXJnSW1tSW1tKGludDY0X3QgYQog
ICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBi
KSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmln
aW4oKSwKQEAgLTIyMTQsNyArMjIyMSw3IEBAIHZvaWQgdGVzdEJpdEFuZEltbUJpdEFuZEFyZ0lt
bShpbnQ2NF90IGEKICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgYykpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IEJpdEFuZCwgT3JpZ2luKCksCkBAIC0yMjI4LDcgKzIyMzUsNyBAQCB2b2lkIHRlc3RCaXRBbmRB
cmdzMzIoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTIyNDgsNyArMjI1NSw3IEBAIHZvaWQg
dGVzdEJpdEFuZFNhbWVBcmczMihpbnQgYSkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0y
MjYyLDcgKzIyNjksNyBAQCB2b2lkIHRlc3RCaXRBbmRJbW1zMzIoaW50IGEsIGludCBiKQogewog
ICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmln
aW4oKSwKQEAgLTIyNzYsNyArMjI4Myw3IEBAIHZvaWQgdGVzdEJpdEFuZEFyZ0ltbTMyKGludCBh
LCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IEJpdEFuZCwgT3JpZ2luKCksCkBAIC0yMjkyLDcgKzIyOTksNyBAQCB2b2lkIHRlc3RCaXRBbmRJ
bW1BcmczMihpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMjMxNCw3ICsyMzIxLDcgQEAgdm9p
ZCB0ZXN0Qml0QW5kQml0QW5kQXJnSW1tSW1tMzIoaW50IGEsIAogICAgICAgICAgICAgcHJvYywg
VHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAt
MjMzNCw3ICsyMzQxLDcgQEAgdm9pZCB0ZXN0Qml0QW5kSW1tQml0QW5kQXJnSW1tMzIoaW50IGEs
IAogICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjApKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIGMpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBC
aXRBbmQsIE9yaWdpbigpLApAQCAtMjM2MSw3ICsyMzY4LDcgQEAgdm9pZCB0ZXN0Qml0QW5kV2l0
aE1hc2tSZXR1cm5zQm9vbGVhbnMoaQogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2
NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTUpKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlbGVjdCk7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlbGVjdCk7CiAKICAg
ICBpbnQ2NF90IGV4cGVjdGVkID0gKGEgPT0gYikgPyAtNSA6IDQyOwogICAgIENIRUNLKGNvbXBp
bGVBbmRSdW48aW50NjRfdD4ocHJvYywgYSwgYikgPT0gZXhwZWN0ZWQpOwpAQCAtMjM3OCw3ICsy
Mzg1LDcgQEAgdm9pZCB0ZXN0Qml0QW5kQXJnRG91YmxlKGRvdWJsZSBhKQogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1
bWVudEZQUjApOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEJpdEFuZCwgT3JpZ2luKCksIGFyZ3VtZW50LCBhcmd1bWVudCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9j
LCBhKSwgYml0QW5kRG91YmxlKGEsIGEpKSk7CiB9CkBAIC0yMzkwLDcgKzIzOTcsNyBAQCB2b2lk
IHRlc3RCaXRBbmRBcmdzRG91YmxlKGRvdWJsZSBhLCBkb3ViCiAgICAgVmFsdWUqIGFyZ3VtZW50
QSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBS
SW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogYXJndW1lbnRCID0gcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQ
UjEpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJp
dEFuZCwgT3JpZ2luKCksIGFyZ3VtZW50QSwgYXJndW1lbnRCKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQp
OwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIGEs
IGIpLCBiaXRBbmREb3VibGUoYSwgYikpKTsKIH0KQEAgLTI0MDIsNyArMjQwOSw3IEBAIHZvaWQg
dGVzdEJpdEFuZEFyZ0ltbURvdWJsZShkb3VibGUgYSwgZG8KICAgICBWYWx1ZSogYXJndW1lbnRB
ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJ
bmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiBhcmd1bWVudEIgPSByb290LT5hcHBlbmRO
ZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiByZXN1
bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdEFuZCwgT3JpZ2luKCksIGFyZ3Vt
ZW50QSwgYXJndW1lbnRCKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soaXNJZGVu
dGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIGEsIGIpLCBiaXRBbmREb3VibGUoYSwg
YikpKTsKIH0KQEAgLTI0MTQsNyArMjQyMSw3IEBAIHZvaWQgdGVzdEJpdEFuZEltbXNEb3VibGUo
ZG91YmxlIGEsIGRvdWIKICAgICBWYWx1ZSogYXJndW1lbnRBID0gcm9vdC0+YXBwZW5kTmV3PENv
bnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogYXJndW1lbnRC
ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsK
ICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXRBbmQs
IE9yaWdpbigpLCBhcmd1bWVudEEsIGFyZ3VtZW50Qik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAog
ICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jKSwgYml0QW5k
RG91YmxlKGEsIGIpKSk7CiB9CkBAIC0yNDMyLDcgKzI0MzksNyBAQCB2b2lkIHRlc3RCaXRBbmRB
cmdGbG9hdChmbG9hdCBhKQogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRy
dW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSkpOwogICAgIFZhbHVl
KiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdEFuZCwgT3JpZ2luKCks
IGFyZ3VtZW50LCBhcmd1bWVudCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGlz
SWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90
PihhKSksIGJpdEFuZEZsb2F0KGEsIGEpKSk7CiB9CkBAIC0yNDQ4LDcgKzI0NTUsNyBAQCB2b2lk
IHRlc3RCaXRBbmRBcmdzRmxvYXQoZmxvYXQgYSwgZmxvYXQgCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjEpKSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQml0QW5kLCBPcmlnaW4oKSwgYXJndW1lbnRBLCBhcmd1bWVudEIpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
c3VsdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9j
LCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSksIGJp
dEFuZEZsb2F0KGEsIGIpKSk7CiB9CkBAIC0yNDYyLDcgKzI0NjksNyBAQCB2b2lkIHRlc3RCaXRB
bmRBcmdJbW1GbG9hdChmbG9hdCBhLCBmbG9hCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkp
KTsKICAgICBWYWx1ZSogYXJndW1lbnRCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEJpdEFuZCwgT3JpZ2luKCksIGFyZ3VtZW50QSwgYXJndW1lbnRCKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1
bjxmbG9hdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50
MzJfdD4oYikpLCBiaXRBbmRGbG9hdChhLCBiKSkpOwogfQpAQCAtMjQ3NCw3ICsyNDgxLDcgQEAg
dm9pZCB0ZXN0Qml0QW5kSW1tc0Zsb2F0KGZsb2F0IGEsIGZsb2F0IAogICAgIFZhbHVlKiBhcmd1
bWVudEEgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
YSk7CiAgICAgVmFsdWUqIGFyZ3VtZW50QiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFs
dWU+KHByb2MsIE9yaWdpbigpLCBiKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBCaXRBbmQsIE9yaWdpbigpLCBhcmd1bWVudEEsIGFyZ3VtZW50Qik7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRS
dW48ZmxvYXQ+KHByb2MpLCBiaXRBbmRGbG9hdChhLCBiKSkpOwogfQpAQCAtMjQ5Myw3ICsyNTAw
LDcgQEAgdm9pZCB0ZXN0Qml0QW5kQXJnc0Zsb2F0V2l0aFVzZWxlc3NEb3VibAogICAgIFZhbHVl
KiBhcmd1bWVudEJhc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRU
b0RvdWJsZSwgT3JpZ2luKCksIGFyZ3VtZW50Qik7CiAgICAgVmFsdWUqIGRvdWJsZVJlc3VsdCA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0QW5kLCBPcmlnaW4oKSwgYXJndW1lbnRB
YXNEb3VibGUsIGFyZ3VtZW50QmFzRG91YmxlKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBkb3Vi
bGVSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwogCiAgICAgZG91YmxlIGRv
dWJsZUEgPSBhOwogICAgIGRvdWJsZSBkb3VibGVCID0gYjsKQEAgLTI1MDUsNyArMjUxMiw3IEBA
IHZvaWQgdGVzdEJpdE9yQXJncyhpbnQ2NF90IGEsIGludDY0X3QgYikKIHsKICAgICBQcm9jZWR1
cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdE9yLCBPcmlnaW4oKSwKQEAgLTI1
MjAsNyArMjUyNyw3IEBAIHZvaWQgdGVzdEJpdE9yU2FtZUFyZyhpbnQ2NF90IGEpCiAgICAgUHJv
Y2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAg
ICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgQml0T3IsIE9yaWdpbigpLApAQCAtMjUzNCw3ICsyNTQxLDcg
QEAgdm9pZCB0ZXN0Qml0T3JJbW1zKGludDY0X3QgYSwgaW50NjRfdCBiKQogewogICAgIFByb2Nl
ZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0T3IsIE9yaWdpbigpLApAQCAt
MjU0OCw3ICsyNTU1LDcgQEAgdm9pZCB0ZXN0Qml0T3JBcmdJbW0oaW50NjRfdCBhLCBpbnQ2NF90
IAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0T3Is
IE9yaWdpbigpLApAQCAtMjU2Miw3ICsyNTY5LDcgQEAgdm9pZCB0ZXN0Qml0T3JJbW1BcmcoaW50
NjRfdCBhLCBpbnQ2NF90IAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgQml0T3IsIE9yaWdpbigpLApAQCAtMjU4MCw3ICsyNTg3LDcgQEAgdm9pZCB0ZXN0
Qml0T3JCaXRPckFyZ0ltbUltbShpbnQ2NF90IGEsIAogICAgICAgICBwcm9jLCBCaXRPciwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
CiAgICAgICAgICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCksCkBAIC0yNTk4LDcgKzI2MDUsNyBA
QCB2b2lkIHRlc3RCaXRPckltbUJpdE9yQXJnSW1tKGludDY0X3QgYSwgCiAgICAgICAgIHByb2Ms
IEJpdE9yLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApLAogICAgICAgICByb290
LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYykpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdE9yLCBPcmlnaW4oKSwKQEAgLTI2MTIs
NyArMjYxOSw3IEBAIHZvaWQgdGVzdEJpdE9yQXJnczMyKGludCBhLCBpbnQgYikKIHsKICAgICBQ
cm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdE9yLCBPcmlnaW4oKSwK
QEAgLTI2MzMsNyArMjY0MCw3IEBAIHZvaWQgdGVzdEJpdE9yU2FtZUFyZzMyKGludCBhKQogICAg
IFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgIHByb2Ms
IFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0T3IsIE9yaWdpbigpLApAQCAtMjY0
Nyw3ICsyNjU0LDcgQEAgdm9pZCB0ZXN0Qml0T3JJbW1zMzIoaW50IGEsIGludCBiKQogewogICAg
IFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0T3IsIE9yaWdpbigp
LApAQCAtMjY2MSw3ICsyNjY4LDcgQEAgdm9pZCB0ZXN0Qml0T3JBcmdJbW0zMihpbnQgYSwgaW50
IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRP
ciwgT3JpZ2luKCksCkBAIC0yNjc3LDcgKzI2ODQsNyBAQCB2b2lkIHRlc3RCaXRPckltbUFyZzMy
KGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIEJpdE9yLCBPcmlnaW4oKSwKQEAgLTI2OTksNyArMjcwNiw3IEBAIHZvaWQgdGVzdEJp
dE9yQml0T3JBcmdJbW1JbW0zMihpbnQgYSwgaW4KICAgICAgICAgICAgIHByb2MsIFRydW5jLCBP
cmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKSk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0T3IsIE9yaWdpbigpLApAQCAtMjcxOSw3ICsy
NzI2LDcgQEAgdm9pZCB0ZXN0Qml0T3JJbW1CaXRPckFyZ0ltbTMyKGludCBhLCBpbgogICAgICAg
ICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjAp
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IGMpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRPciwgT3Jp
Z2luKCksCkBAIC0yNzMzLDcgKzI3NDAsNyBAQCB2b2lkIHRlc3RCaXRYb3JBcmdzKGludDY0X3Qg
YSwgaW50NjRfdCBiCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBw
cm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjc0OCw3ICsyNzU1LDcgQEAgdm9pZCB0ZXN0Qml0
WG9yU2FtZUFyZyhpbnQ2NF90IGEpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9y
LCBPcmlnaW4oKSwKQEAgLTI3NjIsNyArMjc2OSw3IEBAIHZvaWQgdGVzdEJpdFhvckltbXMoaW50
NjRfdCBhLCBpbnQ2NF90IGIKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCkBAIC0yNzc2LDcgKzI3ODMsNyBAQCB2b2lkIHRl
c3RCaXRYb3JBcmdJbW0oaW50NjRfdCBhLCBpbnQ2NF90CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjc5MCw3ICsy
Nzk3LDcgQEAgdm9pZCB0ZXN0Qml0WG9ySW1tQXJnKGludDY0X3QgYSwgaW50NjRfdAogewogICAg
IFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4o
KSwKQEAgLTI4MDgsNyArMjgxNSw3IEBAIHZvaWQgdGVzdEJpdFhvckJpdFhvckFyZ0ltbUltbShp
bnQ2NF90IGEKICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjApLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgYikpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJp
dFhvciwgT3JpZ2luKCksCkBAIC0yODI2LDcgKzI4MzMsNyBAQCB2b2lkIHRlc3RCaXRYb3JJbW1C
aXRYb3JBcmdJbW0oaW50NjRfdCBhCiAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
R1BSSW5mbzo6YXJndW1lbnRHUFIwKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIGMpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjg0MCw3ICsyODQ3LDcgQEAgdm9pZCB0
ZXN0Qml0WG9yQXJnczMyKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCkBAIC0yODYxLDcgKzI4Njgs
NyBAQCB2b2lkIHRlc3RCaXRYb3JTYW1lQXJnMzIoaW50IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigp
LAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjg3NSw3ICsyODgyLDcgQEAg
dm9pZCB0ZXN0Qml0WG9ySW1tczMyKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCkBAIC0yODg5LDcg
KzI4OTYsNyBAQCB2b2lkIHRlc3RCaXRYb3JBcmdJbW0zMihpbnQgYSwgaW50IGIpCiB7CiAgICAg
UHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigp
LApAQCAtMjkwNSw3ICsyOTEyLDcgQEAgdm9pZCB0ZXN0Qml0WG9ySW1tQXJnMzIoaW50IGEsIGlu
dCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0
WG9yLCBPcmlnaW4oKSwKQEAgLTI5MjcsNyArMjkzNCw3IEBAIHZvaWQgdGVzdEJpdFhvckJpdFhv
ckFyZ0ltbUltbTMyKGludCBhLCAKICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwK
ICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAog
ICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTI5NDcsNyArMjk1NCw3IEBA
IHZvaWQgdGVzdEJpdFhvckltbUJpdFhvckFyZ0ltbTMyKGludCBhLCAKICAgICAgICAgICAgIHBy
b2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBjKSk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwK
QEAgLTI5NjEsNyArMjk2OCw3IEBAIHZvaWQgdGVzdEJpdE5vdEFyZyhpbnQ2NF90IGEpCiB7CiAg
ICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdp
bigpLApAQCAtMjk3NSw3ICsyOTgyLDcgQEAgdm9pZCB0ZXN0Qml0Tm90SW1tKGludDY0X3QgYSkK
IHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwg
T3JpZ2luKCksCkBAIC0yOTk1LDcgKzMwMDIsNyBAQCB2b2lkIHRlc3RCaXROb3RNZW0oaW50NjRf
dCBhKQogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgLTEpLAogICAgICAgICBsb2FkKTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+
KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgbm90TG9hZCwgYWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGludDY0X3QgaW5wdXQgPSBh
OwogICAgIGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgJmlucHV0KTsKQEAgLTMwMDgsNyAr
MzAxNSw3IEBAIHZvaWQgdGVzdEJpdE5vdEFyZzMyKGludDMyX3QgYSkKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXRYb3IsIE9yaWdpbigpLAogICAg
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0x
KSwKQEAgLTMwMjAsNyArMzAyNyw3IEBAIHZvaWQgdGVzdEJpdE5vdEltbTMyKGludDMyX3QgYSkK
IHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwg
T3JpZ2luKCksCkBAIC0zMDQwLDcgKzMwNDcsNyBAQCB2b2lkIHRlc3RCaXROb3RNZW0zMihpbnQz
Ml90IGEpCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAtMSksCiAgICAgICAgIGxvYWQpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1
ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCBub3RMb2FkLCBhZGRyZXNzKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgaW50MzJfdCBpbnB1dCA9
IGE7CiAgICAgY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCAmaW5wdXQpOwpAQCAtMzA2Mywx
NiArMzA3MCwxNiBAQCB2b2lkIHRlc3RCaXROb3RPbkJvb2xlYW5BbmRCcmFuY2gzMihpbnQ2CiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMSks
CiAgICAgICAgIGFyZ3NBcmVFcXVhbCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJy
YW5jaCwgT3JpZ2luKCksCiAgICAgICAgIGFyZ3NBcmVOb3RFcXVhbCwKICAgICAgICAgRnJlcXVl
bnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0
aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
dGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwog
Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
LTQyKSk7CiAKQEAgLTMwODQsNyArMzA5MSw3IEBAIHZvaWQgdGVzdFNobEFyZ3MoaW50NjRfdCBh
LCBpbnQ2NF90IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBw
cm9jLCBTaGwsIE9yaWdpbigpLApAQCAtMzEwMCw3ICszMTA3LDcgQEAgdm9pZCB0ZXN0U2hsSW1t
cyhpbnQ2NF90IGEsIGludDY0X3QgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIFNobCwgT3JpZ2luKCksCkBAIC0zMTE0LDcgKzMxMjEsNyBAQCB2b2lk
IHRlc3RTaGxBcmdJbW0oaW50NjRfdCBhLCBpbnQ2NF90IGIpCiB7CiAgICAgUHJvY2VkdXJlIHBy
b2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTaGwsIE9yaWdpbigpLApAQCAtMzEzMSw3ICsz
MTM4LDcgQEAgdm9pZCB0ZXN0U2hsQXJnMzIoaW50MzJfdCBhKQogICAgIFZhbHVlKiB2YWx1ZSA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU2hs
LCBPcmlnaW4oKSwgdmFsdWUsIHZhbHVlKSk7CiAKQEAgLTMxNDIsNyArMzE0OSw3IEBAIHZvaWQg
dGVzdFNobEFyZ3MzMihpbnQzMl90IGEsIGludDMyX3QgYikKIHsKICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNobCwgT3JpZ2luKCksCkBAIC0zMTYwLDcgKzMx
NjcsNyBAQCB2b2lkIHRlc3RTaGxJbW1zMzIoaW50MzJfdCBhLCBpbnQzMl90IGIpCiB7CiAgICAg
UHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTaGwsIE9yaWdpbigpLApA
QCAtMzE3NCw3ICszMTgxLDcgQEAgdm9pZCB0ZXN0U2hsQXJnSW1tMzIoaW50MzJfdCBhLCBpbnQz
Ml90IAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2hs
LCBPcmlnaW4oKSwKQEAgLTMxOTAsNyArMzE5Nyw3IEBAIHZvaWQgdGVzdFNTaHJBcmdzKGludDY0
X3QgYSwgaW50NjRfdCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgU1NociwgT3JpZ2luKCksCkBAIC0zMjA2LDcgKzMyMTMsNyBAQCB2b2lkIHRlc3RT
U2hySW1tcyhpbnQ2NF90IGEsIGludDY0X3QgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIFNTaHIsIE9yaWdpbigpLApAQCAtMzIyMCw3ICszMjI3LDcg
QEAgdm9pZCB0ZXN0U1NockFyZ0ltbShpbnQ2NF90IGEsIGludDY0X3QgYgogewogICAgIFByb2Nl
ZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU1NociwgT3JpZ2luKCksCkBAIC0z
MjM3LDcgKzMyNDQsNyBAQCB2b2lkIHRlc3RTU2hyQXJnMzIoaW50MzJfdCBhKQogICAgIFZhbHVl
KiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgIHByb2MsIFRydW5jLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgU1NociwgT3JpZ2luKCksIHZhbHVlLCB2YWx1ZSkpOwogCkBAIC0zMjQ4LDcgKzMyNTUs
NyBAQCB2b2lkIHRlc3RTU2hyQXJnczMyKGludDMyX3QgYSwgaW50MzJfdCBiCiB7CiAgICAgUHJv
Y2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTU2hyLCBPcmlnaW4oKSwKQEAg
LTMyNjYsNyArMzI3Myw3IEBAIHZvaWQgdGVzdFNTaHJJbW1zMzIoaW50MzJfdCBhLCBpbnQzMl90
IGIKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNTaHIs
IE9yaWdpbigpLApAQCAtMzI4MCw3ICszMjg3LDcgQEAgdm9pZCB0ZXN0U1NockFyZ0ltbTMyKGlu
dDMyX3QgYSwgaW50MzJfdAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgU1NociwgT3JpZ2luKCksCkBAIC0zMjk2LDcgKzMzMDMsNyBAQCB2b2lkIHRlc3Ra
U2hyQXJncyh1aW50NjRfdCBhLCB1aW50NjRfdCBiCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBaU2hyLCBPcmlnaW4oKSwKQEAgLTMzMTIsNyArMzMxOSw3
IEBAIHZvaWQgdGVzdFpTaHJJbW1zKHVpbnQ2NF90IGEsIHVpbnQ2NF90IGIKIHsKICAgICBQcm9j
ZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFpTaHIsIE9yaWdpbigpLApAQCAt
MzMyNiw3ICszMzMzLDcgQEAgdm9pZCB0ZXN0WlNockFyZ0ltbSh1aW50NjRfdCBhLCB1aW50NjRf
dAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgWlNociwg
T3JpZ2luKCksCkBAIC0zMzQzLDcgKzMzNTAsNyBAQCB2b2lkIHRlc3RaU2hyQXJnMzIodWludDMy
X3QgYSkKICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIFpTaHIsIE9yaWdpbigpLCB2YWx1ZSwgdmFsdWUpKTsKIApA
QCAtMzM1NCw3ICszMzYxLDcgQEAgdm9pZCB0ZXN0WlNockFyZ3MzMih1aW50MzJfdCBhLCB1aW50
MzJfdAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgWlNo
ciwgT3JpZ2luKCksCkBAIC0zMzcyLDcgKzMzNzksNyBAQCB2b2lkIHRlc3RaU2hySW1tczMyKHVp
bnQzMl90IGEsIHVpbnQzMl90CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBaU2hyLCBPcmlnaW4oKSwKQEAgLTMzODYsNyArMzM5Myw3IEBAIHZvaWQgdGVz
dFpTaHJBcmdJbW0zMih1aW50MzJfdCBhLCB1aW50MzIKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKICAgICAgICAgICAgIHByb2MsIFpTaHIsIE9yaWdpbigpLApAQCAtMzQxOSw3ICszNDI2
LDcgQEAgdm9pZCB0ZXN0Q2x6QXJnNjQoaW50NjRfdCBhKQogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjAp
OwogICAgIFZhbHVlKiBjbHpWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2x6
LCBPcmlnaW4oKSwgYXJndW1lbnQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNselZhbHVlKTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2x6VmFsdWUpOwogICAgIENIRUNL
KGNvbXBpbGVBbmRSdW48dW5zaWduZWQ+KHByb2MsIGEpID09IGNvdW50TGVhZGluZ1plcm8oYSkp
OwogfQogCkBAIC0zNDMwLDcgKzM0MzcsNyBAQCB2b2lkIHRlc3RDbHpNZW02NChpbnQ2NF90IGEp
CiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUq
IHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQ2NCwg
T3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBjbHpWYWx1ZSA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQ2x6LCBPcmlnaW4oKSwgdmFsdWUpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNselZhbHVlKTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2x6VmFs
dWUpOwogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48dW5zaWduZWQ+KHByb2MsICZhKSA9PSBjb3Vu
dExlYWRpbmdaZXJvKGEpKTsKIH0KIApAQCAtMzQ0MSw3ICszNDQ4LDcgQEAgdm9pZCB0ZXN0Q2x6
QXJnMzIoaW50MzJfdCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwog
ICAgIFZhbHVlKiBjbHpWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2x6LCBP
cmlnaW4oKSwgYXJndW1lbnQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIGNselZhbHVlKTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2x6VmFsdWUpOwogICAgIENIRUNLKGNv
bXBpbGVBbmRSdW48dW5zaWduZWQ+KHByb2MsIGEpID09IGNvdW50TGVhZGluZ1plcm8oYSkpOwog
fQogCkBAIC0zNDUyLDcgKzM0NTksNyBAQCB2b2lkIHRlc3RDbHpNZW0zMihpbnQzMl90IGEpCiAg
ICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIHZh
bHVlID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQzMiwgT3Jp
Z2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBjbHpWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQ2x6LCBPcmlnaW4oKSwgdmFsdWUpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNselZhbHVlKTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2x6VmFsdWUp
OwogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48dW5zaWduZWQ+KHByb2MsICZhKSA9PSBjb3VudExl
YWRpbmdaZXJvKGEpKTsKIH0KIApAQCAtMzQ2MCw3ICszNDY3LDcgQEAgdm9pZCB0ZXN0QWJzQXJn
KGRvdWJsZSBhKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgQWJzLCBPcmlnaW4oKSwKQEAgLTM0NzQsNyArMzQ4MSw3IEBAIHZvaWQgdGVzdEFic0ltbShk
b3VibGUgYSkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25z
dERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEFicywgT3JpZ2luKCksIGFyZ3VtZW50KSk7CiAKQEAgLTM0ODcsNyArMzQ5NCw3IEBAIHZv
aWQgdGVzdEFic01lbShkb3VibGUgYSkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9y
eVZhbHVlKiBsb2FkRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBM
b2FkLCBEb3VibGUsIE9yaWdpbigpLCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQWJzLCBPcmlnaW4oKSwgbG9hZERvdWJsZSkpOwogCkBAIC0zNTAxLDcgKzM1MDgsNyBAQCB2
b2lkIHRlc3RBYnNBYnNBcmcoZG91YmxlIGEpCiAgICAgVmFsdWUqIGZpcnN0QWJzID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50
RlBSMCkpOwogICAgIFZhbHVlKiBzZWNvbmRBYnMgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEFicywgT3JpZ2luKCksIGZpcnN0QWJzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmRBYnMpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmRBYnMpOwog
CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIGEpLCBm
YWJzKGEpKSk7CiB9CkBAIC0zNTEzLDcgKzM1MjAsNyBAQCB2b2lkIHRlc3RBYnNCaXR3aXNlQ2Fz
dEFyZyhkb3VibGUgYSkKICAgICBWYWx1ZSogYXJndW1lbnRBc0ludDY0ID0gcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApOwogICAgIFZhbHVlKiBhcmd1bWVudEFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50QXNJbnQ2NCk7CiAgICAgVmFs
dWUqIGFic1ZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdpbigp
LCBhcmd1bWVudEFzRG91YmxlKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhYnNWYWx1ZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFic1ZhbHVlKTsKIAogICAgIENIRUNL
KGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50
NjRfdD4oYSkpLCBmYWJzKGEpKSk7CiB9CkBAIC0zNTI3LDcgKzM1MzQsNyBAQCB2b2lkIHRlc3RC
aXR3aXNlQ2FzdEFic0JpdHdpc2VDYXN0QXJnKGRvCiAgICAgVmFsdWUqIGFic1ZhbHVlID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdpbigpLCBhcmd1bWVudEFzRG91Ymxl
KTsKICAgICBWYWx1ZSogcmVzdWx0QXNJbnQ2NCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhYnNWYWx1ZSk7CiAKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHRBc0ludDY0KTsK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0QXNJbnQ2NCk7CiAKICAgICBpbnQ2NF90IGV4cGVjdGVkUmVzdWx0ID0gYml0d2lzZV9j
YXN0PGludDY0X3Q+KGZhYnMoYSkpOwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRS
dW48aW50NjRfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDY0X3Q+KGEpKSwgZXhwZWN0ZWRSZXN1
bHQpKTsKQEAgLTM1NDIsNyArMzU0OSw3IEBAIHZvaWQgdGVzdEFic0FyZyhmbG9hdCBhKQogICAg
IFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNh
c3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUq
IHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3Jp
Z2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lk
ZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90
PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihzdGF0aWNfY2FzdDxmbG9hdD4oZmFicyhhKSkp
KSk7CiB9CkBAIC0zNTU0LDcgKzM1NjEsNyBAQCB2b2lkIHRlc3RBYnNJbW0oZmxvYXQgYSkKICAg
ICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQWJzLCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1
bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29t
cGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KGZhYnMoYSkpKSkpOwogfQpAQCAt
MzU2Nyw3ICszNTc0LDcgQEAgdm9pZCB0ZXN0QWJzTWVtKGZsb2F0IGEpCiAgICAgTWVtb3J5VmFs
dWUqIGxvYWRGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwg
RmxvYXQsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdpbigpLCBsb2FkRmxvYXQpOwogICAgIFZhbHVl
KiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9y
aWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJ
ZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCAmYSksIGJpdHdpc2VfY2FzdDxp
bnQzMl90PihzdGF0aWNfY2FzdDxmbG9hdD4oZmFicyhhKSkpKSk7CiB9CkBAIC0zNTgxLDcgKzM1
ODgsNyBAQCB2b2lkIHRlc3RBYnNBYnNBcmcoZmxvYXQgYSkKICAgICBWYWx1ZSogYXJndW1lbnQg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJn
dW1lbnQzMik7CiAgICAgVmFsdWUqIGZpcnN0QWJzID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBBYnMsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHNlY29uZEFicyA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBPcmlnaW4oKSwgZmlyc3RBYnMpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNl
Y29uZEFicyk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHNlY29uZEFicyk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5k
UnVuPGZsb2F0Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBzdGF0aWNfY2FzdDxm
bG9hdD4oZmFicyhhKSkpKTsKIH0KQEAgLTM1OTQsNyArMzYwMSw3IEBAIHZvaWQgdGVzdEFic0Jp
dHdpc2VDYXN0QXJnKGZsb2F0IGEpCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgVmFs
dWUqIGFyZ3VtZW50QXNmbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lz
ZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudEFzSW50MzIpOwogICAgIFZhbHVlKiBhYnNWYWx1ZSA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBPcmlnaW4oKSwgYXJndW1lbnRBc2Zs
b2F0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBhYnNWYWx1ZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIGFic1ZhbHVlKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNv
bXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIHN0YXRp
Y19jYXN0PGZsb2F0PihmYWJzKGEpKSkpOwogfQpAQCAtMzYwOSw3ICszNjE2LDcgQEAgdm9pZCB0
ZXN0Qml0d2lzZUNhc3RBYnNCaXR3aXNlQ2FzdEFyZyhmbAogICAgIFZhbHVlKiBhYnNWYWx1ZSA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBPcmlnaW4oKSwgYXJndW1lbnRBc2Zs
b2F0KTsKICAgICBWYWx1ZSogcmVzdWx0QXNJbnQ2NCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhYnNWYWx1ZSk7CiAKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHRBc0ludDY0
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0QXNJbnQ2NCk7CiAKICAgICBpbnQzMl90IGV4cGVjdGVkUmVzdWx0ID0gYml0d2lz
ZV9jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0PGZsb2F0PihmYWJzKGEpKSk7CiAgICAgQ0hFQ0so
aXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50
MzJfdD4oYSkpLCBleHBlY3RlZFJlc3VsdCkpOwpAQCAtMzYyNiw3ICszNjMzLDcgQEAgdm9pZCB0
ZXN0QWJzQXJnV2l0aFVzZWxlc3NEb3VibGVDb252ZXJzaQogICAgIFZhbHVlKiByZXN1bHQgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFicywgT3JpZ2luKCksIGFzRG91YmxlKTsKICAg
ICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJs
ZVRvRmxvYXQsIE9yaWdpbigpLCByZXN1bHQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3Vs
dCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21w
aWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdp
c2VfY2FzdDxpbnQzMl90PihzdGF0aWNfY2FzdDxmbG9hdD4oZmFicyhhKSkpKSk7CiB9CkBAIC0z
NjQ0LDcgKzM2NTEsNyBAQCB2b2lkIHRlc3RBYnNBcmdXaXRoRWZmZWN0ZnVsRG91YmxlQ29udmVy
CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3
aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKICAgICBWYWx1ZSogZG91YmxlQWRkcmVz
cyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BS
SW5mbzo6YXJndW1lbnRHUFIxKTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHBy
b2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBkb3VibGVBZGRyZXNzKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJlc3VsdDMyKTsKIAogICAgIGRvdWJsZSBlZmZlY3QgPSAwOwogICAgIGludDMyX3QgcmVzdWx0
VmFsdWUgPSBjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90
PihhKSwgJmVmZmVjdCk7CkBAIC0zNjU2LDcgKzM2NjMsNyBAQCB2b2lkIHRlc3RDZWlsQXJnKGRv
dWJsZSBhKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
Q2VpbCwgT3JpZ2luKCksCkBAIC0zNjcwLDcgKzM2NzcsNyBAQCB2b2lkIHRlc3RDZWlsSW1tKGRv
dWJsZSBhKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0
RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQ2VpbCwgT3JpZ2luKCksIGFyZ3VtZW50KSk7CiAKQEAgLTM2ODMsNyArMzY5MCw3IEBAIHZv
aWQgdGVzdENlaWxNZW0oZG91YmxlIGEpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBNZW1v
cnlWYWx1ZSogbG9hZERvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywg
TG9hZCwgRG91YmxlLCBPcmlnaW4oKSwgYWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIENlaWwsIE9yaWdpbigpLCBsb2FkRG91YmxlKSk7CiAKQEAgLTM2OTcsNyArMzcwNCw3IEBA
IHZvaWQgdGVzdENlaWxDZWlsQXJnKGRvdWJsZSBhKQogICAgIFZhbHVlKiBmaXJzdENlaWwgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFy
Z3VtZW50RlBSMCkpOwogICAgIFZhbHVlKiBzZWNvbmRDZWlsID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBDZWlsLCBPcmlnaW4oKSwgZmlyc3RDZWlsKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmRDZWlsKTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vj
b25kQ2VpbCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4o
cHJvYywgYSksIGNlaWwoYSkpKTsKIH0KQEAgLTM3MDksNyArMzcxNiw3IEBAIHZvaWQgdGVzdEZs
b29yQ2VpbEFyZyhkb3VibGUgYSkKICAgICBWYWx1ZSogZmlyc3RDZWlsID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBDZWlsLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjAp
KTsKICAgICBWYWx1ZSogd3JhcHBpbmdGbG9vciA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgRmxvb3IsIE9yaWdpbigpLCBmaXJzdENlaWwpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHdyYXBwaW5nRmxvb3IpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB3cmFwcGlu
Z0Zsb29yKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihw
cm9jLCBhKSwgY2VpbChhKSkpOwogfQpAQCAtMzcyMSw3ICszNzI4LDcgQEAgdm9pZCB0ZXN0Q2Vp
bElUb0Q2NChpbnQ2NF90IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjAp
OwogICAgIFZhbHVlKiBhcmd1bWVudEFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBJVG9ELCBPcmlnaW4oKSwgYXJndW1lbnQpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIENlaWwsIE9yaWdpbigpLCBhcmd1bWVudEFzRG91YmxlKSk7CiAKQEAgLTM3MzYsNyArMzc0
Myw3IEBAIHZvaWQgdGVzdENlaWxJVG9EMzIoaW50NjRfdCBhKQogICAgICAgICByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCkpOwogICAgIFZhbHVlKiBhcmd1bWVudEFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgYXJndW1lbnQpOwogCi0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBhcmd1bWVudEFzRG91YmxlKSk7CiAKQEAgLTM3NTIs
NyArMzc1OSw3IEBAIHZvaWQgdGVzdENlaWxBcmcoZmxvYXQgYSkKICAgICBWYWx1ZSogYXJndW1l
bnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwg
YXJndW1lbnQzMik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQ2VpbCwgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBp
bGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lz
ZV9jYXN0PGludDMyX3Q+KGNlaWxmKGEpKSkpOwogfQpAQCAtMzc2NCw3ICszNzcxLDcgQEAgdm9p
ZCB0ZXN0Q2VpbEltbShmbG9hdCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVu
ZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogcmVz
dWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDZWlsLCBPcmlnaW4oKSwgYXJndW1l
bnQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
Qml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwog
CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oY2VpbGYoYSkpKSk7
CiB9CkBAIC0zNzc3LDcgKzM3ODQsNyBAQCB2b2lkIHRlc3RDZWlsTWVtKGZsb2F0IGEpCiAgICAg
TWVtb3J5VmFsdWUqIGxvYWRGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJv
YywgTG9hZCwgRmxvYXQsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogcmVzdWx0ID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDZWlsLCBPcmlnaW4oKSwgbG9hZEZsb2F0KTsK
ICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdp
c2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAg
IENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgJmEpLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oY2VpbGYoYSkpKSk7CiB9CkBAIC0zNzkxLDcgKzM3OTgsNyBAQCB2
b2lkIHRlc3RDZWlsQ2VpbEFyZyhmbG9hdCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMy
KTsKICAgICBWYWx1ZSogZmlyc3RDZWlsID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBD
ZWlsLCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZhbHVlKiBzZWNvbmRDZWlsID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDZWlsLCBPcmlnaW4oKSwgZmlyc3RDZWlsKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNv
bmRDZWlsKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgc2Vjb25kQ2VpbCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5k
UnVuPGZsb2F0Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBjZWlsZihhKSkpOwog
fQpAQCAtMzgwNSw3ICszODEyLDcgQEAgdm9pZCB0ZXN0Rmxvb3JDZWlsQXJnKGZsb2F0IGEpCiAg
ICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNl
Q2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiBmaXJzdENlaWwgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAg
VmFsdWUqIHdyYXBwaW5nRmxvb3IgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29y
LCBPcmlnaW4oKSwgZmlyc3RDZWlsKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB3cmFwcGluZ0Zsb29yKTsKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgd3JhcHBpbmdGbG9vcik7
CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBjZWlsZihhKSkpOwogfQpAQCAtMzgyMSw3ICszODI4LDcg
QEAgdm9pZCB0ZXN0Q2VpbEFyZ1dpdGhVc2VsZXNzRG91YmxlQ29udmVycwogICAgIFZhbHVlKiBy
ZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBhc0Rv
dWJsZSk7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICBWYWx1ZSogcmVzdWx0
MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwg
ZmxvYXRSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVu
dGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4o
YSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oY2VpbGYoYSkpKSk7CiB9CkBAIC0zODM5LDcgKzM4
NDYsNyBAQCB2b2lkIHRlc3RDZWlsQXJnV2l0aEVmZmVjdGZ1bERvdWJsZUNvbnZlCiAgICAgVmFs
dWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwg
T3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKICAgICBWYWx1ZSogZG91YmxlQWRkcmVzcyA9IHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIxKTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3Jl
LCBPcmlnaW4oKSwgcmVzdWx0LCBkb3VibGVBZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMy
KTsKIAogICAgIGRvdWJsZSBlZmZlY3QgPSAwOwogICAgIGludDMyX3QgcmVzdWx0VmFsdWUgPSBj
b21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgJmVm
ZmVjdCk7CkBAIC0zODUxLDcgKzM4NTgsNyBAQCB2b2lkIHRlc3RGbG9vckFyZyhkb3VibGUgYSkK
IHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEZsb29yLCBP
cmlnaW4oKSwKQEAgLTM4NjUsNyArMzg3Miw3IEBAIHZvaWQgdGVzdEZsb29ySW1tKGRvdWJsZSBh
KQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91Ymxl
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxv
b3IsIE9yaWdpbigpLCBhcmd1bWVudCkpOwogCkBAIC0zODc4LDcgKzM4ODUsNyBAQCB2b2lkIHRl
c3RGbG9vck1lbShkb3VibGUgYSkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZh
bHVlKiBsb2FkRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2Fk
LCBEb3VibGUsIE9yaWdpbigpLCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
Rmxvb3IsIE9yaWdpbigpLCBsb2FkRG91YmxlKSk7CiAKQEAgLTM4OTIsNyArMzg5OSw3IEBAIHZv
aWQgdGVzdEZsb29yRmxvb3JBcmcoZG91YmxlIGEpCiAgICAgVmFsdWUqIGZpcnN0Rmxvb3IgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjph
cmd1bWVudEZQUjApKTsKICAgICBWYWx1ZSogc2Vjb25kRmxvb3IgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgZmlyc3RGbG9vcik7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kRmxvb3Ip
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBzZWNvbmRGbG9vcik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRv
dWJsZT4ocHJvYywgYSksIGZsb29yKGEpKSk7CiB9CkBAIC0zOTA0LDcgKzM5MTEsNyBAQCB2b2lk
IHRlc3RDZWlsRmxvb3JBcmcoZG91YmxlIGEpCiAgICAgVmFsdWUqIGZpcnN0Rmxvb3IgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1
bWVudEZQUjApKTsKICAgICBWYWx1ZSogd3JhcHBpbmdDZWlsID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBDZWlsLCBPcmlnaW4oKSwgZmlyc3RGbG9vcik7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgd3JhcHBpbmdDZWlsKTsK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
d3JhcHBpbmdDZWlsKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91
YmxlPihwcm9jLCBhKSwgZmxvb3IoYSkpKTsKIH0KQEAgLTM5MTYsNyArMzkyMyw3IEBAIHZvaWQg
dGVzdEZsb29ySVRvRDY0KGludDY0X3QgYSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50QXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBhcmd1bWVudEFzRG91YmxlKSk7CiAKQEAgLTM5
MzEsNyArMzkzOCw3IEBAIHZvaWQgdGVzdEZsb29ySVRvRDMyKGludDY0X3QgYSkKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSogYXJndW1lbnRBc0RvdWJsZSA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGFyZ3VtZW50KTsKIAotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGFyZ3VtZW50QXNEb3VibGUpKTsK
IApAQCAtMzk0Nyw3ICszOTU0LDcgQEAgdm9pZCB0ZXN0Rmxvb3JBcmcoZmxvYXQgYSkKICAgICBW
YWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0
LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUq
IHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3Jp
Z2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lk
ZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90
PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihmbG9vcmYoYSkpKSk7CiB9CkBAIC0zOTU5LDcg
KzM5NjYsNyBAQCB2b2lkIHRlc3RGbG9vckltbShmbG9hdCBhKQogICAgIFZhbHVlKiBhcmd1bWVu
dCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsK
ICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwg
T3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQz
Mik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50
MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMy
X3Q+KGZsb29yZihhKSkpKTsKIH0KQEAgLTM5NzIsNyArMzk3OSw3IEBAIHZvaWQgdGVzdEZsb29y
TWVtKGZsb2F0IGEpCiAgICAgTWVtb3J5VmFsdWUqIGxvYWRGbG9hdCA9IHJvb3QtPmFwcGVuZE5l
dzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgRmxvYXQsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAg
ICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3Jp
Z2luKCksIGxvYWRGbG9hdCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMy
X3Q+KHByb2MsICZhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGZsb29yZihhKSkpKTsKIH0KQEAg
LTM5ODYsNyArMzk5Myw3IEBAIHZvaWQgdGVzdEZsb29yRmxvb3JBcmcoZmxvYXQgYSkKICAgICBW
YWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0
LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUqIGZpcnN0Rmxvb3IgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZh
bHVlKiBzZWNvbmRGbG9vciA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9y
aWdpbigpLCBmaXJzdEZsb29yKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmRGbG9vcik7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZEZsb29yKTsKIAogICAg
IENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsIGJpdHdpc2VfY2Fz
dDxpbnQzMl90PihhKSksIGZsb29yZihhKSkpOwogfQpAQCAtNDAwMCw3ICs0MDA3LDcgQEAgdm9p
ZCB0ZXN0Q2VpbEZsb29yQXJnKGZsb2F0IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIp
OwogICAgIFZhbHVlKiBmaXJzdEZsb29yID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBG
bG9vciwgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBWYWx1ZSogd3JhcHBpbmdDZWlsID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDZWlsLCBPcmlnaW4oKSwgZmlyc3RGbG9vcik7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
d3JhcHBpbmdDZWlsKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgd3JhcHBpbmdDZWlsKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNv
bXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGZsb29y
ZihhKSkpOwogfQpAQCAtNDAxNiw3ICs0MDIzLDcgQEAgdm9pZCB0ZXN0Rmxvb3JBcmdXaXRoVXNl
bGVzc0RvdWJsZUNvbnZlcgogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgYXNEb3VibGUpOwogICAgIFZhbHVlKiBmbG9hdFJl
c3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2lu
KCksIHJlc3VsdCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJf
dD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+
KGZsb29yZihhKSkpKTsKIH0KQEAgLTQwMzQsNyArNDA0MSw3IEBAIHZvaWQgdGVzdEZsb29yQXJn
V2l0aEVmZmVjdGZ1bERvdWJsZUNvbnYKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwog
ICAgIFZhbHVlKiBkb3VibGVBZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwogICAgIHJvb3QtPmFw
cGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGRvdWJs
ZUFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgZG91YmxlIGVmZmVjdCA9
IDA7CiAgICAgaW50MzJfdCByZXN1bHRWYWx1ZSA9IGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJv
YywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCAmZWZmZWN0KTsKQEAgLTQwNDYsNyArNDA1Myw3
IEBAIHZvaWQgdGVzdFNxcnRBcmcoZG91YmxlIGEpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBTcXJ0LCBPcmlnaW4oKSwKQEAgLTQwNjAsNyArNDA2Nyw3
IEBAIHZvaWQgdGVzdFNxcnRJbW0oZG91YmxlIGEpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQg
PSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTcXJ0LCBPcmlnaW4oKSwgYXJndW1lbnQpKTsKIApA
QCAtNDA3Myw3ICs0MDgwLDcgQEAgdm9pZCB0ZXN0U3FydE1lbShkb3VibGUgYSkKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkRG91YmxlID0gcm9vdC0+YXBwZW5k
TmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBEb3VibGUsIE9yaWdpbigpLCBhZGRyZXNzKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3FydCwgT3JpZ2luKCksIGxvYWREb3VibGUpKTsK
IApAQCAtNDA4OSw3ICs0MDk2LDcgQEAgdm9pZCB0ZXN0U3FydEFyZyhmbG9hdCBhKQogICAgIFZh
bHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3Qs
IE9yaWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBTcXJ0LCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZhbHVlKiBy
ZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdp
bigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVu
dGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4o
YSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KHNxcnQoYSkpKSkp
OwogfQpAQCAtNDEwMSw3ICs0MTA4LDcgQEAgdm9pZCB0ZXN0U3FydEltbShmbG9hdCBhKQogICAg
IFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBTcXJ0LCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1
bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29t
cGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KHNxcnQoYSkpKSkpOwogfQpAQCAt
NDExNCw3ICs0MTIxLDcgQEAgdm9pZCB0ZXN0U3FydE1lbShmbG9hdCBhKQogICAgIE1lbW9yeVZh
bHVlKiBsb2FkRmxvYXQgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQs
IEZsb2F0LCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgU3FydCwgT3JpZ2luKCksIGxvYWRGbG9hdCk7CiAgICAgVmFs
dWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwg
T3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhp
c0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsICZhKSwgYml0d2lzZV9jYXN0
PGludDMyX3Q+KHN0YXRpY19jYXN0PGZsb2F0PihzcXJ0KGEpKSkpKTsKIH0KQEAgLTQxMzAsNyAr
NDEzNyw3IEBAIHZvaWQgdGVzdFNxcnRBcmdXaXRoVXNlbGVzc0RvdWJsZUNvbnZlcnMKICAgICBW
YWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTcXJ0LCBPcmlnaW4o
KSwgYXNEb3VibGUpOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgVmFsdWUq
IHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3Jp
Z2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNL
KGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0PGZsb2F0PihzcXJ0
KGEpKSkpKTsKIH0KQEAgLTQxNDgsNyArNDE1NSw3IEBAIHZvaWQgdGVzdFNxcnRBcmdXaXRoRWZm
ZWN0ZnVsRG91YmxlQ29udmUKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwogICAgIFZh
bHVlKiBkb3VibGVBZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwogICAgIHJvb3QtPmFwcGVuZE5l
dzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGRvdWJsZUFkZHJl
c3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgZG91YmxlIGVmZmVjdCA9IDA7CiAg
ICAgaW50MzJfdCByZXN1bHRWYWx1ZSA9IGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0
d2lzZV9jYXN0PGludDMyX3Q+KGEpLCAmZWZmZWN0KTsKQEAgLTQxNzIsNyArNDE3OSw3IEBAIHZv
aWQgdGVzdENvbXBhcmVUd29GbG9hdFRvRG91YmxlKGZsb2F0IGEKICAgICBWYWx1ZSogYXJnMkFz
RG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmln
aW4oKSwgYXJnMkZsb2F0KTsKICAgICBWYWx1ZSogZXF1YWwgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEVxdWFsLCBPcmlnaW4oKSwgYXJnMUFzRG91YmxlLCBhcmcyQXNEb3VibGUpOwog
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgZXF1YWwpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBlcXVhbCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHBy
b2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSA9
PSAoYSA9PSBiKSk7CiB9CkBAIC00MTkwLDcgKzQxOTcsNyBAQCB2b2lkIHRlc3RDb21wYXJlT25l
RmxvYXRUb0RvdWJsZShmbG9hdCBhCiAgICAgVmFsdWUqIGFyZzJBc0RvdWJsZSA9IHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1l
bnRGUFIwKTsKICAgICBWYWx1ZSogZXF1YWwgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEVxdWFsLCBPcmlnaW4oKSwgYXJnMUFzRG91YmxlLCBhcmcyQXNEb3VibGUpOwogCi0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZXF1YWwp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBlcXVhbCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIGJpdHdp
c2VfY2FzdDxpbnQzMl90PihhKSwgYikgPT0gKGEgPT0gYikpOwogfQpAQCAtNDIxNCwyMyArNDIy
MSwyMyBAQCB2b2lkIHRlc3RDb21wYXJlRmxvYXRUb0RvdWJsZVRocm91Z2hQaGkoCiAgICAgVmFs
dWUqIGFyZzJBc0Zsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zs
b2F0LCBPcmlnaW4oKSwgYXJnMkFzRG91YmxlKTsKICAgICBWYWx1ZSogYXJnMkFzRlJvdW5kZWRE
b3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdp
bigpLCBhcmcyQXNGbG9hdCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwg
T3JpZ2luKCksCiAgICAgICAgIGNvbmRpdGlvbiwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRo
ZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKICAgICBVcHNpbG9uVmFsdWUq
IHRoZW5WYWx1ZSA9IHRoZW5DYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmln
aW4oKSwgYXJnMUFzRG91YmxlKTsKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CisgICAgdGhl
bkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVl
bnRlZEJsb2NrKHRhaWwpKTsKIAogICAgIFZhbHVlKiBlbHNlQ29uc3QgPSBlbHNlQ2FzZS0+YXBw
ZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwLik7CiAgICAgVXBzaWxv
blZhbHVlKiBlbHNlVmFsdWUgPSBlbHNlQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJv
YywgT3JpZ2luKCksIGVsc2VDb25zdCk7Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOworICAg
IGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZy
ZXF1ZW50ZWRCbG9jayh0YWlsKSk7CiAKICAgICBWYWx1ZSogZG91YmxlSW5wdXQgPSB0YWlsLT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIFBoaSwgRG91YmxlLCBPcmlnaW4oKSk7CiAgICAgdGhlblZh
bHVlLT5zZXRQaGkoZG91YmxlSW5wdXQpOwogICAgIGVsc2VWYWx1ZS0+c2V0UGhpKGRvdWJsZUlu
cHV0KTsKICAgICBWYWx1ZSogZXF1YWwgPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEVx
dWFsLCBPcmlnaW4oKSwgZG91YmxlSW5wdXQsIGFyZzJBc0ZSb3VuZGVkRG91YmxlKTsKLSAgICB0
YWlsLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBlcXVh
bCk7CisgICAgdGFpbC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIGVxdWFsKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgaW50MzJf
dCBpbnRlZ2VyQSA9IGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKTsKQEAgLTQyNjEsNyArNDI2OCw3
IEBAIHZvaWQgdGVzdERvdWJsZVRvRmxvYXRUaHJvdWdoUGhpKGZsb2F0IHYKICAgICBWYWx1ZSog
ZmxvYXRWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9y
aWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1ZSogYXJnQXNEb3VibGUgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBmbG9hdFZhbHVlKTsK
IAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAg
Y29uZGl0aW9uLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVk
QmxvY2soZWxzZUNhc2UpKTsKQEAgLTQyNjksMTcgKzQyNzYsMTcgQEAgdm9pZCB0ZXN0RG91Ymxl
VG9GbG9hdFRocm91Z2hQaGkoZmxvYXQgdgogICAgIFZhbHVlKiBwb3N0aXRpdmVDb25zdCA9IHRo
ZW5DYXNlLT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyLjVm
KTsKICAgICBWYWx1ZSogdGhlbkFkZCA9IHRoZW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEFkZCwgT3JpZ2luKCksIGFyZ0FzRG91YmxlLCBwb3N0aXRpdmVDb25zdCk7CiAgICAgVXBzaWxv
blZhbHVlKiB0aGVuVmFsdWUgPSB0aGVuQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJv
YywgT3JpZ2luKCksIHRoZW5BZGQpOwotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKKyAgICB0
aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVx
dWVudGVkQmxvY2sodGFpbCkpOwogCiAgICAgVmFsdWUqIGVsc2VDb25zdCA9IGVsc2VDYXNlLT5h
cHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIE1fUEkpOwogICAgIFVw
c2lsb25WYWx1ZSogZWxzZVZhbHVlID0gZWxzZUNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBlbHNlQ29uc3QpOwotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsK
KyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigp
LCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOwogCiAgICAgVmFsdWUqIGRvdWJsZUlucHV0ID0gdGFp
bC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBQaGksIERvdWJsZSwgT3JpZ2luKCkpOwogICAgIHRo
ZW5WYWx1ZS0+c2V0UGhpKGRvdWJsZUlucHV0KTsKICAgICBlbHNlVmFsdWUtPnNldFBoaShkb3Vi
bGVJbnB1dCk7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gdGFpbC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgZG91YmxlSW5wdXQpOwotICAgIHRhaWwt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGZsb2F0UmVz
dWx0KTsKKyAgICB0YWlsLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgZmxvYXRSZXN1bHQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAg
ICBDSEVDSyhpc0lkZW50aWNhbChpbnZva2U8ZmxvYXQ+KCpjb2RlLCAxLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4odmFsdWUpKSwgdmFsdWUgKyA0Mi41ZikpOwpAQCAtNDI5OSwxOCArNDMwNiwxOCBA
QCB2b2lkIHRlc3REb3VibGVQcm9kdWNlclBoaVRvRmxvYXRDb252ZXJzCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIxKSk7CiAgICAgVmFsdWUqIGZsb2F0VmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIGNvbmRpdGlvbiwK
ICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VD
YXNlKSk7CiAKICAgICBWYWx1ZSogYXNEb3VibGUgPSB0aGVuQ2FzZS0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSk7CiAgICAgVXBzaWxv
blZhbHVlKiB0aGVuVmFsdWUgPSB0aGVuQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJv
YywgT3JpZ2luKCksIGFzRG91YmxlKTsKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CisgICAg
dGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJl
cXVlbnRlZEJsb2NrKHRhaWwpKTsKIAogICAgIFZhbHVlKiBjb25zdERvdWJsZSA9IGVsc2VDYXNl
LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyLjUpOwogICAg
IFVwc2lsb25WYWx1ZSogZWxzZVZhbHVlID0gZWxzZUNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBjb25zdERvdWJsZSk7Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFp
bCkpOworICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3Jp
Z2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CiAKICAgICBWYWx1ZSogZG91YmxlSW5wdXQg
PSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFBoaSwgRG91YmxlLCBPcmlnaW4oKSk7CiAg
ICAgdGhlblZhbHVlLT5zZXRQaGkoZG91YmxlSW5wdXQpOwpAQCAtNDMxOSw3ICs0MzI2LDcgQEAg
dm9pZCB0ZXN0RG91YmxlUHJvZHVjZXJQaGlUb0Zsb2F0Q29udmVycwogICAgIFZhbHVlKiBhcmdB
c0RvdWJsZUFnYWluID0gdGFpbC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91Ymxl
LCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSk7CiAgICAgVmFsdWUqIGZpbmFsQWRkID0gdGFpbC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBkb3VibGVJbnB1dCwgYXJnQXNEb3Vi
bGVBZ2Fpbik7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gdGFpbC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgZmluYWxBZGQpOwotICAgIHRhaWwtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGZsb2F0UmVzdWx0
KTsKKyAgICB0YWlsLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgZmxvYXRSZXN1bHQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBD
SEVDSyhpc0lkZW50aWNhbChpbnZva2U8ZmxvYXQ+KCpjb2RlLCAxLCBiaXR3aXNlX2Nhc3Q8aW50
MzJfdD4odmFsdWUpKSwgdmFsdWUgKyB2YWx1ZSkpOwpAQCAtNDM0MSwxOCArNDM0OCwxOCBAQCB2
b2lkIHRlc3REb3VibGVQcm9kdWNlclBoaVRvRmxvYXRDb252ZXJzCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIxKSk7CiAgICAgVmFsdWUqIGZsb2F0VmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIGNvbmRpdGlvbiwKICAg
ICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNl
KSk7CiAKICAgICBWYWx1ZSogYXNEb3VibGUgPSB0aGVuQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSk7CiAgICAgVXBzaWxvblZh
bHVlKiB0aGVuVmFsdWUgPSB0aGVuQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywg
T3JpZ2luKCksIGFzRG91YmxlKTsKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CisgICAgdGhl
bkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVl
bnRlZEJsb2NrKHRhaWwpKTsKIAogICAgIFZhbHVlKiBjb25zdERvdWJsZSA9IGVsc2VDYXNlLT5h
cHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyLjUpOwogICAgIFVw
c2lsb25WYWx1ZSogZWxzZVZhbHVlID0gZWxzZUNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBjb25zdERvdWJsZSk7Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkp
OworICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2lu
KCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CiAKICAgICBWYWx1ZSogZG91YmxlSW5wdXQgPSB0
YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFBoaSwgRG91YmxlLCBPcmlnaW4oKSk7CiAgICAg
dGhlblZhbHVlLT5zZXRQaGkoZG91YmxlSW5wdXQpOwpAQCAtNDM2OCw3ICs0Mzc1LDcgQEAgdm9p
ZCB0ZXN0RG91YmxlUHJvZHVjZXJQaGlUb0Zsb2F0Q29udmVycwogICAgIC8vIFRoaXMgb25lICpj
YW5ub3QqIGJlIGVsaW1pbmF0ZWQKICAgICBWYWx1ZSogZG91YmxlQWRkID0gdGFpbC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBkb3VibGVJbnB1dCwgZG91YmxlUmVzdWx0
KTsKIAotICAgIHRhaWwtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIGRvdWJsZUFkZCk7CisgICAgdGFpbC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIGRvdWJsZUFkZCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxl
KHByb2MpOwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGludm9rZTxkb3VibGU+KCpjb2RlLCAxLCBi
aXR3aXNlX2Nhc3Q8aW50MzJfdD4odmFsdWUpKSwgKHZhbHVlICsgdmFsdWUpICsgc3RhdGljX2Nh
c3Q8ZG91YmxlPih2YWx1ZSkpKTsKQEAgLTQzODgsMTggKzQzOTUsMTggQEAgdm9pZCB0ZXN0RG91
YmxlUHJvZHVjZXJQaGlXaXRoTm9uRmxvYXRDbwogICAgICAgICByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSkpOwog
ICAgIFZhbHVlKiBmbG9hdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3
aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICBjb25kaXRpb24sCiAgICAgICAgIEZyZXF1
ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCiAgICAg
VmFsdWUqIGFzRG91YmxlID0gdGhlbkNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRU
b0RvdWJsZSwgT3JpZ2luKCksIGZsb2F0VmFsdWUpOwogICAgIFVwc2lsb25WYWx1ZSogdGhlblZh
bHVlID0gdGhlbkNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCBh
c0RvdWJsZSk7Ci0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1
bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOworICAgIHRoZW5DYXNlLT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0
YWlsKSk7CiAKICAgICBWYWx1ZSogY29uc3REb3VibGUgPSBlbHNlQ2FzZS0+YXBwZW5kTmV3PENv
bnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBjb25zdFZhbHVlKTsKICAgICBVcHNpbG9u
VmFsdWUqIGVsc2VWYWx1ZSA9IGVsc2VDYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgY29uc3REb3VibGUpOwotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKKyAg
ICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBG
cmVxdWVudGVkQmxvY2sodGFpbCkpOwogCiAgICAgVmFsdWUqIGRvdWJsZUlucHV0ID0gdGFpbC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBQaGksIERvdWJsZSwgT3JpZ2luKCkpOwogICAgIHRoZW5W
YWx1ZS0+c2V0UGhpKGRvdWJsZUlucHV0KTsKQEAgLTQ0MDgsNyArNDQxNSw3IEBAIHZvaWQgdGVz
dERvdWJsZVByb2R1Y2VyUGhpV2l0aE5vbkZsb2F0Q28KICAgICBWYWx1ZSogYXJnQXNEb3VibGVB
Z2FpbiA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2lu
KCksIGZsb2F0VmFsdWUpOwogICAgIFZhbHVlKiBmaW5hbEFkZCA9IHRhaWwtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgZG91YmxlSW5wdXQsIGFyZ0FzRG91YmxlQWdhaW4p
OwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
RG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIGZpbmFsQWRkKTsKLSAgICB0YWlsLT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CisgICAg
dGFpbC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGZsb2F0
UmVzdWx0KTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgQ0hFQ0soaXNJ
ZGVudGljYWwoaW52b2tlPGZsb2F0PigqY29kZSwgMSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHZh
bHVlKSksIHZhbHVlICsgdmFsdWUpKTsKQEAgLTQ0MjEsNyArNDQyOCw3IEBAIHZvaWQgdGVzdERv
dWJsZUFyZ1RvSW50NjRCaXR3aXNlQ2FzdChkb3UKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKIAot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdHdpc2VDYXN0LCBPcmln
aW4oKSwgYXJndW1lbnQpKTsKQEAgLTQ0MzUsNyArNDQ0Miw3IEBAIHZvaWQgdGVzdERvdWJsZUlt
bVRvSW50NjRCaXR3aXNlQ2FzdChkb3UKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJs
ZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAog
ICAgICAgICAgICAgcHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudCkpOwpAQCAt
NDQ1MCw3ICs0NDU3LDcgQEAgdm9pZCB0ZXN0VHdvQml0d2lzZUNhc3RPbkRvdWJsZShkb3VibGUg
dgogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogZmly
c3QgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwg
YXJndW1lbnQpOwogICAgIFZhbHVlKiBzZWNvbmQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmlyc3QpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZCk7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZCk7CiAK
ICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgdmFsdWUp
LCB2YWx1ZSkpOwogfQpAQCAtNDQ2Miw3ICs0NDY5LDcgQEAgdm9pZCB0ZXN0Qml0d2lzZUNhc3RP
bkRvdWJsZUluTWVtb3J5KGRvdQogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjAp
OwogICAgIE1lbW9yeVZhbHVlKiBsb2FkRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZh
bHVlPihwcm9jLCBMb2FkLCBEb3VibGUsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSog
Y2FzdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigp
LCBsb2FkRG91YmxlKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCBjYXN0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FzdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChj
b21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsICZ2YWx1ZSksIGJpdHdpc2VfY2FzdDxpbnQ2NF90
Pih2YWx1ZSkpKTsKIH0KQEAgLTQ0NzksNyArNDQ4Niw3IEBAIHZvaWQgdGVzdEJpdHdpc2VDYXN0
T25Eb3VibGVJbk1lbW9yeUluZGUKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYmFzZSwgc2NhbGVkT2Zmc2V0KTsKICAgICBN
ZW1vcnlWYWx1ZSogbG9hZERvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJv
YywgTG9hZCwgRG91YmxlLCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIGNhc3QgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgbG9hZERv
dWJsZSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgY2FzdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIGNhc3QpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFu
ZFJ1bjxpbnQ2NF90Pihwcm9jLCAmdmFsdWUsIDApLCBiaXR3aXNlX2Nhc3Q8aW50NjRfdD4odmFs
dWUpKSk7CiB9CkBAIC00NDkwLDcgKzQ0OTcsNyBAQCB2b2lkIHRlc3RJbnQ2NEJBcmdUb0RvdWJs
ZUJpdHdpc2VDYXN0KGluCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
ICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50
KSk7CkBAIC00NTA0LDcgKzQ1MTEsNyBAQCB2b2lkIHRlc3RJbnQ2NEJJbW1Ub0RvdWJsZUJpdHdp
c2VDYXN0KGluCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBW
YWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmln
aW4oKSwgdmFsdWUpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
Qml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudCkpOwpAQCAtNDUxOSw3ICs0NTI2LDcgQEAg
dm9pZCB0ZXN0VHdvQml0d2lzZUNhc3RPbkludDY0KGludDY0X3QgdgogICAgIFZhbHVlKiBhcmd1
bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
R1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBWYWx1ZSogZmlyc3QgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZh
bHVlKiBzZWNvbmQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBP
cmlnaW4oKSwgZmlyc3QpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHNlY29uZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZCk7CiAKICAgICBDSEVDSyhpc0lkZW50
aWNhbChjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIHZhbHVlKSwgdmFsdWUpKTsKIH0KQEAg
LTQ1MzEsNyArNDUzOCw3IEBAIHZvaWQgdGVzdEJpdHdpc2VDYXN0T25JbnQ2NEluTWVtb3J5KGlu
dDYKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBNZW1vcnlWYWx1
ZSogbG9hZERvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwg
SW50NjQsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogY2FzdCA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBsb2FkRG91YmxlKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBj
YXN0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgY2FzdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJs
ZT4ocHJvYywgJnZhbHVlKSwgYml0d2lzZV9jYXN0PGRvdWJsZT4odmFsdWUpKSk7CiB9CkBAIC00
NTQ4LDcgKzQ1NTUsNyBAQCB2b2lkIHRlc3RCaXR3aXNlQ2FzdE9uSW50NjRJbk1lbW9yeUluZGV4
CiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwg
T3JpZ2luKCksIGJhc2UsIHNjYWxlZE9mZnNldCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWREb3Vi
bGUgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDY0LCBPcmln
aW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIGNhc3QgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgbG9hZERvdWJsZSk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FzdCk7CisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNhc3Qp
OwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsICZ2
YWx1ZSwgMCksIGJpdHdpc2VfY2FzdDxkb3VibGU+KHZhbHVlKSkpOwogfQpAQCAtNDU1OSw3ICs0
NTY2LDcgQEAgdm9pZCB0ZXN0RmxvYXRJbW1Ub0ludDMyQml0d2lzZUNhc3QoZmxvYQogICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0g
cm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKTsK
IAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdHdpc2VDYXN0LCBP
cmlnaW4oKSwgYXJndW1lbnQpKTsKQEAgLTQ1NzQsNyArNDU4MSw3IEBAIHZvaWQgdGVzdEJpdHdp
c2VDYXN0T25GbG9hdEluTWVtb3J5KGZsb2EKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwKTsKICAgICBNZW1vcnlWYWx1ZSogbG9hZEZsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PE1l
bW9yeVZhbHVlPihwcm9jLCBMb2FkLCBGbG9hdCwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZh
bHVlKiBjYXN0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3Jp
Z2luKCksIGxvYWRGbG9hdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgY2FzdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNhc3QpOwogCiAgICAgQ0hFQ0soaXNJZGVudGlj
YWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCAmdmFsdWUpLCBiaXR3aXNlX2Nhc3Q8aW50
MzJfdD4odmFsdWUpKSk7CiB9CkBAIC00NTg1LDcgKzQ1OTIsNyBAQCB2b2lkIHRlc3RJbnQzMkJB
cmdUb0Zsb2F0Qml0d2lzZUNhc3QoaW50CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCks
IGFyZ3VtZW50KSk7CkBAIC00NTk5LDcgKzQ2MDYsNyBAQCB2b2lkIHRlc3RJbnQzMkJJbW1Ub0Zs
b2F0Qml0d2lzZUNhc3QoaW50CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgdmFsdWUpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudCkpOwpAQCAtNDYxNCw3ICs0
NjIxLDcgQEAgdm9pZCB0ZXN0VHdvQml0d2lzZUNhc3RPbkludDMyKGludDMyX3QgdgogICAgIFZh
bHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBWYWx1ZSogZmlyc3QgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQp
OwogICAgIFZhbHVlKiBzZWNvbmQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdp
c2VDYXN0LCBPcmlnaW4oKSwgZmlyc3QpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZCk7CiAKICAgICBDSEVD
Syhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIHZhbHVlKSwgdmFsdWUp
KTsKIH0KQEAgLTQ2MjYsNyArNDYzMyw3IEBAIHZvaWQgdGVzdEJpdHdpc2VDYXN0T25JbnQzMklu
TWVtb3J5KGludDMKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBN
ZW1vcnlWYWx1ZSogbG9hZEZsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9j
LCBMb2FkLCBJbnQzMiwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBjYXN0ID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGxvYWRGbG9h
dCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgY2FzdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIGNhc3QpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1
bjxmbG9hdD4ocHJvYywgJnZhbHVlKSwgYml0d2lzZV9jYXN0PGZsb2F0Pih2YWx1ZSkpKTsKIH0K
QEAgLTQ2MzcsNyArNDY0NCw3IEBAIHZvaWQgdGVzdENvbnZlcnREb3VibGVUb0Zsb2F0QXJnKGRv
dWJsZSAKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVl
KiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogYXNGbG9hdCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIGFyZ3VtZW50
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBhc0Zsb2F0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgYXNGbG9hdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxl
QW5kUnVuPGZsb2F0Pihwcm9jLCB2YWx1ZSksIHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZSkpKTsK
IH0KQEAgLTQ2NDgsNyArNDY1NSw3IEBAIHZvaWQgdGVzdENvbnZlcnREb3VibGVUb0Zsb2F0SW1t
KGRvdWJsZSAKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZh
bHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgdmFsdWUpOwogICAgIFZhbHVlKiBhc0Zsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgYXJndW1lbnQpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFzRmxvYXQp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBhc0Zsb2F0KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+
KHByb2MpLCBzdGF0aWNfY2FzdDxmbG9hdD4odmFsdWUpKSk7CiB9CkBAIC00NjYwLDcgKzQ2Njcs
NyBAQCB2b2lkIHRlc3RDb252ZXJ0RG91YmxlVG9GbG9hdE1lbShkb3VibGUgCiAgICAgVmFsdWUq
IGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWRlZERvdWJs
ZSA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgRG91YmxlLCBPcmln
aW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIGFzRmxvYXQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBsb2FkZWREb3VibGUpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFzRmxv
YXQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBhc0Zsb2F0KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48Zmxv
YXQ+KHByb2MsICZ2YWx1ZSksIHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZSkpKTsKIH0KQEAgLTQ2
NzMsNyArNDY4MCw3IEBAIHZvaWQgdGVzdENvbnZlcnRGbG9hdFRvRG91YmxlQXJnKGZsb2F0IHYK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSogZmxvYXRWYWx1ZSA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMy
KTsKICAgICBWYWx1ZSogYXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZs
b2F0VG9Eb3VibGUsIE9yaWdpbigpLCBmbG9hdFZhbHVlKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0RvdWJsZSk7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFzRG91Ymxl
KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBi
aXR3aXNlX2Nhc3Q8aW50MzJfdD4odmFsdWUpKSwgc3RhdGljX2Nhc3Q8ZG91YmxlPih2YWx1ZSkp
KTsKIH0KQEAgLTQ2ODQsNyArNDY5MSw3IEBAIHZvaWQgdGVzdENvbnZlcnRGbG9hdFRvRG91Ymxl
SW1tKGZsb2F0IHYKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAg
IFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2Ms
IE9yaWdpbigpLCB2YWx1ZSk7CiAgICAgVmFsdWUqIGFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgYXJndW1lbnQpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFzRG91
YmxlKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgYXNEb3VibGUpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxk
b3VibGU+KHByb2MpLCBzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVlKSkpOwogfQpAQCAtNDY5Niw3
ICs0NzAzLDcgQEAgdm9pZCB0ZXN0Q29udmVydEZsb2F0VG9Eb3VibGVNZW0oZmxvYXQgdgogICAg
IFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2Fk
ZWRGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgRmxvYXQs
IE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogYXNEb3VibGUgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBsb2FkZWRGbG9hdCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
YXNEb3VibGUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBhc0RvdWJsZSk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5k
UnVuPGRvdWJsZT4ocHJvYywgJnZhbHVlKSwgc3RhdGljX2Nhc3Q8ZG91YmxlPih2YWx1ZSkpKTsK
IH0KQEAgLTQ3MDksNyArNDcxNiw3IEBAIHZvaWQgdGVzdENvbnZlcnREb3VibGVUb0Zsb2F0VG9E
b3VibGVUb0YKICAgICBWYWx1ZSogYXNGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBWYWx1ZSogYXNEb3Vi
bGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigp
LCBhc0Zsb2F0KTsKICAgICBWYWx1ZSogYXNGbG9hdEFnYWluID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgYXNEb3VibGUpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFzRmxvYXRB
Z2Fpbik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIGFzRmxvYXRBZ2Fpbik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5k
UnVuPGZsb2F0Pihwcm9jLCB2YWx1ZSksIHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZSkpKTsKIH0K
QEAgLTQ3MjUsNyArNDczMiw3IEBAIHZvaWQgdGVzdExvYWRGbG9hdENvbnZlcnREb3VibGVDb252
ZXJ0RmwKICAgICBWYWx1ZSogYXNGbG9hdEFnYWluID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgYXNEb3VibGUpOwogICAgIHJvb3QtPmFwcGVu
ZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCBhc0Zsb2F0QWdhaW4sIGRz
dCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAg
ICAgZmxvYXQgaW5wdXQgPSB2YWx1ZTsKICAgICBmbG9hdCBvdXRwdXQgPSAwLjsKQEAgLTQ3NDAs
NyArNDc0Nyw3IEBAIHZvaWQgdGVzdEZyb3VuZEFyZyhkb3VibGUgdmFsdWUpCiAgICAgVmFsdWUq
IGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiBhc0Zsb2F0ID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgYXJndW1lbnQp
OwogICAgIFZhbHVlKiBhc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxv
YXRUb0RvdWJsZSwgT3JpZ2luKCksIGFzRmxvYXQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFzRG91YmxlKTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNEb3VibGUpOwog
CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIHZhbHVl
KSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihzdGF0aWNfY2FzdDxmbG9hdD4odmFsdWUpKSkpOwogfQpA
QCAtNDc1Myw3ICs0NzYwLDcgQEAgdm9pZCB0ZXN0RnJvdW5kTWVtKGRvdWJsZSB2YWx1ZSkKICAg
ICBNZW1vcnlWYWx1ZSogbG9hZGVkRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVl
Pihwcm9jLCBMb2FkLCBEb3VibGUsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogYXNG
bG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2lu
KCksIGxvYWRlZERvdWJsZSk7CiAgICAgVmFsdWUqIGFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgYXNGbG9hdCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNEb3Vi
bGUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBhc0RvdWJsZSk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRv
dWJsZT4ocHJvYywgJnZhbHVlKSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihzdGF0aWNfY2FzdDxmbG9h
dD4odmFsdWUpKSkpOwogfQpAQCAtNDc2NCw3ICs0NzcxLDcgQEAgdm9pZCB0ZXN0SVRvRDY0QXJn
KCkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBz
cmMgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIHNyY0FzRG91YmxlID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgc3JjKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0RvdWJsZSk7
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHNyY0FzRG91YmxlKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgZm9y
IChhdXRvIHRlc3RWYWx1ZSA6IGludDY0T3BlcmFuZHMoKSkKQEAgLTQ3NzcsNyArNDc4NCw3IEBA
IHZvaWQgdGVzdElUb0Y2NEFyZygpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKICAgICBWYWx1ZSogc3JjID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFZhbHVlKiBzcmNB
c0Zsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9GLCBPcmlnaW4oKSwgc3Jj
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBzcmNBc0Zsb2F0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxl
KHByb2MpOwogICAgIGZvciAoYXV0byB0ZXN0VmFsdWUgOiBpbnQ2NE9wZXJhbmRzKCkpCkBAIC00
NzkxLDcgKzQ3OTgsNyBAQCB2b2lkIHRlc3RJVG9EMzJBcmcoKQogICAgIFZhbHVlKiBzcmMgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSogc3JjQXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBzcmMpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRG91YmxlKTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNE
b3VibGUpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBmb3IgKGF1dG8g
dGVzdFZhbHVlIDogaW50MzJPcGVyYW5kcygpKQpAQCAtNDgwNSw3ICs0ODEyLDcgQEAgdm9pZCB0
ZXN0SVRvRjMyQXJnKCkKICAgICBWYWx1ZSogc3JjID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgVmFs
dWUqIHNyY0FzRmxvYXQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0YsIE9yaWdp
bigpLCBzcmMpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHNyY0FzRmxvYXQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0KTsKIAogICAgIGF1dG8gY29kZSA9
IGNvbXBpbGUocHJvYyk7CiAgICAgZm9yIChhdXRvIHRlc3RWYWx1ZSA6IGludDMyT3BlcmFuZHMo
KSkKQEAgLTQ4MTksNyArNDgyNiw3IEBAIHZvaWQgdGVzdElUb0Q2NE1lbSgpCiAgICAgVmFsdWUq
IGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWRlZFNyYyA9
IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50NjQsIE9yaWdpbigp
LCBhZGRyZXNzKTsKICAgICBWYWx1ZSogc3JjQXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBsb2FkZWRTcmMpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRG91YmxlKTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3Jj
QXNEb3VibGUpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBpbnQ2NF90
IGluTWVtb3J5VmFsdWU7CkBAIC00ODM3LDcgKzQ4NDQsNyBAQCB2b2lkIHRlc3RJVG9GNjRNZW0o
KQogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVl
KiBsb2FkZWRTcmMgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIElu
dDY0LCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIHNyY0FzRmxvYXQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0YsIE9yaWdpbigpLCBsb2FkZWRTcmMpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0Fz
RmxvYXQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBzcmNBc0Zsb2F0KTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAg
ICAgaW50NjRfdCBpbk1lbW9yeVZhbHVlOwpAQCAtNDg1NSw3ICs0ODYyLDcgQEAgdm9pZCB0ZXN0
SVRvRDMyTWVtKCkKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBN
ZW1vcnlWYWx1ZSogbG9hZGVkU3JjID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9j
LCBMb2FkLCBJbnQzMiwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBzcmNBc0RvdWJs
ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGxvYWRlZFNy
Yyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgc3JjQXNEb3VibGUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0RvdWJsZSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21w
aWxlKHByb2MpOwogICAgIGludDMyX3QgaW5NZW1vcnlWYWx1ZTsKQEAgLTQ4NzMsNyArNDg4MCw3
IEBAIHZvaWQgdGVzdElUb0YzMk1lbSgpCiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWRlZFNyYyA9IHJvb3QtPmFwcGVuZE5ldzxNZW1v
cnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50MzIsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1
ZSogc3JjQXNGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRiwgT3JpZ2lu
KCksIGxvYWRlZFNyYyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXQpOwogCiAgICAgYXV0byBj
b2RlID0gY29tcGlsZShwcm9jKTsKICAgICBpbnQzMl90IGluTWVtb3J5VmFsdWU7CkBAIC00ODkw
LDcgKzQ4OTcsNyBAQCB2b2lkIHRlc3RJVG9ENjRJbW0oaW50NjRfdCB2YWx1ZSkKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBzcmMgPSByb290LT5h
cHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpOwogICAgIFZhbHVl
KiBzcmNBc0Zsb2F0aW5nUG9pbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0Qs
IE9yaWdpbigpLCBzcmMpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXRpbmdQb2ludCk7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXRpbmdQb2lu
dCk7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MpLCBz
dGF0aWNfY2FzdDxkb3VibGU+KHZhbHVlKSkpOwogfQogCkBAIC00OTAwLDcgKzQ5MDcsNyBAQCB2
b2lkIHRlc3RJVG9GNjRJbW0oaW50NjRfdCB2YWx1ZSkKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBzcmMgPSByb290LT5hcHBlbmROZXc8Q29uc3Q2
NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpOwogICAgIFZhbHVlKiBzcmNBc0Zsb2F0aW5n
UG9pbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0YsIE9yaWdpbigpLCBzcmMp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHNyY0FzRmxvYXRpbmdQb2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXRpbmdQb2ludCk7CiAgICAgQ0hFQ0so
aXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYyksIHN0YXRpY19jYXN0PGZsb2F0
Pih2YWx1ZSkpKTsKIH0KIApAQCAtNDkxMCw3ICs0OTE3LDcgQEAgdm9pZCB0ZXN0SVRvRDMySW1t
KGludDMyX3QgdmFsdWUpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
ICAgICBWYWx1ZSogc3JjID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIHZhbHVlKTsKICAgICBWYWx1ZSogc3JjQXNGbG9hdGluZ1BvaW50ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgc3JjKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0aW5n
UG9pbnQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBzcmNBc0Zsb2F0aW5nUG9pbnQpOwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBp
bGVBbmRSdW48ZG91YmxlPihwcm9jKSwgc3RhdGljX2Nhc3Q8ZG91YmxlPih2YWx1ZSkpKTsKIH0K
IApAQCAtNDkyMCw3ICs0OTI3LDcgQEAgdm9pZCB0ZXN0SVRvRjMySW1tKGludDMyX3QgdmFsdWUp
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogc3Jj
ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKTsK
ICAgICBWYWx1ZSogc3JjQXNGbG9hdGluZ1BvaW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBJVG9GLCBPcmlnaW4oKSwgc3JjKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0aW5nUG9pbnQpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zs
b2F0aW5nUG9pbnQpOwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+
KHByb2MpLCBzdGF0aWNfY2FzdDxmbG9hdD4odmFsdWUpKSk7CiB9CiAKQEAgLTQ5MzEsNyArNDkz
OCw3IEBAIHZvaWQgdGVzdElUb0RSZWR1Y2VkVG9JVG9GNjRBcmcoKQogICAgIFZhbHVlKiBzcmMg
PSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIHNyY0FzRG91YmxlID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgc3JjKTsKICAgICBWYWx1ZSogZmxvYXRS
ZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdp
bigpLCBzcmNBc0RvdWJsZSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CiAKICAgICBh
dXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIGZvciAoYXV0byB0ZXN0VmFsdWUgOiBpbnQ2
NE9wZXJhbmRzKCkpCkBAIC00OTQ2LDcgKzQ5NTMsNyBAQCB2b2lkIHRlc3RJVG9EUmVkdWNlZFRv
SVRvRjMyQXJnKCkKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSogc3JjQXNE
b3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBzcmMp
OwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
RG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIHNyY0FzRG91YmxlKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGZs
b2F0UmVzdWx0KTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgZm9yIChh
dXRvIHRlc3RWYWx1ZSA6IGludDMyT3BlcmFuZHMoKSkKQEAgLTQ5NjQsNyArNDk3MSw3IEBAIHZv
aWQgdGVzdFN0b3JlMzIoaW50IHZhbHVlKQogICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdp
bigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAmc2xvdCkpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGlu
dD4ocHJvYywgdmFsdWUpKTsKQEAgLTQ5ODAsNyArNDk4Nyw3IEBAIHZvaWQgdGVzdFN0b3JlQ29u
c3RhbnQoaW50IHZhbHVlKQogICAgICAgICBwcm9jLCBTdG9yZSwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJnNs
b3QpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3Qt
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBDSEVD
SyghY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MpKTsKQEAgLTUwMDAsNyArNTAwNyw3IEBAIHZvaWQg
dGVzdFN0b3JlQ29uc3RhbnRQdHIoaW50cHRyX3QgdmFsdWUKICAgICAgICAgcHJvYywgU3RvcmUs
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIHZhbHVlKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAmc2xvdCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDApKTsKIAogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludD4ocHJvYykpOwpAQCAtNTAx
OCw3ICs1MDI1LDcgQEAgdm9pZCB0ZXN0U3RvcmU4QXJnKCkKICAgICAgICAgVmFsdWUqIGFkZHJl
c3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMSk7CiAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZh
bHVlPihwcm9jLCBTdG9yZTgsIE9yaWdpbigpLCB2YWx1ZSwgYWRkcmVzcyk7Ci0gICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVl
KTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHZhbHVlKTsKIAogICAgICAgICBpbnQ4X3Qgc3RvcmFnZSA9IDA7CiAgICAgICAgIENI
RUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgNDIsICZzdG9yYWdlKSA9PSA0Mik7CkBA
IC01MDM5LDcgKzUwNDYsNyBAQCB2b2lkIHRlc3RTdG9yZThBcmcoKQogICAgICAgICBWYWx1ZSog
YWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYmFz
ZURpc3BsYWNlbWVudCwgb2Zmc2V0KTsKIAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5
VmFsdWU+KHByb2MsIFN0b3JlOCwgT3JpZ2luKCksIHZhbHVlLCBhZGRyZXNzKTsKLSAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFs
dWUpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgdmFsdWUpOwogCiAgICAgICAgIGludDhfdCBzdG9yYWdlID0gMDsKICAgICAgICAg
Q0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCA0MiwgJnN0b3JhZ2UsIDEpID09IDQy
KTsKQEAgLTUwNTcsNyArNTA2NCw3IEBAIHZvaWQgdGVzdFN0b3JlOEltbSgpCiAgICAgICAgIFZh
bHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmU4LCBPcmlnaW4oKSwgdmFsdWUsIGFkZHJlc3MpOwot
ICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCB2YWx1ZSk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CiAKICAgICAgICAgaW50OF90IHN0b3JhZ2UgPSAwOwog
ICAgICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsICZzdG9yYWdlKSA9PSA0
Mik7CkBAIC01MDc3LDcgKzUwODQsNyBAQCB2b2lkIHRlc3RTdG9yZThJbW0oKQogICAgICAgICBW
YWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4o
KSwgYmFzZURpc3BsYWNlbWVudCwgb2Zmc2V0KTsKIAogICAgICAgICByb290LT5hcHBlbmROZXc8
TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlOCwgT3JpZ2luKCksIHZhbHVlLCBhZGRyZXNzKTsKLSAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgdmFsdWUpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgdmFsdWUpOwogCiAgICAgICAgIGludDhfdCBzdG9yYWdlID0gMDsKICAg
ICAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAmc3RvcmFnZSwgMSkgPT0g
NDIpOwpAQCAtNTEyOSw3ICs1MTM2LDcgQEAgdm9pZCB0ZXN0U3RvcmVQYXJ0aWFsOEJpdFJlZ2lz
dGVyT25YODYoKQogICAgIC8vIGlmIHdlIHVzZSBYODYgcGFydGlhbCByZWdpc3RlcnMuCiAgICAg
cm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZTgsIE9yaWdpbigpLCBwYXRj
aHBvaW50LCB3aGVyZVRvU3RvcmUpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmV0dXJuVmFsdWUpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXR1cm5WYWx1ZSk7CiAK
ICAgICBpbnQ4X3Qgc3RvcmFnZSA9IDB4ZmY7CiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2
NF90Pihwcm9jLCAweDEyMzQ1Njc4YWJjZGVmMTIsICZzdG9yYWdlKSA9PSAweDEyMzQ1Njc4YWJj
ZGVmMTIpOwpAQCAtNTE0Nyw3ICs1MTU0LDcgQEAgdm9pZCB0ZXN0U3RvcmUxNkFyZygpCiAgICAg
ICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwogCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUxNiwgT3JpZ2luKCksIHZhbHVlLCBhZGRy
ZXNzKTsKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgdmFsdWUpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOwogCiAgICAgICAgIGludDE2X3Qgc3RvcmFn
ZSA9IC0xOwogICAgICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIDQyLCAm
c3RvcmFnZSkgPT0gNDIpOwpAQCAtNTE2OCw3ICs1MTc1LDcgQEAgdm9pZCB0ZXN0U3RvcmUxNkFy
ZygpCiAgICAgICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBBZGQsIE9yaWdpbigpLCBiYXNlRGlzcGxhY2VtZW50LCBvZmZzZXQpOwogCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUxNiwgT3JpZ2luKCksIHZhbHVl
LCBhZGRyZXNzKTsKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOwogCiAgICAgICAgIGludDE2X3Qg
c3RvcmFnZSA9IC0xOwogICAgICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2Ms
IDQyLCAmc3RvcmFnZSwgMSkgPT0gNDIpOwpAQCAtNTE4Niw3ICs1MTkzLDcgQEAgdm9pZCB0ZXN0
U3RvcmUxNkltbSgpCiAgICAgICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwog
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUxNiwgT3Jp
Z2luKCksIHZhbHVlLCBhZGRyZXNzKTsKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOworICAgICAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOwogCiAgICAg
ICAgIGludDE2X3Qgc3RvcmFnZSA9IC0xOwogICAgICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGlu
dDY0X3Q+KHByb2MsICZzdG9yYWdlKSA9PSA0Mik7CkBAIC01MjA2LDcgKzUyMTMsNyBAQCB2b2lk
IHRlc3RTdG9yZTE2SW1tKCkKICAgICAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGJhc2VEaXNwbGFjZW1lbnQsIG9mZnNldCk7
CiAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZTE2LCBP
cmlnaW4oKSwgdmFsdWUsIGFkZHJlc3MpOwotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CisgICAgICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CiAKICAg
ICAgICAgaW50MTZfdCBzdG9yYWdlID0gLTE7CiAgICAgICAgIENIRUNLKGNvbXBpbGVBbmRSdW48
aW50NjRfdD4ocHJvYywgJnN0b3JhZ2UsIDEpID09IDQyKTsKQEAgLTUyMTgsNyArNTIyNSw3IEBA
IHZvaWQgdGVzdFRydW5jKGludDY0X3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCkBAIC01MjMxLDcgKzUyMzgs
NyBAQCB2b2lkIHRlc3RBZGQxKGludCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCkBAIC01MjQ3LDcgKzUyNTQsNyBA
QCB2b2lkIHRlc3RBZGQxUHRyKGludHB0cl90IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9j
OwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKQEAgLTUyNjEsNyArNTI2
OCw3IEBAIHZvaWQgdGVzdE5lZzMyKGludDMyX3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHBy
b2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTdWIsIE9yaWdpbigpLApAQCAtNTI3Nyw3ICs1
Mjg0LDcgQEAgdm9pZCB0ZXN0TmVnUHRyKGludHB0cl90IHZhbHVlKQogewogICAgIFByb2NlZHVy
ZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU3ViLCBPcmlnaW4oKSwKQEAgLTUzMDIs
NyArNTMwOSw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9hZDMyKGludCBhbW91bnQpCiAgICAgICAg
ICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwKSkpLAogICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTUzMjMsNyArNTMzMCw3IEBAIHZvaWQgdGVzdFN0
b3JlQWRkTG9hZEltbTMyKGludCBhbW91bnQpCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8
TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwgc2xvdFB0ciksCiAgICAg
ICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYW1v
dW50KSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIDApKTsKIApAQCAtNTM0Niw3ICs1MzUzLDcgQEAgdm9pZCB0ZXN0U3RvcmVB
ZGRMb2FkOChpbnQgYW1vdW50LCBCMzo6TwogICAgICAgICAgICAgICAgIHByb2MsIFRydW5jLCBP
cmlnaW4oKSwKICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpKSwKICAgICAgICAgc2xv
dFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwog
CkBAIC01MzY3LDcgKzUzNzQsNyBAQCB2b2lkIHRlc3RTdG9yZUFkZExvYWRJbW04KGludCBhbW91
bnQsIEIzCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIGxv
YWRPcGNvZGUsIE9yaWdpbigpLCBzbG90UHRyKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhbW91bnQpKSwKICAgICAgICAgc2xvdFB0
cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBA
IC01MzkwLDcgKzUzOTcsNyBAQCB2b2lkIHRlc3RTdG9yZUFkZExvYWQxNihpbnQgYW1vdW50LCBC
Mzo6CiAgICAgICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BS
SW5mbzo6YXJndW1lbnRHUFIwKSkpLAogICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTU0MTEsNyArNTQxOCw3IEBA
IHZvaWQgdGVzdFN0b3JlQWRkTG9hZEltbTE2KGludCBhbW91bnQsIEIKICAgICAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgbG9hZE9wY29kZSwgT3JpZ2luKCksIHNs
b3RQdHIpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIGFtb3VudCkpLAogICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTU0MzIsNyArNTQzOSw3IEBAIHZv
aWQgdGVzdFN0b3JlQWRkTG9hZDY0KGludCBhbW91bnQpCiAgICAgICAgICAgICByb290LT5hcHBl
bmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDY0LCBPcmlnaW4oKSwgc2xvdFB0ciks
CiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICBzbG90UHRyKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTU0NTMsNyAr
NTQ2MCw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9hZEltbTY0KGludDY0X3QgYW1vdW4KICAgICAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50NjQsIE9y
aWdpbigpLCBzbG90UHRyKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFs
dWU+KHByb2MsIE9yaWdpbigpLCBhbW91bnQpKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01NDg1LDcgKzU0
OTIsNyBAQCB2b2lkIHRlc3RTdG9yZUFkZExvYWQzMkluZGV4KGludCBhbW91bnQpCiAgICAgICAg
ICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwKSkpLAogICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTU1MTUsNyArNTUyMiw3IEBAIHZvaWQgdGVzdFN0
b3JlQWRkTG9hZEltbTMySW5kZXgoaW50IGFtb3UKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50MzIsIE9yaWdpbigpLCBzbG90UHRyKSwKICAg
ICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBh
bW91bnQpKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01NTQ3LDcgKzU1NTQsNyBAQCB2b2lkIHRlc3RTdG9y
ZUFkZExvYWQ4SW5kZXgoaW50IGFtb3VudCwgCiAgICAgICAgICAgICAgICAgcHJvYywgVHJ1bmMs
IE9yaWdpbigpLAogICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSkpLAogICAgICAgICBz
bG90UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7
CiAKQEAgLTU1NzcsNyArNTU4NCw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9hZEltbThJbmRleChp
bnQgYW1vdW4KICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywg
bG9hZE9wY29kZSwgT3JpZ2luKCksIHNsb3RQdHIpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFtb3VudCkpLAogICAgICAgICBzbG90
UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAK
QEAgLTU2MDksNyArNTYxNiw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9hZDE2SW5kZXgoaW50IGFt
b3VudCwKICAgICAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApKSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNTYzOSw3ICs1NjQ2LDcg
QEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkSW1tMTZJbmRleChpbnQgYW1vdQogICAgICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBsb2FkT3Bjb2RlLCBPcmlnaW4oKSwg
c2xvdFB0ciksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgYW1vdW50KSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNTY2OSw3ICs1Njc2LDcgQEAg
dm9pZCB0ZXN0U3RvcmVBZGRMb2FkNjRJbmRleChpbnQgYW1vdW50KQogICAgICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQ2NCwgT3JpZ2luKCksIHNs
b3RQdHIpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAgc2xvdFB0cik7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01
Njk5LDcgKzU3MDYsNyBAQCB2b2lkIHRlc3RTdG9yZUFkZExvYWRJbW02NEluZGV4KGludDY0X3Qg
CiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIElu
dDY0LCBPcmlnaW4oKSwgc2xvdFB0ciksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29u
c3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYW1vdW50KSksCiAgICAgICAgIHNsb3RQdHIpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNTcy
Myw3ICs1NzMwLDcgQEAgdm9pZCB0ZXN0U3RvcmVTdWJMb2FkKGludCBhbW91bnQpCiAgICAgICAg
ICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwKSkpLAogICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTU3NTAsNyArNTc1Nyw3IEBAIHZvaWQgdGVzdFN0
b3JlQWRkTG9hZEludGVyZmVyZW5jZShpbnQgYW0KICAgICAgICAgICAgIHByb2MsIEFkZCwgT3Jp
Z2luKCksCiAgICAgICAgICAgICBsb2FkLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgYW1vdW50KSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNTc3NCw3ICs1NzgxLDcg
QEAgdm9pZCB0ZXN0U3RvcmVBZGRBbmRMb2FkKGludCBhbW91bnQsIGludAogICAgICAgICAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhbW91bnQp
KSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBtYXNrKSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNTc5OSw3ICs1ODA2LDcgQEAgdm9pZCB0ZXN0
U3RvcmVOZWdMb2FkMzIoaW50MzJfdCB2YWx1ZSkKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50MzIsIE9yaWdpbigpLCBzbG90UHRyKSksCiAg
ICAgICAgIHNsb3RQdHIpOwogICAgIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IDApKTsKIAogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MpKTsKQEAgLTU4
MjMsNyArNTgzMCw3IEBAIHZvaWQgdGVzdFN0b3JlTmVnTG9hZFB0cihpbnRwdHJfdCB2YWx1ZSkK
ICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgcG9p
bnRlclR5cGUoKSwgT3JpZ2luKCksIHNsb3RQdHIpKSwKICAgICAgICAgc2xvdFB0cik7CiAgICAg
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgQ0hFQ0soIWNv
bXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYykpOwpAQCAtNTgzNCw3ICs1ODQxLDcgQEAgdm9pZCB0
ZXN0QWRkMVVuY29tbXV0ZWQoaW50IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKQEAgLTU4NTIsNyArNTg1OSw3IEBA
IHZvaWQgdGVzdExvYWRPZmZzZXQoKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7CiAgICAgaW50IGFycmF5W10gPSB7IDEsIDIgfTsKICAgICBDb25zdFB0clZhbHVlKiBh
cnJheVB0ciA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
YXJyYXkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEFkZCwgT3Jp
Z2luKCksCkBAIC01ODY4LDcgKzU4NzUsNyBAQCB2b2lkIHRlc3RMb2FkT2Zmc2V0Tm90Q29uc3Rh
bnQoKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgaW50IGFy
cmF5W10gPSB7IDEsIDIgfTsKICAgICBWYWx1ZSogYXJyYXlQdHIgPSByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwK
QEAgLTU4ODQsNyArNTg5MSw3IEBAIHZvaWQgdGVzdExvYWRPZmZzZXRVc2luZ0FkZCgpCiAgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBpbnQgYXJyYXlbXSA9IHsg
MSwgMiB9OwogICAgIENvbnN0UHRyVmFsdWUqIGFycmF5UHRyID0gcm9vdC0+YXBwZW5kTmV3PENv
bnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhcnJheSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKQEAgLTU5MjUsNyArNTkzMiw3IEBA
IHZvaWQgdGVzdExvYWRPZmZzZXRVc2luZ0FkZEludGVyZmVyZW5jZSgKICAgICAgICAgcHJvYywg
U3RvcmUsIE9yaWdpbigpLCB0aGVOdW1iZXJPZlRoZUJlYXN0LCBvdGhlckFycmF5UHRyLCAwKTsK
ICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICBwcm9jLCBTdG9yZSwg
T3JpZ2luKCksIHRoZU51bWJlck9mVGhlQmVhc3QsIG90aGVyQXJyYXlQdHIsIHNpemVvZihpbnQp
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigp
LCBsZWZ0LCByaWdodCkpOwpAQCAtNTk0MSw3ICs1OTQ4LDcgQEAgdm9pZCB0ZXN0TG9hZE9mZnNl
dFVzaW5nQWRkTm90Q29uc3RhbnQoKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7CiAgICAgaW50IGFycmF5W10gPSB7IDEsIDIgfTsKICAgICBWYWx1ZSogYXJyYXlQdHIg
PSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgQWRkLCBPcmlnaW4oKSwKQEAgLTU5NzcsNyArNTk4NCw3IEBAIHZvaWQgdGVzdExvYWRBZGRy
U2hpZnQodW5zaWduZWQgc2hpZnQpCiAKICAgICAqc2xvdCA9IDg2NzUzMDk7CiAgICAgCi0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZCwgSW50MzIsIE9y
aWdpbigpLApAQCAtNTk5Myw3ICs2MDAwLDcgQEAgdm9pZCB0ZXN0RnJhbWVQb2ludGVyKCkKIHsK
ICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGcmFtZVBvaW50ZXIsIE9yaWdpbigpKSk7
CiAKQEAgLTYwMTYsNyArNjAyMyw3IEBAIHZvaWQgdGVzdE92ZXJyaWRlRnJhbWVQb2ludGVyKCkK
ICAgICAgICAgVmFsdWUqIGZwID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGcmFtZVBv
aW50ZXIsIE9yaWdpbigpKTsKICAgICAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgZnAsIG9mZnNldCk7CiAKLSAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
KTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdCk7CiAgICAgICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJv
YywgMSkpOwogICAgIH0KICAgICB7CkBAIC02MDMyLDcgKzYwMzksNyBAQCB2b2lkIHRlc3RPdmVy
cmlkZUZyYW1lUG9pbnRlcigpCiAgICAgICAgIFZhbHVlKiBvZmZzZXRBcmcgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIG9mZnNldCwgYXJnKTsKICAgICAgICAg
VmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4o
KSwgb2Zmc2V0QXJnLCBvZmZzZXRGUCk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICAgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAg
ICAgICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgMSwgMikpOwogICAgIH0K
IH0KQEAgLTYwNDEsNyArNjA0OCw3IEBAIHZvaWQgdGVzdFN0YWNrU2xvdCgpCiB7CiAgICAgUHJv
Y2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxTbG90QmFzZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgcHJvYy5hZGRTdGFja1Ns
b3QoMSkpKTsKIApAQCAtNjA1NCw3ICs2MDYxLDcgQEAgdm9pZCB0ZXN0TG9hZEZyb21GcmFtZVBv
aW50ZXIoKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCksCkBAIC02MDgxLDcgKzYwODgsNyBA
QCB2b2lkIHRlc3RTdG9yZUxvYWRTdGFja1Nsb3QoaW50IHZhbHVlKQogICAgICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApKSwKICAgICAgICAgc3RhY2spOwogICAgIAotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9y
eVZhbHVlPihwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2luKCksIHN0YWNrKSk7CiAKQEAgLTYxMTYs
NyArNjEyMyw3IEBAIHZvaWQgdGVzdExvYWQoQjM6Ok9wY29kZSBvcGNvZGUsIElucHV0VHkKICAg
ICAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7CiAgICAgICAgIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlW
YWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgb3Bjb2RlLCB0eXBlLCBPcmlnaW4oKSwKQEAg
LTYxMzAsNyArNjEzNyw3IEBAIHZvaWQgdGVzdExvYWQoQjM6Ok9wY29kZSBvcGNvZGUsIElucHV0
VHkKICAgICAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7CiAgICAgICAgIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxN
ZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgb3Bjb2RlLCB0eXBlLCBPcmlnaW4o
KSwKQEAgLTYxNDQsNyArNjE1MSw3IEBAIHZvaWQgdGVzdExvYWQoQjM6Ok9wY29kZSBvcGNvZGUs
IElucHV0VHkKICAgICAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgICAgIAotICAgICAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgb3Bjb2RlLCB0eXBlLCBP
cmlnaW4oKSwKQEAgLTYxNTksNyArNjE2Niw3IEBAIHZvaWQgdGVzdExvYWQoQjM6Ok9wY29kZSBv
cGNvZGUsIElucHV0VHkKICAgICAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmRO
ZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIG9wY29kZSwgdHlwZSwgT3Jp
Z2luKCksCkBAIC02MTc5LDcgKzYxODYsNyBAQCB2b2lkIHRlc3RMb2FkKEIzOjpPcGNvZGUgb3Bj
b2RlLCBJbnB1dFR5CiAgICAgICAgIFByb2NlZHVyZSBwcm9jOwogICAgICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBvcGNvZGUsIHR5cGUsIE9yaWdp
bigpLApAQCAtNjIxOSw3ICs2MjI2LDcgQEAgdm9pZCB0ZXN0U3RvcmVGbG9hdChkb3VibGUgaW5w
dXQpCiAgICAgICAgIFZhbHVlKiBkZXN0aW5hdGlvbkFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdp
bigpLCBhcmd1bWVudEFzRmxvYXQsIGRlc3RpbmF0aW9uQWRkcmVzcyk7CiAKLSAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKKyAgICAgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICAgICAgZmxv
YXQgb3V0cHV0ID0gMC47CiAgICAgICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludDY0X3Q+KHBy
b2MsIGlucHV0LCAmb3V0cHV0KSk7CkBAIC02MjQzLDcgKzYyNTAsNyBAQCB2b2lkIHRlc3RTdG9y
ZUZsb2F0KGRvdWJsZSBpbnB1dCkKIAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFs
dWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgYXJndW1lbnRBc0Zsb2F0LCBkZXN0aW5hdGlvbkFk
ZHJlc3MpOwogCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAwKSk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgMCkpOwogCiAgICAgICAgIGZsb2F0IG91dHB1dCA9IDAuOwogICAgICAgICBDSEVDSyghY29t
cGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCBpbnB1dCwgJm91dHB1dCAtIDEsIDEpKTsKQEAgLTYy
NjMsNyArNjI3MCw3IEBAIHZvaWQgdGVzdFN0b3JlRG91YmxlQ29uc3RhbnRBc0Zsb2F0KGRvdWIK
IAogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigp
LCB2YWx1ZUFzRmxvYXQsIGRlc3RpbmF0aW9uQWRkcmVzcyk7CiAKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgZmxvYXQgb3V0cHV0ID0gMC47CiAg
ICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgaW5wdXQsICZvdXRwdXQpKTsK
QEAgLTYyODksNyArNjI5Niw3IEBAIHZvaWQgdGVzdFNwaWxsR1AoKQogICAgIGZvciAoVmFsdWUq
IHZhbHVlIDogc291cmNlcykKICAgICAgICAgdG90YWwgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEFkZCwgT3JpZ2luKCksIHRvdGFsLCB2YWx1ZSk7CiAKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB0b3RhbCk7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHRvdGFsKTsK
ICAgICBjb21waWxlQW5kUnVuPGludD4ocHJvYywgMSwgMik7CiB9CiAKQEAgLTYzMTIsNyArNjMx
OSw3IEBAIHZvaWQgdGVzdFNwaWxsRlAoKQogICAgIGZvciAoVmFsdWUqIHZhbHVlIDogc291cmNl
cykKICAgICAgICAgdG90YWwgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3Jp
Z2luKCksIHRvdGFsLCB2YWx1ZSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB0b3RhbCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHRvdGFsKTsKICAgICBjb21waWxlQW5k
UnVuPGRvdWJsZT4ocHJvYywgMS4xLCAyLjUpOwogfQogCkBAIC02MzI4LDcgKzYzMzUsNyBAQCB2
b2lkIHRlc3RJbnQzMlRvRG91YmxlUGFydGlhbFJlZ2lzdGVyU3RhCiAgICAgVmFsdWUqIGNvdW50
ZXIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVXBzaWxvblZhbHVlKiBvcmlnaW5hbFRvdGFsID0g
cm9vdC0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHRvdGFsKTsKICAg
ICBVcHNpbG9uVmFsdWUqIG9yaWdpbmFsQ291bnRlciA9IHJvb3QtPmFwcGVuZE5ldzxVcHNpbG9u
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBjb3VudGVyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3ApKTsK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZy
ZXF1ZW50ZWRCbG9jayhsb29wKSk7CiAKICAgICAvLyBMb29wLgogICAgIFZhbHVlKiBsb29wQ291
bnRlciA9IGxvb3AtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBJbnQ2NCwgT3JpZ2luKCkp
OwpAQCAtNjM0NSwxMyArNjM1MiwxMyBAQCB2b2lkIHRlc3RJbnQzMlRvRG91YmxlUGFydGlhbFJl
Z2lzdGVyU3RhCiAgICAgVmFsdWUqIGRlY0NvdW50ZXIgPSBsb29wLT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIFN1YiwgT3JpZ2luKCksIGxvb3BDb3VudGVyLCBsb29wLT5hcHBlbmROZXc8Q29uc3Q2
NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogICAgIFVwc2lsb25WYWx1ZSogZGVjQ291bnRl
clVwc2lsb24gPSBsb29wLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
ZGVjQ291bnRlcik7CiAgICAgZGVjQ291bnRlclVwc2lsb24tPnNldFBoaShsb29wQ291bnRlcik7
Ci0gICAgbG9vcC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgbG9vcC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICBk
ZWNDb3VudGVyLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sobG9vcCksIEZyZXF1ZW50ZWRCbG9j
ayhkb25lKSk7CiAKICAgICAvLyBUYWlsLgotICAgIGRvbmUtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHVwZGF0ZWRUb3RhbCk7CisgICAgZG9uZS0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHVwZGF0ZWRUb3RhbCk7
CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIDEwMDAw
MCksIDUwMDAwNTAwMDAuKSk7CiB9CiAKQEAgLTYzNzEsNyArNjM3OCw3IEBAIHZvaWQgdGVzdElu
dDMyVG9Eb3VibGVQYXJ0aWFsUmVnaXN0ZXJXaXQKICAgICBWYWx1ZSogZm9yUGFkZGluZ0lucHV0
QWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
JmZvclBhZGRpbmdJbnB1dCk7CiAgICAgdWludDY0X3QgZm9yUGFkZGluZ091dHB1dDsKICAgICBW
YWx1ZSogZm9yUGFkZGluZ091dHB1dEFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8Q29uc3RQdHJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksICZmb3JQYWRkaW5nT3V0cHV0KTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2Nr
KGxvb3ApKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3Jp
Z2luKCksIEZyZXF1ZW50ZWRCbG9jayhsb29wKSk7CiAKICAgICAvLyBMb29wLgogICAgIFZhbHVl
KiBsb29wQ291bnRlciA9IGxvb3AtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBJbnQ2NCwg
T3JpZ2luKCkpOwpAQCAtNjQwNSwxMyArNjQxMiwxMyBAQCB2b2lkIHRlc3RJbnQzMlRvRG91Ymxl
UGFydGlhbFJlZ2lzdGVyV2l0CiAgICAgVmFsdWUqIGRlY0NvdW50ZXIgPSBsb29wLT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIGxvb3BDb3VudGVyLCBsb29wLT5hcHBlbmRO
ZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogICAgIFVwc2lsb25WYWx1ZSog
ZGVjQ291bnRlclVwc2lsb24gPSBsb29wLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgZGVjQ291bnRlcik7CiAgICAgZGVjQ291bnRlclVwc2lsb24tPnNldFBoaShsb29w
Q291bnRlcik7Ci0gICAgbG9vcC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgbG9vcC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAog
ICAgICAgICBkZWNDb3VudGVyLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sobG9vcCksIEZyZXF1
ZW50ZWRCbG9jayhkb25lKSk7CiAKICAgICAvLyBUYWlsLgotICAgIGRvbmUtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHVwZGF0ZWRUb3RhbCk7CisgICAg
ZG9uZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHVwZGF0
ZWRUb3RhbCk7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHBy
b2MsIDEwMDAwMCksIDUwMDAwNTAwMDAuKSk7CiB9CiAKQEAgLTY0MjIsMTggKzY0MjksMTggQEAg
dm9pZCB0ZXN0QnJhbmNoKCkKICAgICBCYXNpY0Jsb2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxv
Y2soKTsKICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAg
ICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVu
Q2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNhc2Ut
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNl
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC02NDQ5
LDE2ICs2NDU2LDE2IEBAIHZvaWQgdGVzdEJyYW5jaFB0cigpCiAgICAgQmFzaWNCbG9jayogdGhl
bkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9j
LmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRo
ZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKLSAgICBlbHNlQ2Fz
ZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNh
c2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTY0
NzUsNyArNjQ4Miw3IEBAIHZvaWQgdGVzdERpYW1vbmQoKQogICAgIEJhc2ljQmxvY2sqIGVsc2VD
YXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGRvbmUgPSBwcm9jLmFkZEJs
b2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBUcnVuYywg
T3JpZ2luKCksCkBAIC02NDg0LDE2ICs2NDkxLDE2IEBAIHZvaWQgdGVzdERpYW1vbmQoKQogCiAg
ICAgVXBzaWxvblZhbHVlKiB0aGVuUmVzdWx0ID0gdGhlbkNhc2UtPmFwcGVuZE5ldzxVcHNpbG9u
VmFsdWU+KAogICAgICAgICBwcm9jLCBPcmlnaW4oKSwgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7Ci0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZG9uZSkp
OworICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2lu
KCksIEZyZXF1ZW50ZWRCbG9jayhkb25lKSk7CiAKICAgICBVcHNpbG9uVmFsdWUqIGVsc2VSZXN1
bHQgPSBlbHNlQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4oCiAgICAgICAgIHByb2MsIE9y
aWdpbigpLCBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IDApKTsKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwg
T3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhkb25lKSk7CisgICAgZWxzZUNhc2UtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRvbmUp
KTsKIAogICAgIFZhbHVlKiBwaGkgPSBkb25lLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFBoaSwg
SW50MzIsIE9yaWdpbigpKTsKICAgICB0aGVuUmVzdWx0LT5zZXRQaGkocGhpKTsKICAgICBlbHNl
UmVzdWx0LT5zZXRQaGkocGhpKTsKLSAgICBkb25lLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwaGkpOworICAgIGRvbmUtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwaGkpOwogCiAgICAgYXV0byBjb2RlID0gY29t
cGlsZShwcm9jKTsKICAgICBDSEVDSyhpbnZva2U8aW50PigqY29kZSwgNDIpID09IDEpOwpAQCAt
NjUwNyw3ICs2NTE0LDcgQEAgdm9pZCB0ZXN0QnJhbmNoTm90RXF1YWwoKQogICAgIEJhc2ljQmxv
Y2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNl
ID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gs
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgTm90RXF1YWwsIE9yaWdpbigpLApAQCAtNjUxNywxMSArNjUyNCwxMSBAQCB2b2lkIHRl
c3RCcmFuY2hOb3RFcXVhbCgpCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNh
c2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNjUzNyw3
ICs2NTQ0LDcgQEAgdm9pZCB0ZXN0QnJhbmNoTm90RXF1YWxDb21tdXRlKCkKICAgICBCYXNpY0Js
b2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2Fz
ZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNo
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIE5vdEVxdWFsLCBPcmlnaW4oKSwKQEAgLTY1NDcsMTEgKzY1NTQsMTEgQEAgdm9pZCB0
ZXN0QnJhbmNoTm90RXF1YWxDb21tdXRlKCkKICAgICAgICAgICAgICAgICByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BS
MCkpKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2Nr
KGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTY1NjcsNyArNjU3NCw3IEBAIHZvaWQgdGVz
dEJyYW5jaE5vdEVxdWFsTm90RXF1YWwoKQogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJv
Yy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygp
OwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTm90RXF1YWwsIE9y
aWdpbigpLApAQCAtNjU4MCwxMSArNjU4NywxMSBAQCB2b2lkIHRlc3RCcmFuY2hOb3RFcXVhbE5v
dEVxdWFsKCkKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAwKSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1
ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC02NjAwLDcgKzY2MDcsNyBA
QCB2b2lkIHRlc3RCcmFuY2hFcXVhbCgpCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9j
LmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7
CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBFcXVhbCwgT3JpZ2lu
KCksCkBAIC02NjEwLDExICs2NjE3LDExIEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsKCkKICAgICAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSks
CiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNl
Q2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRo
ZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgMCkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgMSkpOwogCkBAIC02NjMwLDcgKzY2MzcsNyBAQCB2b2lkIHRlc3RCcmFu
Y2hFcXVhbEVxdWFsKCkKICAgICBCYXNpY0Jsb2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2so
KTsKICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEVxdWFsLCBPcmlnaW4oKSwKQEAgLTY2
NDMsMTEgKzY2NTAsMTEgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxFcXVhbCgpCiAgICAgICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpLAogICAg
ICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2Up
KTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2Fz
ZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBl
bHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDApKTsKIApAQCAtNjY2Myw3ICs2NjcwLDcgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1
YWxDb21tdXRlKCkKICAgICBCYXNpY0Jsb2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsK
ICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEVxdWFsLCBPcmlnaW4oKSwKQEAgLTY2NzMs
MTEgKzY2ODAsMTEgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxDb21tdXRlKCkKICAgICAgICAgICAg
ICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMCkpKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNl
KSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKQEAgLTY2OTMsNyAr
NjcwMCw3IEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsRXF1YWwxKCkKICAgICBCYXNpY0Jsb2NrKiB0
aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHBy
b2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IEVxdWFsLCBPcmlnaW4oKSwKQEAgLTY3MDYsMTEgKzY3MTMsMTEgQEAgdm9pZCB0ZXN0QnJhbmNo
RXF1YWxFcXVhbDEoKQogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIDEpKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwg
RnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKQEAgLTY3MjgsNyArNjcz
NSw3IEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsT3JVbm9yZGVyZWRBcmdzKGRvdWIKIAogICAgIFZh
bHVlKiBhcmd1bWVudEEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50QiA9
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5m
bzo6YXJndW1lbnRGUFIxKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBFcXVhbE9yVW5vcmRlcmVkLCBPcmlnaW4oKSwKQEAgLTY3MzYsMTEgKzY3NDMsMTEgQEAgdm9p
ZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJlZEFyZ3MoZG91YgogICAgICAgICAgICAgYXJndW1l
bnRCKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2Nr
KGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCA0MikpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgLTEzKSk7CiAKQEAgLTY3NjAsNyArNjc2Nyw3IEBAIHZvaWQg
dGVzdEJyYW5jaEVxdWFsT3JVbm9yZGVyZWRBcmdzKGZsb2EKICAgICBWYWx1ZSogYXJndW1lbnRC
ID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBGbG9hdCwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBFcXVhbE9yVW5vcmRlcmVkLCBPcmlnaW4oKSwKQEAgLTY3NjgsMTEg
KzY3NzUsMTEgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJlZEFyZ3MoZmxvYQogICAg
ICAgICAgICAgYXJndW1lbnRCKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwg
RnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTEzKSk7CiAKQEAgLTY3OTcsMTYg
KzY4MDQsMTYgQEAgdm9pZCB0ZXN0QnJhbmNoTm90RXF1YWxBbmRPcmRlcmVkQXJncyhkbwogICAg
ICAgICBwcm9jLCBFcXVhbCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSwKICAgICAgICAgZXF1YWxPclVub3JkZXJlZCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICBu
b3RFcXVhbEFuZE9yZGVyZWQsCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZy
ZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29u
c3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xMykpOwogCkBAIC02ODMzLDE2ICs2
ODQwLDE2IEBAIHZvaWQgdGVzdEJyYW5jaE5vdEVxdWFsQW5kT3JkZXJlZEFyZ3MoZmwKICAgICAg
ICAgcHJvYywgRXF1YWwsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCksCiAgICAgICAgIGVxdWFsT3JVbm9yZGVyZWQpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgbm90
RXF1YWxBbmRPcmRlcmVkLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVx
dWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMTMpKTsKIApAQCAtNjg1OSw3ICs2ODY2
LDcgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJlZERvdWJsZUFyZwogCiAgICAgVmFs
dWUqIGFyZ3VtZW50QSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogYXJndW1lbnRCID0g
cm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBFcXVhbE9yVW5vcmRlcmVkLCBP
cmlnaW4oKSwKQEAgLTY4NjcsMTEgKzY4NzQsMTEgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVu
b3JkZXJlZERvdWJsZUFyZwogICAgICAgICAgICAgYXJndW1lbnRCKSwKICAgICAgICAgRnJlcXVl
bnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0
aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
dGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwog
Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
LTEzKSk7CiAKQEAgLTY4OTAsNyArNjg5Nyw3IEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsT3JVbm9y
ZGVyZWRGbG9hdEFyZ0kKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSogYXJn
dW1lbnRCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IGIpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgRXF1YWxPclVu
b3JkZXJlZCwgT3JpZ2luKCksCkBAIC02ODk4LDExICs2OTA1LDExIEBAIHZvaWQgdGVzdEJyYW5j
aEVxdWFsT3JVbm9yZGVyZWRGbG9hdEFyZ0kKICAgICAgICAgICAgIGFyZ3VtZW50QiksCiAgICAg
ICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkp
OwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNl
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgNDIpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBl
bHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIC0xMykpOwogCkBAIC02OTE5LDcgKzY5MjYsNyBAQCB2b2lkIHRlc3RCcmFuY2hF
cXVhbE9yVW5vcmRlcmVkRG91YmxlSW1tCiAKICAgICBWYWx1ZSogYXJndW1lbnRBID0gcm9vdC0+
YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1
ZSogYXJndW1lbnRCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBiKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBFcXVh
bE9yVW5vcmRlcmVkLCBPcmlnaW4oKSwKQEAgLTY5MjcsMTEgKzY5MzQsMTEgQEAgdm9pZCB0ZXN0
QnJhbmNoRXF1YWxPclVub3JkZXJlZERvdWJsZUltbQogICAgICAgICAgICAgYXJndW1lbnRCKSwK
ICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VD
YXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhl
bkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCA0MikpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgLTEzKSk7CiAKQEAgLTY5NDksNyArNjk1Niw3IEBAIHZvaWQgdGVzdEJy
YW5jaEVxdWFsT3JVbm9yZGVyZWRGbG9hdEltbXMKICAgICBWYWx1ZSogYXJndW1lbnRBID0gcm9v
dC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZh
bHVlKiBhcmd1bWVudEIgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgYik7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBF
cXVhbE9yVW5vcmRlcmVkLCBPcmlnaW4oKSwKQEAgLTY5NTcsMTEgKzY5NjQsMTEgQEAgdm9pZCB0
ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJlZEZsb2F0SW1tcwogICAgICAgICAgICAgYXJndW1lbnRC
KSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVs
c2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
dGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCA0MikpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgLTEzKSk7CiAKQEAgLTY5ODMsNyArNjk5MCw3IEBAIHZvaWQgdGVz
dEJyYW5jaEVxdWFsT3JVbm9yZGVyZWRGbG9hdFdpdGgKICAgICBWYWx1ZSogYXJndW1lbnQxQXNE
b3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdp
bigpLCBhcmd1bWVudDEpOwogICAgIFZhbHVlKiBhcmd1bWVudDJBc0RvdWJsZSA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGFyZ3VtZW50Mik7
CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBFcXVhbE9yVW5vcmRl
cmVkLCBPcmlnaW4oKSwKQEAgLTY5OTEsMTEgKzY5OTgsMTEgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1
YWxPclVub3JkZXJlZEZsb2F0V2l0aAogICAgICAgICAgICAgYXJndW1lbnQyQXNEb3VibGUpLAog
ICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNh
c2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVu
Q2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIDQyKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAtMTMpKTsKIApAQCAtNzAxMCwxNiArNzAxNywxNiBAQCB2b2lkIHRlc3RC
cmFuY2hGb2xkKGludCB2YWx1ZSkKICAgICBCYXNpY0Jsb2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRk
QmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKIAot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKSwKICAgICAg
ICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7
CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2Ut
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxz
ZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCAwKSk7CiAKQEAgLTcwMzQsMjMgKzcwNDEsMjMgQEAgdm9pZCB0ZXN0RGlhbW9uZEZv
bGQoaW50IHZhbHVlKQogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygp
OwogICAgIEJhc2ljQmxvY2sqIGRvbmUgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSksCiAgICAgICAgIEZyZXF1ZW50
ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCiAgICAgVXBz
aWxvblZhbHVlKiB0aGVuUmVzdWx0ID0gdGhlbkNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+
KAogICAgICAgICBwcm9jLCBPcmlnaW4oKSwgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCAxKSk7Ci0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZG9uZSkpOworICAg
IHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZy
ZXF1ZW50ZWRCbG9jayhkb25lKSk7CiAKICAgICBVcHNpbG9uVmFsdWUqIGVsc2VSZXN1bHQgPSBl
bHNlQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4oCiAgICAgICAgIHByb2MsIE9yaWdpbigp
LCBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsK
LSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2lu
KCksIEZyZXF1ZW50ZWRCbG9jayhkb25lKSk7CisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRvbmUpKTsKIAog
ICAgIFZhbHVlKiBwaGkgPSBkb25lLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFBoaSwgSW50MzIs
IE9yaWdpbigpKTsKICAgICB0aGVuUmVzdWx0LT5zZXRQaGkocGhpKTsKICAgICBlbHNlUmVzdWx0
LT5zZXRQaGkocGhpKTsKLSAgICBkb25lLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCBwaGkpOworICAgIGRvbmUtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwaGkpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxp
bnQ+KHByb2MpID09ICEhdmFsdWUpOwogfQpAQCAtNzA2Miw3ICs3MDY5LDcgQEAgdm9pZCB0ZXN0
QnJhbmNoTm90RXF1YWxGb2xkUHRyKGludHB0cl90IAogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNl
ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRC
bG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTm90RXF1
YWwsIE9yaWdpbigpLApAQCAtNzA3MCwxMSArNzA3NywxMSBAQCB2b2lkIHRlc3RCcmFuY2hOb3RF
cXVhbEZvbGRQdHIoaW50cHRyX3QgCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQ
dHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRo
ZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKLSAgICBlbHNlQ2Fz
ZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNh
c2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTcw
ODgsNyArNzA5NSw3IEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsRm9sZFB0cihpbnRwdHJfdCB2YWwK
ICAgICBCYXNpY0Jsb2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Js
b2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIEVxdWFsLCBPcmlnaW4oKSwKQEAgLTcwOTYsMTEgKzcxMDMsMTEg
QEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxGb2xkUHRyKGludHB0cl90IHZhbAogICAgICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSksCiAgICAg
ICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkp
OwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNl
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgMSkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVs
c2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgMCkpOwogCkBAIC03MTE0LDE4ICs3MTIxLDE4IEBAIHZvaWQgdGVzdEJyYW5jaExv
YWRQdHIoKQogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAg
IEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3Jp
Z2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICBGcmVxdWVudGVk
QmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5D
YXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVu
Q2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAg
IGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsK
IApAQCAtNzE0NCwxOCArNzE1MSwxOCBAQCB2b2lkIHRlc3RCcmFuY2hMb2FkMzIoKQogICAgIEJh
c2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVs
c2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBC
cmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAog
ICAgICAgICAgICAgcHJvYywgTG9hZCwgSW50MzIsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVl
bnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMy
VmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTcxNzQsMTggKzcxODEsMTgg
QEAgdm9pZCB0ZXN0QnJhbmNoTG9hZDhTKCkKICAgICBCYXNpY0Jsb2NrKiB0aGVuQ2FzZSA9IHBy
b2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2so
KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgIHByb2MsIExvYWQ4
UywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICBGcmVx
dWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAg
IHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsK
IAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IDApKTsKIApAQCAtNzIwNCwxOCArNzIxMSwxOCBAQCB2b2lkIHRlc3RCcmFuY2hMb2FkOFooKQog
ICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxv
Y2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFs
dWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZDhaLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1
ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC03MjM0LDE4ICs3MjQxLDE4
IEBAIHZvaWQgdGVzdEJyYW5jaExvYWQxNlMoKQogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0g
cHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9j
aygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9h
ZDE2UywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICBG
cmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAot
ICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEp
KTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2Fz
ZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDApKTsKIApAQCAtNzI2NCwxOCArNzI3MSwxOCBAQCB2b2lkIHRlc3RCcmFuY2hMb2FkMTZa
KCkKICAgICBCYXNpY0Jsb2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNp
Y0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9y
eVZhbHVlPigKICAgICAgICAgICAgIHByb2MsIExvYWQxNlosIE9yaWdpbigpLAogICAgICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwg
RnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTcyOTUsNyArNzMw
Miw3IEBAIHZvaWQgdGVzdEJyYW5jaDhXaXRoTG9hZDhaSW5kZXgoKQogICAgIEJhc2ljQmxvY2sq
IGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCiAgICAgaW50IGxvZ1NjYWxlID0gMTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBYm92ZSwgT3JpZ2luKCksCkBA
IC03MzExLDExICs3MzE4LDExIEBAIHZvaWQgdGVzdEJyYW5jaDhXaXRoTG9hZDhaSW5kZXgoKQog
ICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IDI1MCkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxv
Y2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNzM1Nyw3ICs3MzY0LDcgQEAgdm9pZCB0
ZXN0Q29tcGxleCh1bnNpZ25lZCBudW1WYXJzLCB1bnNpZwogICAgICAgICAgICAgQmFzaWNCbG9j
ayogZWxzZUJsb2NrID0gcHJvYy5hZGRCbG9jaygpOwogICAgICAgICAgICAgQmFzaWNCbG9jayog
Y29udGludWF0aW9uID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgICAgICAgICBjdXJyZW50LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgICAgIGN1cnJlbnQtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLCB2YXJz
W3ByZWRpY2F0ZVZhckluZGV4XSwKICAgICAgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhl
bkJsb2NrKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VCbG9jaykpOwogCkBAIC03MzY2LDE0ICs3Mzcz
LDE0IEBAIHZvaWQgdGVzdENvbXBsZXgodW5zaWduZWQgbnVtVmFycywgdW5zaWcKICAgICAgICAg
ICAgICAgICB0aGVuQmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwg
dmFyc1t0aGVuSW5jVmFySW5kZXhdLCBvbmUpKTsKICAgICAgICAgICAgIFVwc2lsb25WYWx1ZSog
dGhlbkVsc2VSZXN1bHQgPSB0aGVuQmxvY2stPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KAogICAg
ICAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLCB2YXJzW2Vsc2VJbmNWYXJJbmRleF0pOwotICAg
ICAgICAgICAgdGhlbkJsb2NrLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBP
cmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGNvbnRpbnVhdGlvbikpOworICAgICAgICAgICAgdGhl
bkJsb2NrLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1
ZW50ZWRCbG9jayhjb250aW51YXRpb24pKTsKIAogICAgICAgICAgICAgVXBzaWxvblZhbHVlKiBl
bHNlRWxzZVJlc3VsdCA9IGVsc2VCbG9jay0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4oCiAgICAg
ICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgZWxzZUJsb2NrLT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIHZhcnNbZWxzZUluY1ZhckluZGV4
XSwgb25lKSk7CiAgICAgICAgICAgICBVcHNpbG9uVmFsdWUqIGVsc2VUaGVuUmVzdWx0ID0gZWxz
ZUJsb2NrLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBP
cmlnaW4oKSwgdmFyc1t0aGVuSW5jVmFySW5kZXhdKTsKLSAgICAgICAgICAgIGVsc2VCbG9jay0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRC
bG9jayhjb250aW51YXRpb24pKTsKKyAgICAgICAgICAgIGVsc2VCbG9jay0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soY29udGludWF0
aW9uKSk7CiAKICAgICAgICAgICAgIFZhbHVlKiB0aGVuUGhpID0gY29udGludWF0aW9uLT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIFBoaSwgSW50MzIsIE9yaWdpbigpKTsKICAgICAgICAgICAgIHRo
ZW5UaGVuUmVzdWx0LT5zZXRQaGkodGhlblBoaSk7CkBAIC03Mzk4LDcgKzc0MDUsNyBAQCB2b2lk
IHRlc3RDb21wbGV4KHVuc2lnbmVkIG51bVZhcnMsIHVuc2lnCiAgICAgICAgICAgICAKICAgICAg
ICAgICAgIFZhbHVlKiBzdGFydEluZGV4ID0gdmFyc1soKGkgPj4gMSkgKyAxKSAlIG51bVZhcnNd
OwogICAgICAgICAgICAgVmFsdWUqIHN0YXJ0U3VtID0gY3VycmVudC0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApOwotICAgICAgICAgICAgY3VycmVudC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgICAgICBjdXJyZW50LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwgc3RhcnRJbmRl
eCwKICAgICAgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2sobG9vcEVudHJ5KSwgRnJlcXVlbnRl
ZEJsb2NrKGxvb3BTa2lwKSk7CiAKQEAgLTc0MDYsNyArNzQxMyw3IEBAIHZvaWQgdGVzdENvbXBs
ZXgodW5zaWduZWQgbnVtVmFycywgdW5zaWcKICAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4o
KSwgc3RhcnRJbmRleCk7CiAgICAgICAgICAgICBVcHNpbG9uVmFsdWUqIHN0YXJ0U3VtRm9yQm9k
eSA9IGxvb3BFbnRyeS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4oCiAgICAgICAgICAgICAgICAg
cHJvYywgT3JpZ2luKCksIHN0YXJ0U3VtKTsKLSAgICAgICAgICAgIGxvb3BFbnRyeS0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhs
b29wQm9keSkpOworICAgICAgICAgICAgbG9vcEVudHJ5LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhsb29wQm9keSkpOwogCiAgICAg
ICAgICAgICBWYWx1ZSogYm9keUluZGV4ID0gbG9vcEJvZHktPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgUGhpLCBJbnQzMiwgT3JpZ2luKCkpOwogICAgICAgICAgICAgc3RhcnRJbmRleEZvckJvZHkt
PnNldFBoaShib2R5SW5kZXgpOwpAQCAtNzQzMSwxOSArNzQzOCwxOSBAQCB2b2lkIHRlc3RDb21w
bGV4KHVuc2lnbmVkIG51bVZhcnMsIHVuc2lnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBsb29wQm9keS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4oCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksIG51bVZhcnMgLSAxKSkp
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvb3BCb2R5LT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMikpKSkpOwotICAgICAgICAgICAgbG9vcEJvZHktPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICAgICAgbG9vcEJvZHktPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLCBuZXdC
b2R5SW5kZXgsCiAgICAgICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKGxvb3BSZWVudHJ5KSwg
RnJlcXVlbnRlZEJsb2NrKGxvb3BFeGl0KSk7CiAKICAgICAgICAgICAgIGxvb3BSZWVudHJ5LT5h
cHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgbmV3Qm9keUluZGV4LCBib2R5
SW5kZXgpOwogICAgICAgICAgICAgbG9vcFJlZW50cnktPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBuZXdCb2R5U3VtLCBib2R5U3VtKTsKLSAgICAgICAgICAgIGxvb3BS
ZWVudHJ5LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJl
cXVlbnRlZEJsb2NrKGxvb3BCb2R5KSk7CisgICAgICAgICAgICBsb29wUmVlbnRyeS0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sobG9v
cEJvZHkpKTsKIAogICAgICAgICAgICAgVXBzaWxvblZhbHVlKiBleGl0U3VtID0gbG9vcEV4aXQt
PmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCBuZXdCb2R5U3VtKTsKLSAg
ICAgICAgICAgIGxvb3BFeGl0LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBP
cmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGNvbnRpbnVhdGlvbikpOworICAgICAgICAgICAgbG9v
cEV4aXQtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVl
bnRlZEJsb2NrKGNvbnRpbnVhdGlvbikpOwogCiAgICAgICAgICAgICBVcHNpbG9uVmFsdWUqIHNr
aXBTdW0gPSBsb29wU2tpcC0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCks
IHN0YXJ0U3VtKTsKLSAgICAgICAgICAgIGxvb3BTa2lwLT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGNvbnRpbnVhdGlvbikpOwor
ICAgICAgICAgICAgbG9vcFNraXAtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBP
cmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGNvbnRpbnVhdGlvbikpOwogCiAgICAgICAgICAgICBW
YWx1ZSogZmluYWxTdW0gPSBjb250aW51YXRpb24tPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhp
LCBJbnQzMiwgT3JpZ2luKCkpOwogICAgICAgICAgICAgZXhpdFN1bS0+c2V0UGhpKGZpbmFsU3Vt
KTsKQEAgLTc0NTQsNyArNzQ2MSw3IEBAIHZvaWQgdGVzdENvbXBsZXgodW5zaWduZWQgbnVtVmFy
cywgdW5zaWcKICAgICAgICAgfQogICAgIH0KIAotICAgIGN1cnJlbnQtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhcnNbMF0pOworICAgIGN1cnJlbnQt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YXJzWzBdKTsK
IAogICAgIGNvbXBpbGUocHJvYyk7CiAKQEAgLTc0ODAsNyArNzQ4Nyw3IEBAIHZvaWQgdGVzdFNp
bXBsZVBhdGNocG9pbnQoKQogICAgICAgICAgICAgQ0hFQ0socGFyYW1zWzJdLmlzR1BSKCkpOwog
ICAgICAgICAgICAgYWRkMzIoaml0LCBwYXJhbXNbMV0uZ3ByKCksIHBhcmFtc1syXS5ncHIoKSwg
cGFyYW1zWzBdLmdwcigpKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQp
OwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIDEsIDIpID09IDMpOwogfQpA
QCAtNzUxMSw3ICs3NTE4LDcgQEAgdm9pZCB0ZXN0U2ltcGxlUGF0Y2hwb2ludFdpdGhvdXRPdXB1
dENsbwogICAgICAgICB9KTsKIAogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGFyZzEsIGFyZzIpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywgMSwgMikgPT0gMyk7CiB9
CkBAIC03NTYwLDcgKzc1NjcsNyBAQCB2b2lkIHRlc3RTaW1wbGVQYXRjaHBvaW50V2l0aE91cHV0
Q2xvYmJlCiAKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBBZGQsIE9yaWdpbigpLCBwYXRjaHBvaW50LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGFyZzEsIGFyZzIpKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQp
OwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIDEsIDIpID09IDU4KTsKIH0K
QEAgLTc1OTEsNyArNzU5OCw3IEBAIHZvaWQgdGVzdFNpbXBsZVBhdGNocG9pbnRXaXRob3V0T3Vw
dXRDbG8KICAgICAgICAgfSk7CiAKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBhcmcxLCBhcmcyKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1
bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIDEuNSwgMi41KSA9
PSA0KTsKIH0KQEAgLTc2MzIsNyArNzYzOSw3IEBAIHZvaWQgdGVzdFNpbXBsZVBhdGNocG9pbnRX
aXRoT3VwdXRDbG9iYmUKIAogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIHBhdGNocG9pbnQsCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYXJnMSwgYXJnMikpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJlc3VsdCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgMS41LCAy
LjUpID09IDU5LjYpOwogfQpAQCAtNzY1Nyw3ICs3NjY0LDcgQEAgdm9pZCB0ZXN0UGF0Y2hwb2lu
dFdpdGhFYXJseUNsb2JiZXIoKQogICAgICAgICAgICAgICAgIGFkZDMyKGppdCwgcGFyYW1zWzFd
LmdwcigpLCBwYXJhbXNbMl0uZ3ByKCksIHBhcmFtc1swXS5ncHIoKSk7CiAgICAgICAgICAgICB9
KTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOwogCiAgICAgICAgIENIRUNL
KGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAxLCAyKSA9PSAzKTsKICAgICB9OwpAQCAtNzY5MCw3
ICs3Njk3LDcgQEAgdm9pZCB0ZXN0UGF0Y2hwb2ludENhbGxBcmcoKQogICAgICAgICAgICAgICAg
IENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgcGFyYW1z
WzJdLm9mZnNldEZyb21GUCgpKSwKICAgICAgICAgICAgICAgICBwYXJhbXNbMF0uZ3ByKCkpOwog
ICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CiAKICAgICBDSEVDSyhjb21w
aWxlQW5kUnVuPGludD4ocHJvYywgMSwgMikgPT0gMyk7CiB9CkBAIC03NzEzLDcgKzc3MjAsNyBA
QCB2b2lkIHRlc3RQYXRjaHBvaW50Rml4ZWRSZWdpc3RlcigpCiAgICAgICAgICAgICBDSEVDSyhw
YXJhbXNbMl0gPT0gVmFsdWVSZXAoR1BSSW5mbzo6cmVnVDEpKTsKICAgICAgICAgICAgIGFkZDMy
KGppdCwgR1BSSW5mbzo6cmVnVDAsIEdQUkluZm86OnJlZ1QxLCBwYXJhbXNbMF0uZ3ByKCkpOwog
ICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CiAKICAgICBDSEVDSyhjb21w
aWxlQW5kUnVuPGludD4ocHJvYywgMSwgMikgPT0gMyk7CiB9CkBAIC03NzM3LDcgKzc3NDQsNyBA
QCB2b2lkIHRlc3RQYXRjaHBvaW50QW55KFZhbHVlUmVwIHJlcCkKICAgICAgICAgICAgIENIRUNL
KHBhcmFtc1syXS5pc0dQUigpKTsKICAgICAgICAgICAgIGFkZDMyKGppdCwgcGFyYW1zWzFdLmdw
cigpLCBwYXJhbXNbMl0uZ3ByKCksIHBhcmFtc1swXS5ncHIoKSk7CiAgICAgICAgIH0pOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBh
dGNocG9pbnQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBwYXRjaHBvaW50KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihw
cm9jLCAxLCAyKSA9PSAzKTsKIH0KQEAgLTc3NzMsNyArNzc4MCw3IEBAIHZvaWQgdGVzdFBhdGNo
cG9pbnRHUFNjcmF0Y2goKQogICAgICAgICAgICAgQ0hFQ0soIXBhcmFtcy51bmF2YWlsYWJsZVJl
Z2lzdGVycygpLmdldChwYXJhbXMuZ3BTY3JhdGNoKDEpKSk7CiAgICAgICAgICAgICBhZGQzMihq
aXQsIHBhcmFtc1sxXS5ncHIoKSwgcGFyYW1zWzJdLmdwcigpLCBwYXJhbXNbMF0uZ3ByKCkpOwog
ICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CiAKICAgICBDSEVDSyhjb21w
aWxlQW5kUnVuPGludD4ocHJvYywgMSwgMikgPT0gMyk7CiB9CkBAIC03ODAzLDcgKzc4MTAsNyBA
QCB2b2lkIHRlc3RQYXRjaHBvaW50RlBTY3JhdGNoKCkKICAgICAgICAgICAgIENIRUNLKCFwYXJh
bXMudW5hdmFpbGFibGVSZWdpc3RlcnMoKS5nZXQocGFyYW1zLmZwU2NyYXRjaCgxKSkpOwogICAg
ICAgICAgICAgYWRkMzIoaml0LCBwYXJhbXNbMV0uZ3ByKCksIHBhcmFtc1syXS5ncHIoKSwgcGFy
YW1zWzBdLmdwcigpKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOwog
CiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIDEsIDIpID09IDMpOwogfQpAQCAt
Nzg0NSw3ICs3ODUyLDcgQEAgdm9pZCB0ZXN0UGF0Y2hwb2ludExvdHNPZkxhdGVBbnlzKCkKICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBwYXRjaHBvaW50KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jKSA9PSAo
dGhpbmdzLnNpemUoKSAqICh0aGluZ3Muc2l6ZSgpIC0gMSkpIC8gMik7CiB9CkBAIC03ODczLDcg
Kzc4ODAsNyBAQCB2b2lkIHRlc3RQYXRjaHBvaW50QW55SW1tKFZhbHVlUmVwIHJlcCkKICAgICAg
ICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihzdGF0aWNfY2FzdDxpbnQzMl90
PihwYXJhbXNbMl0udmFsdWUoKSkpLAogICAgICAgICAgICAgICAgIHBhcmFtc1sxXS5ncHIoKSwg
cGFyYW1zWzBdLmdwcigpKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQp
OwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIDEpID09IDQzKTsKIH0KQEAg
LTc4OTksNyArNzkwNiw3IEBAIHZvaWQgdGVzdFBhdGNocG9pbnRNYW55SW1tcygpCiAgICAgICAg
ICAgICBDSEVDSyhwYXJhbXNbMl0gPT0gVmFsdWVSZXA6OmNvbnN0YW50KDQzMDAwMDAwMDAwMDAw
bGwpKTsKICAgICAgICAgICAgIENIRUNLKHBhcmFtc1szXSA9PSBWYWx1ZVJlcDo6Y29uc3RhbnQo
Yml0d2lzZV9jYXN0PGludDY0X3Q+KDQyLjUpKSk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNzkyNSw3ICs3OTMyLDcg
QEAgdm9pZCB0ZXN0UGF0Y2hwb2ludFdpdGhSZWdpc3RlclJlc3VsdCgpCiAgICAgICAgICAgICBD
SEVDSyhwYXJhbXNbMl0uaXNHUFIoKSk7CiAgICAgICAgICAgICBhZGQzMihqaXQsIHBhcmFtc1sx
XS5ncHIoKSwgcGFyYW1zWzJdLmdwcigpLCBHUFJJbmZvOjpub25BcmdHUFIwKTsKICAgICAgICAg
fSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcGF0Y2hwb2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1
bjxpbnQ+KHByb2MsIDEsIDIpID09IDMpOwogfQpAQCAtNzk1MSw3ICs3OTU4LDcgQEAgdm9pZCB0
ZXN0UGF0Y2hwb2ludFdpdGhTdGFja0FyZ3VtZW50UmVzdQogICAgICAgICAgICAgaml0LmFkZDMy
KHBhcmFtc1sxXS5ncHIoKSwgcGFyYW1zWzJdLmdwcigpLCBqaXQuc2NyYXRjaFJlZ2lzdGVyKCkp
OwogICAgICAgICAgICAgaml0LnN0b3JlMzIoaml0LnNjcmF0Y2hSZWdpc3RlcigpLCBDQ2FsbEhl
bHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFja1BvaW50ZXJSZWdpc3RlciwgMCkpOwog
ICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CiAKICAgICBDSEVDSyhjb21w
aWxlQW5kUnVuPGludD4ocHJvYywgMSwgMikgPT0gMyk7CiB9CkBAIC03OTgwLDcgKzc5ODcsNyBA
QCB2b2lkIHRlc3RQYXRjaHBvaW50V2l0aEFueVJlc3VsdCgpCiAgICAgICAgICAgICBqaXQuY29u
dmVydEludDMyVG9Eb3VibGUoR1BSSW5mbzo6cmVnVDAsIEZQUkluZm86OmZwUmVnVDApOwogICAg
ICAgICAgICAgaml0LnN0b3JlRG91YmxlKEZQUkluZm86OmZwUmVnVDAsIENDYWxsSGVscGVyczo6
QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgcGFyYW1zWzBdLm9mZnNldEZyb21G
UCgpKSk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKIAogICAgIENI
RUNLKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCAxLCAyKSA9PSAzKTsKIH0KQEAgLTgwMDIs
NyArODAwOSw3IEBAIHZvaWQgdGVzdFNpbXBsZUNoZWNrKCkKICAgICAgICAgICAgIGppdC5lbWl0
RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBhdXRvIGNvZGUg
PSBjb21waWxlKHByb2MpOwpAQCAtODAyMSw3ICs4MDI4LDcgQEAgdm9pZCB0ZXN0Q2hlY2tGYWxz
ZSgpCiAgICAgICAgIFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9u
UGFyYW1zJikgewogICAgICAgICAgICAgQ0hFQ0soISJUaGlzIHNob3VsZCBub3QgaGF2ZSBleGVj
dXRlZCIpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAw
KSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwpAQCAtODA0Nyw3ICs4MDU0LDcg
QEAgdm9pZCB0ZXN0Q2hlY2tUcnVlKCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGls
b2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMy
VmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHBy
b2MpOwpAQCAtODA3OCw3ICs4MDg1LDcgQEAgdm9pZCB0ZXN0Q2hlY2tMZXNzVGhhbigpCiAgICAg
ICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQo
KTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwog
CiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKQEAgLTgxMjQsNyArODEzMSw3IEBAIHZv
aWQgdGVzdENoZWNrTWVnYUNvbWJvKCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGls
b2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMy
VmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHBy
b2MpOwpAQCAtODE3OSw3ICs4MTg2LDcgQEAgdm9pZCB0ZXN0Q2hlY2tUcmlja3lNZWdhQ29tYm8o
KQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBq
aXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IDApKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CkBAIC04MjQzLDcgKzgyNTAs
NyBAQCB2b2lkIHRlc3RDaGVja1R3b01lZ2FDb21ib3MoKQogICAgICAgICAgICAgaml0LmVtaXRG
dW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGF1dG8gY29kZSA9
IGNvbXBpbGUocHJvYyk7CkBAIC04MjkzLDcgKzgzMDAsNyBAQCB2b2lkIHRlc3RDaGVja1R3b05v
blJlZHVuZGFudE1lZ2FDb21ib3MoCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1
ZT4ocHJvYywgTG9hZDhTLCBPcmlnaW4oKSwgcHRyKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7CiAKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksIGJyYW5jaFByZWRpY2F0ZSwKICAgICAgICAgRnJl
cXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAgICAg
CkBAIC04MzA5LDcgKzgzMTYsNyBAQCB2b2lkIHRlc3RDaGVja1R3b05vblJlZHVuZGFudE1lZ2FD
b21ib3MoCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAg
ICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgNDMpKTsKIAogICAgIENoZWNrVmFsdWUqIGNoZWNrMiA9IGVsc2VD
YXNlLT5hcHBlbmROZXc8Q2hlY2tWYWx1ZT4ocHJvYywgQ2hlY2ssIE9yaWdpbigpLCBjaGVja1By
ZWRpY2F0ZSk7CkBAIC04MzI0LDcgKzgzMzEsNyBAQCB2b2lkIHRlc3RDaGVja1R3b05vblJlZHVu
ZGFudE1lZ2FDb21ib3MoCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsK
ICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgZWxzZUNhc2UtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29u
c3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDUpKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBp
bGUocHJvYyk7CkBAIC04Mzc4LDcgKzgzODUsNyBAQCB2b2lkIHRlc3RDaGVja0FkZEltbSgpCiAg
ICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5y
ZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdp
bigpLCBjaGVja0FkZCkpOwogCkBAIC04NDE0LDcgKzg0MjEsNyBAQCB2b2lkIHRlc3RDaGVja0Fk
ZEltbUNvbW11dGUoKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAg
ICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tBZGQpKTsKIApAQCAtODQ0OSw3ICs4NDU2LDcgQEAg
dm9pZCB0ZXN0Q2hlY2tBZGRJbW1Tb21lUmVnaXN0ZXIoKQogICAgICAgICAgICAgaml0LmVtaXRG
dW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tBZGQpKTsKIApA
QCAtODQ4Niw3ICs4NDkzLDcgQEAgdm9pZCB0ZXN0Q2hlY2tBZGQoKQogICAgICAgICAgICAgaml0
LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAg
IH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tBZGQp
KTsKIApAQCAtODUxOSw3ICs4NTI2LDcgQEAgdm9pZCB0ZXN0Q2hlY2tBZGQ2NCgpCiAgICAgICAg
ICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsK
ICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBj
aGVja0FkZCkpOwogCkBAIC04NTQyLDcgKzg1NDksNyBAQCB2b2lkIHRlc3RDaGVja0FkZEZvbGQo
aW50IGEsIGludCBiKQogICAgICAgICBbJl0gKENDYWxsSGVscGVycyYsIGNvbnN0IFN0YWNrbWFw
R2VuZXJhdGlvblBhcmFtcyYpIHsKICAgICAgICAgICAgIENIRUNLKCEiU2hvdWxkIGhhdmUgYmVl
biBmb2xkZWQiKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tBZGQpOworICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja0FkZCk7CiAKICAgICBh
dXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC04NTYzLDcgKzg1NzAsNyBAQCB2b2lkIHRl
c3RDaGVja0FkZEZvbGRGYWlsKGludCBhLCBpbnQgYikKICAgICAgICAgICAgIGppdC5lbWl0RnVu
Y3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBj
aGVja0FkZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIGNoZWNrQWRkKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAK
QEAgLTg2MDIsNyArODYwOSw3IEBAIHZvaWQgdGVzdENoZWNrQWRkQXJndW1lbnRBbGlhc2luZzY0
KCkKICAgICBDaGVja1ZhbHVlKiBjaGVja0FkZDMgPSByb290LT5hcHBlbmROZXc8Q2hlY2tWYWx1
ZT4ocHJvYywgQ2hlY2tBZGQsIE9yaWdpbigpLCBjaGVja0FkZDEsIGNoZWNrQWRkMik7CiAgICAg
Y2hlY2tBZGQzLT5zZXRHZW5lcmF0b3IoWyZdIChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU3Rh
Y2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeyBqaXQub29wcygpOyB9KTsKIAotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrQWRkMyk7
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IGNoZWNrQWRkMyk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIDEs
IDIsIDMpID09IDgpOwogfQpAQCAtODY0NSw3ICs4NjUyLDcgQEAgdm9pZCB0ZXN0Q2hlY2tBZGRB
cmd1bWVudEFsaWFzaW5nMzIoKQogICAgIENoZWNrVmFsdWUqIGNoZWNrQWRkMyA9IHJvb3QtPmFw
cGVuZE5ldzxDaGVja1ZhbHVlPihwcm9jLCBDaGVja0FkZCwgT3JpZ2luKCksIGNoZWNrQWRkMSwg
Y2hlY2tBZGQyKTsKICAgICBjaGVja0FkZDMtPnNldEdlbmVyYXRvcihbJl0gKENDYWxsSGVscGVy
cyYgaml0LCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7IGppdC5vb3BzKCk7IH0p
OwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgY2hlY2tBZGQzKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tBZGQzKTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48
aW50MzJfdD4ocHJvYywgMSwgMiwgMykgPT0gOCk7CiB9CkBAIC04NjcwLDcgKzg2NzcsNyBAQCB2
b2lkIHRlc3RDaGVja0FkZFNlbGZPdmVyZmxvdzY0KCkKICAgICBvcGFxdWVVc2UtPmFwcGVuZChD
b25zdHJhaW5lZFZhbHVlKGFyZywgVmFsdWVSZXA6OlNvbWVSZWdpc3RlcikpOwogICAgIG9wYXF1
ZVVzZS0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBHZW5l
cmF0aW9uUGFyYW1zJikgeyB9KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrQWRkKTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tBZGQpOwogCiAgICAgYXV0
byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAtODcwMSw3ICs4NzA4LDcgQEAgdm9pZCB0ZXN0
Q2hlY2tBZGRTZWxmT3ZlcmZsb3czMigpCiAgICAgb3BhcXVlVXNlLT5hcHBlbmQoQ29uc3RyYWlu
ZWRWYWx1ZShhcmcsIFZhbHVlUmVwOjpTb21lUmVnaXN0ZXIpKTsKICAgICBvcGFxdWVVc2UtPnNl
dEdlbmVyYXRvcihbJl0gKENDYWxsSGVscGVycyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBh
cmFtcyYpIHsgfSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCBjaGVja0FkZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrQWRkKTsKIAogICAgIGF1dG8gY29kZSA9
IGNvbXBpbGUocHJvYyk7CiAKQEAgLTg3MzQsNyArODc0MSw3IEBAIHZvaWQgdGVzdENoZWNrU3Vi
SW1tKCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAg
ICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRv
RCwgT3JpZ2luKCksIGNoZWNrU3ViKSk7CiAKQEAgLTg3NzYsNyArODc4Myw3IEBAIHZvaWQgdGVz
dENoZWNrU3ViQmFkSW1tKCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgp
OwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGNoZWNrU3ViKSk7CiAKQEAgLTg4MTMsNyArODgyMCw3
IEBAIHZvaWQgdGVzdENoZWNrU3ViKCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGls
b2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGNoZWNrU3ViKSk7CiAKQEAgLTg4NTEsNyAr
ODg1OCw3IEBAIHZvaWQgdGVzdENoZWNrU3ViNjQoKQogICAgICAgICAgICAgaml0LmVtaXRGdW5j
dGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tTdWIpKTsKIApAQCAt
ODg3NCw3ICs4ODgxLDcgQEAgdm9pZCB0ZXN0Q2hlY2tTdWJGb2xkKGludCBhLCBpbnQgYikKICAg
ICAgICAgWyZdIChDQ2FsbEhlbHBlcnMmLCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMm
KSB7CiAgICAgICAgICAgICBDSEVDSyghIlNob3VsZCBoYXZlIGJlZW4gZm9sZGVkIik7CiAgICAg
ICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIGNoZWNrU3ViKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tTdWIpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGls
ZShwcm9jKTsKIApAQCAtODg5NSw3ICs4OTAyLDcgQEAgdm9pZCB0ZXN0Q2hlY2tTdWJGb2xkRmFp
bChpbnQgYSwgaW50IGIpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsK
ICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tTdWIpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja1N1
Yik7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC04OTIyLDcgKzg5Mjks
NyBAQCB2b2lkIHRlc3RDaGVja05lZygpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBp
bG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVja05lZykpOwogCkBAIC04OTUyLDcg
Kzg5NTksNyBAQCB2b2lkIHRlc3RDaGVja05lZzY0KCkKICAgICAgICAgICAgIGppdC5lbWl0RnVu
Y3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGNoZWNrTmVnKSk7CiAKQEAg
LTg5ODksNyArODk5Niw3IEBAIHZvaWQgdGVzdENoZWNrTXVsKCkKICAgICAgICAgICAgIGppdC5l
bWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGNoZWNrTXVsKSk7
CiAKQEAgLTkwMzAsNyArOTAzNyw3IEBAIHZvaWQgdGVzdENoZWNrTXVsTWVtb3J5KCkKICAgICAg
ICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgp
OwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCks
IGNoZWNrTXVsKSk7CiAKQEAgLTkwNzcsNyArOTA4NCw3IEBAIHZvaWQgdGVzdENoZWNrTXVsMigp
CiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGpp
dC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9y
aWdpbigpLCBjaGVja011bCkpOwogCkBAIC05MTEwLDcgKzkxMTcsNyBAQCB2b2lkIHRlc3RDaGVj
a011bDY0KCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAg
ICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
SVRvRCwgT3JpZ2luKCksIGNoZWNrTXVsKSk7CiAKQEAgLTkxMzMsNyArOTE0MCw3IEBAIHZvaWQg
dGVzdENoZWNrTXVsRm9sZChpbnQgYSwgaW50IGIpCiAgICAgICAgIFsmXSAoQ0NhbGxIZWxwZXJz
JiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgewogICAgICAgICAgICAgQ0hFQ0so
ISJTaG91bGQgaGF2ZSBiZWVuIGZvbGRlZCIpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja011bCk7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNo
ZWNrTXVsKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKQEAgLTkxNTQsNyAr
OTE2MSw3IEBAIHZvaWQgdGVzdENoZWNrTXVsRm9sZEZhaWwoaW50IGEsIGludCBiKQogICAgICAg
ICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7
CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIGNoZWNrTXVsKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tNdWwpOwogCiAgICAgYXV0byBjb2RlID0g
Y29tcGlsZShwcm9jKTsKIApAQCAtOTE5Myw3ICs5MjAwLDcgQEAgdm9pZCB0ZXN0Q2hlY2tNdWxB
cmd1bWVudEFsaWFzaW5nNjQoKQogICAgIENoZWNrVmFsdWUqIGNoZWNrTXVsMyA9IHJvb3QtPmFw
cGVuZE5ldzxDaGVja1ZhbHVlPihwcm9jLCBDaGVja011bCwgT3JpZ2luKCksIGNoZWNrTXVsMSwg
Y2hlY2tNdWwyKTsKICAgICBjaGVja011bDMtPnNldEdlbmVyYXRvcihbJl0gKENDYWxsSGVscGVy
cyYgaml0LCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7IGppdC5vb3BzKCk7IH0p
OwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgY2hlY2tNdWwzKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tNdWwzKTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48
aW50NjRfdD4ocHJvYywgMiwgMywgNCkgPT0gNzIpOwogfQpAQCAtOTIzNiw3ICs5MjQzLDcgQEAg
dm9pZCB0ZXN0Q2hlY2tNdWxBcmd1bWVudEFsaWFzaW5nMzIoKQogICAgIENoZWNrVmFsdWUqIGNo
ZWNrTXVsMyA9IHJvb3QtPmFwcGVuZE5ldzxDaGVja1ZhbHVlPihwcm9jLCBDaGVja011bCwgT3Jp
Z2luKCksIGNoZWNrTXVsMSwgY2hlY2tNdWwyKTsKICAgICBjaGVja011bDMtPnNldEdlbmVyYXRv
cihbJl0gKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMm
KSB7IGppdC5vb3BzKCk7IH0pOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tNdWwzKTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tNdWwzKTsKIAogICAgIENI
RUNLKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgMiwgMywgNCkgPT0gNzIpOwogfQpAQCAt
OTI2OCw3ICs5Mjc1LDcgQEAgdm9pZCB0ZXN0Q2hlY2tNdWw2NFNTaHIoKQogICAgICAgICAgICAg
aml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAg
ICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tN
dWwpKTsKIApAQCAtOTI5NCw3ICs5MzAxLDcgQEAgdm9pZCBnZW5lcmljVGVzdENvbXBhcmUoCiAg
ICAgICAgIFZhbHVlKiByaWdodFZhbHVlID0gcmlnaHRGdW5jdG9yKHJvb3QsIHByb2MpOwogICAg
ICAgICBWYWx1ZSogY29tcGFyaXNvblJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
Yywgb3Bjb2RlLCBPcmlnaW4oKSwgbGVmdFZhbHVlLCByaWdodFZhbHVlKTsKICAgICAgICAgCi0g
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9j
LCBOb3RFcXVhbCwgT3JpZ2luKCksCkBAIC05MzE0LDcgKzkzMjEsNyBAQCB2b2lkIGdlbmVyaWNU
ZXN0Q29tcGFyZSgKICAgICAgICAgVmFsdWUqIGxlZnRWYWx1ZSA9IGxlZnRGdW5jdG9yKHJvb3Qs
IHByb2MpOwogICAgICAgICBWYWx1ZSogcmlnaHRWYWx1ZSA9IHJpZ2h0RnVuY3Rvcihyb290LCBw
cm9jKTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgQnJhbmNoLCBP
cmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgb3Bjb2Rl
LCBPcmlnaW4oKSwgbGVmdFZhbHVlLCByaWdodFZhbHVlKSwKICAgICAgICAgICAgIEZyZXF1ZW50
ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwpAQCAtOTMyOCw5
ICs5MzM1LDkgQEAgdm9pZCBnZW5lcmljVGVzdENvbXBhcmUoCiAgICAgICAgICAgICAgICAgQ0hF
Q0socGFyYW1zWzBdLmlzR1BSKCkpOwogICAgICAgICAgICAgICAgIGppdC5tb3ZlKENDYWxsSGVs
cGVyczo6VHJ1c3RlZEltbTMyKDEpLCBwYXJhbXNbMF0uZ3ByKCkpOwogICAgICAgICAgICAgfSk7
Ci0gICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKIAotICAgICAgICBl
bHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIGVsc2VDYXNlLT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAwKSk7CiAKQEAgLTk1NjksNyArOTU3Niw3IEBAIHZvaWQgdGVzdEVxdWFsRG91YmxlKGRv
dWJsZSBsZWZ0LCBkb3VibGUKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIEVxdWFsLCBPcmlnaW4oKSwKQEAgLTk1ODgsNyArOTU5NSw3IEBAIHZvaWQgdGVz
dENhbGxTaW1wbGUoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q0NhbGxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBJbnQzMiwgT3JpZ2luKCksCkBAIC05NjA2LDE2ICs5NjEz
LDE2IEBAIHZvaWQgdGVzdENhbGxSYXJlKGludCBhLCBpbnQgYikKICAgICBCYXNpY0Jsb2NrKiBj
b21tb24gPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogcmFyZSA9IHByb2MuYWRk
QmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApLAogICAgICAgICBGcmVxdWVudGVkQmxvY2socmFyZSwg
RnJlcXVlbmN5Q2xhc3M6OlJhcmUpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2soY29tbW9uKSk7
CiAKLSAgICBjb21tb24tPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGNvbW1vbi0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjb21t
b24tPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAgICAgCi0g
ICAgcmFyZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcmFyZS0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByYXJl
LT5hcHBlbmROZXc8Q0NhbGxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBJbnQzMiwgT3JpZ2lu
KCksCkBAIC05NjMzLDE2ICs5NjQwLDE2IEBAIHZvaWQgdGVzdENhbGxSYXJlTGl2ZShpbnQgYSwg
aW50IGIsIGludCAKICAgICBCYXNpY0Jsb2NrKiBjb21tb24gPSBwcm9jLmFkZEJsb2NrKCk7CiAg
ICAgQmFzaWNCbG9jayogcmFyZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApLAog
ICAgICAgICBGcmVxdWVudGVkQmxvY2socmFyZSwgRnJlcXVlbmN5Q2xhc3M6OlJhcmUpLAogICAg
ICAgICBGcmVxdWVudGVkQmxvY2soY29tbW9uKSk7CiAKLSAgICBjb21tb24tPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIGNvbW1vbi0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjb21tb24tPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAwKSk7CiAgICAgCi0gICAgcmFyZS0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcmFyZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByYXJlLT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKQEAgLTk2NjIsNyArOTY2OSw3IEBAIHZvaWQgdGVz
dENhbGxTaW1wbGVQdXJlKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENDYWxs
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgSW50MzIsIE9yaWdpbigpLCBFZmZlY3RzOjpub25l
KCksCkBAIC05NjkyLDcgKzk2OTksNyBAQCB2b2lkIHRlc3RDYWxsRnVuY3Rpb25XaXRoSGVsbGFB
cmd1bWVudHMoCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgYml0d2lzZV9jYXN0PHZvaWQqPihmdW5jdGlvbldpdGhIZWxsYUFyZ3VtZW50cykp
KTsKICAgICBjYWxsLT5jaGlsZHJlbigpLmFwcGVuZFZlY3RvcihhcmdzKTsKICAgICAKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYWxs
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgY2FsbCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYykgPT0gZnVuY3Rp
b25XaXRoSGVsbGFBcmd1bWVudHMoMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAx
MiwgMTMsIDE0LCAxNSwgMTYsIDE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNCwgMjUsIDI2
KSk7CiB9CkBAIC05NzAxLDcgKzk3MDgsNyBAQCB2b2lkIHRlc3RSZXR1cm5Eb3VibGUoZG91Ymxl
IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIHZhbHVlKSk7CiAKQEAgLTk3MTIsNyArOTcxOSw3IEBAIHZvaWQgdGVzdFJldHVybkZs
b2F0KGZsb2F0IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgdmFsdWUpKTsKIApAQCAtOTcyOCw3ICs5NzM1LDcgQEAgdm9pZCB0ZXN0
Q2FsbFNpbXBsZURvdWJsZShkb3VibGUgYSwgZG91YgogewogICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q0Nh
bGxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBEb3VibGUsIE9yaWdpbigpLApAQCAtOTc1NCw3
ICs5NzYxLDcgQEAgdm9pZCB0ZXN0Q2FsbFNpbXBsZUZsb2F0KGZsb2F0IGEsIGZsb2F0IAogICAg
ICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMSkpOwogICAgIFZhbHVlKiBmbG9hdFZhbHVlMSA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDFpbnQz
Mik7CiAgICAgVmFsdWUqIGZsb2F0VmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MmludDMyKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
Q2FsbFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEZsb2F0LCBPcmlnaW4oKSwKQEAgLTk3ODQs
NyArOTc5MSw3IEBAIHZvaWQgdGVzdENhbGxGdW5jdGlvbldpdGhIZWxsYURvdWJsZUFyZ3UKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiaXR3
aXNlX2Nhc3Q8dm9pZCo+KGZ1bmN0aW9uV2l0aEhlbGxhRG91YmxlQXJndW1lbnRzKSkpOwogICAg
IGNhbGwtPmNoaWxkcmVuKCkuYXBwZW5kVmVjdG9yKGFyZ3MpOwogICAgIAotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNhbGwpOworICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYWxs
KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jKSA9PSBmdW5jdGlvbldp
dGhIZWxsYURvdWJsZUFyZ3VtZW50cygxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEs
IDEyLCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwg
MjYpKTsKIH0KQEAgLTk4MDgsNyArOTgxNSw3IEBAIHZvaWQgdGVzdENhbGxGdW5jdGlvbldpdGhI
ZWxsYUZsb2F0QXJndW0KICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBiaXR3aXNlX2Nhc3Q8dm9pZCo+KGZ1bmN0aW9uV2l0aEhlbGxhRmxvYXRB
cmd1bWVudHMpKSk7CiAgICAgY2FsbC0+Y2hpbGRyZW4oKS5hcHBlbmRWZWN0b3IoYXJncyk7CiAg
ICAgCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgY2FsbCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIGNhbGwpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJv
YykgPT0gZnVuY3Rpb25XaXRoSGVsbGFGbG9hdEFyZ3VtZW50cygxLCAyLCAzLCA0LCA1LCA2LCA3
LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAy
MiwgMjMsIDI0LCAyNSwgMjYpKTsKIH0KQEAgLTk4MjAsNyArOTgyNyw3IEBAIHZvaWQgdGVzdENo
aWxsRGl2KGludCBudW0sIGludCBkZW4sIGludCAKICAgICAgICAgUHJvY2VkdXJlIHByb2M7CiAg
ICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgICAgIAotICAg
ICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywg
Q2hpbGxEaXYsIE9yaWdpbigpLApAQCAtOTgzOSw3ICs5ODQ2LDcgQEAgdm9pZCB0ZXN0Q2hpbGxE
aXYoaW50IG51bSwgaW50IGRlbiwgaW50IAogICAgICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICAgICAgCi0gICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBDaGls
bERpdiwgT3JpZ2luKCksCkBAIC05ODU1LDcgKzk4NjIsNyBAQCB2b2lkIHRlc3RDaGlsbERpdlR3
aWNlKGludCBudW0xLCBpbnQgZGVuCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCkBAIC05ODg5LDcgKzk4OTYsNyBAQCB2b2lkIHRl
c3RDaGlsbERpdjY0KGludDY0X3QgbnVtLCBpbnQ2NF90CiAgICAgICAgIFByb2NlZHVyZSBwcm9j
OwogICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgICAgICAK
LSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAgIHBy
b2MsIENoaWxsRGl2LCBPcmlnaW4oKSwKQEAgLTk5MDQsNyArOTkxMSw3IEBAIHZvaWQgdGVzdENo
aWxsRGl2NjQoaW50NjRfdCBudW0sIGludDY0X3QKICAgICAgICAgUHJvY2VkdXJlIHByb2M7CiAg
ICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgICAgIAotICAg
ICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywg
Q2hpbGxEaXYsIE9yaWdpbigpLApAQCAtOTkyNSw3ICs5OTMyLDcgQEAgdm9pZCB0ZXN0TW9kQXJn
KGludDY0X3QgdmFsdWUpCiAKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7
CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBP
cmlnaW4oKSwgYXJndW1lbnQsIGFyZ3VtZW50KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAg
Q0hFQ0soIWNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgdmFsdWUpKTsKIH0KQEAgLTk5NDMs
NyArOTk1MCw3IEBAIHZvaWQgdGVzdE1vZEFyZ3MoaW50NjRfdCBudW1lcmF0b3IsIGludDYKICAg
ICBWYWx1ZSogYXJndW1lbnQxID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFZhbHVlKiBhcmd1bWVu
dDIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgYXJndW1lbnQxLCBhcmd1bWVudDIpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
c3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2Ms
IG51bWVyYXRvciwgZGVub21pbmF0b3IpID09IG51bWVyYXRvciAlIGRlbm9taW5hdG9yKTsKIH0K
QEAgLTk5NjEsNyArOTk2OCw3IEBAIHZvaWQgdGVzdE1vZEltbXMoaW50NjRfdCBudW1lcmF0b3Is
IGludDYKICAgICBWYWx1ZSogYXJndW1lbnQxID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIG51bWVyYXRvcik7CiAgICAgVmFsdWUqIGFyZ3VtZW50MiA9IHJv
b3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBkZW5vbWluYXRvcik7
CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBP
cmlnaW4oKSwgYXJndW1lbnQxLCBhcmd1bWVudDIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAg
ICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIG51bWVyYXRvciwgZGVub21pbmF0
b3IpID09IG51bWVyYXRvciAlIGRlbm9taW5hdG9yKTsKIH0KQEAgLTk5NzcsNyArOTk4NCw3IEBA
IHZvaWQgdGVzdE1vZEFyZzMyKGludDMyX3QgdmFsdWUpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgYXJndW1lbnQsIGFyZ3VtZW50KTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQpOwogCiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgdmFsdWUp
KTsKIH0KQEAgLTk5OTcsNyArMTAwMDQsNyBAQCB2b2lkIHRlc3RNb2RBcmdzMzIoaW50MzJfdCBu
dW1lcmF0b3IsIGluCiAgICAgVmFsdWUqIGFyZ3VtZW50MiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSkpOwogICAg
IFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2lu
KCksIGFyZ3VtZW50MSwgYXJndW1lbnQyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hF
Q0soY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBudW1lcmF0b3IsIGRlbm9taW5hdG9yKSA9
PSBudW1lcmF0b3IgJSBkZW5vbWluYXRvcik7CiB9CkBAIC0xMDAxNSw3ICsxMDAyMiw3IEBAIHZv
aWQgdGVzdE1vZEltbXMzMihpbnQzMl90IG51bWVyYXRvciwgaW4KICAgICBWYWx1ZSogYXJndW1l
bnQxID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIG51bWVy
YXRvcik7CiAgICAgVmFsdWUqIGFyZ3VtZW50MiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBkZW5vbWluYXRvcik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgYXJndW1lbnQxLCBhcmd1
bWVudDIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGlu
dDMyX3Q+KHByb2MsIG51bWVyYXRvciwgZGVub21pbmF0b3IpID09IG51bWVyYXRvciAlIGRlbm9t
aW5hdG9yKTsKIH0KQEAgLTEwMDI3LDcgKzEwMDM0LDcgQEAgdm9pZCB0ZXN0Q2hpbGxNb2RBcmco
aW50NjRfdCB2YWx1ZSkKIAogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsK
ICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDaGlsbE1v
ZCwgT3JpZ2luKCksIGFyZ3VtZW50LCBhcmd1bWVudCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAog
ICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIHZhbHVlKSk7CiB9CkBAIC0x
MDA0MCw3ICsxMDA0Nyw3IEBAIHZvaWQgdGVzdENoaWxsTW9kQXJncyhpbnQ2NF90IG51bWVyYXRv
ciwKICAgICBWYWx1ZSogYXJndW1lbnQxID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFZhbHVlKiBh
cmd1bWVudDIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2hpbGxNb2QsIE9yaWdpbigpLCBhcmd1bWVudDEsIGFyZ3Vt
ZW50Mik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50
NjRfdD4ocHJvYywgbnVtZXJhdG9yLCBkZW5vbWluYXRvcikgPT0gY2hpbGxNb2QobnVtZXJhdG9y
LCBkZW5vbWluYXRvcikpOwogfQpAQCAtMTAwNTMsNyArMTAwNjAsNyBAQCB2b2lkIHRlc3RDaGls
bE1vZEltbXMoaW50NjRfdCBudW1lcmF0b3IsCiAgICAgVmFsdWUqIGFyZ3VtZW50MSA9IHJvb3Qt
PmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBudW1lcmF0b3IpOwogICAg
IFZhbHVlKiBhcmd1bWVudDIgPSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgZGVub21pbmF0b3IpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIENoaWxsTW9kLCBPcmlnaW4oKSwgYXJndW1lbnQxLCBhcmd1bWVudDIp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+
KHByb2MsIG51bWVyYXRvciwgZGVub21pbmF0b3IpID09IGNoaWxsTW9kKG51bWVyYXRvciwgZGVu
b21pbmF0b3IpKTsKIH0KQEAgLTEwMDY2LDcgKzEwMDczLDcgQEAgdm9pZCB0ZXN0Q2hpbGxNb2RB
cmczMihpbnQzMl90IHZhbHVlKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkp
OwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENoaWxs
TW9kLCBPcmlnaW4oKSwgYXJndW1lbnQsIGFyZ3VtZW50KTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwog
CiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgdmFsdWUpKTsKIH0KQEAg
LTEwMDgxLDcgKzEwMDg4LDcgQEAgdm9pZCB0ZXN0Q2hpbGxNb2RBcmdzMzIoaW50MzJfdCBudW1l
cmF0bwogICAgIFZhbHVlKiBhcmd1bWVudDIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKTsKICAgICBWYWx1ZSog
cmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDaGlsbE1vZCwgT3JpZ2luKCks
IGFyZ3VtZW50MSwgYXJndW1lbnQyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0so
Y29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBudW1lcmF0b3IsIGRlbm9taW5hdG9yKSA9PSBj
aGlsbE1vZChudW1lcmF0b3IsIGRlbm9taW5hdG9yKSk7CiB9CkBAIC0xMDA5NCw3ICsxMDEwMSw3
IEBAIHZvaWQgdGVzdENoaWxsTW9kSW1tczMyKGludDMyX3QgbnVtZXJhdG8KICAgICBWYWx1ZSog
YXJndW1lbnQxID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IG51bWVyYXRvcik7CiAgICAgVmFsdWUqIGFyZ3VtZW50MiA9IHJvb3QtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBkZW5vbWluYXRvcik7CiAgICAgVmFsdWUqIHJlc3Vs
dCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2hpbGxNb2QsIE9yaWdpbigpLCBhcmd1
bWVudDEsIGFyZ3VtZW50Mik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBp
bGVBbmRSdW48aW50MzJfdD4ocHJvYywgbnVtZXJhdG9yLCBkZW5vbWluYXRvcikgPT0gY2hpbGxN
b2QobnVtZXJhdG9yLCBkZW5vbWluYXRvcikpOwogfQpAQCAtMTAxMDUsNyArMTAxMTIsNyBAQCB2
b2lkIHRlc3RTd2l0Y2godW5zaWduZWQgZGVncmVlLCB1bnNpZ25lCiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKIAogICAgIEJhc2ljQmxvY2sqIHRlcm1pbmF0ZSA9IHBy
b2MuYWRkQmxvY2soKTsKLSAgICB0ZXJtaW5hdGUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHRlcm1pbmF0ZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICB0ZXJtaW5hdGUtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTEwMTE2LDcgKzEwMTIzLDcgQEAgdm9pZCB0ZXN0
U3dpdGNoKHVuc2lnbmVkIGRlZ3JlZSwgdW5zaWduZQogCiAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IGRlZ3JlZTsgKytpKSB7CiAgICAgICAgIEJhc2ljQmxvY2sqIG5ld0Jsb2NrID0gcHJv
Yy5hZGRCbG9jaygpOwotICAgICAgICBuZXdCbG9jay0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgICAgIG5ld0Jsb2NrLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgbmV3QmxvY2stPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgKGkgJiAx
KSA/IEdQUkluZm86OmFyZ3VtZW50R1BSMiA6IEdQUkluZm86OmFyZ3VtZW50R1BSMSkpOwpAQCAt
MTAxNDcsNyArMTAxNTQsNyBAQCB2b2lkIHRlc3RTd2l0Y2hDaGlsbERpdih1bnNpZ25lZCBkZWdy
ZWUsCiAgICAgVmFsdWUqIHJpZ2h0ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpOwogCiAgICAgQmFzaWNCbG9j
ayogdGVybWluYXRlID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHRlcm1pbmF0ZS0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgdGVybWluYXRlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRlcm1pbmF0ZS0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtMTAxNTksNyArMTAx
NjYsNyBAQCB2b2lkIHRlc3RTd2l0Y2hDaGlsbERpdih1bnNpZ25lZCBkZWdyZWUsCiAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IGRlZ3JlZTsgKytpKSB7CiAgICAgICAgIEJhc2ljQmxvY2sq
IG5ld0Jsb2NrID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgICAgIG5ld0Jsb2NrLT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgbmV3QmxvY2stPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICBuZXdC
bG9jay0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBDaGlsbERpdiwg
T3JpZ2luKCksIChpICYgMSkgPyByaWdodCA6IGxlZnQsIChpICYgMSkgPyBsZWZ0IDogcmlnaHQp
KTsKQEAgLTEwMTcwLDcgKzEwMTc3LDEwIEBAIHZvaWQgdGVzdFN3aXRjaENoaWxsRGl2KHVuc2ln
bmVkIGRlZ3JlZSwKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCiAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IGRlZ3JlZTsgKytpKSB7Ci0gICAgICAgIENIRUNLKGludm9rZTxp
bnQzMl90PigqY29kZSwgaSAqIGdhcCwgNDIsIDExKSA9PSAoKGkgJiAxKSA/IDExLzQyIDogNDIv
MTEpKTsKKyAgICAgICAgZGF0YUxvZygiaSA9ICIsIGksICJcbiIpOworICAgICAgICBpbnQzMl90
IHJlc3VsdCA9IGludm9rZTxpbnQzMl90PigqY29kZSwgaSAqIGdhcCwgNDIsIDExKTsKKyAgICAg
ICAgZGF0YUxvZygicmVzdWx0ID0gIiwgcmVzdWx0LCAiXG4iKTsKKyAgICAgICAgQ0hFQ0socmVz
dWx0ID09ICgoaSAmIDEpID8gMTEvNDIgOiA0Mi8xMSkpOwogICAgICAgICBpZiAoZ2FwID4gMSkg
ewogICAgICAgICAgICAgQ0hFQ0soIWludm9rZTxpbnQzMl90PigqY29kZSwgaSAqIGdhcCArIDEs
IDQyLCAxMSkpOwogICAgICAgICAgICAgQ0hFQ0soIWludm9rZTxpbnQzMl90PigqY29kZSwgaSAq
IGdhcCAtIDEsIDQyLCAxMSkpOwpAQCAtMTAxODgsNyArMTAxOTgsNyBAQCB2b2lkIHRlc3RTd2l0
Y2hUYXJnZXR0aW5nU2FtZUJsb2NrKCkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwogCiAgICAgQmFzaWNCbG9jayogdGVybWluYXRlID0gcHJvYy5hZGRCbG9jaygpOwot
ICAgIHRlcm1pbmF0ZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGVybWluYXRlLT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHRlcm1pbmF0ZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IDUpKTsKIApAQCAtMTAxOTgsNyArMTAyMDgsNyBAQCB2b2lkIHRlc3RTd2l0Y2hUYXJnZXR0aW5n
U2FtZUJsb2NrKCkKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRlcm1pbmF0ZSkpOwogCiAgICAg
QmFzaWNCbG9jayogb3RoZXJUYXJnZXQgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgb3RoZXJUYXJn
ZXQtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIG90aGVyVGFyZ2V0LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIG90
aGVyVGFyZ2V0LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpKTsK
ICAgICBzd2l0Y2hWYWx1ZS0+YXBwZW5kQ2FzZShTd2l0Y2hDYXNlKDMsIEZyZXF1ZW50ZWRCbG9j
ayhvdGhlclRhcmdldCkpKTsKQEAgLTEwMjE4LDcgKzEwMjI4LDcgQEAgdm9pZCB0ZXN0U3dpdGNo
VGFyZ2V0dGluZ1NhbWVCbG9ja0ZvbGRQYQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7CiAKICAgICBCYXNpY0Jsb2NrKiB0ZXJtaW5hdGUgPSBwcm9jLmFkZEJsb2NrKCk7
Ci0gICAgdGVybWluYXRlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0ZXJtaW5hdGUt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgdGVybWluYXRlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgNDIpKTsKIApAQCAtMTAyMjksNyArMTAyMzksNyBAQCB2b2lkIHRlc3RTd2l0Y2hUYXJnZXR0
aW5nU2FtZUJsb2NrRm9sZFBhCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0ZXJtaW5hdGUpKTsK
IAogICAgIEJhc2ljQmxvY2sqIG90aGVyVGFyZ2V0ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIG90
aGVyVGFyZ2V0LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBvdGhlclRhcmdldC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhcmd1
bWVudCk7CiAgICAgc3dpdGNoVmFsdWUtPmFwcGVuZENhc2UoU3dpdGNoQ2FzZSgzLCBGcmVxdWVu
dGVkQmxvY2sob3RoZXJUYXJnZXQpKSk7CiAgICAgc3dpdGNoVmFsdWUtPmFwcGVuZENhc2UoU3dp
dGNoQ2FzZSgxMywgRnJlcXVlbnRlZEJsb2NrKG90aGVyVGFyZ2V0KSkpOwpAQCAtMTAyNDYsNyAr
MTAyNTYsNyBAQCB2b2lkIHRlc3RUcnVuY0ZvbGQoaW50NjRfdCB2YWx1ZSkKIHsKICAgICBQcm9j
ZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKQEAg
LTEwMjU5LDcgKzEwMjY5LDcgQEAgdm9pZCB0ZXN0WkV4dDMyKGludDMyX3QgdmFsdWUpCiB7CiAg
ICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBaRXh0MzIsIE9yaWdp
bigpLApAQCAtMTAyNzQsNyArMTAyODQsNyBAQCB2b2lkIHRlc3RaRXh0MzJGb2xkKGludDMyX3Qg
dmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBa
RXh0MzIsIE9yaWdpbigpLApAQCAtMTAyODcsNyArMTAyOTcsNyBAQCB2b2lkIHRlc3RTRXh0MzIo
aW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIFNFeHQzMiwgT3JpZ2luKCksCkBAIC0xMDMwMiw3ICsxMDMxMiw3IEBAIHZvaWQgdGVz
dFNFeHQzMkZvbGQoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIFNFeHQzMiwgT3JpZ2luKCksCkBAIC0xMDMxNSw3ICsxMDMyNSw3
IEBAIHZvaWQgdGVzdFRydW5jWkV4dDMyKGludDMyX3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJl
IHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCkBAIC0xMDMz
Miw3ICsxMDM0Miw3IEBAIHZvaWQgdGVzdFRydW5jU0V4dDMyKGludDMyX3QgdmFsdWUpCiB7CiAg
ICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2lu
KCksCkBAIC0xMDM0OSw3ICsxMDM1OSw3IEBAIHZvaWQgdGVzdFNFeHQ4KGludDMyX3QgdmFsdWUp
CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTRXh0OCwg
T3JpZ2luKCksCkBAIC0xMDM2NCw3ICsxMDM3NCw3IEBAIHZvaWQgdGVzdFNFeHQ4Rm9sZChpbnQz
Ml90IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgU0V4dDgsIE9yaWdpbigpLApAQCAtMTAzNzcsNyArMTAzODcsNyBAQCB2b2lkIHRlc3RTRXh0
OFNFeHQ4KGludDMyX3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBTRXh0OCwgT3JpZ2luKCksCkBAIC0xMDM5NCw3ICsxMDQwNCw3IEBAIHZv
aWQgdGVzdFNFeHQ4U0V4dDE2KGludDMyX3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTRXh0OCwgT3JpZ2luKCksCkBAIC0xMDQxMSw3ICsx
MDQyMSw3IEBAIHZvaWQgdGVzdFNFeHQ4Qml0QW5kKGludDMyX3QgdmFsdWUsIGludDMKIHsKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNFeHQ4LCBPcmlnaW4o
KSwKQEAgLTEwNDI5LDcgKzEwNDM5LDcgQEAgdm9pZCB0ZXN0Qml0QW5kU0V4dDgoaW50MzJfdCB2
YWx1ZSwgaW50MwogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTEwNDQ3LDcgKzEwNDU3LDcgQEAgdm9pZCB0ZXN0U0V4
dDE2KGludDMyX3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBTRXh0MTYsIE9yaWdpbigpLApAQCAtMTA0NjIsNyArMTA0NzIsNyBAQCB2b2lk
IHRlc3RTRXh0MTZGb2xkKGludDMyX3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBTRXh0MTYsIE9yaWdpbigpLApAQCAtMTA0NzUsNyArMTA0
ODUsNyBAQCB2b2lkIHRlc3RTRXh0MTZTRXh0MTYoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9j
ZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNFeHQxNiwgT3JpZ2luKCksCkBA
IC0xMDQ5Miw3ICsxMDUwMiw3IEBAIHZvaWQgdGVzdFNFeHQxNlNFeHQ4KGludDMyX3QgdmFsdWUp
CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTRXh0MTYs
IE9yaWdpbigpLApAQCAtMTA1MDksNyArMTA1MTksNyBAQCB2b2lkIHRlc3RTRXh0MTZCaXRBbmQo
aW50MzJfdCB2YWx1ZSwgaW50CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBTRXh0MTYsIE9yaWdpbigpLApAQCAtMTA1MjcsNyArMTA1MzcsNyBAQCB2b2lk
IHRlc3RCaXRBbmRTRXh0MTYoaW50MzJfdCB2YWx1ZSwgaW50CiB7CiAgICAgUHJvY2VkdXJlIHBy
b2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMTA1NDUs
NyArMTA1NTUsNyBAQCB2b2lkIHRlc3RTRXh0MzJCaXRBbmQoaW50MzJfdCB2YWx1ZSwgaW50CiB7
CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTRXh0MzIsIE9y
aWdpbigpLApAQCAtMTA1NjMsNyArMTA1NzMsNyBAQCB2b2lkIHRlc3RCaXRBbmRTRXh0MzIoaW50
MzJfdCB2YWx1ZSwgaW50CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMTA1ODEsNyArMTA1OTEsNyBAQCB2b2lkIHRl
c3RCYXNpY1NlbGVjdCgpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLApAQCAtMTA2MDMsNyArMTA2MTMsNyBAQCB2b2lkIHRl
c3RTZWxlY3RUZXN0KCkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0xMDYyMiw3ICsxMDYzMiw3IEBAIHZvaWQgdGVz
dFNlbGVjdENvbXBhcmVEb3VibGUoKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTEwNjUzLDcgKzEwNjYzLDcgQEAg
dm9pZCB0ZXN0U2VsZWN0Q29tcGFyZUZsb2F0KGZsb2F0IGEsIGZsbwogICAgIFZhbHVlKiBmbG9h
dFZhbHVlMSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdp
bigpLCBhcmd1bWVudDFpbnQzMik7CiAgICAgVmFsdWUqIGZsb2F0VmFsdWUyID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MmludDMy
KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3Jp
Z2luKCksCkBAIC0xMDY5MSw3ICsxMDcwMSw3IEBAIHZvaWQgdGVzdFNlbGVjdENvbXBhcmVGbG9h
dFRvRG91YmxlKGZsb2EKICAgICBWYWx1ZSogZG91YmxlVmFsdWUxID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZTEpOwogICAg
IFZhbHVlKiBkb3VibGVWYWx1ZTIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0
VG9Eb3VibGUsIE9yaWdpbigpLCBmbG9hdFZhbHVlMik7CiAKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
CiAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLApAQCAtMTA3MTksNyArMTA3Mjks
NyBAQCB2b2lkIHRlc3RTZWxlY3REb3VibGUoKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTEwNzQxLDcgKzEwNzUx
LDcgQEAgdm9pZCB0ZXN0U2VsZWN0RG91YmxlVGVzdCgpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLApAQCAtMTA3NjAsNyAr
MTA3NzAsNyBAQCB2b2lkIHRlc3RTZWxlY3REb3VibGVDb21wYXJlRG91YmxlKCkKIHsKICAgICBQ
cm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCks
CkBAIC0xMDc5MCw3ICsxMDgwMCw3IEBAIHZvaWQgdGVzdFNlbGVjdERvdWJsZUNvbXBhcmVGbG9h
dChmbG9hdCAKICAgICBWYWx1ZSogZmxvYXRWYWx1ZTEgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQxaW50MzIpOwogICAgIFZhbHVl
KiBmbG9hdFZhbHVlMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3Qs
IE9yaWdpbigpLCBhcmd1bWVudDJpbnQzMik7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLApAQCAtMTA4MjEsNyArMTA4MzEsNyBAQCB2
b2lkIHRlc3RTZWxlY3RGbG9hdENvbXBhcmVGbG9hdChmbG9hdCBhCiAgICAgVmFsdWUqIGZsb2F0
VmFsdWUzID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2lu
KCksIGFyZ3VtZW50M2ludDMyKTsKICAgICBWYWx1ZSogZmxvYXRWYWx1ZTQgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQ0aW50MzIp
OwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmln
aW4oKSwKQEAgLTEwODQ3LDcgKzEwODU3LDcgQEAgdm9pZCB0ZXN0U2VsZWN0RG91YmxlQ29tcGFy
ZURvdWJsZShib29sIAogICAgICAgICBWYWx1ZSogYXJnMiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIyKTsKICAg
ICAgICAgVmFsdWUqIGFyZzMgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMyk7CiAKLSAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2lu
KCksCkBAIC0xMDg4Myw3ICsxMDg5Myw3IEBAIHZvaWQgdGVzdFNlbGVjdERvdWJsZUNvbXBhcmVE
b3VibGUoYm9vbCAKICAgICAgICAga2VlcFZhbHVlc0xpdmUtPmFwcGVuZChDb25zdHJhaW5lZFZh
bHVlKGFyZzIsIFZhbHVlUmVwOjpTb21lUmVnaXN0ZXIpKTsKICAgICAgICAga2VlcFZhbHVlc0xp
dmUtPnNldEdlbmVyYXRvcihbJl0gKENDYWxsSGVscGVycyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJh
dGlvblBhcmFtcyYpIHsgfSk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICAgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgICAg
IGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKICAgICAgICAgZm9yIChhdXRvJiBsZWZ0IDog
ZmxvYXRpbmdQb2ludE9wZXJhbmRzPGRvdWJsZT4oKSkgewpAQCAtMTA5MTAsNyArMTA5MjAsNyBA
QCB2b2lkIHRlc3RTZWxlY3REb3VibGVDb21wYXJlRG91YmxlKGJvb2wgCiAgICAgICAgIGtlZXBW
YWx1ZXNMaXZlLT5hcHBlbmQoQ29uc3RyYWluZWRWYWx1ZShhcmczLCBWYWx1ZVJlcDo6U29tZVJl
Z2lzdGVyKSk7CiAgICAgICAgIGtlZXBWYWx1ZXNMaXZlLT5zZXRHZW5lcmF0b3IoWyZdIChDQ2Fs
bEhlbHBlcnMmLCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7IH0pOwogCi0gICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJlc3VsdCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByZXN1bHQpOwogICAgICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2Mp
OwogCiAgICAgICAgIGZvciAoYXV0byYgbGVmdCA6IGZsb2F0aW5nUG9pbnRPcGVyYW5kczxkb3Vi
bGU+KCkpIHsKQEAgLTEwOTM4LDcgKzEwOTQ4LDcgQEAgdm9pZCB0ZXN0U2VsZWN0RG91YmxlQ29t
cGFyZURvdWJsZShib29sIAogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+YXBwZW5kKENvbnN0cmFp
bmVkVmFsdWUoYXJnMywgVmFsdWVSZXA6OlNvbWVSZWdpc3RlcikpOwogICAgICAgICBrZWVwVmFs
dWVzTGl2ZS0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBH
ZW5lcmF0aW9uUGFyYW1zJikgeyB9KTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgICAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKICAg
ICAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIAogICAgICAgICBmb3IgKGF1dG8mIGxl
ZnQgOiBmbG9hdGluZ1BvaW50T3BlcmFuZHM8ZG91YmxlPigpKSB7CkBAIC0xMDk1NSw3ICsxMDk2
NSw3IEBAIHZvaWQgdGVzdFNlbGVjdERvdWJsZUNvbXBhcmVEb3VibGUoYm9vbCAKICAgICAgICAg
VmFsdWUqIGFyZzEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMSk7CiAgICAgICAgIFZhbHVlKiBhcmcyID0gcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjph
cmd1bWVudEZQUjIpOwogCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAg
ICAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLApAQCAtMTA5OTAsNyArMTEwMDAs
NyBAQCB2b2lkIHRlc3RTZWxlY3REb3VibGVDb21wYXJlRG91YmxlKGJvb2wgCiAgICAgICAgIGtl
ZXBWYWx1ZXNMaXZlLT5hcHBlbmQoQ29uc3RyYWluZWRWYWx1ZShhcmcyLCBWYWx1ZVJlcDo6U29t
ZVJlZ2lzdGVyKSk7CiAgICAgICAgIGtlZXBWYWx1ZXNMaXZlLT5zZXRHZW5lcmF0b3IoWyZdIChD
Q2FsbEhlbHBlcnMmLCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7IH0pOwogCi0g
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogICAgICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHBy
b2MpOwogCiAgICAgICAgIGZvciAoYXV0byYgbGVmdCA6IGZsb2F0aW5nUG9pbnRPcGVyYW5kczxk
b3VibGU+KCkpIHsKQEAgLTExMDMzLDcgKzExMDQzLDcgQEAgdm9pZCB0ZXN0U2VsZWN0RmxvYXRD
b21wYXJlRmxvYXQoYm9vbCAoKgogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjMpKSk7
CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAg
IHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0xMTA3Nyw3ICsxMTA4Nyw3IEBAIHZvaWQgdGVz
dFNlbGVjdEZsb2F0Q29tcGFyZUZsb2F0KGJvb2wgKCoKICAgICAgICAga2VlcFZhbHVlc0xpdmUt
PmFwcGVuZChDb25zdHJhaW5lZFZhbHVlKGFyZzIsIFZhbHVlUmVwOjpTb21lUmVnaXN0ZXIpKTsK
ICAgICAgICAga2VlcFZhbHVlc0xpdmUtPnNldEdlbmVyYXRvcihbJl0gKENDYWxsSGVscGVycyYs
IGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsgfSk7CiAKLSAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsK
KyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdCk7CiAgICAgICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKICAgICAg
ICAgZm9yIChhdXRvJiBsZWZ0IDogZmxvYXRpbmdQb2ludE9wZXJhbmRzPGZsb2F0PigpKSB7CkBA
IC0xMTExMiw3ICsxMTEyMiw3IEBAIHZvaWQgdGVzdFNlbGVjdEZsb2F0Q29tcGFyZUZsb2F0KGJv
b2wgKCoKICAgICAgICAga2VlcFZhbHVlc0xpdmUtPmFwcGVuZChDb25zdHJhaW5lZFZhbHVlKGFy
ZzMsIFZhbHVlUmVwOjpTb21lUmVnaXN0ZXIpKTsKICAgICAgICAga2VlcFZhbHVlc0xpdmUtPnNl
dEdlbmVyYXRvcihbJl0gKENDYWxsSGVscGVycyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBh
cmFtcyYpIHsgfSk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgICAgIGF1dG8g
Y29kZSA9IGNvbXBpbGUocHJvYyk7CiAKICAgICAgICAgZm9yIChhdXRvJiBsZWZ0IDogZmxvYXRp
bmdQb2ludE9wZXJhbmRzPGZsb2F0PigpKSB7CkBAIC0xMTE0OCw3ICsxMTE1OCw3IEBAIHZvaWQg
dGVzdFNlbGVjdEZsb2F0Q29tcGFyZUZsb2F0KGJvb2wgKCoKICAgICAgICAga2VlcFZhbHVlc0xp
dmUtPmFwcGVuZChDb25zdHJhaW5lZFZhbHVlKGFyZzMsIFZhbHVlUmVwOjpTb21lUmVnaXN0ZXIp
KTsKICAgICAgICAga2VlcFZhbHVlc0xpdmUtPnNldEdlbmVyYXRvcihbJl0gKENDYWxsSGVscGVy
cyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsgfSk7CiAKLSAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
KTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdCk7CiAgICAgICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKICAg
ICAgICAgZm9yIChhdXRvJiBsZWZ0IDogZmxvYXRpbmdQb2ludE9wZXJhbmRzPGZsb2F0PigpKSB7
CkBAIC0xMTE3MSw3ICsxMTE4MSw3IEBAIHZvaWQgdGVzdFNlbGVjdEZsb2F0Q29tcGFyZUZsb2F0
KGJvb2wgKCoKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMs
IE9yaWdpbigpLAogICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKSkpOwogCi0gICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBTZWxl
Y3QsIE9yaWdpbigpLApAQCAtMTEyMTIsNyArMTEyMjIsNyBAQCB2b2lkIHRlc3RTZWxlY3RGbG9h
dENvbXBhcmVGbG9hdChib29sICgqCiAgICAgICAgIGtlZXBWYWx1ZXNMaXZlLT5hcHBlbmQoQ29u
c3RyYWluZWRWYWx1ZShhcmcyLCBWYWx1ZVJlcDo6U29tZVJlZ2lzdGVyKSk7CiAgICAgICAgIGtl
ZXBWYWx1ZXNMaXZlLT5zZXRHZW5lcmF0b3IoWyZdIChDQ2FsbEhlbHBlcnMmLCBjb25zdCBTdGFj
a21hcEdlbmVyYXRpb25QYXJhbXMmKSB7IH0pOwogCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQp
OwogICAgICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCiAgICAgICAgIGZvciAoYXV0
byYgbGVmdCA6IGZsb2F0aW5nUG9pbnRPcGVyYW5kczxmbG9hdD4oKSkgewpAQCAtMTEyMzksNyAr
MTEyNDksNyBAQCB2b2lkIHRlc3RTZWxlY3RGb2xkKGludHB0cl90IHZhbHVlKQogewogICAgIFBy
b2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwK
QEAgLTExMjU5LDcgKzExMjY5LDcgQEAgdm9pZCB0ZXN0U2VsZWN0SW52ZXJ0KCkKIHsKICAgICBQ
cm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCks
CkBAIC0xMTMxMiw3ICsxMTMyMiw3IEBAIHZvaWQgdGVzdENoZWNrU2VsZWN0KCkKICAgICAgICAg
ICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7CiAgICAgCi0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC0xMTM4Myw3ICsxMTM5Myw3IEBAIHZvaWQg
dGVzdENoZWNrU2VsZWN0Q2hlY2tTZWxlY3QoKQogICAgICAgICAgICAgaml0LnJldCgpOwogICAg
ICAgICB9KTsKICAgICAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCAwKSk7CiAKQEAgLTExNDE5LDcgKzExNDI5LDcgQEAgdm9pZCB0ZXN0UG93RG91YmxlQnlJbnRl
Z2VyTG9vcChkb3VibGUgeAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIGF1dG8gcmVz
dWx0ID0gcG93RG91YmxlSW50MzIocHJvYywgcm9vdCwgT3JpZ2luKCksIHgsIHkpOwogICAgIEJh
c2ljQmxvY2sqIGNvbnRpbnVhdGlvbiA9IHJlc3VsdC5maXJzdDsKLSAgICBjb250aW51YXRpb24t
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdC5z
ZWNvbmQpOworICAgIGNvbnRpbnVhdGlvbi0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdC5zZWNvbmQpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwo
Y29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIHhPcGVyYW5kLCB5T3BlcmFuZCksIGIzUG93KHhP
cGVyYW5kLCB5T3BlcmFuZCkpKTsKIH0KQEAgLTExNDI5LDcgKzExNDM5LDcgQEAgdm9pZCB0ZXN0
VHJ1bmNPckhpZ2goKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBw
cm9jLCBUcnVuYywgT3JpZ2luKCksCkBAIC0xMTQ0Nyw3ICsxMTQ1Nyw3IEBAIHZvaWQgdGVzdFRy
dW5jT3JMb3coKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBUcnVuYywgT3JpZ2luKCksCkBAIC0xMTQ2NSw3ICsxMTQ3NSw3IEBAIHZvaWQgdGVzdEJpdEFu
ZE9ySGlnaCgpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IEJpdEFuZCwgT3JpZ2luKCksCkBAIC0xMTQ4NCw3ICsxMTQ5NCw3IEBAIHZvaWQgdGVzdEJpdEFu
ZE9yTG93KCkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
Qml0QW5kLCBPcmlnaW4oKSwKQEAgLTExNTA3LDIwICsxMTUxNywyMCBAQCB2b2lkIHRlc3RCcmFu
Y2g2NEVxdWFsKGludDY0X3QgbGVmdCwgaW50CiAKICAgICBWYWx1ZSogYXJnMSA9IHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwKTsKICAgICBWYWx1ZSogYXJnMiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgRXF1YWwsIE9yaWdpbigpLCBhcmcxLCBhcmcyKSwKICAgICAgICAgRnJl
cXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKICAg
ICBib29sIHRydWVSZXN1bHQgPSB0cnVlOwotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PE1lbW9y
eVZhbHVlPigKICAgICAgICAgICAgIHByb2MsIExvYWQ4WiwgT3JpZ2luKCksCiAgICAgICAgICAg
ICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAmdHJ1
ZVJlc3VsdCkpKTsKIAogICAgIGJvb2wgZWxzZVJlc3VsdCA9IGZhbHNlOwotICAgIGVsc2VDYXNl
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2Fz
ZS0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgIHByb2MsIExvYWQ4WiwgT3Jp
Z2luKCksCkBAIC0xMTUzOCwyMCArMTE1NDgsMjAgQEAgdm9pZCB0ZXN0QnJhbmNoNjRFcXVhbElt
bShpbnQ2NF90IGxlZnQsIAogCiAgICAgVmFsdWUqIGFyZzEgPSByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAg
ICAgVmFsdWUqIGFyZzIgPSByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIHJpZ2h0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRXF1YWwsIE9yaWdpbigp
LCBhcmcxLCBhcmcyKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVl
bnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKICAgICBib29sIHRydWVSZXN1bHQgPSB0cnVlOwotICAg
IHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICB0aGVuQ2FzZS0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgIHByb2MsIExv
YWQ4WiwgT3JpZ2luKCksCiAgICAgICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0UHRy
VmFsdWU+KHByb2MsIE9yaWdpbigpLCAmdHJ1ZVJlc3VsdCkpKTsKIAogICAgIGJvb2wgZWxzZVJl
c3VsdCA9IGZhbHNlOwotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIExvYWQ4WiwgT3JpZ2luKCksCkBAIC0xMTU3MSwyMCArMTE1ODEsMjAg
QEAgdm9pZCB0ZXN0QnJhbmNoNjRFcXVhbE1lbShpbnQ2NF90IGxlZnQsIAogICAgICAgICBwcm9j
LCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjAp
KTsKICAgICBWYWx1ZSogYXJnMiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgRXF1YWwsIE9yaWdpbigpLCBhcmcxLCBhcmcyKSwKICAgICAgICAgRnJlcXVlbnRl
ZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKICAgICBib29s
IHRydWVSZXN1bHQgPSB0cnVlOwotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PE1lbW9yeVZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIExvYWQ4WiwgT3JpZ2luKCksCiAgICAgICAgICAgICB0aGVu
Q2FzZS0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAmdHJ1ZVJlc3Vs
dCkpKTsKIAogICAgIGJvb2wgZWxzZVJlc3VsdCA9IGZhbHNlOwotICAgIGVsc2VDYXNlLT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBw
ZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgIHByb2MsIExvYWQ4WiwgT3JpZ2luKCks
CkBAIC0xMTYwNCwyMCArMTE2MTQsMjAgQEAgdm9pZCB0ZXN0QnJhbmNoNjRFcXVhbE1lbUltbShp
bnQ2NF90IGxlZgogICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSogYXJnMiA9IHJvb3QtPmFwcGVu
ZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgcmlnaHQpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBFcXVhbCwgT3JpZ2luKCksIGFyZzEsIGFyZzIpLAogICAgICAgICBGcmVx
dWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAogICAg
IGJvb2wgdHJ1ZVJlc3VsdCA9IHRydWU7Ci0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8TWVtb3J5
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZDhaLCBPcmlnaW4oKSwKICAgICAgICAgICAg
IHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZ0cnVl
UmVzdWx0KSkpOwogCiAgICAgYm9vbCBlbHNlUmVzdWx0ID0gZmFsc2U7Ci0gICAgZWxzZUNhc2Ut
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNl
LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZDhaLCBPcmln
aW4oKSwKQEAgLTExNjQxLDcgKzExNjUxLDcgQEAgdm9pZCB0ZXN0U3RvcmU4TG9hZDhaKGludDMy
X3QgdmFsdWUpCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICBwdHIpOwog
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQ4WiwgT3JpZ2luKCksIHB0cikp
OwogCkBAIC0xMTY2Myw3ICsxMTY3Myw3IEBAIHZvaWQgdGVzdFN0b3JlMTZMb2FkMTZaKGludDMy
X3QgdmFsdWUpCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICBwdHIpOwog
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQxNlosIE9yaWdpbigpLCBwdHIp
KTsKIApAQCAtMTE2NzUsNyArMTE2ODUsNyBAQCB2b2lkIHRlc3RTU2hyU2hsMzIoaW50MzJfdCB2
YWx1ZSwgaW50MzJfCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIFNTaHIsIE9yaWdpbigpLApAQCAtMTE2OTcsNyArMTE3MDcsNyBAQCB2b2lkIHRlc3RTU2hy
U2hsNjQoaW50NjRfdCB2YWx1ZSwgaW50MzJfCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIFNTaHIsIE9yaWdpbigpLApAQCAtMTE3MjUsOCArMTE3MzUsOCBA
QCB2b2lkIHRlc3RUcml2aWFsSW5maW5pdGVMb29wKCkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGxv
b3AgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhsb29wKSk7Ci0gICAgbG9vcC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRC
bG9jayhsb29wKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAs
IE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sobG9vcCkpOworICAgIGxvb3AtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3ApKTsK
IAogICAgIGNvbXBpbGUocHJvYyk7CiB9CkBAIC0xMTc0MCwxNSArMTE3NTAsMTUgQEAgdm9pZCB0
ZXN0Rm9sZFBhdGhFcXVhbCgpCiAKICAgICBWYWx1ZSogYXJnID0gcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwog
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLCBhcmcsIEZyZXF1
ZW50ZWRCbG9jayh0aGVuQmxvY2spLCBGcmVxdWVudGVkQmxvY2soZWxzZUJsb2NrKSk7CiAKLSAg
ICB0aGVuQmxvY2stPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5CbG9jay0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICB0aGVuQmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBFcXVh
bCwgT3JpZ2luKCksIGFyZywgdGhlbkJsb2NrLT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIDApKSk7CiAKLSAgICBlbHNlQmxvY2stPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIGVsc2VCbG9jay0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4o
CiAgICAgICAgICAgICBwcm9jLCBFcXVhbCwgT3JpZ2luKCksIGFyZywgZWxzZUJsb2NrLT5hcHBl
bmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKSk7CkBAIC0xMTc2Niw3ICsx
MTc3Niw3IEBAIHZvaWQgdGVzdExTaGlmdFNlbGYzMigpCiAgICAgVmFsdWUqIGFyZyA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU2hsLCBPcmln
aW4oKSwgYXJnLCBhcmcpKTsKIApAQCAtMTE3ODksNyArMTE3OTksNyBAQCB2b2lkIHRlc3RSU2hp
ZnRTZWxmMzIoKQogICAgIFZhbHVlKiBhcmcgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFNTaHIsIE9yaWdpbigpLCBhcmcsIGFyZykpOwogCkBA
IC0xMTgxMiw3ICsxMTgyMiw3IEBAIHZvaWQgdGVzdFVSU2hpZnRTZWxmMzIoKQogICAgIFZhbHVl
KiBhcmcgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICBwcm9jLCBUcnVuYywgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIFpTaHIsIE9yaWdpbigpLCBhcmcsIGFyZykpOwogCkBAIC0xMTgzMyw3ICsxMTg0Myw3IEBA
IHZvaWQgdGVzdExTaGlmdFNlbGY2NCgpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJnID0gcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNobCwgT3Jp
Z2luKCksIGFyZywgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCks
IGFyZykpKTsKQEAgLTExODU3LDcgKzExODY3LDcgQEAgdm9pZCB0ZXN0UlNoaWZ0U2VsZjY0KCkK
ICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwogICAgIFZhbHVlKiBhcmcgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KAogICAgICAgICAgICAgcHJvYywgU1NociwgT3JpZ2luKCksIGFyZywgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksIGFyZykpKTsKQEAgLTExODgxLDcgKzEx
ODkxLDcgQEAgdm9pZCB0ZXN0VVJTaGlmdFNlbGY2NCgpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJnID0g
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IFpTaHIsIE9yaWdpbigpLCBhcmcsIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMs
IE9yaWdpbigpLCBhcmcpKSk7CkBAIC0xMTkxNyw3ICsxMTkyNyw3IEBAIHZvaWQgdGVzdFBhdGNo
cG9pbnREb3VibGVSZWdzKCkKICAgICAgICAgICAgIG51bUNhbGxzKys7CiAgICAgICAgIH0pOwog
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcGF0Y2hwb2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShw
cm9jKTsKICAgICBDSEVDSyhudW1DYWxscyA9PSAxKTsKQEAgLTExOTUwLDcgKzExOTYwLDcgQEAg
dm9pZCB0ZXN0U3BpbGxEZWZTbWFsbGVyVGhhblVzZSgpCiAKICAgICAvLyBPbiB4ODYsIFN1YiBh
ZG1pdCBhbiBhZGRyZXNzIGZvciBhbnkgb3BlcmFuZC4gSWYgaXQgdXNlcyB0aGUgc3RhY2ssIHRo
ZSB0b3AgYml0cyBtdXN0IGJlIHplcm8uCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgZm9yY2VTcGlsbCwgYXJnNjQpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
c3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIENI
RUNLKGludm9rZTxpbnQ2NF90PigqY29kZSwgMHhmZmZmZmZmZjAwMDAwMDAwKSA9PSAwKTsKQEAg
LTExOTcwLDcgKzExOTgwLDcgQEAgdm9pZCB0ZXN0U3BpbGxVc2VMYXJnZXJUaGFuRGVmKCkKIAog
ICAgIFZhbHVlKiBjb25kaXRpb24gPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIGFyZ3Vt
ZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjEpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNo
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIFRydW5jLCBPcmlnaW4oKSwKQEAgLTExOTgwLDEwICsxMTk5MCwxMCBAQCB2b2lkIHRl
c3RTcGlsbFVzZUxhcmdlclRoYW5EZWYoKQogICAgIFZhbHVlKiB0cnVuY2F0ZWQgPSB0aGVuQ2Fz
ZS0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBaRXh0MzIsIE9yaWdpbigpLAogICAgICAgICB0aGVu
Q2FzZS0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksIGFyZ3VtZW50KSk7
CiAgICAgVXBzaWxvblZhbHVlKiB0aGVuUmVzdWx0ID0gdGhlbkNhc2UtPmFwcGVuZE5ldzxVcHNp
bG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCB0cnVuY2F0ZWQpOwotICAgIHRoZW5DYXNlLT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2Nr
KHRhaWwpKTsKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAs
IE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOwogCiAgICAgVXBzaWxvblZhbHVlKiBl
bHNlUmVzdWx0ID0gZWxzZUNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBhcmd1bWVudCk7Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOworICAgIGVsc2VDYXNl
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRC
bG9jayh0YWlsKSk7CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgMTAwOyArK2kpIHsK
ICAgICAgICAgUGF0Y2hwb2ludFZhbHVlKiBwcmV2ZW50VGFpbER1cGxpY2F0aW9uID0gdGFpbC0+
YXBwZW5kTmV3PFBhdGNocG9pbnRWYWx1ZT4ocHJvYywgVm9pZCwgT3JpZ2luKCkpOwpAQCAtMTIw
MDQsNyArMTIwMTQsNyBAQCB2b2lkIHRlc3RTcGlsbFVzZUxhcmdlclRoYW5EZWYoKQogICAgIFZh
bHVlKiBwaGkgPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFBoaSwgSW50NjQsIE9yaWdp
bigpKTsKICAgICB0aGVuUmVzdWx0LT5zZXRQaGkocGhpKTsKICAgICBlbHNlUmVzdWx0LT5zZXRQ
aGkocGhpKTsKLSAgICB0YWlsLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBwaGkpOworICAgIHRhaWwtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCBwaGkpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsK
ICAgICBDSEVDSyhpbnZva2U8dWludDY0X3Q+KCpjb2RlLCAxLCAweGZmZmZmZmZmMDAwMDAwMDAp
ID09IDApOwpAQCAtMTIwODYsMTIgKzEyMDk2LDIzNyBAQCB2b2lkIHRlc3RMYXRlUmVnaXN0ZXIo
KQogICAgICAgICAgICAgaml0Lm5vcCgpOwogICAgICAgICAgICAgaml0Lm5vcCgpOwogICAgICAg
ICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBzZWNvbmRQYXRjaHBvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kUGF0Y2hwb2ludCk7CiAgICAgCiAgICAg
YXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBDSEVDSyhpbnZva2U8dWludDY0X3Q+KCpj
b2RlKSA9PSByZXN1bHQpOwogfQogCit2b2lkIHRocmVhZGVkSW50ZXJwcmV0ZXJQcmludChWZWN0
b3I8aW50cHRyX3Q+KiBzdHJlYW0sIGludHB0cl90IHZhbHVlKQoreworICAgIHN0cmVhbS0+YXBw
ZW5kKHZhbHVlKTsKK30KKwordm9pZCB0ZXN0VGhyZWFkZWRJbnRlcnByZXRlcigpCit7CisgICAg
Ly8gVGhpcyBjcmVhdGVzIGEgcG9vciBtYW4ncyB0aHJlYWRlZCBpbnRlcnByZXRlciB1c2luZyBQ
b2x5SnVtcCBhbmQgc2VlcyBpZiBpdCB3b3Jrcy4gTm90ZQorICAgIC8vIHRoYXQgUG9seUp1bXAg
aXMgbm90IGxpa2UgaW5kaXJlY3QgYnJhbmNoZXMgaW4gTExWTSwgc28geW91IGNhbid0IGFjdHVh
bGx5IHVzZSBpdCB0bworICAgIC8vIGltcGxlbWVudCBhIHByb3BlciB0aHJlYWRlZCBpbnRlcnBy
ZXRlci4gVGhpcyBjaGVhdHM6IHRoZSBkaXNwYXRjaCBpbnN0cnVjdGlvbiBpcyBhdCB0aGUgdG9w
CisgICAgLy8gb2YgdGhlIGxvb3AuIFRoaXMgYWxzbyB0ZXN0cyBWYXJpYWJsZVZhbHVlLgorICAg
IAorICAgIFByb2NlZHVyZSBwcm9jOworICAgIAorICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayogZGlzcGF0Y2ggPSBwcm9jLmFkZEJsb2NrKCk7
CisgICAgQmFzaWNCbG9jayogYWRkVG9EYXRhUG9pbnRlciA9IHByb2MuYWRkQmxvY2soKTsKKyAg
ICBCYXNpY0Jsb2NrKiBhZGRUb0NvZGVQb2ludGVyID0gcHJvYy5hZGRCbG9jaygpOworICAgIEJh
c2ljQmxvY2sqIGFkZFRvQ29kZVBvaW50ZXJUYWtlbiA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBC
YXNpY0Jsb2NrKiBhZGRUb0NvZGVQb2ludGVyTm90VGFrZW4gPSBwcm9jLmFkZEJsb2NrKCk7Cisg
ICAgQmFzaWNCbG9jayogYWRkVG9EYXRhID0gcHJvYy5hZGRCbG9jaygpOworICAgIEJhc2ljQmxv
Y2sqIHByaW50ID0gcHJvYy5hZGRCbG9jaygpOworICAgIEJhc2ljQmxvY2sqIHN0b3AgPSBwcm9j
LmFkZEJsb2NrKCk7CisgICAgCisgICAgVmFyaWFibGUqIGRhdGFQb2ludGVyID0gcHJvYy5hZGRW
YXJpYWJsZShwb2ludGVyVHlwZSgpKTsKKyAgICBWYXJpYWJsZSogY29kZVBvaW50ZXIgPSBwcm9j
LmFkZFZhcmlhYmxlKHBvaW50ZXJUeXBlKCkpOworICAgIAorICAgIHJvb3QtPmFwcGVuZE5ldzxW
YXJpYWJsZVZhbHVlPigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgZGF0YVBvaW50ZXIs
CisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3PFZhcmlhYmxl
VmFsdWU+KAorICAgICAgICBwcm9jLCBTZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlciwKKyAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjEpKTsKKyAgICBWYWx1ZSogY29udGV4dCA9IHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIy
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCks
IEZyZXF1ZW50ZWRCbG9jayhkaXNwYXRjaCkpOworICAgIAorICAgIFBvbHlKdW1wVmFsdWUqIHBv
bHlKdW1wID0gZGlzcGF0Y2gtPmFwcGVuZE5ldzxQb2x5SnVtcFZhbHVlPigKKyAgICAgICAgcHJv
YywgT3JpZ2luKCksCisgICAgICAgIGRpc3BhdGNoLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAor
ICAgICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCksCisgICAgICAg
ICAgICBkaXNwYXRjaC0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAgICAgICAgICAgICAg
IHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlcikpKTsKKyAgICBwb2x5SnVtcC0+
YXBwZW5kU3VjY2Vzc29yKEZyZXF1ZW50ZWRCbG9jayhhZGRUb0RhdGFQb2ludGVyKSk7CisgICAg
cG9seUp1bXAtPmFwcGVuZFN1Y2Nlc3NvcihGcmVxdWVudGVkQmxvY2soYWRkVG9Db2RlUG9pbnRl
cikpOworICAgIHBvbHlKdW1wLT5hcHBlbmRTdWNjZXNzb3IoRnJlcXVlbnRlZEJsb2NrKGFkZFRv
RGF0YSkpOworICAgIHBvbHlKdW1wLT5hcHBlbmRTdWNjZXNzb3IoRnJlcXVlbnRlZEJsb2NrKHBy
aW50KSk7CisgICAgcG9seUp1bXAtPmFwcGVuZFN1Y2Nlc3NvcihGcmVxdWVudGVkQmxvY2soc3Rv
cCkpOworICAgIAorICAgIC8vIE91ciAib3Bjb2RlcyIuIFRoZXkgd2lsbCBoYXZlIG1lYW5pbmcg
b25jZSB3ZSBjb21waWxlLgorICAgIGludHB0cl90IEFkZERQID0gMDsKKyAgICBpbnRwdHJfdCBB
ZGRDUCA9IDA7CisgICAgaW50cHRyX3QgQWRkID0gMDsKKyAgICBpbnRwdHJfdCBQcmludCA9IDA7
CisgICAgaW50cHRyX3QgU3RvcCA9IDA7CisgICAgcG9seUp1bXAtPnNldENhbGxiYWNrKAorICAg
ICAgICBbJl0gKGNvbnN0IFZlY3RvcjxNYWNyb0Fzc2VtYmxlckNvZGVQdHI+JiBwb2ludGVycykg
eworICAgICAgICAgICAgYXV0byBnZXQgPSBbJl0gKHNpemVfdCBpbmRleCkgLT4gaW50cHRyX3Qg
eworICAgICAgICAgICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8aW50cHRyX3Q+KHBvaW50ZXJz
W2luZGV4XS5leGVjdXRhYmxlQWRkcmVzcygpKTsKKyAgICAgICAgICAgIH07CisgICAgICAgICAg
ICAKKyAgICAgICAgICAgIEFkZERQID0gZ2V0KDApOworICAgICAgICAgICAgQWRkQ1AgPSBnZXQo
MSk7CisgICAgICAgICAgICBBZGQgPSBnZXQoMik7CisgICAgICAgICAgICBQcmludCA9IGdldCgz
KTsKKyAgICAgICAgICAgIFN0b3AgPSBnZXQoNCk7CisgICAgICAgIH0pOworICAgIAorICAgIC8v
IEFkZERQIDxvcGVyYW5kPjogYWRkcyA8b3BlcmFuZD4gdG8gRFAuCisgICAgVmFsdWUqIGNvZGVQ
b2ludGVyVmFsdWUgPQorICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFi
bGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyKTsKKyAgICBhZGRU
b0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNl
dCwgT3JpZ2luKCksIGRhdGFQb2ludGVyLAorICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBl
bmROZXc8VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgQjM6OkFkZCwgT3JpZ2luKCksCisgICAg
ICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywg
QjM6OkdldCwgT3JpZ2luKCksIGRhdGFQb2ludGVyKSwKKyAgICAgICAgICAgIGFkZFRvRGF0YVBv
aW50ZXItPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICAgICAgcHJvYywgTXVsLCBPcmln
aW4oKSwKKyAgICAgICAgICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8TWVtb3J5
VmFsdWU+KAorICAgICAgICAgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBP
cmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwgc2l6ZW9mKGludHB0cl90KSksCisgICAgICAgICAg
ICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kSW50Q29uc3RhbnQoCisgICAgICAgICAgICAg
ICAgICAgIHByb2MsIE9yaWdpbigpLCBwb2ludGVyVHlwZSgpLCBzaXplb2YoaW50cHRyX3QpKSkp
KTsKKyAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAg
ICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyLAorICAgICAgICBhZGRUb0RhdGFQ
b2ludGVyLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgQjM6OkFkZCwgT3Jp
Z2luKCksIGNvZGVQb2ludGVyVmFsdWUsCisgICAgICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5h
cHBlbmRJbnRDb25zdGFudCgKKyAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgcG9pbnRl
clR5cGUoKSwgc2l6ZW9mKGludHB0cl90KSAqIDIpKSk7CisgICAgYWRkVG9EYXRhUG9pbnRlci0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxv
Y2soZGlzcGF0Y2gpKTsKKyAgICAKKyAgICAvLyBBZGRDUCA8b3BlcmFuZD46IGFkZHMgPG9wZXJh
bmQ+IHRvIENQIGlmIHRoZSBjdXJyZW50IHZhbHVlIGF0IERQIGlzIG5vbi16ZXJvLCBvdGhlcndp
c2UKKyAgICAvLyBmYWxscyB0aHJvdWdoIG5vcm1hbGx5LgorICAgIGNvZGVQb2ludGVyVmFsdWUg
PQorICAgICAgICBhZGRUb0NvZGVQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJv
YywgQjM6OkdldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyKTsKKyAgICBWYWx1ZSogZGF0YVBvaW50
ZXJWYWx1ZSA9CisgICAgICAgIGFkZFRvQ29kZVBvaW50ZXItPmFwcGVuZE5ldzxWYXJpYWJsZVZh
bHVlPihwcm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwgZGF0YVBvaW50ZXIpOworICAgIGFkZFRvQ29k
ZVBvaW50ZXItPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKKyAgICAgICAgcHJvYywgQnJhbmNoLCBP
cmlnaW4oKSwKKyAgICAgICAgYWRkVG9Db2RlUG9pbnRlci0+YXBwZW5kTmV3PE1lbW9yeVZhbHVl
PigKKyAgICAgICAgICAgIHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLCBkYXRh
UG9pbnRlclZhbHVlKSwKKyAgICAgICAgRnJlcXVlbnRlZEJsb2NrKGFkZFRvQ29kZVBvaW50ZXJU
YWtlbiksIEZyZXF1ZW50ZWRCbG9jayhhZGRUb0NvZGVQb2ludGVyTm90VGFrZW4pKTsKKyAgICBh
ZGRUb0NvZGVQb2ludGVyVGFrZW4tPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPigKKyAgICAgICAg
cHJvYywgU2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIsCisgICAgICAgIGFkZFRvQ29kZVBvaW50
ZXJUYWtlbi0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEIzOjpBZGQsIE9y
aWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLAorICAgICAgICAgICAgYWRkVG9Db2RlUG9pbnRlclRh
a2VuLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgICAgIHByb2MsIE11bCwgT3JpZ2lu
KCksCisgICAgICAgICAgICAgICAgYWRkVG9Db2RlUG9pbnRlclRha2VuLT5hcHBlbmROZXc8TWVt
b3J5VmFsdWU+KAorICAgICAgICAgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgp
LCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwgc2l6ZW9mKGludHB0cl90KSksCisgICAgICAg
ICAgICAgICAgYWRkVG9Db2RlUG9pbnRlclRha2VuLT5hcHBlbmRJbnRDb25zdGFudCgKKyAgICAg
ICAgICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBlKCksIHNpemVvZihpbnRw
dHJfdCkpKSkpOworICAgIGFkZFRvQ29kZVBvaW50ZXJUYWtlbi0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZGlzcGF0Y2gpKTsKKyAg
ICBhZGRUb0NvZGVQb2ludGVyTm90VGFrZW4tPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPigKKyAg
ICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIsCisgICAgICAgIGFkZFRvQ29k
ZVBvaW50ZXJOb3RUYWtlbi0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEIz
OjpBZGQsIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLAorICAgICAgICAgICAgYWRkVG9Db2Rl
UG9pbnRlck5vdFRha2VuLT5hcHBlbmRJbnRDb25zdGFudCgKKyAgICAgICAgICAgICAgICBwcm9j
LCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6ZW9mKGludHB0cl90KSAqIDIpKSk7CisgICAg
YWRkVG9Db2RlUG9pbnRlck5vdFRha2VuLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCisgICAgICAg
IHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZGlzcGF0Y2gpKTsKKworICAg
IC8vIEFkZCA8b3BlcmFuZD46IGFkZHMgPG9wZXJhbmQ+IHRvIHRoZSBzbG90IHBvaW50ZWQgdG8g
YnkgRFAuCisgICAgY29kZVBvaW50ZXJWYWx1ZSA9IGFkZFRvRGF0YS0+YXBwZW5kTmV3PFZhcmlh
YmxlVmFsdWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlcik7CisgICAgZGF0
YVBvaW50ZXJWYWx1ZSA9IGFkZFRvRGF0YS0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHByb2Ms
IEIzOjpHZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRlcik7CisgICAgYWRkVG9EYXRhLT5hcHBlbmRO
ZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICBwcm9jLCBTdG9yZSwgT3JpZ2luKCksCisgICAgICAg
IGFkZFRvRGF0YS0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEIzOjpBZGQs
IE9yaWdpbigpLAorICAgICAgICAgICAgYWRkVG9EYXRhLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+
KAorICAgICAgICAgICAgICAgIHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLCBk
YXRhUG9pbnRlclZhbHVlKSwKKyAgICAgICAgICAgIGFkZFRvRGF0YS0+YXBwZW5kTmV3PE1lbW9y
eVZhbHVlPigKKyAgICAgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmln
aW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwgc2l6ZW9mKGludHB0cl90KSkpLAorICAgICAgICBkYXRh
UG9pbnRlclZhbHVlKTsKKyAgICBhZGRUb0RhdGEtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPigK
KyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIsCisgICAgICAgIGFkZFRv
RGF0YS0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEIzOjpBZGQsIE9yaWdp
bigpLCBjb2RlUG9pbnRlclZhbHVlLAorICAgICAgICAgICAgYWRkVG9EYXRhLT5hcHBlbmRJbnRD
b25zdGFudChwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6ZW9mKGludHB0cl90KSAq
IDIpKSk7CisgICAgYWRkVG9EYXRhLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwg
T3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhkaXNwYXRjaCkpOworICAgIAorICAgIC8vIFByaW50
OiAicHJpbnRzIiB0aGUgdmFsdWUgcG9pbnRlZCB0byBieSBEUC4gV2hhdCB0aGlzIGFjdHVhbGx5
IG1lYW5zIGlzIHRoYXQgdGhlIHZhbHVlIGlzCisgICAgLy8gYXBwZW5kZWQgdG8gdGhlIHN0cmVh
bSB2ZWN0b3IgYnkgdGhlIHRocmVhZGVkSW50ZXJwcmV0ZXJQcmludCBmdW5jdGlvbi4KKyAgICBj
b2RlUG9pbnRlclZhbHVlID0gcHJpbnQtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPihwcm9jLCBC
Mzo6R2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIpOworICAgIGRhdGFQb2ludGVyVmFsdWUgPSBw
cmludC0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBk
YXRhUG9pbnRlcik7CisgICAgcHJpbnQtPmFwcGVuZE5ldzxDQ2FsbFZhbHVlPigKKyAgICAgICAg
cHJvYywgVm9pZCwgT3JpZ2luKCksCisgICAgICAgIHByaW50LT5hcHBlbmROZXc8Q29uc3RQdHJW
YWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgYml0d2lzZV9jYXN0PHZvaWQqPih0
aHJlYWRlZEludGVycHJldGVyUHJpbnQpKSwKKyAgICAgICAgY29udGV4dCwKKyAgICAgICAgcHJp
bnQtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3Jp
Z2luKCksIGRhdGFQb2ludGVyVmFsdWUpKTsKKyAgICBwcmludC0+YXBwZW5kTmV3PFZhcmlhYmxl
VmFsdWU+KAorICAgICAgICBwcm9jLCBTZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlciwKKyAgICAg
ICAgcHJpbnQtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBCMzo6QWRkLCBP
cmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwKKyAgICAgICAgICAgIHByaW50LT5hcHBlbmRJbnRD
b25zdGFudChwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6ZW9mKGludHB0cl90KSkp
KTsKKyAgICBwcmludC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigp
LCBGcmVxdWVudGVkQmxvY2soZGlzcGF0Y2gpKTsKKyAgICAKKyAgICAvLyBTdG9wOiByZXR1cm5z
LgorICAgIHN0b3AtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKKyAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKKyAgICAgICAgc3RvcC0+YXBwZW5kSW50Q29uc3RhbnQocHJvYywgT3JpZ2lu
KCksIHBvaW50ZXJUeXBlKCksIDApKTsKKyAgICAKKyAgICBhdXRvIGludGVycHJldGVyID0gY29t
cGlsZShwcm9jKTsKKyAgICAKKyAgICBDSEVDSyhBZGREUCk7CisgICAgQ0hFQ0soQWRkQ1ApOwor
ICAgIENIRUNLKEFkZCk7CisgICAgQ0hFQ0soUHJpbnQpOworICAgIENIRUNLKFN0b3ApOworICAg
IAorICAgIFZlY3RvcjxpbnRwdHJfdD4gZGF0YTsKKyAgICBWZWN0b3I8aW50cHRyX3Q+IGNvZGU7
CisgICAgVmVjdG9yPGludHB0cl90PiBzdHJlYW07CisgICAgCisgICAgZGF0YS5hcHBlbmQoMSk7
CisgICAgZGF0YS5hcHBlbmQoMCk7CisgICAgCisgICAgaWYgKHNob3VsZEJlVmVyYm9zZSgpKQor
ICAgICAgICBkYXRhTG9nKCJkYXRhID0gIiwgbGlzdER1bXAoZGF0YSksICJcbiIpOworICAgIAor
ICAgIC8vIFdlJ2xsIHdyaXRlIGEgcHJvZ3JhbSB0aGF0IHByaW50cyB0aGUgbnVtYmVycyAxLi4x
MDAuCisgICAgLy8gV2UgZXhwZWN0IERQIHRvIHBvaW50IGF0ICMwLgorICAgIGNvZGUuYXBwZW5k
KEFkZENQKTsKKyAgICBjb2RlLmFwcGVuZCg2KTsgLy8gZ28gdG8gbG9vcCBib2R5CisgICAgCisg
ICAgLy8gTG9vcCByZS1lbnRyeToKKyAgICAvLyBXZSBleHBlY3QgRFAgdG8gcG9pbnQgYXQgIzEg
YW5kIGZvciAjMSB0byBiZSBvZmZzZXQgYnkgLTEwMC4KKyAgICBjb2RlLmFwcGVuZChBZGQpOwor
ICAgIGNvZGUuYXBwZW5kKDEwMCk7CisgICAgCisgICAgY29kZS5hcHBlbmQoQWRkRFApOworICAg
IGNvZGUuYXBwZW5kKC0xKTsKKyAgICAKKyAgICAvLyBMb29wIGhlYWRlcjoKKyAgICAvLyBXZSBl
eHBlY3QgRFAgdG8gcG9pbnQgYXQgIzAuCisgICAgY29kZS5hcHBlbmQoQWRkRFApOworICAgIGNv
ZGUuYXBwZW5kKDEpOworICAgIAorICAgIGNvZGUuYXBwZW5kKEFkZCk7CisgICAgY29kZS5hcHBl
bmQoMSk7CisgICAgCisgICAgY29kZS5hcHBlbmQoUHJpbnQpOworICAgIAorICAgIGNvZGUuYXBw
ZW5kKEFkZCk7CisgICAgY29kZS5hcHBlbmQoLTEwMCk7CisgICAgCisgICAgLy8gV2Ugd2FudCB0
byBzdG9wIGlmIGl0J3MgemVybyBhbmQgY29udGludWUgaWYgaXQncyBub24temVyby4gQWRkQ1Ag
dGFrZXMgdGhlIGJyYW5jaCBpZiBpdCdzCisgICAgLy8gbm9uLXplcm8uCisgICAgY29kZS5hcHBl
bmQoQWRkQ1ApOworICAgIGNvZGUuYXBwZW5kKC0xMSk7IC8vIGdvIHRvIGxvb3AgcmUtZW50cnku
CisgICAgCisgICAgY29kZS5hcHBlbmQoU3RvcCk7CisgICAgCisgICAgaWYgKHNob3VsZEJlVmVy
Ym9zZSgpKQorICAgICAgICBkYXRhTG9nKCJjb2RlID0gIiwgbGlzdER1bXAoY29kZSksICJcbiIp
OworICAgIAorICAgIENIRUNLKCFpbnZva2U8aW50cHRyX3Q+KCppbnRlcnByZXRlciwgZGF0YS5k
YXRhKCksIGNvZGUuZGF0YSgpLCAmc3RyZWFtKSk7CisgICAgCisgICAgQ0hFQ0soc3RyZWFtLnNp
emUoKSA9PSAxMDApOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCAxMDA7ICsraSkKKyAg
ICAgICAgQ0hFQ0soc3RyZWFtW2ldID09IGkgKyAxKTsKKyAgICAKKyAgICBpZiAoc2hvdWxkQmVW
ZXJib3NlKCkpCisgICAgICAgIGRhdGFMb2coInN0cmVhbSA9ICIsIGxpc3REdW1wKHN0cmVhbSks
ICJcbiIpOworfQorCiB2b2lkIHRlc3RSZWR1Y2VTdHJlbmd0aENoZWNrQm90dG9tVXNlSW5Bbm90
aGVyQmxvY2soKQogewogICAgIFByb2NlZHVyZSBwcm9jOwpAQCAtMTIxMTAsNyArMTIzNDUsNyBA
QCB2b2lkIHRlc3RSZWR1Y2VTdHJlbmd0aENoZWNrQm90dG9tVXNlSW5BCiAgICAgICAgICAgICBq
aXQucmV0KCk7CiAgICAgICAgIH0pOwogICAgIFZhbHVlKiBhcmcgPSBvbmUtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsK
LSAgICBvbmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBG
cmVxdWVudGVkQmxvY2sodHdvKSk7CisgICAgb25lLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0d28pKTsKICAgICAKICAgICBjaGVj
ayA9IHR3by0+YXBwZW5kTmV3PENoZWNrVmFsdWU+KAogICAgICAgICBwcm9jLCBDaGVja0FkZCwg
T3JpZ2luKCksIGFyZywKQEAgLTEyMTE5LDcgKzEyMzU0LDcgQEAgdm9pZCB0ZXN0UmVkdWNlU3Ry
ZW5ndGhDaGVja0JvdHRvbVVzZUluQQogICAgICAgICBbJl0gKENDYWxsSGVscGVycyYsIGNvbnN0
IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsKICAgICAgICAgICAgIENIRUNLKCEiU2hvdWxk
IG5vdCBleGVjdXRlIik7CiAgICAgICAgIH0pOwotICAgIHR3by0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2spOworICAgIHR3by0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrKTsKICAgICAKICAgICBw
cm9jLnJlc2V0UmVhY2hhYmlsaXR5KCk7CiAgICAgcmVkdWNlU3RyZW5ndGgocHJvYyk7CkBAIC0x
MjEzNCwxMSArMTIzNjksMTEgQEAgdm9pZCB0ZXN0UmVzZXRSZWFjaGFiaWxpdHlEYW5nbGluZ1Jl
ZmVyZQogICAgIAogICAgIFVwc2lsb25WYWx1ZSogdXBzaWxvbiA9IG9uZS0+YXBwZW5kTmV3PFVw
c2lsb25WYWx1ZT4oCiAgICAgICAgIHByb2MsIE9yaWdpbigpLCBvbmUtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwotICAgIG9uZS0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgT29wcywgT3JpZ2luKCkpOworICAgIG9uZS0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIE9vcHMsIE9yaWdpbigpKTsKICAgICAKICAgICBWYWx1ZSogcGhpID0gdHdv
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFBoaSwgSW50MzIsIE9yaWdpbigpKTsKICAgICB1cHNp
bG9uLT5zZXRQaGkocGhpKTsKLSAgICB0d28tPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IE9vcHMsIE9yaWdpbigpKTsKKyAgICB0d28tPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBP
b3BzLCBPcmlnaW4oKSk7CiAgICAgCiAgICAgcHJvYy5yZXNldFJlYWNoYWJpbGl0eSgpOwogICAg
IHZhbGlkYXRlKHByb2MpOwpAQCAtMTM1NDcsOCArMTM3ODIsMTMgQEAgdm9pZCBydW4oY29uc3Qg
Y2hhciogZmlsdGVyKQogICAgIFJVTih0ZXN0U3BpbGxEZWZTbWFsbGVyVGhhblVzZSgpKTsKICAg
ICBSVU4odGVzdFNwaWxsVXNlTGFyZ2VyVGhhbkRlZigpKTsKICAgICBSVU4odGVzdExhdGVSZWdp
c3RlcigpKTsKKzw8PDw8PDwgLm1pbmUKKyAgICAKKyAgICBSVU4odGVzdFRocmVhZGVkSW50ZXJw
cmV0ZXIoKSk7Cis9PT09PT09CiAgICAgUlVOKHRlc3RSZWR1Y2VTdHJlbmd0aENoZWNrQm90dG9t
VXNlSW5Bbm90aGVyQmxvY2soKSk7CiAgICAgUlVOKHRlc3RSZXNldFJlYWNoYWJpbGl0eURhbmds
aW5nUmVmZXJlbmNlKCkpOworPj4+Pj4+PiAucjIwMjgwOQogCiAgICAgaWYgKHRhc2tzLmlzRW1w
dHkoKSkKICAgICAgICAgdXNhZ2UoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvQWlyQ29kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fp
ci9BaXJDb2RlLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJDb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM1LDYgKzEzNSwxMSBAQCB2
b2lkIENvZGU6OmFkZEZhc3RUbXAoVG1wIHRtcCkKICAgICBtX2Zhc3RUbXBzLmFkZCh0bXApOwog
fQogCit2b2lkKiBDb2RlOjphZGREYXRhU2VjdGlvbihzaXplX3Qgc2l6ZSkKK3sKKyAgICByZXR1
cm4gbV9wcm9jLmFkZERhdGFTZWN0aW9uKHNpemUpOworfQorCiB1bnNpZ25lZCBDb2RlOjpqc0hh
c2goKSBjb25zdAogewogICAgIHVuc2lnbmVkIHJlc3VsdCA9IDA7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvYWlyL0FpckNvZGUuaAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMz
LDcgQEAKICNpbmNsdWRlICJBaXJTcGVjaWFsLmgiCiAjaW5jbHVkZSAiQWlyU3RhY2tTbG90Lmgi
CiAjaW5jbHVkZSAiQWlyVG1wLmgiCisjaW5jbHVkZSAiQjNJbmRleE1hcC5oIgogI2luY2x1ZGUg
IkIzU3BhcnNlQ29sbGVjdGlvbi5oIgogI2luY2x1ZGUgIlJlZ2lzdGVyQXRPZmZzZXRMaXN0Lmgi
CiAjaW5jbHVkZSAiU3RhY2tBbGlnbm1lbnQuaCIKQEAgLTIwMyw2ICsyMDQsOCBAQCBwdWJsaWM6
CiAgICAgdm9pZCBhZGRGYXN0VG1wKFRtcCk7CiAgICAgYm9vbCBpc0Zhc3RUbXAoVG1wIHRtcCkg
Y29uc3QgeyByZXR1cm4gbV9mYXN0VG1wcy5jb250YWlucyh0bXApOyB9CiAgICAgCisgICAgdm9p
ZCogYWRkRGF0YVNlY3Rpb24oc2l6ZV90KTsKKyAgICAKICAgICAvLyBUaGUgbmFtZSBoYXMgdG8g
YmUgYSBzdHJpbmcgbGl0ZXJhbCwgc2luY2Ugd2UgZG9uJ3QgZG8gYW55IG1lbW9yeSBtYW5hZ2Vt
ZW50IGZvciB0aGUgc3RyaW5nLgogICAgIHZvaWQgc2V0TGFzdFBoYXNlTmFtZShjb25zdCBjaGFy
KiBuYW1lKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ3Vz
dG9tLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDdXN0
b20uaAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9B
aXJDdXN0b20uaAkod29ya2luZyBjb3B5KQpAQCAtODQsMTAgKzg0LDE1IEBAIHN0cnVjdCBQYXRj
aEN1c3RvbSB7CiAgICAgewogICAgICAgICByZXR1cm4gaW5zdC5hcmdzWzBdLnNwZWNpYWwoKS0+
c2hvdWxkVHJ5QWxpYXNpbmdEZWYoaW5zdCk7CiAgICAgfQorICAgIAorICAgIHN0YXRpYyBib29s
IGlzVGVybWluYWwoSW5zdCYgaW5zdCkKKyAgICB7CisgICAgICAgIHJldHVybiBpbnN0LmFyZ3Nb
MF0uc3BlY2lhbCgpLT5pc1Rlcm1pbmFsKGluc3QpOworICAgIH0KIAogICAgIHN0YXRpYyBib29s
IGhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKEluc3QmIGluc3QpCiAgICAgewotICAgICAgICBy
ZXR1cm4gaW5zdC5hcmdzWzBdLnNwZWNpYWwoKS0+aGFzTm9uQXJnTm9uQ29udHJvbEVmZmVjdHMo
KTsKKyAgICAgICAgcmV0dXJuIGluc3QuYXJnc1swXS5zcGVjaWFsKCktPmhhc05vbkFyZ05vbkNv
bnRyb2xFZmZlY3RzKGluc3QpOwogICAgIH0KIAogICAgIHN0YXRpYyBDQ2FsbEhlbHBlcnM6Okp1
bXAgZ2VuZXJhdGUoCkBAIC0xMzgsNiArMTQzLDExIEBAIHN0cnVjdCBDQ2FsbEN1c3RvbSB7CiAg
ICAgewogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CisgICAgCisgICAgc3RhdGljIGJvb2wg
aXNUZXJtaW5hbChpbnN0JikKKyAgICB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAK
ICAgICBzdGF0aWMgYm9vbCBoYXNOb25BcmdOb25Db250cm9sRWZmZWN0cyhJbnN0JikKICAgICB7
CkBAIC0xOTcsNiArMjA3LDExIEBAIHN0cnVjdCBTaHVmZmxlQ3VzdG9tIHsKICAgICAgICAgfQog
ICAgIH0KIAorICAgIHN0YXRpYyBib29sIGlzVGVybWluYWwoaW5zdCYpCisgICAgeworICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorCiAgICAgc3RhdGljIGJvb2wgaGFzTm9uQXJnTm9uQ29u
dHJvbEVmZmVjdHMoSW5zdCYpCiAgICAgewogICAgICAgICByZXR1cm4gZmFsc2U7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRlLmNwcAkocmV2aXNpb24g
MjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0ZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQ4LDEwICs0OCwxMyBAQAogI2luY2x1ZGUgIkFpclZhbGlkYXRl
LmgiCiAjaW5jbHVkZSAiQjNDb21tb24uaCIKICNpbmNsdWRlICJCM0luZGV4TWFwLmgiCisjaW5j
bHVkZSAiQjNQb2x5SnVtcFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNQcm9jZWR1cmUuaCIKICNpbmNs
dWRlICJCM1RpbWluZ1Njb3BlLmgiCisjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKICNpbmNs
dWRlICJDQ2FsbEhlbHBlcnMuaCIKICNpbmNsdWRlICJEaXNhbGxvd01hY3JvU2NyYXRjaFJlZ2lz
dGVyVXNhZ2UuaCIKKyNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UgQWlyIHsKIApAQCAtMTczLDEyICsxNzYsMTYgQEAgdm9p
ZCBnZW5lcmF0ZShDb2RlJiBjb2RlLCBDQ2FsbEhlbHBlcnMmIAogCiAgICAgR2VuZXJhdGlvbkNv
bnRleHQgY29udGV4dDsKICAgICBjb250ZXh0LmNvZGUgPSAmY29kZTsKLSAgICBJbmRleE1hcDxC
YXNpY0Jsb2NrLCBDQ2FsbEhlbHBlcnM6OkxhYmVsPiBibG9ja0xhYmVscyhjb2RlLnNpemUoKSk7
CisgICAgY29udGV4dC5ibG9ja0xhYmVscy5yZXNpemUoY29kZS5zaXplKCkpOworICAgIGZvciAo
QmFzaWNCbG9jayogYmxvY2sgOiBjb2RlKSB7CisgICAgICAgIGlmIChibG9jaykKKyAgICAgICAg
ICAgIGNvbnRleHQuYmxvY2tMYWJlbHNbYmxvY2tdID0gQm94PENDYWxsSGVscGVyczo6TGFiZWw+
OjpjcmVhdGUoKTsKKyAgICB9CiAgICAgSW5kZXhNYXA8QmFzaWNCbG9jaywgQ0NhbGxIZWxwZXJz
OjpKdW1wTGlzdD4gYmxvY2tKdW1wcyhjb2RlLnNpemUoKSk7CiAKICAgICBhdXRvIGxpbmsgPSBb
Jl0gKENDYWxsSGVscGVyczo6SnVtcCBqdW1wLCBCYXNpY0Jsb2NrKiB0YXJnZXQpIHsKLSAgICAg
ICAgaWYgKGJsb2NrTGFiZWxzW3RhcmdldF0uaXNTZXQoKSkgewotICAgICAgICAgICAganVtcC5s
aW5rVG8oYmxvY2tMYWJlbHNbdGFyZ2V0XSwgJmppdCk7CisgICAgICAgIGlmIChjb250ZXh0LmJs
b2NrTGFiZWxzW3RhcmdldF0tPmlzU2V0KCkpIHsKKyAgICAgICAgICAgIGp1bXAubGlua1RvKCpj
b250ZXh0LmJsb2NrTGFiZWxzW3RhcmdldF0sICZqaXQpOwogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CiAKQEAgLTE5NSwxNiArMjAyLDIyIEBAIHZvaWQgZ2VuZXJhdGUoQ29kZSYgY29k
ZSwgQ0NhbGxIZWxwZXJzJiAKICAgICB9OwogCiAgICAgZm9yIChCYXNpY0Jsb2NrKiBibG9jayA6
IGNvZGUpIHsKKyAgICAgICAgY29udGV4dC5ibG9jayA9IGJsb2NrOworICAgICAgICBjb250ZXh0
LmluZGV4SW5CbG9jayA9IFVJTlRfTUFYOwogICAgICAgICBibG9ja0p1bXBzW2Jsb2NrXS5saW5r
KCZqaXQpOwotICAgICAgICBibG9ja0xhYmVsc1tibG9ja10gPSBqaXQubGFiZWwoKTsKKyAgICAg
ICAgQ0NhbGxIZWxwZXJzOjpMYWJlbCBsYWJlbCA9IGppdC5sYWJlbCgpOworICAgICAgICAqY29u
dGV4dC5ibG9ja0xhYmVsc1tibG9ja10gPSBsYWJlbDsKICAgICAgICAgQVNTRVJUKGJsb2NrLT5z
aXplKCkgPj0gMSk7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBibG9jay0+c2l6
ZSgpIC0gMTsgKytpKSB7CisgICAgICAgICAgICBjb250ZXh0LmluZGV4SW5CbG9jayA9IGk7CiAg
ICAgICAgICAgICBJbnN0JiBpbnN0ID0gYmxvY2stPmF0KGkpOwogICAgICAgICAgICAgYWRkSXRl
bShpbnN0KTsKICAgICAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcCBqdW1wID0gaW5zdC5nZW5l
cmF0ZShqaXQsIGNvbnRleHQpOwogICAgICAgICAgICAgQVNTRVJUX1VOVVNFRChqdW1wLCAhanVt
cC5pc1NldCgpKTsKICAgICAgICAgfQogCisgICAgICAgIGNvbnRleHQuaW5kZXhJbkJsb2NrID0g
YmxvY2stPnNpemUoKSAtIDE7CisgICAgICAgIAogICAgICAgICBpZiAoYmxvY2stPmxhc3QoKS5v
cGNvZGUgPT0gSnVtcAogICAgICAgICAgICAgJiYgYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDApID09
IGNvZGUuZmluZE5leHRCbG9jayhibG9jaykpCiAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTIy
OCwyNiArMjQxLDMwIEBAIHZvaWQgZ2VuZXJhdGUoQ29kZSYgY29kZSwgQ0NhbGxIZWxwZXJzJiAK
ICAgICAgICAgICAgIGFkZEl0ZW0oYmxvY2stPmxhc3QoKSk7CiAgICAgICAgICAgICBjb250aW51
ZTsKICAgICAgICAgfQotCisgICAgICAgIAogICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAganVt
cCA9IGJsb2NrLT5sYXN0KCkuZ2VuZXJhdGUoaml0LCBjb250ZXh0KTsKLSAgICAgICAgc3dpdGNo
IChibG9jay0+bnVtU3VjY2Vzc29ycygpKSB7Ci0gICAgICAgIGNhc2UgMDoKLSAgICAgICAgICAg
IEFTU0VSVCghanVtcC5pc1NldCgpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNl
IDE6Ci0gICAgICAgICAgICBsaW5rKGp1bXAsIGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKSk7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAyOgotICAgICAgICAgICAgbGluayhqdW1w
LCBibG9jay0+c3VjY2Vzc29yQmxvY2soMCkpOwotICAgICAgICAgICAgaWYgKGJsb2NrLT5zdWNj
ZXNzb3JCbG9jaygxKSAhPSBjb2RlLmZpbmROZXh0QmxvY2soYmxvY2spKQotICAgICAgICAgICAg
ICAgIGxpbmsoaml0Lmp1bXAoKSwgYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDEpKTsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICAvLyBUaGUganVtcCB3
b24ndCBiZSBzZXQgZm9yIHBhdGNocG9pbnRzLiBJdCB3b24ndCBiZSBzZXQgZm9yIE9vcHMgYmVj
YXVzZSB0aGVuIGl0IHdvbid0IGhhdmUKKyAgICAgICAgLy8gYW55IHN1Y2Nlc3NvcnMuCisgICAg
ICAgIGlmIChqdW1wLmlzU2V0KCkpIHsKKyAgICAgICAgICAgIHN3aXRjaCAoYmxvY2stPm51bVN1
Y2Nlc3NvcnMoKSkgeworICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgIGxpbmso
anVtcCwgYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDApKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgICAgICBsaW5rKGp1bXAsIGJsb2NrLT5z
dWNjZXNzb3JCbG9jaygwKSk7CisgICAgICAgICAgICAgICAgaWYgKGJsb2NrLT5zdWNjZXNzb3JC
bG9jaygxKSAhPSBjb2RlLmZpbmROZXh0QmxvY2soYmxvY2spKQorICAgICAgICAgICAgICAgICAg
ICBsaW5rKGppdC5qdW1wKCksIGJsb2NrLT5zdWNjZXNzb3JCbG9jaygxKSk7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICB9CiAgICAgICAgIH0KICAgICAgICAgYWRkSXRlbShibG9jay0+bGFzdCgpKTsKICAgICB9
CisgICAgCisgICAgY29udGV4dC5ibG9jayA9IG51bGxwdHI7CisgICAgY29udGV4dC5pbmRleElu
QmxvY2sgPSBVSU5UX01BWDsKIAogICAgIHBjVG9PcmlnaW5NYXAuYXBwZW5kSXRlbShqaXQubGFi
ZWwoKSwgT3JpZ2luKCkpOwogICAgIC8vIEZJWE1FOiBNYWtlIGxhdGUgcGF0aHMgaGF2ZSBPcmln
aW5zOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzNjg5CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRpb25Db250ZXh0LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0aW9uQ29u
dGV4dC5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0FpckdlbmVyYXRpb25Db250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsMTQgKzI4LDE0IEBACiAK
ICNpZiBFTkFCTEUoQjNfSklUKQogCisjaW5jbHVkZSAiQWlyQmFzaWNCbG9jay5oIgorI2luY2x1
ZGUgIkIzSW5kZXhNYXAuaCIKKyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKKyNpbmNsdWRlIDx3
dGYvQm94Lmg+CiAjaW5jbHVkZSA8d3RmL1NoYXJlZFRhc2suaD4KICNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CiAKLW5hbWVzcGFjZSBKU0MgewotCi1jbGFzcyBDQ2FsbEhlbHBlcnM7Ci0KLW5hbWVz
cGFjZSBCMyB7IG5hbWVzcGFjZSBBaXIgeworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7
IG5hbWVzcGFjZSBBaXIgewogCiBjbGFzcyBDb2RlOwogCkBAIC00NCw3ICs0NCwxMCBAQCBzdHJ1
Y3QgR2VuZXJhdGlvbkNvbnRleHQgewogICAgIHR5cGVkZWYgU2hhcmVkVGFzazxMYXRlUGF0aEZ1
bmN0aW9uPiBMYXRlUGF0aDsKIAogICAgIFZlY3RvcjxSZWZQdHI8TGF0ZVBhdGg+PiBsYXRlUGF0
aHM7Ci0gICAgQ29kZSogY29kZTsKKyAgICBJbmRleE1hcDxCYXNpY0Jsb2NrLCBCb3g8Q0NhbGxI
ZWxwZXJzOjpMYWJlbD4+IGJsb2NrTGFiZWxzOworICAgIEJhc2ljQmxvY2sqIGN1cnJlbnRCbG9j
ayB7IG51bGxwdHIgfTsKKyAgICB1bnNpZ25lZCBpbmRleEluQmxvY2sgeyBVSU5UX01BWCB9Owor
ICAgIENvZGUqIGNvZGUgeyBudWxscHRyIH07CiB9OwogCiB9IH0gfSAvLyBuYW1lc3BhY2UgSlND
OjpCMzo6QWlyCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckluc3QuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckluc3QuaAkocmV2
aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTE2Myw2ICsxNjMsOSBAQCBwdWJsaWM6CiAgICAgLy8gVGhpcyBm
dW5jdGlvbiBpcyBhdXRvLWdlbmVyYXRlZCBieSBvcGNvZGVfZ2VuZXJhdG9yLnJiLgogICAgIGJv
b2wgYWRtaXRzU3RhY2sodW5zaWduZWQgYXJnSW5kZXgpOwogICAgIGJvb2wgYWRtaXRzU3RhY2so
QXJnJik7CisgICAgCisgICAgLy8gRGVmaW5lZCBieSBvcGNvZGVfZ2VuZXJhdG9yLnJiLgorICAg
IGJvb2wgaXNUZXJtaW5hbCgpOwogCiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoaXMgaW5zdHJ1
Y3Rpb24gY2FuIGhhdmUgYW55IGVmZmVjdHMgb3RoZXIgdGhhbiBjb250cm9sIGZsb3cgb3IgYXJn
dW1lbnRzLgogICAgIGJvb2wgaGFzTm9uQXJnTm9uQ29udHJvbEVmZmVjdHMoKTsKQEAgLTE3NCw2
ICsxNzcsOSBAQCBwdWJsaWM6CiAKICAgICAvLyBUZWxscyB5b3UgaWYgdGhpcyBvcGVyYXRpb24g
aGFzIGFyZyBlZmZlY3RzLgogICAgIGJvb2wgaGFzQXJnRWZmZWN0cygpOworICAgIAorICAgIC8v
IFRlbGxzIHlvdSBpZiB0aGlzIG9wZXJhdGlvbiBoYXMgbm9uLWNvbnRyb2wgZWZmZWN0cy4KKyAg
ICBib29sIGhhc05vbkNvbnRyb2xFZmZlY3RzKCkgeyByZXR1cm4gaGFzTm9uQXJnTm9uQ29udHJv
bEVmZmVjdHMoKSB8fCBoYXNBcmdFZmZlY3RzKCk7IH0KIAogICAgIC8vIEdlbmVyYXRlIHNvbWUg
Y29kZSBmb3IgdGhpcyBpbnN0cnVjdGlvbi4gVGhpcyBpcywgbGlrZSwgbGl0ZXJhbGx5IG91ciBi
YWNrZW5kLiBJZiB0aGlzIGlzIHRoZQogICAgIC8vIHRlcm1pbmFsLCBpdCByZXR1cm5zIHRoZSBq
dW1wIHRoYXQgbmVlZHMgdG8gYmUgbGlua2VkIGZvciB0aGUgInRoZW4iIGNhc2UsIHdpdGggdGhl
ICJlbHNlIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJTaW1wbGlmeUNG
Ry5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJTaW1w
bGlmeUNGRy5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyU2ltcGxpZnlDRkcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05NSwzMyArOTUsMzIg
QEAgYm9vbCBzaW1wbGlmeUNGRyhDb2RlJiBjb2RlKQogICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIH0KIAotICAgICAgICAgICAgLy8gTm93IGNoZWNrIGlmIHRoZSBibG9jaydzIHRlcm1p
bmFsIGNhbiBiZSByZXBsYWNlZCB3aXRoIGEganVtcC4KLSAgICAgICAgICAgIGlmIChibG9jay0+
bnVtU3VjY2Vzc29ycygpID4gMSkgewotICAgICAgICAgICAgICAgIC8vIFRoZSB0ZXJtaW5hbCBt
dXN0IG5vdCBoYXZlIHdlaXJkIGVmZmVjdHMuCi0gICAgICAgICAgICAgICAgaWYgKCFibG9jay0+
bGFzdCgpLmhhc0FyZ0VmZmVjdHMoKQotICAgICAgICAgICAgICAgICAgICAmJiAhYmxvY2stPmxh
c3QoKS5oYXNOb25BcmdOb25Db250cm9sRWZmZWN0cygpKSB7Ci0gICAgICAgICAgICAgICAgICAg
IC8vIEFsbCBvZiB0aGUgc3VjY2Vzc29ycyBtdXN0IGJlIHRoZSBzYW1lLgotICAgICAgICAgICAg
ICAgICAgICBib29sIGFsbFNhbWUgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICBCYXNpY0Js
b2NrKiBmaXJzdFN1Y2Nlc3NvciA9IGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKTsKLSAgICAgICAg
ICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMTsgaSA8IGJsb2NrLT5udW1TdWNjZXNzb3Jz
KCk7ICsraSkgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJsb2NrLT5zdWNjZXNzb3JC
bG9jayhpKSAhPSBmaXJzdFN1Y2Nlc3NvcikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGFsbFNhbWUgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgICAgICBpZiAoYWxsU2FtZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZl
cmJvc2UpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygiQ2hhbmdpbmcgIiwg
cG9pbnRlckR1bXAoYmxvY2spLCAiJ3MgdGVybWluYWwgdG8gYSBKdW1wLlxuIik7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBibG9jay0+bGFzdCgpID0gSW5zdChKdW1wLCBibG9jay0+bGFzdCgp
Lm9yaWdpbik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBibG9jay0+c3VjY2Vzc29ycygpLnJl
c2l6ZSgxKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLT5zdWNjZXNzb3JzKClbMF0u
ZnJlcXVlbmN5KCkgPSBGcmVxdWVuY3lDbGFzczo6Tm9ybWFsOwotICAgICAgICAgICAgICAgICAg
ICAgICAgY2hhbmdlZCA9IHRydWU7CisgICAgICAgICAgICAvLyBOb3cgY2hlY2sgaWYgdGhlIGJs
b2NrJ3MgdGVybWluYWwgY2FuIGJlIHJlcGxhY2VkIHdpdGggYSBqdW1wLiBUaGUgdGVybWluYWwg
bXVzdCBub3QKKyAgICAgICAgICAgIC8vIGhhdmUgd2VpcmQgZWZmZWN0cy4KKyAgICAgICAgICAg
IGlmIChibG9jay0+bnVtU3VjY2Vzc29ycygpID4gMSAKKyAgICAgICAgICAgICAgICAmJiAhYmxv
Y2stPmxhc3QoKS5oYXNOb25Db250cm9sRWZmZWN0cygpKSB7CisgICAgICAgICAgICAgICAgLy8g
QWxsIG9mIHRoZSBzdWNjZXNzb3JzIG11c3QgYmUgdGhlIHNhbWUuCisgICAgICAgICAgICAgICAg
Ym9vbCBhbGxTYW1lID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBCYXNpY0Jsb2NrKiBmaXJzdFN1
Y2Nlc3NvciA9IGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKTsKKyAgICAgICAgICAgICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAxOyBpIDwgYmxvY2stPm51bVN1Y2Nlc3NvcnMoKTsgKytpKSB7CisgICAg
ICAgICAgICAgICAgICAgIGlmIChibG9jay0+c3VjY2Vzc29yQmxvY2soaSkgIT0gZmlyc3RTdWNj
ZXNzb3IpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFsbFNhbWUgPSBmYWxzZTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChhbGxTYW1lKSB7CisgICAgICAgICAgICAg
ICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygiQ2hh
bmdpbmcgIiwgcG9pbnRlckR1bXAoYmxvY2spLCAiJ3MgdGVybWluYWwgdG8gYSBKdW1wLlxuIik7
CisgICAgICAgICAgICAgICAgICAgIGJsb2NrLT5sYXN0KCkgPSBJbnN0KEp1bXAsIGJsb2NrLT5s
YXN0KCkub3JpZ2luKTsKKyAgICAgICAgICAgICAgICAgICAgYmxvY2stPnN1Y2Nlc3NvcnMoKS5y
ZXNpemUoMSk7CisgICAgICAgICAgICAgICAgICAgIGJsb2NrLT5zdWNjZXNzb3JzKClbMF0uZnJl
cXVlbmN5KCkgPSBGcmVxdWVuY3lDbGFzczo6Tm9ybWFsOworICAgICAgICAgICAgICAgICAgICBj
aGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAKICAgICAg
ICAgICAgIC8vIEZpbmFsbHkgaGFuZGxlIGp1bXBzIHRvIGEgYmxvY2sgd2l0aCBvbmUgcHJlZGVj
ZXNzb3IuCi0gICAgICAgICAgICBpZiAoYmxvY2stPm51bVN1Y2Nlc3NvcnMoKSA9PSAxKSB7Cisg
ICAgICAgICAgICBpZiAoYmxvY2stPm51bVN1Y2Nlc3NvcnMoKSA9PSAxCisgICAgICAgICAgICAg
ICAgJiYgIWJsb2NrLT5sYXN0KCkuaGFzTm9uQ29udHJvbEVmZmVjdHMoKSkgewogICAgICAgICAg
ICAgICAgIEJhc2ljQmxvY2sqIHN1Y2Nlc3NvciA9IGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKTsK
ICAgICAgICAgICAgICAgICBpZiAoc3VjY2Vzc29yICE9IGJsb2NrICYmIHN1Y2Nlc3Nvci0+bnVt
UHJlZGVjZXNzb3JzKCkgPT0gMSkgewogICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VS
VChzdWNjZXNzb3ItPnByZWRlY2Vzc29yKDApID09IGJsb2NrKTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvQWlyU3BlY2lhbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJTcGVjaWFsLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJTcGVjaWFsLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC01NSw3ICs1NSwxMiBAQCBPcHRpb25hbDx1bnNpZ25lZD4gU3BlY2lhbDo6c2hvdWxkVHJ5QWxp
CiAgICAgcmV0dXJuIE51bGxvcHQ7CiB9CiAKLWJvb2wgU3BlY2lhbDo6aGFzTm9uQXJnTm9uQ29u
dHJvbEVmZmVjdHMoKQorYm9vbCBTcGVjaWFsOjppc1Rlcm1pbmFsKEluc3QmKQoreworICAgIHJl
dHVybiBmYWxzZTsKK30KKworYm9vbCBTcGVjaWFsOjpoYXNOb25BcmdOb25Db250cm9sRWZmZWN0
cyhJbnN0JikKIHsKICAgICByZXR1cm4gdHJ1ZTsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvQWlyU3BlY2lhbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvQWlyU3BlY2lhbC5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpclNwZWNpYWwuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC04Nyw5ICs4Nywx
MiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGNvbnN0IFJlZ2lzdGVyU2V0JiBleHRyYUVhcmx5
Q2xvYmJlcmVkUmVncyhJbnN0JikgPSAwOwogICAgIHZpcnR1YWwgY29uc3QgUmVnaXN0ZXJTZXQm
IGV4dHJhQ2xvYmJlcmVkUmVncyhJbnN0JikgPSAwOworICAgIAorICAgIC8vIEJ5IGRlZmF1bHQs
IHRoaXMgcmV0dXJucyBmYWxzZS4KKyAgICB2aXJ0dWFsIGJvb2wgaXNUZXJtaW5hbChJbnN0Jik7
CiAKICAgICAvLyBCeSBkZWZhdWx0LCB0aGlzIHJldHVybnMgdHJ1ZS4KLSAgICB2aXJ0dWFsIGJv
b2wgaGFzTm9uQXJnTm9uQ29udHJvbEVmZmVjdHMoKTsKKyAgICB2aXJ0dWFsIGJvb2wgaGFzTm9u
QXJnTm9uQ29udHJvbEVmZmVjdHMoSW5zdCYpOwogCiAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFt
JikgY29uc3Q7CiAgICAgdm9pZCBkZWVwRHVtcChQcmludFN0cmVhbSYpIGNvbnN0OwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJiCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvb3Bjb2RlX2dlbmVyYXRvci5yYgko
cmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVf
Z2VuZXJhdG9yLnJiCSh3b3JraW5nIGNvcHkpCkBAIC05NzYsNiArOTc2LDMyIEBAIHdyaXRlSCgi
T3Bjb2RlR2VuZXJhdGVkIikgewogICAgIG91dHAucHV0cyAicmV0dXJuIGZhbHNlOyIKICAgICBv
dXRwLnB1dHMgIn0iCiAKKyAgICBvdXRwLnB1dHMgImJvb2wgSW5zdDo6aXNUZXJtaW5hbCgpIgor
ICAgIG91dHAucHV0cyAieyIKKyAgICBvdXRwLnB1dHMgInN3aXRjaCAob3Bjb2RlKSB7IgorICAg
IGZvdW5kVHJ1ZSA9IGZhbHNlCisgICAgJG9wY29kZXMudmFsdWVzLmVhY2ggeworICAgICAgICB8
IG9wY29kZSB8CisgICAgICAgIGlmIG9wY29kZS5hdHRyaWJ1dGVzWzp0ZXJtaW5hbF0KKyAgICAg
ICAgICAgIG91dHAucHV0cyAiY2FzZSAje29wY29kZS5uYW1lfToiCisgICAgICAgICAgICBmb3Vu
ZFRydWUgPSB0cnVlCisgICAgICAgIGVuZAorICAgIH0KKyAgICBpZiBmb3VuZFRydWUKKyAgICAg
ICAgb3V0cC5wdXRzICJyZXR1cm4gdHJ1ZTsiCisgICAgZW5kCisgICAgJG9wY29kZXMudmFsdWVz
LmVhY2ggeworICAgICAgICB8IG9wY29kZSB8CisgICAgICAgIGlmIG9wY29kZS5jdXN0b20KKyAg
ICAgICAgICAgIG91dHAucHV0cyAiY2FzZSAje29wY29kZS5uYW1lfToiCisgICAgICAgICAgICBv
dXRwLnB1dHMgInJldHVybiAje29wY29kZS5uYW1lfUN1c3RvbTo6aXNUZXJtaW5hbCgqdGhpcyk7
IgorICAgICAgICBlbmQKKyAgICB9CisgICAgb3V0cC5wdXRzICJkZWZhdWx0OiIKKyAgICBvdXRw
LnB1dHMgInJldHVybiBmYWxzZTsiCisgICAgb3V0cC5wdXRzICJ9IgorICAgIG91dHAucHV0cyAi
fSIKKyAgICAKICAgICBvdXRwLnB1dHMgImJvb2wgSW5zdDo6aGFzTm9uQXJnTm9uQ29udHJvbEVm
ZmVjdHMoKSIKICAgICBvdXRwLnB1dHMgInsiCiAgICAgb3V0cC5wdXRzICJzd2l0Y2ggKG9wY29k
ZSkgeyIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5jcHAJKHJldmlz
aW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjgsOCArMjgsMTggQEAKIAogI2lmIEVOQUJMRShGVExfSklUKQog
CisjaW5jbHVkZSAiQjNBcmd1bWVudFJlZ1ZhbHVlLmgiCisjaW5jbHVkZSAiQjNCYXNpY0Jsb2Nr
SW5saW5lcy5oIgorI2luY2x1ZGUgIkIzQ0NhbGxWYWx1ZS5oIgorI2luY2x1ZGUgIkIzQ29uc3Qz
MlZhbHVlLmgiCisjaW5jbHVkZSAiQjNDb25zdFB0clZhbHVlLmgiCiAjaW5jbHVkZSAiQjNNYXRo
RXh0cmFzLmgiCisjaW5jbHVkZSAiQjNNZW1vcnlWYWx1ZS5oIgorI2luY2x1ZGUgIkIzU2xvdEJh
c2VWYWx1ZS5oIgogI2luY2x1ZGUgIkIzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmgiCisjaW5j
bHVkZSAiQjNTd2l0Y2hWYWx1ZS5oIgorI2luY2x1ZGUgIkIzVXBzaWxvblZhbHVlLmgiCisjaW5j
bHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJTdXBlclNhbXBsZXIuaCIKIAogbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewpAQCAtNTc4LDEyICs1ODgsMTIgQEAgTFZhbHVl
IE91dHB1dDo6c2VsZWN0KExWYWx1ZSB2YWx1ZSwgTFZhbAogCiB2b2lkIE91dHB1dDo6anVtcChM
QmFzaWNCbG9jayBkZXN0aW5hdGlvbikKIHsKLSAgICBtX2Jsb2NrLT5hcHBlbmROZXc8QjM6OkNv
bnRyb2xWYWx1ZT4obV9wcm9jLCBCMzo6SnVtcCwgb3JpZ2luKCksIEIzOjpGcmVxdWVudGVkQmxv
Y2soZGVzdGluYXRpb24pKTsKKyAgICBtX2Jsb2NrLT5hcHBlbmROZXdDb250cm9sVmFsdWUobV9w
cm9jLCBCMzo6SnVtcCwgb3JpZ2luKCksIEIzOjpGcmVxdWVudGVkQmxvY2soZGVzdGluYXRpb24p
KTsKIH0KIAogdm9pZCBPdXRwdXQ6OmJyYW5jaChMVmFsdWUgY29uZGl0aW9uLCBMQmFzaWNCbG9j
ayB0YWtlbiwgV2VpZ2h0IHRha2VuV2VpZ2h0LCBMQmFzaWNCbG9jayBub3RUYWtlbiwgV2VpZ2h0
IG5vdFRha2VuV2VpZ2h0KQogewotICAgIG1fYmxvY2stPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIG1fYmxvY2stPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgbV9wcm9jLCBC
Mzo6QnJhbmNoLCBvcmlnaW4oKSwgY29uZGl0aW9uLAogICAgICAgICBGcmVxdWVudGVkQmxvY2so
dGFrZW4sIHRha2VuV2VpZ2h0LmZyZXF1ZW5jeUNsYXNzKCkpLAogICAgICAgICBGcmVxdWVudGVk
QmxvY2sobm90VGFrZW4sIG5vdFRha2VuV2VpZ2h0LmZyZXF1ZW5jeUNsYXNzKCkpKTsKQEAgLTYw
MywxMiArNjEzLDEyIEBAIHZvaWQgT3V0cHV0OjpjaGVjayhMVmFsdWUgY29uZGl0aW9uLCBXZWkK
IAogdm9pZCBPdXRwdXQ6OnJldChMVmFsdWUgdmFsdWUpCiB7Ci0gICAgbV9ibG9jay0+YXBwZW5k
TmV3PEIzOjpDb250cm9sVmFsdWU+KG1fcHJvYywgQjM6OlJldHVybiwgb3JpZ2luKCksIHZhbHVl
KTsKKyAgICBtX2Jsb2NrLT5hcHBlbmROZXdDb250cm9sVmFsdWUobV9wcm9jLCBCMzo6UmV0dXJu
LCBvcmlnaW4oKSwgdmFsdWUpOwogfQogCiB2b2lkIE91dHB1dDo6dW5yZWFjaGFibGUoKQogewot
ICAgIG1fYmxvY2stPmFwcGVuZE5ldzxCMzo6Q29udHJvbFZhbHVlPihtX3Byb2MsIEIzOjpPb3Bz
LCBvcmlnaW4oKSk7CisgICAgbV9ibG9jay0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKG1fcHJvYywg
QjM6Ok9vcHMsIG9yaWdpbigpKTsKIH0KIAogQ2hlY2tWYWx1ZSogT3V0cHV0OjpzcGVjdWxhdGUo
TFZhbHVlIHZhbHVlKQpAQCAtNjM4LDcgKzY0OCw3IEBAIFBhdGNocG9pbnRWYWx1ZSogT3V0cHV0
OjpwYXRjaHBvaW50KExUeXAKIAogdm9pZCBPdXRwdXQ6OnRyYXAoKQogewotICAgIG1fYmxvY2st
PmFwcGVuZE5ldzxCMzo6Q29udHJvbFZhbHVlPihtX3Byb2MsIEIzOjpPb3BzLCBvcmlnaW4oKSk7
CisgICAgbV9ibG9jay0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKG1fcHJvYywgQjM6Ok9vcHMsIG9y
aWdpbigpKTsKIH0KIAogVmFsdWVGcm9tQmxvY2sgT3V0cHV0OjphbmNob3IoTFZhbHVlIHZhbHVl
KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5oCShyZXZpc2lvbiAyMDI4
MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zMCwxOSArMzAsOCBAQAogCiAjaWYgRU5BQkxFKEZUTF9KSVQpCiAKLSNpbmNsdWRl
ICJCM0FyZ3VtZW50UmVnVmFsdWUuaCIKLSNpbmNsdWRlICJCM0Jhc2ljQmxvY2tJbmxpbmVzLmgi
Ci0jaW5jbHVkZSAiQjNDQ2FsbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNDb21waWxhdGlvbi5oIgot
I2luY2x1ZGUgIkIzQ29uc3QzMlZhbHVlLmgiCi0jaW5jbHVkZSAiQjNDb25zdFB0clZhbHVlLmgi
Ci0jaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKLSNpbmNsdWRlICJCM01lbW9yeVZhbHVlLmgi
CiAjaW5jbHVkZSAiQjNQcm9jZWR1cmUuaCIKLSNpbmNsdWRlICJCM1Nsb3RCYXNlVmFsdWUuaCIK
LSNpbmNsdWRlICJCM1N3aXRjaFZhbHVlLmgiCi0jaW5jbHVkZSAiQjNVcHNpbG9uVmFsdWUuaCIK
LSNpbmNsdWRlICJCM1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIkZUTEFiYnJldmlhdGVkVHlw
ZXMuaCIKICNpbmNsdWRlICJGVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgiCiAjaW5jbHVkZSAi
RlRMQ29tbW9uVmFsdWVzLmgiCkBAIC0zNzgsOCArMzY3LDggQEAgcHVibGljOgogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFZlY3RvclR5cGU+CiAgICAgdm9pZCBzd2l0Y2hJbnN0cnVjdGlvbihMVmFs
dWUgdmFsdWUsIGNvbnN0IFZlY3RvclR5cGUmIGNhc2VzLCBMQmFzaWNCbG9jayBmYWxsVGhyb3Vn
aCwgV2VpZ2h0IGZhbGxUaHJvdWdoV2VpZ2h0KQogICAgIHsKLSAgICAgICAgQjM6OlN3aXRjaFZh
bHVlKiBzd2l0Y2hWYWx1ZSA9IG1fYmxvY2stPmFwcGVuZE5ldzxCMzo6U3dpdGNoVmFsdWU+KAot
ICAgICAgICAgICAgbV9wcm9jLCBvcmlnaW4oKSwgdmFsdWUsIEIzOjpGcmVxdWVudGVkQmxvY2so
ZmFsbFRocm91Z2gpKTsKKyAgICAgICAgQjM6OlN3aXRjaFZhbHVlKiBzd2l0Y2hWYWx1ZSA9IG1f
YmxvY2stPmFwcGVuZE5ldzxCMzo6U3dpdGNoVmFsdWU+KG1fcHJvYywgb3JpZ2luKCksIHZhbHVl
KTsKKyAgICAgICAgc3dpdGNoVmFsdWUtPnNldEZhbGxUaHJvdWdoKEZyZXF1ZW50ZWRCbG9jayhm
YWxsVGhyb3VnaCkpOwogICAgICAgICBmb3IgKGNvbnN0IFN3aXRjaENhc2UmIHN3aXRjaENhc2Ug
OiBjYXNlcykgewogICAgICAgICAgICAgaW50NjRfdCB2YWx1ZSA9IHN3aXRjaENhc2UudmFsdWUo
KS0+YXNJbnQoKTsKICAgICAgICAgICAgIEIzOjpGcmVxdWVudGVkQmxvY2sgdGFyZ2V0KHN3aXRj
aENhc2UudGFyZ2V0KCksIHN3aXRjaENhc2Uud2VpZ2h0KCkuZnJlcXVlbmN5Q2xhc3MoKSk7Cklu
ZGV4OiBXZWJzaXRlcy93ZWJraXQub3JnL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRl
cy93ZWJraXQub3JnL0NoYW5nZUxvZwkocmV2aXNpb24gMjAyODA5KQorKysgV2Vic2l0ZXMvd2Vi
a2l0Lm9yZy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxNi0w
NS0yOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVu
dCB0YWJsZS1iYXNlZCBzd2l0Y2hlcyBpbiBCMy9BaXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTE0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgVXBkYXRlIGRvY3VtZW50YXRpb24gZm9y
IHRoZSBuZXcgUG9seUp1bXAgb3Bjb2RlLgorCisgICAgICAgICogZG9jcy9iMy9pbnRlcm1lZGlh
dGUtcmVwcmVzZW50YXRpb24uaHRtbDoKKwogMjAxNi0wNy0wMSAgSm9uIERhdmlzICA8am9uZEBh
cHBsZS5jb20+CiAKICAgICAgICAgQWRkZWQgYSBjb2xvcmZ1bCBuZXcgaW1hZ2UgYW5kIGZpeGVk
IHRoZSBPcGVuIEdyYXBoIGF0dHJpYnV0ZS4KSW5kZXg6IFdlYnNpdGVzL3dlYmtpdC5vcmcvZG9j
cy9iMy9pbnRlcm1lZGlhdGUtcmVwcmVzZW50YXRpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJz
aXRlcy93ZWJraXQub3JnL2RvY3MvYjMvaW50ZXJtZWRpYXRlLXJlcHJlc2VudGF0aW9uLmh0bWwJ
KHJldmlzaW9uIDIwMjgwOSkKKysrIFdlYnNpdGVzL3dlYmtpdC5vcmcvZG9jcy9iMy9pbnRlcm1l
ZGlhdGUtcmVwcmVzZW50YXRpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNTM3LDYgKzUzNywz
OSBAQCBwYXRjaHBvaW50LT5zZXRHZW5lcmF0b3IoCiAgICAgICAgIGFsc28gY29udGFpbnMgYSBm
YWxsLXRocm91Z2ggdGFyZ2V0IGluIGNhc2UgdGhlIGNoaWxkIGhhcyBhIHZhbHVlIHRoYXQgd2Fz
bid0IG1lbnRpb25lZAogICAgICAgICBpbiB0aGUgY2FzZXMgbGlzdC4gIE11c3QgdXNlIHRoZSBT
d2l0Y2hWYWx1ZSBjbGFzcy4gIE11c3QgYXBwZWFyIGF0IHRoZSBlbmQgb2YgdGhlIGJhc2ljCiAg
ICAgICAgIGJsb2NrLjwvZGQ+CisgICAgICAKKyAgICAgIDxkdD5Wb2lkIFBvbHlKdW1wKEludFB0
ciwgYmxvY2tzLi4uKTwvZHQ+CisgICAgICA8ZGQ+CisgICAgICAgIDxwPkp1bXBzIHRvIHRoZSBn
aXZlbiBhZGRyZXNzLiBUaGUgY29tcGlsZXIgd2lsbCBhc3N1bWUgdGhhdCB0aGlzIGp1bXBzIHRv
IG9uZSBvZiB0aGUgZ2l2ZW4KKyAgICAgICAgICBibG9ja3MuIFRoZSBjb21waWxlciBtYWtlcyBu
byBhdHRlbXB0IHRvIHByb3ZlIG9yIHZhbGlkYXRlIHRoYXQgdGhlIHBhc3NlZCBqdW1wIGFkZHJl
c3MgaXMKKyAgICAgICAgICBhY3R1YWxseSB0aGUgYWRkcmVzcyBvZiBhbnkgb2YgdGhvc2UgYmxv
Y2tzLiBOb25zZW5zaWNhbCB0aGluZ3Mgd2lsbCBoYXBwZW4gaWYgdGhlIHBhc3NlZAorICAgICAg
ICAgIGFkZHJlc3MgaXMgbm90IHRoZSBhZGRyZXNzIG9mIG9uZSBvZiB0aGUgYmxvY2tzIGluIHRo
ZSBzdWNjZXNzb3IgbGlzdC4gWW91IGNhbiBhcnJhbmdlIHRvCisgICAgICAgICAgZ2V0IHRoZSBh
ZGRyZXNzZXMgb2YgYmxvY2tzIGJ5IHBhc3NpbmcgYSBjYWxsYmFjayB0byBQb2x5SnVtcC4gVGhp
cyBpcyB1c2VkIGludGVybmFsbHkKKyAgICAgICAgICBmb3IgbG93ZXJpbmcgU3dpdGNoIG9wY29k
ZXMuIFlvdSBjYW4gYWxzbyB1c2UgaXQgZGlyZWN0bHkuPC9wPgorICAgICAgCisgICAgICAgIDxw
PlBvbHlKdW1wIGlzIG5vdCBjbG9uZWFibGUuIEZvciBlYWNoIFBvbHlKdW1wIHlvdSBjcmVhdGUs
IHRoZXJlIHdpbGwgYmUgb25lIGluZGlyZWN0CisgICAgICAgICAganVtcCBnZW5lcmF0ZWQuIFRo
aXMgaXMgbmVjZXNzYXJ5IHRvIGVuc3VyZSBzb3VuZG5lc3Mgb2YgdGhlIGNhbGxiYWNrLiBJZiB0
aGUgUG9seUp1bXAKKyAgICAgICAgICBjb3VsZCBiZSBjbG9uZWQsIHRoZW4gdGhlIGNhbGxiYWNr
IHdvdWxkIGdldCBjYWxsZWQgZm9yIGVhY2ggY2xvbmUuIFByZXN1bWFibHksIHlvdSdkCisgICAg
ICAgICAgaW1wbGVtZW50IHRoZSBjYWxsYmFjayBieSBwb3B1bGF0aW5nIHNvbWUgdGFibGUgd2l0
aCB0aGUgYWRkcmVzc2VzIG9mIHRoZSBibG9ja3MuIElmIHRoZQorICAgICAgICAgIGNhbGxiYWNr
IGdldHMgY2FsbGVkIG11bHRpcGxlIHRpbWVzIHRoZW4gaXQgbWF5IHJldHVybiBkaWZmZXJlbnQg
YWRkcmVzc2VzIGVhY2ggdGltZSAtCisgICAgICAgICAgc2luY2UgYWZ0ZXIgY2xvbmluZyBhIFBv
bHlKdW1wLCB0aGUgY29tcGlsZXIgbWF5IHJldGFyZ2V0IGFueSBvZiBpdHMgc3VjY2Vzc29yIGVk
Z2VzLgorICAgICAgICAgIFRoaXMgd291bGQgYmUgY29uZnVzaW5nLCBzaW5jZSB0aGVuIHlvdSB3
b3VsZG4ndCBrbm93IHdoYXQgdG8gZG8gd2l0aCBkaXNjcmVwYW5jaWVzIGJldHdlZW4KKyAgICAg
ICAgICBhZGRyZXNzZXMgcmV0dXJuZWQgYnkgdGhlIHZhcmlvdXMgY2FsbHMgdG8gdGhlIGNhbGxi
YWNrLiBEaXNhbGxvd2luZyBjbG9uaW5nIG9mIFBvbHlKdW1wCisgICAgICAgICAgc29sdmVzIHRo
aXMgcHJvYmxlbS48L3A+CisgICAgICAgIAorICAgICAgICA8cD5BIGNsb3NlbHkgcmVsYXRlZCBw
cm9ibGVtIGlzIHRoYXQgaWYgeW91IGVtaXQgbXVsdGlwbGUgUG9seUp1bXAgaW5zdHJ1Y3Rpb25z
LCB0aGVuIGV2ZW4KKyAgICAgICAgICBpZiB0aGV5IGluaXRpYWxseSBzaGFyZSB0aGUgc2FtZSBz
dWNjZXNzb3JzLCB5b3UgY2Fubm90IGd1YXJhbnRlZSB0aGF0IHRoZXkgd2lsbCBjb250aW51ZQor
ICAgICAgICAgIHRvIHNoYXJlIHRoZSBzYW1lIHN1Y2Nlc3NvcnMgYWZ0ZXIgb3B0aW1pemF0aW9u
LiBUaGlzIG1lYW5zIHRoYXQgUG9seUp1bXAgY2Fubm90CisgICAgICAgICAgY3VycmVudGx5IGJl
IHVzZWQgZm9yIGltcGxlbWVudGluZyBkaXJlY3QgdGhyZWFkZWQgaW50ZXJwcmV0ZXJzLCBhdCBs
ZWFzdCBub3QgdGhlIGNsYXNzaWMKKyAgICAgICAgICBraW5kOiB0byBtYWtlIGl0IHdvcmssIHlv
dSBoYXZlIHRvIGhhdmUgYSBzaGFyZWQgZGlzcGF0Y2ggYmxvY2sgc28gdGhhdCB5b3UgaGF2ZSBh
IHNpbmdsZQorICAgICAgICAgIFBvbHlKdW1wLiBUaGlzIG1pZ2h0IGJlIGJldHRlciB0aGFuIGEg
U3dpdGNoLWJhc2VkIGludGVycHJldGVyLCBidXQgaXQncyBkZWZpbml0ZWx5IG5vdAorICAgICAg
ICAgIGFzIGdvb2QgYXMgd2hhdCB5b3UnZCBnZXQgd2l0aCBHQ0Mtc3R5bGUgY29tcHV0ZWQgZ290
by48L3A+CisgICAgICAgIAorICAgICAgICA8cD5Qb2x5SnVtcCBpcyBzbyBuYW1lZCB0byBhdm9p
ZCBjb25mdXNpb24gd2l0aCBjb21wdXRlZCBnb3RvcyBhbmQgaW5kaXJlY3QgYnJhbmNoZXMgaW4K
KyAgICAgICAgICBvdGhlciBjb21waWxlcnMuIEl0IGhhcyBzaWduaWZpY2FudCByZXN0cmljdGlv
bnMgdGhhdCB0aG9zZSBvcGVyYXRpb25zIGRvIG5vdCBoYXZlLiBUaGVzZQorICAgICAgICAgIHJl
c3RyaWN0aW9ucyBtYWtlIGl0IGVhc2llciBmb3IgdGhlIG9wdGltaXplciB0byB3b3JrIHdpdGgg
c2luY2UgdGhlIGNvbnRyb2wgZmxvdyBnZXRzIHRvCisgICAgICAgICAgYmUgZXhwbGljaXQgKFBv
bHlKdW1wIGhhcyBhIGZpbml0ZSBzZXQgb2Ygc3VjY2Vzc29ycyBsaWtlIGFueSBvdGhlciBibG9j
ayB0ZXJtaW5hbCkuPC9wPgorICAgICAgPC9kZD4KIAogICAgICAgPGR0PlZvaWQgUmV0dXJuKFQp
PC9kdD4KICAgICAgIDxkZD5Xb3JrcyBmb3IgYW55IHR5cGUgZXhjZXB0IFZvaWQuICBSZXR1cm5z
IHRoZSBnaXZlbiB2YWx1ZSBhbmQgdGVybWluYXRlcyB0aGUgcHJvY2VkdXJlLgpJbmRleDogTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwko
cmV2aXNpb24gMjAyODA5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMTYtMDUtMjkgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxl
LmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgdGFibGUtYmFzZWQgc3dpdGNoZXMgaW4gQjMvQWly
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTExNDEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGpzL3Jl
Z3Jlc3MvYmlnc3dpdGNoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVz
cy9iaWdzd2l0Y2guaHRtbDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVz
dHMvYmlnc3dpdGNoLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisKIDIwMTYtMDctMDQgIFl1
c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCwgc2tpcCBtaXNjLWJ1Z3MtODQ3Mzg5LWpwZWcyMDAwLmpzIGluIGpzYyBzdHJlc3MgdGVzdHMK
SW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdyZXNzL2JpZ3N3aXRj
aAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBubyBleGNlcHRpb24gdGhy
b3duCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJ
bmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2guaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC5odG1sCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9F
TiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10
ZXN0cy9iaWdzd2l0Y2guanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvYmlnc3dpdGNoLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2JpZ3N3aXRjaC5qcwkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2JpZ3N3aXRj
aC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIxMSBAQAorZnVuY3Rpb24gZm9vKG8pIHsK
KyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7ICsraSkg
eworICAgICAgICB2YXIgdmFsdWUgPSBpICYgNjM7CisgICAgICAgIHN3aXRjaCAodmFsdWUpIHsK
KyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXN1bHQgKz0gby5iOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
LmM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgcmVz
dWx0ICs9IG8uZDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ6CisgICAgICAg
ICAgICByZXN1bHQgKz0gby5lOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNToK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmY7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSA2OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZzsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIDc6CisgICAgICAgICAgICByZXN1bHQgKz0gby5oOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA5OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8u
ajsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDEwOgorICAgICAgICAgICAgcmVz
dWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDExOgorICAgICAg
ICAgICAgcmVzdWx0ICs9IG8uYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDEy
OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIDEzOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYzsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIDE0OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZDsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIDE1OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE2OgorICAgICAgICAgICAgcmVzdWx0
ICs9IG8uZjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE3OgorICAgICAgICAg
ICAgcmVzdWx0ICs9IG8uZzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE4Ogor
ICAgICAgICAgICAgcmVzdWx0ICs9IG8uaDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIDE5OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIDIwOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uajsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIDIxOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDIyOgorICAgICAgICAgICAgcmVzdWx0ICs9
IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDIzOgorICAgICAgICAgICAg
cmVzdWx0ICs9IG8uYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI0OgorICAg
ICAgICAgICAgcmVzdWx0ICs9IG8uYjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IDI1OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYzsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIDI2OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZDsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIDI3OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI4OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8u
ZjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI5OgorICAgICAgICAgICAgcmVz
dWx0ICs9IG8uZzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDMwOgorICAgICAg
ICAgICAgcmVzdWx0ICs9IG8uaDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDMx
OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIDMyOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uajsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIDMzOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIDM0OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM1OgorICAgICAgICAgICAgcmVzdWx0
ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM2OgorICAgICAgICAg
ICAgcmVzdWx0ICs9IG8uYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM3Ogor
ICAgICAgICAgICAgcmVzdWx0ICs9IG8uYjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIDM4OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYzsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIDM5OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZDsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIDQwOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQxOgorICAgICAgICAgICAgcmVzdWx0ICs9
IG8uZjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQyOgorICAgICAgICAgICAg
cmVzdWx0ICs9IG8uZzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQzOgorICAg
ICAgICAgICAgcmVzdWx0ICs9IG8uaDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IDQ0OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIDQ1OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uajsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIDQ2OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ3OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8u
aTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ4OgorICAgICAgICAgICAgcmVz
dWx0ICs9IG8uajsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ5OgorICAgICAg
ICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDUw
OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIDUxOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIDUyOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIDUzOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYjsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDU0OgorICAgICAgICAgICAgcmVzdWx0
ICs9IG8uYzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDU1OgorICAgICAgICAg
ICAgcmVzdWx0ICs9IG8uZDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDU2Ogor
ICAgICAgICAgICAgcmVzdWx0ICs9IG8uZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIDU3OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZjsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIDU4OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZzsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIDU5OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaDsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDYwOgorICAgICAgICAgICAgcmVzdWx0ICs9
IG8uaTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDYxOgorICAgICAgICAgICAg
cmVzdWx0ICs9IG8uajsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDYyOgorICAg
ICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uejsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKKyhmdW5jdGlvbigpIHsKKyAg
ICB2YXIgbyA9IHthOjEsIGI6MiwgYzozLCBkOjQsIGU6NSwgZjo2LCBnOjcsIGg6OCwgaTo5LCBq
OjEwLCBrOjExLCB6OjEwMH07CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCAxMDAwMDsgKytpKQorICAgICAgICByZXN1bHQgKz0gZm9vKG8pOworICAgIGlmIChy
ZXN1bHQgIT0gNzk2NjAwMDApCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiAr
IHJlc3VsdDsKK30pKCk7CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283054</attachid>
            <date>2016-07-07 14:51:07 -0700</date>
            <delta_ts>2016-07-07 15:04:10 -0700</delta_ts>
            <desc>closer to done</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>421438</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2NiBA
QAorMjAxNi0wNS0yOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IEltcGxlbWVudCB0YWJsZS1iYXNlZCBzd2l0Y2hlcyBpbiBCMy9BaXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTE0MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgSWYgYSBzd2l0Y2ggc3Rh
dGVtZW50IGdldHMgbGFyZ2UsIGl0J3MgYmV0dGVyIHRvIGV4cHJlc3MgaXQgYXMgYW4gaW5kaXJl
Y3QganVtcCByYXRoZXIgdGhhbgorICAgICAgICB1c2luZyBhIGJpbmFyeSBzd2l0Y2ggKGRpdmlk
ZS1hbmQtY29ucXVlciB0cmVlIG9mIGNvbXBhcmlzb25zIGxlYWRpbmcgdG8gTyhsb2cgbikgYnJh
bmNoZXMgdG8KKyAgICAgICAgZ2V0IHRvIHRoZSBzd2l0Y2ggY2FzZSkuIFdoZW4gZGVhbGluZyB3
aXRoIGludGVnZXIgc3dpdGNoZXMsIEZUTCB3aWxsIGFscmVhZHkgdXNlIHRoZSBCMworICAgICAg
ICBTd2l0Y2ggYW5kIGV4cGVjdCB0aGlzIHRvIGdldCBsb3dlcmVkIGFzIGVmZmljaWVudGx5IGFz
IHBvc3NpYmxlOyBpdCdzIGEgYnVnIHRoYXQgQjMgd2lsbAorICAgICAgICBhbHdheXMgdXNlIGEg
YmluYXJ5IHN3aXRjaCByYXRoZXIgdGhhbiBpbmRpcmVjdCBqdW1wcy4gV2hlbiBkZWFsaW5nIHdp
dGggc3dpdGNoZXMgb3ZlciBzb21lCisgICAgICAgIG1vcmUgc29waGlzdGljYXRlZCB0eXBlcywg
d2UnZCB3YW50IEZUTCB0byBidWlsZCBhbiBpbmRpcmVjdCBqdW1wIHRhYmxlIGl0c2VsZiBhbmQg
dXNlCisgICAgICAgIHNvbWV0aGluZyBsaWtlIGEgaGFzaHRhYmxlIHRvIGZlZWQgaXQuIEluIHRo
YXQgY2FzZSwgdGhlcmUgd2lsbCBiZSBubyBCMyBTd2l0Y2g7IHdlJ2xsIHdhbnQKKyAgICAgICAg
c29tZSBraW5kIG9mIGluZGlyZWN0IGp1bXAgaW5zdHJ1Y3Rpb24uCisgICAgICAgIAorICAgICAg
ICBUaGlzIGltcGxpZXMgdGhhdCB3ZSB3YW50IEIzIHRvIGhhdmUgdGhlIGFiaWxpdHkgdG8gbG93
ZXIgU3dpdGNoIHRvIGluZGlyZWN0IGp1bXBzIGFuZCB0bworICAgICAgICBleHBvc2UgdGhvc2Ug
aW5kaXJlY3QganVtcHMgaW4gSVIgc28gdGhhdCB0aGUgRlRMIGNvdWxkIGRvIGl0cyBvd24gaW5k
aXJlY3QganVtcHMgZm9yCisgICAgICAgIHN3aXRjaGVzIG92ZXIgbW9yZSBjb21wbGljYXRlZCB0
aGluZ3MgbGlrZSBzdHJpbmdzLiBUaGlzIGNoYW5nZSBpbnRyb2R1Y2VzIGFuIGluZGlyZWN0IGp1
bXAKKyAgICAgICAgaW5zdHJ1Y3Rpb24gdG8gQjMgYW5kIGNhbGxzIGl0IFBvbHlKdW1wLiBJdCBo
YXMgc29tZSB1bmlxdWUgc2VtYW50aWNzIHRoYXQgbWFrZSBpdCB2ZXJ5CisgICAgICAgIGRpZmZl
cmVudCBmcm9tICJpbmRpcmVjdCBqdW1wcyIsICJpbmRpcmVjdCBicmFuY2hlcyIsIGFuZCAiY29t
cHV0ZWQgZ290b3MiIC0gYWxsIHRlcm1zIG9mIGFydAorICAgICAgICB1c2VkIGluIG90aGVyIGNv
bXBpbGVycy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaW1wbGVtZW50cyB0aGUgbW9zdCBiYXNp
YyBraW5kIG9mIFN3aXRjaC10by1Qb2x5SnVtcCBsb3dlcmluZyBpbiBCMzo6bG93ZXJNYWNyb3Mo
KS4gQXMKKyAgICAgICAgcGFydCBvZiB0aGUgZXhpc3RpbmcgZGl2aWRlLWFuZC1jb25xdWVyIHRo
YXQgY3JlYXRlcyBicmFuY2hlcywgaWYgaXQgZGV0ZWN0cyB0aGF0IHRoZSBzZXQgb2YKKyAgICAg
ICAgY2FzZXMgc2F0aXNmaWVzIHNvbWUgY29uZGl0aW9ucyAoZGVuc2l0eSBvZiBjYXNlIHZhbHVl
cyBhbmQgdG90YWwgc2l6ZSksIHRoZW4gaXQgd2lsbCBlbWl0IGEKKyAgICAgICAgUG9seUp1bXAu
CisgICAgICAgIAorICAgICAgICBUaGUgcHJvYmxlbSB3aXRoIGNsYXNzaWMgaW5kaXJlY3QganVt
cHMgaXMgdGhhdCB0aGV5IGZvcmNlIHRoZSBjb21waWxlciB0byBiZSBjb25zZXJ2YXRpdmUKKyAg
ICAgICAgYWJvdXQgY29udHJvbCBmbG93LiBUaGUgY29tcGlsZXIgbXVzdCBhc3N1bWUgdGhhdCB0
aGUgaW5kaXJlY3QganVtcCBtYXkgdHJhbnNmZXIgY29udHJvbCBmbG93CisgICAgICAgIHRvIGFu
eSBlc2NhcGVkIGJsb2NrIChibG9jayBsYWJlbGVkIGFzIGJlaW5nIGEgcG9zc2libGUgdGFyZ2V0
IGZvciBpbmRpcmVjdCBqdW1wcywgb3IgaWYgbm8KKyAgICAgICAgc3VjaCBsYWJlbGluZyBpcyBh
dmFpbGFibGUsIHRoZSBjb21waWxlciBtdXN0IGFzc3VtZSB0aGF0IGl0IG1heSB0YXJnZXQgYW55
IGJsb2NrKS4gVGhlIHdvcnN0CisgICAgICAgIHBhcnQgaXMgdGhhdCB0aGUgaW1wbGljaXQgY29u
dHJvbCBmbG93IGVkZ2VzIGZyb20gdGhlIGluZGlyZWN0IGp1bXAgdG8gdGhlIGVzY2FwZWQgYmxv
Y2tzCisgICAgICAgIGNhbm5vdCBiZSBicm9rZW4uIFRoaXMgaW52YWxpZGF0ZXMgYSBwcmluY2lw
bGUgb2YgQjMgSVI6IGFueSBwaGFzZSBtYXkgYnJlYWsgYW55IGNyaXRpY2FsCisgICAgICAgIGVk
Z2UgZm9yIGFueSByZWFzb24uIE91ciBTU0EgY29udmVyc2lvbiB3b3VsZCBicmVhayBpZiB3ZSBy
ZXZva2VkIHRoaXMgZmVhdHVyZS4gSXQncyBhY3R1YWxseQorICAgICAgICBtdWNoIHdvcnNlIHRo
YW4gdGhpcyAtIGJhc2ljYWxseSBhbnkgbG9naWMgb3ZlciBjb250cm9sIGZsb3cgd291bGQgaGF2
ZSB0byBiZSBoYWNrZWQgdG8gZGVhbAorICAgICAgICB3aXRoIHRoZXNlIHVuYnJlYWthYmxlIGVk
Z2VzLiBUaGlzIHdvdWxkIG1lYW4gY2hhbmdpbmcgYWxsIENGRyB0cmFuc2Zvcm1hdGlvbiB1dGls
aXRpZXMgYW5kCisgICAgICAgIHBhc3Nlcy4gV2UgaGF2ZSBhIGxvdCBvZiB0aG9zZSBhbmQgd2Ug
d2FudCBpdCB0byBiZSBlYXN5IHRvIHdyaXRlIG5ldyBvbmVzLgorICAgICAgICAKKyAgICAgICAg
VGhpcyBpcyB3aHkgd2UgdXNlIHNvbWV0aGluZyBuZXcgYW5kIHF1aXRlIGRpZmZlcmVudCBmcm9t
IGNsYXNzaWMgaW5kaXJlY3QganVtcHMuIFBvbHlKdW1wCisgICAgICAgIG1ha2VzIHRoZSBjb250
cm9sIGZsb3cgZWRnZXMgZXhwbGljaXQuIFRoZSBjbGllbnQgbXVzdCBzdXBwbHkgdGhlIHN1Y2Nl
c3NvcnMgd2hlbiBpdCBjcmVhdGVzCisgICAgICAgIHRoZSBQb2x5SnVtcC4gVGhlIGNvbXBpbGVy
IG1heSByZXdpcmUgdGhvc2Ugc3VjY2Vzc29yIGVkZ2VzIHRoZSBzYW1lIHdheSB0aGF0IGl0IHdv
dWxkIHJld2lyZQorICAgICAgICBhbnkgY29udHJvbCBmbG93IGVkZ2VzLiBDb25zZXF1ZW50bHkg
dGhlIHZhc3QgbWFqb3JpdHkgb2YgQ0ZHIHJlYXNvbmluZyBpbiBCMyBpcyB1bmNoYW5nZWQuCisg
ICAgICAgIElmIHlvdSBkb24ndCB3YW50IHRvIHVuZGVyc3RhbmQgUG9seUp1bXAsIGp1c3QgdGhp
bmsgb2YgaXQgbGlrZSB5b3Ugd291bGQgYSBTd2l0Y2ggd2l0aCBhbgorICAgICAgICBvcGFxdWUg
aW5jb21pbmcgdmFsdWUuIFRoaXMgd29ya3MgYmVjYXVzZSB3ZSBkbyBub3QgYWRkIGFueSBub3Rp
b24gb2YgZXNjYXBlZCBiYXNpYyBibG9ja3MuCisgICAgICAgIEluc3RlYWQgb2YgbGV0dGluZyB0
aGUgY2xpZW50IGdldCB0aGUgcG9pbnRlcnMgdG8gYmFzaWMgYmxvY2tzIGJ5IGVzY2FwaW5nIHRo
ZW0gbGlrZSBpbiBMTFZNLAorICAgICAgICB5b3UgY2FuIG9ubHkgZ2V0IHRoZSBwb2ludGVycyBv
ZiB0aGUgc3VjY2Vzc29ycyBvZiBQb2x5SnVtcCBieSByZWdpc3RlcmluZyBhIGNhbGxiYWNrIHdp
dGgKKyAgICAgICAgUG9seUp1bXAuIFRoaXMgY2FsbGJhY2sgZG9lc24ndCBhY3R1YWxseSBnaXZl
IHlvdSB0aGUgYWRkcmVzc2VzIG9mIGJhc2ljIGJsb2Nrcy4gSXQganVzdAorICAgICAgICBnaXZl
cyB5b3UgdGhlIGFkZHJlc3NlcyB3aGVyZSB5b3UgbXVzdCBqdW1wIHRvIHRyYW5zZmVyIGNvbnRy
b2wgZmxvdyBmcm9tIHRoYXQgUG9seUp1bXAgdG8KKyAgICAgICAgaXRzIHN1Y2Nlc3NvcnMuIFRo
aXMgbWVhbnMgdGhhdCB0aGUgbWFnaWMgb2YgUG9seUp1bXAgaXMgY29uZmluZWQgb25seSB0byB0
aGUgUG9seUp1bXAgaXRzZWxmCisgICAgICAgIGFuZCBkb2Vzbid0IGluZmVjdCByZWFzb25pbmcg
YWJvdXQgdGhlIGJhc2ljIGJsb2NrcyB0aGF0IGl0IGp1bXBzIHRvLgorICAgICAgICAKKyAgICAg
ICAgVGhlIG9ubHkgZG93bnNpZGUgaXMgdGhhdCB0aGF0IFBvbHlKdW1wIGlzIG5vdCBjbG9uZWFi
bGUuIFlvdSBjYW4ndCBjbG9uZSBpdCBiZWNhdXNlIGlmIHlvdQorICAgICAgICBkaWQsIHRoZW4g
dGhlIHR3byByZXN1bHRpbmcgUG9seUp1bXBzIG1heSBoYXZlIHRoZWlyIHN1Y2Nlc3NvciBlZGdl
cyByZXdpcmVkIGluZGVwZW5kZW50bHkgb2YKKyAgICAgICAgZWFjaCBvdGhlci4gVGhpcyBjb3Vs
ZCBlYXNpbHkgaGFwcGVuIGlmIHdlIGJyZWFrIGNyaXRpY2FsIGVkZ2VzLiBJZiB0aGF0IGRpZCBo
YXBwZW4gdGhlbiBpdAorICAgICAgICB3b3VsZCBicmVhayB0aGUgY2xpZW50IG9mIFBvbHlKdW1w
OiB0aGV5IHdvdWxkIGhhdmUgYWxyZWFkeSBjcmVhdGVkIHNvbWV0aGluZyBsaWtlIGEganVtcAor
ICAgICAgICB0YWJsZSBhbmQgd2lsbCBiZSBwb3B1bGF0aW5nIGl0IHZpYSB0aGUgY2FsbGJhY2ss
IGJ1dCBub3cgdGhlIGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkIHR3aWNlLAorICAgICAgICBhbmQg
bWF5IHJldHVybiBkaWZmZXJlbnQganVtcCBkZXN0aW5hdGlvbnMgZWFjaCB0aW1lLiBTbywgdGhp
cyBwYXRjaCBpbnRyb2R1Y2VzCisgICAgICAgIFZhbHVlOjppc0Nsb25lYWJsZSgpIGFuZCB0ZWFj
aGVzIGJvdGggb2Ygb3VyIGNvZGUgc3BlY2lhbGl6YXRpb24gb3B0aW1pemF0aW9ucyAodGFpbAor
ICAgICAgICBkdXBsaWNhdGlvbiBhbmQgc2VsZWN0IHNwZWNpYWxpemF0aW9uKSB0byBiYWlsIGlm
IHRoZSBjb2RlIHRoZXkgd2FudCB0byBzcGVjaWFsaXplIGlzIG5vdAorICAgICAgICBjbG9uZWFi
bGUuIFRoaXMgaXMgdG90YWxseSBiZW5pZ24gbW9zdCBvZiB0aGUgdGltZSwgc2luY2UgdGhvc2Ug
b3B0aW1pemF0aW9ucyB1c3VhbGx5IHJ1bgorICAgICAgICBiZWZvcmUgU3dpdGNoIGxvd2VyaW5n
LiBDbGllbnRzIHRoYXQgdXNlIFBvbHlKdW1wIGRpcmVjdGx5IGhhdmUgdG8gYXBwcmVjaWF0ZSB0
aGUgdHJhZGUtb2ZmOgorICAgICAgICBQb2x5SnVtcCBtYXkgZ2FpbiB0aGVtIHNvbWUgcGVyZm9y
bWFuY2UgYnV0IHRoZXkgYXJlIG9wdGluZyBvdXQgb2Ygb3B0aW1pemF0aW9ucyB0aGF0IHVzZQor
ICAgICAgICBjbG9uaW5nLiBBIGNsb3NlIGNvcm9sbGFyeSBvZiB0aGUgbm8tY2xvbmUgcnVsZSBp
cyB0aGF0IHRoZSBjbGllbnQgY2Fubm90IGNyZWF0ZSBtdWx0aXBsZQorICAgICAgICBQb2x5SnVt
cHMgdGhhdCBhcmUgZmVkIGJ5IGEgY29tbW9uIGp1bXAgdGFibGU6IHRoZSBmYWN0IHRoYXQgZWFj
aCBQb2x5SnVtcCBoYXMgYSBjYWxsYmFjaworICAgICAgICB0aGF0IGp1c3QgdGVsbHMgeW91IHRo
ZSBqdW1wIGRlc3RpbmF0aW9ucyBmb3IgaXRzIHN1Y2Nlc3NvciAqZWRnZXMqLCBub3Qgc3VjY2Vz
c29yICpibG9ja3MqLAorICAgICAgICBtZWFucyB0aGF0IGlmIHlvdSBjcmVhdGUgdHdvIFBvbHlK
dW1wcyBhbmQgZ2l2ZSB0aGVtIHRoZSBzYW1lIHN1Y2Nlc3NvciBsaXN0LCB5b3UgYXJlIG5vdAor
ICAgICAgICBndWFyYW50ZWVkIHRoYXQgdGhleSB3aWxsIGdldCB0aGUgc2FtZSBqdW1wIGRlc3Rp
bmF0aW9ucy4gVGhpcyBodXJ0cyBpZiB5b3Ugd2FudCB0byB1c2UKKyAgICAgICAgUG9seUp1bXAg
Zm9yIHRocmVhZGVkIGludGVycHJldGVycyBidXQgaXQncyBoYXJtbGVzcyBmb3Igc3dpdGNoIGxv
d2VyaW5nLiBUaGUgZ29hbCBvZgorICAgICAgICBQb2x5SnVtcCBpcyB0byBiZSBhd2Vzb21lIGZv
ciBzd2l0Y2ggbG93ZXJpbmcgd2hpbGUgbm90IGJyZWFraW5nIHRoZSByZXN0IG9mIHRoZSBjb21w
aWxlciwgc28KKyAgICAgICAgdGhpcyBpcyBwcm9iYWJseSBmaW5lLgorICAgICAgICAKKyAgICAg
ICAgVGhlIGlzQ2xvbmVhYmxlKCkgbWV0aG9kIGN1cnJlbnRseSBvbmx5IHJldHVybnMgdHJ1ZSBm
b3IgUG9seUp1bXAsIGJ1dCBJIGFudGljaXBhdGUgd2Ugd2lsbAorICAgICAgICBhZGQgb3RoZXIg
bm9uLWNsb25lYWJsZSB0aGluZ3MgbGF0ZXIuIEkgdGhpbmsgaXMgaXMgaW5oZXJlbnQgaW4gYSBj
b21waWxlciB0aGF0IGFsbG93cyBzdWNoCisgICAgICAgIGN1c3RvbWl6ZWFiaWxpdHkgZm9yIGl0
cyBjbGllbnRzLiBGb3IgZXhhbXBsZSwgd2UgbWF5IHdhbnQgdG8gYWRkIGEgZmxhZyB0byBQYXRj
aHBvaW50IHRoYXQKKyAgICAgICAgbWFrZXMgaXQgbm9uLWNsb25lYWJsZS4gU29tZXRpbWVzIHdl
IGhhdmUgdG8ganVtcCB0aHJvdWdoIGhvb3BzIGluIHRoZSBGVEwgYmVjYXVzZSBvZiB0aGUKKyAg
ICAgICAgY2xvbmVhYmlsaXR5IG9mIHBhdGNocG9pbnRzLiBUaGlzIGhhcHBlbnMgaW4gT1NSIGV4
aXRzLCB3aGljaCBwYXkgYSBzaWduaWZpY2FudCBtZW1vcnkgY29zdAorICAgICAgICBmb3IgYWRk
aXRpb25hbCBkYXRhIHN0cnVjdHVyZXMgdGhhdCBhcmUgdGhlcmUgaW4gY2FzZSBhbiBleGl0IGdl
dHMgY2xvbmVkLiBJdCBtYXkgYmUgbW9yZQorICAgICAgICBwcm9maXRhYmxlIHRvIGp1c3Qgc2F5
IHRoYXQgT1NSIGV4aXRzIChpLmUuIENoZWNrcyBhbmQgSW52YWxpZGF0aW9uUG9pbnQgUGF0Y2hw
b2ludHMpIGFyZSBub3QKKyAgICAgICAgY2xvbmVhYmxlLiBTdXJlbHkgdGhpcyB3b3VsZCByZWR1
Y2UgdGFpbCBkdXBsaWNhdGlvbiwgYnV0IHRhaWwgZHVwbGljYXRpb24gaXMgbW9zdCBwcm9maXRh
YmxlCisgICAgICAgIHdoZW4gaXQgY2xvbmVzIG9ubHkgYSB0aW55IGFtb3VudCBvZiBjb2RlOyBp
ZiB0aGVyZSdzIGFuIGV4aXQgdGhlbiB3ZSdyZSBub3QgdGFsa2luZyBhYm91dCBhCisgICAgICAg
IHRpbnkgYW1vdW50IG9mIGNvZGUgYW55bW9yZS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaXMg
YSB+MzAlIHNwZWVkLXVwIG9uIG1pY3JvYmVuY2htYXJrcyB0aGF0IGhhdmUgYmlnIHN3aXRjaCBz
dGF0ZW1lbnRzICh+NjAgY2FzZXMpLiBJdCdzCisgICAgICAgIG5vdCBhIHNwZWVkLXVwIG9uIG1h
aW5zdHJlYW0gYmVuY2htYXJrcy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgYWxzbyBhZGRzIGEg
bmV3IHRlc3QgdG8gdGVzdGIzIGZvciBQb2x5SnVtcCwgR2V0LCBhbmQgU2V0LiBUaGUgRlRMIGRv
ZXMgbm90IGN1cnJlbnRseQorICAgICAgICB1c2UgUG9seUp1bXAgZGlyZWN0bHksIGJ1dCB3ZSB3
YW50IHRoaXMgdG8gYmUgcG9zc2libGUuIEl0IGFsc28gZG9lc24ndCB1c2UgR2V0L1NldCBkaXJl
Y3RseQorICAgICAgICBldmVuIHRob3VnaCB3ZSB3YW50IHRoaXMgdG8gYmUgcG9zc2libGUuIEl0
J3MgaW1wb3J0YW50IHRvIHRlc3QgdGhlc2Ugc2luY2Ugb3Bjb2RlcyB0aGF0CisgICAgICAgIHJl
c3VsdCBmcm9tIGxvd2VyaW5nIGRvbid0IGFmZmVjdCBlYXJseSBwaGFzZXMsIHNvIHdlIGNvdWxk
IGhhdmUgcmVncmVzc2lvbnMgaW4gZWFybHkgcGhhc2VzCisgICAgICAgIHJlbGF0ZWQgdG8gdGhl
c2Ugb3Bjb2RlcyB0aGF0IHdvdWxkbid0IGJlIGNhdWdodCBieSBhbnkgSlMgdGVzdC4gU28sIHRo
aXMgYWRkcyBhIHZlcnkgYmFzaWMKKyAgICAgICAgdGhyZWFkZWQgaW50ZXJwcmV0ZXIgdG8gdGVz
dGIzIGZvciBhIEJyYWluZnVjay1zdHlsZSBsYW5ndWFnZSwgYW5kIHRlc3RzIGl0IGJ5IGhhdmlu
ZyBpdCBydW4KKyAgICAgICAgYSBwcm9ncmFtIHRoYXQgcHJpbnRzIHRoZSBudW1iZXJzIDEuLjEw
MCBpbiBhIGxvb3AuIFVubGlrZSBhIHJlYWwgdGhyZWFkZWQgaW50ZXJwcmV0ZXIsIGl0CisgICAg
ICAgIHVzZXMgYSBjb21tb24gZGlzcGF0Y2ggYmxvY2sgcmF0aGVyIHRoYW4gaGF2aW5nIGRpc3Bh
dGNoIGF0IHRoZSB0ZXJtaW51cyBvZiBlYWNoIG9wY29kZS4KKyAgICAgICAgVGhhdCdzIG5lY2Vz
c2FyeSBiZWNhdXNlIFBvbHlKdW1wIGlzIG5vdCBjbG9uZWFibGUuIFRoZSBzdGF0ZSBvZiB0aGUg
aW50ZXJwcmV0ZXIgaXMKKyAgICAgICAgcmVwcmVzZW50ZWQgdXNpbmcgVmFyaWFibGVzIHRoYXQg
d2UgR2V0IGFuZCBTZXQsIHNvIGl0IHRlc3RzIEdldC9TZXQgYXMgd2VsbC4KKworICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9u
Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpqdW1wKToKKyAgICAg
ICAgKiBhc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxl
cjo6am1wX20pOgorICAgICAgICAqIGIzL0IzQmFzaWNCbG9jay5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpCYXNpY0Jsb2NrOjp1cGRhdGVQcmVkZWNlc3NvcnNBZnRlcik6CisgICAgICAgIChKU0M6
OkIzOjpCYXNpY0Jsb2NrOjppc0Nsb25lYWJsZSk6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Js
b2NrOjpkdW1wKToKKyAgICAgICAgKiBiMy9CM0Jhc2ljQmxvY2suaDoKKyAgICAgICAgKEpTQzo6
QjM6OkJhc2ljQmxvY2s6OmZyZXF1ZW5jeSk6CisgICAgICAgICogYjMvQjNDb21tb24uaDoKKyAg
ICAgICAgKEpTQzo6QjM6OmlzNjRCaXQpOgorICAgICAgICAqIGIzL0IzQ29udHJvbFZhbHVlLmg6
CisgICAgICAgICogYjMvQjNEYXRhU2VjdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkIzOjpEYXRh
U2VjdGlvbjo6RGF0YVNlY3Rpb24pOgorICAgICAgICAqIGIzL0IzRHVwbGljYXRlVGFpbHMuY3Bw
OgorICAgICAgICAqIGIzL0IzTG93ZXJNYWNyb3MuY3BwOgorICAgICAgICAqIGIzL0IzTG93ZXJU
b0Fpci5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okxvd2VyVG9BaXI6Omxvd2VyKToKKyAg
ICAgICAgKiBiMy9CM09wY29kZS5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgor
ICAgICAgICAqIGIzL0IzT3Bjb2RlLmg6CisgICAgICAgICogYjMvQjNQb2x5SnVtcFZhbHVlLmNw
cDogQWRkZWQuCisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjp+UG9seUp1bXBWYWx1
ZSk6CisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjphcHBlbmRTdWNjZXNzb3IpOgor
ICAgICAgICAoSlNDOjpCMzo6UG9seUp1bXBWYWx1ZTo6c2V0Q2FsbGJhY2tUYXNrKToKKyAgICAg
ICAgKEpTQzo6QjM6OlBvbHlKdW1wVmFsdWU6OmlzQ2xvbmVhYmxlKToKKyAgICAgICAgKEpTQzo6
QjM6OlBvbHlKdW1wVmFsdWU6OmR1bXBNZXRhKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1w
VmFsdWU6OmNsb25lSW1wbCk6CisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjpQb2x5
SnVtcFZhbHVlKToKKyAgICAgICAgKiBiMy9CM1BvbHlKdW1wVmFsdWUuaDogQWRkZWQuCisgICAg
ICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjphY2NlcHRzKToKKyAgICAgICAgKEpTQzo6QjM6
OlBvbHlKdW1wVmFsdWU6OnNldENhbGxiYWNrKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1w
VmFsdWU6OmNhbGxiYWNrVGFzayk6CisgICAgICAgICogYjMvQjNQcm9jZWR1cmUuY3BwOgorICAg
ICAgICAoSlNDOjpCMzo6UHJvY2VkdXJlOjpjbG9uZSk6CisgICAgICAgICogYjMvQjNQcm9jZWR1
cmUuaDoKKyAgICAgICAgKEpTQzo6QjM6OlByb2NlZHVyZTo6bGFzdFBoYXNlTmFtZSk6CisgICAg
ICAgIChKU0M6OkIzOjpQcm9jZWR1cmU6OmJ5cHJvZHVjdHMpOgorICAgICAgICAqIGIzL0IzUmVk
dWNlU3RyZW5ndGguY3BwOgorICAgICAgICAqIGIzL0IzVmFsaWRhdGUuY3BwOgorICAgICAgICAq
IGIzL0IzVmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6OmVmZmVjdHMpOgorICAg
ICAgICAoSlNDOjpCMzo6VmFsdWU6OmlzQ2xvbmVhYmxlKToKKyAgICAgICAgKEpTQzo6QjM6OlZh
bHVlOjprZXkpOgorICAgICAgICAqIGIzL0IzVmFsdWUuaDoKKyAgICAgICAgKiBiMy9haXIvQWly
Q29kZS5oOgorICAgICAgICAqIGIzL2Fpci9BaXJHZW5lcmF0ZS5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpBaXI6OmdlbmVyYXRlKToKKyAgICAgICAgKiBiMy9haXIvQWlySW5zdC5jcHA6CisgICAg
ICAgIChKU0M6OkIzOjpBaXI6Okluc3Q6Omhhc0FyZ0VmZmVjdHMpOgorICAgICAgICAoSlNDOjpC
Mzo6QWlyOjpJbnN0Ojppc0Nsb25lYWJsZSk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okluc3Q6
OmR1bXApOgorICAgICAgICAqIGIzL2Fpci9BaXJJbnN0Lmg6CisgICAgICAgICogYjMvYWlyL0Fp
ck9wY29kZS5vcGNvZGVzOgorICAgICAgICAqIGIzL3Rlc3RiMy5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpzaG91bGRCZVZlcmJvc2UpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN3aXRjaENoaWxs
RGl2KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RMYXRlUmVnaXN0ZXIpOgorICAgICAgICAoSlND
OjpCMzo6dGhyZWFkZWRJbnRlcnByZXRlclByaW50KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RU
aHJlYWRlZEludGVycHJldGVyKToKKyAgICAgICAgKEpTQzo6QjM6Onplcm8pOgorICAgICAgICAo
SlNDOjpCMzo6cnVuKToKKwogMjAxNi0wNy0wMyAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gRExMcyBhcmUgbWlzc2luZyB2ZXJzaW9uIGluZm9y
bWF0aW9uLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24g
MjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0xNDQsNiArMTQ0LDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAg
ICBiMy9CM1BhdGNocG9pbnRWYWx1ZS5jcHAKICAgICBiMy9CM1BoYXNlU2NvcGUuY3BwCiAgICAg
YjMvQjNQaGlDaGlsZHJlbi5jcHAKKyAgICBiMy9CM1BvbHlKdW1wVmFsdWUuY3BwCiAgICAgYjMv
QjNQcm9jZWR1cmUuY3BwCiAgICAgYjMvQjNQdXJlQ1NFLmNwcAogICAgIGIzL0IzUmVkdWNlRG91
YmxlVG9GbG9hdC5jcHAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lv
biAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNzczLDggKzc3Myw2IEBACiAJ
CTBGRUM4NTEwMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0NjRWYWx1ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZFQzg0QzYxQkRBQ0RBQzAwODBG
Rjc0IC8qIEIzQ29uc3Q2NFZhbHVlLmggKi87IH07CiAJCTBGRUM4NTExMUJEQUNEQUMwMDgwRkY3
NCAvKiBCM0NvbnN0RG91YmxlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEZFQzg0QzcxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29uc3REb3Vi
bGVWYWx1ZS5jcHAgKi87IH07CiAJCTBGRUM4NTEyMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0
RG91YmxlVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGRUM4NEM4MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0RG91YmxlVmFsdWUuaCAqLzsg
fTsKLQkJMEZFQzg1MTMxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29udHJvbFZhbHVlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRUM4NEM5MUJEQUNE
QUMwMDgwRkY3NCAvKiBCM0NvbnRyb2xWYWx1ZS5jcHAgKi87IH07Ci0JCTBGRUM4NTE0MUJEQUNE
QUMwMDgwRkY3NCAvKiBCM0NvbnRyb2xWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEZFQzg0Q0ExQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29udHJv
bFZhbHVlLmggKi87IH07CiAJCTBGRUM4NTE1MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0ZyZXF1ZW5j
eUNsYXNzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGRUM4NENCMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0ZyZXF1ZW5jeUNsYXNzLmNwcCAqLzsgfTsK
IAkJMEZFQzg1MTYxQkRBQ0RBQzAwODBGRjc0IC8qIEIzRnJlcXVlbmN5Q2xhc3MuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRUM4NENDMUJEQUNEQUMw
MDgwRkY3NCAvKiBCM0ZyZXF1ZW5jeUNsYXNzLmggKi87IH07CiAJCTBGRUM4NTE3MUJEQUNEQUMw
MDgwRkY3NCAvKiBCM0ZyZXF1ZW50ZWRCbG9jay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEZFQzg0Q0QxQkRBQ0RBQzAwODBGRjc0IC8qIEIzRnJlcXVl
bnRlZEJsb2NrLmggKi87IH07CkBAIC0xOTk3LDYgKzE5OTUsOSBAQAogCQlEQzY5QUE2NjFDRjdB
MUYyMDBDNjI3MkYgLyogTWF0Y2hSZXN1bHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gREM2OUFBNjUxQ0Y3QTFFRjAwQzYyNzJGIC8qIE1hdGNoUmVz
dWx0LmNwcCAqLzsgfTsKIAkJREM3OTk3ODMxQ0RFOUZBMDAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVy
c01vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERD
Nzk5NzgyMUNERTlGOUUwMDRENEEwOSAvKiBUYWdSZWdpc3RlcnNNb2RlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJREM3OTk3ODQxQ0RFOUZBMjAw
NEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gREM3OTk3ODExQ0RFOUY5RTAwNEQ0QTA5IC8qIFRhZ1JlZ2lz
dGVyc01vZGUuY3BwICovOyB9OworCQlEQzlBMEMxRjFEMkQ5Q0IxMDA4NTEyNEUgLyogQjNDYXNl
Q29sbGVjdGlvbklubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IERDOUEwQzFFMUQyRDk0RUYwMDg1MTI0RSAvKiBCM0Nhc2VDb2xsZWN0aW9uSW5s
aW5lcy5oICovOyB9OworCQlEQzlBMEMyMDFEMkQ5Q0IzMDA4NTEyNEUgLyogQjNDYXNlQ29sbGVj
dGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM5
QTBDMUQxRDJEOTRFRjAwODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rpb24uaCAqLzsgfTsKKwkJREM5
QTBDMjExRDJEOUNCNDAwODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rpb24uY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM5QTBDMUMxRDJEOTRFRjAwODUx
MjRFIC8qIEIzQ2FzZUNvbGxlY3Rpb24uY3BwICovOyB9OwogCQlEQ0VFMjIwOTFDRUI5ODk1MDAw
QzIzOTYgLyogREZHQmFja3dhcmRzQ0ZHLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBEQ0VFMjIwNjFDRUI5ODkwMDAwQzIzOTYgLyogREZHQmFja3dhcmRz
Q0ZHLmggKi87IH07CiAJCURDRUUyMjBBMUNFQjk4OTUwMDBDMjM5NiAvKiBERkdCYWNrd2FyZHNE
b21pbmF0b3JzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBEQ0VFMjIwNzFDRUI5ODkwMDAwQzIzOTYgLyogREZHQmFja3dhcmRzRG9taW5hdG9ycy5oICov
OyB9OwogCQlEQ0VFMjIwQjFDRUI5ODk1MDAwQzIzOTYgLyogREZHQ29udHJvbEVxdWl2YWxlbmNl
QW5hbHlzaXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IERDRUUyMjA4MUNFQjk4OTAwMDBDMjM5NiAvKiBERkdDb250cm9sRXF1aXZhbGVuY2VBbmFseXNp
cy5oICovOyB9OwpAQCAtMjk2NCw4ICsyOTY1LDYgQEAKIAkJMEZFQzg0QzYxQkRBQ0RBQzAwODBG
Rjc0IC8qIEIzQ29uc3Q2NFZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IEIzQ29uc3Q2NFZhbHVlLmg7IHBhdGggPSBiMy9CM0NvbnN0NjRWYWx1ZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwRkVDODRDNzFCREFDREFDMDA4MEZGNzQgLyogQjNDb25zdERv
dWJsZVZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEIzQ29u
c3REb3VibGVWYWx1ZS5jcHA7IHBhdGggPSBiMy9CM0NvbnN0RG91YmxlVmFsdWUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkVDODRDODFCREFDREFDMDA4MEZGNzQgLyogQjND
b25zdERvdWJsZVZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEIzQ29u
c3REb3VibGVWYWx1ZS5oOyBwYXRoID0gYjMvQjNDb25zdERvdWJsZVZhbHVlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGRUM4NEM5MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnRy
b2xWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBCM0NvbnRy
b2xWYWx1ZS5jcHA7IHBhdGggPSBiMy9CM0NvbnRyb2xWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTBGRUM4NENBMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnRyb2xWYWx1
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCM0NvbnRyb2xWYWx1ZS5oOyBw
YXRoID0gYjMvQjNDb250cm9sVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEZFQzg0Q0IxQkRBQ0RBQzAwODBGRjc0IC8qIEIzRnJlcXVlbmN5Q2xhc3MuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQjNGcmVxdWVuY3lDbGFzcy5jcHA7IHBhdGgg
PSBiMy9CM0ZyZXF1ZW5jeUNsYXNzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEZFQzg0Q0MxQkRBQ0RBQzAwODBGRjc0IC8qIEIzRnJlcXVlbmN5Q2xhc3MuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQjNGcmVxdWVuY3lDbGFzcy5oOyBwYXRoID0gYjMvQjNG
cmVxdWVuY3lDbGFzcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkVDODRDRDFC
REFDREFDMDA4MEZGNzQgLyogQjNGcmVxdWVudGVkQmxvY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gQjNGcmVxdWVudGVkQmxvY2suaDsgcGF0aCA9IGIzL0IzRnJlcXVlbnRl
ZEJsb2NrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00MjI1LDYgKzQyMjQsOSBA
QAogCQlEQzY5QUE2NTFDRjdBMUVGMDBDNjI3MkYgLyogTWF0Y2hSZXN1bHQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWF0Y2hSZXN1bHQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlEQzc5OTc4MTFDREU5RjlFMDA0RDRBMDkgLyogVGFnUmVnaXN0
ZXJzTW9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUYWdSZWdp
c3RlcnNNb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREM3OTk3ODIxQ0RF
OUY5RTAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVGFnUmVnaXN0ZXJzTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlEQzlBMEMxQzFEMkQ5NEVGMDA4NTEyNEUgLyogQjNDYXNlQ29sbGVjdGlvbi5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBCM0Nhc2VDb2xsZWN0aW9uLmNwcDsg
cGF0aCA9IGIzL0IzQ2FzZUNvbGxlY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlEQzlBMEMxRDFEMkQ5NEVGMDA4NTEyNEUgLyogQjNDYXNlQ29sbGVjdGlvbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCM0Nhc2VDb2xsZWN0aW9uLmg7IHBhdGggPSBi
My9CM0Nhc2VDb2xsZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCURDOUEw
QzFFMUQyRDk0RUYwMDg1MTI0RSAvKiBCM0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCM0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oOyBwYXRo
ID0gYjMvQjNDYXNlQ29sbGVjdGlvbklubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRENFRTIyMDYxQ0VCOTg5MDAwMEMyMzk2IC8qIERGR0JhY2t3YXJkc0NGRy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdCYWNrd2FyZHNDRkcuaDsgcGF0aCA9IGRm
Zy9ERkdCYWNrd2FyZHNDRkcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRENFRTIy
MDcxQ0VCOTg5MDAwMEMyMzk2IC8qIERGR0JhY2t3YXJkc0RvbWluYXRvcnMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHQmFja3dhcmRzRG9taW5hdG9ycy5oOyBwYXRoID0g
ZGZnL0RGR0JhY2t3YXJkc0RvbWluYXRvcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRENFRTIyMDgxQ0VCOTg5MDAwMEMyMzk2IC8qIERGR0NvbnRyb2xFcXVpdmFsZW5jZUFuYWx5
c2lzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0NvbnRyb2xFcXVpdmFs
ZW5jZUFuYWx5c2lzLmg7IHBhdGggPSBkZmcvREZHQ29udHJvbEVxdWl2YWxlbmNlQW5hbHlzaXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ2OTAsNiArNDY5Miw5IEBACiAJCQkJ
RENGREZCRDcxRDFGNUQ5ODAwRkUzRDcyIC8qIEIzQm90dG9tUHJvdmlkZXIuaCAqLywKIAkJCQkw
RjZCOEFERTFDNEVGRTE3MDA5NjkwNTIgLyogQjNCcmVha0NyaXRpY2FsRWRnZXMuY3BwICovLAog
CQkJCTBGNkI4QURGMUM0RUZFMTcwMDk2OTA1MiAvKiBCM0JyZWFrQ3JpdGljYWxFZGdlcy5oICov
LAorCQkJCURDOUEwQzFDMUQyRDk0RUYwMDg1MTI0RSAvKiBCM0Nhc2VDb2xsZWN0aW9uLmNwcCAq
LywKKwkJCQlEQzlBMEMxRDFEMkQ5NEVGMDA4NTEyNEUgLyogQjNDYXNlQ29sbGVjdGlvbi5oICov
LAorCQkJCURDOUEwQzFFMUQyRDk0RUYwMDg1MTI0RSAvKiBCM0Nhc2VDb2xsZWN0aW9uSW5saW5l
cy5oICovLAogCQkJCTBGMzM4REY3MUJFOTZBQTgwMDEzQzg4RiAvKiBCM0NDYWxsVmFsdWUuY3Bw
ICovLAogCQkJCTBGMzM4REY4MUJFOTZBQTgwMDEzQzg4RiAvKiBCM0NDYWxsVmFsdWUuaCAqLywK
IAkJCQkwRjMzRkNGOTFDMTYyNUJFMDAzMjNGNjcgLyogQjNDRkcuaCAqLywKQEAgLTQ3MTUsOCAr
NDcyMCw2IEBACiAJCQkJMEZFQzg1QjIxQkRFRDk1NzAwODBGRjc0IC8qIEIzQ29uc3RQdHJWYWx1
ZS5oICovLAogCQkJCTBGMzM4REYzMUJFOTNENTUwMDEzQzg4RiAvKiBCM0NvbnN0cmFpbmVkVmFs
dWUuY3BwICovLAogCQkJCTBGMzM4REY0MUJFOTNENTUwMDEzQzg4RiAvKiBCM0NvbnN0cmFpbmVk
VmFsdWUuaCAqLywKLQkJCQkwRkVDODRDOTFCREFDREFDMDA4MEZGNzQgLyogQjNDb250cm9sVmFs
dWUuY3BwICovLAotCQkJCTBGRUM4NENBMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnRyb2xWYWx1
ZS5oICovLAogCQkJCTBGMzM4RTAxMUJGMDI3NkMwMDEzQzg4RiAvKiBCM0RhdGFTZWN0aW9uLmNw
cCAqLywKIAkJCQkwRjMzOEUwMjFCRjAyNzZDMDAxM0M4OEYgLyogQjNEYXRhU2VjdGlvbi5oICov
LAogCQkJCTBGMzNGQ0ZBMUMxNjI1QkUwMDMyM0Y2NyAvKiBCM0RvbWluYXRvcnMuaCAqLywKQEAg
LTcwNjgsNyArNzA3MSw2IEBACiAJCQkJMEZFQzg1MTAxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29u
c3Q2NFZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODUxMjFCREFDREFDMDA4MEZGNzQg
LyogQjNDb25zdERvdWJsZVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODVCMzFCREVE
OTU3MDA4MEZGNzQgLyogQjNDb25zdFB0clZhbHVlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkVD
ODUxNDFCREFDREFDMDA4MEZGNzQgLyogQjNDb250cm9sVmFsdWUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGRUM4NUMxMUJFMTY3QTAwMDgwRkY3NCAvKiBCM0VmZmVjdHMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGRUM4NTE2MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0ZyZXF1ZW5jeUNsYXNzLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRjYxODMyRjFDNDVCRjA3MDA3MjQ1MEIgLyogQWlyTG93ZXJBZnRl
clJlZ0FsbG9jLmggaW4gSGVhZGVycyAqLywKQEAgLTcyMjUsNiArNzIyNyw3IEBACiAJCQkJQkMx
OEMzRkIwRTE2RjVDRDAwQjM0NDYwIC8qIERlYnVnZ2VyQ2FsbEZyYW1lLmggaW4gSGVhZGVycyAq
LywKIAkJCQk2QUQyQ0I0RDE5QjkxNDAxMDAwNjU3MTkgLyogRGVidWdnZXJFdmFsRW5hYmxlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRkVBMDg2MjExODJCN0EwNDAwRjZEODUxIC8qIERlYnVnZ2Vy
UHJpbWl0aXZlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJREM5QTBDMUYxRDJEOUNCMTAwODUxMjRF
IC8qIEIzQ2FzZUNvbGxlY3Rpb25JbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJENERE
RTE5ODMyRDM0MDA3RDRCMTkgLyogRGVidWdnZXJTY29wZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEYxMzZENEQxNzRBRDY5RTAwNzVCMzU0IC8qIERlZmVyR0MuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGQzcxMkRGMTdDRDg3N0MwMDhDQzkzQyAvKiBEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2su
aCBpbiBIZWFkZXJzICovLApAQCAtNzQ3OCw2ICs3NDgxLDcgQEAKIAkJCQkwRkUwRTRBRTFDMjRD
OTRBMDAyRTE3QjYgLyogQWlyVG1wV2lkdGguaCBpbiBIZWFkZXJzICovLAogCQkJCUE3RjI5OTZD
MTdBMEJCNjcwMDEwNDE3QSAvKiBGVExGYWlsLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVBMEEy
QzE3MEI2NjE5MDBCQjcyMkMgLyogRlRMRm9ybWF0dGVkVmFsdWUuaCBpbiBIZWFkZXJzICovLAor
CQkJCURDOUEwQzIwMUQyRDlDQjMwMDg1MTI0RSAvKiBCM0Nhc2VDb2xsZWN0aW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRkQ4QTMxQTE3RDUxRjIyMDBDQTJDNDAgLyogRlRMRm9yT1NSRW50cnlK
SVRDb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzhBOTc3RjE3OTczOEQ1MDA5REY3NDQgLyog
RlRMR2VuZXJhdGVkRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUEwQTBFMTcwNTEz
REIwMEJCNzIyQyAvKiBGVExKSVRDb2RlLmggaW4gSGVhZGVycyAqLywKQEAgLTg3MTEsNyArODcx
NSw2IEBACiAJCQkJNDM2RTU0NTQxQzQ2OEU3NzAwQjVBRjczIC8qIEIzTGVnYWxpemVNZW1vcnlP
ZmZzZXRzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRUM4NTBGMUJEQUNEQUMwMDgwRkY3NCAv
KiBCM0NvbnN0NjRWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkVDODUxMTFCREFDREFD
MDA4MEZGNzQgLyogQjNDb25zdERvdWJsZVZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBG
RUM4NTEzMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnRyb2xWYWx1ZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwRkVDODVDNTFCRTE2RjVBMDA4MEZGNzQgLyogQjNFZmZlY3RzLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGRUM4NTE1MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0ZyZXF1ZW5jeUNsYXNz
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRUM4NTE4MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0dl
bmVyYXRlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtOTE1Niw2ICs5MTU5LDcgQEAKIAkJCQkxNDdG
MzlEMjEwN0VDMzc2MDA0MjdBNDggLyogSlNHbG9iYWxPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQTVGRDAwODUxODlCMUI3RTAwNjMzMjMxIC8qIEpTR2xvYmFsT2JqZWN0Q29uc29sZUFn
ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1QzNBMUE1MThDMDQ5MDIwMEM5NTkzQSAvKiBK
U0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJREM5QTBD
MjExRDJEOUNCNDAwODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQTU5NDU1OTIxODI0NzQ0NzAwQ0MzODQzIC8qIEpTR2xvYmFsT2JqZWN0RGVidWdnYWJs
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTdEMjNFOTE4OTFCMDc3MDAzMUM3RkEgLyogSlNH
bG9iYWxPYmplY3REZWJ1Z2dlckFnZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0RTlEMTdC
MTA3RUM0NjkwMDREREEyMSAvKiBKU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAgaW4gU291cmNl
cyAqLywKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJBUk02NC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJBUk02NC5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAkod29ya2luZyBjb3B5KQpA
QCAtMjg3NCw2ICsyODc0LDEyIEBAIHB1YmxpYzoKICAgICAgICAgbG9hZDY0KGFkZHJlc3MsIGdl
dENhY2hlZERhdGFUZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUoKSk7CiAgICAgICAgIG1fYXNz
ZW1ibGVyLmJyKGRhdGFUZW1wUmVnaXN0ZXIpOwogICAgIH0KKyAgICAKKyAgICB2b2lkIGp1bXAo
QmFzZUluZGV4IGFkZHJlc3MpCisgICAgeworICAgICAgICBsb2FkNjQoYWRkcmVzcywgZ2V0Q2Fj
aGVkRGF0YVRlbXBSZWdpc3RlcklEQW5kSW52YWxpZGF0ZSgpKTsKKyAgICAgICAgbV9hc3NlbWJs
ZXIuYnIoZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgfQogCiAgICAgdm9pZCBqdW1wKEFic29sdXRl
QWRkcmVzcyBhZGRyZXNzKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgJKHJldmlzaW9u
IDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJYODZDb21tb24uaAkod29ya2luZyBjb3B5KQpAQCAtMjI2Myw2ICsyMjYzLDEyIEBAIHB1Ymxp
YzoKICAgICAgICAgbV9hc3NlbWJsZXIuam1wX20oYWRkcmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFz
ZSk7CiAgICAgfQogCisgICAgLy8gQWRkcmVzcyBpcyBhIG1lbW9yeSBsb2NhdGlvbiBjb250YWlu
aW5nIHRoZSBhZGRyZXNzIHRvIGp1bXAgdG8KKyAgICB2b2lkIGp1bXAoQmFzZUluZGV4IGFkZHJl
c3MpCisgICAgeworICAgICAgICBtX2Fzc2VtYmxlci5qbXBfbShhZGRyZXNzLm9mZnNldCwgYWRk
cmVzcy5iYXNlLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKKyAgICB9CisKIAogICAg
IC8vIEFyaXRobWV0aWMgY29udHJvbCBmbG93IG9wZXJhdGlvbnM6CiAgICAgLy8KSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaAkocmV2aXNp
b24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJs
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTk4Myw2ICsxOTgzLDExIEBAIHB1YmxpYzoKICAgICAg
ICAgbV9mb3JtYXR0ZXIub25lQnl0ZU9wKE9QX0dST1VQNV9FdiwgR1JPVVA1X09QX0pNUE4sIGJh
c2UsIG9mZnNldCk7CiAgICAgfQogICAgIAorICAgIHZvaWQgam1wX20oaW50IG9mZnNldCwgUmVn
aXN0ZXJJRCBiYXNlLCBSZWdpc3RlcklEIGluZGV4LCBpbnQgc2NhbGUpCisgICAgeworICAgICAg
ICBtX2Zvcm1hdHRlci5vbmVCeXRlT3AoT1BfR1JPVVA1X0V2LCBHUk9VUDVfT1BfSk1QTiwgYmFz
ZSwgaW5kZXgsIHNjYWxlLCBvZmZzZXQpOworICAgIH0KKyAgICAKICNpZiAhQ1BVKFg4Nl82NCkK
ICAgICB2b2lkIGptcF9tKGNvbnN0IHZvaWQqIGFkZHJlc3MpCiAgICAgewpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2suY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMCw3ICszMCw2IEBACiAKICNpbmNsdWRlICJCM0Jhc2ljQmxvY2tJbmxpbmVzLmgiCiAj
aW5jbHVkZSAiQjNCYXNpY0Jsb2NrVXRpbHMuaCIKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5o
IgogI2luY2x1ZGUgIkIzUHJvY2VkdXJlLmgiCiAjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIK
ICNpbmNsdWRlIDx3dGYvTGlzdER1bXAuaD4KQEAgLTUyLDEyICs1MSwxNCBAQCBCYXNpY0Jsb2Nr
Ojp+QmFzaWNCbG9jaygpCiB2b2lkIEJhc2ljQmxvY2s6OmFwcGVuZChWYWx1ZSogdmFsdWUpCiB7
CiAgICAgbV92YWx1ZXMuYXBwZW5kKHZhbHVlKTsKKyAgICB2YWx1ZS0+b3duZXIgPSB0aGlzOwog
fQogCiB2b2lkIEJhc2ljQmxvY2s6OmFwcGVuZE5vblRlcm1pbmFsKFZhbHVlKiB2YWx1ZSkKIHsK
ICAgICBtX3ZhbHVlcy5hcHBlbmQobV92YWx1ZXMubGFzdCgpKTsKICAgICBtX3ZhbHVlc1ttX3Zh
bHVlcy5zaXplKCkgLSAxXSA9IHZhbHVlOworICAgIHZhbHVlLT5vd25lciA9IHRoaXM7CiB9CiAK
IHZvaWQgQmFzaWNCbG9jazo6cmVtb3ZlTGFzdChQcm9jZWR1cmUmIHByb2MpCkBAIC04NCw5ICs4
NSw0MSBAQCBWYWx1ZSogQmFzaWNCbG9jazo6YXBwZW5kSW50Q29uc3RhbnQoUHJvCiAgICAgcmV0
dXJuIGFwcGVuZEludENvbnN0YW50KHByb2MsIGxpa2VWYWx1ZS0+b3JpZ2luKCksIGxpa2VWYWx1
ZS0+dHlwZSgpLCB2YWx1ZSk7CiB9CiAKK3ZvaWQgQmFzaWNCbG9jazo6Y2xlYXJTdWNjZXNzb3Jz
KCkKK3sKKyAgICBtX3N1Y2Nlc3NvcnMuY2xlYXIoKTsKK30KKwordm9pZCBCYXNpY0Jsb2NrOjph
cHBlbmRTdWNjZXNzb3IoY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YXJnZXQpCit7CisgICAgbV9z
dWNjZXNzb3JzLmFwcGVuZCh0YXJnZXQpOworfQorCit2b2lkIEJhc2ljQmxvY2s6OnNldFN1Y2Nl
c3NvcnMoY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YXJnZXQpCit7CisgICAgbV9zdWNjZXNzb3Jz
LnJlc2l6ZSgxKTsKKyAgICBtX3N1Y2Nlc3NvcnNbMF0gPSB0YXJnZXQ7Cit9CisKK3ZvaWQgQmFz
aWNCbG9jazo6c2V0U3VjY2Vzc29ycyhjb25zdCBGcmVxdWVudGVkQmxvY2smIHRha2VuLCBjb25z
dCBGcmVxdWVudGVkQmxvY2smIG5vdFRha2VuKQoreworICAgIG1fc3VjY2Vzc29ycy5yZXNpemUo
Mik7CisgICAgbV9zdWNjZXNzb3JzWzBdID0gdGFrZW47CisgICAgbV9zdWNjZXNzb3JzWzFdID0g
bm90VGFrZW47Cit9CisKIGJvb2wgQmFzaWNCbG9jazo6cmVwbGFjZVN1Y2Nlc3NvcihCYXNpY0Js
b2NrKiBmcm9tLCBCYXNpY0Jsb2NrKiB0bykKIHsKLSAgICByZXR1cm4gbGFzdCgpLT5hczxDb250
cm9sVmFsdWU+KCktPnJlcGxhY2VTdWNjZXNzb3IoZnJvbSwgdG8pOworICAgIGJvb2wgcmVzdWx0
ID0gZmFsc2U7CisgICAgZm9yIChCYXNpY0Jsb2NrKiYgc3VjY2Vzc29yIDogc3VjY2Vzc29yQmxv
Y2tzKCkpIHsKKyAgICAgICAgaWYgKHN1Y2Nlc3NvciA9PSBmcm9tKSB7CisgICAgICAgICAgICBz
dWNjZXNzb3IgPSB0bzsKKyAgICAgICAgICAgIHJlc3VsdCA9IHRydWU7CisgICAgICAgICAgICAK
KyAgICAgICAgICAgIC8vIEtlZXAgbG9vcGluZyBiZWNhdXNlIGEgc3VjY2Vzc29yIG1heSBiZSBt
ZW50aW9uZWQgbXVsdGlwbGUgdGltZXMsIGxpa2UgaW4gYSBTd2l0Y2guCisgICAgICAgIH0KKyAg
ICB9CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogYm9vbCBCYXNpY0Jsb2NrOjphZGRQcmVkZWNl
c3NvcihCYXNpY0Jsb2NrKiBibG9jaykKQEAgLTEyMSw2ICsxNTQsNDIgQEAgdm9pZCBCYXNpY0Js
b2NrOjpkZWVwRHVtcChjb25zdCBQcm9jZWR1cgogICAgICAgICBvdXQucHJpbnQoIiAgUHJlZGVj
ZXNzb3JzOiAiLCBwb2ludGVyTGlzdER1bXAocHJlZGVjZXNzb3JzKCkpLCAiXG4iKTsKICAgICBm
b3IgKFZhbHVlKiB2YWx1ZSA6ICp0aGlzKQogICAgICAgICBvdXQucHJpbnQoIiAgICAiLCBCMzo6
ZGVlcER1bXAocHJvYywgdmFsdWUpLCAiXG4iKTsKKyAgICBpZiAoc3VjY2Vzc29ycygpLnNpemUo
KSkgeworICAgICAgICBvdXQucHJpbnQoIiAgU3VjY2Vzc29yczogIik7CisgICAgICAgIGlmIChz
aXplKCkpCisgICAgICAgICAgICBsYXN0KCktPmR1bXBTdWNjZXNzb3JzKHRoaXMsIG91dCk7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIG91dC5wcmludChsaXN0RHVtcChzdWNjZXNzb3JzKCkp
KTsKKyAgICAgICAgb3V0LnByaW50KCJcbiIpOworICAgIH0KK30KKworVmFsdWUqIEJhc2ljQmxv
Y2s6OmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShQcm9jZWR1cmUmIHByb2MsIE9wY29kZSBvcGNvZGUs
IE9yaWdpbiBvcmlnaW4pCit7CisgICAgUkVMRUFTRV9BU1NFUlQob3Bjb2RlID09IE9vcHMpOwor
ICAgIGNsZWFyU3VjY2Vzc29ycygpOworICAgIHJldHVybiBhcHBlbmROZXc8VmFsdWU+KHByb2Ms
IG9wY29kZSwgb3JpZ2luKTsKK30KKworVmFsdWUqIEJhc2ljQmxvY2s6OmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShQcm9jZWR1cmUmIHByb2MsIE9wY29kZSBvcGNvZGUsIE9yaWdpbiBvcmlnaW4sIFZh
bHVlKiB2YWx1ZSkKK3sKKyAgICBSRUxFQVNFX0FTU0VSVChvcGNvZGUgPT0gUmV0dXJuKTsKKyAg
ICBjbGVhclN1Y2Nlc3NvcnMoKTsKKyAgICByZXR1cm4gYXBwZW5kTmV3PFZhbHVlPihwcm9jLCBv
cGNvZGUsIG9yaWdpbiwgdmFsdWUpOworfQorCitWYWx1ZSogQmFzaWNCbG9jazo6YXBwZW5kTmV3
Q29udHJvbFZhbHVlKFByb2NlZHVyZSYgcHJvYywgT3Bjb2RlIG9wY29kZSwgT3JpZ2luIG9yaWdp
biwgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YXJnZXQpCit7CisgICAgUkVMRUFTRV9BU1NFUlQo
b3Bjb2RlID09IEp1bXApOworICAgIHNldFN1Y2Nlc3NvcnModGFyZ2V0KTsKKyAgICByZXR1cm4g
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBvcGNvZGUsIG9yaWdpbik7Cit9CisKK1ZhbHVlKiBCYXNp
Y0Jsb2NrOjphcHBlbmROZXdDb250cm9sVmFsdWUoUHJvY2VkdXJlJiBwcm9jLCBPcGNvZGUgb3Bj
b2RlLCBPcmlnaW4gb3JpZ2luLCBWYWx1ZSogcHJlZGljYXRlLCBjb25zdCBGcmVxdWVudGVkQmxv
Y2smIHRha2VuLCBjb25zdCBGcmVxdWVudGVkQmxvY2smIG5vdFRha2VuKQoreworICAgIFJFTEVB
U0VfQVNTRVJUKG9wY29kZSA9PSBCcmFuY2gpOworICAgIHNldFN1Y2Nlc3NvcnModGFrZW4sIG5v
dFRha2VuKTsKKyAgICByZXR1cm4gYXBwZW5kTmV3PFZhbHVlPihwcm9jLCBvcGNvZGUsIG9yaWdp
biwgcHJlZGljYXRlKTsKIH0KIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAg
LTQ3LDcgKzQ3LDcgQEAgY2xhc3MgQmFzaWNCbG9jayB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBW
ZWN0b3I8VmFsdWUqPiBWYWx1ZUxpc3Q7CiAgICAgdHlwZWRlZiBWZWN0b3I8QmFzaWNCbG9jayos
IDI+IFByZWRlY2Vzc29yTGlzdDsKLSAgICB0eXBlZGVmIFZlY3RvcjxGcmVxdWVudGVkQmxvY2ss
IDI+IFN1Y2Nlc3Nvckxpc3Q7IC8vIFRoaXMgbWF0Y2hlcyBDb250cm9sVmFsdWU6OlN1Y2Nlc3Nv
ckxpc3QKKyAgICB0eXBlZGVmIFZlY3RvcjxGcmVxdWVudGVkQmxvY2ssIDI+IFN1Y2Nlc3Nvckxp
c3Q7CiAKICAgICBzdGF0aWMgY29uc3QgY2hhciogY29uc3QgZHVtcFByZWZpeDsKIApAQCAtNzUs
MzAgKzc1LDUxIEBAIHB1YmxpYzoKICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIHJlcGxhY2VM
YXN0KFByb2NlZHVyZSYsIFZhbHVlKik7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBWYWx1ZVR5
cGUsIHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KLSAgICBWYWx1ZVR5cGUqIGFwcGVuZE5ldyhQcm9j
ZWR1cmUmLCBBcmd1bWVudHMuLi4pOworICAgIFZhbHVlVHlwZSogYXBwZW5kTmV3KFByb2NlZHVy
ZSYsIEFyZ3VtZW50cyYmLi4uKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBWYWx1ZVR5cGUsIHR5
cGVuYW1lLi4uIEFyZ3VtZW50cz4KLSAgICBWYWx1ZVR5cGUqIGFwcGVuZE5ld05vblRlcm1pbmFs
KFByb2NlZHVyZSYsIEFyZ3VtZW50cy4uLik7Ci0KKyAgICBWYWx1ZVR5cGUqIGFwcGVuZE5ld05v
blRlcm1pbmFsKFByb2NlZHVyZSYsIEFyZ3VtZW50cyYmLi4uKTsKKyAgICAKICAgICBKU19FWFBP
UlRfUFJJVkFURSBWYWx1ZSogYXBwZW5kSW50Q29uc3RhbnQoUHJvY2VkdXJlJiwgT3JpZ2luLCBU
eXBlLCBpbnQ2NF90IHZhbHVlKTsKICAgICBWYWx1ZSogYXBwZW5kSW50Q29uc3RhbnQoUHJvY2Vk
dXJlJiwgVmFsdWUqIGxpa2VWYWx1ZSwgaW50NjRfdCB2YWx1ZSk7CiAKICAgICB2b2lkIHJlbW92
ZUxhc3QoUHJvY2VkdXJlJik7CiAgICAgCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVmFsdWVUeXBl
LCB0eXBlbmFtZS4uLiBBcmd1bWVudHM+Ci0gICAgVmFsdWVUeXBlKiByZXBsYWNlTGFzdFdpdGhO
ZXcoUHJvY2VkdXJlJiwgQXJndW1lbnRzLi4uKTsKKyAgICBWYWx1ZVR5cGUqIHJlcGxhY2VMYXN0
V2l0aE5ldyhQcm9jZWR1cmUmLCBBcmd1bWVudHMmJi4uLik7CiAKLSAgICB1bnNpZ25lZCBudW1T
dWNjZXNzb3JzKCkgY29uc3Q7Ci0gICAgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBzdWNjZXNzb3Io
dW5zaWduZWQgaW5kZXgpIGNvbnN0OwotICAgIEZyZXF1ZW50ZWRCbG9jayYgc3VjY2Vzc29yKHVu
c2lnbmVkIGluZGV4KTsKLSAgICBjb25zdCBTdWNjZXNzb3JMaXN0JiBzdWNjZXNzb3JzKCkgY29u
c3Q7Ci0gICAgU3VjY2Vzc29yTGlzdCYgc3VjY2Vzc29ycygpOwotCi0gICAgQmFzaWNCbG9jayog
c3VjY2Vzc29yQmxvY2sodW5zaWduZWQgaW5kZXgpIGNvbnN0OwotICAgIEJhc2ljQmxvY2sqJiBz
dWNjZXNzb3JCbG9jayh1bnNpZ25lZCBpbmRleCk7Ci0gICAgU3VjY2Vzc29yQ29sbGVjdGlvbjxC
YXNpY0Jsb2NrLCBTdWNjZXNzb3JMaXN0PiBzdWNjZXNzb3JCbG9ja3MoKTsKLSAgICBTdWNjZXNz
b3JDb2xsZWN0aW9uPGNvbnN0IEJhc2ljQmxvY2ssIGNvbnN0IFN1Y2Nlc3Nvckxpc3Q+IHN1Y2Nl
c3NvckJsb2NrcygpIGNvbnN0OworICAgIHVuc2lnbmVkIG51bVN1Y2Nlc3NvcnMoKSBjb25zdCB7
IHJldHVybiBtX3N1Y2Nlc3NvcnMuc2l6ZSgpOyB9CisgICAgY29uc3QgRnJlcXVlbnRlZEJsb2Nr
JiBzdWNjZXNzb3IodW5zaWduZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fc3VjY2Vzc29yc1tp
bmRleF07IH0KKyAgICBGcmVxdWVudGVkQmxvY2smIHN1Y2Nlc3Nvcih1bnNpZ25lZCBpbmRleCkg
eyByZXR1cm4gbV9zdWNjZXNzb3JzW2luZGV4XTsgfQorICAgIGNvbnN0IFN1Y2Nlc3Nvckxpc3Qm
IHN1Y2Nlc3NvcnMoKSBjb25zdCB7IHJldHVybiBtX3N1Y2Nlc3NvcnM7IH0KKyAgICBTdWNjZXNz
b3JMaXN0JiBzdWNjZXNzb3JzKCkgeyByZXR1cm4gbV9zdWNjZXNzb3JzOyB9CisgICAgCisgICAg
dm9pZCBjbGVhclN1Y2Nlc3NvcnMoKTsKKyAgICB2b2lkIGFwcGVuZFN1Y2Nlc3Nvcihjb25zdCBG
cmVxdWVudGVkQmxvY2smKTsKKyAgICB2b2lkIHNldFN1Y2Nlc3NvcnMoY29uc3QgRnJlcXVlbnRl
ZEJsb2NrJik7CisgICAgdm9pZCBzZXRTdWNjZXNzb3JzKGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYs
IGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYpOworCisgICAgQmFzaWNCbG9jayogc3VjY2Vzc29yQmxv
Y2sodW5zaWduZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIHN1Y2Nlc3NvcihpbmRleCkuYmxvY2so
KTsgfQorICAgIEJhc2ljQmxvY2sqJiBzdWNjZXNzb3JCbG9jayh1bnNpZ25lZCBpbmRleCkgeyBy
ZXR1cm4gc3VjY2Vzc29yKGluZGV4KS5ibG9jaygpOyB9CisgICAgU3VjY2Vzc29yQ29sbGVjdGlv
bjxCYXNpY0Jsb2NrLCBTdWNjZXNzb3JMaXN0PiBzdWNjZXNzb3JCbG9ja3MoKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIFN1Y2Nlc3NvckNvbGxlY3Rpb248QmFzaWNCbG9jaywgU3VjY2Vzc29yTGlz
dD4oc3VjY2Vzc29ycygpKTsKKyAgICB9CisgICAgU3VjY2Vzc29yQ29sbGVjdGlvbjxjb25zdCBC
YXNpY0Jsb2NrLCBjb25zdCBTdWNjZXNzb3JMaXN0PiBzdWNjZXNzb3JCbG9ja3MoKSBjb25zdAor
ICAgIHsKKyAgICAgICAgcmV0dXJuIFN1Y2Nlc3NvckNvbGxlY3Rpb248Y29uc3QgQmFzaWNCbG9j
aywgU3VjY2Vzc29yTGlzdD4oc3VjY2Vzc29ycygpKTsKKyAgICB9CiAKICAgICBib29sIHJlcGxh
Y2VTdWNjZXNzb3IoQmFzaWNCbG9jayogZnJvbSwgQmFzaWNCbG9jayogdG8pOworICAgIAorICAg
IC8vIFRoaXMgaXMgb25seSB2YWxpZCBmb3IgSnVtcCBhbmQgQnJhbmNoLgorICAgIGNvbnN0IEZy
ZXF1ZW50ZWRCbG9jayYgdGFrZW4oKSBjb25zdDsKKyAgICBGcmVxdWVudGVkQmxvY2smIHRha2Vu
KCk7CisgICAgLy8gVGhpcyBpcyBvbmx5IHZhbGlkIGZvciBCcmFuY2guCisgICAgY29uc3QgRnJl
cXVlbnRlZEJsb2NrJiBub3RUYWtlbigpIGNvbnN0OworICAgIEZyZXF1ZW50ZWRCbG9jayYgbm90
VGFrZW4oKSBjb25zdDsKKyAgICAvLyBUaGlzIGlzIG9ubHkgdmFsaWQgZm9yIEJyYW5jaCBhbmQg
U3dpdGNoLgorICAgIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgZmFsbFRocm91Z2goKSBjb25zdDsK
KyAgICBGcmVxdWVudGVkQmxvY2smIGZhbGxUaHJvdWdoKCkgY29uc3Q7CiAKICAgICB1bnNpZ25l
ZCBudW1QcmVkZWNlc3NvcnMoKSBjb25zdCB7IHJldHVybiBtX3ByZWRlY2Vzc29ycy5zaXplKCk7
IH0KICAgICBCYXNpY0Jsb2NrKiBwcmVkZWNlc3Nvcih1bnNpZ25lZCBpbmRleCkgY29uc3QgeyBy
ZXR1cm4gbV9wcmVkZWNlc3NvcnNbaW5kZXhdOyB9CkBAIC0xMTUsMTAgKzEzNiwyMyBAQCBwdWJs
aWM6CiAgICAgdm9pZCB1cGRhdGVQcmVkZWNlc3NvcnNBZnRlcigpOwogCiAgICAgZG91YmxlIGZy
ZXF1ZW5jeSgpIGNvbnN0IHsgcmV0dXJuIG1fZnJlcXVlbmN5OyB9Ci0KKyAgICAKICAgICB2b2lk
IGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKICAgICB2b2lkIGRlZXBEdW1wKGNvbnN0IFByb2Nl
ZHVyZSYsIFByaW50U3RyZWFtJikgY29uc3Q7CiAKKyAgICAvLyBUaGVzZSBhcmUgZGVwcmVjYXRl
ZCBtZXRob2QgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCB0aGUgb2xkIENvbnRyb2xWYWx1ZSBjbGFz
cy4gRG9uJ3QgdXNlIHRoZW0KKyAgICAvLyBpbiBuZXcgY29kZS4KKyAgICAvLyBGSVhNRTogaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTQ0MAorICAgIAorICAgIC8v
IFVzZSB0aGlzIGZvciBPb3BzLgorICAgIEpTX0VYUE9SVF9QUklWQVRFIFZhbHVlKiBhcHBlbmRO
ZXdDb250cm9sVmFsdWUoUHJvY2VkdXJlJiwgT3Bjb2RlLCBPcmlnaW4pOworICAgIC8vIFVzZSB0
aGlzIGZvciBSZXR1cm4uCisgICAgSlNfRVhQT1JUX1BSSVZBVEUgVmFsdWUqIGFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShQcm9jZWR1cmUmLCBPcGNvZGUsIE9yaWdpbiwgVmFsdWUqKTsKKyAgICAvLyBV
c2UgdGhpcyBmb3IgSnVtcC4KKyAgICBKU19FWFBPUlRfUFJJVkFURSBWYWx1ZSogYXBwZW5kTmV3
Q29udHJvbFZhbHVlKFByb2NlZHVyZSYsIE9wY29kZSwgT3JpZ2luLCBjb25zdCBGcmVxdWVudGVk
QmxvY2smKTsKKyAgICAvLyBVc2UgdGhpcyBmb3IgQnJhbmNoLgorICAgIEpTX0VYUE9SVF9QUklW
QVRFIFZhbHVlKiBhcHBlbmROZXdDb250cm9sVmFsdWUoUHJvY2VkdXJlJiwgT3Bjb2RlLCBPcmln
aW4sIFZhbHVlKiwgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiwgY29uc3QgRnJlcXVlbnRlZEJsb2Nr
Jik7CisgICAgCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBCbG9ja0luc2VydGlvblNldDsK
ICAgICBmcmllbmQgY2xhc3MgSW5zZXJ0aW9uU2V0OwpAQCAtMTMwLDYgKzE2NCw3IEBAIHByaXZh
dGU6CiAgICAgdW5zaWduZWQgbV9pbmRleDsKICAgICBWYWx1ZUxpc3QgbV92YWx1ZXM7CiAgICAg
UHJlZGVjZXNzb3JMaXN0IG1fcHJlZGVjZXNzb3JzOworICAgIFN1Y2Nlc3Nvckxpc3QgbV9zdWNj
ZXNzb3JzOwogICAgIGRvdWJsZSBtX2ZyZXF1ZW5jeTsKIH07CiAKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2tJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9ja0lubGluZXMuaAkocmV2aXNpb24gMjAyODA5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9ja0lubGluZXMuaAkod29y
a2luZyBjb3B5KQpAQCAtMjksNzggKzI5LDY4IEBACiAjaWYgRU5BQkxFKEIzX0pJVCkKIAogI2lu
Y2x1ZGUgIkIzQmFzaWNCbG9jay5oIgotI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCiAjaW5j
bHVkZSAiQjNQcm9jZWR1cmVJbmxpbmVzLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
QjMgewogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWYWx1ZVR5cGUsIHR5cGVuYW1lLi4uIEFyZ3VtZW50
cz4KLVZhbHVlVHlwZSogQmFzaWNCbG9jazo6YXBwZW5kTmV3KFByb2NlZHVyZSYgcHJvY2VkdXJl
LCBBcmd1bWVudHMuLi4gYXJndW1lbnRzKQorVmFsdWVUeXBlKiBCYXNpY0Jsb2NrOjphcHBlbmRO
ZXcoUHJvY2VkdXJlJiBwcm9jZWR1cmUsIEFyZ3VtZW50cyYmLi4uIGFyZ3VtZW50cykKIHsKLSAg
ICBWYWx1ZVR5cGUqIHJlc3VsdCA9IHByb2NlZHVyZS5hZGQ8VmFsdWVUeXBlPihhcmd1bWVudHMu
Li4pOworICAgIFZhbHVlVHlwZSogcmVzdWx0ID0gcHJvY2VkdXJlLmFkZDxWYWx1ZVR5cGU+KHN0
ZDo6Zm9yd2FyZDxBcmd1bWVudHM+KGFyZ3VtZW50cykuLi4pOwogICAgIGFwcGVuZChyZXN1bHQp
OwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwg
dHlwZW5hbWUuLi4gQXJndW1lbnRzPgotVmFsdWVUeXBlKiBCYXNpY0Jsb2NrOjphcHBlbmROZXdO
b25UZXJtaW5hbChQcm9jZWR1cmUmIHByb2NlZHVyZSwgQXJndW1lbnRzLi4uIGFyZ3VtZW50cykK
K1ZhbHVlVHlwZSogQmFzaWNCbG9jazo6YXBwZW5kTmV3Tm9uVGVybWluYWwoUHJvY2VkdXJlJiBw
cm9jZWR1cmUsIEFyZ3VtZW50cyYmLi4uIGFyZ3VtZW50cykKIHsKLSAgICBWYWx1ZVR5cGUqIHJl
c3VsdCA9IHByb2NlZHVyZS5hZGQ8VmFsdWVUeXBlPihhcmd1bWVudHMuLi4pOworICAgIFZhbHVl
VHlwZSogcmVzdWx0ID0gcHJvY2VkdXJlLmFkZDxWYWx1ZVR5cGU+KHN0ZDo6Zm9yd2FyZDxBcmd1
bWVudHM+KGFyZ3VtZW50cykuLi4pOwogICAgIGFwcGVuZE5vblRlcm1pbmFsKHJlc3VsdCk7CiAg
ICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVmFsdWVUeXBlLCB0eXBl
bmFtZS4uLiBBcmd1bWVudHM+Ci1WYWx1ZVR5cGUqIEJhc2ljQmxvY2s6OnJlcGxhY2VMYXN0V2l0
aE5ldyhQcm9jZWR1cmUmIHByb2NlZHVyZSwgQXJndW1lbnRzLi4uIGFyZ3VtZW50cykKK1ZhbHVl
VHlwZSogQmFzaWNCbG9jazo6cmVwbGFjZUxhc3RXaXRoTmV3KFByb2NlZHVyZSYgcHJvY2VkdXJl
LCBBcmd1bWVudHMmJi4uLiBhcmd1bWVudHMpCiB7Ci0gICAgVmFsdWVUeXBlKiByZXN1bHQgPSBw
cm9jZWR1cmUuYWRkPFZhbHVlVHlwZT4oYXJndW1lbnRzLi4uKTsKKyAgICBWYWx1ZVR5cGUqIHJl
c3VsdCA9IHByb2NlZHVyZS5hZGQ8VmFsdWVUeXBlPihzdGQ6OmZvcndhcmQ8QXJndW1lbnRzPihh
cmd1bWVudHMpLi4uKTsKICAgICByZXBsYWNlTGFzdChwcm9jZWR1cmUsIHJlc3VsdCk7CiAgICAg
cmV0dXJuIHJlc3VsdDsKIH0KIAotaW5saW5lIHVuc2lnbmVkIEJhc2ljQmxvY2s6Om51bVN1Y2Nl
c3NvcnMoKSBjb25zdAorY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBCYXNpY0Jsb2NrOjp0YWtlbigp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIGxhc3QoKS0+YXM8Q29udHJvbFZhbHVlPigpLT5udW1TdWNj
ZXNzb3JzKCk7CisgICAgQVNTRVJUKGxhc3QoKS0+b3Bjb2RlKCkgPT0gSnVtcCB8fCBsYXN0KCkt
Pm9wY29kZSgpID09IEJyYW5jaCk7CisgICAgcmV0dXJuIG1fc3VjY2Vzc29yc1swXTsKIH0KIAot
aW5saW5lIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgQmFzaWNCbG9jazo6c3VjY2Vzc29yKHVuc2ln
bmVkIGluZGV4KSBjb25zdAorRnJlcXVlbnRlZEJsb2NrJiBCYXNpY0Jsb2NrOjp0YWtlbigpCiB7
Ci0gICAgcmV0dXJuIGxhc3QoKS0+YXM8Q29udHJvbFZhbHVlPigpLT5zdWNjZXNzb3IoaW5kZXgp
OworICAgIEFTU0VSVChsYXN0KCktPm9wY29kZSgpID09IEp1bXAgfHwgbGFzdCgpLT5vcGNvZGUo
KSA9PSBCcmFuY2gpOworICAgIHJldHVybiBtX3N1Y2Nlc3NvcnNbMF07CiB9CiAKLWlubGluZSBG
cmVxdWVudGVkQmxvY2smIEJhc2ljQmxvY2s6OnN1Y2Nlc3Nvcih1bnNpZ25lZCBpbmRleCkKK2Nv
bnN0IEZyZXF1ZW50ZWRCbG9jayYgQmFzaWNCbG9jazo6bm90VGFrZW4oKSBjb25zdAogewotICAg
IHJldHVybiBsYXN0KCktPmFzPENvbnRyb2xWYWx1ZT4oKS0+c3VjY2Vzc29yKGluZGV4KTsKKyAg
ICBBU1NFUlQobGFzdCgpLT5vcGNvZGUoKSA9PSBCcmFuY2gpOworICAgIHJldHVybiBtX3N1Y2Nl
c3NvcnNbMV07CiB9CiAKLWlubGluZSBjb25zdCBCYXNpY0Jsb2NrOjpTdWNjZXNzb3JMaXN0JiBC
YXNpY0Jsb2NrOjpzdWNjZXNzb3JzKCkgY29uc3QKK0ZyZXF1ZW50ZWRCbG9jayYgQmFzaWNCbG9j
azo6bm90VGFrZW4oKQogewotICAgIHJldHVybiBsYXN0KCktPmFzPENvbnRyb2xWYWx1ZT4oKS0+
c3VjY2Vzc29ycygpOworICAgIEFTU0VSVChsYXN0KCktPm9wY29kZSgpID09IEJyYW5jaCk7Cisg
ICAgcmV0dXJuIG1fc3VjY2Vzc29yc1sxXTsKIH0KIAotaW5saW5lIEJhc2ljQmxvY2s6OlN1Y2Nl
c3Nvckxpc3QmIEJhc2ljQmxvY2s6OnN1Y2Nlc3NvcnMoKQorY29uc3QgRnJlcXVlbnRlZEJsb2Nr
JiBCYXNpY0Jsb2NrOjpmYWxsVGhyb3VnaCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGxhc3QoKS0+
YXM8Q29udHJvbFZhbHVlPigpLT5zdWNjZXNzb3JzKCk7CisgICAgQVNTRVJUKGxhc3QoKS0+b3Bj
b2RlKCkgPT0gQnJhbmNoIHx8IGxhc3QoKS0+b3Bjb2RlKCkgPT0gU3dpdGNoKTsKKyAgICByZXR1
cm4gbV9zdWNjZXNzb3JzLmxhc3QoKTsKIH0KIAotaW5saW5lIEJhc2ljQmxvY2sqIEJhc2ljQmxv
Y2s6OnN1Y2Nlc3NvckJsb2NrKHVuc2lnbmVkIGluZGV4KSBjb25zdAorRnJlcXVlbnRlZEJsb2Nr
JiBCYXNpY0Jsb2NrOjpmYWxsVGhyb3VnaCgpCiB7Ci0gICAgcmV0dXJuIHN1Y2Nlc3NvcihpbmRl
eCkuYmxvY2soKTsKLX0KLQotaW5saW5lIEJhc2ljQmxvY2sqJiBCYXNpY0Jsb2NrOjpzdWNjZXNz
b3JCbG9jayh1bnNpZ25lZCBpbmRleCkKLXsKLSAgICByZXR1cm4gc3VjY2Vzc29yKGluZGV4KS5i
bG9jaygpOwotfQotCi1pbmxpbmUgU3VjY2Vzc29yQ29sbGVjdGlvbjxCYXNpY0Jsb2NrLCBCYXNp
Y0Jsb2NrOjpTdWNjZXNzb3JMaXN0PiBCYXNpY0Jsb2NrOjpzdWNjZXNzb3JCbG9ja3MoKQotewot
ICAgIHJldHVybiBTdWNjZXNzb3JDb2xsZWN0aW9uPEJhc2ljQmxvY2ssIFN1Y2Nlc3Nvckxpc3Q+
KHN1Y2Nlc3NvcnMoKSk7Ci19Ci0KLWlubGluZSBTdWNjZXNzb3JDb2xsZWN0aW9uPGNvbnN0IEJh
c2ljQmxvY2ssIGNvbnN0IEJhc2ljQmxvY2s6OlN1Y2Nlc3Nvckxpc3Q+IEJhc2ljQmxvY2s6OnN1
Y2Nlc3NvckJsb2NrcygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIFN1Y2Nlc3NvckNvbGxlY3Rpb248
Y29uc3QgQmFzaWNCbG9jaywgY29uc3QgU3VjY2Vzc29yTGlzdD4oc3VjY2Vzc29ycygpKTsKKyAg
ICBBU1NFUlQobGFzdCgpLT5vcGNvZGUoKSA9PSBCcmFuY2ggfHwgbGFzdCgpLT5vcGNvZGUoKSA9
PSBTd2l0Y2gpOworICAgIHJldHVybiBtX3N1Y2Nlc3NvcnMubGFzdCgpOwogfQogCiB9IH0gLy8g
bmFtZXNwYWNlIEpTQzo6QjMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jsb2Nr
SW5zZXJ0aW9uU2V0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNCbG9ja0luc2VydGlvblNldC5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0Jsb2NrSW5zZXJ0aW9uU2V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NzgsOCArNzgsOCBAQCBCYXNpY0Jsb2NrKiBCbG9ja0luc2VydGlvblNldDo6c3BsaXRGb3J3CiAg
ICAgICAgIHJlc3VsdC0+bV92YWx1ZXNbaV0gPSBibG9jay0+bV92YWx1ZXNbaV07CiAKICAgICAv
LyBNYWtlIHRoZSBuZXcgYmxvY2sganVtcCB0byAnYmxvY2snLgotICAgIHJlc3VsdC0+bV92YWx1
ZXNbdmFsdWVJbmRleF0gPQotICAgICAgICBtX3Byb2MuYWRkPENvbnRyb2xWYWx1ZT4oSnVtcCwg
dmFsdWUtPm9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soYmxvY2spKTsKKyAgICByZXN1bHQtPm1f
dmFsdWVzW3ZhbHVlSW5kZXhdID0gbV9wcm9jLmFkZDxWYWx1ZT4oSnVtcCwgdmFsdWUtPm9yaWdp
bigpKTsKKyAgICByZXN1bHQtPnNldFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2NrKGJsb2NrKSk7
CiAKICAgICAvLyBJZiB3ZSBoYWQgaW5zZXJ0ZWQgdGhpbmdzIGludG8gJ2Jsb2NrJyBiZWZvcmUg
dGhpcywgZXhlY3V0ZSB0aG9zZSBpbnNlcnRpb25zIG5vdy4KICAgICBpZiAoaW5zZXJ0aW9uU2V0
KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQnJlYWtDcml0aWNhbEVkZ2VzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCcmVha0NyaXRpY2Fs
RWRnZXMuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNCcmVha0NyaXRpY2FsRWRnZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw2IEBA
CiAKICNpbmNsdWRlICJCM0Jhc2ljQmxvY2tJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNCbG9ja0lu
c2VydGlvblNldC5oIgotI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNQ
cm9jZWR1cmVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKIApAQCAtNTAs
OCArNDksOCBAQCB2b2lkIGJyZWFrQ3JpdGljYWxFZGdlcyhQcm9jZWR1cmUmIHByb2MpCiAKICAg
ICAgICAgICAgIEJhc2ljQmxvY2sqIHBhZCA9CiAgICAgICAgICAgICAgICAgaW5zZXJ0aW9uU2V0
Lmluc2VydEJlZm9yZShzdWNjZXNzb3IsIHN1Y2Nlc3Nvci0+ZnJlcXVlbmN5KCkpOwotICAgICAg
ICAgICAgcGFkLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgICAgICAgICBwcm9j
LCBKdW1wLCBzdWNjZXNzb3ItPmF0KDApLT5vcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHN1Y2Nl
c3NvcikpOworICAgICAgICAgICAgcGFkLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEp1bXAsIHN1
Y2Nlc3Nvci0+YXQoMCktPm9yaWdpbigpKTsKKyAgICAgICAgICAgIHBhZC0+c2V0U3VjY2Vzc29y
cyhGcmVxdWVudGVkQmxvY2soc3VjY2Vzc29yKSk7CiAgICAgICAgICAgICBwYWQtPmFkZFByZWRl
Y2Vzc29yKGJsb2NrKTsKICAgICAgICAgICAgIHN1Y2Nlc3Nvci0+cmVwbGFjZVByZWRlY2Vzc29y
KGJsb2NrLCBwYWQpOwogICAgICAgICAgICAgc3VjY2Vzc29yID0gcGFkOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzQ2FzZUNvbGxlY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nhc2VDb2xsZWN0aW9uLmNwcAkocmV2aXNpb24gMCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nhc2VDb2xsZWN0aW9uLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJCM0Nhc2VDb2xs
ZWN0aW9uLmgiCisKKyNpZiBFTkFCTEUoQjNfSklUKQorCisjaW5jbHVkZSAiQjNDYXNlQ29sbGVj
dGlvbklubGluZXMuaCIKKyNpbmNsdWRlIDx3dGYvQ29tbWFQcmludGVyLmg+CisKK25hbWVzcGFj
ZSBKU0MgeyBuYW1lc3BhY2UgQjMgeworCit2b2lkIENhc2VDb2xsZWN0aW9uOjpkdW1wKFByaW50
U3RyZWFtJiBvdXQpIGNvbnN0Cit7CisgICAgQ29tbWFQcmludGVyIGNvbW1hOworICAgIGZvciAo
U3dpdGNoQ2FzZSBzd2l0Y2hDYXNlIDogKnRoaXMpCisgICAgICAgIG91dC5wcmludChjb21tYSwg
c3dpdGNoQ2FzZSk7CisgICAgb3V0LnByaW50KGNvbW1hLCAiZGVmYXVsdC0+IiwgZmFsbFRocm91
Z2goKSk7Cit9CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMworCisjZW5kaWYgLy8gRU5BQkxF
KEIzX0pJVCkKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2FzZUNvbGxlY3Rp
b24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDYXNlQ29sbGVj
dGlvbi5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2FzZUNv
bGxlY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEyMCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEIzQ2FzZUNvbGxlY3Rp
b25faAorI2RlZmluZSBCM0Nhc2VDb2xsZWN0aW9uX2gKKworI2lmIEVOQUJMRShCM19KSVQpCisK
KyNpbmNsdWRlICJCM1N3aXRjaENhc2UuaCIKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBC
MyB7CisKK2NsYXNzIEJhc2ljQmxvY2s7CitjbGFzcyBTd2l0Y2hWYWx1ZTsKKworLy8gTk9URTog
WW91J2xsIGFsd2F5cyB3YW50IHRvIGluY2x1ZGUgQjNDYXNlQ29sbGVjdGlvbklubGluZXMuaCB3
aGVuIHlvdSB1c2UgdGhpcy4KKworY2xhc3MgQ2FzZUNvbGxlY3Rpb24geworcHVibGljOgorICAg
IENhc2VDb2xsZWN0aW9uKCkKKyAgICB7CisgICAgfQorICAgIAorICAgIENhc2VDb2xsZWN0aW9u
KFN3aXRjaFZhbHVlKiB0ZXJtaW5hbCwgQmFzaWNCbG9jayogb3duZXIpCisgICAgICAgIDogbV9z
d2l0Y2godGVybWluYWwpCisgICAgICAgICwgbV9vd25lcihvd25lcikKKyAgICB7CisgICAgfQor
ICAgIAorICAgIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgZmFsbFRocm91Z2goKSBjb25zdDsKKwor
ICAgIHVuc2lnbmVkIHNpemUoKSBjb25zdDsKKyAgICBTd2l0Y2hDYXNlIGF0KHVuc2lnbmVkIGlu
ZGV4KSBjb25zdDsKKyAgICAKKyAgICBTd2l0Y2hDYXNlIG9wZXJhdG9yW10odW5zaWduZWQgaW5k
ZXgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gYXQoaW5kZXgpOworICAgIH0KKworICAg
IGNsYXNzIGl0ZXJhdG9yIHsKKyAgICBwdWJsaWM6CisgICAgICAgIGl0ZXJhdG9yKCkKKyAgICAg
ICAgICAgIDogbV9zd2l0Y2gobnVsbHB0cikKKyAgICAgICAgICAgICwgbV9pbmRleCgwKQorICAg
ICAgICB7CisgICAgICAgIH0KKworICAgICAgICBpdGVyYXRvcihjb25zdCBTd2l0Y2hWYWx1ZSYg
c3dpdGNoVmFsdWUsIHVuc2lnbmVkIGluZGV4KQorICAgICAgICAgICAgOiBtX3N3aXRjaCgmc3dp
dGNoVmFsdWUpCisgICAgICAgICAgICAsIG1faW5kZXgoaW5kZXgpCisgICAgICAgIHsKKyAgICAg
ICAgfQorCisgICAgICAgIFN3aXRjaENhc2Ugb3BlcmF0b3IqKCkKKyAgICAgICAgeworICAgICAg
ICAgICAgcmV0dXJuIG1fc3dpdGNoLT5hdChtX2luZGV4KTsKKyAgICAgICAgfQorCisgICAgICAg
IGl0ZXJhdG9yJiBvcGVyYXRvcisrKCkKKyAgICAgICAgeworICAgICAgICAgICAgbV9pbmRleCsr
OworICAgICAgICAgICAgcmV0dXJuICp0aGlzOworICAgICAgICB9CisKKyAgICAgICAgYm9vbCBv
cGVyYXRvcj09KGNvbnN0IGl0ZXJhdG9yJiBvdGhlcikgY29uc3QKKyAgICAgICAgeworICAgICAg
ICAgICAgQVNTRVJUKG1fc3dpdGNoID09IG90aGVyLm1fc3dpdGNoKTsKKyAgICAgICAgICAgIHJl
dHVybiBtX2luZGV4ID09IG90aGVyLm1faW5kZXg7CisgICAgICAgIH0KKworICAgICAgICBib29s
IG9wZXJhdG9yIT0oY29uc3QgaXRlcmF0b3ImIG90aGVyKSBjb25zdAorICAgICAgICB7CisgICAg
ICAgICAgICByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7CisgICAgICAgIH0KKworICAgIHByaXZh
dGU6CisgICAgICAgIGNvbnN0IFN3aXRjaFZhbHVlKiBtX3N3aXRjaDsKKyAgICAgICAgdW5zaWdu
ZWQgbV9pbmRleDsKKyAgICB9OworCisgICAgdHlwZWRlZiBpdGVyYXRvciBjb25zdF9pdGVyYXRv
cjsKKworICAgIGl0ZXJhdG9yIGJlZ2luKCkgY29uc3QgeyByZXR1cm4gaXRlcmF0b3IoKnRoaXMs
IDApOyB9CisgICAgaXRlcmF0b3IgZW5kKCkgY29uc3QgeyByZXR1cm4gaXRlcmF0b3IoKnRoaXMs
IHNpemUoKSk7IH0KKyAgICAKKyAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKKyAg
ICAKK3ByaXZhdGU6CisgICAgU3dpdGNoVmFsdWUqIG1fc3dpdGNoIHsgbnVsbHB0ciB9OworICAg
IEJhc2ljQmxvY2sqIG1fb3duZXIgeyBudWxscHRyIH07Cit9OworCit9IH0gLy8gbmFtZXNwYWNl
IEpTQzo6QjMKKworI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCisKKyNlbmRpZiAvLyBCM0Nhc2VD
b2xsZWN0aW9uX2gKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2FzZUNvbGxl
Y3Rpb25JbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
Q2FzZUNvbGxlY3Rpb25JbmxpbmVzLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNDYXNlQ29sbGVjdGlvbklubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpZm5kZWYgQjNDYXNlQ29sbGVjdGlvbklubGluZXNfaAorI2RlZmluZSBCM0Nhc2VDb2xsZWN0
aW9uSW5saW5lc19oCisKKyNpZiBFTkFCTEUoQjNfSklUKQorCisjaW5jbHVkZSAiQjNDYXNlQ29s
bGVjdGlvbi5oIgorI2luY2x1ZGUgIkIzU3dpdGNoVmFsdWUuaCIKKyNpbmNsdWRlICJCM0Jhc2lj
QmxvY2suaCIKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CisKK2lubGluZSBjb25z
dCBGcmVxdWVudGVkQmxvY2smIENhc2VDb2xsZWN0aW9uOjpmYWxsVGhyb3VnaCgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fb3duZXItPmZhbGxUaHJvdWdoKCk7Cit9CisKK2lubGluZSB1bnNpZ25l
ZCBDYXNlQ29sbGVjdGlvbjo6c2l6ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc3dpdGNoLT5u
dW1DYXNlVmFsdWVzKCk7Cit9CisKK2lubGluZSBTd2l0Y2hDYXNlIENhc2VDb2xsZWN0aW9uOjph
dCh1bnNpZ25lZCBpbmRleCkgY29uc3QKK3sKKyAgICByZXR1cm4gU3dpdGNoQ2FzZShtX3N3aXRj
aC0+Y2FzZVZhbHVlKGluZGV4KSwgbV9vd25lci0+c3VjY2Vzc29yKGluZGV4KSk7Cit9CisKK30g
fSAvLyBuYW1lc3BhY2UgSlNDOjpCMworCisjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKKworI2Vu
ZGlmIC8vIEIzQ2FzZUNvbGxlY3Rpb25JbmxpbmVzX2gKKwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzQ29tbW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzQ29tbW9uLmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0NvbW1vbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDYgKzI4LDggQEAKIAogI2lmIEVOQUJM
RShCM19KSVQpCiAKKyNpbmNsdWRlICJKU0V4cG9ydE1hY3Jvcy5oIgorCiBuYW1lc3BhY2UgSlND
IHsgbmFtZXNwYWNlIEIzIHsKIAogaW5saW5lIGJvb2wgaXM2NEJpdCgpIHsgcmV0dXJuIHNpemVv
Zih2b2lkKikgPT0gODsgfQpAQCAtMzgsNyArNDAsNyBAQCBlbnVtIEIzQ29tcGxpdGF0aW9uTW9k
ZSB7CiAgICAgQWlyTW9kZQogfTsKIAotYm9vbCBzaG91bGREdW1wSVIoQjNDb21wbGl0YXRpb25N
b2RlKTsKK0pTX0VYUE9SVF9QUklWQVRFIGJvb2wgc2hvdWxkRHVtcElSKEIzQ29tcGxpdGF0aW9u
TW9kZSk7CiBib29sIHNob3VsZER1bXBJUkF0RWFjaFBoYXNlKEIzQ29tcGxpdGF0aW9uTW9kZSk7
CiBib29sIHNob3VsZFZhbGlkYXRlSVIoKTsKIGJvb2wgc2hvdWxkVmFsaWRhdGVJUkF0RWFjaFBo
YXNlKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb250cm9sVmFsdWUuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnRyb2xWYWx1ZS5j
cHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnRy
b2xWYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsOTUgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJjb25maWcu
aCIKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgotCi0jaWYgRU5BQkxFKEIzX0pJVCkKLQot
I2luY2x1ZGUgIkIzQmFzaWNCbG9jay5oIgotCi1uYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIz
IHsKLQotQ29udHJvbFZhbHVlOjp+Q29udHJvbFZhbHVlKCkKLXsKLX0KLQotYm9vbCBDb250cm9s
VmFsdWU6OnJlcGxhY2VTdWNjZXNzb3IoQmFzaWNCbG9jayogZnJvbSwgQmFzaWNCbG9jayogdG8p
Ci17Ci0gICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKLSAgICBmb3IgKEZyZXF1ZW50ZWRCbG9jayYg
c3VjY2Vzc29yIDogbV9zdWNjZXNzb3JzKSB7Ci0gICAgICAgIGlmIChzdWNjZXNzb3IuYmxvY2so
KSA9PSBmcm9tKSB7Ci0gICAgICAgICAgICBzdWNjZXNzb3IuYmxvY2soKSA9IHRvOwotICAgICAg
ICAgICAgcmVzdWx0ID0gdHJ1ZTsKLQotICAgICAgICAgICAgLy8gS2VlcCBsb29waW5nIGJlY2F1
c2UgaXQncyB2YWxpZCBmb3IgYSBzdWNjZXNzb3IgdG8gYmUgbWVudGlvbmVkIG11bHRpcGxlIHRp
bWVzLAotICAgICAgICAgICAgLy8gbGlrZSBpZiBtdWx0aXBsZSBzd2l0Y2ggY2FzZXMgaGF2ZSB0
aGUgc2FtZSB0YXJnZXQuCi0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0K
LQotdm9pZCBDb250cm9sVmFsdWU6OmNvbnZlcnRUb0p1bXAoQmFzaWNCbG9jayogZGVzdGluYXRp
b24pCi17Ci0gICAgdW5zaWduZWQgaW5kZXggPSB0aGlzLT5pbmRleCgpOwotICAgIE9yaWdpbiBv
cmlnaW4gPSB0aGlzLT5vcmlnaW4oKTsKLSAgICBCYXNpY0Jsb2NrKiBvd25lciA9IHRoaXMtPm93
bmVyOwotCi0gICAgdGhpcy0+fkNvbnRyb2xWYWx1ZSgpOwotCi0gICAgbmV3ICh0aGlzKSBDb250
cm9sVmFsdWUoSnVtcCwgb3JpZ2luLCBGcmVxdWVudGVkQmxvY2soZGVzdGluYXRpb24pKTsKLQot
ICAgIHRoaXMtPm93bmVyID0gb3duZXI7Ci0gICAgdGhpcy0+bV9pbmRleCA9IGluZGV4OwotfQot
Ci12b2lkIENvbnRyb2xWYWx1ZTo6Y29udmVydFRvT29wcygpCi17Ci0gICAgdW5zaWduZWQgaW5k
ZXggPSB0aGlzLT5pbmRleCgpOwotICAgIE9yaWdpbiBvcmlnaW4gPSB0aGlzLT5vcmlnaW4oKTsK
LSAgICBCYXNpY0Jsb2NrKiBvd25lciA9IHRoaXMtPm93bmVyOwotCi0gICAgdGhpcy0+fkNvbnRy
b2xWYWx1ZSgpOwotCi0gICAgbmV3ICh0aGlzKSBDb250cm9sVmFsdWUoT29wcywgb3JpZ2luKTsK
LQotICAgIHRoaXMtPm93bmVyID0gb3duZXI7Ci0gICAgdGhpcy0+bV9pbmRleCA9IGluZGV4Owot
fQotCi12b2lkIENvbnRyb2xWYWx1ZTo6ZHVtcE1ldGEoQ29tbWFQcmludGVyJiBjb21tYSwgUHJp
bnRTdHJlYW0mIG91dCkgY29uc3QKLXsKLSAgICBmb3IgKEZyZXF1ZW50ZWRCbG9jayBzdWNjZXNz
b3IgOiBtX3N1Y2Nlc3NvcnMpCi0gICAgICAgIG91dC5wcmludChjb21tYSwgc3VjY2Vzc29yKTsK
LX0KLQotVmFsdWUqIENvbnRyb2xWYWx1ZTo6Y2xvbmVJbXBsKCkgY29uc3QKLXsKLSAgICByZXR1
cm4gbmV3IENvbnRyb2xWYWx1ZSgqdGhpcyk7Ci19Ci0KLX0gfSAvLyBuYW1lc3BhY2UgSlNDOjpC
MwotCi0jZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0NvbnRyb2xWYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0NvbnRyb2xWYWx1ZS5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNDb250cm9sVmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMSwxNjMgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0K
LSNpZm5kZWYgQjNDb250cm9sVmFsdWVfaAotI2RlZmluZSBCM0NvbnRyb2xWYWx1ZV9oCi0KLSNp
ZiBFTkFCTEUoQjNfSklUKQotCi0jaW5jbHVkZSAiQjNGcmVxdWVudGVkQmxvY2suaCIKLSNpbmNs
dWRlICJCM1N1Y2Nlc3NvckNvbGxlY3Rpb24uaCIKLSNpbmNsdWRlICJCM1ZhbHVlLmgiCi0KLW5h
bWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewotCi1jbGFzcyBCYXNpY0Jsb2NrOwotCi1jbGFz
cyBKU19FWFBPUlRfUFJJVkFURSBDb250cm9sVmFsdWUgOiBwdWJsaWMgVmFsdWUgewotcHVibGlj
OgotICAgIHN0YXRpYyBib29sIGFjY2VwdHMoT3Bjb2RlIG9wY29kZSkKLSAgICB7Ci0gICAgICAg
IHN3aXRjaCAob3Bjb2RlKSB7Ci0gICAgICAgIGNhc2UgSnVtcDoKLSAgICAgICAgY2FzZSBCcmFu
Y2g6Ci0gICAgICAgIGNhc2UgUmV0dXJuOgotICAgICAgICBjYXNlIE9vcHM6Ci0gICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgY2FzZSBTd2l0Y2g6IAotICAgICAgICAgICAgLy8gVGhp
cyBpcyBoZXJlIGJlY2F1c2UgU3dpdGNoVmFsdWUgaXMgYSBzdWJjbGFzcyBvZiBDb250cm9sVmFs
dWUsIHNvIHdlIHdhbnQKLSAgICAgICAgICAgIC8vIHN3aXRjaFZhbHVlLT5hczxDb250cm9sVmFs
dWU+KCkgdG8gcmV0dXJuIG5vbi1udWxsLgotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg
ICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICB9
Ci0KLSAgICB0eXBlZGVmIFZlY3RvcjxGcmVxdWVudGVkQmxvY2ssIDI+IFN1Y2Nlc3Nvckxpc3Q7
Ci0KLSAgICB+Q29udHJvbFZhbHVlKCk7Ci0KLSAgICB1bnNpZ25lZCBudW1TdWNjZXNzb3JzKCkg
Y29uc3QgeyByZXR1cm4gbV9zdWNjZXNzb3JzLnNpemUoKTsgfQotICAgIGNvbnN0IEZyZXF1ZW50
ZWRCbG9jayYgc3VjY2Vzc29yKHVuc2lnbmVkIGluZGV4KSBjb25zdCB7IHJldHVybiBtX3N1Y2Nl
c3NvcnNbaW5kZXhdOyB9Ci0gICAgRnJlcXVlbnRlZEJsb2NrJiBzdWNjZXNzb3IodW5zaWduZWQg
aW5kZXgpIHsgcmV0dXJuIG1fc3VjY2Vzc29yc1tpbmRleF07IH0KLSAgICBjb25zdCBTdWNjZXNz
b3JMaXN0JiBzdWNjZXNzb3JzKCkgY29uc3QgeyByZXR1cm4gbV9zdWNjZXNzb3JzOyB9Ci0gICAg
U3VjY2Vzc29yTGlzdCYgc3VjY2Vzc29ycygpIHsgcmV0dXJuIG1fc3VjY2Vzc29yczsgfQotCi0g
ICAgQmFzaWNCbG9jayogc3VjY2Vzc29yQmxvY2sodW5zaWduZWQgaW5kZXgpIGNvbnN0IHsgcmV0
dXJuIHN1Y2Nlc3NvcihpbmRleCkuYmxvY2soKTsgfQotICAgIEJhc2ljQmxvY2sqJiBzdWNjZXNz
b3JCbG9jayh1bnNpZ25lZCBpbmRleCkgeyByZXR1cm4gc3VjY2Vzc29yKGluZGV4KS5ibG9jaygp
OyB9Ci0gICAgU3VjY2Vzc29yQ29sbGVjdGlvbjxCYXNpY0Jsb2NrLCBTdWNjZXNzb3JMaXN0PiBz
dWNjZXNzb3JCbG9ja3MoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIFN1Y2Nlc3NvckNvbGxlY3Rp
b248QmFzaWNCbG9jaywgU3VjY2Vzc29yTGlzdD4oc3VjY2Vzc29ycygpKTsKLSAgICB9Ci0gICAg
U3VjY2Vzc29yQ29sbGVjdGlvbjxjb25zdCBCYXNpY0Jsb2NrLCBjb25zdCBTdWNjZXNzb3JMaXN0
PiBzdWNjZXNzb3JCbG9ja3MoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIFN1Y2Nlc3Nv
ckNvbGxlY3Rpb248Y29uc3QgQmFzaWNCbG9jaywgY29uc3QgU3VjY2Vzc29yTGlzdD4oc3VjY2Vz
c29ycygpKTsKLSAgICB9Ci0KLSAgICBib29sIHJlcGxhY2VTdWNjZXNzb3IoQmFzaWNCbG9jayog
ZnJvbSwgQmFzaWNCbG9jayogdG8pOwotCi0gICAgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YWtl
bigpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQob3Bjb2RlKCkgPT0gSnVtcCB8fCBvcGNv
ZGUoKSA9PSBCcmFuY2gpOwotICAgICAgICByZXR1cm4gc3VjY2Vzc29yKDApOwotICAgIH0KLSAg
ICBGcmVxdWVudGVkQmxvY2smIHRha2VuKCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChvcGNvZGUo
KSA9PSBKdW1wIHx8IG9wY29kZSgpID09IEJyYW5jaCk7Ci0gICAgICAgIHJldHVybiBzdWNjZXNz
b3IoMCk7Ci0gICAgfQotICAgIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgbm90VGFrZW4oKSBjb25z
dAotICAgIHsKLSAgICAgICAgQVNTRVJUKG9wY29kZSgpID09IEJyYW5jaCk7Ci0gICAgICAgIHJl
dHVybiBzdWNjZXNzb3IoMSk7Ci0gICAgfQotICAgIEZyZXF1ZW50ZWRCbG9jayYgbm90VGFrZW4o
KQotICAgIHsKLSAgICAgICAgQVNTRVJUKG9wY29kZSgpID09IEJyYW5jaCk7Ci0gICAgICAgIHJl
dHVybiBzdWNjZXNzb3IoMSk7Ci0gICAgfQotCi0gICAgdm9pZCBjb252ZXJ0VG9KdW1wKEJhc2lj
QmxvY2sqIGRlc3RpbmF0aW9uKTsKLSAgICB2b2lkIGNvbnZlcnRUb09vcHMoKTsKLQotcHJvdGVj
dGVkOgotICAgIHZvaWQgZHVtcE1ldGEoQ29tbWFQcmludGVyJiwgUHJpbnRTdHJlYW0mKSBjb25z
dCBvdmVycmlkZTsKLQotICAgIFZhbHVlKiBjbG9uZUltcGwoKSBjb25zdCBvdmVycmlkZTsKLQot
ICAgIC8vIFVzZSB0aGlzIGZvciBzdWJjbGFzc2VzLgotICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4u
IEFyZ3VtZW50cz4KLSAgICBDb250cm9sVmFsdWUoT3Bjb2RlIG9wY29kZSwgVHlwZSB0eXBlLCBP
cmlnaW4gb3JpZ2luLCBBcmd1bWVudHMuLi4gYXJndW1lbnRzKQotICAgICAgICA6IFZhbHVlKENo
ZWNrZWRPcGNvZGUsIG9wY29kZSwgdHlwZSwgb3JpZ2luLCBhcmd1bWVudHMuLi4pCi0gICAgewot
ICAgICAgICBBU1NFUlQoYWNjZXB0cyhvcGNvZGUpKTsKLSAgICB9Ci0KLSAgICAvLyBTdWJjbGFz
c2VzIHdpbGwgcG9wdWxhdGUgdGhpcy4KLSAgICBTdWNjZXNzb3JMaXN0IG1fc3VjY2Vzc29yczsK
LQotcHJpdmF0ZToKLSAgICBmcmllbmQgY2xhc3MgUHJvY2VkdXJlOwotCi0gICAgLy8gVXNlIHRo
aXMgZm9yIE9vcHMuCi0gICAgQ29udHJvbFZhbHVlKE9wY29kZSBvcGNvZGUsIE9yaWdpbiBvcmln
aW4pCi0gICAgICAgIDogVmFsdWUoQ2hlY2tlZE9wY29kZSwgb3Bjb2RlLCBWb2lkLCBvcmlnaW4p
Ci0gICAgewotICAgICAgICBBU1NFUlQob3Bjb2RlID09IE9vcHMpOwotICAgIH0KLQotICAgIC8v
IFVzZSB0aGlzIGZvciBSZXR1cm4uCi0gICAgQ29udHJvbFZhbHVlKE9wY29kZSBvcGNvZGUsIE9y
aWdpbiBvcmlnaW4sIFZhbHVlKiByZXN1bHQpCi0gICAgICAgIDogVmFsdWUoQ2hlY2tlZE9wY29k
ZSwgb3Bjb2RlLCBWb2lkLCBvcmlnaW4sIHJlc3VsdCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChv
cGNvZGUgPT0gUmV0dXJuKTsKLSAgICB9Ci0KLSAgICAvLyBVc2UgdGhpcyBmb3IgSnVtcC4KLSAg
ICBDb250cm9sVmFsdWUoT3Bjb2RlIG9wY29kZSwgT3JpZ2luIG9yaWdpbiwgY29uc3QgRnJlcXVl
bnRlZEJsb2NrJiB0YXJnZXQpCi0gICAgICAgIDogVmFsdWUoQ2hlY2tlZE9wY29kZSwgb3Bjb2Rl
LCBWb2lkLCBvcmlnaW4pCi0gICAgewotICAgICAgICBBU1NFUlQob3Bjb2RlID09IEp1bXApOwot
ICAgICAgICBtX3N1Y2Nlc3NvcnMuYXBwZW5kKHRhcmdldCk7Ci0gICAgfQotCi0gICAgLy8gVXNl
IHRoaXMgZm9yIEJyYW5jaC4KLSAgICBDb250cm9sVmFsdWUoCi0gICAgICAgIE9wY29kZSBvcGNv
ZGUsIE9yaWdpbiBvcmlnaW4sIFZhbHVlKiBwcmVkaWNhdGUsCi0gICAgICAgIGNvbnN0IEZyZXF1
ZW50ZWRCbG9jayYgeWVzLCBjb25zdCBGcmVxdWVudGVkQmxvY2smIG5vKQotICAgICAgICA6IFZh
bHVlKENoZWNrZWRPcGNvZGUsIG9wY29kZSwgVm9pZCwgb3JpZ2luLCBwcmVkaWNhdGUpCi0gICAg
ewotICAgICAgICBBU1NFUlQob3Bjb2RlID09IEJyYW5jaCk7Ci0gICAgICAgIG1fc3VjY2Vzc29y
cy5hcHBlbmQoeWVzKTsKLSAgICAgICAgbV9zdWNjZXNzb3JzLmFwcGVuZChubyk7Ci0gICAgfQot
fTsKLQotfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzCi0KLSNlbmRpZiAvLyBFTkFCTEUoQjNfSklU
KQotCi0jZW5kaWYgLy8gQjNDb250cm9sVmFsdWVfaAotCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNEYXRhU2VjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzRGF0YVNlY3Rpb24uY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNEYXRhU2VjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzEsNyAr
MzEsNyBAQAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKIERhdGFTZWN0aW9uOjpE
YXRhU2VjdGlvbihzaXplX3Qgc2l6ZSkKLSAgICA6IG1fZGF0YShmYXN0TWFsbG9jKHNpemUpKQor
ICAgIDogbV9kYXRhKGZhc3RaZXJvZWRNYWxsb2Moc2l6ZSkpCiAgICAgLCBtX3NpemUoc2l6ZSkK
IHsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0R1cGxpY2F0ZVRhaWxzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEdXBsaWNhdGVUYWls
cy5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0R1
cGxpY2F0ZVRhaWxzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNiBAQAogCiAjaW5j
bHVkZSAiQjNCYXNpY0Jsb2NrSW5saW5lcy5oIgogI2luY2x1ZGUgIkIzQnJlYWtDcml0aWNhbEVk
Z2VzLmgiCi0jaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKICNpbmNsdWRlICJCM0RvbWluYXRv
cnMuaCIKICNpbmNsdWRlICJCM0ZpeFNTQS5oIgogI2luY2x1ZGUgIkIzSW5kZXhTZXQuaCIKQEAg
LTcyLDkgKzcxLDEwIEBAIHB1YmxpYzoKICAgICAgICAgSW5kZXhTZXQ8QmFzaWNCbG9jaz4gY2Fu
ZGlkYXRlczsKIAogICAgICAgICBmb3IgKEJhc2ljQmxvY2sqIGJsb2NrIDogbV9wcm9jKSB7Ci0g
ICAgICAgICAgICBpZiAoYmxvY2stPnNpemUoKSA+IG1fbWF4U2l6ZSB8fCBibG9jay0+bnVtU3Vj
Y2Vzc29ycygpID4gbV9tYXhTdWNjZXNzb3JzKQorICAgICAgICAgICAgaWYgKGJsb2NrLT5zaXpl
KCkgPiBtX21heFNpemUKKyAgICAgICAgICAgICAgICB8fCBibG9jay0+bnVtU3VjY2Vzc29ycygp
ID4gbV9tYXhTdWNjZXNzb3JzKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotCisgICAgICAg
ICAgICAKICAgICAgICAgICAgIGNhbmRpZGF0ZXMuYWRkKGJsb2NrKTsKICAgICAgICAgfQogCkBA
IC05NywxMSArOTcsMTAgQEAgcHVibGljOgogICAgICAgICB9CiAKICAgICAgICAgZm9yIChCYXNp
Y0Jsb2NrKiBibG9jayA6IG1fcHJvYykgewotICAgICAgICAgICAgQ29udHJvbFZhbHVlKiBqdW1w
ID0gYmxvY2stPmxhc3QoKS0+YXM8Q29udHJvbFZhbHVlPigpOwotICAgICAgICAgICAgaWYgKGp1
bXAtPm9wY29kZSgpICE9IEp1bXApCisgICAgICAgICAgICBpZiAoYmxvY2stPmxhc3QoKS0+b3Bj
b2RlICE9IEp1bXApCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgICAgIEJh
c2ljQmxvY2sqIHRhaWwgPSBqdW1wLT5zdWNjZXNzb3JCbG9jaygwKTsKKyAgICAgICAgICAgIEJh
c2ljQmxvY2sqIHRhaWwgPSBibG9jay0+c3VjY2Vzc29yQmxvY2soMCk7CiAgICAgICAgICAgICBp
ZiAoIWNhbmRpZGF0ZXMuY29udGFpbnModGFpbCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7
CiAKQEAgLTEzMCw2ICsxMjksNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgIG1hcC5h
ZGQodmFsdWUsIGNsb25lKTsKICAgICAgICAgICAgICAgICBibG9jay0+YXBwZW5kKGNsb25lKTsK
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJsb2NrLT5zdWNjZXNzb3JzKCkgPSB0YWlsLT5z
dWNjZXNzb3JzKCk7CiAgICAgICAgIH0KIAogICAgICAgICBtX3Byb2MucmVzZXRSZWFjaGFiaWxp
dHkoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0ZpeFNTQS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRml4U1NBLmNwcAkocmV2aXNpb24g
MjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRml4U1NBLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzAsNyArMzAsNiBAQAogCiAjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrSW5saW5l
cy5oIgogI2luY2x1ZGUgIkIzQnJlYWtDcml0aWNhbEVkZ2VzLmgiCi0jaW5jbHVkZSAiQjNDb250
cm9sVmFsdWUuaCIKICNpbmNsdWRlICJCM0RvbWluYXRvcnMuaCIKICNpbmNsdWRlICJCM0luZGV4
U2V0LmgiCiAjaW5jbHVkZSAiQjNJbnNlcnRpb25TZXRJbmxpbmVzLmgiCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNGb2xkUGF0aENvbnN0YW50cy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRm9sZFBhdGhDb25zdGFudHMuY3BwCShyZXZpc2lv
biAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNGb2xkUGF0aENvbnN0YW50
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDYgQEAKICNpZiBFTkFCTEUoQjNfSklU
KQogCiAjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrSW5saW5lcy5oIgotI2luY2x1ZGUgIkIzQ29udHJv
bFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNEb21pbmF0b3JzLmgiCiAjaW5jbHVkZSAiQjNJbnNlcnRp
b25TZXRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNQaGFzZVNjb3BlLmgiCkBAIC04NywyNCArODYs
MjQgQEAgcHVibGljOgogICAgICAgICB9OwogICAgICAgICAKICAgICAgICAgZm9yIChCYXNpY0Js
b2NrKiBibG9jayA6IG1fcHJvYykgewotICAgICAgICAgICAgQ29udHJvbFZhbHVlKiBicmFuY2gg
PSBibG9jay0+bGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCk7CisgICAgICAgICAgICBWYWx1ZSog
YnJhbmNoID0gYmxvY2stPmxhc3QoKTsKICAgICAgICAgICAgIHN3aXRjaCAoYnJhbmNoLT5vcGNv
ZGUoKSkgewogICAgICAgICAgICAgY2FzZSBCcmFuY2g6Ci0gICAgICAgICAgICAgICAgaWYgKGJy
YW5jaC0+c3VjY2Vzc29yQmxvY2soMCkgPT0gYnJhbmNoLT5zdWNjZXNzb3JCbG9jaygxKSkKKyAg
ICAgICAgICAgICAgICBpZiAoYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDApID09IGJsb2NrLT5zdWNj
ZXNzb3JCbG9jaygxKSkKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAg
ICAgICAgYWRkT3ZlcnJpZGUoCiAgICAgICAgICAgICAgICAgICAgIGJsb2NrLCBicmFuY2gtPmNo
aWxkKDApLAotICAgICAgICAgICAgICAgICAgICBPdmVycmlkZTo6bm9uWmVybyhicmFuY2gtPnN1
Y2Nlc3NvckJsb2NrKDApKSk7CisgICAgICAgICAgICAgICAgICAgIE92ZXJyaWRlOjpub25aZXJv
KGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKSkpOwogICAgICAgICAgICAgICAgIGFkZE92ZXJyaWRl
KAogICAgICAgICAgICAgICAgICAgICBibG9jaywgYnJhbmNoLT5jaGlsZCgwKSwKLSAgICAgICAg
ICAgICAgICAgICAgT3ZlcnJpZGU6OmNvbnN0YW50KGJyYW5jaC0+c3VjY2Vzc29yQmxvY2soMSks
IDApKTsKKyAgICAgICAgICAgICAgICAgICAgT3ZlcnJpZGU6OmNvbnN0YW50KGJsb2NrLT5zdWNj
ZXNzb3JCbG9jaygxKSwgMCkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
Y2FzZSBTd2l0Y2g6IHsKICAgICAgICAgICAgICAgICBIYXNoTWFwPEJhc2ljQmxvY2sqLCB1bnNp
Z25lZD4gdGFyZ2V0VXNlczsKLSAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFN3aXRjaENhc2Um
IHN3aXRjaENhc2UgOiAqYnJhbmNoLT5hczxTd2l0Y2hWYWx1ZT4oKSkKKyAgICAgICAgICAgICAg
ICBmb3IgKGNvbnN0IFN3aXRjaENhc2UmIHN3aXRjaENhc2UgOiBicmFuY2gtPmFzPFN3aXRjaFZh
bHVlPigpLT5jYXNlcyhibG9jaykpCiAgICAgICAgICAgICAgICAgICAgIHRhcmdldFVzZXMuYWRk
KHN3aXRjaENhc2UudGFyZ2V0QmxvY2soKSwgMCkuaXRlcmF0b3ItPnZhbHVlKys7CiAKLSAgICAg
ICAgICAgICAgICBmb3IgKGNvbnN0IFN3aXRjaENhc2UmIHN3aXRjaENhc2UgOiAqYnJhbmNoLT5h
czxTd2l0Y2hWYWx1ZT4oKSkgeworICAgICAgICAgICAgICAgIGZvciAoY29uc3QgU3dpdGNoQ2Fz
ZSYgc3dpdGNoQ2FzZSA6IGJyYW5jaC0+YXM8U3dpdGNoVmFsdWU+KCktPmNhc2VzKGJsb2NrKSkg
ewogICAgICAgICAgICAgICAgICAgICBpZiAodGFyZ2V0VXNlcy5maW5kKHN3aXRjaENhc2UudGFy
Z2V0QmxvY2soKSktPnZhbHVlICE9IDEpCiAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51
ZTsKIApAQCAtMTU4LDkgKzE1Nyw4IEBAIHB1YmxpYzoKIAogICAgICAgICAgICAgICAgIHN3aXRj
aCAodmFsdWUtPm9wY29kZSgpKSB7CiAgICAgICAgICAgICAgICAgY2FzZSBCcmFuY2g6IHsKLSAg
ICAgICAgICAgICAgICAgICAgQ29udHJvbFZhbHVlKiBicmFuY2ggPSB2YWx1ZS0+YXM8Q29udHJv
bFZhbHVlPigpOwogICAgICAgICAgICAgICAgICAgICBpZiAoZ2V0T3ZlcnJpZGUoYmxvY2ssIGJy
YW5jaC0+Y2hpbGQoMCkpLmlzTm9uWmVybykgewotICAgICAgICAgICAgICAgICAgICAgICAgYnJh
bmNoLT5jb252ZXJ0VG9KdW1wKGJyYW5jaC0+dGFrZW4oKS5ibG9jaygpKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHZhbHVlLT5yZXBsYWNlV2l0aEp1bXAoYmxvY2ssIGJsb2NrLT50YWtlbigp
KTsKICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlOwogICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzTG93ZXJNYWNyb3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0xvd2VyTWFjcm9zLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJNYWNyb3MuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMy
LDkgKzMyLDEwIEBACiAjaW5jbHVkZSAiQjNCbG9ja0luc2VydGlvblNldC5oIgogI2luY2x1ZGUg
IkIzQ0NhbGxWYWx1ZS5oIgogI2luY2x1ZGUgIkIzQ29uc3RQdHJWYWx1ZS5oIgotI2luY2x1ZGUg
IkIzQ29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNJbnNlcnRpb25TZXRJbmxpbmVzLmgiCisj
aW5jbHVkZSAiQjNNZW1vcnlWYWx1ZS5oIgogI2luY2x1ZGUgIkIzUGhhc2VTY29wZS5oIgorI2lu
Y2x1ZGUgIkIzUG9seUp1bXBWYWx1ZS5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJlSW5saW5lcy5o
IgogI2luY2x1ZGUgIkIzU3dpdGNoVmFsdWUuaCIKICNpbmNsdWRlICJCM1Vwc2lsb25WYWx1ZS5o
IgpAQCAtMTE4LDggKzExOSw4IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgIEJhc2lj
QmxvY2sqIHplcm9EZW5DYXNlID0gbV9ibG9ja0luc2VydGlvblNldC5pbnNlcnRCZWZvcmUobV9i
bG9jayk7CiAgICAgICAgICAgICAgICAgICAgIEJhc2ljQmxvY2sqIG5vcm1hbE1vZENhc2UgPSBt
X2Jsb2NrSW5zZXJ0aW9uU2V0Lmluc2VydEJlZm9yZShtX2Jsb2NrKTsKIAotICAgICAgICAgICAg
ICAgICAgICBiZWZvcmUtPnJlcGxhY2VMYXN0V2l0aE5ldzxDb250cm9sVmFsdWU+KAotICAgICAg
ICAgICAgICAgICAgICAgICAgbV9wcm9jLCBCcmFuY2gsIG1fb3JpZ2luLCBtX3ZhbHVlLT5jaGls
ZCgxKSwKKyAgICAgICAgICAgICAgICAgICAgYmVmb3JlLT5yZXBsYWNlTGFzdFdpdGhOZXc8VmFs
dWU+KG1fcHJvYywgQnJhbmNoLCBtX29yaWdpbiwgbV92YWx1ZS0+Y2hpbGQoMSkpOworICAgICAg
ICAgICAgICAgICAgICBiZWZvcmUtPnNldFN1Y2Nlc3NvcnMoCiAgICAgICAgICAgICAgICAgICAg
ICAgICBGcmVxdWVudGVkQmxvY2sobm9ybWFsTW9kQ2FzZSwgRnJlcXVlbmN5Q2xhc3M6Ok5vcm1h
bCksCiAgICAgICAgICAgICAgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2soemVyb0RlbkNhc2Us
IEZyZXF1ZW5jeUNsYXNzOjpSYXJlKSk7CiAKQEAgLTEyNywxMiArMTI4LDE0IEBAIHByaXZhdGU6
CiAgICAgICAgICAgICAgICAgICAgIFZhbHVlKiBtdWx0aXBsaWVkQmFjayA9IG5vcm1hbE1vZENh
c2UtPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBNdWwsIG1fb3JpZ2luLCBkaXZSZXN1bHQsIG1f
dmFsdWUtPmNoaWxkKDEpKTsKICAgICAgICAgICAgICAgICAgICAgVmFsdWUqIHJlc3VsdCA9IG5v
cm1hbE1vZENhc2UtPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBTdWIsIG1fb3JpZ2luLCBtX3Zh
bHVlLT5jaGlsZCgwKSwgbXVsdGlwbGllZEJhY2spOwogICAgICAgICAgICAgICAgICAgICBVcHNp
bG9uVmFsdWUqIG5vcm1hbFJlc3VsdCA9IG5vcm1hbE1vZENhc2UtPmFwcGVuZE5ldzxVcHNpbG9u
VmFsdWU+KG1fcHJvYywgbV9vcmlnaW4sIHJlc3VsdCk7Ci0gICAgICAgICAgICAgICAgICAgIG5v
cm1hbE1vZENhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KG1fcHJvYywgSnVtcCwgbV9vcmln
aW4sIEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7CisgICAgICAgICAgICAgICAgICAgIG5vcm1h
bE1vZENhc2UtPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBKdW1wLCBtX29yaWdpbik7CisgICAg
ICAgICAgICAgICAgICAgIG5vcm1hbE1vZENhc2UtPnNldFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJs
b2NrKG1fYmxvY2spKTsKIAogICAgICAgICAgICAgICAgICAgICBVcHNpbG9uVmFsdWUqIHplcm9S
ZXN1bHQgPSB6ZXJvRGVuQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4oCiAgICAgICAgICAg
ICAgICAgICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLAogICAgICAgICAgICAgICAgICAgICAgICAg
emVyb0RlbkNhc2UtPmFwcGVuZEludENvbnN0YW50KG1fcHJvYywgbV92YWx1ZSwgMCkpOwotICAg
ICAgICAgICAgICAgICAgICB6ZXJvRGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4obV9w
cm9jLCBKdW1wLCBtX29yaWdpbiwgRnJlcXVlbnRlZEJsb2NrKG1fYmxvY2spKTsKKyAgICAgICAg
ICAgICAgICAgICAgemVyb0RlbkNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBKdW1wLCBt
X29yaWdpbik7CisgICAgICAgICAgICAgICAgICAgIHplcm9EZW5DYXNlLT5zZXRTdWNjZXNzb3Jz
KEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7CiAKICAgICAgICAgICAgICAgICAgICAgVmFsdWUq
IHBoaSA9IG1faW5zZXJ0aW9uU2V0Lmluc2VydDxWYWx1ZT4obV9pbmRleCwgUGhpLCBtX3ZhbHVl
LT50eXBlKCksIG1fb3JpZ2luKTsKICAgICAgICAgICAgICAgICAgICAgbm9ybWFsUmVzdWx0LT5z
ZXRQaGkocGhpKTsKQEAgLTE0Nyw3ICsxNTAsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgY2Fz
ZSBTd2l0Y2g6IHsKICAgICAgICAgICAgICAgICBTd2l0Y2hWYWx1ZSogc3dpdGNoVmFsdWUgPSBt
X3ZhbHVlLT5hczxTd2l0Y2hWYWx1ZT4oKTsKICAgICAgICAgICAgICAgICBWZWN0b3I8U3dpdGNo
Q2FzZT4gY2FzZXM7Ci0gICAgICAgICAgICAgICAgZm9yIChjb25zdCBTd2l0Y2hDYXNlJiBzd2l0
Y2hDYXNlIDogKnN3aXRjaFZhbHVlKQorICAgICAgICAgICAgICAgIGZvciAoY29uc3QgU3dpdGNo
Q2FzZSYgc3dpdGNoQ2FzZSA6IHN3aXRjaFZhbHVlLT5jYXNlcyhtX2Jsb2NrKSkKICAgICAgICAg
ICAgICAgICAgICAgY2FzZXMuYXBwZW5kKHN3aXRjaENhc2UpOwogICAgICAgICAgICAgICAgIHN0
ZDo6c29ydCgKICAgICAgICAgICAgICAgICAgICAgY2FzZXMuYmVnaW4oKSwgY2FzZXMuZW5kKCks
CkBAIC0yMTAsMjcgKzIxMywyNyBAQCBwcml2YXRlOgogICAgICAgICBCYXNpY0Jsb2NrKiBuZWcx
RGVuQ2FzZSA9IG1fYmxvY2tJbnNlcnRpb25TZXQuaW5zZXJ0QmVmb3JlKG1fYmxvY2spOwogICAg
ICAgICBCYXNpY0Jsb2NrKiBpbnRNaW5DYXNlID0gbV9ibG9ja0luc2VydGlvblNldC5pbnNlcnRC
ZWZvcmUobV9ibG9jayk7CiAKLSAgICAgICAgYmVmb3JlLT5yZXBsYWNlTGFzdFdpdGhOZXc8Q29u
dHJvbFZhbHVlPigKLSAgICAgICAgICAgIG1fcHJvYywgQnJhbmNoLCBtX29yaWdpbiwgaXNEZW5P
SywKKyAgICAgICAgYmVmb3JlLT5yZXBsYWNlTGFzdFdpdGhOZXc8VmFsdWU+KG1fcHJvYywgQnJh
bmNoLCBtX29yaWdpbiwgaXNEZW5PSyk7CisgICAgICAgIGJlZm9yZS0+c2V0U3VjY2Vzc29ycygK
ICAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhub3JtYWxEaXZDYXNlLCBGcmVxdWVuY3lDbGFz
czo6Tm9ybWFsKSwKICAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhzaGFkeURlbkNhc2UsIEZy
ZXF1ZW5jeUNsYXNzOjpSYXJlKSk7CiAKICAgICAgICAgVXBzaWxvblZhbHVlKiBub3JtYWxSZXN1
bHQgPSBub3JtYWxEaXZDYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPigKICAgICAgICAgICAg
IG1fcHJvYywgbV9vcmlnaW4sCiAgICAgICAgICAgICBub3JtYWxEaXZDYXNlLT5hcHBlbmROZXc8
VmFsdWU+KG1fcHJvYywgbm9uQ2hpbGxPcGNvZGUsIG1fb3JpZ2luLCBudW0sIGRlbikpOwotICAg
ICAgICBub3JtYWxEaXZDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgICAg
IG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7CisgICAg
ICAgIG5vcm1hbERpdkNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBKdW1wLCBtX29yaWdp
bik7CisgICAgICAgIG5vcm1hbERpdkNhc2UtPnNldFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2Nr
KG1fYmxvY2spKTsKIAotICAgICAgICBzaGFkeURlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAotICAgICAgICAgICAgbV9wcm9jLCBCcmFuY2gsIG1fb3JpZ2luLCBkZW4sCisgICAgICAg
IHNoYWR5RGVuQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIEJyYW5jaCwgbV9vcmlnaW4s
IGRlbik7CisgICAgICAgIHNoYWR5RGVuQ2FzZS0+c2V0U3VjY2Vzc29ycygKICAgICAgICAgICAg
IEZyZXF1ZW50ZWRCbG9jayhuZWcxRGVuQ2FzZSwgRnJlcXVlbmN5Q2xhc3M6Ok5vcm1hbCksCiAg
ICAgICAgICAgICBGcmVxdWVudGVkQmxvY2soemVyb0RlbkNhc2UsIEZyZXF1ZW5jeUNsYXNzOjpS
YXJlKSk7CiAKICAgICAgICAgVXBzaWxvblZhbHVlKiB6ZXJvUmVzdWx0ID0gemVyb0RlbkNhc2Ut
PmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KAogICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwK
ICAgICAgICAgICAgIHplcm9EZW5DYXNlLT5hcHBlbmRJbnRDb25zdGFudChtX3Byb2MsIG1fdmFs
dWUsIDApKTsKLSAgICAgICAgemVyb0RlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAot
ICAgICAgICAgICAgbV9wcm9jLCBKdW1wLCBtX29yaWdpbiwgRnJlcXVlbnRlZEJsb2NrKG1fYmxv
Y2spKTsKKyAgICAgICAgemVyb0RlbkNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBKdW1w
LCBtX29yaWdpbik7CisgICAgICAgIHplcm9EZW5DYXNlLT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50
ZWRCbG9jayhtX2Jsb2NrKSk7CiAKICAgICAgICAgaW50NjRfdCBiYWROdW1lcmF0b3JDb25zdCA9
IDA7CiAgICAgICAgIHN3aXRjaCAobV92YWx1ZS0+dHlwZSgpKSB7CkBAIC0yNDgsMTggKzI1MSwx
OSBAQCBwcml2YXRlOgogICAgICAgICBWYWx1ZSogYmFkTnVtZXJhdG9yID0KICAgICAgICAgICAg
IG5lZzFEZW5DYXNlLT5hcHBlbmRJbnRDb25zdGFudChtX3Byb2MsIG1fdmFsdWUsIGJhZE51bWVy
YXRvckNvbnN0KTsKIAotICAgICAgICBuZWcxRGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgICAgIG5lZzFEZW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
bV9wcm9jLCBCcmFuY2gsIG1fb3JpZ2luLAogICAgICAgICAgICAgbmVnMURlbkNhc2UtPmFwcGVu
ZE5ldzxWYWx1ZT4oCi0gICAgICAgICAgICAgICAgbV9wcm9jLCBFcXVhbCwgbV9vcmlnaW4sIG51
bSwgYmFkTnVtZXJhdG9yKSwKKyAgICAgICAgICAgICAgICBtX3Byb2MsIEVxdWFsLCBtX29yaWdp
biwgbnVtLCBiYWROdW1lcmF0b3IpKTsKKyAgICAgICAgbmVnMURlbkNhc2UtPnNldFN1Y2Nlc3Nv
cnMoCiAgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2soaW50TWluQ2FzZSwgRnJlcXVlbmN5Q2xh
c3M6OlJhcmUpLAogICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKG5vcm1hbERpdkNhc2UsIEZy
ZXF1ZW5jeUNsYXNzOjpOb3JtYWwpKTsKIAogICAgICAgICBWYWx1ZSogaW50TWluUmVzdWx0ID0g
bm9uQ2hpbGxPcGNvZGUgPT0gRGl2ID8gYmFkTnVtZXJhdG9yIDogaW50TWluQ2FzZS0+YXBwZW5k
SW50Q29uc3RhbnQobV9wcm9jLCBtX3ZhbHVlLCAwKTsKICAgICAgICAgVXBzaWxvblZhbHVlKiBp
bnRNaW5SZXN1bHRVcHNpbG9uID0gaW50TWluQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4o
CiAgICAgICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLCBpbnRNaW5SZXN1bHQpOwotICAgICAgICBp
bnRNaW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgICAgIG1fcHJvYywg
SnVtcCwgbV9vcmlnaW4sIEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7CisgICAgICAgIGludE1p
bkNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBKdW1wLCBtX29yaWdpbik7CisgICAgICAg
IGludE1pbkNhc2UtPnNldFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2NrKG1fYmxvY2spKTsKIAog
ICAgICAgICBWYWx1ZSogcGhpID0gbV9pbnNlcnRpb25TZXQuaW5zZXJ0PFZhbHVlPigKICAgICAg
ICAgICAgIG1faW5kZXgsIFBoaSwgbV92YWx1ZS0+dHlwZSgpLCBtX29yaWdpbik7CkBAIC0yNzUs
OCArMjc5LDEwNyBAQCBwcml2YXRlOgogICAgICAgICBjb25zdCBWZWN0b3I8U3dpdGNoQ2FzZT4m
IGNhc2VzLCB1bnNpZ25lZCBzdGFydCwgYm9vbCBoYXJkU3RhcnQsIHVuc2lnbmVkIGVuZCwKICAg
ICAgICAgQmFzaWNCbG9jayogYmVmb3JlKQogICAgIHsKLSAgICAgICAgLy8gRklYTUU6IEFkZCB0
YWJsZS1iYXNlZCBzd2l0Y2ggbG93ZXJpbmcuCi0gICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTExNDEKKyAgICAgICAgVmFsdWUqIGNoaWxkID0gbV92
YWx1ZS0+Y2hpbGQoMCk7CisgICAgICAgIFR5cGUgdHlwZSA9IGNoaWxkLT50eXBlKCk7CisgICAg
ICAgIEZyZXF1ZW50ZWRCbG9jayBmYWxsVGhyb3VnaCA9IG1fYmxvY2stPmZhbGxUaHJvdWdoKCk7
CisgICAgICAgIAorICAgICAgICAvLyBJdCdzIGEgZ29vZCBpZGVhIHRvIHVzZSBhIHRhYmxlLWJh
c2VkIHN3aXRjaCBpbiBzb21lIGNhc2VzOiB0aGUgbnVtYmVyIG9mIGNhc2VzIGhhcyB0byBiZQor
ICAgICAgICAvLyBsYXJnZSBlbm91Z2ggYW5kIHRoZXkgaGF2ZSB0byBiZSBkZW5zZSBlbm91Z2gu
IFRoaXMgY291bGQgcHJvYmFibHkgYmUgaW1wcm92ZWQgYSBsb3QuIEZvcgorICAgICAgICAvLyBl
eGFtcGxlLCB3ZSBjb3VsZCBzdGlsbCB1c2UgYSBqdW1wIHRhYmxlIGluIGNhc2VzIHdoZXJlIHRo
ZSBpbnB1dHMgYXJlIHNwYXJzZSBzbyBsb25nIGFzIHdlCisgICAgICAgIC8vIHNoaWZ0IG9mZiB0
aGUgdW5pbnRlcmVzdGluZyBiaXRzLiBPbiB0aGUgb3RoZXIgaGFuZCwgaXQncyBub3QgY2xlYXIg
dGhhdCB0aGlzIHdvdWxkCisgICAgICAgIC8vIGFjdHVhbGx5IGJlIGFueSBiZXR0ZXIgdGhhbiB3
aGF0IHdlIGhhdmUgZG9uZSBoZXJlIGFuZCBpdCdzIG5vdCBjbGVhciB0aGF0IGl0IHdvdWxkIGJl
CisgICAgICAgIC8vIGJldHRlciB0aGFuIGEgYmluYXJ5IHN3aXRjaC4KKyAgICAgICAgY29uc3Qg
dW5zaWduZWQgbWluQ2FzZXNGb3JUYWJsZSA9IDc7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGRl
bnNpdHlMaW1pdCA9IDQ7CisgICAgICAgIGlmIChlbmQgLSBzdGFydCA+PSBtaW5DYXNlc0ZvclRh
YmxlKSB7CisgICAgICAgICAgICBpbnQ2NF90IGZpcnN0VmFsdWUgPSBjYXNlc1tzdGFydF0uY2Fz
ZVZhbHVlKCk7CisgICAgICAgICAgICBpbnQ2NF90IGxhc3RWYWx1ZSA9IGNhc2VzW2VuZCAtIDFd
LmNhc2VWYWx1ZSgpOworICAgICAgICAgICAgaWYgKChsYXN0VmFsdWUgLSBmaXJzdFZhbHVlICsg
MSkgLyBjYXNlcy5zaXplKCkgPCBkZW5zaXR5TGltaXQpIHsKKyAgICAgICAgICAgICAgICBCYXNp
Y0Jsb2NrKiBzd2l0Y2hCbG9jayA9IG1fYmxvY2tJbnNlcnRpb25TZXQuaW5zZXJ0QWZ0ZXIobV9i
bG9jayk7CisgICAgICAgICAgICAgICAgVmFsdWUqIGluZGV4ID0gYmVmb3JlLT5hcHBlbmROZXc8
VmFsdWU+KAorICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIFN1YiwgbV9vcmlnaW4sIGNoaWxk
LAorICAgICAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZEludENvbnN0YW50KG1fcHJvYywg
bV9vcmlnaW4sIHR5cGUsIGZpcnN0VmFsdWUpKTsKKyAgICAgICAgICAgICAgICBiZWZvcmUtPmFw
cGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgQnJhbmNoLCBtX29y
aWdpbiwKKyAgICAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+KAorICAg
ICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBBYm92ZSwgbV9vcmlnaW4sIGluZGV4LAorICAg
ICAgICAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmRJbnRDb25zdGFudChtX3Byb2MsIG1f
b3JpZ2luLCB0eXBlLCBsYXN0VmFsdWUgLSBmaXJzdFZhbHVlKSkpOworICAgICAgICAgICAgICAg
IGJlZm9yZS0+c2V0U3VjY2Vzc29ycyhmYWxsVGhyb3VnaCwgRnJlcXVlbnRlZEJsb2NrKHN3aXRj
aEJsb2NrKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgc2l6ZV90IHRhYmxl
U2l6ZSA9IGxhc3RWYWx1ZSAtIGZpcnN0VmFsdWUgKyAxOworICAgICAgICAgICAgICAgIAorICAg
ICAgICAgICAgICAgIGlmIChpbmRleC0+dHlwZSgpICE9IGJhc2UtPnR5cGUoKSkgeworICAgICAg
ICAgICAgICAgICAgICBpZiAoaW5kZXgtPnR5cGUoKSA9PSBJbnQzMikKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGluZGV4ID0gc3dpdGNoQmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBa
RXh0MzIsIG1fb3JpZ2luLCBpbmRleCk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGluZGV4ID0gc3dpdGNoQmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4o
bV9wcm9jLCBUcnVuYywgbV9vcmlnaW4sIGluZGV4KTsKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgUGF0Y2hwb2ludFZhbHVlKiBwYXRjaHBvaW50
ID0KKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoQmxvY2stPmFwcGVuZE5ldzxQYXRjaHBvaW50
VmFsdWU+KG1fcHJvYywgVm9pZCwgbV9vcmlnaW4pOworICAgICAgICAgICAgICAgIAorICAgICAg
ICAgICAgICAgIHBhdGNocG9pbnQtPmVmZmVjdHMudGVybWluYWwgPSB0cnVlOworICAgICAgICAg
ICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZFNvbWVSZWdpc3RlcihpbmRleCk7CisgICAgICAgICAg
ICAgICAgcGF0Y2hwb2ludC0+bnVtR1BTY3JhdGNoUmVnaXN0ZXJzKys7CisgICAgICAgICAgICAg
ICAgLy8gVGVjaG5pY2FsbHksIHdlIGRvbid0IGhhdmUgdG8gY2xvYmJlciBtYWNybyByZWdpc3Rl
cnMgb24gWDg2XzY0LiBUaGlzIGlzIHByb2JhYmx5CisgICAgICAgICAgICAgICAgLy8gT0sgdGhv
dWdoLgorICAgICAgICAgICAgICAgIHBhdGNocG9pbnQtPmNsb2JiZXIoUmVnaXN0ZXJTZXQ6Om1h
Y3JvU2NyYXRjaFJlZ2lzdGVycygpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAg
ICBCaXRWZWN0b3IgaGFuZGxlZEluZGljZXM7CisgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25l
ZCBpID0gc3RhcnQ7IGkgPCBlbmQ7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBGcmVxdWVu
dGVkQmxvY2sgYmxvY2sgPSBjYXNlc1tpXS50YXJnZXQoKTsKKyAgICAgICAgICAgICAgICAgICAg
aW50NjRfdCB2YWx1ZSA9IGNhc2VzW2ldLmNhc2VWYWx1ZSgpOworICAgICAgICAgICAgICAgICAg
ICBzd2l0Y2hCbG9jay0+YXBwZW5kU3VjY2Vzc29yKGJsb2NrKTsKKyAgICAgICAgICAgICAgICAg
ICAgc2l6ZV90IGluZGV4ID0gdmFsdWUgLSBmaXJzdFZhbHVlOworICAgICAgICAgICAgICAgICAg
ICBBU1NFUlQoIWhhbmRsZWRJbmRpY2VzLmdldChpbmRleCkpOworICAgICAgICAgICAgICAgICAg
ICBoYW5kbGVkSW5kaWNlcy5zZXQoaW5kZXgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAKKyAgICAgICAgICAgICAgICBib29sIGhhc1VuaGFuZGxlZEluZGV4ID0gZmFsc2U7
CisgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHRhYmxlU2l6ZTsgKytp
KSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghaGFuZGxlZEluZGljZXMuZ2V0KGkpKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBoYXNVbmhhbmRsZWRJbmRleCA9IHRydWU7CisgICAgICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoaGFzVW5oYW5k
bGVkSW5kZXgpCisgICAgICAgICAgICAgICAgICAgIHN3aXRjaEJsb2NrLT5hcHBlbmRTdWNjZXNz
b3IoZmFsbFRocm91Z2gpOworCisgICAgICAgICAgICAgICAgcGF0Y2hwb2ludC0+c2V0R2VuZXJh
dG9yKAorICAgICAgICAgICAgICAgICAgICBbPV0gKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBT
dGFja21hcEdlbmVyYXRpb25QYXJhbXMmIHBhcmFtcykgeworICAgICAgICAgICAgICAgICAgICAg
ICAgQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlIGFsbG93U2NyYXRjaChqaXQpOworICAg
ICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBNYWNyb0Fzc2Vt
YmxlckNvZGVQdHIqIGp1bXBUYWJsZSA9IHBhcmFtcy5wcm9jKCkuYWRkRGF0YVNlY3Rpb24oCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKE1hY3JvQXNzZW1ibGVyQ29kZVB0cikg
KiB0YWJsZVNpemUpOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAg
ICAgICAgICBHUFJSZWcgaW5kZXggPSBwYXJhbXNbMF0uZ3ByKCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBHUFJSZWcgc2NyYXRjaCA9IHBhcmFtcy5ncFNjcmF0Y2goMCk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGppdC5tb3ZlKFRydXN0ZWRJ
bW1QdHIoanVtcFRhYmxlKSwgc2NyYXRjaCk7CisgICAgICAgICAgICAgICAgICAgICAgICBqaXQu
anVtcChDQ2FsbEhlbHBlcnM6OkJhc2VJbmRleChzY3JhdGNoLCBpbmRleCwgQ0NhbGxIZWxwZXJz
Ojp0aW1lc1B0cigpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAg
ICAgICAgICAgIFZlY3RvcjxCb3g8Q0NhbGxIZWxwZXJzOjpMYWJlbD4+IGxhYmVscyA9IHBhcmFt
cy5zdWNjZXNzb3JMYWJlbHMoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAg
ICAgICAgICAgICAgICAgaml0LmFkZExpbmtUYXNrKAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFs9XSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoaGFzVW5oYW5kbGVkSW5kZXgpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBmYWxsVGhyb3VnaCA9CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlua0J1ZmZlci5sb2NhdGlvbk9m
KCpsYWJlbHMubGFzdCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZv
ciAodW5zaWduZWQgaSA9IHRhYmxlU2l6ZTsgaS0tOykKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBqdW1wVGFibGVbaV0gPSBmYWxsVGhyb3VnaDsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbGFiZWxJbmRleCA9IDA7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgdGFibGVJbmRl
eCA6IGhhbmRsZWRJbmRpY2VzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBqdW1wVGFibGVbdGFibGVJbmRleF0gPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxpbmtCdWZmZXIubG9jYXRpb25PZigqbGFiZWxzW2xhYmVsSW5kZXgrK10pOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgICAgICAKICAgICAgICAgLy8gU2VlIGNv
bW1lbnRzIGluIGppdC9CaW5hcnlTd2l0Y2guY3BwIGZvciBhIGp1c3RpZmljYXRpb24gb2YgdGhp
cyBhbGdvcml0aG0uIFRoZSBvbmx5CiAgICAgICAgIC8vIHRoaW5nIHdlIGRvIGRpZmZlcmVudGx5
IGlzIHRoYXQgd2UgZG9uJ3QgdXNlIHJhbmRvbW5lc3MuCkBAIC0zMDQsMjUgKzQwNywyMyBAQCBw
cml2YXRlOgogICAgICAgICAgICAgCiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgbGltaXQ7ICsraSkgewogICAgICAgICAgICAgICAgIEJhc2ljQmxvY2sqIG5leHRDaGVjayA9
IG1fYmxvY2tJbnNlcnRpb25TZXQuaW5zZXJ0QWZ0ZXIobV9ibG9jayk7Ci0gICAgICAgICAgICAg
ICAgYmVmb3JlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgICAgICAgICBiZWZv
cmUtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgQnJhbmNo
LCBtX29yaWdpbiwKICAgICAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+
KAotICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBFcXVhbCwgbV9vcmlnaW4sIG1fdmFs
dWUtPmNoaWxkKDApLAorICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBFcXVhbCwgbV9v
cmlnaW4sIGNoaWxkLAogICAgICAgICAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmRJbnRD
b25zdGFudCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLCBt
X3ZhbHVlLT5jaGlsZCgwKS0+dHlwZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNh
c2VzW3N0YXJ0ICsgaV0uY2FzZVZhbHVlKCkpKSwKLSAgICAgICAgICAgICAgICAgICAgY2FzZXNb
c3RhcnQgKyBpXS50YXJnZXQoKSwgRnJlcXVlbnRlZEJsb2NrKG5leHRDaGVjaykpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgbV9vcmlnaW4sIHR5cGUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY2FzZXNbc3RhcnQgKyBpXS5jYXNlVmFsdWUoKSkpKTsKKyAgICAg
ICAgICAgICAgICBiZWZvcmUtPnNldFN1Y2Nlc3NvcnMoY2FzZXNbc3RhcnQgKyBpXS50YXJnZXQo
KSwgRnJlcXVlbnRlZEJsb2NrKG5leHRDaGVjaykpOwogCiAgICAgICAgICAgICAgICAgYmVmb3Jl
ID0gbmV4dENoZWNrOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBpZiAoYWxsQ29uc2Vj
dXRpdmUpIHsKLSAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAotICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIEp1bXAsIG1fb3JpZ2luLCBjYXNlc1tlbmQg
LSAxXS50YXJnZXQoKSk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGJl
Zm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCi0gICAgICAgICAgICAgICAgICAgIG1fcHJv
YywgSnVtcCwgbV9vcmlnaW4sIG1fdmFsdWUtPmFzPFN3aXRjaFZhbHVlPigpLT5mYWxsVGhyb3Vn
aCgpKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PFZhbHVl
PihtX3Byb2MsIEp1bXAsIG1fb3JpZ2luKTsKKyAgICAgICAgICAgIGlmIChhbGxDb25zZWN1dGl2
ZSkKKyAgICAgICAgICAgICAgICBiZWZvcmUtPnNldFN1Y2Nlc3NvcnMoY2FzZXNbZW5kIC0gMV0u
dGFyZ2V0KCkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGJlZm9yZS0+c2V0
U3VjY2Vzc29ycyhmYWxsVGhyb3VnaCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
IApAQCAtMzMxLDE0ICs0MzIsMTQgQEAgcHJpdmF0ZToKICAgICAgICAgQmFzaWNCbG9jayogbGVm
dCA9IG1fYmxvY2tJbnNlcnRpb25TZXQuaW5zZXJ0QWZ0ZXIobV9ibG9jayk7CiAgICAgICAgIEJh
c2ljQmxvY2sqIHJpZ2h0ID0gbV9ibG9ja0luc2VydGlvblNldC5pbnNlcnRBZnRlcihtX2Jsb2Nr
KTsKIAotICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICBi
ZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBtX3Byb2MsIEJyYW5jaCwgbV9v
cmlnaW4sCiAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4oCi0gICAgICAgICAg
ICAgICAgbV9wcm9jLCBMZXNzVGhhbiwgbV9vcmlnaW4sIG1fdmFsdWUtPmNoaWxkKDApLAorICAg
ICAgICAgICAgICAgIG1fcHJvYywgTGVzc1RoYW4sIG1fb3JpZ2luLCBjaGlsZCwKICAgICAgICAg
ICAgICAgICBiZWZvcmUtPmFwcGVuZEludENvbnN0YW50KAotICAgICAgICAgICAgICAgICAgICBt
X3Byb2MsIG1fb3JpZ2luLCBtX3ZhbHVlLT5jaGlsZCgwKS0+dHlwZSgpLAotICAgICAgICAgICAg
ICAgICAgICBjYXNlc1ttZWRpYW5JbmRleF0uY2FzZVZhbHVlKCkpKSwKLSAgICAgICAgICAgIEZy
ZXF1ZW50ZWRCbG9jayhsZWZ0KSwgRnJlcXVlbnRlZEJsb2NrKHJpZ2h0KSk7CisgICAgICAgICAg
ICAgICAgICAgIG1fcHJvYywgbV9vcmlnaW4sIHR5cGUsCisgICAgICAgICAgICAgICAgICAgIGNh
c2VzW21lZGlhbkluZGV4XS5jYXNlVmFsdWUoKSkpKTsKKyAgICAgICAgYmVmb3JlLT5zZXRTdWNj
ZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhsZWZ0KSwgRnJlcXVlbnRlZEJsb2NrKHJpZ2h0KSk7CiAK
ICAgICAgICAgcmVjdXJzaXZlbHlCdWlsZFN3aXRjaChjYXNlcywgc3RhcnQsIGhhcmRTdGFydCwg
bWVkaWFuSW5kZXgsIGxlZnQpOwogICAgICAgICByZWN1cnNpdmVseUJ1aWxkU3dpdGNoKGNhc2Vz
LCBtZWRpYW5JbmRleCwgdHJ1ZSwgZW5kLCByaWdodCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1NSw3
ICsxNTUsNiBAQCBwdWJsaWM6CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIC8vIE1ha2Ug
c3VyZSB0aGF0IHRoZSBzdWNjZXNzb3JzIGFyZSBzZXQgdXAgY29ycmVjdGx5LgotICAgICAgICAg
ICAgQVNTRVJUKGJsb2NrLT5zdWNjZXNzb3JzKCkuc2l6ZSgpIDw9IDIpOwogICAgICAgICAgICAg
Zm9yIChCMzo6RnJlcXVlbnRlZEJsb2NrIHN1Y2Nlc3NvciA6IGJsb2NrLT5zdWNjZXNzb3JzKCkp
IHsKICAgICAgICAgICAgICAgICBtX2Jsb2NrVG9CbG9ja1tibG9ja10tPnN1Y2Nlc3NvcnMoKS5h
cHBlbmQoCiAgICAgICAgICAgICAgICAgICAgIEFpcjo6RnJlcXVlbnRlZEJsb2NrKG1fYmxvY2tU
b0Jsb2NrW3N1Y2Nlc3Nvci5ibG9jaygpXSwgc3VjY2Vzc29yLmZyZXF1ZW5jeSgpKSk7CkBAIC0y
NDQxLDYgKzI0NDAsMTYgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIGNhc2UgQjM6OlBvbHlKdW1w
OiB7CisgICAgICAgICAgICBBcmdQcm9taXNlIGFkZHIgPSBsb2FkUHJvbWlzZShtX3ZhbHVlLT5j
aGlsZCgwKSk7CisgICAgICAgICAgICBpZiAoaXNWYWxpZEZvcm0oQWlyOjpQb2x5SnVtcCwgYWRk
ci5raW5kKCkpKSB7CisgICAgICAgICAgICAgICAgYXBwZW5kKEFpcjo6UG9seUp1bXAsIGFkZHIu
Y29uc3VtZSgqdGhpcykpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIGFwcGVuZChBaXI6OlBvbHlKdW1wLCB0bXAobV92YWx1ZS0+Y2hpbGQoMCkp
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogCiAgICAgICAgIGNhc2UgQjM6Ok9v
cHM6IHsKICAgICAgICAgICAgIGFwcGVuZChBaXI6Ok9vcHMpOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzTWF0aEV4dHJhcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzTWF0aEV4dHJhcy5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM01hdGhFeHRyYXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDcg
KzMzLDYgQEAKICNpbmNsdWRlICJCM0NvbnN0MzJWYWx1ZS5oIgogI2luY2x1ZGUgIkIzQ29uc3RE
b3VibGVWYWx1ZS5oIgogI2luY2x1ZGUgIkIzQ29uc3RQdHJWYWx1ZS5oIgotI2luY2x1ZGUgIkIz
Q29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNVcHNpbG9uVmFsdWUuaCIKICNpbmNsdWRlICJC
M1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIk1hdGhDb21tb24uaCIKQEAgLTUyLDEwICs1MSw4
IEBAIHN0ZDo6cGFpcjxCYXNpY0Jsb2NrKiwgVmFsdWUqPiBwb3dEb3VibGUKICAgICBWYWx1ZSog
c2hvdWxkR29TbG93UGF0aCA9IHN0YXJ0LT5hcHBlbmROZXc8VmFsdWU+KHByb2NlZHVyZSwgQWJv
dmUsIG9yaWdpbiwKICAgICAgICAgeSwKICAgICAgICAgc3RhcnQtPmFwcGVuZE5ldzxDb25zdDMy
VmFsdWU+KHByb2NlZHVyZSwgb3JpZ2luLCBtYXhFeHBvbmVudEZvckludGVnZXJNYXRoUG93KSk7
Ci0gICAgc3RhcnQtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAotICAgICAgICBwcm9jZWR1cmUs
IEJyYW5jaCwgb3JpZ2luLAotICAgICAgICBzaG91bGRHb1Nsb3dQYXRoLAotICAgICAgICBGcmVx
dWVudGVkQmxvY2soZnVuY3Rpb25DYWxsQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhsb29wUHJlSGVh
ZGVyQ2FzZSkpOworICAgIHN0YXJ0LT5hcHBlbmROZXc8VmFsdWU+KHByb2NlZHVyZSwgQnJhbmNo
LCBvcmlnaW4sIHNob3VsZEdvU2xvd1BhdGgpOworICAgIHN0YXJ0LT5zZXRTdWNjZXNzb3JzKEZy
ZXF1ZW50ZWRCbG9jayhmdW5jdGlvbkNhbGxDYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3BQcmVI
ZWFkZXJDYXNlKSk7CiAKICAgICAvLyBGdW5jdGlvbiBjYWxsLgogICAgIFZhbHVlKiB5QXNEb3Vi
bGUgPSBmdW5jdGlvbkNhbGxDYXNlLT5hcHBlbmROZXc8VmFsdWU+KHByb2NlZHVyZSwgSVRvRCwg
b3JpZ2luLCB5KTsKQEAgLTY1LDcgKzYyLDggQEAgc3RkOjpwYWlyPEJhc2ljQmxvY2sqLCBWYWx1
ZSo+IHBvd0RvdWJsZQogICAgICAgICBmdW5jdGlvbkNhbGxDYXNlLT5hcHBlbmROZXc8Q29uc3RQ
dHJWYWx1ZT4ocHJvY2VkdXJlLCBvcmlnaW4sIGJpdHdpc2VfY2FzdDx2b2lkKj4ocG93RG91Ymxl
KSksCiAgICAgICAgIHgsIHlBc0RvdWJsZSk7CiAgICAgVXBzaWxvblZhbHVlKiBwb3dSZXN1bHRV
cHNpbG9uID0gZnVuY3Rpb25DYWxsQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvY2Vk
dXJlLCBvcmlnaW4sIHBvd1Jlc3VsdCk7Ci0gICAgZnVuY3Rpb25DYWxsQ2FzZS0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvY2VkdXJlLCBKdW1wLCBvcmlnaW4sIEZyZXF1ZW50ZWRCbG9jayhj
b250aW51YXRpb24pKTsKKyAgICBmdW5jdGlvbkNhbGxDYXNlLT5hcHBlbmROZXc8VmFsdWU+KHBy
b2NlZHVyZSwgSnVtcCwgb3JpZ2luKTsKKyAgICBmdW5jdGlvbkNhbGxDYXNlLT5zZXRTdWNjZXNz
b3JzKEZyZXF1ZW50ZWRCbG9jayhjb250aW51YXRpb24pKTsKIAogICAgIC8vIExvb3AgcHJlLWhl
YWRlci4KICAgICBWYWx1ZSogaW5pdGlhbFJlc3VsdCA9IGxvb3BQcmVIZWFkZXJDYXNlLT5hcHBl
bmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvY2VkdXJlLCBvcmlnaW4sIDEuKTsKQEAgLTczLDcg
KzcxLDggQEAgc3RkOjpwYWlyPEJhc2ljQmxvY2sqLCBWYWx1ZSo+IHBvd0RvdWJsZQogICAgIFVw
c2lsb25WYWx1ZSogaW5pdGlhbFJlc3VsdFZhbHVlID0gbG9vcFByZUhlYWRlckNhc2UtPmFwcGVu
ZE5ldzxVcHNpbG9uVmFsdWU+KHByb2NlZHVyZSwgb3JpZ2luLCBpbml0aWFsUmVzdWx0KTsKICAg
ICBVcHNpbG9uVmFsdWUqIGluaXRpYWxTcXVhcmVkSW5wdXQgPSBsb29wUHJlSGVhZGVyQ2FzZS0+
YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvY2VkdXJlLCBvcmlnaW4sIHgpOwogICAgIFVwc2ls
b25WYWx1ZSogaW5pdGlhbExvb3BDb3VudGVyID0gbG9vcFByZUhlYWRlckNhc2UtPmFwcGVuZE5l
dzxVcHNpbG9uVmFsdWU+KHByb2NlZHVyZSwgb3JpZ2luLCB5KTsKLSAgICBsb29wUHJlSGVhZGVy
Q2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvY2VkdXJlLCBKdW1wLCBvcmlnaW4sIEZy
ZXF1ZW50ZWRCbG9jayhsb29wVGVzdEZvckV2ZW5DYXNlKSk7CisgICAgbG9vcFByZUhlYWRlckNh
c2UtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvY2VkdXJlLCBKdW1wLCBvcmlnaW4pOworICAgIGxvb3BQ
cmVIZWFkZXJDYXNlLT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhsb29wVGVzdEZvckV2
ZW5DYXNlKSk7CiAKICAgICAvLyBUZXN0IGlmIHdoYXQgaXMgbGVmdCBvZiB0aGUgY291bnRlciBp
cyBldmVuLgogICAgIFZhbHVlKiBpbkxvb3BDb3VudGVyID0gbG9vcFRlc3RGb3JFdmVuQ2FzZS0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jZWR1cmUsIFBoaSwgSW50MzIsIG9yaWdpbik7CkBAIC04MSwx
MCArODAsOCBAQCBzdGQ6OnBhaXI8QmFzaWNCbG9jayosIFZhbHVlKj4gcG93RG91YmxlCiAgICAg
VmFsdWUqIGxhc3RDb3VudGVyQml0ID0gbG9vcFRlc3RGb3JFdmVuQ2FzZS0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jZWR1cmUsIEJpdEFuZCwgb3JpZ2luLAogICAgICAgICBpbkxvb3BDb3VudGVyLAog
ICAgICAgICBsb29wVGVzdEZvckV2ZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
ZWR1cmUsIG9yaWdpbiwgMSkpOwotICAgIGxvb3BUZXN0Rm9yRXZlbkNhc2UtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAotICAgICAgICBwcm9jZWR1cmUsIEJyYW5jaCwgb3JpZ2luLAotICAgICAg
ICBsYXN0Q291bnRlckJpdCwKLSAgICAgICAgRnJlcXVlbnRlZEJsb2NrKGxvb3BPZGQpLCBGcmVx
dWVudGVkQmxvY2sobG9vcEV2ZW5PZGQpKTsKKyAgICBsb29wVGVzdEZvckV2ZW5DYXNlLT5hcHBl
bmROZXc8VmFsdWU+KHByb2NlZHVyZSwgQnJhbmNoLCBvcmlnaW4sIGxhc3RDb3VudGVyQml0KTsK
KyAgICBsb29wVGVzdEZvckV2ZW5DYXNlLT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhs
b29wT2RkKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3BFdmVuT2RkKSk7CiAKICAgICAvLyBDb3VudGVy
IGlzIG9kZC4KICAgICBWYWx1ZSogaW5Mb29wUmVzdWx0ID0gbG9vcE9kZC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jZWR1cmUsIFBoaSwgRG91YmxlLCBvcmlnaW4pOwpAQCAtOTQsNyArOTEsOCBAQCBz
dGQ6OnBhaXI8QmFzaWNCbG9jayosIFZhbHVlKj4gcG93RG91YmxlCiAgICAgdXBkYXRlZExvb3BS
ZXN1bHRVcHNpbG9uLT5zZXRQaGkoaW5Mb29wUmVzdWx0KTsKICAgICBVcHNpbG9uVmFsdWUqIHVw
ZGF0ZWRMb29wUmVzdWx0ID0gbG9vcE9kZC0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvY2Vk
dXJlLCBvcmlnaW4sIHVwZGF0ZWRSZXN1bHQpOwogCi0gICAgbG9vcE9kZC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvY2VkdXJlLCBKdW1wLCBvcmlnaW4sIEZyZXF1ZW50ZWRCbG9jayhsb29w
RXZlbk9kZCkpOworICAgIGxvb3BPZGQtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvY2VkdXJlLCBKdW1w
LCBvcmlnaW4pOworICAgIGxvb3BPZGQtPnNldFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2NrKGxv
b3BFdmVuT2RkKSk7CiAKICAgICAvLyBFdmVuIHZhbHVlIGFuZCBmb2xsb3dpbmcgdGhlIE9kZC4K
ICAgICBWYWx1ZSogc3F1YXJlZElucHV0ID0gbG9vcEV2ZW5PZGQtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvY2VkdXJlLCBNdWwsIG9yaWdpbiwgaW5Mb29wU3F1YXJlZElucHV0LCBpbkxvb3BTcXVhcmVk
SW5wdXQpOwpAQCAtMTA5LDEwICsxMDcsOCBAQCBzdGQ6OnBhaXI8QmFzaWNCbG9jayosIFZhbHVl
Kj4gcG93RG91YmxlCiAgICAgaW5pdGlhbExvb3BDb3VudGVyLT5zZXRQaGkoaW5Mb29wQ291bnRl
cik7CiAgICAgdXBkYXRlZENvdW50ZXJVcHNpbG9uLT5zZXRQaGkoaW5Mb29wQ291bnRlcik7CiAK
LSAgICBsb29wRXZlbk9kZC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCi0gICAgICAgIHByb2Nl
ZHVyZSwgQnJhbmNoLCBvcmlnaW4sCi0gICAgICAgIHVwZGF0ZWRDb3VudGVyLAotICAgICAgICBG
cmVxdWVudGVkQmxvY2sobG9vcFRlc3RGb3JFdmVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhjb250
aW51YXRpb24pKTsKKyAgICBsb29wRXZlbk9kZC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jZWR1cmUs
IEJyYW5jaCwgb3JpZ2luLCB1cGRhdGVkQ291bnRlcik7CisgICAgbG9vcEV2ZW5PZGQtPnNldFN1
Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2NrKGxvb3BUZXN0Rm9yRXZlbkNhc2UpLCBGcmVxdWVudGVk
QmxvY2soY29udGludWF0aW9uKSk7CiAKICAgICAvLyBJbmxpbmUgbG9vcC4KICAgICBWYWx1ZSog
ZmluYWxSZXN1bHRQaGkgPSBjb250aW51YXRpb24tPmFwcGVuZE5ldzxWYWx1ZT4ocHJvY2VkdXJl
LCBQaGksIERvdWJsZSwgb3JpZ2luKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M09wY29kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bj
b2RlLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
T3Bjb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjkwLDYgKzI5MCw5IEBAIHZvaWQgcHJpbnRJ
bnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBPcGMKICAgICBjYXNlIFN3aXRjaDoKICAgICAgICAg
b3V0LnByaW50KCJTd2l0Y2giKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgUG9seUp1bXA6
CisgICAgICAgIG91dC5wcmludCgiUG9seUp1bXAiKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNh
c2UgUmV0dXJuOgogICAgICAgICBvdXQucHJpbnQoIlJldHVybiIpOwogICAgICAgICByZXR1cm47
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuaAkocmV2aXNpb24gMjAyODA5KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTIwNywyMSArMjA3LDIxIEBAIGVudW0gT3Bjb2RlIDogaW50MTZfdCB7CiAgICAgVXBzaWxvbiwg
Ly8gVGhpcyB1c2VzIHRoZSBVcHNpbG9uVmFsdWUgY2xhc3MuCiAgICAgUGhpLAogCi0gICAgLy8g
SnVtcC4gVXNlcyB0aGUgQ29udHJvbFZhbHVlIGNsYXNzLgorICAgIC8vIEp1bXAuCiAgICAgSnVt
cCwKICAgICAKLSAgICAvLyBQb2x5bW9ycGhpYyBicmFuY2gsIHVzYWJsZSB3aXRoIGFueSBpbnRl
Z2VyIHR5cGUuIEJyYW5jaGVzIGlmIG5vdCBlcXVhbCB0byB6ZXJvLiBVc2VzIHRoZQotICAgIC8v
IENvbnRyb2xWYWx1ZSBjbGFzcywgd2l0aCB0aGUgMC1pbmRleCBzdWNjZXNzb3IgYmVpbmcgdGhl
IHRydWUgc3VjY2Vzc29yLgorICAgIC8vIFBvbHltb3JwaGljIGJyYW5jaCwgdXNhYmxlIHdpdGgg
YW55IGludGVnZXIgdHlwZS4gQnJhbmNoZXMgaWYgbm90IGVxdWFsIHRvIHplcm8uIFRoZSAwLWlu
ZGV4CisgICAgLy8gc3VjY2Vzc29yIGlzIHRoZSB0cnVlIHN1Y2Nlc3Nvci4KICAgICBCcmFuY2gs
CiAKICAgICAvLyBTd2l0Y2guIFN3aXRjaGVzIG92ZXIgZWl0aGVyIEludDMyIG9yIEludDY0LiBV
c2VzIHRoZSBTd2l0Y2hWYWx1ZSBjbGFzcy4KICAgICBTd2l0Y2gsCi0KKyAgICAKICAgICAvLyBS
ZXR1cm4uIE5vdGUgdGhhdCBCMyBwcm9jZWR1cmVzIGRvbid0IGtub3cgdGhlaXIgcmV0dXJuIHR5
cGUsIHNvIHRoaXMgY2FuIGp1c3QgcmV0dXJuIGFueQotICAgIC8vIHR5cGUuIFVzZXMgdGhlIENv
bnRyb2xWYWx1ZSBjbGFzcy4KKyAgICAvLyB0eXBlLgogICAgIFJldHVybiwKIAotICAgIC8vIFRo
aXMgaXMgYSB0ZXJtaW5hbCB0aGF0IGluZGljYXRlcyB0aGF0IHdlIHdpbGwgbmV2ZXIgZ2V0IGhl
cmUuIFVzZXMgdGhlIENvbnRyb2xWYWx1ZSBjbGFzcy4KKyAgICAvLyBUaGlzIGlzIGEgdGVybWlu
YWwgdGhhdCBpbmRpY2F0ZXMgdGhhdCB3ZSB3aWxsIG5ldmVyIGdldCBoZXJlLgogICAgIE9vcHMK
IH07CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BhdGNocG9pbnRTcGVjaWFs
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQYXRjaHBvaW50
U3BlY2lhbC5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1BhdGNocG9pbnRTcGVjaWFsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQ2LDYgKzE0Niwx
MSBAQCBDQ2FsbEhlbHBlcnM6Okp1bXAgUGF0Y2hwb2ludFNwZWNpYWw6OmdlCiAgICAgcmV0dXJu
IENDYWxsSGVscGVyczo6SnVtcCgpOwogfQogCitib29sIFBhdGNocG9pbnRTcGVjaWFsOjppc1Rl
cm1pbmFsKEluc3QmIGluc3QpCit7CisgICAgcmV0dXJuIGluc3Qub3duZXItPmFzPFBhdGNocG9p
bnRWYWx1ZT4oKS0+ZWZmZWN0cy50ZXJtaW5hbDsKK30KKwogdm9pZCBQYXRjaHBvaW50U3BlY2lh
bDo6ZHVtcEltcGwoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHsKICAgICBvdXQucHJpbnQoIlBh
dGNocG9pbnQiKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BhdGNocG9pbnRT
cGVjaWFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUGF0Y2hw
b2ludFNwZWNpYWwuaAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzUGF0Y2hwb2ludFNwZWNpYWwuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01Niw2ICs1Niw4IEBAIHBy
b3RlY3RlZDoKICAgICAvLyBnZW5lcmF0ZXMgdGhlIHN0YWNrbWFwLiBTdXBlciBjcmF6eSBkdWRl
IQogCiAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGdlbmVyYXRlKEFpcjo6SW5zdCYsIENDYWxsSGVs
cGVycyYsIEFpcjo6R2VuZXJhdGlvbkNvbnRleHQmKSBvdmVycmlkZTsKKyAgICAKKyAgICBib29s
IGlzVGVybWluYWwoSW5zdCYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBkdW1wSW1wbChQcmludFN0
cmVhbSYpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgZGVlcER1bXBJbXBsKFByaW50U3RyZWFt
JikgY29uc3Qgb3ZlcnJpZGU7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9j
ZWR1cmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2Nl
ZHVyZS5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1Byb2NlZHVyZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0OCwzMSArMTQ4LDYgQEAgdm9pZCBQ
cm9jZWR1cmU6OnJlc2V0VmFsdWVPd25lcnMoKQogCiB2b2lkIFByb2NlZHVyZTo6cmVzZXRSZWFj
aGFiaWxpdHkoKQogewotICAgIGlmIChzaG91bGRWYWxpZGF0ZUlSKCkpIHsKLSAgICAgICAgLy8g
VmFsaWRhdGUgdGhlIGJhc2ljIHByb3BlcnRpZXMgdGhhdCB3ZSBuZWVkIGZvciByZXNldHRpbmcg
cmVhY2hhYmlsaXR5LiBXZSBvZnRlbiByZXNldAotICAgICAgICAvLyByZWFjaGFiaWxpdHkgYmVm
b3JlIElSIHZhbGlkYXRpb24sIHNvIHdpdGhvdXQgdGhpcyBtaW5pLXZhbGlkYXRpb24sIHlvdSB3
b3VsZCBjcmFzaCBpbnNpZGUKLSAgICAgICAgLy8gQjM6OnJlc2V0UmVhY2hhYmlsaXR5KCkgd2l0
aG91dCBnZXR0aW5nIGFueSBJUiBkdW1wLgotCi0gICAgICAgIEJhc2ljQmxvY2sqIGJhZEJsb2Nr
ID0gbnVsbHB0cjsKLSAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBibG9jayA6ICp0aGlzKSB7Ci0g
ICAgICAgICAgICBpZiAoIWJsb2NrLT5zaXplKCkpIHsKLSAgICAgICAgICAgICAgICBiYWRCbG9j
ayA9IGJsb2NrOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotCi0gICAg
ICAgICAgICBpZiAoIWJsb2NrLT5sYXN0KCktPmFzPENvbnRyb2xWYWx1ZT4oKSkgewotICAgICAg
ICAgICAgICAgIGJhZEJsb2NrID0gYmxvY2s7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoYmFkQmxvY2spIHsKLSAgICAgICAg
ICAgIGRhdGFMb2coIkZBVEFMOiBJbnZhbGlkIGJhc2ljIGJsb2NrICIsICpiYWRCbG9jaywgIiB3
aGlsZSBydW5uaW5nIFByb2NlZHVyZTo6cmVzZXRSZWFjaGFiaWxpdHkoKS5cbiIpOwotICAgICAg
ICAgICAgZGF0YUxvZygqdGhpcyk7Ci0gICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotICAgICAgICB9Ci0gICAgfQotICAgIAogICAgIHJlY29tcHV0ZVByZWRlY2Vzc29y
cyhtX2Jsb2Nrcyk7CiAgICAgCiAgICAgLy8gVGhlIGNvbW1vbiBjYXNlIGlzIHRoYXQgdGhpcyBk
b2VzIG5vdCBmaW5kIGFueSBkZWFkIGJsb2Nrcy4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM1Byb2NlZHVyZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1Byb2NlZHVyZS5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNQcm9jZWR1cmUuaAkod29ya2luZyBjb3B5KQpAQCAtMjE4LDcgKzIxOCwxMCBAQCBw
dWJsaWM6CiAKICAgICBjb25zdCBjaGFyKiBsYXN0UGhhc2VOYW1lKCkgY29uc3QgeyByZXR1cm4g
bV9sYXN0UGhhc2VOYW1lOyB9CiAKLSAgICB2b2lkKiBhZGREYXRhU2VjdGlvbihzaXplX3Qgc2l6
ZSk7CisgICAgLy8gQWxsb2NhdGVzIGEgc2xhYiBvZiBtZW1vcnkgdGhhdCB3aWxsIGJlIGtlcHQg
YWxpdmUgYnkgYW55b25lIHdobyBrZWVwcyB0aGUgcmVzdWx0aW5nIGNvZGUKKyAgICAvLyBhbGl2
ZS4gR3JlYXQgZm9yIGNvbXBpbGVyLWdlbmVyYXRlZCBkYXRhIHNlY3Rpb25zLCBsaWtlIHN3aXRj
aCBqdW1wIHRhYmxlcyBhbmQgY29uc3RhbnQgcG9vbHMuCisgICAgLy8gVGhpcyByZXR1cm5zIG1l
bW9yeSB0aGF0IGhhcyBiZWVuIHplcm8taW5pdGlhbGl6ZWQuCisgICAgdm9pZCogYWRkRGF0YVNl
Y3Rpb24oc2l6ZV90KTsKIAogICAgIE9wYXF1ZUJ5cHJvZHVjdHMmIGJ5cHJvZHVjdHMoKSB7IHJl
dHVybiAqbV9ieXByb2R1Y3RzOyB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1JlZHVjZVN0cmVuZ3RoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNSZWR1Y2VTdHJlbmd0aC5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEs
NyArMzEsNiBAQAogI2luY2x1ZGUgIkIzQmFzaWNCbG9ja0lubGluZXMuaCIKICNpbmNsdWRlICJC
M0Jsb2NrSW5zZXJ0aW9uU2V0LmgiCiAjaW5jbHVkZSAiQjNDb21wdXRlRGl2aXNpb25NYWdpYy5o
IgotI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNEb21pbmF0b3JzLmgi
CiAjaW5jbHVkZSAiQjNJbmRleFNldC5oIgogI2luY2x1ZGUgIkIzSW5zZXJ0aW9uU2V0SW5saW5l
cy5oIgpAQCAtMTcxNyw3ICsxNzE2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAvLyBS
ZXBsYWNlIHRoZSByZXN0IG9mIHRoZSBibG9jayB3aXRoIGFuIE9vcHMuCiAgICAgICAgICAgICAg
ICAgZm9yICh1bnNpZ25lZCBpID0gbV9pbmRleCArIDE7IGkgPCBtX2Jsb2NrLT5zaXplKCkgLSAx
OyArK2kpCiAgICAgICAgICAgICAgICAgICAgIG1fYmxvY2stPmF0KGkpLT5yZXBsYWNlV2l0aEJv
dHRvbShtX2luc2VydGlvblNldCwgbV9pbmRleCk7Ci0gICAgICAgICAgICAgICAgbV9ibG9jay0+
bGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCktPmNvbnZlcnRUb09vcHMoKTsKKyAgICAgICAgICAg
ICAgICBtX2Jsb2NrLT5sYXN0KCktPnJlcGxhY2VXaXRoT29wcyhtX2Jsb2NrKTsKICAgICAgICAg
ICAgICAgICBtX2Jsb2NrLT5sYXN0KCktPnNldE9yaWdpbihjaGVja1ZhbHVlLT5vcmlnaW4oKSk7
CiAKICAgICAgICAgICAgICAgICAvLyBSZXBsYWNlIG91cnNlbHZlcyBsYXN0LgpAQCAtMTc3Myw2
ICsxNzcyLDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlLT5v
cGNvZGUoKSA9PSBTZWxlY3QKICAgICAgICAgICAgICAgICAgICAgICAgICYmICh2YWx1ZS0+Y2hp
bGQoMSktPmlzQ29uc3RhbnQoKSAmJiB2YWx1ZS0+Y2hpbGQoMiktPmlzQ29uc3RhbnQoKSk7CiAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChzZWxlY3Qp
IHsKICAgICAgICAgICAgICAgICBzcGVjaWFsaXplU2VsZWN0KHNlbGVjdCk7CiAgICAgICAgICAg
ICAgICAgYnJlYWs7CkBAIC0xNzgxLDUwICsxNzgxLDQ4IEBAIHByaXZhdGU6CiAgICAgICAgIH0K
IAogICAgICAgICBjYXNlIEJyYW5jaDogewotICAgICAgICAgICAgQ29udHJvbFZhbHVlKiBicmFu
Y2ggPSBtX3ZhbHVlLT5hczxDb250cm9sVmFsdWU+KCk7Ci0KICAgICAgICAgICAgIC8vIFR1cm4g
dGhpczogQnJhbmNoKE5vdEVxdWFsKHgsIDApKQogICAgICAgICAgICAgLy8gSW50byB0aGlzOiBC
cmFuY2goeCkKLSAgICAgICAgICAgIGlmIChicmFuY2gtPmNoaWxkKDApLT5vcGNvZGUoKSA9PSBO
b3RFcXVhbCAmJiBicmFuY2gtPmNoaWxkKDApLT5jaGlsZCgxKS0+aXNJbnQoMCkpIHsKLSAgICAg
ICAgICAgICAgICBicmFuY2gtPmNoaWxkKDApID0gYnJhbmNoLT5jaGlsZCgwKS0+Y2hpbGQoMCk7
CisgICAgICAgICAgICBpZiAobV92YWx1ZS0+Y2hpbGQoMCktPm9wY29kZSgpID09IE5vdEVxdWFs
ICYmIG1fdmFsdWUtPmNoaWxkKDApLT5jaGlsZCgxKS0+aXNJbnQoMCkpIHsKKyAgICAgICAgICAg
ICAgICBtX3ZhbHVlLT5jaGlsZCgwKSA9IG1fdmFsdWUtPmNoaWxkKDApLT5jaGlsZCgwKTsKICAg
ICAgICAgICAgICAgICBtX2NoYW5nZWQgPSB0cnVlOwogICAgICAgICAgICAgfQogCiAgICAgICAg
ICAgICAvLyBUdXJuIHRoaXM6IEJyYW5jaChFcXVhbCh4LCAwKSwgdGhlbiwgZWxzZSkKICAgICAg
ICAgICAgIC8vIEludG8gdGhpczogQnJhbmNoKHgsIGVsc2UsIHRoZW4pCi0gICAgICAgICAgICBp
ZiAoYnJhbmNoLT5jaGlsZCgwKS0+b3Bjb2RlKCkgPT0gRXF1YWwgJiYgYnJhbmNoLT5jaGlsZCgw
KS0+Y2hpbGQoMSktPmlzSW50KDApKSB7Ci0gICAgICAgICAgICAgICAgYnJhbmNoLT5jaGlsZCgw
KSA9IGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDApOwotICAgICAgICAgICAgICAgIHN0ZDo6c3dh
cChicmFuY2gtPnRha2VuKCksIGJyYW5jaC0+bm90VGFrZW4oKSk7CisgICAgICAgICAgICBpZiAo
bV92YWx1ZS0+Y2hpbGQoMCktPm9wY29kZSgpID09IEVxdWFsICYmIG1fdmFsdWUtPmNoaWxkKDAp
LT5jaGlsZCgxKS0+aXNJbnQoMCkpIHsKKyAgICAgICAgICAgICAgICBtX3ZhbHVlLT5jaGlsZCgw
KSA9IG1fdmFsdWUtPmNoaWxkKDApLT5jaGlsZCgwKTsKKyAgICAgICAgICAgICAgICBzdGQ6OnN3
YXAobV9ibG9jay0+dGFrZW4oKSwgbV9ibG9jay0+bm90VGFrZW4oKSk7CiAgICAgICAgICAgICAg
ICAgbV9jaGFuZ2VkID0gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAg
ICAgICAgLy8gVHVybiB0aGlzOiBCcmFuY2goQml0WG9yKGJvb2wsIDEpLCB0aGVuLCBlbHNlKQog
ICAgICAgICAgICAgLy8gSW50byB0aGlzOiBCcmFuY2goYm9vbCwgZWxzZSwgdGhlbikKLSAgICAg
ICAgICAgIGlmIChicmFuY2gtPmNoaWxkKDApLT5vcGNvZGUoKSA9PSBCaXRYb3IKLSAgICAgICAg
ICAgICAgICAmJiBicmFuY2gtPmNoaWxkKDApLT5jaGlsZCgxKS0+aXNJbnQzMigxKQotICAgICAg
ICAgICAgICAgICYmIGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDApLT5yZXR1cm5zQm9vbCgpKSB7
Ci0gICAgICAgICAgICAgICAgYnJhbmNoLT5jaGlsZCgwKSA9IGJyYW5jaC0+Y2hpbGQoMCktPmNo
aWxkKDApOwotICAgICAgICAgICAgICAgIHN0ZDo6c3dhcChicmFuY2gtPnRha2VuKCksIGJyYW5j
aC0+bm90VGFrZW4oKSk7CisgICAgICAgICAgICBpZiAobV92YWx1ZS0+Y2hpbGQoMCktPm9wY29k
ZSgpID09IEJpdFhvcgorICAgICAgICAgICAgICAgICYmIG1fdmFsdWUtPmNoaWxkKDApLT5jaGls
ZCgxKS0+aXNJbnQzMigxKQorICAgICAgICAgICAgICAgICYmIG1fdmFsdWUtPmNoaWxkKDApLT5j
aGlsZCgwKS0+cmV0dXJuc0Jvb2woKSkgeworICAgICAgICAgICAgICAgIG1fdmFsdWUtPmNoaWxk
KDApID0gbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDApOworICAgICAgICAgICAgICAgIHN0ZDo6
c3dhcChtX2Jsb2NrLT50YWtlbigpLCBtX2Jsb2NrLT5ub3RUYWtlbigpKTsKICAgICAgICAgICAg
ICAgICBtX2NoYW5nZWQgPSB0cnVlOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAvLyBU
dXJuIHRoaXM6IEJyYW5jaChCaXRBbmQoYm9vbCwgeHliMSksIHRoZW4sIGVsc2UpCiAgICAgICAg
ICAgICAvLyBJbnRvIHRoaXM6IEJyYW5jaChib29sLCB0aGVuLCBlbHNlKQotICAgICAgICAgICAg
aWYgKGJyYW5jaC0+Y2hpbGQoMCktPm9wY29kZSgpID09IEJpdEFuZAotICAgICAgICAgICAgICAg
ICYmIGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDEpLT5oYXNJbnQoKQotICAgICAgICAgICAgICAg
ICYmIGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDEpLT5hc0ludCgpICYgMQotICAgICAgICAgICAg
ICAgICYmIGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDApLT5yZXR1cm5zQm9vbCgpKSB7Ci0gICAg
ICAgICAgICAgICAgYnJhbmNoLT5jaGlsZCgwKSA9IGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDAp
OworICAgICAgICAgICAgaWYgKG1fdmFsdWUtPmNoaWxkKDApLT5vcGNvZGUoKSA9PSBCaXRBbmQK
KyAgICAgICAgICAgICAgICAmJiBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMSktPmhhc0ludCgp
CisgICAgICAgICAgICAgICAgJiYgbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDEpLT5hc0ludCgp
ICYgMQorICAgICAgICAgICAgICAgICYmIG1fdmFsdWUtPmNoaWxkKDApLT5jaGlsZCgwKS0+cmV0
dXJuc0Jvb2woKSkgeworICAgICAgICAgICAgICAgIG1fdmFsdWUtPmNoaWxkKDApID0gbV92YWx1
ZS0+Y2hpbGQoMCktPmNoaWxkKDApOwogICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7
CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIFRyaVN0YXRlIHRyaVN0YXRlID0gYnJhbmNo
LT5jaGlsZCgwKS0+YXNUcmlTdGF0ZSgpOworICAgICAgICAgICAgVHJpU3RhdGUgdHJpU3RhdGUg
PSBtX3ZhbHVlLT5jaGlsZCgwKS0+YXNUcmlTdGF0ZSgpOwogCiAgICAgICAgICAgICAvLyBUdXJu
IHRoaXM6IEJyYW5jaCgwLCB0aGVuLCBlbHNlKQogICAgICAgICAgICAgLy8gSW50byB0aGlzOiBK
dW1wKGVsc2UpCiAgICAgICAgICAgICBpZiAodHJpU3RhdGUgPT0gRmFsc2VUcmlTdGF0ZSkgewot
ICAgICAgICAgICAgICAgIGJyYW5jaC0+dGFrZW4oKS5ibG9jaygpLT5yZW1vdmVQcmVkZWNlc3Nv
cihtX2Jsb2NrKTsKLSAgICAgICAgICAgICAgICBicmFuY2gtPmNvbnZlcnRUb0p1bXAoYnJhbmNo
LT5ub3RUYWtlbigpLmJsb2NrKCkpOworICAgICAgICAgICAgICAgIG1fYmxvY2stPnRha2VuKCku
YmxvY2soKS0+cmVtb3ZlUHJlZGVjZXNzb3IobV9ibG9jayk7CisgICAgICAgICAgICAgICAgbV92
YWx1ZS0+cmVwbGFjZVdpdGhKdW1wKG1fYmxvY2ssIG1fYmxvY2stPm5vdFRha2VuKCkuYmxvY2so
KSk7CiAgICAgICAgICAgICAgICAgbV9jaGFuZ2VkQ0ZHID0gdHJ1ZTsKICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgIH0KQEAgLTE4MzIsOCArMTgzMCw4IEBAIHByaXZhdGU6CiAg
ICAgICAgICAgICAvLyBUdXJuIHRoaXM6IEJyYW5jaChub3QgMCwgdGhlbiwgZWxzZSkKICAgICAg
ICAgICAgIC8vIEludG8gdGhpczogSnVtcCh0aGVuKQogICAgICAgICAgICAgaWYgKHRyaVN0YXRl
ID09IFRydWVUcmlTdGF0ZSkgewotICAgICAgICAgICAgICAgIGJyYW5jaC0+bm90VGFrZW4oKS5i
bG9jaygpLT5yZW1vdmVQcmVkZWNlc3NvcihtX2Jsb2NrKTsKLSAgICAgICAgICAgICAgICBicmFu
Y2gtPmNvbnZlcnRUb0p1bXAoYnJhbmNoLT50YWtlbigpLmJsb2NrKCkpOworICAgICAgICAgICAg
ICAgIG1fYmxvY2stPm5vdFRha2VuKCkuYmxvY2soKS0+cmVtb3ZlUHJlZGVjZXNzb3IobV9ibG9j
ayk7CisgICAgICAgICAgICAgICAgbV92YWx1ZS0+cmVwbGFjZVdpdGhKdW1wKG1fYmxvY2ssIG1f
YmxvY2stPnRha2VuKCkuYmxvY2soKSk7CiAgICAgICAgICAgICAgICAgbV9jaGFuZ2VkQ0ZHID0g
dHJ1ZTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KQEAgLTE4NDIsMTIg
KzE4NDAsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIC8vIG9mIG1ha2VzIHNlbnNlIGhlcmUg
YmVjYXVzZSBpdCdzIGNoZWFwLCBidXQgaGFja3MgbGlrZSB0aGlzIHNob3cgdGhhdCB3ZSdyZSBn
b2luZwogICAgICAgICAgICAgLy8gdG8gbmVlZCBTQ0NQLgogICAgICAgICAgICAgVmFsdWUqIGNo
ZWNrID0gbV9wdXJlQ1NFLmZpbmRNYXRjaCgKLSAgICAgICAgICAgICAgICBWYWx1ZUtleShDaGVj
aywgVm9pZCwgYnJhbmNoLT5jaGlsZCgwKSksIG1fYmxvY2ssICptX2RvbWluYXRvcnMpOworICAg
ICAgICAgICAgICAgIFZhbHVlS2V5KENoZWNrLCBWb2lkLCBtX3ZhbHVlLT5jaGlsZCgwKSksIG1f
YmxvY2ssICptX2RvbWluYXRvcnMpOwogICAgICAgICAgICAgaWYgKGNoZWNrKSB7CiAgICAgICAg
ICAgICAgICAgLy8gVGhlIENoZWNrIHdvdWxkIGhhdmUgc2lkZS1leGl0ZWQgaWYgY2hpbGQoMCkg
d2FzIG5vbi16ZXJvLiBTbywgaXQgbXVzdCBiZQogICAgICAgICAgICAgICAgIC8vIHplcm8gaGVy
ZS4KLSAgICAgICAgICAgICAgICBicmFuY2gtPnRha2VuKCkuYmxvY2soKS0+cmVtb3ZlUHJlZGVj
ZXNzb3IobV9ibG9jayk7Ci0gICAgICAgICAgICAgICAgYnJhbmNoLT5jb252ZXJ0VG9KdW1wKGJy
YW5jaC0+bm90VGFrZW4oKS5ibG9jaygpKTsKKyAgICAgICAgICAgICAgICBtX2Jsb2NrLT50YWtl
bigpLmJsb2NrKCktPnJlbW92ZVByZWRlY2Vzc29yKG1fYmxvY2spOworICAgICAgICAgICAgICAg
IG1fdmFsdWUtPnJlcGxhY2VXaXRoSnVtcChtX2Jsb2NrLCBtX2Jsb2NrLT5ub3RUYWtlbigpLmJs
b2NrKCkpOwogICAgICAgICAgICAgICAgIG1fY2hhbmdlZENGRyA9IHRydWU7CiAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICBicmVhazsKQEAgLTE5ODYsMTMgKzE5ODQsMTIgQEAgcHJpdmF0ZToK
ICAgICAgICAgLy8gUmVtb3ZlIHRoZSB2YWx1ZXMgZnJvbSB0aGUgcHJlZGVjZXNzb3IuCiAgICAg
ICAgIHByZWRlY2Vzc29yLT52YWx1ZXMoKS5yZXNpemUoc3RhcnRJbmRleCk7CiAgICAgICAgIAot
ICAgICAgICBwcmVkZWNlc3Nvci0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCi0gICAgICAgICAg
ICBtX3Byb2MsIEJyYW5jaCwgc291cmNlLT5vcmlnaW4oKSwgcHJlZGljYXRlLAotICAgICAgICAg
ICAgRnJlcXVlbnRlZEJsb2NrKGNhc2VzWzBdKSwgRnJlcXVlbnRlZEJsb2NrKGNhc2VzWzFdKSk7
CisgICAgICAgIHByZWRlY2Vzc29yLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgQnJhbmNoLCBz
b3VyY2UtPm9yaWdpbigpLCBwcmVkaWNhdGUpOworICAgICAgICBwcmVkZWNlc3Nvci0+c2V0U3Vj
Y2Vzc29ycyhGcmVxdWVudGVkQmxvY2soY2FzZXNbMF0pLCBGcmVxdWVudGVkQmxvY2soY2FzZXNb
MV0pKTsKIAogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtQ2FzZXM7ICsraSkg
ewotICAgICAgICAgICAgY2FzZXNbaV0tPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAotICAgICAg
ICAgICAgICAgIG1fcHJvYywgSnVtcCwgbV92YWx1ZS0+b3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9j
ayhtX2Jsb2NrKSk7CisgICAgICAgICAgICBjYXNlc1tpXS0+YXBwZW5kTmV3PFZhbHVlPihtX3By
b2MsIEp1bXAsIG1fdmFsdWUtPm9yaWdpbigpKTsKKyAgICAgICAgICAgIGNhc2VzW2ldLT5zZXRT
dWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7CiAgICAgICAgIH0KIAogICAgICAg
ICBtX2NoYW5nZWQgPSB0cnVlOwpAQCAtMjIyMSw3ICsyMjE4LDcgQEAgcHJpdmF0ZToKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBkYXRhTG9nKAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiQ2hhbmdpbmcgIiwgcG9pbnRlckR1bXAoYmxvY2spLCAiJ3MgdGVybWluYWwgdG8g
YSBKdW1wLlxuIik7CiAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBibG9jay0+bGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCktPmNvbnZlcnRUb0p1bXAo
Zmlyc3RTdWNjZXNzb3IpOworICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2stPmxhc3QoKS0+
cmVwbGFjZVdpdGhKdW1wKGJsb2NrLCBmaXJzdFN1Y2Nlc3Nvcik7CiAgICAgICAgICAgICAgICAg
ICAgICAgICBtX2NoYW5nZWRDRkcgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgfQpAQCAtMjIzOSwxNiArMjIzNiwxOCBAQCBwcml2YXRlOgogICAgICAgICAg
ICAgICAgICAgICAvLyBSZW1vdmUgdGhlIHRlcm1pbmFsLgogICAgICAgICAgICAgICAgICAgICBW
YWx1ZSogdmFsdWUgPSBibG9jay0+dmFsdWVzKCkudGFrZUxhc3QoKTsKICAgICAgICAgICAgICAg
ICAgICAgT3JpZ2luIGp1bXBPcmlnaW4gPSB2YWx1ZS0+b3JpZ2luKCk7Ci0gICAgICAgICAgICAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUKHZhbHVlLT5hczxDb250cm9sVmFsdWU+KCkpOworICAgICAg
ICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVCh2YWx1ZS0+ZWZmZWN0cygpLnRlcm1pbmFsKTsK
ICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLmRlbGV0ZVZhbHVlKHZhbHVlKTsKICAgICAgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgIC8vIEFwcGVuZCB0aGUgZnVsbCBjb250
ZW50cyBvZiB0aGUgc3VjY2Vzc29yIHRvIHRoZSBwcmVkZWNlc3Nvci4KICAgICAgICAgICAgICAg
ICAgICAgYmxvY2stPnZhbHVlcygpLmFwcGVuZFZlY3RvcihzdWNjZXNzb3ItPnZhbHVlcygpKTsK
KyAgICAgICAgICAgICAgICAgICAgYmxvY2stPnN1Y2Nlc3NvcnMoKSA9IHN1Y2Nlc3Nvci0+c3Vj
Y2Vzc29ycygpOwogICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgLy8g
TWFrZSBzdXJlIHRoYXQgdGhlIHN1Y2Nlc3NvciBoYXMgbm90aGluZyBsZWZ0IGluIGl0LiBNYWtl
IHN1cmUgdGhhdCB0aGUgYmxvY2sKICAgICAgICAgICAgICAgICAgICAgLy8gaGFzIGEgdGVybWlu
YWwgc28gdGhhdCBub2JvZHkgY2hva2VzIHdoZW4gdGhleSBsb29rIGF0IGl0LgogICAgICAgICAg
ICAgICAgICAgICBzdWNjZXNzb3ItPnZhbHVlcygpLnJlc2l6ZSgwKTsKLSAgICAgICAgICAgICAg
ICAgICAgc3VjY2Vzc29yLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihtX3Byb2MsIE9vcHMsIGp1
bXBPcmlnaW4pOworICAgICAgICAgICAgICAgICAgICBzdWNjZXNzb3ItPmFwcGVuZE5ldzxWYWx1
ZT4obV9wcm9jLCBPb3BzLCBqdW1wT3JpZ2luKTsKKyAgICAgICAgICAgICAgICAgICAgc3VjY2Vz
c29yLT5jbGVhclN1Y2Nlc3NvcnMoKTsKICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgIC8vIEVuc3VyZSB0aGF0IHByZWRlY2Vzc29ycyBvZiBibG9jaydzIG5ldyBzdWNj
ZXNzb3JzIGtub3cgd2hhdCdzIHVwLgogICAgICAgICAgICAgICAgICAgICBmb3IgKEJhc2ljQmxv
Y2sqIG5ld1N1Y2Nlc3NvciA6IGJsb2NrLT5zdWNjZXNzb3JCbG9ja3MoKSkKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3RhY2ttYXBHZW5lcmF0aW9uUGFy
YW1zLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
U3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01OSw2ICs1OSwyNyBA
QCBSZWdpc3RlclNldCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXM6OnVuCiAgICAgcmV0dXJuIHJl
c3VsdDsKIH0KIAorVmVjdG9yPEJveDxDQ2FsbEhlbHBlcnM6OkxhYmVsPj4gU3RhY2ttYXBHZW5l
cmF0aW9uUGFyYW1zOjpzdWNjZXNzb3JMYWJlbHMoKSBjb25zdAoreworICAgIFJFTEVBU0VfQVNT
RVJUKG1fY29udGV4dC5pbmRleEluQmxvY2sgPT0gbV9jb250ZXh0LmJsb2NrLT5zaXplKCkgLSAx
KTsKKyAgICBSRUxFQVNFX0FTU0VSVChtX3ZhbHVlLT5lZmZlY3RzKCkudGVybWluYWwpOworICAg
IAorICAgIFZlY3RvcjxCb3g8Q0NhbGxIZWxwZXJzOjpMYWJlbD4+IHJlc3VsdChtX2NvbnRleHQu
YmxvY2stPm51bVN1Y2Nlc3NvcnMoKSk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gbV9jb250ZXh0
LmJsb2NrLT5udW1TdWNjZXNzb3JzKCk7IGktLTspCisgICAgICAgIHJlc3VsdFtpXSA9IG1fY29u
dGV4dC5ibG9ja0xhYmVsc1ttX2NvbnRleHQuYmxvY2stPnN1Y2Nlc3NvckJsb2NrKGkpXTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorCitib29sIFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtczo6ZmFs
bHNUaHJvdWdoVG9TdWNjZXNzb3IodW5zaWduZWQgc3VjY2Vzc29ySW5kZXgpIGNvbnN0Cit7Cisg
ICAgUkVMRUFTRV9BU1NFUlQobV9jb250ZXh0LmluZGV4SW5CbG9jayA9PSBtX2NvbnRleHQuYmxv
Y2stPnNpemUoKSAtIDEpOworICAgIFJFTEVBU0VfQVNTRVJUKG1fdmFsdWUtPmVmZmVjdHMoKS50
ZXJtaW5hbCk7CisgICAgCisgICAgQmFzaWNCbG9jayogc3VjY2Vzc29yID0gbV9jb250ZXh0LmJs
b2NrLT5zdWNjZXNzb3JCbG9jayhzdWNjZXNzb3JJbmRleCk7CisgICAgQmFzaWNCbGNvayogbmV4
dEJsb2NrID0gbV9jb250ZXh0LmNvZGUtPmZpbmROZXh0QmxvY2sobV9jb250ZXh0LmJsb2NrKTsK
KyAgICByZXR1cm4gc3VjY2Vzc29yID09IG5leHRCbG9jazsKK30KKwogUHJvY2VkdXJlJiBTdGFj
a21hcEdlbmVyYXRpb25QYXJhbXM6OnByb2MoKSBjb25zdAogewogICAgIHJldHVybiBtX2NvbnRl
eHQuY29kZS0+cHJvYygpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3RhY2tt
YXBHZW5lcmF0aW9uUGFyYW1zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMCw3ICszMCw5IEBACiAKICNpbmNsdWRlICJBaXJHZW5lcmF0aW9uQ29u
dGV4dC5oIgogI2luY2x1ZGUgIkIzVmFsdWVSZXAuaCIKKyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMu
aCIKICNpbmNsdWRlICJSZWdpc3RlclNldC5oIgorI2luY2x1ZGUgPHd0Zi9Cb3guaD4KIAogbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKQEAgLTM5LDYgKzQxLDggQEAgY2xhc3MgUGF0
Y2hwb2ludFNwZWNpYWw7CiBjbGFzcyBQcm9jZWR1cmU7CiBjbGFzcyBTdGFja21hcFZhbHVlOwog
CisvLyBOT1RFOiBJdCdzIHBvc3NpYmxlIHRvIGNhcHR1cmUgU3RhY2ttYXBHZW5lcmF0aW9uUGFy
YW1zIGJ5IHZhbHVlLCBidXQgbm90IGFsbCBvZiB0aGUgbWV0aG9kcyB3aWxsCisvLyB3b3JrIGlm
IHlvdSBkbyB0aGF0LgogY2xhc3MgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zIHsKIHB1YmxpYzoK
ICAgICAvLyBUaGlzIGlzIHRoZSBzdGFja21hcCB2YWx1ZSB0aGF0IHdlJ3JlIGdlbmVyYXRpbmcu
CkBAIC04MCw2ICs4NCwxMiBAQCBwdWJsaWM6CiAKICAgICBHUFJSZWcgZ3BTY3JhdGNoKHVuc2ln
bmVkIGluZGV4KSBjb25zdCB7IHJldHVybiBtX2dwU2NyYXRjaFtpbmRleF07IH0KICAgICBGUFJS
ZWcgZnBTY3JhdGNoKHVuc2lnbmVkIGluZGV4KSBjb25zdCB7IHJldHVybiBtX2ZwU2NyYXRjaFtp
bmRleF07IH0KKyAgICAKKyAgICAvLyBUaGlzIGlzIGNvbXB1dGVkIGxhemlseSwgc28gaXQgd29u
J3Qgd29yayBpZiB5b3UgY2FwdHVyZSBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMgYnkgdmFsdWUu
CisgICAgVmVjdG9yPEJveDxDQ2FsbEhlbHBlcnM6OkxhYmVsPj4gc3VjY2Vzc29yTGFiZWxzKCkg
Y29uc3Q7CisgICAgCisgICAgLy8gVGhpcyBpcyBjb21wdXRlZCBsYXppbHkgYWxzby4KKyAgICBi
b29sIGZhbGxzVGhyb3VnaFRvU3VjY2Vzc29yKHVuc2lnbmVkIHN1Y2Nlc3NvckluZGV4KSBjb25z
dDsKIAogICAgIC8vIFRoaXMgaXMgcHJvdmlkZWQgZm9yIGNvbnZlbmllbmNlOyBpdCBtZWFucyB0
aGF0IHlvdSBkb24ndCBoYXZlIHRvIGNhcHR1cmUgaXQgaWYgeW91IGRvbid0IHdhbnQgdG8uCiAg
ICAgUHJvY2VkdXJlJiBwcm9jKCkgY29uc3Q7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNTd2l0Y2hWYWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzU3dpdGNoVmFsdWUuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNTd2l0Y2hWYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDMwICsz
Nyw2OSBAQCBTd2l0Y2hWYWx1ZTo6flN3aXRjaFZhbHVlKCkKIHsKIH0KIAotU3dpdGNoQ2FzZSBT
d2l0Y2hWYWx1ZTo6cmVtb3ZlQ2FzZSh1bnNpZ25lZCBpbmRleCkKK1N3aXRjaENhc2UgU3dpdGNo
VmFsdWU6OnJlbW92ZUNhc2UoQmFzaWNCbG9jayogYmxvY2ssIHVuc2lnbmVkIGluZGV4KQogewot
ICAgIEZyZXF1ZW50ZWRCbG9jayByZXN1bHRCbG9jayA9IG1fc3VjY2Vzc29yc1tpbmRleF07Cisg
ICAgRnJlcXVlbnRlZEJsb2NrIHJlc3VsdEJsb2NrID0gYmxvY2stPnN1Y2Nlc3NvcihpbmRleCk7
CiAgICAgaW50NjRfdCByZXN1bHRWYWx1ZSA9IG1fdmFsdWVzW2luZGV4XTsKLSAgICBtX3N1Y2Nl
c3NvcnNbaW5kZXhdID0gbV9zdWNjZXNzb3JzLmxhc3QoKTsKLSAgICBtX3N1Y2Nlc3NvcnMucmVt
b3ZlTGFzdCgpOworICAgIGJsb2NrLT5zdWNjZXNzb3IoaW5kZXgpID0gYmxvY2stPnN1Y2Nlc3Nv
cnMoKS5sYXN0KCk7CisgICAgYmxvY2stPnN1Y2Nlc3NvcnMoKS5yZW1vdmVMYXN0KCk7CiAgICAg
bV92YWx1ZXNbaW5kZXhdID0gbV92YWx1ZXMubGFzdCgpOwogICAgIG1fdmFsdWVzLnJlbW92ZUxh
c3QoKTsKICAgICByZXR1cm4gU3dpdGNoQ2FzZShyZXN1bHRWYWx1ZSwgcmVzdWx0QmxvY2spOwog
fQogCi12b2lkIFN3aXRjaFZhbHVlOjphcHBlbmRDYXNlKGNvbnN0IFN3aXRjaENhc2UmIHN3aXRj
aENhc2UpCit2b2lkIFN3aXRjaFZhbHVlOjpzZXRGYWxsdGhyb3VnaChCYXNpY0Jsb2NrKiBibG9j
aywgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YXJnZXQpCiB7Ci0gICAgbV9zdWNjZXNzb3JzLmFw
cGVuZChtX3N1Y2Nlc3NvcnMubGFzdCgpKTsKLSAgICBtX3N1Y2Nlc3NvcnNbbV9zdWNjZXNzb3Jz
LnNpemUoKSAtIDJdID0gc3dpdGNoQ2FzZS50YXJnZXQoKTsKKyAgICB1bnNpZ25lZCBudW1TdWNj
ZXNzb3JzID0gYmxvY2stPm51bVN1Y2Nlc3NvcnMoKTsKKyAgICB1bnNpZ25lZCBudW1WYWx1ZXMg
PSBtX3ZhbHVlcy5zaXplKCk7CisgICAgUkVMRUFTRV9BU1NFUlQodmFsdWVzID09IG51bVN1Y2Nl
c3NvcnMgfHwgdmFsdWVzICsgMSA9PSBudW1TdWNjZXNzb3JzKTsKKyAgICAKKyAgICBpZiAodmFs
dWVzID09IG51bVN1Y2Nlc3NvcnMpCisgICAgICAgIGJsb2NrLT5zdWNjZXNzb3JzKCkuYXBwZW5k
KHN3aXRjaENhc2UudGFyZ2V0KCkpOworICAgIGVsc2UKKyAgICAgICAgYmxvY2stPnN1Y2Nlc3Nv
cnMoKS5sYXN0KCkgPSBzd2l0Y2hDYXNlLnRhcmdldCgpOworfQorCit2b2lkIFN3aXRjaFZhbHVl
OjphcHBlbmRDYXNlKEJhc2ljQmxvY2sqIGJsb2NrLCBjb25zdCBTd2l0Y2hDYXNlJiBzd2l0Y2hD
YXNlKQoreworICAgIHVuc2lnbmVkIG51bVN1Y2Nlc3NvcnMgPSBibG9jay0+bnVtU3VjY2Vzc29y
cygpOworICAgIHVuc2lnbmVkIG51bVZhbHVlcyA9IG1fdmFsdWVzLnNpemUoKTsKKyAgICBSRUxF
QVNFX0FTU0VSVCh2YWx1ZXMgPT0gbnVtU3VjY2Vzc29ycyB8fCB2YWx1ZXMgKyAxID09IG51bVN1
Y2Nlc3NvcnMpOworICAgIAorICAgIGlmICh2YWx1ZXMgPT0gbnVtU3VjY2Vzc29ycykKKyAgICAg
ICAgYmxvY2stPnN1Y2Nlc3NvcnMoKS5hcHBlbmQoc3dpdGNoQ2FzZS50YXJnZXQoKSk7CisgICAg
ZWxzZSB7CisgICAgICAgIGJsb2NrLT5zdWNjZXNzb3JzKCkuYXBwZW5kKGJsb2NrLT5zdWNjZXNz
b3JzKCkubGFzdCgpKTsKKyAgICAgICAgYmxvY2stPnN1Y2Nlc3NvcihibG9jay0+bnVtU3VjY2Vz
c29ycygpIC0gMikgPSBzd2l0Y2hDYXNlLnRhcmdldCgpOworICAgIH0KICAgICBtX3ZhbHVlcy5h
cHBlbmQoc3dpdGNoQ2FzZS5jYXNlVmFsdWUoKSk7CiB9CiAKK3ZvaWQgU3dpdGNoVmFsdWU6OnNl
dEZhbGx0aHJvdWdoKGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgdGFyZ2V0KQoreworICAgIHNldEZh
bGx0aHJvdWdoKG93bmVyLCB0YXJnZXQpOworfQorCit2b2lkIFN3aXRjaFZhbHVlOjphcHBlbmRD
YXNlKGNvbnN0IFN3aXRjaENhc2UmIHN3aXRjaENhc2UpCit7CisgICAgYXBwZW5kQ2FzZShvd25l
ciwgc3dpdGNoQ2FzZSk7Cit9CisKK3ZvaWQgU3dpdGNoVmFsdWU6OmR1bXBTdWNjZXNzb3JzKEJh
c2ljQmxvY2sqIGJsb2NrLCBQcmludFN0cmVhbSYgb3V0KSBjb25zdAoreworICAgIC8vIFdlIG11
c3Qgbm90IGNyYXNoIGR1ZSB0byBhIG51bWJlci1vZi1zdWNjZXNzb3JzIG1pc21hdGNoISBTb21l
b25lIGRlYnVnZ2luZyBhCisgICAgLy8gbnVtYmVyLW9mLXN1Y2Nlc3NvcnMgYnVnIHdpbGwgd2Fu
dCB0byBkdW1wIElSIQorICAgIGlmIChudW1DYXNlVmFsdWVzKCkgKyAxICE9IGJsb2NrLT5udW1T
dWNjZXNzb3JzKCkpIHsKKyAgICAgICAgVmFsdWU6OmR1bXBTdWNjZXNzb3JzKGJsb2NrLCBvdXQp
OworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIG91dC5wcmludChjYXNlcyhibG9j
aykpOworfQorCiB2b2lkIFN3aXRjaFZhbHVlOjpkdW1wTWV0YShDb21tYVByaW50ZXImIGNvbW1h
LCBQcmludFN0cmVhbSYgb3V0KSBjb25zdAogewotICAgIC8vIFRoaXMgZGVzdHJ1Y3RpdmVseSBv
dmVycmlkZXMgQ29udHJvbFZhbHVlJ3MgZHVtcE1ldGEoKS4KLSAgICBmb3IgKFN3aXRjaENhc2Ug
c3dpdGNoQ2FzZSA6ICp0aGlzKQotICAgICAgICBvdXQucHJpbnQoY29tbWEsIHN3aXRjaENhc2Up
OwotICAgIG91dC5wcmludChjb21tYSwgImZhbGxUaHJvdWdoID0gIiwgZmFsbFRocm91Z2goKSk7
CisgICAgb3V0LnByaW50KGNvbW1hLCAiY2FzZXMgPSBbIiwgbGlzdER1bXAobV92YWx1ZXMpLCAi
XSIpOwogfQogCiBWYWx1ZSogU3dpdGNoVmFsdWU6OmNsb25lSW1wbCgpIGNvbnN0CkBAIC02OCwx
MCArMTA3LDkgQEAgVmFsdWUqIFN3aXRjaFZhbHVlOjpjbG9uZUltcGwoKSBjb25zdAogICAgIHJl
dHVybiBuZXcgU3dpdGNoVmFsdWUoKnRoaXMpOwogfQogCi1Td2l0Y2hWYWx1ZTo6U3dpdGNoVmFs
dWUoT3JpZ2luIG9yaWdpbiwgVmFsdWUqIGNoaWxkLCBjb25zdCBGcmVxdWVudGVkQmxvY2smIGZh
bGxUaHJvdWdoKQotICAgIDogQ29udHJvbFZhbHVlKFN3aXRjaCwgVm9pZCwgb3JpZ2luLCBjaGls
ZCkKK1N3aXRjaFZhbHVlOjpTd2l0Y2hWYWx1ZShPcmlnaW4gb3JpZ2luLCBWYWx1ZSogY2hpbGQp
CisgICAgOiBWYWx1ZShDaGVja2VkT3Bjb2RlLCBTd2l0Y2gsIFZvaWQsIG9yaWdpbiwgY2hpbGQp
CiB7Ci0gICAgbV9zdWNjZXNzb3JzLmFwcGVuZChmYWxsVGhyb3VnaCk7CiB9CiAKIH0gfSAvLyBu
YW1lc3BhY2UgSlNDOjpCMwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3dpdGNo
VmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTd2l0Y2hW
YWx1ZS5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNT
d2l0Y2hWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCwxMiArMjgsMTMgQEAKIAogI2lmIEVO
QUJMRShCM19KSVQpCiAKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgorI2luY2x1ZGUgIkIz
Q2FzZUNvbGxlY3Rpb24uaCIKICNpbmNsdWRlICJCM1N3aXRjaENhc2UuaCIKKyNpbmNsdWRlICJC
M1ZhbHVlLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCi1jbGFzcyBTd2l0
Y2hWYWx1ZSA6IHB1YmxpYyBDb250cm9sVmFsdWUgeworY2xhc3MgU3dpdGNoVmFsdWUgOiBwdWJs
aWMgVmFsdWUgewogcHVibGljOgogICAgIHN0YXRpYyBib29sIGFjY2VwdHMoT3Bjb2RlIG9wY29k
ZSkgeyByZXR1cm4gb3Bjb2RlID09IFN3aXRjaDsgfQogCkBAIC00Nyw3MiArNDgsMjMgQEAgcHVi
bGljOgogICAgIAogICAgIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgY2FzZVZhbHVlcygpIGNvbnN0
IHsgcmV0dXJuIG1fdmFsdWVzOyB9CiAKLSAgICBGcmVxdWVudGVkQmxvY2sgZmFsbFRocm91Z2go
KSBjb25zdCB7IHJldHVybiBzdWNjZXNzb3JzKCkubGFzdCgpOyB9Ci0gICAgRnJlcXVlbnRlZEJs
b2NrJiBmYWxsVGhyb3VnaCgpIHsgcmV0dXJuIHN1Y2Nlc3NvcnMoKS5sYXN0KCk7IH0KLQotICAg
IHVuc2lnbmVkIHNpemUoKSBjb25zdCB7IHJldHVybiBudW1DYXNlVmFsdWVzKCk7IH0KLSAgICBT
d2l0Y2hDYXNlIGF0KHVuc2lnbmVkIGluZGV4KSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJu
IFN3aXRjaENhc2UoY2FzZVZhbHVlKGluZGV4KSwgc3VjY2Vzc29yKGluZGV4KSk7Ci0gICAgfQot
ICAgIFN3aXRjaENhc2Ugb3BlcmF0b3JbXSh1bnNpZ25lZCBpbmRleCkgY29uc3QKLSAgICB7Ci0g
ICAgICAgIHJldHVybiBhdChpbmRleCk7Ci0gICAgfQotCi0gICAgY2xhc3MgaXRlcmF0b3Igewot
ICAgIHB1YmxpYzoKLSAgICAgICAgaXRlcmF0b3IoKQotICAgICAgICAgICAgOiBtX3N3aXRjaChu
dWxscHRyKQotICAgICAgICAgICAgLCBtX2luZGV4KDApCi0gICAgICAgIHsKLSAgICAgICAgfQot
Ci0gICAgICAgIGl0ZXJhdG9yKGNvbnN0IFN3aXRjaFZhbHVlJiBzd2l0Y2hWYWx1ZSwgdW5zaWdu
ZWQgaW5kZXgpCi0gICAgICAgICAgICA6IG1fc3dpdGNoKCZzd2l0Y2hWYWx1ZSkKLSAgICAgICAg
ICAgICwgbV9pbmRleChpbmRleCkKLSAgICAgICAgewotICAgICAgICB9Ci0KLSAgICAgICAgU3dp
dGNoQ2FzZSBvcGVyYXRvciooKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbV9zd2l0
Y2gtPmF0KG1faW5kZXgpOwotICAgICAgICB9Ci0KLSAgICAgICAgaXRlcmF0b3ImIG9wZXJhdG9y
KysoKQotICAgICAgICB7Ci0gICAgICAgICAgICBtX2luZGV4Kys7Ci0gICAgICAgICAgICByZXR1
cm4gKnRoaXM7Ci0gICAgICAgIH0KLQotICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgaXRl
cmF0b3ImIG90aGVyKSBjb25zdAotICAgICAgICB7Ci0gICAgICAgICAgICBBU1NFUlQobV9zd2l0
Y2ggPT0gb3RoZXIubV9zd2l0Y2gpOwotICAgICAgICAgICAgcmV0dXJuIG1faW5kZXggPT0gb3Ro
ZXIubV9pbmRleDsKLSAgICAgICAgfQotCi0gICAgICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBp
dGVyYXRvciYgb3RoZXIpIGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiAhKCp0
aGlzID09IG90aGVyKTsKLSAgICAgICAgfQotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgY29uc3Qg
U3dpdGNoVmFsdWUqIG1fc3dpdGNoOwotICAgICAgICB1bnNpZ25lZCBtX2luZGV4OwotICAgIH07
Ci0KLSAgICB0eXBlZGVmIGl0ZXJhdG9yIGNvbnN0X2l0ZXJhdG9yOwotCi0gICAgaXRlcmF0b3Ig
YmVnaW4oKSBjb25zdCB7IHJldHVybiBpdGVyYXRvcigqdGhpcywgMCk7IH0KLSAgICBpdGVyYXRv
ciBlbmQoKSBjb25zdCB7IHJldHVybiBpdGVyYXRvcigqdGhpcywgc2l6ZSgpKTsgfQorICAgIENh
c2VDb2xsZWN0aW9uIGNhc2VzKEJhc2ljQmxvY2sqIG93bmVyKSBjb25zdCB7IHJldHVybiBDYXNl
Q29sbGVjdGlvbih0aGlzLCBvd25lcik7IH0KKyAgICBDYXNlQ29sbGVjdGlvbiBjYXNlcygpIGNv
bnN0IHsgcmV0dXJuIGNhc2VzKG93bmVyKTsgfQogCiAgICAgLy8gVGhpcyByZW1vdmVzIHRoZSBj
YXNlIGFuZCByZW9yZGVycyB0aGluZ3MgYSBiaXQuIElmIHlvdSdyZSBpdGVyYXRpbmcgdGhlIGNh
c2VzIGZyb20gMCB0byBOLAogICAgIC8vIHRoZW4geW91IGNhbiBrZWVwIGl0ZXJhdGluZyBhZnRl
ciB0aGlzIHNvIGxvbmcgYXMgeW91IHJldmlzaXQgdGhpcyBzYW1lIGluZGV4ICh3aGljaCB3aWxs
IG5vdwogICAgIC8vIGNvbnRhaW4gc29tZSBvdGhlciBjYXNlIHZhbHVlKS4gVGhpcyByZW1vdmVz
IHRoZSBjYXNlIHRoYXQgd2FzIHJlbW92ZWQuCi0gICAgU3dpdGNoQ2FzZSByZW1vdmVDYXNlKHVu
c2lnbmVkIGluZGV4KTsKKyAgICBTd2l0Y2hDYXNlIHJlbW92ZUNhc2UoQmFzaWNCbG9jayosIHVu
c2lnbmVkIGluZGV4KTsKIAorICAgIC8vIFRoZXNlIHR3byBmdW5jdGlvbnMgY2FuIGJlIGNhbGxl
ZCBpbiBhbnkgb3JkZXIuCisgICAgdm9pZCBzZXRGYWxsdGhyb3VnaChCYXNpY0Jsb2NrKiwgY29u
c3QgRnJlcXVlbnRlZEJsb2NrJik7CisgICAgdm9pZCBhcHBlbmRDYXNlKEJhc2ljQmxvY2sqLCBj
b25zdCBTd2l0Y2hDYXNlJik7CisgICAgCisgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBzZXRG
YWxsdGhyb3VnaChjb25zdCBGcmVxdWVudGVkQmxvY2smKTsKICAgICBKU19FWFBPUlRfUFJJVkFU
RSB2b2lkIGFwcGVuZENhc2UoY29uc3QgU3dpdGNoQ2FzZSYpOwogCisgICAgdm9pZCBkdW1wU3Vj
Y2Vzc29ycyhCYXNpY0Jsb2NrKiwgUHJpbnRTdHJlYW0mKSBjb25zdCBvdmVycmlkZTsKKwogcHJv
dGVjdGVkOgogICAgIHZvaWQgZHVtcE1ldGEoQ29tbWFQcmludGVyJiwgUHJpbnRTdHJlYW0mKSBj
b25zdCBvdmVycmlkZTsKIApAQCAtMTIxLDcgKzczLDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToK
ICAgICBmcmllbmQgY2xhc3MgUHJvY2VkdXJlOwogCi0gICAgSlNfRVhQT1JUX1BSSVZBVEUgU3dp
dGNoVmFsdWUoT3JpZ2luLCBWYWx1ZSogY2hpbGQsIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgZmFs
bFRocm91Z2gpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIFN3aXRjaFZhbHVlKE9yaWdpbiwgVmFs
dWUqIGNoaWxkKTsKIAogICAgIFZlY3RvcjxpbnQ2NF90PiBtX3ZhbHVlczsKIH07CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWxpZGF0ZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsaWRhdGUuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWxpZGF0ZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEwNyw4ICsxMDcsOCBAQCBwdWJsaWM6CiAgICAgICAgIGZvciAoQmFzaWNCbG9jayogYmxv
Y2sgOiBibG9ja3MpIHsKICAgICAgICAgICAgIFZBTElEQVRFKGJsb2NrLT5zaXplKCkgPj0gMSwg
KCJBdCAiLCAqYmxvY2spKTsKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBi
bG9jay0+c2l6ZSgpIC0gMTsgKytpKQotICAgICAgICAgICAgICAgIFZBTElEQVRFKCFDb250cm9s
VmFsdWU6OmFjY2VwdHMoYmxvY2stPmF0KGkpLT5vcGNvZGUoKSksICgiQXQgIiwgKmJsb2NrLT5h
dChpKSkpOwotICAgICAgICAgICAgVkFMSURBVEUoQ29udHJvbFZhbHVlOjphY2NlcHRzKGJsb2Nr
LT5sYXN0KCktPm9wY29kZSgpKSwgKCJBdCAiLCAqYmxvY2stPmxhc3QoKSkpOworICAgICAgICAg
ICAgICAgIFZBTElEQVRFKCFibG9jay0+YXQoaSktPmVmZmVjdHMoKS50ZXJtaW5hbCwgKCJBdCAi
LCAqYmxvY2stPmF0KGkpKSk7CisgICAgICAgICAgICBWQUxJREFURShibG9jay0+bGFzdCgpLT5l
ZmZlY3RzKCkudGVybWluYWwsICgiQXQgIiwgKmJsb2NrLT5sYXN0KCkpKTsKICAgICAgICAgICAg
IAogICAgICAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBzdWNjZXNzb3IgOiBibG9jay0+c3VjY2Vz
c29yQmxvY2tzKCkpIHsKICAgICAgICAgICAgICAgICBhbGxQcmVkZWNlc3NvcnMuYWRkKHN1Y2Nl
c3NvciwgSGFzaFNldDxCYXNpY0Jsb2NrKj4oKSkuaXRlcmF0b3ItPnZhbHVlLmFkZChibG9jayk7
CkBAIC0xMjksOCArMTI5LDYgQEAgcHVibGljOgogICAgICAgICAgICAgICAgIFZBTElEQVRFKGNo
aWxkLT50eXBlKCkgIT0gVm9pZCwgKCJBdCAiLCAqdmFsdWUsICItPiIsICpjaGlsZCkpOwogICAg
ICAgICAgICAgc3dpdGNoICh2YWx1ZS0+b3Bjb2RlKCkpIHsKICAgICAgICAgICAgIGNhc2UgTm9w
OgotICAgICAgICAgICAgY2FzZSBKdW1wOgotICAgICAgICAgICAgY2FzZSBPb3BzOgogICAgICAg
ICAgICAgICAgIFZBTElEQVRFKCF2YWx1ZS0+bnVtQ2hpbGRyZW4oKSwgKCJBdCAiLCAqdmFsdWUp
KTsKICAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+dHlwZSgpID09IFZvaWQsICgiQXQg
IiwgKnZhbHVlKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0zNzcsMTUgKzM3NSwzMiBA
QCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgVkFMSURBVEUoIXZhbHVlLT5udW1DaGlsZHJlbigp
LCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBl
KCkgIT0gVm9pZCwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgSnVtcDoKKyAgICAgICAgICAgICAgICBWQUxJREFURSghdmFsdWUtPm51
bUNoaWxkcmVuKCksICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAgICAgVkFMSURBVEUo
dmFsdWUtPnR5cGUoKSA9PSBWb2lkLCAoIkF0ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAg
IFZBTElEQVRFKHZhbHVlT3duZXIuZ2V0KHZhbHVlKS0+bnVtU3VjY2Vzc29ycygpID09IDEpOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBPb3BzOgorICAgICAgICAg
ICAgICAgIFZBTElEQVRFKCF2YWx1ZS0+bnVtQ2hpbGRyZW4oKSwgKCJBdCAiLCAqdmFsdWUpKTsK
KyAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+dHlwZSgpID09IFZvaWQsICgiQXQgIiwg
KnZhbHVlKSk7CisgICAgICAgICAgICAgICAgVkFMSURBVEUoIXZhbHVlT3duZXIuZ2V0KHZhbHVl
KS0+bnVtU3VjY2Vzc29ycygpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
IGNhc2UgUmV0dXJuOgogICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT5udW1DaGlsZHJl
bigpID09IDEsICgiQXQgIiwgKnZhbHVlKSk7CiAgICAgICAgICAgICAgICAgVkFMSURBVEUodmFs
dWUtPnR5cGUoKSA9PSBWb2lkLCAoIkF0ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIFZB
TElEQVRFKCF2YWx1ZU93bmVyLmdldCh2YWx1ZSktPm51bVN1Y2Nlc3NvcnMoKSk7CiAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIEJyYW5jaDoKKyAgICAgICAgICAgICAg
ICBWQUxJREFURSh2YWx1ZS0+bnVtQ2hpbGRyZW4oKSA9PSAxLCAoIkF0ICIsICp2YWx1ZSkpOwor
ICAgICAgICAgICAgICAgIFZBTElEQVRFKGlzSW50KHZhbHVlLT5jaGlsZCgwKS0+dHlwZSgpKSwg
KCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+dHlwZSgp
ID09IFZvaWQsICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAgICAgVkFMSURBVEUodmFs
dWVPd25lci5nZXQodmFsdWUpLT5udW1TdWNjZXNzb3JzKCkgPT0gMik7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIFN3aXRjaDoKICAgICAgICAgICAgICAgICBWQUxJ
REFURSh2YWx1ZS0+bnVtQ2hpbGRyZW4oKSA9PSAxLCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAg
ICAgICAgICAgIFZBTElEQVRFKGlzSW50KHZhbHVlLT5jaGlsZCgwKS0+dHlwZSgpKSwgKCJBdCAi
LCAqdmFsdWUpKTsKICAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+dHlwZSgpID09IFZv
aWQsICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWVPd25l
ci5nZXQodmFsdWUpLT5udW1TdWNjZXNzb3JzKCkgPT0gdmFsdWUtPmFzPFN3aXRjaFZhbHVlPigp
LT5udW1DYXNlVmFsdWVzKCkgKyAxKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmNwcAkocmV2aXNpb24g
MjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiQjNBcmd1bWVudFJlZ1ZhbHVlLmgi
CiAjaW5jbHVkZSAiQjNCb3R0b21Qcm92aWRlci5oIgogI2luY2x1ZGUgIkIzQ0NhbGxWYWx1ZS5o
IgotI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNNZW1vcnlWYWx1ZS5o
IgogI2luY2x1ZGUgIkIzT3JpZ2luRHVtcC5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJlSW5saW5l
cy5oIgpAQCAtMTI1LDYgKzEyNCw1MCBAQCB2b2lkIFZhbHVlOjpyZXBsYWNlV2l0aFBoaSgpCiAg
ICAgdGhpcy0+bV9pbmRleCA9IGluZGV4OwogfQogCit2b2lkIFZhbHVlOjpyZXBsYWNlV2l0aEp1
bXAoQmFzaWNCbG9jayogb3duZXIsIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgdGFyZ2V0KQorewor
ICAgIFJFTEVBU0VfQVNTRVJUKG93bmVyLT5sYXN0KCkgPT0gdGhpcyk7CisgICAgCisgICAgdW5z
aWduZWQgaW5kZXggPSBtX2luZGV4OworICAgIE9yaWdpbiBvcmlnaW4gPSBtX29yaWdpbjsKKyAg
ICAKKyAgICB0aGlzLT5+VmFsdWUoKTsKKyAgICAKKyAgICBuZXcgKHRoaXMpIFZhbHVlKEp1bXAs
IFZvaWQsIG9yaWdpbik7CisgICAgCisgICAgdGhpcy0+b3duZXIgPSBvd25lcjsKKyAgICB0aGlz
LT5tX2luZGV4ID0gaW5kZXg7CisgICAgCisgICAgb3duZXItPnNldFN1Y2Nlc3NvcnModGFyZ2V0
KTsKK30KKwordm9pZCBWYWx1ZTo6cmVwbGFjZVdpdGhPb3BzKEJhc2ljQmxvY2sqIG93bmVyKQor
eworICAgIFJFTEVBU0VfQVNTRVJUKG93bmVyLT5sYXN0KCkgPT0gdGhpcyk7CisgICAgCisgICAg
dW5zaWduZWQgaW5kZXggPSBtX2luZGV4OworICAgIE9yaWdpbiBvcmlnaW4gPSBtX29yaWdpbjsK
KyAgICAKKyAgICB0aGlzLT5+VmFsdWUoKTsKKyAgICAKKyAgICBuZXcgKHRoaXMpIFZhbHVlKE9v
cHMsIFZvaWQsIG9yaWdpbik7CisgICAgCisgICAgdGhpcy0+b3duZXIgPSBvd25lcjsKKyAgICB0
aGlzLT5tX2luZGV4ID0gaW5kZXg7CisgICAgCisgICAgb3duZXItPmNsZWFyU3VjY2Vzc29ycygp
OworfQorCit2b2lkIFZhbHVlOjpyZXBsYWNlV2l0aEp1bXAoY29uc3QgRnJlcXVlbnRlZEJsb2Nr
JiB0YXJnZXQpCit7CisgICAgcmVwbGFjZVdpdGhKdW1wKG93bmVyLCB0YXJnZXQpOworfQorCit2
b2lkIFZhbHVlOjpyZXBsYWNlV2l0aE9vcHMoKQoreworICAgIHJlcGxhY2VXaXRoT29wcyhvd25l
cik7Cit9CisKIHZvaWQgVmFsdWU6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHsKICAg
ICBib29sIGlzQ29uc3RhbnQgPSBmYWxzZTsKQEAgLTE4OSw2ICsyMzIsMTkgQEAgdm9pZCBWYWx1
ZTo6ZGVlcER1bXAoY29uc3QgUHJvY2VkdXJlKiBwcgogICAgIG91dC5wcmludCgiKSIpOwogfQog
Cit2b2lkIFZhbHVlOjpkdW1wU3VjY2Vzc29ycyhCYXNpY0Jsb2NrKiBibG9jaywgUHJpbnRTdHJl
YW0mIG91dCkgY29uc3QKK3sKKyAgICAvLyBOb3RlIHRoYXQgdGhpcyBtdXN0IG5vdCBjcmFzaCBp
ZiB3ZSBoYXZlIHRoZSB3cm9uZyBudW1iZXIgb2Ygc3VjY2Vzc29ycywgc2luY2Ugc29tZW9uZQor
ICAgIC8vIGRlYnVnZ2luZyBhIG51bWJlci1vZi1zdWNjZXNzb3JzIGJ1ZyB3aWxsIHByb2JhYmx5
IHdhbnQgdG8gZHVtcCBJUiEKKyAgICAKKyAgICBpZiAob3Bjb2RlKCkgPT0gQnJhbmNoICYmIGJs
b2NrLT5udW1TdWNjZXNzb3JzKCkgPT0gMikgeworICAgICAgICBvdXQucHJpbnQoIlRoZW46Iiwg
YmxvY2stPnRha2VuKCksICIsIEVsc2U6IiwgYmxvY2stPm5vdFRha2VuKCkpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorICAgIAorICAgIG91dC5wcmludChsaXN0RHVtcChibG9jay0+c3VjY2Vz
c29ycygpKSk7Cit9CisKIFZhbHVlKiBWYWx1ZTo6bmVnQ29uc3RhbnQoUHJvY2VkdXJlJikgY29u
c3QKIHsKICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTU1Miw2ICs2MDgsNyBAQCBFZmZlY3RzIFZh
bHVlOjplZmZlY3RzKCkgY29uc3QKICAgICBjYXNlIEp1bXA6CiAgICAgY2FzZSBCcmFuY2g6CiAg
ICAgY2FzZSBTd2l0Y2g6CisgICAgY2FzZSBQb2x5SnVtcDoKICAgICBjYXNlIFJldHVybjoKICAg
ICBjYXNlIE9vcHM6CiAgICAgICAgIHJlc3VsdC50ZXJtaW5hbCA9IHRydWU7CkBAIC03MTMsNiAr
NzcwLDEwIEBAIFR5cGUgVmFsdWU6OnR5cGVGb3IoT3Bjb2RlIG9wY29kZSwgVmFsdWUKICAgICAg
ICAgfQogICAgICAgICByZXR1cm4gVm9pZDsKICAgICBjYXNlIE5vcDoKKyAgICBjYXNlIEp1bXA6
CisgICAgY2FzZSBCcmFuY2g6CisgICAgY2FzZSBSZXR1cm46CisgICAgY2FzZSBPb3BzOgogICAg
ICAgICByZXR1cm4gVm9pZDsKICAgICBjYXNlIFNlbGVjdDoKICAgICAgICAgQVNTRVJUKHNlY29u
ZENoaWxkKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuaAkocmV2aXNpb24gMjAy
ODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuaAkod29ya2luZyBjb3B5
KQpAQCAtMTA5LDkgKzEwOSwxOSBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXBsYWNlV2l0aE5vcEln
bm9yaW5nVHlwZSgpOwogICAgIAogICAgIHZvaWQgcmVwbGFjZVdpdGhQaGkoKTsKKyAgICAKKyAg
ICAvLyBUaGVzZSB0cmFuc2Zvcm1hdGlvbnMgYXJlIG9ubHkgdmFsaWQgZm9yIHRlcm1pbmFscy4K
KyAgICB2b2lkIHJlcGxhY2VXaXRoSnVtcChCYXNpY0Jsb2NrKiBvd25lciwgY29uc3QgRnJlcXVl
bnRlZEJsb2NrJik7CisgICAgdm9pZCByZXBsYWNlV2l0aE9vcHMoQmFzaWNCbG9jayogb3duZXIp
OworICAgIAorICAgIC8vIFlvdSBjYW4gdXNlIHRoaXMgZm9ybSBpZiBvd25lcnMgYXJlIHZhbGlk
LiBUaGV5J3JlIHVzdWFsbHkgbm90IHZhbGlkLgorICAgIHZvaWQgcmVwbGFjZVdpdGhKdW1wKGNv
bnN0IEZyZXF1ZW50ZWRCbG9jayYpOworICAgIHZvaWQgcmVwbGFjZVdpdGhPb3BzKCk7CiAKICAg
ICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKICAgICB2b2lkIGRlZXBEdW1wKGNvbnN0
IFByb2NlZHVyZSosIFByaW50U3RyZWFtJikgY29uc3Q7CisgICAgCisgICAgdmlydHVhbCB2b2lk
IGR1bXBTdWNjZXNzb3JzKEJhc2ljQmxvY2sqLCBQcmludFN0cmVhbSYpIGNvbnN0OwogCiAgICAg
Ly8gVGhpcyBpcyBob3cgeW91IGNhc3QgVmFsdWVzLiBGb3IgZXhhbXBsZSwgaWYgeW91IHdhbnQg
dG8gZG8gc29tZXRoaW5nIHByb3ZpZGVkIHRoYXQgd2UgaGF2ZSBhCiAgICAgLy8gQXJndW1lbnRS
ZWdWYWx1ZSwgeW91IGNhbiBkbzoKQEAgLTIyMyw3ICsyMzMsNyBAQCBwdWJsaWM6CiAgICAgYm9v
bCBpc0xpa2VOb25aZXJvKCkgY29uc3QgeyByZXR1cm4gYXNUcmlTdGF0ZSgpID09IFRydWVUcmlT
dGF0ZTsgfQogCiAgICAgRWZmZWN0cyBlZmZlY3RzKCkgY29uc3Q7Ci0KKyAgICAKICAgICAvLyBU
aGlzIHJldHVybnMgYSBWYWx1ZUtleSB0aGF0IGRlc2NyaWJlcyB0aGF0IHRoaXMgVmFsdWUgcmV0
dXJucyB3aGVuIGl0IGV4ZWN1dGVzLiBSZXR1cm5zIGFuCiAgICAgLy8gZW1wdHkgVmFsdWVLZXkg
aWYgdGhpcyBWYWx1ZSBpcyBpbXB1cmUuIE5vdGUgdGhhdCBhbiBvcGVyYXRpb24gdGhhdCByZXR1
cm5zIFZvaWQgY291bGQgc3RpbGwKICAgICAvLyBoYXZlIGEgbm9uLWVtcHR5IFZhbHVlS2V5LiBU
aGlzIGhhcHBlbnMgZm9yIGV4YW1wbGUgd2l0aCBDaGVjayBvcGVyYXRpb25zLgpAQCAtMjY0LDYg
KzI3NCw4IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgRnJhbWVQb2ludGVyOgogICAgICAgICBj
YXNlIE5vcDoKICAgICAgICAgY2FzZSBQaGk6CisgICAgICAgIGNhc2UgSnVtcDoKKyAgICAgICAg
Y2FzZSBPb3BzOgogICAgICAgICAgICAgaWYgKFVOTElLRUxZKG51bUFyZ3MpKQogICAgICAgICAg
ICAgICAgIGJhZE9wY29kZShvcGNvZGUsIG51bUFyZ3MpOwogICAgICAgICAgICAgYnJlYWs7CkBA
IC0yODQsNiArMjk2LDggQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBEb3VibGVUb0Zsb2F0Ogog
ICAgICAgICBjYXNlIElUb0Y6CiAgICAgICAgIGNhc2UgQml0d2lzZUNhc3Q6CisgICAgICAgIGNh
c2UgQnJhbmNoOgorICAgICAgICBjYXNlIFJldHVybjoKICAgICAgICAgICAgIGlmIChVTkxJS0VM
WShudW1BcmdzICE9IDEpKQogICAgICAgICAgICAgICAgIGJhZE9wY29kZShvcGNvZGUsIG51bUFy
Z3MpOwogICAgICAgICAgICAgYnJlYWs7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
dGVzdGIzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIz
LmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3Ri
My5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDggKzMzLDggQEAKICNpbmNsdWRlICJCM0NvbXB1
dGVEaXZpc2lvbk1hZ2ljLmgiCiAjaW5jbHVkZSAiQjNDb25zdDMyVmFsdWUuaCIKICNpbmNsdWRl
ICJCM0NvbnN0UHRyVmFsdWUuaCIKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1
ZGUgIkIzRWZmZWN0cy5oIgorI2luY2x1ZGUgIkIzUG9seUp1bXBWYWx1ZS5oIgogI2luY2x1ZGUg
IkIzTWF0aEV4dHJhcy5oIgogI2luY2x1ZGUgIkIzTWVtb3J5VmFsdWUuaCIKICNpbmNsdWRlICJC
M1Byb2NlZHVyZS5oIgpAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgIkIzVXBzaWxvblZhbHVl
LmgiCiAjaW5jbHVkZSAiQjNWYWxpZGF0ZS5oIgogI2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgi
CisjaW5jbHVkZSAiQjNWYXJpYWJsZVZhbHVlLmgiCiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgi
CiAjaW5jbHVkZSAiSW5pdGlhbGl6ZVRocmVhZGluZy5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMu
aCIKQEAgLTU0LDYgKzU1LDcgQEAKICNpbmNsdWRlICJWTS5oIgogI2luY2x1ZGUgPGNtYXRoPgog
I2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDx3dGYvTGlzdER1bXAuaD4KICNpbmNsdWRlIDx3
dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9OdW1iZXJPZkNvcmVzLmg+CiAjaW5jbHVkZSA8d3Rm
L1RocmVhZGluZy5oPgpAQCAtNzUsNiArNzcsMTEgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzo6QjM7
CiAKIG5hbWVzcGFjZSB7CiAKK2Jvb2wgc2hvdWxkQmVWZXJib3NlKCkKK3sKKyAgICByZXR1cm4g
c2hvdWxkRHVtcElSKEIzTW9kZSk7Cit9CisKIFN0YXRpY0xvY2sgY3Jhc2hMb2NrOwogCiAvLyBO
b3RoaW5nIGZhbmN5IGZvciBub3c7IHdlIGp1c3QgdXNlIHRoZSBleGlzdGluZyBXVEYgYXNzZXJ0
aW9uIG1hY2hpbmVyeS4KQEAgLTE5NCw3ICsyMDEsNyBAQCB2b2lkIHRlc3Q0MigpCiAgICAgUHJv
Y2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAg
ICBWYWx1ZSogY29uc3Q0MiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCA0Mik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgY29uc3Q0Mik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNvbnN0NDIpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFu
ZFJ1bjxpbnQ+KHByb2MpID09IDQyKTsKIH0KQEAgLTIwNCw3ICsyMTEsNyBAQCB2b2lkIHRlc3RM
b2FkNDIoKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7CiAgICAgaW50IHggPSA0MjsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4o
CiAgICAgICAgICAgICBwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2luKCksCkBAIC0yMjAsNyArMjI3
LDcgQEAgdm9pZCB0ZXN0TG9hZFdpdGhPZmZzZXRJbXBsKGludDMyX3Qgb2ZmcwogICAgICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgICAgICBpbnQ2NF90IHggPSAt
NDI7CiAgICAgICAgIFZhbHVlKiBiYXNlID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwotICAgICAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgTG9h
ZCwgSW50NjQsIE9yaWdpbigpLApAQCAtMjM1LDcgKzI0Miw3IEBAIHZvaWQgdGVzdExvYWRXaXRo
T2Zmc2V0SW1wbChpbnQzMl90IG9mZnMKICAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKICAgICAgICAgaW50MzJfdCB4ID0gLTQyOwogICAgICAgICBWYWx1ZSogYmFz
ZSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BS
SW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5
VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwKQEAg
LTI4OCw3ICsyOTUsNyBAQCB2b2lkIHRlc3RBcmcoaW50IGFyZ3VtZW50KQogewogICAgIFByb2Nl
ZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCkpOwogCkBAIC0yOTksNyArMzA2LDcgQEAgdm9pZCB0ZXN0UmV0dXJuQ29uc3Q2NChp
bnQ2NF90IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgdmFsdWUpKTsKIApAQCAtMzExLDcgKzMxOCw3IEBAIHZvaWQgdGVzdEFkZEFyZyhp
bnQgYSkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgdmFsdWUsIHZhbHVlKSk7CiAKQEAgLTMy
Miw3ICszMjksNyBAQCB2b2lkIHRlc3RBZGRBcmdzKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9j
ZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCkBAIC0z
MzYsNyArMzQzLDcgQEAgdm9pZCB0ZXN0QWRkQXJnSW1tKGludCBhLCBpbnQgYikKIHsKICAgICBQ
cm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCkBA
IC0zNTAsNyArMzU3LDcgQEAgdm9pZCB0ZXN0QWRkSW1tQXJnKGludCBhLCBpbnQgYikKIHsKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCks
CkBAIC0zNzAsNyArMzc3LDcgQEAgdm9pZCB0ZXN0QWRkQXJnTWVtKGludDY0X3QgYSwgaW50NjRf
dCBiKQogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCksCiAgICAgICAgIGxvYWQpOwogICAgIHJvb3Qt
PmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGFk
ZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAw
KSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAK
ICAgICBpbnQ2NF90IGlucHV0T3V0cHV0ID0gYjsKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxp
bnQ2NF90Pihwcm9jLCBhLCAmaW5wdXRPdXRwdXQpKTsKQEAgLTM4Niw3ICszOTMsNyBAQCB2b2lk
IHRlc3RBZGRNZW1BcmcoaW50NjRfdCBhLCBpbnQ2NF90IGIpCiAgICAgVmFsdWUqIHJlc3VsdCA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwKICAgICAgICAgbG9h
ZCwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAg
Q0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAmYSwgYikgPT0gYSArIGIpOwogfQpA
QCAtNDAxLDcgKzQwOCw3IEBAIHZvaWQgdGVzdEFkZEltbU1lbShpbnQ2NF90IGEsIGludDY0X3Qg
YikKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IGEpLAogICAgICAgICBsb2FkKTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHBy
b2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgaW50NjRfdCBpbnB1dE91dHB1dCA9
IGI7CiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAmaW5wdXRPdXRwdXQpKTsK
QEAgLTQxNCw3ICs0MjEsNyBAQCB2b2lkIHRlc3RBZGRBcmczMihpbnQgYSkKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCB2YWx1ZSwg
dmFsdWUpKTsKIApAQCAtNDI1LDcgKzQzMiw3IEBAIHZvaWQgdGVzdEFkZEFyZ3MzMihpbnQgYSwg
aW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBB
ZGQsIE9yaWdpbigpLApAQCAtNDQ5LDcgKzQ1Niw3IEBAIHZvaWQgdGVzdEFkZEFyZ01lbTMyKGlu
dDMyX3QgYSwgaW50MzJfdCAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSog
cmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBhcmd1
bWVudCwgbG9hZCk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9y
ZSwgT3JpZ2luKCksIHJlc3VsdCwgYWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGludDMyX3QgaW5wdXRPdXRwdXQgPSBiOwogICAg
IENIRUNLKCFjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGEsICZpbnB1dE91dHB1dCkpOwpA
QCAtNDY1LDcgKzQ3Miw3IEBAIHZvaWQgdGVzdEFkZE1lbUFyZzMyKGludDMyX3QgYSwgaW50MzJf
dCAKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRy
dW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKTsKICAgICBWYWx1ZSogcmVz
dWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBsb2FkLCBh
cmd1bWVudCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48
aW50MzJfdD4ocHJvYywgJmEsIGIpID09IGEgKyBiKTsKIH0KQEAgLTQ4MCw3ICs0ODcsNyBAQCB2
b2lkIHRlc3RBZGRJbW1NZW0zMihpbnQzMl90IGEsIGludDMyX3QgCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKSwKICAgICAgICAgbG9hZCk7
CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCks
IHJlc3VsdCwgYWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDApKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDApKTsKIAogICAgIGludDMyX3QgaW5wdXRPdXRwdXQgPSBiOwogICAgIENIRUNLKCFjb21w
aWxlQW5kUnVuPGludD4ocHJvYywgJmlucHV0T3V0cHV0KSk7CkBAIC00OTUsNyArNTAyLDcgQEAg
dm9pZCB0ZXN0QWRkQXJnWmVyb0ltbVpEZWYoKQogICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgVmFsdWUqIGNvbnN0WmVybyA9IHJv
b3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAtNTE1LDcg
KzUyMiw3IEBAIHZvaWQgdGVzdEFkZExvYWRUd2ljZSgpCiAgICAgICAgIFZhbHVlKiBsb2FkID0g
cm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgIHByb2MsIExvYWQsIElu
dDMyLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgJnZhbHVlKSk7Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBsb2FkLCBsb2FkKSk7CiAKQEAgLTUzMiw3ICs1
MzksNyBAQCB2b2lkIHRlc3RBZGRBcmdEb3VibGUoZG91YmxlIGEpCiAgICAgUHJvY2VkdXJlIHBy
b2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSog
dmFsdWUgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEZQUkluZm86OmFyZ3VtZW50RlBSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwg
T3JpZ2luKCksIHZhbHVlLCB2YWx1ZSkpOwogCkBAIC01NDUsNyArNTUyLDcgQEAgdm9pZCB0ZXN0
QWRkQXJnc0RvdWJsZShkb3VibGUgYSwgZG91YmxlIAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAg
ICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjEpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBBZGQsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC01NTgsNyArNTY1LDcg
QEAgdm9pZCB0ZXN0QWRkQXJnSW1tRG91YmxlKGRvdWJsZSBhLCBkb3VibAogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1l
bnRGUFIwKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91Ymxl
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRk
LCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtNTcxLDcgKzU3OCw3IEBAIHZvaWQg
dGVzdEFkZEltbUFyZ0RvdWJsZShkb3VibGUgYSwgZG91YmwKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8
Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiB2YWx1ZUIg
PSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUklu
Zm86OmFyZ3VtZW50RlBSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2lu
KCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTU4NCw3ICs1OTEsNyBAQCB2b2lkIHRlc3RBZGRJ
bW1zRG91YmxlKGRvdWJsZSBhLCBkb3VibGUgCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91
YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+
YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAt
NjAwLDcgKzYwNyw3IEBAIHZvaWQgdGVzdEFkZEFyZ0Zsb2F0KGZsb2F0IGEpCiAgICAgVmFsdWUq
IGZsb2F0VmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBP
cmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSwgZmxvYXRWYWx1ZSk7CiAg
ICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNl
Q2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKIAogICAg
IENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9j
YXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgKyBhKSkpOwpAQCAtNjE4
LDcgKzYyNSw3IEBAIHZvaWQgdGVzdEFkZEFyZ3NGbG9hdChmbG9hdCBhLCBmbG9hdCBiKQogICAg
IFZhbHVlKiBmbG9hdFZhbHVlMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lz
ZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDJpbnQzMik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZTEsIGZs
b2F0VmFsdWUyKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJv
YywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBi
aXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSArIGIpKSk7CiB9CkBAIC02MzMsNyArNjQwLDcgQEAgdm9p
ZCB0ZXN0QWRkQXJnSW1tRmxvYXQoZmxvYXQgYSwgZmxvYXQgYgogICAgIFZhbHVlKiBjb25zdFZh
bHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIp
OwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwg
T3JpZ2luKCksIGZsb2F0VmFsdWUsIGNvbnN0VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1
bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29t
cGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oYSArIGIpKSk7CiB9CkBAIC02NDgsNyArNjU1LDcgQEAgdm9pZCB0
ZXN0QWRkSW1tQXJnRmxvYXQoZmxvYXQgYSwgZmxvYXQgYgogICAgIFZhbHVlKiBjb25zdFZhbHVl
ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwog
ICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3Jp
Z2luKCksIGNvbnN0VmFsdWUsIGZsb2F0VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGls
ZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3aXNl
X2Nhc3Q8aW50MzJfdD4oYSArIGIpKSk7CiB9CkBAIC02NjEsNyArNjY4LDcgQEAgdm9pZCB0ZXN0
QWRkSW1tc0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIpCiAgICAgVmFsdWUqIGNvbnN0VmFsdWUyID0g
cm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogICAg
IFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2lu
KCksIGNvbnN0VmFsdWUxLCBjb25zdFZhbHVlMik7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxl
QW5kUnVuPGludDMyX3Q+KHByb2MpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSArIGIpKSk7CiB9
CkBAIC02NzcsNyArNjg0LDcgQEAgdm9pZCB0ZXN0QWRkQXJnRmxvYXRXaXRoVXNlbGVzc0RvdWJs
ZUNvbgogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFk
ZCwgT3JpZ2luKCksIGFzRG91YmxlLCBhc0RvdWJsZSk7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwg
cmVzdWx0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihw
cm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAr
IGEpKSk7CiB9CkBAIC02OTcsNyArNzA0LDcgQEAgdm9pZCB0ZXN0QWRkQXJnc0Zsb2F0V2l0aFVz
ZWxlc3NEb3VibGVDbwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEFkZCwgT3JpZ2luKCksIGFzRG91YmxlMSwgYXNEb3VibGUyKTsKICAgICBWYWx1ZSog
ZmxvYXRSZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQs
IE9yaWdpbigpLCByZXN1bHQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVu
PGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgKyBiKSkpOwogfQpAQCAtNzE5LDcg
KzcyNiw3IEBAIHZvaWQgdGVzdEFkZEFyZ3NGbG9hdFdpdGhFZmZlY3RmdWxEb3VibGUKICAgICBW
YWx1ZSogZG91YmxlQWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKTsKICAgICByb290LT5hcHBlbmRO
ZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBkb3VibGVBZGRy
ZXNzKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
MzIpOwogCiAgICAgZG91YmxlIGVmZmVjdCA9IDA7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29t
cGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdp
c2VfY2FzdDxpbnQzMl90PihiKSwgJmVmZmVjdCksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhICsg
YikpKTsKQEAgLTczMiw3ICs3MzksNyBAQCB2b2lkIHRlc3RNdWxBcmcoaW50IGEpCiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWUgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksIHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIHZh
bHVlLCB2YWx1ZSkpOwogCkBAIC03NTksNyArNzY2LDcgQEAgdm9pZCB0ZXN0TXVsQXJnU3RvcmUo
aW50IGEpCiAgICAgICAgIHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgbXVsLAogICAgICAgICByb290
LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZtdWxTbG90KSk7CiAK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBDSEVDSyghY29t
cGlsZUFuZFJ1bjxpbnQ+KHByb2MsIGEpKTsKQEAgLTc3NCw3ICs3ODEsNyBAQCB2b2lkIHRlc3RN
dWxBZGRBcmcoaW50IGEpCiAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BS
MCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2lu
KCksCkBAIC03ODgsNyArNzk1LDcgQEAgdm9pZCB0ZXN0TXVsQXJncyhpbnQgYSwgaW50IGIpCiB7
CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBNdWwsIE9yaWdp
bigpLApAQCAtODAyLDcgKzgwOSw3IEBAIHZvaWQgdGVzdE11bEFyZ0ltbShpbnQ2NF90IGEsIGlu
dDY0X3QgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IE11bCwgT3JpZ2luKCksCkBAIC04MTYsNyArODIzLDcgQEAgdm9pZCB0ZXN0TXVsSW1tQXJnKGlu
dCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIE11bCwgT3JpZ2luKCksCkBAIC04MzAsNyArODM3LDcgQEAgdm9pZCB0ZXN0TXVsQXJnczMy
KGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIE11bCwgT3JpZ2luKCksCkBAIC04NTMsNyArODYwLDcgQEAgdm9pZCB0ZXN0TXVsTG9h
ZFR3aWNlKCkKICAgICAgICAgVmFsdWUqIGxvYWQgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFs
dWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZCwgSW50MzIsIE9yaWdpbigpLAogICAgICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAmdmFsdWUp
KTsKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2lu
KCksIGxvYWQsIGxvYWQpKTsKIApAQCAtODc1LDcgKzg4Miw3IEBAIHZvaWQgdGVzdE11bEFkZEFy
Z3NMZWZ0KCkKICAgICBWYWx1ZSogYXJnMiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKTsKICAgICBWYWx1ZSog
bXVsdGlwbGllZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwg
YXJnMCwgYXJnMSk7CiAgICAgVmFsdWUqIGFkZGVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBBZGQsIE9yaWdpbigpLCBtdWx0aXBsaWVkLCBhcmcyKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsK
IAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKQEAgLTg5OSw3ICs5MDYsNyBAQCB2
b2lkIHRlc3RNdWxBZGRBcmdzUmlnaHQoKQogICAgIFZhbHVlKiBhcmcyID0gcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjIpOwogICAgIFZhbHVlKiBtdWx0aXBsaWVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBNdWwsIE9yaWdpbigpLCBhcmcxLCBhcmcyKTsKICAgICBWYWx1ZSogYWRkZWQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGFyZzAsIG11bHRpcGxpZWQpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IGFkZGVkKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgYWRkZWQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAt
OTI2LDcgKzkzMyw3IEBAIHZvaWQgdGVzdE11bEFkZEFyZ3NMZWZ0MzIoKQogICAgICAgICByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMikpOwogICAgIFZhbHVlKiBtdWx0aXBsaWVkID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBhcmcwLCBhcmcxKTsKICAgICBWYWx1ZSogYWRkZWQg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIG11bHRpcGxpZWQs
IGFyZzIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIGFkZGVkKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9j
KTsKIApAQCAtOTUzLDcgKzk2MCw3IEBAIHZvaWQgdGVzdE11bEFkZEFyZ3NSaWdodDMyKCkKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjIpKTsKICAgICBWYWx1ZSogbXVsdGlwbGllZCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgYXJnMSwgYXJnMik7CiAgICAgVmFs
dWUqIGFkZGVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBh
cmcwLCBtdWx0aXBsaWVkKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKIAogICAgIGF1dG8gY29kZSA9IGNv
bXBpbGUocHJvYyk7CiAKQEAgLTk3Nyw3ICs5ODQsNyBAQCB2b2lkIHRlc3RNdWxTdWJBcmdzTGVm
dCgpCiAgICAgVmFsdWUqIGFyZzIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMik7CiAgICAgVmFsdWUqIG11bHRp
cGxpZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGFyZzAs
IGFyZzEpOwogICAgIFZhbHVlKiBhZGRlZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
U3ViLCBPcmlnaW4oKSwgbXVsdGlwbGllZCwgYXJnMik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CiAKICAg
ICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC0xMDAxLDcgKzEwMDgsNyBAQCB2b2lk
IHRlc3RNdWxTdWJBcmdzUmlnaHQoKQogICAgIFZhbHVlKiBhcmcyID0gcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIp
OwogICAgIFZhbHVlKiBtdWx0aXBsaWVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBN
dWwsIE9yaWdpbigpLCBhcmcxLCBhcmcyKTsKICAgICBWYWx1ZSogYWRkZWQgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIGFyZzAsIG11bHRpcGxpZWQpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFk
ZGVkKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgYWRkZWQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAtMTAy
OCw3ICsxMDM1LDcgQEAgdm9pZCB0ZXN0TXVsU3ViQXJnc0xlZnQzMigpCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIyKSk7CiAgICAgVmFsdWUqIG11bHRpcGxpZWQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGFyZzAsIGFyZzEpOwogICAgIFZhbHVlKiBhZGRlZCA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgbXVsdGlwbGllZCwg
YXJnMik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgYWRkZWQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2Mp
OwogCkBAIC0xMDU1LDcgKzEwNjIsNyBAQCB2b2lkIHRlc3RNdWxTdWJBcmdzUmlnaHQzMigpCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
R1BSSW5mbzo6YXJndW1lbnRHUFIyKSk7CiAgICAgVmFsdWUqIG11bHRpcGxpZWQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGFyZzEsIGFyZzIpOwogICAgIFZh
bHVlKiBhZGRlZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwg
YXJnMCwgbXVsdGlwbGllZCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CiAKICAgICBhdXRvIGNvZGUgPSBj
b21waWxlKHByb2MpOwogCkBAIC0xMDc5LDcgKzEwODYsNyBAQCB2b2lkIHRlc3RNdWxOZWdBcmdz
KCkKICAgICBWYWx1ZSogbXVsdGlwbGllZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
TXVsLCBPcmlnaW4oKSwgYXJnMCwgYXJnMSk7CiAgICAgVmFsdWUqIHplcm8gPSByb290LT5hcHBl
bmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCk7CiAgICAgVmFsdWUqIGFkZGVk
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCB6ZXJvLCBtdWx0
aXBsaWVkKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBhZGRlZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJv
Yyk7CiAKQEAgLTExMDMsNyArMTExMCw3IEBAIHZvaWQgdGVzdE11bE5lZ0FyZ3MzMigpCiAgICAg
VmFsdWUqIG11bHRpcGxpZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3Jp
Z2luKCksIGFyZzAsIGFyZzEpOwogICAgIFZhbHVlKiB6ZXJvID0gcm9vdC0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApOwogICAgIFZhbHVlKiBhZGRlZCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgemVybywgbXVsdGlwbGllZCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgYWRkZWQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBhZGRlZCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBA
IC0xMTIwLDcgKzExMjcsNyBAQCB2b2lkIHRlc3RNdWxBcmdEb3VibGUoZG91YmxlIGEpCiAgICAg
UHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
ICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIE11bCwgT3JpZ2luKCksIHZhbHVlLCB2YWx1ZSkpOwogCkBAIC0xMTMzLDcgKzExNDAs
NyBAQCB2b2lkIHRlc3RNdWxBcmdzRG91YmxlKGRvdWJsZSBhLCBkb3VibGUgCiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1
bWVudEZQUjApOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMSk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAg
LTExNDYsNyArMTE1Myw3IEBAIHZvaWQgdGVzdE11bEFyZ0ltbURvdWJsZShkb3VibGUgYSwgZG91
YmwKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2
YWx1ZUEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVu
ZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTExNTks
NyArMTE2Niw3IEBAIHZvaWQgdGVzdE11bEltbUFyZ0RvdWJsZShkb3VibGUgYSwgZG91YmwKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEg
PSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwog
ICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIE11bCwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTExNzIsNyArMTE3
OSw3IEBAIHZvaWQgdGVzdE11bEltbXNEb3VibGUoZG91YmxlIGEsIGRvdWJsZSAKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290
LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZh
bHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIGIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCB2YWx1
ZUEsIHZhbHVlQikpOwogCkBAIC0xMTg4LDcgKzExOTUsNyBAQCB2b2lkIHRlc3RNdWxBcmdGbG9h
dChmbG9hdCBhKQogICAgIFZhbHVlKiBmbG9hdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiBy
ZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGZsb2F0
VmFsdWUsIGZsb2F0VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMy
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0MzIpOwogCiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGlu
dDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQz
Ml90PihhICogYSkpKTsKQEAgLTEyMDYsNyArMTIxMyw3IEBAIHZvaWQgdGVzdE11bEFyZ3NGbG9h
dChmbG9hdCBhLCBmbG9hdCBiKQogICAgIFZhbHVlKiBmbG9hdFZhbHVlMiA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDJpbnQzMik7
CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBP
cmlnaW4oKSwgZmxvYXRWYWx1ZTEsIGZsb2F0VmFsdWUyKTsKICAgICBWYWx1ZSogcmVzdWx0MzIg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVz
dWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNv
bXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAqIGIpKSk7CiB9
CkBAIC0xMjIxLDcgKzEyMjgsNyBAQCB2b2lkIHRlc3RNdWxBcmdJbW1GbG9hdChmbG9hdCBhLCBm
bG9hdCBiCiAgICAgVmFsdWUqIGNvbnN0VmFsdWUgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9h
dFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSwgY29uc3RWYWx1
ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBC
aXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAK
ICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdp
c2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhICogYikpKTsKIH0K
QEAgLTEyMzYsNyArMTI0Myw3IEBAIHZvaWQgdGVzdE11bEltbUFyZ0Zsb2F0KGZsb2F0IGEsIGZs
b2F0IGIKICAgICBWYWx1ZSogY29uc3RWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBjb25zdFZhbHVlLCBmbG9hdFZhbHVl
KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJp
dHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAog
ICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lz
ZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgKiBiKSkpOwogfQpA
QCAtMTI0OSw3ICsxMjU2LDcgQEAgdm9pZCB0ZXN0TXVsSW1tc0Zsb2F0KGZsb2F0IGEsIGZsb2F0
IGIpCiAgICAgVmFsdWUqIGNvbnN0VmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGNvbnN0VmFsdWUxLCBjb25zdFZhbHVl
Mik7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBC
aXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAK
ICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MpLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oYSAqIGIpKSk7CiB9CkBAIC0xMjY1LDcgKzEyNzIsNyBAQCB2b2lk
IHRlc3RNdWxBcmdGbG9hdFdpdGhVc2VsZXNzRG91YmxlQ29uCiAgICAgVmFsdWUqIHJlc3VsdCA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgYXNEb3VibGUsIGFz
RG91YmxlKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCByZXN1bHQpOwogICAgIFZhbHVlKiByZXN1
bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigp
LCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lk
ZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90
PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhICogYSkpKTsKIH0KQEAgLTEyODUsNyArMTI5
Miw3IEBAIHZvaWQgdGVzdE11bEFyZ3NGbG9hdFdpdGhVc2VsZXNzRG91YmxlQ28KICAgICBWYWx1
ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBh
c0RvdWJsZTEsIGFzRG91YmxlMik7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgcmVzdWx0KTsKICAg
ICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VD
YXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAg
ICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNl
X2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSksIGJpdHdpc2VfY2Fz
dDxpbnQzMl90PihhICogYikpKTsKIH0KQEAgLTEzMDcsNyArMTMxNCw3IEBAIHZvaWQgdGVzdE11
bEFyZ3NGbG9hdFdpdGhFZmZlY3RmdWxEb3VibGUKICAgICBWYWx1ZSogZG91YmxlTXVscmVzcyA9
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIyKTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2Ms
IFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBkb3VibGVNdWxyZXNzKTsKICAgICBWYWx1ZSogcmVz
dWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4o
KSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgZG91YmxlIGVm
ZmVjdCA9IDA7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihw
cm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSwg
JmVmZmVjdCksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhICogYikpKTsKQEAgLTEzMTksNyArMTMy
Niw3IEBAIHZvaWQgdGVzdERpdkFyZ0RvdWJsZShkb3VibGUgYSkKICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2
YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
RlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRGl2LCBP
cmlnaW4oKSwgdmFsdWUsIHZhbHVlKSk7CiAKQEAgLTEzMzIsNyArMTMzOSw3IEBAIHZvaWQgdGVz
dERpdkFyZ3NEb3VibGUoZG91YmxlIGEsIGRvdWJsZSAKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAg
ICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIxKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgRGl2LCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTM0NSw3ICsxMzUy
LDcgQEAgdm9pZCB0ZXN0RGl2QXJnSW1tRG91YmxlKGRvdWJsZSBhLCBkb3VibAogICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJn
dW1lbnRGUFIwKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91
YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
RGl2LCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTM1OCw3ICsxMzY1LDcgQEAg
dm9pZCB0ZXN0RGl2SW1tQXJnRG91YmxlKGRvdWJsZSBhLCBkb3VibAogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVu
ZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHZh
bHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
RlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRGl2LCBP
cmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTM3MSw3ICsxMzc4LDcgQEAgdm9pZCB0
ZXN0RGl2SW1tc0RvdWJsZShkb3VibGUgYSwgZG91YmxlIAogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxD
b25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHZhbHVlQiA9
IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERpdiwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7
CiAKQEAgLTEzODcsNyArMTM5NCw3IEBAIHZvaWQgdGVzdERpdkFyZ0Zsb2F0KGZsb2F0IGEpCiAg
ICAgVmFsdWUqIGZsb2F0VmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdp
c2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSwgZmxvYXRW
YWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7
CiAKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywg
Yml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLyBhKSkp
OwpAQCAtMTQwNSw3ICsxNDEyLDcgQEAgdm9pZCB0ZXN0RGl2QXJnc0Zsb2F0KGZsb2F0IGEsIGZs
b2F0IGIpCiAgICAgVmFsdWUqIGZsb2F0VmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MmludDMyKTsKICAgICBWYWx1ZSog
cmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEaXYsIE9yaWdpbigpLCBmbG9h
dFZhbHVlMSwgZmxvYXRWYWx1ZTIpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxp
bnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxpbnQz
Ml90PihiKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhIC8gYikpKTsKIH0KQEAgLTE0MjAsNyAr
MTQyNyw3IEBAIHZvaWQgdGVzdERpdkFyZ0ltbUZsb2F0KGZsb2F0IGEsIGZsb2F0IGIKICAgICBW
YWx1ZSogY29uc3RWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBiKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBEaXYsIE9yaWdpbigpLCBmbG9hdFZhbHVlLCBjb25zdFZhbHVlKTsKICAgICBWYWx1
ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBP
cmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlz
SWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMy
X3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLyBiKSkpOwogfQpAQCAtMTQzNSw3ICsx
NDQyLDcgQEAgdm9pZCB0ZXN0RGl2SW1tQXJnRmxvYXQoZmxvYXQgYSwgZmxvYXQgYgogICAgIFZh
bHVlKiBjb25zdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIERpdiwgT3JpZ2luKCksIGNvbnN0VmFsdWUsIGZsb2F0VmFsdWUpOwogICAgIFZhbHVl
KiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9y
aWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJ
ZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJf
dD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAvIGIpKSk7CiB9CkBAIC0xNDQ4LDcgKzE0
NTUsNyBAQCB2b2lkIHRlc3REaXZJbW1zRmxvYXQoZmxvYXQgYSwgZmxvYXQgYikKICAgICBWYWx1
ZSogY29uc3RWYWx1ZTIgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgYik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgRGl2LCBPcmlnaW4oKSwgY29uc3RWYWx1ZTEsIGNvbnN0VmFsdWUyKTsKICAgICBWYWx1
ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBP
cmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlz
SWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYyksIGJpdHdpc2VfY2FzdDxpbnQz
Ml90PihhIC8gYikpKTsKIH0KQEAgLTE0NTgsNyArMTQ2NSw3IEBAIHZvaWQgdGVzdE1vZEFyZ0Rv
dWJsZShkb3VibGUgYSkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgdmFsdWUsIHZhbHVlKSk7
CiAKQEAgLTE0NzEsNyArMTQ3OCw3IEBAIHZvaWQgdGVzdE1vZEFyZ3NEb3VibGUoZG91YmxlIGEs
IGRvdWJsZSAKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZh
bHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJn
dW1lbnRGUFIxKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgdmFs
dWVBLCB2YWx1ZUIpKTsKIApAQCAtMTQ4NCw3ICsxNDkxLDcgQEAgdm9pZCB0ZXN0TW9kQXJnSW1t
RG91YmxlKGRvdWJsZSBhLCBkb3VibAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSog
dmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBiKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgdmFsdWVBLCB2
YWx1ZUIpKTsKIApAQCAtMTQ5Nyw3ICsxNTA0LDcgQEAgdm9pZCB0ZXN0TW9kSW1tQXJnRG91Ymxl
KGRvdWJsZSBhLCBkb3VibAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIp
KTsKIApAQCAtMTUxMCw3ICsxNTE3LDcgQEAgdm9pZCB0ZXN0TW9kSW1tc0RvdWJsZShkb3VibGUg
YSwgZG91YmxlIAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAg
VmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERv
dWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IE1vZCwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTE1MjYsNyArMTUzMyw3IEBA
IHZvaWQgdGVzdE1vZEFyZ0Zsb2F0KGZsb2F0IGEpCiAgICAgVmFsdWUqIGZsb2F0VmFsdWUgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1l
bnQzMik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
TW9kLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSwgZmxvYXRWYWx1ZSk7CiAgICAgVmFsdWUqIHJlc3Vs
dDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCks
IHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKIAogICAgIENIRUNLKGlzSWRlbnRp
Y2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEp
KSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0PGZsb2F0PihmbW9kKGEsIGEpKSkp
KTsKQEAgLTE1NDQsNyArMTU1MSw3IEBAIHZvaWQgdGVzdE1vZEFyZ3NGbG9hdChmbG9hdCBhLCBm
bG9hdCBiKQogICAgIFZhbHVlKiBmbG9hdFZhbHVlMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDJpbnQzMik7CiAgICAgVmFsdWUq
IHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgZmxv
YXRWYWx1ZTEsIGZsb2F0VmFsdWUyKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1
bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48
aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50
MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KGZtb2Qo
YSwgYikpKSkpOwogfQpAQCAtMTU1OSw3ICsxNTY2LDcgQEAgdm9pZCB0ZXN0TW9kQXJnSW1tRmxv
YXQoZmxvYXQgYSwgZmxvYXQgYgogICAgIFZhbHVlKiBjb25zdFZhbHVlID0gcm9vdC0+YXBwZW5k
TmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiByZXN1
bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIGZsb2F0VmFs
dWUsIGNvbnN0VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90
Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4o
c3RhdGljX2Nhc3Q8ZmxvYXQ+KGZtb2QoYSwgYikpKSkpOwogfQpAQCAtMTU3NCw3ICsxNTgxLDcg
QEAgdm9pZCB0ZXN0TW9kSW1tQXJnRmxvYXQoZmxvYXQgYSwgZmxvYXQgYgogICAgIFZhbHVlKiBj
b25zdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIGEpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IE1vZCwgT3JpZ2luKCksIGNvbnN0VmFsdWUsIGZsb2F0VmFsdWUpOwogICAgIFZhbHVlKiByZXN1
bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigp
LCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGlj
YWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikp
LCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KGZtb2QoYSwgYikpKSkp
OwogfQpAQCAtMTU4Nyw3ICsxNTk0LDcgQEAgdm9pZCB0ZXN0TW9kSW1tc0Zsb2F0KGZsb2F0IGEs
IGZsb2F0IGIpCiAgICAgVmFsdWUqIGNvbnN0VmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0
RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIGNvbnN0VmFsdWUxLCBjb25z
dFZhbHVlMik7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQz
Mik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2Mp
LCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KGZtb2QoYSwgYikpKSkp
OwogfQpAQCAtMTYwMyw3ICsxNjEwLDcgQEAgdm9pZCB0ZXN0RGl2QXJnRmxvYXRXaXRoVXNlbGVz
c0RvdWJsZUNvbgogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIERpdiwgT3JpZ2luKCksIGFzRG91YmxlLCBhc0RvdWJsZSk7CiAgICAgVmFsdWUqIGZsb2F0
UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmln
aW4oKSwgcmVzdWx0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMy
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQz
Ml90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJf
dD4oYSAvIGEpKSk7CiB9CkBAIC0xNjIzLDcgKzE2MzAsNyBAQCB2b2lkIHRlc3REaXZBcmdzRmxv
YXRXaXRoVXNlbGVzc0RvdWJsZUNvCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwgYXNEb3VibGUxLCBhc0RvdWJsZTIpOwogICAg
IFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91Ymxl
VG9GbG9hdCwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBp
bGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNl
X2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAvIGIpKSk7CiB9CkBA
IC0xNjQ1LDcgKzE2NTIsNyBAQCB2b2lkIHRlc3REaXZBcmdzRmxvYXRXaXRoRWZmZWN0ZnVsRG91
YmxlCiAgICAgVmFsdWUqIGRvdWJsZURpdnJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMik7CiAgICAgcm9v
dC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwg
ZG91YmxlRGl2cmVzcyk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQz
Mik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdDMyKTsKIAogICAgIGRvdWJsZSBlZmZlY3QgPSAwOwogICAgIENIRUNLKGlzSWRl
bnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+
KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYiksICZlZmZlY3QpLCBiaXR3aXNlX2Nhc3Q8aW50
MzJfdD4oYSAvIGIpKSk7CkBAIC0xNjU3LDcgKzE2NjQsNyBAQCB2b2lkIHRlc3RTdWJBcmcoaW50
IGEpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIHZhbHVlLCB2YWx1ZSkpOwogCkBAIC0xNjY4
LDcgKzE2NzUsNyBAQCB2b2lkIHRlc3RTdWJBcmdzKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9j
ZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFN1YiwgT3JpZ2luKCksCkBAIC0x
NjgyLDcgKzE2ODksNyBAQCB2b2lkIHRlc3RTdWJBcmdJbW0oaW50NjRfdCBhLCBpbnQ2NF90IGIp
CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTdWIsIE9y
aWdpbigpLApAQCAtMTcwMyw3ICsxNzEwLDcgQEAgdm9pZCB0ZXN0TmVnVmFsdWVTdWJPbmUoaW50
IGEpCiAgICAgVmFsdWUqIG5lZ0FyZ3VtZW50TWludXNPbmUgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIFN1YiwgT3JpZ2luKCksCiAgICAgICAgIG5lZ0FyZ3VtZW50LAogICAgICAgICBy
b290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIG5lZ0Fy
Z3VtZW50TWludXNPbmUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCBuZWdBcmd1bWVudE1pbnVzT25lKTsKICAgICBDSEVDSyhjb21waWxl
QW5kUnVuPGludD4ocHJvYywgYSkgPT0gLWEgLSAxKTsKIH0KIApAQCAtMTcxMSw3ICsxNzE4LDcg
QEAgdm9pZCB0ZXN0U3ViSW1tQXJnKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFN1YiwgT3JpZ2luKCksCkBAIC0xNzMwLDcgKzE3
MzcsNyBAQCB2b2lkIHRlc3RTdWJBcmdNZW0oaW50NjRfdCBhLCBpbnQ2NF90IGIpCiAgICAgVmFs
dWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApLAogICAgICAgICBsb2FkKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1
bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCBhLCAmYikgPT0g
YSAtIGIpOwogfQpAQCAtMTc0NSw3ICsxNzUyLDcgQEAgdm9pZCB0ZXN0U3ViTWVtQXJnKGludDY0
X3QgYSwgaW50NjRfdCBiKQogICAgICAgICBsb2FkLAogICAgICAgICByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSkp
OwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigp
LCByZXN1bHQsIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAwKSk7CiAKICAgICBpbnQ2NF90IGlucHV0T3V0cHV0ID0gYTsKICAgICBDSEVDSyghY29t
cGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAmaW5wdXRPdXRwdXQsIGIpKTsKQEAgLTE3NjIsNyAr
MTc2OSw3IEBAIHZvaWQgdGVzdFN1YkltbU1lbShpbnQ2NF90IGEsIGludDY0X3QgYikKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpLAogICAg
ICAgICBsb2FkKTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3Jl
LCBPcmlnaW4oKSwgcmVzdWx0LCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgaW50NjRfdCBpbnB1dE91dHB1dCA9IGI7CiAgICAg
Q0hFQ0soIWNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAmaW5wdXRPdXRwdXQpKTsKQEAgLTE3Nzks
NyArMTc4Niw3IEBAIHZvaWQgdGVzdFN1Yk1lbUltbShpbnQ2NF90IGEsIGludDY0X3QgYikKICAg
ICAgICAgbG9hZCwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIGIpKTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0
b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgaW50NjRfdCBpbnB1dE91dHB1dCA9IGE7CiAg
ICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAmaW5wdXRPdXRwdXQpKTsKQEAgLTE3
OTEsNyArMTc5OCw3IEBAIHZvaWQgdGVzdFN1YkFyZ3MzMihpbnQgYSwgaW50IGIpCiB7CiAgICAg
UHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTdWIsIE9yaWdpbigpLApA
QCAtMTgwOSw3ICsxODE2LDcgQEAgdm9pZCB0ZXN0U3ViQXJnSW1tMzIoaW50IGEsIGludCBiKQog
ewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU3ViLCBPcmln
aW4oKSwKQEAgLTE4MjUsNyArMTgzMiw3IEBAIHZvaWQgdGVzdFN1YkltbUFyZzMyKGludCBhLCBp
bnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFN1
YiwgT3JpZ2luKCksCkBAIC0xODQ3LDcgKzE4NTQsNyBAQCB2b2lkIHRlc3RTdWJNZW1BcmczMihp
bnQzMl90IGEsIGludDMyX3QgCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7CiAgICAgVmFsdWUq
IHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgbG9h
ZCwgYXJndW1lbnQpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3Rv
cmUsIE9yaWdpbigpLCByZXN1bHQsIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMy
VmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBpbnQzMl90IGlucHV0T3V0cHV0ID0gYTsKICAg
ICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCAmaW5wdXRPdXRwdXQsIGIpKTsK
QEAgLTE4NjMsNyArMTg3MCw3IEBAIHZvaWQgdGVzdFN1YkFyZ01lbTMyKGludDMyX3QgYSwgaW50
MzJfdCAKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSog
cmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBhcmd1
bWVudCwgbG9hZCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRS
dW48aW50MzJfdD4ocHJvYywgYSwgJmIpID09IGEgLSBiKTsKIH0KQEAgLTE4NzgsNyArMTg4NSw3
IEBAIHZvaWQgdGVzdFN1YkltbU1lbTMyKGludDMyX3QgYSwgaW50MzJfdCAKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpLAogICAgICAgICBs
b2FkKTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmln
aW4oKSwgcmVzdWx0LCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgMCkpOwogCiAgICAgaW50MzJfdCBpbnB1dE91dHB1dCA9IGI7CiAgICAgQ0hFQ0so
IWNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAmaW5wdXRPdXRwdXQpKTsKQEAgLTE4OTUsNyArMTkw
Miw3IEBAIHZvaWQgdGVzdFN1Yk1lbUltbTMyKGludDMyX3QgYSwgaW50MzJfdCAKICAgICAgICAg
bG9hZCwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIGIpKTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBP
cmlnaW4oKSwgcmVzdWx0LCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgMCkpOwogCiAgICAgaW50MzJfdCBpbnB1dE91dHB1dCA9IGE7CiAgICAgQ0hF
Q0soIWNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAmaW5wdXRPdXRwdXQpKTsKQEAgLTE5MTQsNyAr
MTkyMSw3IEBAIHZvaWQgdGVzdE5lZ1ZhbHVlU3ViT25lMzIoaW50IGEpCiAgICAgVmFsdWUqIG5l
Z0FyZ3VtZW50TWludXNPbmUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3Jp
Z2luKCksCiAgICAgICAgIG5lZ0FyZ3VtZW50LAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29u
c3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIG5lZ0FyZ3VtZW50TWludXNPbmUpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBu
ZWdBcmd1bWVudE1pbnVzT25lKTsKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywg
YSkgPT0gLWEgLSAxKTsKIH0KIApAQCAtMTkyMyw3ICsxOTMwLDcgQEAgdm9pZCB0ZXN0U3ViQXJn
RG91YmxlKGRvdWJsZSBhKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjAp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCB2YWx1ZSwgdmFsdWUp
KTsKIApAQCAtMTkzNiw3ICsxOTQzLDcgQEAgdm9pZCB0ZXN0U3ViQXJnc0RvdWJsZShkb3VibGUg
YSwgZG91YmxlIAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAg
VmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjph
cmd1bWVudEZQUjEpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCB2
YWx1ZUEsIHZhbHVlQikpOwogCkBAIC0xOTQ5LDcgKzE5NTYsNyBAQCB2b2lkIHRlc3RTdWJBcmdJ
bW1Eb3VibGUoZG91YmxlIGEsIGRvdWJsCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVl
KiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIGIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCB2YWx1ZUEs
IHZhbHVlQikpOwogCkBAIC0xOTYyLDcgKzE5NjksNyBAQCB2b2lkIHRlc3RTdWJJbW1BcmdEb3Vi
bGUoZG91YmxlIGEsIGRvdWJsCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjAp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVl
QikpOwogCkBAIC0xOTc1LDcgKzE5ODIsNyBAQCB2b2lkIHRlc3RTdWJJbW1zRG91YmxlKGRvdWJs
ZSBhLCBkb3VibGUgCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAg
ICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0
RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgU3ViLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKICAgICAKQEAgLTE5OTEsNyArMTk5
OCw3IEBAIHZvaWQgdGVzdFN1YkFyZ0Zsb2F0KGZsb2F0IGEpCiAgICAgVmFsdWUqIGZsb2F0VmFs
dWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwg
YXJndW1lbnQzMik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgU3ViLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSwgZmxvYXRWYWx1ZSk7CiAgICAgVmFsdWUq
IHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3Jp
Z2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKIAogICAgIENIRUNLKGlz
SWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMy
X3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLSBhKSkpOwpAQCAtMjAwOSw3ICsyMDE2
LDcgQEAgdm9pZCB0ZXN0U3ViQXJnc0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIpCiAgICAgVmFsdWUq
IGZsb2F0VmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwg
T3JpZ2luKCksIGFyZ3VtZW50MmludDMyKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBmbG9hdFZhbHVlMSwgZmxvYXRWYWx1
ZTIpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
Qml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwog
CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSksIGJpdHdpc2Vf
Y2FzdDxpbnQzMl90PihhIC0gYikpKTsKIH0KQEAgLTIwMjQsNyArMjAzMSw3IEBAIHZvaWQgdGVz
dFN1YkFyZ0ltbUZsb2F0KGZsb2F0IGEsIGZsb2F0IGIKICAgICBWYWx1ZSogY29uc3RWYWx1ZSA9
IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKICAg
ICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdp
bigpLCBmbG9hdFZhbHVlLCBjb25zdFZhbHVlKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVB
bmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9j
YXN0PGludDMyX3Q+KGEgLSBiKSkpOwogfQpAQCAtMjAzOSw3ICsyMDQ2LDcgQEAgdm9pZCB0ZXN0
U3ViSW1tQXJnRmxvYXQoZmxvYXQgYSwgZmxvYXQgYgogICAgIFZhbHVlKiBjb25zdFZhbHVlID0g
cm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAg
IFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2lu
KCksIGNvbnN0VmFsdWUsIGZsb2F0VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFu
ZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nh
c3Q8aW50MzJfdD4oYSAtIGIpKSk7CiB9CkBAIC0yMDUyLDcgKzIwNTksNyBAQCB2b2lkIHRlc3RT
dWJJbW1zRmxvYXQoZmxvYXQgYSwgZmxvYXQgYikKICAgICBWYWx1ZSogY29uc3RWYWx1ZTIgPSBy
b290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7CiAgICAg
VmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4o
KSwgY29uc3RWYWx1ZTEsIGNvbnN0VmFsdWUyKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVB
bmRSdW48aW50MzJfdD4ocHJvYyksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhIC0gYikpKTsKIH0K
QEAgLTIwNjgsNyArMjA3NSw3IEBAIHZvaWQgdGVzdFN1YkFyZ0Zsb2F0V2l0aFVzZWxlc3NEb3Vi
bGVDb24KICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBT
dWIsIE9yaWdpbigpLCBhc0RvdWJsZSwgYXNEb3VibGUpOwogICAgIFZhbHVlKiBmbG9hdFJlc3Vs
dCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCks
IHJlc3VsdCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
c3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4o
cHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEg
LSBhKSkpOwogfQpAQCAtMjA4OCw3ICsyMDk1LDcgQEAgdm9pZCB0ZXN0U3ViQXJnc0Zsb2F0V2l0
aFVzZWxlc3NEb3VibGVDbwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIGFzRG91YmxlMSwgYXNEb3VibGUyKTsKICAgICBWYWx1
ZSogZmxvYXRSZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxv
YXQsIE9yaWdpbigpLCByZXN1bHQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5k
UnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgYml0d2lzZV9jYXN0
PGludDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLSBiKSkpOwogfQpAQCAtMjEx
MCw3ICsyMTE3LDcgQEAgdm9pZCB0ZXN0U3ViQXJnc0Zsb2F0V2l0aEVmZmVjdGZ1bERvdWJsZQog
ICAgIFZhbHVlKiBkb3VibGVTdWJyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpOwogICAgIHJvb3QtPmFw
cGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGRvdWJs
ZVN1YnJlc3MpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQzMik7CiAKICAgICBkb3VibGUgZWZmZWN0ID0gMDsKICAgICBDSEVDSyhpc0lkZW50aWNh
bChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwg
Yml0d2lzZV9jYXN0PGludDMyX3Q+KGIpLCAmZWZmZWN0KSwgYml0d2lzZV9jYXN0PGludDMyX3Q+
KGEgLSBiKSkpOwpAQCAtMjEyMSw3ICsyMTI4LDcgQEAgdm9pZCB0ZXN0Qml0QW5kQXJncyhpbnQ2
NF90IGEsIGludDY0X3QgYgogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTIxMzYsNyArMjE0Myw3IEBAIHZvaWQgdGVz
dEJpdEFuZFNhbWVBcmcoaW50NjRfdCBhKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJp
dEFuZCwgT3JpZ2luKCksCkBAIC0yMTUwLDcgKzIxNTcsNyBAQCB2b2lkIHRlc3RCaXRBbmRJbW1z
KGludDY0X3QgYSwgaW50NjRfdCBiCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMjE2NCw3ICsyMTcxLDcgQEAgdm9p
ZCB0ZXN0Qml0QW5kQXJnSW1tKGludDY0X3QgYSwgaW50NjRfdAogewogICAgIFByb2NlZHVyZSBw
cm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTIxNzgs
NyArMjE4NSw3IEBAIHZvaWQgdGVzdEJpdEFuZEltbUFyZyhpbnQ2NF90IGEsIGludDY0X3QKIHsK
ICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3Jp
Z2luKCksCkBAIC0yMTk2LDcgKzIyMDMsNyBAQCB2b2lkIHRlc3RCaXRBbmRCaXRBbmRBcmdJbW1J
bW0oaW50NjRfdCBhCiAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIGIpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMjIxNCw3ICsyMjIxLDcgQEAgdm9pZCB0ZXN0Qml0QW5k
SW1tQml0QW5kQXJnSW1tKGludDY0X3QgYQogICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25z
dDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBjKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTIyMjgsNyArMjIzNSw3IEBAIHZv
aWQgdGVzdEJpdEFuZEFyZ3MzMihpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMjI0OCw3ICsy
MjU1LDcgQEAgdm9pZCB0ZXN0Qml0QW5kU2FtZUFyZzMyKGludCBhKQogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIwKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBP
cmlnaW4oKSwKQEAgLTIyNjIsNyArMjI2OSw3IEBAIHZvaWQgdGVzdEJpdEFuZEltbXMzMihpbnQg
YSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMjI3Niw3ICsyMjgzLDcgQEAgdm9pZCB0ZXN0Qml0QW5k
QXJnSW1tMzIoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTIyOTIsNyArMjI5OSw3IEBAIHZv
aWQgdGVzdEJpdEFuZEltbUFyZzMyKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0yMzE0LDcg
KzIzMjEsNyBAQCB2b2lkIHRlc3RCaXRBbmRCaXRBbmRBcmdJbW1JbW0zMihpbnQgYSwgCiAgICAg
ICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BS
MCkpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgYikpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwg
T3JpZ2luKCksCkBAIC0yMzM0LDcgKzIzNDEsNyBAQCB2b2lkIHRlc3RCaXRBbmRJbW1CaXRBbmRB
cmdJbW0zMihpbnQgYSwgCiAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAg
ICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYykpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0yMzYxLDcgKzIzNjgsNyBAQCB2b2lk
IHRlc3RCaXRBbmRXaXRoTWFza1JldHVybnNCb29sZWFucyhpCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MiksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCAtNSkpOwogCi0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2VsZWN0KTsK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
c2VsZWN0KTsKIAogICAgIGludDY0X3QgZXhwZWN0ZWQgPSAoYSA9PSBiKSA/IC01IDogNDI7CiAg
ICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCBhLCBiKSA9PSBleHBlY3RlZCk7
CkBAIC0yMzc4LDcgKzIzODUsNyBAQCB2b2lkIHRlc3RCaXRBbmRBcmdEb3VibGUoZG91YmxlIGEp
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJn
dW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQml0QW5kLCBPcmlnaW4oKSwgYXJndW1lbnQsIGFyZ3VtZW50KTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1
bjxkb3VibGU+KHByb2MsIGEpLCBiaXRBbmREb3VibGUoYSwgYSkpKTsKIH0KQEAgLTIzOTAsNyAr
MjM5Nyw3IEBAIHZvaWQgdGVzdEJpdEFuZEFyZ3NEb3VibGUoZG91YmxlIGEsIGRvdWIKICAgICBW
YWx1ZSogYXJndW1lbnRBID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiBhcmd1bWVudEIg
PSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUklu
Zm86OmFyZ3VtZW50RlBSMSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQml0QW5kLCBPcmlnaW4oKSwgYXJndW1lbnRBLCBhcmd1bWVudEIpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
c3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRv
dWJsZT4ocHJvYywgYSwgYiksIGJpdEFuZERvdWJsZShhLCBiKSkpOwogfQpAQCAtMjQwMiw3ICsy
NDA5LDcgQEAgdm9pZCB0ZXN0Qml0QW5kQXJnSW1tRG91YmxlKGRvdWJsZSBhLCBkbwogICAgIFZh
bHVlKiBhcmd1bWVudEEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50QiA9
IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7CiAg
ICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0QW5kLCBP
cmlnaW4oKSwgYXJndW1lbnRBLCBhcmd1bWVudEIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAg
ICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgYSwgYiksIGJp
dEFuZERvdWJsZShhLCBiKSkpOwogfQpAQCAtMjQxNCw3ICsyNDIxLDcgQEAgdm9pZCB0ZXN0Qml0
QW5kSW1tc0RvdWJsZShkb3VibGUgYSwgZG91YgogICAgIFZhbHVlKiBhcmd1bWVudEEgPSByb290
LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZh
bHVlKiBhcmd1bWVudEIgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEJpdEFuZCwgT3JpZ2luKCksIGFyZ3VtZW50QSwgYXJndW1lbnRCKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+
KHByb2MpLCBiaXRBbmREb3VibGUoYSwgYikpKTsKIH0KQEAgLTI0MzIsNyArMjQzOSw3IEBAIHZv
aWQgdGVzdEJpdEFuZEFyZ0Zsb2F0KGZsb2F0IGEpCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjAp
KSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0
QW5kLCBPcmlnaW4oKSwgYXJndW1lbnQsIGFyZ3VtZW50KTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwog
CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYywgYml0d2lz
ZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0QW5kRmxvYXQoYSwgYSkpKTsKIH0KQEAgLTI0NDgsNyAr
MjQ1NSw3IEBAIHZvaWQgdGVzdEJpdEFuZEFyZ3NGbG9hdChmbG9hdCBhLCBmbG9hdCAKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAg
ICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMSkpKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBCaXRBbmQsIE9yaWdpbigpLCBhcmd1bWVudEEsIGFyZ3VtZW50Qik7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRS
dW48ZmxvYXQ+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KGIpKSwgYml0QW5kRmxvYXQoYSwgYikpKTsKIH0KQEAgLTI0NjIsNyArMjQ2OSw3IEBA
IHZvaWQgdGVzdEJpdEFuZEFyZ0ltbUZsb2F0KGZsb2F0IGEsIGZsb2EKICAgICAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKSkpOwogICAgIFZhbHVlKiBhcmd1bWVudEIgPSByb290LT5hcHBlbmROZXc8
Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7CiAgICAgVmFsdWUqIHJlc3VsdCA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0QW5kLCBPcmlnaW4oKSwgYXJndW1lbnRB
LCBhcmd1bWVudEIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNh
bChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJp
dHdpc2VfY2FzdDxpbnQzMl90PihiKSksIGJpdEFuZEZsb2F0KGEsIGIpKSk7CiB9CkBAIC0yNDc0
LDcgKzI0ODEsNyBAQCB2b2lkIHRlc3RCaXRBbmRJbW1zRmxvYXQoZmxvYXQgYSwgZmxvYXQgCiAg
ICAgVmFsdWUqIGFyZ3VtZW50QSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogYXJndW1lbnRCID0gcm9vdC0+YXBwZW5kTmV3
PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiByZXN1bHQg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdEFuZCwgT3JpZ2luKCksIGFyZ3VtZW50
QSwgYXJndW1lbnRCKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soaXNJZGVudGlj
YWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYyksIGJpdEFuZEZsb2F0KGEsIGIpKSk7CiB9CkBA
IC0yNDkzLDcgKzI1MDAsNyBAQCB2b2lkIHRlc3RCaXRBbmRBcmdzRmxvYXRXaXRoVXNlbGVzc0Rv
dWJsCiAgICAgVmFsdWUqIGFyZ3VtZW50QmFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgYXJndW1lbnRCKTsKICAgICBWYWx1ZSog
ZG91YmxlUmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXRBbmQsIE9yaWdp
bigpLCBhcmd1bWVudEFhc0RvdWJsZSwgYXJndW1lbnRCYXNEb3VibGUpOwogICAgIFZhbHVlKiBm
bG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwg
T3JpZ2luKCksIGRvdWJsZVJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CiAK
ICAgICBkb3VibGUgZG91YmxlQSA9IGE7CiAgICAgZG91YmxlIGRvdWJsZUIgPSBiOwpAQCAtMjUw
NSw3ICsyNTEyLDcgQEAgdm9pZCB0ZXN0Qml0T3JBcmdzKGludDY0X3QgYSwgaW50NjRfdCBiKQog
ewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0T3IsIE9y
aWdpbigpLApAQCAtMjUyMCw3ICsyNTI3LDcgQEAgdm9pZCB0ZXN0Qml0T3JTYW1lQXJnKGludDY0
X3QgYSkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCksCkBAIC0y
NTM0LDcgKzI1NDEsNyBAQCB2b2lkIHRlc3RCaXRPckltbXMoaW50NjRfdCBhLCBpbnQ2NF90IGIp
CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRPciwg
T3JpZ2luKCksCkBAIC0yNTQ4LDcgKzI1NTUsNyBAQCB2b2lkIHRlc3RCaXRPckFyZ0ltbShpbnQ2
NF90IGEsIGludDY0X3QgCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBCaXRPciwgT3JpZ2luKCksCkBAIC0yNTYyLDcgKzI1NjksNyBAQCB2b2lkIHRlc3RC
aXRPckltbUFyZyhpbnQ2NF90IGEsIGludDY0X3QgCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCksCkBAIC0yNTgwLDcgKzI1ODcs
NyBAQCB2b2lkIHRlc3RCaXRPckJpdE9yQXJnSW1tSW1tKGludDY0X3QgYSwgCiAgICAgICAgIHBy
b2MsIEJpdE9yLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYikpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdE9yLCBPcmlnaW4oKSwKQEAgLTI1
OTgsNyArMjYwNSw3IEBAIHZvaWQgdGVzdEJpdE9ySW1tQml0T3JBcmdJbW0oaW50NjRfdCBhLCAK
ICAgICAgICAgcHJvYywgQml0T3IsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBj
KSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0T3IsIE9yaWdp
bigpLApAQCAtMjYxMiw3ICsyNjE5LDcgQEAgdm9pZCB0ZXN0Qml0T3JBcmdzMzIoaW50IGEsIGlu
dCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0
T3IsIE9yaWdpbigpLApAQCAtMjYzMyw3ICsyNjQwLDcgQEAgdm9pZCB0ZXN0Qml0T3JTYW1lQXJn
MzIoaW50IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRPciwgT3Jp
Z2luKCksCkBAIC0yNjQ3LDcgKzI2NTQsNyBAQCB2b2lkIHRlc3RCaXRPckltbXMzMihpbnQgYSwg
aW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBC
aXRPciwgT3JpZ2luKCksCkBAIC0yNjYxLDcgKzI2NjgsNyBAQCB2b2lkIHRlc3RCaXRPckFyZ0lt
bTMyKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIEJpdE9yLCBPcmlnaW4oKSwKQEAgLTI2NzcsNyArMjY4NCw3IEBAIHZvaWQgdGVz
dEJpdE9ySW1tQXJnMzIoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgQml0T3IsIE9yaWdpbigpLApAQCAtMjY5OSw3ICsyNzA2LDcg
QEAgdm9pZCB0ZXN0Qml0T3JCaXRPckFyZ0ltbUltbTMyKGludCBhLCBpbgogICAgICAgICAgICAg
cHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCks
CkBAIC0yNzE5LDcgKzI3MjYsNyBAQCB2b2lkIHRlc3RCaXRPckltbUJpdE9yQXJnSW1tMzIoaW50
IGEsIGluCiAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgYykpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIEJpdE9yLCBPcmlnaW4oKSwKQEAgLTI3MzMsNyArMjc0MCw3IEBAIHZvaWQgdGVzdEJpdFhv
ckFyZ3MoaW50NjRfdCBhLCBpbnQ2NF90IGIKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCkBAIC0yNzQ4LDcgKzI3NTUsNyBA
QCB2b2lkIHRlc3RCaXRYb3JTYW1lQXJnKGludDY0X3QgYSkKICAgICBQcm9jZWR1cmUgcHJvYzsK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1
bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
R1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjc2Miw3ICsyNzY5LDcgQEAgdm9pZCB0ZXN0
Qml0WG9ySW1tcyhpbnQ2NF90IGEsIGludDY0X3QgYgogewogICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTI3NzYsNyArMjc4
Myw3IEBAIHZvaWQgdGVzdEJpdFhvckFyZ0ltbShpbnQ2NF90IGEsIGludDY0X3QKIHsKICAgICBQ
cm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCks
CkBAIC0yNzkwLDcgKzI3OTcsNyBAQCB2b2lkIHRlc3RCaXRYb3JJbW1BcmcoaW50NjRfdCBhLCBp
bnQ2NF90CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBC
aXRYb3IsIE9yaWdpbigpLApAQCAtMjgwOCw3ICsyODE1LDcgQEAgdm9pZCB0ZXN0Qml0WG9yQml0
WG9yQXJnSW1tSW1tKGludDY0X3QgYQogICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTI4MjYsNyArMjgzMyw3IEBAIHZvaWQg
dGVzdEJpdFhvckltbUJpdFhvckFyZ0ltbShpbnQ2NF90IGEKICAgICAgICAgcHJvYywgQml0WG9y
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApLAogICAgICAgICByb290LT5hcHBl
bmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYykpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCkBAIC0yODQwLDcgKzI4
NDcsNyBAQCB2b2lkIHRlc3RCaXRYb3JBcmdzMzIoaW50IGEsIGludCBiKQogewogICAgIFByb2Nl
ZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAg
LTI4NjEsNyArMjg2OCw3IEBAIHZvaWQgdGVzdEJpdFhvclNhbWVBcmczMihpbnQgYSkKICAgICBW
YWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICBwcm9jLCBU
cnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCkBAIC0yODc1
LDcgKzI4ODIsNyBAQCB2b2lkIHRlc3RCaXRYb3JJbW1zMzIoaW50IGEsIGludCBiKQogewogICAg
IFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4o
KSwKQEAgLTI4ODksNyArMjg5Niw3IEBAIHZvaWQgdGVzdEJpdFhvckFyZ0ltbTMyKGludCBhLCBp
bnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJp
dFhvciwgT3JpZ2luKCksCkBAIC0yOTA1LDcgKzI5MTIsNyBAQCB2b2lkIHRlc3RCaXRYb3JJbW1B
cmczMihpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjkyNyw3ICsyOTM0LDcgQEAgdm9pZCB0
ZXN0Qml0WG9yQml0WG9yQXJnSW1tSW1tMzIoaW50IGEsIAogICAgICAgICAgICAgcHJvYywgVHJ1
bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjk0
Nyw3ICsyOTU0LDcgQEAgdm9pZCB0ZXN0Qml0WG9ySW1tQml0WG9yQXJnSW1tMzIoaW50IGEsIAog
ICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjApKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIGMpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRY
b3IsIE9yaWdpbigpLApAQCAtMjk2MSw3ICsyOTY4LDcgQEAgdm9pZCB0ZXN0Qml0Tm90QXJnKGlu
dDY0X3QgYSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IEJpdFhvciwgT3JpZ2luKCksCkBAIC0yOTc1LDcgKzI5ODIsNyBAQCB2b2lkIHRlc3RCaXROb3RJ
bW0oaW50NjRfdCBhKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTI5OTUsNyArMzAwMiw3IEBAIHZvaWQgdGVzdEJp
dE5vdE1lbShpbnQ2NF90IGEpCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+
KHByb2MsIE9yaWdpbigpLCAtMSksCiAgICAgICAgIGxvYWQpOwogICAgIHJvb3QtPmFwcGVuZE5l
dzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCBub3RMb2FkLCBhZGRyZXNzKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgaW50
NjRfdCBpbnB1dCA9IGE7CiAgICAgY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCAmaW5wdXQp
OwpAQCAtMzAwOCw3ICszMDE1LDcgQEAgdm9pZCB0ZXN0Qml0Tm90QXJnMzIoaW50MzJfdCBhKQog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3Vt
ZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BS
SW5mbzo6YXJndW1lbnRHUFIwKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdFhvciwg
T3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgLTEpLApAQCAtMzAyMCw3ICszMDI3LDcgQEAgdm9pZCB0ZXN0Qml0Tm90SW1t
MzIoaW50MzJfdCBhKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTMwNDAsNyArMzA0Nyw3IEBAIHZvaWQgdGVzdEJp
dE5vdE1lbTMyKGludDMyX3QgYSkKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIC0xKSwKICAgICAgICAgbG9hZCk7CiAgICAgcm9vdC0+YXBwZW5k
TmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIG5vdExvYWQsIGFkZHJlc3Mp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJv
b3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBp
bnQzMl90IGlucHV0ID0gYTsKICAgICBjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsICZpbnB1
dCk7CkBAIC0zMDYzLDE2ICszMDcwLDE2IEBAIHZvaWQgdGVzdEJpdE5vdE9uQm9vbGVhbkFuZEJy
YW5jaDMyKGludDYKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIC0xKSwKICAgICAgICAgYXJnc0FyZUVxdWFsKTsKIAotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgYXJnc0FyZU5vdEVxdWFsLAog
ICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNh
c2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVu
Q2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIDQyKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAtNDIpKTsKIApAQCAtMzA4NCw3ICszMDkxLDcgQEAgdm9pZCB0ZXN0U2hs
QXJncyhpbnQ2NF90IGEsIGludDY0X3QgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIFNobCwgT3JpZ2luKCksCkBAIC0zMTAwLDcgKzMxMDcsNyBAQCB2
b2lkIHRlc3RTaGxJbW1zKGludDY0X3QgYSwgaW50NjRfdCBiKQogewogICAgIFByb2NlZHVyZSBw
cm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2hsLCBPcmlnaW4oKSwKQEAgLTMxMTQsNyAr
MzEyMSw3IEBAIHZvaWQgdGVzdFNobEFyZ0ltbShpbnQ2NF90IGEsIGludDY0X3QgYikKIHsKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNobCwgT3JpZ2luKCks
CkBAIC0zMTMxLDcgKzMxMzgsNyBAQCB2b2lkIHRlc3RTaGxBcmczMihpbnQzMl90IGEpCiAgICAg
VmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgcHJvYywgVHJ1
bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBTaGwsIE9yaWdpbigpLCB2YWx1ZSwgdmFsdWUpKTsKIApAQCAtMzE0Miw3ICsz
MTQ5LDcgQEAgdm9pZCB0ZXN0U2hsQXJnczMyKGludDMyX3QgYSwgaW50MzJfdCBiKQogewogICAg
IFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2hsLCBPcmlnaW4oKSwK
QEAgLTMxNjAsNyArMzE2Nyw3IEBAIHZvaWQgdGVzdFNobEltbXMzMihpbnQzMl90IGEsIGludDMy
X3QgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNo
bCwgT3JpZ2luKCksCkBAIC0zMTc0LDcgKzMxODEsNyBAQCB2b2lkIHRlc3RTaGxBcmdJbW0zMihp
bnQzMl90IGEsIGludDMyX3QgCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBTaGwsIE9yaWdpbigpLApAQCAtMzE5MCw3ICszMTk3LDcgQEAgdm9pZCB0ZXN0
U1NockFyZ3MoaW50NjRfdCBhLCBpbnQ2NF90IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBTU2hyLCBPcmlnaW4oKSwKQEAgLTMyMDYsNyArMzIxMyw3
IEBAIHZvaWQgdGVzdFNTaHJJbW1zKGludDY0X3QgYSwgaW50NjRfdCBiKQogewogICAgIFByb2Nl
ZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU1NociwgT3JpZ2luKCksCkBAIC0z
MjIwLDcgKzMyMjcsNyBAQCB2b2lkIHRlc3RTU2hyQXJnSW1tKGludDY0X3QgYSwgaW50NjRfdCBi
CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTU2hyLCBP
cmlnaW4oKSwKQEAgLTMyMzcsNyArMzI0NCw3IEBAIHZvaWQgdGVzdFNTaHJBcmczMihpbnQzMl90
IGEpCiAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
cHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBTU2hyLCBPcmlnaW4oKSwgdmFsdWUsIHZhbHVlKSk7CiAKQEAg
LTMyNDgsNyArMzI1NSw3IEBAIHZvaWQgdGVzdFNTaHJBcmdzMzIoaW50MzJfdCBhLCBpbnQzMl90
IGIKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNTaHIs
IE9yaWdpbigpLApAQCAtMzI2Niw3ICszMjczLDcgQEAgdm9pZCB0ZXN0U1NockltbXMzMihpbnQz
Ml90IGEsIGludDMyX3QgYgogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgU1NociwgT3JpZ2luKCksCkBAIC0zMjgwLDcgKzMyODcsNyBAQCB2b2lkIHRlc3RT
U2hyQXJnSW1tMzIoaW50MzJfdCBhLCBpbnQzMl90CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBTU2hyLCBPcmlnaW4oKSwKQEAgLTMyOTYsNyArMzMwMyw3
IEBAIHZvaWQgdGVzdFpTaHJBcmdzKHVpbnQ2NF90IGEsIHVpbnQ2NF90IGIKIHsKICAgICBQcm9j
ZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFpTaHIsIE9yaWdpbigpLApAQCAt
MzMxMiw3ICszMzE5LDcgQEAgdm9pZCB0ZXN0WlNockltbXModWludDY0X3QgYSwgdWludDY0X3Qg
YgogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgWlNociwg
T3JpZ2luKCksCkBAIC0zMzI2LDcgKzMzMzMsNyBAQCB2b2lkIHRlc3RaU2hyQXJnSW1tKHVpbnQ2
NF90IGEsIHVpbnQ2NF90CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBaU2hyLCBPcmlnaW4oKSwKQEAgLTMzNDMsNyArMzM1MCw3IEBAIHZvaWQgdGVzdFpT
aHJBcmczMih1aW50MzJfdCBhKQogICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjApKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgWlNociwgT3JpZ2luKCksIHZhbHVl
LCB2YWx1ZSkpOwogCkBAIC0zMzU0LDcgKzMzNjEsNyBAQCB2b2lkIHRlc3RaU2hyQXJnczMyKHVp
bnQzMl90IGEsIHVpbnQzMl90CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBaU2hyLCBPcmlnaW4oKSwKQEAgLTMzNzIsNyArMzM3OSw3IEBAIHZvaWQgdGVz
dFpTaHJJbW1zMzIodWludDMyX3QgYSwgdWludDMyX3QKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKICAgICAgICAgICAgIHByb2MsIFpTaHIsIE9yaWdpbigpLApAQCAtMzM4Niw3ICszMzkz
LDcgQEAgdm9pZCB0ZXN0WlNockFyZ0ltbTMyKHVpbnQzMl90IGEsIHVpbnQzMgogewogICAgIFBy
b2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgWlNociwgT3JpZ2luKCksCkBA
IC0zNDE5LDcgKzM0MjYsNyBAQCB2b2lkIHRlc3RDbHpBcmc2NChpbnQ2NF90IGEpCiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIGNselZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBDbHosIE9yaWdpbigpLCBhcmd1bWVudCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2x6VmFsdWUpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjbHpWYWx1
ZSk7CiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjx1bnNpZ25lZD4ocHJvYywgYSkgPT0gY291bnRM
ZWFkaW5nWmVybyhhKSk7CiB9CiAKQEAgLTM0MzAsNyArMzQzNyw3IEBAIHZvaWQgdGVzdENsek1l
bTY0KGludDY0X3QgYSkKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAg
ICBNZW1vcnlWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2Ms
IExvYWQsIEludDY0LCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIGNselZhbHVlID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDbHosIE9yaWdpbigpLCB2YWx1ZSk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2x6
VmFsdWUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBjbHpWYWx1ZSk7CiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjx1bnNpZ25lZD4ocHJv
YywgJmEpID09IGNvdW50TGVhZGluZ1plcm8oYSkpOwogfQogCkBAIC0zNDQxLDcgKzM0NDgsNyBA
QCB2b2lkIHRlc3RDbHpBcmczMihpbnQzMl90IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKSk7CiAgICAgVmFsdWUqIGNselZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBDbHosIE9yaWdpbigpLCBhcmd1bWVudCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2x6VmFsdWUpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjbHpWYWx1ZSk7
CiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjx1bnNpZ25lZD4ocHJvYywgYSkgPT0gY291bnRMZWFk
aW5nWmVybyhhKSk7CiB9CiAKQEAgLTM0NTIsNyArMzQ1OSw3IEBAIHZvaWQgdGVzdENsek1lbTMy
KGludDMyX3QgYSkKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBN
ZW1vcnlWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExv
YWQsIEludDMyLCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIGNselZhbHVlID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDbHosIE9yaWdpbigpLCB2YWx1ZSk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2x6VmFs
dWUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBjbHpWYWx1ZSk7CiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjx1bnNpZ25lZD4ocHJvYywg
JmEpID09IGNvdW50TGVhZGluZ1plcm8oYSkpOwogfQogCkBAIC0zNDYwLDcgKzM0NjcsNyBAQCB2
b2lkIHRlc3RBYnNBcmcoZG91YmxlIGEpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBBYnMsIE9yaWdpbigpLApAQCAtMzQ3NCw3ICszNDgxLDcgQEAgdm9p
ZCB0ZXN0QWJzSW1tKGRvdWJsZSBhKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+
YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBPcmlnaW4oKSwgYXJndW1lbnQpKTsKIApAQCAtMzQ4Nyw3
ICszNDk0LDcgQEAgdm9pZCB0ZXN0QWJzTWVtKGRvdWJsZSBhKQogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BS
MCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWREb3VibGUgPSByb290LT5hcHBlbmROZXc8TWVtb3J5
VmFsdWU+KHByb2MsIExvYWQsIERvdWJsZSwgT3JpZ2luKCksIGFkZHJlc3MpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdpbigpLCBsb2FkRG91YmxlKSk7CiAKQEAgLTM1MDEs
NyArMzUwOCw3IEBAIHZvaWQgdGVzdEFic0Fic0FyZyhkb3VibGUgYSkKICAgICBWYWx1ZSogZmly
c3RBYnMgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFicywgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBS
SW5mbzo6YXJndW1lbnRGUFIwKSk7CiAgICAgVmFsdWUqIHNlY29uZEFicyA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBPcmlnaW4oKSwgZmlyc3RBYnMpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZEFicyk7
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHNlY29uZEFicyk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJs
ZT4ocHJvYywgYSksIGZhYnMoYSkpKTsKIH0KQEAgLTM1MTMsNyArMzUyMCw3IEBAIHZvaWQgdGVz
dEFic0JpdHdpc2VDYXN0QXJnKGRvdWJsZSBhKQogICAgIFZhbHVlKiBhcmd1bWVudEFzSW50NjQg
PSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50QXNEb3VibGUgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnRBc0lu
dDY0KTsKICAgICBWYWx1ZSogYWJzVmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEFicywgT3JpZ2luKCksIGFyZ3VtZW50QXNEb3VibGUpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFic1ZhbHVlKTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWJzVmFsdWUp
OwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIGJp
dHdpc2VfY2FzdDxpbnQ2NF90PihhKSksIGZhYnMoYSkpKTsKIH0KQEAgLTM1MjcsNyArMzUzNCw3
IEBAIHZvaWQgdGVzdEJpdHdpc2VDYXN0QWJzQml0d2lzZUNhc3RBcmcoZG8KICAgICBWYWx1ZSog
YWJzVmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFicywgT3JpZ2luKCksIGFy
Z3VtZW50QXNEb3VibGUpOwogICAgIFZhbHVlKiByZXN1bHRBc0ludDY0ID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFic1ZhbHVlKTsKIAotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
c3VsdEFzSW50NjQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByZXN1bHRBc0ludDY0KTsKIAogICAgIGludDY0X3QgZXhwZWN0ZWRSZXN1
bHQgPSBiaXR3aXNlX2Nhc3Q8aW50NjRfdD4oZmFicyhhKSk7CiAgICAgQ0hFQ0soaXNJZGVudGlj
YWwoY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50NjRfdD4oYSkp
LCBleHBlY3RlZFJlc3VsdCkpOwpAQCAtMzU0Miw3ICszNTQ5LDcgQEAgdm9pZCB0ZXN0QWJzQXJn
KGZsb2F0IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiByZXN1
bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFicywgT3JpZ2luKCksIGFyZ3VtZW50
KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJp
dHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAog
ICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lz
ZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0PGZs
b2F0PihmYWJzKGEpKSkpKTsKIH0KQEAgLTM1NTQsNyArMzU2MSw3IEBAIHZvaWQgdGVzdEFic0lt
bShmbG9hdCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZs
b2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFs
dWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwg
T3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhp
c0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQz
Ml90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihzdGF0aWNfY2FzdDxmbG9hdD4oZmFicyhh
KSkpKSk7CiB9CkBAIC0zNTY3LDcgKzM1NzQsNyBAQCB2b2lkIHRlc3RBYnNNZW0oZmxvYXQgYSkK
ICAgICBNZW1vcnlWYWx1ZSogbG9hZEZsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVl
Pihwcm9jLCBMb2FkLCBGbG9hdCwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiByZXN1
bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFicywgT3JpZ2luKCksIGxvYWRGbG9h
dCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBC
aXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAK
ICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsICZhKSwg
Yml0d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0PGZsb2F0PihmYWJzKGEpKSkpKTsKIH0K
QEAgLTM1ODEsNyArMzU4OCw3IEBAIHZvaWQgdGVzdEFic0Fic0FyZyhmbG9hdCBhKQogICAgIFZh
bHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3Qs
IE9yaWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1ZSogZmlyc3RBYnMgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEFicywgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBWYWx1ZSog
c2Vjb25kQWJzID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdpbigpLCBm
aXJzdEFicyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgc2Vjb25kQWJzKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kQWJzKTsKIAogICAgIENIRUNLKGlzSWRlbnRp
Y2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSks
IHN0YXRpY19jYXN0PGZsb2F0PihmYWJzKGEpKSkpOwogfQpAQCAtMzU5NCw3ICszNjAxLDcgQEAg
dm9pZCB0ZXN0QWJzQml0d2lzZUNhc3RBcmcoZmxvYXQgYSkKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApKTsKICAgICBWYWx1ZSogYXJndW1lbnRBc2Zsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50QXNJbnQzMik7CiAgICAgVmFs
dWUqIGFic1ZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdpbigp
LCBhcmd1bWVudEFzZmxvYXQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIGFic1ZhbHVlKTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWJzVmFsdWUpOwogCiAgICAgQ0hFQ0so
aXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMy
X3Q+KGEpKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGZhYnMoYSkpKSk7CiB9CkBAIC0zNjA5LDcgKzM2
MTYsNyBAQCB2b2lkIHRlc3RCaXR3aXNlQ2FzdEFic0JpdHdpc2VDYXN0QXJnKGZsCiAgICAgVmFs
dWUqIGFic1ZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdpbigp
LCBhcmd1bWVudEFzZmxvYXQpOwogICAgIFZhbHVlKiByZXN1bHRBc0ludDY0ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFic1ZhbHVlKTsKIAot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJlc3VsdEFzSW50NjQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHRBc0ludDY0KTsKIAogICAgIGludDMyX3QgZXhwZWN0ZWRS
ZXN1bHQgPSBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KGZhYnMoYSkp
KTsKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJp
dHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGV4cGVjdGVkUmVzdWx0KSk7CkBAIC0zNjI2LDcgKzM2
MzMsNyBAQCB2b2lkIHRlc3RBYnNBcmdXaXRoVXNlbGVzc0RvdWJsZUNvbnZlcnNpCiAgICAgVmFs
dWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBPcmlnaW4oKSwg
YXNEb3VibGUpOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgVmFsdWUqIHJl
c3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2lu
KCksIGZsb2F0UmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlz
SWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMy
X3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0PGZsb2F0PihmYWJzKGEp
KSkpKTsKIH0KQEAgLTM2NDQsNyArMzY1MSw3IEBAIHZvaWQgdGVzdEFic0FyZ1dpdGhFZmZlY3Rm
dWxEb3VibGVDb252ZXIKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwogICAgIFZhbHVl
KiBkb3VibGVBZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxN
ZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGRvdWJsZUFkZHJlc3Mp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgZG91YmxlIGVmZmVjdCA9IDA7CiAgICAg
aW50MzJfdCByZXN1bHRWYWx1ZSA9IGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lz
ZV9jYXN0PGludDMyX3Q+KGEpLCAmZWZmZWN0KTsKQEAgLTM2NTYsNyArMzY2Myw3IEBAIHZvaWQg
dGVzdENlaWxBcmcoZG91YmxlIGEpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBDZWlsLCBPcmlnaW4oKSwKQEAgLTM2NzAsNyArMzY3Nyw3IEBAIHZvaWQg
dGVzdENlaWxJbW0oZG91YmxlIGEpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5h
cHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBDZWlsLCBPcmlnaW4oKSwgYXJndW1lbnQpKTsKIApAQCAtMzY4Myw3
ICszNjkwLDcgQEAgdm9pZCB0ZXN0Q2VpbE1lbShkb3VibGUgYSkKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9y
eVZhbHVlPihwcm9jLCBMb2FkLCBEb3VibGUsIE9yaWdpbigpLCBhZGRyZXNzKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCksIGxvYWREb3VibGUpKTsKIApAQCAtMzY5
Nyw3ICszNzA0LDcgQEAgdm9pZCB0ZXN0Q2VpbENlaWxBcmcoZG91YmxlIGEpCiAgICAgVmFsdWUq
IGZpcnN0Q2VpbCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKSk7CiAgICAgVmFsdWUqIHNlY29uZENlaWwgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBmaXJzdENlaWwpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNl
Y29uZENlaWwpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBzZWNvbmRDZWlsKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVB
bmRSdW48ZG91YmxlPihwcm9jLCBhKSwgY2VpbChhKSkpOwogfQpAQCAtMzcwOSw3ICszNzE2LDcg
QEAgdm9pZCB0ZXN0Rmxvb3JDZWlsQXJnKGRvdWJsZSBhKQogICAgIFZhbHVlKiBmaXJzdENlaWwg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86
OmFyZ3VtZW50RlBSMCkpOwogICAgIFZhbHVlKiB3cmFwcGluZ0Zsb29yID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGZpcnN0Q2VpbCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgd3JhcHBpbmdG
bG9vcik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHdyYXBwaW5nRmxvb3IpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFu
ZFJ1bjxkb3VibGU+KHByb2MsIGEpLCBjZWlsKGEpKSk7CiB9CkBAIC0zNzIxLDcgKzM3MjgsNyBA
QCB2b2lkIHRlc3RDZWlsSVRvRDY0KGludDY0X3QgYSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50QXNEb3VibGUgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCksIGFyZ3VtZW50QXNEb3VibGUpKTsKIApA
QCAtMzczNiw3ICszNzQzLDcgQEAgdm9pZCB0ZXN0Q2VpbElUb0QzMihpbnQ2NF90IGEpCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BS
SW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgVmFsdWUqIGFyZ3VtZW50QXNEb3VibGUgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCksIGFyZ3VtZW50QXNEb3VibGUp
KTsKIApAQCAtMzc1Miw3ICszNzU5LDcgQEAgdm9pZCB0ZXN0Q2VpbEFyZyhmbG9hdCBhKQogICAg
IFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNh
c3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBDZWlsLCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZhbHVl
KiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9y
aWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJ
ZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJf
dD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oY2VpbGYoYSkpKSk7CiB9CkBAIC0zNzY0LDcg
KzM3NzEsNyBAQCB2b2lkIHRlc3RDZWlsSW1tKGZsb2F0IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50
ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwog
ICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9y
aWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMy
X3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90
PihjZWlsZihhKSkpKTsKIH0KQEAgLTM3NzcsNyArMzc4NCw3IEBAIHZvaWQgdGVzdENlaWxNZW0o
ZmxvYXQgYSkKICAgICBNZW1vcnlWYWx1ZSogbG9hZEZsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PE1l
bW9yeVZhbHVlPihwcm9jLCBMb2FkLCBGbG9hdCwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZh
bHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigp
LCBsb2FkRmxvYXQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihw
cm9jLCAmYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihjZWlsZihhKSkpKTsKIH0KQEAgLTM3OTEs
NyArMzc5OCw3IEBAIHZvaWQgdGVzdENlaWxDZWlsQXJnKGZsb2F0IGEpCiAgICAgVmFsdWUqIGFy
Z3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2lu
KCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiBmaXJzdENlaWwgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHNlY29u
ZENlaWwgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBmaXJz
dENlaWwpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHNlY29uZENlaWwpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmRDZWlsKTsKIAogICAgIENIRUNLKGlzSWRlbnRp
Y2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSks
IGNlaWxmKGEpKSk7CiB9CkBAIC0zODA1LDcgKzM4MTIsNyBAQCB2b2lkIHRlc3RGbG9vckNlaWxB
cmcoZmxvYXQgYSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUqIGZp
cnN0Q2VpbCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCksIGFy
Z3VtZW50KTsKICAgICBWYWx1ZSogd3JhcHBpbmdGbG9vciA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBmaXJzdENlaWwpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHdyYXBwaW5nRmxvb3IpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB3
cmFwcGluZ0Zsb29yKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48Zmxv
YXQ+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGNlaWxmKGEpKSk7CiB9CkBAIC0z
ODIxLDcgKzM4MjgsNyBAQCB2b2lkIHRlc3RDZWlsQXJnV2l0aFVzZWxlc3NEb3VibGVDb252ZXJz
CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwg
T3JpZ2luKCksIGFzRG91YmxlKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCByZXN1bHQpOwogICAg
IFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNh
c3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAg
ICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2Vf
Y2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihjZWlsZihhKSkpKTsKIH0K
QEAgLTM4MzksNyArMzg0Niw3IEBAIHZvaWQgdGVzdENlaWxBcmdXaXRoRWZmZWN0ZnVsRG91Ymxl
Q29udmUKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwogICAgIFZhbHVlKiBkb3VibGVB
ZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1
ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGRvdWJsZUFkZHJlc3MpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0MzIpOwogCiAgICAgZG91YmxlIGVmZmVjdCA9IDA7CiAgICAgaW50MzJfdCBy
ZXN1bHRWYWx1ZSA9IGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KGEpLCAmZWZmZWN0KTsKQEAgLTM4NTEsNyArMzg1OCw3IEBAIHZvaWQgdGVzdEZsb29y
QXJnKGRvdWJsZSBhKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgRmxvb3IsIE9yaWdpbigpLApAQCAtMzg2NSw3ICszODcyLDcgQEAgdm9pZCB0ZXN0Rmxv
b3JJbW0oZG91YmxlIGEpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmRO
ZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGFyZ3VtZW50KSk7CiAKQEAgLTM4NzgsNyArMzg4
NSw3IEBAIHZvaWQgdGVzdEZsb29yTWVtKGRvdWJsZSBhKQogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7
CiAgICAgTWVtb3J5VmFsdWUqIGxvYWREb3VibGUgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFs
dWU+KHByb2MsIExvYWQsIERvdWJsZSwgT3JpZ2luKCksIGFkZHJlc3MpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGxvYWREb3VibGUpKTsKIApAQCAtMzg5Miw3
ICszODk5LDcgQEAgdm9pZCB0ZXN0Rmxvb3JGbG9vckFyZyhkb3VibGUgYSkKICAgICBWYWx1ZSog
Zmlyc3RGbG9vciA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCkpOwogICAgIFZhbHVlKiBzZWNvbmRGbG9vciA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBmaXJzdEZsb29yKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBzZWNvbmRGbG9vcik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHNlY29uZEZsb29yKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNv
bXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBhKSwgZmxvb3IoYSkpKTsKIH0KQEAgLTM5MDQsNyAr
MzkxMSw3IEBAIHZvaWQgdGVzdENlaWxGbG9vckFyZyhkb3VibGUgYSkKICAgICBWYWx1ZSogZmly
c3RGbG9vciA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEZQUkluZm86OmFyZ3VtZW50RlBSMCkpOwogICAgIFZhbHVlKiB3cmFwcGluZ0NlaWwgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBmaXJzdEZsb29yKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB3
cmFwcGluZ0NlaWwpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCB3cmFwcGluZ0NlaWwpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29t
cGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIGEpLCBmbG9vcihhKSkpOwogfQpAQCAtMzkxNiw3ICsz
OTIzLDcgQEAgdm9pZCB0ZXN0Rmxvb3JJVG9ENjQoaW50NjRfdCBhKQogICAgIFZhbHVlKiBhcmd1
bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
R1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBWYWx1ZSogYXJndW1lbnRBc0RvdWJsZSA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGFyZ3VtZW50KTsKIAot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGFyZ3VtZW50QXNEb3Vi
bGUpKTsKIApAQCAtMzkzMSw3ICszOTM4LDcgQEAgdm9pZCB0ZXN0Rmxvb3JJVG9EMzIoaW50NjRf
dCBhKQogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiBhcmd1bWVudEFzRG91
YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgYXJndW1l
bnQpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgYXJndW1l
bnRBc0RvdWJsZSkpOwogCkBAIC0zOTQ3LDcgKzM5NTQsNyBAQCB2b2lkIHRlc3RGbG9vckFyZyhm
bG9hdCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1ZSogcmVzdWx0
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGFyZ3VtZW50
KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJp
dHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAog
ICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lz
ZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGZsb29yZihhKSkpKTsK
IH0KQEAgLTM5NTksNyArMzk2Niw3IEBAIHZvaWQgdGVzdEZsb29ySW1tKGZsb2F0IGEpCiAgICAg
VmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1
bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29t
cGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oZmxvb3JmKGEpKSkpOwogfQpAQCAtMzk3Miw3ICszOTc5LDcgQEAg
dm9pZCB0ZXN0Rmxvb3JNZW0oZmxvYXQgYSkKICAgICBNZW1vcnlWYWx1ZSogbG9hZEZsb2F0ID0g
cm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBGbG9hdCwgT3JpZ2luKCks
IGFkZHJlc3MpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEZsb29yLCBPcmlnaW4oKSwgbG9hZEZsb2F0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBp
bGVBbmRSdW48aW50MzJfdD4ocHJvYywgJmEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oZmxvb3Jm
KGEpKSkpOwogfQpAQCAtMzk4Niw3ICszOTkzLDcgQEAgdm9pZCB0ZXN0Rmxvb3JGbG9vckFyZyhm
bG9hdCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1ZSogZmlyc3RG
bG9vciA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBhcmd1
bWVudCk7CiAgICAgVmFsdWUqIHNlY29uZEZsb29yID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBGbG9vciwgT3JpZ2luKCksIGZpcnN0Rmxvb3IpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZEZsb29yKTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25k
Rmxvb3IpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJv
YywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgZmxvb3JmKGEpKSk7CiB9CkBAIC00MDAwLDcg
KzQwMDcsNyBAQCB2b2lkIHRlc3RDZWlsRmxvb3JBcmcoZmxvYXQgYSkKICAgICBWYWx1ZSogYXJn
dW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4o
KSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUqIGZpcnN0Rmxvb3IgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZhbHVlKiB3cmFw
cGluZ0NlaWwgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBm
aXJzdEZsb29yKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCB3cmFwcGluZ0NlaWwpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB3cmFwcGluZ0NlaWwpOwogCiAgICAgQ0hFQ0so
aXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMy
X3Q+KGEpKSwgZmxvb3JmKGEpKSk7CiB9CkBAIC00MDE2LDcgKzQwMjMsNyBAQCB2b2lkIHRlc3RG
bG9vckFyZ1dpdGhVc2VsZXNzRG91YmxlQ29udmVyCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBhc0RvdWJsZSk7CiAgICAg
VmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVU
b0Zsb2F0LCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGls
ZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNl
X2Nhc3Q8aW50MzJfdD4oZmxvb3JmKGEpKSkpOwogfQpAQCAtNDAzNCw3ICs0MDQxLDcgQEAgdm9p
ZCB0ZXN0Rmxvb3JBcmdXaXRoRWZmZWN0ZnVsRG91YmxlQ29udgogICAgIFZhbHVlKiByZXN1bHQz
MiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBm
bG9hdFJlc3VsdCk7CiAgICAgVmFsdWUqIGRvdWJsZUFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7
CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCks
IHJlc3VsdCwgZG91YmxlQWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBk
b3VibGUgZWZmZWN0ID0gMDsKICAgICBpbnQzMl90IHJlc3VsdFZhbHVlID0gY29tcGlsZUFuZFJ1
bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksICZlZmZlY3QpOwpAQCAt
NDA0Niw3ICs0MDUzLDcgQEAgdm9pZCB0ZXN0U3FydEFyZyhkb3VibGUgYSkKIHsKICAgICBQcm9j
ZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNxcnQsIE9yaWdpbigpLApAQCAt
NDA2MCw3ICs0MDY3LDcgQEAgdm9pZCB0ZXN0U3FydEltbShkb3VibGUgYSkKICAgICBQcm9jZWR1
cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZh
bHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgYSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFNxcnQsIE9yaWdpbigpLCBh
cmd1bWVudCkpOwogCkBAIC00MDczLDcgKzQwODAsNyBAQCB2b2lkIHRlc3RTcXJ0TWVtKGRvdWJs
ZSBhKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUq
IGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWREb3VibGUg
PSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIERvdWJsZSwgT3JpZ2lu
KCksIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTcXJ0LCBPcmlnaW4oKSwg
bG9hZERvdWJsZSkpOwogCkBAIC00MDg5LDcgKzQwOTYsNyBAQCB2b2lkIHRlc3RTcXJ0QXJnKGZs
b2F0IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiByZXN1bHQg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFNxcnQsIE9yaWdpbigpLCBhcmd1bWVudCk7
CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3
aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAg
ICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2Vf
Y2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihzdGF0aWNfY2FzdDxmbG9h
dD4oc3FydChhKSkpKSk7CiB9CkBAIC00MTAxLDcgKzQxMDgsNyBAQCB2b2lkIHRlc3RTcXJ0SW1t
KGZsb2F0IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0Rmxv
YXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIFNxcnQsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFs
dWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwg
T3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhp
c0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQz
Ml90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihzdGF0aWNfY2FzdDxmbG9hdD4oc3FydChh
KSkpKSk7CiB9CkBAIC00MTE0LDcgKzQxMjEsNyBAQCB2b2lkIHRlc3RTcXJ0TWVtKGZsb2F0IGEp
CiAgICAgTWVtb3J5VmFsdWUqIGxvYWRGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1
ZT4ocHJvYywgTG9hZCwgRmxvYXQsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogcmVz
dWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTcXJ0LCBPcmlnaW4oKSwgbG9hZEZs
b2F0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsK
IAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgJmEp
LCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KHNxcnQoYSkpKSkpOwog
fQpAQCAtNDEzMCw3ICs0MTM3LDcgQEAgdm9pZCB0ZXN0U3FydEFyZ1dpdGhVc2VsZXNzRG91Ymxl
Q29udmVycwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IFNxcnQsIE9yaWdpbigpLCBhc0RvdWJsZSk7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgcmVzdWx0
KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJp
dHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIp
OwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBi
aXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nh
c3Q8ZmxvYXQ+KHNxcnQoYSkpKSkpOwogfQpAQCAtNDE0OCw3ICs0MTU1LDcgQEAgdm9pZCB0ZXN0
U3FydEFyZ1dpdGhFZmZlY3RmdWxEb3VibGVDb252ZQogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJl
c3VsdCk7CiAgICAgVmFsdWUqIGRvdWJsZUFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CiAgICAg
cm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3Vs
dCwgZG91YmxlQWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBkb3VibGUg
ZWZmZWN0ID0gMDsKICAgICBpbnQzMl90IHJlc3VsdFZhbHVlID0gY29tcGlsZUFuZFJ1bjxpbnQz
Ml90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksICZlZmZlY3QpOwpAQCAtNDE3Miw3
ICs0MTc5LDcgQEAgdm9pZCB0ZXN0Q29tcGFyZVR3b0Zsb2F0VG9Eb3VibGUoZmxvYXQgYQogICAg
IFZhbHVlKiBhcmcyQXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0
VG9Eb3VibGUsIE9yaWdpbigpLCBhcmcyRmxvYXQpOwogICAgIFZhbHVlKiBlcXVhbCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRXF1YWwsIE9yaWdpbigpLCBhcmcxQXNEb3VibGUsIGFy
ZzJBc0RvdWJsZSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCBlcXVhbCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGVxdWFsKTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRS
dW48aW50NjRfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4oYikpID09IChhID09IGIpKTsKIH0KQEAgLTQxOTAsNyArNDE5Nyw3IEBAIHZvaWQg
dGVzdENvbXBhcmVPbmVGbG9hdFRvRG91YmxlKGZsb2F0IGEKICAgICBWYWx1ZSogYXJnMkFzRG91
YmxlID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBG
UFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiBlcXVhbCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgRXF1YWwsIE9yaWdpbigpLCBhcmcxQXNEb3VibGUsIGFyZzJBc0RvdWJs
ZSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBlcXVhbCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIGVxdWFsKTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRf
dD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiKSA9PSAoYSA9PSBiKSk7CiB9CkBA
IC00MjE0LDIzICs0MjIxLDIzIEBAIHZvaWQgdGVzdENvbXBhcmVGbG9hdFRvRG91YmxlVGhyb3Vn
aFBoaSgKICAgICBWYWx1ZSogYXJnMkFzRmxvYXQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBhcmcyQXNEb3VibGUpOwogICAgIFZhbHVlKiBh
cmcyQXNGUm91bmRlZERvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRU
b0RvdWJsZSwgT3JpZ2luKCksIGFyZzJBc0Zsb2F0KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgY29uZGl0aW9uLAogICAgICAgICBGcmVx
dWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAogICAg
IFVwc2lsb25WYWx1ZSogdGhlblZhbHVlID0gdGhlbkNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBhcmcxQXNEb3VibGUpOwotICAgIHRoZW5DYXNlLT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRh
aWwpKTsKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9y
aWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOwogCiAgICAgVmFsdWUqIGVsc2VDb25zdCA9
IGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDAu
KTsKICAgICBVcHNpbG9uVmFsdWUqIGVsc2VWYWx1ZSA9IGVsc2VDYXNlLT5hcHBlbmROZXc8VXBz
aWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgZWxzZUNvbnN0KTsKLSAgICBlbHNlQ2FzZS0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9j
ayh0YWlsKSk7CisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1w
LCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKIAogICAgIFZhbHVlKiBkb3VibGVJ
bnB1dCA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBEb3VibGUsIE9yaWdpbigp
KTsKICAgICB0aGVuVmFsdWUtPnNldFBoaShkb3VibGVJbnB1dCk7CiAgICAgZWxzZVZhbHVlLT5z
ZXRQaGkoZG91YmxlSW5wdXQpOwogICAgIFZhbHVlKiBlcXVhbCA9IHRhaWwtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgRXF1YWwsIE9yaWdpbigpLCBkb3VibGVJbnB1dCwgYXJnMkFzRlJvdW5kZWRE
b3VibGUpOwotICAgIHRhaWwtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIGVxdWFsKTsKKyAgICB0YWlsLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgZXF1YWwpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9j
KTsKICAgICBpbnQzMl90IGludGVnZXJBID0gYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpOwpAQCAt
NDI2MSw3ICs0MjY4LDcgQEAgdm9pZCB0ZXN0RG91YmxlVG9GbG9hdFRocm91Z2hQaGkoZmxvYXQg
dgogICAgIFZhbHVlKiBmbG9hdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBC
aXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiBhcmdBc0RvdWJs
ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCks
IGZsb2F0VmFsdWUpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdp
bigpLAogICAgICAgICBjb25kaXRpb24sCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2Fz
ZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwpAQCAtNDI2OSwxNyArNDI3NiwxNyBAQCB2
b2lkIHRlc3REb3VibGVUb0Zsb2F0VGhyb3VnaFBoaShmbG9hdCB2CiAgICAgVmFsdWUqIHBvc3Rp
dGl2ZUNvbnN0ID0gdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgNDIuNWYpOwogICAgIFZhbHVlKiB0aGVuQWRkID0gdGhlbkNhc2UtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYXJnQXNEb3VibGUsIHBvc3RpdGl2ZUNvbnN0
KTsKICAgICBVcHNpbG9uVmFsdWUqIHRoZW5WYWx1ZSA9IHRoZW5DYXNlLT5hcHBlbmROZXc8VXBz
aWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdGhlbkFkZCk7Ci0gICAgdGhlbkNhc2UtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2so
dGFpbCkpOworICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwg
T3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CiAKICAgICBWYWx1ZSogZWxzZUNvbnN0
ID0gZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
TV9QSSk7CiAgICAgVXBzaWxvblZhbHVlKiBlbHNlVmFsdWUgPSBlbHNlQ2FzZS0+YXBwZW5kTmV3
PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGVsc2VDb25zdCk7Ci0gICAgZWxzZUNhc2Ut
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVk
QmxvY2sodGFpbCkpOworICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
SnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CiAKICAgICBWYWx1ZSogZG91
YmxlSW5wdXQgPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFBoaSwgRG91YmxlLCBPcmln
aW4oKSk7CiAgICAgdGhlblZhbHVlLT5zZXRQaGkoZG91YmxlSW5wdXQpOwogICAgIGVsc2VWYWx1
ZS0+c2V0UGhpKGRvdWJsZUlucHV0KTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSB0YWlsLT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBkb3VibGVJbnB1
dCk7Ci0gICAgdGFpbC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgZmxvYXRSZXN1bHQpOworICAgIHRhaWwtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21w
aWxlKHByb2MpOwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGludm9rZTxmbG9hdD4oKmNvZGUsIDEs
IGJpdHdpc2VfY2FzdDxpbnQzMl90Pih2YWx1ZSkpLCB2YWx1ZSArIDQyLjVmKSk7CkBAIC00Mjk5
LDE4ICs0MzA2LDE4IEBAIHZvaWQgdGVzdERvdWJsZVByb2R1Y2VyUGhpVG9GbG9hdENvbnZlcnMK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKTsKICAgICBWYWx1ZSogZmxvYXRWYWx1ZSA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMy
KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAg
ICAgY29uZGl0aW9uLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVu
dGVkQmxvY2soZWxzZUNhc2UpKTsKIAogICAgIFZhbHVlKiBhc0RvdWJsZSA9IHRoZW5DYXNlLT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBmbG9hdFZhbHVl
KTsKICAgICBVcHNpbG9uVmFsdWUqIHRoZW5WYWx1ZSA9IHRoZW5DYXNlLT5hcHBlbmROZXc8VXBz
aWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYXNEb3VibGUpOwotICAgIHRoZW5DYXNlLT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2Nr
KHRhaWwpKTsKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAs
IE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOwogCiAgICAgVmFsdWUqIGNvbnN0RG91
YmxlID0gZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgNDIuNSk7CiAgICAgVXBzaWxvblZhbHVlKiBlbHNlVmFsdWUgPSBlbHNlQ2FzZS0+YXBwZW5k
TmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGNvbnN0RG91YmxlKTsKLSAgICBlbHNl
Q2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1
ZW50ZWRCbG9jayh0YWlsKSk7CisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKIAogICAgIFZhbHVl
KiBkb3VibGVJbnB1dCA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBEb3VibGUs
IE9yaWdpbigpKTsKICAgICB0aGVuVmFsdWUtPnNldFBoaShkb3VibGVJbnB1dCk7CkBAIC00MzE5
LDcgKzQzMjYsNyBAQCB2b2lkIHRlc3REb3VibGVQcm9kdWNlclBoaVRvRmxvYXRDb252ZXJzCiAg
ICAgVmFsdWUqIGFyZ0FzRG91YmxlQWdhaW4gPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBmbG9hdFZhbHVlKTsKICAgICBWYWx1ZSogZmluYWxB
ZGQgPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGRvdWJsZUlu
cHV0LCBhcmdBc0RvdWJsZUFnYWluKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSB0YWlsLT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBmaW5hbEFkZCk7
Ci0gICAgdGFpbC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgZmxvYXRSZXN1bHQpOworICAgIHRhaWwtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxl
KHByb2MpOwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGludm9rZTxmbG9hdD4oKmNvZGUsIDEsIGJp
dHdpc2VfY2FzdDxpbnQzMl90Pih2YWx1ZSkpLCB2YWx1ZSArIHZhbHVlKSk7CkBAIC00MzQxLDE4
ICs0MzQ4LDE4IEBAIHZvaWQgdGVzdERvdWJsZVByb2R1Y2VyUGhpVG9GbG9hdENvbnZlcnMKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjEpKTsKICAgICBWYWx1ZSogZmxvYXRWYWx1ZSA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsK
IAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAg
Y29uZGl0aW9uLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVk
QmxvY2soZWxzZUNhc2UpKTsKIAogICAgIFZhbHVlKiBhc0RvdWJsZSA9IHRoZW5DYXNlLT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBmbG9hdFZhbHVlKTsK
ICAgICBVcHNpbG9uVmFsdWUqIHRoZW5WYWx1ZSA9IHRoZW5DYXNlLT5hcHBlbmROZXc8VXBzaWxv
blZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYXNEb3VibGUpOwotICAgIHRoZW5DYXNlLT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRh
aWwpKTsKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9y
aWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOwogCiAgICAgVmFsdWUqIGNvbnN0RG91Ymxl
ID0gZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
NDIuNSk7CiAgICAgVXBzaWxvblZhbHVlKiBlbHNlVmFsdWUgPSBlbHNlQ2FzZS0+YXBwZW5kTmV3
PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGNvbnN0RG91YmxlKTsKLSAgICBlbHNlQ2Fz
ZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50
ZWRCbG9jayh0YWlsKSk7CisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKIAogICAgIFZhbHVlKiBk
b3VibGVJbnB1dCA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBEb3VibGUsIE9y
aWdpbigpKTsKICAgICB0aGVuVmFsdWUtPnNldFBoaShkb3VibGVJbnB1dCk7CkBAIC00MzY4LDcg
KzQzNzUsNyBAQCB2b2lkIHRlc3REb3VibGVQcm9kdWNlclBoaVRvRmxvYXRDb252ZXJzCiAgICAg
Ly8gVGhpcyBvbmUgKmNhbm5vdCogYmUgZWxpbWluYXRlZAogICAgIFZhbHVlKiBkb3VibGVBZGQg
PSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGRvdWJsZUlucHV0
LCBkb3VibGVSZXN1bHQpOwogCi0gICAgdGFpbC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgZG91YmxlQWRkKTsKKyAgICB0YWlsLT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZG91YmxlQWRkKTsKIAogICAgIGF1dG8g
Y29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoaW52b2tlPGRvdWJs
ZT4oKmNvZGUsIDEsIGJpdHdpc2VfY2FzdDxpbnQzMl90Pih2YWx1ZSkpLCAodmFsdWUgKyB2YWx1
ZSkgKyBzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVlKSkpOwpAQCAtNDM4OCwxOCArNDM5NSwxOCBA
QCB2b2lkIHRlc3REb3VibGVQcm9kdWNlclBoaVdpdGhOb25GbG9hdENvCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIxKSk7CiAgICAgVmFsdWUqIGZsb2F0VmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIGNvbmRpdGlvbiwK
ICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VD
YXNlKSk7CiAKICAgICBWYWx1ZSogYXNEb3VibGUgPSB0aGVuQ2FzZS0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSk7CiAgICAgVXBzaWxv
blZhbHVlKiB0aGVuVmFsdWUgPSB0aGVuQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJv
YywgT3JpZ2luKCksIGFzRG91YmxlKTsKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CisgICAg
dGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJl
cXVlbnRlZEJsb2NrKHRhaWwpKTsKIAogICAgIFZhbHVlKiBjb25zdERvdWJsZSA9IGVsc2VDYXNl
LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGNvbnN0VmFsdWUp
OwogICAgIFVwc2lsb25WYWx1ZSogZWxzZVZhbHVlID0gZWxzZUNhc2UtPmFwcGVuZE5ldzxVcHNp
bG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCBjb25zdERvdWJsZSk7Ci0gICAgZWxzZUNhc2UtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxv
Y2sodGFpbCkpOworICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVt
cCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CiAKICAgICBWYWx1ZSogZG91Ymxl
SW5wdXQgPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFBoaSwgRG91YmxlLCBPcmlnaW4o
KSk7CiAgICAgdGhlblZhbHVlLT5zZXRQaGkoZG91YmxlSW5wdXQpOwpAQCAtNDQwOCw3ICs0NDE1
LDcgQEAgdm9pZCB0ZXN0RG91YmxlUHJvZHVjZXJQaGlXaXRoTm9uRmxvYXRDbwogICAgIFZhbHVl
KiBhcmdBc0RvdWJsZUFnYWluID0gdGFpbC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRv
RG91YmxlLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSk7CiAgICAgVmFsdWUqIGZpbmFsQWRkID0gdGFp
bC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBkb3VibGVJbnB1dCwgYXJn
QXNEb3VibGVBZ2Fpbik7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gdGFpbC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgZmluYWxBZGQpOwotICAgIHRh
aWwtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGZsb2F0
UmVzdWx0KTsKKyAgICB0YWlsLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgZmxvYXRSZXN1bHQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsK
ICAgICBDSEVDSyhpc0lkZW50aWNhbChpbnZva2U8ZmxvYXQ+KCpjb2RlLCAxLCBiaXR3aXNlX2Nh
c3Q8aW50MzJfdD4odmFsdWUpKSwgdmFsdWUgKyB2YWx1ZSkpOwpAQCAtNDQyMSw3ICs0NDI4LDcg
QEAgdm9pZCB0ZXN0RG91YmxlQXJnVG9JbnQ2NEJpdHdpc2VDYXN0KGRvdQogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1
bWVudEZQUjApOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0
d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudCkpOwpAQCAtNDQzNSw3ICs0NDQyLDcgQEAgdm9p
ZCB0ZXN0RG91YmxlSW1tVG9JbnQ2NEJpdHdpc2VDYXN0KGRvdQogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5k
TmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSk7CiAKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFy
Z3VtZW50KSk7CkBAIC00NDUwLDcgKzQ0NTcsNyBAQCB2b2lkIHRlc3RUd29CaXR3aXNlQ2FzdE9u
RG91YmxlKGRvdWJsZSB2CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwog
ICAgIFZhbHVlKiBmaXJzdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNh
c3QsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHNlY29uZCA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmaXJzdCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25k
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgc2Vjb25kKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91Ymxl
Pihwcm9jLCB2YWx1ZSksIHZhbHVlKSk7CiB9CkBAIC00NDYyLDcgKzQ0NjksNyBAQCB2b2lkIHRl
c3RCaXR3aXNlQ2FzdE9uRG91YmxlSW5NZW1vcnkoZG91CiAgICAgVmFsdWUqIGFkZHJlc3MgPSBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWREb3VibGUgPSByb290LT5hcHBl
bmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIERvdWJsZSwgT3JpZ2luKCksIGFkZHJlc3Mp
OwogICAgIFZhbHVlKiBjYXN0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNl
Q2FzdCwgT3JpZ2luKCksIGxvYWREb3VibGUpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNhc3QpOworICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0KTsKIAogICAgIENIRUNL
KGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgJnZhbHVlKSwgYml0d2lz
ZV9jYXN0PGludDY0X3Q+KHZhbHVlKSkpOwogfQpAQCAtNDQ3OSw3ICs0NDg2LDcgQEAgdm9pZCB0
ZXN0Qml0d2lzZUNhc3RPbkRvdWJsZUluTWVtb3J5SW5kZQogICAgIFZhbHVlKiBhZGRyZXNzID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBiYXNlLCBzY2FsZWRP
ZmZzZXQpOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PE1l
bW9yeVZhbHVlPihwcm9jLCBMb2FkLCBEb3VibGUsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBW
YWx1ZSogY2FzdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9y
aWdpbigpLCBsb2FkRG91YmxlKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FzdCk7CiAKICAgICBDSEVDSyhpc0lkZW50
aWNhbChjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsICZ2YWx1ZSwgMCksIGJpdHdpc2VfY2Fz
dDxpbnQ2NF90Pih2YWx1ZSkpKTsKIH0KQEAgLTQ0OTAsNyArNDQ5Nyw3IEBAIHZvaWQgdGVzdElu
dDY0QkFyZ1RvRG91YmxlQml0d2lzZUNhc3QoaW4KICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKIAot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdHdpc2VDYXN0LCBPcmln
aW4oKSwgYXJndW1lbnQpKTsKQEAgLTQ1MDQsNyArNDUxMSw3IEBAIHZvaWQgdGVzdEludDY0Qklt
bVRvRG91YmxlQml0d2lzZUNhc3QoaW4KICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFs
dWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50KSk7CkBAIC00NTE5
LDcgKzQ1MjYsNyBAQCB2b2lkIHRlc3RUd29CaXR3aXNlQ2FzdE9uSW50NjQoaW50NjRfdCB2CiAg
ICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFZhbHVlKiBmaXJzdCA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1
bWVudCk7CiAgICAgVmFsdWUqIHNlY29uZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
Qml0d2lzZUNhc3QsIE9yaWdpbigpLCBmaXJzdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kKTsKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kKTsKIAogICAg
IENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgdmFsdWUpLCB2
YWx1ZSkpOwogfQpAQCAtNDUzMSw3ICs0NTM4LDcgQEAgdm9pZCB0ZXN0Qml0d2lzZUNhc3RPbklu
dDY0SW5NZW1vcnkoaW50NgogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwog
ICAgIE1lbW9yeVZhbHVlKiBsb2FkRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVl
Pihwcm9jLCBMb2FkLCBJbnQ2NCwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBjYXN0
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGxv
YWREb3VibGUpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIGNhc3QpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBp
bGVBbmRSdW48ZG91YmxlPihwcm9jLCAmdmFsdWUpLCBiaXR3aXNlX2Nhc3Q8ZG91YmxlPih2YWx1
ZSkpKTsKIH0KQEAgLTQ1NDgsNyArNDU1NSw3IEBAIHZvaWQgdGVzdEJpdHdpc2VDYXN0T25JbnQ2
NEluTWVtb3J5SW5kZXgKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYmFzZSwgc2NhbGVkT2Zmc2V0KTsKICAgICBNZW1vcnlW
YWx1ZSogbG9hZERvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9h
ZCwgSW50NjQsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogY2FzdCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBsb2FkRG91YmxlKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBjYXN0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgY2FzdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRv
dWJsZT4ocHJvYywgJnZhbHVlLCAwKSwgYml0d2lzZV9jYXN0PGRvdWJsZT4odmFsdWUpKSk7CiB9
CkBAIC00NTU5LDcgKzQ1NjYsNyBAQCB2b2lkIHRlc3RGbG9hdEltbVRvSW50MzJCaXR3aXNlQ2Fz
dChmbG9hCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1
ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmln
aW4oKSwgdmFsdWUpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
Qml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudCkpOwpAQCAtNDU3NCw3ICs0NTgxLDcgQEAg
dm9pZCB0ZXN0Qml0d2lzZUNhc3RPbkZsb2F0SW5NZW1vcnkoZmxvYQogICAgIFZhbHVlKiBhZGRy
ZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkRmxvYXQgPSByb290
LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEZsb2F0LCBPcmlnaW4oKSwgYWRk
cmVzcyk7CiAgICAgVmFsdWUqIGNhc3QgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJp
dHdpc2VDYXN0LCBPcmlnaW4oKSwgbG9hZEZsb2F0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0KTsKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FzdCk7CiAKICAgICBD
SEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsICZ2YWx1ZSksIGJp
dHdpc2VfY2FzdDxpbnQzMl90Pih2YWx1ZSkpKTsKIH0KQEAgLTQ1ODUsNyArNDU5Miw3IEBAIHZv
aWQgdGVzdEludDMyQkFyZ1RvRmxvYXRCaXR3aXNlQ2FzdChpbnQKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIwKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdHdpc2VD
YXN0LCBPcmlnaW4oKSwgYXJndW1lbnQpKTsKQEAgLTQ1OTksNyArNDYwNiw3IEBAIHZvaWQgdGVz
dEludDMyQkltbVRvRmxvYXRCaXR3aXNlQ2FzdChpbnQKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxD
b25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSk7CiAKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50KSk7
CkBAIC00NjE0LDcgKzQ2MjEsNyBAQCB2b2lkIHRlc3RUd29CaXR3aXNlQ2FzdE9uSW50MzIoaW50
MzJfdCB2CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFZhbHVl
KiBmaXJzdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdp
bigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHNlY29uZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmaXJzdCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kKTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25k
KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywg
dmFsdWUpLCB2YWx1ZSkpOwogfQpAQCAtNDYyNiw3ICs0NjMzLDcgQEAgdm9pZCB0ZXN0Qml0d2lz
ZUNhc3RPbkludDMySW5NZW1vcnkoaW50MwogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkRmxvYXQgPSByb290LT5hcHBlbmROZXc8TWVt
b3J5VmFsdWU+KHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAgVmFs
dWUqIGNhc3QgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmln
aW4oKSwgbG9hZEZsb2F0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FzdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNh
bChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jLCAmdmFsdWUpLCBiaXR3aXNlX2Nhc3Q8ZmxvYXQ+
KHZhbHVlKSkpOwogfQpAQCAtNDYzNyw3ICs0NjQ0LDcgQEAgdm9pZCB0ZXN0Q29udmVydERvdWJs
ZVRvRmxvYXRBcmcoZG91YmxlIAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiBh
c0Zsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmln
aW4oKSwgYXJndW1lbnQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIGFzRmxvYXQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0Zsb2F0KTsKIAogICAgIENIRUNLKGlzSWRl
bnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsIHZhbHVlKSwgc3RhdGljX2Nhc3Q8Zmxv
YXQ+KHZhbHVlKSkpOwogfQpAQCAtNDY0OCw3ICs0NjU1LDcgQEAgdm9pZCB0ZXN0Q29udmVydERv
dWJsZVRvRmxvYXRJbW0oZG91YmxlIAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91Ymxl
VmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSk7CiAgICAgVmFsdWUqIGFzRmxvYXQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBhcmd1bWVu
dCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgYXNGbG9hdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIGFzRmxvYXQpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGls
ZUFuZFJ1bjxmbG9hdD4ocHJvYyksIHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZSkpKTsKIH0KQEAg
LTQ2NjAsNyArNDY2Nyw3IEBAIHZvaWQgdGVzdENvbnZlcnREb3VibGVUb0Zsb2F0TWVtKGRvdWJs
ZSAKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBNZW1vcnlWYWx1
ZSogbG9hZGVkRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2Fk
LCBEb3VibGUsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogYXNGbG9hdCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIGxvYWRlZERv
dWJsZSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgYXNGbG9hdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIGFzRmxvYXQpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29t
cGlsZUFuZFJ1bjxmbG9hdD4ocHJvYywgJnZhbHVlKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVl
KSkpOwogfQpAQCAtNDY3Myw3ICs0NjgwLDcgQEAgdm9pZCB0ZXN0Q29udmVydEZsb2F0VG9Eb3Vi
bGVBcmcoZmxvYXQgdgogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiBmbG9h
dFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2lu
KCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiBhc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGZsb2F0VmFsdWUpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFzRG91
YmxlKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgYXNEb3VibGUpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxk
b3VibGU+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90Pih2YWx1ZSkpLCBzdGF0aWNfY2FzdDxk
b3VibGU+KHZhbHVlKSkpOwogfQpAQCAtNDY4NCw3ICs0NjkxLDcgQEAgdm9pZCB0ZXN0Q29udmVy
dEZsb2F0VG9Eb3VibGVJbW0oZmxvYXQgdgogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0Rmxv
YXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKTsKICAgICBWYWx1ZSogYXNEb3VibGUgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBhcmd1
bWVudCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgYXNEb3VibGUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBhc0RvdWJsZSk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChj
b21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYyksIHN0YXRpY19jYXN0PGRvdWJsZT4odmFsdWUpKSk7
CiB9CkBAIC00Njk2LDcgKzQ3MDMsNyBAQCB2b2lkIHRlc3RDb252ZXJ0RmxvYXRUb0RvdWJsZU1l
bShmbG9hdCB2CiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVt
b3J5VmFsdWUqIGxvYWRlZEZsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9j
LCBMb2FkLCBGbG9hdCwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBhc0RvdWJsZSA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGxv
YWRlZEZsb2F0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBhc0RvdWJsZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFzRG91YmxlKTsKIAogICAgIENIRUNLKGlzSWRlbnRp
Y2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCAmdmFsdWUpLCBzdGF0aWNfY2FzdDxkb3Vi
bGU+KHZhbHVlKSkpOwogfQpAQCAtNDcwOSw3ICs0NzE2LDcgQEAgdm9pZCB0ZXN0Q29udmVydERv
dWJsZVRvRmxvYXRUb0RvdWJsZVRvRgogICAgIFZhbHVlKiBhc0Zsb2F0ID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAg
IFZhbHVlKiBhc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0Rv
dWJsZSwgT3JpZ2luKCksIGFzRmxvYXQpOwogICAgIFZhbHVlKiBhc0Zsb2F0QWdhaW4gPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBhc0RvdWJs
ZSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgYXNGbG9hdEFnYWluKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgYXNGbG9hdEFnYWluKTsKIAogICAgIENIRUNLKGlzSWRlbnRp
Y2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsIHZhbHVlKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+
KHZhbHVlKSkpOwogfQpAQCAtNDcyNSw3ICs0NzMyLDcgQEAgdm9pZCB0ZXN0TG9hZEZsb2F0Q29u
dmVydERvdWJsZUNvbnZlcnRGbAogICAgIFZhbHVlKiBhc0Zsb2F0QWdhaW4gPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBhc0RvdWJsZSk7CiAg
ICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIGFz
RmxvYXRBZ2FpbiwgZHN0KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAwKSk7CiAKICAgICBmbG9hdCBpbnB1dCA9IHZhbHVlOwogICAgIGZsb2F0IG91dHB1dCA9
IDAuOwpAQCAtNDc0MCw3ICs0NzQ3LDcgQEAgdm9pZCB0ZXN0RnJvdW5kQXJnKGRvdWJsZSB2YWx1
ZSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIGFz
RmxvYXQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdp
bigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIGFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgYXNGbG9hdCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNEb3VibGUp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBhc0RvdWJsZSk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJs
ZT4ocHJvYywgdmFsdWUpLCBzdGF0aWNfY2FzdDxkb3VibGU+KHN0YXRpY19jYXN0PGZsb2F0Pih2
YWx1ZSkpKSk7CiB9CkBAIC00NzUzLDcgKzQ3NjAsNyBAQCB2b2lkIHRlc3RGcm91bmRNZW0oZG91
YmxlIHZhbHVlKQogICAgIE1lbW9yeVZhbHVlKiBsb2FkZWREb3VibGUgPSByb290LT5hcHBlbmRO
ZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIERvdWJsZSwgT3JpZ2luKCksIGFkZHJlc3MpOwog
ICAgIFZhbHVlKiBhc0Zsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVU
b0Zsb2F0LCBPcmlnaW4oKSwgbG9hZGVkRG91YmxlKTsKICAgICBWYWx1ZSogYXNEb3VibGUgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBhc0Zs
b2F0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBhc0RvdWJsZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIGFzRG91YmxlKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNv
bXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCAmdmFsdWUpLCBzdGF0aWNfY2FzdDxkb3VibGU+KHN0
YXRpY19jYXN0PGZsb2F0Pih2YWx1ZSkpKSk7CiB9CkBAIC00NzY0LDcgKzQ3NzEsNyBAQCB2b2lk
IHRlc3RJVG9ENjRBcmcoKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
CiAgICAgVmFsdWUqIHNyYyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBWYWx1ZSogc3JjQXNEb3Vi
bGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBzcmMpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHNyY0FzRG91YmxlKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgc3JjQXNEb3VibGUpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShw
cm9jKTsKICAgICBmb3IgKGF1dG8gdGVzdFZhbHVlIDogaW50NjRPcGVyYW5kcygpKQpAQCAtNDc3
Nyw3ICs0Nzg0LDcgQEAgdm9pZCB0ZXN0SVRvRjY0QXJnKCkKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBzcmMgPSByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAg
ICAgVmFsdWUqIHNyY0FzRmxvYXQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0Ys
IE9yaWdpbigpLCBzcmMpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0KTsKIAogICAgIGF1dG8g
Y29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgZm9yIChhdXRvIHRlc3RWYWx1ZSA6IGludDY0T3Bl
cmFuZHMoKSkKQEAgLTQ3OTEsNyArNDc5OCw3IEBAIHZvaWQgdGVzdElUb0QzMkFyZygpCiAgICAg
VmFsdWUqIHNyYyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiBzcmNBc0RvdWJsZSA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIHNyYyk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNE
b3VibGUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBzcmNBc0RvdWJsZSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwog
ICAgIGZvciAoYXV0byB0ZXN0VmFsdWUgOiBpbnQzMk9wZXJhbmRzKCkpCkBAIC00ODA1LDcgKzQ4
MTIsNyBAQCB2b2lkIHRlc3RJVG9GMzJBcmcoKQogICAgIFZhbHVlKiBzcmMgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApKTsKICAgICBWYWx1ZSogc3JjQXNGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgSVRvRiwgT3JpZ2luKCksIHNyYyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdCk7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXQpOwogCiAg
ICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBmb3IgKGF1dG8gdGVzdFZhbHVlIDog
aW50MzJPcGVyYW5kcygpKQpAQCAtNDgxOSw3ICs0ODI2LDcgQEAgdm9pZCB0ZXN0SVRvRDY0TWVt
KCkKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBNZW1vcnlWYWx1
ZSogbG9hZGVkU3JjID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJ
bnQ2NCwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBzcmNBc0RvdWJsZSA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGxvYWRlZFNyYyk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3Jj
QXNEb3VibGUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBzcmNBc0RvdWJsZSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2Mp
OwogICAgIGludDY0X3QgaW5NZW1vcnlWYWx1ZTsKQEAgLTQ4MzcsNyArNDg0NCw3IEBAIHZvaWQg
dGVzdElUb0Y2NE1lbSgpCiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAg
ICAgTWVtb3J5VmFsdWUqIGxvYWRlZFNyYyA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4o
cHJvYywgTG9hZCwgSW50NjQsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogc3JjQXNG
bG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRiwgT3JpZ2luKCksIGxvYWRl
ZFNyYyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgc3JjQXNGbG9hdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXQpOwogCiAgICAgYXV0byBjb2RlID0gY29t
cGlsZShwcm9jKTsKICAgICBpbnQ2NF90IGluTWVtb3J5VmFsdWU7CkBAIC00ODU1LDcgKzQ4NjIs
NyBAQCB2b2lkIHRlc3RJVG9EMzJNZW0oKQogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkZWRTcmMgPSByb290LT5hcHBlbmROZXc8TWVt
b3J5VmFsdWU+KHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAgVmFs
dWUqIHNyY0FzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmln
aW4oKSwgbG9hZGVkU3JjKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0RvdWJsZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRG91YmxlKTsKIAogICAgIGF1
dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgaW50MzJfdCBpbk1lbW9yeVZhbHVlOwpAQCAt
NDg3Myw3ICs0ODgwLDcgQEAgdm9pZCB0ZXN0SVRvRjMyTWVtKCkKICAgICBWYWx1ZSogYWRkcmVz
cyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BS
SW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBNZW1vcnlWYWx1ZSogbG9hZGVkU3JjID0gcm9vdC0+
YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2luKCksIGFkZHJl
c3MpOwogICAgIFZhbHVlKiBzcmNBc0Zsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBJVG9GLCBPcmlnaW4oKSwgbG9hZGVkU3JjKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0KTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdCk7
CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIGludDMyX3QgaW5NZW1vcnlW
YWx1ZTsKQEAgLTQ4OTAsNyArNDg5Nyw3IEBAIHZvaWQgdGVzdElUb0Q2NEltbShpbnQ2NF90IHZh
bHVlKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUq
IHNyYyA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1
ZSk7CiAgICAgVmFsdWUqIHNyY0FzRmxvYXRpbmdQb2ludCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIHNyYyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdGluZ1BvaW50KTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3Jj
QXNGbG9hdGluZ1BvaW50KTsKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRv
dWJsZT4ocHJvYyksIHN0YXRpY19jYXN0PGRvdWJsZT4odmFsdWUpKSk7CiB9CiAKQEAgLTQ5MDAs
NyArNDkwNyw3IEBAIHZvaWQgdGVzdElUb0Y2NEltbShpbnQ2NF90IHZhbHVlKQogICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHNyYyA9IHJvb3QtPmFw
cGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSk7CiAgICAgVmFsdWUq
IHNyY0FzRmxvYXRpbmdQb2ludCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRiwg
T3JpZ2luKCksIHNyYyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdGluZ1BvaW50KTsKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdGluZ1BvaW50
KTsKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jKSwgc3Rh
dGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlKSkpOwogfQogCkBAIC00OTEwLDcgKzQ5MTcsNyBAQCB2b2lk
IHRlc3RJVG9EMzJJbW0oaW50MzJfdCB2YWx1ZSkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBzcmMgPSByb290LT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpOwogICAgIFZhbHVlKiBzcmNBc0Zsb2F0aW5nUG9p
bnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBzcmMpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHNyY0FzRmxvYXRpbmdQb2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXRpbmdQb2ludCk7CiAgICAgQ0hFQ0soaXNJ
ZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MpLCBzdGF0aWNfY2FzdDxkb3VibGU+
KHZhbHVlKSkpOwogfQogCkBAIC00OTIwLDcgKzQ5MjcsNyBAQCB2b2lkIHRlc3RJVG9GMzJJbW0o
aW50MzJfdCB2YWx1ZSkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwog
ICAgIFZhbHVlKiBzcmMgPSByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgdmFsdWUpOwogICAgIFZhbHVlKiBzcmNBc0Zsb2F0aW5nUG9pbnQgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIElUb0YsIE9yaWdpbigpLCBzcmMpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXRpbmdQ
b2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHNyY0FzRmxvYXRpbmdQb2ludCk7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGls
ZUFuZFJ1bjxmbG9hdD4ocHJvYyksIHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZSkpKTsKIH0KIApA
QCAtNDkzMSw3ICs0OTM4LDcgQEAgdm9pZCB0ZXN0SVRvRFJlZHVjZWRUb0lUb0Y2NEFyZygpCiAg
ICAgVmFsdWUqIHNyYyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBWYWx1ZSogc3JjQXNEb3VibGUg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBzcmMpOwogICAg
IFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91Ymxl
VG9GbG9hdCwgT3JpZ2luKCksIHNyY0FzRG91YmxlKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGZsb2F0UmVz
dWx0KTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgZm9yIChhdXRvIHRl
c3RWYWx1ZSA6IGludDY0T3BlcmFuZHMoKSkKQEAgLTQ5NDYsNyArNDk1Myw3IEBAIHZvaWQgdGVz
dElUb0RSZWR1Y2VkVG9JVG9GMzJBcmcoKQogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAg
IFZhbHVlKiBzcmNBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwg
T3JpZ2luKCksIHNyYyk7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgc3JjQXNEb3VibGUpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGZs
b2F0UmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9j
KTsKICAgICBmb3IgKGF1dG8gdGVzdFZhbHVlIDogaW50MzJPcGVyYW5kcygpKQpAQCAtNDk2NCw3
ICs0OTcxLDcgQEAgdm9pZCB0ZXN0U3RvcmUzMihpbnQgdmFsdWUpCiAgICAgICAgICAgICBwcm9j
LCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZzbG90KSk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgQ0hFQ0soIWNv
bXBpbGVBbmRSdW48aW50Pihwcm9jLCB2YWx1ZSkpOwpAQCAtNDk4MCw3ICs0OTg3LDcgQEAgdm9p
ZCB0ZXN0U3RvcmVDb25zdGFudChpbnQgdmFsdWUpCiAgICAgICAgIHByb2MsIFN0b3JlLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIHZhbHVlKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAmc2xvdCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDAp
KTsKIAogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludD4ocHJvYykpOwpAQCAtNTAwMCw3ICs1
MDA3LDcgQEAgdm9pZCB0ZXN0U3RvcmVDb25zdGFudFB0cihpbnRwdHJfdCB2YWx1ZQogICAgICAg
ICBwcm9jLCBTdG9yZSwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0
clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZzbG90KSk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50Pihw
cm9jKSk7CkBAIC01MDE4LDcgKzUwMjUsNyBAQCB2b2lkIHRlc3RTdG9yZThBcmcoKQogICAgICAg
ICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKIAogICAgICAgICByb290LT5hcHBl
bmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlOCwgT3JpZ2luKCksIHZhbHVlLCBhZGRyZXNz
KTsKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgdmFsdWUpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOwogCiAgICAgICAgIGludDhfdCBzdG9yYWdlID0g
MDsKICAgICAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCA0MiwgJnN0b3Jh
Z2UpID09IDQyKTsKQEAgLTUwMzksNyArNTA0Niw3IEBAIHZvaWQgdGVzdFN0b3JlOEFyZygpCiAg
ICAgICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQs
IE9yaWdpbigpLCBiYXNlRGlzcGxhY2VtZW50LCBvZmZzZXQpOwogCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmU4LCBPcmlnaW4oKSwgdmFsdWUsIGFkZHJl
c3MpOwotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCB2YWx1ZSk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CiAKICAgICAgICAgaW50OF90IHN0b3JhZ2Ug
PSAwOwogICAgICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIDQyLCAmc3Rv
cmFnZSwgMSkgPT0gNDIpOwpAQCAtNTA1Nyw3ICs1MDY0LDcgQEAgdm9pZCB0ZXN0U3RvcmU4SW1t
KCkKICAgICAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZTgsIE9yaWdpbigpLCB2YWx1
ZSwgYWRkcmVzcyk7Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKIAogICAgICAgICBpbnQ4X3Qg
c3RvcmFnZSA9IDA7CiAgICAgICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywg
JnN0b3JhZ2UpID09IDQyKTsKQEAgLTUwNzcsNyArNTA4NCw3IEBAIHZvaWQgdGVzdFN0b3JlOElt
bSgpCiAgICAgICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBBZGQsIE9yaWdpbigpLCBiYXNlRGlzcGxhY2VtZW50LCBvZmZzZXQpOwogCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmU4LCBPcmlnaW4oKSwgdmFsdWUs
IGFkZHJlc3MpOwotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CiAKICAgICAgICAgaW50OF90IHN0
b3JhZ2UgPSAwOwogICAgICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsICZz
dG9yYWdlLCAxKSA9PSA0Mik7CkBAIC01MTI5LDcgKzUxMzYsNyBAQCB2b2lkIHRlc3RTdG9yZVBh
cnRpYWw4Qml0UmVnaXN0ZXJPblg4NigpCiAgICAgLy8gaWYgd2UgdXNlIFg4NiBwYXJ0aWFsIHJl
Z2lzdGVycy4KICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlOCwg
T3JpZ2luKCksIHBhdGNocG9pbnQsIHdoZXJlVG9TdG9yZSk7CiAKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXR1cm5WYWx1ZSk7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
dHVyblZhbHVlKTsKIAogICAgIGludDhfdCBzdG9yYWdlID0gMHhmZjsKICAgICBDSEVDSyhjb21w
aWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIDB4MTIzNDU2NzhhYmNkZWYxMiwgJnN0b3JhZ2UpID09
IDB4MTIzNDU2NzhhYmNkZWYxMik7CkBAIC01MTQ3LDcgKzUxNTQsNyBAQCB2b2lkIHRlc3RTdG9y
ZTE2QXJnKCkKICAgICAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CiAKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZTE2LCBPcmlnaW4o
KSwgdmFsdWUsIGFkZHJlc3MpOwotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CiAKICAgICAgICAg
aW50MTZfdCBzdG9yYWdlID0gLTE7CiAgICAgICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRf
dD4ocHJvYywgNDIsICZzdG9yYWdlKSA9PSA0Mik7CkBAIC01MTY4LDcgKzUxNzUsNyBAQCB2b2lk
IHRlc3RTdG9yZTE2QXJnKCkKICAgICAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGJhc2VEaXNwbGFjZW1lbnQsIG9mZnNldCk7
CiAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZTE2LCBP
cmlnaW4oKSwgdmFsdWUsIGFkZHJlc3MpOwotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CisgICAgICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CiAKICAg
ICAgICAgaW50MTZfdCBzdG9yYWdlID0gLTE7CiAgICAgICAgIENIRUNLKGNvbXBpbGVBbmRSdW48
aW50NjRfdD4ocHJvYywgNDIsICZzdG9yYWdlLCAxKSA9PSA0Mik7CkBAIC01MTg2LDcgKzUxOTMs
NyBAQCB2b2lkIHRlc3RTdG9yZTE2SW1tKCkKICAgICAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMCk7CiAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9j
LCBTdG9yZTE2LCBPcmlnaW4oKSwgdmFsdWUsIGFkZHJlc3MpOwotICAgICAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CisgICAg
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2
YWx1ZSk7CiAKICAgICAgICAgaW50MTZfdCBzdG9yYWdlID0gLTE7CiAgICAgICAgIENIRUNLKGNv
bXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgJnN0b3JhZ2UpID09IDQyKTsKQEAgLTUyMDYsNyAr
NTIxMyw3IEBAIHZvaWQgdGVzdFN0b3JlMTZJbW0oKQogICAgICAgICBWYWx1ZSogYWRkcmVzcyA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYmFzZURpc3BsYWNl
bWVudCwgb2Zmc2V0KTsKIAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHBy
b2MsIFN0b3JlMTYsIE9yaWdpbigpLCB2YWx1ZSwgYWRkcmVzcyk7Ci0gICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKKyAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHZhbHVlKTsKIAogICAgICAgICBpbnQxNl90IHN0b3JhZ2UgPSAtMTsKICAgICAgICAgQ0hFQ0so
Y29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAmc3RvcmFnZSwgMSkgPT0gNDIpOwpAQCAtNTIx
OCw3ICs1MjI1LDcgQEAgdm9pZCB0ZXN0VHJ1bmMoaW50NjRfdCB2YWx1ZSkKIHsKICAgICBQcm9j
ZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKQEAg
LTUyMzEsNyArNTIzOCw3IEBAIHZvaWQgdGVzdEFkZDEoaW50IHZhbHVlKQogewogICAgIFByb2Nl
ZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKQEAgLTUy
NDcsNyArNTI1NCw3IEBAIHZvaWQgdGVzdEFkZDFQdHIoaW50cHRyX3QgdmFsdWUpCiB7CiAgICAg
UHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLApA
QCAtNTI2MSw3ICs1MjY4LDcgQEAgdm9pZCB0ZXN0TmVnMzIoaW50MzJfdCB2YWx1ZSkKIHsKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFN1YiwgT3JpZ2luKCks
CkBAIC01Mjc3LDcgKzUyODQsNyBAQCB2b2lkIHRlc3ROZWdQdHIoaW50cHRyX3QgdmFsdWUpCiB7
CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTdWIsIE9yaWdp
bigpLApAQCAtNTMwMiw3ICs1MzA5LDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkMzIoaW50IGFt
b3VudCkKICAgICAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApKSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNTMyMyw3ICs1MzMwLDcg
QEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkSW1tMzIoaW50IGFtb3VudCkKICAgICAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50MzIsIE9yaWdpbigpLCBz
bG90UHRyKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBhbW91bnQpKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29u
c3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01MzQ2LDcgKzUzNTMsNyBAQCB2
b2lkIHRlc3RTdG9yZUFkZExvYWQ4KGludCBhbW91bnQsIEIzOjpPCiAgICAgICAgICAgICAgICAg
cHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSkp
LAogICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCAwKSk7CiAKQEAgLTUzNjcsNyArNTM3NCw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9h
ZEltbTgoaW50IGFtb3VudCwgQjMKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlW
YWx1ZT4ocHJvYywgbG9hZE9wY29kZSwgT3JpZ2luKCksIHNsb3RQdHIpLAogICAgICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFtb3VudCkpLAog
ICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAwKSk7CiAKQEAgLTUzOTAsNyArNTM5Nyw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9hZDE2
KGludCBhbW91bnQsIEIzOjoKICAgICAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCks
CiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSksCiAgICAgICAgIHNsb3RQdHIpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNTQx
MSw3ICs1NDE4LDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkSW1tMTYoaW50IGFtb3VudCwgQgog
ICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBsb2FkT3Bjb2Rl
LCBPcmlnaW4oKSwgc2xvdFB0ciksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYW1vdW50KSksCiAgICAgICAgIHNsb3RQdHIpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNTQzMiw3
ICs1NDM5LDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkNjQoaW50IGFtb3VudCkKICAgICAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50NjQsIE9yaWdp
bigpLCBzbG90UHRyKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIHNs
b3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsK
IApAQCAtNTQ1Myw3ICs1NDYwLDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkSW1tNjQoaW50NjRf
dCBhbW91bgogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBM
b2FkLCBJbnQ2NCwgT3JpZ2luKCksIHNsb3RQdHIpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFtb3VudCkpLAogICAgICAgICBzbG90
UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAK
QEAgLTU0ODUsNyArNTQ5Miw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9hZDMySW5kZXgoaW50IGFt
b3VudCkKICAgICAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApKSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNTUxNSw3ICs1NTIyLDcg
QEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkSW1tMzJJbmRleChpbnQgYW1vdQogICAgICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2luKCks
IHNsb3RQdHIpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIGFtb3VudCkpLAogICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTU1NDcsNyArNTU1NCw3IEBA
IHZvaWQgdGVzdFN0b3JlQWRkTG9hZDhJbmRleChpbnQgYW1vdW50LCAKICAgICAgICAgICAgICAg
ICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjAp
KSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDApKTsKIApAQCAtNTU3Nyw3ICs1NTg0LDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRM
b2FkSW1tOEluZGV4KGludCBhbW91bgogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9y
eVZhbHVlPihwcm9jLCBsb2FkT3Bjb2RlLCBPcmlnaW4oKSwgc2xvdFB0ciksCiAgICAgICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYW1vdW50KSks
CiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIDApKTsKIApAQCAtNTYwOSw3ICs1NjE2LDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2Fk
MTZJbmRleChpbnQgYW1vdW50LAogICAgICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4o
KSwKICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpKSwKICAgICAgICAgc2xvdFB0cik7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01
NjM5LDcgKzU2NDYsNyBAQCB2b2lkIHRlc3RTdG9yZUFkZExvYWRJbW0xNkluZGV4KGludCBhbW91
CiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIGxvYWRPcGNv
ZGUsIE9yaWdpbigpLCBzbG90UHRyKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhbW91bnQpKSwKICAgICAgICAgc2xvdFB0cik7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01NjY5
LDcgKzU2NzYsNyBAQCB2b2lkIHRlc3RTdG9yZUFkZExvYWQ2NEluZGV4KGludCBhbW91bnQpCiAg
ICAgICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDY0
LCBPcmlnaW4oKSwgc2xvdFB0ciksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAg
ICAgICBzbG90UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCAwKSk7CiAKQEAgLTU2OTksNyArNTcwNiw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9hZEltbTY0
SW5kZXgoaW50NjRfdCAKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4o
cHJvYywgTG9hZCwgSW50NjQsIE9yaWdpbigpLCBzbG90UHRyKSwKICAgICAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhbW91bnQpKSwKICAgICAg
ICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
MCkpOwogCkBAIC01NzIzLDcgKzU3MzAsNyBAQCB2b2lkIHRlc3RTdG9yZVN1YkxvYWQoaW50IGFt
b3VudCkKICAgICAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApKSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNTc1MCw3ICs1NzU3LDcg
QEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkSW50ZXJmZXJlbmNlKGludCBhbQogICAgICAgICAgICAg
cHJvYywgQWRkLCBPcmlnaW4oKSwKICAgICAgICAgICAgIGxvYWQsIHJvb3QtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhbW91bnQpKSwKICAgICAgICAgc2xvdFB0cik7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01
Nzc0LDcgKzU3ODEsNyBAQCB2b2lkIHRlc3RTdG9yZUFkZEFuZExvYWQoaW50IGFtb3VudCwgaW50
CiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIGFtb3VudCkpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIG1hc2spKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01Nzk5LDcgKzU4MDYs
NyBAQCB2b2lkIHRlc3RTdG9yZU5lZ0xvYWQzMihpbnQzMl90IHZhbHVlKQogICAgICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2luKCks
IHNsb3RQdHIpKSwKICAgICAgICAgc2xvdFB0cik7CiAgICAgCi0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50MzJfdD4o
cHJvYykpOwpAQCAtNTgyMyw3ICs1ODMwLDcgQEAgdm9pZCB0ZXN0U3RvcmVOZWdMb2FkUHRyKGlu
dHB0cl90IHZhbHVlKQogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihw
cm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwgc2xvdFB0cikpLAogICAgICAgICBz
bG90UHRyKTsKICAgICAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAK
ICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jKSk7CkBAIC01ODM0LDcgKzU4
NDEsNyBAQCB2b2lkIHRlc3RBZGQxVW5jb21tdXRlZChpbnQgdmFsdWUpCiB7CiAgICAgUHJvY2Vk
dXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAtNTg1
Miw3ICs1ODU5LDcgQEAgdm9pZCB0ZXN0TG9hZE9mZnNldCgpCiAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBpbnQgYXJyYXlbXSA9IHsgMSwgMiB9OwogICAgIENv
bnN0UHRyVmFsdWUqIGFycmF5UHRyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBhcnJheSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgQWRkLCBPcmlnaW4oKSwKQEAgLTU4NjgsNyArNTg3NSw3IEBAIHZvaWQgdGVzdExvYWRP
ZmZzZXROb3RDb25zdGFudCgpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKICAgICBpbnQgYXJyYXlbXSA9IHsgMSwgMiB9OwogICAgIFZhbHVlKiBhcnJheVB0ciA9IHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBB
ZGQsIE9yaWdpbigpLApAQCAtNTg4NCw3ICs1ODkxLDcgQEAgdm9pZCB0ZXN0TG9hZE9mZnNldFVz
aW5nQWRkKCkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIGlu
dCBhcnJheVtdID0geyAxLCAyIH07CiAgICAgQ29uc3RQdHJWYWx1ZSogYXJyYXlQdHIgPSByb290
LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFycmF5KTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAtNTky
NSw3ICs1OTMyLDcgQEAgdm9pZCB0ZXN0TG9hZE9mZnNldFVzaW5nQWRkSW50ZXJmZXJlbmNlKAog
ICAgICAgICBwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHRoZU51bWJlck9mVGhlQmVhc3QsIG90aGVy
QXJyYXlQdHIsIDApOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAg
IHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgdGhlTnVtYmVyT2ZUaGVCZWFzdCwgb3RoZXJBcnJheVB0
ciwgc2l6ZW9mKGludCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IEFkZCwgT3JpZ2luKCksIGxlZnQsIHJpZ2h0KSk7CkBAIC01OTQxLDcgKzU5NDgsNyBAQCB2b2lk
IHRlc3RMb2FkT2Zmc2V0VXNpbmdBZGROb3RDb25zdGFudCgpCiAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBpbnQgYXJyYXlbXSA9IHsgMSwgMiB9OwogICAgIFZh
bHVlKiBhcnJheVB0ciA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAtNTk3Nyw3ICs1OTg0LDcgQEAgdm9p
ZCB0ZXN0TG9hZEFkZHJTaGlmdCh1bnNpZ25lZCBzaGlmdCkKIAogICAgICpzbG90ID0gODY3NTMw
OTsKICAgICAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBM
b2FkLCBJbnQzMiwgT3JpZ2luKCksCkBAIC01OTkzLDcgKzYwMDAsNyBAQCB2b2lkIHRlc3RGcmFt
ZVBvaW50ZXIoKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZyYW1lUG9pbnRl
ciwgT3JpZ2luKCkpKTsKIApAQCAtNjAxNiw3ICs2MDIzLDcgQEAgdm9pZCB0ZXN0T3ZlcnJpZGVG
cmFtZVBvaW50ZXIoKQogICAgICAgICBWYWx1ZSogZnAgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEZyYW1lUG9pbnRlciwgT3JpZ2luKCkpOwogICAgICAgICBWYWx1ZSogcmVzdWx0ID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBmcCwgb2Zmc2V0KTsK
IAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1
bjxpbnQ2NF90Pihwcm9jLCAxKSk7CiAgICAgfQogICAgIHsKQEAgLTYwMzIsNyArNjAzOSw3IEBA
IHZvaWQgdGVzdE92ZXJyaWRlRnJhbWVQb2ludGVyKCkKICAgICAgICAgVmFsdWUqIG9mZnNldEFy
ZyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgb2Zmc2V0LCBh
cmcpOwogICAgICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBBZGQsIE9yaWdpbigpLCBvZmZzZXRBcmcsIG9mZnNldEZQKTsKIAotICAgICAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwor
ICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0KTsKICAgICAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAx
LCAyKSk7CiAgICAgfQogfQpAQCAtNjA0MSw3ICs2MDQ4LDcgQEAgdm9pZCB0ZXN0U3RhY2tTbG90
KCkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFNsb3RCYXNlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBw
cm9jLmFkZFN0YWNrU2xvdCgxKSkpOwogCkBAIC02MDU0LDcgKzYwNjEsNyBAQCB2b2lkIHRlc3RM
b2FkRnJvbUZyYW1lUG9pbnRlcigpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4o
CiAgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwKQEAgLTYw
ODEsNyArNjA4OCw3IEBAIHZvaWQgdGVzdFN0b3JlTG9hZFN0YWNrU2xvdChpbnQgdmFsdWUpCiAg
ICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICBzdGFjayk7CiAgICAgCi0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwgc3RhY2sp
KTsKIApAQCAtNjExNiw3ICs2MTIzLDcgQEAgdm9pZCB0ZXN0TG9hZChCMzo6T3Bjb2RlIG9wY29k
ZSwgSW5wdXRUeQogICAgICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICAgICAgCi0gICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBvcGNvZGUsIHR5cGUs
IE9yaWdpbigpLApAQCAtNjEzMCw3ICs2MTM3LDcgQEAgdm9pZCB0ZXN0TG9hZChCMzo6T3Bjb2Rl
IG9wY29kZSwgSW5wdXRUeQogICAgICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICAgICAgCi0gICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBvcGNvZGUs
IHR5cGUsIE9yaWdpbigpLApAQCAtNjE0NCw3ICs2MTUxLDcgQEAgdm9pZCB0ZXN0TG9hZChCMzo6
T3Bjb2RlIG9wY29kZSwgSW5wdXRUeQogICAgICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICAgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICAgICAgCi0gICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBv
cGNvZGUsIHR5cGUsIE9yaWdpbigpLApAQCAtNjE1OSw3ICs2MTY2LDcgQEAgdm9pZCB0ZXN0TG9h
ZChCMzo6T3Bjb2RlIG9wY29kZSwgSW5wdXRUeQogICAgICAgICBQcm9jZWR1cmUgcHJvYzsKICAg
ICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgICAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgb3Bj
b2RlLCB0eXBlLCBPcmlnaW4oKSwKQEAgLTYxNzksNyArNjE4Niw3IEBAIHZvaWQgdGVzdExvYWQo
QjM6Ok9wY29kZSBvcGNvZGUsIElucHV0VHkKICAgICAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAg
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICBy
b290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIG9wY29k
ZSwgdHlwZSwgT3JpZ2luKCksCkBAIC02MjE5LDcgKzYyMjYsNyBAQCB2b2lkIHRlc3RTdG9yZUZs
b2F0KGRvdWJsZSBpbnB1dCkKICAgICAgICAgVmFsdWUqIGRlc3RpbmF0aW9uQWRkcmVzcyA9IHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKTsKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9j
LCBTdG9yZSwgT3JpZ2luKCksIGFyZ3VtZW50QXNGbG9hdCwgZGVzdGluYXRpb25BZGRyZXNzKTsK
IAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkp
OworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsK
IAogICAgICAgICBmbG9hdCBvdXRwdXQgPSAwLjsKICAgICAgICAgQ0hFQ0soIWNvbXBpbGVBbmRS
dW48aW50NjRfdD4ocHJvYywgaW5wdXQsICZvdXRwdXQpKTsKQEAgLTYyNDMsNyArNjI1MCw3IEBA
IHZvaWQgdGVzdFN0b3JlRmxvYXQoZG91YmxlIGlucHV0KQogCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCBhcmd1bWVudEFzRmxvYXQs
IGRlc3RpbmF0aW9uQWRkcmVzcyk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICAgICAgZmxvYXQgb3V0cHV0ID0gMC47CiAgICAg
ICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIGlucHV0LCAmb3V0cHV0IC0g
MSwgMSkpOwpAQCAtNjI2Myw3ICs2MjcwLDcgQEAgdm9pZCB0ZXN0U3RvcmVEb3VibGVDb25zdGFu
dEFzRmxvYXQoZG91YgogCiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBT
dG9yZSwgT3JpZ2luKCksIHZhbHVlQXNGbG9hdCwgZGVzdGluYXRpb25BZGRyZXNzKTsKIAotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJv
b3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBmbG9hdCBv
dXRwdXQgPSAwLjsKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCBpbnB1
dCwgJm91dHB1dCkpOwpAQCAtNjI4OSw3ICs2Mjk2LDcgQEAgdm9pZCB0ZXN0U3BpbGxHUCgpCiAg
ICAgZm9yIChWYWx1ZSogdmFsdWUgOiBzb3VyY2VzKQogICAgICAgICB0b3RhbCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgdG90YWwsIHZhbHVlKTsKIAotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHRv
dGFsKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgdG90YWwpOwogICAgIGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAxLCAyKTsKIH0KIApA
QCAtNjMxMiw3ICs2MzE5LDcgQEAgdm9pZCB0ZXN0U3BpbGxGUCgpCiAgICAgZm9yIChWYWx1ZSog
dmFsdWUgOiBzb3VyY2VzKQogICAgICAgICB0b3RhbCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQWRkLCBPcmlnaW4oKSwgdG90YWwsIHZhbHVlKTsKIAotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHRvdGFsKTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdG90YWwpOwog
ICAgIGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCAxLjEsIDIuNSk7CiB9CiAKQEAgLTYzMjgs
NyArNjMzNSw3IEBAIHZvaWQgdGVzdEludDMyVG9Eb3VibGVQYXJ0aWFsUmVnaXN0ZXJTdGEKICAg
ICBWYWx1ZSogY291bnRlciA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBVcHNpbG9uVmFsdWUqIG9y
aWdpbmFsVG90YWwgPSByb290LT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgdG90YWwpOwogICAgIFVwc2lsb25WYWx1ZSogb3JpZ2luYWxDb3VudGVyID0gcm9vdC0+YXBw
ZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGNvdW50ZXIpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVk
QmxvY2sobG9vcCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1w
LCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3ApKTsKIAogICAgIC8vIExvb3AuCiAgICAg
VmFsdWUqIGxvb3BDb3VudGVyID0gbG9vcC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBQaGksIElu
dDY0LCBPcmlnaW4oKSk7CkBAIC02MzQ1LDEzICs2MzUyLDEzIEBAIHZvaWQgdGVzdEludDMyVG9E
b3VibGVQYXJ0aWFsUmVnaXN0ZXJTdGEKICAgICBWYWx1ZSogZGVjQ291bnRlciA9IGxvb3AtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgbG9vcENvdW50ZXIsIGxvb3AtPmFw
cGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAgICAgVXBzaWxvblZh
bHVlKiBkZWNDb3VudGVyVXBzaWxvbiA9IGxvb3AtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBkZWNDb3VudGVyKTsKICAgICBkZWNDb3VudGVyVXBzaWxvbi0+c2V0UGhp
KGxvb3BDb3VudGVyKTsKLSAgICBsb29wLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBs
b29wLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2lu
KCksCiAgICAgICAgIGRlY0NvdW50ZXIsCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhsb29wKSwg
RnJlcXVlbnRlZEJsb2NrKGRvbmUpKTsKIAogICAgIC8vIFRhaWwuCi0gICAgZG9uZS0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdXBkYXRlZFRvdGFsKTsK
KyAgICBkb25lLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
dXBkYXRlZFRvdGFsKTsKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJs
ZT4ocHJvYywgMTAwMDAwKSwgNTAwMDA1MDAwMC4pKTsKIH0KIApAQCAtNjM3MSw3ICs2Mzc4LDcg
QEAgdm9pZCB0ZXN0SW50MzJUb0RvdWJsZVBhcnRpYWxSZWdpc3RlcldpdAogICAgIFZhbHVlKiBm
b3JQYWRkaW5nSW5wdXRBZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAmZm9yUGFkZGluZ0lucHV0KTsKICAgICB1aW50NjRfdCBmb3JQYWRkaW5n
T3V0cHV0OwogICAgIFZhbHVlKiBmb3JQYWRkaW5nT3V0cHV0QWRkcmVzcyA9IHJvb3QtPmFwcGVu
ZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJmZvclBhZGRpbmdPdXRwdXQpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBG
cmVxdWVudGVkQmxvY2sobG9vcCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3ApKTsKIAogICAgIC8vIExv
b3AuCiAgICAgVmFsdWUqIGxvb3BDb3VudGVyID0gbG9vcC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBQaGksIEludDY0LCBPcmlnaW4oKSk7CkBAIC02NDA1LDEzICs2NDEyLDEzIEBAIHZvaWQgdGVz
dEludDMyVG9Eb3VibGVQYXJ0aWFsUmVnaXN0ZXJXaXQKICAgICBWYWx1ZSogZGVjQ291bnRlciA9
IGxvb3AtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgbG9vcENvdW50ZXIs
IGxvb3AtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAgICAg
VXBzaWxvblZhbHVlKiBkZWNDb3VudGVyVXBzaWxvbiA9IGxvb3AtPmFwcGVuZE5ldzxVcHNpbG9u
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBkZWNDb3VudGVyKTsKICAgICBkZWNDb3VudGVyVXBzaWxv
bi0+c2V0UGhpKGxvb3BDb3VudGVyKTsKLSAgICBsb29wLT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICBsb29wLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5j
aCwgT3JpZ2luKCksCiAgICAgICAgIGRlY0NvdW50ZXIsCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9j
ayhsb29wKSwgRnJlcXVlbnRlZEJsb2NrKGRvbmUpKTsKIAogICAgIC8vIFRhaWwuCi0gICAgZG9u
ZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdXBkYXRl
ZFRvdGFsKTsKKyAgICBkb25lLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgdXBkYXRlZFRvdGFsKTsKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5k
UnVuPGRvdWJsZT4ocHJvYywgMTAwMDAwKSwgNTAwMDA1MDAwMC4pKTsKIH0KIApAQCAtNjQyMiwx
OCArNjQyOSwxOCBAQCB2b2lkIHRlc3RCcmFuY2goKQogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNl
ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRC
bG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgVHJ1bmMs
IE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAgRnJlcXVl
bnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0
aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
dGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAK
LSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAw
KSk7CiAKQEAgLTY0NDksMTYgKzY0NTYsMTYgQEAgdm9pZCB0ZXN0QnJhbmNoUHRyKCkKICAgICBC
YXNpY0Jsb2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBl
bHNlQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
QnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApLAogICAgICAgICBGcmVx
dWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAg
IHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsK
IAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IDApKTsKIApAQCAtNjQ3NSw3ICs2NDgyLDcgQEAgdm9pZCB0ZXN0RGlhbW9uZCgpCiAgICAgQmFz
aWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZG9u
ZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNo
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIFRydW5jLCBPcmlnaW4oKSwKQEAgLTY0ODQsMTYgKzY0OTEsMTYgQEAgdm9pZCB0ZXN0
RGlhbW9uZCgpCiAKICAgICBVcHNpbG9uVmFsdWUqIHRoZW5SZXN1bHQgPSB0aGVuQ2FzZS0+YXBw
ZW5kTmV3PFVwc2lsb25WYWx1ZT4oCiAgICAgICAgIHByb2MsIE9yaWdpbigpLCB0aGVuQ2FzZS0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKLSAgICB0aGVuQ2Fz
ZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50
ZWRCbG9jayhkb25lKSk7CisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRvbmUpKTsKIAogICAgIFVwc2lsb25W
YWx1ZSogZWxzZVJlc3VsdCA9IGVsc2VDYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPigKICAg
ICAgICAgcHJvYywgT3JpZ2luKCksIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgMCkpOwotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRvbmUpKTsKKyAgICBlbHNl
Q2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVu
dGVkQmxvY2soZG9uZSkpOwogCiAgICAgVmFsdWUqIHBoaSA9IGRvbmUtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgUGhpLCBJbnQzMiwgT3JpZ2luKCkpOwogICAgIHRoZW5SZXN1bHQtPnNldFBoaShw
aGkpOwogICAgIGVsc2VSZXN1bHQtPnNldFBoaShwaGkpOwotICAgIGRvbmUtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBoaSk7CisgICAgZG9uZS0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBoaSk7CiAKICAgICBh
dXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIENIRUNLKGludm9rZTxpbnQ+KCpjb2RlLCA0
MikgPT0gMSk7CkBAIC02NTA3LDcgKzY1MTQsNyBAQCB2b2lkIHRlc3RCcmFuY2hOb3RFcXVhbCgp
CiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNC
bG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
CiAgICAgICAgICAgICBwcm9jLCBOb3RFcXVhbCwgT3JpZ2luKCksCkBAIC02NTE3LDExICs2NTI0
LDExIEBAIHZvaWQgdGVzdEJyYW5jaE5vdEVxdWFsKCkKICAgICAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSksCiAgICAgICAgIEZyZXF1ZW50
ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhl
bkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRo
ZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0g
ICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkp
OwogCkBAIC02NTM3LDcgKzY1NDQsNyBAQCB2b2lkIHRlc3RCcmFuY2hOb3RFcXVhbENvbW11dGUo
KQogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2lj
QmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgTm90RXF1YWwsIE9yaWdpbigpLApAQCAtNjU0NywxMSArNjU1
NCwxMSBAQCB2b2lkIHRlc3RCcmFuY2hOb3RFcXVhbENvbW11dGUoKQogICAgICAgICAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIwKSkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBG
cmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNjU2Nyw3ICs2NTc0
LDcgQEAgdm9pZCB0ZXN0QnJhbmNoTm90RXF1YWxOb3RFcXVhbCgpCiAgICAgQmFzaWNCbG9jayog
dGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBw
cm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBOb3RFcXVhbCwgT3JpZ2luKCksCkBAIC02NTgwLDExICs2NTg3LDExIEBAIHZvaWQgdGVzdEJy
YW5jaE5vdEVxdWFsTm90RXF1YWwoKQogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRo
ZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKLSAgICBlbHNlQ2Fz
ZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNh
c2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTY2
MDAsNyArNjYwNyw3IEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsKCkKICAgICBCYXNpY0Jsb2NrKiB0
aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHBy
b2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IEVxdWFsLCBPcmlnaW4oKSwKQEAgLTY2MTAsMTEgKzY2MTcsMTEgQEAgdm9pZCB0ZXN0QnJhbmNo
RXF1YWwoKQogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDApKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVl
bnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMy
VmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKQEAgLTY2MzAsNyArNjYzNyw3IEBA
IHZvaWQgdGVzdEJyYW5jaEVxdWFsRXF1YWwoKQogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0g
cHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9j
aygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgRXF1YWwsIE9y
aWdpbigpLApAQCAtNjY0MywxMSArNjY1MCwxMSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbEVxdWFs
KCkKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAwKSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRC
bG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC02NjYzLDcgKzY2NzAsNyBAQCB2b2lk
IHRlc3RCcmFuY2hFcXVhbENvbW11dGUoKQogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJv
Yy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygp
OwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgRXF1YWwsIE9yaWdp
bigpLApAQCAtNjY3MywxMSArNjY4MCwxMSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbENvbW11dGUo
KQogICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSkpLAogICAgICAgICBGcmVxdWVudGVk
QmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5D
YXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVu
Q2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAotICAg
IGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsK
IApAQCAtNjY5Myw3ICs2NzAwLDcgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxFcXVhbDEoKQogICAg
IEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sq
IGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgRXF1YWwsIE9yaWdpbigpLApAQCAtNjcwNiwxMSArNjcxMywxMSBAQCB2
b2lkIHRlc3RCcmFuY2hFcXVhbEVxdWFsMSgpCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpLAogICAgICAgICBGcmVxdWVudGVkQmxv
Y2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNl
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2Fz
ZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAotICAgIGVs
c2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBl
bHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIApA
QCAtNjcyOCw3ICs2NzM1LDcgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJlZEFyZ3Mo
ZG91YgogCiAgICAgVmFsdWUqIGFyZ3VtZW50QSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1
ZSogYXJndW1lbnRCID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjEpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIEVxdWFsT3JVbm9yZGVyZWQsIE9yaWdpbigpLApAQCAtNjczNiwxMSAr
Njc0MywxMSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVkQXJncyhkb3ViCiAgICAg
ICAgICAgICBhcmd1bWVudEIpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBG
cmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMTMpKTsKIApAQCAtNjc2MCw3ICs2
NzY3LDcgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJlZEFyZ3MoZmxvYQogICAgIFZh
bHVlKiBhcmd1bWVudEIgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQs
IEZsb2F0LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKTsKIAotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEVxdWFsT3JVbm9yZGVyZWQsIE9yaWdpbigp
LApAQCAtNjc2OCwxMSArNjc3NSwxMSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVk
QXJncyhmbG9hCiAgICAgICAgICAgICBhcmd1bWVudEIpLAogICAgICAgICBGcmVxdWVudGVkQmxv
Y2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNl
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2Fz
ZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7CiAKLSAgICBl
bHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
ZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMTMpKTsK
IApAQCAtNjc5NywxNiArNjgwNCwxNiBAQCB2b2lkIHRlc3RCcmFuY2hOb3RFcXVhbEFuZE9yZGVy
ZWRBcmdzKGRvCiAgICAgICAgIHByb2MsIEVxdWFsLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApLAogICAgICAgICBlcXVh
bE9yVW5vcmRlcmVkKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2lu
KCksCiAgICAgICAgIG5vdEVxdWFsQW5kT3JkZXJlZCwKICAgICAgICAgRnJlcXVlbnRlZEJsb2Nr
KHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2Ut
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwogCi0gICAgZWxz
ZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVs
c2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTEzKSk7CiAK
QEAgLTY4MzMsMTYgKzY4NDAsMTYgQEAgdm9pZCB0ZXN0QnJhbmNoTm90RXF1YWxBbmRPcmRlcmVk
QXJncyhmbAogICAgICAgICBwcm9jLCBFcXVhbCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSwKICAgICAgICAgZXF1YWxP
clVub3JkZXJlZCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigp
LAogICAgICAgICBub3RFcXVhbEFuZE9yZGVyZWQsCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0
aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpKTsKIAotICAgIGVsc2VD
YXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNl
Q2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xMykpOwogCkBA
IC02ODU5LDcgKzY4NjYsNyBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVkRG91Ymxl
QXJnCiAKICAgICBWYWx1ZSogYXJndW1lbnRBID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVl
KiBhcmd1bWVudEIgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIGIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEVxdWFs
T3JVbm9yZGVyZWQsIE9yaWdpbigpLApAQCAtNjg2NywxMSArNjg3NCwxMSBAQCB2b2lkIHRlc3RC
cmFuY2hFcXVhbE9yVW5vcmRlcmVkRG91YmxlQXJnCiAgICAgICAgICAgICBhcmd1bWVudEIpLAog
ICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNh
c2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVu
Q2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIDQyKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAtMTMpKTsKIApAQCAtNjg5MCw3ICs2ODk3LDcgQEAgdm9pZCB0ZXN0QnJh
bmNoRXF1YWxPclVub3JkZXJlZEZsb2F0QXJnSQogICAgICAgICByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwog
ICAgIFZhbHVlKiBhcmd1bWVudEIgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgYik7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBw
cm9jLCBFcXVhbE9yVW5vcmRlcmVkLCBPcmlnaW4oKSwKQEAgLTY4OTgsMTEgKzY5MDUsMTEgQEAg
dm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJlZEZsb2F0QXJnSQogICAgICAgICAgICAgYXJn
dW1lbnRCKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJs
b2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCA0MikpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTEzKSk7CiAKQEAgLTY5MTksNyArNjkyNiw3IEBAIHZv
aWQgdGVzdEJyYW5jaEVxdWFsT3JVbm9yZGVyZWREb3VibGVJbW0KIAogICAgIFZhbHVlKiBhcmd1
bWVudEEgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IGEpOwogICAgIFZhbHVlKiBhcmd1bWVudEIgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJh
bmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIEVxdWFsT3JVbm9yZGVyZWQsIE9yaWdpbigpLApAQCAtNjkyNywxMSArNjkzNCwx
MSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVkRG91YmxlSW1tCiAgICAgICAgICAg
ICBhcmd1bWVudEIpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVu
dGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMTMpKTsKIApAQCAtNjk0OSw3ICs2OTU2LDcg
QEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJlZEZsb2F0SW1tcwogICAgIFZhbHVlKiBh
cmd1bWVudEEgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgYSk7CiAgICAgVmFsdWUqIGFyZ3VtZW50QiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
QnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIEVxdWFsT3JVbm9yZGVyZWQsIE9yaWdpbigpLApAQCAtNjk1NywxMSArNjk2
NCwxMSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVkRmxvYXRJbW1zCiAgICAgICAg
ICAgICBhcmd1bWVudEIpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVx
dWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMTMpKTsKIApAQCAtNjk4Myw3ICs2OTkw
LDcgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJlZEZsb2F0V2l0aAogICAgIFZhbHVl
KiBhcmd1bWVudDFBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRU
b0RvdWJsZSwgT3JpZ2luKCksIGFyZ3VtZW50MSk7CiAgICAgVmFsdWUqIGFyZ3VtZW50MkFzRG91
YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4o
KSwgYXJndW1lbnQyKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IEVxdWFsT3JVbm9yZGVyZWQsIE9yaWdpbigpLApAQCAtNjk5MSwxMSArNjk5OCwxMSBAQCB2b2lk
IHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVkRmxvYXRXaXRoCiAgICAgICAgICAgICBhcmd1bWVu
dDJBc0RvdWJsZSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50
ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xMykpOwogCkBAIC03MDEwLDE2ICs3MDE3LDE2
IEBAIHZvaWQgdGVzdEJyYW5jaEZvbGQoaW50IHZhbHVlKQogICAgIEJhc2ljQmxvY2sqIHRoZW5D
YXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5h
ZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
dmFsdWUpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxv
Y2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNzAzNCwyMyArNzA0MSwyMyBAQCB2b2lk
IHRlc3REaWFtb25kRm9sZChpbnQgdmFsdWUpCiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBw
cm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZG9uZSA9IHByb2MuYWRkQmxvY2soKTsK
IAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKSwKICAg
ICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNl
KSk7CiAKICAgICBVcHNpbG9uVmFsdWUqIHRoZW5SZXN1bHQgPSB0aGVuQ2FzZS0+YXBwZW5kTmV3
PFVwc2lsb25WYWx1ZT4oCiAgICAgICAgIHByb2MsIE9yaWdpbigpLCB0aGVuQ2FzZS0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKLSAgICB0aGVuQ2FzZS0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9j
ayhkb25lKSk7CisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1w
LCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRvbmUpKTsKIAogICAgIFVwc2lsb25WYWx1ZSog
ZWxzZVJlc3VsdCA9IGVsc2VDYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPigKICAgICAgICAg
cHJvYywgT3JpZ2luKCksIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgMCkpOwotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRvbmUpKTsKKyAgICBlbHNlQ2FzZS0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxv
Y2soZG9uZSkpOwogCiAgICAgVmFsdWUqIHBoaSA9IGRvbmUtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgUGhpLCBJbnQzMiwgT3JpZ2luKCkpOwogICAgIHRoZW5SZXN1bHQtPnNldFBoaShwaGkpOwog
ICAgIGVsc2VSZXN1bHQtPnNldFBoaShwaGkpOwotICAgIGRvbmUtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBoaSk7CisgICAgZG9uZS0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBoaSk7CiAKICAgICBDSEVDSyhj
b21waWxlQW5kUnVuPGludD4ocHJvYykgPT0gISF2YWx1ZSk7CiB9CkBAIC03MDYyLDcgKzcwNjks
NyBAQCB2b2lkIHRlc3RCcmFuY2hOb3RFcXVhbEZvbGRQdHIoaW50cHRyX3QgCiAgICAgQmFzaWNC
bG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNh
c2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5j
aCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBOb3RFcXVhbCwgT3JpZ2luKCksCkBAIC03MDcwLDExICs3MDc3LDExIEBAIHZvaWQg
dGVzdEJyYW5jaE5vdEVxdWFsRm9sZFB0cihpbnRwdHJfdCAKICAgICAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpLAogICAgICAgICBGcmVx
dWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAg
IHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsK
IAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IDApKTsKIApAQCAtNzA4OCw3ICs3MDk1LDcgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxGb2xkUHRy
KGludHB0cl90IHZhbAogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygp
OwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgRXF1YWwsIE9yaWdpbigpLApAQCAtNzA5
NiwxMSArNzEwMywxMSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbEZvbGRQdHIoaW50cHRyX3QgdmFs
CiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDApKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJs
b2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMy
VmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTcxMTQsMTggKzcxMjEsMTggQEAgdm9p
ZCB0ZXN0QnJhbmNoTG9hZFB0cigpCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFk
ZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2lu
dGVyVHlwZSgpLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAg
ICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkp
OwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNl
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgMSkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVs
c2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgMCkpOwogCkBAIC03MTQ0LDE4ICs3MTUxLDE4IEBAIHZvaWQgdGVzdEJyYW5jaExv
YWQzMigpCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAg
QmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxN
ZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2luKCksCiAg
ICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhl
bkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VDYXNl
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2Fz
ZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNzE3
NCwxOCArNzE4MSwxOCBAQCB2b2lkIHRlc3RCcmFuY2hMb2FkOFMoKQogICAgIEJhc2ljQmxvY2sq
IHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0g
cHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgTG9hZDhTLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSks
CiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNl
Q2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRo
ZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC03MjA0LDE4ICs3MjExLDE4IEBAIHZvaWQgdGVzdEJy
YW5jaExvYWQ4WigpCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7
CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkOFosIE9yaWdpbigpLAog
ICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRo
ZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKLSAgICBlbHNlQ2Fz
ZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNh
c2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTcy
MzQsMTggKzcyNDEsMTggQEAgdm9pZCB0ZXN0QnJhbmNoTG9hZDE2UygpCiAgICAgQmFzaWNCbG9j
ayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2Ug
PSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBMb2FkMTZTLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIw
KSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhl
bHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC03MjY0LDE4ICs3MjcxLDE4IEBAIHZvaWQgdGVz
dEJyYW5jaExvYWQxNlooKQogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9j
aygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZDE2WiwgT3JpZ2lu
KCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICBGcmVxdWVudGVkQmxv
Y2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNl
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2Fz
ZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVs
c2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBl
bHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApA
QCAtNzI5NSw3ICs3MzAyLDcgQEAgdm9pZCB0ZXN0QnJhbmNoOFdpdGhMb2FkOFpJbmRleCgpCiAg
ICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKICAgICBpbnQgbG9n
U2NhbGUgPSAxOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEFib3Zl
LCBPcmlnaW4oKSwKQEAgLTczMTEsMTEgKzczMTgsMTEgQEAgdm9pZCB0ZXN0QnJhbmNoOFdpdGhM
b2FkOFpJbmRleCgpCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgMjUwKSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSks
IEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC03MzU3LDcgKzcz
NjQsNyBAQCB2b2lkIHRlc3RDb21wbGV4KHVuc2lnbmVkIG51bVZhcnMsIHVuc2lnCiAgICAgICAg
ICAgICBCYXNpY0Jsb2NrKiBlbHNlQmxvY2sgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgICAgICAg
ICBCYXNpY0Jsb2NrKiBjb250aW51YXRpb24gPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICAgICAg
ICAgIGN1cnJlbnQtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICAgICAgY3VycmVu
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgICAgIHByb2MsIEJyYW5jaCwg
T3JpZ2luKCksIHZhcnNbcHJlZGljYXRlVmFySW5kZXhdLAogICAgICAgICAgICAgICAgIEZyZXF1
ZW50ZWRCbG9jayh0aGVuQmxvY2spLCBGcmVxdWVudGVkQmxvY2soZWxzZUJsb2NrKSk7CiAKQEAg
LTczNjYsMTQgKzczNzMsMTQgQEAgdm9pZCB0ZXN0Q29tcGxleCh1bnNpZ25lZCBudW1WYXJzLCB1
bnNpZwogICAgICAgICAgICAgICAgIHRoZW5CbG9jay0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBB
ZGQsIE9yaWdpbigpLCB2YXJzW3RoZW5JbmNWYXJJbmRleF0sIG9uZSkpOwogICAgICAgICAgICAg
VXBzaWxvblZhbHVlKiB0aGVuRWxzZVJlc3VsdCA9IHRoZW5CbG9jay0+YXBwZW5kTmV3PFVwc2ls
b25WYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksIHZhcnNbZWxzZUluY1Zh
ckluZGV4XSk7Ci0gICAgICAgICAgICB0aGVuQmxvY2stPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soY29udGludWF0aW9uKSk7Cisg
ICAgICAgICAgICB0aGVuQmxvY2stPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBP
cmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGNvbnRpbnVhdGlvbikpOwogCiAgICAgICAgICAgICBV
cHNpbG9uVmFsdWUqIGVsc2VFbHNlUmVzdWx0ID0gZWxzZUJsb2NrLT5hcHBlbmROZXc8VXBzaWxv
blZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgICAgICAg
ICBlbHNlQmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgdmFyc1tl
bHNlSW5jVmFySW5kZXhdLCBvbmUpKTsKICAgICAgICAgICAgIFVwc2lsb25WYWx1ZSogZWxzZVRo
ZW5SZXN1bHQgPSBlbHNlQmxvY2stPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KAogICAgICAgICAg
ICAgICAgIHByb2MsIE9yaWdpbigpLCB2YXJzW3RoZW5JbmNWYXJJbmRleF0pOwotICAgICAgICAg
ICAgZWxzZUJsb2NrLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4o
KSwgRnJlcXVlbnRlZEJsb2NrKGNvbnRpbnVhdGlvbikpOworICAgICAgICAgICAgZWxzZUJsb2Nr
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRC
bG9jayhjb250aW51YXRpb24pKTsKIAogICAgICAgICAgICAgVmFsdWUqIHRoZW5QaGkgPSBjb250
aW51YXRpb24tPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBJbnQzMiwgT3JpZ2luKCkpOwog
ICAgICAgICAgICAgdGhlblRoZW5SZXN1bHQtPnNldFBoaSh0aGVuUGhpKTsKQEAgLTczOTgsNyAr
NzQwNSw3IEBAIHZvaWQgdGVzdENvbXBsZXgodW5zaWduZWQgbnVtVmFycywgdW5zaWcKICAgICAg
ICAgICAgIAogICAgICAgICAgICAgVmFsdWUqIHN0YXJ0SW5kZXggPSB2YXJzWygoaSA+PiAxKSAr
IDEpICUgbnVtVmFyc107CiAgICAgICAgICAgICBWYWx1ZSogc3RhcnRTdW0gPSBjdXJyZW50LT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCk7Ci0gICAgICAgICAgICBj
dXJyZW50LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgICAgIGN1cnJlbnQtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdp
bigpLCBzdGFydEluZGV4LAogICAgICAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhsb29wRW50
cnkpLCBGcmVxdWVudGVkQmxvY2sobG9vcFNraXApKTsKIApAQCAtNzQwNiw3ICs3NDEzLDcgQEAg
dm9pZCB0ZXN0Q29tcGxleCh1bnNpZ25lZCBudW1WYXJzLCB1bnNpZwogICAgICAgICAgICAgICAg
IHByb2MsIE9yaWdpbigpLCBzdGFydEluZGV4KTsKICAgICAgICAgICAgIFVwc2lsb25WYWx1ZSog
c3RhcnRTdW1Gb3JCb2R5ID0gbG9vcEVudHJ5LT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPigKICAg
ICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgc3RhcnRTdW0pOwotICAgICAgICAgICAgbG9v
cEVudHJ5LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJl
cXVlbnRlZEJsb2NrKGxvb3BCb2R5KSk7CisgICAgICAgICAgICBsb29wRW50cnktPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3BC
b2R5KSk7CiAKICAgICAgICAgICAgIFZhbHVlKiBib2R5SW5kZXggPSBsb29wQm9keS0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBQaGksIEludDMyLCBPcmlnaW4oKSk7CiAgICAgICAgICAgICBzdGFy
dEluZGV4Rm9yQm9keS0+c2V0UGhpKGJvZHlJbmRleCk7CkBAIC03NDMxLDE5ICs3NDM4LDE5IEBA
IHZvaWQgdGVzdENvbXBsZXgodW5zaWduZWQgbnVtVmFycywgdW5zaWcKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxvb3BCb2R5LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPigK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwg
bnVtVmFycyAtIDEpKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9vcEJvZHktPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAyKSkpKSk7Ci0gICAgICAgICAg
ICBsb29wQm9keS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgICAgICBsb29wQm9k
eS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgICAgIHByb2MsIEJyYW5jaCwg
T3JpZ2luKCksIG5ld0JvZHlJbmRleCwKICAgICAgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2so
bG9vcFJlZW50cnkpLCBGcmVxdWVudGVkQmxvY2sobG9vcEV4aXQpKTsKIAogICAgICAgICAgICAg
bG9vcFJlZW50cnktPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCBuZXdC
b2R5SW5kZXgsIGJvZHlJbmRleCk7CiAgICAgICAgICAgICBsb29wUmVlbnRyeS0+YXBwZW5kTmV3
PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIG5ld0JvZHlTdW0sIGJvZHlTdW0pOwotICAg
ICAgICAgICAgbG9vcFJlZW50cnktPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAs
IE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sobG9vcEJvZHkpKTsKKyAgICAgICAgICAgIGxvb3BS
ZWVudHJ5LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1
ZW50ZWRCbG9jayhsb29wQm9keSkpOwogCiAgICAgICAgICAgICBVcHNpbG9uVmFsdWUqIGV4aXRT
dW0gPSBsb29wRXhpdC0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIG5l
d0JvZHlTdW0pOwotICAgICAgICAgICAgbG9vcEV4aXQtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soY29udGludWF0aW9uKSk7Cisg
ICAgICAgICAgICBsb29wRXhpdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9y
aWdpbigpLCBGcmVxdWVudGVkQmxvY2soY29udGludWF0aW9uKSk7CiAKICAgICAgICAgICAgIFVw
c2lsb25WYWx1ZSogc2tpcFN1bSA9IGxvb3BTa2lwLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgc3RhcnRTdW0pOwotICAgICAgICAgICAgbG9vcFNraXAtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soY29u
dGludWF0aW9uKSk7CisgICAgICAgICAgICBsb29wU2tpcC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soY29udGludWF0aW9uKSk7CiAK
ICAgICAgICAgICAgIFZhbHVlKiBmaW5hbFN1bSA9IGNvbnRpbnVhdGlvbi0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBQaGksIEludDMyLCBPcmlnaW4oKSk7CiAgICAgICAgICAgICBleGl0U3VtLT5z
ZXRQaGkoZmluYWxTdW0pOwpAQCAtNzQ1NCw3ICs3NDYxLDcgQEAgdm9pZCB0ZXN0Q29tcGxleCh1
bnNpZ25lZCBudW1WYXJzLCB1bnNpZwogICAgICAgICB9CiAgICAgfQogCi0gICAgY3VycmVudC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFyc1swXSk7
CisgICAgY3VycmVudC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHZhcnNbMF0pOwogCiAgICAgY29tcGlsZShwcm9jKTsKIApAQCAtNzQ4MCw3ICs3NDg3LDcg
QEAgdm9pZCB0ZXN0U2ltcGxlUGF0Y2hwb2ludCgpCiAgICAgICAgICAgICBDSEVDSyhwYXJhbXNb
Ml0uaXNHUFIoKSk7CiAgICAgICAgICAgICBhZGQzMihqaXQsIHBhcmFtc1sxXS5ncHIoKSwgcGFy
YW1zWzJdLmdwcigpLCBwYXJhbXNbMF0uZ3ByKCkpOwogICAgICAgICB9KTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcGF0Y2hwb2ludCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywgMSwg
MikgPT0gMyk7CiB9CkBAIC03NTExLDcgKzc1MTgsNyBAQCB2b2lkIHRlc3RTaW1wbGVQYXRjaHBv
aW50V2l0aG91dE91cHV0Q2xvCiAgICAgICAgIH0pOwogCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYXJnMSwgYXJnMik7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAx
LCAyKSA9PSAzKTsKIH0KQEAgLTc1NjAsNyArNzU2Nyw3IEBAIHZvaWQgdGVzdFNpbXBsZVBhdGNo
cG9pbnRXaXRoT3VwdXRDbG9iYmUKIAogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIHBhdGNocG9pbnQsCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYXJnMSwgYXJnMikpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
c3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywgMSwg
MikgPT0gNTgpOwogfQpAQCAtNzU5MSw3ICs3NTk4LDcgQEAgdm9pZCB0ZXN0U2ltcGxlUGF0Y2hw
b2ludFdpdGhvdXRPdXB1dENsbwogICAgICAgICB9KTsKIAogICAgIFZhbHVlKiByZXN1bHQgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGFyZzEsIGFyZzIpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJv
YywgMS41LCAyLjUpID09IDQpOwogfQpAQCAtNzYzMiw3ICs3NjM5LDcgQEAgdm9pZCB0ZXN0U2lt
cGxlUGF0Y2hwb2ludFdpdGhPdXB1dENsb2JiZQogCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBhcmcxLCBhcmcy
KSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48ZG91Ymxl
Pihwcm9jLCAxLjUsIDIuNSkgPT0gNTkuNik7CiB9CkBAIC03NjU3LDcgKzc2NjQsNyBAQCB2b2lk
IHRlc3RQYXRjaHBvaW50V2l0aEVhcmx5Q2xvYmJlcigpCiAgICAgICAgICAgICAgICAgYWRkMzIo
aml0LCBwYXJhbXNbMV0uZ3ByKCksIHBhcmFtc1syXS5ncHIoKSwgcGFyYW1zWzBdLmdwcigpKTsK
ICAgICAgICAgICAgIH0pOwogCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOworICAgICAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CiAK
ICAgICAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIDEsIDIpID09IDMpOwogICAg
IH07CkBAIC03NjkwLDcgKzc2OTcsNyBAQCB2b2lkIHRlc3RQYXRjaHBvaW50Q2FsbEFyZygpCiAg
ICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJl
Z2lzdGVyLCBwYXJhbXNbMl0ub2Zmc2V0RnJvbUZQKCkpLAogICAgICAgICAgICAgICAgIHBhcmFt
c1swXS5ncHIoKSk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKIAog
ICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAxLCAyKSA9PSAzKTsKIH0KQEAgLTc3
MTMsNyArNzcyMCw3IEBAIHZvaWQgdGVzdFBhdGNocG9pbnRGaXhlZFJlZ2lzdGVyKCkKICAgICAg
ICAgICAgIENIRUNLKHBhcmFtc1syXSA9PSBWYWx1ZVJlcChHUFJJbmZvOjpyZWdUMSkpOwogICAg
ICAgICAgICAgYWRkMzIoaml0LCBHUFJJbmZvOjpyZWdUMCwgR1BSSW5mbzo6cmVnVDEsIHBhcmFt
c1swXS5ncHIoKSk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKIAog
ICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAxLCAyKSA9PSAzKTsKIH0KQEAgLTc3
MzcsNyArNzc0NCw3IEBAIHZvaWQgdGVzdFBhdGNocG9pbnRBbnkoVmFsdWVSZXAgcmVwKQogICAg
ICAgICAgICAgQ0hFQ0socGFyYW1zWzJdLmlzR1BSKCkpOwogICAgICAgICAgICAgYWRkMzIoaml0
LCBwYXJhbXNbMV0uZ3ByKCksIHBhcmFtc1syXS5ncHIoKSwgcGFyYW1zWzBdLmdwcigpKTsKICAg
ICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOwogCiAgICAgQ0hFQ0soY29tcGls
ZUFuZFJ1bjxpbnQ+KHByb2MsIDEsIDIpID09IDMpOwogfQpAQCAtNzc3Myw3ICs3NzgwLDcgQEAg
dm9pZCB0ZXN0UGF0Y2hwb2ludEdQU2NyYXRjaCgpCiAgICAgICAgICAgICBDSEVDSyghcGFyYW1z
LnVuYXZhaWxhYmxlUmVnaXN0ZXJzKCkuZ2V0KHBhcmFtcy5ncFNjcmF0Y2goMSkpKTsKICAgICAg
ICAgICAgIGFkZDMyKGppdCwgcGFyYW1zWzFdLmdwcigpLCBwYXJhbXNbMl0uZ3ByKCksIHBhcmFt
c1swXS5ncHIoKSk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKIAog
ICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAxLCAyKSA9PSAzKTsKIH0KQEAgLTc4
MDMsNyArNzgxMCw3IEBAIHZvaWQgdGVzdFBhdGNocG9pbnRGUFNjcmF0Y2goKQogICAgICAgICAg
ICAgQ0hFQ0soIXBhcmFtcy51bmF2YWlsYWJsZVJlZ2lzdGVycygpLmdldChwYXJhbXMuZnBTY3Jh
dGNoKDEpKSk7CiAgICAgICAgICAgICBhZGQzMihqaXQsIHBhcmFtc1sxXS5ncHIoKSwgcGFyYW1z
WzJdLmdwcigpLCBwYXJhbXNbMF0uZ3ByKCkpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cGF0Y2hwb2ludCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywgMSwgMikg
PT0gMyk7CiB9CkBAIC03ODQ1LDcgKzc4NTIsNyBAQCB2b2lkIHRlc3RQYXRjaHBvaW50TG90c09m
TGF0ZUFueXMoKQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfSk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcGF0Y2hwb2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxp
bnQ+KHByb2MpID09ICh0aGluZ3Muc2l6ZSgpICogKHRoaW5ncy5zaXplKCkgLSAxKSkgLyAyKTsK
IH0KQEAgLTc4NzMsNyArNzg4MCw3IEBAIHZvaWQgdGVzdFBhdGNocG9pbnRBbnlJbW0oVmFsdWVS
ZXAgcmVwKQogICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKHN0YXRp
Y19jYXN0PGludDMyX3Q+KHBhcmFtc1syXS52YWx1ZSgpKSksCiAgICAgICAgICAgICAgICAgcGFy
YW1zWzFdLmdwcigpLCBwYXJhbXNbMF0uZ3ByKCkpOwogICAgICAgICB9KTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcGF0Y2hwb2ludCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywgMSkg
PT0gNDMpOwogfQpAQCAtNzg5OSw3ICs3OTA2LDcgQEAgdm9pZCB0ZXN0UGF0Y2hwb2ludE1hbnlJ
bW1zKCkKICAgICAgICAgICAgIENIRUNLKHBhcmFtc1syXSA9PSBWYWx1ZVJlcDo6Y29uc3RhbnQo
NDMwMDAwMDAwMDAwMDBsbCkpOwogICAgICAgICAgICAgQ0hFQ0socGFyYW1zWzNdID09IFZhbHVl
UmVwOjpjb25zdGFudChiaXR3aXNlX2Nhc3Q8aW50NjRfdD4oNDIuNSkpKTsKICAgICAgICAgfSk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC03
OTI1LDcgKzc5MzIsNyBAQCB2b2lkIHRlc3RQYXRjaHBvaW50V2l0aFJlZ2lzdGVyUmVzdWx0KCkK
ICAgICAgICAgICAgIENIRUNLKHBhcmFtc1syXS5pc0dQUigpKTsKICAgICAgICAgICAgIGFkZDMy
KGppdCwgcGFyYW1zWzFdLmdwcigpLCBwYXJhbXNbMl0uZ3ByKCksIEdQUkluZm86Om5vbkFyZ0dQ
UjApOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CiAKICAgICBDSEVD
Syhjb21waWxlQW5kUnVuPGludD4ocHJvYywgMSwgMikgPT0gMyk7CiB9CkBAIC03OTUxLDcgKzc5
NTgsNyBAQCB2b2lkIHRlc3RQYXRjaHBvaW50V2l0aFN0YWNrQXJndW1lbnRSZXN1CiAgICAgICAg
ICAgICBqaXQuYWRkMzIocGFyYW1zWzFdLmdwcigpLCBwYXJhbXNbMl0uZ3ByKCksIGppdC5zY3Jh
dGNoUmVnaXN0ZXIoKSk7CiAgICAgICAgICAgICBqaXQuc3RvcmUzMihqaXQuc2NyYXRjaFJlZ2lz
dGVyKCksIENDYWxsSGVscGVyczo6QWRkcmVzcyhDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJl
Z2lzdGVyLCAwKSk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKIAog
ICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAxLCAyKSA9PSAzKTsKIH0KQEAgLTc5
ODAsNyArNzk4Nyw3IEBAIHZvaWQgdGVzdFBhdGNocG9pbnRXaXRoQW55UmVzdWx0KCkKICAgICAg
ICAgICAgIGppdC5jb252ZXJ0SW50MzJUb0RvdWJsZShHUFJJbmZvOjpyZWdUMCwgRlBSSW5mbzo6
ZnBSZWdUMCk7CiAgICAgICAgICAgICBqaXQuc3RvcmVEb3VibGUoRlBSSW5mbzo6ZnBSZWdUMCwg
Q0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBwYXJhbXNb
MF0ub2Zmc2V0RnJvbUZQKCkpKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9p
bnQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIDEsIDIpID09IDMp
OwogfQpAQCAtODAwMiw3ICs4MDA5LDcgQEAgdm9pZCB0ZXN0U2ltcGxlQ2hlY2soKQogICAgICAg
ICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7
CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAog
ICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CkBAIC04MDIxLDcgKzgwMjgsNyBAQCB2b2lk
IHRlc3RDaGVja0ZhbHNlKCkKICAgICAgICAgWyZdIChDQ2FsbEhlbHBlcnMmLCBjb25zdCBTdGFj
a21hcEdlbmVyYXRpb25QYXJhbXMmKSB7CiAgICAgICAgICAgICBDSEVDSyghIlRoaXMgc2hvdWxk
IG5vdCBoYXZlIGV4ZWN1dGVkIik7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIDApKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CkBAIC04
MDQ3LDcgKzgwNTQsNyBAQCB2b2lkIHRlc3RDaGVja1RydWUoKQogICAgICAgICAgICAgaml0LmVt
aXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0p
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGF1dG8gY29k
ZSA9IGNvbXBpbGUocHJvYyk7CkBAIC04MDc4LDcgKzgwODUsNyBAQCB2b2lkIHRlc3RDaGVja0xl
c3NUaGFuKCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAg
ICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCAwKSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwpAQCAtODEyNCw3
ICs4MTMxLDcgQEAgdm9pZCB0ZXN0Q2hlY2tNZWdhQ29tYm8oKQogICAgICAgICAgICAgaml0LmVt
aXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0p
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGF1dG8gY29k
ZSA9IGNvbXBpbGUocHJvYyk7CkBAIC04MTc5LDcgKzgxODYsNyBAQCB2b2lkIHRlc3RDaGVja1Ry
aWNreU1lZ2FDb21ibygpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsK
ICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKQEAg
LTgyNDMsNyArODI1MCw3IEBAIHZvaWQgdGVzdENoZWNrVHdvTWVnYUNvbWJvcygpCiAgICAgICAg
ICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsK
ICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAg
ICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKQEAgLTgyOTMsNyArODMwMCw3IEBAIHZvaWQg
dGVzdENoZWNrVHdvTm9uUmVkdW5kYW50TWVnYUNvbWJvcygKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkOFMsIE9yaWdpbigpLCBwdHIpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpKTsKIAotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwgYnJhbmNoUHJlZGljYXRl
LAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxz
ZUNhc2UpKTsKICAgICAKQEAgLTgzMDksNyArODMxNiw3IEBAIHZvaWQgdGVzdENoZWNrVHdvTm9u
UmVkdW5kYW50TWVnYUNvbWJvcygKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1
ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICB0aGVuQ2FzZS0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdGhlbkNhc2UtPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MykpOwogCiAgICAgQ2hlY2tWYWx1ZSog
Y2hlY2syID0gZWxzZUNhc2UtPmFwcGVuZE5ldzxDaGVja1ZhbHVlPihwcm9jLCBDaGVjaywgT3Jp
Z2luKCksIGNoZWNrUHJlZGljYXRlKTsKQEAgLTgzMjQsNyArODMzMSw3IEBAIHZvaWQgdGVzdENo
ZWNrVHdvTm9uUmVkdW5kYW50TWVnYUNvbWJvcygKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rp
b25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICBl
bHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZWxzZUNhc2Ut
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0NSkpOwogCiAgICAgYXV0
byBjb2RlID0gY29tcGlsZShwcm9jKTsKQEAgLTgzNzgsNyArODM4NSw3IEBAIHZvaWQgdGVzdENo
ZWNrQWRkSW1tKCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAg
ICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgSVRvRCwgT3JpZ2luKCksIGNoZWNrQWRkKSk7CiAKQEAgLTg0MTQsNyArODQyMSw3IEBAIHZv
aWQgdGVzdENoZWNrQWRkSW1tQ29tbXV0ZSgpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9u
RXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVja0FkZCkpOwogCkBAIC04NDQ5
LDcgKzg0NTYsNyBAQCB2b2lkIHRlc3RDaGVja0FkZEltbVNvbWVSZWdpc3RlcigpCiAgICAgICAg
ICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsK
ICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBj
aGVja0FkZCkpOwogCkBAIC04NDg2LDcgKzg0OTMsNyBAQCB2b2lkIHRlc3RDaGVja0FkZCgpCiAg
ICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5y
ZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdp
bigpLCBjaGVja0FkZCkpOwogCkBAIC04NTE5LDcgKzg1MjYsNyBAQCB2b2lkIHRlc3RDaGVja0Fk
ZDY0KCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAg
ICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRv
RCwgT3JpZ2luKCksIGNoZWNrQWRkKSk7CiAKQEAgLTg1NDIsNyArODU0OSw3IEBAIHZvaWQgdGVz
dENoZWNrQWRkRm9sZChpbnQgYSwgaW50IGIpCiAgICAgICAgIFsmXSAoQ0NhbGxIZWxwZXJzJiwg
Y29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgewogICAgICAgICAgICAgQ0hFQ0soISJT
aG91bGQgaGF2ZSBiZWVuIGZvbGRlZCIpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja0FkZCk7CisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNr
QWRkKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKQEAgLTg1NjMsNyArODU3
MCw3IEBAIHZvaWQgdGVzdENoZWNrQWRkRm9sZEZhaWwoaW50IGEsIGludCBiKQogICAgICAgICAg
ICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAg
ICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIGNoZWNrQWRkKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tBZGQpOwogCiAgICAgYXV0byBjb2RlID0gY29t
cGlsZShwcm9jKTsKIApAQCAtODYwMiw3ICs4NjA5LDcgQEAgdm9pZCB0ZXN0Q2hlY2tBZGRBcmd1
bWVudEFsaWFzaW5nNjQoKQogICAgIENoZWNrVmFsdWUqIGNoZWNrQWRkMyA9IHJvb3QtPmFwcGVu
ZE5ldzxDaGVja1ZhbHVlPihwcm9jLCBDaGVja0FkZCwgT3JpZ2luKCksIGNoZWNrQWRkMSwgY2hl
Y2tBZGQyKTsKICAgICBjaGVja0FkZDMtPnNldEdlbmVyYXRvcihbJl0gKENDYWxsSGVscGVycyYg
aml0LCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7IGppdC5vb3BzKCk7IH0pOwog
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgY2hlY2tBZGQzKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgY2hlY2tBZGQzKTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50
NjRfdD4ocHJvYywgMSwgMiwgMykgPT0gOCk7CiB9CkBAIC04NjQ1LDcgKzg2NTIsNyBAQCB2b2lk
IHRlc3RDaGVja0FkZEFyZ3VtZW50QWxpYXNpbmczMigpCiAgICAgQ2hlY2tWYWx1ZSogY2hlY2tB
ZGQzID0gcm9vdC0+YXBwZW5kTmV3PENoZWNrVmFsdWU+KHByb2MsIENoZWNrQWRkLCBPcmlnaW4o
KSwgY2hlY2tBZGQxLCBjaGVja0FkZDIpOwogICAgIGNoZWNrQWRkMy0+c2V0R2VuZXJhdG9yKFsm
XSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsg
aml0Lm9vcHMoKTsgfSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja0FkZDMpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja0FkZDMpOwogCiAgICAgQ0hFQ0so
Y29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCAxLCAyLCAzKSA9PSA4KTsKIH0KQEAgLTg2NzAs
NyArODY3Nyw3IEBAIHZvaWQgdGVzdENoZWNrQWRkU2VsZk92ZXJmbG93NjQoKQogICAgIG9wYXF1
ZVVzZS0+YXBwZW5kKENvbnN0cmFpbmVkVmFsdWUoYXJnLCBWYWx1ZVJlcDo6U29tZVJlZ2lzdGVy
KSk7CiAgICAgb3BhcXVlVXNlLT5zZXRHZW5lcmF0b3IoWyZdIChDQ2FsbEhlbHBlcnMmLCBjb25z
dCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7IH0pOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tBZGQpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja0Fk
ZCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC04NzAxLDcgKzg3MDgs
NyBAQCB2b2lkIHRlc3RDaGVja0FkZFNlbGZPdmVyZmxvdzMyKCkKICAgICBvcGFxdWVVc2UtPmFw
cGVuZChDb25zdHJhaW5lZFZhbHVlKGFyZywgVmFsdWVSZXA6OlNvbWVSZWdpc3RlcikpOwogICAg
IG9wYXF1ZVVzZS0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3RhY2tt
YXBHZW5lcmF0aW9uUGFyYW1zJikgeyB9KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrQWRkKTsKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tBZGQpOwogCiAg
ICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAtODczNCw3ICs4NzQxLDcgQEAgdm9p
ZCB0ZXN0Q2hlY2tTdWJJbW0oKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3Vl
KCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tTdWIpKTsKIApAQCAtODc3Niw3ICs4Nzgz
LDcgQEAgdm9pZCB0ZXN0Q2hlY2tTdWJCYWRJbW0oKQogICAgICAgICAgICAgaml0LmVtaXRGdW5j
dGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tTdWIpKTsKIApAQCAt
ODgxMyw3ICs4ODIwLDcgQEAgdm9pZCB0ZXN0Q2hlY2tTdWIoKQogICAgICAgICAgICAgaml0LmVt
aXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0p
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tTdWIpKTsK
IApAQCAtODg1MSw3ICs4ODU4LDcgQEAgdm9pZCB0ZXN0Q2hlY2tTdWI2NCgpCiAgICAgICAgICAg
ICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAg
ICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVj
a1N1YikpOwogCkBAIC04ODc0LDcgKzg4ODEsNyBAQCB2b2lkIHRlc3RDaGVja1N1YkZvbGQoaW50
IGEsIGludCBiKQogICAgICAgICBbJl0gKENDYWxsSGVscGVycyYsIGNvbnN0IFN0YWNrbWFwR2Vu
ZXJhdGlvblBhcmFtcyYpIHsKICAgICAgICAgICAgIENIRUNLKCEiU2hvdWxkIGhhdmUgYmVlbiBm
b2xkZWQiKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tTdWIpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja1N1Yik7CiAKICAgICBhdXRv
IGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC04ODk1LDcgKzg5MDIsNyBAQCB2b2lkIHRlc3RD
aGVja1N1YkZvbGRGYWlsKGludCBhLCBpbnQgYikKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rp
b25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVj
a1N1Yik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIGNoZWNrU3ViKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKQEAg
LTg5MjIsNyArODkyOSw3IEBAIHZvaWQgdGVzdENoZWNrTmVnKCkKICAgICAgICAgICAgIGppdC5l
bWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGNoZWNrTmVnKSk7
CiAKQEAgLTg5NTIsNyArODk1OSw3IEBAIHZvaWQgdGVzdENoZWNrTmVnNjQoKQogICAgICAgICAg
ICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAg
ICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hl
Y2tOZWcpKTsKIApAQCAtODk4OSw3ICs4OTk2LDcgQEAgdm9pZCB0ZXN0Q2hlY2tNdWwoKQogICAg
ICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0
KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4o
KSwgY2hlY2tNdWwpKTsKIApAQCAtOTAzMCw3ICs5MDM3LDcgQEAgdm9pZCB0ZXN0Q2hlY2tNdWxN
ZW1vcnkoKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAg
ICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJ
VG9ELCBPcmlnaW4oKSwgY2hlY2tNdWwpKTsKIApAQCAtOTA3Nyw3ICs5MDg0LDcgQEAgdm9pZCB0
ZXN0Q2hlY2tNdWwyKCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwog
ICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgSVRvRCwgT3JpZ2luKCksIGNoZWNrTXVsKSk7CiAKQEAgLTkxMTAsNyArOTExNyw3IEBA
IHZvaWQgdGVzdENoZWNrTXVsNjQoKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxv
Z3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tNdWwpKTsKIApAQCAtOTEzMyw3ICs5
MTQwLDcgQEAgdm9pZCB0ZXN0Q2hlY2tNdWxGb2xkKGludCBhLCBpbnQgYikKICAgICAgICAgWyZd
IChDQ2FsbEhlbHBlcnMmLCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7CiAgICAg
ICAgICAgICBDSEVDSyghIlNob3VsZCBoYXZlIGJlZW4gZm9sZGVkIik7CiAgICAgICAgIH0pOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IGNoZWNrTXVsKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgY2hlY2tNdWwpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsK
IApAQCAtOTE1NCw3ICs5MTYxLDcgQEAgdm9pZCB0ZXN0Q2hlY2tNdWxGb2xkRmFpbChpbnQgYSwg
aW50IGIpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAg
ICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tNdWwpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja011bCk7CiAKICAg
ICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC05MTkzLDcgKzkyMDAsNyBAQCB2b2lk
IHRlc3RDaGVja011bEFyZ3VtZW50QWxpYXNpbmc2NCgpCiAgICAgQ2hlY2tWYWx1ZSogY2hlY2tN
dWwzID0gcm9vdC0+YXBwZW5kTmV3PENoZWNrVmFsdWU+KHByb2MsIENoZWNrTXVsLCBPcmlnaW4o
KSwgY2hlY2tNdWwxLCBjaGVja011bDIpOwogICAgIGNoZWNrTXVsMy0+c2V0R2VuZXJhdG9yKFsm
XSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsg
aml0Lm9vcHMoKTsgfSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja011bDMpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja011bDMpOwogCiAgICAgQ0hFQ0so
Y29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAyLCAzLCA0KSA9PSA3Mik7CiB9CkBAIC05MjM2
LDcgKzkyNDMsNyBAQCB2b2lkIHRlc3RDaGVja011bEFyZ3VtZW50QWxpYXNpbmczMigpCiAgICAg
Q2hlY2tWYWx1ZSogY2hlY2tNdWwzID0gcm9vdC0+YXBwZW5kTmV3PENoZWNrVmFsdWU+KHByb2Ms
IENoZWNrTXVsLCBPcmlnaW4oKSwgY2hlY2tNdWwxLCBjaGVja011bDIpOwogICAgIGNoZWNrTXVs
My0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNrbWFwR2Vu
ZXJhdGlvblBhcmFtcyYpIHsgaml0Lm9vcHMoKTsgfSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja011bDMpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja011
bDMpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCAyLCAzLCA0KSA9
PSA3Mik7CiB9CkBAIC05MjY4LDcgKzkyNzUsNyBAQCB2b2lkIHRlc3RDaGVja011bDY0U1Nocigp
CiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGpp
dC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9y
aWdpbigpLCBjaGVja011bCkpOwogCkBAIC05Mjk0LDcgKzkzMDEsNyBAQCB2b2lkIGdlbmVyaWNU
ZXN0Q29tcGFyZSgKICAgICAgICAgVmFsdWUqIHJpZ2h0VmFsdWUgPSByaWdodEZ1bmN0b3Iocm9v
dCwgcHJvYyk7CiAgICAgICAgIFZhbHVlKiBjb21wYXJpc29uUmVzdWx0ID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBvcGNvZGUsIE9yaWdpbigpLCBsZWZ0VmFsdWUsIHJpZ2h0VmFsdWUp
OwogICAgICAgICAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgICAgIHByb2MsIE5vdEVxdWFsLCBPcmlnaW4oKSwKQEAgLTkzMTQsNyArOTMyMSw3IEBA
IHZvaWQgZ2VuZXJpY1Rlc3RDb21wYXJlKAogICAgICAgICBWYWx1ZSogbGVmdFZhbHVlID0gbGVm
dEZ1bmN0b3Iocm9vdCwgcHJvYyk7CiAgICAgICAgIFZhbHVlKiByaWdodFZhbHVlID0gcmlnaHRG
dW5jdG9yKHJvb3QsIHByb2MpOwogCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBw
cm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBvcGNvZGUsIE9yaWdpbigpLCBsZWZ0VmFsdWUsIHJpZ2h0VmFsdWUpLAogICAgICAg
ICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNl
KSk7CkBAIC05MzI4LDkgKzkzMzUsOSBAQCB2b2lkIGdlbmVyaWNUZXN0Q29tcGFyZSgKICAgICAg
ICAgICAgICAgICBDSEVDSyhwYXJhbXNbMF0uaXNHUFIoKSk7CiAgICAgICAgICAgICAgICAgaml0
Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoMSksIHBhcmFtc1swXS5ncHIoKSk7CiAg
ICAgICAgICAgICB9KTsKLSAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOworICAgICAgICB0aGVuQ2FzZS0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQp
OwogCi0gICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAg
ZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtOTU2OSw3ICs5NTc2LDcgQEAgdm9pZCB0ZXN0
RXF1YWxEb3VibGUoZG91YmxlIGxlZnQsIGRvdWJsZQogewogICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KAogICAgICAgICAgICAgcHJvYywgRXF1YWwsIE9yaWdpbigpLApAQCAtOTU4OCw3ICs5NTk1
LDcgQEAgdm9pZCB0ZXN0Q2FsbFNpbXBsZShpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJl
IHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxDQ2FsbFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEludDMyLCBPcmlnaW4oKSwKQEAg
LTk2MDYsMTYgKzk2MTMsMTYgQEAgdm9pZCB0ZXN0Q2FsbFJhcmUoaW50IGEsIGludCBiKQogICAg
IEJhc2ljQmxvY2sqIGNvbW1vbiA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBy
YXJlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFu
Y2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCksCiAgICAgICAgIEZyZXF1ZW50
ZWRCbG9jayhyYXJlLCBGcmVxdWVuY3lDbGFzczo6UmFyZSksCiAgICAgICAgIEZyZXF1ZW50ZWRC
bG9jayhjb21tb24pKTsKIAotICAgIGNvbW1vbi0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgY29tbW9uLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksIGNvbW1vbi0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IDApKTsKICAgICAKLSAgICByYXJlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByYXJl
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJhcmUtPmFwcGVuZE5ldzxDQ2FsbFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IEludDMyLCBPcmlnaW4oKSwKQEAgLTk2MzMsMTYgKzk2NDAsMTYgQEAgdm9pZCB0ZXN0Q2FsbFJh
cmVMaXZlKGludCBhLCBpbnQgYiwgaW50IAogICAgIEJhc2ljQmxvY2sqIGNvbW1vbiA9IHByb2Mu
YWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiByYXJlID0gcHJvYy5hZGRCbG9jaygpOwogCi0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMCksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhyYXJlLCBGcmVxdWVuY3lDbGFz
czo6UmFyZSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhjb21tb24pKTsKIAotICAgIGNvbW1v
bi0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgY29tbW9uLT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNvbW1vbi0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKICAgICAKLSAgICByYXJlLT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByYXJlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJhcmUtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAtOTY2Miw3ICs5NjY5
LDcgQEAgdm9pZCB0ZXN0Q2FsbFNpbXBsZVB1cmUoaW50IGEsIGludCBiKQogewogICAgIFByb2Nl
ZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8Q0NhbGxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBJbnQzMiwgT3JpZ2luKCks
IEVmZmVjdHM6Om5vbmUoKSwKQEAgLTk2OTIsNyArOTY5OSw3IEBAIHZvaWQgdGVzdENhbGxGdW5j
dGlvbldpdGhIZWxsYUFyZ3VtZW50cygKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRy
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiaXR3aXNlX2Nhc3Q8dm9pZCo+KGZ1bmN0aW9uV2l0aEhl
bGxhQXJndW1lbnRzKSkpOwogICAgIGNhbGwtPmNoaWxkcmVuKCkuYXBwZW5kVmVjdG9yKGFyZ3Mp
OwogICAgIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIGNhbGwpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCBjYWxsKTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihw
cm9jKSA9PSBmdW5jdGlvbldpdGhIZWxsYUFyZ3VtZW50cygxLCAyLCAzLCA0LCA1LCA2LCA3LCA4
LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwg
MjMsIDI0LCAyNSwgMjYpKTsKIH0KQEAgLTk3MDEsNyArOTcwOCw3IEBAIHZvaWQgdGVzdFJldHVy
bkRvdWJsZShkb3VibGUgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpKTsKIApAQCAtOTcxMiw3ICs5NzE5LDcgQEAgdm9p
ZCB0ZXN0UmV0dXJuRmxvYXQoZmxvYXQgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25z
dEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSkpOwogCkBAIC05NzI4LDcgKzk3MzUs
NyBAQCB2b2lkIHRlc3RDYWxsU2ltcGxlRG91YmxlKGRvdWJsZSBhLCBkb3ViCiB7CiAgICAgUHJv
Y2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxDQ2FsbFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIERvdWJsZSwgT3JpZ2lu
KCksCkBAIC05NzU0LDcgKzk3NjEsNyBAQCB2b2lkIHRlc3RDYWxsU2ltcGxlRmxvYXQoZmxvYXQg
YSwgZmxvYXQgCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7CiAgICAgVmFsdWUqIGZsb2F0VmFs
dWUxID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCks
IGFyZ3VtZW50MWludDMyKTsKICAgICBWYWx1ZSogZmxvYXRWYWx1ZTIgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQyaW50MzIpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENDYWxsVmFsdWU+KAogICAgICAgICAgICAgcHJvYywgRmxvYXQsIE9yaWdp
bigpLApAQCAtOTc4NCw3ICs5NzkxLDcgQEAgdm9pZCB0ZXN0Q2FsbEZ1bmN0aW9uV2l0aEhlbGxh
RG91YmxlQXJndQogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIGJpdHdpc2VfY2FzdDx2b2lkKj4oZnVuY3Rpb25XaXRoSGVsbGFEb3VibGVBcmd1
bWVudHMpKSk7CiAgICAgY2FsbC0+Y2hpbGRyZW4oKS5hcHBlbmRWZWN0b3IoYXJncyk7CiAgICAg
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgY2FsbCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIGNhbGwpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2Mp
ID09IGZ1bmN0aW9uV2l0aEhlbGxhRG91YmxlQXJndW1lbnRzKDEsIDIsIDMsIDQsIDUsIDYsIDcs
IDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAxNywgMTgsIDE5LCAyMCwgMjEsIDIy
LCAyMywgMjQsIDI1LCAyNikpOwogfQpAQCAtOTgwOCw3ICs5ODE1LDcgQEAgdm9pZCB0ZXN0Q2Fs
bEZ1bmN0aW9uV2l0aEhlbGxhRmxvYXRBcmd1bQogICAgICAgICByb290LT5hcHBlbmROZXc8Q29u
c3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGJpdHdpc2VfY2FzdDx2b2lkKj4oZnVuY3Rpb25X
aXRoSGVsbGFGbG9hdEFyZ3VtZW50cykpKTsKICAgICBjYWxsLT5jaGlsZHJlbigpLmFwcGVuZFZl
Y3RvcihhcmdzKTsKICAgICAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBjYWxsKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FsbCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5k
UnVuPGZsb2F0Pihwcm9jKSA9PSBmdW5jdGlvbldpdGhIZWxsYUZsb2F0QXJndW1lbnRzKDEsIDIs
IDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAxNywgMTgs
IDE5LCAyMCwgMjEsIDIyLCAyMywgMjQsIDI1LCAyNikpOwogfQpAQCAtOTgyMCw3ICs5ODI3LDcg
QEAgdm9pZCB0ZXN0Q2hpbGxEaXYoaW50IG51bSwgaW50IGRlbiwgaW50IAogICAgICAgICBQcm9j
ZWR1cmUgcHJvYzsKICAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
ICAgICAgICAgCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgICAgICBwcm9jLCBDaGlsbERpdiwgT3JpZ2luKCksCkBAIC05ODM5LDcgKzk4NDYsNyBAQCB2
b2lkIHRlc3RDaGlsbERpdihpbnQgbnVtLCBpbnQgZGVuLCBpbnQgCiAgICAgICAgIFByb2NlZHVy
ZSBwcm9jOwogICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAg
ICAgICAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
ICAgIHByb2MsIENoaWxsRGl2LCBPcmlnaW4oKSwKQEAgLTk4NTUsNyArOTg2Miw3IEBAIHZvaWQg
dGVzdENoaWxsRGl2VHdpY2UoaW50IG51bTEsIGludCBkZW4KICAgICBQcm9jZWR1cmUgcHJvYzsK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKQEAgLTk4ODksNyArOTg5
Niw3IEBAIHZvaWQgdGVzdENoaWxsRGl2NjQoaW50NjRfdCBudW0sIGludDY0X3QKICAgICAgICAg
UHJvY2VkdXJlIHByb2M7CiAgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7CiAgICAgICAgIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICAgICAgcHJvYywgQ2hpbGxEaXYsIE9yaWdpbigpLApAQCAtOTkwNCw3ICs5OTExLDcg
QEAgdm9pZCB0ZXN0Q2hpbGxEaXY2NChpbnQ2NF90IG51bSwgaW50NjRfdAogICAgICAgICBQcm9j
ZWR1cmUgcHJvYzsKICAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
ICAgICAgICAgCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgICAgICBwcm9jLCBDaGlsbERpdiwgT3JpZ2luKCksCkBAIC05OTI1LDcgKzk5MzIsNyBAQCB2
b2lkIHRlc3RNb2RBcmcoaW50NjRfdCB2YWx1ZSkKIAogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBNb2QsIE9yaWdpbigpLCBhcmd1bWVudCwgYXJndW1lbnQpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
c3VsdCk7CiAKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCB2YWx1ZSkp
OwogfQpAQCAtOTk0Myw3ICs5OTUwLDcgQEAgdm9pZCB0ZXN0TW9kQXJncyhpbnQ2NF90IG51bWVy
YXRvciwgaW50NgogICAgIFZhbHVlKiBhcmd1bWVudDEgPSByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAg
VmFsdWUqIGFyZ3VtZW50MiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKICAgICBWYWx1ZSogcmVzdWx0ID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigpLCBhcmd1bWVudDEsIGFy
Z3VtZW50Mik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48
aW50NjRfdD4ocHJvYywgbnVtZXJhdG9yLCBkZW5vbWluYXRvcikgPT0gbnVtZXJhdG9yICUgZGVu
b21pbmF0b3IpOwogfQpAQCAtOTk2MSw3ICs5OTY4LDcgQEAgdm9pZCB0ZXN0TW9kSW1tcyhpbnQ2
NF90IG51bWVyYXRvciwgaW50NgogICAgIFZhbHVlKiBhcmd1bWVudDEgPSByb290LT5hcHBlbmRO
ZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgbnVtZXJhdG9yKTsKICAgICBWYWx1ZSog
YXJndW1lbnQyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IGRlbm9taW5hdG9yKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBNb2QsIE9yaWdpbigpLCBhcmd1bWVudDEsIGFyZ3VtZW50Mik7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgbnVtZXJh
dG9yLCBkZW5vbWluYXRvcikgPT0gbnVtZXJhdG9yICUgZGVub21pbmF0b3IpOwogfQpAQCAtOTk3
Nyw3ICs5OTg0LDcgQEAgdm9pZCB0ZXN0TW9kQXJnMzIoaW50MzJfdCB2YWx1ZSkKICAgICBWYWx1
ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigpLCBhcmd1bWVudCwgYXJndW1lbnQp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQzMl90
Pihwcm9jLCB2YWx1ZSkpOwogfQpAQCAtOTk5Nyw3ICsxMDAwNCw3IEBAIHZvaWQgdGVzdE1vZEFy
Z3MzMihpbnQzMl90IG51bWVyYXRvciwgaW4KICAgICBWYWx1ZSogYXJndW1lbnQyID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIxKSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgTW9kLCBPcmlnaW4oKSwgYXJndW1lbnQxLCBhcmd1bWVudDIpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIG51bWVyYXRvciwg
ZGVub21pbmF0b3IpID09IG51bWVyYXRvciAlIGRlbm9taW5hdG9yKTsKIH0KQEAgLTEwMDE1LDcg
KzEwMDIyLDcgQEAgdm9pZCB0ZXN0TW9kSW1tczMyKGludDMyX3QgbnVtZXJhdG9yLCBpbgogICAg
IFZhbHVlKiBhcmd1bWVudDEgPSByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgbnVtZXJhdG9yKTsKICAgICBWYWx1ZSogYXJndW1lbnQyID0gcm9vdC0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGRlbm9taW5hdG9yKTsKICAgICBWYWx1
ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigpLCBh
cmd1bWVudDEsIGFyZ3VtZW50Mik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGNv
bXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgbnVtZXJhdG9yLCBkZW5vbWluYXRvcikgPT0gbnVt
ZXJhdG9yICUgZGVub21pbmF0b3IpOwogfQpAQCAtMTAwMjcsNyArMTAwMzQsNyBAQCB2b2lkIHRl
c3RDaGlsbE1vZEFyZyhpbnQ2NF90IHZhbHVlKQogCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIENoaWxsTW9kLCBPcmlnaW4oKSwgYXJndW1lbnQsIGFyZ3VtZW50KTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQpOwogCiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgdmFs
dWUpKTsKIH0KQEAgLTEwMDQwLDcgKzEwMDQ3LDcgQEAgdm9pZCB0ZXN0Q2hpbGxNb2RBcmdzKGlu
dDY0X3QgbnVtZXJhdG9yLAogICAgIFZhbHVlKiBhcmd1bWVudDEgPSByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7
CiAgICAgVmFsdWUqIGFyZ3VtZW50MiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKICAgICBWYWx1ZSogcmVz
dWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDaGlsbE1vZCwgT3JpZ2luKCksIGFy
Z3VtZW50MSwgYXJndW1lbnQyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29t
cGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCBudW1lcmF0b3IsIGRlbm9taW5hdG9yKSA9PSBjaGls
bE1vZChudW1lcmF0b3IsIGRlbm9taW5hdG9yKSk7CiB9CkBAIC0xMDA1Myw3ICsxMDA2MCw3IEBA
IHZvaWQgdGVzdENoaWxsTW9kSW1tcyhpbnQ2NF90IG51bWVyYXRvciwKICAgICBWYWx1ZSogYXJn
dW1lbnQxID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIG51
bWVyYXRvcik7CiAgICAgVmFsdWUqIGFyZ3VtZW50MiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBkZW5vbWluYXRvcik7CiAgICAgVmFsdWUqIHJlc3VsdCA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2hpbGxNb2QsIE9yaWdpbigpLCBhcmd1bWVu
dDEsIGFyZ3VtZW50Mik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVB
bmRSdW48aW50NjRfdD4ocHJvYywgbnVtZXJhdG9yLCBkZW5vbWluYXRvcikgPT0gY2hpbGxNb2Qo
bnVtZXJhdG9yLCBkZW5vbWluYXRvcikpOwogfQpAQCAtMTAwNjYsNyArMTAwNzMsNyBAQCB2b2lk
IHRlc3RDaGlsbE1vZEFyZzMyKGludDMyX3QgdmFsdWUpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQ2hpbGxNb2QsIE9yaWdpbigpLCBhcmd1bWVudCwgYXJndW1lbnQpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCB2
YWx1ZSkpOwogfQpAQCAtMTAwODEsNyArMTAwODgsNyBAQCB2b2lkIHRlc3RDaGlsbE1vZEFyZ3Mz
MihpbnQzMl90IG51bWVyYXRvCiAgICAgVmFsdWUqIGFyZ3VtZW50MiA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSkp
OwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENoaWxs
TW9kLCBPcmlnaW4oKSwgYXJndW1lbnQxLCBhcmd1bWVudDIpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7
CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIG51bWVyYXRvciwgZGVu
b21pbmF0b3IpID09IGNoaWxsTW9kKG51bWVyYXRvciwgZGVub21pbmF0b3IpKTsKIH0KQEAgLTEw
MDk0LDcgKzEwMTAxLDcgQEAgdm9pZCB0ZXN0Q2hpbGxNb2RJbW1zMzIoaW50MzJfdCBudW1lcmF0
bwogICAgIFZhbHVlKiBhcmd1bWVudDEgPSByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgbnVtZXJhdG9yKTsKICAgICBWYWx1ZSogYXJndW1lbnQyID0gcm9vdC0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGRlbm9taW5hdG9yKTsKICAg
ICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDaGlsbE1vZCwg
T3JpZ2luKCksIGFyZ3VtZW50MSwgYXJndW1lbnQyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAg
ICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBudW1lcmF0b3IsIGRlbm9taW5h
dG9yKSA9PSBjaGlsbE1vZChudW1lcmF0b3IsIGRlbm9taW5hdG9yKSk7CiB9CkBAIC0xMDEwNSw3
ICsxMDExMiw3IEBAIHZvaWQgdGVzdFN3aXRjaCh1bnNpZ25lZCBkZWdyZWUsIHVuc2lnbmUKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogCiAgICAgQmFzaWNCbG9jayog
dGVybWluYXRlID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHRlcm1pbmF0ZS0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgdGVybWluYXRlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRlcm1pbmF0ZS0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtMTAxMTYsNyArMTAxMjMs
NyBAQCB2b2lkIHRlc3RTd2l0Y2godW5zaWduZWQgZGVncmVlLCB1bnNpZ25lCiAKICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgZGVncmVlOyArK2kpIHsKICAgICAgICAgQmFzaWNCbG9jayog
bmV3QmxvY2sgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgICAgIG5ld0Jsb2NrLT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICAgICAgbmV3QmxvY2stPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICBuZXdCbG9j
ay0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIE9y
aWdpbigpLCAoaSAmIDEpID8gR1BSSW5mbzo6YXJndW1lbnRHUFIyIDogR1BSSW5mbzo6YXJndW1l
bnRHUFIxKSk7CkBAIC0xMDE0Nyw3ICsxMDE1NCw3IEBAIHZvaWQgdGVzdFN3aXRjaENoaWxsRGl2
KHVuc2lnbmVkIGRlZ3JlZSwKICAgICBWYWx1ZSogcmlnaHQgPSByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMik7CiAK
ICAgICBCYXNpY0Jsb2NrKiB0ZXJtaW5hdGUgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgdGVybWlu
YXRlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0ZXJtaW5hdGUtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGVy
bWluYXRlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBA
IC0xMDE1OSw3ICsxMDE2Niw3IEBAIHZvaWQgdGVzdFN3aXRjaENoaWxsRGl2KHVuc2lnbmVkIGRl
Z3JlZSwKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZGVncmVlOyArK2kpIHsKICAgICAg
ICAgQmFzaWNCbG9jayogbmV3QmxvY2sgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICAgICAgbmV3
QmxvY2stPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICBuZXdCbG9jay0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgICAgIG5ld0Jsb2NrLT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAgIHBy
b2MsIENoaWxsRGl2LCBPcmlnaW4oKSwgKGkgJiAxKSA/IHJpZ2h0IDogbGVmdCwgKGkgJiAxKSA/
IGxlZnQgOiByaWdodCkpOwpAQCAtMTAxNzAsNyArMTAxNzcsMTAgQEAgdm9pZCB0ZXN0U3dpdGNo
Q2hpbGxEaXYodW5zaWduZWQgZGVncmVlLAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7
CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZGVncmVlOyArK2kpIHsKLSAgICAgICAg
Q0hFQ0soaW52b2tlPGludDMyX3Q+KCpjb2RlLCBpICogZ2FwLCA0MiwgMTEpID09ICgoaSAmIDEp
ID8gMTEvNDIgOiA0Mi8xMSkpOworICAgICAgICBkYXRhTG9nKCJpID0gIiwgaSwgIlxuIik7Cisg
ICAgICAgIGludDMyX3QgcmVzdWx0ID0gaW52b2tlPGludDMyX3Q+KCpjb2RlLCBpICogZ2FwLCA0
MiwgMTEpOworICAgICAgICBkYXRhTG9nKCJyZXN1bHQgPSAiLCByZXN1bHQsICJcbiIpOworICAg
ICAgICBDSEVDSyhyZXN1bHQgPT0gKChpICYgMSkgPyAxMS80MiA6IDQyLzExKSk7CiAgICAgICAg
IGlmIChnYXAgPiAxKSB7CiAgICAgICAgICAgICBDSEVDSyghaW52b2tlPGludDMyX3Q+KCpjb2Rl
LCBpICogZ2FwICsgMSwgNDIsIDExKSk7CiAgICAgICAgICAgICBDSEVDSyghaW52b2tlPGludDMy
X3Q+KCpjb2RlLCBpICogZ2FwIC0gMSwgNDIsIDExKSk7CkBAIC0xMDE4OCw3ICsxMDE5OCw3IEBA
IHZvaWQgdGVzdFN3aXRjaFRhcmdldHRpbmdTYW1lQmxvY2soKQogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAKICAgICBCYXNpY0Jsb2NrKiB0ZXJtaW5hdGUgPSBwcm9j
LmFkZEJsb2NrKCk7Ci0gICAgdGVybWluYXRlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICB0ZXJtaW5hdGUtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgdGVybWluYXRlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgNSkpOwogCkBAIC0xMDE5OCw3ICsxMDIwOCw3IEBAIHZvaWQgdGVzdFN3
aXRjaFRhcmdldHRpbmdTYW1lQmxvY2soKQogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGVybWlu
YXRlKSk7CiAKICAgICBCYXNpY0Jsb2NrKiBvdGhlclRhcmdldCA9IHByb2MuYWRkQmxvY2soKTsK
LSAgICBvdGhlclRhcmdldC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgb3RoZXJUYXJn
ZXQtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgb3RoZXJUYXJnZXQtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCA0MikpOwogICAgIHN3aXRjaFZhbHVlLT5hcHBlbmRDYXNlKFN3aXRjaENhc2UoMywg
RnJlcXVlbnRlZEJsb2NrKG90aGVyVGFyZ2V0KSkpOwpAQCAtMTAyMTgsNyArMTAyMjgsNyBAQCB2
b2lkIHRlc3RTd2l0Y2hUYXJnZXR0aW5nU2FtZUJsb2NrRm9sZFBhCiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKIAogICAgIEJhc2ljQmxvY2sqIHRlcm1pbmF0ZSA9IHBy
b2MuYWRkQmxvY2soKTsKLSAgICB0ZXJtaW5hdGUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHRlcm1pbmF0ZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICB0ZXJtaW5hdGUtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCA0MikpOwogCkBAIC0xMDIyOSw3ICsxMDIzOSw3IEBAIHZvaWQgdGVz
dFN3aXRjaFRhcmdldHRpbmdTYW1lQmxvY2tGb2xkUGEKICAgICAgICAgRnJlcXVlbnRlZEJsb2Nr
KHRlcm1pbmF0ZSkpOwogCiAgICAgQmFzaWNCbG9jayogb3RoZXJUYXJnZXQgPSBwcm9jLmFkZEJs
b2NrKCk7Ci0gICAgb3RoZXJUYXJnZXQtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIG90
aGVyVGFyZ2V0LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBzd2l0Y2hWYWx1ZS0+YXBwZW5kQ2FzZShTd2l0Y2hD
YXNlKDMsIEZyZXF1ZW50ZWRCbG9jayhvdGhlclRhcmdldCkpKTsKICAgICBzd2l0Y2hWYWx1ZS0+
YXBwZW5kQ2FzZShTd2l0Y2hDYXNlKDEzLCBGcmVxdWVudGVkQmxvY2sob3RoZXJUYXJnZXQpKSk7
CkBAIC0xMDI0Niw3ICsxMDI1Niw3IEBAIHZvaWQgdGVzdFRydW5jRm9sZChpbnQ2NF90IHZhbHVl
KQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgVHJ1bmMs
IE9yaWdpbigpLApAQCAtMTAyNTksNyArMTAyNjksNyBAQCB2b2lkIHRlc3RaRXh0MzIoaW50MzJf
dCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IFpFeHQzMiwgT3JpZ2luKCksCkBAIC0xMDI3NCw3ICsxMDI4NCw3IEBAIHZvaWQgdGVzdFpFeHQz
MkZvbGQoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIFpFeHQzMiwgT3JpZ2luKCksCkBAIC0xMDI4Nyw3ICsxMDI5Nyw3IEBAIHZv
aWQgdGVzdFNFeHQzMihpbnQzMl90IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgU0V4dDMyLCBPcmlnaW4oKSwKQEAgLTEwMzAyLDcgKzEwMzEy
LDcgQEAgdm9pZCB0ZXN0U0V4dDMyRm9sZChpbnQzMl90IHZhbHVlKQogewogICAgIFByb2NlZHVy
ZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU0V4dDMyLCBPcmlnaW4oKSwKQEAgLTEw
MzE1LDcgKzEwMzI1LDcgQEAgdm9pZCB0ZXN0VHJ1bmNaRXh0MzIoaW50MzJfdCB2YWx1ZSkKIHsK
ICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmln
aW4oKSwKQEAgLTEwMzMyLDcgKzEwMzQyLDcgQEAgdm9pZCB0ZXN0VHJ1bmNTRXh0MzIoaW50MzJf
dCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IFRydW5jLCBPcmlnaW4oKSwKQEAgLTEwMzQ5LDcgKzEwMzU5LDcgQEAgdm9pZCB0ZXN0U0V4dDgo
aW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIFNFeHQ4LCBPcmlnaW4oKSwKQEAgLTEwMzY0LDcgKzEwMzc0LDcgQEAgdm9pZCB0ZXN0
U0V4dDhGb2xkKGludDMyX3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBTRXh0OCwgT3JpZ2luKCksCkBAIC0xMDM3Nyw3ICsxMDM4Nyw3IEBA
IHZvaWQgdGVzdFNFeHQ4U0V4dDgoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNFeHQ4LCBPcmlnaW4oKSwKQEAgLTEwMzk0LDcg
KzEwNDA0LDcgQEAgdm9pZCB0ZXN0U0V4dDhTRXh0MTYoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQ
cm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNFeHQ4LCBPcmlnaW4oKSwK
QEAgLTEwNDExLDcgKzEwNDIxLDcgQEAgdm9pZCB0ZXN0U0V4dDhCaXRBbmQoaW50MzJfdCB2YWx1
ZSwgaW50MwogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
U0V4dDgsIE9yaWdpbigpLApAQCAtMTA0MjksNyArMTA0MzksNyBAQCB2b2lkIHRlc3RCaXRBbmRT
RXh0OChpbnQzMl90IHZhbHVlLCBpbnQzCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMTA0NDcsNyArMTA0NTcsNyBA
QCB2b2lkIHRlc3RTRXh0MTYoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKICAgICAgICAgICAgIHByb2MsIFNFeHQxNiwgT3JpZ2luKCksCkBAIC0xMDQ2Miw3ICsx
MDQ3Miw3IEBAIHZvaWQgdGVzdFNFeHQxNkZvbGQoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9j
ZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNFeHQxNiwgT3JpZ2luKCksCkBA
IC0xMDQ3NSw3ICsxMDQ4NSw3IEBAIHZvaWQgdGVzdFNFeHQxNlNFeHQxNihpbnQzMl90IHZhbHVl
KQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU0V4dDE2
LCBPcmlnaW4oKSwKQEAgLTEwNDkyLDcgKzEwNTAyLDcgQEAgdm9pZCB0ZXN0U0V4dDE2U0V4dDgo
aW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIFNFeHQxNiwgT3JpZ2luKCksCkBAIC0xMDUwOSw3ICsxMDUxOSw3IEBAIHZvaWQgdGVz
dFNFeHQxNkJpdEFuZChpbnQzMl90IHZhbHVlLCBpbnQKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKICAgICAgICAgICAgIHByb2MsIFNFeHQxNiwgT3JpZ2luKCksCkBAIC0xMDUyNyw3ICsx
MDUzNyw3IEBAIHZvaWQgdGVzdEJpdEFuZFNFeHQxNihpbnQzMl90IHZhbHVlLCBpbnQKIHsKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2lu
KCksCkBAIC0xMDU0NSw3ICsxMDU1NSw3IEBAIHZvaWQgdGVzdFNFeHQzMkJpdEFuZChpbnQzMl90
IHZhbHVlLCBpbnQKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIFNFeHQzMiwgT3JpZ2luKCksCkBAIC0xMDU2Myw3ICsxMDU3Myw3IEBAIHZvaWQgdGVzdEJp
dEFuZFNFeHQzMihpbnQzMl90IHZhbHVlLCBpbnQKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0xMDU4MSw3ICsxMDU5
MSw3IEBAIHZvaWQgdGVzdEJhc2ljU2VsZWN0KCkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0xMDYwMyw3ICsxMDYx
Myw3IEBAIHZvaWQgdGVzdFNlbGVjdFRlc3QoKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTEwNjIyLDcgKzEwNjMy
LDcgQEAgdm9pZCB0ZXN0U2VsZWN0Q29tcGFyZURvdWJsZSgpCiB7CiAgICAgUHJvY2VkdXJlIHBy
b2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLApAQCAtMTA2NTMs
NyArMTA2NjMsNyBAQCB2b2lkIHRlc3RTZWxlY3RDb21wYXJlRmxvYXQoZmxvYXQgYSwgZmxvCiAg
ICAgVmFsdWUqIGZsb2F0VmFsdWUxID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3
aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MWludDMyKTsKICAgICBWYWx1ZSogZmxvYXRWYWx1
ZTIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwg
YXJndW1lbnQyaW50MzIpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTEwNjkxLDcgKzEwNzAxLDcgQEAgdm9pZCB0ZXN0U2Vs
ZWN0Q29tcGFyZUZsb2F0VG9Eb3VibGUoZmxvYQogICAgIFZhbHVlKiBkb3VibGVWYWx1ZTEgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBmbG9h
dFZhbHVlMSk7CiAgICAgVmFsdWUqIGRvdWJsZVZhbHVlMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGZsb2F0VmFsdWUyKTsKIAotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0x
MDcxOSw3ICsxMDcyOSw3IEBAIHZvaWQgdGVzdFNlbGVjdERvdWJsZSgpCiB7CiAgICAgUHJvY2Vk
dXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLApAQCAt
MTA3NDEsNyArMTA3NTEsNyBAQCB2b2lkIHRlc3RTZWxlY3REb3VibGVUZXN0KCkKIHsKICAgICBQ
cm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCks
CkBAIC0xMDc2MCw3ICsxMDc3MCw3IEBAIHZvaWQgdGVzdFNlbGVjdERvdWJsZUNvbXBhcmVEb3Vi
bGUoKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2Vs
ZWN0LCBPcmlnaW4oKSwKQEAgLTEwNzkwLDcgKzEwODAwLDcgQEAgdm9pZCB0ZXN0U2VsZWN0RG91
YmxlQ29tcGFyZUZsb2F0KGZsb2F0IAogICAgIFZhbHVlKiBmbG9hdFZhbHVlMSA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDFpbnQz
Mik7CiAgICAgVmFsdWUqIGZsb2F0VmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MmludDMyKTsKIAotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0xMDgyMSw3
ICsxMDgzMSw3IEBAIHZvaWQgdGVzdFNlbGVjdEZsb2F0Q29tcGFyZUZsb2F0KGZsb2F0IGEKICAg
ICBWYWx1ZSogZmxvYXRWYWx1ZTMgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdp
c2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzaW50MzIpOwogICAgIFZhbHVlKiBmbG9hdFZhbHVl
NCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBh
cmd1bWVudDRpbnQzMik7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBTZWxlY3QsIE9yaWdpbigpLApAQCAtMTA4NDcsNyArMTA4NTcsNyBAQCB2b2lkIHRlc3RTZWxl
Y3REb3VibGVDb21wYXJlRG91YmxlKGJvb2wgCiAgICAgICAgIFZhbHVlKiBhcmcyID0gcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1
bWVudEZQUjIpOwogICAgICAgICBWYWx1ZSogYXJnMyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIzKTsKIAotICAg
ICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywg
U2VsZWN0LCBPcmlnaW4oKSwKQEAgLTEwODgzLDcgKzEwODkzLDcgQEAgdm9pZCB0ZXN0U2VsZWN0
RG91YmxlQ29tcGFyZURvdWJsZShib29sIAogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+YXBwZW5k
KENvbnN0cmFpbmVkVmFsdWUoYXJnMiwgVmFsdWVSZXA6OlNvbWVSZWdpc3RlcikpOwogICAgICAg
ICBrZWVwVmFsdWVzTGl2ZS0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3Qg
U3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeyB9KTsKIAotICAgICAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgICAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0KTsKICAgICAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIAogICAgICAgICBmb3Ig
KGF1dG8mIGxlZnQgOiBmbG9hdGluZ1BvaW50T3BlcmFuZHM8ZG91YmxlPigpKSB7CkBAIC0xMDkx
MCw3ICsxMDkyMCw3IEBAIHZvaWQgdGVzdFNlbGVjdERvdWJsZUNvbXBhcmVEb3VibGUoYm9vbCAK
ICAgICAgICAga2VlcFZhbHVlc0xpdmUtPmFwcGVuZChDb25zdHJhaW5lZFZhbHVlKGFyZzMsIFZh
bHVlUmVwOjpTb21lUmVnaXN0ZXIpKTsKICAgICAgICAga2VlcFZhbHVlc0xpdmUtPnNldEdlbmVy
YXRvcihbJl0gKENDYWxsSGVscGVycyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYp
IHsgfSk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgICAgIGF1dG8gY29kZSA9
IGNvbXBpbGUocHJvYyk7CiAKICAgICAgICAgZm9yIChhdXRvJiBsZWZ0IDogZmxvYXRpbmdQb2lu
dE9wZXJhbmRzPGRvdWJsZT4oKSkgewpAQCAtMTA5MzgsNyArMTA5NDgsNyBAQCB2b2lkIHRlc3RT
ZWxlY3REb3VibGVDb21wYXJlRG91YmxlKGJvb2wgCiAgICAgICAgIGtlZXBWYWx1ZXNMaXZlLT5h
cHBlbmQoQ29uc3RyYWluZWRWYWx1ZShhcmczLCBWYWx1ZVJlcDo6U29tZVJlZ2lzdGVyKSk7CiAg
ICAgICAgIGtlZXBWYWx1ZXNMaXZlLT5zZXRHZW5lcmF0b3IoWyZdIChDQ2FsbEhlbHBlcnMmLCBj
b25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7IH0pOwogCi0gICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7Cisg
ICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQpOwogICAgICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCiAgICAgICAg
IGZvciAoYXV0byYgbGVmdCA6IGZsb2F0aW5nUG9pbnRPcGVyYW5kczxkb3VibGU+KCkpIHsKQEAg
LTEwOTU1LDcgKzEwOTY1LDcgQEAgdm9pZCB0ZXN0U2VsZWN0RG91YmxlQ29tcGFyZURvdWJsZShi
b29sIAogICAgICAgICBWYWx1ZSogYXJnMSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIxKTsKICAgICAgICAgVmFs
dWUqIGFyZzIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEZQUkluZm86OmFyZ3VtZW50RlBSMik7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0x
MDk5MCw3ICsxMTAwMCw3IEBAIHZvaWQgdGVzdFNlbGVjdERvdWJsZUNvbXBhcmVEb3VibGUoYm9v
bCAKICAgICAgICAga2VlcFZhbHVlc0xpdmUtPmFwcGVuZChDb25zdHJhaW5lZFZhbHVlKGFyZzIs
IFZhbHVlUmVwOjpTb21lUmVnaXN0ZXIpKTsKICAgICAgICAga2VlcFZhbHVlc0xpdmUtPnNldEdl
bmVyYXRvcihbJl0gKENDYWxsSGVscGVycyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFt
cyYpIHsgfSk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgICAgIGF1dG8gY29k
ZSA9IGNvbXBpbGUocHJvYyk7CiAKICAgICAgICAgZm9yIChhdXRvJiBsZWZ0IDogZmxvYXRpbmdQ
b2ludE9wZXJhbmRzPGRvdWJsZT4oKSkgewpAQCAtMTEwMzMsNyArMTEwNDMsNyBAQCB2b2lkIHRl
c3RTZWxlY3RGbG9hdENvbXBhcmVGbG9hdChib29sICgqCiAgICAgICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgICAgICByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMykpKTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTExMDc3LDcgKzExMDg3
LDcgQEAgdm9pZCB0ZXN0U2VsZWN0RmxvYXRDb21wYXJlRmxvYXQoYm9vbCAoKgogICAgICAgICBr
ZWVwVmFsdWVzTGl2ZS0+YXBwZW5kKENvbnN0cmFpbmVkVmFsdWUoYXJnMiwgVmFsdWVSZXA6OlNv
bWVSZWdpc3RlcikpOwogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+c2V0R2VuZXJhdG9yKFsmXSAo
Q0NhbGxIZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeyB9KTsKIAot
ICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICAgICAgYXV0byBjb2RlID0gY29tcGlsZShw
cm9jKTsKIAogICAgICAgICBmb3IgKGF1dG8mIGxlZnQgOiBmbG9hdGluZ1BvaW50T3BlcmFuZHM8
ZmxvYXQ+KCkpIHsKQEAgLTExMTEyLDcgKzExMTIyLDcgQEAgdm9pZCB0ZXN0U2VsZWN0RmxvYXRD
b21wYXJlRmxvYXQoYm9vbCAoKgogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+YXBwZW5kKENvbnN0
cmFpbmVkVmFsdWUoYXJnMywgVmFsdWVSZXA6OlNvbWVSZWdpc3RlcikpOwogICAgICAgICBrZWVw
VmFsdWVzTGl2ZS0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3RhY2tt
YXBHZW5lcmF0aW9uUGFyYW1zJikgeyB9KTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgICAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsK
ICAgICAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIAogICAgICAgICBmb3IgKGF1dG8m
IGxlZnQgOiBmbG9hdGluZ1BvaW50T3BlcmFuZHM8ZmxvYXQ+KCkpIHsKQEAgLTExMTQ4LDcgKzEx
MTU4LDcgQEAgdm9pZCB0ZXN0U2VsZWN0RmxvYXRDb21wYXJlRmxvYXQoYm9vbCAoKgogICAgICAg
ICBrZWVwVmFsdWVzTGl2ZS0+YXBwZW5kKENvbnN0cmFpbmVkVmFsdWUoYXJnMywgVmFsdWVSZXA6
OlNvbWVSZWdpc3RlcikpOwogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+c2V0R2VuZXJhdG9yKFsm
XSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeyB9KTsK
IAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICAgICAgYXV0byBjb2RlID0gY29tcGls
ZShwcm9jKTsKIAogICAgICAgICBmb3IgKGF1dG8mIGxlZnQgOiBmbG9hdGluZ1BvaW50T3BlcmFu
ZHM8ZmxvYXQ+KCkpIHsKQEAgLTExMTcxLDcgKzExMTgxLDcgQEAgdm9pZCB0ZXN0U2VsZWN0Rmxv
YXRDb21wYXJlRmxvYXQoYm9vbCAoKgogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIp
KSk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
ICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0xMTIxMiw3ICsxMTIyMiw3IEBAIHZvaWQg
dGVzdFNlbGVjdEZsb2F0Q29tcGFyZUZsb2F0KGJvb2wgKCoKICAgICAgICAga2VlcFZhbHVlc0xp
dmUtPmFwcGVuZChDb25zdHJhaW5lZFZhbHVlKGFyZzIsIFZhbHVlUmVwOjpTb21lUmVnaXN0ZXIp
KTsKICAgICAgICAga2VlcFZhbHVlc0xpdmUtPnNldEdlbmVyYXRvcihbJl0gKENDYWxsSGVscGVy
cyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsgfSk7CiAKLSAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
KTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdCk7CiAgICAgICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKICAg
ICAgICAgZm9yIChhdXRvJiBsZWZ0IDogZmxvYXRpbmdQb2ludE9wZXJhbmRzPGZsb2F0PigpKSB7
CkBAIC0xMTIzOSw3ICsxMTI0OSw3IEBAIHZvaWQgdGVzdFNlbGVjdEZvbGQoaW50cHRyX3QgdmFs
dWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTZWxl
Y3QsIE9yaWdpbigpLApAQCAtMTEyNTksNyArMTEyNjksNyBAQCB2b2lkIHRlc3RTZWxlY3RJbnZl
cnQoKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2Vs
ZWN0LCBPcmlnaW4oKSwKQEAgLTExMzEyLDcgKzExMzIyLDcgQEAgdm9pZCB0ZXN0Q2hlY2tTZWxl
Y3QoKQogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKICAgICAKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTExMzgzLDcgKzEx
MzkzLDcgQEAgdm9pZCB0ZXN0Q2hlY2tTZWxlY3RDaGVja1NlbGVjdCgpCiAgICAgICAgICAgICBq
aXQucmV0KCk7CiAgICAgICAgIH0pOwogICAgIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtMTE0MTksNyArMTE0MjksNyBAQCB2b2lkIHRlc3RQ
b3dEb3VibGVCeUludGVnZXJMb29wKGRvdWJsZSB4CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7
CiAgICAgYXV0byByZXN1bHQgPSBwb3dEb3VibGVJbnQzMihwcm9jLCByb290LCBPcmlnaW4oKSwg
eCwgeSk7CiAgICAgQmFzaWNCbG9jayogY29udGludWF0aW9uID0gcmVzdWx0LmZpcnN0OwotICAg
IGNvbnRpbnVhdGlvbi0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0LnNlY29uZCk7CisgICAgY29udGludWF0aW9uLT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0LnNlY29uZCk7CiAKICAgICBDSEVD
Syhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgeE9wZXJhbmQsIHlPcGVy
YW5kKSwgYjNQb3coeE9wZXJhbmQsIHlPcGVyYW5kKSkpOwogfQpAQCAtMTE0MjksNyArMTE0Mzks
NyBAQCB2b2lkIHRlc3RUcnVuY09ySGlnaCgpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKQEAgLTExNDQ3LDcgKzExNDU3LDcg
QEAgdm9pZCB0ZXN0VHJ1bmNPckxvdygpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKQEAgLTExNDY1LDcgKzExNDc1LDcgQEAg
dm9pZCB0ZXN0Qml0QW5kT3JIaWdoKCkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTExNDg0LDcgKzExNDk0LDcgQEAg
dm9pZCB0ZXN0Qml0QW5kT3JMb3coKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMTE1MDcsMjAgKzExNTE3LDIwIEBA
IHZvaWQgdGVzdEJyYW5jaDY0RXF1YWwoaW50NjRfdCBsZWZ0LCBpbnQKIAogICAgIFZhbHVlKiBh
cmcxID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFZhbHVlKiBhcmcyID0gcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBFcXVhbCwgT3JpZ2luKCksIGFyZzEsIGFyZzIp
LAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxz
ZUNhc2UpKTsKIAogICAgIGJvb2wgdHJ1ZVJlc3VsdCA9IHRydWU7Ci0gICAgdGhlbkNhc2UtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5h
cHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZDhaLCBPcmlnaW4o
KSwKICAgICAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksICZ0cnVlUmVzdWx0KSkpOwogCiAgICAgYm9vbCBlbHNlUmVzdWx0ID0gZmFsc2U7
Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgTG9hZDhaLCBPcmlnaW4oKSwKQEAgLTExNTM4LDIwICsxMTU0OCwyMCBAQCB2b2lkIHRlc3RC
cmFuY2g2NEVxdWFsSW1tKGludDY0X3QgbGVmdCwgCiAKICAgICBWYWx1ZSogYXJnMSA9IHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKTsKICAgICBWYWx1ZSogYXJnMiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgcmlnaHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
QnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBF
cXVhbCwgT3JpZ2luKCksIGFyZzEsIGFyZzIpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhl
bkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAogICAgIGJvb2wgdHJ1ZVJlc3Vs
dCA9IHRydWU7Ci0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRo
ZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAg
ICAgICAgcHJvYywgTG9hZDhaLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHRoZW5DYXNlLT5hcHBl
bmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZ0cnVlUmVzdWx0KSkpOwogCiAg
ICAgYm9vbCBlbHNlUmVzdWx0ID0gZmFsc2U7Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8TWVt
b3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZDhaLCBPcmlnaW4oKSwKQEAgLTExNTcx
LDIwICsxMTU4MSwyMCBAQCB2b2lkIHRlc3RCcmFuY2g2NEVxdWFsTWVtKGludDY0X3QgbGVmdCwg
CiAgICAgICAgIHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiBhcmcyID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBFcXVhbCwgT3JpZ2luKCksIGFyZzEsIGFyZzIpLAogICAg
ICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2Up
KTsKIAogICAgIGJvb2wgdHJ1ZVJlc3VsdCA9IHRydWU7Ci0gICAgdGhlbkNhc2UtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmRO
ZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZDhaLCBPcmlnaW4oKSwKICAg
ICAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksICZ0cnVlUmVzdWx0KSkpOwogCiAgICAgYm9vbCBlbHNlUmVzdWx0ID0gZmFsc2U7Ci0gICAg
ZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IGVsc2VDYXNlLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9h
ZDhaLCBPcmlnaW4oKSwKQEAgLTExNjA0LDIwICsxMTYxNCwyMCBAQCB2b2lkIHRlc3RCcmFuY2g2
NEVxdWFsTWVtSW1tKGludDY0X3QgbGVmCiAgICAgICAgIHByb2MsIExvYWQsIHBvaW50ZXJUeXBl
KCksIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiBhcmcy
ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCByaWdodCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEVxdWFsLCBPcmlnaW4oKSwgYXJnMSwgYXJnMiks
CiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNl
Q2FzZSkpOwogCiAgICAgYm9vbCB0cnVlUmVzdWx0ID0gdHJ1ZTsKLSAgICB0aGVuQ2FzZS0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFw
cGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkOFosIE9yaWdpbigp
LAogICAgICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgJnRydWVSZXN1bHQpKSk7CiAKICAgICBib29sIGVsc2VSZXN1bHQgPSBmYWxzZTsK
LSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBMb2FkOFosIE9yaWdpbigpLApAQCAtMTE2NDEsNyArMTE2NTEsNyBAQCB2b2lkIHRlc3RTdG9y
ZThMb2FkOFooaW50MzJfdCB2YWx1ZSkKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAg
ICAgICAgIHB0cik7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZDhaLCBP
cmlnaW4oKSwgcHRyKSk7CiAKQEAgLTExNjYzLDcgKzExNjczLDcgQEAgdm9pZCB0ZXN0U3RvcmUx
NkxvYWQxNlooaW50MzJfdCB2YWx1ZSkKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAg
ICAgICAgIHB0cik7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZDE2Wiwg
T3JpZ2luKCksIHB0cikpOwogCkBAIC0xMTY3NSw3ICsxMTY4NSw3IEBAIHZvaWQgdGVzdFNTaHJT
aGwzMihpbnQzMl90IHZhbHVlLCBpbnQzMl8KICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAog
ICAgICAgICAgICAgcHJvYywgU1NociwgT3JpZ2luKCksCkBAIC0xMTY5Nyw3ICsxMTcwNyw3IEBA
IHZvaWQgdGVzdFNTaHJTaGw2NChpbnQ2NF90IHZhbHVlLCBpbnQzMl8KICAgICBQcm9jZWR1cmUg
cHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU1NociwgT3JpZ2luKCksCkBAIC0xMTcy
NSw4ICsxMTczNSw4IEBAIHZvaWQgdGVzdFRyaXZpYWxJbmZpbml0ZUxvb3AoKQogICAgIFByb2Nl
ZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAg
QmFzaWNCbG9jayogbG9vcCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3Ap
KTsKLSAgICBsb29wLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4o
KSwgRnJlcXVlbnRlZEJsb2NrKGxvb3ApKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhsb29wKSk7CisgICAgbG9v
cC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVk
QmxvY2sobG9vcCkpOwogCiAgICAgY29tcGlsZShwcm9jKTsKIH0KQEAgLTExNzQwLDE1ICsxMTc1
MCwxNSBAQCB2b2lkIHRlc3RGb2xkUGF0aEVxdWFsKCkKIAogICAgIFZhbHVlKiBhcmcgPSByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2lu
KCksIGFyZywgRnJlcXVlbnRlZEJsb2NrKHRoZW5CbG9jayksIEZyZXF1ZW50ZWRCbG9jayhlbHNl
QmxvY2spKTsKIAotICAgIHRoZW5CbG9jay0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
dGhlbkJsb2NrLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHRoZW5CbG9jay0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIEVxdWFsLCBPcmlnaW4oKSwgYXJnLCB0aGVuQmxvY2stPmFwcGVuZE5ldzxDb25z
dFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpKTsKIAotICAgIGVsc2VCbG9jay0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUJsb2NrLT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VCbG9jay0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEVxdWFsLCBPcmlnaW4oKSwgYXJnLCBl
bHNlQmxvY2stPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpKTsK
QEAgLTExNzY2LDcgKzExNzc2LDcgQEAgdm9pZCB0ZXN0TFNoaWZ0U2VsZjMyKCkKICAgICBWYWx1
ZSogYXJnID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgcHJvYywgVHJ1bmMsIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBTaGwsIE9yaWdpbigpLCBhcmcsIGFyZykpOwogCkBAIC0xMTc4OSw3ICsxMTc5OSw3IEBA
IHZvaWQgdGVzdFJTaGlmdFNlbGYzMigpCiAgICAgVmFsdWUqIGFyZyA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCiAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjApKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU1NociwgT3JpZ2luKCksIGFy
ZywgYXJnKSk7CiAKQEAgLTExODEyLDcgKzExODIyLDcgQEAgdm9pZCB0ZXN0VVJTaGlmdFNlbGYz
MigpCiAgICAgVmFsdWUqIGFyZyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgIHBy
b2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgWlNociwgT3JpZ2luKCksIGFyZywgYXJnKSk7CiAKQEAgLTExODMz
LDcgKzExODQzLDcgQEAgdm9pZCB0ZXN0TFNoaWZ0U2VsZjY0KCkKICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBh
cmcgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgU2hsLCBPcmlnaW4oKSwgYXJnLCByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRy
dW5jLCBPcmlnaW4oKSwgYXJnKSkpOwpAQCAtMTE4NTcsNyArMTE4NjcsNyBAQCB2b2lkIHRlc3RS
U2hpZnRTZWxmNjQoKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTU2hyLCBPcmlnaW4oKSwgYXJn
LCByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwgYXJnKSkpOwpA
QCAtMTE4ODEsNyArMTE4OTEsNyBAQCB2b2lkIHRlc3RVUlNoaWZ0U2VsZjY0KCkKICAgICBQcm9j
ZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAg
IFZhbHVlKiBhcmcgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgWlNociwgT3JpZ2luKCksIGFyZywgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBUcnVuYywgT3JpZ2luKCksIGFyZykpKTsKQEAgLTExOTE3LDcgKzExOTI3LDcgQEAg
dm9pZCB0ZXN0UGF0Y2hwb2ludERvdWJsZVJlZ3MoKQogICAgICAgICAgICAgbnVtQ2FsbHMrKzsK
ICAgICAgICAgfSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CiAKICAgICBhdXRvIGNv
ZGUgPSBjb21waWxlKHByb2MpOwogICAgIENIRUNLKG51bUNhbGxzID09IDEpOwpAQCAtMTE5NTAs
NyArMTE5NjAsNyBAQCB2b2lkIHRlc3RTcGlsbERlZlNtYWxsZXJUaGFuVXNlKCkKIAogICAgIC8v
IE9uIHg4NiwgU3ViIGFkbWl0IGFuIGFkZHJlc3MgZm9yIGFueSBvcGVyYW5kLiBJZiBpdCB1c2Vz
IHRoZSBzdGFjaywgdGhlIHRvcCBiaXRzIG11c3QgYmUgemVyby4KICAgICBWYWx1ZSogcmVzdWx0
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBmb3JjZVNwaWxs
LCBhcmc2NCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUo
cHJvYyk7CiAgICAgQ0hFQ0soaW52b2tlPGludDY0X3Q+KCpjb2RlLCAweGZmZmZmZmZmMDAwMDAw
MDApID09IDApOwpAQCAtMTE5NzAsNyArMTE5ODAsNyBAQCB2b2lkIHRlc3RTcGlsbFVzZUxhcmdl
clRoYW5EZWYoKQogCiAgICAgVmFsdWUqIGNvbmRpdGlvbiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAg
ICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLApAQCAtMTE5ODAsMTAgKzExOTkw
LDEwIEBAIHZvaWQgdGVzdFNwaWxsVXNlTGFyZ2VyVGhhbkRlZigpCiAgICAgVmFsdWUqIHRydW5j
YXRlZCA9IHRoZW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFpFeHQzMiwgT3JpZ2luKCks
CiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4o
KSwgYXJndW1lbnQpKTsKICAgICBVcHNpbG9uVmFsdWUqIHRoZW5SZXN1bHQgPSB0aGVuQ2FzZS0+
YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHRydW5jYXRlZCk7Ci0gICAg
dGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBG
cmVxdWVudGVkQmxvY2sodGFpbCkpOworICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CiAKICAgICBV
cHNpbG9uVmFsdWUqIGVsc2VSZXN1bHQgPSBlbHNlQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1
ZT4ocHJvYywgT3JpZ2luKCksIGFyZ3VtZW50KTsKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7
CisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4o
KSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKIAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCAxMDA7ICsraSkgewogICAgICAgICBQYXRjaHBvaW50VmFsdWUqIHByZXZlbnRUYWlsRHVwbGlj
YXRpb24gPSB0YWlsLT5hcHBlbmROZXc8UGF0Y2hwb2ludFZhbHVlPihwcm9jLCBWb2lkLCBPcmln
aW4oKSk7CkBAIC0xMjAwNCw3ICsxMjAxNCw3IEBAIHZvaWQgdGVzdFNwaWxsVXNlTGFyZ2VyVGhh
bkRlZigpCiAgICAgVmFsdWUqIHBoaSA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhp
LCBJbnQ2NCwgT3JpZ2luKCkpOwogICAgIHRoZW5SZXN1bHQtPnNldFBoaShwaGkpOwogICAgIGVs
c2VSZXN1bHQtPnNldFBoaShwaGkpOwotICAgIHRhaWwtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBoaSk7CisgICAgdGFpbC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBoaSk7CiAKICAgICBhdXRvIGNvZGUgPSBj
b21waWxlKHByb2MpOwogICAgIENIRUNLKGludm9rZTx1aW50NjRfdD4oKmNvZGUsIDEsIDB4ZmZm
ZmZmZmYwMDAwMDAwMCkgPT0gMCk7CkBAIC0xMjA4NiwxMiArMTIwOTYsMjQ0IEBAIHZvaWQgdGVz
dExhdGVSZWdpc3RlcigpCiAgICAgICAgICAgICBqaXQubm9wKCk7CiAgICAgICAgICAgICBqaXQu
bm9wKCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZFBhdGNocG9pbnQpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmRQYXRjaHBvaW50
KTsKICAgICAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIENIRUNLKGludm9r
ZTx1aW50NjRfdD4oKmNvZGUpID09IHJlc3VsdCk7CiB9CiAKK3ZvaWQgdGhyZWFkZWRJbnRlcnBy
ZXRlclByaW50KFZlY3RvcjxpbnRwdHJfdD4qIHN0cmVhbSwgaW50cHRyX3QgdmFsdWUpCit7Cisg
ICAgc3RyZWFtLT5hcHBlbmQodmFsdWUpOworfQorCit2b2lkIHRlc3RUaHJlYWRlZEludGVycHJl
dGVyKCkKK3sKKyAgICAvLyBUaGlzIGNyZWF0ZXMgYSBwb29yIG1hbidzIHRocmVhZGVkIGludGVy
cHJldGVyIHVzaW5nIFBvbHlKdW1wIGFuZCBzZWVzIGlmIGl0IHdvcmtzLiBOb3RlCisgICAgLy8g
dGhhdCBQb2x5SnVtcCBpcyBub3QgbGlrZSBpbmRpcmVjdCBicmFuY2hlcyBpbiBMTFZNLCBzbyB5
b3UgY2FuJ3QgYWN0dWFsbHkgdXNlIGl0IHRvCisgICAgLy8gaW1wbGVtZW50IGEgcHJvcGVyIHRo
cmVhZGVkIGludGVycHJldGVyLiBUaGlzIGNoZWF0czogdGhlIGRpc3BhdGNoIGluc3RydWN0aW9u
IGlzIGF0IHRoZSB0b3AKKyAgICAvLyBvZiB0aGUgbG9vcC4gVGhpcyBhbHNvIHRlc3RzIFZhcmlh
YmxlVmFsdWUuCisgICAgCisgICAgUHJvY2VkdXJlIHByb2M7CisgICAgCisgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBCYXNpY0Jsb2NrKiBkaXNwYXRjaCA9IHBy
b2MuYWRkQmxvY2soKTsKKyAgICBCYXNpY0Jsb2NrKiBhZGRUb0RhdGFQb2ludGVyID0gcHJvYy5h
ZGRCbG9jaygpOworICAgIEJhc2ljQmxvY2sqIGFkZFRvQ29kZVBvaW50ZXIgPSBwcm9jLmFkZEJs
b2NrKCk7CisgICAgQmFzaWNCbG9jayogYWRkVG9Db2RlUG9pbnRlclRha2VuID0gcHJvYy5hZGRC
bG9jaygpOworICAgIEJhc2ljQmxvY2sqIGFkZFRvQ29kZVBvaW50ZXJOb3RUYWtlbiA9IHByb2Mu
YWRkQmxvY2soKTsKKyAgICBCYXNpY0Jsb2NrKiBhZGRUb0RhdGEgPSBwcm9jLmFkZEJsb2NrKCk7
CisgICAgQmFzaWNCbG9jayogcHJpbnQgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9j
ayogc3RvcCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICAKKyAgICBWYXJpYWJsZSogZGF0YVBvaW50
ZXIgPSBwcm9jLmFkZFZhcmlhYmxlKHBvaW50ZXJUeXBlKCkpOworICAgIFZhcmlhYmxlKiBjb2Rl
UG9pbnRlciA9IHByb2MuYWRkVmFyaWFibGUocG9pbnRlclR5cGUoKSk7CisgICAgCisgICAgcm9v
dC0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAgICAgICBwcm9jLCBTZXQsIE9yaWdpbigp
LCBkYXRhUG9pbnRlciwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKKyAgICByb290LT5hcHBl
bmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQ
b2ludGVyLAorICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSkpOworICAgIFZhbHVlKiBjb250ZXh0ID0g
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBK
dW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRpc3BhdGNoKSk7CisKKyAgICBWYWx1ZSog
Y29kZVBvaW50ZXJWYWx1ZSA9CisgICAgICAgIGRpc3BhdGNoLT5hcHBlbmROZXc8VmFyaWFibGVW
YWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyKTsKKyAgICBQYXRjaHBv
aW50VmFsdWUqIHBvbHlKdW1wID0gZGlzcGF0Y2gtPmFwcGVuZE5ldzxQYXRjaHBvaW50VmFsdWUo
cHJvYywgVm9pZCwgT3JpZ2luKCkpOworICAgIHBvbHlKdW1wLT5lZmZlY3RzLnRlcm1pbmFsID0g
dHJ1ZTsKKyAgICBwb2x5SnVtcC0+YXBwZW5kU29tZVJlZ2lzdGVyKGNvZGVQb2ludGVyVmFsdWUp
OworICAgIHBvbHlKdW1wLT5hcHBlbmRTdWNjZXNzb3IoRnJlcXVlbnRlZEJsb2NrKGFkZFRvRGF0
YVBvaW50ZXIpKTsKKyAgICBwb2x5SnVtcC0+YXBwZW5kU3VjY2Vzc29yKEZyZXF1ZW50ZWRCbG9j
ayhhZGRUb0NvZGVQb2ludGVyKSk7CisgICAgcG9seUp1bXAtPmFwcGVuZFN1Y2Nlc3NvcihGcmVx
dWVudGVkQmxvY2soYWRkVG9EYXRhKSk7CisgICAgcG9seUp1bXAtPmFwcGVuZFN1Y2Nlc3NvcihG
cmVxdWVudGVkQmxvY2socHJpbnQpKTsKKyAgICBwb2x5SnVtcC0+YXBwZW5kU3VjY2Vzc29yKEZy
ZXF1ZW50ZWRCbG9jayhzdG9wKSk7CisgICAgCisgICAgLy8gT3VyICJvcGNvZGVzIi4gVGhleSB3
aWxsIGhhdmUgbWVhbmluZyBvbmNlIHdlIGNvbXBpbGUuCisgICAgaW50cHRyX3QgQWRkRFAgPSAw
OworICAgIGludHB0cl90IEFkZENQID0gMDsKKyAgICBpbnRwdHJfdCBBZGQgPSAwOworICAgIGlu
dHB0cl90IFByaW50ID0gMDsKKyAgICBpbnRwdHJfdCBTdG9wID0gMDsKKyAgICBwb2x5SnVtcC0+
c2V0R2VuZXJhdG9yKAorICAgICAgICBbJl0gKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBTdGFj
a21hcEdlbmVyYXRpb25QYXJhbXMmIHBhcmFtcykgeworICAgICAgICAgICAgaml0Lmp1bXAoQ0Nh
bGxIZWxwZXJzOjpBZGRyZXNzKHBhcmFtc1swXS5ncHIoKSkpOworICAgICAgICAgICAgCisgICAg
ICAgICAgICBWZWN0b3I8Qm94PENDYWxsSGVscGVyczo6TGFiZWw+PiBsYWJlbHMgPSBwYXJhbXMu
c3VjY2Vzc29yTGFiZWxzKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGppdC5hZGRMaW5r
VGFzaygKKyAgICAgICAgICAgICAgICBbJl0gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsKKyAg
ICAgICAgICAgICAgICAgICAgYXV0byBnZXQgPSBbJl0gKHNpemVfdCBpbmRleCkgLT4gaW50cHRy
X3QgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxpbnRwdHJf
dD4oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlua0J1ZmZlci5sb2NhdGlvbk9mKCps
YWJlbHNbaW5kZXhdKS5leGVjdXRhYmxlQWRkcmVzcygpKTsKKyAgICAgICAgICAgICAgICAgICAg
fTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIEFkZERQID0gZ2V0
KDApOworICAgICAgICAgICAgICAgICAgICBBZGRDUCA9IGdldCgxKTsKKyAgICAgICAgICAgICAg
ICAgICAgQWRkID0gZ2V0KDIpOworICAgICAgICAgICAgICAgICAgICBQcmludCA9IGdldCgzKTsK
KyAgICAgICAgICAgICAgICAgICAgU3RvcCA9IGdldCg0KTsKKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgfSk7CisgICAgCisgICAgLy8gQWRkRFAgPG9wZXJhbmQ+OiBhZGRzIDxvcGVyYW5k
PiB0byBEUC4KKyAgICBjb2RlUG9pbnRlclZhbHVlID0KKyAgICAgICAgYWRkVG9EYXRhUG9pbnRl
ci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBjb2Rl
UG9pbnRlcik7CisgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+
KAorICAgICAgICBwcm9jLCBTZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRlciwKKyAgICAgICAgYWRk
VG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEIzOjpB
ZGQsIE9yaWdpbigpLAorICAgICAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZh
cmlhYmxlVmFsdWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRlciksCisgICAg
ICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAg
ICAgIHByb2MsIE11bCwgT3JpZ2luKCksCisgICAgICAgICAgICAgICAgYWRkVG9EYXRhUG9pbnRl
ci0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAgICAgICAgICAgcHJvYywgTG9h
ZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUsIHNpemVvZihpbnRw
dHJfdCkpLAorICAgICAgICAgICAgICAgIGFkZFRvRGF0YVBvaW50ZXItPmFwcGVuZEludENvbnN0
YW50KAorICAgICAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwg
c2l6ZW9mKGludHB0cl90KSkpKSk7CisgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZh
cmlhYmxlVmFsdWU+KAorICAgICAgICBwcm9jLCBTZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlciwK
KyAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAg
IHByb2MsIEIzOjpBZGQsIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLAorICAgICAgICAgICAg
YWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kSW50Q29uc3RhbnQoCisgICAgICAgICAgICAgICAgcHJv
YywgT3JpZ2luKCksIHBvaW50ZXJUeXBlKCksIHNpemVvZihpbnRwdHJfdCkgKiAyKSkpOworICAg
IGFkZFRvRGF0YVBvaW50ZXItPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmln
aW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRpc3BhdGNoKSk7CisgICAgCisgICAgLy8gQWRkQ1AgPG9w
ZXJhbmQ+OiBhZGRzIDxvcGVyYW5kPiB0byBDUCBpZiB0aGUgY3VycmVudCB2YWx1ZSBhdCBEUCBp
cyBub24temVybywgb3RoZXJ3aXNlCisgICAgLy8gZmFsbHMgdGhyb3VnaCBub3JtYWxseS4KKyAg
ICBjb2RlUG9pbnRlclZhbHVlID0KKyAgICAgICAgYWRkVG9Db2RlUG9pbnRlci0+YXBwZW5kTmV3
PFZhcmlhYmxlVmFsdWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlcik7Cisg
ICAgVmFsdWUqIGRhdGFQb2ludGVyVmFsdWUgPQorICAgICAgICBhZGRUb0NvZGVQb2ludGVyLT5h
cHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGRhdGFQb2lu
dGVyKTsKKyAgICBhZGRUb0NvZGVQb2ludGVyLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCisgICAg
ICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCisgICAgICAgIGFkZFRvQ29kZVBvaW50ZXItPmFw
cGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVyVHlw
ZSgpLCBPcmlnaW4oKSwgZGF0YVBvaW50ZXJWYWx1ZSksCisgICAgICAgIEZyZXF1ZW50ZWRCbG9j
ayhhZGRUb0NvZGVQb2ludGVyVGFrZW4pLCBGcmVxdWVudGVkQmxvY2soYWRkVG9Db2RlUG9pbnRl
ck5vdFRha2VuKSk7CisgICAgYWRkVG9Db2RlUG9pbnRlclRha2VuLT5hcHBlbmROZXc8VmFyaWFi
bGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyLAorICAg
ICAgICBhZGRUb0NvZGVQb2ludGVyVGFrZW4tPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAg
ICBwcm9jLCBCMzo6QWRkLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwKKyAgICAgICAgICAg
IGFkZFRvQ29kZVBvaW50ZXJUYWtlbi0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgICAg
ICBwcm9jLCBNdWwsIE9yaWdpbigpLAorICAgICAgICAgICAgICAgIGFkZFRvQ29kZVBvaW50ZXJU
YWtlbi0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAgICAgICAgICAgcHJvYywg
TG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUsIHNpemVvZihp
bnRwdHJfdCkpLAorICAgICAgICAgICAgICAgIGFkZFRvQ29kZVBvaW50ZXJUYWtlbi0+YXBwZW5k
SW50Q29uc3RhbnQoCisgICAgICAgICAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLCBwb2ludGVy
VHlwZSgpLCBzaXplb2YoaW50cHRyX3QpKSkpKTsKKyAgICBhZGRUb0NvZGVQb2ludGVyVGFrZW4t
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJs
b2NrKGRpc3BhdGNoKSk7CisgICAgYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuLT5hcHBlbmROZXc8
VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2ludGVy
LAorICAgICAgICBhZGRUb0NvZGVQb2ludGVyTm90VGFrZW4tPmFwcGVuZE5ldzxWYWx1ZT4oCisg
ICAgICAgICAgICBwcm9jLCBCMzo6QWRkLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwKKyAg
ICAgICAgICAgIGFkZFRvQ29kZVBvaW50ZXJOb3RUYWtlbi0+YXBwZW5kSW50Q29uc3RhbnQoCisg
ICAgICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBlKCksIHNpemVvZihpbnRw
dHJfdCkgKiAyKSkpOworICAgIGFkZFRvQ29kZVBvaW50ZXJOb3RUYWtlbi0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAorICAgICAgICBwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2Nr
KGRpc3BhdGNoKSk7CisKKyAgICAvLyBBZGQgPG9wZXJhbmQ+OiBhZGRzIDxvcGVyYW5kPiB0byB0
aGUgc2xvdCBwb2ludGVkIHRvIGJ5IERQLgorICAgIGNvZGVQb2ludGVyVmFsdWUgPSBhZGRUb0Rh
dGEtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPihwcm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwgY29k
ZVBvaW50ZXIpOworICAgIGRhdGFQb2ludGVyVmFsdWUgPSBhZGRUb0RhdGEtPmFwcGVuZE5ldzxW
YXJpYWJsZVZhbHVlPihwcm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwgZGF0YVBvaW50ZXIpOworICAg
IGFkZFRvRGF0YS0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgcHJvYywgU3RvcmUs
IE9yaWdpbigpLAorICAgICAgICBhZGRUb0RhdGEtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAg
ICAgICBwcm9jLCBCMzo6QWRkLCBPcmlnaW4oKSwKKyAgICAgICAgICAgIGFkZFRvRGF0YS0+YXBw
ZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVy
VHlwZSgpLCBPcmlnaW4oKSwgZGF0YVBvaW50ZXJWYWx1ZSksCisgICAgICAgICAgICBhZGRUb0Rh
dGEtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgICAgICAgICAgcHJvYywgTG9hZCwg
cG9pbnRlclR5cGUoKSwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUsIHNpemVvZihpbnRwdHJf
dCkpKSwKKyAgICAgICAgZGF0YVBvaW50ZXJWYWx1ZSk7CisgICAgYWRkVG9EYXRhLT5hcHBlbmRO
ZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2lu
dGVyLAorICAgICAgICBhZGRUb0RhdGEtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICBw
cm9jLCBCMzo6QWRkLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwKKyAgICAgICAgICAgIGFk
ZFRvRGF0YS0+YXBwZW5kSW50Q29uc3RhbnQocHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBlKCks
IHNpemVvZihpbnRwdHJfdCkgKiAyKSkpOworICAgIGFkZFRvRGF0YS0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZGlzcGF0Y2gpKTsK
KyAgICAKKyAgICAvLyBQcmludDogInByaW50cyIgdGhlIHZhbHVlIHBvaW50ZWQgdG8gYnkgRFAu
IFdoYXQgdGhpcyBhY3R1YWxseSBtZWFucyBpcyB0aGF0IHRoZSB2YWx1ZSBpcworICAgIC8vIGFw
cGVuZGVkIHRvIHRoZSBzdHJlYW0gdmVjdG9yIGJ5IHRoZSB0aHJlYWRlZEludGVycHJldGVyUHJp
bnQgZnVuY3Rpb24uCisgICAgY29kZVBvaW50ZXJWYWx1ZSA9IHByaW50LT5hcHBlbmROZXc8VmFy
aWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyKTsKKyAgICBk
YXRhUG9pbnRlclZhbHVlID0gcHJpbnQtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPihwcm9jLCBC
Mzo6R2V0LCBPcmlnaW4oKSwgZGF0YVBvaW50ZXIpOworICAgIHByaW50LT5hcHBlbmROZXc8Q0Nh
bGxWYWx1ZT4oCisgICAgICAgIHByb2MsIFZvaWQsIE9yaWdpbigpLAorICAgICAgICBwcmludC0+
YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KAorICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksIGJp
dHdpc2VfY2FzdDx2b2lkKj4odGhyZWFkZWRJbnRlcnByZXRlclByaW50KSksCisgICAgICAgIGNv
bnRleHQsCisgICAgICAgIHByaW50LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQs
IHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLCBkYXRhUG9pbnRlclZhbHVlKSk7CisgICAgcHJpbnQt
PmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwg
Y29kZVBvaW50ZXIsCisgICAgICAgIHByaW50LT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAg
ICAgcHJvYywgQjM6OkFkZCwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUsCisgICAgICAgICAg
ICBwcmludC0+YXBwZW5kSW50Q29uc3RhbnQocHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBlKCks
IHNpemVvZihpbnRwdHJfdCkpKSk7CisgICAgcHJpbnQtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRpc3BhdGNoKSk7CisgICAgCisg
ICAgLy8gU3RvcDogcmV0dXJucy4KKyAgICBzdG9wLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCisg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgICAgIHN0b3AtPmFwcGVuZEludENv
bnN0YW50KHByb2MsIE9yaWdpbigpLCBwb2ludGVyVHlwZSgpLCAwKSk7CisgICAgCisgICAgYXV0
byBpbnRlcnByZXRlciA9IGNvbXBpbGUocHJvYyk7CisgICAgCisgICAgQ0hFQ0soQWRkRFApOwor
ICAgIENIRUNLKEFkZENQKTsKKyAgICBDSEVDSyhBZGQpOworICAgIENIRUNLKFByaW50KTsKKyAg
ICBDSEVDSyhTdG9wKTsKKyAgICAKKyAgICBWZWN0b3I8aW50cHRyX3Q+IGRhdGE7CisgICAgVmVj
dG9yPGludHB0cl90PiBjb2RlOworICAgIFZlY3RvcjxpbnRwdHJfdD4gc3RyZWFtOworICAgIAor
ICAgIGRhdGEuYXBwZW5kKDEpOworICAgIGRhdGEuYXBwZW5kKDApOworICAgIAorICAgIGlmIChz
aG91bGRCZVZlcmJvc2UoKSkKKyAgICAgICAgZGF0YUxvZygiZGF0YSA9ICIsIGxpc3REdW1wKGRh
dGEpLCAiXG4iKTsKKyAgICAKKyAgICAvLyBXZSdsbCB3cml0ZSBhIHByb2dyYW0gdGhhdCBwcmlu
dHMgdGhlIG51bWJlcnMgMS4uMTAwLgorICAgIC8vIFdlIGV4cGVjdCBEUCB0byBwb2ludCBhdCAj
MC4KKyAgICBjb2RlLmFwcGVuZChBZGRDUCk7CisgICAgY29kZS5hcHBlbmQoNik7IC8vIGdvIHRv
IGxvb3AgYm9keQorICAgIAorICAgIC8vIExvb3AgcmUtZW50cnk6CisgICAgLy8gV2UgZXhwZWN0
IERQIHRvIHBvaW50IGF0ICMxIGFuZCBmb3IgIzEgdG8gYmUgb2Zmc2V0IGJ5IC0xMDAuCisgICAg
Y29kZS5hcHBlbmQoQWRkKTsKKyAgICBjb2RlLmFwcGVuZCgxMDApOworICAgIAorICAgIGNvZGUu
YXBwZW5kKEFkZERQKTsKKyAgICBjb2RlLmFwcGVuZCgtMSk7CisgICAgCisgICAgLy8gTG9vcCBo
ZWFkZXI6CisgICAgLy8gV2UgZXhwZWN0IERQIHRvIHBvaW50IGF0ICMwLgorICAgIGNvZGUuYXBw
ZW5kKEFkZERQKTsKKyAgICBjb2RlLmFwcGVuZCgxKTsKKyAgICAKKyAgICBjb2RlLmFwcGVuZChB
ZGQpOworICAgIGNvZGUuYXBwZW5kKDEpOworICAgIAorICAgIGNvZGUuYXBwZW5kKFByaW50KTsK
KyAgICAKKyAgICBjb2RlLmFwcGVuZChBZGQpOworICAgIGNvZGUuYXBwZW5kKC0xMDApOworICAg
IAorICAgIC8vIFdlIHdhbnQgdG8gc3RvcCBpZiBpdCdzIHplcm8gYW5kIGNvbnRpbnVlIGlmIGl0
J3Mgbm9uLXplcm8uIEFkZENQIHRha2VzIHRoZSBicmFuY2ggaWYgaXQncworICAgIC8vIG5vbi16
ZXJvLgorICAgIGNvZGUuYXBwZW5kKEFkZENQKTsKKyAgICBjb2RlLmFwcGVuZCgtMTEpOyAvLyBn
byB0byBsb29wIHJlLWVudHJ5LgorICAgIAorICAgIGNvZGUuYXBwZW5kKFN0b3ApOworICAgIAor
ICAgIGlmIChzaG91bGRCZVZlcmJvc2UoKSkKKyAgICAgICAgZGF0YUxvZygiY29kZSA9ICIsIGxp
c3REdW1wKGNvZGUpLCAiXG4iKTsKKyAgICAKKyAgICBDSEVDSyghaW52b2tlPGludHB0cl90Pigq
aW50ZXJwcmV0ZXIsIGRhdGEuZGF0YSgpLCBjb2RlLmRhdGEoKSwgJnN0cmVhbSkpOworICAgIAor
ICAgIENIRUNLKHN0cmVhbS5zaXplKCkgPT0gMTAwKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgMTAwOyArK2kpCisgICAgICAgIENIRUNLKHN0cmVhbVtpXSA9PSBpICsgMSk7CisgICAg
CisgICAgaWYgKHNob3VsZEJlVmVyYm9zZSgpKQorICAgICAgICBkYXRhTG9nKCJzdHJlYW0gPSAi
LCBsaXN0RHVtcChzdHJlYW0pLCAiXG4iKTsKK30KKwogdm9pZCB0ZXN0UmVkdWNlU3RyZW5ndGhD
aGVja0JvdHRvbVVzZUluQW5vdGhlckJsb2NrKCkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKQEAg
LTEyMTEwLDcgKzEyMzUyLDcgQEAgdm9pZCB0ZXN0UmVkdWNlU3RyZW5ndGhDaGVja0JvdHRvbVVz
ZUluQQogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKICAgICBWYWx1ZSogYXJn
ID0gb25lLT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgb25lLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHR3bykpOworICAgIG9uZS0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodHdv
KSk7CiAgICAgCiAgICAgY2hlY2sgPSB0d28tPmFwcGVuZE5ldzxDaGVja1ZhbHVlPigKICAgICAg
ICAgcHJvYywgQ2hlY2tBZGQsIE9yaWdpbigpLCBhcmcsCkBAIC0xMjExOSw3ICsxMjM2MSw3IEBA
IHZvaWQgdGVzdFJlZHVjZVN0cmVuZ3RoQ2hlY2tCb3R0b21Vc2VJbkEKICAgICAgICAgWyZdIChD
Q2FsbEhlbHBlcnMmLCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7CiAgICAgICAg
ICAgICBDSEVDSyghIlNob3VsZCBub3QgZXhlY3V0ZSIpOwogICAgICAgICB9KTsKLSAgICB0d28t
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrKTsK
KyAgICB0d28tPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBj
aGVjayk7CiAgICAgCiAgICAgcHJvYy5yZXNldFJlYWNoYWJpbGl0eSgpOwogICAgIHJlZHVjZVN0
cmVuZ3RoKHByb2MpOwpAQCAtMTIxMzQsMTEgKzEyMzc2LDExIEBAIHZvaWQgdGVzdFJlc2V0UmVh
Y2hhYmlsaXR5RGFuZ2xpbmdSZWZlcmUKICAgICAKICAgICBVcHNpbG9uVmFsdWUqIHVwc2lsb24g
PSBvbmUtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KAogICAgICAgICBwcm9jLCBPcmlnaW4oKSwg
b25lLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpKTsKLSAgICBv
bmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIE9vcHMsIE9yaWdpbigpKTsKKyAgICBv
bmUtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBPb3BzLCBPcmlnaW4oKSk7CiAgICAgCiAg
ICAgVmFsdWUqIHBoaSA9IHR3by0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBQaGksIEludDMyLCBP
cmlnaW4oKSk7CiAgICAgdXBzaWxvbi0+c2V0UGhpKHBoaSk7Ci0gICAgdHdvLT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBPb3BzLCBPcmlnaW4oKSk7CisgICAgdHdvLT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgT29wcywgT3JpZ2luKCkpOwogICAgIAogICAgIHByb2MucmVzZXRS
ZWFjaGFiaWxpdHkoKTsKICAgICB2YWxpZGF0ZShwcm9jKTsKQEAgLTEzNTQ3LDggKzEzNzg5LDEz
IEBAIHZvaWQgcnVuKGNvbnN0IGNoYXIqIGZpbHRlcikKICAgICBSVU4odGVzdFNwaWxsRGVmU21h
bGxlclRoYW5Vc2UoKSk7CiAgICAgUlVOKHRlc3RTcGlsbFVzZUxhcmdlclRoYW5EZWYoKSk7CiAg
ICAgUlVOKHRlc3RMYXRlUmVnaXN0ZXIoKSk7Cis8PDw8PDw8IC5taW5lCisgICAgCisgICAgUlVO
KHRlc3RUaHJlYWRlZEludGVycHJldGVyKCkpOworPT09PT09PQogICAgIFJVTih0ZXN0UmVkdWNl
U3RyZW5ndGhDaGVja0JvdHRvbVVzZUluQW5vdGhlckJsb2NrKCkpOwogICAgIFJVTih0ZXN0UmVz
ZXRSZWFjaGFiaWxpdHlEYW5nbGluZ1JlZmVyZW5jZSgpKTsKKz4+Pj4+Pj4gLnIyMDI4MDkKIAog
ICAgIGlmICh0YXNrcy5pc0VtcHR5KCkpCiAgICAgICAgIHVzYWdlKCk7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEzNSw2ICsxMzUsMTEgQEAgdm9pZCBDb2RlOjphZGRGYXN0VG1wKFRtcCB0bXApCiAgICAgbV9m
YXN0VG1wcy5hZGQodG1wKTsKIH0KIAordm9pZCogQ29kZTo6YWRkRGF0YVNlY3Rpb24oc2l6ZV90
IHNpemUpCit7CisgICAgcmV0dXJuIG1fcHJvYy5hZGREYXRhU2VjdGlvbihzaXplKTsKK30KKwog
dW5zaWduZWQgQ29kZTo6anNIYXNoKCkgY29uc3QKIHsKICAgICB1bnNpZ25lZCByZXN1bHQgPSAw
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmgJKHJldmlzaW9uIDIw
MjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiQWlyU3BlY2lhbC5oIgogI2luY2x1
ZGUgIkFpclN0YWNrU2xvdC5oIgogI2luY2x1ZGUgIkFpclRtcC5oIgorI2luY2x1ZGUgIkIzSW5k
ZXhNYXAuaCIKICNpbmNsdWRlICJCM1NwYXJzZUNvbGxlY3Rpb24uaCIKICNpbmNsdWRlICJSZWdp
c3RlckF0T2Zmc2V0TGlzdC5oIgogI2luY2x1ZGUgIlN0YWNrQWxpZ25tZW50LmgiCkBAIC0yMDMs
NiArMjA0LDggQEAgcHVibGljOgogICAgIHZvaWQgYWRkRmFzdFRtcChUbXApOwogICAgIGJvb2wg
aXNGYXN0VG1wKFRtcCB0bXApIGNvbnN0IHsgcmV0dXJuIG1fZmFzdFRtcHMuY29udGFpbnModG1w
KTsgfQogICAgIAorICAgIHZvaWQqIGFkZERhdGFTZWN0aW9uKHNpemVfdCk7CisgICAgCiAgICAg
Ly8gVGhlIG5hbWUgaGFzIHRvIGJlIGEgc3RyaW5nIGxpdGVyYWwsIHNpbmNlIHdlIGRvbid0IGRv
IGFueSBtZW1vcnkgbWFuYWdlbWVudCBmb3IgdGhlIHN0cmluZy4KICAgICB2b2lkIHNldExhc3RQ
aGFzZU5hbWUoY29uc3QgY2hhciogbmFtZSkKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvYWlyL0FpckN1c3RvbS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvQWlyQ3VzdG9tLmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvQWlyQ3VzdG9tLmgJKHdvcmtpbmcgY29weSkKQEAgLTg0LDEwICs4
NCwxNSBAQCBzdHJ1Y3QgUGF0Y2hDdXN0b20gewogICAgIHsKICAgICAgICAgcmV0dXJuIGluc3Qu
YXJnc1swXS5zcGVjaWFsKCktPnNob3VsZFRyeUFsaWFzaW5nRGVmKGluc3QpOwogICAgIH0KKyAg
ICAKKyAgICBzdGF0aWMgYm9vbCBpc1Rlcm1pbmFsKEluc3QmIGluc3QpCisgICAgeworICAgICAg
ICByZXR1cm4gaW5zdC5hcmdzWzBdLnNwZWNpYWwoKS0+aXNUZXJtaW5hbChpbnN0KTsKKyAgICB9
CiAKICAgICBzdGF0aWMgYm9vbCBoYXNOb25BcmdOb25Db250cm9sRWZmZWN0cyhJbnN0JiBpbnN0
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGluc3QuYXJnc1swXS5zcGVjaWFsKCktPmhhc05vbkFy
Z05vbkNvbnRyb2xFZmZlY3RzKCk7CisgICAgICAgIHJldHVybiBpbnN0LmFyZ3NbMF0uc3BlY2lh
bCgpLT5oYXNOb25BcmdOb25Db250cm9sRWZmZWN0cyhpbnN0KTsKICAgICB9CiAKICAgICBzdGF0
aWMgQ0NhbGxIZWxwZXJzOjpKdW1wIGdlbmVyYXRlKApAQCAtMTM4LDYgKzE0MywxMSBAQCBzdHJ1
Y3QgQ0NhbGxDdXN0b20gewogICAgIHsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQorICAg
IAorICAgIHN0YXRpYyBib29sIGlzVGVybWluYWwoaW5zdCYpCisgICAgeworICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQogCiAgICAgc3RhdGljIGJvb2wgaGFzTm9uQXJnTm9uQ29udHJvbEVm
ZmVjdHMoSW5zdCYpCiAgICAgewpAQCAtMTk3LDYgKzIwNywxMSBAQCBzdHJ1Y3QgU2h1ZmZsZUN1
c3RvbSB7CiAgICAgICAgIH0KICAgICB9CiAKKyAgICBzdGF0aWMgYm9vbCBpc1Rlcm1pbmFsKGlu
c3QmKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKwogICAgIHN0YXRpYyBi
b29sIGhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKEluc3QmKQogICAgIHsKICAgICAgICAgcmV0
dXJuIGZhbHNlOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5l
cmF0ZS5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvQWlyR2VuZXJhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OCwxMCArNDgsMTMgQEAKICNp
bmNsdWRlICJBaXJWYWxpZGF0ZS5oIgogI2luY2x1ZGUgIkIzQ29tbW9uLmgiCiAjaW5jbHVkZSAi
QjNJbmRleE1hcC5oIgorI2luY2x1ZGUgIkIzUG9seUp1bXBWYWx1ZS5oIgogI2luY2x1ZGUgIkIz
UHJvY2VkdXJlLmgiCiAjaW5jbHVkZSAiQjNUaW1pbmdTY29wZS5oIgorI2luY2x1ZGUgIkIzVmFs
dWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiRGlzYWxs
b3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlLmgiCisjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgog
CiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsgbmFtZXNwYWNlIEFpciB7CiAKQEAgLTE3
MywxMiArMTc2LDE2IEBAIHZvaWQgZ2VuZXJhdGUoQ29kZSYgY29kZSwgQ0NhbGxIZWxwZXJzJiAK
IAogICAgIEdlbmVyYXRpb25Db250ZXh0IGNvbnRleHQ7CiAgICAgY29udGV4dC5jb2RlID0gJmNv
ZGU7Ci0gICAgSW5kZXhNYXA8QmFzaWNCbG9jaywgQ0NhbGxIZWxwZXJzOjpMYWJlbD4gYmxvY2tM
YWJlbHMoY29kZS5zaXplKCkpOworICAgIGNvbnRleHQuYmxvY2tMYWJlbHMucmVzaXplKGNvZGUu
c2l6ZSgpKTsKKyAgICBmb3IgKEJhc2ljQmxvY2sqIGJsb2NrIDogY29kZSkgeworICAgICAgICBp
ZiAoYmxvY2spCisgICAgICAgICAgICBjb250ZXh0LmJsb2NrTGFiZWxzW2Jsb2NrXSA9IEJveDxD
Q2FsbEhlbHBlcnM6OkxhYmVsPjo6Y3JlYXRlKCk7CisgICAgfQogICAgIEluZGV4TWFwPEJhc2lj
QmxvY2ssIENDYWxsSGVscGVyczo6SnVtcExpc3Q+IGJsb2NrSnVtcHMoY29kZS5zaXplKCkpOwog
CiAgICAgYXV0byBsaW5rID0gWyZdIChDQ2FsbEhlbHBlcnM6Okp1bXAganVtcCwgQmFzaWNCbG9j
ayogdGFyZ2V0KSB7Ci0gICAgICAgIGlmIChibG9ja0xhYmVsc1t0YXJnZXRdLmlzU2V0KCkpIHsK
LSAgICAgICAgICAgIGp1bXAubGlua1RvKGJsb2NrTGFiZWxzW3RhcmdldF0sICZqaXQpOworICAg
ICAgICBpZiAoY29udGV4dC5ibG9ja0xhYmVsc1t0YXJnZXRdLT5pc1NldCgpKSB7CisgICAgICAg
ICAgICBqdW1wLmxpbmtUbygqY29udGV4dC5ibG9ja0xhYmVsc1t0YXJnZXRdLCAmaml0KTsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC0xOTUsMTYgKzIwMiwyMiBAQCB2b2lk
IGdlbmVyYXRlKENvZGUmIGNvZGUsIENDYWxsSGVscGVycyYgCiAgICAgfTsKIAogICAgIGZvciAo
QmFzaWNCbG9jayogYmxvY2sgOiBjb2RlKSB7CisgICAgICAgIGNvbnRleHQuYmxvY2sgPSBibG9j
azsKKyAgICAgICAgY29udGV4dC5pbmRleEluQmxvY2sgPSBVSU5UX01BWDsKICAgICAgICAgYmxv
Y2tKdW1wc1tibG9ja10ubGluaygmaml0KTsKLSAgICAgICAgYmxvY2tMYWJlbHNbYmxvY2tdID0g
aml0LmxhYmVsKCk7CisgICAgICAgIENDYWxsSGVscGVyczo6TGFiZWwgbGFiZWwgPSBqaXQubGFi
ZWwoKTsKKyAgICAgICAgKmNvbnRleHQuYmxvY2tMYWJlbHNbYmxvY2tdID0gbGFiZWw7CiAgICAg
ICAgIEFTU0VSVChibG9jay0+c2l6ZSgpID49IDEpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgYmxvY2stPnNpemUoKSAtIDE7ICsraSkgeworICAgICAgICAgICAgY29udGV4dC5p
bmRleEluQmxvY2sgPSBpOwogICAgICAgICAgICAgSW5zdCYgaW5zdCA9IGJsb2NrLT5hdChpKTsK
ICAgICAgICAgICAgIGFkZEl0ZW0oaW5zdCk7CiAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1
bXAganVtcCA9IGluc3QuZ2VuZXJhdGUoaml0LCBjb250ZXh0KTsKICAgICAgICAgICAgIEFTU0VS
VF9VTlVTRUQoanVtcCwgIWp1bXAuaXNTZXQoKSk7CiAgICAgICAgIH0KIAorICAgICAgICBjb250
ZXh0LmluZGV4SW5CbG9jayA9IGJsb2NrLT5zaXplKCkgLSAxOworICAgICAgICAKICAgICAgICAg
aWYgKGJsb2NrLT5sYXN0KCkub3Bjb2RlID09IEp1bXAKICAgICAgICAgICAgICYmIGJsb2NrLT5z
dWNjZXNzb3JCbG9jaygwKSA9PSBjb2RlLmZpbmROZXh0QmxvY2soYmxvY2spKQogICAgICAgICAg
ICAgY29udGludWU7CkBAIC0yMjgsMjYgKzI0MSwzMCBAQCB2b2lkIGdlbmVyYXRlKENvZGUmIGNv
ZGUsIENDYWxsSGVscGVycyYgCiAgICAgICAgICAgICBhZGRJdGVtKGJsb2NrLT5sYXN0KCkpOwog
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KLQorICAgICAgICAKICAgICAgICAgQ0Nh
bGxIZWxwZXJzOjpKdW1wIGp1bXAgPSBibG9jay0+bGFzdCgpLmdlbmVyYXRlKGppdCwgY29udGV4
dCk7Ci0gICAgICAgIHN3aXRjaCAoYmxvY2stPm51bVN1Y2Nlc3NvcnMoKSkgewotICAgICAgICBj
YXNlIDA6Ci0gICAgICAgICAgICBBU1NFUlQoIWp1bXAuaXNTZXQoKSk7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSAxOgotICAgICAgICAgICAgbGluayhqdW1wLCBibG9jay0+c3Vj
Y2Vzc29yQmxvY2soMCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgMjoKLSAg
ICAgICAgICAgIGxpbmsoanVtcCwgYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDApKTsKLSAgICAgICAg
ICAgIGlmIChibG9jay0+c3VjY2Vzc29yQmxvY2soMSkgIT0gY29kZS5maW5kTmV4dEJsb2NrKGJs
b2NrKSkKLSAgICAgICAgICAgICAgICBsaW5rKGppdC5qdW1wKCksIGJsb2NrLT5zdWNjZXNzb3JC
bG9jaygxKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAg
ICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgLy8gVGhlIGp1bXAgd29uJ3QgYmUgc2V0IGZvciBwYXRjaHBvaW50cy4gSXQgd29uJ3Qg
YmUgc2V0IGZvciBPb3BzIGJlY2F1c2UgdGhlbiBpdCB3b24ndCBoYXZlCisgICAgICAgIC8vIGFu
eSBzdWNjZXNzb3JzLgorICAgICAgICBpZiAoanVtcC5pc1NldCgpKSB7CisgICAgICAgICAgICBz
d2l0Y2ggKGJsb2NrLT5udW1TdWNjZXNzb3JzKCkpIHsKKyAgICAgICAgICAgIGNhc2UgMToKKyAg
ICAgICAgICAgICAgICBsaW5rKGp1bXAsIGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKSk7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICAgICAg
bGluayhqdW1wLCBibG9jay0+c3VjY2Vzc29yQmxvY2soMCkpOworICAgICAgICAgICAgICAgIGlm
IChibG9jay0+c3VjY2Vzc29yQmxvY2soMSkgIT0gY29kZS5maW5kTmV4dEJsb2NrKGJsb2NrKSkK
KyAgICAgICAgICAgICAgICAgICAgbGluayhqaXQuanVtcCgpLCBibG9jay0+c3VjY2Vzc29yQmxv
Y2soMSkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGFkZEl0ZW0oYmxv
Y2stPmxhc3QoKSk7CiAgICAgfQorICAgIAorICAgIGNvbnRleHQuYmxvY2sgPSBudWxscHRyOwor
ICAgIGNvbnRleHQuaW5kZXhJbkJsb2NrID0gVUlOVF9NQVg7CiAKICAgICBwY1RvT3JpZ2luTWFw
LmFwcGVuZEl0ZW0oaml0LmxhYmVsKCksIE9yaWdpbigpKTsKICAgICAvLyBGSVhNRTogTWFrZSBs
YXRlIHBhdGhzIGhhdmUgT3JpZ2luczogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1MzY4OQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5l
cmF0aW9uQ29udGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvQWlyR2VuZXJhdGlvbkNvbnRleHQuaAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0aW9uQ29udGV4dC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTI4LDE0ICsyOCwxNCBAQAogCiAjaWYgRU5BQkxFKEIzX0pJVCkKIAorI2luY2x1ZGUgIkFpckJh
c2ljQmxvY2suaCIKKyNpbmNsdWRlICJCM0luZGV4TWFwLmgiCisjaW5jbHVkZSAiQ0NhbGxIZWxw
ZXJzLmgiCisjaW5jbHVkZSA8d3RmL0JveC5oPgogI2luY2x1ZGUgPHd0Zi9TaGFyZWRUYXNrLmg+
CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCi1uYW1lc3BhY2UgSlNDIHsKLQotY2xhc3MgQ0Nh
bGxIZWxwZXJzOwotCi1uYW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UgQWlyIHsKK25hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UgQWlyIHsKIAogY2xhc3MgQ29kZTsKIApAQCAt
NDQsNyArNDQsMTAgQEAgc3RydWN0IEdlbmVyYXRpb25Db250ZXh0IHsKICAgICB0eXBlZGVmIFNo
YXJlZFRhc2s8TGF0ZVBhdGhGdW5jdGlvbj4gTGF0ZVBhdGg7CiAKICAgICBWZWN0b3I8UmVmUHRy
PExhdGVQYXRoPj4gbGF0ZVBhdGhzOwotICAgIENvZGUqIGNvZGU7CisgICAgSW5kZXhNYXA8QmFz
aWNCbG9jaywgQm94PENDYWxsSGVscGVyczo6TGFiZWw+PiBibG9ja0xhYmVsczsKKyAgICBCYXNp
Y0Jsb2NrKiBjdXJyZW50QmxvY2sgeyBudWxscHRyIH07CisgICAgdW5zaWduZWQgaW5kZXhJbkJs
b2NrIHsgVUlOVF9NQVggfTsKKyAgICBDb2RlKiBjb2RlIHsgbnVsbHB0ciB9OwogfTsKIAogfSB9
IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjM6OkFpcgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJJbnN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9BaXJJbnN0LmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvQWlySW5zdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNjMsNiArMTYzLDkgQEAgcHVi
bGljOgogICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgYXV0by1nZW5lcmF0ZWQgYnkgb3Bjb2RlX2dl
bmVyYXRvci5yYi4KICAgICBib29sIGFkbWl0c1N0YWNrKHVuc2lnbmVkIGFyZ0luZGV4KTsKICAg
ICBib29sIGFkbWl0c1N0YWNrKEFyZyYpOworICAgIAorICAgIC8vIERlZmluZWQgYnkgb3Bjb2Rl
X2dlbmVyYXRvci5yYi4KKyAgICBib29sIGlzVGVybWluYWwoKTsKIAogICAgIC8vIFJldHVybnMg
dHJ1ZSBpZiB0aGlzIGluc3RydWN0aW9uIGNhbiBoYXZlIGFueSBlZmZlY3RzIG90aGVyIHRoYW4g
Y29udHJvbCBmbG93IG9yIGFyZ3VtZW50cy4KICAgICBib29sIGhhc05vbkFyZ05vbkNvbnRyb2xF
ZmZlY3RzKCk7CkBAIC0xNzQsNiArMTc3LDkgQEAgcHVibGljOgogCiAgICAgLy8gVGVsbHMgeW91
IGlmIHRoaXMgb3BlcmF0aW9uIGhhcyBhcmcgZWZmZWN0cy4KICAgICBib29sIGhhc0FyZ0VmZmVj
dHMoKTsKKyAgICAKKyAgICAvLyBUZWxscyB5b3UgaWYgdGhpcyBvcGVyYXRpb24gaGFzIG5vbi1j
b250cm9sIGVmZmVjdHMuCisgICAgYm9vbCBoYXNOb25Db250cm9sRWZmZWN0cygpIHsgcmV0dXJu
IGhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKCkgfHwgaGFzQXJnRWZmZWN0cygpOyB9CiAKICAg
ICAvLyBHZW5lcmF0ZSBzb21lIGNvZGUgZm9yIHRoaXMgaW5zdHJ1Y3Rpb24uIFRoaXMgaXMsIGxp
a2UsIGxpdGVyYWxseSBvdXIgYmFja2VuZC4gSWYgdGhpcyBpcyB0aGUKICAgICAvLyB0ZXJtaW5h
bCwgaXQgcmV0dXJucyB0aGUganVtcCB0aGF0IG5lZWRzIHRvIGJlIGxpbmtlZCBmb3IgdGhlICJ0
aGVuIiBjYXNlLCB3aXRoIHRoZSAiZWxzZSIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyU2ltcGxpZnlDRkcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvQWlyU2ltcGxpZnlDRkcuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclNpbXBsaWZ5Q0ZHLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtOTUsMzMgKzk1LDMyIEBAIGJvb2wgc2ltcGxpZnlDRkcoQ29kZSYgY29kZSkKICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIC8vIE5vdyBjaGVjayBp
ZiB0aGUgYmxvY2sncyB0ZXJtaW5hbCBjYW4gYmUgcmVwbGFjZWQgd2l0aCBhIGp1bXAuCi0gICAg
ICAgICAgICBpZiAoYmxvY2stPm51bVN1Y2Nlc3NvcnMoKSA+IDEpIHsKLSAgICAgICAgICAgICAg
ICAvLyBUaGUgdGVybWluYWwgbXVzdCBub3QgaGF2ZSB3ZWlyZCBlZmZlY3RzLgotICAgICAgICAg
ICAgICAgIGlmICghYmxvY2stPmxhc3QoKS5oYXNBcmdFZmZlY3RzKCkKLSAgICAgICAgICAgICAg
ICAgICAgJiYgIWJsb2NrLT5sYXN0KCkuaGFzTm9uQXJnTm9uQ29udHJvbEVmZmVjdHMoKSkgewot
ICAgICAgICAgICAgICAgICAgICAvLyBBbGwgb2YgdGhlIHN1Y2Nlc3NvcnMgbXVzdCBiZSB0aGUg
c2FtZS4KLSAgICAgICAgICAgICAgICAgICAgYm9vbCBhbGxTYW1lID0gdHJ1ZTsKLSAgICAgICAg
ICAgICAgICAgICAgQmFzaWNCbG9jayogZmlyc3RTdWNjZXNzb3IgPSBibG9jay0+c3VjY2Vzc29y
QmxvY2soMCk7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDE7IGkgPCBi
bG9jay0+bnVtU3VjY2Vzc29ycygpOyArK2kpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlm
IChibG9jay0+c3VjY2Vzc29yQmxvY2soaSkgIT0gZmlyc3RTdWNjZXNzb3IpIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhbGxTYW1lID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgaWYgKGFsbFNhbWUpIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGlmICh2ZXJib3NlKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRh
dGFMb2coIkNoYW5naW5nICIsIHBvaW50ZXJEdW1wKGJsb2NrKSwgIidzIHRlcm1pbmFsIHRvIGEg
SnVtcC5cbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2stPmxhc3QoKSA9IEluc3Qo
SnVtcCwgYmxvY2stPmxhc3QoKS5vcmlnaW4pOwotICAgICAgICAgICAgICAgICAgICAgICAgYmxv
Y2stPnN1Y2Nlc3NvcnMoKS5yZXNpemUoMSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBibG9j
ay0+c3VjY2Vzc29ycygpWzBdLmZyZXF1ZW5jeSgpID0gRnJlcXVlbmN5Q2xhc3M6Ok5vcm1hbDsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlOworICAgICAgICAgICAgLy8g
Tm93IGNoZWNrIGlmIHRoZSBibG9jaydzIHRlcm1pbmFsIGNhbiBiZSByZXBsYWNlZCB3aXRoIGEg
anVtcC4gVGhlIHRlcm1pbmFsIG11c3Qgbm90CisgICAgICAgICAgICAvLyBoYXZlIHdlaXJkIGVm
ZmVjdHMuCisgICAgICAgICAgICBpZiAoYmxvY2stPm51bVN1Y2Nlc3NvcnMoKSA+IDEgCisgICAg
ICAgICAgICAgICAgJiYgIWJsb2NrLT5sYXN0KCkuaGFzTm9uQ29udHJvbEVmZmVjdHMoKSkgewor
ICAgICAgICAgICAgICAgIC8vIEFsbCBvZiB0aGUgc3VjY2Vzc29ycyBtdXN0IGJlIHRoZSBzYW1l
LgorICAgICAgICAgICAgICAgIGJvb2wgYWxsU2FtZSA9IHRydWU7CisgICAgICAgICAgICAgICAg
QmFzaWNCbG9jayogZmlyc3RTdWNjZXNzb3IgPSBibG9jay0+c3VjY2Vzc29yQmxvY2soMCk7Cisg
ICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMTsgaSA8IGJsb2NrLT5udW1TdWNjZXNz
b3JzKCk7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoYmxvY2stPnN1Y2Nlc3NvckJs
b2NrKGkpICE9IGZpcnN0U3VjY2Vzc29yKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBhbGxT
YW1lID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoYWxsU2Ft
ZSkgeworICAgICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGRhdGFMb2coIkNoYW5naW5nICIsIHBvaW50ZXJEdW1wKGJsb2NrKSwgIidzIHRlcm1p
bmFsIHRvIGEgSnVtcC5cbiIpOworICAgICAgICAgICAgICAgICAgICBibG9jay0+bGFzdCgpID0g
SW5zdChKdW1wLCBibG9jay0+bGFzdCgpLm9yaWdpbik7CisgICAgICAgICAgICAgICAgICAgIGJs
b2NrLT5zdWNjZXNzb3JzKCkucmVzaXplKDEpOworICAgICAgICAgICAgICAgICAgICBibG9jay0+
c3VjY2Vzc29ycygpWzBdLmZyZXF1ZW5jeSgpID0gRnJlcXVlbmN5Q2xhc3M6Ok5vcm1hbDsKKyAg
ICAgICAgICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgfQogCiAgICAgICAgICAgICAvLyBGaW5hbGx5IGhhbmRsZSBqdW1wcyB0byBhIGJs
b2NrIHdpdGggb25lIHByZWRlY2Vzc29yLgotICAgICAgICAgICAgaWYgKGJsb2NrLT5udW1TdWNj
ZXNzb3JzKCkgPT0gMSkgeworICAgICAgICAgICAgaWYgKGJsb2NrLT5udW1TdWNjZXNzb3JzKCkg
PT0gMQorICAgICAgICAgICAgICAgICYmICFibG9jay0+bGFzdCgpLmhhc05vbkNvbnRyb2xFZmZl
Y3RzKCkpIHsKICAgICAgICAgICAgICAgICBCYXNpY0Jsb2NrKiBzdWNjZXNzb3IgPSBibG9jay0+
c3VjY2Vzc29yQmxvY2soMCk7CiAgICAgICAgICAgICAgICAgaWYgKHN1Y2Nlc3NvciAhPSBibG9j
ayAmJiBzdWNjZXNzb3ItPm51bVByZWRlY2Vzc29ycygpID09IDEpIHsKICAgICAgICAgICAgICAg
ICAgICAgUkVMRUFTRV9BU1NFUlQoc3VjY2Vzc29yLT5wcmVkZWNlc3NvcigwKSA9PSBibG9jayk7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclNwZWNpYWwuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyU3BlY2lhbC5jcHAJKHJl
dmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyU3BlY2lh
bC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtNTUsNyArNTUsMTIgQEAgT3B0aW9uYWw8dW5zaWduZWQ+IFNw
ZWNpYWw6OnNob3VsZFRyeUFsaQogICAgIHJldHVybiBOdWxsb3B0OwogfQogCi1ib29sIFNwZWNp
YWw6Omhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKCkKK2Jvb2wgU3BlY2lhbDo6aXNUZXJtaW5h
bChJbnN0JikKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgU3BlY2lhbDo6aGFzTm9u
QXJnTm9uQ29udHJvbEVmZmVjdHMoSW5zdCYpCiB7CiAgICAgcmV0dXJuIHRydWU7CiB9CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclNwZWNpYWwuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclNwZWNpYWwuaAkocmV2aXNpb24gMjAy
ODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJTcGVjaWFsLmgJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtODcsOSArODcsMTIgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBjb25zdCBSZWdp
c3RlclNldCYgZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MoSW5zdCYpID0gMDsKICAgICB2aXJ0dWFs
IGNvbnN0IFJlZ2lzdGVyU2V0JiBleHRyYUNsb2JiZXJlZFJlZ3MoSW5zdCYpID0gMDsKKyAgICAK
KyAgICAvLyBCeSBkZWZhdWx0LCB0aGlzIHJldHVybnMgZmFsc2UuCisgICAgdmlydHVhbCBib29s
IGlzVGVybWluYWwoSW5zdCYpOwogCiAgICAgLy8gQnkgZGVmYXVsdCwgdGhpcyByZXR1cm5zIHRy
dWUuCi0gICAgdmlydHVhbCBib29sIGhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKCk7CisgICAg
dmlydHVhbCBib29sIGhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKEluc3QmKTsKIAogICAgIHZv
aWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0OwogICAgIHZvaWQgZGVlcER1bXAoUHJpbnRTdHJl
YW0mKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvb3Bjb2RlX2dl
bmVyYXRvci5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL29w
Y29kZV9nZW5lcmF0b3IucmIJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvb3Bjb2RlX2dlbmVyYXRvci5yYgkod29ya2luZyBjb3B5KQpAQCAtOTc2LDYg
Kzk3NiwzMiBAQCB3cml0ZUgoIk9wY29kZUdlbmVyYXRlZCIpIHsKICAgICBvdXRwLnB1dHMgInJl
dHVybiBmYWxzZTsiCiAgICAgb3V0cC5wdXRzICJ9IgogCisgICAgb3V0cC5wdXRzICJib29sIElu
c3Q6OmlzVGVybWluYWwoKSIKKyAgICBvdXRwLnB1dHMgInsiCisgICAgb3V0cC5wdXRzICJzd2l0
Y2ggKG9wY29kZSkgeyIKKyAgICBmb3VuZFRydWUgPSBmYWxzZQorICAgICRvcGNvZGVzLnZhbHVl
cy5lYWNoIHsKKyAgICAgICAgfCBvcGNvZGUgfAorICAgICAgICBpZiBvcGNvZGUuYXR0cmlidXRl
c1s6dGVybWluYWxdCisgICAgICAgICAgICBvdXRwLnB1dHMgImNhc2UgI3tvcGNvZGUubmFtZX06
IgorICAgICAgICAgICAgZm91bmRUcnVlID0gdHJ1ZQorICAgICAgICBlbmQKKyAgICB9CisgICAg
aWYgZm91bmRUcnVlCisgICAgICAgIG91dHAucHV0cyAicmV0dXJuIHRydWU7IgorICAgIGVuZAor
ICAgICRvcGNvZGVzLnZhbHVlcy5lYWNoIHsKKyAgICAgICAgfCBvcGNvZGUgfAorICAgICAgICBp
ZiBvcGNvZGUuY3VzdG9tCisgICAgICAgICAgICBvdXRwLnB1dHMgImNhc2UgI3tvcGNvZGUubmFt
ZX06IgorICAgICAgICAgICAgb3V0cC5wdXRzICJyZXR1cm4gI3tvcGNvZGUubmFtZX1DdXN0b206
OmlzVGVybWluYWwoKnRoaXMpOyIKKyAgICAgICAgZW5kCisgICAgfQorICAgIG91dHAucHV0cyAi
ZGVmYXVsdDoiCisgICAgb3V0cC5wdXRzICJyZXR1cm4gZmFsc2U7IgorICAgIG91dHAucHV0cyAi
fSIKKyAgICBvdXRwLnB1dHMgIn0iCisgICAgCiAgICAgb3V0cC5wdXRzICJib29sIEluc3Q6Omhh
c05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKCkiCiAgICAgb3V0cC5wdXRzICJ7IgogICAgIG91dHAu
cHV0cyAic3dpdGNoIChvcGNvZGUpIHsiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTE91dHB1dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExPdXRwdXQuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTE91dHB1dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDggKzI4LDE4IEBACiAKICNp
ZiBFTkFCTEUoRlRMX0pJVCkKIAorI2luY2x1ZGUgIkIzQXJndW1lbnRSZWdWYWx1ZS5oIgorI2lu
Y2x1ZGUgIkIzQmFzaWNCbG9ja0lubGluZXMuaCIKKyNpbmNsdWRlICJCM0NDYWxsVmFsdWUuaCIK
KyNpbmNsdWRlICJCM0NvbnN0MzJWYWx1ZS5oIgorI2luY2x1ZGUgIkIzQ29uc3RQdHJWYWx1ZS5o
IgogI2luY2x1ZGUgIkIzTWF0aEV4dHJhcy5oIgorI2luY2x1ZGUgIkIzTWVtb3J5VmFsdWUuaCIK
KyNpbmNsdWRlICJCM1Nsb3RCYXNlVmFsdWUuaCIKICNpbmNsdWRlICJCM1N0YWNrbWFwR2VuZXJh
dGlvblBhcmFtcy5oIgorI2luY2x1ZGUgIkIzU3dpdGNoVmFsdWUuaCIKKyNpbmNsdWRlICJCM1Vw
c2lsb25WYWx1ZS5oIgorI2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiU3Vw
ZXJTYW1wbGVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKQEAgLTU3OCwx
MiArNTg4LDEyIEBAIExWYWx1ZSBPdXRwdXQ6OnNlbGVjdChMVmFsdWUgdmFsdWUsIExWYWwKIAog
dm9pZCBPdXRwdXQ6Omp1bXAoTEJhc2ljQmxvY2sgZGVzdGluYXRpb24pCiB7Ci0gICAgbV9ibG9j
ay0+YXBwZW5kTmV3PEIzOjpDb250cm9sVmFsdWU+KG1fcHJvYywgQjM6Okp1bXAsIG9yaWdpbigp
LCBCMzo6RnJlcXVlbnRlZEJsb2NrKGRlc3RpbmF0aW9uKSk7CisgICAgbV9ibG9jay0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKG1fcHJvYywgQjM6Okp1bXAsIG9yaWdpbigpLCBCMzo6RnJlcXVlbnRl
ZEJsb2NrKGRlc3RpbmF0aW9uKSk7CiB9CiAKIHZvaWQgT3V0cHV0OjpicmFuY2goTFZhbHVlIGNv
bmRpdGlvbiwgTEJhc2ljQmxvY2sgdGFrZW4sIFdlaWdodCB0YWtlbldlaWdodCwgTEJhc2ljQmxv
Y2sgbm90VGFrZW4sIFdlaWdodCBub3RUYWtlbldlaWdodCkKIHsKLSAgICBtX2Jsb2NrLT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBtX2Jsb2NrLT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIG1fcHJvYywgQjM6OkJyYW5jaCwgb3JpZ2luKCksIGNvbmRpdGlvbiwKICAgICAg
ICAgRnJlcXVlbnRlZEJsb2NrKHRha2VuLCB0YWtlbldlaWdodC5mcmVxdWVuY3lDbGFzcygpKSwK
ICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKG5vdFRha2VuLCBub3RUYWtlbldlaWdodC5mcmVxdWVu
Y3lDbGFzcygpKSk7CkBAIC02MDMsMTIgKzYxMywxMiBAQCB2b2lkIE91dHB1dDo6Y2hlY2soTFZh
bHVlIGNvbmRpdGlvbiwgV2VpCiAKIHZvaWQgT3V0cHV0OjpyZXQoTFZhbHVlIHZhbHVlKQogewot
ICAgIG1fYmxvY2stPmFwcGVuZE5ldzxCMzo6Q29udHJvbFZhbHVlPihtX3Byb2MsIEIzOjpSZXR1
cm4sIG9yaWdpbigpLCB2YWx1ZSk7CisgICAgbV9ibG9jay0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KG1fcHJvYywgQjM6OlJldHVybiwgb3JpZ2luKCksIHZhbHVlKTsKIH0KIAogdm9pZCBPdXRwdXQ6
OnVucmVhY2hhYmxlKCkKIHsKLSAgICBtX2Jsb2NrLT5hcHBlbmROZXc8QjM6OkNvbnRyb2xWYWx1
ZT4obV9wcm9jLCBCMzo6T29wcywgb3JpZ2luKCkpOworICAgIG1fYmxvY2stPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShtX3Byb2MsIEIzOjpPb3BzLCBvcmlnaW4oKSk7CiB9CiAKIENoZWNrVmFsdWUq
IE91dHB1dDo6c3BlY3VsYXRlKExWYWx1ZSB2YWx1ZSkKQEAgLTYzOCw3ICs2NDgsNyBAQCBQYXRj
aHBvaW50VmFsdWUqIE91dHB1dDo6cGF0Y2hwb2ludChMVHlwCiAKIHZvaWQgT3V0cHV0Ojp0cmFw
KCkKIHsKLSAgICBtX2Jsb2NrLT5hcHBlbmROZXc8QjM6OkNvbnRyb2xWYWx1ZT4obV9wcm9jLCBC
Mzo6T29wcywgb3JpZ2luKCkpOworICAgIG1fYmxvY2stPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSht
X3Byb2MsIEIzOjpPb3BzLCBvcmlnaW4oKSk7CiB9CiAKIFZhbHVlRnJvbUJsb2NrIE91dHB1dDo6
YW5jaG9yKExWYWx1ZSB2YWx1ZSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
T3V0cHV0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRw
dXQuaAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExP
dXRwdXQuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsMTkgKzMwLDggQEAKIAogI2lmIEVOQUJMRShG
VExfSklUKQogCi0jaW5jbHVkZSAiQjNBcmd1bWVudFJlZ1ZhbHVlLmgiCi0jaW5jbHVkZSAiQjNC
YXNpY0Jsb2NrSW5saW5lcy5oIgotI2luY2x1ZGUgIkIzQ0NhbGxWYWx1ZS5oIgogI2luY2x1ZGUg
IkIzQ29tcGlsYXRpb24uaCIKLSNpbmNsdWRlICJCM0NvbnN0MzJWYWx1ZS5oIgotI2luY2x1ZGUg
IkIzQ29uc3RQdHJWYWx1ZS5oIgotI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCi0jaW5jbHVk
ZSAiQjNNZW1vcnlWYWx1ZS5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJlLmgiCi0jaW5jbHVkZSAi
QjNTbG90QmFzZVZhbHVlLmgiCi0jaW5jbHVkZSAiQjNTd2l0Y2hWYWx1ZS5oIgotI2luY2x1ZGUg
IkIzVXBzaWxvblZhbHVlLmgiCi0jaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRl
ICJGVExBYmJyZXZpYXRlZFR5cGVzLmgiCiAjaW5jbHVkZSAiRlRMQWJzdHJhY3RIZWFwUmVwb3Np
dG9yeS5oIgogI2luY2x1ZGUgIkZUTENvbW1vblZhbHVlcy5oIgpAQCAtMzc4LDggKzM2Nyw4IEBA
IHB1YmxpYzoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBWZWN0b3JUeXBlPgogICAgIHZvaWQgc3dp
dGNoSW5zdHJ1Y3Rpb24oTFZhbHVlIHZhbHVlLCBjb25zdCBWZWN0b3JUeXBlJiBjYXNlcywgTEJh
c2ljQmxvY2sgZmFsbFRocm91Z2gsIFdlaWdodCBmYWxsVGhyb3VnaFdlaWdodCkKICAgICB7Ci0g
ICAgICAgIEIzOjpTd2l0Y2hWYWx1ZSogc3dpdGNoVmFsdWUgPSBtX2Jsb2NrLT5hcHBlbmROZXc8
QjM6OlN3aXRjaFZhbHVlPigKLSAgICAgICAgICAgIG1fcHJvYywgb3JpZ2luKCksIHZhbHVlLCBC
Mzo6RnJlcXVlbnRlZEJsb2NrKGZhbGxUaHJvdWdoKSk7CisgICAgICAgIEIzOjpTd2l0Y2hWYWx1
ZSogc3dpdGNoVmFsdWUgPSBtX2Jsb2NrLT5hcHBlbmROZXc8QjM6OlN3aXRjaFZhbHVlPihtX3By
b2MsIG9yaWdpbigpLCB2YWx1ZSk7CisgICAgICAgIHN3aXRjaFZhbHVlLT5zZXRGYWxsVGhyb3Vn
aChGcmVxdWVudGVkQmxvY2soZmFsbFRocm91Z2gpKTsKICAgICAgICAgZm9yIChjb25zdCBTd2l0
Y2hDYXNlJiBzd2l0Y2hDYXNlIDogY2FzZXMpIHsKICAgICAgICAgICAgIGludDY0X3QgdmFsdWUg
PSBzd2l0Y2hDYXNlLnZhbHVlKCktPmFzSW50KCk7CiAgICAgICAgICAgICBCMzo6RnJlcXVlbnRl
ZEJsb2NrIHRhcmdldChzd2l0Y2hDYXNlLnRhcmdldCgpLCBzd2l0Y2hDYXNlLndlaWdodCgpLmZy
ZXF1ZW5jeUNsYXNzKCkpOwpJbmRleDogV2Vic2l0ZXMvd2Via2l0Lm9yZy9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2Vic2l0ZXMvd2Via2l0Lm9yZy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMjgw
OSkKKysrIFdlYnNpdGVzL3dlYmtpdC5vcmcvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTQgQEAKKzIwMTYtMDUtMjkgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4K
KworICAgICAgICBJbXBsZW1lbnQgdGFibGUtYmFzZWQgc3dpdGNoZXMgaW4gQjMvQWlyCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTExNDEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFVwZGF0
ZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgbmV3IFBvbHlKdW1wIG9wY29kZS4KKworICAgICAgICAq
IGRvY3MvYjMvaW50ZXJtZWRpYXRlLXJlcHJlc2VudGF0aW9uLmh0bWw6CisKIDIwMTYtMDctMDEg
IEpvbiBEYXZpcyAgPGpvbmRAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZGVkIGEgY29sb3JmdWwg
bmV3IGltYWdlIGFuZCBmaXhlZCB0aGUgT3BlbiBHcmFwaCBhdHRyaWJ1dGUuCkluZGV4OiBXZWJz
aXRlcy93ZWJraXQub3JnL2RvY3MvYjMvaW50ZXJtZWRpYXRlLXJlcHJlc2VudGF0aW9uLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2Vic2l0ZXMvd2Via2l0Lm9yZy9kb2NzL2IzL2ludGVybWVkaWF0ZS1y
ZXByZXNlbnRhdGlvbi5odG1sCShyZXZpc2lvbiAyMDI4MDkpCisrKyBXZWJzaXRlcy93ZWJraXQu
b3JnL2RvY3MvYjMvaW50ZXJtZWRpYXRlLXJlcHJlc2VudGF0aW9uLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTUzNyw2ICs1MzcsMzkgQEAgcGF0Y2hwb2ludC0+c2V0R2VuZXJhdG9yKAogICAgICAg
ICBhbHNvIGNvbnRhaW5zIGEgZmFsbC10aHJvdWdoIHRhcmdldCBpbiBjYXNlIHRoZSBjaGlsZCBo
YXMgYSB2YWx1ZSB0aGF0IHdhc24ndCBtZW50aW9uZWQKICAgICAgICAgaW4gdGhlIGNhc2VzIGxp
c3QuICBNdXN0IHVzZSB0aGUgU3dpdGNoVmFsdWUgY2xhc3MuICBNdXN0IGFwcGVhciBhdCB0aGUg
ZW5kIG9mIHRoZSBiYXNpYwogICAgICAgICBibG9jay48L2RkPgorICAgICAgCisgICAgICA8ZHQ+
Vm9pZCBQb2x5SnVtcChJbnRQdHIsIGJsb2Nrcy4uLik8L2R0PgorICAgICAgPGRkPgorICAgICAg
ICA8cD5KdW1wcyB0byB0aGUgZ2l2ZW4gYWRkcmVzcy4gVGhlIGNvbXBpbGVyIHdpbGwgYXNzdW1l
IHRoYXQgdGhpcyBqdW1wcyB0byBvbmUgb2YgdGhlIGdpdmVuCisgICAgICAgICAgYmxvY2tzLiBU
aGUgY29tcGlsZXIgbWFrZXMgbm8gYXR0ZW1wdCB0byBwcm92ZSBvciB2YWxpZGF0ZSB0aGF0IHRo
ZSBwYXNzZWQganVtcCBhZGRyZXNzIGlzCisgICAgICAgICAgYWN0dWFsbHkgdGhlIGFkZHJlc3Mg
b2YgYW55IG9mIHRob3NlIGJsb2Nrcy4gTm9uc2Vuc2ljYWwgdGhpbmdzIHdpbGwgaGFwcGVuIGlm
IHRoZSBwYXNzZWQKKyAgICAgICAgICBhZGRyZXNzIGlzIG5vdCB0aGUgYWRkcmVzcyBvZiBvbmUg
b2YgdGhlIGJsb2NrcyBpbiB0aGUgc3VjY2Vzc29yIGxpc3QuIFlvdSBjYW4gYXJyYW5nZSB0bwor
ICAgICAgICAgIGdldCB0aGUgYWRkcmVzc2VzIG9mIGJsb2NrcyBieSBwYXNzaW5nIGEgY2FsbGJh
Y2sgdG8gUG9seUp1bXAuIFRoaXMgaXMgdXNlZCBpbnRlcm5hbGx5CisgICAgICAgICAgZm9yIGxv
d2VyaW5nIFN3aXRjaCBvcGNvZGVzLiBZb3UgY2FuIGFsc28gdXNlIGl0IGRpcmVjdGx5LjwvcD4K
KyAgICAgIAorICAgICAgICA8cD5Qb2x5SnVtcCBpcyBub3QgY2xvbmVhYmxlLiBGb3IgZWFjaCBQ
b2x5SnVtcCB5b3UgY3JlYXRlLCB0aGVyZSB3aWxsIGJlIG9uZSBpbmRpcmVjdAorICAgICAgICAg
IGp1bXAgZ2VuZXJhdGVkLiBUaGlzIGlzIG5lY2Vzc2FyeSB0byBlbnN1cmUgc291bmRuZXNzIG9m
IHRoZSBjYWxsYmFjay4gSWYgdGhlIFBvbHlKdW1wCisgICAgICAgICAgY291bGQgYmUgY2xvbmVk
LCB0aGVuIHRoZSBjYWxsYmFjayB3b3VsZCBnZXQgY2FsbGVkIGZvciBlYWNoIGNsb25lLiBQcmVz
dW1hYmx5LCB5b3UnZAorICAgICAgICAgIGltcGxlbWVudCB0aGUgY2FsbGJhY2sgYnkgcG9wdWxh
dGluZyBzb21lIHRhYmxlIHdpdGggdGhlIGFkZHJlc3NlcyBvZiB0aGUgYmxvY2tzLiBJZiB0aGUK
KyAgICAgICAgICBjYWxsYmFjayBnZXRzIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyB0aGVuIGl0IG1h
eSByZXR1cm4gZGlmZmVyZW50IGFkZHJlc3NlcyBlYWNoIHRpbWUgLQorICAgICAgICAgIHNpbmNl
IGFmdGVyIGNsb25pbmcgYSBQb2x5SnVtcCwgdGhlIGNvbXBpbGVyIG1heSByZXRhcmdldCBhbnkg
b2YgaXRzIHN1Y2Nlc3NvciBlZGdlcy4KKyAgICAgICAgICBUaGlzIHdvdWxkIGJlIGNvbmZ1c2lu
Zywgc2luY2UgdGhlbiB5b3Ugd291bGRuJ3Qga25vdyB3aGF0IHRvIGRvIHdpdGggZGlzY3JlcGFu
Y2llcyBiZXR3ZWVuCisgICAgICAgICAgYWRkcmVzc2VzIHJldHVybmVkIGJ5IHRoZSB2YXJpb3Vz
IGNhbGxzIHRvIHRoZSBjYWxsYmFjay4gRGlzYWxsb3dpbmcgY2xvbmluZyBvZiBQb2x5SnVtcAor
ICAgICAgICAgIHNvbHZlcyB0aGlzIHByb2JsZW0uPC9wPgorICAgICAgICAKKyAgICAgICAgPHA+
QSBjbG9zZWx5IHJlbGF0ZWQgcHJvYmxlbSBpcyB0aGF0IGlmIHlvdSBlbWl0IG11bHRpcGxlIFBv
bHlKdW1wIGluc3RydWN0aW9ucywgdGhlbiBldmVuCisgICAgICAgICAgaWYgdGhleSBpbml0aWFs
bHkgc2hhcmUgdGhlIHNhbWUgc3VjY2Vzc29ycywgeW91IGNhbm5vdCBndWFyYW50ZWUgdGhhdCB0
aGV5IHdpbGwgY29udGludWUKKyAgICAgICAgICB0byBzaGFyZSB0aGUgc2FtZSBzdWNjZXNzb3Jz
IGFmdGVyIG9wdGltaXphdGlvbi4gVGhpcyBtZWFucyB0aGF0IFBvbHlKdW1wIGNhbm5vdAorICAg
ICAgICAgIGN1cnJlbnRseSBiZSB1c2VkIGZvciBpbXBsZW1lbnRpbmcgZGlyZWN0IHRocmVhZGVk
IGludGVycHJldGVycywgYXQgbGVhc3Qgbm90IHRoZSBjbGFzc2ljCisgICAgICAgICAga2luZDog
dG8gbWFrZSBpdCB3b3JrLCB5b3UgaGF2ZSB0byBoYXZlIGEgc2hhcmVkIGRpc3BhdGNoIGJsb2Nr
IHNvIHRoYXQgeW91IGhhdmUgYSBzaW5nbGUKKyAgICAgICAgICBQb2x5SnVtcC4gVGhpcyBtaWdo
dCBiZSBiZXR0ZXIgdGhhbiBhIFN3aXRjaC1iYXNlZCBpbnRlcnByZXRlciwgYnV0IGl0J3MgZGVm
aW5pdGVseSBub3QKKyAgICAgICAgICBhcyBnb29kIGFzIHdoYXQgeW91J2QgZ2V0IHdpdGggR0ND
LXN0eWxlIGNvbXB1dGVkIGdvdG8uPC9wPgorICAgICAgICAKKyAgICAgICAgPHA+UG9seUp1bXAg
aXMgc28gbmFtZWQgdG8gYXZvaWQgY29uZnVzaW9uIHdpdGggY29tcHV0ZWQgZ290b3MgYW5kIGlu
ZGlyZWN0IGJyYW5jaGVzIGluCisgICAgICAgICAgb3RoZXIgY29tcGlsZXJzLiBJdCBoYXMgc2ln
bmlmaWNhbnQgcmVzdHJpY3Rpb25zIHRoYXQgdGhvc2Ugb3BlcmF0aW9ucyBkbyBub3QgaGF2ZS4g
VGhlc2UKKyAgICAgICAgICByZXN0cmljdGlvbnMgbWFrZSBpdCBlYXNpZXIgZm9yIHRoZSBvcHRp
bWl6ZXIgdG8gd29yayB3aXRoIHNpbmNlIHRoZSBjb250cm9sIGZsb3cgZ2V0cyB0bworICAgICAg
ICAgIGJlIGV4cGxpY2l0IChQb2x5SnVtcCBoYXMgYSBmaW5pdGUgc2V0IG9mIHN1Y2Nlc3NvcnMg
bGlrZSBhbnkgb3RoZXIgYmxvY2sgdGVybWluYWwpLjwvcD4KKyAgICAgIDwvZGQ+CiAKICAgICAg
IDxkdD5Wb2lkIFJldHVybihUKTwvZHQ+CiAgICAgICA8ZGQ+V29ya3MgZm9yIGFueSB0eXBlIGV4
Y2VwdCBWb2lkLiAgUmV0dXJucyB0aGUgZ2l2ZW4gdmFsdWUgYW5kIHRlcm1pbmF0ZXMgdGhlIHBy
b2NlZHVyZS4KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMjgwOSkKKysrIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE2LTA1LTI5ICBGaWxpcCBQ
aXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IHRhYmxlLWJhc2Vk
IHN3aXRjaGVzIGluIEIzL0FpcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTUxMTQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBqcy9yZWdyZXNzL2JpZ3N3aXRjaC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGpzL3JlZ3Jlc3MvYmlnc3dpdGNoLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpz
L3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2JpZ3N3aXRjaC5qczogQWRkZWQuCisgICAgICAgIChmb28p
OgorCiAyMDE2LTA3LTA0ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQsIHNraXAgbWlzYy1idWdzLTg0NzM4OS1qcGVnMjAwMC5qcyBp
biBqc2Mgc3RyZXNzIHRlc3RzCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRj
aC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9iaWdz
d2l0Y2gtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVz
cy9iaWdzd2l0Y2gtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAgQEAK
K0pTUmVncmVzcy9iaWdzd2l0Y2gKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNo
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2guaHRt
bAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICIt
Ly9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYmlnc3dpdGNoLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2JpZ3N3
aXRjaC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0
cy9iaWdzd2l0Y2guanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Nj
cmlwdC10ZXN0cy9iaWdzd2l0Y2guanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMTEgQEAK
K2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCAxMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHZhbHVlID0gaSAmIDYzOworICAgICAg
ICBzd2l0Y2ggKHZhbHVlKSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLmE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAg
cmVzdWx0ICs9IG8uYjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6CisgICAg
ICAgICAgICByZXN1bHQgKz0gby5jOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
MzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSA0OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIDU6CisgICAgICAgICAgICByZXN1bHQgKz0gby5mOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA3OgorICAgICAgICAgICAgcmVzdWx0ICs9
IG8uaDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDg6CisgICAgICAgICAgICBy
ZXN1bHQgKz0gby5pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgOToKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAx
MDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSAxMToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSAxMjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxMzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmM7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxNDoKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLmQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxNToKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxNjoK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmY7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSAxNzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSAxODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSAxOToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyMDoKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyMToKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyMjoKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSAyMzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSAyNDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSAyNToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmM7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyNjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
LmQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyNzoKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyODoKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLmY7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAy
OToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSAzMDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSAzMToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzMjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzMzoKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzNDoKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzNToK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSAzNjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSAzNzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSAzODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmM7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzOToKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLmQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0MDoKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0MToKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLmY7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSA0MjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSA0MzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSA0NDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0NToKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
Lmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0NjoKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0NzoKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0
ODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSA0OToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSA1MDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1MToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1MjoKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLmE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1MzoKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1NDoK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSA1NToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmQ7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSA1NjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmU7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSA1NzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmY7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1ODoKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1OToKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLmg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA2MDoKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSA2MToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSA2MjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLno7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworfQor
CisoZnVuY3Rpb24oKSB7CisgICAgdmFyIG8gPSB7YToxLCBiOjIsIGM6MywgZDo0LCBlOjUsIGY6
NiwgZzo3LCBoOjgsIGk6OSwgajoxMCwgazoxMSwgejoxMDB9OworICAgIHZhciByZXN1bHQgPSAw
OworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKKyAgICAgICAgcmVzdWx0ICs9
IGZvbyhvKTsKKyAgICBpZiAocmVzdWx0ICE9IDc5NjYwMDAwKQorICAgICAgICB0aHJvdyAiRXJy
b3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9KSgpOworCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283059</attachid>
            <date>2016-07-07 15:04:10 -0700</date>
            <delta_ts>2016-07-07 15:33:38 -0700</delta_ts>
            <desc>made some things compile</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>424200</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2NiBA
QAorMjAxNi0wNS0yOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IEltcGxlbWVudCB0YWJsZS1iYXNlZCBzd2l0Y2hlcyBpbiBCMy9BaXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTE0MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgSWYgYSBzd2l0Y2ggc3Rh
dGVtZW50IGdldHMgbGFyZ2UsIGl0J3MgYmV0dGVyIHRvIGV4cHJlc3MgaXQgYXMgYW4gaW5kaXJl
Y3QganVtcCByYXRoZXIgdGhhbgorICAgICAgICB1c2luZyBhIGJpbmFyeSBzd2l0Y2ggKGRpdmlk
ZS1hbmQtY29ucXVlciB0cmVlIG9mIGNvbXBhcmlzb25zIGxlYWRpbmcgdG8gTyhsb2cgbikgYnJh
bmNoZXMgdG8KKyAgICAgICAgZ2V0IHRvIHRoZSBzd2l0Y2ggY2FzZSkuIFdoZW4gZGVhbGluZyB3
aXRoIGludGVnZXIgc3dpdGNoZXMsIEZUTCB3aWxsIGFscmVhZHkgdXNlIHRoZSBCMworICAgICAg
ICBTd2l0Y2ggYW5kIGV4cGVjdCB0aGlzIHRvIGdldCBsb3dlcmVkIGFzIGVmZmljaWVudGx5IGFz
IHBvc3NpYmxlOyBpdCdzIGEgYnVnIHRoYXQgQjMgd2lsbAorICAgICAgICBhbHdheXMgdXNlIGEg
YmluYXJ5IHN3aXRjaCByYXRoZXIgdGhhbiBpbmRpcmVjdCBqdW1wcy4gV2hlbiBkZWFsaW5nIHdp
dGggc3dpdGNoZXMgb3ZlciBzb21lCisgICAgICAgIG1vcmUgc29waGlzdGljYXRlZCB0eXBlcywg
d2UnZCB3YW50IEZUTCB0byBidWlsZCBhbiBpbmRpcmVjdCBqdW1wIHRhYmxlIGl0c2VsZiBhbmQg
dXNlCisgICAgICAgIHNvbWV0aGluZyBsaWtlIGEgaGFzaHRhYmxlIHRvIGZlZWQgaXQuIEluIHRo
YXQgY2FzZSwgdGhlcmUgd2lsbCBiZSBubyBCMyBTd2l0Y2g7IHdlJ2xsIHdhbnQKKyAgICAgICAg
c29tZSBraW5kIG9mIGluZGlyZWN0IGp1bXAgaW5zdHJ1Y3Rpb24uCisgICAgICAgIAorICAgICAg
ICBUaGlzIGltcGxpZXMgdGhhdCB3ZSB3YW50IEIzIHRvIGhhdmUgdGhlIGFiaWxpdHkgdG8gbG93
ZXIgU3dpdGNoIHRvIGluZGlyZWN0IGp1bXBzIGFuZCB0bworICAgICAgICBleHBvc2UgdGhvc2Ug
aW5kaXJlY3QganVtcHMgaW4gSVIgc28gdGhhdCB0aGUgRlRMIGNvdWxkIGRvIGl0cyBvd24gaW5k
aXJlY3QganVtcHMgZm9yCisgICAgICAgIHN3aXRjaGVzIG92ZXIgbW9yZSBjb21wbGljYXRlZCB0
aGluZ3MgbGlrZSBzdHJpbmdzLiBUaGlzIGNoYW5nZSBpbnRyb2R1Y2VzIGFuIGluZGlyZWN0IGp1
bXAKKyAgICAgICAgaW5zdHJ1Y3Rpb24gdG8gQjMgYW5kIGNhbGxzIGl0IFBvbHlKdW1wLiBJdCBo
YXMgc29tZSB1bmlxdWUgc2VtYW50aWNzIHRoYXQgbWFrZSBpdCB2ZXJ5CisgICAgICAgIGRpZmZl
cmVudCBmcm9tICJpbmRpcmVjdCBqdW1wcyIsICJpbmRpcmVjdCBicmFuY2hlcyIsIGFuZCAiY29t
cHV0ZWQgZ290b3MiIC0gYWxsIHRlcm1zIG9mIGFydAorICAgICAgICB1c2VkIGluIG90aGVyIGNv
bXBpbGVycy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaW1wbGVtZW50cyB0aGUgbW9zdCBiYXNp
YyBraW5kIG9mIFN3aXRjaC10by1Qb2x5SnVtcCBsb3dlcmluZyBpbiBCMzo6bG93ZXJNYWNyb3Mo
KS4gQXMKKyAgICAgICAgcGFydCBvZiB0aGUgZXhpc3RpbmcgZGl2aWRlLWFuZC1jb25xdWVyIHRo
YXQgY3JlYXRlcyBicmFuY2hlcywgaWYgaXQgZGV0ZWN0cyB0aGF0IHRoZSBzZXQgb2YKKyAgICAg
ICAgY2FzZXMgc2F0aXNmaWVzIHNvbWUgY29uZGl0aW9ucyAoZGVuc2l0eSBvZiBjYXNlIHZhbHVl
cyBhbmQgdG90YWwgc2l6ZSksIHRoZW4gaXQgd2lsbCBlbWl0IGEKKyAgICAgICAgUG9seUp1bXAu
CisgICAgICAgIAorICAgICAgICBUaGUgcHJvYmxlbSB3aXRoIGNsYXNzaWMgaW5kaXJlY3QganVt
cHMgaXMgdGhhdCB0aGV5IGZvcmNlIHRoZSBjb21waWxlciB0byBiZSBjb25zZXJ2YXRpdmUKKyAg
ICAgICAgYWJvdXQgY29udHJvbCBmbG93LiBUaGUgY29tcGlsZXIgbXVzdCBhc3N1bWUgdGhhdCB0
aGUgaW5kaXJlY3QganVtcCBtYXkgdHJhbnNmZXIgY29udHJvbCBmbG93CisgICAgICAgIHRvIGFu
eSBlc2NhcGVkIGJsb2NrIChibG9jayBsYWJlbGVkIGFzIGJlaW5nIGEgcG9zc2libGUgdGFyZ2V0
IGZvciBpbmRpcmVjdCBqdW1wcywgb3IgaWYgbm8KKyAgICAgICAgc3VjaCBsYWJlbGluZyBpcyBh
dmFpbGFibGUsIHRoZSBjb21waWxlciBtdXN0IGFzc3VtZSB0aGF0IGl0IG1heSB0YXJnZXQgYW55
IGJsb2NrKS4gVGhlIHdvcnN0CisgICAgICAgIHBhcnQgaXMgdGhhdCB0aGUgaW1wbGljaXQgY29u
dHJvbCBmbG93IGVkZ2VzIGZyb20gdGhlIGluZGlyZWN0IGp1bXAgdG8gdGhlIGVzY2FwZWQgYmxv
Y2tzCisgICAgICAgIGNhbm5vdCBiZSBicm9rZW4uIFRoaXMgaW52YWxpZGF0ZXMgYSBwcmluY2lw
bGUgb2YgQjMgSVI6IGFueSBwaGFzZSBtYXkgYnJlYWsgYW55IGNyaXRpY2FsCisgICAgICAgIGVk
Z2UgZm9yIGFueSByZWFzb24uIE91ciBTU0EgY29udmVyc2lvbiB3b3VsZCBicmVhayBpZiB3ZSBy
ZXZva2VkIHRoaXMgZmVhdHVyZS4gSXQncyBhY3R1YWxseQorICAgICAgICBtdWNoIHdvcnNlIHRo
YW4gdGhpcyAtIGJhc2ljYWxseSBhbnkgbG9naWMgb3ZlciBjb250cm9sIGZsb3cgd291bGQgaGF2
ZSB0byBiZSBoYWNrZWQgdG8gZGVhbAorICAgICAgICB3aXRoIHRoZXNlIHVuYnJlYWthYmxlIGVk
Z2VzLiBUaGlzIHdvdWxkIG1lYW4gY2hhbmdpbmcgYWxsIENGRyB0cmFuc2Zvcm1hdGlvbiB1dGls
aXRpZXMgYW5kCisgICAgICAgIHBhc3Nlcy4gV2UgaGF2ZSBhIGxvdCBvZiB0aG9zZSBhbmQgd2Ug
d2FudCBpdCB0byBiZSBlYXN5IHRvIHdyaXRlIG5ldyBvbmVzLgorICAgICAgICAKKyAgICAgICAg
VGhpcyBpcyB3aHkgd2UgdXNlIHNvbWV0aGluZyBuZXcgYW5kIHF1aXRlIGRpZmZlcmVudCBmcm9t
IGNsYXNzaWMgaW5kaXJlY3QganVtcHMuIFBvbHlKdW1wCisgICAgICAgIG1ha2VzIHRoZSBjb250
cm9sIGZsb3cgZWRnZXMgZXhwbGljaXQuIFRoZSBjbGllbnQgbXVzdCBzdXBwbHkgdGhlIHN1Y2Nl
c3NvcnMgd2hlbiBpdCBjcmVhdGVzCisgICAgICAgIHRoZSBQb2x5SnVtcC4gVGhlIGNvbXBpbGVy
IG1heSByZXdpcmUgdGhvc2Ugc3VjY2Vzc29yIGVkZ2VzIHRoZSBzYW1lIHdheSB0aGF0IGl0IHdv
dWxkIHJld2lyZQorICAgICAgICBhbnkgY29udHJvbCBmbG93IGVkZ2VzLiBDb25zZXF1ZW50bHkg
dGhlIHZhc3QgbWFqb3JpdHkgb2YgQ0ZHIHJlYXNvbmluZyBpbiBCMyBpcyB1bmNoYW5nZWQuCisg
ICAgICAgIElmIHlvdSBkb24ndCB3YW50IHRvIHVuZGVyc3RhbmQgUG9seUp1bXAsIGp1c3QgdGhp
bmsgb2YgaXQgbGlrZSB5b3Ugd291bGQgYSBTd2l0Y2ggd2l0aCBhbgorICAgICAgICBvcGFxdWUg
aW5jb21pbmcgdmFsdWUuIFRoaXMgd29ya3MgYmVjYXVzZSB3ZSBkbyBub3QgYWRkIGFueSBub3Rp
b24gb2YgZXNjYXBlZCBiYXNpYyBibG9ja3MuCisgICAgICAgIEluc3RlYWQgb2YgbGV0dGluZyB0
aGUgY2xpZW50IGdldCB0aGUgcG9pbnRlcnMgdG8gYmFzaWMgYmxvY2tzIGJ5IGVzY2FwaW5nIHRo
ZW0gbGlrZSBpbiBMTFZNLAorICAgICAgICB5b3UgY2FuIG9ubHkgZ2V0IHRoZSBwb2ludGVycyBv
ZiB0aGUgc3VjY2Vzc29ycyBvZiBQb2x5SnVtcCBieSByZWdpc3RlcmluZyBhIGNhbGxiYWNrIHdp
dGgKKyAgICAgICAgUG9seUp1bXAuIFRoaXMgY2FsbGJhY2sgZG9lc24ndCBhY3R1YWxseSBnaXZl
IHlvdSB0aGUgYWRkcmVzc2VzIG9mIGJhc2ljIGJsb2Nrcy4gSXQganVzdAorICAgICAgICBnaXZl
cyB5b3UgdGhlIGFkZHJlc3NlcyB3aGVyZSB5b3UgbXVzdCBqdW1wIHRvIHRyYW5zZmVyIGNvbnRy
b2wgZmxvdyBmcm9tIHRoYXQgUG9seUp1bXAgdG8KKyAgICAgICAgaXRzIHN1Y2Nlc3NvcnMuIFRo
aXMgbWVhbnMgdGhhdCB0aGUgbWFnaWMgb2YgUG9seUp1bXAgaXMgY29uZmluZWQgb25seSB0byB0
aGUgUG9seUp1bXAgaXRzZWxmCisgICAgICAgIGFuZCBkb2Vzbid0IGluZmVjdCByZWFzb25pbmcg
YWJvdXQgdGhlIGJhc2ljIGJsb2NrcyB0aGF0IGl0IGp1bXBzIHRvLgorICAgICAgICAKKyAgICAg
ICAgVGhlIG9ubHkgZG93bnNpZGUgaXMgdGhhdCB0aGF0IFBvbHlKdW1wIGlzIG5vdCBjbG9uZWFi
bGUuIFlvdSBjYW4ndCBjbG9uZSBpdCBiZWNhdXNlIGlmIHlvdQorICAgICAgICBkaWQsIHRoZW4g
dGhlIHR3byByZXN1bHRpbmcgUG9seUp1bXBzIG1heSBoYXZlIHRoZWlyIHN1Y2Nlc3NvciBlZGdl
cyByZXdpcmVkIGluZGVwZW5kZW50bHkgb2YKKyAgICAgICAgZWFjaCBvdGhlci4gVGhpcyBjb3Vs
ZCBlYXNpbHkgaGFwcGVuIGlmIHdlIGJyZWFrIGNyaXRpY2FsIGVkZ2VzLiBJZiB0aGF0IGRpZCBo
YXBwZW4gdGhlbiBpdAorICAgICAgICB3b3VsZCBicmVhayB0aGUgY2xpZW50IG9mIFBvbHlKdW1w
OiB0aGV5IHdvdWxkIGhhdmUgYWxyZWFkeSBjcmVhdGVkIHNvbWV0aGluZyBsaWtlIGEganVtcAor
ICAgICAgICB0YWJsZSBhbmQgd2lsbCBiZSBwb3B1bGF0aW5nIGl0IHZpYSB0aGUgY2FsbGJhY2ss
IGJ1dCBub3cgdGhlIGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkIHR3aWNlLAorICAgICAgICBhbmQg
bWF5IHJldHVybiBkaWZmZXJlbnQganVtcCBkZXN0aW5hdGlvbnMgZWFjaCB0aW1lLiBTbywgdGhp
cyBwYXRjaCBpbnRyb2R1Y2VzCisgICAgICAgIFZhbHVlOjppc0Nsb25lYWJsZSgpIGFuZCB0ZWFj
aGVzIGJvdGggb2Ygb3VyIGNvZGUgc3BlY2lhbGl6YXRpb24gb3B0aW1pemF0aW9ucyAodGFpbAor
ICAgICAgICBkdXBsaWNhdGlvbiBhbmQgc2VsZWN0IHNwZWNpYWxpemF0aW9uKSB0byBiYWlsIGlm
IHRoZSBjb2RlIHRoZXkgd2FudCB0byBzcGVjaWFsaXplIGlzIG5vdAorICAgICAgICBjbG9uZWFi
bGUuIFRoaXMgaXMgdG90YWxseSBiZW5pZ24gbW9zdCBvZiB0aGUgdGltZSwgc2luY2UgdGhvc2Ug
b3B0aW1pemF0aW9ucyB1c3VhbGx5IHJ1bgorICAgICAgICBiZWZvcmUgU3dpdGNoIGxvd2VyaW5n
LiBDbGllbnRzIHRoYXQgdXNlIFBvbHlKdW1wIGRpcmVjdGx5IGhhdmUgdG8gYXBwcmVjaWF0ZSB0
aGUgdHJhZGUtb2ZmOgorICAgICAgICBQb2x5SnVtcCBtYXkgZ2FpbiB0aGVtIHNvbWUgcGVyZm9y
bWFuY2UgYnV0IHRoZXkgYXJlIG9wdGluZyBvdXQgb2Ygb3B0aW1pemF0aW9ucyB0aGF0IHVzZQor
ICAgICAgICBjbG9uaW5nLiBBIGNsb3NlIGNvcm9sbGFyeSBvZiB0aGUgbm8tY2xvbmUgcnVsZSBp
cyB0aGF0IHRoZSBjbGllbnQgY2Fubm90IGNyZWF0ZSBtdWx0aXBsZQorICAgICAgICBQb2x5SnVt
cHMgdGhhdCBhcmUgZmVkIGJ5IGEgY29tbW9uIGp1bXAgdGFibGU6IHRoZSBmYWN0IHRoYXQgZWFj
aCBQb2x5SnVtcCBoYXMgYSBjYWxsYmFjaworICAgICAgICB0aGF0IGp1c3QgdGVsbHMgeW91IHRo
ZSBqdW1wIGRlc3RpbmF0aW9ucyBmb3IgaXRzIHN1Y2Nlc3NvciAqZWRnZXMqLCBub3Qgc3VjY2Vz
c29yICpibG9ja3MqLAorICAgICAgICBtZWFucyB0aGF0IGlmIHlvdSBjcmVhdGUgdHdvIFBvbHlK
dW1wcyBhbmQgZ2l2ZSB0aGVtIHRoZSBzYW1lIHN1Y2Nlc3NvciBsaXN0LCB5b3UgYXJlIG5vdAor
ICAgICAgICBndWFyYW50ZWVkIHRoYXQgdGhleSB3aWxsIGdldCB0aGUgc2FtZSBqdW1wIGRlc3Rp
bmF0aW9ucy4gVGhpcyBodXJ0cyBpZiB5b3Ugd2FudCB0byB1c2UKKyAgICAgICAgUG9seUp1bXAg
Zm9yIHRocmVhZGVkIGludGVycHJldGVycyBidXQgaXQncyBoYXJtbGVzcyBmb3Igc3dpdGNoIGxv
d2VyaW5nLiBUaGUgZ29hbCBvZgorICAgICAgICBQb2x5SnVtcCBpcyB0byBiZSBhd2Vzb21lIGZv
ciBzd2l0Y2ggbG93ZXJpbmcgd2hpbGUgbm90IGJyZWFraW5nIHRoZSByZXN0IG9mIHRoZSBjb21w
aWxlciwgc28KKyAgICAgICAgdGhpcyBpcyBwcm9iYWJseSBmaW5lLgorICAgICAgICAKKyAgICAg
ICAgVGhlIGlzQ2xvbmVhYmxlKCkgbWV0aG9kIGN1cnJlbnRseSBvbmx5IHJldHVybnMgdHJ1ZSBm
b3IgUG9seUp1bXAsIGJ1dCBJIGFudGljaXBhdGUgd2Ugd2lsbAorICAgICAgICBhZGQgb3RoZXIg
bm9uLWNsb25lYWJsZSB0aGluZ3MgbGF0ZXIuIEkgdGhpbmsgaXMgaXMgaW5oZXJlbnQgaW4gYSBj
b21waWxlciB0aGF0IGFsbG93cyBzdWNoCisgICAgICAgIGN1c3RvbWl6ZWFiaWxpdHkgZm9yIGl0
cyBjbGllbnRzLiBGb3IgZXhhbXBsZSwgd2UgbWF5IHdhbnQgdG8gYWRkIGEgZmxhZyB0byBQYXRj
aHBvaW50IHRoYXQKKyAgICAgICAgbWFrZXMgaXQgbm9uLWNsb25lYWJsZS4gU29tZXRpbWVzIHdl
IGhhdmUgdG8ganVtcCB0aHJvdWdoIGhvb3BzIGluIHRoZSBGVEwgYmVjYXVzZSBvZiB0aGUKKyAg
ICAgICAgY2xvbmVhYmlsaXR5IG9mIHBhdGNocG9pbnRzLiBUaGlzIGhhcHBlbnMgaW4gT1NSIGV4
aXRzLCB3aGljaCBwYXkgYSBzaWduaWZpY2FudCBtZW1vcnkgY29zdAorICAgICAgICBmb3IgYWRk
aXRpb25hbCBkYXRhIHN0cnVjdHVyZXMgdGhhdCBhcmUgdGhlcmUgaW4gY2FzZSBhbiBleGl0IGdl
dHMgY2xvbmVkLiBJdCBtYXkgYmUgbW9yZQorICAgICAgICBwcm9maXRhYmxlIHRvIGp1c3Qgc2F5
IHRoYXQgT1NSIGV4aXRzIChpLmUuIENoZWNrcyBhbmQgSW52YWxpZGF0aW9uUG9pbnQgUGF0Y2hw
b2ludHMpIGFyZSBub3QKKyAgICAgICAgY2xvbmVhYmxlLiBTdXJlbHkgdGhpcyB3b3VsZCByZWR1
Y2UgdGFpbCBkdXBsaWNhdGlvbiwgYnV0IHRhaWwgZHVwbGljYXRpb24gaXMgbW9zdCBwcm9maXRh
YmxlCisgICAgICAgIHdoZW4gaXQgY2xvbmVzIG9ubHkgYSB0aW55IGFtb3VudCBvZiBjb2RlOyBp
ZiB0aGVyZSdzIGFuIGV4aXQgdGhlbiB3ZSdyZSBub3QgdGFsa2luZyBhYm91dCBhCisgICAgICAg
IHRpbnkgYW1vdW50IG9mIGNvZGUgYW55bW9yZS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaXMg
YSB+MzAlIHNwZWVkLXVwIG9uIG1pY3JvYmVuY2htYXJrcyB0aGF0IGhhdmUgYmlnIHN3aXRjaCBz
dGF0ZW1lbnRzICh+NjAgY2FzZXMpLiBJdCdzCisgICAgICAgIG5vdCBhIHNwZWVkLXVwIG9uIG1h
aW5zdHJlYW0gYmVuY2htYXJrcy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgYWxzbyBhZGRzIGEg
bmV3IHRlc3QgdG8gdGVzdGIzIGZvciBQb2x5SnVtcCwgR2V0LCBhbmQgU2V0LiBUaGUgRlRMIGRv
ZXMgbm90IGN1cnJlbnRseQorICAgICAgICB1c2UgUG9seUp1bXAgZGlyZWN0bHksIGJ1dCB3ZSB3
YW50IHRoaXMgdG8gYmUgcG9zc2libGUuIEl0IGFsc28gZG9lc24ndCB1c2UgR2V0L1NldCBkaXJl
Y3RseQorICAgICAgICBldmVuIHRob3VnaCB3ZSB3YW50IHRoaXMgdG8gYmUgcG9zc2libGUuIEl0
J3MgaW1wb3J0YW50IHRvIHRlc3QgdGhlc2Ugc2luY2Ugb3Bjb2RlcyB0aGF0CisgICAgICAgIHJl
c3VsdCBmcm9tIGxvd2VyaW5nIGRvbid0IGFmZmVjdCBlYXJseSBwaGFzZXMsIHNvIHdlIGNvdWxk
IGhhdmUgcmVncmVzc2lvbnMgaW4gZWFybHkgcGhhc2VzCisgICAgICAgIHJlbGF0ZWQgdG8gdGhl
c2Ugb3Bjb2RlcyB0aGF0IHdvdWxkbid0IGJlIGNhdWdodCBieSBhbnkgSlMgdGVzdC4gU28sIHRo
aXMgYWRkcyBhIHZlcnkgYmFzaWMKKyAgICAgICAgdGhyZWFkZWQgaW50ZXJwcmV0ZXIgdG8gdGVz
dGIzIGZvciBhIEJyYWluZnVjay1zdHlsZSBsYW5ndWFnZSwgYW5kIHRlc3RzIGl0IGJ5IGhhdmlu
ZyBpdCBydW4KKyAgICAgICAgYSBwcm9ncmFtIHRoYXQgcHJpbnRzIHRoZSBudW1iZXJzIDEuLjEw
MCBpbiBhIGxvb3AuIFVubGlrZSBhIHJlYWwgdGhyZWFkZWQgaW50ZXJwcmV0ZXIsIGl0CisgICAg
ICAgIHVzZXMgYSBjb21tb24gZGlzcGF0Y2ggYmxvY2sgcmF0aGVyIHRoYW4gaGF2aW5nIGRpc3Bh
dGNoIGF0IHRoZSB0ZXJtaW51cyBvZiBlYWNoIG9wY29kZS4KKyAgICAgICAgVGhhdCdzIG5lY2Vz
c2FyeSBiZWNhdXNlIFBvbHlKdW1wIGlzIG5vdCBjbG9uZWFibGUuIFRoZSBzdGF0ZSBvZiB0aGUg
aW50ZXJwcmV0ZXIgaXMKKyAgICAgICAgcmVwcmVzZW50ZWQgdXNpbmcgVmFyaWFibGVzIHRoYXQg
d2UgR2V0IGFuZCBTZXQsIHNvIGl0IHRlc3RzIEdldC9TZXQgYXMgd2VsbC4KKworICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9u
Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpqdW1wKToKKyAgICAg
ICAgKiBhc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxl
cjo6am1wX20pOgorICAgICAgICAqIGIzL0IzQmFzaWNCbG9jay5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpCYXNpY0Jsb2NrOjp1cGRhdGVQcmVkZWNlc3NvcnNBZnRlcik6CisgICAgICAgIChKU0M6
OkIzOjpCYXNpY0Jsb2NrOjppc0Nsb25lYWJsZSk6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Js
b2NrOjpkdW1wKToKKyAgICAgICAgKiBiMy9CM0Jhc2ljQmxvY2suaDoKKyAgICAgICAgKEpTQzo6
QjM6OkJhc2ljQmxvY2s6OmZyZXF1ZW5jeSk6CisgICAgICAgICogYjMvQjNDb21tb24uaDoKKyAg
ICAgICAgKEpTQzo6QjM6OmlzNjRCaXQpOgorICAgICAgICAqIGIzL0IzQ29udHJvbFZhbHVlLmg6
CisgICAgICAgICogYjMvQjNEYXRhU2VjdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkIzOjpEYXRh
U2VjdGlvbjo6RGF0YVNlY3Rpb24pOgorICAgICAgICAqIGIzL0IzRHVwbGljYXRlVGFpbHMuY3Bw
OgorICAgICAgICAqIGIzL0IzTG93ZXJNYWNyb3MuY3BwOgorICAgICAgICAqIGIzL0IzTG93ZXJU
b0Fpci5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okxvd2VyVG9BaXI6Omxvd2VyKToKKyAg
ICAgICAgKiBiMy9CM09wY29kZS5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgor
ICAgICAgICAqIGIzL0IzT3Bjb2RlLmg6CisgICAgICAgICogYjMvQjNQb2x5SnVtcFZhbHVlLmNw
cDogQWRkZWQuCisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjp+UG9seUp1bXBWYWx1
ZSk6CisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjphcHBlbmRTdWNjZXNzb3IpOgor
ICAgICAgICAoSlNDOjpCMzo6UG9seUp1bXBWYWx1ZTo6c2V0Q2FsbGJhY2tUYXNrKToKKyAgICAg
ICAgKEpTQzo6QjM6OlBvbHlKdW1wVmFsdWU6OmlzQ2xvbmVhYmxlKToKKyAgICAgICAgKEpTQzo6
QjM6OlBvbHlKdW1wVmFsdWU6OmR1bXBNZXRhKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1w
VmFsdWU6OmNsb25lSW1wbCk6CisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjpQb2x5
SnVtcFZhbHVlKToKKyAgICAgICAgKiBiMy9CM1BvbHlKdW1wVmFsdWUuaDogQWRkZWQuCisgICAg
ICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjphY2NlcHRzKToKKyAgICAgICAgKEpTQzo6QjM6
OlBvbHlKdW1wVmFsdWU6OnNldENhbGxiYWNrKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1w
VmFsdWU6OmNhbGxiYWNrVGFzayk6CisgICAgICAgICogYjMvQjNQcm9jZWR1cmUuY3BwOgorICAg
ICAgICAoSlNDOjpCMzo6UHJvY2VkdXJlOjpjbG9uZSk6CisgICAgICAgICogYjMvQjNQcm9jZWR1
cmUuaDoKKyAgICAgICAgKEpTQzo6QjM6OlByb2NlZHVyZTo6bGFzdFBoYXNlTmFtZSk6CisgICAg
ICAgIChKU0M6OkIzOjpQcm9jZWR1cmU6OmJ5cHJvZHVjdHMpOgorICAgICAgICAqIGIzL0IzUmVk
dWNlU3RyZW5ndGguY3BwOgorICAgICAgICAqIGIzL0IzVmFsaWRhdGUuY3BwOgorICAgICAgICAq
IGIzL0IzVmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6OmVmZmVjdHMpOgorICAg
ICAgICAoSlNDOjpCMzo6VmFsdWU6OmlzQ2xvbmVhYmxlKToKKyAgICAgICAgKEpTQzo6QjM6OlZh
bHVlOjprZXkpOgorICAgICAgICAqIGIzL0IzVmFsdWUuaDoKKyAgICAgICAgKiBiMy9haXIvQWly
Q29kZS5oOgorICAgICAgICAqIGIzL2Fpci9BaXJHZW5lcmF0ZS5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpBaXI6OmdlbmVyYXRlKToKKyAgICAgICAgKiBiMy9haXIvQWlySW5zdC5jcHA6CisgICAg
ICAgIChKU0M6OkIzOjpBaXI6Okluc3Q6Omhhc0FyZ0VmZmVjdHMpOgorICAgICAgICAoSlNDOjpC
Mzo6QWlyOjpJbnN0Ojppc0Nsb25lYWJsZSk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okluc3Q6
OmR1bXApOgorICAgICAgICAqIGIzL2Fpci9BaXJJbnN0Lmg6CisgICAgICAgICogYjMvYWlyL0Fp
ck9wY29kZS5vcGNvZGVzOgorICAgICAgICAqIGIzL3Rlc3RiMy5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpzaG91bGRCZVZlcmJvc2UpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN3aXRjaENoaWxs
RGl2KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RMYXRlUmVnaXN0ZXIpOgorICAgICAgICAoSlND
OjpCMzo6dGhyZWFkZWRJbnRlcnByZXRlclByaW50KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RU
aHJlYWRlZEludGVycHJldGVyKToKKyAgICAgICAgKEpTQzo6QjM6Onplcm8pOgorICAgICAgICAo
SlNDOjpCMzo6cnVuKToKKwogMjAxNi0wNy0wMyAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gRExMcyBhcmUgbWlzc2luZyB2ZXJzaW9uIGluZm9y
bWF0aW9uLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24g
MjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0xMDgsNiArMTA4LDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAg
ICBiMy9CM0Jsb2NrSW5zZXJ0aW9uU2V0LmNwcAogICAgIGIzL0IzQnJlYWtDcml0aWNhbEVkZ2Vz
LmNwcAogICAgIGIzL0IzQ0NhbGxWYWx1ZS5jcHAKKyAgICBiMy9CM0Nhc2VDb2xsZWN0aW9uLmNw
cAogICAgIGIzL0IzQ2hlY2tTcGVjaWFsLmNwcAogICAgIGIzL0IzQ2hlY2tWYWx1ZS5jcHAKICAg
ICBiMy9CM0NvbW1vbi5jcHAKQEAgLTExOCw3ICsxMTksNiBAQCBzZXQoSmF2YVNjcmlwdENvcmVf
U09VUkNFUwogICAgIGIzL0IzQ29uc3REb3VibGVWYWx1ZS5jcHAKICAgICBiMy9CM0NvbnN0Rmxv
YXRWYWx1ZS5jcHAKICAgICBiMy9CM0NvbnN0cmFpbmVkVmFsdWUuY3BwCi0gICAgYjMvQjNDb250
cm9sVmFsdWUuY3BwCiAgICAgYjMvQjNEYXRhU2VjdGlvbi5jcHAKICAgICBiMy9CM0R1cGxpY2F0
ZVRhaWxzLmNwcAogICAgIGIzL0IzRWZmZWN0cy5jcHAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAt
NzczLDggKzc3Myw2IEBACiAJCTBGRUM4NTEwMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0NjRW
YWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZF
Qzg0QzYxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29uc3Q2NFZhbHVlLmggKi87IH07CiAJCTBGRUM4
NTExMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0RG91YmxlVmFsdWUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZFQzg0QzcxQkRBQ0RBQzAwODBG
Rjc0IC8qIEIzQ29uc3REb3VibGVWYWx1ZS5jcHAgKi87IH07CiAJCTBGRUM4NTEyMUJEQUNEQUMw
MDgwRkY3NCAvKiBCM0NvbnN0RG91YmxlVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRUM4NEM4MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0
RG91YmxlVmFsdWUuaCAqLzsgfTsKLQkJMEZFQzg1MTMxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29u
dHJvbFZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGRUM4NEM5MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnRyb2xWYWx1ZS5jcHAgKi87IH07
Ci0JCTBGRUM4NTE0MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnRyb2xWYWx1ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZFQzg0Q0ExQkRBQ0RBQzAw
ODBGRjc0IC8qIEIzQ29udHJvbFZhbHVlLmggKi87IH07CiAJCTBGRUM4NTE1MUJEQUNEQUMwMDgw
RkY3NCAvKiBCM0ZyZXF1ZW5jeUNsYXNzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGRUM4NENCMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0ZyZXF1ZW5j
eUNsYXNzLmNwcCAqLzsgfTsKIAkJMEZFQzg1MTYxQkRBQ0RBQzAwODBGRjc0IC8qIEIzRnJlcXVl
bmN5Q2xhc3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGRUM4NENDMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0ZyZXF1ZW5jeUNsYXNzLmggKi87IH07CiAJ
CTBGRUM4NTE3MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0ZyZXF1ZW50ZWRCbG9jay5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZFQzg0Q0QxQkRBQ0RBQzAw
ODBGRjc0IC8qIEIzRnJlcXVlbnRlZEJsb2NrLmggKi87IH07CkBAIC0xOTk3LDYgKzE5OTUsOSBA
QAogCQlEQzY5QUE2NjFDRjdBMUYyMDBDNjI3MkYgLyogTWF0Y2hSZXN1bHQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM2OUFBNjUxQ0Y3QTFFRjAw
QzYyNzJGIC8qIE1hdGNoUmVzdWx0LmNwcCAqLzsgfTsKIAkJREM3OTk3ODMxQ0RFOUZBMDAwNEQ0
QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IERDNzk5NzgyMUNERTlGOUUwMDRENEEwOSAvKiBUYWdSZWdpc3RlcnNN
b2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
REM3OTk3ODQxQ0RFOUZBMjAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM3OTk3ODExQ0RFOUY5RTAw
NEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuY3BwICovOyB9OworCQlEQzlBMEMxRjFEMkQ5Q0Ix
MDA4NTEyNEUgLyogQjNDYXNlQ29sbGVjdGlvbklubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDOUEwQzFFMUQyRDk0RUYwMDg1MTI0RSAvKiBC
M0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oICovOyB9OworCQlEQzlBMEMyMDFEMkQ5Q0IzMDA4NTEy
NEUgLyogQjNDYXNlQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gREM5QTBDMUQxRDJEOTRFRjAwODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rp
b24uaCAqLzsgfTsKKwkJREM5QTBDMjExRDJEOUNCNDAwODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rp
b24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM5
QTBDMUMxRDJEOTRFRjAwODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rpb24uY3BwICovOyB9OwogCQlE
Q0VFMjIwOTFDRUI5ODk1MDAwQzIzOTYgLyogREZHQmFja3dhcmRzQ0ZHLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQ0VFMjIwNjFDRUI5ODkwMDAwQzIz
OTYgLyogREZHQmFja3dhcmRzQ0ZHLmggKi87IH07CiAJCURDRUUyMjBBMUNFQjk4OTUwMDBDMjM5
NiAvKiBERkdCYWNrd2FyZHNEb21pbmF0b3JzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBEQ0VFMjIwNzFDRUI5ODkwMDAwQzIzOTYgLyogREZHQmFja3dh
cmRzRG9taW5hdG9ycy5oICovOyB9OwogCQlEQ0VFMjIwQjFDRUI5ODk1MDAwQzIzOTYgLyogREZH
Q29udHJvbEVxdWl2YWxlbmNlQW5hbHlzaXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IERDRUUyMjA4MUNFQjk4OTAwMDBDMjM5NiAvKiBERkdDb250cm9s
RXF1aXZhbGVuY2VBbmFseXNpcy5oICovOyB9OwpAQCAtMjk2NCw4ICsyOTY1LDYgQEAKIAkJMEZF
Qzg0QzYxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29uc3Q2NFZhbHVlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IEIzQ29uc3Q2NFZhbHVlLmg7IHBhdGggPSBiMy9CM0NvbnN0NjRW
YWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkVDODRDNzFCREFDREFDMDA4
MEZGNzQgLyogQjNDb25zdERvdWJsZVZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IEIzQ29uc3REb3VibGVWYWx1ZS5jcHA7IHBhdGggPSBiMy9CM0NvbnN0RG91
YmxlVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkVDODRDODFCREFD
REFDMDA4MEZGNzQgLyogQjNDb25zdERvdWJsZVZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IEIzQ29uc3REb3VibGVWYWx1ZS5oOyBwYXRoID0gYjMvQjNDb25zdERvdWJs
ZVZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGRUM4NEM5MUJEQUNEQUMw
MDgwRkY3NCAvKiBCM0NvbnRyb2xWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBCM0NvbnRyb2xWYWx1ZS5jcHA7IHBhdGggPSBiMy9CM0NvbnRyb2xWYWx1ZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGRUM4NENBMUJEQUNEQUMwMDgwRkY3
NCAvKiBCM0NvbnRyb2xWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBC
M0NvbnRyb2xWYWx1ZS5oOyBwYXRoID0gYjMvQjNDb250cm9sVmFsdWUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEZFQzg0Q0IxQkRBQ0RBQzAwODBGRjc0IC8qIEIzRnJlcXVlbmN5
Q2xhc3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQjNGcmVxdWVu
Y3lDbGFzcy5jcHA7IHBhdGggPSBiMy9CM0ZyZXF1ZW5jeUNsYXNzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEZFQzg0Q0MxQkRBQ0RBQzAwODBGRjc0IC8qIEIzRnJlcXVlbmN5
Q2xhc3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQjNGcmVxdWVuY3lDbGFz
cy5oOyBwYXRoID0gYjMvQjNGcmVxdWVuY3lDbGFzcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRkVDODRDRDFCREFDREFDMDA4MEZGNzQgLyogQjNGcmVxdWVudGVkQmxvY2suaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQjNGcmVxdWVudGVkQmxvY2suaDsgcGF0
aCA9IGIzL0IzRnJlcXVlbnRlZEJsb2NrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC00MjI1LDYgKzQyMjQsOSBAQAogCQlEQzY5QUE2NTFDRjdBMUVGMDBDNjI3MkYgLyogTWF0Y2hS
ZXN1bHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWF0Y2hSZXN1
bHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzc5OTc4MTFDREU5RjlFMDA0
RDRBMDkgLyogVGFnUmVnaXN0ZXJzTW9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBUYWdSZWdpc3RlcnNNb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJREM3OTk3ODIxQ0RFOUY5RTAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGFnUmVnaXN0ZXJzTW9kZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlEQzlBMEMxQzFEMkQ5NEVGMDA4NTEyNEUgLyogQjNDYXNl
Q29sbGVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBCM0Nh
c2VDb2xsZWN0aW9uLmNwcDsgcGF0aCA9IGIzL0IzQ2FzZUNvbGxlY3Rpb24uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlEQzlBMEMxRDFEMkQ5NEVGMDA4NTEyNEUgLyogQjNDYXNl
Q29sbGVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCM0Nhc2VDb2xs
ZWN0aW9uLmg7IHBhdGggPSBiMy9CM0Nhc2VDb2xsZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCURDOUEwQzFFMUQyRDk0RUYwMDg1MTI0RSAvKiBCM0Nhc2VDb2xsZWN0aW9u
SW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCM0Nhc2VDb2xsZWN0
aW9uSW5saW5lcy5oOyBwYXRoID0gYjMvQjNDYXNlQ29sbGVjdGlvbklubGluZXMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRENFRTIyMDYxQ0VCOTg5MDAwMEMyMzk2IC8qIERGR0Jh
Y2t3YXJkc0NGRy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdCYWNrd2Fy
ZHNDRkcuaDsgcGF0aCA9IGRmZy9ERkdCYWNrd2FyZHNDRkcuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRENFRTIyMDcxQ0VCOTg5MDAwMEMyMzk2IC8qIERGR0JhY2t3YXJkc0RvbWlu
YXRvcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHQmFja3dhcmRzRG9t
aW5hdG9ycy5oOyBwYXRoID0gZGZnL0RGR0JhY2t3YXJkc0RvbWluYXRvcnMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRENFRTIyMDgxQ0VCOTg5MDAwMEMyMzk2IC8qIERGR0NvbnRy
b2xFcXVpdmFsZW5jZUFuYWx5c2lzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IERGR0NvbnRyb2xFcXVpdmFsZW5jZUFuYWx5c2lzLmg7IHBhdGggPSBkZmcvREZHQ29udHJvbEVx
dWl2YWxlbmNlQW5hbHlzaXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ2OTAs
NiArNDY5Miw5IEBACiAJCQkJRENGREZCRDcxRDFGNUQ5ODAwRkUzRDcyIC8qIEIzQm90dG9tUHJv
dmlkZXIuaCAqLywKIAkJCQkwRjZCOEFERTFDNEVGRTE3MDA5NjkwNTIgLyogQjNCcmVha0NyaXRp
Y2FsRWRnZXMuY3BwICovLAogCQkJCTBGNkI4QURGMUM0RUZFMTcwMDk2OTA1MiAvKiBCM0JyZWFr
Q3JpdGljYWxFZGdlcy5oICovLAorCQkJCURDOUEwQzFDMUQyRDk0RUYwMDg1MTI0RSAvKiBCM0Nh
c2VDb2xsZWN0aW9uLmNwcCAqLywKKwkJCQlEQzlBMEMxRDFEMkQ5NEVGMDA4NTEyNEUgLyogQjND
YXNlQ29sbGVjdGlvbi5oICovLAorCQkJCURDOUEwQzFFMUQyRDk0RUYwMDg1MTI0RSAvKiBCM0Nh
c2VDb2xsZWN0aW9uSW5saW5lcy5oICovLAogCQkJCTBGMzM4REY3MUJFOTZBQTgwMDEzQzg4RiAv
KiBCM0NDYWxsVmFsdWUuY3BwICovLAogCQkJCTBGMzM4REY4MUJFOTZBQTgwMDEzQzg4RiAvKiBC
M0NDYWxsVmFsdWUuaCAqLywKIAkJCQkwRjMzRkNGOTFDMTYyNUJFMDAzMjNGNjcgLyogQjNDRkcu
aCAqLywKQEAgLTQ3MTUsOCArNDcyMCw2IEBACiAJCQkJMEZFQzg1QjIxQkRFRDk1NzAwODBGRjc0
IC8qIEIzQ29uc3RQdHJWYWx1ZS5oICovLAogCQkJCTBGMzM4REYzMUJFOTNENTUwMDEzQzg4RiAv
KiBCM0NvbnN0cmFpbmVkVmFsdWUuY3BwICovLAogCQkJCTBGMzM4REY0MUJFOTNENTUwMDEzQzg4
RiAvKiBCM0NvbnN0cmFpbmVkVmFsdWUuaCAqLywKLQkJCQkwRkVDODRDOTFCREFDREFDMDA4MEZG
NzQgLyogQjNDb250cm9sVmFsdWUuY3BwICovLAotCQkJCTBGRUM4NENBMUJEQUNEQUMwMDgwRkY3
NCAvKiBCM0NvbnRyb2xWYWx1ZS5oICovLAogCQkJCTBGMzM4RTAxMUJGMDI3NkMwMDEzQzg4RiAv
KiBCM0RhdGFTZWN0aW9uLmNwcCAqLywKIAkJCQkwRjMzOEUwMjFCRjAyNzZDMDAxM0M4OEYgLyog
QjNEYXRhU2VjdGlvbi5oICovLAogCQkJCTBGMzNGQ0ZBMUMxNjI1QkUwMDMyM0Y2NyAvKiBCM0Rv
bWluYXRvcnMuaCAqLywKQEAgLTcwNjgsNyArNzA3MSw2IEBACiAJCQkJMEZFQzg1MTAxQkRBQ0RB
QzAwODBGRjc0IC8qIEIzQ29uc3Q2NFZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODUx
MjFCREFDREFDMDA4MEZGNzQgLyogQjNDb25zdERvdWJsZVZhbHVlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkVDODVCMzFCREVEOTU3MDA4MEZGNzQgLyogQjNDb25zdFB0clZhbHVlLmggaW4gSGVh
ZGVycyAqLywKLQkJCQkwRkVDODUxNDFCREFDREFDMDA4MEZGNzQgLyogQjNDb250cm9sVmFsdWUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NUMxMUJFMTY3QTAwMDgwRkY3NCAvKiBCM0VmZmVj
dHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTE2MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0Zy
ZXF1ZW5jeUNsYXNzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjYxODMyRjFDNDVCRjA3MDA3MjQ1
MEIgLyogQWlyTG93ZXJBZnRlclJlZ0FsbG9jLmggaW4gSGVhZGVycyAqLywKQEAgLTcyMjUsNiAr
NzIyNyw3IEBACiAJCQkJQkMxOEMzRkIwRTE2RjVDRDAwQjM0NDYwIC8qIERlYnVnZ2VyQ2FsbEZy
YW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQk2QUQyQ0I0RDE5QjkxNDAxMDAwNjU3MTkgLyogRGVi
dWdnZXJFdmFsRW5hYmxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkVBMDg2MjExODJCN0EwNDAw
RjZEODUxIC8qIERlYnVnZ2VyUHJpbWl0aXZlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJREM5QTBD
MUYxRDJEOUNCMTAwODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rpb25JbmxpbmVzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjJENERERTE5ODMyRDM0MDA3RDRCMTkgLyogRGVidWdnZXJTY29wZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEYxMzZENEQxNzRBRDY5RTAwNzVCMzU0IC8qIERlZmVyR0MuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGQzcxMkRGMTdDRDg3N0MwMDhDQzkzQyAvKiBEZWZlcnJlZENv
bXBpbGF0aW9uQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLApAQCAtNzQ3OCw2ICs3NDgxLDcgQEAK
IAkJCQkwRkUwRTRBRTFDMjRDOTRBMDAyRTE3QjYgLyogQWlyVG1wV2lkdGguaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE3RjI5OTZDMTdBMEJCNjcwMDEwNDE3QSAvKiBGVExGYWlsLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRkVBMEEyQzE3MEI2NjE5MDBCQjcyMkMgLyogRlRMRm9ybWF0dGVkVmFsdWUu
aCBpbiBIZWFkZXJzICovLAorCQkJCURDOUEwQzIwMUQyRDlDQjMwMDg1MTI0RSAvKiBCM0Nhc2VD
b2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkQ4QTMxQTE3RDUxRjIyMDBDQTJDNDAg
LyogRlRMRm9yT1NSRW50cnlKSVRDb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzhBOTc3RjE3
OTczOEQ1MDA5REY3NDQgLyogRlRMR2VuZXJhdGVkRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGRUEwQTBFMTcwNTEzREIwMEJCNzIyQyAvKiBGVExKSVRDb2RlLmggaW4gSGVhZGVycyAq
LywKQEAgLTg3MTEsNyArODcxNSw2IEBACiAJCQkJNDM2RTU0NTQxQzQ2OEU3NzAwQjVBRjczIC8q
IEIzTGVnYWxpemVNZW1vcnlPZmZzZXRzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRUM4NTBG
MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0NjRWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwRkVDODUxMTFCREFDREFDMDA4MEZGNzQgLyogQjNDb25zdERvdWJsZVZhbHVlLmNwcCBpbiBT
b3VyY2VzICovLAotCQkJCTBGRUM4NTEzMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnRyb2xWYWx1
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkVDODVDNTFCRTE2RjVBMDA4MEZGNzQgLyogQjNF
ZmZlY3RzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRUM4NTE1MUJEQUNEQUMwMDgwRkY3NCAv
KiBCM0ZyZXF1ZW5jeUNsYXNzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRUM4NTE4MUJEQUNE
QUMwMDgwRkY3NCAvKiBCM0dlbmVyYXRlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtOTE1Niw2ICs5
MTU5LDcgQEAKIAkJCQkxNDdGMzlEMjEwN0VDMzc2MDA0MjdBNDggLyogSlNHbG9iYWxPYmplY3Qu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVGRDAwODUxODlCMUI3RTAwNjMzMjMxIC8qIEpTR2xv
YmFsT2JqZWN0Q29uc29sZUFnZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1QzNBMUE1MThD
MDQ5MDIwMEM5NTkzQSAvKiBKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJREM5QTBDMjExRDJEOUNCNDAwODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rpb24u
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTU5NDU1OTIxODI0NzQ0NzAwQ0MzODQzIC8qIEpTR2xv
YmFsT2JqZWN0RGVidWdnYWJsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTdEMjNFOTE4OTFC
MDc3MDAzMUM3RkEgLyogSlNHbG9iYWxPYmplY3REZWJ1Z2dlckFnZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTE0RTlEMTdCMTA3RUM0NjkwMDREREEyMSAvKiBKU0dsb2JhbE9iamVjdEZ1bmN0
aW9ucy5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCShyZXZpc2lvbiAyMDI4MDkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQu
aAkod29ya2luZyBjb3B5KQpAQCAtMjg3NCw2ICsyODc0LDEyIEBAIHB1YmxpYzoKICAgICAgICAg
bG9hZDY0KGFkZHJlc3MsIGdldENhY2hlZERhdGFUZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUo
KSk7CiAgICAgICAgIG1fYXNzZW1ibGVyLmJyKGRhdGFUZW1wUmVnaXN0ZXIpOwogICAgIH0KKyAg
ICAKKyAgICB2b2lkIGp1bXAoQmFzZUluZGV4IGFkZHJlc3MpCisgICAgeworICAgICAgICBsb2Fk
NjQoYWRkcmVzcywgZ2V0Q2FjaGVkRGF0YVRlbXBSZWdpc3RlcklEQW5kSW52YWxpZGF0ZSgpKTsK
KyAgICAgICAgbV9hc3NlbWJsZXIuYnIoZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgfQogCiAgICAg
dm9pZCBqdW1wKEFic29sdXRlQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2
Q29tbW9uLmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaAkod29ya2luZyBjb3B5KQpAQCAtMjI2Myw2
ICsyMjYzLDEyIEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIuam1wX20oYWRkcmVzcy5v
ZmZzZXQsIGFkZHJlc3MuYmFzZSk7CiAgICAgfQogCisgICAgLy8gQWRkcmVzcyBpcyBhIG1lbW9y
eSBsb2NhdGlvbiBjb250YWluaW5nIHRoZSBhZGRyZXNzIHRvIGp1bXAgdG8KKyAgICB2b2lkIGp1
bXAoQmFzZUluZGV4IGFkZHJlc3MpCisgICAgeworICAgICAgICBtX2Fzc2VtYmxlci5qbXBfbShh
ZGRyZXNzLm9mZnNldCwgYWRkcmVzcy5iYXNlLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxl
KTsKKyAgICB9CisKIAogICAgIC8vIEFyaXRobWV0aWMgY29udHJvbCBmbG93IG9wZXJhdGlvbnM6
CiAgICAgLy8KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1i
bGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZB
c3NlbWJsZXIuaAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9YODZBc3NlbWJsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTk4Myw2ICsxOTgzLDEx
IEBAIHB1YmxpYzoKICAgICAgICAgbV9mb3JtYXR0ZXIub25lQnl0ZU9wKE9QX0dST1VQNV9Fdiwg
R1JPVVA1X09QX0pNUE4sIGJhc2UsIG9mZnNldCk7CiAgICAgfQogICAgIAorICAgIHZvaWQgam1w
X20oaW50IG9mZnNldCwgUmVnaXN0ZXJJRCBiYXNlLCBSZWdpc3RlcklEIGluZGV4LCBpbnQgc2Nh
bGUpCisgICAgeworICAgICAgICBtX2Zvcm1hdHRlci5vbmVCeXRlT3AoT1BfR1JPVVA1X0V2LCBH
Uk9VUDVfT1BfSk1QTiwgYmFzZSwgaW5kZXgsIHNjYWxlLCBvZmZzZXQpOworICAgIH0KKyAgICAK
ICNpZiAhQ1BVKFg4Nl82NCkKICAgICB2b2lkIGptcF9tKGNvbnN0IHZvaWQqIGFkZHJlc3MpCiAg
ICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5jcHAJKHJl
dmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2su
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw2IEBACiAKICNpbmNsdWRlICJCM0Jhc2lj
QmxvY2tJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrVXRpbHMuaCIKLSNpbmNsdWRl
ICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJlLmgiCiAjaW5jbHVkZSAi
QjNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlIDx3dGYvTGlzdER1bXAuaD4KQEAgLTUyLDEyICs1
MSwxNCBAQCBCYXNpY0Jsb2NrOjp+QmFzaWNCbG9jaygpCiB2b2lkIEJhc2ljQmxvY2s6OmFwcGVu
ZChWYWx1ZSogdmFsdWUpCiB7CiAgICAgbV92YWx1ZXMuYXBwZW5kKHZhbHVlKTsKKyAgICB2YWx1
ZS0+b3duZXIgPSB0aGlzOwogfQogCiB2b2lkIEJhc2ljQmxvY2s6OmFwcGVuZE5vblRlcm1pbmFs
KFZhbHVlKiB2YWx1ZSkKIHsKICAgICBtX3ZhbHVlcy5hcHBlbmQobV92YWx1ZXMubGFzdCgpKTsK
ICAgICBtX3ZhbHVlc1ttX3ZhbHVlcy5zaXplKCkgLSAxXSA9IHZhbHVlOworICAgIHZhbHVlLT5v
d25lciA9IHRoaXM7CiB9CiAKIHZvaWQgQmFzaWNCbG9jazo6cmVtb3ZlTGFzdChQcm9jZWR1cmUm
IHByb2MpCkBAIC04NCw5ICs4NSw0MSBAQCBWYWx1ZSogQmFzaWNCbG9jazo6YXBwZW5kSW50Q29u
c3RhbnQoUHJvCiAgICAgcmV0dXJuIGFwcGVuZEludENvbnN0YW50KHByb2MsIGxpa2VWYWx1ZS0+
b3JpZ2luKCksIGxpa2VWYWx1ZS0+dHlwZSgpLCB2YWx1ZSk7CiB9CiAKK3ZvaWQgQmFzaWNCbG9j
azo6Y2xlYXJTdWNjZXNzb3JzKCkKK3sKKyAgICBtX3N1Y2Nlc3NvcnMuY2xlYXIoKTsKK30KKwor
dm9pZCBCYXNpY0Jsb2NrOjphcHBlbmRTdWNjZXNzb3IoY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0
YXJnZXQpCit7CisgICAgbV9zdWNjZXNzb3JzLmFwcGVuZCh0YXJnZXQpOworfQorCit2b2lkIEJh
c2ljQmxvY2s6OnNldFN1Y2Nlc3NvcnMoY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YXJnZXQpCit7
CisgICAgbV9zdWNjZXNzb3JzLnJlc2l6ZSgxKTsKKyAgICBtX3N1Y2Nlc3NvcnNbMF0gPSB0YXJn
ZXQ7Cit9CisKK3ZvaWQgQmFzaWNCbG9jazo6c2V0U3VjY2Vzc29ycyhjb25zdCBGcmVxdWVudGVk
QmxvY2smIHRha2VuLCBjb25zdCBGcmVxdWVudGVkQmxvY2smIG5vdFRha2VuKQoreworICAgIG1f
c3VjY2Vzc29ycy5yZXNpemUoMik7CisgICAgbV9zdWNjZXNzb3JzWzBdID0gdGFrZW47CisgICAg
bV9zdWNjZXNzb3JzWzFdID0gbm90VGFrZW47Cit9CisKIGJvb2wgQmFzaWNCbG9jazo6cmVwbGFj
ZVN1Y2Nlc3NvcihCYXNpY0Jsb2NrKiBmcm9tLCBCYXNpY0Jsb2NrKiB0bykKIHsKLSAgICByZXR1
cm4gbGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCktPnJlcGxhY2VTdWNjZXNzb3IoZnJvbSwgdG8p
OworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgZm9yIChCYXNpY0Jsb2NrKiYgc3VjY2Vz
c29yIDogc3VjY2Vzc29yQmxvY2tzKCkpIHsKKyAgICAgICAgaWYgKHN1Y2Nlc3NvciA9PSBmcm9t
KSB7CisgICAgICAgICAgICBzdWNjZXNzb3IgPSB0bzsKKyAgICAgICAgICAgIHJlc3VsdCA9IHRy
dWU7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIEtlZXAgbG9vcGluZyBiZWNhdXNlIGEg
c3VjY2Vzc29yIG1heSBiZSBtZW50aW9uZWQgbXVsdGlwbGUgdGltZXMsIGxpa2UgaW4gYSBTd2l0
Y2guCisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogYm9vbCBCYXNp
Y0Jsb2NrOjphZGRQcmVkZWNlc3NvcihCYXNpY0Jsb2NrKiBibG9jaykKQEAgLTEyMSw2ICsxNTQs
NDIgQEAgdm9pZCBCYXNpY0Jsb2NrOjpkZWVwRHVtcChjb25zdCBQcm9jZWR1cgogICAgICAgICBv
dXQucHJpbnQoIiAgUHJlZGVjZXNzb3JzOiAiLCBwb2ludGVyTGlzdER1bXAocHJlZGVjZXNzb3Jz
KCkpLCAiXG4iKTsKICAgICBmb3IgKFZhbHVlKiB2YWx1ZSA6ICp0aGlzKQogICAgICAgICBvdXQu
cHJpbnQoIiAgICAiLCBCMzo6ZGVlcER1bXAocHJvYywgdmFsdWUpLCAiXG4iKTsKKyAgICBpZiAo
c3VjY2Vzc29ycygpLnNpemUoKSkgeworICAgICAgICBvdXQucHJpbnQoIiAgU3VjY2Vzc29yczog
Iik7CisgICAgICAgIGlmIChzaXplKCkpCisgICAgICAgICAgICBsYXN0KCktPmR1bXBTdWNjZXNz
b3JzKHRoaXMsIG91dCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG91dC5wcmludChsaXN0
RHVtcChzdWNjZXNzb3JzKCkpKTsKKyAgICAgICAgb3V0LnByaW50KCJcbiIpOworICAgIH0KK30K
KworVmFsdWUqIEJhc2ljQmxvY2s6OmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShQcm9jZWR1cmUmIHBy
b2MsIE9wY29kZSBvcGNvZGUsIE9yaWdpbiBvcmlnaW4pCit7CisgICAgUkVMRUFTRV9BU1NFUlQo
b3Bjb2RlID09IE9vcHMpOworICAgIGNsZWFyU3VjY2Vzc29ycygpOworICAgIHJldHVybiBhcHBl
bmROZXc8VmFsdWU+KHByb2MsIG9wY29kZSwgb3JpZ2luKTsKK30KKworVmFsdWUqIEJhc2ljQmxv
Y2s6OmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShQcm9jZWR1cmUmIHByb2MsIE9wY29kZSBvcGNvZGUs
IE9yaWdpbiBvcmlnaW4sIFZhbHVlKiB2YWx1ZSkKK3sKKyAgICBSRUxFQVNFX0FTU0VSVChvcGNv
ZGUgPT0gUmV0dXJuKTsKKyAgICBjbGVhclN1Y2Nlc3NvcnMoKTsKKyAgICByZXR1cm4gYXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBvcGNvZGUsIG9yaWdpbiwgdmFsdWUpOworfQorCitWYWx1ZSogQmFz
aWNCbG9jazo6YXBwZW5kTmV3Q29udHJvbFZhbHVlKFByb2NlZHVyZSYgcHJvYywgT3Bjb2RlIG9w
Y29kZSwgT3JpZ2luIG9yaWdpbiwgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YXJnZXQpCit7Cisg
ICAgUkVMRUFTRV9BU1NFUlQob3Bjb2RlID09IEp1bXApOworICAgIHNldFN1Y2Nlc3NvcnModGFy
Z2V0KTsKKyAgICByZXR1cm4gYXBwZW5kTmV3PFZhbHVlPihwcm9jLCBvcGNvZGUsIG9yaWdpbik7
Cit9CisKK1ZhbHVlKiBCYXNpY0Jsb2NrOjphcHBlbmROZXdDb250cm9sVmFsdWUoUHJvY2VkdXJl
JiBwcm9jLCBPcGNvZGUgb3Bjb2RlLCBPcmlnaW4gb3JpZ2luLCBWYWx1ZSogcHJlZGljYXRlLCBj
b25zdCBGcmVxdWVudGVkQmxvY2smIHRha2VuLCBjb25zdCBGcmVxdWVudGVkQmxvY2smIG5vdFRh
a2VuKQoreworICAgIFJFTEVBU0VfQVNTRVJUKG9wY29kZSA9PSBCcmFuY2gpOworICAgIHNldFN1
Y2Nlc3NvcnModGFrZW4sIG5vdFRha2VuKTsKKyAgICByZXR1cm4gYXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBvcGNvZGUsIG9yaWdpbiwgcHJlZGljYXRlKTsKIH0KIAogfSB9IC8vIG5hbWVzcGFjZSBK
U0M6OkIzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5oCShyZXZp
c2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoQjNfSklUKQogCiAj
aW5jbHVkZSAiQjNGcmVxdWVudGVkQmxvY2suaCIKKyNpbmNsdWRlICJCM09wY29kZS5oIgogI2lu
Y2x1ZGUgIkIzT3JpZ2luLmgiCiAjaW5jbHVkZSAiQjNTdWNjZXNzb3JDb2xsZWN0aW9uLmgiCiAj
aW5jbHVkZSAiQjNUeXBlLmgiCkBAIC00Nyw3ICs0OCw3IEBAIGNsYXNzIEJhc2ljQmxvY2sgewog
cHVibGljOgogICAgIHR5cGVkZWYgVmVjdG9yPFZhbHVlKj4gVmFsdWVMaXN0OwogICAgIHR5cGVk
ZWYgVmVjdG9yPEJhc2ljQmxvY2sqLCAyPiBQcmVkZWNlc3Nvckxpc3Q7Ci0gICAgdHlwZWRlZiBW
ZWN0b3I8RnJlcXVlbnRlZEJsb2NrLCAyPiBTdWNjZXNzb3JMaXN0OyAvLyBUaGlzIG1hdGNoZXMg
Q29udHJvbFZhbHVlOjpTdWNjZXNzb3JMaXN0CisgICAgdHlwZWRlZiBWZWN0b3I8RnJlcXVlbnRl
ZEJsb2NrLCAyPiBTdWNjZXNzb3JMaXN0OwogCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0
IGR1bXBQcmVmaXg7CiAKQEAgLTc1LDMwICs3Niw1MSBAQCBwdWJsaWM6CiAgICAgSlNfRVhQT1JU
X1BSSVZBVEUgdm9pZCByZXBsYWNlTGFzdChQcm9jZWR1cmUmLCBWYWx1ZSopOwogCiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgVmFsdWVUeXBlLCB0eXBlbmFtZS4uLiBBcmd1bWVudHM+Ci0gICAgVmFs
dWVUeXBlKiBhcHBlbmROZXcoUHJvY2VkdXJlJiwgQXJndW1lbnRzLi4uKTsKKyAgICBWYWx1ZVR5
cGUqIGFwcGVuZE5ldyhQcm9jZWR1cmUmLCBBcmd1bWVudHMmJi4uLik7CiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgVmFsdWVUeXBlLCB0eXBlbmFtZS4uLiBBcmd1bWVudHM+Ci0gICAgVmFsdWVUeXBl
KiBhcHBlbmROZXdOb25UZXJtaW5hbChQcm9jZWR1cmUmLCBBcmd1bWVudHMuLi4pOwotCisgICAg
VmFsdWVUeXBlKiBhcHBlbmROZXdOb25UZXJtaW5hbChQcm9jZWR1cmUmLCBBcmd1bWVudHMmJi4u
Lik7CisgICAgCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgVmFsdWUqIGFwcGVuZEludENvbnN0YW50
KFByb2NlZHVyZSYsIE9yaWdpbiwgVHlwZSwgaW50NjRfdCB2YWx1ZSk7CiAgICAgVmFsdWUqIGFw
cGVuZEludENvbnN0YW50KFByb2NlZHVyZSYsIFZhbHVlKiBsaWtlVmFsdWUsIGludDY0X3QgdmFs
dWUpOwogCiAgICAgdm9pZCByZW1vdmVMYXN0KFByb2NlZHVyZSYpOwogICAgIAogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5hbWUuLi4gQXJndW1lbnRzPgotICAgIFZhbHVl
VHlwZSogcmVwbGFjZUxhc3RXaXRoTmV3KFByb2NlZHVyZSYsIEFyZ3VtZW50cy4uLik7CisgICAg
VmFsdWVUeXBlKiByZXBsYWNlTGFzdFdpdGhOZXcoUHJvY2VkdXJlJiwgQXJndW1lbnRzJiYuLi4p
OwogCi0gICAgdW5zaWduZWQgbnVtU3VjY2Vzc29ycygpIGNvbnN0OwotICAgIGNvbnN0IEZyZXF1
ZW50ZWRCbG9jayYgc3VjY2Vzc29yKHVuc2lnbmVkIGluZGV4KSBjb25zdDsKLSAgICBGcmVxdWVu
dGVkQmxvY2smIHN1Y2Nlc3Nvcih1bnNpZ25lZCBpbmRleCk7Ci0gICAgY29uc3QgU3VjY2Vzc29y
TGlzdCYgc3VjY2Vzc29ycygpIGNvbnN0OwotICAgIFN1Y2Nlc3Nvckxpc3QmIHN1Y2Nlc3NvcnMo
KTsKLQotICAgIEJhc2ljQmxvY2sqIHN1Y2Nlc3NvckJsb2NrKHVuc2lnbmVkIGluZGV4KSBjb25z
dDsKLSAgICBCYXNpY0Jsb2NrKiYgc3VjY2Vzc29yQmxvY2sodW5zaWduZWQgaW5kZXgpOwotICAg
IFN1Y2Nlc3NvckNvbGxlY3Rpb248QmFzaWNCbG9jaywgU3VjY2Vzc29yTGlzdD4gc3VjY2Vzc29y
QmxvY2tzKCk7Ci0gICAgU3VjY2Vzc29yQ29sbGVjdGlvbjxjb25zdCBCYXNpY0Jsb2NrLCBjb25z
dCBTdWNjZXNzb3JMaXN0PiBzdWNjZXNzb3JCbG9ja3MoKSBjb25zdDsKKyAgICB1bnNpZ25lZCBu
dW1TdWNjZXNzb3JzKCkgY29uc3QgeyByZXR1cm4gbV9zdWNjZXNzb3JzLnNpemUoKTsgfQorICAg
IGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgc3VjY2Vzc29yKHVuc2lnbmVkIGluZGV4KSBjb25zdCB7
IHJldHVybiBtX3N1Y2Nlc3NvcnNbaW5kZXhdOyB9CisgICAgRnJlcXVlbnRlZEJsb2NrJiBzdWNj
ZXNzb3IodW5zaWduZWQgaW5kZXgpIHsgcmV0dXJuIG1fc3VjY2Vzc29yc1tpbmRleF07IH0KKyAg
ICBjb25zdCBTdWNjZXNzb3JMaXN0JiBzdWNjZXNzb3JzKCkgY29uc3QgeyByZXR1cm4gbV9zdWNj
ZXNzb3JzOyB9CisgICAgU3VjY2Vzc29yTGlzdCYgc3VjY2Vzc29ycygpIHsgcmV0dXJuIG1fc3Vj
Y2Vzc29yczsgfQorICAgIAorICAgIHZvaWQgY2xlYXJTdWNjZXNzb3JzKCk7CisgICAgdm9pZCBh
cHBlbmRTdWNjZXNzb3IoY29uc3QgRnJlcXVlbnRlZEJsb2NrJik7CisgICAgdm9pZCBzZXRTdWNj
ZXNzb3JzKGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYpOworICAgIHZvaWQgc2V0U3VjY2Vzc29ycyhj
b25zdCBGcmVxdWVudGVkQmxvY2smLCBjb25zdCBGcmVxdWVudGVkQmxvY2smKTsKKworICAgIEJh
c2ljQmxvY2sqIHN1Y2Nlc3NvckJsb2NrKHVuc2lnbmVkIGluZGV4KSBjb25zdCB7IHJldHVybiBz
dWNjZXNzb3IoaW5kZXgpLmJsb2NrKCk7IH0KKyAgICBCYXNpY0Jsb2NrKiYgc3VjY2Vzc29yQmxv
Y2sodW5zaWduZWQgaW5kZXgpIHsgcmV0dXJuIHN1Y2Nlc3NvcihpbmRleCkuYmxvY2soKTsgfQor
ICAgIFN1Y2Nlc3NvckNvbGxlY3Rpb248QmFzaWNCbG9jaywgU3VjY2Vzc29yTGlzdD4gc3VjY2Vz
c29yQmxvY2tzKCkKKyAgICB7CisgICAgICAgIHJldHVybiBTdWNjZXNzb3JDb2xsZWN0aW9uPEJh
c2ljQmxvY2ssIFN1Y2Nlc3Nvckxpc3Q+KHN1Y2Nlc3NvcnMoKSk7CisgICAgfQorICAgIFN1Y2Nl
c3NvckNvbGxlY3Rpb248Y29uc3QgQmFzaWNCbG9jaywgY29uc3QgU3VjY2Vzc29yTGlzdD4gc3Vj
Y2Vzc29yQmxvY2tzKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBTdWNjZXNzb3JDb2xs
ZWN0aW9uPGNvbnN0IEJhc2ljQmxvY2ssIGNvbnN0IFN1Y2Nlc3Nvckxpc3Q+KHN1Y2Nlc3NvcnMo
KSk7CisgICAgfQogCiAgICAgYm9vbCByZXBsYWNlU3VjY2Vzc29yKEJhc2ljQmxvY2sqIGZyb20s
IEJhc2ljQmxvY2sqIHRvKTsKKyAgICAKKyAgICAvLyBUaGlzIGlzIG9ubHkgdmFsaWQgZm9yIEp1
bXAgYW5kIEJyYW5jaC4KKyAgICBjb25zdCBGcmVxdWVudGVkQmxvY2smIHRha2VuKCkgY29uc3Q7
CisgICAgRnJlcXVlbnRlZEJsb2NrJiB0YWtlbigpOworICAgIC8vIFRoaXMgaXMgb25seSB2YWxp
ZCBmb3IgQnJhbmNoLgorICAgIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgbm90VGFrZW4oKSBjb25z
dDsKKyAgICBGcmVxdWVudGVkQmxvY2smIG5vdFRha2VuKCk7CisgICAgLy8gVGhpcyBpcyBvbmx5
IHZhbGlkIGZvciBCcmFuY2ggYW5kIFN3aXRjaC4KKyAgICBjb25zdCBGcmVxdWVudGVkQmxvY2sm
IGZhbGxUaHJvdWdoKCkgY29uc3Q7CisgICAgRnJlcXVlbnRlZEJsb2NrJiBmYWxsVGhyb3VnaCgp
OwogCiAgICAgdW5zaWduZWQgbnVtUHJlZGVjZXNzb3JzKCkgY29uc3QgeyByZXR1cm4gbV9wcmVk
ZWNlc3NvcnMuc2l6ZSgpOyB9CiAgICAgQmFzaWNCbG9jayogcHJlZGVjZXNzb3IodW5zaWduZWQg
aW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fcHJlZGVjZXNzb3JzW2luZGV4XTsgfQpAQCAtMTE1LDEw
ICsxMzcsMjMgQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlUHJlZGVjZXNzb3JzQWZ0ZXIoKTsK
IAogICAgIGRvdWJsZSBmcmVxdWVuY3koKSBjb25zdCB7IHJldHVybiBtX2ZyZXF1ZW5jeTsgfQot
CisgICAgCiAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAgICAgdm9pZCBkZWVw
RHVtcChjb25zdCBQcm9jZWR1cmUmLCBQcmludFN0cmVhbSYpIGNvbnN0OwogCisgICAgLy8gVGhl
c2UgYXJlIGRlcHJlY2F0ZWQgbWV0aG9kIGZvciBjb21wYXRpYmlsaXR5IHdpdGggdGhlIG9sZCBD
b250cm9sVmFsdWUgY2xhc3MuIERvbid0IHVzZSB0aGVtCisgICAgLy8gaW4gbmV3IGNvZGUuCisg
ICAgLy8gRklYTUU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk0
NDAKKyAgICAKKyAgICAvLyBVc2UgdGhpcyBmb3IgT29wcy4KKyAgICBKU19FWFBPUlRfUFJJVkFU
RSBWYWx1ZSogYXBwZW5kTmV3Q29udHJvbFZhbHVlKFByb2NlZHVyZSYsIE9wY29kZSwgT3JpZ2lu
KTsKKyAgICAvLyBVc2UgdGhpcyBmb3IgUmV0dXJuLgorICAgIEpTX0VYUE9SVF9QUklWQVRFIFZh
bHVlKiBhcHBlbmROZXdDb250cm9sVmFsdWUoUHJvY2VkdXJlJiwgT3Bjb2RlLCBPcmlnaW4sIFZh
bHVlKik7CisgICAgLy8gVXNlIHRoaXMgZm9yIEp1bXAuCisgICAgSlNfRVhQT1JUX1BSSVZBVEUg
VmFsdWUqIGFwcGVuZE5ld0NvbnRyb2xWYWx1ZShQcm9jZWR1cmUmLCBPcGNvZGUsIE9yaWdpbiwg
Y29uc3QgRnJlcXVlbnRlZEJsb2NrJik7CisgICAgLy8gVXNlIHRoaXMgZm9yIEJyYW5jaC4KKyAg
ICBKU19FWFBPUlRfUFJJVkFURSBWYWx1ZSogYXBwZW5kTmV3Q29udHJvbFZhbHVlKFByb2NlZHVy
ZSYsIE9wY29kZSwgT3JpZ2luLCBWYWx1ZSosIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYsIGNvbnN0
IEZyZXF1ZW50ZWRCbG9jayYpOworICAgIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgQmxv
Y2tJbnNlcnRpb25TZXQ7CiAgICAgZnJpZW5kIGNsYXNzIEluc2VydGlvblNldDsKQEAgLTEzMCw2
ICsxNjUsNyBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1faW5kZXg7CiAgICAgVmFsdWVMaXN0
IG1fdmFsdWVzOwogICAgIFByZWRlY2Vzc29yTGlzdCBtX3ByZWRlY2Vzc29yczsKKyAgICBTdWNj
ZXNzb3JMaXN0IG1fc3VjY2Vzc29yczsKICAgICBkb3VibGUgbV9mcmVxdWVuY3k7CiB9OwogCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrSW5saW5lcy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2tJbmxpbmVzLmgJ
KHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxv
Y2tJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDc4ICsyOSw2OSBAQAogI2lmIEVOQUJM
RShCM19KSVQpCiAKICNpbmNsdWRlICJCM0Jhc2ljQmxvY2suaCIKLSNpbmNsdWRlICJCM0NvbnRy
b2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJlSW5saW5lcy5oIgorI2luY2x1ZGUgIkIz
VmFsdWUuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKIHRlbXBsYXRlPHR5
cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5hbWUuLi4gQXJndW1lbnRzPgotVmFsdWVUeXBlKiBCYXNp
Y0Jsb2NrOjphcHBlbmROZXcoUHJvY2VkdXJlJiBwcm9jZWR1cmUsIEFyZ3VtZW50cy4uLiBhcmd1
bWVudHMpCitWYWx1ZVR5cGUqIEJhc2ljQmxvY2s6OmFwcGVuZE5ldyhQcm9jZWR1cmUmIHByb2Nl
ZHVyZSwgQXJndW1lbnRzJiYuLi4gYXJndW1lbnRzKQogewotICAgIFZhbHVlVHlwZSogcmVzdWx0
ID0gcHJvY2VkdXJlLmFkZDxWYWx1ZVR5cGU+KGFyZ3VtZW50cy4uLik7CisgICAgVmFsdWVUeXBl
KiByZXN1bHQgPSBwcm9jZWR1cmUuYWRkPFZhbHVlVHlwZT4oc3RkOjpmb3J3YXJkPEFyZ3VtZW50
cz4oYXJndW1lbnRzKS4uLik7CiAgICAgYXBwZW5kKHJlc3VsdCk7CiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVmFsdWVUeXBlLCB0eXBlbmFtZS4uLiBBcmd1bWVu
dHM+Ci1WYWx1ZVR5cGUqIEJhc2ljQmxvY2s6OmFwcGVuZE5ld05vblRlcm1pbmFsKFByb2NlZHVy
ZSYgcHJvY2VkdXJlLCBBcmd1bWVudHMuLi4gYXJndW1lbnRzKQorVmFsdWVUeXBlKiBCYXNpY0Js
b2NrOjphcHBlbmROZXdOb25UZXJtaW5hbChQcm9jZWR1cmUmIHByb2NlZHVyZSwgQXJndW1lbnRz
JiYuLi4gYXJndW1lbnRzKQogewotICAgIFZhbHVlVHlwZSogcmVzdWx0ID0gcHJvY2VkdXJlLmFk
ZDxWYWx1ZVR5cGU+KGFyZ3VtZW50cy4uLik7CisgICAgVmFsdWVUeXBlKiByZXN1bHQgPSBwcm9j
ZWR1cmUuYWRkPFZhbHVlVHlwZT4oc3RkOjpmb3J3YXJkPEFyZ3VtZW50cz4oYXJndW1lbnRzKS4u
Lik7CiAgICAgYXBwZW5kTm9uVGVybWluYWwocmVzdWx0KTsKICAgICByZXR1cm4gcmVzdWx0Owog
fQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWYWx1ZVR5cGUsIHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4K
LVZhbHVlVHlwZSogQmFzaWNCbG9jazo6cmVwbGFjZUxhc3RXaXRoTmV3KFByb2NlZHVyZSYgcHJv
Y2VkdXJlLCBBcmd1bWVudHMuLi4gYXJndW1lbnRzKQorVmFsdWVUeXBlKiBCYXNpY0Jsb2NrOjpy
ZXBsYWNlTGFzdFdpdGhOZXcoUHJvY2VkdXJlJiBwcm9jZWR1cmUsIEFyZ3VtZW50cyYmLi4uIGFy
Z3VtZW50cykKIHsKLSAgICBWYWx1ZVR5cGUqIHJlc3VsdCA9IHByb2NlZHVyZS5hZGQ8VmFsdWVU
eXBlPihhcmd1bWVudHMuLi4pOworICAgIFZhbHVlVHlwZSogcmVzdWx0ID0gcHJvY2VkdXJlLmFk
ZDxWYWx1ZVR5cGU+KHN0ZDo6Zm9yd2FyZDxBcmd1bWVudHM+KGFyZ3VtZW50cykuLi4pOwogICAg
IHJlcGxhY2VMYXN0KHByb2NlZHVyZSwgcmVzdWx0KTsKICAgICByZXR1cm4gcmVzdWx0OwogfQog
Ci1pbmxpbmUgdW5zaWduZWQgQmFzaWNCbG9jazo6bnVtU3VjY2Vzc29ycygpIGNvbnN0Citjb25z
dCBGcmVxdWVudGVkQmxvY2smIEJhc2ljQmxvY2s6OnRha2VuKCkgY29uc3QKIHsKLSAgICByZXR1
cm4gbGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCktPm51bVN1Y2Nlc3NvcnMoKTsKKyAgICBBU1NF
UlQobGFzdCgpLT5vcGNvZGUoKSA9PSBKdW1wIHx8IGxhc3QoKS0+b3Bjb2RlKCkgPT0gQnJhbmNo
KTsKKyAgICByZXR1cm4gbV9zdWNjZXNzb3JzWzBdOwogfQogCi1pbmxpbmUgY29uc3QgRnJlcXVl
bnRlZEJsb2NrJiBCYXNpY0Jsb2NrOjpzdWNjZXNzb3IodW5zaWduZWQgaW5kZXgpIGNvbnN0CitG
cmVxdWVudGVkQmxvY2smIEJhc2ljQmxvY2s6OnRha2VuKCkKIHsKLSAgICByZXR1cm4gbGFzdCgp
LT5hczxDb250cm9sVmFsdWU+KCktPnN1Y2Nlc3NvcihpbmRleCk7CisgICAgQVNTRVJUKGxhc3Qo
KS0+b3Bjb2RlKCkgPT0gSnVtcCB8fCBsYXN0KCktPm9wY29kZSgpID09IEJyYW5jaCk7CisgICAg
cmV0dXJuIG1fc3VjY2Vzc29yc1swXTsKIH0KIAotaW5saW5lIEZyZXF1ZW50ZWRCbG9jayYgQmFz
aWNCbG9jazo6c3VjY2Vzc29yKHVuc2lnbmVkIGluZGV4KQorY29uc3QgRnJlcXVlbnRlZEJsb2Nr
JiBCYXNpY0Jsb2NrOjpub3RUYWtlbigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGxhc3QoKS0+YXM8
Q29udHJvbFZhbHVlPigpLT5zdWNjZXNzb3IoaW5kZXgpOworICAgIEFTU0VSVChsYXN0KCktPm9w
Y29kZSgpID09IEJyYW5jaCk7CisgICAgcmV0dXJuIG1fc3VjY2Vzc29yc1sxXTsKIH0KIAotaW5s
aW5lIGNvbnN0IEJhc2ljQmxvY2s6OlN1Y2Nlc3Nvckxpc3QmIEJhc2ljQmxvY2s6OnN1Y2Nlc3Nv
cnMoKSBjb25zdAorRnJlcXVlbnRlZEJsb2NrJiBCYXNpY0Jsb2NrOjpub3RUYWtlbigpCiB7Ci0g
ICAgcmV0dXJuIGxhc3QoKS0+YXM8Q29udHJvbFZhbHVlPigpLT5zdWNjZXNzb3JzKCk7CisgICAg
QVNTRVJUKGxhc3QoKS0+b3Bjb2RlKCkgPT0gQnJhbmNoKTsKKyAgICByZXR1cm4gbV9zdWNjZXNz
b3JzWzFdOwogfQogCi1pbmxpbmUgQmFzaWNCbG9jazo6U3VjY2Vzc29yTGlzdCYgQmFzaWNCbG9j
azo6c3VjY2Vzc29ycygpCitjb25zdCBGcmVxdWVudGVkQmxvY2smIEJhc2ljQmxvY2s6OmZhbGxU
aHJvdWdoKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCkt
PnN1Y2Nlc3NvcnMoKTsKKyAgICBBU1NFUlQobGFzdCgpLT5vcGNvZGUoKSA9PSBCcmFuY2ggfHwg
bGFzdCgpLT5vcGNvZGUoKSA9PSBTd2l0Y2gpOworICAgIHJldHVybiBtX3N1Y2Nlc3NvcnMubGFz
dCgpOwogfQogCi1pbmxpbmUgQmFzaWNCbG9jayogQmFzaWNCbG9jazo6c3VjY2Vzc29yQmxvY2so
dW5zaWduZWQgaW5kZXgpIGNvbnN0CitGcmVxdWVudGVkQmxvY2smIEJhc2ljQmxvY2s6OmZhbGxU
aHJvdWdoKCkKIHsKLSAgICByZXR1cm4gc3VjY2Vzc29yKGluZGV4KS5ibG9jaygpOwotfQotCi1p
bmxpbmUgQmFzaWNCbG9jayomIEJhc2ljQmxvY2s6OnN1Y2Nlc3NvckJsb2NrKHVuc2lnbmVkIGlu
ZGV4KQotewotICAgIHJldHVybiBzdWNjZXNzb3IoaW5kZXgpLmJsb2NrKCk7Ci19Ci0KLWlubGlu
ZSBTdWNjZXNzb3JDb2xsZWN0aW9uPEJhc2ljQmxvY2ssIEJhc2ljQmxvY2s6OlN1Y2Nlc3Nvckxp
c3Q+IEJhc2ljQmxvY2s6OnN1Y2Nlc3NvckJsb2NrcygpCi17Ci0gICAgcmV0dXJuIFN1Y2Nlc3Nv
ckNvbGxlY3Rpb248QmFzaWNCbG9jaywgU3VjY2Vzc29yTGlzdD4oc3VjY2Vzc29ycygpKTsKLX0K
LQotaW5saW5lIFN1Y2Nlc3NvckNvbGxlY3Rpb248Y29uc3QgQmFzaWNCbG9jaywgY29uc3QgQmFz
aWNCbG9jazo6U3VjY2Vzc29yTGlzdD4gQmFzaWNCbG9jazo6c3VjY2Vzc29yQmxvY2tzKCkgY29u
c3QKLXsKLSAgICByZXR1cm4gU3VjY2Vzc29yQ29sbGVjdGlvbjxjb25zdCBCYXNpY0Jsb2NrLCBj
b25zdCBTdWNjZXNzb3JMaXN0PihzdWNjZXNzb3JzKCkpOworICAgIEFTU0VSVChsYXN0KCktPm9w
Y29kZSgpID09IEJyYW5jaCB8fCBsYXN0KCktPm9wY29kZSgpID09IFN3aXRjaCk7CisgICAgcmV0
dXJuIG1fc3VjY2Vzc29ycy5sYXN0KCk7CiB9CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmxvY2tJbnNlcnRpb25TZXQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jsb2NrSW5zZXJ0aW9uU2V0
LmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmxv
Y2tJbnNlcnRpb25TZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OCw4ICs3OCw4IEBAIEJhc2lj
QmxvY2sqIEJsb2NrSW5zZXJ0aW9uU2V0OjpzcGxpdEZvcncKICAgICAgICAgcmVzdWx0LT5tX3Zh
bHVlc1tpXSA9IGJsb2NrLT5tX3ZhbHVlc1tpXTsKIAogICAgIC8vIE1ha2UgdGhlIG5ldyBibG9j
ayBqdW1wIHRvICdibG9jaycuCi0gICAgcmVzdWx0LT5tX3ZhbHVlc1t2YWx1ZUluZGV4XSA9Ci0g
ICAgICAgIG1fcHJvYy5hZGQ8Q29udHJvbFZhbHVlPihKdW1wLCB2YWx1ZS0+b3JpZ2luKCksIEZy
ZXF1ZW50ZWRCbG9jayhibG9jaykpOworICAgIHJlc3VsdC0+bV92YWx1ZXNbdmFsdWVJbmRleF0g
PSBtX3Byb2MuYWRkPFZhbHVlPihKdW1wLCB2YWx1ZS0+b3JpZ2luKCkpOworICAgIHJlc3VsdC0+
c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2soYmxvY2spKTsKIAogICAgIC8vIElmIHdlIGhh
ZCBpbnNlcnRlZCB0aGluZ3MgaW50byAnYmxvY2snIGJlZm9yZSB0aGlzLCBleGVjdXRlIHRob3Nl
IGluc2VydGlvbnMgbm93LgogICAgIGlmIChpbnNlcnRpb25TZXQpCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNCcmVha0NyaXRpY2FsRWRnZXMuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0JyZWFrQ3JpdGljYWxFZGdlcy5jcHAJKHJldmlzaW9u
IDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0JyZWFrQ3JpdGljYWxFZGdl
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDYgQEAKIAogI2luY2x1ZGUgIkIzQmFz
aWNCbG9ja0lubGluZXMuaCIKICNpbmNsdWRlICJCM0Jsb2NrSW5zZXJ0aW9uU2V0LmgiCi0jaW5j
bHVkZSAiQjNDb250cm9sVmFsdWUuaCIKICNpbmNsdWRlICJCM1Byb2NlZHVyZUlubGluZXMuaCIK
ICNpbmNsdWRlICJCM1ZhbHVlSW5saW5lcy5oIgogCkBAIC01MCw4ICs0OSw4IEBAIHZvaWQgYnJl
YWtDcml0aWNhbEVkZ2VzKFByb2NlZHVyZSYgcHJvYykKIAogICAgICAgICAgICAgQmFzaWNCbG9j
ayogcGFkID0KICAgICAgICAgICAgICAgICBpbnNlcnRpb25TZXQuaW5zZXJ0QmVmb3JlKHN1Y2Nl
c3Nvciwgc3VjY2Vzc29yLT5mcmVxdWVuY3koKSk7Ci0gICAgICAgICAgICBwYWQtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAotICAgICAgICAgICAgICAgIHByb2MsIEp1bXAsIHN1Y2Nlc3Nvci0+
YXQoMCktPm9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soc3VjY2Vzc29yKSk7CisgICAgICAgICAg
ICBwYWQtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSnVtcCwgc3VjY2Vzc29yLT5hdCgwKS0+b3Jp
Z2luKCkpOworICAgICAgICAgICAgcGFkLT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhz
dWNjZXNzb3IpKTsKICAgICAgICAgICAgIHBhZC0+YWRkUHJlZGVjZXNzb3IoYmxvY2spOwogICAg
ICAgICAgICAgc3VjY2Vzc29yLT5yZXBsYWNlUHJlZGVjZXNzb3IoYmxvY2ssIHBhZCk7CiAgICAg
ICAgICAgICBzdWNjZXNzb3IgPSBwYWQ7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNDYXNlQ29sbGVjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzQ2FzZUNvbGxlY3Rpb24uY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzQ2FzZUNvbGxlY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
NDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkIzQ2FzZUNvbGxlY3Rpb24uaCIKKworI2lmIEVO
QUJMRShCM19KSVQpCisKKyNpbmNsdWRlICJCM0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oIgorI2lu
Y2x1ZGUgPHd0Zi9Db21tYVByaW50ZXIuaD4KKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBC
MyB7CisKK3ZvaWQgQ2FzZUNvbGxlY3Rpb246OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QK
K3sKKyAgICBDb21tYVByaW50ZXIgY29tbWE7CisgICAgZm9yIChTd2l0Y2hDYXNlIHN3aXRjaENh
c2UgOiAqdGhpcykKKyAgICAgICAgb3V0LnByaW50KGNvbW1hLCBzd2l0Y2hDYXNlKTsKKyAgICBv
dXQucHJpbnQoY29tbWEsICJkZWZhdWx0LT4iLCBmYWxsVGhyb3VnaCgpKTsKK30KKworfSB9IC8v
IG5hbWVzcGFjZSBKU0M6OkIzCisKKyNlbmRpZiAvLyBFTkFCTEUoQjNfSklUKQorCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDYXNlQ29sbGVjdGlvbi5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nhc2VDb2xsZWN0aW9uLmgJKHJldmlzaW9uIDAp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDYXNlQ29sbGVjdGlvbi5oCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMTIwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpZm5kZWYgQjNDYXNlQ29sbGVjdGlvbl9oCisjZGVmaW5lIEIzQ2Fz
ZUNvbGxlY3Rpb25faAorCisjaWYgRU5BQkxFKEIzX0pJVCkKKworI2luY2x1ZGUgIkIzU3dpdGNo
Q2FzZS5oIgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKKworY2xhc3MgQmFzaWNC
bG9jazsKK2NsYXNzIFN3aXRjaFZhbHVlOworCisvLyBOT1RFOiBZb3UnbGwgYWx3YXlzIHdhbnQg
dG8gaW5jbHVkZSBCM0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oIHdoZW4geW91IHVzZSB0aGlzLgor
CitjbGFzcyBDYXNlQ29sbGVjdGlvbiB7CitwdWJsaWM6CisgICAgQ2FzZUNvbGxlY3Rpb24oKQor
ICAgIHsKKyAgICB9CisgICAgCisgICAgQ2FzZUNvbGxlY3Rpb24oU3dpdGNoVmFsdWUqIHRlcm1p
bmFsLCBCYXNpY0Jsb2NrKiBvd25lcikKKyAgICAgICAgOiBtX3N3aXRjaCh0ZXJtaW5hbCkKKyAg
ICAgICAgLCBtX293bmVyKG93bmVyKQorICAgIHsKKyAgICB9CisgICAgCisgICAgY29uc3QgRnJl
cXVlbnRlZEJsb2NrJiBmYWxsVGhyb3VnaCgpIGNvbnN0OworCisgICAgdW5zaWduZWQgc2l6ZSgp
IGNvbnN0OworICAgIFN3aXRjaENhc2UgYXQodW5zaWduZWQgaW5kZXgpIGNvbnN0OworICAgIAor
ICAgIFN3aXRjaENhc2Ugb3BlcmF0b3JbXSh1bnNpZ25lZCBpbmRleCkgY29uc3QKKyAgICB7Cisg
ICAgICAgIHJldHVybiBhdChpbmRleCk7CisgICAgfQorCisgICAgY2xhc3MgaXRlcmF0b3Igewor
ICAgIHB1YmxpYzoKKyAgICAgICAgaXRlcmF0b3IoKQorICAgICAgICAgICAgOiBtX3N3aXRjaChu
dWxscHRyKQorICAgICAgICAgICAgLCBtX2luZGV4KDApCisgICAgICAgIHsKKyAgICAgICAgfQor
CisgICAgICAgIGl0ZXJhdG9yKGNvbnN0IFN3aXRjaFZhbHVlJiBzd2l0Y2hWYWx1ZSwgdW5zaWdu
ZWQgaW5kZXgpCisgICAgICAgICAgICA6IG1fc3dpdGNoKCZzd2l0Y2hWYWx1ZSkKKyAgICAgICAg
ICAgICwgbV9pbmRleChpbmRleCkKKyAgICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgU3dp
dGNoQ2FzZSBvcGVyYXRvciooKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbV9zd2l0
Y2gtPmF0KG1faW5kZXgpOworICAgICAgICB9CisKKyAgICAgICAgaXRlcmF0b3ImIG9wZXJhdG9y
KysoKQorICAgICAgICB7CisgICAgICAgICAgICBtX2luZGV4Kys7CisgICAgICAgICAgICByZXR1
cm4gKnRoaXM7CisgICAgICAgIH0KKworICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgaXRl
cmF0b3ImIG90aGVyKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQobV9zd2l0
Y2ggPT0gb3RoZXIubV9zd2l0Y2gpOworICAgICAgICAgICAgcmV0dXJuIG1faW5kZXggPT0gb3Ro
ZXIubV9pbmRleDsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBp
dGVyYXRvciYgb3RoZXIpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAhKCp0
aGlzID09IG90aGVyKTsKKyAgICAgICAgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgY29uc3Qg
U3dpdGNoVmFsdWUqIG1fc3dpdGNoOworICAgICAgICB1bnNpZ25lZCBtX2luZGV4OworICAgIH07
CisKKyAgICB0eXBlZGVmIGl0ZXJhdG9yIGNvbnN0X2l0ZXJhdG9yOworCisgICAgaXRlcmF0b3Ig
YmVnaW4oKSBjb25zdCB7IHJldHVybiBpdGVyYXRvcigqdGhpcywgMCk7IH0KKyAgICBpdGVyYXRv
ciBlbmQoKSBjb25zdCB7IHJldHVybiBpdGVyYXRvcigqdGhpcywgc2l6ZSgpKTsgfQorICAgIAor
ICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0OworICAgIAorcHJpdmF0ZToKKyAgICBT
d2l0Y2hWYWx1ZSogbV9zd2l0Y2ggeyBudWxscHRyIH07CisgICAgQmFzaWNCbG9jayogbV9vd25l
ciB7IG51bGxwdHIgfTsKK307CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMworCisjZW5kaWYg
Ly8gRU5BQkxFKEIzX0pJVCkKKworI2VuZGlmIC8vIEIzQ2FzZUNvbGxlY3Rpb25faAorCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDYXNlQ29sbGVjdGlvbklubGluZXMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDYXNlQ29sbGVjdGlvbklubGlu
ZXMuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nhc2VDb2xs
ZWN0aW9uSW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBCM0Nhc2VDb2xs
ZWN0aW9uSW5saW5lc19oCisjZGVmaW5lIEIzQ2FzZUNvbGxlY3Rpb25JbmxpbmVzX2gKKworI2lm
IEVOQUJMRShCM19KSVQpCisKKyNpbmNsdWRlICJCM0Nhc2VDb2xsZWN0aW9uLmgiCisjaW5jbHVk
ZSAiQjNTd2l0Y2hWYWx1ZS5oIgorI2luY2x1ZGUgIkIzQmFzaWNCbG9jay5oIgorCituYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKKworaW5saW5lIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYg
Q2FzZUNvbGxlY3Rpb246OmZhbGxUaHJvdWdoKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9vd25l
ci0+ZmFsbFRocm91Z2goKTsKK30KKworaW5saW5lIHVuc2lnbmVkIENhc2VDb2xsZWN0aW9uOjpz
aXplKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zd2l0Y2gtPm51bUNhc2VWYWx1ZXMoKTsKK30K
KworaW5saW5lIFN3aXRjaENhc2UgQ2FzZUNvbGxlY3Rpb246OmF0KHVuc2lnbmVkIGluZGV4KSBj
b25zdAoreworICAgIHJldHVybiBTd2l0Y2hDYXNlKG1fc3dpdGNoLT5jYXNlVmFsdWUoaW5kZXgp
LCBtX293bmVyLT5zdWNjZXNzb3IoaW5kZXgpKTsKK30KKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6
OkIzCisKKyNlbmRpZiAvLyBFTkFCTEUoQjNfSklUKQorCisjZW5kaWYgLy8gQjNDYXNlQ29sbGVj
dGlvbklubGluZXNfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDaGVja1Nw
ZWNpYWwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NoZWNr
U3BlY2lhbC5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM0NoZWNrU3BlY2lhbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg0LDcgKzg0LDYgQEAgQ2hl
Y2tTcGVjaWFsOjpDaGVja1NwZWNpYWwoQWlyOjpPcGNvZGUgbwogICAgICwgbV9zdGFja21hcFJv
bGUoc3RhY2ttYXBSb2xlKQogICAgICwgbV9udW1DaGVja0FyZ3MobnVtQXJncykKIHsKLSAgICBB
U1NFUlQoaXNUZXJtaW5hbChvcGNvZGUpKTsKIH0KIAogQ2hlY2tTcGVjaWFsOjpDaGVja1NwZWNp
YWwoY29uc3QgQ2hlY2tTcGVjaWFsOjpLZXkmIGtleSkKQEAgLTEwMiw2ICsxMDEsNyBAQCBJbnN0
IENoZWNrU3BlY2lhbDo6aGlkZGVuQnJhbmNoKGNvbnN0IEluCiAgICAgaGlkZGVuQnJhbmNoLmFy
Z3MucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShtX251bUNoZWNrQXJncyk7CiAgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IG1fbnVtQ2hlY2tBcmdzOyArK2kpCiAgICAgICAgIGhpZGRlbkJyYW5j
aC5hcmdzLmFwcGVuZChpbnN0LmFyZ3NbaSArIDFdKTsKKyAgICBBU1NFUlQoaGlkZGVuQnJhbmNo
LmlzVGVybWluYWwoKSk7CiAgICAgcmV0dXJuIGhpZGRlbkJyYW5jaDsKIH0KIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29tbW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzQ29tbW9uLmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM0NvbW1vbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDYgKzI4LDggQEAK
IAogI2lmIEVOQUJMRShCM19KSVQpCiAKKyNpbmNsdWRlICJKU0V4cG9ydE1hY3Jvcy5oIgorCiBu
YW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIAogaW5saW5lIGJvb2wgaXM2NEJpdCgpIHsg
cmV0dXJuIHNpemVvZih2b2lkKikgPT0gODsgfQpAQCAtMzgsNyArNDAsNyBAQCBlbnVtIEIzQ29t
cGxpdGF0aW9uTW9kZSB7CiAgICAgQWlyTW9kZQogfTsKIAotYm9vbCBzaG91bGREdW1wSVIoQjND
b21wbGl0YXRpb25Nb2RlKTsKK0pTX0VYUE9SVF9QUklWQVRFIGJvb2wgc2hvdWxkRHVtcElSKEIz
Q29tcGxpdGF0aW9uTW9kZSk7CiBib29sIHNob3VsZER1bXBJUkF0RWFjaFBoYXNlKEIzQ29tcGxp
dGF0aW9uTW9kZSk7CiBib29sIHNob3VsZFZhbGlkYXRlSVIoKTsKIGJvb2wgc2hvdWxkVmFsaWRh
dGVJUkF0RWFjaFBoYXNlKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb250
cm9sVmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nv
bnRyb2xWYWx1ZS5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0NvbnRyb2xWYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsOTUgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0g
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgotCi0jaWYgRU5BQkxF
KEIzX0pJVCkKLQotI2luY2x1ZGUgIkIzQmFzaWNCbG9jay5oIgotCi1uYW1lc3BhY2UgSlNDIHsg
bmFtZXNwYWNlIEIzIHsKLQotQ29udHJvbFZhbHVlOjp+Q29udHJvbFZhbHVlKCkKLXsKLX0KLQot
Ym9vbCBDb250cm9sVmFsdWU6OnJlcGxhY2VTdWNjZXNzb3IoQmFzaWNCbG9jayogZnJvbSwgQmFz
aWNCbG9jayogdG8pCi17Ci0gICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKLSAgICBmb3IgKEZyZXF1
ZW50ZWRCbG9jayYgc3VjY2Vzc29yIDogbV9zdWNjZXNzb3JzKSB7Ci0gICAgICAgIGlmIChzdWNj
ZXNzb3IuYmxvY2soKSA9PSBmcm9tKSB7Ci0gICAgICAgICAgICBzdWNjZXNzb3IuYmxvY2soKSA9
IHRvOwotICAgICAgICAgICAgcmVzdWx0ID0gdHJ1ZTsKLQotICAgICAgICAgICAgLy8gS2VlcCBs
b29waW5nIGJlY2F1c2UgaXQncyB2YWxpZCBmb3IgYSBzdWNjZXNzb3IgdG8gYmUgbWVudGlvbmVk
IG11bHRpcGxlIHRpbWVzLAotICAgICAgICAgICAgLy8gbGlrZSBpZiBtdWx0aXBsZSBzd2l0Y2gg
Y2FzZXMgaGF2ZSB0aGUgc2FtZSB0YXJnZXQuCi0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJu
IHJlc3VsdDsKLX0KLQotdm9pZCBDb250cm9sVmFsdWU6OmNvbnZlcnRUb0p1bXAoQmFzaWNCbG9j
ayogZGVzdGluYXRpb24pCi17Ci0gICAgdW5zaWduZWQgaW5kZXggPSB0aGlzLT5pbmRleCgpOwot
ICAgIE9yaWdpbiBvcmlnaW4gPSB0aGlzLT5vcmlnaW4oKTsKLSAgICBCYXNpY0Jsb2NrKiBvd25l
ciA9IHRoaXMtPm93bmVyOwotCi0gICAgdGhpcy0+fkNvbnRyb2xWYWx1ZSgpOwotCi0gICAgbmV3
ICh0aGlzKSBDb250cm9sVmFsdWUoSnVtcCwgb3JpZ2luLCBGcmVxdWVudGVkQmxvY2soZGVzdGlu
YXRpb24pKTsKLQotICAgIHRoaXMtPm93bmVyID0gb3duZXI7Ci0gICAgdGhpcy0+bV9pbmRleCA9
IGluZGV4OwotfQotCi12b2lkIENvbnRyb2xWYWx1ZTo6Y29udmVydFRvT29wcygpCi17Ci0gICAg
dW5zaWduZWQgaW5kZXggPSB0aGlzLT5pbmRleCgpOwotICAgIE9yaWdpbiBvcmlnaW4gPSB0aGlz
LT5vcmlnaW4oKTsKLSAgICBCYXNpY0Jsb2NrKiBvd25lciA9IHRoaXMtPm93bmVyOwotCi0gICAg
dGhpcy0+fkNvbnRyb2xWYWx1ZSgpOwotCi0gICAgbmV3ICh0aGlzKSBDb250cm9sVmFsdWUoT29w
cywgb3JpZ2luKTsKLQotICAgIHRoaXMtPm93bmVyID0gb3duZXI7Ci0gICAgdGhpcy0+bV9pbmRl
eCA9IGluZGV4OwotfQotCi12b2lkIENvbnRyb2xWYWx1ZTo6ZHVtcE1ldGEoQ29tbWFQcmludGVy
JiBjb21tYSwgUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKLXsKLSAgICBmb3IgKEZyZXF1ZW50ZWRC
bG9jayBzdWNjZXNzb3IgOiBtX3N1Y2Nlc3NvcnMpCi0gICAgICAgIG91dC5wcmludChjb21tYSwg
c3VjY2Vzc29yKTsKLX0KLQotVmFsdWUqIENvbnRyb2xWYWx1ZTo6Y2xvbmVJbXBsKCkgY29uc3QK
LXsKLSAgICByZXR1cm4gbmV3IENvbnRyb2xWYWx1ZSgqdGhpcyk7Ci19Ci0KLX0gfSAvLyBuYW1l
c3BhY2UgSlNDOjpCMwotCi0jZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM0NvbnRyb2xWYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM0NvbnRyb2xWYWx1ZS5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb250cm9sVmFsdWUuaAkod29ya2luZyBjb3B5KQpA
QCAtMSwxNjMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0g
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAotICovCi0KLSNpZm5kZWYgQjNDb250cm9sVmFsdWVfaAotI2RlZmluZSBCM0NvbnRyb2xW
YWx1ZV9oCi0KLSNpZiBFTkFCTEUoQjNfSklUKQotCi0jaW5jbHVkZSAiQjNGcmVxdWVudGVkQmxv
Y2suaCIKLSNpbmNsdWRlICJCM1N1Y2Nlc3NvckNvbGxlY3Rpb24uaCIKLSNpbmNsdWRlICJCM1Zh
bHVlLmgiCi0KLW5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewotCi1jbGFzcyBCYXNpY0Js
b2NrOwotCi1jbGFzcyBKU19FWFBPUlRfUFJJVkFURSBDb250cm9sVmFsdWUgOiBwdWJsaWMgVmFs
dWUgewotcHVibGljOgotICAgIHN0YXRpYyBib29sIGFjY2VwdHMoT3Bjb2RlIG9wY29kZSkKLSAg
ICB7Ci0gICAgICAgIHN3aXRjaCAob3Bjb2RlKSB7Ci0gICAgICAgIGNhc2UgSnVtcDoKLSAgICAg
ICAgY2FzZSBCcmFuY2g6Ci0gICAgICAgIGNhc2UgUmV0dXJuOgotICAgICAgICBjYXNlIE9vcHM6
Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgY2FzZSBTd2l0Y2g6IAotICAgICAg
ICAgICAgLy8gVGhpcyBpcyBoZXJlIGJlY2F1c2UgU3dpdGNoVmFsdWUgaXMgYSBzdWJjbGFzcyBv
ZiBDb250cm9sVmFsdWUsIHNvIHdlIHdhbnQKLSAgICAgICAgICAgIC8vIHN3aXRjaFZhbHVlLT5h
czxDb250cm9sVmFsdWU+KCkgdG8gcmV0dXJuIG5vbi1udWxsLgotICAgICAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
ICAgIH0KLSAgICB9Ci0KLSAgICB0eXBlZGVmIFZlY3RvcjxGcmVxdWVudGVkQmxvY2ssIDI+IFN1
Y2Nlc3Nvckxpc3Q7Ci0KLSAgICB+Q29udHJvbFZhbHVlKCk7Ci0KLSAgICB1bnNpZ25lZCBudW1T
dWNjZXNzb3JzKCkgY29uc3QgeyByZXR1cm4gbV9zdWNjZXNzb3JzLnNpemUoKTsgfQotICAgIGNv
bnN0IEZyZXF1ZW50ZWRCbG9jayYgc3VjY2Vzc29yKHVuc2lnbmVkIGluZGV4KSBjb25zdCB7IHJl
dHVybiBtX3N1Y2Nlc3NvcnNbaW5kZXhdOyB9Ci0gICAgRnJlcXVlbnRlZEJsb2NrJiBzdWNjZXNz
b3IodW5zaWduZWQgaW5kZXgpIHsgcmV0dXJuIG1fc3VjY2Vzc29yc1tpbmRleF07IH0KLSAgICBj
b25zdCBTdWNjZXNzb3JMaXN0JiBzdWNjZXNzb3JzKCkgY29uc3QgeyByZXR1cm4gbV9zdWNjZXNz
b3JzOyB9Ci0gICAgU3VjY2Vzc29yTGlzdCYgc3VjY2Vzc29ycygpIHsgcmV0dXJuIG1fc3VjY2Vz
c29yczsgfQotCi0gICAgQmFzaWNCbG9jayogc3VjY2Vzc29yQmxvY2sodW5zaWduZWQgaW5kZXgp
IGNvbnN0IHsgcmV0dXJuIHN1Y2Nlc3NvcihpbmRleCkuYmxvY2soKTsgfQotICAgIEJhc2ljQmxv
Y2sqJiBzdWNjZXNzb3JCbG9jayh1bnNpZ25lZCBpbmRleCkgeyByZXR1cm4gc3VjY2Vzc29yKGlu
ZGV4KS5ibG9jaygpOyB9Ci0gICAgU3VjY2Vzc29yQ29sbGVjdGlvbjxCYXNpY0Jsb2NrLCBTdWNj
ZXNzb3JMaXN0PiBzdWNjZXNzb3JCbG9ja3MoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIFN1Y2Nl
c3NvckNvbGxlY3Rpb248QmFzaWNCbG9jaywgU3VjY2Vzc29yTGlzdD4oc3VjY2Vzc29ycygpKTsK
LSAgICB9Ci0gICAgU3VjY2Vzc29yQ29sbGVjdGlvbjxjb25zdCBCYXNpY0Jsb2NrLCBjb25zdCBT
dWNjZXNzb3JMaXN0PiBzdWNjZXNzb3JCbG9ja3MoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0
dXJuIFN1Y2Nlc3NvckNvbGxlY3Rpb248Y29uc3QgQmFzaWNCbG9jaywgY29uc3QgU3VjY2Vzc29y
TGlzdD4oc3VjY2Vzc29ycygpKTsKLSAgICB9Ci0KLSAgICBib29sIHJlcGxhY2VTdWNjZXNzb3Io
QmFzaWNCbG9jayogZnJvbSwgQmFzaWNCbG9jayogdG8pOwotCi0gICAgY29uc3QgRnJlcXVlbnRl
ZEJsb2NrJiB0YWtlbigpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQob3Bjb2RlKCkgPT0g
SnVtcCB8fCBvcGNvZGUoKSA9PSBCcmFuY2gpOwotICAgICAgICByZXR1cm4gc3VjY2Vzc29yKDAp
OwotICAgIH0KLSAgICBGcmVxdWVudGVkQmxvY2smIHRha2VuKCkKLSAgICB7Ci0gICAgICAgIEFT
U0VSVChvcGNvZGUoKSA9PSBKdW1wIHx8IG9wY29kZSgpID09IEJyYW5jaCk7Ci0gICAgICAgIHJl
dHVybiBzdWNjZXNzb3IoMCk7Ci0gICAgfQotICAgIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgbm90
VGFrZW4oKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG9wY29kZSgpID09IEJyYW5jaCk7
Ci0gICAgICAgIHJldHVybiBzdWNjZXNzb3IoMSk7Ci0gICAgfQotICAgIEZyZXF1ZW50ZWRCbG9j
ayYgbm90VGFrZW4oKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG9wY29kZSgpID09IEJyYW5jaCk7
Ci0gICAgICAgIHJldHVybiBzdWNjZXNzb3IoMSk7Ci0gICAgfQotCi0gICAgdm9pZCBjb252ZXJ0
VG9KdW1wKEJhc2ljQmxvY2sqIGRlc3RpbmF0aW9uKTsKLSAgICB2b2lkIGNvbnZlcnRUb09vcHMo
KTsKLQotcHJvdGVjdGVkOgotICAgIHZvaWQgZHVtcE1ldGEoQ29tbWFQcmludGVyJiwgUHJpbnRT
dHJlYW0mKSBjb25zdCBvdmVycmlkZTsKLQotICAgIFZhbHVlKiBjbG9uZUltcGwoKSBjb25zdCBv
dmVycmlkZTsKLQotICAgIC8vIFVzZSB0aGlzIGZvciBzdWJjbGFzc2VzLgotICAgIHRlbXBsYXRl
PHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KLSAgICBDb250cm9sVmFsdWUoT3Bjb2RlIG9wY29kZSwg
VHlwZSB0eXBlLCBPcmlnaW4gb3JpZ2luLCBBcmd1bWVudHMuLi4gYXJndW1lbnRzKQotICAgICAg
ICA6IFZhbHVlKENoZWNrZWRPcGNvZGUsIG9wY29kZSwgdHlwZSwgb3JpZ2luLCBhcmd1bWVudHMu
Li4pCi0gICAgewotICAgICAgICBBU1NFUlQoYWNjZXB0cyhvcGNvZGUpKTsKLSAgICB9Ci0KLSAg
ICAvLyBTdWJjbGFzc2VzIHdpbGwgcG9wdWxhdGUgdGhpcy4KLSAgICBTdWNjZXNzb3JMaXN0IG1f
c3VjY2Vzc29yczsKLQotcHJpdmF0ZToKLSAgICBmcmllbmQgY2xhc3MgUHJvY2VkdXJlOwotCi0g
ICAgLy8gVXNlIHRoaXMgZm9yIE9vcHMuCi0gICAgQ29udHJvbFZhbHVlKE9wY29kZSBvcGNvZGUs
IE9yaWdpbiBvcmlnaW4pCi0gICAgICAgIDogVmFsdWUoQ2hlY2tlZE9wY29kZSwgb3Bjb2RlLCBW
b2lkLCBvcmlnaW4pCi0gICAgewotICAgICAgICBBU1NFUlQob3Bjb2RlID09IE9vcHMpOwotICAg
IH0KLQotICAgIC8vIFVzZSB0aGlzIGZvciBSZXR1cm4uCi0gICAgQ29udHJvbFZhbHVlKE9wY29k
ZSBvcGNvZGUsIE9yaWdpbiBvcmlnaW4sIFZhbHVlKiByZXN1bHQpCi0gICAgICAgIDogVmFsdWUo
Q2hlY2tlZE9wY29kZSwgb3Bjb2RlLCBWb2lkLCBvcmlnaW4sIHJlc3VsdCkKLSAgICB7Ci0gICAg
ICAgIEFTU0VSVChvcGNvZGUgPT0gUmV0dXJuKTsKLSAgICB9Ci0KLSAgICAvLyBVc2UgdGhpcyBm
b3IgSnVtcC4KLSAgICBDb250cm9sVmFsdWUoT3Bjb2RlIG9wY29kZSwgT3JpZ2luIG9yaWdpbiwg
Y29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YXJnZXQpCi0gICAgICAgIDogVmFsdWUoQ2hlY2tlZE9w
Y29kZSwgb3Bjb2RlLCBWb2lkLCBvcmlnaW4pCi0gICAgewotICAgICAgICBBU1NFUlQob3Bjb2Rl
ID09IEp1bXApOwotICAgICAgICBtX3N1Y2Nlc3NvcnMuYXBwZW5kKHRhcmdldCk7Ci0gICAgfQot
Ci0gICAgLy8gVXNlIHRoaXMgZm9yIEJyYW5jaC4KLSAgICBDb250cm9sVmFsdWUoCi0gICAgICAg
IE9wY29kZSBvcGNvZGUsIE9yaWdpbiBvcmlnaW4sIFZhbHVlKiBwcmVkaWNhdGUsCi0gICAgICAg
IGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgeWVzLCBjb25zdCBGcmVxdWVudGVkQmxvY2smIG5vKQot
ICAgICAgICA6IFZhbHVlKENoZWNrZWRPcGNvZGUsIG9wY29kZSwgVm9pZCwgb3JpZ2luLCBwcmVk
aWNhdGUpCi0gICAgewotICAgICAgICBBU1NFUlQob3Bjb2RlID09IEJyYW5jaCk7Ci0gICAgICAg
IG1fc3VjY2Vzc29ycy5hcHBlbmQoeWVzKTsKLSAgICAgICAgbV9zdWNjZXNzb3JzLmFwcGVuZChu
byk7Ci0gICAgfQotfTsKLQotfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzCi0KLSNlbmRpZiAvLyBF
TkFCTEUoQjNfSklUKQotCi0jZW5kaWYgLy8gQjNDb250cm9sVmFsdWVfaAotCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEYXRhU2VjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRGF0YVNlY3Rpb24uY3BwCShyZXZpc2lvbiAyMDI4MDkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEYXRhU2VjdGlvbi5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMzEsNyArMzEsNyBAQAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKIERh
dGFTZWN0aW9uOjpEYXRhU2VjdGlvbihzaXplX3Qgc2l6ZSkKLSAgICA6IG1fZGF0YShmYXN0TWFs
bG9jKHNpemUpKQorICAgIDogbV9kYXRhKGZhc3RaZXJvZWRNYWxsb2Moc2l6ZSkpCiAgICAgLCBt
X3NpemUoc2l6ZSkKIHsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0R1cGxp
Y2F0ZVRhaWxzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNE
dXBsaWNhdGVUYWlscy5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM0R1cGxpY2F0ZVRhaWxzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAs
NiBAQAogCiAjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrSW5saW5lcy5oIgogI2luY2x1ZGUgIkIzQnJl
YWtDcml0aWNhbEVkZ2VzLmgiCi0jaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKICNpbmNsdWRl
ICJCM0RvbWluYXRvcnMuaCIKICNpbmNsdWRlICJCM0ZpeFNTQS5oIgogI2luY2x1ZGUgIkIzSW5k
ZXhTZXQuaCIKQEAgLTcyLDkgKzcxLDEwIEBAIHB1YmxpYzoKICAgICAgICAgSW5kZXhTZXQ8QmFz
aWNCbG9jaz4gY2FuZGlkYXRlczsKIAogICAgICAgICBmb3IgKEJhc2ljQmxvY2sqIGJsb2NrIDog
bV9wcm9jKSB7Ci0gICAgICAgICAgICBpZiAoYmxvY2stPnNpemUoKSA+IG1fbWF4U2l6ZSB8fCBi
bG9jay0+bnVtU3VjY2Vzc29ycygpID4gbV9tYXhTdWNjZXNzb3JzKQorICAgICAgICAgICAgaWYg
KGJsb2NrLT5zaXplKCkgPiBtX21heFNpemUKKyAgICAgICAgICAgICAgICB8fCBibG9jay0+bnVt
U3VjY2Vzc29ycygpID4gbV9tYXhTdWNjZXNzb3JzKQogICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwotCisgICAgICAgICAgICAKICAgICAgICAgICAgIGNhbmRpZGF0ZXMuYWRkKGJsb2NrKTsKICAg
ICAgICAgfQogCkBAIC05NywxMSArOTcsMTAgQEAgcHVibGljOgogICAgICAgICB9CiAKICAgICAg
ICAgZm9yIChCYXNpY0Jsb2NrKiBibG9jayA6IG1fcHJvYykgewotICAgICAgICAgICAgQ29udHJv
bFZhbHVlKiBqdW1wID0gYmxvY2stPmxhc3QoKS0+YXM8Q29udHJvbFZhbHVlPigpOwotICAgICAg
ICAgICAgaWYgKGp1bXAtPm9wY29kZSgpICE9IEp1bXApCisgICAgICAgICAgICBpZiAoYmxvY2st
Pmxhc3QoKS0+b3Bjb2RlICE9IEp1bXApCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAg
ICAgICAgICAgIEJhc2ljQmxvY2sqIHRhaWwgPSBqdW1wLT5zdWNjZXNzb3JCbG9jaygwKTsKKyAg
ICAgICAgICAgIEJhc2ljQmxvY2sqIHRhaWwgPSBibG9jay0+c3VjY2Vzc29yQmxvY2soMCk7CiAg
ICAgICAgICAgICBpZiAoIWNhbmRpZGF0ZXMuY29udGFpbnModGFpbCkpCiAgICAgICAgICAgICAg
ICAgY29udGludWU7CiAKQEAgLTEzMCw2ICsxMjksNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAg
ICAgICAgIG1hcC5hZGQodmFsdWUsIGNsb25lKTsKICAgICAgICAgICAgICAgICBibG9jay0+YXBw
ZW5kKGNsb25lKTsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJsb2NrLT5zdWNjZXNzb3Jz
KCkgPSB0YWlsLT5zdWNjZXNzb3JzKCk7CiAgICAgICAgIH0KIAogICAgICAgICBtX3Byb2MucmVz
ZXRSZWFjaGFiaWxpdHkoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0ZpeFNT
QS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRml4U1NBLmNw
cAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRml4U1NB
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNiBAQAogCiAjaW5jbHVkZSAiQjNCYXNp
Y0Jsb2NrSW5saW5lcy5oIgogI2luY2x1ZGUgIkIzQnJlYWtDcml0aWNhbEVkZ2VzLmgiCi0jaW5j
bHVkZSAiQjNDb250cm9sVmFsdWUuaCIKICNpbmNsdWRlICJCM0RvbWluYXRvcnMuaCIKICNpbmNs
dWRlICJCM0luZGV4U2V0LmgiCiAjaW5jbHVkZSAiQjNJbnNlcnRpb25TZXRJbmxpbmVzLmgiCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNGb2xkUGF0aENvbnN0YW50cy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRm9sZFBhdGhDb25zdGFudHMu
Y3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNGb2xk
UGF0aENvbnN0YW50cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDYgQEAKICNpZiBF
TkFCTEUoQjNfSklUKQogCiAjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrSW5saW5lcy5oIgotI2luY2x1
ZGUgIkIzQ29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNEb21pbmF0b3JzLmgiCiAjaW5jbHVk
ZSAiQjNJbnNlcnRpb25TZXRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNQaGFzZVNjb3BlLmgiCkBA
IC04NywyNCArODYsMjQgQEAgcHVibGljOgogICAgICAgICB9OwogICAgICAgICAKICAgICAgICAg
Zm9yIChCYXNpY0Jsb2NrKiBibG9jayA6IG1fcHJvYykgewotICAgICAgICAgICAgQ29udHJvbFZh
bHVlKiBicmFuY2ggPSBibG9jay0+bGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCk7CisgICAgICAg
ICAgICBWYWx1ZSogYnJhbmNoID0gYmxvY2stPmxhc3QoKTsKICAgICAgICAgICAgIHN3aXRjaCAo
YnJhbmNoLT5vcGNvZGUoKSkgewogICAgICAgICAgICAgY2FzZSBCcmFuY2g6Ci0gICAgICAgICAg
ICAgICAgaWYgKGJyYW5jaC0+c3VjY2Vzc29yQmxvY2soMCkgPT0gYnJhbmNoLT5zdWNjZXNzb3JC
bG9jaygxKSkKKyAgICAgICAgICAgICAgICBpZiAoYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDApID09
IGJsb2NrLT5zdWNjZXNzb3JCbG9jaygxKSkKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7
CiAgICAgICAgICAgICAgICAgYWRkT3ZlcnJpZGUoCiAgICAgICAgICAgICAgICAgICAgIGJsb2Nr
LCBicmFuY2gtPmNoaWxkKDApLAotICAgICAgICAgICAgICAgICAgICBPdmVycmlkZTo6bm9uWmVy
byhicmFuY2gtPnN1Y2Nlc3NvckJsb2NrKDApKSk7CisgICAgICAgICAgICAgICAgICAgIE92ZXJy
aWRlOjpub25aZXJvKGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKSkpOwogICAgICAgICAgICAgICAg
IGFkZE92ZXJyaWRlKAogICAgICAgICAgICAgICAgICAgICBibG9jaywgYnJhbmNoLT5jaGlsZCgw
KSwKLSAgICAgICAgICAgICAgICAgICAgT3ZlcnJpZGU6OmNvbnN0YW50KGJyYW5jaC0+c3VjY2Vz
c29yQmxvY2soMSksIDApKTsKKyAgICAgICAgICAgICAgICAgICAgT3ZlcnJpZGU6OmNvbnN0YW50
KGJsb2NrLT5zdWNjZXNzb3JCbG9jaygxKSwgMCkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgY2FzZSBTd2l0Y2g6IHsKICAgICAgICAgICAgICAgICBIYXNoTWFwPEJhc2lj
QmxvY2sqLCB1bnNpZ25lZD4gdGFyZ2V0VXNlczsKLSAgICAgICAgICAgICAgICBmb3IgKGNvbnN0
IFN3aXRjaENhc2UmIHN3aXRjaENhc2UgOiAqYnJhbmNoLT5hczxTd2l0Y2hWYWx1ZT4oKSkKKyAg
ICAgICAgICAgICAgICBmb3IgKGNvbnN0IFN3aXRjaENhc2UmIHN3aXRjaENhc2UgOiBicmFuY2gt
PmFzPFN3aXRjaFZhbHVlPigpLT5jYXNlcyhibG9jaykpCiAgICAgICAgICAgICAgICAgICAgIHRh
cmdldFVzZXMuYWRkKHN3aXRjaENhc2UudGFyZ2V0QmxvY2soKSwgMCkuaXRlcmF0b3ItPnZhbHVl
Kys7CiAKLSAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFN3aXRjaENhc2UmIHN3aXRjaENhc2Ug
OiAqYnJhbmNoLT5hczxTd2l0Y2hWYWx1ZT4oKSkgeworICAgICAgICAgICAgICAgIGZvciAoY29u
c3QgU3dpdGNoQ2FzZSYgc3dpdGNoQ2FzZSA6IGJyYW5jaC0+YXM8U3dpdGNoVmFsdWU+KCktPmNh
c2VzKGJsb2NrKSkgewogICAgICAgICAgICAgICAgICAgICBpZiAodGFyZ2V0VXNlcy5maW5kKHN3
aXRjaENhc2UudGFyZ2V0QmxvY2soKSktPnZhbHVlICE9IDEpCiAgICAgICAgICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKIApAQCAtMTU4LDkgKzE1Nyw4IEBAIHB1YmxpYzoKIAogICAgICAgICAg
ICAgICAgIHN3aXRjaCAodmFsdWUtPm9wY29kZSgpKSB7CiAgICAgICAgICAgICAgICAgY2FzZSBC
cmFuY2g6IHsKLSAgICAgICAgICAgICAgICAgICAgQ29udHJvbFZhbHVlKiBicmFuY2ggPSB2YWx1
ZS0+YXM8Q29udHJvbFZhbHVlPigpOwogICAgICAgICAgICAgICAgICAgICBpZiAoZ2V0T3ZlcnJp
ZGUoYmxvY2ssIGJyYW5jaC0+Y2hpbGQoMCkpLmlzTm9uWmVybykgewotICAgICAgICAgICAgICAg
ICAgICAgICAgYnJhbmNoLT5jb252ZXJ0VG9KdW1wKGJyYW5jaC0+dGFrZW4oKS5ibG9jaygpKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLT5yZXBsYWNlV2l0aEp1bXAoYmxvY2ssIGJs
b2NrLT50YWtlbigpKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlOwog
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJNYWNyb3MuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyTWFjcm9zLmNwcAkocmV2aXNpb24gMjAy
ODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJNYWNyb3MuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTMyLDkgKzMyLDEwIEBACiAjaW5jbHVkZSAiQjNCbG9ja0luc2VydGlvblNldC5o
IgogI2luY2x1ZGUgIkIzQ0NhbGxWYWx1ZS5oIgogI2luY2x1ZGUgIkIzQ29uc3RQdHJWYWx1ZS5o
IgotI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNJbnNlcnRpb25TZXRJ
bmxpbmVzLmgiCisjaW5jbHVkZSAiQjNNZW1vcnlWYWx1ZS5oIgogI2luY2x1ZGUgIkIzUGhhc2VT
Y29wZS5oIgorI2luY2x1ZGUgIkIzUG9seUp1bXBWYWx1ZS5oIgogI2luY2x1ZGUgIkIzUHJvY2Vk
dXJlSW5saW5lcy5oIgogI2luY2x1ZGUgIkIzU3dpdGNoVmFsdWUuaCIKICNpbmNsdWRlICJCM1Vw
c2lsb25WYWx1ZS5oIgpAQCAtMTE4LDggKzExOSw4IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAg
ICAgICAgIEJhc2ljQmxvY2sqIHplcm9EZW5DYXNlID0gbV9ibG9ja0luc2VydGlvblNldC5pbnNl
cnRCZWZvcmUobV9ibG9jayk7CiAgICAgICAgICAgICAgICAgICAgIEJhc2ljQmxvY2sqIG5vcm1h
bE1vZENhc2UgPSBtX2Jsb2NrSW5zZXJ0aW9uU2V0Lmluc2VydEJlZm9yZShtX2Jsb2NrKTsKIAot
ICAgICAgICAgICAgICAgICAgICBiZWZvcmUtPnJlcGxhY2VMYXN0V2l0aE5ldzxDb250cm9sVmFs
dWU+KAotICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBCcmFuY2gsIG1fb3JpZ2luLCBt
X3ZhbHVlLT5jaGlsZCgxKSwKKyAgICAgICAgICAgICAgICAgICAgYmVmb3JlLT5yZXBsYWNlTGFz
dFdpdGhOZXc8VmFsdWU+KG1fcHJvYywgQnJhbmNoLCBtX29yaWdpbiwgbV92YWx1ZS0+Y2hpbGQo
MSkpOworICAgICAgICAgICAgICAgICAgICBiZWZvcmUtPnNldFN1Y2Nlc3NvcnMoCiAgICAgICAg
ICAgICAgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2sobm9ybWFsTW9kQ2FzZSwgRnJlcXVlbmN5
Q2xhc3M6Ok5vcm1hbCksCiAgICAgICAgICAgICAgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2so
emVyb0RlbkNhc2UsIEZyZXF1ZW5jeUNsYXNzOjpSYXJlKSk7CiAKQEAgLTEyNywxMiArMTI4LDE0
IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgIFZhbHVlKiBtdWx0aXBsaWVkQmFjayA9
IG5vcm1hbE1vZENhc2UtPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBNdWwsIG1fb3JpZ2luLCBk
aXZSZXN1bHQsIG1fdmFsdWUtPmNoaWxkKDEpKTsKICAgICAgICAgICAgICAgICAgICAgVmFsdWUq
IHJlc3VsdCA9IG5vcm1hbE1vZENhc2UtPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBTdWIsIG1f
b3JpZ2luLCBtX3ZhbHVlLT5jaGlsZCgwKSwgbXVsdGlwbGllZEJhY2spOwogICAgICAgICAgICAg
ICAgICAgICBVcHNpbG9uVmFsdWUqIG5vcm1hbFJlc3VsdCA9IG5vcm1hbE1vZENhc2UtPmFwcGVu
ZE5ldzxVcHNpbG9uVmFsdWU+KG1fcHJvYywgbV9vcmlnaW4sIHJlc3VsdCk7Ci0gICAgICAgICAg
ICAgICAgICAgIG5vcm1hbE1vZENhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KG1fcHJvYywg
SnVtcCwgbV9vcmlnaW4sIEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7CisgICAgICAgICAgICAg
ICAgICAgIG5vcm1hbE1vZENhc2UtPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBKdW1wLCBtX29y
aWdpbik7CisgICAgICAgICAgICAgICAgICAgIG5vcm1hbE1vZENhc2UtPnNldFN1Y2Nlc3NvcnMo
RnJlcXVlbnRlZEJsb2NrKG1fYmxvY2spKTsKIAogICAgICAgICAgICAgICAgICAgICBVcHNpbG9u
VmFsdWUqIHplcm9SZXN1bHQgPSB6ZXJvRGVuQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4o
CiAgICAgICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLAogICAgICAgICAgICAg
ICAgICAgICAgICAgemVyb0RlbkNhc2UtPmFwcGVuZEludENvbnN0YW50KG1fcHJvYywgbV92YWx1
ZSwgMCkpOwotICAgICAgICAgICAgICAgICAgICB6ZXJvRGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4obV9wcm9jLCBKdW1wLCBtX29yaWdpbiwgRnJlcXVlbnRlZEJsb2NrKG1fYmxvY2sp
KTsKKyAgICAgICAgICAgICAgICAgICAgemVyb0RlbkNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4obV9w
cm9jLCBKdW1wLCBtX29yaWdpbik7CisgICAgICAgICAgICAgICAgICAgIHplcm9EZW5DYXNlLT5z
ZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7CiAKICAgICAgICAgICAgICAg
ICAgICAgVmFsdWUqIHBoaSA9IG1faW5zZXJ0aW9uU2V0Lmluc2VydDxWYWx1ZT4obV9pbmRleCwg
UGhpLCBtX3ZhbHVlLT50eXBlKCksIG1fb3JpZ2luKTsKICAgICAgICAgICAgICAgICAgICAgbm9y
bWFsUmVzdWx0LT5zZXRQaGkocGhpKTsKQEAgLTE0Nyw3ICsxNTAsNyBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgY2FzZSBTd2l0Y2g6IHsKICAgICAgICAgICAgICAgICBTd2l0Y2hWYWx1ZSogc3dp
dGNoVmFsdWUgPSBtX3ZhbHVlLT5hczxTd2l0Y2hWYWx1ZT4oKTsKICAgICAgICAgICAgICAgICBW
ZWN0b3I8U3dpdGNoQ2FzZT4gY2FzZXM7Ci0gICAgICAgICAgICAgICAgZm9yIChjb25zdCBTd2l0
Y2hDYXNlJiBzd2l0Y2hDYXNlIDogKnN3aXRjaFZhbHVlKQorICAgICAgICAgICAgICAgIGZvciAo
Y29uc3QgU3dpdGNoQ2FzZSYgc3dpdGNoQ2FzZSA6IHN3aXRjaFZhbHVlLT5jYXNlcyhtX2Jsb2Nr
KSkKICAgICAgICAgICAgICAgICAgICAgY2FzZXMuYXBwZW5kKHN3aXRjaENhc2UpOwogICAgICAg
ICAgICAgICAgIHN0ZDo6c29ydCgKICAgICAgICAgICAgICAgICAgICAgY2FzZXMuYmVnaW4oKSwg
Y2FzZXMuZW5kKCksCkBAIC0yMTAsMjcgKzIxMywyNyBAQCBwcml2YXRlOgogICAgICAgICBCYXNp
Y0Jsb2NrKiBuZWcxRGVuQ2FzZSA9IG1fYmxvY2tJbnNlcnRpb25TZXQuaW5zZXJ0QmVmb3JlKG1f
YmxvY2spOwogICAgICAgICBCYXNpY0Jsb2NrKiBpbnRNaW5DYXNlID0gbV9ibG9ja0luc2VydGlv
blNldC5pbnNlcnRCZWZvcmUobV9ibG9jayk7CiAKLSAgICAgICAgYmVmb3JlLT5yZXBsYWNlTGFz
dFdpdGhOZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgICAgIG1fcHJvYywgQnJhbmNoLCBtX29y
aWdpbiwgaXNEZW5PSywKKyAgICAgICAgYmVmb3JlLT5yZXBsYWNlTGFzdFdpdGhOZXc8VmFsdWU+
KG1fcHJvYywgQnJhbmNoLCBtX29yaWdpbiwgaXNEZW5PSyk7CisgICAgICAgIGJlZm9yZS0+c2V0
U3VjY2Vzc29ycygKICAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhub3JtYWxEaXZDYXNlLCBG
cmVxdWVuY3lDbGFzczo6Tm9ybWFsKSwKICAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhzaGFk
eURlbkNhc2UsIEZyZXF1ZW5jeUNsYXNzOjpSYXJlKSk7CiAKICAgICAgICAgVXBzaWxvblZhbHVl
KiBub3JtYWxSZXN1bHQgPSBub3JtYWxEaXZDYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPigK
ICAgICAgICAgICAgIG1fcHJvYywgbV9vcmlnaW4sCiAgICAgICAgICAgICBub3JtYWxEaXZDYXNl
LT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgbm9uQ2hpbGxPcGNvZGUsIG1fb3JpZ2luLCBudW0s
IGRlbikpOwotICAgICAgICBub3JtYWxEaXZDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
LSAgICAgICAgICAgIG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIEZyZXF1ZW50ZWRCbG9jayhtX2Js
b2NrKSk7CisgICAgICAgIG5vcm1hbERpdkNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBK
dW1wLCBtX29yaWdpbik7CisgICAgICAgIG5vcm1hbERpdkNhc2UtPnNldFN1Y2Nlc3NvcnMoRnJl
cXVlbnRlZEJsb2NrKG1fYmxvY2spKTsKIAotICAgICAgICBzaGFkeURlbkNhc2UtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAotICAgICAgICAgICAgbV9wcm9jLCBCcmFuY2gsIG1fb3JpZ2luLCBk
ZW4sCisgICAgICAgIHNoYWR5RGVuQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIEJyYW5j
aCwgbV9vcmlnaW4sIGRlbik7CisgICAgICAgIHNoYWR5RGVuQ2FzZS0+c2V0U3VjY2Vzc29ycygK
ICAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhuZWcxRGVuQ2FzZSwgRnJlcXVlbmN5Q2xhc3M6
Ok5vcm1hbCksCiAgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2soemVyb0RlbkNhc2UsIEZyZXF1
ZW5jeUNsYXNzOjpSYXJlKSk7CiAKICAgICAgICAgVXBzaWxvblZhbHVlKiB6ZXJvUmVzdWx0ID0g
emVyb0RlbkNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KAogICAgICAgICAgICAgbV9wcm9j
LCBtX29yaWdpbiwKICAgICAgICAgICAgIHplcm9EZW5DYXNlLT5hcHBlbmRJbnRDb25zdGFudCht
X3Byb2MsIG1fdmFsdWUsIDApKTsKLSAgICAgICAgemVyb0RlbkNhc2UtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAotICAgICAgICAgICAgbV9wcm9jLCBKdW1wLCBtX29yaWdpbiwgRnJlcXVlbnRl
ZEJsb2NrKG1fYmxvY2spKTsKKyAgICAgICAgemVyb0RlbkNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4o
bV9wcm9jLCBKdW1wLCBtX29yaWdpbik7CisgICAgICAgIHplcm9EZW5DYXNlLT5zZXRTdWNjZXNz
b3JzKEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7CiAKICAgICAgICAgaW50NjRfdCBiYWROdW1l
cmF0b3JDb25zdCA9IDA7CiAgICAgICAgIHN3aXRjaCAobV92YWx1ZS0+dHlwZSgpKSB7CkBAIC0y
NDgsMTggKzI1MSwxOSBAQCBwcml2YXRlOgogICAgICAgICBWYWx1ZSogYmFkTnVtZXJhdG9yID0K
ICAgICAgICAgICAgIG5lZzFEZW5DYXNlLT5hcHBlbmRJbnRDb25zdGFudChtX3Byb2MsIG1fdmFs
dWUsIGJhZE51bWVyYXRvckNvbnN0KTsKIAotICAgICAgICBuZWcxRGVuQ2FzZS0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIG5lZzFEZW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+KAog
ICAgICAgICAgICAgbV9wcm9jLCBCcmFuY2gsIG1fb3JpZ2luLAogICAgICAgICAgICAgbmVnMURl
bkNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4oCi0gICAgICAgICAgICAgICAgbV9wcm9jLCBFcXVhbCwg
bV9vcmlnaW4sIG51bSwgYmFkTnVtZXJhdG9yKSwKKyAgICAgICAgICAgICAgICBtX3Byb2MsIEVx
dWFsLCBtX29yaWdpbiwgbnVtLCBiYWROdW1lcmF0b3IpKTsKKyAgICAgICAgbmVnMURlbkNhc2Ut
PnNldFN1Y2Nlc3NvcnMoCiAgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2soaW50TWluQ2FzZSwg
RnJlcXVlbmN5Q2xhc3M6OlJhcmUpLAogICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKG5vcm1h
bERpdkNhc2UsIEZyZXF1ZW5jeUNsYXNzOjpOb3JtYWwpKTsKIAogICAgICAgICBWYWx1ZSogaW50
TWluUmVzdWx0ID0gbm9uQ2hpbGxPcGNvZGUgPT0gRGl2ID8gYmFkTnVtZXJhdG9yIDogaW50TWlu
Q2FzZS0+YXBwZW5kSW50Q29uc3RhbnQobV9wcm9jLCBtX3ZhbHVlLCAwKTsKICAgICAgICAgVXBz
aWxvblZhbHVlKiBpbnRNaW5SZXN1bHRVcHNpbG9uID0gaW50TWluQ2FzZS0+YXBwZW5kTmV3PFVw
c2lsb25WYWx1ZT4oCiAgICAgICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLCBpbnRNaW5SZXN1bHQp
OwotICAgICAgICBpbnRNaW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAg
ICAgIG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7Cisg
ICAgICAgIGludE1pbkNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBKdW1wLCBtX29yaWdp
bik7CisgICAgICAgIGludE1pbkNhc2UtPnNldFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2NrKG1f
YmxvY2spKTsKIAogICAgICAgICBWYWx1ZSogcGhpID0gbV9pbnNlcnRpb25TZXQuaW5zZXJ0PFZh
bHVlPigKICAgICAgICAgICAgIG1faW5kZXgsIFBoaSwgbV92YWx1ZS0+dHlwZSgpLCBtX29yaWdp
bik7CkBAIC0yNzUsOCArMjc5LDEwNyBAQCBwcml2YXRlOgogICAgICAgICBjb25zdCBWZWN0b3I8
U3dpdGNoQ2FzZT4mIGNhc2VzLCB1bnNpZ25lZCBzdGFydCwgYm9vbCBoYXJkU3RhcnQsIHVuc2ln
bmVkIGVuZCwKICAgICAgICAgQmFzaWNCbG9jayogYmVmb3JlKQogICAgIHsKLSAgICAgICAgLy8g
RklYTUU6IEFkZCB0YWJsZS1iYXNlZCBzd2l0Y2ggbG93ZXJpbmcuCi0gICAgICAgIC8vIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTExNDEKKyAgICAgICAgVmFsdWUq
IGNoaWxkID0gbV92YWx1ZS0+Y2hpbGQoMCk7CisgICAgICAgIFR5cGUgdHlwZSA9IGNoaWxkLT50
eXBlKCk7CisgICAgICAgIEZyZXF1ZW50ZWRCbG9jayBmYWxsVGhyb3VnaCA9IG1fYmxvY2stPmZh
bGxUaHJvdWdoKCk7CisgICAgICAgIAorICAgICAgICAvLyBJdCdzIGEgZ29vZCBpZGVhIHRvIHVz
ZSBhIHRhYmxlLWJhc2VkIHN3aXRjaCBpbiBzb21lIGNhc2VzOiB0aGUgbnVtYmVyIG9mIGNhc2Vz
IGhhcyB0byBiZQorICAgICAgICAvLyBsYXJnZSBlbm91Z2ggYW5kIHRoZXkgaGF2ZSB0byBiZSBk
ZW5zZSBlbm91Z2guIFRoaXMgY291bGQgcHJvYmFibHkgYmUgaW1wcm92ZWQgYSBsb3QuIEZvcgor
ICAgICAgICAvLyBleGFtcGxlLCB3ZSBjb3VsZCBzdGlsbCB1c2UgYSBqdW1wIHRhYmxlIGluIGNh
c2VzIHdoZXJlIHRoZSBpbnB1dHMgYXJlIHNwYXJzZSBzbyBsb25nIGFzIHdlCisgICAgICAgIC8v
IHNoaWZ0IG9mZiB0aGUgdW5pbnRlcmVzdGluZyBiaXRzLiBPbiB0aGUgb3RoZXIgaGFuZCwgaXQn
cyBub3QgY2xlYXIgdGhhdCB0aGlzIHdvdWxkCisgICAgICAgIC8vIGFjdHVhbGx5IGJlIGFueSBi
ZXR0ZXIgdGhhbiB3aGF0IHdlIGhhdmUgZG9uZSBoZXJlIGFuZCBpdCdzIG5vdCBjbGVhciB0aGF0
IGl0IHdvdWxkIGJlCisgICAgICAgIC8vIGJldHRlciB0aGFuIGEgYmluYXJ5IHN3aXRjaC4KKyAg
ICAgICAgY29uc3QgdW5zaWduZWQgbWluQ2FzZXNGb3JUYWJsZSA9IDc7CisgICAgICAgIGNvbnN0
IHVuc2lnbmVkIGRlbnNpdHlMaW1pdCA9IDQ7CisgICAgICAgIGlmIChlbmQgLSBzdGFydCA+PSBt
aW5DYXNlc0ZvclRhYmxlKSB7CisgICAgICAgICAgICBpbnQ2NF90IGZpcnN0VmFsdWUgPSBjYXNl
c1tzdGFydF0uY2FzZVZhbHVlKCk7CisgICAgICAgICAgICBpbnQ2NF90IGxhc3RWYWx1ZSA9IGNh
c2VzW2VuZCAtIDFdLmNhc2VWYWx1ZSgpOworICAgICAgICAgICAgaWYgKChsYXN0VmFsdWUgLSBm
aXJzdFZhbHVlICsgMSkgLyBjYXNlcy5zaXplKCkgPCBkZW5zaXR5TGltaXQpIHsKKyAgICAgICAg
ICAgICAgICBCYXNpY0Jsb2NrKiBzd2l0Y2hCbG9jayA9IG1fYmxvY2tJbnNlcnRpb25TZXQuaW5z
ZXJ0QWZ0ZXIobV9ibG9jayk7CisgICAgICAgICAgICAgICAgVmFsdWUqIGluZGV4ID0gYmVmb3Jl
LT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIFN1YiwgbV9v
cmlnaW4sIGNoaWxkLAorICAgICAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZEludENvbnN0
YW50KG1fcHJvYywgbV9vcmlnaW4sIHR5cGUsIGZpcnN0VmFsdWUpKTsKKyAgICAgICAgICAgICAg
ICBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICAgICAgICAgIG1fcHJvYywg
QnJhbmNoLCBtX29yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8
VmFsdWU+KAorICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBBYm92ZSwgbV9vcmlnaW4s
IGluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmRJbnRDb25zdGFu
dChtX3Byb2MsIG1fb3JpZ2luLCB0eXBlLCBsYXN0VmFsdWUgLSBmaXJzdFZhbHVlKSkpOworICAg
ICAgICAgICAgICAgIGJlZm9yZS0+c2V0U3VjY2Vzc29ycyhmYWxsVGhyb3VnaCwgRnJlcXVlbnRl
ZEJsb2NrKHN3aXRjaEJsb2NrKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAg
c2l6ZV90IHRhYmxlU2l6ZSA9IGxhc3RWYWx1ZSAtIGZpcnN0VmFsdWUgKyAxOworICAgICAgICAg
ICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChpbmRleC0+dHlwZSgpICE9IGJhc2UtPnR5cGUo
KSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXgtPnR5cGUoKSA9PSBJbnQzMikKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gc3dpdGNoQmxvY2stPmFwcGVuZE5ldzxWYWx1
ZT4obV9wcm9jLCBaRXh0MzIsIG1fb3JpZ2luLCBpbmRleCk7CisgICAgICAgICAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gc3dpdGNoQmxvY2stPmFwcGVu
ZE5ldzxWYWx1ZT4obV9wcm9jLCBUcnVuYywgbV9vcmlnaW4sIGluZGV4KTsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgUGF0Y2hwb2ludFZhbHVl
KiBwYXRjaHBvaW50ID0KKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoQmxvY2stPmFwcGVuZE5l
dzxQYXRjaHBvaW50VmFsdWU+KG1fcHJvYywgVm9pZCwgbV9vcmlnaW4pOworICAgICAgICAgICAg
ICAgIAorICAgICAgICAgICAgICAgIHBhdGNocG9pbnQtPmVmZmVjdHMudGVybWluYWwgPSB0cnVl
OworICAgICAgICAgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZFNvbWVSZWdpc3RlcihpbmRleCk7
CisgICAgICAgICAgICAgICAgcGF0Y2hwb2ludC0+bnVtR1BTY3JhdGNoUmVnaXN0ZXJzKys7Cisg
ICAgICAgICAgICAgICAgLy8gVGVjaG5pY2FsbHksIHdlIGRvbid0IGhhdmUgdG8gY2xvYmJlciBt
YWNybyByZWdpc3RlcnMgb24gWDg2XzY0LiBUaGlzIGlzIHByb2JhYmx5CisgICAgICAgICAgICAg
ICAgLy8gT0sgdGhvdWdoLgorICAgICAgICAgICAgICAgIHBhdGNocG9pbnQtPmNsb2JiZXIoUmVn
aXN0ZXJTZXQ6Om1hY3JvU2NyYXRjaFJlZ2lzdGVycygpKTsKKyAgICAgICAgICAgICAgICAKKyAg
ICAgICAgICAgICAgICBCaXRWZWN0b3IgaGFuZGxlZEluZGljZXM7CisgICAgICAgICAgICAgICAg
Zm9yICh1bnNpZ25lZCBpID0gc3RhcnQ7IGkgPCBlbmQ7ICsraSkgeworICAgICAgICAgICAgICAg
ICAgICBGcmVxdWVudGVkQmxvY2sgYmxvY2sgPSBjYXNlc1tpXS50YXJnZXQoKTsKKyAgICAgICAg
ICAgICAgICAgICAgaW50NjRfdCB2YWx1ZSA9IGNhc2VzW2ldLmNhc2VWYWx1ZSgpOworICAgICAg
ICAgICAgICAgICAgICBzd2l0Y2hCbG9jay0+YXBwZW5kU3VjY2Vzc29yKGJsb2NrKTsKKyAgICAg
ICAgICAgICAgICAgICAgc2l6ZV90IGluZGV4ID0gdmFsdWUgLSBmaXJzdFZhbHVlOworICAgICAg
ICAgICAgICAgICAgICBBU1NFUlQoIWhhbmRsZWRJbmRpY2VzLmdldChpbmRleCkpOworICAgICAg
ICAgICAgICAgICAgICBoYW5kbGVkSW5kaWNlcy5zZXQoaW5kZXgpOworICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBib29sIGhhc1VuaGFuZGxlZElu
ZGV4ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHRh
YmxlU2l6ZTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghaGFuZGxlZEluZGljZXMu
Z2V0KGkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBoYXNVbmhhbmRsZWRJbmRleCA9IHRy
dWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBp
ZiAoaGFzVW5oYW5kbGVkSW5kZXgpCisgICAgICAgICAgICAgICAgICAgIHN3aXRjaEJsb2NrLT5h
cHBlbmRTdWNjZXNzb3IoZmFsbFRocm91Z2gpOworCisgICAgICAgICAgICAgICAgcGF0Y2hwb2lu
dC0+c2V0R2VuZXJhdG9yKAorICAgICAgICAgICAgICAgICAgICBbPV0gKENDYWxsSGVscGVycyYg
aml0LCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmIHBhcmFtcykgeworICAgICAgICAg
ICAgICAgICAgICAgICAgQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlIGFsbG93U2NyYXRj
aChqaXQpOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAg
ICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIqIGp1bXBUYWJsZSA9IHBhcmFtcy5wcm9jKCkuYWRkRGF0
YVNlY3Rpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKE1hY3JvQXNzZW1i
bGVyQ29kZVB0cikgKiB0YWJsZVNpemUpOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAg
ICAgICAgICAgICAgICAgICAgICBHUFJSZWcgaW5kZXggPSBwYXJhbXNbMF0uZ3ByKCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICBHUFJSZWcgc2NyYXRjaCA9IHBhcmFtcy5ncFNjcmF0Y2goMCk7
CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGppdC5t
b3ZlKFRydXN0ZWRJbW1QdHIoanVtcFRhYmxlKSwgc2NyYXRjaCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBqaXQuanVtcChDQ2FsbEhlbHBlcnM6OkJhc2VJbmRleChzY3JhdGNoLCBpbmRleCwg
Q0NhbGxIZWxwZXJzOjp0aW1lc1B0cigpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAg
ICAgICAgICAgICAgICAgICAgICAgIFZlY3RvcjxCb3g8Q0NhbGxIZWxwZXJzOjpMYWJlbD4+IGxh
YmVscyA9IHBhcmFtcy5zdWNjZXNzb3JMYWJlbHMoKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IAorICAgICAgICAgICAgICAgICAgICAgICAgaml0LmFkZExpbmtUYXNrKAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFs9XSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGFzVW5oYW5kbGVkSW5kZXgpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBmYWxsVGhy
b3VnaCA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlua0J1ZmZl
ci5sb2NhdGlvbk9mKCpsYWJlbHMubGFzdCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IHRhYmxlU2l6ZTsgaS0tOykKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqdW1wVGFibGVbaV0gPSBmYWxsVGhyb3VnaDsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbGFi
ZWxJbmRleCA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodW5zaWdu
ZWQgdGFibGVJbmRleCA6IGhhbmRsZWRJbmRpY2VzKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBqdW1wVGFibGVbdGFibGVJbmRleF0gPQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxpbmtCdWZmZXIubG9jYXRpb25PZigqbGFiZWxzW2xhYmVs
SW5kZXgrK10pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgICAgICAKICAgICAg
ICAgLy8gU2VlIGNvbW1lbnRzIGluIGppdC9CaW5hcnlTd2l0Y2guY3BwIGZvciBhIGp1c3RpZmlj
YXRpb24gb2YgdGhpcyBhbGdvcml0aG0uIFRoZSBvbmx5CiAgICAgICAgIC8vIHRoaW5nIHdlIGRv
IGRpZmZlcmVudGx5IGlzIHRoYXQgd2UgZG9uJ3QgdXNlIHJhbmRvbW5lc3MuCkBAIC0zMDQsMjUg
KzQwNywyMyBAQCBwcml2YXRlOgogICAgICAgICAgICAgCiAgICAgICAgICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgbGltaXQ7ICsraSkgewogICAgICAgICAgICAgICAgIEJhc2ljQmxvY2sq
IG5leHRDaGVjayA9IG1fYmxvY2tJbnNlcnRpb25TZXQuaW5zZXJ0QWZ0ZXIobV9ibG9jayk7Ci0g
ICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAg
ICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICAgICAgICAgIG1f
cHJvYywgQnJhbmNoLCBtX29yaWdpbiwKICAgICAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBl
bmROZXc8VmFsdWU+KAotICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBFcXVhbCwgbV9v
cmlnaW4sIG1fdmFsdWUtPmNoaWxkKDApLAorICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9j
LCBFcXVhbCwgbV9vcmlnaW4sIGNoaWxkLAogICAgICAgICAgICAgICAgICAgICAgICAgYmVmb3Jl
LT5hcHBlbmRJbnRDb25zdGFudCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3Byb2Ms
IG1fb3JpZ2luLCBtX3ZhbHVlLT5jaGlsZCgwKS0+dHlwZSgpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNhc2VzW3N0YXJ0ICsgaV0uY2FzZVZhbHVlKCkpKSwKLSAgICAgICAgICAgICAg
ICAgICAgY2FzZXNbc3RhcnQgKyBpXS50YXJnZXQoKSwgRnJlcXVlbnRlZEJsb2NrKG5leHRDaGVj
aykpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgbV9vcmlnaW4sIHR5cGUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZXNbc3RhcnQgKyBpXS5jYXNlVmFsdWUo
KSkpKTsKKyAgICAgICAgICAgICAgICBiZWZvcmUtPnNldFN1Y2Nlc3NvcnMoY2FzZXNbc3RhcnQg
KyBpXS50YXJnZXQoKSwgRnJlcXVlbnRlZEJsb2NrKG5leHRDaGVjaykpOwogCiAgICAgICAgICAg
ICAgICAgYmVmb3JlID0gbmV4dENoZWNrOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBp
ZiAoYWxsQ29uc2VjdXRpdmUpIHsKLSAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAotICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIEp1bXAsIG1fb3JpZ2lu
LCBjYXNlc1tlbmQgLSAxXS50YXJnZXQoKSk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCi0gICAgICAgICAgICAg
ICAgICAgIG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIG1fdmFsdWUtPmFzPFN3aXRjaFZhbHVlPigp
LT5mYWxsVGhyb3VnaCgpKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJlZm9yZS0+YXBw
ZW5kTmV3PFZhbHVlPihtX3Byb2MsIEp1bXAsIG1fb3JpZ2luKTsKKyAgICAgICAgICAgIGlmIChh
bGxDb25zZWN1dGl2ZSkKKyAgICAgICAgICAgICAgICBiZWZvcmUtPnNldFN1Y2Nlc3NvcnMoY2Fz
ZXNbZW5kIC0gMV0udGFyZ2V0KCkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
IGJlZm9yZS0+c2V0U3VjY2Vzc29ycyhmYWxsVGhyb3VnaCk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIApAQCAtMzMxLDE0ICs0MzIsMTQgQEAgcHJpdmF0ZToKICAgICAgICAgQmFz
aWNCbG9jayogbGVmdCA9IG1fYmxvY2tJbnNlcnRpb25TZXQuaW5zZXJ0QWZ0ZXIobV9ibG9jayk7
CiAgICAgICAgIEJhc2ljQmxvY2sqIHJpZ2h0ID0gbV9ibG9ja0luc2VydGlvblNldC5pbnNlcnRB
ZnRlcihtX2Jsb2NrKTsKIAotICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBtX3Byb2Ms
IEJyYW5jaCwgbV9vcmlnaW4sCiAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4o
Ci0gICAgICAgICAgICAgICAgbV9wcm9jLCBMZXNzVGhhbiwgbV9vcmlnaW4sIG1fdmFsdWUtPmNo
aWxkKDApLAorICAgICAgICAgICAgICAgIG1fcHJvYywgTGVzc1RoYW4sIG1fb3JpZ2luLCBjaGls
ZCwKICAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZEludENvbnN0YW50KAotICAgICAgICAg
ICAgICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLCBtX3ZhbHVlLT5jaGlsZCgwKS0+dHlwZSgpLAot
ICAgICAgICAgICAgICAgICAgICBjYXNlc1ttZWRpYW5JbmRleF0uY2FzZVZhbHVlKCkpKSwKLSAg
ICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhsZWZ0KSwgRnJlcXVlbnRlZEJsb2NrKHJpZ2h0KSk7
CisgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgbV9vcmlnaW4sIHR5cGUsCisgICAgICAgICAg
ICAgICAgICAgIGNhc2VzW21lZGlhbkluZGV4XS5jYXNlVmFsdWUoKSkpKTsKKyAgICAgICAgYmVm
b3JlLT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhsZWZ0KSwgRnJlcXVlbnRlZEJsb2Nr
KHJpZ2h0KSk7CiAKICAgICAgICAgcmVjdXJzaXZlbHlCdWlsZFN3aXRjaChjYXNlcywgc3RhcnQs
IGhhcmRTdGFydCwgbWVkaWFuSW5kZXgsIGxlZnQpOwogICAgICAgICByZWN1cnNpdmVseUJ1aWxk
U3dpdGNoKGNhc2VzLCBtZWRpYW5JbmRleCwgdHJ1ZSwgZW5kLCByaWdodCk7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAkocmV2aXNpb24gMjAyODA5KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE1NSw3ICsxNTUsNiBAQCBwdWJsaWM6CiAgICAgICAgICAgICB9CiAKICAgICAgICAg
ICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBzdWNjZXNzb3JzIGFyZSBzZXQgdXAgY29ycmVjdGx5
LgotICAgICAgICAgICAgQVNTRVJUKGJsb2NrLT5zdWNjZXNzb3JzKCkuc2l6ZSgpIDw9IDIpOwog
ICAgICAgICAgICAgZm9yIChCMzo6RnJlcXVlbnRlZEJsb2NrIHN1Y2Nlc3NvciA6IGJsb2NrLT5z
dWNjZXNzb3JzKCkpIHsKICAgICAgICAgICAgICAgICBtX2Jsb2NrVG9CbG9ja1tibG9ja10tPnN1
Y2Nlc3NvcnMoKS5hcHBlbmQoCiAgICAgICAgICAgICAgICAgICAgIEFpcjo6RnJlcXVlbnRlZEJs
b2NrKG1fYmxvY2tUb0Jsb2NrW3N1Y2Nlc3Nvci5ibG9jaygpXSwgc3VjY2Vzc29yLmZyZXF1ZW5j
eSgpKSk7CkBAIC0yNDQxLDYgKzI0NDAsMTYgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIGNhc2Ug
QjM6OlBvbHlKdW1wOiB7CisgICAgICAgICAgICBBcmdQcm9taXNlIGFkZHIgPSBsb2FkUHJvbWlz
ZShtX3ZhbHVlLT5jaGlsZCgwKSk7CisgICAgICAgICAgICBpZiAoaXNWYWxpZEZvcm0oQWlyOjpQ
b2x5SnVtcCwgYWRkci5raW5kKCkpKSB7CisgICAgICAgICAgICAgICAgYXBwZW5kKEFpcjo6UG9s
eUp1bXAsIGFkZHIuY29uc3VtZSgqdGhpcykpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIGFwcGVuZChBaXI6OlBvbHlKdW1wLCB0bXAobV92YWx1
ZS0+Y2hpbGQoMCkpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogCiAgICAgICAg
IGNhc2UgQjM6Ok9vcHM6IHsKICAgICAgICAgICAgIGFwcGVuZChBaXI6Ok9vcHMpOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTWF0aEV4dHJhcy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTWF0aEV4dHJhcy5jcHAJKHJldmlzaW9uIDIwMjgw
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM01hdGhFeHRyYXMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTMzLDcgKzMzLDYgQEAKICNpbmNsdWRlICJCM0NvbnN0MzJWYWx1ZS5oIgogI2luY2x1
ZGUgIkIzQ29uc3REb3VibGVWYWx1ZS5oIgogI2luY2x1ZGUgIkIzQ29uc3RQdHJWYWx1ZS5oIgot
I2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNVcHNpbG9uVmFsdWUuaCIK
ICNpbmNsdWRlICJCM1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIk1hdGhDb21tb24uaCIKQEAg
LTUyLDEwICs1MSw4IEBAIHN0ZDo6cGFpcjxCYXNpY0Jsb2NrKiwgVmFsdWUqPiBwb3dEb3VibGUK
ICAgICBWYWx1ZSogc2hvdWxkR29TbG93UGF0aCA9IHN0YXJ0LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2NlZHVyZSwgQWJvdmUsIG9yaWdpbiwKICAgICAgICAgeSwKICAgICAgICAgc3RhcnQtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2NlZHVyZSwgb3JpZ2luLCBtYXhFeHBvbmVudEZvckludGVn
ZXJNYXRoUG93KSk7Ci0gICAgc3RhcnQtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAotICAgICAg
ICBwcm9jZWR1cmUsIEJyYW5jaCwgb3JpZ2luLAotICAgICAgICBzaG91bGRHb1Nsb3dQYXRoLAot
ICAgICAgICBGcmVxdWVudGVkQmxvY2soZnVuY3Rpb25DYWxsQ2FzZSksIEZyZXF1ZW50ZWRCbG9j
ayhsb29wUHJlSGVhZGVyQ2FzZSkpOworICAgIHN0YXJ0LT5hcHBlbmROZXc8VmFsdWU+KHByb2Nl
ZHVyZSwgQnJhbmNoLCBvcmlnaW4sIHNob3VsZEdvU2xvd1BhdGgpOworICAgIHN0YXJ0LT5zZXRT
dWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhmdW5jdGlvbkNhbGxDYXNlKSwgRnJlcXVlbnRlZEJs
b2NrKGxvb3BQcmVIZWFkZXJDYXNlKSk7CiAKICAgICAvLyBGdW5jdGlvbiBjYWxsLgogICAgIFZh
bHVlKiB5QXNEb3VibGUgPSBmdW5jdGlvbkNhbGxDYXNlLT5hcHBlbmROZXc8VmFsdWU+KHByb2Nl
ZHVyZSwgSVRvRCwgb3JpZ2luLCB5KTsKQEAgLTY1LDcgKzYyLDggQEAgc3RkOjpwYWlyPEJhc2lj
QmxvY2sqLCBWYWx1ZSo+IHBvd0RvdWJsZQogICAgICAgICBmdW5jdGlvbkNhbGxDYXNlLT5hcHBl
bmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvY2VkdXJlLCBvcmlnaW4sIGJpdHdpc2VfY2FzdDx2b2lk
Kj4ocG93RG91YmxlKSksCiAgICAgICAgIHgsIHlBc0RvdWJsZSk7CiAgICAgVXBzaWxvblZhbHVl
KiBwb3dSZXN1bHRVcHNpbG9uID0gZnVuY3Rpb25DYWxsQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25W
YWx1ZT4ocHJvY2VkdXJlLCBvcmlnaW4sIHBvd1Jlc3VsdCk7Ci0gICAgZnVuY3Rpb25DYWxsQ2Fz
ZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvY2VkdXJlLCBKdW1wLCBvcmlnaW4sIEZyZXF1
ZW50ZWRCbG9jayhjb250aW51YXRpb24pKTsKKyAgICBmdW5jdGlvbkNhbGxDYXNlLT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2NlZHVyZSwgSnVtcCwgb3JpZ2luKTsKKyAgICBmdW5jdGlvbkNhbGxDYXNl
LT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhjb250aW51YXRpb24pKTsKIAogICAgIC8v
IExvb3AgcHJlLWhlYWRlci4KICAgICBWYWx1ZSogaW5pdGlhbFJlc3VsdCA9IGxvb3BQcmVIZWFk
ZXJDYXNlLT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvY2VkdXJlLCBvcmlnaW4sIDEu
KTsKQEAgLTczLDcgKzcxLDggQEAgc3RkOjpwYWlyPEJhc2ljQmxvY2sqLCBWYWx1ZSo+IHBvd0Rv
dWJsZQogICAgIFVwc2lsb25WYWx1ZSogaW5pdGlhbFJlc3VsdFZhbHVlID0gbG9vcFByZUhlYWRl
ckNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2NlZHVyZSwgb3JpZ2luLCBpbml0aWFs
UmVzdWx0KTsKICAgICBVcHNpbG9uVmFsdWUqIGluaXRpYWxTcXVhcmVkSW5wdXQgPSBsb29wUHJl
SGVhZGVyQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvY2VkdXJlLCBvcmlnaW4sIHgp
OwogICAgIFVwc2lsb25WYWx1ZSogaW5pdGlhbExvb3BDb3VudGVyID0gbG9vcFByZUhlYWRlckNh
c2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2NlZHVyZSwgb3JpZ2luLCB5KTsKLSAgICBs
b29wUHJlSGVhZGVyQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvY2VkdXJlLCBKdW1w
LCBvcmlnaW4sIEZyZXF1ZW50ZWRCbG9jayhsb29wVGVzdEZvckV2ZW5DYXNlKSk7CisgICAgbG9v
cFByZUhlYWRlckNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvY2VkdXJlLCBKdW1wLCBvcmlnaW4p
OworICAgIGxvb3BQcmVIZWFkZXJDYXNlLT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhs
b29wVGVzdEZvckV2ZW5DYXNlKSk7CiAKICAgICAvLyBUZXN0IGlmIHdoYXQgaXMgbGVmdCBvZiB0
aGUgY291bnRlciBpcyBldmVuLgogICAgIFZhbHVlKiBpbkxvb3BDb3VudGVyID0gbG9vcFRlc3RG
b3JFdmVuQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihwcm9jZWR1cmUsIFBoaSwgSW50MzIsIG9yaWdp
bik7CkBAIC04MSwxMCArODAsOCBAQCBzdGQ6OnBhaXI8QmFzaWNCbG9jayosIFZhbHVlKj4gcG93
RG91YmxlCiAgICAgVmFsdWUqIGxhc3RDb3VudGVyQml0ID0gbG9vcFRlc3RGb3JFdmVuQ2FzZS0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jZWR1cmUsIEJpdEFuZCwgb3JpZ2luLAogICAgICAgICBpbkxv
b3BDb3VudGVyLAogICAgICAgICBsb29wVGVzdEZvckV2ZW5DYXNlLT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jZWR1cmUsIG9yaWdpbiwgMSkpOwotICAgIGxvb3BUZXN0Rm9yRXZlbkNhc2Ut
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAotICAgICAgICBwcm9jZWR1cmUsIEJyYW5jaCwgb3Jp
Z2luLAotICAgICAgICBsYXN0Q291bnRlckJpdCwKLSAgICAgICAgRnJlcXVlbnRlZEJsb2NrKGxv
b3BPZGQpLCBGcmVxdWVudGVkQmxvY2sobG9vcEV2ZW5PZGQpKTsKKyAgICBsb29wVGVzdEZvckV2
ZW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+KHByb2NlZHVyZSwgQnJhbmNoLCBvcmlnaW4sIGxhc3RD
b3VudGVyQml0KTsKKyAgICBsb29wVGVzdEZvckV2ZW5DYXNlLT5zZXRTdWNjZXNzb3JzKEZyZXF1
ZW50ZWRCbG9jayhsb29wT2RkKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3BFdmVuT2RkKSk7CiAKICAg
ICAvLyBDb3VudGVyIGlzIG9kZC4KICAgICBWYWx1ZSogaW5Mb29wUmVzdWx0ID0gbG9vcE9kZC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jZWR1cmUsIFBoaSwgRG91YmxlLCBvcmlnaW4pOwpAQCAtOTQs
NyArOTEsOCBAQCBzdGQ6OnBhaXI8QmFzaWNCbG9jayosIFZhbHVlKj4gcG93RG91YmxlCiAgICAg
dXBkYXRlZExvb3BSZXN1bHRVcHNpbG9uLT5zZXRQaGkoaW5Mb29wUmVzdWx0KTsKICAgICBVcHNp
bG9uVmFsdWUqIHVwZGF0ZWRMb29wUmVzdWx0ID0gbG9vcE9kZC0+YXBwZW5kTmV3PFVwc2lsb25W
YWx1ZT4ocHJvY2VkdXJlLCBvcmlnaW4sIHVwZGF0ZWRSZXN1bHQpOwogCi0gICAgbG9vcE9kZC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvY2VkdXJlLCBKdW1wLCBvcmlnaW4sIEZyZXF1ZW50
ZWRCbG9jayhsb29wRXZlbk9kZCkpOworICAgIGxvb3BPZGQtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
Y2VkdXJlLCBKdW1wLCBvcmlnaW4pOworICAgIGxvb3BPZGQtPnNldFN1Y2Nlc3NvcnMoRnJlcXVl
bnRlZEJsb2NrKGxvb3BFdmVuT2RkKSk7CiAKICAgICAvLyBFdmVuIHZhbHVlIGFuZCBmb2xsb3dp
bmcgdGhlIE9kZC4KICAgICBWYWx1ZSogc3F1YXJlZElucHV0ID0gbG9vcEV2ZW5PZGQtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvY2VkdXJlLCBNdWwsIG9yaWdpbiwgaW5Mb29wU3F1YXJlZElucHV0LCBp
bkxvb3BTcXVhcmVkSW5wdXQpOwpAQCAtMTA5LDEwICsxMDcsOCBAQCBzdGQ6OnBhaXI8QmFzaWNC
bG9jayosIFZhbHVlKj4gcG93RG91YmxlCiAgICAgaW5pdGlhbExvb3BDb3VudGVyLT5zZXRQaGko
aW5Mb29wQ291bnRlcik7CiAgICAgdXBkYXRlZENvdW50ZXJVcHNpbG9uLT5zZXRQaGkoaW5Mb29w
Q291bnRlcik7CiAKLSAgICBsb29wRXZlbk9kZC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCi0g
ICAgICAgIHByb2NlZHVyZSwgQnJhbmNoLCBvcmlnaW4sCi0gICAgICAgIHVwZGF0ZWRDb3VudGVy
LAotICAgICAgICBGcmVxdWVudGVkQmxvY2sobG9vcFRlc3RGb3JFdmVuQ2FzZSksIEZyZXF1ZW50
ZWRCbG9jayhjb250aW51YXRpb24pKTsKKyAgICBsb29wRXZlbk9kZC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jZWR1cmUsIEJyYW5jaCwgb3JpZ2luLCB1cGRhdGVkQ291bnRlcik7CisgICAgbG9vcEV2
ZW5PZGQtPnNldFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2NrKGxvb3BUZXN0Rm9yRXZlbkNhc2Up
LCBGcmVxdWVudGVkQmxvY2soY29udGludWF0aW9uKSk7CiAKICAgICAvLyBJbmxpbmUgbG9vcC4K
ICAgICBWYWx1ZSogZmluYWxSZXN1bHRQaGkgPSBjb250aW51YXRpb24tPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvY2VkdXJlLCBQaGksIERvdWJsZSwgb3JpZ2luKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM09wY29kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzT3Bjb2RlLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzT3Bjb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjkwLDYgKzI5MCw5IEBA
IHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBPcGMKICAgICBjYXNlIFN3aXRj
aDoKICAgICAgICAgb3V0LnByaW50KCJTd2l0Y2giKTsKICAgICAgICAgcmV0dXJuOworICAgIGNh
c2UgUG9seUp1bXA6CisgICAgICAgIG91dC5wcmludCgiUG9seUp1bXAiKTsKKyAgICAgICAgcmV0
dXJuOwogICAgIGNhc2UgUmV0dXJuOgogICAgICAgICBvdXQucHJpbnQoIlJldHVybiIpOwogICAg
ICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuaAkocmV2aXNp
b24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTIwNywyMSArMjA3LDIxIEBAIGVudW0gT3Bjb2RlIDogaW50MTZfdCB7CiAg
ICAgVXBzaWxvbiwgLy8gVGhpcyB1c2VzIHRoZSBVcHNpbG9uVmFsdWUgY2xhc3MuCiAgICAgUGhp
LAogCi0gICAgLy8gSnVtcC4gVXNlcyB0aGUgQ29udHJvbFZhbHVlIGNsYXNzLgorICAgIC8vIEp1
bXAuCiAgICAgSnVtcCwKICAgICAKLSAgICAvLyBQb2x5bW9ycGhpYyBicmFuY2gsIHVzYWJsZSB3
aXRoIGFueSBpbnRlZ2VyIHR5cGUuIEJyYW5jaGVzIGlmIG5vdCBlcXVhbCB0byB6ZXJvLiBVc2Vz
IHRoZQotICAgIC8vIENvbnRyb2xWYWx1ZSBjbGFzcywgd2l0aCB0aGUgMC1pbmRleCBzdWNjZXNz
b3IgYmVpbmcgdGhlIHRydWUgc3VjY2Vzc29yLgorICAgIC8vIFBvbHltb3JwaGljIGJyYW5jaCwg
dXNhYmxlIHdpdGggYW55IGludGVnZXIgdHlwZS4gQnJhbmNoZXMgaWYgbm90IGVxdWFsIHRvIHpl
cm8uIFRoZSAwLWluZGV4CisgICAgLy8gc3VjY2Vzc29yIGlzIHRoZSB0cnVlIHN1Y2Nlc3Nvci4K
ICAgICBCcmFuY2gsCiAKICAgICAvLyBTd2l0Y2guIFN3aXRjaGVzIG92ZXIgZWl0aGVyIEludDMy
IG9yIEludDY0LiBVc2VzIHRoZSBTd2l0Y2hWYWx1ZSBjbGFzcy4KICAgICBTd2l0Y2gsCi0KKyAg
ICAKICAgICAvLyBSZXR1cm4uIE5vdGUgdGhhdCBCMyBwcm9jZWR1cmVzIGRvbid0IGtub3cgdGhl
aXIgcmV0dXJuIHR5cGUsIHNvIHRoaXMgY2FuIGp1c3QgcmV0dXJuIGFueQotICAgIC8vIHR5cGUu
IFVzZXMgdGhlIENvbnRyb2xWYWx1ZSBjbGFzcy4KKyAgICAvLyB0eXBlLgogICAgIFJldHVybiwK
IAotICAgIC8vIFRoaXMgaXMgYSB0ZXJtaW5hbCB0aGF0IGluZGljYXRlcyB0aGF0IHdlIHdpbGwg
bmV2ZXIgZ2V0IGhlcmUuIFVzZXMgdGhlIENvbnRyb2xWYWx1ZSBjbGFzcy4KKyAgICAvLyBUaGlz
IGlzIGEgdGVybWluYWwgdGhhdCBpbmRpY2F0ZXMgdGhhdCB3ZSB3aWxsIG5ldmVyIGdldCBoZXJl
LgogICAgIE9vcHMKIH07CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BhdGNo
cG9pbnRTcGVjaWFsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNQYXRjaHBvaW50U3BlY2lhbC5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM1BhdGNocG9pbnRTcGVjaWFsLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTQ2LDYgKzE0NiwxMSBAQCBDQ2FsbEhlbHBlcnM6Okp1bXAgUGF0Y2hwb2ludFNwZWNpYWw6Omdl
CiAgICAgcmV0dXJuIENDYWxsSGVscGVyczo6SnVtcCgpOwogfQogCitib29sIFBhdGNocG9pbnRT
cGVjaWFsOjppc1Rlcm1pbmFsKEluc3QmIGluc3QpCit7CisgICAgcmV0dXJuIGluc3Qub3duZXIt
PmFzPFBhdGNocG9pbnRWYWx1ZT4oKS0+ZWZmZWN0cy50ZXJtaW5hbDsKK30KKwogdm9pZCBQYXRj
aHBvaW50U3BlY2lhbDo6ZHVtcEltcGwoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHsKICAgICBv
dXQucHJpbnQoIlBhdGNocG9pbnQiKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1BhdGNocG9pbnRTcGVjaWFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzUGF0Y2hwb2ludFNwZWNpYWwuaAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzUGF0Y2hwb2ludFNwZWNpYWwuaAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01Niw2
ICs1Niw4IEBAIHByb3RlY3RlZDoKICAgICAvLyBnZW5lcmF0ZXMgdGhlIHN0YWNrbWFwLiBTdXBl
ciBjcmF6eSBkdWRlIQogCiAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGdlbmVyYXRlKEFpcjo6SW5z
dCYsIENDYWxsSGVscGVycyYsIEFpcjo6R2VuZXJhdGlvbkNvbnRleHQmKSBvdmVycmlkZTsKKyAg
ICAKKyAgICBib29sIGlzVGVybWluYWwoSW5zdCYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBkdW1w
SW1wbChQcmludFN0cmVhbSYpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgZGVlcER1bXBJbXBs
KFByaW50U3RyZWFtJikgY29uc3Qgb3ZlcnJpZGU7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNQcm9jZWR1cmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM1Byb2NlZHVyZS5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0OCwzMSArMTQ4
LDYgQEAgdm9pZCBQcm9jZWR1cmU6OnJlc2V0VmFsdWVPd25lcnMoKQogCiB2b2lkIFByb2NlZHVy
ZTo6cmVzZXRSZWFjaGFiaWxpdHkoKQogewotICAgIGlmIChzaG91bGRWYWxpZGF0ZUlSKCkpIHsK
LSAgICAgICAgLy8gVmFsaWRhdGUgdGhlIGJhc2ljIHByb3BlcnRpZXMgdGhhdCB3ZSBuZWVkIGZv
ciByZXNldHRpbmcgcmVhY2hhYmlsaXR5LiBXZSBvZnRlbiByZXNldAotICAgICAgICAvLyByZWFj
aGFiaWxpdHkgYmVmb3JlIElSIHZhbGlkYXRpb24sIHNvIHdpdGhvdXQgdGhpcyBtaW5pLXZhbGlk
YXRpb24sIHlvdSB3b3VsZCBjcmFzaCBpbnNpZGUKLSAgICAgICAgLy8gQjM6OnJlc2V0UmVhY2hh
YmlsaXR5KCkgd2l0aG91dCBnZXR0aW5nIGFueSBJUiBkdW1wLgotCi0gICAgICAgIEJhc2ljQmxv
Y2sqIGJhZEJsb2NrID0gbnVsbHB0cjsKLSAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBibG9jayA6
ICp0aGlzKSB7Ci0gICAgICAgICAgICBpZiAoIWJsb2NrLT5zaXplKCkpIHsKLSAgICAgICAgICAg
ICAgICBiYWRCbG9jayA9IGJsb2NrOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg
ICAgfQotCi0gICAgICAgICAgICBpZiAoIWJsb2NrLT5sYXN0KCktPmFzPENvbnRyb2xWYWx1ZT4o
KSkgewotICAgICAgICAgICAgICAgIGJhZEJsb2NrID0gYmxvY2s7Ci0gICAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoYmFkQmxvY2sp
IHsKLSAgICAgICAgICAgIGRhdGFMb2coIkZBVEFMOiBJbnZhbGlkIGJhc2ljIGJsb2NrICIsICpi
YWRCbG9jaywgIiB3aGlsZSBydW5uaW5nIFByb2NlZHVyZTo6cmVzZXRSZWFjaGFiaWxpdHkoKS5c
biIpOwotICAgICAgICAgICAgZGF0YUxvZygqdGhpcyk7Ci0gICAgICAgICAgICBSRUxFQVNFX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICB9Ci0gICAgfQotICAgIAogICAgIHJlY29tcHV0
ZVByZWRlY2Vzc29ycyhtX2Jsb2Nrcyk7CiAgICAgCiAgICAgLy8gVGhlIGNvbW1vbiBjYXNlIGlz
IHRoYXQgdGhpcyBkb2VzIG5vdCBmaW5kIGFueSBkZWFkIGJsb2Nrcy4KSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuaAkod29ya2luZyBjb3B5KQpAQCAtMjE4LDcg
KzIxOCwxMCBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBjaGFyKiBsYXN0UGhhc2VOYW1lKCkgY29u
c3QgeyByZXR1cm4gbV9sYXN0UGhhc2VOYW1lOyB9CiAKLSAgICB2b2lkKiBhZGREYXRhU2VjdGlv
bihzaXplX3Qgc2l6ZSk7CisgICAgLy8gQWxsb2NhdGVzIGEgc2xhYiBvZiBtZW1vcnkgdGhhdCB3
aWxsIGJlIGtlcHQgYWxpdmUgYnkgYW55b25lIHdobyBrZWVwcyB0aGUgcmVzdWx0aW5nIGNvZGUK
KyAgICAvLyBhbGl2ZS4gR3JlYXQgZm9yIGNvbXBpbGVyLWdlbmVyYXRlZCBkYXRhIHNlY3Rpb25z
LCBsaWtlIHN3aXRjaCBqdW1wIHRhYmxlcyBhbmQgY29uc3RhbnQgcG9vbHMuCisgICAgLy8gVGhp
cyByZXR1cm5zIG1lbW9yeSB0aGF0IGhhcyBiZWVuIHplcm8taW5pdGlhbGl6ZWQuCisgICAgdm9p
ZCogYWRkRGF0YVNlY3Rpb24oc2l6ZV90KTsKIAogICAgIE9wYXF1ZUJ5cHJvZHVjdHMmIGJ5cHJv
ZHVjdHMoKSB7IHJldHVybiAqbV9ieXByb2R1Y3RzOyB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VTdHJlbmd0aC5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIkIzQmFzaWNCbG9ja0lubGluZXMuaCIK
ICNpbmNsdWRlICJCM0Jsb2NrSW5zZXJ0aW9uU2V0LmgiCiAjaW5jbHVkZSAiQjNDb21wdXRlRGl2
aXNpb25NYWdpYy5oIgotI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNE
b21pbmF0b3JzLmgiCiAjaW5jbHVkZSAiQjNJbmRleFNldC5oIgogI2luY2x1ZGUgIkIzSW5zZXJ0
aW9uU2V0SW5saW5lcy5oIgpAQCAtMTcxNyw3ICsxNzE2LDcgQEAgcHJpdmF0ZToKICAgICAgICAg
ICAgICAgICAvLyBSZXBsYWNlIHRoZSByZXN0IG9mIHRoZSBibG9jayB3aXRoIGFuIE9vcHMuCiAg
ICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gbV9pbmRleCArIDE7IGkgPCBtX2Jsb2Nr
LT5zaXplKCkgLSAxOyArK2kpCiAgICAgICAgICAgICAgICAgICAgIG1fYmxvY2stPmF0KGkpLT5y
ZXBsYWNlV2l0aEJvdHRvbShtX2luc2VydGlvblNldCwgbV9pbmRleCk7Ci0gICAgICAgICAgICAg
ICAgbV9ibG9jay0+bGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCktPmNvbnZlcnRUb09vcHMoKTsK
KyAgICAgICAgICAgICAgICBtX2Jsb2NrLT5sYXN0KCktPnJlcGxhY2VXaXRoT29wcyhtX2Jsb2Nr
KTsKICAgICAgICAgICAgICAgICBtX2Jsb2NrLT5sYXN0KCktPnNldE9yaWdpbihjaGVja1ZhbHVl
LT5vcmlnaW4oKSk7CiAKICAgICAgICAgICAgICAgICAvLyBSZXBsYWNlIG91cnNlbHZlcyBsYXN0
LgpAQCAtMTc3Myw2ICsxNzcyLDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIHZhbHVlLT5vcGNvZGUoKSA9PSBTZWxlY3QKICAgICAgICAgICAgICAgICAgICAgICAgICYm
ICh2YWx1ZS0+Y2hpbGQoMSktPmlzQ29uc3RhbnQoKSAmJiB2YWx1ZS0+Y2hpbGQoMiktPmlzQ29u
c3RhbnQoKSk7CiAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAKICAgICAgICAgICAg
IGlmIChzZWxlY3QpIHsKICAgICAgICAgICAgICAgICBzcGVjaWFsaXplU2VsZWN0KHNlbGVjdCk7
CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0xNzgxLDUwICsxNzgxLDQ4IEBAIHByaXZhdGU6
CiAgICAgICAgIH0KIAogICAgICAgICBjYXNlIEJyYW5jaDogewotICAgICAgICAgICAgQ29udHJv
bFZhbHVlKiBicmFuY2ggPSBtX3ZhbHVlLT5hczxDb250cm9sVmFsdWU+KCk7Ci0KICAgICAgICAg
ICAgIC8vIFR1cm4gdGhpczogQnJhbmNoKE5vdEVxdWFsKHgsIDApKQogICAgICAgICAgICAgLy8g
SW50byB0aGlzOiBCcmFuY2goeCkKLSAgICAgICAgICAgIGlmIChicmFuY2gtPmNoaWxkKDApLT5v
cGNvZGUoKSA9PSBOb3RFcXVhbCAmJiBicmFuY2gtPmNoaWxkKDApLT5jaGlsZCgxKS0+aXNJbnQo
MCkpIHsKLSAgICAgICAgICAgICAgICBicmFuY2gtPmNoaWxkKDApID0gYnJhbmNoLT5jaGlsZCgw
KS0+Y2hpbGQoMCk7CisgICAgICAgICAgICBpZiAobV92YWx1ZS0+Y2hpbGQoMCktPm9wY29kZSgp
ID09IE5vdEVxdWFsICYmIG1fdmFsdWUtPmNoaWxkKDApLT5jaGlsZCgxKS0+aXNJbnQoMCkpIHsK
KyAgICAgICAgICAgICAgICBtX3ZhbHVlLT5jaGlsZCgwKSA9IG1fdmFsdWUtPmNoaWxkKDApLT5j
aGlsZCgwKTsKICAgICAgICAgICAgICAgICBtX2NoYW5nZWQgPSB0cnVlOwogICAgICAgICAgICAg
fQogCiAgICAgICAgICAgICAvLyBUdXJuIHRoaXM6IEJyYW5jaChFcXVhbCh4LCAwKSwgdGhlbiwg
ZWxzZSkKICAgICAgICAgICAgIC8vIEludG8gdGhpczogQnJhbmNoKHgsIGVsc2UsIHRoZW4pCi0g
ICAgICAgICAgICBpZiAoYnJhbmNoLT5jaGlsZCgwKS0+b3Bjb2RlKCkgPT0gRXF1YWwgJiYgYnJh
bmNoLT5jaGlsZCgwKS0+Y2hpbGQoMSktPmlzSW50KDApKSB7Ci0gICAgICAgICAgICAgICAgYnJh
bmNoLT5jaGlsZCgwKSA9IGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDApOwotICAgICAgICAgICAg
ICAgIHN0ZDo6c3dhcChicmFuY2gtPnRha2VuKCksIGJyYW5jaC0+bm90VGFrZW4oKSk7CisgICAg
ICAgICAgICBpZiAobV92YWx1ZS0+Y2hpbGQoMCktPm9wY29kZSgpID09IEVxdWFsICYmIG1fdmFs
dWUtPmNoaWxkKDApLT5jaGlsZCgxKS0+aXNJbnQoMCkpIHsKKyAgICAgICAgICAgICAgICBtX3Zh
bHVlLT5jaGlsZCgwKSA9IG1fdmFsdWUtPmNoaWxkKDApLT5jaGlsZCgwKTsKKyAgICAgICAgICAg
ICAgICBzdGQ6OnN3YXAobV9ibG9jay0+dGFrZW4oKSwgbV9ibG9jay0+bm90VGFrZW4oKSk7CiAg
ICAgICAgICAgICAgICAgbV9jaGFuZ2VkID0gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIAogICAgICAgICAgICAgLy8gVHVybiB0aGlzOiBCcmFuY2goQml0WG9yKGJvb2wsIDEpLCB0
aGVuLCBlbHNlKQogICAgICAgICAgICAgLy8gSW50byB0aGlzOiBCcmFuY2goYm9vbCwgZWxzZSwg
dGhlbikKLSAgICAgICAgICAgIGlmIChicmFuY2gtPmNoaWxkKDApLT5vcGNvZGUoKSA9PSBCaXRY
b3IKLSAgICAgICAgICAgICAgICAmJiBicmFuY2gtPmNoaWxkKDApLT5jaGlsZCgxKS0+aXNJbnQz
MigxKQotICAgICAgICAgICAgICAgICYmIGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDApLT5yZXR1
cm5zQm9vbCgpKSB7Ci0gICAgICAgICAgICAgICAgYnJhbmNoLT5jaGlsZCgwKSA9IGJyYW5jaC0+
Y2hpbGQoMCktPmNoaWxkKDApOwotICAgICAgICAgICAgICAgIHN0ZDo6c3dhcChicmFuY2gtPnRh
a2VuKCksIGJyYW5jaC0+bm90VGFrZW4oKSk7CisgICAgICAgICAgICBpZiAobV92YWx1ZS0+Y2hp
bGQoMCktPm9wY29kZSgpID09IEJpdFhvcgorICAgICAgICAgICAgICAgICYmIG1fdmFsdWUtPmNo
aWxkKDApLT5jaGlsZCgxKS0+aXNJbnQzMigxKQorICAgICAgICAgICAgICAgICYmIG1fdmFsdWUt
PmNoaWxkKDApLT5jaGlsZCgwKS0+cmV0dXJuc0Jvb2woKSkgeworICAgICAgICAgICAgICAgIG1f
dmFsdWUtPmNoaWxkKDApID0gbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDApOworICAgICAgICAg
ICAgICAgIHN0ZDo6c3dhcChtX2Jsb2NrLT50YWtlbigpLCBtX2Jsb2NrLT5ub3RUYWtlbigpKTsK
ICAgICAgICAgICAgICAgICBtX2NoYW5nZWQgPSB0cnVlOwogICAgICAgICAgICAgfQogCiAgICAg
ICAgICAgICAvLyBUdXJuIHRoaXM6IEJyYW5jaChCaXRBbmQoYm9vbCwgeHliMSksIHRoZW4sIGVs
c2UpCiAgICAgICAgICAgICAvLyBJbnRvIHRoaXM6IEJyYW5jaChib29sLCB0aGVuLCBlbHNlKQot
ICAgICAgICAgICAgaWYgKGJyYW5jaC0+Y2hpbGQoMCktPm9wY29kZSgpID09IEJpdEFuZAotICAg
ICAgICAgICAgICAgICYmIGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDEpLT5oYXNJbnQoKQotICAg
ICAgICAgICAgICAgICYmIGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDEpLT5hc0ludCgpICYgMQot
ICAgICAgICAgICAgICAgICYmIGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDApLT5yZXR1cm5zQm9v
bCgpKSB7Ci0gICAgICAgICAgICAgICAgYnJhbmNoLT5jaGlsZCgwKSA9IGJyYW5jaC0+Y2hpbGQo
MCktPmNoaWxkKDApOworICAgICAgICAgICAgaWYgKG1fdmFsdWUtPmNoaWxkKDApLT5vcGNvZGUo
KSA9PSBCaXRBbmQKKyAgICAgICAgICAgICAgICAmJiBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQo
MSktPmhhc0ludCgpCisgICAgICAgICAgICAgICAgJiYgbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxk
KDEpLT5hc0ludCgpICYgMQorICAgICAgICAgICAgICAgICYmIG1fdmFsdWUtPmNoaWxkKDApLT5j
aGlsZCgwKS0+cmV0dXJuc0Jvb2woKSkgeworICAgICAgICAgICAgICAgIG1fdmFsdWUtPmNoaWxk
KDApID0gbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDApOwogICAgICAgICAgICAgICAgIG1fY2hh
bmdlZCA9IHRydWU7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIFRyaVN0YXRlIHRyaVN0
YXRlID0gYnJhbmNoLT5jaGlsZCgwKS0+YXNUcmlTdGF0ZSgpOworICAgICAgICAgICAgVHJpU3Rh
dGUgdHJpU3RhdGUgPSBtX3ZhbHVlLT5jaGlsZCgwKS0+YXNUcmlTdGF0ZSgpOwogCiAgICAgICAg
ICAgICAvLyBUdXJuIHRoaXM6IEJyYW5jaCgwLCB0aGVuLCBlbHNlKQogICAgICAgICAgICAgLy8g
SW50byB0aGlzOiBKdW1wKGVsc2UpCiAgICAgICAgICAgICBpZiAodHJpU3RhdGUgPT0gRmFsc2VU
cmlTdGF0ZSkgewotICAgICAgICAgICAgICAgIGJyYW5jaC0+dGFrZW4oKS5ibG9jaygpLT5yZW1v
dmVQcmVkZWNlc3NvcihtX2Jsb2NrKTsKLSAgICAgICAgICAgICAgICBicmFuY2gtPmNvbnZlcnRU
b0p1bXAoYnJhbmNoLT5ub3RUYWtlbigpLmJsb2NrKCkpOworICAgICAgICAgICAgICAgIG1fYmxv
Y2stPnRha2VuKCkuYmxvY2soKS0+cmVtb3ZlUHJlZGVjZXNzb3IobV9ibG9jayk7CisgICAgICAg
ICAgICAgICAgbV92YWx1ZS0+cmVwbGFjZVdpdGhKdW1wKG1fYmxvY2ssIG1fYmxvY2stPm5vdFRh
a2VuKCkuYmxvY2soKSk7CiAgICAgICAgICAgICAgICAgbV9jaGFuZ2VkQ0ZHID0gdHJ1ZTsKICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KQEAgLTE4MzIsOCArMTgzMCw4IEBA
IHByaXZhdGU6CiAgICAgICAgICAgICAvLyBUdXJuIHRoaXM6IEJyYW5jaChub3QgMCwgdGhlbiwg
ZWxzZSkKICAgICAgICAgICAgIC8vIEludG8gdGhpczogSnVtcCh0aGVuKQogICAgICAgICAgICAg
aWYgKHRyaVN0YXRlID09IFRydWVUcmlTdGF0ZSkgewotICAgICAgICAgICAgICAgIGJyYW5jaC0+
bm90VGFrZW4oKS5ibG9jaygpLT5yZW1vdmVQcmVkZWNlc3NvcihtX2Jsb2NrKTsKLSAgICAgICAg
ICAgICAgICBicmFuY2gtPmNvbnZlcnRUb0p1bXAoYnJhbmNoLT50YWtlbigpLmJsb2NrKCkpOwor
ICAgICAgICAgICAgICAgIG1fYmxvY2stPm5vdFRha2VuKCkuYmxvY2soKS0+cmVtb3ZlUHJlZGVj
ZXNzb3IobV9ibG9jayk7CisgICAgICAgICAgICAgICAgbV92YWx1ZS0+cmVwbGFjZVdpdGhKdW1w
KG1fYmxvY2ssIG1fYmxvY2stPnRha2VuKCkuYmxvY2soKSk7CiAgICAgICAgICAgICAgICAgbV9j
aGFuZ2VkQ0ZHID0gdHJ1ZTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0K
QEAgLTE4NDIsMTIgKzE4NDAsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIC8vIG9mIG1ha2Vz
IHNlbnNlIGhlcmUgYmVjYXVzZSBpdCdzIGNoZWFwLCBidXQgaGFja3MgbGlrZSB0aGlzIHNob3cg
dGhhdCB3ZSdyZSBnb2luZwogICAgICAgICAgICAgLy8gdG8gbmVlZCBTQ0NQLgogICAgICAgICAg
ICAgVmFsdWUqIGNoZWNrID0gbV9wdXJlQ1NFLmZpbmRNYXRjaCgKLSAgICAgICAgICAgICAgICBW
YWx1ZUtleShDaGVjaywgVm9pZCwgYnJhbmNoLT5jaGlsZCgwKSksIG1fYmxvY2ssICptX2RvbWlu
YXRvcnMpOworICAgICAgICAgICAgICAgIFZhbHVlS2V5KENoZWNrLCBWb2lkLCBtX3ZhbHVlLT5j
aGlsZCgwKSksIG1fYmxvY2ssICptX2RvbWluYXRvcnMpOwogICAgICAgICAgICAgaWYgKGNoZWNr
KSB7CiAgICAgICAgICAgICAgICAgLy8gVGhlIENoZWNrIHdvdWxkIGhhdmUgc2lkZS1leGl0ZWQg
aWYgY2hpbGQoMCkgd2FzIG5vbi16ZXJvLiBTbywgaXQgbXVzdCBiZQogICAgICAgICAgICAgICAg
IC8vIHplcm8gaGVyZS4KLSAgICAgICAgICAgICAgICBicmFuY2gtPnRha2VuKCkuYmxvY2soKS0+
cmVtb3ZlUHJlZGVjZXNzb3IobV9ibG9jayk7Ci0gICAgICAgICAgICAgICAgYnJhbmNoLT5jb252
ZXJ0VG9KdW1wKGJyYW5jaC0+bm90VGFrZW4oKS5ibG9jaygpKTsKKyAgICAgICAgICAgICAgICBt
X2Jsb2NrLT50YWtlbigpLmJsb2NrKCktPnJlbW92ZVByZWRlY2Vzc29yKG1fYmxvY2spOworICAg
ICAgICAgICAgICAgIG1fdmFsdWUtPnJlcGxhY2VXaXRoSnVtcChtX2Jsb2NrLCBtX2Jsb2NrLT5u
b3RUYWtlbigpLmJsb2NrKCkpOwogICAgICAgICAgICAgICAgIG1fY2hhbmdlZENGRyA9IHRydWU7
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKQEAgLTE5ODYsMTMgKzE5ODQsMTIg
QEAgcHJpdmF0ZToKICAgICAgICAgLy8gUmVtb3ZlIHRoZSB2YWx1ZXMgZnJvbSB0aGUgcHJlZGVj
ZXNzb3IuCiAgICAgICAgIHByZWRlY2Vzc29yLT52YWx1ZXMoKS5yZXNpemUoc3RhcnRJbmRleCk7
CiAgICAgICAgIAotICAgICAgICBwcmVkZWNlc3Nvci0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
Ci0gICAgICAgICAgICBtX3Byb2MsIEJyYW5jaCwgc291cmNlLT5vcmlnaW4oKSwgcHJlZGljYXRl
LAotICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKGNhc2VzWzBdKSwgRnJlcXVlbnRlZEJsb2Nr
KGNhc2VzWzFdKSk7CisgICAgICAgIHByZWRlY2Vzc29yLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJv
YywgQnJhbmNoLCBzb3VyY2UtPm9yaWdpbigpLCBwcmVkaWNhdGUpOworICAgICAgICBwcmVkZWNl
c3Nvci0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2soY2FzZXNbMF0pLCBGcmVxdWVudGVk
QmxvY2soY2FzZXNbMV0pKTsKIAogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVt
Q2FzZXM7ICsraSkgewotICAgICAgICAgICAgY2FzZXNbaV0tPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAotICAgICAgICAgICAgICAgIG1fcHJvYywgSnVtcCwgbV92YWx1ZS0+b3JpZ2luKCksIEZy
ZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7CisgICAgICAgICAgICBjYXNlc1tpXS0+YXBwZW5kTmV3
PFZhbHVlPihtX3Byb2MsIEp1bXAsIG1fdmFsdWUtPm9yaWdpbigpKTsKKyAgICAgICAgICAgIGNh
c2VzW2ldLT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7CiAgICAgICAg
IH0KIAogICAgICAgICBtX2NoYW5nZWQgPSB0cnVlOwpAQCAtMjIyMSw3ICsyMjE4LDcgQEAgcHJp
dmF0ZToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhTG9nKAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiQ2hhbmdpbmcgIiwgcG9pbnRlckR1bXAoYmxvY2spLCAiJ3Mg
dGVybWluYWwgdG8gYSBKdW1wLlxuIik7CiAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBibG9jay0+bGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCktPmNv
bnZlcnRUb0p1bXAoZmlyc3RTdWNjZXNzb3IpOworICAgICAgICAgICAgICAgICAgICAgICAgYmxv
Y2stPmxhc3QoKS0+cmVwbGFjZVdpdGhKdW1wKGJsb2NrLCBmaXJzdFN1Y2Nlc3Nvcik7CiAgICAg
ICAgICAgICAgICAgICAgICAgICBtX2NoYW5nZWRDRkcgPSB0cnVlOwogICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgfQpAQCAtMjIzOSwxNiArMjIzNiwxOCBAQCBwcml2YXRl
OgogICAgICAgICAgICAgICAgICAgICAvLyBSZW1vdmUgdGhlIHRlcm1pbmFsLgogICAgICAgICAg
ICAgICAgICAgICBWYWx1ZSogdmFsdWUgPSBibG9jay0+dmFsdWVzKCkudGFrZUxhc3QoKTsKICAg
ICAgICAgICAgICAgICAgICAgT3JpZ2luIGp1bXBPcmlnaW4gPSB2YWx1ZS0+b3JpZ2luKCk7Ci0g
ICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHZhbHVlLT5hczxDb250cm9sVmFsdWU+
KCkpOworICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVCh2YWx1ZS0+ZWZmZWN0cygp
LnRlcm1pbmFsKTsKICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLmRlbGV0ZVZhbHVlKHZhbHVl
KTsKICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgIC8vIEFwcGVuZCB0
aGUgZnVsbCBjb250ZW50cyBvZiB0aGUgc3VjY2Vzc29yIHRvIHRoZSBwcmVkZWNlc3Nvci4KICAg
ICAgICAgICAgICAgICAgICAgYmxvY2stPnZhbHVlcygpLmFwcGVuZFZlY3RvcihzdWNjZXNzb3It
PnZhbHVlcygpKTsKKyAgICAgICAgICAgICAgICAgICAgYmxvY2stPnN1Y2Nlc3NvcnMoKSA9IHN1
Y2Nlc3Nvci0+c3VjY2Vzc29ycygpOwogICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgdGhlIHN1Y2Nlc3NvciBoYXMgbm90aGluZyBsZWZ0
IGluIGl0LiBNYWtlIHN1cmUgdGhhdCB0aGUgYmxvY2sKICAgICAgICAgICAgICAgICAgICAgLy8g
aGFzIGEgdGVybWluYWwgc28gdGhhdCBub2JvZHkgY2hva2VzIHdoZW4gdGhleSBsb29rIGF0IGl0
LgogICAgICAgICAgICAgICAgICAgICBzdWNjZXNzb3ItPnZhbHVlcygpLnJlc2l6ZSgwKTsKLSAg
ICAgICAgICAgICAgICAgICAgc3VjY2Vzc29yLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihtX3By
b2MsIE9vcHMsIGp1bXBPcmlnaW4pOworICAgICAgICAgICAgICAgICAgICBzdWNjZXNzb3ItPmFw
cGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBPb3BzLCBqdW1wT3JpZ2luKTsKKyAgICAgICAgICAgICAg
ICAgICAgc3VjY2Vzc29yLT5jbGVhclN1Y2Nlc3NvcnMoKTsKICAgICAgICAgICAgICAgICAgICAg
CiAgICAgICAgICAgICAgICAgICAgIC8vIEVuc3VyZSB0aGF0IHByZWRlY2Vzc29ycyBvZiBibG9j
aydzIG5ldyBzdWNjZXNzb3JzIGtub3cgd2hhdCdzIHVwLgogICAgICAgICAgICAgICAgICAgICBm
b3IgKEJhc2ljQmxvY2sqIG5ld1N1Y2Nlc3NvciA6IGJsb2NrLT5zdWNjZXNzb3JCbG9ja3MoKSkK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFt
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3RhY2ttYXBH
ZW5lcmF0aW9uUGFyYW1zLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01
OSw2ICs1OSwyNyBAQCBSZWdpc3RlclNldCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXM6OnVuCiAg
ICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorVmVjdG9yPEJveDxDQ2FsbEhlbHBlcnM6OkxhYmVsPj4g
U3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zOjpzdWNjZXNzb3JMYWJlbHMoKSBjb25zdAoreworICAg
IFJFTEVBU0VfQVNTRVJUKG1fY29udGV4dC5pbmRleEluQmxvY2sgPT0gbV9jb250ZXh0LmN1cnJl
bnRCbG9jay0+c2l6ZSgpIC0gMSk7CisgICAgUkVMRUFTRV9BU1NFUlQobV92YWx1ZS0+ZWZmZWN0
cygpLnRlcm1pbmFsKTsKKyAgICAKKyAgICBWZWN0b3I8Qm94PENDYWxsSGVscGVyczo6TGFiZWw+
PiByZXN1bHQobV9jb250ZXh0LmN1cnJlbnRCbG9jay0+bnVtU3VjY2Vzc29ycygpKTsKKyAgICBm
b3IgKHVuc2lnbmVkIGkgPSBtX2NvbnRleHQuY3VycmVudEJsb2NrLT5udW1TdWNjZXNzb3JzKCk7
IGktLTspCisgICAgICAgIHJlc3VsdFtpXSA9IG1fY29udGV4dC5ibG9ja0xhYmVsc1ttX2NvbnRl
eHQuY3VycmVudEJsb2NrLT5zdWNjZXNzb3JCbG9jayhpKV07CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KKworYm9vbCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXM6OmZhbGxzVGhyb3VnaFRvU3VjY2Vz
c29yKHVuc2lnbmVkIHN1Y2Nlc3NvckluZGV4KSBjb25zdAoreworICAgIFJFTEVBU0VfQVNTRVJU
KG1fY29udGV4dC5pbmRleEluQmxvY2sgPT0gbV9jb250ZXh0LmN1cnJlbnRCbG9jay0+c2l6ZSgp
IC0gMSk7CisgICAgUkVMRUFTRV9BU1NFUlQobV92YWx1ZS0+ZWZmZWN0cygpLnRlcm1pbmFsKTsK
KyAgICAKKyAgICBCYXNpY0Jsb2NrKiBzdWNjZXNzb3IgPSBtX2NvbnRleHQuY3VycmVudEJsb2Nr
LT5zdWNjZXNzb3JCbG9jayhzdWNjZXNzb3JJbmRleCk7CisgICAgQmFzaWNCbGNvayogbmV4dEJs
b2NrID0gbV9jb250ZXh0LmNvZGUtPmZpbmROZXh0QmxvY2sobV9jb250ZXh0LmN1cnJlbnRCbG9j
ayk7CisgICAgcmV0dXJuIHN1Y2Nlc3NvciA9PSBuZXh0QmxvY2s7Cit9CisKIFByb2NlZHVyZSYg
U3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zOjpwcm9jKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9j
b250ZXh0LmNvZGUtPnByb2MoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0
YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5oCShyZXZpc2lvbiAyMDI4MDkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcEdlbmVyYXRpb25QYXJhbXMuaAko
d29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsOSBAQAogCiAjaW5jbHVkZSAiQWlyR2VuZXJhdGlv
bkNvbnRleHQuaCIKICNpbmNsdWRlICJCM1ZhbHVlUmVwLmgiCisjaW5jbHVkZSAiQ0NhbGxIZWxw
ZXJzLmgiCiAjaW5jbHVkZSAiUmVnaXN0ZXJTZXQuaCIKKyNpbmNsdWRlIDx3dGYvQm94Lmg+CiAK
IG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCkBAIC0zOSw2ICs0MSw4IEBAIGNsYXNz
IFBhdGNocG9pbnRTcGVjaWFsOwogY2xhc3MgUHJvY2VkdXJlOwogY2xhc3MgU3RhY2ttYXBWYWx1
ZTsKIAorLy8gTk9URTogSXQncyBwb3NzaWJsZSB0byBjYXB0dXJlIFN0YWNrbWFwR2VuZXJhdGlv
blBhcmFtcyBieSB2YWx1ZSwgYnV0IG5vdCBhbGwgb2YgdGhlIG1ldGhvZHMgd2lsbAorLy8gd29y
ayBpZiB5b3UgZG8gdGhhdC4KIGNsYXNzIFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyB7CiBwdWJs
aWM6CiAgICAgLy8gVGhpcyBpcyB0aGUgc3RhY2ttYXAgdmFsdWUgdGhhdCB3ZSdyZSBnZW5lcmF0
aW5nLgpAQCAtODAsNiArODQsMTIgQEAgcHVibGljOgogCiAgICAgR1BSUmVnIGdwU2NyYXRjaCh1
bnNpZ25lZCBpbmRleCkgY29uc3QgeyByZXR1cm4gbV9ncFNjcmF0Y2hbaW5kZXhdOyB9CiAgICAg
RlBSUmVnIGZwU2NyYXRjaCh1bnNpZ25lZCBpbmRleCkgY29uc3QgeyByZXR1cm4gbV9mcFNjcmF0
Y2hbaW5kZXhdOyB9CisgICAgCisgICAgLy8gVGhpcyBpcyBjb21wdXRlZCBsYXppbHksIHNvIGl0
IHdvbid0IHdvcmsgaWYgeW91IGNhcHR1cmUgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zIGJ5IHZh
bHVlLgorICAgIFZlY3RvcjxCb3g8Q0NhbGxIZWxwZXJzOjpMYWJlbD4+IHN1Y2Nlc3NvckxhYmVs
cygpIGNvbnN0OworICAgIAorICAgIC8vIFRoaXMgaXMgY29tcHV0ZWQgbGF6aWx5IGFsc28uCisg
ICAgYm9vbCBmYWxsc1Rocm91Z2hUb1N1Y2Nlc3Nvcih1bnNpZ25lZCBzdWNjZXNzb3JJbmRleCkg
Y29uc3Q7CiAKICAgICAvLyBUaGlzIGlzIHByb3ZpZGVkIGZvciBjb252ZW5pZW5jZTsgaXQgbWVh
bnMgdGhhdCB5b3UgZG9uJ3QgaGF2ZSB0byBjYXB0dXJlIGl0IGlmIHlvdSBkb24ndCB3YW50IHRv
LgogICAgIFByb2NlZHVyZSYgcHJvYygpIGNvbnN0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzU3dpdGNoVmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM1N3aXRjaFZhbHVlLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzU3dpdGNoVmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNywz
MCArMzcsNjkgQEAgU3dpdGNoVmFsdWU6On5Td2l0Y2hWYWx1ZSgpCiB7CiB9CiAKLVN3aXRjaENh
c2UgU3dpdGNoVmFsdWU6OnJlbW92ZUNhc2UodW5zaWduZWQgaW5kZXgpCitTd2l0Y2hDYXNlIFN3
aXRjaFZhbHVlOjpyZW1vdmVDYXNlKEJhc2ljQmxvY2sqIGJsb2NrLCB1bnNpZ25lZCBpbmRleCkK
IHsKLSAgICBGcmVxdWVudGVkQmxvY2sgcmVzdWx0QmxvY2sgPSBtX3N1Y2Nlc3NvcnNbaW5kZXhd
OworICAgIEZyZXF1ZW50ZWRCbG9jayByZXN1bHRCbG9jayA9IGJsb2NrLT5zdWNjZXNzb3IoaW5k
ZXgpOwogICAgIGludDY0X3QgcmVzdWx0VmFsdWUgPSBtX3ZhbHVlc1tpbmRleF07Ci0gICAgbV9z
dWNjZXNzb3JzW2luZGV4XSA9IG1fc3VjY2Vzc29ycy5sYXN0KCk7Ci0gICAgbV9zdWNjZXNzb3Jz
LnJlbW92ZUxhc3QoKTsKKyAgICBibG9jay0+c3VjY2Vzc29yKGluZGV4KSA9IGJsb2NrLT5zdWNj
ZXNzb3JzKCkubGFzdCgpOworICAgIGJsb2NrLT5zdWNjZXNzb3JzKCkucmVtb3ZlTGFzdCgpOwog
ICAgIG1fdmFsdWVzW2luZGV4XSA9IG1fdmFsdWVzLmxhc3QoKTsKICAgICBtX3ZhbHVlcy5yZW1v
dmVMYXN0KCk7CiAgICAgcmV0dXJuIFN3aXRjaENhc2UocmVzdWx0VmFsdWUsIHJlc3VsdEJsb2Nr
KTsKIH0KIAotdm9pZCBTd2l0Y2hWYWx1ZTo6YXBwZW5kQ2FzZShjb25zdCBTd2l0Y2hDYXNlJiBz
d2l0Y2hDYXNlKQordm9pZCBTd2l0Y2hWYWx1ZTo6c2V0RmFsbHRocm91Z2goQmFzaWNCbG9jayog
YmxvY2ssIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgdGFyZ2V0KQogewotICAgIG1fc3VjY2Vzc29y
cy5hcHBlbmQobV9zdWNjZXNzb3JzLmxhc3QoKSk7Ci0gICAgbV9zdWNjZXNzb3JzW21fc3VjY2Vz
c29ycy5zaXplKCkgLSAyXSA9IHN3aXRjaENhc2UudGFyZ2V0KCk7CisgICAgdW5zaWduZWQgbnVt
U3VjY2Vzc29ycyA9IGJsb2NrLT5udW1TdWNjZXNzb3JzKCk7CisgICAgdW5zaWduZWQgbnVtVmFs
dWVzID0gbV92YWx1ZXMuc2l6ZSgpOworICAgIFJFTEVBU0VfQVNTRVJUKHZhbHVlcyA9PSBudW1T
dWNjZXNzb3JzIHx8IHZhbHVlcyArIDEgPT0gbnVtU3VjY2Vzc29ycyk7CisgICAgCisgICAgaWYg
KHZhbHVlcyA9PSBudW1TdWNjZXNzb3JzKQorICAgICAgICBibG9jay0+c3VjY2Vzc29ycygpLmFw
cGVuZChzd2l0Y2hDYXNlLnRhcmdldCgpKTsKKyAgICBlbHNlCisgICAgICAgIGJsb2NrLT5zdWNj
ZXNzb3JzKCkubGFzdCgpID0gc3dpdGNoQ2FzZS50YXJnZXQoKTsKK30KKwordm9pZCBTd2l0Y2hW
YWx1ZTo6YXBwZW5kQ2FzZShCYXNpY0Jsb2NrKiBibG9jaywgY29uc3QgU3dpdGNoQ2FzZSYgc3dp
dGNoQ2FzZSkKK3sKKyAgICB1bnNpZ25lZCBudW1TdWNjZXNzb3JzID0gYmxvY2stPm51bVN1Y2Nl
c3NvcnMoKTsKKyAgICB1bnNpZ25lZCBudW1WYWx1ZXMgPSBtX3ZhbHVlcy5zaXplKCk7CisgICAg
UkVMRUFTRV9BU1NFUlQodmFsdWVzID09IG51bVN1Y2Nlc3NvcnMgfHwgdmFsdWVzICsgMSA9PSBu
dW1TdWNjZXNzb3JzKTsKKyAgICAKKyAgICBpZiAodmFsdWVzID09IG51bVN1Y2Nlc3NvcnMpCisg
ICAgICAgIGJsb2NrLT5zdWNjZXNzb3JzKCkuYXBwZW5kKHN3aXRjaENhc2UudGFyZ2V0KCkpOwor
ICAgIGVsc2UgeworICAgICAgICBibG9jay0+c3VjY2Vzc29ycygpLmFwcGVuZChibG9jay0+c3Vj
Y2Vzc29ycygpLmxhc3QoKSk7CisgICAgICAgIGJsb2NrLT5zdWNjZXNzb3IoYmxvY2stPm51bVN1
Y2Nlc3NvcnMoKSAtIDIpID0gc3dpdGNoQ2FzZS50YXJnZXQoKTsKKyAgICB9CiAgICAgbV92YWx1
ZXMuYXBwZW5kKHN3aXRjaENhc2UuY2FzZVZhbHVlKCkpOwogfQogCit2b2lkIFN3aXRjaFZhbHVl
OjpzZXRGYWxsdGhyb3VnaChjb25zdCBGcmVxdWVudGVkQmxvY2smIHRhcmdldCkKK3sKKyAgICBz
ZXRGYWxsdGhyb3VnaChvd25lciwgdGFyZ2V0KTsKK30KKwordm9pZCBTd2l0Y2hWYWx1ZTo6YXBw
ZW5kQ2FzZShjb25zdCBTd2l0Y2hDYXNlJiBzd2l0Y2hDYXNlKQoreworICAgIGFwcGVuZENhc2Uo
b3duZXIsIHN3aXRjaENhc2UpOworfQorCit2b2lkIFN3aXRjaFZhbHVlOjpkdW1wU3VjY2Vzc29y
cyhjb25zdCBCYXNpY0Jsb2NrKiBibG9jaywgUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKK3sKKyAg
ICAvLyBXZSBtdXN0IG5vdCBjcmFzaCBkdWUgdG8gYSBudW1iZXItb2Ytc3VjY2Vzc29ycyBtaXNt
YXRjaCEgU29tZW9uZSBkZWJ1Z2dpbmcgYQorICAgIC8vIG51bWJlci1vZi1zdWNjZXNzb3JzIGJ1
ZyB3aWxsIHdhbnQgdG8gZHVtcCBJUiEKKyAgICBpZiAobnVtQ2FzZVZhbHVlcygpICsgMSAhPSBi
bG9jay0+bnVtU3VjY2Vzc29ycygpKSB7CisgICAgICAgIFZhbHVlOjpkdW1wU3VjY2Vzc29ycyhi
bG9jaywgb3V0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICBvdXQucHJpbnQo
Y2FzZXMoYmxvY2spKTsKK30KKwogdm9pZCBTd2l0Y2hWYWx1ZTo6ZHVtcE1ldGEoQ29tbWFQcmlu
dGVyJiBjb21tYSwgUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHsKLSAgICAvLyBUaGlzIGRlc3Ry
dWN0aXZlbHkgb3ZlcnJpZGVzIENvbnRyb2xWYWx1ZSdzIGR1bXBNZXRhKCkuCi0gICAgZm9yIChT
d2l0Y2hDYXNlIHN3aXRjaENhc2UgOiAqdGhpcykKLSAgICAgICAgb3V0LnByaW50KGNvbW1hLCBz
d2l0Y2hDYXNlKTsKLSAgICBvdXQucHJpbnQoY29tbWEsICJmYWxsVGhyb3VnaCA9ICIsIGZhbGxU
aHJvdWdoKCkpOworICAgIG91dC5wcmludChjb21tYSwgImNhc2VzID0gWyIsIGxpc3REdW1wKG1f
dmFsdWVzKSwgIl0iKTsKIH0KIAogVmFsdWUqIFN3aXRjaFZhbHVlOjpjbG9uZUltcGwoKSBjb25z
dApAQCAtNjgsMTAgKzEwNyw5IEBAIFZhbHVlKiBTd2l0Y2hWYWx1ZTo6Y2xvbmVJbXBsKCkgY29u
c3QKICAgICByZXR1cm4gbmV3IFN3aXRjaFZhbHVlKCp0aGlzKTsKIH0KIAotU3dpdGNoVmFsdWU6
OlN3aXRjaFZhbHVlKE9yaWdpbiBvcmlnaW4sIFZhbHVlKiBjaGlsZCwgY29uc3QgRnJlcXVlbnRl
ZEJsb2NrJiBmYWxsVGhyb3VnaCkKLSAgICA6IENvbnRyb2xWYWx1ZShTd2l0Y2gsIFZvaWQsIG9y
aWdpbiwgY2hpbGQpCitTd2l0Y2hWYWx1ZTo6U3dpdGNoVmFsdWUoT3JpZ2luIG9yaWdpbiwgVmFs
dWUqIGNoaWxkKQorICAgIDogVmFsdWUoQ2hlY2tlZE9wY29kZSwgU3dpdGNoLCBWb2lkLCBvcmln
aW4sIGNoaWxkKQogewotICAgIG1fc3VjY2Vzc29ycy5hcHBlbmQoZmFsbFRocm91Z2gpOwogfQog
CiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1N3aXRjaFZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzU3dpdGNoVmFsdWUuaAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzU3dpdGNoVmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsMTIgKzI4LDEzIEBA
CiAKICNpZiBFTkFCTEUoQjNfSklUKQogCi0jaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKKyNp
bmNsdWRlICJCM0Nhc2VDb2xsZWN0aW9uLmgiCiAjaW5jbHVkZSAiQjNTd2l0Y2hDYXNlLmgiCisj
aW5jbHVkZSAiQjNWYWx1ZS5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIAot
Y2xhc3MgU3dpdGNoVmFsdWUgOiBwdWJsaWMgQ29udHJvbFZhbHVlIHsKK2NsYXNzIFN3aXRjaFZh
bHVlIDogcHVibGljIFZhbHVlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBhY2NlcHRzKE9w
Y29kZSBvcGNvZGUpIHsgcmV0dXJuIG9wY29kZSA9PSBTd2l0Y2g7IH0KIApAQCAtNDcsNzIgKzQ4
LDIzIEBAIHB1YmxpYzoKICAgICAKICAgICBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGNhc2VWYWx1
ZXMoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlczsgfQogCi0gICAgRnJlcXVlbnRlZEJsb2NrIGZh
bGxUaHJvdWdoKCkgY29uc3QgeyByZXR1cm4gc3VjY2Vzc29ycygpLmxhc3QoKTsgfQotICAgIEZy
ZXF1ZW50ZWRCbG9jayYgZmFsbFRocm91Z2goKSB7IHJldHVybiBzdWNjZXNzb3JzKCkubGFzdCgp
OyB9Ci0KLSAgICB1bnNpZ25lZCBzaXplKCkgY29uc3QgeyByZXR1cm4gbnVtQ2FzZVZhbHVlcygp
OyB9Ci0gICAgU3dpdGNoQ2FzZSBhdCh1bnNpZ25lZCBpbmRleCkgY29uc3QKLSAgICB7Ci0gICAg
ICAgIHJldHVybiBTd2l0Y2hDYXNlKGNhc2VWYWx1ZShpbmRleCksIHN1Y2Nlc3NvcihpbmRleCkp
OwotICAgIH0KLSAgICBTd2l0Y2hDYXNlIG9wZXJhdG9yW10odW5zaWduZWQgaW5kZXgpIGNvbnN0
Ci0gICAgewotICAgICAgICByZXR1cm4gYXQoaW5kZXgpOwotICAgIH0KLQotICAgIGNsYXNzIGl0
ZXJhdG9yIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIGl0ZXJhdG9yKCkKLSAgICAgICAgICAgIDog
bV9zd2l0Y2gobnVsbHB0cikKLSAgICAgICAgICAgICwgbV9pbmRleCgwKQotICAgICAgICB7Ci0g
ICAgICAgIH0KLQotICAgICAgICBpdGVyYXRvcihjb25zdCBTd2l0Y2hWYWx1ZSYgc3dpdGNoVmFs
dWUsIHVuc2lnbmVkIGluZGV4KQotICAgICAgICAgICAgOiBtX3N3aXRjaCgmc3dpdGNoVmFsdWUp
Ci0gICAgICAgICAgICAsIG1faW5kZXgoaW5kZXgpCi0gICAgICAgIHsKLSAgICAgICAgfQotCi0g
ICAgICAgIFN3aXRjaENhc2Ugb3BlcmF0b3IqKCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0
dXJuIG1fc3dpdGNoLT5hdChtX2luZGV4KTsKLSAgICAgICAgfQotCi0gICAgICAgIGl0ZXJhdG9y
JiBvcGVyYXRvcisrKCkKLSAgICAgICAgewotICAgICAgICAgICAgbV9pbmRleCsrOwotICAgICAg
ICAgICAgcmV0dXJuICp0aGlzOwotICAgICAgICB9Ci0KLSAgICAgICAgYm9vbCBvcGVyYXRvcj09
KGNvbnN0IGl0ZXJhdG9yJiBvdGhlcikgY29uc3QKLSAgICAgICAgewotICAgICAgICAgICAgQVNT
RVJUKG1fc3dpdGNoID09IG90aGVyLm1fc3dpdGNoKTsKLSAgICAgICAgICAgIHJldHVybiBtX2lu
ZGV4ID09IG90aGVyLm1faW5kZXg7Ci0gICAgICAgIH0KLQotICAgICAgICBib29sIG9wZXJhdG9y
IT0oY29uc3QgaXRlcmF0b3ImIG90aGVyKSBjb25zdAotICAgICAgICB7Ci0gICAgICAgICAgICBy
ZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7Ci0gICAgICAgIH0KLQotICAgIHByaXZhdGU6Ci0gICAg
ICAgIGNvbnN0IFN3aXRjaFZhbHVlKiBtX3N3aXRjaDsKLSAgICAgICAgdW5zaWduZWQgbV9pbmRl
eDsKLSAgICB9OwotCi0gICAgdHlwZWRlZiBpdGVyYXRvciBjb25zdF9pdGVyYXRvcjsKLQotICAg
IGl0ZXJhdG9yIGJlZ2luKCkgY29uc3QgeyByZXR1cm4gaXRlcmF0b3IoKnRoaXMsIDApOyB9Ci0g
ICAgaXRlcmF0b3IgZW5kKCkgY29uc3QgeyByZXR1cm4gaXRlcmF0b3IoKnRoaXMsIHNpemUoKSk7
IH0KKyAgICBDYXNlQ29sbGVjdGlvbiBjYXNlcyhCYXNpY0Jsb2NrKiBvd25lcikgY29uc3QgeyBy
ZXR1cm4gQ2FzZUNvbGxlY3Rpb24odGhpcywgb3duZXIpOyB9CisgICAgQ2FzZUNvbGxlY3Rpb24g
Y2FzZXMoKSBjb25zdCB7IHJldHVybiBjYXNlcyhvd25lcik7IH0KIAogICAgIC8vIFRoaXMgcmVt
b3ZlcyB0aGUgY2FzZSBhbmQgcmVvcmRlcnMgdGhpbmdzIGEgYml0LiBJZiB5b3UncmUgaXRlcmF0
aW5nIHRoZSBjYXNlcyBmcm9tIDAgdG8gTiwKICAgICAvLyB0aGVuIHlvdSBjYW4ga2VlcCBpdGVy
YXRpbmcgYWZ0ZXIgdGhpcyBzbyBsb25nIGFzIHlvdSByZXZpc2l0IHRoaXMgc2FtZSBpbmRleCAo
d2hpY2ggd2lsbCBub3cKICAgICAvLyBjb250YWluIHNvbWUgb3RoZXIgY2FzZSB2YWx1ZSkuIFRo
aXMgcmVtb3ZlcyB0aGUgY2FzZSB0aGF0IHdhcyByZW1vdmVkLgotICAgIFN3aXRjaENhc2UgcmVt
b3ZlQ2FzZSh1bnNpZ25lZCBpbmRleCk7CisgICAgU3dpdGNoQ2FzZSByZW1vdmVDYXNlKEJhc2lj
QmxvY2sqLCB1bnNpZ25lZCBpbmRleCk7CiAKKyAgICAvLyBUaGVzZSB0d28gZnVuY3Rpb25zIGNh
biBiZSBjYWxsZWQgaW4gYW55IG9yZGVyLgorICAgIHZvaWQgc2V0RmFsbHRocm91Z2goQmFzaWNC
bG9jayosIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYpOworICAgIHZvaWQgYXBwZW5kQ2FzZShCYXNp
Y0Jsb2NrKiwgY29uc3QgU3dpdGNoQ2FzZSYpOworICAgIAorICAgIEpTX0VYUE9SVF9QUklWQVRF
IHZvaWQgc2V0RmFsbHRocm91Z2goY29uc3QgRnJlcXVlbnRlZEJsb2NrJik7CiAgICAgSlNfRVhQ
T1JUX1BSSVZBVEUgdm9pZCBhcHBlbmRDYXNlKGNvbnN0IFN3aXRjaENhc2UmKTsKIAorICAgIHZv
aWQgZHVtcFN1Y2Nlc3NvcnMoY29uc3QgQmFzaWNCbG9jayosIFByaW50U3RyZWFtJikgY29uc3Qg
b3ZlcnJpZGU7CisKIHByb3RlY3RlZDoKICAgICB2b2lkIGR1bXBNZXRhKENvbW1hUHJpbnRlciYs
IFByaW50U3RyZWFtJikgY29uc3Qgb3ZlcnJpZGU7CiAKQEAgLTEyMSw3ICs3Myw3IEBAIHByb3Rl
Y3RlZDoKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFByb2NlZHVyZTsKIAotICAgIEpTX0VY
UE9SVF9QUklWQVRFIFN3aXRjaFZhbHVlKE9yaWdpbiwgVmFsdWUqIGNoaWxkLCBjb25zdCBGcmVx
dWVudGVkQmxvY2smIGZhbGxUaHJvdWdoKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBTd2l0Y2hW
YWx1ZShPcmlnaW4sIFZhbHVlKiBjaGlsZCk7CiAKICAgICBWZWN0b3I8aW50NjRfdD4gbV92YWx1
ZXM7CiB9OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsaWRhdGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbGlkYXRlLmNwcAkocmV2
aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsaWRhdGUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMDcsOCArMTA3LDggQEAgcHVibGljOgogICAgICAgICBmb3Ig
KEJhc2ljQmxvY2sqIGJsb2NrIDogYmxvY2tzKSB7CiAgICAgICAgICAgICBWQUxJREFURShibG9j
ay0+c2l6ZSgpID49IDEsICgiQXQgIiwgKmJsb2NrKSk7CiAgICAgICAgICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgYmxvY2stPnNpemUoKSAtIDE7ICsraSkKLSAgICAgICAgICAgICAgICBW
QUxJREFURSghQ29udHJvbFZhbHVlOjphY2NlcHRzKGJsb2NrLT5hdChpKS0+b3Bjb2RlKCkpLCAo
IkF0ICIsICpibG9jay0+YXQoaSkpKTsKLSAgICAgICAgICAgIFZBTElEQVRFKENvbnRyb2xWYWx1
ZTo6YWNjZXB0cyhibG9jay0+bGFzdCgpLT5vcGNvZGUoKSksICgiQXQgIiwgKmJsb2NrLT5sYXN0
KCkpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFURSghYmxvY2stPmF0KGkpLT5lZmZlY3RzKCku
dGVybWluYWwsICgiQXQgIiwgKmJsb2NrLT5hdChpKSkpOworICAgICAgICAgICAgVkFMSURBVEUo
YmxvY2stPmxhc3QoKS0+ZWZmZWN0cygpLnRlcm1pbmFsLCAoIkF0ICIsICpibG9jay0+bGFzdCgp
KSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGZvciAoQmFzaWNCbG9jayogc3VjY2Vzc29y
IDogYmxvY2stPnN1Y2Nlc3NvckJsb2NrcygpKSB7CiAgICAgICAgICAgICAgICAgYWxsUHJlZGVj
ZXNzb3JzLmFkZChzdWNjZXNzb3IsIEhhc2hTZXQ8QmFzaWNCbG9jayo+KCkpLml0ZXJhdG9yLT52
YWx1ZS5hZGQoYmxvY2spOwpAQCAtMTI5LDggKzEyOSw2IEBAIHB1YmxpYzoKICAgICAgICAgICAg
ICAgICBWQUxJREFURShjaGlsZC0+dHlwZSgpICE9IFZvaWQsICgiQXQgIiwgKnZhbHVlLCAiLT4i
LCAqY2hpbGQpKTsKICAgICAgICAgICAgIHN3aXRjaCAodmFsdWUtPm9wY29kZSgpKSB7CiAgICAg
ICAgICAgICBjYXNlIE5vcDoKLSAgICAgICAgICAgIGNhc2UgSnVtcDoKLSAgICAgICAgICAgIGNh
c2UgT29wczoKICAgICAgICAgICAgICAgICBWQUxJREFURSghdmFsdWUtPm51bUNoaWxkcmVuKCks
ICgiQXQgIiwgKnZhbHVlKSk7CiAgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPnR5cGUo
KSA9PSBWb2lkLCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAt
Mzc3LDE1ICszNzUsMzIgQEAgcHVibGljOgogICAgICAgICAgICAgICAgIFZBTElEQVRFKCF2YWx1
ZS0+bnVtQ2hpbGRyZW4oKSwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAgICBWQUxJ
REFURSh2YWx1ZS0+dHlwZSgpICE9IFZvaWQsICgiQXQgIiwgKnZhbHVlKSk7CiAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEp1bXA6CisgICAgICAgICAgICAgICAgVkFM
SURBVEUoIXZhbHVlLT5udW1DaGlsZHJlbigpLCAoIkF0ICIsICp2YWx1ZSkpOworICAgICAgICAg
ICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgPT0gVm9pZCwgKCJBdCAiLCAqdmFsdWUpKTsK
KyAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZU93bmVyLmdldCh2YWx1ZSktPm51bVN1Y2Nl
c3NvcnMoKSA9PSAxKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
T29wczoKKyAgICAgICAgICAgICAgICBWQUxJREFURSghdmFsdWUtPm51bUNoaWxkcmVuKCksICgi
QXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPnR5cGUoKSA9
PSBWb2lkLCAoIkF0ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIFZBTElEQVRFKCF2YWx1
ZU93bmVyLmdldCh2YWx1ZSktPm51bVN1Y2Nlc3NvcnMoKSk7CisgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICBjYXNlIFJldHVybjoKICAgICAgICAgICAgICAgICBWQUxJREFURSh2
YWx1ZS0+bnVtQ2hpbGRyZW4oKSA9PSAxLCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAg
ICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgPT0gVm9pZCwgKCJBdCAiLCAqdmFsdWUpKTsKKyAg
ICAgICAgICAgICAgICBWQUxJREFURSghdmFsdWVPd25lci5nZXQodmFsdWUpLT5udW1TdWNjZXNz
b3JzKCkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBCcmFuY2g6
CisgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPm51bUNoaWxkcmVuKCkgPT0gMSwgKCJB
dCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFURShpc0ludCh2YWx1ZS0+Y2hp
bGQoMCktPnR5cGUoKSksICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAgICAgVkFMSURB
VEUodmFsdWUtPnR5cGUoKSA9PSBWb2lkLCAoIkF0ICIsICp2YWx1ZSkpOworICAgICAgICAgICAg
ICAgIFZBTElEQVRFKHZhbHVlT3duZXIuZ2V0KHZhbHVlKS0+bnVtU3VjY2Vzc29ycygpID09IDIp
OworICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBTd2l0Y2g6CiAgICAg
ICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPm51bUNoaWxkcmVuKCkgPT0gMSwgKCJBdCAiLCAq
dmFsdWUpKTsKICAgICAgICAgICAgICAgICBWQUxJREFURShpc0ludCh2YWx1ZS0+Y2hpbGQoMCkt
PnR5cGUoKSksICgiQXQgIiwgKnZhbHVlKSk7CiAgICAgICAgICAgICAgICAgVkFMSURBVEUodmFs
dWUtPnR5cGUoKSA9PSBWb2lkLCAoIkF0ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIFZB
TElEQVRFKHZhbHVlT3duZXIuZ2V0KHZhbHVlKS0+bnVtU3VjY2Vzc29ycygpID09IHZhbHVlLT5h
czxTd2l0Y2hWYWx1ZT4oKS0+bnVtQ2FzZVZhbHVlcygpICsgMSk7CiAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1ZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1
ZS5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Zh
bHVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIkIzQXJn
dW1lbnRSZWdWYWx1ZS5oIgogI2luY2x1ZGUgIkIzQm90dG9tUHJvdmlkZXIuaCIKICNpbmNsdWRl
ICJCM0NDYWxsVmFsdWUuaCIKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUg
IkIzTWVtb3J5VmFsdWUuaCIKICNpbmNsdWRlICJCM09yaWdpbkR1bXAuaCIKICNpbmNsdWRlICJC
M1Byb2NlZHVyZUlubGluZXMuaCIKQEAgLTEyNSw2ICsxMjQsNTAgQEAgdm9pZCBWYWx1ZTo6cmVw
bGFjZVdpdGhQaGkoKQogICAgIHRoaXMtPm1faW5kZXggPSBpbmRleDsKIH0KIAordm9pZCBWYWx1
ZTo6cmVwbGFjZVdpdGhKdW1wKEJhc2ljQmxvY2sqIG93bmVyLCBjb25zdCBGcmVxdWVudGVkQmxv
Y2smIHRhcmdldCkKK3sKKyAgICBSRUxFQVNFX0FTU0VSVChvd25lci0+bGFzdCgpID09IHRoaXMp
OworICAgIAorICAgIHVuc2lnbmVkIGluZGV4ID0gbV9pbmRleDsKKyAgICBPcmlnaW4gb3JpZ2lu
ID0gbV9vcmlnaW47CisgICAgCisgICAgdGhpcy0+flZhbHVlKCk7CisgICAgCisgICAgbmV3ICh0
aGlzKSBWYWx1ZShKdW1wLCBWb2lkLCBvcmlnaW4pOworICAgIAorICAgIHRoaXMtPm93bmVyID0g
b3duZXI7CisgICAgdGhpcy0+bV9pbmRleCA9IGluZGV4OworICAgIAorICAgIG93bmVyLT5zZXRT
dWNjZXNzb3JzKHRhcmdldCk7Cit9CisKK3ZvaWQgVmFsdWU6OnJlcGxhY2VXaXRoT29wcyhCYXNp
Y0Jsb2NrKiBvd25lcikKK3sKKyAgICBSRUxFQVNFX0FTU0VSVChvd25lci0+bGFzdCgpID09IHRo
aXMpOworICAgIAorICAgIHVuc2lnbmVkIGluZGV4ID0gbV9pbmRleDsKKyAgICBPcmlnaW4gb3Jp
Z2luID0gbV9vcmlnaW47CisgICAgCisgICAgdGhpcy0+flZhbHVlKCk7CisgICAgCisgICAgbmV3
ICh0aGlzKSBWYWx1ZShPb3BzLCBWb2lkLCBvcmlnaW4pOworICAgIAorICAgIHRoaXMtPm93bmVy
ID0gb3duZXI7CisgICAgdGhpcy0+bV9pbmRleCA9IGluZGV4OworICAgIAorICAgIG93bmVyLT5j
bGVhclN1Y2Nlc3NvcnMoKTsKK30KKwordm9pZCBWYWx1ZTo6cmVwbGFjZVdpdGhKdW1wKGNvbnN0
IEZyZXF1ZW50ZWRCbG9jayYgdGFyZ2V0KQoreworICAgIHJlcGxhY2VXaXRoSnVtcChvd25lciwg
dGFyZ2V0KTsKK30KKwordm9pZCBWYWx1ZTo6cmVwbGFjZVdpdGhPb3BzKCkKK3sKKyAgICByZXBs
YWNlV2l0aE9vcHMob3duZXIpOworfQorCiB2b2lkIFZhbHVlOjpkdW1wKFByaW50U3RyZWFtJiBv
dXQpIGNvbnN0CiB7CiAgICAgYm9vbCBpc0NvbnN0YW50ID0gZmFsc2U7CkBAIC0xODksNiArMjMy
LDE5IEBAIHZvaWQgVmFsdWU6OmRlZXBEdW1wKGNvbnN0IFByb2NlZHVyZSogcHIKICAgICBvdXQu
cHJpbnQoIikiKTsKIH0KIAordm9pZCBWYWx1ZTo6ZHVtcFN1Y2Nlc3NvcnMoY29uc3QgQmFzaWNC
bG9jayogYmxvY2ssIFByaW50U3RyZWFtJiBvdXQpIGNvbnN0Cit7CisgICAgLy8gTm90ZSB0aGF0
IHRoaXMgbXVzdCBub3QgY3Jhc2ggaWYgd2UgaGF2ZSB0aGUgd3JvbmcgbnVtYmVyIG9mIHN1Y2Nl
c3NvcnMsIHNpbmNlIHNvbWVvbmUKKyAgICAvLyBkZWJ1Z2dpbmcgYSBudW1iZXItb2Ytc3VjY2Vz
c29ycyBidWcgd2lsbCBwcm9iYWJseSB3YW50IHRvIGR1bXAgSVIhCisgICAgCisgICAgaWYgKG9w
Y29kZSgpID09IEJyYW5jaCAmJiBibG9jay0+bnVtU3VjY2Vzc29ycygpID09IDIpIHsKKyAgICAg
ICAgb3V0LnByaW50KCJUaGVuOiIsIGJsb2NrLT50YWtlbigpLCAiLCBFbHNlOiIsIGJsb2NrLT5u
b3RUYWtlbigpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICBvdXQucHJpbnQo
bGlzdER1bXAoYmxvY2stPnN1Y2Nlc3NvcnMoKSkpOworfQorCiBWYWx1ZSogVmFsdWU6Om5lZ0Nv
bnN0YW50KFByb2NlZHVyZSYpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC01NTIs
NiArNjA4LDcgQEAgRWZmZWN0cyBWYWx1ZTo6ZWZmZWN0cygpIGNvbnN0CiAgICAgY2FzZSBKdW1w
OgogICAgIGNhc2UgQnJhbmNoOgogICAgIGNhc2UgU3dpdGNoOgorICAgIGNhc2UgUG9seUp1bXA6
CiAgICAgY2FzZSBSZXR1cm46CiAgICAgY2FzZSBPb3BzOgogICAgICAgICByZXN1bHQudGVybWlu
YWwgPSB0cnVlOwpAQCAtNzEzLDYgKzc3MCwxMCBAQCBUeXBlIFZhbHVlOjp0eXBlRm9yKE9wY29k
ZSBvcGNvZGUsIFZhbHVlCiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIFZvaWQ7CiAgICAgY2Fz
ZSBOb3A6CisgICAgY2FzZSBKdW1wOgorICAgIGNhc2UgQnJhbmNoOgorICAgIGNhc2UgUmV0dXJu
OgorICAgIGNhc2UgT29wczoKICAgICAgICAgcmV0dXJuIFZvaWQ7CiAgICAgY2FzZSBTZWxlY3Q6
CiAgICAgICAgIEFTU0VSVChzZWNvbmRDaGlsZCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNWYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1ZhbHVlLmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1ZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkFp
ckFyZy5oIgogI2luY2x1ZGUgIkIzRWZmZWN0cy5oIgorI2luY2x1ZGUgIkIzRnJlcXVlbnRlZEJs
b2NrLmgiCiAjaW5jbHVkZSAiQjNPcGNvZGUuaCIKICNpbmNsdWRlICJCM09yaWdpbi5oIgogI2lu
Y2x1ZGUgIkIzU3BhcnNlQ29sbGVjdGlvbi5oIgpAQCAtMTA5LDkgKzExMCwxOSBAQCBwdWJsaWM6
CiAgICAgdm9pZCByZXBsYWNlV2l0aE5vcElnbm9yaW5nVHlwZSgpOwogICAgIAogICAgIHZvaWQg
cmVwbGFjZVdpdGhQaGkoKTsKKyAgICAKKyAgICAvLyBUaGVzZSB0cmFuc2Zvcm1hdGlvbnMgYXJl
IG9ubHkgdmFsaWQgZm9yIHRlcm1pbmFscy4KKyAgICB2b2lkIHJlcGxhY2VXaXRoSnVtcChCYXNp
Y0Jsb2NrKiBvd25lciwgY29uc3QgRnJlcXVlbnRlZEJsb2NrJik7CisgICAgdm9pZCByZXBsYWNl
V2l0aE9vcHMoQmFzaWNCbG9jayogb3duZXIpOworICAgIAorICAgIC8vIFlvdSBjYW4gdXNlIHRo
aXMgZm9ybSBpZiBvd25lcnMgYXJlIHZhbGlkLiBUaGV5J3JlIHVzdWFsbHkgbm90IHZhbGlkLgor
ICAgIHZvaWQgcmVwbGFjZVdpdGhKdW1wKGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYpOworICAgIHZv
aWQgcmVwbGFjZVdpdGhPb3BzKCk7CiAKICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25z
dDsKICAgICB2b2lkIGRlZXBEdW1wKGNvbnN0IFByb2NlZHVyZSosIFByaW50U3RyZWFtJikgY29u
c3Q7CisgICAgCisgICAgdmlydHVhbCB2b2lkIGR1bXBTdWNjZXNzb3JzKGNvbnN0IEJhc2ljQmxv
Y2sqLCBQcmludFN0cmVhbSYpIGNvbnN0OwogCiAgICAgLy8gVGhpcyBpcyBob3cgeW91IGNhc3Qg
VmFsdWVzLiBGb3IgZXhhbXBsZSwgaWYgeW91IHdhbnQgdG8gZG8gc29tZXRoaW5nIHByb3ZpZGVk
IHRoYXQgd2UgaGF2ZSBhCiAgICAgLy8gQXJndW1lbnRSZWdWYWx1ZSwgeW91IGNhbiBkbzoKQEAg
LTIyMyw3ICsyMzQsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0xpa2VOb25aZXJvKCkgY29uc3Qg
eyByZXR1cm4gYXNUcmlTdGF0ZSgpID09IFRydWVUcmlTdGF0ZTsgfQogCiAgICAgRWZmZWN0cyBl
ZmZlY3RzKCkgY29uc3Q7Ci0KKyAgICAKICAgICAvLyBUaGlzIHJldHVybnMgYSBWYWx1ZUtleSB0
aGF0IGRlc2NyaWJlcyB0aGF0IHRoaXMgVmFsdWUgcmV0dXJucyB3aGVuIGl0IGV4ZWN1dGVzLiBS
ZXR1cm5zIGFuCiAgICAgLy8gZW1wdHkgVmFsdWVLZXkgaWYgdGhpcyBWYWx1ZSBpcyBpbXB1cmUu
IE5vdGUgdGhhdCBhbiBvcGVyYXRpb24gdGhhdCByZXR1cm5zIFZvaWQgY291bGQgc3RpbGwKICAg
ICAvLyBoYXZlIGEgbm9uLWVtcHR5IFZhbHVlS2V5LiBUaGlzIGhhcHBlbnMgZm9yIGV4YW1wbGUg
d2l0aCBDaGVjayBvcGVyYXRpb25zLgpAQCAtMjY0LDYgKzI3NSw4IEBAIHByaXZhdGU6CiAgICAg
ICAgIGNhc2UgRnJhbWVQb2ludGVyOgogICAgICAgICBjYXNlIE5vcDoKICAgICAgICAgY2FzZSBQ
aGk6CisgICAgICAgIGNhc2UgSnVtcDoKKyAgICAgICAgY2FzZSBPb3BzOgogICAgICAgICAgICAg
aWYgKFVOTElLRUxZKG51bUFyZ3MpKQogICAgICAgICAgICAgICAgIGJhZE9wY29kZShvcGNvZGUs
IG51bUFyZ3MpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0yODQsNiArMjk3LDggQEAgcHJpdmF0
ZToKICAgICAgICAgY2FzZSBEb3VibGVUb0Zsb2F0OgogICAgICAgICBjYXNlIElUb0Y6CiAgICAg
ICAgIGNhc2UgQml0d2lzZUNhc3Q6CisgICAgICAgIGNhc2UgQnJhbmNoOgorICAgICAgICBjYXNl
IFJldHVybjoKICAgICAgICAgICAgIGlmIChVTkxJS0VMWShudW1BcmdzICE9IDEpKQogICAgICAg
ICAgICAgICAgIGJhZE9wY29kZShvcGNvZGUsIG51bUFyZ3MpOwogICAgICAgICAgICAgYnJlYWs7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcAkocmV2aXNpb24gMjAyODA5KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMzLDggKzMzLDggQEAKICNpbmNsdWRlICJCM0NvbXB1dGVEaXZpc2lvbk1hZ2ljLmgiCiAjaW5j
bHVkZSAiQjNDb25zdDMyVmFsdWUuaCIKICNpbmNsdWRlICJCM0NvbnN0UHRyVmFsdWUuaCIKLSNp
bmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzRWZmZWN0cy5oIgorI2luY2x1
ZGUgIkIzUG9seUp1bXBWYWx1ZS5oIgogI2luY2x1ZGUgIkIzTWF0aEV4dHJhcy5oIgogI2luY2x1
ZGUgIkIzTWVtb3J5VmFsdWUuaCIKICNpbmNsdWRlICJCM1Byb2NlZHVyZS5oIgpAQCAtNDYsNiAr
NDYsNyBAQAogI2luY2x1ZGUgIkIzVXBzaWxvblZhbHVlLmgiCiAjaW5jbHVkZSAiQjNWYWxpZGF0
ZS5oIgogI2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCisjaW5jbHVkZSAiQjNWYXJpYWJsZVZh
bHVlLmgiCiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiSW5pdGlhbGl6ZVRo
cmVhZGluZy5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKQEAgLTU0LDYgKzU1LDcgQEAKICNp
bmNsdWRlICJWTS5oIgogI2luY2x1ZGUgPGNtYXRoPgogI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNs
dWRlIDx3dGYvTGlzdER1bXAuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0
Zi9OdW1iZXJPZkNvcmVzLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgpAQCAtNzUsNiAr
NzcsMTEgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzo6QjM7CiAKIG5hbWVzcGFjZSB7CiAKK2Jvb2wg
c2hvdWxkQmVWZXJib3NlKCkKK3sKKyAgICByZXR1cm4gc2hvdWxkRHVtcElSKEIzTW9kZSk7Cit9
CisKIFN0YXRpY0xvY2sgY3Jhc2hMb2NrOwogCiAvLyBOb3RoaW5nIGZhbmN5IGZvciBub3c7IHdl
IGp1c3QgdXNlIHRoZSBleGlzdGluZyBXVEYgYXNzZXJ0aW9uIG1hY2hpbmVyeS4KQEAgLTE5NCw3
ICsyMDEsNyBAQCB2b2lkIHRlc3Q0MigpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogY29uc3Q0MiA9IHJvb3Qt
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0Mik7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY29uc3Q0Mik7
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IGNvbnN0NDIpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MpID09IDQyKTsK
IH0KQEAgLTIwNCw3ICsyMTEsNyBAQCB2b2lkIHRlc3RMb2FkNDIoKQogICAgIFByb2NlZHVyZSBw
cm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgaW50IHgg
PSA0MjsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2Fk
LCBJbnQzMiwgT3JpZ2luKCksCkBAIC0yMjAsNyArMjI3LDcgQEAgdm9pZCB0ZXN0TG9hZFdpdGhP
ZmZzZXRJbXBsKGludDMyX3Qgb2ZmcwogICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwogICAgICAgICBpbnQ2NF90IHggPSAtNDI7CiAgICAgICAgIFZhbHVlKiBiYXNl
ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApOwotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlW
YWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgTG9hZCwgSW50NjQsIE9yaWdpbigpLApAQCAt
MjM1LDcgKzI0Miw3IEBAIHZvaWQgdGVzdExvYWRXaXRoT2Zmc2V0SW1wbChpbnQzMl90IG9mZnMK
ICAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICAgICAgaW50
MzJfdCB4ID0gLTQyOwogICAgICAgICBWYWx1ZSogYmFzZSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgICAg
IHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwKQEAgLTI4OCw3ICsyOTUsNyBAQCB2b2lkIHRl
c3RBcmcoaW50IGFyZ3VtZW50KQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogCkBAIC0yOTksNyAr
MzA2LDcgQEAgdm9pZCB0ZXN0UmV0dXJuQ29uc3Q2NChpbnQ2NF90IHZhbHVlKQogewogICAgIFBy
b2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpKTsKIApAQCAt
MzExLDcgKzMxOCw3IEBAIHZvaWQgdGVzdEFkZEFyZyhpbnQgYSkKICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2
YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
R1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBP
cmlnaW4oKSwgdmFsdWUsIHZhbHVlKSk7CiAKQEAgLTMyMiw3ICszMjksNyBAQCB2b2lkIHRlc3RB
ZGRBcmdzKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCkBAIC0zMzYsNyArMzQzLDcgQEAgdm9pZCB0ZXN0
QWRkQXJnSW1tKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCkBAIC0zNTAsNyArMzU3LDcgQEAgdm9pZCB0
ZXN0QWRkSW1tQXJnKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCkBAIC0zNzAsNyArMzc3LDcgQEAgdm9p
ZCB0ZXN0QWRkQXJnTWVtKGludDY0X3QgYSwgaW50NjRfdCBiKQogICAgICAgICByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCksCiAgICAgICAgIGxvYWQpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4o
cHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBpbnQ2NF90IGlucHV0T3V0cHV0
ID0gYjsKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCBhLCAmaW5wdXRP
dXRwdXQpKTsKQEAgLTM4Niw3ICszOTMsNyBAQCB2b2lkIHRlc3RBZGRNZW1BcmcoaW50NjRfdCBh
LCBpbnQ2NF90IGIpCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQWRkLCBPcmlnaW4oKSwKICAgICAgICAgbG9hZCwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjEpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2
NF90Pihwcm9jLCAmYSwgYikgPT0gYSArIGIpOwogfQpAQCAtNDAxLDcgKzQwOCw3IEBAIHZvaWQg
dGVzdEFkZEltbU1lbShpbnQ2NF90IGEsIGludDY0X3QgYikKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpLAogICAgICAgICBsb2FkKTsKICAg
ICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVz
dWx0LCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
MCkpOwogCiAgICAgaW50NjRfdCBpbnB1dE91dHB1dCA9IGI7CiAgICAgQ0hFQ0soIWNvbXBpbGVB
bmRSdW48aW50Pihwcm9jLCAmaW5wdXRPdXRwdXQpKTsKQEAgLTQxNCw3ICs0MjEsNyBAQCB2b2lk
IHRlc3RBZGRBcmczMihpbnQgYSkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwogICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1
bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCB2YWx1ZSwgdmFsdWUpKTsKIApAQCAtNDI1LDcgKzQz
Miw3IEBAIHZvaWQgdGVzdEFkZEFyZ3MzMihpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJl
IHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAtNDQ5LDcg
KzQ1Niw3IEBAIHZvaWQgdGVzdEFkZEFyZ01lbTMyKGludDMyX3QgYSwgaW50MzJfdCAKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBhcmd1bWVudCwgbG9hZCk7CiAgICAgcm9vdC0+
YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgYWRk
cmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDAp
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAog
ICAgIGludDMyX3QgaW5wdXRPdXRwdXQgPSBiOwogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGlu
dDMyX3Q+KHByb2MsIGEsICZpbnB1dE91dHB1dCkpOwpAQCAtNDY1LDcgKzQ3Miw3IEBAIHZvaWQg
dGVzdEFkZE1lbUFyZzMyKGludDMyX3QgYSwgaW50MzJfdCAKICAgICBWYWx1ZSogYXJndW1lbnQg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjEpKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBsb2FkLCBhcmd1bWVudCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgJmEsIGIpID09
IGEgKyBiKTsKIH0KQEAgLTQ4MCw3ICs0ODcsNyBAQCB2b2lkIHRlc3RBZGRJbW1NZW0zMihpbnQz
Ml90IGEsIGludDMyX3QgCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBhKSwKICAgICAgICAgbG9hZCk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1l
bW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgYWRkcmVzcyk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9v
dC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGludDMyX3Qg
aW5wdXRPdXRwdXQgPSBiOwogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludD4ocHJvYywgJmlu
cHV0T3V0cHV0KSk7CkBAIC00OTUsNyArNTAyLDcgQEAgdm9pZCB0ZXN0QWRkQXJnWmVyb0ltbVpE
ZWYoKQogICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIwKSk7CiAgICAgVmFsdWUqIGNvbnN0WmVybyA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCAwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAtNTE1LDcgKzUyMiw3IEBAIHZvaWQgdGVzdEFkZExv
YWRUd2ljZSgpCiAgICAgICAgIFZhbHVlKiBsb2FkID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZh
bHVlPigKICAgICAgICAgICAgIHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwKICAgICAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJnZhbHVl
KSk7Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdp
bigpLCBsb2FkLCBsb2FkKSk7CiAKQEAgLTUzMiw3ICs1MzksNyBAQCB2b2lkIHRlc3RBZGRBcmdE
b3VibGUoZG91YmxlIGEpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIHZhbHVlLCB2YWx1ZSkp
OwogCkBAIC01NDUsNyArNTUyLDcgQEAgdm9pZCB0ZXN0QWRkQXJnc0RvdWJsZShkb3VibGUgYSwg
ZG91YmxlIAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFs
dWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1
bWVudEZQUjEpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCB2YWx1
ZUEsIHZhbHVlQikpOwogCkBAIC01NTgsNyArNTY1LDcgQEAgdm9pZCB0ZXN0QWRkQXJnSW1tRG91
YmxlKGRvdWJsZSBhLCBkb3VibAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogdmFs
dWVCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBi
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1
ZUIpKTsKIApAQCAtNTcxLDcgKzU3OCw3IEBAIHZvaWQgdGVzdEFkZEltbUFyZ0RvdWJsZShkb3Vi
bGUgYSwgZG91YmwKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAg
IFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAK
QEAgLTU4NCw3ICs1OTEsNyBAQCB2b2lkIHRlc3RBZGRJbW1zRG91YmxlKGRvdWJsZSBhLCBkb3Vi
bGUgCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSog
dmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBhKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBiKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBP
cmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtNjAwLDcgKzYwNyw3IEBAIHZvaWQgdGVz
dEFkZEFyZ0Zsb2F0KGZsb2F0IGEpCiAgICAgVmFsdWUqIGZsb2F0VmFsdWUgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAg
ICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmln
aW4oKSwgZmxvYXRWYWx1ZSwgZmxvYXRWYWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBp
bGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lz
ZV9jYXN0PGludDMyX3Q+KGEgKyBhKSkpOwpAQCAtNjE4LDcgKzYyNSw3IEBAIHZvaWQgdGVzdEFk
ZEFyZ3NGbG9hdChmbG9hdCBhLCBmbG9hdCBiKQogICAgIFZhbHVlKiBmbG9hdFZhbHVlMiA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVu
dDJpbnQzMik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQWRkLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZTEsIGZsb2F0VmFsdWUyKTsKICAgICBWYWx1ZSog
cmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmln
aW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRl
bnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+
KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAr
IGIpKSk7CiB9CkBAIC02MzMsNyArNjQwLDcgQEAgdm9pZCB0ZXN0QWRkQXJnSW1tRmxvYXQoZmxv
YXQgYSwgZmxvYXQgYgogICAgIFZhbHVlKiBjb25zdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENv
bnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiByZXN1bHQgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGZsb2F0VmFsdWUsIGNv
bnN0VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9j
LCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSArIGIp
KSk7CiB9CkBAIC02NDgsNyArNjU1LDcgQEAgdm9pZCB0ZXN0QWRkSW1tQXJnRmxvYXQoZmxvYXQg
YSwgZmxvYXQgYgogICAgIFZhbHVlKiBjb25zdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0
RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGNvbnN0VmFsdWUsIGZsb2F0
VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIp
OwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBi
aXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSArIGIpKSk7
CiB9CkBAIC02NjEsNyArNjY4LDcgQEAgdm9pZCB0ZXN0QWRkSW1tc0Zsb2F0KGZsb2F0IGEsIGZs
b2F0IGIpCiAgICAgVmFsdWUqIGNvbnN0VmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0Rmxv
YXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGNvbnN0VmFsdWUxLCBjb25zdFZh
bHVlMik7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7
CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MpLCBi
aXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSArIGIpKSk7CiB9CkBAIC02NzcsNyArNjg0LDcgQEAgdm9p
ZCB0ZXN0QWRkQXJnRmxvYXRXaXRoVXNlbGVzc0RvdWJsZUNvbgogICAgIFZhbHVlKiByZXN1bHQg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGFzRG91YmxlLCBh
c0RvdWJsZSk7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICBWYWx1ZSogcmVz
dWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4o
KSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJ
ZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJf
dD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSArIGEpKSk7CiB9CkBAIC02OTcsNyArNzA0
LDcgQEAgdm9pZCB0ZXN0QWRkQXJnc0Zsb2F0V2l0aFVzZWxlc3NEb3VibGVDbwogICAgIFZhbHVl
KiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGFz
RG91YmxlMSwgYXNEb3VibGUyKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCByZXN1bHQpOwogICAg
IFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNh
c3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAg
ICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2Vf
Y2FzdDxpbnQzMl90PihhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0
PGludDMyX3Q+KGEgKyBiKSkpOwogfQpAQCAtNzE5LDcgKzcyNiw3IEBAIHZvaWQgdGVzdEFkZEFy
Z3NGbG9hdFdpdGhFZmZlY3RmdWxEb3VibGUKICAgICBWYWx1ZSogZG91YmxlQWRkcmVzcyA9IHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIyKTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0
b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBkb3VibGVBZGRyZXNzKTsKICAgICBWYWx1ZSogcmVzdWx0
MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwg
ZmxvYXRSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgZG91YmxlIGVmZmVj
dCA9IDA7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9j
LCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSwgJmVm
ZmVjdCksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhICsgYikpKTsKQEAgLTczMiw3ICs3MzksNyBA
QCB2b2lkIHRlc3RNdWxBcmcoaW50IGEpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIHZhbHVlLCB2YWx1ZSkpOwogCkBAIC03NTks
NyArNzY2LDcgQEAgdm9pZCB0ZXN0TXVsQXJnU3RvcmUoaW50IGEpCiAgICAgICAgIHByb2MsIFN0
b3JlLCBPcmlnaW4oKSwgbXVsLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksICZtdWxTbG90KSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAwKSk7CiAKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIGEp
KTsKQEAgLTc3NCw3ICs3ODEsNyBAQCB2b2lkIHRlc3RNdWxBZGRBcmcoaW50IGEpCiAgICAgVmFs
dWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgcHJvYywgVHJ1bmMs
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCkBAIC03ODgsNyArNzk1LDcgQEAg
dm9pZCB0ZXN0TXVsQXJncyhpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBNdWwsIE9yaWdpbigpLApAQCAtODAyLDcgKzgwOSw3IEBA
IHZvaWQgdGVzdE11bEFyZ0ltbShpbnQ2NF90IGEsIGludDY0X3QgYikKIHsKICAgICBQcm9jZWR1
cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIE11bCwgT3JpZ2luKCksCkBAIC04MTYs
NyArODIzLDcgQEAgdm9pZCB0ZXN0TXVsSW1tQXJnKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9j
ZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIE11bCwgT3JpZ2luKCksCkBAIC04
MzAsNyArODM3LDcgQEAgdm9pZCB0ZXN0TXVsQXJnczMyKGludCBhLCBpbnQgYikKIHsKICAgICBQ
cm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIE11bCwgT3JpZ2luKCksCkBA
IC04NTMsNyArODYwLDcgQEAgdm9pZCB0ZXN0TXVsTG9hZFR3aWNlKCkKICAgICAgICAgVmFsdWUq
IGxvYWQgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
TG9hZCwgSW50MzIsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0
UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAmdmFsdWUpKTsKLSAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGxvYWQsIGxvYWQpKTsKIApAQCAt
ODc1LDcgKzg4Miw3IEBAIHZvaWQgdGVzdE11bEFkZEFyZ3NMZWZ0KCkKICAgICBWYWx1ZSogYXJn
MiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BS
SW5mbzo6YXJndW1lbnRHUFIyKTsKICAgICBWYWx1ZSogbXVsdGlwbGllZCA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgYXJnMCwgYXJnMSk7CiAgICAgVmFsdWUq
IGFkZGVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBtdWx0
aXBsaWVkLCBhcmcyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBp
bGUocHJvYyk7CiAKQEAgLTg5OSw3ICs5MDYsNyBAQCB2b2lkIHRlc3RNdWxBZGRBcmdzUmlnaHQo
KQogICAgIFZhbHVlKiBhcmcyID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpOwogICAgIFZhbHVlKiBtdWx0aXBs
aWVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBhcmcxLCBh
cmcyKTsKICAgICBWYWx1ZSogYWRkZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFk
ZCwgT3JpZ2luKCksIGFyZzAsIG11bHRpcGxpZWQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOwogCiAgICAg
YXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAtOTI2LDcgKzkzMyw3IEBAIHZvaWQgdGVz
dE11bEFkZEFyZ3NMZWZ0MzIoKQogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMikpOwogICAgIFZhbHVl
KiBtdWx0aXBsaWVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigp
LCBhcmcwLCBhcmcxKTsKICAgICBWYWx1ZSogYWRkZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEFkZCwgT3JpZ2luKCksIG11bHRpcGxpZWQsIGFyZzIpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQp
OwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAtOTUzLDcgKzk2MCw3IEBA
IHZvaWQgdGVzdE11bEFkZEFyZ3NSaWdodDMyKCkKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpKTsK
ICAgICBWYWx1ZSogbXVsdGlwbGllZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVs
LCBPcmlnaW4oKSwgYXJnMSwgYXJnMik7CiAgICAgVmFsdWUqIGFkZGVkID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBhcmcwLCBtdWx0aXBsaWVkKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRl
ZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIGFkZGVkKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKQEAgLTk3Nyw3
ICs5ODQsNyBAQCB2b2lkIHRlc3RNdWxTdWJBcmdzTGVmdCgpCiAgICAgVmFsdWUqIGFyZzIgPSBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMik7CiAgICAgVmFsdWUqIG11bHRpcGxpZWQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGFyZzAsIGFyZzEpOwogICAgIFZhbHVlKiBhZGRl
ZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgbXVsdGlwbGll
ZCwgYXJnMik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgYWRkZWQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHBy
b2MpOwogCkBAIC0xMDAxLDcgKzEwMDgsNyBAQCB2b2lkIHRlc3RNdWxTdWJBcmdzUmlnaHQoKQog
ICAgIFZhbHVlKiBhcmcyID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpOwogICAgIFZhbHVlKiBtdWx0aXBsaWVk
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBhcmcxLCBhcmcy
KTsKICAgICBWYWx1ZSogYWRkZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1Yiwg
T3JpZ2luKCksIGFyZzAsIG11bHRpcGxpZWQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOwogCiAgICAgYXV0
byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAtMTAyOCw3ICsxMDM1LDcgQEAgdm9pZCB0ZXN0
TXVsU3ViQXJnc0xlZnQzMigpCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKSk7CiAgICAgVmFsdWUq
IG11bHRpcGxpZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCks
IGFyZzAsIGFyZzEpOwogICAgIFZhbHVlKiBhZGRlZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgU3ViLCBPcmlnaW4oKSwgbXVsdGlwbGllZCwgYXJnMik7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7
CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC0xMDU1LDcgKzEwNjIsNyBA
QCB2b2lkIHRlc3RNdWxTdWJBcmdzUmlnaHQzMigpCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKSk7
CiAgICAgVmFsdWUqIG11bHRpcGxpZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11
bCwgT3JpZ2luKCksIGFyZzEsIGFyZzIpOwogICAgIFZhbHVlKiBhZGRlZCA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgYXJnMCwgbXVsdGlwbGllZCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRk
ZWQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBhZGRlZCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC0xMDc5
LDcgKzEwODYsNyBAQCB2b2lkIHRlc3RNdWxOZWdBcmdzKCkKICAgICBWYWx1ZSogbXVsdGlwbGll
ZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgYXJnMCwgYXJn
MSk7CiAgICAgVmFsdWUqIHplcm8gPSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgMCk7CiAgICAgVmFsdWUqIGFkZGVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBTdWIsIE9yaWdpbigpLCB6ZXJvLCBtdWx0aXBsaWVkKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVk
KTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKQEAgLTExMDMsNyArMTExMCw3
IEBAIHZvaWQgdGVzdE11bE5lZ0FyZ3MzMigpCiAgICAgVmFsdWUqIG11bHRpcGxpZWQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGFyZzAsIGFyZzEpOwogICAg
IFZhbHVlKiB6ZXJvID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDApOwogICAgIFZhbHVlKiBhZGRlZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
U3ViLCBPcmlnaW4oKSwgemVybywgbXVsdGlwbGllZCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CiAKICAg
ICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC0xMTIwLDcgKzExMjcsNyBAQCB2b2lk
IHRlc3RNdWxBcmdEb3VibGUoZG91YmxlIGEpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWUgPSByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFy
Z3VtZW50RlBSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIHZh
bHVlLCB2YWx1ZSkpOwogCkBAIC0xMTMzLDcgKzExNDAsNyBAQCB2b2lkIHRlc3RNdWxBcmdzRG91
YmxlKGRvdWJsZSBhLCBkb3VibGUgCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiB2
YWx1ZUIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEZQUkluZm86OmFyZ3VtZW50RlBSMSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwg
T3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTExNDYsNyArMTE1Myw3IEBAIHZvaWQg
dGVzdE11bEFyZ0ltbURvdWJsZShkb3VibGUgYSwgZG91YmwKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7
CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgYik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2lu
KCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTExNTksNyArMTE2Niw3IEBAIHZvaWQgdGVzdE11
bEltbUFyZ0RvdWJsZShkb3VibGUgYSwgZG91YmwKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8Q29uc3RE
b3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFy
Z3VtZW50RlBSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIHZh
bHVlQSwgdmFsdWVCKSk7CiAKQEAgLTExNzIsNyArMTE3OSw3IEBAIHZvaWQgdGVzdE11bEltbXNE
b3VibGUoZG91YmxlIGEsIGRvdWJsZSAKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBl
bmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC0xMTg4
LDcgKzExOTUsNyBAQCB2b2lkIHRlc3RNdWxBcmdGbG9hdChmbG9hdCBhKQogICAgIFZhbHVlKiBm
bG9hdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3Jp
Z2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGZsb2F0VmFsdWUsIGZsb2F0VmFsdWUpOwogICAg
IFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNh
c3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAKICAgICBD
SEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2Fz
dDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhICogYSkpKTsKQEAgLTEyMDYs
NyArMTIxMyw3IEBAIHZvaWQgdGVzdE11bEFyZ3NGbG9hdChmbG9hdCBhLCBmbG9hdCBiKQogICAg
IFZhbHVlKiBmbG9hdFZhbHVlMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lz
ZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDJpbnQzMik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZTEsIGZs
b2F0VmFsdWUyKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJv
YywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBi
aXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAqIGIpKSk7CiB9CkBAIC0xMjIxLDcgKzEyMjgsNyBAQCB2
b2lkIHRlc3RNdWxBcmdJbW1GbG9hdChmbG9hdCBhLCBmbG9hdCBiCiAgICAgVmFsdWUqIGNvbnN0
VmFsdWUgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
Yik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVs
LCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSwgY29uc3RWYWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMy
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJl
c3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChj
b21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJp
dHdpc2VfY2FzdDxpbnQzMl90PihhICogYikpKTsKIH0KQEAgLTEyMzYsNyArMTI0Myw3IEBAIHZv
aWQgdGVzdE11bEltbUFyZ0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIKICAgICBWYWx1ZSogY29uc3RW
YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBh
KTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWws
IE9yaWdpbigpLCBjb25zdFZhbHVlLCBmbG9hdFZhbHVlKTsKICAgICBWYWx1ZSogcmVzdWx0MzIg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVz
dWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNv
bXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0
d2lzZV9jYXN0PGludDMyX3Q+KGEgKiBiKSkpOwogfQpAQCAtMTI0OSw3ICsxMjU2LDcgQEAgdm9p
ZCB0ZXN0TXVsSW1tc0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIpCiAgICAgVmFsdWUqIGNvbnN0VmFs
dWUyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIp
OwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwg
T3JpZ2luKCksIGNvbnN0VmFsdWUxLCBjb25zdFZhbHVlMik7CiAgICAgVmFsdWUqIHJlc3VsdDMy
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJl
c3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChj
b21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAqIGIp
KSk7CiB9CkBAIC0xMjY1LDcgKzEyNzIsNyBAQCB2b2lkIHRlc3RNdWxBcmdGbG9hdFdpdGhVc2Vs
ZXNzRG91YmxlQ29uCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgTXVsLCBPcmlnaW4oKSwgYXNEb3VibGUsIGFzRG91YmxlKTsKICAgICBWYWx1ZSogZmxv
YXRSZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9y
aWdpbigpLCByZXN1bHQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGlu
dDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQz
Ml90PihhICogYSkpKTsKIH0KQEAgLTEyODUsNyArMTI5Miw3IEBAIHZvaWQgdGVzdE11bEFyZ3NG
bG9hdFdpdGhVc2VsZXNzRG91YmxlQ28KICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBhc0RvdWJsZTEsIGFzRG91YmxlMik7CiAg
ICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3Vi
bGVUb0Zsb2F0LCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1
bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29t
cGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdp
c2VfY2FzdDxpbnQzMl90PihiKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhICogYikpKTsKIH0K
QEAgLTEzMDcsNyArMTMxNCw3IEBAIHZvaWQgdGVzdE11bEFyZ3NGbG9hdFdpdGhFZmZlY3RmdWxE
b3VibGUKICAgICBWYWx1ZSogZG91YmxlTXVscmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKTsKICAgICBy
b290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0
LCBkb3VibGVNdWxyZXNzKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0MzIpOwogCiAgICAgZG91YmxlIGVmZmVjdCA9IDA7CiAgICAgQ0hFQ0soaXNJ
ZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJf
dD4oYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSwgJmVmZmVjdCksIGJpdHdpc2VfY2FzdDxp
bnQzMl90PihhICogYikpKTsKQEAgLTEzMTksNyArMTMyNiw3IEBAIHZvaWQgdGVzdERpdkFyZ0Rv
dWJsZShkb3VibGUgYSkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwgdmFsdWUsIHZhbHVlKSk7
CiAKQEAgLTEzMzIsNyArMTMzOSw3IEBAIHZvaWQgdGVzdERpdkFyZ3NEb3VibGUoZG91YmxlIGEs
IGRvdWJsZSAKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZh
bHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJn
dW1lbnRGUFIxKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwgdmFs
dWVBLCB2YWx1ZUIpKTsKIApAQCAtMTM0NSw3ICsxMzUyLDcgQEAgdm9pZCB0ZXN0RGl2QXJnSW1t
RG91YmxlKGRvdWJsZSBhLCBkb3VibAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSog
dmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBiKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwgdmFsdWVBLCB2
YWx1ZUIpKTsKIApAQCAtMTM1OCw3ICsxMzY1LDcgQEAgdm9pZCB0ZXN0RGl2SW1tQXJnRG91Ymxl
KGRvdWJsZSBhLCBkb3VibAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIp
KTsKIApAQCAtMTM3MSw3ICsxMzc4LDcgQEAgdm9pZCB0ZXN0RGl2SW1tc0RvdWJsZShkb3VibGUg
YSwgZG91YmxlIAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAg
VmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERv
dWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IERpdiwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTEzODcsNyArMTM5NCw3IEBA
IHZvaWQgdGVzdERpdkFyZ0Zsb2F0KGZsb2F0IGEpCiAgICAgVmFsdWUqIGZsb2F0VmFsdWUgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1l
bnQzMik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
RGl2LCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSwgZmxvYXRWYWx1ZSk7CiAgICAgVmFsdWUqIHJlc3Vs
dDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCks
IHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKIAogICAgIENIRUNLKGlzSWRlbnRp
Y2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEp
KSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLyBhKSkpOwpAQCAtMTQwNSw3ICsxNDEyLDcgQEAg
dm9pZCB0ZXN0RGl2QXJnc0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIpCiAgICAgVmFsdWUqIGZsb2F0
VmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2lu
KCksIGFyZ3VtZW50MmludDMyKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBEaXYsIE9yaWdpbigpLCBmbG9hdFZhbHVlMSwgZmxvYXRWYWx1ZTIpOwog
ICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lz
ZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAg
Q0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nh
c3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSksIGJpdHdpc2VfY2FzdDxp
bnQzMl90PihhIC8gYikpKTsKIH0KQEAgLTE0MjAsNyArMTQyNyw3IEBAIHZvaWQgdGVzdERpdkFy
Z0ltbUZsb2F0KGZsb2F0IGEsIGZsb2F0IGIKICAgICBWYWx1ZSogY29uc3RWYWx1ZSA9IHJvb3Qt
PmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKICAgICBWYWx1
ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEaXYsIE9yaWdpbigpLCBm
bG9hdFZhbHVlLCBjb25zdFZhbHVlKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1
bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48
aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KGEgLyBiKSkpOwogfQpAQCAtMTQzNSw3ICsxNDQyLDcgQEAgdm9pZCB0ZXN0RGl2SW1t
QXJnRmxvYXQoZmxvYXQgYSwgZmxvYXQgYgogICAgIFZhbHVlKiBjb25zdFZhbHVlID0gcm9vdC0+
YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVl
KiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERpdiwgT3JpZ2luKCksIGNv
bnN0VmFsdWUsIGZsb2F0VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxp
bnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50
MzJfdD4oYSAvIGIpKSk7CiB9CkBAIC0xNDQ4LDcgKzE0NTUsNyBAQCB2b2lkIHRlc3REaXZJbW1z
RmxvYXQoZmxvYXQgYSwgZmxvYXQgYikKICAgICBWYWx1ZSogY29uc3RWYWx1ZTIgPSByb290LT5h
cHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7CiAgICAgVmFsdWUq
IHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwgY29u
c3RWYWx1ZTEsIGNvbnN0VmFsdWUyKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1
bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48
aW50MzJfdD4ocHJvYyksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhIC8gYikpKTsKIH0KQEAgLTE0
NTgsNyArMTQ2NSw3IEBAIHZvaWQgdGVzdE1vZEFyZ0RvdWJsZShkb3VibGUgYSkKICAgICBQcm9j
ZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAg
IFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgTW9kLCBPcmlnaW4oKSwgdmFsdWUsIHZhbHVlKSk7CiAKQEAgLTE0NzEsNyArMTQ3OCw3IEBA
IHZvaWQgdGVzdE1vZEFyZ3NEb3VibGUoZG91YmxlIGEsIGRvdWJsZSAKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50
RlBSMCk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIxKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTQ4
NCw3ICsxNDkxLDcgQEAgdm9pZCB0ZXN0TW9kQXJnSW1tRG91YmxlKGRvdWJsZSBhLCBkb3VibAog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVl
QSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBS
SW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3
PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTQ5Nyw3ICsx
NTA0LDcgQEAgdm9pZCB0ZXN0TW9kSW1tQXJnRG91YmxlKGRvdWJsZSBhLCBkb3VibAogICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJv
b3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAg
VmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgTW9kLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTUxMCw3ICsxNTE3LDcg
QEAgdm9pZCB0ZXN0TW9kSW1tc0RvdWJsZShkb3VibGUgYSwgZG91YmxlIAogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFw
cGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUq
IHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgYik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIHZhbHVlQSwg
dmFsdWVCKSk7CiAKQEAgLTE1MjYsNyArMTUzMyw3IEBAIHZvaWQgdGVzdE1vZEFyZ0Zsb2F0KGZs
b2F0IGEpCiAgICAgVmFsdWUqIGZsb2F0VmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUqIHJlc3Vs
dCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgZmxvYXRWYWx1
ZSwgZmxvYXRWYWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQzMik7CiAKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJf
dD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+
KHN0YXRpY19jYXN0PGZsb2F0PihmbW9kKGEsIGEpKSkpKTsKQEAgLTE1NDQsNyArMTU1MSw3IEBA
IHZvaWQgdGVzdE1vZEFyZ3NGbG9hdChmbG9hdCBhLCBmbG9hdCBiKQogICAgIFZhbHVlKiBmbG9h
dFZhbHVlMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdp
bigpLCBhcmd1bWVudDJpbnQzMik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZTEsIGZsb2F0VmFsdWUyKTsK
ICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdp
c2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAg
IENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9j
YXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KGZtb2QoYSwgYikpKSkpOwogfQpAQCAtMTU1OSw3
ICsxNTY2LDcgQEAgdm9pZCB0ZXN0TW9kQXJnSW1tRmxvYXQoZmxvYXQgYSwgZmxvYXQgYgogICAg
IFZhbHVlKiBjb25zdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIGZsb2F0VmFsdWUsIGNvbnN0VmFsdWUpOwogICAgIFZh
bHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3Qs
IE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0so
aXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50
MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KGZtb2Qo
YSwgYikpKSkpOwogfQpAQCAtMTU3NCw3ICsxNTgxLDcgQEAgdm9pZCB0ZXN0TW9kSW1tQXJnRmxv
YXQoZmxvYXQgYSwgZmxvYXQgYgogICAgIFZhbHVlKiBjb25zdFZhbHVlID0gcm9vdC0+YXBwZW5k
TmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiByZXN1
bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIGNvbnN0VmFs
dWUsIGZsb2F0VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90
Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4o
c3RhdGljX2Nhc3Q8ZmxvYXQ+KGZtb2QoYSwgYikpKSkpOwogfQpAQCAtMTU4Nyw3ICsxNTk0LDcg
QEAgdm9pZCB0ZXN0TW9kSW1tc0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIpCiAgICAgVmFsdWUqIGNv
bnN0VmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIGIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IE1vZCwgT3JpZ2luKCksIGNvbnN0VmFsdWUxLCBjb25zdFZhbHVlMik7CiAgICAgVmFsdWUqIHJl
c3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2lu
KCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50
aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4o
c3RhdGljX2Nhc3Q8ZmxvYXQ+KGZtb2QoYSwgYikpKSkpOwogfQpAQCAtMTYwMyw3ICsxNjEwLDcg
QEAgdm9pZCB0ZXN0RGl2QXJnRmxvYXRXaXRoVXNlbGVzc0RvdWJsZUNvbgogICAgIFZhbHVlKiBy
ZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERpdiwgT3JpZ2luKCksIGFzRG91
YmxlLCBhc0RvdWJsZSk7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICBWYWx1
ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBP
cmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hF
Q0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAvIGEpKSk7CiB9CkBAIC0xNjIz
LDcgKzE2MzAsNyBAQCB2b2lkIHRlc3REaXZBcmdzRmxvYXRXaXRoVXNlbGVzc0RvdWJsZUNvCiAg
ICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRGl2LCBPcmln
aW4oKSwgYXNEb3VibGUxLCBhc0RvdWJsZTIpOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIHJlc3Vs
dCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBC
aXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMy
KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywg
Yml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oYSAvIGIpKSk7CiB9CkBAIC0xNjQ1LDcgKzE2NTIsNyBAQCB2b2lk
IHRlc3REaXZBcmdzRmxvYXRXaXRoRWZmZWN0ZnVsRG91YmxlCiAgICAgVmFsdWUqIGRvdWJsZURp
dnJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMik7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVl
Pihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgZG91YmxlRGl2cmVzcyk7CiAgICAgVmFs
dWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwg
T3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIGRv
dWJsZSBlZmZlY3QgPSAwOwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50
MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJf
dD4oYiksICZlZmZlY3QpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAvIGIpKSk7CkBAIC0xNjU3
LDcgKzE2NjQsNyBAQCB2b2lkIHRlc3RTdWJBcmcoaW50IGEpCiAgICAgUHJvY2VkdXJlIHByb2M7
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFs
dWUgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3Jp
Z2luKCksIHZhbHVlLCB2YWx1ZSkpOwogCkBAIC0xNjY4LDcgKzE2NzUsNyBAQCB2b2lkIHRlc3RT
dWJBcmdzKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIFN1YiwgT3JpZ2luKCksCkBAIC0xNjgyLDcgKzE2ODksNyBAQCB2b2lkIHRl
c3RTdWJBcmdJbW0oaW50NjRfdCBhLCBpbnQ2NF90IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTdWIsIE9yaWdpbigpLApAQCAtMTcwMyw3ICsxNzEw
LDcgQEAgdm9pZCB0ZXN0TmVnVmFsdWVTdWJPbmUoaW50IGEpCiAgICAgVmFsdWUqIG5lZ0FyZ3Vt
ZW50TWludXNPbmUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCks
CiAgICAgICAgIG5lZ0FyZ3VtZW50LAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIG5lZ0FyZ3VtZW50TWludXNPbmUpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBuZWdBcmd1
bWVudE1pbnVzT25lKTsKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywgYSkgPT0g
LWEgLSAxKTsKIH0KIApAQCAtMTcxMSw3ICsxNzE4LDcgQEAgdm9pZCB0ZXN0U3ViSW1tQXJnKGlu
dCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIFN1YiwgT3JpZ2luKCksCkBAIC0xNzMwLDcgKzE3MzcsNyBAQCB2b2lkIHRlc3RTdWJBcmdN
ZW0oaW50NjRfdCBhLCBpbnQ2NF90IGIpCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjAp
LAogICAgICAgICBsb2FkKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGls
ZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCBhLCAmYikgPT0gYSAtIGIpOwogfQpAQCAtMTc0NSw3ICsx
NzUyLDcgQEAgdm9pZCB0ZXN0U3ViTWVtQXJnKGludDY0X3QgYSwgaW50NjRfdCBiKQogICAgICAg
ICBsb2FkLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSkpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxN
ZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGFkZHJlc3MpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJv
b3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBpbnQ2NF90
IGlucHV0T3V0cHV0ID0gYTsKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9j
LCAmaW5wdXRPdXRwdXQsIGIpKTsKQEAgLTE3NjIsNyArMTc2OSw3IEBAIHZvaWQgdGVzdFN1Yklt
bU1lbShpbnQ2NF90IGEsIGludDY0X3QgYikKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0
NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpLAogICAgICAgICBsb2FkKTsKICAgICByb290LT5h
cHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBhZGRy
ZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAg
ICAgaW50NjRfdCBpbnB1dE91dHB1dCA9IGI7CiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50
Pihwcm9jLCAmaW5wdXRPdXRwdXQpKTsKQEAgLTE3NzksNyArMTc4Niw3IEBAIHZvaWQgdGVzdFN1
Yk1lbUltbShpbnQ2NF90IGEsIGludDY0X3QgYikKICAgICAgICAgbG9hZCwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpKTsKICAgICByb290
LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBh
ZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
MCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwog
CiAgICAgaW50NjRfdCBpbnB1dE91dHB1dCA9IGE7CiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48
aW50Pihwcm9jLCAmaW5wdXRPdXRwdXQpKTsKQEAgLTE3OTEsNyArMTc5OCw3IEBAIHZvaWQgdGVz
dFN1YkFyZ3MzMihpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBTdWIsIE9yaWdpbigpLApAQCAtMTgwOSw3ICsxODE2LDcgQEAgdm9p
ZCB0ZXN0U3ViQXJnSW1tMzIoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KAogICAgICAgICAgICAgcHJvYywgU3ViLCBPcmlnaW4oKSwKQEAgLTE4MjUsNyArMTgzMiw3
IEBAIHZvaWQgdGVzdFN1YkltbUFyZzMyKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUg
cHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFN1YiwgT3JpZ2luKCksCkBAIC0xODQ3LDcg
KzE4NTQsNyBAQCB2b2lkIHRlc3RTdWJNZW1BcmczMihpbnQzMl90IGEsIGludDMyX3QgCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BS
SW5mbzo6YXJndW1lbnRHUFIxKSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgbG9hZCwgYXJndW1lbnQpOwogICAgIHJvb3Qt
PmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGFk
ZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAw
KSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAK
ICAgICBpbnQzMl90IGlucHV0T3V0cHV0ID0gYTsKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxp
bnQzMl90Pihwcm9jLCAmaW5wdXRPdXRwdXQsIGIpKTsKQEAgLTE4NjMsNyArMTg3MCw3IEBAIHZv
aWQgdGVzdFN1YkFyZ01lbTMyKGludDMyX3QgYSwgaW50MzJfdCAKICAgICBWYWx1ZSogYXJndW1l
bnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBhcmd1bWVudCwgbG9hZCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYSwgJmIp
ID09IGEgLSBiKTsKIH0KQEAgLTE4NzgsNyArMTg4NSw3IEBAIHZvaWQgdGVzdFN1YkltbU1lbTMy
KGludDMyX3QgYSwgaW50MzJfdCAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIGEpLAogICAgICAgICBsb2FkKTsKICAgICByb290LT5hcHBlbmRO
ZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBhZGRyZXNzKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgaW50
MzJfdCBpbnB1dE91dHB1dCA9IGI7CiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50Pihwcm9j
LCAmaW5wdXRPdXRwdXQpKTsKQEAgLTE4OTUsNyArMTkwMiw3IEBAIHZvaWQgdGVzdFN1Yk1lbUlt
bTMyKGludDMyX3QgYSwgaW50MzJfdCAKICAgICAgICAgbG9hZCwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpKTsKICAgICByb290LT5hcHBl
bmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBhZGRyZXNz
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
b290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAg
aW50MzJfdCBpbnB1dE91dHB1dCA9IGE7CiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50Pihw
cm9jLCAmaW5wdXRPdXRwdXQpKTsKQEAgLTE5MTQsNyArMTkyMSw3IEBAIHZvaWQgdGVzdE5lZ1Zh
bHVlU3ViT25lMzIoaW50IGEpCiAgICAgVmFsdWUqIG5lZ0FyZ3VtZW50TWludXNPbmUgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksCiAgICAgICAgIG5lZ0FyZ3Vt
ZW50LAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgMSkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIG5lZ0FyZ3VtZW50TWludXNPbmUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBuZWdBcmd1bWVudE1pbnVzT25lKTsKICAg
ICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywgYSkgPT0gLWEgLSAxKTsKIH0KIApAQCAt
MTkyMyw3ICsxOTMwLDcgQEAgdm9pZCB0ZXN0U3ViQXJnRG91YmxlKGRvdWJsZSBhKQogICAgIFBy
b2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAg
ICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBTdWIsIE9yaWdpbigpLCB2YWx1ZSwgdmFsdWUpKTsKIApAQCAtMTkzNiw3ICsxOTQzLDcg
QEAgdm9pZCB0ZXN0U3ViQXJnc0RvdWJsZShkb3VibGUgYSwgZG91YmxlIAogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1l
bnRGUFIwKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjEpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC0x
OTQ5LDcgKzE5NTYsNyBAQCB2b2lkIHRlc3RTdWJBcmdJbW1Eb3VibGUoZG91YmxlIGEsIGRvdWJs
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFs
dWVBID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBG
UFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmRO
ZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC0xOTYyLDcg
KzE5NjksNyBAQCB2b2lkIHRlc3RTdWJJbW1BcmdEb3VibGUoZG91YmxlIGEsIGRvdWJsCiAgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0g
cm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAg
ICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBTdWIsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC0xOTc1LDcgKzE5ODIs
NyBAQCB2b2lkIHRlc3RTdWJJbW1zRG91YmxlKGRvdWJsZSBhLCBkb3VibGUgCiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+
YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1
ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBiKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgdmFsdWVB
LCB2YWx1ZUIpKTsKICAgICAKQEAgLTE5OTEsNyArMTk5OCw3IEBAIHZvaWQgdGVzdFN1YkFyZ0Zs
b2F0KGZsb2F0IGEpCiAgICAgVmFsdWUqIGZsb2F0VmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUq
IHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgZmxv
YXRWYWx1ZSwgZmxvYXRWYWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQzMik7CiAKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48
aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KGEgLSBhKSkpOwpAQCAtMjAwOSw3ICsyMDE2LDcgQEAgdm9pZCB0ZXN0U3ViQXJnc0Zs
b2F0KGZsb2F0IGEsIGZsb2F0IGIpCiAgICAgVmFsdWUqIGZsb2F0VmFsdWUyID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MmludDMy
KTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIs
IE9yaWdpbigpLCBmbG9hdFZhbHVlMSwgZmxvYXRWYWx1ZTIpOwogICAgIFZhbHVlKiByZXN1bHQz
MiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBy
ZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwo
Y29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJp
dHdpc2VfY2FzdDxpbnQzMl90PihiKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhIC0gYikpKTsK
IH0KQEAgLTIwMjQsNyArMjAzMSw3IEBAIHZvaWQgdGVzdFN1YkFyZ0ltbUZsb2F0KGZsb2F0IGEs
IGZsb2F0IGIKICAgICBWYWx1ZSogY29uc3RWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZs
b2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBmbG9hdFZhbHVlLCBjb25zdFZh
bHVlKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsK
IAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0
d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLSBiKSkpOwog
fQpAQCAtMjAzOSw3ICsyMDQ2LDcgQEAgdm9pZCB0ZXN0U3ViSW1tQXJnRmxvYXQoZmxvYXQgYSwg
ZmxvYXQgYgogICAgIFZhbHVlKiBjb25zdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0Rmxv
YXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIGNvbnN0VmFsdWUsIGZsb2F0VmFs
dWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
Qml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwog
CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAtIGIpKSk7CiB9
CkBAIC0yMDUyLDcgKzIwNTksNyBAQCB2b2lkIHRlc3RTdWJJbW1zRmxvYXQoZmxvYXQgYSwgZmxv
YXQgYikKICAgICBWYWx1ZSogY29uc3RWYWx1ZTIgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9h
dFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgY29uc3RWYWx1ZTEsIGNvbnN0VmFs
dWUyKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsK
IAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYyksIGJp
dHdpc2VfY2FzdDxpbnQzMl90PihhIC0gYikpKTsKIH0KQEAgLTIwNjgsNyArMjA3NSw3IEBAIHZv
aWQgdGVzdFN1YkFyZ0Zsb2F0V2l0aFVzZWxlc3NEb3VibGVDb24KICAgICBWYWx1ZSogcmVzdWx0
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBhc0RvdWJsZSwg
YXNEb3VibGUpOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgVmFsdWUqIHJl
c3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2lu
KCksIGZsb2F0UmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlz
SWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMy
X3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLSBhKSkpOwogfQpAQCAtMjA4OCw3ICsy
MDk1LDcgQEAgdm9pZCB0ZXN0U3ViQXJnc0Zsb2F0V2l0aFVzZWxlc3NEb3VibGVDbwogICAgIFZh
bHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCks
IGFzRG91YmxlMSwgYXNEb3VibGUyKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCByZXN1bHQpOwog
ICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lz
ZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAK
ICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdp
c2VfY2FzdDxpbnQzMl90PihhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0d2lzZV9j
YXN0PGludDMyX3Q+KGEgLSBiKSkpOwogfQpAQCAtMjExMCw3ICsyMTE3LDcgQEAgdm9pZCB0ZXN0
U3ViQXJnc0Zsb2F0V2l0aEVmZmVjdGZ1bERvdWJsZQogICAgIFZhbHVlKiBkb3VibGVTdWJyZXNz
ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjIpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJv
YywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGRvdWJsZVN1YnJlc3MpOwogICAgIFZhbHVlKiBy
ZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdp
bigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBkb3VibGUg
ZWZmZWN0ID0gMDsKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+
KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIp
LCAmZWZmZWN0KSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLSBiKSkpOwpAQCAtMjEyMSw3ICsy
MTI4LDcgQEAgdm9pZCB0ZXN0Qml0QW5kQXJncyhpbnQ2NF90IGEsIGludDY0X3QgYgogewogICAg
IFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4o
KSwKQEAgLTIxMzYsNyArMjE0Myw3IEBAIHZvaWQgdGVzdEJpdEFuZFNhbWVBcmcoaW50NjRfdCBh
KQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0yMTUw
LDcgKzIxNTcsNyBAQCB2b2lkIHRlc3RCaXRBbmRJbW1zKGludDY0X3QgYSwgaW50NjRfdCBiCiB7
CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9y
aWdpbigpLApAQCAtMjE2NCw3ICsyMTcxLDcgQEAgdm9pZCB0ZXN0Qml0QW5kQXJnSW1tKGludDY0
X3QgYSwgaW50NjRfdAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTIxNzgsNyArMjE4NSw3IEBAIHZvaWQgdGVzdEJp
dEFuZEltbUFyZyhpbnQ2NF90IGEsIGludDY0X3QKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0yMTk2LDcgKzIyMDMs
NyBAQCB2b2lkIHRlc3RCaXRBbmRCaXRBbmRBcmdJbW1JbW0oaW50NjRfdCBhCiAgICAgICAgIHBy
b2MsIEJpdEFuZCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAt
MjIxNCw3ICsyMjIxLDcgQEAgdm9pZCB0ZXN0Qml0QW5kSW1tQml0QW5kQXJnSW1tKGludDY0X3Qg
YQogICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BS
MCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigp
LCBjKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBP
cmlnaW4oKSwKQEAgLTIyMjgsNyArMjIzNSw3IEBAIHZvaWQgdGVzdEJpdEFuZEFyZ3MzMihpbnQg
YSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMjI0OCw3ICsyMjU1LDcgQEAgdm9pZCB0ZXN0Qml0QW5k
U2FtZUFyZzMyKGludCBhKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVu
YywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTIyNjIsNyArMjI2
OSw3IEBAIHZvaWQgdGVzdEJpdEFuZEltbXMzMihpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2Vk
dXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAt
MjI3Niw3ICsyMjgzLDcgQEAgdm9pZCB0ZXN0Qml0QW5kQXJnSW1tMzIoaW50IGEsIGludCBiKQog
ewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBP
cmlnaW4oKSwKQEAgLTIyOTIsNyArMjI5OSw3IEBAIHZvaWQgdGVzdEJpdEFuZEltbUFyZzMyKGlu
dCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0yMzE0LDcgKzIzMjEsNyBAQCB2b2lkIHRlc3RCaXRB
bmRCaXRBbmRBcmdJbW1JbW0zMihpbnQgYSwgCiAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3Jp
Z2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYikpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0yMzM0LDcgKzIz
NDEsNyBAQCB2b2lkIHRlc3RCaXRBbmRJbW1CaXRBbmRBcmdJbW0zMihpbnQgYSwgCiAgICAgICAg
ICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
YykpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3Jp
Z2luKCksCkBAIC0yMzYxLDcgKzIzNjgsNyBAQCB2b2lkIHRlc3RCaXRBbmRXaXRoTWFza1JldHVy
bnNCb29sZWFucyhpCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2Ms
IE9yaWdpbigpLCA0MiksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAtNSkpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2VsZWN0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2VsZWN0KTsKIAogICAgIGludDY0X3Qg
ZXhwZWN0ZWQgPSAoYSA9PSBiKSA/IC01IDogNDI7CiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxp
bnQ2NF90Pihwcm9jLCBhLCBiKSA9PSBleHBlY3RlZCk7CkBAIC0yMzc4LDcgKzIzODUsNyBAQCB2
b2lkIHRlc3RCaXRBbmRBcmdEb3VibGUoZG91YmxlIGEpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7
CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0QW5k
LCBPcmlnaW4oKSwgYXJndW1lbnQsIGFyZ3VtZW50KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAg
ICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIGEpLCBiaXRB
bmREb3VibGUoYSwgYSkpKTsKIH0KQEAgLTIzOTAsNyArMjM5Nyw3IEBAIHZvaWQgdGVzdEJpdEFu
ZEFyZ3NEb3VibGUoZG91YmxlIGEsIGRvdWIKICAgICBWYWx1ZSogYXJndW1lbnRBID0gcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1
bWVudEZQUjApOwogICAgIFZhbHVlKiBhcmd1bWVudEIgPSByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMSk7CiAgICAg
VmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0QW5kLCBPcmln
aW4oKSwgYXJndW1lbnRBLCBhcmd1bWVudEIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBD
SEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgYSwgYiksIGJpdEFu
ZERvdWJsZShhLCBiKSkpOwogfQpAQCAtMjQwMiw3ICsyNDA5LDcgQEAgdm9pZCB0ZXN0Qml0QW5k
QXJnSW1tRG91YmxlKGRvdWJsZSBhLCBkbwogICAgIFZhbHVlKiBhcmd1bWVudEEgPSByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3Vt
ZW50RlBSMCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50QiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERv
dWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0QW5kLCBPcmlnaW4oKSwgYXJndW1lbnRBLCBhcmd1
bWVudEIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21w
aWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgYSwgYiksIGJpdEFuZERvdWJsZShhLCBiKSkpOwogfQpA
QCAtMjQxNCw3ICsyNDIxLDcgQEAgdm9pZCB0ZXN0Qml0QW5kSW1tc0RvdWJsZShkb3VibGUgYSwg
ZG91YgogICAgIFZhbHVlKiBhcmd1bWVudEEgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiBhcmd1bWVudEIgPSByb290LT5h
cHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogICAgIFZhbHVl
KiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdEFuZCwgT3JpZ2luKCks
IGFyZ3VtZW50QSwgYXJndW1lbnRCKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0so
aXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MpLCBiaXRBbmREb3VibGUoYSwg
YikpKTsKIH0KQEAgLTI0MzIsNyArMjQzOSw3IEBAIHZvaWQgdGVzdEJpdEFuZEFyZ0Zsb2F0KGZs
b2F0IGEpCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdp
bigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0QW5kLCBPcmlnaW4oKSwgYXJndW1lbnQs
IGFyZ3VtZW50KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwo
Y29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0
QW5kRmxvYXQoYSwgYSkpKTsKIH0KQEAgLTI0NDgsNyArMjQ1NSw3IEBAIHZvaWQgdGVzdEJpdEFu
ZEFyZ3NGbG9hdChmbG9hdCBhLCBmbG9hdCAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSkpKTsK
ICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXRBbmQs
IE9yaWdpbigpLCBhcmd1bWVudEEsIGFyZ3VtZW50Qik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAog
ICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsIGJpdHdpc2Vf
Y2FzdDxpbnQzMl90PihhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0QW5kRmxvYXQo
YSwgYikpKTsKIH0KQEAgLTI0NjIsNyArMjQ2OSw3IEBAIHZvaWQgdGVzdEJpdEFuZEFyZ0ltbUZs
b2F0KGZsb2F0IGEsIGZsb2EKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSkpOwogICAgIFZh
bHVlKiBhcmd1bWVudEIgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgYik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQml0QW5kLCBPcmlnaW4oKSwgYXJndW1lbnRBLCBhcmd1bWVudEIpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJlc3VsdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihw
cm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSks
IGJpdEFuZEZsb2F0KGEsIGIpKSk7CiB9CkBAIC0yNDc0LDcgKzI0ODEsNyBAQCB2b2lkIHRlc3RC
aXRBbmRJbW1zRmxvYXQoZmxvYXQgYSwgZmxvYXQgCiAgICAgVmFsdWUqIGFyZ3VtZW50QSA9IHJv
b3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBW
YWx1ZSogYXJndW1lbnRCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEJpdEFuZCwgT3JpZ2luKCksIGFyZ3VtZW50QSwgYXJndW1lbnRCKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4o
cHJvYyksIGJpdEFuZEZsb2F0KGEsIGIpKSk7CiB9CkBAIC0yNDkzLDcgKzI1MDAsNyBAQCB2b2lk
IHRlc3RCaXRBbmRBcmdzRmxvYXRXaXRoVXNlbGVzc0RvdWJsCiAgICAgVmFsdWUqIGFyZ3VtZW50
QmFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBP
cmlnaW4oKSwgYXJndW1lbnRCKTsKICAgICBWYWx1ZSogZG91YmxlUmVzdWx0ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBCaXRBbmQsIE9yaWdpbigpLCBhcmd1bWVudEFhc0RvdWJsZSwg
YXJndW1lbnRCYXNEb3VibGUpOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIGRvdWJsZVJlc3VsdCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgZmxvYXRSZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CiAKICAgICBkb3VibGUgZG91YmxlQSA9IGE7
CiAgICAgZG91YmxlIGRvdWJsZUIgPSBiOwpAQCAtMjUwNSw3ICsyNTEyLDcgQEAgdm9pZCB0ZXN0
Qml0T3JBcmdzKGludDY0X3QgYSwgaW50NjRfdCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KAogICAgICAgICAgICAgcHJvYywgQml0T3IsIE9yaWdpbigpLApAQCAtMjUyMCw3ICsyNTI3
LDcgQEAgdm9pZCB0ZXN0Qml0T3JTYW1lQXJnKGludDY0X3QgYSkKICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBh
cmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCksCkBAIC0yNTM0LDcgKzI1NDEsNyBAQCB2b2lkIHRl
c3RCaXRPckltbXMoaW50NjRfdCBhLCBpbnQ2NF90IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCksCkBAIC0yNTQ4LDcgKzI1
NTUsNyBAQCB2b2lkIHRlc3RCaXRPckFyZ0ltbShpbnQ2NF90IGEsIGludDY0X3QgCiB7CiAgICAg
UHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCks
CkBAIC0yNTYyLDcgKzI1NjksNyBAQCB2b2lkIHRlc3RCaXRPckltbUFyZyhpbnQ2NF90IGEsIGlu
dDY0X3QgCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBC
aXRPciwgT3JpZ2luKCksCkBAIC0yNTgwLDcgKzI1ODcsNyBAQCB2b2lkIHRlc3RCaXRPckJpdE9y
QXJnSW1tSW1tKGludDY0X3QgYSwgCiAgICAgICAgIHByb2MsIEJpdE9yLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgYikpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIEJpdE9yLCBPcmlnaW4oKSwKQEAgLTI1OTgsNyArMjYwNSw3IEBAIHZvaWQgdGVz
dEJpdE9ySW1tQml0T3JBcmdJbW0oaW50NjRfdCBhLCAKICAgICAgICAgcHJvYywgQml0T3IsIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBjKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgQml0T3IsIE9yaWdpbigpLApAQCAtMjYxMiw3ICsyNjE5LDcg
QEAgdm9pZCB0ZXN0Qml0T3JBcmdzMzIoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBw
cm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0T3IsIE9yaWdpbigpLApAQCAtMjYzMyw3
ICsyNjQwLDcgQEAgdm9pZCB0ZXN0Qml0T3JTYW1lQXJnMzIoaW50IGEpCiAgICAgVmFsdWUqIGFy
Z3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgcHJvYywgVHJ1bmMsIE9y
aWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCksCkBAIC0yNjQ3LDcgKzI2NTQs
NyBAQCB2b2lkIHRlc3RCaXRPckltbXMzMihpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJl
IHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCksCkBAIC0yNjYx
LDcgKzI2NjgsNyBAQCB2b2lkIHRlc3RCaXRPckFyZ0ltbTMyKGludCBhLCBpbnQgYikKIHsKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdE9yLCBPcmlnaW4o
KSwKQEAgLTI2NzcsNyArMjY4NCw3IEBAIHZvaWQgdGVzdEJpdE9ySW1tQXJnMzIoaW50IGEsIGlu
dCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0
T3IsIE9yaWdpbigpLApAQCAtMjY5OSw3ICsyNzA2LDcgQEAgdm9pZCB0ZXN0Qml0T3JCaXRPckFy
Z0ltbUltbTMyKGludCBhLCBpbgogICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAog
ICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCksCkBAIC0yNzE5LDcgKzI3MjYsNyBAQCB2
b2lkIHRlc3RCaXRPckltbUJpdE9yQXJnSW1tMzIoaW50IGEsIGluCiAgICAgICAgICAgICBwcm9j
LCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYykpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdE9yLCBPcmlnaW4oKSwKQEAg
LTI3MzMsNyArMjc0MCw3IEBAIHZvaWQgdGVzdEJpdFhvckFyZ3MoaW50NjRfdCBhLCBpbnQ2NF90
IGIKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdFhv
ciwgT3JpZ2luKCksCkBAIC0yNzQ4LDcgKzI3NTUsNyBAQCB2b2lkIHRlc3RCaXRYb3JTYW1lQXJn
KGludDY0X3QgYSkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigp
LApAQCAtMjc2Miw3ICsyNzY5LDcgQEAgdm9pZCB0ZXN0Qml0WG9ySW1tcyhpbnQ2NF90IGEsIGlu
dDY0X3QgYgogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
Qml0WG9yLCBPcmlnaW4oKSwKQEAgLTI3NzYsNyArMjc4Myw3IEBAIHZvaWQgdGVzdEJpdFhvckFy
Z0ltbShpbnQ2NF90IGEsIGludDY0X3QKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCkBAIC0yNzkwLDcgKzI3OTcsNyBAQCB2
b2lkIHRlc3RCaXRYb3JJbW1BcmcoaW50NjRfdCBhLCBpbnQ2NF90CiB7CiAgICAgUHJvY2VkdXJl
IHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjgw
OCw3ICsyODE1LDcgQEAgdm9pZCB0ZXN0Qml0WG9yQml0WG9yQXJnSW1tSW1tKGludDY0X3QgYQog
ICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBi
KSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmln
aW4oKSwKQEAgLTI4MjYsNyArMjgzMyw3IEBAIHZvaWQgdGVzdEJpdFhvckltbUJpdFhvckFyZ0lt
bShpbnQ2NF90IGEKICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgYykpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IEJpdFhvciwgT3JpZ2luKCksCkBAIC0yODQwLDcgKzI4NDcsNyBAQCB2b2lkIHRlc3RCaXRYb3JB
cmdzMzIoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTI4NjEsNyArMjg2OCw3IEBAIHZvaWQg
dGVzdEJpdFhvclNhbWVBcmczMihpbnQgYSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KAogICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAg
ICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIEJpdFhvciwgT3JpZ2luKCksCkBAIC0yODc1LDcgKzI4ODIsNyBAQCB2b2lkIHRlc3RC
aXRYb3JJbW1zMzIoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAog
ICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTI4ODksNyArMjg5Niw3IEBA
IHZvaWQgdGVzdEJpdFhvckFyZ0ltbTMyKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUg
cHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCkBAIC0yOTA1
LDcgKzI5MTIsNyBAQCB2b2lkIHRlc3RCaXRYb3JJbW1BcmczMihpbnQgYSwgaW50IGIpCiB7CiAg
ICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdp
bigpLApAQCAtMjkyNyw3ICsyOTM0LDcgQEAgdm9pZCB0ZXN0Qml0WG9yQml0WG9yQXJnSW1tSW1t
MzIoaW50IGEsIAogICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIGIpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjk0Nyw3ICsyOTU0LDcgQEAgdm9pZCB0ZXN0
Qml0WG9ySW1tQml0WG9yQXJnSW1tMzIoaW50IGEsIAogICAgICAgICAgICAgcHJvYywgVHJ1bmMs
IE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGMpKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjk2MSw3
ICsyOTY4LDcgQEAgdm9pZCB0ZXN0Qml0Tm90QXJnKGludDY0X3QgYSkKIHsKICAgICBQcm9jZWR1
cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCkBAIC0y
OTc1LDcgKzI5ODIsNyBAQCB2b2lkIHRlc3RCaXROb3RJbW0oaW50NjRfdCBhKQogewogICAgIFBy
b2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwK
QEAgLTI5OTUsNyArMzAwMiw3IEBAIHZvaWQgdGVzdEJpdE5vdE1lbShpbnQ2NF90IGEpCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMSksCiAg
ICAgICAgIGxvYWQpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3Rv
cmUsIE9yaWdpbigpLCBub3RMb2FkLCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgaW50NjRfdCBpbnB1dCA9IGE7CiAgICAgY29t
cGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCAmaW5wdXQpOwpAQCAtMzAwOCw3ICszMDE1LDcgQEAg
dm9pZCB0ZXN0Qml0Tm90QXJnMzIoaW50MzJfdCBhKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdFhvciwgT3JpZ2luKCksCiAgICAgICAgICAgICBy
b290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTEpLApAQCAtMzAy
MCw3ICszMDI3LDcgQEAgdm9pZCB0ZXN0Qml0Tm90SW1tMzIoaW50MzJfdCBhKQogewogICAgIFBy
b2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwK
QEAgLTMwNDAsNyArMzA0Nyw3IEBAIHZvaWQgdGVzdEJpdE5vdE1lbTMyKGludDMyX3QgYSkKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xKSwK
ICAgICAgICAgbG9hZCk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBT
dG9yZSwgT3JpZ2luKCksIG5vdExvYWQsIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBpbnQzMl90IGlucHV0ID0gYTsKICAgICBj
b21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsICZpbnB1dCk7CkBAIC0zMDYzLDE2ICszMDcwLDE2
IEBAIHZvaWQgdGVzdEJpdE5vdE9uQm9vbGVhbkFuZEJyYW5jaDMyKGludDYKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xKSwKICAgICAgICAg
YXJnc0FyZUVxdWFsKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmln
aW4oKSwKICAgICAgICAgYXJnc0FyZU5vdEVxdWFsLAogICAgICAgICBGcmVxdWVudGVkQmxvY2so
dGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7CiAKLSAgICBlbHNl
Q2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxz
ZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAtNDIpKTsKIApA
QCAtMzA4NCw3ICszMDkxLDcgQEAgdm9pZCB0ZXN0U2hsQXJncyhpbnQ2NF90IGEsIGludDY0X3Qg
YikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNobCwg
T3JpZ2luKCksCkBAIC0zMTAwLDcgKzMxMDcsNyBAQCB2b2lkIHRlc3RTaGxJbW1zKGludDY0X3Qg
YSwgaW50NjRfdCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgU2hsLCBPcmlnaW4oKSwKQEAgLTMxMTQsNyArMzEyMSw3IEBAIHZvaWQgdGVzdFNobEFy
Z0ltbShpbnQ2NF90IGEsIGludDY0X3QgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIFNobCwgT3JpZ2luKCksCkBAIC0zMTMxLDcgKzMxMzgsNyBAQCB2
b2lkIHRlc3RTaGxBcmczMihpbnQzMl90IGEpCiAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTaGwsIE9yaWdpbigp
LCB2YWx1ZSwgdmFsdWUpKTsKIApAQCAtMzE0Miw3ICszMTQ5LDcgQEAgdm9pZCB0ZXN0U2hsQXJn
czMyKGludDMyX3QgYSwgaW50MzJfdCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAog
ICAgICAgICAgICAgcHJvYywgU2hsLCBPcmlnaW4oKSwKQEAgLTMxNjAsNyArMzE2Nyw3IEBAIHZv
aWQgdGVzdFNobEltbXMzMihpbnQzMl90IGEsIGludDMyX3QgYikKIHsKICAgICBQcm9jZWR1cmUg
cHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNobCwgT3JpZ2luKCksCkBAIC0zMTc0LDcg
KzMxODEsNyBAQCB2b2lkIHRlc3RTaGxBcmdJbW0zMihpbnQzMl90IGEsIGludDMyX3QgCiB7CiAg
ICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTaGwsIE9yaWdpbigp
LApAQCAtMzE5MCw3ICszMTk3LDcgQEAgdm9pZCB0ZXN0U1NockFyZ3MoaW50NjRfdCBhLCBpbnQ2
NF90IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBT
U2hyLCBPcmlnaW4oKSwKQEAgLTMyMDYsNyArMzIxMyw3IEBAIHZvaWQgdGVzdFNTaHJJbW1zKGlu
dDY0X3QgYSwgaW50NjRfdCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgcHJvYywgU1NociwgT3JpZ2luKCksCkBAIC0zMjIwLDcgKzMyMjcsNyBAQCB2b2lkIHRl
c3RTU2hyQXJnSW1tKGludDY0X3QgYSwgaW50NjRfdCBiCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTU2hyLCBPcmlnaW4oKSwKQEAgLTMyMzcsNyArMzI0
NCw3IEBAIHZvaWQgdGVzdFNTaHJBcmczMihpbnQzMl90IGEpCiAgICAgVmFsdWUqIHZhbHVlID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTU2hy
LCBPcmlnaW4oKSwgdmFsdWUsIHZhbHVlKSk7CiAKQEAgLTMyNDgsNyArMzI1NSw3IEBAIHZvaWQg
dGVzdFNTaHJBcmdzMzIoaW50MzJfdCBhLCBpbnQzMl90IGIKIHsKICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNTaHIsIE9yaWdpbigpLApAQCAtMzI2Niw3ICsz
MjczLDcgQEAgdm9pZCB0ZXN0U1NockltbXMzMihpbnQzMl90IGEsIGludDMyX3QgYgogewogICAg
IFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU1NociwgT3JpZ2luKCks
CkBAIC0zMjgwLDcgKzMyODcsNyBAQCB2b2lkIHRlc3RTU2hyQXJnSW1tMzIoaW50MzJfdCBhLCBp
bnQzMl90CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBT
U2hyLCBPcmlnaW4oKSwKQEAgLTMyOTYsNyArMzMwMyw3IEBAIHZvaWQgdGVzdFpTaHJBcmdzKHVp
bnQ2NF90IGEsIHVpbnQ2NF90IGIKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIFpTaHIsIE9yaWdpbigpLApAQCAtMzMxMiw3ICszMzE5LDcgQEAgdm9pZCB0
ZXN0WlNockltbXModWludDY0X3QgYSwgdWludDY0X3QgYgogewogICAgIFByb2NlZHVyZSBwcm9j
OwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgWlNociwgT3JpZ2luKCksCkBAIC0zMzI2LDcgKzMz
MzMsNyBAQCB2b2lkIHRlc3RaU2hyQXJnSW1tKHVpbnQ2NF90IGEsIHVpbnQ2NF90CiB7CiAgICAg
UHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBaU2hyLCBPcmlnaW4oKSwK
QEAgLTMzNDMsNyArMzM1MCw3IEBAIHZvaWQgdGVzdFpTaHJBcmczMih1aW50MzJfdCBhKQogICAg
IFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgIHByb2MsIFRy
dW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgWlNociwgT3JpZ2luKCksIHZhbHVlLCB2YWx1ZSkpOwogCkBAIC0zMzU0LDcg
KzMzNjEsNyBAQCB2b2lkIHRlc3RaU2hyQXJnczMyKHVpbnQzMl90IGEsIHVpbnQzMl90CiB7CiAg
ICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBaU2hyLCBPcmlnaW4o
KSwKQEAgLTMzNzIsNyArMzM3OSw3IEBAIHZvaWQgdGVzdFpTaHJJbW1zMzIodWludDMyX3QgYSwg
dWludDMyX3QKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IFpTaHIsIE9yaWdpbigpLApAQCAtMzM4Niw3ICszMzkzLDcgQEAgdm9pZCB0ZXN0WlNockFyZ0lt
bTMyKHVpbnQzMl90IGEsIHVpbnQzMgogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgWlNociwgT3JpZ2luKCksCkBAIC0zNDE5LDcgKzM0MjYsNyBAQCB2b2lk
IHRlc3RDbHpBcmc2NChpbnQ2NF90IGEpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFs
dWUqIGNselZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDbHosIE9yaWdpbigp
LCBhcmd1bWVudCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgY2x6VmFsdWUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjbHpWYWx1ZSk7CiAgICAgQ0hFQ0soY29tcGlsZUFu
ZFJ1bjx1bnNpZ25lZD4ocHJvYywgYSkgPT0gY291bnRMZWFkaW5nWmVybyhhKSk7CiB9CiAKQEAg
LTM0MzAsNyArMzQzNyw3IEBAIHZvaWQgdGVzdENsek1lbTY0KGludDY0X3QgYSkKICAgICBWYWx1
ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBNZW1vcnlWYWx1ZSogdmFsdWUgPSBy
b290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDY0LCBPcmlnaW4oKSwg
YWRkcmVzcyk7CiAgICAgVmFsdWUqIGNselZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBDbHosIE9yaWdpbigpLCB2YWx1ZSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2x6VmFsdWUpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjbHpWYWx1ZSk7CiAgICAg
Q0hFQ0soY29tcGlsZUFuZFJ1bjx1bnNpZ25lZD4ocHJvYywgJmEpID09IGNvdW50TGVhZGluZ1pl
cm8oYSkpOwogfQogCkBAIC0zNDQxLDcgKzM0NDgsNyBAQCB2b2lkIHRlc3RDbHpBcmczMihpbnQz
Ml90IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgVmFsdWUq
IGNselZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDbHosIE9yaWdpbigpLCBh
cmd1bWVudCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgY2x6VmFsdWUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjbHpWYWx1ZSk7CiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1
bjx1bnNpZ25lZD4ocHJvYywgYSkgPT0gY291bnRMZWFkaW5nWmVybyhhKSk7CiB9CiAKQEAgLTM0
NTIsNyArMzQ1OSw3IEBAIHZvaWQgdGVzdENsek1lbTMyKGludDMyX3QgYSkKICAgICBWYWx1ZSog
YWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBNZW1vcnlWYWx1ZSogdmFsdWUgPSByb290
LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwgYWRk
cmVzcyk7CiAgICAgVmFsdWUqIGNselZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBDbHosIE9yaWdpbigpLCB2YWx1ZSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2x6VmFsdWUpOworICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjbHpWYWx1ZSk7CiAgICAgQ0hF
Q0soY29tcGlsZUFuZFJ1bjx1bnNpZ25lZD4ocHJvYywgJmEpID09IGNvdW50TGVhZGluZ1plcm8o
YSkpOwogfQogCkBAIC0zNDYwLDcgKzM0NjcsNyBAQCB2b2lkIHRlc3RBYnNBcmcoZG91YmxlIGEp
CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBYnMsIE9y
aWdpbigpLApAQCAtMzQ3NCw3ICszNDgxLDcgQEAgdm9pZCB0ZXN0QWJzSW1tKGRvdWJsZSBhKQog
ICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBhKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBP
cmlnaW4oKSwgYXJndW1lbnQpKTsKIApAQCAtMzQ4Nyw3ICszNDk0LDcgQEAgdm9pZCB0ZXN0QWJz
TWVtKGRvdWJsZSBhKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAg
ICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIGxv
YWREb3VibGUgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIERvdWJs
ZSwgT3JpZ2luKCksIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9y
aWdpbigpLCBsb2FkRG91YmxlKSk7CiAKQEAgLTM1MDEsNyArMzUwOCw3IEBAIHZvaWQgdGVzdEFi
c0Fic0FyZyhkb3VibGUgYSkKICAgICBWYWx1ZSogZmlyc3RBYnMgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEFicywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKSk7CiAg
ICAgVmFsdWUqIHNlY29uZEFicyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBP
cmlnaW4oKSwgZmlyc3RBYnMpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZEFicyk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZEFicyk7CiAKICAgICBDSEVD
Syhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgYSksIGZhYnMoYSkpKTsK
IH0KQEAgLTM1MTMsNyArMzUyMCw3IEBAIHZvaWQgdGVzdEFic0JpdHdpc2VDYXN0QXJnKGRvdWJs
ZSBhKQogICAgIFZhbHVlKiBhcmd1bWVudEFzSW50NjQgPSByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAg
VmFsdWUqIGFyZ3VtZW50QXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJp
dHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnRBc0ludDY0KTsKICAgICBWYWx1ZSogYWJzVmFs
dWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFicywgT3JpZ2luKCksIGFyZ3VtZW50
QXNEb3VibGUpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIGFic1ZhbHVlKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWJzVmFsdWUpOwogCiAgICAgQ0hFQ0soaXNJZGVudGlj
YWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQ2NF90PihhKSks
IGZhYnMoYSkpKTsKIH0KQEAgLTM1MjcsNyArMzUzNCw3IEBAIHZvaWQgdGVzdEJpdHdpc2VDYXN0
QWJzQml0d2lzZUNhc3RBcmcoZG8KICAgICBWYWx1ZSogYWJzVmFsdWUgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEFicywgT3JpZ2luKCksIGFyZ3VtZW50QXNEb3VibGUpOwogICAgIFZh
bHVlKiByZXN1bHRBc0ludDY0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNl
Q2FzdCwgT3JpZ2luKCksIGFic1ZhbHVlKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdEFzSW50NjQpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHRBc0lu
dDY0KTsKIAogICAgIGludDY0X3QgZXhwZWN0ZWRSZXN1bHQgPSBiaXR3aXNlX2Nhc3Q8aW50NjRf
dD4oZmFicyhhKSk7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQ2NF90
Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50NjRfdD4oYSkpLCBleHBlY3RlZFJlc3VsdCkpOwpAQCAt
MzU0Miw3ICszNTQ5LDcgQEAgdm9pZCB0ZXN0QWJzQXJnKGZsb2F0IGEpCiAgICAgVmFsdWUqIGFy
Z3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2lu
KCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEFicywgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBWYWx1ZSogcmVzdWx0MzIg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVz
dWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNv
bXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0
d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0PGZsb2F0PihmYWJzKGEpKSkpKTsKIH0KQEAg
LTM1NTQsNyArMzU2MSw3IEBAIHZvaWQgdGVzdEFic0ltbShmbG9hdCBhKQogICAgIFZhbHVlKiBh
cmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigp
LCBhKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBB
YnMsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVu
PGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxp
bnQzMl90PihzdGF0aWNfY2FzdDxmbG9hdD4oZmFicyhhKSkpKSk7CiB9CkBAIC0zNTY3LDcgKzM1
NzQsNyBAQCB2b2lkIHRlc3RBYnNNZW0oZmxvYXQgYSkKICAgICBNZW1vcnlWYWx1ZSogbG9hZEZs
b2F0ID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBGbG9hdCwgT3Jp
Z2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEFicywgT3JpZ2luKCksIGxvYWRGbG9hdCk7CiAgICAgVmFsdWUqIHJlc3VsdDMy
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJl
c3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChj
b21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsICZhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHN0
YXRpY19jYXN0PGZsb2F0PihmYWJzKGEpKSkpKTsKIH0KQEAgLTM1ODEsNyArMzU4OCw3IEBAIHZv
aWQgdGVzdEFic0Fic0FyZyhmbG9hdCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsK
ICAgICBWYWx1ZSogZmlyc3RBYnMgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFicywg
T3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBWYWx1ZSogc2Vjb25kQWJzID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdpbigpLCBmaXJzdEFicyk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kQWJzKTsK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
c2Vjb25kQWJzKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+
KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIHN0YXRpY19jYXN0PGZsb2F0PihmYWJz
KGEpKSkpOwogfQpAQCAtMzU5NCw3ICszNjAxLDcgQEAgdm9pZCB0ZXN0QWJzQml0d2lzZUNhc3RB
cmcoZmxvYXQgYSkKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSogYXJndW1l
bnRBc2Zsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3Jp
Z2luKCksIGFyZ3VtZW50QXNJbnQzMik7CiAgICAgVmFsdWUqIGFic1ZhbHVlID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdpbigpLCBhcmd1bWVudEFzZmxvYXQpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFi
c1ZhbHVlKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgYWJzVmFsdWUpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1
bjxmbG9hdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgc3RhdGljX2Nhc3Q8Zmxv
YXQ+KGZhYnMoYSkpKSk7CiB9CkBAIC0zNjA5LDcgKzM2MTYsNyBAQCB2b2lkIHRlc3RCaXR3aXNl
Q2FzdEFic0JpdHdpc2VDYXN0QXJnKGZsCiAgICAgVmFsdWUqIGFic1ZhbHVlID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdpbigpLCBhcmd1bWVudEFzZmxvYXQpOwogICAg
IFZhbHVlKiByZXN1bHRBc0ludDY0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3
aXNlQ2FzdCwgT3JpZ2luKCksIGFic1ZhbHVlKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdEFzSW50NjQpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHRB
c0ludDY0KTsKIAogICAgIGludDMyX3QgZXhwZWN0ZWRSZXN1bHQgPSBiaXR3aXNlX2Nhc3Q8aW50
MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KGZhYnMoYSkpKTsKICAgICBDSEVDSyhpc0lkZW50aWNh
bChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSks
IGV4cGVjdGVkUmVzdWx0KSk7CkBAIC0zNjI2LDcgKzM2MzMsNyBAQCB2b2lkIHRlc3RBYnNBcmdX
aXRoVXNlbGVzc0RvdWJsZUNvbnZlcnNpCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBPcmlnaW4oKSwgYXNEb3VibGUpOwogICAgIFZhbHVlKiBm
bG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwg
T3JpZ2luKCksIHJlc3VsdCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1
bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48
aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KHN0YXRpY19jYXN0PGZsb2F0PihmYWJzKGEpKSkpKTsKIH0KQEAgLTM2NDQsNyArMzY1
MSw3IEBAIHZvaWQgdGVzdEFic0FyZ1dpdGhFZmZlY3RmdWxEb3VibGVDb252ZXIKICAgICBWYWx1
ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBP
cmlnaW4oKSwgZmxvYXRSZXN1bHQpOwogICAgIFZhbHVlKiBkb3VibGVBZGRyZXNzID0gcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjEpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUs
IE9yaWdpbigpLCByZXN1bHQsIGRvdWJsZUFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIp
OwogCiAgICAgZG91YmxlIGVmZmVjdCA9IDA7CiAgICAgaW50MzJfdCByZXN1bHRWYWx1ZSA9IGNv
bXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCAmZWZm
ZWN0KTsKQEAgLTM2NTYsNyArMzY2Myw3IEBAIHZvaWQgdGVzdENlaWxBcmcoZG91YmxlIGEpCiB7
CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBDZWlsLCBPcmln
aW4oKSwKQEAgLTM2NzAsNyArMzY3Nyw3IEBAIHZvaWQgdGVzdENlaWxJbW0oZG91YmxlIGEpCiAg
ICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIGEpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDZWlsLCBP
cmlnaW4oKSwgYXJndW1lbnQpKTsKIApAQCAtMzY4Myw3ICszNjkwLDcgQEAgdm9pZCB0ZXN0Q2Vp
bE1lbShkb3VibGUgYSkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwog
ICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiBs
b2FkRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBEb3Vi
bGUsIE9yaWdpbigpLCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwg
T3JpZ2luKCksIGxvYWREb3VibGUpKTsKIApAQCAtMzY5Nyw3ICszNzA0LDcgQEAgdm9pZCB0ZXN0
Q2VpbENlaWxBcmcoZG91YmxlIGEpCiAgICAgVmFsdWUqIGZpcnN0Q2VpbCA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIw
KSk7CiAgICAgVmFsdWUqIHNlY29uZENlaWwgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IENlaWwsIE9yaWdpbigpLCBmaXJzdENlaWwpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZENlaWwpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmRDZWlsKTsK
IAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBhKSwg
Y2VpbChhKSkpOwogfQpAQCAtMzcwOSw3ICszNzE2LDcgQEAgdm9pZCB0ZXN0Rmxvb3JDZWlsQXJn
KGRvdWJsZSBhKQogICAgIFZhbHVlKiBmaXJzdENlaWwgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIENlaWwsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCkpOwogICAgIFZh
bHVlKiB3cmFwcGluZ0Zsb29yID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwg
T3JpZ2luKCksIGZpcnN0Q2VpbCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgd3JhcHBpbmdGbG9vcik7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHdyYXBwaW5nRmxvb3IpOwog
CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIGEpLCBj
ZWlsKGEpKSk7CiB9CkBAIC0zNzIxLDcgKzM3MjgsNyBAQCB2b2lkIHRlc3RDZWlsSVRvRDY0KGlu
dDY0X3QgYSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFs
dWUqIGFyZ3VtZW50QXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0Qs
IE9yaWdpbigpLCBhcmd1bWVudCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwg
T3JpZ2luKCksIGFyZ3VtZW50QXNEb3VibGUpKTsKIApAQCAtMzczNiw3ICszNzQzLDcgQEAgdm9p
ZCB0ZXN0Q2VpbElUb0QzMihpbnQ2NF90IGEpCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAg
ICAgVmFsdWUqIGFyZ3VtZW50QXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IElUb0QsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
Q2VpbCwgT3JpZ2luKCksIGFyZ3VtZW50QXNEb3VibGUpKTsKIApAQCAtMzc1Miw3ICszNzU5LDcg
QEAgdm9pZCB0ZXN0Q2VpbEFyZyhmbG9hdCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMy
KTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDZWls
LCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxp
bnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50
MzJfdD4oY2VpbGYoYSkpKSk7CiB9CkBAIC0zNzY0LDcgKzM3NzEsNyBAQCB2b2lkIHRlc3RDZWls
SW1tKGZsb2F0IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0
RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAg
VmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2Fz
dCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVD
Syhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxp
bnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihjZWlsZihhKSkpKTsKIH0KQEAgLTM3
NzcsNyArMzc4NCw3IEBAIHZvaWQgdGVzdENlaWxNZW0oZmxvYXQgYSkKICAgICBNZW1vcnlWYWx1
ZSogbG9hZEZsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBG
bG9hdCwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBsb2FkRmxvYXQpOwogICAgIFZhbHVl
KiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9y
aWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJ
ZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCAmYSksIGJpdHdpc2VfY2FzdDxp
bnQzMl90PihjZWlsZihhKSkpKTsKIH0KQEAgLTM3OTEsNyArMzc5OCw3IEBAIHZvaWQgdGVzdENl
aWxDZWlsQXJnKGZsb2F0IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZh
bHVlKiBmaXJzdENlaWwgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdp
bigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHNlY29uZENlaWwgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBmaXJzdENlaWwpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZENlaWwpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBz
ZWNvbmRDZWlsKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+
KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGNlaWxmKGEpKSk7CiB9CkBAIC0zODA1
LDcgKzM4MTIsNyBAQCB2b2lkIHRlc3RGbG9vckNlaWxBcmcoZmxvYXQgYSkKICAgICBWYWx1ZSog
YXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmln
aW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUqIGZpcnN0Q2VpbCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBWYWx1ZSogd3Jh
cHBpbmdGbG9vciA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigp
LCBmaXJzdENlaWwpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHdyYXBwaW5nRmxvb3IpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB3cmFwcGluZ0Zsb29yKTsKIAogICAgIENI
RUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsIGJpdHdpc2VfY2FzdDxp
bnQzMl90PihhKSksIGNlaWxmKGEpKSk7CiB9CkBAIC0zODIxLDcgKzM4MjgsNyBAQCB2b2lkIHRl
c3RDZWlsQXJnV2l0aFVzZWxlc3NEb3VibGVDb252ZXJzCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCksIGFzRG91YmxlKTsKICAg
ICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJs
ZVRvRmxvYXQsIE9yaWdpbigpLCByZXN1bHQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3Vs
dCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21w
aWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdp
c2VfY2FzdDxpbnQzMl90PihjZWlsZihhKSkpKTsKIH0KQEAgLTM4MzksNyArMzg0Niw3IEBAIHZv
aWQgdGVzdENlaWxBcmdXaXRoRWZmZWN0ZnVsRG91YmxlQ29udmUKICAgICBWYWx1ZSogcmVzdWx0
MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwg
ZmxvYXRSZXN1bHQpOwogICAgIFZhbHVlKiBkb3VibGVBZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEp
OwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigp
LCByZXN1bHQsIGRvdWJsZUFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAg
ZG91YmxlIGVmZmVjdCA9IDA7CiAgICAgaW50MzJfdCByZXN1bHRWYWx1ZSA9IGNvbXBpbGVBbmRS
dW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCAmZWZmZWN0KTsKQEAg
LTM4NTEsNyArMzg1OCw3IEBAIHZvaWQgdGVzdEZsb29yQXJnKGRvdWJsZSBhKQogewogICAgIFBy
b2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgRmxvb3IsIE9yaWdpbigpLApA
QCAtMzg2NSw3ICszODcyLDcgQEAgdm9pZCB0ZXN0Rmxvb3JJbW0oZG91YmxlIGEpCiAgICAgUHJv
Y2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAg
ICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIGEpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2lu
KCksIGFyZ3VtZW50KSk7CiAKQEAgLTM4NzgsNyArMzg4NSw3IEBAIHZvaWQgdGVzdEZsb29yTWVt
KGRvdWJsZSBhKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAg
VmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWRE
b3VibGUgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIERvdWJsZSwg
T3JpZ2luKCksIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3Jp
Z2luKCksIGxvYWREb3VibGUpKTsKIApAQCAtMzg5Miw3ICszODk5LDcgQEAgdm9pZCB0ZXN0Rmxv
b3JGbG9vckFyZyhkb3VibGUgYSkKICAgICBWYWx1ZSogZmlyc3RGbG9vciA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBS
MCkpOwogICAgIFZhbHVlKiBzZWNvbmRGbG9vciA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgRmxvb3IsIE9yaWdpbigpLCBmaXJzdEZsb29yKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmRGbG9vcik7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZEZs
b29yKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9j
LCBhKSwgZmxvb3IoYSkpKTsKIH0KQEAgLTM5MDQsNyArMzkxMSw3IEBAIHZvaWQgdGVzdENlaWxG
bG9vckFyZyhkb3VibGUgYSkKICAgICBWYWx1ZSogZmlyc3RGbG9vciA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCkp
OwogICAgIFZhbHVlKiB3cmFwcGluZ0NlaWwgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IENlaWwsIE9yaWdpbigpLCBmaXJzdEZsb29yKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB3cmFwcGluZ0NlaWwpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB3cmFwcGluZ0Nl
aWwpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2Ms
IGEpLCBmbG9vcihhKSkpOwogfQpAQCAtMzkxNiw3ICszOTIzLDcgQEAgdm9pZCB0ZXN0Rmxvb3JJ
VG9ENjQoaW50NjRfdCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsK
ICAgICBWYWx1ZSogYXJndW1lbnRBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgSVRvRCwgT3JpZ2luKCksIGFyZ3VtZW50KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBGbG9vciwgT3JpZ2luKCksIGFyZ3VtZW50QXNEb3VibGUpKTsKIApAQCAtMzkzMSw3ICszOTM4
LDcgQEAgdm9pZCB0ZXN0Rmxvb3JJVG9EMzIoaW50NjRfdCBhKQogICAgICAgICByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCkpOwogICAgIFZhbHVlKiBhcmd1bWVudEFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgYXJndW1lbnQpOwogCi0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgYXJndW1lbnRBc0RvdWJsZSkpOwogCkBAIC0zOTQ3
LDcgKzM5NTQsNyBAQCB2b2lkIHRlc3RGbG9vckFyZyhmbG9hdCBhKQogICAgIFZhbHVlKiBhcmd1
bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigp
LCBhcmd1bWVudDMyKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBWYWx1ZSogcmVzdWx0MzIg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVz
dWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNv
bXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0
d2lzZV9jYXN0PGludDMyX3Q+KGZsb29yZihhKSkpKTsKIH0KQEAgLTM5NTksNyArMzk2Niw3IEBA
IHZvaWQgdGVzdEZsb29ySW1tKGZsb2F0IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+
YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVl
KiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwg
YXJndW1lbnQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9j
LCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oZmxvb3Jm
KGEpKSkpOwogfQpAQCAtMzk3Miw3ICszOTc5LDcgQEAgdm9pZCB0ZXN0Rmxvb3JNZW0oZmxvYXQg
YSkKICAgICBNZW1vcnlWYWx1ZSogbG9hZEZsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZh
bHVlPihwcm9jLCBMb2FkLCBGbG9hdCwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBy
ZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgbG9h
ZEZsb2F0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMy
KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywg
JmEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oZmxvb3JmKGEpKSkpOwogfQpAQCAtMzk4Niw3ICsz
OTkzLDcgQEAgdm9pZCB0ZXN0Rmxvb3JGbG9vckFyZyhmbG9hdCBhKQogICAgIFZhbHVlKiBhcmd1
bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigp
LCBhcmd1bWVudDMyKTsKICAgICBWYWx1ZSogZmlyc3RGbG9vciA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHNlY29u
ZEZsb29yID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGZp
cnN0Rmxvb3IpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHNlY29uZEZsb29yKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kRmxvb3IpOwogCiAgICAgQ0hFQ0soaXNJ
ZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+
KGEpKSwgZmxvb3JmKGEpKSk7CiB9CkBAIC00MDAwLDcgKzQwMDcsNyBAQCB2b2lkIHRlc3RDZWls
Rmxvb3JBcmcoZmxvYXQgYSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFs
dWUqIGZpcnN0Rmxvb3IgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmln
aW4oKSwgYXJndW1lbnQpOwogICAgIFZhbHVlKiB3cmFwcGluZ0NlaWwgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBmaXJzdEZsb29yKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB3cmFwcGluZ0Nl
aWwpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCB3cmFwcGluZ0NlaWwpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1
bjxmbG9hdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgZmxvb3JmKGEpKSk7CiB9
CkBAIC00MDE2LDcgKzQwMjMsNyBAQCB2b2lkIHRlc3RGbG9vckFyZ1dpdGhVc2VsZXNzRG91Ymxl
Q29udmVyCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
Rmxvb3IsIE9yaWdpbigpLCBhc0RvdWJsZSk7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgcmVzdWx0
KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJp
dHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIp
OwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBi
aXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oZmxvb3JmKGEp
KSkpOwogfQpAQCAtNDAzNCw3ICs0MDQxLDcgQEAgdm9pZCB0ZXN0Rmxvb3JBcmdXaXRoRWZmZWN0
ZnVsRG91YmxlQ29udgogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CiAgICAgVmFsdWUq
IGRvdWJsZUFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1l
bW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgZG91YmxlQWRkcmVzcyk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBkb3VibGUgZWZmZWN0ID0gMDsKICAgICBp
bnQzMl90IHJlc3VsdFZhbHVlID0gY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNl
X2Nhc3Q8aW50MzJfdD4oYSksICZlZmZlY3QpOwpAQCAtNDA0Niw3ICs0MDUzLDcgQEAgdm9pZCB0
ZXN0U3FydEFyZyhkb3VibGUgYSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIFNxcnQsIE9yaWdpbigpLApAQCAtNDA2MCw3ICs0MDY3LDcgQEAgdm9pZCB0
ZXN0U3FydEltbShkb3VibGUgYSkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFw
cGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIFNxcnQsIE9yaWdpbigpLCBhcmd1bWVudCkpOwogCkBAIC00MDczLDcg
KzQwODAsNyBAQCB2b2lkIHRlc3RTcXJ0TWVtKGRvdWJsZSBhKQogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BS
MCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWREb3VibGUgPSByb290LT5hcHBlbmROZXc8TWVtb3J5
VmFsdWU+KHByb2MsIExvYWQsIERvdWJsZSwgT3JpZ2luKCksIGFkZHJlc3MpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBTcXJ0LCBPcmlnaW4oKSwgbG9hZERvdWJsZSkpOwogCkBAIC00MDg5
LDcgKzQwOTYsNyBAQCB2b2lkIHRlc3RTcXJ0QXJnKGZsb2F0IGEpCiAgICAgVmFsdWUqIGFyZ3Vt
ZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCks
IGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIFNxcnQsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3Vs
dCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21w
aWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdp
c2VfY2FzdDxpbnQzMl90PihzdGF0aWNfY2FzdDxmbG9hdD4oc3FydChhKSkpKSk7CiB9CkBAIC00
MTAxLDcgKzQxMDgsNyBAQCB2b2lkIHRlc3RTcXJ0SW1tKGZsb2F0IGEpCiAgICAgVmFsdWUqIGFy
Z3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IGEpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFNx
cnQsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVu
PGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxp
bnQzMl90PihzdGF0aWNfY2FzdDxmbG9hdD4oc3FydChhKSkpKSk7CiB9CkBAIC00MTE0LDcgKzQx
MjEsNyBAQCB2b2lkIHRlc3RTcXJ0TWVtKGZsb2F0IGEpCiAgICAgTWVtb3J5VmFsdWUqIGxvYWRG
bG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgRmxvYXQsIE9y
aWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBTcXJ0LCBPcmlnaW4oKSwgbG9hZEZsb2F0KTsKICAgICBWYWx1ZSogcmVzdWx0
MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwg
cmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2Fs
KGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgJmEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4o
c3RhdGljX2Nhc3Q8ZmxvYXQ+KHNxcnQoYSkpKSkpOwogfQpAQCAtNDEzMCw3ICs0MTM3LDcgQEAg
dm9pZCB0ZXN0U3FydEFyZ1dpdGhVc2VsZXNzRG91YmxlQ29udmVycwogICAgIFZhbHVlKiByZXN1
bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFNxcnQsIE9yaWdpbigpLCBhc0RvdWJs
ZSk7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxv
YXRSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGlj
YWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkp
LCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KHNxcnQoYSkpKSkpOwog
fQpAQCAtNDE0OCw3ICs0MTU1LDcgQEAgdm9pZCB0ZXN0U3FydEFyZ1dpdGhFZmZlY3RmdWxEb3Vi
bGVDb252ZQogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CiAgICAgVmFsdWUqIGRvdWJs
ZUFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZh
bHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgZG91YmxlQWRkcmVzcyk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQzMik7CiAKICAgICBkb3VibGUgZWZmZWN0ID0gMDsKICAgICBpbnQzMl90
IHJlc3VsdFZhbHVlID0gY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4oYSksICZlZmZlY3QpOwpAQCAtNDE3Miw3ICs0MTc5LDcgQEAgdm9pZCB0ZXN0Q29t
cGFyZVR3b0Zsb2F0VG9Eb3VibGUoZmxvYXQgYQogICAgIFZhbHVlKiBhcmcyQXNEb3VibGUgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBhcmcy
RmxvYXQpOwogICAgIFZhbHVlKiBlcXVhbCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
RXF1YWwsIE9yaWdpbigpLCBhcmcxQXNEb3VibGUsIGFyZzJBc0RvdWJsZSk7CiAKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBlcXVhbCk7
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IGVxdWFsKTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgYml0d2lz
ZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpID09IChhID09IGIp
KTsKIH0KQEAgLTQxOTAsNyArNDE5Nyw3IEBAIHZvaWQgdGVzdENvbXBhcmVPbmVGbG9hdFRvRG91
YmxlKGZsb2F0IGEKICAgICBWYWx1ZSogYXJnMkFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwog
ICAgIFZhbHVlKiBlcXVhbCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRXF1YWwsIE9y
aWdpbigpLCBhcmcxQXNEb3VibGUsIGFyZzJBc0RvdWJsZSk7CiAKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBlcXVhbCk7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGVxdWFsKTsK
IAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KGEpLCBiKSA9PSAoYSA9PSBiKSk7CiB9CkBAIC00MjE0LDIzICs0MjIxLDIzIEBAIHZv
aWQgdGVzdENvbXBhcmVGbG9hdFRvRG91YmxlVGhyb3VnaFBoaSgKICAgICBWYWx1ZSogYXJnMkFz
RmxvYXQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdp
bigpLCBhcmcyQXNEb3VibGUpOwogICAgIFZhbHVlKiBhcmcyQXNGUm91bmRlZERvdWJsZSA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGFyZzJB
c0Zsb2F0KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwK
ICAgICAgICAgY29uZGl0aW9uLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBG
cmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAogICAgIFVwc2lsb25WYWx1ZSogdGhlblZhbHVl
ID0gdGhlbkNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhcmcx
QXNEb3VibGUpOwotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBK
dW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKKyAgICB0aGVuQ2FzZS0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2so
dGFpbCkpOwogCiAgICAgVmFsdWUqIGVsc2VDb25zdCA9IGVsc2VDYXNlLT5hcHBlbmROZXc8Q29u
c3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDAuKTsKICAgICBVcHNpbG9uVmFsdWUqIGVs
c2VWYWx1ZSA9IGVsc2VDYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgZWxzZUNvbnN0KTsKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CisgICAgZWxzZUNhc2Ut
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJs
b2NrKHRhaWwpKTsKIAogICAgIFZhbHVlKiBkb3VibGVJbnB1dCA9IHRhaWwtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgUGhpLCBEb3VibGUsIE9yaWdpbigpKTsKICAgICB0aGVuVmFsdWUtPnNldFBo
aShkb3VibGVJbnB1dCk7CiAgICAgZWxzZVZhbHVlLT5zZXRQaGkoZG91YmxlSW5wdXQpOwogICAg
IFZhbHVlKiBlcXVhbCA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRXF1YWwsIE9yaWdp
bigpLCBkb3VibGVJbnB1dCwgYXJnMkFzRlJvdW5kZWREb3VibGUpOwotICAgIHRhaWwtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGVxdWFsKTsKKyAgICB0
YWlsLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZXF1YWwp
OwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBpbnQzMl90IGludGVnZXJB
ID0gYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpOwpAQCAtNDI2MSw3ICs0MjY4LDcgQEAgdm9pZCB0
ZXN0RG91YmxlVG9GbG9hdFRocm91Z2hQaGkoZmxvYXQgdgogICAgIFZhbHVlKiBmbG9hdFZhbHVl
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFy
Z3VtZW50MzIpOwogICAgIFZhbHVlKiBhcmdBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGZsb2F0VmFsdWUpOwogCi0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICBjb25kaXRpb24s
CiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNl
Q2FzZSkpOwpAQCAtNDI2OSwxNyArNDI3NiwxNyBAQCB2b2lkIHRlc3REb3VibGVUb0Zsb2F0VGhy
b3VnaFBoaShmbG9hdCB2CiAgICAgVmFsdWUqIHBvc3RpdGl2ZUNvbnN0ID0gdGhlbkNhc2UtPmFw
cGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIuNWYpOwogICAgIFZh
bHVlKiB0aGVuQWRkID0gdGhlbkNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmln
aW4oKSwgYXJnQXNEb3VibGUsIHBvc3RpdGl2ZUNvbnN0KTsKICAgICBVcHNpbG9uVmFsdWUqIHRo
ZW5WYWx1ZSA9IHRoZW5DYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgdGhlbkFkZCk7Ci0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOworICAgIHRoZW5DYXNlLT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9j
ayh0YWlsKSk7CiAKICAgICBWYWx1ZSogZWxzZUNvbnN0ID0gZWxzZUNhc2UtPmFwcGVuZE5ldzxD
b25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgTV9QSSk7CiAgICAgVXBzaWxvblZhbHVl
KiBlbHNlVmFsdWUgPSBlbHNlQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIGVsc2VDb25zdCk7Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOworICAgIGVsc2VD
YXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50
ZWRCbG9jayh0YWlsKSk7CiAKICAgICBWYWx1ZSogZG91YmxlSW5wdXQgPSB0YWlsLT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIFBoaSwgRG91YmxlLCBPcmlnaW4oKSk7CiAgICAgdGhlblZhbHVlLT5z
ZXRQaGkoZG91YmxlSW5wdXQpOwogICAgIGVsc2VWYWx1ZS0+c2V0UGhpKGRvdWJsZUlucHV0KTsK
ICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERv
dWJsZVRvRmxvYXQsIE9yaWdpbigpLCBkb3VibGVJbnB1dCk7Ci0gICAgdGFpbC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOworICAg
IHRhaWwtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBmbG9h
dFJlc3VsdCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIENIRUNLKGlz
SWRlbnRpY2FsKGludm9rZTxmbG9hdD4oKmNvZGUsIDEsIGJpdHdpc2VfY2FzdDxpbnQzMl90Pih2
YWx1ZSkpLCB2YWx1ZSArIDQyLjVmKSk7CkBAIC00Mjk5LDE4ICs0MzA2LDE4IEBAIHZvaWQgdGVz
dERvdWJsZVByb2R1Y2VyUGhpVG9GbG9hdENvbnZlcnMKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEp
KTsKICAgICBWYWx1ZSogZmxvYXRWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
Qml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKIAotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgY29uZGl0aW9uLAogICAgICAgICBG
cmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAog
ICAgIFZhbHVlKiBhc0RvdWJsZSA9IHRoZW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZs
b2F0VG9Eb3VibGUsIE9yaWdpbigpLCBmbG9hdFZhbHVlKTsKICAgICBVcHNpbG9uVmFsdWUqIHRo
ZW5WYWx1ZSA9IHRoZW5DYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgYXNEb3VibGUpOwotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKKyAgICB0aGVuQ2FzZS0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxv
Y2sodGFpbCkpOwogCiAgICAgVmFsdWUqIGNvbnN0RG91YmxlID0gZWxzZUNhc2UtPmFwcGVuZE5l
dzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIuNSk7CiAgICAgVXBzaWxvblZh
bHVlKiBlbHNlVmFsdWUgPSBlbHNlQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywg
T3JpZ2luKCksIGNvbnN0RG91YmxlKTsKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CisgICAg
ZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJl
cXVlbnRlZEJsb2NrKHRhaWwpKTsKIAogICAgIFZhbHVlKiBkb3VibGVJbnB1dCA9IHRhaWwtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBEb3VibGUsIE9yaWdpbigpKTsKICAgICB0aGVuVmFs
dWUtPnNldFBoaShkb3VibGVJbnB1dCk7CkBAIC00MzE5LDcgKzQzMjYsNyBAQCB2b2lkIHRlc3RE
b3VibGVQcm9kdWNlclBoaVRvRmxvYXRDb252ZXJzCiAgICAgVmFsdWUqIGFyZ0FzRG91YmxlQWdh
aW4gPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigp
LCBmbG9hdFZhbHVlKTsKICAgICBWYWx1ZSogZmluYWxBZGQgPSB0YWlsLT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGRvdWJsZUlucHV0LCBhcmdBc0RvdWJsZUFnYWluKTsK
ICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERv
dWJsZVRvRmxvYXQsIE9yaWdpbigpLCBmaW5hbEFkZCk7Ci0gICAgdGFpbC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOworICAgIHRh
aWwtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBmbG9hdFJl
c3VsdCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIENIRUNLKGlzSWRl
bnRpY2FsKGludm9rZTxmbG9hdD4oKmNvZGUsIDEsIGJpdHdpc2VfY2FzdDxpbnQzMl90Pih2YWx1
ZSkpLCB2YWx1ZSArIHZhbHVlKSk7CkBAIC00MzQxLDE4ICs0MzQ4LDE4IEBAIHZvaWQgdGVzdERv
dWJsZVByb2R1Y2VyUGhpVG9GbG9hdENvbnZlcnMKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKTsK
ICAgICBWYWx1ZSogZmxvYXRWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0
d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgY29uZGl0aW9uLAogICAgICAgICBGcmVx
dWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAogICAg
IFZhbHVlKiBhc0RvdWJsZSA9IHRoZW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0
VG9Eb3VibGUsIE9yaWdpbigpLCBmbG9hdFZhbHVlKTsKICAgICBVcHNpbG9uVmFsdWUqIHRoZW5W
YWx1ZSA9IHRoZW5DYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
YXNEb3VibGUpOwotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBK
dW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKKyAgICB0aGVuQ2FzZS0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2so
dGFpbCkpOwogCiAgICAgVmFsdWUqIGNvbnN0RG91YmxlID0gZWxzZUNhc2UtPmFwcGVuZE5ldzxD
b25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIuNSk7CiAgICAgVXBzaWxvblZhbHVl
KiBlbHNlVmFsdWUgPSBlbHNlQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIGNvbnN0RG91YmxlKTsKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CisgICAgZWxz
ZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVl
bnRlZEJsb2NrKHRhaWwpKTsKIAogICAgIFZhbHVlKiBkb3VibGVJbnB1dCA9IHRhaWwtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBEb3VibGUsIE9yaWdpbigpKTsKICAgICB0aGVuVmFsdWUt
PnNldFBoaShkb3VibGVJbnB1dCk7CkBAIC00MzY4LDcgKzQzNzUsNyBAQCB2b2lkIHRlc3REb3Vi
bGVQcm9kdWNlclBoaVRvRmxvYXRDb252ZXJzCiAgICAgLy8gVGhpcyBvbmUgKmNhbm5vdCogYmUg
ZWxpbWluYXRlZAogICAgIFZhbHVlKiBkb3VibGVBZGQgPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEFkZCwgT3JpZ2luKCksIGRvdWJsZUlucHV0LCBkb3VibGVSZXN1bHQpOwogCi0gICAg
dGFpbC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZG91
YmxlQWRkKTsKKyAgICB0YWlsLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgZG91YmxlQWRkKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAg
ICAgQ0hFQ0soaXNJZGVudGljYWwoaW52b2tlPGRvdWJsZT4oKmNvZGUsIDEsIGJpdHdpc2VfY2Fz
dDxpbnQzMl90Pih2YWx1ZSkpLCAodmFsdWUgKyB2YWx1ZSkgKyBzdGF0aWNfY2FzdDxkb3VibGU+
KHZhbHVlKSkpOwpAQCAtNDM4OCwxOCArNDM5NSwxOCBAQCB2b2lkIHRlc3REb3VibGVQcm9kdWNl
clBoaVdpdGhOb25GbG9hdENvCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7CiAgICAgVmFsdWUq
IGZsb2F0VmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBP
cmlnaW4oKSwgYXJndW1lbnQzMik7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5j
aCwgT3JpZ2luKCksCiAgICAgICAgIGNvbmRpdGlvbiwKICAgICAgICAgRnJlcXVlbnRlZEJsb2Nr
KHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKICAgICBWYWx1ZSogYXNE
b3VibGUgPSB0aGVuQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBP
cmlnaW4oKSwgZmxvYXRWYWx1ZSk7CiAgICAgVXBzaWxvblZhbHVlKiB0aGVuVmFsdWUgPSB0aGVu
Q2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFzRG91YmxlKTsK
LSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2lu
KCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKIAog
ICAgIFZhbHVlKiBjb25zdERvdWJsZSA9IGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3REb3VibGVW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIGNvbnN0VmFsdWUpOwogICAgIFVwc2lsb25WYWx1ZSogZWxz
ZVZhbHVlID0gZWxzZUNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBjb25zdERvdWJsZSk7Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOworICAgIGVsc2VDYXNl
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRC
bG9jayh0YWlsKSk7CiAKICAgICBWYWx1ZSogZG91YmxlSW5wdXQgPSB0YWlsLT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIFBoaSwgRG91YmxlLCBPcmlnaW4oKSk7CiAgICAgdGhlblZhbHVlLT5zZXRQ
aGkoZG91YmxlSW5wdXQpOwpAQCAtNDQwOCw3ICs0NDE1LDcgQEAgdm9pZCB0ZXN0RG91YmxlUHJv
ZHVjZXJQaGlXaXRoTm9uRmxvYXRDbwogICAgIFZhbHVlKiBhcmdBc0RvdWJsZUFnYWluID0gdGFp
bC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgZmxvYXRW
YWx1ZSk7CiAgICAgVmFsdWUqIGZpbmFsQWRkID0gdGFpbC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBBZGQsIE9yaWdpbigpLCBkb3VibGVJbnB1dCwgYXJnQXNEb3VibGVBZ2Fpbik7CiAgICAgVmFs
dWUqIGZsb2F0UmVzdWx0ID0gdGFpbC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zs
b2F0LCBPcmlnaW4oKSwgZmluYWxBZGQpOwotICAgIHRhaWwtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKKyAgICB0YWlsLT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwog
CiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBDSEVDSyhpc0lkZW50aWNhbChp
bnZva2U8ZmxvYXQ+KCpjb2RlLCAxLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4odmFsdWUpKSwgdmFs
dWUgKyB2YWx1ZSkpOwpAQCAtNDQyMSw3ICs0NDI4LDcgQEAgdm9pZCB0ZXN0RG91YmxlQXJnVG9J
bnQ2NEJpdHdpc2VDYXN0KGRvdQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogCi0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1
bWVudCkpOwpAQCAtNDQzNSw3ICs0NDQyLDcgQEAgdm9pZCB0ZXN0RG91YmxlSW1tVG9JbnQ2NEJp
dHdpc2VDYXN0KGRvdQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAg
ICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCB2YWx1ZSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50KSk7CkBAIC00NDUwLDcgKzQ0
NTcsNyBAQCB2b2lkIHRlc3RUd29CaXR3aXNlQ2FzdE9uRG91YmxlKGRvdWJsZSB2CiAgICAgVmFs
dWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiBmaXJzdCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudCk7
CiAgICAgVmFsdWUqIHNlY29uZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lz
ZUNhc3QsIE9yaWdpbigpLCBmaXJzdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kKTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kKTsKIAogICAgIENIRUNL
KGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCB2YWx1ZSksIHZhbHVlKSk7
CiB9CkBAIC00NDYyLDcgKzQ0NjksNyBAQCB2b2lkIHRlc3RCaXR3aXNlQ2FzdE9uRG91YmxlSW5N
ZW1vcnkoZG91CiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVt
b3J5VmFsdWUqIGxvYWREb3VibGUgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2Ms
IExvYWQsIERvdWJsZSwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBjYXN0ID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGxvYWREb3Vi
bGUpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIGNhc3QpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBjYXN0KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRS
dW48aW50NjRfdD4ocHJvYywgJnZhbHVlKSwgYml0d2lzZV9jYXN0PGludDY0X3Q+KHZhbHVlKSkp
OwogfQpAQCAtNDQ3OSw3ICs0NDg2LDcgQEAgdm9pZCB0ZXN0Qml0d2lzZUNhc3RPbkRvdWJsZUlu
TWVtb3J5SW5kZQogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBBZGQsIE9yaWdpbigpLCBiYXNlLCBzY2FsZWRPZmZzZXQpOwogICAgIE1lbW9yeVZhbHVl
KiBsb2FkRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBE
b3VibGUsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogY2FzdCA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBsb2FkRG91YmxlKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBj
YXN0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgY2FzdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDY0
X3Q+KHByb2MsICZ2YWx1ZSwgMCksIGJpdHdpc2VfY2FzdDxpbnQ2NF90Pih2YWx1ZSkpKTsKIH0K
QEAgLTQ0OTAsNyArNDQ5Nyw3IEBAIHZvaWQgdGVzdEludDY0QkFyZ1RvRG91YmxlQml0d2lzZUNh
c3QoaW4KICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVl
KiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQpKTsKQEAgLTQ1
MDQsNyArNDUxMSw3IEBAIHZvaWQgdGVzdEludDY0QkltbVRvRG91YmxlQml0d2lzZUNhc3QoaW4K
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1
bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1
ZSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXR3aXNlQ2Fz
dCwgT3JpZ2luKCksIGFyZ3VtZW50KSk7CkBAIC00NTE5LDcgKzQ1MjYsNyBAQCB2b2lkIHRlc3RU
d29CaXR3aXNlQ2FzdE9uSW50NjQoaW50NjRfdCB2CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApOwogICAgIFZhbHVlKiBmaXJzdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHNlY29u
ZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBm
aXJzdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgc2Vjb25kKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBp
bGVBbmRSdW48aW50NjRfdD4ocHJvYywgdmFsdWUpLCB2YWx1ZSkpOwogfQpAQCAtNDUzMSw3ICs0
NTM4LDcgQEAgdm9pZCB0ZXN0Qml0d2lzZUNhc3RPbkludDY0SW5NZW1vcnkoaW50NgogICAgIFZh
bHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkRG91
YmxlID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQ2NCwgT3Jp
Z2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBjYXN0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGxvYWREb3VibGUpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNhc3QpOworICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0
KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCAm
dmFsdWUpLCBiaXR3aXNlX2Nhc3Q8ZG91YmxlPih2YWx1ZSkpKTsKIH0KQEAgLTQ1NDgsNyArNDU1
NSw3IEBAIHZvaWQgdGVzdEJpdHdpc2VDYXN0T25JbnQ2NEluTWVtb3J5SW5kZXgKICAgICBWYWx1
ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwg
YmFzZSwgc2NhbGVkT2Zmc2V0KTsKICAgICBNZW1vcnlWYWx1ZSogbG9hZERvdWJsZSA9IHJvb3Qt
PmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50NjQsIE9yaWdpbigpLCBhZGRy
ZXNzKTsKICAgICBWYWx1ZSogY2FzdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0
d2lzZUNhc3QsIE9yaWdpbigpLCBsb2FkRG91YmxlKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0KTsKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FzdCk7CiAKICAgICBD
SEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgJnZhbHVlLCAwKSwg
Yml0d2lzZV9jYXN0PGRvdWJsZT4odmFsdWUpKSk7CiB9CkBAIC00NTU5LDcgKzQ1NjYsNyBAQCB2
b2lkIHRlc3RGbG9hdEltbVRvSW50MzJCaXR3aXNlQ2FzdChmbG9hCiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBl
bmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpOwogCi0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBh
cmd1bWVudCkpOwpAQCAtNDU3NCw3ICs0NTgxLDcgQEAgdm9pZCB0ZXN0Qml0d2lzZUNhc3RPbkZs
b2F0SW5NZW1vcnkoZmxvYQogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwog
ICAgIE1lbW9yeVZhbHVlKiBsb2FkRmxvYXQgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+
KHByb2MsIExvYWQsIEZsb2F0LCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIGNhc3Qg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgbG9h
ZEZsb2F0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBjYXN0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgY2FzdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxl
QW5kUnVuPGludDMyX3Q+KHByb2MsICZ2YWx1ZSksIGJpdHdpc2VfY2FzdDxpbnQzMl90Pih2YWx1
ZSkpKTsKIH0KQEAgLTQ1ODUsNyArNDU5Miw3IEBAIHZvaWQgdGVzdEludDMyQkFyZ1RvRmxvYXRC
aXR3aXNlQ2FzdChpbnQKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwog
ICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKIAotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQp
KTsKQEAgLTQ1OTksNyArNDYwNiw3IEBAIHZvaWQgdGVzdEludDMyQkltbVRvRmxvYXRCaXR3aXNl
Q2FzdChpbnQKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZh
bHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdp
bigpLCB2YWx1ZSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBC
aXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50KSk7CkBAIC00NjE0LDcgKzQ2MjEsNyBAQCB2
b2lkIHRlc3RUd29CaXR3aXNlQ2FzdE9uSW50MzIoaW50MzJfdCB2CiAgICAgVmFsdWUqIGFyZ3Vt
ZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFZhbHVlKiBmaXJzdCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFs
dWUqIHNlY29uZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9y
aWdpbigpLCBmaXJzdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kKTsKIAogICAgIENIRUNLKGlzSWRlbnRp
Y2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgdmFsdWUpLCB2YWx1ZSkpOwogfQpAQCAt
NDYyNiw3ICs0NjMzLDcgQEAgdm9pZCB0ZXN0Qml0d2lzZUNhc3RPbkludDMySW5NZW1vcnkoaW50
MwogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVl
KiBsb2FkRmxvYXQgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIElu
dDMyLCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIGNhc3QgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgbG9hZEZsb2F0KTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgY2FzdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihw
cm9jLCAmdmFsdWUpLCBiaXR3aXNlX2Nhc3Q8ZmxvYXQ+KHZhbHVlKSkpOwogfQpAQCAtNDYzNyw3
ICs0NjQ0LDcgQEAgdm9pZCB0ZXN0Q29udmVydERvdWJsZVRvRmxvYXRBcmcoZG91YmxlIAogICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50
ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJ
bmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiBhc0Zsb2F0ID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgYXJndW1lbnQpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFzRmxv
YXQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBhc0Zsb2F0KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48Zmxv
YXQ+KHByb2MsIHZhbHVlKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlKSkpOwogfQpAQCAtNDY0
OCw3ICs0NjU1LDcgQEAgdm9pZCB0ZXN0Q29udmVydERvdWJsZVRvRmxvYXRJbW0oZG91YmxlIAog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3Vt
ZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCB2
YWx1ZSk7CiAgICAgVmFsdWUqIGFzRmxvYXQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBhcmd1bWVudCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNGbG9hdCk7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFzRmxvYXQp
OwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYyksIHN0
YXRpY19jYXN0PGZsb2F0Pih2YWx1ZSkpKTsKIH0KQEAgLTQ2NjAsNyArNDY2Nyw3IEBAIHZvaWQg
dGVzdENvbnZlcnREb3VibGVUb0Zsb2F0TWVtKGRvdWJsZSAKICAgICBWYWx1ZSogYWRkcmVzcyA9
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIwKTsKICAgICBNZW1vcnlWYWx1ZSogbG9hZGVkRG91YmxlID0gcm9vdC0+
YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBEb3VibGUsIE9yaWdpbigpLCBhZGRy
ZXNzKTsKICAgICBWYWx1ZSogYXNGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
RG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIGxvYWRlZERvdWJsZSk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNGbG9hdCk7CisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFzRmxv
YXQpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYywg
JnZhbHVlKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlKSkpOwogfQpAQCAtNDY3Myw3ICs0Njgw
LDcgQEAgdm9pZCB0ZXN0Q29udmVydEZsb2F0VG9Eb3VibGVBcmcoZmxvYXQgdgogICAgICAgICBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiBmbG9hdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZh
bHVlKiBhc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJs
ZSwgT3JpZ2luKCksIGZsb2F0VmFsdWUpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFzRG91YmxlKTsKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNEb3VibGUpOwogCiAgICAg
Q0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIGJpdHdpc2VfY2Fz
dDxpbnQzMl90Pih2YWx1ZSkpLCBzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVlKSkpOwogfQpAQCAt
NDY4NCw3ICs0NjkxLDcgQEAgdm9pZCB0ZXN0Q29udmVydEZsb2F0VG9Eb3VibGVJbW0oZmxvYXQg
dgogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFy
Z3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IHZhbHVlKTsKICAgICBWYWx1ZSogYXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBhcmd1bWVudCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNEb3VibGUpOworICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0Rv
dWJsZSk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJv
YyksIHN0YXRpY19jYXN0PGRvdWJsZT4odmFsdWUpKSk7CiB9CkBAIC00Njk2LDcgKzQ3MDMsNyBA
QCB2b2lkIHRlc3RDb252ZXJ0RmxvYXRUb0RvdWJsZU1lbShmbG9hdCB2CiAgICAgVmFsdWUqIGFk
ZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWRlZEZsb2F0ID0g
cm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBGbG9hdCwgT3JpZ2luKCks
IGFkZHJlc3MpOwogICAgIFZhbHVlKiBhc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGxvYWRlZEZsb2F0KTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0RvdWJsZSk7
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IGFzRG91YmxlKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91Ymxl
Pihwcm9jLCAmdmFsdWUpLCBzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVlKSkpOwogfQpAQCAtNDcw
OSw3ICs0NzE2LDcgQEAgdm9pZCB0ZXN0Q29udmVydERvdWJsZVRvRmxvYXRUb0RvdWJsZVRvRgog
ICAgIFZhbHVlKiBhc0Zsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVU
b0Zsb2F0LCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZhbHVlKiBhc0RvdWJsZSA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGFzRmxvYXQp
OwogICAgIFZhbHVlKiBhc0Zsb2F0QWdhaW4gPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBhc0RvdWJsZSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNGbG9hdEFnYWluKTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNG
bG9hdEFnYWluKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+
KHByb2MsIHZhbHVlKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlKSkpOwogfQpAQCAtNDcyNSw3
ICs0NzMyLDcgQEAgdm9pZCB0ZXN0TG9hZEZsb2F0Q29udmVydERvdWJsZUNvbnZlcnRGbAogICAg
IFZhbHVlKiBhc0Zsb2F0QWdhaW4gPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJs
ZVRvRmxvYXQsIE9yaWdpbigpLCBhc0RvdWJsZSk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9y
eVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIGFzRmxvYXRBZ2FpbiwgZHN0KTsKIAotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJv
b3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBmbG9hdCBp
bnB1dCA9IHZhbHVlOwogICAgIGZsb2F0IG91dHB1dCA9IDAuOwpAQCAtNDc0MCw3ICs0NzQ3LDcg
QEAgdm9pZCB0ZXN0RnJvdW5kQXJnKGRvdWJsZSB2YWx1ZSkKICAgICBWYWx1ZSogYXJndW1lbnQg
PSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUklu
Zm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIGFzRmxvYXQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFs
dWUqIGFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91Ymxl
LCBPcmlnaW4oKSwgYXNGbG9hdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNEb3VibGUpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0RvdWJsZSk7CiAKICAgICBDSEVD
Syhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgdmFsdWUpLCBzdGF0aWNf
Y2FzdDxkb3VibGU+KHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZSkpKSk7CiB9CkBAIC00NzUzLDcg
KzQ3NjAsNyBAQCB2b2lkIHRlc3RGcm91bmRNZW0oZG91YmxlIHZhbHVlKQogICAgIE1lbW9yeVZh
bHVlKiBsb2FkZWREb3VibGUgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExv
YWQsIERvdWJsZSwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBhc0Zsb2F0ID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgbG9hZGVk
RG91YmxlKTsKICAgICBWYWx1ZSogYXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBhc0Zsb2F0KTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0RvdWJsZSk7CisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFzRG91
YmxlKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9j
LCAmdmFsdWUpLCBzdGF0aWNfY2FzdDxkb3VibGU+KHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZSkp
KSk7CiB9CkBAIC00NzY0LDcgKzQ3NzEsNyBAQCB2b2lkIHRlc3RJVG9ENjRBcmcoKQogICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHNyYyA9IHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKTsKICAgICBWYWx1ZSogc3JjQXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBzcmMpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRG91YmxlKTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNEb3Vi
bGUpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBmb3IgKGF1dG8gdGVz
dFZhbHVlIDogaW50NjRPcGVyYW5kcygpKQpAQCAtNDc3Nyw3ICs0Nzg0LDcgQEAgdm9pZCB0ZXN0
SVRvRjY0QXJnKCkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAg
IFZhbHVlKiBzcmMgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIHNyY0FzRmxvYXQgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0YsIE9yaWdpbigpLCBzcmMpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0Fz
RmxvYXQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBzcmNBc0Zsb2F0KTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAg
ICAgZm9yIChhdXRvIHRlc3RWYWx1ZSA6IGludDY0T3BlcmFuZHMoKSkKQEAgLTQ3OTEsNyArNDc5
OCw3IEBAIHZvaWQgdGVzdElUb0QzMkFyZygpCiAgICAgVmFsdWUqIHNyYyA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BS
MCkpOwogICAgIFZhbHVlKiBzcmNBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgSVRvRCwgT3JpZ2luKCksIHNyYyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNEb3VibGUpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0RvdWJsZSk7CiAK
ICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIGZvciAoYXV0byB0ZXN0VmFsdWUg
OiBpbnQzMk9wZXJhbmRzKCkpCkBAIC00ODA1LDcgKzQ4MTIsNyBAQCB2b2lkIHRlc3RJVG9GMzJB
cmcoKQogICAgIFZhbHVlKiBzcmMgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5j
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSogc3JjQXNG
bG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRiwgT3JpZ2luKCksIHNyYyk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgc3JjQXNGbG9hdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShw
cm9jKTsKICAgICBmb3IgKGF1dG8gdGVzdFZhbHVlIDogaW50MzJPcGVyYW5kcygpKQpAQCAtNDgx
OSw3ICs0ODI2LDcgQEAgdm9pZCB0ZXN0SVRvRDY0TWVtKCkKICAgICBWYWx1ZSogYWRkcmVzcyA9
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIwKTsKICAgICBNZW1vcnlWYWx1ZSogbG9hZGVkU3JjID0gcm9vdC0+YXBw
ZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQ2NCwgT3JpZ2luKCksIGFkZHJlc3Mp
OwogICAgIFZhbHVlKiBzcmNBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
SVRvRCwgT3JpZ2luKCksIGxvYWRlZFNyYyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNEb3VibGUpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0RvdWJsZSk7
CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIGludDY0X3QgaW5NZW1vcnlW
YWx1ZTsKQEAgLTQ4MzcsNyArNDg0NCw3IEBAIHZvaWQgdGVzdElUb0Y2NE1lbSgpCiAgICAgVmFs
dWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWRlZFNy
YyA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50NjQsIE9yaWdp
bigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogc3JjQXNGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgSVRvRiwgT3JpZ2luKCksIGxvYWRlZFNyYyk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdCk7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNy
Y0FzRmxvYXQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBpbnQ2NF90
IGluTWVtb3J5VmFsdWU7CkBAIC00ODU1LDcgKzQ4NjIsNyBAQCB2b2lkIHRlc3RJVG9EMzJNZW0o
KQogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVl
KiBsb2FkZWRTcmMgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIElu
dDMyLCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIHNyY0FzRG91YmxlID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgbG9hZGVkU3JjKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNB
c0RvdWJsZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHNyY0FzRG91YmxlKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7
CiAgICAgaW50MzJfdCBpbk1lbW9yeVZhbHVlOwpAQCAtNDg3Myw3ICs0ODgwLDcgQEAgdm9pZCB0
ZXN0SVRvRjMyTWVtKCkKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAg
ICBNZW1vcnlWYWx1ZSogbG9hZGVkU3JjID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihw
cm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBzcmNBc0Zs
b2F0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9GLCBPcmlnaW4oKSwgbG9hZGVk
U3JjKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBzcmNBc0Zsb2F0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21w
aWxlKHByb2MpOwogICAgIGludDMyX3QgaW5NZW1vcnlWYWx1ZTsKQEAgLTQ4OTAsNyArNDg5Nyw3
IEBAIHZvaWQgdGVzdElUb0Q2NEltbShpbnQ2NF90IHZhbHVlKQogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHNyYyA9IHJvb3QtPmFwcGVuZE5ldzxD
b25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSk7CiAgICAgVmFsdWUqIHNyY0FzRmxv
YXRpbmdQb2ludCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCks
IHNyYyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgc3JjQXNGbG9hdGluZ1BvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdGluZ1BvaW50KTsKICAgICBD
SEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYyksIHN0YXRpY19jYXN0
PGRvdWJsZT4odmFsdWUpKSk7CiB9CiAKQEAgLTQ5MDAsNyArNDkwNyw3IEBAIHZvaWQgdGVzdElU
b0Y2NEltbShpbnQ2NF90IHZhbHVlKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7CiAgICAgVmFsdWUqIHNyYyA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHBy
b2MsIE9yaWdpbigpLCB2YWx1ZSk7CiAgICAgVmFsdWUqIHNyY0FzRmxvYXRpbmdQb2ludCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRiwgT3JpZ2luKCksIHNyYyk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNG
bG9hdGluZ1BvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdGluZ1BvaW50KTsKICAgICBDSEVDSyhpc0lkZW50aWNh
bChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlKSkp
OwogfQogCkBAIC00OTEwLDcgKzQ5MTcsNyBAQCB2b2lkIHRlc3RJVG9EMzJJbW0oaW50MzJfdCB2
YWx1ZSkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVl
KiBzcmMgPSByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFs
dWUpOwogICAgIFZhbHVlKiBzcmNBc0Zsb2F0aW5nUG9pbnQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBzcmMpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXRpbmdQb2ludCk7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNy
Y0FzRmxvYXRpbmdQb2ludCk7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxk
b3VibGU+KHByb2MpLCBzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVlKSkpOwogfQogCkBAIC00OTIw
LDcgKzQ5MjcsNyBAQCB2b2lkIHRlc3RJVG9GMzJJbW0oaW50MzJfdCB2YWx1ZSkKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBzcmMgPSByb290LT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpOwogICAgIFZhbHVl
KiBzcmNBc0Zsb2F0aW5nUG9pbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0Ys
IE9yaWdpbigpLCBzcmMpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXRpbmdQb2ludCk7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXRpbmdQb2lu
dCk7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYyksIHN0
YXRpY19jYXN0PGZsb2F0Pih2YWx1ZSkpKTsKIH0KIApAQCAtNDkzMSw3ICs0OTM4LDcgQEAgdm9p
ZCB0ZXN0SVRvRFJlZHVjZWRUb0lUb0Y2NEFyZygpCiAgICAgVmFsdWUqIHNyYyA9IHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwKTsKICAgICBWYWx1ZSogc3JjQXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIElUb0QsIE9yaWdpbigpLCBzcmMpOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIHNyY0Fz
RG91YmxlKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKIAogICAgIGF1dG8gY29kZSA9
IGNvbXBpbGUocHJvYyk7CiAgICAgZm9yIChhdXRvIHRlc3RWYWx1ZSA6IGludDY0T3BlcmFuZHMo
KSkKQEAgLTQ5NDYsNyArNDk1Myw3IEBAIHZvaWQgdGVzdElUb0RSZWR1Y2VkVG9JVG9GMzJBcmco
KQogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiBzcmNBc0RvdWJsZSA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIHNyYyk7CiAgICAgVmFs
dWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zs
b2F0LCBPcmlnaW4oKSwgc3JjQXNEb3VibGUpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQp
OwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBmb3IgKGF1dG8gdGVzdFZh
bHVlIDogaW50MzJPcGVyYW5kcygpKQpAQCAtNDk2NCw3ICs0OTcxLDcgQEAgdm9pZCB0ZXN0U3Rv
cmUzMihpbnQgdmFsdWUpCiAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAg
ICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQ
dHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZzbG90KSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgMCkpOwogCiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCB2
YWx1ZSkpOwpAQCAtNDk4MCw3ICs0OTg3LDcgQEAgdm9pZCB0ZXN0U3RvcmVDb25zdGFudChpbnQg
dmFsdWUpCiAgICAgICAgIHByb2MsIFN0b3JlLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAmc2xvdCkpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIENIRUNLKCFjb21waWxl
QW5kUnVuPGludD4ocHJvYykpOwpAQCAtNTAwMCw3ICs1MDA3LDcgQEAgdm9pZCB0ZXN0U3RvcmVD
b25zdGFudFB0cihpbnRwdHJfdCB2YWx1ZQogICAgICAgICBwcm9jLCBTdG9yZSwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
dmFsdWUpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksICZzbG90KSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwog
CiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50Pihwcm9jKSk7CkBAIC01MDE4LDcgKzUwMjUs
NyBAQCB2b2lkIHRlc3RTdG9yZThBcmcoKQogICAgICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIxKTsKIAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2Ms
IFN0b3JlOCwgT3JpZ2luKCksIHZhbHVlLCBhZGRyZXNzKTsKLSAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOworICAgICAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFs
dWUpOwogCiAgICAgICAgIGludDhfdCBzdG9yYWdlID0gMDsKICAgICAgICAgQ0hFQ0soY29tcGls
ZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCA0MiwgJnN0b3JhZ2UpID09IDQyKTsKQEAgLTUwMzksNyAr
NTA0Niw3IEBAIHZvaWQgdGVzdFN0b3JlOEFyZygpCiAgICAgICAgIFZhbHVlKiBhZGRyZXNzID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBiYXNlRGlzcGxhY2Vt
ZW50LCBvZmZzZXQpOwogCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJv
YywgU3RvcmU4LCBPcmlnaW4oKSwgdmFsdWUsIGFkZHJlc3MpOwotICAgICAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CisgICAg
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2
YWx1ZSk7CiAKICAgICAgICAgaW50OF90IHN0b3JhZ2UgPSAwOwogICAgICAgICBDSEVDSyhjb21w
aWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIDQyLCAmc3RvcmFnZSwgMSkgPT0gNDIpOwpAQCAtNTA1
Nyw3ICs1MDY0LDcgQEAgdm9pZCB0ZXN0U3RvcmU4SW1tKCkKICAgICAgICAgVmFsdWUqIGFkZHJl
c3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMCk7CiAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZh
bHVlPihwcm9jLCBTdG9yZTgsIE9yaWdpbigpLCB2YWx1ZSwgYWRkcmVzcyk7Ci0gICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVl
KTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHZhbHVlKTsKIAogICAgICAgICBpbnQ4X3Qgc3RvcmFnZSA9IDA7CiAgICAgICAgIENI
RUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgJnN0b3JhZ2UpID09IDQyKTsKQEAgLTUw
NzcsNyArNTA4NCw3IEBAIHZvaWQgdGVzdFN0b3JlOEltbSgpCiAgICAgICAgIFZhbHVlKiBhZGRy
ZXNzID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBiYXNlRGlz
cGxhY2VtZW50LCBvZmZzZXQpOwogCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1
ZT4ocHJvYywgU3RvcmU4LCBPcmlnaW4oKSwgdmFsdWUsIGFkZHJlc3MpOwotICAgICAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7
CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCB2YWx1ZSk7CiAKICAgICAgICAgaW50OF90IHN0b3JhZ2UgPSAwOwogICAgICAgICBDSEVD
Syhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsICZzdG9yYWdlLCAxKSA9PSA0Mik7CkBAIC01
MTI5LDcgKzUxMzYsNyBAQCB2b2lkIHRlc3RTdG9yZVBhcnRpYWw4Qml0UmVnaXN0ZXJPblg4Nigp
CiAgICAgLy8gaWYgd2UgdXNlIFg4NiBwYXJ0aWFsIHJlZ2lzdGVycy4KICAgICByb290LT5hcHBl
bmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlOCwgT3JpZ2luKCksIHBhdGNocG9pbnQsIHdo
ZXJlVG9TdG9yZSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXR1cm5WYWx1ZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJldHVyblZhbHVlKTsKIAogICAgIGludDhf
dCBzdG9yYWdlID0gMHhmZjsKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2Ms
IDB4MTIzNDU2NzhhYmNkZWYxMiwgJnN0b3JhZ2UpID09IDB4MTIzNDU2NzhhYmNkZWYxMik7CkBA
IC01MTQ3LDcgKzUxNTQsNyBAQCB2b2lkIHRlc3RTdG9yZTE2QXJnKCkKICAgICAgICAgVmFsdWUq
IGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CiAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1l
bW9yeVZhbHVlPihwcm9jLCBTdG9yZTE2LCBPcmlnaW4oKSwgdmFsdWUsIGFkZHJlc3MpOwotICAg
ICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCB2YWx1ZSk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCB2YWx1ZSk7CiAKICAgICAgICAgaW50MTZfdCBzdG9yYWdlID0gLTE7CiAg
ICAgICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgNDIsICZzdG9yYWdlKSA9
PSA0Mik7CkBAIC01MTY4LDcgKzUxNzUsNyBAQCB2b2lkIHRlc3RTdG9yZTE2QXJnKCkKICAgICAg
ICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3Jp
Z2luKCksIGJhc2VEaXNwbGFjZW1lbnQsIG9mZnNldCk7CiAKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZTE2LCBPcmlnaW4oKSwgdmFsdWUsIGFkZHJlc3Mp
OwotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCB2YWx1ZSk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CiAKICAgICAgICAgaW50MTZfdCBzdG9yYWdlID0g
LTE7CiAgICAgICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgNDIsICZzdG9y
YWdlLCAxKSA9PSA0Mik7CkBAIC01MTg2LDcgKzUxOTMsNyBAQCB2b2lkIHRlc3RTdG9yZTE2SW1t
KCkKICAgICAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZTE2LCBPcmlnaW4oKSwgdmFs
dWUsIGFkZHJlc3MpOwotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CiAKICAgICAgICAgaW50MTZf
dCBzdG9yYWdlID0gLTE7CiAgICAgICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJv
YywgJnN0b3JhZ2UpID09IDQyKTsKQEAgLTUyMDYsNyArNTIxMyw3IEBAIHZvaWQgdGVzdFN0b3Jl
MTZJbW0oKQogICAgICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQWRkLCBPcmlnaW4oKSwgYmFzZURpc3BsYWNlbWVudCwgb2Zmc2V0KTsKIAogICAgICAg
ICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlMTYsIE9yaWdpbigpLCB2
YWx1ZSwgYWRkcmVzcyk7Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKIAogICAgICAgICBpbnQx
Nl90IHN0b3JhZ2UgPSAtMTsKICAgICAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihw
cm9jLCAmc3RvcmFnZSwgMSkgPT0gNDIpOwpAQCAtNTIxOCw3ICs1MjI1LDcgQEAgdm9pZCB0ZXN0
VHJ1bmMoaW50NjRfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKQEAgLTUyMzEsNyArNTIzOCw3IEBAIHZvaWQg
dGVzdEFkZDEoaW50IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKQEAgLTUyNDcsNyArNTI1NCw3IEBAIHZvaWQgdGVz
dEFkZDFQdHIoaW50cHRyX3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAtNTI2MSw3ICs1MjY4LDcgQEAgdm9p
ZCB0ZXN0TmVnMzIoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIFN1YiwgT3JpZ2luKCksCkBAIC01Mjc3LDcgKzUyODQsNyBAQCB2
b2lkIHRlc3ROZWdQdHIoaW50cHRyX3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBTdWIsIE9yaWdpbigpLApAQCAtNTMwMiw3ICs1MzA5LDcg
QEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkMzIoaW50IGFtb3VudCkKICAgICAgICAgICAgICAgICBw
cm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSks
CiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIDApKTsKIApAQCAtNTMyMyw3ICs1MzMwLDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2Fk
SW1tMzIoaW50IGFtb3VudCkKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1
ZT4ocHJvYywgTG9hZCwgSW50MzIsIE9yaWdpbigpLCBzbG90UHRyKSwKICAgICAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhbW91bnQpKSwKICAg
ICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgMCkpOwogCkBAIC01MzQ2LDcgKzUzNTMsNyBAQCB2b2lkIHRlc3RTdG9yZUFkZExvYWQ4KGlu
dCBhbW91bnQsIEIzOjpPCiAgICAgICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAog
ICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSkpLAogICAgICAgICBzbG90UHRyKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTUzNjcs
NyArNTM3NCw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9hZEltbTgoaW50IGFtb3VudCwgQjMKICAg
ICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgbG9hZE9wY29kZSwg
T3JpZ2luKCksIHNsb3RQdHIpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIGFtb3VudCkpLAogICAgICAgICBzbG90UHRyKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTUzOTAsNyAr
NTM5Nyw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9hZDE2KGludCBhbW91bnQsIEIzOjoKICAgICAg
ICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjApKSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNTQxMSw3ICs1NDE4LDcgQEAgdm9pZCB0ZXN0
U3RvcmVBZGRMb2FkSW1tMTYoaW50IGFtb3VudCwgQgogICAgICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PE1lbW9yeVZhbHVlPihwcm9jLCBsb2FkT3Bjb2RlLCBPcmlnaW4oKSwgc2xvdFB0ciksCiAg
ICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
YW1vdW50KSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNTQzMiw3ICs1NDM5LDcgQEAgdm9pZCB0ZXN0U3Rv
cmVBZGRMb2FkNjQoaW50IGFtb3VudCkKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1v
cnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50NjQsIE9yaWdpbigpLCBzbG90UHRyKSwKICAgICAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BS
SW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNTQ1Myw3ICs1NDYwLDcgQEAg
dm9pZCB0ZXN0U3RvcmVBZGRMb2FkSW1tNjQoaW50NjRfdCBhbW91bgogICAgICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQ2NCwgT3JpZ2luKCksIHNs
b3RQdHIpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIGFtb3VudCkpLAogICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTU0ODUsNyArNTQ5Miw3IEBAIHZv
aWQgdGVzdFN0b3JlQWRkTG9hZDMySW5kZXgoaW50IGFtb3VudCkKICAgICAgICAgICAgICAgICBw
cm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSks
CiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIDApKTsKIApAQCAtNTUxNSw3ICs1NTIyLDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2Fk
SW1tMzJJbmRleChpbnQgYW1vdQogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZh
bHVlPihwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2luKCksIHNsb3RQdHIpLAogICAgICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFtb3VudCkpLAog
ICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAwKSk7CiAKQEAgLTU1NDcsNyArNTU1NCw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9hZDhJ
bmRleChpbnQgYW1vdW50LCAKICAgICAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCks
CiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSksCiAgICAgICAgIHNsb3RQdHIpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNTU3
Nyw3ICs1NTg0LDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkSW1tOEluZGV4KGludCBhbW91bgog
ICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBsb2FkT3Bjb2Rl
LCBPcmlnaW4oKSwgc2xvdFB0ciksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYW1vdW50KSksCiAgICAgICAgIHNsb3RQdHIpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNTYwOSw3
ICs1NjE2LDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkMTZJbmRleChpbnQgYW1vdW50LAogICAg
ICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgICAgICByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMCkpKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01NjM5LDcgKzU2NDYsNyBAQCB2b2lkIHRl
c3RTdG9yZUFkZExvYWRJbW0xNkluZGV4KGludCBhbW91CiAgICAgICAgICAgICByb290LT5hcHBl
bmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIGxvYWRPcGNvZGUsIE9yaWdpbigpLCBzbG90UHRyKSwK
ICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBhbW91bnQpKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01NjY5LDcgKzU2NzYsNyBAQCB2b2lkIHRlc3RT
dG9yZUFkZExvYWQ2NEluZGV4KGludCBhbW91bnQpCiAgICAgICAgICAgICByb290LT5hcHBlbmRO
ZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDY0LCBPcmlnaW4oKSwgc2xvdFB0ciksCiAg
ICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICBzbG90UHRyKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTU2OTksNyArNTcw
Niw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9hZEltbTY0SW5kZXgoaW50NjRfdCAKICAgICAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50NjQsIE9yaWdp
bigpLCBzbG90UHRyKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+
KHByb2MsIE9yaWdpbigpLCBhbW91bnQpKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01NzIzLDcgKzU3MzAs
NyBAQCB2b2lkIHRlc3RTdG9yZVN1YkxvYWQoaW50IGFtb3VudCkKICAgICAgICAgICAgICAgICBw
cm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSks
CiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIDApKTsKIApAQCAtNTc1MCw3ICs1NzU3LDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2Fk
SW50ZXJmZXJlbmNlKGludCBhbQogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKICAg
ICAgICAgICAgIGxvYWQsIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBhbW91bnQpKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01Nzc0LDcgKzU3ODEsNyBAQCB2b2lkIHRl
c3RTdG9yZUFkZEFuZExvYWQoaW50IGFtb3VudCwgaW50CiAgICAgICAgICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFtb3VudCkpLAogICAgICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIG1hc2sp
KSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgMCkpOwogCkBAIC01Nzk5LDcgKzU4MDYsNyBAQCB2b2lkIHRlc3RTdG9yZU5lZ0xv
YWQzMihpbnQzMl90IHZhbHVlKQogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZh
bHVlPihwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2luKCksIHNsb3RQdHIpKSwKICAgICAgICAgc2xv
dFB0cik7CiAgICAgCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAg
ICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYykpOwpAQCAtNTgyMyw3ICs1ODMw
LDcgQEAgdm9pZCB0ZXN0U3RvcmVOZWdMb2FkUHRyKGludHB0cl90IHZhbHVlKQogICAgICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgp
LCBPcmlnaW4oKSwgc2xvdFB0cikpLAogICAgICAgICBzbG90UHRyKTsKICAgICAKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1
bjxpbnQzMl90Pihwcm9jKSk7CkBAIC01ODM0LDcgKzU4NDEsNyBAQCB2b2lkIHRlc3RBZGQxVW5j
b21tdXRlZChpbnQgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAtNTg1Miw3ICs1ODU5LDcgQEAgdm9pZCB0ZXN0
TG9hZE9mZnNldCgpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAg
ICBpbnQgYXJyYXlbXSA9IHsgMSwgMiB9OwogICAgIENvbnN0UHRyVmFsdWUqIGFycmF5UHRyID0g
cm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhcnJheSk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKQEAg
LTU4NjgsNyArNTg3NSw3IEBAIHZvaWQgdGVzdExvYWRPZmZzZXROb3RDb25zdGFudCgpCiAgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBpbnQgYXJyYXlbXSA9IHsg
MSwgMiB9OwogICAgIFZhbHVlKiBhcnJheVB0ciA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAtNTg4NCw3
ICs1ODkxLDcgQEAgdm9pZCB0ZXN0TG9hZE9mZnNldFVzaW5nQWRkKCkKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIGludCBhcnJheVtdID0geyAxLCAyIH07CiAg
ICAgQ29uc3RQdHJWYWx1ZSogYXJyYXlQdHIgPSByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIGFycmF5KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAtNTkyNSw3ICs1OTMyLDcgQEAgdm9pZCB0ZXN0
TG9hZE9mZnNldFVzaW5nQWRkSW50ZXJmZXJlbmNlKAogICAgICAgICBwcm9jLCBTdG9yZSwgT3Jp
Z2luKCksIHRoZU51bWJlck9mVGhlQmVhc3QsIG90aGVyQXJyYXlQdHIsIDApOwogICAgIHJvb3Qt
PmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgIHByb2MsIFN0b3JlLCBPcmlnaW4oKSwg
dGhlTnVtYmVyT2ZUaGVCZWFzdCwgb3RoZXJBcnJheVB0ciwgc2l6ZW9mKGludCkpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksIGxlZnQsIHJp
Z2h0KSk7CkBAIC01OTQxLDcgKzU5NDgsNyBAQCB2b2lkIHRlc3RMb2FkT2Zmc2V0VXNpbmdBZGRO
b3RDb25zdGFudCgpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAg
ICBpbnQgYXJyYXlbXSA9IHsgMSwgMiB9OwogICAgIFZhbHVlKiBhcnJheVB0ciA9IHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9y
aWdpbigpLApAQCAtNTk3Nyw3ICs1OTg0LDcgQEAgdm9pZCB0ZXN0TG9hZEFkZHJTaGlmdCh1bnNp
Z25lZCBzaGlmdCkKIAogICAgICpzbG90ID0gODY3NTMwOTsKICAgICAKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxN
ZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2luKCksCkBA
IC01OTkzLDcgKzYwMDAsNyBAQCB2b2lkIHRlc3RGcmFtZVBvaW50ZXIoKQogewogICAgIFByb2Nl
ZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEZyYW1lUG9pbnRlciwgT3JpZ2luKCkpKTsKIApAQCAtNjAx
Niw3ICs2MDIzLDcgQEAgdm9pZCB0ZXN0T3ZlcnJpZGVGcmFtZVBvaW50ZXIoKQogICAgICAgICBW
YWx1ZSogZnAgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZyYW1lUG9pbnRlciwgT3Jp
Z2luKCkpOwogICAgICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBTdWIsIE9yaWdpbigpLCBmcCwgb2Zmc2V0KTsKIAotICAgICAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgICAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0KTsKICAgICAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAxKSk7CiAg
ICAgfQogICAgIHsKQEAgLTYwMzIsNyArNjAzOSw3IEBAIHZvaWQgdGVzdE92ZXJyaWRlRnJhbWVQ
b2ludGVyKCkKICAgICAgICAgVmFsdWUqIG9mZnNldEFyZyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgb2Zmc2V0LCBhcmcpOwogICAgICAgICBWYWx1ZSogcmVz
dWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBvZmZzZXRB
cmcsIG9mZnNldEZQKTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgICAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICAgICAgQ0hF
Q0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAxLCAyKSk7CiAgICAgfQogfQpAQCAtNjA0
MSw3ICs2MDQ4LDcgQEAgdm9pZCB0ZXN0U3RhY2tTbG90KCkKIHsKICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFNsb3RCYXNlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBwcm9jLmFkZFN0YWNrU2xvdCgxKSkpOwog
CkBAIC02MDU0LDcgKzYwNjEsNyBAQCB2b2lkIHRlc3RMb2FkRnJvbUZyYW1lUG9pbnRlcigpCiB7
CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2Fk
LCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwKQEAgLTYwODEsNyArNjA4OCw3IEBAIHZvaWQgdGVz
dFN0b3JlTG9hZFN0YWNrU2xvdChpbnQgdmFsdWUpCiAgICAgICAgICAgICByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BS
MCkpLAogICAgICAgICBzdGFjayk7CiAgICAgCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHBy
b2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwgc3RhY2spKTsKIApAQCAtNjExNiw3ICs2MTIzLDcg
QEAgdm9pZCB0ZXN0TG9hZChCMzo6T3Bjb2RlIG9wY29kZSwgSW5wdXRUeQogICAgICAgICBQcm9j
ZWR1cmUgcHJvYzsKICAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
ICAgICAgICAgCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAg
ICAgICAgICAgICAgICBwcm9jLCBvcGNvZGUsIHR5cGUsIE9yaWdpbigpLApAQCAtNjEzMCw3ICs2
MTM3LDcgQEAgdm9pZCB0ZXN0TG9hZChCMzo6T3Bjb2RlIG9wY29kZSwgSW5wdXRUeQogICAgICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKICAgICAgICAgCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVl
PigKICAgICAgICAgICAgICAgICBwcm9jLCBvcGNvZGUsIHR5cGUsIE9yaWdpbigpLApAQCAtNjE0
NCw3ICs2MTUxLDcgQEAgdm9pZCB0ZXN0TG9hZChCMzo6T3Bjb2RlIG9wY29kZSwgSW5wdXRUeQog
ICAgICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKICAgICAgICAgCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9y
eVZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBvcGNvZGUsIHR5cGUsIE9yaWdpbigpLApA
QCAtNjE1OSw3ICs2MTY2LDcgQEAgdm9pZCB0ZXN0TG9hZChCMzo6T3Bjb2RlIG9wY29kZSwgSW5w
dXRUeQogICAgICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlW
YWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgb3Bjb2RlLCB0eXBlLCBPcmlnaW4oKSwKQEAg
LTYxNzksNyArNjE4Niw3IEBAIHZvaWQgdGVzdExvYWQoQjM6Ok9wY29kZSBvcGNvZGUsIElucHV0
VHkKICAgICAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFs
dWU+KAogICAgICAgICAgICAgICAgIHByb2MsIG9wY29kZSwgdHlwZSwgT3JpZ2luKCksCkBAIC02
MjE5LDcgKzYyMjYsNyBAQCB2b2lkIHRlc3RTdG9yZUZsb2F0KGRvdWJsZSBpbnB1dCkKICAgICAg
ICAgVmFsdWUqIGRlc3RpbmF0aW9uQWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIGFyZ3Vt
ZW50QXNGbG9hdCwgZGVzdGluYXRpb25BZGRyZXNzKTsKIAotICAgICAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgICAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgICAgICBmbG9hdCBvdXRwdXQg
PSAwLjsKICAgICAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgaW5wdXQs
ICZvdXRwdXQpKTsKQEAgLTYyNDMsNyArNjI1MCw3IEBAIHZvaWQgdGVzdFN0b3JlRmxvYXQoZG91
YmxlIGlucHV0KQogCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywg
U3RvcmUsIE9yaWdpbigpLCBhcmd1bWVudEFzRmxvYXQsIGRlc3RpbmF0aW9uQWRkcmVzcyk7CiAK
LSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsK
KyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAK
ICAgICAgICAgZmxvYXQgb3V0cHV0ID0gMC47CiAgICAgICAgIENIRUNLKCFjb21waWxlQW5kUnVu
PGludDY0X3Q+KHByb2MsIGlucHV0LCAmb3V0cHV0IC0gMSwgMSkpOwpAQCAtNjI2Myw3ICs2Mjcw
LDcgQEAgdm9pZCB0ZXN0U3RvcmVEb3VibGVDb25zdGFudEFzRmxvYXQoZG91YgogCiAgICAgcm9v
dC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHZhbHVlQXNG
bG9hdCwgZGVzdGluYXRpb25BZGRyZXNzKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBmbG9hdCBvdXRwdXQgPSAwLjsKICAgICBDSEVDSygh
Y29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCBpbnB1dCwgJm91dHB1dCkpOwpAQCAtNjI4OSw3
ICs2Mjk2LDcgQEAgdm9pZCB0ZXN0U3BpbGxHUCgpCiAgICAgZm9yIChWYWx1ZSogdmFsdWUgOiBz
b3VyY2VzKQogICAgICAgICB0b3RhbCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRk
LCBPcmlnaW4oKSwgdG90YWwsIHZhbHVlKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHRvdGFsKTsKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdG90YWwpOwogICAgIGNvbXBp
bGVBbmRSdW48aW50Pihwcm9jLCAxLCAyKTsKIH0KIApAQCAtNjMxMiw3ICs2MzE5LDcgQEAgdm9p
ZCB0ZXN0U3BpbGxGUCgpCiAgICAgZm9yIChWYWx1ZSogdmFsdWUgOiBzb3VyY2VzKQogICAgICAg
ICB0b3RhbCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgdG90
YWwsIHZhbHVlKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHRvdGFsKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdG90YWwpOwogICAgIGNvbXBpbGVBbmRSdW48ZG91Ymxl
Pihwcm9jLCAxLjEsIDIuNSk7CiB9CiAKQEAgLTYzMjgsNyArNjMzNSw3IEBAIHZvaWQgdGVzdElu
dDMyVG9Eb3VibGVQYXJ0aWFsUmVnaXN0ZXJTdGEKICAgICBWYWx1ZSogY291bnRlciA9IHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKTsKICAgICBVcHNpbG9uVmFsdWUqIG9yaWdpbmFsVG90YWwgPSByb290LT5hcHBl
bmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdG90YWwpOwogICAgIFVwc2lsb25W
YWx1ZSogb3JpZ2luYWxDb3VudGVyID0gcm9vdC0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJv
YywgT3JpZ2luKCksIGNvdW50ZXIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sobG9vcCkpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJs
b2NrKGxvb3ApKTsKIAogICAgIC8vIExvb3AuCiAgICAgVmFsdWUqIGxvb3BDb3VudGVyID0gbG9v
cC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBQaGksIEludDY0LCBPcmlnaW4oKSk7CkBAIC02MzQ1
LDEzICs2MzUyLDEzIEBAIHZvaWQgdGVzdEludDMyVG9Eb3VibGVQYXJ0aWFsUmVnaXN0ZXJTdGEK
ICAgICBWYWx1ZSogZGVjQ291bnRlciA9IGxvb3AtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3Vi
LCBPcmlnaW4oKSwgbG9vcENvdW50ZXIsIGxvb3AtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAxKSk7CiAgICAgVXBzaWxvblZhbHVlKiBkZWNDb3VudGVyVXBzaWxvbiA9
IGxvb3AtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCBkZWNDb3VudGVy
KTsKICAgICBkZWNDb3VudGVyVXBzaWxvbi0+c2V0UGhpKGxvb3BDb3VudGVyKTsKLSAgICBsb29w
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBsb29wLT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIGRlY0NvdW50ZXIs
CiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhsb29wKSwgRnJlcXVlbnRlZEJsb2NrKGRvbmUpKTsK
IAogICAgIC8vIFRhaWwuCi0gICAgZG9uZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgdXBkYXRlZFRvdGFsKTsKKyAgICBkb25lLT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdXBkYXRlZFRvdGFsKTsKICAgICBDSEVD
Syhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgMTAwMDAwKSwgNTAwMDA1
MDAwMC4pKTsKIH0KIApAQCAtNjM3MSw3ICs2Mzc4LDcgQEAgdm9pZCB0ZXN0SW50MzJUb0RvdWJs
ZVBhcnRpYWxSZWdpc3RlcldpdAogICAgIFZhbHVlKiBmb3JQYWRkaW5nSW5wdXRBZGRyZXNzID0g
cm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAmZm9yUGFkZGlu
Z0lucHV0KTsKICAgICB1aW50NjRfdCBmb3JQYWRkaW5nT3V0cHV0OwogICAgIFZhbHVlKiBmb3JQ
YWRkaW5nT3V0cHV0QWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgJmZvclBhZGRpbmdPdXRwdXQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sobG9vcCkpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJl
cXVlbnRlZEJsb2NrKGxvb3ApKTsKIAogICAgIC8vIExvb3AuCiAgICAgVmFsdWUqIGxvb3BDb3Vu
dGVyID0gbG9vcC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBQaGksIEludDY0LCBPcmlnaW4oKSk7
CkBAIC02NDA1LDEzICs2NDEyLDEzIEBAIHZvaWQgdGVzdEludDMyVG9Eb3VibGVQYXJ0aWFsUmVn
aXN0ZXJXaXQKICAgICBWYWx1ZSogZGVjQ291bnRlciA9IGxvb3AtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgU3ViLCBPcmlnaW4oKSwgbG9vcENvdW50ZXIsIGxvb3AtPmFwcGVuZE5ldzxDb25zdDY0
VmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAgICAgVXBzaWxvblZhbHVlKiBkZWNDb3VudGVy
VXBzaWxvbiA9IGxvb3AtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCBk
ZWNDb3VudGVyKTsKICAgICBkZWNDb3VudGVyVXBzaWxvbi0+c2V0UGhpKGxvb3BDb3VudGVyKTsK
LSAgICBsb29wLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBsb29wLT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIGRl
Y0NvdW50ZXIsCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhsb29wKSwgRnJlcXVlbnRlZEJsb2Nr
KGRvbmUpKTsKIAogICAgIC8vIFRhaWwuCi0gICAgZG9uZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdXBkYXRlZFRvdGFsKTsKKyAgICBkb25lLT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdXBkYXRlZFRvdGFsKTsK
ICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgMTAwMDAw
KSwgNTAwMDA1MDAwMC4pKTsKIH0KIApAQCAtNjQyMiwxOCArNjQyOSwxOCBAQCB2b2lkIHRlc3RC
cmFuY2goKQogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAg
IEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjApKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJl
cXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTY0NDksMTYgKzY0NTYs
MTYgQEAgdm9pZCB0ZXN0QnJhbmNoUHRyKCkKICAgICBCYXNpY0Jsb2NrKiB0aGVuQ2FzZSA9IHBy
b2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2so
KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBG
cmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNjQ3NSw3ICs2NDgy
LDcgQEAgdm9pZCB0ZXN0RGlhbW9uZCgpCiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9j
LmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZG9uZSA9IHByb2MuYWRkQmxvY2soKTsKIAot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwK
QEAgLTY0ODQsMTYgKzY0OTEsMTYgQEAgdm9pZCB0ZXN0RGlhbW9uZCgpCiAKICAgICBVcHNpbG9u
VmFsdWUqIHRoZW5SZXN1bHQgPSB0aGVuQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4oCiAg
ICAgICAgIHByb2MsIE9yaWdpbigpLCB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIDEpKTsKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhkb25lKSk7CisgICAgdGhl
bkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVl
bnRlZEJsb2NrKGRvbmUpKTsKIAogICAgIFVwc2lsb25WYWx1ZSogZWxzZVJlc3VsdCA9IGVsc2VD
YXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPigKICAgICAgICAgcHJvYywgT3JpZ2luKCksIGVs
c2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwotICAg
IGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwg
RnJlcXVlbnRlZEJsb2NrKGRvbmUpKTsKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZG9uZSkpOwogCiAgICAg
VmFsdWUqIHBoaSA9IGRvbmUtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBJbnQzMiwgT3Jp
Z2luKCkpOwogICAgIHRoZW5SZXN1bHQtPnNldFBoaShwaGkpOwogICAgIGVsc2VSZXN1bHQtPnNl
dFBoaShwaGkpOwotICAgIGRvbmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHBoaSk7CisgICAgZG9uZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHBoaSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2Mp
OwogICAgIENIRUNLKGludm9rZTxpbnQ+KCpjb2RlLCA0MikgPT0gMSk7CkBAIC02NTA3LDcgKzY1
MTQsNyBAQCB2b2lkIHRlc3RCcmFuY2hOb3RFcXVhbCgpCiAgICAgQmFzaWNCbG9jayogdGhlbkNh
c2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFk
ZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBOb3RF
cXVhbCwgT3JpZ2luKCksCkBAIC02NTE3LDExICs2NTI0LDExIEBAIHZvaWQgdGVzdEJyYW5jaE5v
dEVxdWFsKCkKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAwKSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1
ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC02NTM3LDcgKzY1NDQsNyBA
QCB2b2lkIHRlc3RCcmFuY2hOb3RFcXVhbENvbW11dGUoKQogICAgIEJhc2ljQmxvY2sqIHRoZW5D
YXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5h
ZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTm90
RXF1YWwsIE9yaWdpbigpLApAQCAtNjU0NywxMSArNjU1NCwxMSBAQCB2b2lkIHRlc3RCcmFuY2hO
b3RFcXVhbENvbW11dGUoKQogICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSkpLAogICAg
ICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2Up
KTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2Fz
ZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBl
bHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDApKTsKIApAQCAtNjU2Nyw3ICs2NTc0LDcgQEAgdm9pZCB0ZXN0QnJhbmNoTm90
RXF1YWxOb3RFcXVhbCgpCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2Nr
KCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBOb3RFcXVhbCwgT3JpZ2luKCksCkBA
IC02NTgwLDExICs2NTg3LDExIEBAIHZvaWQgdGVzdEJyYW5jaE5vdEVxdWFsTm90RXF1YWwoKQog
ICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IDApKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2Nr
KGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTY2MDAsNyArNjYwNyw3IEBAIHZvaWQgdGVz
dEJyYW5jaEVxdWFsKCkKICAgICBCYXNpY0Jsb2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2so
KTsKICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEVxdWFsLCBPcmlnaW4oKSwKQEAgLTY2
MTAsMTEgKzY2MTcsMTEgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWwoKQogICAgICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKSwKICAgICAgICAg
RnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAK
LSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAw
KSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNh
c2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAxKSk7CiAKQEAgLTY2MzAsNyArNjYzNyw3IEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsRXF1
YWwoKQogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJh
c2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KAogICAgICAgICAgICAgcHJvYywgRXF1YWwsIE9yaWdpbigpLApAQCAtNjY0MywxMSArNjY1
MCwxMSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbEVxdWFsKCkKICAgICAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSksCiAgICAgICAgIEZyZXF1
ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAg
dGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwog
Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
MCkpOwogCkBAIC02NjYzLDcgKzY2NzAsNyBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbENvbW11dGUo
KQogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2lj
QmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgRXF1YWwsIE9yaWdpbigpLApAQCAtNjY3MywxMSArNjY4MCwx
MSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbENvbW11dGUoKQogICAgICAgICAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKSkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVu
dGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIApAQCAtNjY5Myw3ICs2NzAwLDcgQEAg
dm9pZCB0ZXN0QnJhbmNoRXF1YWxFcXVhbDEoKQogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0g
cHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9j
aygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgRXF1YWwsIE9y
aWdpbigpLApAQCAtNjcwNiwxMSArNjcxMywxMSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbEVxdWFs
MSgpCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgMSkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVk
QmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIApAQCAtNjcyOCw3ICs2NzM1LDcgQEAgdm9p
ZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJlZEFyZ3MoZG91YgogCiAgICAgVmFsdWUqIGFyZ3Vt
ZW50QSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
RlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogYXJndW1lbnRCID0gcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVu
dEZQUjEpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEVxdWFsT3JV
bm9yZGVyZWQsIE9yaWdpbigpLApAQCAtNjczNiwxMSArNjc0MywxMSBAQCB2b2lkIHRlc3RCcmFu
Y2hFcXVhbE9yVW5vcmRlcmVkQXJncyhkb3ViCiAgICAgICAgICAgICBhcmd1bWVudEIpLAogICAg
ICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2Up
KTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2Fz
ZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDQyKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
ZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAtMTMpKTsKIApAQCAtNjc2MCw3ICs2NzY3LDcgQEAgdm9pZCB0ZXN0QnJhbmNo
RXF1YWxPclVub3JkZXJlZEFyZ3MoZmxvYQogICAgIFZhbHVlKiBhcmd1bWVudEIgPSByb290LT5h
cHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEZsb2F0LCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjEpKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNo
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIEVxdWFsT3JVbm9yZGVyZWQsIE9yaWdpbigpLApAQCAtNjc2OCwxMSArNjc3NSwxMSBA
QCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVkQXJncyhmbG9hCiAgICAgICAgICAgICBh
cmd1bWVudEIpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVk
QmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMTMpKTsKIApAQCAtNjc5NywxNiArNjgwNCwxNiBA
QCB2b2lkIHRlc3RCcmFuY2hOb3RFcXVhbEFuZE9yZGVyZWRBcmdzKGRvCiAgICAgICAgIHByb2Ms
IEVxdWFsLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIDApLAogICAgICAgICBlcXVhbE9yVW5vcmRlcmVkKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIG5vdEVxdWFsQW5k
T3JkZXJlZCwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJs
b2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCA0MikpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTEzKSk7CiAKQEAgLTY4MzMsMTYgKzY4NDAsMTYgQEAg
dm9pZCB0ZXN0QnJhbmNoTm90RXF1YWxBbmRPcmRlcmVkQXJncyhmbAogICAgICAgICBwcm9jLCBF
cXVhbCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAwKSwKICAgICAgICAgZXF1YWxPclVub3JkZXJlZCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICBub3RFcXVhbEFuZE9y
ZGVyZWQsCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9j
ayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgNDIpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xMykpOwogCkBAIC02ODU5LDcgKzY4NjYsNyBAQCB2b2lk
IHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVkRG91YmxlQXJnCiAKICAgICBWYWx1ZSogYXJndW1l
bnRBID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBG
UFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiBhcmd1bWVudEIgPSByb290LT5hcHBl
bmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEVxdWFsT3JVbm9yZGVyZWQsIE9yaWdpbigpLApA
QCAtNjg2NywxMSArNjg3NCwxMSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVkRG91
YmxlQXJnCiAgICAgICAgICAgICBhcmd1bWVudEIpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2so
dGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7CiAKLSAgICBlbHNl
Q2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxz
ZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMTMpKTsKIApA
QCAtNjg5MCw3ICs2ODk3LDcgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJlZEZsb2F0
QXJnSQogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiBhcmd1bWVudEIgPSBy
b290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7CiAKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBFcXVhbE9yVW5vcmRlcmVkLCBP
cmlnaW4oKSwKQEAgLTY4OTgsMTEgKzY5MDUsMTEgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVu
b3JkZXJlZEZsb2F0QXJnSQogICAgICAgICAgICAgYXJndW1lbnRCKSwKICAgICAgICAgRnJlcXVl
bnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0
aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
dGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwog
Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
LTEzKSk7CiAKQEAgLTY5MTksNyArNjkyNiw3IEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsT3JVbm9y
ZGVyZWREb3VibGVJbW0KIAogICAgIFZhbHVlKiBhcmd1bWVudEEgPSByb290LT5hcHBlbmROZXc8
Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiBhcmd1bWVu
dEIgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEVxdWFsT3JVbm9yZGVy
ZWQsIE9yaWdpbigpLApAQCAtNjkyNywxMSArNjkzNCwxMSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVh
bE9yVW5vcmRlcmVkRG91YmxlSW1tCiAgICAgICAgICAgICBhcmd1bWVudEIpLAogICAgICAgICBG
cmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAot
ICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQy
KSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNh
c2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAtMTMpKTsKIApAQCAtNjk0OSw3ICs2OTU2LDcgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxP
clVub3JkZXJlZEZsb2F0SW1tcwogICAgIFZhbHVlKiBhcmd1bWVudEEgPSByb290LT5hcHBlbmRO
ZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIGFyZ3Vt
ZW50QiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBi
KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEVxdWFsT3JVbm9y
ZGVyZWQsIE9yaWdpbigpLApAQCAtNjk1NywxMSArNjk2NCwxMSBAQCB2b2lkIHRlc3RCcmFuY2hF
cXVhbE9yVW5vcmRlcmVkRmxvYXRJbW1zCiAgICAgICAgICAgICBhcmd1bWVudEIpLAogICAgICAg
ICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsK
IAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IDQyKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxz
ZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCAtMTMpKTsKIApAQCAtNjk4Myw3ICs2OTkwLDcgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1
YWxPclVub3JkZXJlZEZsb2F0V2l0aAogICAgIFZhbHVlKiBhcmd1bWVudDFBc0RvdWJsZSA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGFyZ3Vt
ZW50MSk7CiAgICAgVmFsdWUqIGFyZ3VtZW50MkFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgYXJndW1lbnQyKTsKIAotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEVxdWFsT3JVbm9yZGVyZWQsIE9yaWdp
bigpLApAQCAtNjk5MSwxMSArNjk5OCwxMSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRl
cmVkRmxvYXRXaXRoCiAgICAgICAgICAgICBhcmd1bWVudDJBc0RvdWJsZSksCiAgICAgICAgIEZy
ZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0g
ICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIp
KTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2Fz
ZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIC0xMykpOwogCkBAIC03MDEwLDE2ICs3MDE3LDE2IEBAIHZvaWQgdGVzdEJyYW5jaEZvbGQo
aW50IHZhbHVlKQogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwog
ICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpLAogICAgICAgICBGcmVxdWVu
dGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRo
ZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0
aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAot
ICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDAp
KTsKIApAQCAtNzAzNCwyMyArNzA0MSwyMyBAQCB2b2lkIHRlc3REaWFtb25kRm9sZChpbnQgdmFs
dWUpCiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFz
aWNCbG9jayogZG9uZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRo
ZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKICAgICBVcHNpbG9uVmFsdWUq
IHRoZW5SZXN1bHQgPSB0aGVuQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4oCiAgICAgICAg
IHByb2MsIE9yaWdpbigpLCB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDEpKTsKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhkb25lKSk7CisgICAgdGhlbkNhc2Ut
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJs
b2NrKGRvbmUpKTsKIAogICAgIFVwc2lsb25WYWx1ZSogZWxzZVJlc3VsdCA9IGVsc2VDYXNlLT5h
cHBlbmROZXc8VXBzaWxvblZhbHVlPigKICAgICAgICAgcHJvYywgT3JpZ2luKCksIGVsc2VDYXNl
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwotICAgIGVsc2VD
YXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVl
bnRlZEJsb2NrKGRvbmUpKTsKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZG9uZSkpOwogCiAgICAgVmFsdWUq
IHBoaSA9IGRvbmUtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBJbnQzMiwgT3JpZ2luKCkp
OwogICAgIHRoZW5SZXN1bHQtPnNldFBoaShwaGkpOwogICAgIGVsc2VSZXN1bHQtPnNldFBoaShw
aGkpOwotICAgIGRvbmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHBoaSk7CisgICAgZG9uZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHBoaSk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYykg
PT0gISF2YWx1ZSk7CiB9CkBAIC03MDYyLDcgKzcwNjksNyBAQCB2b2lkIHRlc3RCcmFuY2hOb3RF
cXVhbEZvbGRQdHIoaW50cHRyX3QgCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFk
ZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBOb3RFcXVhbCwgT3JpZ2lu
KCksCkBAIC03MDcwLDExICs3MDc3LDExIEBAIHZvaWQgdGVzdEJyYW5jaE5vdEVxdWFsRm9sZFB0
cihpbnRwdHJfdCAKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgMCkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBG
cmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNzA4OCw3ICs3MDk1
LDcgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxGb2xkUHRyKGludHB0cl90IHZhbAogICAgIEJhc2lj
QmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VD
YXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFu
Y2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgRXF1YWwsIE9yaWdpbigpLApAQCAtNzA5NiwxMSArNzEwMywxMSBAQCB2b2lkIHRl
c3RCcmFuY2hFcXVhbEZvbGRQdHIoaW50cHRyX3QgdmFsCiAgICAgICAgICAgICByb290LT5hcHBl
bmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKSwKICAgICAgICAgRnJlcXVl
bnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0
aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
dGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAK
LSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAw
KSk7CiAKQEAgLTcxMTQsMTggKzcxMjEsMTggQEAgdm9pZCB0ZXN0QnJhbmNoTG9hZFB0cigpCiAg
ICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9j
ayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwKICAg
ICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVu
Q2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNhc2Ut
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNl
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC03MTQ0
LDE4ICs3MTUxLDE4IEBAIHZvaWQgdGVzdEJyYW5jaExvYWQzMigpCiAgICAgQmFzaWNCbG9jayog
dGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBw
cm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BS
MCkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2so
ZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNzE3NCwxOCArNzE4MSwxOCBAQCB2b2lkIHRl
c3RCcmFuY2hMb2FkOFMoKQogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9j
aygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZDhTLCBPcmlnaW4o
KSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9j
ayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2Ut
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNl
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxz
ZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVs
c2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBA
IC03MjA0LDE4ICs3MjExLDE4IEBAIHZvaWQgdGVzdEJyYW5jaExvYWQ4WigpCiAgICAgQmFzaWNC
bG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNh
c2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5j
aCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBMb2FkOFosIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2Nr
KGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTcyMzQsMTggKzcyNDEsMTggQEAgdm9pZCB0
ZXN0QnJhbmNoTG9hZDE2UygpCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJs
b2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkMTZTLCBPcmln
aW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIEZyZXF1ZW50ZWRC
bG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNh
c2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5D
YXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAg
ZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwog
CkBAIC03MjY0LDE4ICs3MjcxLDE4IEBAIHZvaWQgdGVzdEJyYW5jaExvYWQxNlooKQogICAgIEJh
c2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVs
c2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBC
cmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAog
ICAgICAgICAgICAgcHJvYywgTG9hZDE2WiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVk
QmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNzI5NSw3ICs3MzAyLDcgQEAgdm9p
ZCB0ZXN0QnJhbmNoOFdpdGhMb2FkOFpJbmRleCgpCiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2Ug
PSBwcm9jLmFkZEJsb2NrKCk7CiAKICAgICBpbnQgbG9nU2NhbGUgPSAxOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEFib3ZlLCBPcmlnaW4oKSwKQEAgLTczMTEsMTEg
KzczMTgsMTEgQEAgdm9pZCB0ZXN0QnJhbmNoOFdpdGhMb2FkOFpJbmRleCgpCiAgICAgICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMjUwKSksCiAg
ICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2Fz
ZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5D
YXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgMSkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgMCkpOwogCkBAIC03MzU3LDcgKzczNjQsNyBAQCB2b2lkIHRlc3RDb21wbGV4
KHVuc2lnbmVkIG51bVZhcnMsIHVuc2lnCiAgICAgICAgICAgICBCYXNpY0Jsb2NrKiBlbHNlQmxv
Y2sgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgICAgICAgICBCYXNpY0Jsb2NrKiBjb250aW51YXRp
b24gPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICAgICAgICAgIGN1cnJlbnQtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgICAgICAgICAgY3VycmVudC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksIHZhcnNbcHJlZGljYXRl
VmFySW5kZXhdLAogICAgICAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQmxvY2spLCBG
cmVxdWVudGVkQmxvY2soZWxzZUJsb2NrKSk7CiAKQEAgLTczNjYsMTQgKzczNzMsMTQgQEAgdm9p
ZCB0ZXN0Q29tcGxleCh1bnNpZ25lZCBudW1WYXJzLCB1bnNpZwogICAgICAgICAgICAgICAgIHRo
ZW5CbG9jay0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCB2YXJzW3RoZW5J
bmNWYXJJbmRleF0sIG9uZSkpOwogICAgICAgICAgICAgVXBzaWxvblZhbHVlKiB0aGVuRWxzZVJl
c3VsdCA9IHRoZW5CbG9jay0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4oCiAgICAgICAgICAgICAg
ICAgcHJvYywgT3JpZ2luKCksIHZhcnNbZWxzZUluY1ZhckluZGV4XSk7Ci0gICAgICAgICAgICB0
aGVuQmxvY2stPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBG
cmVxdWVudGVkQmxvY2soY29udGludWF0aW9uKSk7CisgICAgICAgICAgICB0aGVuQmxvY2stPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2Nr
KGNvbnRpbnVhdGlvbikpOwogCiAgICAgICAgICAgICBVcHNpbG9uVmFsdWUqIGVsc2VFbHNlUmVz
dWx0ID0gZWxzZUJsb2NrLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPigKICAgICAgICAgICAgICAg
ICBwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgICAgICAgICBlbHNlQmxvY2stPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgdmFyc1tlbHNlSW5jVmFySW5kZXhdLCBvbmUpKTsK
ICAgICAgICAgICAgIFVwc2lsb25WYWx1ZSogZWxzZVRoZW5SZXN1bHQgPSBlbHNlQmxvY2stPmFw
cGVuZE5ldzxVcHNpbG9uVmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLCB2
YXJzW3RoZW5JbmNWYXJJbmRleF0pOwotICAgICAgICAgICAgZWxzZUJsb2NrLT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGNvbnRp
bnVhdGlvbikpOworICAgICAgICAgICAgZWxzZUJsb2NrLT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhjb250aW51YXRpb24pKTsKIAog
ICAgICAgICAgICAgVmFsdWUqIHRoZW5QaGkgPSBjb250aW51YXRpb24tPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgUGhpLCBJbnQzMiwgT3JpZ2luKCkpOwogICAgICAgICAgICAgdGhlblRoZW5SZXN1
bHQtPnNldFBoaSh0aGVuUGhpKTsKQEAgLTczOTgsNyArNzQwNSw3IEBAIHZvaWQgdGVzdENvbXBs
ZXgodW5zaWduZWQgbnVtVmFycywgdW5zaWcKICAgICAgICAgICAgIAogICAgICAgICAgICAgVmFs
dWUqIHN0YXJ0SW5kZXggPSB2YXJzWygoaSA+PiAxKSArIDEpICUgbnVtVmFyc107CiAgICAgICAg
ICAgICBWYWx1ZSogc3RhcnRTdW0gPSBjdXJyZW50LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgMCk7Ci0gICAgICAgICAgICBjdXJyZW50LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICAgICAgICAgIGN1cnJlbnQtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLCBzdGFydEluZGV4LAogICAgICAg
ICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhsb29wRW50cnkpLCBGcmVxdWVudGVkQmxvY2sobG9v
cFNraXApKTsKIApAQCAtNzQwNiw3ICs3NDEzLDcgQEAgdm9pZCB0ZXN0Q29tcGxleCh1bnNpZ25l
ZCBudW1WYXJzLCB1bnNpZwogICAgICAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLCBzdGFydElu
ZGV4KTsKICAgICAgICAgICAgIFVwc2lsb25WYWx1ZSogc3RhcnRTdW1Gb3JCb2R5ID0gbG9vcEVu
dHJ5LT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBPcmln
aW4oKSwgc3RhcnRTdW0pOwotICAgICAgICAgICAgbG9vcEVudHJ5LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3BCb2R5KSk7
CisgICAgICAgICAgICBsb29wRW50cnktPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1w
LCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3BCb2R5KSk7CiAKICAgICAgICAgICAgIFZh
bHVlKiBib2R5SW5kZXggPSBsb29wQm9keS0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBQaGksIElu
dDMyLCBPcmlnaW4oKSk7CiAgICAgICAgICAgICBzdGFydEluZGV4Rm9yQm9keS0+c2V0UGhpKGJv
ZHlJbmRleCk7CkBAIC03NDMxLDE5ICs3NDM4LDE5IEBAIHZvaWQgdGVzdENvbXBsZXgodW5zaWdu
ZWQgbnVtVmFycywgdW5zaWcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxv
b3BCb2R5LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPigKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgbnVtVmFycyAtIDEpKSksCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbG9vcEJvZHktPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAyKSkpKSk7Ci0gICAgICAgICAgICBsb29wQm9keS0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgICAgICAgICBsb29wQm9keS0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksIG5ld0JvZHlJbmRleCwK
ICAgICAgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2sobG9vcFJlZW50cnkpLCBGcmVxdWVudGVk
QmxvY2sobG9vcEV4aXQpKTsKIAogICAgICAgICAgICAgbG9vcFJlZW50cnktPmFwcGVuZE5ldzxV
cHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCBuZXdCb2R5SW5kZXgsIGJvZHlJbmRleCk7CiAg
ICAgICAgICAgICBsb29wUmVlbnRyeS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIG5ld0JvZHlTdW0sIGJvZHlTdW0pOwotICAgICAgICAgICAgbG9vcFJlZW50cnktPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxv
Y2sobG9vcEJvZHkpKTsKKyAgICAgICAgICAgIGxvb3BSZWVudHJ5LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhsb29wQm9keSkpOwog
CiAgICAgICAgICAgICBVcHNpbG9uVmFsdWUqIGV4aXRTdW0gPSBsb29wRXhpdC0+YXBwZW5kTmV3
PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIG5ld0JvZHlTdW0pOwotICAgICAgICAgICAg
bG9vcEV4aXQtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBG
cmVxdWVudGVkQmxvY2soY29udGludWF0aW9uKSk7CisgICAgICAgICAgICBsb29wRXhpdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2so
Y29udGludWF0aW9uKSk7CiAKICAgICAgICAgICAgIFVwc2lsb25WYWx1ZSogc2tpcFN1bSA9IGxv
b3BTa2lwLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgc3RhcnRTdW0p
OwotICAgICAgICAgICAgbG9vcFNraXAtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1
bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soY29udGludWF0aW9uKSk7CisgICAgICAgICAg
ICBsb29wU2tpcC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBG
cmVxdWVudGVkQmxvY2soY29udGludWF0aW9uKSk7CiAKICAgICAgICAgICAgIFZhbHVlKiBmaW5h
bFN1bSA9IGNvbnRpbnVhdGlvbi0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBQaGksIEludDMyLCBP
cmlnaW4oKSk7CiAgICAgICAgICAgICBleGl0U3VtLT5zZXRQaGkoZmluYWxTdW0pOwpAQCAtNzQ1
NCw3ICs3NDYxLDcgQEAgdm9pZCB0ZXN0Q29tcGxleCh1bnNpZ25lZCBudW1WYXJzLCB1bnNpZwog
ICAgICAgICB9CiAgICAgfQogCi0gICAgY3VycmVudC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFyc1swXSk7CisgICAgY3VycmVudC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhcnNbMF0pOwogCiAgICAgY29t
cGlsZShwcm9jKTsKIApAQCAtNzQ4MCw3ICs3NDg3LDcgQEAgdm9pZCB0ZXN0U2ltcGxlUGF0Y2hw
b2ludCgpCiAgICAgICAgICAgICBDSEVDSyhwYXJhbXNbMl0uaXNHUFIoKSk7CiAgICAgICAgICAg
ICBhZGQzMihqaXQsIHBhcmFtc1sxXS5ncHIoKSwgcGFyYW1zWzJdLmdwcigpLCBwYXJhbXNbMF0u
Z3ByKCkpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CiAKICAgICBD
SEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywgMSwgMikgPT0gMyk7CiB9CkBAIC03NTExLDcg
Kzc1MTgsNyBAQCB2b2lkIHRlc3RTaW1wbGVQYXRjaHBvaW50V2l0aG91dE91cHV0Q2xvCiAgICAg
ICAgIH0pOwogCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQWRkLCBPcmlnaW4oKSwgYXJnMSwgYXJnMik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAg
IENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAxLCAyKSA9PSAzKTsKIH0KQEAgLTc1NjAs
NyArNzU2Nyw3IEBAIHZvaWQgdGVzdFNpbXBsZVBhdGNocG9pbnRXaXRoT3VwdXRDbG9iYmUKIAog
ICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3Jp
Z2luKCksIHBhdGNocG9pbnQsCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
QWRkLCBPcmlnaW4oKSwgYXJnMSwgYXJnMikpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBD
SEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywgMSwgMikgPT0gNTgpOwogfQpAQCAtNzU5MSw3
ICs3NTk4LDcgQEAgdm9pZCB0ZXN0U2ltcGxlUGF0Y2hwb2ludFdpdGhvdXRPdXB1dENsbwogICAg
ICAgICB9KTsKIAogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEFkZCwgT3JpZ2luKCksIGFyZzEsIGFyZzIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAg
ICBDSEVDSyhjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgMS41LCAyLjUpID09IDQpOwogfQpA
QCAtNzYzMiw3ICs3NjM5LDcgQEAgdm9pZCB0ZXN0U2ltcGxlUGF0Y2hwb2ludFdpdGhPdXB1dENs
b2JiZQogCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
QWRkLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBBZGQsIE9yaWdpbigpLCBhcmcxLCBhcmcyKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsK
IAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCAxLjUsIDIuNSkgPT0gNTku
Nik7CiB9CkBAIC03NjU3LDcgKzc2NjQsNyBAQCB2b2lkIHRlc3RQYXRjaHBvaW50V2l0aEVhcmx5
Q2xvYmJlcigpCiAgICAgICAgICAgICAgICAgYWRkMzIoaml0LCBwYXJhbXNbMV0uZ3ByKCksIHBh
cmFtc1syXS5ncHIoKSwgcGFyYW1zWzBdLmdwcigpKTsKICAgICAgICAgICAgIH0pOwogCi0gICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHBhdGNocG9pbnQpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CiAKICAgICAgICAgQ0hFQ0soY29tcGlsZUFu
ZFJ1bjxpbnQ+KHByb2MsIDEsIDIpID09IDMpOwogICAgIH07CkBAIC03NjkwLDcgKzc2OTcsNyBA
QCB2b2lkIHRlc3RQYXRjaHBvaW50Q2FsbEFyZygpCiAgICAgICAgICAgICAgICAgQ0NhbGxIZWxw
ZXJzOjpBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBwYXJhbXNbMl0ub2Zmc2V0
RnJvbUZQKCkpLAogICAgICAgICAgICAgICAgIHBhcmFtc1swXS5ncHIoKSk7CiAgICAgICAgIH0p
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHBhdGNocG9pbnQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48
aW50Pihwcm9jLCAxLCAyKSA9PSAzKTsKIH0KQEAgLTc3MTMsNyArNzcyMCw3IEBAIHZvaWQgdGVz
dFBhdGNocG9pbnRGaXhlZFJlZ2lzdGVyKCkKICAgICAgICAgICAgIENIRUNLKHBhcmFtc1syXSA9
PSBWYWx1ZVJlcChHUFJJbmZvOjpyZWdUMSkpOwogICAgICAgICAgICAgYWRkMzIoaml0LCBHUFJJ
bmZvOjpyZWdUMCwgR1BSSW5mbzo6cmVnVDEsIHBhcmFtc1swXS5ncHIoKSk7CiAgICAgICAgIH0p
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHBhdGNocG9pbnQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48
aW50Pihwcm9jLCAxLCAyKSA9PSAzKTsKIH0KQEAgLTc3MzcsNyArNzc0NCw3IEBAIHZvaWQgdGVz
dFBhdGNocG9pbnRBbnkoVmFsdWVSZXAgcmVwKQogICAgICAgICAgICAgQ0hFQ0socGFyYW1zWzJd
LmlzR1BSKCkpOwogICAgICAgICAgICAgYWRkMzIoaml0LCBwYXJhbXNbMV0uZ3ByKCksIHBhcmFt
c1syXS5ncHIoKSwgcGFyYW1zWzBdLmdwcigpKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHBhdGNocG9pbnQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIDEsIDIp
ID09IDMpOwogfQpAQCAtNzc3Myw3ICs3NzgwLDcgQEAgdm9pZCB0ZXN0UGF0Y2hwb2ludEdQU2Ny
YXRjaCgpCiAgICAgICAgICAgICBDSEVDSyghcGFyYW1zLnVuYXZhaWxhYmxlUmVnaXN0ZXJzKCku
Z2V0KHBhcmFtcy5ncFNjcmF0Y2goMSkpKTsKICAgICAgICAgICAgIGFkZDMyKGppdCwgcGFyYW1z
WzFdLmdwcigpLCBwYXJhbXNbMl0uZ3ByKCksIHBhcmFtc1swXS5ncHIoKSk7CiAgICAgICAgIH0p
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHBhdGNocG9pbnQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48
aW50Pihwcm9jLCAxLCAyKSA9PSAzKTsKIH0KQEAgLTc4MDMsNyArNzgxMCw3IEBAIHZvaWQgdGVz
dFBhdGNocG9pbnRGUFNjcmF0Y2goKQogICAgICAgICAgICAgQ0hFQ0soIXBhcmFtcy51bmF2YWls
YWJsZVJlZ2lzdGVycygpLmdldChwYXJhbXMuZnBTY3JhdGNoKDEpKSk7CiAgICAgICAgICAgICBh
ZGQzMihqaXQsIHBhcmFtc1sxXS5ncHIoKSwgcGFyYW1zWzJdLmdwcigpLCBwYXJhbXNbMF0uZ3By
KCkpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CiAKICAgICBDSEVD
Syhjb21waWxlQW5kUnVuPGludD4ocHJvYywgMSwgMikgPT0gMyk7CiB9CkBAIC03ODQ1LDcgKzc4
NTIsNyBAQCB2b2lkIHRlc3RQYXRjaHBvaW50TG90c09mTGF0ZUFueXMoKQogICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9p
bnQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MpID09ICh0aGluZ3Muc2l6
ZSgpICogKHRoaW5ncy5zaXplKCkgLSAxKSkgLyAyKTsKIH0KQEAgLTc4NzMsNyArNzg4MCw3IEBA
IHZvaWQgdGVzdFBhdGNocG9pbnRBbnlJbW0oVmFsdWVSZXAgcmVwKQogICAgICAgICAgICAgICAg
IENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKHN0YXRpY19jYXN0PGludDMyX3Q+KHBhcmFtc1sy
XS52YWx1ZSgpKSksCiAgICAgICAgICAgICAgICAgcGFyYW1zWzFdLmdwcigpLCBwYXJhbXNbMF0u
Z3ByKCkpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CiAKICAgICBD
SEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywgMSkgPT0gNDMpOwogfQpAQCAtNzg5OSw3ICs3
OTA2LDcgQEAgdm9pZCB0ZXN0UGF0Y2hwb2ludE1hbnlJbW1zKCkKICAgICAgICAgICAgIENIRUNL
KHBhcmFtc1syXSA9PSBWYWx1ZVJlcDo6Y29uc3RhbnQoNDMwMDAwMDAwMDAwMDBsbCkpOwogICAg
ICAgICAgICAgQ0hFQ0socGFyYW1zWzNdID09IFZhbHVlUmVwOjpjb25zdGFudChiaXR3aXNlX2Nh
c3Q8aW50NjRfdD4oNDIuNSkpKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC03OTI1LDcgKzc5MzIsNyBAQCB2b2lkIHRl
c3RQYXRjaHBvaW50V2l0aFJlZ2lzdGVyUmVzdWx0KCkKICAgICAgICAgICAgIENIRUNLKHBhcmFt
c1syXS5pc0dQUigpKTsKICAgICAgICAgICAgIGFkZDMyKGppdCwgcGFyYW1zWzFdLmdwcigpLCBw
YXJhbXNbMl0uZ3ByKCksIEdQUkluZm86Om5vbkFyZ0dQUjApOwogICAgICAgICB9KTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRj
aHBvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcGF0Y2hwb2ludCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJv
YywgMSwgMikgPT0gMyk7CiB9CkBAIC03OTUxLDcgKzc5NTgsNyBAQCB2b2lkIHRlc3RQYXRjaHBv
aW50V2l0aFN0YWNrQXJndW1lbnRSZXN1CiAgICAgICAgICAgICBqaXQuYWRkMzIocGFyYW1zWzFd
LmdwcigpLCBwYXJhbXNbMl0uZ3ByKCksIGppdC5zY3JhdGNoUmVnaXN0ZXIoKSk7CiAgICAgICAg
ICAgICBqaXQuc3RvcmUzMihqaXQuc2NyYXRjaFJlZ2lzdGVyKCksIENDYWxsSGVscGVyczo6QWRk
cmVzcyhDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCAwKSk7CiAgICAgICAgIH0p
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHBhdGNocG9pbnQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48
aW50Pihwcm9jLCAxLCAyKSA9PSAzKTsKIH0KQEAgLTc5ODAsNyArNzk4Nyw3IEBAIHZvaWQgdGVz
dFBhdGNocG9pbnRXaXRoQW55UmVzdWx0KCkKICAgICAgICAgICAgIGppdC5jb252ZXJ0SW50MzJU
b0RvdWJsZShHUFJJbmZvOjpyZWdUMCwgRlBSSW5mbzo6ZnBSZWdUMCk7CiAgICAgICAgICAgICBq
aXQuc3RvcmVEb3VibGUoRlBSSW5mbzo6ZnBSZWdUMCwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQ
UkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBwYXJhbXNbMF0ub2Zmc2V0RnJvbUZQKCkpKTsKICAg
ICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOwogCiAgICAgQ0hFQ0soY29tcGls
ZUFuZFJ1bjxkb3VibGU+KHByb2MsIDEsIDIpID09IDMpOwogfQpAQCAtODAwMiw3ICs4MDA5LDcg
QEAgdm9pZCB0ZXN0U2ltcGxlQ2hlY2soKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVw
aWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUo
cHJvYyk7CkBAIC04MDIxLDcgKzgwMjgsNyBAQCB2b2lkIHRlc3RDaGVja0ZhbHNlKCkKICAgICAg
ICAgWyZdIChDQ2FsbEhlbHBlcnMmLCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7
CiAgICAgICAgICAgICBDSEVDSyghIlRoaXMgc2hvdWxkIG5vdCBoYXZlIGV4ZWN1dGVkIik7CiAg
ICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAg
IGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CkBAIC04MDQ3LDcgKzgwNTQsNyBAQCB2b2lkIHRl
c3RDaGVja1RydWUoKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAg
ICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIDApKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CkBAIC04
MDc4LDcgKzgwODUsNyBAQCB2b2lkIHRlc3RDaGVja0xlc3NUaGFuKCkKICAgICAgICAgICAgIGpp
dC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAg
ICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3Qt
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBhdXRv
IGNvZGUgPSBjb21waWxlKHByb2MpOwpAQCAtODEyNCw3ICs4MTMxLDcgQEAgdm9pZCB0ZXN0Q2hl
Y2tNZWdhQ29tYm8oKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAg
ICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIDApKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CkBAIC04
MTc5LDcgKzgxODYsNyBAQCB2b2lkIHRlc3RDaGVja1RyaWNreU1lZ2FDb21ibygpCiAgICAgICAg
ICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsK
ICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAg
ICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKQEAgLTgyNDMsNyArODI1MCw3IEBAIHZvaWQg
dGVzdENoZWNrVHdvTWVnYUNvbWJvcygpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBp
bG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShw
cm9jKTsKQEAgLTgyOTMsNyArODMwMCw3IEBAIHZvaWQgdGVzdENoZWNrVHdvTm9uUmVkdW5kYW50
TWVnYUNvbWJvcygKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBM
b2FkOFMsIE9yaWdpbigpLCBwdHIpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
QnJhbmNoLCBPcmlnaW4oKSwgYnJhbmNoUHJlZGljYXRlLAogICAgICAgICBGcmVxdWVudGVkQmxv
Y2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKICAgICAKQEAgLTgzMDks
NyArODMxNiw3IEBAIHZvaWQgdGVzdENoZWNrVHdvTm9uUmVkdW5kYW50TWVnYUNvbWJvcygKICAg
ICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJl
dCgpOwogICAgICAgICB9KTsKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCA0MykpOwogCiAgICAgQ2hlY2tWYWx1ZSogY2hlY2syID0gZWxzZUNhc2UtPmFwcGVu
ZE5ldzxDaGVja1ZhbHVlPihwcm9jLCBDaGVjaywgT3JpZ2luKCksIGNoZWNrUHJlZGljYXRlKTsK
QEAgLTgzMjQsNyArODMzMSw3IEBAIHZvaWQgdGVzdENoZWNrVHdvTm9uUmVkdW5kYW50TWVnYUNv
bWJvcygKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAg
ICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCA0NSkpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsK
QEAgLTgzNzgsNyArODM4NSw3IEBAIHZvaWQgdGVzdENoZWNrQWRkSW1tKCkKICAgICAgICAgICAg
IGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAg
ICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGNoZWNr
QWRkKSk7CiAKQEAgLTg0MTQsNyArODQyMSw3IEBAIHZvaWQgdGVzdENoZWNrQWRkSW1tQ29tbXV0
ZSgpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAg
IGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0Qs
IE9yaWdpbigpLCBjaGVja0FkZCkpOwogCkBAIC04NDQ5LDcgKzg0NTYsNyBAQCB2b2lkIHRlc3RD
aGVja0FkZEltbVNvbWVSZWdpc3RlcigpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBp
bG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVja0FkZCkpOwogCkBAIC04NDg2LDcg
Kzg0OTMsNyBAQCB2b2lkIHRlc3RDaGVja0FkZCgpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0
aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVja0FkZCkpOwogCkBAIC04
NTE5LDcgKzg1MjYsNyBAQCB2b2lkIHRlc3RDaGVja0FkZDY0KCkKICAgICAgICAgICAgIGppdC5l
bWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGNoZWNrQWRkKSk7
CiAKQEAgLTg1NDIsNyArODU0OSw3IEBAIHZvaWQgdGVzdENoZWNrQWRkRm9sZChpbnQgYSwgaW50
IGIpCiAgICAgICAgIFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9u
UGFyYW1zJikgewogICAgICAgICAgICAgQ0hFQ0soISJTaG91bGQgaGF2ZSBiZWVuIGZvbGRlZCIp
OwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCBjaGVja0FkZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrQWRkKTsKIAogICAgIGF1dG8gY29kZSA9
IGNvbXBpbGUocHJvYyk7CiAKQEAgLTg1NjMsNyArODU3MCw3IEBAIHZvaWQgdGVzdENoZWNrQWRk
Rm9sZEZhaWwoaW50IGEsIGludCBiKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxv
Z3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrQWRkKTsK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
Y2hlY2tBZGQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAtODYwMiw3
ICs4NjA5LDcgQEAgdm9pZCB0ZXN0Q2hlY2tBZGRBcmd1bWVudEFsaWFzaW5nNjQoKQogICAgIENo
ZWNrVmFsdWUqIGNoZWNrQWRkMyA9IHJvb3QtPmFwcGVuZE5ldzxDaGVja1ZhbHVlPihwcm9jLCBD
aGVja0FkZCwgT3JpZ2luKCksIGNoZWNrQWRkMSwgY2hlY2tBZGQyKTsKICAgICBjaGVja0FkZDMt
PnNldEdlbmVyYXRvcihbJl0gKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBTdGFja21hcEdlbmVy
YXRpb25QYXJhbXMmKSB7IGppdC5vb3BzKCk7IH0pOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tBZGQzKTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tBZGQz
KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgMSwgMiwgMykgPT0g
OCk7CiB9CkBAIC04NjQ1LDcgKzg2NTIsNyBAQCB2b2lkIHRlc3RDaGVja0FkZEFyZ3VtZW50QWxp
YXNpbmczMigpCiAgICAgQ2hlY2tWYWx1ZSogY2hlY2tBZGQzID0gcm9vdC0+YXBwZW5kTmV3PENo
ZWNrVmFsdWU+KHByb2MsIENoZWNrQWRkLCBPcmlnaW4oKSwgY2hlY2tBZGQxLCBjaGVja0FkZDIp
OwogICAgIGNoZWNrQWRkMy0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNv
bnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsgaml0Lm9vcHMoKTsgfSk7CiAKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVj
a0FkZDMpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBjaGVja0FkZDMpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihw
cm9jLCAxLCAyLCAzKSA9PSA4KTsKIH0KQEAgLTg2NzAsNyArODY3Nyw3IEBAIHZvaWQgdGVzdENo
ZWNrQWRkU2VsZk92ZXJmbG93NjQoKQogICAgIG9wYXF1ZVVzZS0+YXBwZW5kKENvbnN0cmFpbmVk
VmFsdWUoYXJnLCBWYWx1ZVJlcDo6U29tZVJlZ2lzdGVyKSk7CiAgICAgb3BhcXVlVXNlLT5zZXRH
ZW5lcmF0b3IoWyZdIChDQ2FsbEhlbHBlcnMmLCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJh
bXMmKSB7IH0pOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgY2hlY2tBZGQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja0FkZCk7CiAKICAgICBhdXRvIGNvZGUgPSBj
b21waWxlKHByb2MpOwogCkBAIC04NzAxLDcgKzg3MDgsNyBAQCB2b2lkIHRlc3RDaGVja0FkZFNl
bGZPdmVyZmxvdzMyKCkKICAgICBvcGFxdWVVc2UtPmFwcGVuZChDb25zdHJhaW5lZFZhbHVlKGFy
ZywgVmFsdWVSZXA6OlNvbWVSZWdpc3RlcikpOwogICAgIG9wYXF1ZVVzZS0+c2V0R2VuZXJhdG9y
KFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeyB9
KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIGNoZWNrQWRkKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tBZGQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShw
cm9jKTsKIApAQCAtODczNCw3ICs4NzQxLDcgQEAgdm9pZCB0ZXN0Q2hlY2tTdWJJbW0oKQogICAg
ICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0
KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4o
KSwgY2hlY2tTdWIpKTsKIApAQCAtODc3Niw3ICs4NzgzLDcgQEAgdm9pZCB0ZXN0Q2hlY2tTdWJC
YWRJbW0oKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAg
ICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJ
VG9ELCBPcmlnaW4oKSwgY2hlY2tTdWIpKTsKIApAQCAtODgxMyw3ICs4ODIwLDcgQEAgdm9pZCB0
ZXN0Q2hlY2tTdWIoKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAg
ICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tTdWIpKTsKIApAQCAtODg1MSw3ICs4ODU4LDcgQEAg
dm9pZCB0ZXN0Q2hlY2tTdWI2NCgpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9n
dWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVja1N1YikpOwogCkBAIC04ODc0LDcgKzg4
ODEsNyBAQCB2b2lkIHRlc3RDaGVja1N1YkZvbGQoaW50IGEsIGludCBiKQogICAgICAgICBbJl0g
KENDYWxsSGVscGVycyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsKICAgICAg
ICAgICAgIENIRUNLKCEiU2hvdWxkIGhhdmUgYmVlbiBmb2xkZWQiKTsKICAgICAgICAgfSk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
Y2hlY2tTdWIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBjaGVja1N1Yik7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwog
CkBAIC04ODk1LDcgKzg5MDIsNyBAQCB2b2lkIHRlc3RDaGVja1N1YkZvbGRGYWlsKGludCBhLCBp
bnQgYikKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAg
ICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja1N1Yik7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrU3ViKTsKIAogICAg
IGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKQEAgLTg5MjIsNyArODkyOSw3IEBAIHZvaWQg
dGVzdENoZWNrTmVnKCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwog
ICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgSVRvRCwgT3JpZ2luKCksIGNoZWNrTmVnKSk7CiAKQEAgLTg5NTIsNyArODk1OSw3IEBA
IHZvaWQgdGVzdENoZWNrTmVnNjQoKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxv
Z3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tOZWcpKTsKIApAQCAtODk4OSw3ICs4
OTk2LDcgQEAgdm9pZCB0ZXN0Q2hlY2tNdWwoKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlv
bkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tNdWwpKTsKIApAQCAtOTAz
MCw3ICs5MDM3LDcgQEAgdm9pZCB0ZXN0Q2hlY2tNdWxNZW1vcnkoKQogICAgICAgICAgICAgaml0
LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAg
IH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tNdWwp
KTsKIApAQCAtOTA3Nyw3ICs5MDg0LDcgQEAgdm9pZCB0ZXN0Q2hlY2tNdWwyKCkKICAgICAgICAg
ICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwog
ICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGNo
ZWNrTXVsKSk7CiAKQEAgLTkxMTAsNyArOTExNyw3IEBAIHZvaWQgdGVzdENoZWNrTXVsNjQoKQog
ICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQu
cmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmln
aW4oKSwgY2hlY2tNdWwpKTsKIApAQCAtOTEzMyw3ICs5MTQwLDcgQEAgdm9pZCB0ZXN0Q2hlY2tN
dWxGb2xkKGludCBhLCBpbnQgYikKICAgICAgICAgWyZdIChDQ2FsbEhlbHBlcnMmLCBjb25zdCBT
dGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7CiAgICAgICAgICAgICBDSEVDSyghIlNob3VsZCBo
YXZlIGJlZW4gZm9sZGVkIik7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrTXVsKTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tNdWwpOwog
CiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAtOTE1NCw3ICs5MTYxLDcgQEAg
dm9pZCB0ZXN0Q2hlY2tNdWxGb2xkRmFpbChpbnQgYSwgaW50IGIpCiAgICAgICAgICAgICBqaXQu
ZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAg
fSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgY2hlY2tNdWwpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCBjaGVja011bCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHBy
b2MpOwogCkBAIC05MTkzLDcgKzkyMDAsNyBAQCB2b2lkIHRlc3RDaGVja011bEFyZ3VtZW50QWxp
YXNpbmc2NCgpCiAgICAgQ2hlY2tWYWx1ZSogY2hlY2tNdWwzID0gcm9vdC0+YXBwZW5kTmV3PENo
ZWNrVmFsdWU+KHByb2MsIENoZWNrTXVsLCBPcmlnaW4oKSwgY2hlY2tNdWwxLCBjaGVja011bDIp
OwogICAgIGNoZWNrTXVsMy0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNv
bnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsgaml0Lm9vcHMoKTsgfSk7CiAKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVj
a011bDMpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBjaGVja011bDMpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihw
cm9jLCAyLCAzLCA0KSA9PSA3Mik7CiB9CkBAIC05MjM2LDcgKzkyNDMsNyBAQCB2b2lkIHRlc3RD
aGVja011bEFyZ3VtZW50QWxpYXNpbmczMigpCiAgICAgQ2hlY2tWYWx1ZSogY2hlY2tNdWwzID0g
cm9vdC0+YXBwZW5kTmV3PENoZWNrVmFsdWU+KHByb2MsIENoZWNrTXVsLCBPcmlnaW4oKSwgY2hl
Y2tNdWwxLCBjaGVja011bDIpOwogICAgIGNoZWNrTXVsMy0+c2V0R2VuZXJhdG9yKFsmXSAoQ0Nh
bGxIZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsgaml0Lm9v
cHMoKTsgfSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBjaGVja011bDMpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja011bDMpOwogCiAgICAgQ0hFQ0soY29tcGls
ZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCAyLCAzLCA0KSA9PSA3Mik7CiB9CkBAIC05MjY4LDcgKzky
NzUsNyBAQCB2b2lkIHRlc3RDaGVja011bDY0U1NocigpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1
bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVja011bCkpOwogCkBA
IC05Mjk0LDcgKzkzMDEsNyBAQCB2b2lkIGdlbmVyaWNUZXN0Q29tcGFyZSgKICAgICAgICAgVmFs
dWUqIHJpZ2h0VmFsdWUgPSByaWdodEZ1bmN0b3Iocm9vdCwgcHJvYyk7CiAgICAgICAgIFZhbHVl
KiBjb21wYXJpc29uUmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBvcGNvZGUs
IE9yaWdpbigpLCBsZWZ0VmFsdWUsIHJpZ2h0VmFsdWUpOwogICAgICAgICAKLSAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIE5vdEVxdWFs
LCBPcmlnaW4oKSwKQEAgLTkzMTQsNyArOTMyMSw3IEBAIHZvaWQgZ2VuZXJpY1Rlc3RDb21wYXJl
KAogICAgICAgICBWYWx1ZSogbGVmdFZhbHVlID0gbGVmdEZ1bmN0b3Iocm9vdCwgcHJvYyk7CiAg
ICAgICAgIFZhbHVlKiByaWdodFZhbHVlID0gcmlnaHRGdW5jdG9yKHJvb3QsIHByb2MpOwogCi0g
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAog
ICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBvcGNvZGUsIE9yaWdpbigp
LCBsZWZ0VmFsdWUsIHJpZ2h0VmFsdWUpLAogICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRo
ZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CkBAIC05MzI4LDkgKzkzMzUsOSBA
QCB2b2lkIGdlbmVyaWNUZXN0Q29tcGFyZSgKICAgICAgICAgICAgICAgICBDSEVDSyhwYXJhbXNb
MF0uaXNHUFIoKSk7CiAgICAgICAgICAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVz
dGVkSW1tMzIoMSksIHBhcmFtc1swXS5ncHIoKSk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAg
dGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHBhdGNocG9pbnQpOworICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOwogCi0gICAgICAgIGVsc2VDYXNlLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAg
ICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsK
IApAQCAtOTU2OSw3ICs5NTc2LDcgQEAgdm9pZCB0ZXN0RXF1YWxEb3VibGUoZG91YmxlIGxlZnQs
IGRvdWJsZQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
RXF1YWwsIE9yaWdpbigpLApAQCAtOTU4OCw3ICs5NTk1LDcgQEAgdm9pZCB0ZXN0Q2FsbFNpbXBs
ZShpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDQ2FsbFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIEludDMyLCBPcmlnaW4oKSwKQEAgLTk2MDYsMTYgKzk2MTMsMTYgQEAgdm9p
ZCB0ZXN0Q2FsbFJhcmUoaW50IGEsIGludCBiKQogICAgIEJhc2ljQmxvY2sqIGNvbW1vbiA9IHBy
b2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiByYXJlID0gcHJvYy5hZGRCbG9jaygpOwog
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMCksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhyYXJlLCBGcmVxdWVuY3lD
bGFzczo6UmFyZSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhjb21tb24pKTsKIAotICAgIGNv
bW1vbi0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgY29tbW9uLT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNvbW1vbi0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKICAgICAKLSAgICByYXJlLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByYXJlLT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJhcmUtPmFwcGVuZE5l
dzxDQ2FsbFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEludDMyLCBPcmlnaW4oKSwKQEAgLTk2
MzMsMTYgKzk2NDAsMTYgQEAgdm9pZCB0ZXN0Q2FsbFJhcmVMaXZlKGludCBhLCBpbnQgYiwgaW50
IAogICAgIEJhc2ljQmxvY2sqIGNvbW1vbiA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Js
b2NrKiByYXJlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCksCiAgICAgICAgIEZy
ZXF1ZW50ZWRCbG9jayhyYXJlLCBGcmVxdWVuY3lDbGFzczo6UmFyZSksCiAgICAgICAgIEZyZXF1
ZW50ZWRCbG9jayhjb21tb24pKTsKIAotICAgIGNvbW1vbi0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgY29tbW9uLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIGNvbW1vbi0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIDApKTsKICAgICAKLSAgICByYXJlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByYXJlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJhcmUtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBBZGQsIE9yaWdpbigpLApAQCAtOTY2Miw3ICs5NjY5LDcgQEAgdm9pZCB0ZXN0Q2FsbFNpbXBs
ZVB1cmUoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q0NhbGxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBJbnQzMiwgT3JpZ2luKCksIEVmZmVjdHM6Om5vbmUoKSwKQEAgLTk2
OTIsNyArOTY5OSw3IEBAIHZvaWQgdGVzdENhbGxGdW5jdGlvbldpdGhIZWxsYUFyZ3VtZW50cygK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBi
aXR3aXNlX2Nhc3Q8dm9pZCo+KGZ1bmN0aW9uV2l0aEhlbGxhQXJndW1lbnRzKSkpOwogICAgIGNh
bGwtPmNoaWxkcmVuKCkuYXBwZW5kVmVjdG9yKGFyZ3MpOwogICAgIAotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNhbGwpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYWxsKTsK
IAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jKSA9PSBmdW5jdGlvbldpdGhIZWxs
YUFyZ3VtZW50cygxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQs
IDE1LCAxNiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYpKTsKIH0KQEAg
LTk3MDEsNyArOTcwOCw3IEBAIHZvaWQgdGVzdFJldHVybkRvdWJsZShkb3VibGUgdmFsdWUpCiB7
CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFs
dWUpKTsKIApAQCAtOTcxMiw3ICs5NzE5LDcgQEAgdm9pZCB0ZXN0UmV0dXJuRmxvYXQoZmxvYXQg
dmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdp
bigpLCB2YWx1ZSkpOwogCkBAIC05NzI4LDcgKzk3MzUsNyBAQCB2b2lkIHRlc3RDYWxsU2ltcGxl
RG91YmxlKGRvdWJsZSBhLCBkb3ViCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDQ2FsbFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIERvdWJsZSwgT3JpZ2luKCksCkBAIC05NzU0LDcgKzk3NjEsNyBA
QCB2b2lkIHRlc3RDYWxsU2ltcGxlRmxvYXQoZmxvYXQgYSwgZmxvYXQgCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIxKSk7CiAgICAgVmFsdWUqIGZsb2F0VmFsdWUxID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MWludDMyKTsKICAgICBW
YWx1ZSogZmxvYXRWYWx1ZTIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VD
YXN0LCBPcmlnaW4oKSwgYXJndW1lbnQyaW50MzIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENDYWxsVmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgRmxvYXQsIE9yaWdpbigpLApAQCAtOTc4NCw3ICs5NzkxLDcg
QEAgdm9pZCB0ZXN0Q2FsbEZ1bmN0aW9uV2l0aEhlbGxhRG91YmxlQXJndQogICAgICAgICByb290
LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGJpdHdpc2VfY2FzdDx2
b2lkKj4oZnVuY3Rpb25XaXRoSGVsbGFEb3VibGVBcmd1bWVudHMpKSk7CiAgICAgY2FsbC0+Y2hp
bGRyZW4oKS5hcHBlbmRWZWN0b3IoYXJncyk7CiAgICAgCi0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FsbCk7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNhbGwpOwogCiAgICAg
Q0hFQ0soY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MpID09IGZ1bmN0aW9uV2l0aEhlbGxhRG91
YmxlQXJndW1lbnRzKDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAx
NCwgMTUsIDE2LCAxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjQsIDI1LCAyNikpOwogfQpA
QCAtOTgwOCw3ICs5ODE1LDcgQEAgdm9pZCB0ZXN0Q2FsbEZ1bmN0aW9uV2l0aEhlbGxhRmxvYXRB
cmd1bQogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIGJpdHdpc2VfY2FzdDx2b2lkKj4oZnVuY3Rpb25XaXRoSGVsbGFGbG9hdEFyZ3VtZW50cykp
KTsKICAgICBjYWxsLT5jaGlsZHJlbigpLmFwcGVuZFZlY3RvcihhcmdzKTsKICAgICAKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYWxs
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgY2FsbCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jKSA9PSBmdW5j
dGlvbldpdGhIZWxsYUZsb2F0QXJndW1lbnRzKDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEw
LCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjQs
IDI1LCAyNikpOwogfQpAQCAtOTgyMCw3ICs5ODI3LDcgQEAgdm9pZCB0ZXN0Q2hpbGxEaXYoaW50
IG51bSwgaW50IGRlbiwgaW50IAogICAgICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICAgICAgCi0gICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBDaGlsbERpdiwg
T3JpZ2luKCksCkBAIC05ODM5LDcgKzk4NDYsNyBAQCB2b2lkIHRlc3RDaGlsbERpdihpbnQgbnVt
LCBpbnQgZGVuLCBpbnQgCiAgICAgICAgIFByb2NlZHVyZSBwcm9jOwogICAgICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgICAgICAKLSAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIENoaWxsRGl2LCBPcmln
aW4oKSwKQEAgLTk4NTUsNyArOTg2Miw3IEBAIHZvaWQgdGVzdENoaWxsRGl2VHdpY2UoaW50IG51
bTEsIGludCBkZW4KICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgQWRkLCBPcmlnaW4oKSwKQEAgLTk4ODksNyArOTg5Niw3IEBAIHZvaWQgdGVzdENoaWxsRGl2
NjQoaW50NjRfdCBudW0sIGludDY0X3QKICAgICAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgICAgIAotICAgICAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgQ2hpbGxE
aXYsIE9yaWdpbigpLApAQCAtOTkwNCw3ICs5OTExLDcgQEAgdm9pZCB0ZXN0Q2hpbGxEaXY2NChp
bnQ2NF90IG51bSwgaW50NjRfdAogICAgICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICAgICAgCi0gICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBDaGlsbERpdiwg
T3JpZ2luKCksCkBAIC05OTI1LDcgKzk5MzIsNyBAQCB2b2lkIHRlc3RNb2RBcmcoaW50NjRfdCB2
YWx1ZSkKIAogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBWYWx1
ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigpLCBh
cmd1bWVudCwgYXJndW1lbnQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyghY29t
cGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCB2YWx1ZSkpOwogfQpAQCAtOTk0Myw3ICs5OTUwLDcg
QEAgdm9pZCB0ZXN0TW9kQXJncyhpbnQ2NF90IG51bWVyYXRvciwgaW50NgogICAgIFZhbHVlKiBh
cmd1bWVudDEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50MiA9IHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIxKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBNb2QsIE9yaWdpbigpLCBhcmd1bWVudDEsIGFyZ3VtZW50Mik7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgbnVtZXJhdG9y
LCBkZW5vbWluYXRvcikgPT0gbnVtZXJhdG9yICUgZGVub21pbmF0b3IpOwogfQpAQCAtOTk2MSw3
ICs5OTY4LDcgQEAgdm9pZCB0ZXN0TW9kSW1tcyhpbnQ2NF90IG51bWVyYXRvciwgaW50NgogICAg
IFZhbHVlKiBhcmd1bWVudDEgPSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgbnVtZXJhdG9yKTsKICAgICBWYWx1ZSogYXJndW1lbnQyID0gcm9vdC0+YXBwZW5k
TmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGRlbm9taW5hdG9yKTsKICAgICBWYWx1
ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigpLCBh
cmd1bWVudDEsIGFyZ3VtZW50Mik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGNv
bXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgbnVtZXJhdG9yLCBkZW5vbWluYXRvcikgPT0gbnVt
ZXJhdG9yICUgZGVub21pbmF0b3IpOwogfQpAQCAtOTk3Nyw3ICs5OTg0LDcgQEAgdm9pZCB0ZXN0
TW9kQXJnMzIoaW50MzJfdCB2YWx1ZSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBN
b2QsIE9yaWdpbigpLCBhcmd1bWVudCwgYXJndW1lbnQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAK
ICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCB2YWx1ZSkpOwogfQpAQCAt
OTk5Nyw3ICsxMDAwNCw3IEBAIHZvaWQgdGVzdE1vZEFyZ3MzMihpbnQzMl90IG51bWVyYXRvciwg
aW4KICAgICBWYWx1ZSogYXJndW1lbnQyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBU
cnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7CiAgICAgVmFsdWUqIHJl
c3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgYXJndW1l
bnQxLCBhcmd1bWVudDIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhjb21waWxl
QW5kUnVuPGludDMyX3Q+KHByb2MsIG51bWVyYXRvciwgZGVub21pbmF0b3IpID09IG51bWVyYXRv
ciAlIGRlbm9taW5hdG9yKTsKIH0KQEAgLTEwMDE1LDcgKzEwMDIyLDcgQEAgdm9pZCB0ZXN0TW9k
SW1tczMyKGludDMyX3QgbnVtZXJhdG9yLCBpbgogICAgIFZhbHVlKiBhcmd1bWVudDEgPSByb290
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgbnVtZXJhdG9yKTsKICAg
ICBWYWx1ZSogYXJndW1lbnQyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIGRlbm9taW5hdG9yKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigpLCBhcmd1bWVudDEsIGFyZ3VtZW50Mik7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJv
YywgbnVtZXJhdG9yLCBkZW5vbWluYXRvcikgPT0gbnVtZXJhdG9yICUgZGVub21pbmF0b3IpOwog
fQpAQCAtMTAwMjcsNyArMTAwMzQsNyBAQCB2b2lkIHRlc3RDaGlsbE1vZEFyZyhpbnQ2NF90IHZh
bHVlKQogCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFZhbHVl
KiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENoaWxsTW9kLCBPcmlnaW4o
KSwgYXJndW1lbnQsIGFyZ3VtZW50KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0so
IWNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgdmFsdWUpKTsKIH0KQEAgLTEwMDQwLDcgKzEw
MDQ3LDcgQEAgdm9pZCB0ZXN0Q2hpbGxNb2RBcmdzKGludDY0X3QgbnVtZXJhdG9yLAogICAgIFZh
bHVlKiBhcmd1bWVudDEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50MiA9
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIxKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBDaGlsbE1vZCwgT3JpZ2luKCksIGFyZ3VtZW50MSwgYXJndW1lbnQyKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9j
LCBudW1lcmF0b3IsIGRlbm9taW5hdG9yKSA9PSBjaGlsbE1vZChudW1lcmF0b3IsIGRlbm9taW5h
dG9yKSk7CiB9CkBAIC0xMDA1Myw3ICsxMDA2MCw3IEBAIHZvaWQgdGVzdENoaWxsTW9kSW1tcyhp
bnQ2NF90IG51bWVyYXRvciwKICAgICBWYWx1ZSogYXJndW1lbnQxID0gcm9vdC0+YXBwZW5kTmV3
PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIG51bWVyYXRvcik7CiAgICAgVmFsdWUqIGFy
Z3VtZW50MiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBk
ZW5vbWluYXRvcik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQ2hpbGxNb2QsIE9yaWdpbigpLCBhcmd1bWVudDEsIGFyZ3VtZW50Mik7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgbnVt
ZXJhdG9yLCBkZW5vbWluYXRvcikgPT0gY2hpbGxNb2QobnVtZXJhdG9yLCBkZW5vbWluYXRvcikp
OwogfQpAQCAtMTAwNjYsNyArMTAwNzMsNyBAQCB2b2lkIHRlc3RDaGlsbE1vZEFyZzMyKGludDMy
X3QgdmFsdWUpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgVmFs
dWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2hpbGxNb2QsIE9yaWdp
bigpLCBhcmd1bWVudCwgYXJndW1lbnQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVD
SyghY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCB2YWx1ZSkpOwogfQpAQCAtMTAwODEsNyAr
MTAwODgsNyBAQCB2b2lkIHRlc3RDaGlsbE1vZEFyZ3MzMihpbnQzMl90IG51bWVyYXRvCiAgICAg
VmFsdWUqIGFyZ3VtZW50MiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSkpOwogICAgIFZhbHVlKiByZXN1bHQgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENoaWxsTW9kLCBPcmlnaW4oKSwgYXJndW1lbnQx
LCBhcmd1bWVudDIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5k
UnVuPGludDMyX3Q+KHByb2MsIG51bWVyYXRvciwgZGVub21pbmF0b3IpID09IGNoaWxsTW9kKG51
bWVyYXRvciwgZGVub21pbmF0b3IpKTsKIH0KQEAgLTEwMDk0LDcgKzEwMTAxLDcgQEAgdm9pZCB0
ZXN0Q2hpbGxNb2RJbW1zMzIoaW50MzJfdCBudW1lcmF0bwogICAgIFZhbHVlKiBhcmd1bWVudDEg
PSByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgbnVtZXJhdG9y
KTsKICAgICBWYWx1ZSogYXJndW1lbnQyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIGRlbm9taW5hdG9yKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDaGlsbE1vZCwgT3JpZ2luKCksIGFyZ3VtZW50MSwgYXJn
dW1lbnQyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxp
bnQzMl90Pihwcm9jLCBudW1lcmF0b3IsIGRlbm9taW5hdG9yKSA9PSBjaGlsbE1vZChudW1lcmF0
b3IsIGRlbm9taW5hdG9yKSk7CiB9CkBAIC0xMDEwNSw3ICsxMDExMiw3IEBAIHZvaWQgdGVzdFN3
aXRjaCh1bnNpZ25lZCBkZWdyZWUsIHVuc2lnbmUKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwogCiAgICAgQmFzaWNCbG9jayogdGVybWluYXRlID0gcHJvYy5hZGRCbG9j
aygpOwotICAgIHRlcm1pbmF0ZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGVybWlu
YXRlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHRlcm1pbmF0ZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIDApKTsKIApAQCAtMTAxMTYsNyArMTAxMjMsNyBAQCB2b2lkIHRlc3RTd2l0Y2godW5z
aWduZWQgZGVncmVlLCB1bnNpZ25lCiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZGVn
cmVlOyArK2kpIHsKICAgICAgICAgQmFzaWNCbG9jayogbmV3QmxvY2sgPSBwcm9jLmFkZEJsb2Nr
KCk7Ci0gICAgICAgIG5ld0Jsb2NrLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAg
bmV3QmxvY2stPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgICAgICBuZXdCbG9jay0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLCAoaSAmIDEpID8gR1BSSW5m
bzo6YXJndW1lbnRHUFIyIDogR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7CkBAIC0xMDE0Nyw3ICsx
MDE1NCw3IEBAIHZvaWQgdGVzdFN3aXRjaENoaWxsRGl2KHVuc2lnbmVkIGRlZ3JlZSwKICAgICBW
YWx1ZSogcmlnaHQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMik7CiAKICAgICBCYXNpY0Jsb2NrKiB0ZXJtaW5h
dGUgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgdGVybWluYXRlLT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICB0ZXJtaW5hdGUtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGVybWluYXRlLT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC0xMDE1OSw3ICsxMDE2Niw3IEBAIHZv
aWQgdGVzdFN3aXRjaENoaWxsRGl2KHVuc2lnbmVkIGRlZ3JlZSwKICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgZGVncmVlOyArK2kpIHsKICAgICAgICAgQmFzaWNCbG9jayogbmV3QmxvY2sg
PSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICAgICAgbmV3QmxvY2stPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgICAgICBuZXdCbG9jay0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAgIG5ld0Jsb2NrLT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIENoaWxsRGl2LCBPcmlnaW4oKSwg
KGkgJiAxKSA/IHJpZ2h0IDogbGVmdCwgKGkgJiAxKSA/IGxlZnQgOiByaWdodCkpOwpAQCAtMTAx
NzAsNyArMTAxNzcsMTAgQEAgdm9pZCB0ZXN0U3dpdGNoQ2hpbGxEaXYodW5zaWduZWQgZGVncmVl
LAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgZGVncmVlOyArK2kpIHsKLSAgICAgICAgQ0hFQ0soaW52b2tlPGludDMyX3Q+KCpj
b2RlLCBpICogZ2FwLCA0MiwgMTEpID09ICgoaSAmIDEpID8gMTEvNDIgOiA0Mi8xMSkpOworICAg
ICAgICBkYXRhTG9nKCJpID0gIiwgaSwgIlxuIik7CisgICAgICAgIGludDMyX3QgcmVzdWx0ID0g
aW52b2tlPGludDMyX3Q+KCpjb2RlLCBpICogZ2FwLCA0MiwgMTEpOworICAgICAgICBkYXRhTG9n
KCJyZXN1bHQgPSAiLCByZXN1bHQsICJcbiIpOworICAgICAgICBDSEVDSyhyZXN1bHQgPT0gKChp
ICYgMSkgPyAxMS80MiA6IDQyLzExKSk7CiAgICAgICAgIGlmIChnYXAgPiAxKSB7CiAgICAgICAg
ICAgICBDSEVDSyghaW52b2tlPGludDMyX3Q+KCpjb2RlLCBpICogZ2FwICsgMSwgNDIsIDExKSk7
CiAgICAgICAgICAgICBDSEVDSyghaW52b2tlPGludDMyX3Q+KCpjb2RlLCBpICogZ2FwIC0gMSwg
NDIsIDExKSk7CkBAIC0xMDE4OCw3ICsxMDE5OCw3IEBAIHZvaWQgdGVzdFN3aXRjaFRhcmdldHRp
bmdTYW1lQmxvY2soKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAK
ICAgICBCYXNpY0Jsb2NrKiB0ZXJtaW5hdGUgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgdGVybWlu
YXRlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0ZXJtaW5hdGUtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGVy
bWluYXRlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNSkpOwogCkBA
IC0xMDE5OCw3ICsxMDIwOCw3IEBAIHZvaWQgdGVzdFN3aXRjaFRhcmdldHRpbmdTYW1lQmxvY2so
KQogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGVybWluYXRlKSk7CiAKICAgICBCYXNpY0Jsb2Nr
KiBvdGhlclRhcmdldCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICBvdGhlclRhcmdldC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgb3RoZXJUYXJnZXQtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgb3RoZXJUYXJnZXQt
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwogICAgIHN3aXRj
aFZhbHVlLT5hcHBlbmRDYXNlKFN3aXRjaENhc2UoMywgRnJlcXVlbnRlZEJsb2NrKG90aGVyVGFy
Z2V0KSkpOwpAQCAtMTAyMTgsNyArMTAyMjgsNyBAQCB2b2lkIHRlc3RTd2l0Y2hUYXJnZXR0aW5n
U2FtZUJsb2NrRm9sZFBhCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
IAogICAgIEJhc2ljQmxvY2sqIHRlcm1pbmF0ZSA9IHByb2MuYWRkQmxvY2soKTsKLSAgICB0ZXJt
aW5hdGUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRlcm1pbmF0ZS0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0
ZXJtaW5hdGUtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwog
CkBAIC0xMDIyOSw3ICsxMDIzOSw3IEBAIHZvaWQgdGVzdFN3aXRjaFRhcmdldHRpbmdTYW1lQmxv
Y2tGb2xkUGEKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRlcm1pbmF0ZSkpOwogCiAgICAgQmFz
aWNCbG9jayogb3RoZXJUYXJnZXQgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgb3RoZXJUYXJnZXQt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIG90aGVyVGFyZ2V0LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAg
ICBzd2l0Y2hWYWx1ZS0+YXBwZW5kQ2FzZShTd2l0Y2hDYXNlKDMsIEZyZXF1ZW50ZWRCbG9jayhv
dGhlclRhcmdldCkpKTsKICAgICBzd2l0Y2hWYWx1ZS0+YXBwZW5kQ2FzZShTd2l0Y2hDYXNlKDEz
LCBGcmVxdWVudGVkQmxvY2sob3RoZXJUYXJnZXQpKSk7CkBAIC0xMDI0Niw3ICsxMDI1Niw3IEBA
IHZvaWQgdGVzdFRydW5jRm9sZChpbnQ2NF90IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9j
OwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLApAQCAtMTAyNTksNyAr
MTAyNjksNyBAQCB2b2lkIHRlc3RaRXh0MzIoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1
cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFpFeHQzMiwgT3JpZ2luKCksCkBAIC0x
MDI3NCw3ICsxMDI4NCw3IEBAIHZvaWQgdGVzdFpFeHQzMkZvbGQoaW50MzJfdCB2YWx1ZSkKIHsK
ICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFpFeHQzMiwgT3Jp
Z2luKCksCkBAIC0xMDI4Nyw3ICsxMDI5Nyw3IEBAIHZvaWQgdGVzdFNFeHQzMihpbnQzMl90IHZh
bHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU0V4
dDMyLCBPcmlnaW4oKSwKQEAgLTEwMzAyLDcgKzEwMzEyLDcgQEAgdm9pZCB0ZXN0U0V4dDMyRm9s
ZChpbnQzMl90IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgU0V4dDMyLCBPcmlnaW4oKSwKQEAgLTEwMzE1LDcgKzEwMzI1LDcgQEAgdm9pZCB0
ZXN0VHJ1bmNaRXh0MzIoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKQEAgLTEwMzMyLDcgKzEwMzQy
LDcgQEAgdm9pZCB0ZXN0VHJ1bmNTRXh0MzIoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1
cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKQEAgLTEw
MzQ5LDcgKzEwMzU5LDcgQEAgdm9pZCB0ZXN0U0V4dDgoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQ
cm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNFeHQ4LCBPcmlnaW4oKSwK
QEAgLTEwMzY0LDcgKzEwMzc0LDcgQEAgdm9pZCB0ZXN0U0V4dDhGb2xkKGludDMyX3QgdmFsdWUp
CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTRXh0OCwg
T3JpZ2luKCksCkBAIC0xMDM3Nyw3ICsxMDM4Nyw3IEBAIHZvaWQgdGVzdFNFeHQ4U0V4dDgoaW50
MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIFNFeHQ4LCBPcmlnaW4oKSwKQEAgLTEwMzk0LDcgKzEwNDA0LDcgQEAgdm9pZCB0ZXN0U0V4
dDhTRXh0MTYoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIFNFeHQ4LCBPcmlnaW4oKSwKQEAgLTEwNDExLDcgKzEwNDIxLDcgQEAg
dm9pZCB0ZXN0U0V4dDhCaXRBbmQoaW50MzJfdCB2YWx1ZSwgaW50MwogewogICAgIFByb2NlZHVy
ZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU0V4dDgsIE9yaWdpbigpLApAQCAtMTA0
MjksNyArMTA0MzksNyBAQCB2b2lkIHRlc3RCaXRBbmRTRXh0OChpbnQzMl90IHZhbHVlLCBpbnQz
CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQs
IE9yaWdpbigpLApAQCAtMTA0NDcsNyArMTA0NTcsNyBAQCB2b2lkIHRlc3RTRXh0MTYoaW50MzJf
dCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IFNFeHQxNiwgT3JpZ2luKCksCkBAIC0xMDQ2Miw3ICsxMDQ3Miw3IEBAIHZvaWQgdGVzdFNFeHQx
NkZvbGQoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIFNFeHQxNiwgT3JpZ2luKCksCkBAIC0xMDQ3NSw3ICsxMDQ4NSw3IEBAIHZv
aWQgdGVzdFNFeHQxNlNFeHQxNihpbnQzMl90IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9j
OwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU0V4dDE2LCBPcmlnaW4oKSwKQEAgLTEwNDkyLDcg
KzEwNTAyLDcgQEAgdm9pZCB0ZXN0U0V4dDE2U0V4dDgoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQ
cm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNFeHQxNiwgT3JpZ2luKCks
CkBAIC0xMDUwOSw3ICsxMDUxOSw3IEBAIHZvaWQgdGVzdFNFeHQxNkJpdEFuZChpbnQzMl90IHZh
bHVlLCBpbnQKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IFNFeHQxNiwgT3JpZ2luKCksCkBAIC0xMDUyNyw3ICsxMDUzNyw3IEBAIHZvaWQgdGVzdEJpdEFu
ZFNFeHQxNihpbnQzMl90IHZhbHVlLCBpbnQKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0xMDU0NSw3ICsxMDU1NSw3
IEBAIHZvaWQgdGVzdFNFeHQzMkJpdEFuZChpbnQzMl90IHZhbHVlLCBpbnQKIHsKICAgICBQcm9j
ZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNFeHQzMiwgT3JpZ2luKCksCkBA
IC0xMDU2Myw3ICsxMDU3Myw3IEBAIHZvaWQgdGVzdEJpdEFuZFNFeHQzMihpbnQzMl90IHZhbHVl
LCBpbnQKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJp
dEFuZCwgT3JpZ2luKCksCkBAIC0xMDU4MSw3ICsxMDU5MSw3IEBAIHZvaWQgdGVzdEJhc2ljU2Vs
ZWN0KCkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNl
bGVjdCwgT3JpZ2luKCksCkBAIC0xMDYwMyw3ICsxMDYxMyw3IEBAIHZvaWQgdGVzdFNlbGVjdFRl
c3QoKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2Vs
ZWN0LCBPcmlnaW4oKSwKQEAgLTEwNjIyLDcgKzEwNjMyLDcgQEAgdm9pZCB0ZXN0U2VsZWN0Q29t
cGFyZURvdWJsZSgpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBw
cm9jLCBTZWxlY3QsIE9yaWdpbigpLApAQCAtMTA2NTMsNyArMTA2NjMsNyBAQCB2b2lkIHRlc3RT
ZWxlY3RDb21wYXJlRmxvYXQoZmxvYXQgYSwgZmxvCiAgICAgVmFsdWUqIGZsb2F0VmFsdWUxID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3Vt
ZW50MWludDMyKTsKICAgICBWYWx1ZSogZmxvYXRWYWx1ZTIgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQyaW50MzIpOwogCi0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKQEAg
LTEwNjkxLDcgKzEwNzAxLDcgQEAgdm9pZCB0ZXN0U2VsZWN0Q29tcGFyZUZsb2F0VG9Eb3VibGUo
ZmxvYQogICAgIFZhbHVlKiBkb3VibGVWYWx1ZTEgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBmbG9hdFZhbHVlMSk7CiAgICAgVmFsdWUqIGRv
dWJsZVZhbHVlMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwg
T3JpZ2luKCksIGZsb2F0VmFsdWUyKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0xMDcxOSw3ICsxMDcyOSw3IEBAIHZvaWQg
dGVzdFNlbGVjdERvdWJsZSgpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLApAQCAtMTA3NDEsNyArMTA3NTEsNyBAQCB2b2lk
IHRlc3RTZWxlY3REb3VibGVUZXN0KCkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0xMDc2MCw3ICsxMDc3MCw3IEBA
IHZvaWQgdGVzdFNlbGVjdERvdWJsZUNvbXBhcmVEb3VibGUoKQogewogICAgIFByb2NlZHVyZSBw
cm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTEwNzkw
LDcgKzEwODAwLDcgQEAgdm9pZCB0ZXN0U2VsZWN0RG91YmxlQ29tcGFyZUZsb2F0KGZsb2F0IAog
ICAgIFZhbHVlKiBmbG9hdFZhbHVlMSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0
d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDFpbnQzMik7CiAgICAgVmFsdWUqIGZsb2F0VmFs
dWUyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCks
IGFyZ3VtZW50MmludDMyKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0xMDgyMSw3ICsxMDgzMSw3IEBAIHZvaWQgdGVzdFNl
bGVjdEZsb2F0Q29tcGFyZUZsb2F0KGZsb2F0IGEKICAgICBWYWx1ZSogZmxvYXRWYWx1ZTMgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1l
bnQzaW50MzIpOwogICAgIFZhbHVlKiBmbG9hdFZhbHVlNCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDRpbnQzMik7CiAKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLApAQCAt
MTA4NDcsNyArMTA4NTcsNyBAQCB2b2lkIHRlc3RTZWxlY3REb3VibGVDb21wYXJlRG91YmxlKGJv
b2wgCiAgICAgICAgIFZhbHVlKiBhcmcyID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjIpOwogICAgICAgICBWYWx1
ZSogYXJnMyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgRlBSSW5mbzo6YXJndW1lbnRGUFIzKTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTEw
ODgzLDcgKzEwODkzLDcgQEAgdm9pZCB0ZXN0U2VsZWN0RG91YmxlQ29tcGFyZURvdWJsZShib29s
IAogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+YXBwZW5kKENvbnN0cmFpbmVkVmFsdWUoYXJnMiwg
VmFsdWVSZXA6OlNvbWVSZWdpc3RlcikpOwogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+c2V0R2Vu
ZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1z
JikgeyB9KTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICAgICAgYXV0byBjb2Rl
ID0gY29tcGlsZShwcm9jKTsKIAogICAgICAgICBmb3IgKGF1dG8mIGxlZnQgOiBmbG9hdGluZ1Bv
aW50T3BlcmFuZHM8ZG91YmxlPigpKSB7CkBAIC0xMDkxMCw3ICsxMDkyMCw3IEBAIHZvaWQgdGVz
dFNlbGVjdERvdWJsZUNvbXBhcmVEb3VibGUoYm9vbCAKICAgICAgICAga2VlcFZhbHVlc0xpdmUt
PmFwcGVuZChDb25zdHJhaW5lZFZhbHVlKGFyZzMsIFZhbHVlUmVwOjpTb21lUmVnaXN0ZXIpKTsK
ICAgICAgICAga2VlcFZhbHVlc0xpdmUtPnNldEdlbmVyYXRvcihbJl0gKENDYWxsSGVscGVycyYs
IGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsgfSk7CiAKLSAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsK
KyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdCk7CiAgICAgICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKICAgICAg
ICAgZm9yIChhdXRvJiBsZWZ0IDogZmxvYXRpbmdQb2ludE9wZXJhbmRzPGRvdWJsZT4oKSkgewpA
QCAtMTA5MzgsNyArMTA5NDgsNyBAQCB2b2lkIHRlc3RTZWxlY3REb3VibGVDb21wYXJlRG91Ymxl
KGJvb2wgCiAgICAgICAgIGtlZXBWYWx1ZXNMaXZlLT5hcHBlbmQoQ29uc3RyYWluZWRWYWx1ZShh
cmczLCBWYWx1ZVJlcDo6U29tZVJlZ2lzdGVyKSk7CiAgICAgICAgIGtlZXBWYWx1ZXNMaXZlLT5z
ZXRHZW5lcmF0b3IoWyZdIChDQ2FsbEhlbHBlcnMmLCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25Q
YXJhbXMmKSB7IH0pOwogCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogICAgICAgICBhdXRv
IGNvZGUgPSBjb21waWxlKHByb2MpOwogCiAgICAgICAgIGZvciAoYXV0byYgbGVmdCA6IGZsb2F0
aW5nUG9pbnRPcGVyYW5kczxkb3VibGU+KCkpIHsKQEAgLTEwOTU1LDcgKzEwOTY1LDcgQEAgdm9p
ZCB0ZXN0U2VsZWN0RG91YmxlQ29tcGFyZURvdWJsZShib29sIAogICAgICAgICBWYWx1ZSogYXJn
MSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBS
SW5mbzo6YXJndW1lbnRGUFIxKTsKICAgICAgICAgVmFsdWUqIGFyZzIgPSByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBS
Mik7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
ICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0xMDk5MCw3ICsxMTAwMCw3IEBAIHZvaWQg
dGVzdFNlbGVjdERvdWJsZUNvbXBhcmVEb3VibGUoYm9vbCAKICAgICAgICAga2VlcFZhbHVlc0xp
dmUtPmFwcGVuZChDb25zdHJhaW5lZFZhbHVlKGFyZzIsIFZhbHVlUmVwOjpTb21lUmVnaXN0ZXIp
KTsKICAgICAgICAga2VlcFZhbHVlc0xpdmUtPnNldEdlbmVyYXRvcihbJl0gKENDYWxsSGVscGVy
cyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsgfSk7CiAKLSAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
KTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdCk7CiAgICAgICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKICAg
ICAgICAgZm9yIChhdXRvJiBsZWZ0IDogZmxvYXRpbmdQb2ludE9wZXJhbmRzPGRvdWJsZT4oKSkg
ewpAQCAtMTEwMzMsNyArMTEwNDMsNyBAQCB2b2lkIHRlc3RTZWxlY3RGbG9hdENvbXBhcmVGbG9h
dChib29sICgqCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5j
LCBPcmlnaW4oKSwKICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMykpKTsKIAotICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgU2Vs
ZWN0LCBPcmlnaW4oKSwKQEAgLTExMDc3LDcgKzExMDg3LDcgQEAgdm9pZCB0ZXN0U2VsZWN0Rmxv
YXRDb21wYXJlRmxvYXQoYm9vbCAoKgogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+YXBwZW5kKENv
bnN0cmFpbmVkVmFsdWUoYXJnMiwgVmFsdWVSZXA6OlNvbWVSZWdpc3RlcikpOwogICAgICAgICBr
ZWVwVmFsdWVzTGl2ZS0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3Rh
Y2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeyB9KTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgICAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
KTsKICAgICAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIAogICAgICAgICBmb3IgKGF1
dG8mIGxlZnQgOiBmbG9hdGluZ1BvaW50T3BlcmFuZHM8ZmxvYXQ+KCkpIHsKQEAgLTExMTEyLDcg
KzExMTIyLDcgQEAgdm9pZCB0ZXN0U2VsZWN0RmxvYXRDb21wYXJlRmxvYXQoYm9vbCAoKgogICAg
ICAgICBrZWVwVmFsdWVzTGl2ZS0+YXBwZW5kKENvbnN0cmFpbmVkVmFsdWUoYXJnMywgVmFsdWVS
ZXA6OlNvbWVSZWdpc3RlcikpOwogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+c2V0R2VuZXJhdG9y
KFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeyB9
KTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICAgICAgYXV0byBjb2RlID0gY29t
cGlsZShwcm9jKTsKIAogICAgICAgICBmb3IgKGF1dG8mIGxlZnQgOiBmbG9hdGluZ1BvaW50T3Bl
cmFuZHM8ZmxvYXQ+KCkpIHsKQEAgLTExMTQ4LDcgKzExMTU4LDcgQEAgdm9pZCB0ZXN0U2VsZWN0
RmxvYXRDb21wYXJlRmxvYXQoYm9vbCAoKgogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+YXBwZW5k
KENvbnN0cmFpbmVkVmFsdWUoYXJnMywgVmFsdWVSZXA6OlNvbWVSZWdpc3RlcikpOwogICAgICAg
ICBrZWVwVmFsdWVzTGl2ZS0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3Qg
U3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeyB9KTsKIAotICAgICAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgICAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0KTsKICAgICAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIAogICAgICAgICBmb3Ig
KGF1dG8mIGxlZnQgOiBmbG9hdGluZ1BvaW50T3BlcmFuZHM8ZmxvYXQ+KCkpIHsKQEAgLTExMTcx
LDcgKzExMTgxLDcgQEAgdm9pZCB0ZXN0U2VsZWN0RmxvYXRDb21wYXJlRmxvYXQoYm9vbCAoKgog
ICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCks
CiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpKSk7CiAKLSAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2lu
KCksCkBAIC0xMTIxMiw3ICsxMTIyMiw3IEBAIHZvaWQgdGVzdFNlbGVjdEZsb2F0Q29tcGFyZUZs
b2F0KGJvb2wgKCoKICAgICAgICAga2VlcFZhbHVlc0xpdmUtPmFwcGVuZChDb25zdHJhaW5lZFZh
bHVlKGFyZzIsIFZhbHVlUmVwOjpTb21lUmVnaXN0ZXIpKTsKICAgICAgICAga2VlcFZhbHVlc0xp
dmUtPnNldEdlbmVyYXRvcihbJl0gKENDYWxsSGVscGVycyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJh
dGlvblBhcmFtcyYpIHsgfSk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICAgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgICAg
IGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKICAgICAgICAgZm9yIChhdXRvJiBsZWZ0IDog
ZmxvYXRpbmdQb2ludE9wZXJhbmRzPGZsb2F0PigpKSB7CkBAIC0xMTIzOSw3ICsxMTI0OSw3IEBA
IHZvaWQgdGVzdFNlbGVjdEZvbGQoaW50cHRyX3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHBy
b2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLApAQCAtMTEyNTks
NyArMTEyNjksNyBAQCB2b2lkIHRlc3RTZWxlY3RJbnZlcnQoKQogewogICAgIFByb2NlZHVyZSBw
cm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTExMzEy
LDcgKzExMzIyLDcgQEAgdm9pZCB0ZXN0Q2hlY2tTZWxlY3QoKQogICAgICAgICAgICAgaml0LnJl
dCgpOwogICAgICAgICB9KTsKICAgICAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAwKSk7CiAKQEAgLTExMzgzLDcgKzExMzkzLDcgQEAgdm9pZCB0ZXN0Q2hlY2tT
ZWxlY3RDaGVja1NlbGVjdCgpCiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwog
ICAgIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApA
QCAtMTE0MTksNyArMTE0MjksNyBAQCB2b2lkIHRlc3RQb3dEb3VibGVCeUludGVnZXJMb29wKGRv
dWJsZSB4CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgYXV0byByZXN1bHQgPSBwb3dE
b3VibGVJbnQzMihwcm9jLCByb290LCBPcmlnaW4oKSwgeCwgeSk7CiAgICAgQmFzaWNCbG9jayog
Y29udGludWF0aW9uID0gcmVzdWx0LmZpcnN0OwotICAgIGNvbnRpbnVhdGlvbi0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0LnNlY29uZCk7Cisg
ICAgY29udGludWF0aW9uLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0LnNlY29uZCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5k
UnVuPGRvdWJsZT4ocHJvYywgeE9wZXJhbmQsIHlPcGVyYW5kKSwgYjNQb3coeE9wZXJhbmQsIHlP
cGVyYW5kKSkpOwogfQpAQCAtMTE0MjksNyArMTE0MzksNyBAQCB2b2lkIHRlc3RUcnVuY09ySGln
aCgpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFRydW5j
LCBPcmlnaW4oKSwKQEAgLTExNDQ3LDcgKzExNDU3LDcgQEAgdm9pZCB0ZXN0VHJ1bmNPckxvdygp
CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFRydW5jLCBP
cmlnaW4oKSwKQEAgLTExNDY1LDcgKzExNDc1LDcgQEAgdm9pZCB0ZXN0Qml0QW5kT3JIaWdoKCkK
ICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBP
cmlnaW4oKSwKQEAgLTExNDg0LDcgKzExNDk0LDcgQEAgdm9pZCB0ZXN0Qml0QW5kT3JMb3coKQog
ICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9y
aWdpbigpLApAQCAtMTE1MDcsMjAgKzExNTE3LDIwIEBAIHZvaWQgdGVzdEJyYW5jaDY0RXF1YWwo
aW50NjRfdCBsZWZ0LCBpbnQKIAogICAgIFZhbHVlKiBhcmcxID0gcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwog
ICAgIFZhbHVlKiBhcmcyID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBFcXVhbCwgT3JpZ2luKCksIGFyZzEsIGFyZzIpLAogICAgICAgICBGcmVxdWVudGVkQmxv
Y2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAogICAgIGJvb2wgdHJ1
ZVJlc3VsdCA9IHRydWU7Ci0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAog
ICAgICAgICAgICAgcHJvYywgTG9hZDhaLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHRoZW5DYXNl
LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZ0cnVlUmVzdWx0KSkp
OwogCiAgICAgYm9vbCBlbHNlUmVzdWx0ID0gZmFsc2U7Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmRO
ZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZDhaLCBPcmlnaW4oKSwKQEAg
LTExNTM4LDIwICsxMTU0OCwyMCBAQCB2b2lkIHRlc3RCcmFuY2g2NEVxdWFsSW1tKGludDY0X3Qg
bGVmdCwgCiAKICAgICBWYWx1ZSogYXJnMSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBWYWx1ZSog
YXJnMiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgcmln
aHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBFcXVhbCwgT3JpZ2luKCksIGFyZzEsIGFy
ZzIpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2so
ZWxzZUNhc2UpKTsKIAogICAgIGJvb2wgdHJ1ZVJlc3VsdCA9IHRydWU7Ci0gICAgdGhlbkNhc2Ut
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNl
LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZDhaLCBPcmln
aW4oKSwKICAgICAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksICZ0cnVlUmVzdWx0KSkpOwogCiAgICAgYm9vbCBlbHNlUmVzdWx0ID0gZmFs
c2U7Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNl
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgTG9hZDhaLCBPcmlnaW4oKSwKQEAgLTExNTcxLDIwICsxMTU4MSwyMCBAQCB2b2lkIHRl
c3RCcmFuY2g2NEVxdWFsTWVtKGludDY0X3QgbGVmdCwgCiAgICAgICAgIHByb2MsIExvYWQsIHBv
aW50ZXJUeXBlKCksIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZh
bHVlKiBhcmcyID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
QnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBF
cXVhbCwgT3JpZ2luKCksIGFyZzEsIGFyZzIpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhl
bkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAogICAgIGJvb2wgdHJ1ZVJlc3Vs
dCA9IHRydWU7Ci0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRo
ZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAg
ICAgICAgcHJvYywgTG9hZDhaLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHRoZW5DYXNlLT5hcHBl
bmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZ0cnVlUmVzdWx0KSkpOwogCiAg
ICAgYm9vbCBlbHNlUmVzdWx0ID0gZmFsc2U7Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8TWVt
b3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZDhaLCBPcmlnaW4oKSwKQEAgLTExNjA0
LDIwICsxMTYxNCwyMCBAQCB2b2lkIHRlc3RCcmFuY2g2NEVxdWFsTWVtSW1tKGludDY0X3QgbGVm
CiAgICAgICAgIHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiBhcmcyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0
UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCByaWdodCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEVxdWFsLCBPcmlnaW4oKSwgYXJnMSwgYXJnMiksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9j
ayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCiAgICAgYm9vbCB0cnVl
UmVzdWx0ID0gdHJ1ZTsKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBMb2FkOFosIE9yaWdpbigpLAogICAgICAgICAgICAgdGhlbkNhc2Ut
PmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJnRydWVSZXN1bHQpKSk7
CiAKICAgICBib29sIGVsc2VSZXN1bHQgPSBmYWxzZTsKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5l
dzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkOFosIE9yaWdpbigpLApAQCAt
MTE2NDEsNyArMTE2NTEsNyBAQCB2b2lkIHRlc3RTdG9yZThMb2FkOFooaW50MzJfdCB2YWx1ZSkK
ICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIHB0cik7CiAKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZDhaLCBPcmlnaW4oKSwgcHRyKSk7CiAKQEAgLTEx
NjYzLDcgKzExNjczLDcgQEAgdm9pZCB0ZXN0U3RvcmUxNkxvYWQxNlooaW50MzJfdCB2YWx1ZSkK
ICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIHB0cik7CiAKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZDE2WiwgT3JpZ2luKCksIHB0cikpOwogCkBAIC0x
MTY3NSw3ICsxMTY4NSw3IEBAIHZvaWQgdGVzdFNTaHJTaGwzMihpbnQzMl90IHZhbHVlLCBpbnQz
Ml8KICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU1Nociwg
T3JpZ2luKCksCkBAIC0xMTY5Nyw3ICsxMTcwNyw3IEBAIHZvaWQgdGVzdFNTaHJTaGw2NChpbnQ2
NF90IHZhbHVlLCBpbnQzMl8KICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgU1NociwgT3JpZ2luKCksCkBAIC0xMTcyNSw4ICsxMTczNSw4IEBAIHZvaWQgdGVz
dFRyaXZpYWxJbmZpbml0ZUxvb3AoKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogbG9vcCA9IHByb2Mu
YWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1w
LCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3ApKTsKLSAgICBsb29wLT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3Ap
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCks
IEZyZXF1ZW50ZWRCbG9jayhsb29wKSk7CisgICAgbG9vcC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sobG9vcCkpOwogCiAgICAgY29t
cGlsZShwcm9jKTsKIH0KQEAgLTExNzQwLDE1ICsxMTc1MCwxNSBAQCB2b2lkIHRlc3RGb2xkUGF0
aEVxdWFsKCkKIAogICAgIFZhbHVlKiBhcmcgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksIGFyZywgRnJlcXVlbnRlZEJsb2Nr
KHRoZW5CbG9jayksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQmxvY2spKTsKIAotICAgIHRoZW5CbG9j
ay0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkJsb2NrLT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5C
bG9jay0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEVxdWFsLCBPcmlnaW4o
KSwgYXJnLCB0aGVuQmxvY2stPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgMCkpKTsKIAotICAgIGVsc2VCbG9jay0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
ZWxzZUJsb2NrLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIGVsc2VCbG9jay0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIEVxdWFsLCBPcmlnaW4oKSwgYXJnLCBlbHNlQmxvY2stPmFwcGVuZE5ldzxDb25z
dFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpKTsKQEAgLTExNzY2LDcgKzExNzc2LDcgQEAg
dm9pZCB0ZXN0TFNoaWZ0U2VsZjMyKCkKICAgICBWYWx1ZSogYXJnID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTaGwsIE9yaWdpbigpLCBhcmcs
IGFyZykpOwogCkBAIC0xMTc4OSw3ICsxMTc5OSw3IEBAIHZvaWQgdGVzdFJTaGlmdFNlbGYzMigp
CiAgICAgVmFsdWUqIGFyZyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgIHByb2Ms
IFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgU1NociwgT3JpZ2luKCksIGFyZywgYXJnKSk7CiAKQEAgLTExODEyLDcg
KzExODIyLDcgQEAgdm9pZCB0ZXN0VVJTaGlmdFNlbGYzMigpCiAgICAgVmFsdWUqIGFyZyA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgWlNociwg
T3JpZ2luKCksIGFyZywgYXJnKSk7CiAKQEAgLTExODMzLDcgKzExODQzLDcgQEAgdm9pZCB0ZXN0
TFNoaWZ0U2VsZjY0KCkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmcgPSByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2hsLCBPcmlnaW4oKSwgYXJn
LCByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwgYXJnKSkpOwpA
QCAtMTE4NTcsNyArMTE4NjcsNyBAQCB2b2lkIHRlc3RSU2hpZnRTZWxmNjQoKQogICAgIFByb2Nl
ZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAg
VmFsdWUqIGFyZyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBTU2hyLCBPcmlnaW4oKSwgYXJnLCByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIFRydW5jLCBPcmlnaW4oKSwgYXJnKSkpOwpAQCAtMTE4ODEsNyArMTE4OTEsNyBAQCB2
b2lkIHRlc3RVUlNoaWZ0U2VsZjY0KCkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmcgPSByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgWlNociwgT3Jp
Z2luKCksIGFyZywgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCks
IGFyZykpKTsKQEAgLTExOTE3LDcgKzExOTI3LDcgQEAgdm9pZCB0ZXN0UGF0Y2hwb2ludERvdWJs
ZVJlZ3MoKQogICAgICAgICAgICAgbnVtQ2FsbHMrKzsKICAgICAgICAgfSk7CiAKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBv
aW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcGF0Y2hwb2ludCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAg
IENIRUNLKG51bUNhbGxzID09IDEpOwpAQCAtMTE5NTAsNyArMTE5NjAsNyBAQCB2b2lkIHRlc3RT
cGlsbERlZlNtYWxsZXJUaGFuVXNlKCkKIAogICAgIC8vIE9uIHg4NiwgU3ViIGFkbWl0IGFuIGFk
ZHJlc3MgZm9yIGFueSBvcGVyYW5kLiBJZiBpdCB1c2VzIHRoZSBzdGFjaywgdGhlIHRvcCBiaXRz
IG11c3QgYmUgemVyby4KICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBTdWIsIE9yaWdpbigpLCBmb3JjZVNwaWxsLCBhcmc2NCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0KTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgQ0hFQ0soaW52b2tl
PGludDY0X3Q+KCpjb2RlLCAweGZmZmZmZmZmMDAwMDAwMDApID09IDApOwpAQCAtMTE5NzAsNyAr
MTE5ODAsNyBAQCB2b2lkIHRlc3RTcGlsbFVzZUxhcmdlclRoYW5EZWYoKQogCiAgICAgVmFsdWUq
IGNvbmRpdGlvbiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgVHJ1
bmMsIE9yaWdpbigpLApAQCAtMTE5ODAsMTAgKzExOTkwLDEwIEBAIHZvaWQgdGVzdFNwaWxsVXNl
TGFyZ2VyVGhhbkRlZigpCiAgICAgVmFsdWUqIHRydW5jYXRlZCA9IHRoZW5DYXNlLT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIFpFeHQzMiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwgYXJndW1lbnQpKTsKICAgICBVcHNp
bG9uVmFsdWUqIHRoZW5SZXN1bHQgPSB0aGVuQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4o
cHJvYywgT3JpZ2luKCksIHRydW5jYXRlZCk7Ci0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOwor
ICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCks
IEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CiAKICAgICBVcHNpbG9uVmFsdWUqIGVsc2VSZXN1bHQg
PSBlbHNlQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFyZ3Vt
ZW50KTsKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwg
T3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CisgICAgZWxzZUNhc2UtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwp
KTsKIAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCAxMDA7ICsraSkgewogICAgICAgICBQ
YXRjaHBvaW50VmFsdWUqIHByZXZlbnRUYWlsRHVwbGljYXRpb24gPSB0YWlsLT5hcHBlbmROZXc8
UGF0Y2hwb2ludFZhbHVlPihwcm9jLCBWb2lkLCBPcmlnaW4oKSk7CkBAIC0xMjAwNCw3ICsxMjAx
NCw3IEBAIHZvaWQgdGVzdFNwaWxsVXNlTGFyZ2VyVGhhbkRlZigpCiAgICAgVmFsdWUqIHBoaSA9
IHRhaWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBJbnQ2NCwgT3JpZ2luKCkpOwogICAg
IHRoZW5SZXN1bHQtPnNldFBoaShwaGkpOwogICAgIGVsc2VSZXN1bHQtPnNldFBoaShwaGkpOwot
ICAgIHRhaWwtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHBoaSk7CisgICAgdGFpbC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHBoaSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIENIRUNL
KGludm9rZTx1aW50NjRfdD4oKmNvZGUsIDEsIDB4ZmZmZmZmZmYwMDAwMDAwMCkgPT0gMCk7CkBA
IC0xMjA4NiwxMiArMTIwOTYsMjQ0IEBAIHZvaWQgdGVzdExhdGVSZWdpc3RlcigpCiAgICAgICAg
ICAgICBqaXQubm9wKCk7CiAgICAgICAgICAgICBqaXQubm9wKCk7CiAgICAgICAgIH0pOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNl
Y29uZFBhdGNocG9pbnQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCBzZWNvbmRQYXRjaHBvaW50KTsKICAgICAKICAgICBhdXRvIGNvZGUg
PSBjb21waWxlKHByb2MpOwogICAgIENIRUNLKGludm9rZTx1aW50NjRfdD4oKmNvZGUpID09IHJl
c3VsdCk7CiB9CiAKK3ZvaWQgdGhyZWFkZWRJbnRlcnByZXRlclByaW50KFZlY3RvcjxpbnRwdHJf
dD4qIHN0cmVhbSwgaW50cHRyX3QgdmFsdWUpCit7CisgICAgc3RyZWFtLT5hcHBlbmQodmFsdWUp
OworfQorCit2b2lkIHRlc3RUaHJlYWRlZEludGVycHJldGVyKCkKK3sKKyAgICAvLyBUaGlzIGNy
ZWF0ZXMgYSBwb29yIG1hbidzIHRocmVhZGVkIGludGVycHJldGVyIHVzaW5nIFBvbHlKdW1wIGFu
ZCBzZWVzIGlmIGl0IHdvcmtzLiBOb3RlCisgICAgLy8gdGhhdCBQb2x5SnVtcCBpcyBub3QgbGlr
ZSBpbmRpcmVjdCBicmFuY2hlcyBpbiBMTFZNLCBzbyB5b3UgY2FuJ3QgYWN0dWFsbHkgdXNlIGl0
IHRvCisgICAgLy8gaW1wbGVtZW50IGEgcHJvcGVyIHRocmVhZGVkIGludGVycHJldGVyLiBUaGlz
IGNoZWF0czogdGhlIGRpc3BhdGNoIGluc3RydWN0aW9uIGlzIGF0IHRoZSB0b3AKKyAgICAvLyBv
ZiB0aGUgbG9vcC4gVGhpcyBhbHNvIHRlc3RzIFZhcmlhYmxlVmFsdWUuCisgICAgCisgICAgUHJv
Y2VkdXJlIHByb2M7CisgICAgCisgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKKyAgICBCYXNpY0Jsb2NrKiBkaXNwYXRjaCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBCYXNp
Y0Jsb2NrKiBhZGRUb0RhdGFQb2ludGVyID0gcHJvYy5hZGRCbG9jaygpOworICAgIEJhc2ljQmxv
Y2sqIGFkZFRvQ29kZVBvaW50ZXIgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayog
YWRkVG9Db2RlUG9pbnRlclRha2VuID0gcHJvYy5hZGRCbG9jaygpOworICAgIEJhc2ljQmxvY2sq
IGFkZFRvQ29kZVBvaW50ZXJOb3RUYWtlbiA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBCYXNpY0Js
b2NrKiBhZGRUb0RhdGEgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayogcHJpbnQg
PSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayogc3RvcCA9IHByb2MuYWRkQmxvY2so
KTsKKyAgICAKKyAgICBWYXJpYWJsZSogZGF0YVBvaW50ZXIgPSBwcm9jLmFkZFZhcmlhYmxlKHBv
aW50ZXJUeXBlKCkpOworICAgIFZhcmlhYmxlKiBjb2RlUG9pbnRlciA9IHByb2MuYWRkVmFyaWFi
bGUocG9pbnRlclR5cGUoKSk7CisgICAgCisgICAgcm9vdC0+YXBwZW5kTmV3PFZhcmlhYmxlVmFs
dWU+KAorICAgICAgICBwcm9jLCBTZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRlciwKKyAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjApKTsKKyAgICByb290LT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisg
ICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyLAorICAgICAgICByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMSkpOworICAgIFZhbHVlKiBjb250ZXh0ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50
UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRl
ZEJsb2NrKGRpc3BhdGNoKSk7CisKKyAgICBWYWx1ZSogY29kZVBvaW50ZXJWYWx1ZSA9CisgICAg
ICAgIGRpc3BhdGNoLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3Jp
Z2luKCksIGNvZGVQb2ludGVyKTsKKyAgICBQYXRjaHBvaW50VmFsdWUqIHBvbHlKdW1wID0gZGlz
cGF0Y2gtPmFwcGVuZE5ldzxQYXRjaHBvaW50VmFsdWUocHJvYywgVm9pZCwgT3JpZ2luKCkpOwor
ICAgIHBvbHlKdW1wLT5lZmZlY3RzLnRlcm1pbmFsID0gdHJ1ZTsKKyAgICBwb2x5SnVtcC0+YXBw
ZW5kU29tZVJlZ2lzdGVyKGNvZGVQb2ludGVyVmFsdWUpOworICAgIHBvbHlKdW1wLT5hcHBlbmRT
dWNjZXNzb3IoRnJlcXVlbnRlZEJsb2NrKGFkZFRvRGF0YVBvaW50ZXIpKTsKKyAgICBwb2x5SnVt
cC0+YXBwZW5kU3VjY2Vzc29yKEZyZXF1ZW50ZWRCbG9jayhhZGRUb0NvZGVQb2ludGVyKSk7Cisg
ICAgcG9seUp1bXAtPmFwcGVuZFN1Y2Nlc3NvcihGcmVxdWVudGVkQmxvY2soYWRkVG9EYXRhKSk7
CisgICAgcG9seUp1bXAtPmFwcGVuZFN1Y2Nlc3NvcihGcmVxdWVudGVkQmxvY2socHJpbnQpKTsK
KyAgICBwb2x5SnVtcC0+YXBwZW5kU3VjY2Vzc29yKEZyZXF1ZW50ZWRCbG9jayhzdG9wKSk7Cisg
ICAgCisgICAgLy8gT3VyICJvcGNvZGVzIi4gVGhleSB3aWxsIGhhdmUgbWVhbmluZyBvbmNlIHdl
IGNvbXBpbGUuCisgICAgaW50cHRyX3QgQWRkRFAgPSAwOworICAgIGludHB0cl90IEFkZENQID0g
MDsKKyAgICBpbnRwdHJfdCBBZGQgPSAwOworICAgIGludHB0cl90IFByaW50ID0gMDsKKyAgICBp
bnRwdHJfdCBTdG9wID0gMDsKKyAgICBwb2x5SnVtcC0+c2V0R2VuZXJhdG9yKAorICAgICAgICBb
Jl0gKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmIHBh
cmFtcykgeworICAgICAgICAgICAgaml0Lmp1bXAoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHBhcmFt
c1swXS5ncHIoKSkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBWZWN0b3I8Qm94PENDYWxs
SGVscGVyczo6TGFiZWw+PiBsYWJlbHMgPSBwYXJhbXMuc3VjY2Vzc29yTGFiZWxzKCk7CisgICAg
ICAgICAgICAKKyAgICAgICAgICAgIGppdC5hZGRMaW5rVGFzaygKKyAgICAgICAgICAgICAgICBb
Jl0gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgYXV0byBn
ZXQgPSBbJl0gKHNpemVfdCBpbmRleCkgLT4gaW50cHRyX3QgeworICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxpbnRwdHJfdD4oCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbGlua0J1ZmZlci5sb2NhdGlvbk9mKCpsYWJlbHNbaW5kZXhdKS5leGVjdXRhYmxl
QWRkcmVzcygpKTsKKyAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICAgICAg
CisgICAgICAgICAgICAgICAgICAgIEFkZERQID0gZ2V0KDApOworICAgICAgICAgICAgICAgICAg
ICBBZGRDUCA9IGdldCgxKTsKKyAgICAgICAgICAgICAgICAgICAgQWRkID0gZ2V0KDIpOworICAg
ICAgICAgICAgICAgICAgICBQcmludCA9IGdldCgzKTsKKyAgICAgICAgICAgICAgICAgICAgU3Rv
cCA9IGdldCg0KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgCisgICAg
Ly8gQWRkRFAgPG9wZXJhbmQ+OiBhZGRzIDxvcGVyYW5kPiB0byBEUC4KKyAgICBjb2RlUG9pbnRl
clZhbHVlID0KKyAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFs
dWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlcik7CisgICAgYWRkVG9EYXRh
UG9pbnRlci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAgICAgICBwcm9jLCBTZXQsIE9y
aWdpbigpLCBkYXRhUG9pbnRlciwKKyAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3
PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEIzOjpBZGQsIE9yaWdpbigpLAorICAgICAgICAg
ICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHByb2MsIEIzOjpH
ZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRlciksCisgICAgICAgICAgICBhZGRUb0RhdGFQb2ludGVy
LT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgICAgIHByb2MsIE11bCwgT3JpZ2luKCks
CisgICAgICAgICAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PE1lbW9yeVZhbHVl
PigKKyAgICAgICAgICAgICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2lu
KCksIGNvZGVQb2ludGVyVmFsdWUsIHNpemVvZihpbnRwdHJfdCkpLAorICAgICAgICAgICAgICAg
IGFkZFRvRGF0YVBvaW50ZXItPmFwcGVuZEludENvbnN0YW50KAorICAgICAgICAgICAgICAgICAg
ICBwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6ZW9mKGludHB0cl90KSkpKSk7Cisg
ICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAgICAgICBw
cm9jLCBTZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlciwKKyAgICAgICAgYWRkVG9EYXRhUG9pbnRl
ci0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEIzOjpBZGQsIE9yaWdpbigp
LCBjb2RlUG9pbnRlclZhbHVlLAorICAgICAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5k
SW50Q29uc3RhbnQoCisgICAgICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBl
KCksIHNpemVvZihpbnRwdHJfdCkgKiAyKSkpOworICAgIGFkZFRvRGF0YVBvaW50ZXItPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRp
c3BhdGNoKSk7CisgICAgCisgICAgLy8gQWRkQ1AgPG9wZXJhbmQ+OiBhZGRzIDxvcGVyYW5kPiB0
byBDUCBpZiB0aGUgY3VycmVudCB2YWx1ZSBhdCBEUCBpcyBub24temVybywgb3RoZXJ3aXNlCisg
ICAgLy8gZmFsbHMgdGhyb3VnaCBub3JtYWxseS4KKyAgICBjb2RlUG9pbnRlclZhbHVlID0KKyAg
ICAgICAgYWRkVG9Db2RlUG9pbnRlci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHByb2MsIEIz
OjpHZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlcik7CisgICAgVmFsdWUqIGRhdGFQb2ludGVyVmFs
dWUgPQorICAgICAgICBhZGRUb0NvZGVQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4o
cHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGRhdGFQb2ludGVyKTsKKyAgICBhZGRUb0NvZGVQb2lu
dGVyLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCisgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2lu
KCksCisgICAgICAgIGFkZFRvQ29kZVBvaW50ZXItPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisg
ICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwgZGF0YVBvaW50
ZXJWYWx1ZSksCisgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhhZGRUb0NvZGVQb2ludGVyVGFrZW4p
LCBGcmVxdWVudGVkQmxvY2soYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuKSk7CisgICAgYWRkVG9D
b2RlUG9pbnRlclRha2VuLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHByb2Ms
IFNldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyLAorICAgICAgICBhZGRUb0NvZGVQb2ludGVyVGFr
ZW4tPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBCMzo6QWRkLCBPcmlnaW4o
KSwgY29kZVBvaW50ZXJWYWx1ZSwKKyAgICAgICAgICAgIGFkZFRvQ29kZVBvaW50ZXJUYWtlbi0+
YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgICAgICBwcm9jLCBNdWwsIE9yaWdpbigpLAor
ICAgICAgICAgICAgICAgIGFkZFRvQ29kZVBvaW50ZXJUYWtlbi0+YXBwZW5kTmV3PE1lbW9yeVZh
bHVlPigKKyAgICAgICAgICAgICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3Jp
Z2luKCksIGNvZGVQb2ludGVyVmFsdWUsIHNpemVvZihpbnRwdHJfdCkpLAorICAgICAgICAgICAg
ICAgIGFkZFRvQ29kZVBvaW50ZXJUYWtlbi0+YXBwZW5kSW50Q29uc3RhbnQoCisgICAgICAgICAg
ICAgICAgICAgIHByb2MsIE9yaWdpbigpLCBwb2ludGVyVHlwZSgpLCBzaXplb2YoaW50cHRyX3Qp
KSkpKTsKKyAgICBhZGRUb0NvZGVQb2ludGVyVGFrZW4tPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRpc3BhdGNoKSk7CisgICAgYWRk
VG9Db2RlUG9pbnRlck5vdFRha2VuLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAg
IHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyLAorICAgICAgICBhZGRUb0NvZGVQb2lu
dGVyTm90VGFrZW4tPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBCMzo6QWRk
LCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwKKyAgICAgICAgICAgIGFkZFRvQ29kZVBvaW50
ZXJOb3RUYWtlbi0+YXBwZW5kSW50Q29uc3RhbnQoCisgICAgICAgICAgICAgICAgcHJvYywgT3Jp
Z2luKCksIHBvaW50ZXJUeXBlKCksIHNpemVvZihpbnRwdHJfdCkgKiAyKSkpOworICAgIGFkZFRv
Q29kZVBvaW50ZXJOb3RUYWtlbi0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAorICAgICAgICBwcm9j
LCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRpc3BhdGNoKSk7CisKKyAgICAvLyBB
ZGQgPG9wZXJhbmQ+OiBhZGRzIDxvcGVyYW5kPiB0byB0aGUgc2xvdCBwb2ludGVkIHRvIGJ5IERQ
LgorICAgIGNvZGVQb2ludGVyVmFsdWUgPSBhZGRUb0RhdGEtPmFwcGVuZE5ldzxWYXJpYWJsZVZh
bHVlPihwcm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIpOworICAgIGRhdGFQb2lu
dGVyVmFsdWUgPSBhZGRUb0RhdGEtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPihwcm9jLCBCMzo6
R2V0LCBPcmlnaW4oKSwgZGF0YVBvaW50ZXIpOworICAgIGFkZFRvRGF0YS0+YXBwZW5kTmV3PE1l
bW9yeVZhbHVlPigKKyAgICAgICAgcHJvYywgU3RvcmUsIE9yaWdpbigpLAorICAgICAgICBhZGRU
b0RhdGEtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBCMzo6QWRkLCBPcmln
aW4oKSwKKyAgICAgICAgICAgIGFkZFRvRGF0YS0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAg
ICAgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwgZGF0YVBv
aW50ZXJWYWx1ZSksCisgICAgICAgICAgICBhZGRUb0RhdGEtPmFwcGVuZE5ldzxNZW1vcnlWYWx1
ZT4oCisgICAgICAgICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCks
IGNvZGVQb2ludGVyVmFsdWUsIHNpemVvZihpbnRwdHJfdCkpKSwKKyAgICAgICAgZGF0YVBvaW50
ZXJWYWx1ZSk7CisgICAgYWRkVG9EYXRhLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAg
ICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyLAorICAgICAgICBhZGRUb0RhdGEt
PmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBCMzo6QWRkLCBPcmlnaW4oKSwg
Y29kZVBvaW50ZXJWYWx1ZSwKKyAgICAgICAgICAgIGFkZFRvRGF0YS0+YXBwZW5kSW50Q29uc3Rh
bnQocHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBlKCksIHNpemVvZihpbnRwdHJfdCkgKiAyKSkp
OworICAgIGFkZFRvRGF0YS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdp
bigpLCBGcmVxdWVudGVkQmxvY2soZGlzcGF0Y2gpKTsKKyAgICAKKyAgICAvLyBQcmludDogInBy
aW50cyIgdGhlIHZhbHVlIHBvaW50ZWQgdG8gYnkgRFAuIFdoYXQgdGhpcyBhY3R1YWxseSBtZWFu
cyBpcyB0aGF0IHRoZSB2YWx1ZSBpcworICAgIC8vIGFwcGVuZGVkIHRvIHRoZSBzdHJlYW0gdmVj
dG9yIGJ5IHRoZSB0aHJlYWRlZEludGVycHJldGVyUHJpbnQgZnVuY3Rpb24uCisgICAgY29kZVBv
aW50ZXJWYWx1ZSA9IHByaW50LT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6Okdl
dCwgT3JpZ2luKCksIGNvZGVQb2ludGVyKTsKKyAgICBkYXRhUG9pbnRlclZhbHVlID0gcHJpbnQt
PmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPihwcm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwgZGF0YVBv
aW50ZXIpOworICAgIHByaW50LT5hcHBlbmROZXc8Q0NhbGxWYWx1ZT4oCisgICAgICAgIHByb2Ms
IFZvaWQsIE9yaWdpbigpLAorICAgICAgICBwcmludC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+
KAorICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksIGJpdHdpc2VfY2FzdDx2b2lkKj4odGhyZWFk
ZWRJbnRlcnByZXRlclByaW50KSksCisgICAgICAgIGNvbnRleHQsCisgICAgICAgIHByaW50LT5h
cHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigp
LCBkYXRhUG9pbnRlclZhbHVlKSk7CisgICAgcHJpbnQtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVl
PigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIsCisgICAgICAgIHBy
aW50LT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgQjM6OkFkZCwgT3JpZ2lu
KCksIGNvZGVQb2ludGVyVmFsdWUsCisgICAgICAgICAgICBwcmludC0+YXBwZW5kSW50Q29uc3Rh
bnQocHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBlKCksIHNpemVvZihpbnRwdHJfdCkpKSk7Cisg
ICAgcHJpbnQtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJl
cXVlbnRlZEJsb2NrKGRpc3BhdGNoKSk7CisgICAgCisgICAgLy8gU3RvcDogcmV0dXJucy4KKyAg
ICBzdG9wLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCisgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCisgICAgICAgIHN0b3AtPmFwcGVuZEludENvbnN0YW50KHByb2MsIE9yaWdpbigpLCBw
b2ludGVyVHlwZSgpLCAwKSk7CisgICAgCisgICAgYXV0byBpbnRlcnByZXRlciA9IGNvbXBpbGUo
cHJvYyk7CisgICAgCisgICAgQ0hFQ0soQWRkRFApOworICAgIENIRUNLKEFkZENQKTsKKyAgICBD
SEVDSyhBZGQpOworICAgIENIRUNLKFByaW50KTsKKyAgICBDSEVDSyhTdG9wKTsKKyAgICAKKyAg
ICBWZWN0b3I8aW50cHRyX3Q+IGRhdGE7CisgICAgVmVjdG9yPGludHB0cl90PiBjb2RlOworICAg
IFZlY3RvcjxpbnRwdHJfdD4gc3RyZWFtOworICAgIAorICAgIGRhdGEuYXBwZW5kKDEpOworICAg
IGRhdGEuYXBwZW5kKDApOworICAgIAorICAgIGlmIChzaG91bGRCZVZlcmJvc2UoKSkKKyAgICAg
ICAgZGF0YUxvZygiZGF0YSA9ICIsIGxpc3REdW1wKGRhdGEpLCAiXG4iKTsKKyAgICAKKyAgICAv
LyBXZSdsbCB3cml0ZSBhIHByb2dyYW0gdGhhdCBwcmludHMgdGhlIG51bWJlcnMgMS4uMTAwLgor
ICAgIC8vIFdlIGV4cGVjdCBEUCB0byBwb2ludCBhdCAjMC4KKyAgICBjb2RlLmFwcGVuZChBZGRD
UCk7CisgICAgY29kZS5hcHBlbmQoNik7IC8vIGdvIHRvIGxvb3AgYm9keQorICAgIAorICAgIC8v
IExvb3AgcmUtZW50cnk6CisgICAgLy8gV2UgZXhwZWN0IERQIHRvIHBvaW50IGF0ICMxIGFuZCBm
b3IgIzEgdG8gYmUgb2Zmc2V0IGJ5IC0xMDAuCisgICAgY29kZS5hcHBlbmQoQWRkKTsKKyAgICBj
b2RlLmFwcGVuZCgxMDApOworICAgIAorICAgIGNvZGUuYXBwZW5kKEFkZERQKTsKKyAgICBjb2Rl
LmFwcGVuZCgtMSk7CisgICAgCisgICAgLy8gTG9vcCBoZWFkZXI6CisgICAgLy8gV2UgZXhwZWN0
IERQIHRvIHBvaW50IGF0ICMwLgorICAgIGNvZGUuYXBwZW5kKEFkZERQKTsKKyAgICBjb2RlLmFw
cGVuZCgxKTsKKyAgICAKKyAgICBjb2RlLmFwcGVuZChBZGQpOworICAgIGNvZGUuYXBwZW5kKDEp
OworICAgIAorICAgIGNvZGUuYXBwZW5kKFByaW50KTsKKyAgICAKKyAgICBjb2RlLmFwcGVuZChB
ZGQpOworICAgIGNvZGUuYXBwZW5kKC0xMDApOworICAgIAorICAgIC8vIFdlIHdhbnQgdG8gc3Rv
cCBpZiBpdCdzIHplcm8gYW5kIGNvbnRpbnVlIGlmIGl0J3Mgbm9uLXplcm8uIEFkZENQIHRha2Vz
IHRoZSBicmFuY2ggaWYgaXQncworICAgIC8vIG5vbi16ZXJvLgorICAgIGNvZGUuYXBwZW5kKEFk
ZENQKTsKKyAgICBjb2RlLmFwcGVuZCgtMTEpOyAvLyBnbyB0byBsb29wIHJlLWVudHJ5LgorICAg
IAorICAgIGNvZGUuYXBwZW5kKFN0b3ApOworICAgIAorICAgIGlmIChzaG91bGRCZVZlcmJvc2Uo
KSkKKyAgICAgICAgZGF0YUxvZygiY29kZSA9ICIsIGxpc3REdW1wKGNvZGUpLCAiXG4iKTsKKyAg
ICAKKyAgICBDSEVDSyghaW52b2tlPGludHB0cl90PigqaW50ZXJwcmV0ZXIsIGRhdGEuZGF0YSgp
LCBjb2RlLmRhdGEoKSwgJnN0cmVhbSkpOworICAgIAorICAgIENIRUNLKHN0cmVhbS5zaXplKCkg
PT0gMTAwKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgMTAwOyArK2kpCisgICAgICAg
IENIRUNLKHN0cmVhbVtpXSA9PSBpICsgMSk7CisgICAgCisgICAgaWYgKHNob3VsZEJlVmVyYm9z
ZSgpKQorICAgICAgICBkYXRhTG9nKCJzdHJlYW0gPSAiLCBsaXN0RHVtcChzdHJlYW0pLCAiXG4i
KTsKK30KKwogdm9pZCB0ZXN0UmVkdWNlU3RyZW5ndGhDaGVja0JvdHRvbVVzZUluQW5vdGhlckJs
b2NrKCkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKQEAgLTEyMTEwLDcgKzEyMzUyLDcgQEAgdm9p
ZCB0ZXN0UmVkdWNlU3RyZW5ndGhDaGVja0JvdHRvbVVzZUluQQogICAgICAgICAgICAgaml0LnJl
dCgpOwogICAgICAgICB9KTsKICAgICBWYWx1ZSogYXJnID0gb25lLT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAg
b25lLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVl
bnRlZEJsb2NrKHR3bykpOworICAgIG9uZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1
bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodHdvKSk7CiAgICAgCiAgICAgY2hlY2sgPSB0
d28tPmFwcGVuZE5ldzxDaGVja1ZhbHVlPigKICAgICAgICAgcHJvYywgQ2hlY2tBZGQsIE9yaWdp
bigpLCBhcmcsCkBAIC0xMjExOSw3ICsxMjM2MSw3IEBAIHZvaWQgdGVzdFJlZHVjZVN0cmVuZ3Ro
Q2hlY2tCb3R0b21Vc2VJbkEKICAgICAgICAgWyZdIChDQ2FsbEhlbHBlcnMmLCBjb25zdCBTdGFj
a21hcEdlbmVyYXRpb25QYXJhbXMmKSB7CiAgICAgICAgICAgICBDSEVDSyghIlNob3VsZCBub3Qg
ZXhlY3V0ZSIpOwogICAgICAgICB9KTsKLSAgICB0d28tPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrKTsKKyAgICB0d28tPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVjayk7CiAgICAgCiAgICAgcHJvYy5y
ZXNldFJlYWNoYWJpbGl0eSgpOwogICAgIHJlZHVjZVN0cmVuZ3RoKHByb2MpOwpAQCAtMTIxMzQs
MTEgKzEyMzc2LDExIEBAIHZvaWQgdGVzdFJlc2V0UmVhY2hhYmlsaXR5RGFuZ2xpbmdSZWZlcmUK
ICAgICAKICAgICBVcHNpbG9uVmFsdWUqIHVwc2lsb24gPSBvbmUtPmFwcGVuZE5ldzxVcHNpbG9u
VmFsdWU+KAogICAgICAgICBwcm9jLCBPcmlnaW4oKSwgb25lLT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpKTsKLSAgICBvbmUtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIE9vcHMsIE9yaWdpbigpKTsKKyAgICBvbmUtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBPb3BzLCBPcmlnaW4oKSk7CiAgICAgCiAgICAgVmFsdWUqIHBoaSA9IHR3by0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBQaGksIEludDMyLCBPcmlnaW4oKSk7CiAgICAgdXBzaWxvbi0+
c2V0UGhpKHBoaSk7Ci0gICAgdHdvLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBPb3Bz
LCBPcmlnaW4oKSk7CisgICAgdHdvLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgT29wcywg
T3JpZ2luKCkpOwogICAgIAogICAgIHByb2MucmVzZXRSZWFjaGFiaWxpdHkoKTsKICAgICB2YWxp
ZGF0ZShwcm9jKTsKQEAgLTEzNTQ3LDggKzEzNzg5LDEzIEBAIHZvaWQgcnVuKGNvbnN0IGNoYXIq
IGZpbHRlcikKICAgICBSVU4odGVzdFNwaWxsRGVmU21hbGxlclRoYW5Vc2UoKSk7CiAgICAgUlVO
KHRlc3RTcGlsbFVzZUxhcmdlclRoYW5EZWYoKSk7CiAgICAgUlVOKHRlc3RMYXRlUmVnaXN0ZXIo
KSk7Cis8PDw8PDw8IC5taW5lCisgICAgCisgICAgUlVOKHRlc3RUaHJlYWRlZEludGVycHJldGVy
KCkpOworPT09PT09PQogICAgIFJVTih0ZXN0UmVkdWNlU3RyZW5ndGhDaGVja0JvdHRvbVVzZUlu
QW5vdGhlckJsb2NrKCkpOwogICAgIFJVTih0ZXN0UmVzZXRSZWFjaGFiaWxpdHlEYW5nbGluZ1Jl
ZmVyZW5jZSgpKTsKKz4+Pj4+Pj4gLnIyMDI4MDkKIAogICAgIGlmICh0YXNrcy5pc0VtcHR5KCkp
CiAgICAgICAgIHVzYWdlKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fp
ckNvZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWly
Q29kZS5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvQWlyQ29kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1
ZGUgIkFpckNDYWxsU3BlY2lhbC5oIgogI2luY2x1ZGUgIkIzQmFzaWNCbG9ja1V0aWxzLmgiCisj
aW5jbHVkZSAiQjNQcm9jZWR1cmUuaCIKICNpbmNsdWRlICJCM1N0YWNrU2xvdC5oIgogCiBuYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsgbmFtZXNwYWNlIEFpciB7CkBAIC0xMzUsNiArMTM2
LDExIEBAIHZvaWQgQ29kZTo6YWRkRmFzdFRtcChUbXAgdG1wKQogICAgIG1fZmFzdFRtcHMuYWRk
KHRtcCk7CiB9CiAKK3ZvaWQqIENvZGU6OmFkZERhdGFTZWN0aW9uKHNpemVfdCBzaXplKQorewor
ICAgIHJldHVybiBtX3Byb2MuYWRkRGF0YVNlY3Rpb24oc2l6ZSk7Cit9CisKIHVuc2lnbmVkIENv
ZGU6OmpzSGFzaCgpIGNvbnN0CiB7CiAgICAgdW5zaWduZWQgcmVzdWx0ID0gMDsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuaAkod29ya2luZyBjb3B5KQpAQCAt
MzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkFpclNwZWNpYWwuaCIKICNpbmNsdWRlICJBaXJTdGFj
a1Nsb3QuaCIKICNpbmNsdWRlICJBaXJUbXAuaCIKKyNpbmNsdWRlICJCM0luZGV4TWFwLmgiCiAj
aW5jbHVkZSAiQjNTcGFyc2VDb2xsZWN0aW9uLmgiCiAjaW5jbHVkZSAiUmVnaXN0ZXJBdE9mZnNl
dExpc3QuaCIKICNpbmNsdWRlICJTdGFja0FsaWdubWVudC5oIgpAQCAtMjAzLDYgKzIwNCw4IEBA
IHB1YmxpYzoKICAgICB2b2lkIGFkZEZhc3RUbXAoVG1wKTsKICAgICBib29sIGlzRmFzdFRtcChU
bXAgdG1wKSBjb25zdCB7IHJldHVybiBtX2Zhc3RUbXBzLmNvbnRhaW5zKHRtcCk7IH0KICAgICAK
KyAgICB2b2lkKiBhZGREYXRhU2VjdGlvbihzaXplX3QpOworICAgIAogICAgIC8vIFRoZSBuYW1l
IGhhcyB0byBiZSBhIHN0cmluZyBsaXRlcmFsLCBzaW5jZSB3ZSBkb24ndCBkbyBhbnkgbWVtb3J5
IG1hbmFnZW1lbnQgZm9yIHRoZSBzdHJpbmcuCiAgICAgdm9pZCBzZXRMYXN0UGhhc2VOYW1lKGNv
bnN0IGNoYXIqIG5hbWUpCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fp
ci9BaXJDdXN0b20uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0FpckN1c3RvbS5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvYWlyL0FpckN1c3RvbS5oCSh3b3JraW5nIGNvcHkpCkBAIC04NCwxMCArODQsMTUgQEAgc3Ry
dWN0IFBhdGNoQ3VzdG9tIHsKICAgICB7CiAgICAgICAgIHJldHVybiBpbnN0LmFyZ3NbMF0uc3Bl
Y2lhbCgpLT5zaG91bGRUcnlBbGlhc2luZ0RlZihpbnN0KTsKICAgICB9CisgICAgCisgICAgc3Rh
dGljIGJvb2wgaXNUZXJtaW5hbChJbnN0JiBpbnN0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGlu
c3QuYXJnc1swXS5zcGVjaWFsKCktPmlzVGVybWluYWwoaW5zdCk7CisgICAgfQogCiAgICAgc3Rh
dGljIGJvb2wgaGFzTm9uQXJnTm9uQ29udHJvbEVmZmVjdHMoSW5zdCYgaW5zdCkKICAgICB7Ci0g
ICAgICAgIHJldHVybiBpbnN0LmFyZ3NbMF0uc3BlY2lhbCgpLT5oYXNOb25BcmdOb25Db250cm9s
RWZmZWN0cygpOworICAgICAgICByZXR1cm4gaW5zdC5hcmdzWzBdLnNwZWNpYWwoKS0+aGFzTm9u
QXJnTm9uQ29udHJvbEVmZmVjdHMoaW5zdCk7CiAgICAgfQogCiAgICAgc3RhdGljIENDYWxsSGVs
cGVyczo6SnVtcCBnZW5lcmF0ZSgKQEAgLTEzOCw2ICsxNDMsMTEgQEAgc3RydWN0IENDYWxsQ3Vz
dG9tIHsKICAgICB7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KKyAgICAKKyAgICBzdGF0
aWMgYm9vbCBpc1Rlcm1pbmFsKEluc3QmKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIH0KIAogICAgIHN0YXRpYyBib29sIGhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKEluc3Qm
KQogICAgIHsKQEAgLTE5Nyw2ICsyMDcsMTEgQEAgc3RydWN0IFNodWZmbGVDdXN0b20gewogICAg
ICAgICB9CiAgICAgfQogCisgICAgc3RhdGljIGJvb2wgaXNUZXJtaW5hbChJbnN0JikKKyAgICB7
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKICAgICBzdGF0aWMgYm9vbCBoYXNOb25B
cmdOb25Db250cm9sRWZmZWN0cyhJbnN0JikKICAgICB7CiAgICAgICAgIHJldHVybiBmYWxzZTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGUuY3BwCShy
ZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVy
YXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAsOCArNTAsMTAgQEAKICNpbmNsdWRlICJCM0lu
ZGV4TWFwLmgiCiAjaW5jbHVkZSAiQjNQcm9jZWR1cmUuaCIKICNpbmNsdWRlICJCM1RpbWluZ1Nj
b3BlLmgiCisjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJDQ2FsbEhlbHBl
cnMuaCIKICNpbmNsdWRlICJEaXNhbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UuaCIKKyNp
bmNsdWRlICJMaW5rQnVmZmVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeyBu
YW1lc3BhY2UgQWlyIHsKIApAQCAtMTczLDEyICsxNzUsMTYgQEAgdm9pZCBnZW5lcmF0ZShDb2Rl
JiBjb2RlLCBDQ2FsbEhlbHBlcnMmIAogCiAgICAgR2VuZXJhdGlvbkNvbnRleHQgY29udGV4dDsK
ICAgICBjb250ZXh0LmNvZGUgPSAmY29kZTsKLSAgICBJbmRleE1hcDxCYXNpY0Jsb2NrLCBDQ2Fs
bEhlbHBlcnM6OkxhYmVsPiBibG9ja0xhYmVscyhjb2RlLnNpemUoKSk7CisgICAgY29udGV4dC5i
bG9ja0xhYmVscy5yZXNpemUoY29kZS5zaXplKCkpOworICAgIGZvciAoQmFzaWNCbG9jayogYmxv
Y2sgOiBjb2RlKSB7CisgICAgICAgIGlmIChibG9jaykKKyAgICAgICAgICAgIGNvbnRleHQuYmxv
Y2tMYWJlbHNbYmxvY2tdID0gQm94PENDYWxsSGVscGVyczo6TGFiZWw+OjpjcmVhdGUoKTsKKyAg
ICB9CiAgICAgSW5kZXhNYXA8QmFzaWNCbG9jaywgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdD4gYmxv
Y2tKdW1wcyhjb2RlLnNpemUoKSk7CiAKICAgICBhdXRvIGxpbmsgPSBbJl0gKENDYWxsSGVscGVy
czo6SnVtcCBqdW1wLCBCYXNpY0Jsb2NrKiB0YXJnZXQpIHsKLSAgICAgICAgaWYgKGJsb2NrTGFi
ZWxzW3RhcmdldF0uaXNTZXQoKSkgewotICAgICAgICAgICAganVtcC5saW5rVG8oYmxvY2tMYWJl
bHNbdGFyZ2V0XSwgJmppdCk7CisgICAgICAgIGlmIChjb250ZXh0LmJsb2NrTGFiZWxzW3Rhcmdl
dF0tPmlzU2V0KCkpIHsKKyAgICAgICAgICAgIGp1bXAubGlua1RvKCpjb250ZXh0LmJsb2NrTGFi
ZWxzW3RhcmdldF0sICZqaXQpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAg
LTE5NSwxNiArMjAxLDIyIEBAIHZvaWQgZ2VuZXJhdGUoQ29kZSYgY29kZSwgQ0NhbGxIZWxwZXJz
JiAKICAgICB9OwogCiAgICAgZm9yIChCYXNpY0Jsb2NrKiBibG9jayA6IGNvZGUpIHsKKyAgICAg
ICAgY29udGV4dC5jdXJyZW50QmxvY2sgPSBibG9jazsKKyAgICAgICAgY29udGV4dC5pbmRleElu
QmxvY2sgPSBVSU5UX01BWDsKICAgICAgICAgYmxvY2tKdW1wc1tibG9ja10ubGluaygmaml0KTsK
LSAgICAgICAgYmxvY2tMYWJlbHNbYmxvY2tdID0gaml0LmxhYmVsKCk7CisgICAgICAgIENDYWxs
SGVscGVyczo6TGFiZWwgbGFiZWwgPSBqaXQubGFiZWwoKTsKKyAgICAgICAgKmNvbnRleHQuYmxv
Y2tMYWJlbHNbYmxvY2tdID0gbGFiZWw7CiAgICAgICAgIEFTU0VSVChibG9jay0+c2l6ZSgpID49
IDEpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYmxvY2stPnNpemUoKSAtIDE7
ICsraSkgeworICAgICAgICAgICAgY29udGV4dC5pbmRleEluQmxvY2sgPSBpOwogICAgICAgICAg
ICAgSW5zdCYgaW5zdCA9IGJsb2NrLT5hdChpKTsKICAgICAgICAgICAgIGFkZEl0ZW0oaW5zdCk7
CiAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAganVtcCA9IGluc3QuZ2VuZXJhdGUoaml0
LCBjb250ZXh0KTsKICAgICAgICAgICAgIEFTU0VSVF9VTlVTRUQoanVtcCwgIWp1bXAuaXNTZXQo
KSk7CiAgICAgICAgIH0KIAorICAgICAgICBjb250ZXh0LmluZGV4SW5CbG9jayA9IGJsb2NrLT5z
aXplKCkgLSAxOworICAgICAgICAKICAgICAgICAgaWYgKGJsb2NrLT5sYXN0KCkub3Bjb2RlID09
IEp1bXAKICAgICAgICAgICAgICYmIGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKSA9PSBjb2RlLmZp
bmROZXh0QmxvY2soYmxvY2spKQogICAgICAgICAgICAgY29udGludWU7CkBAIC0yMjgsMjYgKzI0
MCwzMCBAQCB2b2lkIGdlbmVyYXRlKENvZGUmIGNvZGUsIENDYWxsSGVscGVycyYgCiAgICAgICAg
ICAgICBhZGRJdGVtKGJsb2NrLT5sYXN0KCkpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAg
ICAgIH0KLQorICAgICAgICAKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGp1bXAgPSBibG9j
ay0+bGFzdCgpLmdlbmVyYXRlKGppdCwgY29udGV4dCk7Ci0gICAgICAgIHN3aXRjaCAoYmxvY2st
Pm51bVN1Y2Nlc3NvcnMoKSkgewotICAgICAgICBjYXNlIDA6Ci0gICAgICAgICAgICBBU1NFUlQo
IWp1bXAuaXNTZXQoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAxOgotICAg
ICAgICAgICAgbGluayhqdW1wLCBibG9jay0+c3VjY2Vzc29yQmxvY2soMCkpOwotICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgMjoKLSAgICAgICAgICAgIGxpbmsoanVtcCwgYmxvY2st
PnN1Y2Nlc3NvckJsb2NrKDApKTsKLSAgICAgICAgICAgIGlmIChibG9jay0+c3VjY2Vzc29yQmxv
Y2soMSkgIT0gY29kZS5maW5kTmV4dEJsb2NrKGJsb2NrKSkKLSAgICAgICAgICAgICAgICBsaW5r
KGppdC5qdW1wKCksIGJsb2NrLT5zdWNjZXNzb3JCbG9jaygxKSk7Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgLy8gVGhlIGp1bXAgd29uJ3QgYmUg
c2V0IGZvciBwYXRjaHBvaW50cy4gSXQgd29uJ3QgYmUgc2V0IGZvciBPb3BzIGJlY2F1c2UgdGhl
biBpdCB3b24ndCBoYXZlCisgICAgICAgIC8vIGFueSBzdWNjZXNzb3JzLgorICAgICAgICBpZiAo
anVtcC5pc1NldCgpKSB7CisgICAgICAgICAgICBzd2l0Y2ggKGJsb2NrLT5udW1TdWNjZXNzb3Jz
KCkpIHsKKyAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICBsaW5rKGp1bXAsIGJs
b2NrLT5zdWNjZXNzb3JCbG9jaygwKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBjYXNlIDI6CisgICAgICAgICAgICAgICAgbGluayhqdW1wLCBibG9jay0+c3VjY2Vzc29y
QmxvY2soMCkpOworICAgICAgICAgICAgICAgIGlmIChibG9jay0+c3VjY2Vzc29yQmxvY2soMSkg
IT0gY29kZS5maW5kTmV4dEJsb2NrKGJsb2NrKSkKKyAgICAgICAgICAgICAgICAgICAgbGluayhq
aXQuanVtcCgpLCBibG9jay0+c3VjY2Vzc29yQmxvY2soMSkpOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQog
ICAgICAgICB9CiAgICAgICAgIGFkZEl0ZW0oYmxvY2stPmxhc3QoKSk7CiAgICAgfQorICAgIAor
ICAgIGNvbnRleHQuY3VycmVudEJsb2NrID0gbnVsbHB0cjsKKyAgICBjb250ZXh0LmluZGV4SW5C
bG9jayA9IFVJTlRfTUFYOwogCiAgICAgcGNUb09yaWdpbk1hcC5hcHBlbmRJdGVtKGppdC5sYWJl
bCgpLCBPcmlnaW4oKSk7CiAgICAgLy8gRklYTUU6IE1ha2UgbGF0ZSBwYXRocyBoYXZlIE9yaWdp
bnM6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM2ODkKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGlvbkNvbnRleHQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRpb25Db250
ZXh0LmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyR2VuZXJhdGlvbkNvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCwxNCArMjgsMTQgQEAKIAog
I2lmIEVOQUJMRShCM19KSVQpCiAKKyNpbmNsdWRlICJBaXJCYXNpY0Jsb2NrLmgiCisjaW5jbHVk
ZSAiQjNJbmRleE1hcC5oIgorI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgorI2luY2x1ZGUgPHd0
Zi9Cb3guaD4KICNpbmNsdWRlIDx3dGYvU2hhcmVkVGFzay5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KIAotbmFtZXNwYWNlIEpTQyB7Ci0KLWNsYXNzIENDYWxsSGVscGVyczsKLQotbmFtZXNw
YWNlIEIzIHsgbmFtZXNwYWNlIEFpciB7CituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsg
bmFtZXNwYWNlIEFpciB7CiAKIGNsYXNzIENvZGU7CiAKQEAgLTQ0LDcgKzQ0LDEwIEBAIHN0cnVj
dCBHZW5lcmF0aW9uQ29udGV4dCB7CiAgICAgdHlwZWRlZiBTaGFyZWRUYXNrPExhdGVQYXRoRnVu
Y3Rpb24+IExhdGVQYXRoOwogCiAgICAgVmVjdG9yPFJlZlB0cjxMYXRlUGF0aD4+IGxhdGVQYXRo
czsKLSAgICBDb2RlKiBjb2RlOworICAgIEluZGV4TWFwPEJhc2ljQmxvY2ssIEJveDxDQ2FsbEhl
bHBlcnM6OkxhYmVsPj4gYmxvY2tMYWJlbHM7CisgICAgQmFzaWNCbG9jayogY3VycmVudEJsb2Nr
IHsgbnVsbHB0ciB9OworICAgIHVuc2lnbmVkIGluZGV4SW5CbG9jayB7IFVJTlRfTUFYIH07Cisg
ICAgQ29kZSogY29kZSB7IG51bGxwdHIgfTsKIH07CiAKIH0gfSB9IC8vIG5hbWVzcGFjZSBKU0M6
OkIzOjpBaXIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdC5oCShyZXZp
c2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckluc3QuaAko
d29ya2luZyBjb3B5KQpAQCAtMTYzLDYgKzE2Myw5IEBAIHB1YmxpYzoKICAgICAvLyBUaGlzIGZ1
bmN0aW9uIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IG9wY29kZV9nZW5lcmF0b3IucmIuCiAgICAgYm9v
bCBhZG1pdHNTdGFjayh1bnNpZ25lZCBhcmdJbmRleCk7CiAgICAgYm9vbCBhZG1pdHNTdGFjayhB
cmcmKTsKKyAgICAKKyAgICAvLyBEZWZpbmVkIGJ5IG9wY29kZV9nZW5lcmF0b3IucmIuCisgICAg
Ym9vbCBpc1Rlcm1pbmFsKCk7CiAKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhpcyBpbnN0cnVj
dGlvbiBjYW4gaGF2ZSBhbnkgZWZmZWN0cyBvdGhlciB0aGFuIGNvbnRyb2wgZmxvdyBvciBhcmd1
bWVudHMuCiAgICAgYm9vbCBoYXNOb25BcmdOb25Db250cm9sRWZmZWN0cygpOwpAQCAtMTc0LDYg
KzE3Nyw5IEBAIHB1YmxpYzoKIAogICAgIC8vIFRlbGxzIHlvdSBpZiB0aGlzIG9wZXJhdGlvbiBo
YXMgYXJnIGVmZmVjdHMuCiAgICAgYm9vbCBoYXNBcmdFZmZlY3RzKCk7CisgICAgCisgICAgLy8g
VGVsbHMgeW91IGlmIHRoaXMgb3BlcmF0aW9uIGhhcyBub24tY29udHJvbCBlZmZlY3RzLgorICAg
IGJvb2wgaGFzTm9uQ29udHJvbEVmZmVjdHMoKSB7IHJldHVybiBoYXNOb25BcmdOb25Db250cm9s
RWZmZWN0cygpIHx8IGhhc0FyZ0VmZmVjdHMoKTsgfQogCiAgICAgLy8gR2VuZXJhdGUgc29tZSBj
b2RlIGZvciB0aGlzIGluc3RydWN0aW9uLiBUaGlzIGlzLCBsaWtlLCBsaXRlcmFsbHkgb3VyIGJh
Y2tlbmQuIElmIHRoaXMgaXMgdGhlCiAgICAgLy8gdGVybWluYWwsIGl0IHJldHVybnMgdGhlIGp1
bXAgdGhhdCBuZWVkcyB0byBiZSBsaW5rZWQgZm9yIHRoZSAidGhlbiIgY2FzZSwgd2l0aCB0aGUg
ImVsc2UiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclNpbXBsaWZ5Q0ZH
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclNpbXBs
aWZ5Q0ZHLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9BaXJTaW1wbGlmeUNGRy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk1LDMzICs5NSwzMiBA
QCBib29sIHNpbXBsaWZ5Q0ZHKENvZGUmIGNvZGUpCiAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgfQogCi0gICAgICAgICAgICAvLyBOb3cgY2hlY2sgaWYgdGhlIGJsb2NrJ3MgdGVybWlu
YWwgY2FuIGJlIHJlcGxhY2VkIHdpdGggYSBqdW1wLgotICAgICAgICAgICAgaWYgKGJsb2NrLT5u
dW1TdWNjZXNzb3JzKCkgPiAxKSB7Ci0gICAgICAgICAgICAgICAgLy8gVGhlIHRlcm1pbmFsIG11
c3Qgbm90IGhhdmUgd2VpcmQgZWZmZWN0cy4KLSAgICAgICAgICAgICAgICBpZiAoIWJsb2NrLT5s
YXN0KCkuaGFzQXJnRWZmZWN0cygpCi0gICAgICAgICAgICAgICAgICAgICYmICFibG9jay0+bGFz
dCgpLmhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKCkpIHsKLSAgICAgICAgICAgICAgICAgICAg
Ly8gQWxsIG9mIHRoZSBzdWNjZXNzb3JzIG11c3QgYmUgdGhlIHNhbWUuCi0gICAgICAgICAgICAg
ICAgICAgIGJvb2wgYWxsU2FtZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIEJhc2ljQmxv
Y2sqIGZpcnN0U3VjY2Vzc29yID0gYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDApOwotICAgICAgICAg
ICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAxOyBpIDwgYmxvY2stPm51bVN1Y2Nlc3NvcnMo
KTsgKytpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYmxvY2stPnN1Y2Nlc3NvckJs
b2NrKGkpICE9IGZpcnN0U3VjY2Vzc29yKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
YWxsU2FtZSA9IGZhbHNlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgICAgIGlmIChhbGxTYW1lKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAodmVy
Ym9zZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhTG9nKCJDaGFuZ2luZyAiLCBw
b2ludGVyRHVtcChibG9jayksICIncyB0ZXJtaW5hbCB0byBhIEp1bXAuXG4iKTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGJsb2NrLT5sYXN0KCkgPSBJbnN0KEp1bXAsIGJsb2NrLT5sYXN0KCku
b3JpZ2luKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLT5zdWNjZXNzb3JzKCkucmVz
aXplKDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2stPnN1Y2Nlc3NvcnMoKVswXS5m
cmVxdWVuY3koKSA9IEZyZXF1ZW5jeUNsYXNzOjpOb3JtYWw7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBjaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAgICAgIC8vIE5vdyBjaGVjayBpZiB0aGUgYmxv
Y2sncyB0ZXJtaW5hbCBjYW4gYmUgcmVwbGFjZWQgd2l0aCBhIGp1bXAuIFRoZSB0ZXJtaW5hbCBt
dXN0IG5vdAorICAgICAgICAgICAgLy8gaGF2ZSB3ZWlyZCBlZmZlY3RzLgorICAgICAgICAgICAg
aWYgKGJsb2NrLT5udW1TdWNjZXNzb3JzKCkgPiAxIAorICAgICAgICAgICAgICAgICYmICFibG9j
ay0+bGFzdCgpLmhhc05vbkNvbnRyb2xFZmZlY3RzKCkpIHsKKyAgICAgICAgICAgICAgICAvLyBB
bGwgb2YgdGhlIHN1Y2Nlc3NvcnMgbXVzdCBiZSB0aGUgc2FtZS4KKyAgICAgICAgICAgICAgICBi
b29sIGFsbFNhbWUgPSB0cnVlOworICAgICAgICAgICAgICAgIEJhc2ljQmxvY2sqIGZpcnN0U3Vj
Y2Vzc29yID0gYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDApOworICAgICAgICAgICAgICAgIGZvciAo
dW5zaWduZWQgaSA9IDE7IGkgPCBibG9jay0+bnVtU3VjY2Vzc29ycygpOyArK2kpIHsKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKGJsb2NrLT5zdWNjZXNzb3JCbG9jayhpKSAhPSBmaXJzdFN1Y2Nl
c3NvcikgeworICAgICAgICAgICAgICAgICAgICAgICAgYWxsU2FtZSA9IGZhbHNlOworICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGFsbFNhbWUpIHsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgICAgICAgICBkYXRhTG9nKCJDaGFu
Z2luZyAiLCBwb2ludGVyRHVtcChibG9jayksICIncyB0ZXJtaW5hbCB0byBhIEp1bXAuXG4iKTsK
KyAgICAgICAgICAgICAgICAgICAgYmxvY2stPmxhc3QoKSA9IEluc3QoSnVtcCwgYmxvY2stPmxh
c3QoKS5vcmlnaW4pOworICAgICAgICAgICAgICAgICAgICBibG9jay0+c3VjY2Vzc29ycygpLnJl
c2l6ZSgxKTsKKyAgICAgICAgICAgICAgICAgICAgYmxvY2stPnN1Y2Nlc3NvcnMoKVswXS5mcmVx
dWVuY3koKSA9IEZyZXF1ZW5jeUNsYXNzOjpOb3JtYWw7CisgICAgICAgICAgICAgICAgICAgIGNo
YW5nZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIAogICAgICAg
ICAgICAgLy8gRmluYWxseSBoYW5kbGUganVtcHMgdG8gYSBibG9jayB3aXRoIG9uZSBwcmVkZWNl
c3Nvci4KLSAgICAgICAgICAgIGlmIChibG9jay0+bnVtU3VjY2Vzc29ycygpID09IDEpIHsKKyAg
ICAgICAgICAgIGlmIChibG9jay0+bnVtU3VjY2Vzc29ycygpID09IDEKKyAgICAgICAgICAgICAg
ICAmJiAhYmxvY2stPmxhc3QoKS5oYXNOb25Db250cm9sRWZmZWN0cygpKSB7CiAgICAgICAgICAg
ICAgICAgQmFzaWNCbG9jayogc3VjY2Vzc29yID0gYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDApOwog
ICAgICAgICAgICAgICAgIGlmIChzdWNjZXNzb3IgIT0gYmxvY2sgJiYgc3VjY2Vzc29yLT5udW1Q
cmVkZWNlc3NvcnMoKSA9PSAxKSB7CiAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJU
KHN1Y2Nlc3Nvci0+cHJlZGVjZXNzb3IoMCkgPT0gYmxvY2spOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJTcGVjaWFsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpclNwZWNpYWwuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclNwZWNpYWwuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTU1LDcgKzU1LDEyIEBAIE9wdGlvbmFsPHVuc2lnbmVkPiBTcGVjaWFsOjpzaG91bGRUcnlBbGkK
ICAgICByZXR1cm4gTnVsbG9wdDsKIH0KIAotYm9vbCBTcGVjaWFsOjpoYXNOb25BcmdOb25Db250
cm9sRWZmZWN0cygpCitib29sIFNwZWNpYWw6OmlzVGVybWluYWwoSW5zdCYpCit7CisgICAgcmV0
dXJuIGZhbHNlOworfQorCitib29sIFNwZWNpYWw6Omhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3Rz
KEluc3QmKQogewogICAgIHJldHVybiB0cnVlOwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci9BaXJTcGVjaWFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci9BaXJTcGVjaWFsLmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvQWlyU3BlY2lhbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTg3LDkgKzg3LDEy
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgY29uc3QgUmVnaXN0ZXJTZXQmIGV4dHJhRWFybHlD
bG9iYmVyZWRSZWdzKEluc3QmKSA9IDA7CiAgICAgdmlydHVhbCBjb25zdCBSZWdpc3RlclNldCYg
ZXh0cmFDbG9iYmVyZWRSZWdzKEluc3QmKSA9IDA7CisgICAgCisgICAgLy8gQnkgZGVmYXVsdCwg
dGhpcyByZXR1cm5zIGZhbHNlLgorICAgIHZpcnR1YWwgYm9vbCBpc1Rlcm1pbmFsKEluc3QmKTsK
IAogICAgIC8vIEJ5IGRlZmF1bHQsIHRoaXMgcmV0dXJucyB0cnVlLgotICAgIHZpcnR1YWwgYm9v
bCBoYXNOb25BcmdOb25Db250cm9sRWZmZWN0cygpOworICAgIHZpcnR1YWwgYm9vbCBoYXNOb25B
cmdOb25Db250cm9sRWZmZWN0cyhJbnN0Jik7CiAKICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0m
KSBjb25zdDsKICAgICB2b2lkIGRlZXBEdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclZhbGlkYXRlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclZhbGlkYXRlLmNwcAkocmV2aXNpb24g
MjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJWYWxpZGF0ZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0y
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtNzksOSArNzksOSBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgIFZBTElEQVRFKGluc3QuaXNWYWxpZEZvcm0oKSwgKCJBdCAiLCBpbnN0
LCAiIGluICIsICpibG9jaykpOwogICAgICAgICAgICAgICAgIGlmIChpbnN0SW5kZXggPT0gYmxv
Y2stPnNpemUoKSAtIDEpCi0gICAgICAgICAgICAgICAgICAgIFZBTElEQVRFKGlzVGVybWluYWwo
aW5zdC5vcGNvZGUpLCAoIkF0ICIsIGluc3QsICIgaW4gIiwgKmJsb2NrKSk7CisgICAgICAgICAg
ICAgICAgICAgIFZBTElEQVRFKGluc3QuaXNUZXJtaW5hbCgpLCAoIkF0ICIsIGluc3QsICIgaW4g
IiwgKmJsb2NrKSk7CiAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBW
QUxJREFURSghaXNUZXJtaW5hbChpbnN0Lm9wY29kZSksICgiQXQgIiwgaW5zdCwgIiBpbiAiLCAq
YmxvY2spKTsKKyAgICAgICAgICAgICAgICAgICAgVkFMSURBVEUoIWluc3QuaXNUZXJtaW5hbCgp
LCAoIkF0ICIsIGluc3QsICIgaW4gIiwgKmJsb2NrKSk7CiAKICAgICAgICAgICAgICAgICAvLyBm
b3JFYWNoQXJnIG11c3QgcmV0dXJuIEFyZyYncyB0aGF0IHBvaW50IGludG8gdGhlIGFyZ3MgYXJy
YXkuCiAgICAgICAgICAgICAgICAgaW5zdC5mb3JFYWNoQXJnKApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJiCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvb3Bjb2RlX2dlbmVyYXRvci5yYgkocmV2aXNpb24gMjAy
ODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJi
CSh3b3JraW5nIGNvcHkpCkBAIC05NzYsNiArOTc2LDMyIEBAIHdyaXRlSCgiT3Bjb2RlR2VuZXJh
dGVkIikgewogICAgIG91dHAucHV0cyAicmV0dXJuIGZhbHNlOyIKICAgICBvdXRwLnB1dHMgIn0i
CiAKKyAgICBvdXRwLnB1dHMgImJvb2wgSW5zdDo6aXNUZXJtaW5hbCgpIgorICAgIG91dHAucHV0
cyAieyIKKyAgICBvdXRwLnB1dHMgInN3aXRjaCAob3Bjb2RlKSB7IgorICAgIGZvdW5kVHJ1ZSA9
IGZhbHNlCisgICAgJG9wY29kZXMudmFsdWVzLmVhY2ggeworICAgICAgICB8IG9wY29kZSB8Cisg
ICAgICAgIGlmIG9wY29kZS5hdHRyaWJ1dGVzWzp0ZXJtaW5hbF0KKyAgICAgICAgICAgIG91dHAu
cHV0cyAiY2FzZSAje29wY29kZS5uYW1lfToiCisgICAgICAgICAgICBmb3VuZFRydWUgPSB0cnVl
CisgICAgICAgIGVuZAorICAgIH0KKyAgICBpZiBmb3VuZFRydWUKKyAgICAgICAgb3V0cC5wdXRz
ICJyZXR1cm4gdHJ1ZTsiCisgICAgZW5kCisgICAgJG9wY29kZXMudmFsdWVzLmVhY2ggeworICAg
ICAgICB8IG9wY29kZSB8CisgICAgICAgIGlmIG9wY29kZS5jdXN0b20KKyAgICAgICAgICAgIG91
dHAucHV0cyAiY2FzZSAje29wY29kZS5uYW1lfToiCisgICAgICAgICAgICBvdXRwLnB1dHMgInJl
dHVybiAje29wY29kZS5uYW1lfUN1c3RvbTo6aXNUZXJtaW5hbCgqdGhpcyk7IgorICAgICAgICBl
bmQKKyAgICB9CisgICAgb3V0cC5wdXRzICJkZWZhdWx0OiIKKyAgICBvdXRwLnB1dHMgInJldHVy
biBmYWxzZTsiCisgICAgb3V0cC5wdXRzICJ9IgorICAgIG91dHAucHV0cyAifSIKKyAgICAKICAg
ICBvdXRwLnB1dHMgImJvb2wgSW5zdDo6aGFzTm9uQXJnTm9uQ29udHJvbEVmZmVjdHMoKSIKICAg
ICBvdXRwLnB1dHMgInsiCiAgICAgb3V0cC5wdXRzICJzd2l0Y2ggKG9wY29kZSkgeyIKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5jcHAJKHJldmlzaW9uIDIwMjgwOSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjgsOCArMjgsMTggQEAKIAogI2lmIEVOQUJMRShGVExfSklUKQogCisjaW5jbHVkZSAi
QjNBcmd1bWVudFJlZ1ZhbHVlLmgiCisjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrSW5saW5lcy5oIgor
I2luY2x1ZGUgIkIzQ0NhbGxWYWx1ZS5oIgorI2luY2x1ZGUgIkIzQ29uc3QzMlZhbHVlLmgiCisj
aW5jbHVkZSAiQjNDb25zdFB0clZhbHVlLmgiCiAjaW5jbHVkZSAiQjNNYXRoRXh0cmFzLmgiCisj
aW5jbHVkZSAiQjNNZW1vcnlWYWx1ZS5oIgorI2luY2x1ZGUgIkIzU2xvdEJhc2VWYWx1ZS5oIgog
I2luY2x1ZGUgIkIzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmgiCisjaW5jbHVkZSAiQjNTd2l0
Y2hWYWx1ZS5oIgorI2luY2x1ZGUgIkIzVXBzaWxvblZhbHVlLmgiCisjaW5jbHVkZSAiQjNWYWx1
ZUlubGluZXMuaCIKICNpbmNsdWRlICJTdXBlclNhbXBsZXIuaCIKIAogbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBGVEwgewpAQCAtNTc4LDEyICs1ODgsMTIgQEAgTFZhbHVlIE91dHB1dDo6c2Vs
ZWN0KExWYWx1ZSB2YWx1ZSwgTFZhbAogCiB2b2lkIE91dHB1dDo6anVtcChMQmFzaWNCbG9jayBk
ZXN0aW5hdGlvbikKIHsKLSAgICBtX2Jsb2NrLT5hcHBlbmROZXc8QjM6OkNvbnRyb2xWYWx1ZT4o
bV9wcm9jLCBCMzo6SnVtcCwgb3JpZ2luKCksIEIzOjpGcmVxdWVudGVkQmxvY2soZGVzdGluYXRp
b24pKTsKKyAgICBtX2Jsb2NrLT5hcHBlbmROZXdDb250cm9sVmFsdWUobV9wcm9jLCBCMzo6SnVt
cCwgb3JpZ2luKCksIEIzOjpGcmVxdWVudGVkQmxvY2soZGVzdGluYXRpb24pKTsKIH0KIAogdm9p
ZCBPdXRwdXQ6OmJyYW5jaChMVmFsdWUgY29uZGl0aW9uLCBMQmFzaWNCbG9jayB0YWtlbiwgV2Vp
Z2h0IHRha2VuV2VpZ2h0LCBMQmFzaWNCbG9jayBub3RUYWtlbiwgV2VpZ2h0IG5vdFRha2VuV2Vp
Z2h0KQogewotICAgIG1fYmxvY2stPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIG1fYmxv
Y2stPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgbV9wcm9jLCBCMzo6QnJhbmNoLCBv
cmlnaW4oKSwgY29uZGl0aW9uLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGFrZW4sIHRha2Vu
V2VpZ2h0LmZyZXF1ZW5jeUNsYXNzKCkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sobm90VGFr
ZW4sIG5vdFRha2VuV2VpZ2h0LmZyZXF1ZW5jeUNsYXNzKCkpKTsKQEAgLTYwMywxMiArNjEzLDEy
IEBAIHZvaWQgT3V0cHV0OjpjaGVjayhMVmFsdWUgY29uZGl0aW9uLCBXZWkKIAogdm9pZCBPdXRw
dXQ6OnJldChMVmFsdWUgdmFsdWUpCiB7Ci0gICAgbV9ibG9jay0+YXBwZW5kTmV3PEIzOjpDb250
cm9sVmFsdWU+KG1fcHJvYywgQjM6OlJldHVybiwgb3JpZ2luKCksIHZhbHVlKTsKKyAgICBtX2Js
b2NrLT5hcHBlbmROZXdDb250cm9sVmFsdWUobV9wcm9jLCBCMzo6UmV0dXJuLCBvcmlnaW4oKSwg
dmFsdWUpOwogfQogCiB2b2lkIE91dHB1dDo6dW5yZWFjaGFibGUoKQogewotICAgIG1fYmxvY2st
PmFwcGVuZE5ldzxCMzo6Q29udHJvbFZhbHVlPihtX3Byb2MsIEIzOjpPb3BzLCBvcmlnaW4oKSk7
CisgICAgbV9ibG9jay0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKG1fcHJvYywgQjM6Ok9vcHMsIG9y
aWdpbigpKTsKIH0KIAogQ2hlY2tWYWx1ZSogT3V0cHV0OjpzcGVjdWxhdGUoTFZhbHVlIHZhbHVl
KQpAQCAtNjM4LDcgKzY0OCw3IEBAIFBhdGNocG9pbnRWYWx1ZSogT3V0cHV0OjpwYXRjaHBvaW50
KExUeXAKIAogdm9pZCBPdXRwdXQ6OnRyYXAoKQogewotICAgIG1fYmxvY2stPmFwcGVuZE5ldzxC
Mzo6Q29udHJvbFZhbHVlPihtX3Byb2MsIEIzOjpPb3BzLCBvcmlnaW4oKSk7CisgICAgbV9ibG9j
ay0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKG1fcHJvYywgQjM6Ok9vcHMsIG9yaWdpbigpKTsKIH0K
IAogVmFsdWVGcm9tQmxvY2sgT3V0cHV0OjphbmNob3IoTFZhbHVlIHZhbHVlKQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwx
OSArMzAsOCBAQAogCiAjaWYgRU5BQkxFKEZUTF9KSVQpCiAKLSNpbmNsdWRlICJCM0FyZ3VtZW50
UmVnVmFsdWUuaCIKLSNpbmNsdWRlICJCM0Jhc2ljQmxvY2tJbmxpbmVzLmgiCi0jaW5jbHVkZSAi
QjNDQ2FsbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNDb21waWxhdGlvbi5oIgotI2luY2x1ZGUgIkIz
Q29uc3QzMlZhbHVlLmgiCi0jaW5jbHVkZSAiQjNDb25zdFB0clZhbHVlLmgiCi0jaW5jbHVkZSAi
QjNDb250cm9sVmFsdWUuaCIKLSNpbmNsdWRlICJCM01lbW9yeVZhbHVlLmgiCiAjaW5jbHVkZSAi
QjNQcm9jZWR1cmUuaCIKLSNpbmNsdWRlICJCM1Nsb3RCYXNlVmFsdWUuaCIKLSNpbmNsdWRlICJC
M1N3aXRjaFZhbHVlLmgiCi0jaW5jbHVkZSAiQjNVcHNpbG9uVmFsdWUuaCIKLSNpbmNsdWRlICJC
M1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIkZUTEFiYnJldmlhdGVkVHlwZXMuaCIKICNpbmNs
dWRlICJGVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgiCiAjaW5jbHVkZSAiRlRMQ29tbW9uVmFs
dWVzLmgiCkBAIC0zNzgsOCArMzY3LDggQEAgcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFZlY3RvclR5cGU+CiAgICAgdm9pZCBzd2l0Y2hJbnN0cnVjdGlvbihMVmFsdWUgdmFsdWUsIGNv
bnN0IFZlY3RvclR5cGUmIGNhc2VzLCBMQmFzaWNCbG9jayBmYWxsVGhyb3VnaCwgV2VpZ2h0IGZh
bGxUaHJvdWdoV2VpZ2h0KQogICAgIHsKLSAgICAgICAgQjM6OlN3aXRjaFZhbHVlKiBzd2l0Y2hW
YWx1ZSA9IG1fYmxvY2stPmFwcGVuZE5ldzxCMzo6U3dpdGNoVmFsdWU+KAotICAgICAgICAgICAg
bV9wcm9jLCBvcmlnaW4oKSwgdmFsdWUsIEIzOjpGcmVxdWVudGVkQmxvY2soZmFsbFRocm91Z2gp
KTsKKyAgICAgICAgQjM6OlN3aXRjaFZhbHVlKiBzd2l0Y2hWYWx1ZSA9IG1fYmxvY2stPmFwcGVu
ZE5ldzxCMzo6U3dpdGNoVmFsdWU+KG1fcHJvYywgb3JpZ2luKCksIHZhbHVlKTsKKyAgICAgICAg
c3dpdGNoVmFsdWUtPnNldEZhbGxUaHJvdWdoKEZyZXF1ZW50ZWRCbG9jayhmYWxsVGhyb3VnaCkp
OwogICAgICAgICBmb3IgKGNvbnN0IFN3aXRjaENhc2UmIHN3aXRjaENhc2UgOiBjYXNlcykgewog
ICAgICAgICAgICAgaW50NjRfdCB2YWx1ZSA9IHN3aXRjaENhc2UudmFsdWUoKS0+YXNJbnQoKTsK
ICAgICAgICAgICAgIEIzOjpGcmVxdWVudGVkQmxvY2sgdGFyZ2V0KHN3aXRjaENhc2UudGFyZ2V0
KCksIHN3aXRjaENhc2Uud2VpZ2h0KCkuZnJlcXVlbmN5Q2xhc3MoKSk7CkluZGV4OiBXZWJzaXRl
cy93ZWJraXQub3JnL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy93ZWJraXQub3Jn
L0NoYW5nZUxvZwkocmV2aXNpb24gMjAyODA5KQorKysgV2Vic2l0ZXMvd2Via2l0Lm9yZy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxNi0wNS0yOSAgRmlsaXAg
UGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCB0YWJsZS1iYXNl
ZCBzd2l0Y2hlcyBpbiBCMy9BaXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1MTE0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorICAgICAgICAKKyAgICAgICAgVXBkYXRlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBuZXcgUG9s
eUp1bXAgb3Bjb2RlLgorCisgICAgICAgICogZG9jcy9iMy9pbnRlcm1lZGlhdGUtcmVwcmVzZW50
YXRpb24uaHRtbDoKKwogMjAxNi0wNy0wMSAgSm9uIERhdmlzICA8am9uZEBhcHBsZS5jb20+CiAK
ICAgICAgICAgQWRkZWQgYSBjb2xvcmZ1bCBuZXcgaW1hZ2UgYW5kIGZpeGVkIHRoZSBPcGVuIEdy
YXBoIGF0dHJpYnV0ZS4KSW5kZXg6IFdlYnNpdGVzL3dlYmtpdC5vcmcvZG9jcy9iMy9pbnRlcm1l
ZGlhdGUtcmVwcmVzZW50YXRpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy93ZWJraXQu
b3JnL2RvY3MvYjMvaW50ZXJtZWRpYXRlLXJlcHJlc2VudGF0aW9uLmh0bWwJKHJldmlzaW9uIDIw
MjgwOSkKKysrIFdlYnNpdGVzL3dlYmtpdC5vcmcvZG9jcy9iMy9pbnRlcm1lZGlhdGUtcmVwcmVz
ZW50YXRpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNTM3LDYgKzUzNywzOSBAQCBwYXRjaHBv
aW50LT5zZXRHZW5lcmF0b3IoCiAgICAgICAgIGFsc28gY29udGFpbnMgYSBmYWxsLXRocm91Z2gg
dGFyZ2V0IGluIGNhc2UgdGhlIGNoaWxkIGhhcyBhIHZhbHVlIHRoYXQgd2Fzbid0IG1lbnRpb25l
ZAogICAgICAgICBpbiB0aGUgY2FzZXMgbGlzdC4gIE11c3QgdXNlIHRoZSBTd2l0Y2hWYWx1ZSBj
bGFzcy4gIE11c3QgYXBwZWFyIGF0IHRoZSBlbmQgb2YgdGhlIGJhc2ljCiAgICAgICAgIGJsb2Nr
LjwvZGQ+CisgICAgICAKKyAgICAgIDxkdD5Wb2lkIFBvbHlKdW1wKEludFB0ciwgYmxvY2tzLi4u
KTwvZHQ+CisgICAgICA8ZGQ+CisgICAgICAgIDxwPkp1bXBzIHRvIHRoZSBnaXZlbiBhZGRyZXNz
LiBUaGUgY29tcGlsZXIgd2lsbCBhc3N1bWUgdGhhdCB0aGlzIGp1bXBzIHRvIG9uZSBvZiB0aGUg
Z2l2ZW4KKyAgICAgICAgICBibG9ja3MuIFRoZSBjb21waWxlciBtYWtlcyBubyBhdHRlbXB0IHRv
IHByb3ZlIG9yIHZhbGlkYXRlIHRoYXQgdGhlIHBhc3NlZCBqdW1wIGFkZHJlc3MgaXMKKyAgICAg
ICAgICBhY3R1YWxseSB0aGUgYWRkcmVzcyBvZiBhbnkgb2YgdGhvc2UgYmxvY2tzLiBOb25zZW5z
aWNhbCB0aGluZ3Mgd2lsbCBoYXBwZW4gaWYgdGhlIHBhc3NlZAorICAgICAgICAgIGFkZHJlc3Mg
aXMgbm90IHRoZSBhZGRyZXNzIG9mIG9uZSBvZiB0aGUgYmxvY2tzIGluIHRoZSBzdWNjZXNzb3Ig
bGlzdC4gWW91IGNhbiBhcnJhbmdlIHRvCisgICAgICAgICAgZ2V0IHRoZSBhZGRyZXNzZXMgb2Yg
YmxvY2tzIGJ5IHBhc3NpbmcgYSBjYWxsYmFjayB0byBQb2x5SnVtcC4gVGhpcyBpcyB1c2VkIGlu
dGVybmFsbHkKKyAgICAgICAgICBmb3IgbG93ZXJpbmcgU3dpdGNoIG9wY29kZXMuIFlvdSBjYW4g
YWxzbyB1c2UgaXQgZGlyZWN0bHkuPC9wPgorICAgICAgCisgICAgICAgIDxwPlBvbHlKdW1wIGlz
IG5vdCBjbG9uZWFibGUuIEZvciBlYWNoIFBvbHlKdW1wIHlvdSBjcmVhdGUsIHRoZXJlIHdpbGwg
YmUgb25lIGluZGlyZWN0CisgICAgICAgICAganVtcCBnZW5lcmF0ZWQuIFRoaXMgaXMgbmVjZXNz
YXJ5IHRvIGVuc3VyZSBzb3VuZG5lc3Mgb2YgdGhlIGNhbGxiYWNrLiBJZiB0aGUgUG9seUp1bXAK
KyAgICAgICAgICBjb3VsZCBiZSBjbG9uZWQsIHRoZW4gdGhlIGNhbGxiYWNrIHdvdWxkIGdldCBj
YWxsZWQgZm9yIGVhY2ggY2xvbmUuIFByZXN1bWFibHksIHlvdSdkCisgICAgICAgICAgaW1wbGVt
ZW50IHRoZSBjYWxsYmFjayBieSBwb3B1bGF0aW5nIHNvbWUgdGFibGUgd2l0aCB0aGUgYWRkcmVz
c2VzIG9mIHRoZSBibG9ja3MuIElmIHRoZQorICAgICAgICAgIGNhbGxiYWNrIGdldHMgY2FsbGVk
IG11bHRpcGxlIHRpbWVzIHRoZW4gaXQgbWF5IHJldHVybiBkaWZmZXJlbnQgYWRkcmVzc2VzIGVh
Y2ggdGltZSAtCisgICAgICAgICAgc2luY2UgYWZ0ZXIgY2xvbmluZyBhIFBvbHlKdW1wLCB0aGUg
Y29tcGlsZXIgbWF5IHJldGFyZ2V0IGFueSBvZiBpdHMgc3VjY2Vzc29yIGVkZ2VzLgorICAgICAg
ICAgIFRoaXMgd291bGQgYmUgY29uZnVzaW5nLCBzaW5jZSB0aGVuIHlvdSB3b3VsZG4ndCBrbm93
IHdoYXQgdG8gZG8gd2l0aCBkaXNjcmVwYW5jaWVzIGJldHdlZW4KKyAgICAgICAgICBhZGRyZXNz
ZXMgcmV0dXJuZWQgYnkgdGhlIHZhcmlvdXMgY2FsbHMgdG8gdGhlIGNhbGxiYWNrLiBEaXNhbGxv
d2luZyBjbG9uaW5nIG9mIFBvbHlKdW1wCisgICAgICAgICAgc29sdmVzIHRoaXMgcHJvYmxlbS48
L3A+CisgICAgICAgIAorICAgICAgICA8cD5BIGNsb3NlbHkgcmVsYXRlZCBwcm9ibGVtIGlzIHRo
YXQgaWYgeW91IGVtaXQgbXVsdGlwbGUgUG9seUp1bXAgaW5zdHJ1Y3Rpb25zLCB0aGVuIGV2ZW4K
KyAgICAgICAgICBpZiB0aGV5IGluaXRpYWxseSBzaGFyZSB0aGUgc2FtZSBzdWNjZXNzb3JzLCB5
b3UgY2Fubm90IGd1YXJhbnRlZSB0aGF0IHRoZXkgd2lsbCBjb250aW51ZQorICAgICAgICAgIHRv
IHNoYXJlIHRoZSBzYW1lIHN1Y2Nlc3NvcnMgYWZ0ZXIgb3B0aW1pemF0aW9uLiBUaGlzIG1lYW5z
IHRoYXQgUG9seUp1bXAgY2Fubm90CisgICAgICAgICAgY3VycmVudGx5IGJlIHVzZWQgZm9yIGlt
cGxlbWVudGluZyBkaXJlY3QgdGhyZWFkZWQgaW50ZXJwcmV0ZXJzLCBhdCBsZWFzdCBub3QgdGhl
IGNsYXNzaWMKKyAgICAgICAgICBraW5kOiB0byBtYWtlIGl0IHdvcmssIHlvdSBoYXZlIHRvIGhh
dmUgYSBzaGFyZWQgZGlzcGF0Y2ggYmxvY2sgc28gdGhhdCB5b3UgaGF2ZSBhIHNpbmdsZQorICAg
ICAgICAgIFBvbHlKdW1wLiBUaGlzIG1pZ2h0IGJlIGJldHRlciB0aGFuIGEgU3dpdGNoLWJhc2Vk
IGludGVycHJldGVyLCBidXQgaXQncyBkZWZpbml0ZWx5IG5vdAorICAgICAgICAgIGFzIGdvb2Qg
YXMgd2hhdCB5b3UnZCBnZXQgd2l0aCBHQ0Mtc3R5bGUgY29tcHV0ZWQgZ290by48L3A+CisgICAg
ICAgIAorICAgICAgICA8cD5Qb2x5SnVtcCBpcyBzbyBuYW1lZCB0byBhdm9pZCBjb25mdXNpb24g
d2l0aCBjb21wdXRlZCBnb3RvcyBhbmQgaW5kaXJlY3QgYnJhbmNoZXMgaW4KKyAgICAgICAgICBv
dGhlciBjb21waWxlcnMuIEl0IGhhcyBzaWduaWZpY2FudCByZXN0cmljdGlvbnMgdGhhdCB0aG9z
ZSBvcGVyYXRpb25zIGRvIG5vdCBoYXZlLiBUaGVzZQorICAgICAgICAgIHJlc3RyaWN0aW9ucyBt
YWtlIGl0IGVhc2llciBmb3IgdGhlIG9wdGltaXplciB0byB3b3JrIHdpdGggc2luY2UgdGhlIGNv
bnRyb2wgZmxvdyBnZXRzIHRvCisgICAgICAgICAgYmUgZXhwbGljaXQgKFBvbHlKdW1wIGhhcyBh
IGZpbml0ZSBzZXQgb2Ygc3VjY2Vzc29ycyBsaWtlIGFueSBvdGhlciBibG9jayB0ZXJtaW5hbCku
PC9wPgorICAgICAgPC9kZD4KIAogICAgICAgPGR0PlZvaWQgUmV0dXJuKFQpPC9kdD4KICAgICAg
IDxkZD5Xb3JrcyBmb3IgYW55IHR5cGUgZXhjZXB0IFZvaWQuICBSZXR1cm5zIHRoZSBnaXZlbiB2
YWx1ZSBhbmQgdGVybWluYXRlcyB0aGUgcHJvY2VkdXJlLgpJbmRleDogTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjAy
ODA5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMTYtMDUtMjkgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAg
ICAgICBJbXBsZW1lbnQgdGFibGUtYmFzZWQgc3dpdGNoZXMgaW4gQjMvQWlyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTExNDEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGpzL3JlZ3Jlc3MvYmlnc3dp
dGNoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9iaWdzd2l0Y2gu
aHRtbDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVzdHMvYmlnc3dpdGNo
LmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisKIDIwMTYtMDctMDQgIFl1c3VrZSBTdXp1a2kg
IDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgc2tpcCBtaXNj
LWJ1Z3MtODQ3Mzg5LWpwZWcyMDAwLmpzIGluIGpzYyBzdHJlc3MgdGVzdHMKSW5kZXg6IExheW91
dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdyZXNzL2JpZ3N3aXRjaAorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBubyBleGNlcHRpb24gdGhyb3duCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9iaWdzd2l0Y2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEyIEBA
Cis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4K
KzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVn
cmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9iaWdzd2l0
Y2guanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBv
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9zY3JpcHQtdGVzdHMvYmlnc3dpdGNoLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2JpZ3N3aXRjaC5qcwkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2JpZ3N3aXRjaC5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDIxMSBAQAorZnVuY3Rpb24gZm9vKG8pIHsKKyAgICB2YXIgcmVz
dWx0ID0gMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7ICsraSkgeworICAgICAgICB2
YXIgdmFsdWUgPSBpICYgNjM7CisgICAgICAgIHN3aXRjaCAodmFsdWUpIHsKKyAgICAgICAgY2Fz
ZSAwOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXN1bHQgKz0gby5iOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmM7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZDsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ6CisgICAgICAgICAgICByZXN1bHQg
Kz0gby5lOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNToKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLmY7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA2OgorICAg
ICAgICAgICAgcmVzdWx0ICs9IG8uZzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IDc6CisgICAgICAgICAgICByZXN1bHQgKz0gby5oOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSA5OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uajsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIDEwOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDExOgorICAgICAgICAgICAgcmVzdWx0
ICs9IG8uYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDEyOgorICAgICAgICAg
ICAgcmVzdWx0ICs9IG8uYjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDEzOgor
ICAgICAgICAgICAgcmVzdWx0ICs9IG8uYzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIDE0OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZDsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIDE1OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIDE2OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZjsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE3OgorICAgICAgICAgICAgcmVzdWx0ICs9
IG8uZzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE4OgorICAgICAgICAgICAg
cmVzdWx0ICs9IG8uaDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE5OgorICAg
ICAgICAgICAgcmVzdWx0ICs9IG8uaTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IDIwOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uajsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIDIxOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIDIyOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDIzOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8u
YTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI0OgorICAgICAgICAgICAgcmVz
dWx0ICs9IG8uYjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI1OgorICAgICAg
ICAgICAgcmVzdWx0ICs9IG8uYzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI2
OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIDI3OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIDI4OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZjsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIDI5OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZzsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDMwOgorICAgICAgICAgICAgcmVzdWx0
ICs9IG8uaDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDMxOgorICAgICAgICAg
ICAgcmVzdWx0ICs9IG8uaTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDMyOgor
ICAgICAgICAgICAgcmVzdWx0ICs9IG8uajsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIDMzOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIDM0OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIDM1OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM2OgorICAgICAgICAgICAgcmVzdWx0ICs9
IG8uYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM3OgorICAgICAgICAgICAg
cmVzdWx0ICs9IG8uYjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM4OgorICAg
ICAgICAgICAgcmVzdWx0ICs9IG8uYzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IDM5OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZDsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIDQwOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIDQxOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZjsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQyOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8u
ZzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQzOgorICAgICAgICAgICAgcmVz
dWx0ICs9IG8uaDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ0OgorICAgICAg
ICAgICAgcmVzdWx0ICs9IG8uaTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ1
OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uajsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIDQ2OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIDQ3OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ4OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uajsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ5OgorICAgICAgICAgICAgcmVzdWx0
ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDUwOgorICAgICAgICAg
ICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDUxOgor
ICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIDUyOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIDUzOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYjsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIDU0OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYzsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDU1OgorICAgICAgICAgICAgcmVzdWx0ICs9
IG8uZDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDU2OgorICAgICAgICAgICAg
cmVzdWx0ICs9IG8uZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDU3OgorICAg
ICAgICAgICAgcmVzdWx0ICs9IG8uZjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IDU4OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZzsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIDU5OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaDsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIDYwOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDYxOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8u
ajsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDYyOgorICAgICAgICAgICAgcmVz
dWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgcmVzdWx0ICs9IG8uejsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
fQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKKyhmdW5jdGlvbigpIHsKKyAgICB2YXIgbyA9IHth
OjEsIGI6MiwgYzozLCBkOjQsIGU6NSwgZjo2LCBnOjcsIGg6OCwgaTo5LCBqOjEwLCBrOjExLCB6
OjEwMH07CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAw
MDsgKytpKQorICAgICAgICByZXN1bHQgKz0gZm9vKG8pOworICAgIGlmIChyZXN1bHQgIT0gNzk2
NjAwMDApCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30p
KCk7CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283067</attachid>
            <date>2016-07-07 15:33:38 -0700</date>
            <delta_ts>2016-07-07 20:36:46 -0700</delta_ts>
            <desc>more compile fixes</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>425173</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2NiBA
QAorMjAxNi0wNS0yOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IEltcGxlbWVudCB0YWJsZS1iYXNlZCBzd2l0Y2hlcyBpbiBCMy9BaXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTE0MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgSWYgYSBzd2l0Y2ggc3Rh
dGVtZW50IGdldHMgbGFyZ2UsIGl0J3MgYmV0dGVyIHRvIGV4cHJlc3MgaXQgYXMgYW4gaW5kaXJl
Y3QganVtcCByYXRoZXIgdGhhbgorICAgICAgICB1c2luZyBhIGJpbmFyeSBzd2l0Y2ggKGRpdmlk
ZS1hbmQtY29ucXVlciB0cmVlIG9mIGNvbXBhcmlzb25zIGxlYWRpbmcgdG8gTyhsb2cgbikgYnJh
bmNoZXMgdG8KKyAgICAgICAgZ2V0IHRvIHRoZSBzd2l0Y2ggY2FzZSkuIFdoZW4gZGVhbGluZyB3
aXRoIGludGVnZXIgc3dpdGNoZXMsIEZUTCB3aWxsIGFscmVhZHkgdXNlIHRoZSBCMworICAgICAg
ICBTd2l0Y2ggYW5kIGV4cGVjdCB0aGlzIHRvIGdldCBsb3dlcmVkIGFzIGVmZmljaWVudGx5IGFz
IHBvc3NpYmxlOyBpdCdzIGEgYnVnIHRoYXQgQjMgd2lsbAorICAgICAgICBhbHdheXMgdXNlIGEg
YmluYXJ5IHN3aXRjaCByYXRoZXIgdGhhbiBpbmRpcmVjdCBqdW1wcy4gV2hlbiBkZWFsaW5nIHdp
dGggc3dpdGNoZXMgb3ZlciBzb21lCisgICAgICAgIG1vcmUgc29waGlzdGljYXRlZCB0eXBlcywg
d2UnZCB3YW50IEZUTCB0byBidWlsZCBhbiBpbmRpcmVjdCBqdW1wIHRhYmxlIGl0c2VsZiBhbmQg
dXNlCisgICAgICAgIHNvbWV0aGluZyBsaWtlIGEgaGFzaHRhYmxlIHRvIGZlZWQgaXQuIEluIHRo
YXQgY2FzZSwgdGhlcmUgd2lsbCBiZSBubyBCMyBTd2l0Y2g7IHdlJ2xsIHdhbnQKKyAgICAgICAg
c29tZSBraW5kIG9mIGluZGlyZWN0IGp1bXAgaW5zdHJ1Y3Rpb24uCisgICAgICAgIAorICAgICAg
ICBUaGlzIGltcGxpZXMgdGhhdCB3ZSB3YW50IEIzIHRvIGhhdmUgdGhlIGFiaWxpdHkgdG8gbG93
ZXIgU3dpdGNoIHRvIGluZGlyZWN0IGp1bXBzIGFuZCB0bworICAgICAgICBleHBvc2UgdGhvc2Ug
aW5kaXJlY3QganVtcHMgaW4gSVIgc28gdGhhdCB0aGUgRlRMIGNvdWxkIGRvIGl0cyBvd24gaW5k
aXJlY3QganVtcHMgZm9yCisgICAgICAgIHN3aXRjaGVzIG92ZXIgbW9yZSBjb21wbGljYXRlZCB0
aGluZ3MgbGlrZSBzdHJpbmdzLiBUaGlzIGNoYW5nZSBpbnRyb2R1Y2VzIGFuIGluZGlyZWN0IGp1
bXAKKyAgICAgICAgaW5zdHJ1Y3Rpb24gdG8gQjMgYW5kIGNhbGxzIGl0IFBvbHlKdW1wLiBJdCBo
YXMgc29tZSB1bmlxdWUgc2VtYW50aWNzIHRoYXQgbWFrZSBpdCB2ZXJ5CisgICAgICAgIGRpZmZl
cmVudCBmcm9tICJpbmRpcmVjdCBqdW1wcyIsICJpbmRpcmVjdCBicmFuY2hlcyIsIGFuZCAiY29t
cHV0ZWQgZ290b3MiIC0gYWxsIHRlcm1zIG9mIGFydAorICAgICAgICB1c2VkIGluIG90aGVyIGNv
bXBpbGVycy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaW1wbGVtZW50cyB0aGUgbW9zdCBiYXNp
YyBraW5kIG9mIFN3aXRjaC10by1Qb2x5SnVtcCBsb3dlcmluZyBpbiBCMzo6bG93ZXJNYWNyb3Mo
KS4gQXMKKyAgICAgICAgcGFydCBvZiB0aGUgZXhpc3RpbmcgZGl2aWRlLWFuZC1jb25xdWVyIHRo
YXQgY3JlYXRlcyBicmFuY2hlcywgaWYgaXQgZGV0ZWN0cyB0aGF0IHRoZSBzZXQgb2YKKyAgICAg
ICAgY2FzZXMgc2F0aXNmaWVzIHNvbWUgY29uZGl0aW9ucyAoZGVuc2l0eSBvZiBjYXNlIHZhbHVl
cyBhbmQgdG90YWwgc2l6ZSksIHRoZW4gaXQgd2lsbCBlbWl0IGEKKyAgICAgICAgUG9seUp1bXAu
CisgICAgICAgIAorICAgICAgICBUaGUgcHJvYmxlbSB3aXRoIGNsYXNzaWMgaW5kaXJlY3QganVt
cHMgaXMgdGhhdCB0aGV5IGZvcmNlIHRoZSBjb21waWxlciB0byBiZSBjb25zZXJ2YXRpdmUKKyAg
ICAgICAgYWJvdXQgY29udHJvbCBmbG93LiBUaGUgY29tcGlsZXIgbXVzdCBhc3N1bWUgdGhhdCB0
aGUgaW5kaXJlY3QganVtcCBtYXkgdHJhbnNmZXIgY29udHJvbCBmbG93CisgICAgICAgIHRvIGFu
eSBlc2NhcGVkIGJsb2NrIChibG9jayBsYWJlbGVkIGFzIGJlaW5nIGEgcG9zc2libGUgdGFyZ2V0
IGZvciBpbmRpcmVjdCBqdW1wcywgb3IgaWYgbm8KKyAgICAgICAgc3VjaCBsYWJlbGluZyBpcyBh
dmFpbGFibGUsIHRoZSBjb21waWxlciBtdXN0IGFzc3VtZSB0aGF0IGl0IG1heSB0YXJnZXQgYW55
IGJsb2NrKS4gVGhlIHdvcnN0CisgICAgICAgIHBhcnQgaXMgdGhhdCB0aGUgaW1wbGljaXQgY29u
dHJvbCBmbG93IGVkZ2VzIGZyb20gdGhlIGluZGlyZWN0IGp1bXAgdG8gdGhlIGVzY2FwZWQgYmxv
Y2tzCisgICAgICAgIGNhbm5vdCBiZSBicm9rZW4uIFRoaXMgaW52YWxpZGF0ZXMgYSBwcmluY2lw
bGUgb2YgQjMgSVI6IGFueSBwaGFzZSBtYXkgYnJlYWsgYW55IGNyaXRpY2FsCisgICAgICAgIGVk
Z2UgZm9yIGFueSByZWFzb24uIE91ciBTU0EgY29udmVyc2lvbiB3b3VsZCBicmVhayBpZiB3ZSBy
ZXZva2VkIHRoaXMgZmVhdHVyZS4gSXQncyBhY3R1YWxseQorICAgICAgICBtdWNoIHdvcnNlIHRo
YW4gdGhpcyAtIGJhc2ljYWxseSBhbnkgbG9naWMgb3ZlciBjb250cm9sIGZsb3cgd291bGQgaGF2
ZSB0byBiZSBoYWNrZWQgdG8gZGVhbAorICAgICAgICB3aXRoIHRoZXNlIHVuYnJlYWthYmxlIGVk
Z2VzLiBUaGlzIHdvdWxkIG1lYW4gY2hhbmdpbmcgYWxsIENGRyB0cmFuc2Zvcm1hdGlvbiB1dGls
aXRpZXMgYW5kCisgICAgICAgIHBhc3Nlcy4gV2UgaGF2ZSBhIGxvdCBvZiB0aG9zZSBhbmQgd2Ug
d2FudCBpdCB0byBiZSBlYXN5IHRvIHdyaXRlIG5ldyBvbmVzLgorICAgICAgICAKKyAgICAgICAg
VGhpcyBpcyB3aHkgd2UgdXNlIHNvbWV0aGluZyBuZXcgYW5kIHF1aXRlIGRpZmZlcmVudCBmcm9t
IGNsYXNzaWMgaW5kaXJlY3QganVtcHMuIFBvbHlKdW1wCisgICAgICAgIG1ha2VzIHRoZSBjb250
cm9sIGZsb3cgZWRnZXMgZXhwbGljaXQuIFRoZSBjbGllbnQgbXVzdCBzdXBwbHkgdGhlIHN1Y2Nl
c3NvcnMgd2hlbiBpdCBjcmVhdGVzCisgICAgICAgIHRoZSBQb2x5SnVtcC4gVGhlIGNvbXBpbGVy
IG1heSByZXdpcmUgdGhvc2Ugc3VjY2Vzc29yIGVkZ2VzIHRoZSBzYW1lIHdheSB0aGF0IGl0IHdv
dWxkIHJld2lyZQorICAgICAgICBhbnkgY29udHJvbCBmbG93IGVkZ2VzLiBDb25zZXF1ZW50bHkg
dGhlIHZhc3QgbWFqb3JpdHkgb2YgQ0ZHIHJlYXNvbmluZyBpbiBCMyBpcyB1bmNoYW5nZWQuCisg
ICAgICAgIElmIHlvdSBkb24ndCB3YW50IHRvIHVuZGVyc3RhbmQgUG9seUp1bXAsIGp1c3QgdGhp
bmsgb2YgaXQgbGlrZSB5b3Ugd291bGQgYSBTd2l0Y2ggd2l0aCBhbgorICAgICAgICBvcGFxdWUg
aW5jb21pbmcgdmFsdWUuIFRoaXMgd29ya3MgYmVjYXVzZSB3ZSBkbyBub3QgYWRkIGFueSBub3Rp
b24gb2YgZXNjYXBlZCBiYXNpYyBibG9ja3MuCisgICAgICAgIEluc3RlYWQgb2YgbGV0dGluZyB0
aGUgY2xpZW50IGdldCB0aGUgcG9pbnRlcnMgdG8gYmFzaWMgYmxvY2tzIGJ5IGVzY2FwaW5nIHRo
ZW0gbGlrZSBpbiBMTFZNLAorICAgICAgICB5b3UgY2FuIG9ubHkgZ2V0IHRoZSBwb2ludGVycyBv
ZiB0aGUgc3VjY2Vzc29ycyBvZiBQb2x5SnVtcCBieSByZWdpc3RlcmluZyBhIGNhbGxiYWNrIHdp
dGgKKyAgICAgICAgUG9seUp1bXAuIFRoaXMgY2FsbGJhY2sgZG9lc24ndCBhY3R1YWxseSBnaXZl
IHlvdSB0aGUgYWRkcmVzc2VzIG9mIGJhc2ljIGJsb2Nrcy4gSXQganVzdAorICAgICAgICBnaXZl
cyB5b3UgdGhlIGFkZHJlc3NlcyB3aGVyZSB5b3UgbXVzdCBqdW1wIHRvIHRyYW5zZmVyIGNvbnRy
b2wgZmxvdyBmcm9tIHRoYXQgUG9seUp1bXAgdG8KKyAgICAgICAgaXRzIHN1Y2Nlc3NvcnMuIFRo
aXMgbWVhbnMgdGhhdCB0aGUgbWFnaWMgb2YgUG9seUp1bXAgaXMgY29uZmluZWQgb25seSB0byB0
aGUgUG9seUp1bXAgaXRzZWxmCisgICAgICAgIGFuZCBkb2Vzbid0IGluZmVjdCByZWFzb25pbmcg
YWJvdXQgdGhlIGJhc2ljIGJsb2NrcyB0aGF0IGl0IGp1bXBzIHRvLgorICAgICAgICAKKyAgICAg
ICAgVGhlIG9ubHkgZG93bnNpZGUgaXMgdGhhdCB0aGF0IFBvbHlKdW1wIGlzIG5vdCBjbG9uZWFi
bGUuIFlvdSBjYW4ndCBjbG9uZSBpdCBiZWNhdXNlIGlmIHlvdQorICAgICAgICBkaWQsIHRoZW4g
dGhlIHR3byByZXN1bHRpbmcgUG9seUp1bXBzIG1heSBoYXZlIHRoZWlyIHN1Y2Nlc3NvciBlZGdl
cyByZXdpcmVkIGluZGVwZW5kZW50bHkgb2YKKyAgICAgICAgZWFjaCBvdGhlci4gVGhpcyBjb3Vs
ZCBlYXNpbHkgaGFwcGVuIGlmIHdlIGJyZWFrIGNyaXRpY2FsIGVkZ2VzLiBJZiB0aGF0IGRpZCBo
YXBwZW4gdGhlbiBpdAorICAgICAgICB3b3VsZCBicmVhayB0aGUgY2xpZW50IG9mIFBvbHlKdW1w
OiB0aGV5IHdvdWxkIGhhdmUgYWxyZWFkeSBjcmVhdGVkIHNvbWV0aGluZyBsaWtlIGEganVtcAor
ICAgICAgICB0YWJsZSBhbmQgd2lsbCBiZSBwb3B1bGF0aW5nIGl0IHZpYSB0aGUgY2FsbGJhY2ss
IGJ1dCBub3cgdGhlIGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkIHR3aWNlLAorICAgICAgICBhbmQg
bWF5IHJldHVybiBkaWZmZXJlbnQganVtcCBkZXN0aW5hdGlvbnMgZWFjaCB0aW1lLiBTbywgdGhp
cyBwYXRjaCBpbnRyb2R1Y2VzCisgICAgICAgIFZhbHVlOjppc0Nsb25lYWJsZSgpIGFuZCB0ZWFj
aGVzIGJvdGggb2Ygb3VyIGNvZGUgc3BlY2lhbGl6YXRpb24gb3B0aW1pemF0aW9ucyAodGFpbAor
ICAgICAgICBkdXBsaWNhdGlvbiBhbmQgc2VsZWN0IHNwZWNpYWxpemF0aW9uKSB0byBiYWlsIGlm
IHRoZSBjb2RlIHRoZXkgd2FudCB0byBzcGVjaWFsaXplIGlzIG5vdAorICAgICAgICBjbG9uZWFi
bGUuIFRoaXMgaXMgdG90YWxseSBiZW5pZ24gbW9zdCBvZiB0aGUgdGltZSwgc2luY2UgdGhvc2Ug
b3B0aW1pemF0aW9ucyB1c3VhbGx5IHJ1bgorICAgICAgICBiZWZvcmUgU3dpdGNoIGxvd2VyaW5n
LiBDbGllbnRzIHRoYXQgdXNlIFBvbHlKdW1wIGRpcmVjdGx5IGhhdmUgdG8gYXBwcmVjaWF0ZSB0
aGUgdHJhZGUtb2ZmOgorICAgICAgICBQb2x5SnVtcCBtYXkgZ2FpbiB0aGVtIHNvbWUgcGVyZm9y
bWFuY2UgYnV0IHRoZXkgYXJlIG9wdGluZyBvdXQgb2Ygb3B0aW1pemF0aW9ucyB0aGF0IHVzZQor
ICAgICAgICBjbG9uaW5nLiBBIGNsb3NlIGNvcm9sbGFyeSBvZiB0aGUgbm8tY2xvbmUgcnVsZSBp
cyB0aGF0IHRoZSBjbGllbnQgY2Fubm90IGNyZWF0ZSBtdWx0aXBsZQorICAgICAgICBQb2x5SnVt
cHMgdGhhdCBhcmUgZmVkIGJ5IGEgY29tbW9uIGp1bXAgdGFibGU6IHRoZSBmYWN0IHRoYXQgZWFj
aCBQb2x5SnVtcCBoYXMgYSBjYWxsYmFjaworICAgICAgICB0aGF0IGp1c3QgdGVsbHMgeW91IHRo
ZSBqdW1wIGRlc3RpbmF0aW9ucyBmb3IgaXRzIHN1Y2Nlc3NvciAqZWRnZXMqLCBub3Qgc3VjY2Vz
c29yICpibG9ja3MqLAorICAgICAgICBtZWFucyB0aGF0IGlmIHlvdSBjcmVhdGUgdHdvIFBvbHlK
dW1wcyBhbmQgZ2l2ZSB0aGVtIHRoZSBzYW1lIHN1Y2Nlc3NvciBsaXN0LCB5b3UgYXJlIG5vdAor
ICAgICAgICBndWFyYW50ZWVkIHRoYXQgdGhleSB3aWxsIGdldCB0aGUgc2FtZSBqdW1wIGRlc3Rp
bmF0aW9ucy4gVGhpcyBodXJ0cyBpZiB5b3Ugd2FudCB0byB1c2UKKyAgICAgICAgUG9seUp1bXAg
Zm9yIHRocmVhZGVkIGludGVycHJldGVycyBidXQgaXQncyBoYXJtbGVzcyBmb3Igc3dpdGNoIGxv
d2VyaW5nLiBUaGUgZ29hbCBvZgorICAgICAgICBQb2x5SnVtcCBpcyB0byBiZSBhd2Vzb21lIGZv
ciBzd2l0Y2ggbG93ZXJpbmcgd2hpbGUgbm90IGJyZWFraW5nIHRoZSByZXN0IG9mIHRoZSBjb21w
aWxlciwgc28KKyAgICAgICAgdGhpcyBpcyBwcm9iYWJseSBmaW5lLgorICAgICAgICAKKyAgICAg
ICAgVGhlIGlzQ2xvbmVhYmxlKCkgbWV0aG9kIGN1cnJlbnRseSBvbmx5IHJldHVybnMgdHJ1ZSBm
b3IgUG9seUp1bXAsIGJ1dCBJIGFudGljaXBhdGUgd2Ugd2lsbAorICAgICAgICBhZGQgb3RoZXIg
bm9uLWNsb25lYWJsZSB0aGluZ3MgbGF0ZXIuIEkgdGhpbmsgaXMgaXMgaW5oZXJlbnQgaW4gYSBj
b21waWxlciB0aGF0IGFsbG93cyBzdWNoCisgICAgICAgIGN1c3RvbWl6ZWFiaWxpdHkgZm9yIGl0
cyBjbGllbnRzLiBGb3IgZXhhbXBsZSwgd2UgbWF5IHdhbnQgdG8gYWRkIGEgZmxhZyB0byBQYXRj
aHBvaW50IHRoYXQKKyAgICAgICAgbWFrZXMgaXQgbm9uLWNsb25lYWJsZS4gU29tZXRpbWVzIHdl
IGhhdmUgdG8ganVtcCB0aHJvdWdoIGhvb3BzIGluIHRoZSBGVEwgYmVjYXVzZSBvZiB0aGUKKyAg
ICAgICAgY2xvbmVhYmlsaXR5IG9mIHBhdGNocG9pbnRzLiBUaGlzIGhhcHBlbnMgaW4gT1NSIGV4
aXRzLCB3aGljaCBwYXkgYSBzaWduaWZpY2FudCBtZW1vcnkgY29zdAorICAgICAgICBmb3IgYWRk
aXRpb25hbCBkYXRhIHN0cnVjdHVyZXMgdGhhdCBhcmUgdGhlcmUgaW4gY2FzZSBhbiBleGl0IGdl
dHMgY2xvbmVkLiBJdCBtYXkgYmUgbW9yZQorICAgICAgICBwcm9maXRhYmxlIHRvIGp1c3Qgc2F5
IHRoYXQgT1NSIGV4aXRzIChpLmUuIENoZWNrcyBhbmQgSW52YWxpZGF0aW9uUG9pbnQgUGF0Y2hw
b2ludHMpIGFyZSBub3QKKyAgICAgICAgY2xvbmVhYmxlLiBTdXJlbHkgdGhpcyB3b3VsZCByZWR1
Y2UgdGFpbCBkdXBsaWNhdGlvbiwgYnV0IHRhaWwgZHVwbGljYXRpb24gaXMgbW9zdCBwcm9maXRh
YmxlCisgICAgICAgIHdoZW4gaXQgY2xvbmVzIG9ubHkgYSB0aW55IGFtb3VudCBvZiBjb2RlOyBp
ZiB0aGVyZSdzIGFuIGV4aXQgdGhlbiB3ZSdyZSBub3QgdGFsa2luZyBhYm91dCBhCisgICAgICAg
IHRpbnkgYW1vdW50IG9mIGNvZGUgYW55bW9yZS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaXMg
YSB+MzAlIHNwZWVkLXVwIG9uIG1pY3JvYmVuY2htYXJrcyB0aGF0IGhhdmUgYmlnIHN3aXRjaCBz
dGF0ZW1lbnRzICh+NjAgY2FzZXMpLiBJdCdzCisgICAgICAgIG5vdCBhIHNwZWVkLXVwIG9uIG1h
aW5zdHJlYW0gYmVuY2htYXJrcy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgYWxzbyBhZGRzIGEg
bmV3IHRlc3QgdG8gdGVzdGIzIGZvciBQb2x5SnVtcCwgR2V0LCBhbmQgU2V0LiBUaGUgRlRMIGRv
ZXMgbm90IGN1cnJlbnRseQorICAgICAgICB1c2UgUG9seUp1bXAgZGlyZWN0bHksIGJ1dCB3ZSB3
YW50IHRoaXMgdG8gYmUgcG9zc2libGUuIEl0IGFsc28gZG9lc24ndCB1c2UgR2V0L1NldCBkaXJl
Y3RseQorICAgICAgICBldmVuIHRob3VnaCB3ZSB3YW50IHRoaXMgdG8gYmUgcG9zc2libGUuIEl0
J3MgaW1wb3J0YW50IHRvIHRlc3QgdGhlc2Ugc2luY2Ugb3Bjb2RlcyB0aGF0CisgICAgICAgIHJl
c3VsdCBmcm9tIGxvd2VyaW5nIGRvbid0IGFmZmVjdCBlYXJseSBwaGFzZXMsIHNvIHdlIGNvdWxk
IGhhdmUgcmVncmVzc2lvbnMgaW4gZWFybHkgcGhhc2VzCisgICAgICAgIHJlbGF0ZWQgdG8gdGhl
c2Ugb3Bjb2RlcyB0aGF0IHdvdWxkbid0IGJlIGNhdWdodCBieSBhbnkgSlMgdGVzdC4gU28sIHRo
aXMgYWRkcyBhIHZlcnkgYmFzaWMKKyAgICAgICAgdGhyZWFkZWQgaW50ZXJwcmV0ZXIgdG8gdGVz
dGIzIGZvciBhIEJyYWluZnVjay1zdHlsZSBsYW5ndWFnZSwgYW5kIHRlc3RzIGl0IGJ5IGhhdmlu
ZyBpdCBydW4KKyAgICAgICAgYSBwcm9ncmFtIHRoYXQgcHJpbnRzIHRoZSBudW1iZXJzIDEuLjEw
MCBpbiBhIGxvb3AuIFVubGlrZSBhIHJlYWwgdGhyZWFkZWQgaW50ZXJwcmV0ZXIsIGl0CisgICAg
ICAgIHVzZXMgYSBjb21tb24gZGlzcGF0Y2ggYmxvY2sgcmF0aGVyIHRoYW4gaGF2aW5nIGRpc3Bh
dGNoIGF0IHRoZSB0ZXJtaW51cyBvZiBlYWNoIG9wY29kZS4KKyAgICAgICAgVGhhdCdzIG5lY2Vz
c2FyeSBiZWNhdXNlIFBvbHlKdW1wIGlzIG5vdCBjbG9uZWFibGUuIFRoZSBzdGF0ZSBvZiB0aGUg
aW50ZXJwcmV0ZXIgaXMKKyAgICAgICAgcmVwcmVzZW50ZWQgdXNpbmcgVmFyaWFibGVzIHRoYXQg
d2UgR2V0IGFuZCBTZXQsIHNvIGl0IHRlc3RzIEdldC9TZXQgYXMgd2VsbC4KKworICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9u
Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpqdW1wKToKKyAgICAg
ICAgKiBhc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxl
cjo6am1wX20pOgorICAgICAgICAqIGIzL0IzQmFzaWNCbG9jay5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpCYXNpY0Jsb2NrOjp1cGRhdGVQcmVkZWNlc3NvcnNBZnRlcik6CisgICAgICAgIChKU0M6
OkIzOjpCYXNpY0Jsb2NrOjppc0Nsb25lYWJsZSk6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Js
b2NrOjpkdW1wKToKKyAgICAgICAgKiBiMy9CM0Jhc2ljQmxvY2suaDoKKyAgICAgICAgKEpTQzo6
QjM6OkJhc2ljQmxvY2s6OmZyZXF1ZW5jeSk6CisgICAgICAgICogYjMvQjNDb21tb24uaDoKKyAg
ICAgICAgKEpTQzo6QjM6OmlzNjRCaXQpOgorICAgICAgICAqIGIzL0IzQ29udHJvbFZhbHVlLmg6
CisgICAgICAgICogYjMvQjNEYXRhU2VjdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkIzOjpEYXRh
U2VjdGlvbjo6RGF0YVNlY3Rpb24pOgorICAgICAgICAqIGIzL0IzRHVwbGljYXRlVGFpbHMuY3Bw
OgorICAgICAgICAqIGIzL0IzTG93ZXJNYWNyb3MuY3BwOgorICAgICAgICAqIGIzL0IzTG93ZXJU
b0Fpci5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okxvd2VyVG9BaXI6Omxvd2VyKToKKyAg
ICAgICAgKiBiMy9CM09wY29kZS5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgor
ICAgICAgICAqIGIzL0IzT3Bjb2RlLmg6CisgICAgICAgICogYjMvQjNQb2x5SnVtcFZhbHVlLmNw
cDogQWRkZWQuCisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjp+UG9seUp1bXBWYWx1
ZSk6CisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjphcHBlbmRTdWNjZXNzb3IpOgor
ICAgICAgICAoSlNDOjpCMzo6UG9seUp1bXBWYWx1ZTo6c2V0Q2FsbGJhY2tUYXNrKToKKyAgICAg
ICAgKEpTQzo6QjM6OlBvbHlKdW1wVmFsdWU6OmlzQ2xvbmVhYmxlKToKKyAgICAgICAgKEpTQzo6
QjM6OlBvbHlKdW1wVmFsdWU6OmR1bXBNZXRhKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1w
VmFsdWU6OmNsb25lSW1wbCk6CisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjpQb2x5
SnVtcFZhbHVlKToKKyAgICAgICAgKiBiMy9CM1BvbHlKdW1wVmFsdWUuaDogQWRkZWQuCisgICAg
ICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjphY2NlcHRzKToKKyAgICAgICAgKEpTQzo6QjM6
OlBvbHlKdW1wVmFsdWU6OnNldENhbGxiYWNrKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1w
VmFsdWU6OmNhbGxiYWNrVGFzayk6CisgICAgICAgICogYjMvQjNQcm9jZWR1cmUuY3BwOgorICAg
ICAgICAoSlNDOjpCMzo6UHJvY2VkdXJlOjpjbG9uZSk6CisgICAgICAgICogYjMvQjNQcm9jZWR1
cmUuaDoKKyAgICAgICAgKEpTQzo6QjM6OlByb2NlZHVyZTo6bGFzdFBoYXNlTmFtZSk6CisgICAg
ICAgIChKU0M6OkIzOjpQcm9jZWR1cmU6OmJ5cHJvZHVjdHMpOgorICAgICAgICAqIGIzL0IzUmVk
dWNlU3RyZW5ndGguY3BwOgorICAgICAgICAqIGIzL0IzVmFsaWRhdGUuY3BwOgorICAgICAgICAq
IGIzL0IzVmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6OmVmZmVjdHMpOgorICAg
ICAgICAoSlNDOjpCMzo6VmFsdWU6OmlzQ2xvbmVhYmxlKToKKyAgICAgICAgKEpTQzo6QjM6OlZh
bHVlOjprZXkpOgorICAgICAgICAqIGIzL0IzVmFsdWUuaDoKKyAgICAgICAgKiBiMy9haXIvQWly
Q29kZS5oOgorICAgICAgICAqIGIzL2Fpci9BaXJHZW5lcmF0ZS5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpBaXI6OmdlbmVyYXRlKToKKyAgICAgICAgKiBiMy9haXIvQWlySW5zdC5jcHA6CisgICAg
ICAgIChKU0M6OkIzOjpBaXI6Okluc3Q6Omhhc0FyZ0VmZmVjdHMpOgorICAgICAgICAoSlNDOjpC
Mzo6QWlyOjpJbnN0Ojppc0Nsb25lYWJsZSk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okluc3Q6
OmR1bXApOgorICAgICAgICAqIGIzL2Fpci9BaXJJbnN0Lmg6CisgICAgICAgICogYjMvYWlyL0Fp
ck9wY29kZS5vcGNvZGVzOgorICAgICAgICAqIGIzL3Rlc3RiMy5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpzaG91bGRCZVZlcmJvc2UpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN3aXRjaENoaWxs
RGl2KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RMYXRlUmVnaXN0ZXIpOgorICAgICAgICAoSlND
OjpCMzo6dGhyZWFkZWRJbnRlcnByZXRlclByaW50KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RU
aHJlYWRlZEludGVycHJldGVyKToKKyAgICAgICAgKEpTQzo6QjM6Onplcm8pOgorICAgICAgICAo
SlNDOjpCMzo6cnVuKToKKwogMjAxNi0wNy0wMyAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gRExMcyBhcmUgbWlzc2luZyB2ZXJzaW9uIGluZm9y
bWF0aW9uLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24g
MjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0xMDgsNiArMTA4LDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAg
ICBiMy9CM0Jsb2NrSW5zZXJ0aW9uU2V0LmNwcAogICAgIGIzL0IzQnJlYWtDcml0aWNhbEVkZ2Vz
LmNwcAogICAgIGIzL0IzQ0NhbGxWYWx1ZS5jcHAKKyAgICBiMy9CM0Nhc2VDb2xsZWN0aW9uLmNw
cAogICAgIGIzL0IzQ2hlY2tTcGVjaWFsLmNwcAogICAgIGIzL0IzQ2hlY2tWYWx1ZS5jcHAKICAg
ICBiMy9CM0NvbW1vbi5jcHAKQEAgLTExOCw3ICsxMTksNiBAQCBzZXQoSmF2YVNjcmlwdENvcmVf
U09VUkNFUwogICAgIGIzL0IzQ29uc3REb3VibGVWYWx1ZS5jcHAKICAgICBiMy9CM0NvbnN0Rmxv
YXRWYWx1ZS5jcHAKICAgICBiMy9CM0NvbnN0cmFpbmVkVmFsdWUuY3BwCi0gICAgYjMvQjNDb250
cm9sVmFsdWUuY3BwCiAgICAgYjMvQjNEYXRhU2VjdGlvbi5jcHAKICAgICBiMy9CM0R1cGxpY2F0
ZVRhaWxzLmNwcAogICAgIGIzL0IzRWZmZWN0cy5jcHAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAt
NzczLDggKzc3Myw2IEBACiAJCTBGRUM4NTEwMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0NjRW
YWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZF
Qzg0QzYxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29uc3Q2NFZhbHVlLmggKi87IH07CiAJCTBGRUM4
NTExMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0RG91YmxlVmFsdWUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZFQzg0QzcxQkRBQ0RBQzAwODBG
Rjc0IC8qIEIzQ29uc3REb3VibGVWYWx1ZS5jcHAgKi87IH07CiAJCTBGRUM4NTEyMUJEQUNEQUMw
MDgwRkY3NCAvKiBCM0NvbnN0RG91YmxlVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRUM4NEM4MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0
RG91YmxlVmFsdWUuaCAqLzsgfTsKLQkJMEZFQzg1MTMxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29u
dHJvbFZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGRUM4NEM5MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnRyb2xWYWx1ZS5jcHAgKi87IH07
Ci0JCTBGRUM4NTE0MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnRyb2xWYWx1ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZFQzg0Q0ExQkRBQ0RBQzAw
ODBGRjc0IC8qIEIzQ29udHJvbFZhbHVlLmggKi87IH07CiAJCTBGRUM4NTE1MUJEQUNEQUMwMDgw
RkY3NCAvKiBCM0ZyZXF1ZW5jeUNsYXNzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGRUM4NENCMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0ZyZXF1ZW5j
eUNsYXNzLmNwcCAqLzsgfTsKIAkJMEZFQzg1MTYxQkRBQ0RBQzAwODBGRjc0IC8qIEIzRnJlcXVl
bmN5Q2xhc3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGRUM4NENDMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0ZyZXF1ZW5jeUNsYXNzLmggKi87IH07CiAJ
CTBGRUM4NTE3MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0ZyZXF1ZW50ZWRCbG9jay5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZFQzg0Q0QxQkRBQ0RBQzAw
ODBGRjc0IC8qIEIzRnJlcXVlbnRlZEJsb2NrLmggKi87IH07CkBAIC0xOTk3LDYgKzE5OTUsOSBA
QAogCQlEQzY5QUE2NjFDRjdBMUYyMDBDNjI3MkYgLyogTWF0Y2hSZXN1bHQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM2OUFBNjUxQ0Y3QTFFRjAw
QzYyNzJGIC8qIE1hdGNoUmVzdWx0LmNwcCAqLzsgfTsKIAkJREM3OTk3ODMxQ0RFOUZBMDAwNEQ0
QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IERDNzk5NzgyMUNERTlGOUUwMDRENEEwOSAvKiBUYWdSZWdpc3RlcnNN
b2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
REM3OTk3ODQxQ0RFOUZBMjAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM3OTk3ODExQ0RFOUY5RTAw
NEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuY3BwICovOyB9OworCQlEQzlBMEMxRjFEMkQ5Q0Ix
MDA4NTEyNEUgLyogQjNDYXNlQ29sbGVjdGlvbklubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDOUEwQzFFMUQyRDk0RUYwMDg1MTI0RSAvKiBC
M0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oICovOyB9OworCQlEQzlBMEMyMDFEMkQ5Q0IzMDA4NTEy
NEUgLyogQjNDYXNlQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gREM5QTBDMUQxRDJEOTRFRjAwODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rp
b24uaCAqLzsgfTsKKwkJREM5QTBDMjExRDJEOUNCNDAwODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rp
b24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM5
QTBDMUMxRDJEOTRFRjAwODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rpb24uY3BwICovOyB9OwogCQlE
Q0VFMjIwOTFDRUI5ODk1MDAwQzIzOTYgLyogREZHQmFja3dhcmRzQ0ZHLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQ0VFMjIwNjFDRUI5ODkwMDAwQzIz
OTYgLyogREZHQmFja3dhcmRzQ0ZHLmggKi87IH07CiAJCURDRUUyMjBBMUNFQjk4OTUwMDBDMjM5
NiAvKiBERkdCYWNrd2FyZHNEb21pbmF0b3JzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBEQ0VFMjIwNzFDRUI5ODkwMDAwQzIzOTYgLyogREZHQmFja3dh
cmRzRG9taW5hdG9ycy5oICovOyB9OwogCQlEQ0VFMjIwQjFDRUI5ODk1MDAwQzIzOTYgLyogREZH
Q29udHJvbEVxdWl2YWxlbmNlQW5hbHlzaXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IERDRUUyMjA4MUNFQjk4OTAwMDBDMjM5NiAvKiBERkdDb250cm9s
RXF1aXZhbGVuY2VBbmFseXNpcy5oICovOyB9OwpAQCAtMjk2NCw4ICsyOTY1LDYgQEAKIAkJMEZF
Qzg0QzYxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29uc3Q2NFZhbHVlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IEIzQ29uc3Q2NFZhbHVlLmg7IHBhdGggPSBiMy9CM0NvbnN0NjRW
YWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkVDODRDNzFCREFDREFDMDA4
MEZGNzQgLyogQjNDb25zdERvdWJsZVZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IEIzQ29uc3REb3VibGVWYWx1ZS5jcHA7IHBhdGggPSBiMy9CM0NvbnN0RG91
YmxlVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkVDODRDODFCREFD
REFDMDA4MEZGNzQgLyogQjNDb25zdERvdWJsZVZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IEIzQ29uc3REb3VibGVWYWx1ZS5oOyBwYXRoID0gYjMvQjNDb25zdERvdWJs
ZVZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGRUM4NEM5MUJEQUNEQUMw
MDgwRkY3NCAvKiBCM0NvbnRyb2xWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBCM0NvbnRyb2xWYWx1ZS5jcHA7IHBhdGggPSBiMy9CM0NvbnRyb2xWYWx1ZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGRUM4NENBMUJEQUNEQUMwMDgwRkY3
NCAvKiBCM0NvbnRyb2xWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBC
M0NvbnRyb2xWYWx1ZS5oOyBwYXRoID0gYjMvQjNDb250cm9sVmFsdWUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEZFQzg0Q0IxQkRBQ0RBQzAwODBGRjc0IC8qIEIzRnJlcXVlbmN5
Q2xhc3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQjNGcmVxdWVu
Y3lDbGFzcy5jcHA7IHBhdGggPSBiMy9CM0ZyZXF1ZW5jeUNsYXNzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEZFQzg0Q0MxQkRBQ0RBQzAwODBGRjc0IC8qIEIzRnJlcXVlbmN5
Q2xhc3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQjNGcmVxdWVuY3lDbGFz
cy5oOyBwYXRoID0gYjMvQjNGcmVxdWVuY3lDbGFzcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRkVDODRDRDFCREFDREFDMDA4MEZGNzQgLyogQjNGcmVxdWVudGVkQmxvY2suaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQjNGcmVxdWVudGVkQmxvY2suaDsgcGF0
aCA9IGIzL0IzRnJlcXVlbnRlZEJsb2NrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC00MjI1LDYgKzQyMjQsOSBAQAogCQlEQzY5QUE2NTFDRjdBMUVGMDBDNjI3MkYgLyogTWF0Y2hS
ZXN1bHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWF0Y2hSZXN1
bHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzc5OTc4MTFDREU5RjlFMDA0
RDRBMDkgLyogVGFnUmVnaXN0ZXJzTW9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBUYWdSZWdpc3RlcnNNb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJREM3OTk3ODIxQ0RFOUY5RTAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGFnUmVnaXN0ZXJzTW9kZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlEQzlBMEMxQzFEMkQ5NEVGMDA4NTEyNEUgLyogQjNDYXNl
Q29sbGVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBCM0Nh
c2VDb2xsZWN0aW9uLmNwcDsgcGF0aCA9IGIzL0IzQ2FzZUNvbGxlY3Rpb24uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlEQzlBMEMxRDFEMkQ5NEVGMDA4NTEyNEUgLyogQjNDYXNl
Q29sbGVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCM0Nhc2VDb2xs
ZWN0aW9uLmg7IHBhdGggPSBiMy9CM0Nhc2VDb2xsZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCURDOUEwQzFFMUQyRDk0RUYwMDg1MTI0RSAvKiBCM0Nhc2VDb2xsZWN0aW9u
SW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCM0Nhc2VDb2xsZWN0
aW9uSW5saW5lcy5oOyBwYXRoID0gYjMvQjNDYXNlQ29sbGVjdGlvbklubGluZXMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRENFRTIyMDYxQ0VCOTg5MDAwMEMyMzk2IC8qIERGR0Jh
Y2t3YXJkc0NGRy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdCYWNrd2Fy
ZHNDRkcuaDsgcGF0aCA9IGRmZy9ERkdCYWNrd2FyZHNDRkcuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRENFRTIyMDcxQ0VCOTg5MDAwMEMyMzk2IC8qIERGR0JhY2t3YXJkc0RvbWlu
YXRvcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHQmFja3dhcmRzRG9t
aW5hdG9ycy5oOyBwYXRoID0gZGZnL0RGR0JhY2t3YXJkc0RvbWluYXRvcnMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRENFRTIyMDgxQ0VCOTg5MDAwMEMyMzk2IC8qIERGR0NvbnRy
b2xFcXVpdmFsZW5jZUFuYWx5c2lzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IERGR0NvbnRyb2xFcXVpdmFsZW5jZUFuYWx5c2lzLmg7IHBhdGggPSBkZmcvREZHQ29udHJvbEVx
dWl2YWxlbmNlQW5hbHlzaXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ2OTAs
NiArNDY5Miw5IEBACiAJCQkJRENGREZCRDcxRDFGNUQ5ODAwRkUzRDcyIC8qIEIzQm90dG9tUHJv
dmlkZXIuaCAqLywKIAkJCQkwRjZCOEFERTFDNEVGRTE3MDA5NjkwNTIgLyogQjNCcmVha0NyaXRp
Y2FsRWRnZXMuY3BwICovLAogCQkJCTBGNkI4QURGMUM0RUZFMTcwMDk2OTA1MiAvKiBCM0JyZWFr
Q3JpdGljYWxFZGdlcy5oICovLAorCQkJCURDOUEwQzFDMUQyRDk0RUYwMDg1MTI0RSAvKiBCM0Nh
c2VDb2xsZWN0aW9uLmNwcCAqLywKKwkJCQlEQzlBMEMxRDFEMkQ5NEVGMDA4NTEyNEUgLyogQjND
YXNlQ29sbGVjdGlvbi5oICovLAorCQkJCURDOUEwQzFFMUQyRDk0RUYwMDg1MTI0RSAvKiBCM0Nh
c2VDb2xsZWN0aW9uSW5saW5lcy5oICovLAogCQkJCTBGMzM4REY3MUJFOTZBQTgwMDEzQzg4RiAv
KiBCM0NDYWxsVmFsdWUuY3BwICovLAogCQkJCTBGMzM4REY4MUJFOTZBQTgwMDEzQzg4RiAvKiBC
M0NDYWxsVmFsdWUuaCAqLywKIAkJCQkwRjMzRkNGOTFDMTYyNUJFMDAzMjNGNjcgLyogQjNDRkcu
aCAqLywKQEAgLTQ3MTUsOCArNDcyMCw2IEBACiAJCQkJMEZFQzg1QjIxQkRFRDk1NzAwODBGRjc0
IC8qIEIzQ29uc3RQdHJWYWx1ZS5oICovLAogCQkJCTBGMzM4REYzMUJFOTNENTUwMDEzQzg4RiAv
KiBCM0NvbnN0cmFpbmVkVmFsdWUuY3BwICovLAogCQkJCTBGMzM4REY0MUJFOTNENTUwMDEzQzg4
RiAvKiBCM0NvbnN0cmFpbmVkVmFsdWUuaCAqLywKLQkJCQkwRkVDODRDOTFCREFDREFDMDA4MEZG
NzQgLyogQjNDb250cm9sVmFsdWUuY3BwICovLAotCQkJCTBGRUM4NENBMUJEQUNEQUMwMDgwRkY3
NCAvKiBCM0NvbnRyb2xWYWx1ZS5oICovLAogCQkJCTBGMzM4RTAxMUJGMDI3NkMwMDEzQzg4RiAv
KiBCM0RhdGFTZWN0aW9uLmNwcCAqLywKIAkJCQkwRjMzOEUwMjFCRjAyNzZDMDAxM0M4OEYgLyog
QjNEYXRhU2VjdGlvbi5oICovLAogCQkJCTBGMzNGQ0ZBMUMxNjI1QkUwMDMyM0Y2NyAvKiBCM0Rv
bWluYXRvcnMuaCAqLywKQEAgLTcwNjgsNyArNzA3MSw2IEBACiAJCQkJMEZFQzg1MTAxQkRBQ0RB
QzAwODBGRjc0IC8qIEIzQ29uc3Q2NFZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODUx
MjFCREFDREFDMDA4MEZGNzQgLyogQjNDb25zdERvdWJsZVZhbHVlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkVDODVCMzFCREVEOTU3MDA4MEZGNzQgLyogQjNDb25zdFB0clZhbHVlLmggaW4gSGVh
ZGVycyAqLywKLQkJCQkwRkVDODUxNDFCREFDREFDMDA4MEZGNzQgLyogQjNDb250cm9sVmFsdWUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NUMxMUJFMTY3QTAwMDgwRkY3NCAvKiBCM0VmZmVj
dHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTE2MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0Zy
ZXF1ZW5jeUNsYXNzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjYxODMyRjFDNDVCRjA3MDA3MjQ1
MEIgLyogQWlyTG93ZXJBZnRlclJlZ0FsbG9jLmggaW4gSGVhZGVycyAqLywKQEAgLTcyMjUsNiAr
NzIyNyw3IEBACiAJCQkJQkMxOEMzRkIwRTE2RjVDRDAwQjM0NDYwIC8qIERlYnVnZ2VyQ2FsbEZy
YW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQk2QUQyQ0I0RDE5QjkxNDAxMDAwNjU3MTkgLyogRGVi
dWdnZXJFdmFsRW5hYmxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkVBMDg2MjExODJCN0EwNDAw
RjZEODUxIC8qIERlYnVnZ2VyUHJpbWl0aXZlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJREM5QTBD
MUYxRDJEOUNCMTAwODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rpb25JbmxpbmVzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjJENERERTE5ODMyRDM0MDA3RDRCMTkgLyogRGVidWdnZXJTY29wZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEYxMzZENEQxNzRBRDY5RTAwNzVCMzU0IC8qIERlZmVyR0MuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGQzcxMkRGMTdDRDg3N0MwMDhDQzkzQyAvKiBEZWZlcnJlZENv
bXBpbGF0aW9uQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLApAQCAtNzQ3OCw2ICs3NDgxLDcgQEAK
IAkJCQkwRkUwRTRBRTFDMjRDOTRBMDAyRTE3QjYgLyogQWlyVG1wV2lkdGguaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE3RjI5OTZDMTdBMEJCNjcwMDEwNDE3QSAvKiBGVExGYWlsLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRkVBMEEyQzE3MEI2NjE5MDBCQjcyMkMgLyogRlRMRm9ybWF0dGVkVmFsdWUu
aCBpbiBIZWFkZXJzICovLAorCQkJCURDOUEwQzIwMUQyRDlDQjMwMDg1MTI0RSAvKiBCM0Nhc2VD
b2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkQ4QTMxQTE3RDUxRjIyMDBDQTJDNDAg
LyogRlRMRm9yT1NSRW50cnlKSVRDb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzhBOTc3RjE3
OTczOEQ1MDA5REY3NDQgLyogRlRMR2VuZXJhdGVkRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGRUEwQTBFMTcwNTEzREIwMEJCNzIyQyAvKiBGVExKSVRDb2RlLmggaW4gSGVhZGVycyAq
LywKQEAgLTg3MTEsNyArODcxNSw2IEBACiAJCQkJNDM2RTU0NTQxQzQ2OEU3NzAwQjVBRjczIC8q
IEIzTGVnYWxpemVNZW1vcnlPZmZzZXRzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRUM4NTBG
MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0NjRWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwRkVDODUxMTFCREFDREFDMDA4MEZGNzQgLyogQjNDb25zdERvdWJsZVZhbHVlLmNwcCBpbiBT
b3VyY2VzICovLAotCQkJCTBGRUM4NTEzMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnRyb2xWYWx1
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkVDODVDNTFCRTE2RjVBMDA4MEZGNzQgLyogQjNF
ZmZlY3RzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRUM4NTE1MUJEQUNEQUMwMDgwRkY3NCAv
KiBCM0ZyZXF1ZW5jeUNsYXNzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRUM4NTE4MUJEQUNE
QUMwMDgwRkY3NCAvKiBCM0dlbmVyYXRlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtOTE1Niw2ICs5
MTU5LDcgQEAKIAkJCQkxNDdGMzlEMjEwN0VDMzc2MDA0MjdBNDggLyogSlNHbG9iYWxPYmplY3Qu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVGRDAwODUxODlCMUI3RTAwNjMzMjMxIC8qIEpTR2xv
YmFsT2JqZWN0Q29uc29sZUFnZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1QzNBMUE1MThD
MDQ5MDIwMEM5NTkzQSAvKiBKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJREM5QTBDMjExRDJEOUNCNDAwODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rpb24u
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTU5NDU1OTIxODI0NzQ0NzAwQ0MzODQzIC8qIEpTR2xv
YmFsT2JqZWN0RGVidWdnYWJsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTdEMjNFOTE4OTFC
MDc3MDAzMUM3RkEgLyogSlNHbG9iYWxPYmplY3REZWJ1Z2dlckFnZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTE0RTlEMTdCMTA3RUM0NjkwMDREREEyMSAvKiBKU0dsb2JhbE9iamVjdEZ1bmN0
aW9ucy5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCShyZXZpc2lvbiAyMDI4MDkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQu
aAkod29ya2luZyBjb3B5KQpAQCAtMjg3NCw2ICsyODc0LDEyIEBAIHB1YmxpYzoKICAgICAgICAg
bG9hZDY0KGFkZHJlc3MsIGdldENhY2hlZERhdGFUZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUo
KSk7CiAgICAgICAgIG1fYXNzZW1ibGVyLmJyKGRhdGFUZW1wUmVnaXN0ZXIpOwogICAgIH0KKyAg
ICAKKyAgICB2b2lkIGp1bXAoQmFzZUluZGV4IGFkZHJlc3MpCisgICAgeworICAgICAgICBsb2Fk
NjQoYWRkcmVzcywgZ2V0Q2FjaGVkRGF0YVRlbXBSZWdpc3RlcklEQW5kSW52YWxpZGF0ZSgpKTsK
KyAgICAgICAgbV9hc3NlbWJsZXIuYnIoZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgfQogCiAgICAg
dm9pZCBqdW1wKEFic29sdXRlQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2
Q29tbW9uLmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaAkod29ya2luZyBjb3B5KQpAQCAtMjI2Myw2
ICsyMjYzLDEyIEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIuam1wX20oYWRkcmVzcy5v
ZmZzZXQsIGFkZHJlc3MuYmFzZSk7CiAgICAgfQogCisgICAgLy8gQWRkcmVzcyBpcyBhIG1lbW9y
eSBsb2NhdGlvbiBjb250YWluaW5nIHRoZSBhZGRyZXNzIHRvIGp1bXAgdG8KKyAgICB2b2lkIGp1
bXAoQmFzZUluZGV4IGFkZHJlc3MpCisgICAgeworICAgICAgICBtX2Fzc2VtYmxlci5qbXBfbShh
ZGRyZXNzLm9mZnNldCwgYWRkcmVzcy5iYXNlLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxl
KTsKKyAgICB9CisKIAogICAgIC8vIEFyaXRobWV0aWMgY29udHJvbCBmbG93IG9wZXJhdGlvbnM6
CiAgICAgLy8KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1i
bGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZB
c3NlbWJsZXIuaAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9YODZBc3NlbWJsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTk4Myw2ICsxOTgzLDEx
IEBAIHB1YmxpYzoKICAgICAgICAgbV9mb3JtYXR0ZXIub25lQnl0ZU9wKE9QX0dST1VQNV9Fdiwg
R1JPVVA1X09QX0pNUE4sIGJhc2UsIG9mZnNldCk7CiAgICAgfQogICAgIAorICAgIHZvaWQgam1w
X20oaW50IG9mZnNldCwgUmVnaXN0ZXJJRCBiYXNlLCBSZWdpc3RlcklEIGluZGV4LCBpbnQgc2Nh
bGUpCisgICAgeworICAgICAgICBtX2Zvcm1hdHRlci5vbmVCeXRlT3AoT1BfR1JPVVA1X0V2LCBH
Uk9VUDVfT1BfSk1QTiwgYmFzZSwgaW5kZXgsIHNjYWxlLCBvZmZzZXQpOworICAgIH0KKyAgICAK
ICNpZiAhQ1BVKFg4Nl82NCkKICAgICB2b2lkIGptcF9tKGNvbnN0IHZvaWQqIGFkZHJlc3MpCiAg
ICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5jcHAJKHJl
dmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2su
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw2IEBACiAKICNpbmNsdWRlICJCM0Jhc2lj
QmxvY2tJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrVXRpbHMuaCIKLSNpbmNsdWRl
ICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJlLmgiCiAjaW5jbHVkZSAi
QjNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlIDx3dGYvTGlzdER1bXAuaD4KQEAgLTUyLDEyICs1
MSwxNCBAQCBCYXNpY0Jsb2NrOjp+QmFzaWNCbG9jaygpCiB2b2lkIEJhc2ljQmxvY2s6OmFwcGVu
ZChWYWx1ZSogdmFsdWUpCiB7CiAgICAgbV92YWx1ZXMuYXBwZW5kKHZhbHVlKTsKKyAgICB2YWx1
ZS0+b3duZXIgPSB0aGlzOwogfQogCiB2b2lkIEJhc2ljQmxvY2s6OmFwcGVuZE5vblRlcm1pbmFs
KFZhbHVlKiB2YWx1ZSkKIHsKICAgICBtX3ZhbHVlcy5hcHBlbmQobV92YWx1ZXMubGFzdCgpKTsK
ICAgICBtX3ZhbHVlc1ttX3ZhbHVlcy5zaXplKCkgLSAxXSA9IHZhbHVlOworICAgIHZhbHVlLT5v
d25lciA9IHRoaXM7CiB9CiAKIHZvaWQgQmFzaWNCbG9jazo6cmVtb3ZlTGFzdChQcm9jZWR1cmUm
IHByb2MpCkBAIC04NCw5ICs4NSw0MSBAQCBWYWx1ZSogQmFzaWNCbG9jazo6YXBwZW5kSW50Q29u
c3RhbnQoUHJvCiAgICAgcmV0dXJuIGFwcGVuZEludENvbnN0YW50KHByb2MsIGxpa2VWYWx1ZS0+
b3JpZ2luKCksIGxpa2VWYWx1ZS0+dHlwZSgpLCB2YWx1ZSk7CiB9CiAKK3ZvaWQgQmFzaWNCbG9j
azo6Y2xlYXJTdWNjZXNzb3JzKCkKK3sKKyAgICBtX3N1Y2Nlc3NvcnMuY2xlYXIoKTsKK30KKwor
dm9pZCBCYXNpY0Jsb2NrOjphcHBlbmRTdWNjZXNzb3IoY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0
YXJnZXQpCit7CisgICAgbV9zdWNjZXNzb3JzLmFwcGVuZCh0YXJnZXQpOworfQorCit2b2lkIEJh
c2ljQmxvY2s6OnNldFN1Y2Nlc3NvcnMoY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YXJnZXQpCit7
CisgICAgbV9zdWNjZXNzb3JzLnJlc2l6ZSgxKTsKKyAgICBtX3N1Y2Nlc3NvcnNbMF0gPSB0YXJn
ZXQ7Cit9CisKK3ZvaWQgQmFzaWNCbG9jazo6c2V0U3VjY2Vzc29ycyhjb25zdCBGcmVxdWVudGVk
QmxvY2smIHRha2VuLCBjb25zdCBGcmVxdWVudGVkQmxvY2smIG5vdFRha2VuKQoreworICAgIG1f
c3VjY2Vzc29ycy5yZXNpemUoMik7CisgICAgbV9zdWNjZXNzb3JzWzBdID0gdGFrZW47CisgICAg
bV9zdWNjZXNzb3JzWzFdID0gbm90VGFrZW47Cit9CisKIGJvb2wgQmFzaWNCbG9jazo6cmVwbGFj
ZVN1Y2Nlc3NvcihCYXNpY0Jsb2NrKiBmcm9tLCBCYXNpY0Jsb2NrKiB0bykKIHsKLSAgICByZXR1
cm4gbGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCktPnJlcGxhY2VTdWNjZXNzb3IoZnJvbSwgdG8p
OworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgZm9yIChCYXNpY0Jsb2NrKiYgc3VjY2Vz
c29yIDogc3VjY2Vzc29yQmxvY2tzKCkpIHsKKyAgICAgICAgaWYgKHN1Y2Nlc3NvciA9PSBmcm9t
KSB7CisgICAgICAgICAgICBzdWNjZXNzb3IgPSB0bzsKKyAgICAgICAgICAgIHJlc3VsdCA9IHRy
dWU7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIEtlZXAgbG9vcGluZyBiZWNhdXNlIGEg
c3VjY2Vzc29yIG1heSBiZSBtZW50aW9uZWQgbXVsdGlwbGUgdGltZXMsIGxpa2UgaW4gYSBTd2l0
Y2guCisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogYm9vbCBCYXNp
Y0Jsb2NrOjphZGRQcmVkZWNlc3NvcihCYXNpY0Jsb2NrKiBibG9jaykKQEAgLTEyMSw2ICsxNTQs
NDIgQEAgdm9pZCBCYXNpY0Jsb2NrOjpkZWVwRHVtcChjb25zdCBQcm9jZWR1cgogICAgICAgICBv
dXQucHJpbnQoIiAgUHJlZGVjZXNzb3JzOiAiLCBwb2ludGVyTGlzdER1bXAocHJlZGVjZXNzb3Jz
KCkpLCAiXG4iKTsKICAgICBmb3IgKFZhbHVlKiB2YWx1ZSA6ICp0aGlzKQogICAgICAgICBvdXQu
cHJpbnQoIiAgICAiLCBCMzo6ZGVlcER1bXAocHJvYywgdmFsdWUpLCAiXG4iKTsKKyAgICBpZiAo
c3VjY2Vzc29ycygpLnNpemUoKSkgeworICAgICAgICBvdXQucHJpbnQoIiAgU3VjY2Vzc29yczog
Iik7CisgICAgICAgIGlmIChzaXplKCkpCisgICAgICAgICAgICBsYXN0KCktPmR1bXBTdWNjZXNz
b3JzKHRoaXMsIG91dCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG91dC5wcmludChsaXN0
RHVtcChzdWNjZXNzb3JzKCkpKTsKKyAgICAgICAgb3V0LnByaW50KCJcbiIpOworICAgIH0KK30K
KworVmFsdWUqIEJhc2ljQmxvY2s6OmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShQcm9jZWR1cmUmIHBy
b2MsIE9wY29kZSBvcGNvZGUsIE9yaWdpbiBvcmlnaW4pCit7CisgICAgUkVMRUFTRV9BU1NFUlQo
b3Bjb2RlID09IE9vcHMpOworICAgIGNsZWFyU3VjY2Vzc29ycygpOworICAgIHJldHVybiBhcHBl
bmROZXc8VmFsdWU+KHByb2MsIG9wY29kZSwgb3JpZ2luKTsKK30KKworVmFsdWUqIEJhc2ljQmxv
Y2s6OmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShQcm9jZWR1cmUmIHByb2MsIE9wY29kZSBvcGNvZGUs
IE9yaWdpbiBvcmlnaW4sIFZhbHVlKiB2YWx1ZSkKK3sKKyAgICBSRUxFQVNFX0FTU0VSVChvcGNv
ZGUgPT0gUmV0dXJuKTsKKyAgICBjbGVhclN1Y2Nlc3NvcnMoKTsKKyAgICByZXR1cm4gYXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBvcGNvZGUsIG9yaWdpbiwgdmFsdWUpOworfQorCitWYWx1ZSogQmFz
aWNCbG9jazo6YXBwZW5kTmV3Q29udHJvbFZhbHVlKFByb2NlZHVyZSYgcHJvYywgT3Bjb2RlIG9w
Y29kZSwgT3JpZ2luIG9yaWdpbiwgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YXJnZXQpCit7Cisg
ICAgUkVMRUFTRV9BU1NFUlQob3Bjb2RlID09IEp1bXApOworICAgIHNldFN1Y2Nlc3NvcnModGFy
Z2V0KTsKKyAgICByZXR1cm4gYXBwZW5kTmV3PFZhbHVlPihwcm9jLCBvcGNvZGUsIG9yaWdpbik7
Cit9CisKK1ZhbHVlKiBCYXNpY0Jsb2NrOjphcHBlbmROZXdDb250cm9sVmFsdWUoUHJvY2VkdXJl
JiBwcm9jLCBPcGNvZGUgb3Bjb2RlLCBPcmlnaW4gb3JpZ2luLCBWYWx1ZSogcHJlZGljYXRlLCBj
b25zdCBGcmVxdWVudGVkQmxvY2smIHRha2VuLCBjb25zdCBGcmVxdWVudGVkQmxvY2smIG5vdFRh
a2VuKQoreworICAgIFJFTEVBU0VfQVNTRVJUKG9wY29kZSA9PSBCcmFuY2gpOworICAgIHNldFN1
Y2Nlc3NvcnModGFrZW4sIG5vdFRha2VuKTsKKyAgICByZXR1cm4gYXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBvcGNvZGUsIG9yaWdpbiwgcHJlZGljYXRlKTsKIH0KIAogfSB9IC8vIG5hbWVzcGFjZSBK
U0M6OkIzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5oCShyZXZp
c2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoQjNfSklUKQogCiAj
aW5jbHVkZSAiQjNGcmVxdWVudGVkQmxvY2suaCIKKyNpbmNsdWRlICJCM09wY29kZS5oIgogI2lu
Y2x1ZGUgIkIzT3JpZ2luLmgiCiAjaW5jbHVkZSAiQjNTdWNjZXNzb3JDb2xsZWN0aW9uLmgiCiAj
aW5jbHVkZSAiQjNUeXBlLmgiCkBAIC00Nyw3ICs0OCw3IEBAIGNsYXNzIEJhc2ljQmxvY2sgewog
cHVibGljOgogICAgIHR5cGVkZWYgVmVjdG9yPFZhbHVlKj4gVmFsdWVMaXN0OwogICAgIHR5cGVk
ZWYgVmVjdG9yPEJhc2ljQmxvY2sqLCAyPiBQcmVkZWNlc3Nvckxpc3Q7Ci0gICAgdHlwZWRlZiBW
ZWN0b3I8RnJlcXVlbnRlZEJsb2NrLCAyPiBTdWNjZXNzb3JMaXN0OyAvLyBUaGlzIG1hdGNoZXMg
Q29udHJvbFZhbHVlOjpTdWNjZXNzb3JMaXN0CisgICAgdHlwZWRlZiBWZWN0b3I8RnJlcXVlbnRl
ZEJsb2NrLCAyPiBTdWNjZXNzb3JMaXN0OwogCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0
IGR1bXBQcmVmaXg7CiAKQEAgLTc1LDMwICs3Niw1MSBAQCBwdWJsaWM6CiAgICAgSlNfRVhQT1JU
X1BSSVZBVEUgdm9pZCByZXBsYWNlTGFzdChQcm9jZWR1cmUmLCBWYWx1ZSopOwogCiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgVmFsdWVUeXBlLCB0eXBlbmFtZS4uLiBBcmd1bWVudHM+Ci0gICAgVmFs
dWVUeXBlKiBhcHBlbmROZXcoUHJvY2VkdXJlJiwgQXJndW1lbnRzLi4uKTsKKyAgICBWYWx1ZVR5
cGUqIGFwcGVuZE5ldyhQcm9jZWR1cmUmLCBBcmd1bWVudHMmJi4uLik7CiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgVmFsdWVUeXBlLCB0eXBlbmFtZS4uLiBBcmd1bWVudHM+Ci0gICAgVmFsdWVUeXBl
KiBhcHBlbmROZXdOb25UZXJtaW5hbChQcm9jZWR1cmUmLCBBcmd1bWVudHMuLi4pOwotCisgICAg
VmFsdWVUeXBlKiBhcHBlbmROZXdOb25UZXJtaW5hbChQcm9jZWR1cmUmLCBBcmd1bWVudHMmJi4u
Lik7CisgICAgCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgVmFsdWUqIGFwcGVuZEludENvbnN0YW50
KFByb2NlZHVyZSYsIE9yaWdpbiwgVHlwZSwgaW50NjRfdCB2YWx1ZSk7CiAgICAgVmFsdWUqIGFw
cGVuZEludENvbnN0YW50KFByb2NlZHVyZSYsIFZhbHVlKiBsaWtlVmFsdWUsIGludDY0X3QgdmFs
dWUpOwogCiAgICAgdm9pZCByZW1vdmVMYXN0KFByb2NlZHVyZSYpOwogICAgIAogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5hbWUuLi4gQXJndW1lbnRzPgotICAgIFZhbHVl
VHlwZSogcmVwbGFjZUxhc3RXaXRoTmV3KFByb2NlZHVyZSYsIEFyZ3VtZW50cy4uLik7CisgICAg
VmFsdWVUeXBlKiByZXBsYWNlTGFzdFdpdGhOZXcoUHJvY2VkdXJlJiwgQXJndW1lbnRzJiYuLi4p
OwogCi0gICAgdW5zaWduZWQgbnVtU3VjY2Vzc29ycygpIGNvbnN0OwotICAgIGNvbnN0IEZyZXF1
ZW50ZWRCbG9jayYgc3VjY2Vzc29yKHVuc2lnbmVkIGluZGV4KSBjb25zdDsKLSAgICBGcmVxdWVu
dGVkQmxvY2smIHN1Y2Nlc3Nvcih1bnNpZ25lZCBpbmRleCk7Ci0gICAgY29uc3QgU3VjY2Vzc29y
TGlzdCYgc3VjY2Vzc29ycygpIGNvbnN0OwotICAgIFN1Y2Nlc3Nvckxpc3QmIHN1Y2Nlc3NvcnMo
KTsKLQotICAgIEJhc2ljQmxvY2sqIHN1Y2Nlc3NvckJsb2NrKHVuc2lnbmVkIGluZGV4KSBjb25z
dDsKLSAgICBCYXNpY0Jsb2NrKiYgc3VjY2Vzc29yQmxvY2sodW5zaWduZWQgaW5kZXgpOwotICAg
IFN1Y2Nlc3NvckNvbGxlY3Rpb248QmFzaWNCbG9jaywgU3VjY2Vzc29yTGlzdD4gc3VjY2Vzc29y
QmxvY2tzKCk7Ci0gICAgU3VjY2Vzc29yQ29sbGVjdGlvbjxjb25zdCBCYXNpY0Jsb2NrLCBjb25z
dCBTdWNjZXNzb3JMaXN0PiBzdWNjZXNzb3JCbG9ja3MoKSBjb25zdDsKKyAgICB1bnNpZ25lZCBu
dW1TdWNjZXNzb3JzKCkgY29uc3QgeyByZXR1cm4gbV9zdWNjZXNzb3JzLnNpemUoKTsgfQorICAg
IGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgc3VjY2Vzc29yKHVuc2lnbmVkIGluZGV4KSBjb25zdCB7
IHJldHVybiBtX3N1Y2Nlc3NvcnNbaW5kZXhdOyB9CisgICAgRnJlcXVlbnRlZEJsb2NrJiBzdWNj
ZXNzb3IodW5zaWduZWQgaW5kZXgpIHsgcmV0dXJuIG1fc3VjY2Vzc29yc1tpbmRleF07IH0KKyAg
ICBjb25zdCBTdWNjZXNzb3JMaXN0JiBzdWNjZXNzb3JzKCkgY29uc3QgeyByZXR1cm4gbV9zdWNj
ZXNzb3JzOyB9CisgICAgU3VjY2Vzc29yTGlzdCYgc3VjY2Vzc29ycygpIHsgcmV0dXJuIG1fc3Vj
Y2Vzc29yczsgfQorICAgIAorICAgIHZvaWQgY2xlYXJTdWNjZXNzb3JzKCk7CisgICAgdm9pZCBh
cHBlbmRTdWNjZXNzb3IoY29uc3QgRnJlcXVlbnRlZEJsb2NrJik7CisgICAgdm9pZCBzZXRTdWNj
ZXNzb3JzKGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYpOworICAgIHZvaWQgc2V0U3VjY2Vzc29ycyhj
b25zdCBGcmVxdWVudGVkQmxvY2smLCBjb25zdCBGcmVxdWVudGVkQmxvY2smKTsKKworICAgIEJh
c2ljQmxvY2sqIHN1Y2Nlc3NvckJsb2NrKHVuc2lnbmVkIGluZGV4KSBjb25zdCB7IHJldHVybiBz
dWNjZXNzb3IoaW5kZXgpLmJsb2NrKCk7IH0KKyAgICBCYXNpY0Jsb2NrKiYgc3VjY2Vzc29yQmxv
Y2sodW5zaWduZWQgaW5kZXgpIHsgcmV0dXJuIHN1Y2Nlc3NvcihpbmRleCkuYmxvY2soKTsgfQor
ICAgIFN1Y2Nlc3NvckNvbGxlY3Rpb248QmFzaWNCbG9jaywgU3VjY2Vzc29yTGlzdD4gc3VjY2Vz
c29yQmxvY2tzKCkKKyAgICB7CisgICAgICAgIHJldHVybiBTdWNjZXNzb3JDb2xsZWN0aW9uPEJh
c2ljQmxvY2ssIFN1Y2Nlc3Nvckxpc3Q+KHN1Y2Nlc3NvcnMoKSk7CisgICAgfQorICAgIFN1Y2Nl
c3NvckNvbGxlY3Rpb248Y29uc3QgQmFzaWNCbG9jaywgY29uc3QgU3VjY2Vzc29yTGlzdD4gc3Vj
Y2Vzc29yQmxvY2tzKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBTdWNjZXNzb3JDb2xs
ZWN0aW9uPGNvbnN0IEJhc2ljQmxvY2ssIGNvbnN0IFN1Y2Nlc3Nvckxpc3Q+KHN1Y2Nlc3NvcnMo
KSk7CisgICAgfQogCiAgICAgYm9vbCByZXBsYWNlU3VjY2Vzc29yKEJhc2ljQmxvY2sqIGZyb20s
IEJhc2ljQmxvY2sqIHRvKTsKKyAgICAKKyAgICAvLyBUaGlzIGlzIG9ubHkgdmFsaWQgZm9yIEp1
bXAgYW5kIEJyYW5jaC4KKyAgICBjb25zdCBGcmVxdWVudGVkQmxvY2smIHRha2VuKCkgY29uc3Q7
CisgICAgRnJlcXVlbnRlZEJsb2NrJiB0YWtlbigpOworICAgIC8vIFRoaXMgaXMgb25seSB2YWxp
ZCBmb3IgQnJhbmNoLgorICAgIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgbm90VGFrZW4oKSBjb25z
dDsKKyAgICBGcmVxdWVudGVkQmxvY2smIG5vdFRha2VuKCk7CisgICAgLy8gVGhpcyBpcyBvbmx5
IHZhbGlkIGZvciBCcmFuY2ggYW5kIFN3aXRjaC4KKyAgICBjb25zdCBGcmVxdWVudGVkQmxvY2sm
IGZhbGxUaHJvdWdoKCkgY29uc3Q7CisgICAgRnJlcXVlbnRlZEJsb2NrJiBmYWxsVGhyb3VnaCgp
OwogCiAgICAgdW5zaWduZWQgbnVtUHJlZGVjZXNzb3JzKCkgY29uc3QgeyByZXR1cm4gbV9wcmVk
ZWNlc3NvcnMuc2l6ZSgpOyB9CiAgICAgQmFzaWNCbG9jayogcHJlZGVjZXNzb3IodW5zaWduZWQg
aW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fcHJlZGVjZXNzb3JzW2luZGV4XTsgfQpAQCAtMTE1LDEw
ICsxMzcsMjMgQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlUHJlZGVjZXNzb3JzQWZ0ZXIoKTsK
IAogICAgIGRvdWJsZSBmcmVxdWVuY3koKSBjb25zdCB7IHJldHVybiBtX2ZyZXF1ZW5jeTsgfQot
CisgICAgCiAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAgICAgdm9pZCBkZWVw
RHVtcChjb25zdCBQcm9jZWR1cmUmLCBQcmludFN0cmVhbSYpIGNvbnN0OwogCisgICAgLy8gVGhl
c2UgYXJlIGRlcHJlY2F0ZWQgbWV0aG9kIGZvciBjb21wYXRpYmlsaXR5IHdpdGggdGhlIG9sZCBD
b250cm9sVmFsdWUgY2xhc3MuIERvbid0IHVzZSB0aGVtCisgICAgLy8gaW4gbmV3IGNvZGUuCisg
ICAgLy8gRklYTUU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk0
NDAKKyAgICAKKyAgICAvLyBVc2UgdGhpcyBmb3IgT29wcy4KKyAgICBKU19FWFBPUlRfUFJJVkFU
RSBWYWx1ZSogYXBwZW5kTmV3Q29udHJvbFZhbHVlKFByb2NlZHVyZSYsIE9wY29kZSwgT3JpZ2lu
KTsKKyAgICAvLyBVc2UgdGhpcyBmb3IgUmV0dXJuLgorICAgIEpTX0VYUE9SVF9QUklWQVRFIFZh
bHVlKiBhcHBlbmROZXdDb250cm9sVmFsdWUoUHJvY2VkdXJlJiwgT3Bjb2RlLCBPcmlnaW4sIFZh
bHVlKik7CisgICAgLy8gVXNlIHRoaXMgZm9yIEp1bXAuCisgICAgSlNfRVhQT1JUX1BSSVZBVEUg
VmFsdWUqIGFwcGVuZE5ld0NvbnRyb2xWYWx1ZShQcm9jZWR1cmUmLCBPcGNvZGUsIE9yaWdpbiwg
Y29uc3QgRnJlcXVlbnRlZEJsb2NrJik7CisgICAgLy8gVXNlIHRoaXMgZm9yIEJyYW5jaC4KKyAg
ICBKU19FWFBPUlRfUFJJVkFURSBWYWx1ZSogYXBwZW5kTmV3Q29udHJvbFZhbHVlKFByb2NlZHVy
ZSYsIE9wY29kZSwgT3JpZ2luLCBWYWx1ZSosIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYsIGNvbnN0
IEZyZXF1ZW50ZWRCbG9jayYpOworICAgIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgQmxv
Y2tJbnNlcnRpb25TZXQ7CiAgICAgZnJpZW5kIGNsYXNzIEluc2VydGlvblNldDsKQEAgLTEzMCw2
ICsxNjUsNyBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1faW5kZXg7CiAgICAgVmFsdWVMaXN0
IG1fdmFsdWVzOwogICAgIFByZWRlY2Vzc29yTGlzdCBtX3ByZWRlY2Vzc29yczsKKyAgICBTdWNj
ZXNzb3JMaXN0IG1fc3VjY2Vzc29yczsKICAgICBkb3VibGUgbV9mcmVxdWVuY3k7CiB9OwogCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrSW5saW5lcy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2tJbmxpbmVzLmgJ
KHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxv
Y2tJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDc4ICsyOSw2OSBAQAogI2lmIEVOQUJM
RShCM19KSVQpCiAKICNpbmNsdWRlICJCM0Jhc2ljQmxvY2suaCIKLSNpbmNsdWRlICJCM0NvbnRy
b2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJlSW5saW5lcy5oIgorI2luY2x1ZGUgIkIz
VmFsdWUuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKIHRlbXBsYXRlPHR5
cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5hbWUuLi4gQXJndW1lbnRzPgotVmFsdWVUeXBlKiBCYXNp
Y0Jsb2NrOjphcHBlbmROZXcoUHJvY2VkdXJlJiBwcm9jZWR1cmUsIEFyZ3VtZW50cy4uLiBhcmd1
bWVudHMpCitWYWx1ZVR5cGUqIEJhc2ljQmxvY2s6OmFwcGVuZE5ldyhQcm9jZWR1cmUmIHByb2Nl
ZHVyZSwgQXJndW1lbnRzJiYuLi4gYXJndW1lbnRzKQogewotICAgIFZhbHVlVHlwZSogcmVzdWx0
ID0gcHJvY2VkdXJlLmFkZDxWYWx1ZVR5cGU+KGFyZ3VtZW50cy4uLik7CisgICAgVmFsdWVUeXBl
KiByZXN1bHQgPSBwcm9jZWR1cmUuYWRkPFZhbHVlVHlwZT4oc3RkOjpmb3J3YXJkPEFyZ3VtZW50
cz4oYXJndW1lbnRzKS4uLik7CiAgICAgYXBwZW5kKHJlc3VsdCk7CiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVmFsdWVUeXBlLCB0eXBlbmFtZS4uLiBBcmd1bWVu
dHM+Ci1WYWx1ZVR5cGUqIEJhc2ljQmxvY2s6OmFwcGVuZE5ld05vblRlcm1pbmFsKFByb2NlZHVy
ZSYgcHJvY2VkdXJlLCBBcmd1bWVudHMuLi4gYXJndW1lbnRzKQorVmFsdWVUeXBlKiBCYXNpY0Js
b2NrOjphcHBlbmROZXdOb25UZXJtaW5hbChQcm9jZWR1cmUmIHByb2NlZHVyZSwgQXJndW1lbnRz
JiYuLi4gYXJndW1lbnRzKQogewotICAgIFZhbHVlVHlwZSogcmVzdWx0ID0gcHJvY2VkdXJlLmFk
ZDxWYWx1ZVR5cGU+KGFyZ3VtZW50cy4uLik7CisgICAgVmFsdWVUeXBlKiByZXN1bHQgPSBwcm9j
ZWR1cmUuYWRkPFZhbHVlVHlwZT4oc3RkOjpmb3J3YXJkPEFyZ3VtZW50cz4oYXJndW1lbnRzKS4u
Lik7CiAgICAgYXBwZW5kTm9uVGVybWluYWwocmVzdWx0KTsKICAgICByZXR1cm4gcmVzdWx0Owog
fQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBWYWx1ZVR5cGUsIHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4K
LVZhbHVlVHlwZSogQmFzaWNCbG9jazo6cmVwbGFjZUxhc3RXaXRoTmV3KFByb2NlZHVyZSYgcHJv
Y2VkdXJlLCBBcmd1bWVudHMuLi4gYXJndW1lbnRzKQorVmFsdWVUeXBlKiBCYXNpY0Jsb2NrOjpy
ZXBsYWNlTGFzdFdpdGhOZXcoUHJvY2VkdXJlJiBwcm9jZWR1cmUsIEFyZ3VtZW50cyYmLi4uIGFy
Z3VtZW50cykKIHsKLSAgICBWYWx1ZVR5cGUqIHJlc3VsdCA9IHByb2NlZHVyZS5hZGQ8VmFsdWVU
eXBlPihhcmd1bWVudHMuLi4pOworICAgIFZhbHVlVHlwZSogcmVzdWx0ID0gcHJvY2VkdXJlLmFk
ZDxWYWx1ZVR5cGU+KHN0ZDo6Zm9yd2FyZDxBcmd1bWVudHM+KGFyZ3VtZW50cykuLi4pOwogICAg
IHJlcGxhY2VMYXN0KHByb2NlZHVyZSwgcmVzdWx0KTsKICAgICByZXR1cm4gcmVzdWx0OwogfQog
Ci1pbmxpbmUgdW5zaWduZWQgQmFzaWNCbG9jazo6bnVtU3VjY2Vzc29ycygpIGNvbnN0Citjb25z
dCBGcmVxdWVudGVkQmxvY2smIEJhc2ljQmxvY2s6OnRha2VuKCkgY29uc3QKIHsKLSAgICByZXR1
cm4gbGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCktPm51bVN1Y2Nlc3NvcnMoKTsKKyAgICBBU1NF
UlQobGFzdCgpLT5vcGNvZGUoKSA9PSBKdW1wIHx8IGxhc3QoKS0+b3Bjb2RlKCkgPT0gQnJhbmNo
KTsKKyAgICByZXR1cm4gbV9zdWNjZXNzb3JzWzBdOwogfQogCi1pbmxpbmUgY29uc3QgRnJlcXVl
bnRlZEJsb2NrJiBCYXNpY0Jsb2NrOjpzdWNjZXNzb3IodW5zaWduZWQgaW5kZXgpIGNvbnN0CitG
cmVxdWVudGVkQmxvY2smIEJhc2ljQmxvY2s6OnRha2VuKCkKIHsKLSAgICByZXR1cm4gbGFzdCgp
LT5hczxDb250cm9sVmFsdWU+KCktPnN1Y2Nlc3NvcihpbmRleCk7CisgICAgQVNTRVJUKGxhc3Qo
KS0+b3Bjb2RlKCkgPT0gSnVtcCB8fCBsYXN0KCktPm9wY29kZSgpID09IEJyYW5jaCk7CisgICAg
cmV0dXJuIG1fc3VjY2Vzc29yc1swXTsKIH0KIAotaW5saW5lIEZyZXF1ZW50ZWRCbG9jayYgQmFz
aWNCbG9jazo6c3VjY2Vzc29yKHVuc2lnbmVkIGluZGV4KQorY29uc3QgRnJlcXVlbnRlZEJsb2Nr
JiBCYXNpY0Jsb2NrOjpub3RUYWtlbigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGxhc3QoKS0+YXM8
Q29udHJvbFZhbHVlPigpLT5zdWNjZXNzb3IoaW5kZXgpOworICAgIEFTU0VSVChsYXN0KCktPm9w
Y29kZSgpID09IEJyYW5jaCk7CisgICAgcmV0dXJuIG1fc3VjY2Vzc29yc1sxXTsKIH0KIAotaW5s
aW5lIGNvbnN0IEJhc2ljQmxvY2s6OlN1Y2Nlc3Nvckxpc3QmIEJhc2ljQmxvY2s6OnN1Y2Nlc3Nv
cnMoKSBjb25zdAorRnJlcXVlbnRlZEJsb2NrJiBCYXNpY0Jsb2NrOjpub3RUYWtlbigpCiB7Ci0g
ICAgcmV0dXJuIGxhc3QoKS0+YXM8Q29udHJvbFZhbHVlPigpLT5zdWNjZXNzb3JzKCk7CisgICAg
QVNTRVJUKGxhc3QoKS0+b3Bjb2RlKCkgPT0gQnJhbmNoKTsKKyAgICByZXR1cm4gbV9zdWNjZXNz
b3JzWzFdOwogfQogCi1pbmxpbmUgQmFzaWNCbG9jazo6U3VjY2Vzc29yTGlzdCYgQmFzaWNCbG9j
azo6c3VjY2Vzc29ycygpCitjb25zdCBGcmVxdWVudGVkQmxvY2smIEJhc2ljQmxvY2s6OmZhbGxU
aHJvdWdoKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCkt
PnN1Y2Nlc3NvcnMoKTsKKyAgICBBU1NFUlQobGFzdCgpLT5vcGNvZGUoKSA9PSBCcmFuY2ggfHwg
bGFzdCgpLT5vcGNvZGUoKSA9PSBTd2l0Y2gpOworICAgIHJldHVybiBtX3N1Y2Nlc3NvcnMubGFz
dCgpOwogfQogCi1pbmxpbmUgQmFzaWNCbG9jayogQmFzaWNCbG9jazo6c3VjY2Vzc29yQmxvY2so
dW5zaWduZWQgaW5kZXgpIGNvbnN0CitGcmVxdWVudGVkQmxvY2smIEJhc2ljQmxvY2s6OmZhbGxU
aHJvdWdoKCkKIHsKLSAgICByZXR1cm4gc3VjY2Vzc29yKGluZGV4KS5ibG9jaygpOwotfQotCi1p
bmxpbmUgQmFzaWNCbG9jayomIEJhc2ljQmxvY2s6OnN1Y2Nlc3NvckJsb2NrKHVuc2lnbmVkIGlu
ZGV4KQotewotICAgIHJldHVybiBzdWNjZXNzb3IoaW5kZXgpLmJsb2NrKCk7Ci19Ci0KLWlubGlu
ZSBTdWNjZXNzb3JDb2xsZWN0aW9uPEJhc2ljQmxvY2ssIEJhc2ljQmxvY2s6OlN1Y2Nlc3Nvckxp
c3Q+IEJhc2ljQmxvY2s6OnN1Y2Nlc3NvckJsb2NrcygpCi17Ci0gICAgcmV0dXJuIFN1Y2Nlc3Nv
ckNvbGxlY3Rpb248QmFzaWNCbG9jaywgU3VjY2Vzc29yTGlzdD4oc3VjY2Vzc29ycygpKTsKLX0K
LQotaW5saW5lIFN1Y2Nlc3NvckNvbGxlY3Rpb248Y29uc3QgQmFzaWNCbG9jaywgY29uc3QgQmFz
aWNCbG9jazo6U3VjY2Vzc29yTGlzdD4gQmFzaWNCbG9jazo6c3VjY2Vzc29yQmxvY2tzKCkgY29u
c3QKLXsKLSAgICByZXR1cm4gU3VjY2Vzc29yQ29sbGVjdGlvbjxjb25zdCBCYXNpY0Jsb2NrLCBj
b25zdCBTdWNjZXNzb3JMaXN0PihzdWNjZXNzb3JzKCkpOworICAgIEFTU0VSVChsYXN0KCktPm9w
Y29kZSgpID09IEJyYW5jaCB8fCBsYXN0KCktPm9wY29kZSgpID09IFN3aXRjaCk7CisgICAgcmV0
dXJuIG1fc3VjY2Vzc29ycy5sYXN0KCk7CiB9CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmxvY2tJbnNlcnRpb25TZXQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jsb2NrSW5zZXJ0aW9uU2V0
LmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmxv
Y2tJbnNlcnRpb25TZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OCw4ICs3OCw4IEBAIEJhc2lj
QmxvY2sqIEJsb2NrSW5zZXJ0aW9uU2V0OjpzcGxpdEZvcncKICAgICAgICAgcmVzdWx0LT5tX3Zh
bHVlc1tpXSA9IGJsb2NrLT5tX3ZhbHVlc1tpXTsKIAogICAgIC8vIE1ha2UgdGhlIG5ldyBibG9j
ayBqdW1wIHRvICdibG9jaycuCi0gICAgcmVzdWx0LT5tX3ZhbHVlc1t2YWx1ZUluZGV4XSA9Ci0g
ICAgICAgIG1fcHJvYy5hZGQ8Q29udHJvbFZhbHVlPihKdW1wLCB2YWx1ZS0+b3JpZ2luKCksIEZy
ZXF1ZW50ZWRCbG9jayhibG9jaykpOworICAgIHJlc3VsdC0+bV92YWx1ZXNbdmFsdWVJbmRleF0g
PSBtX3Byb2MuYWRkPFZhbHVlPihKdW1wLCB2YWx1ZS0+b3JpZ2luKCkpOworICAgIHJlc3VsdC0+
c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2soYmxvY2spKTsKIAogICAgIC8vIElmIHdlIGhh
ZCBpbnNlcnRlZCB0aGluZ3MgaW50byAnYmxvY2snIGJlZm9yZSB0aGlzLCBleGVjdXRlIHRob3Nl
IGluc2VydGlvbnMgbm93LgogICAgIGlmIChpbnNlcnRpb25TZXQpCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNCcmVha0NyaXRpY2FsRWRnZXMuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0JyZWFrQ3JpdGljYWxFZGdlcy5jcHAJKHJldmlzaW9u
IDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0JyZWFrQ3JpdGljYWxFZGdl
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDYgQEAKIAogI2luY2x1ZGUgIkIzQmFz
aWNCbG9ja0lubGluZXMuaCIKICNpbmNsdWRlICJCM0Jsb2NrSW5zZXJ0aW9uU2V0LmgiCi0jaW5j
bHVkZSAiQjNDb250cm9sVmFsdWUuaCIKICNpbmNsdWRlICJCM1Byb2NlZHVyZUlubGluZXMuaCIK
ICNpbmNsdWRlICJCM1ZhbHVlSW5saW5lcy5oIgogCkBAIC01MCw4ICs0OSw4IEBAIHZvaWQgYnJl
YWtDcml0aWNhbEVkZ2VzKFByb2NlZHVyZSYgcHJvYykKIAogICAgICAgICAgICAgQmFzaWNCbG9j
ayogcGFkID0KICAgICAgICAgICAgICAgICBpbnNlcnRpb25TZXQuaW5zZXJ0QmVmb3JlKHN1Y2Nl
c3Nvciwgc3VjY2Vzc29yLT5mcmVxdWVuY3koKSk7Ci0gICAgICAgICAgICBwYWQtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAotICAgICAgICAgICAgICAgIHByb2MsIEp1bXAsIHN1Y2Nlc3Nvci0+
YXQoMCktPm9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soc3VjY2Vzc29yKSk7CisgICAgICAgICAg
ICBwYWQtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSnVtcCwgc3VjY2Vzc29yLT5hdCgwKS0+b3Jp
Z2luKCkpOworICAgICAgICAgICAgcGFkLT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhz
dWNjZXNzb3IpKTsKICAgICAgICAgICAgIHBhZC0+YWRkUHJlZGVjZXNzb3IoYmxvY2spOwogICAg
ICAgICAgICAgc3VjY2Vzc29yLT5yZXBsYWNlUHJlZGVjZXNzb3IoYmxvY2ssIHBhZCk7CiAgICAg
ICAgICAgICBzdWNjZXNzb3IgPSBwYWQ7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNDYXNlQ29sbGVjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzQ2FzZUNvbGxlY3Rpb24uY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzQ2FzZUNvbGxlY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
NDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkIzQ2FzZUNvbGxlY3Rpb24uaCIKKworI2lmIEVO
QUJMRShCM19KSVQpCisKKyNpbmNsdWRlICJCM0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oIgorI2lu
Y2x1ZGUgPHd0Zi9Db21tYVByaW50ZXIuaD4KKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBC
MyB7CisKK3ZvaWQgQ2FzZUNvbGxlY3Rpb246OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QK
K3sKKyAgICBDb21tYVByaW50ZXIgY29tbWE7CisgICAgZm9yIChTd2l0Y2hDYXNlIHN3aXRjaENh
c2UgOiAqdGhpcykKKyAgICAgICAgb3V0LnByaW50KGNvbW1hLCBzd2l0Y2hDYXNlKTsKKyAgICBv
dXQucHJpbnQoY29tbWEsICJkZWZhdWx0LT4iLCBmYWxsVGhyb3VnaCgpKTsKK30KKworfSB9IC8v
IG5hbWVzcGFjZSBKU0M6OkIzCisKKyNlbmRpZiAvLyBFTkFCTEUoQjNfSklUKQorCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDYXNlQ29sbGVjdGlvbi5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nhc2VDb2xsZWN0aW9uLmgJKHJldmlzaW9uIDAp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDYXNlQ29sbGVjdGlvbi5oCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMTIwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpZm5kZWYgQjNDYXNlQ29sbGVjdGlvbl9oCisjZGVmaW5lIEIzQ2Fz
ZUNvbGxlY3Rpb25faAorCisjaWYgRU5BQkxFKEIzX0pJVCkKKworI2luY2x1ZGUgIkIzU3dpdGNo
Q2FzZS5oIgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKKworY2xhc3MgQmFzaWNC
bG9jazsKK2NsYXNzIFN3aXRjaFZhbHVlOworCisvLyBOT1RFOiBZb3UnbGwgYWx3YXlzIHdhbnQg
dG8gaW5jbHVkZSBCM0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oIHdoZW4geW91IHVzZSB0aGlzLgor
CitjbGFzcyBDYXNlQ29sbGVjdGlvbiB7CitwdWJsaWM6CisgICAgQ2FzZUNvbGxlY3Rpb24oKQor
ICAgIHsKKyAgICB9CisgICAgCisgICAgQ2FzZUNvbGxlY3Rpb24oY29uc3QgU3dpdGNoVmFsdWUq
IHRlcm1pbmFsLCBjb25zdCBCYXNpY0Jsb2NrKiBvd25lcikKKyAgICAgICAgOiBtX3N3aXRjaCh0
ZXJtaW5hbCkKKyAgICAgICAgLCBtX293bmVyKG93bmVyKQorICAgIHsKKyAgICB9CisgICAgCisg
ICAgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBmYWxsVGhyb3VnaCgpIGNvbnN0OworCisgICAgdW5z
aWduZWQgc2l6ZSgpIGNvbnN0OworICAgIFN3aXRjaENhc2UgYXQodW5zaWduZWQgaW5kZXgpIGNv
bnN0OworICAgIAorICAgIFN3aXRjaENhc2Ugb3BlcmF0b3JbXSh1bnNpZ25lZCBpbmRleCkgY29u
c3QKKyAgICB7CisgICAgICAgIHJldHVybiBhdChpbmRleCk7CisgICAgfQorCisgICAgY2xhc3Mg
aXRlcmF0b3IgeworICAgIHB1YmxpYzoKKyAgICAgICAgaXRlcmF0b3IoKQorICAgICAgICAgICAg
OiBtX2NvbGxlY3Rpb24obnVsbHB0cikKKyAgICAgICAgICAgICwgbV9pbmRleCgwKQorICAgICAg
ICB7CisgICAgICAgIH0KKworICAgICAgICBpdGVyYXRvcihjb25zdCBDYXNlQ29sbGVjdGlvbiYg
Y29sbGVjdGlvbiwgdW5zaWduZWQgaW5kZXgpCisgICAgICAgICAgICA6IG1fY29sbGVjdGlvbigm
Y29sbGVjdGlvbikKKyAgICAgICAgICAgICwgbV9pbmRleChpbmRleCkKKyAgICAgICAgeworICAg
ICAgICB9CisKKyAgICAgICAgU3dpdGNoQ2FzZSBvcGVyYXRvciooKQorICAgICAgICB7CisgICAg
ICAgICAgICByZXR1cm4gbV9jb2xsZWN0aW9uLT5hdChtX2luZGV4KTsKKyAgICAgICAgfQorCisg
ICAgICAgIGl0ZXJhdG9yJiBvcGVyYXRvcisrKCkKKyAgICAgICAgeworICAgICAgICAgICAgbV9p
bmRleCsrOworICAgICAgICAgICAgcmV0dXJuICp0aGlzOworICAgICAgICB9CisKKyAgICAgICAg
Ym9vbCBvcGVyYXRvcj09KGNvbnN0IGl0ZXJhdG9yJiBvdGhlcikgY29uc3QKKyAgICAgICAgewor
ICAgICAgICAgICAgQVNTRVJUKG1fY29sbGVjdGlvbiA9PSBvdGhlci5tX2NvbGxlY3Rpb24pOwor
ICAgICAgICAgICAgcmV0dXJuIG1faW5kZXggPT0gb3RoZXIubV9pbmRleDsKKyAgICAgICAgfQor
CisgICAgICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBpdGVyYXRvciYgb3RoZXIpIGNvbnN0Cisg
ICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAhKCp0aGlzID09IG90aGVyKTsKKyAgICAgICAg
fQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgY29uc3QgQ2FzZUNvbGxlY3Rpb24qIG1fY29sbGVj
dGlvbjsKKyAgICAgICAgdW5zaWduZWQgbV9pbmRleDsKKyAgICB9OworCisgICAgdHlwZWRlZiBp
dGVyYXRvciBjb25zdF9pdGVyYXRvcjsKKworICAgIGl0ZXJhdG9yIGJlZ2luKCkgY29uc3QgeyBy
ZXR1cm4gaXRlcmF0b3IoKnRoaXMsIDApOyB9CisgICAgaXRlcmF0b3IgZW5kKCkgY29uc3QgeyBy
ZXR1cm4gaXRlcmF0b3IoKnRoaXMsIHNpemUoKSk7IH0KKyAgICAKKyAgICB2b2lkIGR1bXAoUHJp
bnRTdHJlYW0mKSBjb25zdDsKKyAgICAKK3ByaXZhdGU6CisgICAgY29uc3QgU3dpdGNoVmFsdWUq
IG1fc3dpdGNoIHsgbnVsbHB0ciB9OworICAgIGNvbnN0IEJhc2ljQmxvY2sqIG1fb3duZXIgeyBu
dWxscHRyIH07Cit9OworCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKKworI2VuZGlmIC8vIEVO
QUJMRShCM19KSVQpCisKKyNlbmRpZiAvLyBCM0Nhc2VDb2xsZWN0aW9uX2gKKwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2FzZUNvbGxlY3Rpb25JbmxpbmVzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2FzZUNvbGxlY3Rpb25JbmxpbmVzLmgJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDYXNlQ29sbGVjdGlv
bklubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgQjNDYXNlQ29sbGVjdGlv
bklubGluZXNfaAorI2RlZmluZSBCM0Nhc2VDb2xsZWN0aW9uSW5saW5lc19oCisKKyNpZiBFTkFC
TEUoQjNfSklUKQorCisjaW5jbHVkZSAiQjNDYXNlQ29sbGVjdGlvbi5oIgorI2luY2x1ZGUgIkIz
U3dpdGNoVmFsdWUuaCIKKyNpbmNsdWRlICJCM0Jhc2ljQmxvY2suaCIKKworbmFtZXNwYWNlIEpT
QyB7IG5hbWVzcGFjZSBCMyB7CisKK2lubGluZSBjb25zdCBGcmVxdWVudGVkQmxvY2smIENhc2VD
b2xsZWN0aW9uOjpmYWxsVGhyb3VnaCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fb3duZXItPmZh
bGxUaHJvdWdoKCk7Cit9CisKK2lubGluZSB1bnNpZ25lZCBDYXNlQ29sbGVjdGlvbjo6c2l6ZSgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc3dpdGNoLT5udW1DYXNlVmFsdWVzKCk7Cit9CisKK2lu
bGluZSBTd2l0Y2hDYXNlIENhc2VDb2xsZWN0aW9uOjphdCh1bnNpZ25lZCBpbmRleCkgY29uc3QK
K3sKKyAgICByZXR1cm4gU3dpdGNoQ2FzZShtX3N3aXRjaC0+Y2FzZVZhbHVlKGluZGV4KSwgbV9v
d25lci0+c3VjY2Vzc29yKGluZGV4KSk7Cit9CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMwor
CisjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKKworI2VuZGlmIC8vIEIzQ2FzZUNvbGxlY3Rpb25J
bmxpbmVzX2gKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2hlY2tTcGVjaWFs
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDaGVja1NwZWNp
YWwuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjND
aGVja1NwZWNpYWwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NCw3ICs4NCw3IEBAIENoZWNrU3Bl
Y2lhbDo6Q2hlY2tTcGVjaWFsKEFpcjo6T3Bjb2RlIG8KICAgICAsIG1fc3RhY2ttYXBSb2xlKHN0
YWNrbWFwUm9sZSkKICAgICAsIG1fbnVtQ2hlY2tBcmdzKG51bUFyZ3MpCiB7Ci0gICAgQVNTRVJU
KGlzVGVybWluYWwob3Bjb2RlKSk7CisgICAgQVNTRVJUKGlzRGVmaW5pdGVseVRlcm1pbmFsKG9w
Y29kZSkpOwogfQogCiBDaGVja1NwZWNpYWw6OkNoZWNrU3BlY2lhbChjb25zdCBDaGVja1NwZWNp
YWw6OktleSYga2V5KQpAQCAtMTAyLDYgKzEwMiw3IEBAIEluc3QgQ2hlY2tTcGVjaWFsOjpoaWRk
ZW5CcmFuY2goY29uc3QgSW4KICAgICBoaWRkZW5CcmFuY2guYXJncy5yZXNlcnZlSW5pdGlhbENh
cGFjaXR5KG1fbnVtQ2hlY2tBcmdzKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9u
dW1DaGVja0FyZ3M7ICsraSkKICAgICAgICAgaGlkZGVuQnJhbmNoLmFyZ3MuYXBwZW5kKGluc3Qu
YXJnc1tpICsgMV0pOworICAgIEFTU0VSVChoaWRkZW5CcmFuY2guaXNUZXJtaW5hbCgpKTsKICAg
ICByZXR1cm4gaGlkZGVuQnJhbmNoOwogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNDb21tb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjND
b21tb24uaAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
Q29tbW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsNiArMjgsOCBAQAogCiAjaWYgRU5BQkxFKEIzX0pJ
VCkKIAorI2luY2x1ZGUgIkpTRXhwb3J0TWFjcm9zLmgiCisKIG5hbWVzcGFjZSBKU0MgeyBuYW1l
c3BhY2UgQjMgewogCiBpbmxpbmUgYm9vbCBpczY0Qml0KCkgeyByZXR1cm4gc2l6ZW9mKHZvaWQq
KSA9PSA4OyB9CkBAIC0zOCw3ICs0MCw3IEBAIGVudW0gQjNDb21wbGl0YXRpb25Nb2RlIHsKICAg
ICBBaXJNb2RlCiB9OwogCi1ib29sIHNob3VsZER1bXBJUihCM0NvbXBsaXRhdGlvbk1vZGUpOwor
SlNfRVhQT1JUX1BSSVZBVEUgYm9vbCBzaG91bGREdW1wSVIoQjNDb21wbGl0YXRpb25Nb2RlKTsK
IGJvb2wgc2hvdWxkRHVtcElSQXRFYWNoUGhhc2UoQjNDb21wbGl0YXRpb25Nb2RlKTsKIGJvb2wg
c2hvdWxkVmFsaWRhdGVJUigpOwogYm9vbCBzaG91bGRWYWxpZGF0ZUlSQXRFYWNoUGhhc2UoKTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnRyb2xWYWx1ZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29udHJvbFZhbHVlLmNwcAkocmV2
aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29udHJvbFZhbHVl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw5NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu
Y2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCi0KLSNpZiBFTkFCTEUoQjNfSklUKQotCi0jaW5jbHVk
ZSAiQjNCYXNpY0Jsb2NrLmgiCi0KLW5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewotCi1D
b250cm9sVmFsdWU6On5Db250cm9sVmFsdWUoKQotewotfQotCi1ib29sIENvbnRyb2xWYWx1ZTo6
cmVwbGFjZVN1Y2Nlc3NvcihCYXNpY0Jsb2NrKiBmcm9tLCBCYXNpY0Jsb2NrKiB0bykKLXsKLSAg
ICBib29sIHJlc3VsdCA9IGZhbHNlOwotICAgIGZvciAoRnJlcXVlbnRlZEJsb2NrJiBzdWNjZXNz
b3IgOiBtX3N1Y2Nlc3NvcnMpIHsKLSAgICAgICAgaWYgKHN1Y2Nlc3Nvci5ibG9jaygpID09IGZy
b20pIHsKLSAgICAgICAgICAgIHN1Y2Nlc3Nvci5ibG9jaygpID0gdG87Ci0gICAgICAgICAgICBy
ZXN1bHQgPSB0cnVlOwotCi0gICAgICAgICAgICAvLyBLZWVwIGxvb3BpbmcgYmVjYXVzZSBpdCdz
IHZhbGlkIGZvciBhIHN1Y2Nlc3NvciB0byBiZSBtZW50aW9uZWQgbXVsdGlwbGUgdGltZXMsCi0g
ICAgICAgICAgICAvLyBsaWtlIGlmIG11bHRpcGxlIHN3aXRjaCBjYXNlcyBoYXZlIHRoZSBzYW1l
IHRhcmdldC4KLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi12b2lk
IENvbnRyb2xWYWx1ZTo6Y29udmVydFRvSnVtcChCYXNpY0Jsb2NrKiBkZXN0aW5hdGlvbikKLXsK
LSAgICB1bnNpZ25lZCBpbmRleCA9IHRoaXMtPmluZGV4KCk7Ci0gICAgT3JpZ2luIG9yaWdpbiA9
IHRoaXMtPm9yaWdpbigpOwotICAgIEJhc2ljQmxvY2sqIG93bmVyID0gdGhpcy0+b3duZXI7Ci0K
LSAgICB0aGlzLT5+Q29udHJvbFZhbHVlKCk7Ci0KLSAgICBuZXcgKHRoaXMpIENvbnRyb2xWYWx1
ZShKdW1wLCBvcmlnaW4sIEZyZXF1ZW50ZWRCbG9jayhkZXN0aW5hdGlvbikpOwotCi0gICAgdGhp
cy0+b3duZXIgPSBvd25lcjsKLSAgICB0aGlzLT5tX2luZGV4ID0gaW5kZXg7Ci19Ci0KLXZvaWQg
Q29udHJvbFZhbHVlOjpjb252ZXJ0VG9Pb3BzKCkKLXsKLSAgICB1bnNpZ25lZCBpbmRleCA9IHRo
aXMtPmluZGV4KCk7Ci0gICAgT3JpZ2luIG9yaWdpbiA9IHRoaXMtPm9yaWdpbigpOwotICAgIEJh
c2ljQmxvY2sqIG93bmVyID0gdGhpcy0+b3duZXI7Ci0KLSAgICB0aGlzLT5+Q29udHJvbFZhbHVl
KCk7Ci0KLSAgICBuZXcgKHRoaXMpIENvbnRyb2xWYWx1ZShPb3BzLCBvcmlnaW4pOwotCi0gICAg
dGhpcy0+b3duZXIgPSBvd25lcjsKLSAgICB0aGlzLT5tX2luZGV4ID0gaW5kZXg7Ci19Ci0KLXZv
aWQgQ29udHJvbFZhbHVlOjpkdW1wTWV0YShDb21tYVByaW50ZXImIGNvbW1hLCBQcmludFN0cmVh
bSYgb3V0KSBjb25zdAotewotICAgIGZvciAoRnJlcXVlbnRlZEJsb2NrIHN1Y2Nlc3NvciA6IG1f
c3VjY2Vzc29ycykKLSAgICAgICAgb3V0LnByaW50KGNvbW1hLCBzdWNjZXNzb3IpOwotfQotCi1W
YWx1ZSogQ29udHJvbFZhbHVlOjpjbG9uZUltcGwoKSBjb25zdAotewotICAgIHJldHVybiBuZXcg
Q29udHJvbFZhbHVlKCp0aGlzKTsKLX0KLQotfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzCi0KLSNl
bmRpZiAvLyBFTkFCTEUoQjNfSklUKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
Q29udHJvbFZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
Q29udHJvbFZhbHVlLmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0NvbnRyb2xWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE2MyArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
Ci0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRl
ZiBCM0NvbnRyb2xWYWx1ZV9oCi0jZGVmaW5lIEIzQ29udHJvbFZhbHVlX2gKLQotI2lmIEVOQUJM
RShCM19KSVQpCi0KLSNpbmNsdWRlICJCM0ZyZXF1ZW50ZWRCbG9jay5oIgotI2luY2x1ZGUgIkIz
U3VjY2Vzc29yQ29sbGVjdGlvbi5oIgotI2luY2x1ZGUgIkIzVmFsdWUuaCIKLQotbmFtZXNwYWNl
IEpTQyB7IG5hbWVzcGFjZSBCMyB7Ci0KLWNsYXNzIEJhc2ljQmxvY2s7Ci0KLWNsYXNzIEpTX0VY
UE9SVF9QUklWQVRFIENvbnRyb2xWYWx1ZSA6IHB1YmxpYyBWYWx1ZSB7Ci1wdWJsaWM6Ci0gICAg
c3RhdGljIGJvb2wgYWNjZXB0cyhPcGNvZGUgb3Bjb2RlKQotICAgIHsKLSAgICAgICAgc3dpdGNo
IChvcGNvZGUpIHsKLSAgICAgICAgY2FzZSBKdW1wOgotICAgICAgICBjYXNlIEJyYW5jaDoKLSAg
ICAgICAgY2FzZSBSZXR1cm46Ci0gICAgICAgIGNhc2UgT29wczoKLSAgICAgICAgICAgIHJldHVy
biB0cnVlOwotICAgICAgICBjYXNlIFN3aXRjaDogCi0gICAgICAgICAgICAvLyBUaGlzIGlzIGhl
cmUgYmVjYXVzZSBTd2l0Y2hWYWx1ZSBpcyBhIHN1YmNsYXNzIG9mIENvbnRyb2xWYWx1ZSwgc28g
d2Ugd2FudAotICAgICAgICAgICAgLy8gc3dpdGNoVmFsdWUtPmFzPENvbnRyb2xWYWx1ZT4oKSB0
byByZXR1cm4gbm9uLW51bGwuCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgZGVm
YXVsdDoKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgIH0KLQotICAg
IHR5cGVkZWYgVmVjdG9yPEZyZXF1ZW50ZWRCbG9jaywgMj4gU3VjY2Vzc29yTGlzdDsKLQotICAg
IH5Db250cm9sVmFsdWUoKTsKLQotICAgIHVuc2lnbmVkIG51bVN1Y2Nlc3NvcnMoKSBjb25zdCB7
IHJldHVybiBtX3N1Y2Nlc3NvcnMuc2l6ZSgpOyB9Ci0gICAgY29uc3QgRnJlcXVlbnRlZEJsb2Nr
JiBzdWNjZXNzb3IodW5zaWduZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fc3VjY2Vzc29yc1tp
bmRleF07IH0KLSAgICBGcmVxdWVudGVkQmxvY2smIHN1Y2Nlc3Nvcih1bnNpZ25lZCBpbmRleCkg
eyByZXR1cm4gbV9zdWNjZXNzb3JzW2luZGV4XTsgfQotICAgIGNvbnN0IFN1Y2Nlc3Nvckxpc3Qm
IHN1Y2Nlc3NvcnMoKSBjb25zdCB7IHJldHVybiBtX3N1Y2Nlc3NvcnM7IH0KLSAgICBTdWNjZXNz
b3JMaXN0JiBzdWNjZXNzb3JzKCkgeyByZXR1cm4gbV9zdWNjZXNzb3JzOyB9Ci0KLSAgICBCYXNp
Y0Jsb2NrKiBzdWNjZXNzb3JCbG9jayh1bnNpZ25lZCBpbmRleCkgY29uc3QgeyByZXR1cm4gc3Vj
Y2Vzc29yKGluZGV4KS5ibG9jaygpOyB9Ci0gICAgQmFzaWNCbG9jayomIHN1Y2Nlc3NvckJsb2Nr
KHVuc2lnbmVkIGluZGV4KSB7IHJldHVybiBzdWNjZXNzb3IoaW5kZXgpLmJsb2NrKCk7IH0KLSAg
ICBTdWNjZXNzb3JDb2xsZWN0aW9uPEJhc2ljQmxvY2ssIFN1Y2Nlc3Nvckxpc3Q+IHN1Y2Nlc3Nv
ckJsb2NrcygpCi0gICAgewotICAgICAgICByZXR1cm4gU3VjY2Vzc29yQ29sbGVjdGlvbjxCYXNp
Y0Jsb2NrLCBTdWNjZXNzb3JMaXN0PihzdWNjZXNzb3JzKCkpOwotICAgIH0KLSAgICBTdWNjZXNz
b3JDb2xsZWN0aW9uPGNvbnN0IEJhc2ljQmxvY2ssIGNvbnN0IFN1Y2Nlc3Nvckxpc3Q+IHN1Y2Nl
c3NvckJsb2NrcygpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gU3VjY2Vzc29yQ29sbGVj
dGlvbjxjb25zdCBCYXNpY0Jsb2NrLCBjb25zdCBTdWNjZXNzb3JMaXN0PihzdWNjZXNzb3JzKCkp
OwotICAgIH0KLQotICAgIGJvb2wgcmVwbGFjZVN1Y2Nlc3NvcihCYXNpY0Jsb2NrKiBmcm9tLCBC
YXNpY0Jsb2NrKiB0byk7Ci0KLSAgICBjb25zdCBGcmVxdWVudGVkQmxvY2smIHRha2VuKCkgY29u
c3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChvcGNvZGUoKSA9PSBKdW1wIHx8IG9wY29kZSgpID09
IEJyYW5jaCk7Ci0gICAgICAgIHJldHVybiBzdWNjZXNzb3IoMCk7Ci0gICAgfQotICAgIEZyZXF1
ZW50ZWRCbG9jayYgdGFrZW4oKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG9wY29kZSgpID09IEp1
bXAgfHwgb3Bjb2RlKCkgPT0gQnJhbmNoKTsKLSAgICAgICAgcmV0dXJuIHN1Y2Nlc3NvcigwKTsK
LSAgICB9Ci0gICAgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBub3RUYWtlbigpIGNvbnN0Ci0gICAg
ewotICAgICAgICBBU1NFUlQob3Bjb2RlKCkgPT0gQnJhbmNoKTsKLSAgICAgICAgcmV0dXJuIHN1
Y2Nlc3NvcigxKTsKLSAgICB9Ci0gICAgRnJlcXVlbnRlZEJsb2NrJiBub3RUYWtlbigpCi0gICAg
ewotICAgICAgICBBU1NFUlQob3Bjb2RlKCkgPT0gQnJhbmNoKTsKLSAgICAgICAgcmV0dXJuIHN1
Y2Nlc3NvcigxKTsKLSAgICB9Ci0KLSAgICB2b2lkIGNvbnZlcnRUb0p1bXAoQmFzaWNCbG9jayog
ZGVzdGluYXRpb24pOwotICAgIHZvaWQgY29udmVydFRvT29wcygpOwotCi1wcm90ZWN0ZWQ6Ci0g
ICAgdm9pZCBkdW1wTWV0YShDb21tYVByaW50ZXImLCBQcmludFN0cmVhbSYpIGNvbnN0IG92ZXJy
aWRlOwotCi0gICAgVmFsdWUqIGNsb25lSW1wbCgpIGNvbnN0IG92ZXJyaWRlOwotCi0gICAgLy8g
VXNlIHRoaXMgZm9yIHN1YmNsYXNzZXMuCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJndW1l
bnRzPgotICAgIENvbnRyb2xWYWx1ZShPcGNvZGUgb3Bjb2RlLCBUeXBlIHR5cGUsIE9yaWdpbiBv
cmlnaW4sIEFyZ3VtZW50cy4uLiBhcmd1bWVudHMpCi0gICAgICAgIDogVmFsdWUoQ2hlY2tlZE9w
Y29kZSwgb3Bjb2RlLCB0eXBlLCBvcmlnaW4sIGFyZ3VtZW50cy4uLikKLSAgICB7Ci0gICAgICAg
IEFTU0VSVChhY2NlcHRzKG9wY29kZSkpOwotICAgIH0KLQotICAgIC8vIFN1YmNsYXNzZXMgd2ls
bCBwb3B1bGF0ZSB0aGlzLgotICAgIFN1Y2Nlc3Nvckxpc3QgbV9zdWNjZXNzb3JzOwotCi1wcml2
YXRlOgotICAgIGZyaWVuZCBjbGFzcyBQcm9jZWR1cmU7Ci0KLSAgICAvLyBVc2UgdGhpcyBmb3Ig
T29wcy4KLSAgICBDb250cm9sVmFsdWUoT3Bjb2RlIG9wY29kZSwgT3JpZ2luIG9yaWdpbikKLSAg
ICAgICAgOiBWYWx1ZShDaGVja2VkT3Bjb2RlLCBvcGNvZGUsIFZvaWQsIG9yaWdpbikKLSAgICB7
Ci0gICAgICAgIEFTU0VSVChvcGNvZGUgPT0gT29wcyk7Ci0gICAgfQotCi0gICAgLy8gVXNlIHRo
aXMgZm9yIFJldHVybi4KLSAgICBDb250cm9sVmFsdWUoT3Bjb2RlIG9wY29kZSwgT3JpZ2luIG9y
aWdpbiwgVmFsdWUqIHJlc3VsdCkKLSAgICAgICAgOiBWYWx1ZShDaGVja2VkT3Bjb2RlLCBvcGNv
ZGUsIFZvaWQsIG9yaWdpbiwgcmVzdWx0KQotICAgIHsKLSAgICAgICAgQVNTRVJUKG9wY29kZSA9
PSBSZXR1cm4pOwotICAgIH0KLQotICAgIC8vIFVzZSB0aGlzIGZvciBKdW1wLgotICAgIENvbnRy
b2xWYWx1ZShPcGNvZGUgb3Bjb2RlLCBPcmlnaW4gb3JpZ2luLCBjb25zdCBGcmVxdWVudGVkQmxv
Y2smIHRhcmdldCkKLSAgICAgICAgOiBWYWx1ZShDaGVja2VkT3Bjb2RlLCBvcGNvZGUsIFZvaWQs
IG9yaWdpbikKLSAgICB7Ci0gICAgICAgIEFTU0VSVChvcGNvZGUgPT0gSnVtcCk7Ci0gICAgICAg
IG1fc3VjY2Vzc29ycy5hcHBlbmQodGFyZ2V0KTsKLSAgICB9Ci0KLSAgICAvLyBVc2UgdGhpcyBm
b3IgQnJhbmNoLgotICAgIENvbnRyb2xWYWx1ZSgKLSAgICAgICAgT3Bjb2RlIG9wY29kZSwgT3Jp
Z2luIG9yaWdpbiwgVmFsdWUqIHByZWRpY2F0ZSwKLSAgICAgICAgY29uc3QgRnJlcXVlbnRlZEJs
b2NrJiB5ZXMsIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgbm8pCi0gICAgICAgIDogVmFsdWUoQ2hl
Y2tlZE9wY29kZSwgb3Bjb2RlLCBWb2lkLCBvcmlnaW4sIHByZWRpY2F0ZSkKLSAgICB7Ci0gICAg
ICAgIEFTU0VSVChvcGNvZGUgPT0gQnJhbmNoKTsKLSAgICAgICAgbV9zdWNjZXNzb3JzLmFwcGVu
ZCh5ZXMpOwotICAgICAgICBtX3N1Y2Nlc3NvcnMuYXBwZW5kKG5vKTsKLSAgICB9Ci19OwotCi19
IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKLQotI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCi0KLSNl
bmRpZiAvLyBCM0NvbnRyb2xWYWx1ZV9oCi0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM0RhdGFTZWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNEYXRhU2VjdGlvbi5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0RhdGFTZWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMSw3ICszMSw3IEBA
CiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIAogRGF0YVNlY3Rpb246OkRhdGFTZWN0
aW9uKHNpemVfdCBzaXplKQotICAgIDogbV9kYXRhKGZhc3RNYWxsb2Moc2l6ZSkpCisgICAgOiBt
X2RhdGEoZmFzdFplcm9lZE1hbGxvYyhzaXplKSkKICAgICAsIG1fc2l6ZShzaXplKQogewogfQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRHVwbGljYXRlVGFpbHMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0R1cGxpY2F0ZVRhaWxzLmNwcAko
cmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRHVwbGljYXRl
VGFpbHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw2IEBACiAKICNpbmNsdWRlICJC
M0Jhc2ljQmxvY2tJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNCcmVha0NyaXRpY2FsRWRnZXMuaCIK
LSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzRG9taW5hdG9ycy5oIgog
I2luY2x1ZGUgIkIzRml4U1NBLmgiCiAjaW5jbHVkZSAiQjNJbmRleFNldC5oIgpAQCAtNzIsOSAr
NzEsMTAgQEAgcHVibGljOgogICAgICAgICBJbmRleFNldDxCYXNpY0Jsb2NrPiBjYW5kaWRhdGVz
OwogCiAgICAgICAgIGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiBtX3Byb2MpIHsKLSAgICAgICAg
ICAgIGlmIChibG9jay0+c2l6ZSgpID4gbV9tYXhTaXplIHx8IGJsb2NrLT5udW1TdWNjZXNzb3Jz
KCkgPiBtX21heFN1Y2Nlc3NvcnMpCisgICAgICAgICAgICBpZiAoYmxvY2stPnNpemUoKSA+IG1f
bWF4U2l6ZQorICAgICAgICAgICAgICAgIHx8IGJsb2NrLT5udW1TdWNjZXNzb3JzKCkgPiBtX21h
eFN1Y2Nlc3NvcnMpCiAgICAgICAgICAgICAgICAgY29udGludWU7Ci0KKyAgICAgICAgICAgIAog
ICAgICAgICAgICAgY2FuZGlkYXRlcy5hZGQoYmxvY2spOwogICAgICAgICB9CiAKQEAgLTk3LDEx
ICs5NywxMCBAQCBwdWJsaWM6CiAgICAgICAgIH0KIAogICAgICAgICBmb3IgKEJhc2ljQmxvY2sq
IGJsb2NrIDogbV9wcm9jKSB7Ci0gICAgICAgICAgICBDb250cm9sVmFsdWUqIGp1bXAgPSBibG9j
ay0+bGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCk7Ci0gICAgICAgICAgICBpZiAoanVtcC0+b3Bj
b2RlKCkgIT0gSnVtcCkKKyAgICAgICAgICAgIGlmIChibG9jay0+bGFzdCgpLT5vcGNvZGUgIT0g
SnVtcCkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICAgICAgQmFzaWNCbG9j
ayogdGFpbCA9IGp1bXAtPnN1Y2Nlc3NvckJsb2NrKDApOworICAgICAgICAgICAgQmFzaWNCbG9j
ayogdGFpbCA9IGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKTsKICAgICAgICAgICAgIGlmICghY2Fu
ZGlkYXRlcy5jb250YWlucyh0YWlsKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIApAQCAt
MTMwLDYgKzEyOSw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgbWFwLmFkZCh2YWx1
ZSwgY2xvbmUpOwogICAgICAgICAgICAgICAgIGJsb2NrLT5hcHBlbmQoY2xvbmUpOwogICAgICAg
ICAgICAgfQorICAgICAgICAgICAgYmxvY2stPnN1Y2Nlc3NvcnMoKSA9IHRhaWwtPnN1Y2Nlc3Nv
cnMoKTsKICAgICAgICAgfQogCiAgICAgICAgIG1fcHJvYy5yZXNldFJlYWNoYWJpbGl0eSgpOwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRml4U1NBLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNGaXhTU0EuY3BwCShyZXZpc2lvbiAyMDI4MDkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNGaXhTU0EuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMCw3ICszMCw2IEBACiAKICNpbmNsdWRlICJCM0Jhc2ljQmxvY2tJbmxpbmVzLmgiCiAj
aW5jbHVkZSAiQjNCcmVha0NyaXRpY2FsRWRnZXMuaCIKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1
ZS5oIgogI2luY2x1ZGUgIkIzRG9taW5hdG9ycy5oIgogI2luY2x1ZGUgIkIzSW5kZXhTZXQuaCIK
ICNpbmNsdWRlICJCM0luc2VydGlvblNldElubGluZXMuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0ZvbGRQYXRoQ29uc3RhbnRzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNGb2xkUGF0aENvbnN0YW50cy5jcHAJKHJldmlzaW9uIDIwMjgw
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0ZvbGRQYXRoQ29uc3RhbnRzLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNiBAQAogI2lmIEVOQUJMRShCM19KSVQpCiAKICNp
bmNsdWRlICJCM0Jhc2ljQmxvY2tJbmxpbmVzLmgiCi0jaW5jbHVkZSAiQjNDb250cm9sVmFsdWUu
aCIKICNpbmNsdWRlICJCM0RvbWluYXRvcnMuaCIKICNpbmNsdWRlICJCM0luc2VydGlvblNldElu
bGluZXMuaCIKICNpbmNsdWRlICJCM1BoYXNlU2NvcGUuaCIKQEAgLTg3LDI0ICs4NiwyNCBAQCBw
dWJsaWM6CiAgICAgICAgIH07CiAgICAgICAgIAogICAgICAgICBmb3IgKEJhc2ljQmxvY2sqIGJs
b2NrIDogbV9wcm9jKSB7Ci0gICAgICAgICAgICBDb250cm9sVmFsdWUqIGJyYW5jaCA9IGJsb2Nr
LT5sYXN0KCktPmFzPENvbnRyb2xWYWx1ZT4oKTsKKyAgICAgICAgICAgIFZhbHVlKiBicmFuY2gg
PSBibG9jay0+bGFzdCgpOwogICAgICAgICAgICAgc3dpdGNoIChicmFuY2gtPm9wY29kZSgpKSB7
CiAgICAgICAgICAgICBjYXNlIEJyYW5jaDoKLSAgICAgICAgICAgICAgICBpZiAoYnJhbmNoLT5z
dWNjZXNzb3JCbG9jaygwKSA9PSBicmFuY2gtPnN1Y2Nlc3NvckJsb2NrKDEpKQorICAgICAgICAg
ICAgICAgIGlmIChibG9jay0+c3VjY2Vzc29yQmxvY2soMCkgPT0gYmxvY2stPnN1Y2Nlc3NvckJs
b2NrKDEpKQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICBh
ZGRPdmVycmlkZSgKICAgICAgICAgICAgICAgICAgICAgYmxvY2ssIGJyYW5jaC0+Y2hpbGQoMCks
Ci0gICAgICAgICAgICAgICAgICAgIE92ZXJyaWRlOjpub25aZXJvKGJyYW5jaC0+c3VjY2Vzc29y
QmxvY2soMCkpKTsKKyAgICAgICAgICAgICAgICAgICAgT3ZlcnJpZGU6Om5vblplcm8oYmxvY2st
PnN1Y2Nlc3NvckJsb2NrKDApKSk7CiAgICAgICAgICAgICAgICAgYWRkT3ZlcnJpZGUoCiAgICAg
ICAgICAgICAgICAgICAgIGJsb2NrLCBicmFuY2gtPmNoaWxkKDApLAotICAgICAgICAgICAgICAg
ICAgICBPdmVycmlkZTo6Y29uc3RhbnQoYnJhbmNoLT5zdWNjZXNzb3JCbG9jaygxKSwgMCkpOwor
ICAgICAgICAgICAgICAgICAgICBPdmVycmlkZTo6Y29uc3RhbnQoYmxvY2stPnN1Y2Nlc3NvckJs
b2NrKDEpLCAwKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIFN3
aXRjaDogewogICAgICAgICAgICAgICAgIEhhc2hNYXA8QmFzaWNCbG9jayosIHVuc2lnbmVkPiB0
YXJnZXRVc2VzOwotICAgICAgICAgICAgICAgIGZvciAoY29uc3QgU3dpdGNoQ2FzZSYgc3dpdGNo
Q2FzZSA6ICpicmFuY2gtPmFzPFN3aXRjaFZhbHVlPigpKQorICAgICAgICAgICAgICAgIGZvciAo
Y29uc3QgU3dpdGNoQ2FzZSYgc3dpdGNoQ2FzZSA6IGJyYW5jaC0+YXM8U3dpdGNoVmFsdWU+KCkt
PmNhc2VzKGJsb2NrKSkKICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0VXNlcy5hZGQoc3dpdGNo
Q2FzZS50YXJnZXRCbG9jaygpLCAwKS5pdGVyYXRvci0+dmFsdWUrKzsKIAotICAgICAgICAgICAg
ICAgIGZvciAoY29uc3QgU3dpdGNoQ2FzZSYgc3dpdGNoQ2FzZSA6ICpicmFuY2gtPmFzPFN3aXRj
aFZhbHVlPigpKSB7CisgICAgICAgICAgICAgICAgZm9yIChjb25zdCBTd2l0Y2hDYXNlJiBzd2l0
Y2hDYXNlIDogYnJhbmNoLT5hczxTd2l0Y2hWYWx1ZT4oKS0+Y2FzZXMoYmxvY2spKSB7CiAgICAg
ICAgICAgICAgICAgICAgIGlmICh0YXJnZXRVc2VzLmZpbmQoc3dpdGNoQ2FzZS50YXJnZXRCbG9j
aygpKS0+dmFsdWUgIT0gMSkKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCkBA
IC0xNTgsOSArMTU3LDggQEAgcHVibGljOgogCiAgICAgICAgICAgICAgICAgc3dpdGNoICh2YWx1
ZS0+b3Bjb2RlKCkpIHsKICAgICAgICAgICAgICAgICBjYXNlIEJyYW5jaDogewotICAgICAgICAg
ICAgICAgICAgICBDb250cm9sVmFsdWUqIGJyYW5jaCA9IHZhbHVlLT5hczxDb250cm9sVmFsdWU+
KCk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChnZXRPdmVycmlkZShibG9jaywgYnJhbmNoLT5j
aGlsZCgwKSkuaXNOb25aZXJvKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmFuY2gtPmNv
bnZlcnRUb0p1bXAoYnJhbmNoLT50YWtlbigpLmJsb2NrKCkpOworICAgICAgICAgICAgICAgICAg
ICAgICAgdmFsdWUtPnJlcGxhY2VXaXRoSnVtcChibG9jaywgYmxvY2stPnRha2VuKCkpOwogICAg
ICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNMb3dlck1hY3Jvcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzTG93ZXJNYWNyb3MuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNMb3dlck1hY3Jvcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsMTcgKzI4
LDIxIEBACiAKICNpZiBFTkFCTEUoQjNfSklUKQogCisjaW5jbHVkZSAiQWxsb3dNYWNyb1NjcmF0
Y2hSZWdpc3RlclVzYWdlLmgiCiAjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrSW5saW5lcy5oIgogI2lu
Y2x1ZGUgIkIzQmxvY2tJbnNlcnRpb25TZXQuaCIKICNpbmNsdWRlICJCM0NDYWxsVmFsdWUuaCIK
ICNpbmNsdWRlICJCM0NvbnN0UHRyVmFsdWUuaCIKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5o
IgogI2luY2x1ZGUgIkIzSW5zZXJ0aW9uU2V0SW5saW5lcy5oIgorI2luY2x1ZGUgIkIzTWVtb3J5
VmFsdWUuaCIKKyNpbmNsdWRlICJCM1BhdGNocG9pbnRWYWx1ZS5oIgogI2luY2x1ZGUgIkIzUGhh
c2VTY29wZS5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJlSW5saW5lcy5oIgorI2luY2x1ZGUgIkIz
U3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmgiCiAjaW5jbHVkZSAiQjNTd2l0Y2hWYWx1ZS5oIgog
I2luY2x1ZGUgIkIzVXBzaWxvblZhbHVlLmgiCiAjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIK
KyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKICNpbmNsdWRlIDxjbWF0aD4KIAogbmFtZXNwYWNl
IEpTQyB7IG5hbWVzcGFjZSBCMyB7CkBAIC0xMTgsOCArMTIyLDggQEAgcHJpdmF0ZToKICAgICAg
ICAgICAgICAgICAgICAgQmFzaWNCbG9jayogemVyb0RlbkNhc2UgPSBtX2Jsb2NrSW5zZXJ0aW9u
U2V0Lmluc2VydEJlZm9yZShtX2Jsb2NrKTsKICAgICAgICAgICAgICAgICAgICAgQmFzaWNCbG9j
ayogbm9ybWFsTW9kQ2FzZSA9IG1fYmxvY2tJbnNlcnRpb25TZXQuaW5zZXJ0QmVmb3JlKG1fYmxv
Y2spOwogCi0gICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+cmVwbGFjZUxhc3RXaXRoTmV3PENv
bnRyb2xWYWx1ZT4oCi0gICAgICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIEJyYW5jaCwgbV9v
cmlnaW4sIG1fdmFsdWUtPmNoaWxkKDEpLAorICAgICAgICAgICAgICAgICAgICBiZWZvcmUtPnJl
cGxhY2VMYXN0V2l0aE5ldzxWYWx1ZT4obV9wcm9jLCBCcmFuY2gsIG1fb3JpZ2luLCBtX3ZhbHVl
LT5jaGlsZCgxKSk7CisgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+c2V0U3VjY2Vzc29ycygK
ICAgICAgICAgICAgICAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhub3JtYWxNb2RDYXNlLCBG
cmVxdWVuY3lDbGFzczo6Tm9ybWFsKSwKICAgICAgICAgICAgICAgICAgICAgICAgIEZyZXF1ZW50
ZWRCbG9jayh6ZXJvRGVuQ2FzZSwgRnJlcXVlbmN5Q2xhc3M6OlJhcmUpKTsKIApAQCAtMTI3LDEy
ICsxMzEsMTQgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgVmFsdWUqIG11bHRpcGxp
ZWRCYWNrID0gbm9ybWFsTW9kQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIE11bCwgbV9v
cmlnaW4sIGRpdlJlc3VsdCwgbV92YWx1ZS0+Y2hpbGQoMSkpOwogICAgICAgICAgICAgICAgICAg
ICBWYWx1ZSogcmVzdWx0ID0gbm9ybWFsTW9kQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2Ms
IFN1YiwgbV9vcmlnaW4sIG1fdmFsdWUtPmNoaWxkKDApLCBtdWx0aXBsaWVkQmFjayk7CiAgICAg
ICAgICAgICAgICAgICAgIFVwc2lsb25WYWx1ZSogbm9ybWFsUmVzdWx0ID0gbm9ybWFsTW9kQ2Fz
ZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4obV9wcm9jLCBtX29yaWdpbiwgcmVzdWx0KTsKLSAg
ICAgICAgICAgICAgICAgICAgbm9ybWFsTW9kQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
bV9wcm9jLCBKdW1wLCBtX29yaWdpbiwgRnJlcXVlbnRlZEJsb2NrKG1fYmxvY2spKTsKKyAgICAg
ICAgICAgICAgICAgICAgbm9ybWFsTW9kQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIEp1
bXAsIG1fb3JpZ2luKTsKKyAgICAgICAgICAgICAgICAgICAgbm9ybWFsTW9kQ2FzZS0+c2V0U3Vj
Y2Vzc29ycyhGcmVxdWVudGVkQmxvY2sobV9ibG9jaykpOwogCiAgICAgICAgICAgICAgICAgICAg
IFVwc2lsb25WYWx1ZSogemVyb1Jlc3VsdCA9IHplcm9EZW5DYXNlLT5hcHBlbmROZXc8VXBzaWxv
blZhbHVlPigKICAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgbV9vcmlnaW4sCiAgICAg
ICAgICAgICAgICAgICAgICAgICB6ZXJvRGVuQ2FzZS0+YXBwZW5kSW50Q29uc3RhbnQobV9wcm9j
LCBtX3ZhbHVlLCAwKSk7Ci0gICAgICAgICAgICAgICAgICAgIHplcm9EZW5DYXNlLT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihtX3Byb2MsIEp1bXAsIG1fb3JpZ2luLCBGcmVxdWVudGVkQmxvY2so
bV9ibG9jaykpOworICAgICAgICAgICAgICAgICAgICB6ZXJvRGVuQ2FzZS0+YXBwZW5kTmV3PFZh
bHVlPihtX3Byb2MsIEp1bXAsIG1fb3JpZ2luKTsKKyAgICAgICAgICAgICAgICAgICAgemVyb0Rl
bkNhc2UtPnNldFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2NrKG1fYmxvY2spKTsKIAogICAgICAg
ICAgICAgICAgICAgICBWYWx1ZSogcGhpID0gbV9pbnNlcnRpb25TZXQuaW5zZXJ0PFZhbHVlPiht
X2luZGV4LCBQaGksIG1fdmFsdWUtPnR5cGUoKSwgbV9vcmlnaW4pOwogICAgICAgICAgICAgICAg
ICAgICBub3JtYWxSZXN1bHQtPnNldFBoaShwaGkpOwpAQCAtMTQ3LDcgKzE1Myw3IEBAIHByaXZh
dGU6CiAgICAgICAgICAgICBjYXNlIFN3aXRjaDogewogICAgICAgICAgICAgICAgIFN3aXRjaFZh
bHVlKiBzd2l0Y2hWYWx1ZSA9IG1fdmFsdWUtPmFzPFN3aXRjaFZhbHVlPigpOwogICAgICAgICAg
ICAgICAgIFZlY3RvcjxTd2l0Y2hDYXNlPiBjYXNlczsKLSAgICAgICAgICAgICAgICBmb3IgKGNv
bnN0IFN3aXRjaENhc2UmIHN3aXRjaENhc2UgOiAqc3dpdGNoVmFsdWUpCisgICAgICAgICAgICAg
ICAgZm9yIChjb25zdCBTd2l0Y2hDYXNlJiBzd2l0Y2hDYXNlIDogc3dpdGNoVmFsdWUtPmNhc2Vz
KG1fYmxvY2spKQogICAgICAgICAgICAgICAgICAgICBjYXNlcy5hcHBlbmQoc3dpdGNoQ2FzZSk7
CiAgICAgICAgICAgICAgICAgc3RkOjpzb3J0KAogICAgICAgICAgICAgICAgICAgICBjYXNlcy5i
ZWdpbigpLCBjYXNlcy5lbmQoKSwKQEAgLTIxMCwyNyArMjE2LDI3IEBAIHByaXZhdGU6CiAgICAg
ICAgIEJhc2ljQmxvY2sqIG5lZzFEZW5DYXNlID0gbV9ibG9ja0luc2VydGlvblNldC5pbnNlcnRC
ZWZvcmUobV9ibG9jayk7CiAgICAgICAgIEJhc2ljQmxvY2sqIGludE1pbkNhc2UgPSBtX2Jsb2Nr
SW5zZXJ0aW9uU2V0Lmluc2VydEJlZm9yZShtX2Jsb2NrKTsKIAotICAgICAgICBiZWZvcmUtPnJl
cGxhY2VMYXN0V2l0aE5ldzxDb250cm9sVmFsdWU+KAotICAgICAgICAgICAgbV9wcm9jLCBCcmFu
Y2gsIG1fb3JpZ2luLCBpc0Rlbk9LLAorICAgICAgICBiZWZvcmUtPnJlcGxhY2VMYXN0V2l0aE5l
dzxWYWx1ZT4obV9wcm9jLCBCcmFuY2gsIG1fb3JpZ2luLCBpc0Rlbk9LKTsKKyAgICAgICAgYmVm
b3JlLT5zZXRTdWNjZXNzb3JzKAogICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKG5vcm1hbERp
dkNhc2UsIEZyZXF1ZW5jeUNsYXNzOjpOb3JtYWwpLAogICAgICAgICAgICAgRnJlcXVlbnRlZEJs
b2NrKHNoYWR5RGVuQ2FzZSwgRnJlcXVlbmN5Q2xhc3M6OlJhcmUpKTsKIAogICAgICAgICBVcHNp
bG9uVmFsdWUqIG5vcm1hbFJlc3VsdCA9IG5vcm1hbERpdkNhc2UtPmFwcGVuZE5ldzxVcHNpbG9u
VmFsdWU+KAogICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwKICAgICAgICAgICAgIG5vcm1h
bERpdkNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBub25DaGlsbE9wY29kZSwgbV9vcmln
aW4sIG51bSwgZGVuKSk7Ci0gICAgICAgIG5vcm1hbERpdkNhc2UtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAotICAgICAgICAgICAgbV9wcm9jLCBKdW1wLCBtX29yaWdpbiwgRnJlcXVlbnRlZEJs
b2NrKG1fYmxvY2spKTsKKyAgICAgICAgbm9ybWFsRGl2Q2FzZS0+YXBwZW5kTmV3PFZhbHVlPiht
X3Byb2MsIEp1bXAsIG1fb3JpZ2luKTsKKyAgICAgICAgbm9ybWFsRGl2Q2FzZS0+c2V0U3VjY2Vz
c29ycyhGcmVxdWVudGVkQmxvY2sobV9ibG9jaykpOwogCi0gICAgICAgIHNoYWR5RGVuQ2FzZS0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCi0gICAgICAgICAgICBtX3Byb2MsIEJyYW5jaCwgbV9v
cmlnaW4sIGRlbiwKKyAgICAgICAgc2hhZHlEZW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJv
YywgQnJhbmNoLCBtX29yaWdpbiwgZGVuKTsKKyAgICAgICAgc2hhZHlEZW5DYXNlLT5zZXRTdWNj
ZXNzb3JzKAogICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKG5lZzFEZW5DYXNlLCBGcmVxdWVu
Y3lDbGFzczo6Tm9ybWFsKSwKICAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh6ZXJvRGVuQ2Fz
ZSwgRnJlcXVlbmN5Q2xhc3M6OlJhcmUpKTsKIAogICAgICAgICBVcHNpbG9uVmFsdWUqIHplcm9S
ZXN1bHQgPSB6ZXJvRGVuQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4oCiAgICAgICAgICAg
ICBtX3Byb2MsIG1fb3JpZ2luLAogICAgICAgICAgICAgemVyb0RlbkNhc2UtPmFwcGVuZEludENv
bnN0YW50KG1fcHJvYywgbV92YWx1ZSwgMCkpOwotICAgICAgICB6ZXJvRGVuQ2FzZS0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCi0gICAgICAgICAgICBtX3Byb2MsIEp1bXAsIG1fb3JpZ2luLCBG
cmVxdWVudGVkQmxvY2sobV9ibG9jaykpOworICAgICAgICB6ZXJvRGVuQ2FzZS0+YXBwZW5kTmV3
PFZhbHVlPihtX3Byb2MsIEp1bXAsIG1fb3JpZ2luKTsKKyAgICAgICAgemVyb0RlbkNhc2UtPnNl
dFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2NrKG1fYmxvY2spKTsKIAogICAgICAgICBpbnQ2NF90
IGJhZE51bWVyYXRvckNvbnN0ID0gMDsKICAgICAgICAgc3dpdGNoIChtX3ZhbHVlLT50eXBlKCkp
IHsKQEAgLTI0OCwxOCArMjU0LDE5IEBAIHByaXZhdGU6CiAgICAgICAgIFZhbHVlKiBiYWROdW1l
cmF0b3IgPQogICAgICAgICAgICAgbmVnMURlbkNhc2UtPmFwcGVuZEludENvbnN0YW50KG1fcHJv
YywgbV92YWx1ZSwgYmFkTnVtZXJhdG9yQ29uc3QpOwogCi0gICAgICAgIG5lZzFEZW5DYXNlLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgbmVnMURlbkNhc2UtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBtX3Byb2MsIEJyYW5jaCwgbV9vcmlnaW4sCiAgICAgICAgICAg
ICBuZWcxRGVuQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPigKLSAgICAgICAgICAgICAgICBtX3Byb2Ms
IEVxdWFsLCBtX29yaWdpbiwgbnVtLCBiYWROdW1lcmF0b3IpLAorICAgICAgICAgICAgICAgIG1f
cHJvYywgRXF1YWwsIG1fb3JpZ2luLCBudW0sIGJhZE51bWVyYXRvcikpOworICAgICAgICBuZWcx
RGVuQ2FzZS0+c2V0U3VjY2Vzc29ycygKICAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhpbnRN
aW5DYXNlLCBGcmVxdWVuY3lDbGFzczo6UmFyZSksCiAgICAgICAgICAgICBGcmVxdWVudGVkQmxv
Y2sobm9ybWFsRGl2Q2FzZSwgRnJlcXVlbmN5Q2xhc3M6Ok5vcm1hbCkpOwogCiAgICAgICAgIFZh
bHVlKiBpbnRNaW5SZXN1bHQgPSBub25DaGlsbE9wY29kZSA9PSBEaXYgPyBiYWROdW1lcmF0b3Ig
OiBpbnRNaW5DYXNlLT5hcHBlbmRJbnRDb25zdGFudChtX3Byb2MsIG1fdmFsdWUsIDApOwogICAg
ICAgICBVcHNpbG9uVmFsdWUqIGludE1pblJlc3VsdFVwc2lsb24gPSBpbnRNaW5DYXNlLT5hcHBl
bmROZXc8VXBzaWxvblZhbHVlPigKICAgICAgICAgICAgIG1fcHJvYywgbV9vcmlnaW4sIGludE1p
blJlc3VsdCk7Ci0gICAgICAgIGludE1pbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAot
ICAgICAgICAgICAgbV9wcm9jLCBKdW1wLCBtX29yaWdpbiwgRnJlcXVlbnRlZEJsb2NrKG1fYmxv
Y2spKTsKKyAgICAgICAgaW50TWluQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIEp1bXAs
IG1fb3JpZ2luKTsKKyAgICAgICAgaW50TWluQ2FzZS0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVk
QmxvY2sobV9ibG9jaykpOwogCiAgICAgICAgIFZhbHVlKiBwaGkgPSBtX2luc2VydGlvblNldC5p
bnNlcnQ8VmFsdWU+KAogICAgICAgICAgICAgbV9pbmRleCwgUGhpLCBtX3ZhbHVlLT50eXBlKCks
IG1fb3JpZ2luKTsKQEAgLTI3NSw4ICsyODIsMTA3IEBAIHByaXZhdGU6CiAgICAgICAgIGNvbnN0
IFZlY3RvcjxTd2l0Y2hDYXNlPiYgY2FzZXMsIHVuc2lnbmVkIHN0YXJ0LCBib29sIGhhcmRTdGFy
dCwgdW5zaWduZWQgZW5kLAogICAgICAgICBCYXNpY0Jsb2NrKiBiZWZvcmUpCiAgICAgewotICAg
ICAgICAvLyBGSVhNRTogQWRkIHRhYmxlLWJhc2VkIHN3aXRjaCBsb3dlcmluZy4KLSAgICAgICAg
Ly8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTE0MQorICAgICAg
ICBWYWx1ZSogY2hpbGQgPSBtX3ZhbHVlLT5jaGlsZCgwKTsKKyAgICAgICAgVHlwZSB0eXBlID0g
Y2hpbGQtPnR5cGUoKTsKKyAgICAgICAgRnJlcXVlbnRlZEJsb2NrIGZhbGxUaHJvdWdoID0gbV9i
bG9jay0+ZmFsbFRocm91Z2goKTsKKyAgICAgICAgCisgICAgICAgIC8vIEl0J3MgYSBnb29kIGlk
ZWEgdG8gdXNlIGEgdGFibGUtYmFzZWQgc3dpdGNoIGluIHNvbWUgY2FzZXM6IHRoZSBudW1iZXIg
b2YgY2FzZXMgaGFzIHRvIGJlCisgICAgICAgIC8vIGxhcmdlIGVub3VnaCBhbmQgdGhleSBoYXZl
IHRvIGJlIGRlbnNlIGVub3VnaC4gVGhpcyBjb3VsZCBwcm9iYWJseSBiZSBpbXByb3ZlZCBhIGxv
dC4gRm9yCisgICAgICAgIC8vIGV4YW1wbGUsIHdlIGNvdWxkIHN0aWxsIHVzZSBhIGp1bXAgdGFi
bGUgaW4gY2FzZXMgd2hlcmUgdGhlIGlucHV0cyBhcmUgc3BhcnNlIHNvIGxvbmcgYXMgd2UKKyAg
ICAgICAgLy8gc2hpZnQgb2ZmIHRoZSB1bmludGVyZXN0aW5nIGJpdHMuIE9uIHRoZSBvdGhlciBo
YW5kLCBpdCdzIG5vdCBjbGVhciB0aGF0IHRoaXMgd291bGQKKyAgICAgICAgLy8gYWN0dWFsbHkg
YmUgYW55IGJldHRlciB0aGFuIHdoYXQgd2UgaGF2ZSBkb25lIGhlcmUgYW5kIGl0J3Mgbm90IGNs
ZWFyIHRoYXQgaXQgd291bGQgYmUKKyAgICAgICAgLy8gYmV0dGVyIHRoYW4gYSBiaW5hcnkgc3dp
dGNoLgorICAgICAgICBjb25zdCB1bnNpZ25lZCBtaW5DYXNlc0ZvclRhYmxlID0gNzsKKyAgICAg
ICAgY29uc3QgdW5zaWduZWQgZGVuc2l0eUxpbWl0ID0gNDsKKyAgICAgICAgaWYgKGVuZCAtIHN0
YXJ0ID49IG1pbkNhc2VzRm9yVGFibGUpIHsKKyAgICAgICAgICAgIGludDY0X3QgZmlyc3RWYWx1
ZSA9IGNhc2VzW3N0YXJ0XS5jYXNlVmFsdWUoKTsKKyAgICAgICAgICAgIGludDY0X3QgbGFzdFZh
bHVlID0gY2FzZXNbZW5kIC0gMV0uY2FzZVZhbHVlKCk7CisgICAgICAgICAgICBpZiAoKGxhc3RW
YWx1ZSAtIGZpcnN0VmFsdWUgKyAxKSAvIGNhc2VzLnNpemUoKSA8IGRlbnNpdHlMaW1pdCkgewor
ICAgICAgICAgICAgICAgIEJhc2ljQmxvY2sqIHN3aXRjaEJsb2NrID0gbV9ibG9ja0luc2VydGlv
blNldC5pbnNlcnRBZnRlcihtX2Jsb2NrKTsKKyAgICAgICAgICAgICAgICBWYWx1ZSogaW5kZXgg
PSBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICAgICAgICAgIG1fcHJvYywg
U3ViLCBtX29yaWdpbiwgY2hpbGQsCisgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5k
SW50Q29uc3RhbnQobV9wcm9jLCBtX29yaWdpbiwgdHlwZSwgZmlyc3RWYWx1ZSkpOworICAgICAg
ICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgICAgICAgICAg
bV9wcm9jLCBCcmFuY2gsIG1fb3JpZ2luLAorICAgICAgICAgICAgICAgICAgICBiZWZvcmUtPmFw
cGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIEFib3ZlLCBt
X29yaWdpbiwgaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZElu
dENvbnN0YW50KG1fcHJvYywgbV9vcmlnaW4sIHR5cGUsIGxhc3RWYWx1ZSAtIGZpcnN0VmFsdWUp
KSk7CisgICAgICAgICAgICAgICAgYmVmb3JlLT5zZXRTdWNjZXNzb3JzKGZhbGxUaHJvdWdoLCBG
cmVxdWVudGVkQmxvY2soc3dpdGNoQmxvY2spKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAg
ICAgICAgICBzaXplX3QgdGFibGVTaXplID0gbGFzdFZhbHVlIC0gZmlyc3RWYWx1ZSArIDE7Cisg
ICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGluZGV4LT50eXBlKCkgIT0gcG9p
bnRlclR5cGUoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXgtPnR5cGUoKSA9PSBJ
bnQzMikKKyAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gc3dpdGNoQmxvY2stPmFwcGVu
ZE5ldzxWYWx1ZT4obV9wcm9jLCBaRXh0MzIsIG1fb3JpZ2luLCBpbmRleCk7CisgICAgICAgICAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gc3dpdGNoQmxv
Y2stPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBUcnVuYywgbV9vcmlnaW4sIGluZGV4KTsKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgUGF0Y2hw
b2ludFZhbHVlKiBwYXRjaHBvaW50ID0KKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoQmxvY2st
PmFwcGVuZE5ldzxQYXRjaHBvaW50VmFsdWU+KG1fcHJvYywgVm9pZCwgbV9vcmlnaW4pOworICAg
ICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHBhdGNocG9pbnQtPmVmZmVjdHMudGVybWlu
YWwgPSB0cnVlOworICAgICAgICAgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZFNvbWVSZWdpc3Rl
cihpbmRleCk7CisgICAgICAgICAgICAgICAgcGF0Y2hwb2ludC0+bnVtR1BTY3JhdGNoUmVnaXN0
ZXJzKys7CisgICAgICAgICAgICAgICAgLy8gVGVjaG5pY2FsbHksIHdlIGRvbid0IGhhdmUgdG8g
Y2xvYmJlciBtYWNybyByZWdpc3RlcnMgb24gWDg2XzY0LiBUaGlzIGlzIHByb2JhYmx5CisgICAg
ICAgICAgICAgICAgLy8gT0sgdGhvdWdoLgorICAgICAgICAgICAgICAgIHBhdGNocG9pbnQtPmNs
b2JiZXIoUmVnaXN0ZXJTZXQ6Om1hY3JvU2NyYXRjaFJlZ2lzdGVycygpKTsKKyAgICAgICAgICAg
ICAgICAKKyAgICAgICAgICAgICAgICBCaXRWZWN0b3IgaGFuZGxlZEluZGljZXM7CisgICAgICAg
ICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gc3RhcnQ7IGkgPCBlbmQ7ICsraSkgeworICAgICAg
ICAgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2sgYmxvY2sgPSBjYXNlc1tpXS50YXJnZXQoKTsK
KyAgICAgICAgICAgICAgICAgICAgaW50NjRfdCB2YWx1ZSA9IGNhc2VzW2ldLmNhc2VWYWx1ZSgp
OworICAgICAgICAgICAgICAgICAgICBzd2l0Y2hCbG9jay0+YXBwZW5kU3VjY2Vzc29yKGJsb2Nr
KTsKKyAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGluZGV4ID0gdmFsdWUgLSBmaXJzdFZhbHVl
OworICAgICAgICAgICAgICAgICAgICBBU1NFUlQoIWhhbmRsZWRJbmRpY2VzLmdldChpbmRleCkp
OworICAgICAgICAgICAgICAgICAgICBoYW5kbGVkSW5kaWNlcy5zZXQoaW5kZXgpOworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBib29sIGhhc1Vu
aGFuZGxlZEluZGV4ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IHRhYmxlU2l6ZTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghaGFuZGxl
ZEluZGljZXMuZ2V0KGkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBoYXNVbmhhbmRsZWRJ
bmRleCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAg
ICAgICAgICBpZiAoaGFzVW5oYW5kbGVkSW5kZXgpCisgICAgICAgICAgICAgICAgICAgIHN3aXRj
aEJsb2NrLT5hcHBlbmRTdWNjZXNzb3IoZmFsbFRocm91Z2gpOworCisgICAgICAgICAgICAgICAg
cGF0Y2hwb2ludC0+c2V0R2VuZXJhdG9yKAorICAgICAgICAgICAgICAgICAgICBbPV0gKENDYWxs
SGVscGVycyYgaml0LCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmIHBhcmFtcykgewor
ICAgICAgICAgICAgICAgICAgICAgICAgQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlIGFs
bG93U2NyYXRjaChqaXQpOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAg
ICAgICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIqIGp1bXBUYWJsZSA9IHBhcmFtcy5wcm9j
KCkuYWRkRGF0YVNlY3Rpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKE1h
Y3JvQXNzZW1ibGVyQ29kZVB0cikgKiB0YWJsZVNpemUpOworICAgICAgICAgICAgICAgICAgICAg
ICAgCisgICAgICAgICAgICAgICAgICAgICAgICBHUFJSZWcgaW5kZXggPSBwYXJhbXNbMF0uZ3By
KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBHUFJSZWcgc2NyYXRjaCA9IHBhcmFtcy5ncFNj
cmF0Y2goMCk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGppdC5tb3ZlKFRydXN0ZWRJbW1QdHIoanVtcFRhYmxlKSwgc2NyYXRjaCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBqaXQuanVtcChDQ2FsbEhlbHBlcnM6OkJhc2VJbmRleChzY3JhdGNo
LCBpbmRleCwgQ0NhbGxIZWxwZXJzOjp0aW1lc1B0cigpKSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIFZlY3RvcjxCb3g8Q0NhbGxIZWxwZXJzOjpM
YWJlbD4+IGxhYmVscyA9IHBhcmFtcy5zdWNjZXNzb3JMYWJlbHMoKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgaml0LmFkZExpbmtUYXNrKAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFs9XSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGFzVW5oYW5kbGVkSW5kZXgpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0
ciBmYWxsVGhyb3VnaCA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGlua0J1ZmZlci5sb2NhdGlvbk9mKCpsYWJlbHMubGFzdCgpKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IHRhYmxlU2l6ZTsgaS0tOykKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqdW1wVGFibGVbaV0gPSBmYWxs
VGhyb3VnaDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5z
aWduZWQgbGFiZWxJbmRleCA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZv
ciAodW5zaWduZWQgdGFibGVJbmRleCA6IGhhbmRsZWRJbmRpY2VzKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBqdW1wVGFibGVbdGFibGVJbmRleF0gPQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmtCdWZmZXIubG9jYXRpb25PZigqbGFi
ZWxzW2xhYmVsSW5kZXgrK10pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgICAg
ICAKICAgICAgICAgLy8gU2VlIGNvbW1lbnRzIGluIGppdC9CaW5hcnlTd2l0Y2guY3BwIGZvciBh
IGp1c3RpZmljYXRpb24gb2YgdGhpcyBhbGdvcml0aG0uIFRoZSBvbmx5CiAgICAgICAgIC8vIHRo
aW5nIHdlIGRvIGRpZmZlcmVudGx5IGlzIHRoYXQgd2UgZG9uJ3QgdXNlIHJhbmRvbW5lc3MuCkBA
IC0zMDQsMjUgKzQxMCwyMyBAQCBwcml2YXRlOgogICAgICAgICAgICAgCiAgICAgICAgICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGltaXQ7ICsraSkgewogICAgICAgICAgICAgICAgIEJh
c2ljQmxvY2sqIG5leHRDaGVjayA9IG1fYmxvY2tJbnNlcnRpb25TZXQuaW5zZXJ0QWZ0ZXIobV9i
bG9jayk7Ci0gICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICAg
ICAgICAgIG1fcHJvYywgQnJhbmNoLCBtX29yaWdpbiwKICAgICAgICAgICAgICAgICAgICAgYmVm
b3JlLT5hcHBlbmROZXc8VmFsdWU+KAotICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBF
cXVhbCwgbV9vcmlnaW4sIG1fdmFsdWUtPmNoaWxkKDApLAorICAgICAgICAgICAgICAgICAgICAg
ICAgbV9wcm9jLCBFcXVhbCwgbV9vcmlnaW4sIGNoaWxkLAogICAgICAgICAgICAgICAgICAgICAg
ICAgYmVmb3JlLT5hcHBlbmRJbnRDb25zdGFudCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtX3Byb2MsIG1fb3JpZ2luLCBtX3ZhbHVlLT5jaGlsZCgwKS0+dHlwZSgpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNhc2VzW3N0YXJ0ICsgaV0uY2FzZVZhbHVlKCkpKSwKLSAgICAg
ICAgICAgICAgICAgICAgY2FzZXNbc3RhcnQgKyBpXS50YXJnZXQoKSwgRnJlcXVlbnRlZEJsb2Nr
KG5leHRDaGVjaykpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgbV9vcmln
aW4sIHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZXNbc3RhcnQgKyBpXS5j
YXNlVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICBiZWZvcmUtPnNldFN1Y2Nlc3NvcnMoY2Fz
ZXNbc3RhcnQgKyBpXS50YXJnZXQoKSwgRnJlcXVlbnRlZEJsb2NrKG5leHRDaGVjaykpOwogCiAg
ICAgICAgICAgICAgICAgYmVmb3JlID0gbmV4dENoZWNrOwogICAgICAgICAgICAgfQogCi0gICAg
ICAgICAgICBpZiAoYWxsQ29uc2VjdXRpdmUpIHsKLSAgICAgICAgICAgICAgICBiZWZvcmUtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAotICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIEp1bXAs
IG1fb3JpZ2luLCBjYXNlc1tlbmQgLSAxXS50YXJnZXQoKSk7Ci0gICAgICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCi0gICAg
ICAgICAgICAgICAgICAgIG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIG1fdmFsdWUtPmFzPFN3aXRj
aFZhbHVlPigpLT5mYWxsVGhyb3VnaCgpKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJl
Zm9yZS0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIEp1bXAsIG1fb3JpZ2luKTsKKyAgICAgICAg
ICAgIGlmIChhbGxDb25zZWN1dGl2ZSkKKyAgICAgICAgICAgICAgICBiZWZvcmUtPnNldFN1Y2Nl
c3NvcnMoY2FzZXNbZW5kIC0gMV0udGFyZ2V0KCkpOworICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIGJlZm9yZS0+c2V0U3VjY2Vzc29ycyhmYWxsVGhyb3VnaCk7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KIApAQCAtMzMxLDE0ICs0MzUsMTQgQEAgcHJpdmF0ZToKICAg
ICAgICAgQmFzaWNCbG9jayogbGVmdCA9IG1fYmxvY2tJbnNlcnRpb25TZXQuaW5zZXJ0QWZ0ZXIo
bV9ibG9jayk7CiAgICAgICAgIEJhc2ljQmxvY2sqIHJpZ2h0ID0gbV9ibG9ja0luc2VydGlvblNl
dC5pbnNlcnRBZnRlcihtX2Jsb2NrKTsKIAotICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBtX3Byb2MsIEJyYW5jaCwgbV9vcmlnaW4sCiAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5l
dzxWYWx1ZT4oCi0gICAgICAgICAgICAgICAgbV9wcm9jLCBMZXNzVGhhbiwgbV9vcmlnaW4sIG1f
dmFsdWUtPmNoaWxkKDApLAorICAgICAgICAgICAgICAgIG1fcHJvYywgTGVzc1RoYW4sIG1fb3Jp
Z2luLCBjaGlsZCwKICAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZEludENvbnN0YW50KAot
ICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLCBtX3ZhbHVlLT5jaGlsZCgwKS0+
dHlwZSgpLAotICAgICAgICAgICAgICAgICAgICBjYXNlc1ttZWRpYW5JbmRleF0uY2FzZVZhbHVl
KCkpKSwKLSAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhsZWZ0KSwgRnJlcXVlbnRlZEJsb2Nr
KHJpZ2h0KSk7CisgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgbV9vcmlnaW4sIHR5cGUsCisg
ICAgICAgICAgICAgICAgICAgIGNhc2VzW21lZGlhbkluZGV4XS5jYXNlVmFsdWUoKSkpKTsKKyAg
ICAgICAgYmVmb3JlLT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhsZWZ0KSwgRnJlcXVl
bnRlZEJsb2NrKHJpZ2h0KSk7CiAKICAgICAgICAgcmVjdXJzaXZlbHlCdWlsZFN3aXRjaChjYXNl
cywgc3RhcnQsIGhhcmRTdGFydCwgbWVkaWFuSW5kZXgsIGxlZnQpOwogICAgICAgICByZWN1cnNp
dmVseUJ1aWxkU3dpdGNoKGNhc2VzLCBtZWRpYW5JbmRleCwgdHJ1ZSwgZW5kLCByaWdodCk7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAkocmV2aXNpb24g
MjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE1NSw3ICsxNTUsNiBAQCBwdWJsaWM6CiAgICAgICAgICAgICB9CiAK
ICAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBzdWNjZXNzb3JzIGFyZSBzZXQgdXAg
Y29ycmVjdGx5LgotICAgICAgICAgICAgQVNTRVJUKGJsb2NrLT5zdWNjZXNzb3JzKCkuc2l6ZSgp
IDw9IDIpOwogICAgICAgICAgICAgZm9yIChCMzo6RnJlcXVlbnRlZEJsb2NrIHN1Y2Nlc3NvciA6
IGJsb2NrLT5zdWNjZXNzb3JzKCkpIHsKICAgICAgICAgICAgICAgICBtX2Jsb2NrVG9CbG9ja1ti
bG9ja10tPnN1Y2Nlc3NvcnMoKS5hcHBlbmQoCiAgICAgICAgICAgICAgICAgICAgIEFpcjo6RnJl
cXVlbnRlZEJsb2NrKG1fYmxvY2tUb0Jsb2NrW3N1Y2Nlc3Nvci5ibG9jaygpXSwgc3VjY2Vzc29y
LmZyZXF1ZW5jeSgpKSk7CkBAIC0yNDQxLDcgKzI0NDAsNyBAQCBwcml2YXRlOgogICAgICAgICAg
ICAgfQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0KKyAgICAgICAgICAgIAogICAg
ICAgICBjYXNlIEIzOjpPb3BzOiB7CiAgICAgICAgICAgICBhcHBlbmQoQWlyOjpPb3BzKTsKICAg
ICAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM01hdGhF
eHRyYXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM01hdGhF
eHRyYXMuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNNYXRoRXh0cmFzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSAi
QjNDb25zdDMyVmFsdWUuaCIKICNpbmNsdWRlICJCM0NvbnN0RG91YmxlVmFsdWUuaCIKICNpbmNs
dWRlICJCM0NvbnN0UHRyVmFsdWUuaCIKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgogI2lu
Y2x1ZGUgIkIzVXBzaWxvblZhbHVlLmgiCiAjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKICNp
bmNsdWRlICJNYXRoQ29tbW9uLmgiCkBAIC01MiwxMCArNTEsOCBAQCBzdGQ6OnBhaXI8QmFzaWNC
bG9jayosIFZhbHVlKj4gcG93RG91YmxlCiAgICAgVmFsdWUqIHNob3VsZEdvU2xvd1BhdGggPSBz
dGFydC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jZWR1cmUsIEFib3ZlLCBvcmlnaW4sCiAgICAgICAg
IHksCiAgICAgICAgIHN0YXJ0LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jZWR1cmUsIG9y
aWdpbiwgbWF4RXhwb25lbnRGb3JJbnRlZ2VyTWF0aFBvdykpOwotICAgIHN0YXJ0LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgcHJvY2VkdXJlLCBCcmFuY2gsIG9yaWdpbiwKLSAg
ICAgICAgc2hvdWxkR29TbG93UGF0aCwKLSAgICAgICAgRnJlcXVlbnRlZEJsb2NrKGZ1bmN0aW9u
Q2FsbENhc2UpLCBGcmVxdWVudGVkQmxvY2sobG9vcFByZUhlYWRlckNhc2UpKTsKKyAgICBzdGFy
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jZWR1cmUsIEJyYW5jaCwgb3JpZ2luLCBzaG91bGRHb1Ns
b3dQYXRoKTsKKyAgICBzdGFydC0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2soZnVuY3Rp
b25DYWxsQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhsb29wUHJlSGVhZGVyQ2FzZSkpOwogCiAgICAg
Ly8gRnVuY3Rpb24gY2FsbC4KICAgICBWYWx1ZSogeUFzRG91YmxlID0gZnVuY3Rpb25DYWxsQ2Fz
ZS0+YXBwZW5kTmV3PFZhbHVlPihwcm9jZWR1cmUsIElUb0QsIG9yaWdpbiwgeSk7CkBAIC02NSw3
ICs2Miw4IEBAIHN0ZDo6cGFpcjxCYXNpY0Jsb2NrKiwgVmFsdWUqPiBwb3dEb3VibGUKICAgICAg
ICAgZnVuY3Rpb25DYWxsQ2FzZS0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2NlZHVyZSwg
b3JpZ2luLCBiaXR3aXNlX2Nhc3Q8dm9pZCo+KHBvd0RvdWJsZSkpLAogICAgICAgICB4LCB5QXNE
b3VibGUpOwogICAgIFVwc2lsb25WYWx1ZSogcG93UmVzdWx0VXBzaWxvbiA9IGZ1bmN0aW9uQ2Fs
bENhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2NlZHVyZSwgb3JpZ2luLCBwb3dSZXN1
bHQpOwotICAgIGZ1bmN0aW9uQ2FsbENhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Nl
ZHVyZSwgSnVtcCwgb3JpZ2luLCBGcmVxdWVudGVkQmxvY2soY29udGludWF0aW9uKSk7CisgICAg
ZnVuY3Rpb25DYWxsQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihwcm9jZWR1cmUsIEp1bXAsIG9yaWdp
bik7CisgICAgZnVuY3Rpb25DYWxsQ2FzZS0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2so
Y29udGludWF0aW9uKSk7CiAKICAgICAvLyBMb29wIHByZS1oZWFkZXIuCiAgICAgVmFsdWUqIGlu
aXRpYWxSZXN1bHQgPSBsb29wUHJlSGVhZGVyQ2FzZS0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFs
dWU+KHByb2NlZHVyZSwgb3JpZ2luLCAxLik7CkBAIC03Myw3ICs3MSw4IEBAIHN0ZDo6cGFpcjxC
YXNpY0Jsb2NrKiwgVmFsdWUqPiBwb3dEb3VibGUKICAgICBVcHNpbG9uVmFsdWUqIGluaXRpYWxS
ZXN1bHRWYWx1ZSA9IGxvb3BQcmVIZWFkZXJDYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihw
cm9jZWR1cmUsIG9yaWdpbiwgaW5pdGlhbFJlc3VsdCk7CiAgICAgVXBzaWxvblZhbHVlKiBpbml0
aWFsU3F1YXJlZElucHV0ID0gbG9vcFByZUhlYWRlckNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFs
dWU+KHByb2NlZHVyZSwgb3JpZ2luLCB4KTsKICAgICBVcHNpbG9uVmFsdWUqIGluaXRpYWxMb29w
Q291bnRlciA9IGxvb3BQcmVIZWFkZXJDYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9j
ZWR1cmUsIG9yaWdpbiwgeSk7Ci0gICAgbG9vcFByZUhlYWRlckNhc2UtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2NlZHVyZSwgSnVtcCwgb3JpZ2luLCBGcmVxdWVudGVkQmxvY2sobG9vcFRl
c3RGb3JFdmVuQ2FzZSkpOworICAgIGxvb3BQcmVIZWFkZXJDYXNlLT5hcHBlbmROZXc8VmFsdWU+
KHByb2NlZHVyZSwgSnVtcCwgb3JpZ2luKTsKKyAgICBsb29wUHJlSGVhZGVyQ2FzZS0+c2V0U3Vj
Y2Vzc29ycyhGcmVxdWVudGVkQmxvY2sobG9vcFRlc3RGb3JFdmVuQ2FzZSkpOwogCiAgICAgLy8g
VGVzdCBpZiB3aGF0IGlzIGxlZnQgb2YgdGhlIGNvdW50ZXIgaXMgZXZlbi4KICAgICBWYWx1ZSog
aW5Mb29wQ291bnRlciA9IGxvb3BUZXN0Rm9yRXZlbkNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
Y2VkdXJlLCBQaGksIEludDMyLCBvcmlnaW4pOwpAQCAtODEsMTAgKzgwLDggQEAgc3RkOjpwYWly
PEJhc2ljQmxvY2sqLCBWYWx1ZSo+IHBvd0RvdWJsZQogICAgIFZhbHVlKiBsYXN0Q291bnRlckJp
dCA9IGxvb3BUZXN0Rm9yRXZlbkNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvY2VkdXJlLCBCaXRB
bmQsIG9yaWdpbiwKICAgICAgICAgaW5Mb29wQ291bnRlciwKICAgICAgICAgbG9vcFRlc3RGb3JF
dmVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvY2VkdXJlLCBvcmlnaW4sIDEpKTsK
LSAgICBsb29wVGVzdEZvckV2ZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAg
ICAgcHJvY2VkdXJlLCBCcmFuY2gsIG9yaWdpbiwKLSAgICAgICAgbGFzdENvdW50ZXJCaXQsCi0g
ICAgICAgIEZyZXF1ZW50ZWRCbG9jayhsb29wT2RkKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3BFdmVu
T2RkKSk7CisgICAgbG9vcFRlc3RGb3JFdmVuQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihwcm9jZWR1
cmUsIEJyYW5jaCwgb3JpZ2luLCBsYXN0Q291bnRlckJpdCk7CisgICAgbG9vcFRlc3RGb3JFdmVu
Q2FzZS0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2sobG9vcE9kZCksIEZyZXF1ZW50ZWRC
bG9jayhsb29wRXZlbk9kZCkpOwogCiAgICAgLy8gQ291bnRlciBpcyBvZGQuCiAgICAgVmFsdWUq
IGluTG9vcFJlc3VsdCA9IGxvb3BPZGQtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvY2VkdXJlLCBQaGks
IERvdWJsZSwgb3JpZ2luKTsKQEAgLTk0LDcgKzkxLDggQEAgc3RkOjpwYWlyPEJhc2ljQmxvY2sq
LCBWYWx1ZSo+IHBvd0RvdWJsZQogICAgIHVwZGF0ZWRMb29wUmVzdWx0VXBzaWxvbi0+c2V0UGhp
KGluTG9vcFJlc3VsdCk7CiAgICAgVXBzaWxvblZhbHVlKiB1cGRhdGVkTG9vcFJlc3VsdCA9IGxv
b3BPZGQtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2NlZHVyZSwgb3JpZ2luLCB1cGRhdGVk
UmVzdWx0KTsKIAotICAgIGxvb3BPZGQtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2NlZHVy
ZSwgSnVtcCwgb3JpZ2luLCBGcmVxdWVudGVkQmxvY2sobG9vcEV2ZW5PZGQpKTsKKyAgICBsb29w
T2RkLT5hcHBlbmROZXc8VmFsdWU+KHByb2NlZHVyZSwgSnVtcCwgb3JpZ2luKTsKKyAgICBsb29w
T2RkLT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhsb29wRXZlbk9kZCkpOwogCiAgICAg
Ly8gRXZlbiB2YWx1ZSBhbmQgZm9sbG93aW5nIHRoZSBPZGQuCiAgICAgVmFsdWUqIHNxdWFyZWRJ
bnB1dCA9IGxvb3BFdmVuT2RkLT5hcHBlbmROZXc8VmFsdWU+KHByb2NlZHVyZSwgTXVsLCBvcmln
aW4sIGluTG9vcFNxdWFyZWRJbnB1dCwgaW5Mb29wU3F1YXJlZElucHV0KTsKQEAgLTEwOSwxMCAr
MTA3LDggQEAgc3RkOjpwYWlyPEJhc2ljQmxvY2sqLCBWYWx1ZSo+IHBvd0RvdWJsZQogICAgIGlu
aXRpYWxMb29wQ291bnRlci0+c2V0UGhpKGluTG9vcENvdW50ZXIpOwogICAgIHVwZGF0ZWRDb3Vu
dGVyVXBzaWxvbi0+c2V0UGhpKGluTG9vcENvdW50ZXIpOwogCi0gICAgbG9vcEV2ZW5PZGQtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAotICAgICAgICBwcm9jZWR1cmUsIEJyYW5jaCwgb3JpZ2lu
LAotICAgICAgICB1cGRhdGVkQ291bnRlciwKLSAgICAgICAgRnJlcXVlbnRlZEJsb2NrKGxvb3BU
ZXN0Rm9yRXZlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soY29udGludWF0aW9uKSk7CisgICAgbG9v
cEV2ZW5PZGQtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvY2VkdXJlLCBCcmFuY2gsIG9yaWdpbiwgdXBk
YXRlZENvdW50ZXIpOworICAgIGxvb3BFdmVuT2RkLT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRC
bG9jayhsb29wVGVzdEZvckV2ZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGNvbnRpbnVhdGlvbikp
OwogCiAgICAgLy8gSW5saW5lIGxvb3AuCiAgICAgVmFsdWUqIGZpbmFsUmVzdWx0UGhpID0gY29u
dGludWF0aW9uLT5hcHBlbmROZXc8VmFsdWU+KHByb2NlZHVyZSwgUGhpLCBEb3VibGUsIG9yaWdp
bik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuaAkocmV2aXNpb24gMjAyODA5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTIwNywyMSArMjA3LDIxIEBAIGVudW0gT3Bjb2RlIDogaW50MTZfdCB7CiAgICAgVXBzaWxv
biwgLy8gVGhpcyB1c2VzIHRoZSBVcHNpbG9uVmFsdWUgY2xhc3MuCiAgICAgUGhpLAogCi0gICAg
Ly8gSnVtcC4gVXNlcyB0aGUgQ29udHJvbFZhbHVlIGNsYXNzLgorICAgIC8vIEp1bXAuCiAgICAg
SnVtcCwKICAgICAKLSAgICAvLyBQb2x5bW9ycGhpYyBicmFuY2gsIHVzYWJsZSB3aXRoIGFueSBp
bnRlZ2VyIHR5cGUuIEJyYW5jaGVzIGlmIG5vdCBlcXVhbCB0byB6ZXJvLiBVc2VzIHRoZQotICAg
IC8vIENvbnRyb2xWYWx1ZSBjbGFzcywgd2l0aCB0aGUgMC1pbmRleCBzdWNjZXNzb3IgYmVpbmcg
dGhlIHRydWUgc3VjY2Vzc29yLgorICAgIC8vIFBvbHltb3JwaGljIGJyYW5jaCwgdXNhYmxlIHdp
dGggYW55IGludGVnZXIgdHlwZS4gQnJhbmNoZXMgaWYgbm90IGVxdWFsIHRvIHplcm8uIFRoZSAw
LWluZGV4CisgICAgLy8gc3VjY2Vzc29yIGlzIHRoZSB0cnVlIHN1Y2Nlc3Nvci4KICAgICBCcmFu
Y2gsCiAKICAgICAvLyBTd2l0Y2guIFN3aXRjaGVzIG92ZXIgZWl0aGVyIEludDMyIG9yIEludDY0
LiBVc2VzIHRoZSBTd2l0Y2hWYWx1ZSBjbGFzcy4KICAgICBTd2l0Y2gsCi0KKyAgICAKICAgICAv
LyBSZXR1cm4uIE5vdGUgdGhhdCBCMyBwcm9jZWR1cmVzIGRvbid0IGtub3cgdGhlaXIgcmV0dXJu
IHR5cGUsIHNvIHRoaXMgY2FuIGp1c3QgcmV0dXJuIGFueQotICAgIC8vIHR5cGUuIFVzZXMgdGhl
IENvbnRyb2xWYWx1ZSBjbGFzcy4KKyAgICAvLyB0eXBlLgogICAgIFJldHVybiwKIAotICAgIC8v
IFRoaXMgaXMgYSB0ZXJtaW5hbCB0aGF0IGluZGljYXRlcyB0aGF0IHdlIHdpbGwgbmV2ZXIgZ2V0
IGhlcmUuIFVzZXMgdGhlIENvbnRyb2xWYWx1ZSBjbGFzcy4KKyAgICAvLyBUaGlzIGlzIGEgdGVy
bWluYWwgdGhhdCBpbmRpY2F0ZXMgdGhhdCB3ZSB3aWxsIG5ldmVyIGdldCBoZXJlLgogICAgIE9v
cHMKIH07CiAKQEAgLTI1OSw2ICsyNTksMjAgQEAgaW5saW5lIGJvb2wgaXNDb25zdGFudChPcGNv
ZGUgb3Bjb2RlKQogICAgIH0KIH0KIAoraW5saW5lIGJvb2wgaXNEZWZpbml0ZWx5VGVybWluYWwo
T3Bjb2RlIG9wY29kZSkKK3sKKyAgICBzd2l0Y2ggKG9wY29kZSkgeworICAgIGNhc2UgSnVtcDoK
KyAgICBjYXNlIEJyYW5jaDoKKyAgICBjYXNlIFN3aXRjaDoKKyAgICBjYXNlIE9vcHM6CisgICAg
Y2FzZSBSZXR1cm46CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGRlZmF1bHQ6CisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMwogCiBu
YW1lc3BhY2UgV1RGIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BhdGNocG9p
bnRTcGVjaWFsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQ
YXRjaHBvaW50U3BlY2lhbC5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM1BhdGNocG9pbnRTcGVjaWFsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQ2
LDYgKzE0NiwxMSBAQCBDQ2FsbEhlbHBlcnM6Okp1bXAgUGF0Y2hwb2ludFNwZWNpYWw6OmdlCiAg
ICAgcmV0dXJuIENDYWxsSGVscGVyczo6SnVtcCgpOwogfQogCitib29sIFBhdGNocG9pbnRTcGVj
aWFsOjppc1Rlcm1pbmFsKEluc3QmIGluc3QpCit7CisgICAgcmV0dXJuIGluc3Qub3JpZ2luLT5h
czxQYXRjaHBvaW50VmFsdWU+KCktPmVmZmVjdHMudGVybWluYWw7Cit9CisKIHZvaWQgUGF0Y2hw
b2ludFNwZWNpYWw6OmR1bXBJbXBsKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiB7CiAgICAgb3V0
LnByaW50KCJQYXRjaHBvaW50Iik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQ
YXRjaHBvaW50U3BlY2lhbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1BhdGNocG9pbnRTcGVjaWFsLmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM1BhdGNocG9pbnRTcGVjaWFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTYsNiAr
NTYsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgLy8gZ2VuZXJhdGVzIHRoZSBzdGFja21hcC4gU3VwZXIg
Y3JhenkgZHVkZSEKIAogICAgIENDYWxsSGVscGVyczo6SnVtcCBnZW5lcmF0ZShBaXI6Okluc3Qm
LCBDQ2FsbEhlbHBlcnMmLCBBaXI6OkdlbmVyYXRpb25Db250ZXh0Jikgb3ZlcnJpZGU7CisgICAg
CisgICAgYm9vbCBpc1Rlcm1pbmFsKEFpcjo6SW5zdCYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBk
dW1wSW1wbChQcmludFN0cmVhbSYpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgZGVlcER1bXBJ
bXBsKFByaW50U3RyZWFtJikgY29uc3Qgb3ZlcnJpZGU7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNQcm9jZWR1cmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM1Byb2NlZHVyZS5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0OCwzMSAr
MTQ4LDYgQEAgdm9pZCBQcm9jZWR1cmU6OnJlc2V0VmFsdWVPd25lcnMoKQogCiB2b2lkIFByb2Nl
ZHVyZTo6cmVzZXRSZWFjaGFiaWxpdHkoKQogewotICAgIGlmIChzaG91bGRWYWxpZGF0ZUlSKCkp
IHsKLSAgICAgICAgLy8gVmFsaWRhdGUgdGhlIGJhc2ljIHByb3BlcnRpZXMgdGhhdCB3ZSBuZWVk
IGZvciByZXNldHRpbmcgcmVhY2hhYmlsaXR5LiBXZSBvZnRlbiByZXNldAotICAgICAgICAvLyBy
ZWFjaGFiaWxpdHkgYmVmb3JlIElSIHZhbGlkYXRpb24sIHNvIHdpdGhvdXQgdGhpcyBtaW5pLXZh
bGlkYXRpb24sIHlvdSB3b3VsZCBjcmFzaCBpbnNpZGUKLSAgICAgICAgLy8gQjM6OnJlc2V0UmVh
Y2hhYmlsaXR5KCkgd2l0aG91dCBnZXR0aW5nIGFueSBJUiBkdW1wLgotCi0gICAgICAgIEJhc2lj
QmxvY2sqIGJhZEJsb2NrID0gbnVsbHB0cjsKLSAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBibG9j
ayA6ICp0aGlzKSB7Ci0gICAgICAgICAgICBpZiAoIWJsb2NrLT5zaXplKCkpIHsKLSAgICAgICAg
ICAgICAgICBiYWRCbG9jayA9IGJsb2NrOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgICAgfQotCi0gICAgICAgICAgICBpZiAoIWJsb2NrLT5sYXN0KCktPmFzPENvbnRyb2xWYWx1
ZT4oKSkgewotICAgICAgICAgICAgICAgIGJhZEJsb2NrID0gYmxvY2s7Ci0gICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoYmFkQmxv
Y2spIHsKLSAgICAgICAgICAgIGRhdGFMb2coIkZBVEFMOiBJbnZhbGlkIGJhc2ljIGJsb2NrICIs
ICpiYWRCbG9jaywgIiB3aGlsZSBydW5uaW5nIFByb2NlZHVyZTo6cmVzZXRSZWFjaGFiaWxpdHko
KS5cbiIpOwotICAgICAgICAgICAgZGF0YUxvZygqdGhpcyk7Ci0gICAgICAgICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICB9Ci0gICAgfQotICAgIAogICAgIHJlY29t
cHV0ZVByZWRlY2Vzc29ycyhtX2Jsb2Nrcyk7CiAgICAgCiAgICAgLy8gVGhlIGNvbW1vbiBjYXNl
IGlzIHRoYXQgdGhpcyBkb2VzIG5vdCBmaW5kIGFueSBkZWFkIGJsb2Nrcy4KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuaAkod29ya2luZyBjb3B5KQpAQCAtMjE4
LDcgKzIxOCwxMCBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBjaGFyKiBsYXN0UGhhc2VOYW1lKCkg
Y29uc3QgeyByZXR1cm4gbV9sYXN0UGhhc2VOYW1lOyB9CiAKLSAgICB2b2lkKiBhZGREYXRhU2Vj
dGlvbihzaXplX3Qgc2l6ZSk7CisgICAgLy8gQWxsb2NhdGVzIGEgc2xhYiBvZiBtZW1vcnkgdGhh
dCB3aWxsIGJlIGtlcHQgYWxpdmUgYnkgYW55b25lIHdobyBrZWVwcyB0aGUgcmVzdWx0aW5nIGNv
ZGUKKyAgICAvLyBhbGl2ZS4gR3JlYXQgZm9yIGNvbXBpbGVyLWdlbmVyYXRlZCBkYXRhIHNlY3Rp
b25zLCBsaWtlIHN3aXRjaCBqdW1wIHRhYmxlcyBhbmQgY29uc3RhbnQgcG9vbHMuCisgICAgLy8g
VGhpcyByZXR1cm5zIG1lbW9yeSB0aGF0IGhhcyBiZWVuIHplcm8taW5pdGlhbGl6ZWQuCisgICAg
dm9pZCogYWRkRGF0YVNlY3Rpb24oc2l6ZV90KTsKIAogICAgIE9wYXF1ZUJ5cHJvZHVjdHMmIGJ5
cHJvZHVjdHMoKSB7IHJldHVybiAqbV9ieXByb2R1Y3RzOyB9CiAKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VTdHJlbmd0aC5jcHAJKHJldmlzaW9uIDIwMjgwOSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIkIzQmFzaWNCbG9ja0lubGluZXMu
aCIKICNpbmNsdWRlICJCM0Jsb2NrSW5zZXJ0aW9uU2V0LmgiCiAjaW5jbHVkZSAiQjNDb21wdXRl
RGl2aXNpb25NYWdpYy5oIgotI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAi
QjNEb21pbmF0b3JzLmgiCiAjaW5jbHVkZSAiQjNJbmRleFNldC5oIgogI2luY2x1ZGUgIkIzSW5z
ZXJ0aW9uU2V0SW5saW5lcy5oIgpAQCAtMTcxNyw3ICsxNzE2LDcgQEAgcHJpdmF0ZToKICAgICAg
ICAgICAgICAgICAvLyBSZXBsYWNlIHRoZSByZXN0IG9mIHRoZSBibG9jayB3aXRoIGFuIE9vcHMu
CiAgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gbV9pbmRleCArIDE7IGkgPCBtX2Js
b2NrLT5zaXplKCkgLSAxOyArK2kpCiAgICAgICAgICAgICAgICAgICAgIG1fYmxvY2stPmF0KGkp
LT5yZXBsYWNlV2l0aEJvdHRvbShtX2luc2VydGlvblNldCwgbV9pbmRleCk7Ci0gICAgICAgICAg
ICAgICAgbV9ibG9jay0+bGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCktPmNvbnZlcnRUb09vcHMo
KTsKKyAgICAgICAgICAgICAgICBtX2Jsb2NrLT5sYXN0KCktPnJlcGxhY2VXaXRoT29wcyhtX2Js
b2NrKTsKICAgICAgICAgICAgICAgICBtX2Jsb2NrLT5sYXN0KCktPnNldE9yaWdpbihjaGVja1Zh
bHVlLT5vcmlnaW4oKSk7CiAKICAgICAgICAgICAgICAgICAvLyBSZXBsYWNlIG91cnNlbHZlcyBs
YXN0LgpAQCAtMTc3Myw2ICsxNzcyLDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHZhbHVlLT5vcGNvZGUoKSA9PSBTZWxlY3QKICAgICAgICAgICAgICAgICAgICAgICAg
ICYmICh2YWx1ZS0+Y2hpbGQoMSktPmlzQ29uc3RhbnQoKSAmJiB2YWx1ZS0+Y2hpbGQoMiktPmlz
Q29uc3RhbnQoKSk7CiAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAKICAgICAgICAg
ICAgIGlmIChzZWxlY3QpIHsKICAgICAgICAgICAgICAgICBzcGVjaWFsaXplU2VsZWN0KHNlbGVj
dCk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0xNzgxLDUwICsxNzgxLDQ4IEBAIHByaXZh
dGU6CiAgICAgICAgIH0KIAogICAgICAgICBjYXNlIEJyYW5jaDogewotICAgICAgICAgICAgQ29u
dHJvbFZhbHVlKiBicmFuY2ggPSBtX3ZhbHVlLT5hczxDb250cm9sVmFsdWU+KCk7Ci0KICAgICAg
ICAgICAgIC8vIFR1cm4gdGhpczogQnJhbmNoKE5vdEVxdWFsKHgsIDApKQogICAgICAgICAgICAg
Ly8gSW50byB0aGlzOiBCcmFuY2goeCkKLSAgICAgICAgICAgIGlmIChicmFuY2gtPmNoaWxkKDAp
LT5vcGNvZGUoKSA9PSBOb3RFcXVhbCAmJiBicmFuY2gtPmNoaWxkKDApLT5jaGlsZCgxKS0+aXNJ
bnQoMCkpIHsKLSAgICAgICAgICAgICAgICBicmFuY2gtPmNoaWxkKDApID0gYnJhbmNoLT5jaGls
ZCgwKS0+Y2hpbGQoMCk7CisgICAgICAgICAgICBpZiAobV92YWx1ZS0+Y2hpbGQoMCktPm9wY29k
ZSgpID09IE5vdEVxdWFsICYmIG1fdmFsdWUtPmNoaWxkKDApLT5jaGlsZCgxKS0+aXNJbnQoMCkp
IHsKKyAgICAgICAgICAgICAgICBtX3ZhbHVlLT5jaGlsZCgwKSA9IG1fdmFsdWUtPmNoaWxkKDAp
LT5jaGlsZCgwKTsKICAgICAgICAgICAgICAgICBtX2NoYW5nZWQgPSB0cnVlOwogICAgICAgICAg
ICAgfQogCiAgICAgICAgICAgICAvLyBUdXJuIHRoaXM6IEJyYW5jaChFcXVhbCh4LCAwKSwgdGhl
biwgZWxzZSkKICAgICAgICAgICAgIC8vIEludG8gdGhpczogQnJhbmNoKHgsIGVsc2UsIHRoZW4p
Ci0gICAgICAgICAgICBpZiAoYnJhbmNoLT5jaGlsZCgwKS0+b3Bjb2RlKCkgPT0gRXF1YWwgJiYg
YnJhbmNoLT5jaGlsZCgwKS0+Y2hpbGQoMSktPmlzSW50KDApKSB7Ci0gICAgICAgICAgICAgICAg
YnJhbmNoLT5jaGlsZCgwKSA9IGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDApOwotICAgICAgICAg
ICAgICAgIHN0ZDo6c3dhcChicmFuY2gtPnRha2VuKCksIGJyYW5jaC0+bm90VGFrZW4oKSk7Cisg
ICAgICAgICAgICBpZiAobV92YWx1ZS0+Y2hpbGQoMCktPm9wY29kZSgpID09IEVxdWFsICYmIG1f
dmFsdWUtPmNoaWxkKDApLT5jaGlsZCgxKS0+aXNJbnQoMCkpIHsKKyAgICAgICAgICAgICAgICBt
X3ZhbHVlLT5jaGlsZCgwKSA9IG1fdmFsdWUtPmNoaWxkKDApLT5jaGlsZCgwKTsKKyAgICAgICAg
ICAgICAgICBzdGQ6OnN3YXAobV9ibG9jay0+dGFrZW4oKSwgbV9ibG9jay0+bm90VGFrZW4oKSk7
CiAgICAgICAgICAgICAgICAgbV9jaGFuZ2VkID0gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIAogICAgICAgICAgICAgLy8gVHVybiB0aGlzOiBCcmFuY2goQml0WG9yKGJvb2wsIDEp
LCB0aGVuLCBlbHNlKQogICAgICAgICAgICAgLy8gSW50byB0aGlzOiBCcmFuY2goYm9vbCwgZWxz
ZSwgdGhlbikKLSAgICAgICAgICAgIGlmIChicmFuY2gtPmNoaWxkKDApLT5vcGNvZGUoKSA9PSBC
aXRYb3IKLSAgICAgICAgICAgICAgICAmJiBicmFuY2gtPmNoaWxkKDApLT5jaGlsZCgxKS0+aXNJ
bnQzMigxKQotICAgICAgICAgICAgICAgICYmIGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDApLT5y
ZXR1cm5zQm9vbCgpKSB7Ci0gICAgICAgICAgICAgICAgYnJhbmNoLT5jaGlsZCgwKSA9IGJyYW5j
aC0+Y2hpbGQoMCktPmNoaWxkKDApOwotICAgICAgICAgICAgICAgIHN0ZDo6c3dhcChicmFuY2gt
PnRha2VuKCksIGJyYW5jaC0+bm90VGFrZW4oKSk7CisgICAgICAgICAgICBpZiAobV92YWx1ZS0+
Y2hpbGQoMCktPm9wY29kZSgpID09IEJpdFhvcgorICAgICAgICAgICAgICAgICYmIG1fdmFsdWUt
PmNoaWxkKDApLT5jaGlsZCgxKS0+aXNJbnQzMigxKQorICAgICAgICAgICAgICAgICYmIG1fdmFs
dWUtPmNoaWxkKDApLT5jaGlsZCgwKS0+cmV0dXJuc0Jvb2woKSkgeworICAgICAgICAgICAgICAg
IG1fdmFsdWUtPmNoaWxkKDApID0gbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDApOworICAgICAg
ICAgICAgICAgIHN0ZDo6c3dhcChtX2Jsb2NrLT50YWtlbigpLCBtX2Jsb2NrLT5ub3RUYWtlbigp
KTsKICAgICAgICAgICAgICAgICBtX2NoYW5nZWQgPSB0cnVlOwogICAgICAgICAgICAgfQogCiAg
ICAgICAgICAgICAvLyBUdXJuIHRoaXM6IEJyYW5jaChCaXRBbmQoYm9vbCwgeHliMSksIHRoZW4s
IGVsc2UpCiAgICAgICAgICAgICAvLyBJbnRvIHRoaXM6IEJyYW5jaChib29sLCB0aGVuLCBlbHNl
KQotICAgICAgICAgICAgaWYgKGJyYW5jaC0+Y2hpbGQoMCktPm9wY29kZSgpID09IEJpdEFuZAot
ICAgICAgICAgICAgICAgICYmIGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDEpLT5oYXNJbnQoKQot
ICAgICAgICAgICAgICAgICYmIGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDEpLT5hc0ludCgpICYg
MQotICAgICAgICAgICAgICAgICYmIGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDApLT5yZXR1cm5z
Qm9vbCgpKSB7Ci0gICAgICAgICAgICAgICAgYnJhbmNoLT5jaGlsZCgwKSA9IGJyYW5jaC0+Y2hp
bGQoMCktPmNoaWxkKDApOworICAgICAgICAgICAgaWYgKG1fdmFsdWUtPmNoaWxkKDApLT5vcGNv
ZGUoKSA9PSBCaXRBbmQKKyAgICAgICAgICAgICAgICAmJiBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hp
bGQoMSktPmhhc0ludCgpCisgICAgICAgICAgICAgICAgJiYgbV92YWx1ZS0+Y2hpbGQoMCktPmNo
aWxkKDEpLT5hc0ludCgpICYgMQorICAgICAgICAgICAgICAgICYmIG1fdmFsdWUtPmNoaWxkKDAp
LT5jaGlsZCgwKS0+cmV0dXJuc0Jvb2woKSkgeworICAgICAgICAgICAgICAgIG1fdmFsdWUtPmNo
aWxkKDApID0gbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDApOwogICAgICAgICAgICAgICAgIG1f
Y2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIFRyaVN0YXRlIHRy
aVN0YXRlID0gYnJhbmNoLT5jaGlsZCgwKS0+YXNUcmlTdGF0ZSgpOworICAgICAgICAgICAgVHJp
U3RhdGUgdHJpU3RhdGUgPSBtX3ZhbHVlLT5jaGlsZCgwKS0+YXNUcmlTdGF0ZSgpOwogCiAgICAg
ICAgICAgICAvLyBUdXJuIHRoaXM6IEJyYW5jaCgwLCB0aGVuLCBlbHNlKQogICAgICAgICAgICAg
Ly8gSW50byB0aGlzOiBKdW1wKGVsc2UpCiAgICAgICAgICAgICBpZiAodHJpU3RhdGUgPT0gRmFs
c2VUcmlTdGF0ZSkgewotICAgICAgICAgICAgICAgIGJyYW5jaC0+dGFrZW4oKS5ibG9jaygpLT5y
ZW1vdmVQcmVkZWNlc3NvcihtX2Jsb2NrKTsKLSAgICAgICAgICAgICAgICBicmFuY2gtPmNvbnZl
cnRUb0p1bXAoYnJhbmNoLT5ub3RUYWtlbigpLmJsb2NrKCkpOworICAgICAgICAgICAgICAgIG1f
YmxvY2stPnRha2VuKCkuYmxvY2soKS0+cmVtb3ZlUHJlZGVjZXNzb3IobV9ibG9jayk7CisgICAg
ICAgICAgICAgICAgbV92YWx1ZS0+cmVwbGFjZVdpdGhKdW1wKG1fYmxvY2ssIG1fYmxvY2stPm5v
dFRha2VuKCkpOwogICAgICAgICAgICAgICAgIG1fY2hhbmdlZENGRyA9IHRydWU7CiAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CkBAIC0xODMyLDggKzE4MzAsOCBAQCBwcml2
YXRlOgogICAgICAgICAgICAgLy8gVHVybiB0aGlzOiBCcmFuY2gobm90IDAsIHRoZW4sIGVsc2Up
CiAgICAgICAgICAgICAvLyBJbnRvIHRoaXM6IEp1bXAodGhlbikKICAgICAgICAgICAgIGlmICh0
cmlTdGF0ZSA9PSBUcnVlVHJpU3RhdGUpIHsKLSAgICAgICAgICAgICAgICBicmFuY2gtPm5vdFRh
a2VuKCkuYmxvY2soKS0+cmVtb3ZlUHJlZGVjZXNzb3IobV9ibG9jayk7Ci0gICAgICAgICAgICAg
ICAgYnJhbmNoLT5jb252ZXJ0VG9KdW1wKGJyYW5jaC0+dGFrZW4oKS5ibG9jaygpKTsKKyAgICAg
ICAgICAgICAgICBtX2Jsb2NrLT5ub3RUYWtlbigpLmJsb2NrKCktPnJlbW92ZVByZWRlY2Vzc29y
KG1fYmxvY2spOworICAgICAgICAgICAgICAgIG1fdmFsdWUtPnJlcGxhY2VXaXRoSnVtcChtX2Js
b2NrLCBtX2Jsb2NrLT50YWtlbigpKTsKICAgICAgICAgICAgICAgICBtX2NoYW5nZWRDRkcgPSB0
cnVlOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpAQCAtMTg0MiwxMiAr
MTg0MCwxMiBAQCBwcml2YXRlOgogICAgICAgICAgICAgLy8gb2YgbWFrZXMgc2Vuc2UgaGVyZSBi
ZWNhdXNlIGl0J3MgY2hlYXAsIGJ1dCBoYWNrcyBsaWtlIHRoaXMgc2hvdyB0aGF0IHdlJ3JlIGdv
aW5nCiAgICAgICAgICAgICAvLyB0byBuZWVkIFNDQ1AuCiAgICAgICAgICAgICBWYWx1ZSogY2hl
Y2sgPSBtX3B1cmVDU0UuZmluZE1hdGNoKAotICAgICAgICAgICAgICAgIFZhbHVlS2V5KENoZWNr
LCBWb2lkLCBicmFuY2gtPmNoaWxkKDApKSwgbV9ibG9jaywgKm1fZG9taW5hdG9ycyk7CisgICAg
ICAgICAgICAgICAgVmFsdWVLZXkoQ2hlY2ssIFZvaWQsIG1fdmFsdWUtPmNoaWxkKDApKSwgbV9i
bG9jaywgKm1fZG9taW5hdG9ycyk7CiAgICAgICAgICAgICBpZiAoY2hlY2spIHsKICAgICAgICAg
ICAgICAgICAvLyBUaGUgQ2hlY2sgd291bGQgaGF2ZSBzaWRlLWV4aXRlZCBpZiBjaGlsZCgwKSB3
YXMgbm9uLXplcm8uIFNvLCBpdCBtdXN0IGJlCiAgICAgICAgICAgICAgICAgLy8gemVybyBoZXJl
LgotICAgICAgICAgICAgICAgIGJyYW5jaC0+dGFrZW4oKS5ibG9jaygpLT5yZW1vdmVQcmVkZWNl
c3NvcihtX2Jsb2NrKTsKLSAgICAgICAgICAgICAgICBicmFuY2gtPmNvbnZlcnRUb0p1bXAoYnJh
bmNoLT5ub3RUYWtlbigpLmJsb2NrKCkpOworICAgICAgICAgICAgICAgIG1fYmxvY2stPnRha2Vu
KCkuYmxvY2soKS0+cmVtb3ZlUHJlZGVjZXNzb3IobV9ibG9jayk7CisgICAgICAgICAgICAgICAg
bV92YWx1ZS0+cmVwbGFjZVdpdGhKdW1wKG1fYmxvY2ssIG1fYmxvY2stPm5vdFRha2VuKCkpOwog
ICAgICAgICAgICAgICAgIG1fY2hhbmdlZENGRyA9IHRydWU7CiAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICBicmVhazsKQEAgLTE5ODYsMTMgKzE5ODQsMTIgQEAgcHJpdmF0ZToKICAgICAgICAg
Ly8gUmVtb3ZlIHRoZSB2YWx1ZXMgZnJvbSB0aGUgcHJlZGVjZXNzb3IuCiAgICAgICAgIHByZWRl
Y2Vzc29yLT52YWx1ZXMoKS5yZXNpemUoc3RhcnRJbmRleCk7CiAgICAgICAgIAotICAgICAgICBw
cmVkZWNlc3Nvci0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCi0gICAgICAgICAgICBtX3Byb2Ms
IEJyYW5jaCwgc291cmNlLT5vcmlnaW4oKSwgcHJlZGljYXRlLAotICAgICAgICAgICAgRnJlcXVl
bnRlZEJsb2NrKGNhc2VzWzBdKSwgRnJlcXVlbnRlZEJsb2NrKGNhc2VzWzFdKSk7CisgICAgICAg
IHByZWRlY2Vzc29yLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgQnJhbmNoLCBzb3VyY2UtPm9y
aWdpbigpLCBwcmVkaWNhdGUpOworICAgICAgICBwcmVkZWNlc3Nvci0+c2V0U3VjY2Vzc29ycyhG
cmVxdWVudGVkQmxvY2soY2FzZXNbMF0pLCBGcmVxdWVudGVkQmxvY2soY2FzZXNbMV0pKTsKIAog
ICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtQ2FzZXM7ICsraSkgewotICAgICAg
ICAgICAgY2FzZXNbaV0tPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAotICAgICAgICAgICAgICAg
IG1fcHJvYywgSnVtcCwgbV92YWx1ZS0+b3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2Nr
KSk7CisgICAgICAgICAgICBjYXNlc1tpXS0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIEp1bXAs
IG1fdmFsdWUtPm9yaWdpbigpKTsKKyAgICAgICAgICAgIGNhc2VzW2ldLT5zZXRTdWNjZXNzb3Jz
KEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7CiAgICAgICAgIH0KIAogICAgICAgICBtX2NoYW5n
ZWQgPSB0cnVlOwpAQCAtMjIyMSw3ICsyMjE4LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBkYXRhTG9nKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
Q2hhbmdpbmcgIiwgcG9pbnRlckR1bXAoYmxvY2spLCAiJ3MgdGVybWluYWwgdG8gYSBKdW1wLlxu
Iik7CiAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBi
bG9jay0+bGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCktPmNvbnZlcnRUb0p1bXAoZmlyc3RTdWNj
ZXNzb3IpOworICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2stPmxhc3QoKS0+cmVwbGFjZVdp
dGhKdW1wKGJsb2NrLCBGcmVxdWVudGVkQmxvY2soZmlyc3RTdWNjZXNzb3IpKTsKICAgICAgICAg
ICAgICAgICAgICAgICAgIG1fY2hhbmdlZENGRyA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICB9CkBAIC0yMjM5LDE2ICsyMjM2LDE4IEBAIHByaXZhdGU6CiAg
ICAgICAgICAgICAgICAgICAgIC8vIFJlbW92ZSB0aGUgdGVybWluYWwuCiAgICAgICAgICAgICAg
ICAgICAgIFZhbHVlKiB2YWx1ZSA9IGJsb2NrLT52YWx1ZXMoKS50YWtlTGFzdCgpOwogICAgICAg
ICAgICAgICAgICAgICBPcmlnaW4ganVtcE9yaWdpbiA9IHZhbHVlLT5vcmlnaW4oKTsKLSAgICAg
ICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQodmFsdWUtPmFzPENvbnRyb2xWYWx1ZT4oKSk7
CisgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHZhbHVlLT5lZmZlY3RzKCkudGVy
bWluYWwpOwogICAgICAgICAgICAgICAgICAgICBtX3Byb2MuZGVsZXRlVmFsdWUodmFsdWUpOwog
ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgLy8gQXBwZW5kIHRoZSBm
dWxsIGNvbnRlbnRzIG9mIHRoZSBzdWNjZXNzb3IgdG8gdGhlIHByZWRlY2Vzc29yLgogICAgICAg
ICAgICAgICAgICAgICBibG9jay0+dmFsdWVzKCkuYXBwZW5kVmVjdG9yKHN1Y2Nlc3Nvci0+dmFs
dWVzKCkpOworICAgICAgICAgICAgICAgICAgICBibG9jay0+c3VjY2Vzc29ycygpID0gc3VjY2Vz
c29yLT5zdWNjZXNzb3JzKCk7CiAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
ICAgICAvLyBNYWtlIHN1cmUgdGhhdCB0aGUgc3VjY2Vzc29yIGhhcyBub3RoaW5nIGxlZnQgaW4g
aXQuIE1ha2Ugc3VyZSB0aGF0IHRoZSBibG9jawogICAgICAgICAgICAgICAgICAgICAvLyBoYXMg
YSB0ZXJtaW5hbCBzbyB0aGF0IG5vYm9keSBjaG9rZXMgd2hlbiB0aGV5IGxvb2sgYXQgaXQuCiAg
ICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3Nvci0+dmFsdWVzKCkucmVzaXplKDApOwotICAgICAg
ICAgICAgICAgICAgICBzdWNjZXNzb3ItPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KG1fcHJvYywg
T29wcywganVtcE9yaWdpbik7CisgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3Nvci0+YXBwZW5k
TmV3PFZhbHVlPihtX3Byb2MsIE9vcHMsIGp1bXBPcmlnaW4pOworICAgICAgICAgICAgICAgICAg
ICBzdWNjZXNzb3ItPmNsZWFyU3VjY2Vzc29ycygpOwogICAgICAgICAgICAgICAgICAgICAKICAg
ICAgICAgICAgICAgICAgICAgLy8gRW5zdXJlIHRoYXQgcHJlZGVjZXNzb3JzIG9mIGJsb2NrJ3Mg
bmV3IHN1Y2Nlc3NvcnMga25vdyB3aGF0J3MgdXAuCiAgICAgICAgICAgICAgICAgICAgIGZvciAo
QmFzaWNCbG9jayogbmV3U3VjY2Vzc29yIDogYmxvY2stPnN1Y2Nlc3NvckJsb2NrcygpKQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcEdlbmVy
YXRpb25QYXJhbXMuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNTdGFja21hcEdlbmVyYXRpb25QYXJhbXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU5LDYg
KzU5LDI3IEBAIFJlZ2lzdGVyU2V0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtczo6dW4KICAgICBy
ZXR1cm4gcmVzdWx0OwogfQogCitWZWN0b3I8Qm94PENDYWxsSGVscGVyczo6TGFiZWw+PiBTdGFj
a21hcEdlbmVyYXRpb25QYXJhbXM6OnN1Y2Nlc3NvckxhYmVscygpIGNvbnN0Cit7CisgICAgUkVM
RUFTRV9BU1NFUlQobV9jb250ZXh0LmluZGV4SW5CbG9jayA9PSBtX2NvbnRleHQuY3VycmVudEJs
b2NrLT5zaXplKCkgLSAxKTsKKyAgICBSRUxFQVNFX0FTU0VSVChtX3ZhbHVlLT5lZmZlY3RzKCku
dGVybWluYWwpOworICAgIAorICAgIFZlY3RvcjxCb3g8Q0NhbGxIZWxwZXJzOjpMYWJlbD4+IHJl
c3VsdChtX2NvbnRleHQuY3VycmVudEJsb2NrLT5udW1TdWNjZXNzb3JzKCkpOworICAgIGZvciAo
dW5zaWduZWQgaSA9IG1fY29udGV4dC5jdXJyZW50QmxvY2stPm51bVN1Y2Nlc3NvcnMoKTsgaS0t
OykKKyAgICAgICAgcmVzdWx0W2ldID0gbV9jb250ZXh0LmJsb2NrTGFiZWxzW21fY29udGV4dC5j
dXJyZW50QmxvY2stPnN1Y2Nlc3NvckJsb2NrKGkpXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
Citib29sIFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtczo6ZmFsbHNUaHJvdWdoVG9TdWNjZXNzb3Io
dW5zaWduZWQgc3VjY2Vzc29ySW5kZXgpIGNvbnN0Cit7CisgICAgUkVMRUFTRV9BU1NFUlQobV9j
b250ZXh0LmluZGV4SW5CbG9jayA9PSBtX2NvbnRleHQuY3VycmVudEJsb2NrLT5zaXplKCkgLSAx
KTsKKyAgICBSRUxFQVNFX0FTU0VSVChtX3ZhbHVlLT5lZmZlY3RzKCkudGVybWluYWwpOworICAg
IAorICAgIEFpcjo6QmFzaWNCbG9jayogc3VjY2Vzc29yID0gbV9jb250ZXh0LmN1cnJlbnRCbG9j
ay0+c3VjY2Vzc29yQmxvY2soc3VjY2Vzc29ySW5kZXgpOworICAgIEFpcjo6QmFzaWNCbG9jayog
bmV4dEJsb2NrID0gbV9jb250ZXh0LmNvZGUtPmZpbmROZXh0QmxvY2sobV9jb250ZXh0LmN1cnJl
bnRCbG9jayk7CisgICAgcmV0dXJuIHN1Y2Nlc3NvciA9PSBuZXh0QmxvY2s7Cit9CisKIFByb2Nl
ZHVyZSYgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zOjpwcm9jKCkgY29uc3QKIHsKICAgICByZXR1
cm4gbV9jb250ZXh0LmNvZGUtPnByb2MoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5oCShyZXZpc2lvbiAyMDI4
MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcEdlbmVyYXRpb25QYXJh
bXMuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsOSBAQAogCiAjaW5jbHVkZSAiQWlyR2Vu
ZXJhdGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJCM1ZhbHVlUmVwLmgiCisjaW5jbHVkZSAiQ0Nh
bGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiUmVnaXN0ZXJTZXQuaCIKKyNpbmNsdWRlIDx3dGYvQm94
Lmg+CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCkBAIC0zOSw2ICs0MSw4IEBA
IGNsYXNzIFBhdGNocG9pbnRTcGVjaWFsOwogY2xhc3MgUHJvY2VkdXJlOwogY2xhc3MgU3RhY2tt
YXBWYWx1ZTsKIAorLy8gTk9URTogSXQncyBwb3NzaWJsZSB0byBjYXB0dXJlIFN0YWNrbWFwR2Vu
ZXJhdGlvblBhcmFtcyBieSB2YWx1ZSwgYnV0IG5vdCBhbGwgb2YgdGhlIG1ldGhvZHMgd2lsbAor
Ly8gd29yayBpZiB5b3UgZG8gdGhhdC4KIGNsYXNzIFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyB7
CiBwdWJsaWM6CiAgICAgLy8gVGhpcyBpcyB0aGUgc3RhY2ttYXAgdmFsdWUgdGhhdCB3ZSdyZSBn
ZW5lcmF0aW5nLgpAQCAtODAsNiArODQsMTIgQEAgcHVibGljOgogCiAgICAgR1BSUmVnIGdwU2Ny
YXRjaCh1bnNpZ25lZCBpbmRleCkgY29uc3QgeyByZXR1cm4gbV9ncFNjcmF0Y2hbaW5kZXhdOyB9
CiAgICAgRlBSUmVnIGZwU2NyYXRjaCh1bnNpZ25lZCBpbmRleCkgY29uc3QgeyByZXR1cm4gbV9m
cFNjcmF0Y2hbaW5kZXhdOyB9CisgICAgCisgICAgLy8gVGhpcyBpcyBjb21wdXRlZCBsYXppbHks
IHNvIGl0IHdvbid0IHdvcmsgaWYgeW91IGNhcHR1cmUgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1z
IGJ5IHZhbHVlLgorICAgIFZlY3RvcjxCb3g8Q0NhbGxIZWxwZXJzOjpMYWJlbD4+IHN1Y2Nlc3Nv
ckxhYmVscygpIGNvbnN0OworICAgIAorICAgIC8vIFRoaXMgaXMgY29tcHV0ZWQgbGF6aWx5IGFs
c28uCisgICAgYm9vbCBmYWxsc1Rocm91Z2hUb1N1Y2Nlc3Nvcih1bnNpZ25lZCBzdWNjZXNzb3JJ
bmRleCkgY29uc3Q7CiAKICAgICAvLyBUaGlzIGlzIHByb3ZpZGVkIGZvciBjb252ZW5pZW5jZTsg
aXQgbWVhbnMgdGhhdCB5b3UgZG9uJ3QgaGF2ZSB0byBjYXB0dXJlIGl0IGlmIHlvdSBkb24ndCB3
YW50IHRvLgogICAgIFByb2NlZHVyZSYgcHJvYygpIGNvbnN0OwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzU3dpdGNoVmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM1N3aXRjaFZhbHVlLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3dpdGNoVmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zNywzMCArMzcsNzUgQEAgU3dpdGNoVmFsdWU6On5Td2l0Y2hWYWx1ZSgpCiB7CiB9CiAKLVN3
aXRjaENhc2UgU3dpdGNoVmFsdWU6OnJlbW92ZUNhc2UodW5zaWduZWQgaW5kZXgpCitTd2l0Y2hD
YXNlIFN3aXRjaFZhbHVlOjpyZW1vdmVDYXNlKEJhc2ljQmxvY2sqIGJsb2NrLCB1bnNpZ25lZCBp
bmRleCkKIHsKLSAgICBGcmVxdWVudGVkQmxvY2sgcmVzdWx0QmxvY2sgPSBtX3N1Y2Nlc3NvcnNb
aW5kZXhdOworICAgIEZyZXF1ZW50ZWRCbG9jayByZXN1bHRCbG9jayA9IGJsb2NrLT5zdWNjZXNz
b3IoaW5kZXgpOwogICAgIGludDY0X3QgcmVzdWx0VmFsdWUgPSBtX3ZhbHVlc1tpbmRleF07Ci0g
ICAgbV9zdWNjZXNzb3JzW2luZGV4XSA9IG1fc3VjY2Vzc29ycy5sYXN0KCk7Ci0gICAgbV9zdWNj
ZXNzb3JzLnJlbW92ZUxhc3QoKTsKKyAgICBibG9jay0+c3VjY2Vzc29yKGluZGV4KSA9IGJsb2Nr
LT5zdWNjZXNzb3JzKCkubGFzdCgpOworICAgIGJsb2NrLT5zdWNjZXNzb3JzKCkucmVtb3ZlTGFz
dCgpOwogICAgIG1fdmFsdWVzW2luZGV4XSA9IG1fdmFsdWVzLmxhc3QoKTsKICAgICBtX3ZhbHVl
cy5yZW1vdmVMYXN0KCk7CiAgICAgcmV0dXJuIFN3aXRjaENhc2UocmVzdWx0VmFsdWUsIHJlc3Vs
dEJsb2NrKTsKIH0KIAotdm9pZCBTd2l0Y2hWYWx1ZTo6YXBwZW5kQ2FzZShjb25zdCBTd2l0Y2hD
YXNlJiBzd2l0Y2hDYXNlKQorYm9vbCBTd2l0Y2hWYWx1ZTo6aGFzRmFsbHRocm91Z2goY29uc3Qg
QmFzaWNCbG9jayogYmxvY2spIGNvbnN0Cit7CisgICAgdW5zaWduZWQgbnVtU3VjY2Vzc29ycyA9
IGJsb2NrLT5udW1TdWNjZXNzb3JzKCk7CisgICAgdW5zaWduZWQgbnVtVmFsdWVzID0gbV92YWx1
ZXMuc2l6ZSgpOworICAgIFJFTEVBU0VfQVNTRVJUKG51bVZhbHVlcyA9PSBudW1TdWNjZXNzb3Jz
IHx8IG51bVZhbHVlcyArIDEgPT0gbnVtU3VjY2Vzc29ycyk7CisgICAgCisgICAgcmV0dXJuIG51
bVZhbHVlcyArIDEgPT0gbnVtU3VjY2Vzc29yczsKK30KKworYm9vbCBTd2l0Y2hWYWx1ZTo6aGFz
RmFsbHRocm91Z2goKSBjb25zdAoreworICAgIHJldHVybiBoYXNGYWxsdGhyb3VnaChvd25lcik7
Cit9CisKK3ZvaWQgU3dpdGNoVmFsdWU6OnNldEZhbGx0aHJvdWdoKEJhc2ljQmxvY2sqIGJsb2Nr
LCBjb25zdCBGcmVxdWVudGVkQmxvY2smIHRhcmdldCkKK3sKKyAgICBpZiAoIWhhc0ZhbGx0aHJv
dWdoKCkpCisgICAgICAgIGJsb2NrLT5zdWNjZXNzb3JzKCkuYXBwZW5kKHRhcmdldCk7CisgICAg
ZWxzZQorICAgICAgICBibG9jay0+c3VjY2Vzc29ycygpLmxhc3QoKSA9IHRhcmdldDsKK30KKwor
dm9pZCBTd2l0Y2hWYWx1ZTo6YXBwZW5kQ2FzZShCYXNpY0Jsb2NrKiBibG9jaywgY29uc3QgU3dp
dGNoQ2FzZSYgc3dpdGNoQ2FzZSkKIHsKLSAgICBtX3N1Y2Nlc3NvcnMuYXBwZW5kKG1fc3VjY2Vz
c29ycy5sYXN0KCkpOwotICAgIG1fc3VjY2Vzc29yc1ttX3N1Y2Nlc3NvcnMuc2l6ZSgpIC0gMl0g
PSBzd2l0Y2hDYXNlLnRhcmdldCgpOworICAgIGlmICghaGFzRmFsbHRocm91Z2goKSkKKyAgICAg
ICAgYmxvY2stPnN1Y2Nlc3NvcnMoKS5hcHBlbmQoc3dpdGNoQ2FzZS50YXJnZXQoKSk7CisgICAg
ZWxzZSB7CisgICAgICAgIGJsb2NrLT5zdWNjZXNzb3JzKCkuYXBwZW5kKGJsb2NrLT5zdWNjZXNz
b3JzKCkubGFzdCgpKTsKKyAgICAgICAgYmxvY2stPnN1Y2Nlc3NvcihibG9jay0+bnVtU3VjY2Vz
c29ycygpIC0gMikgPSBzd2l0Y2hDYXNlLnRhcmdldCgpOworICAgIH0KICAgICBtX3ZhbHVlcy5h
cHBlbmQoc3dpdGNoQ2FzZS5jYXNlVmFsdWUoKSk7CiB9CiAKK3ZvaWQgU3dpdGNoVmFsdWU6OnNl
dEZhbGx0aHJvdWdoKGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgdGFyZ2V0KQoreworICAgIHNldEZh
bGx0aHJvdWdoKG93bmVyLCB0YXJnZXQpOworfQorCit2b2lkIFN3aXRjaFZhbHVlOjphcHBlbmRD
YXNlKGNvbnN0IFN3aXRjaENhc2UmIHN3aXRjaENhc2UpCit7CisgICAgYXBwZW5kQ2FzZShvd25l
ciwgc3dpdGNoQ2FzZSk7Cit9CisKK3ZvaWQgU3dpdGNoVmFsdWU6OmR1bXBTdWNjZXNzb3JzKGNv
bnN0IEJhc2ljQmxvY2sqIGJsb2NrLCBQcmludFN0cmVhbSYgb3V0KSBjb25zdAoreworICAgIC8v
IFdlIG11c3Qgbm90IGNyYXNoIGR1ZSB0byBhIG51bWJlci1vZi1zdWNjZXNzb3JzIG1pc21hdGNo
ISBTb21lb25lIGRlYnVnZ2luZyBhCisgICAgLy8gbnVtYmVyLW9mLXN1Y2Nlc3NvcnMgYnVnIHdp
bGwgd2FudCB0byBkdW1wIElSIQorICAgIGlmIChudW1DYXNlVmFsdWVzKCkgKyAxICE9IGJsb2Nr
LT5udW1TdWNjZXNzb3JzKCkpIHsKKyAgICAgICAgVmFsdWU6OmR1bXBTdWNjZXNzb3JzKGJsb2Nr
LCBvdXQpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIG91dC5wcmludChjYXNl
cyhibG9jaykpOworfQorCiB2b2lkIFN3aXRjaFZhbHVlOjpkdW1wTWV0YShDb21tYVByaW50ZXIm
IGNvbW1hLCBQcmludFN0cmVhbSYgb3V0KSBjb25zdAogewotICAgIC8vIFRoaXMgZGVzdHJ1Y3Rp
dmVseSBvdmVycmlkZXMgQ29udHJvbFZhbHVlJ3MgZHVtcE1ldGEoKS4KLSAgICBmb3IgKFN3aXRj
aENhc2Ugc3dpdGNoQ2FzZSA6ICp0aGlzKQotICAgICAgICBvdXQucHJpbnQoY29tbWEsIHN3aXRj
aENhc2UpOwotICAgIG91dC5wcmludChjb21tYSwgImZhbGxUaHJvdWdoID0gIiwgZmFsbFRocm91
Z2goKSk7CisgICAgb3V0LnByaW50KGNvbW1hLCAiY2FzZXMgPSBbIiwgbGlzdER1bXAobV92YWx1
ZXMpLCAiXSIpOwogfQogCiBWYWx1ZSogU3dpdGNoVmFsdWU6OmNsb25lSW1wbCgpIGNvbnN0CkBA
IC02OCwxMCArMTEzLDkgQEAgVmFsdWUqIFN3aXRjaFZhbHVlOjpjbG9uZUltcGwoKSBjb25zdAog
ICAgIHJldHVybiBuZXcgU3dpdGNoVmFsdWUoKnRoaXMpOwogfQogCi1Td2l0Y2hWYWx1ZTo6U3dp
dGNoVmFsdWUoT3JpZ2luIG9yaWdpbiwgVmFsdWUqIGNoaWxkLCBjb25zdCBGcmVxdWVudGVkQmxv
Y2smIGZhbGxUaHJvdWdoKQotICAgIDogQ29udHJvbFZhbHVlKFN3aXRjaCwgVm9pZCwgb3JpZ2lu
LCBjaGlsZCkKK1N3aXRjaFZhbHVlOjpTd2l0Y2hWYWx1ZShPcmlnaW4gb3JpZ2luLCBWYWx1ZSog
Y2hpbGQpCisgICAgOiBWYWx1ZShDaGVja2VkT3Bjb2RlLCBTd2l0Y2gsIFZvaWQsIG9yaWdpbiwg
Y2hpbGQpCiB7Ci0gICAgbV9zdWNjZXNzb3JzLmFwcGVuZChmYWxsVGhyb3VnaCk7CiB9CiAKIH0g
fSAvLyBuYW1lc3BhY2UgSlNDOjpCMwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
U3dpdGNoVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNT
d2l0Y2hWYWx1ZS5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNTd2l0Y2hWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCwxMiArMjgsMTMgQEAKIAog
I2lmIEVOQUJMRShCM19KSVQpCiAKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgorI2luY2x1
ZGUgIkIzQ2FzZUNvbGxlY3Rpb24uaCIKICNpbmNsdWRlICJCM1N3aXRjaENhc2UuaCIKKyNpbmNs
dWRlICJCM1ZhbHVlLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCi1jbGFz
cyBTd2l0Y2hWYWx1ZSA6IHB1YmxpYyBDb250cm9sVmFsdWUgeworY2xhc3MgU3dpdGNoVmFsdWUg
OiBwdWJsaWMgVmFsdWUgewogcHVibGljOgogICAgIHN0YXRpYyBib29sIGFjY2VwdHMoT3Bjb2Rl
IG9wY29kZSkgeyByZXR1cm4gb3Bjb2RlID09IFN3aXRjaDsgfQogCkBAIC00Nyw3MiArNDgsMjYg
QEAgcHVibGljOgogICAgIAogICAgIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgY2FzZVZhbHVlcygp
IGNvbnN0IHsgcmV0dXJuIG1fdmFsdWVzOyB9CiAKLSAgICBGcmVxdWVudGVkQmxvY2sgZmFsbFRo
cm91Z2goKSBjb25zdCB7IHJldHVybiBzdWNjZXNzb3JzKCkubGFzdCgpOyB9Ci0gICAgRnJlcXVl
bnRlZEJsb2NrJiBmYWxsVGhyb3VnaCgpIHsgcmV0dXJuIHN1Y2Nlc3NvcnMoKS5sYXN0KCk7IH0K
LQotICAgIHVuc2lnbmVkIHNpemUoKSBjb25zdCB7IHJldHVybiBudW1DYXNlVmFsdWVzKCk7IH0K
LSAgICBTd2l0Y2hDYXNlIGF0KHVuc2lnbmVkIGluZGV4KSBjb25zdAotICAgIHsKLSAgICAgICAg
cmV0dXJuIFN3aXRjaENhc2UoY2FzZVZhbHVlKGluZGV4KSwgc3VjY2Vzc29yKGluZGV4KSk7Ci0g
ICAgfQotICAgIFN3aXRjaENhc2Ugb3BlcmF0b3JbXSh1bnNpZ25lZCBpbmRleCkgY29uc3QKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBhdChpbmRleCk7Ci0gICAgfQotCi0gICAgY2xhc3MgaXRlcmF0
b3IgewotICAgIHB1YmxpYzoKLSAgICAgICAgaXRlcmF0b3IoKQotICAgICAgICAgICAgOiBtX3N3
aXRjaChudWxscHRyKQotICAgICAgICAgICAgLCBtX2luZGV4KDApCi0gICAgICAgIHsKLSAgICAg
ICAgfQotCi0gICAgICAgIGl0ZXJhdG9yKGNvbnN0IFN3aXRjaFZhbHVlJiBzd2l0Y2hWYWx1ZSwg
dW5zaWduZWQgaW5kZXgpCi0gICAgICAgICAgICA6IG1fc3dpdGNoKCZzd2l0Y2hWYWx1ZSkKLSAg
ICAgICAgICAgICwgbV9pbmRleChpbmRleCkKLSAgICAgICAgewotICAgICAgICB9Ci0KLSAgICAg
ICAgU3dpdGNoQ2FzZSBvcGVyYXRvciooKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4g
bV9zd2l0Y2gtPmF0KG1faW5kZXgpOwotICAgICAgICB9Ci0KLSAgICAgICAgaXRlcmF0b3ImIG9w
ZXJhdG9yKysoKQotICAgICAgICB7Ci0gICAgICAgICAgICBtX2luZGV4Kys7Ci0gICAgICAgICAg
ICByZXR1cm4gKnRoaXM7Ci0gICAgICAgIH0KLQotICAgICAgICBib29sIG9wZXJhdG9yPT0oY29u
c3QgaXRlcmF0b3ImIG90aGVyKSBjb25zdAotICAgICAgICB7Ci0gICAgICAgICAgICBBU1NFUlQo
bV9zd2l0Y2ggPT0gb3RoZXIubV9zd2l0Y2gpOwotICAgICAgICAgICAgcmV0dXJuIG1faW5kZXgg
PT0gb3RoZXIubV9pbmRleDsKLSAgICAgICAgfQotCi0gICAgICAgIGJvb2wgb3BlcmF0b3IhPShj
b25zdCBpdGVyYXRvciYgb3RoZXIpIGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biAhKCp0aGlzID09IG90aGVyKTsKLSAgICAgICAgfQotCi0gICAgcHJpdmF0ZToKLSAgICAgICAg
Y29uc3QgU3dpdGNoVmFsdWUqIG1fc3dpdGNoOwotICAgICAgICB1bnNpZ25lZCBtX2luZGV4Owot
ICAgIH07Ci0KLSAgICB0eXBlZGVmIGl0ZXJhdG9yIGNvbnN0X2l0ZXJhdG9yOwotCi0gICAgaXRl
cmF0b3IgYmVnaW4oKSBjb25zdCB7IHJldHVybiBpdGVyYXRvcigqdGhpcywgMCk7IH0KLSAgICBp
dGVyYXRvciBlbmQoKSBjb25zdCB7IHJldHVybiBpdGVyYXRvcigqdGhpcywgc2l6ZSgpKTsgfQor
ICAgIENhc2VDb2xsZWN0aW9uIGNhc2VzKGNvbnN0IEJhc2ljQmxvY2sqIG93bmVyKSBjb25zdCB7
IHJldHVybiBDYXNlQ29sbGVjdGlvbih0aGlzLCBvd25lcik7IH0KKyAgICBDYXNlQ29sbGVjdGlv
biBjYXNlcygpIGNvbnN0IHsgcmV0dXJuIGNhc2VzKG93bmVyKTsgfQogCiAgICAgLy8gVGhpcyBy
ZW1vdmVzIHRoZSBjYXNlIGFuZCByZW9yZGVycyB0aGluZ3MgYSBiaXQuIElmIHlvdSdyZSBpdGVy
YXRpbmcgdGhlIGNhc2VzIGZyb20gMCB0byBOLAogICAgIC8vIHRoZW4geW91IGNhbiBrZWVwIGl0
ZXJhdGluZyBhZnRlciB0aGlzIHNvIGxvbmcgYXMgeW91IHJldmlzaXQgdGhpcyBzYW1lIGluZGV4
ICh3aGljaCB3aWxsIG5vdwogICAgIC8vIGNvbnRhaW4gc29tZSBvdGhlciBjYXNlIHZhbHVlKS4g
VGhpcyByZW1vdmVzIHRoZSBjYXNlIHRoYXQgd2FzIHJlbW92ZWQuCi0gICAgU3dpdGNoQ2FzZSBy
ZW1vdmVDYXNlKHVuc2lnbmVkIGluZGV4KTsKKyAgICBTd2l0Y2hDYXNlIHJlbW92ZUNhc2UoQmFz
aWNCbG9jayosIHVuc2lnbmVkIGluZGV4KTsKIAorICAgIGJvb2wgaGFzRmFsbHRocm91Z2goY29u
c3QgQmFzaWNCbG9jayopIGNvbnN0OworICAgIGJvb2wgaGFzRmFsbHRocm91Z2goKSBjb25zdDsK
KworICAgIC8vIFRoZXNlIHR3byBmdW5jdGlvbnMgY2FuIGJlIGNhbGxlZCBpbiBhbnkgb3JkZXIu
CisgICAgdm9pZCBzZXRGYWxsdGhyb3VnaChCYXNpY0Jsb2NrKiwgY29uc3QgRnJlcXVlbnRlZEJs
b2NrJik7CisgICAgdm9pZCBhcHBlbmRDYXNlKEJhc2ljQmxvY2sqLCBjb25zdCBTd2l0Y2hDYXNl
Jik7CisgICAgCisgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBzZXRGYWxsdGhyb3VnaChjb25z
dCBGcmVxdWVudGVkQmxvY2smKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIGFwcGVuZENh
c2UoY29uc3QgU3dpdGNoQ2FzZSYpOwogCisgICAgdm9pZCBkdW1wU3VjY2Vzc29ycyhjb25zdCBC
YXNpY0Jsb2NrKiwgUHJpbnRTdHJlYW0mKSBjb25zdCBvdmVycmlkZTsKKwogcHJvdGVjdGVkOgog
ICAgIHZvaWQgZHVtcE1ldGEoQ29tbWFQcmludGVyJiwgUHJpbnRTdHJlYW0mKSBjb25zdCBvdmVy
cmlkZTsKIApAQCAtMTIxLDcgKzc2LDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICBmcmll
bmQgY2xhc3MgUHJvY2VkdXJlOwogCi0gICAgSlNfRVhQT1JUX1BSSVZBVEUgU3dpdGNoVmFsdWUo
T3JpZ2luLCBWYWx1ZSogY2hpbGQsIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgZmFsbFRocm91Z2gp
OworICAgIEpTX0VYUE9SVF9QUklWQVRFIFN3aXRjaFZhbHVlKE9yaWdpbiwgVmFsdWUqIGNoaWxk
KTsKIAogICAgIFZlY3RvcjxpbnQ2NF90PiBtX3ZhbHVlczsKIH07CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNWYWxpZGF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzVmFsaWRhdGUuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNWYWxpZGF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYg
KzM1LDcgQEAKICNpbmNsdWRlICJCM1Byb2NlZHVyZS5oIgogI2luY2x1ZGUgIkIzU2xvdEJhc2VW
YWx1ZS5oIgogI2luY2x1ZGUgIkIzU3RhY2tTbG90LmgiCisjaW5jbHVkZSAiQjNTd2l0Y2hWYWx1
ZS5oIgogI2luY2x1ZGUgIkIzVXBzaWxvblZhbHVlLmgiCiAjaW5jbHVkZSAiQjNWYWx1ZUlubGlu
ZXMuaCIKICNpbmNsdWRlICJCM1ZhcmlhYmxlLmgiCkBAIC0xMDcsOCArMTA4LDggQEAgcHVibGlj
OgogICAgICAgICBmb3IgKEJhc2ljQmxvY2sqIGJsb2NrIDogYmxvY2tzKSB7CiAgICAgICAgICAg
ICBWQUxJREFURShibG9jay0+c2l6ZSgpID49IDEsICgiQXQgIiwgKmJsb2NrKSk7CiAgICAgICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYmxvY2stPnNpemUoKSAtIDE7ICsraSkKLSAg
ICAgICAgICAgICAgICBWQUxJREFURSghQ29udHJvbFZhbHVlOjphY2NlcHRzKGJsb2NrLT5hdChp
KS0+b3Bjb2RlKCkpLCAoIkF0ICIsICpibG9jay0+YXQoaSkpKTsKLSAgICAgICAgICAgIFZBTElE
QVRFKENvbnRyb2xWYWx1ZTo6YWNjZXB0cyhibG9jay0+bGFzdCgpLT5vcGNvZGUoKSksICgiQXQg
IiwgKmJsb2NrLT5sYXN0KCkpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFURSghYmxvY2stPmF0
KGkpLT5lZmZlY3RzKCkudGVybWluYWwsICgiQXQgIiwgKmJsb2NrLT5hdChpKSkpOworICAgICAg
ICAgICAgVkFMSURBVEUoYmxvY2stPmxhc3QoKS0+ZWZmZWN0cygpLnRlcm1pbmFsLCAoIkF0ICIs
ICpibG9jay0+bGFzdCgpKSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGZvciAoQmFzaWNC
bG9jayogc3VjY2Vzc29yIDogYmxvY2stPnN1Y2Nlc3NvckJsb2NrcygpKSB7CiAgICAgICAgICAg
ICAgICAgYWxsUHJlZGVjZXNzb3JzLmFkZChzdWNjZXNzb3IsIEhhc2hTZXQ8QmFzaWNCbG9jayo+
KCkpLml0ZXJhdG9yLT52YWx1ZS5hZGQoYmxvY2spOwpAQCAtMTI5LDggKzEzMCw2IEBAIHB1Ymxp
YzoKICAgICAgICAgICAgICAgICBWQUxJREFURShjaGlsZC0+dHlwZSgpICE9IFZvaWQsICgiQXQg
IiwgKnZhbHVlLCAiLT4iLCAqY2hpbGQpKTsKICAgICAgICAgICAgIHN3aXRjaCAodmFsdWUtPm9w
Y29kZSgpKSB7CiAgICAgICAgICAgICBjYXNlIE5vcDoKLSAgICAgICAgICAgIGNhc2UgSnVtcDoK
LSAgICAgICAgICAgIGNhc2UgT29wczoKICAgICAgICAgICAgICAgICBWQUxJREFURSghdmFsdWUt
Pm51bUNoaWxkcmVuKCksICgiQXQgIiwgKnZhbHVlKSk7CiAgICAgICAgICAgICAgICAgVkFMSURB
VEUodmFsdWUtPnR5cGUoKSA9PSBWb2lkLCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAg
ICAgIGJyZWFrOwpAQCAtMzc3LDE1ICszNzYsMzYgQEAgcHVibGljOgogICAgICAgICAgICAgICAg
IFZBTElEQVRFKCF2YWx1ZS0+bnVtQ2hpbGRyZW4oKSwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAg
ICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+dHlwZSgpICE9IFZvaWQsICgiQXQgIiwgKnZhbHVl
KSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEp1bXA6CisgICAg
ICAgICAgICAgICAgVkFMSURBVEUoIXZhbHVlLT5udW1DaGlsZHJlbigpLCAoIkF0ICIsICp2YWx1
ZSkpOworICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgPT0gVm9pZCwgKCJB
dCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZU93bmVyLmdldCh2
YWx1ZSktPm51bVN1Y2Nlc3NvcnMoKSA9PSAxLCAoIkF0ICIsICp2YWx1ZSkpOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBPb3BzOgorICAgICAgICAgICAgICAgIFZB
TElEQVRFKCF2YWx1ZS0+bnVtQ2hpbGRyZW4oKSwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAg
ICAgICAgICBWQUxJREFURSh2YWx1ZS0+dHlwZSgpID09IFZvaWQsICgiQXQgIiwgKnZhbHVlKSk7
CisgICAgICAgICAgICAgICAgVkFMSURBVEUoIXZhbHVlT3duZXIuZ2V0KHZhbHVlKS0+bnVtU3Vj
Y2Vzc29ycygpLCAoIkF0ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICAgICAgY2FzZSBSZXR1cm46CiAgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPm51
bUNoaWxkcmVuKCkgPT0gMSwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAgICBWQUxJ
REFURSh2YWx1ZS0+dHlwZSgpID09IFZvaWQsICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAg
ICAgICAgVkFMSURBVEUoIXZhbHVlT3duZXIuZ2V0KHZhbHVlKS0+bnVtU3VjY2Vzc29ycygpLCAo
IkF0ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2Fz
ZSBCcmFuY2g6CisgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPm51bUNoaWxkcmVuKCkg
PT0gMSwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFURShpc0ludCh2
YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSksICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAg
ICAgVkFMSURBVEUodmFsdWUtPnR5cGUoKSA9PSBWb2lkLCAoIkF0ICIsICp2YWx1ZSkpOworICAg
ICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlT3duZXIuZ2V0KHZhbHVlKS0+bnVtU3VjY2Vzc29y
cygpID09IDIsICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICBjYXNlIFN3aXRjaDoKICAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+bnVt
Q2hpbGRyZW4oKSA9PSAxLCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAgICAgIFZBTElE
QVRFKGlzSW50KHZhbHVlLT5jaGlsZCgwKS0+dHlwZSgpKSwgKCJBdCAiLCAqdmFsdWUpKTsKICAg
ICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+dHlwZSgpID09IFZvaWQsICgiQXQgIiwgKnZh
bHVlKSk7CisgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPmFzPFN3aXRjaFZhbHVlPigp
LT5oYXNGYWxsdGhyb3VnaCh2YWx1ZU93bmVyLmdldCh2YWx1ZSkpLCAoIkF0ICIsICp2YWx1ZSkp
OworICAgICAgICAgICAgICAgIC8vIFRoaXMgdmFsaWRhdGVzIHRoZSBzYW1lIHRoaW5nIGFzIGhh
c0ZhbGx0aHJvdWdoLCBidXQgbW9yZSBleHBsaWNpdGx5LiBXZSB3YW50IHRvCisgICAgICAgICAg
ICAgICAgLy8gbWFrZSBzdXJlIHRoYXQgaWYgYW55b25lIHRyaWVzIHRvIGNoYW5nZSB0aGUgZGVm
aW5pdGlvbiBvZiBoYXNGYWxsdGhyb3VnaCwgdGhleQorICAgICAgICAgICAgICAgIC8vIHdpbGwg
ZmVlbCBzb21lIHBhaW4gaGVyZSwgc2luY2UgdGhpcyBpcyBmdW5kYW1lbnRhbC4KKyAgICAgICAg
ICAgICAgICBWQUxJREFURSh2YWx1ZU93bmVyLmdldCh2YWx1ZSktPm51bVN1Y2Nlc3NvcnMoKSA9
PSB2YWx1ZS0+YXM8U3dpdGNoVmFsdWU+KCktPm51bUNhc2VWYWx1ZXMoKSArIDEsICgiQXQgIiwg
KnZhbHVlKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEs
NyArMzEsNiBAQAogI2luY2x1ZGUgIkIzQXJndW1lbnRSZWdWYWx1ZS5oIgogI2luY2x1ZGUgIkIz
Qm90dG9tUHJvdmlkZXIuaCIKICNpbmNsdWRlICJCM0NDYWxsVmFsdWUuaCIKLSNpbmNsdWRlICJC
M0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzTWVtb3J5VmFsdWUuaCIKICNpbmNsdWRlICJC
M09yaWdpbkR1bXAuaCIKICNpbmNsdWRlICJCM1Byb2NlZHVyZUlubGluZXMuaCIKQEAgLTQyLDYg
KzQxLDcgQEAKICNpbmNsdWRlICJCM1ZhbHVlS2V5SW5saW5lcy5oIgogI2luY2x1ZGUgIkIzVmFy
aWFibGVWYWx1ZS5oIgogI2luY2x1ZGUgPHd0Zi9Db21tYVByaW50ZXIuaD4KKyNpbmNsdWRlIDx3
dGYvTGlzdER1bXAuaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0uaD4KIAogbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CkBAIC0xMjUsNiArMTI1LDUwIEBAIHZvaWQgVmFs
dWU6OnJlcGxhY2VXaXRoUGhpKCkKICAgICB0aGlzLT5tX2luZGV4ID0gaW5kZXg7CiB9CiAKK3Zv
aWQgVmFsdWU6OnJlcGxhY2VXaXRoSnVtcChCYXNpY0Jsb2NrKiBvd25lciwgY29uc3QgRnJlcXVl
bnRlZEJsb2NrJiB0YXJnZXQpCit7CisgICAgUkVMRUFTRV9BU1NFUlQob3duZXItPmxhc3QoKSA9
PSB0aGlzKTsKKyAgICAKKyAgICB1bnNpZ25lZCBpbmRleCA9IG1faW5kZXg7CisgICAgT3JpZ2lu
IG9yaWdpbiA9IG1fb3JpZ2luOworICAgIAorICAgIHRoaXMtPn5WYWx1ZSgpOworICAgIAorICAg
IG5ldyAodGhpcykgVmFsdWUoSnVtcCwgVm9pZCwgb3JpZ2luKTsKKyAgICAKKyAgICB0aGlzLT5v
d25lciA9IG93bmVyOworICAgIHRoaXMtPm1faW5kZXggPSBpbmRleDsKKyAgICAKKyAgICBvd25l
ci0+c2V0U3VjY2Vzc29ycyh0YXJnZXQpOworfQorCit2b2lkIFZhbHVlOjpyZXBsYWNlV2l0aE9v
cHMoQmFzaWNCbG9jayogb3duZXIpCit7CisgICAgUkVMRUFTRV9BU1NFUlQob3duZXItPmxhc3Qo
KSA9PSB0aGlzKTsKKyAgICAKKyAgICB1bnNpZ25lZCBpbmRleCA9IG1faW5kZXg7CisgICAgT3Jp
Z2luIG9yaWdpbiA9IG1fb3JpZ2luOworICAgIAorICAgIHRoaXMtPn5WYWx1ZSgpOworICAgIAor
ICAgIG5ldyAodGhpcykgVmFsdWUoT29wcywgVm9pZCwgb3JpZ2luKTsKKyAgICAKKyAgICB0aGlz
LT5vd25lciA9IG93bmVyOworICAgIHRoaXMtPm1faW5kZXggPSBpbmRleDsKKyAgICAKKyAgICBv
d25lci0+Y2xlYXJTdWNjZXNzb3JzKCk7Cit9CisKK3ZvaWQgVmFsdWU6OnJlcGxhY2VXaXRoSnVt
cChjb25zdCBGcmVxdWVudGVkQmxvY2smIHRhcmdldCkKK3sKKyAgICByZXBsYWNlV2l0aEp1bXAo
b3duZXIsIHRhcmdldCk7Cit9CisKK3ZvaWQgVmFsdWU6OnJlcGxhY2VXaXRoT29wcygpCit7Cisg
ICAgcmVwbGFjZVdpdGhPb3BzKG93bmVyKTsKK30KKwogdm9pZCBWYWx1ZTo6ZHVtcChQcmludFN0
cmVhbSYgb3V0KSBjb25zdAogewogICAgIGJvb2wgaXNDb25zdGFudCA9IGZhbHNlOwpAQCAtMTg5
LDYgKzIzMywxOSBAQCB2b2lkIFZhbHVlOjpkZWVwRHVtcChjb25zdCBQcm9jZWR1cmUqIHByCiAg
ICAgb3V0LnByaW50KCIpIik7CiB9CiAKK3ZvaWQgVmFsdWU6OmR1bXBTdWNjZXNzb3JzKGNvbnN0
IEJhc2ljQmxvY2sqIGJsb2NrLCBQcmludFN0cmVhbSYgb3V0KSBjb25zdAoreworICAgIC8vIE5v
dGUgdGhhdCB0aGlzIG11c3Qgbm90IGNyYXNoIGlmIHdlIGhhdmUgdGhlIHdyb25nIG51bWJlciBv
ZiBzdWNjZXNzb3JzLCBzaW5jZSBzb21lb25lCisgICAgLy8gZGVidWdnaW5nIGEgbnVtYmVyLW9m
LXN1Y2Nlc3NvcnMgYnVnIHdpbGwgcHJvYmFibHkgd2FudCB0byBkdW1wIElSIQorICAgIAorICAg
IGlmIChvcGNvZGUoKSA9PSBCcmFuY2ggJiYgYmxvY2stPm51bVN1Y2Nlc3NvcnMoKSA9PSAyKSB7
CisgICAgICAgIG91dC5wcmludCgiVGhlbjoiLCBibG9jay0+dGFrZW4oKSwgIiwgRWxzZToiLCBi
bG9jay0+bm90VGFrZW4oKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgb3V0
LnByaW50KGxpc3REdW1wKGJsb2NrLT5zdWNjZXNzb3JzKCkpKTsKK30KKwogVmFsdWUqIFZhbHVl
OjpuZWdDb25zdGFudChQcm9jZWR1cmUmKSBjb25zdAogewogICAgIHJldHVybiBudWxscHRyOwpA
QCAtNzEzLDYgKzc3MCwxMCBAQCBUeXBlIFZhbHVlOjp0eXBlRm9yKE9wY29kZSBvcGNvZGUsIFZh
bHVlCiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIFZvaWQ7CiAgICAgY2FzZSBOb3A6CisgICAg
Y2FzZSBKdW1wOgorICAgIGNhc2UgQnJhbmNoOgorICAgIGNhc2UgUmV0dXJuOgorICAgIGNhc2Ug
T29wczoKICAgICAgICAgcmV0dXJuIFZvaWQ7CiAgICAgY2FzZSBTZWxlY3Q6CiAgICAgICAgIEFT
U0VSVChzZWNvbmRDaGlsZCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmgJKHJl
dmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkFpckFyZy5oIgogI2lu
Y2x1ZGUgIkIzRWZmZWN0cy5oIgorI2luY2x1ZGUgIkIzRnJlcXVlbnRlZEJsb2NrLmgiCiAjaW5j
bHVkZSAiQjNPcGNvZGUuaCIKICNpbmNsdWRlICJCM09yaWdpbi5oIgogI2luY2x1ZGUgIkIzU3Bh
cnNlQ29sbGVjdGlvbi5oIgpAQCAtMTA5LDkgKzExMCwxOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBy
ZXBsYWNlV2l0aE5vcElnbm9yaW5nVHlwZSgpOwogICAgIAogICAgIHZvaWQgcmVwbGFjZVdpdGhQ
aGkoKTsKKyAgICAKKyAgICAvLyBUaGVzZSB0cmFuc2Zvcm1hdGlvbnMgYXJlIG9ubHkgdmFsaWQg
Zm9yIHRlcm1pbmFscy4KKyAgICB2b2lkIHJlcGxhY2VXaXRoSnVtcChCYXNpY0Jsb2NrKiBvd25l
ciwgY29uc3QgRnJlcXVlbnRlZEJsb2NrJik7CisgICAgdm9pZCByZXBsYWNlV2l0aE9vcHMoQmFz
aWNCbG9jayogb3duZXIpOworICAgIAorICAgIC8vIFlvdSBjYW4gdXNlIHRoaXMgZm9ybSBpZiBv
d25lcnMgYXJlIHZhbGlkLiBUaGV5J3JlIHVzdWFsbHkgbm90IHZhbGlkLgorICAgIHZvaWQgcmVw
bGFjZVdpdGhKdW1wKGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYpOworICAgIHZvaWQgcmVwbGFjZVdp
dGhPb3BzKCk7CiAKICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKICAgICB2b2lk
IGRlZXBEdW1wKGNvbnN0IFByb2NlZHVyZSosIFByaW50U3RyZWFtJikgY29uc3Q7CisgICAgCisg
ICAgdmlydHVhbCB2b2lkIGR1bXBTdWNjZXNzb3JzKGNvbnN0IEJhc2ljQmxvY2sqLCBQcmludFN0
cmVhbSYpIGNvbnN0OwogCiAgICAgLy8gVGhpcyBpcyBob3cgeW91IGNhc3QgVmFsdWVzLiBGb3Ig
ZXhhbXBsZSwgaWYgeW91IHdhbnQgdG8gZG8gc29tZXRoaW5nIHByb3ZpZGVkIHRoYXQgd2UgaGF2
ZSBhCiAgICAgLy8gQXJndW1lbnRSZWdWYWx1ZSwgeW91IGNhbiBkbzoKQEAgLTIyMyw3ICsyMzQs
NyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0xpa2VOb25aZXJvKCkgY29uc3QgeyByZXR1cm4gYXNU
cmlTdGF0ZSgpID09IFRydWVUcmlTdGF0ZTsgfQogCiAgICAgRWZmZWN0cyBlZmZlY3RzKCkgY29u
c3Q7Ci0KKyAgICAKICAgICAvLyBUaGlzIHJldHVybnMgYSBWYWx1ZUtleSB0aGF0IGRlc2NyaWJl
cyB0aGF0IHRoaXMgVmFsdWUgcmV0dXJucyB3aGVuIGl0IGV4ZWN1dGVzLiBSZXR1cm5zIGFuCiAg
ICAgLy8gZW1wdHkgVmFsdWVLZXkgaWYgdGhpcyBWYWx1ZSBpcyBpbXB1cmUuIE5vdGUgdGhhdCBh
biBvcGVyYXRpb24gdGhhdCByZXR1cm5zIFZvaWQgY291bGQgc3RpbGwKICAgICAvLyBoYXZlIGEg
bm9uLWVtcHR5IFZhbHVlS2V5LiBUaGlzIGhhcHBlbnMgZm9yIGV4YW1wbGUgd2l0aCBDaGVjayBv
cGVyYXRpb25zLgpAQCAtMjY0LDYgKzI3NSw4IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgRnJh
bWVQb2ludGVyOgogICAgICAgICBjYXNlIE5vcDoKICAgICAgICAgY2FzZSBQaGk6CisgICAgICAg
IGNhc2UgSnVtcDoKKyAgICAgICAgY2FzZSBPb3BzOgogICAgICAgICAgICAgaWYgKFVOTElLRUxZ
KG51bUFyZ3MpKQogICAgICAgICAgICAgICAgIGJhZE9wY29kZShvcGNvZGUsIG51bUFyZ3MpOwog
ICAgICAgICAgICAgYnJlYWs7CkBAIC0yODQsNiArMjk3LDggQEAgcHJpdmF0ZToKICAgICAgICAg
Y2FzZSBEb3VibGVUb0Zsb2F0OgogICAgICAgICBjYXNlIElUb0Y6CiAgICAgICAgIGNhc2UgQml0
d2lzZUNhc3Q6CisgICAgICAgIGNhc2UgQnJhbmNoOgorICAgICAgICBjYXNlIFJldHVybjoKICAg
ICAgICAgICAgIGlmIChVTkxJS0VMWShudW1BcmdzICE9IDEpKQogICAgICAgICAgICAgICAgIGJh
ZE9wY29kZShvcGNvZGUsIG51bUFyZ3MpOwogICAgICAgICAgICAgYnJlYWs7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDggKzMzLDgg
QEAKICNpbmNsdWRlICJCM0NvbXB1dGVEaXZpc2lvbk1hZ2ljLmgiCiAjaW5jbHVkZSAiQjNDb25z
dDMyVmFsdWUuaCIKICNpbmNsdWRlICJCM0NvbnN0UHRyVmFsdWUuaCIKLSNpbmNsdWRlICJCM0Nv
bnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzRWZmZWN0cy5oIgorI2luY2x1ZGUgIkIzUG9seUp1
bXBWYWx1ZS5oIgogI2luY2x1ZGUgIkIzTWF0aEV4dHJhcy5oIgogI2luY2x1ZGUgIkIzTWVtb3J5
VmFsdWUuaCIKICNpbmNsdWRlICJCM1Byb2NlZHVyZS5oIgpAQCAtNDYsNiArNDYsNyBAQAogI2lu
Y2x1ZGUgIkIzVXBzaWxvblZhbHVlLmgiCiAjaW5jbHVkZSAiQjNWYWxpZGF0ZS5oIgogI2luY2x1
ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCisjaW5jbHVkZSAiQjNWYXJpYWJsZVZhbHVlLmgiCiAjaW5j
bHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiSW5pdGlhbGl6ZVRocmVhZGluZy5oIgog
I2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKQEAgLTU0LDYgKzU1LDcgQEAKICNpbmNsdWRlICJWTS5o
IgogI2luY2x1ZGUgPGNtYXRoPgogI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDx3dGYvTGlz
dER1bXAuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9OdW1iZXJPZkNv
cmVzLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgpAQCAtNzUsNiArNzcsMTEgQEAgdXNp
bmcgbmFtZXNwYWNlIEpTQzo6QjM7CiAKIG5hbWVzcGFjZSB7CiAKK2Jvb2wgc2hvdWxkQmVWZXJi
b3NlKCkKK3sKKyAgICByZXR1cm4gc2hvdWxkRHVtcElSKEIzTW9kZSk7Cit9CisKIFN0YXRpY0xv
Y2sgY3Jhc2hMb2NrOwogCiAvLyBOb3RoaW5nIGZhbmN5IGZvciBub3c7IHdlIGp1c3QgdXNlIHRo
ZSBleGlzdGluZyBXVEYgYXNzZXJ0aW9uIG1hY2hpbmVyeS4KQEAgLTE5NCw3ICsyMDEsNyBAQCB2
b2lkIHRlc3Q0MigpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogY29uc3Q0MiA9IHJvb3QtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0Mik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY29uc3Q0Mik7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNvbnN0NDIpOwog
CiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MpID09IDQyKTsKIH0KQEAgLTIwNCw3
ICsyMTEsNyBAQCB2b2lkIHRlc3RMb2FkNDIoKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgaW50IHggPSA0MjsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkLCBJbnQzMiwgT3Jp
Z2luKCksCkBAIC0yMjAsNyArMjI3LDcgQEAgdm9pZCB0ZXN0TG9hZFdpdGhPZmZzZXRJbXBsKGlu
dDMyX3Qgb2ZmcwogICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwog
ICAgICAgICBpbnQ2NF90IHggPSAtNDI7CiAgICAgICAgIFZhbHVlKiBiYXNlID0gcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjApOwotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAg
ICAgICAgICAgICAgcHJvYywgTG9hZCwgSW50NjQsIE9yaWdpbigpLApAQCAtMjM1LDcgKzI0Miw3
IEBAIHZvaWQgdGVzdExvYWRXaXRoT2Zmc2V0SW1wbChpbnQzMl90IG9mZnMKICAgICAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICAgICAgaW50MzJfdCB4ID0gLTQy
OwogICAgICAgICBWYWx1ZSogYmFzZSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICBy
b290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIExvYWQs
IEludDMyLCBPcmlnaW4oKSwKQEAgLTI4OCw3ICsyOTUsNyBAQCB2b2lkIHRlc3RBcmcoaW50IGFy
Z3VtZW50KQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogCkBAIC0yOTksNyArMzA2LDcgQEAgdm9p
ZCB0ZXN0UmV0dXJuQ29uc3Q2NChpbnQ2NF90IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9j
OwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpKTsKIApAQCAtMzExLDcgKzMxOCw3
IEBAIHZvaWQgdGVzdEFkZEFyZyhpbnQgYSkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgdmFs
dWUsIHZhbHVlKSk7CiAKQEAgLTMyMiw3ICszMjksNyBAQCB2b2lkIHRlc3RBZGRBcmdzKGludCBh
LCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IEFkZCwgT3JpZ2luKCksCkBAIC0zMzYsNyArMzQzLDcgQEAgdm9pZCB0ZXN0QWRkQXJnSW1tKGlu
dCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIEFkZCwgT3JpZ2luKCksCkBAIC0zNTAsNyArMzU3LDcgQEAgdm9pZCB0ZXN0QWRkSW1tQXJn
KGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIEFkZCwgT3JpZ2luKCksCkBAIC0zNzAsNyArMzc3LDcgQEAgdm9pZCB0ZXN0QWRkQXJn
TWVtKGludDY0X3QgYSwgaW50NjRfdCBiKQogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCksCiAgICAg
ICAgIGxvYWQpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUs
IE9yaWdpbigpLCByZXN1bHQsIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBpbnQ2NF90IGlucHV0T3V0cHV0ID0gYjsKICAgICBD
SEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCBhLCAmaW5wdXRPdXRwdXQpKTsKQEAg
LTM4Niw3ICszOTMsNyBAQCB2b2lkIHRlc3RBZGRNZW1BcmcoaW50NjRfdCBhLCBpbnQ2NF90IGIp
CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBP
cmlnaW4oKSwKICAgICAgICAgbG9hZCwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50
UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1
bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAm
YSwgYikgPT0gYSArIGIpOwogfQpAQCAtNDAxLDcgKzQwOCw3IEBAIHZvaWQgdGVzdEFkZEltbU1l
bShpbnQ2NF90IGEsIGludDY0X3QgYikKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpLAogICAgICAgICBsb2FkKTsKICAgICByb290LT5hcHBl
bmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBhZGRyZXNz
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
b290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAg
aW50NjRfdCBpbnB1dE91dHB1dCA9IGI7CiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50Pihw
cm9jLCAmaW5wdXRPdXRwdXQpKTsKQEAgLTQxNCw3ICs0MjEsNyBAQCB2b2lkIHRlc3RBZGRBcmcz
MihpbnQgYSkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZh
bHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBB
ZGQsIE9yaWdpbigpLCB2YWx1ZSwgdmFsdWUpKTsKIApAQCAtNDI1LDcgKzQzMiw3IEBAIHZvaWQg
dGVzdEFkZEFyZ3MzMihpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
CiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAtNDQ5LDcgKzQ1Niw3IEBAIHZv
aWQgdGVzdEFkZEFyZ01lbTMyKGludDMyX3QgYSwgaW50MzJfdCAKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjApKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBBZGQsIE9yaWdpbigpLCBhcmd1bWVudCwgbG9hZCk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1l
bW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgYWRkcmVzcyk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9v
dC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGludDMyX3Qg
aW5wdXRPdXRwdXQgPSBiOwogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2Ms
IGEsICZpbnB1dE91dHB1dCkpOwpAQCAtNDY1LDcgKzQ3Miw3IEBAIHZvaWQgdGVzdEFkZE1lbUFy
ZzMyKGludDMyX3QgYSwgaW50MzJfdCAKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjEpKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBB
ZGQsIE9yaWdpbigpLCBsb2FkLCBhcmd1bWVudCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAg
IENIRUNLKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgJmEsIGIpID09IGEgKyBiKTsKIH0K
QEAgLTQ4MCw3ICs0ODcsNyBAQCB2b2lkIHRlc3RBZGRJbW1NZW0zMihpbnQzMl90IGEsIGludDMy
X3QgCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBhKSwKICAgICAgICAgbG9hZCk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihw
cm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgYWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGludDMyX3QgaW5wdXRPdXRwdXQg
PSBiOwogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludD4ocHJvYywgJmlucHV0T3V0cHV0KSk7
CkBAIC00OTUsNyArNTAyLDcgQEAgdm9pZCB0ZXN0QWRkQXJnWmVyb0ltbVpEZWYoKQogICAgICAg
ICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAg
VmFsdWUqIGNvbnN0WmVybyA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCAwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQs
IE9yaWdpbigpLApAQCAtNTE1LDcgKzUyMiw3IEBAIHZvaWQgdGVzdEFkZExvYWRUd2ljZSgpCiAg
ICAgICAgIFZhbHVlKiBsb2FkID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJnZhbHVlKSk7Ci0gICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBsb2FkLCBs
b2FkKSk7CiAKQEAgLTUzMiw3ICs1MzksNyBAQCB2b2lkIHRlc3RBZGRBcmdEb3VibGUoZG91Ymxl
IGEpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIHZhbHVlLCB2YWx1ZSkpOwogCkBAIC01NDUs
NyArNTUyLDcgQEAgdm9pZCB0ZXN0QWRkQXJnc0RvdWJsZShkb3VibGUgYSwgZG91YmxlIAogICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5m
bzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjEpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikp
OwogCkBAIC01NTgsNyArNTY1LDcgQEAgdm9pZCB0ZXN0QWRkQXJnSW1tRG91YmxlKGRvdWJsZSBh
LCBkb3VibAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFs
dWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+
YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAt
NTcxLDcgKzU3OCw3IEBAIHZvaWQgdGVzdEFkZEltbUFyZ0RvdWJsZShkb3VibGUgYSwgZG91YmwK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1
ZUEgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEp
OwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTU4NCw3ICs1
OTEsNyBAQCB2b2lkIHRlc3RBZGRJbW1zRG91YmxlKGRvdWJsZSBhLCBkb3VibGUgCiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9v
dC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBW
YWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBiKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgdmFs
dWVBLCB2YWx1ZUIpKTsKIApAQCAtNjAwLDcgKzYwNyw3IEBAIHZvaWQgdGVzdEFkZEFyZ0Zsb2F0
KGZsb2F0IGEpCiAgICAgVmFsdWUqIGZsb2F0VmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUqIHJl
c3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgZmxvYXRW
YWx1ZSwgZmxvYXRWYWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQzMik7CiAKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50
MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMy
X3Q+KGEgKyBhKSkpOwpAQCAtNjE4LDcgKzYyNSw3IEBAIHZvaWQgdGVzdEFkZEFyZ3NGbG9hdChm
bG9hdCBhLCBmbG9hdCBiKQogICAgIFZhbHVlKiBmbG9hdFZhbHVlMiA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDJpbnQzMik7CiAg
ICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmln
aW4oKSwgZmxvYXRWYWx1ZTEsIGZsb2F0VmFsdWUyKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBp
bGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNl
X2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSArIGIpKSk7CiB9CkBA
IC02MzMsNyArNjQwLDcgQEAgdm9pZCB0ZXN0QWRkQXJnSW1tRmxvYXQoZmxvYXQgYSwgZmxvYXQg
YgogICAgIFZhbHVlKiBjb25zdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGZsb2F0VmFsdWUsIGNvbnN0VmFsdWUpOwog
ICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lz
ZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAg
Q0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nh
c3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSArIGIpKSk7CiB9CkBAIC02
NDgsNyArNjU1LDcgQEAgdm9pZCB0ZXN0QWRkSW1tQXJnRmxvYXQoZmxvYXQgYSwgZmxvYXQgYgog
ICAgIFZhbHVlKiBjb25zdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGNvbnN0VmFsdWUsIGZsb2F0VmFsdWUpOwogICAg
IFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNh
c3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hF
Q0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSArIGIpKSk7CiB9CkBAIC02NjEs
NyArNjY4LDcgQEAgdm9pZCB0ZXN0QWRkSW1tc0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIpCiAgICAg
VmFsdWUqIGNvbnN0VmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGNvbnN0VmFsdWUxLCBjb25zdFZhbHVlMik7CiAgICAg
VmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2Fz
dCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVD
Syhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MpLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4oYSArIGIpKSk7CiB9CkBAIC02NzcsNyArNjg0LDcgQEAgdm9pZCB0ZXN0QWRkQXJn
RmxvYXRXaXRoVXNlbGVzc0RvdWJsZUNvbgogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGFzRG91YmxlLCBhc0RvdWJsZSk7CiAg
ICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3Vi
bGVUb0Zsb2F0LCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1
bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29t
cGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oYSArIGEpKSk7CiB9CkBAIC02OTcsNyArNzA0LDcgQEAgdm9pZCB0
ZXN0QWRkQXJnc0Zsb2F0V2l0aFVzZWxlc3NEb3VibGVDbwogICAgIFZhbHVlKiByZXN1bHQgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGFzRG91YmxlMSwgYXNE
b3VibGUyKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCByZXN1bHQpOwogICAgIFZhbHVlKiByZXN1
bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigp
LCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lk
ZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90
PihhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEg
KyBiKSkpOwogfQpAQCAtNzE5LDcgKzcyNiw3IEBAIHZvaWQgdGVzdEFkZEFyZ3NGbG9hdFdpdGhF
ZmZlY3RmdWxEb3VibGUKICAgICBWYWx1ZSogZG91YmxlQWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIy
KTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4o
KSwgcmVzdWx0LCBkb3VibGVBZGRyZXNzKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgZG91YmxlIGVmZmVjdCA9IDA7CiAgICAg
Q0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nh
c3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSwgJmVmZmVjdCksIGJpdHdp
c2VfY2FzdDxpbnQzMl90PihhICsgYikpKTsKQEAgLTczMiw3ICs3MzksNyBAQCB2b2lkIHRlc3RN
dWxBcmcoaW50IGEpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAg
ICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICBwcm9jLCBU
cnVuYywgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIE11bCwgT3JpZ2luKCksIHZhbHVlLCB2YWx1ZSkpOwogCkBAIC03NTksNyArNzY2LDcgQEAg
dm9pZCB0ZXN0TXVsQXJnU3RvcmUoaW50IGEpCiAgICAgICAgIHByb2MsIFN0b3JlLCBPcmlnaW4o
KSwgbXVsLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksICZtdWxTbG90KSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAw
KSk7CiAKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIGEpKTsKQEAgLTc3NCw3
ICs3ODEsNyBAQCB2b2lkIHRlc3RNdWxBZGRBcmcoaW50IGEpCiAgICAgVmFsdWUqIHZhbHVlID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCkBAIC03ODgsNyArNzk1LDcgQEAgdm9pZCB0ZXN0TXVs
QXJncyhpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBNdWwsIE9yaWdpbigpLApAQCAtODAyLDcgKzgwOSw3IEBAIHZvaWQgdGVzdE11
bEFyZ0ltbShpbnQ2NF90IGEsIGludDY0X3QgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIE11bCwgT3JpZ2luKCksCkBAIC04MTYsNyArODIzLDcgQEAg
dm9pZCB0ZXN0TXVsSW1tQXJnKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKICAgICAgICAgICAgIHByb2MsIE11bCwgT3JpZ2luKCksCkBAIC04MzAsNyArODM3LDcg
QEAgdm9pZCB0ZXN0TXVsQXJnczMyKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIE11bCwgT3JpZ2luKCksCkBAIC04NTMsNyArODYw
LDcgQEAgdm9pZCB0ZXN0TXVsTG9hZFR3aWNlKCkKICAgICAgICAgVmFsdWUqIGxvYWQgPSByb290
LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZCwgSW50MzIs
IE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAmdmFsdWUpKTsKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGxvYWQsIGxvYWQpKTsKIApAQCAtODc1LDcgKzg4Miw3
IEBAIHZvaWQgdGVzdE11bEFkZEFyZ3NMZWZ0KCkKICAgICBWYWx1ZSogYXJnMiA9IHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIyKTsKICAgICBWYWx1ZSogbXVsdGlwbGllZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgTXVsLCBPcmlnaW4oKSwgYXJnMCwgYXJnMSk7CiAgICAgVmFsdWUqIGFkZGVkID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBtdWx0aXBsaWVkLCBhcmcy
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBhZGRlZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIGFkZGVkKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAK
QEAgLTg5OSw3ICs5MDYsNyBAQCB2b2lkIHRlc3RNdWxBZGRBcmdzUmlnaHQoKQogICAgIFZhbHVl
KiBhcmcyID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjIpOwogICAgIFZhbHVlKiBtdWx0aXBsaWVkID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBhcmcxLCBhcmcyKTsKICAgICBW
YWx1ZSogYWRkZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCks
IGFyZzAsIG11bHRpcGxpZWQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOwogCiAgICAgYXV0byBjb2RlID0g
Y29tcGlsZShwcm9jKTsKIApAQCAtOTI2LDcgKzkzMyw3IEBAIHZvaWQgdGVzdE11bEFkZEFyZ3NM
ZWZ0MzIoKQogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMikpOwogICAgIFZhbHVlKiBtdWx0aXBsaWVk
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBhcmcwLCBhcmcx
KTsKICAgICBWYWx1ZSogYWRkZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwg
T3JpZ2luKCksIG11bHRpcGxpZWQsIGFyZzIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOwogCiAgICAgYXV0
byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAtOTUzLDcgKzk2MCw3IEBAIHZvaWQgdGVzdE11
bEFkZEFyZ3NSaWdodDMyKCkKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpKTsKICAgICBWYWx1ZSog
bXVsdGlwbGllZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwg
YXJnMSwgYXJnMik7CiAgICAgVmFsdWUqIGFkZGVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBBZGQsIE9yaWdpbigpLCBhcmcwLCBtdWx0aXBsaWVkKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsK
IAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKQEAgLTk3Nyw3ICs5ODQsNyBAQCB2
b2lkIHRlc3RNdWxTdWJBcmdzTGVmdCgpCiAgICAgVmFsdWUqIGFyZzIgPSByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BS
Mik7CiAgICAgVmFsdWUqIG11bHRpcGxpZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IE11bCwgT3JpZ2luKCksIGFyZzAsIGFyZzEpOwogICAgIFZhbHVlKiBhZGRlZCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgbXVsdGlwbGllZCwgYXJnMik7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
YWRkZWQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBhZGRlZCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC0x
MDAxLDcgKzEwMDgsNyBAQCB2b2lkIHRlc3RNdWxTdWJBcmdzUmlnaHQoKQogICAgIFZhbHVlKiBh
cmcyID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjIpOwogICAgIFZhbHVlKiBtdWx0aXBsaWVkID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBhcmcxLCBhcmcyKTsKICAgICBWYWx1
ZSogYWRkZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIGFy
ZzAsIG11bHRpcGxpZWQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOwogCiAgICAgYXV0byBjb2RlID0gY29t
cGlsZShwcm9jKTsKIApAQCAtMTAyOCw3ICsxMDM1LDcgQEAgdm9pZCB0ZXN0TXVsU3ViQXJnc0xl
ZnQzMigpCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKSk7CiAgICAgVmFsdWUqIG11bHRpcGxpZWQg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGFyZzAsIGFyZzEp
OwogICAgIFZhbHVlKiBhZGRlZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBP
cmlnaW4oKSwgbXVsdGlwbGllZCwgYXJnMik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOworICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CiAKICAgICBhdXRv
IGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC0xMDU1LDcgKzEwNjIsNyBAQCB2b2lkIHRlc3RN
dWxTdWJBcmdzUmlnaHQzMigpCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKSk7CiAgICAgVmFsdWUq
IG11bHRpcGxpZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCks
IGFyZzEsIGFyZzIpOwogICAgIFZhbHVlKiBhZGRlZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgU3ViLCBPcmlnaW4oKSwgYXJnMCwgbXVsdGlwbGllZCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7
CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC0xMDc5LDcgKzEwODYsNyBA
QCB2b2lkIHRlc3RNdWxOZWdBcmdzKCkKICAgICBWYWx1ZSogbXVsdGlwbGllZCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgYXJnMCwgYXJnMSk7CiAgICAgVmFs
dWUqIHplcm8gPSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
MCk7CiAgICAgVmFsdWUqIGFkZGVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIs
IE9yaWdpbigpLCB6ZXJvLCBtdWx0aXBsaWVkKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKIAogICAgIGF1
dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKQEAgLTExMDMsNyArMTExMCw3IEBAIHZvaWQgdGVz
dE11bE5lZ0FyZ3MzMigpCiAgICAgVmFsdWUqIG11bHRpcGxpZWQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGFyZzAsIGFyZzEpOwogICAgIFZhbHVlKiB6ZXJv
ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApOwogICAg
IFZhbHVlKiBhZGRlZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4o
KSwgemVybywgbXVsdGlwbGllZCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CiAKICAgICBhdXRvIGNvZGUg
PSBjb21waWxlKHByb2MpOwogCkBAIC0xMTIwLDcgKzExMjcsNyBAQCB2b2lkIHRlc3RNdWxBcmdE
b3VibGUoZG91YmxlIGEpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIHZhbHVlLCB2YWx1ZSkp
OwogCkBAIC0xMTMzLDcgKzExNDAsNyBAQCB2b2lkIHRlc3RNdWxBcmdzRG91YmxlKGRvdWJsZSBh
LCBkb3VibGUgCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBW
YWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFy
Z3VtZW50RlBSMSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIHZh
bHVlQSwgdmFsdWVCKSk7CiAKQEAgLTExNDYsNyArMTE1Myw3IEBAIHZvaWQgdGVzdE11bEFyZ0lt
bURvdWJsZShkb3VibGUgYSwgZG91YmwKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUq
IHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgYik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIHZhbHVlQSwg
dmFsdWVCKSk7CiAKQEAgLTExNTksNyArMTE2Niw3IEBAIHZvaWQgdGVzdE11bEltbUFyZ0RvdWJs
ZShkb3VibGUgYSwgZG91YmwKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVC
KSk7CiAKQEAgLTExNzIsNyArMTE3OSw3IEBAIHZvaWQgdGVzdE11bEltbXNEb3VibGUoZG91Ymxl
IGEsIGRvdWJsZSAKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAg
IFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8Q29uc3RE
b3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBNdWwsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC0xMTg4LDcgKzExOTUsNyBA
QCB2b2lkIHRlc3RNdWxBcmdGbG9hdChmbG9hdCBhKQogICAgIFZhbHVlKiBmbG9hdFZhbHVlID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3Vt
ZW50MzIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IE11bCwgT3JpZ2luKCksIGZsb2F0VmFsdWUsIGZsb2F0VmFsdWUpOwogICAgIFZhbHVlKiByZXN1
bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigp
LCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAKICAgICBDSEVDSyhpc0lkZW50
aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90Pihh
KSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhICogYSkpKTsKQEAgLTEyMDYsNyArMTIxMyw3IEBA
IHZvaWQgdGVzdE11bEFyZ3NGbG9hdChmbG9hdCBhLCBmbG9hdCBiKQogICAgIFZhbHVlKiBmbG9h
dFZhbHVlMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdp
bigpLCBhcmd1bWVudDJpbnQzMik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZTEsIGZsb2F0VmFsdWUyKTsK
ICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdp
c2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAg
IENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9j
YXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4oYSAqIGIpKSk7CiB9CkBAIC0xMjIxLDcgKzEyMjgsNyBAQCB2b2lkIHRlc3RNdWxB
cmdJbW1GbG9hdChmbG9hdCBhLCBmbG9hdCBiCiAgICAgVmFsdWUqIGNvbnN0VmFsdWUgPSByb290
LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7CiAgICAgVmFs
dWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwg
ZmxvYXRWYWx1ZSwgY29uc3RWYWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVu
PGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxp
bnQzMl90PihhICogYikpKTsKIH0KQEAgLTEyMzYsNyArMTI0Myw3IEBAIHZvaWQgdGVzdE11bElt
bUFyZ0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIKICAgICBWYWx1ZSogY29uc3RWYWx1ZSA9IHJvb3Qt
PmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1
ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBj
b25zdFZhbHVlLCBmbG9hdFZhbHVlKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1
bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48
aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KGEgKiBiKSkpOwogfQpAQCAtMTI0OSw3ICsxMjU2LDcgQEAgdm9pZCB0ZXN0TXVsSW1t
c0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIpCiAgICAgVmFsdWUqIGNvbnN0VmFsdWUyID0gcm9vdC0+
YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogICAgIFZhbHVl
KiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGNv
bnN0VmFsdWUxLCBjb25zdFZhbHVlMik7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVu
PGludDMyX3Q+KHByb2MpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAqIGIpKSk7CiB9CkBAIC0x
MjY1LDcgKzEyNzIsNyBAQCB2b2lkIHRlc3RNdWxBcmdGbG9hdFdpdGhVc2VsZXNzRG91YmxlQ29u
CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBP
cmlnaW4oKSwgYXNEb3VibGUsIGFzRG91YmxlKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCByZXN1
bHQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
Qml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQz
Mik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2Ms
IGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhICogYSkp
KTsKIH0KQEAgLTEyODUsNyArMTI5Miw3IEBAIHZvaWQgdGVzdE11bEFyZ3NGbG9hdFdpdGhVc2Vs
ZXNzRG91YmxlQ28KICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBNdWwsIE9yaWdpbigpLCBhc0RvdWJsZTEsIGFzRG91YmxlMik7CiAgICAgVmFsdWUqIGZs
b2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBP
cmlnaW4oKSwgcmVzdWx0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxp
bnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxpbnQz
Ml90PihiKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhICogYikpKTsKIH0KQEAgLTEzMDcsNyAr
MTMxNCw3IEBAIHZvaWQgdGVzdE11bEFyZ3NGbG9hdFdpdGhFZmZlY3RmdWxEb3VibGUKICAgICBW
YWx1ZSogZG91YmxlTXVscmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKTsKICAgICByb290LT5hcHBlbmRO
ZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBkb3VibGVNdWxy
ZXNzKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
MzIpOwogCiAgICAgZG91YmxlIGVmZmVjdCA9IDA7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29t
cGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdp
c2VfY2FzdDxpbnQzMl90PihiKSwgJmVmZmVjdCksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhICog
YikpKTsKQEAgLTEzMTksNyArMTMyNiw3IEBAIHZvaWQgdGVzdERpdkFyZ0RvdWJsZShkb3VibGUg
YSkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwgdmFsdWUsIHZhbHVlKSk7CiAKQEAgLTEzMzIs
NyArMTMzOSw3IEBAIHZvaWQgdGVzdERpdkFyZ3NEb3VibGUoZG91YmxlIGEsIGRvdWJsZSAKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEg
PSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUklu
Zm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIxKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIp
KTsKIApAQCAtMTM0NSw3ICsxMzUyLDcgQEAgdm9pZCB0ZXN0RGl2QXJnSW1tRG91YmxlKGRvdWJs
ZSBhLCBkb3VibAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAg
VmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9v
dC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApA
QCAtMTM1OCw3ICsxMzY1LDcgQEAgdm9pZCB0ZXN0RGl2SW1tQXJnRG91YmxlKGRvdWJsZSBhLCBk
b3VibAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUq
IHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgYSk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTM3
MSw3ICsxMzc4LDcgQEAgdm9pZCB0ZXN0RGl2SW1tc0RvdWJsZShkb3VibGUgYSwgZG91YmxlIAog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVl
QSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7
CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgYik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERpdiwgT3JpZ2lu
KCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTEzODcsNyArMTM5NCw3IEBAIHZvaWQgdGVzdERp
dkFyZ0Zsb2F0KGZsb2F0IGEpCiAgICAgVmFsdWUqIGZsb2F0VmFsdWUgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAg
VmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRGl2LCBPcmlnaW4o
KSwgZmxvYXRWYWx1ZSwgZmxvYXRWYWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQzMik7CiAKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVB
bmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9j
YXN0PGludDMyX3Q+KGEgLyBhKSkpOwpAQCAtMTQwNSw3ICsxNDEyLDcgQEAgdm9pZCB0ZXN0RGl2
QXJnc0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIpCiAgICAgVmFsdWUqIGZsb2F0VmFsdWUyID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50
MmludDMyKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBEaXYsIE9yaWdpbigpLCBmbG9hdFZhbHVlMSwgZmxvYXRWYWx1ZTIpOwogICAgIFZhbHVlKiBy
ZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdp
bigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVu
dGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4o
YSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhIC8g
YikpKTsKIH0KQEAgLTE0MjAsNyArMTQyNyw3IEBAIHZvaWQgdGVzdERpdkFyZ0ltbUZsb2F0KGZs
b2F0IGEsIGZsb2F0IGIKICAgICBWYWx1ZSogY29uc3RWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxD
b25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKICAgICBWYWx1ZSogcmVzdWx0ID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEaXYsIE9yaWdpbigpLCBmbG9hdFZhbHVlLCBj
b25zdFZhbHVlKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJv
YywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLyBi
KSkpOwogfQpAQCAtMTQzNSw3ICsxNDQyLDcgQEAgdm9pZCB0ZXN0RGl2SW1tQXJnRmxvYXQoZmxv
YXQgYSwgZmxvYXQgYgogICAgIFZhbHVlKiBjb25zdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENv
bnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiByZXN1bHQgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERpdiwgT3JpZ2luKCksIGNvbnN0VmFsdWUsIGZs
b2F0VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9j
LCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAvIGIp
KSk7CiB9CkBAIC0xNDQ4LDcgKzE0NTUsNyBAQCB2b2lkIHRlc3REaXZJbW1zRmxvYXQoZmxvYXQg
YSwgZmxvYXQgYikKICAgICBWYWx1ZSogY29uc3RWYWx1ZTIgPSByb290LT5hcHBlbmROZXc8Q29u
c3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwgY29uc3RWYWx1ZTEsIGNv
bnN0VmFsdWUyKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJv
YyksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhIC8gYikpKTsKIH0KQEAgLTE0NTgsNyArMTQ2NSw3
IEBAIHZvaWQgdGVzdE1vZEFyZ0RvdWJsZShkb3VibGUgYSkKICAgICBQcm9jZWR1cmUgcHJvYzsK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1
ZSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBS
SW5mbzo6YXJndW1lbnRGUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmln
aW4oKSwgdmFsdWUsIHZhbHVlKSk7CiAKQEAgLTE0NzEsNyArMTQ3OCw3IEBAIHZvaWQgdGVzdE1v
ZEFyZ3NEb3VibGUoZG91YmxlIGEsIGRvdWJsZSAKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAg
VmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIxKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgTW9kLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTQ4NCw3ICsxNDkxLDcg
QEAgdm9pZCB0ZXN0TW9kQXJnSW1tRG91YmxlKGRvdWJsZSBhLCBkb3VibAogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1l
bnRGUFIwKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91Ymxl
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9k
LCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTQ5Nyw3ICsxNTA0LDcgQEAgdm9p
ZCB0ZXN0TW9kSW1tQXJnRG91YmxlKGRvdWJsZSBhLCBkb3VibAogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5l
dzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHZhbHVl
QiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBS
SW5mbzo6YXJndW1lbnRGUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmln
aW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTUxMCw3ICsxNTE3LDcgQEAgdm9pZCB0ZXN0
TW9kSW1tc0RvdWJsZShkb3VibGUgYSwgZG91YmxlIAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxDb25z
dERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJv
b3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAK
QEAgLTE1MjYsNyArMTUzMyw3IEBAIHZvaWQgdGVzdE1vZEFyZ0Zsb2F0KGZsb2F0IGEpCiAgICAg
VmFsdWUqIGZsb2F0VmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VD
YXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSwgZmxvYXRWYWx1
ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBC
aXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAK
IAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0
d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0
PGZsb2F0PihmbW9kKGEsIGEpKSkpKTsKQEAgLTE1NDQsNyArMTU1MSw3IEBAIHZvaWQgdGVzdE1v
ZEFyZ3NGbG9hdChmbG9hdCBhLCBmbG9hdCBiKQogICAgIFZhbHVlKiBmbG9hdFZhbHVlMiA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVu
dDJpbnQzMik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgTW9kLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZTEsIGZsb2F0VmFsdWUyKTsKICAgICBWYWx1ZSog
cmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmln
aW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRl
bnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+
KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3Rh
dGljX2Nhc3Q8ZmxvYXQ+KGZtb2QoYSwgYikpKSkpOwogfQpAQCAtMTU1OSw3ICsxNTY2LDcgQEAg
dm9pZCB0ZXN0TW9kQXJnSW1tRmxvYXQoZmxvYXQgYSwgZmxvYXQgYgogICAgIFZhbHVlKiBjb25z
dFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IGIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE1v
ZCwgT3JpZ2luKCksIGZsb2F0VmFsdWUsIGNvbnN0VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQz
MiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBy
ZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwo
Y29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBi
aXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KGZtb2QoYSwgYikpKSkpOwog
fQpAQCAtMTU3NCw3ICsxNTgxLDcgQEAgdm9pZCB0ZXN0TW9kSW1tQXJnRmxvYXQoZmxvYXQgYSwg
ZmxvYXQgYgogICAgIFZhbHVlKiBjb25zdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0Rmxv
YXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIGNvbnN0VmFsdWUsIGZsb2F0VmFs
dWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
Qml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwog
CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8
ZmxvYXQ+KGZtb2QoYSwgYikpKSkpOwogfQpAQCAtMTU4Nyw3ICsxNTk0LDcgQEAgdm9pZCB0ZXN0
TW9kSW1tc0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIpCiAgICAgVmFsdWUqIGNvbnN0VmFsdWUyID0g
cm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogICAg
IFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2lu
KCksIGNvbnN0VmFsdWUxLCBjb25zdFZhbHVlMik7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxl
QW5kUnVuPGludDMyX3Q+KHByb2MpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8
ZmxvYXQ+KGZtb2QoYSwgYikpKSkpOwogfQpAQCAtMTYwMyw3ICsxNjEwLDcgQEAgdm9pZCB0ZXN0
RGl2QXJnRmxvYXRXaXRoVXNlbGVzc0RvdWJsZUNvbgogICAgIFZhbHVlKiByZXN1bHQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERpdiwgT3JpZ2luKCksIGFzRG91YmxlLCBhc0RvdWJs
ZSk7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxv
YXRSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGlj
YWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkp
LCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAvIGEpKSk7CiB9CkBAIC0xNjIzLDcgKzE2MzAsNyBA
QCB2b2lkIHRlc3REaXZBcmdzRmxvYXRXaXRoVXNlbGVzc0RvdWJsZUNvCiAgICAgVmFsdWUqIHJl
c3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwgYXNEb3Vi
bGUxLCBhc0RvdWJsZTIpOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgVmFs
dWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwg
T3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENI
RUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0
PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50
MzJfdD4oYSAvIGIpKSk7CiB9CkBAIC0xNjQ1LDcgKzE2NTIsNyBAQCB2b2lkIHRlc3REaXZBcmdz
RmxvYXRXaXRoRWZmZWN0ZnVsRG91YmxlCiAgICAgVmFsdWUqIGRvdWJsZURpdnJlc3MgPSByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMik7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9y
ZSwgT3JpZ2luKCksIHJlc3VsdCwgZG91YmxlRGl2cmVzcyk7CiAgICAgVmFsdWUqIHJlc3VsdDMy
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZs
b2F0UmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIGRvdWJsZSBlZmZlY3Qg
PSAwOwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywg
Yml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYiksICZlZmZl
Y3QpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAvIGIpKSk7CkBAIC0xNjU3LDcgKzE2NjQsNyBA
QCB2b2lkIHRlc3RTdWJBcmcoaW50IGEpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIHZhbHVl
LCB2YWx1ZSkpOwogCkBAIC0xNjY4LDcgKzE2NzUsNyBAQCB2b2lkIHRlc3RTdWJBcmdzKGludCBh
LCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IFN1YiwgT3JpZ2luKCksCkBAIC0xNjgyLDcgKzE2ODksNyBAQCB2b2lkIHRlc3RTdWJBcmdJbW0o
aW50NjRfdCBhLCBpbnQ2NF90IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBTdWIsIE9yaWdpbigpLApAQCAtMTcwMyw3ICsxNzEwLDcgQEAgdm9pZCB0
ZXN0TmVnVmFsdWVTdWJPbmUoaW50IGEpCiAgICAgVmFsdWUqIG5lZ0FyZ3VtZW50TWludXNPbmUg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksCiAgICAgICAgIG5l
Z0FyZ3VtZW50LAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgMSkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIG5lZ0FyZ3VtZW50TWludXNPbmUpOworICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBuZWdBcmd1bWVudE1pbnVzT25l
KTsKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywgYSkgPT0gLWEgLSAxKTsKIH0K
IApAQCAtMTcxMSw3ICsxNzE4LDcgQEAgdm9pZCB0ZXN0U3ViSW1tQXJnKGludCBhLCBpbnQgYikK
IHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFN1YiwgT3Jp
Z2luKCksCkBAIC0xNzMwLDcgKzE3MzcsNyBAQCB2b2lkIHRlc3RTdWJBcmdNZW0oaW50NjRfdCBh
LCBpbnQ2NF90IGIpCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgU3ViLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApLAogICAgICAgICBs
b2FkKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2
NF90Pihwcm9jLCBhLCAmYikgPT0gYSAtIGIpOwogfQpAQCAtMTc0NSw3ICsxNzUyLDcgQEAgdm9p
ZCB0ZXN0U3ViTWVtQXJnKGludDY0X3QgYSwgaW50NjRfdCBiKQogICAgICAgICBsb2FkLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMSkpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4o
cHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBpbnQ2NF90IGlucHV0T3V0cHV0
ID0gYTsKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAmaW5wdXRPdXRw
dXQsIGIpKTsKQEAgLTE3NjIsNyArMTc2OSw3IEBAIHZvaWQgdGVzdFN1YkltbU1lbShpbnQ2NF90
IGEsIGludDY0X3QgYikKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIGEpLAogICAgICAgICBsb2FkKTsKICAgICByb290LT5hcHBlbmROZXc8TWVt
b3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBhZGRyZXNzKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgaW50NjRfdCBp
bnB1dE91dHB1dCA9IGI7CiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAmaW5w
dXRPdXRwdXQpKTsKQEAgLTE3NzksNyArMTc4Niw3IEBAIHZvaWQgdGVzdFN1Yk1lbUltbShpbnQ2
NF90IGEsIGludDY0X3QgYikKICAgICAgICAgbG9hZCwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpKTsKICAgICByb290LT5hcHBlbmROZXc8
TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBhZGRyZXNzKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
b290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgaW50NjRf
dCBpbnB1dE91dHB1dCA9IGE7CiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAm
aW5wdXRPdXRwdXQpKTsKQEAgLTE3OTEsNyArMTc5OCw3IEBAIHZvaWQgdGVzdFN1YkFyZ3MzMihp
bnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBw
cm9jLCBTdWIsIE9yaWdpbigpLApAQCAtMTgwOSw3ICsxODE2LDcgQEAgdm9pZCB0ZXN0U3ViQXJn
SW1tMzIoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgcHJvYywgU3ViLCBPcmlnaW4oKSwKQEAgLTE4MjUsNyArMTgzMiw3IEBAIHZvaWQgdGVz
dFN1YkltbUFyZzMyKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIFN1YiwgT3JpZ2luKCksCkBAIC0xODQ3LDcgKzE4NTQsNyBAQCB2
b2lkIHRlc3RTdWJNZW1BcmczMihpbnQzMl90IGEsIGludDMyX3QgCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIxKSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgU3ViLCBPcmlnaW4oKSwgbG9hZCwgYXJndW1lbnQpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxN
ZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGFkZHJlc3MpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJv
b3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBpbnQzMl90
IGlucHV0T3V0cHV0ID0gYTsKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9j
LCAmaW5wdXRPdXRwdXQsIGIpKTsKQEAgLTE4NjMsNyArMTg3MCw3IEBAIHZvaWQgdGVzdFN1YkFy
Z01lbTMyKGludDMyX3QgYSwgaW50MzJfdCAKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjApKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBTdWIsIE9yaWdpbigpLCBhcmd1bWVudCwgbG9hZCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAog
ICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYSwgJmIpID09IGEgLSBiKTsK
IH0KQEAgLTE4NzgsNyArMTg4NSw3IEBAIHZvaWQgdGVzdFN1YkltbU1lbTMyKGludDMyX3QgYSwg
aW50MzJfdCAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIGEpLAogICAgICAgICBsb2FkKTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFs
dWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBhZGRyZXNzKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgaW50MzJfdCBpbnB1dE91
dHB1dCA9IGI7CiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAmaW5wdXRPdXRw
dXQpKTsKQEAgLTE4OTUsNyArMTkwMiw3IEBAIHZvaWQgdGVzdFN1Yk1lbUltbTMyKGludDMyX3Qg
YSwgaW50MzJfdCAKICAgICAgICAgbG9hZCwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpKTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5
VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBhZGRyZXNzKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgaW50MzJfdCBpbnB1
dE91dHB1dCA9IGE7CiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAmaW5wdXRP
dXRwdXQpKTsKQEAgLTE5MTQsNyArMTkyMSw3IEBAIHZvaWQgdGVzdE5lZ1ZhbHVlU3ViT25lMzIo
aW50IGEpCiAgICAgVmFsdWUqIG5lZ0FyZ3VtZW50TWludXNPbmUgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksCiAgICAgICAgIG5lZ0FyZ3VtZW50LAogICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIG5l
Z0FyZ3VtZW50TWludXNPbmUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBuZWdBcmd1bWVudE1pbnVzT25lKTsKICAgICBDSEVDSyhjb21w
aWxlQW5kUnVuPGludD4ocHJvYywgYSkgPT0gLWEgLSAxKTsKIH0KIApAQCAtMTkyMyw3ICsxOTMw
LDcgQEAgdm9pZCB0ZXN0U3ViQXJnRG91YmxlKGRvdWJsZSBhKQogICAgIFByb2NlZHVyZSBwcm9j
OwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZh
bHVlID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBG
UFJJbmZvOjphcmd1bWVudEZQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9y
aWdpbigpLCB2YWx1ZSwgdmFsdWUpKTsKIApAQCAtMTkzNiw3ICsxOTQzLDcgQEAgdm9pZCB0ZXN0
U3ViQXJnc0RvdWJsZShkb3VibGUgYSwgZG91YmxlIAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAg
ICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjEpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBTdWIsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC0xOTQ5LDcgKzE5NTYs
NyBAQCB2b2lkIHRlc3RTdWJBcmdJbW1Eb3VibGUoZG91YmxlIGEsIGRvdWJsCiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1
bWVudEZQUjApOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3Vi
bGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBT
dWIsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC0xOTYyLDcgKzE5NjksNyBAQCB2
b2lkIHRlc3RTdWJJbW1BcmdEb3VibGUoZG91YmxlIGEsIGRvdWJsCiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5k
TmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogdmFs
dWVCID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBG
UFJJbmZvOjphcmd1bWVudEZQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9y
aWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC0xOTc1LDcgKzE5ODIsNyBAQCB2b2lkIHRl
c3RTdWJJbW1zRG91YmxlKGRvdWJsZSBhLCBkb3VibGUgCiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PENv
bnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogdmFsdWVCID0g
cm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsK
ICAgICAKQEAgLTE5OTEsNyArMTk5OCw3IEBAIHZvaWQgdGVzdFN1YkFyZ0Zsb2F0KGZsb2F0IGEp
CiAgICAgVmFsdWUqIGZsb2F0VmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJp
dHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSwgZmxv
YXRWYWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQz
Mik7CiAKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJv
YywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLSBh
KSkpOwpAQCAtMjAwOSw3ICsyMDE2LDcgQEAgdm9pZCB0ZXN0U3ViQXJnc0Zsb2F0KGZsb2F0IGEs
IGZsb2F0IGIpCiAgICAgVmFsdWUqIGZsb2F0VmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MmludDMyKTsKICAgICBWYWx1
ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBm
bG9hdFZhbHVlMSwgZmxvYXRWYWx1ZTIpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
c3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1
bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxp
bnQzMl90PihiKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhIC0gYikpKTsKIH0KQEAgLTIwMjQs
NyArMjAzMSw3IEBAIHZvaWQgdGVzdFN1YkFyZ0ltbUZsb2F0KGZsb2F0IGEsIGZsb2F0IGIKICAg
ICBWYWx1ZSogY29uc3RWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBiKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBmbG9hdFZhbHVlLCBjb25zdFZhbHVlKTsKICAgICBW
YWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0
LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNL
KGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLSBiKSkpOwogfQpAQCAtMjAzOSw3
ICsyMDQ2LDcgQEAgdm9pZCB0ZXN0U3ViSW1tQXJnRmxvYXQoZmxvYXQgYSwgZmxvYXQgYgogICAg
IFZhbHVlKiBjb25zdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIGNvbnN0VmFsdWUsIGZsb2F0VmFsdWUpOwogICAgIFZh
bHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3Qs
IE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0so
aXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50
MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAtIGIpKSk7CiB9CkBAIC0yMDUyLDcg
KzIwNTksNyBAQCB2b2lkIHRlc3RTdWJJbW1zRmxvYXQoZmxvYXQgYSwgZmxvYXQgYikKICAgICBW
YWx1ZSogY29uc3RWYWx1ZTIgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgYik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgY29uc3RWYWx1ZTEsIGNvbnN0VmFsdWUyKTsKICAgICBW
YWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0
LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNL
KGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYyksIGJpdHdpc2VfY2FzdDxp
bnQzMl90PihhIC0gYikpKTsKIH0KQEAgLTIwNjgsNyArMjA3NSw3IEBAIHZvaWQgdGVzdFN1YkFy
Z0Zsb2F0V2l0aFVzZWxlc3NEb3VibGVDb24KICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBhc0RvdWJsZSwgYXNEb3VibGUpOwog
ICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91
YmxlVG9GbG9hdCwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVz
dWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNv
bXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0
d2lzZV9jYXN0PGludDMyX3Q+KGEgLSBhKSkpOwogfQpAQCAtMjA4OCw3ICsyMDk1LDcgQEAgdm9p
ZCB0ZXN0U3ViQXJnc0Zsb2F0V2l0aFVzZWxlc3NEb3VibGVDbwogICAgIFZhbHVlKiByZXN1bHQg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIGFzRG91YmxlMSwg
YXNEb3VibGUyKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCByZXN1bHQpOwogICAgIFZhbHVlKiBy
ZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdp
bigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhp
c0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQz
Ml90PihhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+
KGEgLSBiKSkpOwogfQpAQCAtMjExMCw3ICsyMTE3LDcgQEAgdm9pZCB0ZXN0U3ViQXJnc0Zsb2F0
V2l0aEVmZmVjdGZ1bERvdWJsZQogICAgIFZhbHVlKiBkb3VibGVTdWJyZXNzID0gcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjIpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9y
aWdpbigpLCByZXN1bHQsIGRvdWJsZVN1YnJlc3MpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJl
c3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBkb3VibGUgZWZmZWN0ID0gMDsK
ICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdp
c2VfY2FzdDxpbnQzMl90PihhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpLCAmZWZmZWN0KSwg
Yml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLSBiKSkpOwpAQCAtMjEyMSw3ICsyMTI4LDcgQEAgdm9p
ZCB0ZXN0Qml0QW5kQXJncyhpbnQ2NF90IGEsIGludDY0X3QgYgogewogICAgIFByb2NlZHVyZSBw
cm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTIxMzYs
NyArMjE0Myw3IEBAIHZvaWQgdGVzdEJpdEFuZFNhbWVBcmcoaW50NjRfdCBhKQogICAgIFByb2Nl
ZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAg
VmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0yMTUwLDcgKzIxNTcsNyBA
QCB2b2lkIHRlc3RCaXRBbmRJbW1zKGludDY0X3QgYSwgaW50NjRfdCBiCiB7CiAgICAgUHJvY2Vk
dXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAt
MjE2NCw3ICsyMTcxLDcgQEAgdm9pZCB0ZXN0Qml0QW5kQXJnSW1tKGludDY0X3QgYSwgaW50NjRf
dAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5k
LCBPcmlnaW4oKSwKQEAgLTIxNzgsNyArMjE4NSw3IEBAIHZvaWQgdGVzdEJpdEFuZEltbUFyZyhp
bnQ2NF90IGEsIGludDY0X3QKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0yMTk2LDcgKzIyMDMsNyBAQCB2b2lkIHRl
c3RCaXRBbmRCaXRBbmRBcmdJbW1JbW0oaW50NjRfdCBhCiAgICAgICAgIHByb2MsIEJpdEFuZCwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMjIxNCw3ICsyMjIx
LDcgQEAgdm9pZCB0ZXN0Qml0QW5kSW1tQml0QW5kQXJnSW1tKGludDY0X3QgYQogICAgICAgICBw
cm9jLCBCaXRBbmQsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBjKSk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAg
LTIyMjgsNyArMjIzNSw3IEBAIHZvaWQgdGVzdEJpdEFuZEFyZ3MzMihpbnQgYSwgaW50IGIpCiB7
CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9y
aWdpbigpLApAQCAtMjI0OCw3ICsyMjU1LDcgQEAgdm9pZCB0ZXN0Qml0QW5kU2FtZUFyZzMyKGlu
dCBhKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUq
IGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTIyNjIsNyArMjI2OSw3IEBAIHZvaWQg
dGVzdEJpdEFuZEltbXMzMihpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMjI3Niw3ICsyMjgz
LDcgQEAgdm9pZCB0ZXN0Qml0QW5kQXJnSW1tMzIoaW50IGEsIGludCBiKQogewogICAgIFByb2Nl
ZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAg
LTIyOTIsNyArMjI5OSw3IEBAIHZvaWQgdGVzdEJpdEFuZEltbUFyZzMyKGludCBhLCBpbnQgYikK
IHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwg
T3JpZ2luKCksCkBAIC0yMzE0LDcgKzIzMjEsNyBAQCB2b2lkIHRlc3RCaXRBbmRCaXRBbmRBcmdJ
bW1JbW0zMihpbnQgYSwgCiAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAg
ICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYikpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0yMzM0LDcgKzIzNDEsNyBAQCB2b2lk
IHRlc3RCaXRBbmRJbW1CaXRBbmRBcmdJbW0zMihpbnQgYSwgCiAgICAgICAgICAgICBwcm9jLCBU
cnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYykpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0y
MzYxLDcgKzIzNjgsNyBAQCB2b2lkIHRlc3RCaXRBbmRXaXRoTWFza1JldHVybnNCb29sZWFucyhp
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCA0
MiksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigp
LCAtNSkpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgc2VsZWN0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgc2VsZWN0KTsKIAogICAgIGludDY0X3QgZXhwZWN0ZWQgPSAo
YSA9PSBiKSA/IC01IDogNDI7CiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9j
LCBhLCBiKSA9PSBleHBlY3RlZCk7CkBAIC0yMzc4LDcgKzIzODUsNyBAQCB2b2lkIHRlc3RCaXRB
bmRBcmdEb3VibGUoZG91YmxlIGEpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUq
IHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0QW5kLCBPcmlnaW4oKSwg
YXJndW1lbnQsIGFyZ3VtZW50KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soaXNJ
ZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIGEpLCBiaXRBbmREb3VibGUoYSwg
YSkpKTsKIH0KQEAgLTIzOTAsNyArMjM5Nyw3IEBAIHZvaWQgdGVzdEJpdEFuZEFyZ3NEb3VibGUo
ZG91YmxlIGEsIGRvdWIKICAgICBWYWx1ZSogYXJndW1lbnRBID0gcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwog
ICAgIFZhbHVlKiBhcmd1bWVudEIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMSk7CiAgICAgVmFsdWUqIHJlc3Vs
dCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0QW5kLCBPcmlnaW4oKSwgYXJndW1l
bnRBLCBhcmd1bWVudEIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhpc0lkZW50
aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgYSwgYiksIGJpdEFuZERvdWJsZShhLCBi
KSkpOwogfQpAQCAtMjQwMiw3ICsyNDA5LDcgQEAgdm9pZCB0ZXN0Qml0QW5kQXJnSW1tRG91Ymxl
KGRvdWJsZSBhLCBkbwogICAgIFZhbHVlKiBhcmd1bWVudEEgPSByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAg
ICAgVmFsdWUqIGFyZ3VtZW50QiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgYik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQml0QW5kLCBPcmlnaW4oKSwgYXJndW1lbnRBLCBhcmd1bWVudEIpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
c3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRv
dWJsZT4ocHJvYywgYSwgYiksIGJpdEFuZERvdWJsZShhLCBiKSkpOwogfQpAQCAtMjQxNCw3ICsy
NDIxLDcgQEAgdm9pZCB0ZXN0Qml0QW5kSW1tc0RvdWJsZShkb3VibGUgYSwgZG91YgogICAgIFZh
bHVlKiBhcmd1bWVudEEgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiBhcmd1bWVudEIgPSByb290LT5hcHBlbmROZXc8Q29u
c3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiByZXN1bHQgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdEFuZCwgT3JpZ2luKCksIGFyZ3VtZW50QSwg
YXJndW1lbnRCKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwo
Y29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MpLCBiaXRBbmREb3VibGUoYSwgYikpKTsKIH0KQEAg
LTI0MzIsNyArMjQzOSw3IEBAIHZvaWQgdGVzdEJpdEFuZEFyZ0Zsb2F0KGZsb2F0IGEpCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApKSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQml0QW5kLCBPcmlnaW4oKSwgYXJndW1lbnQsIGFyZ3VtZW50KTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1
bjxmbG9hdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0QW5kRmxvYXQoYSwg
YSkpKTsKIH0KQEAgLTI0NDgsNyArMjQ1NSw3IEBAIHZvaWQgdGVzdEJpdEFuZEFyZ3NGbG9hdChm
bG9hdCBhLCBmbG9hdCAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVu
YywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSkpKTsKICAgICBWYWx1ZSog
cmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXRBbmQsIE9yaWdpbigpLCBh
cmd1bWVudEEsIGFyZ3VtZW50Qik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGlz
SWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90
PihhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0QW5kRmxvYXQoYSwgYikpKTsKIH0K
QEAgLTI0NjIsNyArMjQ2OSw3IEBAIHZvaWQgdGVzdEJpdEFuZEFyZ0ltbUZsb2F0KGZsb2F0IGEs
IGZsb2EKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSkpOwogICAgIFZhbHVlKiBhcmd1bWVu
dEIgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7
CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0QW5k
LCBPcmlnaW4oKSwgYXJndW1lbnRBLCBhcmd1bWVudEIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAK
ICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jLCBiaXR3aXNl
X2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSksIGJpdEFuZEZsb2F0
KGEsIGIpKSk7CiB9CkBAIC0yNDc0LDcgKzI0ODEsNyBAQCB2b2lkIHRlc3RCaXRBbmRJbW1zRmxv
YXQoZmxvYXQgYSwgZmxvYXQgCiAgICAgVmFsdWUqIGFyZ3VtZW50QSA9IHJvb3QtPmFwcGVuZE5l
dzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogYXJndW1l
bnRCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIp
OwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdEFu
ZCwgT3JpZ2luKCksIGFyZ3VtZW50QSwgYXJndW1lbnRCKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwog
CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYyksIGJpdEFu
ZEZsb2F0KGEsIGIpKSk7CiB9CkBAIC0yNDkzLDcgKzI1MDAsNyBAQCB2b2lkIHRlc3RCaXRBbmRB
cmdzRmxvYXRXaXRoVXNlbGVzc0RvdWJsCiAgICAgVmFsdWUqIGFyZ3VtZW50QmFzRG91YmxlID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgYXJn
dW1lbnRCKTsKICAgICBWYWx1ZSogZG91YmxlUmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBCaXRBbmQsIE9yaWdpbigpLCBhcmd1bWVudEFhc0RvdWJsZSwgYXJndW1lbnRCYXNE
b3VibGUpOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIGRvdWJsZVJlc3VsdCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZmxvYXRSZXN1
bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBmbG9hdFJlc3VsdCk7CiAKICAgICBkb3VibGUgZG91YmxlQSA9IGE7CiAgICAgZG91Ymxl
IGRvdWJsZUIgPSBiOwpAQCAtMjUwNSw3ICsyNTEyLDcgQEAgdm9pZCB0ZXN0Qml0T3JBcmdzKGlu
dDY0X3QgYSwgaW50NjRfdCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgcHJvYywgQml0T3IsIE9yaWdpbigpLApAQCAtMjUyMCw3ICsyNTI3LDcgQEAgdm9pZCB0
ZXN0Qml0T3JTYW1lQXJnKGludDY0X3QgYSkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBC
aXRPciwgT3JpZ2luKCksCkBAIC0yNTM0LDcgKzI1NDEsNyBAQCB2b2lkIHRlc3RCaXRPckltbXMo
aW50NjRfdCBhLCBpbnQ2NF90IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCksCkBAIC0yNTQ4LDcgKzI1NTUsNyBAQCB2b2lk
IHRlc3RCaXRPckFyZ0ltbShpbnQ2NF90IGEsIGludDY0X3QgCiB7CiAgICAgUHJvY2VkdXJlIHBy
b2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCksCkBAIC0yNTYyLDcg
KzI1NjksNyBAQCB2b2lkIHRlc3RCaXRPckltbUFyZyhpbnQ2NF90IGEsIGludDY0X3QgCiB7CiAg
ICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRPciwgT3JpZ2lu
KCksCkBAIC0yNTgwLDcgKzI1ODcsNyBAQCB2b2lkIHRlc3RCaXRPckJpdE9yQXJnSW1tSW1tKGlu
dDY0X3QgYSwgCiAgICAgICAgIHByb2MsIEJpdE9yLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjApLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgYikpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJp
dE9yLCBPcmlnaW4oKSwKQEAgLTI1OTgsNyArMjYwNSw3IEBAIHZvaWQgdGVzdEJpdE9ySW1tQml0
T3JBcmdJbW0oaW50NjRfdCBhLCAKICAgICAgICAgcHJvYywgQml0T3IsIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFs
dWU+KHByb2MsIE9yaWdpbigpLCBjKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgQml0T3IsIE9yaWdpbigpLApAQCAtMjYxMiw3ICsyNjE5LDcgQEAgdm9pZCB0ZXN0
Qml0T3JBcmdzMzIoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAog
ICAgICAgICAgICAgcHJvYywgQml0T3IsIE9yaWdpbigpLApAQCAtMjYzMyw3ICsyNjQwLDcgQEAg
dm9pZCB0ZXN0Qml0T3JTYW1lQXJnMzIoaW50IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAg
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCksCkBAIC0yNjQ3LDcgKzI2NTQsNyBAQCB2b2lkIHRl
c3RCaXRPckltbXMzMihpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
CiAgICAgICAgICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCksCkBAIC0yNjYxLDcgKzI2NjgsNyBA
QCB2b2lkIHRlc3RCaXRPckFyZ0ltbTMyKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUg
cHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdE9yLCBPcmlnaW4oKSwKQEAgLTI2Nzcs
NyArMjY4NCw3IEBAIHZvaWQgdGVzdEJpdE9ySW1tQXJnMzIoaW50IGEsIGludCBiKQogewogICAg
IFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0T3IsIE9yaWdpbigp
LApAQCAtMjY5OSw3ICsyNzA2LDcgQEAgdm9pZCB0ZXN0Qml0T3JCaXRPckFyZ0ltbUltbTMyKGlu
dCBhLCBpbgogICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjApKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIGIpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBw
cm9jLCBCaXRPciwgT3JpZ2luKCksCkBAIC0yNzE5LDcgKzI3MjYsNyBAQCB2b2lkIHRlc3RCaXRP
ckltbUJpdE9yQXJnSW1tMzIoaW50IGEsIGluCiAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3Jp
Z2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYykpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdE9yLCBPcmlnaW4oKSwKQEAgLTI3MzMsNyArMjc0
MCw3IEBAIHZvaWQgdGVzdEJpdFhvckFyZ3MoaW50NjRfdCBhLCBpbnQ2NF90IGIKIHsKICAgICBQ
cm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCks
CkBAIC0yNzQ4LDcgKzI3NTUsNyBAQCB2b2lkIHRlc3RCaXRYb3JTYW1lQXJnKGludDY0X3QgYSkK
ICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjc2Miw3
ICsyNzY5LDcgQEAgdm9pZCB0ZXN0Qml0WG9ySW1tcyhpbnQ2NF90IGEsIGludDY0X3QgYgogewog
ICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmln
aW4oKSwKQEAgLTI3NzYsNyArMjc4Myw3IEBAIHZvaWQgdGVzdEJpdFhvckFyZ0ltbShpbnQ2NF90
IGEsIGludDY0X3QKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIEJpdFhvciwgT3JpZ2luKCksCkBAIC0yNzkwLDcgKzI3OTcsNyBAQCB2b2lkIHRlc3RCaXRY
b3JJbW1BcmcoaW50NjRfdCBhLCBpbnQ2NF90CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
CiAgICAgICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjgwOCw3ICsyODE1LDcg
QEAgdm9pZCB0ZXN0Qml0WG9yQml0WG9yQXJnSW1tSW1tKGludDY0X3QgYQogICAgICAgICBwcm9j
LCBCaXRYb3IsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKSk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTI4
MjYsNyArMjgzMyw3IEBAIHZvaWQgdGVzdEJpdFhvckltbUJpdFhvckFyZ0ltbShpbnQ2NF90IGEK
ICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjAp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
YykpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3Jp
Z2luKCksCkBAIC0yODQwLDcgKzI4NDcsNyBAQCB2b2lkIHRlc3RCaXRYb3JBcmdzMzIoaW50IGEs
IGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
Qml0WG9yLCBPcmlnaW4oKSwKQEAgLTI4NjEsNyArMjg2OCw3IEBAIHZvaWQgdGVzdEJpdFhvclNh
bWVBcmczMihpbnQgYSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KAogICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdFhv
ciwgT3JpZ2luKCksCkBAIC0yODc1LDcgKzI4ODIsNyBAQCB2b2lkIHRlc3RCaXRYb3JJbW1zMzIo
aW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTI4ODksNyArMjg5Niw3IEBAIHZvaWQgdGVzdEJp
dFhvckFyZ0ltbTMyKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCkBAIC0yOTA1LDcgKzI5MTIsNyBA
QCB2b2lkIHRlc3RCaXRYb3JJbW1BcmczMihpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJl
IHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjky
Nyw3ICsyOTM0LDcgQEAgdm9pZCB0ZXN0Qml0WG9yQml0WG9yQXJnSW1tSW1tMzIoaW50IGEsIAog
ICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjApKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIGIpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRY
b3IsIE9yaWdpbigpLApAQCAtMjk0Nyw3ICsyOTU0LDcgQEAgdm9pZCB0ZXN0Qml0WG9ySW1tQml0
WG9yQXJnSW1tMzIoaW50IGEsIAogICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAog
ICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGMpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjk2MSw3ICsyOTY4LDcgQEAg
dm9pZCB0ZXN0Qml0Tm90QXJnKGludDY0X3QgYSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCkBAIC0yOTc1LDcgKzI5ODIs
NyBAQCB2b2lkIHRlc3RCaXROb3RJbW0oaW50NjRfdCBhKQogewogICAgIFByb2NlZHVyZSBwcm9j
OwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTI5OTUsNyAr
MzAwMiw3IEBAIHZvaWQgdGVzdEJpdE5vdE1lbShpbnQ2NF90IGEpCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMSksCiAgICAgICAgIGxvYWQp
OwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigp
LCBub3RMb2FkLCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgMCkpOwogCiAgICAgaW50NjRfdCBpbnB1dCA9IGE7CiAgICAgY29tcGlsZUFuZFJ1bjxp
bnQzMl90Pihwcm9jLCAmaW5wdXQpOwpAQCAtMzAwOCw3ICszMDE1LDcgQEAgdm9pZCB0ZXN0Qml0
Tm90QXJnMzIoaW50MzJfdCBhKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBU
cnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEJpdFhvciwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTEpLApAQCAtMzAyMCw3ICszMDI3LDcg
QEAgdm9pZCB0ZXN0Qml0Tm90SW1tMzIoaW50MzJfdCBhKQogewogICAgIFByb2NlZHVyZSBwcm9j
OwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTMwNDAsNyAr
MzA0Nyw3IEBAIHZvaWQgdGVzdEJpdE5vdE1lbTMyKGludDMyX3QgYSkKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xKSwKICAgICAgICAgbG9h
ZCk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2lu
KCksIG5vdExvYWQsIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCAwKSk7CiAKICAgICBpbnQzMl90IGlucHV0ID0gYTsKICAgICBjb21waWxlQW5kUnVu
PGludDMyX3Q+KHByb2MsICZpbnB1dCk7CkBAIC0zMDYzLDE2ICszMDcwLDE2IEBAIHZvaWQgdGVz
dEJpdE5vdE9uQm9vbGVhbkFuZEJyYW5jaDMyKGludDYKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xKSwKICAgICAgICAgYXJnc0FyZUVxdWFs
KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAg
ICAgYXJnc0FyZU5vdEVxdWFsLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBG
cmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAtNDIpKTsKIApAQCAtMzA4NCw3ICsz
MDkxLDcgQEAgdm9pZCB0ZXN0U2hsQXJncyhpbnQ2NF90IGEsIGludDY0X3QgYikKIHsKICAgICBQ
cm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNobCwgT3JpZ2luKCksCkBA
IC0zMTAwLDcgKzMxMDcsNyBAQCB2b2lkIHRlc3RTaGxJbW1zKGludDY0X3QgYSwgaW50NjRfdCBi
KQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2hsLCBP
cmlnaW4oKSwKQEAgLTMxMTQsNyArMzEyMSw3IEBAIHZvaWQgdGVzdFNobEFyZ0ltbShpbnQ2NF90
IGEsIGludDY0X3QgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIFNobCwgT3JpZ2luKCksCkBAIC0zMTMxLDcgKzMxMzgsNyBAQCB2b2lkIHRlc3RTaGxB
cmczMihpbnQzMl90IGEpCiAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BS
MCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTaGwsIE9yaWdpbigpLCB2YWx1ZSwgdmFs
dWUpKTsKIApAQCAtMzE0Miw3ICszMTQ5LDcgQEAgdm9pZCB0ZXN0U2hsQXJnczMyKGludDMyX3Qg
YSwgaW50MzJfdCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgU2hsLCBPcmlnaW4oKSwKQEAgLTMxNjAsNyArMzE2Nyw3IEBAIHZvaWQgdGVzdFNobElt
bXMzMihpbnQzMl90IGEsIGludDMyX3QgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIFNobCwgT3JpZ2luKCksCkBAIC0zMTc0LDcgKzMxODEsNyBAQCB2
b2lkIHRlc3RTaGxBcmdJbW0zMihpbnQzMl90IGEsIGludDMyX3QgCiB7CiAgICAgUHJvY2VkdXJl
IHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTaGwsIE9yaWdpbigpLApAQCAtMzE5MCw3
ICszMTk3LDcgQEAgdm9pZCB0ZXN0U1NockFyZ3MoaW50NjRfdCBhLCBpbnQ2NF90IGIpCiB7CiAg
ICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTU2hyLCBPcmlnaW4o
KSwKQEAgLTMyMDYsNyArMzIxMyw3IEBAIHZvaWQgdGVzdFNTaHJJbW1zKGludDY0X3QgYSwgaW50
NjRfdCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
U1NociwgT3JpZ2luKCksCkBAIC0zMjIwLDcgKzMyMjcsNyBAQCB2b2lkIHRlc3RTU2hyQXJnSW1t
KGludDY0X3QgYSwgaW50NjRfdCBiCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBTU2hyLCBPcmlnaW4oKSwKQEAgLTMyMzcsNyArMzI0NCw3IEBAIHZvaWQg
dGVzdFNTaHJBcmczMihpbnQzMl90IGEpCiAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPigKICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTU2hyLCBPcmlnaW4oKSwg
dmFsdWUsIHZhbHVlKSk7CiAKQEAgLTMyNDgsNyArMzI1NSw3IEBAIHZvaWQgdGVzdFNTaHJBcmdz
MzIoaW50MzJfdCBhLCBpbnQzMl90IGIKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIFNTaHIsIE9yaWdpbigpLApAQCAtMzI2Niw3ICszMjczLDcgQEAgdm9p
ZCB0ZXN0U1NockltbXMzMihpbnQzMl90IGEsIGludDMyX3QgYgogewogICAgIFByb2NlZHVyZSBw
cm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU1NociwgT3JpZ2luKCksCkBAIC0zMjgwLDcg
KzMyODcsNyBAQCB2b2lkIHRlc3RTU2hyQXJnSW1tMzIoaW50MzJfdCBhLCBpbnQzMl90CiB7CiAg
ICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTU2hyLCBPcmlnaW4o
KSwKQEAgLTMyOTYsNyArMzMwMyw3IEBAIHZvaWQgdGVzdFpTaHJBcmdzKHVpbnQ2NF90IGEsIHVp
bnQ2NF90IGIKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IFpTaHIsIE9yaWdpbigpLApAQCAtMzMxMiw3ICszMzE5LDcgQEAgdm9pZCB0ZXN0WlNockltbXMo
dWludDY0X3QgYSwgdWludDY0X3QgYgogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgWlNociwgT3JpZ2luKCksCkBAIC0zMzI2LDcgKzMzMzMsNyBAQCB2b2lk
IHRlc3RaU2hyQXJnSW1tKHVpbnQ2NF90IGEsIHVpbnQ2NF90CiB7CiAgICAgUHJvY2VkdXJlIHBy
b2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBaU2hyLCBPcmlnaW4oKSwKQEAgLTMzNDMsNyAr
MzM1MCw3IEBAIHZvaWQgdGVzdFpTaHJBcmczMih1aW50MzJfdCBhKQogICAgIFZhbHVlKiB2YWx1
ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
WlNociwgT3JpZ2luKCksIHZhbHVlLCB2YWx1ZSkpOwogCkBAIC0zMzU0LDcgKzMzNjEsNyBAQCB2
b2lkIHRlc3RaU2hyQXJnczMyKHVpbnQzMl90IGEsIHVpbnQzMl90CiB7CiAgICAgUHJvY2VkdXJl
IHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBaU2hyLCBPcmlnaW4oKSwKQEAgLTMzNzIs
NyArMzM3OSw3IEBAIHZvaWQgdGVzdFpTaHJJbW1zMzIodWludDMyX3QgYSwgdWludDMyX3QKIHsK
ICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFpTaHIsIE9yaWdp
bigpLApAQCAtMzM4Niw3ICszMzkzLDcgQEAgdm9pZCB0ZXN0WlNockFyZ0ltbTMyKHVpbnQzMl90
IGEsIHVpbnQzMgogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgWlNociwgT3JpZ2luKCksCkBAIC0zNDE5LDcgKzM0MjYsNyBAQCB2b2lkIHRlc3RDbHpBcmc2
NChpbnQ2NF90IGEpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAg
ICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIGNselZhbHVl
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDbHosIE9yaWdpbigpLCBhcmd1bWVudCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgY2x6VmFsdWUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBjbHpWYWx1ZSk7CiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjx1bnNpZ25l
ZD4ocHJvYywgYSkgPT0gY291bnRMZWFkaW5nWmVybyhhKSk7CiB9CiAKQEAgLTM0MzAsNyArMzQz
Nyw3IEBAIHZvaWQgdGVzdENsek1lbTY0KGludDY0X3QgYSkKICAgICBWYWx1ZSogYWRkcmVzcyA9
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIwKTsKICAgICBNZW1vcnlWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmRO
ZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDY0LCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAg
ICAgVmFsdWUqIGNselZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDbHosIE9y
aWdpbigpLCB2YWx1ZSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgY2x6VmFsdWUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjbHpWYWx1ZSk7CiAgICAgQ0hFQ0soY29tcGls
ZUFuZFJ1bjx1bnNpZ25lZD4ocHJvYywgJmEpID09IGNvdW50TGVhZGluZ1plcm8oYSkpOwogfQog
CkBAIC0zNDQxLDcgKzM0NDgsNyBAQCB2b2lkIHRlc3RDbHpBcmczMihpbnQzMl90IGEpCiAgICAg
VmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgVmFsdWUqIGNselZhbHVlID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDbHosIE9yaWdpbigpLCBhcmd1bWVudCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
Y2x6VmFsdWUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBjbHpWYWx1ZSk7CiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjx1bnNpZ25lZD4o
cHJvYywgYSkgPT0gY291bnRMZWFkaW5nWmVybyhhKSk7CiB9CiAKQEAgLTM0NTIsNyArMzQ1OSw3
IEBAIHZvaWQgdGVzdENsek1lbTMyKGludDMyX3QgYSkKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKTsKICAgICBNZW1vcnlWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8
TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAg
VmFsdWUqIGNselZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDbHosIE9yaWdp
bigpLCB2YWx1ZSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgY2x6VmFsdWUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjbHpWYWx1ZSk7CiAgICAgQ0hFQ0soY29tcGlsZUFu
ZFJ1bjx1bnNpZ25lZD4ocHJvYywgJmEpID09IGNvdW50TGVhZGluZ1plcm8oYSkpOwogfQogCkBA
IC0zNDYwLDcgKzM0NjcsNyBAQCB2b2lkIHRlc3RBYnNBcmcoZG91YmxlIGEpCiB7CiAgICAgUHJv
Y2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBYnMsIE9yaWdpbigpLApAQCAt
MzQ3NCw3ICszNDgxLDcgQEAgdm9pZCB0ZXN0QWJzSW1tKGRvdWJsZSBhKQogICAgIFByb2NlZHVy
ZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFs
dWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBhKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBPcmlnaW4oKSwgYXJn
dW1lbnQpKTsKIApAQCAtMzQ4Nyw3ICszNDk0LDcgQEAgdm9pZCB0ZXN0QWJzTWVtKGRvdWJsZSBh
KQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFk
ZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWREb3VibGUgPSBy
b290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIERvdWJsZSwgT3JpZ2luKCks
IGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdpbigpLCBsb2Fk
RG91YmxlKSk7CiAKQEAgLTM1MDEsNyArMzUwOCw3IEBAIHZvaWQgdGVzdEFic0Fic0FyZyhkb3Vi
bGUgYSkKICAgICBWYWx1ZSogZmlyc3RBYnMgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEFicywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKSk7CiAgICAgVmFsdWUqIHNl
Y29uZEFicyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBPcmlnaW4oKSwgZmly
c3RBYnMpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHNlY29uZEFicyk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZEFicyk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNh
bChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgYSksIGZhYnMoYSkpKTsKIH0KQEAgLTM1MTMs
NyArMzUyMCw3IEBAIHZvaWQgdGVzdEFic0JpdHdpc2VDYXN0QXJnKGRvdWJsZSBhKQogICAgIFZh
bHVlKiBhcmd1bWVudEFzSW50NjQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIGFyZ3Vt
ZW50QXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBP
cmlnaW4oKSwgYXJndW1lbnRBc0ludDY0KTsKICAgICBWYWx1ZSogYWJzVmFsdWUgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEFicywgT3JpZ2luKCksIGFyZ3VtZW50QXNEb3VibGUpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IGFic1ZhbHVlKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgYWJzVmFsdWUpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFu
ZFJ1bjxkb3VibGU+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQ2NF90PihhKSksIGZhYnMoYSkpKTsK
IH0KQEAgLTM1MjcsNyArMzUzNCw3IEBAIHZvaWQgdGVzdEJpdHdpc2VDYXN0QWJzQml0d2lzZUNh
c3RBcmcoZG8KICAgICBWYWx1ZSogYWJzVmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEFicywgT3JpZ2luKCksIGFyZ3VtZW50QXNEb3VibGUpOwogICAgIFZhbHVlKiByZXN1bHRB
c0ludDY0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2lu
KCksIGFic1ZhbHVlKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdEFzSW50NjQpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHRBc0ludDY0KTsKIAogICAg
IGludDY0X3QgZXhwZWN0ZWRSZXN1bHQgPSBiaXR3aXNlX2Nhc3Q8aW50NjRfdD4oZmFicyhhKSk7
CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCBiaXR3
aXNlX2Nhc3Q8aW50NjRfdD4oYSkpLCBleHBlY3RlZFJlc3VsdCkpOwpAQCAtMzU0Miw3ICszNTQ5
LDcgQEAgdm9pZCB0ZXN0QWJzQXJnKGZsb2F0IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50
MzIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFi
cywgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1
bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48
aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KHN0YXRpY19jYXN0PGZsb2F0PihmYWJzKGEpKSkpKTsKIH0KQEAgLTM1NTQsNyArMzU2
MSw3IEBAIHZvaWQgdGVzdEFic0ltbShmbG9hdCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJv
b3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBW
YWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdpbigp
LCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1
bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHBy
b2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihzdGF0
aWNfY2FzdDxmbG9hdD4oZmFicyhhKSkpKSk7CiB9CkBAIC0zNTY3LDcgKzM1NzQsNyBAQCB2b2lk
IHRlc3RBYnNNZW0oZmxvYXQgYSkKICAgICBNZW1vcnlWYWx1ZSogbG9hZEZsb2F0ID0gcm9vdC0+
YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBGbG9hdCwgT3JpZ2luKCksIGFkZHJl
c3MpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFi
cywgT3JpZ2luKCksIGxvYWRGbG9hdCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVu
PGludDMyX3Q+KHByb2MsICZhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0PGZs
b2F0PihmYWJzKGEpKSkpKTsKIH0KQEAgLTM1ODEsNyArMzU4OCw3IEBAIHZvaWQgdGVzdEFic0Fi
c0FyZyhmbG9hdCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1ZSog
Zmlyc3RBYnMgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFicywgT3JpZ2luKCksIGFy
Z3VtZW50KTsKICAgICBWYWx1ZSogc2Vjb25kQWJzID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBBYnMsIE9yaWdpbigpLCBmaXJzdEFicyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kQWJzKTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kQWJzKTsK
IAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsIGJpdHdp
c2VfY2FzdDxpbnQzMl90PihhKSksIHN0YXRpY19jYXN0PGZsb2F0PihmYWJzKGEpKSkpOwogfQpA
QCAtMzU5NCw3ICszNjAxLDcgQEAgdm9pZCB0ZXN0QWJzQml0d2lzZUNhc3RBcmcoZmxvYXQgYSkK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSogYXJndW1lbnRBc2Zsb2F0ID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3Vt
ZW50QXNJbnQzMik7CiAgICAgVmFsdWUqIGFic1ZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBBYnMsIE9yaWdpbigpLCBhcmd1bWVudEFzZmxvYXQpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFic1ZhbHVlKTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWJz
VmFsdWUpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJv
YywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGZhYnMoYSkp
KSk7CiB9CkBAIC0zNjA5LDcgKzM2MTYsNyBAQCB2b2lkIHRlc3RCaXR3aXNlQ2FzdEFic0JpdHdp
c2VDYXN0QXJnKGZsCiAgICAgVmFsdWUqIGFic1ZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBBYnMsIE9yaWdpbigpLCBhcmd1bWVudEFzZmxvYXQpOwogICAgIFZhbHVlKiByZXN1
bHRBc0ludDY0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3Jp
Z2luKCksIGFic1ZhbHVlKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdEFzSW50NjQpOworICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHRBc0ludDY0KTsKIAog
ICAgIGludDMyX3QgZXhwZWN0ZWRSZXN1bHQgPSBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGlj
X2Nhc3Q8ZmxvYXQ+KGZhYnMoYSkpKTsKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5k
UnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGV4cGVjdGVkUmVz
dWx0KSk7CkBAIC0zNjI2LDcgKzM2MzMsNyBAQCB2b2lkIHRlc3RBYnNBcmdXaXRoVXNlbGVzc0Rv
dWJsZUNvbnZlcnNpCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQWJzLCBPcmlnaW4oKSwgYXNEb3VibGUpOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIHJl
c3VsdCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJv
YywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRp
Y19jYXN0PGZsb2F0PihmYWJzKGEpKSkpKTsKIH0KQEAgLTM2NDQsNyArMzY1MSw3IEBAIHZvaWQg
dGVzdEFic0FyZ1dpdGhFZmZlY3RmdWxEb3VibGVDb252ZXIKICAgICBWYWx1ZSogcmVzdWx0MzIg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxv
YXRSZXN1bHQpOwogICAgIFZhbHVlKiBkb3VibGVBZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwog
ICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCBy
ZXN1bHQsIGRvdWJsZUFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgZG91
YmxlIGVmZmVjdCA9IDA7CiAgICAgaW50MzJfdCByZXN1bHRWYWx1ZSA9IGNvbXBpbGVBbmRSdW48
aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCAmZWZmZWN0KTsKQEAgLTM2
NTYsNyArMzY2Myw3IEBAIHZvaWQgdGVzdENlaWxBcmcoZG91YmxlIGEpCiB7CiAgICAgUHJvY2Vk
dXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBDZWlsLCBPcmlnaW4oKSwKQEAgLTM2
NzAsNyArMzY3Nyw3IEBAIHZvaWQgdGVzdENlaWxJbW0oZG91YmxlIGEpCiAgICAgUHJvY2VkdXJl
IHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1
ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIGEpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDZWlsLCBPcmlnaW4oKSwgYXJn
dW1lbnQpKTsKIApAQCAtMzY4Myw3ICszNjkwLDcgQEAgdm9pZCB0ZXN0Q2VpbE1lbShkb3VibGUg
YSkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBh
ZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkRG91YmxlID0g
cm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBEb3VibGUsIE9yaWdpbigp
LCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCksIGxv
YWREb3VibGUpKTsKIApAQCAtMzY5Nyw3ICszNzA0LDcgQEAgdm9pZCB0ZXN0Q2VpbENlaWxBcmco
ZG91YmxlIGEpCiAgICAgVmFsdWUqIGZpcnN0Q2VpbCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQ2VpbCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKSk7CiAgICAgVmFs
dWUqIHNlY29uZENlaWwgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdp
bigpLCBmaXJzdENlaWwpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHNlY29uZENlaWwpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmRDZWlsKTsKIAogICAgIENIRUNL
KGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBhKSwgY2VpbChhKSkpOwog
fQpAQCAtMzcwOSw3ICszNzE2LDcgQEAgdm9pZCB0ZXN0Rmxvb3JDZWlsQXJnKGRvdWJsZSBhKQog
ICAgIFZhbHVlKiBmaXJzdENlaWwgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWws
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCkpOwogICAgIFZhbHVlKiB3cmFwcGlu
Z0Zsb29yID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGZp
cnN0Q2VpbCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgd3JhcHBpbmdGbG9vcik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHdyYXBwaW5nRmxvb3IpOwogCiAgICAgQ0hFQ0so
aXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIGEpLCBjZWlsKGEpKSk7CiB9
CkBAIC0zNzIxLDcgKzM3MjgsNyBAQCB2b2lkIHRlc3RDZWlsSVRvRDY0KGludDY0X3QgYSkKICAg
ICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50
QXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBh
cmd1bWVudCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCksIGFy
Z3VtZW50QXNEb3VibGUpKTsKIApAQCAtMzczNiw3ICszNzQzLDcgQEAgdm9pZCB0ZXN0Q2VpbElU
b0QzMihpbnQ2NF90IGEpCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgVmFsdWUqIGFy
Z3VtZW50QXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdp
bigpLCBhcmd1bWVudCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2lu
KCksIGFyZ3VtZW50QXNEb3VibGUpKTsKIApAQCAtMzc1Miw3ICszNzU5LDcgQEAgdm9pZCB0ZXN0
Q2VpbEFyZyhmbG9hdCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1
ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDZWlsLCBPcmlnaW4oKSwg
YXJndW1lbnQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9j
LCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oY2VpbGYo
YSkpKSk7CiB9CkBAIC0zNzY0LDcgKzM3NzEsNyBAQCB2b2lkIHRlc3RDZWlsSW1tKGZsb2F0IGEp
CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHJlc3Vs
dDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCks
IHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNh
bChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSks
IGJpdHdpc2VfY2FzdDxpbnQzMl90PihjZWlsZihhKSkpKTsKIH0KQEAgLTM3NzcsNyArMzc4NCw3
IEBAIHZvaWQgdGVzdENlaWxNZW0oZmxvYXQgYSkKICAgICBNZW1vcnlWYWx1ZSogbG9hZEZsb2F0
ID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBGbG9hdCwgT3JpZ2lu
KCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIENlaWwsIE9yaWdpbigpLCBsb2FkRmxvYXQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1
bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29t
cGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCAmYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihjZWls
ZihhKSkpKTsKIH0KQEAgLTM3OTEsNyArMzc5OCw3IEBAIHZvaWQgdGVzdENlaWxDZWlsQXJnKGZs
b2F0IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiBmaXJzdENl
aWwgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBhcmd1bWVu
dCk7CiAgICAgVmFsdWUqIHNlY29uZENlaWwgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IENlaWwsIE9yaWdpbigpLCBmaXJzdENlaWwpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZENlaWwpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmRDZWlsKTsK
IAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsIGJpdHdp
c2VfY2FzdDxpbnQzMl90PihhKSksIGNlaWxmKGEpKSk7CiB9CkBAIC0zODA1LDcgKzM4MTIsNyBA
QCB2b2lkIHRlc3RGbG9vckNlaWxBcmcoZmxvYXQgYSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1l
bnQzMik7CiAgICAgVmFsdWUqIGZpcnN0Q2VpbCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQ2VpbCwgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBWYWx1ZSogd3JhcHBpbmdGbG9vciA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBmaXJzdENlaWwp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHdyYXBwaW5nRmxvb3IpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCB3cmFwcGluZ0Zsb29yKTsKIAogICAgIENIRUNLKGlzSWRlbnRp
Y2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSks
IGNlaWxmKGEpKSk7CiB9CkBAIC0zODIxLDcgKzM4MjgsNyBAQCB2b2lkIHRlc3RDZWlsQXJnV2l0
aFVzZWxlc3NEb3VibGVDb252ZXJzCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCksIGFzRG91YmxlKTsKICAgICBWYWx1ZSogZmxv
YXRSZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9y
aWdpbigpLCByZXN1bHQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGlu
dDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQz
Ml90PihjZWlsZihhKSkpKTsKIH0KQEAgLTM4MzksNyArMzg0Niw3IEBAIHZvaWQgdGVzdENlaWxB
cmdXaXRoRWZmZWN0ZnVsRG91YmxlQ29udmUKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQp
OwogICAgIFZhbHVlKiBkb3VibGVBZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwogICAgIHJvb3Qt
PmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGRv
dWJsZUFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgZG91YmxlIGVmZmVj
dCA9IDA7CiAgICAgaW50MzJfdCByZXN1bHRWYWx1ZSA9IGNvbXBpbGVBbmRSdW48aW50MzJfdD4o
cHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCAmZWZmZWN0KTsKQEAgLTM4NTEsNyArMzg1
OCw3IEBAIHZvaWQgdGVzdEZsb29yQXJnKGRvdWJsZSBhKQogewogICAgIFByb2NlZHVyZSBwcm9j
OwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgRmxvb3IsIE9yaWdpbigpLApAQCAtMzg2NSw3ICsz
ODcyLDcgQEAgdm9pZCB0ZXN0Rmxvb3JJbW0oZG91YmxlIGEpCiAgICAgUHJvY2VkdXJlIHByb2M7
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJn
dW1lbnQgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IGEpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGFyZ3VtZW50
KSk7CiAKQEAgLTM4NzgsNyArMzg4NSw3IEBAIHZvaWQgdGVzdEZsb29yTWVtKGRvdWJsZSBhKQog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFkZHJl
c3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWREb3VibGUgPSByb290
LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIERvdWJsZSwgT3JpZ2luKCksIGFk
ZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGxvYWRE
b3VibGUpKTsKIApAQCAtMzg5Miw3ICszODk5LDcgQEAgdm9pZCB0ZXN0Rmxvb3JGbG9vckFyZyhk
b3VibGUgYSkKICAgICBWYWx1ZSogZmlyc3RGbG9vciA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgRmxvb3IsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCkpOwogICAgIFZh
bHVlKiBzZWNvbmRGbG9vciA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9y
aWdpbigpLCBmaXJzdEZsb29yKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmRGbG9vcik7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZEZsb29yKTsKIAogICAg
IENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBhKSwgZmxvb3Io
YSkpKTsKIH0KQEAgLTM5MDQsNyArMzkxMSw3IEBAIHZvaWQgdGVzdENlaWxGbG9vckFyZyhkb3Vi
bGUgYSkKICAgICBWYWx1ZSogZmlyc3RGbG9vciA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgRmxvb3IsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCkpOwogICAgIFZhbHVl
KiB3cmFwcGluZ0NlaWwgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdp
bigpLCBmaXJzdEZsb29yKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCB3cmFwcGluZ0NlaWwpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB3cmFwcGluZ0NlaWwpOwogCiAgICAg
Q0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIGEpLCBmbG9vcihh
KSkpOwogfQpAQCAtMzkxNiw3ICszOTIzLDcgQEAgdm9pZCB0ZXN0Rmxvb3JJVG9ENjQoaW50NjRf
dCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBWYWx1ZSog
YXJndW1lbnRBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3Jp
Z2luKCksIGFyZ3VtZW50KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3Jp
Z2luKCksIGFyZ3VtZW50QXNEb3VibGUpKTsKIApAQCAtMzkzMSw3ICszOTM4LDcgQEAgdm9pZCB0
ZXN0Rmxvb3JJVG9EMzIoaW50NjRfdCBhKQogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAg
IFZhbHVlKiBhcmd1bWVudEFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJ
VG9ELCBPcmlnaW4oKSwgYXJndW1lbnQpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZs
b29yLCBPcmlnaW4oKSwgYXJndW1lbnRBc0RvdWJsZSkpOwogCkBAIC0zOTQ3LDcgKzM5NTQsNyBA
QCB2b2lkIHRlc3RGbG9vckFyZyhmbG9hdCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMy
KTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9v
ciwgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1
bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48
aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KGZsb29yZihhKSkpKTsKIH0KQEAgLTM5NTksNyArMzk2Niw3IEBAIHZvaWQgdGVzdEZs
b29ySW1tKGZsb2F0IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENv
bnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiByZXN1bHQgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgYXJndW1lbnQpOwog
ICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lz
ZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAg
Q0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nh
c3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oZmxvb3JmKGEpKSkpOwogfQpA
QCAtMzk3Miw3ICszOTc5LDcgQEAgdm9pZCB0ZXN0Rmxvb3JNZW0oZmxvYXQgYSkKICAgICBNZW1v
cnlWYWx1ZSogbG9hZEZsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBM
b2FkLCBGbG9hdCwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgbG9hZEZsb2F0KTsKICAg
ICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VD
YXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENI
RUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgJmEpLCBiaXR3aXNl
X2Nhc3Q8aW50MzJfdD4oZmxvb3JmKGEpKSkpOwogfQpAQCAtMzk4Niw3ICszOTkzLDcgQEAgdm9p
ZCB0ZXN0Rmxvb3JGbG9vckFyZyhmbG9hdCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMy
KTsKICAgICBWYWx1ZSogZmlyc3RGbG9vciA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
Rmxvb3IsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHNlY29uZEZsb29yID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGZpcnN0Rmxvb3IpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHNlY29uZEZsb29yKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgc2Vjb25kRmxvb3IpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29t
cGlsZUFuZFJ1bjxmbG9hdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgZmxvb3Jm
KGEpKSk7CiB9CkBAIC00MDAwLDcgKzQwMDcsNyBAQCB2b2lkIHRlc3RDZWlsRmxvb3JBcmcoZmxv
YXQgYSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUqIGZpcnN0Rmxv
b3IgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgYXJndW1l
bnQpOwogICAgIFZhbHVlKiB3cmFwcGluZ0NlaWwgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIENlaWwsIE9yaWdpbigpLCBmaXJzdEZsb29yKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB3cmFwcGluZ0NlaWwpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB3cmFwcGlu
Z0NlaWwpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJv
YywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgZmxvb3JmKGEpKSk7CiB9CkBAIC00MDE2LDcg
KzQwMjMsNyBAQCB2b2lkIHRlc3RGbG9vckFyZ1dpdGhVc2VsZXNzRG91YmxlQ29udmVyCiAgICAg
VmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdp
bigpLCBhc0RvdWJsZSk7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICBWYWx1
ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBP
cmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hF
Q0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oZmxvb3JmKGEpKSkpOwogfQpAQCAt
NDAzNCw3ICs0MDQxLDcgQEAgdm9pZCB0ZXN0Rmxvb3JBcmdXaXRoRWZmZWN0ZnVsRG91YmxlQ29u
dgogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0
d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CiAgICAgVmFsdWUqIGRvdWJsZUFkZHJl
c3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMSk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihw
cm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgZG91YmxlQWRkcmVzcyk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQzMik7CiAKICAgICBkb3VibGUgZWZmZWN0ID0gMDsKICAgICBpbnQzMl90IHJlc3Vs
dFZhbHVlID0gY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJf
dD4oYSksICZlZmZlY3QpOwpAQCAtNDA0Niw3ICs0MDUzLDcgQEAgdm9pZCB0ZXN0U3FydEFyZyhk
b3VibGUgYSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IFNxcnQsIE9yaWdpbigpLApAQCAtNDA2MCw3ICs0MDY3LDcgQEAgdm9pZCB0ZXN0U3FydEltbShk
b3VibGUgYSkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25z
dERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIFNxcnQsIE9yaWdpbigpLCBhcmd1bWVudCkpOwogCkBAIC00MDczLDcgKzQwODAsNyBAQCB2
b2lkIHRlc3RTcXJ0TWVtKGRvdWJsZSBhKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVt
b3J5VmFsdWUqIGxvYWREb3VibGUgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2Ms
IExvYWQsIERvdWJsZSwgT3JpZ2luKCksIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBTcXJ0LCBPcmlnaW4oKSwgbG9hZERvdWJsZSkpOwogCkBAIC00MDg5LDcgKzQwOTYsNyBA
QCB2b2lkIHRlc3RTcXJ0QXJnKGZsb2F0IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIp
OwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFNxcnQs
IE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGlu
dDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQz
Ml90PihzdGF0aWNfY2FzdDxmbG9hdD4oc3FydChhKSkpKSk7CiB9CkBAIC00MTAxLDcgKzQxMDgs
NyBAQCB2b2lkIHRlc3RTcXJ0SW1tKGZsb2F0IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9v
dC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZh
bHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFNxcnQsIE9yaWdpbigp
LCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1
bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHBy
b2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihzdGF0
aWNfY2FzdDxmbG9hdD4oc3FydChhKSkpKSk7CiB9CkBAIC00MTE0LDcgKzQxMjEsNyBAQCB2b2lk
IHRlc3RTcXJ0TWVtKGZsb2F0IGEpCiAgICAgTWVtb3J5VmFsdWUqIGxvYWRGbG9hdCA9IHJvb3Qt
PmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgRmxvYXQsIE9yaWdpbigpLCBhZGRy
ZXNzKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBT
cXJ0LCBPcmlnaW4oKSwgbG9hZEZsb2F0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRS
dW48aW50MzJfdD4ocHJvYywgJmEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8
ZmxvYXQ+KHNxcnQoYSkpKSkpOwogfQpAQCAtNDEzMCw3ICs0MTM3LDcgQEAgdm9pZCB0ZXN0U3Fy
dEFyZ1dpdGhVc2VsZXNzRG91YmxlQ29udmVycwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIFNxcnQsIE9yaWdpbigpLCBhc0RvdWJsZSk7CiAgICAgVmFs
dWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zs
b2F0LCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFu
ZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nh
c3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KHNxcnQoYSkpKSkpOwogfQpAQCAtNDE0OCw3
ICs0MTU1LDcgQEAgdm9pZCB0ZXN0U3FydEFyZ1dpdGhFZmZlY3RmdWxEb3VibGVDb252ZQogICAg
IFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNh
c3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CiAgICAgVmFsdWUqIGRvdWJsZUFkZHJlc3MgPSBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMSk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBT
dG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgZG91YmxlQWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1
bHQzMik7CiAKICAgICBkb3VibGUgZWZmZWN0ID0gMDsKICAgICBpbnQzMl90IHJlc3VsdFZhbHVl
ID0gY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSks
ICZlZmZlY3QpOwpAQCAtNDE3Miw3ICs0MTc5LDcgQEAgdm9pZCB0ZXN0Q29tcGFyZVR3b0Zsb2F0
VG9Eb3VibGUoZmxvYXQgYQogICAgIFZhbHVlKiBhcmcyQXNEb3VibGUgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBhcmcyRmxvYXQpOwogICAg
IFZhbHVlKiBlcXVhbCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRXF1YWwsIE9yaWdp
bigpLCBhcmcxQXNEb3VibGUsIGFyZzJBc0RvdWJsZSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBlcXVhbCk7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGVxdWFsKTsKIAog
ICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMy
X3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpID09IChhID09IGIpKTsKIH0KQEAgLTQx
OTAsNyArNDE5Nyw3IEBAIHZvaWQgdGVzdENvbXBhcmVPbmVGbG9hdFRvRG91YmxlKGZsb2F0IGEK
ICAgICBWYWx1ZSogYXJnMkFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiBl
cXVhbCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRXF1YWwsIE9yaWdpbigpLCBhcmcx
QXNEb3VibGUsIGFyZzJBc0RvdWJsZSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBlcXVhbCk7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGVxdWFsKTsKIAogICAgIENIRUNL
KGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBi
KSA9PSAoYSA9PSBiKSk7CiB9CkBAIC00MjE0LDIzICs0MjIxLDIzIEBAIHZvaWQgdGVzdENvbXBh
cmVGbG9hdFRvRG91YmxlVGhyb3VnaFBoaSgKICAgICBWYWx1ZSogYXJnMkFzRmxvYXQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBhcmcyQXNE
b3VibGUpOwogICAgIFZhbHVlKiBhcmcyQXNGUm91bmRlZERvdWJsZSA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGFyZzJBc0Zsb2F0KTsKIAot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgY29u
ZGl0aW9uLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxv
Y2soZWxzZUNhc2UpKTsKIAogICAgIFVwc2lsb25WYWx1ZSogdGhlblZhbHVlID0gdGhlbkNhc2Ut
PmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhcmcxQXNEb3VibGUpOwot
ICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4o
KSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOwogCiAg
ICAgVmFsdWUqIGVsc2VDb25zdCA9IGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIDAuKTsKICAgICBVcHNpbG9uVmFsdWUqIGVsc2VWYWx1ZSA9IGVs
c2VDYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgZWxzZUNvbnN0
KTsKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3Jp
Z2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsK
IAogICAgIFZhbHVlKiBkb3VibGVJbnB1dCA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
UGhpLCBEb3VibGUsIE9yaWdpbigpKTsKICAgICB0aGVuVmFsdWUtPnNldFBoaShkb3VibGVJbnB1
dCk7CiAgICAgZWxzZVZhbHVlLT5zZXRQaGkoZG91YmxlSW5wdXQpOwogICAgIFZhbHVlKiBlcXVh
bCA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRXF1YWwsIE9yaWdpbigpLCBkb3VibGVJ
bnB1dCwgYXJnMkFzRlJvdW5kZWREb3VibGUpOwotICAgIHRhaWwtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGVxdWFsKTsKKyAgICB0YWlsLT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZXF1YWwpOwogCiAgICAgYXV0
byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBpbnQzMl90IGludGVnZXJBID0gYml0d2lzZV9j
YXN0PGludDMyX3Q+KGEpOwpAQCAtNDI2MSw3ICs0MjY4LDcgQEAgdm9pZCB0ZXN0RG91YmxlVG9G
bG9hdFRocm91Z2hQaGkoZmxvYXQgdgogICAgIFZhbHVlKiBmbG9hdFZhbHVlID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwog
ICAgIFZhbHVlKiBhcmdBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxv
YXRUb0RvdWJsZSwgT3JpZ2luKCksIGZsb2F0VmFsdWUpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICBjb25kaXRpb24sCiAgICAgICAgIEZy
ZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwpAQCAt
NDI2OSwxNyArNDI3NiwxNyBAQCB2b2lkIHRlc3REb3VibGVUb0Zsb2F0VGhyb3VnaFBoaShmbG9h
dCB2CiAgICAgVmFsdWUqIHBvc3RpdGl2ZUNvbnN0ID0gdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25z
dERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIuNWYpOwogICAgIFZhbHVlKiB0aGVuQWRk
ID0gdGhlbkNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYXJnQXNE
b3VibGUsIHBvc3RpdGl2ZUNvbnN0KTsKICAgICBVcHNpbG9uVmFsdWUqIHRoZW5WYWx1ZSA9IHRo
ZW5DYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdGhlbkFkZCk7
Ci0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdp
bigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOworICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CiAK
ICAgICBWYWx1ZSogZWxzZUNvbnN0ID0gZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgTV9QSSk7CiAgICAgVXBzaWxvblZhbHVlKiBlbHNlVmFsdWUg
PSBlbHNlQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGVsc2VD
b25zdCk7Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAs
IE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOworICAgIGVsc2VDYXNlLT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWls
KSk7CiAKICAgICBWYWx1ZSogZG91YmxlSW5wdXQgPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIFBoaSwgRG91YmxlLCBPcmlnaW4oKSk7CiAgICAgdGhlblZhbHVlLT5zZXRQaGkoZG91Ymxl
SW5wdXQpOwogICAgIGVsc2VWYWx1ZS0+c2V0UGhpKGRvdWJsZUlucHV0KTsKICAgICBWYWx1ZSog
ZmxvYXRSZXN1bHQgPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQs
IE9yaWdpbigpLCBkb3VibGVJbnB1dCk7Ci0gICAgdGFpbC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOworICAgIHRhaWwtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CiAK
ICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGlu
dm9rZTxmbG9hdD4oKmNvZGUsIDEsIGJpdHdpc2VfY2FzdDxpbnQzMl90Pih2YWx1ZSkpLCB2YWx1
ZSArIDQyLjVmKSk7CkBAIC00Mjk5LDE4ICs0MzA2LDE4IEBAIHZvaWQgdGVzdERvdWJsZVByb2R1
Y2VyUGhpVG9GbG9hdENvbnZlcnMKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKTsKICAgICBWYWx1
ZSogZmxvYXRWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3Qs
IE9yaWdpbigpLCBhcmd1bWVudDMyKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJh
bmNoLCBPcmlnaW4oKSwKICAgICAgICAgY29uZGl0aW9uLAogICAgICAgICBGcmVxdWVudGVkQmxv
Y2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAogICAgIFZhbHVlKiBh
c0RvdWJsZSA9IHRoZW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUs
IE9yaWdpbigpLCBmbG9hdFZhbHVlKTsKICAgICBVcHNpbG9uVmFsdWUqIHRoZW5WYWx1ZSA9IHRo
ZW5DYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYXNEb3VibGUp
OwotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmln
aW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOwog
CiAgICAgVmFsdWUqIGNvbnN0RG91YmxlID0gZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdERvdWJs
ZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIuNSk7CiAgICAgVXBzaWxvblZhbHVlKiBlbHNlVmFs
dWUgPSBlbHNlQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGNv
bnN0RG91YmxlKTsKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
SnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CisgICAgZWxzZUNhc2UtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2Nr
KHRhaWwpKTsKIAogICAgIFZhbHVlKiBkb3VibGVJbnB1dCA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgUGhpLCBEb3VibGUsIE9yaWdpbigpKTsKICAgICB0aGVuVmFsdWUtPnNldFBoaShk
b3VibGVJbnB1dCk7CkBAIC00MzE5LDcgKzQzMjYsNyBAQCB2b2lkIHRlc3REb3VibGVQcm9kdWNl
clBoaVRvRmxvYXRDb252ZXJzCiAgICAgVmFsdWUqIGFyZ0FzRG91YmxlQWdhaW4gPSB0YWlsLT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBmbG9hdFZhbHVl
KTsKICAgICBWYWx1ZSogZmluYWxBZGQgPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFk
ZCwgT3JpZ2luKCksIGRvdWJsZUlucHV0LCBhcmdBc0RvdWJsZUFnYWluKTsKICAgICBWYWx1ZSog
ZmxvYXRSZXN1bHQgPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQs
IE9yaWdpbigpLCBmaW5hbEFkZCk7Ci0gICAgdGFpbC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOworICAgIHRhaWwtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CiAKICAg
ICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGludm9r
ZTxmbG9hdD4oKmNvZGUsIDEsIGJpdHdpc2VfY2FzdDxpbnQzMl90Pih2YWx1ZSkpLCB2YWx1ZSAr
IHZhbHVlKSk7CkBAIC00MzQxLDE4ICs0MzQ4LDE4IEBAIHZvaWQgdGVzdERvdWJsZVByb2R1Y2Vy
UGhpVG9GbG9hdENvbnZlcnMKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKTsKICAgICBWYWx1ZSog
ZmxvYXRWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9y
aWdpbigpLCBhcmd1bWVudDMyKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNo
LCBPcmlnaW4oKSwKICAgICAgICAgY29uZGl0aW9uLAogICAgICAgICBGcmVxdWVudGVkQmxvY2so
dGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAogICAgIFZhbHVlKiBhc0Rv
dWJsZSA9IHRoZW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9y
aWdpbigpLCBmbG9hdFZhbHVlKTsKICAgICBVcHNpbG9uVmFsdWUqIHRoZW5WYWx1ZSA9IHRoZW5D
YXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYXNEb3VibGUpOwot
ICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4o
KSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOwogCiAg
ICAgVmFsdWUqIGNvbnN0RG91YmxlID0gZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgNDIuNSk7CiAgICAgVXBzaWxvblZhbHVlKiBlbHNlVmFsdWUg
PSBlbHNlQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGNvbnN0
RG91YmxlKTsKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVt
cCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CisgICAgZWxzZUNhc2UtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRh
aWwpKTsKIAogICAgIFZhbHVlKiBkb3VibGVJbnB1dCA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgUGhpLCBEb3VibGUsIE9yaWdpbigpKTsKICAgICB0aGVuVmFsdWUtPnNldFBoaShkb3Vi
bGVJbnB1dCk7CkBAIC00MzY4LDcgKzQzNzUsNyBAQCB2b2lkIHRlc3REb3VibGVQcm9kdWNlclBo
aVRvRmxvYXRDb252ZXJzCiAgICAgLy8gVGhpcyBvbmUgKmNhbm5vdCogYmUgZWxpbWluYXRlZAog
ICAgIFZhbHVlKiBkb3VibGVBZGQgPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwg
T3JpZ2luKCksIGRvdWJsZUlucHV0LCBkb3VibGVSZXN1bHQpOwogCi0gICAgdGFpbC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZG91YmxlQWRkKTsKKyAg
ICB0YWlsLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZG91
YmxlQWRkKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgQ0hFQ0soaXNJ
ZGVudGljYWwoaW52b2tlPGRvdWJsZT4oKmNvZGUsIDEsIGJpdHdpc2VfY2FzdDxpbnQzMl90Pih2
YWx1ZSkpLCAodmFsdWUgKyB2YWx1ZSkgKyBzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVlKSkpOwpA
QCAtNDM4OCwxOCArNDM5NSwxOCBAQCB2b2lkIHRlc3REb3VibGVQcm9kdWNlclBoaVdpdGhOb25G
bG9hdENvCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7CiAgICAgVmFsdWUqIGZsb2F0VmFsdWUg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJn
dW1lbnQzMik7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCks
CiAgICAgICAgIGNvbmRpdGlvbiwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwg
RnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKICAgICBWYWx1ZSogYXNEb3VibGUgPSB0aGVu
Q2FzZS0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgZmxv
YXRWYWx1ZSk7CiAgICAgVXBzaWxvblZhbHVlKiB0aGVuVmFsdWUgPSB0aGVuQ2FzZS0+YXBwZW5k
TmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFzRG91YmxlKTsKLSAgICB0aGVuQ2Fz
ZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50
ZWRCbG9jayh0YWlsKSk7CisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKIAogICAgIFZhbHVlKiBj
b25zdERvdWJsZSA9IGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIGNvbnN0VmFsdWUpOwogICAgIFVwc2lsb25WYWx1ZSogZWxzZVZhbHVlID0gZWxz
ZUNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCBjb25zdERvdWJs
ZSk7Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9y
aWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOworICAgIGVsc2VDYXNlLT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7
CiAKICAgICBWYWx1ZSogZG91YmxlSW5wdXQgPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IFBoaSwgRG91YmxlLCBPcmlnaW4oKSk7CiAgICAgdGhlblZhbHVlLT5zZXRQaGkoZG91YmxlSW5w
dXQpOwpAQCAtNDQwOCw3ICs0NDE1LDcgQEAgdm9pZCB0ZXN0RG91YmxlUHJvZHVjZXJQaGlXaXRo
Tm9uRmxvYXRDbwogICAgIFZhbHVlKiBhcmdBc0RvdWJsZUFnYWluID0gdGFpbC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSk7CiAgICAg
VmFsdWUqIGZpbmFsQWRkID0gdGFpbC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdp
bigpLCBkb3VibGVJbnB1dCwgYXJnQXNEb3VibGVBZ2Fpbik7CiAgICAgVmFsdWUqIGZsb2F0UmVz
dWx0ID0gdGFpbC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4o
KSwgZmluYWxBZGQpOwotICAgIHRhaWwtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKKyAgICB0YWlsLT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwogCiAgICAgYXV0byBj
b2RlID0gY29tcGlsZShwcm9jKTsKICAgICBDSEVDSyhpc0lkZW50aWNhbChpbnZva2U8ZmxvYXQ+
KCpjb2RlLCAxLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4odmFsdWUpKSwgdmFsdWUgKyB2YWx1ZSkp
OwpAQCAtNDQyMSw3ICs0NDI4LDcgQEAgdm9pZCB0ZXN0RG91YmxlQXJnVG9JbnQ2NEJpdHdpc2VD
YXN0KGRvdQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFs
dWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAog
ICAgICAgICAgICAgcHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudCkpOwpAQCAt
NDQzNSw3ICs0NDQyLDcgQEAgdm9pZCB0ZXN0RG91YmxlSW1tVG9JbnQ2NEJpdHdpc2VDYXN0KGRv
dQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFy
Z3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigp
LCB2YWx1ZSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXR3
aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50KSk7CkBAIC00NDUwLDcgKzQ0NTcsNyBAQCB2b2lk
IHRlc3RUd29CaXR3aXNlQ2FzdE9uRG91YmxlKGRvdWJsZSB2CiAgICAgVmFsdWUqIGFyZ3VtZW50
ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJ
bmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiBmaXJzdCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUq
IHNlY29uZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdp
bigpLCBmaXJzdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgc2Vjb25kKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2Fs
KGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCB2YWx1ZSksIHZhbHVlKSk7CiB9CkBAIC00NDYy
LDcgKzQ0NjksNyBAQCB2b2lkIHRlc3RCaXR3aXNlQ2FzdE9uRG91YmxlSW5NZW1vcnkoZG91CiAg
ICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIGxv
YWREb3VibGUgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIERvdWJs
ZSwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBjYXN0ID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGxvYWREb3VibGUpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNhc3Qp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBjYXN0KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50NjRfdD4o
cHJvYywgJnZhbHVlKSwgYml0d2lzZV9jYXN0PGludDY0X3Q+KHZhbHVlKSkpOwogfQpAQCAtNDQ3
OSw3ICs0NDg2LDcgQEAgdm9pZCB0ZXN0Qml0d2lzZUNhc3RPbkRvdWJsZUluTWVtb3J5SW5kZQog
ICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9y
aWdpbigpLCBiYXNlLCBzY2FsZWRPZmZzZXQpOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkRG91Ymxl
ID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBEb3VibGUsIE9yaWdp
bigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogY2FzdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBsb2FkRG91YmxlKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0KTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FzdCk7
CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsICZ2
YWx1ZSwgMCksIGJpdHdpc2VfY2FzdDxpbnQ2NF90Pih2YWx1ZSkpKTsKIH0KQEAgLTQ0OTAsNyAr
NDQ5Nyw3IEBAIHZvaWQgdGVzdEludDY0QkFyZ1RvRG91YmxlQml0d2lzZUNhc3QoaW4KICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIwKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQpKTsKQEAgLTQ1MDQsNyArNDUxMSw3
IEBAIHZvaWQgdGVzdEludDY0QkltbVRvRG91YmxlQml0d2lzZUNhc3QoaW4KICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3Qt
PmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSk7CiAKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCks
IGFyZ3VtZW50KSk7CkBAIC00NTE5LDcgKzQ1MjYsNyBAQCB2b2lkIHRlc3RUd29CaXR3aXNlQ2Fz
dE9uSW50NjQoaW50NjRfdCB2CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjAp
OwogICAgIFZhbHVlKiBmaXJzdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lz
ZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHNlY29uZCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmaXJzdCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vj
b25kKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgc2Vjb25kKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50
NjRfdD4ocHJvYywgdmFsdWUpLCB2YWx1ZSkpOwogfQpAQCAtNDUzMSw3ICs0NTM4LDcgQEAgdm9p
ZCB0ZXN0Qml0d2lzZUNhc3RPbkludDY0SW5NZW1vcnkoaW50NgogICAgIFZhbHVlKiBhZGRyZXNz
ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkRG91YmxlID0gcm9vdC0+
YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQ2NCwgT3JpZ2luKCksIGFkZHJl
c3MpOwogICAgIFZhbHVlKiBjYXN0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3
aXNlQ2FzdCwgT3JpZ2luKCksIGxvYWREb3VibGUpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNhc3QpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0KTsKIAogICAgIENI
RUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCAmdmFsdWUpLCBiaXR3
aXNlX2Nhc3Q8ZG91YmxlPih2YWx1ZSkpKTsKIH0KQEAgLTQ1NDgsNyArNDU1NSw3IEBAIHZvaWQg
dGVzdEJpdHdpc2VDYXN0T25JbnQ2NEluTWVtb3J5SW5kZXgKICAgICBWYWx1ZSogYWRkcmVzcyA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYmFzZSwgc2NhbGVk
T2Zmc2V0KTsKICAgICBNZW1vcnlWYWx1ZSogbG9hZERvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxN
ZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50NjQsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBW
YWx1ZSogY2FzdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9y
aWdpbigpLCBsb2FkRG91YmxlKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FzdCk7CiAKICAgICBDSEVDSyhpc0lkZW50
aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgJnZhbHVlLCAwKSwgYml0d2lzZV9jYXN0
PGRvdWJsZT4odmFsdWUpKSk7CiB9CkBAIC00NTU5LDcgKzQ1NjYsNyBAQCB2b2lkIHRlc3RGbG9h
dEltbVRvSW50MzJCaXR3aXNlQ2FzdChmbG9hCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8Q29uc3RG
bG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudCkpOwpA
QCAtNDU3NCw3ICs0NTgxLDcgQEAgdm9pZCB0ZXN0Qml0d2lzZUNhc3RPbkZsb2F0SW5NZW1vcnko
ZmxvYQogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZh
bHVlKiBsb2FkRmxvYXQgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQs
IEZsb2F0LCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIGNhc3QgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgbG9hZEZsb2F0KTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBj
YXN0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgY2FzdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMy
X3Q+KHByb2MsICZ2YWx1ZSksIGJpdHdpc2VfY2FzdDxpbnQzMl90Pih2YWx1ZSkpKTsKIH0KQEAg
LTQ1ODUsNyArNDU5Miw3IEBAIHZvaWQgdGVzdEludDMyQkFyZ1RvRmxvYXRCaXR3aXNlQ2FzdChp
bnQKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBh
cmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQpKTsKQEAgLTQ1OTks
NyArNDYwNiw3IEBAIHZvaWQgdGVzdEludDMyQkltbVRvRmxvYXRCaXR3aXNlQ2FzdChpbnQKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVu
dCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSk7
CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXR3aXNlQ2FzdCwg
T3JpZ2luKCksIGFyZ3VtZW50KSk7CkBAIC00NjE0LDcgKzQ2MjEsNyBAQCB2b2lkIHRlc3RUd29C
aXR3aXNlQ2FzdE9uSW50MzIoaW50MzJfdCB2CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjApOwogICAgIFZhbHVlKiBmaXJzdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHNlY29uZCA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmaXJz
dCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgc2Vjb25kKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgc2Vjb25kKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVB
bmRSdW48aW50MzJfdD4ocHJvYywgdmFsdWUpLCB2YWx1ZSkpOwogfQpAQCAtNDYyNiw3ICs0NjMz
LDcgQEAgdm9pZCB0ZXN0Qml0d2lzZUNhc3RPbkludDMySW5NZW1vcnkoaW50MwogICAgIFZhbHVl
KiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkRmxvYXQg
PSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4o
KSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIGNhc3QgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgbG9hZEZsb2F0KTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0KTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FzdCk7CiAK
ICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jLCAmdmFsdWUp
LCBiaXR3aXNlX2Nhc3Q8ZmxvYXQ+KHZhbHVlKSkpOwogfQpAQCAtNDYzNyw3ICs0NjQ0LDcgQEAg
dm9pZCB0ZXN0Q29udmVydERvdWJsZVRvRmxvYXRBcmcoZG91YmxlIAogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVu
dEZQUjApOwogICAgIFZhbHVlKiBhc0Zsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgYXJndW1lbnQpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFzRmxvYXQpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0Zsb2F0
KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsIHZh
bHVlKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlKSkpOwogfQpAQCAtNDY0OCw3ICs0NjU1LDcg
QEAgdm9pZCB0ZXN0Q29udmVydERvdWJsZVRvRmxvYXRJbW0oZG91YmxlIAogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+
YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSk7CiAgICAg
VmFsdWUqIGFzRmxvYXQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxv
YXQsIE9yaWdpbigpLCBhcmd1bWVudCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNGbG9hdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFzRmxvYXQpOwogCiAgICAgQ0hF
Q0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYyksIHN0YXRpY19jYXN0PGZs
b2F0Pih2YWx1ZSkpKTsKIH0KQEAgLTQ2NjAsNyArNDY2Nyw3IEBAIHZvaWQgdGVzdENvbnZlcnRE
b3VibGVUb0Zsb2F0TWVtKGRvdWJsZSAKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIwKTsKICAgICBNZW1vcnlWYWx1ZSogbG9hZGVkRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PE1l
bW9yeVZhbHVlPihwcm9jLCBMb2FkLCBEb3VibGUsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBW
YWx1ZSogYXNGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9h
dCwgT3JpZ2luKCksIGxvYWRlZERvdWJsZSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNGbG9hdCk7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFzRmxvYXQpOwogCiAgICAg
Q0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYywgJnZhbHVlKSwgc3Rh
dGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlKSkpOwogfQpAQCAtNDY3Myw3ICs0NjgwLDcgQEAgdm9pZCB0
ZXN0Q29udmVydEZsb2F0VG9Eb3VibGVBcmcoZmxvYXQgdgogICAgICAgICByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BS
MCkpOwogICAgIFZhbHVlKiBmbG9hdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiBhc0RvdWJs
ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCks
IGZsb2F0VmFsdWUpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIGFzRG91YmxlKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNEb3VibGUpOwogCiAgICAgQ0hFQ0soaXNJZGVu
dGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90Pih2
YWx1ZSkpLCBzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVlKSkpOwogfQpAQCAtNDY4NCw3ICs0Njkx
LDcgQEAgdm9pZCB0ZXN0Q29udmVydEZsb2F0VG9Eb3VibGVJbW0oZmxvYXQgdgogICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9v
dC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKTsKICAg
ICBWYWx1ZSogYXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9E
b3VibGUsIE9yaWdpbigpLCBhcmd1bWVudCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNEb3VibGUpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0RvdWJsZSk7CiAKICAg
ICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYyksIHN0YXRpY19j
YXN0PGRvdWJsZT4odmFsdWUpKSk7CiB9CkBAIC00Njk2LDcgKzQ3MDMsNyBAQCB2b2lkIHRlc3RD
b252ZXJ0RmxvYXRUb0RvdWJsZU1lbShmbG9hdCB2CiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWRlZEZsb2F0ID0gcm9vdC0+YXBwZW5k
TmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBGbG9hdCwgT3JpZ2luKCksIGFkZHJlc3MpOwog
ICAgIFZhbHVlKiBhc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRU
b0RvdWJsZSwgT3JpZ2luKCksIGxvYWRlZEZsb2F0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0RvdWJsZSk7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFzRG91YmxlKTsK
IAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCAmdmFs
dWUpLCBzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVlKSkpOwogfQpAQCAtNDcwOSw3ICs0NzE2LDcg
QEAgdm9pZCB0ZXN0Q29udmVydERvdWJsZVRvRmxvYXRUb0RvdWJsZVRvRgogICAgIFZhbHVlKiBh
c0Zsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmln
aW4oKSwgYXJndW1lbnQpOwogICAgIFZhbHVlKiBhc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGFzRmxvYXQpOwogICAgIFZhbHVl
KiBhc0Zsb2F0QWdhaW4gPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxv
YXQsIE9yaWdpbigpLCBhc0RvdWJsZSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNGbG9hdEFnYWluKTsKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNGbG9hdEFnYWluKTsK
IAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsIHZhbHVl
KSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlKSkpOwogfQpAQCAtNDcyNSw3ICs0NzMyLDcgQEAg
dm9pZCB0ZXN0TG9hZEZsb2F0Q29udmVydERvdWJsZUNvbnZlcnRGbAogICAgIFZhbHVlKiBhc0Zs
b2F0QWdhaW4gPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9y
aWdpbigpLCBhc0RvdWJsZSk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9j
LCBTdG9yZSwgT3JpZ2luKCksIGFzRmxvYXRBZ2FpbiwgZHN0KTsKIAotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBmbG9hdCBpbnB1dCA9IHZhbHVl
OwogICAgIGZsb2F0IG91dHB1dCA9IDAuOwpAQCAtNDc0MCw3ICs0NzQ3LDcgQEAgdm9pZCB0ZXN0
RnJvdW5kQXJnKGRvdWJsZSB2YWx1ZSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50
RlBSMCk7CiAgICAgVmFsdWUqIGFzRmxvYXQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIGFzRG91Ymxl
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwg
YXNGbG9hdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgYXNEb3VibGUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0RvdWJsZSk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNh
bChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgdmFsdWUpLCBzdGF0aWNfY2FzdDxkb3VibGU+
KHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZSkpKSk7CiB9CkBAIC00NzUzLDcgKzQ3NjAsNyBAQCB2
b2lkIHRlc3RGcm91bmRNZW0oZG91YmxlIHZhbHVlKQogICAgIE1lbW9yeVZhbHVlKiBsb2FkZWRE
b3VibGUgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIERvdWJsZSwg
T3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBhc0Zsb2F0ID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgbG9hZGVkRG91YmxlKTsKICAg
ICBWYWx1ZSogYXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9E
b3VibGUsIE9yaWdpbigpLCBhc0Zsb2F0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0RvdWJsZSk7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFzRG91YmxlKTsKIAogICAg
IENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCAmdmFsdWUpLCBz
dGF0aWNfY2FzdDxkb3VibGU+KHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZSkpKSk7CiB9CkBAIC00
NzY0LDcgKzQ3NzEsNyBAQCB2b2lkIHRlc3RJVG9ENjRBcmcoKQogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHNyYyA9IHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsK
ICAgICBWYWx1ZSogc3JjQXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElU
b0QsIE9yaWdpbigpLCBzcmMpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRG91YmxlKTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNEb3VibGUpOwogCiAgICAg
YXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBmb3IgKGF1dG8gdGVzdFZhbHVlIDogaW50
NjRPcGVyYW5kcygpKQpAQCAtNDc3Nyw3ICs0Nzg0LDcgQEAgdm9pZCB0ZXN0SVRvRjY0QXJnKCkK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBzcmMg
PSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIHNyY0FzRmxvYXQgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIElUb0YsIE9yaWdpbigpLCBzcmMpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXQpOworICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNB
c0Zsb2F0KTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgZm9yIChhdXRv
IHRlc3RWYWx1ZSA6IGludDY0T3BlcmFuZHMoKSkKQEAgLTQ3OTEsNyArNDc5OCw3IEBAIHZvaWQg
dGVzdElUb0QzMkFyZygpCiAgICAgVmFsdWUqIHNyYyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZh
bHVlKiBzcmNBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3Jp
Z2luKCksIHNyYyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgc3JjQXNEb3VibGUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0RvdWJsZSk7CiAKICAgICBhdXRvIGNv
ZGUgPSBjb21waWxlKHByb2MpOwogICAgIGZvciAoYXV0byB0ZXN0VmFsdWUgOiBpbnQzMk9wZXJh
bmRzKCkpCkBAIC00ODA1LDcgKzQ4MTIsNyBAQCB2b2lkIHRlc3RJVG9GMzJBcmcoKQogICAgIFZh
bHVlKiBzcmMgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSogc3JjQXNGbG9hdCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRiwgT3JpZ2luKCksIHNyYyk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9h
dCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHNyY0FzRmxvYXQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBm
b3IgKGF1dG8gdGVzdFZhbHVlIDogaW50MzJPcGVyYW5kcygpKQpAQCAtNDgxOSw3ICs0ODI2LDcg
QEAgdm9pZCB0ZXN0SVRvRDY0TWVtKCkKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIwKTsKICAgICBNZW1vcnlWYWx1ZSogbG9hZGVkU3JjID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9y
eVZhbHVlPihwcm9jLCBMb2FkLCBJbnQ2NCwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVl
KiBzcmNBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2lu
KCksIGxvYWRlZFNyYyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNEb3VibGUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0RvdWJsZSk7CiAKICAgICBhdXRv
IGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIGludDY0X3QgaW5NZW1vcnlWYWx1ZTsKQEAgLTQ4
MzcsNyArNDg0NCw3IEBAIHZvaWQgdGVzdElUb0Y2NE1lbSgpCiAgICAgVmFsdWUqIGFkZHJlc3Mg
PSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWRlZFNyYyA9IHJvb3QtPmFw
cGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50NjQsIE9yaWdpbigpLCBhZGRyZXNz
KTsKICAgICBWYWx1ZSogc3JjQXNGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
SVRvRiwgT3JpZ2luKCksIGxvYWRlZFNyYyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdCk7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXQpOwog
CiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBpbnQ2NF90IGluTWVtb3J5VmFs
dWU7CkBAIC00ODU1LDcgKzQ4NjIsNyBAQCB2b2lkIHRlc3RJVG9EMzJNZW0oKQogICAgIFZhbHVl
KiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkZWRTcmMg
PSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4o
KSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIHNyY0FzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgbG9hZGVkU3JjKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0RvdWJsZSk7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNy
Y0FzRG91YmxlKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgaW50MzJf
dCBpbk1lbW9yeVZhbHVlOwpAQCAtNDg3Myw3ICs0ODgwLDcgQEAgdm9pZCB0ZXN0SVRvRjMyTWVt
KCkKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBNZW1vcnlWYWx1
ZSogbG9hZGVkU3JjID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJ
bnQzMiwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBzcmNBc0Zsb2F0ID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9GLCBPcmlnaW4oKSwgbG9hZGVkU3JjKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNB
c0Zsb2F0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgc3JjQXNGbG9hdCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwog
ICAgIGludDMyX3QgaW5NZW1vcnlWYWx1ZTsKQEAgLTQ4OTAsNyArNDg5Nyw3IEBAIHZvaWQgdGVz
dElUb0Q2NEltbShpbnQ2NF90IHZhbHVlKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7CiAgICAgVmFsdWUqIHNyYyA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+
KHByb2MsIE9yaWdpbigpLCB2YWx1ZSk7CiAgICAgVmFsdWUqIHNyY0FzRmxvYXRpbmdQb2ludCA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIHNyYyk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3Jj
QXNGbG9hdGluZ1BvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdGluZ1BvaW50KTsKICAgICBDSEVDSyhpc0lkZW50
aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYyksIHN0YXRpY19jYXN0PGRvdWJsZT4odmFs
dWUpKSk7CiB9CiAKQEAgLTQ5MDAsNyArNDkwNyw3IEBAIHZvaWQgdGVzdElUb0Y2NEltbShpbnQ2
NF90IHZhbHVlKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAg
VmFsdWUqIHNyYyA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigp
LCB2YWx1ZSk7CiAgICAgVmFsdWUqIHNyY0FzRmxvYXRpbmdQb2ludCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgSVRvRiwgT3JpZ2luKCksIHNyYyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdGluZ1BvaW50
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgc3JjQXNGbG9hdGluZ1BvaW50KTsKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5k
UnVuPGZsb2F0Pihwcm9jKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlKSkpOwogfQogCkBAIC00
OTEwLDcgKzQ5MTcsNyBAQCB2b2lkIHRlc3RJVG9EMzJJbW0oaW50MzJfdCB2YWx1ZSkKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBzcmMgPSByb290
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpOwogICAgIFZh
bHVlKiBzcmNBc0Zsb2F0aW5nUG9pbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElU
b0QsIE9yaWdpbigpLCBzcmMpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXRpbmdQb2ludCk7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXRpbmdQ
b2ludCk7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2Mp
LCBzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVlKSkpOwogfQogCkBAIC00OTIwLDcgKzQ5MjcsNyBA
QCB2b2lkIHRlc3RJVG9GMzJJbW0oaW50MzJfdCB2YWx1ZSkKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBzcmMgPSByb290LT5hcHBlbmROZXc8Q29u
c3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpOwogICAgIFZhbHVlKiBzcmNBc0Zsb2F0
aW5nUG9pbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0YsIE9yaWdpbigpLCBz
cmMpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHNyY0FzRmxvYXRpbmdQb2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXRpbmdQb2ludCk7CiAgICAgQ0hF
Q0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYyksIHN0YXRpY19jYXN0PGZs
b2F0Pih2YWx1ZSkpKTsKIH0KIApAQCAtNDkzMSw3ICs0OTM4LDcgQEAgdm9pZCB0ZXN0SVRvRFJl
ZHVjZWRUb0lUb0Y2NEFyZygpCiAgICAgVmFsdWUqIHNyYyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAg
ICBWYWx1ZSogc3JjQXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0Qs
IE9yaWdpbigpLCBzcmMpOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIHNyY0FzRG91YmxlKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBm
bG9hdFJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJv
Yyk7CiAgICAgZm9yIChhdXRvIHRlc3RWYWx1ZSA6IGludDY0T3BlcmFuZHMoKSkKQEAgLTQ5NDYs
NyArNDk1Myw3IEBAIHZvaWQgdGVzdElUb0RSZWR1Y2VkVG9JVG9GMzJBcmcoKQogICAgICAgICBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiBzcmNBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIHNyYyk7CiAgICAgVmFsdWUqIGZsb2F0UmVz
dWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4o
KSwgc3JjQXNEb3VibGUpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwogCiAgICAgYXV0
byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBmb3IgKGF1dG8gdGVzdFZhbHVlIDogaW50MzJP
cGVyYW5kcygpKQpAQCAtNDk2NCw3ICs0OTcxLDcgQEAgdm9pZCB0ZXN0U3RvcmUzMihpbnQgdmFs
dWUpCiAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMCkpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksICZzbG90KSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
MCkpOwogCiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCB2YWx1ZSkpOwpAQCAt
NDk4MCw3ICs0OTg3LDcgQEAgdm9pZCB0ZXN0U3RvcmVDb25zdGFudChpbnQgdmFsdWUpCiAgICAg
ICAgIHByb2MsIFN0b3JlLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAmc2xvdCkpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludD4o
cHJvYykpOwpAQCAtNTAwMCw3ICs1MDA3LDcgQEAgdm9pZCB0ZXN0U3RvcmVDb25zdGFudFB0cihp
bnRwdHJfdCB2YWx1ZQogICAgICAgICBwcm9jLCBTdG9yZSwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZzbG90
KSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgQ0hFQ0so
IWNvbXBpbGVBbmRSdW48aW50Pihwcm9jKSk7CkBAIC01MDE4LDcgKzUwMjUsNyBAQCB2b2lkIHRl
c3RTdG9yZThBcmcoKQogICAgICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsK
IAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlOCwgT3Jp
Z2luKCksIHZhbHVlLCBhZGRyZXNzKTsKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOworICAgICAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOwogCiAgICAg
ICAgIGludDhfdCBzdG9yYWdlID0gMDsKICAgICAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2
NF90Pihwcm9jLCA0MiwgJnN0b3JhZ2UpID09IDQyKTsKQEAgLTUwMzksNyArNTA0Niw3IEBAIHZv
aWQgdGVzdFN0b3JlOEFyZygpCiAgICAgICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBiYXNlRGlzcGxhY2VtZW50LCBvZmZzZXQp
OwogCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmU4LCBP
cmlnaW4oKSwgdmFsdWUsIGFkZHJlc3MpOwotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CisgICAgICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CiAKICAg
ICAgICAgaW50OF90IHN0b3JhZ2UgPSAwOwogICAgICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGlu
dDY0X3Q+KHByb2MsIDQyLCAmc3RvcmFnZSwgMSkgPT0gNDIpOwpAQCAtNTA1Nyw3ICs1MDY0LDcg
QEAgdm9pZCB0ZXN0U3RvcmU4SW1tKCkKICAgICAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCk7CiAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBT
dG9yZTgsIE9yaWdpbigpLCB2YWx1ZSwgYWRkcmVzcyk7Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKKyAgICAgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVl
KTsKIAogICAgICAgICBpbnQ4X3Qgc3RvcmFnZSA9IDA7CiAgICAgICAgIENIRUNLKGNvbXBpbGVB
bmRSdW48aW50NjRfdD4ocHJvYywgJnN0b3JhZ2UpID09IDQyKTsKQEAgLTUwNzcsNyArNTA4NCw3
IEBAIHZvaWQgdGVzdFN0b3JlOEltbSgpCiAgICAgICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBiYXNlRGlzcGxhY2VtZW50LCBv
ZmZzZXQpOwogCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3Rv
cmU4LCBPcmlnaW4oKSwgdmFsdWUsIGFkZHJlc3MpOwotICAgICAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CisgICAgICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7
CiAKICAgICAgICAgaW50OF90IHN0b3JhZ2UgPSAwOwogICAgICAgICBDSEVDSyhjb21waWxlQW5k
UnVuPGludDY0X3Q+KHByb2MsICZzdG9yYWdlLCAxKSA9PSA0Mik7CkBAIC01MTI5LDcgKzUxMzYs
NyBAQCB2b2lkIHRlc3RTdG9yZVBhcnRpYWw4Qml0UmVnaXN0ZXJPblg4NigpCiAgICAgLy8gaWYg
d2UgdXNlIFg4NiBwYXJ0aWFsIHJlZ2lzdGVycy4KICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5
VmFsdWU+KHByb2MsIFN0b3JlOCwgT3JpZ2luKCksIHBhdGNocG9pbnQsIHdoZXJlVG9TdG9yZSk7
CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXR1cm5WYWx1ZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJldHVyblZhbHVlKTsKIAogICAgIGludDhfdCBzdG9yYWdlID0g
MHhmZjsKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIDB4MTIzNDU2Nzhh
YmNkZWYxMiwgJnN0b3JhZ2UpID09IDB4MTIzNDU2NzhhYmNkZWYxMik7CkBAIC01MTQ3LDcgKzUx
NTQsNyBAQCB2b2lkIHRlc3RTdG9yZTE2QXJnKCkKICAgICAgICAgVmFsdWUqIGFkZHJlc3MgPSBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMSk7CiAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihw
cm9jLCBTdG9yZTE2LCBPcmlnaW4oKSwgdmFsdWUsIGFkZHJlc3MpOwotICAgICAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7Cisg
ICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCB2YWx1ZSk7CiAKICAgICAgICAgaW50MTZfdCBzdG9yYWdlID0gLTE7CiAgICAgICAgIENIRUNL
KGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgNDIsICZzdG9yYWdlKSA9PSA0Mik7CkBAIC01
MTY4LDcgKzUxNzUsNyBAQCB2b2lkIHRlc3RTdG9yZTE2QXJnKCkKICAgICAgICAgVmFsdWUqIGFk
ZHJlc3MgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGJhc2VE
aXNwbGFjZW1lbnQsIG9mZnNldCk7CiAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZh
bHVlPihwcm9jLCBTdG9yZTE2LCBPcmlnaW4oKSwgdmFsdWUsIGFkZHJlc3MpOwotICAgICAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1
ZSk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCB2YWx1ZSk7CiAKICAgICAgICAgaW50MTZfdCBzdG9yYWdlID0gLTE7CiAgICAgICAg
IENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgNDIsICZzdG9yYWdlLCAxKSA9PSA0
Mik7CkBAIC01MTg2LDcgKzUxOTMsNyBAQCB2b2lkIHRlc3RTdG9yZTE2SW1tKCkKICAgICAgICAg
VmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZTE2LCBPcmlnaW4oKSwgdmFsdWUsIGFkZHJlc3Mp
OwotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCB2YWx1ZSk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CiAKICAgICAgICAgaW50MTZfdCBzdG9yYWdlID0g
LTE7CiAgICAgICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgJnN0b3JhZ2Up
ID09IDQyKTsKQEAgLTUyMDYsNyArNTIxMyw3IEBAIHZvaWQgdGVzdFN0b3JlMTZJbW0oKQogICAg
ICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBP
cmlnaW4oKSwgYmFzZURpc3BsYWNlbWVudCwgb2Zmc2V0KTsKIAogICAgICAgICByb290LT5hcHBl
bmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlMTYsIE9yaWdpbigpLCB2YWx1ZSwgYWRkcmVz
cyk7Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHZhbHVlKTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKIAogICAgICAgICBpbnQxNl90IHN0b3JhZ2Ug
PSAtMTsKICAgICAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAmc3RvcmFn
ZSwgMSkgPT0gNDIpOwpAQCAtNTIxOCw3ICs1MjI1LDcgQEAgdm9pZCB0ZXN0VHJ1bmMoaW50NjRf
dCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IFRydW5jLCBPcmlnaW4oKSwKQEAgLTUyMzEsNyArNTIzOCw3IEBAIHZvaWQgdGVzdEFkZDEoaW50
IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
QWRkLCBPcmlnaW4oKSwKQEAgLTUyNDcsNyArNTI1NCw3IEBAIHZvaWQgdGVzdEFkZDFQdHIoaW50
cHRyX3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBw
cm9jLCBBZGQsIE9yaWdpbigpLApAQCAtNTI2MSw3ICs1MjY4LDcgQEAgdm9pZCB0ZXN0TmVnMzIo
aW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIFN1YiwgT3JpZ2luKCksCkBAIC01Mjc3LDcgKzUyODQsNyBAQCB2b2lkIHRlc3ROZWdQ
dHIoaW50cHRyX3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBTdWIsIE9yaWdpbigpLApAQCAtNTMwMiw3ICs1MzA5LDcgQEAgdm9pZCB0ZXN0
U3RvcmVBZGRMb2FkMzIoaW50IGFtb3VudCkKICAgICAgICAgICAgICAgICBwcm9jLCBUcnVuYywg
T3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSksCiAgICAgICAgIHNs
b3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsK
IApAQCAtNTMyMyw3ICs1MzMwLDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkSW1tMzIoaW50IGFt
b3VudCkKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9h
ZCwgSW50MzIsIE9yaWdpbigpLCBzbG90UHRyKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhbW91bnQpKSwKICAgICAgICAgc2xvdFB0
cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBA
IC01MzQ2LDcgKzUzNTMsNyBAQCB2b2lkIHRlc3RTdG9yZUFkZExvYWQ4KGludCBhbW91bnQsIEIz
OjpPCiAgICAgICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BS
SW5mbzo6YXJndW1lbnRHUFIwKSkpLAogICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTUzNjcsNyArNTM3NCw3IEBA
IHZvaWQgdGVzdFN0b3JlQWRkTG9hZEltbTgoaW50IGFtb3VudCwgQjMKICAgICAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgbG9hZE9wY29kZSwgT3JpZ2luKCksIHNs
b3RQdHIpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIGFtb3VudCkpLAogICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTUzOTAsNyArNTM5Nyw3IEBAIHZv
aWQgdGVzdFN0b3JlQWRkTG9hZDE2KGludCBhbW91bnQsIEIzOjoKICAgICAgICAgICAgICAgICBw
cm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSks
CiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIDApKTsKIApAQCAtNTQxMSw3ICs1NDE4LDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2Fk
SW1tMTYoaW50IGFtb3VudCwgQgogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZh
bHVlPihwcm9jLCBsb2FkT3Bjb2RlLCBPcmlnaW4oKSwgc2xvdFB0ciksCiAgICAgICAgICAgICBy
b290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYW1vdW50KSksCiAg
ICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDApKTsKIApAQCAtNTQzMiw3ICs1NDM5LDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkNjQo
aW50IGFtb3VudCkKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJv
YywgTG9hZCwgSW50NjQsIE9yaWdpbigpLCBzbG90UHRyKSwKICAgICAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwKSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNTQ1Myw3ICs1NDYwLDcgQEAgdm9pZCB0ZXN0U3Rv
cmVBZGRMb2FkSW1tNjQoaW50NjRfdCBhbW91bgogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQ2NCwgT3JpZ2luKCksIHNsb3RQdHIpLAogICAg
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFt
b3VudCkpLAogICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTU0ODUsNyArNTQ5Miw3IEBAIHZvaWQgdGVzdFN0b3Jl
QWRkTG9hZDMySW5kZXgoaW50IGFtb3VudCkKICAgICAgICAgICAgICAgICBwcm9jLCBUcnVuYywg
T3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSksCiAgICAgICAgIHNs
b3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsK
IApAQCAtNTUxNSw3ICs1NTIyLDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkSW1tMzJJbmRleChp
bnQgYW1vdQogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBM
b2FkLCBJbnQzMiwgT3JpZ2luKCksIHNsb3RQdHIpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFtb3VudCkpLAogICAgICAgICBzbG90
UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAK
QEAgLTU1NDcsNyArNTU1NCw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9hZDhJbmRleChpbnQgYW1v
dW50LCAKICAgICAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApKSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNTU3Nyw3ICs1NTg0LDcg
QEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkSW1tOEluZGV4KGludCBhbW91bgogICAgICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBsb2FkT3Bjb2RlLCBPcmlnaW4oKSwg
c2xvdFB0ciksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgYW1vdW50KSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNTYwOSw3ICs1NjE2LDcgQEAg
dm9pZCB0ZXN0U3RvcmVBZGRMb2FkMTZJbmRleChpbnQgYW1vdW50LAogICAgICAgICAgICAgICAg
IHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkp
KSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgMCkpOwogCkBAIC01NjM5LDcgKzU2NDYsNyBAQCB2b2lkIHRlc3RTdG9yZUFkZExv
YWRJbW0xNkluZGV4KGludCBhbW91CiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5
VmFsdWU+KHByb2MsIGxvYWRPcGNvZGUsIE9yaWdpbigpLCBzbG90UHRyKSwKICAgICAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhbW91bnQpKSwK
ICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgMCkpOwogCkBAIC01NjY5LDcgKzU2NzYsNyBAQCB2b2lkIHRlc3RTdG9yZUFkZExvYWQ2
NEluZGV4KGludCBhbW91bnQpCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFs
dWU+KHByb2MsIExvYWQsIEludDY0LCBPcmlnaW4oKSwgc2xvdFB0ciksCiAgICAgICAgICAgICBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMy
VmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTU2OTksNyArNTcwNiw3IEBAIHZvaWQg
dGVzdFN0b3JlQWRkTG9hZEltbTY0SW5kZXgoaW50NjRfdCAKICAgICAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50NjQsIE9yaWdpbigpLCBzbG90UHRy
KSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdp
bigpLCBhbW91bnQpKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01NzIzLDcgKzU3MzAsNyBAQCB2b2lkIHRl
c3RTdG9yZVN1YkxvYWQoaW50IGFtb3VudCkKICAgICAgICAgICAgICAgICBwcm9jLCBUcnVuYywg
T3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSksCiAgICAgICAgIHNs
b3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsK
IApAQCAtNTc1MCw3ICs1NzU3LDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkSW50ZXJmZXJlbmNl
KGludCBhbQogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKICAgICAgICAgICAgIGxv
YWQsIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhbW91bnQp
KSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgMCkpOwogCkBAIC01Nzc0LDcgKzU3ODEsNyBAQCB2b2lkIHRlc3RTdG9yZUFkZEFu
ZExvYWQoaW50IGFtb3VudCwgaW50CiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFtb3VudCkpLAogICAgICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIG1hc2spKSwKICAgICAgICAg
c2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkp
OwogCkBAIC01Nzk5LDcgKzU4MDYsNyBAQCB2b2lkIHRlc3RTdG9yZU5lZ0xvYWQzMihpbnQzMl90
IHZhbHVlKQogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBM
b2FkLCBJbnQzMiwgT3JpZ2luKCksIHNsb3RQdHIpKSwKICAgICAgICAgc2xvdFB0cik7CiAgICAg
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgQ0hFQ0soIWNv
bXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYykpOwpAQCAtNTgyMyw3ICs1ODMwLDcgQEAgdm9pZCB0
ZXN0U3RvcmVOZWdMb2FkUHRyKGludHB0cl90IHZhbHVlKQogICAgICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwg
c2xvdFB0cikpLAogICAgICAgICBzbG90UHRyKTsKICAgICAKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihw
cm9jKSk7CkBAIC01ODM0LDcgKzU4NDEsNyBAQCB2b2lkIHRlc3RBZGQxVW5jb21tdXRlZChpbnQg
dmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBB
ZGQsIE9yaWdpbigpLApAQCAtNTg1Miw3ICs1ODU5LDcgQEAgdm9pZCB0ZXN0TG9hZE9mZnNldCgp
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBpbnQgYXJyYXlb
XSA9IHsgMSwgMiB9OwogICAgIENvbnN0UHRyVmFsdWUqIGFycmF5UHRyID0gcm9vdC0+YXBwZW5k
TmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhcnJheSk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKQEAgLTU4NjgsNyArNTg3
NSw3IEBAIHZvaWQgdGVzdExvYWRPZmZzZXROb3RDb25zdGFudCgpCiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBpbnQgYXJyYXlbXSA9IHsgMSwgMiB9OwogICAg
IFZhbHVlKiBhcnJheVB0ciA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
CiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAtNTg4NCw3ICs1ODkxLDcgQEAg
dm9pZCB0ZXN0TG9hZE9mZnNldFVzaW5nQWRkKCkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwogICAgIGludCBhcnJheVtdID0geyAxLCAyIH07CiAgICAgQ29uc3RQdHJW
YWx1ZSogYXJyYXlQdHIgPSByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIGFycmF5KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBB
ZGQsIE9yaWdpbigpLApAQCAtNTkyNSw3ICs1OTMyLDcgQEAgdm9pZCB0ZXN0TG9hZE9mZnNldFVz
aW5nQWRkSW50ZXJmZXJlbmNlKAogICAgICAgICBwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHRoZU51
bWJlck9mVGhlQmVhc3QsIG90aGVyQXJyYXlQdHIsIDApOwogICAgIHJvb3QtPmFwcGVuZE5ldzxN
ZW1vcnlWYWx1ZT4oCiAgICAgICAgIHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgdGhlTnVtYmVyT2ZU
aGVCZWFzdCwgb3RoZXJBcnJheVB0ciwgc2l6ZW9mKGludCkpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksIGxlZnQsIHJpZ2h0KSk7CkBAIC01
OTQxLDcgKzU5NDgsNyBAQCB2b2lkIHRlc3RMb2FkT2Zmc2V0VXNpbmdBZGROb3RDb25zdGFudCgp
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBpbnQgYXJyYXlb
XSA9IHsgMSwgMiB9OwogICAgIFZhbHVlKiBhcnJheVB0ciA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAt
NTk3Nyw3ICs1OTg0LDcgQEAgdm9pZCB0ZXN0TG9hZEFkZHJTaGlmdCh1bnNpZ25lZCBzaGlmdCkK
IAogICAgICpzbG90ID0gODY3NTMwOTsKICAgICAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4o
CiAgICAgICAgICAgICBwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2luKCksCkBAIC01OTkzLDcgKzYw
MDAsNyBAQCB2b2lkIHRlc3RGcmFtZVBvaW50ZXIoKQogewogICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEZyYW1lUG9pbnRlciwgT3JpZ2luKCkpKTsKIApAQCAtNjAxNiw3ICs2MDIzLDcg
QEAgdm9pZCB0ZXN0T3ZlcnJpZGVGcmFtZVBvaW50ZXIoKQogICAgICAgICBWYWx1ZSogZnAgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZyYW1lUG9pbnRlciwgT3JpZ2luKCkpOwogICAg
ICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9y
aWdpbigpLCBmcCwgb2Zmc2V0KTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgICAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICAg
ICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAxKSk7CiAgICAgfQogICAgIHsK
QEAgLTYwMzIsNyArNjAzOSw3IEBAIHZvaWQgdGVzdE92ZXJyaWRlRnJhbWVQb2ludGVyKCkKICAg
ICAgICAgVmFsdWUqIG9mZnNldEFyZyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRk
LCBPcmlnaW4oKSwgb2Zmc2V0LCBhcmcpOwogICAgICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBvZmZzZXRBcmcsIG9mZnNldEZQ
KTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICAgICAgQ0hFQ0soY29tcGlsZUFu
ZFJ1bjxpbnQ2NF90Pihwcm9jLCAxLCAyKSk7CiAgICAgfQogfQpAQCAtNjA0MSw3ICs2MDQ4LDcg
QEAgdm9pZCB0ZXN0U3RhY2tTbG90KCkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFNsb3RCYXNlVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBwcm9jLmFkZFN0YWNrU2xvdCgxKSkpOwogCkBAIC02MDU0LDcg
KzYwNjEsNyBAQCB2b2lkIHRlc3RMb2FkRnJvbUZyYW1lUG9pbnRlcigpCiB7CiAgICAgUHJvY2Vk
dXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVyVHlw
ZSgpLCBPcmlnaW4oKSwKQEAgLTYwODEsNyArNjA4OCw3IEBAIHZvaWQgdGVzdFN0b3JlTG9hZFN0
YWNrU2xvdChpbnQgdmFsdWUpCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAg
ICBzdGFjayk7CiAgICAgCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIElu
dDMyLCBPcmlnaW4oKSwgc3RhY2spKTsKIApAQCAtNjExNiw3ICs2MTIzLDcgQEAgdm9pZCB0ZXN0
TG9hZChCMzo6T3Bjb2RlIG9wY29kZSwgSW5wdXRUeQogICAgICAgICBQcm9jZWR1cmUgcHJvYzsK
ICAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICAgICAgCi0g
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgICAg
ICBwcm9jLCBvcGNvZGUsIHR5cGUsIE9yaWdpbigpLApAQCAtNjEzMCw3ICs2MTM3LDcgQEAgdm9p
ZCB0ZXN0TG9hZChCMzo6T3Bjb2RlIG9wY29kZSwgSW5wdXRUeQogICAgICAgICBQcm9jZWR1cmUg
cHJvYzsKICAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICAg
ICAgCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAg
ICAgICAgICBwcm9jLCBvcGNvZGUsIHR5cGUsIE9yaWdpbigpLApAQCAtNjE0NCw3ICs2MTUxLDcg
QEAgdm9pZCB0ZXN0TG9hZChCMzo6T3Bjb2RlIG9wY29kZSwgSW5wdXRUeQogICAgICAgICBQcm9j
ZWR1cmUgcHJvYzsKICAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
ICAgICAgICAgCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAg
ICAgICAgICAgICAgICBwcm9jLCBvcGNvZGUsIHR5cGUsIE9yaWdpbigpLApAQCAtNjE1OSw3ICs2
MTY2LDcgQEAgdm9pZCB0ZXN0TG9hZChCMzo6T3Bjb2RlIG9wY29kZSwgSW5wdXRUeQogICAgICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAg
ICAgICAgICAgICAgcHJvYywgb3Bjb2RlLCB0eXBlLCBPcmlnaW4oKSwKQEAgLTYxNzksNyArNjE4
Niw3IEBAIHZvaWQgdGVzdExvYWQoQjM6Ok9wY29kZSBvcGNvZGUsIElucHV0VHkKICAgICAgICAg
UHJvY2VkdXJlIHByb2M7CiAgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAg
ICAgICAgICAgIHByb2MsIG9wY29kZSwgdHlwZSwgT3JpZ2luKCksCkBAIC02MjE5LDcgKzYyMjYs
NyBAQCB2b2lkIHRlc3RTdG9yZUZsb2F0KGRvdWJsZSBpbnB1dCkKICAgICAgICAgVmFsdWUqIGRl
c3RpbmF0aW9uQWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIGFyZ3VtZW50QXNGbG9hdCwg
ZGVzdGluYXRpb25BZGRyZXNzKTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgICAgICBmbG9hdCBvdXRwdXQgPSAwLjsKICAgICAg
ICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgaW5wdXQsICZvdXRwdXQpKTsK
QEAgLTYyNDMsNyArNjI1MCw3IEBAIHZvaWQgdGVzdFN0b3JlRmxvYXQoZG91YmxlIGlucHV0KQog
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdp
bigpLCBhcmd1bWVudEFzRmxvYXQsIGRlc3RpbmF0aW9uQWRkcmVzcyk7CiAKLSAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKKyAgICAgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICAgICAgZmxv
YXQgb3V0cHV0ID0gMC47CiAgICAgICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludDY0X3Q+KHBy
b2MsIGlucHV0LCAmb3V0cHV0IC0gMSwgMSkpOwpAQCAtNjI2Myw3ICs2MjcwLDcgQEAgdm9pZCB0
ZXN0U3RvcmVEb3VibGVDb25zdGFudEFzRmxvYXQoZG91YgogCiAgICAgcm9vdC0+YXBwZW5kTmV3
PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHZhbHVlQXNGbG9hdCwgZGVzdGlu
YXRpb25BZGRyZXNzKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCAwKSk7CiAKICAgICBmbG9hdCBvdXRwdXQgPSAwLjsKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1
bjxpbnQ2NF90Pihwcm9jLCBpbnB1dCwgJm91dHB1dCkpOwpAQCAtNjI4OSw3ICs2Mjk2LDcgQEAg
dm9pZCB0ZXN0U3BpbGxHUCgpCiAgICAgZm9yIChWYWx1ZSogdmFsdWUgOiBzb3VyY2VzKQogICAg
ICAgICB0b3RhbCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwg
dG90YWwsIHZhbHVlKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHRvdGFsKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdG90YWwpOwogICAgIGNvbXBpbGVBbmRSdW48aW50
Pihwcm9jLCAxLCAyKTsKIH0KIApAQCAtNjMxMiw3ICs2MzE5LDcgQEAgdm9pZCB0ZXN0U3BpbGxG
UCgpCiAgICAgZm9yIChWYWx1ZSogdmFsdWUgOiBzb3VyY2VzKQogICAgICAgICB0b3RhbCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgdG90YWwsIHZhbHVlKTsK
IAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHRvdGFsKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgdG90YWwpOwogICAgIGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCAxLjEs
IDIuNSk7CiB9CiAKQEAgLTYzMjgsNyArNjMzNSw3IEBAIHZvaWQgdGVzdEludDMyVG9Eb3VibGVQ
YXJ0aWFsUmVnaXN0ZXJTdGEKICAgICBWYWx1ZSogY291bnRlciA9IHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsK
ICAgICBVcHNpbG9uVmFsdWUqIG9yaWdpbmFsVG90YWwgPSByb290LT5hcHBlbmROZXc8VXBzaWxv
blZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdG90YWwpOwogICAgIFVwc2lsb25WYWx1ZSogb3JpZ2lu
YWxDb3VudGVyID0gcm9vdC0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCks
IGNvdW50ZXIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAs
IE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sobG9vcCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3ApKTsK
IAogICAgIC8vIExvb3AuCiAgICAgVmFsdWUqIGxvb3BDb3VudGVyID0gbG9vcC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBQaGksIEludDY0LCBPcmlnaW4oKSk7CkBAIC02MzQ1LDEzICs2MzUyLDEz
IEBAIHZvaWQgdGVzdEludDMyVG9Eb3VibGVQYXJ0aWFsUmVnaXN0ZXJTdGEKICAgICBWYWx1ZSog
ZGVjQ291bnRlciA9IGxvb3AtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwg
bG9vcENvdW50ZXIsIGxvb3AtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigp
LCAxKSk7CiAgICAgVXBzaWxvblZhbHVlKiBkZWNDb3VudGVyVXBzaWxvbiA9IGxvb3AtPmFwcGVu
ZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCBkZWNDb3VudGVyKTsKICAgICBkZWND
b3VudGVyVXBzaWxvbi0+c2V0UGhpKGxvb3BDb3VudGVyKTsKLSAgICBsb29wLT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICBsb29wLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIGRlY0NvdW50ZXIsCiAgICAgICAgIEZy
ZXF1ZW50ZWRCbG9jayhsb29wKSwgRnJlcXVlbnRlZEJsb2NrKGRvbmUpKTsKIAogICAgIC8vIFRh
aWwuCi0gICAgZG9uZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgdXBkYXRlZFRvdGFsKTsKKyAgICBkb25lLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgdXBkYXRlZFRvdGFsKTsKICAgICBDSEVDSyhpc0lkZW50aWNh
bChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgMTAwMDAwKSwgNTAwMDA1MDAwMC4pKTsKIH0K
IApAQCAtNjM3MSw3ICs2Mzc4LDcgQEAgdm9pZCB0ZXN0SW50MzJUb0RvdWJsZVBhcnRpYWxSZWdp
c3RlcldpdAogICAgIFZhbHVlKiBmb3JQYWRkaW5nSW5wdXRBZGRyZXNzID0gcm9vdC0+YXBwZW5k
TmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAmZm9yUGFkZGluZ0lucHV0KTsKICAg
ICB1aW50NjRfdCBmb3JQYWRkaW5nT3V0cHV0OwogICAgIFZhbHVlKiBmb3JQYWRkaW5nT3V0cHV0
QWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
JmZvclBhZGRpbmdPdXRwdXQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sobG9vcCkpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2Nr
KGxvb3ApKTsKIAogICAgIC8vIExvb3AuCiAgICAgVmFsdWUqIGxvb3BDb3VudGVyID0gbG9vcC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBQaGksIEludDY0LCBPcmlnaW4oKSk7CkBAIC02NDA1LDEz
ICs2NDEyLDEzIEBAIHZvaWQgdGVzdEludDMyVG9Eb3VibGVQYXJ0aWFsUmVnaXN0ZXJXaXQKICAg
ICBWYWx1ZSogZGVjQ291bnRlciA9IGxvb3AtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBP
cmlnaW4oKSwgbG9vcENvdW50ZXIsIGxvb3AtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAxKSk7CiAgICAgVXBzaWxvblZhbHVlKiBkZWNDb3VudGVyVXBzaWxvbiA9IGxv
b3AtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCBkZWNDb3VudGVyKTsK
ICAgICBkZWNDb3VudGVyVXBzaWxvbi0+c2V0UGhpKGxvb3BDb3VudGVyKTsKLSAgICBsb29wLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBsb29wLT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIGRlY0NvdW50ZXIsCiAg
ICAgICAgIEZyZXF1ZW50ZWRCbG9jayhsb29wKSwgRnJlcXVlbnRlZEJsb2NrKGRvbmUpKTsKIAog
ICAgIC8vIFRhaWwuCi0gICAgZG9uZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgdXBkYXRlZFRvdGFsKTsKKyAgICBkb25lLT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdXBkYXRlZFRvdGFsKTsKICAgICBDSEVDSyhp
c0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgMTAwMDAwKSwgNTAwMDA1MDAw
MC4pKTsKIH0KIApAQCAtNjQyMiwxOCArNjQyOSwxOCBAQCB2b2lkIHRlc3RCcmFuY2goKQogICAg
IEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sq
IGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2Nr
KGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTY0NDksMTYgKzY0NTYsMTYgQEAgdm9pZCB0
ZXN0QnJhbmNoUHRyKCkKICAgICBCYXNpY0Jsb2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2so
KTsKICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjApLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxv
Y2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNjQ3NSw3ICs2NDgyLDcgQEAgdm9pZCB0
ZXN0RGlhbW9uZCgpCiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7
CiAgICAgQmFzaWNCbG9jayogZG9uZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKQEAgLTY0ODQsMTYg
KzY0OTEsMTYgQEAgdm9pZCB0ZXN0RGlhbW9uZCgpCiAKICAgICBVcHNpbG9uVmFsdWUqIHRoZW5S
ZXN1bHQgPSB0aGVuQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4oCiAgICAgICAgIHByb2Ms
IE9yaWdpbigpLCB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDEpKTsKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVt
cCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhkb25lKSk7CisgICAgdGhlbkNhc2UtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRv
bmUpKTsKIAogICAgIFVwc2lsb25WYWx1ZSogZWxzZVJlc3VsdCA9IGVsc2VDYXNlLT5hcHBlbmRO
ZXc8VXBzaWxvblZhbHVlPigKICAgICAgICAgcHJvYywgT3JpZ2luKCksIGVsc2VDYXNlLT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwotICAgIGVsc2VDYXNlLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJs
b2NrKGRvbmUpKTsKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1
bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZG9uZSkpOwogCiAgICAgVmFsdWUqIHBoaSA9
IGRvbmUtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBJbnQzMiwgT3JpZ2luKCkpOwogICAg
IHRoZW5SZXN1bHQtPnNldFBoaShwaGkpOwogICAgIGVsc2VSZXN1bHQtPnNldFBoaShwaGkpOwot
ICAgIGRvbmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHBoaSk7CisgICAgZG9uZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHBoaSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIENIRUNL
KGludm9rZTxpbnQ+KCpjb2RlLCA0MikgPT0gMSk7CkBAIC02NTA3LDcgKzY1MTQsNyBAQCB2b2lk
IHRlc3RCcmFuY2hOb3RFcXVhbCgpCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFk
ZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBOb3RFcXVhbCwgT3JpZ2lu
KCksCkBAIC02NTE3LDExICs2NTI0LDExIEBAIHZvaWQgdGVzdEJyYW5jaE5vdEVxdWFsKCkKICAg
ICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAw
KSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhl
bHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC02NTM3LDcgKzY1NDQsNyBAQCB2b2lkIHRlc3RC
cmFuY2hOb3RFcXVhbENvbW11dGUoKQogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5h
ZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwog
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTm90RXF1YWwsIE9yaWdp
bigpLApAQCAtNjU0NywxMSArNjU1NCwxMSBAQCB2b2lkIHRlc3RCcmFuY2hOb3RFcXVhbENvbW11
dGUoKQogICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSkpLAogICAgICAgICBGcmVxdWVu
dGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRo
ZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0
aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAot
ICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDAp
KTsKIApAQCAtNjU2Nyw3ICs2NTc0LDcgQEAgdm9pZCB0ZXN0QnJhbmNoTm90RXF1YWxOb3RFcXVh
bCgpCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFz
aWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBOb3RFcXVhbCwgT3JpZ2luKCksCkBAIC02NTgwLDExICs2
NTg3LDExIEBAIHZvaWQgdGVzdEJyYW5jaE5vdEVxdWFsTm90RXF1YWwoKQogICAgICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKSwKICAgICAg
ICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7
CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2Ut
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxz
ZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCAwKSk7CiAKQEAgLTY2MDAsNyArNjYwNyw3IEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFs
KCkKICAgICBCYXNpY0Jsb2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNp
Y0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIEVxdWFsLCBPcmlnaW4oKSwKQEAgLTY2MTAsMTEgKzY2MTcs
MTEgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWwoKQogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKSwKICAgICAgICAgRnJlcXVlbnRlZEJs
b2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2Fz
ZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNh
c2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKLSAgICBl
bHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
ZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAK
QEAgLTY2MzAsNyArNjYzNyw3IEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsRXF1YWwoKQogICAgIEJh
c2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVs
c2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBC
cmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgcHJvYywgRXF1YWwsIE9yaWdpbigpLApAQCAtNjY0MywxMSArNjY1MCwxMSBAQCB2b2lk
IHRlc3RCcmFuY2hFcXVhbEVxdWFsKCkKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0
aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNh
c2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VD
YXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC02
NjYzLDcgKzY2NzAsNyBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbENvbW11dGUoKQogICAgIEJhc2lj
QmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VD
YXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFu
Y2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgRXF1YWwsIE9yaWdpbigpLApAQCAtNjY3MywxMSArNjY4MCwxMSBAQCB2b2lkIHRl
c3RCcmFuY2hFcXVhbENvbW11dGUoKQogICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSkp
LAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxz
ZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0
aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDApKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIDEpKTsKIApAQCAtNjY5Myw3ICs2NzAwLDcgQEAgdm9pZCB0ZXN0QnJh
bmNoRXF1YWxFcXVhbDEoKQogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9j
aygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgRXF1YWwsIE9yaWdpbigpLApAQCAt
NjcwNiwxMSArNjcxMywxMSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbEVxdWFsMSgpCiAgICAgICAg
ICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpLAog
ICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNh
c2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVu
Q2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIDApKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIDEpKTsKIApAQCAtNjcyOCw3ICs2NzM1LDcgQEAgdm9pZCB0ZXN0QnJhbmNo
RXF1YWxPclVub3JkZXJlZEFyZ3MoZG91YgogCiAgICAgVmFsdWUqIGFyZ3VtZW50QSA9IHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJn
dW1lbnRGUFIwKTsKICAgICBWYWx1ZSogYXJndW1lbnRCID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjEpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEVxdWFsT3JVbm9yZGVyZWQsIE9y
aWdpbigpLApAQCAtNjczNiwxMSArNjc0MywxMSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5v
cmRlcmVkQXJncyhkb3ViCiAgICAgICAgICAgICBhcmd1bWVudEIpLAogICAgICAgICBGcmVxdWVu
dGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRo
ZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0
aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7CiAK
LSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAt
MTMpKTsKIApAQCAtNjc2MCw3ICs2NzY3LDcgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVub3Jk
ZXJlZEFyZ3MoZmxvYQogICAgIFZhbHVlKiBhcmd1bWVudEIgPSByb290LT5hcHBlbmROZXc8TWVt
b3J5VmFsdWU+KHByb2MsIExvYWQsIEZsb2F0LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjEpKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEVxdWFs
T3JVbm9yZGVyZWQsIE9yaWdpbigpLApAQCAtNjc2OCwxMSArNjc3NSwxMSBAQCB2b2lkIHRlc3RC
cmFuY2hFcXVhbE9yVW5vcmRlcmVkQXJncyhmbG9hCiAgICAgICAgICAgICBhcmd1bWVudEIpLAog
ICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNh
c2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVu
Q2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIDQyKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAtMTMpKTsKIApAQCAtNjc5NywxNiArNjgwNCwxNiBAQCB2b2lkIHRlc3RC
cmFuY2hOb3RFcXVhbEFuZE9yZGVyZWRBcmdzKGRvCiAgICAgICAgIHByb2MsIEVxdWFsLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDApLAogICAgICAgICBlcXVhbE9yVW5vcmRlcmVkKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIG5vdEVxdWFsQW5kT3JkZXJlZCwKICAg
ICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNl
KSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNh
c2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCA0MikpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgLTEzKSk7CiAKQEAgLTY4MzMsMTYgKzY4NDAsMTYgQEAgdm9pZCB0ZXN0QnJh
bmNoTm90RXF1YWxBbmRPcmRlcmVkQXJncyhmbAogICAgICAgICBwcm9jLCBFcXVhbCwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCAwKSwKICAgICAgICAgZXF1YWxPclVub3JkZXJlZCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICBub3RFcXVhbEFuZE9yZGVyZWQsCiAgICAg
ICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkp
OwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNl
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgNDIpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBl
bHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIC0xMykpOwogCkBAIC02ODU5LDcgKzY4NjYsNyBAQCB2b2lkIHRlc3RCcmFuY2hF
cXVhbE9yVW5vcmRlcmVkRG91YmxlQXJnCiAKICAgICBWYWx1ZSogYXJndW1lbnRBID0gcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1
bWVudEZQUjApOwogICAgIFZhbHVlKiBhcmd1bWVudEIgPSByb290LT5hcHBlbmROZXc8Q29uc3RE
b3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIEVxdWFsT3JVbm9yZGVyZWQsIE9yaWdpbigpLApAQCAtNjg2NywxMSAr
Njg3NCwxMSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVkRG91YmxlQXJnCiAgICAg
ICAgICAgICBhcmd1bWVudEIpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBG
cmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMTMpKTsKIApAQCAtNjg5MCw3ICs2
ODk3LDcgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJlZEZsb2F0QXJnSQogICAgICAg
ICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiBhcmd1bWVudEIgPSByb290LT5hcHBlbmRO
ZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7CiAKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBFcXVhbE9yVW5vcmRlcmVkLCBPcmlnaW4oKSwKQEAg
LTY4OTgsMTEgKzY5MDUsMTEgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJlZEZsb2F0
QXJnSQogICAgICAgICAgICAgYXJndW1lbnRCKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRo
ZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwogCi0gICAgZWxzZUNh
c2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VD
YXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTEzKSk7CiAKQEAg
LTY5MTksNyArNjkyNiw3IEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsT3JVbm9yZGVyZWREb3VibGVJ
bW0KIAogICAgIFZhbHVlKiBhcmd1bWVudEEgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiBhcmd1bWVudEIgPSByb290LT5h
cHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEVxdWFsT3JVbm9yZGVyZWQsIE9yaWdpbigp
LApAQCAtNjkyNywxMSArNjkzNCwxMSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVk
RG91YmxlSW1tCiAgICAgICAgICAgICBhcmd1bWVudEIpLAogICAgICAgICBGcmVxdWVudGVkQmxv
Y2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNl
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2Fz
ZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7CiAKLSAgICBl
bHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
ZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMTMpKTsK
IApAQCAtNjk0OSw3ICs2OTU2LDcgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJlZEZs
b2F0SW1tcwogICAgIFZhbHVlKiBhcmd1bWVudEEgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9h
dFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIGFyZ3VtZW50QiA9IHJvb3Qt
PmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKIAotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEVxdWFsT3JVbm9yZGVyZWQsIE9yaWdp
bigpLApAQCAtNjk1NywxMSArNjk2NCwxMSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRl
cmVkRmxvYXRJbW1zCiAgICAgICAgICAgICBhcmd1bWVudEIpLAogICAgICAgICBGcmVxdWVudGVk
QmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5D
YXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVu
Q2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7CiAKLSAg
ICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMTMp
KTsKIApAQCAtNjk4Myw3ICs2OTkwLDcgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJl
ZEZsb2F0V2l0aAogICAgIFZhbHVlKiBhcmd1bWVudDFBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGFyZ3VtZW50MSk7CiAgICAg
VmFsdWUqIGFyZ3VtZW50MkFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBG
bG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgYXJndW1lbnQyKTsKIAotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIEVxdWFsT3JVbm9yZGVyZWQsIE9yaWdpbigpLApAQCAtNjk5
MSwxMSArNjk5OCwxMSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVkRmxvYXRXaXRo
CiAgICAgICAgICAgICBhcmd1bWVudDJBc0RvdWJsZSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9j
ayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2Ut
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNl
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpKTsKIAotICAgIGVs
c2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBl
bHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xMykpOwog
CkBAIC03MDEwLDE2ICs3MDE3LDE2IEBAIHZvaWQgdGVzdEJyYW5jaEZvbGQoaW50IHZhbHVlKQog
ICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxv
Y2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhl
bkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VDYXNl
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2Fz
ZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNzAz
NCwyMyArNzA0MSwyMyBAQCB2b2lkIHRlc3REaWFtb25kRm9sZChpbnQgdmFsdWUpCiAgICAgQmFz
aWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZG9u
ZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNo
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIHZhbHVlKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJl
cXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKICAgICBVcHNpbG9uVmFsdWUqIHRoZW5SZXN1bHQg
PSB0aGVuQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4oCiAgICAgICAgIHByb2MsIE9yaWdp
bigpLCB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEp
KTsKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3Jp
Z2luKCksIEZyZXF1ZW50ZWRCbG9jayhkb25lKSk7CisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRvbmUpKTsK
IAogICAgIFVwc2lsb25WYWx1ZSogZWxzZVJlc3VsdCA9IGVsc2VDYXNlLT5hcHBlbmROZXc8VXBz
aWxvblZhbHVlPigKICAgICAgICAgcHJvYywgT3JpZ2luKCksIGVsc2VDYXNlLT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwotICAgIGVsc2VDYXNlLT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRv
bmUpKTsKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9y
aWdpbigpLCBGcmVxdWVudGVkQmxvY2soZG9uZSkpOwogCiAgICAgVmFsdWUqIHBoaSA9IGRvbmUt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBJbnQzMiwgT3JpZ2luKCkpOwogICAgIHRoZW5S
ZXN1bHQtPnNldFBoaShwaGkpOwogICAgIGVsc2VSZXN1bHQtPnNldFBoaShwaGkpOwotICAgIGRv
bmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBoaSk7
CisgICAgZG9uZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHBoaSk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYykgPT0gISF2YWx1ZSk7
CiB9CkBAIC03MDYyLDcgKzcwNjksNyBAQCB2b2lkIHRlc3RCcmFuY2hOb3RFcXVhbEZvbGRQdHIo
aW50cHRyX3QgCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAg
ICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBOb3RFcXVhbCwgT3JpZ2luKCksCkBAIC03MDcw
LDExICs3MDc3LDExIEBAIHZvaWQgdGVzdEJyYW5jaE5vdEVxdWFsRm9sZFB0cihpbnRwdHJfdCAK
ICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgMCkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxv
Y2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNzA4OCw3ICs3MDk1LDcgQEAgdm9pZCB0
ZXN0QnJhbmNoRXF1YWxGb2xkUHRyKGludHB0cl90IHZhbAogICAgIEJhc2ljQmxvY2sqIHRoZW5D
YXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5h
ZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgRXF1
YWwsIE9yaWdpbigpLApAQCAtNzA5NiwxMSArNzEwMywxMSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVh
bEZvbGRQdHIoaW50cHRyX3QgdmFsCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQ
dHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRo
ZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKLSAgICBlbHNlQ2Fz
ZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNh
c2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTcx
MTQsMTggKzcxMjEsMTggQEAgdm9pZCB0ZXN0QnJhbmNoTG9hZFB0cigpCiAgICAgQmFzaWNCbG9j
ayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2Ug
PSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1
ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC03MTQ0LDE4ICs3MTUxLDE4
IEBAIHZvaWQgdGVzdEJyYW5jaExvYWQzMigpCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBw
cm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2Nr
KCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2Fk
LCBJbnQzMiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAg
ICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsK
IAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IDEpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNl
Q2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIDApKTsKIApAQCAtNzE3NCwxOCArNzE4MSwxOCBAQCB2b2lkIHRlc3RCcmFuY2hMb2Fk
OFMoKQogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJh
c2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVt
b3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZDhTLCBPcmlnaW4oKSwKICAgICAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BS
SW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSks
IEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC03MjA0LDE4ICs3
MjExLDE4IEBAIHZvaWQgdGVzdEJyYW5jaExvYWQ4WigpCiAgICAgQmFzaWNCbG9jayogdGhlbkNh
c2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFk
ZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBMb2FkOFosIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50
UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAg
ICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7
CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2Ut
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxz
ZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCAwKSk7CiAKQEAgLTcyMzQsMTggKzcyNDEsMTggQEAgdm9pZCB0ZXN0QnJhbmNoTG9h
ZDE2UygpCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAg
QmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxN
ZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkMTZTLCBPcmlnaW4oKSwKICAgICAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
R1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2Fz
ZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNhc2UtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC03MjY0LDE4
ICs3MjcxLDE4IEBAIHZvaWQgdGVzdEJyYW5jaExvYWQxNlooKQogICAgIEJhc2ljQmxvY2sqIHRo
ZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJv
Yy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgTG9hZDE2WiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAog
ICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNh
c2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVu
Q2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIDApKTsKIApAQCAtNzI5NSw3ICs3MzAyLDcgQEAgdm9pZCB0ZXN0QnJhbmNo
OFdpdGhMb2FkOFpJbmRleCgpCiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJs
b2NrKCk7CiAKICAgICBpbnQgbG9nU2NhbGUgPSAxOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIEFib3ZlLCBPcmlnaW4oKSwKQEAgLTczMTEsMTEgKzczMTgsMTEgQEAg
dm9pZCB0ZXN0QnJhbmNoOFdpdGhMb2FkOFpJbmRleCgpCiAgICAgICAgICAgICByb290LT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMjUwKSksCiAgICAgICAgIEZyZXF1
ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAg
dGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwog
Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
MCkpOwogCkBAIC03MzU3LDcgKzczNjQsNyBAQCB2b2lkIHRlc3RDb21wbGV4KHVuc2lnbmVkIG51
bVZhcnMsIHVuc2lnCiAgICAgICAgICAgICBCYXNpY0Jsb2NrKiBlbHNlQmxvY2sgPSBwcm9jLmFk
ZEJsb2NrKCk7CiAgICAgICAgICAgICBCYXNpY0Jsb2NrKiBjb250aW51YXRpb24gPSBwcm9jLmFk
ZEJsb2NrKCk7CiAKLSAgICAgICAgICAgIGN1cnJlbnQtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgICAgICAgICAgY3VycmVudC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAg
ICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksIHZhcnNbcHJlZGljYXRlVmFySW5kZXhdLAog
ICAgICAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQmxvY2spLCBGcmVxdWVudGVkQmxv
Y2soZWxzZUJsb2NrKSk7CiAKQEAgLTczNjYsMTQgKzczNzMsMTQgQEAgdm9pZCB0ZXN0Q29tcGxl
eCh1bnNpZ25lZCBudW1WYXJzLCB1bnNpZwogICAgICAgICAgICAgICAgIHRoZW5CbG9jay0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCB2YXJzW3RoZW5JbmNWYXJJbmRleF0s
IG9uZSkpOwogICAgICAgICAgICAgVXBzaWxvblZhbHVlKiB0aGVuRWxzZVJlc3VsdCA9IHRoZW5C
bG9jay0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgT3Jp
Z2luKCksIHZhcnNbZWxzZUluY1ZhckluZGV4XSk7Ci0gICAgICAgICAgICB0aGVuQmxvY2stPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxv
Y2soY29udGludWF0aW9uKSk7CisgICAgICAgICAgICB0aGVuQmxvY2stPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGNvbnRpbnVhdGlv
bikpOwogCiAgICAgICAgICAgICBVcHNpbG9uVmFsdWUqIGVsc2VFbHNlUmVzdWx0ID0gZWxzZUJs
b2NrLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBPcmln
aW4oKSwKICAgICAgICAgICAgICAgICBlbHNlQmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
QWRkLCBPcmlnaW4oKSwgdmFyc1tlbHNlSW5jVmFySW5kZXhdLCBvbmUpKTsKICAgICAgICAgICAg
IFVwc2lsb25WYWx1ZSogZWxzZVRoZW5SZXN1bHQgPSBlbHNlQmxvY2stPmFwcGVuZE5ldzxVcHNp
bG9uVmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLCB2YXJzW3RoZW5JbmNW
YXJJbmRleF0pOwotICAgICAgICAgICAgZWxzZUJsb2NrLT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGNvbnRpbnVhdGlvbikpOwor
ICAgICAgICAgICAgZWxzZUJsb2NrLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwg
T3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhjb250aW51YXRpb24pKTsKIAogICAgICAgICAgICAg
VmFsdWUqIHRoZW5QaGkgPSBjb250aW51YXRpb24tPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhp
LCBJbnQzMiwgT3JpZ2luKCkpOwogICAgICAgICAgICAgdGhlblRoZW5SZXN1bHQtPnNldFBoaSh0
aGVuUGhpKTsKQEAgLTczOTgsNyArNzQwNSw3IEBAIHZvaWQgdGVzdENvbXBsZXgodW5zaWduZWQg
bnVtVmFycywgdW5zaWcKICAgICAgICAgICAgIAogICAgICAgICAgICAgVmFsdWUqIHN0YXJ0SW5k
ZXggPSB2YXJzWygoaSA+PiAxKSArIDEpICUgbnVtVmFyc107CiAgICAgICAgICAgICBWYWx1ZSog
c3RhcnRTdW0gPSBjdXJyZW50LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgMCk7Ci0gICAgICAgICAgICBjdXJyZW50LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICAgICAgICAgIGN1cnJlbnQtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgICAg
ICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLCBzdGFydEluZGV4LAogICAgICAgICAgICAgICAgIEZy
ZXF1ZW50ZWRCbG9jayhsb29wRW50cnkpLCBGcmVxdWVudGVkQmxvY2sobG9vcFNraXApKTsKIApA
QCAtNzQwNiw3ICs3NDEzLDcgQEAgdm9pZCB0ZXN0Q29tcGxleCh1bnNpZ25lZCBudW1WYXJzLCB1
bnNpZwogICAgICAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLCBzdGFydEluZGV4KTsKICAgICAg
ICAgICAgIFVwc2lsb25WYWx1ZSogc3RhcnRTdW1Gb3JCb2R5ID0gbG9vcEVudHJ5LT5hcHBlbmRO
ZXc8VXBzaWxvblZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgc3RhcnRT
dW0pOwotICAgICAgICAgICAgbG9vcEVudHJ5LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3BCb2R5KSk7CisgICAgICAgICAg
ICBsb29wRW50cnktPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwg
RnJlcXVlbnRlZEJsb2NrKGxvb3BCb2R5KSk7CiAKICAgICAgICAgICAgIFZhbHVlKiBib2R5SW5k
ZXggPSBsb29wQm9keS0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBQaGksIEludDMyLCBPcmlnaW4o
KSk7CiAgICAgICAgICAgICBzdGFydEluZGV4Rm9yQm9keS0+c2V0UGhpKGJvZHlJbmRleCk7CkBA
IC03NDMxLDE5ICs3NDM4LDE5IEBAIHZvaWQgdGVzdENvbXBsZXgodW5zaWduZWQgbnVtVmFycywg
dW5zaWcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvb3BCb2R5LT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwcm9jLCBPcmlnaW4oKSwgbnVtVmFycyAtIDEpKSksCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbG9vcEJvZHktPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCAyKSkpKSk7Ci0gICAgICAgICAgICBsb29wQm9keS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgICAgICAgICBsb29wQm9keS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAg
ICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksIG5ld0JvZHlJbmRleCwKICAgICAgICAgICAg
ICAgICBGcmVxdWVudGVkQmxvY2sobG9vcFJlZW50cnkpLCBGcmVxdWVudGVkQmxvY2sobG9vcEV4
aXQpKTsKIAogICAgICAgICAgICAgbG9vcFJlZW50cnktPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBuZXdCb2R5SW5kZXgsIGJvZHlJbmRleCk7CiAgICAgICAgICAgICBs
b29wUmVlbnRyeS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIG5ld0Jv
ZHlTdW0sIGJvZHlTdW0pOwotICAgICAgICAgICAgbG9vcFJlZW50cnktPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sobG9vcEJvZHkp
KTsKKyAgICAgICAgICAgIGxvb3BSZWVudHJ5LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
SnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhsb29wQm9keSkpOwogCiAgICAgICAgICAg
ICBVcHNpbG9uVmFsdWUqIGV4aXRTdW0gPSBsb29wRXhpdC0+YXBwZW5kTmV3PFVwc2lsb25WYWx1
ZT4ocHJvYywgT3JpZ2luKCksIG5ld0JvZHlTdW0pOwotICAgICAgICAgICAgbG9vcEV4aXQtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxv
Y2soY29udGludWF0aW9uKSk7CisgICAgICAgICAgICBsb29wRXhpdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soY29udGludWF0aW9u
KSk7CiAKICAgICAgICAgICAgIFVwc2lsb25WYWx1ZSogc2tpcFN1bSA9IGxvb3BTa2lwLT5hcHBl
bmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgc3RhcnRTdW0pOwotICAgICAgICAg
ICAgbG9vcFNraXAtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigp
LCBGcmVxdWVudGVkQmxvY2soY29udGludWF0aW9uKSk7CisgICAgICAgICAgICBsb29wU2tpcC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxv
Y2soY29udGludWF0aW9uKSk7CiAKICAgICAgICAgICAgIFZhbHVlKiBmaW5hbFN1bSA9IGNvbnRp
bnVhdGlvbi0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBQaGksIEludDMyLCBPcmlnaW4oKSk7CiAg
ICAgICAgICAgICBleGl0U3VtLT5zZXRQaGkoZmluYWxTdW0pOwpAQCAtNzQ1NCw3ICs3NDYxLDcg
QEAgdm9pZCB0ZXN0Q29tcGxleCh1bnNpZ25lZCBudW1WYXJzLCB1bnNpZwogICAgICAgICB9CiAg
ICAgfQogCi0gICAgY3VycmVudC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgdmFyc1swXSk7CisgICAgY3VycmVudC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhcnNbMF0pOwogCiAgICAgY29tcGlsZShwcm9jKTsK
IApAQCAtNzQ4MCw3ICs3NDg3LDcgQEAgdm9pZCB0ZXN0U2ltcGxlUGF0Y2hwb2ludCgpCiAgICAg
ICAgICAgICBDSEVDSyhwYXJhbXNbMl0uaXNHUFIoKSk7CiAgICAgICAgICAgICBhZGQzMihqaXQs
IHBhcmFtc1sxXS5ncHIoKSwgcGFyYW1zWzJdLmdwcigpLCBwYXJhbXNbMF0uZ3ByKCkpOwogICAg
ICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CiAKICAgICBDSEVDSyhjb21waWxl
QW5kUnVuPGludD4ocHJvYywgMSwgMikgPT0gMyk7CiB9CkBAIC03NTExLDcgKzc1MTgsNyBAQCB2
b2lkIHRlc3RTaW1wbGVQYXRjaHBvaW50V2l0aG91dE91cHV0Q2xvCiAgICAgICAgIH0pOwogCiAg
ICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmln
aW4oKSwgYXJnMSwgYXJnMik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBp
bGVBbmRSdW48aW50Pihwcm9jLCAxLCAyKSA9PSAzKTsKIH0KQEAgLTc1NjAsNyArNzU2Nyw3IEBA
IHZvaWQgdGVzdFNpbXBsZVBhdGNocG9pbnRXaXRoT3VwdXRDbG9iYmUKIAogICAgIFZhbHVlKiBy
ZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIHBhdGNo
cG9pbnQsCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4o
KSwgYXJnMSwgYXJnMikpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhjb21waWxl
QW5kUnVuPGludD4ocHJvYywgMSwgMikgPT0gNTgpOwogfQpAQCAtNzU5MSw3ICs3NTk4LDcgQEAg
dm9pZCB0ZXN0U2ltcGxlUGF0Y2hwb2ludFdpdGhvdXRPdXB1dENsbwogICAgICAgICB9KTsKIAog
ICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3Jp
Z2luKCksIGFyZzEsIGFyZzIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhjb21w
aWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgMS41LCAyLjUpID09IDQpOwogfQpAQCAtNzYzMiw3ICs3
NjM5LDcgQEAgdm9pZCB0ZXN0U2ltcGxlUGF0Y2hwb2ludFdpdGhPdXB1dENsb2JiZQogCiAgICAg
VmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4o
KSwgcGF0Y2hwb2ludCwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQs
IE9yaWdpbigpLCBhcmcxLCBhcmcyKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNL
KGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCAxLjUsIDIuNSkgPT0gNTkuNik7CiB9CkBAIC03
NjU3LDcgKzc2NjQsNyBAQCB2b2lkIHRlc3RQYXRjaHBvaW50V2l0aEVhcmx5Q2xvYmJlcigpCiAg
ICAgICAgICAgICAgICAgYWRkMzIoaml0LCBwYXJhbXNbMV0uZ3ByKCksIHBhcmFtc1syXS5ncHIo
KSwgcGFyYW1zWzBdLmdwcigpKTsKICAgICAgICAgICAgIH0pOwogCi0gICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQp
OworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcGF0Y2hwb2ludCk7CiAKICAgICAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHBy
b2MsIDEsIDIpID09IDMpOwogICAgIH07CkBAIC03NjkwLDcgKzc2OTcsNyBAQCB2b2lkIHRlc3RQ
YXRjaHBvaW50Q2FsbEFyZygpCiAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNz
KEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBwYXJhbXNbMl0ub2Zmc2V0RnJvbUZQKCkpLAog
ICAgICAgICAgICAgICAgIHBhcmFtc1swXS5ncHIoKSk7CiAgICAgICAgIH0pOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9p
bnQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBwYXRjaHBvaW50KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAx
LCAyKSA9PSAzKTsKIH0KQEAgLTc3MTMsNyArNzcyMCw3IEBAIHZvaWQgdGVzdFBhdGNocG9pbnRG
aXhlZFJlZ2lzdGVyKCkKICAgICAgICAgICAgIENIRUNLKHBhcmFtc1syXSA9PSBWYWx1ZVJlcChH
UFJJbmZvOjpyZWdUMSkpOwogICAgICAgICAgICAgYWRkMzIoaml0LCBHUFJJbmZvOjpyZWdUMCwg
R1BSSW5mbzo6cmVnVDEsIHBhcmFtc1swXS5ncHIoKSk7CiAgICAgICAgIH0pOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9p
bnQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBwYXRjaHBvaW50KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAx
LCAyKSA9PSAzKTsKIH0KQEAgLTc3MzcsNyArNzc0NCw3IEBAIHZvaWQgdGVzdFBhdGNocG9pbnRB
bnkoVmFsdWVSZXAgcmVwKQogICAgICAgICAgICAgQ0hFQ0socGFyYW1zWzJdLmlzR1BSKCkpOwog
ICAgICAgICAgICAgYWRkMzIoaml0LCBwYXJhbXNbMV0uZ3ByKCksIHBhcmFtc1syXS5ncHIoKSwg
cGFyYW1zWzBdLmdwcigpKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQp
OwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIDEsIDIpID09IDMpOwogfQpA
QCAtNzc3Myw3ICs3NzgwLDcgQEAgdm9pZCB0ZXN0UGF0Y2hwb2ludEdQU2NyYXRjaCgpCiAgICAg
ICAgICAgICBDSEVDSyghcGFyYW1zLnVuYXZhaWxhYmxlUmVnaXN0ZXJzKCkuZ2V0KHBhcmFtcy5n
cFNjcmF0Y2goMSkpKTsKICAgICAgICAgICAgIGFkZDMyKGppdCwgcGFyYW1zWzFdLmdwcigpLCBw
YXJhbXNbMl0uZ3ByKCksIHBhcmFtc1swXS5ncHIoKSk7CiAgICAgICAgIH0pOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9p
bnQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBwYXRjaHBvaW50KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAx
LCAyKSA9PSAzKTsKIH0KQEAgLTc4MDMsNyArNzgxMCw3IEBAIHZvaWQgdGVzdFBhdGNocG9pbnRG
UFNjcmF0Y2goKQogICAgICAgICAgICAgQ0hFQ0soIXBhcmFtcy51bmF2YWlsYWJsZVJlZ2lzdGVy
cygpLmdldChwYXJhbXMuZnBTY3JhdGNoKDEpKSk7CiAgICAgICAgICAgICBhZGQzMihqaXQsIHBh
cmFtc1sxXS5ncHIoKSwgcGFyYW1zWzJdLmdwcigpLCBwYXJhbXNbMF0uZ3ByKCkpOwogICAgICAg
ICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5k
UnVuPGludD4ocHJvYywgMSwgMikgPT0gMyk7CiB9CkBAIC03ODQ1LDcgKzc4NTIsNyBAQCB2b2lk
IHRlc3RQYXRjaHBvaW50TG90c09mTGF0ZUFueXMoKQogICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIH0KICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOwogCiAgICAg
Q0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MpID09ICh0aGluZ3Muc2l6ZSgpICogKHRoaW5n
cy5zaXplKCkgLSAxKSkgLyAyKTsKIH0KQEAgLTc4NzMsNyArNzg4MCw3IEBAIHZvaWQgdGVzdFBh
dGNocG9pbnRBbnlJbW0oVmFsdWVSZXAgcmVwKQogICAgICAgICAgICAgICAgIENDYWxsSGVscGVy
czo6VHJ1c3RlZEltbTMyKHN0YXRpY19jYXN0PGludDMyX3Q+KHBhcmFtc1syXS52YWx1ZSgpKSks
CiAgICAgICAgICAgICAgICAgcGFyYW1zWzFdLmdwcigpLCBwYXJhbXNbMF0uZ3ByKCkpOwogICAg
ICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CiAKICAgICBDSEVDSyhjb21waWxl
QW5kUnVuPGludD4ocHJvYywgMSkgPT0gNDMpOwogfQpAQCAtNzg5OSw3ICs3OTA2LDcgQEAgdm9p
ZCB0ZXN0UGF0Y2hwb2ludE1hbnlJbW1zKCkKICAgICAgICAgICAgIENIRUNLKHBhcmFtc1syXSA9
PSBWYWx1ZVJlcDo6Y29uc3RhbnQoNDMwMDAwMDAwMDAwMDBsbCkpOwogICAgICAgICAgICAgQ0hF
Q0socGFyYW1zWzNdID09IFZhbHVlUmVwOjpjb25zdGFudChiaXR3aXNlX2Nhc3Q8aW50NjRfdD4o
NDIuNSkpKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgMCkpOwogCkBAIC03OTI1LDcgKzc5MzIsNyBAQCB2b2lkIHRlc3RQYXRjaHBvaW50
V2l0aFJlZ2lzdGVyUmVzdWx0KCkKICAgICAgICAgICAgIENIRUNLKHBhcmFtc1syXS5pc0dQUigp
KTsKICAgICAgICAgICAgIGFkZDMyKGppdCwgcGFyYW1zWzFdLmdwcigpLCBwYXJhbXNbMl0uZ3By
KCksIEdQUkluZm86Om5vbkFyZ0dQUjApOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0
Y2hwb2ludCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywgMSwgMikgPT0g
Myk7CiB9CkBAIC03OTUxLDcgKzc5NTgsNyBAQCB2b2lkIHRlc3RQYXRjaHBvaW50V2l0aFN0YWNr
QXJndW1lbnRSZXN1CiAgICAgICAgICAgICBqaXQuYWRkMzIocGFyYW1zWzFdLmdwcigpLCBwYXJh
bXNbMl0uZ3ByKCksIGppdC5zY3JhdGNoUmVnaXN0ZXIoKSk7CiAgICAgICAgICAgICBqaXQuc3Rv
cmUzMihqaXQuc2NyYXRjaFJlZ2lzdGVyKCksIENDYWxsSGVscGVyczo6QWRkcmVzcyhDQ2FsbEhl
bHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCAwKSk7CiAgICAgICAgIH0pOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9p
bnQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBwYXRjaHBvaW50KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAx
LCAyKSA9PSAzKTsKIH0KQEAgLTc5ODAsNyArNzk4Nyw3IEBAIHZvaWQgdGVzdFBhdGNocG9pbnRX
aXRoQW55UmVzdWx0KCkKICAgICAgICAgICAgIGppdC5jb252ZXJ0SW50MzJUb0RvdWJsZShHUFJJ
bmZvOjpyZWdUMCwgRlBSSW5mbzo6ZnBSZWdUMCk7CiAgICAgICAgICAgICBqaXQuc3RvcmVEb3Vi
bGUoRlBSSW5mbzo6ZnBSZWdUMCwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OmNhbGxG
cmFtZVJlZ2lzdGVyLCBwYXJhbXNbMF0ub2Zmc2V0RnJvbUZQKCkpKTsKICAgICAgICAgfSk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cGF0Y2hwb2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHBhdGNocG9pbnQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxkb3Vi
bGU+KHByb2MsIDEsIDIpID09IDMpOwogfQpAQCAtODAwMiw3ICs4MDA5LDcgQEAgdm9pZCB0ZXN0
U2ltcGxlQ2hlY2soKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAg
ICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIDApKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CkBAIC04
MDIxLDcgKzgwMjgsNyBAQCB2b2lkIHRlc3RDaGVja0ZhbHNlKCkKICAgICAgICAgWyZdIChDQ2Fs
bEhlbHBlcnMmLCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7CiAgICAgICAgICAg
ICBDSEVDSyghIlRoaXMgc2hvdWxkIG5vdCBoYXZlIGV4ZWN1dGVkIik7CiAgICAgICAgIH0pOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGF1dG8gY29kZSA9
IGNvbXBpbGUocHJvYyk7CkBAIC04MDQ3LDcgKzgwNTQsNyBAQCB2b2lkIHRlc3RDaGVja1RydWUo
KQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBq
aXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IDApKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CkBAIC04MDc4LDcgKzgwODUs
NyBAQCB2b2lkIHRlc3RDaGVja0xlc3NUaGFuKCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rp
b25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21w
aWxlKHByb2MpOwpAQCAtODEyNCw3ICs4MTMxLDcgQEAgdm9pZCB0ZXN0Q2hlY2tNZWdhQ29tYm8o
KQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBq
aXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IDApKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CkBAIC04MTc5LDcgKzgxODYs
NyBAQCB2b2lkIHRlc3RDaGVja1RyaWNreU1lZ2FDb21ibygpCiAgICAgICAgICAgICBqaXQuZW1p
dEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgYXV0byBjb2Rl
ID0gY29tcGlsZShwcm9jKTsKQEAgLTgyNDMsNyArODI1MCw3IEBAIHZvaWQgdGVzdENoZWNrVHdv
TWVnYUNvbWJvcygpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAg
ICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgMCkpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKQEAgLTgy
OTMsNyArODMwMCw3IEBAIHZvaWQgdGVzdENoZWNrVHdvTm9uUmVkdW5kYW50TWVnYUNvbWJvcygK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkOFMsIE9yaWdp
bigpLCBwdHIpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgNDIpKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmln
aW4oKSwgYnJhbmNoUHJlZGljYXRlLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2Up
LCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKICAgICAKQEAgLTgzMDksNyArODMxNiw3IEBA
IHZvaWQgdGVzdENoZWNrVHdvTm9uUmVkdW5kYW50TWVnYUNvbWJvcygKICAgICAgICAgICAgIGpp
dC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAg
ICB9KTsKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNh
c2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0Mykp
OwogCiAgICAgQ2hlY2tWYWx1ZSogY2hlY2syID0gZWxzZUNhc2UtPmFwcGVuZE5ldzxDaGVja1Zh
bHVlPihwcm9jLCBDaGVjaywgT3JpZ2luKCksIGNoZWNrUHJlZGljYXRlKTsKQEAgLTgzMjQsNyAr
ODMzMSw3IEBAIHZvaWQgdGVzdENoZWNrVHdvTm9uUmVkdW5kYW50TWVnYUNvbWJvcygKICAgICAg
ICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgp
OwogICAgICAgICB9KTsKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCA0NSkpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKQEAgLTgzNzgsNyAr
ODM4NSw3IEBAIHZvaWQgdGVzdENoZWNrQWRkSW1tKCkKICAgICAgICAgICAgIGppdC5lbWl0RnVu
Y3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGNoZWNrQWRkKSk7CiAKQEAg
LTg0MTQsNyArODQyMSw3IEBAIHZvaWQgdGVzdENoZWNrQWRkSW1tQ29tbXV0ZSgpCiAgICAgICAg
ICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsK
ICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBj
aGVja0FkZCkpOwogCkBAIC04NDQ5LDcgKzg0NTYsNyBAQCB2b2lkIHRlc3RDaGVja0FkZEltbVNv
bWVSZWdpc3RlcigpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAg
ICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIElUb0QsIE9yaWdpbigpLCBjaGVja0FkZCkpOwogCkBAIC04NDg2LDcgKzg0OTMsNyBAQCB2
b2lkIHRlc3RDaGVja0FkZCgpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUo
KTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVja0FkZCkpOwogCkBAIC04NTE5LDcgKzg1MjYs
NyBAQCB2b2lkIHRlc3RDaGVja0FkZDY0KCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25F
cGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGNoZWNrQWRkKSk7CiAKQEAgLTg1NDIs
NyArODU0OSw3IEBAIHZvaWQgdGVzdENoZWNrQWRkRm9sZChpbnQgYSwgaW50IGIpCiAgICAgICAg
IFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgewog
ICAgICAgICAgICAgQ0hFQ0soISJTaG91bGQgaGF2ZSBiZWVuIGZvbGRlZCIpOwogICAgICAgICB9
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBjaGVja0FkZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIGNoZWNrQWRkKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJv
Yyk7CiAKQEAgLTg1NjMsNyArODU3MCw3IEBAIHZvaWQgdGVzdENoZWNrQWRkRm9sZEZhaWwoaW50
IGEsIGludCBiKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAg
ICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrQWRkKTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tBZGQpOwog
CiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAtODYwMiw3ICs4NjA5LDcgQEAg
dm9pZCB0ZXN0Q2hlY2tBZGRBcmd1bWVudEFsaWFzaW5nNjQoKQogICAgIENoZWNrVmFsdWUqIGNo
ZWNrQWRkMyA9IHJvb3QtPmFwcGVuZE5ldzxDaGVja1ZhbHVlPihwcm9jLCBDaGVja0FkZCwgT3Jp
Z2luKCksIGNoZWNrQWRkMSwgY2hlY2tBZGQyKTsKICAgICBjaGVja0FkZDMtPnNldEdlbmVyYXRv
cihbJl0gKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMm
KSB7IGppdC5vb3BzKCk7IH0pOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tBZGQzKTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tBZGQzKTsKIAogICAgIENI
RUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgMSwgMiwgMykgPT0gOCk7CiB9CkBAIC04
NjQ1LDcgKzg2NTIsNyBAQCB2b2lkIHRlc3RDaGVja0FkZEFyZ3VtZW50QWxpYXNpbmczMigpCiAg
ICAgQ2hlY2tWYWx1ZSogY2hlY2tBZGQzID0gcm9vdC0+YXBwZW5kTmV3PENoZWNrVmFsdWU+KHBy
b2MsIENoZWNrQWRkLCBPcmlnaW4oKSwgY2hlY2tBZGQxLCBjaGVja0FkZDIpOwogICAgIGNoZWNr
QWRkMy0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNrbWFw
R2VuZXJhdGlvblBhcmFtcyYpIHsgaml0Lm9vcHMoKTsgfSk7CiAKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja0FkZDMpOworICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVj
a0FkZDMpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCAxLCAyLCAz
KSA9PSA4KTsKIH0KQEAgLTg2NzAsNyArODY3Nyw3IEBAIHZvaWQgdGVzdENoZWNrQWRkU2VsZk92
ZXJmbG93NjQoKQogICAgIG9wYXF1ZVVzZS0+YXBwZW5kKENvbnN0cmFpbmVkVmFsdWUoYXJnLCBW
YWx1ZVJlcDo6U29tZVJlZ2lzdGVyKSk7CiAgICAgb3BhcXVlVXNlLT5zZXRHZW5lcmF0b3IoWyZd
IChDQ2FsbEhlbHBlcnMmLCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7IH0pOwog
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgY2hlY2tBZGQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBjaGVja0FkZCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2Mp
OwogCkBAIC04NzAxLDcgKzg3MDgsNyBAQCB2b2lkIHRlc3RDaGVja0FkZFNlbGZPdmVyZmxvdzMy
KCkKICAgICBvcGFxdWVVc2UtPmFwcGVuZChDb25zdHJhaW5lZFZhbHVlKGFyZywgVmFsdWVSZXA6
OlNvbWVSZWdpc3RlcikpOwogICAgIG9wYXF1ZVVzZS0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxI
ZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeyB9KTsKIAotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNr
QWRkKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgY2hlY2tBZGQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAt
ODczNCw3ICs4NzQxLDcgQEAgdm9pZCB0ZXN0Q2hlY2tTdWJJbW0oKQogICAgICAgICAgICAgaml0
LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAg
IH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tTdWIp
KTsKIApAQCAtODc3Niw3ICs4NzgzLDcgQEAgdm9pZCB0ZXN0Q2hlY2tTdWJCYWRJbW0oKQogICAg
ICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0
KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4o
KSwgY2hlY2tTdWIpKTsKIApAQCAtODgxMyw3ICs4ODIwLDcgQEAgdm9pZCB0ZXN0Q2hlY2tTdWIo
KQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBq
aXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBP
cmlnaW4oKSwgY2hlY2tTdWIpKTsKIApAQCAtODg1MSw3ICs4ODU4LDcgQEAgdm9pZCB0ZXN0Q2hl
Y2tTdWI2NCgpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAg
ICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IElUb0QsIE9yaWdpbigpLCBjaGVja1N1YikpOwogCkBAIC04ODc0LDcgKzg4ODEsNyBAQCB2b2lk
IHRlc3RDaGVja1N1YkZvbGQoaW50IGEsIGludCBiKQogICAgICAgICBbJl0gKENDYWxsSGVscGVy
cyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsKICAgICAgICAgICAgIENIRUNL
KCEiU2hvdWxkIGhhdmUgYmVlbiBmb2xkZWQiKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tTdWIpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBj
aGVja1N1Yik7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC04ODk1LDcg
Kzg5MDIsNyBAQCB2b2lkIHRlc3RDaGVja1N1YkZvbGRGYWlsKGludCBhLCBpbnQgYikKICAgICAg
ICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgp
OwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCBjaGVja1N1Yik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrU3ViKTsKIAogICAgIGF1dG8gY29kZSA9
IGNvbXBpbGUocHJvYyk7CiAKQEAgLTg5MjIsNyArODkyOSw3IEBAIHZvaWQgdGVzdENoZWNrTmVn
KCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAg
aml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwg
T3JpZ2luKCksIGNoZWNrTmVnKSk7CiAKQEAgLTg5NTIsNyArODk1OSw3IEBAIHZvaWQgdGVzdENo
ZWNrTmVnNjQoKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAg
ICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tOZWcpKTsKIApAQCAtODk4OSw3ICs4OTk2LDcgQEAgdm9p
ZCB0ZXN0Q2hlY2tNdWwoKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7
CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tNdWwpKTsKIApAQCAtOTAzMCw3ICs5MDM3LDcg
QEAgdm9pZCB0ZXN0Q2hlY2tNdWxNZW1vcnkoKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlv
bkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tNdWwpKTsKIApAQCAtOTA3
Nyw3ICs5MDg0LDcgQEAgdm9pZCB0ZXN0Q2hlY2tNdWwyKCkKICAgICAgICAgICAgIGppdC5lbWl0
RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGNoZWNrTXVsKSk7CiAK
QEAgLTkxMTAsNyArOTExNyw3IEBAIHZvaWQgdGVzdENoZWNrTXVsNjQoKQogICAgICAgICAgICAg
aml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAg
ICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tN
dWwpKTsKIApAQCAtOTEzMyw3ICs5MTQwLDcgQEAgdm9pZCB0ZXN0Q2hlY2tNdWxGb2xkKGludCBh
LCBpbnQgYikKICAgICAgICAgWyZdIChDQ2FsbEhlbHBlcnMmLCBjb25zdCBTdGFja21hcEdlbmVy
YXRpb25QYXJhbXMmKSB7CiAgICAgICAgICAgICBDSEVDSyghIlNob3VsZCBoYXZlIGJlZW4gZm9s
ZGVkIik7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrTXVsKTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tNdWwpOwogCiAgICAgYXV0byBj
b2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAtOTE1NCw3ICs5MTYxLDcgQEAgdm9pZCB0ZXN0Q2hl
Y2tNdWxGb2xkRmFpbChpbnQgYSwgaW50IGIpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9u
RXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tN
dWwpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBjaGVja011bCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC05
MTkzLDcgKzkyMDAsNyBAQCB2b2lkIHRlc3RDaGVja011bEFyZ3VtZW50QWxpYXNpbmc2NCgpCiAg
ICAgQ2hlY2tWYWx1ZSogY2hlY2tNdWwzID0gcm9vdC0+YXBwZW5kTmV3PENoZWNrVmFsdWU+KHBy
b2MsIENoZWNrTXVsLCBPcmlnaW4oKSwgY2hlY2tNdWwxLCBjaGVja011bDIpOwogICAgIGNoZWNr
TXVsMy0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNrbWFw
R2VuZXJhdGlvblBhcmFtcyYpIHsgaml0Lm9vcHMoKTsgfSk7CiAKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja011bDMpOworICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVj
a011bDMpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAyLCAzLCA0
KSA9PSA3Mik7CiB9CkBAIC05MjM2LDcgKzkyNDMsNyBAQCB2b2lkIHRlc3RDaGVja011bEFyZ3Vt
ZW50QWxpYXNpbmczMigpCiAgICAgQ2hlY2tWYWx1ZSogY2hlY2tNdWwzID0gcm9vdC0+YXBwZW5k
TmV3PENoZWNrVmFsdWU+KHByb2MsIENoZWNrTXVsLCBPcmlnaW4oKSwgY2hlY2tNdWwxLCBjaGVj
a011bDIpOwogICAgIGNoZWNrTXVsMy0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiBq
aXQsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsgaml0Lm9vcHMoKTsgfSk7CiAK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBjaGVja011bDMpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBjaGVja011bDMpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQz
Ml90Pihwcm9jLCAyLCAzLCA0KSA9PSA3Mik7CiB9CkBAIC05MjY4LDcgKzkyNzUsNyBAQCB2b2lk
IHRlc3RDaGVja011bDY0U1NocigpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9n
dWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVja011bCkpOwogCkBAIC05Mjk0LDcgKzkz
MDEsNyBAQCB2b2lkIGdlbmVyaWNUZXN0Q29tcGFyZSgKICAgICAgICAgVmFsdWUqIHJpZ2h0VmFs
dWUgPSByaWdodEZ1bmN0b3Iocm9vdCwgcHJvYyk7CiAgICAgICAgIFZhbHVlKiBjb21wYXJpc29u
UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBvcGNvZGUsIE9yaWdpbigpLCBs
ZWZ0VmFsdWUsIHJpZ2h0VmFsdWUpOwogICAgICAgICAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIE5vdEVxdWFsLCBPcmlnaW4oKSwK
QEAgLTkzMTQsNyArOTMyMSw3IEBAIHZvaWQgZ2VuZXJpY1Rlc3RDb21wYXJlKAogICAgICAgICBW
YWx1ZSogbGVmdFZhbHVlID0gbGVmdEZ1bmN0b3Iocm9vdCwgcHJvYyk7CiAgICAgICAgIFZhbHVl
KiByaWdodFZhbHVlID0gcmlnaHRGdW5jdG9yKHJvb3QsIHByb2MpOwogCi0gICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBvcGNvZGUsIE9yaWdpbigpLCBsZWZ0VmFsdWUs
IHJpZ2h0VmFsdWUpLAogICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJl
cXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CkBAIC05MzI4LDkgKzkzMzUsOSBAQCB2b2lkIGdlbmVy
aWNUZXN0Q29tcGFyZSgKICAgICAgICAgICAgICAgICBDSEVDSyhwYXJhbXNbMF0uaXNHUFIoKSk7
CiAgICAgICAgICAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoMSks
IHBhcmFtc1swXS5ncHIoKSk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgdGhlbkNhc2UtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQp
OworICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHBhdGNocG9pbnQpOwogCi0gICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICBlbHNlQ2FzZS0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtOTU2OSw3
ICs5NTc2LDcgQEAgdm9pZCB0ZXN0RXF1YWxEb3VibGUoZG91YmxlIGxlZnQsIGRvdWJsZQogewog
ICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgRXF1YWwsIE9yaWdp
bigpLApAQCAtOTU4OCw3ICs5NTk1LDcgQEAgdm9pZCB0ZXN0Q2FsbFNpbXBsZShpbnQgYSwgaW50
IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDQ2FsbFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IEludDMyLCBPcmlnaW4oKSwKQEAgLTk2MDYsMTYgKzk2MTMsMTYgQEAgdm9pZCB0ZXN0Q2FsbFJh
cmUoaW50IGEsIGludCBiKQogICAgIEJhc2ljQmxvY2sqIGNvbW1vbiA9IHByb2MuYWRkQmxvY2so
KTsKICAgICBCYXNpY0Jsb2NrKiByYXJlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BS
MCksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhyYXJlLCBGcmVxdWVuY3lDbGFzczo6UmFyZSks
CiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhjb21tb24pKTsKIAotICAgIGNvbW1vbi0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgY29tbW9uLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNvbW1vbi0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKICAgICAKLSAgICByYXJlLT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByYXJlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJhcmUtPmFwcGVuZE5ldzxDQ2FsbFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIEludDMyLCBPcmlnaW4oKSwKQEAgLTk2MzMsMTYgKzk2NDAs
MTYgQEAgdm9pZCB0ZXN0Q2FsbFJhcmVMaXZlKGludCBhLCBpbnQgYiwgaW50IAogICAgIEJhc2lj
QmxvY2sqIGNvbW1vbiA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiByYXJlID0g
cHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9j
ayhyYXJlLCBGcmVxdWVuY3lDbGFzczo6UmFyZSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhj
b21tb24pKTsKIAotICAgIGNvbW1vbi0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgY29t
bW9uLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIGNvbW1vbi0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsK
ICAgICAKLSAgICByYXJlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByYXJlLT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJhcmUtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdp
bigpLApAQCAtOTY2Miw3ICs5NjY5LDcgQEAgdm9pZCB0ZXN0Q2FsbFNpbXBsZVB1cmUoaW50IGEs
IGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q0NhbGxWYWx1ZT4oCiAgICAgICAgICAgICBw
cm9jLCBJbnQzMiwgT3JpZ2luKCksIEVmZmVjdHM6Om5vbmUoKSwKQEAgLTk2OTIsNyArOTY5OSw3
IEBAIHZvaWQgdGVzdENhbGxGdW5jdGlvbldpdGhIZWxsYUFyZ3VtZW50cygKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiaXR3aXNlX2Nhc3Q8
dm9pZCo+KGZ1bmN0aW9uV2l0aEhlbGxhQXJndW1lbnRzKSkpOwogICAgIGNhbGwtPmNoaWxkcmVu
KCkuYXBwZW5kVmVjdG9yKGFyZ3MpOwogICAgIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNhbGwpOworICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYWxsKTsKIAogICAgIENIRUNL
KGNvbXBpbGVBbmRSdW48aW50Pihwcm9jKSA9PSBmdW5jdGlvbldpdGhIZWxsYUFyZ3VtZW50cygx
LCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTcs
IDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYpKTsKIH0KQEAgLTk3MDEsNyArOTcw
OCw3IEBAIHZvaWQgdGVzdFJldHVybkRvdWJsZShkb3VibGUgdmFsdWUpCiB7CiAgICAgUHJvY2Vk
dXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpKTsKIApAQCAt
OTcxMiw3ICs5NzE5LDcgQEAgdm9pZCB0ZXN0UmV0dXJuRmxvYXQoZmxvYXQgdmFsdWUpCiB7CiAg
ICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSkp
OwogCkBAIC05NzI4LDcgKzk3MzUsNyBAQCB2b2lkIHRlc3RDYWxsU2ltcGxlRG91YmxlKGRvdWJs
ZSBhLCBkb3ViCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDQ2FsbFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIERvdWJsZSwgT3JpZ2luKCksCkBAIC05NzU0LDcgKzk3NjEsNyBAQCB2b2lkIHRlc3RD
YWxsU2ltcGxlRmxvYXQoZmxvYXQgYSwgZmxvYXQgCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7
CiAgICAgVmFsdWUqIGZsb2F0VmFsdWUxID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBC
aXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MWludDMyKTsKICAgICBWYWx1ZSogZmxvYXRW
YWx1ZTIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4o
KSwgYXJndW1lbnQyaW50MzIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENDYWxsVmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgRmxvYXQsIE9yaWdpbigpLApAQCAtOTc4NCw3ICs5NzkxLDcgQEAgdm9pZCB0ZXN0
Q2FsbEZ1bmN0aW9uV2l0aEhlbGxhRG91YmxlQXJndQogICAgICAgICByb290LT5hcHBlbmROZXc8
Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGJpdHdpc2VfY2FzdDx2b2lkKj4oZnVuY3Rp
b25XaXRoSGVsbGFEb3VibGVBcmd1bWVudHMpKSk7CiAgICAgY2FsbC0+Y2hpbGRyZW4oKS5hcHBl
bmRWZWN0b3IoYXJncyk7CiAgICAgCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FsbCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNhbGwpOwogCiAgICAgQ0hFQ0soY29tcGls
ZUFuZFJ1bjxkb3VibGU+KHByb2MpID09IGZ1bmN0aW9uV2l0aEhlbGxhRG91YmxlQXJndW1lbnRz
KDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAx
NywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjQsIDI1LCAyNikpOwogfQpAQCAtOTgwOCw3ICs5
ODE1LDcgQEAgdm9pZCB0ZXN0Q2FsbEZ1bmN0aW9uV2l0aEhlbGxhRmxvYXRBcmd1bQogICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGJpdHdpc2Vf
Y2FzdDx2b2lkKj4oZnVuY3Rpb25XaXRoSGVsbGFGbG9hdEFyZ3VtZW50cykpKTsKICAgICBjYWxs
LT5jaGlsZHJlbigpLmFwcGVuZFZlY3RvcihhcmdzKTsKICAgICAKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYWxsKTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FsbCk7CiAK
ICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jKSA9PSBmdW5jdGlvbldpdGhIZWxs
YUZsb2F0QXJndW1lbnRzKDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEz
LCAxNCwgMTUsIDE2LCAxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjQsIDI1LCAyNikpOwog
fQpAQCAtOTgyMCw3ICs5ODI3LDcgQEAgdm9pZCB0ZXN0Q2hpbGxEaXYoaW50IG51bSwgaW50IGRl
biwgaW50IAogICAgICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKICAgICAgICAgCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBDaGlsbERpdiwgT3JpZ2luKCksCkBA
IC05ODM5LDcgKzk4NDYsNyBAQCB2b2lkIHRlc3RDaGlsbERpdihpbnQgbnVtLCBpbnQgZGVuLCBp
bnQgCiAgICAgICAgIFByb2NlZHVyZSBwcm9jOwogICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwogICAgICAgICAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIENoaWxsRGl2LCBPcmlnaW4oKSwKQEAgLTk4
NTUsNyArOTg2Miw3IEBAIHZvaWQgdGVzdENoaWxsRGl2VHdpY2UoaW50IG51bTEsIGludCBkZW4K
ICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmln
aW4oKSwKQEAgLTk4ODksNyArOTg5Niw3IEBAIHZvaWQgdGVzdENoaWxsRGl2NjQoaW50NjRfdCBu
dW0sIGludDY0X3QKICAgICAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgICAgIAotICAgICAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgQ2hpbGxEaXYsIE9yaWdpbigp
LApAQCAtOTkwNCw3ICs5OTExLDcgQEAgdm9pZCB0ZXN0Q2hpbGxEaXY2NChpbnQ2NF90IG51bSwg
aW50NjRfdAogICAgICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKICAgICAgICAgCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBDaGlsbERpdiwgT3JpZ2luKCksCkBA
IC05OTI1LDcgKzk5MzIsNyBAQCB2b2lkIHRlc3RNb2RBcmcoaW50NjRfdCB2YWx1ZSkKIAogICAg
IFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBWYWx1ZSogcmVzdWx0ID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigpLCBhcmd1bWVudCwgYXJn
dW1lbnQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxp
bnQ2NF90Pihwcm9jLCB2YWx1ZSkpOwogfQpAQCAtOTk0Myw3ICs5OTUwLDcgQEAgdm9pZCB0ZXN0
TW9kQXJncyhpbnQ2NF90IG51bWVyYXRvciwgaW50NgogICAgIFZhbHVlKiBhcmd1bWVudDEgPSBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50MiA9IHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsK
ICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9y
aWdpbigpLCBhcmd1bWVudDEsIGFyZ3VtZW50Mik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAg
IENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgbnVtZXJhdG9yLCBkZW5vbWluYXRv
cikgPT0gbnVtZXJhdG9yICUgZGVub21pbmF0b3IpOwogfQpAQCAtOTk2MSw3ICs5OTY4LDcgQEAg
dm9pZCB0ZXN0TW9kSW1tcyhpbnQ2NF90IG51bWVyYXRvciwgaW50NgogICAgIFZhbHVlKiBhcmd1
bWVudDEgPSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgbnVt
ZXJhdG9yKTsKICAgICBWYWx1ZSogYXJndW1lbnQyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIGRlbm9taW5hdG9yKTsKICAgICBWYWx1ZSogcmVzdWx0ID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigpLCBhcmd1bWVudDEsIGFy
Z3VtZW50Mik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48
aW50NjRfdD4ocHJvYywgbnVtZXJhdG9yLCBkZW5vbWluYXRvcikgPT0gbnVtZXJhdG9yICUgZGVu
b21pbmF0b3IpOwogfQpAQCAtOTk3Nyw3ICs5OTg0LDcgQEAgdm9pZCB0ZXN0TW9kQXJnMzIoaW50
MzJfdCB2YWx1ZSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50
UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAgICBW
YWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigp
LCBhcmd1bWVudCwgYXJndW1lbnQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSygh
Y29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCB2YWx1ZSkpOwogfQpAQCAtOTk5Nyw3ICsxMDAw
NCw3IEBAIHZvaWQgdGVzdE1vZEFyZ3MzMihpbnQzMl90IG51bWVyYXRvciwgaW4KICAgICBWYWx1
ZSogYXJndW1lbnQyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgYXJndW1lbnQxLCBhcmd1bWVu
dDIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDMy
X3Q+KHByb2MsIG51bWVyYXRvciwgZGVub21pbmF0b3IpID09IG51bWVyYXRvciAlIGRlbm9taW5h
dG9yKTsKIH0KQEAgLTEwMDE1LDcgKzEwMDIyLDcgQEAgdm9pZCB0ZXN0TW9kSW1tczMyKGludDMy
X3QgbnVtZXJhdG9yLCBpbgogICAgIFZhbHVlKiBhcmd1bWVudDEgPSByb290LT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgbnVtZXJhdG9yKTsKICAgICBWYWx1ZSogYXJn
dW1lbnQyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGRl
bm9taW5hdG9yKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBNb2QsIE9yaWdpbigpLCBhcmd1bWVudDEsIGFyZ3VtZW50Mik7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgbnVtZXJhdG9y
LCBkZW5vbWluYXRvcikgPT0gbnVtZXJhdG9yICUgZGVub21pbmF0b3IpOwogfQpAQCAtMTAwMjcs
NyArMTAwMzQsNyBAQCB2b2lkIHRlc3RDaGlsbE1vZEFyZyhpbnQ2NF90IHZhbHVlKQogCiAgICAg
VmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFZhbHVlKiByZXN1bHQgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENoaWxsTW9kLCBPcmlnaW4oKSwgYXJndW1lbnQs
IGFyZ3VtZW50KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRS
dW48aW50NjRfdD4ocHJvYywgdmFsdWUpKTsKIH0KQEAgLTEwMDQwLDcgKzEwMDQ3LDcgQEAgdm9p
ZCB0ZXN0Q2hpbGxNb2RBcmdzKGludDY0X3QgbnVtZXJhdG9yLAogICAgIFZhbHVlKiBhcmd1bWVu
dDEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50MiA9IHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIxKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBD
aGlsbE1vZCwgT3JpZ2luKCksIGFyZ3VtZW50MSwgYXJndW1lbnQyKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1
bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCBudW1lcmF0b3Is
IGRlbm9taW5hdG9yKSA9PSBjaGlsbE1vZChudW1lcmF0b3IsIGRlbm9taW5hdG9yKSk7CiB9CkBA
IC0xMDA1Myw3ICsxMDA2MCw3IEBAIHZvaWQgdGVzdENoaWxsTW9kSW1tcyhpbnQ2NF90IG51bWVy
YXRvciwKICAgICBWYWx1ZSogYXJndW1lbnQxID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIG51bWVyYXRvcik7CiAgICAgVmFsdWUqIGFyZ3VtZW50MiA9IHJv
b3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBkZW5vbWluYXRvcik7
CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2hpbGxN
b2QsIE9yaWdpbigpLCBhcmd1bWVudDEsIGFyZ3VtZW50Mik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsK
IAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgbnVtZXJhdG9yLCBkZW5v
bWluYXRvcikgPT0gY2hpbGxNb2QobnVtZXJhdG9yLCBkZW5vbWluYXRvcikpOwogfQpAQCAtMTAw
NjYsNyArMTAwNzMsNyBAQCB2b2lkIHRlc3RDaGlsbE1vZEFyZzMyKGludDMyX3QgdmFsdWUpCiAg
ICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2hpbGxNb2QsIE9yaWdpbigpLCBhcmd1bWVu
dCwgYXJndW1lbnQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyghY29tcGlsZUFu
ZFJ1bjxpbnQzMl90Pihwcm9jLCB2YWx1ZSkpOwogfQpAQCAtMTAwODEsNyArMTAwODgsNyBAQCB2
b2lkIHRlc3RDaGlsbE1vZEFyZ3MzMihpbnQzMl90IG51bWVyYXRvCiAgICAgVmFsdWUqIGFyZ3Vt
ZW50MiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMSkpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIENoaWxsTW9kLCBPcmlnaW4oKSwgYXJndW1lbnQxLCBhcmd1bWVudDIp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDMyX3Q+
KHByb2MsIG51bWVyYXRvciwgZGVub21pbmF0b3IpID09IGNoaWxsTW9kKG51bWVyYXRvciwgZGVu
b21pbmF0b3IpKTsKIH0KQEAgLTEwMDk0LDcgKzEwMTAxLDcgQEAgdm9pZCB0ZXN0Q2hpbGxNb2RJ
bW1zMzIoaW50MzJfdCBudW1lcmF0bwogICAgIFZhbHVlKiBhcmd1bWVudDEgPSByb290LT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgbnVtZXJhdG9yKTsKICAgICBWYWx1
ZSogYXJndW1lbnQyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIGRlbm9taW5hdG9yKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBDaGlsbE1vZCwgT3JpZ2luKCksIGFyZ3VtZW50MSwgYXJndW1lbnQyKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9j
LCBudW1lcmF0b3IsIGRlbm9taW5hdG9yKSA9PSBjaGlsbE1vZChudW1lcmF0b3IsIGRlbm9taW5h
dG9yKSk7CiB9CkBAIC0xMDEwNSw3ICsxMDExMiw3IEBAIHZvaWQgdGVzdFN3aXRjaCh1bnNpZ25l
ZCBkZWdyZWUsIHVuc2lnbmUKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwogCiAgICAgQmFzaWNCbG9jayogdGVybWluYXRlID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHRl
cm1pbmF0ZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGVybWluYXRlLT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHRlcm1pbmF0ZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsK
IApAQCAtMTAxMTYsNyArMTAxMjMsNyBAQCB2b2lkIHRlc3RTd2l0Y2godW5zaWduZWQgZGVncmVl
LCB1bnNpZ25lCiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZGVncmVlOyArK2kpIHsK
ICAgICAgICAgQmFzaWNCbG9jayogbmV3QmxvY2sgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgICAg
IG5ld0Jsb2NrLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgbmV3QmxvY2stPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgICAgICBuZXdCbG9jay0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KAogICAg
ICAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLCAoaSAmIDEpID8gR1BSSW5mbzo6YXJndW1lbnRH
UFIyIDogR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7CkBAIC0xMDE0Nyw3ICsxMDE1NCw3IEBAIHZv
aWQgdGVzdFN3aXRjaENoaWxsRGl2KHVuc2lnbmVkIGRlZ3JlZSwKICAgICBWYWx1ZSogcmlnaHQg
PSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMik7CiAKICAgICBCYXNpY0Jsb2NrKiB0ZXJtaW5hdGUgPSBwcm9jLmFk
ZEJsb2NrKCk7Ci0gICAgdGVybWluYXRlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0
ZXJtaW5hdGUtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgdGVybWluYXRlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgMCkpOwogCkBAIC0xMDE1OSw3ICsxMDE2Niw3IEBAIHZvaWQgdGVzdFN3aXRj
aENoaWxsRGl2KHVuc2lnbmVkIGRlZ3JlZSwKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
ZGVncmVlOyArK2kpIHsKICAgICAgICAgQmFzaWNCbG9jayogbmV3QmxvY2sgPSBwcm9jLmFkZEJs
b2NrKCk7CiAKLSAgICAgICAgbmV3QmxvY2stPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
ICAgICBuZXdCbG9jay0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAgIG5ld0Jsb2NrLT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgICAgIHByb2MsIENoaWxsRGl2LCBPcmlnaW4oKSwgKGkgJiAxKSA/IHJp
Z2h0IDogbGVmdCwgKGkgJiAxKSA/IGxlZnQgOiByaWdodCkpOwpAQCAtMTAxNzAsNyArMTAxNzcs
MTAgQEAgdm9pZCB0ZXN0U3dpdGNoQ2hpbGxEaXYodW5zaWduZWQgZGVncmVlLAogICAgIGF1dG8g
Y29kZSA9IGNvbXBpbGUocHJvYyk7CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZGVn
cmVlOyArK2kpIHsKLSAgICAgICAgQ0hFQ0soaW52b2tlPGludDMyX3Q+KCpjb2RlLCBpICogZ2Fw
LCA0MiwgMTEpID09ICgoaSAmIDEpID8gMTEvNDIgOiA0Mi8xMSkpOworICAgICAgICBkYXRhTG9n
KCJpID0gIiwgaSwgIlxuIik7CisgICAgICAgIGludDMyX3QgcmVzdWx0ID0gaW52b2tlPGludDMy
X3Q+KCpjb2RlLCBpICogZ2FwLCA0MiwgMTEpOworICAgICAgICBkYXRhTG9nKCJyZXN1bHQgPSAi
LCByZXN1bHQsICJcbiIpOworICAgICAgICBDSEVDSyhyZXN1bHQgPT0gKChpICYgMSkgPyAxMS80
MiA6IDQyLzExKSk7CiAgICAgICAgIGlmIChnYXAgPiAxKSB7CiAgICAgICAgICAgICBDSEVDSygh
aW52b2tlPGludDMyX3Q+KCpjb2RlLCBpICogZ2FwICsgMSwgNDIsIDExKSk7CiAgICAgICAgICAg
ICBDSEVDSyghaW52b2tlPGludDMyX3Q+KCpjb2RlLCBpICogZ2FwIC0gMSwgNDIsIDExKSk7CkBA
IC0xMDE4OCw3ICsxMDE5OCw3IEBAIHZvaWQgdGVzdFN3aXRjaFRhcmdldHRpbmdTYW1lQmxvY2so
KQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAKICAgICBCYXNpY0Js
b2NrKiB0ZXJtaW5hdGUgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgdGVybWluYXRlLT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICB0ZXJtaW5hdGUtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGVybWluYXRlLT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNSkpOwogCkBAIC0xMDE5OCw3ICsx
MDIwOCw3IEBAIHZvaWQgdGVzdFN3aXRjaFRhcmdldHRpbmdTYW1lQmxvY2soKQogICAgICAgICBG
cmVxdWVudGVkQmxvY2sodGVybWluYXRlKSk7CiAKICAgICBCYXNpY0Jsb2NrKiBvdGhlclRhcmdl
dCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICBvdGhlclRhcmdldC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgb3RoZXJUYXJnZXQtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgb3RoZXJUYXJnZXQtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwogICAgIHN3aXRjaFZhbHVlLT5hcHBl
bmRDYXNlKFN3aXRjaENhc2UoMywgRnJlcXVlbnRlZEJsb2NrKG90aGVyVGFyZ2V0KSkpOwpAQCAt
MTAyMTgsNyArMTAyMjgsNyBAQCB2b2lkIHRlc3RTd2l0Y2hUYXJnZXR0aW5nU2FtZUJsb2NrRm9s
ZFBhCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKIAogICAgIEJhc2lj
QmxvY2sqIHRlcm1pbmF0ZSA9IHByb2MuYWRkQmxvY2soKTsKLSAgICB0ZXJtaW5hdGUtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRlcm1pbmF0ZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0ZXJtaW5hdGUtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwogCkBAIC0xMDIyOSw3
ICsxMDIzOSw3IEBAIHZvaWQgdGVzdFN3aXRjaFRhcmdldHRpbmdTYW1lQmxvY2tGb2xkUGEKICAg
ICAgICAgRnJlcXVlbnRlZEJsb2NrKHRlcm1pbmF0ZSkpOwogCiAgICAgQmFzaWNCbG9jayogb3Ro
ZXJUYXJnZXQgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgb3RoZXJUYXJnZXQtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIG90aGVyVGFyZ2V0LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBzd2l0Y2hWYWx1
ZS0+YXBwZW5kQ2FzZShTd2l0Y2hDYXNlKDMsIEZyZXF1ZW50ZWRCbG9jayhvdGhlclRhcmdldCkp
KTsKICAgICBzd2l0Y2hWYWx1ZS0+YXBwZW5kQ2FzZShTd2l0Y2hDYXNlKDEzLCBGcmVxdWVudGVk
QmxvY2sob3RoZXJUYXJnZXQpKSk7CkBAIC0xMDI0Niw3ICsxMDI1Niw3IEBAIHZvaWQgdGVzdFRy
dW5jRm9sZChpbnQ2NF90IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLApAQCAtMTAyNTksNyArMTAyNjksNyBAQCB2
b2lkIHRlc3RaRXh0MzIoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIFpFeHQzMiwgT3JpZ2luKCksCkBAIC0xMDI3NCw3ICsxMDI4
NCw3IEBAIHZvaWQgdGVzdFpFeHQzMkZvbGQoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1
cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFpFeHQzMiwgT3JpZ2luKCksCkBAIC0x
MDI4Nyw3ICsxMDI5Nyw3IEBAIHZvaWQgdGVzdFNFeHQzMihpbnQzMl90IHZhbHVlKQogewogICAg
IFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU0V4dDMyLCBPcmlnaW4o
KSwKQEAgLTEwMzAyLDcgKzEwMzEyLDcgQEAgdm9pZCB0ZXN0U0V4dDMyRm9sZChpbnQzMl90IHZh
bHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU0V4
dDMyLCBPcmlnaW4oKSwKQEAgLTEwMzE1LDcgKzEwMzI1LDcgQEAgdm9pZCB0ZXN0VHJ1bmNaRXh0
MzIoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKQEAgLTEwMzMyLDcgKzEwMzQyLDcgQEAgdm9pZCB0
ZXN0VHJ1bmNTRXh0MzIoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKQEAgLTEwMzQ5LDcgKzEwMzU5
LDcgQEAgdm9pZCB0ZXN0U0V4dDgoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNFeHQ4LCBPcmlnaW4oKSwKQEAgLTEwMzY0LDcg
KzEwMzc0LDcgQEAgdm9pZCB0ZXN0U0V4dDhGb2xkKGludDMyX3QgdmFsdWUpCiB7CiAgICAgUHJv
Y2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTRXh0OCwgT3JpZ2luKCksCkBA
IC0xMDM3Nyw3ICsxMDM4Nyw3IEBAIHZvaWQgdGVzdFNFeHQ4U0V4dDgoaW50MzJfdCB2YWx1ZSkK
IHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNFeHQ4LCBP
cmlnaW4oKSwKQEAgLTEwMzk0LDcgKzEwNDA0LDcgQEAgdm9pZCB0ZXN0U0V4dDhTRXh0MTYoaW50
MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIFNFeHQ4LCBPcmlnaW4oKSwKQEAgLTEwNDExLDcgKzEwNDIxLDcgQEAgdm9pZCB0ZXN0U0V4
dDhCaXRBbmQoaW50MzJfdCB2YWx1ZSwgaW50MwogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgU0V4dDgsIE9yaWdpbigpLApAQCAtMTA0MjksNyArMTA0Mzks
NyBAQCB2b2lkIHRlc3RCaXRBbmRTRXh0OChpbnQzMl90IHZhbHVlLCBpbnQzCiB7CiAgICAgUHJv
Y2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApA
QCAtMTA0NDcsNyArMTA0NTcsNyBAQCB2b2lkIHRlc3RTRXh0MTYoaW50MzJfdCB2YWx1ZSkKIHsK
ICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNFeHQxNiwgT3Jp
Z2luKCksCkBAIC0xMDQ2Miw3ICsxMDQ3Miw3IEBAIHZvaWQgdGVzdFNFeHQxNkZvbGQoaW50MzJf
dCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IFNFeHQxNiwgT3JpZ2luKCksCkBAIC0xMDQ3NSw3ICsxMDQ4NSw3IEBAIHZvaWQgdGVzdFNFeHQx
NlNFeHQxNihpbnQzMl90IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgU0V4dDE2LCBPcmlnaW4oKSwKQEAgLTEwNDkyLDcgKzEwNTAyLDcgQEAg
dm9pZCB0ZXN0U0V4dDE2U0V4dDgoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNFeHQxNiwgT3JpZ2luKCksCkBAIC0xMDUwOSw3
ICsxMDUxOSw3IEBAIHZvaWQgdGVzdFNFeHQxNkJpdEFuZChpbnQzMl90IHZhbHVlLCBpbnQKIHsK
ICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNFeHQxNiwgT3Jp
Z2luKCksCkBAIC0xMDUyNyw3ICsxMDUzNyw3IEBAIHZvaWQgdGVzdEJpdEFuZFNFeHQxNihpbnQz
Ml90IHZhbHVlLCBpbnQKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0xMDU0NSw3ICsxMDU1NSw3IEBAIHZvaWQgdGVz
dFNFeHQzMkJpdEFuZChpbnQzMl90IHZhbHVlLCBpbnQKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKICAgICAgICAgICAgIHByb2MsIFNFeHQzMiwgT3JpZ2luKCksCkBAIC0xMDU2Myw3ICsx
MDU3Myw3IEBAIHZvaWQgdGVzdEJpdEFuZFNFeHQzMihpbnQzMl90IHZhbHVlLCBpbnQKIHsKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2lu
KCksCkBAIC0xMDU4MSw3ICsxMDU5MSw3IEBAIHZvaWQgdGVzdEJhc2ljU2VsZWN0KCkKIHsKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2lu
KCksCkBAIC0xMDYwMyw3ICsxMDYxMyw3IEBAIHZvaWQgdGVzdFNlbGVjdFRlc3QoKQogewogICAg
IFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4o
KSwKQEAgLTEwNjIyLDcgKzEwNjMyLDcgQEAgdm9pZCB0ZXN0U2VsZWN0Q29tcGFyZURvdWJsZSgp
CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTZWxlY3Qs
IE9yaWdpbigpLApAQCAtMTA2NTMsNyArMTA2NjMsNyBAQCB2b2lkIHRlc3RTZWxlY3RDb21wYXJl
RmxvYXQoZmxvYXQgYSwgZmxvCiAgICAgVmFsdWUqIGZsb2F0VmFsdWUxID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MWludDMyKTsK
ICAgICBWYWx1ZSogZmxvYXRWYWx1ZTIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJp
dHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQyaW50MzIpOwogCi0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KAogICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTEwNjkxLDcgKzEw
NzAxLDcgQEAgdm9pZCB0ZXN0U2VsZWN0Q29tcGFyZUZsb2F0VG9Eb3VibGUoZmxvYQogICAgIFZh
bHVlKiBkb3VibGVWYWx1ZTEgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9E
b3VibGUsIE9yaWdpbigpLCBmbG9hdFZhbHVlMSk7CiAgICAgVmFsdWUqIGRvdWJsZVZhbHVlMiA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGZs
b2F0VmFsdWUyKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNl
bGVjdCwgT3JpZ2luKCksCkBAIC0xMDcxOSw3ICsxMDcyOSw3IEBAIHZvaWQgdGVzdFNlbGVjdERv
dWJsZSgpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBT
ZWxlY3QsIE9yaWdpbigpLApAQCAtMTA3NDEsNyArMTA3NTEsNyBAQCB2b2lkIHRlc3RTZWxlY3RE
b3VibGVUZXN0KCkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0xMDc2MCw3ICsxMDc3MCw3IEBAIHZvaWQgdGVzdFNl
bGVjdERvdWJsZUNvbXBhcmVEb3VibGUoKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAog
ICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTEwNzkwLDcgKzEwODAwLDcg
QEAgdm9pZCB0ZXN0U2VsZWN0RG91YmxlQ29tcGFyZUZsb2F0KGZsb2F0IAogICAgIFZhbHVlKiBm
bG9hdFZhbHVlMSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9y
aWdpbigpLCBhcmd1bWVudDFpbnQzMik7CiAgICAgVmFsdWUqIGZsb2F0VmFsdWUyID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50Mmlu
dDMyKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwg
T3JpZ2luKCksCkBAIC0xMDgyMSw3ICsxMDgzMSw3IEBAIHZvaWQgdGVzdFNlbGVjdEZsb2F0Q29t
cGFyZUZsb2F0KGZsb2F0IGEKICAgICBWYWx1ZSogZmxvYXRWYWx1ZTMgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzaW50MzIpOwog
ICAgIFZhbHVlKiBmbG9hdFZhbHVlNCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0
d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDRpbnQzMik7CiAKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLApAQCAtMTA4NDcsNyArMTA4
NTcsNyBAQCB2b2lkIHRlc3RTZWxlY3REb3VibGVDb21wYXJlRG91YmxlKGJvb2wgCiAgICAgICAg
IFZhbHVlKiBhcmcyID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjIpOwogICAgICAgICBWYWx1ZSogYXJnMyA9IHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6
YXJndW1lbnRGUFIzKTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTEwODgzLDcgKzEwODkz
LDcgQEAgdm9pZCB0ZXN0U2VsZWN0RG91YmxlQ29tcGFyZURvdWJsZShib29sIAogICAgICAgICBr
ZWVwVmFsdWVzTGl2ZS0+YXBwZW5kKENvbnN0cmFpbmVkVmFsdWUoYXJnMiwgVmFsdWVSZXA6OlNv
bWVSZWdpc3RlcikpOwogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+c2V0R2VuZXJhdG9yKFsmXSAo
Q0NhbGxIZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeyB9KTsKIAot
ICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICAgICAgYXV0byBjb2RlID0gY29tcGlsZShw
cm9jKTsKIAogICAgICAgICBmb3IgKGF1dG8mIGxlZnQgOiBmbG9hdGluZ1BvaW50T3BlcmFuZHM8
ZG91YmxlPigpKSB7CkBAIC0xMDkxMCw3ICsxMDkyMCw3IEBAIHZvaWQgdGVzdFNlbGVjdERvdWJs
ZUNvbXBhcmVEb3VibGUoYm9vbCAKICAgICAgICAga2VlcFZhbHVlc0xpdmUtPmFwcGVuZChDb25z
dHJhaW5lZFZhbHVlKGFyZzMsIFZhbHVlUmVwOjpTb21lUmVnaXN0ZXIpKTsKICAgICAgICAga2Vl
cFZhbHVlc0xpdmUtPnNldEdlbmVyYXRvcihbJl0gKENDYWxsSGVscGVycyYsIGNvbnN0IFN0YWNr
bWFwR2VuZXJhdGlvblBhcmFtcyYpIHsgfSk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICAgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7
CiAgICAgICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKICAgICAgICAgZm9yIChhdXRv
JiBsZWZ0IDogZmxvYXRpbmdQb2ludE9wZXJhbmRzPGRvdWJsZT4oKSkgewpAQCAtMTA5MzgsNyAr
MTA5NDgsNyBAQCB2b2lkIHRlc3RTZWxlY3REb3VibGVDb21wYXJlRG91YmxlKGJvb2wgCiAgICAg
ICAgIGtlZXBWYWx1ZXNMaXZlLT5hcHBlbmQoQ29uc3RyYWluZWRWYWx1ZShhcmczLCBWYWx1ZVJl
cDo6U29tZVJlZ2lzdGVyKSk7CiAgICAgICAgIGtlZXBWYWx1ZXNMaXZlLT5zZXRHZW5lcmF0b3Io
WyZdIChDQ2FsbEhlbHBlcnMmLCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7IH0p
OwogCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogICAgICAgICBhdXRvIGNvZGUgPSBjb21w
aWxlKHByb2MpOwogCiAgICAgICAgIGZvciAoYXV0byYgbGVmdCA6IGZsb2F0aW5nUG9pbnRPcGVy
YW5kczxkb3VibGU+KCkpIHsKQEAgLTEwOTU1LDcgKzEwOTY1LDcgQEAgdm9pZCB0ZXN0U2VsZWN0
RG91YmxlQ29tcGFyZURvdWJsZShib29sIAogICAgICAgICBWYWx1ZSogYXJnMSA9IHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1l
bnRGUFIxKTsKICAgICAgICAgVmFsdWUqIGFyZzIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMik7CiAKLSAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIFNl
bGVjdCwgT3JpZ2luKCksCkBAIC0xMDk5MCw3ICsxMTAwMCw3IEBAIHZvaWQgdGVzdFNlbGVjdERv
dWJsZUNvbXBhcmVEb3VibGUoYm9vbCAKICAgICAgICAga2VlcFZhbHVlc0xpdmUtPmFwcGVuZChD
b25zdHJhaW5lZFZhbHVlKGFyZzIsIFZhbHVlUmVwOjpTb21lUmVnaXN0ZXIpKTsKICAgICAgICAg
a2VlcFZhbHVlc0xpdmUtPnNldEdlbmVyYXRvcihbJl0gKENDYWxsSGVscGVycyYsIGNvbnN0IFN0
YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsgfSk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICAgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dCk7CiAgICAgICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKICAgICAgICAgZm9yIChh
dXRvJiBsZWZ0IDogZmxvYXRpbmdQb2ludE9wZXJhbmRzPGRvdWJsZT4oKSkgewpAQCAtMTEwMzMs
NyArMTEwNDMsNyBAQCB2b2lkIHRlc3RTZWxlY3RGbG9hdENvbXBhcmVGbG9hdChib29sICgqCiAg
ICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwK
ICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMykpKTsKIAotICAgICAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4o
KSwKQEAgLTExMDc3LDcgKzExMDg3LDcgQEAgdm9pZCB0ZXN0U2VsZWN0RmxvYXRDb21wYXJlRmxv
YXQoYm9vbCAoKgogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+YXBwZW5kKENvbnN0cmFpbmVkVmFs
dWUoYXJnMiwgVmFsdWVSZXA6OlNvbWVSZWdpc3RlcikpOwogICAgICAgICBrZWVwVmFsdWVzTGl2
ZS0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0
aW9uUGFyYW1zJikgeyB9KTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgICAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICAgICAg
YXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIAogICAgICAgICBmb3IgKGF1dG8mIGxlZnQgOiBm
bG9hdGluZ1BvaW50T3BlcmFuZHM8ZmxvYXQ+KCkpIHsKQEAgLTExMTEyLDcgKzExMTIyLDcgQEAg
dm9pZCB0ZXN0U2VsZWN0RmxvYXRDb21wYXJlRmxvYXQoYm9vbCAoKgogICAgICAgICBrZWVwVmFs
dWVzTGl2ZS0+YXBwZW5kKENvbnN0cmFpbmVkVmFsdWUoYXJnMywgVmFsdWVSZXA6OlNvbWVSZWdp
c3RlcikpOwogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxI
ZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeyB9KTsKIAotICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsK
IAogICAgICAgICBmb3IgKGF1dG8mIGxlZnQgOiBmbG9hdGluZ1BvaW50T3BlcmFuZHM8ZmxvYXQ+
KCkpIHsKQEAgLTExMTQ4LDcgKzExMTU4LDcgQEAgdm9pZCB0ZXN0U2VsZWN0RmxvYXRDb21wYXJl
RmxvYXQoYm9vbCAoKgogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+YXBwZW5kKENvbnN0cmFpbmVk
VmFsdWUoYXJnMywgVmFsdWVSZXA6OlNvbWVSZWdpc3RlcikpOwogICAgICAgICBrZWVwVmFsdWVz
TGl2ZS0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBHZW5l
cmF0aW9uUGFyYW1zJikgeyB9KTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgICAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICAg
ICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIAogICAgICAgICBmb3IgKGF1dG8mIGxlZnQg
OiBmbG9hdGluZ1BvaW50T3BlcmFuZHM8ZmxvYXQ+KCkpIHsKQEAgLTExMTcxLDcgKzExMTgxLDcg
QEAgdm9pZCB0ZXN0U2VsZWN0RmxvYXRDb21wYXJlRmxvYXQoYm9vbCAoKgogICAgICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjIpKSk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0xMTIx
Miw3ICsxMTIyMiw3IEBAIHZvaWQgdGVzdFNlbGVjdEZsb2F0Q29tcGFyZUZsb2F0KGJvb2wgKCoK
ICAgICAgICAga2VlcFZhbHVlc0xpdmUtPmFwcGVuZChDb25zdHJhaW5lZFZhbHVlKGFyZzIsIFZh
bHVlUmVwOjpTb21lUmVnaXN0ZXIpKTsKICAgICAgICAga2VlcFZhbHVlc0xpdmUtPnNldEdlbmVy
YXRvcihbJl0gKENDYWxsSGVscGVycyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYp
IHsgfSk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgICAgIGF1dG8gY29kZSA9
IGNvbXBpbGUocHJvYyk7CiAKICAgICAgICAgZm9yIChhdXRvJiBsZWZ0IDogZmxvYXRpbmdQb2lu
dE9wZXJhbmRzPGZsb2F0PigpKSB7CkBAIC0xMTIzOSw3ICsxMTI0OSw3IEBAIHZvaWQgdGVzdFNl
bGVjdEZvbGQoaW50cHRyX3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLApAQCAtMTEyNTksNyArMTEyNjksNyBA
QCB2b2lkIHRlc3RTZWxlY3RJbnZlcnQoKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAog
ICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTExMzEyLDcgKzExMzIyLDcg
QEAgdm9pZCB0ZXN0Q2hlY2tTZWxlY3QoKQogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAg
ICB9KTsKICAgICAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAw
KSk7CiAKQEAgLTExMzgzLDcgKzExMzkzLDcgQEAgdm9pZCB0ZXN0Q2hlY2tTZWxlY3RDaGVja1Nl
bGVjdCgpCiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwogICAgIAotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtMTE0MTksNyAr
MTE0MjksNyBAQCB2b2lkIHRlc3RQb3dEb3VibGVCeUludGVnZXJMb29wKGRvdWJsZSB4CiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BS
SW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgYXV0byByZXN1bHQgPSBwb3dEb3VibGVJbnQzMihw
cm9jLCByb290LCBPcmlnaW4oKSwgeCwgeSk7CiAgICAgQmFzaWNCbG9jayogY29udGludWF0aW9u
ID0gcmVzdWx0LmZpcnN0OwotICAgIGNvbnRpbnVhdGlvbi0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0LnNlY29uZCk7CisgICAgY29udGludWF0
aW9uLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
LnNlY29uZCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4o
cHJvYywgeE9wZXJhbmQsIHlPcGVyYW5kKSwgYjNQb3coeE9wZXJhbmQsIHlPcGVyYW5kKSkpOwog
fQpAQCAtMTE0MjksNyArMTE0MzksNyBAQCB2b2lkIHRlc3RUcnVuY09ySGlnaCgpCiAgICAgUHJv
Y2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKIAot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwK
QEAgLTExNDQ3LDcgKzExNDU3LDcgQEAgdm9pZCB0ZXN0VHJ1bmNPckxvdygpCiAgICAgUHJvY2Vk
dXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKIAotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKQEAg
LTExNDY1LDcgKzExNDc1LDcgQEAgdm9pZCB0ZXN0Qml0QW5kT3JIaWdoKCkKICAgICBQcm9jZWR1
cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAg
LTExNDg0LDcgKzExNDk0LDcgQEAgdm9pZCB0ZXN0Qml0QW5kT3JMb3coKQogICAgIFByb2NlZHVy
ZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAt
MTE1MDcsMjAgKzExNTE3LDIwIEBAIHZvaWQgdGVzdEJyYW5jaDY0RXF1YWwoaW50NjRfdCBsZWZ0
LCBpbnQKIAogICAgIFZhbHVlKiBhcmcxID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFZhbHVlKiBh
cmcyID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjEpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNo
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBFcXVhbCwg
T3JpZ2luKCksIGFyZzEsIGFyZzIpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2Up
LCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAogICAgIGJvb2wgdHJ1ZVJlc3VsdCA9IHRy
dWU7Ci0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNl
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgTG9hZDhaLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8
Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZ0cnVlUmVzdWx0KSkpOwogCiAgICAgYm9v
bCBlbHNlUmVzdWx0ID0gZmFsc2U7Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8TWVtb3J5VmFs
dWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZDhaLCBPcmlnaW4oKSwKQEAgLTExNTM4LDIwICsx
MTU0OCwyMCBAQCB2b2lkIHRlc3RCcmFuY2g2NEVxdWFsSW1tKGludDY0X3QgbGVmdCwgCiAKICAg
ICBWYWx1ZSogYXJnMSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBWYWx1ZSogYXJnMiA9IHJvb3Qt
PmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgcmlnaHQpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBFcXVhbCwgT3JpZ2luKCksIGFyZzEsIGFyZzIpLAogICAgICAg
ICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsK
IAogICAgIGJvb2wgdHJ1ZVJlc3VsdCA9IHRydWU7Ci0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8
TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZDhaLCBPcmlnaW4oKSwKICAgICAg
ICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
ICZ0cnVlUmVzdWx0KSkpOwogCiAgICAgYm9vbCBlbHNlUmVzdWx0ID0gZmFsc2U7Ci0gICAgZWxz
ZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVs
c2VDYXNlLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZDha
LCBPcmlnaW4oKSwKQEAgLTExNTcxLDIwICsxMTU4MSwyMCBAQCB2b2lkIHRlc3RCcmFuY2g2NEVx
dWFsTWVtKGludDY0X3QgbGVmdCwgCiAgICAgICAgIHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCks
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiBhcmcyID0g
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjEpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBFcXVhbCwgT3JpZ2lu
KCksIGFyZzEsIGFyZzIpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVx
dWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAogICAgIGJvb2wgdHJ1ZVJlc3VsdCA9IHRydWU7Ci0g
ICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
TG9hZDhaLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3RQ
dHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZ0cnVlUmVzdWx0KSkpOwogCiAgICAgYm9vbCBlbHNl
UmVzdWx0ID0gZmFsc2U7Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAog
ICAgICAgICAgICAgcHJvYywgTG9hZDhaLCBPcmlnaW4oKSwKQEAgLTExNjA0LDIwICsxMTYxNCwy
MCBAQCB2b2lkIHRlc3RCcmFuY2g2NEVxdWFsTWVtSW1tKGludDY0X3QgbGVmCiAgICAgICAgIHBy
b2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BS
MCkpOwogICAgIFZhbHVlKiBhcmcyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCByaWdodCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gs
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEVxdWFsLCBP
cmlnaW4oKSwgYXJnMSwgYXJnMiksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSks
IEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCiAgICAgYm9vbCB0cnVlUmVzdWx0ID0gdHJ1
ZTsKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2Ut
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBw
cm9jLCBMb2FkOFosIE9yaWdpbigpLAogICAgICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxD
b25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJnRydWVSZXN1bHQpKSk7CiAKICAgICBib29s
IGVsc2VSZXN1bHQgPSBmYWxzZTsKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxNZW1vcnlWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkOFosIE9yaWdpbigpLApAQCAtMTE2NDEsNyArMTE2
NTEsNyBAQCB2b2lkIHRlc3RTdG9yZThMb2FkOFooaW50MzJfdCB2YWx1ZSkKICAgICAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIHB0cik7CiAKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlW
YWx1ZT4ocHJvYywgTG9hZDhaLCBPcmlnaW4oKSwgcHRyKSk7CiAKQEAgLTExNjYzLDcgKzExNjcz
LDcgQEAgdm9pZCB0ZXN0U3RvcmUxNkxvYWQxNlooaW50MzJfdCB2YWx1ZSkKICAgICAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIHB0cik7CiAKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlW
YWx1ZT4ocHJvYywgTG9hZDE2WiwgT3JpZ2luKCksIHB0cikpOwogCkBAIC0xMTY3NSw3ICsxMTY4
NSw3IEBAIHZvaWQgdGVzdFNTaHJTaGwzMihpbnQzMl90IHZhbHVlLCBpbnQzMl8KICAgICBQcm9j
ZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogCi0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU1NociwgT3JpZ2luKCksCkBA
IC0xMTY5Nyw3ICsxMTcwNyw3IEBAIHZvaWQgdGVzdFNTaHJTaGw2NChpbnQ2NF90IHZhbHVlLCBp
bnQzMl8KICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU1No
ciwgT3JpZ2luKCksCkBAIC0xMTcyNSw4ICsxMTczNSw4IEBAIHZvaWQgdGVzdFRyaXZpYWxJbmZp
bml0ZUxvb3AoKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogbG9vcCA9IHByb2MuYWRkQmxvY2soKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwg
RnJlcXVlbnRlZEJsb2NrKGxvb3ApKTsKLSAgICBsb29wLT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3ApKTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRC
bG9jayhsb29wKSk7CisgICAgbG9vcC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAs
IE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sobG9vcCkpOwogCiAgICAgY29tcGlsZShwcm9jKTsK
IH0KQEAgLTExNzQwLDE1ICsxMTc1MCwxNSBAQCB2b2lkIHRlc3RGb2xkUGF0aEVxdWFsKCkKIAog
ICAgIFZhbHVlKiBhcmcgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIEJyYW5jaCwgT3JpZ2luKCksIGFyZywgRnJlcXVlbnRlZEJsb2NrKHRoZW5CbG9jayks
IEZyZXF1ZW50ZWRCbG9jayhlbHNlQmxvY2spKTsKIAotICAgIHRoZW5CbG9jay0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkJsb2NrLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5CbG9jay0+YXBwZW5k
TmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEVxdWFsLCBPcmlnaW4oKSwgYXJnLCB0aGVu
QmxvY2stPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpKTsKIAot
ICAgIGVsc2VCbG9jay0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUJsb2NrLT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIGVsc2VCbG9jay0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEVx
dWFsLCBPcmlnaW4oKSwgYXJnLCBlbHNlQmxvY2stPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgMCkpKTsKQEAgLTExNzY2LDcgKzExNzc2LDcgQEAgdm9pZCB0ZXN0TFNo
aWZ0U2VsZjMyKCkKICAgICBWYWx1ZSogYXJnID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAg
ICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTaGwsIE9yaWdpbigpLCBhcmcsIGFyZykpOwogCkBA
IC0xMTc4OSw3ICsxMTc5OSw3IEBAIHZvaWQgdGVzdFJTaGlmdFNlbGYzMigpCiAgICAgVmFsdWUq
IGFyZyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgIHByb2MsIFRydW5jLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgU1NociwgT3JpZ2luKCksIGFyZywgYXJnKSk7CiAKQEAgLTExODEyLDcgKzExODIyLDcgQEAg
dm9pZCB0ZXN0VVJTaGlmdFNlbGYzMigpCiAgICAgVmFsdWUqIGFyZyA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCiAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjApKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgWlNociwgT3JpZ2luKCksIGFy
ZywgYXJnKSk7CiAKQEAgLTExODMzLDcgKzExODQzLDcgQEAgdm9pZCB0ZXN0TFNoaWZ0U2VsZjY0
KCkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwogICAgIFZhbHVlKiBhcmcgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2hsLCBPcmlnaW4oKSwgYXJnLCByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwgYXJnKSkpOwpAQCAtMTE4NTcsNyAr
MTE4NjcsNyBAQCB2b2lkIHRlc3RSU2hpZnRTZWxmNjQoKQogICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZyA9
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBTU2hyLCBPcmlnaW4oKSwgYXJnLCByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5j
LCBPcmlnaW4oKSwgYXJnKSkpOwpAQCAtMTE4ODEsNyArMTE4OTEsNyBAQCB2b2lkIHRlc3RVUlNo
aWZ0U2VsZjY0KCkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmcgPSByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgWlNociwgT3JpZ2luKCksIGFyZywg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksIGFyZykpKTsKQEAg
LTExOTE3LDcgKzExOTI3LDcgQEAgdm9pZCB0ZXN0UGF0Y2hwb2ludERvdWJsZVJlZ3MoKQogICAg
ICAgICAgICAgbnVtQ2FsbHMrKzsKICAgICAgICAgfSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hw
b2ludCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIENIRUNLKG51bUNh
bGxzID09IDEpOwpAQCAtMTE5NTAsNyArMTE5NjAsNyBAQCB2b2lkIHRlc3RTcGlsbERlZlNtYWxs
ZXJUaGFuVXNlKCkKIAogICAgIC8vIE9uIHg4NiwgU3ViIGFkbWl0IGFuIGFkZHJlc3MgZm9yIGFu
eSBvcGVyYW5kLiBJZiBpdCB1c2VzIHRoZSBzdGFjaywgdGhlIHRvcCBiaXRzIG11c3QgYmUgemVy
by4KICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIs
IE9yaWdpbigpLCBmb3JjZVNwaWxsLCBhcmc2NCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAg
IGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgQ0hFQ0soaW52b2tlPGludDY0X3Q+KCpj
b2RlLCAweGZmZmZmZmZmMDAwMDAwMDApID09IDApOwpAQCAtMTE5NzAsNyArMTE5ODAsNyBAQCB2
b2lkIHRlc3RTcGlsbFVzZUxhcmdlclRoYW5EZWYoKQogCiAgICAgVmFsdWUqIGNvbmRpdGlvbiA9
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIwKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigp
LApAQCAtMTE5ODAsMTAgKzExOTkwLDEwIEBAIHZvaWQgdGVzdFNwaWxsVXNlTGFyZ2VyVGhhbkRl
ZigpCiAgICAgVmFsdWUqIHRydW5jYXRlZCA9IHRoZW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIFpFeHQzMiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIFRydW5jLCBPcmlnaW4oKSwgYXJndW1lbnQpKTsKICAgICBVcHNpbG9uVmFsdWUqIHRo
ZW5SZXN1bHQgPSB0aGVuQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIHRydW5jYXRlZCk7Ci0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOworICAgIHRoZW5DYXNl
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRC
bG9jayh0YWlsKSk7CiAKICAgICBVcHNpbG9uVmFsdWUqIGVsc2VSZXN1bHQgPSBlbHNlQ2FzZS0+
YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFyZ3VtZW50KTsKLSAgICBl
bHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZy
ZXF1ZW50ZWRCbG9jayh0YWlsKSk7CisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKIAogICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCAxMDA7ICsraSkgewogICAgICAgICBQYXRjaHBvaW50VmFs
dWUqIHByZXZlbnRUYWlsRHVwbGljYXRpb24gPSB0YWlsLT5hcHBlbmROZXc8UGF0Y2hwb2ludFZh
bHVlPihwcm9jLCBWb2lkLCBPcmlnaW4oKSk7CkBAIC0xMjAwNCw3ICsxMjAxNCw3IEBAIHZvaWQg
dGVzdFNwaWxsVXNlTGFyZ2VyVGhhbkRlZigpCiAgICAgVmFsdWUqIHBoaSA9IHRhaWwtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBJbnQ2NCwgT3JpZ2luKCkpOwogICAgIHRoZW5SZXN1bHQt
PnNldFBoaShwaGkpOwogICAgIGVsc2VSZXN1bHQtPnNldFBoaShwaGkpOwotICAgIHRhaWwtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBoaSk7CisgICAg
dGFpbC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBoaSk7
CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIENIRUNLKGludm9rZTx1aW50
NjRfdD4oKmNvZGUsIDEsIDB4ZmZmZmZmZmYwMDAwMDAwMCkgPT0gMCk7CkBAIC0xMjA4NiwxMiAr
MTIwOTYsMjQ0IEBAIHZvaWQgdGVzdExhdGVSZWdpc3RlcigpCiAgICAgICAgICAgICBqaXQubm9w
KCk7CiAgICAgICAgICAgICBqaXQubm9wKCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZFBhdGNocG9p
bnQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBzZWNvbmRQYXRjaHBvaW50KTsKICAgICAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHBy
b2MpOwogICAgIENIRUNLKGludm9rZTx1aW50NjRfdD4oKmNvZGUpID09IHJlc3VsdCk7CiB9CiAK
K3ZvaWQgdGhyZWFkZWRJbnRlcnByZXRlclByaW50KFZlY3RvcjxpbnRwdHJfdD4qIHN0cmVhbSwg
aW50cHRyX3QgdmFsdWUpCit7CisgICAgc3RyZWFtLT5hcHBlbmQodmFsdWUpOworfQorCit2b2lk
IHRlc3RUaHJlYWRlZEludGVycHJldGVyKCkKK3sKKyAgICAvLyBUaGlzIGNyZWF0ZXMgYSBwb29y
IG1hbidzIHRocmVhZGVkIGludGVycHJldGVyIHVzaW5nIFBvbHlKdW1wIGFuZCBzZWVzIGlmIGl0
IHdvcmtzLiBOb3RlCisgICAgLy8gdGhhdCBQb2x5SnVtcCBpcyBub3QgbGlrZSBpbmRpcmVjdCBi
cmFuY2hlcyBpbiBMTFZNLCBzbyB5b3UgY2FuJ3QgYWN0dWFsbHkgdXNlIGl0IHRvCisgICAgLy8g
aW1wbGVtZW50IGEgcHJvcGVyIHRocmVhZGVkIGludGVycHJldGVyLiBUaGlzIGNoZWF0czogdGhl
IGRpc3BhdGNoIGluc3RydWN0aW9uIGlzIGF0IHRoZSB0b3AKKyAgICAvLyBvZiB0aGUgbG9vcC4g
VGhpcyBhbHNvIHRlc3RzIFZhcmlhYmxlVmFsdWUuCisgICAgCisgICAgUHJvY2VkdXJlIHByb2M7
CisgICAgCisgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBCYXNp
Y0Jsb2NrKiBkaXNwYXRjaCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBCYXNpY0Jsb2NrKiBhZGRU
b0RhdGFQb2ludGVyID0gcHJvYy5hZGRCbG9jaygpOworICAgIEJhc2ljQmxvY2sqIGFkZFRvQ29k
ZVBvaW50ZXIgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayogYWRkVG9Db2RlUG9p
bnRlclRha2VuID0gcHJvYy5hZGRCbG9jaygpOworICAgIEJhc2ljQmxvY2sqIGFkZFRvQ29kZVBv
aW50ZXJOb3RUYWtlbiA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBCYXNpY0Jsb2NrKiBhZGRUb0Rh
dGEgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayogcHJpbnQgPSBwcm9jLmFkZEJs
b2NrKCk7CisgICAgQmFzaWNCbG9jayogc3RvcCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICAKKyAg
ICBWYXJpYWJsZSogZGF0YVBvaW50ZXIgPSBwcm9jLmFkZFZhcmlhYmxlKHBvaW50ZXJUeXBlKCkp
OworICAgIFZhcmlhYmxlKiBjb2RlUG9pbnRlciA9IHByb2MuYWRkVmFyaWFibGUocG9pbnRlclR5
cGUoKSk7CisgICAgCisgICAgcm9vdC0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAgICAg
ICBwcm9jLCBTZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRlciwKKyAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApKTsKKyAgICByb290LT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHByb2Ms
IFNldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyLAorICAgICAgICByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSkpOwor
ICAgIFZhbHVlKiBjb250ZXh0ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpOworICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRpc3Bh
dGNoKSk7CisKKyAgICBWYWx1ZSogY29kZVBvaW50ZXJWYWx1ZSA9CisgICAgICAgIGRpc3BhdGNo
LT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGNvZGVQ
b2ludGVyKTsKKyAgICBQYXRjaHBvaW50VmFsdWUqIHBvbHlKdW1wID0gZGlzcGF0Y2gtPmFwcGVu
ZE5ldzxQYXRjaHBvaW50VmFsdWUocHJvYywgVm9pZCwgT3JpZ2luKCkpOworICAgIHBvbHlKdW1w
LT5lZmZlY3RzLnRlcm1pbmFsID0gdHJ1ZTsKKyAgICBwb2x5SnVtcC0+YXBwZW5kU29tZVJlZ2lz
dGVyKGNvZGVQb2ludGVyVmFsdWUpOworICAgIHBvbHlKdW1wLT5hcHBlbmRTdWNjZXNzb3IoRnJl
cXVlbnRlZEJsb2NrKGFkZFRvRGF0YVBvaW50ZXIpKTsKKyAgICBwb2x5SnVtcC0+YXBwZW5kU3Vj
Y2Vzc29yKEZyZXF1ZW50ZWRCbG9jayhhZGRUb0NvZGVQb2ludGVyKSk7CisgICAgcG9seUp1bXAt
PmFwcGVuZFN1Y2Nlc3NvcihGcmVxdWVudGVkQmxvY2soYWRkVG9EYXRhKSk7CisgICAgcG9seUp1
bXAtPmFwcGVuZFN1Y2Nlc3NvcihGcmVxdWVudGVkQmxvY2socHJpbnQpKTsKKyAgICBwb2x5SnVt
cC0+YXBwZW5kU3VjY2Vzc29yKEZyZXF1ZW50ZWRCbG9jayhzdG9wKSk7CisgICAgCisgICAgLy8g
T3VyICJvcGNvZGVzIi4gVGhleSB3aWxsIGhhdmUgbWVhbmluZyBvbmNlIHdlIGNvbXBpbGUuCisg
ICAgaW50cHRyX3QgQWRkRFAgPSAwOworICAgIGludHB0cl90IEFkZENQID0gMDsKKyAgICBpbnRw
dHJfdCBBZGQgPSAwOworICAgIGludHB0cl90IFByaW50ID0gMDsKKyAgICBpbnRwdHJfdCBTdG9w
ID0gMDsKKyAgICBwb2x5SnVtcC0+c2V0R2VuZXJhdG9yKAorICAgICAgICBbJl0gKENDYWxsSGVs
cGVycyYgaml0LCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmIHBhcmFtcykgeworICAg
ICAgICAgICAgaml0Lmp1bXAoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHBhcmFtc1swXS5ncHIoKSkp
OworICAgICAgICAgICAgCisgICAgICAgICAgICBWZWN0b3I8Qm94PENDYWxsSGVscGVyczo6TGFi
ZWw+PiBsYWJlbHMgPSBwYXJhbXMuc3VjY2Vzc29yTGFiZWxzKCk7CisgICAgICAgICAgICAKKyAg
ICAgICAgICAgIGppdC5hZGRMaW5rVGFzaygKKyAgICAgICAgICAgICAgICBbJl0gKExpbmtCdWZm
ZXImIGxpbmtCdWZmZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgYXV0byBnZXQgPSBbJl0gKHNp
emVfdCBpbmRleCkgLT4gaW50cHRyX3QgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGJpdHdpc2VfY2FzdDxpbnRwdHJfdD4oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlu
a0J1ZmZlci5sb2NhdGlvbk9mKCpsYWJlbHNbaW5kZXhdKS5leGVjdXRhYmxlQWRkcmVzcygpKTsK
KyAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAg
ICAgICAgICAgIEFkZERQID0gZ2V0KDApOworICAgICAgICAgICAgICAgICAgICBBZGRDUCA9IGdl
dCgxKTsKKyAgICAgICAgICAgICAgICAgICAgQWRkID0gZ2V0KDIpOworICAgICAgICAgICAgICAg
ICAgICBQcmludCA9IGdldCgzKTsKKyAgICAgICAgICAgICAgICAgICAgU3RvcCA9IGdldCg0KTsK
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgCisgICAgLy8gQWRkRFAgPG9w
ZXJhbmQ+OiBhZGRzIDxvcGVyYW5kPiB0byBEUC4KKyAgICBjb2RlUG9pbnRlclZhbHVlID0KKyAg
ICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHByb2MsIEIz
OjpHZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlcik7CisgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBw
ZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAgICAgICBwcm9jLCBTZXQsIE9yaWdpbigpLCBkYXRh
UG9pbnRlciwKKyAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhbHVlPigKKyAg
ICAgICAgICAgIHByb2MsIEIzOjpBZGQsIE9yaWdpbigpLAorICAgICAgICAgICAgYWRkVG9EYXRh
UG9pbnRlci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigp
LCBkYXRhUG9pbnRlciksCisgICAgICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8
VmFsdWU+KAorICAgICAgICAgICAgICAgIHByb2MsIE11bCwgT3JpZ2luKCksCisgICAgICAgICAg
ICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAg
ICAgICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCksIGNvZGVQb2lu
dGVyVmFsdWUsIHNpemVvZihpbnRwdHJfdCkpLAorICAgICAgICAgICAgICAgIGFkZFRvRGF0YVBv
aW50ZXItPmFwcGVuZEludENvbnN0YW50KAorICAgICAgICAgICAgICAgICAgICBwcm9jLCBPcmln
aW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6ZW9mKGludHB0cl90KSkpKSk7CisgICAgYWRkVG9EYXRh
UG9pbnRlci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAgICAgICBwcm9jLCBTZXQsIE9y
aWdpbigpLCBjb2RlUG9pbnRlciwKKyAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3
PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEIzOjpBZGQsIE9yaWdpbigpLCBjb2RlUG9pbnRl
clZhbHVlLAorICAgICAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kSW50Q29uc3RhbnQo
CisgICAgICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBlKCksIHNpemVvZihp
bnRwdHJfdCkgKiAyKSkpOworICAgIGFkZFRvRGF0YVBvaW50ZXItPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRpc3BhdGNoKSk7Cisg
ICAgCisgICAgLy8gQWRkQ1AgPG9wZXJhbmQ+OiBhZGRzIDxvcGVyYW5kPiB0byBDUCBpZiB0aGUg
Y3VycmVudCB2YWx1ZSBhdCBEUCBpcyBub24temVybywgb3RoZXJ3aXNlCisgICAgLy8gZmFsbHMg
dGhyb3VnaCBub3JtYWxseS4KKyAgICBjb2RlUG9pbnRlclZhbHVlID0KKyAgICAgICAgYWRkVG9D
b2RlUG9pbnRlci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHByb2MsIEIzOjpHZXQsIE9yaWdp
bigpLCBjb2RlUG9pbnRlcik7CisgICAgVmFsdWUqIGRhdGFQb2ludGVyVmFsdWUgPQorICAgICAg
ICBhZGRUb0NvZGVQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6Okdl
dCwgT3JpZ2luKCksIGRhdGFQb2ludGVyKTsKKyAgICBhZGRUb0NvZGVQb2ludGVyLT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCisgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCisgICAgICAg
IGFkZFRvQ29kZVBvaW50ZXItPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgICAgICBw
cm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwgZGF0YVBvaW50ZXJWYWx1ZSksCisg
ICAgICAgIEZyZXF1ZW50ZWRCbG9jayhhZGRUb0NvZGVQb2ludGVyVGFrZW4pLCBGcmVxdWVudGVk
QmxvY2soYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuKSk7CisgICAgYWRkVG9Db2RlUG9pbnRlclRh
a2VuLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2lu
KCksIGNvZGVQb2ludGVyLAorICAgICAgICBhZGRUb0NvZGVQb2ludGVyVGFrZW4tPmFwcGVuZE5l
dzxWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBCMzo6QWRkLCBPcmlnaW4oKSwgY29kZVBvaW50
ZXJWYWx1ZSwKKyAgICAgICAgICAgIGFkZFRvQ29kZVBvaW50ZXJUYWtlbi0+YXBwZW5kTmV3PFZh
bHVlPigKKyAgICAgICAgICAgICAgICBwcm9jLCBNdWwsIE9yaWdpbigpLAorICAgICAgICAgICAg
ICAgIGFkZFRvQ29kZVBvaW50ZXJUYWtlbi0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAg
ICAgICAgICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCksIGNvZGVQ
b2ludGVyVmFsdWUsIHNpemVvZihpbnRwdHJfdCkpLAorICAgICAgICAgICAgICAgIGFkZFRvQ29k
ZVBvaW50ZXJUYWtlbi0+YXBwZW5kSW50Q29uc3RhbnQoCisgICAgICAgICAgICAgICAgICAgIHBy
b2MsIE9yaWdpbigpLCBwb2ludGVyVHlwZSgpLCBzaXplb2YoaW50cHRyX3QpKSkpKTsKKyAgICBh
ZGRUb0NvZGVQb2ludGVyVGFrZW4tPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBP
cmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRpc3BhdGNoKSk7CisgICAgYWRkVG9Db2RlUG9pbnRl
ck5vdFRha2VuLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwg
T3JpZ2luKCksIGNvZGVQb2ludGVyLAorICAgICAgICBhZGRUb0NvZGVQb2ludGVyTm90VGFrZW4t
PmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBCMzo6QWRkLCBPcmlnaW4oKSwg
Y29kZVBvaW50ZXJWYWx1ZSwKKyAgICAgICAgICAgIGFkZFRvQ29kZVBvaW50ZXJOb3RUYWtlbi0+
YXBwZW5kSW50Q29uc3RhbnQoCisgICAgICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksIHBvaW50
ZXJUeXBlKCksIHNpemVvZihpbnRwdHJfdCkgKiAyKSkpOworICAgIGFkZFRvQ29kZVBvaW50ZXJO
b3RUYWtlbi0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAorICAgICAgICBwcm9jLCBKdW1wLCBPcmln
aW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRpc3BhdGNoKSk7CisKKyAgICAvLyBBZGQgPG9wZXJhbmQ+
OiBhZGRzIDxvcGVyYW5kPiB0byB0aGUgc2xvdCBwb2ludGVkIHRvIGJ5IERQLgorICAgIGNvZGVQ
b2ludGVyVmFsdWUgPSBhZGRUb0RhdGEtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPihwcm9jLCBC
Mzo6R2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIpOworICAgIGRhdGFQb2ludGVyVmFsdWUgPSBh
ZGRUb0RhdGEtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPihwcm9jLCBCMzo6R2V0LCBPcmlnaW4o
KSwgZGF0YVBvaW50ZXIpOworICAgIGFkZFRvRGF0YS0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigK
KyAgICAgICAgcHJvYywgU3RvcmUsIE9yaWdpbigpLAorICAgICAgICBhZGRUb0RhdGEtPmFwcGVu
ZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBCMzo6QWRkLCBPcmlnaW4oKSwKKyAgICAg
ICAgICAgIGFkZFRvRGF0YS0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAgICAg
ICBwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwgZGF0YVBvaW50ZXJWYWx1ZSks
CisgICAgICAgICAgICBhZGRUb0RhdGEtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAg
ICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCksIGNvZGVQb2ludGVy
VmFsdWUsIHNpemVvZihpbnRwdHJfdCkpKSwKKyAgICAgICAgZGF0YVBvaW50ZXJWYWx1ZSk7Cisg
ICAgYWRkVG9EYXRhLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNl
dCwgT3JpZ2luKCksIGNvZGVQb2ludGVyLAorICAgICAgICBhZGRUb0RhdGEtPmFwcGVuZE5ldzxW
YWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBCMzo6QWRkLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJW
YWx1ZSwKKyAgICAgICAgICAgIGFkZFRvRGF0YS0+YXBwZW5kSW50Q29uc3RhbnQocHJvYywgT3Jp
Z2luKCksIHBvaW50ZXJUeXBlKCksIHNpemVvZihpbnRwdHJfdCkgKiAyKSkpOworICAgIGFkZFRv
RGF0YS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVu
dGVkQmxvY2soZGlzcGF0Y2gpKTsKKyAgICAKKyAgICAvLyBQcmludDogInByaW50cyIgdGhlIHZh
bHVlIHBvaW50ZWQgdG8gYnkgRFAuIFdoYXQgdGhpcyBhY3R1YWxseSBtZWFucyBpcyB0aGF0IHRo
ZSB2YWx1ZSBpcworICAgIC8vIGFwcGVuZGVkIHRvIHRoZSBzdHJlYW0gdmVjdG9yIGJ5IHRoZSB0
aHJlYWRlZEludGVycHJldGVyUHJpbnQgZnVuY3Rpb24uCisgICAgY29kZVBvaW50ZXJWYWx1ZSA9
IHByaW50LT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCks
IGNvZGVQb2ludGVyKTsKKyAgICBkYXRhUG9pbnRlclZhbHVlID0gcHJpbnQtPmFwcGVuZE5ldzxW
YXJpYWJsZVZhbHVlPihwcm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwgZGF0YVBvaW50ZXIpOworICAg
IHByaW50LT5hcHBlbmROZXc8Q0NhbGxWYWx1ZT4oCisgICAgICAgIHByb2MsIFZvaWQsIE9yaWdp
bigpLAorICAgICAgICBwcmludC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KAorICAgICAgICAg
ICAgcHJvYywgT3JpZ2luKCksIGJpdHdpc2VfY2FzdDx2b2lkKj4odGhyZWFkZWRJbnRlcnByZXRl
clByaW50KSksCisgICAgICAgIGNvbnRleHQsCisgICAgICAgIHByaW50LT5hcHBlbmROZXc8TWVt
b3J5VmFsdWU+KHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLCBkYXRhUG9pbnRl
clZhbHVlKSk7CisgICAgcHJpbnQtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPigKKyAgICAgICAg
cHJvYywgU2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIsCisgICAgICAgIHByaW50LT5hcHBlbmRO
ZXc8VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgQjM6OkFkZCwgT3JpZ2luKCksIGNvZGVQb2lu
dGVyVmFsdWUsCisgICAgICAgICAgICBwcmludC0+YXBwZW5kSW50Q29uc3RhbnQocHJvYywgT3Jp
Z2luKCksIHBvaW50ZXJUeXBlKCksIHNpemVvZihpbnRwdHJfdCkpKSk7CisgICAgcHJpbnQtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2Nr
KGRpc3BhdGNoKSk7CisgICAgCisgICAgLy8gU3RvcDogcmV0dXJucy4KKyAgICBzdG9wLT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCisgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAg
ICAgIHN0b3AtPmFwcGVuZEludENvbnN0YW50KHByb2MsIE9yaWdpbigpLCBwb2ludGVyVHlwZSgp
LCAwKSk7CisgICAgCisgICAgYXV0byBpbnRlcnByZXRlciA9IGNvbXBpbGUocHJvYyk7CisgICAg
CisgICAgQ0hFQ0soQWRkRFApOworICAgIENIRUNLKEFkZENQKTsKKyAgICBDSEVDSyhBZGQpOwor
ICAgIENIRUNLKFByaW50KTsKKyAgICBDSEVDSyhTdG9wKTsKKyAgICAKKyAgICBWZWN0b3I8aW50
cHRyX3Q+IGRhdGE7CisgICAgVmVjdG9yPGludHB0cl90PiBjb2RlOworICAgIFZlY3RvcjxpbnRw
dHJfdD4gc3RyZWFtOworICAgIAorICAgIGRhdGEuYXBwZW5kKDEpOworICAgIGRhdGEuYXBwZW5k
KDApOworICAgIAorICAgIGlmIChzaG91bGRCZVZlcmJvc2UoKSkKKyAgICAgICAgZGF0YUxvZygi
ZGF0YSA9ICIsIGxpc3REdW1wKGRhdGEpLCAiXG4iKTsKKyAgICAKKyAgICAvLyBXZSdsbCB3cml0
ZSBhIHByb2dyYW0gdGhhdCBwcmludHMgdGhlIG51bWJlcnMgMS4uMTAwLgorICAgIC8vIFdlIGV4
cGVjdCBEUCB0byBwb2ludCBhdCAjMC4KKyAgICBjb2RlLmFwcGVuZChBZGRDUCk7CisgICAgY29k
ZS5hcHBlbmQoNik7IC8vIGdvIHRvIGxvb3AgYm9keQorICAgIAorICAgIC8vIExvb3AgcmUtZW50
cnk6CisgICAgLy8gV2UgZXhwZWN0IERQIHRvIHBvaW50IGF0ICMxIGFuZCBmb3IgIzEgdG8gYmUg
b2Zmc2V0IGJ5IC0xMDAuCisgICAgY29kZS5hcHBlbmQoQWRkKTsKKyAgICBjb2RlLmFwcGVuZCgx
MDApOworICAgIAorICAgIGNvZGUuYXBwZW5kKEFkZERQKTsKKyAgICBjb2RlLmFwcGVuZCgtMSk7
CisgICAgCisgICAgLy8gTG9vcCBoZWFkZXI6CisgICAgLy8gV2UgZXhwZWN0IERQIHRvIHBvaW50
IGF0ICMwLgorICAgIGNvZGUuYXBwZW5kKEFkZERQKTsKKyAgICBjb2RlLmFwcGVuZCgxKTsKKyAg
ICAKKyAgICBjb2RlLmFwcGVuZChBZGQpOworICAgIGNvZGUuYXBwZW5kKDEpOworICAgIAorICAg
IGNvZGUuYXBwZW5kKFByaW50KTsKKyAgICAKKyAgICBjb2RlLmFwcGVuZChBZGQpOworICAgIGNv
ZGUuYXBwZW5kKC0xMDApOworICAgIAorICAgIC8vIFdlIHdhbnQgdG8gc3RvcCBpZiBpdCdzIHpl
cm8gYW5kIGNvbnRpbnVlIGlmIGl0J3Mgbm9uLXplcm8uIEFkZENQIHRha2VzIHRoZSBicmFuY2gg
aWYgaXQncworICAgIC8vIG5vbi16ZXJvLgorICAgIGNvZGUuYXBwZW5kKEFkZENQKTsKKyAgICBj
b2RlLmFwcGVuZCgtMTEpOyAvLyBnbyB0byBsb29wIHJlLWVudHJ5LgorICAgIAorICAgIGNvZGUu
YXBwZW5kKFN0b3ApOworICAgIAorICAgIGlmIChzaG91bGRCZVZlcmJvc2UoKSkKKyAgICAgICAg
ZGF0YUxvZygiY29kZSA9ICIsIGxpc3REdW1wKGNvZGUpLCAiXG4iKTsKKyAgICAKKyAgICBDSEVD
SyghaW52b2tlPGludHB0cl90PigqaW50ZXJwcmV0ZXIsIGRhdGEuZGF0YSgpLCBjb2RlLmRhdGEo
KSwgJnN0cmVhbSkpOworICAgIAorICAgIENIRUNLKHN0cmVhbS5zaXplKCkgPT0gMTAwKTsKKyAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgMTAwOyArK2kpCisgICAgICAgIENIRUNLKHN0cmVh
bVtpXSA9PSBpICsgMSk7CisgICAgCisgICAgaWYgKHNob3VsZEJlVmVyYm9zZSgpKQorICAgICAg
ICBkYXRhTG9nKCJzdHJlYW0gPSAiLCBsaXN0RHVtcChzdHJlYW0pLCAiXG4iKTsKK30KKwogdm9p
ZCB0ZXN0UmVkdWNlU3RyZW5ndGhDaGVja0JvdHRvbVVzZUluQW5vdGhlckJsb2NrKCkKIHsKICAg
ICBQcm9jZWR1cmUgcHJvYzsKQEAgLTEyMTEwLDcgKzEyMzUyLDcgQEAgdm9pZCB0ZXN0UmVkdWNl
U3RyZW5ndGhDaGVja0JvdHRvbVVzZUluQQogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAg
ICB9KTsKICAgICBWYWx1ZSogYXJnID0gb25lLT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgb25lLT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHR3
bykpOworICAgIG9uZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigp
LCBGcmVxdWVudGVkQmxvY2sodHdvKSk7CiAgICAgCiAgICAgY2hlY2sgPSB0d28tPmFwcGVuZE5l
dzxDaGVja1ZhbHVlPigKICAgICAgICAgcHJvYywgQ2hlY2tBZGQsIE9yaWdpbigpLCBhcmcsCkBA
IC0xMjExOSw3ICsxMjM2MSw3IEBAIHZvaWQgdGVzdFJlZHVjZVN0cmVuZ3RoQ2hlY2tCb3R0b21V
c2VJbkEKICAgICAgICAgWyZdIChDQ2FsbEhlbHBlcnMmLCBjb25zdCBTdGFja21hcEdlbmVyYXRp
b25QYXJhbXMmKSB7CiAgICAgICAgICAgICBDSEVDSyghIlNob3VsZCBub3QgZXhlY3V0ZSIpOwog
ICAgICAgICB9KTsKLSAgICB0d28tPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIGNoZWNrKTsKKyAgICB0d28tPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBjaGVjayk7CiAgICAgCiAgICAgcHJvYy5yZXNldFJlYWNoYWJp
bGl0eSgpOwogICAgIHJlZHVjZVN0cmVuZ3RoKHByb2MpOwpAQCAtMTIxMzQsMTEgKzEyMzc2LDEx
IEBAIHZvaWQgdGVzdFJlc2V0UmVhY2hhYmlsaXR5RGFuZ2xpbmdSZWZlcmUKICAgICAKICAgICBV
cHNpbG9uVmFsdWUqIHVwc2lsb24gPSBvbmUtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KAogICAg
ICAgICBwcm9jLCBPcmlnaW4oKSwgb25lLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgNDIpKTsKLSAgICBvbmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIE9v
cHMsIE9yaWdpbigpKTsKKyAgICBvbmUtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBPb3Bz
LCBPcmlnaW4oKSk7CiAgICAgCiAgICAgVmFsdWUqIHBoaSA9IHR3by0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBQaGksIEludDMyLCBPcmlnaW4oKSk7CiAgICAgdXBzaWxvbi0+c2V0UGhpKHBoaSk7
Ci0gICAgdHdvLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBPb3BzLCBPcmlnaW4oKSk7
CisgICAgdHdvLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgT29wcywgT3JpZ2luKCkpOwog
ICAgIAogICAgIHByb2MucmVzZXRSZWFjaGFiaWxpdHkoKTsKICAgICB2YWxpZGF0ZShwcm9jKTsK
QEAgLTEzNTQ3LDggKzEzNzg5LDEzIEBAIHZvaWQgcnVuKGNvbnN0IGNoYXIqIGZpbHRlcikKICAg
ICBSVU4odGVzdFNwaWxsRGVmU21hbGxlclRoYW5Vc2UoKSk7CiAgICAgUlVOKHRlc3RTcGlsbFVz
ZUxhcmdlclRoYW5EZWYoKSk7CiAgICAgUlVOKHRlc3RMYXRlUmVnaXN0ZXIoKSk7Cis8PDw8PDw8
IC5taW5lCisgICAgCisgICAgUlVOKHRlc3RUaHJlYWRlZEludGVycHJldGVyKCkpOworPT09PT09
PQogICAgIFJVTih0ZXN0UmVkdWNlU3RyZW5ndGhDaGVja0JvdHRvbVVzZUluQW5vdGhlckJsb2Nr
KCkpOwogICAgIFJVTih0ZXN0UmVzZXRSZWFjaGFiaWxpdHlEYW5nbGluZ1JlZmVyZW5jZSgpKTsK
Kz4+Pj4+Pj4gLnIyMDI4MDkKIAogICAgIGlmICh0YXNrcy5pc0VtcHR5KCkpCiAgICAgICAgIHVz
YWdlKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5jcHAJKHJl
dmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkFpckNDYWxs
U3BlY2lhbC5oIgogI2luY2x1ZGUgIkIzQmFzaWNCbG9ja1V0aWxzLmgiCisjaW5jbHVkZSAiQjNQ
cm9jZWR1cmUuaCIKICNpbmNsdWRlICJCM1N0YWNrU2xvdC5oIgogCiBuYW1lc3BhY2UgSlNDIHsg
bmFtZXNwYWNlIEIzIHsgbmFtZXNwYWNlIEFpciB7CkBAIC0xMzUsNiArMTM2LDExIEBAIHZvaWQg
Q29kZTo6YWRkRmFzdFRtcChUbXAgdG1wKQogICAgIG1fZmFzdFRtcHMuYWRkKHRtcCk7CiB9CiAK
K3ZvaWQqIENvZGU6OmFkZERhdGFTZWN0aW9uKHNpemVfdCBzaXplKQoreworICAgIHJldHVybiBt
X3Byb2MuYWRkRGF0YVNlY3Rpb24oc2l6ZSk7Cit9CisKIHVuc2lnbmVkIENvZGU6OmpzSGFzaCgp
IGNvbnN0CiB7CiAgICAgdW5zaWduZWQgcmVzdWx0ID0gMDsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvQWlyQ29kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvQWlyQ29kZS5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvYWlyL0FpckNvZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBA
QAogI2luY2x1ZGUgIkFpclNwZWNpYWwuaCIKICNpbmNsdWRlICJBaXJTdGFja1Nsb3QuaCIKICNp
bmNsdWRlICJBaXJUbXAuaCIKKyNpbmNsdWRlICJCM0luZGV4TWFwLmgiCiAjaW5jbHVkZSAiQjNT
cGFyc2VDb2xsZWN0aW9uLmgiCiAjaW5jbHVkZSAiUmVnaXN0ZXJBdE9mZnNldExpc3QuaCIKICNp
bmNsdWRlICJTdGFja0FsaWdubWVudC5oIgpAQCAtMjAzLDYgKzIwNCw4IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGFkZEZhc3RUbXAoVG1wKTsKICAgICBib29sIGlzRmFzdFRtcChUbXAgdG1wKSBjb25z
dCB7IHJldHVybiBtX2Zhc3RUbXBzLmNvbnRhaW5zKHRtcCk7IH0KICAgICAKKyAgICB2b2lkKiBh
ZGREYXRhU2VjdGlvbihzaXplX3QpOworICAgIAogICAgIC8vIFRoZSBuYW1lIGhhcyB0byBiZSBh
IHN0cmluZyBsaXRlcmFsLCBzaW5jZSB3ZSBkb24ndCBkbyBhbnkgbWVtb3J5IG1hbmFnZW1lbnQg
Zm9yIHRoZSBzdHJpbmcuCiAgICAgdm9pZCBzZXRMYXN0UGhhc2VOYW1lKGNvbnN0IGNoYXIqIG5h
bWUpCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDdXN0b20u
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckN1c3RvbS5o
CShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckN1
c3RvbS5oCSh3b3JraW5nIGNvcHkpCkBAIC04NCwxMCArODQsMTUgQEAgc3RydWN0IFBhdGNoQ3Vz
dG9tIHsKICAgICB7CiAgICAgICAgIHJldHVybiBpbnN0LmFyZ3NbMF0uc3BlY2lhbCgpLT5zaG91
bGRUcnlBbGlhc2luZ0RlZihpbnN0KTsKICAgICB9CisgICAgCisgICAgc3RhdGljIGJvb2wgaXNU
ZXJtaW5hbChJbnN0JiBpbnN0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGluc3QuYXJnc1swXS5z
cGVjaWFsKCktPmlzVGVybWluYWwoaW5zdCk7CisgICAgfQogCiAgICAgc3RhdGljIGJvb2wgaGFz
Tm9uQXJnTm9uQ29udHJvbEVmZmVjdHMoSW5zdCYgaW5zdCkKICAgICB7Ci0gICAgICAgIHJldHVy
biBpbnN0LmFyZ3NbMF0uc3BlY2lhbCgpLT5oYXNOb25BcmdOb25Db250cm9sRWZmZWN0cygpOwor
ICAgICAgICByZXR1cm4gaW5zdC5hcmdzWzBdLnNwZWNpYWwoKS0+aGFzTm9uQXJnTm9uQ29udHJv
bEVmZmVjdHMoaW5zdCk7CiAgICAgfQogCiAgICAgc3RhdGljIENDYWxsSGVscGVyczo6SnVtcCBn
ZW5lcmF0ZSgKQEAgLTEzOCw2ICsxNDMsMTEgQEAgc3RydWN0IENDYWxsQ3VzdG9tIHsKICAgICB7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KKyAgICAKKyAgICBzdGF0aWMgYm9vbCBpc1Rl
cm1pbmFsKEluc3QmKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KIAogICAg
IHN0YXRpYyBib29sIGhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKEluc3QmKQogICAgIHsKQEAg
LTE5Nyw2ICsyMDcsMTEgQEAgc3RydWN0IFNodWZmbGVDdXN0b20gewogICAgICAgICB9CiAgICAg
fQogCisgICAgc3RhdGljIGJvb2wgaXNUZXJtaW5hbChJbnN0JikKKyAgICB7CisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICB9CisKICAgICBzdGF0aWMgYm9vbCBoYXNOb25BcmdOb25Db250cm9s
RWZmZWN0cyhJbnN0JikKICAgICB7CiAgICAgICAgIHJldHVybiBmYWxzZTsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGUuY3BwCShyZXZpc2lvbiAyMDI4
MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNTAsOCArNTAsMTAgQEAKICNpbmNsdWRlICJCM0luZGV4TWFwLmgiCiAj
aW5jbHVkZSAiQjNQcm9jZWR1cmUuaCIKICNpbmNsdWRlICJCM1RpbWluZ1Njb3BlLmgiCisjaW5j
bHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKICNpbmNs
dWRlICJEaXNhbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UuaCIKKyNpbmNsdWRlICJMaW5r
QnVmZmVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UgQWly
IHsKIApAQCAtMTczLDEyICsxNzUsMTYgQEAgdm9pZCBnZW5lcmF0ZShDb2RlJiBjb2RlLCBDQ2Fs
bEhlbHBlcnMmIAogCiAgICAgR2VuZXJhdGlvbkNvbnRleHQgY29udGV4dDsKICAgICBjb250ZXh0
LmNvZGUgPSAmY29kZTsKLSAgICBJbmRleE1hcDxCYXNpY0Jsb2NrLCBDQ2FsbEhlbHBlcnM6Okxh
YmVsPiBibG9ja0xhYmVscyhjb2RlLnNpemUoKSk7CisgICAgY29udGV4dC5ibG9ja0xhYmVscy5y
ZXNpemUoY29kZS5zaXplKCkpOworICAgIGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiBjb2RlKSB7
CisgICAgICAgIGlmIChibG9jaykKKyAgICAgICAgICAgIGNvbnRleHQuYmxvY2tMYWJlbHNbYmxv
Y2tdID0gQm94PENDYWxsSGVscGVyczo6TGFiZWw+OjpjcmVhdGUoKTsKKyAgICB9CiAgICAgSW5k
ZXhNYXA8QmFzaWNCbG9jaywgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdD4gYmxvY2tKdW1wcyhjb2Rl
LnNpemUoKSk7CiAKICAgICBhdXRvIGxpbmsgPSBbJl0gKENDYWxsSGVscGVyczo6SnVtcCBqdW1w
LCBCYXNpY0Jsb2NrKiB0YXJnZXQpIHsKLSAgICAgICAgaWYgKGJsb2NrTGFiZWxzW3RhcmdldF0u
aXNTZXQoKSkgewotICAgICAgICAgICAganVtcC5saW5rVG8oYmxvY2tMYWJlbHNbdGFyZ2V0XSwg
JmppdCk7CisgICAgICAgIGlmIChjb250ZXh0LmJsb2NrTGFiZWxzW3RhcmdldF0tPmlzU2V0KCkp
IHsKKyAgICAgICAgICAgIGp1bXAubGlua1RvKCpjb250ZXh0LmJsb2NrTGFiZWxzW3RhcmdldF0s
ICZqaXQpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAgLTE5NSwxNiArMjAx
LDIyIEBAIHZvaWQgZ2VuZXJhdGUoQ29kZSYgY29kZSwgQ0NhbGxIZWxwZXJzJiAKICAgICB9Owog
CiAgICAgZm9yIChCYXNpY0Jsb2NrKiBibG9jayA6IGNvZGUpIHsKKyAgICAgICAgY29udGV4dC5j
dXJyZW50QmxvY2sgPSBibG9jazsKKyAgICAgICAgY29udGV4dC5pbmRleEluQmxvY2sgPSBVSU5U
X01BWDsKICAgICAgICAgYmxvY2tKdW1wc1tibG9ja10ubGluaygmaml0KTsKLSAgICAgICAgYmxv
Y2tMYWJlbHNbYmxvY2tdID0gaml0LmxhYmVsKCk7CisgICAgICAgIENDYWxsSGVscGVyczo6TGFi
ZWwgbGFiZWwgPSBqaXQubGFiZWwoKTsKKyAgICAgICAgKmNvbnRleHQuYmxvY2tMYWJlbHNbYmxv
Y2tdID0gbGFiZWw7CiAgICAgICAgIEFTU0VSVChibG9jay0+c2l6ZSgpID49IDEpOwogICAgICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYmxvY2stPnNpemUoKSAtIDE7ICsraSkgeworICAg
ICAgICAgICAgY29udGV4dC5pbmRleEluQmxvY2sgPSBpOwogICAgICAgICAgICAgSW5zdCYgaW5z
dCA9IGJsb2NrLT5hdChpKTsKICAgICAgICAgICAgIGFkZEl0ZW0oaW5zdCk7CiAgICAgICAgICAg
ICBDQ2FsbEhlbHBlcnM6Okp1bXAganVtcCA9IGluc3QuZ2VuZXJhdGUoaml0LCBjb250ZXh0KTsK
ICAgICAgICAgICAgIEFTU0VSVF9VTlVTRUQoanVtcCwgIWp1bXAuaXNTZXQoKSk7CiAgICAgICAg
IH0KIAorICAgICAgICBjb250ZXh0LmluZGV4SW5CbG9jayA9IGJsb2NrLT5zaXplKCkgLSAxOwor
ICAgICAgICAKICAgICAgICAgaWYgKGJsb2NrLT5sYXN0KCkub3Bjb2RlID09IEp1bXAKICAgICAg
ICAgICAgICYmIGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKSA9PSBjb2RlLmZpbmROZXh0QmxvY2so
YmxvY2spKQogICAgICAgICAgICAgY29udGludWU7CkBAIC0yMjgsMjYgKzI0MCwzMCBAQCB2b2lk
IGdlbmVyYXRlKENvZGUmIGNvZGUsIENDYWxsSGVscGVycyYgCiAgICAgICAgICAgICBhZGRJdGVt
KGJsb2NrLT5sYXN0KCkpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KLQorICAg
ICAgICAKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGp1bXAgPSBibG9jay0+bGFzdCgpLmdl
bmVyYXRlKGppdCwgY29udGV4dCk7Ci0gICAgICAgIHN3aXRjaCAoYmxvY2stPm51bVN1Y2Nlc3Nv
cnMoKSkgewotICAgICAgICBjYXNlIDA6Ci0gICAgICAgICAgICBBU1NFUlQoIWp1bXAuaXNTZXQo
KSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAxOgotICAgICAgICAgICAgbGlu
ayhqdW1wLCBibG9jay0+c3VjY2Vzc29yQmxvY2soMCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgMjoKLSAgICAgICAgICAgIGxpbmsoanVtcCwgYmxvY2stPnN1Y2Nlc3NvckJs
b2NrKDApKTsKLSAgICAgICAgICAgIGlmIChibG9jay0+c3VjY2Vzc29yQmxvY2soMSkgIT0gY29k
ZS5maW5kTmV4dEJsb2NrKGJsb2NrKSkKLSAgICAgICAgICAgICAgICBsaW5rKGppdC5qdW1wKCks
IGJsb2NrLT5zdWNjZXNzb3JCbG9jaygxKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ZGVmYXVsdDoKLSAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgLy8gVGhlIGp1bXAgd29uJ3QgYmUgc2V0IGZvciBwYXRj
aHBvaW50cy4gSXQgd29uJ3QgYmUgc2V0IGZvciBPb3BzIGJlY2F1c2UgdGhlbiBpdCB3b24ndCBo
YXZlCisgICAgICAgIC8vIGFueSBzdWNjZXNzb3JzLgorICAgICAgICBpZiAoanVtcC5pc1NldCgp
KSB7CisgICAgICAgICAgICBzd2l0Y2ggKGJsb2NrLT5udW1TdWNjZXNzb3JzKCkpIHsKKyAgICAg
ICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICBsaW5rKGp1bXAsIGJsb2NrLT5zdWNjZXNz
b3JCbG9jaygwKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDI6
CisgICAgICAgICAgICAgICAgbGluayhqdW1wLCBibG9jay0+c3VjY2Vzc29yQmxvY2soMCkpOwor
ICAgICAgICAgICAgICAgIGlmIChibG9jay0+c3VjY2Vzc29yQmxvY2soMSkgIT0gY29kZS5maW5k
TmV4dEJsb2NrKGJsb2NrKSkKKyAgICAgICAgICAgICAgICAgICAgbGluayhqaXQuanVtcCgpLCBi
bG9jay0+c3VjY2Vzc29yQmxvY2soMSkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQogICAgICAgICB9CiAg
ICAgICAgIGFkZEl0ZW0oYmxvY2stPmxhc3QoKSk7CiAgICAgfQorICAgIAorICAgIGNvbnRleHQu
Y3VycmVudEJsb2NrID0gbnVsbHB0cjsKKyAgICBjb250ZXh0LmluZGV4SW5CbG9jayA9IFVJTlRf
TUFYOwogCiAgICAgcGNUb09yaWdpbk1hcC5hcHBlbmRJdGVtKGppdC5sYWJlbCgpLCBPcmlnaW4o
KSk7CiAgICAgLy8gRklYTUU6IE1ha2UgbGF0ZSBwYXRocyBoYXZlIE9yaWdpbnM6IGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM2ODkKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGlvbkNvbnRleHQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRpb25Db250ZXh0LmgJKHJldmlz
aW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGlv
bkNvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCwxNCArMjgsMTQgQEAKIAogI2lmIEVOQUJMRShC
M19KSVQpCiAKKyNpbmNsdWRlICJBaXJCYXNpY0Jsb2NrLmgiCisjaW5jbHVkZSAiQjNJbmRleE1h
cC5oIgorI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgorI2luY2x1ZGUgPHd0Zi9Cb3guaD4KICNp
bmNsdWRlIDx3dGYvU2hhcmVkVGFzay5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAotbmFt
ZXNwYWNlIEpTQyB7Ci0KLWNsYXNzIENDYWxsSGVscGVyczsKLQotbmFtZXNwYWNlIEIzIHsgbmFt
ZXNwYWNlIEFpciB7CituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsgbmFtZXNwYWNlIEFp
ciB7CiAKIGNsYXNzIENvZGU7CiAKQEAgLTQ0LDcgKzQ0LDEwIEBAIHN0cnVjdCBHZW5lcmF0aW9u
Q29udGV4dCB7CiAgICAgdHlwZWRlZiBTaGFyZWRUYXNrPExhdGVQYXRoRnVuY3Rpb24+IExhdGVQ
YXRoOwogCiAgICAgVmVjdG9yPFJlZlB0cjxMYXRlUGF0aD4+IGxhdGVQYXRoczsKLSAgICBDb2Rl
KiBjb2RlOworICAgIEluZGV4TWFwPEJhc2ljQmxvY2ssIEJveDxDQ2FsbEhlbHBlcnM6OkxhYmVs
Pj4gYmxvY2tMYWJlbHM7CisgICAgQmFzaWNCbG9jayogY3VycmVudEJsb2NrIHsgbnVsbHB0ciB9
OworICAgIHVuc2lnbmVkIGluZGV4SW5CbG9jayB7IFVJTlRfTUFYIH07CisgICAgQ29kZSogY29k
ZSB7IG51bGxwdHIgfTsKIH07CiAKIH0gfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzOjpBaXIKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdC5oCShyZXZpc2lvbiAyMDI4MDkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckluc3QuaAkod29ya2luZyBjb3B5
KQpAQCAtMTYzLDYgKzE2Myw5IEBAIHB1YmxpYzoKICAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIGF1
dG8tZ2VuZXJhdGVkIGJ5IG9wY29kZV9nZW5lcmF0b3IucmIuCiAgICAgYm9vbCBhZG1pdHNTdGFj
ayh1bnNpZ25lZCBhcmdJbmRleCk7CiAgICAgYm9vbCBhZG1pdHNTdGFjayhBcmcmKTsKKyAgICAK
KyAgICAvLyBEZWZpbmVkIGJ5IG9wY29kZV9nZW5lcmF0b3IucmIuCisgICAgYm9vbCBpc1Rlcm1p
bmFsKCk7CiAKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhpcyBpbnN0cnVjdGlvbiBjYW4gaGF2
ZSBhbnkgZWZmZWN0cyBvdGhlciB0aGFuIGNvbnRyb2wgZmxvdyBvciBhcmd1bWVudHMuCiAgICAg
Ym9vbCBoYXNOb25BcmdOb25Db250cm9sRWZmZWN0cygpOwpAQCAtMTc0LDYgKzE3Nyw5IEBAIHB1
YmxpYzoKIAogICAgIC8vIFRlbGxzIHlvdSBpZiB0aGlzIG9wZXJhdGlvbiBoYXMgYXJnIGVmZmVj
dHMuCiAgICAgYm9vbCBoYXNBcmdFZmZlY3RzKCk7CisgICAgCisgICAgLy8gVGVsbHMgeW91IGlm
IHRoaXMgb3BlcmF0aW9uIGhhcyBub24tY29udHJvbCBlZmZlY3RzLgorICAgIGJvb2wgaGFzTm9u
Q29udHJvbEVmZmVjdHMoKSB7IHJldHVybiBoYXNOb25BcmdOb25Db250cm9sRWZmZWN0cygpIHx8
IGhhc0FyZ0VmZmVjdHMoKTsgfQogCiAgICAgLy8gR2VuZXJhdGUgc29tZSBjb2RlIGZvciB0aGlz
IGluc3RydWN0aW9uLiBUaGlzIGlzLCBsaWtlLCBsaXRlcmFsbHkgb3VyIGJhY2tlbmQuIElmIHRo
aXMgaXMgdGhlCiAgICAgLy8gdGVybWluYWwsIGl0IHJldHVybnMgdGhlIGp1bXAgdGhhdCBuZWVk
cyB0byBiZSBsaW5rZWQgZm9yIHRoZSAidGhlbiIgY2FzZSwgd2l0aCB0aGUgImVsc2UiCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclNpbXBsaWZ5Q0ZHLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclNpbXBsaWZ5Q0ZHLmNwcAko
cmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJTaW1w
bGlmeUNGRy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk1LDMzICs5NSwzMiBAQCBib29sIHNpbXBs
aWZ5Q0ZHKENvZGUmIGNvZGUpCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogCi0g
ICAgICAgICAgICAvLyBOb3cgY2hlY2sgaWYgdGhlIGJsb2NrJ3MgdGVybWluYWwgY2FuIGJlIHJl
cGxhY2VkIHdpdGggYSBqdW1wLgotICAgICAgICAgICAgaWYgKGJsb2NrLT5udW1TdWNjZXNzb3Jz
KCkgPiAxKSB7Ci0gICAgICAgICAgICAgICAgLy8gVGhlIHRlcm1pbmFsIG11c3Qgbm90IGhhdmUg
d2VpcmQgZWZmZWN0cy4KLSAgICAgICAgICAgICAgICBpZiAoIWJsb2NrLT5sYXN0KCkuaGFzQXJn
RWZmZWN0cygpCi0gICAgICAgICAgICAgICAgICAgICYmICFibG9jay0+bGFzdCgpLmhhc05vbkFy
Z05vbkNvbnRyb2xFZmZlY3RzKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gQWxsIG9mIHRo
ZSBzdWNjZXNzb3JzIG11c3QgYmUgdGhlIHNhbWUuCi0gICAgICAgICAgICAgICAgICAgIGJvb2wg
YWxsU2FtZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIEJhc2ljQmxvY2sqIGZpcnN0U3Vj
Y2Vzc29yID0gYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDApOwotICAgICAgICAgICAgICAgICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAxOyBpIDwgYmxvY2stPm51bVN1Y2Nlc3NvcnMoKTsgKytpKSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoYmxvY2stPnN1Y2Nlc3NvckJsb2NrKGkpICE9IGZp
cnN0U3VjY2Vzc29yKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsU2FtZSA9IGZh
bHNlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGlm
IChhbGxTYW1lKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBkYXRhTG9nKCJDaGFuZ2luZyAiLCBwb2ludGVyRHVtcChi
bG9jayksICIncyB0ZXJtaW5hbCB0byBhIEp1bXAuXG4iKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGJsb2NrLT5sYXN0KCkgPSBJbnN0KEp1bXAsIGJsb2NrLT5sYXN0KCkub3JpZ2luKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLT5zdWNjZXNzb3JzKCkucmVzaXplKDEpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgYmxvY2stPnN1Y2Nlc3NvcnMoKVswXS5mcmVxdWVuY3koKSA9
IEZyZXF1ZW5jeUNsYXNzOjpOb3JtYWw7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2Vk
ID0gdHJ1ZTsKKyAgICAgICAgICAgIC8vIE5vdyBjaGVjayBpZiB0aGUgYmxvY2sncyB0ZXJtaW5h
bCBjYW4gYmUgcmVwbGFjZWQgd2l0aCBhIGp1bXAuIFRoZSB0ZXJtaW5hbCBtdXN0IG5vdAorICAg
ICAgICAgICAgLy8gaGF2ZSB3ZWlyZCBlZmZlY3RzLgorICAgICAgICAgICAgaWYgKGJsb2NrLT5u
dW1TdWNjZXNzb3JzKCkgPiAxIAorICAgICAgICAgICAgICAgICYmICFibG9jay0+bGFzdCgpLmhh
c05vbkNvbnRyb2xFZmZlY3RzKCkpIHsKKyAgICAgICAgICAgICAgICAvLyBBbGwgb2YgdGhlIHN1
Y2Nlc3NvcnMgbXVzdCBiZSB0aGUgc2FtZS4KKyAgICAgICAgICAgICAgICBib29sIGFsbFNhbWUg
PSB0cnVlOworICAgICAgICAgICAgICAgIEJhc2ljQmxvY2sqIGZpcnN0U3VjY2Vzc29yID0gYmxv
Y2stPnN1Y2Nlc3NvckJsb2NrKDApOworICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9
IDE7IGkgPCBibG9jay0+bnVtU3VjY2Vzc29ycygpOyArK2kpIHsKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKGJsb2NrLT5zdWNjZXNzb3JCbG9jayhpKSAhPSBmaXJzdFN1Y2Nlc3NvcikgeworICAg
ICAgICAgICAgICAgICAgICAgICAgYWxsU2FtZSA9IGZhbHNlOworICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgaWYgKGFsbFNhbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZl
cmJvc2UpCisgICAgICAgICAgICAgICAgICAgICAgICBkYXRhTG9nKCJDaGFuZ2luZyAiLCBwb2lu
dGVyRHVtcChibG9jayksICIncyB0ZXJtaW5hbCB0byBhIEp1bXAuXG4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgYmxvY2stPmxhc3QoKSA9IEluc3QoSnVtcCwgYmxvY2stPmxhc3QoKS5vcmlnaW4p
OworICAgICAgICAgICAgICAgICAgICBibG9jay0+c3VjY2Vzc29ycygpLnJlc2l6ZSgxKTsKKyAg
ICAgICAgICAgICAgICAgICAgYmxvY2stPnN1Y2Nlc3NvcnMoKVswXS5mcmVxdWVuY3koKSA9IEZy
ZXF1ZW5jeUNsYXNzOjpOb3JtYWw7CisgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVl
OworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgLy8gRmlu
YWxseSBoYW5kbGUganVtcHMgdG8gYSBibG9jayB3aXRoIG9uZSBwcmVkZWNlc3Nvci4KLSAgICAg
ICAgICAgIGlmIChibG9jay0+bnVtU3VjY2Vzc29ycygpID09IDEpIHsKKyAgICAgICAgICAgIGlm
IChibG9jay0+bnVtU3VjY2Vzc29ycygpID09IDEKKyAgICAgICAgICAgICAgICAmJiAhYmxvY2st
Pmxhc3QoKS5oYXNOb25Db250cm9sRWZmZWN0cygpKSB7CiAgICAgICAgICAgICAgICAgQmFzaWNC
bG9jayogc3VjY2Vzc29yID0gYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDApOwogICAgICAgICAgICAg
ICAgIGlmIChzdWNjZXNzb3IgIT0gYmxvY2sgJiYgc3VjY2Vzc29yLT5udW1QcmVkZWNlc3NvcnMo
KSA9PSAxKSB7CiAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHN1Y2Nlc3Nvci0+
cHJlZGVjZXNzb3IoMCkgPT0gYmxvY2spOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9BaXJTcGVjaWFsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvYWlyL0FpclNwZWNpYWwuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvYWlyL0FpclNwZWNpYWwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU1LDcgKzU1LDEy
IEBAIE9wdGlvbmFsPHVuc2lnbmVkPiBTcGVjaWFsOjpzaG91bGRUcnlBbGkKICAgICByZXR1cm4g
TnVsbG9wdDsKIH0KIAotYm9vbCBTcGVjaWFsOjpoYXNOb25BcmdOb25Db250cm9sRWZmZWN0cygp
Citib29sIFNwZWNpYWw6OmlzVGVybWluYWwoSW5zdCYpCit7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCitib29sIFNwZWNpYWw6Omhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKEluc3QmKQogewog
ICAgIHJldHVybiB0cnVlOwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9B
aXJTcGVjaWFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9B
aXJTcGVjaWFsLmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyU3BlY2lhbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTg3LDkgKzg3LDEyIEBAIHB1YmxpYzoK
IAogICAgIHZpcnR1YWwgY29uc3QgUmVnaXN0ZXJTZXQmIGV4dHJhRWFybHlDbG9iYmVyZWRSZWdz
KEluc3QmKSA9IDA7CiAgICAgdmlydHVhbCBjb25zdCBSZWdpc3RlclNldCYgZXh0cmFDbG9iYmVy
ZWRSZWdzKEluc3QmKSA9IDA7CisgICAgCisgICAgLy8gQnkgZGVmYXVsdCwgdGhpcyByZXR1cm5z
IGZhbHNlLgorICAgIHZpcnR1YWwgYm9vbCBpc1Rlcm1pbmFsKEluc3QmKTsKIAogICAgIC8vIEJ5
IGRlZmF1bHQsIHRoaXMgcmV0dXJucyB0cnVlLgotICAgIHZpcnR1YWwgYm9vbCBoYXNOb25BcmdO
b25Db250cm9sRWZmZWN0cygpOworICAgIHZpcnR1YWwgYm9vbCBoYXNOb25BcmdOb25Db250cm9s
RWZmZWN0cyhJbnN0Jik7CiAKICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKICAg
ICB2b2lkIGRlZXBEdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvYWlyL0FpclZhbGlkYXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpclZhbGlkYXRlLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJWYWxpZGF0ZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtNzksOSArNzksOSBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgIFZBTElEQVRFKGluc3QuaXNWYWxpZEZvcm0oKSwgKCJBdCAiLCBpbnN0LCAiIGluICIsICpi
bG9jaykpOwogICAgICAgICAgICAgICAgIGlmIChpbnN0SW5kZXggPT0gYmxvY2stPnNpemUoKSAt
IDEpCi0gICAgICAgICAgICAgICAgICAgIFZBTElEQVRFKGlzVGVybWluYWwoaW5zdC5vcGNvZGUp
LCAoIkF0ICIsIGluc3QsICIgaW4gIiwgKmJsb2NrKSk7CisgICAgICAgICAgICAgICAgICAgIFZB
TElEQVRFKGluc3QuaXNUZXJtaW5hbCgpLCAoIkF0ICIsIGluc3QsICIgaW4gIiwgKmJsb2NrKSk7
CiAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBWQUxJREFURSghaXNU
ZXJtaW5hbChpbnN0Lm9wY29kZSksICgiQXQgIiwgaW5zdCwgIiBpbiAiLCAqYmxvY2spKTsKKyAg
ICAgICAgICAgICAgICAgICAgVkFMSURBVEUoIWluc3QuaXNUZXJtaW5hbCgpLCAoIkF0ICIsIGlu
c3QsICIgaW4gIiwgKmJsb2NrKSk7CiAKICAgICAgICAgICAgICAgICAvLyBmb3JFYWNoQXJnIG11
c3QgcmV0dXJuIEFyZyYncyB0aGF0IHBvaW50IGludG8gdGhlIGFyZ3MgYXJyYXkuCiAgICAgICAg
ICAgICAgICAgaW5zdC5mb3JFYWNoQXJnKApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvb3Bjb2RlX2dlbmVyYXRvci5yYgkocmV2aXNpb24gMjAyODA5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJiCSh3b3JraW5nIGNv
cHkpCkBAIC03MTQsNyArNzE0LDcgQEAgd3JpdGVIKCJPcGNvZGVVdGlscyIpIHsKICAgICBvdXRw
LnB1dHMgInJldHVybiBmYWxzZTsgIgogICAgIG91dHAucHV0cyAifSIKIAotICAgIG91dHAucHV0
cyAiaW5saW5lIGJvb2wgaXNUZXJtaW5hbChPcGNvZGUgb3Bjb2RlKSIKKyAgICBvdXRwLnB1dHMg
ImlubGluZSBib29sIGlzRGVmaW5pdGVseVRlcm1pbmFsKE9wY29kZSBvcGNvZGUpIgogICAgIG91
dHAucHV0cyAieyIKICAgICBvdXRwLnB1dHMgInN3aXRjaCAob3Bjb2RlKSB7IgogICAgIGRpZEZp
bmRUZXJtaW5hbHMgPSBmYWxzZQpAQCAtOTc2LDYgKzk3NiwzMiBAQCB3cml0ZUgoIk9wY29kZUdl
bmVyYXRlZCIpIHsKICAgICBvdXRwLnB1dHMgInJldHVybiBmYWxzZTsiCiAgICAgb3V0cC5wdXRz
ICJ9IgogCisgICAgb3V0cC5wdXRzICJib29sIEluc3Q6OmlzVGVybWluYWwoKSIKKyAgICBvdXRw
LnB1dHMgInsiCisgICAgb3V0cC5wdXRzICJzd2l0Y2ggKG9wY29kZSkgeyIKKyAgICBmb3VuZFRy
dWUgPSBmYWxzZQorICAgICRvcGNvZGVzLnZhbHVlcy5lYWNoIHsKKyAgICAgICAgfCBvcGNvZGUg
fAorICAgICAgICBpZiBvcGNvZGUuYXR0cmlidXRlc1s6dGVybWluYWxdCisgICAgICAgICAgICBv
dXRwLnB1dHMgImNhc2UgI3tvcGNvZGUubmFtZX06IgorICAgICAgICAgICAgZm91bmRUcnVlID0g
dHJ1ZQorICAgICAgICBlbmQKKyAgICB9CisgICAgaWYgZm91bmRUcnVlCisgICAgICAgIG91dHAu
cHV0cyAicmV0dXJuIHRydWU7IgorICAgIGVuZAorICAgICRvcGNvZGVzLnZhbHVlcy5lYWNoIHsK
KyAgICAgICAgfCBvcGNvZGUgfAorICAgICAgICBpZiBvcGNvZGUuY3VzdG9tCisgICAgICAgICAg
ICBvdXRwLnB1dHMgImNhc2UgI3tvcGNvZGUubmFtZX06IgorICAgICAgICAgICAgb3V0cC5wdXRz
ICJyZXR1cm4gI3tvcGNvZGUubmFtZX1DdXN0b206OmlzVGVybWluYWwoKnRoaXMpOyIKKyAgICAg
ICAgZW5kCisgICAgfQorICAgIG91dHAucHV0cyAiZGVmYXVsdDoiCisgICAgb3V0cC5wdXRzICJy
ZXR1cm4gZmFsc2U7IgorICAgIG91dHAucHV0cyAifSIKKyAgICBvdXRwLnB1dHMgIn0iCisgICAg
CiAgICAgb3V0cC5wdXRzICJib29sIEluc3Q6Omhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKCki
CiAgICAgb3V0cC5wdXRzICJ7IgogICAgIG91dHAucHV0cyAic3dpdGNoIChvcGNvZGUpIHsiCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuY3BwCShyZXZpc2lvbiAyMDI4
MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI4LDggKzI4LDE4IEBACiAKICNpZiBFTkFCTEUoRlRMX0pJVCkKIAorI2luY2x1
ZGUgIkIzQXJndW1lbnRSZWdWYWx1ZS5oIgorI2luY2x1ZGUgIkIzQmFzaWNCbG9ja0lubGluZXMu
aCIKKyNpbmNsdWRlICJCM0NDYWxsVmFsdWUuaCIKKyNpbmNsdWRlICJCM0NvbnN0MzJWYWx1ZS5o
IgorI2luY2x1ZGUgIkIzQ29uc3RQdHJWYWx1ZS5oIgogI2luY2x1ZGUgIkIzTWF0aEV4dHJhcy5o
IgorI2luY2x1ZGUgIkIzTWVtb3J5VmFsdWUuaCIKKyNpbmNsdWRlICJCM1Nsb3RCYXNlVmFsdWUu
aCIKICNpbmNsdWRlICJCM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5oIgorI2luY2x1ZGUgIkIz
U3dpdGNoVmFsdWUuaCIKKyNpbmNsdWRlICJCM1Vwc2lsb25WYWx1ZS5oIgorI2luY2x1ZGUgIkIz
VmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiU3VwZXJTYW1wbGVyLmgiCiAKIG5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgRlRMIHsKQEAgLTU3OCwxMiArNTg4LDEyIEBAIExWYWx1ZSBPdXRwdXQ6
OnNlbGVjdChMVmFsdWUgdmFsdWUsIExWYWwKIAogdm9pZCBPdXRwdXQ6Omp1bXAoTEJhc2ljQmxv
Y2sgZGVzdGluYXRpb24pCiB7Ci0gICAgbV9ibG9jay0+YXBwZW5kTmV3PEIzOjpDb250cm9sVmFs
dWU+KG1fcHJvYywgQjM6Okp1bXAsIG9yaWdpbigpLCBCMzo6RnJlcXVlbnRlZEJsb2NrKGRlc3Rp
bmF0aW9uKSk7CisgICAgbV9ibG9jay0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKG1fcHJvYywgQjM6
Okp1bXAsIG9yaWdpbigpLCBCMzo6RnJlcXVlbnRlZEJsb2NrKGRlc3RpbmF0aW9uKSk7CiB9CiAK
IHZvaWQgT3V0cHV0OjpicmFuY2goTFZhbHVlIGNvbmRpdGlvbiwgTEJhc2ljQmxvY2sgdGFrZW4s
IFdlaWdodCB0YWtlbldlaWdodCwgTEJhc2ljQmxvY2sgbm90VGFrZW4sIFdlaWdodCBub3RUYWtl
bldlaWdodCkKIHsKLSAgICBtX2Jsb2NrLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBt
X2Jsb2NrLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIG1fcHJvYywgQjM6OkJyYW5j
aCwgb3JpZ2luKCksIGNvbmRpdGlvbiwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRha2VuLCB0
YWtlbldlaWdodC5mcmVxdWVuY3lDbGFzcygpKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKG5v
dFRha2VuLCBub3RUYWtlbldlaWdodC5mcmVxdWVuY3lDbGFzcygpKSk7CkBAIC02MDMsMTIgKzYx
MywxMiBAQCB2b2lkIE91dHB1dDo6Y2hlY2soTFZhbHVlIGNvbmRpdGlvbiwgV2VpCiAKIHZvaWQg
T3V0cHV0OjpyZXQoTFZhbHVlIHZhbHVlKQogewotICAgIG1fYmxvY2stPmFwcGVuZE5ldzxCMzo6
Q29udHJvbFZhbHVlPihtX3Byb2MsIEIzOjpSZXR1cm4sIG9yaWdpbigpLCB2YWx1ZSk7CisgICAg
bV9ibG9jay0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKG1fcHJvYywgQjM6OlJldHVybiwgb3JpZ2lu
KCksIHZhbHVlKTsKIH0KIAogdm9pZCBPdXRwdXQ6OnVucmVhY2hhYmxlKCkKIHsKLSAgICBtX2Js
b2NrLT5hcHBlbmROZXc8QjM6OkNvbnRyb2xWYWx1ZT4obV9wcm9jLCBCMzo6T29wcywgb3JpZ2lu
KCkpOworICAgIG1fYmxvY2stPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShtX3Byb2MsIEIzOjpPb3Bz
LCBvcmlnaW4oKSk7CiB9CiAKIENoZWNrVmFsdWUqIE91dHB1dDo6c3BlY3VsYXRlKExWYWx1ZSB2
YWx1ZSkKQEAgLTYzOCw3ICs2NDgsNyBAQCBQYXRjaHBvaW50VmFsdWUqIE91dHB1dDo6cGF0Y2hw
b2ludChMVHlwCiAKIHZvaWQgT3V0cHV0Ojp0cmFwKCkKIHsKLSAgICBtX2Jsb2NrLT5hcHBlbmRO
ZXc8QjM6OkNvbnRyb2xWYWx1ZT4obV9wcm9jLCBCMzo6T29wcywgb3JpZ2luKCkpOworICAgIG1f
YmxvY2stPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShtX3Byb2MsIEIzOjpPb3BzLCBvcmlnaW4oKSk7
CiB9CiAKIFZhbHVlRnJvbUJsb2NrIE91dHB1dDo6YW5jaG9yKExWYWx1ZSB2YWx1ZSkKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuaAkocmV2aXNpb24gMjAyODA5KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuaAkod29ya2luZyBjb3B5KQpAQCAt
MzAsMTkgKzMwLDggQEAKIAogI2lmIEVOQUJMRShGVExfSklUKQogCi0jaW5jbHVkZSAiQjNBcmd1
bWVudFJlZ1ZhbHVlLmgiCi0jaW5jbHVkZSAiQjNCYXNpY0Jsb2NrSW5saW5lcy5oIgotI2luY2x1
ZGUgIkIzQ0NhbGxWYWx1ZS5oIgogI2luY2x1ZGUgIkIzQ29tcGlsYXRpb24uaCIKLSNpbmNsdWRl
ICJCM0NvbnN0MzJWYWx1ZS5oIgotI2luY2x1ZGUgIkIzQ29uc3RQdHJWYWx1ZS5oIgotI2luY2x1
ZGUgIkIzQ29udHJvbFZhbHVlLmgiCi0jaW5jbHVkZSAiQjNNZW1vcnlWYWx1ZS5oIgogI2luY2x1
ZGUgIkIzUHJvY2VkdXJlLmgiCi0jaW5jbHVkZSAiQjNTbG90QmFzZVZhbHVlLmgiCi0jaW5jbHVk
ZSAiQjNTd2l0Y2hWYWx1ZS5oIgotI2luY2x1ZGUgIkIzVXBzaWxvblZhbHVlLmgiCi0jaW5jbHVk
ZSAiQjNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJGVExBYmJyZXZpYXRlZFR5cGVzLmgiCiAj
aW5jbHVkZSAiRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oIgogI2luY2x1ZGUgIkZUTENvbW1v
blZhbHVlcy5oIgpAQCAtMzc4LDggKzM2Nyw4IEBAIHB1YmxpYzoKICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBWZWN0b3JUeXBlPgogICAgIHZvaWQgc3dpdGNoSW5zdHJ1Y3Rpb24oTFZhbHVlIHZhbHVl
LCBjb25zdCBWZWN0b3JUeXBlJiBjYXNlcywgTEJhc2ljQmxvY2sgZmFsbFRocm91Z2gsIFdlaWdo
dCBmYWxsVGhyb3VnaFdlaWdodCkKICAgICB7Ci0gICAgICAgIEIzOjpTd2l0Y2hWYWx1ZSogc3dp
dGNoVmFsdWUgPSBtX2Jsb2NrLT5hcHBlbmROZXc8QjM6OlN3aXRjaFZhbHVlPigKLSAgICAgICAg
ICAgIG1fcHJvYywgb3JpZ2luKCksIHZhbHVlLCBCMzo6RnJlcXVlbnRlZEJsb2NrKGZhbGxUaHJv
dWdoKSk7CisgICAgICAgIEIzOjpTd2l0Y2hWYWx1ZSogc3dpdGNoVmFsdWUgPSBtX2Jsb2NrLT5h
cHBlbmROZXc8QjM6OlN3aXRjaFZhbHVlPihtX3Byb2MsIG9yaWdpbigpLCB2YWx1ZSk7CisgICAg
ICAgIHN3aXRjaFZhbHVlLT5zZXRGYWxsVGhyb3VnaChGcmVxdWVudGVkQmxvY2soZmFsbFRocm91
Z2gpKTsKICAgICAgICAgZm9yIChjb25zdCBTd2l0Y2hDYXNlJiBzd2l0Y2hDYXNlIDogY2FzZXMp
IHsKICAgICAgICAgICAgIGludDY0X3QgdmFsdWUgPSBzd2l0Y2hDYXNlLnZhbHVlKCktPmFzSW50
KCk7CiAgICAgICAgICAgICBCMzo6RnJlcXVlbnRlZEJsb2NrIHRhcmdldChzd2l0Y2hDYXNlLnRh
cmdldCgpLCBzd2l0Y2hDYXNlLndlaWdodCgpLmZyZXF1ZW5jeUNsYXNzKCkpOwpJbmRleDogV2Vi
c2l0ZXMvd2Via2l0Lm9yZy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvd2Via2l0
Lm9yZy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMjgwOSkKKysrIFdlYnNpdGVzL3dlYmtpdC5vcmcv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMDUtMjkgIEZp
bGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgdGFibGUt
YmFzZWQgc3dpdGNoZXMgaW4gQjMvQWlyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNTExNDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKyAgICAgICAgCisgICAgICAgIFVwZGF0ZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgbmV3
IFBvbHlKdW1wIG9wY29kZS4KKworICAgICAgICAqIGRvY3MvYjMvaW50ZXJtZWRpYXRlLXJlcHJl
c2VudGF0aW9uLmh0bWw6CisKIDIwMTYtMDctMDEgIEpvbiBEYXZpcyAgPGpvbmRAYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZGVkIGEgY29sb3JmdWwgbmV3IGltYWdlIGFuZCBmaXhlZCB0aGUgT3Bl
biBHcmFwaCBhdHRyaWJ1dGUuCkluZGV4OiBXZWJzaXRlcy93ZWJraXQub3JnL2RvY3MvYjMvaW50
ZXJtZWRpYXRlLXJlcHJlc2VudGF0aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvd2Vi
a2l0Lm9yZy9kb2NzL2IzL2ludGVybWVkaWF0ZS1yZXByZXNlbnRhdGlvbi5odG1sCShyZXZpc2lv
biAyMDI4MDkpCisrKyBXZWJzaXRlcy93ZWJraXQub3JnL2RvY3MvYjMvaW50ZXJtZWRpYXRlLXJl
cHJlc2VudGF0aW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTUzNyw2ICs1MzcsMzkgQEAgcGF0
Y2hwb2ludC0+c2V0R2VuZXJhdG9yKAogICAgICAgICBhbHNvIGNvbnRhaW5zIGEgZmFsbC10aHJv
dWdoIHRhcmdldCBpbiBjYXNlIHRoZSBjaGlsZCBoYXMgYSB2YWx1ZSB0aGF0IHdhc24ndCBtZW50
aW9uZWQKICAgICAgICAgaW4gdGhlIGNhc2VzIGxpc3QuICBNdXN0IHVzZSB0aGUgU3dpdGNoVmFs
dWUgY2xhc3MuICBNdXN0IGFwcGVhciBhdCB0aGUgZW5kIG9mIHRoZSBiYXNpYwogICAgICAgICBi
bG9jay48L2RkPgorICAgICAgCisgICAgICA8ZHQ+Vm9pZCBQb2x5SnVtcChJbnRQdHIsIGJsb2Nr
cy4uLik8L2R0PgorICAgICAgPGRkPgorICAgICAgICA8cD5KdW1wcyB0byB0aGUgZ2l2ZW4gYWRk
cmVzcy4gVGhlIGNvbXBpbGVyIHdpbGwgYXNzdW1lIHRoYXQgdGhpcyBqdW1wcyB0byBvbmUgb2Yg
dGhlIGdpdmVuCisgICAgICAgICAgYmxvY2tzLiBUaGUgY29tcGlsZXIgbWFrZXMgbm8gYXR0ZW1w
dCB0byBwcm92ZSBvciB2YWxpZGF0ZSB0aGF0IHRoZSBwYXNzZWQganVtcCBhZGRyZXNzIGlzCisg
ICAgICAgICAgYWN0dWFsbHkgdGhlIGFkZHJlc3Mgb2YgYW55IG9mIHRob3NlIGJsb2Nrcy4gTm9u
c2Vuc2ljYWwgdGhpbmdzIHdpbGwgaGFwcGVuIGlmIHRoZSBwYXNzZWQKKyAgICAgICAgICBhZGRy
ZXNzIGlzIG5vdCB0aGUgYWRkcmVzcyBvZiBvbmUgb2YgdGhlIGJsb2NrcyBpbiB0aGUgc3VjY2Vz
c29yIGxpc3QuIFlvdSBjYW4gYXJyYW5nZSB0bworICAgICAgICAgIGdldCB0aGUgYWRkcmVzc2Vz
IG9mIGJsb2NrcyBieSBwYXNzaW5nIGEgY2FsbGJhY2sgdG8gUG9seUp1bXAuIFRoaXMgaXMgdXNl
ZCBpbnRlcm5hbGx5CisgICAgICAgICAgZm9yIGxvd2VyaW5nIFN3aXRjaCBvcGNvZGVzLiBZb3Ug
Y2FuIGFsc28gdXNlIGl0IGRpcmVjdGx5LjwvcD4KKyAgICAgIAorICAgICAgICA8cD5Qb2x5SnVt
cCBpcyBub3QgY2xvbmVhYmxlLiBGb3IgZWFjaCBQb2x5SnVtcCB5b3UgY3JlYXRlLCB0aGVyZSB3
aWxsIGJlIG9uZSBpbmRpcmVjdAorICAgICAgICAgIGp1bXAgZ2VuZXJhdGVkLiBUaGlzIGlzIG5l
Y2Vzc2FyeSB0byBlbnN1cmUgc291bmRuZXNzIG9mIHRoZSBjYWxsYmFjay4gSWYgdGhlIFBvbHlK
dW1wCisgICAgICAgICAgY291bGQgYmUgY2xvbmVkLCB0aGVuIHRoZSBjYWxsYmFjayB3b3VsZCBn
ZXQgY2FsbGVkIGZvciBlYWNoIGNsb25lLiBQcmVzdW1hYmx5LCB5b3UnZAorICAgICAgICAgIGlt
cGxlbWVudCB0aGUgY2FsbGJhY2sgYnkgcG9wdWxhdGluZyBzb21lIHRhYmxlIHdpdGggdGhlIGFk
ZHJlc3NlcyBvZiB0aGUgYmxvY2tzLiBJZiB0aGUKKyAgICAgICAgICBjYWxsYmFjayBnZXRzIGNh
bGxlZCBtdWx0aXBsZSB0aW1lcyB0aGVuIGl0IG1heSByZXR1cm4gZGlmZmVyZW50IGFkZHJlc3Nl
cyBlYWNoIHRpbWUgLQorICAgICAgICAgIHNpbmNlIGFmdGVyIGNsb25pbmcgYSBQb2x5SnVtcCwg
dGhlIGNvbXBpbGVyIG1heSByZXRhcmdldCBhbnkgb2YgaXRzIHN1Y2Nlc3NvciBlZGdlcy4KKyAg
ICAgICAgICBUaGlzIHdvdWxkIGJlIGNvbmZ1c2luZywgc2luY2UgdGhlbiB5b3Ugd291bGRuJ3Qg
a25vdyB3aGF0IHRvIGRvIHdpdGggZGlzY3JlcGFuY2llcyBiZXR3ZWVuCisgICAgICAgICAgYWRk
cmVzc2VzIHJldHVybmVkIGJ5IHRoZSB2YXJpb3VzIGNhbGxzIHRvIHRoZSBjYWxsYmFjay4gRGlz
YWxsb3dpbmcgY2xvbmluZyBvZiBQb2x5SnVtcAorICAgICAgICAgIHNvbHZlcyB0aGlzIHByb2Js
ZW0uPC9wPgorICAgICAgICAKKyAgICAgICAgPHA+QSBjbG9zZWx5IHJlbGF0ZWQgcHJvYmxlbSBp
cyB0aGF0IGlmIHlvdSBlbWl0IG11bHRpcGxlIFBvbHlKdW1wIGluc3RydWN0aW9ucywgdGhlbiBl
dmVuCisgICAgICAgICAgaWYgdGhleSBpbml0aWFsbHkgc2hhcmUgdGhlIHNhbWUgc3VjY2Vzc29y
cywgeW91IGNhbm5vdCBndWFyYW50ZWUgdGhhdCB0aGV5IHdpbGwgY29udGludWUKKyAgICAgICAg
ICB0byBzaGFyZSB0aGUgc2FtZSBzdWNjZXNzb3JzIGFmdGVyIG9wdGltaXphdGlvbi4gVGhpcyBt
ZWFucyB0aGF0IFBvbHlKdW1wIGNhbm5vdAorICAgICAgICAgIGN1cnJlbnRseSBiZSB1c2VkIGZv
ciBpbXBsZW1lbnRpbmcgZGlyZWN0IHRocmVhZGVkIGludGVycHJldGVycywgYXQgbGVhc3Qgbm90
IHRoZSBjbGFzc2ljCisgICAgICAgICAga2luZDogdG8gbWFrZSBpdCB3b3JrLCB5b3UgaGF2ZSB0
byBoYXZlIGEgc2hhcmVkIGRpc3BhdGNoIGJsb2NrIHNvIHRoYXQgeW91IGhhdmUgYSBzaW5nbGUK
KyAgICAgICAgICBQb2x5SnVtcC4gVGhpcyBtaWdodCBiZSBiZXR0ZXIgdGhhbiBhIFN3aXRjaC1i
YXNlZCBpbnRlcnByZXRlciwgYnV0IGl0J3MgZGVmaW5pdGVseSBub3QKKyAgICAgICAgICBhcyBn
b29kIGFzIHdoYXQgeW91J2QgZ2V0IHdpdGggR0NDLXN0eWxlIGNvbXB1dGVkIGdvdG8uPC9wPgor
ICAgICAgICAKKyAgICAgICAgPHA+UG9seUp1bXAgaXMgc28gbmFtZWQgdG8gYXZvaWQgY29uZnVz
aW9uIHdpdGggY29tcHV0ZWQgZ290b3MgYW5kIGluZGlyZWN0IGJyYW5jaGVzIGluCisgICAgICAg
ICAgb3RoZXIgY29tcGlsZXJzLiBJdCBoYXMgc2lnbmlmaWNhbnQgcmVzdHJpY3Rpb25zIHRoYXQg
dGhvc2Ugb3BlcmF0aW9ucyBkbyBub3QgaGF2ZS4gVGhlc2UKKyAgICAgICAgICByZXN0cmljdGlv
bnMgbWFrZSBpdCBlYXNpZXIgZm9yIHRoZSBvcHRpbWl6ZXIgdG8gd29yayB3aXRoIHNpbmNlIHRo
ZSBjb250cm9sIGZsb3cgZ2V0cyB0bworICAgICAgICAgIGJlIGV4cGxpY2l0IChQb2x5SnVtcCBo
YXMgYSBmaW5pdGUgc2V0IG9mIHN1Y2Nlc3NvcnMgbGlrZSBhbnkgb3RoZXIgYmxvY2sgdGVybWlu
YWwpLjwvcD4KKyAgICAgIDwvZGQ+CiAKICAgICAgIDxkdD5Wb2lkIFJldHVybihUKTwvZHQ+CiAg
ICAgICA8ZGQ+V29ya3MgZm9yIGFueSB0eXBlIGV4Y2VwdCBWb2lkLiAgUmV0dXJucyB0aGUgZ2l2
ZW4gdmFsdWUgYW5kIHRlcm1pbmF0ZXMgdGhlIHByb2NlZHVyZS4KSW5kZXg6IExheW91dFRlc3Rz
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDIwMjgwOSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE1IEBACisyMDE2LTA1LTI5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisK
KyAgICAgICAgSW1wbGVtZW50IHRhYmxlLWJhc2VkIHN3aXRjaGVzIGluIEIzL0FpcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxMTQxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBqcy9yZWdyZXNzL2Jp
Z3N3aXRjaC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvYmlnc3dp
dGNoLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2JpZ3N3
aXRjaC5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorCiAyMDE2LTA3LTA0ICBZdXN1a2UgU3V6
dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHNraXAg
bWlzYy1idWdzLTg0NzM4OS1qcGVnMjAwMC5qcyBpbiBqc2Mgc3RyZXNzIHRlc3RzCkluZGV4OiBM
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2gtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2gtZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAgQEAKK0pTUmVncmVzcy9iaWdzd2l0Y2gKKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExh
eW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2guaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwx
MiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYmln
c3dpdGNoLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVz
cy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3Rz
L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2JpZ3N3aXRjaC5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9iaWdzd2l0Y2guanMJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9iaWdzd2l0Y2guanMJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwyMTEgQEAKK2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgdmFy
IHJlc3VsdCA9IDA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpIHsKKyAgICAg
ICAgdmFyIHZhbHVlID0gaSAmIDYzOworICAgICAgICBzd2l0Y2ggKHZhbHVlKSB7CisgICAgICAg
IGNhc2UgMDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYjsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICByZXN1bHQgKz0gby5jOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
LmQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0OgorICAgICAgICAgICAgcmVz
dWx0ICs9IG8uZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDU6CisgICAgICAg
ICAgICByZXN1bHQgKz0gby5mOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNjoK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSA3OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaDsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIDg6CisgICAgICAgICAgICByZXN1bHQgKz0gby5pOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgOToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxMDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
Lms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxMToKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLmE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxMjoKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAx
MzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmM7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSAxNDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmQ7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSAxNToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmU7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxNjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmY7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxNzoKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxODoKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxOToK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSAyMDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSAyMToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSAyMjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyMzoKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLmE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyNDoKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLmI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyNToKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLmM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSAyNjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmQ7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSAyNzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmU7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSAyODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmY7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyOToKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
Lmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzMDoKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLmg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzMToKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAz
MjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSAzMzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSAzNDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzNToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzNjoKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLmE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzNzoKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzODoK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSAzOToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmQ7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSA0MDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmU7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSA0MToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmY7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0MjoKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0MzoKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLmg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0NDoKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSA0NToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSA0NjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSA0NzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0ODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
Lmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0OToKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1MDoKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1
MToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSA1MjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSA1MzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1NDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmM7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1NToKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLmQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1NjoKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1NzoK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmY7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSA1ODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSA1OToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSA2MDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA2MToKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA2MjoKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLno7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQor
ICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworfQorCisoZnVuY3Rpb24oKSB7CisgICAgdmFyIG8g
PSB7YToxLCBiOjIsIGM6MywgZDo0LCBlOjUsIGY6NiwgZzo3LCBoOjgsIGk6OSwgajoxMCwgazox
MSwgejoxMDB9OworICAgIHZhciByZXN1bHQgPSAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
MTAwMDA7ICsraSkKKyAgICAgICAgcmVzdWx0ICs9IGZvbyhvKTsKKyAgICBpZiAocmVzdWx0ICE9
IDc5NjYwMDAwKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7
Cit9KSgpOworCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283104</attachid>
            <date>2016-07-07 20:36:46 -0700</date>
            <delta_ts>2016-07-08 00:13:37 -0700</delta_ts>
            <desc>it seems to work!</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>428632</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2NiBA
QAorMjAxNi0wNS0yOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IEltcGxlbWVudCB0YWJsZS1iYXNlZCBzd2l0Y2hlcyBpbiBCMy9BaXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTE0MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgSWYgYSBzd2l0Y2ggc3Rh
dGVtZW50IGdldHMgbGFyZ2UsIGl0J3MgYmV0dGVyIHRvIGV4cHJlc3MgaXQgYXMgYW4gaW5kaXJl
Y3QganVtcCByYXRoZXIgdGhhbgorICAgICAgICB1c2luZyBhIGJpbmFyeSBzd2l0Y2ggKGRpdmlk
ZS1hbmQtY29ucXVlciB0cmVlIG9mIGNvbXBhcmlzb25zIGxlYWRpbmcgdG8gTyhsb2cgbikgYnJh
bmNoZXMgdG8KKyAgICAgICAgZ2V0IHRvIHRoZSBzd2l0Y2ggY2FzZSkuIFdoZW4gZGVhbGluZyB3
aXRoIGludGVnZXIgc3dpdGNoZXMsIEZUTCB3aWxsIGFscmVhZHkgdXNlIHRoZSBCMworICAgICAg
ICBTd2l0Y2ggYW5kIGV4cGVjdCB0aGlzIHRvIGdldCBsb3dlcmVkIGFzIGVmZmljaWVudGx5IGFz
IHBvc3NpYmxlOyBpdCdzIGEgYnVnIHRoYXQgQjMgd2lsbAorICAgICAgICBhbHdheXMgdXNlIGEg
YmluYXJ5IHN3aXRjaCByYXRoZXIgdGhhbiBpbmRpcmVjdCBqdW1wcy4gV2hlbiBkZWFsaW5nIHdp
dGggc3dpdGNoZXMgb3ZlciBzb21lCisgICAgICAgIG1vcmUgc29waGlzdGljYXRlZCB0eXBlcywg
d2UnZCB3YW50IEZUTCB0byBidWlsZCBhbiBpbmRpcmVjdCBqdW1wIHRhYmxlIGl0c2VsZiBhbmQg
dXNlCisgICAgICAgIHNvbWV0aGluZyBsaWtlIGEgaGFzaHRhYmxlIHRvIGZlZWQgaXQuIEluIHRo
YXQgY2FzZSwgdGhlcmUgd2lsbCBiZSBubyBCMyBTd2l0Y2g7IHdlJ2xsIHdhbnQKKyAgICAgICAg
c29tZSBraW5kIG9mIGluZGlyZWN0IGp1bXAgaW5zdHJ1Y3Rpb24uCisgICAgICAgIAorICAgICAg
ICBUaGlzIGltcGxpZXMgdGhhdCB3ZSB3YW50IEIzIHRvIGhhdmUgdGhlIGFiaWxpdHkgdG8gbG93
ZXIgU3dpdGNoIHRvIGluZGlyZWN0IGp1bXBzIGFuZCB0bworICAgICAgICBleHBvc2UgdGhvc2Ug
aW5kaXJlY3QganVtcHMgaW4gSVIgc28gdGhhdCB0aGUgRlRMIGNvdWxkIGRvIGl0cyBvd24gaW5k
aXJlY3QganVtcHMgZm9yCisgICAgICAgIHN3aXRjaGVzIG92ZXIgbW9yZSBjb21wbGljYXRlZCB0
aGluZ3MgbGlrZSBzdHJpbmdzLiBUaGlzIGNoYW5nZSBpbnRyb2R1Y2VzIGFuIGluZGlyZWN0IGp1
bXAKKyAgICAgICAgaW5zdHJ1Y3Rpb24gdG8gQjMgYW5kIGNhbGxzIGl0IFBvbHlKdW1wLiBJdCBo
YXMgc29tZSB1bmlxdWUgc2VtYW50aWNzIHRoYXQgbWFrZSBpdCB2ZXJ5CisgICAgICAgIGRpZmZl
cmVudCBmcm9tICJpbmRpcmVjdCBqdW1wcyIsICJpbmRpcmVjdCBicmFuY2hlcyIsIGFuZCAiY29t
cHV0ZWQgZ290b3MiIC0gYWxsIHRlcm1zIG9mIGFydAorICAgICAgICB1c2VkIGluIG90aGVyIGNv
bXBpbGVycy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaW1wbGVtZW50cyB0aGUgbW9zdCBiYXNp
YyBraW5kIG9mIFN3aXRjaC10by1Qb2x5SnVtcCBsb3dlcmluZyBpbiBCMzo6bG93ZXJNYWNyb3Mo
KS4gQXMKKyAgICAgICAgcGFydCBvZiB0aGUgZXhpc3RpbmcgZGl2aWRlLWFuZC1jb25xdWVyIHRo
YXQgY3JlYXRlcyBicmFuY2hlcywgaWYgaXQgZGV0ZWN0cyB0aGF0IHRoZSBzZXQgb2YKKyAgICAg
ICAgY2FzZXMgc2F0aXNmaWVzIHNvbWUgY29uZGl0aW9ucyAoZGVuc2l0eSBvZiBjYXNlIHZhbHVl
cyBhbmQgdG90YWwgc2l6ZSksIHRoZW4gaXQgd2lsbCBlbWl0IGEKKyAgICAgICAgUG9seUp1bXAu
CisgICAgICAgIAorICAgICAgICBUaGUgcHJvYmxlbSB3aXRoIGNsYXNzaWMgaW5kaXJlY3QganVt
cHMgaXMgdGhhdCB0aGV5IGZvcmNlIHRoZSBjb21waWxlciB0byBiZSBjb25zZXJ2YXRpdmUKKyAg
ICAgICAgYWJvdXQgY29udHJvbCBmbG93LiBUaGUgY29tcGlsZXIgbXVzdCBhc3N1bWUgdGhhdCB0
aGUgaW5kaXJlY3QganVtcCBtYXkgdHJhbnNmZXIgY29udHJvbCBmbG93CisgICAgICAgIHRvIGFu
eSBlc2NhcGVkIGJsb2NrIChibG9jayBsYWJlbGVkIGFzIGJlaW5nIGEgcG9zc2libGUgdGFyZ2V0
IGZvciBpbmRpcmVjdCBqdW1wcywgb3IgaWYgbm8KKyAgICAgICAgc3VjaCBsYWJlbGluZyBpcyBh
dmFpbGFibGUsIHRoZSBjb21waWxlciBtdXN0IGFzc3VtZSB0aGF0IGl0IG1heSB0YXJnZXQgYW55
IGJsb2NrKS4gVGhlIHdvcnN0CisgICAgICAgIHBhcnQgaXMgdGhhdCB0aGUgaW1wbGljaXQgY29u
dHJvbCBmbG93IGVkZ2VzIGZyb20gdGhlIGluZGlyZWN0IGp1bXAgdG8gdGhlIGVzY2FwZWQgYmxv
Y2tzCisgICAgICAgIGNhbm5vdCBiZSBicm9rZW4uIFRoaXMgaW52YWxpZGF0ZXMgYSBwcmluY2lw
bGUgb2YgQjMgSVI6IGFueSBwaGFzZSBtYXkgYnJlYWsgYW55IGNyaXRpY2FsCisgICAgICAgIGVk
Z2UgZm9yIGFueSByZWFzb24uIE91ciBTU0EgY29udmVyc2lvbiB3b3VsZCBicmVhayBpZiB3ZSBy
ZXZva2VkIHRoaXMgZmVhdHVyZS4gSXQncyBhY3R1YWxseQorICAgICAgICBtdWNoIHdvcnNlIHRo
YW4gdGhpcyAtIGJhc2ljYWxseSBhbnkgbG9naWMgb3ZlciBjb250cm9sIGZsb3cgd291bGQgaGF2
ZSB0byBiZSBoYWNrZWQgdG8gZGVhbAorICAgICAgICB3aXRoIHRoZXNlIHVuYnJlYWthYmxlIGVk
Z2VzLiBUaGlzIHdvdWxkIG1lYW4gY2hhbmdpbmcgYWxsIENGRyB0cmFuc2Zvcm1hdGlvbiB1dGls
aXRpZXMgYW5kCisgICAgICAgIHBhc3Nlcy4gV2UgaGF2ZSBhIGxvdCBvZiB0aG9zZSBhbmQgd2Ug
d2FudCBpdCB0byBiZSBlYXN5IHRvIHdyaXRlIG5ldyBvbmVzLgorICAgICAgICAKKyAgICAgICAg
VGhpcyBpcyB3aHkgd2UgdXNlIHNvbWV0aGluZyBuZXcgYW5kIHF1aXRlIGRpZmZlcmVudCBmcm9t
IGNsYXNzaWMgaW5kaXJlY3QganVtcHMuIFBvbHlKdW1wCisgICAgICAgIG1ha2VzIHRoZSBjb250
cm9sIGZsb3cgZWRnZXMgZXhwbGljaXQuIFRoZSBjbGllbnQgbXVzdCBzdXBwbHkgdGhlIHN1Y2Nl
c3NvcnMgd2hlbiBpdCBjcmVhdGVzCisgICAgICAgIHRoZSBQb2x5SnVtcC4gVGhlIGNvbXBpbGVy
IG1heSByZXdpcmUgdGhvc2Ugc3VjY2Vzc29yIGVkZ2VzIHRoZSBzYW1lIHdheSB0aGF0IGl0IHdv
dWxkIHJld2lyZQorICAgICAgICBhbnkgY29udHJvbCBmbG93IGVkZ2VzLiBDb25zZXF1ZW50bHkg
dGhlIHZhc3QgbWFqb3JpdHkgb2YgQ0ZHIHJlYXNvbmluZyBpbiBCMyBpcyB1bmNoYW5nZWQuCisg
ICAgICAgIElmIHlvdSBkb24ndCB3YW50IHRvIHVuZGVyc3RhbmQgUG9seUp1bXAsIGp1c3QgdGhp
bmsgb2YgaXQgbGlrZSB5b3Ugd291bGQgYSBTd2l0Y2ggd2l0aCBhbgorICAgICAgICBvcGFxdWUg
aW5jb21pbmcgdmFsdWUuIFRoaXMgd29ya3MgYmVjYXVzZSB3ZSBkbyBub3QgYWRkIGFueSBub3Rp
b24gb2YgZXNjYXBlZCBiYXNpYyBibG9ja3MuCisgICAgICAgIEluc3RlYWQgb2YgbGV0dGluZyB0
aGUgY2xpZW50IGdldCB0aGUgcG9pbnRlcnMgdG8gYmFzaWMgYmxvY2tzIGJ5IGVzY2FwaW5nIHRo
ZW0gbGlrZSBpbiBMTFZNLAorICAgICAgICB5b3UgY2FuIG9ubHkgZ2V0IHRoZSBwb2ludGVycyBv
ZiB0aGUgc3VjY2Vzc29ycyBvZiBQb2x5SnVtcCBieSByZWdpc3RlcmluZyBhIGNhbGxiYWNrIHdp
dGgKKyAgICAgICAgUG9seUp1bXAuIFRoaXMgY2FsbGJhY2sgZG9lc24ndCBhY3R1YWxseSBnaXZl
IHlvdSB0aGUgYWRkcmVzc2VzIG9mIGJhc2ljIGJsb2Nrcy4gSXQganVzdAorICAgICAgICBnaXZl
cyB5b3UgdGhlIGFkZHJlc3NlcyB3aGVyZSB5b3UgbXVzdCBqdW1wIHRvIHRyYW5zZmVyIGNvbnRy
b2wgZmxvdyBmcm9tIHRoYXQgUG9seUp1bXAgdG8KKyAgICAgICAgaXRzIHN1Y2Nlc3NvcnMuIFRo
aXMgbWVhbnMgdGhhdCB0aGUgbWFnaWMgb2YgUG9seUp1bXAgaXMgY29uZmluZWQgb25seSB0byB0
aGUgUG9seUp1bXAgaXRzZWxmCisgICAgICAgIGFuZCBkb2Vzbid0IGluZmVjdCByZWFzb25pbmcg
YWJvdXQgdGhlIGJhc2ljIGJsb2NrcyB0aGF0IGl0IGp1bXBzIHRvLgorICAgICAgICAKKyAgICAg
ICAgVGhlIG9ubHkgZG93bnNpZGUgaXMgdGhhdCB0aGF0IFBvbHlKdW1wIGlzIG5vdCBjbG9uZWFi
bGUuIFlvdSBjYW4ndCBjbG9uZSBpdCBiZWNhdXNlIGlmIHlvdQorICAgICAgICBkaWQsIHRoZW4g
dGhlIHR3byByZXN1bHRpbmcgUG9seUp1bXBzIG1heSBoYXZlIHRoZWlyIHN1Y2Nlc3NvciBlZGdl
cyByZXdpcmVkIGluZGVwZW5kZW50bHkgb2YKKyAgICAgICAgZWFjaCBvdGhlci4gVGhpcyBjb3Vs
ZCBlYXNpbHkgaGFwcGVuIGlmIHdlIGJyZWFrIGNyaXRpY2FsIGVkZ2VzLiBJZiB0aGF0IGRpZCBo
YXBwZW4gdGhlbiBpdAorICAgICAgICB3b3VsZCBicmVhayB0aGUgY2xpZW50IG9mIFBvbHlKdW1w
OiB0aGV5IHdvdWxkIGhhdmUgYWxyZWFkeSBjcmVhdGVkIHNvbWV0aGluZyBsaWtlIGEganVtcAor
ICAgICAgICB0YWJsZSBhbmQgd2lsbCBiZSBwb3B1bGF0aW5nIGl0IHZpYSB0aGUgY2FsbGJhY2ss
IGJ1dCBub3cgdGhlIGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkIHR3aWNlLAorICAgICAgICBhbmQg
bWF5IHJldHVybiBkaWZmZXJlbnQganVtcCBkZXN0aW5hdGlvbnMgZWFjaCB0aW1lLiBTbywgdGhp
cyBwYXRjaCBpbnRyb2R1Y2VzCisgICAgICAgIFZhbHVlOjppc0Nsb25lYWJsZSgpIGFuZCB0ZWFj
aGVzIGJvdGggb2Ygb3VyIGNvZGUgc3BlY2lhbGl6YXRpb24gb3B0aW1pemF0aW9ucyAodGFpbAor
ICAgICAgICBkdXBsaWNhdGlvbiBhbmQgc2VsZWN0IHNwZWNpYWxpemF0aW9uKSB0byBiYWlsIGlm
IHRoZSBjb2RlIHRoZXkgd2FudCB0byBzcGVjaWFsaXplIGlzIG5vdAorICAgICAgICBjbG9uZWFi
bGUuIFRoaXMgaXMgdG90YWxseSBiZW5pZ24gbW9zdCBvZiB0aGUgdGltZSwgc2luY2UgdGhvc2Ug
b3B0aW1pemF0aW9ucyB1c3VhbGx5IHJ1bgorICAgICAgICBiZWZvcmUgU3dpdGNoIGxvd2VyaW5n
LiBDbGllbnRzIHRoYXQgdXNlIFBvbHlKdW1wIGRpcmVjdGx5IGhhdmUgdG8gYXBwcmVjaWF0ZSB0
aGUgdHJhZGUtb2ZmOgorICAgICAgICBQb2x5SnVtcCBtYXkgZ2FpbiB0aGVtIHNvbWUgcGVyZm9y
bWFuY2UgYnV0IHRoZXkgYXJlIG9wdGluZyBvdXQgb2Ygb3B0aW1pemF0aW9ucyB0aGF0IHVzZQor
ICAgICAgICBjbG9uaW5nLiBBIGNsb3NlIGNvcm9sbGFyeSBvZiB0aGUgbm8tY2xvbmUgcnVsZSBp
cyB0aGF0IHRoZSBjbGllbnQgY2Fubm90IGNyZWF0ZSBtdWx0aXBsZQorICAgICAgICBQb2x5SnVt
cHMgdGhhdCBhcmUgZmVkIGJ5IGEgY29tbW9uIGp1bXAgdGFibGU6IHRoZSBmYWN0IHRoYXQgZWFj
aCBQb2x5SnVtcCBoYXMgYSBjYWxsYmFjaworICAgICAgICB0aGF0IGp1c3QgdGVsbHMgeW91IHRo
ZSBqdW1wIGRlc3RpbmF0aW9ucyBmb3IgaXRzIHN1Y2Nlc3NvciAqZWRnZXMqLCBub3Qgc3VjY2Vz
c29yICpibG9ja3MqLAorICAgICAgICBtZWFucyB0aGF0IGlmIHlvdSBjcmVhdGUgdHdvIFBvbHlK
dW1wcyBhbmQgZ2l2ZSB0aGVtIHRoZSBzYW1lIHN1Y2Nlc3NvciBsaXN0LCB5b3UgYXJlIG5vdAor
ICAgICAgICBndWFyYW50ZWVkIHRoYXQgdGhleSB3aWxsIGdldCB0aGUgc2FtZSBqdW1wIGRlc3Rp
bmF0aW9ucy4gVGhpcyBodXJ0cyBpZiB5b3Ugd2FudCB0byB1c2UKKyAgICAgICAgUG9seUp1bXAg
Zm9yIHRocmVhZGVkIGludGVycHJldGVycyBidXQgaXQncyBoYXJtbGVzcyBmb3Igc3dpdGNoIGxv
d2VyaW5nLiBUaGUgZ29hbCBvZgorICAgICAgICBQb2x5SnVtcCBpcyB0byBiZSBhd2Vzb21lIGZv
ciBzd2l0Y2ggbG93ZXJpbmcgd2hpbGUgbm90IGJyZWFraW5nIHRoZSByZXN0IG9mIHRoZSBjb21w
aWxlciwgc28KKyAgICAgICAgdGhpcyBpcyBwcm9iYWJseSBmaW5lLgorICAgICAgICAKKyAgICAg
ICAgVGhlIGlzQ2xvbmVhYmxlKCkgbWV0aG9kIGN1cnJlbnRseSBvbmx5IHJldHVybnMgdHJ1ZSBm
b3IgUG9seUp1bXAsIGJ1dCBJIGFudGljaXBhdGUgd2Ugd2lsbAorICAgICAgICBhZGQgb3RoZXIg
bm9uLWNsb25lYWJsZSB0aGluZ3MgbGF0ZXIuIEkgdGhpbmsgaXMgaXMgaW5oZXJlbnQgaW4gYSBj
b21waWxlciB0aGF0IGFsbG93cyBzdWNoCisgICAgICAgIGN1c3RvbWl6ZWFiaWxpdHkgZm9yIGl0
cyBjbGllbnRzLiBGb3IgZXhhbXBsZSwgd2UgbWF5IHdhbnQgdG8gYWRkIGEgZmxhZyB0byBQYXRj
aHBvaW50IHRoYXQKKyAgICAgICAgbWFrZXMgaXQgbm9uLWNsb25lYWJsZS4gU29tZXRpbWVzIHdl
IGhhdmUgdG8ganVtcCB0aHJvdWdoIGhvb3BzIGluIHRoZSBGVEwgYmVjYXVzZSBvZiB0aGUKKyAg
ICAgICAgY2xvbmVhYmlsaXR5IG9mIHBhdGNocG9pbnRzLiBUaGlzIGhhcHBlbnMgaW4gT1NSIGV4
aXRzLCB3aGljaCBwYXkgYSBzaWduaWZpY2FudCBtZW1vcnkgY29zdAorICAgICAgICBmb3IgYWRk
aXRpb25hbCBkYXRhIHN0cnVjdHVyZXMgdGhhdCBhcmUgdGhlcmUgaW4gY2FzZSBhbiBleGl0IGdl
dHMgY2xvbmVkLiBJdCBtYXkgYmUgbW9yZQorICAgICAgICBwcm9maXRhYmxlIHRvIGp1c3Qgc2F5
IHRoYXQgT1NSIGV4aXRzIChpLmUuIENoZWNrcyBhbmQgSW52YWxpZGF0aW9uUG9pbnQgUGF0Y2hw
b2ludHMpIGFyZSBub3QKKyAgICAgICAgY2xvbmVhYmxlLiBTdXJlbHkgdGhpcyB3b3VsZCByZWR1
Y2UgdGFpbCBkdXBsaWNhdGlvbiwgYnV0IHRhaWwgZHVwbGljYXRpb24gaXMgbW9zdCBwcm9maXRh
YmxlCisgICAgICAgIHdoZW4gaXQgY2xvbmVzIG9ubHkgYSB0aW55IGFtb3VudCBvZiBjb2RlOyBp
ZiB0aGVyZSdzIGFuIGV4aXQgdGhlbiB3ZSdyZSBub3QgdGFsa2luZyBhYm91dCBhCisgICAgICAg
IHRpbnkgYW1vdW50IG9mIGNvZGUgYW55bW9yZS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaXMg
YSB+MzAlIHNwZWVkLXVwIG9uIG1pY3JvYmVuY2htYXJrcyB0aGF0IGhhdmUgYmlnIHN3aXRjaCBz
dGF0ZW1lbnRzICh+NjAgY2FzZXMpLiBJdCdzCisgICAgICAgIG5vdCBhIHNwZWVkLXVwIG9uIG1h
aW5zdHJlYW0gYmVuY2htYXJrcy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgYWxzbyBhZGRzIGEg
bmV3IHRlc3QgdG8gdGVzdGIzIGZvciBQb2x5SnVtcCwgR2V0LCBhbmQgU2V0LiBUaGUgRlRMIGRv
ZXMgbm90IGN1cnJlbnRseQorICAgICAgICB1c2UgUG9seUp1bXAgZGlyZWN0bHksIGJ1dCB3ZSB3
YW50IHRoaXMgdG8gYmUgcG9zc2libGUuIEl0IGFsc28gZG9lc24ndCB1c2UgR2V0L1NldCBkaXJl
Y3RseQorICAgICAgICBldmVuIHRob3VnaCB3ZSB3YW50IHRoaXMgdG8gYmUgcG9zc2libGUuIEl0
J3MgaW1wb3J0YW50IHRvIHRlc3QgdGhlc2Ugc2luY2Ugb3Bjb2RlcyB0aGF0CisgICAgICAgIHJl
c3VsdCBmcm9tIGxvd2VyaW5nIGRvbid0IGFmZmVjdCBlYXJseSBwaGFzZXMsIHNvIHdlIGNvdWxk
IGhhdmUgcmVncmVzc2lvbnMgaW4gZWFybHkgcGhhc2VzCisgICAgICAgIHJlbGF0ZWQgdG8gdGhl
c2Ugb3Bjb2RlcyB0aGF0IHdvdWxkbid0IGJlIGNhdWdodCBieSBhbnkgSlMgdGVzdC4gU28sIHRo
aXMgYWRkcyBhIHZlcnkgYmFzaWMKKyAgICAgICAgdGhyZWFkZWQgaW50ZXJwcmV0ZXIgdG8gdGVz
dGIzIGZvciBhIEJyYWluZnVjay1zdHlsZSBsYW5ndWFnZSwgYW5kIHRlc3RzIGl0IGJ5IGhhdmlu
ZyBpdCBydW4KKyAgICAgICAgYSBwcm9ncmFtIHRoYXQgcHJpbnRzIHRoZSBudW1iZXJzIDEuLjEw
MCBpbiBhIGxvb3AuIFVubGlrZSBhIHJlYWwgdGhyZWFkZWQgaW50ZXJwcmV0ZXIsIGl0CisgICAg
ICAgIHVzZXMgYSBjb21tb24gZGlzcGF0Y2ggYmxvY2sgcmF0aGVyIHRoYW4gaGF2aW5nIGRpc3Bh
dGNoIGF0IHRoZSB0ZXJtaW51cyBvZiBlYWNoIG9wY29kZS4KKyAgICAgICAgVGhhdCdzIG5lY2Vz
c2FyeSBiZWNhdXNlIFBvbHlKdW1wIGlzIG5vdCBjbG9uZWFibGUuIFRoZSBzdGF0ZSBvZiB0aGUg
aW50ZXJwcmV0ZXIgaXMKKyAgICAgICAgcmVwcmVzZW50ZWQgdXNpbmcgVmFyaWFibGVzIHRoYXQg
d2UgR2V0IGFuZCBTZXQsIHNvIGl0IHRlc3RzIEdldC9TZXQgYXMgd2VsbC4KKworICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9u
Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpqdW1wKToKKyAgICAg
ICAgKiBhc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxl
cjo6am1wX20pOgorICAgICAgICAqIGIzL0IzQmFzaWNCbG9jay5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpCYXNpY0Jsb2NrOjp1cGRhdGVQcmVkZWNlc3NvcnNBZnRlcik6CisgICAgICAgIChKU0M6
OkIzOjpCYXNpY0Jsb2NrOjppc0Nsb25lYWJsZSk6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Js
b2NrOjpkdW1wKToKKyAgICAgICAgKiBiMy9CM0Jhc2ljQmxvY2suaDoKKyAgICAgICAgKEpTQzo6
QjM6OkJhc2ljQmxvY2s6OmZyZXF1ZW5jeSk6CisgICAgICAgICogYjMvQjNDb21tb24uaDoKKyAg
ICAgICAgKEpTQzo6QjM6OmlzNjRCaXQpOgorICAgICAgICAqIGIzL0IzQ29udHJvbFZhbHVlLmg6
CisgICAgICAgICogYjMvQjNEYXRhU2VjdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkIzOjpEYXRh
U2VjdGlvbjo6RGF0YVNlY3Rpb24pOgorICAgICAgICAqIGIzL0IzRHVwbGljYXRlVGFpbHMuY3Bw
OgorICAgICAgICAqIGIzL0IzTG93ZXJNYWNyb3MuY3BwOgorICAgICAgICAqIGIzL0IzTG93ZXJU
b0Fpci5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okxvd2VyVG9BaXI6Omxvd2VyKToKKyAg
ICAgICAgKiBiMy9CM09wY29kZS5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgor
ICAgICAgICAqIGIzL0IzT3Bjb2RlLmg6CisgICAgICAgICogYjMvQjNQb2x5SnVtcFZhbHVlLmNw
cDogQWRkZWQuCisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjp+UG9seUp1bXBWYWx1
ZSk6CisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjphcHBlbmRTdWNjZXNzb3IpOgor
ICAgICAgICAoSlNDOjpCMzo6UG9seUp1bXBWYWx1ZTo6c2V0Q2FsbGJhY2tUYXNrKToKKyAgICAg
ICAgKEpTQzo6QjM6OlBvbHlKdW1wVmFsdWU6OmlzQ2xvbmVhYmxlKToKKyAgICAgICAgKEpTQzo6
QjM6OlBvbHlKdW1wVmFsdWU6OmR1bXBNZXRhKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1w
VmFsdWU6OmNsb25lSW1wbCk6CisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjpQb2x5
SnVtcFZhbHVlKToKKyAgICAgICAgKiBiMy9CM1BvbHlKdW1wVmFsdWUuaDogQWRkZWQuCisgICAg
ICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjphY2NlcHRzKToKKyAgICAgICAgKEpTQzo6QjM6
OlBvbHlKdW1wVmFsdWU6OnNldENhbGxiYWNrKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1w
VmFsdWU6OmNhbGxiYWNrVGFzayk6CisgICAgICAgICogYjMvQjNQcm9jZWR1cmUuY3BwOgorICAg
ICAgICAoSlNDOjpCMzo6UHJvY2VkdXJlOjpjbG9uZSk6CisgICAgICAgICogYjMvQjNQcm9jZWR1
cmUuaDoKKyAgICAgICAgKEpTQzo6QjM6OlByb2NlZHVyZTo6bGFzdFBoYXNlTmFtZSk6CisgICAg
ICAgIChKU0M6OkIzOjpQcm9jZWR1cmU6OmJ5cHJvZHVjdHMpOgorICAgICAgICAqIGIzL0IzUmVk
dWNlU3RyZW5ndGguY3BwOgorICAgICAgICAqIGIzL0IzVmFsaWRhdGUuY3BwOgorICAgICAgICAq
IGIzL0IzVmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6OmVmZmVjdHMpOgorICAg
ICAgICAoSlNDOjpCMzo6VmFsdWU6OmlzQ2xvbmVhYmxlKToKKyAgICAgICAgKEpTQzo6QjM6OlZh
bHVlOjprZXkpOgorICAgICAgICAqIGIzL0IzVmFsdWUuaDoKKyAgICAgICAgKiBiMy9haXIvQWly
Q29kZS5oOgorICAgICAgICAqIGIzL2Fpci9BaXJHZW5lcmF0ZS5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpBaXI6OmdlbmVyYXRlKToKKyAgICAgICAgKiBiMy9haXIvQWlySW5zdC5jcHA6CisgICAg
ICAgIChKU0M6OkIzOjpBaXI6Okluc3Q6Omhhc0FyZ0VmZmVjdHMpOgorICAgICAgICAoSlNDOjpC
Mzo6QWlyOjpJbnN0Ojppc0Nsb25lYWJsZSk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okluc3Q6
OmR1bXApOgorICAgICAgICAqIGIzL2Fpci9BaXJJbnN0Lmg6CisgICAgICAgICogYjMvYWlyL0Fp
ck9wY29kZS5vcGNvZGVzOgorICAgICAgICAqIGIzL3Rlc3RiMy5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpzaG91bGRCZVZlcmJvc2UpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN3aXRjaENoaWxs
RGl2KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RMYXRlUmVnaXN0ZXIpOgorICAgICAgICAoSlND
OjpCMzo6dGhyZWFkZWRJbnRlcnByZXRlclByaW50KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RU
aHJlYWRlZEludGVycHJldGVyKToKKyAgICAgICAgKEpTQzo6QjM6Onplcm8pOgorICAgICAgICAo
SlNDOjpCMzo6cnVuKToKKwogMjAxNi0wNy0wMyAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gRExMcyBhcmUgbWlzc2luZyB2ZXJzaW9uIGluZm9y
bWF0aW9uLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24g
MjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0xMDgsNiArMTA4LDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAg
ICBiMy9CM0Jsb2NrSW5zZXJ0aW9uU2V0LmNwcAogICAgIGIzL0IzQnJlYWtDcml0aWNhbEVkZ2Vz
LmNwcAogICAgIGIzL0IzQ0NhbGxWYWx1ZS5jcHAKKyAgICBiMy9CM0Nhc2VDb2xsZWN0aW9uLmNw
cAogICAgIGIzL0IzQ2hlY2tTcGVjaWFsLmNwcAogICAgIGIzL0IzQ2hlY2tWYWx1ZS5jcHAKICAg
ICBiMy9CM0NvbW1vbi5jcHAKQEAgLTExOCw3ICsxMTksNiBAQCBzZXQoSmF2YVNjcmlwdENvcmVf
U09VUkNFUwogICAgIGIzL0IzQ29uc3REb3VibGVWYWx1ZS5jcHAKICAgICBiMy9CM0NvbnN0Rmxv
YXRWYWx1ZS5jcHAKICAgICBiMy9CM0NvbnN0cmFpbmVkVmFsdWUuY3BwCi0gICAgYjMvQjNDb250
cm9sVmFsdWUuY3BwCiAgICAgYjMvQjNEYXRhU2VjdGlvbi5jcHAKICAgICBiMy9CM0R1cGxpY2F0
ZVRhaWxzLmNwcAogICAgIGIzL0IzRWZmZWN0cy5jcHAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAt
NzczLDggKzc3Myw2IEBACiAJCTBGRUM4NTEwMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0NjRW
YWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZF
Qzg0QzYxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29uc3Q2NFZhbHVlLmggKi87IH07CiAJCTBGRUM4
NTExMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0RG91YmxlVmFsdWUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZFQzg0QzcxQkRBQ0RBQzAwODBG
Rjc0IC8qIEIzQ29uc3REb3VibGVWYWx1ZS5jcHAgKi87IH07CiAJCTBGRUM4NTEyMUJEQUNEQUMw
MDgwRkY3NCAvKiBCM0NvbnN0RG91YmxlVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRUM4NEM4MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0
RG91YmxlVmFsdWUuaCAqLzsgfTsKLQkJMEZFQzg1MTMxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29u
dHJvbFZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGRUM4NEM5MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnRyb2xWYWx1ZS5jcHAgKi87IH07
Ci0JCTBGRUM4NTE0MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnRyb2xWYWx1ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZFQzg0Q0ExQkRBQ0RBQzAw
ODBGRjc0IC8qIEIzQ29udHJvbFZhbHVlLmggKi87IH07CiAJCTBGRUM4NTE1MUJEQUNEQUMwMDgw
RkY3NCAvKiBCM0ZyZXF1ZW5jeUNsYXNzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGRUM4NENCMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0ZyZXF1ZW5j
eUNsYXNzLmNwcCAqLzsgfTsKIAkJMEZFQzg1MTYxQkRBQ0RBQzAwODBGRjc0IC8qIEIzRnJlcXVl
bmN5Q2xhc3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGRUM4NENDMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0ZyZXF1ZW5jeUNsYXNzLmggKi87IH07CiAJ
CTBGRUM4NTE3MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0ZyZXF1ZW50ZWRCbG9jay5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZFQzg0Q0QxQkRBQ0RBQzAw
ODBGRjc0IC8qIEIzRnJlcXVlbnRlZEJsb2NrLmggKi87IH07CkBAIC0xOTk3LDYgKzE5OTUsOSBA
QAogCQlEQzY5QUE2NjFDRjdBMUYyMDBDNjI3MkYgLyogTWF0Y2hSZXN1bHQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM2OUFBNjUxQ0Y3QTFFRjAw
QzYyNzJGIC8qIE1hdGNoUmVzdWx0LmNwcCAqLzsgfTsKIAkJREM3OTk3ODMxQ0RFOUZBMDAwNEQ0
QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IERDNzk5NzgyMUNERTlGOUUwMDRENEEwOSAvKiBUYWdSZWdpc3RlcnNN
b2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
REM3OTk3ODQxQ0RFOUZBMjAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM3OTk3ODExQ0RFOUY5RTAw
NEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuY3BwICovOyB9OworCQlEQzlBMEMxRjFEMkQ5Q0Ix
MDA4NTEyNEUgLyogQjNDYXNlQ29sbGVjdGlvbklubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDOUEwQzFFMUQyRDk0RUYwMDg1MTI0RSAvKiBC
M0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oICovOyB9OworCQlEQzlBMEMyMDFEMkQ5Q0IzMDA4NTEy
NEUgLyogQjNDYXNlQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gREM5QTBDMUQxRDJEOTRFRjAwODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rp
b24uaCAqLzsgfTsKKwkJREM5QTBDMjExRDJEOUNCNDAwODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rp
b24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM5
QTBDMUMxRDJEOTRFRjAwODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rpb24uY3BwICovOyB9OwogCQlE
Q0VFMjIwOTFDRUI5ODk1MDAwQzIzOTYgLyogREZHQmFja3dhcmRzQ0ZHLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQ0VFMjIwNjFDRUI5ODkwMDAwQzIz
OTYgLyogREZHQmFja3dhcmRzQ0ZHLmggKi87IH07CiAJCURDRUUyMjBBMUNFQjk4OTUwMDBDMjM5
NiAvKiBERkdCYWNrd2FyZHNEb21pbmF0b3JzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBEQ0VFMjIwNzFDRUI5ODkwMDAwQzIzOTYgLyogREZHQmFja3dh
cmRzRG9taW5hdG9ycy5oICovOyB9OwogCQlEQ0VFMjIwQjFDRUI5ODk1MDAwQzIzOTYgLyogREZH
Q29udHJvbEVxdWl2YWxlbmNlQW5hbHlzaXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IERDRUUyMjA4MUNFQjk4OTAwMDBDMjM5NiAvKiBERkdDb250cm9s
RXF1aXZhbGVuY2VBbmFseXNpcy5oICovOyB9OwpAQCAtMjk2NCw4ICsyOTY1LDYgQEAKIAkJMEZF
Qzg0QzYxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29uc3Q2NFZhbHVlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IEIzQ29uc3Q2NFZhbHVlLmg7IHBhdGggPSBiMy9CM0NvbnN0NjRW
YWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkVDODRDNzFCREFDREFDMDA4
MEZGNzQgLyogQjNDb25zdERvdWJsZVZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IEIzQ29uc3REb3VibGVWYWx1ZS5jcHA7IHBhdGggPSBiMy9CM0NvbnN0RG91
YmxlVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkVDODRDODFCREFD
REFDMDA4MEZGNzQgLyogQjNDb25zdERvdWJsZVZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IEIzQ29uc3REb3VibGVWYWx1ZS5oOyBwYXRoID0gYjMvQjNDb25zdERvdWJs
ZVZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGRUM4NEM5MUJEQUNEQUMw
MDgwRkY3NCAvKiBCM0NvbnRyb2xWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBCM0NvbnRyb2xWYWx1ZS5jcHA7IHBhdGggPSBiMy9CM0NvbnRyb2xWYWx1ZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGRUM4NENBMUJEQUNEQUMwMDgwRkY3
NCAvKiBCM0NvbnRyb2xWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBC
M0NvbnRyb2xWYWx1ZS5oOyBwYXRoID0gYjMvQjNDb250cm9sVmFsdWUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEZFQzg0Q0IxQkRBQ0RBQzAwODBGRjc0IC8qIEIzRnJlcXVlbmN5
Q2xhc3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQjNGcmVxdWVu
Y3lDbGFzcy5jcHA7IHBhdGggPSBiMy9CM0ZyZXF1ZW5jeUNsYXNzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEZFQzg0Q0MxQkRBQ0RBQzAwODBGRjc0IC8qIEIzRnJlcXVlbmN5
Q2xhc3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQjNGcmVxdWVuY3lDbGFz
cy5oOyBwYXRoID0gYjMvQjNGcmVxdWVuY3lDbGFzcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRkVDODRDRDFCREFDREFDMDA4MEZGNzQgLyogQjNGcmVxdWVudGVkQmxvY2suaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQjNGcmVxdWVudGVkQmxvY2suaDsgcGF0
aCA9IGIzL0IzRnJlcXVlbnRlZEJsb2NrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC00MjI1LDYgKzQyMjQsOSBAQAogCQlEQzY5QUE2NTFDRjdBMUVGMDBDNjI3MkYgLyogTWF0Y2hS
ZXN1bHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWF0Y2hSZXN1
bHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzc5OTc4MTFDREU5RjlFMDA0
RDRBMDkgLyogVGFnUmVnaXN0ZXJzTW9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBUYWdSZWdpc3RlcnNNb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJREM3OTk3ODIxQ0RFOUY5RTAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGFnUmVnaXN0ZXJzTW9kZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlEQzlBMEMxQzFEMkQ5NEVGMDA4NTEyNEUgLyogQjNDYXNl
Q29sbGVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBCM0Nh
c2VDb2xsZWN0aW9uLmNwcDsgcGF0aCA9IGIzL0IzQ2FzZUNvbGxlY3Rpb24uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlEQzlBMEMxRDFEMkQ5NEVGMDA4NTEyNEUgLyogQjNDYXNl
Q29sbGVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCM0Nhc2VDb2xs
ZWN0aW9uLmg7IHBhdGggPSBiMy9CM0Nhc2VDb2xsZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCURDOUEwQzFFMUQyRDk0RUYwMDg1MTI0RSAvKiBCM0Nhc2VDb2xsZWN0aW9u
SW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCM0Nhc2VDb2xsZWN0
aW9uSW5saW5lcy5oOyBwYXRoID0gYjMvQjNDYXNlQ29sbGVjdGlvbklubGluZXMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRENFRTIyMDYxQ0VCOTg5MDAwMEMyMzk2IC8qIERGR0Jh
Y2t3YXJkc0NGRy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdCYWNrd2Fy
ZHNDRkcuaDsgcGF0aCA9IGRmZy9ERkdCYWNrd2FyZHNDRkcuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRENFRTIyMDcxQ0VCOTg5MDAwMEMyMzk2IC8qIERGR0JhY2t3YXJkc0RvbWlu
YXRvcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHQmFja3dhcmRzRG9t
aW5hdG9ycy5oOyBwYXRoID0gZGZnL0RGR0JhY2t3YXJkc0RvbWluYXRvcnMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRENFRTIyMDgxQ0VCOTg5MDAwMEMyMzk2IC8qIERGR0NvbnRy
b2xFcXVpdmFsZW5jZUFuYWx5c2lzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IERGR0NvbnRyb2xFcXVpdmFsZW5jZUFuYWx5c2lzLmg7IHBhdGggPSBkZmcvREZHQ29udHJvbEVx
dWl2YWxlbmNlQW5hbHlzaXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ2OTAs
NiArNDY5Miw5IEBACiAJCQkJRENGREZCRDcxRDFGNUQ5ODAwRkUzRDcyIC8qIEIzQm90dG9tUHJv
dmlkZXIuaCAqLywKIAkJCQkwRjZCOEFERTFDNEVGRTE3MDA5NjkwNTIgLyogQjNCcmVha0NyaXRp
Y2FsRWRnZXMuY3BwICovLAogCQkJCTBGNkI4QURGMUM0RUZFMTcwMDk2OTA1MiAvKiBCM0JyZWFr
Q3JpdGljYWxFZGdlcy5oICovLAorCQkJCURDOUEwQzFDMUQyRDk0RUYwMDg1MTI0RSAvKiBCM0Nh
c2VDb2xsZWN0aW9uLmNwcCAqLywKKwkJCQlEQzlBMEMxRDFEMkQ5NEVGMDA4NTEyNEUgLyogQjND
YXNlQ29sbGVjdGlvbi5oICovLAorCQkJCURDOUEwQzFFMUQyRDk0RUYwMDg1MTI0RSAvKiBCM0Nh
c2VDb2xsZWN0aW9uSW5saW5lcy5oICovLAogCQkJCTBGMzM4REY3MUJFOTZBQTgwMDEzQzg4RiAv
KiBCM0NDYWxsVmFsdWUuY3BwICovLAogCQkJCTBGMzM4REY4MUJFOTZBQTgwMDEzQzg4RiAvKiBC
M0NDYWxsVmFsdWUuaCAqLywKIAkJCQkwRjMzRkNGOTFDMTYyNUJFMDAzMjNGNjcgLyogQjNDRkcu
aCAqLywKQEAgLTQ3MTUsOCArNDcyMCw2IEBACiAJCQkJMEZFQzg1QjIxQkRFRDk1NzAwODBGRjc0
IC8qIEIzQ29uc3RQdHJWYWx1ZS5oICovLAogCQkJCTBGMzM4REYzMUJFOTNENTUwMDEzQzg4RiAv
KiBCM0NvbnN0cmFpbmVkVmFsdWUuY3BwICovLAogCQkJCTBGMzM4REY0MUJFOTNENTUwMDEzQzg4
RiAvKiBCM0NvbnN0cmFpbmVkVmFsdWUuaCAqLywKLQkJCQkwRkVDODRDOTFCREFDREFDMDA4MEZG
NzQgLyogQjNDb250cm9sVmFsdWUuY3BwICovLAotCQkJCTBGRUM4NENBMUJEQUNEQUMwMDgwRkY3
NCAvKiBCM0NvbnRyb2xWYWx1ZS5oICovLAogCQkJCTBGMzM4RTAxMUJGMDI3NkMwMDEzQzg4RiAv
KiBCM0RhdGFTZWN0aW9uLmNwcCAqLywKIAkJCQkwRjMzOEUwMjFCRjAyNzZDMDAxM0M4OEYgLyog
QjNEYXRhU2VjdGlvbi5oICovLAogCQkJCTBGMzNGQ0ZBMUMxNjI1QkUwMDMyM0Y2NyAvKiBCM0Rv
bWluYXRvcnMuaCAqLywKQEAgLTcwNjgsNyArNzA3MSw2IEBACiAJCQkJMEZFQzg1MTAxQkRBQ0RB
QzAwODBGRjc0IC8qIEIzQ29uc3Q2NFZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODUx
MjFCREFDREFDMDA4MEZGNzQgLyogQjNDb25zdERvdWJsZVZhbHVlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkVDODVCMzFCREVEOTU3MDA4MEZGNzQgLyogQjNDb25zdFB0clZhbHVlLmggaW4gSGVh
ZGVycyAqLywKLQkJCQkwRkVDODUxNDFCREFDREFDMDA4MEZGNzQgLyogQjNDb250cm9sVmFsdWUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NUMxMUJFMTY3QTAwMDgwRkY3NCAvKiBCM0VmZmVj
dHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTE2MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0Zy
ZXF1ZW5jeUNsYXNzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjYxODMyRjFDNDVCRjA3MDA3MjQ1
MEIgLyogQWlyTG93ZXJBZnRlclJlZ0FsbG9jLmggaW4gSGVhZGVycyAqLywKQEAgLTcyMjUsNiAr
NzIyNyw3IEBACiAJCQkJQkMxOEMzRkIwRTE2RjVDRDAwQjM0NDYwIC8qIERlYnVnZ2VyQ2FsbEZy
YW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQk2QUQyQ0I0RDE5QjkxNDAxMDAwNjU3MTkgLyogRGVi
dWdnZXJFdmFsRW5hYmxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkVBMDg2MjExODJCN0EwNDAw
RjZEODUxIC8qIERlYnVnZ2VyUHJpbWl0aXZlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJREM5QTBD
MUYxRDJEOUNCMTAwODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rpb25JbmxpbmVzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjJENERERTE5ODMyRDM0MDA3RDRCMTkgLyogRGVidWdnZXJTY29wZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEYxMzZENEQxNzRBRDY5RTAwNzVCMzU0IC8qIERlZmVyR0MuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGQzcxMkRGMTdDRDg3N0MwMDhDQzkzQyAvKiBEZWZlcnJlZENv
bXBpbGF0aW9uQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLApAQCAtNzQ3OCw2ICs3NDgxLDcgQEAK
IAkJCQkwRkUwRTRBRTFDMjRDOTRBMDAyRTE3QjYgLyogQWlyVG1wV2lkdGguaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE3RjI5OTZDMTdBMEJCNjcwMDEwNDE3QSAvKiBGVExGYWlsLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRkVBMEEyQzE3MEI2NjE5MDBCQjcyMkMgLyogRlRMRm9ybWF0dGVkVmFsdWUu
aCBpbiBIZWFkZXJzICovLAorCQkJCURDOUEwQzIwMUQyRDlDQjMwMDg1MTI0RSAvKiBCM0Nhc2VD
b2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkQ4QTMxQTE3RDUxRjIyMDBDQTJDNDAg
LyogRlRMRm9yT1NSRW50cnlKSVRDb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzhBOTc3RjE3
OTczOEQ1MDA5REY3NDQgLyogRlRMR2VuZXJhdGVkRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGRUEwQTBFMTcwNTEzREIwMEJCNzIyQyAvKiBGVExKSVRDb2RlLmggaW4gSGVhZGVycyAq
LywKQEAgLTg3MTEsNyArODcxNSw2IEBACiAJCQkJNDM2RTU0NTQxQzQ2OEU3NzAwQjVBRjczIC8q
IEIzTGVnYWxpemVNZW1vcnlPZmZzZXRzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRUM4NTBG
MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0NjRWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwRkVDODUxMTFCREFDREFDMDA4MEZGNzQgLyogQjNDb25zdERvdWJsZVZhbHVlLmNwcCBpbiBT
b3VyY2VzICovLAotCQkJCTBGRUM4NTEzMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnRyb2xWYWx1
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkVDODVDNTFCRTE2RjVBMDA4MEZGNzQgLyogQjNF
ZmZlY3RzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRUM4NTE1MUJEQUNEQUMwMDgwRkY3NCAv
KiBCM0ZyZXF1ZW5jeUNsYXNzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRUM4NTE4MUJEQUNE
QUMwMDgwRkY3NCAvKiBCM0dlbmVyYXRlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtOTE1Niw2ICs5
MTU5LDcgQEAKIAkJCQkxNDdGMzlEMjEwN0VDMzc2MDA0MjdBNDggLyogSlNHbG9iYWxPYmplY3Qu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVGRDAwODUxODlCMUI3RTAwNjMzMjMxIC8qIEpTR2xv
YmFsT2JqZWN0Q29uc29sZUFnZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1QzNBMUE1MThD
MDQ5MDIwMEM5NTkzQSAvKiBKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJREM5QTBDMjExRDJEOUNCNDAwODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rpb24u
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTU5NDU1OTIxODI0NzQ0NzAwQ0MzODQzIC8qIEpTR2xv
YmFsT2JqZWN0RGVidWdnYWJsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTdEMjNFOTE4OTFC
MDc3MDAzMUM3RkEgLyogSlNHbG9iYWxPYmplY3REZWJ1Z2dlckFnZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTE0RTlEMTdCMTA3RUM0NjkwMDREREEyMSAvKiBKU0dsb2JhbE9iamVjdEZ1bmN0
aW9ucy5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCShyZXZpc2lvbiAyMDI4MDkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQu
aAkod29ya2luZyBjb3B5KQpAQCAtMjg3NCw2ICsyODc0LDEyIEBAIHB1YmxpYzoKICAgICAgICAg
bG9hZDY0KGFkZHJlc3MsIGdldENhY2hlZERhdGFUZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUo
KSk7CiAgICAgICAgIG1fYXNzZW1ibGVyLmJyKGRhdGFUZW1wUmVnaXN0ZXIpOwogICAgIH0KKyAg
ICAKKyAgICB2b2lkIGp1bXAoQmFzZUluZGV4IGFkZHJlc3MpCisgICAgeworICAgICAgICBsb2Fk
NjQoYWRkcmVzcywgZ2V0Q2FjaGVkRGF0YVRlbXBSZWdpc3RlcklEQW5kSW52YWxpZGF0ZSgpKTsK
KyAgICAgICAgbV9hc3NlbWJsZXIuYnIoZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgfQogCiAgICAg
dm9pZCBqdW1wKEFic29sdXRlQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2
Q29tbW9uLmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaAkod29ya2luZyBjb3B5KQpAQCAtMjI2Myw2
ICsyMjYzLDEyIEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIuam1wX20oYWRkcmVzcy5v
ZmZzZXQsIGFkZHJlc3MuYmFzZSk7CiAgICAgfQogCisgICAgLy8gQWRkcmVzcyBpcyBhIG1lbW9y
eSBsb2NhdGlvbiBjb250YWluaW5nIHRoZSBhZGRyZXNzIHRvIGp1bXAgdG8KKyAgICB2b2lkIGp1
bXAoQmFzZUluZGV4IGFkZHJlc3MpCisgICAgeworICAgICAgICBtX2Fzc2VtYmxlci5qbXBfbShh
ZGRyZXNzLm9mZnNldCwgYWRkcmVzcy5iYXNlLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxl
KTsKKyAgICB9CisKIAogICAgIC8vIEFyaXRobWV0aWMgY29udHJvbCBmbG93IG9wZXJhdGlvbnM6
CiAgICAgLy8KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1i
bGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZB
c3NlbWJsZXIuaAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9YODZBc3NlbWJsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTk4Myw2ICsxOTgzLDEx
IEBAIHB1YmxpYzoKICAgICAgICAgbV9mb3JtYXR0ZXIub25lQnl0ZU9wKE9QX0dST1VQNV9Fdiwg
R1JPVVA1X09QX0pNUE4sIGJhc2UsIG9mZnNldCk7CiAgICAgfQogICAgIAorICAgIHZvaWQgam1w
X20oaW50IG9mZnNldCwgUmVnaXN0ZXJJRCBiYXNlLCBSZWdpc3RlcklEIGluZGV4LCBpbnQgc2Nh
bGUpCisgICAgeworICAgICAgICBtX2Zvcm1hdHRlci5vbmVCeXRlT3AoT1BfR1JPVVA1X0V2LCBH
Uk9VUDVfT1BfSk1QTiwgYmFzZSwgaW5kZXgsIHNjYWxlLCBvZmZzZXQpOworICAgIH0KKyAgICAK
ICNpZiAhQ1BVKFg4Nl82NCkKICAgICB2b2lkIGptcF9tKGNvbnN0IHZvaWQqIGFkZHJlc3MpCiAg
ICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5jcHAJKHJl
dmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2su
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw2IEBACiAKICNpbmNsdWRlICJCM0Jhc2lj
QmxvY2tJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrVXRpbHMuaCIKLSNpbmNsdWRl
ICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJlLmgiCiAjaW5jbHVkZSAi
QjNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlIDx3dGYvTGlzdER1bXAuaD4KQEAgLTUyLDEyICs1
MSwxNCBAQCBCYXNpY0Jsb2NrOjp+QmFzaWNCbG9jaygpCiB2b2lkIEJhc2ljQmxvY2s6OmFwcGVu
ZChWYWx1ZSogdmFsdWUpCiB7CiAgICAgbV92YWx1ZXMuYXBwZW5kKHZhbHVlKTsKKyAgICB2YWx1
ZS0+b3duZXIgPSB0aGlzOwogfQogCiB2b2lkIEJhc2ljQmxvY2s6OmFwcGVuZE5vblRlcm1pbmFs
KFZhbHVlKiB2YWx1ZSkKIHsKICAgICBtX3ZhbHVlcy5hcHBlbmQobV92YWx1ZXMubGFzdCgpKTsK
ICAgICBtX3ZhbHVlc1ttX3ZhbHVlcy5zaXplKCkgLSAxXSA9IHZhbHVlOworICAgIHZhbHVlLT5v
d25lciA9IHRoaXM7CiB9CiAKIHZvaWQgQmFzaWNCbG9jazo6cmVtb3ZlTGFzdChQcm9jZWR1cmUm
IHByb2MpCkBAIC04NCw5ICs4NSw0MSBAQCBWYWx1ZSogQmFzaWNCbG9jazo6YXBwZW5kSW50Q29u
c3RhbnQoUHJvCiAgICAgcmV0dXJuIGFwcGVuZEludENvbnN0YW50KHByb2MsIGxpa2VWYWx1ZS0+
b3JpZ2luKCksIGxpa2VWYWx1ZS0+dHlwZSgpLCB2YWx1ZSk7CiB9CiAKK3ZvaWQgQmFzaWNCbG9j
azo6Y2xlYXJTdWNjZXNzb3JzKCkKK3sKKyAgICBtX3N1Y2Nlc3NvcnMuY2xlYXIoKTsKK30KKwor
dm9pZCBCYXNpY0Jsb2NrOjphcHBlbmRTdWNjZXNzb3IoY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0
YXJnZXQpCit7CisgICAgbV9zdWNjZXNzb3JzLmFwcGVuZCh0YXJnZXQpOworfQorCit2b2lkIEJh
c2ljQmxvY2s6OnNldFN1Y2Nlc3NvcnMoY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YXJnZXQpCit7
CisgICAgbV9zdWNjZXNzb3JzLnJlc2l6ZSgxKTsKKyAgICBtX3N1Y2Nlc3NvcnNbMF0gPSB0YXJn
ZXQ7Cit9CisKK3ZvaWQgQmFzaWNCbG9jazo6c2V0U3VjY2Vzc29ycyhjb25zdCBGcmVxdWVudGVk
QmxvY2smIHRha2VuLCBjb25zdCBGcmVxdWVudGVkQmxvY2smIG5vdFRha2VuKQoreworICAgIG1f
c3VjY2Vzc29ycy5yZXNpemUoMik7CisgICAgbV9zdWNjZXNzb3JzWzBdID0gdGFrZW47CisgICAg
bV9zdWNjZXNzb3JzWzFdID0gbm90VGFrZW47Cit9CisKIGJvb2wgQmFzaWNCbG9jazo6cmVwbGFj
ZVN1Y2Nlc3NvcihCYXNpY0Jsb2NrKiBmcm9tLCBCYXNpY0Jsb2NrKiB0bykKIHsKLSAgICByZXR1
cm4gbGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCktPnJlcGxhY2VTdWNjZXNzb3IoZnJvbSwgdG8p
OworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgZm9yIChCYXNpY0Jsb2NrKiYgc3VjY2Vz
c29yIDogc3VjY2Vzc29yQmxvY2tzKCkpIHsKKyAgICAgICAgaWYgKHN1Y2Nlc3NvciA9PSBmcm9t
KSB7CisgICAgICAgICAgICBzdWNjZXNzb3IgPSB0bzsKKyAgICAgICAgICAgIHJlc3VsdCA9IHRy
dWU7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIEtlZXAgbG9vcGluZyBiZWNhdXNlIGEg
c3VjY2Vzc29yIG1heSBiZSBtZW50aW9uZWQgbXVsdGlwbGUgdGltZXMsIGxpa2UgaW4gYSBTd2l0
Y2guCisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogYm9vbCBCYXNp
Y0Jsb2NrOjphZGRQcmVkZWNlc3NvcihCYXNpY0Jsb2NrKiBibG9jaykKQEAgLTEyMSw2ICsxNTQs
NDIgQEAgdm9pZCBCYXNpY0Jsb2NrOjpkZWVwRHVtcChjb25zdCBQcm9jZWR1cgogICAgICAgICBv
dXQucHJpbnQoIiAgUHJlZGVjZXNzb3JzOiAiLCBwb2ludGVyTGlzdER1bXAocHJlZGVjZXNzb3Jz
KCkpLCAiXG4iKTsKICAgICBmb3IgKFZhbHVlKiB2YWx1ZSA6ICp0aGlzKQogICAgICAgICBvdXQu
cHJpbnQoIiAgICAiLCBCMzo6ZGVlcER1bXAocHJvYywgdmFsdWUpLCAiXG4iKTsKKyAgICBpZiAo
c3VjY2Vzc29ycygpLnNpemUoKSkgeworICAgICAgICBvdXQucHJpbnQoIiAgU3VjY2Vzc29yczog
Iik7CisgICAgICAgIGlmIChzaXplKCkpCisgICAgICAgICAgICBsYXN0KCktPmR1bXBTdWNjZXNz
b3JzKHRoaXMsIG91dCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG91dC5wcmludChsaXN0
RHVtcChzdWNjZXNzb3JzKCkpKTsKKyAgICAgICAgb3V0LnByaW50KCJcbiIpOworICAgIH0KK30K
KworVmFsdWUqIEJhc2ljQmxvY2s6OmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShQcm9jZWR1cmUmIHBy
b2MsIE9wY29kZSBvcGNvZGUsIE9yaWdpbiBvcmlnaW4pCit7CisgICAgUkVMRUFTRV9BU1NFUlQo
b3Bjb2RlID09IE9vcHMpOworICAgIGNsZWFyU3VjY2Vzc29ycygpOworICAgIHJldHVybiBhcHBl
bmROZXc8VmFsdWU+KHByb2MsIG9wY29kZSwgb3JpZ2luKTsKK30KKworVmFsdWUqIEJhc2ljQmxv
Y2s6OmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShQcm9jZWR1cmUmIHByb2MsIE9wY29kZSBvcGNvZGUs
IE9yaWdpbiBvcmlnaW4sIFZhbHVlKiB2YWx1ZSkKK3sKKyAgICBSRUxFQVNFX0FTU0VSVChvcGNv
ZGUgPT0gUmV0dXJuKTsKKyAgICBjbGVhclN1Y2Nlc3NvcnMoKTsKKyAgICByZXR1cm4gYXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBvcGNvZGUsIG9yaWdpbiwgdmFsdWUpOworfQorCitWYWx1ZSogQmFz
aWNCbG9jazo6YXBwZW5kTmV3Q29udHJvbFZhbHVlKFByb2NlZHVyZSYgcHJvYywgT3Bjb2RlIG9w
Y29kZSwgT3JpZ2luIG9yaWdpbiwgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YXJnZXQpCit7Cisg
ICAgUkVMRUFTRV9BU1NFUlQob3Bjb2RlID09IEp1bXApOworICAgIHNldFN1Y2Nlc3NvcnModGFy
Z2V0KTsKKyAgICByZXR1cm4gYXBwZW5kTmV3PFZhbHVlPihwcm9jLCBvcGNvZGUsIG9yaWdpbik7
Cit9CisKK1ZhbHVlKiBCYXNpY0Jsb2NrOjphcHBlbmROZXdDb250cm9sVmFsdWUoUHJvY2VkdXJl
JiBwcm9jLCBPcGNvZGUgb3Bjb2RlLCBPcmlnaW4gb3JpZ2luLCBWYWx1ZSogcHJlZGljYXRlLCBj
b25zdCBGcmVxdWVudGVkQmxvY2smIHRha2VuLCBjb25zdCBGcmVxdWVudGVkQmxvY2smIG5vdFRh
a2VuKQoreworICAgIFJFTEVBU0VfQVNTRVJUKG9wY29kZSA9PSBCcmFuY2gpOworICAgIHNldFN1
Y2Nlc3NvcnModGFrZW4sIG5vdFRha2VuKTsKKyAgICByZXR1cm4gYXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBvcGNvZGUsIG9yaWdpbiwgcHJlZGljYXRlKTsKIH0KIAogfSB9IC8vIG5hbWVzcGFjZSBK
U0M6OkIzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5oCShyZXZp
c2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoQjNfSklUKQogCiAj
aW5jbHVkZSAiQjNGcmVxdWVudGVkQmxvY2suaCIKKyNpbmNsdWRlICJCM09wY29kZS5oIgogI2lu
Y2x1ZGUgIkIzT3JpZ2luLmgiCiAjaW5jbHVkZSAiQjNTdWNjZXNzb3JDb2xsZWN0aW9uLmgiCiAj
aW5jbHVkZSAiQjNUeXBlLmgiCkBAIC00Nyw3ICs0OCw3IEBAIGNsYXNzIEJhc2ljQmxvY2sgewog
cHVibGljOgogICAgIHR5cGVkZWYgVmVjdG9yPFZhbHVlKj4gVmFsdWVMaXN0OwogICAgIHR5cGVk
ZWYgVmVjdG9yPEJhc2ljQmxvY2sqLCAyPiBQcmVkZWNlc3Nvckxpc3Q7Ci0gICAgdHlwZWRlZiBW
ZWN0b3I8RnJlcXVlbnRlZEJsb2NrLCAyPiBTdWNjZXNzb3JMaXN0OyAvLyBUaGlzIG1hdGNoZXMg
Q29udHJvbFZhbHVlOjpTdWNjZXNzb3JMaXN0CisgICAgdHlwZWRlZiBWZWN0b3I8RnJlcXVlbnRl
ZEJsb2NrLCAyPiBTdWNjZXNzb3JMaXN0OwogCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0
IGR1bXBQcmVmaXg7CiAKQEAgLTc4LDcgKzc5LDcgQEAgcHVibGljOgogICAgIFZhbHVlVHlwZSog
YXBwZW5kTmV3KFByb2NlZHVyZSYsIEFyZ3VtZW50cy4uLik7CiAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgVmFsdWVUeXBlLCB0eXBlbmFtZS4uLiBBcmd1bWVudHM+CiAgICAgVmFsdWVUeXBlKiBhcHBl
bmROZXdOb25UZXJtaW5hbChQcm9jZWR1cmUmLCBBcmd1bWVudHMuLi4pOwotCisgICAgCiAgICAg
SlNfRVhQT1JUX1BSSVZBVEUgVmFsdWUqIGFwcGVuZEludENvbnN0YW50KFByb2NlZHVyZSYsIE9y
aWdpbiwgVHlwZSwgaW50NjRfdCB2YWx1ZSk7CiAgICAgVmFsdWUqIGFwcGVuZEludENvbnN0YW50
KFByb2NlZHVyZSYsIFZhbHVlKiBsaWtlVmFsdWUsIGludDY0X3QgdmFsdWUpOwogCkBAIC04Nywx
OCArODgsMzkgQEAgcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlw
ZW5hbWUuLi4gQXJndW1lbnRzPgogICAgIFZhbHVlVHlwZSogcmVwbGFjZUxhc3RXaXRoTmV3KFBy
b2NlZHVyZSYsIEFyZ3VtZW50cy4uLik7CiAKLSAgICB1bnNpZ25lZCBudW1TdWNjZXNzb3JzKCkg
Y29uc3Q7Ci0gICAgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBzdWNjZXNzb3IodW5zaWduZWQgaW5k
ZXgpIGNvbnN0OwotICAgIEZyZXF1ZW50ZWRCbG9jayYgc3VjY2Vzc29yKHVuc2lnbmVkIGluZGV4
KTsKLSAgICBjb25zdCBTdWNjZXNzb3JMaXN0JiBzdWNjZXNzb3JzKCkgY29uc3Q7Ci0gICAgU3Vj
Y2Vzc29yTGlzdCYgc3VjY2Vzc29ycygpOwotCi0gICAgQmFzaWNCbG9jayogc3VjY2Vzc29yQmxv
Y2sodW5zaWduZWQgaW5kZXgpIGNvbnN0OwotICAgIEJhc2ljQmxvY2sqJiBzdWNjZXNzb3JCbG9j
ayh1bnNpZ25lZCBpbmRleCk7Ci0gICAgU3VjY2Vzc29yQ29sbGVjdGlvbjxCYXNpY0Jsb2NrLCBT
dWNjZXNzb3JMaXN0PiBzdWNjZXNzb3JCbG9ja3MoKTsKLSAgICBTdWNjZXNzb3JDb2xsZWN0aW9u
PGNvbnN0IEJhc2ljQmxvY2ssIGNvbnN0IFN1Y2Nlc3Nvckxpc3Q+IHN1Y2Nlc3NvckJsb2Nrcygp
IGNvbnN0OworICAgIHVuc2lnbmVkIG51bVN1Y2Nlc3NvcnMoKSBjb25zdCB7IHJldHVybiBtX3N1
Y2Nlc3NvcnMuc2l6ZSgpOyB9CisgICAgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBzdWNjZXNzb3Io
dW5zaWduZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fc3VjY2Vzc29yc1tpbmRleF07IH0KKyAg
ICBGcmVxdWVudGVkQmxvY2smIHN1Y2Nlc3Nvcih1bnNpZ25lZCBpbmRleCkgeyByZXR1cm4gbV9z
dWNjZXNzb3JzW2luZGV4XTsgfQorICAgIGNvbnN0IFN1Y2Nlc3Nvckxpc3QmIHN1Y2Nlc3NvcnMo
KSBjb25zdCB7IHJldHVybiBtX3N1Y2Nlc3NvcnM7IH0KKyAgICBTdWNjZXNzb3JMaXN0JiBzdWNj
ZXNzb3JzKCkgeyByZXR1cm4gbV9zdWNjZXNzb3JzOyB9CisgICAgCisgICAgdm9pZCBjbGVhclN1
Y2Nlc3NvcnMoKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIGFwcGVuZFN1Y2Nlc3Nvcihj
b25zdCBGcmVxdWVudGVkQmxvY2smKTsKKyAgICB2b2lkIHNldFN1Y2Nlc3NvcnMoY29uc3QgRnJl
cXVlbnRlZEJsb2NrJik7CisgICAgdm9pZCBzZXRTdWNjZXNzb3JzKGNvbnN0IEZyZXF1ZW50ZWRC
bG9jayYsIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYpOworCisgICAgQmFzaWNCbG9jayogc3VjY2Vz
c29yQmxvY2sodW5zaWduZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIHN1Y2Nlc3NvcihpbmRleCku
YmxvY2soKTsgfQorICAgIEJhc2ljQmxvY2sqJiBzdWNjZXNzb3JCbG9jayh1bnNpZ25lZCBpbmRl
eCkgeyByZXR1cm4gc3VjY2Vzc29yKGluZGV4KS5ibG9jaygpOyB9CisgICAgU3VjY2Vzc29yQ29s
bGVjdGlvbjxCYXNpY0Jsb2NrLCBTdWNjZXNzb3JMaXN0PiBzdWNjZXNzb3JCbG9ja3MoKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIFN1Y2Nlc3NvckNvbGxlY3Rpb248QmFzaWNCbG9jaywgU3VjY2Vz
c29yTGlzdD4oc3VjY2Vzc29ycygpKTsKKyAgICB9CisgICAgU3VjY2Vzc29yQ29sbGVjdGlvbjxj
b25zdCBCYXNpY0Jsb2NrLCBjb25zdCBTdWNjZXNzb3JMaXN0PiBzdWNjZXNzb3JCbG9ja3MoKSBj
b25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIFN1Y2Nlc3NvckNvbGxlY3Rpb248Y29uc3QgQmFz
aWNCbG9jaywgY29uc3QgU3VjY2Vzc29yTGlzdD4oc3VjY2Vzc29ycygpKTsKKyAgICB9CiAKICAg
ICBib29sIHJlcGxhY2VTdWNjZXNzb3IoQmFzaWNCbG9jayogZnJvbSwgQmFzaWNCbG9jayogdG8p
OworICAgIAorICAgIC8vIFRoaXMgaXMgb25seSB2YWxpZCBmb3IgSnVtcCBhbmQgQnJhbmNoLgor
ICAgIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgdGFrZW4oKSBjb25zdDsKKyAgICBGcmVxdWVudGVk
QmxvY2smIHRha2VuKCk7CisgICAgLy8gVGhpcyBpcyBvbmx5IHZhbGlkIGZvciBCcmFuY2guCisg
ICAgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBub3RUYWtlbigpIGNvbnN0OworICAgIEZyZXF1ZW50
ZWRCbG9jayYgbm90VGFrZW4oKTsKKyAgICAvLyBUaGlzIGlzIG9ubHkgdmFsaWQgZm9yIEJyYW5j
aCBhbmQgU3dpdGNoLgorICAgIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgZmFsbFRocm91Z2goKSBj
b25zdDsKKyAgICBGcmVxdWVudGVkQmxvY2smIGZhbGxUaHJvdWdoKCk7CiAKICAgICB1bnNpZ25l
ZCBudW1QcmVkZWNlc3NvcnMoKSBjb25zdCB7IHJldHVybiBtX3ByZWRlY2Vzc29ycy5zaXplKCk7
IH0KICAgICBCYXNpY0Jsb2NrKiBwcmVkZWNlc3Nvcih1bnNpZ25lZCBpbmRleCkgY29uc3QgeyBy
ZXR1cm4gbV9wcmVkZWNlc3NvcnNbaW5kZXhdOyB9CkBAIC0xMTUsMTAgKzEzNywyMyBAQCBwdWJs
aWM6CiAgICAgdm9pZCB1cGRhdGVQcmVkZWNlc3NvcnNBZnRlcigpOwogCiAgICAgZG91YmxlIGZy
ZXF1ZW5jeSgpIGNvbnN0IHsgcmV0dXJuIG1fZnJlcXVlbmN5OyB9Ci0KKyAgICAKICAgICB2b2lk
IGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKICAgICB2b2lkIGRlZXBEdW1wKGNvbnN0IFByb2Nl
ZHVyZSYsIFByaW50U3RyZWFtJikgY29uc3Q7CiAKKyAgICAvLyBUaGVzZSBhcmUgZGVwcmVjYXRl
ZCBtZXRob2QgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCB0aGUgb2xkIENvbnRyb2xWYWx1ZSBjbGFz
cy4gRG9uJ3QgdXNlIHRoZW0KKyAgICAvLyBpbiBuZXcgY29kZS4KKyAgICAvLyBGSVhNRTogaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTQ0MAorICAgIAorICAgIC8v
IFVzZSB0aGlzIGZvciBPb3BzLgorICAgIEpTX0VYUE9SVF9QUklWQVRFIFZhbHVlKiBhcHBlbmRO
ZXdDb250cm9sVmFsdWUoUHJvY2VkdXJlJiwgT3Bjb2RlLCBPcmlnaW4pOworICAgIC8vIFVzZSB0
aGlzIGZvciBSZXR1cm4uCisgICAgSlNfRVhQT1JUX1BSSVZBVEUgVmFsdWUqIGFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShQcm9jZWR1cmUmLCBPcGNvZGUsIE9yaWdpbiwgVmFsdWUqKTsKKyAgICAvLyBV
c2UgdGhpcyBmb3IgSnVtcC4KKyAgICBKU19FWFBPUlRfUFJJVkFURSBWYWx1ZSogYXBwZW5kTmV3
Q29udHJvbFZhbHVlKFByb2NlZHVyZSYsIE9wY29kZSwgT3JpZ2luLCBjb25zdCBGcmVxdWVudGVk
QmxvY2smKTsKKyAgICAvLyBVc2UgdGhpcyBmb3IgQnJhbmNoLgorICAgIEpTX0VYUE9SVF9QUklW
QVRFIFZhbHVlKiBhcHBlbmROZXdDb250cm9sVmFsdWUoUHJvY2VkdXJlJiwgT3Bjb2RlLCBPcmln
aW4sIFZhbHVlKiwgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiwgY29uc3QgRnJlcXVlbnRlZEJsb2Nr
Jik7CisgICAgCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBCbG9ja0luc2VydGlvblNldDsK
ICAgICBmcmllbmQgY2xhc3MgSW5zZXJ0aW9uU2V0OwpAQCAtMTMwLDYgKzE2NSw3IEBAIHByaXZh
dGU6CiAgICAgdW5zaWduZWQgbV9pbmRleDsKICAgICBWYWx1ZUxpc3QgbV92YWx1ZXM7CiAgICAg
UHJlZGVjZXNzb3JMaXN0IG1fcHJlZGVjZXNzb3JzOworICAgIFN1Y2Nlc3Nvckxpc3QgbV9zdWNj
ZXNzb3JzOwogICAgIGRvdWJsZSBtX2ZyZXF1ZW5jeTsKIH07CiAKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2tJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9ja0lubGluZXMuaAkocmV2aXNpb24gMjAyODA5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9ja0lubGluZXMuaAkod29y
a2luZyBjb3B5KQpAQCAtMjksOCArMjksOCBAQAogI2lmIEVOQUJMRShCM19KSVQpCiAKICNpbmNs
dWRlICJCM0Jhc2ljQmxvY2suaCIKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1
ZGUgIkIzUHJvY2VkdXJlSW5saW5lcy5oIgorI2luY2x1ZGUgIkIzVmFsdWUuaCIKIAogbmFtZXNw
YWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKQEAgLTU4LDQ5ICs1OCw0MCBAQCBWYWx1ZVR5cGUq
IEJhc2ljQmxvY2s6OnJlcGxhY2VMYXN0V2l0aE5lCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAot
aW5saW5lIHVuc2lnbmVkIEJhc2ljQmxvY2s6Om51bVN1Y2Nlc3NvcnMoKSBjb25zdAoraW5saW5l
IGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgQmFzaWNCbG9jazo6dGFrZW4oKSBjb25zdAogewotICAg
IHJldHVybiBsYXN0KCktPmFzPENvbnRyb2xWYWx1ZT4oKS0+bnVtU3VjY2Vzc29ycygpOworICAg
IEFTU0VSVChsYXN0KCktPm9wY29kZSgpID09IEp1bXAgfHwgbGFzdCgpLT5vcGNvZGUoKSA9PSBC
cmFuY2gpOworICAgIHJldHVybiBtX3N1Y2Nlc3NvcnNbMF07CiB9CiAKLWlubGluZSBjb25zdCBG
cmVxdWVudGVkQmxvY2smIEJhc2ljQmxvY2s6OnN1Y2Nlc3Nvcih1bnNpZ25lZCBpbmRleCkgY29u
c3QKK2lubGluZSBGcmVxdWVudGVkQmxvY2smIEJhc2ljQmxvY2s6OnRha2VuKCkKIHsKLSAgICBy
ZXR1cm4gbGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCktPnN1Y2Nlc3NvcihpbmRleCk7CisgICAg
QVNTRVJUKGxhc3QoKS0+b3Bjb2RlKCkgPT0gSnVtcCB8fCBsYXN0KCktPm9wY29kZSgpID09IEJy
YW5jaCk7CisgICAgcmV0dXJuIG1fc3VjY2Vzc29yc1swXTsKIH0KIAotaW5saW5lIEZyZXF1ZW50
ZWRCbG9jayYgQmFzaWNCbG9jazo6c3VjY2Vzc29yKHVuc2lnbmVkIGluZGV4KQoraW5saW5lIGNv
bnN0IEZyZXF1ZW50ZWRCbG9jayYgQmFzaWNCbG9jazo6bm90VGFrZW4oKSBjb25zdAogewotICAg
IHJldHVybiBsYXN0KCktPmFzPENvbnRyb2xWYWx1ZT4oKS0+c3VjY2Vzc29yKGluZGV4KTsKKyAg
ICBBU1NFUlQobGFzdCgpLT5vcGNvZGUoKSA9PSBCcmFuY2gpOworICAgIHJldHVybiBtX3N1Y2Nl
c3NvcnNbMV07CiB9CiAKLWlubGluZSBjb25zdCBCYXNpY0Jsb2NrOjpTdWNjZXNzb3JMaXN0JiBC
YXNpY0Jsb2NrOjpzdWNjZXNzb3JzKCkgY29uc3QKK2lubGluZSBGcmVxdWVudGVkQmxvY2smIEJh
c2ljQmxvY2s6Om5vdFRha2VuKCkKIHsKLSAgICByZXR1cm4gbGFzdCgpLT5hczxDb250cm9sVmFs
dWU+KCktPnN1Y2Nlc3NvcnMoKTsKKyAgICBBU1NFUlQobGFzdCgpLT5vcGNvZGUoKSA9PSBCcmFu
Y2gpOworICAgIHJldHVybiBtX3N1Y2Nlc3NvcnNbMV07CiB9CiAKLWlubGluZSBCYXNpY0Jsb2Nr
OjpTdWNjZXNzb3JMaXN0JiBCYXNpY0Jsb2NrOjpzdWNjZXNzb3JzKCkKK2lubGluZSBjb25zdCBG
cmVxdWVudGVkQmxvY2smIEJhc2ljQmxvY2s6OmZhbGxUaHJvdWdoKCkgY29uc3QKIHsKLSAgICBy
ZXR1cm4gbGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCktPnN1Y2Nlc3NvcnMoKTsKKyAgICBBU1NF
UlQobGFzdCgpLT5vcGNvZGUoKSA9PSBCcmFuY2ggfHwgbGFzdCgpLT5vcGNvZGUoKSA9PSBTd2l0
Y2gpOworICAgIHJldHVybiBtX3N1Y2Nlc3NvcnMubGFzdCgpOwogfQogCi1pbmxpbmUgQmFzaWNC
bG9jayogQmFzaWNCbG9jazo6c3VjY2Vzc29yQmxvY2sodW5zaWduZWQgaW5kZXgpIGNvbnN0Citp
bmxpbmUgRnJlcXVlbnRlZEJsb2NrJiBCYXNpY0Jsb2NrOjpmYWxsVGhyb3VnaCgpCiB7Ci0gICAg
cmV0dXJuIHN1Y2Nlc3NvcihpbmRleCkuYmxvY2soKTsKLX0KLQotaW5saW5lIEJhc2ljQmxvY2sq
JiBCYXNpY0Jsb2NrOjpzdWNjZXNzb3JCbG9jayh1bnNpZ25lZCBpbmRleCkKLXsKLSAgICByZXR1
cm4gc3VjY2Vzc29yKGluZGV4KS5ibG9jaygpOwotfQotCi1pbmxpbmUgU3VjY2Vzc29yQ29sbGVj
dGlvbjxCYXNpY0Jsb2NrLCBCYXNpY0Jsb2NrOjpTdWNjZXNzb3JMaXN0PiBCYXNpY0Jsb2NrOjpz
dWNjZXNzb3JCbG9ja3MoKQotewotICAgIHJldHVybiBTdWNjZXNzb3JDb2xsZWN0aW9uPEJhc2lj
QmxvY2ssIFN1Y2Nlc3Nvckxpc3Q+KHN1Y2Nlc3NvcnMoKSk7Ci19Ci0KLWlubGluZSBTdWNjZXNz
b3JDb2xsZWN0aW9uPGNvbnN0IEJhc2ljQmxvY2ssIGNvbnN0IEJhc2ljQmxvY2s6OlN1Y2Nlc3Nv
ckxpc3Q+IEJhc2ljQmxvY2s6OnN1Y2Nlc3NvckJsb2NrcygpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IFN1Y2Nlc3NvckNvbGxlY3Rpb248Y29uc3QgQmFzaWNCbG9jaywgY29uc3QgU3VjY2Vzc29yTGlz
dD4oc3VjY2Vzc29ycygpKTsKKyAgICBBU1NFUlQobGFzdCgpLT5vcGNvZGUoKSA9PSBCcmFuY2gg
fHwgbGFzdCgpLT5vcGNvZGUoKSA9PSBTd2l0Y2gpOworICAgIHJldHVybiBtX3N1Y2Nlc3NvcnMu
bGFzdCgpOwogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0Jsb2NrSW5zZXJ0aW9uU2V0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCbG9ja0luc2VydGlvblNldC5jcHAJKHJldmlzaW9uIDIw
MjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jsb2NrSW5zZXJ0aW9uU2V0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNzgsOCArNzgsOCBAQCBCYXNpY0Jsb2NrKiBCbG9ja0luc2Vy
dGlvblNldDo6c3BsaXRGb3J3CiAgICAgICAgIHJlc3VsdC0+bV92YWx1ZXNbaV0gPSBibG9jay0+
bV92YWx1ZXNbaV07CiAKICAgICAvLyBNYWtlIHRoZSBuZXcgYmxvY2sganVtcCB0byAnYmxvY2sn
LgotICAgIHJlc3VsdC0+bV92YWx1ZXNbdmFsdWVJbmRleF0gPQotICAgICAgICBtX3Byb2MuYWRk
PENvbnRyb2xWYWx1ZT4oSnVtcCwgdmFsdWUtPm9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soYmxv
Y2spKTsKKyAgICByZXN1bHQtPm1fdmFsdWVzW3ZhbHVlSW5kZXhdID0gbV9wcm9jLmFkZDxWYWx1
ZT4oSnVtcCwgdmFsdWUtPm9yaWdpbigpKTsKKyAgICByZXN1bHQtPnNldFN1Y2Nlc3NvcnMoRnJl
cXVlbnRlZEJsb2NrKGJsb2NrKSk7CiAKICAgICAvLyBJZiB3ZSBoYWQgaW5zZXJ0ZWQgdGhpbmdz
IGludG8gJ2Jsb2NrJyBiZWZvcmUgdGhpcywgZXhlY3V0ZSB0aG9zZSBpbnNlcnRpb25zIG5vdy4K
ICAgICBpZiAoaW5zZXJ0aW9uU2V0KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
QnJlYWtDcml0aWNhbEVkZ2VzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNCcmVha0NyaXRpY2FsRWRnZXMuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCcmVha0NyaXRpY2FsRWRnZXMuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zMCw3ICszMCw2IEBACiAKICNpbmNsdWRlICJCM0Jhc2ljQmxvY2tJbmxpbmVzLmgi
CiAjaW5jbHVkZSAiQjNCbG9ja0luc2VydGlvblNldC5oIgotI2luY2x1ZGUgIkIzQ29udHJvbFZh
bHVlLmgiCiAjaW5jbHVkZSAiQjNQcm9jZWR1cmVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNWYWx1
ZUlubGluZXMuaCIKIApAQCAtNTAsOCArNDksOCBAQCB2b2lkIGJyZWFrQ3JpdGljYWxFZGdlcyhQ
cm9jZWR1cmUmIHByb2MpCiAKICAgICAgICAgICAgIEJhc2ljQmxvY2sqIHBhZCA9CiAgICAgICAg
ICAgICAgICAgaW5zZXJ0aW9uU2V0Lmluc2VydEJlZm9yZShzdWNjZXNzb3IsIHN1Y2Nlc3Nvci0+
ZnJlcXVlbmN5KCkpOwotICAgICAgICAgICAgcGFkLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
LSAgICAgICAgICAgICAgICBwcm9jLCBKdW1wLCBzdWNjZXNzb3ItPmF0KDApLT5vcmlnaW4oKSwg
RnJlcXVlbnRlZEJsb2NrKHN1Y2Nlc3NvcikpOworICAgICAgICAgICAgcGFkLT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEp1bXAsIHN1Y2Nlc3Nvci0+YXQoMCktPm9yaWdpbigpKTsKKyAgICAgICAg
ICAgIHBhZC0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2soc3VjY2Vzc29yKSk7CiAgICAg
ICAgICAgICBwYWQtPmFkZFByZWRlY2Vzc29yKGJsb2NrKTsKICAgICAgICAgICAgIHN1Y2Nlc3Nv
ci0+cmVwbGFjZVByZWRlY2Vzc29yKGJsb2NrLCBwYWQpOwogICAgICAgICAgICAgc3VjY2Vzc29y
ID0gcGFkOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2FzZUNvbGxlY3Rpb24u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nhc2VDb2xsZWN0
aW9uLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nhc2VD
b2xsZWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJCM0Nhc2VDb2xsZWN0aW9uLmgiCisKKyNpZiBFTkFCTEUoQjNfSklUKQorCisj
aW5jbHVkZSAiQjNCYXNpY0Jsb2NrSW5saW5lcy5oIgorI2luY2x1ZGUgIkIzQ2FzZUNvbGxlY3Rp
b25JbmxpbmVzLmgiCisjaW5jbHVkZSA8d3RmL0NvbW1hUHJpbnRlci5oPgorCituYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIEIzIHsKKwordm9pZCBDYXNlQ29sbGVjdGlvbjo6ZHVtcChQcmludFN0
cmVhbSYgb3V0KSBjb25zdAoreworICAgIENvbW1hUHJpbnRlciBjb21tYTsKKyAgICBmb3IgKFN3
aXRjaENhc2Ugc3dpdGNoQ2FzZSA6ICp0aGlzKQorICAgICAgICBvdXQucHJpbnQoY29tbWEsIHN3
aXRjaENhc2UpOworICAgIG91dC5wcmludChjb21tYSwgImRlZmF1bHQtPiIsIGZhbGxUaHJvdWdo
KCkpOworfQorCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKKworI2VuZGlmIC8vIEVOQUJMRShC
M19KSVQpCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nhc2VDb2xsZWN0aW9u
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2FzZUNvbGxlY3Rp
b24uaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nhc2VDb2xs
ZWN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMjAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBCM0Nhc2VDb2xsZWN0aW9u
X2gKKyNkZWZpbmUgQjNDYXNlQ29sbGVjdGlvbl9oCisKKyNpZiBFTkFCTEUoQjNfSklUKQorCisj
aW5jbHVkZSAiQjNTd2l0Y2hDYXNlLmgiCisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMg
eworCitjbGFzcyBCYXNpY0Jsb2NrOworY2xhc3MgU3dpdGNoVmFsdWU7CisKKy8vIE5PVEU6IFlv
dSdsbCBhbHdheXMgd2FudCB0byBpbmNsdWRlIEIzQ2FzZUNvbGxlY3Rpb25JbmxpbmVzLmggd2hl
biB5b3UgdXNlIHRoaXMuCisKK2NsYXNzIENhc2VDb2xsZWN0aW9uIHsKK3B1YmxpYzoKKyAgICBD
YXNlQ29sbGVjdGlvbigpCisgICAgeworICAgIH0KKyAgICAKKyAgICBDYXNlQ29sbGVjdGlvbihj
b25zdCBTd2l0Y2hWYWx1ZSogdGVybWluYWwsIGNvbnN0IEJhc2ljQmxvY2sqIG93bmVyKQorICAg
ICAgICA6IG1fc3dpdGNoKHRlcm1pbmFsKQorICAgICAgICAsIG1fb3duZXIob3duZXIpCisgICAg
eworICAgIH0KKyAgICAKKyAgICBjb25zdCBGcmVxdWVudGVkQmxvY2smIGZhbGxUaHJvdWdoKCkg
Y29uc3Q7CisKKyAgICB1bnNpZ25lZCBzaXplKCkgY29uc3Q7CisgICAgU3dpdGNoQ2FzZSBhdCh1
bnNpZ25lZCBpbmRleCkgY29uc3Q7CisgICAgCisgICAgU3dpdGNoQ2FzZSBvcGVyYXRvcltdKHVu
c2lnbmVkIGluZGV4KSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGF0KGluZGV4KTsKKyAg
ICB9CisKKyAgICBjbGFzcyBpdGVyYXRvciB7CisgICAgcHVibGljOgorICAgICAgICBpdGVyYXRv
cigpCisgICAgICAgICAgICA6IG1fY29sbGVjdGlvbihudWxscHRyKQorICAgICAgICAgICAgLCBt
X2luZGV4KDApCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIGl0ZXJhdG9yKGNvbnN0
IENhc2VDb2xsZWN0aW9uJiBjb2xsZWN0aW9uLCB1bnNpZ25lZCBpbmRleCkKKyAgICAgICAgICAg
IDogbV9jb2xsZWN0aW9uKCZjb2xsZWN0aW9uKQorICAgICAgICAgICAgLCBtX2luZGV4KGluZGV4
KQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBTd2l0Y2hDYXNlIG9wZXJhdG9yKigp
CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtX2NvbGxlY3Rpb24tPmF0KG1faW5kZXgp
OworICAgICAgICB9CisKKyAgICAgICAgaXRlcmF0b3ImIG9wZXJhdG9yKysoKQorICAgICAgICB7
CisgICAgICAgICAgICBtX2luZGV4Kys7CisgICAgICAgICAgICByZXR1cm4gKnRoaXM7CisgICAg
ICAgIH0KKworICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgaXRlcmF0b3ImIG90aGVyKSBj
b25zdAorICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQobV9jb2xsZWN0aW9uID09IG90aGVy
Lm1fY29sbGVjdGlvbik7CisgICAgICAgICAgICByZXR1cm4gbV9pbmRleCA9PSBvdGhlci5tX2lu
ZGV4OworICAgICAgICB9CisKKyAgICAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IGl0ZXJhdG9y
JiBvdGhlcikgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICEoKnRoaXMgPT0g
b3RoZXIpOworICAgICAgICB9CisKKyAgICBwcml2YXRlOgorICAgICAgICBjb25zdCBDYXNlQ29s
bGVjdGlvbiogbV9jb2xsZWN0aW9uOworICAgICAgICB1bnNpZ25lZCBtX2luZGV4OworICAgIH07
CisKKyAgICB0eXBlZGVmIGl0ZXJhdG9yIGNvbnN0X2l0ZXJhdG9yOworCisgICAgaXRlcmF0b3Ig
YmVnaW4oKSBjb25zdCB7IHJldHVybiBpdGVyYXRvcigqdGhpcywgMCk7IH0KKyAgICBpdGVyYXRv
ciBlbmQoKSBjb25zdCB7IHJldHVybiBpdGVyYXRvcigqdGhpcywgc2l6ZSgpKTsgfQorICAgIAor
ICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0OworICAgIAorcHJpdmF0ZToKKyAgICBj
b25zdCBTd2l0Y2hWYWx1ZSogbV9zd2l0Y2ggeyBudWxscHRyIH07CisgICAgY29uc3QgQmFzaWNC
bG9jayogbV9vd25lciB7IG51bGxwdHIgfTsKK307CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpC
MworCisjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKKworI2VuZGlmIC8vIEIzQ2FzZUNvbGxlY3Rp
b25faAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDYXNlQ29sbGVjdGlvbklu
bGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDYXNlQ29s
bGVjdGlvbklubGluZXMuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTcg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRl
ZiBCM0Nhc2VDb2xsZWN0aW9uSW5saW5lc19oCisjZGVmaW5lIEIzQ2FzZUNvbGxlY3Rpb25Jbmxp
bmVzX2gKKworI2lmIEVOQUJMRShCM19KSVQpCisKKyNpbmNsdWRlICJCM0Nhc2VDb2xsZWN0aW9u
LmgiCisjaW5jbHVkZSAiQjNTd2l0Y2hWYWx1ZS5oIgorI2luY2x1ZGUgIkIzQmFzaWNCbG9jay5o
IgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKKworaW5saW5lIGNvbnN0IEZyZXF1
ZW50ZWRCbG9jayYgQ2FzZUNvbGxlY3Rpb246OmZhbGxUaHJvdWdoKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9vd25lci0+ZmFsbFRocm91Z2goKTsKK30KKworaW5saW5lIHVuc2lnbmVkIENhc2VD
b2xsZWN0aW9uOjpzaXplKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zd2l0Y2gtPm51bUNhc2VW
YWx1ZXMoKTsKK30KKworaW5saW5lIFN3aXRjaENhc2UgQ2FzZUNvbGxlY3Rpb246OmF0KHVuc2ln
bmVkIGluZGV4KSBjb25zdAoreworICAgIHJldHVybiBTd2l0Y2hDYXNlKG1fc3dpdGNoLT5jYXNl
VmFsdWUoaW5kZXgpLCBtX293bmVyLT5zdWNjZXNzb3IoaW5kZXgpKTsKK30KKworfSB9IC8vIG5h
bWVzcGFjZSBKU0M6OkIzCisKKyNlbmRpZiAvLyBFTkFCTEUoQjNfSklUKQorCisjZW5kaWYgLy8g
QjNDYXNlQ29sbGVjdGlvbklubGluZXNfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNDaGVja1NwZWNpYWwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0NoZWNrU3BlY2lhbC5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0NoZWNrU3BlY2lhbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg0LDcg
Kzg0LDcgQEAgQ2hlY2tTcGVjaWFsOjpDaGVja1NwZWNpYWwoQWlyOjpPcGNvZGUgbwogICAgICwg
bV9zdGFja21hcFJvbGUoc3RhY2ttYXBSb2xlKQogICAgICwgbV9udW1DaGVja0FyZ3MobnVtQXJn
cykKIHsKLSAgICBBU1NFUlQoaXNUZXJtaW5hbChvcGNvZGUpKTsKKyAgICBBU1NFUlQoaXNEZWZp
bml0ZWx5VGVybWluYWwob3Bjb2RlKSk7CiB9CiAKIENoZWNrU3BlY2lhbDo6Q2hlY2tTcGVjaWFs
KGNvbnN0IENoZWNrU3BlY2lhbDo6S2V5JiBrZXkpCkBAIC0xMDIsNiArMTAyLDcgQEAgSW5zdCBD
aGVja1NwZWNpYWw6OmhpZGRlbkJyYW5jaChjb25zdCBJbgogICAgIGhpZGRlbkJyYW5jaC5hcmdz
LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkobV9udW1DaGVja0FyZ3MpOwogICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBtX251bUNoZWNrQXJnczsgKytpKQogICAgICAgICBoaWRkZW5CcmFuY2gu
YXJncy5hcHBlbmQoaW5zdC5hcmdzW2kgKyAxXSk7CisgICAgQVNTRVJUKGhpZGRlbkJyYW5jaC5p
c1Rlcm1pbmFsKCkpOwogICAgIHJldHVybiBoaWRkZW5CcmFuY2g7CiB9CiAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbW1vbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0NvbW1vbi5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNDb21tb24uaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCw2ICsyOCw4IEBACiAK
ICNpZiBFTkFCTEUoQjNfSklUKQogCisjaW5jbHVkZSAiSlNFeHBvcnRNYWNyb3MuaCIKKwogbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKIGlubGluZSBib29sIGlzNjRCaXQoKSB7IHJl
dHVybiBzaXplb2Yodm9pZCopID09IDg7IH0KQEAgLTM4LDcgKzQwLDcgQEAgZW51bSBCM0NvbXBs
aXRhdGlvbk1vZGUgewogICAgIEFpck1vZGUKIH07CiAKLWJvb2wgc2hvdWxkRHVtcElSKEIzQ29t
cGxpdGF0aW9uTW9kZSk7CitKU19FWFBPUlRfUFJJVkFURSBib29sIHNob3VsZER1bXBJUihCM0Nv
bXBsaXRhdGlvbk1vZGUpOwogYm9vbCBzaG91bGREdW1wSVJBdEVhY2hQaGFzZShCM0NvbXBsaXRh
dGlvbk1vZGUpOwogYm9vbCBzaG91bGRWYWxpZGF0ZUlSKCk7CiBib29sIHNob3VsZFZhbGlkYXRl
SVJBdEVhY2hQaGFzZSgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29udHJv
bFZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb250
cm9sVmFsdWUuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNDb250cm9sVmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDk1ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
LSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVk
ZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKLQotI2lmIEVOQUJMRShC
M19KSVQpCi0KLSNpbmNsdWRlICJCM0Jhc2ljQmxvY2suaCIKLQotbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBCMyB7Ci0KLUNvbnRyb2xWYWx1ZTo6fkNvbnRyb2xWYWx1ZSgpCi17Ci19Ci0KLWJv
b2wgQ29udHJvbFZhbHVlOjpyZXBsYWNlU3VjY2Vzc29yKEJhc2ljQmxvY2sqIGZyb20sIEJhc2lj
QmxvY2sqIHRvKQotewotICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7Ci0gICAgZm9yIChGcmVxdWVu
dGVkQmxvY2smIHN1Y2Nlc3NvciA6IG1fc3VjY2Vzc29ycykgewotICAgICAgICBpZiAoc3VjY2Vz
c29yLmJsb2NrKCkgPT0gZnJvbSkgewotICAgICAgICAgICAgc3VjY2Vzc29yLmJsb2NrKCkgPSB0
bzsKLSAgICAgICAgICAgIHJlc3VsdCA9IHRydWU7Ci0KLSAgICAgICAgICAgIC8vIEtlZXAgbG9v
cGluZyBiZWNhdXNlIGl0J3MgdmFsaWQgZm9yIGEgc3VjY2Vzc29yIHRvIGJlIG1lbnRpb25lZCBt
dWx0aXBsZSB0aW1lcywKLSAgICAgICAgICAgIC8vIGxpa2UgaWYgbXVsdGlwbGUgc3dpdGNoIGNh
c2VzIGhhdmUgdGhlIHNhbWUgdGFyZ2V0LgotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiBy
ZXN1bHQ7Ci19Ci0KLXZvaWQgQ29udHJvbFZhbHVlOjpjb252ZXJ0VG9KdW1wKEJhc2ljQmxvY2sq
IGRlc3RpbmF0aW9uKQotewotICAgIHVuc2lnbmVkIGluZGV4ID0gdGhpcy0+aW5kZXgoKTsKLSAg
ICBPcmlnaW4gb3JpZ2luID0gdGhpcy0+b3JpZ2luKCk7Ci0gICAgQmFzaWNCbG9jayogb3duZXIg
PSB0aGlzLT5vd25lcjsKLQotICAgIHRoaXMtPn5Db250cm9sVmFsdWUoKTsKLQotICAgIG5ldyAo
dGhpcykgQ29udHJvbFZhbHVlKEp1bXAsIG9yaWdpbiwgRnJlcXVlbnRlZEJsb2NrKGRlc3RpbmF0
aW9uKSk7Ci0KLSAgICB0aGlzLT5vd25lciA9IG93bmVyOwotICAgIHRoaXMtPm1faW5kZXggPSBp
bmRleDsKLX0KLQotdm9pZCBDb250cm9sVmFsdWU6OmNvbnZlcnRUb09vcHMoKQotewotICAgIHVu
c2lnbmVkIGluZGV4ID0gdGhpcy0+aW5kZXgoKTsKLSAgICBPcmlnaW4gb3JpZ2luID0gdGhpcy0+
b3JpZ2luKCk7Ci0gICAgQmFzaWNCbG9jayogb3duZXIgPSB0aGlzLT5vd25lcjsKLQotICAgIHRo
aXMtPn5Db250cm9sVmFsdWUoKTsKLQotICAgIG5ldyAodGhpcykgQ29udHJvbFZhbHVlKE9vcHMs
IG9yaWdpbik7Ci0KLSAgICB0aGlzLT5vd25lciA9IG93bmVyOwotICAgIHRoaXMtPm1faW5kZXgg
PSBpbmRleDsKLX0KLQotdm9pZCBDb250cm9sVmFsdWU6OmR1bXBNZXRhKENvbW1hUHJpbnRlciYg
Y29tbWEsIFByaW50U3RyZWFtJiBvdXQpIGNvbnN0Ci17Ci0gICAgZm9yIChGcmVxdWVudGVkQmxv
Y2sgc3VjY2Vzc29yIDogbV9zdWNjZXNzb3JzKQotICAgICAgICBvdXQucHJpbnQoY29tbWEsIHN1
Y2Nlc3Nvcik7Ci19Ci0KLVZhbHVlKiBDb250cm9sVmFsdWU6OmNsb25lSW1wbCgpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIG5ldyBDb250cm9sVmFsdWUoKnRoaXMpOwotfQotCi19IH0gLy8gbmFtZXNw
YWNlIEpTQzo6QjMKLQotI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNDb250cm9sVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNDb250cm9sVmFsdWUuaAkocmV2aXNpb24gMjAyODA5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29udHJvbFZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTEsMTYzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKLSAqLwotCi0jaWZuZGVmIEIzQ29udHJvbFZhbHVlX2gKLSNkZWZpbmUgQjNDb250cm9sVmFs
dWVfaAotCi0jaWYgRU5BQkxFKEIzX0pJVCkKLQotI2luY2x1ZGUgIkIzRnJlcXVlbnRlZEJsb2Nr
LmgiCi0jaW5jbHVkZSAiQjNTdWNjZXNzb3JDb2xsZWN0aW9uLmgiCi0jaW5jbHVkZSAiQjNWYWx1
ZS5oIgotCi1uYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKLQotY2xhc3MgQmFzaWNCbG9j
azsKLQotY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgQ29udHJvbFZhbHVlIDogcHVibGljIFZhbHVl
IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgYm9vbCBhY2NlcHRzKE9wY29kZSBvcGNvZGUpCi0gICAg
ewotICAgICAgICBzd2l0Y2ggKG9wY29kZSkgewotICAgICAgICBjYXNlIEp1bXA6Ci0gICAgICAg
IGNhc2UgQnJhbmNoOgotICAgICAgICBjYXNlIFJldHVybjoKLSAgICAgICAgY2FzZSBPb3BzOgot
ICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGNhc2UgU3dpdGNoOiAKLSAgICAgICAg
ICAgIC8vIFRoaXMgaXMgaGVyZSBiZWNhdXNlIFN3aXRjaFZhbHVlIGlzIGEgc3ViY2xhc3Mgb2Yg
Q29udHJvbFZhbHVlLCBzbyB3ZSB3YW50Ci0gICAgICAgICAgICAvLyBzd2l0Y2hWYWx1ZS0+YXM8
Q29udHJvbFZhbHVlPigpIHRvIHJldHVybiBub24tbnVsbC4KLSAgICAgICAgICAgIHJldHVybiB0
cnVlOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAg
ICB9Ci0gICAgfQotCi0gICAgdHlwZWRlZiBWZWN0b3I8RnJlcXVlbnRlZEJsb2NrLCAyPiBTdWNj
ZXNzb3JMaXN0OwotCi0gICAgfkNvbnRyb2xWYWx1ZSgpOwotCi0gICAgdW5zaWduZWQgbnVtU3Vj
Y2Vzc29ycygpIGNvbnN0IHsgcmV0dXJuIG1fc3VjY2Vzc29ycy5zaXplKCk7IH0KLSAgICBjb25z
dCBGcmVxdWVudGVkQmxvY2smIHN1Y2Nlc3Nvcih1bnNpZ25lZCBpbmRleCkgY29uc3QgeyByZXR1
cm4gbV9zdWNjZXNzb3JzW2luZGV4XTsgfQotICAgIEZyZXF1ZW50ZWRCbG9jayYgc3VjY2Vzc29y
KHVuc2lnbmVkIGluZGV4KSB7IHJldHVybiBtX3N1Y2Nlc3NvcnNbaW5kZXhdOyB9Ci0gICAgY29u
c3QgU3VjY2Vzc29yTGlzdCYgc3VjY2Vzc29ycygpIGNvbnN0IHsgcmV0dXJuIG1fc3VjY2Vzc29y
czsgfQotICAgIFN1Y2Nlc3Nvckxpc3QmIHN1Y2Nlc3NvcnMoKSB7IHJldHVybiBtX3N1Y2Nlc3Nv
cnM7IH0KLQotICAgIEJhc2ljQmxvY2sqIHN1Y2Nlc3NvckJsb2NrKHVuc2lnbmVkIGluZGV4KSBj
b25zdCB7IHJldHVybiBzdWNjZXNzb3IoaW5kZXgpLmJsb2NrKCk7IH0KLSAgICBCYXNpY0Jsb2Nr
KiYgc3VjY2Vzc29yQmxvY2sodW5zaWduZWQgaW5kZXgpIHsgcmV0dXJuIHN1Y2Nlc3NvcihpbmRl
eCkuYmxvY2soKTsgfQotICAgIFN1Y2Nlc3NvckNvbGxlY3Rpb248QmFzaWNCbG9jaywgU3VjY2Vz
c29yTGlzdD4gc3VjY2Vzc29yQmxvY2tzKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBTdWNjZXNz
b3JDb2xsZWN0aW9uPEJhc2ljQmxvY2ssIFN1Y2Nlc3Nvckxpc3Q+KHN1Y2Nlc3NvcnMoKSk7Ci0g
ICAgfQotICAgIFN1Y2Nlc3NvckNvbGxlY3Rpb248Y29uc3QgQmFzaWNCbG9jaywgY29uc3QgU3Vj
Y2Vzc29yTGlzdD4gc3VjY2Vzc29yQmxvY2tzKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVy
biBTdWNjZXNzb3JDb2xsZWN0aW9uPGNvbnN0IEJhc2ljQmxvY2ssIGNvbnN0IFN1Y2Nlc3Nvckxp
c3Q+KHN1Y2Nlc3NvcnMoKSk7Ci0gICAgfQotCi0gICAgYm9vbCByZXBsYWNlU3VjY2Vzc29yKEJh
c2ljQmxvY2sqIGZyb20sIEJhc2ljQmxvY2sqIHRvKTsKLQotICAgIGNvbnN0IEZyZXF1ZW50ZWRC
bG9jayYgdGFrZW4oKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG9wY29kZSgpID09IEp1
bXAgfHwgb3Bjb2RlKCkgPT0gQnJhbmNoKTsKLSAgICAgICAgcmV0dXJuIHN1Y2Nlc3NvcigwKTsK
LSAgICB9Ci0gICAgRnJlcXVlbnRlZEJsb2NrJiB0YWtlbigpCi0gICAgewotICAgICAgICBBU1NF
UlQob3Bjb2RlKCkgPT0gSnVtcCB8fCBvcGNvZGUoKSA9PSBCcmFuY2gpOwotICAgICAgICByZXR1
cm4gc3VjY2Vzc29yKDApOwotICAgIH0KLSAgICBjb25zdCBGcmVxdWVudGVkQmxvY2smIG5vdFRh
a2VuKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChvcGNvZGUoKSA9PSBCcmFuY2gpOwot
ICAgICAgICByZXR1cm4gc3VjY2Vzc29yKDEpOwotICAgIH0KLSAgICBGcmVxdWVudGVkQmxvY2sm
IG5vdFRha2VuKCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChvcGNvZGUoKSA9PSBCcmFuY2gpOwot
ICAgICAgICByZXR1cm4gc3VjY2Vzc29yKDEpOwotICAgIH0KLQotICAgIHZvaWQgY29udmVydFRv
SnVtcChCYXNpY0Jsb2NrKiBkZXN0aW5hdGlvbik7Ci0gICAgdm9pZCBjb252ZXJ0VG9Pb3BzKCk7
Ci0KLXByb3RlY3RlZDoKLSAgICB2b2lkIGR1bXBNZXRhKENvbW1hUHJpbnRlciYsIFByaW50U3Ry
ZWFtJikgY29uc3Qgb3ZlcnJpZGU7Ci0KLSAgICBWYWx1ZSogY2xvbmVJbXBsKCkgY29uc3Qgb3Zl
cnJpZGU7Ci0KLSAgICAvLyBVc2UgdGhpcyBmb3Igc3ViY2xhc3Nlcy4KLSAgICB0ZW1wbGF0ZTx0
eXBlbmFtZS4uLiBBcmd1bWVudHM+Ci0gICAgQ29udHJvbFZhbHVlKE9wY29kZSBvcGNvZGUsIFR5
cGUgdHlwZSwgT3JpZ2luIG9yaWdpbiwgQXJndW1lbnRzLi4uIGFyZ3VtZW50cykKLSAgICAgICAg
OiBWYWx1ZShDaGVja2VkT3Bjb2RlLCBvcGNvZGUsIHR5cGUsIG9yaWdpbiwgYXJndW1lbnRzLi4u
KQotICAgIHsKLSAgICAgICAgQVNTRVJUKGFjY2VwdHMob3Bjb2RlKSk7Ci0gICAgfQotCi0gICAg
Ly8gU3ViY2xhc3NlcyB3aWxsIHBvcHVsYXRlIHRoaXMuCi0gICAgU3VjY2Vzc29yTGlzdCBtX3N1
Y2Nlc3NvcnM7Ci0KLXByaXZhdGU6Ci0gICAgZnJpZW5kIGNsYXNzIFByb2NlZHVyZTsKLQotICAg
IC8vIFVzZSB0aGlzIGZvciBPb3BzLgotICAgIENvbnRyb2xWYWx1ZShPcGNvZGUgb3Bjb2RlLCBP
cmlnaW4gb3JpZ2luKQotICAgICAgICA6IFZhbHVlKENoZWNrZWRPcGNvZGUsIG9wY29kZSwgVm9p
ZCwgb3JpZ2luKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG9wY29kZSA9PSBPb3BzKTsKLSAgICB9
Ci0KLSAgICAvLyBVc2UgdGhpcyBmb3IgUmV0dXJuLgotICAgIENvbnRyb2xWYWx1ZShPcGNvZGUg
b3Bjb2RlLCBPcmlnaW4gb3JpZ2luLCBWYWx1ZSogcmVzdWx0KQotICAgICAgICA6IFZhbHVlKENo
ZWNrZWRPcGNvZGUsIG9wY29kZSwgVm9pZCwgb3JpZ2luLCByZXN1bHQpCi0gICAgewotICAgICAg
ICBBU1NFUlQob3Bjb2RlID09IFJldHVybik7Ci0gICAgfQotCi0gICAgLy8gVXNlIHRoaXMgZm9y
IEp1bXAuCi0gICAgQ29udHJvbFZhbHVlKE9wY29kZSBvcGNvZGUsIE9yaWdpbiBvcmlnaW4sIGNv
bnN0IEZyZXF1ZW50ZWRCbG9jayYgdGFyZ2V0KQotICAgICAgICA6IFZhbHVlKENoZWNrZWRPcGNv
ZGUsIG9wY29kZSwgVm9pZCwgb3JpZ2luKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG9wY29kZSA9
PSBKdW1wKTsKLSAgICAgICAgbV9zdWNjZXNzb3JzLmFwcGVuZCh0YXJnZXQpOwotICAgIH0KLQot
ICAgIC8vIFVzZSB0aGlzIGZvciBCcmFuY2guCi0gICAgQ29udHJvbFZhbHVlKAotICAgICAgICBP
cGNvZGUgb3Bjb2RlLCBPcmlnaW4gb3JpZ2luLCBWYWx1ZSogcHJlZGljYXRlLAotICAgICAgICBj
b25zdCBGcmVxdWVudGVkQmxvY2smIHllcywgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBubykKLSAg
ICAgICAgOiBWYWx1ZShDaGVja2VkT3Bjb2RlLCBvcGNvZGUsIFZvaWQsIG9yaWdpbiwgcHJlZGlj
YXRlKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG9wY29kZSA9PSBCcmFuY2gpOwotICAgICAgICBt
X3N1Y2Nlc3NvcnMuYXBwZW5kKHllcyk7Ci0gICAgICAgIG1fc3VjY2Vzc29ycy5hcHBlbmQobm8p
OwotICAgIH0KLX07Ci0KLX0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMwotCi0jZW5kaWYgLy8gRU5B
QkxFKEIzX0pJVCkKLQotI2VuZGlmIC8vIEIzQ29udHJvbFZhbHVlX2gKLQpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzRGF0YVNlY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0RhdGFTZWN0aW9uLmNwcAkocmV2aXNpb24gMjAyODA5KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRGF0YVNlY3Rpb24uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTMxLDcgKzMxLDcgQEAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCiBEYXRh
U2VjdGlvbjo6RGF0YVNlY3Rpb24oc2l6ZV90IHNpemUpCi0gICAgOiBtX2RhdGEoZmFzdE1hbGxv
YyhzaXplKSkKKyAgICA6IG1fZGF0YShmYXN0WmVyb2VkTWFsbG9jKHNpemUpKQogICAgICwgbV9z
aXplKHNpemUpCiB7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEdXBsaWNh
dGVUYWlscy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRHVw
bGljYXRlVGFpbHMuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNEdXBsaWNhdGVUYWlscy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDYg
QEAKIAogI2luY2x1ZGUgIkIzQmFzaWNCbG9ja0lubGluZXMuaCIKICNpbmNsdWRlICJCM0JyZWFr
Q3JpdGljYWxFZGdlcy5oIgotI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAi
QjNEb21pbmF0b3JzLmgiCiAjaW5jbHVkZSAiQjNGaXhTU0EuaCIKICNpbmNsdWRlICJCM0luZGV4
U2V0LmgiCkBAIC03Miw5ICs3MSwxMCBAQCBwdWJsaWM6CiAgICAgICAgIEluZGV4U2V0PEJhc2lj
QmxvY2s+IGNhbmRpZGF0ZXM7CiAKICAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBibG9jayA6IG1f
cHJvYykgewotICAgICAgICAgICAgaWYgKGJsb2NrLT5zaXplKCkgPiBtX21heFNpemUgfHwgYmxv
Y2stPm51bVN1Y2Nlc3NvcnMoKSA+IG1fbWF4U3VjY2Vzc29ycykKKyAgICAgICAgICAgIGlmIChi
bG9jay0+c2l6ZSgpID4gbV9tYXhTaXplCisgICAgICAgICAgICAgICAgfHwgYmxvY2stPm51bVN1
Y2Nlc3NvcnMoKSA+IG1fbWF4U3VjY2Vzc29ycykKICAgICAgICAgICAgICAgICBjb250aW51ZTsK
LQorICAgICAgICAgICAgCiAgICAgICAgICAgICBjYW5kaWRhdGVzLmFkZChibG9jayk7CiAgICAg
ICAgIH0KIApAQCAtOTcsMTEgKzk3LDEwIEBAIHB1YmxpYzoKICAgICAgICAgfQogCiAgICAgICAg
IGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiBtX3Byb2MpIHsKLSAgICAgICAgICAgIENvbnRyb2xW
YWx1ZSoganVtcCA9IGJsb2NrLT5sYXN0KCktPmFzPENvbnRyb2xWYWx1ZT4oKTsKLSAgICAgICAg
ICAgIGlmIChqdW1wLT5vcGNvZGUoKSAhPSBKdW1wKQorICAgICAgICAgICAgaWYgKGJsb2NrLT5s
YXN0KCktPm9wY29kZSgpICE9IEp1bXApCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAg
ICAgICAgICAgIEJhc2ljQmxvY2sqIHRhaWwgPSBqdW1wLT5zdWNjZXNzb3JCbG9jaygwKTsKKyAg
ICAgICAgICAgIEJhc2ljQmxvY2sqIHRhaWwgPSBibG9jay0+c3VjY2Vzc29yQmxvY2soMCk7CiAg
ICAgICAgICAgICBpZiAoIWNhbmRpZGF0ZXMuY29udGFpbnModGFpbCkpCiAgICAgICAgICAgICAg
ICAgY29udGludWU7CiAKQEAgLTEzMCw2ICsxMjksNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAg
ICAgICAgIG1hcC5hZGQodmFsdWUsIGNsb25lKTsKICAgICAgICAgICAgICAgICBibG9jay0+YXBw
ZW5kKGNsb25lKTsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJsb2NrLT5zdWNjZXNzb3Jz
KCkgPSB0YWlsLT5zdWNjZXNzb3JzKCk7CiAgICAgICAgIH0KIAogICAgICAgICBtX3Byb2MucmVz
ZXRSZWFjaGFiaWxpdHkoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0ZpeFNT
QS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRml4U1NBLmNw
cAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRml4U1NB
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNiBAQAogCiAjaW5jbHVkZSAiQjNCYXNp
Y0Jsb2NrSW5saW5lcy5oIgogI2luY2x1ZGUgIkIzQnJlYWtDcml0aWNhbEVkZ2VzLmgiCi0jaW5j
bHVkZSAiQjNDb250cm9sVmFsdWUuaCIKICNpbmNsdWRlICJCM0RvbWluYXRvcnMuaCIKICNpbmNs
dWRlICJCM0luZGV4U2V0LmgiCiAjaW5jbHVkZSAiQjNJbnNlcnRpb25TZXRJbmxpbmVzLmgiCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNGb2xkUGF0aENvbnN0YW50cy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRm9sZFBhdGhDb25zdGFudHMu
Y3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNGb2xk
UGF0aENvbnN0YW50cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDYgQEAKICNpZiBF
TkFCTEUoQjNfSklUKQogCiAjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrSW5saW5lcy5oIgotI2luY2x1
ZGUgIkIzQ29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNEb21pbmF0b3JzLmgiCiAjaW5jbHVk
ZSAiQjNJbnNlcnRpb25TZXRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNQaGFzZVNjb3BlLmgiCkBA
IC04NywyNCArODYsMjQgQEAgcHVibGljOgogICAgICAgICB9OwogICAgICAgICAKICAgICAgICAg
Zm9yIChCYXNpY0Jsb2NrKiBibG9jayA6IG1fcHJvYykgewotICAgICAgICAgICAgQ29udHJvbFZh
bHVlKiBicmFuY2ggPSBibG9jay0+bGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCk7CisgICAgICAg
ICAgICBWYWx1ZSogYnJhbmNoID0gYmxvY2stPmxhc3QoKTsKICAgICAgICAgICAgIHN3aXRjaCAo
YnJhbmNoLT5vcGNvZGUoKSkgewogICAgICAgICAgICAgY2FzZSBCcmFuY2g6Ci0gICAgICAgICAg
ICAgICAgaWYgKGJyYW5jaC0+c3VjY2Vzc29yQmxvY2soMCkgPT0gYnJhbmNoLT5zdWNjZXNzb3JC
bG9jaygxKSkKKyAgICAgICAgICAgICAgICBpZiAoYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDApID09
IGJsb2NrLT5zdWNjZXNzb3JCbG9jaygxKSkKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7
CiAgICAgICAgICAgICAgICAgYWRkT3ZlcnJpZGUoCiAgICAgICAgICAgICAgICAgICAgIGJsb2Nr
LCBicmFuY2gtPmNoaWxkKDApLAotICAgICAgICAgICAgICAgICAgICBPdmVycmlkZTo6bm9uWmVy
byhicmFuY2gtPnN1Y2Nlc3NvckJsb2NrKDApKSk7CisgICAgICAgICAgICAgICAgICAgIE92ZXJy
aWRlOjpub25aZXJvKGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKSkpOwogICAgICAgICAgICAgICAg
IGFkZE92ZXJyaWRlKAogICAgICAgICAgICAgICAgICAgICBibG9jaywgYnJhbmNoLT5jaGlsZCgw
KSwKLSAgICAgICAgICAgICAgICAgICAgT3ZlcnJpZGU6OmNvbnN0YW50KGJyYW5jaC0+c3VjY2Vz
c29yQmxvY2soMSksIDApKTsKKyAgICAgICAgICAgICAgICAgICAgT3ZlcnJpZGU6OmNvbnN0YW50
KGJsb2NrLT5zdWNjZXNzb3JCbG9jaygxKSwgMCkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgY2FzZSBTd2l0Y2g6IHsKICAgICAgICAgICAgICAgICBIYXNoTWFwPEJhc2lj
QmxvY2sqLCB1bnNpZ25lZD4gdGFyZ2V0VXNlczsKLSAgICAgICAgICAgICAgICBmb3IgKGNvbnN0
IFN3aXRjaENhc2UmIHN3aXRjaENhc2UgOiAqYnJhbmNoLT5hczxTd2l0Y2hWYWx1ZT4oKSkKKyAg
ICAgICAgICAgICAgICBmb3IgKGNvbnN0IFN3aXRjaENhc2UmIHN3aXRjaENhc2UgOiBicmFuY2gt
PmFzPFN3aXRjaFZhbHVlPigpLT5jYXNlcyhibG9jaykpCiAgICAgICAgICAgICAgICAgICAgIHRh
cmdldFVzZXMuYWRkKHN3aXRjaENhc2UudGFyZ2V0QmxvY2soKSwgMCkuaXRlcmF0b3ItPnZhbHVl
Kys7CiAKLSAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFN3aXRjaENhc2UmIHN3aXRjaENhc2Ug
OiAqYnJhbmNoLT5hczxTd2l0Y2hWYWx1ZT4oKSkgeworICAgICAgICAgICAgICAgIGZvciAoY29u
c3QgU3dpdGNoQ2FzZSYgc3dpdGNoQ2FzZSA6IGJyYW5jaC0+YXM8U3dpdGNoVmFsdWU+KCktPmNh
c2VzKGJsb2NrKSkgewogICAgICAgICAgICAgICAgICAgICBpZiAodGFyZ2V0VXNlcy5maW5kKHN3
aXRjaENhc2UudGFyZ2V0QmxvY2soKSktPnZhbHVlICE9IDEpCiAgICAgICAgICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKIApAQCAtMTU4LDkgKzE1Nyw4IEBAIHB1YmxpYzoKIAogICAgICAgICAg
ICAgICAgIHN3aXRjaCAodmFsdWUtPm9wY29kZSgpKSB7CiAgICAgICAgICAgICAgICAgY2FzZSBC
cmFuY2g6IHsKLSAgICAgICAgICAgICAgICAgICAgQ29udHJvbFZhbHVlKiBicmFuY2ggPSB2YWx1
ZS0+YXM8Q29udHJvbFZhbHVlPigpOwotICAgICAgICAgICAgICAgICAgICBpZiAoZ2V0T3ZlcnJp
ZGUoYmxvY2ssIGJyYW5jaC0+Y2hpbGQoMCkpLmlzTm9uWmVybykgewotICAgICAgICAgICAgICAg
ICAgICAgICAgYnJhbmNoLT5jb252ZXJ0VG9KdW1wKGJyYW5jaC0+dGFrZW4oKS5ibG9jaygpKTsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKGdldE92ZXJyaWRlKGJsb2NrLCB2YWx1ZS0+Y2hpbGQo
MCkpLmlzTm9uWmVybykgeworICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUtPnJlcGxhY2VX
aXRoSnVtcChibG9jaywgYmxvY2stPnRha2VuKCkpOwogICAgICAgICAgICAgICAgICAgICAgICAg
Y2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlck1hY3Jvcy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJNYWNyb3Mu
Y3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dl
ck1hY3Jvcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsMTcgKzI4LDIyIEBACiAKICNpZiBFTkFCTEUo
QjNfSklUKQogCisjaW5jbHVkZSAiQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlLmgiCiAj
aW5jbHVkZSAiQjNCYXNpY0Jsb2NrSW5saW5lcy5oIgogI2luY2x1ZGUgIkIzQmxvY2tJbnNlcnRp
b25TZXQuaCIKICNpbmNsdWRlICJCM0NDYWxsVmFsdWUuaCIKICNpbmNsdWRlICJCM0NvbnN0UHRy
VmFsdWUuaCIKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzSW5zZXJ0
aW9uU2V0SW5saW5lcy5oIgorI2luY2x1ZGUgIkIzTWVtb3J5VmFsdWUuaCIKKyNpbmNsdWRlICJC
M1BhdGNocG9pbnRWYWx1ZS5oIgogI2luY2x1ZGUgIkIzUGhhc2VTY29wZS5oIgogI2luY2x1ZGUg
IkIzUHJvY2VkdXJlSW5saW5lcy5oIgorI2luY2x1ZGUgIkIzU3RhY2ttYXBHZW5lcmF0aW9uUGFy
YW1zLmgiCiAjaW5jbHVkZSAiQjNTd2l0Y2hWYWx1ZS5oIgogI2luY2x1ZGUgIkIzVXBzaWxvblZh
bHVlLmgiCiAjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKKyNpbmNsdWRlICJDQ2FsbEhlbHBl
cnMuaCIKKyNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAjaW5jbHVkZSA8Y21hdGg+CiAKIG5hbWVz
cGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewpAQCAtMTE4LDggKzEyMyw4IEBAIHByaXZhdGU6CiAg
ICAgICAgICAgICAgICAgICAgIEJhc2ljQmxvY2sqIHplcm9EZW5DYXNlID0gbV9ibG9ja0luc2Vy
dGlvblNldC5pbnNlcnRCZWZvcmUobV9ibG9jayk7CiAgICAgICAgICAgICAgICAgICAgIEJhc2lj
QmxvY2sqIG5vcm1hbE1vZENhc2UgPSBtX2Jsb2NrSW5zZXJ0aW9uU2V0Lmluc2VydEJlZm9yZSht
X2Jsb2NrKTsKIAotICAgICAgICAgICAgICAgICAgICBiZWZvcmUtPnJlcGxhY2VMYXN0V2l0aE5l
dzxDb250cm9sVmFsdWU+KAotICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBCcmFuY2gs
IG1fb3JpZ2luLCBtX3ZhbHVlLT5jaGlsZCgxKSwKKyAgICAgICAgICAgICAgICAgICAgYmVmb3Jl
LT5yZXBsYWNlTGFzdFdpdGhOZXc8VmFsdWU+KG1fcHJvYywgQnJhbmNoLCBtX29yaWdpbiwgbV92
YWx1ZS0+Y2hpbGQoMSkpOworICAgICAgICAgICAgICAgICAgICBiZWZvcmUtPnNldFN1Y2Nlc3Nv
cnMoCiAgICAgICAgICAgICAgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2sobm9ybWFsTW9kQ2Fz
ZSwgRnJlcXVlbmN5Q2xhc3M6Ok5vcm1hbCksCiAgICAgICAgICAgICAgICAgICAgICAgICBGcmVx
dWVudGVkQmxvY2soemVyb0RlbkNhc2UsIEZyZXF1ZW5jeUNsYXNzOjpSYXJlKSk7CiAKQEAgLTEy
NywxMiArMTMyLDE0IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgIFZhbHVlKiBtdWx0
aXBsaWVkQmFjayA9IG5vcm1hbE1vZENhc2UtPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBNdWws
IG1fb3JpZ2luLCBkaXZSZXN1bHQsIG1fdmFsdWUtPmNoaWxkKDEpKTsKICAgICAgICAgICAgICAg
ICAgICAgVmFsdWUqIHJlc3VsdCA9IG5vcm1hbE1vZENhc2UtPmFwcGVuZE5ldzxWYWx1ZT4obV9w
cm9jLCBTdWIsIG1fb3JpZ2luLCBtX3ZhbHVlLT5jaGlsZCgwKSwgbXVsdGlwbGllZEJhY2spOwog
ICAgICAgICAgICAgICAgICAgICBVcHNpbG9uVmFsdWUqIG5vcm1hbFJlc3VsdCA9IG5vcm1hbE1v
ZENhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KG1fcHJvYywgbV9vcmlnaW4sIHJlc3VsdCk7
Ci0gICAgICAgICAgICAgICAgICAgIG5vcm1hbE1vZENhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7Cisg
ICAgICAgICAgICAgICAgICAgIG5vcm1hbE1vZENhc2UtPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9j
LCBKdW1wLCBtX29yaWdpbik7CisgICAgICAgICAgICAgICAgICAgIG5vcm1hbE1vZENhc2UtPnNl
dFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2NrKG1fYmxvY2spKTsKIAogICAgICAgICAgICAgICAg
ICAgICBVcHNpbG9uVmFsdWUqIHplcm9SZXN1bHQgPSB6ZXJvRGVuQ2FzZS0+YXBwZW5kTmV3PFVw
c2lsb25WYWx1ZT4oCiAgICAgICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLAog
ICAgICAgICAgICAgICAgICAgICAgICAgemVyb0RlbkNhc2UtPmFwcGVuZEludENvbnN0YW50KG1f
cHJvYywgbV92YWx1ZSwgMCkpOwotICAgICAgICAgICAgICAgICAgICB6ZXJvRGVuQ2FzZS0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4obV9wcm9jLCBKdW1wLCBtX29yaWdpbiwgRnJlcXVlbnRlZEJs
b2NrKG1fYmxvY2spKTsKKyAgICAgICAgICAgICAgICAgICAgemVyb0RlbkNhc2UtPmFwcGVuZE5l
dzxWYWx1ZT4obV9wcm9jLCBKdW1wLCBtX29yaWdpbik7CisgICAgICAgICAgICAgICAgICAgIHpl
cm9EZW5DYXNlLT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7CiAKICAg
ICAgICAgICAgICAgICAgICAgVmFsdWUqIHBoaSA9IG1faW5zZXJ0aW9uU2V0Lmluc2VydDxWYWx1
ZT4obV9pbmRleCwgUGhpLCBtX3ZhbHVlLT50eXBlKCksIG1fb3JpZ2luKTsKICAgICAgICAgICAg
ICAgICAgICAgbm9ybWFsUmVzdWx0LT5zZXRQaGkocGhpKTsKQEAgLTE0NywxNSArMTU0LDE2IEBA
IHByaXZhdGU6CiAgICAgICAgICAgICBjYXNlIFN3aXRjaDogewogICAgICAgICAgICAgICAgIFN3
aXRjaFZhbHVlKiBzd2l0Y2hWYWx1ZSA9IG1fdmFsdWUtPmFzPFN3aXRjaFZhbHVlPigpOwogICAg
ICAgICAgICAgICAgIFZlY3RvcjxTd2l0Y2hDYXNlPiBjYXNlczsKLSAgICAgICAgICAgICAgICBm
b3IgKGNvbnN0IFN3aXRjaENhc2UmIHN3aXRjaENhc2UgOiAqc3dpdGNoVmFsdWUpCisgICAgICAg
ICAgICAgICAgZm9yIChjb25zdCBTd2l0Y2hDYXNlJiBzd2l0Y2hDYXNlIDogc3dpdGNoVmFsdWUt
PmNhc2VzKG1fYmxvY2spKQogICAgICAgICAgICAgICAgICAgICBjYXNlcy5hcHBlbmQoc3dpdGNo
Q2FzZSk7CiAgICAgICAgICAgICAgICAgc3RkOjpzb3J0KAogICAgICAgICAgICAgICAgICAgICBj
YXNlcy5iZWdpbigpLCBjYXNlcy5lbmQoKSwKICAgICAgICAgICAgICAgICAgICAgW10gKGNvbnN0
IFN3aXRjaENhc2UmIGxlZnQsIGNvbnN0IFN3aXRjaENhc2UmIHJpZ2h0KSB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gbGVmdC5jYXNlVmFsdWUoKSA8IHJpZ2h0LmNhc2VWYWx1ZSgp
OwogICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBGcmVxdWVudGVkQmxv
Y2sgZmFsbFRocm91Z2ggPSBtX2Jsb2NrLT5mYWxsVGhyb3VnaCgpOwogICAgICAgICAgICAgICAg
IG1fYmxvY2stPnZhbHVlcygpLnJlbW92ZUxhc3QoKTsKLSAgICAgICAgICAgICAgICByZWN1cnNp
dmVseUJ1aWxkU3dpdGNoKGNhc2VzLCAwLCBmYWxzZSwgY2FzZXMuc2l6ZSgpLCBtX2Jsb2NrKTsK
KyAgICAgICAgICAgICAgICByZWN1cnNpdmVseUJ1aWxkU3dpdGNoKGNhc2VzLCBmYWxsVGhyb3Vn
aCwgMCwgZmFsc2UsIGNhc2VzLnNpemUoKSwgbV9ibG9jayk7CiAgICAgICAgICAgICAgICAgbV9w
cm9jLmRlbGV0ZVZhbHVlKHN3aXRjaFZhbHVlKTsKICAgICAgICAgICAgICAgICBtX2Jsb2NrLT51
cGRhdGVQcmVkZWNlc3NvcnNBZnRlcigpOwogICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRy
dWU7CkBAIC0yMTAsMjcgKzIxOCwyNyBAQCBwcml2YXRlOgogICAgICAgICBCYXNpY0Jsb2NrKiBu
ZWcxRGVuQ2FzZSA9IG1fYmxvY2tJbnNlcnRpb25TZXQuaW5zZXJ0QmVmb3JlKG1fYmxvY2spOwog
ICAgICAgICBCYXNpY0Jsb2NrKiBpbnRNaW5DYXNlID0gbV9ibG9ja0luc2VydGlvblNldC5pbnNl
cnRCZWZvcmUobV9ibG9jayk7CiAKLSAgICAgICAgYmVmb3JlLT5yZXBsYWNlTGFzdFdpdGhOZXc8
Q29udHJvbFZhbHVlPigKLSAgICAgICAgICAgIG1fcHJvYywgQnJhbmNoLCBtX29yaWdpbiwgaXNE
ZW5PSywKKyAgICAgICAgYmVmb3JlLT5yZXBsYWNlTGFzdFdpdGhOZXc8VmFsdWU+KG1fcHJvYywg
QnJhbmNoLCBtX29yaWdpbiwgaXNEZW5PSyk7CisgICAgICAgIGJlZm9yZS0+c2V0U3VjY2Vzc29y
cygKICAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhub3JtYWxEaXZDYXNlLCBGcmVxdWVuY3lD
bGFzczo6Tm9ybWFsKSwKICAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhzaGFkeURlbkNhc2Us
IEZyZXF1ZW5jeUNsYXNzOjpSYXJlKSk7CiAKICAgICAgICAgVXBzaWxvblZhbHVlKiBub3JtYWxS
ZXN1bHQgPSBub3JtYWxEaXZDYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPigKICAgICAgICAg
ICAgIG1fcHJvYywgbV9vcmlnaW4sCiAgICAgICAgICAgICBub3JtYWxEaXZDYXNlLT5hcHBlbmRO
ZXc8VmFsdWU+KG1fcHJvYywgbm9uQ2hpbGxPcGNvZGUsIG1fb3JpZ2luLCBudW0sIGRlbikpOwot
ICAgICAgICBub3JtYWxEaXZDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAg
ICAgIG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7Cisg
ICAgICAgIG5vcm1hbERpdkNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBKdW1wLCBtX29y
aWdpbik7CisgICAgICAgIG5vcm1hbERpdkNhc2UtPnNldFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJs
b2NrKG1fYmxvY2spKTsKIAotICAgICAgICBzaGFkeURlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAotICAgICAgICAgICAgbV9wcm9jLCBCcmFuY2gsIG1fb3JpZ2luLCBkZW4sCisgICAg
ICAgIHNoYWR5RGVuQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIEJyYW5jaCwgbV9vcmln
aW4sIGRlbik7CisgICAgICAgIHNoYWR5RGVuQ2FzZS0+c2V0U3VjY2Vzc29ycygKICAgICAgICAg
ICAgIEZyZXF1ZW50ZWRCbG9jayhuZWcxRGVuQ2FzZSwgRnJlcXVlbmN5Q2xhc3M6Ok5vcm1hbCks
CiAgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2soemVyb0RlbkNhc2UsIEZyZXF1ZW5jeUNsYXNz
OjpSYXJlKSk7CiAKICAgICAgICAgVXBzaWxvblZhbHVlKiB6ZXJvUmVzdWx0ID0gemVyb0RlbkNh
c2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KAogICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdp
biwKICAgICAgICAgICAgIHplcm9EZW5DYXNlLT5hcHBlbmRJbnRDb25zdGFudChtX3Byb2MsIG1f
dmFsdWUsIDApKTsKLSAgICAgICAgemVyb0RlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAotICAgICAgICAgICAgbV9wcm9jLCBKdW1wLCBtX29yaWdpbiwgRnJlcXVlbnRlZEJsb2NrKG1f
YmxvY2spKTsKKyAgICAgICAgemVyb0RlbkNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBK
dW1wLCBtX29yaWdpbik7CisgICAgICAgIHplcm9EZW5DYXNlLT5zZXRTdWNjZXNzb3JzKEZyZXF1
ZW50ZWRCbG9jayhtX2Jsb2NrKSk7CiAKICAgICAgICAgaW50NjRfdCBiYWROdW1lcmF0b3JDb25z
dCA9IDA7CiAgICAgICAgIHN3aXRjaCAobV92YWx1ZS0+dHlwZSgpKSB7CkBAIC0yNDgsMTggKzI1
NiwxOSBAQCBwcml2YXRlOgogICAgICAgICBWYWx1ZSogYmFkTnVtZXJhdG9yID0KICAgICAgICAg
ICAgIG5lZzFEZW5DYXNlLT5hcHBlbmRJbnRDb25zdGFudChtX3Byb2MsIG1fdmFsdWUsIGJhZE51
bWVyYXRvckNvbnN0KTsKIAotICAgICAgICBuZWcxRGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgICAgIG5lZzFEZW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgbV9wcm9jLCBCcmFuY2gsIG1fb3JpZ2luLAogICAgICAgICAgICAgbmVnMURlbkNhc2UtPmFw
cGVuZE5ldzxWYWx1ZT4oCi0gICAgICAgICAgICAgICAgbV9wcm9jLCBFcXVhbCwgbV9vcmlnaW4s
IG51bSwgYmFkTnVtZXJhdG9yKSwKKyAgICAgICAgICAgICAgICBtX3Byb2MsIEVxdWFsLCBtX29y
aWdpbiwgbnVtLCBiYWROdW1lcmF0b3IpKTsKKyAgICAgICAgbmVnMURlbkNhc2UtPnNldFN1Y2Nl
c3NvcnMoCiAgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2soaW50TWluQ2FzZSwgRnJlcXVlbmN5
Q2xhc3M6OlJhcmUpLAogICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKG5vcm1hbERpdkNhc2Us
IEZyZXF1ZW5jeUNsYXNzOjpOb3JtYWwpKTsKIAogICAgICAgICBWYWx1ZSogaW50TWluUmVzdWx0
ID0gbm9uQ2hpbGxPcGNvZGUgPT0gRGl2ID8gYmFkTnVtZXJhdG9yIDogaW50TWluQ2FzZS0+YXBw
ZW5kSW50Q29uc3RhbnQobV9wcm9jLCBtX3ZhbHVlLCAwKTsKICAgICAgICAgVXBzaWxvblZhbHVl
KiBpbnRNaW5SZXN1bHRVcHNpbG9uID0gaW50TWluQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1
ZT4oCiAgICAgICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLCBpbnRNaW5SZXN1bHQpOwotICAgICAg
ICBpbnRNaW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgICAgIG1fcHJv
YywgSnVtcCwgbV9vcmlnaW4sIEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7CisgICAgICAgIGlu
dE1pbkNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBKdW1wLCBtX29yaWdpbik7CisgICAg
ICAgIGludE1pbkNhc2UtPnNldFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2NrKG1fYmxvY2spKTsK
IAogICAgICAgICBWYWx1ZSogcGhpID0gbV9pbnNlcnRpb25TZXQuaW5zZXJ0PFZhbHVlPigKICAg
ICAgICAgICAgIG1faW5kZXgsIFBoaSwgbV92YWx1ZS0+dHlwZSgpLCBtX29yaWdpbik7CkBAIC0y
NzIsMTEgKzI4MSwxMDUgQEAgcHJpdmF0ZToKICAgICB9CiAKICAgICB2b2lkIHJlY3Vyc2l2ZWx5
QnVpbGRTd2l0Y2goCi0gICAgICAgIGNvbnN0IFZlY3RvcjxTd2l0Y2hDYXNlPiYgY2FzZXMsIHVu
c2lnbmVkIHN0YXJ0LCBib29sIGhhcmRTdGFydCwgdW5zaWduZWQgZW5kLAotICAgICAgICBCYXNp
Y0Jsb2NrKiBiZWZvcmUpCisgICAgICAgIGNvbnN0IFZlY3RvcjxTd2l0Y2hDYXNlPiYgY2FzZXMs
IEZyZXF1ZW50ZWRCbG9jayBmYWxsVGhyb3VnaCwgdW5zaWduZWQgc3RhcnQsIGJvb2wgaGFyZFN0
YXJ0LAorICAgICAgICB1bnNpZ25lZCBlbmQsIEJhc2ljQmxvY2sqIGJlZm9yZSkKICAgICB7Ci0g
ICAgICAgIC8vIEZJWE1FOiBBZGQgdGFibGUtYmFzZWQgc3dpdGNoIGxvd2VyaW5nLgotICAgICAg
ICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxMTQxCisgICAg
ICAgIFZhbHVlKiBjaGlsZCA9IG1fdmFsdWUtPmNoaWxkKDApOworICAgICAgICBUeXBlIHR5cGUg
PSBjaGlsZC0+dHlwZSgpOworICAgICAgICAKKyAgICAgICAgLy8gSXQncyBhIGdvb2QgaWRlYSB0
byB1c2UgYSB0YWJsZS1iYXNlZCBzd2l0Y2ggaW4gc29tZSBjYXNlczogdGhlIG51bWJlciBvZiBj
YXNlcyBoYXMgdG8gYmUKKyAgICAgICAgLy8gbGFyZ2UgZW5vdWdoIGFuZCB0aGV5IGhhdmUgdG8g
YmUgZGVuc2UgZW5vdWdoLiBUaGlzIGNvdWxkIHByb2JhYmx5IGJlIGltcHJvdmVkIGEgbG90LiBG
b3IKKyAgICAgICAgLy8gZXhhbXBsZSwgd2UgY291bGQgc3RpbGwgdXNlIGEganVtcCB0YWJsZSBp
biBjYXNlcyB3aGVyZSB0aGUgaW5wdXRzIGFyZSBzcGFyc2Ugc28gbG9uZyBhcyB3ZQorICAgICAg
ICAvLyBzaGlmdCBvZmYgdGhlIHVuaW50ZXJlc3RpbmcgYml0cy4gT24gdGhlIG90aGVyIGhhbmQs
IGl0J3Mgbm90IGNsZWFyIHRoYXQgdGhpcyB3b3VsZAorICAgICAgICAvLyBhY3R1YWxseSBiZSBh
bnkgYmV0dGVyIHRoYW4gd2hhdCB3ZSBoYXZlIGRvbmUgaGVyZSBhbmQgaXQncyBub3QgY2xlYXIg
dGhhdCBpdCB3b3VsZCBiZQorICAgICAgICAvLyBiZXR0ZXIgdGhhbiBhIGJpbmFyeSBzd2l0Y2gu
CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIG1pbkNhc2VzRm9yVGFibGUgPSA3OworICAgICAgICBj
b25zdCB1bnNpZ25lZCBkZW5zaXR5TGltaXQgPSA0OworICAgICAgICBpZiAoZW5kIC0gc3RhcnQg
Pj0gbWluQ2FzZXNGb3JUYWJsZSkgeworICAgICAgICAgICAgaW50NjRfdCBmaXJzdFZhbHVlID0g
Y2FzZXNbc3RhcnRdLmNhc2VWYWx1ZSgpOworICAgICAgICAgICAgaW50NjRfdCBsYXN0VmFsdWUg
PSBjYXNlc1tlbmQgLSAxXS5jYXNlVmFsdWUoKTsKKyAgICAgICAgICAgIGlmICgobGFzdFZhbHVl
IC0gZmlyc3RWYWx1ZSArIDEpIC8gY2FzZXMuc2l6ZSgpIDwgZGVuc2l0eUxpbWl0KSB7CisgICAg
ICAgICAgICAgICAgQmFzaWNCbG9jayogc3dpdGNoQmxvY2sgPSBtX2Jsb2NrSW5zZXJ0aW9uU2V0
Lmluc2VydEFmdGVyKG1fYmxvY2spOworICAgICAgICAgICAgICAgIFZhbHVlKiBpbmRleCA9IGJl
Zm9yZS0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBTdWIs
IG1fb3JpZ2luLCBjaGlsZCwKKyAgICAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmRJbnRD
b25zdGFudChtX3Byb2MsIG1fb3JpZ2luLCB0eXBlLCBmaXJzdFZhbHVlKSk7CisgICAgICAgICAg
ICAgICAgYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgICAgICAgICBtX3By
b2MsIEJyYW5jaCwgbV9vcmlnaW4sCisgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5k
TmV3PFZhbHVlPigKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgQWJvdmUsIG1fb3Jp
Z2luLCBpbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kSW50Q29u
c3RhbnQobV9wcm9jLCBtX29yaWdpbiwgdHlwZSwgbGFzdFZhbHVlIC0gZmlyc3RWYWx1ZSkpKTsK
KyAgICAgICAgICAgICAgICBiZWZvcmUtPnNldFN1Y2Nlc3NvcnMoZmFsbFRocm91Z2gsIEZyZXF1
ZW50ZWRCbG9jayhzd2l0Y2hCbG9jaykpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAg
ICAgIHNpemVfdCB0YWJsZVNpemUgPSBsYXN0VmFsdWUgLSBmaXJzdFZhbHVlICsgMTsKKyAgICAg
ICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoaW5kZXgtPnR5cGUoKSAhPSBwb2ludGVy
VHlwZSgpICYmIGluZGV4LT50eXBlKCkgPT0gSW50MzIpCisgICAgICAgICAgICAgICAgICAgIGlu
ZGV4ID0gc3dpdGNoQmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBaRXh0MzIsIG1fb3Jp
Z2luLCBpbmRleCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgUGF0Y2hwb2lu
dFZhbHVlKiBwYXRjaHBvaW50ID0KKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoQmxvY2stPmFw
cGVuZE5ldzxQYXRjaHBvaW50VmFsdWU+KG1fcHJvYywgVm9pZCwgbV9vcmlnaW4pOworICAgICAg
ICAgICAgICAgIAorICAgICAgICAgICAgICAgIHBhdGNocG9pbnQtPmVmZmVjdHMudGVybWluYWwg
PSB0cnVlOworICAgICAgICAgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZFNvbWVSZWdpc3Rlcihp
bmRleCk7CisgICAgICAgICAgICAgICAgcGF0Y2hwb2ludC0+bnVtR1BTY3JhdGNoUmVnaXN0ZXJz
Kys7CisgICAgICAgICAgICAgICAgLy8gVGVjaG5pY2FsbHksIHdlIGRvbid0IGhhdmUgdG8gY2xv
YmJlciBtYWNybyByZWdpc3RlcnMgb24gWDg2XzY0LiBUaGlzIGlzIHByb2JhYmx5CisgICAgICAg
ICAgICAgICAgLy8gT0sgdGhvdWdoLgorICAgICAgICAgICAgICAgIHBhdGNocG9pbnQtPmNsb2Ji
ZXIoUmVnaXN0ZXJTZXQ6Om1hY3JvU2NyYXRjaFJlZ2lzdGVycygpKTsKKyAgICAgICAgICAgICAg
ICAKKyAgICAgICAgICAgICAgICBCaXRWZWN0b3IgaGFuZGxlZEluZGljZXM7CisgICAgICAgICAg
ICAgICAgZm9yICh1bnNpZ25lZCBpID0gc3RhcnQ7IGkgPCBlbmQ7ICsraSkgeworICAgICAgICAg
ICAgICAgICAgICBGcmVxdWVudGVkQmxvY2sgYmxvY2sgPSBjYXNlc1tpXS50YXJnZXQoKTsKKyAg
ICAgICAgICAgICAgICAgICAgaW50NjRfdCB2YWx1ZSA9IGNhc2VzW2ldLmNhc2VWYWx1ZSgpOwor
ICAgICAgICAgICAgICAgICAgICBzd2l0Y2hCbG9jay0+YXBwZW5kU3VjY2Vzc29yKGJsb2NrKTsK
KyAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGluZGV4ID0gdmFsdWUgLSBmaXJzdFZhbHVlOwor
ICAgICAgICAgICAgICAgICAgICBBU1NFUlQoIWhhbmRsZWRJbmRpY2VzLmdldChpbmRleCkpOwor
ICAgICAgICAgICAgICAgICAgICBoYW5kbGVkSW5kaWNlcy5zZXQoaW5kZXgpOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBib29sIGhhc1VuaGFu
ZGxlZEluZGV4ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IHRhYmxlU2l6ZTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghaGFuZGxlZElu
ZGljZXMuZ2V0KGkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBoYXNVbmhhbmRsZWRJbmRl
eCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAg
ICAgICBpZiAoaGFzVW5oYW5kbGVkSW5kZXgpCisgICAgICAgICAgICAgICAgICAgIHN3aXRjaEJs
b2NrLT5hcHBlbmRTdWNjZXNzb3IoZmFsbFRocm91Z2gpOworCisgICAgICAgICAgICAgICAgcGF0
Y2hwb2ludC0+c2V0R2VuZXJhdG9yKAorICAgICAgICAgICAgICAgICAgICBbPV0gKENDYWxsSGVs
cGVycyYgaml0LCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmIHBhcmFtcykgeworICAg
ICAgICAgICAgICAgICAgICAgICAgQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlIGFsbG93
U2NyYXRjaChqaXQpOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAg
ICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIqIGp1bXBUYWJsZSA9IHN0YXRpY19jYXN0PE1h
Y3JvQXNzZW1ibGVyQ29kZVB0cio+KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFt
cy5wcm9jKCkuYWRkRGF0YVNlY3Rpb24oc2l6ZW9mKE1hY3JvQXNzZW1ibGVyQ29kZVB0cikgKiB0
YWJsZVNpemUpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAg
ICAgICAgR1BSUmVnIGluZGV4ID0gcGFyYW1zWzBdLmdwcigpOworICAgICAgICAgICAgICAgICAg
ICAgICAgR1BSUmVnIHNjcmF0Y2ggPSBwYXJhbXMuZ3BTY3JhdGNoKDApOworICAgICAgICAgICAg
ICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBl
cnM6OlRydXN0ZWRJbW1QdHIoanVtcFRhYmxlKSwgc2NyYXRjaCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBqaXQuanVtcChDQ2FsbEhlbHBlcnM6OkJhc2VJbmRleChzY3JhdGNoLCBpbmRleCwg
Q0NhbGxIZWxwZXJzOjp0aW1lc1B0cigpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAg
ICAgICAgICAgICAgICAgICAgICAgIFZlY3RvcjxCb3g8Q0NhbGxIZWxwZXJzOjpMYWJlbD4+IGxh
YmVscyA9IHBhcmFtcy5zdWNjZXNzb3JMYWJlbHMoKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IAorICAgICAgICAgICAgICAgICAgICAgICAgaml0LmFkZExpbmtUYXNrKAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFs9XSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGFzVW5oYW5kbGVkSW5kZXgpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBmYWxsVGhy
b3VnaCA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlua0J1ZmZl
ci5sb2NhdGlvbk9mKCpsYWJlbHMubGFzdCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IHRhYmxlU2l6ZTsgaS0tOykKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqdW1wVGFibGVbaV0gPSBmYWxsVGhyb3VnaDsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbGFi
ZWxJbmRleCA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodW5zaWdu
ZWQgdGFibGVJbmRleCA6IGhhbmRsZWRJbmRpY2VzKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBqdW1wVGFibGVbdGFibGVJbmRleF0gPQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxpbmtCdWZmZXIubG9jYXRpb25PZigqbGFiZWxzW2xhYmVs
SW5kZXgrK10pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgICAgICAKICAgICAg
ICAgLy8gU2VlIGNvbW1lbnRzIGluIGppdC9CaW5hcnlTd2l0Y2guY3BwIGZvciBhIGp1c3RpZmlj
YXRpb24gb2YgdGhpcyBhbGdvcml0aG0uIFRoZSBvbmx5CiAgICAgICAgIC8vIHRoaW5nIHdlIGRv
IGRpZmZlcmVudGx5IGlzIHRoYXQgd2UgZG9uJ3QgdXNlIHJhbmRvbW5lc3MuCkBAIC0zMDQsMjUg
KzQwNywyMyBAQCBwcml2YXRlOgogICAgICAgICAgICAgCiAgICAgICAgICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgbGltaXQ7ICsraSkgewogICAgICAgICAgICAgICAgIEJhc2ljQmxvY2sq
IG5leHRDaGVjayA9IG1fYmxvY2tJbnNlcnRpb25TZXQuaW5zZXJ0QWZ0ZXIobV9ibG9jayk7Ci0g
ICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAg
ICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICAgICAgICAgIG1f
cHJvYywgQnJhbmNoLCBtX29yaWdpbiwKICAgICAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBl
bmROZXc8VmFsdWU+KAotICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBFcXVhbCwgbV9v
cmlnaW4sIG1fdmFsdWUtPmNoaWxkKDApLAorICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9j
LCBFcXVhbCwgbV9vcmlnaW4sIGNoaWxkLAogICAgICAgICAgICAgICAgICAgICAgICAgYmVmb3Jl
LT5hcHBlbmRJbnRDb25zdGFudCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3Byb2Ms
IG1fb3JpZ2luLCBtX3ZhbHVlLT5jaGlsZCgwKS0+dHlwZSgpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNhc2VzW3N0YXJ0ICsgaV0uY2FzZVZhbHVlKCkpKSwKLSAgICAgICAgICAgICAg
ICAgICAgY2FzZXNbc3RhcnQgKyBpXS50YXJnZXQoKSwgRnJlcXVlbnRlZEJsb2NrKG5leHRDaGVj
aykpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgbV9vcmlnaW4sIHR5cGUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZXNbc3RhcnQgKyBpXS5jYXNlVmFsdWUo
KSkpKTsKKyAgICAgICAgICAgICAgICBiZWZvcmUtPnNldFN1Y2Nlc3NvcnMoY2FzZXNbc3RhcnQg
KyBpXS50YXJnZXQoKSwgRnJlcXVlbnRlZEJsb2NrKG5leHRDaGVjaykpOwogCiAgICAgICAgICAg
ICAgICAgYmVmb3JlID0gbmV4dENoZWNrOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBp
ZiAoYWxsQ29uc2VjdXRpdmUpIHsKLSAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAotICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIEp1bXAsIG1fb3JpZ2lu
LCBjYXNlc1tlbmQgLSAxXS50YXJnZXQoKSk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCi0gICAgICAgICAgICAg
ICAgICAgIG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIG1fdmFsdWUtPmFzPFN3aXRjaFZhbHVlPigp
LT5mYWxsVGhyb3VnaCgpKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJlZm9yZS0+YXBw
ZW5kTmV3PFZhbHVlPihtX3Byb2MsIEp1bXAsIG1fb3JpZ2luKTsKKyAgICAgICAgICAgIGlmIChh
bGxDb25zZWN1dGl2ZSkKKyAgICAgICAgICAgICAgICBiZWZvcmUtPnNldFN1Y2Nlc3NvcnMoY2Fz
ZXNbZW5kIC0gMV0udGFyZ2V0KCkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAg
IGJlZm9yZS0+c2V0U3VjY2Vzc29ycyhmYWxsVGhyb3VnaCk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KIApAQCAtMzMxLDE3ICs0MzIsMTcgQEAgcHJpdmF0ZToKICAgICAgICAgQmFz
aWNCbG9jayogbGVmdCA9IG1fYmxvY2tJbnNlcnRpb25TZXQuaW5zZXJ0QWZ0ZXIobV9ibG9jayk7
CiAgICAgICAgIEJhc2ljQmxvY2sqIHJpZ2h0ID0gbV9ibG9ja0luc2VydGlvblNldC5pbnNlcnRB
ZnRlcihtX2Jsb2NrKTsKIAotICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBtX3Byb2Ms
IEJyYW5jaCwgbV9vcmlnaW4sCiAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4o
Ci0gICAgICAgICAgICAgICAgbV9wcm9jLCBMZXNzVGhhbiwgbV9vcmlnaW4sIG1fdmFsdWUtPmNo
aWxkKDApLAorICAgICAgICAgICAgICAgIG1fcHJvYywgTGVzc1RoYW4sIG1fb3JpZ2luLCBjaGls
ZCwKICAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZEludENvbnN0YW50KAotICAgICAgICAg
ICAgICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLCBtX3ZhbHVlLT5jaGlsZCgwKS0+dHlwZSgpLAot
ICAgICAgICAgICAgICAgICAgICBjYXNlc1ttZWRpYW5JbmRleF0uY2FzZVZhbHVlKCkpKSwKLSAg
ICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhsZWZ0KSwgRnJlcXVlbnRlZEJsb2NrKHJpZ2h0KSk7
CisgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgbV9vcmlnaW4sIHR5cGUsCisgICAgICAgICAg
ICAgICAgICAgIGNhc2VzW21lZGlhbkluZGV4XS5jYXNlVmFsdWUoKSkpKTsKKyAgICAgICAgYmVm
b3JlLT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhsZWZ0KSwgRnJlcXVlbnRlZEJsb2Nr
KHJpZ2h0KSk7CiAKLSAgICAgICAgcmVjdXJzaXZlbHlCdWlsZFN3aXRjaChjYXNlcywgc3RhcnQs
IGhhcmRTdGFydCwgbWVkaWFuSW5kZXgsIGxlZnQpOwotICAgICAgICByZWN1cnNpdmVseUJ1aWxk
U3dpdGNoKGNhc2VzLCBtZWRpYW5JbmRleCwgdHJ1ZSwgZW5kLCByaWdodCk7CisgICAgICAgIHJl
Y3Vyc2l2ZWx5QnVpbGRTd2l0Y2goY2FzZXMsIGZhbGxUaHJvdWdoLCBzdGFydCwgaGFyZFN0YXJ0
LCBtZWRpYW5JbmRleCwgbGVmdCk7CisgICAgICAgIHJlY3Vyc2l2ZWx5QnVpbGRTd2l0Y2goY2Fz
ZXMsIGZhbGxUaHJvdWdoLCBtZWRpYW5JbmRleCwgdHJ1ZSwgZW5kLCByaWdodCk7CiAgICAgfQog
ICAgIAogICAgIFByb2NlZHVyZSYgbV9wcm9jOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzTG93ZXJUb0Fpci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzTG93ZXJUb0Fpci5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTUsNyArMTU1
LDYgQEAgcHVibGljOgogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAvLyBNYWtlIHN1cmUg
dGhhdCB0aGUgc3VjY2Vzc29ycyBhcmUgc2V0IHVwIGNvcnJlY3RseS4KLSAgICAgICAgICAgIEFT
U0VSVChibG9jay0+c3VjY2Vzc29ycygpLnNpemUoKSA8PSAyKTsKICAgICAgICAgICAgIGZvciAo
QjM6OkZyZXF1ZW50ZWRCbG9jayBzdWNjZXNzb3IgOiBibG9jay0+c3VjY2Vzc29ycygpKSB7CiAg
ICAgICAgICAgICAgICAgbV9ibG9ja1RvQmxvY2tbYmxvY2tdLT5zdWNjZXNzb3JzKCkuYXBwZW5k
KAogICAgICAgICAgICAgICAgICAgICBBaXI6OkZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrVG9CbG9j
a1tzdWNjZXNzb3IuYmxvY2soKV0sIHN1Y2Nlc3Nvci5mcmVxdWVuY3koKSkpOwpAQCAtMjQ0MSw3
ICsyNDQwLDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQotCisgICAgICAgICAgICAKICAgICAgICAgY2FzZSBCMzo6T29wczogewogICAg
ICAgICAgICAgYXBwZW5kKEFpcjo6T29wcyk7CiAgICAgICAgICAgICByZXR1cm47CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNNYXRoRXh0cmFzLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNNYXRoRXh0cmFzLmNwcAkocmV2aXNpb24gMjAyODA5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTWF0aEV4dHJhcy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMzMsNyArMzMsNiBAQAogI2luY2x1ZGUgIkIzQ29uc3QzMlZhbHVlLmgiCiAjaW5jbHVk
ZSAiQjNDb25zdERvdWJsZVZhbHVlLmgiCiAjaW5jbHVkZSAiQjNDb25zdFB0clZhbHVlLmgiCi0j
aW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKICNpbmNsdWRlICJCM1Vwc2lsb25WYWx1ZS5oIgog
I2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiTWF0aENvbW1vbi5oIgpAQCAt
NTIsMTAgKzUxLDggQEAgc3RkOjpwYWlyPEJhc2ljQmxvY2sqLCBWYWx1ZSo+IHBvd0RvdWJsZQog
ICAgIFZhbHVlKiBzaG91bGRHb1Nsb3dQYXRoID0gc3RhcnQtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
Y2VkdXJlLCBBYm92ZSwgb3JpZ2luLAogICAgICAgICB5LAogICAgICAgICBzdGFydC0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvY2VkdXJlLCBvcmlnaW4sIG1heEV4cG9uZW50Rm9ySW50ZWdl
ck1hdGhQb3cpKTsKLSAgICBzdGFydC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCi0gICAgICAg
IHByb2NlZHVyZSwgQnJhbmNoLCBvcmlnaW4sCi0gICAgICAgIHNob3VsZEdvU2xvd1BhdGgsCi0g
ICAgICAgIEZyZXF1ZW50ZWRCbG9jayhmdW5jdGlvbkNhbGxDYXNlKSwgRnJlcXVlbnRlZEJsb2Nr
KGxvb3BQcmVIZWFkZXJDYXNlKSk7CisgICAgc3RhcnQtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvY2Vk
dXJlLCBCcmFuY2gsIG9yaWdpbiwgc2hvdWxkR29TbG93UGF0aCk7CisgICAgc3RhcnQtPnNldFN1
Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2NrKGZ1bmN0aW9uQ2FsbENhc2UpLCBGcmVxdWVudGVkQmxv
Y2sobG9vcFByZUhlYWRlckNhc2UpKTsKIAogICAgIC8vIEZ1bmN0aW9uIGNhbGwuCiAgICAgVmFs
dWUqIHlBc0RvdWJsZSA9IGZ1bmN0aW9uQ2FsbENhc2UtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvY2Vk
dXJlLCBJVG9ELCBvcmlnaW4sIHkpOwpAQCAtNjUsNyArNjIsOCBAQCBzdGQ6OnBhaXI8QmFzaWNC
bG9jayosIFZhbHVlKj4gcG93RG91YmxlCiAgICAgICAgIGZ1bmN0aW9uQ2FsbENhc2UtPmFwcGVu
ZE5ldzxDb25zdFB0clZhbHVlPihwcm9jZWR1cmUsIG9yaWdpbiwgYml0d2lzZV9jYXN0PHZvaWQq
Pihwb3dEb3VibGUpKSwKICAgICAgICAgeCwgeUFzRG91YmxlKTsKICAgICBVcHNpbG9uVmFsdWUq
IHBvd1Jlc3VsdFVwc2lsb24gPSBmdW5jdGlvbkNhbGxDYXNlLT5hcHBlbmROZXc8VXBzaWxvblZh
bHVlPihwcm9jZWR1cmUsIG9yaWdpbiwgcG93UmVzdWx0KTsKLSAgICBmdW5jdGlvbkNhbGxDYXNl
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jZWR1cmUsIEp1bXAsIG9yaWdpbiwgRnJlcXVl
bnRlZEJsb2NrKGNvbnRpbnVhdGlvbikpOworICAgIGZ1bmN0aW9uQ2FsbENhc2UtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvY2VkdXJlLCBKdW1wLCBvcmlnaW4pOworICAgIGZ1bmN0aW9uQ2FsbENhc2Ut
PnNldFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2NrKGNvbnRpbnVhdGlvbikpOwogCiAgICAgLy8g
TG9vcCBwcmUtaGVhZGVyLgogICAgIFZhbHVlKiBpbml0aWFsUmVzdWx0ID0gbG9vcFByZUhlYWRl
ckNhc2UtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jZWR1cmUsIG9yaWdpbiwgMS4p
OwpAQCAtNzMsNyArNzEsOCBAQCBzdGQ6OnBhaXI8QmFzaWNCbG9jayosIFZhbHVlKj4gcG93RG91
YmxlCiAgICAgVXBzaWxvblZhbHVlKiBpbml0aWFsUmVzdWx0VmFsdWUgPSBsb29wUHJlSGVhZGVy
Q2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvY2VkdXJlLCBvcmlnaW4sIGluaXRpYWxS
ZXN1bHQpOwogICAgIFVwc2lsb25WYWx1ZSogaW5pdGlhbFNxdWFyZWRJbnB1dCA9IGxvb3BQcmVI
ZWFkZXJDYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jZWR1cmUsIG9yaWdpbiwgeCk7
CiAgICAgVXBzaWxvblZhbHVlKiBpbml0aWFsTG9vcENvdW50ZXIgPSBsb29wUHJlSGVhZGVyQ2Fz
ZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvY2VkdXJlLCBvcmlnaW4sIHkpOwotICAgIGxv
b3BQcmVIZWFkZXJDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jZWR1cmUsIEp1bXAs
IG9yaWdpbiwgRnJlcXVlbnRlZEJsb2NrKGxvb3BUZXN0Rm9yRXZlbkNhc2UpKTsKKyAgICBsb29w
UHJlSGVhZGVyQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihwcm9jZWR1cmUsIEp1bXAsIG9yaWdpbik7
CisgICAgbG9vcFByZUhlYWRlckNhc2UtPnNldFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2NrKGxv
b3BUZXN0Rm9yRXZlbkNhc2UpKTsKIAogICAgIC8vIFRlc3QgaWYgd2hhdCBpcyBsZWZ0IG9mIHRo
ZSBjb3VudGVyIGlzIGV2ZW4uCiAgICAgVmFsdWUqIGluTG9vcENvdW50ZXIgPSBsb29wVGVzdEZv
ckV2ZW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+KHByb2NlZHVyZSwgUGhpLCBJbnQzMiwgb3JpZ2lu
KTsKQEAgLTgxLDEwICs4MCw4IEBAIHN0ZDo6cGFpcjxCYXNpY0Jsb2NrKiwgVmFsdWUqPiBwb3dE
b3VibGUKICAgICBWYWx1ZSogbGFzdENvdW50ZXJCaXQgPSBsb29wVGVzdEZvckV2ZW5DYXNlLT5h
cHBlbmROZXc8VmFsdWU+KHByb2NlZHVyZSwgQml0QW5kLCBvcmlnaW4sCiAgICAgICAgIGluTG9v
cENvdW50ZXIsCiAgICAgICAgIGxvb3BUZXN0Rm9yRXZlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMy
VmFsdWU+KHByb2NlZHVyZSwgb3JpZ2luLCAxKSk7Ci0gICAgbG9vcFRlc3RGb3JFdmVuQ2FzZS0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCi0gICAgICAgIHByb2NlZHVyZSwgQnJhbmNoLCBvcmln
aW4sCi0gICAgICAgIGxhc3RDb3VudGVyQml0LAotICAgICAgICBGcmVxdWVudGVkQmxvY2sobG9v
cE9kZCksIEZyZXF1ZW50ZWRCbG9jayhsb29wRXZlbk9kZCkpOworICAgIGxvb3BUZXN0Rm9yRXZl
bkNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvY2VkdXJlLCBCcmFuY2gsIG9yaWdpbiwgbGFzdENv
dW50ZXJCaXQpOworICAgIGxvb3BUZXN0Rm9yRXZlbkNhc2UtPnNldFN1Y2Nlc3NvcnMoRnJlcXVl
bnRlZEJsb2NrKGxvb3BPZGQpLCBGcmVxdWVudGVkQmxvY2sobG9vcEV2ZW5PZGQpKTsKIAogICAg
IC8vIENvdW50ZXIgaXMgb2RkLgogICAgIFZhbHVlKiBpbkxvb3BSZXN1bHQgPSBsb29wT2RkLT5h
cHBlbmROZXc8VmFsdWU+KHByb2NlZHVyZSwgUGhpLCBEb3VibGUsIG9yaWdpbik7CkBAIC05NCw3
ICs5MSw4IEBAIHN0ZDo6cGFpcjxCYXNpY0Jsb2NrKiwgVmFsdWUqPiBwb3dEb3VibGUKICAgICB1
cGRhdGVkTG9vcFJlc3VsdFVwc2lsb24tPnNldFBoaShpbkxvb3BSZXN1bHQpOwogICAgIFVwc2ls
b25WYWx1ZSogdXBkYXRlZExvb3BSZXN1bHQgPSBsb29wT2RkLT5hcHBlbmROZXc8VXBzaWxvblZh
bHVlPihwcm9jZWR1cmUsIG9yaWdpbiwgdXBkYXRlZFJlc3VsdCk7CiAKLSAgICBsb29wT2RkLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jZWR1cmUsIEp1bXAsIG9yaWdpbiwgRnJlcXVlbnRl
ZEJsb2NrKGxvb3BFdmVuT2RkKSk7CisgICAgbG9vcE9kZC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
ZWR1cmUsIEp1bXAsIG9yaWdpbik7CisgICAgbG9vcE9kZC0+c2V0U3VjY2Vzc29ycyhGcmVxdWVu
dGVkQmxvY2sobG9vcEV2ZW5PZGQpKTsKIAogICAgIC8vIEV2ZW4gdmFsdWUgYW5kIGZvbGxvd2lu
ZyB0aGUgT2RkLgogICAgIFZhbHVlKiBzcXVhcmVkSW5wdXQgPSBsb29wRXZlbk9kZC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jZWR1cmUsIE11bCwgb3JpZ2luLCBpbkxvb3BTcXVhcmVkSW5wdXQsIGlu
TG9vcFNxdWFyZWRJbnB1dCk7CkBAIC0xMDksMTAgKzEwNyw4IEBAIHN0ZDo6cGFpcjxCYXNpY0Js
b2NrKiwgVmFsdWUqPiBwb3dEb3VibGUKICAgICBpbml0aWFsTG9vcENvdW50ZXItPnNldFBoaShp
bkxvb3BDb3VudGVyKTsKICAgICB1cGRhdGVkQ291bnRlclVwc2lsb24tPnNldFBoaShpbkxvb3BD
b3VudGVyKTsKIAotICAgIGxvb3BFdmVuT2RkLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAg
ICAgICAgcHJvY2VkdXJlLCBCcmFuY2gsIG9yaWdpbiwKLSAgICAgICAgdXBkYXRlZENvdW50ZXIs
Ci0gICAgICAgIEZyZXF1ZW50ZWRCbG9jayhsb29wVGVzdEZvckV2ZW5DYXNlKSwgRnJlcXVlbnRl
ZEJsb2NrKGNvbnRpbnVhdGlvbikpOworICAgIGxvb3BFdmVuT2RkLT5hcHBlbmROZXc8VmFsdWU+
KHByb2NlZHVyZSwgQnJhbmNoLCBvcmlnaW4sIHVwZGF0ZWRDb3VudGVyKTsKKyAgICBsb29wRXZl
bk9kZC0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2sobG9vcFRlc3RGb3JFdmVuQ2FzZSks
IEZyZXF1ZW50ZWRCbG9jayhjb250aW51YXRpb24pKTsKIAogICAgIC8vIElubGluZSBsb29wLgog
ICAgIFZhbHVlKiBmaW5hbFJlc3VsdFBoaSA9IGNvbnRpbnVhdGlvbi0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jZWR1cmUsIFBoaSwgRG91YmxlLCBvcmlnaW4pOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzT3Bjb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzT3Bjb2RlLmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM09wY29kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMDcsMjEgKzIwNywyMSBAQCBlbnVt
IE9wY29kZSA6IGludDE2X3QgewogICAgIFVwc2lsb24sIC8vIFRoaXMgdXNlcyB0aGUgVXBzaWxv
blZhbHVlIGNsYXNzLgogICAgIFBoaSwKIAotICAgIC8vIEp1bXAuIFVzZXMgdGhlIENvbnRyb2xW
YWx1ZSBjbGFzcy4KKyAgICAvLyBKdW1wLgogICAgIEp1bXAsCiAgICAgCi0gICAgLy8gUG9seW1v
cnBoaWMgYnJhbmNoLCB1c2FibGUgd2l0aCBhbnkgaW50ZWdlciB0eXBlLiBCcmFuY2hlcyBpZiBu
b3QgZXF1YWwgdG8gemVyby4gVXNlcyB0aGUKLSAgICAvLyBDb250cm9sVmFsdWUgY2xhc3MsIHdp
dGggdGhlIDAtaW5kZXggc3VjY2Vzc29yIGJlaW5nIHRoZSB0cnVlIHN1Y2Nlc3Nvci4KKyAgICAv
LyBQb2x5bW9ycGhpYyBicmFuY2gsIHVzYWJsZSB3aXRoIGFueSBpbnRlZ2VyIHR5cGUuIEJyYW5j
aGVzIGlmIG5vdCBlcXVhbCB0byB6ZXJvLiBUaGUgMC1pbmRleAorICAgIC8vIHN1Y2Nlc3NvciBp
cyB0aGUgdHJ1ZSBzdWNjZXNzb3IuCiAgICAgQnJhbmNoLAogCiAgICAgLy8gU3dpdGNoLiBTd2l0
Y2hlcyBvdmVyIGVpdGhlciBJbnQzMiBvciBJbnQ2NC4gVXNlcyB0aGUgU3dpdGNoVmFsdWUgY2xh
c3MuCiAgICAgU3dpdGNoLAotCisgICAgCiAgICAgLy8gUmV0dXJuLiBOb3RlIHRoYXQgQjMgcHJv
Y2VkdXJlcyBkb24ndCBrbm93IHRoZWlyIHJldHVybiB0eXBlLCBzbyB0aGlzIGNhbiBqdXN0IHJl
dHVybiBhbnkKLSAgICAvLyB0eXBlLiBVc2VzIHRoZSBDb250cm9sVmFsdWUgY2xhc3MuCisgICAg
Ly8gdHlwZS4KICAgICBSZXR1cm4sCiAKLSAgICAvLyBUaGlzIGlzIGEgdGVybWluYWwgdGhhdCBp
bmRpY2F0ZXMgdGhhdCB3ZSB3aWxsIG5ldmVyIGdldCBoZXJlLiBVc2VzIHRoZSBDb250cm9sVmFs
dWUgY2xhc3MuCisgICAgLy8gVGhpcyBpcyBhIHRlcm1pbmFsIHRoYXQgaW5kaWNhdGVzIHRoYXQg
d2Ugd2lsbCBuZXZlciBnZXQgaGVyZS4KICAgICBPb3BzCiB9OwogCkBAIC0yNTksNiArMjU5LDIw
IEBAIGlubGluZSBib29sIGlzQ29uc3RhbnQoT3Bjb2RlIG9wY29kZSkKICAgICB9CiB9CiAKK2lu
bGluZSBib29sIGlzRGVmaW5pdGVseVRlcm1pbmFsKE9wY29kZSBvcGNvZGUpCit7CisgICAgc3dp
dGNoIChvcGNvZGUpIHsKKyAgICBjYXNlIEp1bXA6CisgICAgY2FzZSBCcmFuY2g6CisgICAgY2Fz
ZSBTd2l0Y2g6CisgICAgY2FzZSBPb3BzOgorICAgIGNhc2UgUmV0dXJuOgorICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQor
CiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKIAogbmFtZXNwYWNlIFdURiB7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQYXRjaHBvaW50U3BlY2lhbC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUGF0Y2hwb2ludFNwZWNpYWwuY3BwCShyZXZp
c2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQYXRjaHBvaW50U3Bl
Y2lhbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0Niw2ICsxNDYsMTEgQEAgQ0NhbGxIZWxwZXJz
OjpKdW1wIFBhdGNocG9pbnRTcGVjaWFsOjpnZQogICAgIHJldHVybiBDQ2FsbEhlbHBlcnM6Okp1
bXAoKTsKIH0KIAorYm9vbCBQYXRjaHBvaW50U3BlY2lhbDo6aXNUZXJtaW5hbChJbnN0JiBpbnN0
KQoreworICAgIHJldHVybiBpbnN0Lm9yaWdpbi0+YXM8UGF0Y2hwb2ludFZhbHVlPigpLT5lZmZl
Y3RzLnRlcm1pbmFsOworfQorCiB2b2lkIFBhdGNocG9pbnRTcGVjaWFsOjpkdW1wSW1wbChQcmlu
dFN0cmVhbSYgb3V0KSBjb25zdAogewogICAgIG91dC5wcmludCgiUGF0Y2hwb2ludCIpOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUGF0Y2hwb2ludFNwZWNpYWwuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQYXRjaHBvaW50U3BlY2lhbC5oCShy
ZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQYXRjaHBvaW50
U3BlY2lhbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU2LDYgKzU2LDggQEAgcHJvdGVjdGVkOgogICAgIC8v
IGdlbmVyYXRlcyB0aGUgc3RhY2ttYXAuIFN1cGVyIGNyYXp5IGR1ZGUhCiAKICAgICBDQ2FsbEhl
bHBlcnM6Okp1bXAgZ2VuZXJhdGUoQWlyOjpJbnN0JiwgQ0NhbGxIZWxwZXJzJiwgQWlyOjpHZW5l
cmF0aW9uQ29udGV4dCYpIG92ZXJyaWRlOworICAgIAorICAgIGJvb2wgaXNUZXJtaW5hbChBaXI6
Okluc3QmKSBvdmVycmlkZTsKIAogICAgIHZvaWQgZHVtcEltcGwoUHJpbnRTdHJlYW0mKSBjb25z
dCBvdmVycmlkZTsKICAgICB2b2lkIGRlZXBEdW1wSW1wbChQcmludFN0cmVhbSYpIGNvbnN0IG92
ZXJyaWRlOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuY3BwCShy
ZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDgsMzEgKzE0OCw2IEBAIHZvaWQgUHJvY2VkdXJlOjpy
ZXNldFZhbHVlT3duZXJzKCkKIAogdm9pZCBQcm9jZWR1cmU6OnJlc2V0UmVhY2hhYmlsaXR5KCkK
IHsKLSAgICBpZiAoc2hvdWxkVmFsaWRhdGVJUigpKSB7Ci0gICAgICAgIC8vIFZhbGlkYXRlIHRo
ZSBiYXNpYyBwcm9wZXJ0aWVzIHRoYXQgd2UgbmVlZCBmb3IgcmVzZXR0aW5nIHJlYWNoYWJpbGl0
eS4gV2Ugb2Z0ZW4gcmVzZXQKLSAgICAgICAgLy8gcmVhY2hhYmlsaXR5IGJlZm9yZSBJUiB2YWxp
ZGF0aW9uLCBzbyB3aXRob3V0IHRoaXMgbWluaS12YWxpZGF0aW9uLCB5b3Ugd291bGQgY3Jhc2gg
aW5zaWRlCi0gICAgICAgIC8vIEIzOjpyZXNldFJlYWNoYWJpbGl0eSgpIHdpdGhvdXQgZ2V0dGlu
ZyBhbnkgSVIgZHVtcC4KLQotICAgICAgICBCYXNpY0Jsb2NrKiBiYWRCbG9jayA9IG51bGxwdHI7
Ci0gICAgICAgIGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiAqdGhpcykgewotICAgICAgICAgICAg
aWYgKCFibG9jay0+c2l6ZSgpKSB7Ci0gICAgICAgICAgICAgICAgYmFkQmxvY2sgPSBibG9jazsK
LSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYg
KCFibG9jay0+bGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCkpIHsKLSAgICAgICAgICAgICAgICBi
YWRCbG9jayA9IGJsb2NrOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQot
ICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGJhZEJsb2NrKSB7Ci0gICAgICAgICAgICBkYXRhTG9n
KCJGQVRBTDogSW52YWxpZCBiYXNpYyBibG9jayAiLCAqYmFkQmxvY2ssICIgd2hpbGUgcnVubmlu
ZyBQcm9jZWR1cmU6OnJlc2V0UmVhY2hhYmlsaXR5KCkuXG4iKTsKLSAgICAgICAgICAgIGRhdGFM
b2coKnRoaXMpOwotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAg
ICAgICAgfQotICAgIH0KLSAgICAKICAgICByZWNvbXB1dGVQcmVkZWNlc3NvcnMobV9ibG9ja3Mp
OwogICAgIAogICAgIC8vIFRoZSBjb21tb24gY2FzZSBpcyB0aGF0IHRoaXMgZG9lcyBub3QgZmlu
ZCBhbnkgZGVhZCBibG9ja3MuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9j
ZWR1cmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1
cmUuaAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJv
Y2VkdXJlLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxOCw3ICsyMTgsMTAgQEAgcHVibGljOgogCiAg
ICAgY29uc3QgY2hhciogbGFzdFBoYXNlTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdFBoYXNl
TmFtZTsgfQogCi0gICAgdm9pZCogYWRkRGF0YVNlY3Rpb24oc2l6ZV90IHNpemUpOworICAgIC8v
IEFsbG9jYXRlcyBhIHNsYWIgb2YgbWVtb3J5IHRoYXQgd2lsbCBiZSBrZXB0IGFsaXZlIGJ5IGFu
eW9uZSB3aG8ga2VlcHMgdGhlIHJlc3VsdGluZyBjb2RlCisgICAgLy8gYWxpdmUuIEdyZWF0IGZv
ciBjb21waWxlci1nZW5lcmF0ZWQgZGF0YSBzZWN0aW9ucywgbGlrZSBzd2l0Y2gganVtcCB0YWJs
ZXMgYW5kIGNvbnN0YW50IHBvb2xzLgorICAgIC8vIFRoaXMgcmV0dXJucyBtZW1vcnkgdGhhdCBo
YXMgYmVlbiB6ZXJvLWluaXRpYWxpemVkLgorICAgIHZvaWQqIGFkZERhdGFTZWN0aW9uKHNpemVf
dCk7CiAKICAgICBPcGFxdWVCeXByb2R1Y3RzJiBieXByb2R1Y3RzKCkgeyByZXR1cm4gKm1fYnlw
cm9kdWN0czsgfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VTdHJl
bmd0aC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNl
U3RyZW5ndGguY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNSZWR1Y2VTdHJlbmd0aC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDYgQEAK
ICNpbmNsdWRlICJCM0Jhc2ljQmxvY2tJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNCbG9ja0luc2Vy
dGlvblNldC5oIgogI2luY2x1ZGUgIkIzQ29tcHV0ZURpdmlzaW9uTWFnaWMuaCIKLSNpbmNsdWRl
ICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzRG9taW5hdG9ycy5oIgogI2luY2x1ZGUg
IkIzSW5kZXhTZXQuaCIKICNpbmNsdWRlICJCM0luc2VydGlvblNldElubGluZXMuaCIKQEAgLTE3
MTcsNyArMTcxNiw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgLy8gUmVwbGFjZSB0aGUg
cmVzdCBvZiB0aGUgYmxvY2sgd2l0aCBhbiBPb3BzLgogICAgICAgICAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IG1faW5kZXggKyAxOyBpIDwgbV9ibG9jay0+c2l6ZSgpIC0gMTsgKytpKQogICAg
ICAgICAgICAgICAgICAgICBtX2Jsb2NrLT5hdChpKS0+cmVwbGFjZVdpdGhCb3R0b20obV9pbnNl
cnRpb25TZXQsIG1faW5kZXgpOwotICAgICAgICAgICAgICAgIG1fYmxvY2stPmxhc3QoKS0+YXM8
Q29udHJvbFZhbHVlPigpLT5jb252ZXJ0VG9Pb3BzKCk7CisgICAgICAgICAgICAgICAgbV9ibG9j
ay0+bGFzdCgpLT5yZXBsYWNlV2l0aE9vcHMobV9ibG9jayk7CiAgICAgICAgICAgICAgICAgbV9i
bG9jay0+bGFzdCgpLT5zZXRPcmlnaW4oY2hlY2tWYWx1ZS0+b3JpZ2luKCkpOwogCiAgICAgICAg
ICAgICAgICAgLy8gUmVwbGFjZSBvdXJzZWx2ZXMgbGFzdC4KQEAgLTE3NzMsNiArMTc3Miw3IEBA
IHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZS0+b3Bjb2RlKCkgPT0g
U2VsZWN0CiAgICAgICAgICAgICAgICAgICAgICAgICAmJiAodmFsdWUtPmNoaWxkKDEpLT5pc0Nv
bnN0YW50KCkgJiYgdmFsdWUtPmNoaWxkKDIpLT5pc0NvbnN0YW50KCkpOwogICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoc2VsZWN0KSB7CiAgICAgICAg
ICAgICAgICAgc3BlY2lhbGl6ZVNlbGVjdChzZWxlY3QpOwogICAgICAgICAgICAgICAgIGJyZWFr
OwpAQCAtMTc4MSw1MCArMTc4MSw0OCBAQCBwcml2YXRlOgogICAgICAgICB9CiAKICAgICAgICAg
Y2FzZSBCcmFuY2g6IHsKLSAgICAgICAgICAgIENvbnRyb2xWYWx1ZSogYnJhbmNoID0gbV92YWx1
ZS0+YXM8Q29udHJvbFZhbHVlPigpOwotCiAgICAgICAgICAgICAvLyBUdXJuIHRoaXM6IEJyYW5j
aChOb3RFcXVhbCh4LCAwKSkKICAgICAgICAgICAgIC8vIEludG8gdGhpczogQnJhbmNoKHgpCi0g
ICAgICAgICAgICBpZiAoYnJhbmNoLT5jaGlsZCgwKS0+b3Bjb2RlKCkgPT0gTm90RXF1YWwgJiYg
YnJhbmNoLT5jaGlsZCgwKS0+Y2hpbGQoMSktPmlzSW50KDApKSB7Ci0gICAgICAgICAgICAgICAg
YnJhbmNoLT5jaGlsZCgwKSA9IGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDApOworICAgICAgICAg
ICAgaWYgKG1fdmFsdWUtPmNoaWxkKDApLT5vcGNvZGUoKSA9PSBOb3RFcXVhbCAmJiBtX3ZhbHVl
LT5jaGlsZCgwKS0+Y2hpbGQoMSktPmlzSW50KDApKSB7CisgICAgICAgICAgICAgICAgbV92YWx1
ZS0+Y2hpbGQoMCkgPSBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMCk7CiAgICAgICAgICAgICAg
ICAgbV9jaGFuZ2VkID0gdHJ1ZTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgLy8gVHVy
biB0aGlzOiBCcmFuY2goRXF1YWwoeCwgMCksIHRoZW4sIGVsc2UpCiAgICAgICAgICAgICAvLyBJ
bnRvIHRoaXM6IEJyYW5jaCh4LCBlbHNlLCB0aGVuKQotICAgICAgICAgICAgaWYgKGJyYW5jaC0+
Y2hpbGQoMCktPm9wY29kZSgpID09IEVxdWFsICYmIGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDEp
LT5pc0ludCgwKSkgewotICAgICAgICAgICAgICAgIGJyYW5jaC0+Y2hpbGQoMCkgPSBicmFuY2gt
PmNoaWxkKDApLT5jaGlsZCgwKTsKLSAgICAgICAgICAgICAgICBzdGQ6OnN3YXAoYnJhbmNoLT50
YWtlbigpLCBicmFuY2gtPm5vdFRha2VuKCkpOworICAgICAgICAgICAgaWYgKG1fdmFsdWUtPmNo
aWxkKDApLT5vcGNvZGUoKSA9PSBFcXVhbCAmJiBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMSkt
PmlzSW50KDApKSB7CisgICAgICAgICAgICAgICAgbV92YWx1ZS0+Y2hpbGQoMCkgPSBtX3ZhbHVl
LT5jaGlsZCgwKS0+Y2hpbGQoMCk7CisgICAgICAgICAgICAgICAgc3RkOjpzd2FwKG1fYmxvY2st
PnRha2VuKCksIG1fYmxvY2stPm5vdFRha2VuKCkpOwogICAgICAgICAgICAgICAgIG1fY2hhbmdl
ZCA9IHRydWU7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgICAgIC8vIFR1
cm4gdGhpczogQnJhbmNoKEJpdFhvcihib29sLCAxKSwgdGhlbiwgZWxzZSkKICAgICAgICAgICAg
IC8vIEludG8gdGhpczogQnJhbmNoKGJvb2wsIGVsc2UsIHRoZW4pCi0gICAgICAgICAgICBpZiAo
YnJhbmNoLT5jaGlsZCgwKS0+b3Bjb2RlKCkgPT0gQml0WG9yCi0gICAgICAgICAgICAgICAgJiYg
YnJhbmNoLT5jaGlsZCgwKS0+Y2hpbGQoMSktPmlzSW50MzIoMSkKLSAgICAgICAgICAgICAgICAm
JiBicmFuY2gtPmNoaWxkKDApLT5jaGlsZCgwKS0+cmV0dXJuc0Jvb2woKSkgewotICAgICAgICAg
ICAgICAgIGJyYW5jaC0+Y2hpbGQoMCkgPSBicmFuY2gtPmNoaWxkKDApLT5jaGlsZCgwKTsKLSAg
ICAgICAgICAgICAgICBzdGQ6OnN3YXAoYnJhbmNoLT50YWtlbigpLCBicmFuY2gtPm5vdFRha2Vu
KCkpOworICAgICAgICAgICAgaWYgKG1fdmFsdWUtPmNoaWxkKDApLT5vcGNvZGUoKSA9PSBCaXRY
b3IKKyAgICAgICAgICAgICAgICAmJiBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMSktPmlzSW50
MzIoMSkKKyAgICAgICAgICAgICAgICAmJiBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMCktPnJl
dHVybnNCb29sKCkpIHsKKyAgICAgICAgICAgICAgICBtX3ZhbHVlLT5jaGlsZCgwKSA9IG1fdmFs
dWUtPmNoaWxkKDApLT5jaGlsZCgwKTsKKyAgICAgICAgICAgICAgICBzdGQ6OnN3YXAobV9ibG9j
ay0+dGFrZW4oKSwgbV9ibG9jay0+bm90VGFrZW4oKSk7CiAgICAgICAgICAgICAgICAgbV9jaGFu
Z2VkID0gdHJ1ZTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgLy8gVHVybiB0aGlzOiBC
cmFuY2goQml0QW5kKGJvb2wsIHh5YjEpLCB0aGVuLCBlbHNlKQogICAgICAgICAgICAgLy8gSW50
byB0aGlzOiBCcmFuY2goYm9vbCwgdGhlbiwgZWxzZSkKLSAgICAgICAgICAgIGlmIChicmFuY2gt
PmNoaWxkKDApLT5vcGNvZGUoKSA9PSBCaXRBbmQKLSAgICAgICAgICAgICAgICAmJiBicmFuY2gt
PmNoaWxkKDApLT5jaGlsZCgxKS0+aGFzSW50KCkKLSAgICAgICAgICAgICAgICAmJiBicmFuY2gt
PmNoaWxkKDApLT5jaGlsZCgxKS0+YXNJbnQoKSAmIDEKLSAgICAgICAgICAgICAgICAmJiBicmFu
Y2gtPmNoaWxkKDApLT5jaGlsZCgwKS0+cmV0dXJuc0Jvb2woKSkgewotICAgICAgICAgICAgICAg
IGJyYW5jaC0+Y2hpbGQoMCkgPSBicmFuY2gtPmNoaWxkKDApLT5jaGlsZCgwKTsKKyAgICAgICAg
ICAgIGlmIChtX3ZhbHVlLT5jaGlsZCgwKS0+b3Bjb2RlKCkgPT0gQml0QW5kCisgICAgICAgICAg
ICAgICAgJiYgbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDEpLT5oYXNJbnQoKQorICAgICAgICAg
ICAgICAgICYmIG1fdmFsdWUtPmNoaWxkKDApLT5jaGlsZCgxKS0+YXNJbnQoKSAmIDEKKyAgICAg
ICAgICAgICAgICAmJiBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMCktPnJldHVybnNCb29sKCkp
IHsKKyAgICAgICAgICAgICAgICBtX3ZhbHVlLT5jaGlsZCgwKSA9IG1fdmFsdWUtPmNoaWxkKDAp
LT5jaGlsZCgwKTsKICAgICAgICAgICAgICAgICBtX2NoYW5nZWQgPSB0cnVlOwogICAgICAgICAg
ICAgfQogCi0gICAgICAgICAgICBUcmlTdGF0ZSB0cmlTdGF0ZSA9IGJyYW5jaC0+Y2hpbGQoMCkt
PmFzVHJpU3RhdGUoKTsKKyAgICAgICAgICAgIFRyaVN0YXRlIHRyaVN0YXRlID0gbV92YWx1ZS0+
Y2hpbGQoMCktPmFzVHJpU3RhdGUoKTsKIAogICAgICAgICAgICAgLy8gVHVybiB0aGlzOiBCcmFu
Y2goMCwgdGhlbiwgZWxzZSkKICAgICAgICAgICAgIC8vIEludG8gdGhpczogSnVtcChlbHNlKQog
ICAgICAgICAgICAgaWYgKHRyaVN0YXRlID09IEZhbHNlVHJpU3RhdGUpIHsKLSAgICAgICAgICAg
ICAgICBicmFuY2gtPnRha2VuKCkuYmxvY2soKS0+cmVtb3ZlUHJlZGVjZXNzb3IobV9ibG9jayk7
Ci0gICAgICAgICAgICAgICAgYnJhbmNoLT5jb252ZXJ0VG9KdW1wKGJyYW5jaC0+bm90VGFrZW4o
KS5ibG9jaygpKTsKKyAgICAgICAgICAgICAgICBtX2Jsb2NrLT50YWtlbigpLmJsb2NrKCktPnJl
bW92ZVByZWRlY2Vzc29yKG1fYmxvY2spOworICAgICAgICAgICAgICAgIG1fdmFsdWUtPnJlcGxh
Y2VXaXRoSnVtcChtX2Jsb2NrLCBtX2Jsb2NrLT5ub3RUYWtlbigpKTsKICAgICAgICAgICAgICAg
ICBtX2NoYW5nZWRDRkcgPSB0cnVlOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgfQpAQCAtMTgzMiw4ICsxODMwLDggQEAgcHJpdmF0ZToKICAgICAgICAgICAgIC8vIFR1cm4g
dGhpczogQnJhbmNoKG5vdCAwLCB0aGVuLCBlbHNlKQogICAgICAgICAgICAgLy8gSW50byB0aGlz
OiBKdW1wKHRoZW4pCiAgICAgICAgICAgICBpZiAodHJpU3RhdGUgPT0gVHJ1ZVRyaVN0YXRlKSB7
Ci0gICAgICAgICAgICAgICAgYnJhbmNoLT5ub3RUYWtlbigpLmJsb2NrKCktPnJlbW92ZVByZWRl
Y2Vzc29yKG1fYmxvY2spOwotICAgICAgICAgICAgICAgIGJyYW5jaC0+Y29udmVydFRvSnVtcChi
cmFuY2gtPnRha2VuKCkuYmxvY2soKSk7CisgICAgICAgICAgICAgICAgbV9ibG9jay0+bm90VGFr
ZW4oKS5ibG9jaygpLT5yZW1vdmVQcmVkZWNlc3NvcihtX2Jsb2NrKTsKKyAgICAgICAgICAgICAg
ICBtX3ZhbHVlLT5yZXBsYWNlV2l0aEp1bXAobV9ibG9jaywgbV9ibG9jay0+dGFrZW4oKSk7CiAg
ICAgICAgICAgICAgICAgbV9jaGFuZ2VkQ0ZHID0gdHJ1ZTsKICAgICAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgIH0KQEAgLTE4NDIsMTIgKzE4NDAsMTIgQEAgcHJpdmF0ZToKICAgICAg
ICAgICAgIC8vIG9mIG1ha2VzIHNlbnNlIGhlcmUgYmVjYXVzZSBpdCdzIGNoZWFwLCBidXQgaGFj
a3MgbGlrZSB0aGlzIHNob3cgdGhhdCB3ZSdyZSBnb2luZwogICAgICAgICAgICAgLy8gdG8gbmVl
ZCBTQ0NQLgogICAgICAgICAgICAgVmFsdWUqIGNoZWNrID0gbV9wdXJlQ1NFLmZpbmRNYXRjaCgK
LSAgICAgICAgICAgICAgICBWYWx1ZUtleShDaGVjaywgVm9pZCwgYnJhbmNoLT5jaGlsZCgwKSks
IG1fYmxvY2ssICptX2RvbWluYXRvcnMpOworICAgICAgICAgICAgICAgIFZhbHVlS2V5KENoZWNr
LCBWb2lkLCBtX3ZhbHVlLT5jaGlsZCgwKSksIG1fYmxvY2ssICptX2RvbWluYXRvcnMpOwogICAg
ICAgICAgICAgaWYgKGNoZWNrKSB7CiAgICAgICAgICAgICAgICAgLy8gVGhlIENoZWNrIHdvdWxk
IGhhdmUgc2lkZS1leGl0ZWQgaWYgY2hpbGQoMCkgd2FzIG5vbi16ZXJvLiBTbywgaXQgbXVzdCBi
ZQogICAgICAgICAgICAgICAgIC8vIHplcm8gaGVyZS4KLSAgICAgICAgICAgICAgICBicmFuY2gt
PnRha2VuKCkuYmxvY2soKS0+cmVtb3ZlUHJlZGVjZXNzb3IobV9ibG9jayk7Ci0gICAgICAgICAg
ICAgICAgYnJhbmNoLT5jb252ZXJ0VG9KdW1wKGJyYW5jaC0+bm90VGFrZW4oKS5ibG9jaygpKTsK
KyAgICAgICAgICAgICAgICBtX2Jsb2NrLT50YWtlbigpLmJsb2NrKCktPnJlbW92ZVByZWRlY2Vz
c29yKG1fYmxvY2spOworICAgICAgICAgICAgICAgIG1fdmFsdWUtPnJlcGxhY2VXaXRoSnVtcCht
X2Jsb2NrLCBtX2Jsb2NrLT5ub3RUYWtlbigpKTsKICAgICAgICAgICAgICAgICBtX2NoYW5nZWRD
RkcgPSB0cnVlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CkBAIC0xOTg2LDEz
ICsxOTg0LDEyIEBAIHByaXZhdGU6CiAgICAgICAgIC8vIFJlbW92ZSB0aGUgdmFsdWVzIGZyb20g
dGhlIHByZWRlY2Vzc29yLgogICAgICAgICBwcmVkZWNlc3Nvci0+dmFsdWVzKCkucmVzaXplKHN0
YXJ0SW5kZXgpOwogICAgICAgICAKLSAgICAgICAgcHJlZGVjZXNzb3ItPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAotICAgICAgICAgICAgbV9wcm9jLCBCcmFuY2gsIHNvdXJjZS0+b3JpZ2luKCks
IHByZWRpY2F0ZSwKLSAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhjYXNlc1swXSksIEZyZXF1
ZW50ZWRCbG9jayhjYXNlc1sxXSkpOworICAgICAgICBwcmVkZWNlc3Nvci0+YXBwZW5kTmV3PFZh
bHVlPihtX3Byb2MsIEJyYW5jaCwgc291cmNlLT5vcmlnaW4oKSwgcHJlZGljYXRlKTsKKyAgICAg
ICAgcHJlZGVjZXNzb3ItPnNldFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2NrKGNhc2VzWzBdKSwg
RnJlcXVlbnRlZEJsb2NrKGNhc2VzWzFdKSk7CiAKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IG51bUNhc2VzOyArK2kpIHsKLSAgICAgICAgICAgIGNhc2VzW2ldLT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKLSAgICAgICAgICAgICAgICBtX3Byb2MsIEp1bXAsIG1fdmFsdWUtPm9y
aWdpbigpLCBGcmVxdWVudGVkQmxvY2sobV9ibG9jaykpOworICAgICAgICAgICAgY2FzZXNbaV0t
PmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBKdW1wLCBtX3ZhbHVlLT5vcmlnaW4oKSk7CisgICAg
ICAgICAgICBjYXNlc1tpXS0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2sobV9ibG9jaykp
OwogICAgICAgICB9CiAKICAgICAgICAgbV9jaGFuZ2VkID0gdHJ1ZTsKQEAgLTIyMjEsNyArMjIx
OCw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNoYW5naW5nICIsIHBvaW50ZXJEdW1wKGJs
b2NrKSwgIidzIHRlcm1pbmFsIHRvIGEgSnVtcC5cbiIpOwogICAgICAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2stPmxhc3QoKS0+YXM8Q29udHJvbFZh
bHVlPigpLT5jb252ZXJ0VG9KdW1wKGZpcnN0U3VjY2Vzc29yKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGJsb2NrLT5sYXN0KCktPnJlcGxhY2VXaXRoSnVtcChibG9jaywgRnJlcXVlbnRlZEJs
b2NrKGZpcnN0U3VjY2Vzc29yKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBtX2NoYW5nZWRD
RkcgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQpAQCAt
MjIzOSwxNiArMjIzNiwxOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICAvLyBSZW1v
dmUgdGhlIHRlcm1pbmFsLgogICAgICAgICAgICAgICAgICAgICBWYWx1ZSogdmFsdWUgPSBibG9j
ay0+dmFsdWVzKCkudGFrZUxhc3QoKTsKICAgICAgICAgICAgICAgICAgICAgT3JpZ2luIGp1bXBP
cmlnaW4gPSB2YWx1ZS0+b3JpZ2luKCk7Ci0gICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNT
RVJUKHZhbHVlLT5hczxDb250cm9sVmFsdWU+KCkpOworICAgICAgICAgICAgICAgICAgICBSRUxF
QVNFX0FTU0VSVCh2YWx1ZS0+ZWZmZWN0cygpLnRlcm1pbmFsKTsKICAgICAgICAgICAgICAgICAg
ICAgbV9wcm9jLmRlbGV0ZVZhbHVlKHZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAgCiAgICAg
ICAgICAgICAgICAgICAgIC8vIEFwcGVuZCB0aGUgZnVsbCBjb250ZW50cyBvZiB0aGUgc3VjY2Vz
c29yIHRvIHRoZSBwcmVkZWNlc3Nvci4KICAgICAgICAgICAgICAgICAgICAgYmxvY2stPnZhbHVl
cygpLmFwcGVuZFZlY3RvcihzdWNjZXNzb3ItPnZhbHVlcygpKTsKKyAgICAgICAgICAgICAgICAg
ICAgYmxvY2stPnN1Y2Nlc3NvcnMoKSA9IHN1Y2Nlc3Nvci0+c3VjY2Vzc29ycygpOwogICAgICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgdGhl
IHN1Y2Nlc3NvciBoYXMgbm90aGluZyBsZWZ0IGluIGl0LiBNYWtlIHN1cmUgdGhhdCB0aGUgYmxv
Y2sKICAgICAgICAgICAgICAgICAgICAgLy8gaGFzIGEgdGVybWluYWwgc28gdGhhdCBub2JvZHkg
Y2hva2VzIHdoZW4gdGhleSBsb29rIGF0IGl0LgogICAgICAgICAgICAgICAgICAgICBzdWNjZXNz
b3ItPnZhbHVlcygpLnJlc2l6ZSgwKTsKLSAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc29yLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihtX3Byb2MsIE9vcHMsIGp1bXBPcmlnaW4pOworICAgICAg
ICAgICAgICAgICAgICBzdWNjZXNzb3ItPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBPb3BzLCBq
dW1wT3JpZ2luKTsKKyAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc29yLT5jbGVhclN1Y2Nlc3Nv
cnMoKTsKICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgIC8vIEVuc3Vy
ZSB0aGF0IHByZWRlY2Vzc29ycyBvZiBibG9jaydzIG5ldyBzdWNjZXNzb3JzIGtub3cgd2hhdCdz
IHVwLgogICAgICAgICAgICAgICAgICAgICBmb3IgKEJhc2ljQmxvY2sqIG5ld1N1Y2Nlc3NvciA6
IGJsb2NrLT5zdWNjZXNzb3JCbG9ja3MoKSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmNwcAkocmV2aXNpb24g
MjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3RhY2ttYXBHZW5lcmF0aW9u
UGFyYW1zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01OSw2ICs1OSwyNyBAQCBSZWdpc3RlclNldCBTdGFj
a21hcEdlbmVyYXRpb25QYXJhbXM6OnVuCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorVmVjdG9y
PEJveDxDQ2FsbEhlbHBlcnM6OkxhYmVsPj4gU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zOjpzdWNj
ZXNzb3JMYWJlbHMoKSBjb25zdAoreworICAgIFJFTEVBU0VfQVNTRVJUKG1fY29udGV4dC5pbmRl
eEluQmxvY2sgPT0gbV9jb250ZXh0LmN1cnJlbnRCbG9jay0+c2l6ZSgpIC0gMSk7CisgICAgUkVM
RUFTRV9BU1NFUlQobV92YWx1ZS0+ZWZmZWN0cygpLnRlcm1pbmFsKTsKKyAgICAKKyAgICBWZWN0
b3I8Qm94PENDYWxsSGVscGVyczo6TGFiZWw+PiByZXN1bHQobV9jb250ZXh0LmN1cnJlbnRCbG9j
ay0+bnVtU3VjY2Vzc29ycygpKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSBtX2NvbnRleHQuY3Vy
cmVudEJsb2NrLT5udW1TdWNjZXNzb3JzKCk7IGktLTspCisgICAgICAgIHJlc3VsdFtpXSA9IG1f
Y29udGV4dC5ibG9ja0xhYmVsc1ttX2NvbnRleHQuY3VycmVudEJsb2NrLT5zdWNjZXNzb3JCbG9j
ayhpKV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworYm9vbCBTdGFja21hcEdlbmVyYXRpb25Q
YXJhbXM6OmZhbGxzVGhyb3VnaFRvU3VjY2Vzc29yKHVuc2lnbmVkIHN1Y2Nlc3NvckluZGV4KSBj
b25zdAoreworICAgIFJFTEVBU0VfQVNTRVJUKG1fY29udGV4dC5pbmRleEluQmxvY2sgPT0gbV9j
b250ZXh0LmN1cnJlbnRCbG9jay0+c2l6ZSgpIC0gMSk7CisgICAgUkVMRUFTRV9BU1NFUlQobV92
YWx1ZS0+ZWZmZWN0cygpLnRlcm1pbmFsKTsKKyAgICAKKyAgICBBaXI6OkJhc2ljQmxvY2sqIHN1
Y2Nlc3NvciA9IG1fY29udGV4dC5jdXJyZW50QmxvY2stPnN1Y2Nlc3NvckJsb2NrKHN1Y2Nlc3Nv
ckluZGV4KTsKKyAgICBBaXI6OkJhc2ljQmxvY2sqIG5leHRCbG9jayA9IG1fY29udGV4dC5jb2Rl
LT5maW5kTmV4dEJsb2NrKG1fY29udGV4dC5jdXJyZW50QmxvY2spOworICAgIHJldHVybiBzdWNj
ZXNzb3IgPT0gbmV4dEJsb2NrOworfQorCiBQcm9jZWR1cmUmIFN0YWNrbWFwR2VuZXJhdGlvblBh
cmFtczo6cHJvYygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fY29udGV4dC5jb2RlLT5wcm9jKCk7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcEdlbmVyYXRpb25QYXJh
bXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcEdl
bmVyYXRpb25QYXJhbXMuaAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmgJKHdvcmtpbmcgY29weSkKQEAgLTMw
LDcgKzMwLDkgQEAKIAogI2luY2x1ZGUgIkFpckdlbmVyYXRpb25Db250ZXh0LmgiCiAjaW5jbHVk
ZSAiQjNWYWx1ZVJlcC5oIgorI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgogI2luY2x1ZGUgIlJl
Z2lzdGVyU2V0LmgiCisjaW5jbHVkZSA8d3RmL0JveC5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIEIzIHsKIApAQCAtMzksNiArNDEsOCBAQCBjbGFzcyBQYXRjaHBvaW50U3BlY2lhbDsK
IGNsYXNzIFByb2NlZHVyZTsKIGNsYXNzIFN0YWNrbWFwVmFsdWU7CiAKKy8vIE5PVEU6IEl0J3Mg
cG9zc2libGUgdG8gY2FwdHVyZSBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMgYnkgdmFsdWUsIGJ1
dCBub3QgYWxsIG9mIHRoZSBtZXRob2RzIHdpbGwKKy8vIHdvcmsgaWYgeW91IGRvIHRoYXQuCiBj
bGFzcyBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMgewogcHVibGljOgogICAgIC8vIFRoaXMgaXMg
dGhlIHN0YWNrbWFwIHZhbHVlIHRoYXQgd2UncmUgZ2VuZXJhdGluZy4KQEAgLTgwLDYgKzg0LDEy
IEBAIHB1YmxpYzoKIAogICAgIEdQUlJlZyBncFNjcmF0Y2godW5zaWduZWQgaW5kZXgpIGNvbnN0
IHsgcmV0dXJuIG1fZ3BTY3JhdGNoW2luZGV4XTsgfQogICAgIEZQUlJlZyBmcFNjcmF0Y2godW5z
aWduZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fZnBTY3JhdGNoW2luZGV4XTsgfQorICAgIAor
ICAgIC8vIFRoaXMgaXMgY29tcHV0ZWQgbGF6aWx5LCBzbyBpdCB3b24ndCB3b3JrIGlmIHlvdSBj
YXB0dXJlIFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyBieSB2YWx1ZS4KKyAgICBKU19FWFBPUlRf
UFJJVkFURSBWZWN0b3I8Qm94PENDYWxsSGVscGVyczo6TGFiZWw+PiBzdWNjZXNzb3JMYWJlbHMo
KSBjb25zdDsKKyAgICAKKyAgICAvLyBUaGlzIGlzIGNvbXB1dGVkIGxhemlseSBhbHNvLgorICAg
IGJvb2wgZmFsbHNUaHJvdWdoVG9TdWNjZXNzb3IodW5zaWduZWQgc3VjY2Vzc29ySW5kZXgpIGNv
bnN0OwogCiAgICAgLy8gVGhpcyBpcyBwcm92aWRlZCBmb3IgY29udmVuaWVuY2U7IGl0IG1lYW5z
IHRoYXQgeW91IGRvbid0IGhhdmUgdG8gY2FwdHVyZSBpdCBpZiB5b3UgZG9uJ3Qgd2FudCB0by4K
ICAgICBQcm9jZWR1cmUmIHByb2MoKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM1N3aXRjaFZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNTd2l0Y2hWYWx1ZS5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM1N3aXRjaFZhbHVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsMzAg
KzM3LDc2IEBAIFN3aXRjaFZhbHVlOjp+U3dpdGNoVmFsdWUoKQogewogfQogCi1Td2l0Y2hDYXNl
IFN3aXRjaFZhbHVlOjpyZW1vdmVDYXNlKHVuc2lnbmVkIGluZGV4KQorU3dpdGNoQ2FzZSBTd2l0
Y2hWYWx1ZTo6cmVtb3ZlQ2FzZShCYXNpY0Jsb2NrKiBibG9jaywgdW5zaWduZWQgaW5kZXgpCiB7
Ci0gICAgRnJlcXVlbnRlZEJsb2NrIHJlc3VsdEJsb2NrID0gbV9zdWNjZXNzb3JzW2luZGV4XTsK
KyAgICBGcmVxdWVudGVkQmxvY2sgcmVzdWx0QmxvY2sgPSBibG9jay0+c3VjY2Vzc29yKGluZGV4
KTsKICAgICBpbnQ2NF90IHJlc3VsdFZhbHVlID0gbV92YWx1ZXNbaW5kZXhdOwotICAgIG1fc3Vj
Y2Vzc29yc1tpbmRleF0gPSBtX3N1Y2Nlc3NvcnMubGFzdCgpOwotICAgIG1fc3VjY2Vzc29ycy5y
ZW1vdmVMYXN0KCk7CisgICAgYmxvY2stPnN1Y2Nlc3NvcihpbmRleCkgPSBibG9jay0+c3VjY2Vz
c29ycygpLmxhc3QoKTsKKyAgICBibG9jay0+c3VjY2Vzc29ycygpLnJlbW92ZUxhc3QoKTsKICAg
ICBtX3ZhbHVlc1tpbmRleF0gPSBtX3ZhbHVlcy5sYXN0KCk7CiAgICAgbV92YWx1ZXMucmVtb3Zl
TGFzdCgpOwogICAgIHJldHVybiBTd2l0Y2hDYXNlKHJlc3VsdFZhbHVlLCByZXN1bHRCbG9jayk7
CiB9CiAKLXZvaWQgU3dpdGNoVmFsdWU6OmFwcGVuZENhc2UoY29uc3QgU3dpdGNoQ2FzZSYgc3dp
dGNoQ2FzZSkKK2Jvb2wgU3dpdGNoVmFsdWU6Omhhc0ZhbGxUaHJvdWdoKGNvbnN0IEJhc2ljQmxv
Y2sqIGJsb2NrKSBjb25zdAoreworICAgIHVuc2lnbmVkIG51bVN1Y2Nlc3NvcnMgPSBibG9jay0+
bnVtU3VjY2Vzc29ycygpOworICAgIHVuc2lnbmVkIG51bVZhbHVlcyA9IG1fdmFsdWVzLnNpemUo
KTsKKyAgICBSRUxFQVNFX0FTU0VSVChudW1WYWx1ZXMgPT0gbnVtU3VjY2Vzc29ycyB8fCBudW1W
YWx1ZXMgKyAxID09IG51bVN1Y2Nlc3NvcnMpOworICAgIAorICAgIHJldHVybiBudW1WYWx1ZXMg
KyAxID09IG51bVN1Y2Nlc3NvcnM7Cit9CisKK2Jvb2wgU3dpdGNoVmFsdWU6Omhhc0ZhbGxUaHJv
dWdoKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaGFzRmFsbFRocm91Z2gob3duZXIpOworfQorCit2
b2lkIFN3aXRjaFZhbHVlOjpzZXRGYWxsVGhyb3VnaChCYXNpY0Jsb2NrKiBibG9jaywgY29uc3Qg
RnJlcXVlbnRlZEJsb2NrJiB0YXJnZXQpCit7CisgICAgaWYgKCFoYXNGYWxsVGhyb3VnaCgpKQor
ICAgICAgICBibG9jay0+c3VjY2Vzc29ycygpLmFwcGVuZCh0YXJnZXQpOworICAgIGVsc2UKKyAg
ICAgICAgYmxvY2stPnN1Y2Nlc3NvcnMoKS5sYXN0KCkgPSB0YXJnZXQ7CisgICAgQVNTRVJUKGhh
c0ZhbGxUaHJvdWdoKGJsb2NrKSk7Cit9CisKK3ZvaWQgU3dpdGNoVmFsdWU6OmFwcGVuZENhc2Uo
QmFzaWNCbG9jayogYmxvY2ssIGNvbnN0IFN3aXRjaENhc2UmIHN3aXRjaENhc2UpCiB7Ci0gICAg
bV9zdWNjZXNzb3JzLmFwcGVuZChtX3N1Y2Nlc3NvcnMubGFzdCgpKTsKLSAgICBtX3N1Y2Nlc3Nv
cnNbbV9zdWNjZXNzb3JzLnNpemUoKSAtIDJdID0gc3dpdGNoQ2FzZS50YXJnZXQoKTsKKyAgICBp
ZiAoIWhhc0ZhbGxUaHJvdWdoKCkpCisgICAgICAgIGJsb2NrLT5zdWNjZXNzb3JzKCkuYXBwZW5k
KHN3aXRjaENhc2UudGFyZ2V0KCkpOworICAgIGVsc2UgeworICAgICAgICBibG9jay0+c3VjY2Vz
c29ycygpLmFwcGVuZChibG9jay0+c3VjY2Vzc29ycygpLmxhc3QoKSk7CisgICAgICAgIGJsb2Nr
LT5zdWNjZXNzb3IoYmxvY2stPm51bVN1Y2Nlc3NvcnMoKSAtIDIpID0gc3dpdGNoQ2FzZS50YXJn
ZXQoKTsKKyAgICB9CiAgICAgbV92YWx1ZXMuYXBwZW5kKHN3aXRjaENhc2UuY2FzZVZhbHVlKCkp
OwogfQogCit2b2lkIFN3aXRjaFZhbHVlOjpzZXRGYWxsVGhyb3VnaChjb25zdCBGcmVxdWVudGVk
QmxvY2smIHRhcmdldCkKK3sKKyAgICBzZXRGYWxsVGhyb3VnaChvd25lciwgdGFyZ2V0KTsKK30K
Kwordm9pZCBTd2l0Y2hWYWx1ZTo6YXBwZW5kQ2FzZShjb25zdCBTd2l0Y2hDYXNlJiBzd2l0Y2hD
YXNlKQoreworICAgIGFwcGVuZENhc2Uob3duZXIsIHN3aXRjaENhc2UpOworfQorCit2b2lkIFN3
aXRjaFZhbHVlOjpkdW1wU3VjY2Vzc29ycyhjb25zdCBCYXNpY0Jsb2NrKiBibG9jaywgUHJpbnRT
dHJlYW0mIG91dCkgY29uc3QKK3sKKyAgICAvLyBXZSBtdXN0IG5vdCBjcmFzaCBkdWUgdG8gYSBu
dW1iZXItb2Ytc3VjY2Vzc29ycyBtaXNtYXRjaCEgU29tZW9uZSBkZWJ1Z2dpbmcgYQorICAgIC8v
IG51bWJlci1vZi1zdWNjZXNzb3JzIGJ1ZyB3aWxsIHdhbnQgdG8gZHVtcCBJUiEKKyAgICBpZiAo
bnVtQ2FzZVZhbHVlcygpICsgMSAhPSBibG9jay0+bnVtU3VjY2Vzc29ycygpKSB7CisgICAgICAg
IFZhbHVlOjpkdW1wU3VjY2Vzc29ycyhibG9jaywgb3V0KTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICAKKyAgICBvdXQucHJpbnQoY2FzZXMoYmxvY2spKTsKK30KKwogdm9pZCBTd2l0Y2hW
YWx1ZTo6ZHVtcE1ldGEoQ29tbWFQcmludGVyJiBjb21tYSwgUHJpbnRTdHJlYW0mIG91dCkgY29u
c3QKIHsKLSAgICAvLyBUaGlzIGRlc3RydWN0aXZlbHkgb3ZlcnJpZGVzIENvbnRyb2xWYWx1ZSdz
IGR1bXBNZXRhKCkuCi0gICAgZm9yIChTd2l0Y2hDYXNlIHN3aXRjaENhc2UgOiAqdGhpcykKLSAg
ICAgICAgb3V0LnByaW50KGNvbW1hLCBzd2l0Y2hDYXNlKTsKLSAgICBvdXQucHJpbnQoY29tbWEs
ICJmYWxsVGhyb3VnaCA9ICIsIGZhbGxUaHJvdWdoKCkpOworICAgIG91dC5wcmludChjb21tYSwg
ImNhc2VzID0gWyIsIGxpc3REdW1wKG1fdmFsdWVzKSwgIl0iKTsKIH0KIAogVmFsdWUqIFN3aXRj
aFZhbHVlOjpjbG9uZUltcGwoKSBjb25zdApAQCAtNjgsMTAgKzExNCw5IEBAIFZhbHVlKiBTd2l0
Y2hWYWx1ZTo6Y2xvbmVJbXBsKCkgY29uc3QKICAgICByZXR1cm4gbmV3IFN3aXRjaFZhbHVlKCp0
aGlzKTsKIH0KIAotU3dpdGNoVmFsdWU6OlN3aXRjaFZhbHVlKE9yaWdpbiBvcmlnaW4sIFZhbHVl
KiBjaGlsZCwgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBmYWxsVGhyb3VnaCkKLSAgICA6IENvbnRy
b2xWYWx1ZShTd2l0Y2gsIFZvaWQsIG9yaWdpbiwgY2hpbGQpCitTd2l0Y2hWYWx1ZTo6U3dpdGNo
VmFsdWUoT3JpZ2luIG9yaWdpbiwgVmFsdWUqIGNoaWxkKQorICAgIDogVmFsdWUoQ2hlY2tlZE9w
Y29kZSwgU3dpdGNoLCBWb2lkLCBvcmlnaW4sIGNoaWxkKQogewotICAgIG1fc3VjY2Vzc29ycy5h
cHBlbmQoZmFsbFRocm91Z2gpOwogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N3aXRjaFZhbHVlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3dpdGNoVmFsdWUuaAkocmV2aXNpb24gMjAyODA5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3dpdGNoVmFsdWUuaAkod29ya2luZyBj
b3B5KQpAQCAtMjgsMTIgKzI4LDEzIEBACiAKICNpZiBFTkFCTEUoQjNfSklUKQogCi0jaW5jbHVk
ZSAiQjNDb250cm9sVmFsdWUuaCIKKyNpbmNsdWRlICJCM0Nhc2VDb2xsZWN0aW9uLmgiCiAjaW5j
bHVkZSAiQjNTd2l0Y2hDYXNlLmgiCisjaW5jbHVkZSAiQjNWYWx1ZS5oIgogCiBuYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIEIzIHsKIAotY2xhc3MgU3dpdGNoVmFsdWUgOiBwdWJsaWMgQ29udHJv
bFZhbHVlIHsKK2NsYXNzIFN3aXRjaFZhbHVlIDogcHVibGljIFZhbHVlIHsKIHB1YmxpYzoKICAg
ICBzdGF0aWMgYm9vbCBhY2NlcHRzKE9wY29kZSBvcGNvZGUpIHsgcmV0dXJuIG9wY29kZSA9PSBT
d2l0Y2g7IH0KIApAQCAtNDcsNzIgKzQ4LDI2IEBAIHB1YmxpYzoKICAgICAKICAgICBjb25zdCBW
ZWN0b3I8aW50NjRfdD4mIGNhc2VWYWx1ZXMoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlczsgfQog
Ci0gICAgRnJlcXVlbnRlZEJsb2NrIGZhbGxUaHJvdWdoKCkgY29uc3QgeyByZXR1cm4gc3VjY2Vz
c29ycygpLmxhc3QoKTsgfQotICAgIEZyZXF1ZW50ZWRCbG9jayYgZmFsbFRocm91Z2goKSB7IHJl
dHVybiBzdWNjZXNzb3JzKCkubGFzdCgpOyB9Ci0KLSAgICB1bnNpZ25lZCBzaXplKCkgY29uc3Qg
eyByZXR1cm4gbnVtQ2FzZVZhbHVlcygpOyB9Ci0gICAgU3dpdGNoQ2FzZSBhdCh1bnNpZ25lZCBp
bmRleCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBTd2l0Y2hDYXNlKGNhc2VWYWx1ZShp
bmRleCksIHN1Y2Nlc3NvcihpbmRleCkpOwotICAgIH0KLSAgICBTd2l0Y2hDYXNlIG9wZXJhdG9y
W10odW5zaWduZWQgaW5kZXgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gYXQoaW5kZXgp
OwotICAgIH0KLQotICAgIGNsYXNzIGl0ZXJhdG9yIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIGl0
ZXJhdG9yKCkKLSAgICAgICAgICAgIDogbV9zd2l0Y2gobnVsbHB0cikKLSAgICAgICAgICAgICwg
bV9pbmRleCgwKQotICAgICAgICB7Ci0gICAgICAgIH0KLQotICAgICAgICBpdGVyYXRvcihjb25z
dCBTd2l0Y2hWYWx1ZSYgc3dpdGNoVmFsdWUsIHVuc2lnbmVkIGluZGV4KQotICAgICAgICAgICAg
OiBtX3N3aXRjaCgmc3dpdGNoVmFsdWUpCi0gICAgICAgICAgICAsIG1faW5kZXgoaW5kZXgpCi0g
ICAgICAgIHsKLSAgICAgICAgfQotCi0gICAgICAgIFN3aXRjaENhc2Ugb3BlcmF0b3IqKCkKLSAg
ICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG1fc3dpdGNoLT5hdChtX2luZGV4KTsKLSAgICAg
ICAgfQotCi0gICAgICAgIGl0ZXJhdG9yJiBvcGVyYXRvcisrKCkKLSAgICAgICAgewotICAgICAg
ICAgICAgbV9pbmRleCsrOwotICAgICAgICAgICAgcmV0dXJuICp0aGlzOwotICAgICAgICB9Ci0K
LSAgICAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IGl0ZXJhdG9yJiBvdGhlcikgY29uc3QKLSAg
ICAgICAgewotICAgICAgICAgICAgQVNTRVJUKG1fc3dpdGNoID09IG90aGVyLm1fc3dpdGNoKTsK
LSAgICAgICAgICAgIHJldHVybiBtX2luZGV4ID09IG90aGVyLm1faW5kZXg7Ci0gICAgICAgIH0K
LQotICAgICAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgaXRlcmF0b3ImIG90aGVyKSBjb25zdAot
ICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7Ci0gICAgICAg
IH0KLQotICAgIHByaXZhdGU6Ci0gICAgICAgIGNvbnN0IFN3aXRjaFZhbHVlKiBtX3N3aXRjaDsK
LSAgICAgICAgdW5zaWduZWQgbV9pbmRleDsKLSAgICB9OwotCi0gICAgdHlwZWRlZiBpdGVyYXRv
ciBjb25zdF9pdGVyYXRvcjsKLQotICAgIGl0ZXJhdG9yIGJlZ2luKCkgY29uc3QgeyByZXR1cm4g
aXRlcmF0b3IoKnRoaXMsIDApOyB9Ci0gICAgaXRlcmF0b3IgZW5kKCkgY29uc3QgeyByZXR1cm4g
aXRlcmF0b3IoKnRoaXMsIHNpemUoKSk7IH0KKyAgICBDYXNlQ29sbGVjdGlvbiBjYXNlcyhjb25z
dCBCYXNpY0Jsb2NrKiBvd25lcikgY29uc3QgeyByZXR1cm4gQ2FzZUNvbGxlY3Rpb24odGhpcywg
b3duZXIpOyB9CisgICAgQ2FzZUNvbGxlY3Rpb24gY2FzZXMoKSBjb25zdCB7IHJldHVybiBjYXNl
cyhvd25lcik7IH0KIAogICAgIC8vIFRoaXMgcmVtb3ZlcyB0aGUgY2FzZSBhbmQgcmVvcmRlcnMg
dGhpbmdzIGEgYml0LiBJZiB5b3UncmUgaXRlcmF0aW5nIHRoZSBjYXNlcyBmcm9tIDAgdG8gTiwK
ICAgICAvLyB0aGVuIHlvdSBjYW4ga2VlcCBpdGVyYXRpbmcgYWZ0ZXIgdGhpcyBzbyBsb25nIGFz
IHlvdSByZXZpc2l0IHRoaXMgc2FtZSBpbmRleCAod2hpY2ggd2lsbCBub3cKICAgICAvLyBjb250
YWluIHNvbWUgb3RoZXIgY2FzZSB2YWx1ZSkuIFRoaXMgcmVtb3ZlcyB0aGUgY2FzZSB0aGF0IHdh
cyByZW1vdmVkLgotICAgIFN3aXRjaENhc2UgcmVtb3ZlQ2FzZSh1bnNpZ25lZCBpbmRleCk7Cisg
ICAgU3dpdGNoQ2FzZSByZW1vdmVDYXNlKEJhc2ljQmxvY2sqLCB1bnNpZ25lZCBpbmRleCk7CiAK
KyAgICBib29sIGhhc0ZhbGxUaHJvdWdoKGNvbnN0IEJhc2ljQmxvY2sqKSBjb25zdDsKKyAgICBi
b29sIGhhc0ZhbGxUaHJvdWdoKCkgY29uc3Q7CisKKyAgICAvLyBUaGVzZSB0d28gZnVuY3Rpb25z
IGNhbiBiZSBjYWxsZWQgaW4gYW55IG9yZGVyLgorICAgIHZvaWQgc2V0RmFsbFRocm91Z2goQmFz
aWNCbG9jayosIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYpOworICAgIHZvaWQgYXBwZW5kQ2FzZShC
YXNpY0Jsb2NrKiwgY29uc3QgU3dpdGNoQ2FzZSYpOworICAgIAorICAgIEpTX0VYUE9SVF9QUklW
QVRFIHZvaWQgc2V0RmFsbFRocm91Z2goY29uc3QgRnJlcXVlbnRlZEJsb2NrJik7CiAgICAgSlNf
RVhQT1JUX1BSSVZBVEUgdm9pZCBhcHBlbmRDYXNlKGNvbnN0IFN3aXRjaENhc2UmKTsKIAorICAg
IHZvaWQgZHVtcFN1Y2Nlc3NvcnMoY29uc3QgQmFzaWNCbG9jayosIFByaW50U3RyZWFtJikgY29u
c3Qgb3ZlcnJpZGU7CisKIHByb3RlY3RlZDoKICAgICB2b2lkIGR1bXBNZXRhKENvbW1hUHJpbnRl
ciYsIFByaW50U3RyZWFtJikgY29uc3Qgb3ZlcnJpZGU7CiAKQEAgLTEyMSw3ICs3Niw3IEBAIHBy
b3RlY3RlZDoKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFByb2NlZHVyZTsKIAotICAgIEpT
X0VYUE9SVF9QUklWQVRFIFN3aXRjaFZhbHVlKE9yaWdpbiwgVmFsdWUqIGNoaWxkLCBjb25zdCBG
cmVxdWVudGVkQmxvY2smIGZhbGxUaHJvdWdoKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBTd2l0
Y2hWYWx1ZShPcmlnaW4sIFZhbHVlKiBjaGlsZCk7CiAKICAgICBWZWN0b3I8aW50NjRfdD4gbV92
YWx1ZXM7CiB9OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsaWRhdGUuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbGlkYXRlLmNwcAko
cmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsaWRhdGUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiQjNQcm9jZWR1
cmUuaCIKICNpbmNsdWRlICJCM1Nsb3RCYXNlVmFsdWUuaCIKICNpbmNsdWRlICJCM1N0YWNrU2xv
dC5oIgorI2luY2x1ZGUgIkIzU3dpdGNoVmFsdWUuaCIKICNpbmNsdWRlICJCM1Vwc2lsb25WYWx1
ZS5oIgogI2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNWYXJpYWJsZS5o
IgpAQCAtMTA3LDggKzEwOCw4IEBAIHB1YmxpYzoKICAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBi
bG9jayA6IGJsb2NrcykgewogICAgICAgICAgICAgVkFMSURBVEUoYmxvY2stPnNpemUoKSA+PSAx
LCAoIkF0ICIsICpibG9jaykpOwogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IGJsb2NrLT5zaXplKCkgLSAxOyArK2kpCi0gICAgICAgICAgICAgICAgVkFMSURBVEUoIUNvbnRy
b2xWYWx1ZTo6YWNjZXB0cyhibG9jay0+YXQoaSktPm9wY29kZSgpKSwgKCJBdCAiLCAqYmxvY2st
PmF0KGkpKSk7Ci0gICAgICAgICAgICBWQUxJREFURShDb250cm9sVmFsdWU6OmFjY2VwdHMoYmxv
Y2stPmxhc3QoKS0+b3Bjb2RlKCkpLCAoIkF0ICIsICpibG9jay0+bGFzdCgpKSk7CisgICAgICAg
ICAgICAgICAgVkFMSURBVEUoIWJsb2NrLT5hdChpKS0+ZWZmZWN0cygpLnRlcm1pbmFsLCAoIkF0
ICIsICpibG9jay0+YXQoaSkpKTsKKyAgICAgICAgICAgIFZBTElEQVRFKGJsb2NrLT5sYXN0KCkt
PmVmZmVjdHMoKS50ZXJtaW5hbCwgKCJBdCAiLCAqYmxvY2stPmxhc3QoKSkpOwogICAgICAgICAg
ICAgCiAgICAgICAgICAgICBmb3IgKEJhc2ljQmxvY2sqIHN1Y2Nlc3NvciA6IGJsb2NrLT5zdWNj
ZXNzb3JCbG9ja3MoKSkgewogICAgICAgICAgICAgICAgIGFsbFByZWRlY2Vzc29ycy5hZGQoc3Vj
Y2Vzc29yLCBIYXNoU2V0PEJhc2ljQmxvY2sqPigpKS5pdGVyYXRvci0+dmFsdWUuYWRkKGJsb2Nr
KTsKQEAgLTEyOSw4ICsxMzAsNiBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgVkFMSURBVEUo
Y2hpbGQtPnR5cGUoKSAhPSBWb2lkLCAoIkF0ICIsICp2YWx1ZSwgIi0+IiwgKmNoaWxkKSk7CiAg
ICAgICAgICAgICBzd2l0Y2ggKHZhbHVlLT5vcGNvZGUoKSkgewogICAgICAgICAgICAgY2FzZSBO
b3A6Ci0gICAgICAgICAgICBjYXNlIEp1bXA6Ci0gICAgICAgICAgICBjYXNlIE9vcHM6CiAgICAg
ICAgICAgICAgICAgVkFMSURBVEUoIXZhbHVlLT5udW1DaGlsZHJlbigpLCAoIkF0ICIsICp2YWx1
ZSkpOwogICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgPT0gVm9pZCwgKCJB
dCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTM3NywxNSArMzc2LDM2
IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICBWQUxJREFURSghdmFsdWUtPm51bUNoaWxkcmVu
KCksICgiQXQgIiwgKnZhbHVlKSk7CiAgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPnR5
cGUoKSAhPSBWb2lkLCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSBKdW1wOgorICAgICAgICAgICAgICAgIFZBTElEQVRFKCF2YWx1ZS0+
bnVtQ2hpbGRyZW4oKSwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFU
RSh2YWx1ZS0+dHlwZSgpID09IFZvaWQsICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAg
ICAgVkFMSURBVEUodmFsdWVPd25lci5nZXQodmFsdWUpLT5udW1TdWNjZXNzb3JzKCkgPT0gMSwg
KCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgT29wczoKKyAgICAgICAgICAgICAgICBWQUxJREFURSghdmFsdWUtPm51bUNoaWxkcmVuKCks
ICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPnR5cGUo
KSA9PSBWb2lkLCAoIkF0ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIFZBTElEQVRFKCF2
YWx1ZU93bmVyLmdldCh2YWx1ZSktPm51bVN1Y2Nlc3NvcnMoKSwgKCJBdCAiLCAqdmFsdWUpKTsK
KyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgUmV0dXJuOgogICAgICAg
ICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT5udW1DaGlsZHJlbigpID09IDEsICgiQXQgIiwgKnZh
bHVlKSk7CiAgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPnR5cGUoKSA9PSBWb2lkLCAo
IkF0ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIFZBTElEQVRFKCF2YWx1ZU93bmVyLmdl
dCh2YWx1ZSktPm51bVN1Y2Nlc3NvcnMoKSwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgQnJhbmNoOgorICAgICAgICAgICAgICAgIFZB
TElEQVRFKHZhbHVlLT5udW1DaGlsZHJlbigpID09IDEsICgiQXQgIiwgKnZhbHVlKSk7CisgICAg
ICAgICAgICAgICAgVkFMSURBVEUoaXNJbnQodmFsdWUtPmNoaWxkKDApLT50eXBlKCkpLCAoIkF0
ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgPT0g
Vm9pZCwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZU93
bmVyLmdldCh2YWx1ZSktPm51bVN1Y2Nlc3NvcnMoKSA9PSAyLCAoIkF0ICIsICp2YWx1ZSkpOwor
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBTd2l0Y2g6CiAgICAgICAg
ICAgICAgICAgVkFMSURBVEUodmFsdWUtPm51bUNoaWxkcmVuKCkgPT0gMSwgKCJBdCAiLCAqdmFs
dWUpKTsKICAgICAgICAgICAgICAgICBWQUxJREFURShpc0ludCh2YWx1ZS0+Y2hpbGQoMCktPnR5
cGUoKSksICgiQXQgIiwgKnZhbHVlKSk7CiAgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUt
PnR5cGUoKSA9PSBWb2lkLCAoIkF0ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIFZBTElE
QVRFKHZhbHVlLT5hczxTd2l0Y2hWYWx1ZT4oKS0+aGFzRmFsbFRocm91Z2godmFsdWVPd25lci5n
ZXQodmFsdWUpKSwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICAvLyBUaGlzIHZh
bGlkYXRlcyB0aGUgc2FtZSB0aGluZyBhcyBoYXNGYWxsVGhyb3VnaCwgYnV0IG1vcmUgZXhwbGlj
aXRseS4gV2Ugd2FudCB0bworICAgICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGF0IGlmIGFu
eW9uZSB0cmllcyB0byBjaGFuZ2UgdGhlIGRlZmluaXRpb24gb2YgaGFzRmFsbFRocm91Z2gsIHRo
ZXkKKyAgICAgICAgICAgICAgICAvLyB3aWxsIGZlZWwgc29tZSBwYWluIGhlcmUsIHNpbmNlIHRo
aXMgaXMgZnVuZGFtZW50YWwuCisgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWVPd25lci5n
ZXQodmFsdWUpLT5udW1TdWNjZXNzb3JzKCkgPT0gdmFsdWUtPmFzPFN3aXRjaFZhbHVlPigpLT5u
dW1DYXNlVmFsdWVzKCkgKyAxLCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNW
YWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUu
Y3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDkgKzI5LDkgQEAKICNpZiBFTkFCTEUoQjNfSklU
KQogCiAjaW5jbHVkZSAiQjNBcmd1bWVudFJlZ1ZhbHVlLmgiCisjaW5jbHVkZSAiQjNCYXNpY0Js
b2NrSW5saW5lcy5oIgogI2luY2x1ZGUgIkIzQm90dG9tUHJvdmlkZXIuaCIKICNpbmNsdWRlICJC
M0NDYWxsVmFsdWUuaCIKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIz
TWVtb3J5VmFsdWUuaCIKICNpbmNsdWRlICJCM09yaWdpbkR1bXAuaCIKICNpbmNsdWRlICJCM1By
b2NlZHVyZUlubGluZXMuaCIKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJCM1ZhbHVlS2V5
SW5saW5lcy5oIgogI2luY2x1ZGUgIkIzVmFyaWFibGVWYWx1ZS5oIgogI2luY2x1ZGUgPHd0Zi9D
b21tYVByaW50ZXIuaD4KKyNpbmNsdWRlIDx3dGYvTGlzdER1bXAuaD4KICNpbmNsdWRlIDx3dGYv
U3RyaW5nUHJpbnRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CkBA
IC0xMjUsNiArMTI2LDUwIEBAIHZvaWQgVmFsdWU6OnJlcGxhY2VXaXRoUGhpKCkKICAgICB0aGlz
LT5tX2luZGV4ID0gaW5kZXg7CiB9CiAKK3ZvaWQgVmFsdWU6OnJlcGxhY2VXaXRoSnVtcChCYXNp
Y0Jsb2NrKiBvd25lciwgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YXJnZXQpCit7CisgICAgUkVM
RUFTRV9BU1NFUlQob3duZXItPmxhc3QoKSA9PSB0aGlzKTsKKyAgICAKKyAgICB1bnNpZ25lZCBp
bmRleCA9IG1faW5kZXg7CisgICAgT3JpZ2luIG9yaWdpbiA9IG1fb3JpZ2luOworICAgIAorICAg
IHRoaXMtPn5WYWx1ZSgpOworICAgIAorICAgIG5ldyAodGhpcykgVmFsdWUoSnVtcCwgVm9pZCwg
b3JpZ2luKTsKKyAgICAKKyAgICB0aGlzLT5vd25lciA9IG93bmVyOworICAgIHRoaXMtPm1faW5k
ZXggPSBpbmRleDsKKyAgICAKKyAgICBvd25lci0+c2V0U3VjY2Vzc29ycyh0YXJnZXQpOworfQor
Cit2b2lkIFZhbHVlOjpyZXBsYWNlV2l0aE9vcHMoQmFzaWNCbG9jayogb3duZXIpCit7CisgICAg
UkVMRUFTRV9BU1NFUlQob3duZXItPmxhc3QoKSA9PSB0aGlzKTsKKyAgICAKKyAgICB1bnNpZ25l
ZCBpbmRleCA9IG1faW5kZXg7CisgICAgT3JpZ2luIG9yaWdpbiA9IG1fb3JpZ2luOworICAgIAor
ICAgIHRoaXMtPn5WYWx1ZSgpOworICAgIAorICAgIG5ldyAodGhpcykgVmFsdWUoT29wcywgVm9p
ZCwgb3JpZ2luKTsKKyAgICAKKyAgICB0aGlzLT5vd25lciA9IG93bmVyOworICAgIHRoaXMtPm1f
aW5kZXggPSBpbmRleDsKKyAgICAKKyAgICBvd25lci0+Y2xlYXJTdWNjZXNzb3JzKCk7Cit9CisK
K3ZvaWQgVmFsdWU6OnJlcGxhY2VXaXRoSnVtcChjb25zdCBGcmVxdWVudGVkQmxvY2smIHRhcmdl
dCkKK3sKKyAgICByZXBsYWNlV2l0aEp1bXAob3duZXIsIHRhcmdldCk7Cit9CisKK3ZvaWQgVmFs
dWU6OnJlcGxhY2VXaXRoT29wcygpCit7CisgICAgcmVwbGFjZVdpdGhPb3BzKG93bmVyKTsKK30K
Kwogdm9pZCBWYWx1ZTo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogewogICAgIGJvb2wg
aXNDb25zdGFudCA9IGZhbHNlOwpAQCAtMTg5LDYgKzIzNCwxOSBAQCB2b2lkIFZhbHVlOjpkZWVw
RHVtcChjb25zdCBQcm9jZWR1cmUqIHByCiAgICAgb3V0LnByaW50KCIpIik7CiB9CiAKK3ZvaWQg
VmFsdWU6OmR1bXBTdWNjZXNzb3JzKGNvbnN0IEJhc2ljQmxvY2sqIGJsb2NrLCBQcmludFN0cmVh
bSYgb3V0KSBjb25zdAoreworICAgIC8vIE5vdGUgdGhhdCB0aGlzIG11c3Qgbm90IGNyYXNoIGlm
IHdlIGhhdmUgdGhlIHdyb25nIG51bWJlciBvZiBzdWNjZXNzb3JzLCBzaW5jZSBzb21lb25lCisg
ICAgLy8gZGVidWdnaW5nIGEgbnVtYmVyLW9mLXN1Y2Nlc3NvcnMgYnVnIHdpbGwgcHJvYmFibHkg
d2FudCB0byBkdW1wIElSIQorICAgIAorICAgIGlmIChvcGNvZGUoKSA9PSBCcmFuY2ggJiYgYmxv
Y2stPm51bVN1Y2Nlc3NvcnMoKSA9PSAyKSB7CisgICAgICAgIG91dC5wcmludCgiVGhlbjoiLCBi
bG9jay0+dGFrZW4oKSwgIiwgRWxzZToiLCBibG9jay0+bm90VGFrZW4oKSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisgICAgCisgICAgb3V0LnByaW50KGxpc3REdW1wKGJsb2NrLT5zdWNjZXNz
b3JzKCkpKTsKK30KKwogVmFsdWUqIFZhbHVlOjpuZWdDb25zdGFudChQcm9jZWR1cmUmKSBjb25z
dAogewogICAgIHJldHVybiBudWxscHRyOwpAQCAtNzEzLDYgKzc3MSwxMCBAQCBUeXBlIFZhbHVl
Ojp0eXBlRm9yKE9wY29kZSBvcGNvZGUsIFZhbHVlCiAgICAgICAgIH0KICAgICAgICAgcmV0dXJu
IFZvaWQ7CiAgICAgY2FzZSBOb3A6CisgICAgY2FzZSBKdW1wOgorICAgIGNhc2UgQnJhbmNoOgor
ICAgIGNhc2UgUmV0dXJuOgorICAgIGNhc2UgT29wczoKICAgICAgICAgcmV0dXJuIFZvaWQ7CiAg
ICAgY2FzZSBTZWxlY3Q6CiAgICAgICAgIEFTU0VSVChzZWNvbmRDaGlsZCk7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAK
IAogI2luY2x1ZGUgIkFpckFyZy5oIgogI2luY2x1ZGUgIkIzRWZmZWN0cy5oIgorI2luY2x1ZGUg
IkIzRnJlcXVlbnRlZEJsb2NrLmgiCiAjaW5jbHVkZSAiQjNPcGNvZGUuaCIKICNpbmNsdWRlICJC
M09yaWdpbi5oIgogI2luY2x1ZGUgIkIzU3BhcnNlQ29sbGVjdGlvbi5oIgpAQCAtMTA5LDkgKzEx
MCwxOSBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXBsYWNlV2l0aE5vcElnbm9yaW5nVHlwZSgpOwog
ICAgIAogICAgIHZvaWQgcmVwbGFjZVdpdGhQaGkoKTsKKyAgICAKKyAgICAvLyBUaGVzZSB0cmFu
c2Zvcm1hdGlvbnMgYXJlIG9ubHkgdmFsaWQgZm9yIHRlcm1pbmFscy4KKyAgICB2b2lkIHJlcGxh
Y2VXaXRoSnVtcChCYXNpY0Jsb2NrKiBvd25lciwgY29uc3QgRnJlcXVlbnRlZEJsb2NrJik7Cisg
ICAgdm9pZCByZXBsYWNlV2l0aE9vcHMoQmFzaWNCbG9jayogb3duZXIpOworICAgIAorICAgIC8v
IFlvdSBjYW4gdXNlIHRoaXMgZm9ybSBpZiBvd25lcnMgYXJlIHZhbGlkLiBUaGV5J3JlIHVzdWFs
bHkgbm90IHZhbGlkLgorICAgIHZvaWQgcmVwbGFjZVdpdGhKdW1wKGNvbnN0IEZyZXF1ZW50ZWRC
bG9jayYpOworICAgIHZvaWQgcmVwbGFjZVdpdGhPb3BzKCk7CiAKICAgICB2b2lkIGR1bXAoUHJp
bnRTdHJlYW0mKSBjb25zdDsKICAgICB2b2lkIGRlZXBEdW1wKGNvbnN0IFByb2NlZHVyZSosIFBy
aW50U3RyZWFtJikgY29uc3Q7CisgICAgCisgICAgdmlydHVhbCB2b2lkIGR1bXBTdWNjZXNzb3Jz
KGNvbnN0IEJhc2ljQmxvY2sqLCBQcmludFN0cmVhbSYpIGNvbnN0OwogCiAgICAgLy8gVGhpcyBp
cyBob3cgeW91IGNhc3QgVmFsdWVzLiBGb3IgZXhhbXBsZSwgaWYgeW91IHdhbnQgdG8gZG8gc29t
ZXRoaW5nIHByb3ZpZGVkIHRoYXQgd2UgaGF2ZSBhCiAgICAgLy8gQXJndW1lbnRSZWdWYWx1ZSwg
eW91IGNhbiBkbzoKQEAgLTIyMyw3ICsyMzQsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0xpa2VO
b25aZXJvKCkgY29uc3QgeyByZXR1cm4gYXNUcmlTdGF0ZSgpID09IFRydWVUcmlTdGF0ZTsgfQog
CiAgICAgRWZmZWN0cyBlZmZlY3RzKCkgY29uc3Q7Ci0KKyAgICAKICAgICAvLyBUaGlzIHJldHVy
bnMgYSBWYWx1ZUtleSB0aGF0IGRlc2NyaWJlcyB0aGF0IHRoaXMgVmFsdWUgcmV0dXJucyB3aGVu
IGl0IGV4ZWN1dGVzLiBSZXR1cm5zIGFuCiAgICAgLy8gZW1wdHkgVmFsdWVLZXkgaWYgdGhpcyBW
YWx1ZSBpcyBpbXB1cmUuIE5vdGUgdGhhdCBhbiBvcGVyYXRpb24gdGhhdCByZXR1cm5zIFZvaWQg
Y291bGQgc3RpbGwKICAgICAvLyBoYXZlIGEgbm9uLWVtcHR5IFZhbHVlS2V5LiBUaGlzIGhhcHBl
bnMgZm9yIGV4YW1wbGUgd2l0aCBDaGVjayBvcGVyYXRpb25zLgpAQCAtMjY0LDYgKzI3NSw4IEBA
IHByaXZhdGU6CiAgICAgICAgIGNhc2UgRnJhbWVQb2ludGVyOgogICAgICAgICBjYXNlIE5vcDoK
ICAgICAgICAgY2FzZSBQaGk6CisgICAgICAgIGNhc2UgSnVtcDoKKyAgICAgICAgY2FzZSBPb3Bz
OgogICAgICAgICAgICAgaWYgKFVOTElLRUxZKG51bUFyZ3MpKQogICAgICAgICAgICAgICAgIGJh
ZE9wY29kZShvcGNvZGUsIG51bUFyZ3MpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0yODQsNiAr
Mjk3LDggQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBEb3VibGVUb0Zsb2F0OgogICAgICAgICBj
YXNlIElUb0Y6CiAgICAgICAgIGNhc2UgQml0d2lzZUNhc3Q6CisgICAgICAgIGNhc2UgQnJhbmNo
OgorICAgICAgICBjYXNlIFJldHVybjoKICAgICAgICAgICAgIGlmIChVTkxJS0VMWShudW1Bcmdz
ICE9IDEpKQogICAgICAgICAgICAgICAgIGJhZE9wY29kZShvcGNvZGUsIG51bUFyZ3MpOwogICAg
ICAgICAgICAgYnJlYWs7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcAkocmV2
aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDYgQEAKICNpbmNsdWRlICJCM0NvbXB1dGVEaXZpc2lv
bk1hZ2ljLmgiCiAjaW5jbHVkZSAiQjNDb25zdDMyVmFsdWUuaCIKICNpbmNsdWRlICJCM0NvbnN0
UHRyVmFsdWUuaCIKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzRWZm
ZWN0cy5oIgogI2luY2x1ZGUgIkIzTWF0aEV4dHJhcy5oIgogI2luY2x1ZGUgIkIzTWVtb3J5VmFs
dWUuaCIKQEAgLTQ2LDcgKzQ1LDEwIEBACiAjaW5jbHVkZSAiQjNVcHNpbG9uVmFsdWUuaCIKICNp
bmNsdWRlICJCM1ZhbGlkYXRlLmgiCiAjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKKyNpbmNs
dWRlICJCM1ZhcmlhYmxlVmFsdWUuaCIKICNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKKyNpbmNs
dWRlICJGUFJJbmZvLmgiCisjaW5jbHVkZSAiR1BSSW5mby5oIgogI2luY2x1ZGUgIkluaXRpYWxp
emVUaHJlYWRpbmcuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiTGlua0J1
ZmZlci5oIgpAQCAtNTQsNiArNTYsNyBAQAogI2luY2x1ZGUgIlZNLmgiCiAjaW5jbHVkZSA8Y21h
dGg+CiAjaW5jbHVkZSA8c3RyaW5nPgorI2luY2x1ZGUgPHd0Zi9MaXN0RHVtcC5oPgogI2luY2x1
ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL051bWJlck9mQ29yZXMuaD4KICNpbmNsdWRl
IDx3dGYvVGhyZWFkaW5nLmg+CkBAIC03NSw2ICs3OCwxMSBAQCB1c2luZyBuYW1lc3BhY2UgSlND
OjpCMzsKIAogbmFtZXNwYWNlIHsKIAorYm9vbCBzaG91bGRCZVZlcmJvc2UoKQoreworICAgIHJl
dHVybiBzaG91bGREdW1wSVIoQjNNb2RlKTsKK30KKwogU3RhdGljTG9jayBjcmFzaExvY2s7CiAK
IC8vIE5vdGhpbmcgZmFuY3kgZm9yIG5vdzsgd2UganVzdCB1c2UgdGhlIGV4aXN0aW5nIFdURiBh
c3NlcnRpb24gbWFjaGluZXJ5LgpAQCAtMTk0LDcgKzIwMiw3IEBAIHZvaWQgdGVzdDQyKCkKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwogICAgIFZhbHVlKiBjb25zdDQyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIDQyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBjb25zdDQyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY29uc3Q0Mik7CiAKICAgICBDSEVDSyhjb21w
aWxlQW5kUnVuPGludD4ocHJvYykgPT0gNDIpOwogfQpAQCAtMjA0LDcgKzIxMiw3IEBAIHZvaWQg
dGVzdExvYWQ0MigpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKICAgICBpbnQgeCA9IDQyOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZh
bHVlPigKICAgICAgICAgICAgIHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwKQEAgLTIyMCw3
ICsyMjgsNyBAQCB2b2lkIHRlc3RMb2FkV2l0aE9mZnNldEltcGwoaW50MzJfdCBvZmZzCiAgICAg
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgICAgIGludDY0X3Qg
eCA9IC00MjsKICAgICAgICAgVmFsdWUqIGJhc2UgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9j
LCBMb2FkLCBJbnQ2NCwgT3JpZ2luKCksCkBAIC0yMzUsNyArMjQzLDcgQEAgdm9pZCB0ZXN0TG9h
ZFdpdGhPZmZzZXRJbXBsKGludDMyX3Qgb2ZmcwogICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwogICAgICAgICBpbnQzMl90IHggPSAtNDI7CiAgICAgICAgIFZhbHVl
KiBiYXNlID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxN
ZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgTG9hZCwgSW50MzIsIE9yaWdpbigp
LApAQCAtMjg4LDcgKzI5Niw3IEBAIHZvaWQgdGVzdEFyZyhpbnQgYXJndW1lbnQpCiB7CiAgICAg
UHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKSk7CiAKQEAgLTI5OSw3ICszMDcsNyBAQCB2b2lkIHRlc3RSZXR1cm5Db25z
dDY0KGludDY0X3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHBy
b2MsIE9yaWdpbigpLCB2YWx1ZSkpOwogCkBAIC0zMTEsNyArMzE5LDcgQEAgdm9pZCB0ZXN0QWRk
QXJnKGludCBhKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCB2YWx1ZSwgdmFsdWUpKTsKIApA
QCAtMzIyLDcgKzMzMCw3IEBAIHZvaWQgdGVzdEFkZEFyZ3MoaW50IGEsIGludCBiKQogewogICAg
IFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwK
QEAgLTMzNiw3ICszNDQsNyBAQCB2b2lkIHRlc3RBZGRBcmdJbW0oaW50IGEsIGludCBiKQogewog
ICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4o
KSwKQEAgLTM1MCw3ICszNTgsNyBAQCB2b2lkIHRlc3RBZGRJbW1BcmcoaW50IGEsIGludCBiKQog
ewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmln
aW4oKSwKQEAgLTM3MCw3ICszNzgsNyBAQCB2b2lkIHRlc3RBZGRBcmdNZW0oaW50NjRfdCBhLCBp
bnQ2NF90IGIpCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwKICAgICAgICAgbG9hZCk7CiAgICAg
cm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3Vs
dCwgYWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDApKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDAp
KTsKIAogICAgIGludDY0X3QgaW5wdXRPdXRwdXQgPSBiOwogICAgIENIRUNLKCFjb21waWxlQW5k
UnVuPGludDY0X3Q+KHByb2MsIGEsICZpbnB1dE91dHB1dCkpOwpAQCAtMzg2LDcgKzM5NCw3IEBA
IHZvaWQgdGVzdEFkZE1lbUFyZyhpbnQ2NF90IGEsIGludDY0X3QgYikKICAgICBWYWx1ZSogcmVz
dWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLAogICAgICAg
ICBsb2FkLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAK
ICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsICZhLCBiKSA9PSBhICsgYik7
CiB9CkBAIC00MDEsNyArNDA5LDcgQEAgdm9pZCB0ZXN0QWRkSW1tTWVtKGludDY0X3QgYSwgaW50
NjRfdCBiKQogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmln
aW4oKSwgYSksCiAgICAgICAgIGxvYWQpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1
ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGFkZHJlc3MpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBpbnQ2NF90IGlucHV0T3V0
cHV0ID0gYjsKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsICZpbnB1dE91dHB1
dCkpOwpAQCAtNDE0LDcgKzQyMiw3IEBAIHZvaWQgdGVzdEFkZEFyZzMyKGludCBhKQogICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIHZh
bHVlLCB2YWx1ZSkpOwogCkBAIC00MjUsNyArNDMzLDcgQEAgdm9pZCB0ZXN0QWRkQXJnczMyKGlu
dCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIEFkZCwgT3JpZ2luKCksCkBAIC00NDksNyArNDU3LDcgQEAgdm9pZCB0ZXN0QWRkQXJnTWVt
MzIoaW50MzJfdCBhLCBpbnQzMl90IAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZh
bHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCks
IGFyZ3VtZW50LCBsb2FkKTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2Ms
IFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29u
c3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgaW50MzJfdCBpbnB1dE91dHB1dCA9IGI7
CiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYSwgJmlucHV0T3V0cHV0
KSk7CkBAIC00NjUsNyArNDczLDcgQEAgdm9pZCB0ZXN0QWRkTWVtQXJnMzIoaW50MzJfdCBhLCBp
bnQzMl90IAogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSkpOwogICAgIFZhbHVl
KiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGxv
YWQsIGFyZ3VtZW50KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFu
ZFJ1bjxpbnQzMl90Pihwcm9jLCAmYSwgYikgPT0gYSArIGIpOwogfQpAQCAtNDgwLDcgKzQ4OCw3
IEBAIHZvaWQgdGVzdEFkZEltbU1lbTMyKGludDMyX3QgYSwgaW50MzJfdCAKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpLAogICAgICAgICBs
b2FkKTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmln
aW4oKSwgcmVzdWx0LCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgMCkpOwogCiAgICAgaW50MzJfdCBpbnB1dE91dHB1dCA9IGI7CiAgICAgQ0hFQ0so
IWNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAmaW5wdXRPdXRwdXQpKTsKQEAgLTQ5NSw3ICs1MDMs
NyBAQCB2b2lkIHRlc3RBZGRBcmdaZXJvSW1tWkRlZigpCiAgICAgICAgIHByb2MsIFRydW5jLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSogY29uc3RaZXJv
ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCkBAIC01
MTUsNyArNTIzLDcgQEAgdm9pZCB0ZXN0QWRkTG9hZFR3aWNlKCkKICAgICAgICAgVmFsdWUqIGxv
YWQgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9h
ZCwgSW50MzIsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRy
VmFsdWU+KHByb2MsIE9yaWdpbigpLCAmdmFsdWUpKTsKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGxvYWQsIGxvYWQpKTsKIApAQCAtNTMy
LDcgKzU0MCw3IEBAIHZvaWQgdGVzdEFkZEFyZ0RvdWJsZShkb3VibGUgYSkKICAgICBQcm9jZWR1
cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZh
bHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
QWRkLCBPcmlnaW4oKSwgdmFsdWUsIHZhbHVlKSk7CiAKQEAgLTU0NSw3ICs1NTMsNyBAQCB2b2lk
IHRlc3RBZGRBcmdzRG91YmxlKGRvdWJsZSBhLCBkb3VibGUgCiAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjAp
OwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMSk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTU1OCw3ICs1
NjYsNyBAQCB2b2lkIHRlc3RBZGRBcmdJbW1Eb3VibGUoZG91YmxlIGEsIGRvdWJsCiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjph
cmd1bWVudEZQUjApOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8Q29uc3RE
b3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBBZGQsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC01NzEsNyArNTc5LDcgQEAg
dm9pZCB0ZXN0QWRkSW1tQXJnRG91YmxlKGRvdWJsZSBhLCBkb3VibAogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVu
ZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHZh
bHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
RlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBP
cmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtNTg0LDcgKzU5Miw3IEBAIHZvaWQgdGVz
dEFkZEltbXNEb3VibGUoZG91YmxlIGEsIGRvdWJsZSAKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8Q29u
c3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiB2YWx1ZUIgPSBy
b290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwog
CkBAIC02MDAsNyArNjA4LDcgQEAgdm9pZCB0ZXN0QWRkQXJnRmxvYXQoZmxvYXQgYSkKICAgICBW
YWx1ZSogZmxvYXRWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNh
c3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBmbG9hdFZhbHVlLCBmbG9hdFZhbHVl
KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJp
dHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAog
CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSArIGEpKSk7CkBA
IC02MTgsNyArNjI2LDcgQEAgdm9pZCB0ZXN0QWRkQXJnc0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIp
CiAgICAgVmFsdWUqIGZsb2F0VmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBC
aXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MmludDMyKTsKICAgICBWYWx1ZSogcmVzdWx0
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBmbG9hdFZhbHVl
MSwgZmxvYXRWYWx1ZTIpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90
Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90Pihi
KSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhICsgYikpKTsKIH0KQEAgLTYzMyw3ICs2NDEsNyBA
QCB2b2lkIHRlc3RBZGRBcmdJbW1GbG9hdChmbG9hdCBhLCBmbG9hdCBiCiAgICAgVmFsdWUqIGNv
bnN0VmFsdWUgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgYik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
QWRkLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSwgY29uc3RWYWx1ZSk7CiAgICAgVmFsdWUqIHJlc3Vs
dDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCks
IHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNh
bChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSks
IGJpdHdpc2VfY2FzdDxpbnQzMl90PihhICsgYikpKTsKIH0KQEAgLTY0OCw3ICs2NTYsNyBAQCB2
b2lkIHRlc3RBZGRJbW1BcmdGbG9hdChmbG9hdCBhLCBmbG9hdCBiCiAgICAgVmFsdWUqIGNvbnN0
VmFsdWUgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
YSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRk
LCBPcmlnaW4oKSwgY29uc3RWYWx1ZSwgZmxvYXRWYWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMy
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJl
c3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChj
b21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSksIGJp
dHdpc2VfY2FzdDxpbnQzMl90PihhICsgYikpKTsKIH0KQEAgLTY2MSw3ICs2NjksNyBAQCB2b2lk
IHRlc3RBZGRJbW1zRmxvYXQoZmxvYXQgYSwgZmxvYXQgYikKICAgICBWYWx1ZSogY29uc3RWYWx1
ZTIgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7
CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBP
cmlnaW4oKSwgY29uc3RWYWx1ZTEsIGNvbnN0VmFsdWUyKTsKICAgICBWYWx1ZSogcmVzdWx0MzIg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVz
dWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNv
bXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYyksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhICsgYikp
KTsKIH0KQEAgLTY3Nyw3ICs2ODUsNyBAQCB2b2lkIHRlc3RBZGRBcmdGbG9hdFdpdGhVc2VsZXNz
RG91YmxlQ29uCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQWRkLCBPcmlnaW4oKSwgYXNEb3VibGUsIGFzRG91YmxlKTsKICAgICBWYWx1ZSogZmxvYXRS
ZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdp
bigpLCByZXN1bHQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMy
X3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90
PihhICsgYSkpKTsKIH0KQEAgLTY5Nyw3ICs3MDUsNyBAQCB2b2lkIHRlc3RBZGRBcmdzRmxvYXRX
aXRoVXNlbGVzc0RvdWJsZUNvCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYXNEb3VibGUxLCBhc0RvdWJsZTIpOwogICAgIFZh
bHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9G
bG9hdCwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVB
bmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nh
c3Q8aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSArIGIpKSk7CiB9CkBAIC03
MTksNyArNzI3LDcgQEAgdm9pZCB0ZXN0QWRkQXJnc0Zsb2F0V2l0aEVmZmVjdGZ1bERvdWJsZQog
ICAgIFZhbHVlKiBkb3VibGVBZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpOwogICAgIHJvb3QtPmFw
cGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGRvdWJs
ZUFkZHJlc3MpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQzMik7CiAKICAgICBkb3VibGUgZWZmZWN0ID0gMDsKICAgICBDSEVDSyhpc0lkZW50aWNh
bChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwg
Yml0d2lzZV9jYXN0PGludDMyX3Q+KGIpLCAmZWZmZWN0KSwgYml0d2lzZV9jYXN0PGludDMyX3Q+
KGEgKyBiKSkpOwpAQCAtNzMyLDcgKzc0MCw3IEBAIHZvaWQgdGVzdE11bEFyZyhpbnQgYSkKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZSA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwg
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjApKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4o
KSwgdmFsdWUsIHZhbHVlKSk7CiAKQEAgLTc1OSw3ICs3NjcsNyBAQCB2b2lkIHRlc3RNdWxBcmdT
dG9yZShpbnQgYSkKICAgICAgICAgcHJvYywgU3RvcmUsIE9yaWdpbigpLCBtdWwsCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJm11bFNsb3Qp
KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIENIRUNL
KCFjb21waWxlQW5kUnVuPGludD4ocHJvYywgYSkpOwpAQCAtNzc0LDcgKzc4Miw3IEBAIHZvaWQg
dGVzdE11bEFkZEFyZyhpbnQgYSkKICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRkLCBP
cmlnaW4oKSwKQEAgLTc4OCw3ICs3OTYsNyBAQCB2b2lkIHRlc3RNdWxBcmdzKGludCBhLCBpbnQg
YikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIE11bCwg
T3JpZ2luKCksCkBAIC04MDIsNyArODEwLDcgQEAgdm9pZCB0ZXN0TXVsQXJnSW1tKGludDY0X3Qg
YSwgaW50NjRfdCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgTXVsLCBPcmlnaW4oKSwKQEAgLTgxNiw3ICs4MjQsNyBAQCB2b2lkIHRlc3RNdWxJbW1B
cmcoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgTXVsLCBPcmlnaW4oKSwKQEAgLTgzMCw3ICs4MzgsNyBAQCB2b2lkIHRlc3RNdWxB
cmdzMzIoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgcHJvYywgTXVsLCBPcmlnaW4oKSwKQEAgLTg1Myw3ICs4NjEsNyBAQCB2b2lkIHRlc3RN
dWxMb2FkVHdpY2UoKQogICAgICAgICBWYWx1ZSogbG9hZCA9IHJvb3QtPmFwcGVuZE5ldzxNZW1v
cnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2luKCksCiAgICAg
ICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZ2
YWx1ZSkpOwotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBP
cmlnaW4oKSwgbG9hZCwgbG9hZCkpOwogCkBAIC04NzUsNyArODgzLDcgQEAgdm9pZCB0ZXN0TXVs
QWRkQXJnc0xlZnQoKQogICAgIFZhbHVlKiBhcmcyID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50
UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpOwogICAgIFZh
bHVlKiBtdWx0aXBsaWVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdp
bigpLCBhcmcwLCBhcmcxKTsKICAgICBWYWx1ZSogYWRkZWQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIG11bHRpcGxpZWQsIGFyZzIpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRk
ZWQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAtODk5LDcgKzkwNyw3
IEBAIHZvaWQgdGVzdE11bEFkZEFyZ3NSaWdodCgpCiAgICAgVmFsdWUqIGFyZzIgPSByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMik7CiAgICAgVmFsdWUqIG11bHRpcGxpZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIE11bCwgT3JpZ2luKCksIGFyZzEsIGFyZzIpOwogICAgIFZhbHVlKiBhZGRlZCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYXJnMCwgbXVsdGlwbGll
ZCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgYWRkZWQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBhZGRlZCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwog
CkBAIC05MjYsNyArOTM0LDcgQEAgdm9pZCB0ZXN0TXVsQWRkQXJnc0xlZnQzMigpCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIyKSk7CiAgICAgVmFsdWUqIG11bHRpcGxpZWQgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGFyZzAsIGFyZzEpOwogICAgIFZhbHVlKiBh
ZGRlZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgbXVsdGlw
bGllZCwgYXJnMik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgYWRkZWQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxl
KHByb2MpOwogCkBAIC05NTMsNyArOTYxLDcgQEAgdm9pZCB0ZXN0TXVsQWRkQXJnc1JpZ2h0MzIo
KQogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMikpOwogICAgIFZhbHVlKiBtdWx0aXBsaWVkID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBhcmcxLCBhcmcyKTsKICAg
ICBWYWx1ZSogYWRkZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2lu
KCksIGFyZzAsIG11bHRpcGxpZWQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOwogCiAgICAgYXV0byBjb2Rl
ID0gY29tcGlsZShwcm9jKTsKIApAQCAtOTc3LDcgKzk4NSw3IEBAIHZvaWQgdGVzdE11bFN1YkFy
Z3NMZWZ0KCkKICAgICBWYWx1ZSogYXJnMiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKTsKICAgICBWYWx1ZSog
bXVsdGlwbGllZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwg
YXJnMCwgYXJnMSk7CiAgICAgVmFsdWUqIGFkZGVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBTdWIsIE9yaWdpbigpLCBtdWx0aXBsaWVkLCBhcmcyKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsK
IAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKQEAgLTEwMDEsNyArMTAwOSw3IEBA
IHZvaWQgdGVzdE11bFN1YkFyZ3NSaWdodCgpCiAgICAgVmFsdWUqIGFyZzIgPSByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMik7CiAgICAgVmFsdWUqIG11bHRpcGxpZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIE11bCwgT3JpZ2luKCksIGFyZzEsIGFyZzIpOwogICAgIFZhbHVlKiBhZGRlZCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgYXJnMCwgbXVsdGlwbGllZCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgYWRkZWQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBhZGRlZCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBA
IC0xMDI4LDcgKzEwMzYsNyBAQCB2b2lkIHRlc3RNdWxTdWJBcmdzTGVmdDMyKCkKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjIpKTsKICAgICBWYWx1ZSogbXVsdGlwbGllZCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgYXJnMCwgYXJnMSk7CiAgICAgVmFsdWUqIGFk
ZGVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBtdWx0aXBs
aWVkLCBhcmcyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBhZGRlZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUo
cHJvYyk7CiAKQEAgLTEwNTUsNyArMTA2Myw3IEBAIHZvaWQgdGVzdE11bFN1YkFyZ3NSaWdodDMy
KCkKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpKTsKICAgICBWYWx1ZSogbXVsdGlwbGllZCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgYXJnMSwgYXJnMik7CiAg
ICAgVmFsdWUqIGFkZGVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdp
bigpLCBhcmcwLCBtdWx0aXBsaWVkKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKIAogICAgIGF1dG8gY29k
ZSA9IGNvbXBpbGUocHJvYyk7CiAKQEAgLTEwNzksNyArMTA4Nyw3IEBAIHZvaWQgdGVzdE11bE5l
Z0FyZ3MoKQogICAgIFZhbHVlKiBtdWx0aXBsaWVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBNdWwsIE9yaWdpbigpLCBhcmcwLCBhcmcxKTsKICAgICBWYWx1ZSogemVybyA9IHJvb3Qt
PmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKTsKICAgICBWYWx1ZSog
YWRkZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIHplcm8s
IG11bHRpcGxpZWQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIGFkZGVkKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGls
ZShwcm9jKTsKIApAQCAtMTEwMyw3ICsxMTExLDcgQEAgdm9pZCB0ZXN0TXVsTmVnQXJnczMyKCkK
ICAgICBWYWx1ZSogbXVsdGlwbGllZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVs
LCBPcmlnaW4oKSwgYXJnMCwgYXJnMSk7CiAgICAgVmFsdWUqIHplcm8gPSByb290LT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCk7CiAgICAgVmFsdWUqIGFkZGVkID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCB6ZXJvLCBtdWx0aXBs
aWVkKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBhZGRlZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIGFkZGVkKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7
CiAKQEAgLTExMjAsNyArMTEyOCw3IEBAIHZvaWQgdGVzdE11bEFyZ0RvdWJsZShkb3VibGUgYSkK
ICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwogICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgdmFsdWUsIHZhbHVlKSk7CiAKQEAgLTExMzMsNyAr
MTE0MSw3IEBAIHZvaWQgdGVzdE11bEFyZ3NEb3VibGUoZG91YmxlIGEsIGRvdWJsZSAKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86
OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIxKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsK
IApAQCAtMTE0Niw3ICsxMTU0LDcgQEAgdm9pZCB0ZXN0TXVsQXJnSW1tRG91YmxlKGRvdWJsZSBh
LCBkb3VibAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFs
dWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+
YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAt
MTE1OSw3ICsxMTY3LDcgQEAgdm9pZCB0ZXN0TXVsSW1tQXJnRG91YmxlKGRvdWJsZSBhLCBkb3Vi
bAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZh
bHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
YSk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTE3Miw3
ICsxMTgwLDcgQEAgdm9pZCB0ZXN0TXVsSW1tc0RvdWJsZShkb3VibGUgYSwgZG91YmxlIAogICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9
IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAg
ICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgYik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCks
IHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTExODgsNyArMTE5Niw3IEBAIHZvaWQgdGVzdE11bEFy
Z0Zsb2F0KGZsb2F0IGEpCiAgICAgVmFsdWUqIGZsb2F0VmFsdWUgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFs
dWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwg
ZmxvYXRWYWx1ZSwgZmxvYXRWYWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQzMik7CiAKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRS
dW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0
PGludDMyX3Q+KGEgKiBhKSkpOwpAQCAtMTIwNiw3ICsxMjE0LDcgQEAgdm9pZCB0ZXN0TXVsQXJn
c0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIpCiAgICAgVmFsdWUqIGZsb2F0VmFsdWUyID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50Mmlu
dDMyKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBN
dWwsIE9yaWdpbigpLCBmbG9hdFZhbHVlMSwgZmxvYXRWYWx1ZTIpOwogICAgIFZhbHVlKiByZXN1
bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigp
LCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGlj
YWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSks
IGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhICogYikp
KTsKIH0KQEAgLTEyMjEsNyArMTIyOSw3IEBAIHZvaWQgdGVzdE11bEFyZ0ltbUZsb2F0KGZsb2F0
IGEsIGZsb2F0IGIKICAgICBWYWx1ZSogY29uc3RWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25z
dEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBmbG9hdFZhbHVlLCBjb25z
dFZhbHVlKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMy
KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywg
Yml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgKiBiKSkp
OwogfQpAQCAtMTIzNiw3ICsxMjQ0LDcgQEAgdm9pZCB0ZXN0TXVsSW1tQXJnRmxvYXQoZmxvYXQg
YSwgZmxvYXQgYgogICAgIFZhbHVlKiBjb25zdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0
RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGNvbnN0VmFsdWUsIGZsb2F0
VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIp
OwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBi
aXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAqIGIpKSk7
CiB9CkBAIC0xMjQ5LDcgKzEyNTcsNyBAQCB2b2lkIHRlc3RNdWxJbW1zRmxvYXQoZmxvYXQgYSwg
ZmxvYXQgYikKICAgICBWYWx1ZSogY29uc3RWYWx1ZTIgPSByb290LT5hcHBlbmROZXc8Q29uc3RG
bG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgY29uc3RWYWx1ZTEsIGNvbnN0
VmFsdWUyKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMy
KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYyks
IGJpdHdpc2VfY2FzdDxpbnQzMl90PihhICogYikpKTsKIH0KQEAgLTEyNjUsNyArMTI3Myw3IEBA
IHZvaWQgdGVzdE11bEFyZ0Zsb2F0V2l0aFVzZWxlc3NEb3VibGVDb24KICAgICBWYWx1ZSogcmVz
dWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBhc0RvdWJs
ZSwgYXNEb3VibGUpOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgVmFsdWUq
IHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3Jp
Z2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNL
KGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgKiBhKSkpOwogfQpAQCAtMTI4NSw3
ICsxMjkzLDcgQEAgdm9pZCB0ZXN0TXVsQXJnc0Zsb2F0V2l0aFVzZWxlc3NEb3VibGVDbwogICAg
IFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2lu
KCksIGFzRG91YmxlMSwgYXNEb3VibGUyKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCByZXN1bHQp
OwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0
d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7
CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJp
dHdpc2VfY2FzdDxpbnQzMl90PihhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0d2lz
ZV9jYXN0PGludDMyX3Q+KGEgKiBiKSkpOwogfQpAQCAtMTMwNyw3ICsxMzE1LDcgQEAgdm9pZCB0
ZXN0TXVsQXJnc0Zsb2F0V2l0aEVmZmVjdGZ1bERvdWJsZQogICAgIFZhbHVlKiBkb3VibGVNdWxy
ZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjIpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4o
cHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGRvdWJsZU11bHJlc3MpOwogICAgIFZhbHVl
KiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9y
aWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBkb3Vi
bGUgZWZmZWN0ID0gMDsKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMy
X3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+
KGIpLCAmZWZmZWN0KSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgKiBiKSkpOwpAQCAtMTMxOSw3
ICsxMzI3LDcgQEAgdm9pZCB0ZXN0RGl2QXJnRG91YmxlKGRvdWJsZSBhKQogICAgIFByb2NlZHVy
ZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFs
dWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBE
aXYsIE9yaWdpbigpLCB2YWx1ZSwgdmFsdWUpKTsKIApAQCAtMTMzMiw3ICsxMzQwLDcgQEAgdm9p
ZCB0ZXN0RGl2QXJnc0RvdWJsZShkb3VibGUgYSwgZG91YmxlIAogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIw
KTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjEpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBEaXYsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC0xMzQ1LDcg
KzEzNTMsNyBAQCB2b2lkIHRlc3REaXZBcmdJbW1Eb3VibGUoZG91YmxlIGEsIGRvdWJsCiAgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0g
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZv
Ojphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8Q29u
c3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBEaXYsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC0xMzU4LDcgKzEzNjYs
NyBAQCB2b2lkIHRlc3REaXZJbW1BcmdEb3VibGUoZG91YmxlIGEsIGRvdWJsCiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+
YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1
ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBE
aXYsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC0xMzcxLDcgKzEzNzksNyBAQCB2
b2lkIHRlc3REaXZJbW1zRG91YmxlKGRvdWJsZSBhLCBkb3VibGUgCiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5k
TmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogdmFs
dWVCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBi
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1
ZUIpKTsKIApAQCAtMTM4Nyw3ICsxMzk1LDcgQEAgdm9pZCB0ZXN0RGl2QXJnRmxvYXQoZmxvYXQg
YSkKICAgICBWYWx1ZSogZmxvYXRWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
Qml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1ZSogcmVzdWx0ID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEaXYsIE9yaWdpbigpLCBmbG9hdFZhbHVlLCBm
bG9hdFZhbHVlKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dDMyKTsKIAogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihw
cm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAv
IGEpKSk7CkBAIC0xNDA1LDcgKzE0MTMsNyBAQCB2b2lkIHRlc3REaXZBcmdzRmxvYXQoZmxvYXQg
YSwgZmxvYXQgYikKICAgICBWYWx1ZSogZmxvYXRWYWx1ZTIgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQyaW50MzIpOwogICAgIFZh
bHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERpdiwgT3JpZ2luKCks
IGZsb2F0VmFsdWUxLCBmbG9hdFZhbHVlMik7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5k
UnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgYml0d2lzZV9jYXN0
PGludDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLyBiKSkpOwogfQpAQCAtMTQy
MCw3ICsxNDI4LDcgQEAgdm9pZCB0ZXN0RGl2QXJnSW1tRmxvYXQoZmxvYXQgYSwgZmxvYXQgYgog
ICAgIFZhbHVlKiBjb25zdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIERpdiwgT3JpZ2luKCksIGZsb2F0VmFsdWUsIGNvbnN0VmFsdWUpOwogICAg
IFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNh
c3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hF
Q0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAvIGIpKSk7CiB9CkBAIC0xNDM1
LDcgKzE0NDMsNyBAQCB2b2lkIHRlc3REaXZJbW1BcmdGbG9hdChmbG9hdCBhLCBmbG9hdCBiCiAg
ICAgVmFsdWUqIGNvbnN0VmFsdWUgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwgY29uc3RWYWx1ZSwgZmxvYXRWYWx1ZSk7CiAgICAg
VmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2Fz
dCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVD
Syhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxp
bnQzMl90PihiKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhIC8gYikpKTsKIH0KQEAgLTE0NDgs
NyArMTQ1Niw3IEBAIHZvaWQgdGVzdERpdkltbXNGbG9hdChmbG9hdCBhLCBmbG9hdCBiKQogICAg
IFZhbHVlKiBjb25zdFZhbHVlMiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBiKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBEaXYsIE9yaWdpbigpLCBjb25zdFZhbHVlMSwgY29uc3RWYWx1ZTIpOwogICAg
IFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNh
c3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hF
Q0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jKSwgYml0d2lzZV9jYXN0
PGludDMyX3Q+KGEgLyBiKSkpOwogfQpAQCAtMTQ1OCw3ICsxNDY2LDcgQEAgdm9pZCB0ZXN0TW9k
QXJnRG91YmxlKGRvdWJsZSBhKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQ
UjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigpLCB2YWx1ZSwgdmFs
dWUpKTsKIApAQCAtMTQ3MSw3ICsxNDc5LDcgQEAgdm9pZCB0ZXN0TW9kQXJnc0RvdWJsZShkb3Vi
bGUgYSwgZG91YmxlIAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAg
ICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogdmFsdWVCID0g
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZv
Ojphcmd1bWVudEZQUjEpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigp
LCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC0xNDg0LDcgKzE0OTIsNyBAQCB2b2lkIHRlc3RNb2RB
cmdJbW1Eb3VibGUoZG91YmxlIGEsIGRvdWJsCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50
UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZh
bHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIGIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigpLCB2YWx1
ZUEsIHZhbHVlQikpOwogCkBAIC0xNDk3LDcgKzE1MDUsNyBAQCB2b2lkIHRlc3RNb2RJbW1BcmdE
b3VibGUoZG91YmxlIGEsIGRvdWJsCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQ
UjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigpLCB2YWx1ZUEsIHZh
bHVlQikpOwogCkBAIC0xNTEwLDcgKzE1MTgsNyBAQCB2b2lkIHRlc3RNb2RJbW1zRG91YmxlKGRv
dWJsZSBhLCBkb3VibGUgCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
ICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PENv
bnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgTW9kLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTUyNiw3ICsxNTM0
LDcgQEAgdm9pZCB0ZXN0TW9kQXJnRmxvYXQoZmxvYXQgYSkKICAgICBWYWx1ZSogZmxvYXRWYWx1
ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBh
cmd1bWVudDMyKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBNb2QsIE9yaWdpbigpLCBmbG9hdFZhbHVlLCBmbG9hdFZhbHVlKTsKICAgICBWYWx1ZSog
cmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmln
aW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogCiAgICAgQ0hFQ0soaXNJ
ZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJf
dD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KGZtb2QoYSwg
YSkpKSkpOwpAQCAtMTU0NCw3ICsxNTUyLDcgQEAgdm9pZCB0ZXN0TW9kQXJnc0Zsb2F0KGZsb2F0
IGEsIGZsb2F0IGIpCiAgICAgVmFsdWUqIGZsb2F0VmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MmludDMyKTsKICAgICBW
YWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigp
LCBmbG9hdFZhbHVlMSwgZmxvYXRWYWx1ZTIpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFu
ZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2Fz
dDxpbnQzMl90PihiKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihzdGF0aWNfY2FzdDxmbG9hdD4o
Zm1vZChhLCBiKSkpKSk7CiB9CkBAIC0xNTU5LDcgKzE1NjcsNyBAQCB2b2lkIHRlc3RNb2RBcmdJ
bW1GbG9hdChmbG9hdCBhLCBmbG9hdCBiCiAgICAgVmFsdWUqIGNvbnN0VmFsdWUgPSByb290LT5h
cHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7CiAgICAgVmFsdWUq
IHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgZmxv
YXRWYWx1ZSwgY29uc3RWYWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGlu
dDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQz
Ml90PihzdGF0aWNfY2FzdDxmbG9hdD4oZm1vZChhLCBiKSkpKSk7CiB9CkBAIC0xNTc0LDcgKzE1
ODIsNyBAQCB2b2lkIHRlc3RNb2RJbW1BcmdGbG9hdChmbG9hdCBhLCBmbG9hdCBiCiAgICAgVmFs
dWUqIGNvbnN0VmFsdWUgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgTW9kLCBPcmlnaW4oKSwgY29uc3RWYWx1ZSwgZmxvYXRWYWx1ZSk7CiAgICAgVmFsdWUq
IHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3Jp
Z2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lk
ZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90
PihiKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihzdGF0aWNfY2FzdDxmbG9hdD4oZm1vZChhLCBi
KSkpKSk7CiB9CkBAIC0xNTg3LDcgKzE1OTUsNyBAQCB2b2lkIHRlc3RNb2RJbW1zRmxvYXQoZmxv
YXQgYSwgZmxvYXQgYikKICAgICBWYWx1ZSogY29uc3RWYWx1ZTIgPSByb290LT5hcHBlbmROZXc8
Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7CiAgICAgVmFsdWUqIHJlc3VsdCA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgY29uc3RWYWx1ZTEs
IGNvbnN0VmFsdWUyKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
c3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4o
cHJvYyksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihzdGF0aWNfY2FzdDxmbG9hdD4oZm1vZChhLCBi
KSkpKSk7CiB9CkBAIC0xNjAzLDcgKzE2MTEsNyBAQCB2b2lkIHRlc3REaXZBcmdGbG9hdFdpdGhV
c2VsZXNzRG91YmxlQ29uCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwgYXNEb3VibGUsIGFzRG91YmxlKTsKICAgICBWYWx1ZSog
ZmxvYXRSZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQs
IE9yaWdpbigpLCByZXN1bHQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVu
PGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxp
bnQzMl90PihhIC8gYSkpKTsKIH0KQEAgLTE2MjMsNyArMTYzMSw3IEBAIHZvaWQgdGVzdERpdkFy
Z3NGbG9hdFdpdGhVc2VsZXNzRG91YmxlQ28KICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBEaXYsIE9yaWdpbigpLCBhc0RvdWJsZTEsIGFzRG91YmxlMik7
CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBE
b3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRS
ZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwo
Y29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJp
dHdpc2VfY2FzdDxpbnQzMl90PihiKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhIC8gYikpKTsK
IH0KQEAgLTE2NDUsNyArMTY1Myw3IEBAIHZvaWQgdGVzdERpdkFyZ3NGbG9hdFdpdGhFZmZlY3Rm
dWxEb3VibGUKICAgICBWYWx1ZSogZG91YmxlRGl2cmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKTsKICAg
ICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVz
dWx0LCBkb3VibGVEaXZyZXNzKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
c3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgZG91YmxlIGVmZmVjdCA9IDA7CiAgICAgQ0hFQ0so
aXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50
MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSwgJmVmZmVjdCksIGJpdHdpc2VfY2Fz
dDxpbnQzMl90PihhIC8gYikpKTsKQEAgLTE2NTcsNyArMTY2NSw3IEBAIHZvaWQgdGVzdFN1YkFy
ZyhpbnQgYSkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgdmFsdWUsIHZhbHVlKSk7CiAKQEAg
LTE2NjgsNyArMTY3Niw3IEBAIHZvaWQgdGVzdFN1YkFyZ3MoaW50IGEsIGludCBiKQogewogICAg
IFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU3ViLCBPcmlnaW4oKSwK
QEAgLTE2ODIsNyArMTY5MCw3IEBAIHZvaWQgdGVzdFN1YkFyZ0ltbShpbnQ2NF90IGEsIGludDY0
X3QgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFN1
YiwgT3JpZ2luKCksCkBAIC0xNzAzLDcgKzE3MTEsNyBAQCB2b2lkIHRlc3ROZWdWYWx1ZVN1Yk9u
ZShpbnQgYSkKICAgICBWYWx1ZSogbmVnQXJndW1lbnRNaW51c09uZSA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwKICAgICAgICAgbmVnQXJndW1lbnQsCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
bmVnQXJndW1lbnRNaW51c09uZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIG5lZ0FyZ3VtZW50TWludXNPbmUpOwogICAgIENIRUNLKGNv
bXBpbGVBbmRSdW48aW50Pihwcm9jLCBhKSA9PSAtYSAtIDEpOwogfQogCkBAIC0xNzExLDcgKzE3
MTksNyBAQCB2b2lkIHRlc3RTdWJJbW1BcmcoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVy
ZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU3ViLCBPcmlnaW4oKSwKQEAgLTE3MzAs
NyArMTczOCw3IEBAIHZvaWQgdGVzdFN1YkFyZ01lbShpbnQ2NF90IGEsIGludDY0X3QgYikKICAg
ICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCksCiAgICAgICAgIGxvYWQpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJlc3VsdCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIGEsICZi
KSA9PSBhIC0gYik7CiB9CkBAIC0xNzQ1LDcgKzE3NTMsNyBAQCB2b2lkIHRlc3RTdWJNZW1Bcmco
aW50NjRfdCBhLCBpbnQ2NF90IGIpCiAgICAgICAgIGxvYWQsCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIxKSk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3Jp
Z2luKCksIHJlc3VsdCwgYWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIDApKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDApKTsKIAogICAgIGludDY0X3QgaW5wdXRPdXRwdXQgPSBhOwogICAgIENIRUNL
KCFjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsICZpbnB1dE91dHB1dCwgYikpOwpAQCAtMTc2
Miw3ICsxNzcwLDcgQEAgdm9pZCB0ZXN0U3ViSW1tTWVtKGludDY0X3QgYSwgaW50NjRfdCBiKQog
ICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSks
CiAgICAgICAgIGxvYWQpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywg
U3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBpbnQ2NF90IGlucHV0T3V0cHV0ID0gYjsK
ICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsICZpbnB1dE91dHB1dCkpOwpAQCAt
MTc3OSw3ICsxNzg3LDcgQEAgdm9pZCB0ZXN0U3ViTWVtSW1tKGludDY0X3QgYSwgaW50NjRfdCBi
KQogICAgICAgICBsb2FkLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgYikpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJv
YywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMy
VmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBpbnQ2NF90IGlucHV0T3V0cHV0ID0g
YTsKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsICZpbnB1dE91dHB1dCkpOwpA
QCAtMTc5MSw3ICsxNzk5LDcgQEAgdm9pZCB0ZXN0U3ViQXJnczMyKGludCBhLCBpbnQgYikKIHsK
ICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFN1YiwgT3JpZ2lu
KCksCkBAIC0xODA5LDcgKzE4MTcsNyBAQCB2b2lkIHRlc3RTdWJBcmdJbW0zMihpbnQgYSwgaW50
IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTdWIs
IE9yaWdpbigpLApAQCAtMTgyNSw3ICsxODMzLDcgQEAgdm9pZCB0ZXN0U3ViSW1tQXJnMzIoaW50
IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgU3ViLCBPcmlnaW4oKSwKQEAgLTE4NDcsNyArMTg1NSw3IEBAIHZvaWQgdGVzdFN1Yk1lbUFy
ZzMyKGludDMyX3QgYSwgaW50MzJfdCAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50
UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKTsKICAgICBW
YWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigp
LCBsb2FkLCBhcmd1bWVudCk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9j
LCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgYWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGludDMyX3QgaW5wdXRPdXRwdXQgPSBh
OwogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsICZpbnB1dE91dHB1dCwg
YikpOwpAQCAtMTg2Myw3ICsxODcxLDcgQEAgdm9pZCB0ZXN0U3ViQXJnTWVtMzIoaW50MzJfdCBh
LCBpbnQzMl90IAogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZh
bHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCks
IGFyZ3VtZW50LCBsb2FkKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGls
ZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBhLCAmYikgPT0gYSAtIGIpOwogfQpAQCAtMTg3OCw3ICsx
ODg2LDcgQEAgdm9pZCB0ZXN0U3ViSW1tTWVtMzIoaW50MzJfdCBhLCBpbnQzMl90IAogICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSksCiAgICAg
ICAgIGxvYWQpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUs
IE9yaWdpbigpLCByZXN1bHQsIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBpbnQzMl90IGlucHV0T3V0cHV0ID0gYjsKICAgICBD
SEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsICZpbnB1dE91dHB1dCkpOwpAQCAtMTg5NSw3
ICsxOTAzLDcgQEAgdm9pZCB0ZXN0U3ViTWVtSW1tMzIoaW50MzJfdCBhLCBpbnQzMl90IAogICAg
ICAgICBsb2FkLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgYikpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3Rv
cmUsIE9yaWdpbigpLCByZXN1bHQsIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMy
VmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBpbnQzMl90IGlucHV0T3V0cHV0ID0gYTsKICAg
ICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsICZpbnB1dE91dHB1dCkpOwpAQCAtMTkx
NCw3ICsxOTIyLDcgQEAgdm9pZCB0ZXN0TmVnVmFsdWVTdWJPbmUzMihpbnQgYSkKICAgICBWYWx1
ZSogbmVnQXJndW1lbnRNaW51c09uZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3Vi
LCBPcmlnaW4oKSwKICAgICAgICAgbmVnQXJndW1lbnQsCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgbmVnQXJndW1lbnRNaW51c09u
ZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIG5lZ0FyZ3VtZW50TWludXNPbmUpOwogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihw
cm9jLCBhKSA9PSAtYSAtIDEpOwogfQogCkBAIC0xOTIzLDcgKzE5MzEsNyBAQCB2b2lkIHRlc3RT
dWJBcmdEb3VibGUoZG91YmxlIGEpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50
RlBSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIHZhbHVlLCB2
YWx1ZSkpOwogCkBAIC0xOTM2LDcgKzE5NDQsNyBAQCB2b2lkIHRlc3RTdWJBcmdzRG91YmxlKGRv
dWJsZSBhLCBkb3VibGUgCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
ICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiB2YWx1ZUIg
PSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUklu
Zm86OmFyZ3VtZW50RlBSMSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2lu
KCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTE5NDksNyArMTk1Nyw3IEBAIHZvaWQgdGVzdFN1
YkFyZ0ltbURvdWJsZShkb3VibGUgYSwgZG91YmwKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAg
VmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgYik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIHZh
bHVlQSwgdmFsdWVCKSk7CiAKQEAgLTE5NjIsNyArMTk3MCw3IEBAIHZvaWQgdGVzdFN1YkltbUFy
Z0RvdWJsZShkb3VibGUgYSwgZG91YmwKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50
RlBSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIHZhbHVlQSwg
dmFsdWVCKSk7CiAKQEAgLTE5NzUsNyArMTk4Myw3IEBAIHZvaWQgdGVzdFN1YkltbXNEb3VibGUo
ZG91YmxlIGEsIGRvdWJsZSAKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8
Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBTdWIsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogICAgIApAQCAtMTk5MSw3
ICsxOTk5LDcgQEAgdm9pZCB0ZXN0U3ViQXJnRmxvYXQoZmxvYXQgYSkKICAgICBWYWx1ZSogZmxv
YXRWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdp
bigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBmbG9hdFZhbHVlLCBmbG9hdFZhbHVlKTsKICAgICBW
YWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0
LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogCiAgICAgQ0hF
Q0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAtIGEpKSk7CkBAIC0yMDA5LDcg
KzIwMTcsNyBAQCB2b2lkIHRlc3RTdWJBcmdzRmxvYXQoZmxvYXQgYSwgZmxvYXQgYikKICAgICBW
YWx1ZSogZmxvYXRWYWx1ZTIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VD
YXN0LCBPcmlnaW4oKSwgYXJndW1lbnQyaW50MzIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIGZsb2F0VmFsdWUxLCBmbG9h
dFZhbHVlMik7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQz
Mik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2Ms
IGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0
d2lzZV9jYXN0PGludDMyX3Q+KGEgLSBiKSkpOwogfQpAQCAtMjAyNCw3ICsyMDMyLDcgQEAgdm9p
ZCB0ZXN0U3ViQXJnSW1tRmxvYXQoZmxvYXQgYSwgZmxvYXQgYgogICAgIFZhbHVlKiBjb25zdFZh
bHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIp
OwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1Yiwg
T3JpZ2luKCksIGZsb2F0VmFsdWUsIGNvbnN0VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1
bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29t
cGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oYSAtIGIpKSk7CiB9CkBAIC0yMDM5LDcgKzIwNDcsNyBAQCB2b2lk
IHRlc3RTdWJJbW1BcmdGbG9hdChmbG9hdCBhLCBmbG9hdCBiCiAgICAgVmFsdWUqIGNvbnN0VmFs
dWUgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7
CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBP
cmlnaW4oKSwgY29uc3RWYWx1ZSwgZmxvYXRWYWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3Vs
dCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21w
aWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSksIGJpdHdp
c2VfY2FzdDxpbnQzMl90PihhIC0gYikpKTsKIH0KQEAgLTIwNTIsNyArMjA2MCw3IEBAIHZvaWQg
dGVzdFN1YkltbXNGbG9hdChmbG9hdCBhLCBmbG9hdCBiKQogICAgIFZhbHVlKiBjb25zdFZhbHVl
MiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsK
ICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9y
aWdpbigpLCBjb25zdFZhbHVlMSwgY29uc3RWYWx1ZTIpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1
bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29t
cGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLSBiKSkp
OwogfQpAQCAtMjA2OCw3ICsyMDc2LDcgQEAgdm9pZCB0ZXN0U3ViQXJnRmxvYXRXaXRoVXNlbGVz
c0RvdWJsZUNvbgogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIFN1YiwgT3JpZ2luKCksIGFzRG91YmxlLCBhc0RvdWJsZSk7CiAgICAgVmFsdWUqIGZsb2F0
UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmln
aW4oKSwgcmVzdWx0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMy
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQz
Ml90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJf
dD4oYSAtIGEpKSk7CiB9CkBAIC0yMDg4LDcgKzIwOTYsNyBAQCB2b2lkIHRlc3RTdWJBcmdzRmxv
YXRXaXRoVXNlbGVzc0RvdWJsZUNvCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgYXNEb3VibGUxLCBhc0RvdWJsZTIpOwogICAg
IFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91Ymxl
VG9GbG9hdCwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBp
bGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNl
X2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAtIGIpKSk7CiB9CkBA
IC0yMTEwLDcgKzIxMTgsNyBAQCB2b2lkIHRlc3RTdWJBcmdzRmxvYXRXaXRoRWZmZWN0ZnVsRG91
YmxlCiAgICAgVmFsdWUqIGRvdWJsZVN1YnJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMik7CiAgICAgcm9v
dC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwg
ZG91YmxlU3VicmVzcyk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQz
Mik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdDMyKTsKIAogICAgIGRvdWJsZSBlZmZlY3QgPSAwOwogICAgIENIRUNLKGlzSWRl
bnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+
KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYiksICZlZmZlY3QpLCBiaXR3aXNlX2Nhc3Q8aW50
MzJfdD4oYSAtIGIpKSk7CkBAIC0yMTIxLDcgKzIxMjksNyBAQCB2b2lkIHRlc3RCaXRBbmRBcmdz
KGludDY0X3QgYSwgaW50NjRfdCBiCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMjEzNiw3ICsyMTQ0LDcgQEAgdm9p
ZCB0ZXN0Qml0QW5kU2FtZUFyZyhpbnQ2NF90IGEpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQg
PSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTIxNTAsNyArMjE1OCw3IEBAIHZvaWQgdGVzdEJpdEFu
ZEltbXMoaW50NjRfdCBhLCBpbnQ2NF90IGIKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0yMTY0LDcgKzIxNzIsNyBA
QCB2b2lkIHRlc3RCaXRBbmRBcmdJbW0oaW50NjRfdCBhLCBpbnQ2NF90CiB7CiAgICAgUHJvY2Vk
dXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAt
MjE3OCw3ICsyMTg2LDcgQEAgdm9pZCB0ZXN0Qml0QW5kSW1tQXJnKGludDY0X3QgYSwgaW50NjRf
dAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5k
LCBPcmlnaW4oKSwKQEAgLTIxOTYsNyArMjIwNCw3IEBAIHZvaWQgdGVzdEJpdEFuZEJpdEFuZEFy
Z0ltbUltbShpbnQ2NF90IGEKICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgYikpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0yMjE0LDcgKzIyMjIsNyBAQCB2b2lkIHRlc3RC
aXRBbmRJbW1CaXRBbmRBcmdJbW0oaW50NjRfdCBhCiAgICAgICAgIHByb2MsIEJpdEFuZCwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGMpKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
CiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMjIyOCw3ICsyMjM2LDcg
QEAgdm9pZCB0ZXN0Qml0QW5kQXJnczMyKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUg
cHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0yMjQ4
LDcgKzIyNTYsNyBAQCB2b2lkIHRlc3RCaXRBbmRTYW1lQXJnMzIoaW50IGEpCiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjApKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRB
bmQsIE9yaWdpbigpLApAQCAtMjI2Miw3ICsyMjcwLDcgQEAgdm9pZCB0ZXN0Qml0QW5kSW1tczMy
KGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0yMjc2LDcgKzIyODQsNyBAQCB2b2lkIHRlc3RC
aXRBbmRBcmdJbW0zMihpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
CiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMjI5Miw3ICsyMzAwLDcg
QEAgdm9pZCB0ZXN0Qml0QW5kSW1tQXJnMzIoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVy
ZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTIz
MTQsNyArMjMyMiw3IEBAIHZvaWQgdGVzdEJpdEFuZEJpdEFuZEFyZ0ltbUltbTMyKGludCBhLCAK
ICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwKSksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBiKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0
QW5kLCBPcmlnaW4oKSwKQEAgLTIzMzQsNyArMjM0Miw3IEBAIHZvaWQgdGVzdEJpdEFuZEltbUJp
dEFuZEFyZ0ltbTMyKGludCBhLCAKICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwK
ICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBjKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAog
ICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTIzNjEsNyArMjM2OSw3IEBA
IHZvaWQgdGVzdEJpdEFuZFdpdGhNYXNrUmV0dXJuc0Jvb2xlYW5zKGkKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC01KSk7CiAKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWxl
Y3QpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBzZWxlY3QpOwogCiAgICAgaW50NjRfdCBleHBlY3RlZCA9IChhID09IGIpID8gLTUgOiA0
MjsKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIGEsIGIpID09IGV4cGVj
dGVkKTsKQEAgLTIzNzgsNyArMjM4Niw3IEBAIHZvaWQgdGVzdEJpdEFuZEFyZ0RvdWJsZShkb3Vi
bGUgYSkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVl
KiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXRBbmQsIE9yaWdpbigpLCBhcmd1bWVudCwgYXJndW1l
bnQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxl
QW5kUnVuPGRvdWJsZT4ocHJvYywgYSksIGJpdEFuZERvdWJsZShhLCBhKSkpOwogfQpAQCAtMjM5
MCw3ICsyMzk4LDcgQEAgdm9pZCB0ZXN0Qml0QW5kQXJnc0RvdWJsZShkb3VibGUgYSwgZG91Ygog
ICAgIFZhbHVlKiBhcmd1bWVudEEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIGFyZ3Vt
ZW50QiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
RlBSSW5mbzo6YXJndW1lbnRGUFIxKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBCaXRBbmQsIE9yaWdpbigpLCBhcmd1bWVudEEsIGFyZ3VtZW50Qik7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRS
dW48ZG91YmxlPihwcm9jLCBhLCBiKSwgYml0QW5kRG91YmxlKGEsIGIpKSk7CiB9CkBAIC0yNDAy
LDcgKzI0MTAsNyBAQCB2b2lkIHRlc3RCaXRBbmRBcmdJbW1Eb3VibGUoZG91YmxlIGEsIGRvCiAg
ICAgVmFsdWUqIGFyZ3VtZW50QSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogYXJndW1l
bnRCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBi
KTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXRB
bmQsIE9yaWdpbigpLCBhcmd1bWVudEEsIGFyZ3VtZW50Qik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsK
IAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBhLCBi
KSwgYml0QW5kRG91YmxlKGEsIGIpKSk7CiB9CkBAIC0yNDE0LDcgKzI0MjIsNyBAQCB2b2lkIHRl
c3RCaXRBbmRJbW1zRG91YmxlKGRvdWJsZSBhLCBkb3ViCiAgICAgVmFsdWUqIGFyZ3VtZW50QSA9
IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAg
ICAgVmFsdWUqIGFyZ3VtZW50QiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgYik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQml0QW5kLCBPcmlnaW4oKSwgYXJndW1lbnRBLCBhcmd1bWVudEIpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
c3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRv
dWJsZT4ocHJvYyksIGJpdEFuZERvdWJsZShhLCBiKSkpOwogfQpAQCAtMjQzMiw3ICsyNDQwLDcg
QEAgdm9pZCB0ZXN0Qml0QW5kQXJnRmxvYXQoZmxvYXQgYSkKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCkpKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBCaXRBbmQsIE9yaWdpbigpLCBhcmd1bWVudCwgYXJndW1lbnQpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jLCBi
aXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXRBbmRGbG9hdChhLCBhKSkpOwogfQpAQCAtMjQ0
OCw3ICsyNDU2LDcgQEAgdm9pZCB0ZXN0Qml0QW5kQXJnc0Zsb2F0KGZsb2F0IGEsIGZsb2F0IAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAg
ICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSkpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdEFuZCwgT3JpZ2luKCksIGFyZ3VtZW50QSwgYXJndW1l
bnRCKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGls
ZUFuZFJ1bjxmbG9hdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nh
c3Q8aW50MzJfdD4oYikpLCBiaXRBbmRGbG9hdChhLCBiKSkpOwogfQpAQCAtMjQ2Miw3ICsyNDcw
LDcgQEAgdm9pZCB0ZXN0Qml0QW5kQXJnSW1tRmxvYXQoZmxvYXQgYSwgZmxvYQogICAgICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApKSk7CiAgICAgVmFsdWUqIGFyZ3VtZW50QiA9IHJvb3QtPmFwcGVu
ZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKICAgICBWYWx1ZSogcmVz
dWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXRBbmQsIE9yaWdpbigpLCBhcmd1
bWVudEEsIGFyZ3VtZW50Qik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGlzSWRl
bnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90Pihh
KSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0QW5kRmxvYXQoYSwgYikpKTsKIH0KQEAg
LTI0NzQsNyArMjQ4Miw3IEBAIHZvaWQgdGVzdEJpdEFuZEltbXNGbG9hdChmbG9hdCBhLCBmbG9h
dCAKICAgICBWYWx1ZSogYXJndW1lbnRBID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiBhcmd1bWVudEIgPSByb290LT5hcHBl
bmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7CiAgICAgVmFsdWUqIHJl
c3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0QW5kLCBPcmlnaW4oKSwgYXJn
dW1lbnRBLCBhcmd1bWVudEIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhpc0lk
ZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jKSwgYml0QW5kRmxvYXQoYSwgYikpKTsK
IH0KQEAgLTI0OTMsNyArMjUwMSw3IEBAIHZvaWQgdGVzdEJpdEFuZEFyZ3NGbG9hdFdpdGhVc2Vs
ZXNzRG91YmwKICAgICBWYWx1ZSogYXJndW1lbnRCYXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBhcmd1bWVudEIpOwogICAgIFZh
bHVlKiBkb3VibGVSZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdEFuZCwg
T3JpZ2luKCksIGFyZ3VtZW50QWFzRG91YmxlLCBhcmd1bWVudEJhc0RvdWJsZSk7CiAgICAgVmFs
dWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zs
b2F0LCBPcmlnaW4oKSwgZG91YmxlUmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGZsb2F0UmVzdWx0
KTsKIAogICAgIGRvdWJsZSBkb3VibGVBID0gYTsKICAgICBkb3VibGUgZG91YmxlQiA9IGI7CkBA
IC0yNTA1LDcgKzI1MTMsNyBAQCB2b2lkIHRlc3RCaXRPckFyZ3MoaW50NjRfdCBhLCBpbnQ2NF90
IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRP
ciwgT3JpZ2luKCksCkBAIC0yNTIwLDcgKzI1MjgsNyBAQCB2b2lkIHRlc3RCaXRPclNhbWVBcmco
aW50NjRfdCBhKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdE9yLCBPcmlnaW4oKSwK
QEAgLTI1MzQsNyArMjU0Miw3IEBAIHZvaWQgdGVzdEJpdE9ySW1tcyhpbnQ2NF90IGEsIGludDY0
X3QgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJp
dE9yLCBPcmlnaW4oKSwKQEAgLTI1NDgsNyArMjU1Niw3IEBAIHZvaWQgdGVzdEJpdE9yQXJnSW1t
KGludDY0X3QgYSwgaW50NjRfdCAKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIEJpdE9yLCBPcmlnaW4oKSwKQEAgLTI1NjIsNyArMjU3MCw3IEBAIHZvaWQg
dGVzdEJpdE9ySW1tQXJnKGludDY0X3QgYSwgaW50NjRfdCAKIHsKICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdE9yLCBPcmlnaW4oKSwKQEAgLTI1ODAsNyAr
MjU4OCw3IEBAIHZvaWQgdGVzdEJpdE9yQml0T3JBcmdJbW1JbW0oaW50NjRfdCBhLCAKICAgICAg
ICAgcHJvYywgQml0T3IsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKSk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0T3IsIE9yaWdpbigpLApA
QCAtMjU5OCw3ICsyNjA2LDcgQEAgdm9pZCB0ZXN0Qml0T3JJbW1CaXRPckFyZ0ltbShpbnQ2NF90
IGEsIAogICAgICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIwKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIGMpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRPciwg
T3JpZ2luKCksCkBAIC0yNjEyLDcgKzI2MjAsNyBAQCB2b2lkIHRlc3RCaXRPckFyZ3MzMihpbnQg
YSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBCaXRPciwgT3JpZ2luKCksCkBAIC0yNjMzLDcgKzI2NDEsNyBAQCB2b2lkIHRlc3RCaXRPclNh
bWVBcmczMihpbnQgYSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KAogICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdE9y
LCBPcmlnaW4oKSwKQEAgLTI2NDcsNyArMjY1NSw3IEBAIHZvaWQgdGVzdEJpdE9ySW1tczMyKGlu
dCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIEJpdE9yLCBPcmlnaW4oKSwKQEAgLTI2NjEsNyArMjY2OSw3IEBAIHZvaWQgdGVzdEJpdE9y
QXJnSW1tMzIoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgQml0T3IsIE9yaWdpbigpLApAQCAtMjY3Nyw3ICsyNjg1LDcgQEAgdm9p
ZCB0ZXN0Qml0T3JJbW1BcmczMihpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCksCkBAIC0yNjk5LDcgKzI3
MDcsNyBAQCB2b2lkIHRlc3RCaXRPckJpdE9yQXJnSW1tSW1tMzIoaW50IGEsIGluCiAgICAgICAg
ICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
YikpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdE9yLCBPcmln
aW4oKSwKQEAgLTI3MTksNyArMjcyNyw3IEBAIHZvaWQgdGVzdEJpdE9ySW1tQml0T3JBcmdJbW0z
MihpbnQgYSwgaW4KICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BS
SW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBjKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgQml0T3IsIE9yaWdpbigpLApAQCAtMjczMyw3ICsyNzQxLDcgQEAgdm9pZCB0ZXN0
Qml0WG9yQXJncyhpbnQ2NF90IGEsIGludDY0X3QgYgogewogICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTI3NDgsNyArMjc1
Niw3IEBAIHZvaWQgdGVzdEJpdFhvclNhbWVBcmcoaW50NjRfdCBhKQogICAgIFByb2NlZHVyZSBw
cm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUq
IGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCkBAIC0yNzYyLDcgKzI3NzAsNyBAQCB2b2lk
IHRlc3RCaXRYb3JJbW1zKGludDY0X3QgYSwgaW50NjRfdCBiCiB7CiAgICAgUHJvY2VkdXJlIHBy
b2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjc3Niw3
ICsyNzg0LDcgQEAgdm9pZCB0ZXN0Qml0WG9yQXJnSW1tKGludDY0X3QgYSwgaW50NjRfdAogewog
ICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmln
aW4oKSwKQEAgLTI3OTAsNyArMjc5OCw3IEBAIHZvaWQgdGVzdEJpdFhvckltbUFyZyhpbnQ2NF90
IGEsIGludDY0X3QKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIEJpdFhvciwgT3JpZ2luKCksCkBAIC0yODA4LDcgKzI4MTYsNyBAQCB2b2lkIHRlc3RCaXRY
b3JCaXRYb3JBcmdJbW1JbW0oaW50NjRfdCBhCiAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENv
bnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjgyNiw3ICsyODM0LDcgQEAg
dm9pZCB0ZXN0Qml0WG9ySW1tQml0WG9yQXJnSW1tKGludDY0X3QgYQogICAgICAgICBwcm9jLCBC
aXRYb3IsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBjKSk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTI4NDAs
NyArMjg0OCw3IEBAIHZvaWQgdGVzdEJpdFhvckFyZ3MzMihpbnQgYSwgaW50IGIpCiB7CiAgICAg
UHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigp
LApAQCAtMjg2MSw3ICsyODY5LDcgQEAgdm9pZCB0ZXN0Qml0WG9yU2FtZUFyZzMyKGludCBhKQog
ICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgIHBy
b2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAg
LTI4NzUsNyArMjg4Myw3IEBAIHZvaWQgdGVzdEJpdFhvckltbXMzMihpbnQgYSwgaW50IGIpCiB7
CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRYb3IsIE9y
aWdpbigpLApAQCAtMjg4OSw3ICsyODk3LDcgQEAgdm9pZCB0ZXN0Qml0WG9yQXJnSW1tMzIoaW50
IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTI5MDUsNyArMjkxMyw3IEBAIHZvaWQgdGVzdEJpdFhv
ckltbUFyZzMyKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCkBAIC0yOTI3LDcgKzI5MzUsNyBAQCB2
b2lkIHRlc3RCaXRYb3JCaXRYb3JBcmdJbW1JbW0zMihpbnQgYSwgCiAgICAgICAgICAgICBwcm9j
LCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYikpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCkBA
IC0yOTQ3LDcgKzI5NTUsNyBAQCB2b2lkIHRlc3RCaXRYb3JJbW1CaXRYb3JBcmdJbW0zMihpbnQg
YSwgCiAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMCkpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgYykpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IEJpdFhvciwgT3JpZ2luKCksCkBAIC0yOTYxLDcgKzI5NjksNyBAQCB2b2lkIHRlc3RCaXROb3RB
cmcoaW50NjRfdCBhKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTI5NzUsNyArMjk4Myw3IEBAIHZvaWQgdGVzdEJp
dE5vdEltbShpbnQ2NF90IGEpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjk5NSw3ICszMDAzLDcgQEAgdm9pZCB0
ZXN0Qml0Tm90TWVtKGludDY0X3QgYSkKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xKSwKICAgICAgICAgbG9hZCk7CiAgICAgcm9vdC0+YXBw
ZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIG5vdExvYWQsIGFkZHJl
c3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAg
ICBpbnQ2NF90IGlucHV0ID0gYTsKICAgICBjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsICZp
bnB1dCk7CkBAIC0zMDA4LDcgKzMwMTYsNyBAQCB2b2lkIHRlc3RCaXROb3RBcmczMihpbnQzMl90
IGEpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSog
YXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0
WG9yLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAtMSksCkBAIC0zMDIwLDcgKzMwMjgsNyBAQCB2b2lkIHRlc3RCaXRO
b3RJbW0zMihpbnQzMl90IGEpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMzA0MCw3ICszMDQ4LDcgQEAgdm9pZCB0
ZXN0Qml0Tm90TWVtMzIoaW50MzJfdCBhKQogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTEpLAogICAgICAgICBsb2FkKTsKICAgICByb290LT5h
cHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgbm90TG9hZCwgYWRk
cmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDAp
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAog
ICAgIGludDMyX3QgaW5wdXQgPSBhOwogICAgIGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywg
JmlucHV0KTsKQEAgLTMwNjMsMTYgKzMwNzEsMTYgQEAgdm9pZCB0ZXN0Qml0Tm90T25Cb29sZWFu
QW5kQnJhbmNoMzIoaW50NgogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgLTEpLAogICAgICAgICBhcmdzQXJlRXF1YWwpOwogCi0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICBhcmdzQXJlTm90RXF1
YWwsCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhl
bHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgNDIpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIC00MikpOwogCkBAIC0zMDg0LDcgKzMwOTIsNyBAQCB2b2lkIHRl
c3RTaGxBcmdzKGludDY0X3QgYSwgaW50NjRfdCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KAogICAgICAgICAgICAgcHJvYywgU2hsLCBPcmlnaW4oKSwKQEAgLTMxMDAsNyArMzEwOCw3
IEBAIHZvaWQgdGVzdFNobEltbXMoaW50NjRfdCBhLCBpbnQ2NF90IGIpCiB7CiAgICAgUHJvY2Vk
dXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTaGwsIE9yaWdpbigpLApAQCAtMzEx
NCw3ICszMTIyLDcgQEAgdm9pZCB0ZXN0U2hsQXJnSW1tKGludDY0X3QgYSwgaW50NjRfdCBiKQog
ewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2hsLCBPcmln
aW4oKSwKQEAgLTMxMzEsNyArMzEzOSw3IEBAIHZvaWQgdGVzdFNobEFyZzMyKGludDMyX3QgYSkK
ICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICBwcm9j
LCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIFNobCwgT3JpZ2luKCksIHZhbHVlLCB2YWx1ZSkpOwogCkBAIC0zMTQy
LDcgKzMxNTAsNyBAQCB2b2lkIHRlc3RTaGxBcmdzMzIoaW50MzJfdCBhLCBpbnQzMl90IGIpCiB7
CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTaGwsIE9yaWdp
bigpLApAQCAtMzE2MCw3ICszMTY4LDcgQEAgdm9pZCB0ZXN0U2hsSW1tczMyKGludDMyX3QgYSwg
aW50MzJfdCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgU2hsLCBPcmlnaW4oKSwKQEAgLTMxNzQsNyArMzE4Miw3IEBAIHZvaWQgdGVzdFNobEFyZ0lt
bTMyKGludDMyX3QgYSwgaW50MzJfdCAKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIFNobCwgT3JpZ2luKCksCkBAIC0zMTkwLDcgKzMxOTgsNyBAQCB2b2lk
IHRlc3RTU2hyQXJncyhpbnQ2NF90IGEsIGludDY0X3QgYikKIHsKICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNTaHIsIE9yaWdpbigpLApAQCAtMzIwNiw3ICsz
MjE0LDcgQEAgdm9pZCB0ZXN0U1NockltbXMoaW50NjRfdCBhLCBpbnQ2NF90IGIpCiB7CiAgICAg
UHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTU2hyLCBPcmlnaW4oKSwK
QEAgLTMyMjAsNyArMzIyOCw3IEBAIHZvaWQgdGVzdFNTaHJBcmdJbW0oaW50NjRfdCBhLCBpbnQ2
NF90IGIKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNT
aHIsIE9yaWdpbigpLApAQCAtMzIzNyw3ICszMjQ1LDcgQEAgdm9pZCB0ZXN0U1NockFyZzMyKGlu
dDMyX3QgYSkKICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFNTaHIsIE9yaWdpbigpLCB2YWx1ZSwgdmFsdWUpKTsK
IApAQCAtMzI0OCw3ICszMjU2LDcgQEAgdm9pZCB0ZXN0U1NockFyZ3MzMihpbnQzMl90IGEsIGlu
dDMyX3QgYgogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
U1NociwgT3JpZ2luKCksCkBAIC0zMjY2LDcgKzMyNzQsNyBAQCB2b2lkIHRlc3RTU2hySW1tczMy
KGludDMyX3QgYSwgaW50MzJfdCBiCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBTU2hyLCBPcmlnaW4oKSwKQEAgLTMyODAsNyArMzI4OCw3IEBAIHZvaWQg
dGVzdFNTaHJBcmdJbW0zMihpbnQzMl90IGEsIGludDMyX3QKIHsKICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNTaHIsIE9yaWdpbigpLApAQCAtMzI5Niw3ICsz
MzA0LDcgQEAgdm9pZCB0ZXN0WlNockFyZ3ModWludDY0X3QgYSwgdWludDY0X3QgYgogewogICAg
IFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgWlNociwgT3JpZ2luKCks
CkBAIC0zMzEyLDcgKzMzMjAsNyBAQCB2b2lkIHRlc3RaU2hySW1tcyh1aW50NjRfdCBhLCB1aW50
NjRfdCBiCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBa
U2hyLCBPcmlnaW4oKSwKQEAgLTMzMjYsNyArMzMzNCw3IEBAIHZvaWQgdGVzdFpTaHJBcmdJbW0o
dWludDY0X3QgYSwgdWludDY0X3QKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIFpTaHIsIE9yaWdpbigpLApAQCAtMzM0Myw3ICszMzUxLDcgQEAgdm9pZCB0
ZXN0WlNockFyZzMyKHVpbnQzMl90IGEpCiAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPigKICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBaU2hyLCBPcmlnaW4oKSwg
dmFsdWUsIHZhbHVlKSk7CiAKQEAgLTMzNTQsNyArMzM2Miw3IEBAIHZvaWQgdGVzdFpTaHJBcmdz
MzIodWludDMyX3QgYSwgdWludDMyX3QKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIFpTaHIsIE9yaWdpbigpLApAQCAtMzM3Miw3ICszMzgwLDcgQEAgdm9p
ZCB0ZXN0WlNockltbXMzMih1aW50MzJfdCBhLCB1aW50MzJfdAogewogICAgIFByb2NlZHVyZSBw
cm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgWlNociwgT3JpZ2luKCksCkBAIC0zMzg2LDcg
KzMzOTQsNyBAQCB2b2lkIHRlc3RaU2hyQXJnSW1tMzIodWludDMyX3QgYSwgdWludDMyCiB7CiAg
ICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBaU2hyLCBPcmlnaW4o
KSwKQEAgLTM0MTksNyArMzQyNyw3IEBAIHZvaWQgdGVzdENsekFyZzY0KGludDY0X3QgYSkKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVu
dCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BS
SW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBWYWx1ZSogY2x6VmFsdWUgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIENseiwgT3JpZ2luKCksIGFyZ3VtZW50KTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjbHpWYWx1ZSk7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNs
elZhbHVlKTsKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPHVuc2lnbmVkPihwcm9jLCBhKSA9PSBj
b3VudExlYWRpbmdaZXJvKGEpKTsKIH0KIApAQCAtMzQzMCw3ICszNDM4LDcgQEAgdm9pZCB0ZXN0
Q2x6TWVtNjQoaW50NjRfdCBhKQogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjAp
OwogICAgIE1lbW9yeVZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4o
cHJvYywgTG9hZCwgSW50NjQsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogY2x6VmFs
dWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENseiwgT3JpZ2luKCksIHZhbHVlKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBjbHpWYWx1ZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIGNselZhbHVlKTsKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPHVuc2lnbmVk
Pihwcm9jLCAmYSkgPT0gY291bnRMZWFkaW5nWmVybyhhKSk7CiB9CiAKQEAgLTM0NDEsNyArMzQ0
OSw3IEBAIHZvaWQgdGVzdENsekFyZzMyKGludDMyX3QgYSkKICAgICBWYWx1ZSogYXJndW1lbnQg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSogY2x6VmFsdWUgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIENseiwgT3JpZ2luKCksIGFyZ3VtZW50KTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjbHpWYWx1ZSk7CisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNselZh
bHVlKTsKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPHVuc2lnbmVkPihwcm9jLCBhKSA9PSBjb3Vu
dExlYWRpbmdaZXJvKGEpKTsKIH0KIApAQCAtMzQ1Miw3ICszNDYwLDcgQEAgdm9pZCB0ZXN0Q2x6
TWVtMzIoaW50MzJfdCBhKQogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwog
ICAgIE1lbW9yeVZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJv
YywgTG9hZCwgSW50MzIsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogY2x6VmFsdWUg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENseiwgT3JpZ2luKCksIHZhbHVlKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBj
bHpWYWx1ZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIGNselZhbHVlKTsKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPHVuc2lnbmVkPihw
cm9jLCAmYSkgPT0gY291bnRMZWFkaW5nWmVybyhhKSk7CiB9CiAKQEAgLTM0NjAsNyArMzQ2OCw3
IEBAIHZvaWQgdGVzdEFic0FyZyhkb3VibGUgYSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIEFicywgT3JpZ2luKCksCkBAIC0zNDc0LDcgKzM0ODIsNyBA
QCB2b2lkIHRlc3RBYnNJbW0oZG91YmxlIGEpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSBy
b290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdpbigpLCBhcmd1bWVudCkpOwogCkBAIC0z
NDg3LDcgKzM0OTUsNyBAQCB2b2lkIHRlc3RBYnNNZW0oZG91YmxlIGEpCiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwKTsKICAgICBNZW1vcnlWYWx1ZSogbG9hZERvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxN
ZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgRG91YmxlLCBPcmlnaW4oKSwgYWRkcmVzcyk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEFicywgT3JpZ2luKCksIGxvYWREb3VibGUpKTsKIApAQCAt
MzUwMSw3ICszNTA5LDcgQEAgdm9pZCB0ZXN0QWJzQWJzQXJnKGRvdWJsZSBhKQogICAgIFZhbHVl
KiBmaXJzdEFicyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBGUFJJbmZvOjphcmd1bWVudEZQUjApKTsKICAgICBWYWx1ZSogc2Vjb25kQWJzID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdpbigpLCBmaXJzdEFicyk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25k
QWJzKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgc2Vjb25kQWJzKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48
ZG91YmxlPihwcm9jLCBhKSwgZmFicyhhKSkpOwogfQpAQCAtMzUxMyw3ICszNTIxLDcgQEAgdm9p
ZCB0ZXN0QWJzQml0d2lzZUNhc3RBcmcoZG91YmxlIGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50QXNJ
bnQ2NCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
R1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBWYWx1ZSogYXJndW1lbnRBc0RvdWJsZSA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVu
dEFzSW50NjQpOwogICAgIFZhbHVlKiBhYnNWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQWJzLCBPcmlnaW4oKSwgYXJndW1lbnRBc0RvdWJsZSk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWJzVmFsdWUpOworICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhYnNW
YWx1ZSk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJv
YywgYml0d2lzZV9jYXN0PGludDY0X3Q+KGEpKSwgZmFicyhhKSkpOwogfQpAQCAtMzUyNyw3ICsz
NTM1LDcgQEAgdm9pZCB0ZXN0Qml0d2lzZUNhc3RBYnNCaXR3aXNlQ2FzdEFyZyhkbwogICAgIFZh
bHVlKiBhYnNWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBPcmlnaW4o
KSwgYXJndW1lbnRBc0RvdWJsZSk7CiAgICAgVmFsdWUqIHJlc3VsdEFzSW50NjQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYWJzVmFsdWUpOwog
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0QXNJbnQ2NCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdEFzSW50NjQpOwogCiAgICAgaW50NjRfdCBleHBlY3Rl
ZFJlc3VsdCA9IGJpdHdpc2VfY2FzdDxpbnQ2NF90PihmYWJzKGEpKTsKICAgICBDSEVDSyhpc0lk
ZW50aWNhbChjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQ2NF90
PihhKSksIGV4cGVjdGVkUmVzdWx0KSk7CkBAIC0zNTQyLDcgKzM1NTAsNyBAQCB2b2lkIHRlc3RB
YnNBcmcoZmxvYXQgYSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUq
IHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBPcmlnaW4oKSwgYXJn
dW1lbnQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIp
OwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBi
aXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nh
c3Q8ZmxvYXQ+KGZhYnMoYSkpKSkpOwogfQpAQCAtMzU1NCw3ICszNTYyLDcgQEAgdm9pZCB0ZXN0
QWJzSW1tKGZsb2F0IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENv
bnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiByZXN1bHQgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFicywgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAg
ICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VD
YXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENI
RUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0
PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0PGZsb2F0Pihm
YWJzKGEpKSkpKTsKIH0KQEAgLTM1NjcsNyArMzU3NSw3IEBAIHZvaWQgdGVzdEFic01lbShmbG9h
dCBhKQogICAgIE1lbW9yeVZhbHVlKiBsb2FkRmxvYXQgPSByb290LT5hcHBlbmROZXc8TWVtb3J5
VmFsdWU+KHByb2MsIExvYWQsIEZsb2F0LCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUq
IHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBPcmlnaW4oKSwgbG9h
ZEZsb2F0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMy
KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywg
JmEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KGZhYnMoYSkpKSkp
OwogfQpAQCAtMzU4MSw3ICszNTg5LDcgQEAgdm9pZCB0ZXN0QWJzQWJzQXJnKGZsb2F0IGEpCiAg
ICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNl
Q2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiBmaXJzdEFicyA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZh
bHVlKiBzZWNvbmRBYnMgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFicywgT3JpZ2lu
KCksIGZpcnN0QWJzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCBzZWNvbmRBYnMpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmRBYnMpOwogCiAgICAgQ0hFQ0soaXNJ
ZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+
KGEpKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGZhYnMoYSkpKSk7CiB9CkBAIC0zNTk0LDcgKzM2MDIs
NyBAQCB2b2lkIHRlc3RBYnNCaXR3aXNlQ2FzdEFyZyhmbG9hdCBhKQogICAgICAgICByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCkpOwogICAgIFZhbHVlKiBhcmd1bWVudEFzZmxvYXQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnRBc0ludDMyKTsKICAg
ICBWYWx1ZSogYWJzVmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFicywgT3Jp
Z2luKCksIGFyZ3VtZW50QXNmbG9hdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWJzVmFsdWUpOworICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhYnNWYWx1ZSk7CiAKICAgICBD
SEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4oYSkpLCBzdGF0aWNfY2FzdDxmbG9hdD4oZmFicyhhKSkpKTsKIH0KQEAgLTM2MDks
NyArMzYxNyw3IEBAIHZvaWQgdGVzdEJpdHdpc2VDYXN0QWJzQml0d2lzZUNhc3RBcmcoZmwKICAg
ICBWYWx1ZSogYWJzVmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFicywgT3Jp
Z2luKCksIGFyZ3VtZW50QXNmbG9hdCk7CiAgICAgVmFsdWUqIHJlc3VsdEFzSW50NjQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYWJzVmFsdWUp
OwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0QXNJbnQ2NCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdEFzSW50NjQpOwogCiAgICAgaW50MzJfdCBleHBl
Y3RlZFJlc3VsdCA9IGJpdHdpc2VfY2FzdDxpbnQzMl90PihzdGF0aWNfY2FzdDxmbG9hdD4oZmFi
cyhhKSkpOwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJv
YywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgZXhwZWN0ZWRSZXN1bHQpKTsKQEAgLTM2MjYs
NyArMzYzNCw3IEBAIHZvaWQgdGVzdEFic0FyZ1dpdGhVc2VsZXNzRG91YmxlQ29udmVyc2kKICAg
ICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdp
bigpLCBhc0RvdWJsZSk7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICBWYWx1
ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBP
cmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hF
Q0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KGZh
YnMoYSkpKSkpOwogfQpAQCAtMzY0NCw3ICszNjUyLDcgQEAgdm9pZCB0ZXN0QWJzQXJnV2l0aEVm
ZmVjdGZ1bERvdWJsZUNvbnZlcgogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CiAgICAg
VmFsdWUqIGRvdWJsZUFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CiAgICAgcm9vdC0+YXBwZW5k
TmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgZG91YmxlQWRk
cmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBkb3VibGUgZWZmZWN0ID0gMDsK
ICAgICBpbnQzMl90IHJlc3VsdFZhbHVlID0gY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBi
aXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksICZlZmZlY3QpOwpAQCAtMzY1Niw3ICszNjY0LDcgQEAg
dm9pZCB0ZXN0Q2VpbEFyZyhkb3VibGUgYSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIENlaWwsIE9yaWdpbigpLApAQCAtMzY3MCw3ICszNjc4LDcgQEAg
dm9pZCB0ZXN0Q2VpbEltbShkb3VibGUgYSkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJv
b3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBhcmd1bWVudCkpOwogCkBAIC0z
NjgzLDcgKzM2OTEsNyBAQCB2b2lkIHRlc3RDZWlsTWVtKGRvdWJsZSBhKQogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWREb3VibGUgPSByb290LT5hcHBlbmROZXc8
TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIERvdWJsZSwgT3JpZ2luKCksIGFkZHJlc3MpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDZWlsLCBPcmlnaW4oKSwgbG9hZERvdWJsZSkpOwogCkBA
IC0zNjk3LDcgKzM3MDUsNyBAQCB2b2lkIHRlc3RDZWlsQ2VpbEFyZyhkb3VibGUgYSkKICAgICBW
YWx1ZSogZmlyc3RDZWlsID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDZWlsLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApKTsKICAgICBWYWx1ZSogc2Vjb25kQ2VpbCA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCksIGZpcnN0Q2VpbCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgc2Vjb25kQ2VpbCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHNlY29uZENlaWwpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29t
cGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIGEpLCBjZWlsKGEpKSk7CiB9CkBAIC0zNzA5LDcgKzM3
MTcsNyBAQCB2b2lkIHRlc3RGbG9vckNlaWxBcmcoZG91YmxlIGEpCiAgICAgVmFsdWUqIGZpcnN0
Q2VpbCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBS
SW5mbzo6YXJndW1lbnRGUFIwKSk7CiAgICAgVmFsdWUqIHdyYXBwaW5nRmxvb3IgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgZmlyc3RDZWlsKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB3cmFw
cGluZ0Zsb29yKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgd3JhcHBpbmdGbG9vcik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21w
aWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgYSksIGNlaWwoYSkpKTsKIH0KQEAgLTM3MjEsNyArMzcy
OSw3IEBAIHZvaWQgdGVzdENlaWxJVG9ENjQoaW50NjRfdCBhKQogICAgIFZhbHVlKiBhcmd1bWVu
dCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BS
SW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBWYWx1ZSogYXJndW1lbnRBc0RvdWJsZSA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGFyZ3VtZW50KTsKIAotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDZWlsLCBPcmlnaW4oKSwgYXJndW1lbnRBc0RvdWJsZSkp
OwogCkBAIC0zNzM2LDcgKzM3NDQsNyBAQCB2b2lkIHRlc3RDZWlsSVRvRDMyKGludDY0X3QgYSkK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSogYXJndW1lbnRBc0RvdWJsZSA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGFyZ3VtZW50KTsK
IAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDZWlsLCBPcmlnaW4oKSwgYXJndW1lbnRBc0Rv
dWJsZSkpOwogCkBAIC0zNzUyLDcgKzM3NjAsNyBAQCB2b2lkIHRlc3RDZWlsQXJnKGZsb2F0IGEp
CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3
aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAg
VmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2Fz
dCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVD
Syhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxp
bnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihjZWlsZihhKSkpKTsKIH0KQEAgLTM3
NjQsNyArMzc3Miw3IEBAIHZvaWQgdGVzdENlaWxJbW0oZmxvYXQgYSkKICAgICBWYWx1ZSogYXJn
dW1lbnQgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
YSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2Vp
bCwgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1
bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48
aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KGNlaWxmKGEpKSkpOwogfQpAQCAtMzc3Nyw3ICszNzg1LDcgQEAgdm9pZCB0ZXN0Q2Vp
bE1lbShmbG9hdCBhKQogICAgIE1lbW9yeVZhbHVlKiBsb2FkRmxvYXQgPSByb290LT5hcHBlbmRO
ZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEZsb2F0LCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAg
ICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3Jp
Z2luKCksIGxvYWRGbG9hdCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMy
X3Q+KHByb2MsICZhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGNlaWxmKGEpKSkpOwogfQpAQCAt
Mzc5MSw3ICszNzk5LDcgQEAgdm9pZCB0ZXN0Q2VpbENlaWxBcmcoZmxvYXQgYSkKICAgICBWYWx1
ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBP
cmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUqIGZpcnN0Q2VpbCA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBWYWx1ZSog
c2Vjb25kQ2VpbCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCks
IGZpcnN0Q2VpbCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgc2Vjb25kQ2VpbCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZENlaWwpOwogCiAgICAgQ0hFQ0soaXNJ
ZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+
KGEpKSwgY2VpbGYoYSkpKTsKIH0KQEAgLTM4MDUsNyArMzgxMyw3IEBAIHZvaWQgdGVzdEZsb29y
Q2VpbEFyZyhmbG9hdCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1
ZSogZmlyc3RDZWlsID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDZWlsLCBPcmlnaW4o
KSwgYXJndW1lbnQpOwogICAgIFZhbHVlKiB3cmFwcGluZ0Zsb29yID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGZpcnN0Q2VpbCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgd3JhcHBpbmdGbG9v
cik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHdyYXBwaW5nRmxvb3IpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1
bjxmbG9hdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgY2VpbGYoYSkpKTsKIH0K
QEAgLTM4MjEsNyArMzgyOSw3IEBAIHZvaWQgdGVzdENlaWxBcmdXaXRoVXNlbGVzc0RvdWJsZUNv
bnZlcnMKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBD
ZWlsLCBPcmlnaW4oKSwgYXNEb3VibGUpOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIHJlc3VsdCk7
CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3
aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsK
IAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0
d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGNlaWxmKGEpKSkp
OwogfQpAQCAtMzgzOSw3ICszODQ3LDcgQEAgdm9pZCB0ZXN0Q2VpbEFyZ1dpdGhFZmZlY3RmdWxE
b3VibGVDb252ZQogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CiAgICAgVmFsdWUqIGRv
dWJsZUFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9y
eVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgZG91YmxlQWRkcmVzcyk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBkb3VibGUgZWZmZWN0ID0gMDsKICAgICBpbnQz
Ml90IHJlc3VsdFZhbHVlID0gY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nh
c3Q8aW50MzJfdD4oYSksICZlZmZlY3QpOwpAQCAtMzg1MSw3ICszODU5LDcgQEAgdm9pZCB0ZXN0
Rmxvb3JBcmcoZG91YmxlIGEpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBGbG9vciwgT3JpZ2luKCksCkBAIC0zODY1LDcgKzM4NzMsNyBAQCB2b2lkIHRl
c3RGbG9vckltbShkb3VibGUgYSkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFw
cGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgYXJndW1lbnQpKTsKIApAQCAtMzg3OCw3
ICszODg2LDcgQEAgdm9pZCB0ZXN0Rmxvb3JNZW0oZG91YmxlIGEpCiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIwKTsKICAgICBNZW1vcnlWYWx1ZSogbG9hZERvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxNZW1v
cnlWYWx1ZT4ocHJvYywgTG9hZCwgRG91YmxlLCBPcmlnaW4oKSwgYWRkcmVzcyk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgbG9hZERvdWJsZSkpOwogCkBAIC0z
ODkyLDcgKzM5MDAsNyBAQCB2b2lkIHRlc3RGbG9vckZsb29yQXJnKGRvdWJsZSBhKQogICAgIFZh
bHVlKiBmaXJzdEZsb29yID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKSk7CiAgICAgVmFsdWUqIHNlY29uZEZsb29y
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGZpcnN0Rmxv
b3IpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHNlY29uZEZsb29yKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kRmxvb3IpOwogCiAgICAgQ0hFQ0soaXNJZGVudGlj
YWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIGEpLCBmbG9vcihhKSkpOwogfQpAQCAtMzkw
NCw3ICszOTEyLDcgQEAgdm9pZCB0ZXN0Q2VpbEZsb29yQXJnKGRvdWJsZSBhKQogICAgIFZhbHVl
KiBmaXJzdEZsb29yID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKSk7CiAgICAgVmFsdWUqIHdyYXBwaW5nQ2VpbCA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCksIGZpcnN0Rmxvb3Ip
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHdyYXBwaW5nQ2VpbCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHdyYXBwaW5nQ2VpbCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNh
bChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgYSksIGZsb29yKGEpKSk7CiB9CkBAIC0zOTE2
LDcgKzM5MjQsNyBAQCB2b2lkIHRlc3RGbG9vcklUb0Q2NChpbnQ2NF90IGEpCiAgICAgVmFsdWUq
IGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFZhbHVlKiBhcmd1bWVudEFzRG91Ymxl
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgYXJndW1lbnQp
OwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgYXJndW1lbnRB
c0RvdWJsZSkpOwogCkBAIC0zOTMxLDcgKzM5MzksNyBAQCB2b2lkIHRlc3RGbG9vcklUb0QzMihp
bnQ2NF90IGEpCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgVmFsdWUqIGFyZ3VtZW50
QXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBh
cmd1bWVudCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBh
cmd1bWVudEFzRG91YmxlKSk7CiAKQEAgLTM5NDcsNyArMzk1NSw3IEBAIHZvaWQgdGVzdEZsb29y
QXJnKGZsb2F0IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiBy
ZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgYXJn
dW1lbnQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIp
OwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBi
aXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oZmxvb3JmKGEp
KSkpOwogfQpAQCAtMzk1OSw3ICszOTY3LDcgQEAgdm9pZCB0ZXN0Rmxvb3JJbW0oZmxvYXQgYSkK
ICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHJlc3Vs
dDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCks
IHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNh
bChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSks
IGJpdHdpc2VfY2FzdDxpbnQzMl90PihmbG9vcmYoYSkpKSk7CiB9CkBAIC0zOTcyLDcgKzM5ODAs
NyBAQCB2b2lkIHRlc3RGbG9vck1lbShmbG9hdCBhKQogICAgIE1lbW9yeVZhbHVlKiBsb2FkRmxv
YXQgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEZsb2F0LCBPcmln
aW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBsb2FkRmxvYXQpOwogICAgIFZhbHVlKiByZXN1bHQz
MiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBy
ZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwo
Y29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCAmYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90Pihm
bG9vcmYoYSkpKSk7CiB9CkBAIC0zOTg2LDcgKzM5OTQsNyBAQCB2b2lkIHRlc3RGbG9vckZsb29y
QXJnKGZsb2F0IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiBm
aXJzdEZsb29yID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCks
IGFyZ3VtZW50KTsKICAgICBWYWx1ZSogc2Vjb25kRmxvb3IgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgZmlyc3RGbG9vcik7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kRmxvb3IpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBz
ZWNvbmRGbG9vcik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0
Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBmbG9vcmYoYSkpKTsKIH0KQEAgLTQw
MDAsNyArNDAwOCw3IEBAIHZvaWQgdGVzdENlaWxGbG9vckFyZyhmbG9hdCBhKQogICAgIFZhbHVl
KiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9y
aWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1ZSogZmlyc3RGbG9vciA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUq
IHdyYXBwaW5nQ2VpbCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2lu
KCksIGZpcnN0Rmxvb3IpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHdyYXBwaW5nQ2VpbCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHdyYXBwaW5nQ2VpbCk7CiAKICAgICBD
SEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4oYSkpLCBmbG9vcmYoYSkpKTsKIH0KQEAgLTQwMTYsNyArNDAyNCw3IEBAIHZvaWQg
dGVzdEZsb29yQXJnV2l0aFVzZWxlc3NEb3VibGVDb252ZXIKICAgICBWYWx1ZSogcmVzdWx0ID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGFzRG91YmxlKTsK
ICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERv
dWJsZVRvRmxvYXQsIE9yaWdpbigpLCByZXN1bHQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJl
c3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChj
b21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJp
dHdpc2VfY2FzdDxpbnQzMl90PihmbG9vcmYoYSkpKSk7CiB9CkBAIC00MDM0LDcgKzQwNDIsNyBA
QCB2b2lkIHRlc3RGbG9vckFyZ1dpdGhFZmZlY3RmdWxEb3VibGVDb252CiAgICAgVmFsdWUqIHJl
c3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2lu
KCksIGZsb2F0UmVzdWx0KTsKICAgICBWYWx1ZSogZG91YmxlQWRkcmVzcyA9IHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIxKTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmln
aW4oKSwgcmVzdWx0LCBkb3VibGVBZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAog
ICAgIGRvdWJsZSBlZmZlY3QgPSAwOwogICAgIGludDMyX3QgcmVzdWx0VmFsdWUgPSBjb21waWxl
QW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgJmVmZmVjdCk7
CkBAIC00MDQ2LDcgKzQwNTQsNyBAQCB2b2lkIHRlc3RTcXJ0QXJnKGRvdWJsZSBhKQogewogICAg
IFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU3FydCwgT3JpZ2luKCks
CkBAIC00MDYwLDcgKzQwNjgsNyBAQCB2b2lkIHRlc3RTcXJ0SW1tKGRvdWJsZSBhKQogICAgIFBy
b2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAg
ICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBhKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3FydCwgT3JpZ2lu
KCksIGFyZ3VtZW50KSk7CiAKQEAgLTQwNzMsNyArNDA4MSw3IEBAIHZvaWQgdGVzdFNxcnRNZW0o
ZG91YmxlIGEpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBW
YWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBNZW1vcnlWYWx1ZSogbG9hZERv
dWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgRG91YmxlLCBP
cmlnaW4oKSwgYWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFNxcnQsIE9yaWdp
bigpLCBsb2FkRG91YmxlKSk7CiAKQEAgLTQwODksNyArNDA5Nyw3IEBAIHZvaWQgdGVzdFNxcnRB
cmcoZmxvYXQgYSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUqIHJl
c3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3FydCwgT3JpZ2luKCksIGFyZ3Vt
ZW50KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsK
IAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0
d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0
PGZsb2F0PihzcXJ0KGEpKSkpKTsKIH0KQEAgLTQxMDEsNyArNDEwOSw3IEBAIHZvaWQgdGVzdFNx
cnRJbW0oZmxvYXQgYSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8Q29u
c3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3FydCwgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAg
ICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VD
YXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENI
RUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0
PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0PGZsb2F0Pihz
cXJ0KGEpKSkpKTsKIH0KQEAgLTQxMTQsNyArNDEyMiw3IEBAIHZvaWQgdGVzdFNxcnRNZW0oZmxv
YXQgYSkKICAgICBNZW1vcnlWYWx1ZSogbG9hZEZsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9y
eVZhbHVlPihwcm9jLCBMb2FkLCBGbG9hdCwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVl
KiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFNxcnQsIE9yaWdpbigpLCBs
b2FkRmxvYXQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9j
LCAmYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihzdGF0aWNfY2FzdDxmbG9hdD4oc3FydChhKSkp
KSk7CiB9CkBAIC00MTMwLDcgKzQxMzgsNyBAQCB2b2lkIHRlc3RTcXJ0QXJnV2l0aFVzZWxlc3NE
b3VibGVDb252ZXJzCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgU3FydCwgT3JpZ2luKCksIGFzRG91YmxlKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBy
ZXN1bHQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1
bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHBy
b2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihzdGF0
aWNfY2FzdDxmbG9hdD4oc3FydChhKSkpKSk7CiB9CkBAIC00MTQ4LDcgKzQxNTYsNyBAQCB2b2lk
IHRlc3RTcXJ0QXJnV2l0aEVmZmVjdGZ1bERvdWJsZUNvbnZlCiAgICAgVmFsdWUqIHJlc3VsdDMy
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZs
b2F0UmVzdWx0KTsKICAgICBWYWx1ZSogZG91YmxlQWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsK
ICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwg
cmVzdWx0LCBkb3VibGVBZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIGRv
dWJsZSBlZmZlY3QgPSAwOwogICAgIGludDMyX3QgcmVzdWx0VmFsdWUgPSBjb21waWxlQW5kUnVu
PGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgJmVmZmVjdCk7CkBAIC00
MTcyLDcgKzQxODAsNyBAQCB2b2lkIHRlc3RDb21wYXJlVHdvRmxvYXRUb0RvdWJsZShmbG9hdCBh
CiAgICAgVmFsdWUqIGFyZzJBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
RmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGFyZzJGbG9hdCk7CiAgICAgVmFsdWUqIGVxdWFsID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBFcXVhbCwgT3JpZ2luKCksIGFyZzFBc0RvdWJs
ZSwgYXJnMkFzRG91YmxlKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIGVxdWFsKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZXF1YWwpOwogCiAgICAgQ0hFQ0soY29tcGls
ZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2Vf
Y2FzdDxpbnQzMl90PihiKSkgPT0gKGEgPT0gYikpOwogfQpAQCAtNDE5MCw3ICs0MTk4LDcgQEAg
dm9pZCB0ZXN0Q29tcGFyZU9uZUZsb2F0VG9Eb3VibGUoZmxvYXQgYQogICAgIFZhbHVlKiBhcmcy
QXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIGVxdWFsID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBFcXVhbCwgT3JpZ2luKCksIGFyZzFBc0RvdWJsZSwgYXJnMkFz
RG91YmxlKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIGVxdWFsKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgZXF1YWwpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxp
bnQ2NF90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGIpID09IChhID09IGIpKTsK
IH0KQEAgLTQyMTQsMjMgKzQyMjIsMjMgQEAgdm9pZCB0ZXN0Q29tcGFyZUZsb2F0VG9Eb3VibGVU
aHJvdWdoUGhpKAogICAgIFZhbHVlKiBhcmcyQXNGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIGFyZzJBc0RvdWJsZSk7CiAgICAgVmFs
dWUqIGFyZzJBc0ZSb3VuZGVkRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBG
bG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgYXJnMkFzRmxvYXQpOwogCi0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICBjb25kaXRpb24sCiAgICAgICAg
IEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwog
CiAgICAgVXBzaWxvblZhbHVlKiB0aGVuVmFsdWUgPSB0aGVuQ2FzZS0+YXBwZW5kTmV3PFVwc2ls
b25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFyZzFBc0RvdWJsZSk7Ci0gICAgdGhlbkNhc2UtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxv
Y2sodGFpbCkpOworICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVt
cCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CiAKICAgICBWYWx1ZSogZWxzZUNv
bnN0ID0gZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgMC4pOwogICAgIFVwc2lsb25WYWx1ZSogZWxzZVZhbHVlID0gZWxzZUNhc2UtPmFwcGVuZE5l
dzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCBlbHNlQ29uc3QpOwotICAgIGVsc2VDYXNl
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRl
ZEJsb2NrKHRhaWwpKTsKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOwogCiAgICAgVmFsdWUqIGRv
dWJsZUlucHV0ID0gdGFpbC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBQaGksIERvdWJsZSwgT3Jp
Z2luKCkpOwogICAgIHRoZW5WYWx1ZS0+c2V0UGhpKGRvdWJsZUlucHV0KTsKICAgICBlbHNlVmFs
dWUtPnNldFBoaShkb3VibGVJbnB1dCk7CiAgICAgVmFsdWUqIGVxdWFsID0gdGFpbC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBFcXVhbCwgT3JpZ2luKCksIGRvdWJsZUlucHV0LCBhcmcyQXNGUm91
bmRlZERvdWJsZSk7Ci0gICAgdGFpbC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgZXF1YWwpOworICAgIHRhaWwtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBlcXVhbCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxl
KHByb2MpOwogICAgIGludDMyX3QgaW50ZWdlckEgPSBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSk7
CkBAIC00MjYxLDcgKzQyNjksNyBAQCB2b2lkIHRlc3REb3VibGVUb0Zsb2F0VGhyb3VnaFBoaShm
bG9hdCB2CiAgICAgVmFsdWUqIGZsb2F0VmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUqIGFyZ0Fz
RG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmln
aW4oKSwgZmxvYXRWYWx1ZSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwg
T3JpZ2luKCksCiAgICAgICAgIGNvbmRpdGlvbiwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRo
ZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CkBAIC00MjY5LDE3ICs0Mjc3LDE3
IEBAIHZvaWQgdGVzdERvdWJsZVRvRmxvYXRUaHJvdWdoUGhpKGZsb2F0IHYKICAgICBWYWx1ZSog
cG9zdGl0aXZlQ29uc3QgPSB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCA0Mi41Zik7CiAgICAgVmFsdWUqIHRoZW5BZGQgPSB0aGVuQ2FzZS0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBhcmdBc0RvdWJsZSwgcG9zdGl0aXZl
Q29uc3QpOwogICAgIFVwc2lsb25WYWx1ZSogdGhlblZhbHVlID0gdGhlbkNhc2UtPmFwcGVuZE5l
dzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCB0aGVuQWRkKTsKLSAgICB0aGVuQ2FzZS0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRC
bG9jayh0YWlsKSk7CisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBK
dW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKIAogICAgIFZhbHVlKiBlbHNl
Q29uc3QgPSBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBNX1BJKTsKICAgICBVcHNpbG9uVmFsdWUqIGVsc2VWYWx1ZSA9IGVsc2VDYXNlLT5hcHBl
bmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgZWxzZUNvbnN0KTsKLSAgICBlbHNl
Q2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1
ZW50ZWRCbG9jayh0YWlsKSk7CisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKIAogICAgIFZhbHVl
KiBkb3VibGVJbnB1dCA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBEb3VibGUs
IE9yaWdpbigpKTsKICAgICB0aGVuVmFsdWUtPnNldFBoaShkb3VibGVJbnB1dCk7CiAgICAgZWxz
ZVZhbHVlLT5zZXRQaGkoZG91YmxlSW5wdXQpOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHRh
aWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIGRvdWJs
ZUlucHV0KTsKLSAgICB0YWlsLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CisgICAgdGFpbC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKIAogICAgIGF1dG8gY29kZSA9
IGNvbXBpbGUocHJvYyk7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoaW52b2tlPGZsb2F0PigqY29k
ZSwgMSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHZhbHVlKSksIHZhbHVlICsgNDIuNWYpKTsKQEAg
LTQyOTksMTggKzQzMDcsMTggQEAgdm9pZCB0ZXN0RG91YmxlUHJvZHVjZXJQaGlUb0Zsb2F0Q29u
dmVycwogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSkpOwogICAgIFZhbHVlKiBmbG9hdFZhbHVlID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3Vt
ZW50MzIpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAog
ICAgICAgICBjb25kaXRpb24sCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZy
ZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCiAgICAgVmFsdWUqIGFzRG91YmxlID0gdGhlbkNh
c2UtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGZsb2F0
VmFsdWUpOwogICAgIFVwc2lsb25WYWx1ZSogdGhlblZhbHVlID0gdGhlbkNhc2UtPmFwcGVuZE5l
dzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhc0RvdWJsZSk7Ci0gICAgdGhlbkNhc2Ut
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVk
QmxvY2sodGFpbCkpOworICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
SnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CiAKICAgICBWYWx1ZSogY29u
c3REb3VibGUgPSBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9y
aWdpbigpLCA0Mi41KTsKICAgICBVcHNpbG9uVmFsdWUqIGVsc2VWYWx1ZSA9IGVsc2VDYXNlLT5h
cHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgY29uc3REb3VibGUpOwotICAg
IGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwg
RnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOwogCiAgICAg
VmFsdWUqIGRvdWJsZUlucHV0ID0gdGFpbC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBQaGksIERv
dWJsZSwgT3JpZ2luKCkpOwogICAgIHRoZW5WYWx1ZS0+c2V0UGhpKGRvdWJsZUlucHV0KTsKQEAg
LTQzMTksNyArNDMyNyw3IEBAIHZvaWQgdGVzdERvdWJsZVByb2R1Y2VyUGhpVG9GbG9hdENvbnZl
cnMKICAgICBWYWx1ZSogYXJnQXNEb3VibGVBZ2FpbiA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGZsb2F0VmFsdWUpOwogICAgIFZhbHVlKiBm
aW5hbEFkZCA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgZG91
YmxlSW5wdXQsIGFyZ0FzRG91YmxlQWdhaW4pOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHRh
aWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIGZpbmFs
QWRkKTsKLSAgICB0YWlsLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBmbG9hdFJlc3VsdCk7CisgICAgdGFpbC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKIAogICAgIGF1dG8gY29kZSA9IGNv
bXBpbGUocHJvYyk7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoaW52b2tlPGZsb2F0PigqY29kZSwg
MSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHZhbHVlKSksIHZhbHVlICsgdmFsdWUpKTsKQEAgLTQz
NDEsMTggKzQzNDksMTggQEAgdm9pZCB0ZXN0RG91YmxlUHJvZHVjZXJQaGlUb0Zsb2F0Q29udmVy
cwogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSkpOwogICAgIFZhbHVlKiBmbG9hdFZhbHVlID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50
MzIpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAg
ICAgICBjb25kaXRpb24sCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1
ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCiAgICAgVmFsdWUqIGFzRG91YmxlID0gdGhlbkNhc2Ut
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGZsb2F0VmFs
dWUpOwogICAgIFVwc2lsb25WYWx1ZSogdGhlblZhbHVlID0gdGhlbkNhc2UtPmFwcGVuZE5ldzxV
cHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhc0RvdWJsZSk7Ci0gICAgdGhlbkNhc2UtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxv
Y2sodGFpbCkpOworICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVt
cCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CiAKICAgICBWYWx1ZSogY29uc3RE
b3VibGUgPSBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdp
bigpLCA0Mi41KTsKICAgICBVcHNpbG9uVmFsdWUqIGVsc2VWYWx1ZSA9IGVsc2VDYXNlLT5hcHBl
bmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgY29uc3REb3VibGUpOwotICAgIGVs
c2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJl
cXVlbnRlZEJsb2NrKHRhaWwpKTsKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOwogCiAgICAgVmFs
dWUqIGRvdWJsZUlucHV0ID0gdGFpbC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBQaGksIERvdWJs
ZSwgT3JpZ2luKCkpOwogICAgIHRoZW5WYWx1ZS0+c2V0UGhpKGRvdWJsZUlucHV0KTsKQEAgLTQz
NjgsNyArNDM3Niw3IEBAIHZvaWQgdGVzdERvdWJsZVByb2R1Y2VyUGhpVG9GbG9hdENvbnZlcnMK
ICAgICAvLyBUaGlzIG9uZSAqY2Fubm90KiBiZSBlbGltaW5hdGVkCiAgICAgVmFsdWUqIGRvdWJs
ZUFkZCA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgZG91Ymxl
SW5wdXQsIGRvdWJsZVJlc3VsdCk7CiAKLSAgICB0YWlsLT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBkb3VibGVBZGQpOworICAgIHRhaWwtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBkb3VibGVBZGQpOwogCiAgICAg
YXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBDSEVDSyhpc0lkZW50aWNhbChpbnZva2U8
ZG91YmxlPigqY29kZSwgMSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHZhbHVlKSksICh2YWx1ZSAr
IHZhbHVlKSArIHN0YXRpY19jYXN0PGRvdWJsZT4odmFsdWUpKSk7CkBAIC00Mzg4LDE4ICs0Mzk2
LDE4IEBAIHZvaWQgdGVzdERvdWJsZVByb2R1Y2VyUGhpV2l0aE5vbkZsb2F0Q28KICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjEpKTsKICAgICBWYWx1ZSogZmxvYXRWYWx1ZSA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKIAotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgY29uZGl0
aW9uLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2so
ZWxzZUNhc2UpKTsKIAogICAgIFZhbHVlKiBhc0RvdWJsZSA9IHRoZW5DYXNlLT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBmbG9hdFZhbHVlKTsKICAgICBV
cHNpbG9uVmFsdWUqIHRoZW5WYWx1ZSA9IHRoZW5DYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgYXNEb3VibGUpOwotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsK
KyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigp
LCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOwogCiAgICAgVmFsdWUqIGNvbnN0RG91YmxlID0gZWxz
ZUNhc2UtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgY29uc3RW
YWx1ZSk7CiAgICAgVXBzaWxvblZhbHVlKiBlbHNlVmFsdWUgPSBlbHNlQ2FzZS0+YXBwZW5kTmV3
PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGNvbnN0RG91YmxlKTsKLSAgICBlbHNlQ2Fz
ZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50
ZWRCbG9jayh0YWlsKSk7CisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKIAogICAgIFZhbHVlKiBk
b3VibGVJbnB1dCA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBEb3VibGUsIE9y
aWdpbigpKTsKICAgICB0aGVuVmFsdWUtPnNldFBoaShkb3VibGVJbnB1dCk7CkBAIC00NDA4LDcg
KzQ0MTYsNyBAQCB2b2lkIHRlc3REb3VibGVQcm9kdWNlclBoaVdpdGhOb25GbG9hdENvCiAgICAg
VmFsdWUqIGFyZ0FzRG91YmxlQWdhaW4gPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZs
b2F0VG9Eb3VibGUsIE9yaWdpbigpLCBmbG9hdFZhbHVlKTsKICAgICBWYWx1ZSogZmluYWxBZGQg
PSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGRvdWJsZUlucHV0
LCBhcmdBc0RvdWJsZUFnYWluKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSB0YWlsLT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBmaW5hbEFkZCk7Ci0g
ICAgdGFpbC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
ZmxvYXRSZXN1bHQpOworICAgIHRhaWwtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHBy
b2MpOwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGludm9rZTxmbG9hdD4oKmNvZGUsIDEsIGJpdHdp
c2VfY2FzdDxpbnQzMl90Pih2YWx1ZSkpLCB2YWx1ZSArIHZhbHVlKSk7CkBAIC00NDIxLDcgKzQ0
MjksNyBAQCB2b2lkIHRlc3REb3VibGVBcmdUb0ludDY0Qml0d2lzZUNhc3QoZG91CiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86
OmFyZ3VtZW50RlBSMCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50KSk7CkBAIC00NDM1LDcgKzQ0NDMsNyBA
QCB2b2lkIHRlc3REb3VibGVJbW1Ub0ludDY0Qml0d2lzZUNhc3QoZG91CiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5h
cHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKTsKIAotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4o
KSwgYXJndW1lbnQpKTsKQEAgLTQ0NTAsNyArNDQ1OCw3IEBAIHZvaWQgdGVzdFR3b0JpdHdpc2VD
YXN0T25Eb3VibGUoZG91YmxlIHYKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBS
MCk7CiAgICAgVmFsdWUqIGZpcnN0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3
aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBWYWx1ZSogc2Vjb25kID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZpcnN0KTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBz
ZWNvbmQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBzZWNvbmQpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxk
b3VibGU+KHByb2MsIHZhbHVlKSwgdmFsdWUpKTsKIH0KQEAgLTQ0NjIsNyArNDQ3MCw3IEBAIHZv
aWQgdGVzdEJpdHdpc2VDYXN0T25Eb3VibGVJbk1lbW9yeShkb3UKICAgICBWYWx1ZSogYWRkcmVz
cyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BS
SW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBNZW1vcnlWYWx1ZSogbG9hZERvdWJsZSA9IHJvb3Qt
PmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgRG91YmxlLCBPcmlnaW4oKSwgYWRk
cmVzcyk7CiAgICAgVmFsdWUqIGNhc3QgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJp
dHdpc2VDYXN0LCBPcmlnaW4oKSwgbG9hZERvdWJsZSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FzdCk7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNhc3QpOwogCiAgICAg
Q0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAmdmFsdWUpLCBi
aXR3aXNlX2Nhc3Q8aW50NjRfdD4odmFsdWUpKSk7CiB9CkBAIC00NDc5LDcgKzQ0ODcsNyBAQCB2
b2lkIHRlc3RCaXR3aXNlQ2FzdE9uRG91YmxlSW5NZW1vcnlJbmRlCiAgICAgVmFsdWUqIGFkZHJl
c3MgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGJhc2UsIHNj
YWxlZE9mZnNldCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWREb3VibGUgPSByb290LT5hcHBlbmRO
ZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIERvdWJsZSwgT3JpZ2luKCksIGFkZHJlc3MpOwog
ICAgIFZhbHVlKiBjYXN0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2Fz
dCwgT3JpZ2luKCksIGxvYWREb3VibGUpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNhc3QpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0KTsKIAogICAgIENIRUNLKGlz
SWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgJnZhbHVlLCAwKSwgYml0d2lz
ZV9jYXN0PGludDY0X3Q+KHZhbHVlKSkpOwogfQpAQCAtNDQ5MCw3ICs0NDk4LDcgQEAgdm9pZCB0
ZXN0SW50NjRCQXJnVG9Eb3VibGVCaXR3aXNlQ2FzdChpbgogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjAp
OwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0d2lzZUNhc3Qs
IE9yaWdpbigpLCBhcmd1bWVudCkpOwpAQCAtNDUwNCw3ICs0NTEyLDcgQEAgdm9pZCB0ZXN0SW50
NjRCSW1tVG9Eb3VibGVCaXR3aXNlQ2FzdChpbgogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0
NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQpKTsKQEAg
LTQ1MTksNyArNDUyNyw3IEBAIHZvaWQgdGVzdFR3b0JpdHdpc2VDYXN0T25JbnQ2NChpbnQ2NF90
IHYKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIGZp
cnN0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCks
IGFyZ3VtZW50KTsKICAgICBWYWx1ZSogc2Vjb25kID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZpcnN0KTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmQpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmQpOwog
CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCB2YWx1
ZSksIHZhbHVlKSk7CiB9CkBAIC00NTMxLDcgKzQ1MzksNyBAQCB2b2lkIHRlc3RCaXR3aXNlQ2Fz
dE9uSW50NjRJbk1lbW9yeShpbnQ2CiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BS
MCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWREb3VibGUgPSByb290LT5hcHBlbmROZXc8TWVtb3J5
VmFsdWU+KHByb2MsIExvYWQsIEludDY0LCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUq
IGNhc3QgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4o
KSwgbG9hZERvdWJsZSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgY2FzdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNhc3QpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwo
Y29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsICZ2YWx1ZSksIGJpdHdpc2VfY2FzdDxkb3VibGU+
KHZhbHVlKSkpOwogfQpAQCAtNDU0OCw3ICs0NTU2LDcgQEAgdm9pZCB0ZXN0Qml0d2lzZUNhc3RP
bkludDY0SW5NZW1vcnlJbmRleAogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBiYXNlLCBzY2FsZWRPZmZzZXQpOwogICAgIE1l
bW9yeVZhbHVlKiBsb2FkRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9j
LCBMb2FkLCBJbnQ2NCwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBjYXN0ID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGxvYWREb3Vi
bGUpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIGNhc3QpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBjYXN0KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRS
dW48ZG91YmxlPihwcm9jLCAmdmFsdWUsIDApLCBiaXR3aXNlX2Nhc3Q8ZG91YmxlPih2YWx1ZSkp
KTsKIH0KQEAgLTQ1NTksNyArNDU2Nyw3IEBAIHZvaWQgdGVzdEZsb2F0SW1tVG9JbnQzMkJpdHdp
c2VDYXN0KGZsb2EKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAg
IFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2Ms
IE9yaWdpbigpLCB2YWx1ZSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBw
cm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50KSk7CkBAIC00NTc0LDcgKzQ1ODIs
NyBAQCB2b2lkIHRlc3RCaXR3aXNlQ2FzdE9uRmxvYXRJbk1lbW9yeShmbG9hCiAgICAgVmFsdWUq
IGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWRGbG9hdCA9
IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgRmxvYXQsIE9yaWdpbigp
LCBhZGRyZXNzKTsKICAgICBWYWx1ZSogY2FzdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBsb2FkRmxvYXQpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNhc3QpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0KTsKIAog
ICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgJnZhbHVl
KSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHZhbHVlKSkpOwogfQpAQCAtNDU4NSw3ICs0NTkzLDcg
QEAgdm9pZCB0ZXN0SW50MzJCQXJnVG9GbG9hdEJpdHdpc2VDYXN0KGludAogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjApOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0
d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudCkpOwpAQCAtNDU5OSw3ICs0NjA3LDcgQEAgdm9p
ZCB0ZXN0SW50MzJCSW1tVG9GbG9hdEJpdHdpc2VDYXN0KGludAogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5k
TmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKTsKIAotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1l
bnQpKTsKQEAgLTQ2MTQsNyArNDYyMiw3IEBAIHZvaWQgdGVzdFR3b0JpdHdpc2VDYXN0T25JbnQz
MihpbnQzMl90IHYKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAg
VmFsdWUqIGZpcnN0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwg
T3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBWYWx1ZSogc2Vjb25kID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZpcnN0KTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmQpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBz
ZWNvbmQpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihw
cm9jLCB2YWx1ZSksIHZhbHVlKSk7CiB9CkBAIC00NjI2LDcgKzQ2MzQsNyBAQCB2b2lkIHRlc3RC
aXR3aXNlQ2FzdE9uSW50MzJJbk1lbW9yeShpbnQzCiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWRGbG9hdCA9IHJvb3QtPmFwcGVuZE5l
dzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50MzIsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAg
ICBWYWx1ZSogY2FzdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3Qs
IE9yaWdpbigpLCBsb2FkRmxvYXQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNhc3QpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0KTsKIAogICAgIENIRUNLKGlzSWRl
bnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsICZ2YWx1ZSksIGJpdHdpc2VfY2FzdDxm
bG9hdD4odmFsdWUpKSk7CiB9CkBAIC00NjM3LDcgKzQ2NDUsNyBAQCB2b2lkIHRlc3RDb252ZXJ0
RG91YmxlVG9GbG9hdEFyZyhkb3VibGUgCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFs
dWUqIGFzRmxvYXQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQs
IE9yaWdpbigpLCBhcmd1bWVudCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNGbG9hdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFzRmxvYXQpOwogCiAgICAgQ0hFQ0so
aXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYywgdmFsdWUpLCBzdGF0aWNfY2Fz
dDxmbG9hdD4odmFsdWUpKSk7CiB9CkBAIC00NjQ4LDcgKzQ2NTYsNyBAQCB2b2lkIHRlc3RDb252
ZXJ0RG91YmxlVG9GbG9hdEltbShkb3VibGUgCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8Q29uc3RE
b3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKTsKICAgICBWYWx1ZSogYXNGbG9hdCA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIGFy
Z3VtZW50KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBhc0Zsb2F0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgYXNGbG9hdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChj
b21waWxlQW5kUnVuPGZsb2F0Pihwcm9jKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlKSkpOwog
fQpAQCAtNDY2MCw3ICs0NjY4LDcgQEAgdm9pZCB0ZXN0Q29udmVydERvdWJsZVRvRmxvYXRNZW0o
ZG91YmxlIAogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9y
eVZhbHVlKiBsb2FkZWREb3VibGUgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2Ms
IExvYWQsIERvdWJsZSwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBhc0Zsb2F0ID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgbG9h
ZGVkRG91YmxlKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBhc0Zsb2F0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNGbG9hdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNh
bChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jLCAmdmFsdWUpLCBzdGF0aWNfY2FzdDxmbG9hdD4o
dmFsdWUpKSk7CiB9CkBAIC00NjczLDcgKzQ2ODEsNyBAQCB2b2lkIHRlc3RDb252ZXJ0RmxvYXRU
b0RvdWJsZUFyZyhmbG9hdCB2CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgVmFsdWUq
IGZsb2F0VmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBP
cmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUqIGFzRG91YmxlID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
YXNEb3VibGUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBhc0RvdWJsZSk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5k
UnVuPGRvdWJsZT4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KHZhbHVlKSksIHN0YXRpY19j
YXN0PGRvdWJsZT4odmFsdWUpKSk7CiB9CkBAIC00Njg0LDcgKzQ2OTIsNyBAQCB2b2lkIHRlc3RD
b252ZXJ0RmxvYXRUb0RvdWJsZUltbShmbG9hdCB2CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8Q29u
c3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpOwogICAgIFZhbHVlKiBhc0RvdWJs
ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCks
IGFyZ3VtZW50KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBhc0RvdWJsZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFzRG91YmxlKTsKIAogICAgIENIRUNLKGlzSWRlbnRp
Y2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jKSwgc3RhdGljX2Nhc3Q8ZG91YmxlPih2YWx1
ZSkpKTsKIH0KQEAgLTQ2OTYsNyArNDcwNCw3IEBAIHZvaWQgdGVzdENvbnZlcnRGbG9hdFRvRG91
YmxlTWVtKGZsb2F0IHYKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAg
ICBNZW1vcnlWYWx1ZSogbG9hZGVkRmxvYXQgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+
KHByb2MsIExvYWQsIEZsb2F0LCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIGFzRG91
YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4o
KSwgbG9hZGVkRmxvYXQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIGFzRG91YmxlKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNEb3VibGUpOwogCiAgICAgQ0hFQ0soaXNJ
ZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsICZ2YWx1ZSksIHN0YXRpY19jYXN0
PGRvdWJsZT4odmFsdWUpKSk7CiB9CkBAIC00NzA5LDcgKzQ3MTcsNyBAQCB2b2lkIHRlc3RDb252
ZXJ0RG91YmxlVG9GbG9hdFRvRG91YmxlVG9GCiAgICAgVmFsdWUqIGFzRmxvYXQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBhcmd1bWVudCk7
CiAgICAgVmFsdWUqIGFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9h
dFRvRG91YmxlLCBPcmlnaW4oKSwgYXNGbG9hdCk7CiAgICAgVmFsdWUqIGFzRmxvYXRBZ2FpbiA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIGFz
RG91YmxlKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBhc0Zsb2F0QWdhaW4pOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0Zsb2F0QWdhaW4pOwogCiAgICAgQ0hFQ0soaXNJ
ZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYywgdmFsdWUpLCBzdGF0aWNfY2FzdDxm
bG9hdD4odmFsdWUpKSk7CiB9CkBAIC00NzI1LDcgKzQ3MzMsNyBAQCB2b2lkIHRlc3RMb2FkRmxv
YXRDb252ZXJ0RG91YmxlQ29udmVydEZsCiAgICAgVmFsdWUqIGFzRmxvYXRBZ2FpbiA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIGFzRG91Ymxl
KTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4o
KSwgYXNGbG9hdEFnYWluLCBkc3QpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIDApKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDApKTsKIAogICAgIGZsb2F0IGlucHV0ID0gdmFsdWU7CiAgICAgZmxvYXQgb3V0
cHV0ID0gMC47CkBAIC00NzQwLDcgKzQ3NDgsNyBAQCB2b2lkIHRlc3RGcm91bmRBcmcoZG91Ymxl
IHZhbHVlKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1
ZSogYXNGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwg
T3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBWYWx1ZSogYXNEb3VibGUgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBhc0Zsb2F0KTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0Rv
dWJsZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIGFzRG91YmxlKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48
ZG91YmxlPihwcm9jLCB2YWx1ZSksIHN0YXRpY19jYXN0PGRvdWJsZT4oc3RhdGljX2Nhc3Q8Zmxv
YXQ+KHZhbHVlKSkpKTsKIH0KQEAgLTQ3NTMsNyArNDc2MSw3IEBAIHZvaWQgdGVzdEZyb3VuZE1l
bShkb3VibGUgdmFsdWUpCiAgICAgTWVtb3J5VmFsdWUqIGxvYWRlZERvdWJsZSA9IHJvb3QtPmFw
cGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgRG91YmxlLCBPcmlnaW4oKSwgYWRkcmVz
cyk7CiAgICAgVmFsdWUqIGFzRmxvYXQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERv
dWJsZVRvRmxvYXQsIE9yaWdpbigpLCBsb2FkZWREb3VibGUpOwogICAgIFZhbHVlKiBhc0RvdWJs
ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCks
IGFzRmxvYXQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIGFzRG91YmxlKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNEb3VibGUpOwogCiAgICAgQ0hFQ0soaXNJZGVudGlj
YWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsICZ2YWx1ZSksIHN0YXRpY19jYXN0PGRvdWJs
ZT4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlKSkpKTsKIH0KQEAgLTQ3NjQsNyArNDc3Miw3IEBA
IHZvaWQgdGVzdElUb0Q2NEFyZygpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKICAgICBWYWx1ZSogc3JjID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFZhbHVlKiBzcmNB
c0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIHNy
Yyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgc3JjQXNEb3VibGUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0RvdWJsZSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21w
aWxlKHByb2MpOwogICAgIGZvciAoYXV0byB0ZXN0VmFsdWUgOiBpbnQ2NE9wZXJhbmRzKCkpCkBA
IC00Nzc3LDcgKzQ3ODUsNyBAQCB2b2lkIHRlc3RJVG9GNjRBcmcoKQogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHNyYyA9IHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIw
KTsKICAgICBWYWx1ZSogc3JjQXNGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
SVRvRiwgT3JpZ2luKCksIHNyYyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXQpOwogCiAgICAg
YXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBmb3IgKGF1dG8gdGVzdFZhbHVlIDogaW50
NjRPcGVyYW5kcygpKQpAQCAtNDc5MSw3ICs0Nzk5LDcgQEAgdm9pZCB0ZXN0SVRvRDMyQXJnKCkK
ICAgICBWYWx1ZSogc3JjID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgVmFsdWUqIHNyY0FzRG91Ymxl
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgc3JjKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBz
cmNBc0RvdWJsZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHNyY0FzRG91YmxlKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJv
Yyk7CiAgICAgZm9yIChhdXRvIHRlc3RWYWx1ZSA6IGludDMyT3BlcmFuZHMoKSkKQEAgLTQ4MDUs
NyArNDgxMyw3IEBAIHZvaWQgdGVzdElUb0YzMkFyZygpCiAgICAgVmFsdWUqIHNyYyA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCkpOwogICAgIFZhbHVlKiBzcmNBc0Zsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBJVG9GLCBPcmlnaW4oKSwgc3JjKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0KTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdCk7
CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIGZvciAoYXV0byB0ZXN0VmFs
dWUgOiBpbnQzMk9wZXJhbmRzKCkpCkBAIC00ODE5LDcgKzQ4MjcsNyBAQCB2b2lkIHRlc3RJVG9E
NjRNZW0oKQogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9y
eVZhbHVlKiBsb2FkZWRTcmMgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExv
YWQsIEludDY0LCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIHNyY0FzRG91YmxlID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgbG9hZGVkU3JjKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBzcmNBc0RvdWJsZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHNyY0FzRG91YmxlKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUo
cHJvYyk7CiAgICAgaW50NjRfdCBpbk1lbW9yeVZhbHVlOwpAQCAtNDgzNyw3ICs0ODQ1LDcgQEAg
dm9pZCB0ZXN0SVRvRjY0TWVtKCkKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIw
KTsKICAgICBNZW1vcnlWYWx1ZSogbG9hZGVkU3JjID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZh
bHVlPihwcm9jLCBMb2FkLCBJbnQ2NCwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBz
cmNBc0Zsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9GLCBPcmlnaW4oKSwg
bG9hZGVkU3JjKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdCk7CiAKICAgICBhdXRvIGNvZGUg
PSBjb21waWxlKHByb2MpOwogICAgIGludDY0X3QgaW5NZW1vcnlWYWx1ZTsKQEAgLTQ4NTUsNyAr
NDg2Myw3IEBAIHZvaWQgdGVzdElUb0QzMk1lbSgpCiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWRlZFNyYyA9IHJvb3QtPmFwcGVuZE5l
dzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50MzIsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAg
ICBWYWx1ZSogc3JjQXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0Qs
IE9yaWdpbigpLCBsb2FkZWRTcmMpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRG91YmxlKTsKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNEb3VibGUpOwogCiAg
ICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBpbnQzMl90IGluTWVtb3J5VmFsdWU7
CkBAIC00ODczLDcgKzQ4ODEsNyBAQCB2b2lkIHRlc3RJVG9GMzJNZW0oKQogICAgIFZhbHVlKiBh
ZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkZWRTcmMgPSBy
b290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwg
YWRkcmVzcyk7CiAgICAgVmFsdWUqIHNyY0FzRmxvYXQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIElUb0YsIE9yaWdpbigpLCBsb2FkZWRTcmMpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXQpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zs
b2F0KTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgaW50MzJfdCBpbk1l
bW9yeVZhbHVlOwpAQCAtNDg5MCw3ICs0ODk4LDcgQEAgdm9pZCB0ZXN0SVRvRDY0SW1tKGludDY0
X3QgdmFsdWUpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBW
YWx1ZSogc3JjID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IHZhbHVlKTsKICAgICBWYWx1ZSogc3JjQXNGbG9hdGluZ1BvaW50ID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgc3JjKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0aW5nUG9pbnQp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBzcmNBc0Zsb2F0aW5nUG9pbnQpOwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRS
dW48ZG91YmxlPihwcm9jKSwgc3RhdGljX2Nhc3Q8ZG91YmxlPih2YWx1ZSkpKTsKIH0KIApAQCAt
NDkwMCw3ICs0OTA4LDcgQEAgdm9pZCB0ZXN0SVRvRjY0SW1tKGludDY0X3QgdmFsdWUpCiAgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogc3JjID0gcm9v
dC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKTsKICAgICBW
YWx1ZSogc3JjQXNGbG9hdGluZ1BvaW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJ
VG9GLCBPcmlnaW4oKSwgc3JjKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0aW5nUG9pbnQpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0aW5n
UG9pbnQpOwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2Mp
LCBzdGF0aWNfY2FzdDxmbG9hdD4odmFsdWUpKSk7CiB9CiAKQEAgLTQ5MTAsNyArNDkxOCw3IEBA
IHZvaWQgdGVzdElUb0QzMkltbShpbnQzMl90IHZhbHVlKQogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHNyYyA9IHJvb3QtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSk7CiAgICAgVmFsdWUqIHNyY0FzRmxvYXRp
bmdQb2ludCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIHNy
Yyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgc3JjQXNGbG9hdGluZ1BvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdGluZ1BvaW50KTsKICAgICBDSEVD
Syhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYyksIHN0YXRpY19jYXN0PGRv
dWJsZT4odmFsdWUpKSk7CiB9CiAKQEAgLTQ5MjAsNyArNDkyOCw3IEBAIHZvaWQgdGVzdElUb0Yz
MkltbShpbnQzMl90IHZhbHVlKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7CiAgICAgVmFsdWUqIHNyYyA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCB2YWx1ZSk7CiAgICAgVmFsdWUqIHNyY0FzRmxvYXRpbmdQb2ludCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRiwgT3JpZ2luKCksIHNyYyk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9h
dGluZ1BvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgc3JjQXNGbG9hdGluZ1BvaW50KTsKICAgICBDSEVDSyhpc0lkZW50aWNhbChj
b21waWxlQW5kUnVuPGZsb2F0Pihwcm9jKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlKSkpOwog
fQogCkBAIC00OTMxLDcgKzQ5MzksNyBAQCB2b2lkIHRlc3RJVG9EUmVkdWNlZFRvSVRvRjY0QXJn
KCkKICAgICBWYWx1ZSogc3JjID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFZhbHVlKiBzcmNBc0Rv
dWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIHNyYyk7
CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBE
b3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgc3JjQXNEb3VibGUpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZmxv
YXRSZXN1bHQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBmb3IgKGF1
dG8gdGVzdFZhbHVlIDogaW50NjRPcGVyYW5kcygpKQpAQCAtNDk0Niw3ICs0OTU0LDcgQEAgdm9p
ZCB0ZXN0SVRvRFJlZHVjZWRUb0lUb0YzMkFyZygpCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7
CiAgICAgVmFsdWUqIHNyY0FzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJ
VG9ELCBPcmlnaW4oKSwgc3JjKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBzcmNBc0RvdWJsZSk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgZmxvYXRSZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxl
KHByb2MpOwogICAgIGZvciAoYXV0byB0ZXN0VmFsdWUgOiBpbnQzMk9wZXJhbmRzKCkpCkBAIC00
OTY0LDcgKzQ5NzIsNyBAQCB2b2lkIHRlc3RTdG9yZTMyKGludCB2YWx1ZSkKICAgICAgICAgICAg
IHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJnNs
b3QpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3Qt
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBDSEVD
SyghY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIHZhbHVlKSk7CkBAIC00OTgwLDcgKzQ5ODgsNyBA
QCB2b2lkIHRlc3RTdG9yZUNvbnN0YW50KGludCB2YWx1ZSkKICAgICAgICAgcHJvYywgU3RvcmUs
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgdmFsdWUpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksICZzbG90KSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgMCkpOwogCiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50Pihwcm9jKSk7CkBAIC01MDAw
LDcgKzUwMDgsNyBAQCB2b2lkIHRlc3RTdG9yZUNvbnN0YW50UHRyKGludHB0cl90IHZhbHVlCiAg
ICAgICAgIHByb2MsIFN0b3JlLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENv
bnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJnNsb3QpKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMy
VmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxp
bnQ+KHByb2MpKTsKQEAgLTUwMTgsNyArNTAyNiw3IEBAIHZvaWQgdGVzdFN0b3JlOEFyZygpCiAg
ICAgICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwogCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmU4LCBPcmlnaW4oKSwgdmFsdWUsIGFk
ZHJlc3MpOwotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCB2YWx1ZSk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CiAKICAgICAgICAgaW50OF90IHN0b3Jh
Z2UgPSAwOwogICAgICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIDQyLCAm
c3RvcmFnZSkgPT0gNDIpOwpAQCAtNTAzOSw3ICs1MDQ3LDcgQEAgdm9pZCB0ZXN0U3RvcmU4QXJn
KCkKICAgICAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEFkZCwgT3JpZ2luKCksIGJhc2VEaXNwbGFjZW1lbnQsIG9mZnNldCk7CiAKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZTgsIE9yaWdpbigpLCB2YWx1ZSwg
YWRkcmVzcyk7Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHZhbHVlKTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKIAogICAgICAgICBpbnQ4X3Qgc3Rv
cmFnZSA9IDA7CiAgICAgICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgNDIs
ICZzdG9yYWdlLCAxKSA9PSA0Mik7CkBAIC01MDU3LDcgKzUwNjUsNyBAQCB2b2lkIHRlc3RTdG9y
ZThJbW0oKQogICAgICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKIAogICAg
ICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlOCwgT3JpZ2luKCks
IHZhbHVlLCBhZGRyZXNzKTsKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOworICAgICAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOwogCiAgICAgICAgIGlu
dDhfdCBzdG9yYWdlID0gMDsKICAgICAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihw
cm9jLCAmc3RvcmFnZSkgPT0gNDIpOwpAQCAtNTA3Nyw3ICs1MDg1LDcgQEAgdm9pZCB0ZXN0U3Rv
cmU4SW1tKCkKICAgICAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEFkZCwgT3JpZ2luKCksIGJhc2VEaXNwbGFjZW1lbnQsIG9mZnNldCk7CiAKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZTgsIE9yaWdpbigpLCB2
YWx1ZSwgYWRkcmVzcyk7Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKIAogICAgICAgICBpbnQ4
X3Qgc3RvcmFnZSA9IDA7CiAgICAgICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJv
YywgJnN0b3JhZ2UsIDEpID09IDQyKTsKQEAgLTUxMjksNyArNTEzNyw3IEBAIHZvaWQgdGVzdFN0
b3JlUGFydGlhbDhCaXRSZWdpc3Rlck9uWDg2KCkKICAgICAvLyBpZiB3ZSB1c2UgWDg2IHBhcnRp
YWwgcmVnaXN0ZXJzLgogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3Rv
cmU4LCBPcmlnaW4oKSwgcGF0Y2hwb2ludCwgd2hlcmVUb1N0b3JlKTsKIAotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJldHVyblZhbHVl
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmV0dXJuVmFsdWUpOwogCiAgICAgaW50OF90IHN0b3JhZ2UgPSAweGZmOwogICAgIENIRUNL
KGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgMHgxMjM0NTY3OGFiY2RlZjEyLCAmc3RvcmFn
ZSkgPT0gMHgxMjM0NTY3OGFiY2RlZjEyKTsKQEAgLTUxNDcsNyArNTE1NSw3IEBAIHZvaWQgdGVz
dFN0b3JlMTZBcmcoKQogICAgICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsK
IAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlMTYsIE9y
aWdpbigpLCB2YWx1ZSwgYWRkcmVzcyk7Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKKyAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKIAogICAg
ICAgICBpbnQxNl90IHN0b3JhZ2UgPSAtMTsKICAgICAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxp
bnQ2NF90Pihwcm9jLCA0MiwgJnN0b3JhZ2UpID09IDQyKTsKQEAgLTUxNjgsNyArNTE3Niw3IEBA
IHZvaWQgdGVzdFN0b3JlMTZBcmcoKQogICAgICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYmFzZURpc3BsYWNlbWVudCwgb2Zm
c2V0KTsKIAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3Jl
MTYsIE9yaWdpbigpLCB2YWx1ZSwgYWRkcmVzcyk7Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKKyAgICAgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsK
IAogICAgICAgICBpbnQxNl90IHN0b3JhZ2UgPSAtMTsKICAgICAgICAgQ0hFQ0soY29tcGlsZUFu
ZFJ1bjxpbnQ2NF90Pihwcm9jLCA0MiwgJnN0b3JhZ2UsIDEpID09IDQyKTsKQEAgLTUxODYsNyAr
NTE5NCw3IEBAIHZvaWQgdGVzdFN0b3JlMTZJbW0oKQogICAgICAgICBWYWx1ZSogYWRkcmVzcyA9
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIwKTsKIAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+
KHByb2MsIFN0b3JlMTYsIE9yaWdpbigpLCB2YWx1ZSwgYWRkcmVzcyk7Ci0gICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsK
KyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHZhbHVlKTsKIAogICAgICAgICBpbnQxNl90IHN0b3JhZ2UgPSAtMTsKICAgICAgICAgQ0hF
Q0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAmc3RvcmFnZSkgPT0gNDIpOwpAQCAtNTIw
Niw3ICs1MjE0LDcgQEAgdm9pZCB0ZXN0U3RvcmUxNkltbSgpCiAgICAgICAgIFZhbHVlKiBhZGRy
ZXNzID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBiYXNlRGlz
cGxhY2VtZW50LCBvZmZzZXQpOwogCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1
ZT4ocHJvYywgU3RvcmUxNiwgT3JpZ2luKCksIHZhbHVlLCBhZGRyZXNzKTsKLSAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUp
OworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgdmFsdWUpOwogCiAgICAgICAgIGludDE2X3Qgc3RvcmFnZSA9IC0xOwogICAgICAgICBD
SEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsICZzdG9yYWdlLCAxKSA9PSA0Mik7CkBA
IC01MjE4LDcgKzUyMjYsNyBAQCB2b2lkIHRlc3RUcnVuYyhpbnQ2NF90IHZhbHVlKQogewogICAg
IFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigp
LApAQCAtNTIzMSw3ICs1MjM5LDcgQEAgdm9pZCB0ZXN0QWRkMShpbnQgdmFsdWUpCiB7CiAgICAg
UHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLApA
QCAtNTI0Nyw3ICs1MjU1LDcgQEAgdm9pZCB0ZXN0QWRkMVB0cihpbnRwdHJfdCB2YWx1ZSkKIHsK
ICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2lu
KCksCkBAIC01MjYxLDcgKzUyNjksNyBAQCB2b2lkIHRlc3ROZWczMihpbnQzMl90IHZhbHVlKQog
ewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU3ViLCBPcmln
aW4oKSwKQEAgLTUyNzcsNyArNTI4NSw3IEBAIHZvaWQgdGVzdE5lZ1B0cihpbnRwdHJfdCB2YWx1
ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFN1Yiwg
T3JpZ2luKCksCkBAIC01MzAyLDcgKzUzMTAsNyBAQCB2b2lkIHRlc3RTdG9yZUFkZExvYWQzMihp
bnQgYW1vdW50KQogICAgICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAg
ICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01MzIzLDcgKzUz
MzEsNyBAQCB2b2lkIHRlc3RTdG9yZUFkZExvYWRJbW0zMihpbnQgYW1vdW50KQogICAgICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2lu
KCksIHNsb3RQdHIpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIGFtb3VudCkpLAogICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTUzNDYsNyArNTM1NCw3
IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9hZDgoaW50IGFtb3VudCwgQjM6Ok8KICAgICAgICAgICAg
ICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApKSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIDApKTsKIApAQCAtNTM2Nyw3ICs1Mzc1LDcgQEAgdm9pZCB0ZXN0U3RvcmVB
ZGRMb2FkSW1tOChpbnQgYW1vdW50LCBCMwogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1l
bW9yeVZhbHVlPihwcm9jLCBsb2FkT3Bjb2RlLCBPcmlnaW4oKSwgc2xvdFB0ciksCiAgICAgICAg
ICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYW1vdW50
KSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDApKTsKIApAQCAtNTM5MCw3ICs1Mzk4LDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRM
b2FkMTYoaW50IGFtb3VudCwgQjM6OgogICAgICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmln
aW4oKSwKICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpKSwKICAgICAgICAgc2xvdFB0
cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBA
IC01NDExLDcgKzU0MTksNyBAQCB2b2lkIHRlc3RTdG9yZUFkZExvYWRJbW0xNihpbnQgYW1vdW50
LCBCCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIGxvYWRP
cGNvZGUsIE9yaWdpbigpLCBzbG90UHRyKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhbW91bnQpKSwKICAgICAgICAgc2xvdFB0cik7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01
NDMyLDcgKzU0NDAsNyBAQCB2b2lkIHRlc3RTdG9yZUFkZExvYWQ2NChpbnQgYW1vdW50KQogICAg
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQ2NCwg
T3JpZ2luKCksIHNsb3RQdHIpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50
UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAg
ICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
MCkpOwogCkBAIC01NDUzLDcgKzU0NjEsNyBAQCB2b2lkIHRlc3RTdG9yZUFkZExvYWRJbW02NChp
bnQ2NF90IGFtb3VuCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHBy
b2MsIExvYWQsIEludDY0LCBPcmlnaW4oKSwgc2xvdFB0ciksCiAgICAgICAgICAgICByb290LT5h
cHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYW1vdW50KSksCiAgICAgICAg
IHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDAp
KTsKIApAQCAtNTQ4NSw3ICs1NDkzLDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkMzJJbmRleChp
bnQgYW1vdW50KQogICAgICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAg
ICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01NTE1LDcgKzU1
MjMsNyBAQCB2b2lkIHRlc3RTdG9yZUFkZExvYWRJbW0zMkluZGV4KGludCBhbW91CiAgICAgICAg
ICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDMyLCBPcmln
aW4oKSwgc2xvdFB0ciksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgYW1vdW50KSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNTU0Nyw3ICs1NTU1
LDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkOEluZGV4KGludCBhbW91bnQsIAogICAgICAgICAg
ICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgICAgICByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCkpKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01NTc3LDcgKzU1ODUsNyBAQCB2b2lkIHRlc3RTdG9y
ZUFkZExvYWRJbW04SW5kZXgoaW50IGFtb3VuCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8
TWVtb3J5VmFsdWU+KHByb2MsIGxvYWRPcGNvZGUsIE9yaWdpbigpLCBzbG90UHRyKSwKICAgICAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhbW91
bnQpKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgMCkpOwogCkBAIC01NjA5LDcgKzU2MTcsNyBAQCB2b2lkIHRlc3RTdG9yZUFk
ZExvYWQxNkluZGV4KGludCBhbW91bnQsCiAgICAgICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9y
aWdpbigpLAogICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSkpLAogICAgICAgICBzbG90
UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAK
QEAgLTU2MzksNyArNTY0Nyw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9hZEltbTE2SW5kZXgoaW50
IGFtb3UKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgbG9h
ZE9wY29kZSwgT3JpZ2luKCksIHNsb3RQdHIpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFtb3VudCkpLAogICAgICAgICBzbG90UHRy
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAg
LTU2NjksNyArNTY3Nyw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9hZDY0SW5kZXgoaW50IGFtb3Vu
dCkKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwg
SW50NjQsIE9yaWdpbigpLCBzbG90UHRyKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSks
CiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIDApKTsKIApAQCAtNTY5OSw3ICs1NzA3LDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2Fk
SW1tNjRJbmRleChpbnQ2NF90IAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZh
bHVlPihwcm9jLCBMb2FkLCBJbnQ2NCwgT3JpZ2luKCksIHNsb3RQdHIpLAogICAgICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFtb3VudCkpLAog
ICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAwKSk7CiAKQEAgLTU3MjMsNyArNTczMSw3IEBAIHZvaWQgdGVzdFN0b3JlU3ViTG9hZChp
bnQgYW1vdW50KQogICAgICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAg
ICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01NzUwLDcgKzU3
NTgsNyBAQCB2b2lkIHRlc3RTdG9yZUFkZExvYWRJbnRlcmZlcmVuY2UoaW50IGFtCiAgICAgICAg
ICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLAogICAgICAgICAgICAgbG9hZCwgcm9vdC0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFtb3VudCkpLAogICAgICAgICBzbG90
UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAK
QEAgLTU3NzQsNyArNTc4Miw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkQW5kTG9hZChpbnQgYW1vdW50
LCBpbnQKICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgYW1vdW50KSksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgbWFzaykpLAogICAgICAgICBzbG90UHRyKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTU3OTksNyAr
NTgwNyw3IEBAIHZvaWQgdGVzdFN0b3JlTmVnTG9hZDMyKGludDMyX3QgdmFsdWUpCiAgICAgICAg
ICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDMyLCBPcmln
aW4oKSwgc2xvdFB0cikpLAogICAgICAgICBzbG90UHRyKTsKICAgICAKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQz
Ml90Pihwcm9jKSk7CkBAIC01ODIzLDcgKzU4MzEsNyBAQCB2b2lkIHRlc3RTdG9yZU5lZ0xvYWRQ
dHIoaW50cHRyX3QgdmFsdWUpCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFs
dWU+KHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLCBzbG90UHRyKSksCiAgICAg
ICAgIHNsb3RQdHIpOwogICAgIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDAp
KTsKIAogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MpKTsKQEAgLTU4MzQs
NyArNTg0Miw3IEBAIHZvaWQgdGVzdEFkZDFVbmNvbW11dGVkKGludCB2YWx1ZSkKIHsKICAgICBQ
cm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCkBA
IC01ODUyLDcgKzU4NjAsNyBAQCB2b2lkIHRlc3RMb2FkT2Zmc2V0KCkKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIGludCBhcnJheVtdID0geyAxLCAyIH07CiAg
ICAgQ29uc3RQdHJWYWx1ZSogYXJyYXlQdHIgPSByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIGFycmF5KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAtNTg2OCw3ICs1ODc2LDcgQEAgdm9pZCB0ZXN0
TG9hZE9mZnNldE5vdENvbnN0YW50KCkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwogICAgIGludCBhcnJheVtdID0geyAxLCAyIH07CiAgICAgVmFsdWUqIGFycmF5UHRy
ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIEFkZCwgT3JpZ2luKCksCkBAIC01ODg0LDcgKzU4OTIsNyBAQCB2b2lkIHRlc3RMb2FkT2Zm
c2V0VXNpbmdBZGQoKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAg
ICAgaW50IGFycmF5W10gPSB7IDEsIDIgfTsKICAgICBDb25zdFB0clZhbHVlKiBhcnJheVB0ciA9
IHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYXJyYXkpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCkBA
IC01OTI1LDcgKzU5MzMsNyBAQCB2b2lkIHRlc3RMb2FkT2Zmc2V0VXNpbmdBZGRJbnRlcmZlcmVu
Y2UoCiAgICAgICAgIHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgdGhlTnVtYmVyT2ZUaGVCZWFzdCwg
b3RoZXJBcnJheVB0ciwgMCk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAg
ICAgICAgcHJvYywgU3RvcmUsIE9yaWdpbigpLCB0aGVOdW1iZXJPZlRoZUJlYXN0LCBvdGhlckFy
cmF5UHRyLCBzaXplb2YoaW50KSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgQWRkLCBPcmlnaW4oKSwgbGVmdCwgcmlnaHQpKTsKQEAgLTU5NDEsNyArNTk0OSw3IEBA
IHZvaWQgdGVzdExvYWRPZmZzZXRVc2luZ0FkZE5vdENvbnN0YW50KCkKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIGludCBhcnJheVtdID0geyAxLCAyIH07CiAg
ICAgVmFsdWUqIGFycmF5UHRyID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCkBAIC01OTc3LDcgKzU5ODUsNyBA
QCB2b2lkIHRlc3RMb2FkQWRkclNoaWZ0KHVuc2lnbmVkIHNoaWZ0KQogCiAgICAgKnNsb3QgPSA4
Njc1MzA5OwogICAgIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwKQEAgLTU5OTMsNyArNjAwMSw3IEBAIHZvaWQgdGVz
dEZyYW1lUG9pbnRlcigpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRnJhbWVQ
b2ludGVyLCBPcmlnaW4oKSkpOwogCkBAIC02MDE2LDcgKzYwMjQsNyBAQCB2b2lkIHRlc3RPdmVy
cmlkZUZyYW1lUG9pbnRlcigpCiAgICAgICAgIFZhbHVlKiBmcCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgRnJhbWVQb2ludGVyLCBPcmlnaW4oKSk7CiAgICAgICAgIFZhbHVlKiByZXN1
bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIGZwLCBvZmZz
ZXQpOwogCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogICAgICAgICBDSEVDSyhjb21waWxl
QW5kUnVuPGludDY0X3Q+KHByb2MsIDEpKTsKICAgICB9CiAgICAgewpAQCAtNjAzMiw3ICs2MDQw
LDcgQEAgdm9pZCB0ZXN0T3ZlcnJpZGVGcmFtZVBvaW50ZXIoKQogICAgICAgICBWYWx1ZSogb2Zm
c2V0QXJnID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBvZmZz
ZXQsIGFyZyk7CiAgICAgICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEFkZCwgT3JpZ2luKCksIG9mZnNldEFyZywgb2Zmc2V0RlApOwogCi0gICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQpOwogICAgICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHBy
b2MsIDEsIDIpKTsKICAgICB9CiB9CkBAIC02MDQxLDcgKzYwNDksNyBAQCB2b2lkIHRlc3RTdGFj
a1Nsb3QoKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8U2xvdEJhc2VWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIHByb2MuYWRkU3RhY2tTbG90KDEpKSk7CiAKQEAgLTYwNTQsNyArNjA2Miw3IEBAIHZvaWQg
dGVzdExvYWRGcm9tRnJhbWVQb2ludGVyKCkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZh
bHVlPigKICAgICAgICAgICAgIHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLApA
QCAtNjA4MSw3ICs2MDg5LDcgQEAgdm9pZCB0ZXN0U3RvcmVMb2FkU3RhY2tTbG90KGludCB2YWx1
ZSkKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIHN0YWNrKTsKICAgICAK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50MzIsIE9yaWdpbigpLCBz
dGFjaykpOwogCkBAIC02MTE2LDcgKzYxMjQsNyBAQCB2b2lkIHRlc3RMb2FkKEIzOjpPcGNvZGUg
b3Bjb2RlLCBJbnB1dFR5CiAgICAgICAgIFByb2NlZHVyZSBwcm9jOwogICAgICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgICAgICAKLSAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290
LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIG9wY29kZSwg
dHlwZSwgT3JpZ2luKCksCkBAIC02MTMwLDcgKzYxMzgsNyBAQCB2b2lkIHRlc3RMb2FkKEIzOjpP
cGNvZGUgb3Bjb2RlLCBJbnB1dFR5CiAgICAgICAgIFByb2NlZHVyZSBwcm9jOwogICAgICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgICAgICAKLSAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAg
ICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIG9w
Y29kZSwgdHlwZSwgT3JpZ2luKCksCkBAIC02MTQ0LDcgKzYxNTIsNyBAQCB2b2lkIHRlc3RMb2Fk
KEIzOjpPcGNvZGUgb3Bjb2RlLCBJbnB1dFR5CiAgICAgICAgIFByb2NlZHVyZSBwcm9jOwogICAg
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgICAgICAKLSAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgICAgIHBy
b2MsIG9wY29kZSwgdHlwZSwgT3JpZ2luKCksCkBAIC02MTU5LDcgKzYxNjcsNyBAQCB2b2lkIHRl
c3RMb2FkKEIzOjpPcGNvZGUgb3Bjb2RlLCBJbnB1dFR5CiAgICAgICAgIFByb2NlZHVyZSBwcm9j
OwogICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9j
LCBvcGNvZGUsIHR5cGUsIE9yaWdpbigpLApAQCAtNjE3OSw3ICs2MTg3LDcgQEAgdm9pZCB0ZXN0
TG9hZChCMzo6T3Bjb2RlIG9wY29kZSwgSW5wdXRUeQogICAgICAgICBQcm9jZWR1cmUgcHJvYzsK
ICAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgICAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywg
b3Bjb2RlLCB0eXBlLCBPcmlnaW4oKSwKQEAgLTYyMTksNyArNjIyNyw3IEBAIHZvaWQgdGVzdFN0
b3JlRmxvYXQoZG91YmxlIGlucHV0KQogICAgICAgICBWYWx1ZSogZGVzdGluYXRpb25BZGRyZXNz
ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApOwogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+
KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgYXJndW1lbnRBc0Zsb2F0LCBkZXN0aW5hdGlvbkFkZHJl
c3MpOwogCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCAwKSk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
MCkpOwogCiAgICAgICAgIGZsb2F0IG91dHB1dCA9IDAuOwogICAgICAgICBDSEVDSyghY29tcGls
ZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCBpbnB1dCwgJm91dHB1dCkpOwpAQCAtNjI0Myw3ICs2MjUx
LDcgQEAgdm9pZCB0ZXN0U3RvcmVGbG9hdChkb3VibGUgaW5wdXQpCiAKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIGFyZ3VtZW50QXNG
bG9hdCwgZGVzdGluYXRpb25BZGRyZXNzKTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgICAgICBmbG9hdCBvdXRwdXQgPSAwLjsK
ICAgICAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgaW5wdXQsICZvdXRw
dXQgLSAxLCAxKSk7CkBAIC02MjYzLDcgKzYyNzEsNyBAQCB2b2lkIHRlc3RTdG9yZURvdWJsZUNv
bnN0YW50QXNGbG9hdChkb3ViCiAKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHBy
b2MsIFN0b3JlLCBPcmlnaW4oKSwgdmFsdWVBc0Zsb2F0LCBkZXN0aW5hdGlvbkFkZHJlc3MpOwog
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9v
dC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGZs
b2F0IG91dHB1dCA9IDAuOwogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2Ms
IGlucHV0LCAmb3V0cHV0KSk7CkBAIC02Mjg5LDcgKzYyOTcsNyBAQCB2b2lkIHRlc3RTcGlsbEdQ
KCkKICAgICBmb3IgKFZhbHVlKiB2YWx1ZSA6IHNvdXJjZXMpCiAgICAgICAgIHRvdGFsID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCB0b3RhbCwgdmFsdWUpOwog
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgdG90YWwpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCB0b3RhbCk7CiAgICAgY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIDEsIDIpOwog
fQogCkBAIC02MzEyLDcgKzYzMjAsNyBAQCB2b2lkIHRlc3RTcGlsbEZQKCkKICAgICBmb3IgKFZh
bHVlKiB2YWx1ZSA6IHNvdXJjZXMpCiAgICAgICAgIHRvdGFsID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCB0b3RhbCwgdmFsdWUpOwogCi0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdG90YWwpOworICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB0b3Rh
bCk7CiAgICAgY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIDEuMSwgMi41KTsKIH0KIApAQCAt
NjMyOCw3ICs2MzM2LDcgQEAgdm9pZCB0ZXN0SW50MzJUb0RvdWJsZVBhcnRpYWxSZWdpc3RlclN0
YQogICAgIFZhbHVlKiBjb3VudGVyID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFVwc2lsb25WYWx1
ZSogb3JpZ2luYWxUb3RhbCA9IHJvb3QtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9y
aWdpbigpLCB0b3RhbCk7CiAgICAgVXBzaWxvblZhbHVlKiBvcmlnaW5hbENvdW50ZXIgPSByb290
LT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgY291bnRlcik7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1
ZW50ZWRCbG9jayhsb29wKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sobG9vcCkpOwogCiAgICAgLy8gTG9vcC4K
ICAgICBWYWx1ZSogbG9vcENvdW50ZXIgPSBsb29wLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFBo
aSwgSW50NjQsIE9yaWdpbigpKTsKQEAgLTYzNDUsMTMgKzYzNTMsMTMgQEAgdm9pZCB0ZXN0SW50
MzJUb0RvdWJsZVBhcnRpYWxSZWdpc3RlclN0YQogICAgIFZhbHVlKiBkZWNDb3VudGVyID0gbG9v
cC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBsb29wQ291bnRlciwgbG9v
cC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKICAgICBVcHNp
bG9uVmFsdWUqIGRlY0NvdW50ZXJVcHNpbG9uID0gbG9vcC0+YXBwZW5kTmV3PFVwc2lsb25WYWx1
ZT4ocHJvYywgT3JpZ2luKCksIGRlY0NvdW50ZXIpOwogICAgIGRlY0NvdW50ZXJVcHNpbG9uLT5z
ZXRQaGkobG9vcENvdW50ZXIpOwotICAgIGxvb3AtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIGxvb3AtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBP
cmlnaW4oKSwKICAgICAgICAgZGVjQ291bnRlciwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKGxv
b3ApLCBGcmVxdWVudGVkQmxvY2soZG9uZSkpOwogCiAgICAgLy8gVGFpbC4KLSAgICBkb25lLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB1cGRhdGVkVG90
YWwpOworICAgIGRvbmUtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCB1cGRhdGVkVG90YWwpOwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48
ZG91YmxlPihwcm9jLCAxMDAwMDApLCA1MDAwMDUwMDAwLikpOwogfQogCkBAIC02MzcxLDcgKzYz
NzksNyBAQCB2b2lkIHRlc3RJbnQzMlRvRG91YmxlUGFydGlhbFJlZ2lzdGVyV2l0CiAgICAgVmFs
dWUqIGZvclBhZGRpbmdJbnB1dEFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksICZmb3JQYWRkaW5nSW5wdXQpOwogICAgIHVpbnQ2NF90IGZvclBh
ZGRpbmdPdXRwdXQ7CiAgICAgVmFsdWUqIGZvclBhZGRpbmdPdXRwdXRBZGRyZXNzID0gcm9vdC0+
YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAmZm9yUGFkZGluZ091dHB1
dCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2lu
KCksIEZyZXF1ZW50ZWRCbG9jayhsb29wKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sobG9vcCkpOwogCiAgICAg
Ly8gTG9vcC4KICAgICBWYWx1ZSogbG9vcENvdW50ZXIgPSBsb29wLT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIFBoaSwgSW50NjQsIE9yaWdpbigpKTsKQEAgLTY0MDUsMTMgKzY0MTMsMTMgQEAgdm9p
ZCB0ZXN0SW50MzJUb0RvdWJsZVBhcnRpYWxSZWdpc3RlcldpdAogICAgIFZhbHVlKiBkZWNDb3Vu
dGVyID0gbG9vcC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBsb29wQ291
bnRlciwgbG9vcC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsK
ICAgICBVcHNpbG9uVmFsdWUqIGRlY0NvdW50ZXJVcHNpbG9uID0gbG9vcC0+YXBwZW5kTmV3PFVw
c2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGRlY0NvdW50ZXIpOwogICAgIGRlY0NvdW50ZXJV
cHNpbG9uLT5zZXRQaGkobG9vcENvdW50ZXIpOwotICAgIGxvb3AtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIGxvb3AtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
QnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgZGVjQ291bnRlciwKICAgICAgICAgRnJlcXVlbnRl
ZEJsb2NrKGxvb3ApLCBGcmVxdWVudGVkQmxvY2soZG9uZSkpOwogCiAgICAgLy8gVGFpbC4KLSAg
ICBkb25lLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB1
cGRhdGVkVG90YWwpOworICAgIGRvbmUtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCB1cGRhdGVkVG90YWwpOwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBp
bGVBbmRSdW48ZG91YmxlPihwcm9jLCAxMDAwMDApLCA1MDAwMDUwMDAwLikpOwogfQogCkBAIC02
NDIyLDE4ICs2NDMwLDE4IEBAIHZvaWQgdGVzdEJyYW5jaCgpCiAgICAgQmFzaWNCbG9jayogdGhl
bkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9j
LmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBU
cnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICBG
cmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAot
ICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEp
KTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2Fz
ZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDApKTsKIApAQCAtNjQ0OSwxNiArNjQ1NywxNiBAQCB2b2lkIHRlc3RCcmFuY2hQdHIoKQog
ICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxv
Y2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCksCiAgICAgICAg
IEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwog
Ci0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
MSkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VD
YXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgMCkpOwogCkBAIC02NDc1LDcgKzY0ODMsNyBAQCB2b2lkIHRlc3REaWFtb25kKCkKICAg
ICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2Nr
KiBkb25lID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBC
cmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLApAQCAtNjQ4NCwxNiArNjQ5MiwxNiBAQCB2b2lk
IHRlc3REaWFtb25kKCkKIAogICAgIFVwc2lsb25WYWx1ZSogdGhlblJlc3VsdCA9IHRoZW5DYXNl
LT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPigKICAgICAgICAgcHJvYywgT3JpZ2luKCksIHRoZW5D
YXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwotICAgIHRo
ZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJl
cXVlbnRlZEJsb2NrKGRvbmUpKTsKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZG9uZSkpOwogCiAgICAgVXBz
aWxvblZhbHVlKiBlbHNlUmVzdWx0ID0gZWxzZUNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+
KAogICAgICAgICBwcm9jLCBPcmlnaW4oKSwgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCAwKSk7Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZG9uZSkpOworICAg
IGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZy
ZXF1ZW50ZWRCbG9jayhkb25lKSk7CiAKICAgICBWYWx1ZSogcGhpID0gZG9uZS0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBQaGksIEludDMyLCBPcmlnaW4oKSk7CiAgICAgdGhlblJlc3VsdC0+c2V0
UGhpKHBoaSk7CiAgICAgZWxzZVJlc3VsdC0+c2V0UGhpKHBoaSk7Ci0gICAgZG9uZS0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGhpKTsKKyAgICBkb25l
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGhpKTsKIAog
ICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgQ0hFQ0soaW52b2tlPGludD4oKmNv
ZGUsIDQyKSA9PSAxKTsKQEAgLTY1MDcsNyArNjUxNSw3IEBAIHZvaWQgdGVzdEJyYW5jaE5vdEVx
dWFsKCkKICAgICBCYXNpY0Jsb2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAgICBC
YXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKICAgICAgICAgICAgIHByb2MsIE5vdEVxdWFsLCBPcmlnaW4oKSwKQEAgLTY1MTcsMTEg
KzY1MjUsMTEgQEAgdm9pZCB0ZXN0QnJhbmNoTm90RXF1YWwoKQogICAgICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKSwKICAgICAgICAgRnJl
cXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAg
ICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7
CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2Ut
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCAwKSk7CiAKQEAgLTY1MzcsNyArNjU0NSw3IEBAIHZvaWQgdGVzdEJyYW5jaE5vdEVxdWFsQ29t
bXV0ZSgpCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAg
QmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBOb3RFcXVhbCwgT3JpZ2luKCksCkBAIC02NTQ3LDEx
ICs2NTU1LDExIEBAIHZvaWQgdGVzdEJyYW5jaE5vdEVxdWFsQ29tbXV0ZSgpCiAgICAgICAgICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApKSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2Fz
ZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNhc2UtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC02NTY3LDcg
KzY1NzUsNyBAQCB2b2lkIHRlc3RCcmFuY2hOb3RFcXVhbE5vdEVxdWFsKCkKICAgICBCYXNpY0Js
b2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2Fz
ZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNo
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIE5vdEVxdWFsLCBPcmlnaW4oKSwKQEAgLTY1ODAsMTEgKzY1ODgsMTEgQEAgdm9pZCB0
ZXN0QnJhbmNoTm90RXF1YWxOb3RFcXVhbCgpCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpLAogICAgICAgICBGcmVxdWVudGVkQmxv
Y2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNl
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2Fz
ZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVs
c2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBl
bHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApA
QCAtNjYwMCw3ICs2NjA4LDcgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWwoKQogICAgIEJhc2ljQmxv
Y2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNl
ID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gs
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgRXF1YWwsIE9yaWdpbigpLApAQCAtNjYxMCwxMSArNjYxOCwxMSBAQCB2b2lkIHRlc3RC
cmFuY2hFcXVhbCgpCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgMCkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBG
cmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIApAQCAtNjYzMCw3ICs2NjM4
LDcgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxFcXVhbCgpCiAgICAgQmFzaWNCbG9jayogdGhlbkNh
c2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFk
ZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBFcXVh
bCwgT3JpZ2luKCksCkBAIC02NjQzLDExICs2NjUxLDExIEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFs
RXF1YWwoKQogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDApKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVl
bnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMy
VmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTY2NjMsNyArNjY3MSw3IEBA
IHZvaWQgdGVzdEJyYW5jaEVxdWFsQ29tbXV0ZSgpCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2Ug
PSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJs
b2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBFcXVhbCwg
T3JpZ2luKCksCkBAIC02NjczLDExICs2NjgxLDExIEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsQ29t
bXV0ZSgpCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSksCiAgICAgICAgIEZyZXF1
ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAg
dGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwog
Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
MSkpOwogCkBAIC02NjkzLDcgKzY3MDEsNyBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbEVxdWFsMSgp
CiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNC
bG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
CiAgICAgICAgICAgICBwcm9jLCBFcXVhbCwgT3JpZ2luKCksCkBAIC02NzA2LDExICs2NzE0LDEx
IEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsRXF1YWwxKCkKICAgICAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSksCiAgICAgICAgIEZyZXF1ZW50
ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhl
bkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRo
ZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCi0g
ICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkp
OwogCkBAIC02NzI4LDcgKzY3MzYsNyBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVk
QXJncyhkb3ViCiAKICAgICBWYWx1ZSogYXJndW1lbnRBID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAg
IFZhbHVlKiBhcmd1bWVudEIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgRXF1YWxPclVub3JkZXJlZCwgT3JpZ2luKCksCkBAIC02NzM2
LDExICs2NzQ0LDExIEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsT3JVbm9yZGVyZWRBcmdzKGRvdWIK
ICAgICAgICAgICAgIGFyZ3VtZW50QiksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2Fz
ZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpKTsKIAotICAgIGVsc2VDYXNlLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xMykpOwogCkBAIC02NzYw
LDcgKzY3NjgsNyBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVkQXJncyhmbG9hCiAg
ICAgVmFsdWUqIGFyZ3VtZW50QiA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywg
TG9hZCwgRmxvYXQsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSkpOwogCi0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgRXF1YWxPclVub3JkZXJlZCwgT3Jp
Z2luKCksCkBAIC02NzY4LDExICs2Nzc2LDExIEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsT3JVbm9y
ZGVyZWRBcmdzKGZsb2EKICAgICAgICAgICAgIGFyZ3VtZW50QiksCiAgICAgICAgIEZyZXF1ZW50
ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhl
bkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRo
ZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpKTsKIAot
ICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0x
MykpOwogCkBAIC02Nzk3LDE2ICs2ODA1LDE2IEBAIHZvaWQgdGVzdEJyYW5jaE5vdEVxdWFsQW5k
T3JkZXJlZEFyZ3MoZG8KICAgICAgICAgcHJvYywgRXF1YWwsIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCksCiAgICAgICAg
IGVxdWFsT3JVbm9yZGVyZWQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBP
cmlnaW4oKSwKICAgICAgICAgbm90RXF1YWxBbmRPcmRlcmVkLAogICAgICAgICBGcmVxdWVudGVk
QmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5D
YXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVu
Q2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7CiAKLSAg
ICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMTMp
KTsKIApAQCAtNjgzMywxNiArNjg0MSwxNiBAQCB2b2lkIHRlc3RCcmFuY2hOb3RFcXVhbEFuZE9y
ZGVyZWRBcmdzKGZsCiAgICAgICAgIHByb2MsIEVxdWFsLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApLAogICAgICAgICBl
cXVhbE9yVW5vcmRlcmVkKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3Jp
Z2luKCksCiAgICAgICAgIG5vdEVxdWFsQW5kT3JkZXJlZCwKICAgICAgICAgRnJlcXVlbnRlZEJs
b2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2Fz
ZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNh
c2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwogCi0gICAg
ZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTEzKSk7
CiAKQEAgLTY4NTksNyArNjg2Nyw3IEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsT3JVbm9yZGVyZWRE
b3VibGVBcmcKIAogICAgIFZhbHVlKiBhcmd1bWVudEEgPSByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAg
VmFsdWUqIGFyZ3VtZW50QiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgYik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
RXF1YWxPclVub3JkZXJlZCwgT3JpZ2luKCksCkBAIC02ODY3LDExICs2ODc1LDExIEBAIHZvaWQg
dGVzdEJyYW5jaEVxdWFsT3JVbm9yZGVyZWREb3VibGVBcmcKICAgICAgICAgICAgIGFyZ3VtZW50
QiksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhl
bHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgNDIpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIC0xMykpOwogCkBAIC02ODkwLDcgKzY4OTgsNyBAQCB2b2lkIHRl
c3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVkRmxvYXRBcmdJCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIw
KSk7CiAgICAgVmFsdWUqIGFyZ3VtZW50QiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFs
dWU+KHByb2MsIE9yaWdpbigpLCBiKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJh
bmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIEVxdWFsT3JVbm9yZGVyZWQsIE9yaWdpbigpLApAQCAtNjg5OCwxMSArNjkwNiwx
MSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVkRmxvYXRBcmdJCiAgICAgICAgICAg
ICBhcmd1bWVudEIpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVu
dGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMTMpKTsKIApAQCAtNjkxOSw3ICs2OTI3LDcg
QEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJlZERvdWJsZUltbQogCiAgICAgVmFsdWUq
IGFyZ3VtZW50QSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmln
aW4oKSwgYSk7CiAgICAgVmFsdWUqIGFyZ3VtZW50QiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERv
dWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgRXF1YWxPclVub3JkZXJlZCwgT3JpZ2luKCksCkBAIC02OTI3LDExICs2
OTM1LDExIEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsT3JVbm9yZGVyZWREb3VibGVJbW0KICAgICAg
ICAgICAgIGFyZ3VtZW50QiksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZy
ZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29u
c3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xMykpOwogCkBAIC02OTQ5LDcgKzY5
NTcsNyBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVkRmxvYXRJbW1zCiAgICAgVmFs
dWUqIGFyZ3VtZW50QSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9y
aWdpbigpLCBhKTsKICAgICBWYWx1ZSogYXJndW1lbnRCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0
RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAog
ICAgICAgICAgICAgcHJvYywgRXF1YWxPclVub3JkZXJlZCwgT3JpZ2luKCksCkBAIC02OTU3LDEx
ICs2OTY1LDExIEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsT3JVbm9yZGVyZWRGbG9hdEltbXMKICAg
ICAgICAgICAgIGFyZ3VtZW50QiksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSks
IEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xMykpOwogCkBAIC02OTgzLDcg
KzY5OTEsNyBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVkRmxvYXRXaXRoCiAgICAg
VmFsdWUqIGFyZ3VtZW50MUFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBG
bG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgYXJndW1lbnQxKTsKICAgICBWYWx1ZSogYXJndW1lbnQy
QXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9y
aWdpbigpLCBhcmd1bWVudDIpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gs
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgRXF1YWxPclVub3JkZXJlZCwgT3JpZ2luKCksCkBAIC02OTkxLDExICs2OTk5LDExIEBA
IHZvaWQgdGVzdEJyYW5jaEVxdWFsT3JVbm9yZGVyZWRGbG9hdFdpdGgKICAgICAgICAgICAgIGFy
Z3VtZW50MkFzRG91YmxlKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJl
cXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTEzKSk7CiAKQEAgLTcwMTAsMTYgKzcw
MTgsMTYgQEAgdm9pZCB0ZXN0QnJhbmNoRm9sZChpbnQgdmFsdWUpCiAgICAgQmFzaWNCbG9jayog
dGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBw
cm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCB2YWx1ZSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50
ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29u
c3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC03MDM0LDIzICs3MDQyLDIzIEBA
IHZvaWQgdGVzdERpYW1vbmRGb2xkKGludCB2YWx1ZSkKICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2Fz
ZSA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBkb25lID0gcHJvYy5hZGRCbG9j
aygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUp
LAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxz
ZUNhc2UpKTsKIAogICAgIFVwc2lsb25WYWx1ZSogdGhlblJlc3VsdCA9IHRoZW5DYXNlLT5hcHBl
bmROZXc8VXBzaWxvblZhbHVlPigKICAgICAgICAgcHJvYywgT3JpZ2luKCksIHRoZW5DYXNlLT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwotICAgIHRoZW5DYXNl
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRl
ZEJsb2NrKGRvbmUpKTsKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZG9uZSkpOwogCiAgICAgVXBzaWxvblZh
bHVlKiBlbHNlUmVzdWx0ID0gZWxzZUNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KAogICAg
ICAgICBwcm9jLCBPcmlnaW4oKSwgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAwKSk7Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZG9uZSkpOworICAgIGVsc2VD
YXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50
ZWRCbG9jayhkb25lKSk7CiAKICAgICBWYWx1ZSogcGhpID0gZG9uZS0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBQaGksIEludDMyLCBPcmlnaW4oKSk7CiAgICAgdGhlblJlc3VsdC0+c2V0UGhpKHBo
aSk7CiAgICAgZWxzZVJlc3VsdC0+c2V0UGhpKHBoaSk7Ci0gICAgZG9uZS0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGhpKTsKKyAgICBkb25lLT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGhpKTsKIAogICAgIENI
RUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jKSA9PSAhIXZhbHVlKTsKIH0KQEAgLTcwNjIsNyAr
NzA3MCw3IEBAIHZvaWQgdGVzdEJyYW5jaE5vdEVxdWFsRm9sZFB0cihpbnRwdHJfdCAKICAgICBC
YXNpY0Jsb2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBl
bHNlQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
QnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIE5vdEVxdWFsLCBPcmlnaW4oKSwKQEAgLTcwNzAsMTEgKzcwNzgsMTEgQEAg
dm9pZCB0ZXN0QnJhbmNoTm90RXF1YWxGb2xkUHRyKGludHB0cl90IAogICAgICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSksCiAgICAgICAg
IEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwog
Ci0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
MSkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VD
YXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgMCkpOwogCkBAIC03MDg4LDcgKzcwOTYsNyBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbEZv
bGRQdHIoaW50cHRyX3QgdmFsCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJs
b2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBFcXVhbCwgT3JpZ2luKCksCkBA
IC03MDk2LDExICs3MTA0LDExIEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsRm9sZFB0cihpbnRwdHJf
dCB2YWwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgMCkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVu
dGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNzExNCwxOCArNzEyMiwxOCBA
QCB2b2lkIHRlc3RCcmFuY2hMb2FkUHRyKCkKICAgICBCYXNpY0Jsb2NrKiB0aGVuQ2FzZSA9IHBy
b2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2so
KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgIHByb2MsIExvYWQs
IHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwK
ICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VD
YXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhl
bkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTcxNDQsMTggKzcxNTIsMTggQEAgdm9pZCB0ZXN0QnJh
bmNoTG9hZDMyKCkKICAgICBCYXNpY0Jsb2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsK
ICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgIHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4o
KSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9j
ayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2Ut
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNl
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxz
ZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVs
c2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBA
IC03MTc0LDE4ICs3MTgyLDE4IEBAIHZvaWQgdGVzdEJyYW5jaExvYWQ4UygpCiAgICAgQmFzaWNC
bG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNh
c2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5j
aCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBMb2FkOFMsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2Nr
KGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTcyMDQsMTggKzcyMTIsMTggQEAgdm9pZCB0
ZXN0QnJhbmNoTG9hZDhaKCkKICAgICBCYXNpY0Jsb2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxv
Y2soKTsKICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgIHByb2MsIExvYWQ4WiwgT3JpZ2lu
KCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICBGcmVxdWVudGVkQmxv
Y2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNl
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2Fz
ZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVs
c2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBl
bHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApA
QCAtNzIzNCwxOCArNzI0MiwxOCBAQCB2b2lkIHRlc3RCcmFuY2hMb2FkMTZTKCkKICAgICBCYXNp
Y0Jsb2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBlbHNl
Q2FzZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJh
bmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIExvYWQxNlMsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjApKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJs
b2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMy
VmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTcyNjQsMTggKzcyNzIsMTggQEAgdm9p
ZCB0ZXN0QnJhbmNoTG9hZDE2WigpCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFk
ZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkMTZaLCBP
cmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIEZyZXF1ZW50
ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhl
bkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRo
ZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0g
ICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkp
OwogCkBAIC03Mjk1LDcgKzczMDMsNyBAQCB2b2lkIHRlc3RCcmFuY2g4V2l0aExvYWQ4WkluZGV4
KCkKICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKIAogICAgIGlu
dCBsb2dTY2FsZSA9IDE7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
QWJvdmUsIE9yaWdpbigpLApAQCAtNzMxMSwxMSArNzMxOSwxMSBAQCB2b2lkIHRlc3RCcmFuY2g4
V2l0aExvYWQ4WkluZGV4KCkKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCAyNTApKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5D
YXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2Ut
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTczNTcs
NyArNzM2NSw3IEBAIHZvaWQgdGVzdENvbXBsZXgodW5zaWduZWQgbnVtVmFycywgdW5zaWcKICAg
ICAgICAgICAgIEJhc2ljQmxvY2sqIGVsc2VCbG9jayA9IHByb2MuYWRkQmxvY2soKTsKICAgICAg
ICAgICAgIEJhc2ljQmxvY2sqIGNvbnRpbnVhdGlvbiA9IHByb2MuYWRkQmxvY2soKTsKIAotICAg
ICAgICAgICAgY3VycmVudC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgICAgICBj
dXJyZW50LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICAgICAgcHJvYywgQnJh
bmNoLCBPcmlnaW4oKSwgdmFyc1twcmVkaWNhdGVWYXJJbmRleF0sCiAgICAgICAgICAgICAgICAg
RnJlcXVlbnRlZEJsb2NrKHRoZW5CbG9jayksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQmxvY2spKTsK
IApAQCAtNzM2NiwxNCArNzM3NCwxNCBAQCB2b2lkIHRlc3RDb21wbGV4KHVuc2lnbmVkIG51bVZh
cnMsIHVuc2lnCiAgICAgICAgICAgICAgICAgdGhlbkJsb2NrLT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEFkZCwgT3JpZ2luKCksIHZhcnNbdGhlbkluY1ZhckluZGV4XSwgb25lKSk7CiAgICAgICAg
ICAgICBVcHNpbG9uVmFsdWUqIHRoZW5FbHNlUmVzdWx0ID0gdGhlbkJsb2NrLT5hcHBlbmROZXc8
VXBzaWxvblZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgdmFyc1tlbHNl
SW5jVmFySW5kZXhdKTsKLSAgICAgICAgICAgIHRoZW5CbG9jay0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhjb250aW51YXRpb24p
KTsKKyAgICAgICAgICAgIHRoZW5CbG9jay0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1
bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soY29udGludWF0aW9uKSk7CiAKICAgICAgICAg
ICAgIFVwc2lsb25WYWx1ZSogZWxzZUVsc2VSZXN1bHQgPSBlbHNlQmxvY2stPmFwcGVuZE5ldzxV
cHNpbG9uVmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLAogICAgICAgICAg
ICAgICAgIGVsc2VCbG9jay0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCB2
YXJzW2Vsc2VJbmNWYXJJbmRleF0sIG9uZSkpOwogICAgICAgICAgICAgVXBzaWxvblZhbHVlKiBl
bHNlVGhlblJlc3VsdCA9IGVsc2VCbG9jay0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4oCiAgICAg
ICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksIHZhcnNbdGhlbkluY1ZhckluZGV4XSk7Ci0gICAg
ICAgICAgICBlbHNlQmxvY2stPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9y
aWdpbigpLCBGcmVxdWVudGVkQmxvY2soY29udGludWF0aW9uKSk7CisgICAgICAgICAgICBlbHNl
QmxvY2stPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVl
bnRlZEJsb2NrKGNvbnRpbnVhdGlvbikpOwogCiAgICAgICAgICAgICBWYWx1ZSogdGhlblBoaSA9
IGNvbnRpbnVhdGlvbi0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBQaGksIEludDMyLCBPcmlnaW4o
KSk7CiAgICAgICAgICAgICB0aGVuVGhlblJlc3VsdC0+c2V0UGhpKHRoZW5QaGkpOwpAQCAtNzM5
OCw3ICs3NDA2LDcgQEAgdm9pZCB0ZXN0Q29tcGxleCh1bnNpZ25lZCBudW1WYXJzLCB1bnNpZwog
ICAgICAgICAgICAgCiAgICAgICAgICAgICBWYWx1ZSogc3RhcnRJbmRleCA9IHZhcnNbKChpID4+
IDEpICsgMSkgJSBudW1WYXJzXTsKICAgICAgICAgICAgIFZhbHVlKiBzdGFydFN1bSA9IGN1cnJl
bnQtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKTsKLSAgICAgICAg
ICAgIGN1cnJlbnQtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICAgICAgY3VycmVu
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgICAgIHByb2MsIEJyYW5jaCwg
T3JpZ2luKCksIHN0YXJ0SW5kZXgsCiAgICAgICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKGxv
b3BFbnRyeSksIEZyZXF1ZW50ZWRCbG9jayhsb29wU2tpcCkpOwogCkBAIC03NDA2LDcgKzc0MTQs
NyBAQCB2b2lkIHRlc3RDb21wbGV4KHVuc2lnbmVkIG51bVZhcnMsIHVuc2lnCiAgICAgICAgICAg
ICAgICAgcHJvYywgT3JpZ2luKCksIHN0YXJ0SW5kZXgpOwogICAgICAgICAgICAgVXBzaWxvblZh
bHVlKiBzdGFydFN1bUZvckJvZHkgPSBsb29wRW50cnktPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+
KAogICAgICAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLCBzdGFydFN1bSk7Ci0gICAgICAgICAg
ICBsb29wRW50cnktPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigp
LCBGcmVxdWVudGVkQmxvY2sobG9vcEJvZHkpKTsKKyAgICAgICAgICAgIGxvb3BFbnRyeS0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2so
bG9vcEJvZHkpKTsKIAogICAgICAgICAgICAgVmFsdWUqIGJvZHlJbmRleCA9IGxvb3BCb2R5LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIFBoaSwgSW50MzIsIE9yaWdpbigpKTsKICAgICAgICAgICAg
IHN0YXJ0SW5kZXhGb3JCb2R5LT5zZXRQaGkoYm9keUluZGV4KTsKQEAgLTc0MzEsMTkgKzc0Mzks
MTkgQEAgdm9pZCB0ZXN0Q29tcGxleCh1bnNpZ25lZCBudW1WYXJzLCB1bnNpZwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9vcEJvZHktPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2MsIE9yaWdp
bigpLCBudW1WYXJzIC0gMSkpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb29wQm9k
eS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDIpKSkpKTsKLSAgICAg
ICAgICAgIGxvb3BCb2R5LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgICAgIGxv
b3BCb2R5LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICAgICAgcHJvYywgQnJh
bmNoLCBPcmlnaW4oKSwgbmV3Qm9keUluZGV4LAogICAgICAgICAgICAgICAgIEZyZXF1ZW50ZWRC
bG9jayhsb29wUmVlbnRyeSksIEZyZXF1ZW50ZWRCbG9jayhsb29wRXhpdCkpOwogCiAgICAgICAg
ICAgICBsb29wUmVlbnRyeS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCks
IG5ld0JvZHlJbmRleCwgYm9keUluZGV4KTsKICAgICAgICAgICAgIGxvb3BSZWVudHJ5LT5hcHBl
bmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgbmV3Qm9keVN1bSwgYm9keVN1bSk7
Ci0gICAgICAgICAgICBsb29wUmVlbnRyeS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
SnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhsb29wQm9keSkpOworICAgICAgICAgICAg
bG9vcFJlZW50cnktPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwg
RnJlcXVlbnRlZEJsb2NrKGxvb3BCb2R5KSk7CiAKICAgICAgICAgICAgIFVwc2lsb25WYWx1ZSog
ZXhpdFN1bSA9IGxvb3BFeGl0LT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgbmV3Qm9keVN1bSk7Ci0gICAgICAgICAgICBsb29wRXhpdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhjb250aW51YXRpb24p
KTsKKyAgICAgICAgICAgIGxvb3BFeGl0LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVt
cCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhjb250aW51YXRpb24pKTsKIAogICAgICAgICAg
ICAgVXBzaWxvblZhbHVlKiBza2lwU3VtID0gbG9vcFNraXAtPmFwcGVuZE5ldzxVcHNpbG9uVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBzdGFydFN1bSk7Ci0gICAgICAgICAgICBsb29wU2tpcC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9j
ayhjb250aW51YXRpb24pKTsKKyAgICAgICAgICAgIGxvb3BTa2lwLT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhjb250aW51YXRpb24p
KTsKIAogICAgICAgICAgICAgVmFsdWUqIGZpbmFsU3VtID0gY29udGludWF0aW9uLT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIFBoaSwgSW50MzIsIE9yaWdpbigpKTsKICAgICAgICAgICAgIGV4aXRT
dW0tPnNldFBoaShmaW5hbFN1bSk7CkBAIC03NDU0LDcgKzc0NjIsNyBAQCB2b2lkIHRlc3RDb21w
bGV4KHVuc2lnbmVkIG51bVZhcnMsIHVuc2lnCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBjdXJy
ZW50LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YXJz
WzBdKTsKKyAgICBjdXJyZW50LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgdmFyc1swXSk7CiAKICAgICBjb21waWxlKHByb2MpOwogCkBAIC03NDgwLDcgKzc0
ODgsNyBAQCB2b2lkIHRlc3RTaW1wbGVQYXRjaHBvaW50KCkKICAgICAgICAgICAgIENIRUNLKHBh
cmFtc1syXS5pc0dQUigpKTsKICAgICAgICAgICAgIGFkZDMyKGppdCwgcGFyYW1zWzFdLmdwcigp
LCBwYXJhbXNbMl0uZ3ByKCksIHBhcmFtc1swXS5ncHIoKSk7CiAgICAgICAgIH0pOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNo
cG9pbnQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBwYXRjaHBvaW50KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9j
LCAxLCAyKSA9PSAzKTsKIH0KQEAgLTc1MTEsNyArNzUxOSw3IEBAIHZvaWQgdGVzdFNpbXBsZVBh
dGNocG9pbnRXaXRob3V0T3VwdXRDbG8KICAgICAgICAgfSk7CiAKICAgICBWYWx1ZSogcmVzdWx0
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBhcmcxLCBhcmcy
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHBy
b2MsIDEsIDIpID09IDMpOwogfQpAQCAtNzU2MCw3ICs3NTY4LDcgQEAgdm9pZCB0ZXN0U2ltcGxl
UGF0Y2hwb2ludFdpdGhPdXB1dENsb2JiZQogCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBhcmcxLCBhcmcyKSk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9j
LCAxLCAyKSA9PSA1OCk7CiB9CkBAIC03NTkxLDcgKzc1OTksNyBAQCB2b2lkIHRlc3RTaW1wbGVQ
YXRjaHBvaW50V2l0aG91dE91cHV0Q2xvCiAgICAgICAgIH0pOwogCiAgICAgVmFsdWUqIHJlc3Vs
dCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYXJnMSwgYXJn
Mik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48ZG91Ymxl
Pihwcm9jLCAxLjUsIDIuNSkgPT0gNCk7CiB9CkBAIC03NjMyLDcgKzc2NDAsNyBAQCB2b2lkIHRl
c3RTaW1wbGVQYXRjaHBvaW50V2l0aE91cHV0Q2xvYmJlCiAKICAgICBWYWx1ZSogcmVzdWx0ID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBwYXRjaHBvaW50LAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGFyZzEs
IGFyZzIpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxk
b3VibGU+KHByb2MsIDEuNSwgMi41KSA9PSA1OS42KTsKIH0KQEAgLTc2NTcsNyArNzY2NSw3IEBA
IHZvaWQgdGVzdFBhdGNocG9pbnRXaXRoRWFybHlDbG9iYmVyKCkKICAgICAgICAgICAgICAgICBh
ZGQzMihqaXQsIHBhcmFtc1sxXS5ncHIoKSwgcGFyYW1zWzJdLmdwcigpLCBwYXJhbXNbMF0uZ3By
KCkpOwogICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CisgICAgICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50
KTsKIAogICAgICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywgMSwgMikgPT0gMyk7
CiAgICAgfTsKQEAgLTc2OTAsNyArNzY5OCw3IEBAIHZvaWQgdGVzdFBhdGNocG9pbnRDYWxsQXJn
KCkKICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZy
YW1lUmVnaXN0ZXIsIHBhcmFtc1syXS5vZmZzZXRGcm9tRlAoKSksCiAgICAgICAgICAgICAgICAg
cGFyYW1zWzBdLmdwcigpKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQp
OwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIDEsIDIpID09IDMpOwogfQpA
QCAtNzcxMyw3ICs3NzIxLDcgQEAgdm9pZCB0ZXN0UGF0Y2hwb2ludEZpeGVkUmVnaXN0ZXIoKQog
ICAgICAgICAgICAgQ0hFQ0socGFyYW1zWzJdID09IFZhbHVlUmVwKEdQUkluZm86OnJlZ1QxKSk7
CiAgICAgICAgICAgICBhZGQzMihqaXQsIEdQUkluZm86OnJlZ1QwLCBHUFJJbmZvOjpyZWdUMSwg
cGFyYW1zWzBdLmdwcigpKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQp
OwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIDEsIDIpID09IDMpOwogfQpA
QCAtNzczNyw3ICs3NzQ1LDcgQEAgdm9pZCB0ZXN0UGF0Y2hwb2ludEFueShWYWx1ZVJlcCByZXAp
CiAgICAgICAgICAgICBDSEVDSyhwYXJhbXNbMl0uaXNHUFIoKSk7CiAgICAgICAgICAgICBhZGQz
MihqaXQsIHBhcmFtc1sxXS5ncHIoKSwgcGFyYW1zWzJdLmdwcigpLCBwYXJhbXNbMF0uZ3ByKCkp
OwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CiAKICAgICBDSEVDSyhj
b21waWxlQW5kUnVuPGludD4ocHJvYywgMSwgMikgPT0gMyk7CiB9CkBAIC03NzczLDcgKzc3ODEs
NyBAQCB2b2lkIHRlc3RQYXRjaHBvaW50R1BTY3JhdGNoKCkKICAgICAgICAgICAgIENIRUNLKCFw
YXJhbXMudW5hdmFpbGFibGVSZWdpc3RlcnMoKS5nZXQocGFyYW1zLmdwU2NyYXRjaCgxKSkpOwog
ICAgICAgICAgICAgYWRkMzIoaml0LCBwYXJhbXNbMV0uZ3ByKCksIHBhcmFtc1syXS5ncHIoKSwg
cGFyYW1zWzBdLmdwcigpKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQp
OwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIDEsIDIpID09IDMpOwogfQpA
QCAtNzgwMyw3ICs3ODExLDcgQEAgdm9pZCB0ZXN0UGF0Y2hwb2ludEZQU2NyYXRjaCgpCiAgICAg
ICAgICAgICBDSEVDSyghcGFyYW1zLnVuYXZhaWxhYmxlUmVnaXN0ZXJzKCkuZ2V0KHBhcmFtcy5m
cFNjcmF0Y2goMSkpKTsKICAgICAgICAgICAgIGFkZDMyKGppdCwgcGFyYW1zWzFdLmdwcigpLCBw
YXJhbXNbMl0uZ3ByKCksIHBhcmFtc1swXS5ncHIoKSk7CiAgICAgICAgIH0pOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9p
bnQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBwYXRjaHBvaW50KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAx
LCAyKSA9PSAzKTsKIH0KQEAgLTc4NDUsNyArNzg1Myw3IEBAIHZvaWQgdGVzdFBhdGNocG9pbnRM
b3RzT2ZMYXRlQW55cygpCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAg
ICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5k
UnVuPGludD4ocHJvYykgPT0gKHRoaW5ncy5zaXplKCkgKiAodGhpbmdzLnNpemUoKSAtIDEpKSAv
IDIpOwogfQpAQCAtNzg3Myw3ICs3ODgxLDcgQEAgdm9pZCB0ZXN0UGF0Y2hwb2ludEFueUltbShW
YWx1ZVJlcCByZXApCiAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIo
c3RhdGljX2Nhc3Q8aW50MzJfdD4ocGFyYW1zWzJdLnZhbHVlKCkpKSwKICAgICAgICAgICAgICAg
ICBwYXJhbXNbMV0uZ3ByKCksIHBhcmFtc1swXS5ncHIoKSk7CiAgICAgICAgIH0pOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNo
cG9pbnQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBwYXRjaHBvaW50KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9j
LCAxKSA9PSA0Myk7CiB9CkBAIC03ODk5LDcgKzc5MDcsNyBAQCB2b2lkIHRlc3RQYXRjaHBvaW50
TWFueUltbXMoKQogICAgICAgICAgICAgQ0hFQ0socGFyYW1zWzJdID09IFZhbHVlUmVwOjpjb25z
dGFudCg0MzAwMDAwMDAwMDAwMGxsKSk7CiAgICAgICAgICAgICBDSEVDSyhwYXJhbXNbM10gPT0g
VmFsdWVSZXA6OmNvbnN0YW50KGJpdHdpc2VfY2FzdDxpbnQ2NF90Pig0Mi41KSkpOwogICAgICAg
ICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAK
QEAgLTc5MjUsNyArNzkzMyw3IEBAIHZvaWQgdGVzdFBhdGNocG9pbnRXaXRoUmVnaXN0ZXJSZXN1
bHQoKQogICAgICAgICAgICAgQ0hFQ0socGFyYW1zWzJdLmlzR1BSKCkpOwogICAgICAgICAgICAg
YWRkMzIoaml0LCBwYXJhbXNbMV0uZ3ByKCksIHBhcmFtc1syXS5ncHIoKSwgR1BSSW5mbzo6bm9u
QXJnR1BSMCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOworICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKIAogICAg
IENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAxLCAyKSA9PSAzKTsKIH0KQEAgLTc5NTEs
NyArNzk1OSw3IEBAIHZvaWQgdGVzdFBhdGNocG9pbnRXaXRoU3RhY2tBcmd1bWVudFJlc3UKICAg
ICAgICAgICAgIGppdC5hZGQzMihwYXJhbXNbMV0uZ3ByKCksIHBhcmFtc1syXS5ncHIoKSwgaml0
LnNjcmF0Y2hSZWdpc3RlcigpKTsKICAgICAgICAgICAgIGppdC5zdG9yZTMyKGppdC5zY3JhdGNo
UmVnaXN0ZXIoKSwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKENDYWxsSGVscGVyczo6c3RhY2tQb2lu
dGVyUmVnaXN0ZXIsIDApKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQp
OwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIDEsIDIpID09IDMpOwogfQpA
QCAtNzk4MCw3ICs3OTg4LDcgQEAgdm9pZCB0ZXN0UGF0Y2hwb2ludFdpdGhBbnlSZXN1bHQoKQog
ICAgICAgICAgICAgaml0LmNvbnZlcnRJbnQzMlRvRG91YmxlKEdQUkluZm86OnJlZ1QwLCBGUFJJ
bmZvOjpmcFJlZ1QwKTsKICAgICAgICAgICAgIGppdC5zdG9yZURvdWJsZShGUFJJbmZvOjpmcFJl
Z1QwLCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIHBh
cmFtc1swXS5vZmZzZXRGcm9tRlAoKSkpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0
Y2hwb2ludCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgMSwgMikg
PT0gMyk7CiB9CkBAIC04MDAyLDcgKzgwMTAsNyBAQCB2b2lkIHRlc3RTaW1wbGVDaGVjaygpCiAg
ICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5y
ZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkp
OwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKQEAgLTgwMjEsNyArODAyOSw3IEBA
IHZvaWQgdGVzdENoZWNrRmFsc2UoKQogICAgICAgICBbJl0gKENDYWxsSGVscGVycyYsIGNvbnN0
IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsKICAgICAgICAgICAgIENIRUNLKCEiVGhpcyBz
aG91bGQgbm90IGhhdmUgZXhlY3V0ZWQiKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsK
QEAgLTgwNDcsNyArODA1NSw3IEBAIHZvaWQgdGVzdENoZWNrVHJ1ZSgpCiAgICAgICAgICAgICBq
aXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAg
ICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgYXV0
byBjb2RlID0gY29tcGlsZShwcm9jKTsKQEAgLTgwNzgsNyArODA4Niw3IEBAIHZvaWQgdGVzdENo
ZWNrTGVzc1RoYW4oKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAg
ICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIDApKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CkBAIC04
MTI0LDcgKzgxMzIsNyBAQCB2b2lkIHRlc3RDaGVja01lZ2FDb21ibygpCiAgICAgICAgICAgICBq
aXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAg
ICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgYXV0
byBjb2RlID0gY29tcGlsZShwcm9jKTsKQEAgLTgxNzksNyArODE4Nyw3IEBAIHZvaWQgdGVzdENo
ZWNrVHJpY2t5TWVnYUNvbWJvKCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1
ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2Mp
OwpAQCAtODI0Myw3ICs4MjUxLDcgQEAgdm9pZCB0ZXN0Q2hlY2tUd29NZWdhQ29tYm9zKCkKICAg
ICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJl
dCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7
CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwpAQCAtODI5Myw3ICs4MzAxLDcgQEAg
dm9pZCB0ZXN0Q2hlY2tUd29Ob25SZWR1bmRhbnRNZWdhQ29tYm9zKAogICAgICAgICByb290LT5h
cHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQ4UywgT3JpZ2luKCksIHB0ciksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwog
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLCBicmFuY2hQcmVk
aWNhdGUsCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9j
ayhlbHNlQ2FzZSkpOwogICAgIApAQCAtODMwOSw3ICs4MzE3LDcgQEAgdm9pZCB0ZXN0Q2hlY2tU
d29Ob25SZWR1bmRhbnRNZWdhQ29tYm9zKAogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVw
aWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHRoZW5D
YXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB0aGVuQ2FzZS0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQzKSk7CiAKICAgICBDaGVja1Zh
bHVlKiBjaGVjazIgPSBlbHNlQ2FzZS0+YXBwZW5kTmV3PENoZWNrVmFsdWU+KHByb2MsIENoZWNr
LCBPcmlnaW4oKSwgY2hlY2tQcmVkaWNhdGUpOwpAQCAtODMyNCw3ICs4MzMyLDcgQEAgdm9pZCB0
ZXN0Q2hlY2tUd29Ob25SZWR1bmRhbnRNZWdhQ29tYm9zKAogICAgICAgICAgICAgaml0LmVtaXRG
dW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwot
ICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBlbHNl
Q2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQ1KSk7CiAKICAg
ICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwpAQCAtODM3OCw3ICs4Mzg2LDcgQEAgdm9pZCB0
ZXN0Q2hlY2tBZGRJbW0oKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7
CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tBZGQpKTsKIApAQCAtODQxNCw3ICs4NDIyLDcg
QEAgdm9pZCB0ZXN0Q2hlY2tBZGRJbW1Db21tdXRlKCkKICAgICAgICAgICAgIGppdC5lbWl0RnVu
Y3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGNoZWNrQWRkKSk7CiAKQEAg
LTg0NDksNyArODQ1Nyw3IEBAIHZvaWQgdGVzdENoZWNrQWRkSW1tU29tZVJlZ2lzdGVyKCkKICAg
ICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJl
dCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2lu
KCksIGNoZWNrQWRkKSk7CiAKQEAgLTg0ODYsNyArODQ5NCw3IEBAIHZvaWQgdGVzdENoZWNrQWRk
KCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAg
aml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwg
T3JpZ2luKCksIGNoZWNrQWRkKSk7CiAKQEAgLTg1MTksNyArODUyNyw3IEBAIHZvaWQgdGVzdENo
ZWNrQWRkNjQoKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAg
ICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tBZGQpKTsKIApAQCAtODU0Miw3ICs4NTUwLDcgQEAgdm9p
ZCB0ZXN0Q2hlY2tBZGRGb2xkKGludCBhLCBpbnQgYikKICAgICAgICAgWyZdIChDQ2FsbEhlbHBl
cnMmLCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7CiAgICAgICAgICAgICBDSEVD
SyghIlNob3VsZCBoYXZlIGJlZW4gZm9sZGVkIik7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrQWRkKTsK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
Y2hlY2tBZGQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAtODU2Myw3
ICs4NTcxLDcgQEAgdm9pZCB0ZXN0Q2hlY2tBZGRGb2xkRmFpbChpbnQgYSwgaW50IGIpCiAgICAg
ICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQo
KTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tBZGQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja0FkZCk7CiAKICAgICBhdXRvIGNvZGUg
PSBjb21waWxlKHByb2MpOwogCkBAIC04NjAyLDcgKzg2MTAsNyBAQCB2b2lkIHRlc3RDaGVja0Fk
ZEFyZ3VtZW50QWxpYXNpbmc2NCgpCiAgICAgQ2hlY2tWYWx1ZSogY2hlY2tBZGQzID0gcm9vdC0+
YXBwZW5kTmV3PENoZWNrVmFsdWU+KHByb2MsIENoZWNrQWRkLCBPcmlnaW4oKSwgY2hlY2tBZGQx
LCBjaGVja0FkZDIpOwogICAgIGNoZWNrQWRkMy0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxw
ZXJzJiBqaXQsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsgaml0Lm9vcHMoKTsg
fSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBjaGVja0FkZDMpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja0FkZDMpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1
bjxpbnQ2NF90Pihwcm9jLCAxLCAyLCAzKSA9PSA4KTsKIH0KQEAgLTg2NDUsNyArODY1Myw3IEBA
IHZvaWQgdGVzdENoZWNrQWRkQXJndW1lbnRBbGlhc2luZzMyKCkKICAgICBDaGVja1ZhbHVlKiBj
aGVja0FkZDMgPSByb290LT5hcHBlbmROZXc8Q2hlY2tWYWx1ZT4ocHJvYywgQ2hlY2tBZGQsIE9y
aWdpbigpLCBjaGVja0FkZDEsIGNoZWNrQWRkMik7CiAgICAgY2hlY2tBZGQzLT5zZXRHZW5lcmF0
b3IoWyZdIChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1z
JikgeyBqaXQub29wcygpOyB9KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrQWRkMyk7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrQWRkMyk7CiAKICAgICBD
SEVDSyhjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIDEsIDIsIDMpID09IDgpOwogfQpAQCAt
ODY3MCw3ICs4Njc4LDcgQEAgdm9pZCB0ZXN0Q2hlY2tBZGRTZWxmT3ZlcmZsb3c2NCgpCiAgICAg
b3BhcXVlVXNlLT5hcHBlbmQoQ29uc3RyYWluZWRWYWx1ZShhcmcsIFZhbHVlUmVwOjpTb21lUmVn
aXN0ZXIpKTsKICAgICBvcGFxdWVVc2UtPnNldEdlbmVyYXRvcihbJl0gKENDYWxsSGVscGVycyYs
IGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsgfSk7CiAKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja0FkZCk7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNo
ZWNrQWRkKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKQEAgLTg3MDEsNyAr
ODcwOSw3IEBAIHZvaWQgdGVzdENoZWNrQWRkU2VsZk92ZXJmbG93MzIoKQogICAgIG9wYXF1ZVVz
ZS0+YXBwZW5kKENvbnN0cmFpbmVkVmFsdWUoYXJnLCBWYWx1ZVJlcDo6U29tZVJlZ2lzdGVyKSk7
CiAgICAgb3BhcXVlVXNlLT5zZXRHZW5lcmF0b3IoWyZdIChDQ2FsbEhlbHBlcnMmLCBjb25zdCBT
dGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7IH0pOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tBZGQpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja0FkZCk7
CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC04NzM0LDcgKzg3NDIsNyBA
QCB2b2lkIHRlc3RDaGVja1N1YkltbSgpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBp
bG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVja1N1YikpOwogCkBAIC04Nzc2LDcg
Kzg3ODQsNyBAQCB2b2lkIHRlc3RDaGVja1N1YkJhZEltbSgpCiAgICAgICAgICAgICBqaXQuZW1p
dEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVja1N1YikpOwog
CkBAIC04ODEzLDcgKzg4MjEsNyBAQCB2b2lkIHRlc3RDaGVja1N1YigpCiAgICAgICAgICAgICBq
aXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAg
ICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVja1N1
YikpOwogCkBAIC04ODUxLDcgKzg4NTksNyBAQCB2b2lkIHRlc3RDaGVja1N1YjY0KCkKICAgICAg
ICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgp
OwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCks
IGNoZWNrU3ViKSk7CiAKQEAgLTg4NzQsNyArODg4Miw3IEBAIHZvaWQgdGVzdENoZWNrU3ViRm9s
ZChpbnQgYSwgaW50IGIpCiAgICAgICAgIFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3RhY2tt
YXBHZW5lcmF0aW9uUGFyYW1zJikgewogICAgICAgICAgICAgQ0hFQ0soISJTaG91bGQgaGF2ZSBi
ZWVuIGZvbGRlZCIpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja1N1Yik7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrU3ViKTsKIAogICAg
IGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKQEAgLTg4OTUsNyArODkwMyw3IEBAIHZvaWQg
dGVzdENoZWNrU3ViRm9sZEZhaWwoaW50IGEsIGludCBiKQogICAgICAgICAgICAgaml0LmVtaXRG
dW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IGNoZWNrU3ViKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgY2hlY2tTdWIpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsK
IApAQCAtODkyMiw3ICs4OTMwLDcgQEAgdm9pZCB0ZXN0Q2hlY2tOZWcoKQogICAgICAgICAgICAg
aml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAg
ICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tO
ZWcpKTsKIApAQCAtODk1Miw3ICs4OTYwLDcgQEAgdm9pZCB0ZXN0Q2hlY2tOZWc2NCgpCiAgICAg
ICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQo
KTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigp
LCBjaGVja05lZykpOwogCkBAIC04OTg5LDcgKzg5OTcsNyBAQCB2b2lkIHRlc3RDaGVja011bCgp
CiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGpp
dC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9y
aWdpbigpLCBjaGVja011bCkpOwogCkBAIC05MDMwLDcgKzkwMzgsNyBAQCB2b2lkIHRlc3RDaGVj
a011bE1lbW9yeSgpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAg
ICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIElUb0QsIE9yaWdpbigpLCBjaGVja011bCkpOwogCkBAIC05MDc3LDcgKzkwODUsNyBAQCB2
b2lkIHRlc3RDaGVja011bDIoKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3Vl
KCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tNdWwpKTsKIApAQCAtOTExMCw3ICs5MTE4
LDcgQEAgdm9pZCB0ZXN0Q2hlY2tNdWw2NCgpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9u
RXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVja011bCkpOwogCkBAIC05MTMz
LDcgKzkxNDEsNyBAQCB2b2lkIHRlc3RDaGVja011bEZvbGQoaW50IGEsIGludCBiKQogICAgICAg
ICBbJl0gKENDYWxsSGVscGVycyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsK
ICAgICAgICAgICAgIENIRUNLKCEiU2hvdWxkIGhhdmUgYmVlbiBmb2xkZWQiKTsKICAgICAgICAg
fSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgY2hlY2tNdWwpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCBjaGVja011bCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHBy
b2MpOwogCkBAIC05MTU0LDcgKzkxNjIsNyBAQCB2b2lkIHRlc3RDaGVja011bEZvbGRGYWlsKGlu
dCBhLCBpbnQgYikKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAg
ICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja011bCk7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrTXVsKTsK
IAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKQEAgLTkxOTMsNyArOTIwMSw3IEBA
IHZvaWQgdGVzdENoZWNrTXVsQXJndW1lbnRBbGlhc2luZzY0KCkKICAgICBDaGVja1ZhbHVlKiBj
aGVja011bDMgPSByb290LT5hcHBlbmROZXc8Q2hlY2tWYWx1ZT4ocHJvYywgQ2hlY2tNdWwsIE9y
aWdpbigpLCBjaGVja011bDEsIGNoZWNrTXVsMik7CiAgICAgY2hlY2tNdWwzLT5zZXRHZW5lcmF0
b3IoWyZdIChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1z
JikgeyBqaXQub29wcygpOyB9KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrTXVsMyk7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrTXVsMyk7CiAKICAgICBD
SEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIDIsIDMsIDQpID09IDcyKTsKIH0KQEAg
LTkyMzYsNyArOTI0NCw3IEBAIHZvaWQgdGVzdENoZWNrTXVsQXJndW1lbnRBbGlhc2luZzMyKCkK
ICAgICBDaGVja1ZhbHVlKiBjaGVja011bDMgPSByb290LT5hcHBlbmROZXc8Q2hlY2tWYWx1ZT4o
cHJvYywgQ2hlY2tNdWwsIE9yaWdpbigpLCBjaGVja011bDEsIGNoZWNrTXVsMik7CiAgICAgY2hl
Y2tNdWwzLT5zZXRHZW5lcmF0b3IoWyZdIChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU3RhY2tt
YXBHZW5lcmF0aW9uUGFyYW1zJikgeyBqaXQub29wcygpOyB9KTsKIAotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrTXVsMyk7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNo
ZWNrTXVsMyk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIDIsIDMs
IDQpID09IDcyKTsKIH0KQEAgLTkyNjgsNyArOTI3Niw3IEBAIHZvaWQgdGVzdENoZWNrTXVsNjRT
U2hyKCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAg
ICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRv
RCwgT3JpZ2luKCksIGNoZWNrTXVsKSk7CiAKQEAgLTkyOTQsNyArOTMwMiw3IEBAIHZvaWQgZ2Vu
ZXJpY1Rlc3RDb21wYXJlKAogICAgICAgICBWYWx1ZSogcmlnaHRWYWx1ZSA9IHJpZ2h0RnVuY3Rv
cihyb290LCBwcm9jKTsKICAgICAgICAgVmFsdWUqIGNvbXBhcmlzb25SZXN1bHQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIG9wY29kZSwgT3JpZ2luKCksIGxlZnRWYWx1ZSwgcmlnaHRW
YWx1ZSk7CiAgICAgICAgIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICAgICAgcHJvYywgTm90RXF1YWwsIE9yaWdpbigpLApAQCAtOTMxNCw3ICs5MzIy
LDcgQEAgdm9pZCBnZW5lcmljVGVzdENvbXBhcmUoCiAgICAgICAgIFZhbHVlKiBsZWZ0VmFsdWUg
PSBsZWZ0RnVuY3Rvcihyb290LCBwcm9jKTsKICAgICAgICAgVmFsdWUqIHJpZ2h0VmFsdWUgPSBy
aWdodEZ1bmN0b3Iocm9vdCwgcHJvYyk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
ICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIG9wY29kZSwgT3JpZ2luKCksIGxlZnRWYWx1ZSwgcmlnaHRWYWx1ZSksCiAg
ICAgICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxz
ZUNhc2UpKTsKQEAgLTkzMjgsOSArOTMzNiw5IEBAIHZvaWQgZ2VuZXJpY1Rlc3RDb21wYXJlKAog
ICAgICAgICAgICAgICAgIENIRUNLKHBhcmFtc1swXS5pc0dQUigpKTsKICAgICAgICAgICAgICAg
ICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigxKSwgcGFyYW1zWzBdLmdwcigp
KTsKICAgICAgICAgICAgIH0pOwotICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CisgICAgICAgIHRoZW5D
YXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hw
b2ludCk7CiAKLSAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
ICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC05NTY5LDcgKzk1NzcsNyBAQCB2b2lk
IHRlc3RFcXVhbERvdWJsZShkb3VibGUgbGVmdCwgZG91YmxlCiB7CiAgICAgUHJvY2VkdXJlIHBy
b2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBFcXVhbCwgT3JpZ2luKCksCkBAIC05NTg4LDcg
Kzk1OTYsNyBAQCB2b2lkIHRlc3RDYWxsU2ltcGxlKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9j
ZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PENDYWxsVmFsdWU+KAogICAgICAgICAgICAgcHJvYywgSW50MzIsIE9yaWdpbigp
LApAQCAtOTYwNiwxNiArOTYxNCwxNiBAQCB2b2lkIHRlc3RDYWxsUmFyZShpbnQgYSwgaW50IGIp
CiAgICAgQmFzaWNCbG9jayogY29tbW9uID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxv
Y2sqIHJhcmUgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwKICAgICAgICAgRnJl
cXVlbnRlZEJsb2NrKHJhcmUsIEZyZXF1ZW5jeUNsYXNzOjpSYXJlKSwKICAgICAgICAgRnJlcXVl
bnRlZEJsb2NrKGNvbW1vbikpOwogCi0gICAgY29tbW9uLT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICBjb21tb24tPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgY29tbW9uLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgMCkpOwogICAgIAotICAgIHJhcmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJhcmUtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcmFyZS0+YXBwZW5kTmV3PENDYWxsVmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgSW50MzIsIE9yaWdpbigpLApAQCAtOTYzMywxNiArOTY0MSwxNiBAQCB2b2lkIHRlc3RD
YWxsUmFyZUxpdmUoaW50IGEsIGludCBiLCBpbnQgCiAgICAgQmFzaWNCbG9jayogY29tbW9uID0g
cHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIHJhcmUgPSBwcm9jLmFkZEJsb2NrKCk7
CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIwKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHJhcmUsIEZyZXF1ZW5j
eUNsYXNzOjpSYXJlKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKGNvbW1vbikpOwogCi0gICAg
Y29tbW9uLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBjb21tb24tPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY29tbW9uLT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogICAgIAotICAgIHJhcmUt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJhcmUtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcmFyZS0+YXBwZW5k
TmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCkBAIC05NjYyLDcg
Kzk2NzAsNyBAQCB2b2lkIHRlc3RDYWxsU2ltcGxlUHVyZShpbnQgYSwgaW50IGIpCiB7CiAgICAg
UHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxDQ2FsbFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEludDMyLCBPcmln
aW4oKSwgRWZmZWN0czo6bm9uZSgpLApAQCAtOTY5Miw3ICs5NzAwLDcgQEAgdm9pZCB0ZXN0Q2Fs
bEZ1bmN0aW9uV2l0aEhlbGxhQXJndW1lbnRzKAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29u
c3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGJpdHdpc2VfY2FzdDx2b2lkKj4oZnVuY3Rpb25X
aXRoSGVsbGFBcmd1bWVudHMpKSk7CiAgICAgY2FsbC0+Y2hpbGRyZW4oKS5hcHBlbmRWZWN0b3Io
YXJncyk7CiAgICAgCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgY2FsbCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIGNhbGwpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxp
bnQ+KHByb2MpID09IGZ1bmN0aW9uV2l0aEhlbGxhQXJndW1lbnRzKDEsIDIsIDMsIDQsIDUsIDYs
IDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAxNywgMTgsIDE5LCAyMCwgMjEs
IDIyLCAyMywgMjQsIDI1LCAyNikpOwogfQpAQCAtOTcwMSw3ICs5NzA5LDcgQEAgdm9pZCB0ZXN0
UmV0dXJuRG91YmxlKGRvdWJsZSB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91
YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSkpOwogCkBAIC05NzEyLDcgKzk3MjAsNyBA
QCB2b2lkIHRlc3RSZXR1cm5GbG9hdChmbG9hdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKSk7CiAKQEAgLTk3MjgsNyAr
OTczNiw3IEBAIHZvaWQgdGVzdENhbGxTaW1wbGVEb3VibGUoZG91YmxlIGEsIGRvdWIKIHsKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PENDYWxsVmFsdWU+KAogICAgICAgICAgICAgcHJvYywgRG91YmxlLCBP
cmlnaW4oKSwKQEAgLTk3NTQsNyArOTc2Miw3IEBAIHZvaWQgdGVzdENhbGxTaW1wbGVGbG9hdChm
bG9hdCBhLCBmbG9hdCAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKTsKICAgICBWYWx1ZSogZmxv
YXRWYWx1ZTEgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmln
aW4oKSwgYXJndW1lbnQxaW50MzIpOwogICAgIFZhbHVlKiBmbG9hdFZhbHVlMiA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDJpbnQz
Mik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8Q0NhbGxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBGbG9hdCwg
T3JpZ2luKCksCkBAIC05Nzg0LDcgKzk3OTIsNyBAQCB2b2lkIHRlc3RDYWxsRnVuY3Rpb25XaXRo
SGVsbGFEb3VibGVBcmd1CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgYml0d2lzZV9jYXN0PHZvaWQqPihmdW5jdGlvbldpdGhIZWxsYURvdWJs
ZUFyZ3VtZW50cykpKTsKICAgICBjYWxsLT5jaGlsZHJlbigpLmFwcGVuZFZlY3RvcihhcmdzKTsK
ICAgICAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBjYWxsKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgY2FsbCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGRvdWJsZT4o
cHJvYykgPT0gZnVuY3Rpb25XaXRoSGVsbGFEb3VibGVBcmd1bWVudHMoMSwgMiwgMywgNCwgNSwg
NiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDE3LCAxOCwgMTksIDIwLCAy
MSwgMjIsIDIzLCAyNCwgMjUsIDI2KSk7CiB9CkBAIC05ODA4LDcgKzk4MTYsNyBAQCB2b2lkIHRl
c3RDYWxsRnVuY3Rpb25XaXRoSGVsbGFGbG9hdEFyZ3VtCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYml0d2lzZV9jYXN0PHZvaWQqPihmdW5j
dGlvbldpdGhIZWxsYUZsb2F0QXJndW1lbnRzKSkpOwogICAgIGNhbGwtPmNoaWxkcmVuKCkuYXBw
ZW5kVmVjdG9yKGFyZ3MpOwogICAgIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNhbGwpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYWxsKTsKIAogICAgIENIRUNLKGNvbXBp
bGVBbmRSdW48ZmxvYXQ+KHByb2MpID09IGZ1bmN0aW9uV2l0aEhlbGxhRmxvYXRBcmd1bWVudHMo
MSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDE3
LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNCwgMjUsIDI2KSk7CiB9CkBAIC05ODIwLDcgKzk4
MjgsNyBAQCB2b2lkIHRlc3RDaGlsbERpdihpbnQgbnVtLCBpbnQgZGVuLCBpbnQgCiAgICAgICAg
IFByb2NlZHVyZSBwcm9jOwogICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwogICAgICAgICAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgICAgIHByb2MsIENoaWxsRGl2LCBPcmlnaW4oKSwKQEAgLTk4MzksNyArOTg0Nyw3
IEBAIHZvaWQgdGVzdENoaWxsRGl2KGludCBudW0sIGludCBkZW4sIGludCAKICAgICAgICAgUHJv
Y2VkdXJlIHByb2M7CiAgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
CiAgICAgICAgIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICAgICAgcHJvYywgQ2hpbGxEaXYsIE9yaWdpbigpLApAQCAtOTg1NSw3ICs5ODYzLDcgQEAg
dm9pZCB0ZXN0Q2hpbGxEaXZUd2ljZShpbnQgbnVtMSwgaW50IGRlbgogICAgIFByb2NlZHVyZSBw
cm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAtOTg4OSw3
ICs5ODk3LDcgQEAgdm9pZCB0ZXN0Q2hpbGxEaXY2NChpbnQ2NF90IG51bSwgaW50NjRfdAogICAg
ICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKICAgICAgICAgCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgICAgICBwcm9jLCBDaGlsbERpdiwgT3JpZ2luKCksCkBAIC05OTA0LDcgKzk5
MTIsNyBAQCB2b2lkIHRlc3RDaGlsbERpdjY0KGludDY0X3QgbnVtLCBpbnQ2NF90CiAgICAgICAg
IFByb2NlZHVyZSBwcm9jOwogICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwogICAgICAgICAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgICAgIHByb2MsIENoaWxsRGl2LCBPcmlnaW4oKSwKQEAgLTk5MjUsNyArOTkzMyw3
IEBAIHZvaWQgdGVzdE1vZEFyZyhpbnQ2NF90IHZhbHVlKQogCiAgICAgVmFsdWUqIGFyZ3VtZW50
ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIGFyZ3VtZW50LCBhcmd1bWVudCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0KTsKIAogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIHZh
bHVlKSk7CiB9CkBAIC05OTQzLDcgKzk5NTEsNyBAQCB2b2lkIHRlc3RNb2RBcmdzKGludDY0X3Qg
bnVtZXJhdG9yLCBpbnQ2CiAgICAgVmFsdWUqIGFyZ3VtZW50MSA9IHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsK
ICAgICBWYWx1ZSogYXJndW1lbnQyID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwogICAgIFZhbHVlKiByZXN1
bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIGFyZ3VtZW50
MSwgYXJndW1lbnQyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFu
ZFJ1bjxpbnQ2NF90Pihwcm9jLCBudW1lcmF0b3IsIGRlbm9taW5hdG9yKSA9PSBudW1lcmF0b3Ig
JSBkZW5vbWluYXRvcik7CiB9CkBAIC05OTYxLDcgKzk5NjksNyBAQCB2b2lkIHRlc3RNb2RJbW1z
KGludDY0X3QgbnVtZXJhdG9yLCBpbnQ2CiAgICAgVmFsdWUqIGFyZ3VtZW50MSA9IHJvb3QtPmFw
cGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBudW1lcmF0b3IpOwogICAgIFZh
bHVlKiBhcmd1bWVudDIgPSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmln
aW4oKSwgZGVub21pbmF0b3IpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIGFyZ3VtZW50MSwgYXJndW1lbnQyKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1
bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCBu
dW1lcmF0b3IsIGRlbm9taW5hdG9yKSA9PSBudW1lcmF0b3IgJSBkZW5vbWluYXRvcik7CiB9CkBA
IC05OTc3LDcgKzk5ODUsNyBAQCB2b2lkIHRlc3RNb2RBcmczMihpbnQzMl90IHZhbHVlKQogICAg
IFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiByZXN1bHQgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIGFyZ3VtZW50LCBhcmd1
bWVudCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGlu
dDMyX3Q+KHByb2MsIHZhbHVlKSk7CiB9CkBAIC05OTk3LDcgKzEwMDA1LDcgQEAgdm9pZCB0ZXN0
TW9kQXJnczMyKGludDMyX3QgbnVtZXJhdG9yLCBpbgogICAgIFZhbHVlKiBhcmd1bWVudDIgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjEpKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBNb2QsIE9yaWdpbigpLCBhcmd1bWVudDEsIGFyZ3VtZW50Mik7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgbnVtZXJh
dG9yLCBkZW5vbWluYXRvcikgPT0gbnVtZXJhdG9yICUgZGVub21pbmF0b3IpOwogfQpAQCAtMTAw
MTUsNyArMTAwMjMsNyBAQCB2b2lkIHRlc3RNb2RJbW1zMzIoaW50MzJfdCBudW1lcmF0b3IsIGlu
CiAgICAgVmFsdWUqIGFyZ3VtZW50MSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBudW1lcmF0b3IpOwogICAgIFZhbHVlKiBhcmd1bWVudDIgPSByb290LT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgZGVub21pbmF0b3IpOwogICAg
IFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2lu
KCksIGFyZ3VtZW50MSwgYXJndW1lbnQyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hF
Q0soY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBudW1lcmF0b3IsIGRlbm9taW5hdG9yKSA9
PSBudW1lcmF0b3IgJSBkZW5vbWluYXRvcik7CiB9CkBAIC0xMDAyNyw3ICsxMDAzNSw3IEBAIHZv
aWQgdGVzdENoaWxsTW9kQXJnKGludDY0X3QgdmFsdWUpCiAKICAgICBWYWx1ZSogYXJndW1lbnQg
PSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQ2hpbGxNb2QsIE9yaWdpbigpLCBhcmd1bWVudCwgYXJndW1lbnQpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
c3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9j
LCB2YWx1ZSkpOwogfQpAQCAtMTAwNDAsNyArMTAwNDgsNyBAQCB2b2lkIHRlc3RDaGlsbE1vZEFy
Z3MoaW50NjRfdCBudW1lcmF0b3IsCiAgICAgVmFsdWUqIGFyZ3VtZW50MSA9IHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIwKTsKICAgICBWYWx1ZSogYXJndW1lbnQyID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwogICAgIFZhbHVl
KiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENoaWxsTW9kLCBPcmlnaW4o
KSwgYXJndW1lbnQxLCBhcmd1bWVudDIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVD
Syhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIG51bWVyYXRvciwgZGVub21pbmF0b3IpID09
IGNoaWxsTW9kKG51bWVyYXRvciwgZGVub21pbmF0b3IpKTsKIH0KQEAgLTEwMDUzLDcgKzEwMDYx
LDcgQEAgdm9pZCB0ZXN0Q2hpbGxNb2RJbW1zKGludDY0X3QgbnVtZXJhdG9yLAogICAgIFZhbHVl
KiBhcmd1bWVudDEgPSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgbnVtZXJhdG9yKTsKICAgICBWYWx1ZSogYXJndW1lbnQyID0gcm9vdC0+YXBwZW5kTmV3PENv
bnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGRlbm9taW5hdG9yKTsKICAgICBWYWx1ZSogcmVz
dWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDaGlsbE1vZCwgT3JpZ2luKCksIGFy
Z3VtZW50MSwgYXJndW1lbnQyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29t
cGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCBudW1lcmF0b3IsIGRlbm9taW5hdG9yKSA9PSBjaGls
bE1vZChudW1lcmF0b3IsIGRlbm9taW5hdG9yKSk7CiB9CkBAIC0xMDA2Niw3ICsxMDA3NCw3IEBA
IHZvaWQgdGVzdENoaWxsTW9kQXJnMzIoaW50MzJfdCB2YWx1ZSkKICAgICBWYWx1ZSogYXJndW1l
bnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBDaGlsbE1vZCwgT3JpZ2luKCksIGFyZ3VtZW50LCBhcmd1bWVudCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludDMyX3Q+KHBy
b2MsIHZhbHVlKSk7CiB9CkBAIC0xMDA4MSw3ICsxMDA4OSw3IEBAIHZvaWQgdGVzdENoaWxsTW9k
QXJnczMyKGludDMyX3QgbnVtZXJhdG8KICAgICBWYWx1ZSogYXJndW1lbnQyID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIxKSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
Q2hpbGxNb2QsIE9yaWdpbigpLCBhcmd1bWVudDEsIGFyZ3VtZW50Mik7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgbnVtZXJhdG9y
LCBkZW5vbWluYXRvcikgPT0gY2hpbGxNb2QobnVtZXJhdG9yLCBkZW5vbWluYXRvcikpOwogfQpA
QCAtMTAwOTQsNyArMTAxMDIsNyBAQCB2b2lkIHRlc3RDaGlsbE1vZEltbXMzMihpbnQzMl90IG51
bWVyYXRvCiAgICAgVmFsdWUqIGFyZ3VtZW50MSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBudW1lcmF0b3IpOwogICAgIFZhbHVlKiBhcmd1bWVudDIgPSBy
b290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgZGVub21pbmF0b3Ip
OwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENoaWxs
TW9kLCBPcmlnaW4oKSwgYXJndW1lbnQxLCBhcmd1bWVudDIpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7
CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIG51bWVyYXRvciwgZGVu
b21pbmF0b3IpID09IGNoaWxsTW9kKG51bWVyYXRvciwgZGVub21pbmF0b3IpKTsKIH0KQEAgLTEw
MTA1LDE4ICsxMDExMywxNyBAQCB2b2lkIHRlc3RTd2l0Y2godW5zaWduZWQgZGVncmVlLCB1bnNp
Z25lCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKIAogICAgIEJhc2lj
QmxvY2sqIHRlcm1pbmF0ZSA9IHByb2MuYWRkQmxvY2soKTsKLSAgICB0ZXJtaW5hdGUtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRlcm1pbmF0ZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0ZXJtaW5hdGUtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBTd2l0Y2hW
YWx1ZSogc3dpdGNoVmFsdWUgPSByb290LT5hcHBlbmROZXc8U3dpdGNoVmFsdWU+KAotICAgICAg
ICBwcm9jLCBPcmlnaW4oKSwKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApLAotICAgICAgICBGcmVx
dWVudGVkQmxvY2sodGVybWluYXRlKSk7CisgICAgICAgIHByb2MsIE9yaWdpbigpLCByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCkpOworICAgIHN3aXRjaFZhbHVlLT5zZXRGYWxsVGhyb3VnaChGcmVxdWVudGVkQmxv
Y2sodGVybWluYXRlKSk7CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZGVncmVlOyAr
K2kpIHsKICAgICAgICAgQmFzaWNCbG9jayogbmV3QmxvY2sgPSBwcm9jLmFkZEJsb2NrKCk7Ci0g
ICAgICAgIG5ld0Jsb2NrLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgbmV3Qmxv
Y2stPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgICAgICBuZXdCbG9jay0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KAogICAgICAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLCAoaSAmIDEpID8gR1BSSW5mbzo6YXJn
dW1lbnRHUFIyIDogR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7CkBAIC0xMDE0NywxOSArMTAxNTQs
MTggQEAgdm9pZCB0ZXN0U3dpdGNoQ2hpbGxEaXYodW5zaWduZWQgZGVncmVlLAogICAgIFZhbHVl
KiByaWdodCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKTsKIAogICAgIEJhc2ljQmxvY2sqIHRlcm1pbmF0ZSA9
IHByb2MuYWRkQmxvY2soKTsKLSAgICB0ZXJtaW5hdGUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHRlcm1pbmF0ZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0ZXJtaW5hdGUtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBTd2l0Y2hWYWx1ZSogc3dpdGNoVmFsdWUg
PSByb290LT5hcHBlbmROZXc8U3dpdGNoVmFsdWU+KAotICAgICAgICBwcm9jLCBPcmlnaW4oKSwK
LSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApLAotICAgICAgICBGcmVxdWVudGVkQmxvY2sodGVybWlu
YXRlKSk7CisgICAgICAgIHByb2MsIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOworICAgIHN3
aXRjaFZhbHVlLT5zZXRGYWxsVGhyb3VnaChGcmVxdWVudGVkQmxvY2sodGVybWluYXRlKSk7CiAK
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZGVncmVlOyArK2kpIHsKICAgICAgICAgQmFz
aWNCbG9jayogbmV3QmxvY2sgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICAgICAgbmV3QmxvY2st
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICBuZXdCbG9jay0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
ICAgIG5ld0Jsb2NrLT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIENo
aWxsRGl2LCBPcmlnaW4oKSwgKGkgJiAxKSA/IHJpZ2h0IDogbGVmdCwgKGkgJiAxKSA/IGxlZnQg
OiByaWdodCkpOwpAQCAtMTAxNzAsNyArMTAxNzYsMTAgQEAgdm9pZCB0ZXN0U3dpdGNoQ2hpbGxE
aXYodW5zaWduZWQgZGVncmVlLAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZGVncmVlOyArK2kpIHsKLSAgICAgICAgQ0hFQ0so
aW52b2tlPGludDMyX3Q+KCpjb2RlLCBpICogZ2FwLCA0MiwgMTEpID09ICgoaSAmIDEpID8gMTEv
NDIgOiA0Mi8xMSkpOworICAgICAgICBkYXRhTG9nKCJpID0gIiwgaSwgIlxuIik7CisgICAgICAg
IGludDMyX3QgcmVzdWx0ID0gaW52b2tlPGludDMyX3Q+KCpjb2RlLCBpICogZ2FwLCA0MiwgMTEp
OworICAgICAgICBkYXRhTG9nKCJyZXN1bHQgPSAiLCByZXN1bHQsICJcbiIpOworICAgICAgICBD
SEVDSyhyZXN1bHQgPT0gKChpICYgMSkgPyAxMS80MiA6IDQyLzExKSk7CiAgICAgICAgIGlmIChn
YXAgPiAxKSB7CiAgICAgICAgICAgICBDSEVDSyghaW52b2tlPGludDMyX3Q+KCpjb2RlLCBpICog
Z2FwICsgMSwgNDIsIDExKSk7CiAgICAgICAgICAgICBDSEVDSyghaW52b2tlPGludDMyX3Q+KCpj
b2RlLCBpICogZ2FwIC0gMSwgNDIsIDExKSk7CkBAIC0xMDE4OCwxNyArMTAxOTcsMTYgQEAgdm9p
ZCB0ZXN0U3dpdGNoVGFyZ2V0dGluZ1NhbWVCbG9jaygpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKIAogICAgIEJhc2ljQmxvY2sqIHRlcm1pbmF0ZSA9IHByb2MuYWRk
QmxvY2soKTsKLSAgICB0ZXJtaW5hdGUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRl
cm1pbmF0ZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICB0ZXJtaW5hdGUtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCA1KSk7CiAKICAgICBTd2l0Y2hWYWx1ZSogc3dpdGNoVmFsdWUgPSByb290LT5h
cHBlbmROZXc8U3dpdGNoVmFsdWU+KAotICAgICAgICBwcm9jLCBPcmlnaW4oKSwKLSAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjApLAotICAgICAgICBGcmVxdWVudGVkQmxvY2sodGVybWluYXRlKSk7Cisg
ICAgICAgIHByb2MsIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOworICAgIHN3aXRjaFZhbHVl
LT5zZXRGYWxsVGhyb3VnaChGcmVxdWVudGVkQmxvY2sodGVybWluYXRlKSk7CiAKICAgICBCYXNp
Y0Jsb2NrKiBvdGhlclRhcmdldCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICBvdGhlclRhcmdldC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgb3RoZXJUYXJnZXQtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgb3RoZXJU
YXJnZXQtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwogICAg
IHN3aXRjaFZhbHVlLT5hcHBlbmRDYXNlKFN3aXRjaENhc2UoMywgRnJlcXVlbnRlZEJsb2NrKG90
aGVyVGFyZ2V0KSkpOwpAQCAtMTAyMTgsMTggKzEwMjI2LDE2IEBAIHZvaWQgdGVzdFN3aXRjaFRh
cmdldHRpbmdTYW1lQmxvY2tGb2xkUGEKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwogCiAgICAgQmFzaWNCbG9jayogdGVybWluYXRlID0gcHJvYy5hZGRCbG9jaygpOwot
ICAgIHRlcm1pbmF0ZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGVybWluYXRlLT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHRlcm1pbmF0ZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IDQyKSk7CiAKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgU3dp
dGNoVmFsdWUqIHN3aXRjaFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFN3aXRjaFZhbHVlPigKLSAg
ICAgICAgcHJvYywgT3JpZ2luKCksCi0gICAgICAgIGFyZ3VtZW50LAotICAgICAgICBGcmVxdWVu
dGVkQmxvY2sodGVybWluYXRlKSk7CisgICAgU3dpdGNoVmFsdWUqIHN3aXRjaFZhbHVlID0gcm9v
dC0+YXBwZW5kTmV3PFN3aXRjaFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYXJndW1lbnQpOworICAg
IHN3aXRjaFZhbHVlLT5zZXRGYWxsVGhyb3VnaChGcmVxdWVudGVkQmxvY2sodGVybWluYXRlKSk7
CiAKICAgICBCYXNpY0Jsb2NrKiBvdGhlclRhcmdldCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICBv
dGhlclRhcmdldC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgb3RoZXJUYXJnZXQtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXJn
dW1lbnQpOwogICAgIHN3aXRjaFZhbHVlLT5hcHBlbmRDYXNlKFN3aXRjaENhc2UoMywgRnJlcXVl
bnRlZEJsb2NrKG90aGVyVGFyZ2V0KSkpOwogICAgIHN3aXRjaFZhbHVlLT5hcHBlbmRDYXNlKFN3
aXRjaENhc2UoMTMsIEZyZXF1ZW50ZWRCbG9jayhvdGhlclRhcmdldCkpKTsKQEAgLTEwMjQ2LDcg
KzEwMjUyLDcgQEAgdm9pZCB0ZXN0VHJ1bmNGb2xkKGludDY0X3QgdmFsdWUpCiB7CiAgICAgUHJv
Y2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCkBA
IC0xMDI1OSw3ICsxMDI2NSw3IEBAIHZvaWQgdGVzdFpFeHQzMihpbnQzMl90IHZhbHVlKQogewog
ICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgWkV4dDMyLCBPcmln
aW4oKSwKQEAgLTEwMjc0LDcgKzEwMjgwLDcgQEAgdm9pZCB0ZXN0WkV4dDMyRm9sZChpbnQzMl90
IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
WkV4dDMyLCBPcmlnaW4oKSwKQEAgLTEwMjg3LDcgKzEwMjkzLDcgQEAgdm9pZCB0ZXN0U0V4dDMy
KGludDMyX3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBTRXh0MzIsIE9yaWdpbigpLApAQCAtMTAzMDIsNyArMTAzMDgsNyBAQCB2b2lkIHRl
c3RTRXh0MzJGb2xkKGludDMyX3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
CiAgICAgICAgICAgICBwcm9jLCBTRXh0MzIsIE9yaWdpbigpLApAQCAtMTAzMTUsNyArMTAzMjEs
NyBAQCB2b2lkIHRlc3RUcnVuY1pFeHQzMihpbnQzMl90IHZhbHVlKQogewogICAgIFByb2NlZHVy
ZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLApAQCAtMTAz
MzIsNyArMTAzMzgsNyBAQCB2b2lkIHRlc3RUcnVuY1NFeHQzMihpbnQzMl90IHZhbHVlKQogewog
ICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdp
bigpLApAQCAtMTAzNDksNyArMTAzNTUsNyBAQCB2b2lkIHRlc3RTRXh0OChpbnQzMl90IHZhbHVl
KQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU0V4dDgs
IE9yaWdpbigpLApAQCAtMTAzNjQsNyArMTAzNzAsNyBAQCB2b2lkIHRlc3RTRXh0OEZvbGQoaW50
MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIFNFeHQ4LCBPcmlnaW4oKSwKQEAgLTEwMzc3LDcgKzEwMzgzLDcgQEAgdm9pZCB0ZXN0U0V4
dDhTRXh0OChpbnQzMl90IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgU0V4dDgsIE9yaWdpbigpLApAQCAtMTAzOTQsNyArMTA0MDAsNyBAQCB2
b2lkIHRlc3RTRXh0OFNFeHQxNihpbnQzMl90IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9j
OwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU0V4dDgsIE9yaWdpbigpLApAQCAtMTA0MTEsNyAr
MTA0MTcsNyBAQCB2b2lkIHRlc3RTRXh0OEJpdEFuZChpbnQzMl90IHZhbHVlLCBpbnQzCiB7CiAg
ICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTRXh0OCwgT3JpZ2lu
KCksCkBAIC0xMDQyOSw3ICsxMDQzNSw3IEBAIHZvaWQgdGVzdEJpdEFuZFNFeHQ4KGludDMyX3Qg
dmFsdWUsIGludDMKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0xMDQ0Nyw3ICsxMDQ1Myw3IEBAIHZvaWQgdGVzdFNF
eHQxNihpbnQzMl90IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgcHJvYywgU0V4dDE2LCBPcmlnaW4oKSwKQEAgLTEwNDYyLDcgKzEwNDY4LDcgQEAgdm9p
ZCB0ZXN0U0V4dDE2Rm9sZChpbnQzMl90IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KAogICAgICAgICAgICAgcHJvYywgU0V4dDE2LCBPcmlnaW4oKSwKQEAgLTEwNDc1LDcgKzEw
NDgxLDcgQEAgdm9pZCB0ZXN0U0V4dDE2U0V4dDE2KGludDMyX3QgdmFsdWUpCiB7CiAgICAgUHJv
Y2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTRXh0MTYsIE9yaWdpbigpLApA
QCAtMTA0OTIsNyArMTA0OTgsNyBAQCB2b2lkIHRlc3RTRXh0MTZTRXh0OChpbnQzMl90IHZhbHVl
KQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU0V4dDE2
LCBPcmlnaW4oKSwKQEAgLTEwNTA5LDcgKzEwNTE1LDcgQEAgdm9pZCB0ZXN0U0V4dDE2Qml0QW5k
KGludDMyX3QgdmFsdWUsIGludAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgcHJvYywgU0V4dDE2LCBPcmlnaW4oKSwKQEAgLTEwNTI3LDcgKzEwNTMzLDcgQEAgdm9p
ZCB0ZXN0Qml0QW5kU0V4dDE2KGludDMyX3QgdmFsdWUsIGludAogewogICAgIFByb2NlZHVyZSBw
cm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTEwNTQ1
LDcgKzEwNTUxLDcgQEAgdm9pZCB0ZXN0U0V4dDMyQml0QW5kKGludDMyX3QgdmFsdWUsIGludAog
ewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU0V4dDMyLCBP
cmlnaW4oKSwKQEAgLTEwNTYzLDcgKzEwNTY5LDcgQEAgdm9pZCB0ZXN0Qml0QW5kU0V4dDMyKGlu
dDMyX3QgdmFsdWUsIGludAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTEwNTgxLDcgKzEwNTg3LDcgQEAgdm9pZCB0
ZXN0QmFzaWNTZWxlY3QoKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTEwNjAzLDcgKzEwNjA5LDcgQEAgdm9pZCB0
ZXN0U2VsZWN0VGVzdCgpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLApAQCAtMTA2MjIsNyArMTA2MjgsNyBAQCB2b2lkIHRl
c3RTZWxlY3RDb21wYXJlRG91YmxlKCkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0xMDY1Myw3ICsxMDY1OSw3IEBA
IHZvaWQgdGVzdFNlbGVjdENvbXBhcmVGbG9hdChmbG9hdCBhLCBmbG8KICAgICBWYWx1ZSogZmxv
YXRWYWx1ZTEgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmln
aW4oKSwgYXJndW1lbnQxaW50MzIpOwogICAgIFZhbHVlKiBmbG9hdFZhbHVlMiA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDJpbnQz
Mik7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9y
aWdpbigpLApAQCAtMTA2OTEsNyArMTA2OTcsNyBAQCB2b2lkIHRlc3RTZWxlY3RDb21wYXJlRmxv
YXRUb0RvdWJsZShmbG9hCiAgICAgVmFsdWUqIGRvdWJsZVZhbHVlMSA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGZsb2F0VmFsdWUxKTsKICAg
ICBWYWx1ZSogZG91YmxlVmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9h
dFRvRG91YmxlLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZTIpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTEwNzE5LDcgKzEwNzI1
LDcgQEAgdm9pZCB0ZXN0U2VsZWN0RG91YmxlKCkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0xMDc0MSw3ICsxMDc0
Nyw3IEBAIHZvaWQgdGVzdFNlbGVjdERvdWJsZVRlc3QoKQogewogICAgIFByb2NlZHVyZSBwcm9j
OwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTEwNzYwLDcg
KzEwNzY2LDcgQEAgdm9pZCB0ZXN0U2VsZWN0RG91YmxlQ29tcGFyZURvdWJsZSgpCiB7CiAgICAg
UHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigp
LApAQCAtMTA3OTAsNyArMTA3OTYsNyBAQCB2b2lkIHRlc3RTZWxlY3REb3VibGVDb21wYXJlRmxv
YXQoZmxvYXQgCiAgICAgVmFsdWUqIGZsb2F0VmFsdWUxID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MWludDMyKTsKICAgICBWYWx1
ZSogZmxvYXRWYWx1ZTIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0
LCBPcmlnaW4oKSwgYXJndW1lbnQyaW50MzIpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTEwODIxLDcgKzEwODI3LDcgQEAg
dm9pZCB0ZXN0U2VsZWN0RmxvYXRDb21wYXJlRmxvYXQoZmxvYXQgYQogICAgIFZhbHVlKiBmbG9h
dFZhbHVlMyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdp
bigpLCBhcmd1bWVudDNpbnQzMik7CiAgICAgVmFsdWUqIGZsb2F0VmFsdWU0ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50NGludDMy
KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3Jp
Z2luKCksCkBAIC0xMDg0Nyw3ICsxMDg1Myw3IEBAIHZvaWQgdGVzdFNlbGVjdERvdWJsZUNvbXBh
cmVEb3VibGUoYm9vbCAKICAgICAgICAgVmFsdWUqIGFyZzIgPSByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMik7CiAg
ICAgICAgIFZhbHVlKiBhcmczID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjMpOwogCi0gICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdp
bigpLApAQCAtMTA4ODMsNyArMTA4ODksNyBAQCB2b2lkIHRlc3RTZWxlY3REb3VibGVDb21wYXJl
RG91YmxlKGJvb2wgCiAgICAgICAgIGtlZXBWYWx1ZXNMaXZlLT5hcHBlbmQoQ29uc3RyYWluZWRW
YWx1ZShhcmcyLCBWYWx1ZVJlcDo6U29tZVJlZ2lzdGVyKSk7CiAgICAgICAgIGtlZXBWYWx1ZXNM
aXZlLT5zZXRHZW5lcmF0b3IoWyZdIChDQ2FsbEhlbHBlcnMmLCBjb25zdCBTdGFja21hcEdlbmVy
YXRpb25QYXJhbXMmKSB7IH0pOwogCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogICAgICAg
ICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCiAgICAgICAgIGZvciAoYXV0byYgbGVmdCA6
IGZsb2F0aW5nUG9pbnRPcGVyYW5kczxkb3VibGU+KCkpIHsKQEAgLTEwOTEwLDcgKzEwOTE2LDcg
QEAgdm9pZCB0ZXN0U2VsZWN0RG91YmxlQ29tcGFyZURvdWJsZShib29sIAogICAgICAgICBrZWVw
VmFsdWVzTGl2ZS0+YXBwZW5kKENvbnN0cmFpbmVkVmFsdWUoYXJnMywgVmFsdWVSZXA6OlNvbWVS
ZWdpc3RlcikpOwogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+c2V0R2VuZXJhdG9yKFsmXSAoQ0Nh
bGxIZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeyB9KTsKIAotICAg
ICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9j
KTsKIAogICAgICAgICBmb3IgKGF1dG8mIGxlZnQgOiBmbG9hdGluZ1BvaW50T3BlcmFuZHM8ZG91
YmxlPigpKSB7CkBAIC0xMDkzOCw3ICsxMDk0NCw3IEBAIHZvaWQgdGVzdFNlbGVjdERvdWJsZUNv
bXBhcmVEb3VibGUoYm9vbCAKICAgICAgICAga2VlcFZhbHVlc0xpdmUtPmFwcGVuZChDb25zdHJh
aW5lZFZhbHVlKGFyZzMsIFZhbHVlUmVwOjpTb21lUmVnaXN0ZXIpKTsKICAgICAgICAga2VlcFZh
bHVlc0xpdmUtPnNldEdlbmVyYXRvcihbJl0gKENDYWxsSGVscGVycyYsIGNvbnN0IFN0YWNrbWFw
R2VuZXJhdGlvblBhcmFtcyYpIHsgfSk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICAgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAg
ICAgICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKICAgICAgICAgZm9yIChhdXRvJiBs
ZWZ0IDogZmxvYXRpbmdQb2ludE9wZXJhbmRzPGRvdWJsZT4oKSkgewpAQCAtMTA5NTUsNyArMTA5
NjEsNyBAQCB2b2lkIHRlc3RTZWxlY3REb3VibGVDb21wYXJlRG91YmxlKGJvb2wgCiAgICAgICAg
IFZhbHVlKiBhcmcxID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjEpOwogICAgICAgICBWYWx1ZSogYXJnMiA9IHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6
YXJndW1lbnRGUFIyKTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTEwOTkwLDcgKzEwOTk2
LDcgQEAgdm9pZCB0ZXN0U2VsZWN0RG91YmxlQ29tcGFyZURvdWJsZShib29sIAogICAgICAgICBr
ZWVwVmFsdWVzTGl2ZS0+YXBwZW5kKENvbnN0cmFpbmVkVmFsdWUoYXJnMiwgVmFsdWVSZXA6OlNv
bWVSZWdpc3RlcikpOwogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+c2V0R2VuZXJhdG9yKFsmXSAo
Q0NhbGxIZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeyB9KTsKIAot
ICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICAgICAgYXV0byBjb2RlID0gY29tcGlsZShw
cm9jKTsKIAogICAgICAgICBmb3IgKGF1dG8mIGxlZnQgOiBmbG9hdGluZ1BvaW50T3BlcmFuZHM8
ZG91YmxlPigpKSB7CkBAIC0xMTAzMyw3ICsxMTAzOSw3IEBAIHZvaWQgdGVzdFNlbGVjdEZsb2F0
Q29tcGFyZUZsb2F0KGJvb2wgKCoKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIzKSkp
OwogCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgICAg
ICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLApAQCAtMTEwNzcsNyArMTEwODMsNyBAQCB2b2lkIHRl
c3RTZWxlY3RGbG9hdENvbXBhcmVGbG9hdChib29sICgqCiAgICAgICAgIGtlZXBWYWx1ZXNMaXZl
LT5hcHBlbmQoQ29uc3RyYWluZWRWYWx1ZShhcmcyLCBWYWx1ZVJlcDo6U29tZVJlZ2lzdGVyKSk7
CiAgICAgICAgIGtlZXBWYWx1ZXNMaXZlLT5zZXRHZW5lcmF0b3IoWyZdIChDQ2FsbEhlbHBlcnMm
LCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7IH0pOwogCi0gICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7
CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQpOwogICAgICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCiAgICAg
ICAgIGZvciAoYXV0byYgbGVmdCA6IGZsb2F0aW5nUG9pbnRPcGVyYW5kczxmbG9hdD4oKSkgewpA
QCAtMTExMTIsNyArMTExMTgsNyBAQCB2b2lkIHRlc3RTZWxlY3RGbG9hdENvbXBhcmVGbG9hdChi
b29sICgqCiAgICAgICAgIGtlZXBWYWx1ZXNMaXZlLT5hcHBlbmQoQ29uc3RyYWluZWRWYWx1ZShh
cmczLCBWYWx1ZVJlcDo6U29tZVJlZ2lzdGVyKSk7CiAgICAgICAgIGtlZXBWYWx1ZXNMaXZlLT5z
ZXRHZW5lcmF0b3IoWyZdIChDQ2FsbEhlbHBlcnMmLCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25Q
YXJhbXMmKSB7IH0pOwogCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogICAgICAgICBhdXRv
IGNvZGUgPSBjb21waWxlKHByb2MpOwogCiAgICAgICAgIGZvciAoYXV0byYgbGVmdCA6IGZsb2F0
aW5nUG9pbnRPcGVyYW5kczxmbG9hdD4oKSkgewpAQCAtMTExNDgsNyArMTExNTQsNyBAQCB2b2lk
IHRlc3RTZWxlY3RGbG9hdENvbXBhcmVGbG9hdChib29sICgqCiAgICAgICAgIGtlZXBWYWx1ZXNM
aXZlLT5hcHBlbmQoQ29uc3RyYWluZWRWYWx1ZShhcmczLCBWYWx1ZVJlcDo6U29tZVJlZ2lzdGVy
KSk7CiAgICAgICAgIGtlZXBWYWx1ZXNMaXZlLT5zZXRHZW5lcmF0b3IoWyZdIChDQ2FsbEhlbHBl
cnMmLCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7IH0pOwogCi0gICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQpOwogICAgICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCiAg
ICAgICAgIGZvciAoYXV0byYgbGVmdCA6IGZsb2F0aW5nUG9pbnRPcGVyYW5kczxmbG9hdD4oKSkg
ewpAQCAtMTExNzEsNyArMTExNzcsNyBAQCB2b2lkIHRlc3RTZWxlY3RGbG9hdENvbXBhcmVGbG9h
dChib29sICgqCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5j
LCBPcmlnaW4oKSwKICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMikpKTsKIAotICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgU2Vs
ZWN0LCBPcmlnaW4oKSwKQEAgLTExMjEyLDcgKzExMjE4LDcgQEAgdm9pZCB0ZXN0U2VsZWN0Rmxv
YXRDb21wYXJlRmxvYXQoYm9vbCAoKgogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+YXBwZW5kKENv
bnN0cmFpbmVkVmFsdWUoYXJnMiwgVmFsdWVSZXA6OlNvbWVSZWdpc3RlcikpOwogICAgICAgICBr
ZWVwVmFsdWVzTGl2ZS0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3Rh
Y2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeyB9KTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgICAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
KTsKICAgICAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIAogICAgICAgICBmb3IgKGF1
dG8mIGxlZnQgOiBmbG9hdGluZ1BvaW50T3BlcmFuZHM8ZmxvYXQ+KCkpIHsKQEAgLTExMjM5LDcg
KzExMjQ1LDcgQEAgdm9pZCB0ZXN0U2VsZWN0Rm9sZChpbnRwdHJfdCB2YWx1ZSkKIHsKICAgICBQ
cm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCks
CkBAIC0xMTI1OSw3ICsxMTI2NSw3IEBAIHZvaWQgdGVzdFNlbGVjdEludmVydCgpCiB7CiAgICAg
UHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigp
LApAQCAtMTEzMTIsNyArMTEzMTgsNyBAQCB2b2lkIHRlc3RDaGVja1NlbGVjdCgpCiAgICAgICAg
ICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwogICAgIAotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtMTEzODMsNyArMTEzODksNyBAQCB2b2lk
IHRlc3RDaGVja1NlbGVjdENoZWNrU2VsZWN0KCkKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAg
ICAgICAgfSk7CiAgICAgCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgMCkpOwogCkBAIC0xMTQxOSw3ICsxMTQyNSw3IEBAIHZvaWQgdGVzdFBvd0RvdWJsZUJ5SW50
ZWdlckxvb3AoZG91YmxlIHgKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAgICBhdXRvIHJl
c3VsdCA9IHBvd0RvdWJsZUludDMyKHByb2MsIHJvb3QsIE9yaWdpbigpLCB4LCB5KTsKICAgICBC
YXNpY0Jsb2NrKiBjb250aW51YXRpb24gPSByZXN1bHQuZmlyc3Q7Ci0gICAgY29udGludWF0aW9u
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQu
c2Vjb25kKTsKKyAgICBjb250aW51YXRpb24tPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQuc2Vjb25kKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2Fs
KGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCB4T3BlcmFuZCwgeU9wZXJhbmQpLCBiM1Bvdyh4
T3BlcmFuZCwgeU9wZXJhbmQpKSk7CiB9CkBAIC0xMTQyOSw3ICsxMTQzNSw3IEBAIHZvaWQgdGVz
dFRydW5jT3JIaWdoKCkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgVHJ1bmMsIE9yaWdpbigpLApAQCAtMTE0NDcsNyArMTE0NTMsNyBAQCB2b2lkIHRlc3RU
cnVuY09yTG93KCkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgVHJ1bmMsIE9yaWdpbigpLApAQCAtMTE0NjUsNyArMTE0NzEsNyBAQCB2b2lkIHRlc3RCaXRB
bmRPckhpZ2goKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMTE0ODQsNyArMTE0OTAsNyBAQCB2b2lkIHRlc3RCaXRB
bmRPckxvdygpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IEJpdEFuZCwgT3JpZ2luKCksCkBAIC0xMTUwNywyMCArMTE1MTMsMjAgQEAgdm9pZCB0ZXN0QnJh
bmNoNjRFcXVhbChpbnQ2NF90IGxlZnQsIGludAogCiAgICAgVmFsdWUqIGFyZzEgPSByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCk7CiAgICAgVmFsdWUqIGFyZzIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEVxdWFsLCBPcmlnaW4oKSwgYXJnMSwgYXJnMiksCiAgICAgICAgIEZy
ZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCiAg
ICAgYm9vbCB0cnVlUmVzdWx0ID0gdHJ1ZTsKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxNZW1v
cnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkOFosIE9yaWdpbigpLAogICAgICAgICAg
ICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJnRy
dWVSZXN1bHQpKSk7CiAKICAgICBib29sIGVsc2VSZXN1bHQgPSBmYWxzZTsKLSAgICBlbHNlQ2Fz
ZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNh
c2UtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkOFosIE9y
aWdpbigpLApAQCAtMTE1MzgsMjAgKzExNTQ0LDIwIEBAIHZvaWQgdGVzdEJyYW5jaDY0RXF1YWxJ
bW0oaW50NjRfdCBsZWZ0LCAKIAogICAgIFZhbHVlKiBhcmcxID0gcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwog
ICAgIFZhbHVlKiBhcmcyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCByaWdodCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEVxdWFsLCBPcmlnaW4o
KSwgYXJnMSwgYXJnMiksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1
ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCiAgICAgYm9vbCB0cnVlUmVzdWx0ID0gdHJ1ZTsKLSAg
ICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBM
b2FkOFosIE9yaWdpbigpLAogICAgICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdFB0
clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJnRydWVSZXN1bHQpKSk7CiAKICAgICBib29sIGVsc2VS
ZXN1bHQgPSBmYWxzZTsKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBMb2FkOFosIE9yaWdpbigpLApAQCAtMTE1NzEsMjAgKzExNTc3LDIw
IEBAIHZvaWQgdGVzdEJyYW5jaDY0RXF1YWxNZW0oaW50NjRfdCBsZWZ0LCAKICAgICAgICAgcHJv
YywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIw
KSk7CiAgICAgVmFsdWUqIGFyZzIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEVxdWFsLCBPcmlnaW4oKSwgYXJnMSwgYXJnMiksCiAgICAgICAgIEZyZXF1ZW50
ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCiAgICAgYm9v
bCB0cnVlUmVzdWx0ID0gdHJ1ZTsKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxNZW1vcnlWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkOFosIE9yaWdpbigpLAogICAgICAgICAgICAgdGhl
bkNhc2UtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJnRydWVSZXN1
bHQpKSk7CiAKICAgICBib29sIGVsc2VSZXN1bHQgPSBmYWxzZTsKLSAgICBlbHNlQ2FzZS0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFw
cGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkOFosIE9yaWdpbigp
LApAQCAtMTE2MDQsMjAgKzExNjEwLDIwIEBAIHZvaWQgdGVzdEJyYW5jaDY0RXF1YWxNZW1JbW0o
aW50NjRfdCBsZWYKICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgVmFsdWUqIGFyZzIgPSByb290LT5hcHBl
bmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHJpZ2h0KTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgRXF1YWwsIE9yaWdpbigpLCBhcmcxLCBhcmcyKSwKICAgICAgICAgRnJl
cXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKICAg
ICBib29sIHRydWVSZXN1bHQgPSB0cnVlOwotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PE1lbW9y
eVZhbHVlPigKICAgICAgICAgICAgIHByb2MsIExvYWQ4WiwgT3JpZ2luKCksCiAgICAgICAgICAg
ICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAmdHJ1
ZVJlc3VsdCkpKTsKIAogICAgIGJvb2wgZWxzZVJlc3VsdCA9IGZhbHNlOwotICAgIGVsc2VDYXNl
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2Fz
ZS0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgIHByb2MsIExvYWQ4WiwgT3Jp
Z2luKCksCkBAIC0xMTY0MSw3ICsxMTY0Nyw3IEBAIHZvaWQgdGVzdFN0b3JlOExvYWQ4WihpbnQz
Ml90IHZhbHVlKQogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAgcHRyKTsK
IAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkOFosIE9yaWdpbigpLCBwdHIp
KTsKIApAQCAtMTE2NjMsNyArMTE2NjksNyBAQCB2b2lkIHRlc3RTdG9yZTE2TG9hZDE2WihpbnQz
Ml90IHZhbHVlKQogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAgcHRyKTsK
IAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkMTZaLCBPcmlnaW4oKSwgcHRy
KSk7CiAKQEAgLTExNjc1LDcgKzExNjgxLDcgQEAgdm9pZCB0ZXN0U1NoclNobDMyKGludDMyX3Qg
dmFsdWUsIGludDMyXwogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBw
cm9jLCBTU2hyLCBPcmlnaW4oKSwKQEAgLTExNjk3LDcgKzExNzAzLDcgQEAgdm9pZCB0ZXN0U1No
clNobDY0KGludDY0X3QgdmFsdWUsIGludDMyXwogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
CiAgICAgICAgICAgICBwcm9jLCBTU2hyLCBPcmlnaW4oKSwKQEAgLTExNzI1LDggKzExNzMxLDgg
QEAgdm9pZCB0ZXN0VHJpdmlhbEluZmluaXRlTG9vcCgpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBs
b29wID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sobG9vcCkpOwotICAgIGxvb3At
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVk
QmxvY2sobG9vcCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1w
LCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3ApKTsKKyAgICBsb29wLT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhsb29wKSk7
CiAKICAgICBjb21waWxlKHByb2MpOwogfQpAQCAtMTE3NDAsMTUgKzExNzQ2LDE1IEBAIHZvaWQg
dGVzdEZvbGRQYXRoRXF1YWwoKQogCiAgICAgVmFsdWUqIGFyZyA9IHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsK
IAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwgYXJnLCBGcmVx
dWVudGVkQmxvY2sodGhlbkJsb2NrKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VCbG9jaykpOwogCi0g
ICAgdGhlbkJsb2NrLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQmxvY2stPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgdGhlbkJsb2NrLT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgRXF1
YWwsIE9yaWdpbigpLCBhcmcsIHRoZW5CbG9jay0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAwKSkpOwogCi0gICAgZWxzZUJsb2NrLT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICBlbHNlQmxvY2stPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUJsb2NrLT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgRXF1YWwsIE9yaWdpbigpLCBhcmcsIGVsc2VCbG9jay0+YXBw
ZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSkpOwpAQCAtMTE3NjYsNyAr
MTE3NzIsNyBAQCB2b2lkIHRlc3RMU2hpZnRTZWxmMzIoKQogICAgIFZhbHVlKiBhcmcgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BS
SW5mbzo6YXJndW1lbnRHUFIwKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFNobCwgT3Jp
Z2luKCksIGFyZywgYXJnKSk7CiAKQEAgLTExNzg5LDcgKzExNzk1LDcgQEAgdm9pZCB0ZXN0UlNo
aWZ0U2VsZjMyKCkKICAgICBWYWx1ZSogYXJnID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAg
ICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTU2hyLCBPcmlnaW4oKSwgYXJnLCBhcmcpKTsKIApA
QCAtMTE4MTIsNyArMTE4MTgsNyBAQCB2b2lkIHRlc3RVUlNoaWZ0U2VsZjMyKCkKICAgICBWYWx1
ZSogYXJnID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgcHJvYywgVHJ1bmMsIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBaU2hyLCBPcmlnaW4oKSwgYXJnLCBhcmcpKTsKIApAQCAtMTE4MzMsNyArMTE4MzksNyBA
QCB2b2lkIHRlc3RMU2hpZnRTZWxmNjQoKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZyA9IHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTaGwsIE9y
aWdpbigpLCBhcmcsIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigp
LCBhcmcpKSk7CkBAIC0xMTg1Nyw3ICsxMTg2Myw3IEBAIHZvaWQgdGVzdFJTaGlmdFNlbGY2NCgp
CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKICAgICBWYWx1ZSogYXJnID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKICAgICAgICAgICAgIHByb2MsIFNTaHIsIE9yaWdpbigpLCBhcmcsIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLCBhcmcpKSk7CkBAIC0xMTg4MSw3ICsx
MTg4Nyw3IEBAIHZvaWQgdGVzdFVSU2hpZnRTZWxmNjQoKQogICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZyA9
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBaU2hyLCBPcmlnaW4oKSwgYXJnLCByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5j
LCBPcmlnaW4oKSwgYXJnKSkpOwpAQCAtMTE5MTcsNyArMTE5MjMsNyBAQCB2b2lkIHRlc3RQYXRj
aHBvaW50RG91YmxlUmVncygpCiAgICAgICAgICAgICBudW1DYWxscysrOwogICAgICAgICB9KTsK
IAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHBhdGNocG9pbnQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUo
cHJvYyk7CiAgICAgQ0hFQ0sobnVtQ2FsbHMgPT0gMSk7CkBAIC0xMTk1MCw3ICsxMTk1Niw3IEBA
IHZvaWQgdGVzdFNwaWxsRGVmU21hbGxlclRoYW5Vc2UoKQogCiAgICAgLy8gT24geDg2LCBTdWIg
YWRtaXQgYW4gYWRkcmVzcyBmb3IgYW55IG9wZXJhbmQuIElmIGl0IHVzZXMgdGhlIHN0YWNrLCB0
aGUgdG9wIGJpdHMgbXVzdCBiZSB6ZXJvLgogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIGZvcmNlU3BpbGwsIGFyZzY0KTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBD
SEVDSyhpbnZva2U8aW50NjRfdD4oKmNvZGUsIDB4ZmZmZmZmZmYwMDAwMDAwMCkgPT0gMCk7CkBA
IC0xMTk3MCw3ICsxMTk3Niw3IEBAIHZvaWQgdGVzdFNwaWxsVXNlTGFyZ2VyVGhhbkRlZigpCiAK
ICAgICBWYWx1ZSogY29uZGl0aW9uID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFZhbHVlKiBhcmd1
bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
R1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5j
aCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCkBAIC0xMTk4MCwxMCArMTE5ODYsMTAgQEAgdm9pZCB0
ZXN0U3BpbGxVc2VMYXJnZXJUaGFuRGVmKCkKICAgICBWYWx1ZSogdHJ1bmNhdGVkID0gdGhlbkNh
c2UtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgWkV4dDMyLCBPcmlnaW4oKSwKICAgICAgICAgdGhl
bkNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLCBhcmd1bWVudCkp
OwogICAgIFVwc2lsb25WYWx1ZSogdGhlblJlc3VsdCA9IHRoZW5DYXNlLT5hcHBlbmROZXc8VXBz
aWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdHJ1bmNhdGVkKTsKLSAgICB0aGVuQ2FzZS0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9j
ayh0YWlsKSk7CisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1w
LCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKIAogICAgIFVwc2lsb25WYWx1ZSog
ZWxzZVJlc3VsdCA9IGVsc2VDYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmln
aW4oKSwgYXJndW1lbnQpOwotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKKyAgICBlbHNlQ2Fz
ZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVk
QmxvY2sodGFpbCkpOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDEwMDsgKytpKSB7
CiAgICAgICAgIFBhdGNocG9pbnRWYWx1ZSogcHJldmVudFRhaWxEdXBsaWNhdGlvbiA9IHRhaWwt
PmFwcGVuZE5ldzxQYXRjaHBvaW50VmFsdWU+KHByb2MsIFZvaWQsIE9yaWdpbigpKTsKQEAgLTEy
MDA0LDcgKzEyMDEwLDcgQEAgdm9pZCB0ZXN0U3BpbGxVc2VMYXJnZXJUaGFuRGVmKCkKICAgICBW
YWx1ZSogcGhpID0gdGFpbC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBQaGksIEludDY0LCBPcmln
aW4oKSk7CiAgICAgdGhlblJlc3VsdC0+c2V0UGhpKHBoaSk7CiAgICAgZWxzZVJlc3VsdC0+c2V0
UGhpKHBoaSk7Ci0gICAgdGFpbC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcGhpKTsKKyAgICB0YWlsLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcGhpKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7
CiAgICAgQ0hFQ0soaW52b2tlPHVpbnQ2NF90PigqY29kZSwgMSwgMHhmZmZmZmZmZjAwMDAwMDAw
KSA9PSAwKTsKQEAgLTEyMDg2LDEyICsxMjA5MiwyNDQgQEAgdm9pZCB0ZXN0TGF0ZVJlZ2lzdGVy
KCkKICAgICAgICAgICAgIGppdC5ub3AoKTsKICAgICAgICAgICAgIGppdC5ub3AoKTsKICAgICAg
ICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgc2Vjb25kUGF0Y2hwb2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZFBhdGNocG9pbnQpOwogICAgIAogICAg
IGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgQ0hFQ0soaW52b2tlPHVpbnQ2NF90Pigq
Y29kZSkgPT0gcmVzdWx0KTsKIH0KIAordm9pZCB0aHJlYWRlZEludGVycHJldGVyUHJpbnQoVmVj
dG9yPGludHB0cl90Piogc3RyZWFtLCBpbnRwdHJfdCB2YWx1ZSkKK3sKKyAgICBzdHJlYW0tPmFw
cGVuZCh2YWx1ZSk7Cit9CisKK3ZvaWQgdGVzdFRocmVhZGVkSW50ZXJwcmV0ZXIoKQoreworICAg
IC8vIFRoaXMgY3JlYXRlcyBhIHBvb3IgbWFuJ3MgdGhyZWFkZWQgaW50ZXJwcmV0ZXIgdXNpbmcg
UG9seUp1bXAgYW5kIHNlZXMgaWYgaXQgd29ya3MuIE5vdGUKKyAgICAvLyB0aGF0IFBvbHlKdW1w
IGlzIG5vdCBsaWtlIGluZGlyZWN0IGJyYW5jaGVzIGluIExMVk0sIHNvIHlvdSBjYW4ndCBhY3R1
YWxseSB1c2UgaXQgdG8KKyAgICAvLyBpbXBsZW1lbnQgYSBwcm9wZXIgdGhyZWFkZWQgaW50ZXJw
cmV0ZXIuIFRoaXMgY2hlYXRzOiB0aGUgZGlzcGF0Y2ggaW5zdHJ1Y3Rpb24gaXMgYXQgdGhlIHRv
cAorICAgIC8vIG9mIHRoZSBsb29wLiBUaGlzIGFsc28gdGVzdHMgVmFyaWFibGVWYWx1ZS4KKyAg
ICAKKyAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICAKKyAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOworICAgIEJhc2ljQmxvY2sqIGRpc3BhdGNoID0gcHJvYy5hZGRCbG9jaygp
OworICAgIEJhc2ljQmxvY2sqIGFkZFRvRGF0YVBvaW50ZXIgPSBwcm9jLmFkZEJsb2NrKCk7Cisg
ICAgQmFzaWNCbG9jayogYWRkVG9Db2RlUG9pbnRlciA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBC
YXNpY0Jsb2NrKiBhZGRUb0NvZGVQb2ludGVyVGFrZW4gPSBwcm9jLmFkZEJsb2NrKCk7CisgICAg
QmFzaWNCbG9jayogYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuID0gcHJvYy5hZGRCbG9jaygpOwor
ICAgIEJhc2ljQmxvY2sqIGFkZFRvRGF0YSA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBCYXNpY0Js
b2NrKiBwcmludCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBCYXNpY0Jsb2NrKiBzdG9wID0gcHJv
Yy5hZGRCbG9jaygpOworICAgIAorICAgIFZhcmlhYmxlKiBkYXRhUG9pbnRlciA9IHByb2MuYWRk
VmFyaWFibGUocG9pbnRlclR5cGUoKSk7CisgICAgVmFyaWFibGUqIGNvZGVQb2ludGVyID0gcHJv
Yy5hZGRWYXJpYWJsZShwb2ludGVyVHlwZSgpKTsKKyAgICAKKyAgICByb290LT5hcHBlbmROZXc8
VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGRhdGFQb2ludGVy
LAorICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOworICAgIHJvb3QtPmFwcGVuZE5ldzxWYXJpYWJs
ZVZhbHVlPigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIsCisgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BS
SW5mbzo6YXJndW1lbnRHUFIxKSk7CisgICAgVmFsdWUqIGNvbnRleHQgPSByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BS
Mik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigp
LCBGcmVxdWVudGVkQmxvY2soZGlzcGF0Y2gpKTsKKworICAgIFZhbHVlKiBjb2RlUG9pbnRlclZh
bHVlID0KKyAgICAgICAgZGlzcGF0Y2gtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPihwcm9jLCBC
Mzo6R2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIpOworICAgIFBhdGNocG9pbnRWYWx1ZSogcG9s
eUp1bXAgPSBkaXNwYXRjaC0+YXBwZW5kTmV3PFBhdGNocG9pbnRWYWx1ZT4ocHJvYywgVm9pZCwg
T3JpZ2luKCkpOworICAgIHBvbHlKdW1wLT5lZmZlY3RzLnRlcm1pbmFsID0gdHJ1ZTsKKyAgICBw
b2x5SnVtcC0+YXBwZW5kU29tZVJlZ2lzdGVyKGNvZGVQb2ludGVyVmFsdWUpOworICAgIGRpc3Bh
dGNoLT5hcHBlbmRTdWNjZXNzb3IoRnJlcXVlbnRlZEJsb2NrKGFkZFRvRGF0YVBvaW50ZXIpKTsK
KyAgICBkaXNwYXRjaC0+YXBwZW5kU3VjY2Vzc29yKEZyZXF1ZW50ZWRCbG9jayhhZGRUb0NvZGVQ
b2ludGVyKSk7CisgICAgZGlzcGF0Y2gtPmFwcGVuZFN1Y2Nlc3NvcihGcmVxdWVudGVkQmxvY2so
YWRkVG9EYXRhKSk7CisgICAgZGlzcGF0Y2gtPmFwcGVuZFN1Y2Nlc3NvcihGcmVxdWVudGVkQmxv
Y2socHJpbnQpKTsKKyAgICBkaXNwYXRjaC0+YXBwZW5kU3VjY2Vzc29yKEZyZXF1ZW50ZWRCbG9j
ayhzdG9wKSk7CisgICAgCisgICAgLy8gT3VyICJvcGNvZGVzIi4gVGhleSB3aWxsIGhhdmUgbWVh
bmluZyBvbmNlIHdlIGNvbXBpbGUuCisgICAgaW50cHRyX3QgQWRkRFAgPSAwOworICAgIGludHB0
cl90IEFkZENQID0gMDsKKyAgICBpbnRwdHJfdCBBZGQgPSAwOworICAgIGludHB0cl90IFByaW50
ID0gMDsKKyAgICBpbnRwdHJfdCBTdG9wID0gMDsKKyAgICBwb2x5SnVtcC0+c2V0R2VuZXJhdG9y
KAorICAgICAgICBbJl0gKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBTdGFja21hcEdlbmVyYXRp
b25QYXJhbXMmIHBhcmFtcykgeworICAgICAgICAgICAgaml0Lmp1bXAoQ0NhbGxIZWxwZXJzOjpB
ZGRyZXNzKHBhcmFtc1swXS5ncHIoKSkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBWZWN0
b3I8Qm94PENDYWxsSGVscGVyczo6TGFiZWw+PiBsYWJlbHMgPSBwYXJhbXMuc3VjY2Vzc29yTGFi
ZWxzKCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGppdC5hZGRMaW5rVGFzaygKKyAgICAg
ICAgICAgICAgICBbJiwgbGFiZWxzXSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikgeworICAgICAg
ICAgICAgICAgICAgICBhdXRvIGdldCA9IFsmXSAoc2l6ZV90IGluZGV4KSAtPiBpbnRwdHJfdCB7
CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYml0d2lzZV9jYXN0PGludHB0cl90PigK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rQnVmZmVyLmxvY2F0aW9uT2YoKmxhYmVs
c1tpbmRleF0pLmV4ZWN1dGFibGVBZGRyZXNzKCkpOworICAgICAgICAgICAgICAgICAgICB9Owor
ICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgQWRkRFAgPSBnZXQoMCk7
CisgICAgICAgICAgICAgICAgICAgIEFkZENQID0gZ2V0KDEpOworICAgICAgICAgICAgICAgICAg
ICBBZGQgPSBnZXQoMik7CisgICAgICAgICAgICAgICAgICAgIFByaW50ID0gZ2V0KDMpOworICAg
ICAgICAgICAgICAgICAgICBTdG9wID0gZ2V0KDQpOworICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICB9KTsKKyAgICAKKyAgICAvLyBBZGREUCA8b3BlcmFuZD46IGFkZHMgPG9wZXJhbmQ+IHRv
IERQLgorICAgIGNvZGVQb2ludGVyVmFsdWUgPQorICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5h
cHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGNvZGVQb2lu
dGVyKTsKKyAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisg
ICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGRhdGFQb2ludGVyLAorICAgICAgICBhZGRUb0Rh
dGFQb2ludGVyLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgQjM6OkFkZCwg
T3JpZ2luKCksCisgICAgICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFi
bGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGRhdGFQb2ludGVyKSwKKyAgICAgICAg
ICAgIGFkZFRvRGF0YVBvaW50ZXItPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICAgICAg
cHJvYywgTXVsLCBPcmlnaW4oKSwKKyAgICAgICAgICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5h
cHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICAgICAgICAgICAgICBwcm9jLCBMb2FkLCBw
b2ludGVyVHlwZSgpLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwgc2l6ZW9mKGludHB0cl90
KSksCisgICAgICAgICAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kSW50Q29uc3RhbnQo
CisgICAgICAgICAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLCBwb2ludGVyVHlwZSgpLCBzaXpl
b2YoaW50cHRyX3QpKSkpKTsKKyAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFi
bGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyLAorICAg
ICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgcHJv
YywgQjM6OkFkZCwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUsCisgICAgICAgICAgICBhZGRU
b0RhdGFQb2ludGVyLT5hcHBlbmRJbnRDb25zdGFudCgKKyAgICAgICAgICAgICAgICBwcm9jLCBP
cmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6ZW9mKGludHB0cl90KSAqIDIpKSk7CisgICAgYWRk
VG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigp
LCBGcmVxdWVudGVkQmxvY2soZGlzcGF0Y2gpKTsKKyAgICAKKyAgICAvLyBBZGRDUCA8b3BlcmFu
ZD46IGFkZHMgPG9wZXJhbmQ+IHRvIENQIGlmIHRoZSBjdXJyZW50IHZhbHVlIGF0IERQIGlzIG5v
bi16ZXJvLCBvdGhlcndpc2UKKyAgICAvLyBmYWxscyB0aHJvdWdoIG5vcm1hbGx5LgorICAgIGNv
ZGVQb2ludGVyVmFsdWUgPQorICAgICAgICBhZGRUb0NvZGVQb2ludGVyLT5hcHBlbmROZXc8VmFy
aWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyKTsKKyAgICBW
YWx1ZSogZGF0YVBvaW50ZXJWYWx1ZSA9CisgICAgICAgIGFkZFRvQ29kZVBvaW50ZXItPmFwcGVu
ZE5ldzxWYXJpYWJsZVZhbHVlPihwcm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwgZGF0YVBvaW50ZXIp
OworICAgIGFkZFRvQ29kZVBvaW50ZXItPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKKyAgICAgICAg
cHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKKyAgICAgICAgYWRkVG9Db2RlUG9pbnRlci0+YXBwZW5k
TmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCks
IE9yaWdpbigpLCBkYXRhUG9pbnRlclZhbHVlKSwKKyAgICAgICAgRnJlcXVlbnRlZEJsb2NrKGFk
ZFRvQ29kZVBvaW50ZXJUYWtlbiksIEZyZXF1ZW50ZWRCbG9jayhhZGRUb0NvZGVQb2ludGVyTm90
VGFrZW4pKTsKKyAgICBhZGRUb0NvZGVQb2ludGVyVGFrZW4tPmFwcGVuZE5ldzxWYXJpYWJsZVZh
bHVlPigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIsCisgICAgICAg
IGFkZFRvQ29kZVBvaW50ZXJUYWtlbi0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHBy
b2MsIEIzOjpBZGQsIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLAorICAgICAgICAgICAgYWRk
VG9Db2RlUG9pbnRlclRha2VuLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgICAgIHBy
b2MsIE11bCwgT3JpZ2luKCksCisgICAgICAgICAgICAgICAgYWRkVG9Db2RlUG9pbnRlclRha2Vu
LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICAgICAgICAgICAgICBwcm9jLCBMb2Fk
LCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwgc2l6ZW9mKGludHB0
cl90KSksCisgICAgICAgICAgICAgICAgYWRkVG9Db2RlUG9pbnRlclRha2VuLT5hcHBlbmRJbnRD
b25zdGFudCgKKyAgICAgICAgICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBl
KCksIHNpemVvZihpbnRwdHJfdCkpKSkpOworICAgIGFkZFRvQ29kZVBvaW50ZXJUYWtlbi0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2so
ZGlzcGF0Y2gpKTsKKyAgICBhZGRUb0NvZGVQb2ludGVyTm90VGFrZW4tPmFwcGVuZE5ldzxWYXJp
YWJsZVZhbHVlPigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIsCisg
ICAgICAgIGFkZFRvQ29kZVBvaW50ZXJOb3RUYWtlbi0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAg
ICAgICAgIHByb2MsIEIzOjpBZGQsIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLAorICAgICAg
ICAgICAgYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuLT5hcHBlbmRJbnRDb25zdGFudCgKKyAgICAg
ICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6ZW9mKGludHB0cl90
KSAqIDIpKSk7CisgICAgYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuLT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCisgICAgICAgIHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZGlz
cGF0Y2gpKTsKKworICAgIC8vIEFkZCA8b3BlcmFuZD46IGFkZHMgPG9wZXJhbmQ+IHRvIHRoZSBz
bG90IHBvaW50ZWQgdG8gYnkgRFAuCisgICAgY29kZVBvaW50ZXJWYWx1ZSA9IGFkZFRvRGF0YS0+
YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBjb2RlUG9p
bnRlcik7CisgICAgZGF0YVBvaW50ZXJWYWx1ZSA9IGFkZFRvRGF0YS0+YXBwZW5kTmV3PFZhcmlh
YmxlVmFsdWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRlcik7CisgICAgYWRk
VG9EYXRhLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICBwcm9jLCBTdG9yZSwgT3Jp
Z2luKCksCisgICAgICAgIGFkZFRvRGF0YS0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAg
IHByb2MsIEIzOjpBZGQsIE9yaWdpbigpLAorICAgICAgICAgICAgYWRkVG9EYXRhLT5hcHBlbmRO
ZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICAgICAgICAgIHByb2MsIExvYWQsIHBvaW50ZXJUeXBl
KCksIE9yaWdpbigpLCBkYXRhUG9pbnRlclZhbHVlKSwKKyAgICAgICAgICAgIGFkZFRvRGF0YS0+
YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2lu
dGVyVHlwZSgpLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwgc2l6ZW9mKGludHB0cl90KSkp
LAorICAgICAgICBkYXRhUG9pbnRlclZhbHVlKTsKKyAgICBhZGRUb0RhdGEtPmFwcGVuZE5ldzxW
YXJpYWJsZVZhbHVlPigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIs
CisgICAgICAgIGFkZFRvRGF0YS0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2Ms
IEIzOjpBZGQsIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLAorICAgICAgICAgICAgYWRkVG9E
YXRhLT5hcHBlbmRJbnRDb25zdGFudChwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6
ZW9mKGludHB0cl90KSAqIDIpKSk7CisgICAgYWRkVG9EYXRhLT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhkaXNwYXRjaCkpOworICAg
IAorICAgIC8vIFByaW50OiAicHJpbnRzIiB0aGUgdmFsdWUgcG9pbnRlZCB0byBieSBEUC4gV2hh
dCB0aGlzIGFjdHVhbGx5IG1lYW5zIGlzIHRoYXQgdGhlIHZhbHVlIGlzCisgICAgLy8gYXBwZW5k
ZWQgdG8gdGhlIHN0cmVhbSB2ZWN0b3IgYnkgdGhlIHRocmVhZGVkSW50ZXJwcmV0ZXJQcmludCBm
dW5jdGlvbi4KKyAgICBjb2RlUG9pbnRlclZhbHVlID0gcHJpbnQtPmFwcGVuZE5ldzxWYXJpYWJs
ZVZhbHVlPihwcm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIpOworICAgIGRhdGFQ
b2ludGVyVmFsdWUgPSBwcmludC0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHByb2MsIEIzOjpH
ZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRlcik7CisgICAgcHJpbnQtPmFwcGVuZE5ldzxDQ2FsbFZh
bHVlPigKKyAgICAgICAgcHJvYywgVm9pZCwgT3JpZ2luKCksCisgICAgICAgIHByaW50LT5hcHBl
bmROZXc8Q29uc3RQdHJWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgYml0d2lz
ZV9jYXN0PHZvaWQqPih0aHJlYWRlZEludGVycHJldGVyUHJpbnQpKSwKKyAgICAgICAgY29udGV4
dCwKKyAgICAgICAgcHJpbnQtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgcG9p
bnRlclR5cGUoKSwgT3JpZ2luKCksIGRhdGFQb2ludGVyVmFsdWUpKTsKKyAgICBwcmludC0+YXBw
ZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAgICAgICBwcm9jLCBTZXQsIE9yaWdpbigpLCBjb2Rl
UG9pbnRlciwKKyAgICAgICAgcHJpbnQtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICBw
cm9jLCBCMzo6QWRkLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwKKyAgICAgICAgICAgIHBy
aW50LT5hcHBlbmRJbnRDb25zdGFudChwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6
ZW9mKGludHB0cl90KSkpKTsKKyAgICBwcmludC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZGlzcGF0Y2gpKTsKKyAgICAKKyAgICAv
LyBTdG9wOiByZXR1cm5zLgorICAgIHN0b3AtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKKyAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICAgICAgc3RvcC0+YXBwZW5kSW50Q29uc3Rh
bnQocHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBlKCksIDApKTsKKyAgICAKKyAgICBhdXRvIGlu
dGVycHJldGVyID0gY29tcGlsZShwcm9jKTsKKyAgICAKKyAgICBDSEVDSyhBZGREUCk7CisgICAg
Q0hFQ0soQWRkQ1ApOworICAgIENIRUNLKEFkZCk7CisgICAgQ0hFQ0soUHJpbnQpOworICAgIENI
RUNLKFN0b3ApOworICAgIAorICAgIFZlY3RvcjxpbnRwdHJfdD4gZGF0YTsKKyAgICBWZWN0b3I8
aW50cHRyX3Q+IGNvZGU7CisgICAgVmVjdG9yPGludHB0cl90PiBzdHJlYW07CisgICAgCisgICAg
ZGF0YS5hcHBlbmQoMSk7CisgICAgZGF0YS5hcHBlbmQoMCk7CisgICAgCisgICAgaWYgKHNob3Vs
ZEJlVmVyYm9zZSgpKQorICAgICAgICBkYXRhTG9nKCJkYXRhID0gIiwgbGlzdER1bXAoZGF0YSks
ICJcbiIpOworICAgIAorICAgIC8vIFdlJ2xsIHdyaXRlIGEgcHJvZ3JhbSB0aGF0IHByaW50cyB0
aGUgbnVtYmVycyAxLi4xMDAuCisgICAgLy8gV2UgZXhwZWN0IERQIHRvIHBvaW50IGF0ICMwLgor
ICAgIGNvZGUuYXBwZW5kKEFkZENQKTsKKyAgICBjb2RlLmFwcGVuZCg2KTsgLy8gZ28gdG8gbG9v
cCBib2R5CisgICAgCisgICAgLy8gTG9vcCByZS1lbnRyeToKKyAgICAvLyBXZSBleHBlY3QgRFAg
dG8gcG9pbnQgYXQgIzEgYW5kIGZvciAjMSB0byBiZSBvZmZzZXQgYnkgLTEwMC4KKyAgICBjb2Rl
LmFwcGVuZChBZGQpOworICAgIGNvZGUuYXBwZW5kKDEwMCk7CisgICAgCisgICAgY29kZS5hcHBl
bmQoQWRkRFApOworICAgIGNvZGUuYXBwZW5kKC0xKTsKKyAgICAKKyAgICAvLyBMb29wIGhlYWRl
cjoKKyAgICAvLyBXZSBleHBlY3QgRFAgdG8gcG9pbnQgYXQgIzAuCisgICAgY29kZS5hcHBlbmQo
QWRkRFApOworICAgIGNvZGUuYXBwZW5kKDEpOworICAgIAorICAgIGNvZGUuYXBwZW5kKEFkZCk7
CisgICAgY29kZS5hcHBlbmQoMSk7CisgICAgCisgICAgY29kZS5hcHBlbmQoUHJpbnQpOworICAg
IAorICAgIGNvZGUuYXBwZW5kKEFkZCk7CisgICAgY29kZS5hcHBlbmQoLTEwMCk7CisgICAgCisg
ICAgLy8gV2Ugd2FudCB0byBzdG9wIGlmIGl0J3MgemVybyBhbmQgY29udGludWUgaWYgaXQncyBu
b24temVyby4gQWRkQ1AgdGFrZXMgdGhlIGJyYW5jaCBpZiBpdCdzCisgICAgLy8gbm9uLXplcm8u
CisgICAgY29kZS5hcHBlbmQoQWRkQ1ApOworICAgIGNvZGUuYXBwZW5kKC0xMSk7IC8vIGdvIHRv
IGxvb3AgcmUtZW50cnkuCisgICAgCisgICAgY29kZS5hcHBlbmQoU3RvcCk7CisgICAgCisgICAg
aWYgKHNob3VsZEJlVmVyYm9zZSgpKQorICAgICAgICBkYXRhTG9nKCJjb2RlID0gIiwgbGlzdER1
bXAoY29kZSksICJcbiIpOworICAgIAorICAgIENIRUNLKCFpbnZva2U8aW50cHRyX3Q+KCppbnRl
cnByZXRlciwgZGF0YS5kYXRhKCksIGNvZGUuZGF0YSgpLCAmc3RyZWFtKSk7CisgICAgCisgICAg
Q0hFQ0soc3RyZWFtLnNpemUoKSA9PSAxMDApOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCAxMDA7ICsraSkKKyAgICAgICAgQ0hFQ0soc3RyZWFtW2ldID09IGkgKyAxKTsKKyAgICAKKyAg
ICBpZiAoc2hvdWxkQmVWZXJib3NlKCkpCisgICAgICAgIGRhdGFMb2coInN0cmVhbSA9ICIsIGxp
c3REdW1wKHN0cmVhbSksICJcbiIpOworfQorCiB2b2lkIHRlc3RSZWR1Y2VTdHJlbmd0aENoZWNr
Qm90dG9tVXNlSW5Bbm90aGVyQmxvY2soKQogewogICAgIFByb2NlZHVyZSBwcm9jOwpAQCAtMTIx
MTAsNyArMTIzNDgsNyBAQCB2b2lkIHRlc3RSZWR1Y2VTdHJlbmd0aENoZWNrQm90dG9tVXNlSW5B
CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwogICAgIFZhbHVlKiBhcmcgPSBv
bmUtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKTsKLSAgICBvbmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1
bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodHdvKSk7CisgICAgb25lLT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0d28pKTsK
ICAgICAKICAgICBjaGVjayA9IHR3by0+YXBwZW5kTmV3PENoZWNrVmFsdWU+KAogICAgICAgICBw
cm9jLCBDaGVja0FkZCwgT3JpZ2luKCksIGFyZywKQEAgLTEyMTE5LDcgKzEyMzU3LDcgQEAgdm9p
ZCB0ZXN0UmVkdWNlU3RyZW5ndGhDaGVja0JvdHRvbVVzZUluQQogICAgICAgICBbJl0gKENDYWxs
SGVscGVycyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsKICAgICAgICAgICAg
IENIRUNLKCEiU2hvdWxkIG5vdCBleGVjdXRlIik7CiAgICAgICAgIH0pOwotICAgIHR3by0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2spOworICAg
IHR3by0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNr
KTsKICAgICAKICAgICBwcm9jLnJlc2V0UmVhY2hhYmlsaXR5KCk7CiAgICAgcmVkdWNlU3RyZW5n
dGgocHJvYyk7CkBAIC0xMjEzNCwxMSArMTIzNzIsMTEgQEAgdm9pZCB0ZXN0UmVzZXRSZWFjaGFi
aWxpdHlEYW5nbGluZ1JlZmVyZQogICAgIAogICAgIFVwc2lsb25WYWx1ZSogdXBzaWxvbiA9IG9u
ZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4oCiAgICAgICAgIHByb2MsIE9yaWdpbigpLCBvbmUt
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwotICAgIG9uZS0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgT29wcywgT3JpZ2luKCkpOworICAgIG9uZS0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIE9vcHMsIE9yaWdpbigpKTsKICAgICAKICAgICBW
YWx1ZSogcGhpID0gdHdvLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFBoaSwgSW50MzIsIE9yaWdp
bigpKTsKICAgICB1cHNpbG9uLT5zZXRQaGkocGhpKTsKLSAgICB0d28tPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIE9vcHMsIE9yaWdpbigpKTsKKyAgICB0d28tPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBPb3BzLCBPcmlnaW4oKSk7CiAgICAgCiAgICAgcHJvYy5yZXNldFJlYWNo
YWJpbGl0eSgpOwogICAgIHZhbGlkYXRlKHByb2MpOwpAQCAtMTM1NDcsNiArMTM3ODUsNyBAQCB2
b2lkIHJ1bihjb25zdCBjaGFyKiBmaWx0ZXIpCiAgICAgUlVOKHRlc3RTcGlsbERlZlNtYWxsZXJU
aGFuVXNlKCkpOwogICAgIFJVTih0ZXN0U3BpbGxVc2VMYXJnZXJUaGFuRGVmKCkpOwogICAgIFJV
Tih0ZXN0TGF0ZVJlZ2lzdGVyKCkpOworICAgIFJVTih0ZXN0VGhyZWFkZWRJbnRlcnByZXRlcigp
KTsKICAgICBSVU4odGVzdFJlZHVjZVN0cmVuZ3RoQ2hlY2tCb3R0b21Vc2VJbkFub3RoZXJCbG9j
aygpKTsKICAgICBSVU4odGVzdFJlc2V0UmVhY2hhYmlsaXR5RGFuZ2xpbmdSZWZlcmVuY2UoKSk7
CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmNwcAkocmV2aXNp
b24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiQWlyQ0NhbGxTcGVj
aWFsLmgiCiAjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrVXRpbHMuaCIKKyNpbmNsdWRlICJCM1Byb2Nl
ZHVyZS5oIgogI2luY2x1ZGUgIkIzU3RhY2tTbG90LmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1l
c3BhY2UgQjMgeyBuYW1lc3BhY2UgQWlyIHsKQEAgLTEzNSw2ICsxMzYsMTEgQEAgdm9pZCBDb2Rl
OjphZGRGYXN0VG1wKFRtcCB0bXApCiAgICAgbV9mYXN0VG1wcy5hZGQodG1wKTsKIH0KIAordm9p
ZCogQ29kZTo6YWRkRGF0YVNlY3Rpb24oc2l6ZV90IHNpemUpCit7CisgICAgcmV0dXJuIG1fcHJv
Yy5hZGREYXRhU2VjdGlvbihzaXplKTsKK30KKwogdW5zaWduZWQgQ29kZTo6anNIYXNoKCkgY29u
c3QKIHsKICAgICB1bnNpZ25lZCByZXN1bHQgPSAwOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci9BaXJDb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJDb2RlLmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvQWlyQ29kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAj
aW5jbHVkZSAiQWlyU3BlY2lhbC5oIgogI2luY2x1ZGUgIkFpclN0YWNrU2xvdC5oIgogI2luY2x1
ZGUgIkFpclRtcC5oIgorI2luY2x1ZGUgIkIzSW5kZXhNYXAuaCIKICNpbmNsdWRlICJCM1NwYXJz
ZUNvbGxlY3Rpb24uaCIKICNpbmNsdWRlICJSZWdpc3RlckF0T2Zmc2V0TGlzdC5oIgogI2luY2x1
ZGUgIlN0YWNrQWxpZ25tZW50LmgiCkBAIC0yMDMsNiArMjA0LDggQEAgcHVibGljOgogICAgIHZv
aWQgYWRkRmFzdFRtcChUbXApOwogICAgIGJvb2wgaXNGYXN0VG1wKFRtcCB0bXApIGNvbnN0IHsg
cmV0dXJuIG1fZmFzdFRtcHMuY29udGFpbnModG1wKTsgfQogICAgIAorICAgIHZvaWQqIGFkZERh
dGFTZWN0aW9uKHNpemVfdCk7CisgICAgCiAgICAgLy8gVGhlIG5hbWUgaGFzIHRvIGJlIGEgc3Ry
aW5nIGxpdGVyYWwsIHNpbmNlIHdlIGRvbid0IGRvIGFueSBtZW1vcnkgbWFuYWdlbWVudCBmb3Ig
dGhlIHN0cmluZy4KICAgICB2b2lkIHNldExhc3RQaGFzZU5hbWUoY29uc3QgY2hhciogbmFtZSkK
ICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckN1c3RvbS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ3VzdG9tLmgJKHJl
dmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ3VzdG9t
LmgJKHdvcmtpbmcgY29weSkKQEAgLTg0LDEwICs4NCwxNSBAQCBzdHJ1Y3QgUGF0Y2hDdXN0b20g
ewogICAgIHsKICAgICAgICAgcmV0dXJuIGluc3QuYXJnc1swXS5zcGVjaWFsKCktPnNob3VsZFRy
eUFsaWFzaW5nRGVmKGluc3QpOwogICAgIH0KKyAgICAKKyAgICBzdGF0aWMgYm9vbCBpc1Rlcm1p
bmFsKEluc3QmIGluc3QpCisgICAgeworICAgICAgICByZXR1cm4gaW5zdC5hcmdzWzBdLnNwZWNp
YWwoKS0+aXNUZXJtaW5hbChpbnN0KTsKKyAgICB9CiAKICAgICBzdGF0aWMgYm9vbCBoYXNOb25B
cmdOb25Db250cm9sRWZmZWN0cyhJbnN0JiBpbnN0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGlu
c3QuYXJnc1swXS5zcGVjaWFsKCktPmhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKCk7CisgICAg
ICAgIHJldHVybiBpbnN0LmFyZ3NbMF0uc3BlY2lhbCgpLT5oYXNOb25BcmdOb25Db250cm9sRWZm
ZWN0cyhpbnN0KTsKICAgICB9CiAKICAgICBzdGF0aWMgQ0NhbGxIZWxwZXJzOjpKdW1wIGdlbmVy
YXRlKApAQCAtMTM4LDYgKzE0MywxMSBAQCBzdHJ1Y3QgQ0NhbGxDdXN0b20gewogICAgIHsKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQorICAgIAorICAgIHN0YXRpYyBib29sIGlzVGVybWlu
YWwoSW5zdCYpCisgICAgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogCiAgICAgc3Rh
dGljIGJvb2wgaGFzTm9uQXJnTm9uQ29udHJvbEVmZmVjdHMoSW5zdCYpCiAgICAgewpAQCAtMTk3
LDYgKzIwNywxMSBAQCBzdHJ1Y3QgU2h1ZmZsZUN1c3RvbSB7CiAgICAgICAgIH0KICAgICB9CiAK
KyAgICBzdGF0aWMgYm9vbCBpc1Rlcm1pbmFsKEluc3QmKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIH0KKwogICAgIHN0YXRpYyBib29sIGhhc05vbkFyZ05vbkNvbnRyb2xFZmZl
Y3RzKEluc3QmKQogICAgIHsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0ZS5jcHAJKHJldmlzaW9uIDIwMjgwOSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC01MCw4ICs1MCwxMCBAQAogI2luY2x1ZGUgIkIzSW5kZXhNYXAuaCIKICNpbmNs
dWRlICJCM1Byb2NlZHVyZS5oIgogI2luY2x1ZGUgIkIzVGltaW5nU2NvcGUuaCIKKyNpbmNsdWRl
ICJCM1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgogI2luY2x1ZGUg
IkRpc2FsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZS5oIgorI2luY2x1ZGUgIkxpbmtCdWZm
ZXIuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7IG5hbWVzcGFjZSBBaXIgewog
CkBAIC0xNzMsMTIgKzE3NSwxNiBAQCB2b2lkIGdlbmVyYXRlKENvZGUmIGNvZGUsIENDYWxsSGVs
cGVycyYgCiAKICAgICBHZW5lcmF0aW9uQ29udGV4dCBjb250ZXh0OwogICAgIGNvbnRleHQuY29k
ZSA9ICZjb2RlOwotICAgIEluZGV4TWFwPEJhc2ljQmxvY2ssIENDYWxsSGVscGVyczo6TGFiZWw+
IGJsb2NrTGFiZWxzKGNvZGUuc2l6ZSgpKTsKKyAgICBjb250ZXh0LmJsb2NrTGFiZWxzLnJlc2l6
ZShjb2RlLnNpemUoKSk7CisgICAgZm9yIChCYXNpY0Jsb2NrKiBibG9jayA6IGNvZGUpIHsKKyAg
ICAgICAgaWYgKGJsb2NrKQorICAgICAgICAgICAgY29udGV4dC5ibG9ja0xhYmVsc1tibG9ja10g
PSBCb3g8Q0NhbGxIZWxwZXJzOjpMYWJlbD46OmNyZWF0ZSgpOworICAgIH0KICAgICBJbmRleE1h
cDxCYXNpY0Jsb2NrLCBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0PiBibG9ja0p1bXBzKGNvZGUuc2l6
ZSgpKTsKIAogICAgIGF1dG8gbGluayA9IFsmXSAoQ0NhbGxIZWxwZXJzOjpKdW1wIGp1bXAsIEJh
c2ljQmxvY2sqIHRhcmdldCkgewotICAgICAgICBpZiAoYmxvY2tMYWJlbHNbdGFyZ2V0XS5pc1Nl
dCgpKSB7Ci0gICAgICAgICAgICBqdW1wLmxpbmtUbyhibG9ja0xhYmVsc1t0YXJnZXRdLCAmaml0
KTsKKyAgICAgICAgaWYgKGNvbnRleHQuYmxvY2tMYWJlbHNbdGFyZ2V0XS0+aXNTZXQoKSkgewor
ICAgICAgICAgICAganVtcC5saW5rVG8oKmNvbnRleHQuYmxvY2tMYWJlbHNbdGFyZ2V0XSwgJmpp
dCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIApAQCAtMTk1LDE2ICsyMDEsMjIg
QEAgdm9pZCBnZW5lcmF0ZShDb2RlJiBjb2RlLCBDQ2FsbEhlbHBlcnMmIAogICAgIH07CiAKICAg
ICBmb3IgKEJhc2ljQmxvY2sqIGJsb2NrIDogY29kZSkgeworICAgICAgICBjb250ZXh0LmN1cnJl
bnRCbG9jayA9IGJsb2NrOworICAgICAgICBjb250ZXh0LmluZGV4SW5CbG9jayA9IFVJTlRfTUFY
OwogICAgICAgICBibG9ja0p1bXBzW2Jsb2NrXS5saW5rKCZqaXQpOwotICAgICAgICBibG9ja0xh
YmVsc1tibG9ja10gPSBqaXQubGFiZWwoKTsKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpMYWJlbCBs
YWJlbCA9IGppdC5sYWJlbCgpOworICAgICAgICAqY29udGV4dC5ibG9ja0xhYmVsc1tibG9ja10g
PSBsYWJlbDsKICAgICAgICAgQVNTRVJUKGJsb2NrLT5zaXplKCkgPj0gMSk7CiAgICAgICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBibG9jay0+c2l6ZSgpIC0gMTsgKytpKSB7CisgICAgICAg
ICAgICBjb250ZXh0LmluZGV4SW5CbG9jayA9IGk7CiAgICAgICAgICAgICBJbnN0JiBpbnN0ID0g
YmxvY2stPmF0KGkpOwogICAgICAgICAgICAgYWRkSXRlbShpbnN0KTsKICAgICAgICAgICAgIEND
YWxsSGVscGVyczo6SnVtcCBqdW1wID0gaW5zdC5nZW5lcmF0ZShqaXQsIGNvbnRleHQpOwogICAg
ICAgICAgICAgQVNTRVJUX1VOVVNFRChqdW1wLCAhanVtcC5pc1NldCgpKTsKICAgICAgICAgfQog
CisgICAgICAgIGNvbnRleHQuaW5kZXhJbkJsb2NrID0gYmxvY2stPnNpemUoKSAtIDE7CisgICAg
ICAgIAogICAgICAgICBpZiAoYmxvY2stPmxhc3QoKS5vcGNvZGUgPT0gSnVtcAogICAgICAgICAg
ICAgJiYgYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDApID09IGNvZGUuZmluZE5leHRCbG9jayhibG9j
aykpCiAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTIyOCwyNiArMjQwLDMwIEBAIHZvaWQgZ2Vu
ZXJhdGUoQ29kZSYgY29kZSwgQ0NhbGxIZWxwZXJzJiAKICAgICAgICAgICAgIGFkZEl0ZW0oYmxv
Y2stPmxhc3QoKSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQotCisgICAgICAg
IAogICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAganVtcCA9IGJsb2NrLT5sYXN0KCkuZ2VuZXJh
dGUoaml0LCBjb250ZXh0KTsKLSAgICAgICAgc3dpdGNoIChibG9jay0+bnVtU3VjY2Vzc29ycygp
KSB7Ci0gICAgICAgIGNhc2UgMDoKLSAgICAgICAgICAgIEFTU0VSVCghanVtcC5pc1NldCgpKTsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIDE6Ci0gICAgICAgICAgICBsaW5rKGp1
bXAsIGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSAyOgotICAgICAgICAgICAgbGluayhqdW1wLCBibG9jay0+c3VjY2Vzc29yQmxvY2so
MCkpOwotICAgICAgICAgICAgaWYgKGJsb2NrLT5zdWNjZXNzb3JCbG9jaygxKSAhPSBjb2RlLmZp
bmROZXh0QmxvY2soYmxvY2spKQotICAgICAgICAgICAgICAgIGxpbmsoaml0Lmp1bXAoKSwgYmxv
Y2stPnN1Y2Nlc3NvckJsb2NrKDEpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZh
dWx0OgotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAvLyBUaGUganVtcCB3b24ndCBiZSBzZXQgZm9yIHBhdGNocG9p
bnRzLiBJdCB3b24ndCBiZSBzZXQgZm9yIE9vcHMgYmVjYXVzZSB0aGVuIGl0IHdvbid0IGhhdmUK
KyAgICAgICAgLy8gYW55IHN1Y2Nlc3NvcnMuCisgICAgICAgIGlmIChqdW1wLmlzU2V0KCkpIHsK
KyAgICAgICAgICAgIHN3aXRjaCAoYmxvY2stPm51bVN1Y2Nlc3NvcnMoKSkgeworICAgICAgICAg
ICAgY2FzZSAxOgorICAgICAgICAgICAgICAgIGxpbmsoanVtcCwgYmxvY2stPnN1Y2Nlc3NvckJs
b2NrKDApKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMjoKKyAg
ICAgICAgICAgICAgICBsaW5rKGp1bXAsIGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKSk7CisgICAg
ICAgICAgICAgICAgaWYgKGJsb2NrLT5zdWNjZXNzb3JCbG9jaygxKSAhPSBjb2RlLmZpbmROZXh0
QmxvY2soYmxvY2spKQorICAgICAgICAgICAgICAgICAgICBsaW5rKGppdC5qdW1wKCksIGJsb2Nr
LT5zdWNjZXNzb3JCbG9jaygxKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAg
ICAgYWRkSXRlbShibG9jay0+bGFzdCgpKTsKICAgICB9CisgICAgCisgICAgY29udGV4dC5jdXJy
ZW50QmxvY2sgPSBudWxscHRyOworICAgIGNvbnRleHQuaW5kZXhJbkJsb2NrID0gVUlOVF9NQVg7
CiAKICAgICBwY1RvT3JpZ2luTWFwLmFwcGVuZEl0ZW0oaml0LmxhYmVsKCksIE9yaWdpbigpKTsK
ICAgICAvLyBGSVhNRTogTWFrZSBsYXRlIHBhdGhzIGhhdmUgT3JpZ2luczogaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MzY4OQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0aW9uQ29udGV4dC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGlvbkNvbnRleHQuaAkocmV2aXNpb24g
MjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0aW9uQ29u
dGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDE0ICsyOCwxNCBAQAogCiAjaWYgRU5BQkxFKEIzX0pJ
VCkKIAorI2luY2x1ZGUgIkFpckJhc2ljQmxvY2suaCIKKyNpbmNsdWRlICJCM0luZGV4TWFwLmgi
CisjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCisjaW5jbHVkZSA8d3RmL0JveC5oPgogI2luY2x1
ZGUgPHd0Zi9TaGFyZWRUYXNrLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCi1uYW1lc3Bh
Y2UgSlNDIHsKLQotY2xhc3MgQ0NhbGxIZWxwZXJzOwotCi1uYW1lc3BhY2UgQjMgeyBuYW1lc3Bh
Y2UgQWlyIHsKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UgQWlyIHsK
IAogY2xhc3MgQ29kZTsKIApAQCAtNDQsNyArNDQsMTAgQEAgc3RydWN0IEdlbmVyYXRpb25Db250
ZXh0IHsKICAgICB0eXBlZGVmIFNoYXJlZFRhc2s8TGF0ZVBhdGhGdW5jdGlvbj4gTGF0ZVBhdGg7
CiAKICAgICBWZWN0b3I8UmVmUHRyPExhdGVQYXRoPj4gbGF0ZVBhdGhzOwotICAgIENvZGUqIGNv
ZGU7CisgICAgSW5kZXhNYXA8QmFzaWNCbG9jaywgQm94PENDYWxsSGVscGVyczo6TGFiZWw+PiBi
bG9ja0xhYmVsczsKKyAgICBCYXNpY0Jsb2NrKiBjdXJyZW50QmxvY2sgeyBudWxscHRyIH07Cisg
ICAgdW5zaWduZWQgaW5kZXhJbkJsb2NrIHsgVUlOVF9NQVggfTsKKyAgICBDb2RlKiBjb2RlIHsg
bnVsbHB0ciB9OwogfTsKIAogfSB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjM6OkFpcgpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0LmgJKHJldmlzaW9uIDIwMjgwOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xNjMsNiArMTYzLDkgQEAgcHVibGljOgogICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgYXV0by1n
ZW5lcmF0ZWQgYnkgb3Bjb2RlX2dlbmVyYXRvci5yYi4KICAgICBib29sIGFkbWl0c1N0YWNrKHVu
c2lnbmVkIGFyZ0luZGV4KTsKICAgICBib29sIGFkbWl0c1N0YWNrKEFyZyYpOworICAgIAorICAg
IC8vIERlZmluZWQgYnkgb3Bjb2RlX2dlbmVyYXRvci5yYi4KKyAgICBib29sIGlzVGVybWluYWwo
KTsKIAogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGlzIGluc3RydWN0aW9uIGNhbiBoYXZlIGFu
eSBlZmZlY3RzIG90aGVyIHRoYW4gY29udHJvbCBmbG93IG9yIGFyZ3VtZW50cy4KICAgICBib29s
IGhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKCk7CkBAIC0xNzQsNiArMTc3LDkgQEAgcHVibGlj
OgogCiAgICAgLy8gVGVsbHMgeW91IGlmIHRoaXMgb3BlcmF0aW9uIGhhcyBhcmcgZWZmZWN0cy4K
ICAgICBib29sIGhhc0FyZ0VmZmVjdHMoKTsKKyAgICAKKyAgICAvLyBUZWxscyB5b3UgaWYgdGhp
cyBvcGVyYXRpb24gaGFzIG5vbi1jb250cm9sIGVmZmVjdHMuCisgICAgYm9vbCBoYXNOb25Db250
cm9sRWZmZWN0cygpIHsgcmV0dXJuIGhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKCkgfHwgaGFz
QXJnRWZmZWN0cygpOyB9CiAKICAgICAvLyBHZW5lcmF0ZSBzb21lIGNvZGUgZm9yIHRoaXMgaW5z
dHJ1Y3Rpb24uIFRoaXMgaXMsIGxpa2UsIGxpdGVyYWxseSBvdXIgYmFja2VuZC4gSWYgdGhpcyBp
cyB0aGUKICAgICAvLyB0ZXJtaW5hbCwgaXQgcmV0dXJucyB0aGUganVtcCB0aGF0IG5lZWRzIHRv
IGJlIGxpbmtlZCBmb3IgdGhlICJ0aGVuIiBjYXNlLCB3aXRoIHRoZSAiZWxzZSIKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyU2ltcGxpZnlDRkcuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyU2ltcGxpZnlDRkcuY3BwCShyZXZp
c2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclNpbXBsaWZ5
Q0ZHLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTUsMzMgKzk1LDMyIEBAIGJvb2wgc2ltcGxpZnlD
RkcoQ29kZSYgY29kZSkKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAKLSAgICAg
ICAgICAgIC8vIE5vdyBjaGVjayBpZiB0aGUgYmxvY2sncyB0ZXJtaW5hbCBjYW4gYmUgcmVwbGFj
ZWQgd2l0aCBhIGp1bXAuCi0gICAgICAgICAgICBpZiAoYmxvY2stPm51bVN1Y2Nlc3NvcnMoKSA+
IDEpIHsKLSAgICAgICAgICAgICAgICAvLyBUaGUgdGVybWluYWwgbXVzdCBub3QgaGF2ZSB3ZWly
ZCBlZmZlY3RzLgotICAgICAgICAgICAgICAgIGlmICghYmxvY2stPmxhc3QoKS5oYXNBcmdFZmZl
Y3RzKCkKLSAgICAgICAgICAgICAgICAgICAgJiYgIWJsb2NrLT5sYXN0KCkuaGFzTm9uQXJnTm9u
Q29udHJvbEVmZmVjdHMoKSkgewotICAgICAgICAgICAgICAgICAgICAvLyBBbGwgb2YgdGhlIHN1
Y2Nlc3NvcnMgbXVzdCBiZSB0aGUgc2FtZS4KLSAgICAgICAgICAgICAgICAgICAgYm9vbCBhbGxT
YW1lID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgQmFzaWNCbG9jayogZmlyc3RTdWNjZXNz
b3IgPSBibG9jay0+c3VjY2Vzc29yQmxvY2soMCk7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAo
dW5zaWduZWQgaSA9IDE7IGkgPCBibG9jay0+bnVtU3VjY2Vzc29ycygpOyArK2kpIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChibG9jay0+c3VjY2Vzc29yQmxvY2soaSkgIT0gZmlyc3RT
dWNjZXNzb3IpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxTYW1lID0gZmFsc2U7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgaWYgKGFs
bFNhbWUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRhdGFMb2coIkNoYW5naW5nICIsIHBvaW50ZXJEdW1wKGJsb2Nr
KSwgIidzIHRlcm1pbmFsIHRvIGEgSnVtcC5cbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAg
YmxvY2stPmxhc3QoKSA9IEluc3QoSnVtcCwgYmxvY2stPmxhc3QoKS5vcmlnaW4pOwotICAgICAg
ICAgICAgICAgICAgICAgICAgYmxvY2stPnN1Y2Nlc3NvcnMoKS5yZXNpemUoMSk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBibG9jay0+c3VjY2Vzc29ycygpWzBdLmZyZXF1ZW5jeSgpID0gRnJl
cXVlbmN5Q2xhc3M6Ok5vcm1hbDsKLSAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0
cnVlOworICAgICAgICAgICAgLy8gTm93IGNoZWNrIGlmIHRoZSBibG9jaydzIHRlcm1pbmFsIGNh
biBiZSByZXBsYWNlZCB3aXRoIGEganVtcC4gVGhlIHRlcm1pbmFsIG11c3Qgbm90CisgICAgICAg
ICAgICAvLyBoYXZlIHdlaXJkIGVmZmVjdHMuCisgICAgICAgICAgICBpZiAoYmxvY2stPm51bVN1
Y2Nlc3NvcnMoKSA+IDEgCisgICAgICAgICAgICAgICAgJiYgIWJsb2NrLT5sYXN0KCkuaGFzTm9u
Q29udHJvbEVmZmVjdHMoKSkgeworICAgICAgICAgICAgICAgIC8vIEFsbCBvZiB0aGUgc3VjY2Vz
c29ycyBtdXN0IGJlIHRoZSBzYW1lLgorICAgICAgICAgICAgICAgIGJvb2wgYWxsU2FtZSA9IHRy
dWU7CisgICAgICAgICAgICAgICAgQmFzaWNCbG9jayogZmlyc3RTdWNjZXNzb3IgPSBibG9jay0+
c3VjY2Vzc29yQmxvY2soMCk7CisgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMTsg
aSA8IGJsb2NrLT5udW1TdWNjZXNzb3JzKCk7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBp
ZiAoYmxvY2stPnN1Y2Nlc3NvckJsb2NrKGkpICE9IGZpcnN0U3VjY2Vzc29yKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBhbGxTYW1lID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICBpZiAoYWxsU2FtZSkgeworICAgICAgICAgICAgICAgICAgICBpZiAodmVyYm9z
ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFMb2coIkNoYW5naW5nICIsIHBvaW50ZXJE
dW1wKGJsb2NrKSwgIidzIHRlcm1pbmFsIHRvIGEgSnVtcC5cbiIpOworICAgICAgICAgICAgICAg
ICAgICBibG9jay0+bGFzdCgpID0gSW5zdChKdW1wLCBibG9jay0+bGFzdCgpLm9yaWdpbik7Cisg
ICAgICAgICAgICAgICAgICAgIGJsb2NrLT5zdWNjZXNzb3JzKCkucmVzaXplKDEpOworICAgICAg
ICAgICAgICAgICAgICBibG9jay0+c3VjY2Vzc29ycygpWzBdLmZyZXF1ZW5jeSgpID0gRnJlcXVl
bmN5Q2xhc3M6Ok5vcm1hbDsKKyAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7Cisg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAvLyBGaW5hbGx5
IGhhbmRsZSBqdW1wcyB0byBhIGJsb2NrIHdpdGggb25lIHByZWRlY2Vzc29yLgotICAgICAgICAg
ICAgaWYgKGJsb2NrLT5udW1TdWNjZXNzb3JzKCkgPT0gMSkgeworICAgICAgICAgICAgaWYgKGJs
b2NrLT5udW1TdWNjZXNzb3JzKCkgPT0gMQorICAgICAgICAgICAgICAgICYmICFibG9jay0+bGFz
dCgpLmhhc05vbkNvbnRyb2xFZmZlY3RzKCkpIHsKICAgICAgICAgICAgICAgICBCYXNpY0Jsb2Nr
KiBzdWNjZXNzb3IgPSBibG9jay0+c3VjY2Vzc29yQmxvY2soMCk7CiAgICAgICAgICAgICAgICAg
aWYgKHN1Y2Nlc3NvciAhPSBibG9jayAmJiBzdWNjZXNzb3ItPm51bVByZWRlY2Vzc29ycygpID09
IDEpIHsKICAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoc3VjY2Vzc29yLT5wcmVk
ZWNlc3NvcigwKSA9PSBibG9jayk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0FpclNwZWNpYWwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvQWlyU3BlY2lhbC5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvQWlyU3BlY2lhbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTUsNyArNTUsMTIgQEAg
T3B0aW9uYWw8dW5zaWduZWQ+IFNwZWNpYWw6OnNob3VsZFRyeUFsaQogICAgIHJldHVybiBOdWxs
b3B0OwogfQogCi1ib29sIFNwZWNpYWw6Omhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKCkKK2Jv
b2wgU3BlY2lhbDo6aXNUZXJtaW5hbChJbnN0JikKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisK
K2Jvb2wgU3BlY2lhbDo6aGFzTm9uQXJnTm9uQ29udHJvbEVmZmVjdHMoSW5zdCYpCiB7CiAgICAg
cmV0dXJuIHRydWU7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclNw
ZWNpYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclNw
ZWNpYWwuaAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fp
ci9BaXJTcGVjaWFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtODcsOSArODcsMTIgQEAgcHVibGljOgogCiAg
ICAgdmlydHVhbCBjb25zdCBSZWdpc3RlclNldCYgZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MoSW5z
dCYpID0gMDsKICAgICB2aXJ0dWFsIGNvbnN0IFJlZ2lzdGVyU2V0JiBleHRyYUNsb2JiZXJlZFJl
Z3MoSW5zdCYpID0gMDsKKyAgICAKKyAgICAvLyBCeSBkZWZhdWx0LCB0aGlzIHJldHVybnMgZmFs
c2UuCisgICAgdmlydHVhbCBib29sIGlzVGVybWluYWwoSW5zdCYpOwogCiAgICAgLy8gQnkgZGVm
YXVsdCwgdGhpcyByZXR1cm5zIHRydWUuCi0gICAgdmlydHVhbCBib29sIGhhc05vbkFyZ05vbkNv
bnRyb2xFZmZlY3RzKCk7CisgICAgdmlydHVhbCBib29sIGhhc05vbkFyZ05vbkNvbnRyb2xFZmZl
Y3RzKEluc3QmKTsKIAogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0OwogICAgIHZv
aWQgZGVlcER1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvQWlyVmFsaWRhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvQWlyVmFsaWRhdGUuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclZhbGlkYXRlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC03
OSw5ICs3OSw5IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
VkFMSURBVEUoaW5zdC5pc1ZhbGlkRm9ybSgpLCAoIkF0ICIsIGluc3QsICIgaW4gIiwgKmJsb2Nr
KSk7CiAgICAgICAgICAgICAgICAgaWYgKGluc3RJbmRleCA9PSBibG9jay0+c2l6ZSgpIC0gMSkK
LSAgICAgICAgICAgICAgICAgICAgVkFMSURBVEUoaXNUZXJtaW5hbChpbnN0Lm9wY29kZSksICgi
QXQgIiwgaW5zdCwgIiBpbiAiLCAqYmxvY2spKTsKKyAgICAgICAgICAgICAgICAgICAgVkFMSURB
VEUoaW5zdC5pc1Rlcm1pbmFsKCksICgiQXQgIiwgaW5zdCwgIiBpbiAiLCAqYmxvY2spKTsKICAg
ICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIFZBTElEQVRFKCFpc1Rlcm1p
bmFsKGluc3Qub3Bjb2RlKSwgKCJBdCAiLCBpbnN0LCAiIGluICIsICpibG9jaykpOworICAgICAg
ICAgICAgICAgICAgICBWQUxJREFURSghaW5zdC5pc1Rlcm1pbmFsKCksICgiQXQgIiwgaW5zdCwg
IiBpbiAiLCAqYmxvY2spKTsKIAogICAgICAgICAgICAgICAgIC8vIGZvckVhY2hBcmcgbXVzdCBy
ZXR1cm4gQXJnJidzIHRoYXQgcG9pbnQgaW50byB0aGUgYXJncyBhcnJheS4KICAgICAgICAgICAg
ICAgICBpbnN0LmZvckVhY2hBcmcoCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L29wY29kZV9nZW5lcmF0b3IucmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJiCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL29wY29kZV9nZW5lcmF0b3IucmIJKHdvcmtpbmcgY29weSkK
QEAgLTcxNCw3ICs3MTQsNyBAQCB3cml0ZUgoIk9wY29kZVV0aWxzIikgewogICAgIG91dHAucHV0
cyAicmV0dXJuIGZhbHNlOyAiCiAgICAgb3V0cC5wdXRzICJ9IgogCi0gICAgb3V0cC5wdXRzICJp
bmxpbmUgYm9vbCBpc1Rlcm1pbmFsKE9wY29kZSBvcGNvZGUpIgorICAgIG91dHAucHV0cyAiaW5s
aW5lIGJvb2wgaXNEZWZpbml0ZWx5VGVybWluYWwoT3Bjb2RlIG9wY29kZSkiCiAgICAgb3V0cC5w
dXRzICJ7IgogICAgIG91dHAucHV0cyAic3dpdGNoIChvcGNvZGUpIHsiCiAgICAgZGlkRmluZFRl
cm1pbmFscyA9IGZhbHNlCkBAIC05NzYsNiArOTc2LDMyIEBAIHdyaXRlSCgiT3Bjb2RlR2VuZXJh
dGVkIikgewogICAgIG91dHAucHV0cyAicmV0dXJuIGZhbHNlOyIKICAgICBvdXRwLnB1dHMgIn0i
CiAKKyAgICBvdXRwLnB1dHMgImJvb2wgSW5zdDo6aXNUZXJtaW5hbCgpIgorICAgIG91dHAucHV0
cyAieyIKKyAgICBvdXRwLnB1dHMgInN3aXRjaCAob3Bjb2RlKSB7IgorICAgIGZvdW5kVHJ1ZSA9
IGZhbHNlCisgICAgJG9wY29kZXMudmFsdWVzLmVhY2ggeworICAgICAgICB8IG9wY29kZSB8Cisg
ICAgICAgIGlmIG9wY29kZS5hdHRyaWJ1dGVzWzp0ZXJtaW5hbF0KKyAgICAgICAgICAgIG91dHAu
cHV0cyAiY2FzZSAje29wY29kZS5uYW1lfToiCisgICAgICAgICAgICBmb3VuZFRydWUgPSB0cnVl
CisgICAgICAgIGVuZAorICAgIH0KKyAgICBpZiBmb3VuZFRydWUKKyAgICAgICAgb3V0cC5wdXRz
ICJyZXR1cm4gdHJ1ZTsiCisgICAgZW5kCisgICAgJG9wY29kZXMudmFsdWVzLmVhY2ggeworICAg
ICAgICB8IG9wY29kZSB8CisgICAgICAgIGlmIG9wY29kZS5jdXN0b20KKyAgICAgICAgICAgIG91
dHAucHV0cyAiY2FzZSAje29wY29kZS5uYW1lfToiCisgICAgICAgICAgICBvdXRwLnB1dHMgInJl
dHVybiAje29wY29kZS5uYW1lfUN1c3RvbTo6aXNUZXJtaW5hbCgqdGhpcyk7IgorICAgICAgICBl
bmQKKyAgICB9CisgICAgb3V0cC5wdXRzICJkZWZhdWx0OiIKKyAgICBvdXRwLnB1dHMgInJldHVy
biBmYWxzZTsiCisgICAgb3V0cC5wdXRzICJ9IgorICAgIG91dHAucHV0cyAifSIKKyAgICAKICAg
ICBvdXRwLnB1dHMgImJvb2wgSW5zdDo6aGFzTm9uQXJnTm9uQ29udHJvbEVmZmVjdHMoKSIKICAg
ICBvdXRwLnB1dHMgInsiCiAgICAgb3V0cC5wdXRzICJzd2l0Y2ggKG9wY29kZSkgeyIKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAJKHJldmlz
aW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0Iz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsOSBAQAogCiAjaW5jbHVkZSAiQWlyR2Vu
ZXJhdGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJBbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNh
Z2UuaCIKKyNpbmNsdWRlICJCM0NoZWNrVmFsdWUuaCIKKyNpbmNsdWRlICJCM1BhdGNocG9pbnRW
YWx1ZS5oIgorI2luY2x1ZGUgIkIzU2xvdEJhc2VWYWx1ZS5oIgogI2luY2x1ZGUgIkIzU3RhY2tt
YXBHZW5lcmF0aW9uUGFyYW1zLmgiCiAjaW5jbHVkZSAiQ2FsbEZyYW1lU2h1ZmZsZXIuaCIKICNp
bmNsdWRlICJDb2RlQmxvY2tXaXRoSklUVHlwZS5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExPdXRwdXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMT3V0cHV0LmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExPdXRwdXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw4ICsyOCwxOCBA
QAogCiAjaWYgRU5BQkxFKEZUTF9KSVQpCiAKKyNpbmNsdWRlICJCM0FyZ3VtZW50UmVnVmFsdWUu
aCIKKyNpbmNsdWRlICJCM0Jhc2ljQmxvY2tJbmxpbmVzLmgiCisjaW5jbHVkZSAiQjNDQ2FsbFZh
bHVlLmgiCisjaW5jbHVkZSAiQjNDb25zdDMyVmFsdWUuaCIKKyNpbmNsdWRlICJCM0NvbnN0UHRy
VmFsdWUuaCIKICNpbmNsdWRlICJCM01hdGhFeHRyYXMuaCIKKyNpbmNsdWRlICJCM01lbW9yeVZh
bHVlLmgiCisjaW5jbHVkZSAiQjNTbG90QmFzZVZhbHVlLmgiCiAjaW5jbHVkZSAiQjNTdGFja21h
cEdlbmVyYXRpb25QYXJhbXMuaCIKKyNpbmNsdWRlICJCM1N3aXRjaFZhbHVlLmgiCisjaW5jbHVk
ZSAiQjNVcHNpbG9uVmFsdWUuaCIKKyNpbmNsdWRlICJCM1ZhbHVlSW5saW5lcy5oIgogI2luY2x1
ZGUgIlN1cGVyU2FtcGxlci5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CkBA
IC01NzgsMTIgKzU4OCwxMiBAQCBMVmFsdWUgT3V0cHV0OjpzZWxlY3QoTFZhbHVlIHZhbHVlLCBM
VmFsCiAKIHZvaWQgT3V0cHV0OjpqdW1wKExCYXNpY0Jsb2NrIGRlc3RpbmF0aW9uKQogewotICAg
IG1fYmxvY2stPmFwcGVuZE5ldzxCMzo6Q29udHJvbFZhbHVlPihtX3Byb2MsIEIzOjpKdW1wLCBv
cmlnaW4oKSwgQjM6OkZyZXF1ZW50ZWRCbG9jayhkZXN0aW5hdGlvbikpOworICAgIG1fYmxvY2st
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShtX3Byb2MsIEIzOjpKdW1wLCBvcmlnaW4oKSwgQjM6OkZy
ZXF1ZW50ZWRCbG9jayhkZXN0aW5hdGlvbikpOwogfQogCiB2b2lkIE91dHB1dDo6YnJhbmNoKExW
YWx1ZSBjb25kaXRpb24sIExCYXNpY0Jsb2NrIHRha2VuLCBXZWlnaHQgdGFrZW5XZWlnaHQsIExC
YXNpY0Jsb2NrIG5vdFRha2VuLCBXZWlnaHQgbm90VGFrZW5XZWlnaHQpCiB7Ci0gICAgbV9ibG9j
ay0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgbV9ibG9jay0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBtX3Byb2MsIEIzOjpCcmFuY2gsIG9yaWdpbigpLCBjb25kaXRpb24s
CiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0YWtlbiwgdGFrZW5XZWlnaHQuZnJlcXVlbmN5Q2xh
c3MoKSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhub3RUYWtlbiwgbm90VGFrZW5XZWlnaHQu
ZnJlcXVlbmN5Q2xhc3MoKSkpOwpAQCAtNjAzLDEyICs2MTMsMTIgQEAgdm9pZCBPdXRwdXQ6OmNo
ZWNrKExWYWx1ZSBjb25kaXRpb24sIFdlaQogCiB2b2lkIE91dHB1dDo6cmV0KExWYWx1ZSB2YWx1
ZSkKIHsKLSAgICBtX2Jsb2NrLT5hcHBlbmROZXc8QjM6OkNvbnRyb2xWYWx1ZT4obV9wcm9jLCBC
Mzo6UmV0dXJuLCBvcmlnaW4oKSwgdmFsdWUpOworICAgIG1fYmxvY2stPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShtX3Byb2MsIEIzOjpSZXR1cm4sIG9yaWdpbigpLCB2YWx1ZSk7CiB9CiAKIHZvaWQg
T3V0cHV0Ojp1bnJlYWNoYWJsZSgpCiB7Ci0gICAgbV9ibG9jay0+YXBwZW5kTmV3PEIzOjpDb250
cm9sVmFsdWU+KG1fcHJvYywgQjM6Ok9vcHMsIG9yaWdpbigpKTsKKyAgICBtX2Jsb2NrLT5hcHBl
bmROZXdDb250cm9sVmFsdWUobV9wcm9jLCBCMzo6T29wcywgb3JpZ2luKCkpOwogfQogCiBDaGVj
a1ZhbHVlKiBPdXRwdXQ6OnNwZWN1bGF0ZShMVmFsdWUgdmFsdWUpCkBAIC02MzgsNyArNjQ4LDcg
QEAgUGF0Y2hwb2ludFZhbHVlKiBPdXRwdXQ6OnBhdGNocG9pbnQoTFR5cAogCiB2b2lkIE91dHB1
dDo6dHJhcCgpCiB7Ci0gICAgbV9ibG9jay0+YXBwZW5kTmV3PEIzOjpDb250cm9sVmFsdWU+KG1f
cHJvYywgQjM6Ok9vcHMsIG9yaWdpbigpKTsKKyAgICBtX2Jsb2NrLT5hcHBlbmROZXdDb250cm9s
VmFsdWUobV9wcm9jLCBCMzo6T29wcywgb3JpZ2luKCkpOwogfQogCiBWYWx1ZUZyb21CbG9jayBP
dXRwdXQ6OmFuY2hvcihMVmFsdWUgdmFsdWUpCkBAIC03MjksNiArNzM5LDExIEBAIHZvaWQgT3V0
cHV0OjpkZWNyZW1lbnRTdXBlclNhbXBsZXJDb3VudCgKICAgICBzdG9yZTMyKHN1Yihsb2FkMzIo
Y291bnRlciksIGludDMyT25lKSwgY291bnRlcik7CiB9CiAKK3ZvaWQgT3V0cHV0OjphZGRJbmNv
bWluZ1RvUGhpKExWYWx1ZSBwaGksIFZhbHVlRnJvbUJsb2NrIHZhbHVlKQoreworICAgIHZhbHVl
LnZhbHVlKCktPmFzPEIzOjpVcHNpbG9uVmFsdWU+KCktPnNldFBoaShwaGkpOworfQorCiB9IH0g
Ly8gbmFtZXNwYWNlIEpTQzo6RlRMCiAKICNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuaAkocmV2aXNpb24gMjAyODA5KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuaAkod29ya2luZyBjb3B5KQpAQCAt
MzAsMTkgKzMwLDEyIEBACiAKICNpZiBFTkFCTEUoRlRMX0pJVCkKIAotI2luY2x1ZGUgIkIzQXJn
dW1lbnRSZWdWYWx1ZS5oIgogI2luY2x1ZGUgIkIzQmFzaWNCbG9ja0lubGluZXMuaCIKICNpbmNs
dWRlICJCM0NDYWxsVmFsdWUuaCIKICNpbmNsdWRlICJCM0NvbXBpbGF0aW9uLmgiCi0jaW5jbHVk
ZSAiQjNDb25zdDMyVmFsdWUuaCIKLSNpbmNsdWRlICJCM0NvbnN0UHRyVmFsdWUuaCIKLSNpbmNs
dWRlICJCM0NvbnRyb2xWYWx1ZS5oIgotI2luY2x1ZGUgIkIzTWVtb3J5VmFsdWUuaCIKKyNpbmNs
dWRlICJCM0ZyZXF1ZW50ZWRCbG9jay5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJlLmgiCi0jaW5j
bHVkZSAiQjNTbG90QmFzZVZhbHVlLmgiCiAjaW5jbHVkZSAiQjNTd2l0Y2hWYWx1ZS5oIgotI2lu
Y2x1ZGUgIkIzVXBzaWxvblZhbHVlLmgiCi0jaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKICNp
bmNsdWRlICJGVExBYmJyZXZpYXRlZFR5cGVzLmgiCiAjaW5jbHVkZSAiRlRMQWJzdHJhY3RIZWFw
UmVwb3NpdG9yeS5oIgogI2luY2x1ZGUgIkZUTENvbW1vblZhbHVlcy5oIgpAQCAtNjQsNyArNTcs
MTMgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLW5hbWVzcGFjZSBERkcgeyBzdHJ1Y3QgTm9kZTsg
fQorbmFtZXNwYWNlIERGRyB7CitzdHJ1Y3QgTm9kZTsKK30gLy8gbmFtZXNwYWNlIERGRworCitu
YW1lc3BhY2UgQjMgeworY2xhc3MgU2xvdEJhc2VWYWx1ZTsKK30gLy8gbmFtZXNwYWNlIEIzCiAK
IG5hbWVzcGFjZSBGVEwgewogCkBAIC0xMDYsOSArMTA1LDE5IEBAIHB1YmxpYzoKICAgICBMVmFs
dWUgY29uc3RCb29sKGJvb2wgdmFsdWUpOwogICAgIExWYWx1ZSBjb25zdEludDMyKGludDMyX3Qg
dmFsdWUpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci0gICAgTFZhbHVlIGNvbnN0SW50UHRy
KFQqIHZhbHVlKSB7IHJldHVybiBtX2Jsb2NrLT5hcHBlbmROZXc8QjM6OkNvbnN0UHRyVmFsdWU+
KG1fcHJvYywgb3JpZ2luKCksIHZhbHVlKTsgfQorICAgIExWYWx1ZSBjb25zdEludFB0cihUKiB2
YWx1ZSkKKyAgICB7CisgICAgICAgIGlmIChzaXplb2Yodm9pZCopID09IDgpCisgICAgICAgICAg
ICByZXR1cm4gY29uc3RJbnQ2NChiaXR3aXNlX2Nhc3Q8aW50cHRyX3Q+KHZhbHVlKSk7CisgICAg
ICAgIHJldHVybiBjb25zdEludDMyKGJpdHdpc2VfY2FzdDxpbnRwdHJfdD4odmFsdWUpKTsKKyAg
ICB9CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KLSAgICBMVmFsdWUgY29uc3RJbnRQdHIoVCB2
YWx1ZSkgeyByZXR1cm4gbV9ibG9jay0+YXBwZW5kTmV3PEIzOjpDb25zdFB0clZhbHVlPihtX3By
b2MsIG9yaWdpbigpLCB2YWx1ZSk7IH0KKyAgICBMVmFsdWUgY29uc3RJbnRQdHIoVCB2YWx1ZSkK
KyAgICB7CisgICAgICAgIGlmIChzaXplb2Yodm9pZCopID09IDgpCisgICAgICAgICAgICByZXR1
cm4gY29uc3RJbnQ2NChzdGF0aWNfY2FzdDxpbnRwdHJfdD4odmFsdWUpKTsKKyAgICAgICAgcmV0
dXJuIGNvbnN0SW50MzIoc3RhdGljX2Nhc3Q8aW50cHRyX3Q+KHZhbHVlKSk7CisgICAgfQogICAg
IExWYWx1ZSBjb25zdEludDY0KGludDY0X3QgdmFsdWUpOwogICAgIExWYWx1ZSBjb25zdERvdWJs
ZShkb3VibGUgdmFsdWUpOwogCkBAIC0zNTQsOCArMzYzLDcgQEAgcHVibGljOgogICAgIExWYWx1
ZSBjYWxsV2l0aG91dFNpZGVFZmZlY3RzKEIzOjpUeXBlIHR5cGUsIEZ1bmN0aW9uIGZ1bmN0aW9u
LCBMVmFsdWUgYXJnMSwgQXJncy4uLiBhcmdzKQogICAgIHsKICAgICAgICAgcmV0dXJuIG1fYmxv
Y2stPmFwcGVuZE5ldzxCMzo6Q0NhbGxWYWx1ZT4obV9wcm9jLCB0eXBlLCBvcmlnaW4oKSwgQjM6
OkVmZmVjdHM6Om5vbmUoKSwKLSAgICAgICAgICAgIG1fYmxvY2stPmFwcGVuZE5ldzxCMzo6Q29u
c3RQdHJWYWx1ZT4obV9wcm9jLCBvcmlnaW4oKSwgYml0d2lzZV9jYXN0PHZvaWQqPihmdW5jdGlv
bikpLAotICAgICAgICAgICAgYXJnMSwgYXJncy4uLik7CisgICAgICAgICAgICBjb25zdEludFB0
cihiaXR3aXNlX2Nhc3Q8dm9pZCo+KGZ1bmN0aW9uKSksIGFyZzEsIGFyZ3MuLi4pOwogICAgIH0K
IAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0aW9uVHlwZT4KQEAgLTM3OCw4ICszODYsOCBA
QCBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVmVjdG9yVHlwZT4KICAgICB2b2lkIHN3
aXRjaEluc3RydWN0aW9uKExWYWx1ZSB2YWx1ZSwgY29uc3QgVmVjdG9yVHlwZSYgY2FzZXMsIExC
YXNpY0Jsb2NrIGZhbGxUaHJvdWdoLCBXZWlnaHQgZmFsbFRocm91Z2hXZWlnaHQpCiAgICAgewot
ICAgICAgICBCMzo6U3dpdGNoVmFsdWUqIHN3aXRjaFZhbHVlID0gbV9ibG9jay0+YXBwZW5kTmV3
PEIzOjpTd2l0Y2hWYWx1ZT4oCi0gICAgICAgICAgICBtX3Byb2MsIG9yaWdpbigpLCB2YWx1ZSwg
QjM6OkZyZXF1ZW50ZWRCbG9jayhmYWxsVGhyb3VnaCkpOworICAgICAgICBCMzo6U3dpdGNoVmFs
dWUqIHN3aXRjaFZhbHVlID0gbV9ibG9jay0+YXBwZW5kTmV3PEIzOjpTd2l0Y2hWYWx1ZT4obV9w
cm9jLCBvcmlnaW4oKSwgdmFsdWUpOworICAgICAgICBzd2l0Y2hWYWx1ZS0+c2V0RmFsbFRocm91
Z2goQjM6OkZyZXF1ZW50ZWRCbG9jayhmYWxsVGhyb3VnaCkpOwogICAgICAgICBmb3IgKGNvbnN0
IFN3aXRjaENhc2UmIHN3aXRjaENhc2UgOiBjYXNlcykgewogICAgICAgICAgICAgaW50NjRfdCB2
YWx1ZSA9IHN3aXRjaENhc2UudmFsdWUoKS0+YXNJbnQoKTsKICAgICAgICAgICAgIEIzOjpGcmVx
dWVudGVkQmxvY2sgdGFyZ2V0KHN3aXRjaENhc2UudGFyZ2V0KCksIHN3aXRjaENhc2Uud2VpZ2h0
KCkuZnJlcXVlbmN5Q2xhc3MoKSk7CkBAIC00MzksMTEgKzQ0Nyw2IEBAIGlubGluZSBMVmFsdWUg
T3V0cHV0OjpwaGkoTFR5cGUgdHlwZSwgY28KICAgICByZXR1cm4gcGhpTm9kZTsKIH0KIAotaW5s
aW5lIHZvaWQgT3V0cHV0OjphZGRJbmNvbWluZ1RvUGhpKExWYWx1ZSBwaGksIFZhbHVlRnJvbUJs
b2NrIHZhbHVlKQotewotICAgIHZhbHVlLnZhbHVlKCktPmFzPEIzOjpVcHNpbG9uVmFsdWU+KCkt
PnNldFBoaShwaGkpOwotfQotCiB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBQYXJhbXM+CiBpbmxpbmUg
dm9pZCBPdXRwdXQ6OmFkZEluY29taW5nVG9QaGkoTFZhbHVlIHBoaSwgVmFsdWVGcm9tQmxvY2sg
dmFsdWUsIFBhcmFtcy4uLiB0aGVSZXN0KQogewpJbmRleDogV2Vic2l0ZXMvd2Via2l0Lm9yZy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvd2Via2l0Lm9yZy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIwMjgwOSkKKysrIFdlYnNpdGVzL3dlYmtpdC5vcmcvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMDUtMjkgIEZpbGlwIFBpemxvICA8ZnBpemxv
QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgdGFibGUtYmFzZWQgc3dpdGNoZXMgaW4g
QjMvQWlyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTExNDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisg
ICAgICAgIFVwZGF0ZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgbmV3IFBvbHlKdW1wIG9wY29kZS4K
KworICAgICAgICAqIGRvY3MvYjMvaW50ZXJtZWRpYXRlLXJlcHJlc2VudGF0aW9uLmh0bWw6CisK
IDIwMTYtMDctMDEgIEpvbiBEYXZpcyAgPGpvbmRAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZGVk
IGEgY29sb3JmdWwgbmV3IGltYWdlIGFuZCBmaXhlZCB0aGUgT3BlbiBHcmFwaCBhdHRyaWJ1dGUu
CkluZGV4OiBXZWJzaXRlcy93ZWJraXQub3JnL2RvY3MvYjMvaW50ZXJtZWRpYXRlLXJlcHJlc2Vu
dGF0aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvd2Via2l0Lm9yZy9kb2NzL2IzL2lu
dGVybWVkaWF0ZS1yZXByZXNlbnRhdGlvbi5odG1sCShyZXZpc2lvbiAyMDI4MDkpCisrKyBXZWJz
aXRlcy93ZWJraXQub3JnL2RvY3MvYjMvaW50ZXJtZWRpYXRlLXJlcHJlc2VudGF0aW9uLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTUzNyw2ICs1MzcsMzkgQEAgcGF0Y2hwb2ludC0+c2V0R2VuZXJh
dG9yKAogICAgICAgICBhbHNvIGNvbnRhaW5zIGEgZmFsbC10aHJvdWdoIHRhcmdldCBpbiBjYXNl
IHRoZSBjaGlsZCBoYXMgYSB2YWx1ZSB0aGF0IHdhc24ndCBtZW50aW9uZWQKICAgICAgICAgaW4g
dGhlIGNhc2VzIGxpc3QuICBNdXN0IHVzZSB0aGUgU3dpdGNoVmFsdWUgY2xhc3MuICBNdXN0IGFw
cGVhciBhdCB0aGUgZW5kIG9mIHRoZSBiYXNpYwogICAgICAgICBibG9jay48L2RkPgorICAgICAg
CisgICAgICA8ZHQ+Vm9pZCBQb2x5SnVtcChJbnRQdHIsIGJsb2Nrcy4uLik8L2R0PgorICAgICAg
PGRkPgorICAgICAgICA8cD5KdW1wcyB0byB0aGUgZ2l2ZW4gYWRkcmVzcy4gVGhlIGNvbXBpbGVy
IHdpbGwgYXNzdW1lIHRoYXQgdGhpcyBqdW1wcyB0byBvbmUgb2YgdGhlIGdpdmVuCisgICAgICAg
ICAgYmxvY2tzLiBUaGUgY29tcGlsZXIgbWFrZXMgbm8gYXR0ZW1wdCB0byBwcm92ZSBvciB2YWxp
ZGF0ZSB0aGF0IHRoZSBwYXNzZWQganVtcCBhZGRyZXNzIGlzCisgICAgICAgICAgYWN0dWFsbHkg
dGhlIGFkZHJlc3Mgb2YgYW55IG9mIHRob3NlIGJsb2Nrcy4gTm9uc2Vuc2ljYWwgdGhpbmdzIHdp
bGwgaGFwcGVuIGlmIHRoZSBwYXNzZWQKKyAgICAgICAgICBhZGRyZXNzIGlzIG5vdCB0aGUgYWRk
cmVzcyBvZiBvbmUgb2YgdGhlIGJsb2NrcyBpbiB0aGUgc3VjY2Vzc29yIGxpc3QuIFlvdSBjYW4g
YXJyYW5nZSB0bworICAgICAgICAgIGdldCB0aGUgYWRkcmVzc2VzIG9mIGJsb2NrcyBieSBwYXNz
aW5nIGEgY2FsbGJhY2sgdG8gUG9seUp1bXAuIFRoaXMgaXMgdXNlZCBpbnRlcm5hbGx5CisgICAg
ICAgICAgZm9yIGxvd2VyaW5nIFN3aXRjaCBvcGNvZGVzLiBZb3UgY2FuIGFsc28gdXNlIGl0IGRp
cmVjdGx5LjwvcD4KKyAgICAgIAorICAgICAgICA8cD5Qb2x5SnVtcCBpcyBub3QgY2xvbmVhYmxl
LiBGb3IgZWFjaCBQb2x5SnVtcCB5b3UgY3JlYXRlLCB0aGVyZSB3aWxsIGJlIG9uZSBpbmRpcmVj
dAorICAgICAgICAgIGp1bXAgZ2VuZXJhdGVkLiBUaGlzIGlzIG5lY2Vzc2FyeSB0byBlbnN1cmUg
c291bmRuZXNzIG9mIHRoZSBjYWxsYmFjay4gSWYgdGhlIFBvbHlKdW1wCisgICAgICAgICAgY291
bGQgYmUgY2xvbmVkLCB0aGVuIHRoZSBjYWxsYmFjayB3b3VsZCBnZXQgY2FsbGVkIGZvciBlYWNo
IGNsb25lLiBQcmVzdW1hYmx5LCB5b3UnZAorICAgICAgICAgIGltcGxlbWVudCB0aGUgY2FsbGJh
Y2sgYnkgcG9wdWxhdGluZyBzb21lIHRhYmxlIHdpdGggdGhlIGFkZHJlc3NlcyBvZiB0aGUgYmxv
Y2tzLiBJZiB0aGUKKyAgICAgICAgICBjYWxsYmFjayBnZXRzIGNhbGxlZCBtdWx0aXBsZSB0aW1l
cyB0aGVuIGl0IG1heSByZXR1cm4gZGlmZmVyZW50IGFkZHJlc3NlcyBlYWNoIHRpbWUgLQorICAg
ICAgICAgIHNpbmNlIGFmdGVyIGNsb25pbmcgYSBQb2x5SnVtcCwgdGhlIGNvbXBpbGVyIG1heSBy
ZXRhcmdldCBhbnkgb2YgaXRzIHN1Y2Nlc3NvciBlZGdlcy4KKyAgICAgICAgICBUaGlzIHdvdWxk
IGJlIGNvbmZ1c2luZywgc2luY2UgdGhlbiB5b3Ugd291bGRuJ3Qga25vdyB3aGF0IHRvIGRvIHdp
dGggZGlzY3JlcGFuY2llcyBiZXR3ZWVuCisgICAgICAgICAgYWRkcmVzc2VzIHJldHVybmVkIGJ5
IHRoZSB2YXJpb3VzIGNhbGxzIHRvIHRoZSBjYWxsYmFjay4gRGlzYWxsb3dpbmcgY2xvbmluZyBv
ZiBQb2x5SnVtcAorICAgICAgICAgIHNvbHZlcyB0aGlzIHByb2JsZW0uPC9wPgorICAgICAgICAK
KyAgICAgICAgPHA+QSBjbG9zZWx5IHJlbGF0ZWQgcHJvYmxlbSBpcyB0aGF0IGlmIHlvdSBlbWl0
IG11bHRpcGxlIFBvbHlKdW1wIGluc3RydWN0aW9ucywgdGhlbiBldmVuCisgICAgICAgICAgaWYg
dGhleSBpbml0aWFsbHkgc2hhcmUgdGhlIHNhbWUgc3VjY2Vzc29ycywgeW91IGNhbm5vdCBndWFy
YW50ZWUgdGhhdCB0aGV5IHdpbGwgY29udGludWUKKyAgICAgICAgICB0byBzaGFyZSB0aGUgc2Ft
ZSBzdWNjZXNzb3JzIGFmdGVyIG9wdGltaXphdGlvbi4gVGhpcyBtZWFucyB0aGF0IFBvbHlKdW1w
IGNhbm5vdAorICAgICAgICAgIGN1cnJlbnRseSBiZSB1c2VkIGZvciBpbXBsZW1lbnRpbmcgZGly
ZWN0IHRocmVhZGVkIGludGVycHJldGVycywgYXQgbGVhc3Qgbm90IHRoZSBjbGFzc2ljCisgICAg
ICAgICAga2luZDogdG8gbWFrZSBpdCB3b3JrLCB5b3UgaGF2ZSB0byBoYXZlIGEgc2hhcmVkIGRp
c3BhdGNoIGJsb2NrIHNvIHRoYXQgeW91IGhhdmUgYSBzaW5nbGUKKyAgICAgICAgICBQb2x5SnVt
cC4gVGhpcyBtaWdodCBiZSBiZXR0ZXIgdGhhbiBhIFN3aXRjaC1iYXNlZCBpbnRlcnByZXRlciwg
YnV0IGl0J3MgZGVmaW5pdGVseSBub3QKKyAgICAgICAgICBhcyBnb29kIGFzIHdoYXQgeW91J2Qg
Z2V0IHdpdGggR0NDLXN0eWxlIGNvbXB1dGVkIGdvdG8uPC9wPgorICAgICAgICAKKyAgICAgICAg
PHA+UG9seUp1bXAgaXMgc28gbmFtZWQgdG8gYXZvaWQgY29uZnVzaW9uIHdpdGggY29tcHV0ZWQg
Z290b3MgYW5kIGluZGlyZWN0IGJyYW5jaGVzIGluCisgICAgICAgICAgb3RoZXIgY29tcGlsZXJz
LiBJdCBoYXMgc2lnbmlmaWNhbnQgcmVzdHJpY3Rpb25zIHRoYXQgdGhvc2Ugb3BlcmF0aW9ucyBk
byBub3QgaGF2ZS4gVGhlc2UKKyAgICAgICAgICByZXN0cmljdGlvbnMgbWFrZSBpdCBlYXNpZXIg
Zm9yIHRoZSBvcHRpbWl6ZXIgdG8gd29yayB3aXRoIHNpbmNlIHRoZSBjb250cm9sIGZsb3cgZ2V0
cyB0bworICAgICAgICAgIGJlIGV4cGxpY2l0IChQb2x5SnVtcCBoYXMgYSBmaW5pdGUgc2V0IG9m
IHN1Y2Nlc3NvcnMgbGlrZSBhbnkgb3RoZXIgYmxvY2sgdGVybWluYWwpLjwvcD4KKyAgICAgIDwv
ZGQ+CiAKICAgICAgIDxkdD5Wb2lkIFJldHVybihUKTwvZHQ+CiAgICAgICA8ZGQ+V29ya3MgZm9y
IGFueSB0eXBlIGV4Y2VwdCBWb2lkLiAgUmV0dXJucyB0aGUgZ2l2ZW4gdmFsdWUgYW5kIHRlcm1p
bmF0ZXMgdGhlIHByb2NlZHVyZS4KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMjgwOSkKKysrIExheW91
dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE2LTA1
LTI5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50
IHRhYmxlLWJhc2VkIHN3aXRjaGVzIGluIEIzL0FpcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxMTQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBqcy9yZWdyZXNzL2JpZ3N3aXRjaC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3MvYmlnc3dpdGNoLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2JpZ3N3aXRjaC5qczogQWRkZWQuCisg
ICAgICAgIChmb28pOgorCiAyMDE2LTA3LTA0ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFA
Z21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHNraXAgbWlzYy1idWdzLTg0NzM4OS1q
cGVnMjAwMC5qcyBpbiBqc2Mgc3RyZXNzIHRlc3RzCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL2JpZ3N3aXRjaC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9iaWdzd2l0Y2gtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9iaWdzd2l0Y2gtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMTAgQEAKK0pTUmVncmVzcy9iaWdzd2l0Y2gKKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jl
c3MvYmlnc3dpdGNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9i
aWdzd2l0Y2guaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmln
c3dpdGNoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhU
TUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvYmlnc3dpdGNoLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0
LXRlc3RzL2JpZ3N3aXRjaC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNz
L3NjcmlwdC10ZXN0cy9iaWdzd2l0Y2guanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9iaWdzd2l0Y2guanMJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwyMTEgQEAKK2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHZhbHVlID0gaSAm
IDYzOworICAgICAgICBzd2l0Y2ggKHZhbHVlKSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxOgor
ICAgICAgICAgICAgcmVzdWx0ICs9IG8uYjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIDI6CisgICAgICAgICAgICByZXN1bHQgKz0gby5jOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmQ7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSA0OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDU6CisgICAgICAgICAgICByZXN1bHQgKz0gby5m
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA3OgorICAgICAgICAg
ICAgcmVzdWx0ICs9IG8uaDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDg6Cisg
ICAgICAgICAgICByZXN1bHQgKz0gby5pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgOToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSAxMDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSAxMToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmE7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxMjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
LmI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxMzoKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLmM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxNDoKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLmQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAx
NToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSAxNjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmY7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSAxNzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxOToKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLmk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyMDoKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyMToK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSAyMjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSAyMzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSAyNDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmI7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyNToKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLmM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyNjoKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLmQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyNzoKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSAyODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmY7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSAyOToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSAzMDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzMToKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
Lmk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzMjoKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzMzoKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAz
NDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSAzNToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSAzNjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzNzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmI7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzODoKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLmM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzOToKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLmQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0MDoK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSA0MToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmY7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSA0MjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSA0MzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0NDoKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLmk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0NToKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0NjoKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSA0NzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSA0ODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSA0OToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1MDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
Lms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1MToKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1MjoKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1
MzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSA1NDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmM7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSA1NToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmQ7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1NjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmU7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1NzoKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLmY7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1ODoKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1OToK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSA2MDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSA2MToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSA2MjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLno7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4g
cmVzdWx0OworfQorCisoZnVuY3Rpb24oKSB7CisgICAgdmFyIG8gPSB7YToxLCBiOjIsIGM6Mywg
ZDo0LCBlOjUsIGY6NiwgZzo3LCBoOjgsIGk6OSwgajoxMCwgazoxMSwgejoxMDB9OworICAgIHZh
ciByZXN1bHQgPSAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKKyAgICAg
ICAgcmVzdWx0ICs9IGZvbyhvKTsKKyAgICBpZiAocmVzdWx0ICE9IDc5NjYwMDAwKQorICAgICAg
ICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9KSgpOworCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283113</attachid>
            <date>2016-07-08 00:13:37 -0700</date>
            <delta_ts>2016-07-08 09:27:44 -0700</delta_ts>
            <desc>maybe done</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>428332</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2NiBA
QAorMjAxNi0wNS0yOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IEltcGxlbWVudCB0YWJsZS1iYXNlZCBzd2l0Y2hlcyBpbiBCMy9BaXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTE0MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgSWYgYSBzd2l0Y2ggc3Rh
dGVtZW50IGdldHMgbGFyZ2UsIGl0J3MgYmV0dGVyIHRvIGV4cHJlc3MgaXQgYXMgYW4gaW5kaXJl
Y3QganVtcCByYXRoZXIgdGhhbgorICAgICAgICB1c2luZyBhIGJpbmFyeSBzd2l0Y2ggKGRpdmlk
ZS1hbmQtY29ucXVlciB0cmVlIG9mIGNvbXBhcmlzb25zIGxlYWRpbmcgdG8gTyhsb2cgbikgYnJh
bmNoZXMgdG8KKyAgICAgICAgZ2V0IHRvIHRoZSBzd2l0Y2ggY2FzZSkuIFdoZW4gZGVhbGluZyB3
aXRoIGludGVnZXIgc3dpdGNoZXMsIEZUTCB3aWxsIGFscmVhZHkgdXNlIHRoZSBCMworICAgICAg
ICBTd2l0Y2ggYW5kIGV4cGVjdCB0aGlzIHRvIGdldCBsb3dlcmVkIGFzIGVmZmljaWVudGx5IGFz
IHBvc3NpYmxlOyBpdCdzIGEgYnVnIHRoYXQgQjMgd2lsbAorICAgICAgICBhbHdheXMgdXNlIGEg
YmluYXJ5IHN3aXRjaCByYXRoZXIgdGhhbiBpbmRpcmVjdCBqdW1wcy4gV2hlbiBkZWFsaW5nIHdp
dGggc3dpdGNoZXMgb3ZlciBzb21lCisgICAgICAgIG1vcmUgc29waGlzdGljYXRlZCB0eXBlcywg
d2UnZCB3YW50IEZUTCB0byBidWlsZCBhbiBpbmRpcmVjdCBqdW1wIHRhYmxlIGl0c2VsZiBhbmQg
dXNlCisgICAgICAgIHNvbWV0aGluZyBsaWtlIGEgaGFzaHRhYmxlIHRvIGZlZWQgaXQuIEluIHRo
YXQgY2FzZSwgdGhlcmUgd2lsbCBiZSBubyBCMyBTd2l0Y2g7IHdlJ2xsIHdhbnQKKyAgICAgICAg
c29tZSBraW5kIG9mIGluZGlyZWN0IGp1bXAgaW5zdHJ1Y3Rpb24uCisgICAgICAgIAorICAgICAg
ICBUaGlzIGltcGxpZXMgdGhhdCB3ZSB3YW50IEIzIHRvIGhhdmUgdGhlIGFiaWxpdHkgdG8gbG93
ZXIgU3dpdGNoIHRvIGluZGlyZWN0IGp1bXBzIGFuZCB0bworICAgICAgICBleHBvc2UgdGhvc2Ug
aW5kaXJlY3QganVtcHMgaW4gSVIgc28gdGhhdCB0aGUgRlRMIGNvdWxkIGRvIGl0cyBvd24gaW5k
aXJlY3QganVtcHMgZm9yCisgICAgICAgIHN3aXRjaGVzIG92ZXIgbW9yZSBjb21wbGljYXRlZCB0
aGluZ3MgbGlrZSBzdHJpbmdzLiBUaGlzIGNoYW5nZSBpbnRyb2R1Y2VzIGFuIGluZGlyZWN0IGp1
bXAKKyAgICAgICAgaW5zdHJ1Y3Rpb24gdG8gQjMgYW5kIGNhbGxzIGl0IFBvbHlKdW1wLiBJdCBo
YXMgc29tZSB1bmlxdWUgc2VtYW50aWNzIHRoYXQgbWFrZSBpdCB2ZXJ5CisgICAgICAgIGRpZmZl
cmVudCBmcm9tICJpbmRpcmVjdCBqdW1wcyIsICJpbmRpcmVjdCBicmFuY2hlcyIsIGFuZCAiY29t
cHV0ZWQgZ290b3MiIC0gYWxsIHRlcm1zIG9mIGFydAorICAgICAgICB1c2VkIGluIG90aGVyIGNv
bXBpbGVycy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaW1wbGVtZW50cyB0aGUgbW9zdCBiYXNp
YyBraW5kIG9mIFN3aXRjaC10by1Qb2x5SnVtcCBsb3dlcmluZyBpbiBCMzo6bG93ZXJNYWNyb3Mo
KS4gQXMKKyAgICAgICAgcGFydCBvZiB0aGUgZXhpc3RpbmcgZGl2aWRlLWFuZC1jb25xdWVyIHRo
YXQgY3JlYXRlcyBicmFuY2hlcywgaWYgaXQgZGV0ZWN0cyB0aGF0IHRoZSBzZXQgb2YKKyAgICAg
ICAgY2FzZXMgc2F0aXNmaWVzIHNvbWUgY29uZGl0aW9ucyAoZGVuc2l0eSBvZiBjYXNlIHZhbHVl
cyBhbmQgdG90YWwgc2l6ZSksIHRoZW4gaXQgd2lsbCBlbWl0IGEKKyAgICAgICAgUG9seUp1bXAu
CisgICAgICAgIAorICAgICAgICBUaGUgcHJvYmxlbSB3aXRoIGNsYXNzaWMgaW5kaXJlY3QganVt
cHMgaXMgdGhhdCB0aGV5IGZvcmNlIHRoZSBjb21waWxlciB0byBiZSBjb25zZXJ2YXRpdmUKKyAg
ICAgICAgYWJvdXQgY29udHJvbCBmbG93LiBUaGUgY29tcGlsZXIgbXVzdCBhc3N1bWUgdGhhdCB0
aGUgaW5kaXJlY3QganVtcCBtYXkgdHJhbnNmZXIgY29udHJvbCBmbG93CisgICAgICAgIHRvIGFu
eSBlc2NhcGVkIGJsb2NrIChibG9jayBsYWJlbGVkIGFzIGJlaW5nIGEgcG9zc2libGUgdGFyZ2V0
IGZvciBpbmRpcmVjdCBqdW1wcywgb3IgaWYgbm8KKyAgICAgICAgc3VjaCBsYWJlbGluZyBpcyBh
dmFpbGFibGUsIHRoZSBjb21waWxlciBtdXN0IGFzc3VtZSB0aGF0IGl0IG1heSB0YXJnZXQgYW55
IGJsb2NrKS4gVGhlIHdvcnN0CisgICAgICAgIHBhcnQgaXMgdGhhdCB0aGUgaW1wbGljaXQgY29u
dHJvbCBmbG93IGVkZ2VzIGZyb20gdGhlIGluZGlyZWN0IGp1bXAgdG8gdGhlIGVzY2FwZWQgYmxv
Y2tzCisgICAgICAgIGNhbm5vdCBiZSBicm9rZW4uIFRoaXMgaW52YWxpZGF0ZXMgYSBwcmluY2lw
bGUgb2YgQjMgSVI6IGFueSBwaGFzZSBtYXkgYnJlYWsgYW55IGNyaXRpY2FsCisgICAgICAgIGVk
Z2UgZm9yIGFueSByZWFzb24uIE91ciBTU0EgY29udmVyc2lvbiB3b3VsZCBicmVhayBpZiB3ZSBy
ZXZva2VkIHRoaXMgZmVhdHVyZS4gSXQncyBhY3R1YWxseQorICAgICAgICBtdWNoIHdvcnNlIHRo
YW4gdGhpcyAtIGJhc2ljYWxseSBhbnkgbG9naWMgb3ZlciBjb250cm9sIGZsb3cgd291bGQgaGF2
ZSB0byBiZSBoYWNrZWQgdG8gZGVhbAorICAgICAgICB3aXRoIHRoZXNlIHVuYnJlYWthYmxlIGVk
Z2VzLiBUaGlzIHdvdWxkIG1lYW4gY2hhbmdpbmcgYWxsIENGRyB0cmFuc2Zvcm1hdGlvbiB1dGls
aXRpZXMgYW5kCisgICAgICAgIHBhc3Nlcy4gV2UgaGF2ZSBhIGxvdCBvZiB0aG9zZSBhbmQgd2Ug
d2FudCBpdCB0byBiZSBlYXN5IHRvIHdyaXRlIG5ldyBvbmVzLgorICAgICAgICAKKyAgICAgICAg
VGhpcyBpcyB3aHkgd2UgdXNlIHNvbWV0aGluZyBuZXcgYW5kIHF1aXRlIGRpZmZlcmVudCBmcm9t
IGNsYXNzaWMgaW5kaXJlY3QganVtcHMuIFBvbHlKdW1wCisgICAgICAgIG1ha2VzIHRoZSBjb250
cm9sIGZsb3cgZWRnZXMgZXhwbGljaXQuIFRoZSBjbGllbnQgbXVzdCBzdXBwbHkgdGhlIHN1Y2Nl
c3NvcnMgd2hlbiBpdCBjcmVhdGVzCisgICAgICAgIHRoZSBQb2x5SnVtcC4gVGhlIGNvbXBpbGVy
IG1heSByZXdpcmUgdGhvc2Ugc3VjY2Vzc29yIGVkZ2VzIHRoZSBzYW1lIHdheSB0aGF0IGl0IHdv
dWxkIHJld2lyZQorICAgICAgICBhbnkgY29udHJvbCBmbG93IGVkZ2VzLiBDb25zZXF1ZW50bHkg
dGhlIHZhc3QgbWFqb3JpdHkgb2YgQ0ZHIHJlYXNvbmluZyBpbiBCMyBpcyB1bmNoYW5nZWQuCisg
ICAgICAgIElmIHlvdSBkb24ndCB3YW50IHRvIHVuZGVyc3RhbmQgUG9seUp1bXAsIGp1c3QgdGhp
bmsgb2YgaXQgbGlrZSB5b3Ugd291bGQgYSBTd2l0Y2ggd2l0aCBhbgorICAgICAgICBvcGFxdWUg
aW5jb21pbmcgdmFsdWUuIFRoaXMgd29ya3MgYmVjYXVzZSB3ZSBkbyBub3QgYWRkIGFueSBub3Rp
b24gb2YgZXNjYXBlZCBiYXNpYyBibG9ja3MuCisgICAgICAgIEluc3RlYWQgb2YgbGV0dGluZyB0
aGUgY2xpZW50IGdldCB0aGUgcG9pbnRlcnMgdG8gYmFzaWMgYmxvY2tzIGJ5IGVzY2FwaW5nIHRo
ZW0gbGlrZSBpbiBMTFZNLAorICAgICAgICB5b3UgY2FuIG9ubHkgZ2V0IHRoZSBwb2ludGVycyBv
ZiB0aGUgc3VjY2Vzc29ycyBvZiBQb2x5SnVtcCBieSByZWdpc3RlcmluZyBhIGNhbGxiYWNrIHdp
dGgKKyAgICAgICAgUG9seUp1bXAuIFRoaXMgY2FsbGJhY2sgZG9lc24ndCBhY3R1YWxseSBnaXZl
IHlvdSB0aGUgYWRkcmVzc2VzIG9mIGJhc2ljIGJsb2Nrcy4gSXQganVzdAorICAgICAgICBnaXZl
cyB5b3UgdGhlIGFkZHJlc3NlcyB3aGVyZSB5b3UgbXVzdCBqdW1wIHRvIHRyYW5zZmVyIGNvbnRy
b2wgZmxvdyBmcm9tIHRoYXQgUG9seUp1bXAgdG8KKyAgICAgICAgaXRzIHN1Y2Nlc3NvcnMuIFRo
aXMgbWVhbnMgdGhhdCB0aGUgbWFnaWMgb2YgUG9seUp1bXAgaXMgY29uZmluZWQgb25seSB0byB0
aGUgUG9seUp1bXAgaXRzZWxmCisgICAgICAgIGFuZCBkb2Vzbid0IGluZmVjdCByZWFzb25pbmcg
YWJvdXQgdGhlIGJhc2ljIGJsb2NrcyB0aGF0IGl0IGp1bXBzIHRvLgorICAgICAgICAKKyAgICAg
ICAgVGhlIG9ubHkgZG93bnNpZGUgaXMgdGhhdCB0aGF0IFBvbHlKdW1wIGlzIG5vdCBjbG9uZWFi
bGUuIFlvdSBjYW4ndCBjbG9uZSBpdCBiZWNhdXNlIGlmIHlvdQorICAgICAgICBkaWQsIHRoZW4g
dGhlIHR3byByZXN1bHRpbmcgUG9seUp1bXBzIG1heSBoYXZlIHRoZWlyIHN1Y2Nlc3NvciBlZGdl
cyByZXdpcmVkIGluZGVwZW5kZW50bHkgb2YKKyAgICAgICAgZWFjaCBvdGhlci4gVGhpcyBjb3Vs
ZCBlYXNpbHkgaGFwcGVuIGlmIHdlIGJyZWFrIGNyaXRpY2FsIGVkZ2VzLiBJZiB0aGF0IGRpZCBo
YXBwZW4gdGhlbiBpdAorICAgICAgICB3b3VsZCBicmVhayB0aGUgY2xpZW50IG9mIFBvbHlKdW1w
OiB0aGV5IHdvdWxkIGhhdmUgYWxyZWFkeSBjcmVhdGVkIHNvbWV0aGluZyBsaWtlIGEganVtcAor
ICAgICAgICB0YWJsZSBhbmQgd2lsbCBiZSBwb3B1bGF0aW5nIGl0IHZpYSB0aGUgY2FsbGJhY2ss
IGJ1dCBub3cgdGhlIGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkIHR3aWNlLAorICAgICAgICBhbmQg
bWF5IHJldHVybiBkaWZmZXJlbnQganVtcCBkZXN0aW5hdGlvbnMgZWFjaCB0aW1lLiBTbywgdGhp
cyBwYXRjaCBpbnRyb2R1Y2VzCisgICAgICAgIFZhbHVlOjppc0Nsb25lYWJsZSgpIGFuZCB0ZWFj
aGVzIGJvdGggb2Ygb3VyIGNvZGUgc3BlY2lhbGl6YXRpb24gb3B0aW1pemF0aW9ucyAodGFpbAor
ICAgICAgICBkdXBsaWNhdGlvbiBhbmQgc2VsZWN0IHNwZWNpYWxpemF0aW9uKSB0byBiYWlsIGlm
IHRoZSBjb2RlIHRoZXkgd2FudCB0byBzcGVjaWFsaXplIGlzIG5vdAorICAgICAgICBjbG9uZWFi
bGUuIFRoaXMgaXMgdG90YWxseSBiZW5pZ24gbW9zdCBvZiB0aGUgdGltZSwgc2luY2UgdGhvc2Ug
b3B0aW1pemF0aW9ucyB1c3VhbGx5IHJ1bgorICAgICAgICBiZWZvcmUgU3dpdGNoIGxvd2VyaW5n
LiBDbGllbnRzIHRoYXQgdXNlIFBvbHlKdW1wIGRpcmVjdGx5IGhhdmUgdG8gYXBwcmVjaWF0ZSB0
aGUgdHJhZGUtb2ZmOgorICAgICAgICBQb2x5SnVtcCBtYXkgZ2FpbiB0aGVtIHNvbWUgcGVyZm9y
bWFuY2UgYnV0IHRoZXkgYXJlIG9wdGluZyBvdXQgb2Ygb3B0aW1pemF0aW9ucyB0aGF0IHVzZQor
ICAgICAgICBjbG9uaW5nLiBBIGNsb3NlIGNvcm9sbGFyeSBvZiB0aGUgbm8tY2xvbmUgcnVsZSBp
cyB0aGF0IHRoZSBjbGllbnQgY2Fubm90IGNyZWF0ZSBtdWx0aXBsZQorICAgICAgICBQb2x5SnVt
cHMgdGhhdCBhcmUgZmVkIGJ5IGEgY29tbW9uIGp1bXAgdGFibGU6IHRoZSBmYWN0IHRoYXQgZWFj
aCBQb2x5SnVtcCBoYXMgYSBjYWxsYmFjaworICAgICAgICB0aGF0IGp1c3QgdGVsbHMgeW91IHRo
ZSBqdW1wIGRlc3RpbmF0aW9ucyBmb3IgaXRzIHN1Y2Nlc3NvciAqZWRnZXMqLCBub3Qgc3VjY2Vz
c29yICpibG9ja3MqLAorICAgICAgICBtZWFucyB0aGF0IGlmIHlvdSBjcmVhdGUgdHdvIFBvbHlK
dW1wcyBhbmQgZ2l2ZSB0aGVtIHRoZSBzYW1lIHN1Y2Nlc3NvciBsaXN0LCB5b3UgYXJlIG5vdAor
ICAgICAgICBndWFyYW50ZWVkIHRoYXQgdGhleSB3aWxsIGdldCB0aGUgc2FtZSBqdW1wIGRlc3Rp
bmF0aW9ucy4gVGhpcyBodXJ0cyBpZiB5b3Ugd2FudCB0byB1c2UKKyAgICAgICAgUG9seUp1bXAg
Zm9yIHRocmVhZGVkIGludGVycHJldGVycyBidXQgaXQncyBoYXJtbGVzcyBmb3Igc3dpdGNoIGxv
d2VyaW5nLiBUaGUgZ29hbCBvZgorICAgICAgICBQb2x5SnVtcCBpcyB0byBiZSBhd2Vzb21lIGZv
ciBzd2l0Y2ggbG93ZXJpbmcgd2hpbGUgbm90IGJyZWFraW5nIHRoZSByZXN0IG9mIHRoZSBjb21w
aWxlciwgc28KKyAgICAgICAgdGhpcyBpcyBwcm9iYWJseSBmaW5lLgorICAgICAgICAKKyAgICAg
ICAgVGhlIGlzQ2xvbmVhYmxlKCkgbWV0aG9kIGN1cnJlbnRseSBvbmx5IHJldHVybnMgdHJ1ZSBm
b3IgUG9seUp1bXAsIGJ1dCBJIGFudGljaXBhdGUgd2Ugd2lsbAorICAgICAgICBhZGQgb3RoZXIg
bm9uLWNsb25lYWJsZSB0aGluZ3MgbGF0ZXIuIEkgdGhpbmsgaXMgaXMgaW5oZXJlbnQgaW4gYSBj
b21waWxlciB0aGF0IGFsbG93cyBzdWNoCisgICAgICAgIGN1c3RvbWl6ZWFiaWxpdHkgZm9yIGl0
cyBjbGllbnRzLiBGb3IgZXhhbXBsZSwgd2UgbWF5IHdhbnQgdG8gYWRkIGEgZmxhZyB0byBQYXRj
aHBvaW50IHRoYXQKKyAgICAgICAgbWFrZXMgaXQgbm9uLWNsb25lYWJsZS4gU29tZXRpbWVzIHdl
IGhhdmUgdG8ganVtcCB0aHJvdWdoIGhvb3BzIGluIHRoZSBGVEwgYmVjYXVzZSBvZiB0aGUKKyAg
ICAgICAgY2xvbmVhYmlsaXR5IG9mIHBhdGNocG9pbnRzLiBUaGlzIGhhcHBlbnMgaW4gT1NSIGV4
aXRzLCB3aGljaCBwYXkgYSBzaWduaWZpY2FudCBtZW1vcnkgY29zdAorICAgICAgICBmb3IgYWRk
aXRpb25hbCBkYXRhIHN0cnVjdHVyZXMgdGhhdCBhcmUgdGhlcmUgaW4gY2FzZSBhbiBleGl0IGdl
dHMgY2xvbmVkLiBJdCBtYXkgYmUgbW9yZQorICAgICAgICBwcm9maXRhYmxlIHRvIGp1c3Qgc2F5
IHRoYXQgT1NSIGV4aXRzIChpLmUuIENoZWNrcyBhbmQgSW52YWxpZGF0aW9uUG9pbnQgUGF0Y2hw
b2ludHMpIGFyZSBub3QKKyAgICAgICAgY2xvbmVhYmxlLiBTdXJlbHkgdGhpcyB3b3VsZCByZWR1
Y2UgdGFpbCBkdXBsaWNhdGlvbiwgYnV0IHRhaWwgZHVwbGljYXRpb24gaXMgbW9zdCBwcm9maXRh
YmxlCisgICAgICAgIHdoZW4gaXQgY2xvbmVzIG9ubHkgYSB0aW55IGFtb3VudCBvZiBjb2RlOyBp
ZiB0aGVyZSdzIGFuIGV4aXQgdGhlbiB3ZSdyZSBub3QgdGFsa2luZyBhYm91dCBhCisgICAgICAg
IHRpbnkgYW1vdW50IG9mIGNvZGUgYW55bW9yZS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgaXMg
YSB+MzAlIHNwZWVkLXVwIG9uIG1pY3JvYmVuY2htYXJrcyB0aGF0IGhhdmUgYmlnIHN3aXRjaCBz
dGF0ZW1lbnRzICh+NjAgY2FzZXMpLiBJdCdzCisgICAgICAgIG5vdCBhIHNwZWVkLXVwIG9uIG1h
aW5zdHJlYW0gYmVuY2htYXJrcy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgYWxzbyBhZGRzIGEg
bmV3IHRlc3QgdG8gdGVzdGIzIGZvciBQb2x5SnVtcCwgR2V0LCBhbmQgU2V0LiBUaGUgRlRMIGRv
ZXMgbm90IGN1cnJlbnRseQorICAgICAgICB1c2UgUG9seUp1bXAgZGlyZWN0bHksIGJ1dCB3ZSB3
YW50IHRoaXMgdG8gYmUgcG9zc2libGUuIEl0IGFsc28gZG9lc24ndCB1c2UgR2V0L1NldCBkaXJl
Y3RseQorICAgICAgICBldmVuIHRob3VnaCB3ZSB3YW50IHRoaXMgdG8gYmUgcG9zc2libGUuIEl0
J3MgaW1wb3J0YW50IHRvIHRlc3QgdGhlc2Ugc2luY2Ugb3Bjb2RlcyB0aGF0CisgICAgICAgIHJl
c3VsdCBmcm9tIGxvd2VyaW5nIGRvbid0IGFmZmVjdCBlYXJseSBwaGFzZXMsIHNvIHdlIGNvdWxk
IGhhdmUgcmVncmVzc2lvbnMgaW4gZWFybHkgcGhhc2VzCisgICAgICAgIHJlbGF0ZWQgdG8gdGhl
c2Ugb3Bjb2RlcyB0aGF0IHdvdWxkbid0IGJlIGNhdWdodCBieSBhbnkgSlMgdGVzdC4gU28sIHRo
aXMgYWRkcyBhIHZlcnkgYmFzaWMKKyAgICAgICAgdGhyZWFkZWQgaW50ZXJwcmV0ZXIgdG8gdGVz
dGIzIGZvciBhIEJyYWluZnVjay1zdHlsZSBsYW5ndWFnZSwgYW5kIHRlc3RzIGl0IGJ5IGhhdmlu
ZyBpdCBydW4KKyAgICAgICAgYSBwcm9ncmFtIHRoYXQgcHJpbnRzIHRoZSBudW1iZXJzIDEuLjEw
MCBpbiBhIGxvb3AuIFVubGlrZSBhIHJlYWwgdGhyZWFkZWQgaW50ZXJwcmV0ZXIsIGl0CisgICAg
ICAgIHVzZXMgYSBjb21tb24gZGlzcGF0Y2ggYmxvY2sgcmF0aGVyIHRoYW4gaGF2aW5nIGRpc3Bh
dGNoIGF0IHRoZSB0ZXJtaW51cyBvZiBlYWNoIG9wY29kZS4KKyAgICAgICAgVGhhdCdzIG5lY2Vz
c2FyeSBiZWNhdXNlIFBvbHlKdW1wIGlzIG5vdCBjbG9uZWFibGUuIFRoZSBzdGF0ZSBvZiB0aGUg
aW50ZXJwcmV0ZXIgaXMKKyAgICAgICAgcmVwcmVzZW50ZWQgdXNpbmcgVmFyaWFibGVzIHRoYXQg
d2UgR2V0IGFuZCBTZXQsIHNvIGl0IHRlc3RzIEdldC9TZXQgYXMgd2VsbC4KKworICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9u
Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpqdW1wKToKKyAgICAg
ICAgKiBhc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxl
cjo6am1wX20pOgorICAgICAgICAqIGIzL0IzQmFzaWNCbG9jay5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpCYXNpY0Jsb2NrOjp1cGRhdGVQcmVkZWNlc3NvcnNBZnRlcik6CisgICAgICAgIChKU0M6
OkIzOjpCYXNpY0Jsb2NrOjppc0Nsb25lYWJsZSk6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Js
b2NrOjpkdW1wKToKKyAgICAgICAgKiBiMy9CM0Jhc2ljQmxvY2suaDoKKyAgICAgICAgKEpTQzo6
QjM6OkJhc2ljQmxvY2s6OmZyZXF1ZW5jeSk6CisgICAgICAgICogYjMvQjNDb21tb24uaDoKKyAg
ICAgICAgKEpTQzo6QjM6OmlzNjRCaXQpOgorICAgICAgICAqIGIzL0IzQ29udHJvbFZhbHVlLmg6
CisgICAgICAgICogYjMvQjNEYXRhU2VjdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkIzOjpEYXRh
U2VjdGlvbjo6RGF0YVNlY3Rpb24pOgorICAgICAgICAqIGIzL0IzRHVwbGljYXRlVGFpbHMuY3Bw
OgorICAgICAgICAqIGIzL0IzTG93ZXJNYWNyb3MuY3BwOgorICAgICAgICAqIGIzL0IzTG93ZXJU
b0Fpci5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okxvd2VyVG9BaXI6Omxvd2VyKToKKyAg
ICAgICAgKiBiMy9CM09wY29kZS5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgor
ICAgICAgICAqIGIzL0IzT3Bjb2RlLmg6CisgICAgICAgICogYjMvQjNQb2x5SnVtcFZhbHVlLmNw
cDogQWRkZWQuCisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjp+UG9seUp1bXBWYWx1
ZSk6CisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjphcHBlbmRTdWNjZXNzb3IpOgor
ICAgICAgICAoSlNDOjpCMzo6UG9seUp1bXBWYWx1ZTo6c2V0Q2FsbGJhY2tUYXNrKToKKyAgICAg
ICAgKEpTQzo6QjM6OlBvbHlKdW1wVmFsdWU6OmlzQ2xvbmVhYmxlKToKKyAgICAgICAgKEpTQzo6
QjM6OlBvbHlKdW1wVmFsdWU6OmR1bXBNZXRhKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1w
VmFsdWU6OmNsb25lSW1wbCk6CisgICAgICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjpQb2x5
SnVtcFZhbHVlKToKKyAgICAgICAgKiBiMy9CM1BvbHlKdW1wVmFsdWUuaDogQWRkZWQuCisgICAg
ICAgIChKU0M6OkIzOjpQb2x5SnVtcFZhbHVlOjphY2NlcHRzKToKKyAgICAgICAgKEpTQzo6QjM6
OlBvbHlKdW1wVmFsdWU6OnNldENhbGxiYWNrKToKKyAgICAgICAgKEpTQzo6QjM6OlBvbHlKdW1w
VmFsdWU6OmNhbGxiYWNrVGFzayk6CisgICAgICAgICogYjMvQjNQcm9jZWR1cmUuY3BwOgorICAg
ICAgICAoSlNDOjpCMzo6UHJvY2VkdXJlOjpjbG9uZSk6CisgICAgICAgICogYjMvQjNQcm9jZWR1
cmUuaDoKKyAgICAgICAgKEpTQzo6QjM6OlByb2NlZHVyZTo6bGFzdFBoYXNlTmFtZSk6CisgICAg
ICAgIChKU0M6OkIzOjpQcm9jZWR1cmU6OmJ5cHJvZHVjdHMpOgorICAgICAgICAqIGIzL0IzUmVk
dWNlU3RyZW5ndGguY3BwOgorICAgICAgICAqIGIzL0IzVmFsaWRhdGUuY3BwOgorICAgICAgICAq
IGIzL0IzVmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6OmVmZmVjdHMpOgorICAg
ICAgICAoSlNDOjpCMzo6VmFsdWU6OmlzQ2xvbmVhYmxlKToKKyAgICAgICAgKEpTQzo6QjM6OlZh
bHVlOjprZXkpOgorICAgICAgICAqIGIzL0IzVmFsdWUuaDoKKyAgICAgICAgKiBiMy9haXIvQWly
Q29kZS5oOgorICAgICAgICAqIGIzL2Fpci9BaXJHZW5lcmF0ZS5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpBaXI6OmdlbmVyYXRlKToKKyAgICAgICAgKiBiMy9haXIvQWlySW5zdC5jcHA6CisgICAg
ICAgIChKU0M6OkIzOjpBaXI6Okluc3Q6Omhhc0FyZ0VmZmVjdHMpOgorICAgICAgICAoSlNDOjpC
Mzo6QWlyOjpJbnN0Ojppc0Nsb25lYWJsZSk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okluc3Q6
OmR1bXApOgorICAgICAgICAqIGIzL2Fpci9BaXJJbnN0Lmg6CisgICAgICAgICogYjMvYWlyL0Fp
ck9wY29kZS5vcGNvZGVzOgorICAgICAgICAqIGIzL3Rlc3RiMy5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpzaG91bGRCZVZlcmJvc2UpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN3aXRjaENoaWxs
RGl2KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RMYXRlUmVnaXN0ZXIpOgorICAgICAgICAoSlND
OjpCMzo6dGhyZWFkZWRJbnRlcnByZXRlclByaW50KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RU
aHJlYWRlZEludGVycHJldGVyKToKKyAgICAgICAgKEpTQzo6QjM6Onplcm8pOgorICAgICAgICAo
SlNDOjpCMzo6cnVuKToKKwogMjAxNi0wNy0wMyAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0gRExMcyBhcmUgbWlzc2luZyB2ZXJzaW9uIGluZm9y
bWF0aW9uLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24g
MjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0xMDgsNiArMTA4LDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAg
ICBiMy9CM0Jsb2NrSW5zZXJ0aW9uU2V0LmNwcAogICAgIGIzL0IzQnJlYWtDcml0aWNhbEVkZ2Vz
LmNwcAogICAgIGIzL0IzQ0NhbGxWYWx1ZS5jcHAKKyAgICBiMy9CM0Nhc2VDb2xsZWN0aW9uLmNw
cAogICAgIGIzL0IzQ2hlY2tTcGVjaWFsLmNwcAogICAgIGIzL0IzQ2hlY2tWYWx1ZS5jcHAKICAg
ICBiMy9CM0NvbW1vbi5jcHAKQEAgLTExOCw3ICsxMTksNiBAQCBzZXQoSmF2YVNjcmlwdENvcmVf
U09VUkNFUwogICAgIGIzL0IzQ29uc3REb3VibGVWYWx1ZS5jcHAKICAgICBiMy9CM0NvbnN0Rmxv
YXRWYWx1ZS5jcHAKICAgICBiMy9CM0NvbnN0cmFpbmVkVmFsdWUuY3BwCi0gICAgYjMvQjNDb250
cm9sVmFsdWUuY3BwCiAgICAgYjMvQjNEYXRhU2VjdGlvbi5jcHAKICAgICBiMy9CM0R1cGxpY2F0
ZVRhaWxzLmNwcAogICAgIGIzL0IzRWZmZWN0cy5jcHAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAt
NzczLDggKzc3Myw2IEBACiAJCTBGRUM4NTEwMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0NjRW
YWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZF
Qzg0QzYxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29uc3Q2NFZhbHVlLmggKi87IH07CiAJCTBGRUM4
NTExMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0RG91YmxlVmFsdWUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZFQzg0QzcxQkRBQ0RBQzAwODBG
Rjc0IC8qIEIzQ29uc3REb3VibGVWYWx1ZS5jcHAgKi87IH07CiAJCTBGRUM4NTEyMUJEQUNEQUMw
MDgwRkY3NCAvKiBCM0NvbnN0RG91YmxlVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRUM4NEM4MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0
RG91YmxlVmFsdWUuaCAqLzsgfTsKLQkJMEZFQzg1MTMxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29u
dHJvbFZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGRUM4NEM5MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnRyb2xWYWx1ZS5jcHAgKi87IH07
Ci0JCTBGRUM4NTE0MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnRyb2xWYWx1ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZFQzg0Q0ExQkRBQ0RBQzAw
ODBGRjc0IC8qIEIzQ29udHJvbFZhbHVlLmggKi87IH07CiAJCTBGRUM4NTE1MUJEQUNEQUMwMDgw
RkY3NCAvKiBCM0ZyZXF1ZW5jeUNsYXNzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGRUM4NENCMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0ZyZXF1ZW5j
eUNsYXNzLmNwcCAqLzsgfTsKIAkJMEZFQzg1MTYxQkRBQ0RBQzAwODBGRjc0IC8qIEIzRnJlcXVl
bmN5Q2xhc3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGRUM4NENDMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0ZyZXF1ZW5jeUNsYXNzLmggKi87IH07CiAJ
CTBGRUM4NTE3MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0ZyZXF1ZW50ZWRCbG9jay5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZFQzg0Q0QxQkRBQ0RBQzAw
ODBGRjc0IC8qIEIzRnJlcXVlbnRlZEJsb2NrLmggKi87IH07CkBAIC0xOTk3LDYgKzE5OTUsOSBA
QAogCQlEQzY5QUE2NjFDRjdBMUYyMDBDNjI3MkYgLyogTWF0Y2hSZXN1bHQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM2OUFBNjUxQ0Y3QTFFRjAw
QzYyNzJGIC8qIE1hdGNoUmVzdWx0LmNwcCAqLzsgfTsKIAkJREM3OTk3ODMxQ0RFOUZBMDAwNEQ0
QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IERDNzk5NzgyMUNERTlGOUUwMDRENEEwOSAvKiBUYWdSZWdpc3RlcnNN
b2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
REM3OTk3ODQxQ0RFOUZBMjAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM3OTk3ODExQ0RFOUY5RTAw
NEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuY3BwICovOyB9OworCQlEQzlBMEMxRjFEMkQ5Q0Ix
MDA4NTEyNEUgLyogQjNDYXNlQ29sbGVjdGlvbklubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDOUEwQzFFMUQyRDk0RUYwMDg1MTI0RSAvKiBC
M0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oICovOyB9OworCQlEQzlBMEMyMDFEMkQ5Q0IzMDA4NTEy
NEUgLyogQjNDYXNlQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gREM5QTBDMUQxRDJEOTRFRjAwODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rp
b24uaCAqLzsgfTsKKwkJREM5QTBDMjExRDJEOUNCNDAwODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rp
b24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM5
QTBDMUMxRDJEOTRFRjAwODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rpb24uY3BwICovOyB9OwogCQlE
Q0VFMjIwOTFDRUI5ODk1MDAwQzIzOTYgLyogREZHQmFja3dhcmRzQ0ZHLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQ0VFMjIwNjFDRUI5ODkwMDAwQzIz
OTYgLyogREZHQmFja3dhcmRzQ0ZHLmggKi87IH07CiAJCURDRUUyMjBBMUNFQjk4OTUwMDBDMjM5
NiAvKiBERkdCYWNrd2FyZHNEb21pbmF0b3JzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBEQ0VFMjIwNzFDRUI5ODkwMDAwQzIzOTYgLyogREZHQmFja3dh
cmRzRG9taW5hdG9ycy5oICovOyB9OwogCQlEQ0VFMjIwQjFDRUI5ODk1MDAwQzIzOTYgLyogREZH
Q29udHJvbEVxdWl2YWxlbmNlQW5hbHlzaXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IERDRUUyMjA4MUNFQjk4OTAwMDBDMjM5NiAvKiBERkdDb250cm9s
RXF1aXZhbGVuY2VBbmFseXNpcy5oICovOyB9OwpAQCAtMjk2NCw4ICsyOTY1LDYgQEAKIAkJMEZF
Qzg0QzYxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29uc3Q2NFZhbHVlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IEIzQ29uc3Q2NFZhbHVlLmg7IHBhdGggPSBiMy9CM0NvbnN0NjRW
YWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkVDODRDNzFCREFDREFDMDA4
MEZGNzQgLyogQjNDb25zdERvdWJsZVZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IEIzQ29uc3REb3VibGVWYWx1ZS5jcHA7IHBhdGggPSBiMy9CM0NvbnN0RG91
YmxlVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkVDODRDODFCREFD
REFDMDA4MEZGNzQgLyogQjNDb25zdERvdWJsZVZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IEIzQ29uc3REb3VibGVWYWx1ZS5oOyBwYXRoID0gYjMvQjNDb25zdERvdWJs
ZVZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGRUM4NEM5MUJEQUNEQUMw
MDgwRkY3NCAvKiBCM0NvbnRyb2xWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBCM0NvbnRyb2xWYWx1ZS5jcHA7IHBhdGggPSBiMy9CM0NvbnRyb2xWYWx1ZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGRUM4NENBMUJEQUNEQUMwMDgwRkY3
NCAvKiBCM0NvbnRyb2xWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBC
M0NvbnRyb2xWYWx1ZS5oOyBwYXRoID0gYjMvQjNDb250cm9sVmFsdWUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEZFQzg0Q0IxQkRBQ0RBQzAwODBGRjc0IC8qIEIzRnJlcXVlbmN5
Q2xhc3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQjNGcmVxdWVu
Y3lDbGFzcy5jcHA7IHBhdGggPSBiMy9CM0ZyZXF1ZW5jeUNsYXNzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEZFQzg0Q0MxQkRBQ0RBQzAwODBGRjc0IC8qIEIzRnJlcXVlbmN5
Q2xhc3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQjNGcmVxdWVuY3lDbGFz
cy5oOyBwYXRoID0gYjMvQjNGcmVxdWVuY3lDbGFzcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRkVDODRDRDFCREFDREFDMDA4MEZGNzQgLyogQjNGcmVxdWVudGVkQmxvY2suaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQjNGcmVxdWVudGVkQmxvY2suaDsgcGF0
aCA9IGIzL0IzRnJlcXVlbnRlZEJsb2NrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC00MjI1LDYgKzQyMjQsOSBAQAogCQlEQzY5QUE2NTFDRjdBMUVGMDBDNjI3MkYgLyogTWF0Y2hS
ZXN1bHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWF0Y2hSZXN1
bHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzc5OTc4MTFDREU5RjlFMDA0
RDRBMDkgLyogVGFnUmVnaXN0ZXJzTW9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBUYWdSZWdpc3RlcnNNb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJREM3OTk3ODIxQ0RFOUY5RTAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGFnUmVnaXN0ZXJzTW9kZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlEQzlBMEMxQzFEMkQ5NEVGMDA4NTEyNEUgLyogQjNDYXNl
Q29sbGVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBCM0Nh
c2VDb2xsZWN0aW9uLmNwcDsgcGF0aCA9IGIzL0IzQ2FzZUNvbGxlY3Rpb24uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlEQzlBMEMxRDFEMkQ5NEVGMDA4NTEyNEUgLyogQjNDYXNl
Q29sbGVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCM0Nhc2VDb2xs
ZWN0aW9uLmg7IHBhdGggPSBiMy9CM0Nhc2VDb2xsZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCURDOUEwQzFFMUQyRDk0RUYwMDg1MTI0RSAvKiBCM0Nhc2VDb2xsZWN0aW9u
SW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCM0Nhc2VDb2xsZWN0
aW9uSW5saW5lcy5oOyBwYXRoID0gYjMvQjNDYXNlQ29sbGVjdGlvbklubGluZXMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRENFRTIyMDYxQ0VCOTg5MDAwMEMyMzk2IC8qIERGR0Jh
Y2t3YXJkc0NGRy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdCYWNrd2Fy
ZHNDRkcuaDsgcGF0aCA9IGRmZy9ERkdCYWNrd2FyZHNDRkcuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRENFRTIyMDcxQ0VCOTg5MDAwMEMyMzk2IC8qIERGR0JhY2t3YXJkc0RvbWlu
YXRvcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHQmFja3dhcmRzRG9t
aW5hdG9ycy5oOyBwYXRoID0gZGZnL0RGR0JhY2t3YXJkc0RvbWluYXRvcnMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRENFRTIyMDgxQ0VCOTg5MDAwMEMyMzk2IC8qIERGR0NvbnRy
b2xFcXVpdmFsZW5jZUFuYWx5c2lzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IERGR0NvbnRyb2xFcXVpdmFsZW5jZUFuYWx5c2lzLmg7IHBhdGggPSBkZmcvREZHQ29udHJvbEVx
dWl2YWxlbmNlQW5hbHlzaXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ2OTAs
NiArNDY5Miw5IEBACiAJCQkJRENGREZCRDcxRDFGNUQ5ODAwRkUzRDcyIC8qIEIzQm90dG9tUHJv
dmlkZXIuaCAqLywKIAkJCQkwRjZCOEFERTFDNEVGRTE3MDA5NjkwNTIgLyogQjNCcmVha0NyaXRp
Y2FsRWRnZXMuY3BwICovLAogCQkJCTBGNkI4QURGMUM0RUZFMTcwMDk2OTA1MiAvKiBCM0JyZWFr
Q3JpdGljYWxFZGdlcy5oICovLAorCQkJCURDOUEwQzFDMUQyRDk0RUYwMDg1MTI0RSAvKiBCM0Nh
c2VDb2xsZWN0aW9uLmNwcCAqLywKKwkJCQlEQzlBMEMxRDFEMkQ5NEVGMDA4NTEyNEUgLyogQjND
YXNlQ29sbGVjdGlvbi5oICovLAorCQkJCURDOUEwQzFFMUQyRDk0RUYwMDg1MTI0RSAvKiBCM0Nh
c2VDb2xsZWN0aW9uSW5saW5lcy5oICovLAogCQkJCTBGMzM4REY3MUJFOTZBQTgwMDEzQzg4RiAv
KiBCM0NDYWxsVmFsdWUuY3BwICovLAogCQkJCTBGMzM4REY4MUJFOTZBQTgwMDEzQzg4RiAvKiBC
M0NDYWxsVmFsdWUuaCAqLywKIAkJCQkwRjMzRkNGOTFDMTYyNUJFMDAzMjNGNjcgLyogQjNDRkcu
aCAqLywKQEAgLTQ3MTUsOCArNDcyMCw2IEBACiAJCQkJMEZFQzg1QjIxQkRFRDk1NzAwODBGRjc0
IC8qIEIzQ29uc3RQdHJWYWx1ZS5oICovLAogCQkJCTBGMzM4REYzMUJFOTNENTUwMDEzQzg4RiAv
KiBCM0NvbnN0cmFpbmVkVmFsdWUuY3BwICovLAogCQkJCTBGMzM4REY0MUJFOTNENTUwMDEzQzg4
RiAvKiBCM0NvbnN0cmFpbmVkVmFsdWUuaCAqLywKLQkJCQkwRkVDODRDOTFCREFDREFDMDA4MEZG
NzQgLyogQjNDb250cm9sVmFsdWUuY3BwICovLAotCQkJCTBGRUM4NENBMUJEQUNEQUMwMDgwRkY3
NCAvKiBCM0NvbnRyb2xWYWx1ZS5oICovLAogCQkJCTBGMzM4RTAxMUJGMDI3NkMwMDEzQzg4RiAv
KiBCM0RhdGFTZWN0aW9uLmNwcCAqLywKIAkJCQkwRjMzOEUwMjFCRjAyNzZDMDAxM0M4OEYgLyog
QjNEYXRhU2VjdGlvbi5oICovLAogCQkJCTBGMzNGQ0ZBMUMxNjI1QkUwMDMyM0Y2NyAvKiBCM0Rv
bWluYXRvcnMuaCAqLywKQEAgLTcwNjgsNyArNzA3MSw2IEBACiAJCQkJMEZFQzg1MTAxQkRBQ0RB
QzAwODBGRjc0IC8qIEIzQ29uc3Q2NFZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODUx
MjFCREFDREFDMDA4MEZGNzQgLyogQjNDb25zdERvdWJsZVZhbHVlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkVDODVCMzFCREVEOTU3MDA4MEZGNzQgLyogQjNDb25zdFB0clZhbHVlLmggaW4gSGVh
ZGVycyAqLywKLQkJCQkwRkVDODUxNDFCREFDREFDMDA4MEZGNzQgLyogQjNDb250cm9sVmFsdWUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NUMxMUJFMTY3QTAwMDgwRkY3NCAvKiBCM0VmZmVj
dHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTE2MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0Zy
ZXF1ZW5jeUNsYXNzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjYxODMyRjFDNDVCRjA3MDA3MjQ1
MEIgLyogQWlyTG93ZXJBZnRlclJlZ0FsbG9jLmggaW4gSGVhZGVycyAqLywKQEAgLTcyMjUsNiAr
NzIyNyw3IEBACiAJCQkJQkMxOEMzRkIwRTE2RjVDRDAwQjM0NDYwIC8qIERlYnVnZ2VyQ2FsbEZy
YW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQk2QUQyQ0I0RDE5QjkxNDAxMDAwNjU3MTkgLyogRGVi
dWdnZXJFdmFsRW5hYmxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkVBMDg2MjExODJCN0EwNDAw
RjZEODUxIC8qIERlYnVnZ2VyUHJpbWl0aXZlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJREM5QTBD
MUYxRDJEOUNCMTAwODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rpb25JbmxpbmVzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjJENERERTE5ODMyRDM0MDA3RDRCMTkgLyogRGVidWdnZXJTY29wZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEYxMzZENEQxNzRBRDY5RTAwNzVCMzU0IC8qIERlZmVyR0MuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGQzcxMkRGMTdDRDg3N0MwMDhDQzkzQyAvKiBEZWZlcnJlZENv
bXBpbGF0aW9uQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLApAQCAtNzQ3OCw2ICs3NDgxLDcgQEAK
IAkJCQkwRkUwRTRBRTFDMjRDOTRBMDAyRTE3QjYgLyogQWlyVG1wV2lkdGguaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE3RjI5OTZDMTdBMEJCNjcwMDEwNDE3QSAvKiBGVExGYWlsLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRkVBMEEyQzE3MEI2NjE5MDBCQjcyMkMgLyogRlRMRm9ybWF0dGVkVmFsdWUu
aCBpbiBIZWFkZXJzICovLAorCQkJCURDOUEwQzIwMUQyRDlDQjMwMDg1MTI0RSAvKiBCM0Nhc2VD
b2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkQ4QTMxQTE3RDUxRjIyMDBDQTJDNDAg
LyogRlRMRm9yT1NSRW50cnlKSVRDb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzhBOTc3RjE3
OTczOEQ1MDA5REY3NDQgLyogRlRMR2VuZXJhdGVkRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGRUEwQTBFMTcwNTEzREIwMEJCNzIyQyAvKiBGVExKSVRDb2RlLmggaW4gSGVhZGVycyAq
LywKQEAgLTg3MTEsNyArODcxNSw2IEBACiAJCQkJNDM2RTU0NTQxQzQ2OEU3NzAwQjVBRjczIC8q
IEIzTGVnYWxpemVNZW1vcnlPZmZzZXRzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRUM4NTBG
MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0NjRWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwRkVDODUxMTFCREFDREFDMDA4MEZGNzQgLyogQjNDb25zdERvdWJsZVZhbHVlLmNwcCBpbiBT
b3VyY2VzICovLAotCQkJCTBGRUM4NTEzMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnRyb2xWYWx1
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkVDODVDNTFCRTE2RjVBMDA4MEZGNzQgLyogQjNF
ZmZlY3RzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRUM4NTE1MUJEQUNEQUMwMDgwRkY3NCAv
KiBCM0ZyZXF1ZW5jeUNsYXNzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRUM4NTE4MUJEQUNE
QUMwMDgwRkY3NCAvKiBCM0dlbmVyYXRlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtOTE1Niw2ICs5
MTU5LDcgQEAKIAkJCQkxNDdGMzlEMjEwN0VDMzc2MDA0MjdBNDggLyogSlNHbG9iYWxPYmplY3Qu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVGRDAwODUxODlCMUI3RTAwNjMzMjMxIC8qIEpTR2xv
YmFsT2JqZWN0Q29uc29sZUFnZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1QzNBMUE1MThD
MDQ5MDIwMEM5NTkzQSAvKiBKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJREM5QTBDMjExRDJEOUNCNDAwODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rpb24u
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTU5NDU1OTIxODI0NzQ0NzAwQ0MzODQzIC8qIEpTR2xv
YmFsT2JqZWN0RGVidWdnYWJsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTdEMjNFOTE4OTFC
MDc3MDAzMUM3RkEgLyogSlNHbG9iYWxPYmplY3REZWJ1Z2dlckFnZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTE0RTlEMTdCMTA3RUM0NjkwMDREREEyMSAvKiBKU0dsb2JhbE9iamVjdEZ1bmN0
aW9ucy5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCShyZXZpc2lvbiAyMDI4MDkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQu
aAkod29ya2luZyBjb3B5KQpAQCAtMjg3NCw2ICsyODc0LDEyIEBAIHB1YmxpYzoKICAgICAgICAg
bG9hZDY0KGFkZHJlc3MsIGdldENhY2hlZERhdGFUZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUo
KSk7CiAgICAgICAgIG1fYXNzZW1ibGVyLmJyKGRhdGFUZW1wUmVnaXN0ZXIpOwogICAgIH0KKyAg
ICAKKyAgICB2b2lkIGp1bXAoQmFzZUluZGV4IGFkZHJlc3MpCisgICAgeworICAgICAgICBsb2Fk
NjQoYWRkcmVzcywgZ2V0Q2FjaGVkRGF0YVRlbXBSZWdpc3RlcklEQW5kSW52YWxpZGF0ZSgpKTsK
KyAgICAgICAgbV9hc3NlbWJsZXIuYnIoZGF0YVRlbXBSZWdpc3Rlcik7CisgICAgfQogCiAgICAg
dm9pZCBqdW1wKEFic29sdXRlQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2
Q29tbW9uLmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaAkod29ya2luZyBjb3B5KQpAQCAtMjI2Myw2
ICsyMjYzLDEyIEBAIHB1YmxpYzoKICAgICAgICAgbV9hc3NlbWJsZXIuam1wX20oYWRkcmVzcy5v
ZmZzZXQsIGFkZHJlc3MuYmFzZSk7CiAgICAgfQogCisgICAgLy8gQWRkcmVzcyBpcyBhIG1lbW9y
eSBsb2NhdGlvbiBjb250YWluaW5nIHRoZSBhZGRyZXNzIHRvIGp1bXAgdG8KKyAgICB2b2lkIGp1
bXAoQmFzZUluZGV4IGFkZHJlc3MpCisgICAgeworICAgICAgICBtX2Fzc2VtYmxlci5qbXBfbShh
ZGRyZXNzLm9mZnNldCwgYWRkcmVzcy5iYXNlLCBhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxl
KTsKKyAgICB9CisKIAogICAgIC8vIEFyaXRobWV0aWMgY29udHJvbCBmbG93IG9wZXJhdGlvbnM6
CiAgICAgLy8KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1i
bGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZB
c3NlbWJsZXIuaAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9YODZBc3NlbWJsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTk4Myw2ICsxOTgzLDEx
IEBAIHB1YmxpYzoKICAgICAgICAgbV9mb3JtYXR0ZXIub25lQnl0ZU9wKE9QX0dST1VQNV9Fdiwg
R1JPVVA1X09QX0pNUE4sIGJhc2UsIG9mZnNldCk7CiAgICAgfQogICAgIAorICAgIHZvaWQgam1w
X20oaW50IG9mZnNldCwgUmVnaXN0ZXJJRCBiYXNlLCBSZWdpc3RlcklEIGluZGV4LCBpbnQgc2Nh
bGUpCisgICAgeworICAgICAgICBtX2Zvcm1hdHRlci5vbmVCeXRlT3AoT1BfR1JPVVA1X0V2LCBH
Uk9VUDVfT1BfSk1QTiwgYmFzZSwgaW5kZXgsIHNjYWxlLCBvZmZzZXQpOworICAgIH0KKyAgICAK
ICNpZiAhQ1BVKFg4Nl82NCkKICAgICB2b2lkIGptcF9tKGNvbnN0IHZvaWQqIGFkZHJlc3MpCiAg
ICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5jcHAJKHJl
dmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2su
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw2IEBACiAKICNpbmNsdWRlICJCM0Jhc2lj
QmxvY2tJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrVXRpbHMuaCIKLSNpbmNsdWRl
ICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJlLmgiCiAjaW5jbHVkZSAi
QjNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlIDx3dGYvTGlzdER1bXAuaD4KQEAgLTUyLDEyICs1
MSwxNCBAQCBCYXNpY0Jsb2NrOjp+QmFzaWNCbG9jaygpCiB2b2lkIEJhc2ljQmxvY2s6OmFwcGVu
ZChWYWx1ZSogdmFsdWUpCiB7CiAgICAgbV92YWx1ZXMuYXBwZW5kKHZhbHVlKTsKKyAgICB2YWx1
ZS0+b3duZXIgPSB0aGlzOwogfQogCiB2b2lkIEJhc2ljQmxvY2s6OmFwcGVuZE5vblRlcm1pbmFs
KFZhbHVlKiB2YWx1ZSkKIHsKICAgICBtX3ZhbHVlcy5hcHBlbmQobV92YWx1ZXMubGFzdCgpKTsK
ICAgICBtX3ZhbHVlc1ttX3ZhbHVlcy5zaXplKCkgLSAxXSA9IHZhbHVlOworICAgIHZhbHVlLT5v
d25lciA9IHRoaXM7CiB9CiAKIHZvaWQgQmFzaWNCbG9jazo6cmVtb3ZlTGFzdChQcm9jZWR1cmUm
IHByb2MpCkBAIC04NCw5ICs4NSw0MSBAQCBWYWx1ZSogQmFzaWNCbG9jazo6YXBwZW5kSW50Q29u
c3RhbnQoUHJvCiAgICAgcmV0dXJuIGFwcGVuZEludENvbnN0YW50KHByb2MsIGxpa2VWYWx1ZS0+
b3JpZ2luKCksIGxpa2VWYWx1ZS0+dHlwZSgpLCB2YWx1ZSk7CiB9CiAKK3ZvaWQgQmFzaWNCbG9j
azo6Y2xlYXJTdWNjZXNzb3JzKCkKK3sKKyAgICBtX3N1Y2Nlc3NvcnMuY2xlYXIoKTsKK30KKwor
dm9pZCBCYXNpY0Jsb2NrOjphcHBlbmRTdWNjZXNzb3IoY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0
YXJnZXQpCit7CisgICAgbV9zdWNjZXNzb3JzLmFwcGVuZCh0YXJnZXQpOworfQorCit2b2lkIEJh
c2ljQmxvY2s6OnNldFN1Y2Nlc3NvcnMoY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YXJnZXQpCit7
CisgICAgbV9zdWNjZXNzb3JzLnJlc2l6ZSgxKTsKKyAgICBtX3N1Y2Nlc3NvcnNbMF0gPSB0YXJn
ZXQ7Cit9CisKK3ZvaWQgQmFzaWNCbG9jazo6c2V0U3VjY2Vzc29ycyhjb25zdCBGcmVxdWVudGVk
QmxvY2smIHRha2VuLCBjb25zdCBGcmVxdWVudGVkQmxvY2smIG5vdFRha2VuKQoreworICAgIG1f
c3VjY2Vzc29ycy5yZXNpemUoMik7CisgICAgbV9zdWNjZXNzb3JzWzBdID0gdGFrZW47CisgICAg
bV9zdWNjZXNzb3JzWzFdID0gbm90VGFrZW47Cit9CisKIGJvb2wgQmFzaWNCbG9jazo6cmVwbGFj
ZVN1Y2Nlc3NvcihCYXNpY0Jsb2NrKiBmcm9tLCBCYXNpY0Jsb2NrKiB0bykKIHsKLSAgICByZXR1
cm4gbGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCktPnJlcGxhY2VTdWNjZXNzb3IoZnJvbSwgdG8p
OworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgZm9yIChCYXNpY0Jsb2NrKiYgc3VjY2Vz
c29yIDogc3VjY2Vzc29yQmxvY2tzKCkpIHsKKyAgICAgICAgaWYgKHN1Y2Nlc3NvciA9PSBmcm9t
KSB7CisgICAgICAgICAgICBzdWNjZXNzb3IgPSB0bzsKKyAgICAgICAgICAgIHJlc3VsdCA9IHRy
dWU7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIEtlZXAgbG9vcGluZyBiZWNhdXNlIGEg
c3VjY2Vzc29yIG1heSBiZSBtZW50aW9uZWQgbXVsdGlwbGUgdGltZXMsIGxpa2UgaW4gYSBTd2l0
Y2guCisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogYm9vbCBCYXNp
Y0Jsb2NrOjphZGRQcmVkZWNlc3NvcihCYXNpY0Jsb2NrKiBibG9jaykKQEAgLTEyMSw2ICsxNTQs
NDIgQEAgdm9pZCBCYXNpY0Jsb2NrOjpkZWVwRHVtcChjb25zdCBQcm9jZWR1cgogICAgICAgICBv
dXQucHJpbnQoIiAgUHJlZGVjZXNzb3JzOiAiLCBwb2ludGVyTGlzdER1bXAocHJlZGVjZXNzb3Jz
KCkpLCAiXG4iKTsKICAgICBmb3IgKFZhbHVlKiB2YWx1ZSA6ICp0aGlzKQogICAgICAgICBvdXQu
cHJpbnQoIiAgICAiLCBCMzo6ZGVlcER1bXAocHJvYywgdmFsdWUpLCAiXG4iKTsKKyAgICBpZiAo
c3VjY2Vzc29ycygpLnNpemUoKSkgeworICAgICAgICBvdXQucHJpbnQoIiAgU3VjY2Vzc29yczog
Iik7CisgICAgICAgIGlmIChzaXplKCkpCisgICAgICAgICAgICBsYXN0KCktPmR1bXBTdWNjZXNz
b3JzKHRoaXMsIG91dCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG91dC5wcmludChsaXN0
RHVtcChzdWNjZXNzb3JzKCkpKTsKKyAgICAgICAgb3V0LnByaW50KCJcbiIpOworICAgIH0KK30K
KworVmFsdWUqIEJhc2ljQmxvY2s6OmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShQcm9jZWR1cmUmIHBy
b2MsIE9wY29kZSBvcGNvZGUsIE9yaWdpbiBvcmlnaW4pCit7CisgICAgUkVMRUFTRV9BU1NFUlQo
b3Bjb2RlID09IE9vcHMpOworICAgIGNsZWFyU3VjY2Vzc29ycygpOworICAgIHJldHVybiBhcHBl
bmROZXc8VmFsdWU+KHByb2MsIG9wY29kZSwgb3JpZ2luKTsKK30KKworVmFsdWUqIEJhc2ljQmxv
Y2s6OmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShQcm9jZWR1cmUmIHByb2MsIE9wY29kZSBvcGNvZGUs
IE9yaWdpbiBvcmlnaW4sIFZhbHVlKiB2YWx1ZSkKK3sKKyAgICBSRUxFQVNFX0FTU0VSVChvcGNv
ZGUgPT0gUmV0dXJuKTsKKyAgICBjbGVhclN1Y2Nlc3NvcnMoKTsKKyAgICByZXR1cm4gYXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBvcGNvZGUsIG9yaWdpbiwgdmFsdWUpOworfQorCitWYWx1ZSogQmFz
aWNCbG9jazo6YXBwZW5kTmV3Q29udHJvbFZhbHVlKFByb2NlZHVyZSYgcHJvYywgT3Bjb2RlIG9w
Y29kZSwgT3JpZ2luIG9yaWdpbiwgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YXJnZXQpCit7Cisg
ICAgUkVMRUFTRV9BU1NFUlQob3Bjb2RlID09IEp1bXApOworICAgIHNldFN1Y2Nlc3NvcnModGFy
Z2V0KTsKKyAgICByZXR1cm4gYXBwZW5kTmV3PFZhbHVlPihwcm9jLCBvcGNvZGUsIG9yaWdpbik7
Cit9CisKK1ZhbHVlKiBCYXNpY0Jsb2NrOjphcHBlbmROZXdDb250cm9sVmFsdWUoUHJvY2VkdXJl
JiBwcm9jLCBPcGNvZGUgb3Bjb2RlLCBPcmlnaW4gb3JpZ2luLCBWYWx1ZSogcHJlZGljYXRlLCBj
b25zdCBGcmVxdWVudGVkQmxvY2smIHRha2VuLCBjb25zdCBGcmVxdWVudGVkQmxvY2smIG5vdFRh
a2VuKQoreworICAgIFJFTEVBU0VfQVNTRVJUKG9wY29kZSA9PSBCcmFuY2gpOworICAgIHNldFN1
Y2Nlc3NvcnModGFrZW4sIG5vdFRha2VuKTsKKyAgICByZXR1cm4gYXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBvcGNvZGUsIG9yaWdpbiwgcHJlZGljYXRlKTsKIH0KIAogfSB9IC8vIG5hbWVzcGFjZSBK
U0M6OkIzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5oCShyZXZp
c2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoQjNfSklUKQogCiAj
aW5jbHVkZSAiQjNGcmVxdWVudGVkQmxvY2suaCIKKyNpbmNsdWRlICJCM09wY29kZS5oIgogI2lu
Y2x1ZGUgIkIzT3JpZ2luLmgiCiAjaW5jbHVkZSAiQjNTdWNjZXNzb3JDb2xsZWN0aW9uLmgiCiAj
aW5jbHVkZSAiQjNUeXBlLmgiCkBAIC00Nyw3ICs0OCw3IEBAIGNsYXNzIEJhc2ljQmxvY2sgewog
cHVibGljOgogICAgIHR5cGVkZWYgVmVjdG9yPFZhbHVlKj4gVmFsdWVMaXN0OwogICAgIHR5cGVk
ZWYgVmVjdG9yPEJhc2ljQmxvY2sqLCAyPiBQcmVkZWNlc3Nvckxpc3Q7Ci0gICAgdHlwZWRlZiBW
ZWN0b3I8RnJlcXVlbnRlZEJsb2NrLCAyPiBTdWNjZXNzb3JMaXN0OyAvLyBUaGlzIG1hdGNoZXMg
Q29udHJvbFZhbHVlOjpTdWNjZXNzb3JMaXN0CisgICAgdHlwZWRlZiBWZWN0b3I8RnJlcXVlbnRl
ZEJsb2NrLCAyPiBTdWNjZXNzb3JMaXN0OwogCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0
IGR1bXBQcmVmaXg7CiAKQEAgLTc4LDcgKzc5LDcgQEAgcHVibGljOgogICAgIFZhbHVlVHlwZSog
YXBwZW5kTmV3KFByb2NlZHVyZSYsIEFyZ3VtZW50cy4uLik7CiAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgVmFsdWVUeXBlLCB0eXBlbmFtZS4uLiBBcmd1bWVudHM+CiAgICAgVmFsdWVUeXBlKiBhcHBl
bmROZXdOb25UZXJtaW5hbChQcm9jZWR1cmUmLCBBcmd1bWVudHMuLi4pOwotCisgICAgCiAgICAg
SlNfRVhQT1JUX1BSSVZBVEUgVmFsdWUqIGFwcGVuZEludENvbnN0YW50KFByb2NlZHVyZSYsIE9y
aWdpbiwgVHlwZSwgaW50NjRfdCB2YWx1ZSk7CiAgICAgVmFsdWUqIGFwcGVuZEludENvbnN0YW50
KFByb2NlZHVyZSYsIFZhbHVlKiBsaWtlVmFsdWUsIGludDY0X3QgdmFsdWUpOwogCkBAIC04Nywx
OCArODgsMzkgQEAgcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlw
ZW5hbWUuLi4gQXJndW1lbnRzPgogICAgIFZhbHVlVHlwZSogcmVwbGFjZUxhc3RXaXRoTmV3KFBy
b2NlZHVyZSYsIEFyZ3VtZW50cy4uLik7CiAKLSAgICB1bnNpZ25lZCBudW1TdWNjZXNzb3JzKCkg
Y29uc3Q7Ci0gICAgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBzdWNjZXNzb3IodW5zaWduZWQgaW5k
ZXgpIGNvbnN0OwotICAgIEZyZXF1ZW50ZWRCbG9jayYgc3VjY2Vzc29yKHVuc2lnbmVkIGluZGV4
KTsKLSAgICBjb25zdCBTdWNjZXNzb3JMaXN0JiBzdWNjZXNzb3JzKCkgY29uc3Q7Ci0gICAgU3Vj
Y2Vzc29yTGlzdCYgc3VjY2Vzc29ycygpOwotCi0gICAgQmFzaWNCbG9jayogc3VjY2Vzc29yQmxv
Y2sodW5zaWduZWQgaW5kZXgpIGNvbnN0OwotICAgIEJhc2ljQmxvY2sqJiBzdWNjZXNzb3JCbG9j
ayh1bnNpZ25lZCBpbmRleCk7Ci0gICAgU3VjY2Vzc29yQ29sbGVjdGlvbjxCYXNpY0Jsb2NrLCBT
dWNjZXNzb3JMaXN0PiBzdWNjZXNzb3JCbG9ja3MoKTsKLSAgICBTdWNjZXNzb3JDb2xsZWN0aW9u
PGNvbnN0IEJhc2ljQmxvY2ssIGNvbnN0IFN1Y2Nlc3Nvckxpc3Q+IHN1Y2Nlc3NvckJsb2Nrcygp
IGNvbnN0OworICAgIHVuc2lnbmVkIG51bVN1Y2Nlc3NvcnMoKSBjb25zdCB7IHJldHVybiBtX3N1
Y2Nlc3NvcnMuc2l6ZSgpOyB9CisgICAgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBzdWNjZXNzb3Io
dW5zaWduZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fc3VjY2Vzc29yc1tpbmRleF07IH0KKyAg
ICBGcmVxdWVudGVkQmxvY2smIHN1Y2Nlc3Nvcih1bnNpZ25lZCBpbmRleCkgeyByZXR1cm4gbV9z
dWNjZXNzb3JzW2luZGV4XTsgfQorICAgIGNvbnN0IFN1Y2Nlc3Nvckxpc3QmIHN1Y2Nlc3NvcnMo
KSBjb25zdCB7IHJldHVybiBtX3N1Y2Nlc3NvcnM7IH0KKyAgICBTdWNjZXNzb3JMaXN0JiBzdWNj
ZXNzb3JzKCkgeyByZXR1cm4gbV9zdWNjZXNzb3JzOyB9CisgICAgCisgICAgdm9pZCBjbGVhclN1
Y2Nlc3NvcnMoKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIGFwcGVuZFN1Y2Nlc3Nvcihj
b25zdCBGcmVxdWVudGVkQmxvY2smKTsKKyAgICB2b2lkIHNldFN1Y2Nlc3NvcnMoY29uc3QgRnJl
cXVlbnRlZEJsb2NrJik7CisgICAgdm9pZCBzZXRTdWNjZXNzb3JzKGNvbnN0IEZyZXF1ZW50ZWRC
bG9jayYsIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYpOworCisgICAgQmFzaWNCbG9jayogc3VjY2Vz
c29yQmxvY2sodW5zaWduZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIHN1Y2Nlc3NvcihpbmRleCku
YmxvY2soKTsgfQorICAgIEJhc2ljQmxvY2sqJiBzdWNjZXNzb3JCbG9jayh1bnNpZ25lZCBpbmRl
eCkgeyByZXR1cm4gc3VjY2Vzc29yKGluZGV4KS5ibG9jaygpOyB9CisgICAgU3VjY2Vzc29yQ29s
bGVjdGlvbjxCYXNpY0Jsb2NrLCBTdWNjZXNzb3JMaXN0PiBzdWNjZXNzb3JCbG9ja3MoKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIFN1Y2Nlc3NvckNvbGxlY3Rpb248QmFzaWNCbG9jaywgU3VjY2Vz
c29yTGlzdD4oc3VjY2Vzc29ycygpKTsKKyAgICB9CisgICAgU3VjY2Vzc29yQ29sbGVjdGlvbjxj
b25zdCBCYXNpY0Jsb2NrLCBjb25zdCBTdWNjZXNzb3JMaXN0PiBzdWNjZXNzb3JCbG9ja3MoKSBj
b25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIFN1Y2Nlc3NvckNvbGxlY3Rpb248Y29uc3QgQmFz
aWNCbG9jaywgY29uc3QgU3VjY2Vzc29yTGlzdD4oc3VjY2Vzc29ycygpKTsKKyAgICB9CiAKICAg
ICBib29sIHJlcGxhY2VTdWNjZXNzb3IoQmFzaWNCbG9jayogZnJvbSwgQmFzaWNCbG9jayogdG8p
OworICAgIAorICAgIC8vIFRoaXMgaXMgb25seSB2YWxpZCBmb3IgSnVtcCBhbmQgQnJhbmNoLgor
ICAgIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgdGFrZW4oKSBjb25zdDsKKyAgICBGcmVxdWVudGVk
QmxvY2smIHRha2VuKCk7CisgICAgLy8gVGhpcyBpcyBvbmx5IHZhbGlkIGZvciBCcmFuY2guCisg
ICAgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBub3RUYWtlbigpIGNvbnN0OworICAgIEZyZXF1ZW50
ZWRCbG9jayYgbm90VGFrZW4oKTsKKyAgICAvLyBUaGlzIGlzIG9ubHkgdmFsaWQgZm9yIEJyYW5j
aCBhbmQgU3dpdGNoLgorICAgIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgZmFsbFRocm91Z2goKSBj
b25zdDsKKyAgICBGcmVxdWVudGVkQmxvY2smIGZhbGxUaHJvdWdoKCk7CiAKICAgICB1bnNpZ25l
ZCBudW1QcmVkZWNlc3NvcnMoKSBjb25zdCB7IHJldHVybiBtX3ByZWRlY2Vzc29ycy5zaXplKCk7
IH0KICAgICBCYXNpY0Jsb2NrKiBwcmVkZWNlc3Nvcih1bnNpZ25lZCBpbmRleCkgY29uc3QgeyBy
ZXR1cm4gbV9wcmVkZWNlc3NvcnNbaW5kZXhdOyB9CkBAIC0xMTUsMTAgKzEzNywyMyBAQCBwdWJs
aWM6CiAgICAgdm9pZCB1cGRhdGVQcmVkZWNlc3NvcnNBZnRlcigpOwogCiAgICAgZG91YmxlIGZy
ZXF1ZW5jeSgpIGNvbnN0IHsgcmV0dXJuIG1fZnJlcXVlbmN5OyB9Ci0KKyAgICAKICAgICB2b2lk
IGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKICAgICB2b2lkIGRlZXBEdW1wKGNvbnN0IFByb2Nl
ZHVyZSYsIFByaW50U3RyZWFtJikgY29uc3Q7CiAKKyAgICAvLyBUaGVzZSBhcmUgZGVwcmVjYXRl
ZCBtZXRob2QgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCB0aGUgb2xkIENvbnRyb2xWYWx1ZSBjbGFz
cy4gRG9uJ3QgdXNlIHRoZW0KKyAgICAvLyBpbiBuZXcgY29kZS4KKyAgICAvLyBGSVhNRTogaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTQ0MAorICAgIAorICAgIC8v
IFVzZSB0aGlzIGZvciBPb3BzLgorICAgIEpTX0VYUE9SVF9QUklWQVRFIFZhbHVlKiBhcHBlbmRO
ZXdDb250cm9sVmFsdWUoUHJvY2VkdXJlJiwgT3Bjb2RlLCBPcmlnaW4pOworICAgIC8vIFVzZSB0
aGlzIGZvciBSZXR1cm4uCisgICAgSlNfRVhQT1JUX1BSSVZBVEUgVmFsdWUqIGFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShQcm9jZWR1cmUmLCBPcGNvZGUsIE9yaWdpbiwgVmFsdWUqKTsKKyAgICAvLyBV
c2UgdGhpcyBmb3IgSnVtcC4KKyAgICBKU19FWFBPUlRfUFJJVkFURSBWYWx1ZSogYXBwZW5kTmV3
Q29udHJvbFZhbHVlKFByb2NlZHVyZSYsIE9wY29kZSwgT3JpZ2luLCBjb25zdCBGcmVxdWVudGVk
QmxvY2smKTsKKyAgICAvLyBVc2UgdGhpcyBmb3IgQnJhbmNoLgorICAgIEpTX0VYUE9SVF9QUklW
QVRFIFZhbHVlKiBhcHBlbmROZXdDb250cm9sVmFsdWUoUHJvY2VkdXJlJiwgT3Bjb2RlLCBPcmln
aW4sIFZhbHVlKiwgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiwgY29uc3QgRnJlcXVlbnRlZEJsb2Nr
Jik7CisgICAgCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBCbG9ja0luc2VydGlvblNldDsK
ICAgICBmcmllbmQgY2xhc3MgSW5zZXJ0aW9uU2V0OwpAQCAtMTMwLDYgKzE2NSw3IEBAIHByaXZh
dGU6CiAgICAgdW5zaWduZWQgbV9pbmRleDsKICAgICBWYWx1ZUxpc3QgbV92YWx1ZXM7CiAgICAg
UHJlZGVjZXNzb3JMaXN0IG1fcHJlZGVjZXNzb3JzOworICAgIFN1Y2Nlc3Nvckxpc3QgbV9zdWNj
ZXNzb3JzOwogICAgIGRvdWJsZSBtX2ZyZXF1ZW5jeTsKIH07CiAKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2tJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9ja0lubGluZXMuaAkocmV2aXNpb24gMjAyODA5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9ja0lubGluZXMuaAkod29y
a2luZyBjb3B5KQpAQCAtMjksOCArMjksOCBAQAogI2lmIEVOQUJMRShCM19KSVQpCiAKICNpbmNs
dWRlICJCM0Jhc2ljQmxvY2suaCIKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1
ZGUgIkIzUHJvY2VkdXJlSW5saW5lcy5oIgorI2luY2x1ZGUgIkIzVmFsdWUuaCIKIAogbmFtZXNw
YWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKQEAgLTU4LDQ5ICs1OCw0MCBAQCBWYWx1ZVR5cGUq
IEJhc2ljQmxvY2s6OnJlcGxhY2VMYXN0V2l0aE5lCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAot
aW5saW5lIHVuc2lnbmVkIEJhc2ljQmxvY2s6Om51bVN1Y2Nlc3NvcnMoKSBjb25zdAoraW5saW5l
IGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgQmFzaWNCbG9jazo6dGFrZW4oKSBjb25zdAogewotICAg
IHJldHVybiBsYXN0KCktPmFzPENvbnRyb2xWYWx1ZT4oKS0+bnVtU3VjY2Vzc29ycygpOworICAg
IEFTU0VSVChsYXN0KCktPm9wY29kZSgpID09IEp1bXAgfHwgbGFzdCgpLT5vcGNvZGUoKSA9PSBC
cmFuY2gpOworICAgIHJldHVybiBtX3N1Y2Nlc3NvcnNbMF07CiB9CiAKLWlubGluZSBjb25zdCBG
cmVxdWVudGVkQmxvY2smIEJhc2ljQmxvY2s6OnN1Y2Nlc3Nvcih1bnNpZ25lZCBpbmRleCkgY29u
c3QKK2lubGluZSBGcmVxdWVudGVkQmxvY2smIEJhc2ljQmxvY2s6OnRha2VuKCkKIHsKLSAgICBy
ZXR1cm4gbGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCktPnN1Y2Nlc3NvcihpbmRleCk7CisgICAg
QVNTRVJUKGxhc3QoKS0+b3Bjb2RlKCkgPT0gSnVtcCB8fCBsYXN0KCktPm9wY29kZSgpID09IEJy
YW5jaCk7CisgICAgcmV0dXJuIG1fc3VjY2Vzc29yc1swXTsKIH0KIAotaW5saW5lIEZyZXF1ZW50
ZWRCbG9jayYgQmFzaWNCbG9jazo6c3VjY2Vzc29yKHVuc2lnbmVkIGluZGV4KQoraW5saW5lIGNv
bnN0IEZyZXF1ZW50ZWRCbG9jayYgQmFzaWNCbG9jazo6bm90VGFrZW4oKSBjb25zdAogewotICAg
IHJldHVybiBsYXN0KCktPmFzPENvbnRyb2xWYWx1ZT4oKS0+c3VjY2Vzc29yKGluZGV4KTsKKyAg
ICBBU1NFUlQobGFzdCgpLT5vcGNvZGUoKSA9PSBCcmFuY2gpOworICAgIHJldHVybiBtX3N1Y2Nl
c3NvcnNbMV07CiB9CiAKLWlubGluZSBjb25zdCBCYXNpY0Jsb2NrOjpTdWNjZXNzb3JMaXN0JiBC
YXNpY0Jsb2NrOjpzdWNjZXNzb3JzKCkgY29uc3QKK2lubGluZSBGcmVxdWVudGVkQmxvY2smIEJh
c2ljQmxvY2s6Om5vdFRha2VuKCkKIHsKLSAgICByZXR1cm4gbGFzdCgpLT5hczxDb250cm9sVmFs
dWU+KCktPnN1Y2Nlc3NvcnMoKTsKKyAgICBBU1NFUlQobGFzdCgpLT5vcGNvZGUoKSA9PSBCcmFu
Y2gpOworICAgIHJldHVybiBtX3N1Y2Nlc3NvcnNbMV07CiB9CiAKLWlubGluZSBCYXNpY0Jsb2Nr
OjpTdWNjZXNzb3JMaXN0JiBCYXNpY0Jsb2NrOjpzdWNjZXNzb3JzKCkKK2lubGluZSBjb25zdCBG
cmVxdWVudGVkQmxvY2smIEJhc2ljQmxvY2s6OmZhbGxUaHJvdWdoKCkgY29uc3QKIHsKLSAgICBy
ZXR1cm4gbGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCktPnN1Y2Nlc3NvcnMoKTsKKyAgICBBU1NF
UlQobGFzdCgpLT5vcGNvZGUoKSA9PSBCcmFuY2ggfHwgbGFzdCgpLT5vcGNvZGUoKSA9PSBTd2l0
Y2gpOworICAgIHJldHVybiBtX3N1Y2Nlc3NvcnMubGFzdCgpOwogfQogCi1pbmxpbmUgQmFzaWNC
bG9jayogQmFzaWNCbG9jazo6c3VjY2Vzc29yQmxvY2sodW5zaWduZWQgaW5kZXgpIGNvbnN0Citp
bmxpbmUgRnJlcXVlbnRlZEJsb2NrJiBCYXNpY0Jsb2NrOjpmYWxsVGhyb3VnaCgpCiB7Ci0gICAg
cmV0dXJuIHN1Y2Nlc3NvcihpbmRleCkuYmxvY2soKTsKLX0KLQotaW5saW5lIEJhc2ljQmxvY2sq
JiBCYXNpY0Jsb2NrOjpzdWNjZXNzb3JCbG9jayh1bnNpZ25lZCBpbmRleCkKLXsKLSAgICByZXR1
cm4gc3VjY2Vzc29yKGluZGV4KS5ibG9jaygpOwotfQotCi1pbmxpbmUgU3VjY2Vzc29yQ29sbGVj
dGlvbjxCYXNpY0Jsb2NrLCBCYXNpY0Jsb2NrOjpTdWNjZXNzb3JMaXN0PiBCYXNpY0Jsb2NrOjpz
dWNjZXNzb3JCbG9ja3MoKQotewotICAgIHJldHVybiBTdWNjZXNzb3JDb2xsZWN0aW9uPEJhc2lj
QmxvY2ssIFN1Y2Nlc3Nvckxpc3Q+KHN1Y2Nlc3NvcnMoKSk7Ci19Ci0KLWlubGluZSBTdWNjZXNz
b3JDb2xsZWN0aW9uPGNvbnN0IEJhc2ljQmxvY2ssIGNvbnN0IEJhc2ljQmxvY2s6OlN1Y2Nlc3Nv
ckxpc3Q+IEJhc2ljQmxvY2s6OnN1Y2Nlc3NvckJsb2NrcygpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IFN1Y2Nlc3NvckNvbGxlY3Rpb248Y29uc3QgQmFzaWNCbG9jaywgY29uc3QgU3VjY2Vzc29yTGlz
dD4oc3VjY2Vzc29ycygpKTsKKyAgICBBU1NFUlQobGFzdCgpLT5vcGNvZGUoKSA9PSBCcmFuY2gg
fHwgbGFzdCgpLT5vcGNvZGUoKSA9PSBTd2l0Y2gpOworICAgIHJldHVybiBtX3N1Y2Nlc3NvcnMu
bGFzdCgpOwogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0Jsb2NrSW5zZXJ0aW9uU2V0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCbG9ja0luc2VydGlvblNldC5jcHAJKHJldmlzaW9uIDIw
MjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jsb2NrSW5zZXJ0aW9uU2V0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNzgsOCArNzgsOCBAQCBCYXNpY0Jsb2NrKiBCbG9ja0luc2Vy
dGlvblNldDo6c3BsaXRGb3J3CiAgICAgICAgIHJlc3VsdC0+bV92YWx1ZXNbaV0gPSBibG9jay0+
bV92YWx1ZXNbaV07CiAKICAgICAvLyBNYWtlIHRoZSBuZXcgYmxvY2sganVtcCB0byAnYmxvY2sn
LgotICAgIHJlc3VsdC0+bV92YWx1ZXNbdmFsdWVJbmRleF0gPQotICAgICAgICBtX3Byb2MuYWRk
PENvbnRyb2xWYWx1ZT4oSnVtcCwgdmFsdWUtPm9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soYmxv
Y2spKTsKKyAgICByZXN1bHQtPm1fdmFsdWVzW3ZhbHVlSW5kZXhdID0gbV9wcm9jLmFkZDxWYWx1
ZT4oSnVtcCwgdmFsdWUtPm9yaWdpbigpKTsKKyAgICByZXN1bHQtPnNldFN1Y2Nlc3NvcnMoRnJl
cXVlbnRlZEJsb2NrKGJsb2NrKSk7CiAKICAgICAvLyBJZiB3ZSBoYWQgaW5zZXJ0ZWQgdGhpbmdz
IGludG8gJ2Jsb2NrJyBiZWZvcmUgdGhpcywgZXhlY3V0ZSB0aG9zZSBpbnNlcnRpb25zIG5vdy4K
ICAgICBpZiAoaW5zZXJ0aW9uU2V0KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
QnJlYWtDcml0aWNhbEVkZ2VzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNCcmVha0NyaXRpY2FsRWRnZXMuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCcmVha0NyaXRpY2FsRWRnZXMuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zMCw3ICszMCw2IEBACiAKICNpbmNsdWRlICJCM0Jhc2ljQmxvY2tJbmxpbmVzLmgi
CiAjaW5jbHVkZSAiQjNCbG9ja0luc2VydGlvblNldC5oIgotI2luY2x1ZGUgIkIzQ29udHJvbFZh
bHVlLmgiCiAjaW5jbHVkZSAiQjNQcm9jZWR1cmVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNWYWx1
ZUlubGluZXMuaCIKIApAQCAtNTAsOCArNDksOCBAQCB2b2lkIGJyZWFrQ3JpdGljYWxFZGdlcyhQ
cm9jZWR1cmUmIHByb2MpCiAKICAgICAgICAgICAgIEJhc2ljQmxvY2sqIHBhZCA9CiAgICAgICAg
ICAgICAgICAgaW5zZXJ0aW9uU2V0Lmluc2VydEJlZm9yZShzdWNjZXNzb3IsIHN1Y2Nlc3Nvci0+
ZnJlcXVlbmN5KCkpOwotICAgICAgICAgICAgcGFkLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
LSAgICAgICAgICAgICAgICBwcm9jLCBKdW1wLCBzdWNjZXNzb3ItPmF0KDApLT5vcmlnaW4oKSwg
RnJlcXVlbnRlZEJsb2NrKHN1Y2Nlc3NvcikpOworICAgICAgICAgICAgcGFkLT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEp1bXAsIHN1Y2Nlc3Nvci0+YXQoMCktPm9yaWdpbigpKTsKKyAgICAgICAg
ICAgIHBhZC0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2soc3VjY2Vzc29yKSk7CiAgICAg
ICAgICAgICBwYWQtPmFkZFByZWRlY2Vzc29yKGJsb2NrKTsKICAgICAgICAgICAgIHN1Y2Nlc3Nv
ci0+cmVwbGFjZVByZWRlY2Vzc29yKGJsb2NrLCBwYWQpOwogICAgICAgICAgICAgc3VjY2Vzc29y
ID0gcGFkOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2FzZUNvbGxlY3Rpb24u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nhc2VDb2xsZWN0
aW9uLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nhc2VD
b2xsZWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJCM0Nhc2VDb2xsZWN0aW9uLmgiCisKKyNpZiBFTkFCTEUoQjNfSklUKQorCisj
aW5jbHVkZSAiQjNCYXNpY0Jsb2NrSW5saW5lcy5oIgorI2luY2x1ZGUgIkIzQ2FzZUNvbGxlY3Rp
b25JbmxpbmVzLmgiCisjaW5jbHVkZSA8d3RmL0NvbW1hUHJpbnRlci5oPgorCituYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIEIzIHsKKwordm9pZCBDYXNlQ29sbGVjdGlvbjo6ZHVtcChQcmludFN0
cmVhbSYgb3V0KSBjb25zdAoreworICAgIENvbW1hUHJpbnRlciBjb21tYTsKKyAgICBmb3IgKFN3
aXRjaENhc2Ugc3dpdGNoQ2FzZSA6ICp0aGlzKQorICAgICAgICBvdXQucHJpbnQoY29tbWEsIHN3
aXRjaENhc2UpOworICAgIG91dC5wcmludChjb21tYSwgImRlZmF1bHQtPiIsIGZhbGxUaHJvdWdo
KCkpOworfQorCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKKworI2VuZGlmIC8vIEVOQUJMRShC
M19KSVQpCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nhc2VDb2xsZWN0aW9u
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2FzZUNvbGxlY3Rp
b24uaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nhc2VDb2xs
ZWN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMjAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBCM0Nhc2VDb2xsZWN0aW9u
X2gKKyNkZWZpbmUgQjNDYXNlQ29sbGVjdGlvbl9oCisKKyNpZiBFTkFCTEUoQjNfSklUKQorCisj
aW5jbHVkZSAiQjNTd2l0Y2hDYXNlLmgiCisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMg
eworCitjbGFzcyBCYXNpY0Jsb2NrOworY2xhc3MgU3dpdGNoVmFsdWU7CisKKy8vIE5PVEU6IFlv
dSdsbCBhbHdheXMgd2FudCB0byBpbmNsdWRlIEIzQ2FzZUNvbGxlY3Rpb25JbmxpbmVzLmggd2hl
biB5b3UgdXNlIHRoaXMuCisKK2NsYXNzIENhc2VDb2xsZWN0aW9uIHsKK3B1YmxpYzoKKyAgICBD
YXNlQ29sbGVjdGlvbigpCisgICAgeworICAgIH0KKyAgICAKKyAgICBDYXNlQ29sbGVjdGlvbihj
b25zdCBTd2l0Y2hWYWx1ZSogdGVybWluYWwsIGNvbnN0IEJhc2ljQmxvY2sqIG93bmVyKQorICAg
ICAgICA6IG1fc3dpdGNoKHRlcm1pbmFsKQorICAgICAgICAsIG1fb3duZXIob3duZXIpCisgICAg
eworICAgIH0KKyAgICAKKyAgICBjb25zdCBGcmVxdWVudGVkQmxvY2smIGZhbGxUaHJvdWdoKCkg
Y29uc3Q7CisKKyAgICB1bnNpZ25lZCBzaXplKCkgY29uc3Q7CisgICAgU3dpdGNoQ2FzZSBhdCh1
bnNpZ25lZCBpbmRleCkgY29uc3Q7CisgICAgCisgICAgU3dpdGNoQ2FzZSBvcGVyYXRvcltdKHVu
c2lnbmVkIGluZGV4KSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGF0KGluZGV4KTsKKyAg
ICB9CisKKyAgICBjbGFzcyBpdGVyYXRvciB7CisgICAgcHVibGljOgorICAgICAgICBpdGVyYXRv
cigpCisgICAgICAgICAgICA6IG1fY29sbGVjdGlvbihudWxscHRyKQorICAgICAgICAgICAgLCBt
X2luZGV4KDApCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIGl0ZXJhdG9yKGNvbnN0
IENhc2VDb2xsZWN0aW9uJiBjb2xsZWN0aW9uLCB1bnNpZ25lZCBpbmRleCkKKyAgICAgICAgICAg
IDogbV9jb2xsZWN0aW9uKCZjb2xsZWN0aW9uKQorICAgICAgICAgICAgLCBtX2luZGV4KGluZGV4
KQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBTd2l0Y2hDYXNlIG9wZXJhdG9yKigp
CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtX2NvbGxlY3Rpb24tPmF0KG1faW5kZXgp
OworICAgICAgICB9CisKKyAgICAgICAgaXRlcmF0b3ImIG9wZXJhdG9yKysoKQorICAgICAgICB7
CisgICAgICAgICAgICBtX2luZGV4Kys7CisgICAgICAgICAgICByZXR1cm4gKnRoaXM7CisgICAg
ICAgIH0KKworICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgaXRlcmF0b3ImIG90aGVyKSBj
b25zdAorICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQobV9jb2xsZWN0aW9uID09IG90aGVy
Lm1fY29sbGVjdGlvbik7CisgICAgICAgICAgICByZXR1cm4gbV9pbmRleCA9PSBvdGhlci5tX2lu
ZGV4OworICAgICAgICB9CisKKyAgICAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IGl0ZXJhdG9y
JiBvdGhlcikgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuICEoKnRoaXMgPT0g
b3RoZXIpOworICAgICAgICB9CisKKyAgICBwcml2YXRlOgorICAgICAgICBjb25zdCBDYXNlQ29s
bGVjdGlvbiogbV9jb2xsZWN0aW9uOworICAgICAgICB1bnNpZ25lZCBtX2luZGV4OworICAgIH07
CisKKyAgICB0eXBlZGVmIGl0ZXJhdG9yIGNvbnN0X2l0ZXJhdG9yOworCisgICAgaXRlcmF0b3Ig
YmVnaW4oKSBjb25zdCB7IHJldHVybiBpdGVyYXRvcigqdGhpcywgMCk7IH0KKyAgICBpdGVyYXRv
ciBlbmQoKSBjb25zdCB7IHJldHVybiBpdGVyYXRvcigqdGhpcywgc2l6ZSgpKTsgfQorICAgIAor
ICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0OworICAgIAorcHJpdmF0ZToKKyAgICBj
b25zdCBTd2l0Y2hWYWx1ZSogbV9zd2l0Y2ggeyBudWxscHRyIH07CisgICAgY29uc3QgQmFzaWNC
bG9jayogbV9vd25lciB7IG51bGxwdHIgfTsKK307CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpC
MworCisjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKKworI2VuZGlmIC8vIEIzQ2FzZUNvbGxlY3Rp
b25faAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDYXNlQ29sbGVjdGlvbklu
bGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDYXNlQ29s
bGVjdGlvbklubGluZXMuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTcg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRl
ZiBCM0Nhc2VDb2xsZWN0aW9uSW5saW5lc19oCisjZGVmaW5lIEIzQ2FzZUNvbGxlY3Rpb25Jbmxp
bmVzX2gKKworI2lmIEVOQUJMRShCM19KSVQpCisKKyNpbmNsdWRlICJCM0Nhc2VDb2xsZWN0aW9u
LmgiCisjaW5jbHVkZSAiQjNTd2l0Y2hWYWx1ZS5oIgorI2luY2x1ZGUgIkIzQmFzaWNCbG9jay5o
IgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKKworaW5saW5lIGNvbnN0IEZyZXF1
ZW50ZWRCbG9jayYgQ2FzZUNvbGxlY3Rpb246OmZhbGxUaHJvdWdoKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9vd25lci0+ZmFsbFRocm91Z2goKTsKK30KKworaW5saW5lIHVuc2lnbmVkIENhc2VD
b2xsZWN0aW9uOjpzaXplKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zd2l0Y2gtPm51bUNhc2VW
YWx1ZXMoKTsKK30KKworaW5saW5lIFN3aXRjaENhc2UgQ2FzZUNvbGxlY3Rpb246OmF0KHVuc2ln
bmVkIGluZGV4KSBjb25zdAoreworICAgIHJldHVybiBTd2l0Y2hDYXNlKG1fc3dpdGNoLT5jYXNl
VmFsdWUoaW5kZXgpLCBtX293bmVyLT5zdWNjZXNzb3IoaW5kZXgpKTsKK30KKworfSB9IC8vIG5h
bWVzcGFjZSBKU0M6OkIzCisKKyNlbmRpZiAvLyBFTkFCTEUoQjNfSklUKQorCisjZW5kaWYgLy8g
QjNDYXNlQ29sbGVjdGlvbklubGluZXNfaAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNDaGVja1NwZWNpYWwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0NoZWNrU3BlY2lhbC5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0NoZWNrU3BlY2lhbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg0LDcg
Kzg0LDcgQEAgQ2hlY2tTcGVjaWFsOjpDaGVja1NwZWNpYWwoQWlyOjpPcGNvZGUgbwogICAgICwg
bV9zdGFja21hcFJvbGUoc3RhY2ttYXBSb2xlKQogICAgICwgbV9udW1DaGVja0FyZ3MobnVtQXJn
cykKIHsKLSAgICBBU1NFUlQoaXNUZXJtaW5hbChvcGNvZGUpKTsKKyAgICBBU1NFUlQoaXNEZWZp
bml0ZWx5VGVybWluYWwob3Bjb2RlKSk7CiB9CiAKIENoZWNrU3BlY2lhbDo6Q2hlY2tTcGVjaWFs
KGNvbnN0IENoZWNrU3BlY2lhbDo6S2V5JiBrZXkpCkBAIC0xMDIsNiArMTAyLDcgQEAgSW5zdCBD
aGVja1NwZWNpYWw6OmhpZGRlbkJyYW5jaChjb25zdCBJbgogICAgIGhpZGRlbkJyYW5jaC5hcmdz
LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkobV9udW1DaGVja0FyZ3MpOwogICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBtX251bUNoZWNrQXJnczsgKytpKQogICAgICAgICBoaWRkZW5CcmFuY2gu
YXJncy5hcHBlbmQoaW5zdC5hcmdzW2kgKyAxXSk7CisgICAgQVNTRVJUKGhpZGRlbkJyYW5jaC5p
c1Rlcm1pbmFsKCkpOwogICAgIHJldHVybiBoaWRkZW5CcmFuY2g7CiB9CiAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbW1vbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0NvbW1vbi5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNDb21tb24uaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCw2ICsyOCw4IEBACiAK
ICNpZiBFTkFCTEUoQjNfSklUKQogCisjaW5jbHVkZSAiSlNFeHBvcnRNYWNyb3MuaCIKKwogbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKIGlubGluZSBib29sIGlzNjRCaXQoKSB7IHJl
dHVybiBzaXplb2Yodm9pZCopID09IDg7IH0KQEAgLTM4LDcgKzQwLDcgQEAgZW51bSBCM0NvbXBs
aXRhdGlvbk1vZGUgewogICAgIEFpck1vZGUKIH07CiAKLWJvb2wgc2hvdWxkRHVtcElSKEIzQ29t
cGxpdGF0aW9uTW9kZSk7CitKU19FWFBPUlRfUFJJVkFURSBib29sIHNob3VsZER1bXBJUihCM0Nv
bXBsaXRhdGlvbk1vZGUpOwogYm9vbCBzaG91bGREdW1wSVJBdEVhY2hQaGFzZShCM0NvbXBsaXRh
dGlvbk1vZGUpOwogYm9vbCBzaG91bGRWYWxpZGF0ZUlSKCk7CiBib29sIHNob3VsZFZhbGlkYXRl
SVJBdEVhY2hQaGFzZSgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29udHJv
bFZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb250
cm9sVmFsdWUuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNDb250cm9sVmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDk1ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
LSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVk
ZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKLQotI2lmIEVOQUJMRShC
M19KSVQpCi0KLSNpbmNsdWRlICJCM0Jhc2ljQmxvY2suaCIKLQotbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBCMyB7Ci0KLUNvbnRyb2xWYWx1ZTo6fkNvbnRyb2xWYWx1ZSgpCi17Ci19Ci0KLWJv
b2wgQ29udHJvbFZhbHVlOjpyZXBsYWNlU3VjY2Vzc29yKEJhc2ljQmxvY2sqIGZyb20sIEJhc2lj
QmxvY2sqIHRvKQotewotICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7Ci0gICAgZm9yIChGcmVxdWVu
dGVkQmxvY2smIHN1Y2Nlc3NvciA6IG1fc3VjY2Vzc29ycykgewotICAgICAgICBpZiAoc3VjY2Vz
c29yLmJsb2NrKCkgPT0gZnJvbSkgewotICAgICAgICAgICAgc3VjY2Vzc29yLmJsb2NrKCkgPSB0
bzsKLSAgICAgICAgICAgIHJlc3VsdCA9IHRydWU7Ci0KLSAgICAgICAgICAgIC8vIEtlZXAgbG9v
cGluZyBiZWNhdXNlIGl0J3MgdmFsaWQgZm9yIGEgc3VjY2Vzc29yIHRvIGJlIG1lbnRpb25lZCBt
dWx0aXBsZSB0aW1lcywKLSAgICAgICAgICAgIC8vIGxpa2UgaWYgbXVsdGlwbGUgc3dpdGNoIGNh
c2VzIGhhdmUgdGhlIHNhbWUgdGFyZ2V0LgotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiBy
ZXN1bHQ7Ci19Ci0KLXZvaWQgQ29udHJvbFZhbHVlOjpjb252ZXJ0VG9KdW1wKEJhc2ljQmxvY2sq
IGRlc3RpbmF0aW9uKQotewotICAgIHVuc2lnbmVkIGluZGV4ID0gdGhpcy0+aW5kZXgoKTsKLSAg
ICBPcmlnaW4gb3JpZ2luID0gdGhpcy0+b3JpZ2luKCk7Ci0gICAgQmFzaWNCbG9jayogb3duZXIg
PSB0aGlzLT5vd25lcjsKLQotICAgIHRoaXMtPn5Db250cm9sVmFsdWUoKTsKLQotICAgIG5ldyAo
dGhpcykgQ29udHJvbFZhbHVlKEp1bXAsIG9yaWdpbiwgRnJlcXVlbnRlZEJsb2NrKGRlc3RpbmF0
aW9uKSk7Ci0KLSAgICB0aGlzLT5vd25lciA9IG93bmVyOwotICAgIHRoaXMtPm1faW5kZXggPSBp
bmRleDsKLX0KLQotdm9pZCBDb250cm9sVmFsdWU6OmNvbnZlcnRUb09vcHMoKQotewotICAgIHVu
c2lnbmVkIGluZGV4ID0gdGhpcy0+aW5kZXgoKTsKLSAgICBPcmlnaW4gb3JpZ2luID0gdGhpcy0+
b3JpZ2luKCk7Ci0gICAgQmFzaWNCbG9jayogb3duZXIgPSB0aGlzLT5vd25lcjsKLQotICAgIHRo
aXMtPn5Db250cm9sVmFsdWUoKTsKLQotICAgIG5ldyAodGhpcykgQ29udHJvbFZhbHVlKE9vcHMs
IG9yaWdpbik7Ci0KLSAgICB0aGlzLT5vd25lciA9IG93bmVyOwotICAgIHRoaXMtPm1faW5kZXgg
PSBpbmRleDsKLX0KLQotdm9pZCBDb250cm9sVmFsdWU6OmR1bXBNZXRhKENvbW1hUHJpbnRlciYg
Y29tbWEsIFByaW50U3RyZWFtJiBvdXQpIGNvbnN0Ci17Ci0gICAgZm9yIChGcmVxdWVudGVkQmxv
Y2sgc3VjY2Vzc29yIDogbV9zdWNjZXNzb3JzKQotICAgICAgICBvdXQucHJpbnQoY29tbWEsIHN1
Y2Nlc3Nvcik7Ci19Ci0KLVZhbHVlKiBDb250cm9sVmFsdWU6OmNsb25lSW1wbCgpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIG5ldyBDb250cm9sVmFsdWUoKnRoaXMpOwotfQotCi19IH0gLy8gbmFtZXNw
YWNlIEpTQzo6QjMKLQotI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNDb250cm9sVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNDb250cm9sVmFsdWUuaAkocmV2aXNpb24gMjAyODA5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29udHJvbFZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTEsMTYzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKLSAqLwotCi0jaWZuZGVmIEIzQ29udHJvbFZhbHVlX2gKLSNkZWZpbmUgQjNDb250cm9sVmFs
dWVfaAotCi0jaWYgRU5BQkxFKEIzX0pJVCkKLQotI2luY2x1ZGUgIkIzRnJlcXVlbnRlZEJsb2Nr
LmgiCi0jaW5jbHVkZSAiQjNTdWNjZXNzb3JDb2xsZWN0aW9uLmgiCi0jaW5jbHVkZSAiQjNWYWx1
ZS5oIgotCi1uYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKLQotY2xhc3MgQmFzaWNCbG9j
azsKLQotY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgQ29udHJvbFZhbHVlIDogcHVibGljIFZhbHVl
IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgYm9vbCBhY2NlcHRzKE9wY29kZSBvcGNvZGUpCi0gICAg
ewotICAgICAgICBzd2l0Y2ggKG9wY29kZSkgewotICAgICAgICBjYXNlIEp1bXA6Ci0gICAgICAg
IGNhc2UgQnJhbmNoOgotICAgICAgICBjYXNlIFJldHVybjoKLSAgICAgICAgY2FzZSBPb3BzOgot
ICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGNhc2UgU3dpdGNoOiAKLSAgICAgICAg
ICAgIC8vIFRoaXMgaXMgaGVyZSBiZWNhdXNlIFN3aXRjaFZhbHVlIGlzIGEgc3ViY2xhc3Mgb2Yg
Q29udHJvbFZhbHVlLCBzbyB3ZSB3YW50Ci0gICAgICAgICAgICAvLyBzd2l0Y2hWYWx1ZS0+YXM8
Q29udHJvbFZhbHVlPigpIHRvIHJldHVybiBub24tbnVsbC4KLSAgICAgICAgICAgIHJldHVybiB0
cnVlOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAg
ICB9Ci0gICAgfQotCi0gICAgdHlwZWRlZiBWZWN0b3I8RnJlcXVlbnRlZEJsb2NrLCAyPiBTdWNj
ZXNzb3JMaXN0OwotCi0gICAgfkNvbnRyb2xWYWx1ZSgpOwotCi0gICAgdW5zaWduZWQgbnVtU3Vj
Y2Vzc29ycygpIGNvbnN0IHsgcmV0dXJuIG1fc3VjY2Vzc29ycy5zaXplKCk7IH0KLSAgICBjb25z
dCBGcmVxdWVudGVkQmxvY2smIHN1Y2Nlc3Nvcih1bnNpZ25lZCBpbmRleCkgY29uc3QgeyByZXR1
cm4gbV9zdWNjZXNzb3JzW2luZGV4XTsgfQotICAgIEZyZXF1ZW50ZWRCbG9jayYgc3VjY2Vzc29y
KHVuc2lnbmVkIGluZGV4KSB7IHJldHVybiBtX3N1Y2Nlc3NvcnNbaW5kZXhdOyB9Ci0gICAgY29u
c3QgU3VjY2Vzc29yTGlzdCYgc3VjY2Vzc29ycygpIGNvbnN0IHsgcmV0dXJuIG1fc3VjY2Vzc29y
czsgfQotICAgIFN1Y2Nlc3Nvckxpc3QmIHN1Y2Nlc3NvcnMoKSB7IHJldHVybiBtX3N1Y2Nlc3Nv
cnM7IH0KLQotICAgIEJhc2ljQmxvY2sqIHN1Y2Nlc3NvckJsb2NrKHVuc2lnbmVkIGluZGV4KSBj
b25zdCB7IHJldHVybiBzdWNjZXNzb3IoaW5kZXgpLmJsb2NrKCk7IH0KLSAgICBCYXNpY0Jsb2Nr
KiYgc3VjY2Vzc29yQmxvY2sodW5zaWduZWQgaW5kZXgpIHsgcmV0dXJuIHN1Y2Nlc3NvcihpbmRl
eCkuYmxvY2soKTsgfQotICAgIFN1Y2Nlc3NvckNvbGxlY3Rpb248QmFzaWNCbG9jaywgU3VjY2Vz
c29yTGlzdD4gc3VjY2Vzc29yQmxvY2tzKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBTdWNjZXNz
b3JDb2xsZWN0aW9uPEJhc2ljQmxvY2ssIFN1Y2Nlc3Nvckxpc3Q+KHN1Y2Nlc3NvcnMoKSk7Ci0g
ICAgfQotICAgIFN1Y2Nlc3NvckNvbGxlY3Rpb248Y29uc3QgQmFzaWNCbG9jaywgY29uc3QgU3Vj
Y2Vzc29yTGlzdD4gc3VjY2Vzc29yQmxvY2tzKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVy
biBTdWNjZXNzb3JDb2xsZWN0aW9uPGNvbnN0IEJhc2ljQmxvY2ssIGNvbnN0IFN1Y2Nlc3Nvckxp
c3Q+KHN1Y2Nlc3NvcnMoKSk7Ci0gICAgfQotCi0gICAgYm9vbCByZXBsYWNlU3VjY2Vzc29yKEJh
c2ljQmxvY2sqIGZyb20sIEJhc2ljQmxvY2sqIHRvKTsKLQotICAgIGNvbnN0IEZyZXF1ZW50ZWRC
bG9jayYgdGFrZW4oKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG9wY29kZSgpID09IEp1
bXAgfHwgb3Bjb2RlKCkgPT0gQnJhbmNoKTsKLSAgICAgICAgcmV0dXJuIHN1Y2Nlc3NvcigwKTsK
LSAgICB9Ci0gICAgRnJlcXVlbnRlZEJsb2NrJiB0YWtlbigpCi0gICAgewotICAgICAgICBBU1NF
UlQob3Bjb2RlKCkgPT0gSnVtcCB8fCBvcGNvZGUoKSA9PSBCcmFuY2gpOwotICAgICAgICByZXR1
cm4gc3VjY2Vzc29yKDApOwotICAgIH0KLSAgICBjb25zdCBGcmVxdWVudGVkQmxvY2smIG5vdFRh
a2VuKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChvcGNvZGUoKSA9PSBCcmFuY2gpOwot
ICAgICAgICByZXR1cm4gc3VjY2Vzc29yKDEpOwotICAgIH0KLSAgICBGcmVxdWVudGVkQmxvY2sm
IG5vdFRha2VuKCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChvcGNvZGUoKSA9PSBCcmFuY2gpOwot
ICAgICAgICByZXR1cm4gc3VjY2Vzc29yKDEpOwotICAgIH0KLQotICAgIHZvaWQgY29udmVydFRv
SnVtcChCYXNpY0Jsb2NrKiBkZXN0aW5hdGlvbik7Ci0gICAgdm9pZCBjb252ZXJ0VG9Pb3BzKCk7
Ci0KLXByb3RlY3RlZDoKLSAgICB2b2lkIGR1bXBNZXRhKENvbW1hUHJpbnRlciYsIFByaW50U3Ry
ZWFtJikgY29uc3Qgb3ZlcnJpZGU7Ci0KLSAgICBWYWx1ZSogY2xvbmVJbXBsKCkgY29uc3Qgb3Zl
cnJpZGU7Ci0KLSAgICAvLyBVc2UgdGhpcyBmb3Igc3ViY2xhc3Nlcy4KLSAgICB0ZW1wbGF0ZTx0
eXBlbmFtZS4uLiBBcmd1bWVudHM+Ci0gICAgQ29udHJvbFZhbHVlKE9wY29kZSBvcGNvZGUsIFR5
cGUgdHlwZSwgT3JpZ2luIG9yaWdpbiwgQXJndW1lbnRzLi4uIGFyZ3VtZW50cykKLSAgICAgICAg
OiBWYWx1ZShDaGVja2VkT3Bjb2RlLCBvcGNvZGUsIHR5cGUsIG9yaWdpbiwgYXJndW1lbnRzLi4u
KQotICAgIHsKLSAgICAgICAgQVNTRVJUKGFjY2VwdHMob3Bjb2RlKSk7Ci0gICAgfQotCi0gICAg
Ly8gU3ViY2xhc3NlcyB3aWxsIHBvcHVsYXRlIHRoaXMuCi0gICAgU3VjY2Vzc29yTGlzdCBtX3N1
Y2Nlc3NvcnM7Ci0KLXByaXZhdGU6Ci0gICAgZnJpZW5kIGNsYXNzIFByb2NlZHVyZTsKLQotICAg
IC8vIFVzZSB0aGlzIGZvciBPb3BzLgotICAgIENvbnRyb2xWYWx1ZShPcGNvZGUgb3Bjb2RlLCBP
cmlnaW4gb3JpZ2luKQotICAgICAgICA6IFZhbHVlKENoZWNrZWRPcGNvZGUsIG9wY29kZSwgVm9p
ZCwgb3JpZ2luKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG9wY29kZSA9PSBPb3BzKTsKLSAgICB9
Ci0KLSAgICAvLyBVc2UgdGhpcyBmb3IgUmV0dXJuLgotICAgIENvbnRyb2xWYWx1ZShPcGNvZGUg
b3Bjb2RlLCBPcmlnaW4gb3JpZ2luLCBWYWx1ZSogcmVzdWx0KQotICAgICAgICA6IFZhbHVlKENo
ZWNrZWRPcGNvZGUsIG9wY29kZSwgVm9pZCwgb3JpZ2luLCByZXN1bHQpCi0gICAgewotICAgICAg
ICBBU1NFUlQob3Bjb2RlID09IFJldHVybik7Ci0gICAgfQotCi0gICAgLy8gVXNlIHRoaXMgZm9y
IEp1bXAuCi0gICAgQ29udHJvbFZhbHVlKE9wY29kZSBvcGNvZGUsIE9yaWdpbiBvcmlnaW4sIGNv
bnN0IEZyZXF1ZW50ZWRCbG9jayYgdGFyZ2V0KQotICAgICAgICA6IFZhbHVlKENoZWNrZWRPcGNv
ZGUsIG9wY29kZSwgVm9pZCwgb3JpZ2luKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG9wY29kZSA9
PSBKdW1wKTsKLSAgICAgICAgbV9zdWNjZXNzb3JzLmFwcGVuZCh0YXJnZXQpOwotICAgIH0KLQot
ICAgIC8vIFVzZSB0aGlzIGZvciBCcmFuY2guCi0gICAgQ29udHJvbFZhbHVlKAotICAgICAgICBP
cGNvZGUgb3Bjb2RlLCBPcmlnaW4gb3JpZ2luLCBWYWx1ZSogcHJlZGljYXRlLAotICAgICAgICBj
b25zdCBGcmVxdWVudGVkQmxvY2smIHllcywgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBubykKLSAg
ICAgICAgOiBWYWx1ZShDaGVja2VkT3Bjb2RlLCBvcGNvZGUsIFZvaWQsIG9yaWdpbiwgcHJlZGlj
YXRlKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG9wY29kZSA9PSBCcmFuY2gpOwotICAgICAgICBt
X3N1Y2Nlc3NvcnMuYXBwZW5kKHllcyk7Ci0gICAgICAgIG1fc3VjY2Vzc29ycy5hcHBlbmQobm8p
OwotICAgIH0KLX07Ci0KLX0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMwotCi0jZW5kaWYgLy8gRU5B
QkxFKEIzX0pJVCkKLQotI2VuZGlmIC8vIEIzQ29udHJvbFZhbHVlX2gKLQpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzRGF0YVNlY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0RhdGFTZWN0aW9uLmNwcAkocmV2aXNpb24gMjAyODA5KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRGF0YVNlY3Rpb24uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTMxLDcgKzMxLDcgQEAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCiBEYXRh
U2VjdGlvbjo6RGF0YVNlY3Rpb24oc2l6ZV90IHNpemUpCi0gICAgOiBtX2RhdGEoZmFzdE1hbGxv
YyhzaXplKSkKKyAgICA6IG1fZGF0YShmYXN0WmVyb2VkTWFsbG9jKHNpemUpKQogICAgICwgbV9z
aXplKHNpemUpCiB7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEdXBsaWNh
dGVUYWlscy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRHVw
bGljYXRlVGFpbHMuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNEdXBsaWNhdGVUYWlscy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDYg
QEAKIAogI2luY2x1ZGUgIkIzQmFzaWNCbG9ja0lubGluZXMuaCIKICNpbmNsdWRlICJCM0JyZWFr
Q3JpdGljYWxFZGdlcy5oIgotI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAi
QjNEb21pbmF0b3JzLmgiCiAjaW5jbHVkZSAiQjNGaXhTU0EuaCIKICNpbmNsdWRlICJCM0luZGV4
U2V0LmgiCkBAIC03Miw5ICs3MSwxMCBAQCBwdWJsaWM6CiAgICAgICAgIEluZGV4U2V0PEJhc2lj
QmxvY2s+IGNhbmRpZGF0ZXM7CiAKICAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBibG9jayA6IG1f
cHJvYykgewotICAgICAgICAgICAgaWYgKGJsb2NrLT5zaXplKCkgPiBtX21heFNpemUgfHwgYmxv
Y2stPm51bVN1Y2Nlc3NvcnMoKSA+IG1fbWF4U3VjY2Vzc29ycykKKyAgICAgICAgICAgIGlmIChi
bG9jay0+c2l6ZSgpID4gbV9tYXhTaXplCisgICAgICAgICAgICAgICAgfHwgYmxvY2stPm51bVN1
Y2Nlc3NvcnMoKSA+IG1fbWF4U3VjY2Vzc29ycykKICAgICAgICAgICAgICAgICBjb250aW51ZTsK
LQorICAgICAgICAgICAgCiAgICAgICAgICAgICBjYW5kaWRhdGVzLmFkZChibG9jayk7CiAgICAg
ICAgIH0KIApAQCAtOTcsMTEgKzk3LDEwIEBAIHB1YmxpYzoKICAgICAgICAgfQogCiAgICAgICAg
IGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiBtX3Byb2MpIHsKLSAgICAgICAgICAgIENvbnRyb2xW
YWx1ZSoganVtcCA9IGJsb2NrLT5sYXN0KCktPmFzPENvbnRyb2xWYWx1ZT4oKTsKLSAgICAgICAg
ICAgIGlmIChqdW1wLT5vcGNvZGUoKSAhPSBKdW1wKQorICAgICAgICAgICAgaWYgKGJsb2NrLT5s
YXN0KCktPm9wY29kZSgpICE9IEp1bXApCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAg
ICAgICAgICAgIEJhc2ljQmxvY2sqIHRhaWwgPSBqdW1wLT5zdWNjZXNzb3JCbG9jaygwKTsKKyAg
ICAgICAgICAgIEJhc2ljQmxvY2sqIHRhaWwgPSBibG9jay0+c3VjY2Vzc29yQmxvY2soMCk7CiAg
ICAgICAgICAgICBpZiAoIWNhbmRpZGF0ZXMuY29udGFpbnModGFpbCkpCiAgICAgICAgICAgICAg
ICAgY29udGludWU7CiAKQEAgLTEzMCw2ICsxMjksNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAg
ICAgICAgIG1hcC5hZGQodmFsdWUsIGNsb25lKTsKICAgICAgICAgICAgICAgICBibG9jay0+YXBw
ZW5kKGNsb25lKTsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJsb2NrLT5zdWNjZXNzb3Jz
KCkgPSB0YWlsLT5zdWNjZXNzb3JzKCk7CiAgICAgICAgIH0KIAogICAgICAgICBtX3Byb2MucmVz
ZXRSZWFjaGFiaWxpdHkoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0ZpeFNT
QS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRml4U1NBLmNw
cAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRml4U1NB
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNiBAQAogCiAjaW5jbHVkZSAiQjNCYXNp
Y0Jsb2NrSW5saW5lcy5oIgogI2luY2x1ZGUgIkIzQnJlYWtDcml0aWNhbEVkZ2VzLmgiCi0jaW5j
bHVkZSAiQjNDb250cm9sVmFsdWUuaCIKICNpbmNsdWRlICJCM0RvbWluYXRvcnMuaCIKICNpbmNs
dWRlICJCM0luZGV4U2V0LmgiCiAjaW5jbHVkZSAiQjNJbnNlcnRpb25TZXRJbmxpbmVzLmgiCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNGb2xkUGF0aENvbnN0YW50cy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRm9sZFBhdGhDb25zdGFudHMu
Y3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNGb2xk
UGF0aENvbnN0YW50cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKICNpZiBF
TkFCTEUoQjNfSklUKQogCiAjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrSW5saW5lcy5oIgotI2luY2x1
ZGUgIkIzQ29udHJvbFZhbHVlLmgiCisjaW5jbHVkZSAiQjNDYXNlQ29sbGVjdGlvbklubGluZXMu
aCIKICNpbmNsdWRlICJCM0RvbWluYXRvcnMuaCIKICNpbmNsdWRlICJCM0luc2VydGlvblNldElu
bGluZXMuaCIKICNpbmNsdWRlICJCM1BoYXNlU2NvcGUuaCIKQEAgLTg3LDI0ICs4NywyNCBAQCBw
dWJsaWM6CiAgICAgICAgIH07CiAgICAgICAgIAogICAgICAgICBmb3IgKEJhc2ljQmxvY2sqIGJs
b2NrIDogbV9wcm9jKSB7Ci0gICAgICAgICAgICBDb250cm9sVmFsdWUqIGJyYW5jaCA9IGJsb2Nr
LT5sYXN0KCktPmFzPENvbnRyb2xWYWx1ZT4oKTsKKyAgICAgICAgICAgIFZhbHVlKiBicmFuY2gg
PSBibG9jay0+bGFzdCgpOwogICAgICAgICAgICAgc3dpdGNoIChicmFuY2gtPm9wY29kZSgpKSB7
CiAgICAgICAgICAgICBjYXNlIEJyYW5jaDoKLSAgICAgICAgICAgICAgICBpZiAoYnJhbmNoLT5z
dWNjZXNzb3JCbG9jaygwKSA9PSBicmFuY2gtPnN1Y2Nlc3NvckJsb2NrKDEpKQorICAgICAgICAg
ICAgICAgIGlmIChibG9jay0+c3VjY2Vzc29yQmxvY2soMCkgPT0gYmxvY2stPnN1Y2Nlc3NvckJs
b2NrKDEpKQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICBh
ZGRPdmVycmlkZSgKICAgICAgICAgICAgICAgICAgICAgYmxvY2ssIGJyYW5jaC0+Y2hpbGQoMCks
Ci0gICAgICAgICAgICAgICAgICAgIE92ZXJyaWRlOjpub25aZXJvKGJyYW5jaC0+c3VjY2Vzc29y
QmxvY2soMCkpKTsKKyAgICAgICAgICAgICAgICAgICAgT3ZlcnJpZGU6Om5vblplcm8oYmxvY2st
PnN1Y2Nlc3NvckJsb2NrKDApKSk7CiAgICAgICAgICAgICAgICAgYWRkT3ZlcnJpZGUoCiAgICAg
ICAgICAgICAgICAgICAgIGJsb2NrLCBicmFuY2gtPmNoaWxkKDApLAotICAgICAgICAgICAgICAg
ICAgICBPdmVycmlkZTo6Y29uc3RhbnQoYnJhbmNoLT5zdWNjZXNzb3JCbG9jaygxKSwgMCkpOwor
ICAgICAgICAgICAgICAgICAgICBPdmVycmlkZTo6Y29uc3RhbnQoYmxvY2stPnN1Y2Nlc3NvckJs
b2NrKDEpLCAwKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIFN3
aXRjaDogewogICAgICAgICAgICAgICAgIEhhc2hNYXA8QmFzaWNCbG9jayosIHVuc2lnbmVkPiB0
YXJnZXRVc2VzOwotICAgICAgICAgICAgICAgIGZvciAoY29uc3QgU3dpdGNoQ2FzZSYgc3dpdGNo
Q2FzZSA6ICpicmFuY2gtPmFzPFN3aXRjaFZhbHVlPigpKQorICAgICAgICAgICAgICAgIGZvciAo
Y29uc3QgU3dpdGNoQ2FzZSYgc3dpdGNoQ2FzZSA6IGJyYW5jaC0+YXM8U3dpdGNoVmFsdWU+KCkt
PmNhc2VzKGJsb2NrKSkKICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0VXNlcy5hZGQoc3dpdGNo
Q2FzZS50YXJnZXRCbG9jaygpLCAwKS5pdGVyYXRvci0+dmFsdWUrKzsKIAotICAgICAgICAgICAg
ICAgIGZvciAoY29uc3QgU3dpdGNoQ2FzZSYgc3dpdGNoQ2FzZSA6ICpicmFuY2gtPmFzPFN3aXRj
aFZhbHVlPigpKSB7CisgICAgICAgICAgICAgICAgZm9yIChjb25zdCBTd2l0Y2hDYXNlJiBzd2l0
Y2hDYXNlIDogYnJhbmNoLT5hczxTd2l0Y2hWYWx1ZT4oKS0+Y2FzZXMoYmxvY2spKSB7CiAgICAg
ICAgICAgICAgICAgICAgIGlmICh0YXJnZXRVc2VzLmZpbmQoc3dpdGNoQ2FzZS50YXJnZXRCbG9j
aygpKS0+dmFsdWUgIT0gMSkKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCkBA
IC0xNTgsOSArMTU4LDggQEAgcHVibGljOgogCiAgICAgICAgICAgICAgICAgc3dpdGNoICh2YWx1
ZS0+b3Bjb2RlKCkpIHsKICAgICAgICAgICAgICAgICBjYXNlIEJyYW5jaDogewotICAgICAgICAg
ICAgICAgICAgICBDb250cm9sVmFsdWUqIGJyYW5jaCA9IHZhbHVlLT5hczxDb250cm9sVmFsdWU+
KCk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChnZXRPdmVycmlkZShibG9jaywgYnJhbmNoLT5j
aGlsZCgwKSkuaXNOb25aZXJvKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmFuY2gtPmNv
bnZlcnRUb0p1bXAoYnJhbmNoLT50YWtlbigpLmJsb2NrKCkpOworICAgICAgICAgICAgICAgICAg
ICBpZiAoZ2V0T3ZlcnJpZGUoYmxvY2ssIHZhbHVlLT5jaGlsZCgwKSkuaXNOb25aZXJvKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZS0+cmVwbGFjZVdpdGhKdW1wKGJsb2NrLCBibG9j
ay0+dGFrZW4oKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsKICAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICBicmVhazsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyTWFjcm9zLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlck1hY3Jvcy5jcHAJKHJldmlzaW9uIDIwMjgw
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyTWFjcm9zLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0yOCwxNyArMjgsMjMgQEAKIAogI2lmIEVOQUJMRShCM19KSVQpCiAKKyNpbmNsdWRl
ICJBbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UuaCIKICNpbmNsdWRlICJCM0Jhc2ljQmxv
Y2tJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNCbG9ja0luc2VydGlvblNldC5oIgogI2luY2x1ZGUg
IkIzQ0NhbGxWYWx1ZS5oIgorI2luY2x1ZGUgIkIzQ2FzZUNvbGxlY3Rpb25JbmxpbmVzLmgiCiAj
aW5jbHVkZSAiQjNDb25zdFB0clZhbHVlLmgiCi0jaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIK
ICNpbmNsdWRlICJCM0luc2VydGlvblNldElubGluZXMuaCIKKyNpbmNsdWRlICJCM01lbW9yeVZh
bHVlLmgiCisjaW5jbHVkZSAiQjNQYXRjaHBvaW50VmFsdWUuaCIKICNpbmNsdWRlICJCM1BoYXNl
U2NvcGUuaCIKICNpbmNsdWRlICJCM1Byb2NlZHVyZUlubGluZXMuaCIKKyNpbmNsdWRlICJCM1N0
YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5oIgogI2luY2x1ZGUgIkIzU3dpdGNoVmFsdWUuaCIKICNp
bmNsdWRlICJCM1Vwc2lsb25WYWx1ZS5oIgogI2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCisj
aW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCisjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgogI2luY2x1
ZGUgPGNtYXRoPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKQEAgLTExOCw4ICsx
MjQsOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICBCYXNpY0Jsb2NrKiB6ZXJvRGVu
Q2FzZSA9IG1fYmxvY2tJbnNlcnRpb25TZXQuaW5zZXJ0QmVmb3JlKG1fYmxvY2spOwogICAgICAg
ICAgICAgICAgICAgICBCYXNpY0Jsb2NrKiBub3JtYWxNb2RDYXNlID0gbV9ibG9ja0luc2VydGlv
blNldC5pbnNlcnRCZWZvcmUobV9ibG9jayk7CiAKLSAgICAgICAgICAgICAgICAgICAgYmVmb3Jl
LT5yZXBsYWNlTGFzdFdpdGhOZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgICAgICAgICAgICAg
ICAgIG1fcHJvYywgQnJhbmNoLCBtX29yaWdpbiwgbV92YWx1ZS0+Y2hpbGQoMSksCisgICAgICAg
ICAgICAgICAgICAgIGJlZm9yZS0+cmVwbGFjZUxhc3RXaXRoTmV3PFZhbHVlPihtX3Byb2MsIEJy
YW5jaCwgbV9vcmlnaW4sIG1fdmFsdWUtPmNoaWxkKDEpKTsKKyAgICAgICAgICAgICAgICAgICAg
YmVmb3JlLT5zZXRTdWNjZXNzb3JzKAogICAgICAgICAgICAgICAgICAgICAgICAgRnJlcXVlbnRl
ZEJsb2NrKG5vcm1hbE1vZENhc2UsIEZyZXF1ZW5jeUNsYXNzOjpOb3JtYWwpLAogICAgICAgICAg
ICAgICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHplcm9EZW5DYXNlLCBGcmVxdWVuY3lDbGFz
czo6UmFyZSkpOwogCkBAIC0xMjcsMTIgKzEzMywxNCBAQCBwcml2YXRlOgogICAgICAgICAgICAg
ICAgICAgICBWYWx1ZSogbXVsdGlwbGllZEJhY2sgPSBub3JtYWxNb2RDYXNlLT5hcHBlbmROZXc8
VmFsdWU+KG1fcHJvYywgTXVsLCBtX29yaWdpbiwgZGl2UmVzdWx0LCBtX3ZhbHVlLT5jaGlsZCgx
KSk7CiAgICAgICAgICAgICAgICAgICAgIFZhbHVlKiByZXN1bHQgPSBub3JtYWxNb2RDYXNlLT5h
cHBlbmROZXc8VmFsdWU+KG1fcHJvYywgU3ViLCBtX29yaWdpbiwgbV92YWx1ZS0+Y2hpbGQoMCks
IG11bHRpcGxpZWRCYWNrKTsKICAgICAgICAgICAgICAgICAgICAgVXBzaWxvblZhbHVlKiBub3Jt
YWxSZXN1bHQgPSBub3JtYWxNb2RDYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihtX3Byb2Ms
IG1fb3JpZ2luLCByZXN1bHQpOwotICAgICAgICAgICAgICAgICAgICBub3JtYWxNb2RDYXNlLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihtX3Byb2MsIEp1bXAsIG1fb3JpZ2luLCBGcmVxdWVudGVk
QmxvY2sobV9ibG9jaykpOworICAgICAgICAgICAgICAgICAgICBub3JtYWxNb2RDYXNlLT5hcHBl
bmROZXc8VmFsdWU+KG1fcHJvYywgSnVtcCwgbV9vcmlnaW4pOworICAgICAgICAgICAgICAgICAg
ICBub3JtYWxNb2RDYXNlLT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7
CiAKICAgICAgICAgICAgICAgICAgICAgVXBzaWxvblZhbHVlKiB6ZXJvUmVzdWx0ID0gemVyb0Rl
bkNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KAogICAgICAgICAgICAgICAgICAgICAgICAg
bV9wcm9jLCBtX29yaWdpbiwKICAgICAgICAgICAgICAgICAgICAgICAgIHplcm9EZW5DYXNlLT5h
cHBlbmRJbnRDb25zdGFudChtX3Byb2MsIG1fdmFsdWUsIDApKTsKLSAgICAgICAgICAgICAgICAg
ICAgemVyb0RlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KG1fcHJvYywgSnVtcCwgbV9v
cmlnaW4sIEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7CisgICAgICAgICAgICAgICAgICAgIHpl
cm9EZW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgSnVtcCwgbV9vcmlnaW4pOworICAg
ICAgICAgICAgICAgICAgICB6ZXJvRGVuQ2FzZS0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxv
Y2sobV9ibG9jaykpOwogCiAgICAgICAgICAgICAgICAgICAgIFZhbHVlKiBwaGkgPSBtX2luc2Vy
dGlvblNldC5pbnNlcnQ8VmFsdWU+KG1faW5kZXgsIFBoaSwgbV92YWx1ZS0+dHlwZSgpLCBtX29y
aWdpbik7CiAgICAgICAgICAgICAgICAgICAgIG5vcm1hbFJlc3VsdC0+c2V0UGhpKHBoaSk7CkBA
IC0xNDcsMTUgKzE1NSwxNiBAQCBwcml2YXRlOgogICAgICAgICAgICAgY2FzZSBTd2l0Y2g6IHsK
ICAgICAgICAgICAgICAgICBTd2l0Y2hWYWx1ZSogc3dpdGNoVmFsdWUgPSBtX3ZhbHVlLT5hczxT
d2l0Y2hWYWx1ZT4oKTsKICAgICAgICAgICAgICAgICBWZWN0b3I8U3dpdGNoQ2FzZT4gY2FzZXM7
Ci0gICAgICAgICAgICAgICAgZm9yIChjb25zdCBTd2l0Y2hDYXNlJiBzd2l0Y2hDYXNlIDogKnN3
aXRjaFZhbHVlKQorICAgICAgICAgICAgICAgIGZvciAoY29uc3QgU3dpdGNoQ2FzZSYgc3dpdGNo
Q2FzZSA6IHN3aXRjaFZhbHVlLT5jYXNlcyhtX2Jsb2NrKSkKICAgICAgICAgICAgICAgICAgICAg
Y2FzZXMuYXBwZW5kKHN3aXRjaENhc2UpOwogICAgICAgICAgICAgICAgIHN0ZDo6c29ydCgKICAg
ICAgICAgICAgICAgICAgICAgY2FzZXMuYmVnaW4oKSwgY2FzZXMuZW5kKCksCiAgICAgICAgICAg
ICAgICAgICAgIFtdIChjb25zdCBTd2l0Y2hDYXNlJiBsZWZ0LCBjb25zdCBTd2l0Y2hDYXNlJiBy
aWdodCkgewogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxlZnQuY2FzZVZhbHVlKCkg
PCByaWdodC5jYXNlVmFsdWUoKTsKICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgRnJlcXVlbnRlZEJsb2NrIGZhbGxUaHJvdWdoID0gbV9ibG9jay0+ZmFsbFRocm91Z2go
KTsKICAgICAgICAgICAgICAgICBtX2Jsb2NrLT52YWx1ZXMoKS5yZW1vdmVMYXN0KCk7Ci0gICAg
ICAgICAgICAgICAgcmVjdXJzaXZlbHlCdWlsZFN3aXRjaChjYXNlcywgMCwgZmFsc2UsIGNhc2Vz
LnNpemUoKSwgbV9ibG9jayk7CisgICAgICAgICAgICAgICAgcmVjdXJzaXZlbHlCdWlsZFN3aXRj
aChjYXNlcywgZmFsbFRocm91Z2gsIDAsIGZhbHNlLCBjYXNlcy5zaXplKCksIG1fYmxvY2spOwog
ICAgICAgICAgICAgICAgIG1fcHJvYy5kZWxldGVWYWx1ZShzd2l0Y2hWYWx1ZSk7CiAgICAgICAg
ICAgICAgICAgbV9ibG9jay0+dXBkYXRlUHJlZGVjZXNzb3JzQWZ0ZXIoKTsKICAgICAgICAgICAg
ICAgICBtX2NoYW5nZWQgPSB0cnVlOwpAQCAtMjEwLDI3ICsyMTksMjcgQEAgcHJpdmF0ZToKICAg
ICAgICAgQmFzaWNCbG9jayogbmVnMURlbkNhc2UgPSBtX2Jsb2NrSW5zZXJ0aW9uU2V0Lmluc2Vy
dEJlZm9yZShtX2Jsb2NrKTsKICAgICAgICAgQmFzaWNCbG9jayogaW50TWluQ2FzZSA9IG1fYmxv
Y2tJbnNlcnRpb25TZXQuaW5zZXJ0QmVmb3JlKG1fYmxvY2spOwogCi0gICAgICAgIGJlZm9yZS0+
cmVwbGFjZUxhc3RXaXRoTmV3PENvbnRyb2xWYWx1ZT4oCi0gICAgICAgICAgICBtX3Byb2MsIEJy
YW5jaCwgbV9vcmlnaW4sIGlzRGVuT0ssCisgICAgICAgIGJlZm9yZS0+cmVwbGFjZUxhc3RXaXRo
TmV3PFZhbHVlPihtX3Byb2MsIEJyYW5jaCwgbV9vcmlnaW4sIGlzRGVuT0spOworICAgICAgICBi
ZWZvcmUtPnNldFN1Y2Nlc3NvcnMoCiAgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2sobm9ybWFs
RGl2Q2FzZSwgRnJlcXVlbmN5Q2xhc3M6Ok5vcm1hbCksCiAgICAgICAgICAgICBGcmVxdWVudGVk
QmxvY2soc2hhZHlEZW5DYXNlLCBGcmVxdWVuY3lDbGFzczo6UmFyZSkpOwogCiAgICAgICAgIFVw
c2lsb25WYWx1ZSogbm9ybWFsUmVzdWx0ID0gbm9ybWFsRGl2Q2FzZS0+YXBwZW5kTmV3PFVwc2ls
b25WYWx1ZT4oCiAgICAgICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLAogICAgICAgICAgICAgbm9y
bWFsRGl2Q2FzZS0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIG5vbkNoaWxsT3Bjb2RlLCBtX29y
aWdpbiwgbnVtLCBkZW4pKTsKLSAgICAgICAgbm9ybWFsRGl2Q2FzZS0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCi0gICAgICAgICAgICBtX3Byb2MsIEp1bXAsIG1fb3JpZ2luLCBGcmVxdWVudGVk
QmxvY2sobV9ibG9jaykpOworICAgICAgICBub3JtYWxEaXZDYXNlLT5hcHBlbmROZXc8VmFsdWU+
KG1fcHJvYywgSnVtcCwgbV9vcmlnaW4pOworICAgICAgICBub3JtYWxEaXZDYXNlLT5zZXRTdWNj
ZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7CiAKLSAgICAgICAgc2hhZHlEZW5DYXNl
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgICAgIG1fcHJvYywgQnJhbmNoLCBt
X29yaWdpbiwgZGVuLAorICAgICAgICBzaGFkeURlbkNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4obV9w
cm9jLCBCcmFuY2gsIG1fb3JpZ2luLCBkZW4pOworICAgICAgICBzaGFkeURlbkNhc2UtPnNldFN1
Y2Nlc3NvcnMoCiAgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2sobmVnMURlbkNhc2UsIEZyZXF1
ZW5jeUNsYXNzOjpOb3JtYWwpLAogICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHplcm9EZW5D
YXNlLCBGcmVxdWVuY3lDbGFzczo6UmFyZSkpOwogCiAgICAgICAgIFVwc2lsb25WYWx1ZSogemVy
b1Jlc3VsdCA9IHplcm9EZW5DYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPigKICAgICAgICAg
ICAgIG1fcHJvYywgbV9vcmlnaW4sCiAgICAgICAgICAgICB6ZXJvRGVuQ2FzZS0+YXBwZW5kSW50
Q29uc3RhbnQobV9wcm9jLCBtX3ZhbHVlLCAwKSk7Ci0gICAgICAgIHplcm9EZW5DYXNlLT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgICAgIG1fcHJvYywgSnVtcCwgbV9vcmlnaW4s
IEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7CisgICAgICAgIHplcm9EZW5DYXNlLT5hcHBlbmRO
ZXc8VmFsdWU+KG1fcHJvYywgSnVtcCwgbV9vcmlnaW4pOworICAgICAgICB6ZXJvRGVuQ2FzZS0+
c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2sobV9ibG9jaykpOwogCiAgICAgICAgIGludDY0
X3QgYmFkTnVtZXJhdG9yQ29uc3QgPSAwOwogICAgICAgICBzd2l0Y2ggKG1fdmFsdWUtPnR5cGUo
KSkgewpAQCAtMjQ4LDE4ICsyNTcsMTkgQEAgcHJpdmF0ZToKICAgICAgICAgVmFsdWUqIGJhZE51
bWVyYXRvciA9CiAgICAgICAgICAgICBuZWcxRGVuQ2FzZS0+YXBwZW5kSW50Q29uc3RhbnQobV9w
cm9jLCBtX3ZhbHVlLCBiYWROdW1lcmF0b3JDb25zdCk7CiAKLSAgICAgICAgbmVnMURlbkNhc2Ut
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICBuZWcxRGVuQ2FzZS0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIG1fcHJvYywgQnJhbmNoLCBtX29yaWdpbiwKICAgICAgICAg
ICAgIG5lZzFEZW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+KAotICAgICAgICAgICAgICAgIG1fcHJv
YywgRXF1YWwsIG1fb3JpZ2luLCBudW0sIGJhZE51bWVyYXRvciksCisgICAgICAgICAgICAgICAg
bV9wcm9jLCBFcXVhbCwgbV9vcmlnaW4sIG51bSwgYmFkTnVtZXJhdG9yKSk7CisgICAgICAgIG5l
ZzFEZW5DYXNlLT5zZXRTdWNjZXNzb3JzKAogICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKGlu
dE1pbkNhc2UsIEZyZXF1ZW5jeUNsYXNzOjpSYXJlKSwKICAgICAgICAgICAgIEZyZXF1ZW50ZWRC
bG9jayhub3JtYWxEaXZDYXNlLCBGcmVxdWVuY3lDbGFzczo6Tm9ybWFsKSk7CiAKICAgICAgICAg
VmFsdWUqIGludE1pblJlc3VsdCA9IG5vbkNoaWxsT3Bjb2RlID09IERpdiA/IGJhZE51bWVyYXRv
ciA6IGludE1pbkNhc2UtPmFwcGVuZEludENvbnN0YW50KG1fcHJvYywgbV92YWx1ZSwgMCk7CiAg
ICAgICAgIFVwc2lsb25WYWx1ZSogaW50TWluUmVzdWx0VXBzaWxvbiA9IGludE1pbkNhc2UtPmFw
cGVuZE5ldzxVcHNpbG9uVmFsdWU+KAogICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwgaW50
TWluUmVzdWx0KTsKLSAgICAgICAgaW50TWluQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
Ci0gICAgICAgICAgICBtX3Byb2MsIEp1bXAsIG1fb3JpZ2luLCBGcmVxdWVudGVkQmxvY2sobV9i
bG9jaykpOworICAgICAgICBpbnRNaW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgSnVt
cCwgbV9vcmlnaW4pOworICAgICAgICBpbnRNaW5DYXNlLT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50
ZWRCbG9jayhtX2Jsb2NrKSk7CiAKICAgICAgICAgVmFsdWUqIHBoaSA9IG1faW5zZXJ0aW9uU2V0
Lmluc2VydDxWYWx1ZT4oCiAgICAgICAgICAgICBtX2luZGV4LCBQaGksIG1fdmFsdWUtPnR5cGUo
KSwgbV9vcmlnaW4pOwpAQCAtMjcyLDExICsyODIsMTA1IEBAIHByaXZhdGU6CiAgICAgfQogCiAg
ICAgdm9pZCByZWN1cnNpdmVseUJ1aWxkU3dpdGNoKAotICAgICAgICBjb25zdCBWZWN0b3I8U3dp
dGNoQ2FzZT4mIGNhc2VzLCB1bnNpZ25lZCBzdGFydCwgYm9vbCBoYXJkU3RhcnQsIHVuc2lnbmVk
IGVuZCwKLSAgICAgICAgQmFzaWNCbG9jayogYmVmb3JlKQorICAgICAgICBjb25zdCBWZWN0b3I8
U3dpdGNoQ2FzZT4mIGNhc2VzLCBGcmVxdWVudGVkQmxvY2sgZmFsbFRocm91Z2gsIHVuc2lnbmVk
IHN0YXJ0LCBib29sIGhhcmRTdGFydCwKKyAgICAgICAgdW5zaWduZWQgZW5kLCBCYXNpY0Jsb2Nr
KiBiZWZvcmUpCiAgICAgewotICAgICAgICAvLyBGSVhNRTogQWRkIHRhYmxlLWJhc2VkIHN3aXRj
aCBsb3dlcmluZy4KLSAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1MTE0MQorICAgICAgICBWYWx1ZSogY2hpbGQgPSBtX3ZhbHVlLT5jaGlsZCgwKTsK
KyAgICAgICAgVHlwZSB0eXBlID0gY2hpbGQtPnR5cGUoKTsKKyAgICAgICAgCisgICAgICAgIC8v
IEl0J3MgYSBnb29kIGlkZWEgdG8gdXNlIGEgdGFibGUtYmFzZWQgc3dpdGNoIGluIHNvbWUgY2Fz
ZXM6IHRoZSBudW1iZXIgb2YgY2FzZXMgaGFzIHRvIGJlCisgICAgICAgIC8vIGxhcmdlIGVub3Vn
aCBhbmQgdGhleSBoYXZlIHRvIGJlIGRlbnNlIGVub3VnaC4gVGhpcyBjb3VsZCBwcm9iYWJseSBi
ZSBpbXByb3ZlZCBhIGxvdC4gRm9yCisgICAgICAgIC8vIGV4YW1wbGUsIHdlIGNvdWxkIHN0aWxs
IHVzZSBhIGp1bXAgdGFibGUgaW4gY2FzZXMgd2hlcmUgdGhlIGlucHV0cyBhcmUgc3BhcnNlIHNv
IGxvbmcgYXMgd2UKKyAgICAgICAgLy8gc2hpZnQgb2ZmIHRoZSB1bmludGVyZXN0aW5nIGJpdHMu
IE9uIHRoZSBvdGhlciBoYW5kLCBpdCdzIG5vdCBjbGVhciB0aGF0IHRoaXMgd291bGQKKyAgICAg
ICAgLy8gYWN0dWFsbHkgYmUgYW55IGJldHRlciB0aGFuIHdoYXQgd2UgaGF2ZSBkb25lIGhlcmUg
YW5kIGl0J3Mgbm90IGNsZWFyIHRoYXQgaXQgd291bGQgYmUKKyAgICAgICAgLy8gYmV0dGVyIHRo
YW4gYSBiaW5hcnkgc3dpdGNoLgorICAgICAgICBjb25zdCB1bnNpZ25lZCBtaW5DYXNlc0ZvclRh
YmxlID0gNzsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgZGVuc2l0eUxpbWl0ID0gNDsKKyAgICAg
ICAgaWYgKGVuZCAtIHN0YXJ0ID49IG1pbkNhc2VzRm9yVGFibGUpIHsKKyAgICAgICAgICAgIGlu
dDY0X3QgZmlyc3RWYWx1ZSA9IGNhc2VzW3N0YXJ0XS5jYXNlVmFsdWUoKTsKKyAgICAgICAgICAg
IGludDY0X3QgbGFzdFZhbHVlID0gY2FzZXNbZW5kIC0gMV0uY2FzZVZhbHVlKCk7CisgICAgICAg
ICAgICBpZiAoKGxhc3RWYWx1ZSAtIGZpcnN0VmFsdWUgKyAxKSAvIGNhc2VzLnNpemUoKSA8IGRl
bnNpdHlMaW1pdCkgeworICAgICAgICAgICAgICAgIEJhc2ljQmxvY2sqIHN3aXRjaEJsb2NrID0g
bV9ibG9ja0luc2VydGlvblNldC5pbnNlcnRBZnRlcihtX2Jsb2NrKTsKKyAgICAgICAgICAgICAg
ICBWYWx1ZSogaW5kZXggPSBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICAg
ICAgICAgIG1fcHJvYywgU3ViLCBtX29yaWdpbiwgY2hpbGQsCisgICAgICAgICAgICAgICAgICAg
IGJlZm9yZS0+YXBwZW5kSW50Q29uc3RhbnQobV9wcm9jLCBtX29yaWdpbiwgdHlwZSwgZmlyc3RW
YWx1ZSkpOworICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAg
ICAgICAgICAgICAgICAgbV9wcm9jLCBCcmFuY2gsIG1fb3JpZ2luLAorICAgICAgICAgICAgICAg
ICAgICBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICAgICAgICAgICAgICBt
X3Byb2MsIEFib3ZlLCBtX29yaWdpbiwgaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICBi
ZWZvcmUtPmFwcGVuZEludENvbnN0YW50KG1fcHJvYywgbV9vcmlnaW4sIHR5cGUsIGxhc3RWYWx1
ZSAtIGZpcnN0VmFsdWUpKSk7CisgICAgICAgICAgICAgICAgYmVmb3JlLT5zZXRTdWNjZXNzb3Jz
KGZhbGxUaHJvdWdoLCBGcmVxdWVudGVkQmxvY2soc3dpdGNoQmxvY2spKTsKKyAgICAgICAgICAg
ICAgICAKKyAgICAgICAgICAgICAgICBzaXplX3QgdGFibGVTaXplID0gbGFzdFZhbHVlIC0gZmly
c3RWYWx1ZSArIDE7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGluZGV4
LT50eXBlKCkgIT0gcG9pbnRlclR5cGUoKSAmJiBpbmRleC0+dHlwZSgpID09IEludDMyKQorICAg
ICAgICAgICAgICAgICAgICBpbmRleCA9IHN3aXRjaEJsb2NrLT5hcHBlbmROZXc8VmFsdWU+KG1f
cHJvYywgWkV4dDMyLCBtX29yaWdpbiwgaW5kZXgpOworICAgICAgICAgICAgICAgIAorICAgICAg
ICAgICAgICAgIFBhdGNocG9pbnRWYWx1ZSogcGF0Y2hwb2ludCA9CisgICAgICAgICAgICAgICAg
ICAgIHN3aXRjaEJsb2NrLT5hcHBlbmROZXc8UGF0Y2hwb2ludFZhbHVlPihtX3Byb2MsIFZvaWQs
IG1fb3JpZ2luKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBwYXRjaHBvaW50
LT5lZmZlY3RzLnRlcm1pbmFsID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBwYXRjaHBvaW50LT5h
cHBlbmRTb21lUmVnaXN0ZXIoaW5kZXgpOworICAgICAgICAgICAgICAgIHBhdGNocG9pbnQtPm51
bUdQU2NyYXRjaFJlZ2lzdGVycysrOworICAgICAgICAgICAgICAgIC8vIFRlY2huaWNhbGx5LCB3
ZSBkb24ndCBoYXZlIHRvIGNsb2JiZXIgbWFjcm8gcmVnaXN0ZXJzIG9uIFg4Nl82NC4gVGhpcyBp
cyBwcm9iYWJseQorICAgICAgICAgICAgICAgIC8vIE9LIHRob3VnaC4KKyAgICAgICAgICAgICAg
ICBwYXRjaHBvaW50LT5jbG9iYmVyKFJlZ2lzdGVyU2V0OjptYWNyb1NjcmF0Y2hSZWdpc3RlcnMo
KSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgQml0VmVjdG9yIGhhbmRsZWRJ
bmRpY2VzOworICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IHN0YXJ0OyBpIDwgZW5k
OyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrIGJsb2NrID0gY2Fz
ZXNbaV0udGFyZ2V0KCk7CisgICAgICAgICAgICAgICAgICAgIGludDY0X3QgdmFsdWUgPSBjYXNl
c1tpXS5jYXNlVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoQmxvY2stPmFwcGVu
ZFN1Y2Nlc3NvcihibG9jayk7CisgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbmRleCA9IHZh
bHVlIC0gZmlyc3RWYWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUKCFoYW5kbGVkSW5k
aWNlcy5nZXQoaW5kZXgpKTsKKyAgICAgICAgICAgICAgICAgICAgaGFuZGxlZEluZGljZXMuc2V0
KGluZGV4KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAg
ICAgICAgYm9vbCBoYXNVbmhhbmRsZWRJbmRleCA9IGZhbHNlOworICAgICAgICAgICAgICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCB0YWJsZVNpemU7ICsraSkgeworICAgICAgICAgICAgICAg
ICAgICBpZiAoIWhhbmRsZWRJbmRpY2VzLmdldChpKSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgaGFzVW5oYW5kbGVkSW5kZXggPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGhhc1VuaGFuZGxlZEluZGV4KQorICAgICAgICAg
ICAgICAgICAgICBzd2l0Y2hCbG9jay0+YXBwZW5kU3VjY2Vzc29yKGZhbGxUaHJvdWdoKTsKKwor
ICAgICAgICAgICAgICAgIHBhdGNocG9pbnQtPnNldEdlbmVyYXRvcigKKyAgICAgICAgICAgICAg
ICAgICAgWz1dIChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFy
YW1zJiBwYXJhbXMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEFsbG93TWFjcm9TY3JhdGNo
UmVnaXN0ZXJVc2FnZSBhbGxvd1NjcmF0Y2goaml0KTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IAorICAgICAgICAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKiBqdW1wVGFi
bGUgPSBzdGF0aWNfY2FzdDxNYWNyb0Fzc2VtYmxlckNvZGVQdHIqPigKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwYXJhbXMucHJvYygpLmFkZERhdGFTZWN0aW9uKHNpemVvZihNYWNyb0Fz
c2VtYmxlckNvZGVQdHIpICogdGFibGVTaXplKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAK
KyAgICAgICAgICAgICAgICAgICAgICAgIEdQUlJlZyBpbmRleCA9IHBhcmFtc1swXS5ncHIoKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIEdQUlJlZyBzY3JhdGNoID0gcGFyYW1zLmdwU2NyYXRj
aCgwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAg
aml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGp1bXBUYWJsZSksIHNjcmF0Y2gp
OworICAgICAgICAgICAgICAgICAgICAgICAgaml0Lmp1bXAoQ0NhbGxIZWxwZXJzOjpCYXNlSW5k
ZXgoc2NyYXRjaCwgaW5kZXgsIENDYWxsSGVscGVyczo6dGltZXNQdHIoKSkpOworICAgICAgICAg
ICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBWZWN0b3I8Qm94PENDYWxs
SGVscGVyczo6TGFiZWw+PiBsYWJlbHMgPSBwYXJhbXMuc3VjY2Vzc29yTGFiZWxzKCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGppdC5hZGRMaW5r
VGFzaygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBbPV0gKExpbmtCdWZmZXImIGxpbmtC
dWZmZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGhhc1VuaGFuZGxl
ZEluZGV4KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYWNyb0Fzc2Vt
YmxlckNvZGVQdHIgZmFsbFRocm91Z2ggPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxpbmtCdWZmZXIubG9jYXRpb25PZigqbGFiZWxzLmxhc3QoKSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSB0YWJsZVNpemU7
IGktLTspCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganVtcFRhYmxl
W2ldID0gZmFsbFRocm91Z2g7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHVuc2lnbmVkIGxhYmVsSW5kZXggPSAwOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmb3IgKHVuc2lnbmVkIHRhYmxlSW5kZXggOiBoYW5kbGVkSW5kaWNlcykgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganVtcFRhYmxlW3RhYmxlSW5kZXhdID0K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rQnVmZmVyLmxvY2F0
aW9uT2YoKmxhYmVsc1tsYWJlbEluZGV4KytdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAg
IH0KICAgICAgICAgCiAgICAgICAgIC8vIFNlZSBjb21tZW50cyBpbiBqaXQvQmluYXJ5U3dpdGNo
LmNwcCBmb3IgYSBqdXN0aWZpY2F0aW9uIG9mIHRoaXMgYWxnb3JpdGhtLiBUaGUgb25seQogICAg
ICAgICAvLyB0aGluZyB3ZSBkbyBkaWZmZXJlbnRseSBpcyB0aGF0IHdlIGRvbid0IHVzZSByYW5k
b21uZXNzLgpAQCAtMzA0LDI1ICs0MDgsMjMgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIAogICAg
ICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxpbWl0OyArK2kpIHsKICAgICAgICAg
ICAgICAgICBCYXNpY0Jsb2NrKiBuZXh0Q2hlY2sgPSBtX2Jsb2NrSW5zZXJ0aW9uU2V0Lmluc2Vy
dEFmdGVyKG1fYmxvY2spOwotICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgICAgICAgICBtX3Byb2MsIEJyYW5jaCwgbV9vcmlnaW4sCiAgICAgICAgICAgICAg
ICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PFZhbHVlPigKLSAgICAgICAgICAgICAgICAgICAgICAg
IG1fcHJvYywgRXF1YWwsIG1fb3JpZ2luLCBtX3ZhbHVlLT5jaGlsZCgwKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIG1fcHJvYywgRXF1YWwsIG1fb3JpZ2luLCBjaGlsZCwKICAgICAgICAgICAg
ICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kSW50Q29uc3RhbnQoCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwgbV92YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlc1tzdGFydCArIGldLmNhc2VWYWx1ZSgp
KSksCi0gICAgICAgICAgICAgICAgICAgIGNhc2VzW3N0YXJ0ICsgaV0udGFyZ2V0KCksIEZyZXF1
ZW50ZWRCbG9jayhuZXh0Q2hlY2spKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3By
b2MsIG1fb3JpZ2luLCB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2VzW3N0
YXJ0ICsgaV0uY2FzZVZhbHVlKCkpKSk7CisgICAgICAgICAgICAgICAgYmVmb3JlLT5zZXRTdWNj
ZXNzb3JzKGNhc2VzW3N0YXJ0ICsgaV0udGFyZ2V0KCksIEZyZXF1ZW50ZWRCbG9jayhuZXh0Q2hl
Y2spKTsKIAogICAgICAgICAgICAgICAgIGJlZm9yZSA9IG5leHRDaGVjazsKICAgICAgICAgICAg
IH0KIAotICAgICAgICAgICAgaWYgKGFsbENvbnNlY3V0aXZlKSB7Ci0gICAgICAgICAgICAgICAg
YmVmb3JlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgICAgICAgICAgICAgbV9w
cm9jLCBKdW1wLCBtX29yaWdpbiwgY2FzZXNbZW5kIC0gMV0udGFyZ2V0KCkpOwotICAgICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAotICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIEp1bXAsIG1fb3JpZ2luLCBtX3ZhbHVl
LT5hczxTd2l0Y2hWYWx1ZT4oKS0+ZmFsbFRocm91Z2goKSk7Ci0gICAgICAgICAgICB9CisgICAg
ICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBKdW1wLCBtX29yaWdpbik7
CisgICAgICAgICAgICBpZiAoYWxsQ29uc2VjdXRpdmUpCisgICAgICAgICAgICAgICAgYmVmb3Jl
LT5zZXRTdWNjZXNzb3JzKGNhc2VzW2VuZCAtIDFdLnRhcmdldCgpKTsKKyAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICBiZWZvcmUtPnNldFN1Y2Nlc3NvcnMoZmFsbFRocm91Z2gpOwog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAgLTMzMSwxNyArNDMzLDE3IEBAIHBy
aXZhdGU6CiAgICAgICAgIEJhc2ljQmxvY2sqIGxlZnQgPSBtX2Jsb2NrSW5zZXJ0aW9uU2V0Lmlu
c2VydEFmdGVyKG1fYmxvY2spOwogICAgICAgICBCYXNpY0Jsb2NrKiByaWdodCA9IG1fYmxvY2tJ
bnNlcnRpb25TZXQuaW5zZXJ0QWZ0ZXIobV9ibG9jayk7CiAKLSAgICAgICAgYmVmb3JlLT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+KAog
ICAgICAgICAgICAgbV9wcm9jLCBCcmFuY2gsIG1fb3JpZ2luLAogICAgICAgICAgICAgYmVmb3Jl
LT5hcHBlbmROZXc8VmFsdWU+KAotICAgICAgICAgICAgICAgIG1fcHJvYywgTGVzc1RoYW4sIG1f
b3JpZ2luLCBtX3ZhbHVlLT5jaGlsZCgwKSwKKyAgICAgICAgICAgICAgICBtX3Byb2MsIExlc3NU
aGFuLCBtX29yaWdpbiwgY2hpbGQsCiAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmRJbnRD
b25zdGFudCgKLSAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwgbV92YWx1ZS0+
Y2hpbGQoMCktPnR5cGUoKSwKLSAgICAgICAgICAgICAgICAgICAgY2FzZXNbbWVkaWFuSW5kZXhd
LmNhc2VWYWx1ZSgpKSksCi0gICAgICAgICAgICBGcmVxdWVudGVkQmxvY2sobGVmdCksIEZyZXF1
ZW50ZWRCbG9jayhyaWdodCkpOworICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIG1fb3JpZ2lu
LCB0eXBlLAorICAgICAgICAgICAgICAgICAgICBjYXNlc1ttZWRpYW5JbmRleF0uY2FzZVZhbHVl
KCkpKSk7CisgICAgICAgIGJlZm9yZS0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2sobGVm
dCksIEZyZXF1ZW50ZWRCbG9jayhyaWdodCkpOwogCi0gICAgICAgIHJlY3Vyc2l2ZWx5QnVpbGRT
d2l0Y2goY2FzZXMsIHN0YXJ0LCBoYXJkU3RhcnQsIG1lZGlhbkluZGV4LCBsZWZ0KTsKLSAgICAg
ICAgcmVjdXJzaXZlbHlCdWlsZFN3aXRjaChjYXNlcywgbWVkaWFuSW5kZXgsIHRydWUsIGVuZCwg
cmlnaHQpOworICAgICAgICByZWN1cnNpdmVseUJ1aWxkU3dpdGNoKGNhc2VzLCBmYWxsVGhyb3Vn
aCwgc3RhcnQsIGhhcmRTdGFydCwgbWVkaWFuSW5kZXgsIGxlZnQpOworICAgICAgICByZWN1cnNp
dmVseUJ1aWxkU3dpdGNoKGNhc2VzLCBmYWxsVGhyb3VnaCwgbWVkaWFuSW5kZXgsIHRydWUsIGVu
ZCwgcmlnaHQpOwogICAgIH0KICAgICAKICAgICBQcm9jZWR1cmUmIG1fcHJvYzsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCShyZXZpc2lvbiAyMDI4MDkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTU1LDcgKzE1NSw2IEBAIHB1YmxpYzoKICAgICAgICAgICAgIH0KIAogICAgICAg
ICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgdGhlIHN1Y2Nlc3NvcnMgYXJlIHNldCB1cCBjb3JyZWN0
bHkuCi0gICAgICAgICAgICBBU1NFUlQoYmxvY2stPnN1Y2Nlc3NvcnMoKS5zaXplKCkgPD0gMik7
CiAgICAgICAgICAgICBmb3IgKEIzOjpGcmVxdWVudGVkQmxvY2sgc3VjY2Vzc29yIDogYmxvY2st
PnN1Y2Nlc3NvcnMoKSkgewogICAgICAgICAgICAgICAgIG1fYmxvY2tUb0Jsb2NrW2Jsb2NrXS0+
c3VjY2Vzc29ycygpLmFwcGVuZCgKICAgICAgICAgICAgICAgICAgICAgQWlyOjpGcmVxdWVudGVk
QmxvY2sobV9ibG9ja1RvQmxvY2tbc3VjY2Vzc29yLmJsb2NrKCldLCBzdWNjZXNzb3IuZnJlcXVl
bmN5KCkpKTsKQEAgLTI0NDEsNyArMjQ0MCw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLQorICAgICAgICAgICAgCiAgICAgICAgIGNh
c2UgQjM6Ok9vcHM6IHsKICAgICAgICAgICAgIGFwcGVuZChBaXI6Ok9vcHMpOwogICAgICAgICAg
ICAgcmV0dXJuOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTWF0aEV4dHJhcy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTWF0aEV4dHJhcy5j
cHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM01hdGhF
eHRyYXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDcgKzMzLDYgQEAKICNpbmNsdWRlICJCM0NvbnN0
MzJWYWx1ZS5oIgogI2luY2x1ZGUgIkIzQ29uc3REb3VibGVWYWx1ZS5oIgogI2luY2x1ZGUgIkIz
Q29uc3RQdHJWYWx1ZS5oIgotI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAi
QjNVcHNpbG9uVmFsdWUuaCIKICNpbmNsdWRlICJCM1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUg
Ik1hdGhDb21tb24uaCIKQEAgLTUyLDEwICs1MSw4IEBAIHN0ZDo6cGFpcjxCYXNpY0Jsb2NrKiwg
VmFsdWUqPiBwb3dEb3VibGUKICAgICBWYWx1ZSogc2hvdWxkR29TbG93UGF0aCA9IHN0YXJ0LT5h
cHBlbmROZXc8VmFsdWU+KHByb2NlZHVyZSwgQWJvdmUsIG9yaWdpbiwKICAgICAgICAgeSwKICAg
ICAgICAgc3RhcnQtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2NlZHVyZSwgb3JpZ2luLCBt
YXhFeHBvbmVudEZvckludGVnZXJNYXRoUG93KSk7Ci0gICAgc3RhcnQtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAotICAgICAgICBwcm9jZWR1cmUsIEJyYW5jaCwgb3JpZ2luLAotICAgICAgICBz
aG91bGRHb1Nsb3dQYXRoLAotICAgICAgICBGcmVxdWVudGVkQmxvY2soZnVuY3Rpb25DYWxsQ2Fz
ZSksIEZyZXF1ZW50ZWRCbG9jayhsb29wUHJlSGVhZGVyQ2FzZSkpOworICAgIHN0YXJ0LT5hcHBl
bmROZXc8VmFsdWU+KHByb2NlZHVyZSwgQnJhbmNoLCBvcmlnaW4sIHNob3VsZEdvU2xvd1BhdGgp
OworICAgIHN0YXJ0LT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhmdW5jdGlvbkNhbGxD
YXNlKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3BQcmVIZWFkZXJDYXNlKSk7CiAKICAgICAvLyBGdW5j
dGlvbiBjYWxsLgogICAgIFZhbHVlKiB5QXNEb3VibGUgPSBmdW5jdGlvbkNhbGxDYXNlLT5hcHBl
bmROZXc8VmFsdWU+KHByb2NlZHVyZSwgSVRvRCwgb3JpZ2luLCB5KTsKQEAgLTY1LDcgKzYyLDgg
QEAgc3RkOjpwYWlyPEJhc2ljQmxvY2sqLCBWYWx1ZSo+IHBvd0RvdWJsZQogICAgICAgICBmdW5j
dGlvbkNhbGxDYXNlLT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvY2VkdXJlLCBvcmlnaW4s
IGJpdHdpc2VfY2FzdDx2b2lkKj4ocG93RG91YmxlKSksCiAgICAgICAgIHgsIHlBc0RvdWJsZSk7
CiAgICAgVXBzaWxvblZhbHVlKiBwb3dSZXN1bHRVcHNpbG9uID0gZnVuY3Rpb25DYWxsQ2FzZS0+
YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvY2VkdXJlLCBvcmlnaW4sIHBvd1Jlc3VsdCk7Ci0g
ICAgZnVuY3Rpb25DYWxsQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvY2VkdXJlLCBK
dW1wLCBvcmlnaW4sIEZyZXF1ZW50ZWRCbG9jayhjb250aW51YXRpb24pKTsKKyAgICBmdW5jdGlv
bkNhbGxDYXNlLT5hcHBlbmROZXc8VmFsdWU+KHByb2NlZHVyZSwgSnVtcCwgb3JpZ2luKTsKKyAg
ICBmdW5jdGlvbkNhbGxDYXNlLT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhjb250aW51
YXRpb24pKTsKIAogICAgIC8vIExvb3AgcHJlLWhlYWRlci4KICAgICBWYWx1ZSogaW5pdGlhbFJl
c3VsdCA9IGxvb3BQcmVIZWFkZXJDYXNlLT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJv
Y2VkdXJlLCBvcmlnaW4sIDEuKTsKQEAgLTczLDcgKzcxLDggQEAgc3RkOjpwYWlyPEJhc2ljQmxv
Y2sqLCBWYWx1ZSo+IHBvd0RvdWJsZQogICAgIFVwc2lsb25WYWx1ZSogaW5pdGlhbFJlc3VsdFZh
bHVlID0gbG9vcFByZUhlYWRlckNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2NlZHVy
ZSwgb3JpZ2luLCBpbml0aWFsUmVzdWx0KTsKICAgICBVcHNpbG9uVmFsdWUqIGluaXRpYWxTcXVh
cmVkSW5wdXQgPSBsb29wUHJlSGVhZGVyQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJv
Y2VkdXJlLCBvcmlnaW4sIHgpOwogICAgIFVwc2lsb25WYWx1ZSogaW5pdGlhbExvb3BDb3VudGVy
ID0gbG9vcFByZUhlYWRlckNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2NlZHVyZSwg
b3JpZ2luLCB5KTsKLSAgICBsb29wUHJlSGVhZGVyQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvY2VkdXJlLCBKdW1wLCBvcmlnaW4sIEZyZXF1ZW50ZWRCbG9jayhsb29wVGVzdEZvckV2
ZW5DYXNlKSk7CisgICAgbG9vcFByZUhlYWRlckNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvY2Vk
dXJlLCBKdW1wLCBvcmlnaW4pOworICAgIGxvb3BQcmVIZWFkZXJDYXNlLT5zZXRTdWNjZXNzb3Jz
KEZyZXF1ZW50ZWRCbG9jayhsb29wVGVzdEZvckV2ZW5DYXNlKSk7CiAKICAgICAvLyBUZXN0IGlm
IHdoYXQgaXMgbGVmdCBvZiB0aGUgY291bnRlciBpcyBldmVuLgogICAgIFZhbHVlKiBpbkxvb3BD
b3VudGVyID0gbG9vcFRlc3RGb3JFdmVuQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihwcm9jZWR1cmUs
IFBoaSwgSW50MzIsIG9yaWdpbik7CkBAIC04MSwxMCArODAsOCBAQCBzdGQ6OnBhaXI8QmFzaWNC
bG9jayosIFZhbHVlKj4gcG93RG91YmxlCiAgICAgVmFsdWUqIGxhc3RDb3VudGVyQml0ID0gbG9v
cFRlc3RGb3JFdmVuQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihwcm9jZWR1cmUsIEJpdEFuZCwgb3Jp
Z2luLAogICAgICAgICBpbkxvb3BDb3VudGVyLAogICAgICAgICBsb29wVGVzdEZvckV2ZW5DYXNl
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jZWR1cmUsIG9yaWdpbiwgMSkpOwotICAgIGxv
b3BUZXN0Rm9yRXZlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAotICAgICAgICBwcm9j
ZWR1cmUsIEJyYW5jaCwgb3JpZ2luLAotICAgICAgICBsYXN0Q291bnRlckJpdCwKLSAgICAgICAg
RnJlcXVlbnRlZEJsb2NrKGxvb3BPZGQpLCBGcmVxdWVudGVkQmxvY2sobG9vcEV2ZW5PZGQpKTsK
KyAgICBsb29wVGVzdEZvckV2ZW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+KHByb2NlZHVyZSwgQnJh
bmNoLCBvcmlnaW4sIGxhc3RDb3VudGVyQml0KTsKKyAgICBsb29wVGVzdEZvckV2ZW5DYXNlLT5z
ZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhsb29wT2RkKSwgRnJlcXVlbnRlZEJsb2NrKGxv
b3BFdmVuT2RkKSk7CiAKICAgICAvLyBDb3VudGVyIGlzIG9kZC4KICAgICBWYWx1ZSogaW5Mb29w
UmVzdWx0ID0gbG9vcE9kZC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jZWR1cmUsIFBoaSwgRG91Ymxl
LCBvcmlnaW4pOwpAQCAtOTQsNyArOTEsOCBAQCBzdGQ6OnBhaXI8QmFzaWNCbG9jayosIFZhbHVl
Kj4gcG93RG91YmxlCiAgICAgdXBkYXRlZExvb3BSZXN1bHRVcHNpbG9uLT5zZXRQaGkoaW5Mb29w
UmVzdWx0KTsKICAgICBVcHNpbG9uVmFsdWUqIHVwZGF0ZWRMb29wUmVzdWx0ID0gbG9vcE9kZC0+
YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvY2VkdXJlLCBvcmlnaW4sIHVwZGF0ZWRSZXN1bHQp
OwogCi0gICAgbG9vcE9kZC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvY2VkdXJlLCBKdW1w
LCBvcmlnaW4sIEZyZXF1ZW50ZWRCbG9jayhsb29wRXZlbk9kZCkpOworICAgIGxvb3BPZGQtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvY2VkdXJlLCBKdW1wLCBvcmlnaW4pOworICAgIGxvb3BPZGQtPnNl
dFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2NrKGxvb3BFdmVuT2RkKSk7CiAKICAgICAvLyBFdmVu
IHZhbHVlIGFuZCBmb2xsb3dpbmcgdGhlIE9kZC4KICAgICBWYWx1ZSogc3F1YXJlZElucHV0ID0g
bG9vcEV2ZW5PZGQtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvY2VkdXJlLCBNdWwsIG9yaWdpbiwgaW5M
b29wU3F1YXJlZElucHV0LCBpbkxvb3BTcXVhcmVkSW5wdXQpOwpAQCAtMTA5LDEwICsxMDcsOCBA
QCBzdGQ6OnBhaXI8QmFzaWNCbG9jayosIFZhbHVlKj4gcG93RG91YmxlCiAgICAgaW5pdGlhbExv
b3BDb3VudGVyLT5zZXRQaGkoaW5Mb29wQ291bnRlcik7CiAgICAgdXBkYXRlZENvdW50ZXJVcHNp
bG9uLT5zZXRQaGkoaW5Mb29wQ291bnRlcik7CiAKLSAgICBsb29wRXZlbk9kZC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCi0gICAgICAgIHByb2NlZHVyZSwgQnJhbmNoLCBvcmlnaW4sCi0gICAg
ICAgIHVwZGF0ZWRDb3VudGVyLAotICAgICAgICBGcmVxdWVudGVkQmxvY2sobG9vcFRlc3RGb3JF
dmVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhjb250aW51YXRpb24pKTsKKyAgICBsb29wRXZlbk9k
ZC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jZWR1cmUsIEJyYW5jaCwgb3JpZ2luLCB1cGRhdGVkQ291
bnRlcik7CisgICAgbG9vcEV2ZW5PZGQtPnNldFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2NrKGxv
b3BUZXN0Rm9yRXZlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soY29udGludWF0aW9uKSk7CiAKICAg
ICAvLyBJbmxpbmUgbG9vcC4KICAgICBWYWx1ZSogZmluYWxSZXN1bHRQaGkgPSBjb250aW51YXRp
b24tPmFwcGVuZE5ldzxWYWx1ZT4ocHJvY2VkdXJlLCBQaGksIERvdWJsZSwgb3JpZ2luKTsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjA3
LDIxICsyMDcsMjEgQEAgZW51bSBPcGNvZGUgOiBpbnQxNl90IHsKICAgICBVcHNpbG9uLCAvLyBU
aGlzIHVzZXMgdGhlIFVwc2lsb25WYWx1ZSBjbGFzcy4KICAgICBQaGksCiAKLSAgICAvLyBKdW1w
LiBVc2VzIHRoZSBDb250cm9sVmFsdWUgY2xhc3MuCisgICAgLy8gSnVtcC4KICAgICBKdW1wLAog
ICAgIAotICAgIC8vIFBvbHltb3JwaGljIGJyYW5jaCwgdXNhYmxlIHdpdGggYW55IGludGVnZXIg
dHlwZS4gQnJhbmNoZXMgaWYgbm90IGVxdWFsIHRvIHplcm8uIFVzZXMgdGhlCi0gICAgLy8gQ29u
dHJvbFZhbHVlIGNsYXNzLCB3aXRoIHRoZSAwLWluZGV4IHN1Y2Nlc3NvciBiZWluZyB0aGUgdHJ1
ZSBzdWNjZXNzb3IuCisgICAgLy8gUG9seW1vcnBoaWMgYnJhbmNoLCB1c2FibGUgd2l0aCBhbnkg
aW50ZWdlciB0eXBlLiBCcmFuY2hlcyBpZiBub3QgZXF1YWwgdG8gemVyby4gVGhlIDAtaW5kZXgK
KyAgICAvLyBzdWNjZXNzb3IgaXMgdGhlIHRydWUgc3VjY2Vzc29yLgogICAgIEJyYW5jaCwKIAog
ICAgIC8vIFN3aXRjaC4gU3dpdGNoZXMgb3ZlciBlaXRoZXIgSW50MzIgb3IgSW50NjQuIFVzZXMg
dGhlIFN3aXRjaFZhbHVlIGNsYXNzLgogICAgIFN3aXRjaCwKLQorICAgIAogICAgIC8vIFJldHVy
bi4gTm90ZSB0aGF0IEIzIHByb2NlZHVyZXMgZG9uJ3Qga25vdyB0aGVpciByZXR1cm4gdHlwZSwg
c28gdGhpcyBjYW4ganVzdCByZXR1cm4gYW55Ci0gICAgLy8gdHlwZS4gVXNlcyB0aGUgQ29udHJv
bFZhbHVlIGNsYXNzLgorICAgIC8vIHR5cGUuCiAgICAgUmV0dXJuLAogCi0gICAgLy8gVGhpcyBp
cyBhIHRlcm1pbmFsIHRoYXQgaW5kaWNhdGVzIHRoYXQgd2Ugd2lsbCBuZXZlciBnZXQgaGVyZS4g
VXNlcyB0aGUgQ29udHJvbFZhbHVlIGNsYXNzLgorICAgIC8vIFRoaXMgaXMgYSB0ZXJtaW5hbCB0
aGF0IGluZGljYXRlcyB0aGF0IHdlIHdpbGwgbmV2ZXIgZ2V0IGhlcmUuCiAgICAgT29wcwogfTsK
IApAQCAtMjU5LDYgKzI1OSwyMCBAQCBpbmxpbmUgYm9vbCBpc0NvbnN0YW50KE9wY29kZSBvcGNv
ZGUpCiAgICAgfQogfQogCitpbmxpbmUgYm9vbCBpc0RlZmluaXRlbHlUZXJtaW5hbChPcGNvZGUg
b3Bjb2RlKQoreworICAgIHN3aXRjaCAob3Bjb2RlKSB7CisgICAgY2FzZSBKdW1wOgorICAgIGNh
c2UgQnJhbmNoOgorICAgIGNhc2UgU3dpdGNoOgorICAgIGNhc2UgT29wczoKKyAgICBjYXNlIFJl
dHVybjoKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIH0KK30KKwogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzCiAKIG5hbWVzcGFj
ZSBXVEYgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUGF0Y2hwb2ludFNwZWNp
YWwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BhdGNocG9p
bnRTcGVjaWFsLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzUGF0Y2hwb2ludFNwZWNpYWwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDYsNiArMTQ2
LDExIEBAIENDYWxsSGVscGVyczo6SnVtcCBQYXRjaHBvaW50U3BlY2lhbDo6Z2UKICAgICByZXR1
cm4gQ0NhbGxIZWxwZXJzOjpKdW1wKCk7CiB9CiAKK2Jvb2wgUGF0Y2hwb2ludFNwZWNpYWw6Omlz
VGVybWluYWwoSW5zdCYgaW5zdCkKK3sKKyAgICByZXR1cm4gaW5zdC5vcmlnaW4tPmFzPFBhdGNo
cG9pbnRWYWx1ZT4oKS0+ZWZmZWN0cy50ZXJtaW5hbDsKK30KKwogdm9pZCBQYXRjaHBvaW50U3Bl
Y2lhbDo6ZHVtcEltcGwoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHsKICAgICBvdXQucHJpbnQo
IlBhdGNocG9pbnQiKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BhdGNocG9p
bnRTcGVjaWFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUGF0
Y2hwb2ludFNwZWNpYWwuaAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzUGF0Y2hwb2ludFNwZWNpYWwuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01Niw2ICs1Niw4IEBA
IHByb3RlY3RlZDoKICAgICAvLyBnZW5lcmF0ZXMgdGhlIHN0YWNrbWFwLiBTdXBlciBjcmF6eSBk
dWRlIQogCiAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGdlbmVyYXRlKEFpcjo6SW5zdCYsIENDYWxs
SGVscGVycyYsIEFpcjo6R2VuZXJhdGlvbkNvbnRleHQmKSBvdmVycmlkZTsKKyAgICAKKyAgICBi
b29sIGlzVGVybWluYWwoQWlyOjpJbnN0Jikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGR1bXBJbXBs
KFByaW50U3RyZWFtJikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBkZWVwRHVtcEltcGwoUHJp
bnRTdHJlYW0mKSBjb25zdCBvdmVycmlkZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1Byb2NlZHVyZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzUHJvY2VkdXJlLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzUHJvY2VkdXJlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQ4LDMxICsxNDgsNiBA
QCB2b2lkIFByb2NlZHVyZTo6cmVzZXRWYWx1ZU93bmVycygpCiAKIHZvaWQgUHJvY2VkdXJlOjpy
ZXNldFJlYWNoYWJpbGl0eSgpCiB7Ci0gICAgaWYgKHNob3VsZFZhbGlkYXRlSVIoKSkgewotICAg
ICAgICAvLyBWYWxpZGF0ZSB0aGUgYmFzaWMgcHJvcGVydGllcyB0aGF0IHdlIG5lZWQgZm9yIHJl
c2V0dGluZyByZWFjaGFiaWxpdHkuIFdlIG9mdGVuIHJlc2V0Ci0gICAgICAgIC8vIHJlYWNoYWJp
bGl0eSBiZWZvcmUgSVIgdmFsaWRhdGlvbiwgc28gd2l0aG91dCB0aGlzIG1pbmktdmFsaWRhdGlv
biwgeW91IHdvdWxkIGNyYXNoIGluc2lkZQotICAgICAgICAvLyBCMzo6cmVzZXRSZWFjaGFiaWxp
dHkoKSB3aXRob3V0IGdldHRpbmcgYW55IElSIGR1bXAuCi0KLSAgICAgICAgQmFzaWNCbG9jayog
YmFkQmxvY2sgPSBudWxscHRyOwotICAgICAgICBmb3IgKEJhc2ljQmxvY2sqIGJsb2NrIDogKnRo
aXMpIHsKLSAgICAgICAgICAgIGlmICghYmxvY2stPnNpemUoKSkgewotICAgICAgICAgICAgICAg
IGJhZEJsb2NrID0gYmxvY2s7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9
Ci0KLSAgICAgICAgICAgIGlmICghYmxvY2stPmxhc3QoKS0+YXM8Q29udHJvbFZhbHVlPigpKSB7
Ci0gICAgICAgICAgICAgICAgYmFkQmxvY2sgPSBibG9jazsKLSAgICAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIGlmIChiYWRCbG9jaykgewot
ICAgICAgICAgICAgZGF0YUxvZygiRkFUQUw6IEludmFsaWQgYmFzaWMgYmxvY2sgIiwgKmJhZEJs
b2NrLCAiIHdoaWxlIHJ1bm5pbmcgUHJvY2VkdXJlOjpyZXNldFJlYWNoYWJpbGl0eSgpLlxuIik7
Ci0gICAgICAgICAgICBkYXRhTG9nKCp0aGlzKTsKLSAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgCiAgICAgcmVjb21wdXRlUHJl
ZGVjZXNzb3JzKG1fYmxvY2tzKTsKICAgICAKICAgICAvLyBUaGUgY29tbW9uIGNhc2UgaXMgdGhh
dCB0aGlzIGRvZXMgbm90IGZpbmQgYW55IGRlYWQgYmxvY2tzLgpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzUHJvY2VkdXJlLmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTgsNyArMjE4
LDEwIEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IGNoYXIqIGxhc3RQaGFzZU5hbWUoKSBjb25zdCB7
IHJldHVybiBtX2xhc3RQaGFzZU5hbWU7IH0KIAotICAgIHZvaWQqIGFkZERhdGFTZWN0aW9uKHNp
emVfdCBzaXplKTsKKyAgICAvLyBBbGxvY2F0ZXMgYSBzbGFiIG9mIG1lbW9yeSB0aGF0IHdpbGwg
YmUga2VwdCBhbGl2ZSBieSBhbnlvbmUgd2hvIGtlZXBzIHRoZSByZXN1bHRpbmcgY29kZQorICAg
IC8vIGFsaXZlLiBHcmVhdCBmb3IgY29tcGlsZXItZ2VuZXJhdGVkIGRhdGEgc2VjdGlvbnMsIGxp
a2Ugc3dpdGNoIGp1bXAgdGFibGVzIGFuZCBjb25zdGFudCBwb29scy4KKyAgICAvLyBUaGlzIHJl
dHVybnMgbWVtb3J5IHRoYXQgaGFzIGJlZW4gemVyby1pbml0aWFsaXplZC4KKyAgICB2b2lkKiBh
ZGREYXRhU2VjdGlvbihzaXplX3QpOwogCiAgICAgT3BhcXVlQnlwcm9kdWN0cyYgYnlwcm9kdWN0
cygpIHsgcmV0dXJuICptX2J5cHJvZHVjdHM7IH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrSW5saW5lcy5oIgogI2lu
Y2x1ZGUgIkIzQmxvY2tJbnNlcnRpb25TZXQuaCIKICNpbmNsdWRlICJCM0NvbXB1dGVEaXZpc2lv
bk1hZ2ljLmgiCi0jaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKICNpbmNsdWRlICJCM0RvbWlu
YXRvcnMuaCIKICNpbmNsdWRlICJCM0luZGV4U2V0LmgiCiAjaW5jbHVkZSAiQjNJbnNlcnRpb25T
ZXRJbmxpbmVzLmgiCkBAIC0xNzE3LDcgKzE3MTYsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAg
ICAgIC8vIFJlcGxhY2UgdGhlIHJlc3Qgb2YgdGhlIGJsb2NrIHdpdGggYW4gT29wcy4KICAgICAg
ICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBtX2luZGV4ICsgMTsgaSA8IG1fYmxvY2stPnNp
emUoKSAtIDE7ICsraSkKICAgICAgICAgICAgICAgICAgICAgbV9ibG9jay0+YXQoaSktPnJlcGxh
Y2VXaXRoQm90dG9tKG1faW5zZXJ0aW9uU2V0LCBtX2luZGV4KTsKLSAgICAgICAgICAgICAgICBt
X2Jsb2NrLT5sYXN0KCktPmFzPENvbnRyb2xWYWx1ZT4oKS0+Y29udmVydFRvT29wcygpOworICAg
ICAgICAgICAgICAgIG1fYmxvY2stPmxhc3QoKS0+cmVwbGFjZVdpdGhPb3BzKG1fYmxvY2spOwog
ICAgICAgICAgICAgICAgIG1fYmxvY2stPmxhc3QoKS0+c2V0T3JpZ2luKGNoZWNrVmFsdWUtPm9y
aWdpbigpKTsKIAogICAgICAgICAgICAgICAgIC8vIFJlcGxhY2Ugb3Vyc2VsdmVzIGxhc3QuCkBA
IC0xNzczLDYgKzE3NzIsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICByZXR1cm4g
dmFsdWUtPm9wY29kZSgpID09IFNlbGVjdAogICAgICAgICAgICAgICAgICAgICAgICAgJiYgKHZh
bHVlLT5jaGlsZCgxKS0+aXNDb25zdGFudCgpICYmIHZhbHVlLT5jaGlsZCgyKS0+aXNDb25zdGFu
dCgpKTsKICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIAogICAgICAgICAgICAgaWYg
KHNlbGVjdCkgewogICAgICAgICAgICAgICAgIHNwZWNpYWxpemVTZWxlY3Qoc2VsZWN0KTsKICAg
ICAgICAgICAgICAgICBicmVhazsKQEAgLTE3ODEsNTAgKzE3ODEsNDggQEAgcHJpdmF0ZToKICAg
ICAgICAgfQogCiAgICAgICAgIGNhc2UgQnJhbmNoOiB7Ci0gICAgICAgICAgICBDb250cm9sVmFs
dWUqIGJyYW5jaCA9IG1fdmFsdWUtPmFzPENvbnRyb2xWYWx1ZT4oKTsKLQogICAgICAgICAgICAg
Ly8gVHVybiB0aGlzOiBCcmFuY2goTm90RXF1YWwoeCwgMCkpCiAgICAgICAgICAgICAvLyBJbnRv
IHRoaXM6IEJyYW5jaCh4KQotICAgICAgICAgICAgaWYgKGJyYW5jaC0+Y2hpbGQoMCktPm9wY29k
ZSgpID09IE5vdEVxdWFsICYmIGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDEpLT5pc0ludCgwKSkg
ewotICAgICAgICAgICAgICAgIGJyYW5jaC0+Y2hpbGQoMCkgPSBicmFuY2gtPmNoaWxkKDApLT5j
aGlsZCgwKTsKKyAgICAgICAgICAgIGlmIChtX3ZhbHVlLT5jaGlsZCgwKS0+b3Bjb2RlKCkgPT0g
Tm90RXF1YWwgJiYgbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDEpLT5pc0ludCgwKSkgeworICAg
ICAgICAgICAgICAgIG1fdmFsdWUtPmNoaWxkKDApID0gbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxk
KDApOwogICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAgICB9CiAK
ICAgICAgICAgICAgIC8vIFR1cm4gdGhpczogQnJhbmNoKEVxdWFsKHgsIDApLCB0aGVuLCBlbHNl
KQogICAgICAgICAgICAgLy8gSW50byB0aGlzOiBCcmFuY2goeCwgZWxzZSwgdGhlbikKLSAgICAg
ICAgICAgIGlmIChicmFuY2gtPmNoaWxkKDApLT5vcGNvZGUoKSA9PSBFcXVhbCAmJiBicmFuY2gt
PmNoaWxkKDApLT5jaGlsZCgxKS0+aXNJbnQoMCkpIHsKLSAgICAgICAgICAgICAgICBicmFuY2gt
PmNoaWxkKDApID0gYnJhbmNoLT5jaGlsZCgwKS0+Y2hpbGQoMCk7Ci0gICAgICAgICAgICAgICAg
c3RkOjpzd2FwKGJyYW5jaC0+dGFrZW4oKSwgYnJhbmNoLT5ub3RUYWtlbigpKTsKKyAgICAgICAg
ICAgIGlmIChtX3ZhbHVlLT5jaGlsZCgwKS0+b3Bjb2RlKCkgPT0gRXF1YWwgJiYgbV92YWx1ZS0+
Y2hpbGQoMCktPmNoaWxkKDEpLT5pc0ludCgwKSkgeworICAgICAgICAgICAgICAgIG1fdmFsdWUt
PmNoaWxkKDApID0gbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDApOworICAgICAgICAgICAgICAg
IHN0ZDo6c3dhcChtX2Jsb2NrLT50YWtlbigpLCBtX2Jsb2NrLT5ub3RUYWtlbigpKTsKICAgICAg
ICAgICAgICAgICBtX2NoYW5nZWQgPSB0cnVlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAg
CiAgICAgICAgICAgICAvLyBUdXJuIHRoaXM6IEJyYW5jaChCaXRYb3IoYm9vbCwgMSksIHRoZW4s
IGVsc2UpCiAgICAgICAgICAgICAvLyBJbnRvIHRoaXM6IEJyYW5jaChib29sLCBlbHNlLCB0aGVu
KQotICAgICAgICAgICAgaWYgKGJyYW5jaC0+Y2hpbGQoMCktPm9wY29kZSgpID09IEJpdFhvcgot
ICAgICAgICAgICAgICAgICYmIGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDEpLT5pc0ludDMyKDEp
Ci0gICAgICAgICAgICAgICAgJiYgYnJhbmNoLT5jaGlsZCgwKS0+Y2hpbGQoMCktPnJldHVybnNC
b29sKCkpIHsKLSAgICAgICAgICAgICAgICBicmFuY2gtPmNoaWxkKDApID0gYnJhbmNoLT5jaGls
ZCgwKS0+Y2hpbGQoMCk7Ci0gICAgICAgICAgICAgICAgc3RkOjpzd2FwKGJyYW5jaC0+dGFrZW4o
KSwgYnJhbmNoLT5ub3RUYWtlbigpKTsKKyAgICAgICAgICAgIGlmIChtX3ZhbHVlLT5jaGlsZCgw
KS0+b3Bjb2RlKCkgPT0gQml0WG9yCisgICAgICAgICAgICAgICAgJiYgbV92YWx1ZS0+Y2hpbGQo
MCktPmNoaWxkKDEpLT5pc0ludDMyKDEpCisgICAgICAgICAgICAgICAgJiYgbV92YWx1ZS0+Y2hp
bGQoMCktPmNoaWxkKDApLT5yZXR1cm5zQm9vbCgpKSB7CisgICAgICAgICAgICAgICAgbV92YWx1
ZS0+Y2hpbGQoMCkgPSBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMCk7CisgICAgICAgICAgICAg
ICAgc3RkOjpzd2FwKG1fYmxvY2stPnRha2VuKCksIG1fYmxvY2stPm5vdFRha2VuKCkpOwogICAg
ICAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAgICB9CiAKICAgICAgICAg
ICAgIC8vIFR1cm4gdGhpczogQnJhbmNoKEJpdEFuZChib29sLCB4eWIxKSwgdGhlbiwgZWxzZSkK
ICAgICAgICAgICAgIC8vIEludG8gdGhpczogQnJhbmNoKGJvb2wsIHRoZW4sIGVsc2UpCi0gICAg
ICAgICAgICBpZiAoYnJhbmNoLT5jaGlsZCgwKS0+b3Bjb2RlKCkgPT0gQml0QW5kCi0gICAgICAg
ICAgICAgICAgJiYgYnJhbmNoLT5jaGlsZCgwKS0+Y2hpbGQoMSktPmhhc0ludCgpCi0gICAgICAg
ICAgICAgICAgJiYgYnJhbmNoLT5jaGlsZCgwKS0+Y2hpbGQoMSktPmFzSW50KCkgJiAxCi0gICAg
ICAgICAgICAgICAgJiYgYnJhbmNoLT5jaGlsZCgwKS0+Y2hpbGQoMCktPnJldHVybnNCb29sKCkp
IHsKLSAgICAgICAgICAgICAgICBicmFuY2gtPmNoaWxkKDApID0gYnJhbmNoLT5jaGlsZCgwKS0+
Y2hpbGQoMCk7CisgICAgICAgICAgICBpZiAobV92YWx1ZS0+Y2hpbGQoMCktPm9wY29kZSgpID09
IEJpdEFuZAorICAgICAgICAgICAgICAgICYmIG1fdmFsdWUtPmNoaWxkKDApLT5jaGlsZCgxKS0+
aGFzSW50KCkKKyAgICAgICAgICAgICAgICAmJiBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMSkt
PmFzSW50KCkgJiAxCisgICAgICAgICAgICAgICAgJiYgbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxk
KDApLT5yZXR1cm5zQm9vbCgpKSB7CisgICAgICAgICAgICAgICAgbV92YWx1ZS0+Y2hpbGQoMCkg
PSBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMCk7CiAgICAgICAgICAgICAgICAgbV9jaGFuZ2Vk
ID0gdHJ1ZTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgVHJpU3RhdGUgdHJpU3RhdGUg
PSBicmFuY2gtPmNoaWxkKDApLT5hc1RyaVN0YXRlKCk7CisgICAgICAgICAgICBUcmlTdGF0ZSB0
cmlTdGF0ZSA9IG1fdmFsdWUtPmNoaWxkKDApLT5hc1RyaVN0YXRlKCk7CiAKICAgICAgICAgICAg
IC8vIFR1cm4gdGhpczogQnJhbmNoKDAsIHRoZW4sIGVsc2UpCiAgICAgICAgICAgICAvLyBJbnRv
IHRoaXM6IEp1bXAoZWxzZSkKICAgICAgICAgICAgIGlmICh0cmlTdGF0ZSA9PSBGYWxzZVRyaVN0
YXRlKSB7Ci0gICAgICAgICAgICAgICAgYnJhbmNoLT50YWtlbigpLmJsb2NrKCktPnJlbW92ZVBy
ZWRlY2Vzc29yKG1fYmxvY2spOwotICAgICAgICAgICAgICAgIGJyYW5jaC0+Y29udmVydFRvSnVt
cChicmFuY2gtPm5vdFRha2VuKCkuYmxvY2soKSk7CisgICAgICAgICAgICAgICAgbV9ibG9jay0+
dGFrZW4oKS5ibG9jaygpLT5yZW1vdmVQcmVkZWNlc3NvcihtX2Jsb2NrKTsKKyAgICAgICAgICAg
ICAgICBtX3ZhbHVlLT5yZXBsYWNlV2l0aEp1bXAobV9ibG9jaywgbV9ibG9jay0+bm90VGFrZW4o
KSk7CiAgICAgICAgICAgICAgICAgbV9jaGFuZ2VkQ0ZHID0gdHJ1ZTsKICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgIH0KQEAgLTE4MzIsOCArMTgzMCw4IEBAIHByaXZhdGU6CiAg
ICAgICAgICAgICAvLyBUdXJuIHRoaXM6IEJyYW5jaChub3QgMCwgdGhlbiwgZWxzZSkKICAgICAg
ICAgICAgIC8vIEludG8gdGhpczogSnVtcCh0aGVuKQogICAgICAgICAgICAgaWYgKHRyaVN0YXRl
ID09IFRydWVUcmlTdGF0ZSkgewotICAgICAgICAgICAgICAgIGJyYW5jaC0+bm90VGFrZW4oKS5i
bG9jaygpLT5yZW1vdmVQcmVkZWNlc3NvcihtX2Jsb2NrKTsKLSAgICAgICAgICAgICAgICBicmFu
Y2gtPmNvbnZlcnRUb0p1bXAoYnJhbmNoLT50YWtlbigpLmJsb2NrKCkpOworICAgICAgICAgICAg
ICAgIG1fYmxvY2stPm5vdFRha2VuKCkuYmxvY2soKS0+cmVtb3ZlUHJlZGVjZXNzb3IobV9ibG9j
ayk7CisgICAgICAgICAgICAgICAgbV92YWx1ZS0+cmVwbGFjZVdpdGhKdW1wKG1fYmxvY2ssIG1f
YmxvY2stPnRha2VuKCkpOwogICAgICAgICAgICAgICAgIG1fY2hhbmdlZENGRyA9IHRydWU7CiAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CkBAIC0xODQyLDEyICsxODQwLDEy
IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAvLyBvZiBtYWtlcyBzZW5zZSBoZXJlIGJlY2F1c2Ug
aXQncyBjaGVhcCwgYnV0IGhhY2tzIGxpa2UgdGhpcyBzaG93IHRoYXQgd2UncmUgZ29pbmcKICAg
ICAgICAgICAgIC8vIHRvIG5lZWQgU0NDUC4KICAgICAgICAgICAgIFZhbHVlKiBjaGVjayA9IG1f
cHVyZUNTRS5maW5kTWF0Y2goCi0gICAgICAgICAgICAgICAgVmFsdWVLZXkoQ2hlY2ssIFZvaWQs
IGJyYW5jaC0+Y2hpbGQoMCkpLCBtX2Jsb2NrLCAqbV9kb21pbmF0b3JzKTsKKyAgICAgICAgICAg
ICAgICBWYWx1ZUtleShDaGVjaywgVm9pZCwgbV92YWx1ZS0+Y2hpbGQoMCkpLCBtX2Jsb2NrLCAq
bV9kb21pbmF0b3JzKTsKICAgICAgICAgICAgIGlmIChjaGVjaykgewogICAgICAgICAgICAgICAg
IC8vIFRoZSBDaGVjayB3b3VsZCBoYXZlIHNpZGUtZXhpdGVkIGlmIGNoaWxkKDApIHdhcyBub24t
emVyby4gU28sIGl0IG11c3QgYmUKICAgICAgICAgICAgICAgICAvLyB6ZXJvIGhlcmUuCi0gICAg
ICAgICAgICAgICAgYnJhbmNoLT50YWtlbigpLmJsb2NrKCktPnJlbW92ZVByZWRlY2Vzc29yKG1f
YmxvY2spOwotICAgICAgICAgICAgICAgIGJyYW5jaC0+Y29udmVydFRvSnVtcChicmFuY2gtPm5v
dFRha2VuKCkuYmxvY2soKSk7CisgICAgICAgICAgICAgICAgbV9ibG9jay0+dGFrZW4oKS5ibG9j
aygpLT5yZW1vdmVQcmVkZWNlc3NvcihtX2Jsb2NrKTsKKyAgICAgICAgICAgICAgICBtX3ZhbHVl
LT5yZXBsYWNlV2l0aEp1bXAobV9ibG9jaywgbV9ibG9jay0+bm90VGFrZW4oKSk7CiAgICAgICAg
ICAgICAgICAgbV9jaGFuZ2VkQ0ZHID0gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IGJyZWFrOwpAQCAtMTk4NiwxMyArMTk4NCwxMiBAQCBwcml2YXRlOgogICAgICAgICAvLyBSZW1v
dmUgdGhlIHZhbHVlcyBmcm9tIHRoZSBwcmVkZWNlc3Nvci4KICAgICAgICAgcHJlZGVjZXNzb3It
PnZhbHVlcygpLnJlc2l6ZShzdGFydEluZGV4KTsKICAgICAgICAgCi0gICAgICAgIHByZWRlY2Vz
c29yLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgICAgIG1fcHJvYywgQnJhbmNo
LCBzb3VyY2UtPm9yaWdpbigpLCBwcmVkaWNhdGUsCi0gICAgICAgICAgICBGcmVxdWVudGVkQmxv
Y2soY2FzZXNbMF0pLCBGcmVxdWVudGVkQmxvY2soY2FzZXNbMV0pKTsKKyAgICAgICAgcHJlZGVj
ZXNzb3ItPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBCcmFuY2gsIHNvdXJjZS0+b3JpZ2luKCks
IHByZWRpY2F0ZSk7CisgICAgICAgIHByZWRlY2Vzc29yLT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50
ZWRCbG9jayhjYXNlc1swXSksIEZyZXF1ZW50ZWRCbG9jayhjYXNlc1sxXSkpOwogCiAgICAgICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1DYXNlczsgKytpKSB7Ci0gICAgICAgICAgICBj
YXNlc1tpXS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCi0gICAgICAgICAgICAgICAgbV9wcm9j
LCBKdW1wLCBtX3ZhbHVlLT5vcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKG1fYmxvY2spKTsKKyAg
ICAgICAgICAgIGNhc2VzW2ldLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgSnVtcCwgbV92YWx1
ZS0+b3JpZ2luKCkpOworICAgICAgICAgICAgY2FzZXNbaV0tPnNldFN1Y2Nlc3NvcnMoRnJlcXVl
bnRlZEJsb2NrKG1fYmxvY2spKTsKICAgICAgICAgfQogCiAgICAgICAgIG1fY2hhbmdlZCA9IHRy
dWU7CkBAIC0yMjIxLDcgKzIyMTgsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGRhdGFMb2coCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDaGFuZ2lu
ZyAiLCBwb2ludGVyRHVtcChibG9jayksICIncyB0ZXJtaW5hbCB0byBhIEp1bXAuXG4iKTsKICAg
ICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLT5s
YXN0KCktPmFzPENvbnRyb2xWYWx1ZT4oKS0+Y29udmVydFRvSnVtcChmaXJzdFN1Y2Nlc3Nvcik7
CisgICAgICAgICAgICAgICAgICAgICAgICBibG9jay0+bGFzdCgpLT5yZXBsYWNlV2l0aEp1bXAo
YmxvY2ssIEZyZXF1ZW50ZWRCbG9jayhmaXJzdFN1Y2Nlc3NvcikpOwogICAgICAgICAgICAgICAg
ICAgICAgICAgbV9jaGFuZ2VkQ0ZHID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgIH0KQEAgLTIyMzksMTYgKzIyMzYsMTggQEAgcHJpdmF0ZToKICAgICAgICAg
ICAgICAgICAgICAgLy8gUmVtb3ZlIHRoZSB0ZXJtaW5hbC4KICAgICAgICAgICAgICAgICAgICAg
VmFsdWUqIHZhbHVlID0gYmxvY2stPnZhbHVlcygpLnRha2VMYXN0KCk7CiAgICAgICAgICAgICAg
ICAgICAgIE9yaWdpbiBqdW1wT3JpZ2luID0gdmFsdWUtPm9yaWdpbigpOwotICAgICAgICAgICAg
ICAgICAgICBSRUxFQVNFX0FTU0VSVCh2YWx1ZS0+YXM8Q29udHJvbFZhbHVlPigpKTsKKyAgICAg
ICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQodmFsdWUtPmVmZmVjdHMoKS50ZXJtaW5hbCk7
CiAgICAgICAgICAgICAgICAgICAgIG1fcHJvYy5kZWxldGVWYWx1ZSh2YWx1ZSk7CiAgICAgICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAvLyBBcHBlbmQgdGhlIGZ1bGwgY29u
dGVudHMgb2YgdGhlIHN1Y2Nlc3NvciB0byB0aGUgcHJlZGVjZXNzb3IuCiAgICAgICAgICAgICAg
ICAgICAgIGJsb2NrLT52YWx1ZXMoKS5hcHBlbmRWZWN0b3Ioc3VjY2Vzc29yLT52YWx1ZXMoKSk7
CisgICAgICAgICAgICAgICAgICAgIGJsb2NrLT5zdWNjZXNzb3JzKCkgPSBzdWNjZXNzb3ItPnN1
Y2Nlc3NvcnMoKTsKICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgIC8v
IE1ha2Ugc3VyZSB0aGF0IHRoZSBzdWNjZXNzb3IgaGFzIG5vdGhpbmcgbGVmdCBpbiBpdC4gTWFr
ZSBzdXJlIHRoYXQgdGhlIGJsb2NrCiAgICAgICAgICAgICAgICAgICAgIC8vIGhhcyBhIHRlcm1p
bmFsIHNvIHRoYXQgbm9ib2R5IGNob2tlcyB3aGVuIHRoZXkgbG9vayBhdCBpdC4KICAgICAgICAg
ICAgICAgICAgICAgc3VjY2Vzc29yLT52YWx1ZXMoKS5yZXNpemUoMCk7Ci0gICAgICAgICAgICAg
ICAgICAgIHN1Y2Nlc3Nvci0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4obV9wcm9jLCBPb3BzLCBq
dW1wT3JpZ2luKTsKKyAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc29yLT5hcHBlbmROZXc8VmFs
dWU+KG1fcHJvYywgT29wcywganVtcE9yaWdpbik7CisgICAgICAgICAgICAgICAgICAgIHN1Y2Nl
c3Nvci0+Y2xlYXJTdWNjZXNzb3JzKCk7CiAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgICAgICAvLyBFbnN1cmUgdGhhdCBwcmVkZWNlc3NvcnMgb2YgYmxvY2sncyBuZXcgc3Vj
Y2Vzc29ycyBrbm93IHdoYXQncyB1cC4KICAgICAgICAgICAgICAgICAgICAgZm9yIChCYXNpY0Js
b2NrKiBuZXdTdWNjZXNzb3IgOiBibG9jay0+c3VjY2Vzc29yQmxvY2tzKCkpCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcEdlbmVyYXRpb25QYXJhbXMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFwR2VuZXJhdGlvblBh
cmFtcy5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTksNiArNTksMjcg
QEAgUmVnaXN0ZXJTZXQgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zOjp1bgogICAgIHJldHVybiBy
ZXN1bHQ7CiB9CiAKK1ZlY3RvcjxCb3g8Q0NhbGxIZWxwZXJzOjpMYWJlbD4+IFN0YWNrbWFwR2Vu
ZXJhdGlvblBhcmFtczo6c3VjY2Vzc29yTGFiZWxzKCkgY29uc3QKK3sKKyAgICBSRUxFQVNFX0FT
U0VSVChtX2NvbnRleHQuaW5kZXhJbkJsb2NrID09IG1fY29udGV4dC5jdXJyZW50QmxvY2stPnNp
emUoKSAtIDEpOworICAgIFJFTEVBU0VfQVNTRVJUKG1fdmFsdWUtPmVmZmVjdHMoKS50ZXJtaW5h
bCk7CisgICAgCisgICAgVmVjdG9yPEJveDxDQ2FsbEhlbHBlcnM6OkxhYmVsPj4gcmVzdWx0KG1f
Y29udGV4dC5jdXJyZW50QmxvY2stPm51bVN1Y2Nlc3NvcnMoKSk7CisgICAgZm9yICh1bnNpZ25l
ZCBpID0gbV9jb250ZXh0LmN1cnJlbnRCbG9jay0+bnVtU3VjY2Vzc29ycygpOyBpLS07KQorICAg
ICAgICByZXN1bHRbaV0gPSBtX2NvbnRleHQuYmxvY2tMYWJlbHNbbV9jb250ZXh0LmN1cnJlbnRC
bG9jay0+c3VjY2Vzc29yQmxvY2soaSldOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2Jvb2wg
U3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zOjpmYWxsc1Rocm91Z2hUb1N1Y2Nlc3Nvcih1bnNpZ25l
ZCBzdWNjZXNzb3JJbmRleCkgY29uc3QKK3sKKyAgICBSRUxFQVNFX0FTU0VSVChtX2NvbnRleHQu
aW5kZXhJbkJsb2NrID09IG1fY29udGV4dC5jdXJyZW50QmxvY2stPnNpemUoKSAtIDEpOworICAg
IFJFTEVBU0VfQVNTRVJUKG1fdmFsdWUtPmVmZmVjdHMoKS50ZXJtaW5hbCk7CisgICAgCisgICAg
QWlyOjpCYXNpY0Jsb2NrKiBzdWNjZXNzb3IgPSBtX2NvbnRleHQuY3VycmVudEJsb2NrLT5zdWNj
ZXNzb3JCbG9jayhzdWNjZXNzb3JJbmRleCk7CisgICAgQWlyOjpCYXNpY0Jsb2NrKiBuZXh0Qmxv
Y2sgPSBtX2NvbnRleHQuY29kZS0+ZmluZE5leHRCbG9jayhtX2NvbnRleHQuY3VycmVudEJsb2Nr
KTsKKyAgICByZXR1cm4gc3VjY2Vzc29yID09IG5leHRCbG9jazsKK30KKwogUHJvY2VkdXJlJiBT
dGFja21hcEdlbmVyYXRpb25QYXJhbXM6OnByb2MoKSBjb25zdAogewogICAgIHJldHVybiBtX2Nv
bnRleHQuY29kZS0+cHJvYygpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3Rh
Y2ttYXBHZW5lcmF0aW9uUGFyYW1zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmgJKHJldmlzaW9uIDIwMjgwOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw5IEBACiAKICNpbmNsdWRlICJBaXJHZW5lcmF0aW9u
Q29udGV4dC5oIgogI2luY2x1ZGUgIkIzVmFsdWVSZXAuaCIKKyNpbmNsdWRlICJDQ2FsbEhlbHBl
cnMuaCIKICNpbmNsdWRlICJSZWdpc3RlclNldC5oIgorI2luY2x1ZGUgPHd0Zi9Cb3guaD4KIAog
bmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKQEAgLTM5LDYgKzQxLDggQEAgY2xhc3Mg
UGF0Y2hwb2ludFNwZWNpYWw7CiBjbGFzcyBQcm9jZWR1cmU7CiBjbGFzcyBTdGFja21hcFZhbHVl
OwogCisvLyBOT1RFOiBJdCdzIHBvc3NpYmxlIHRvIGNhcHR1cmUgU3RhY2ttYXBHZW5lcmF0aW9u
UGFyYW1zIGJ5IHZhbHVlLCBidXQgbm90IGFsbCBvZiB0aGUgbWV0aG9kcyB3aWxsCisvLyB3b3Jr
IGlmIHlvdSBkbyB0aGF0LgogY2xhc3MgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zIHsKIHB1Ymxp
YzoKICAgICAvLyBUaGlzIGlzIHRoZSBzdGFja21hcCB2YWx1ZSB0aGF0IHdlJ3JlIGdlbmVyYXRp
bmcuCkBAIC04MCw2ICs4NCwxMiBAQCBwdWJsaWM6CiAKICAgICBHUFJSZWcgZ3BTY3JhdGNoKHVu
c2lnbmVkIGluZGV4KSBjb25zdCB7IHJldHVybiBtX2dwU2NyYXRjaFtpbmRleF07IH0KICAgICBG
UFJSZWcgZnBTY3JhdGNoKHVuc2lnbmVkIGluZGV4KSBjb25zdCB7IHJldHVybiBtX2ZwU2NyYXRj
aFtpbmRleF07IH0KKyAgICAKKyAgICAvLyBUaGlzIGlzIGNvbXB1dGVkIGxhemlseSwgc28gaXQg
d29uJ3Qgd29yayBpZiB5b3UgY2FwdHVyZSBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMgYnkgdmFs
dWUuCisgICAgSlNfRVhQT1JUX1BSSVZBVEUgVmVjdG9yPEJveDxDQ2FsbEhlbHBlcnM6OkxhYmVs
Pj4gc3VjY2Vzc29yTGFiZWxzKCkgY29uc3Q7CisgICAgCisgICAgLy8gVGhpcyBpcyBjb21wdXRl
ZCBsYXppbHkgYWxzby4KKyAgICBib29sIGZhbGxzVGhyb3VnaFRvU3VjY2Vzc29yKHVuc2lnbmVk
IHN1Y2Nlc3NvckluZGV4KSBjb25zdDsKIAogICAgIC8vIFRoaXMgaXMgcHJvdmlkZWQgZm9yIGNv
bnZlbmllbmNlOyBpdCBtZWFucyB0aGF0IHlvdSBkb24ndCBoYXZlIHRvIGNhcHR1cmUgaXQgaWYg
eW91IGRvbid0IHdhbnQgdG8uCiAgICAgUHJvY2VkdXJlJiBwcm9jKCkgY29uc3Q7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTd2l0Y2hWYWx1ZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3dpdGNoVmFsdWUuY3BwCShyZXZpc2lvbiAyMDI4
MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTd2l0Y2hWYWx1ZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTM3LDMwICszNyw3NiBAQCBTd2l0Y2hWYWx1ZTo6flN3aXRjaFZhbHVlKCkK
IHsKIH0KIAotU3dpdGNoQ2FzZSBTd2l0Y2hWYWx1ZTo6cmVtb3ZlQ2FzZSh1bnNpZ25lZCBpbmRl
eCkKK1N3aXRjaENhc2UgU3dpdGNoVmFsdWU6OnJlbW92ZUNhc2UoQmFzaWNCbG9jayogYmxvY2ss
IHVuc2lnbmVkIGluZGV4KQogewotICAgIEZyZXF1ZW50ZWRCbG9jayByZXN1bHRCbG9jayA9IG1f
c3VjY2Vzc29yc1tpbmRleF07CisgICAgRnJlcXVlbnRlZEJsb2NrIHJlc3VsdEJsb2NrID0gYmxv
Y2stPnN1Y2Nlc3NvcihpbmRleCk7CiAgICAgaW50NjRfdCByZXN1bHRWYWx1ZSA9IG1fdmFsdWVz
W2luZGV4XTsKLSAgICBtX3N1Y2Nlc3NvcnNbaW5kZXhdID0gbV9zdWNjZXNzb3JzLmxhc3QoKTsK
LSAgICBtX3N1Y2Nlc3NvcnMucmVtb3ZlTGFzdCgpOworICAgIGJsb2NrLT5zdWNjZXNzb3IoaW5k
ZXgpID0gYmxvY2stPnN1Y2Nlc3NvcnMoKS5sYXN0KCk7CisgICAgYmxvY2stPnN1Y2Nlc3NvcnMo
KS5yZW1vdmVMYXN0KCk7CiAgICAgbV92YWx1ZXNbaW5kZXhdID0gbV92YWx1ZXMubGFzdCgpOwog
ICAgIG1fdmFsdWVzLnJlbW92ZUxhc3QoKTsKICAgICByZXR1cm4gU3dpdGNoQ2FzZShyZXN1bHRW
YWx1ZSwgcmVzdWx0QmxvY2spOwogfQogCi12b2lkIFN3aXRjaFZhbHVlOjphcHBlbmRDYXNlKGNv
bnN0IFN3aXRjaENhc2UmIHN3aXRjaENhc2UpCitib29sIFN3aXRjaFZhbHVlOjpoYXNGYWxsVGhy
b3VnaChjb25zdCBCYXNpY0Jsb2NrKiBibG9jaykgY29uc3QKK3sKKyAgICB1bnNpZ25lZCBudW1T
dWNjZXNzb3JzID0gYmxvY2stPm51bVN1Y2Nlc3NvcnMoKTsKKyAgICB1bnNpZ25lZCBudW1WYWx1
ZXMgPSBtX3ZhbHVlcy5zaXplKCk7CisgICAgUkVMRUFTRV9BU1NFUlQobnVtVmFsdWVzID09IG51
bVN1Y2Nlc3NvcnMgfHwgbnVtVmFsdWVzICsgMSA9PSBudW1TdWNjZXNzb3JzKTsKKyAgICAKKyAg
ICByZXR1cm4gbnVtVmFsdWVzICsgMSA9PSBudW1TdWNjZXNzb3JzOworfQorCitib29sIFN3aXRj
aFZhbHVlOjpoYXNGYWxsVGhyb3VnaCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGhhc0ZhbGxUaHJv
dWdoKG93bmVyKTsKK30KKwordm9pZCBTd2l0Y2hWYWx1ZTo6c2V0RmFsbFRocm91Z2goQmFzaWNC
bG9jayogYmxvY2ssIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgdGFyZ2V0KQoreworICAgIGlmICgh
aGFzRmFsbFRocm91Z2goKSkKKyAgICAgICAgYmxvY2stPnN1Y2Nlc3NvcnMoKS5hcHBlbmQodGFy
Z2V0KTsKKyAgICBlbHNlCisgICAgICAgIGJsb2NrLT5zdWNjZXNzb3JzKCkubGFzdCgpID0gdGFy
Z2V0OworICAgIEFTU0VSVChoYXNGYWxsVGhyb3VnaChibG9jaykpOworfQorCit2b2lkIFN3aXRj
aFZhbHVlOjphcHBlbmRDYXNlKEJhc2ljQmxvY2sqIGJsb2NrLCBjb25zdCBTd2l0Y2hDYXNlJiBz
d2l0Y2hDYXNlKQogewotICAgIG1fc3VjY2Vzc29ycy5hcHBlbmQobV9zdWNjZXNzb3JzLmxhc3Qo
KSk7Ci0gICAgbV9zdWNjZXNzb3JzW21fc3VjY2Vzc29ycy5zaXplKCkgLSAyXSA9IHN3aXRjaENh
c2UudGFyZ2V0KCk7CisgICAgaWYgKCFoYXNGYWxsVGhyb3VnaCgpKQorICAgICAgICBibG9jay0+
c3VjY2Vzc29ycygpLmFwcGVuZChzd2l0Y2hDYXNlLnRhcmdldCgpKTsKKyAgICBlbHNlIHsKKyAg
ICAgICAgYmxvY2stPnN1Y2Nlc3NvcnMoKS5hcHBlbmQoYmxvY2stPnN1Y2Nlc3NvcnMoKS5sYXN0
KCkpOworICAgICAgICBibG9jay0+c3VjY2Vzc29yKGJsb2NrLT5udW1TdWNjZXNzb3JzKCkgLSAy
KSA9IHN3aXRjaENhc2UudGFyZ2V0KCk7CisgICAgfQogICAgIG1fdmFsdWVzLmFwcGVuZChzd2l0
Y2hDYXNlLmNhc2VWYWx1ZSgpKTsKIH0KIAordm9pZCBTd2l0Y2hWYWx1ZTo6c2V0RmFsbFRocm91
Z2goY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YXJnZXQpCit7CisgICAgc2V0RmFsbFRocm91Z2go
b3duZXIsIHRhcmdldCk7Cit9CisKK3ZvaWQgU3dpdGNoVmFsdWU6OmFwcGVuZENhc2UoY29uc3Qg
U3dpdGNoQ2FzZSYgc3dpdGNoQ2FzZSkKK3sKKyAgICBhcHBlbmRDYXNlKG93bmVyLCBzd2l0Y2hD
YXNlKTsKK30KKwordm9pZCBTd2l0Y2hWYWx1ZTo6ZHVtcFN1Y2Nlc3NvcnMoY29uc3QgQmFzaWNC
bG9jayogYmxvY2ssIFByaW50U3RyZWFtJiBvdXQpIGNvbnN0Cit7CisgICAgLy8gV2UgbXVzdCBu
b3QgY3Jhc2ggZHVlIHRvIGEgbnVtYmVyLW9mLXN1Y2Nlc3NvcnMgbWlzbWF0Y2ghIFNvbWVvbmUg
ZGVidWdnaW5nIGEKKyAgICAvLyBudW1iZXItb2Ytc3VjY2Vzc29ycyBidWcgd2lsbCB3YW50IHRv
IGR1bXAgSVIhCisgICAgaWYgKG51bUNhc2VWYWx1ZXMoKSArIDEgIT0gYmxvY2stPm51bVN1Y2Nl
c3NvcnMoKSkgeworICAgICAgICBWYWx1ZTo6ZHVtcFN1Y2Nlc3NvcnMoYmxvY2ssIG91dCk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgb3V0LnByaW50KGNhc2VzKGJsb2NrKSk7
Cit9CisKIHZvaWQgU3dpdGNoVmFsdWU6OmR1bXBNZXRhKENvbW1hUHJpbnRlciYgY29tbWEsIFBy
aW50U3RyZWFtJiBvdXQpIGNvbnN0CiB7Ci0gICAgLy8gVGhpcyBkZXN0cnVjdGl2ZWx5IG92ZXJy
aWRlcyBDb250cm9sVmFsdWUncyBkdW1wTWV0YSgpLgotICAgIGZvciAoU3dpdGNoQ2FzZSBzd2l0
Y2hDYXNlIDogKnRoaXMpCi0gICAgICAgIG91dC5wcmludChjb21tYSwgc3dpdGNoQ2FzZSk7Ci0g
ICAgb3V0LnByaW50KGNvbW1hLCAiZmFsbFRocm91Z2ggPSAiLCBmYWxsVGhyb3VnaCgpKTsKKyAg
ICBvdXQucHJpbnQoY29tbWEsICJjYXNlcyA9IFsiLCBsaXN0RHVtcChtX3ZhbHVlcyksICJdIik7
CiB9CiAKIFZhbHVlKiBTd2l0Y2hWYWx1ZTo6Y2xvbmVJbXBsKCkgY29uc3QKQEAgLTY4LDEwICsx
MTQsOSBAQCBWYWx1ZSogU3dpdGNoVmFsdWU6OmNsb25lSW1wbCgpIGNvbnN0CiAgICAgcmV0dXJu
IG5ldyBTd2l0Y2hWYWx1ZSgqdGhpcyk7CiB9CiAKLVN3aXRjaFZhbHVlOjpTd2l0Y2hWYWx1ZShP
cmlnaW4gb3JpZ2luLCBWYWx1ZSogY2hpbGQsIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgZmFsbFRo
cm91Z2gpCi0gICAgOiBDb250cm9sVmFsdWUoU3dpdGNoLCBWb2lkLCBvcmlnaW4sIGNoaWxkKQor
U3dpdGNoVmFsdWU6OlN3aXRjaFZhbHVlKE9yaWdpbiBvcmlnaW4sIFZhbHVlKiBjaGlsZCkKKyAg
ICA6IFZhbHVlKENoZWNrZWRPcGNvZGUsIFN3aXRjaCwgVm9pZCwgb3JpZ2luLCBjaGlsZCkKIHsK
LSAgICBtX3N1Y2Nlc3NvcnMuYXBwZW5kKGZhbGxUaHJvdWdoKTsKIH0KIAogfSB9IC8vIG5hbWVz
cGFjZSBKU0M6OkIzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTd2l0Y2hWYWx1
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N3aXRjaFZhbHVl
LmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N3aXRj
aFZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDEyICsyOCwxMyBAQAogCiAjaWYgRU5BQkxF
KEIzX0pJVCkKIAotI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCisjaW5jbHVkZSAiQjNDYXNl
Q29sbGVjdGlvbi5oIgogI2luY2x1ZGUgIkIzU3dpdGNoQ2FzZS5oIgorI2luY2x1ZGUgIkIzVmFs
dWUuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKLWNsYXNzIFN3aXRjaFZh
bHVlIDogcHVibGljIENvbnRyb2xWYWx1ZSB7CitjbGFzcyBTd2l0Y2hWYWx1ZSA6IHB1YmxpYyBW
YWx1ZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgYWNjZXB0cyhPcGNvZGUgb3Bjb2RlKSB7
IHJldHVybiBvcGNvZGUgPT0gU3dpdGNoOyB9CiAKQEAgLTQ3LDcyICs0OCwyNiBAQCBwdWJsaWM6
CiAgICAgCiAgICAgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBjYXNlVmFsdWVzKCkgY29uc3QgeyBy
ZXR1cm4gbV92YWx1ZXM7IH0KIAotICAgIEZyZXF1ZW50ZWRCbG9jayBmYWxsVGhyb3VnaCgpIGNv
bnN0IHsgcmV0dXJuIHN1Y2Nlc3NvcnMoKS5sYXN0KCk7IH0KLSAgICBGcmVxdWVudGVkQmxvY2sm
IGZhbGxUaHJvdWdoKCkgeyByZXR1cm4gc3VjY2Vzc29ycygpLmxhc3QoKTsgfQotCi0gICAgdW5z
aWduZWQgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG51bUNhc2VWYWx1ZXMoKTsgfQotICAgIFN3aXRj
aENhc2UgYXQodW5zaWduZWQgaW5kZXgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gU3dp
dGNoQ2FzZShjYXNlVmFsdWUoaW5kZXgpLCBzdWNjZXNzb3IoaW5kZXgpKTsKLSAgICB9Ci0gICAg
U3dpdGNoQ2FzZSBvcGVyYXRvcltdKHVuc2lnbmVkIGluZGV4KSBjb25zdAotICAgIHsKLSAgICAg
ICAgcmV0dXJuIGF0KGluZGV4KTsKLSAgICB9Ci0KLSAgICBjbGFzcyBpdGVyYXRvciB7Ci0gICAg
cHVibGljOgotICAgICAgICBpdGVyYXRvcigpCi0gICAgICAgICAgICA6IG1fc3dpdGNoKG51bGxw
dHIpCi0gICAgICAgICAgICAsIG1faW5kZXgoMCkKLSAgICAgICAgewotICAgICAgICB9Ci0KLSAg
ICAgICAgaXRlcmF0b3IoY29uc3QgU3dpdGNoVmFsdWUmIHN3aXRjaFZhbHVlLCB1bnNpZ25lZCBp
bmRleCkKLSAgICAgICAgICAgIDogbV9zd2l0Y2goJnN3aXRjaFZhbHVlKQotICAgICAgICAgICAg
LCBtX2luZGV4KGluZGV4KQotICAgICAgICB7Ci0gICAgICAgIH0KLQotICAgICAgICBTd2l0Y2hD
YXNlIG9wZXJhdG9yKigpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBtX3N3aXRjaC0+
YXQobV9pbmRleCk7Ci0gICAgICAgIH0KLQotICAgICAgICBpdGVyYXRvciYgb3BlcmF0b3IrKygp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIG1faW5kZXgrKzsKLSAgICAgICAgICAgIHJldHVybiAq
dGhpczsKLSAgICAgICAgfQotCi0gICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBpdGVyYXRv
ciYgb3RoZXIpIGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAgICAgIEFTU0VSVChtX3N3aXRjaCA9
PSBvdGhlci5tX3N3aXRjaCk7Ci0gICAgICAgICAgICByZXR1cm4gbV9pbmRleCA9PSBvdGhlci5t
X2luZGV4OwotICAgICAgICB9Ci0KLSAgICAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IGl0ZXJh
dG9yJiBvdGhlcikgY29uc3QKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuICEoKnRoaXMg
PT0gb3RoZXIpOwotICAgICAgICB9Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBjb25zdCBTd2l0
Y2hWYWx1ZSogbV9zd2l0Y2g7Ci0gICAgICAgIHVuc2lnbmVkIG1faW5kZXg7Ci0gICAgfTsKLQot
ICAgIHR5cGVkZWYgaXRlcmF0b3IgY29uc3RfaXRlcmF0b3I7Ci0KLSAgICBpdGVyYXRvciBiZWdp
bigpIGNvbnN0IHsgcmV0dXJuIGl0ZXJhdG9yKCp0aGlzLCAwKTsgfQotICAgIGl0ZXJhdG9yIGVu
ZCgpIGNvbnN0IHsgcmV0dXJuIGl0ZXJhdG9yKCp0aGlzLCBzaXplKCkpOyB9CisgICAgQ2FzZUNv
bGxlY3Rpb24gY2FzZXMoY29uc3QgQmFzaWNCbG9jayogb3duZXIpIGNvbnN0IHsgcmV0dXJuIENh
c2VDb2xsZWN0aW9uKHRoaXMsIG93bmVyKTsgfQorICAgIENhc2VDb2xsZWN0aW9uIGNhc2VzKCkg
Y29uc3QgeyByZXR1cm4gY2FzZXMob3duZXIpOyB9CiAKICAgICAvLyBUaGlzIHJlbW92ZXMgdGhl
IGNhc2UgYW5kIHJlb3JkZXJzIHRoaW5ncyBhIGJpdC4gSWYgeW91J3JlIGl0ZXJhdGluZyB0aGUg
Y2FzZXMgZnJvbSAwIHRvIE4sCiAgICAgLy8gdGhlbiB5b3UgY2FuIGtlZXAgaXRlcmF0aW5nIGFm
dGVyIHRoaXMgc28gbG9uZyBhcyB5b3UgcmV2aXNpdCB0aGlzIHNhbWUgaW5kZXggKHdoaWNoIHdp
bGwgbm93CiAgICAgLy8gY29udGFpbiBzb21lIG90aGVyIGNhc2UgdmFsdWUpLiBUaGlzIHJlbW92
ZXMgdGhlIGNhc2UgdGhhdCB3YXMgcmVtb3ZlZC4KLSAgICBTd2l0Y2hDYXNlIHJlbW92ZUNhc2Uo
dW5zaWduZWQgaW5kZXgpOworICAgIFN3aXRjaENhc2UgcmVtb3ZlQ2FzZShCYXNpY0Jsb2NrKiwg
dW5zaWduZWQgaW5kZXgpOwogCisgICAgYm9vbCBoYXNGYWxsVGhyb3VnaChjb25zdCBCYXNpY0Js
b2NrKikgY29uc3Q7CisgICAgYm9vbCBoYXNGYWxsVGhyb3VnaCgpIGNvbnN0OworCisgICAgLy8g
VGhlc2UgdHdvIGZ1bmN0aW9ucyBjYW4gYmUgY2FsbGVkIGluIGFueSBvcmRlci4KKyAgICB2b2lk
IHNldEZhbGxUaHJvdWdoKEJhc2ljQmxvY2sqLCBjb25zdCBGcmVxdWVudGVkQmxvY2smKTsKKyAg
ICB2b2lkIGFwcGVuZENhc2UoQmFzaWNCbG9jayosIGNvbnN0IFN3aXRjaENhc2UmKTsKKyAgICAK
KyAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIHNldEZhbGxUaHJvdWdoKGNvbnN0IEZyZXF1ZW50
ZWRCbG9jayYpOwogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgYXBwZW5kQ2FzZShjb25zdCBT
d2l0Y2hDYXNlJik7CiAKKyAgICB2b2lkIGR1bXBTdWNjZXNzb3JzKGNvbnN0IEJhc2ljQmxvY2sq
LCBQcmludFN0cmVhbSYpIGNvbnN0IG92ZXJyaWRlOworCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBk
dW1wTWV0YShDb21tYVByaW50ZXImLCBQcmludFN0cmVhbSYpIGNvbnN0IG92ZXJyaWRlOwogCkBA
IC0xMjEsNyArNzYsNyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBQ
cm9jZWR1cmU7CiAKLSAgICBKU19FWFBPUlRfUFJJVkFURSBTd2l0Y2hWYWx1ZShPcmlnaW4sIFZh
bHVlKiBjaGlsZCwgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBmYWxsVGhyb3VnaCk7CisgICAgSlNf
RVhQT1JUX1BSSVZBVEUgU3dpdGNoVmFsdWUoT3JpZ2luLCBWYWx1ZSogY2hpbGQpOwogCiAgICAg
VmVjdG9yPGludDY0X3Q+IG1fdmFsdWVzOwogfTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM1ZhbGlkYXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNWYWxpZGF0ZS5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM1ZhbGlkYXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBAQAog
I2luY2x1ZGUgIkIzUHJvY2VkdXJlLmgiCiAjaW5jbHVkZSAiQjNTbG90QmFzZVZhbHVlLmgiCiAj
aW5jbHVkZSAiQjNTdGFja1Nsb3QuaCIKKyNpbmNsdWRlICJCM1N3aXRjaFZhbHVlLmgiCiAjaW5j
bHVkZSAiQjNVcHNpbG9uVmFsdWUuaCIKICNpbmNsdWRlICJCM1ZhbHVlSW5saW5lcy5oIgogI2lu
Y2x1ZGUgIkIzVmFyaWFibGUuaCIKQEAgLTEwNyw4ICsxMDgsOCBAQCBwdWJsaWM6CiAgICAgICAg
IGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiBibG9ja3MpIHsKICAgICAgICAgICAgIFZBTElEQVRF
KGJsb2NrLT5zaXplKCkgPj0gMSwgKCJBdCAiLCAqYmxvY2spKTsKICAgICAgICAgICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBibG9jay0+c2l6ZSgpIC0gMTsgKytpKQotICAgICAgICAgICAg
ICAgIFZBTElEQVRFKCFDb250cm9sVmFsdWU6OmFjY2VwdHMoYmxvY2stPmF0KGkpLT5vcGNvZGUo
KSksICgiQXQgIiwgKmJsb2NrLT5hdChpKSkpOwotICAgICAgICAgICAgVkFMSURBVEUoQ29udHJv
bFZhbHVlOjphY2NlcHRzKGJsb2NrLT5sYXN0KCktPm9wY29kZSgpKSwgKCJBdCAiLCAqYmxvY2st
Pmxhc3QoKSkpOworICAgICAgICAgICAgICAgIFZBTElEQVRFKCFibG9jay0+YXQoaSktPmVmZmVj
dHMoKS50ZXJtaW5hbCwgKCJBdCAiLCAqYmxvY2stPmF0KGkpKSk7CisgICAgICAgICAgICBWQUxJ
REFURShibG9jay0+bGFzdCgpLT5lZmZlY3RzKCkudGVybWluYWwsICgiQXQgIiwgKmJsb2NrLT5s
YXN0KCkpKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBzdWNj
ZXNzb3IgOiBibG9jay0+c3VjY2Vzc29yQmxvY2tzKCkpIHsKICAgICAgICAgICAgICAgICBhbGxQ
cmVkZWNlc3NvcnMuYWRkKHN1Y2Nlc3NvciwgSGFzaFNldDxCYXNpY0Jsb2NrKj4oKSkuaXRlcmF0
b3ItPnZhbHVlLmFkZChibG9jayk7CkBAIC0xMjksOCArMTMwLDYgQEAgcHVibGljOgogICAgICAg
ICAgICAgICAgIFZBTElEQVRFKGNoaWxkLT50eXBlKCkgIT0gVm9pZCwgKCJBdCAiLCAqdmFsdWUs
ICItPiIsICpjaGlsZCkpOwogICAgICAgICAgICAgc3dpdGNoICh2YWx1ZS0+b3Bjb2RlKCkpIHsK
ICAgICAgICAgICAgIGNhc2UgTm9wOgotICAgICAgICAgICAgY2FzZSBKdW1wOgotICAgICAgICAg
ICAgY2FzZSBPb3BzOgogICAgICAgICAgICAgICAgIFZBTElEQVRFKCF2YWx1ZS0+bnVtQ2hpbGRy
ZW4oKSwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+
dHlwZSgpID09IFZvaWQsICgiQXQgIiwgKnZhbHVlKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7
CkBAIC0zNzcsMTUgKzM3NiwzNiBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgVkFMSURBVEUo
IXZhbHVlLT5udW1DaGlsZHJlbigpLCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAgICAg
IFZBTElEQVRFKHZhbHVlLT50eXBlKCkgIT0gVm9pZCwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgSnVtcDoKKyAgICAgICAgICAgICAg
ICBWQUxJREFURSghdmFsdWUtPm51bUNoaWxkcmVuKCksICgiQXQgIiwgKnZhbHVlKSk7CisgICAg
ICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPnR5cGUoKSA9PSBWb2lkLCAoIkF0ICIsICp2YWx1
ZSkpOworICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlT3duZXIuZ2V0KHZhbHVlKS0+bnVt
U3VjY2Vzc29ycygpID09IDEsICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjYXNlIE9vcHM6CisgICAgICAgICAgICAgICAgVkFMSURBVEUoIXZh
bHVlLT5udW1DaGlsZHJlbigpLCAoIkF0ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIFZB
TElEQVRFKHZhbHVlLT50eXBlKCkgPT0gVm9pZCwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAg
ICAgICAgICBWQUxJREFURSghdmFsdWVPd25lci5nZXQodmFsdWUpLT5udW1TdWNjZXNzb3JzKCks
ICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBj
YXNlIFJldHVybjoKICAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+bnVtQ2hpbGRyZW4o
KSA9PSAxLCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVl
LT50eXBlKCkgPT0gVm9pZCwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJ
REFURSghdmFsdWVPd25lci5nZXQodmFsdWUpLT5udW1TdWNjZXNzb3JzKCksICgiQXQgIiwgKnZh
bHVlKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIEJyYW5jaDoK
KyAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+bnVtQ2hpbGRyZW4oKSA9PSAxLCAoIkF0
ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIFZBTElEQVRFKGlzSW50KHZhbHVlLT5jaGls
ZCgwKS0+dHlwZSgpKSwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFU
RSh2YWx1ZS0+dHlwZSgpID09IFZvaWQsICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAg
ICAgVkFMSURBVEUodmFsdWVPd25lci5nZXQodmFsdWUpLT5udW1TdWNjZXNzb3JzKCkgPT0gMiwg
KCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNh
c2UgU3dpdGNoOgogICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT5udW1DaGlsZHJlbigp
ID09IDEsICgiQXQgIiwgKnZhbHVlKSk7CiAgICAgICAgICAgICAgICAgVkFMSURBVEUoaXNJbnQo
dmFsdWUtPmNoaWxkKDApLT50eXBlKCkpLCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAg
ICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgPT0gVm9pZCwgKCJBdCAiLCAqdmFsdWUpKTsKKyAg
ICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+YXM8U3dpdGNoVmFsdWU+KCktPmhhc0ZhbGxU
aHJvdWdoKHZhbHVlT3duZXIuZ2V0KHZhbHVlKSksICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAg
ICAgICAgICAgLy8gVGhpcyB2YWxpZGF0ZXMgdGhlIHNhbWUgdGhpbmcgYXMgaGFzRmFsbFRocm91
Z2gsIGJ1dCBtb3JlIGV4cGxpY2l0bHkuIFdlIHdhbnQgdG8KKyAgICAgICAgICAgICAgICAvLyBt
YWtlIHN1cmUgdGhhdCBpZiBhbnlvbmUgdHJpZXMgdG8gY2hhbmdlIHRoZSBkZWZpbml0aW9uIG9m
IGhhc0ZhbGxUaHJvdWdoLCB0aGV5CisgICAgICAgICAgICAgICAgLy8gd2lsbCBmZWVsIHNvbWUg
cGFpbiBoZXJlLCBzaW5jZSB0aGlzIGlzIGZ1bmRhbWVudGFsLgorICAgICAgICAgICAgICAgIFZB
TElEQVRFKHZhbHVlT3duZXIuZ2V0KHZhbHVlKS0+bnVtU3VjY2Vzc29ycygpID09IHZhbHVlLT5h
czxTd2l0Y2hWYWx1ZT4oKS0+bnVtQ2FzZVZhbHVlcygpICsgMSwgKCJBdCAiLCAqdmFsdWUpKTsK
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM1ZhbHVlLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzVmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw5ICsyOSw5IEBA
CiAjaWYgRU5BQkxFKEIzX0pJVCkKIAogI2luY2x1ZGUgIkIzQXJndW1lbnRSZWdWYWx1ZS5oIgor
I2luY2x1ZGUgIkIzQmFzaWNCbG9ja0lubGluZXMuaCIKICNpbmNsdWRlICJCM0JvdHRvbVByb3Zp
ZGVyLmgiCiAjaW5jbHVkZSAiQjNDQ2FsbFZhbHVlLmgiCi0jaW5jbHVkZSAiQjNDb250cm9sVmFs
dWUuaCIKICNpbmNsdWRlICJCM01lbW9yeVZhbHVlLmgiCiAjaW5jbHVkZSAiQjNPcmlnaW5EdW1w
LmgiCiAjaW5jbHVkZSAiQjNQcm9jZWR1cmVJbmxpbmVzLmgiCkBAIC00Miw2ICs0Miw3IEBACiAj
aW5jbHVkZSAiQjNWYWx1ZUtleUlubGluZXMuaCIKICNpbmNsdWRlICJCM1ZhcmlhYmxlVmFsdWUu
aCIKICNpbmNsdWRlIDx3dGYvQ29tbWFQcmludGVyLmg+CisjaW5jbHVkZSA8d3RmL0xpc3REdW1w
Lmg+CiAjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+CiAKIG5hbWVzcGFjZSBKU0Mg
eyBuYW1lc3BhY2UgQjMgewpAQCAtMTI1LDYgKzEyNiw1MCBAQCB2b2lkIFZhbHVlOjpyZXBsYWNl
V2l0aFBoaSgpCiAgICAgdGhpcy0+bV9pbmRleCA9IGluZGV4OwogfQogCit2b2lkIFZhbHVlOjpy
ZXBsYWNlV2l0aEp1bXAoQmFzaWNCbG9jayogb3duZXIsIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYg
dGFyZ2V0KQoreworICAgIFJFTEVBU0VfQVNTRVJUKG93bmVyLT5sYXN0KCkgPT0gdGhpcyk7Cisg
ICAgCisgICAgdW5zaWduZWQgaW5kZXggPSBtX2luZGV4OworICAgIE9yaWdpbiBvcmlnaW4gPSBt
X29yaWdpbjsKKyAgICAKKyAgICB0aGlzLT5+VmFsdWUoKTsKKyAgICAKKyAgICBuZXcgKHRoaXMp
IFZhbHVlKEp1bXAsIFZvaWQsIG9yaWdpbik7CisgICAgCisgICAgdGhpcy0+b3duZXIgPSBvd25l
cjsKKyAgICB0aGlzLT5tX2luZGV4ID0gaW5kZXg7CisgICAgCisgICAgb3duZXItPnNldFN1Y2Nl
c3NvcnModGFyZ2V0KTsKK30KKwordm9pZCBWYWx1ZTo6cmVwbGFjZVdpdGhPb3BzKEJhc2ljQmxv
Y2sqIG93bmVyKQoreworICAgIFJFTEVBU0VfQVNTRVJUKG93bmVyLT5sYXN0KCkgPT0gdGhpcyk7
CisgICAgCisgICAgdW5zaWduZWQgaW5kZXggPSBtX2luZGV4OworICAgIE9yaWdpbiBvcmlnaW4g
PSBtX29yaWdpbjsKKyAgICAKKyAgICB0aGlzLT5+VmFsdWUoKTsKKyAgICAKKyAgICBuZXcgKHRo
aXMpIFZhbHVlKE9vcHMsIFZvaWQsIG9yaWdpbik7CisgICAgCisgICAgdGhpcy0+b3duZXIgPSBv
d25lcjsKKyAgICB0aGlzLT5tX2luZGV4ID0gaW5kZXg7CisgICAgCisgICAgb3duZXItPmNsZWFy
U3VjY2Vzc29ycygpOworfQorCit2b2lkIFZhbHVlOjpyZXBsYWNlV2l0aEp1bXAoY29uc3QgRnJl
cXVlbnRlZEJsb2NrJiB0YXJnZXQpCit7CisgICAgcmVwbGFjZVdpdGhKdW1wKG93bmVyLCB0YXJn
ZXQpOworfQorCit2b2lkIFZhbHVlOjpyZXBsYWNlV2l0aE9vcHMoKQoreworICAgIHJlcGxhY2VX
aXRoT29wcyhvd25lcik7Cit9CisKIHZvaWQgVmFsdWU6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkg
Y29uc3QKIHsKICAgICBib29sIGlzQ29uc3RhbnQgPSBmYWxzZTsKQEAgLTE4OSw2ICsyMzQsMTkg
QEAgdm9pZCBWYWx1ZTo6ZGVlcER1bXAoY29uc3QgUHJvY2VkdXJlKiBwcgogICAgIG91dC5wcmlu
dCgiKSIpOwogfQogCit2b2lkIFZhbHVlOjpkdW1wU3VjY2Vzc29ycyhjb25zdCBCYXNpY0Jsb2Nr
KiBibG9jaywgUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKK3sKKyAgICAvLyBOb3RlIHRoYXQgdGhp
cyBtdXN0IG5vdCBjcmFzaCBpZiB3ZSBoYXZlIHRoZSB3cm9uZyBudW1iZXIgb2Ygc3VjY2Vzc29y
cywgc2luY2Ugc29tZW9uZQorICAgIC8vIGRlYnVnZ2luZyBhIG51bWJlci1vZi1zdWNjZXNzb3Jz
IGJ1ZyB3aWxsIHByb2JhYmx5IHdhbnQgdG8gZHVtcCBJUiEKKyAgICAKKyAgICBpZiAob3Bjb2Rl
KCkgPT0gQnJhbmNoICYmIGJsb2NrLT5udW1TdWNjZXNzb3JzKCkgPT0gMikgeworICAgICAgICBv
dXQucHJpbnQoIlRoZW46IiwgYmxvY2stPnRha2VuKCksICIsIEVsc2U6IiwgYmxvY2stPm5vdFRh
a2VuKCkpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIG91dC5wcmludChsaXN0
RHVtcChibG9jay0+c3VjY2Vzc29ycygpKSk7Cit9CisKIFZhbHVlKiBWYWx1ZTo6bmVnQ29uc3Rh
bnQoUHJvY2VkdXJlJikgY29uc3QKIHsKICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTcxMyw2ICs3
NzEsMTAgQEAgVHlwZSBWYWx1ZTo6dHlwZUZvcihPcGNvZGUgb3Bjb2RlLCBWYWx1ZQogICAgICAg
ICB9CiAgICAgICAgIHJldHVybiBWb2lkOwogICAgIGNhc2UgTm9wOgorICAgIGNhc2UgSnVtcDoK
KyAgICBjYXNlIEJyYW5jaDoKKyAgICBjYXNlIFJldHVybjoKKyAgICBjYXNlIE9vcHM6CiAgICAg
ICAgIHJldHVybiBWb2lkOwogICAgIGNhc2UgU2VsZWN0OgogICAgICAgICBBU1NFUlQoc2Vjb25k
Q2hpbGQpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5oCShyZXZpc2lvbiAyMDI4
MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJBaXJBcmcuaCIKICNpbmNsdWRlICJCM0Vm
ZmVjdHMuaCIKKyNpbmNsdWRlICJCM0ZyZXF1ZW50ZWRCbG9jay5oIgogI2luY2x1ZGUgIkIzT3Bj
b2RlLmgiCiAjaW5jbHVkZSAiQjNPcmlnaW4uaCIKICNpbmNsdWRlICJCM1NwYXJzZUNvbGxlY3Rp
b24uaCIKQEAgLTEwOSw5ICsxMTAsMTkgQEAgcHVibGljOgogICAgIHZvaWQgcmVwbGFjZVdpdGhO
b3BJZ25vcmluZ1R5cGUoKTsKICAgICAKICAgICB2b2lkIHJlcGxhY2VXaXRoUGhpKCk7CisgICAg
CisgICAgLy8gVGhlc2UgdHJhbnNmb3JtYXRpb25zIGFyZSBvbmx5IHZhbGlkIGZvciB0ZXJtaW5h
bHMuCisgICAgdm9pZCByZXBsYWNlV2l0aEp1bXAoQmFzaWNCbG9jayogb3duZXIsIGNvbnN0IEZy
ZXF1ZW50ZWRCbG9jayYpOworICAgIHZvaWQgcmVwbGFjZVdpdGhPb3BzKEJhc2ljQmxvY2sqIG93
bmVyKTsKKyAgICAKKyAgICAvLyBZb3UgY2FuIHVzZSB0aGlzIGZvcm0gaWYgb3duZXJzIGFyZSB2
YWxpZC4gVGhleSdyZSB1c3VhbGx5IG5vdCB2YWxpZC4KKyAgICB2b2lkIHJlcGxhY2VXaXRoSnVt
cChjb25zdCBGcmVxdWVudGVkQmxvY2smKTsKKyAgICB2b2lkIHJlcGxhY2VXaXRoT29wcygpOwog
CiAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAgICAgdm9pZCBkZWVwRHVtcChj
b25zdCBQcm9jZWR1cmUqLCBQcmludFN0cmVhbSYpIGNvbnN0OworICAgIAorICAgIHZpcnR1YWwg
dm9pZCBkdW1wU3VjY2Vzc29ycyhjb25zdCBCYXNpY0Jsb2NrKiwgUHJpbnRTdHJlYW0mKSBjb25z
dDsKIAogICAgIC8vIFRoaXMgaXMgaG93IHlvdSBjYXN0IFZhbHVlcy4gRm9yIGV4YW1wbGUsIGlm
IHlvdSB3YW50IHRvIGRvIHNvbWV0aGluZyBwcm92aWRlZCB0aGF0IHdlIGhhdmUgYQogICAgIC8v
IEFyZ3VtZW50UmVnVmFsdWUsIHlvdSBjYW4gZG86CkBAIC0yMjMsNyArMjM0LDcgQEAgcHVibGlj
OgogICAgIGJvb2wgaXNMaWtlTm9uWmVybygpIGNvbnN0IHsgcmV0dXJuIGFzVHJpU3RhdGUoKSA9
PSBUcnVlVHJpU3RhdGU7IH0KIAogICAgIEVmZmVjdHMgZWZmZWN0cygpIGNvbnN0OwotCisgICAg
CiAgICAgLy8gVGhpcyByZXR1cm5zIGEgVmFsdWVLZXkgdGhhdCBkZXNjcmliZXMgdGhhdCB0aGlz
IFZhbHVlIHJldHVybnMgd2hlbiBpdCBleGVjdXRlcy4gUmV0dXJucyBhbgogICAgIC8vIGVtcHR5
IFZhbHVlS2V5IGlmIHRoaXMgVmFsdWUgaXMgaW1wdXJlLiBOb3RlIHRoYXQgYW4gb3BlcmF0aW9u
IHRoYXQgcmV0dXJucyBWb2lkIGNvdWxkIHN0aWxsCiAgICAgLy8gaGF2ZSBhIG5vbi1lbXB0eSBW
YWx1ZUtleS4gVGhpcyBoYXBwZW5zIGZvciBleGFtcGxlIHdpdGggQ2hlY2sgb3BlcmF0aW9ucy4K
QEAgLTI2NCw2ICsyNzUsOCBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIEZyYW1lUG9pbnRlcjoK
ICAgICAgICAgY2FzZSBOb3A6CiAgICAgICAgIGNhc2UgUGhpOgorICAgICAgICBjYXNlIEp1bXA6
CisgICAgICAgIGNhc2UgT29wczoKICAgICAgICAgICAgIGlmIChVTkxJS0VMWShudW1BcmdzKSkK
ICAgICAgICAgICAgICAgICBiYWRPcGNvZGUob3Bjb2RlLCBudW1BcmdzKTsKICAgICAgICAgICAg
IGJyZWFrOwpAQCAtMjg0LDYgKzI5Nyw4IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgRG91Ymxl
VG9GbG9hdDoKICAgICAgICAgY2FzZSBJVG9GOgogICAgICAgICBjYXNlIEJpdHdpc2VDYXN0Ogor
ICAgICAgICBjYXNlIEJyYW5jaDoKKyAgICAgICAgY2FzZSBSZXR1cm46CiAgICAgICAgICAgICBp
ZiAoVU5MSUtFTFkobnVtQXJncyAhPSAxKSkKICAgICAgICAgICAgICAgICBiYWRPcGNvZGUob3Bj
b2RlLCBudW1BcmdzKTsKICAgICAgICAgICAgIGJyZWFrOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL3Rlc3RiMy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL3Rlc3RiMy5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy90ZXN0YjMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVk
ZSAiQjNDb21wdXRlRGl2aXNpb25NYWdpYy5oIgogI2luY2x1ZGUgIkIzQ29uc3QzMlZhbHVlLmgi
CiAjaW5jbHVkZSAiQjNDb25zdFB0clZhbHVlLmgiCi0jaW5jbHVkZSAiQjNDb250cm9sVmFsdWUu
aCIKICNpbmNsdWRlICJCM0VmZmVjdHMuaCIKICNpbmNsdWRlICJCM01hdGhFeHRyYXMuaCIKICNp
bmNsdWRlICJCM01lbW9yeVZhbHVlLmgiCkBAIC00Niw3ICs0NSwxMCBAQAogI2luY2x1ZGUgIkIz
VXBzaWxvblZhbHVlLmgiCiAjaW5jbHVkZSAiQjNWYWxpZGF0ZS5oIgogI2luY2x1ZGUgIkIzVmFs
dWVJbmxpbmVzLmgiCisjaW5jbHVkZSAiQjNWYXJpYWJsZVZhbHVlLmgiCiAjaW5jbHVkZSAiQ0Nh
bGxIZWxwZXJzLmgiCisjaW5jbHVkZSAiRlBSSW5mby5oIgorI2luY2x1ZGUgIkdQUkluZm8uaCIK
ICNpbmNsdWRlICJJbml0aWFsaXplVGhyZWFkaW5nLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5o
IgogI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKQEAgLTU0LDYgKzU2LDcgQEAKICNpbmNsdWRlICJW
TS5oIgogI2luY2x1ZGUgPGNtYXRoPgogI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDx3dGYv
TGlzdER1bXAuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9OdW1iZXJP
ZkNvcmVzLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgpAQCAtNzUsNiArNzgsMTEgQEAg
dXNpbmcgbmFtZXNwYWNlIEpTQzo6QjM7CiAKIG5hbWVzcGFjZSB7CiAKK2Jvb2wgc2hvdWxkQmVW
ZXJib3NlKCkKK3sKKyAgICByZXR1cm4gc2hvdWxkRHVtcElSKEIzTW9kZSk7Cit9CisKIFN0YXRp
Y0xvY2sgY3Jhc2hMb2NrOwogCiAvLyBOb3RoaW5nIGZhbmN5IGZvciBub3c7IHdlIGp1c3QgdXNl
IHRoZSBleGlzdGluZyBXVEYgYXNzZXJ0aW9uIG1hY2hpbmVyeS4KQEAgLTE5NCw3ICsyMDIsNyBA
QCB2b2lkIHRlc3Q0MigpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogY29uc3Q0MiA9IHJvb3QtPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0Mik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY29uc3Q0Mik7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNvbnN0NDIp
OwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MpID09IDQyKTsKIH0KQEAgLTIw
NCw3ICsyMTIsNyBAQCB2b2lkIHRlc3RMb2FkNDIoKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgaW50IHggPSA0MjsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkLCBJbnQzMiwg
T3JpZ2luKCksCkBAIC0yMjAsNyArMjI4LDcgQEAgdm9pZCB0ZXN0TG9hZFdpdGhPZmZzZXRJbXBs
KGludDMyX3Qgb2ZmcwogICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwogICAgICAgICBpbnQ2NF90IHggPSAtNDI7CiAgICAgICAgIFZhbHVlKiBiYXNlID0gcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjApOwotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAg
ICAgICAgICAgICAgICAgcHJvYywgTG9hZCwgSW50NjQsIE9yaWdpbigpLApAQCAtMjM1LDcgKzI0
Myw3IEBAIHZvaWQgdGVzdExvYWRXaXRoT2Zmc2V0SW1wbChpbnQzMl90IG9mZnMKICAgICAgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICAgICAgaW50MzJfdCB4ID0g
LTQyOwogICAgICAgICBWYWx1ZSogYmFzZSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAg
ICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIExv
YWQsIEludDMyLCBPcmlnaW4oKSwKQEAgLTI4OCw3ICsyOTYsNyBAQCB2b2lkIHRlc3RBcmcoaW50
IGFyZ3VtZW50KQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogCkBAIC0yOTksNyArMzA3LDcgQEAg
dm9pZCB0ZXN0UmV0dXJuQ29uc3Q2NChpbnQ2NF90IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBw
cm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpKTsKIApAQCAtMzExLDcgKzMx
OSw3IEBAIHZvaWQgdGVzdEFkZEFyZyhpbnQgYSkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZSA9IHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwg
dmFsdWUsIHZhbHVlKSk7CiAKQEAgLTMyMiw3ICszMzAsNyBAQCB2b2lkIHRlc3RBZGRBcmdzKGlu
dCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIEFkZCwgT3JpZ2luKCksCkBAIC0zMzYsNyArMzQ0LDcgQEAgdm9pZCB0ZXN0QWRkQXJnSW1t
KGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIEFkZCwgT3JpZ2luKCksCkBAIC0zNTAsNyArMzU4LDcgQEAgdm9pZCB0ZXN0QWRkSW1t
QXJnKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCkBAIC0zNzAsNyArMzc4LDcgQEAgdm9pZCB0ZXN0QWRk
QXJnTWVtKGludDY0X3QgYSwgaW50NjRfdCBiKQogICAgICAgICByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCksCiAg
ICAgICAgIGxvYWQpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3Rv
cmUsIE9yaWdpbigpLCByZXN1bHQsIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMy
VmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBpbnQ2NF90IGlucHV0T3V0cHV0ID0gYjsKICAg
ICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCBhLCAmaW5wdXRPdXRwdXQpKTsK
QEAgLTM4Niw3ICszOTQsNyBAQCB2b2lkIHRlc3RBZGRNZW1BcmcoaW50NjRfdCBhLCBpbnQ2NF90
IGIpCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRk
LCBPcmlnaW4oKSwKICAgICAgICAgbG9hZCwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9j
LCAmYSwgYikgPT0gYSArIGIpOwogfQpAQCAtNDAxLDcgKzQwOSw3IEBAIHZvaWQgdGVzdEFkZElt
bU1lbShpbnQ2NF90IGEsIGludDY0X3QgYikKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0
NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpLAogICAgICAgICBsb2FkKTsKICAgICByb290LT5h
cHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBhZGRy
ZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAg
ICAgaW50NjRfdCBpbnB1dE91dHB1dCA9IGI7CiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50
Pihwcm9jLCAmaW5wdXRPdXRwdXQpKTsKQEAgLTQxNCw3ICs0MjIsNyBAQCB2b2lkIHRlc3RBZGRB
cmczMihpbnQgYSkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAg
IFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBBZGQsIE9yaWdpbigpLCB2YWx1ZSwgdmFsdWUpKTsKIApAQCAtNDI1LDcgKzQzMyw3IEBAIHZv
aWQgdGVzdEFkZEFyZ3MzMihpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAtNDQ5LDcgKzQ1Nyw3IEBA
IHZvaWQgdGVzdEFkZEFyZ01lbTMyKGludDMyX3QgYSwgaW50MzJfdCAKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjApKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBBZGQsIE9yaWdpbigpLCBhcmd1bWVudCwgbG9hZCk7CiAgICAgcm9vdC0+YXBwZW5kTmV3
PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgYWRkcmVzcyk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGludDMy
X3QgaW5wdXRPdXRwdXQgPSBiOwogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludDMyX3Q+KHBy
b2MsIGEsICZpbnB1dE91dHB1dCkpOwpAQCAtNDY1LDcgKzQ3Myw3IEBAIHZvaWQgdGVzdEFkZE1l
bUFyZzMyKGludDMyX3QgYSwgaW50MzJfdCAKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjEpKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBBZGQsIE9yaWdpbigpLCBsb2FkLCBhcmd1bWVudCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAog
ICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgJmEsIGIpID09IGEgKyBiKTsK
IH0KQEAgLTQ4MCw3ICs0ODgsNyBAQCB2b2lkIHRlc3RBZGRJbW1NZW0zMihpbnQzMl90IGEsIGlu
dDMyX3QgCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBhKSwKICAgICAgICAgbG9hZCk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVl
Pihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgYWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGludDMyX3QgaW5wdXRPdXRw
dXQgPSBiOwogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludD4ocHJvYywgJmlucHV0T3V0cHV0
KSk7CkBAIC00OTUsNyArNTAzLDcgQEAgdm9pZCB0ZXN0QWRkQXJnWmVyb0ltbVpEZWYoKQogICAg
ICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAg
ICAgVmFsdWUqIGNvbnN0WmVybyA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBB
ZGQsIE9yaWdpbigpLApAQCAtNTE1LDcgKzUyMyw3IEBAIHZvaWQgdGVzdEFkZExvYWRUd2ljZSgp
CiAgICAgICAgIFZhbHVlKiBsb2FkID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJnZhbHVlKSk7Ci0gICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBsb2Fk
LCBsb2FkKSk7CiAKQEAgLTUzMiw3ICs1NDAsNyBAQCB2b2lkIHRlc3RBZGRBcmdEb3VibGUoZG91
YmxlIGEpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIHZhbHVlLCB2YWx1ZSkpOwogCkBAIC01
NDUsNyArNTUzLDcgQEAgdm9pZCB0ZXN0QWRkQXJnc0RvdWJsZShkb3VibGUgYSwgZG91YmxlIAog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVl
QSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBS
SW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjEp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVl
QikpOwogCkBAIC01NTgsNyArNTY2LDcgQEAgdm9pZCB0ZXN0QWRkQXJnSW1tRG91YmxlKGRvdWJs
ZSBhLCBkb3VibAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAg
VmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9v
dC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApA
QCAtNTcxLDcgKzU3OSw3IEBAIHZvaWQgdGVzdEFkZEltbUFyZ0RvdWJsZShkb3VibGUgYSwgZG91
YmwKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2
YWx1ZUEgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IGEpOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTU4NCw3
ICs1OTIsNyBAQCB2b2lkIHRlc3RBZGRJbW1zRG91YmxlKGRvdWJsZSBhLCBkb3VibGUgCiAgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0g
cm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAg
ICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBiKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwg
dmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtNjAwLDcgKzYwOCw3IEBAIHZvaWQgdGVzdEFkZEFyZ0Zs
b2F0KGZsb2F0IGEpCiAgICAgVmFsdWUqIGZsb2F0VmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUq
IHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgZmxv
YXRWYWx1ZSwgZmxvYXRWYWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQzMik7CiAKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48
aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KGEgKyBhKSkpOwpAQCAtNjE4LDcgKzYyNiw3IEBAIHZvaWQgdGVzdEFkZEFyZ3NGbG9h
dChmbG9hdCBhLCBmbG9hdCBiKQogICAgIFZhbHVlKiBmbG9hdFZhbHVlMiA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDJpbnQzMik7
CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBP
cmlnaW4oKSwgZmxvYXRWYWx1ZTEsIGZsb2F0VmFsdWUyKTsKICAgICBWYWx1ZSogcmVzdWx0MzIg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVz
dWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNv
bXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSArIGIpKSk7CiB9
CkBAIC02MzMsNyArNjQxLDcgQEAgdm9pZCB0ZXN0QWRkQXJnSW1tRmxvYXQoZmxvYXQgYSwgZmxv
YXQgYgogICAgIFZhbHVlKiBjb25zdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGZsb2F0VmFsdWUsIGNvbnN0VmFsdWUp
OwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0
d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAg
ICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNl
X2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSArIGIpKSk7CiB9CkBA
IC02NDgsNyArNjU2LDcgQEAgdm9pZCB0ZXN0QWRkSW1tQXJnRmxvYXQoZmxvYXQgYSwgZmxvYXQg
YgogICAgIFZhbHVlKiBjb25zdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGNvbnN0VmFsdWUsIGZsb2F0VmFsdWUpOwog
ICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lz
ZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAg
Q0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nh
c3Q8aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSArIGIpKSk7CiB9CkBAIC02
NjEsNyArNjY5LDcgQEAgdm9pZCB0ZXN0QWRkSW1tc0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIpCiAg
ICAgVmFsdWUqIGNvbnN0VmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGNvbnN0VmFsdWUxLCBjb25zdFZhbHVlMik7CiAg
ICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNl
Q2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBD
SEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MpLCBiaXR3aXNlX2Nh
c3Q8aW50MzJfdD4oYSArIGIpKSk7CiB9CkBAIC02NzcsNyArNjg1LDcgQEAgdm9pZCB0ZXN0QWRk
QXJnRmxvYXRXaXRoVXNlbGVzc0RvdWJsZUNvbgogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGFzRG91YmxlLCBhc0RvdWJsZSk7
CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBE
b3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRS
ZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwo
Y29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBi
aXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSArIGEpKSk7CiB9CkBAIC02OTcsNyArNzA1LDcgQEAgdm9p
ZCB0ZXN0QWRkQXJnc0Zsb2F0V2l0aFVzZWxlc3NEb3VibGVDbwogICAgIFZhbHVlKiByZXN1bHQg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGFzRG91YmxlMSwg
YXNEb3VibGUyKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCByZXN1bHQpOwogICAgIFZhbHVlKiBy
ZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdp
bigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhp
c0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQz
Ml90PihhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+
KGEgKyBiKSkpOwogfQpAQCAtNzE5LDcgKzcyNyw3IEBAIHZvaWQgdGVzdEFkZEFyZ3NGbG9hdFdp
dGhFZmZlY3RmdWxEb3VibGUKICAgICBWYWx1ZSogZG91YmxlQWRkcmVzcyA9IHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIyKTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmln
aW4oKSwgcmVzdWx0LCBkb3VibGVBZGRyZXNzKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1
bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgZG91YmxlIGVmZmVjdCA9IDA7CiAg
ICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNl
X2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSwgJmVmZmVjdCksIGJp
dHdpc2VfY2FzdDxpbnQzMl90PihhICsgYikpKTsKQEAgLTczMiw3ICs3NDAsNyBAQCB2b2lkIHRl
c3RNdWxBcmcoaW50IGEpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
ICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICBwcm9j
LCBUcnVuYywgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIE11bCwgT3JpZ2luKCksIHZhbHVlLCB2YWx1ZSkpOwogCkBAIC03NTksNyArNzY3LDcg
QEAgdm9pZCB0ZXN0TXVsQXJnU3RvcmUoaW50IGEpCiAgICAgICAgIHByb2MsIFN0b3JlLCBPcmln
aW4oKSwgbXVsLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksICZtdWxTbG90KSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCAwKSk7CiAKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIGEpKTsKQEAgLTc3
NCw3ICs3ODIsNyBAQCB2b2lkIHRlc3RNdWxBZGRBcmcoaW50IGEpCiAgICAgVmFsdWUqIHZhbHVl
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCkBAIC03ODgsNyArNzk2LDcgQEAgdm9pZCB0ZXN0
TXVsQXJncyhpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBNdWwsIE9yaWdpbigpLApAQCAtODAyLDcgKzgxMCw3IEBAIHZvaWQgdGVz
dE11bEFyZ0ltbShpbnQ2NF90IGEsIGludDY0X3QgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKICAgICAgICAgICAgIHByb2MsIE11bCwgT3JpZ2luKCksCkBAIC04MTYsNyArODI0LDcg
QEAgdm9pZCB0ZXN0TXVsSW1tQXJnKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIE11bCwgT3JpZ2luKCksCkBAIC04MzAsNyArODM4
LDcgQEAgdm9pZCB0ZXN0TXVsQXJnczMyKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUg
cHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIE11bCwgT3JpZ2luKCksCkBAIC04NTMsNyAr
ODYxLDcgQEAgdm9pZCB0ZXN0TXVsTG9hZFR3aWNlKCkKICAgICAgICAgVmFsdWUqIGxvYWQgPSBy
b290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZCwgSW50
MzIsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAmdmFsdWUpKTsKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGxvYWQsIGxvYWQpKTsKIApAQCAtODc1LDcgKzg4
Myw3IEBAIHZvaWQgdGVzdE11bEFkZEFyZ3NMZWZ0KCkKICAgICBWYWx1ZSogYXJnMiA9IHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIyKTsKICAgICBWYWx1ZSogbXVsdGlwbGllZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgYXJnMCwgYXJnMSk7CiAgICAgVmFsdWUqIGFkZGVkID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBtdWx0aXBsaWVkLCBh
cmcyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBhZGRlZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIGFkZGVkKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7
CiAKQEAgLTg5OSw3ICs5MDcsNyBAQCB2b2lkIHRlc3RNdWxBZGRBcmdzUmlnaHQoKQogICAgIFZh
bHVlKiBhcmcyID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpOwogICAgIFZhbHVlKiBtdWx0aXBsaWVkID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBhcmcxLCBhcmcyKTsKICAg
ICBWYWx1ZSogYWRkZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2lu
KCksIGFyZzAsIG11bHRpcGxpZWQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOwogCiAgICAgYXV0byBjb2Rl
ID0gY29tcGlsZShwcm9jKTsKIApAQCAtOTI2LDcgKzkzNCw3IEBAIHZvaWQgdGVzdE11bEFkZEFy
Z3NMZWZ0MzIoKQogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMikpOwogICAgIFZhbHVlKiBtdWx0aXBs
aWVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBhcmcwLCBh
cmcxKTsKICAgICBWYWx1ZSogYWRkZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFk
ZCwgT3JpZ2luKCksIG11bHRpcGxpZWQsIGFyZzIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOwogCiAgICAg
YXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAtOTUzLDcgKzk2MSw3IEBAIHZvaWQgdGVz
dE11bEFkZEFyZ3NSaWdodDMyKCkKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpKTsKICAgICBWYWx1
ZSogbXVsdGlwbGllZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4o
KSwgYXJnMSwgYXJnMik7CiAgICAgVmFsdWUqIGFkZGVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBBZGQsIE9yaWdpbigpLCBhcmcwLCBtdWx0aXBsaWVkKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVk
KTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKQEAgLTk3Nyw3ICs5ODUsNyBA
QCB2b2lkIHRlc3RNdWxTdWJBcmdzTGVmdCgpCiAgICAgVmFsdWUqIGFyZzIgPSByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMik7CiAgICAgVmFsdWUqIG11bHRpcGxpZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIE11bCwgT3JpZ2luKCksIGFyZzAsIGFyZzEpOwogICAgIFZhbHVlKiBhZGRlZCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgbXVsdGlwbGllZCwgYXJnMik7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgYWRkZWQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBhZGRlZCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBA
IC0xMDAxLDcgKzEwMDksNyBAQCB2b2lkIHRlc3RNdWxTdWJBcmdzUmlnaHQoKQogICAgIFZhbHVl
KiBhcmcyID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjIpOwogICAgIFZhbHVlKiBtdWx0aXBsaWVkID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBhcmcxLCBhcmcyKTsKICAgICBW
YWx1ZSogYWRkZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCks
IGFyZzAsIG11bHRpcGxpZWQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOwogCiAgICAgYXV0byBjb2RlID0g
Y29tcGlsZShwcm9jKTsKIApAQCAtMTAyOCw3ICsxMDM2LDcgQEAgdm9pZCB0ZXN0TXVsU3ViQXJn
c0xlZnQzMigpCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKSk7CiAgICAgVmFsdWUqIG11bHRpcGxp
ZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGFyZzAsIGFy
ZzEpOwogICAgIFZhbHVlKiBhZGRlZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3Vi
LCBPcmlnaW4oKSwgbXVsdGlwbGllZCwgYXJnMik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CiAKICAgICBh
dXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC0xMDU1LDcgKzEwNjMsNyBAQCB2b2lkIHRl
c3RNdWxTdWJBcmdzUmlnaHQzMigpCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKSk7CiAgICAgVmFs
dWUqIG11bHRpcGxpZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2lu
KCksIGFyZzEsIGFyZzIpOwogICAgIFZhbHVlKiBhZGRlZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgYXJnMCwgbXVsdGlwbGllZCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOworICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRl
ZCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC0xMDc5LDcgKzEwODcs
NyBAQCB2b2lkIHRlc3RNdWxOZWdBcmdzKCkKICAgICBWYWx1ZSogbXVsdGlwbGllZCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgYXJnMCwgYXJnMSk7CiAgICAg
VmFsdWUqIHplcm8gPSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgMCk7CiAgICAgVmFsdWUqIGFkZGVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBT
dWIsIE9yaWdpbigpLCB6ZXJvLCBtdWx0aXBsaWVkKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKIAogICAg
IGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKQEAgLTExMDMsNyArMTExMSw3IEBAIHZvaWQg
dGVzdE11bE5lZ0FyZ3MzMigpCiAgICAgVmFsdWUqIG11bHRpcGxpZWQgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGFyZzAsIGFyZzEpOwogICAgIFZhbHVlKiB6
ZXJvID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApOwog
ICAgIFZhbHVlKiBhZGRlZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmln
aW4oKSwgemVybywgbXVsdGlwbGllZCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CiAKICAgICBhdXRvIGNv
ZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC0xMTIwLDcgKzExMjgsNyBAQCB2b2lkIHRlc3RNdWxB
cmdEb3VibGUoZG91YmxlIGEpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBS
MCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIHZhbHVlLCB2YWx1
ZSkpOwogCkBAIC0xMTMzLDcgKzExNDEsNyBAQCB2b2lkIHRlc3RNdWxBcmdzRG91YmxlKGRvdWJs
ZSBhLCBkb3VibGUgCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAg
ICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiB2YWx1ZUIgPSBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86
OmFyZ3VtZW50RlBSMSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCks
IHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTExNDYsNyArMTE1NCw3IEBAIHZvaWQgdGVzdE11bEFy
Z0ltbURvdWJsZShkb3VibGUgYSwgZG91YmwKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFs
dWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmln
aW4oKSwgYik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIHZhbHVl
QSwgdmFsdWVCKSk7CiAKQEAgLTExNTksNyArMTE2Nyw3IEBAIHZvaWQgdGVzdE11bEltbUFyZ0Rv
dWJsZShkb3VibGUgYSwgZG91YmwKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBS
MCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIHZhbHVlQSwgdmFs
dWVCKSk7CiAKQEAgLTExNzIsNyArMTE4MCw3IEBAIHZvaWQgdGVzdE11bEltbXNEb3VibGUoZG91
YmxlIGEsIGRvdWJsZSAKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwog
ICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8Q29u
c3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBNdWwsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC0xMTg4LDcgKzExOTYs
NyBAQCB2b2lkIHRlc3RNdWxBcmdGbG9hdChmbG9hdCBhKQogICAgIFZhbHVlKiBmbG9hdFZhbHVl
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFy
Z3VtZW50MzIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIE11bCwgT3JpZ2luKCksIGZsb2F0VmFsdWUsIGZsb2F0VmFsdWUpOwogICAgIFZhbHVlKiBy
ZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdp
bigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAKICAgICBDSEVDSyhpc0lk
ZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90
PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhICogYSkpKTsKQEAgLTEyMDYsNyArMTIxNCw3
IEBAIHZvaWQgdGVzdE11bEFyZ3NGbG9hdChmbG9hdCBhLCBmbG9hdCBiKQogICAgIFZhbHVlKiBm
bG9hdFZhbHVlMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9y
aWdpbigpLCBhcmd1bWVudDJpbnQzMik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZTEsIGZsb2F0VmFsdWUy
KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJp
dHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAog
ICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lz
ZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nh
c3Q8aW50MzJfdD4oYSAqIGIpKSk7CiB9CkBAIC0xMjIxLDcgKzEyMjksNyBAQCB2b2lkIHRlc3RN
dWxBcmdJbW1GbG9hdChmbG9hdCBhLCBmbG9hdCBiCiAgICAgVmFsdWUqIGNvbnN0VmFsdWUgPSBy
b290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7CiAgICAg
VmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4o
KSwgZmxvYXRWYWx1ZSwgY29uc3RWYWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5k
UnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2Fz
dDxpbnQzMl90PihhICogYikpKTsKIH0KQEAgLTEyMzYsNyArMTI0NCw3IEBAIHZvaWQgdGVzdE11
bEltbUFyZ0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIKICAgICBWYWx1ZSogY29uc3RWYWx1ZSA9IHJv
b3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBW
YWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigp
LCBjb25zdFZhbHVlLCBmbG9hdFZhbHVlKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRS
dW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0
PGludDMyX3Q+KGEgKiBiKSkpOwogfQpAQCAtMTI0OSw3ICsxMjU3LDcgQEAgdm9pZCB0ZXN0TXVs
SW1tc0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIpCiAgICAgVmFsdWUqIGNvbnN0VmFsdWUyID0gcm9v
dC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogICAgIFZh
bHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCks
IGNvbnN0VmFsdWUxLCBjb25zdFZhbHVlMik7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5k
UnVuPGludDMyX3Q+KHByb2MpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAqIGIpKSk7CiB9CkBA
IC0xMjY1LDcgKzEyNzMsNyBAQCB2b2lkIHRlc3RNdWxBcmdGbG9hdFdpdGhVc2VsZXNzRG91Ymxl
Q29uCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVs
LCBPcmlnaW4oKSwgYXNEb3VibGUsIGFzRG91YmxlKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBy
ZXN1bHQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1
bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHBy
b2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhICog
YSkpKTsKIH0KQEAgLTEyODUsNyArMTI5Myw3IEBAIHZvaWQgdGVzdE11bEFyZ3NGbG9hdFdpdGhV
c2VsZXNzRG91YmxlQ28KICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBNdWwsIE9yaWdpbigpLCBhc0RvdWJsZTEsIGFzRG91YmxlMik7CiAgICAgVmFsdWUq
IGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0
LCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
c3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1
bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxp
bnQzMl90PihiKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhICogYikpKTsKIH0KQEAgLTEzMDcs
NyArMTMxNSw3IEBAIHZvaWQgdGVzdE11bEFyZ3NGbG9hdFdpdGhFZmZlY3RmdWxEb3VibGUKICAg
ICBWYWx1ZSogZG91YmxlTXVscmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKTsKICAgICByb290LT5hcHBl
bmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBkb3VibGVN
dWxyZXNzKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0MzIpOwogCiAgICAgZG91YmxlIGVmZmVjdCA9IDA7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwo
Y29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJp
dHdpc2VfY2FzdDxpbnQzMl90PihiKSwgJmVmZmVjdCksIGJpdHdpc2VfY2FzdDxpbnQzMl90Pihh
ICogYikpKTsKQEAgLTEzMTksNyArMTMyNyw3IEBAIHZvaWQgdGVzdERpdkFyZ0RvdWJsZShkb3Vi
bGUgYSkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwgdmFsdWUsIHZhbHVlKSk7CiAKQEAgLTEz
MzIsNyArMTM0MCw3IEBAIHZvaWQgdGVzdERpdkFyZ3NEb3VibGUoZG91YmxlIGEsIGRvdWJsZSAK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1
ZUEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQ
UkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIx
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1
ZUIpKTsKIApAQCAtMTM0NSw3ICsxMzUzLDcgQEAgdm9pZCB0ZXN0RGl2QXJnSW1tRG91YmxlKGRv
dWJsZSBhLCBkb3VibAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAg
ICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogdmFsdWVCID0g
cm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsK
IApAQCAtMTM1OCw3ICsxMzY2LDcgQEAgdm9pZCB0ZXN0RGl2SW1tQXJnRG91YmxlKGRvdWJsZSBh
LCBkb3VibAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFs
dWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmln
aW4oKSwgYSk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAt
MTM3MSw3ICsxMzc5LDcgQEAgdm9pZCB0ZXN0RGl2SW1tc0RvdWJsZShkb3VibGUgYSwgZG91Ymxl
IAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZh
bHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
YSk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgYik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERpdiwgT3Jp
Z2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTEzODcsNyArMTM5NSw3IEBAIHZvaWQgdGVz
dERpdkFyZ0Zsb2F0KGZsb2F0IGEpCiAgICAgVmFsdWUqIGZsb2F0VmFsdWUgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAg
ICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRGl2LCBPcmln
aW4oKSwgZmxvYXRWYWx1ZSwgZmxvYXRWYWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBp
bGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lz
ZV9jYXN0PGludDMyX3Q+KGEgLyBhKSkpOwpAQCAtMTQwNSw3ICsxNDEzLDcgQEAgdm9pZCB0ZXN0
RGl2QXJnc0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIpCiAgICAgVmFsdWUqIGZsb2F0VmFsdWUyID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3Vt
ZW50MmludDMyKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBEaXYsIE9yaWdpbigpLCBmbG9hdFZhbHVlMSwgZmxvYXRWYWx1ZTIpOwogICAgIFZhbHVl
KiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9y
aWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJ
ZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJf
dD4oYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90Pihh
IC8gYikpKTsKIH0KQEAgLTE0MjAsNyArMTQyOCw3IEBAIHZvaWQgdGVzdERpdkFyZ0ltbUZsb2F0
KGZsb2F0IGEsIGZsb2F0IGIKICAgICBWYWx1ZSogY29uc3RWYWx1ZSA9IHJvb3QtPmFwcGVuZE5l
dzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKICAgICBWYWx1ZSogcmVzdWx0
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEaXYsIE9yaWdpbigpLCBmbG9hdFZhbHVl
LCBjb25zdFZhbHVlKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
c3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4o
cHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEg
LyBiKSkpOwogfQpAQCAtMTQzNSw3ICsxNDQzLDcgQEAgdm9pZCB0ZXN0RGl2SW1tQXJnRmxvYXQo
ZmxvYXQgYSwgZmxvYXQgYgogICAgIFZhbHVlKiBjb25zdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3
PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiByZXN1bHQg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERpdiwgT3JpZ2luKCksIGNvbnN0VmFsdWUs
IGZsb2F0VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihw
cm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAv
IGIpKSk7CiB9CkBAIC0xNDQ4LDcgKzE0NTYsNyBAQCB2b2lkIHRlc3REaXZJbW1zRmxvYXQoZmxv
YXQgYSwgZmxvYXQgYikKICAgICBWYWx1ZSogY29uc3RWYWx1ZTIgPSByb290LT5hcHBlbmROZXc8
Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7CiAgICAgVmFsdWUqIHJlc3VsdCA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwgY29uc3RWYWx1ZTEs
IGNvbnN0VmFsdWUyKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
c3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4o
cHJvYyksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhIC8gYikpKTsKIH0KQEAgLTE0NTgsNyArMTQ2
Niw3IEBAIHZvaWQgdGVzdE1vZEFyZ0RvdWJsZShkb3VibGUgYSkKICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2
YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
RlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBP
cmlnaW4oKSwgdmFsdWUsIHZhbHVlKSk7CiAKQEAgLTE0NzEsNyArMTQ3OSw3IEBAIHZvaWQgdGVz
dE1vZEFyZ3NEb3VibGUoZG91YmxlIGEsIGRvdWJsZSAKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAg
ICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIxKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgTW9kLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTQ4NCw3ICsxNDky
LDcgQEAgdm9pZCB0ZXN0TW9kQXJnSW1tRG91YmxlKGRvdWJsZSBhLCBkb3VibAogICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJn
dW1lbnRGUFIwKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91
YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
TW9kLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTQ5Nyw3ICsxNTA1LDcgQEAg
dm9pZCB0ZXN0TW9kSW1tQXJnRG91YmxlKGRvdWJsZSBhLCBkb3VibAogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVu
ZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHZh
bHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
RlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBP
cmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTUxMCw3ICsxNTE4LDcgQEAgdm9pZCB0
ZXN0TW9kSW1tc0RvdWJsZShkb3VibGUgYSwgZG91YmxlIAogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxD
b25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHZhbHVlQiA9
IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7
CiAKQEAgLTE1MjYsNyArMTUzNCw3IEBAIHZvaWQgdGVzdE1vZEFyZ0Zsb2F0KGZsb2F0IGEpCiAg
ICAgVmFsdWUqIGZsb2F0VmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdp
c2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSwgZmxvYXRW
YWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7
CiAKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywg
Yml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRpY19j
YXN0PGZsb2F0PihmbW9kKGEsIGEpKSkpKTsKQEAgLTE1NDQsNyArMTU1Miw3IEBAIHZvaWQgdGVz
dE1vZEFyZ3NGbG9hdChmbG9hdCBhLCBmbG9hdCBiKQogICAgIFZhbHVlKiBmbG9hdFZhbHVlMiA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1
bWVudDJpbnQzMik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgTW9kLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZTEsIGZsb2F0VmFsdWUyKTsKICAgICBWYWx1
ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBP
cmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlz
SWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMy
X3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4o
c3RhdGljX2Nhc3Q8ZmxvYXQ+KGZtb2QoYSwgYikpKSkpOwogfQpAQCAtMTU1OSw3ICsxNTY3LDcg
QEAgdm9pZCB0ZXN0TW9kQXJnSW1tRmxvYXQoZmxvYXQgYSwgZmxvYXQgYgogICAgIFZhbHVlKiBj
b25zdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIGIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IE1vZCwgT3JpZ2luKCksIGZsb2F0VmFsdWUsIGNvbnN0VmFsdWUpOwogICAgIFZhbHVlKiByZXN1
bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigp
LCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGlj
YWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkp
LCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KGZtb2QoYSwgYikpKSkp
OwogfQpAQCAtMTU3NCw3ICsxNTgyLDcgQEAgdm9pZCB0ZXN0TW9kSW1tQXJnRmxvYXQoZmxvYXQg
YSwgZmxvYXQgYgogICAgIFZhbHVlKiBjb25zdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0
RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIGNvbnN0VmFsdWUsIGZsb2F0
VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIp
OwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBi
aXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nh
c3Q8ZmxvYXQ+KGZtb2QoYSwgYikpKSkpOwogfQpAQCAtMTU4Nyw3ICsxNTk1LDcgQEAgdm9pZCB0
ZXN0TW9kSW1tc0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIpCiAgICAgVmFsdWUqIGNvbnN0VmFsdWUy
ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwog
ICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE1vZCwgT3Jp
Z2luKCksIGNvbnN0VmFsdWUxLCBjb25zdFZhbHVlMik7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3Vs
dCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21w
aWxlQW5kUnVuPGludDMyX3Q+KHByb2MpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nh
c3Q8ZmxvYXQ+KGZtb2QoYSwgYikpKSkpOwogfQpAQCAtMTYwMyw3ICsxNjExLDcgQEAgdm9pZCB0
ZXN0RGl2QXJnRmxvYXRXaXRoVXNlbGVzc0RvdWJsZUNvbgogICAgIFZhbHVlKiByZXN1bHQgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERpdiwgT3JpZ2luKCksIGFzRG91YmxlLCBhc0Rv
dWJsZSk7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICBWYWx1ZSogcmVzdWx0
MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwg
ZmxvYXRSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVu
dGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4o
YSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAvIGEpKSk7CiB9CkBAIC0xNjIzLDcgKzE2MzEs
NyBAQCB2b2lkIHRlc3REaXZBcmdzRmxvYXRXaXRoVXNlbGVzc0RvdWJsZUNvCiAgICAgVmFsdWUq
IHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwgYXNE
b3VibGUxLCBhc0RvdWJsZTIpOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAg
VmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2Fz
dCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAg
IENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9j
YXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4oYSAvIGIpKSk7CiB9CkBAIC0xNjQ1LDcgKzE2NTMsNyBAQCB2b2lkIHRlc3REaXZB
cmdzRmxvYXRXaXRoRWZmZWN0ZnVsRG91YmxlCiAgICAgVmFsdWUqIGRvdWJsZURpdnJlc3MgPSBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMik7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBT
dG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgZG91YmxlRGl2cmVzcyk7CiAgICAgVmFsdWUqIHJlc3Vs
dDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCks
IGZsb2F0UmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIGRvdWJsZSBlZmZl
Y3QgPSAwOwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJv
YywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYiksICZl
ZmZlY3QpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAvIGIpKSk7CkBAIC0xNjU3LDcgKzE2NjUs
NyBAQCB2b2lkIHRlc3RTdWJBcmcoaW50IGEpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWUgPSByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIHZh
bHVlLCB2YWx1ZSkpOwogCkBAIC0xNjY4LDcgKzE2NzYsNyBAQCB2b2lkIHRlc3RTdWJBcmdzKGlu
dCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIFN1YiwgT3JpZ2luKCksCkBAIC0xNjgyLDcgKzE2OTAsNyBAQCB2b2lkIHRlc3RTdWJBcmdJ
bW0oaW50NjRfdCBhLCBpbnQ2NF90IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBTdWIsIE9yaWdpbigpLApAQCAtMTcwMyw3ICsxNzExLDcgQEAgdm9p
ZCB0ZXN0TmVnVmFsdWVTdWJPbmUoaW50IGEpCiAgICAgVmFsdWUqIG5lZ0FyZ3VtZW50TWludXNP
bmUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksCiAgICAgICAg
IG5lZ0FyZ3VtZW50LAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgMSkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIG5lZ0FyZ3VtZW50TWludXNPbmUpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBuZWdBcmd1bWVudE1pbnVz
T25lKTsKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywgYSkgPT0gLWEgLSAxKTsK
IH0KIApAQCAtMTcxMSw3ICsxNzE5LDcgQEAgdm9pZCB0ZXN0U3ViSW1tQXJnKGludCBhLCBpbnQg
YikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFN1Yiwg
T3JpZ2luKCksCkBAIC0xNzMwLDcgKzE3MzgsNyBAQCB2b2lkIHRlc3RTdWJBcmdNZW0oaW50NjRf
dCBhLCBpbnQ2NF90IGIpCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50
UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApLAogICAgICAg
ICBsb2FkKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxp
bnQ2NF90Pihwcm9jLCBhLCAmYikgPT0gYSAtIGIpOwogfQpAQCAtMTc0NSw3ICsxNzUzLDcgQEAg
dm9pZCB0ZXN0U3ViTWVtQXJnKGludDY0X3QgYSwgaW50NjRfdCBiKQogICAgICAgICBsb2FkLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMSkpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1
ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGFkZHJlc3MpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBpbnQ2NF90IGlucHV0T3V0
cHV0ID0gYTsKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAmaW5wdXRP
dXRwdXQsIGIpKTsKQEAgLTE3NjIsNyArMTc3MCw3IEBAIHZvaWQgdGVzdFN1YkltbU1lbShpbnQ2
NF90IGEsIGludDY0X3QgYikKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIGEpLAogICAgICAgICBsb2FkKTsKICAgICByb290LT5hcHBlbmROZXc8
TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBhZGRyZXNzKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
b290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgaW50NjRf
dCBpbnB1dE91dHB1dCA9IGI7CiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAm
aW5wdXRPdXRwdXQpKTsKQEAgLTE3NzksNyArMTc4Nyw3IEBAIHZvaWQgdGVzdFN1Yk1lbUltbShp
bnQ2NF90IGEsIGludDY0X3QgYikKICAgICAgICAgbG9hZCwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpKTsKICAgICByb290LT5hcHBlbmRO
ZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBhZGRyZXNzKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgaW50
NjRfdCBpbnB1dE91dHB1dCA9IGE7CiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50Pihwcm9j
LCAmaW5wdXRPdXRwdXQpKTsKQEAgLTE3OTEsNyArMTc5OSw3IEBAIHZvaWQgdGVzdFN1YkFyZ3Mz
MihpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBTdWIsIE9yaWdpbigpLApAQCAtMTgwOSw3ICsxODE3LDcgQEAgdm9pZCB0ZXN0U3Vi
QXJnSW1tMzIoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgU3ViLCBPcmlnaW4oKSwKQEAgLTE4MjUsNyArMTgzMyw3IEBAIHZvaWQg
dGVzdFN1YkltbUFyZzMyKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIFN1YiwgT3JpZ2luKCksCkBAIC0xODQ3LDcgKzE4NTUsNyBA
QCB2b2lkIHRlc3RTdWJNZW1BcmczMihpbnQzMl90IGEsIGludDMyX3QgCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIxKSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgU3ViLCBPcmlnaW4oKSwgbG9hZCwgYXJndW1lbnQpOwogICAgIHJvb3QtPmFwcGVuZE5l
dzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGFkZHJlc3MpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3Qt
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBpbnQz
Ml90IGlucHV0T3V0cHV0ID0gYTsKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihw
cm9jLCAmaW5wdXRPdXRwdXQsIGIpKTsKQEAgLTE4NjMsNyArMTg3MSw3IEBAIHZvaWQgdGVzdFN1
YkFyZ01lbTMyKGludDMyX3QgYSwgaW50MzJfdCAKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjApKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBTdWIsIE9yaWdpbigpLCBhcmd1bWVudCwgbG9hZCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsK
IAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYSwgJmIpID09IGEgLSBi
KTsKIH0KQEAgLTE4NzgsNyArMTg4Niw3IEBAIHZvaWQgdGVzdFN1YkltbU1lbTMyKGludDMyX3Qg
YSwgaW50MzJfdCAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIGEpLAogICAgICAgICBsb2FkKTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5
VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBhZGRyZXNzKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgaW50MzJfdCBpbnB1
dE91dHB1dCA9IGI7CiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAmaW5wdXRP
dXRwdXQpKTsKQEAgLTE4OTUsNyArMTkwMyw3IEBAIHZvaWQgdGVzdFN1Yk1lbUltbTMyKGludDMy
X3QgYSwgaW50MzJfdCAKICAgICAgICAgbG9hZCwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpKTsKICAgICByb290LT5hcHBlbmROZXc8TWVt
b3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBhZGRyZXNzKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgaW50MzJfdCBp
bnB1dE91dHB1dCA9IGE7CiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAmaW5w
dXRPdXRwdXQpKTsKQEAgLTE5MTQsNyArMTkyMiw3IEBAIHZvaWQgdGVzdE5lZ1ZhbHVlU3ViT25l
MzIoaW50IGEpCiAgICAgVmFsdWUqIG5lZ0FyZ3VtZW50TWludXNPbmUgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksCiAgICAgICAgIG5lZ0FyZ3VtZW50LAogICAg
ICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IG5lZ0FyZ3VtZW50TWludXNPbmUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBuZWdBcmd1bWVudE1pbnVzT25lKTsKICAgICBDSEVDSyhj
b21waWxlQW5kUnVuPGludD4ocHJvYywgYSkgPT0gLWEgLSAxKTsKIH0KIApAQCAtMTkyMyw3ICsx
OTMxLDcgQEAgdm9pZCB0ZXN0U3ViQXJnRG91YmxlKGRvdWJsZSBhKQogICAgIFByb2NlZHVyZSBw
cm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUq
IHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIs
IE9yaWdpbigpLCB2YWx1ZSwgdmFsdWUpKTsKIApAQCAtMTkzNiw3ICsxOTQ0LDcgQEAgdm9pZCB0
ZXN0U3ViQXJnc0RvdWJsZShkb3VibGUgYSwgZG91YmxlIAogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsK
ICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjEpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBTdWIsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC0xOTQ5LDcgKzE5
NTcsNyBAQCB2b2lkIHRlc3RTdWJBcmdJbW1Eb3VibGUoZG91YmxlIGEsIGRvdWJsCiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjph
cmd1bWVudEZQUjApOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8Q29uc3RE
b3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBTdWIsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC0xOTYyLDcgKzE5NzAsNyBA
QCB2b2lkIHRlc3RTdWJJbW1BcmdEb3VibGUoZG91YmxlIGEsIGRvdWJsCiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBw
ZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSog
dmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIs
IE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC0xOTc1LDcgKzE5ODMsNyBAQCB2b2lk
IHRlc3RTdWJJbW1zRG91YmxlKGRvdWJsZSBhLCBkb3VibGUgCiAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3
PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogdmFsdWVC
ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIp
KTsKICAgICAKQEAgLTE5OTEsNyArMTk5OSw3IEBAIHZvaWQgdGVzdFN1YkFyZ0Zsb2F0KGZsb2F0
IGEpCiAgICAgVmFsdWUqIGZsb2F0VmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUqIHJlc3VsdCA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSwg
ZmxvYXRWYWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1
bHQzMik7CiAKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4o
cHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEg
LSBhKSkpOwpAQCAtMjAwOSw3ICsyMDE3LDcgQEAgdm9pZCB0ZXN0U3ViQXJnc0Zsb2F0KGZsb2F0
IGEsIGZsb2F0IGIpCiAgICAgVmFsdWUqIGZsb2F0VmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MmludDMyKTsKICAgICBW
YWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigp
LCBmbG9hdFZhbHVlMSwgZmxvYXRWYWx1ZTIpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFu
ZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2Fz
dDxpbnQzMl90PihiKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhIC0gYikpKTsKIH0KQEAgLTIw
MjQsNyArMjAzMiw3IEBAIHZvaWQgdGVzdFN1YkFyZ0ltbUZsb2F0KGZsb2F0IGEsIGZsb2F0IGIK
ICAgICBWYWx1ZSogY29uc3RWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+
KHByb2MsIE9yaWdpbigpLCBiKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBmbG9hdFZhbHVlLCBjb25zdFZhbHVlKTsKICAg
ICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VD
YXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENI
RUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0
PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLSBiKSkpOwogfQpAQCAtMjAz
OSw3ICsyMDQ3LDcgQEAgdm9pZCB0ZXN0U3ViSW1tQXJnRmxvYXQoZmxvYXQgYSwgZmxvYXQgYgog
ICAgIFZhbHVlKiBjb25zdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIGNvbnN0VmFsdWUsIGZsb2F0VmFsdWUpOwogICAg
IFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNh
c3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hF
Q0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAtIGIpKSk7CiB9CkBAIC0yMDUy
LDcgKzIwNjAsNyBAQCB2b2lkIHRlc3RTdWJJbW1zRmxvYXQoZmxvYXQgYSwgZmxvYXQgYikKICAg
ICBWYWx1ZSogY29uc3RWYWx1ZTIgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgYik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgY29uc3RWYWx1ZTEsIGNvbnN0VmFsdWUyKTsKICAg
ICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VD
YXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENI
RUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYyksIGJpdHdpc2VfY2Fz
dDxpbnQzMl90PihhIC0gYikpKTsKIH0KQEAgLTIwNjgsNyArMjA3Niw3IEBAIHZvaWQgdGVzdFN1
YkFyZ0Zsb2F0V2l0aFVzZWxlc3NEb3VibGVDb24KICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBhc0RvdWJsZSwgYXNEb3VibGUp
OwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
RG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0
UmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2Fs
KGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwg
Yml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLSBhKSkpOwogfQpAQCAtMjA4OCw3ICsyMDk2LDcgQEAg
dm9pZCB0ZXN0U3ViQXJnc0Zsb2F0V2l0aFVzZWxlc3NEb3VibGVDbwogICAgIFZhbHVlKiByZXN1
bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIGFzRG91Ymxl
MSwgYXNEb3VibGUyKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCByZXN1bHQpOwogICAgIFZhbHVl
KiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9y
aWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVD
Syhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxp
bnQzMl90PihhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0PGludDMy
X3Q+KGEgLSBiKSkpOwogfQpAQCAtMjExMCw3ICsyMTE4LDcgQEAgdm9pZCB0ZXN0U3ViQXJnc0Zs
b2F0V2l0aEVmZmVjdGZ1bERvdWJsZQogICAgIFZhbHVlKiBkb3VibGVTdWJyZXNzID0gcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjIpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUs
IE9yaWdpbigpLCByZXN1bHQsIGRvdWJsZVN1YnJlc3MpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9h
dFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBkb3VibGUgZWZmZWN0ID0g
MDsKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJp
dHdpc2VfY2FzdDxpbnQzMl90PihhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpLCAmZWZmZWN0
KSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLSBiKSkpOwpAQCAtMjEyMSw3ICsyMTI5LDcgQEAg
dm9pZCB0ZXN0Qml0QW5kQXJncyhpbnQ2NF90IGEsIGludDY0X3QgYgogewogICAgIFByb2NlZHVy
ZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTIx
MzYsNyArMjE0NCw3IEBAIHZvaWQgdGVzdEJpdEFuZFNhbWVBcmcoaW50NjRfdCBhKQogICAgIFBy
b2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAg
ICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0yMTUwLDcgKzIxNTgs
NyBAQCB2b2lkIHRlc3RCaXRBbmRJbW1zKGludDY0X3QgYSwgaW50NjRfdCBiCiB7CiAgICAgUHJv
Y2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApA
QCAtMjE2NCw3ICsyMTcyLDcgQEAgdm9pZCB0ZXN0Qml0QW5kQXJnSW1tKGludDY0X3QgYSwgaW50
NjRfdAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0
QW5kLCBPcmlnaW4oKSwKQEAgLTIxNzgsNyArMjE4Niw3IEBAIHZvaWQgdGVzdEJpdEFuZEltbUFy
ZyhpbnQ2NF90IGEsIGludDY0X3QKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0yMTk2LDcgKzIyMDQsNyBAQCB2b2lk
IHRlc3RCaXRBbmRCaXRBbmRBcmdJbW1JbW0oaW50NjRfdCBhCiAgICAgICAgIHByb2MsIEJpdEFu
ZCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMjIxNCw3ICsy
MjIyLDcgQEAgdm9pZCB0ZXN0Qml0QW5kSW1tQml0QW5kQXJnSW1tKGludDY0X3QgYQogICAgICAg
ICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBjKSk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwK
QEAgLTIyMjgsNyArMjIzNiw3IEBAIHZvaWQgdGVzdEJpdEFuZEFyZ3MzMihpbnQgYSwgaW50IGIp
CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQs
IE9yaWdpbigpLApAQCAtMjI0OCw3ICsyMjU2LDcgQEAgdm9pZCB0ZXN0Qml0QW5kU2FtZUFyZzMy
KGludCBhKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFs
dWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTIyNjIsNyArMjI3MCw3IEBAIHZv
aWQgdGVzdEJpdEFuZEltbXMzMihpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMjI3Niw3ICsy
Mjg0LDcgQEAgdm9pZCB0ZXN0Qml0QW5kQXJnSW1tMzIoaW50IGEsIGludCBiKQogewogICAgIFBy
b2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwK
QEAgLTIyOTIsNyArMjMwMCw3IEBAIHZvaWQgdGVzdEJpdEFuZEltbUFyZzMyKGludCBhLCBpbnQg
YikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdEFu
ZCwgT3JpZ2luKCksCkBAIC0yMzE0LDcgKzIzMjIsNyBAQCB2b2lkIHRlc3RCaXRBbmRCaXRBbmRB
cmdJbW1JbW0zMihpbnQgYSwgCiAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAg
ICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29u
c3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYikpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0yMzM0LDcgKzIzNDIsNyBAQCB2
b2lkIHRlc3RCaXRBbmRJbW1CaXRBbmRBcmdJbW0zMihpbnQgYSwgCiAgICAgICAgICAgICBwcm9j
LCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYykpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBA
IC0yMzYxLDcgKzIzNjksNyBAQCB2b2lkIHRlc3RCaXRBbmRXaXRoTWFza1JldHVybnNCb29sZWFu
cyhpCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigp
LCA0MiksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdp
bigpLCAtNSkpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgc2VsZWN0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2VsZWN0KTsKIAogICAgIGludDY0X3QgZXhwZWN0ZWQg
PSAoYSA9PSBiKSA/IC01IDogNDI7CiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihw
cm9jLCBhLCBiKSA9PSBleHBlY3RlZCk7CkBAIC0yMzc4LDcgKzIzODYsNyBAQCB2b2lkIHRlc3RC
aXRBbmRBcmdEb3VibGUoZG91YmxlIGEpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFs
dWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0QW5kLCBPcmlnaW4o
KSwgYXJndW1lbnQsIGFyZ3VtZW50KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0so
aXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIGEpLCBiaXRBbmREb3VibGUo
YSwgYSkpKTsKIH0KQEAgLTIzOTAsNyArMjM5OCw3IEBAIHZvaWQgdGVzdEJpdEFuZEFyZ3NEb3Vi
bGUoZG91YmxlIGEsIGRvdWIKICAgICBWYWx1ZSogYXJndW1lbnRBID0gcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjAp
OwogICAgIFZhbHVlKiBhcmd1bWVudEIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMSk7CiAgICAgVmFsdWUqIHJl
c3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0QW5kLCBPcmlnaW4oKSwgYXJn
dW1lbnRBLCBhcmd1bWVudEIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhpc0lk
ZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgYSwgYiksIGJpdEFuZERvdWJsZShh
LCBiKSkpOwogfQpAQCAtMjQwMiw3ICsyNDEwLDcgQEAgdm9pZCB0ZXN0Qml0QW5kQXJnSW1tRG91
YmxlKGRvdWJsZSBhLCBkbwogICAgIFZhbHVlKiBhcmd1bWVudEEgPSByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7
CiAgICAgVmFsdWUqIGFyZ3VtZW50QiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgYik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQml0QW5kLCBPcmlnaW4oKSwgYXJndW1lbnRBLCBhcmd1bWVudEIpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVu
PGRvdWJsZT4ocHJvYywgYSwgYiksIGJpdEFuZERvdWJsZShhLCBiKSkpOwogfQpAQCAtMjQxNCw3
ICsyNDIyLDcgQEAgdm9pZCB0ZXN0Qml0QW5kSW1tc0RvdWJsZShkb3VibGUgYSwgZG91YgogICAg
IFZhbHVlKiBhcmd1bWVudEEgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiBhcmd1bWVudEIgPSByb290LT5hcHBlbmROZXc8
Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiByZXN1bHQg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdEFuZCwgT3JpZ2luKCksIGFyZ3VtZW50
QSwgYXJndW1lbnRCKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soaXNJZGVudGlj
YWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MpLCBiaXRBbmREb3VibGUoYSwgYikpKTsKIH0K
QEAgLTI0MzIsNyArMjQ0MCw3IEBAIHZvaWQgdGVzdEJpdEFuZEFyZ0Zsb2F0KGZsb2F0IGEpCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAg
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0QW5kLCBPcmlnaW4oKSwgYXJndW1lbnQsIGFyZ3VtZW50
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFu
ZFJ1bjxmbG9hdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0QW5kRmxvYXQo
YSwgYSkpKTsKIH0KQEAgLTI0NDgsNyArMjQ1Niw3IEBAIHZvaWQgdGVzdEJpdEFuZEFyZ3NGbG9h
dChmbG9hdCBhLCBmbG9hdCAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBU
cnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSkpKTsKICAgICBWYWx1
ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXRBbmQsIE9yaWdpbigp
LCBhcmd1bWVudEEsIGFyZ3VtZW50Qik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNL
KGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQz
Ml90PihhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0QW5kRmxvYXQoYSwgYikpKTsK
IH0KQEAgLTI0NjIsNyArMjQ3MCw3IEBAIHZvaWQgdGVzdEJpdEFuZEFyZ0ltbUZsb2F0KGZsb2F0
IGEsIGZsb2EKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSkpOwogICAgIFZhbHVlKiBhcmd1
bWVudEIgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
Yik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0
QW5kLCBPcmlnaW4oKSwgYXJndW1lbnRBLCBhcmd1bWVudEIpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7
CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSksIGJpdEFuZEZs
b2F0KGEsIGIpKSk7CiB9CkBAIC0yNDc0LDcgKzI0ODIsNyBAQCB2b2lkIHRlc3RCaXRBbmRJbW1z
RmxvYXQoZmxvYXQgYSwgZmxvYXQgCiAgICAgVmFsdWUqIGFyZ3VtZW50QSA9IHJvb3QtPmFwcGVu
ZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogYXJn
dW1lbnRCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IGIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJp
dEFuZCwgT3JpZ2luKCksIGFyZ3VtZW50QSwgYXJndW1lbnRCKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQp
OwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYyksIGJp
dEFuZEZsb2F0KGEsIGIpKSk7CiB9CkBAIC0yNDkzLDcgKzI1MDEsNyBAQCB2b2lkIHRlc3RCaXRB
bmRBcmdzRmxvYXRXaXRoVXNlbGVzc0RvdWJsCiAgICAgVmFsdWUqIGFyZ3VtZW50QmFzRG91Ymxl
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwg
YXJndW1lbnRCKTsKICAgICBWYWx1ZSogZG91YmxlUmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBCaXRBbmQsIE9yaWdpbigpLCBhcmd1bWVudEFhc0RvdWJsZSwgYXJndW1lbnRC
YXNEb3VibGUpOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIGRvdWJsZVJlc3VsdCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZmxvYXRS
ZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBmbG9hdFJlc3VsdCk7CiAKICAgICBkb3VibGUgZG91YmxlQSA9IGE7CiAgICAgZG91
YmxlIGRvdWJsZUIgPSBiOwpAQCAtMjUwNSw3ICsyNTEzLDcgQEAgdm9pZCB0ZXN0Qml0T3JBcmdz
KGludDY0X3QgYSwgaW50NjRfdCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgQml0T3IsIE9yaWdpbigpLApAQCAtMjUyMCw3ICsyNTI4LDcgQEAgdm9p
ZCB0ZXN0Qml0T3JTYW1lQXJnKGludDY0X3QgYSkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBCaXRPciwgT3JpZ2luKCksCkBAIC0yNTM0LDcgKzI1NDIsNyBAQCB2b2lkIHRlc3RCaXRPcklt
bXMoaW50NjRfdCBhLCBpbnQ2NF90IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCksCkBAIC0yNTQ4LDcgKzI1NTYsNyBAQCB2
b2lkIHRlc3RCaXRPckFyZ0ltbShpbnQ2NF90IGEsIGludDY0X3QgCiB7CiAgICAgUHJvY2VkdXJl
IHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCksCkBAIC0yNTYy
LDcgKzI1NzAsNyBAQCB2b2lkIHRlc3RCaXRPckltbUFyZyhpbnQ2NF90IGEsIGludDY0X3QgCiB7
CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRPciwgT3Jp
Z2luKCksCkBAIC0yNTgwLDcgKzI1ODgsNyBAQCB2b2lkIHRlc3RCaXRPckJpdE9yQXJnSW1tSW1t
KGludDY0X3QgYSwgCiAgICAgICAgIHByb2MsIEJpdE9yLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgYikpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IEJpdE9yLCBPcmlnaW4oKSwKQEAgLTI1OTgsNyArMjYwNiw3IEBAIHZvaWQgdGVzdEJpdE9ySW1t
Qml0T3JBcmdJbW0oaW50NjRfdCBhLCAKICAgICAgICAgcHJvYywgQml0T3IsIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBjKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgcHJvYywgQml0T3IsIE9yaWdpbigpLApAQCAtMjYxMiw3ICsyNjIwLDcgQEAgdm9pZCB0
ZXN0Qml0T3JBcmdzMzIoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgQml0T3IsIE9yaWdpbigpLApAQCAtMjYzMyw3ICsyNjQxLDcg
QEAgdm9pZCB0ZXN0Qml0T3JTYW1lQXJnMzIoaW50IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAog
ICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCksCkBAIC0yNjQ3LDcgKzI2NTUsNyBAQCB2b2lk
IHRlc3RCaXRPckltbXMzMihpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCksCkBAIC0yNjYxLDcgKzI2Njks
NyBAQCB2b2lkIHRlc3RCaXRPckFyZ0ltbTMyKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1
cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdE9yLCBPcmlnaW4oKSwKQEAgLTI2
NzcsNyArMjY4NSw3IEBAIHZvaWQgdGVzdEJpdE9ySW1tQXJnMzIoaW50IGEsIGludCBiKQogewog
ICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0T3IsIE9yaWdp
bigpLApAQCAtMjY5OSw3ICsyNzA3LDcgQEAgdm9pZCB0ZXN0Qml0T3JCaXRPckFyZ0ltbUltbTMy
KGludCBhLCBpbgogICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIGIpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBCaXRPciwgT3JpZ2luKCksCkBAIC0yNzE5LDcgKzI3MjcsNyBAQCB2b2lkIHRlc3RC
aXRPckltbUJpdE9yQXJnSW1tMzIoaW50IGEsIGluCiAgICAgICAgICAgICBwcm9jLCBUcnVuYywg
T3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYykpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdE9yLCBPcmlnaW4oKSwKQEAgLTI3MzMsNyAr
Mjc0MSw3IEBAIHZvaWQgdGVzdEJpdFhvckFyZ3MoaW50NjRfdCBhLCBpbnQ2NF90IGIKIHsKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2lu
KCksCkBAIC0yNzQ4LDcgKzI3NTYsNyBAQCB2b2lkIHRlc3RCaXRYb3JTYW1lQXJnKGludDY0X3Qg
YSkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjc2
Miw3ICsyNzcwLDcgQEAgdm9pZCB0ZXN0Qml0WG9ySW1tcyhpbnQ2NF90IGEsIGludDY0X3QgYgog
ewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBP
cmlnaW4oKSwKQEAgLTI3NzYsNyArMjc4NCw3IEBAIHZvaWQgdGVzdEJpdFhvckFyZ0ltbShpbnQ2
NF90IGEsIGludDY0X3QKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIEJpdFhvciwgT3JpZ2luKCksCkBAIC0yNzkwLDcgKzI3OTgsNyBAQCB2b2lkIHRlc3RC
aXRYb3JJbW1BcmcoaW50NjRfdCBhLCBpbnQ2NF90CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjgwOCw3ICsyODE2
LDcgQEAgdm9pZCB0ZXN0Qml0WG9yQml0WG9yQXJnSW1tSW1tKGludDY0X3QgYQogICAgICAgICBw
cm9jLCBCaXRYb3IsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKSk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAg
LTI4MjYsNyArMjgzNCw3IEBAIHZvaWQgdGVzdEJpdFhvckltbUJpdFhvckFyZ0ltbShpbnQ2NF90
IGEKICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgYykpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwg
T3JpZ2luKCksCkBAIC0yODQwLDcgKzI4NDgsNyBAQCB2b2lkIHRlc3RCaXRYb3JBcmdzMzIoaW50
IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTI4NjEsNyArMjg2OSw3IEBAIHZvaWQgdGVzdEJpdFhv
clNhbWVBcmczMihpbnQgYSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJp
dFhvciwgT3JpZ2luKCksCkBAIC0yODc1LDcgKzI4ODMsNyBAQCB2b2lkIHRlc3RCaXRYb3JJbW1z
MzIoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTI4ODksNyArMjg5Nyw3IEBAIHZvaWQgdGVz
dEJpdFhvckFyZ0ltbTMyKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCkBAIC0yOTA1LDcgKzI5MTMs
NyBAQCB2b2lkIHRlc3RCaXRYb3JJbW1BcmczMihpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2Vk
dXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAt
MjkyNyw3ICsyOTM1LDcgQEAgdm9pZCB0ZXN0Qml0WG9yQml0WG9yQXJnSW1tSW1tMzIoaW50IGEs
IAogICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjApKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIGIpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBC
aXRYb3IsIE9yaWdpbigpLApAQCAtMjk0Nyw3ICsyOTU1LDcgQEAgdm9pZCB0ZXN0Qml0WG9ySW1t
Qml0WG9yQXJnSW1tMzIoaW50IGEsIAogICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigp
LAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGMpKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
CiAgICAgICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjk2MSw3ICsyOTY5LDcg
QEAgdm9pZCB0ZXN0Qml0Tm90QXJnKGludDY0X3QgYSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCkBAIC0yOTc1LDcgKzI5
ODMsNyBAQCB2b2lkIHRlc3RCaXROb3RJbW0oaW50NjRfdCBhKQogewogICAgIFByb2NlZHVyZSBw
cm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTI5OTUs
NyArMzAwMyw3IEBAIHZvaWQgdGVzdEJpdE5vdE1lbShpbnQ2NF90IGEpCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMSksCiAgICAgICAgIGxv
YWQpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdp
bigpLCBub3RMb2FkLCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgMCkpOwogCiAgICAgaW50NjRfdCBpbnB1dCA9IGE7CiAgICAgY29tcGlsZUFuZFJ1
bjxpbnQzMl90Pihwcm9jLCAmaW5wdXQpOwpAQCAtMzAwOCw3ICszMDE2LDcgQEAgdm9pZCB0ZXN0
Qml0Tm90QXJnMzIoaW50MzJfdCBhKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEJpdFhvciwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTEpLApAQCAtMzAyMCw3ICszMDI4
LDcgQEAgdm9pZCB0ZXN0Qml0Tm90SW1tMzIoaW50MzJfdCBhKQogewogICAgIFByb2NlZHVyZSBw
cm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTMwNDAs
NyArMzA0OCw3IEBAIHZvaWQgdGVzdEJpdE5vdE1lbTMyKGludDMyX3QgYSkKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xKSwKICAgICAgICAg
bG9hZCk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3Jp
Z2luKCksIG5vdExvYWQsIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAwKSk7CiAKICAgICBpbnQzMl90IGlucHV0ID0gYTsKICAgICBjb21waWxlQW5k
UnVuPGludDMyX3Q+KHByb2MsICZpbnB1dCk7CkBAIC0zMDYzLDE2ICszMDcxLDE2IEBAIHZvaWQg
dGVzdEJpdE5vdE9uQm9vbGVhbkFuZEJyYW5jaDMyKGludDYKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xKSwKICAgICAgICAgYXJnc0FyZUVx
dWFsKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAg
ICAgICAgYXJnc0FyZU5vdEVxdWFsLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2Up
LCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAtNDIpKTsKIApAQCAtMzA4NCw3
ICszMDkyLDcgQEAgdm9pZCB0ZXN0U2hsQXJncyhpbnQ2NF90IGEsIGludDY0X3QgYikKIHsKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNobCwgT3JpZ2luKCks
CkBAIC0zMTAwLDcgKzMxMDgsNyBAQCB2b2lkIHRlc3RTaGxJbW1zKGludDY0X3QgYSwgaW50NjRf
dCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2hs
LCBPcmlnaW4oKSwKQEAgLTMxMTQsNyArMzEyMiw3IEBAIHZvaWQgdGVzdFNobEFyZ0ltbShpbnQ2
NF90IGEsIGludDY0X3QgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIFNobCwgT3JpZ2luKCksCkBAIC0zMTMxLDcgKzMxMzksNyBAQCB2b2lkIHRlc3RT
aGxBcmczMihpbnQzMl90IGEpCiAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTaGwsIE9yaWdpbigpLCB2YWx1ZSwg
dmFsdWUpKTsKIApAQCAtMzE0Miw3ICszMTUwLDcgQEAgdm9pZCB0ZXN0U2hsQXJnczMyKGludDMy
X3QgYSwgaW50MzJfdCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgU2hsLCBPcmlnaW4oKSwKQEAgLTMxNjAsNyArMzE2OCw3IEBAIHZvaWQgdGVzdFNo
bEltbXMzMihpbnQzMl90IGEsIGludDMyX3QgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIFNobCwgT3JpZ2luKCksCkBAIC0zMTc0LDcgKzMxODIsNyBA
QCB2b2lkIHRlc3RTaGxBcmdJbW0zMihpbnQzMl90IGEsIGludDMyX3QgCiB7CiAgICAgUHJvY2Vk
dXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTaGwsIE9yaWdpbigpLApAQCAtMzE5
MCw3ICszMTk4LDcgQEAgdm9pZCB0ZXN0U1NockFyZ3MoaW50NjRfdCBhLCBpbnQ2NF90IGIpCiB7
CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTU2hyLCBPcmln
aW4oKSwKQEAgLTMyMDYsNyArMzIxNCw3IEBAIHZvaWQgdGVzdFNTaHJJbW1zKGludDY0X3QgYSwg
aW50NjRfdCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgU1NociwgT3JpZ2luKCksCkBAIC0zMjIwLDcgKzMyMjgsNyBAQCB2b2lkIHRlc3RTU2hyQXJn
SW1tKGludDY0X3QgYSwgaW50NjRfdCBiCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBTU2hyLCBPcmlnaW4oKSwKQEAgLTMyMzcsNyArMzI0NSw3IEBAIHZv
aWQgdGVzdFNTaHJBcmczMihpbnQzMl90IGEpCiAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTU2hyLCBPcmlnaW4o
KSwgdmFsdWUsIHZhbHVlKSk7CiAKQEAgLTMyNDgsNyArMzI1Niw3IEBAIHZvaWQgdGVzdFNTaHJB
cmdzMzIoaW50MzJfdCBhLCBpbnQzMl90IGIKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIFNTaHIsIE9yaWdpbigpLApAQCAtMzI2Niw3ICszMjc0LDcgQEAg
dm9pZCB0ZXN0U1NockltbXMzMihpbnQzMl90IGEsIGludDMyX3QgYgogewogICAgIFByb2NlZHVy
ZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU1NociwgT3JpZ2luKCksCkBAIC0zMjgw
LDcgKzMyODgsNyBAQCB2b2lkIHRlc3RTU2hyQXJnSW1tMzIoaW50MzJfdCBhLCBpbnQzMl90CiB7
CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTU2hyLCBPcmln
aW4oKSwKQEAgLTMyOTYsNyArMzMwNCw3IEBAIHZvaWQgdGVzdFpTaHJBcmdzKHVpbnQ2NF90IGEs
IHVpbnQ2NF90IGIKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIFpTaHIsIE9yaWdpbigpLApAQCAtMzMxMiw3ICszMzIwLDcgQEAgdm9pZCB0ZXN0WlNocklt
bXModWludDY0X3QgYSwgdWludDY0X3QgYgogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAog
ICAgICAgICAgICAgcHJvYywgWlNociwgT3JpZ2luKCksCkBAIC0zMzI2LDcgKzMzMzQsNyBAQCB2
b2lkIHRlc3RaU2hyQXJnSW1tKHVpbnQ2NF90IGEsIHVpbnQ2NF90CiB7CiAgICAgUHJvY2VkdXJl
IHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBaU2hyLCBPcmlnaW4oKSwKQEAgLTMzNDMs
NyArMzM1MSw3IEBAIHZvaWQgdGVzdFpTaHJBcmczMih1aW50MzJfdCBhKQogICAgIFZhbHVlKiB2
YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgIHByb2MsIFRydW5jLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgWlNociwgT3JpZ2luKCksIHZhbHVlLCB2YWx1ZSkpOwogCkBAIC0zMzU0LDcgKzMzNjIsNyBA
QCB2b2lkIHRlc3RaU2hyQXJnczMyKHVpbnQzMl90IGEsIHVpbnQzMl90CiB7CiAgICAgUHJvY2Vk
dXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBaU2hyLCBPcmlnaW4oKSwKQEAgLTMz
NzIsNyArMzM4MCw3IEBAIHZvaWQgdGVzdFpTaHJJbW1zMzIodWludDMyX3QgYSwgdWludDMyX3QK
IHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFpTaHIsIE9y
aWdpbigpLApAQCAtMzM4Niw3ICszMzk0LDcgQEAgdm9pZCB0ZXN0WlNockFyZ0ltbTMyKHVpbnQz
Ml90IGEsIHVpbnQzMgogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgWlNociwgT3JpZ2luKCksCkBAIC0zNDE5LDcgKzM0MjcsNyBAQCB2b2lkIHRlc3RDbHpB
cmc2NChpbnQ2NF90IGEpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
ICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIGNselZh
bHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDbHosIE9yaWdpbigpLCBhcmd1bWVu
dCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgY2x6VmFsdWUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCBjbHpWYWx1ZSk7CiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjx1bnNp
Z25lZD4ocHJvYywgYSkgPT0gY291bnRMZWFkaW5nWmVybyhhKSk7CiB9CiAKQEAgLTM0MzAsNyAr
MzQzOCw3IEBAIHZvaWQgdGVzdENsek1lbTY0KGludDY0X3QgYSkKICAgICBWYWx1ZSogYWRkcmVz
cyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BS
SW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBNZW1vcnlWYWx1ZSogdmFsdWUgPSByb290LT5hcHBl
bmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDY0LCBPcmlnaW4oKSwgYWRkcmVzcyk7
CiAgICAgVmFsdWUqIGNselZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDbHos
IE9yaWdpbigpLCB2YWx1ZSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgY2x6VmFsdWUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjbHpWYWx1ZSk7CiAgICAgQ0hFQ0soY29t
cGlsZUFuZFJ1bjx1bnNpZ25lZD4ocHJvYywgJmEpID09IGNvdW50TGVhZGluZ1plcm8oYSkpOwog
fQogCkBAIC0zNDQxLDcgKzM0NDksNyBAQCB2b2lkIHRlc3RDbHpBcmczMihpbnQzMl90IGEpCiAg
ICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgVmFsdWUqIGNselZhbHVl
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDbHosIE9yaWdpbigpLCBhcmd1bWVudCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgY2x6VmFsdWUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBjbHpWYWx1ZSk7CiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjx1bnNpZ25l
ZD4ocHJvYywgYSkgPT0gY291bnRMZWFkaW5nWmVybyhhKSk7CiB9CiAKQEAgLTM0NTIsNyArMzQ2
MCw3IEBAIHZvaWQgdGVzdENsek1lbTMyKGludDMyX3QgYSkKICAgICBWYWx1ZSogYWRkcmVzcyA9
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIwKTsKICAgICBNZW1vcnlWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmRO
ZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAg
ICAgVmFsdWUqIGNselZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDbHosIE9y
aWdpbigpLCB2YWx1ZSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgY2x6VmFsdWUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjbHpWYWx1ZSk7CiAgICAgQ0hFQ0soY29tcGls
ZUFuZFJ1bjx1bnNpZ25lZD4ocHJvYywgJmEpID09IGNvdW50TGVhZGluZ1plcm8oYSkpOwogfQog
CkBAIC0zNDYwLDcgKzM0NjgsNyBAQCB2b2lkIHRlc3RBYnNBcmcoZG91YmxlIGEpCiB7CiAgICAg
UHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBYnMsIE9yaWdpbigpLApA
QCAtMzQ3NCw3ICszNDgyLDcgQEAgdm9pZCB0ZXN0QWJzSW1tKGRvdWJsZSBhKQogICAgIFByb2Nl
ZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAg
VmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBhKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBPcmlnaW4oKSwg
YXJndW1lbnQpKTsKIApAQCAtMzQ4Nyw3ICszNDk1LDcgQEAgdm9pZCB0ZXN0QWJzTWVtKGRvdWJs
ZSBhKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUq
IGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWREb3VibGUg
PSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIERvdWJsZSwgT3JpZ2lu
KCksIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdpbigpLCBs
b2FkRG91YmxlKSk7CiAKQEAgLTM1MDEsNyArMzUwOSw3IEBAIHZvaWQgdGVzdEFic0Fic0FyZyhk
b3VibGUgYSkKICAgICBWYWx1ZSogZmlyc3RBYnMgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEFicywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKSk7CiAgICAgVmFsdWUq
IHNlY29uZEFicyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBPcmlnaW4oKSwg
Zmlyc3RBYnMpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHNlY29uZEFicyk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZEFicyk7CiAKICAgICBDSEVDSyhpc0lkZW50
aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgYSksIGZhYnMoYSkpKTsKIH0KQEAgLTM1
MTMsNyArMzUyMSw3IEBAIHZvaWQgdGVzdEFic0JpdHdpc2VDYXN0QXJnKGRvdWJsZSBhKQogICAg
IFZhbHVlKiBhcmd1bWVudEFzSW50NjQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIGFy
Z3VtZW50QXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0
LCBPcmlnaW4oKSwgYXJndW1lbnRBc0ludDY0KTsKICAgICBWYWx1ZSogYWJzVmFsdWUgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFicywgT3JpZ2luKCksIGFyZ3VtZW50QXNEb3VibGUp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIGFic1ZhbHVlKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgYWJzVmFsdWUpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGls
ZUFuZFJ1bjxkb3VibGU+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQ2NF90PihhKSksIGZhYnMoYSkp
KTsKIH0KQEAgLTM1MjcsNyArMzUzNSw3IEBAIHZvaWQgdGVzdEJpdHdpc2VDYXN0QWJzQml0d2lz
ZUNhc3RBcmcoZG8KICAgICBWYWx1ZSogYWJzVmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEFicywgT3JpZ2luKCksIGFyZ3VtZW50QXNEb3VibGUpOwogICAgIFZhbHVlKiByZXN1
bHRBc0ludDY0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3Jp
Z2luKCksIGFic1ZhbHVlKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdEFzSW50NjQpOworICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHRBc0ludDY0KTsKIAog
ICAgIGludDY0X3QgZXhwZWN0ZWRSZXN1bHQgPSBiaXR3aXNlX2Nhc3Q8aW50NjRfdD4oZmFicyhh
KSk7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCBi
aXR3aXNlX2Nhc3Q8aW50NjRfdD4oYSkpLCBleHBlY3RlZFJlc3VsdCkpOwpAQCAtMzU0Miw3ICsz
NTUwLDcgQEAgdm9pZCB0ZXN0QWJzQXJnKGZsb2F0IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3Vt
ZW50MzIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEFicywgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRS
dW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0
PGludDMyX3Q+KHN0YXRpY19jYXN0PGZsb2F0PihmYWJzKGEpKSkpKTsKIH0KQEAgLTM1NTQsNyAr
MzU2Miw3IEBAIHZvaWQgdGVzdEFic0ltbShmbG9hdCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9
IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAg
ICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdp
bigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+
KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90Pihz
dGF0aWNfY2FzdDxmbG9hdD4oZmFicyhhKSkpKSk7CiB9CkBAIC0zNTY3LDcgKzM1NzUsNyBAQCB2
b2lkIHRlc3RBYnNNZW0oZmxvYXQgYSkKICAgICBNZW1vcnlWYWx1ZSogbG9hZEZsb2F0ID0gcm9v
dC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBGbG9hdCwgT3JpZ2luKCksIGFk
ZHJlc3MpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEFicywgT3JpZ2luKCksIGxvYWRGbG9hdCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5k
UnVuPGludDMyX3Q+KHByb2MsICZhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0
PGZsb2F0PihmYWJzKGEpKSkpKTsKIH0KQEAgLTM1ODEsNyArMzU4OSw3IEBAIHZvaWQgdGVzdEFi
c0Fic0FyZyhmbG9hdCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1
ZSogZmlyc3RBYnMgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFicywgT3JpZ2luKCks
IGFyZ3VtZW50KTsKICAgICBWYWx1ZSogc2Vjb25kQWJzID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBBYnMsIE9yaWdpbigpLCBmaXJzdEFicyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kQWJzKTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kQWJz
KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsIGJp
dHdpc2VfY2FzdDxpbnQzMl90PihhKSksIHN0YXRpY19jYXN0PGZsb2F0PihmYWJzKGEpKSkpOwog
fQpAQCAtMzU5NCw3ICszNjAyLDcgQEAgdm9pZCB0ZXN0QWJzQml0d2lzZUNhc3RBcmcoZmxvYXQg
YSkKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSogYXJndW1lbnRBc2Zsb2F0
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFy
Z3VtZW50QXNJbnQzMik7CiAgICAgVmFsdWUqIGFic1ZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBBYnMsIE9yaWdpbigpLCBhcmd1bWVudEFzZmxvYXQpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFic1ZhbHVlKTsK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
YWJzVmFsdWUpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4o
cHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGZhYnMo
YSkpKSk7CiB9CkBAIC0zNjA5LDcgKzM2MTcsNyBAQCB2b2lkIHRlc3RCaXR3aXNlQ2FzdEFic0Jp
dHdpc2VDYXN0QXJnKGZsCiAgICAgVmFsdWUqIGFic1ZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBBYnMsIE9yaWdpbigpLCBhcmd1bWVudEFzZmxvYXQpOwogICAgIFZhbHVlKiBy
ZXN1bHRBc0ludDY0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwg
T3JpZ2luKCksIGFic1ZhbHVlKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdEFzSW50NjQpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHRBc0ludDY0KTsK
IAogICAgIGludDMyX3QgZXhwZWN0ZWRSZXN1bHQgPSBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3Rh
dGljX2Nhc3Q8ZmxvYXQ+KGZhYnMoYSkpKTsKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxl
QW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGV4cGVjdGVk
UmVzdWx0KSk7CkBAIC0zNjI2LDcgKzM2MzQsNyBAQCB2b2lkIHRlc3RBYnNBcmdXaXRoVXNlbGVz
c0RvdWJsZUNvbnZlcnNpCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQWJzLCBPcmlnaW4oKSwgYXNEb3VibGUpOwogICAgIFZhbHVlKiBmbG9hdFJlc3Vs
dCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCks
IHJlc3VsdCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
c3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4o
cHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHN0
YXRpY19jYXN0PGZsb2F0PihmYWJzKGEpKSkpKTsKIH0KQEAgLTM2NDQsNyArMzY1Miw3IEBAIHZv
aWQgdGVzdEFic0FyZ1dpdGhFZmZlY3RmdWxEb3VibGVDb252ZXIKICAgICBWYWx1ZSogcmVzdWx0
MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwg
ZmxvYXRSZXN1bHQpOwogICAgIFZhbHVlKiBkb3VibGVBZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEp
OwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigp
LCByZXN1bHQsIGRvdWJsZUFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAg
ZG91YmxlIGVmZmVjdCA9IDA7CiAgICAgaW50MzJfdCByZXN1bHRWYWx1ZSA9IGNvbXBpbGVBbmRS
dW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCAmZWZmZWN0KTsKQEAg
LTM2NTYsNyArMzY2NCw3IEBAIHZvaWQgdGVzdENlaWxBcmcoZG91YmxlIGEpCiB7CiAgICAgUHJv
Y2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBDZWlsLCBPcmlnaW4oKSwKQEAg
LTM2NzAsNyArMzY3OCw3IEBAIHZvaWQgdGVzdENlaWxJbW0oZG91YmxlIGEpCiAgICAgUHJvY2Vk
dXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBW
YWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIGEpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDZWlsLCBPcmlnaW4oKSwg
YXJndW1lbnQpKTsKIApAQCAtMzY4Myw3ICszNjkxLDcgQEAgdm9pZCB0ZXN0Q2VpbE1lbShkb3Vi
bGUgYSkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVl
KiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkRG91Ymxl
ID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBEb3VibGUsIE9yaWdp
bigpLCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCks
IGxvYWREb3VibGUpKTsKIApAQCAtMzY5Nyw3ICszNzA1LDcgQEAgdm9pZCB0ZXN0Q2VpbENlaWxB
cmcoZG91YmxlIGEpCiAgICAgVmFsdWUqIGZpcnN0Q2VpbCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKSk7CiAgICAg
VmFsdWUqIHNlY29uZENlaWwgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9y
aWdpbigpLCBmaXJzdENlaWwpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZENlaWwpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmRDZWlsKTsKIAogICAgIENI
RUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBhKSwgY2VpbChhKSkp
OwogfQpAQCAtMzcwOSw3ICszNzE3LDcgQEAgdm9pZCB0ZXN0Rmxvb3JDZWlsQXJnKGRvdWJsZSBh
KQogICAgIFZhbHVlKiBmaXJzdENlaWwgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENl
aWwsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCkpOwogICAgIFZhbHVlKiB3cmFw
cGluZ0Zsb29yID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCks
IGZpcnN0Q2VpbCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgd3JhcHBpbmdGbG9vcik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHdyYXBwaW5nRmxvb3IpOwogCiAgICAgQ0hF
Q0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIGEpLCBjZWlsKGEpKSk7
CiB9CkBAIC0zNzIxLDcgKzM3MjksNyBAQCB2b2lkIHRlc3RDZWlsSVRvRDY0KGludDY0X3QgYSkK
ICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIGFyZ3Vt
ZW50QXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigp
LCBhcmd1bWVudCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCks
IGFyZ3VtZW50QXNEb3VibGUpKTsKIApAQCAtMzczNiw3ICszNzQ0LDcgQEAgdm9pZCB0ZXN0Q2Vp
bElUb0QzMihpbnQ2NF90IGEpCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgVmFsdWUq
IGFyZ3VtZW50QXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9y
aWdpbigpLCBhcmd1bWVudCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3Jp
Z2luKCksIGFyZ3VtZW50QXNEb3VibGUpKTsKIApAQCAtMzc1Miw3ICszNzYwLDcgQEAgdm9pZCB0
ZXN0Q2VpbEFyZyhmbG9hdCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBW
YWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDZWlsLCBPcmlnaW4o
KSwgYXJndW1lbnQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihw
cm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oY2Vp
bGYoYSkpKSk7CiB9CkBAIC0zNzY0LDcgKzM3NzIsNyBAQCB2b2lkIHRlc3RDZWlsSW1tKGZsb2F0
IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHJl
c3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2lu
KCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50
aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90Pihh
KSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihjZWlsZihhKSkpKTsKIH0KQEAgLTM3NzcsNyArMzc4
NSw3IEBAIHZvaWQgdGVzdENlaWxNZW0oZmxvYXQgYSkKICAgICBNZW1vcnlWYWx1ZSogbG9hZEZs
b2F0ID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBGbG9hdCwgT3Jp
Z2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBsb2FkRmxvYXQpOwogICAgIFZhbHVlKiByZXN1bHQz
MiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBy
ZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwo
Y29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCAmYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90Pihj
ZWlsZihhKSkpKTsKIH0KQEAgLTM3OTEsNyArMzc5OSw3IEBAIHZvaWQgdGVzdENlaWxDZWlsQXJn
KGZsb2F0IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiBmaXJz
dENlaWwgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBhcmd1
bWVudCk7CiAgICAgVmFsdWUqIHNlY29uZENlaWwgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIENlaWwsIE9yaWdpbigpLCBmaXJzdENlaWwpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZENlaWwpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmRDZWls
KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsIGJp
dHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGNlaWxmKGEpKSk7CiB9CkBAIC0zODA1LDcgKzM4MTMs
NyBAQCB2b2lkIHRlc3RGbG9vckNlaWxBcmcoZmxvYXQgYSkKICAgICBWYWx1ZSogYXJndW1lbnQg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJn
dW1lbnQzMik7CiAgICAgVmFsdWUqIGZpcnN0Q2VpbCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQ2VpbCwgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBWYWx1ZSogd3JhcHBpbmdGbG9v
ciA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBmaXJzdENl
aWwpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHdyYXBwaW5nRmxvb3IpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCB3cmFwcGluZ0Zsb29yKTsKIAogICAgIENIRUNLKGlzSWRl
bnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90Pihh
KSksIGNlaWxmKGEpKSk7CiB9CkBAIC0zODIxLDcgKzM4MjksNyBAQCB2b2lkIHRlc3RDZWlsQXJn
V2l0aFVzZWxlc3NEb3VibGVDb252ZXJzCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCksIGFzRG91YmxlKTsKICAgICBWYWx1ZSog
ZmxvYXRSZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQs
IE9yaWdpbigpLCByZXN1bHQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVu
PGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxp
bnQzMl90PihjZWlsZihhKSkpKTsKIH0KQEAgLTM4MzksNyArMzg0Nyw3IEBAIHZvaWQgdGVzdENl
aWxBcmdXaXRoRWZmZWN0ZnVsRG91YmxlQ29udmUKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1
bHQpOwogICAgIFZhbHVlKiBkb3VibGVBZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50
UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwogICAgIHJv
b3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQs
IGRvdWJsZUFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgZG91YmxlIGVm
ZmVjdCA9IDA7CiAgICAgaW50MzJfdCByZXN1bHRWYWx1ZSA9IGNvbXBpbGVBbmRSdW48aW50MzJf
dD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCAmZWZmZWN0KTsKQEAgLTM4NTEsNyAr
Mzg1OSw3IEBAIHZvaWQgdGVzdEZsb29yQXJnKGRvdWJsZSBhKQogewogICAgIFByb2NlZHVyZSBw
cm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgRmxvb3IsIE9yaWdpbigpLApAQCAtMzg2NSw3
ICszODczLDcgQEAgdm9pZCB0ZXN0Rmxvb3JJbW0oZG91YmxlIGEpCiAgICAgUHJvY2VkdXJlIHBy
b2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSog
YXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIGEpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGFyZ3Vt
ZW50KSk7CiAKQEAgLTM4NzgsNyArMzg4Niw3IEBAIHZvaWQgdGVzdEZsb29yTWVtKGRvdWJsZSBh
KQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFk
ZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWREb3VibGUgPSBy
b290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIERvdWJsZSwgT3JpZ2luKCks
IGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGxv
YWREb3VibGUpKTsKIApAQCAtMzg5Miw3ICszOTAwLDcgQEAgdm9pZCB0ZXN0Rmxvb3JGbG9vckFy
Zyhkb3VibGUgYSkKICAgICBWYWx1ZSogZmlyc3RGbG9vciA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCkpOwogICAg
IFZhbHVlKiBzZWNvbmRGbG9vciA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3Is
IE9yaWdpbigpLCBmaXJzdEZsb29yKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmRGbG9vcik7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZEZsb29yKTsKIAog
ICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBhKSwgZmxv
b3IoYSkpKTsKIH0KQEAgLTM5MDQsNyArMzkxMiw3IEBAIHZvaWQgdGVzdENlaWxGbG9vckFyZyhk
b3VibGUgYSkKICAgICBWYWx1ZSogZmlyc3RGbG9vciA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgRmxvb3IsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCkpOwogICAgIFZh
bHVlKiB3cmFwcGluZ0NlaWwgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9y
aWdpbigpLCBmaXJzdEZsb29yKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCB3cmFwcGluZ0NlaWwpOworICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB3cmFwcGluZ0NlaWwpOwogCiAg
ICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIGEpLCBmbG9v
cihhKSkpOwogfQpAQCAtMzkxNiw3ICszOTI0LDcgQEAgdm9pZCB0ZXN0Rmxvb3JJVG9ENjQoaW50
NjRfdCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBWYWx1
ZSogYXJndW1lbnRBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwg
T3JpZ2luKCksIGFyZ3VtZW50KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwg
T3JpZ2luKCksIGFyZ3VtZW50QXNEb3VibGUpKTsKIApAQCAtMzkzMSw3ICszOTM5LDcgQEAgdm9p
ZCB0ZXN0Rmxvb3JJVG9EMzIoaW50NjRfdCBhKQogICAgICAgICByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwog
ICAgIFZhbHVlKiBhcmd1bWVudEFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBJVG9ELCBPcmlnaW4oKSwgYXJndW1lbnQpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEZsb29yLCBPcmlnaW4oKSwgYXJndW1lbnRBc0RvdWJsZSkpOwogCkBAIC0zOTQ3LDcgKzM5NTUs
NyBAQCB2b2lkIHRlc3RGbG9vckFyZyhmbG9hdCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVu
dDMyKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBG
bG9vciwgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRS
dW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0
PGludDMyX3Q+KGZsb29yZihhKSkpKTsKIH0KQEAgLTM5NTksNyArMzk2Nyw3IEBAIHZvaWQgdGVz
dEZsb29ySW1tKGZsb2F0IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3
PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiByZXN1bHQg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgYXJndW1lbnQp
OwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0
d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAg
ICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNl
X2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oZmxvb3JmKGEpKSkpOwog
fQpAQCAtMzk3Miw3ICszOTgwLDcgQEAgdm9pZCB0ZXN0Rmxvb3JNZW0oZmxvYXQgYSkKICAgICBN
ZW1vcnlWYWx1ZSogbG9hZEZsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9j
LCBMb2FkLCBGbG9hdCwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiByZXN1bHQgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgbG9hZEZsb2F0KTsK
ICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdp
c2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAg
IENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgJmEpLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oZmxvb3JmKGEpKSkpOwogfQpAQCAtMzk4Niw3ICszOTk0LDcgQEAg
dm9pZCB0ZXN0Rmxvb3JGbG9vckFyZyhmbG9hdCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVu
dDMyKTsKICAgICBWYWx1ZSogZmlyc3RGbG9vciA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgRmxvb3IsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHNlY29uZEZsb29yID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGZpcnN0Rmxvb3Ip
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHNlY29uZEZsb29yKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kRmxvb3IpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwo
Y29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgZmxv
b3JmKGEpKSk7CiB9CkBAIC00MDAwLDcgKzQwMDgsNyBAQCB2b2lkIHRlc3RDZWlsRmxvb3JBcmco
ZmxvYXQgYSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUqIGZpcnN0
Rmxvb3IgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgYXJn
dW1lbnQpOwogICAgIFZhbHVlKiB3cmFwcGluZ0NlaWwgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIENlaWwsIE9yaWdpbigpLCBmaXJzdEZsb29yKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB3cmFwcGluZ0NlaWwpOworICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB3cmFw
cGluZ0NlaWwpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4o
cHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgZmxvb3JmKGEpKSk7CiB9CkBAIC00MDE2
LDcgKzQwMjQsNyBAQCB2b2lkIHRlc3RGbG9vckFyZ1dpdGhVc2VsZXNzRG91YmxlQ29udmVyCiAg
ICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9y
aWdpbigpLCBhc0RvdWJsZSk7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICBW
YWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0
LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAg
Q0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nh
c3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oZmxvb3JmKGEpKSkpOwogfQpA
QCAtNDAzNCw3ICs0MDQyLDcgQEAgdm9pZCB0ZXN0Rmxvb3JBcmdXaXRoRWZmZWN0ZnVsRG91Ymxl
Q29udgogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
Qml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CiAgICAgVmFsdWUqIGRvdWJsZUFk
ZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVl
Pihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgZG91YmxlQWRkcmVzcyk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQzMik7CiAKICAgICBkb3VibGUgZWZmZWN0ID0gMDsKICAgICBpbnQzMl90IHJl
c3VsdFZhbHVlID0gY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50
MzJfdD4oYSksICZlZmZlY3QpOwpAQCAtNDA0Niw3ICs0MDU0LDcgQEAgdm9pZCB0ZXN0U3FydEFy
Zyhkb3VibGUgYSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIFNxcnQsIE9yaWdpbigpLApAQCAtNDA2MCw3ICs0MDY4LDcgQEAgdm9pZCB0ZXN0U3FydElt
bShkb3VibGUgYSkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxD
b25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIFNxcnQsIE9yaWdpbigpLCBhcmd1bWVudCkpOwogCkBAIC00MDczLDcgKzQwODEsNyBA
QCB2b2lkIHRlc3RTcXJ0TWVtKGRvdWJsZSBhKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAg
TWVtb3J5VmFsdWUqIGxvYWREb3VibGUgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHBy
b2MsIExvYWQsIERvdWJsZSwgT3JpZ2luKCksIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBTcXJ0LCBPcmlnaW4oKSwgbG9hZERvdWJsZSkpOwogCkBAIC00MDg5LDcgKzQwOTcs
NyBAQCB2b2lkIHRlc3RTcXJ0QXJnKGZsb2F0IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50
MzIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFNx
cnQsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVu
PGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxp
bnQzMl90PihzdGF0aWNfY2FzdDxmbG9hdD4oc3FydChhKSkpKSk7CiB9CkBAIC00MTAxLDcgKzQx
MDksNyBAQCB2b2lkIHRlc3RTcXJ0SW1tKGZsb2F0IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0g
cm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAg
IFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFNxcnQsIE9yaWdp
bigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+
KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90Pihz
dGF0aWNfY2FzdDxmbG9hdD4oc3FydChhKSkpKSk7CiB9CkBAIC00MTE0LDcgKzQxMjIsNyBAQCB2
b2lkIHRlc3RTcXJ0TWVtKGZsb2F0IGEpCiAgICAgTWVtb3J5VmFsdWUqIGxvYWRGbG9hdCA9IHJv
b3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgRmxvYXQsIE9yaWdpbigpLCBh
ZGRyZXNzKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBTcXJ0LCBPcmlnaW4oKSwgbG9hZEZsb2F0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVB
bmRSdW48aW50MzJfdD4ocHJvYywgJmEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nh
c3Q8ZmxvYXQ+KHNxcnQoYSkpKSkpOwogfQpAQCAtNDEzMCw3ICs0MTM4LDcgQEAgdm9pZCB0ZXN0
U3FydEFyZ1dpdGhVc2VsZXNzRG91YmxlQ29udmVycwogICAgIFZhbHVlKiByZXN1bHQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFNxcnQsIE9yaWdpbigpLCBhc0RvdWJsZSk7CiAgICAg
VmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVU
b0Zsb2F0LCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGls
ZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNl
X2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KHNxcnQoYSkpKSkpOwogfQpAQCAtNDE0
OCw3ICs0MTU2LDcgQEAgdm9pZCB0ZXN0U3FydEFyZ1dpdGhFZmZlY3RmdWxEb3VibGVDb252ZQog
ICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lz
ZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CiAgICAgVmFsdWUqIGRvdWJsZUFkZHJlc3Mg
PSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMSk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9j
LCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgZG91YmxlQWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQzMik7CiAKICAgICBkb3VibGUgZWZmZWN0ID0gMDsKICAgICBpbnQzMl90IHJlc3VsdFZh
bHVlID0gY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4o
YSksICZlZmZlY3QpOwpAQCAtNDE3Miw3ICs0MTgwLDcgQEAgdm9pZCB0ZXN0Q29tcGFyZVR3b0Zs
b2F0VG9Eb3VibGUoZmxvYXQgYQogICAgIFZhbHVlKiBhcmcyQXNEb3VibGUgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBhcmcyRmxvYXQpOwog
ICAgIFZhbHVlKiBlcXVhbCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRXF1YWwsIE9y
aWdpbigpLCBhcmcxQXNEb3VibGUsIGFyZzJBc0RvdWJsZSk7CiAKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBlcXVhbCk7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGVxdWFsKTsK
IAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpID09IChhID09IGIpKTsKIH0KQEAg
LTQxOTAsNyArNDE5OCw3IEBAIHZvaWQgdGVzdENvbXBhcmVPbmVGbG9hdFRvRG91YmxlKGZsb2F0
IGEKICAgICBWYWx1ZSogYXJnMkFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVl
KiBlcXVhbCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRXF1YWwsIE9yaWdpbigpLCBh
cmcxQXNEb3VibGUsIGFyZzJBc0RvdWJsZSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBlcXVhbCk7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGVxdWFsKTsKIAogICAgIENI
RUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEp
LCBiKSA9PSAoYSA9PSBiKSk7CiB9CkBAIC00MjE0LDIzICs0MjIyLDIzIEBAIHZvaWQgdGVzdENv
bXBhcmVGbG9hdFRvRG91YmxlVGhyb3VnaFBoaSgKICAgICBWYWx1ZSogYXJnMkFzRmxvYXQgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBhcmcy
QXNEb3VibGUpOwogICAgIFZhbHVlKiBhcmcyQXNGUm91bmRlZERvdWJsZSA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGFyZzJBc0Zsb2F0KTsK
IAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAg
Y29uZGl0aW9uLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVk
QmxvY2soZWxzZUNhc2UpKTsKIAogICAgIFVwc2lsb25WYWx1ZSogdGhlblZhbHVlID0gdGhlbkNh
c2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhcmcxQXNEb3VibGUp
OwotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmln
aW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOwog
CiAgICAgVmFsdWUqIGVsc2VDb25zdCA9IGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3REb3VibGVW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDAuKTsKICAgICBVcHNpbG9uVmFsdWUqIGVsc2VWYWx1ZSA9
IGVsc2VDYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgZWxzZUNv
bnN0KTsKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwg
T3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CisgICAgZWxzZUNhc2UtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwp
KTsKIAogICAgIFZhbHVlKiBkb3VibGVJbnB1dCA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgUGhpLCBEb3VibGUsIE9yaWdpbigpKTsKICAgICB0aGVuVmFsdWUtPnNldFBoaShkb3VibGVJ
bnB1dCk7CiAgICAgZWxzZVZhbHVlLT5zZXRQaGkoZG91YmxlSW5wdXQpOwogICAgIFZhbHVlKiBl
cXVhbCA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRXF1YWwsIE9yaWdpbigpLCBkb3Vi
bGVJbnB1dCwgYXJnMkFzRlJvdW5kZWREb3VibGUpOwotICAgIHRhaWwtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGVxdWFsKTsKKyAgICB0YWlsLT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZXF1YWwpOwogCiAgICAg
YXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBpbnQzMl90IGludGVnZXJBID0gYml0d2lz
ZV9jYXN0PGludDMyX3Q+KGEpOwpAQCAtNDI2MSw3ICs0MjY5LDcgQEAgdm9pZCB0ZXN0RG91Ymxl
VG9GbG9hdFRocm91Z2hQaGkoZmxvYXQgdgogICAgIFZhbHVlKiBmbG9hdFZhbHVlID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIp
OwogICAgIFZhbHVlKiBhcmdBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
RmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGZsb2F0VmFsdWUpOwogCi0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICBjb25kaXRpb24sCiAgICAgICAg
IEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwpA
QCAtNDI2OSwxNyArNDI3NywxNyBAQCB2b2lkIHRlc3REb3VibGVUb0Zsb2F0VGhyb3VnaFBoaShm
bG9hdCB2CiAgICAgVmFsdWUqIHBvc3RpdGl2ZUNvbnN0ID0gdGhlbkNhc2UtPmFwcGVuZE5ldzxD
b25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIuNWYpOwogICAgIFZhbHVlKiB0aGVu
QWRkID0gdGhlbkNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYXJn
QXNEb3VibGUsIHBvc3RpdGl2ZUNvbnN0KTsKICAgICBVcHNpbG9uVmFsdWUqIHRoZW5WYWx1ZSA9
IHRoZW5DYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdGhlbkFk
ZCk7Ci0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9y
aWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOworICAgIHRoZW5DYXNlLT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7
CiAKICAgICBWYWx1ZSogZWxzZUNvbnN0ID0gZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdERvdWJs
ZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgTV9QSSk7CiAgICAgVXBzaWxvblZhbHVlKiBlbHNlVmFs
dWUgPSBlbHNlQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGVs
c2VDb25zdCk7Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1
bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOworICAgIGVsc2VDYXNlLT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0
YWlsKSk7CiAKICAgICBWYWx1ZSogZG91YmxlSW5wdXQgPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIFBoaSwgRG91YmxlLCBPcmlnaW4oKSk7CiAgICAgdGhlblZhbHVlLT5zZXRQaGkoZG91
YmxlSW5wdXQpOwogICAgIGVsc2VWYWx1ZS0+c2V0UGhpKGRvdWJsZUlucHV0KTsKICAgICBWYWx1
ZSogZmxvYXRSZXN1bHQgPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxv
YXQsIE9yaWdpbigpLCBkb3VibGVJbnB1dCk7Ci0gICAgdGFpbC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOworICAgIHRhaWwtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7
CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIENIRUNLKGlzSWRlbnRpY2Fs
KGludm9rZTxmbG9hdD4oKmNvZGUsIDEsIGJpdHdpc2VfY2FzdDxpbnQzMl90Pih2YWx1ZSkpLCB2
YWx1ZSArIDQyLjVmKSk7CkBAIC00Mjk5LDE4ICs0MzA3LDE4IEBAIHZvaWQgdGVzdERvdWJsZVBy
b2R1Y2VyUGhpVG9GbG9hdENvbnZlcnMKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50
UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKTsKICAgICBW
YWx1ZSogZmxvYXRWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNh
c3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
QnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgY29uZGl0aW9uLAogICAgICAgICBGcmVxdWVudGVk
QmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAogICAgIFZhbHVl
KiBhc0RvdWJsZSA9IHRoZW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3Vi
bGUsIE9yaWdpbigpLCBmbG9hdFZhbHVlKTsKICAgICBVcHNpbG9uVmFsdWUqIHRoZW5WYWx1ZSA9
IHRoZW5DYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYXNEb3Vi
bGUpOwotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBP
cmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkp
OwogCiAgICAgVmFsdWUqIGNvbnN0RG91YmxlID0gZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdERv
dWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIuNSk7CiAgICAgVXBzaWxvblZhbHVlKiBlbHNl
VmFsdWUgPSBlbHNlQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCks
IGNvbnN0RG91YmxlKTsKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CisgICAgZWxzZUNhc2Ut
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJs
b2NrKHRhaWwpKTsKIAogICAgIFZhbHVlKiBkb3VibGVJbnB1dCA9IHRhaWwtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgUGhpLCBEb3VibGUsIE9yaWdpbigpKTsKICAgICB0aGVuVmFsdWUtPnNldFBo
aShkb3VibGVJbnB1dCk7CkBAIC00MzE5LDcgKzQzMjcsNyBAQCB2b2lkIHRlc3REb3VibGVQcm9k
dWNlclBoaVRvRmxvYXRDb252ZXJzCiAgICAgVmFsdWUqIGFyZ0FzRG91YmxlQWdhaW4gPSB0YWls
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBmbG9hdFZh
bHVlKTsKICAgICBWYWx1ZSogZmluYWxBZGQgPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEFkZCwgT3JpZ2luKCksIGRvdWJsZUlucHV0LCBhcmdBc0RvdWJsZUFnYWluKTsKICAgICBWYWx1
ZSogZmxvYXRSZXN1bHQgPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxv
YXQsIE9yaWdpbigpLCBmaW5hbEFkZCk7Ci0gICAgdGFpbC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOworICAgIHRhaWwtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CiAK
ICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGlu
dm9rZTxmbG9hdD4oKmNvZGUsIDEsIGJpdHdpc2VfY2FzdDxpbnQzMl90Pih2YWx1ZSkpLCB2YWx1
ZSArIHZhbHVlKSk7CkBAIC00MzQxLDE4ICs0MzQ5LDE4IEBAIHZvaWQgdGVzdERvdWJsZVByb2R1
Y2VyUGhpVG9GbG9hdENvbnZlcnMKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKTsKICAgICBWYWx1
ZSogZmxvYXRWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3Qs
IE9yaWdpbigpLCBhcmd1bWVudDMyKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJh
bmNoLCBPcmlnaW4oKSwKICAgICAgICAgY29uZGl0aW9uLAogICAgICAgICBGcmVxdWVudGVkQmxv
Y2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAogICAgIFZhbHVlKiBh
c0RvdWJsZSA9IHRoZW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUs
IE9yaWdpbigpLCBmbG9hdFZhbHVlKTsKICAgICBVcHNpbG9uVmFsdWUqIHRoZW5WYWx1ZSA9IHRo
ZW5DYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYXNEb3VibGUp
OwotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmln
aW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOwog
CiAgICAgVmFsdWUqIGNvbnN0RG91YmxlID0gZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdERvdWJs
ZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIuNSk7CiAgICAgVXBzaWxvblZhbHVlKiBlbHNlVmFs
dWUgPSBlbHNlQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGNv
bnN0RG91YmxlKTsKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
SnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CisgICAgZWxzZUNhc2UtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2Nr
KHRhaWwpKTsKIAogICAgIFZhbHVlKiBkb3VibGVJbnB1dCA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgUGhpLCBEb3VibGUsIE9yaWdpbigpKTsKICAgICB0aGVuVmFsdWUtPnNldFBoaShk
b3VibGVJbnB1dCk7CkBAIC00MzY4LDcgKzQzNzYsNyBAQCB2b2lkIHRlc3REb3VibGVQcm9kdWNl
clBoaVRvRmxvYXRDb252ZXJzCiAgICAgLy8gVGhpcyBvbmUgKmNhbm5vdCogYmUgZWxpbWluYXRl
ZAogICAgIFZhbHVlKiBkb3VibGVBZGQgPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFk
ZCwgT3JpZ2luKCksIGRvdWJsZUlucHV0LCBkb3VibGVSZXN1bHQpOwogCi0gICAgdGFpbC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZG91YmxlQWRkKTsK
KyAgICB0YWlsLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
ZG91YmxlQWRkKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgQ0hFQ0so
aXNJZGVudGljYWwoaW52b2tlPGRvdWJsZT4oKmNvZGUsIDEsIGJpdHdpc2VfY2FzdDxpbnQzMl90
Pih2YWx1ZSkpLCAodmFsdWUgKyB2YWx1ZSkgKyBzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVlKSkp
OwpAQCAtNDM4OCwxOCArNDM5NiwxOCBAQCB2b2lkIHRlc3REb3VibGVQcm9kdWNlclBoaVdpdGhO
b25GbG9hdENvCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7CiAgICAgVmFsdWUqIGZsb2F0VmFs
dWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwg
YXJndW1lbnQzMik7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2lu
KCksCiAgICAgICAgIGNvbmRpdGlvbiwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNl
KSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKICAgICBWYWx1ZSogYXNEb3VibGUgPSB0
aGVuQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwg
ZmxvYXRWYWx1ZSk7CiAgICAgVXBzaWxvblZhbHVlKiB0aGVuVmFsdWUgPSB0aGVuQ2FzZS0+YXBw
ZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFzRG91YmxlKTsKLSAgICB0aGVu
Q2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1
ZW50ZWRCbG9jayh0YWlsKSk7CisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKIAogICAgIFZhbHVl
KiBjb25zdERvdWJsZSA9IGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIGNvbnN0VmFsdWUpOwogICAgIFVwc2lsb25WYWx1ZSogZWxzZVZhbHVlID0g
ZWxzZUNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCBjb25zdERv
dWJsZSk7Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAs
IE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOworICAgIGVsc2VDYXNlLT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWls
KSk7CiAKICAgICBWYWx1ZSogZG91YmxlSW5wdXQgPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIFBoaSwgRG91YmxlLCBPcmlnaW4oKSk7CiAgICAgdGhlblZhbHVlLT5zZXRQaGkoZG91Ymxl
SW5wdXQpOwpAQCAtNDQwOCw3ICs0NDE2LDcgQEAgdm9pZCB0ZXN0RG91YmxlUHJvZHVjZXJQaGlX
aXRoTm9uRmxvYXRDbwogICAgIFZhbHVlKiBhcmdBc0RvdWJsZUFnYWluID0gdGFpbC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSk7CiAg
ICAgVmFsdWUqIGZpbmFsQWRkID0gdGFpbC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9y
aWdpbigpLCBkb3VibGVJbnB1dCwgYXJnQXNEb3VibGVBZ2Fpbik7CiAgICAgVmFsdWUqIGZsb2F0
UmVzdWx0ID0gdGFpbC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmln
aW4oKSwgZmluYWxBZGQpOwotICAgIHRhaWwtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKKyAgICB0YWlsLT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwogCiAgICAgYXV0
byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBDSEVDSyhpc0lkZW50aWNhbChpbnZva2U8Zmxv
YXQ+KCpjb2RlLCAxLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4odmFsdWUpKSwgdmFsdWUgKyB2YWx1
ZSkpOwpAQCAtNDQyMSw3ICs0NDI5LDcgQEAgdm9pZCB0ZXN0RG91YmxlQXJnVG9JbnQ2NEJpdHdp
c2VDYXN0KGRvdQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAg
VmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudCkpOwpA
QCAtNDQzNSw3ICs0NDQzLDcgQEAgdm9pZCB0ZXN0RG91YmxlSW1tVG9JbnQ2NEJpdHdpc2VDYXN0
KGRvdQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUq
IGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdp
bigpLCB2YWx1ZSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBC
aXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50KSk7CkBAIC00NDUwLDcgKzQ0NTgsNyBAQCB2
b2lkIHRlc3RUd29CaXR3aXNlQ2FzdE9uRG91YmxlKGRvdWJsZSB2CiAgICAgVmFsdWUqIGFyZ3Vt
ZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBG
UFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiBmaXJzdCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFs
dWUqIHNlY29uZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9y
aWdpbigpLCBmaXJzdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kKTsKIAogICAgIENIRUNLKGlzSWRlbnRp
Y2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCB2YWx1ZSksIHZhbHVlKSk7CiB9CkBAIC00
NDYyLDcgKzQ0NzAsNyBAQCB2b2lkIHRlc3RCaXR3aXNlQ2FzdE9uRG91YmxlSW5NZW1vcnkoZG91
CiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUq
IGxvYWREb3VibGUgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIERv
dWJsZSwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBjYXN0ID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGxvYWREb3VibGUpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNh
c3QpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBjYXN0KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50NjRf
dD4ocHJvYywgJnZhbHVlKSwgYml0d2lzZV9jYXN0PGludDY0X3Q+KHZhbHVlKSkpOwogfQpAQCAt
NDQ3OSw3ICs0NDg3LDcgQEAgdm9pZCB0ZXN0Qml0d2lzZUNhc3RPbkRvdWJsZUluTWVtb3J5SW5k
ZQogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQs
IE9yaWdpbigpLCBiYXNlLCBzY2FsZWRPZmZzZXQpOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkRG91
YmxlID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBEb3VibGUsIE9y
aWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogY2FzdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBsb2FkRG91YmxlKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0KTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2Fz
dCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2Ms
ICZ2YWx1ZSwgMCksIGJpdHdpc2VfY2FzdDxpbnQ2NF90Pih2YWx1ZSkpKTsKIH0KQEAgLTQ0OTAs
NyArNDQ5OCw3IEBAIHZvaWQgdGVzdEludDY0QkFyZ1RvRG91YmxlQml0d2lzZUNhc3QoaW4KICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVu
dCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BS
SW5mbzo6YXJndW1lbnRHUFIwKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQpKTsKQEAgLTQ1MDQsNyArNDUx
Miw3IEBAIHZvaWQgdGVzdEludDY0QkltbVRvRG91YmxlQml0d2lzZUNhc3QoaW4KICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJv
b3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSk7CiAKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2lu
KCksIGFyZ3VtZW50KSk7CkBAIC00NTE5LDcgKzQ1MjcsNyBAQCB2b2lkIHRlc3RUd29CaXR3aXNl
Q2FzdE9uSW50NjQoaW50NjRfdCB2CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApOwogICAgIFZhbHVlKiBmaXJzdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0
d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHNlY29uZCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmaXJzdCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
c2Vjb25kKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgc2Vjb25kKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48
aW50NjRfdD4ocHJvYywgdmFsdWUpLCB2YWx1ZSkpOwogfQpAQCAtNDUzMSw3ICs0NTM5LDcgQEAg
dm9pZCB0ZXN0Qml0d2lzZUNhc3RPbkludDY0SW5NZW1vcnkoaW50NgogICAgIFZhbHVlKiBhZGRy
ZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkRG91YmxlID0gcm9v
dC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQ2NCwgT3JpZ2luKCksIGFk
ZHJlc3MpOwogICAgIFZhbHVlKiBjYXN0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBC
aXR3aXNlQ2FzdCwgT3JpZ2luKCksIGxvYWREb3VibGUpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNhc3QpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0KTsKIAogICAg
IENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCAmdmFsdWUpLCBi
aXR3aXNlX2Nhc3Q8ZG91YmxlPih2YWx1ZSkpKTsKIH0KQEAgLTQ1NDgsNyArNDU1Niw3IEBAIHZv
aWQgdGVzdEJpdHdpc2VDYXN0T25JbnQ2NEluTWVtb3J5SW5kZXgKICAgICBWYWx1ZSogYWRkcmVz
cyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYmFzZSwgc2Nh
bGVkT2Zmc2V0KTsKICAgICBNZW1vcnlWYWx1ZSogbG9hZERvdWJsZSA9IHJvb3QtPmFwcGVuZE5l
dzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50NjQsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAg
ICBWYWx1ZSogY2FzdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3Qs
IE9yaWdpbigpLCBsb2FkRG91YmxlKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FzdCk7CiAKICAgICBDSEVDSyhpc0lk
ZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgJnZhbHVlLCAwKSwgYml0d2lzZV9j
YXN0PGRvdWJsZT4odmFsdWUpKSk7CiB9CkBAIC00NTU5LDcgKzQ1NjcsNyBAQCB2b2lkIHRlc3RG
bG9hdEltbVRvSW50MzJCaXR3aXNlQ2FzdChmbG9hCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8Q29u
c3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpOwogCi0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KAogICAgICAgICAgICAgcHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudCkp
OwpAQCAtNDU3NCw3ICs0NTgyLDcgQEAgdm9pZCB0ZXN0Qml0d2lzZUNhc3RPbkZsb2F0SW5NZW1v
cnkoZmxvYQogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9y
eVZhbHVlKiBsb2FkRmxvYXQgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExv
YWQsIEZsb2F0LCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIGNhc3QgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgbG9hZEZsb2F0KTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBjYXN0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgY2FzdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGlu
dDMyX3Q+KHByb2MsICZ2YWx1ZSksIGJpdHdpc2VfY2FzdDxpbnQzMl90Pih2YWx1ZSkpKTsKIH0K
QEAgLTQ1ODUsNyArNDU5Myw3IEBAIHZvaWQgdGVzdEludDMyQkFyZ1RvRmxvYXRCaXR3aXNlQ2Fz
dChpbnQKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVl
KiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQpKTsKQEAgLTQ1
OTksNyArNDYwNyw3IEBAIHZvaWQgdGVzdEludDMyQkltbVRvRmxvYXRCaXR3aXNlQ2FzdChpbnQK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1
bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1
ZSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXR3aXNlQ2Fz
dCwgT3JpZ2luKCksIGFyZ3VtZW50KSk7CkBAIC00NjE0LDcgKzQ2MjIsNyBAQCB2b2lkIHRlc3RU
d29CaXR3aXNlQ2FzdE9uSW50MzIoaW50MzJfdCB2CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApOwogICAgIFZhbHVlKiBmaXJzdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHNlY29u
ZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBm
aXJzdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgc2Vjb25kKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBp
bGVBbmRSdW48aW50MzJfdD4ocHJvYywgdmFsdWUpLCB2YWx1ZSkpOwogfQpAQCAtNDYyNiw3ICs0
NjM0LDcgQEAgdm9pZCB0ZXN0Qml0d2lzZUNhc3RPbkludDMySW5NZW1vcnkoaW50MwogICAgIFZh
bHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkRmxv
YXQgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDMyLCBPcmln
aW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIGNhc3QgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgbG9hZEZsb2F0KTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0KTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FzdCk7
CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jLCAmdmFs
dWUpLCBiaXR3aXNlX2Nhc3Q8ZmxvYXQ+KHZhbHVlKSkpOwogfQpAQCAtNDYzNyw3ICs0NjQ1LDcg
QEAgdm9pZCB0ZXN0Q29udmVydERvdWJsZVRvRmxvYXRBcmcoZG91YmxlIAogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1
bWVudEZQUjApOwogICAgIFZhbHVlKiBhc0Zsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgYXJndW1lbnQpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFzRmxvYXQpOworICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0Zs
b2F0KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2Ms
IHZhbHVlKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlKSkpOwogfQpAQCAtNDY0OCw3ICs0NjU2
LDcgQEAgdm9pZCB0ZXN0Q29udmVydERvdWJsZVRvRmxvYXRJbW0oZG91YmxlIAogICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9v
dC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSk7CiAg
ICAgVmFsdWUqIGFzRmxvYXQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRv
RmxvYXQsIE9yaWdpbigpLCBhcmd1bWVudCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNGbG9hdCk7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFzRmxvYXQpOwogCiAgICAg
Q0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYyksIHN0YXRpY19jYXN0
PGZsb2F0Pih2YWx1ZSkpKTsKIH0KQEAgLTQ2NjAsNyArNDY2OCw3IEBAIHZvaWQgdGVzdENvbnZl
cnREb3VibGVUb0Zsb2F0TWVtKGRvdWJsZSAKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwKTsKICAgICBNZW1vcnlWYWx1ZSogbG9hZGVkRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3
PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBEb3VibGUsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAg
ICBWYWx1ZSogYXNGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9G
bG9hdCwgT3JpZ2luKCksIGxvYWRlZERvdWJsZSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNGbG9hdCk7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFzRmxvYXQpOwogCiAg
ICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYywgJnZhbHVlKSwg
c3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlKSkpOwogfQpAQCAtNDY3Myw3ICs0NjgxLDcgQEAgdm9p
ZCB0ZXN0Q29udmVydEZsb2F0VG9Eb3VibGVBcmcoZmxvYXQgdgogICAgICAgICByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCkpOwogICAgIFZhbHVlKiBmbG9hdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiBhc0Rv
dWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2lu
KCksIGZsb2F0VmFsdWUpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIGFzRG91YmxlKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNEb3VibGUpOwogCiAgICAgQ0hFQ0soaXNJ
ZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90
Pih2YWx1ZSkpLCBzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVlKSkpOwogfQpAQCAtNDY4NCw3ICs0
NjkyLDcgQEAgdm9pZCB0ZXN0Q29udmVydEZsb2F0VG9Eb3VibGVJbW0oZmxvYXQgdgogICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0g
cm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKTsK
ICAgICBWYWx1ZSogYXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0
VG9Eb3VibGUsIE9yaWdpbigpLCBhcmd1bWVudCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNEb3VibGUpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0RvdWJsZSk7CiAK
ICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYyksIHN0YXRp
Y19jYXN0PGRvdWJsZT4odmFsdWUpKSk7CiB9CkBAIC00Njk2LDcgKzQ3MDQsNyBAQCB2b2lkIHRl
c3RDb252ZXJ0RmxvYXRUb0RvdWJsZU1lbShmbG9hdCB2CiAgICAgVmFsdWUqIGFkZHJlc3MgPSBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWRlZEZsb2F0ID0gcm9vdC0+YXBw
ZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBGbG9hdCwgT3JpZ2luKCksIGFkZHJlc3Mp
OwogICAgIFZhbHVlKiBhc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxv
YXRUb0RvdWJsZSwgT3JpZ2luKCksIGxvYWRlZEZsb2F0KTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0RvdWJsZSk7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFzRG91Ymxl
KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCAm
dmFsdWUpLCBzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVlKSkpOwogfQpAQCAtNDcwOSw3ICs0NzE3
LDcgQEAgdm9pZCB0ZXN0Q29udmVydERvdWJsZVRvRmxvYXRUb0RvdWJsZVRvRgogICAgIFZhbHVl
KiBhc0Zsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBP
cmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZhbHVlKiBhc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGFzRmxvYXQpOwogICAgIFZh
bHVlKiBhc0Zsb2F0QWdhaW4gPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRv
RmxvYXQsIE9yaWdpbigpLCBhc0RvdWJsZSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNGbG9hdEFnYWluKTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNGbG9hdEFnYWlu
KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsIHZh
bHVlKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlKSkpOwogfQpAQCAtNDcyNSw3ICs0NzMzLDcg
QEAgdm9pZCB0ZXN0TG9hZEZsb2F0Q29udmVydERvdWJsZUNvbnZlcnRGbAogICAgIFZhbHVlKiBh
c0Zsb2F0QWdhaW4gPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQs
IE9yaWdpbigpLCBhc0RvdWJsZSk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihw
cm9jLCBTdG9yZSwgT3JpZ2luKCksIGFzRmxvYXRBZ2FpbiwgZHN0KTsKIAotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBmbG9hdCBpbnB1dCA9IHZh
bHVlOwogICAgIGZsb2F0IG91dHB1dCA9IDAuOwpAQCAtNDc0MCw3ICs0NzQ4LDcgQEAgdm9pZCB0
ZXN0RnJvdW5kQXJnKGRvdWJsZSB2YWx1ZSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3Vt
ZW50RlBSMCk7CiAgICAgVmFsdWUqIGFzRmxvYXQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIGFzRG91
YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4o
KSwgYXNGbG9hdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgYXNEb3VibGUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0RvdWJsZSk7CiAKICAgICBDSEVDSyhpc0lkZW50
aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgdmFsdWUpLCBzdGF0aWNfY2FzdDxkb3Vi
bGU+KHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZSkpKSk7CiB9CkBAIC00NzUzLDcgKzQ3NjEsNyBA
QCB2b2lkIHRlc3RGcm91bmRNZW0oZG91YmxlIHZhbHVlKQogICAgIE1lbW9yeVZhbHVlKiBsb2Fk
ZWREb3VibGUgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIERvdWJs
ZSwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBhc0Zsb2F0ID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgbG9hZGVkRG91YmxlKTsK
ICAgICBWYWx1ZSogYXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0
VG9Eb3VibGUsIE9yaWdpbigpLCBhc0Zsb2F0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0RvdWJsZSk7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFzRG91YmxlKTsKIAog
ICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCAmdmFsdWUp
LCBzdGF0aWNfY2FzdDxkb3VibGU+KHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZSkpKSk7CiB9CkBA
IC00NzY0LDcgKzQ3NzIsNyBAQCB2b2lkIHRlc3RJVG9ENjRBcmcoKQogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHNyYyA9IHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIw
KTsKICAgICBWYWx1ZSogc3JjQXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IElUb0QsIE9yaWdpbigpLCBzcmMpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRG91YmxlKTsKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNEb3VibGUpOwogCiAg
ICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBmb3IgKGF1dG8gdGVzdFZhbHVlIDog
aW50NjRPcGVyYW5kcygpKQpAQCAtNDc3Nyw3ICs0Nzg1LDcgQEAgdm9pZCB0ZXN0SVRvRjY0QXJn
KCkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBz
cmMgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIHNyY0FzRmxvYXQgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIElUb0YsIE9yaWdpbigpLCBzcmMpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXQpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBz
cmNBc0Zsb2F0KTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgZm9yIChh
dXRvIHRlc3RWYWx1ZSA6IGludDY0T3BlcmFuZHMoKSkKQEAgLTQ3OTEsNyArNDc5OSw3IEBAIHZv
aWQgdGVzdElUb0QzMkFyZygpCiAgICAgVmFsdWUqIHNyYyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAg
IFZhbHVlKiBzcmNBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwg
T3JpZ2luKCksIHNyYyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNEb3VibGUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0RvdWJsZSk7CiAKICAgICBhdXRv
IGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIGZvciAoYXV0byB0ZXN0VmFsdWUgOiBpbnQzMk9w
ZXJhbmRzKCkpCkBAIC00ODA1LDcgKzQ4MTMsNyBAQCB2b2lkIHRlc3RJVG9GMzJBcmcoKQogICAg
IFZhbHVlKiBzcmMgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSogc3JjQXNGbG9hdCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRiwgT3JpZ2luKCksIHNyYyk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNG
bG9hdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHNyY0FzRmxvYXQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAg
ICBmb3IgKGF1dG8gdGVzdFZhbHVlIDogaW50MzJPcGVyYW5kcygpKQpAQCAtNDgxOSw3ICs0ODI3
LDcgQEAgdm9pZCB0ZXN0SVRvRDY0TWVtKCkKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwKTsKICAgICBNZW1vcnlWYWx1ZSogbG9hZGVkU3JjID0gcm9vdC0+YXBwZW5kTmV3PE1l
bW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQ2NCwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZh
bHVlKiBzcmNBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3Jp
Z2luKCksIGxvYWRlZFNyYyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNEb3VibGUpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0RvdWJsZSk7CiAKICAgICBh
dXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIGludDY0X3QgaW5NZW1vcnlWYWx1ZTsKQEAg
LTQ4MzcsNyArNDg0NSw3IEBAIHZvaWQgdGVzdElUb0Y2NE1lbSgpCiAgICAgVmFsdWUqIGFkZHJl
c3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWRlZFNyYyA9IHJvb3Qt
PmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50NjQsIE9yaWdpbigpLCBhZGRy
ZXNzKTsKICAgICBWYWx1ZSogc3JjQXNGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgSVRvRiwgT3JpZ2luKCksIGxvYWRlZFNyYyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdCk7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXQp
OwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBpbnQ2NF90IGluTWVtb3J5
VmFsdWU7CkBAIC00ODU1LDcgKzQ4NjMsNyBAQCB2b2lkIHRlc3RJVG9EMzJNZW0oKQogICAgIFZh
bHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkZWRT
cmMgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDMyLCBPcmln
aW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIHNyY0FzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgbG9hZGVkU3JjKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0RvdWJsZSk7
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHNyY0FzRG91YmxlKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgaW50
MzJfdCBpbk1lbW9yeVZhbHVlOwpAQCAtNDg3Myw3ICs0ODgxLDcgQEAgdm9pZCB0ZXN0SVRvRjMy
TWVtKCkKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBNZW1vcnlW
YWx1ZSogbG9hZGVkU3JjID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2Fk
LCBJbnQzMiwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBzcmNBc0Zsb2F0ID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9GLCBPcmlnaW4oKSwgbG9hZGVkU3JjKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBz
cmNBc0Zsb2F0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgc3JjQXNGbG9hdCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2Mp
OwogICAgIGludDMyX3QgaW5NZW1vcnlWYWx1ZTsKQEAgLTQ4OTAsNyArNDg5OCw3IEBAIHZvaWQg
dGVzdElUb0Q2NEltbShpbnQ2NF90IHZhbHVlKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHNyYyA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFs
dWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSk7CiAgICAgVmFsdWUqIHNyY0FzRmxvYXRpbmdQb2lu
dCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIHNyYyk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
c3JjQXNGbG9hdGluZ1BvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdGluZ1BvaW50KTsKICAgICBDSEVDSyhpc0lk
ZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYyksIHN0YXRpY19jYXN0PGRvdWJsZT4o
dmFsdWUpKSk7CiB9CiAKQEAgLTQ5MDAsNyArNDkwOCw3IEBAIHZvaWQgdGVzdElUb0Y2NEltbShp
bnQ2NF90IHZhbHVlKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAg
ICAgVmFsdWUqIHNyYyA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdp
bigpLCB2YWx1ZSk7CiAgICAgVmFsdWUqIHNyY0FzRmxvYXRpbmdQb2ludCA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgSVRvRiwgT3JpZ2luKCksIHNyYyk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdGluZ1Bv
aW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgc3JjQXNGbG9hdGluZ1BvaW50KTsKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxl
QW5kUnVuPGZsb2F0Pihwcm9jKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlKSkpOwogfQogCkBA
IC00OTEwLDcgKzQ5MTgsNyBAQCB2b2lkIHRlc3RJVG9EMzJJbW0oaW50MzJfdCB2YWx1ZSkKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBzcmMgPSBy
b290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpOwogICAg
IFZhbHVlKiBzcmNBc0Zsb2F0aW5nUG9pbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IElUb0QsIE9yaWdpbigpLCBzcmMpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXRpbmdQb2ludCk7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXRp
bmdQb2ludCk7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHBy
b2MpLCBzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVlKSkpOwogfQogCkBAIC00OTIwLDcgKzQ5Mjgs
NyBAQCB2b2lkIHRlc3RJVG9GMzJJbW0oaW50MzJfdCB2YWx1ZSkKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBzcmMgPSByb290LT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpOwogICAgIFZhbHVlKiBzcmNBc0Zs
b2F0aW5nUG9pbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0YsIE9yaWdpbigp
LCBzcmMpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHNyY0FzRmxvYXRpbmdQb2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXRpbmdQb2ludCk7CiAgICAg
Q0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYyksIHN0YXRpY19jYXN0
PGZsb2F0Pih2YWx1ZSkpKTsKIH0KIApAQCAtNDkzMSw3ICs0OTM5LDcgQEAgdm9pZCB0ZXN0SVRv
RFJlZHVjZWRUb0lUb0Y2NEFyZygpCiAgICAgVmFsdWUqIHNyYyA9IHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsK
ICAgICBWYWx1ZSogc3JjQXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElU
b0QsIE9yaWdpbigpLCBzcmMpOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIHNyY0FzRG91YmxlKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBmbG9hdFJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUo
cHJvYyk7CiAgICAgZm9yIChhdXRvIHRlc3RWYWx1ZSA6IGludDY0T3BlcmFuZHMoKSkKQEAgLTQ5
NDYsNyArNDk1NCw3IEBAIHZvaWQgdGVzdElUb0RSZWR1Y2VkVG9JVG9GMzJBcmcoKQogICAgICAg
ICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiBzcmNBc0RvdWJsZSA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIHNyYyk7CiAgICAgVmFsdWUqIGZsb2F0
UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmln
aW4oKSwgc3JjQXNEb3VibGUpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwogCiAgICAg
YXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBmb3IgKGF1dG8gdGVzdFZhbHVlIDogaW50
MzJPcGVyYW5kcygpKQpAQCAtNDk2NCw3ICs0OTcyLDcgQEAgdm9pZCB0ZXN0U3RvcmUzMihpbnQg
dmFsdWUpCiAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksICZzbG90KSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgMCkpOwogCiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCB2YWx1ZSkpOwpA
QCAtNDk4MCw3ICs0OTg4LDcgQEAgdm9pZCB0ZXN0U3RvcmVDb25zdGFudChpbnQgdmFsdWUpCiAg
ICAgICAgIHByb2MsIFN0b3JlLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAmc2xvdCkpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGlu
dD4ocHJvYykpOwpAQCAtNTAwMCw3ICs1MDA4LDcgQEAgdm9pZCB0ZXN0U3RvcmVDb25zdGFudFB0
cihpbnRwdHJfdCB2YWx1ZQogICAgICAgICBwcm9jLCBTdG9yZSwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZz
bG90KSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgQ0hF
Q0soIWNvbXBpbGVBbmRSdW48aW50Pihwcm9jKSk7CkBAIC01MDE4LDcgKzUwMjYsNyBAQCB2b2lk
IHRlc3RTdG9yZThBcmcoKQogICAgICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIx
KTsKIAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlOCwg
T3JpZ2luKCksIHZhbHVlLCBhZGRyZXNzKTsKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOworICAgICAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOwogCiAg
ICAgICAgIGludDhfdCBzdG9yYWdlID0gMDsKICAgICAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxp
bnQ2NF90Pihwcm9jLCA0MiwgJnN0b3JhZ2UpID09IDQyKTsKQEAgLTUwMzksNyArNTA0Nyw3IEBA
IHZvaWQgdGVzdFN0b3JlOEFyZygpCiAgICAgICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBiYXNlRGlzcGxhY2VtZW50LCBvZmZz
ZXQpOwogCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmU4
LCBPcmlnaW4oKSwgdmFsdWUsIGFkZHJlc3MpOwotICAgICAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CisgICAgICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CiAK
ICAgICAgICAgaW50OF90IHN0b3JhZ2UgPSAwOwogICAgICAgICBDSEVDSyhjb21waWxlQW5kUnVu
PGludDY0X3Q+KHByb2MsIDQyLCAmc3RvcmFnZSwgMSkgPT0gNDIpOwpAQCAtNTA1Nyw3ICs1MDY1
LDcgQEAgdm9pZCB0ZXN0U3RvcmU4SW1tKCkKICAgICAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMCk7CiAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9j
LCBTdG9yZTgsIE9yaWdpbigpLCB2YWx1ZSwgYWRkcmVzcyk7Ci0gICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKKyAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZh
bHVlKTsKIAogICAgICAgICBpbnQ4X3Qgc3RvcmFnZSA9IDA7CiAgICAgICAgIENIRUNLKGNvbXBp
bGVBbmRSdW48aW50NjRfdD4ocHJvYywgJnN0b3JhZ2UpID09IDQyKTsKQEAgLTUwNzcsNyArNTA4
NSw3IEBAIHZvaWQgdGVzdFN0b3JlOEltbSgpCiAgICAgICAgIFZhbHVlKiBhZGRyZXNzID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBiYXNlRGlzcGxhY2VtZW50
LCBvZmZzZXQpOwogCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywg
U3RvcmU4LCBPcmlnaW4oKSwgdmFsdWUsIGFkZHJlc3MpOwotICAgICAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CisgICAgICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1
ZSk7CiAKICAgICAgICAgaW50OF90IHN0b3JhZ2UgPSAwOwogICAgICAgICBDSEVDSyhjb21waWxl
QW5kUnVuPGludDY0X3Q+KHByb2MsICZzdG9yYWdlLCAxKSA9PSA0Mik7CkBAIC01MTI5LDcgKzUx
MzcsNyBAQCB2b2lkIHRlc3RTdG9yZVBhcnRpYWw4Qml0UmVnaXN0ZXJPblg4NigpCiAgICAgLy8g
aWYgd2UgdXNlIFg4NiBwYXJ0aWFsIHJlZ2lzdGVycy4KICAgICByb290LT5hcHBlbmROZXc8TWVt
b3J5VmFsdWU+KHByb2MsIFN0b3JlOCwgT3JpZ2luKCksIHBhdGNocG9pbnQsIHdoZXJlVG9TdG9y
ZSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXR1cm5WYWx1ZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJldHVyblZhbHVlKTsKIAogICAgIGludDhfdCBzdG9yYWdl
ID0gMHhmZjsKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIDB4MTIzNDU2
NzhhYmNkZWYxMiwgJnN0b3JhZ2UpID09IDB4MTIzNDU2NzhhYmNkZWYxMik7CkBAIC01MTQ3LDcg
KzUxNTUsNyBAQCB2b2lkIHRlc3RTdG9yZTE2QXJnKCkKICAgICAgICAgVmFsdWUqIGFkZHJlc3Mg
PSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMSk7CiAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVl
Pihwcm9jLCBTdG9yZTE2LCBPcmlnaW4oKSwgdmFsdWUsIGFkZHJlc3MpOwotICAgICAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7
CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCB2YWx1ZSk7CiAKICAgICAgICAgaW50MTZfdCBzdG9yYWdlID0gLTE7CiAgICAgICAgIENI
RUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgNDIsICZzdG9yYWdlKSA9PSA0Mik7CkBA
IC01MTY4LDcgKzUxNzYsNyBAQCB2b2lkIHRlc3RTdG9yZTE2QXJnKCkKICAgICAgICAgVmFsdWUq
IGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGJh
c2VEaXNwbGFjZW1lbnQsIG9mZnNldCk7CiAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9y
eVZhbHVlPihwcm9jLCBTdG9yZTE2LCBPcmlnaW4oKSwgdmFsdWUsIGFkZHJlc3MpOwotICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2
YWx1ZSk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCB2YWx1ZSk7CiAKICAgICAgICAgaW50MTZfdCBzdG9yYWdlID0gLTE7CiAgICAg
ICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgNDIsICZzdG9yYWdlLCAxKSA9
PSA0Mik7CkBAIC01MTg2LDcgKzUxOTQsNyBAQCB2b2lkIHRlc3RTdG9yZTE2SW1tKCkKICAgICAg
ICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZTE2LCBPcmlnaW4oKSwgdmFsdWUsIGFkZHJl
c3MpOwotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCB2YWx1ZSk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CiAKICAgICAgICAgaW50MTZfdCBzdG9yYWdl
ID0gLTE7CiAgICAgICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgJnN0b3Jh
Z2UpID09IDQyKTsKQEAgLTUyMDYsNyArNTIxNCw3IEBAIHZvaWQgdGVzdFN0b3JlMTZJbW0oKQog
ICAgICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRk
LCBPcmlnaW4oKSwgYmFzZURpc3BsYWNlbWVudCwgb2Zmc2V0KTsKIAogICAgICAgICByb290LT5h
cHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlMTYsIE9yaWdpbigpLCB2YWx1ZSwgYWRk
cmVzcyk7Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHZhbHVlKTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKIAogICAgICAgICBpbnQxNl90IHN0b3Jh
Z2UgPSAtMTsKICAgICAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAmc3Rv
cmFnZSwgMSkgPT0gNDIpOwpAQCAtNTIxOCw3ICs1MjI2LDcgQEAgdm9pZCB0ZXN0VHJ1bmMoaW50
NjRfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIFRydW5jLCBPcmlnaW4oKSwKQEAgLTUyMzEsNyArNTIzOSw3IEBAIHZvaWQgdGVzdEFkZDEo
aW50IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgQWRkLCBPcmlnaW4oKSwKQEAgLTUyNDcsNyArNTI1NSw3IEBAIHZvaWQgdGVzdEFkZDFQdHIo
aW50cHRyX3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAtNTI2MSw3ICs1MjY5LDcgQEAgdm9pZCB0ZXN0TmVn
MzIoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIFN1YiwgT3JpZ2luKCksCkBAIC01Mjc3LDcgKzUyODUsNyBAQCB2b2lkIHRlc3RO
ZWdQdHIoaW50cHRyX3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBTdWIsIE9yaWdpbigpLApAQCAtNTMwMiw3ICs1MzEwLDcgQEAgdm9pZCB0
ZXN0U3RvcmVBZGRMb2FkMzIoaW50IGFtb3VudCkKICAgICAgICAgICAgICAgICBwcm9jLCBUcnVu
YywgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSksCiAgICAgICAg
IHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDAp
KTsKIApAQCAtNTMyMyw3ICs1MzMxLDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkSW1tMzIoaW50
IGFtb3VudCkKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywg
TG9hZCwgSW50MzIsIE9yaWdpbigpLCBzbG90UHRyKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhbW91bnQpKSwKICAgICAgICAgc2xv
dFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwog
CkBAIC01MzQ2LDcgKzUzNTQsNyBAQCB2b2lkIHRlc3RTdG9yZUFkZExvYWQ4KGludCBhbW91bnQs
IEIzOjpPCiAgICAgICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
R1BSSW5mbzo6YXJndW1lbnRHUFIwKSkpLAogICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTUzNjcsNyArNTM3NSw3
IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9hZEltbTgoaW50IGFtb3VudCwgQjMKICAgICAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgbG9hZE9wY29kZSwgT3JpZ2luKCks
IHNsb3RQdHIpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIGFtb3VudCkpLAogICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTUzOTAsNyArNTM5OCw3IEBA
IHZvaWQgdGVzdFN0b3JlQWRkTG9hZDE2KGludCBhbW91bnQsIEIzOjoKICAgICAgICAgICAgICAg
ICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjAp
KSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDApKTsKIApAQCAtNTQxMSw3ICs1NDE5LDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRM
b2FkSW1tMTYoaW50IGFtb3VudCwgQgogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9y
eVZhbHVlPihwcm9jLCBsb2FkT3Bjb2RlLCBPcmlnaW4oKSwgc2xvdFB0ciksCiAgICAgICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYW1vdW50KSks
CiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIDApKTsKIApAQCAtNTQzMiw3ICs1NDQwLDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2Fk
NjQoaW50IGFtb3VudCkKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4o
cHJvYywgTG9hZCwgSW50NjQsIE9yaWdpbigpLCBzbG90UHRyKSwKICAgICAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNTQ1Myw3ICs1NDYxLDcgQEAgdm9pZCB0ZXN0
U3RvcmVBZGRMb2FkSW1tNjQoaW50NjRfdCBhbW91bgogICAgICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQ2NCwgT3JpZ2luKCksIHNsb3RQdHIpLAog
ICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IGFtb3VudCkpLAogICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTU0ODUsNyArNTQ5Myw3IEBAIHZvaWQgdGVzdFN0
b3JlQWRkTG9hZDMySW5kZXgoaW50IGFtb3VudCkKICAgICAgICAgICAgICAgICBwcm9jLCBUcnVu
YywgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSksCiAgICAgICAg
IHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDAp
KTsKIApAQCAtNTUxNSw3ICs1NTIzLDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkSW1tMzJJbmRl
eChpbnQgYW1vdQogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9j
LCBMb2FkLCBJbnQzMiwgT3JpZ2luKCksIHNsb3RQdHIpLAogICAgICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFtb3VudCkpLAogICAgICAgICBz
bG90UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7
CiAKQEAgLTU1NDcsNyArNTU1NSw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9hZDhJbmRleChpbnQg
YW1vdW50LCAKICAgICAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAg
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNTU3Nyw3ICs1NTg1
LDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkSW1tOEluZGV4KGludCBhbW91bgogICAgICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBsb2FkT3Bjb2RlLCBPcmlnaW4o
KSwgc2xvdFB0ciksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgYW1vdW50KSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNTYwOSw3ICs1NjE3LDcg
QEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkMTZJbmRleChpbnQgYW1vdW50LAogICAgICAgICAgICAg
ICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgICAgICByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BS
MCkpKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgMCkpOwogCkBAIC01NjM5LDcgKzU2NDcsNyBAQCB2b2lkIHRlc3RTdG9yZUFk
ZExvYWRJbW0xNkluZGV4KGludCBhbW91CiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8TWVt
b3J5VmFsdWU+KHByb2MsIGxvYWRPcGNvZGUsIE9yaWdpbigpLCBzbG90UHRyKSwKICAgICAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhbW91bnQp
KSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgMCkpOwogCkBAIC01NjY5LDcgKzU2NzcsNyBAQCB2b2lkIHRlc3RTdG9yZUFkZExv
YWQ2NEluZGV4KGludCBhbW91bnQpCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5
VmFsdWU+KHByb2MsIExvYWQsIEludDY0LCBPcmlnaW4oKSwgc2xvdFB0ciksCiAgICAgICAgICAg
ICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTU2OTksNyArNTcwNyw3IEBAIHZv
aWQgdGVzdFN0b3JlQWRkTG9hZEltbTY0SW5kZXgoaW50NjRfdCAKICAgICAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50NjQsIE9yaWdpbigpLCBzbG90
UHRyKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9y
aWdpbigpLCBhbW91bnQpKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01NzIzLDcgKzU3MzEsNyBAQCB2b2lk
IHRlc3RTdG9yZVN1YkxvYWQoaW50IGFtb3VudCkKICAgICAgICAgICAgICAgICBwcm9jLCBUcnVu
YywgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSksCiAgICAgICAg
IHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDAp
KTsKIApAQCAtNTc1MCw3ICs1NzU4LDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkSW50ZXJmZXJl
bmNlKGludCBhbQogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKICAgICAgICAgICAg
IGxvYWQsIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhbW91
bnQpKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgMCkpOwogCkBAIC01Nzc0LDcgKzU3ODIsNyBAQCB2b2lkIHRlc3RTdG9yZUFk
ZEFuZExvYWQoaW50IGFtb3VudCwgaW50CiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFtb3VudCkpLAogICAgICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIG1hc2spKSwKICAgICAg
ICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
MCkpOwogCkBAIC01Nzk5LDcgKzU4MDcsNyBAQCB2b2lkIHRlc3RTdG9yZU5lZ0xvYWQzMihpbnQz
Ml90IHZhbHVlKQogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9j
LCBMb2FkLCBJbnQzMiwgT3JpZ2luKCksIHNsb3RQdHIpKSwKICAgICAgICAgc2xvdFB0cik7CiAg
ICAgCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgQ0hFQ0so
IWNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYykpOwpAQCAtNTgyMyw3ICs1ODMxLDcgQEAgdm9p
ZCB0ZXN0U3RvcmVOZWdMb2FkUHRyKGludHB0cl90IHZhbHVlKQogICAgICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4o
KSwgc2xvdFB0cikpLAogICAgICAgICBzbG90UHRyKTsKICAgICAKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQzMl90
Pihwcm9jKSk7CkBAIC01ODM0LDcgKzU4NDIsNyBAQCB2b2lkIHRlc3RBZGQxVW5jb21tdXRlZChp
bnQgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBBZGQsIE9yaWdpbigpLApAQCAtNTg1Miw3ICs1ODYwLDcgQEAgdm9pZCB0ZXN0TG9hZE9mZnNl
dCgpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBpbnQgYXJy
YXlbXSA9IHsgMSwgMiB9OwogICAgIENvbnN0UHRyVmFsdWUqIGFycmF5UHRyID0gcm9vdC0+YXBw
ZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhcnJheSk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKQEAgLTU4NjgsNyAr
NTg3Niw3IEBAIHZvaWQgdGVzdExvYWRPZmZzZXROb3RDb25zdGFudCgpCiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBpbnQgYXJyYXlbXSA9IHsgMSwgMiB9Owog
ICAgIFZhbHVlKiBhcnJheVB0ciA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAtNTg4NCw3ICs1ODkyLDcg
QEAgdm9pZCB0ZXN0TG9hZE9mZnNldFVzaW5nQWRkKCkKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwogICAgIGludCBhcnJheVtdID0geyAxLCAyIH07CiAgICAgQ29uc3RQ
dHJWYWx1ZSogYXJyYXlQdHIgPSByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIGFycmF5KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBBZGQsIE9yaWdpbigpLApAQCAtNTkyNSw3ICs1OTMzLDcgQEAgdm9pZCB0ZXN0TG9hZE9mZnNl
dFVzaW5nQWRkSW50ZXJmZXJlbmNlKAogICAgICAgICBwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHRo
ZU51bWJlck9mVGhlQmVhc3QsIG90aGVyQXJyYXlQdHIsIDApOwogICAgIHJvb3QtPmFwcGVuZE5l
dzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgIHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgdGhlTnVtYmVy
T2ZUaGVCZWFzdCwgb3RoZXJBcnJheVB0ciwgc2l6ZW9mKGludCkpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksIGxlZnQsIHJpZ2h0KSk7CkBA
IC01OTQxLDcgKzU5NDksNyBAQCB2b2lkIHRlc3RMb2FkT2Zmc2V0VXNpbmdBZGROb3RDb25zdGFu
dCgpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBpbnQgYXJy
YXlbXSA9IHsgMSwgMiB9OwogICAgIFZhbHVlKiBhcnJheVB0ciA9IHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLApA
QCAtNTk3Nyw3ICs1OTg1LDcgQEAgdm9pZCB0ZXN0TG9hZEFkZHJTaGlmdCh1bnNpZ25lZCBzaGlm
dCkKIAogICAgICpzbG90ID0gODY3NTMwOTsKICAgICAKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2luKCksCkBAIC01OTkzLDcg
KzYwMDEsNyBAQCB2b2lkIHRlc3RGcmFtZVBvaW50ZXIoKQogewogICAgIFByb2NlZHVyZSBwcm9j
OwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEZyYW1lUG9pbnRlciwgT3JpZ2luKCkpKTsKIApAQCAtNjAxNiw3ICs2MDI0
LDcgQEAgdm9pZCB0ZXN0T3ZlcnJpZGVGcmFtZVBvaW50ZXIoKQogICAgICAgICBWYWx1ZSogZnAg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZyYW1lUG9pbnRlciwgT3JpZ2luKCkpOwog
ICAgICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIs
IE9yaWdpbigpLCBmcCwgb2Zmc2V0KTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgICAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKICAg
ICAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAxKSk7CiAgICAgfQogICAg
IHsKQEAgLTYwMzIsNyArNjA0MCw3IEBAIHZvaWQgdGVzdE92ZXJyaWRlRnJhbWVQb2ludGVyKCkK
ICAgICAgICAgVmFsdWUqIG9mZnNldEFyZyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
QWRkLCBPcmlnaW4oKSwgb2Zmc2V0LCBhcmcpOwogICAgICAgICBWYWx1ZSogcmVzdWx0ID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBvZmZzZXRBcmcsIG9mZnNl
dEZQKTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICAgICAgQ0hFQ0soY29tcGls
ZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAxLCAyKSk7CiAgICAgfQogfQpAQCAtNjA0MSw3ICs2MDQ5
LDcgQEAgdm9pZCB0ZXN0U3RhY2tTbG90KCkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFNsb3RCYXNl
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBwcm9jLmFkZFN0YWNrU2xvdCgxKSkpOwogCkBAIC02MDU0
LDcgKzYwNjIsNyBAQCB2b2lkIHRlc3RMb2FkRnJvbUZyYW1lUG9pbnRlcigpCiB7CiAgICAgUHJv
Y2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVy
VHlwZSgpLCBPcmlnaW4oKSwKQEAgLTYwODEsNyArNjA4OSw3IEBAIHZvaWQgdGVzdFN0b3JlTG9h
ZFN0YWNrU2xvdChpbnQgdmFsdWUpCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAg
ICAgICBzdGFjayk7CiAgICAgCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQs
IEludDMyLCBPcmlnaW4oKSwgc3RhY2spKTsKIApAQCAtNjExNiw3ICs2MTI0LDcgQEAgdm9pZCB0
ZXN0TG9hZChCMzo6T3Bjb2RlIG9wY29kZSwgSW5wdXRUeQogICAgICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICAgICAg
Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAg
ICAgICBwcm9jLCBvcGNvZGUsIHR5cGUsIE9yaWdpbigpLApAQCAtNjEzMCw3ICs2MTM4LDcgQEAg
dm9pZCB0ZXN0TG9hZChCMzo6T3Bjb2RlIG9wY29kZSwgSW5wdXRUeQogICAgICAgICBQcm9jZWR1
cmUgcHJvYzsKICAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAg
ICAgICAgCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAg
ICAgICAgICAgICBwcm9jLCBvcGNvZGUsIHR5cGUsIE9yaWdpbigpLApAQCAtNjE0NCw3ICs2MTUy
LDcgQEAgdm9pZCB0ZXN0TG9hZChCMzo6T3Bjb2RlIG9wY29kZSwgSW5wdXRUeQogICAgICAgICBQ
cm9jZWR1cmUgcHJvYzsKICAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKICAgICAgICAgCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
ICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigK
ICAgICAgICAgICAgICAgICBwcm9jLCBvcGNvZGUsIHR5cGUsIE9yaWdpbigpLApAQCAtNjE1OSw3
ICs2MTY3LDcgQEAgdm9pZCB0ZXN0TG9hZChCMzo6T3Bjb2RlIG9wY29kZSwgSW5wdXRUeQogICAg
ICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAg
ICAgICAgICAgICAgICAgcHJvYywgb3Bjb2RlLCB0eXBlLCBPcmlnaW4oKSwKQEAgLTYxNzksNyAr
NjE4Nyw3IEBAIHZvaWQgdGVzdExvYWQoQjM6Ok9wY29kZSBvcGNvZGUsIElucHV0VHkKICAgICAg
ICAgUHJvY2VkdXJlIHByb2M7CiAgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAg
ICAgICAgICAgICAgIHByb2MsIG9wY29kZSwgdHlwZSwgT3JpZ2luKCksCkBAIC02MjE5LDcgKzYy
MjcsNyBAQCB2b2lkIHRlc3RTdG9yZUZsb2F0KGRvdWJsZSBpbnB1dCkKICAgICAgICAgVmFsdWUq
IGRlc3RpbmF0aW9uQWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIGFyZ3VtZW50QXNGbG9h
dCwgZGVzdGluYXRpb25BZGRyZXNzKTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgICAgICBmbG9hdCBvdXRwdXQgPSAwLjsKICAg
ICAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgaW5wdXQsICZvdXRwdXQp
KTsKQEAgLTYyNDMsNyArNjI1MSw3IEBAIHZvaWQgdGVzdFN0b3JlRmxvYXQoZG91YmxlIGlucHV0
KQogCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9y
aWdpbigpLCBhcmd1bWVudEFzRmxvYXQsIGRlc3RpbmF0aW9uQWRkcmVzcyk7CiAKLSAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9v
dC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKKyAgICAgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3Qt
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICAgICAg
ZmxvYXQgb3V0cHV0ID0gMC47CiAgICAgICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludDY0X3Q+
KHByb2MsIGlucHV0LCAmb3V0cHV0IC0gMSwgMSkpOwpAQCAtNjI2Myw3ICs2MjcxLDcgQEAgdm9p
ZCB0ZXN0U3RvcmVEb3VibGVDb25zdGFudEFzRmxvYXQoZG91YgogCiAgICAgcm9vdC0+YXBwZW5k
TmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHZhbHVlQXNGbG9hdCwgZGVz
dGluYXRpb25BZGRyZXNzKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAwKSk7CiAKICAgICBmbG9hdCBvdXRwdXQgPSAwLjsKICAgICBDSEVDSyghY29tcGlsZUFu
ZFJ1bjxpbnQ2NF90Pihwcm9jLCBpbnB1dCwgJm91dHB1dCkpOwpAQCAtNjI4OSw3ICs2Mjk3LDcg
QEAgdm9pZCB0ZXN0U3BpbGxHUCgpCiAgICAgZm9yIChWYWx1ZSogdmFsdWUgOiBzb3VyY2VzKQog
ICAgICAgICB0b3RhbCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4o
KSwgdG90YWwsIHZhbHVlKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHRvdGFsKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdG90YWwpOwogICAgIGNvbXBpbGVBbmRSdW48
aW50Pihwcm9jLCAxLCAyKTsKIH0KIApAQCAtNjMxMiw3ICs2MzIwLDcgQEAgdm9pZCB0ZXN0U3Bp
bGxGUCgpCiAgICAgZm9yIChWYWx1ZSogdmFsdWUgOiBzb3VyY2VzKQogICAgICAgICB0b3RhbCA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgdG90YWwsIHZhbHVl
KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHRvdGFsKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgdG90YWwpOwogICAgIGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCAx
LjEsIDIuNSk7CiB9CiAKQEAgLTYzMjgsNyArNjMzNiw3IEBAIHZvaWQgdGVzdEludDMyVG9Eb3Vi
bGVQYXJ0aWFsUmVnaXN0ZXJTdGEKICAgICBWYWx1ZSogY291bnRlciA9IHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIw
KTsKICAgICBVcHNpbG9uVmFsdWUqIG9yaWdpbmFsVG90YWwgPSByb290LT5hcHBlbmROZXc8VXBz
aWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdG90YWwpOwogICAgIFVwc2lsb25WYWx1ZSogb3Jp
Z2luYWxDb3VudGVyID0gcm9vdC0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIGNvdW50ZXIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1
bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sobG9vcCkpOworICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3Ap
KTsKIAogICAgIC8vIExvb3AuCiAgICAgVmFsdWUqIGxvb3BDb3VudGVyID0gbG9vcC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBQaGksIEludDY0LCBPcmlnaW4oKSk7CkBAIC02MzQ1LDEzICs2MzUz
LDEzIEBAIHZvaWQgdGVzdEludDMyVG9Eb3VibGVQYXJ0aWFsUmVnaXN0ZXJTdGEKICAgICBWYWx1
ZSogZGVjQ291bnRlciA9IGxvb3AtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4o
KSwgbG9vcENvdW50ZXIsIGxvb3AtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdp
bigpLCAxKSk7CiAgICAgVXBzaWxvblZhbHVlKiBkZWNDb3VudGVyVXBzaWxvbiA9IGxvb3AtPmFw
cGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCBkZWNDb3VudGVyKTsKICAgICBk
ZWNDb3VudGVyVXBzaWxvbi0+c2V0UGhpKGxvb3BDb3VudGVyKTsKLSAgICBsb29wLT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICBsb29wLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIGRlY0NvdW50ZXIsCiAgICAgICAg
IEZyZXF1ZW50ZWRCbG9jayhsb29wKSwgRnJlcXVlbnRlZEJsb2NrKGRvbmUpKTsKIAogICAgIC8v
IFRhaWwuCi0gICAgZG9uZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgdXBkYXRlZFRvdGFsKTsKKyAgICBkb25lLT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdXBkYXRlZFRvdGFsKTsKICAgICBDSEVDSyhpc0lkZW50
aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgMTAwMDAwKSwgNTAwMDA1MDAwMC4pKTsK
IH0KIApAQCAtNjM3MSw3ICs2Mzc5LDcgQEAgdm9pZCB0ZXN0SW50MzJUb0RvdWJsZVBhcnRpYWxS
ZWdpc3RlcldpdAogICAgIFZhbHVlKiBmb3JQYWRkaW5nSW5wdXRBZGRyZXNzID0gcm9vdC0+YXBw
ZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAmZm9yUGFkZGluZ0lucHV0KTsK
ICAgICB1aW50NjRfdCBmb3JQYWRkaW5nT3V0cHV0OwogICAgIFZhbHVlKiBmb3JQYWRkaW5nT3V0
cHV0QWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgJmZvclBhZGRpbmdPdXRwdXQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sobG9vcCkpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJs
b2NrKGxvb3ApKTsKIAogICAgIC8vIExvb3AuCiAgICAgVmFsdWUqIGxvb3BDb3VudGVyID0gbG9v
cC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBQaGksIEludDY0LCBPcmlnaW4oKSk7CkBAIC02NDA1
LDEzICs2NDEzLDEzIEBAIHZvaWQgdGVzdEludDMyVG9Eb3VibGVQYXJ0aWFsUmVnaXN0ZXJXaXQK
ICAgICBWYWx1ZSogZGVjQ291bnRlciA9IGxvb3AtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3Vi
LCBPcmlnaW4oKSwgbG9vcENvdW50ZXIsIGxvb3AtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAxKSk7CiAgICAgVXBzaWxvblZhbHVlKiBkZWNDb3VudGVyVXBzaWxvbiA9
IGxvb3AtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCBkZWNDb3VudGVy
KTsKICAgICBkZWNDb3VudGVyVXBzaWxvbi0+c2V0UGhpKGxvb3BDb3VudGVyKTsKLSAgICBsb29w
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBsb29wLT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIGRlY0NvdW50ZXIs
CiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhsb29wKSwgRnJlcXVlbnRlZEJsb2NrKGRvbmUpKTsK
IAogICAgIC8vIFRhaWwuCi0gICAgZG9uZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgdXBkYXRlZFRvdGFsKTsKKyAgICBkb25lLT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdXBkYXRlZFRvdGFsKTsKICAgICBDSEVD
Syhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgMTAwMDAwKSwgNTAwMDA1
MDAwMC4pKTsKIH0KIApAQCAtNjQyMiwxOCArNjQzMCwxOCBAQCB2b2lkIHRlc3RCcmFuY2goKQog
ICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxv
Y2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAog
ICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjApKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJs
b2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMy
VmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTY0NDksMTYgKzY0NTcsMTYgQEAgdm9p
ZCB0ZXN0QnJhbmNoUHRyKCkKICAgICBCYXNpY0Jsb2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxv
Y2soKTsKICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjApLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVk
QmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNjQ3NSw3ICs2NDgzLDcgQEAgdm9p
ZCB0ZXN0RGlhbW9uZCgpCiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2Nr
KCk7CiAgICAgQmFzaWNCbG9jayogZG9uZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKQEAgLTY0ODQs
MTYgKzY0OTIsMTYgQEAgdm9pZCB0ZXN0RGlhbW9uZCgpCiAKICAgICBVcHNpbG9uVmFsdWUqIHRo
ZW5SZXN1bHQgPSB0aGVuQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4oCiAgICAgICAgIHBy
b2MsIE9yaWdpbigpLCB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIDEpKTsKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
SnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhkb25lKSk7CisgICAgdGhlbkNhc2UtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2Nr
KGRvbmUpKTsKIAogICAgIFVwc2lsb25WYWx1ZSogZWxzZVJlc3VsdCA9IGVsc2VDYXNlLT5hcHBl
bmROZXc8VXBzaWxvblZhbHVlPigKICAgICAgICAgcHJvYywgT3JpZ2luKCksIGVsc2VDYXNlLT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwotICAgIGVsc2VDYXNl
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRl
ZEJsb2NrKGRvbmUpKTsKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZG9uZSkpOwogCiAgICAgVmFsdWUqIHBo
aSA9IGRvbmUtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBJbnQzMiwgT3JpZ2luKCkpOwog
ICAgIHRoZW5SZXN1bHQtPnNldFBoaShwaGkpOwogICAgIGVsc2VSZXN1bHQtPnNldFBoaShwaGkp
OwotICAgIGRvbmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHBoaSk7CisgICAgZG9uZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHBoaSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIENI
RUNLKGludm9rZTxpbnQ+KCpjb2RlLCA0MikgPT0gMSk7CkBAIC02NTA3LDcgKzY1MTUsNyBAQCB2
b2lkIHRlc3RCcmFuY2hOb3RFcXVhbCgpCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9j
LmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7
CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBOb3RFcXVhbCwgT3Jp
Z2luKCksCkBAIC02NTE3LDExICs2NTI1LDExIEBAIHZvaWQgdGVzdEJyYW5jaE5vdEVxdWFsKCkK
ICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCAwKSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9j
ayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC02NTM3LDcgKzY1NDUsNyBAQCB2b2lkIHRl
c3RCcmFuY2hOb3RFcXVhbENvbW11dGUoKQogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJv
Yy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygp
OwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTm90RXF1YWwsIE9y
aWdpbigpLApAQCAtNjU0NywxMSArNjU1NSwxMSBAQCB2b2lkIHRlc3RCcmFuY2hOb3RFcXVhbENv
bW11dGUoKQogICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSkpLAogICAgICAgICBGcmVx
dWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAg
IHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsK
IAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IDApKTsKIApAQCAtNjU2Nyw3ICs2NTc1LDcgQEAgdm9pZCB0ZXN0QnJhbmNoTm90RXF1YWxOb3RF
cXVhbCgpCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAg
QmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBOb3RFcXVhbCwgT3JpZ2luKCksCkBAIC02NTgwLDEx
ICs2NTg4LDExIEBAIHZvaWQgdGVzdEJyYW5jaE5vdEVxdWFsTm90RXF1YWwoKQogICAgICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKSwKICAg
ICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNl
KSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNh
c2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
ZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAwKSk7CiAKQEAgLTY2MDAsNyArNjYwOCw3IEBAIHZvaWQgdGVzdEJyYW5jaEVx
dWFsKCkKICAgICBCYXNpY0Jsb2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAgICBC
YXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKICAgICAgICAgICAgIHByb2MsIEVxdWFsLCBPcmlnaW4oKSwKQEAgLTY2MTAsMTEgKzY2
MTgsMTEgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWwoKQogICAgICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKSwKICAgICAgICAgRnJlcXVlbnRl
ZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVu
Q2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhl
bkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKLSAg
ICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7
CiAKQEAgLTY2MzAsNyArNjYzOCw3IEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsRXF1YWwoKQogICAg
IEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sq
IGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgRXF1YWwsIE9yaWdpbigpLApAQCAtNjY0MywxMSArNjY1MSwxMSBAQCB2
b2lkIHRlc3RCcmFuY2hFcXVhbEVxdWFsKCkKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9j
ayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2Ut
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNl
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxz
ZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVs
c2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBA
IC02NjYzLDcgKzY2NzEsNyBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbENvbW11dGUoKQogICAgIEJh
c2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVs
c2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBC
cmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgcHJvYywgRXF1YWwsIE9yaWdpbigpLApAQCAtNjY3MywxMSArNjY4MSwxMSBAQCB2b2lk
IHRlc3RCcmFuY2hFcXVhbENvbW11dGUoKQogICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIw
KSkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2so
ZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIDApKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIApAQCAtNjY5Myw3ICs2NzAxLDcgQEAgdm9pZCB0ZXN0
QnJhbmNoRXF1YWxFcXVhbDEoKQogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRC
bG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgRXF1YWwsIE9yaWdpbigpLApA
QCAtNjcwNiwxMSArNjcxNCwxMSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbEVxdWFsMSgpCiAgICAg
ICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkp
LAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxz
ZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0
aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDApKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIDEpKTsKIApAQCAtNjcyOCw3ICs2NzM2LDcgQEAgdm9pZCB0ZXN0QnJh
bmNoRXF1YWxPclVub3JkZXJlZEFyZ3MoZG91YgogCiAgICAgVmFsdWUqIGFyZ3VtZW50QSA9IHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6
YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogYXJndW1lbnRCID0gcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjEpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEVxdWFsT3JVbm9yZGVyZWQs
IE9yaWdpbigpLApAQCAtNjczNiwxMSArNjc0NCwxMSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9y
VW5vcmRlcmVkQXJncyhkb3ViCiAgICAgICAgICAgICBhcmd1bWVudEIpLAogICAgICAgICBGcmVx
dWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAg
IHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7
CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2Ut
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCAtMTMpKTsKIApAQCAtNjc2MCw3ICs2NzY4LDcgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVu
b3JkZXJlZEFyZ3MoZmxvYQogICAgIFZhbHVlKiBhcmd1bWVudEIgPSByb290LT5hcHBlbmROZXc8
TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEZsb2F0LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjEpKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEVx
dWFsT3JVbm9yZGVyZWQsIE9yaWdpbigpLApAQCAtNjc2OCwxMSArNjc3NiwxMSBAQCB2b2lkIHRl
c3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVkQXJncyhmbG9hCiAgICAgICAgICAgICBhcmd1bWVudEIp
LAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxz
ZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0
aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDQyKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAtMTMpKTsKIApAQCAtNjc5NywxNiArNjgwNSwxNiBAQCB2b2lkIHRl
c3RCcmFuY2hOb3RFcXVhbEFuZE9yZGVyZWRBcmdzKGRvCiAgICAgICAgIHByb2MsIEVxdWFsLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIDApLAogICAgICAgICBlcXVhbE9yVW5vcmRlcmVkKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIG5vdEVxdWFsQW5kT3JkZXJlZCwK
ICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VD
YXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhl
bkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCA0MikpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgLTEzKSk7CiAKQEAgLTY4MzMsMTYgKzY4NDEsMTYgQEAgdm9pZCB0ZXN0
QnJhbmNoTm90RXF1YWxBbmRPcmRlcmVkQXJncyhmbAogICAgICAgICBwcm9jLCBFcXVhbCwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAwKSwKICAgICAgICAgZXF1YWxPclVub3JkZXJlZCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICBub3RFcXVhbEFuZE9yZGVyZWQsCiAg
ICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2Fz
ZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5D
YXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgNDIpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIC0xMykpOwogCkBAIC02ODU5LDcgKzY4NjcsNyBAQCB2b2lkIHRlc3RCcmFu
Y2hFcXVhbE9yVW5vcmRlcmVkRG91YmxlQXJnCiAKICAgICBWYWx1ZSogYXJndW1lbnRBID0gcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjph
cmd1bWVudEZQUjApOwogICAgIFZhbHVlKiBhcmd1bWVudEIgPSByb290LT5hcHBlbmROZXc8Q29u
c3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIEVxdWFsT3JVbm9yZGVyZWQsIE9yaWdpbigpLApAQCAtNjg2Nywx
MSArNjg3NSwxMSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVkRG91YmxlQXJnCiAg
ICAgICAgICAgICBhcmd1bWVudEIpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2Up
LCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMTMpKTsKIApAQCAtNjg5MCw3
ICs2ODk4LDcgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJlZEZsb2F0QXJnSQogICAg
ICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiBhcmd1bWVudEIgPSByb290LT5hcHBl
bmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7CiAKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBFcXVhbE9yVW5vcmRlcmVkLCBPcmlnaW4oKSwK
QEAgLTY4OTgsMTEgKzY5MDYsMTEgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJlZEZs
b2F0QXJnSQogICAgICAgICAgICAgYXJndW1lbnRCKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2Nr
KHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2Ut
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwogCi0gICAgZWxz
ZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVs
c2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTEzKSk7CiAK
QEAgLTY5MTksNyArNjkyNyw3IEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsT3JVbm9yZGVyZWREb3Vi
bGVJbW0KIAogICAgIFZhbHVlKiBhcmd1bWVudEEgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3Vi
bGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiBhcmd1bWVudEIgPSByb290
LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEVxdWFsT3JVbm9yZGVyZWQsIE9yaWdp
bigpLApAQCAtNjkyNywxMSArNjkzNSwxMSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRl
cmVkRG91YmxlSW1tCiAgICAgICAgICAgICBhcmd1bWVudEIpLAogICAgICAgICBGcmVxdWVudGVk
QmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5D
YXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVu
Q2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7CiAKLSAg
ICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMTMp
KTsKIApAQCAtNjk0OSw3ICs2OTU3LDcgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJl
ZEZsb2F0SW1tcwogICAgIFZhbHVlKiBhcmd1bWVudEEgPSByb290LT5hcHBlbmROZXc8Q29uc3RG
bG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIGFyZ3VtZW50QiA9IHJv
b3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKIAotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEVxdWFsT3JVbm9yZGVyZWQsIE9y
aWdpbigpLApAQCAtNjk1NywxMSArNjk2NSwxMSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5v
cmRlcmVkRmxvYXRJbW1zCiAgICAgICAgICAgICBhcmd1bWVudEIpLAogICAgICAgICBGcmVxdWVu
dGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRo
ZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0
aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7CiAK
LSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAt
MTMpKTsKIApAQCAtNjk4Myw3ICs2OTkxLDcgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVub3Jk
ZXJlZEZsb2F0V2l0aAogICAgIFZhbHVlKiBhcmd1bWVudDFBc0RvdWJsZSA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGFyZ3VtZW50MSk7CiAg
ICAgVmFsdWUqIGFyZ3VtZW50MkFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgYXJndW1lbnQyKTsKIAotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKICAgICAgICAgICAgIHByb2MsIEVxdWFsT3JVbm9yZGVyZWQsIE9yaWdpbigpLApAQCAt
Njk5MSwxMSArNjk5OSwxMSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVkRmxvYXRX
aXRoCiAgICAgICAgICAgICBhcmd1bWVudDJBc0RvdWJsZSksCiAgICAgICAgIEZyZXF1ZW50ZWRC
bG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNh
c2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5D
YXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpKTsKIAotICAg
IGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xMykp
OwogCkBAIC03MDEwLDE2ICs3MDE4LDE2IEBAIHZvaWQgdGVzdEJyYW5jaEZvbGQoaW50IHZhbHVl
KQogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2lj
QmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2so
dGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VD
YXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNl
Q2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAt
NzAzNCwyMyArNzA0MiwyMyBAQCB2b2lkIHRlc3REaWFtb25kRm9sZChpbnQgdmFsdWUpCiAgICAg
QmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayog
ZG9uZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJh
bmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIHZhbHVlKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwg
RnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKICAgICBVcHNpbG9uVmFsdWUqIHRoZW5SZXN1
bHQgPSB0aGVuQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4oCiAgICAgICAgIHByb2MsIE9y
aWdpbigpLCB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IDEpKTsKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwg
T3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhkb25lKSk7CisgICAgdGhlbkNhc2UtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRvbmUp
KTsKIAogICAgIFVwc2lsb25WYWx1ZSogZWxzZVJlc3VsdCA9IGVsc2VDYXNlLT5hcHBlbmROZXc8
VXBzaWxvblZhbHVlPigKICAgICAgICAgcHJvYywgT3JpZ2luKCksIGVsc2VDYXNlLT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwotICAgIGVsc2VDYXNlLT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2Nr
KGRvbmUpKTsKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAs
IE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZG9uZSkpOwogCiAgICAgVmFsdWUqIHBoaSA9IGRv
bmUtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBJbnQzMiwgT3JpZ2luKCkpOwogICAgIHRo
ZW5SZXN1bHQtPnNldFBoaShwaGkpOwogICAgIGVsc2VSZXN1bHQtPnNldFBoaShwaGkpOwotICAg
IGRvbmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBo
aSk7CisgICAgZG9uZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHBoaSk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYykgPT0gISF2YWx1
ZSk7CiB9CkBAIC03MDYyLDcgKzcwNzAsNyBAQCB2b2lkIHRlc3RCcmFuY2hOb3RFcXVhbEZvbGRQ
dHIoaW50cHRyX3QgCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7
CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBOb3RFcXVhbCwgT3JpZ2luKCksCkBAIC03
MDcwLDExICs3MDc4LDExIEBAIHZvaWQgdGVzdEJyYW5jaE5vdEVxdWFsRm9sZFB0cihpbnRwdHJf
dCAKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmln
aW4oKSwgMCkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVk
QmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNzA4OCw3ICs3MDk2LDcgQEAgdm9p
ZCB0ZXN0QnJhbmNoRXF1YWxGb2xkUHRyKGludHB0cl90IHZhbAogICAgIEJhc2ljQmxvY2sqIHRo
ZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJv
Yy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
RXF1YWwsIE9yaWdpbigpLApAQCAtNzA5NiwxMSArNzEwNCwxMSBAQCB2b2lkIHRlc3RCcmFuY2hF
cXVhbEZvbGRQdHIoaW50cHRyX3QgdmFsCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29u
c3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2Nr
KHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2Ut
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKLSAgICBlbHNl
Q2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxz
ZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAg
LTcxMTQsMTggKzcxMjIsMTggQEAgdm9pZCB0ZXN0QnJhbmNoTG9hZFB0cigpCiAgICAgQmFzaWNC
bG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNh
c2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5j
aCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwKICAgICAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZy
ZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29u
c3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC03MTQ0LDE4ICs3MTUy
LDE4IEBAIHZvaWQgdGVzdEJyYW5jaExvYWQzMigpCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2Ug
PSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJs
b2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBM
b2FkLCBJbnQzMiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAg
ICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2Up
KTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2Fz
ZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBl
bHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDApKTsKIApAQCAtNzE3NCwxOCArNzE4MiwxOCBAQCB2b2lkIHRlc3RCcmFuY2hM
b2FkOFMoKQogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAg
IEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZDhTLCBPcmlnaW4oKSwKICAgICAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
R1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2Fz
ZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNhc2UtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC03MjA0LDE4
ICs3MjEyLDE4IEBAIHZvaWQgdGVzdEJyYW5jaExvYWQ4WigpCiAgICAgQmFzaWNCbG9jayogdGhl
bkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9j
LmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBw
cm9jLCBMb2FkOFosIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAg
ICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNl
KSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNh
c2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
ZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAwKSk7CiAKQEAgLTcyMzQsMTggKzcyNDIsMTggQEAgdm9pZCB0ZXN0QnJhbmNo
TG9hZDE2UygpCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAg
ICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkMTZTLCBPcmlnaW4oKSwKICAg
ICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVu
Q2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNhc2Ut
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNl
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC03MjY0
LDE4ICs3MjcyLDE4IEBAIHZvaWQgdGVzdEJyYW5jaExvYWQxNlooKQogICAgIEJhc2ljQmxvY2sq
IHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0g
cHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgTG9hZDE2WiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkp
LAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxz
ZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0
aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNzI5NSw3ICs3MzAzLDcgQEAgdm9pZCB0ZXN0QnJh
bmNoOFdpdGhMb2FkOFpJbmRleCgpCiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFk
ZEJsb2NrKCk7CiAKICAgICBpbnQgbG9nU2NhbGUgPSAxOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIEFib3ZlLCBPcmlnaW4oKSwKQEAgLTczMTEsMTEgKzczMTksMTEg
QEAgdm9pZCB0ZXN0QnJhbmNoOFdpdGhMb2FkOFpJbmRleCgpCiAgICAgICAgICAgICByb290LT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMjUwKSksCiAgICAgICAgIEZy
ZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0g
ICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkp
OwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNl
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgMCkpOwogCkBAIC03MzU3LDcgKzczNjUsNyBAQCB2b2lkIHRlc3RDb21wbGV4KHVuc2lnbmVk
IG51bVZhcnMsIHVuc2lnCiAgICAgICAgICAgICBCYXNpY0Jsb2NrKiBlbHNlQmxvY2sgPSBwcm9j
LmFkZEJsb2NrKCk7CiAgICAgICAgICAgICBCYXNpY0Jsb2NrKiBjb250aW51YXRpb24gPSBwcm9j
LmFkZEJsb2NrKCk7CiAKLSAgICAgICAgICAgIGN1cnJlbnQtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgICAgICAgICAgY3VycmVudC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksIHZhcnNbcHJlZGljYXRlVmFySW5kZXhd
LAogICAgICAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQmxvY2spLCBGcmVxdWVudGVk
QmxvY2soZWxzZUJsb2NrKSk7CiAKQEAgLTczNjYsMTQgKzczNzQsMTQgQEAgdm9pZCB0ZXN0Q29t
cGxleCh1bnNpZ25lZCBudW1WYXJzLCB1bnNpZwogICAgICAgICAgICAgICAgIHRoZW5CbG9jay0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCB2YXJzW3RoZW5JbmNWYXJJbmRl
eF0sIG9uZSkpOwogICAgICAgICAgICAgVXBzaWxvblZhbHVlKiB0aGVuRWxzZVJlc3VsdCA9IHRo
ZW5CbG9jay0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywg
T3JpZ2luKCksIHZhcnNbZWxzZUluY1ZhckluZGV4XSk7Ci0gICAgICAgICAgICB0aGVuQmxvY2st
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVk
QmxvY2soY29udGludWF0aW9uKSk7CisgICAgICAgICAgICB0aGVuQmxvY2stPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGNvbnRpbnVh
dGlvbikpOwogCiAgICAgICAgICAgICBVcHNpbG9uVmFsdWUqIGVsc2VFbHNlUmVzdWx0ID0gZWxz
ZUJsb2NrLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBP
cmlnaW4oKSwKICAgICAgICAgICAgICAgICBlbHNlQmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQWRkLCBPcmlnaW4oKSwgdmFyc1tlbHNlSW5jVmFySW5kZXhdLCBvbmUpKTsKICAgICAgICAg
ICAgIFVwc2lsb25WYWx1ZSogZWxzZVRoZW5SZXN1bHQgPSBlbHNlQmxvY2stPmFwcGVuZE5ldzxV
cHNpbG9uVmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLCB2YXJzW3RoZW5J
bmNWYXJJbmRleF0pOwotICAgICAgICAgICAgZWxzZUJsb2NrLT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGNvbnRpbnVhdGlvbikp
OworICAgICAgICAgICAgZWxzZUJsb2NrLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVt
cCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhjb250aW51YXRpb24pKTsKIAogICAgICAgICAg
ICAgVmFsdWUqIHRoZW5QaGkgPSBjb250aW51YXRpb24tPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
UGhpLCBJbnQzMiwgT3JpZ2luKCkpOwogICAgICAgICAgICAgdGhlblRoZW5SZXN1bHQtPnNldFBo
aSh0aGVuUGhpKTsKQEAgLTczOTgsNyArNzQwNiw3IEBAIHZvaWQgdGVzdENvbXBsZXgodW5zaWdu
ZWQgbnVtVmFycywgdW5zaWcKICAgICAgICAgICAgIAogICAgICAgICAgICAgVmFsdWUqIHN0YXJ0
SW5kZXggPSB2YXJzWygoaSA+PiAxKSArIDEpICUgbnVtVmFyc107CiAgICAgICAgICAgICBWYWx1
ZSogc3RhcnRTdW0gPSBjdXJyZW50LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgMCk7Ci0gICAgICAgICAgICBjdXJyZW50LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICAgICAgICAgIGN1cnJlbnQtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAg
ICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLCBzdGFydEluZGV4LAogICAgICAgICAgICAgICAg
IEZyZXF1ZW50ZWRCbG9jayhsb29wRW50cnkpLCBGcmVxdWVudGVkQmxvY2sobG9vcFNraXApKTsK
IApAQCAtNzQwNiw3ICs3NDE0LDcgQEAgdm9pZCB0ZXN0Q29tcGxleCh1bnNpZ25lZCBudW1WYXJz
LCB1bnNpZwogICAgICAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLCBzdGFydEluZGV4KTsKICAg
ICAgICAgICAgIFVwc2lsb25WYWx1ZSogc3RhcnRTdW1Gb3JCb2R5ID0gbG9vcEVudHJ5LT5hcHBl
bmROZXc8VXBzaWxvblZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgc3Rh
cnRTdW0pOwotICAgICAgICAgICAgbG9vcEVudHJ5LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3BCb2R5KSk7CisgICAgICAg
ICAgICBsb29wRW50cnktPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4o
KSwgRnJlcXVlbnRlZEJsb2NrKGxvb3BCb2R5KSk7CiAKICAgICAgICAgICAgIFZhbHVlKiBib2R5
SW5kZXggPSBsb29wQm9keS0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBQaGksIEludDMyLCBPcmln
aW4oKSk7CiAgICAgICAgICAgICBzdGFydEluZGV4Rm9yQm9keS0+c2V0UGhpKGJvZHlJbmRleCk7
CkBAIC03NDMxLDE5ICs3NDM5LDE5IEBAIHZvaWQgdGVzdENvbXBsZXgodW5zaWduZWQgbnVtVmFy
cywgdW5zaWcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvb3BCb2R5LT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwcm9jLCBPcmlnaW4oKSwgbnVtVmFycyAtIDEpKSksCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbG9vcEJvZHktPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAyKSkpKSk7Ci0gICAgICAgICAgICBsb29wQm9keS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgICAgICAgICBsb29wQm9keS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksIG5ld0JvZHlJbmRleCwKICAgICAgICAg
ICAgICAgICBGcmVxdWVudGVkQmxvY2sobG9vcFJlZW50cnkpLCBGcmVxdWVudGVkQmxvY2sobG9v
cEV4aXQpKTsKIAogICAgICAgICAgICAgbG9vcFJlZW50cnktPmFwcGVuZE5ldzxVcHNpbG9uVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBuZXdCb2R5SW5kZXgsIGJvZHlJbmRleCk7CiAgICAgICAgICAg
ICBsb29wUmVlbnRyeS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIG5l
d0JvZHlTdW0sIGJvZHlTdW0pOwotICAgICAgICAgICAgbG9vcFJlZW50cnktPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sobG9vcEJv
ZHkpKTsKKyAgICAgICAgICAgIGxvb3BSZWVudHJ5LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhsb29wQm9keSkpOwogCiAgICAgICAg
ICAgICBVcHNpbG9uVmFsdWUqIGV4aXRTdW0gPSBsb29wRXhpdC0+YXBwZW5kTmV3PFVwc2lsb25W
YWx1ZT4ocHJvYywgT3JpZ2luKCksIG5ld0JvZHlTdW0pOwotICAgICAgICAgICAgbG9vcEV4aXQt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVk
QmxvY2soY29udGludWF0aW9uKSk7CisgICAgICAgICAgICBsb29wRXhpdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soY29udGludWF0
aW9uKSk7CiAKICAgICAgICAgICAgIFVwc2lsb25WYWx1ZSogc2tpcFN1bSA9IGxvb3BTa2lwLT5h
cHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgc3RhcnRTdW0pOwotICAgICAg
ICAgICAgbG9vcFNraXAtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdp
bigpLCBGcmVxdWVudGVkQmxvY2soY29udGludWF0aW9uKSk7CisgICAgICAgICAgICBsb29wU2tp
cC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVk
QmxvY2soY29udGludWF0aW9uKSk7CiAKICAgICAgICAgICAgIFZhbHVlKiBmaW5hbFN1bSA9IGNv
bnRpbnVhdGlvbi0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBQaGksIEludDMyLCBPcmlnaW4oKSk7
CiAgICAgICAgICAgICBleGl0U3VtLT5zZXRQaGkoZmluYWxTdW0pOwpAQCAtNzQ1NCw3ICs3NDYy
LDcgQEAgdm9pZCB0ZXN0Q29tcGxleCh1bnNpZ25lZCBudW1WYXJzLCB1bnNpZwogICAgICAgICB9
CiAgICAgfQogCi0gICAgY3VycmVudC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgdmFyc1swXSk7CisgICAgY3VycmVudC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhcnNbMF0pOwogCiAgICAgY29tcGlsZShwcm9j
KTsKIApAQCAtNzQ4MCw3ICs3NDg4LDcgQEAgdm9pZCB0ZXN0U2ltcGxlUGF0Y2hwb2ludCgpCiAg
ICAgICAgICAgICBDSEVDSyhwYXJhbXNbMl0uaXNHUFIoKSk7CiAgICAgICAgICAgICBhZGQzMihq
aXQsIHBhcmFtc1sxXS5ncHIoKSwgcGFyYW1zWzJdLmdwcigpLCBwYXJhbXNbMF0uZ3ByKCkpOwog
ICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CiAKICAgICBDSEVDSyhjb21w
aWxlQW5kUnVuPGludD4ocHJvYywgMSwgMikgPT0gMyk7CiB9CkBAIC03NTExLDcgKzc1MTksNyBA
QCB2b2lkIHRlc3RTaW1wbGVQYXRjaHBvaW50V2l0aG91dE91cHV0Q2xvCiAgICAgICAgIH0pOwog
CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBP
cmlnaW4oKSwgYXJnMSwgYXJnMik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGNv
bXBpbGVBbmRSdW48aW50Pihwcm9jLCAxLCAyKSA9PSAzKTsKIH0KQEAgLTc1NjAsNyArNzU2OCw3
IEBAIHZvaWQgdGVzdFNpbXBsZVBhdGNocG9pbnRXaXRoT3VwdXRDbG9iYmUKIAogICAgIFZhbHVl
KiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIHBh
dGNocG9pbnQsCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmln
aW4oKSwgYXJnMSwgYXJnMikpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhjb21w
aWxlQW5kUnVuPGludD4ocHJvYywgMSwgMikgPT0gNTgpOwogfQpAQCAtNzU5MSw3ICs3NTk5LDcg
QEAgdm9pZCB0ZXN0U2ltcGxlUGF0Y2hwb2ludFdpdGhvdXRPdXB1dENsbwogICAgICAgICB9KTsK
IAogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwg
T3JpZ2luKCksIGFyZzEsIGFyZzIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhj
b21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgMS41LCAyLjUpID09IDQpOwogfQpAQCAtNzYzMiw3
ICs3NjQwLDcgQEAgdm9pZCB0ZXN0U2ltcGxlUGF0Y2hwb2ludFdpdGhPdXB1dENsb2JiZQogCiAg
ICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmln
aW4oKSwgcGF0Y2hwb2ludCwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBB
ZGQsIE9yaWdpbigpLCBhcmcxLCBhcmcyKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENI
RUNLKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCAxLjUsIDIuNSkgPT0gNTkuNik7CiB9CkBA
IC03NjU3LDcgKzc2NjUsNyBAQCB2b2lkIHRlc3RQYXRjaHBvaW50V2l0aEVhcmx5Q2xvYmJlcigp
CiAgICAgICAgICAgICAgICAgYWRkMzIoaml0LCBwYXJhbXNbMV0uZ3ByKCksIHBhcmFtc1syXS5n
cHIoKSwgcGFyYW1zWzBdLmdwcigpKTsKICAgICAgICAgICAgIH0pOwogCi0gICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9p
bnQpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcGF0Y2hwb2ludCk7CiAKICAgICAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+
KHByb2MsIDEsIDIpID09IDMpOwogICAgIH07CkBAIC03NjkwLDcgKzc2OTgsNyBAQCB2b2lkIHRl
c3RQYXRjaHBvaW50Q2FsbEFyZygpCiAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRy
ZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBwYXJhbXNbMl0ub2Zmc2V0RnJvbUZQKCkp
LAogICAgICAgICAgICAgICAgIHBhcmFtc1swXS5ncHIoKSk7CiAgICAgICAgIH0pOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNo
cG9pbnQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBwYXRjaHBvaW50KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9j
LCAxLCAyKSA9PSAzKTsKIH0KQEAgLTc3MTMsNyArNzcyMSw3IEBAIHZvaWQgdGVzdFBhdGNocG9p
bnRGaXhlZFJlZ2lzdGVyKCkKICAgICAgICAgICAgIENIRUNLKHBhcmFtc1syXSA9PSBWYWx1ZVJl
cChHUFJJbmZvOjpyZWdUMSkpOwogICAgICAgICAgICAgYWRkMzIoaml0LCBHUFJJbmZvOjpyZWdU
MCwgR1BSSW5mbzo6cmVnVDEsIHBhcmFtc1swXS5ncHIoKSk7CiAgICAgICAgIH0pOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNo
cG9pbnQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBwYXRjaHBvaW50KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9j
LCAxLCAyKSA9PSAzKTsKIH0KQEAgLTc3MzcsNyArNzc0NSw3IEBAIHZvaWQgdGVzdFBhdGNocG9p
bnRBbnkoVmFsdWVSZXAgcmVwKQogICAgICAgICAgICAgQ0hFQ0socGFyYW1zWzJdLmlzR1BSKCkp
OwogICAgICAgICAgICAgYWRkMzIoaml0LCBwYXJhbXNbMV0uZ3ByKCksIHBhcmFtc1syXS5ncHIo
KSwgcGFyYW1zWzBdLmdwcigpKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9p
bnQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIDEsIDIpID09IDMpOwog
fQpAQCAtNzc3Myw3ICs3NzgxLDcgQEAgdm9pZCB0ZXN0UGF0Y2hwb2ludEdQU2NyYXRjaCgpCiAg
ICAgICAgICAgICBDSEVDSyghcGFyYW1zLnVuYXZhaWxhYmxlUmVnaXN0ZXJzKCkuZ2V0KHBhcmFt
cy5ncFNjcmF0Y2goMSkpKTsKICAgICAgICAgICAgIGFkZDMyKGppdCwgcGFyYW1zWzFdLmdwcigp
LCBwYXJhbXNbMl0uZ3ByKCksIHBhcmFtc1swXS5ncHIoKSk7CiAgICAgICAgIH0pOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNo
cG9pbnQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBwYXRjaHBvaW50KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9j
LCAxLCAyKSA9PSAzKTsKIH0KQEAgLTc4MDMsNyArNzgxMSw3IEBAIHZvaWQgdGVzdFBhdGNocG9p
bnRGUFNjcmF0Y2goKQogICAgICAgICAgICAgQ0hFQ0soIXBhcmFtcy51bmF2YWlsYWJsZVJlZ2lz
dGVycygpLmdldChwYXJhbXMuZnBTY3JhdGNoKDEpKSk7CiAgICAgICAgICAgICBhZGQzMihqaXQs
IHBhcmFtc1sxXS5ncHIoKSwgcGFyYW1zWzJdLmdwcigpLCBwYXJhbXNbMF0uZ3ByKCkpOwogICAg
ICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CiAKICAgICBDSEVDSyhjb21waWxl
QW5kUnVuPGludD4ocHJvYywgMSwgMikgPT0gMyk7CiB9CkBAIC03ODQ1LDcgKzc4NTMsNyBAQCB2
b2lkIHRlc3RQYXRjaHBvaW50TG90c09mTGF0ZUFueXMoKQogICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIH0KICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOwogCiAg
ICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MpID09ICh0aGluZ3Muc2l6ZSgpICogKHRo
aW5ncy5zaXplKCkgLSAxKSkgLyAyKTsKIH0KQEAgLTc4NzMsNyArNzg4MSw3IEBAIHZvaWQgdGVz
dFBhdGNocG9pbnRBbnlJbW0oVmFsdWVSZXAgcmVwKQogICAgICAgICAgICAgICAgIENDYWxsSGVs
cGVyczo6VHJ1c3RlZEltbTMyKHN0YXRpY19jYXN0PGludDMyX3Q+KHBhcmFtc1syXS52YWx1ZSgp
KSksCiAgICAgICAgICAgICAgICAgcGFyYW1zWzFdLmdwcigpLCBwYXJhbXNbMF0uZ3ByKCkpOwog
ICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CiAKICAgICBDSEVDSyhjb21w
aWxlQW5kUnVuPGludD4ocHJvYywgMSkgPT0gNDMpOwogfQpAQCAtNzg5OSw3ICs3OTA3LDcgQEAg
dm9pZCB0ZXN0UGF0Y2hwb2ludE1hbnlJbW1zKCkKICAgICAgICAgICAgIENIRUNLKHBhcmFtc1sy
XSA9PSBWYWx1ZVJlcDo6Y29uc3RhbnQoNDMwMDAwMDAwMDAwMDBsbCkpOwogICAgICAgICAgICAg
Q0hFQ0socGFyYW1zWzNdID09IFZhbHVlUmVwOjpjb25zdGFudChiaXR3aXNlX2Nhc3Q8aW50NjRf
dD4oNDIuNSkpKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgMCkpOwogCkBAIC03OTI1LDcgKzc5MzMsNyBAQCB2b2lkIHRlc3RQYXRjaHBv
aW50V2l0aFJlZ2lzdGVyUmVzdWx0KCkKICAgICAgICAgICAgIENIRUNLKHBhcmFtc1syXS5pc0dQ
UigpKTsKICAgICAgICAgICAgIGFkZDMyKGppdCwgcGFyYW1zWzFdLmdwcigpLCBwYXJhbXNbMl0u
Z3ByKCksIEdQUkluZm86Om5vbkFyZ0dQUjApOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cGF0Y2hwb2ludCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywgMSwgMikg
PT0gMyk7CiB9CkBAIC03OTUxLDcgKzc5NTksNyBAQCB2b2lkIHRlc3RQYXRjaHBvaW50V2l0aFN0
YWNrQXJndW1lbnRSZXN1CiAgICAgICAgICAgICBqaXQuYWRkMzIocGFyYW1zWzFdLmdwcigpLCBw
YXJhbXNbMl0uZ3ByKCksIGppdC5zY3JhdGNoUmVnaXN0ZXIoKSk7CiAgICAgICAgICAgICBqaXQu
c3RvcmUzMihqaXQuc2NyYXRjaFJlZ2lzdGVyKCksIENDYWxsSGVscGVyczo6QWRkcmVzcyhDQ2Fs
bEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCAwKSk7CiAgICAgICAgIH0pOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNo
cG9pbnQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBwYXRjaHBvaW50KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9j
LCAxLCAyKSA9PSAzKTsKIH0KQEAgLTc5ODAsNyArNzk4OCw3IEBAIHZvaWQgdGVzdFBhdGNocG9p
bnRXaXRoQW55UmVzdWx0KCkKICAgICAgICAgICAgIGppdC5jb252ZXJ0SW50MzJUb0RvdWJsZShH
UFJJbmZvOjpyZWdUMCwgRlBSSW5mbzo6ZnBSZWdUMCk7CiAgICAgICAgICAgICBqaXQuc3RvcmVE
b3VibGUoRlBSSW5mbzo6ZnBSZWdUMCwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OmNh
bGxGcmFtZVJlZ2lzdGVyLCBwYXJhbXNbMF0ub2Zmc2V0RnJvbUZQKCkpKTsKICAgICAgICAgfSk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcGF0Y2hwb2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxk
b3VibGU+KHByb2MsIDEsIDIpID09IDMpOwogfQpAQCAtODAwMiw3ICs4MDEwLDcgQEAgdm9pZCB0
ZXN0U2ltcGxlQ2hlY2soKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7
CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CkBA
IC04MDIxLDcgKzgwMjksNyBAQCB2b2lkIHRlc3RDaGVja0ZhbHNlKCkKICAgICAgICAgWyZdIChD
Q2FsbEhlbHBlcnMmLCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7CiAgICAgICAg
ICAgICBDSEVDSyghIlRoaXMgc2hvdWxkIG5vdCBoYXZlIGV4ZWN1dGVkIik7CiAgICAgICAgIH0p
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGF1dG8gY29k
ZSA9IGNvbXBpbGUocHJvYyk7CkBAIC04MDQ3LDcgKzgwNTUsNyBAQCB2b2lkIHRlc3RDaGVja1Ry
dWUoKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAg
ICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDApKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CkBAIC04MDc4LDcgKzgw
ODYsNyBAQCB2b2lkIHRlc3RDaGVja0xlc3NUaGFuKCkKICAgICAgICAgICAgIGppdC5lbWl0RnVu
Y3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBhdXRvIGNvZGUgPSBj
b21waWxlKHByb2MpOwpAQCAtODEyNCw3ICs4MTMyLDcgQEAgdm9pZCB0ZXN0Q2hlY2tNZWdhQ29t
Ym8oKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAg
ICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDApKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CkBAIC04MTc5LDcgKzgx
ODcsNyBAQCB2b2lkIHRlc3RDaGVja1RyaWNreU1lZ2FDb21ibygpCiAgICAgICAgICAgICBqaXQu
ZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAg
fSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgYXV0byBj
b2RlID0gY29tcGlsZShwcm9jKTsKQEAgLTgyNDMsNyArODI1MSw3IEBAIHZvaWQgdGVzdENoZWNr
VHdvTWVnYUNvbWJvcygpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsK
ICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKQEAg
LTgyOTMsNyArODMwMSw3IEBAIHZvaWQgdGVzdENoZWNrVHdvTm9uUmVkdW5kYW50TWVnYUNvbWJv
cygKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkOFMsIE9y
aWdpbigpLCBwdHIpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgNDIpKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBP
cmlnaW4oKSwgYnJhbmNoUHJlZGljYXRlLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNh
c2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKICAgICAKQEAgLTgzMDksNyArODMxNyw3
IEBAIHZvaWQgdGVzdENoZWNrVHdvTm9uUmVkdW5kYW50TWVnYUNvbWJvcygKICAgICAgICAgICAg
IGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAg
ICAgICB9KTsKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhl
bkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0
MykpOwogCiAgICAgQ2hlY2tWYWx1ZSogY2hlY2syID0gZWxzZUNhc2UtPmFwcGVuZE5ldzxDaGVj
a1ZhbHVlPihwcm9jLCBDaGVjaywgT3JpZ2luKCksIGNoZWNrUHJlZGljYXRlKTsKQEAgLTgzMjQs
NyArODMzMiw3IEBAIHZvaWQgdGVzdENoZWNrVHdvTm9uUmVkdW5kYW50TWVnYUNvbWJvcygKICAg
ICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJl
dCgpOwogICAgICAgICB9KTsKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCA0NSkpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKQEAgLTgzNzgs
NyArODM4Niw3IEBAIHZvaWQgdGVzdENoZWNrQWRkSW1tKCkKICAgICAgICAgICAgIGppdC5lbWl0
RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGNoZWNrQWRkKSk7CiAK
QEAgLTg0MTQsNyArODQyMiw3IEBAIHZvaWQgdGVzdENoZWNrQWRkSW1tQ29tbXV0ZSgpCiAgICAg
ICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQo
KTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigp
LCBjaGVja0FkZCkpOwogCkBAIC04NDQ5LDcgKzg0NTcsNyBAQCB2b2lkIHRlc3RDaGVja0FkZElt
bVNvbWVSZWdpc3RlcigpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsK
ICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVja0FkZCkpOwogCkBAIC04NDg2LDcgKzg0OTQsNyBA
QCB2b2lkIHRlc3RDaGVja0FkZCgpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9n
dWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVja0FkZCkpOwogCkBAIC04NTE5LDcgKzg1
MjcsNyBAQCB2b2lkIHRlc3RDaGVja0FkZDY0KCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rp
b25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGNoZWNrQWRkKSk7CiAKQEAgLTg1
NDIsNyArODU1MCw3IEBAIHZvaWQgdGVzdENoZWNrQWRkRm9sZChpbnQgYSwgaW50IGIpCiAgICAg
ICAgIFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikg
ewogICAgICAgICAgICAgQ0hFQ0soISJTaG91bGQgaGF2ZSBiZWVuIGZvbGRlZCIpOwogICAgICAg
ICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBjaGVja0FkZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIGNoZWNrQWRkKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUo
cHJvYyk7CiAKQEAgLTg1NjMsNyArODU3MSw3IEBAIHZvaWQgdGVzdENoZWNrQWRkRm9sZEZhaWwo
aW50IGEsIGludCBiKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAg
ICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrQWRkKTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tBZGQp
OwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAtODYwMiw3ICs4NjEwLDcg
QEAgdm9pZCB0ZXN0Q2hlY2tBZGRBcmd1bWVudEFsaWFzaW5nNjQoKQogICAgIENoZWNrVmFsdWUq
IGNoZWNrQWRkMyA9IHJvb3QtPmFwcGVuZE5ldzxDaGVja1ZhbHVlPihwcm9jLCBDaGVja0FkZCwg
T3JpZ2luKCksIGNoZWNrQWRkMSwgY2hlY2tBZGQyKTsKICAgICBjaGVja0FkZDMtPnNldEdlbmVy
YXRvcihbJl0gKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJh
bXMmKSB7IGppdC5vb3BzKCk7IH0pOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tBZGQzKTsKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tBZGQzKTsKIAogICAg
IENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgMSwgMiwgMykgPT0gOCk7CiB9CkBA
IC04NjQ1LDcgKzg2NTMsNyBAQCB2b2lkIHRlc3RDaGVja0FkZEFyZ3VtZW50QWxpYXNpbmczMigp
CiAgICAgQ2hlY2tWYWx1ZSogY2hlY2tBZGQzID0gcm9vdC0+YXBwZW5kTmV3PENoZWNrVmFsdWU+
KHByb2MsIENoZWNrQWRkLCBPcmlnaW4oKSwgY2hlY2tBZGQxLCBjaGVja0FkZDIpOwogICAgIGNo
ZWNrQWRkMy0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNr
bWFwR2VuZXJhdGlvblBhcmFtcyYpIHsgaml0Lm9vcHMoKTsgfSk7CiAKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja0FkZDMpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBj
aGVja0FkZDMpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCAxLCAy
LCAzKSA9PSA4KTsKIH0KQEAgLTg2NzAsNyArODY3OCw3IEBAIHZvaWQgdGVzdENoZWNrQWRkU2Vs
Zk92ZXJmbG93NjQoKQogICAgIG9wYXF1ZVVzZS0+YXBwZW5kKENvbnN0cmFpbmVkVmFsdWUoYXJn
LCBWYWx1ZVJlcDo6U29tZVJlZ2lzdGVyKSk7CiAgICAgb3BhcXVlVXNlLT5zZXRHZW5lcmF0b3Io
WyZdIChDQ2FsbEhlbHBlcnMmLCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7IH0p
OwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgY2hlY2tBZGQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCBjaGVja0FkZCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHBy
b2MpOwogCkBAIC04NzAxLDcgKzg3MDksNyBAQCB2b2lkIHRlc3RDaGVja0FkZFNlbGZPdmVyZmxv
dzMyKCkKICAgICBvcGFxdWVVc2UtPmFwcGVuZChDb25zdHJhaW5lZFZhbHVlKGFyZywgVmFsdWVS
ZXA6OlNvbWVSZWdpc3RlcikpOwogICAgIG9wYXF1ZVVzZS0+c2V0R2VuZXJhdG9yKFsmXSAoQ0Nh
bGxIZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeyB9KTsKIAotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNo
ZWNrQWRkKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgY2hlY2tBZGQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApA
QCAtODczNCw3ICs4NzQyLDcgQEAgdm9pZCB0ZXN0Q2hlY2tTdWJJbW0oKQogICAgICAgICAgICAg
aml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAg
ICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tT
dWIpKTsKIApAQCAtODc3Niw3ICs4Nzg0LDcgQEAgdm9pZCB0ZXN0Q2hlY2tTdWJCYWRJbW0oKQog
ICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQu
cmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmln
aW4oKSwgY2hlY2tTdWIpKTsKIApAQCAtODgxMyw3ICs4ODIxLDcgQEAgdm9pZCB0ZXN0Q2hlY2tT
dWIoKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAg
ICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9E
LCBPcmlnaW4oKSwgY2hlY2tTdWIpKTsKIApAQCAtODg1MSw3ICs4ODU5LDcgQEAgdm9pZCB0ZXN0
Q2hlY2tTdWI2NCgpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAg
ICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIElUb0QsIE9yaWdpbigpLCBjaGVja1N1YikpOwogCkBAIC04ODc0LDcgKzg4ODIsNyBAQCB2
b2lkIHRlc3RDaGVja1N1YkZvbGQoaW50IGEsIGludCBiKQogICAgICAgICBbJl0gKENDYWxsSGVs
cGVycyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsKICAgICAgICAgICAgIENI
RUNLKCEiU2hvdWxkIGhhdmUgYmVlbiBmb2xkZWQiKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tTdWIp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBjaGVja1N1Yik7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC04ODk1
LDcgKzg5MDMsNyBAQCB2b2lkIHRlc3RDaGVja1N1YkZvbGRGYWlsKGludCBhLCBpbnQgYikKICAg
ICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJl
dCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja1N1Yik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrU3ViKTsKIAogICAgIGF1dG8gY29k
ZSA9IGNvbXBpbGUocHJvYyk7CiAKQEAgLTg5MjIsNyArODkzMCw3IEBAIHZvaWQgdGVzdENoZWNr
TmVnKCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAg
ICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRv
RCwgT3JpZ2luKCksIGNoZWNrTmVnKSk7CiAKQEAgLTg5NTIsNyArODk2MCw3IEBAIHZvaWQgdGVz
dENoZWNrTmVnNjQoKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAg
ICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tOZWcpKTsKIApAQCAtODk4OSw3ICs4OTk3LDcgQEAg
dm9pZCB0ZXN0Q2hlY2tNdWwoKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3Vl
KCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tNdWwpKTsKIApAQCAtOTAzMCw3ICs5MDM4
LDcgQEAgdm9pZCB0ZXN0Q2hlY2tNdWxNZW1vcnkoKQogICAgICAgICAgICAgaml0LmVtaXRGdW5j
dGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tNdWwpKTsKIApAQCAt
OTA3Nyw3ICs5MDg1LDcgQEAgdm9pZCB0ZXN0Q2hlY2tNdWwyKCkKICAgICAgICAgICAgIGppdC5l
bWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGNoZWNrTXVsKSk7
CiAKQEAgLTkxMTAsNyArOTExOCw3IEBAIHZvaWQgdGVzdENoZWNrTXVsNjQoKQogICAgICAgICAg
ICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAg
ICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hl
Y2tNdWwpKTsKIApAQCAtOTEzMyw3ICs5MTQxLDcgQEAgdm9pZCB0ZXN0Q2hlY2tNdWxGb2xkKGlu
dCBhLCBpbnQgYikKICAgICAgICAgWyZdIChDQ2FsbEhlbHBlcnMmLCBjb25zdCBTdGFja21hcEdl
bmVyYXRpb25QYXJhbXMmKSB7CiAgICAgICAgICAgICBDSEVDSyghIlNob3VsZCBoYXZlIGJlZW4g
Zm9sZGVkIik7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrTXVsKTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tNdWwpOwogCiAgICAgYXV0
byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAtOTE1NCw3ICs5MTYyLDcgQEAgdm9pZCB0ZXN0
Q2hlY2tNdWxGb2xkRmFpbChpbnQgYSwgaW50IGIpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0
aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hl
Y2tNdWwpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBjaGVja011bCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBA
IC05MTkzLDcgKzkyMDEsNyBAQCB2b2lkIHRlc3RDaGVja011bEFyZ3VtZW50QWxpYXNpbmc2NCgp
CiAgICAgQ2hlY2tWYWx1ZSogY2hlY2tNdWwzID0gcm9vdC0+YXBwZW5kTmV3PENoZWNrVmFsdWU+
KHByb2MsIENoZWNrTXVsLCBPcmlnaW4oKSwgY2hlY2tNdWwxLCBjaGVja011bDIpOwogICAgIGNo
ZWNrTXVsMy0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNr
bWFwR2VuZXJhdGlvblBhcmFtcyYpIHsgaml0Lm9vcHMoKTsgfSk7CiAKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja011bDMpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBj
aGVja011bDMpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAyLCAz
LCA0KSA9PSA3Mik7CiB9CkBAIC05MjM2LDcgKzkyNDQsNyBAQCB2b2lkIHRlc3RDaGVja011bEFy
Z3VtZW50QWxpYXNpbmczMigpCiAgICAgQ2hlY2tWYWx1ZSogY2hlY2tNdWwzID0gcm9vdC0+YXBw
ZW5kTmV3PENoZWNrVmFsdWU+KHByb2MsIENoZWNrTXVsLCBPcmlnaW4oKSwgY2hlY2tNdWwxLCBj
aGVja011bDIpOwogICAgIGNoZWNrTXVsMy0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJz
JiBqaXQsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsgaml0Lm9vcHMoKTsgfSk7
CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBjaGVja011bDMpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCBjaGVja011bDMpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxp
bnQzMl90Pihwcm9jLCAyLCAzLCA0KSA9PSA3Mik7CiB9CkBAIC05MjY4LDcgKzkyNzYsNyBAQCB2
b2lkIHRlc3RDaGVja011bDY0U1NocigpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBp
bG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVja011bCkpOwogCkBAIC05Mjk0LDcg
KzkzMDIsNyBAQCB2b2lkIGdlbmVyaWNUZXN0Q29tcGFyZSgKICAgICAgICAgVmFsdWUqIHJpZ2h0
VmFsdWUgPSByaWdodEZ1bmN0b3Iocm9vdCwgcHJvYyk7CiAgICAgICAgIFZhbHVlKiBjb21wYXJp
c29uUmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBvcGNvZGUsIE9yaWdpbigp
LCBsZWZ0VmFsdWUsIHJpZ2h0VmFsdWUpOwogICAgICAgICAKLSAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIE5vdEVxdWFsLCBPcmlnaW4o
KSwKQEAgLTkzMTQsNyArOTMyMiw3IEBAIHZvaWQgZ2VuZXJpY1Rlc3RDb21wYXJlKAogICAgICAg
ICBWYWx1ZSogbGVmdFZhbHVlID0gbGVmdEZ1bmN0b3Iocm9vdCwgcHJvYyk7CiAgICAgICAgIFZh
bHVlKiByaWdodFZhbHVlID0gcmlnaHRGdW5jdG9yKHJvb3QsIHByb2MpOwogCi0gICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBvcGNvZGUsIE9yaWdpbigpLCBsZWZ0VmFs
dWUsIHJpZ2h0VmFsdWUpLAogICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwg
RnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CkBAIC05MzI4LDkgKzkzMzYsOSBAQCB2b2lkIGdl
bmVyaWNUZXN0Q29tcGFyZSgKICAgICAgICAgICAgICAgICBDSEVDSyhwYXJhbXNbMF0uaXNHUFIo
KSk7CiAgICAgICAgICAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIo
MSksIHBhcmFtc1swXS5ncHIoKSk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgdGhlbkNhc2Ut
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9p
bnQpOworICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHBhdGNocG9pbnQpOwogCi0gICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICBlbHNlQ2Fz
ZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtOTU2
OSw3ICs5NTc3LDcgQEAgdm9pZCB0ZXN0RXF1YWxEb3VibGUoZG91YmxlIGxlZnQsIGRvdWJsZQog
ewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgRXF1YWwsIE9y
aWdpbigpLApAQCAtOTU4OCw3ICs5NTk2LDcgQEAgdm9pZCB0ZXN0Q2FsbFNpbXBsZShpbnQgYSwg
aW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDQ2FsbFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIEludDMyLCBPcmlnaW4oKSwKQEAgLTk2MDYsMTYgKzk2MTQsMTYgQEAgdm9pZCB0ZXN0Q2Fs
bFJhcmUoaW50IGEsIGludCBiKQogICAgIEJhc2ljQmxvY2sqIGNvbW1vbiA9IHByb2MuYWRkQmxv
Y2soKTsKICAgICBCYXNpY0Jsb2NrKiByYXJlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhyYXJlLCBGcmVxdWVuY3lDbGFzczo6UmFy
ZSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhjb21tb24pKTsKIAotICAgIGNvbW1vbi0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgY29tbW9uLT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNvbW1vbi0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKICAgICAKLSAgICByYXJlLT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByYXJlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJhcmUtPmFwcGVuZE5ldzxDQ2FsbFZh
bHVlPigKICAgICAgICAgICAgIHByb2MsIEludDMyLCBPcmlnaW4oKSwKQEAgLTk2MzMsMTYgKzk2
NDEsMTYgQEAgdm9pZCB0ZXN0Q2FsbFJhcmVMaXZlKGludCBhLCBpbnQgYiwgaW50IAogICAgIEJh
c2ljQmxvY2sqIGNvbW1vbiA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiByYXJl
ID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gs
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCksCiAgICAgICAgIEZyZXF1ZW50ZWRC
bG9jayhyYXJlLCBGcmVxdWVuY3lDbGFzczo6UmFyZSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9j
ayhjb21tb24pKTsKIAotICAgIGNvbW1vbi0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
Y29tbW9uLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIGNvbW1vbi0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDAp
KTsKICAgICAKLSAgICByYXJlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByYXJlLT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJhcmUtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9y
aWdpbigpLApAQCAtOTY2Miw3ICs5NjcwLDcgQEAgdm9pZCB0ZXN0Q2FsbFNpbXBsZVB1cmUoaW50
IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q0NhbGxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBJbnQzMiwgT3JpZ2luKCksIEVmZmVjdHM6Om5vbmUoKSwKQEAgLTk2OTIsNyArOTcw
MCw3IEBAIHZvaWQgdGVzdENhbGxGdW5jdGlvbldpdGhIZWxsYUFyZ3VtZW50cygKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiaXR3aXNlX2Nh
c3Q8dm9pZCo+KGZ1bmN0aW9uV2l0aEhlbGxhQXJndW1lbnRzKSkpOwogICAgIGNhbGwtPmNoaWxk
cmVuKCkuYXBwZW5kVmVjdG9yKGFyZ3MpOwogICAgIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNhbGwpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYWxsKTsKIAogICAgIENI
RUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jKSA9PSBmdW5jdGlvbldpdGhIZWxsYUFyZ3VtZW50
cygxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwg
MTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYpKTsKIH0KQEAgLTk3MDEsNyAr
OTcwOSw3IEBAIHZvaWQgdGVzdFJldHVybkRvdWJsZShkb3VibGUgdmFsdWUpCiB7CiAgICAgUHJv
Y2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpKTsKIApA
QCAtOTcxMiw3ICs5NzIwLDcgQEAgdm9pZCB0ZXN0UmV0dXJuRmxvYXQoZmxvYXQgdmFsdWUpCiB7
CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1
ZSkpOwogCkBAIC05NzI4LDcgKzk3MzYsNyBAQCB2b2lkIHRlc3RDYWxsU2ltcGxlRG91YmxlKGRv
dWJsZSBhLCBkb3ViCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDQ2FsbFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIERvdWJsZSwgT3JpZ2luKCksCkBAIC05NzU0LDcgKzk3NjIsNyBAQCB2b2lkIHRl
c3RDYWxsU2ltcGxlRmxvYXQoZmxvYXQgYSwgZmxvYXQgCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIx
KSk7CiAgICAgVmFsdWUqIGZsb2F0VmFsdWUxID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MWludDMyKTsKICAgICBWYWx1ZSogZmxv
YXRWYWx1ZTIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmln
aW4oKSwgYXJndW1lbnQyaW50MzIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENDYWxsVmFsdWU+KAogICAgICAg
ICAgICAgcHJvYywgRmxvYXQsIE9yaWdpbigpLApAQCAtOTc4NCw3ICs5NzkyLDcgQEAgdm9pZCB0
ZXN0Q2FsbEZ1bmN0aW9uV2l0aEhlbGxhRG91YmxlQXJndQogICAgICAgICByb290LT5hcHBlbmRO
ZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGJpdHdpc2VfY2FzdDx2b2lkKj4oZnVu
Y3Rpb25XaXRoSGVsbGFEb3VibGVBcmd1bWVudHMpKSk7CiAgICAgY2FsbC0+Y2hpbGRyZW4oKS5h
cHBlbmRWZWN0b3IoYXJncyk7CiAgICAgCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FsbCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNhbGwpOwogCiAgICAgQ0hFQ0soY29t
cGlsZUFuZFJ1bjxkb3VibGU+KHByb2MpID09IGZ1bmN0aW9uV2l0aEhlbGxhRG91YmxlQXJndW1l
bnRzKDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2
LCAxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjQsIDI1LCAyNikpOwogfQpAQCAtOTgwOCw3
ICs5ODE2LDcgQEAgdm9pZCB0ZXN0Q2FsbEZ1bmN0aW9uV2l0aEhlbGxhRmxvYXRBcmd1bQogICAg
ICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGJpdHdp
c2VfY2FzdDx2b2lkKj4oZnVuY3Rpb25XaXRoSGVsbGFGbG9hdEFyZ3VtZW50cykpKTsKICAgICBj
YWxsLT5jaGlsZHJlbigpLmFwcGVuZFZlY3RvcihhcmdzKTsKICAgICAKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYWxsKTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FsbCk7
CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jKSA9PSBmdW5jdGlvbldpdGhI
ZWxsYUZsb2F0QXJndW1lbnRzKDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIs
IDEzLCAxNCwgMTUsIDE2LCAxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjQsIDI1LCAyNikp
OwogfQpAQCAtOTgyMCw3ICs5ODI4LDcgQEAgdm9pZCB0ZXN0Q2hpbGxEaXYoaW50IG51bSwgaW50
IGRlbiwgaW50IAogICAgICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICAgICAgCi0gICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBDaGlsbERpdiwgT3JpZ2luKCks
CkBAIC05ODM5LDcgKzk4NDcsNyBAQCB2b2lkIHRlc3RDaGlsbERpdihpbnQgbnVtLCBpbnQgZGVu
LCBpbnQgCiAgICAgICAgIFByb2NlZHVyZSBwcm9jOwogICAgICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwogICAgICAgICAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIENoaWxsRGl2LCBPcmlnaW4oKSwKQEAg
LTk4NTUsNyArOTg2Myw3IEBAIHZvaWQgdGVzdENoaWxsRGl2VHdpY2UoaW50IG51bTEsIGludCBk
ZW4KICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRkLCBP
cmlnaW4oKSwKQEAgLTk4ODksNyArOTg5Nyw3IEBAIHZvaWQgdGVzdENoaWxsRGl2NjQoaW50NjRf
dCBudW0sIGludDY0X3QKICAgICAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgICAgIAotICAgICAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgQ2hpbGxEaXYsIE9yaWdp
bigpLApAQCAtOTkwNCw3ICs5OTEyLDcgQEAgdm9pZCB0ZXN0Q2hpbGxEaXY2NChpbnQ2NF90IG51
bSwgaW50NjRfdAogICAgICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICAgICAgCi0gICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBDaGlsbERpdiwgT3JpZ2luKCks
CkBAIC05OTI1LDcgKzk5MzMsNyBAQCB2b2lkIHRlc3RNb2RBcmcoaW50NjRfdCB2YWx1ZSkKIAog
ICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBWYWx1ZSogcmVzdWx0
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigpLCBhcmd1bWVudCwg
YXJndW1lbnQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1
bjxpbnQ2NF90Pihwcm9jLCB2YWx1ZSkpOwogfQpAQCAtOTk0Myw3ICs5OTUxLDcgQEAgdm9pZCB0
ZXN0TW9kQXJncyhpbnQ2NF90IG51bWVyYXRvciwgaW50NgogICAgIFZhbHVlKiBhcmd1bWVudDEg
PSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50MiA9IHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIx
KTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNb2Qs
IE9yaWdpbigpLCBhcmd1bWVudDEsIGFyZ3VtZW50Mik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAog
ICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgbnVtZXJhdG9yLCBkZW5vbWlu
YXRvcikgPT0gbnVtZXJhdG9yICUgZGVub21pbmF0b3IpOwogfQpAQCAtOTk2MSw3ICs5OTY5LDcg
QEAgdm9pZCB0ZXN0TW9kSW1tcyhpbnQ2NF90IG51bWVyYXRvciwgaW50NgogICAgIFZhbHVlKiBh
cmd1bWVudDEgPSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
bnVtZXJhdG9yKTsKICAgICBWYWx1ZSogYXJndW1lbnQyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0
NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGRlbm9taW5hdG9yKTsKICAgICBWYWx1ZSogcmVzdWx0
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigpLCBhcmd1bWVudDEs
IGFyZ3VtZW50Mik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRS
dW48aW50NjRfdD4ocHJvYywgbnVtZXJhdG9yLCBkZW5vbWluYXRvcikgPT0gbnVtZXJhdG9yICUg
ZGVub21pbmF0b3IpOwogfQpAQCAtOTk3Nyw3ICs5OTg1LDcgQEAgdm9pZCB0ZXN0TW9kQXJnMzIo
aW50MzJfdCB2YWx1ZSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAg
ICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdp
bigpLCBhcmd1bWVudCwgYXJndW1lbnQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVD
SyghY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCB2YWx1ZSkpOwogfQpAQCAtOTk5Nyw3ICsx
MDAwNSw3IEBAIHZvaWQgdGVzdE1vZEFyZ3MzMihpbnQzMl90IG51bWVyYXRvciwgaW4KICAgICBW
YWx1ZSogYXJndW1lbnQyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgYXJndW1lbnQxLCBhcmd1
bWVudDIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGlu
dDMyX3Q+KHByb2MsIG51bWVyYXRvciwgZGVub21pbmF0b3IpID09IG51bWVyYXRvciAlIGRlbm9t
aW5hdG9yKTsKIH0KQEAgLTEwMDE1LDcgKzEwMDIzLDcgQEAgdm9pZCB0ZXN0TW9kSW1tczMyKGlu
dDMyX3QgbnVtZXJhdG9yLCBpbgogICAgIFZhbHVlKiBhcmd1bWVudDEgPSByb290LT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgbnVtZXJhdG9yKTsKICAgICBWYWx1ZSog
YXJndW1lbnQyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IGRlbm9taW5hdG9yKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBNb2QsIE9yaWdpbigpLCBhcmd1bWVudDEsIGFyZ3VtZW50Mik7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgbnVtZXJh
dG9yLCBkZW5vbWluYXRvcikgPT0gbnVtZXJhdG9yICUgZGVub21pbmF0b3IpOwogfQpAQCAtMTAw
MjcsNyArMTAwMzUsNyBAQCB2b2lkIHRlc3RDaGlsbE1vZEFyZyhpbnQ2NF90IHZhbHVlKQogCiAg
ICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFZhbHVlKiByZXN1bHQg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENoaWxsTW9kLCBPcmlnaW4oKSwgYXJndW1l
bnQsIGFyZ3VtZW50KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soIWNvbXBpbGVB
bmRSdW48aW50NjRfdD4ocHJvYywgdmFsdWUpKTsKIH0KQEAgLTEwMDQwLDcgKzEwMDQ4LDcgQEAg
dm9pZCB0ZXN0Q2hpbGxNb2RBcmdzKGludDY0X3QgbnVtZXJhdG9yLAogICAgIFZhbHVlKiBhcmd1
bWVudDEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50MiA9IHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIxKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBDaGlsbE1vZCwgT3JpZ2luKCksIGFyZ3VtZW50MSwgYXJndW1lbnQyKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCBudW1lcmF0
b3IsIGRlbm9taW5hdG9yKSA9PSBjaGlsbE1vZChudW1lcmF0b3IsIGRlbm9taW5hdG9yKSk7CiB9
CkBAIC0xMDA1Myw3ICsxMDA2MSw3IEBAIHZvaWQgdGVzdENoaWxsTW9kSW1tcyhpbnQ2NF90IG51
bWVyYXRvciwKICAgICBWYWx1ZSogYXJndW1lbnQxID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIG51bWVyYXRvcik7CiAgICAgVmFsdWUqIGFyZ3VtZW50MiA9
IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBkZW5vbWluYXRv
cik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2hp
bGxNb2QsIE9yaWdpbigpLCBhcmd1bWVudDEsIGFyZ3VtZW50Mik7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgbnVtZXJhdG9yLCBk
ZW5vbWluYXRvcikgPT0gY2hpbGxNb2QobnVtZXJhdG9yLCBkZW5vbWluYXRvcikpOwogfQpAQCAt
MTAwNjYsNyArMTAwNzQsNyBAQCB2b2lkIHRlc3RDaGlsbE1vZEFyZzMyKGludDMyX3QgdmFsdWUp
CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVu
YywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgVmFsdWUqIHJlc3Vs
dCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2hpbGxNb2QsIE9yaWdpbigpLCBhcmd1
bWVudCwgYXJndW1lbnQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyghY29tcGls
ZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCB2YWx1ZSkpOwogfQpAQCAtMTAwODEsNyArMTAwODksNyBA
QCB2b2lkIHRlc3RDaGlsbE1vZEFyZ3MzMihpbnQzMl90IG51bWVyYXRvCiAgICAgVmFsdWUqIGFy
Z3VtZW50MiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMSkpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIENoaWxsTW9kLCBPcmlnaW4oKSwgYXJndW1lbnQxLCBhcmd1bWVu
dDIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDMy
X3Q+KHByb2MsIG51bWVyYXRvciwgZGVub21pbmF0b3IpID09IGNoaWxsTW9kKG51bWVyYXRvciwg
ZGVub21pbmF0b3IpKTsKIH0KQEAgLTEwMDk0LDcgKzEwMTAyLDcgQEAgdm9pZCB0ZXN0Q2hpbGxN
b2RJbW1zMzIoaW50MzJfdCBudW1lcmF0bwogICAgIFZhbHVlKiBhcmd1bWVudDEgPSByb290LT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgbnVtZXJhdG9yKTsKICAgICBW
YWx1ZSogYXJndW1lbnQyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIGRlbm9taW5hdG9yKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBDaGlsbE1vZCwgT3JpZ2luKCksIGFyZ3VtZW50MSwgYXJndW1lbnQyKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihw
cm9jLCBudW1lcmF0b3IsIGRlbm9taW5hdG9yKSA9PSBjaGlsbE1vZChudW1lcmF0b3IsIGRlbm9t
aW5hdG9yKSk7CiB9CkBAIC0xMDEwNSwxOCArMTAxMTMsMTcgQEAgdm9pZCB0ZXN0U3dpdGNoKHVu
c2lnbmVkIGRlZ3JlZSwgdW5zaWduZQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7CiAKICAgICBCYXNpY0Jsb2NrKiB0ZXJtaW5hdGUgPSBwcm9jLmFkZEJsb2NrKCk7Ci0g
ICAgdGVybWluYXRlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0ZXJtaW5hdGUtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgdGVybWluYXRlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
MCkpOwogCiAgICAgU3dpdGNoVmFsdWUqIHN3aXRjaFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFN3
aXRjaFZhbHVlPigKLSAgICAgICAgcHJvYywgT3JpZ2luKCksCi0gICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIwKSwKLSAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRlcm1pbmF0ZSkpOworICAgICAgICBwcm9j
LCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKKyAgICBzd2l0Y2hWYWx1ZS0+c2V0RmFsbFRo
cm91Z2goRnJlcXVlbnRlZEJsb2NrKHRlcm1pbmF0ZSkpOwogCiAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IGRlZ3JlZTsgKytpKSB7CiAgICAgICAgIEJhc2ljQmxvY2sqIG5ld0Jsb2NrID0g
cHJvYy5hZGRCbG9jaygpOwotICAgICAgICBuZXdCbG9jay0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgICAgIG5ld0Jsb2NrLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgbmV3QmxvY2stPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgKGkg
JiAxKSA/IEdQUkluZm86OmFyZ3VtZW50R1BSMiA6IEdQUkluZm86OmFyZ3VtZW50R1BSMSkpOwpA
QCAtMTAxNDcsMTkgKzEwMTU0LDE4IEBAIHZvaWQgdGVzdFN3aXRjaENoaWxsRGl2KHVuc2lnbmVk
IGRlZ3JlZSwKICAgICBWYWx1ZSogcmlnaHQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMik7CiAKICAgICBCYXNp
Y0Jsb2NrKiB0ZXJtaW5hdGUgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgdGVybWluYXRlLT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0ZXJtaW5hdGUtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGVybWluYXRlLT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgU3dpdGNo
VmFsdWUqIHN3aXRjaFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFN3aXRjaFZhbHVlPigKLSAgICAg
ICAgcHJvYywgT3JpZ2luKCksCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwKLSAgICAgICAgRnJl
cXVlbnRlZEJsb2NrKHRlcm1pbmF0ZSkpOworICAgICAgICBwcm9jLCBPcmlnaW4oKSwgcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjApKTsKKyAgICBzd2l0Y2hWYWx1ZS0+c2V0RmFsbFRocm91Z2goRnJlcXVlbnRlZEJs
b2NrKHRlcm1pbmF0ZSkpOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGRlZ3JlZTsg
KytpKSB7CiAgICAgICAgIEJhc2ljQmxvY2sqIG5ld0Jsb2NrID0gcHJvYy5hZGRCbG9jaygpOwog
Ci0gICAgICAgIG5ld0Jsb2NrLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgbmV3
QmxvY2stPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgICAgICBuZXdCbG9jay0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgICAgICBwcm9jLCBDaGlsbERpdiwgT3JpZ2luKCksIChpICYgMSkgPyByaWdodCA6IGxl
ZnQsIChpICYgMSkgPyBsZWZ0IDogcmlnaHQpKTsKQEAgLTEwMTcwLDcgKzEwMTc2LDEwIEBAIHZv
aWQgdGVzdFN3aXRjaENoaWxsRGl2KHVuc2lnbmVkIGRlZ3JlZSwKICAgICBhdXRvIGNvZGUgPSBj
b21waWxlKHByb2MpOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGRlZ3JlZTsgKytp
KSB7Ci0gICAgICAgIENIRUNLKGludm9rZTxpbnQzMl90PigqY29kZSwgaSAqIGdhcCwgNDIsIDEx
KSA9PSAoKGkgJiAxKSA/IDExLzQyIDogNDIvMTEpKTsKKyAgICAgICAgZGF0YUxvZygiaSA9ICIs
IGksICJcbiIpOworICAgICAgICBpbnQzMl90IHJlc3VsdCA9IGludm9rZTxpbnQzMl90PigqY29k
ZSwgaSAqIGdhcCwgNDIsIDExKTsKKyAgICAgICAgZGF0YUxvZygicmVzdWx0ID0gIiwgcmVzdWx0
LCAiXG4iKTsKKyAgICAgICAgQ0hFQ0socmVzdWx0ID09ICgoaSAmIDEpID8gMTEvNDIgOiA0Mi8x
MSkpOwogICAgICAgICBpZiAoZ2FwID4gMSkgewogICAgICAgICAgICAgQ0hFQ0soIWludm9rZTxp
bnQzMl90PigqY29kZSwgaSAqIGdhcCArIDEsIDQyLCAxMSkpOwogICAgICAgICAgICAgQ0hFQ0so
IWludm9rZTxpbnQzMl90PigqY29kZSwgaSAqIGdhcCAtIDEsIDQyLCAxMSkpOwpAQCAtMTAxODgs
MTcgKzEwMTk3LDE2IEBAIHZvaWQgdGVzdFN3aXRjaFRhcmdldHRpbmdTYW1lQmxvY2soKQogICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAKICAgICBCYXNpY0Jsb2NrKiB0
ZXJtaW5hdGUgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgdGVybWluYXRlLT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICB0ZXJtaW5hdGUtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGVybWluYXRlLT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNSkpOwogCiAgICAgU3dpdGNoVmFsdWUqIHN3
aXRjaFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFN3aXRjaFZhbHVlPigKLSAgICAgICAgcHJvYywg
T3JpZ2luKCksCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwKLSAgICAgICAgRnJlcXVlbnRlZEJs
b2NrKHRlcm1pbmF0ZSkpOworICAgICAgICBwcm9jLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjAp
KTsKKyAgICBzd2l0Y2hWYWx1ZS0+c2V0RmFsbFRocm91Z2goRnJlcXVlbnRlZEJsb2NrKHRlcm1p
bmF0ZSkpOwogCiAgICAgQmFzaWNCbG9jayogb3RoZXJUYXJnZXQgPSBwcm9jLmFkZEJsb2NrKCk7
Ci0gICAgb3RoZXJUYXJnZXQtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIG90aGVyVGFy
Z2V0LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIG90aGVyVGFyZ2V0LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgNDIpKTsKICAgICBzd2l0Y2hWYWx1ZS0+YXBwZW5kQ2FzZShTd2l0Y2hDYXNlKDMs
IEZyZXF1ZW50ZWRCbG9jayhvdGhlclRhcmdldCkpKTsKQEAgLTEwMjE4LDE4ICsxMDIyNiwxNiBA
QCB2b2lkIHRlc3RTd2l0Y2hUYXJnZXR0aW5nU2FtZUJsb2NrRm9sZFBhCiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKIAogICAgIEJhc2ljQmxvY2sqIHRlcm1pbmF0ZSA9
IHByb2MuYWRkQmxvY2soKTsKLSAgICB0ZXJtaW5hdGUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHRlcm1pbmF0ZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0ZXJtaW5hdGUtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwogCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjApOwotICAgIFN3aXRjaFZhbHVlKiBzd2l0Y2hWYWx1ZSA9IHJvb3QtPmFwcGVuZE5l
dzxTd2l0Y2hWYWx1ZT4oCi0gICAgICAgIHByb2MsIE9yaWdpbigpLAotICAgICAgICBhcmd1bWVu
dCwKLSAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRlcm1pbmF0ZSkpOworICAgIFN3aXRjaFZhbHVl
KiBzd2l0Y2hWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxTd2l0Y2hWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIGFyZ3VtZW50KTsKKyAgICBzd2l0Y2hWYWx1ZS0+c2V0RmFsbFRocm91Z2goRnJlcXVlbnRl
ZEJsb2NrKHRlcm1pbmF0ZSkpOwogCiAgICAgQmFzaWNCbG9jayogb3RoZXJUYXJnZXQgPSBwcm9j
LmFkZEJsb2NrKCk7Ci0gICAgb3RoZXJUYXJnZXQtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIG90aGVyVGFyZ2V0LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBzd2l0Y2hWYWx1ZS0+YXBwZW5kQ2FzZShT
d2l0Y2hDYXNlKDMsIEZyZXF1ZW50ZWRCbG9jayhvdGhlclRhcmdldCkpKTsKICAgICBzd2l0Y2hW
YWx1ZS0+YXBwZW5kQ2FzZShTd2l0Y2hDYXNlKDEzLCBGcmVxdWVudGVkQmxvY2sob3RoZXJUYXJn
ZXQpKSk7CkBAIC0xMDI0Niw3ICsxMDI1Miw3IEBAIHZvaWQgdGVzdFRydW5jRm9sZChpbnQ2NF90
IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
VHJ1bmMsIE9yaWdpbigpLApAQCAtMTAyNTksNyArMTAyNjUsNyBAQCB2b2lkIHRlc3RaRXh0MzIo
aW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIFpFeHQzMiwgT3JpZ2luKCksCkBAIC0xMDI3NCw3ICsxMDI4MCw3IEBAIHZvaWQgdGVz
dFpFeHQzMkZvbGQoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIFpFeHQzMiwgT3JpZ2luKCksCkBAIC0xMDI4Nyw3ICsxMDI5Myw3
IEBAIHZvaWQgdGVzdFNFeHQzMihpbnQzMl90IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9j
OwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU0V4dDMyLCBPcmlnaW4oKSwKQEAgLTEwMzAyLDcg
KzEwMzA4LDcgQEAgdm9pZCB0ZXN0U0V4dDMyRm9sZChpbnQzMl90IHZhbHVlKQogewogICAgIFBy
b2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU0V4dDMyLCBPcmlnaW4oKSwK
QEAgLTEwMzE1LDcgKzEwMzIxLDcgQEAgdm9pZCB0ZXN0VHJ1bmNaRXh0MzIoaW50MzJfdCB2YWx1
ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFRydW5j
LCBPcmlnaW4oKSwKQEAgLTEwMzMyLDcgKzEwMzM4LDcgQEAgdm9pZCB0ZXN0VHJ1bmNTRXh0MzIo
aW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIFRydW5jLCBPcmlnaW4oKSwKQEAgLTEwMzQ5LDcgKzEwMzU1LDcgQEAgdm9pZCB0ZXN0
U0V4dDgoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIFNFeHQ4LCBPcmlnaW4oKSwKQEAgLTEwMzY0LDcgKzEwMzcwLDcgQEAgdm9p
ZCB0ZXN0U0V4dDhGb2xkKGludDMyX3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBTRXh0OCwgT3JpZ2luKCksCkBAIC0xMDM3Nyw3ICsxMDM4
Myw3IEBAIHZvaWQgdGVzdFNFeHQ4U0V4dDgoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1
cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNFeHQ4LCBPcmlnaW4oKSwKQEAgLTEw
Mzk0LDcgKzEwNDAwLDcgQEAgdm9pZCB0ZXN0U0V4dDhTRXh0MTYoaW50MzJfdCB2YWx1ZSkKIHsK
ICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNFeHQ4LCBPcmln
aW4oKSwKQEAgLTEwNDExLDcgKzEwNDE3LDcgQEAgdm9pZCB0ZXN0U0V4dDhCaXRBbmQoaW50MzJf
dCB2YWx1ZSwgaW50MwogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgU0V4dDgsIE9yaWdpbigpLApAQCAtMTA0MjksNyArMTA0MzUsNyBAQCB2b2lkIHRlc3RC
aXRBbmRTRXh0OChpbnQzMl90IHZhbHVlLCBpbnQzCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMTA0NDcsNyArMTA0
NTMsNyBAQCB2b2lkIHRlc3RTRXh0MTYoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUg
cHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNFeHQxNiwgT3JpZ2luKCksCkBAIC0xMDQ2
Miw3ICsxMDQ2OCw3IEBAIHZvaWQgdGVzdFNFeHQxNkZvbGQoaW50MzJfdCB2YWx1ZSkKIHsKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNFeHQxNiwgT3JpZ2lu
KCksCkBAIC0xMDQ3NSw3ICsxMDQ4MSw3IEBAIHZvaWQgdGVzdFNFeHQxNlNFeHQxNihpbnQzMl90
IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
U0V4dDE2LCBPcmlnaW4oKSwKQEAgLTEwNDkyLDcgKzEwNDk4LDcgQEAgdm9pZCB0ZXN0U0V4dDE2
U0V4dDgoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIFNFeHQxNiwgT3JpZ2luKCksCkBAIC0xMDUwOSw3ICsxMDUxNSw3IEBAIHZv
aWQgdGVzdFNFeHQxNkJpdEFuZChpbnQzMl90IHZhbHVlLCBpbnQKIHsKICAgICBQcm9jZWR1cmUg
cHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNFeHQxNiwgT3JpZ2luKCksCkBAIC0xMDUy
Nyw3ICsxMDUzMyw3IEBAIHZvaWQgdGVzdEJpdEFuZFNFeHQxNihpbnQzMl90IHZhbHVlLCBpbnQK
IHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwg
T3JpZ2luKCksCkBAIC0xMDU0NSw3ICsxMDU1MSw3IEBAIHZvaWQgdGVzdFNFeHQzMkJpdEFuZChp
bnQzMl90IHZhbHVlLCBpbnQKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIFNFeHQzMiwgT3JpZ2luKCksCkBAIC0xMDU2Myw3ICsxMDU2OSw3IEBAIHZvaWQg
dGVzdEJpdEFuZFNFeHQzMihpbnQzMl90IHZhbHVlLCBpbnQKIHsKICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0xMDU4MSw3
ICsxMDU4Nyw3IEBAIHZvaWQgdGVzdEJhc2ljU2VsZWN0KCkKIHsKICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0xMDYwMyw3
ICsxMDYwOSw3IEBAIHZvaWQgdGVzdFNlbGVjdFRlc3QoKQogewogICAgIFByb2NlZHVyZSBwcm9j
OwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTEwNjIyLDcg
KzEwNjI4LDcgQEAgdm9pZCB0ZXN0U2VsZWN0Q29tcGFyZURvdWJsZSgpCiB7CiAgICAgUHJvY2Vk
dXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLApAQCAt
MTA2NTMsNyArMTA2NTksNyBAQCB2b2lkIHRlc3RTZWxlY3RDb21wYXJlRmxvYXQoZmxvYXQgYSwg
ZmxvCiAgICAgVmFsdWUqIGZsb2F0VmFsdWUxID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MWludDMyKTsKICAgICBWYWx1ZSogZmxv
YXRWYWx1ZTIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmln
aW4oKSwgYXJndW1lbnQyaW50MzIpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTEwNjkxLDcgKzEwNjk3LDcgQEAgdm9pZCB0
ZXN0U2VsZWN0Q29tcGFyZUZsb2F0VG9Eb3VibGUoZmxvYQogICAgIFZhbHVlKiBkb3VibGVWYWx1
ZTEgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigp
LCBmbG9hdFZhbHVlMSk7CiAgICAgVmFsdWUqIGRvdWJsZVZhbHVlMiA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGZsb2F0VmFsdWUyKTsKIAot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCks
CkBAIC0xMDcxOSw3ICsxMDcyNSw3IEBAIHZvaWQgdGVzdFNlbGVjdERvdWJsZSgpCiB7CiAgICAg
UHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigp
LApAQCAtMTA3NDEsNyArMTA3NDcsNyBAQCB2b2lkIHRlc3RTZWxlY3REb3VibGVUZXN0KCkKIHsK
ICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3Jp
Z2luKCksCkBAIC0xMDc2MCw3ICsxMDc2Niw3IEBAIHZvaWQgdGVzdFNlbGVjdERvdWJsZUNvbXBh
cmVEb3VibGUoKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTEwNzkwLDcgKzEwNzk2LDcgQEAgdm9pZCB0ZXN0U2Vs
ZWN0RG91YmxlQ29tcGFyZUZsb2F0KGZsb2F0IAogICAgIFZhbHVlKiBmbG9hdFZhbHVlMSA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVu
dDFpbnQzMik7CiAgICAgVmFsdWUqIGZsb2F0VmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MmludDMyKTsKIAotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0x
MDgyMSw3ICsxMDgyNyw3IEBAIHZvaWQgdGVzdFNlbGVjdEZsb2F0Q29tcGFyZUZsb2F0KGZsb2F0
IGEKICAgICBWYWx1ZSogZmxvYXRWYWx1ZTMgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzaW50MzIpOwogICAgIFZhbHVlKiBmbG9h
dFZhbHVlNCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdp
bigpLCBhcmd1bWVudDRpbnQzMik7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLApAQCAtMTA4NDcsNyArMTA4NTMsNyBAQCB2b2lkIHRl
c3RTZWxlY3REb3VibGVDb21wYXJlRG91YmxlKGJvb2wgCiAgICAgICAgIFZhbHVlKiBhcmcyID0g
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZv
Ojphcmd1bWVudEZQUjIpOwogICAgICAgICBWYWx1ZSogYXJnMyA9IHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIzKTsK
IAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICAgICAg
cHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTEwODgzLDcgKzEwODg5LDcgQEAgdm9pZCB0ZXN0
U2VsZWN0RG91YmxlQ29tcGFyZURvdWJsZShib29sIAogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+
YXBwZW5kKENvbnN0cmFpbmVkVmFsdWUoYXJnMiwgVmFsdWVSZXA6OlNvbWVSZWdpc3RlcikpOwog
ICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiwg
Y29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeyB9KTsKIAotICAgICAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwor
ICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0KTsKICAgICAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIAogICAgICAg
ICBmb3IgKGF1dG8mIGxlZnQgOiBmbG9hdGluZ1BvaW50T3BlcmFuZHM8ZG91YmxlPigpKSB7CkBA
IC0xMDkxMCw3ICsxMDkxNiw3IEBAIHZvaWQgdGVzdFNlbGVjdERvdWJsZUNvbXBhcmVEb3VibGUo
Ym9vbCAKICAgICAgICAga2VlcFZhbHVlc0xpdmUtPmFwcGVuZChDb25zdHJhaW5lZFZhbHVlKGFy
ZzMsIFZhbHVlUmVwOjpTb21lUmVnaXN0ZXIpKTsKICAgICAgICAga2VlcFZhbHVlc0xpdmUtPnNl
dEdlbmVyYXRvcihbJl0gKENDYWxsSGVscGVycyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBh
cmFtcyYpIHsgfSk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgICAgIGF1dG8g
Y29kZSA9IGNvbXBpbGUocHJvYyk7CiAKICAgICAgICAgZm9yIChhdXRvJiBsZWZ0IDogZmxvYXRp
bmdQb2ludE9wZXJhbmRzPGRvdWJsZT4oKSkgewpAQCAtMTA5MzgsNyArMTA5NDQsNyBAQCB2b2lk
IHRlc3RTZWxlY3REb3VibGVDb21wYXJlRG91YmxlKGJvb2wgCiAgICAgICAgIGtlZXBWYWx1ZXNM
aXZlLT5hcHBlbmQoQ29uc3RyYWluZWRWYWx1ZShhcmczLCBWYWx1ZVJlcDo6U29tZVJlZ2lzdGVy
KSk7CiAgICAgICAgIGtlZXBWYWx1ZXNMaXZlLT5zZXRHZW5lcmF0b3IoWyZdIChDQ2FsbEhlbHBl
cnMmLCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7IH0pOwogCi0gICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQpOwogICAgICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCiAg
ICAgICAgIGZvciAoYXV0byYgbGVmdCA6IGZsb2F0aW5nUG9pbnRPcGVyYW5kczxkb3VibGU+KCkp
IHsKQEAgLTEwOTU1LDcgKzEwOTYxLDcgQEAgdm9pZCB0ZXN0U2VsZWN0RG91YmxlQ29tcGFyZURv
dWJsZShib29sIAogICAgICAgICBWYWx1ZSogYXJnMSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIxKTsKICAgICAg
ICAgVmFsdWUqIGFyZzIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMik7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCks
CkBAIC0xMDk5MCw3ICsxMDk5Niw3IEBAIHZvaWQgdGVzdFNlbGVjdERvdWJsZUNvbXBhcmVEb3Vi
bGUoYm9vbCAKICAgICAgICAga2VlcFZhbHVlc0xpdmUtPmFwcGVuZChDb25zdHJhaW5lZFZhbHVl
KGFyZzIsIFZhbHVlUmVwOjpTb21lUmVnaXN0ZXIpKTsKICAgICAgICAga2VlcFZhbHVlc0xpdmUt
PnNldEdlbmVyYXRvcihbJl0gKENDYWxsSGVscGVycyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlv
blBhcmFtcyYpIHsgfSk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgICAgIGF1
dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKICAgICAgICAgZm9yIChhdXRvJiBsZWZ0IDogZmxv
YXRpbmdQb2ludE9wZXJhbmRzPGRvdWJsZT4oKSkgewpAQCAtMTEwMzMsNyArMTEwMzksNyBAQCB2
b2lkIHRlc3RTZWxlY3RGbG9hdENvbXBhcmVGbG9hdChib29sICgqCiAgICAgICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgICAg
ICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMykpKTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTExMDc3LDcg
KzExMDgzLDcgQEAgdm9pZCB0ZXN0U2VsZWN0RmxvYXRDb21wYXJlRmxvYXQoYm9vbCAoKgogICAg
ICAgICBrZWVwVmFsdWVzTGl2ZS0+YXBwZW5kKENvbnN0cmFpbmVkVmFsdWUoYXJnMiwgVmFsdWVS
ZXA6OlNvbWVSZWdpc3RlcikpOwogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+c2V0R2VuZXJhdG9y
KFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeyB9
KTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICAgICAgYXV0byBjb2RlID0gY29t
cGlsZShwcm9jKTsKIAogICAgICAgICBmb3IgKGF1dG8mIGxlZnQgOiBmbG9hdGluZ1BvaW50T3Bl
cmFuZHM8ZmxvYXQ+KCkpIHsKQEAgLTExMTEyLDcgKzExMTE4LDcgQEAgdm9pZCB0ZXN0U2VsZWN0
RmxvYXRDb21wYXJlRmxvYXQoYm9vbCAoKgogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+YXBwZW5k
KENvbnN0cmFpbmVkVmFsdWUoYXJnMywgVmFsdWVSZXA6OlNvbWVSZWdpc3RlcikpOwogICAgICAg
ICBrZWVwVmFsdWVzTGl2ZS0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3Qg
U3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeyB9KTsKIAotICAgICAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgICAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0KTsKICAgICAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIAogICAgICAgICBmb3Ig
KGF1dG8mIGxlZnQgOiBmbG9hdGluZ1BvaW50T3BlcmFuZHM8ZmxvYXQ+KCkpIHsKQEAgLTExMTQ4
LDcgKzExMTU0LDcgQEAgdm9pZCB0ZXN0U2VsZWN0RmxvYXRDb21wYXJlRmxvYXQoYm9vbCAoKgog
ICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+YXBwZW5kKENvbnN0cmFpbmVkVmFsdWUoYXJnMywgVmFs
dWVSZXA6OlNvbWVSZWdpc3RlcikpOwogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+c2V0R2VuZXJh
dG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikg
eyB9KTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICAgICAgYXV0byBjb2RlID0g
Y29tcGlsZShwcm9jKTsKIAogICAgICAgICBmb3IgKGF1dG8mIGxlZnQgOiBmbG9hdGluZ1BvaW50
T3BlcmFuZHM8ZmxvYXQ+KCkpIHsKQEAgLTExMTcxLDcgKzExMTc3LDcgQEAgdm9pZCB0ZXN0U2Vs
ZWN0RmxvYXRDb21wYXJlRmxvYXQoYm9vbCAoKgogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjIpKSk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0xMTIxMiw3ICsxMTIxOCw3IEBA
IHZvaWQgdGVzdFNlbGVjdEZsb2F0Q29tcGFyZUZsb2F0KGJvb2wgKCoKICAgICAgICAga2VlcFZh
bHVlc0xpdmUtPmFwcGVuZChDb25zdHJhaW5lZFZhbHVlKGFyZzIsIFZhbHVlUmVwOjpTb21lUmVn
aXN0ZXIpKTsKICAgICAgICAga2VlcFZhbHVlc0xpdmUtPnNldEdlbmVyYXRvcihbJl0gKENDYWxs
SGVscGVycyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsgfSk7CiAKLSAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0KTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7
CiAKICAgICAgICAgZm9yIChhdXRvJiBsZWZ0IDogZmxvYXRpbmdQb2ludE9wZXJhbmRzPGZsb2F0
PigpKSB7CkBAIC0xMTIzOSw3ICsxMTI0NSw3IEBAIHZvaWQgdGVzdFNlbGVjdEZvbGQoaW50cHRy
X3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBTZWxlY3QsIE9yaWdpbigpLApAQCAtMTEyNTksNyArMTEyNjUsNyBAQCB2b2lkIHRlc3RTZWxl
Y3RJbnZlcnQoKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTExMzEyLDcgKzExMzE4LDcgQEAgdm9pZCB0ZXN0Q2hl
Y2tTZWxlY3QoKQogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKICAgICAKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTExMzgz
LDcgKzExMzg5LDcgQEAgdm9pZCB0ZXN0Q2hlY2tTZWxlY3RDaGVja1NlbGVjdCgpCiAgICAgICAg
ICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwogICAgIAotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtMTE0MTksNyArMTE0MjUsNyBAQCB2b2lk
IHRlc3RQb3dEb3VibGVCeUludGVnZXJMb29wKGRvdWJsZSB4CiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIwKSk7CiAgICAgYXV0byByZXN1bHQgPSBwb3dEb3VibGVJbnQzMihwcm9jLCByb290LCBPcmln
aW4oKSwgeCwgeSk7CiAgICAgQmFzaWNCbG9jayogY29udGludWF0aW9uID0gcmVzdWx0LmZpcnN0
OwotICAgIGNvbnRpbnVhdGlvbi0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcmVzdWx0LnNlY29uZCk7CisgICAgY29udGludWF0aW9uLT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0LnNlY29uZCk7CiAKICAg
ICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgeE9wZXJhbmQs
IHlPcGVyYW5kKSwgYjNQb3coeE9wZXJhbmQsIHlPcGVyYW5kKSkpOwogfQpAQCAtMTE0MjksNyAr
MTE0MzUsNyBAQCB2b2lkIHRlc3RUcnVuY09ySGlnaCgpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKQEAgLTExNDQ3LDcgKzEx
NDUzLDcgQEAgdm9pZCB0ZXN0VHJ1bmNPckxvdygpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKQEAgLTExNDY1LDcgKzExNDcx
LDcgQEAgdm9pZCB0ZXN0Qml0QW5kT3JIaWdoKCkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTExNDg0LDcgKzExNDkw
LDcgQEAgdm9pZCB0ZXN0Qml0QW5kT3JMb3coKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
CiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMTE1MDcsMjAgKzExNTEz
LDIwIEBAIHZvaWQgdGVzdEJyYW5jaDY0RXF1YWwoaW50NjRfdCBsZWZ0LCBpbnQKIAogICAgIFZh
bHVlKiBhcmcxID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFZhbHVlKiBhcmcyID0gcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjEpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBFcXVhbCwgT3JpZ2luKCksIGFyZzEs
IGFyZzIpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxv
Y2soZWxzZUNhc2UpKTsKIAogICAgIGJvb2wgdHJ1ZVJlc3VsdCA9IHRydWU7Ci0gICAgdGhlbkNh
c2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5D
YXNlLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZDhaLCBP
cmlnaW4oKSwKICAgICAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksICZ0cnVlUmVzdWx0KSkpOwogCiAgICAgYm9vbCBlbHNlUmVzdWx0ID0g
ZmFsc2U7Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VD
YXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgTG9hZDhaLCBPcmlnaW4oKSwKQEAgLTExNTM4LDIwICsxMTU0NCwyMCBAQCB2b2lk
IHRlc3RCcmFuY2g2NEVxdWFsSW1tKGludDY0X3QgbGVmdCwgCiAKICAgICBWYWx1ZSogYXJnMSA9
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIwKTsKICAgICBWYWx1ZSogYXJnMiA9IHJvb3QtPmFwcGVuZE5ldzxDb25z
dFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgcmlnaHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBFcXVhbCwgT3JpZ2luKCksIGFyZzEsIGFyZzIpLAogICAgICAgICBGcmVxdWVudGVkQmxv
Y2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAogICAgIGJvb2wgdHJ1
ZVJlc3VsdCA9IHRydWU7Ci0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAog
ICAgICAgICAgICAgcHJvYywgTG9hZDhaLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHRoZW5DYXNl
LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZ0cnVlUmVzdWx0KSkp
OwogCiAgICAgYm9vbCBlbHNlUmVzdWx0ID0gZmFsc2U7Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmRO
ZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZDhaLCBPcmlnaW4oKSwKQEAg
LTExNTcxLDIwICsxMTU3NywyMCBAQCB2b2lkIHRlc3RCcmFuY2g2NEVxdWFsTWVtKGludDY0X3Qg
bGVmdCwgCiAgICAgICAgIHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiBhcmcyID0gcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBFcXVhbCwgT3JpZ2luKCksIGFyZzEsIGFyZzIp
LAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxz
ZUNhc2UpKTsKIAogICAgIGJvb2wgdHJ1ZVJlc3VsdCA9IHRydWU7Ci0gICAgdGhlbkNhc2UtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5h
cHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZDhaLCBPcmlnaW4o
KSwKICAgICAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksICZ0cnVlUmVzdWx0KSkpOwogCiAgICAgYm9vbCBlbHNlUmVzdWx0ID0gZmFsc2U7
Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgTG9hZDhaLCBPcmlnaW4oKSwKQEAgLTExNjA0LDIwICsxMTYxMCwyMCBAQCB2b2lkIHRlc3RC
cmFuY2g2NEVxdWFsTWVtSW1tKGludDY0X3QgbGVmCiAgICAgICAgIHByb2MsIExvYWQsIHBvaW50
ZXJUeXBlKCksIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVl
KiBhcmcyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBy
aWdodCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEVxdWFsLCBPcmlnaW4oKSwgYXJnMSwg
YXJnMiksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9j
ayhlbHNlQ2FzZSkpOwogCiAgICAgYm9vbCB0cnVlUmVzdWx0ID0gdHJ1ZTsKLSAgICB0aGVuQ2Fz
ZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNh
c2UtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkOFosIE9y
aWdpbigpLAogICAgICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgJnRydWVSZXN1bHQpKSk7CiAKICAgICBib29sIGVsc2VSZXN1bHQgPSBm
YWxzZTsKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNh
c2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBMb2FkOFosIE9yaWdpbigpLApAQCAtMTE2NDEsNyArMTE2NDcsNyBAQCB2b2lkIHRl
c3RTdG9yZThMb2FkOFooaW50MzJfdCB2YWx1ZSkKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIw
KSksCiAgICAgICAgIHB0cik7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9h
ZDhaLCBPcmlnaW4oKSwgcHRyKSk7CiAKQEAgLTExNjYzLDcgKzExNjY5LDcgQEAgdm9pZCB0ZXN0
U3RvcmUxNkxvYWQxNlooaW50MzJfdCB2YWx1ZSkKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIw
KSksCiAgICAgICAgIHB0cik7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9h
ZDE2WiwgT3JpZ2luKCksIHB0cikpOwogCkBAIC0xMTY3NSw3ICsxMTY4MSw3IEBAIHZvaWQgdGVz
dFNTaHJTaGwzMihpbnQzMl90IHZhbHVlLCBpbnQzMl8KICAgICBQcm9jZWR1cmUgcHJvYzsKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KAogICAgICAgICAgICAgcHJvYywgU1NociwgT3JpZ2luKCksCkBAIC0xMTY5Nyw3ICsxMTcw
Myw3IEBAIHZvaWQgdGVzdFNTaHJTaGw2NChpbnQ2NF90IHZhbHVlLCBpbnQzMl8KICAgICBQcm9j
ZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogCi0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU1NociwgT3JpZ2luKCksCkBA
IC0xMTcyNSw4ICsxMTczMSw4IEBAIHZvaWQgdGVzdFRyaXZpYWxJbmZpbml0ZUxvb3AoKQogICAg
IFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
CiAgICAgQmFzaWNCbG9jayogbG9vcCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2Nr
KGxvb3ApKTsKLSAgICBsb29wLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBP
cmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3ApKTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhsb29wKSk7Cisg
ICAgbG9vcC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVx
dWVudGVkQmxvY2sobG9vcCkpOwogCiAgICAgY29tcGlsZShwcm9jKTsKIH0KQEAgLTExNzQwLDE1
ICsxMTc0NiwxNSBAQCB2b2lkIHRlc3RGb2xkUGF0aEVxdWFsKCkKIAogICAgIFZhbHVlKiBhcmcg
PSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwg
T3JpZ2luKCksIGFyZywgRnJlcXVlbnRlZEJsb2NrKHRoZW5CbG9jayksIEZyZXF1ZW50ZWRCbG9j
ayhlbHNlQmxvY2spKTsKIAotICAgIHRoZW5CbG9jay0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgdGhlbkJsb2NrLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5CbG9jay0+YXBwZW5kTmV3PFZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIEVxdWFsLCBPcmlnaW4oKSwgYXJnLCB0aGVuQmxvY2stPmFwcGVuZE5l
dzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpKTsKIAotICAgIGVsc2VCbG9jay0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUJsb2NrLT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VCbG9j
ay0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEVxdWFsLCBPcmlnaW4oKSwg
YXJnLCBlbHNlQmxvY2stPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
MCkpKTsKQEAgLTExNzY2LDcgKzExNzcyLDcgQEAgdm9pZCB0ZXN0TFNoaWZ0U2VsZjMyKCkKICAg
ICBWYWx1ZSogYXJnID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgcHJvYywgVHJ1
bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBTaGwsIE9yaWdpbigpLCBhcmcsIGFyZykpOwogCkBAIC0xMTc4OSw3ICsxMTc5
NSw3IEBAIHZvaWQgdGVzdFJTaGlmdFNlbGYzMigpCiAgICAgVmFsdWUqIGFyZyA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjApKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU1NociwgT3JpZ2lu
KCksIGFyZywgYXJnKSk7CiAKQEAgLTExODEyLDcgKzExODE4LDcgQEAgdm9pZCB0ZXN0VVJTaGlm
dFNlbGYzMigpCiAgICAgVmFsdWUqIGFyZyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgWlNociwgT3JpZ2luKCksIGFyZywgYXJnKSk7CiAKQEAg
LTExODMzLDcgKzExODM5LDcgQEAgdm9pZCB0ZXN0TFNoaWZ0U2VsZjY0KCkKICAgICBQcm9jZWR1
cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZh
bHVlKiBhcmcgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgcHJvYywgU2hsLCBPcmlnaW4oKSwgYXJnLCByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIFRydW5jLCBPcmlnaW4oKSwgYXJnKSkpOwpAQCAtMTE4NTcsNyArMTE4NjMsNyBAQCB2b2lk
IHRlc3RSU2hpZnRTZWxmNjQoKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZyA9IHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIw
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTU2hyLCBPcmlnaW4o
KSwgYXJnLCByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwgYXJn
KSkpOwpAQCAtMTE4ODEsNyArMTE4ODcsNyBAQCB2b2lkIHRlc3RVUlNoaWZ0U2VsZjY0KCkKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwogICAgIFZhbHVlKiBhcmcgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgWlNociwgT3JpZ2luKCksIGFyZywgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksIGFyZykpKTsKQEAgLTExOTE3LDcgKzExOTIz
LDcgQEAgdm9pZCB0ZXN0UGF0Y2hwb2ludERvdWJsZVJlZ3MoKQogICAgICAgICAgICAgbnVtQ2Fs
bHMrKzsKICAgICAgICAgfSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CiAKICAgICBh
dXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIENIRUNLKG51bUNhbGxzID09IDEpOwpAQCAt
MTE5NTAsNyArMTE5NTYsNyBAQCB2b2lkIHRlc3RTcGlsbERlZlNtYWxsZXJUaGFuVXNlKCkKIAog
ICAgIC8vIE9uIHg4NiwgU3ViIGFkbWl0IGFuIGFkZHJlc3MgZm9yIGFueSBvcGVyYW5kLiBJZiBp
dCB1c2VzIHRoZSBzdGFjaywgdGhlIHRvcCBiaXRzIG11c3QgYmUgemVyby4KICAgICBWYWx1ZSog
cmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBmb3Jj
ZVNwaWxsLCBhcmc2NCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIGF1dG8gY29kZSA9IGNv
bXBpbGUocHJvYyk7CiAgICAgQ0hFQ0soaW52b2tlPGludDY0X3Q+KCpjb2RlLCAweGZmZmZmZmZm
MDAwMDAwMDApID09IDApOwpAQCAtMTE5NzAsNyArMTE5NzYsNyBAQCB2b2lkIHRlc3RTcGlsbFVz
ZUxhcmdlclRoYW5EZWYoKQogCiAgICAgVmFsdWUqIGNvbmRpdGlvbiA9IHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIw
KTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLApAQCAtMTE5ODAsMTAg
KzExOTg2LDEwIEBAIHZvaWQgdGVzdFNwaWxsVXNlTGFyZ2VyVGhhbkRlZigpCiAgICAgVmFsdWUq
IHRydW5jYXRlZCA9IHRoZW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFpFeHQzMiwgT3Jp
Z2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBP
cmlnaW4oKSwgYXJndW1lbnQpKTsKICAgICBVcHNpbG9uVmFsdWUqIHRoZW5SZXN1bHQgPSB0aGVu
Q2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHRydW5jYXRlZCk7
Ci0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdp
bigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOworICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CiAK
ICAgICBVcHNpbG9uVmFsdWUqIGVsc2VSZXN1bHQgPSBlbHNlQ2FzZS0+YXBwZW5kTmV3PFVwc2ls
b25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFyZ3VtZW50KTsKLSAgICBlbHNlQ2FzZS0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0
YWlsKSk7CisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBP
cmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKIAogICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCAxMDA7ICsraSkgewogICAgICAgICBQYXRjaHBvaW50VmFsdWUqIHByZXZlbnRUYWls
RHVwbGljYXRpb24gPSB0YWlsLT5hcHBlbmROZXc8UGF0Y2hwb2ludFZhbHVlPihwcm9jLCBWb2lk
LCBPcmlnaW4oKSk7CkBAIC0xMjAwNCw3ICsxMjAxMCw3IEBAIHZvaWQgdGVzdFNwaWxsVXNlTGFy
Z2VyVGhhbkRlZigpCiAgICAgVmFsdWUqIHBoaSA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgUGhpLCBJbnQ2NCwgT3JpZ2luKCkpOwogICAgIHRoZW5SZXN1bHQtPnNldFBoaShwaGkpOwog
ICAgIGVsc2VSZXN1bHQtPnNldFBoaShwaGkpOwotICAgIHRhaWwtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBoaSk7CisgICAgdGFpbC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBoaSk7CiAKICAgICBhdXRvIGNv
ZGUgPSBjb21waWxlKHByb2MpOwogICAgIENIRUNLKGludm9rZTx1aW50NjRfdD4oKmNvZGUsIDEs
IDB4ZmZmZmZmZmYwMDAwMDAwMCkgPT0gMCk7CkBAIC0xMjA4NiwxMiArMTIwOTIsMjQ0IEBAIHZv
aWQgdGVzdExhdGVSZWdpc3RlcigpCiAgICAgICAgICAgICBqaXQubm9wKCk7CiAgICAgICAgICAg
ICBqaXQubm9wKCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZFBhdGNocG9pbnQpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmRQYXRj
aHBvaW50KTsKICAgICAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIENIRUNL
KGludm9rZTx1aW50NjRfdD4oKmNvZGUpID09IHJlc3VsdCk7CiB9CiAKK3ZvaWQgdGhyZWFkZWRJ
bnRlcnByZXRlclByaW50KFZlY3RvcjxpbnRwdHJfdD4qIHN0cmVhbSwgaW50cHRyX3QgdmFsdWUp
Cit7CisgICAgc3RyZWFtLT5hcHBlbmQodmFsdWUpOworfQorCit2b2lkIHRlc3RUaHJlYWRlZElu
dGVycHJldGVyKCkKK3sKKyAgICAvLyBUaGlzIGNyZWF0ZXMgYSBwb29yIG1hbidzIHRocmVhZGVk
IGludGVycHJldGVyIHVzaW5nIFBvbHlKdW1wIGFuZCBzZWVzIGlmIGl0IHdvcmtzLiBOb3RlCisg
ICAgLy8gdGhhdCBQb2x5SnVtcCBpcyBub3QgbGlrZSBpbmRpcmVjdCBicmFuY2hlcyBpbiBMTFZN
LCBzbyB5b3UgY2FuJ3QgYWN0dWFsbHkgdXNlIGl0IHRvCisgICAgLy8gaW1wbGVtZW50IGEgcHJv
cGVyIHRocmVhZGVkIGludGVycHJldGVyLiBUaGlzIGNoZWF0czogdGhlIGRpc3BhdGNoIGluc3Ry
dWN0aW9uIGlzIGF0IHRoZSB0b3AKKyAgICAvLyBvZiB0aGUgbG9vcC4gVGhpcyBhbHNvIHRlc3Rz
IFZhcmlhYmxlVmFsdWUuCisgICAgCisgICAgUHJvY2VkdXJlIHByb2M7CisgICAgCisgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBCYXNpY0Jsb2NrKiBkaXNwYXRj
aCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBCYXNpY0Jsb2NrKiBhZGRUb0RhdGFQb2ludGVyID0g
cHJvYy5hZGRCbG9jaygpOworICAgIEJhc2ljQmxvY2sqIGFkZFRvQ29kZVBvaW50ZXIgPSBwcm9j
LmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayogYWRkVG9Db2RlUG9pbnRlclRha2VuID0gcHJv
Yy5hZGRCbG9jaygpOworICAgIEJhc2ljQmxvY2sqIGFkZFRvQ29kZVBvaW50ZXJOb3RUYWtlbiA9
IHByb2MuYWRkQmxvY2soKTsKKyAgICBCYXNpY0Jsb2NrKiBhZGRUb0RhdGEgPSBwcm9jLmFkZEJs
b2NrKCk7CisgICAgQmFzaWNCbG9jayogcHJpbnQgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFz
aWNCbG9jayogc3RvcCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICAKKyAgICBWYXJpYWJsZSogZGF0
YVBvaW50ZXIgPSBwcm9jLmFkZFZhcmlhYmxlKHBvaW50ZXJUeXBlKCkpOworICAgIFZhcmlhYmxl
KiBjb2RlUG9pbnRlciA9IHByb2MuYWRkVmFyaWFibGUocG9pbnRlclR5cGUoKSk7CisgICAgCisg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAgICAgICBwcm9jLCBTZXQsIE9y
aWdpbigpLCBkYXRhUG9pbnRlciwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKKyAgICByb290
LT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCks
IGNvZGVQb2ludGVyLAorICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSkpOworICAgIFZhbHVlKiBjb250
ZXh0ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRpc3BhdGNoKSk7CisKKyAgICBW
YWx1ZSogY29kZVBvaW50ZXJWYWx1ZSA9CisgICAgICAgIGRpc3BhdGNoLT5hcHBlbmROZXc8VmFy
aWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyKTsKKyAgICBQ
YXRjaHBvaW50VmFsdWUqIHBvbHlKdW1wID0gZGlzcGF0Y2gtPmFwcGVuZE5ldzxQYXRjaHBvaW50
VmFsdWU+KHByb2MsIFZvaWQsIE9yaWdpbigpKTsKKyAgICBwb2x5SnVtcC0+ZWZmZWN0cy50ZXJt
aW5hbCA9IHRydWU7CisgICAgcG9seUp1bXAtPmFwcGVuZFNvbWVSZWdpc3Rlcihjb2RlUG9pbnRl
clZhbHVlKTsKKyAgICBkaXNwYXRjaC0+YXBwZW5kU3VjY2Vzc29yKEZyZXF1ZW50ZWRCbG9jayhh
ZGRUb0RhdGFQb2ludGVyKSk7CisgICAgZGlzcGF0Y2gtPmFwcGVuZFN1Y2Nlc3NvcihGcmVxdWVu
dGVkQmxvY2soYWRkVG9Db2RlUG9pbnRlcikpOworICAgIGRpc3BhdGNoLT5hcHBlbmRTdWNjZXNz
b3IoRnJlcXVlbnRlZEJsb2NrKGFkZFRvRGF0YSkpOworICAgIGRpc3BhdGNoLT5hcHBlbmRTdWNj
ZXNzb3IoRnJlcXVlbnRlZEJsb2NrKHByaW50KSk7CisgICAgZGlzcGF0Y2gtPmFwcGVuZFN1Y2Nl
c3NvcihGcmVxdWVudGVkQmxvY2soc3RvcCkpOworICAgIAorICAgIC8vIE91ciAib3Bjb2RlcyIu
IFRoZXkgd2lsbCBoYXZlIG1lYW5pbmcgb25jZSB3ZSBjb21waWxlLgorICAgIGludHB0cl90IEFk
ZERQID0gMDsKKyAgICBpbnRwdHJfdCBBZGRDUCA9IDA7CisgICAgaW50cHRyX3QgQWRkID0gMDsK
KyAgICBpbnRwdHJfdCBQcmludCA9IDA7CisgICAgaW50cHRyX3QgU3RvcCA9IDA7CisgICAgcG9s
eUp1bXAtPnNldEdlbmVyYXRvcigKKyAgICAgICAgWyZdIChDQ2FsbEhlbHBlcnMmIGppdCwgY29u
c3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJiBwYXJhbXMpIHsKKyAgICAgICAgICAgIGppdC5q
dW1wKENDYWxsSGVscGVyczo6QWRkcmVzcyhwYXJhbXNbMF0uZ3ByKCkpKTsKKyAgICAgICAgICAg
IAorICAgICAgICAgICAgVmVjdG9yPEJveDxDQ2FsbEhlbHBlcnM6OkxhYmVsPj4gbGFiZWxzID0g
cGFyYW1zLnN1Y2Nlc3NvckxhYmVscygpOworICAgICAgICAgICAgCisgICAgICAgICAgICBqaXQu
YWRkTGlua1Rhc2soCisgICAgICAgICAgICAgICAgWyYsIGxhYmVsc10gKExpbmtCdWZmZXImIGxp
bmtCdWZmZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgYXV0byBnZXQgPSBbJl0gKHNpemVfdCBp
bmRleCkgLT4gaW50cHRyX3QgeworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJpdHdp
c2VfY2FzdDxpbnRwdHJfdD4oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlua0J1ZmZl
ci5sb2NhdGlvbk9mKCpsYWJlbHNbaW5kZXhdKS5leGVjdXRhYmxlQWRkcmVzcygpKTsKKyAgICAg
ICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAg
ICAgIEFkZERQID0gZ2V0KDApOworICAgICAgICAgICAgICAgICAgICBBZGRDUCA9IGdldCgxKTsK
KyAgICAgICAgICAgICAgICAgICAgQWRkID0gZ2V0KDIpOworICAgICAgICAgICAgICAgICAgICBQ
cmludCA9IGdldCgzKTsKKyAgICAgICAgICAgICAgICAgICAgU3RvcCA9IGdldCg0KTsKKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgCisgICAgLy8gQWRkRFAgPG9wZXJhbmQ+
OiBhZGRzIDxvcGVyYW5kPiB0byBEUC4KKyAgICBjb2RlUG9pbnRlclZhbHVlID0KKyAgICAgICAg
YWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHByb2MsIEIzOjpHZXQs
IE9yaWdpbigpLCBjb2RlUG9pbnRlcik7CisgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3
PFZhcmlhYmxlVmFsdWU+KAorICAgICAgICBwcm9jLCBTZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRl
ciwKKyAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAg
ICAgIHByb2MsIEIzOjpBZGQsIE9yaWdpbigpLAorICAgICAgICAgICAgYWRkVG9EYXRhUG9pbnRl
ci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBkYXRh
UG9pbnRlciksCisgICAgICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFsdWU+
KAorICAgICAgICAgICAgICAgIHByb2MsIE11bCwgT3JpZ2luKCksCisgICAgICAgICAgICAgICAg
YWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAgICAg
ICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFs
dWUsIHNpemVvZihpbnRwdHJfdCkpLAorICAgICAgICAgICAgICAgIGFkZFRvRGF0YVBvaW50ZXIt
PmFwcGVuZEludENvbnN0YW50KAorICAgICAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwg
cG9pbnRlclR5cGUoKSwgc2l6ZW9mKGludHB0cl90KSkpKSk7CisgICAgYWRkVG9EYXRhUG9pbnRl
ci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAgICAgICBwcm9jLCBTZXQsIE9yaWdpbigp
LCBjb2RlUG9pbnRlciwKKyAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhbHVl
PigKKyAgICAgICAgICAgIHByb2MsIEIzOjpBZGQsIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVl
LAorICAgICAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kSW50Q29uc3RhbnQoCisgICAg
ICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBlKCksIHNpemVvZihpbnRwdHJf
dCkgKiAyKSkpOworICAgIGFkZFRvRGF0YVBvaW50ZXItPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRpc3BhdGNoKSk7CisgICAgCisg
ICAgLy8gQWRkQ1AgPG9wZXJhbmQ+OiBhZGRzIDxvcGVyYW5kPiB0byBDUCBpZiB0aGUgY3VycmVu
dCB2YWx1ZSBhdCBEUCBpcyBub24temVybywgb3RoZXJ3aXNlCisgICAgLy8gZmFsbHMgdGhyb3Vn
aCBub3JtYWxseS4KKyAgICBjb2RlUG9pbnRlclZhbHVlID0KKyAgICAgICAgYWRkVG9Db2RlUG9p
bnRlci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBj
b2RlUG9pbnRlcik7CisgICAgVmFsdWUqIGRhdGFQb2ludGVyVmFsdWUgPQorICAgICAgICBhZGRU
b0NvZGVQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3Jp
Z2luKCksIGRhdGFQb2ludGVyKTsKKyAgICBhZGRUb0NvZGVQb2ludGVyLT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCisgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCisgICAgICAgIGFkZFRv
Q29kZVBvaW50ZXItPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBM
b2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwgZGF0YVBvaW50ZXJWYWx1ZSksCisgICAgICAg
IEZyZXF1ZW50ZWRCbG9jayhhZGRUb0NvZGVQb2ludGVyVGFrZW4pLCBGcmVxdWVudGVkQmxvY2so
YWRkVG9Db2RlUG9pbnRlck5vdFRha2VuKSk7CisgICAgYWRkVG9Db2RlUG9pbnRlclRha2VuLT5h
cHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNv
ZGVQb2ludGVyLAorICAgICAgICBhZGRUb0NvZGVQb2ludGVyVGFrZW4tPmFwcGVuZE5ldzxWYWx1
ZT4oCisgICAgICAgICAgICBwcm9jLCBCMzo6QWRkLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1
ZSwKKyAgICAgICAgICAgIGFkZFRvQ29kZVBvaW50ZXJUYWtlbi0+YXBwZW5kTmV3PFZhbHVlPigK
KyAgICAgICAgICAgICAgICBwcm9jLCBNdWwsIE9yaWdpbigpLAorICAgICAgICAgICAgICAgIGFk
ZFRvQ29kZVBvaW50ZXJUYWtlbi0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAg
ICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCksIGNvZGVQb2ludGVy
VmFsdWUsIHNpemVvZihpbnRwdHJfdCkpLAorICAgICAgICAgICAgICAgIGFkZFRvQ29kZVBvaW50
ZXJUYWtlbi0+YXBwZW5kSW50Q29uc3RhbnQoCisgICAgICAgICAgICAgICAgICAgIHByb2MsIE9y
aWdpbigpLCBwb2ludGVyVHlwZSgpLCBzaXplb2YoaW50cHRyX3QpKSkpKTsKKyAgICBhZGRUb0Nv
ZGVQb2ludGVyVGFrZW4tPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4o
KSwgRnJlcXVlbnRlZEJsb2NrKGRpc3BhdGNoKSk7CisgICAgYWRkVG9Db2RlUG9pbnRlck5vdFRh
a2VuLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2lu
KCksIGNvZGVQb2ludGVyLAorICAgICAgICBhZGRUb0NvZGVQb2ludGVyTm90VGFrZW4tPmFwcGVu
ZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBCMzo6QWRkLCBPcmlnaW4oKSwgY29kZVBv
aW50ZXJWYWx1ZSwKKyAgICAgICAgICAgIGFkZFRvQ29kZVBvaW50ZXJOb3RUYWtlbi0+YXBwZW5k
SW50Q29uc3RhbnQoCisgICAgICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBl
KCksIHNpemVvZihpbnRwdHJfdCkgKiAyKSkpOworICAgIGFkZFRvQ29kZVBvaW50ZXJOb3RUYWtl
bi0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAorICAgICAgICBwcm9jLCBKdW1wLCBPcmlnaW4oKSwg
RnJlcXVlbnRlZEJsb2NrKGRpc3BhdGNoKSk7CisKKyAgICAvLyBBZGQgPG9wZXJhbmQ+OiBhZGRz
IDxvcGVyYW5kPiB0byB0aGUgc2xvdCBwb2ludGVkIHRvIGJ5IERQLgorICAgIGNvZGVQb2ludGVy
VmFsdWUgPSBhZGRUb0RhdGEtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPihwcm9jLCBCMzo6R2V0
LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIpOworICAgIGRhdGFQb2ludGVyVmFsdWUgPSBhZGRUb0Rh
dGEtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPihwcm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwgZGF0
YVBvaW50ZXIpOworICAgIGFkZFRvRGF0YS0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAg
ICAgcHJvYywgU3RvcmUsIE9yaWdpbigpLAorICAgICAgICBhZGRUb0RhdGEtPmFwcGVuZE5ldzxW
YWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBCMzo6QWRkLCBPcmlnaW4oKSwKKyAgICAgICAgICAg
IGFkZFRvRGF0YS0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAgICAgICBwcm9j
LCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwgZGF0YVBvaW50ZXJWYWx1ZSksCisgICAg
ICAgICAgICBhZGRUb0RhdGEtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgICAgICAg
ICAgcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUs
IHNpemVvZihpbnRwdHJfdCkpKSwKKyAgICAgICAgZGF0YVBvaW50ZXJWYWx1ZSk7CisgICAgYWRk
VG9EYXRhLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3Jp
Z2luKCksIGNvZGVQb2ludGVyLAorICAgICAgICBhZGRUb0RhdGEtPmFwcGVuZE5ldzxWYWx1ZT4o
CisgICAgICAgICAgICBwcm9jLCBCMzo6QWRkLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwK
KyAgICAgICAgICAgIGFkZFRvRGF0YS0+YXBwZW5kSW50Q29uc3RhbnQocHJvYywgT3JpZ2luKCks
IHBvaW50ZXJUeXBlKCksIHNpemVvZihpbnRwdHJfdCkgKiAyKSkpOworICAgIGFkZFRvRGF0YS0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxv
Y2soZGlzcGF0Y2gpKTsKKyAgICAKKyAgICAvLyBQcmludDogInByaW50cyIgdGhlIHZhbHVlIHBv
aW50ZWQgdG8gYnkgRFAuIFdoYXQgdGhpcyBhY3R1YWxseSBtZWFucyBpcyB0aGF0IHRoZSB2YWx1
ZSBpcworICAgIC8vIGFwcGVuZGVkIHRvIHRoZSBzdHJlYW0gdmVjdG9yIGJ5IHRoZSB0aHJlYWRl
ZEludGVycHJldGVyUHJpbnQgZnVuY3Rpb24uCisgICAgY29kZVBvaW50ZXJWYWx1ZSA9IHByaW50
LT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGNvZGVQ
b2ludGVyKTsKKyAgICBkYXRhUG9pbnRlclZhbHVlID0gcHJpbnQtPmFwcGVuZE5ldzxWYXJpYWJs
ZVZhbHVlPihwcm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwgZGF0YVBvaW50ZXIpOworICAgIHByaW50
LT5hcHBlbmROZXc8Q0NhbGxWYWx1ZT4oCisgICAgICAgIHByb2MsIFZvaWQsIE9yaWdpbigpLAor
ICAgICAgICBwcmludC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KAorICAgICAgICAgICAgcHJv
YywgT3JpZ2luKCksIGJpdHdpc2VfY2FzdDx2b2lkKj4odGhyZWFkZWRJbnRlcnByZXRlclByaW50
KSksCisgICAgICAgIGNvbnRleHQsCisgICAgICAgIHByaW50LT5hcHBlbmROZXc8TWVtb3J5VmFs
dWU+KHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLCBkYXRhUG9pbnRlclZhbHVl
KSk7CisgICAgcHJpbnQtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPigKKyAgICAgICAgcHJvYywg
U2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIsCisgICAgICAgIHByaW50LT5hcHBlbmROZXc8VmFs
dWU+KAorICAgICAgICAgICAgcHJvYywgQjM6OkFkZCwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFs
dWUsCisgICAgICAgICAgICBwcmludC0+YXBwZW5kSW50Q29uc3RhbnQocHJvYywgT3JpZ2luKCks
IHBvaW50ZXJUeXBlKCksIHNpemVvZihpbnRwdHJfdCkpKSk7CisgICAgcHJpbnQtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRpc3Bh
dGNoKSk7CisgICAgCisgICAgLy8gU3RvcDogcmV0dXJucy4KKyAgICBzdG9wLT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCisgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCisgICAgICAgIHN0
b3AtPmFwcGVuZEludENvbnN0YW50KHByb2MsIE9yaWdpbigpLCBwb2ludGVyVHlwZSgpLCAwKSk7
CisgICAgCisgICAgYXV0byBpbnRlcnByZXRlciA9IGNvbXBpbGUocHJvYyk7CisgICAgCisgICAg
Q0hFQ0soQWRkRFApOworICAgIENIRUNLKEFkZENQKTsKKyAgICBDSEVDSyhBZGQpOworICAgIENI
RUNLKFByaW50KTsKKyAgICBDSEVDSyhTdG9wKTsKKyAgICAKKyAgICBWZWN0b3I8aW50cHRyX3Q+
IGRhdGE7CisgICAgVmVjdG9yPGludHB0cl90PiBjb2RlOworICAgIFZlY3RvcjxpbnRwdHJfdD4g
c3RyZWFtOworICAgIAorICAgIGRhdGEuYXBwZW5kKDEpOworICAgIGRhdGEuYXBwZW5kKDApOwor
ICAgIAorICAgIGlmIChzaG91bGRCZVZlcmJvc2UoKSkKKyAgICAgICAgZGF0YUxvZygiZGF0YSA9
ICIsIGxpc3REdW1wKGRhdGEpLCAiXG4iKTsKKyAgICAKKyAgICAvLyBXZSdsbCB3cml0ZSBhIHBy
b2dyYW0gdGhhdCBwcmludHMgdGhlIG51bWJlcnMgMS4uMTAwLgorICAgIC8vIFdlIGV4cGVjdCBE
UCB0byBwb2ludCBhdCAjMC4KKyAgICBjb2RlLmFwcGVuZChBZGRDUCk7CisgICAgY29kZS5hcHBl
bmQoNik7IC8vIGdvIHRvIGxvb3AgYm9keQorICAgIAorICAgIC8vIExvb3AgcmUtZW50cnk6Cisg
ICAgLy8gV2UgZXhwZWN0IERQIHRvIHBvaW50IGF0ICMxIGFuZCBmb3IgIzEgdG8gYmUgb2Zmc2V0
IGJ5IC0xMDAuCisgICAgY29kZS5hcHBlbmQoQWRkKTsKKyAgICBjb2RlLmFwcGVuZCgxMDApOwor
ICAgIAorICAgIGNvZGUuYXBwZW5kKEFkZERQKTsKKyAgICBjb2RlLmFwcGVuZCgtMSk7CisgICAg
CisgICAgLy8gTG9vcCBoZWFkZXI6CisgICAgLy8gV2UgZXhwZWN0IERQIHRvIHBvaW50IGF0ICMw
LgorICAgIGNvZGUuYXBwZW5kKEFkZERQKTsKKyAgICBjb2RlLmFwcGVuZCgxKTsKKyAgICAKKyAg
ICBjb2RlLmFwcGVuZChBZGQpOworICAgIGNvZGUuYXBwZW5kKDEpOworICAgIAorICAgIGNvZGUu
YXBwZW5kKFByaW50KTsKKyAgICAKKyAgICBjb2RlLmFwcGVuZChBZGQpOworICAgIGNvZGUuYXBw
ZW5kKC0xMDApOworICAgIAorICAgIC8vIFdlIHdhbnQgdG8gc3RvcCBpZiBpdCdzIHplcm8gYW5k
IGNvbnRpbnVlIGlmIGl0J3Mgbm9uLXplcm8uIEFkZENQIHRha2VzIHRoZSBicmFuY2ggaWYgaXQn
cworICAgIC8vIG5vbi16ZXJvLgorICAgIGNvZGUuYXBwZW5kKEFkZENQKTsKKyAgICBjb2RlLmFw
cGVuZCgtMTEpOyAvLyBnbyB0byBsb29wIHJlLWVudHJ5LgorICAgIAorICAgIGNvZGUuYXBwZW5k
KFN0b3ApOworICAgIAorICAgIGlmIChzaG91bGRCZVZlcmJvc2UoKSkKKyAgICAgICAgZGF0YUxv
ZygiY29kZSA9ICIsIGxpc3REdW1wKGNvZGUpLCAiXG4iKTsKKyAgICAKKyAgICBDSEVDSyghaW52
b2tlPGludHB0cl90PigqaW50ZXJwcmV0ZXIsIGRhdGEuZGF0YSgpLCBjb2RlLmRhdGEoKSwgJnN0
cmVhbSkpOworICAgIAorICAgIENIRUNLKHN0cmVhbS5zaXplKCkgPT0gMTAwKTsKKyAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgMTAwOyArK2kpCisgICAgICAgIENIRUNLKHN0cmVhbVtpXSA9
PSBpICsgMSk7CisgICAgCisgICAgaWYgKHNob3VsZEJlVmVyYm9zZSgpKQorICAgICAgICBkYXRh
TG9nKCJzdHJlYW0gPSAiLCBsaXN0RHVtcChzdHJlYW0pLCAiXG4iKTsKK30KKwogdm9pZCB0ZXN0
UmVkdWNlU3RyZW5ndGhDaGVja0JvdHRvbVVzZUluQW5vdGhlckJsb2NrKCkKIHsKICAgICBQcm9j
ZWR1cmUgcHJvYzsKQEAgLTEyMTEwLDcgKzEyMzQ4LDcgQEAgdm9pZCB0ZXN0UmVkdWNlU3RyZW5n
dGhDaGVja0JvdHRvbVVzZUluQQogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsK
ICAgICBWYWx1ZSogYXJnID0gb25lLT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgb25lLT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHR3bykpOwor
ICAgIG9uZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVx
dWVudGVkQmxvY2sodHdvKSk7CiAgICAgCiAgICAgY2hlY2sgPSB0d28tPmFwcGVuZE5ldzxDaGVj
a1ZhbHVlPigKICAgICAgICAgcHJvYywgQ2hlY2tBZGQsIE9yaWdpbigpLCBhcmcsCkBAIC0xMjEx
OSw3ICsxMjM1Nyw3IEBAIHZvaWQgdGVzdFJlZHVjZVN0cmVuZ3RoQ2hlY2tCb3R0b21Vc2VJbkEK
ICAgICAgICAgWyZdIChDQ2FsbEhlbHBlcnMmLCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJh
bXMmKSB7CiAgICAgICAgICAgICBDSEVDSyghIlNob3VsZCBub3QgZXhlY3V0ZSIpOwogICAgICAg
ICB9KTsKLSAgICB0d28tPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIGNoZWNrKTsKKyAgICB0d28tPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBjaGVjayk7CiAgICAgCiAgICAgcHJvYy5yZXNldFJlYWNoYWJpbGl0eSgp
OwogICAgIHJlZHVjZVN0cmVuZ3RoKHByb2MpOwpAQCAtMTIxMzQsMTEgKzEyMzcyLDExIEBAIHZv
aWQgdGVzdFJlc2V0UmVhY2hhYmlsaXR5RGFuZ2xpbmdSZWZlcmUKICAgICAKICAgICBVcHNpbG9u
VmFsdWUqIHVwc2lsb24gPSBvbmUtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KAogICAgICAgICBw
cm9jLCBPcmlnaW4oKSwgb25lLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgNDIpKTsKLSAgICBvbmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIE9vcHMsIE9y
aWdpbigpKTsKKyAgICBvbmUtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBPb3BzLCBPcmln
aW4oKSk7CiAgICAgCiAgICAgVmFsdWUqIHBoaSA9IHR3by0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBQaGksIEludDMyLCBPcmlnaW4oKSk7CiAgICAgdXBzaWxvbi0+c2V0UGhpKHBoaSk7Ci0gICAg
dHdvLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBPb3BzLCBPcmlnaW4oKSk7CisgICAg
dHdvLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgT29wcywgT3JpZ2luKCkpOwogICAgIAog
ICAgIHByb2MucmVzZXRSZWFjaGFiaWxpdHkoKTsKICAgICB2YWxpZGF0ZShwcm9jKTsKQEAgLTEz
NTQ3LDYgKzEzNzg1LDcgQEAgdm9pZCBydW4oY29uc3QgY2hhciogZmlsdGVyKQogICAgIFJVTih0
ZXN0U3BpbGxEZWZTbWFsbGVyVGhhblVzZSgpKTsKICAgICBSVU4odGVzdFNwaWxsVXNlTGFyZ2Vy
VGhhbkRlZigpKTsKICAgICBSVU4odGVzdExhdGVSZWdpc3RlcigpKTsKKyAgICBSVU4odGVzdFRo
cmVhZGVkSW50ZXJwcmV0ZXIoKSk7CiAgICAgUlVOKHRlc3RSZWR1Y2VTdHJlbmd0aENoZWNrQm90
dG9tVXNlSW5Bbm90aGVyQmxvY2soKSk7CiAgICAgUlVOKHRlc3RSZXNldFJlYWNoYWJpbGl0eURh
bmdsaW5nUmVmZXJlbmNlKCkpOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0FpckNvZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyQ29kZS5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyQ29kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2lu
Y2x1ZGUgIkFpckNDYWxsU3BlY2lhbC5oIgogI2luY2x1ZGUgIkIzQmFzaWNCbG9ja1V0aWxzLmgi
CisjaW5jbHVkZSAiQjNQcm9jZWR1cmUuaCIKICNpbmNsdWRlICJCM1N0YWNrU2xvdC5oIgogCiBu
YW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsgbmFtZXNwYWNlIEFpciB7CkBAIC0xMzUsNiAr
MTM2LDExIEBAIHZvaWQgQ29kZTo6YWRkRmFzdFRtcChUbXAgdG1wKQogICAgIG1fZmFzdFRtcHMu
YWRkKHRtcCk7CiB9CiAKK3ZvaWQqIENvZGU6OmFkZERhdGFTZWN0aW9uKHNpemVfdCBzaXplKQor
eworICAgIHJldHVybiBtX3Byb2MuYWRkRGF0YVNlY3Rpb24oc2l6ZSk7Cit9CisKIHVuc2lnbmVk
IENvZGU6OmpzSGFzaCgpIGNvbnN0CiB7CiAgICAgdW5zaWduZWQgcmVzdWx0ID0gMDsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5oCShyZXZpc2lvbiAyMDI4MDkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuaAkod29ya2luZyBjb3B5KQpA
QCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkFpclNwZWNpYWwuaCIKICNpbmNsdWRlICJBaXJT
dGFja1Nsb3QuaCIKICNpbmNsdWRlICJBaXJUbXAuaCIKKyNpbmNsdWRlICJCM0luZGV4TWFwLmgi
CiAjaW5jbHVkZSAiQjNTcGFyc2VDb2xsZWN0aW9uLmgiCiAjaW5jbHVkZSAiUmVnaXN0ZXJBdE9m
ZnNldExpc3QuaCIKICNpbmNsdWRlICJTdGFja0FsaWdubWVudC5oIgpAQCAtMjAzLDYgKzIwNCw4
IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZEZhc3RUbXAoVG1wKTsKICAgICBib29sIGlzRmFzdFRt
cChUbXAgdG1wKSBjb25zdCB7IHJldHVybiBtX2Zhc3RUbXBzLmNvbnRhaW5zKHRtcCk7IH0KICAg
ICAKKyAgICB2b2lkKiBhZGREYXRhU2VjdGlvbihzaXplX3QpOworICAgIAogICAgIC8vIFRoZSBu
YW1lIGhhcyB0byBiZSBhIHN0cmluZyBsaXRlcmFsLCBzaW5jZSB3ZSBkb24ndCBkbyBhbnkgbWVt
b3J5IG1hbmFnZW1lbnQgZm9yIHRoZSBzdHJpbmcuCiAgICAgdm9pZCBzZXRMYXN0UGhhc2VOYW1l
KGNvbnN0IGNoYXIqIG5hbWUpCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9BaXJDdXN0b20uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
YWlyL0FpckN1c3RvbS5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL0FpckN1c3RvbS5oCSh3b3JraW5nIGNvcHkpCkBAIC04NCwxMCArODQsMTUgQEAg
c3RydWN0IFBhdGNoQ3VzdG9tIHsKICAgICB7CiAgICAgICAgIHJldHVybiBpbnN0LmFyZ3NbMF0u
c3BlY2lhbCgpLT5zaG91bGRUcnlBbGlhc2luZ0RlZihpbnN0KTsKICAgICB9CisgICAgCisgICAg
c3RhdGljIGJvb2wgaXNUZXJtaW5hbChJbnN0JiBpbnN0KQorICAgIHsKKyAgICAgICAgcmV0dXJu
IGluc3QuYXJnc1swXS5zcGVjaWFsKCktPmlzVGVybWluYWwoaW5zdCk7CisgICAgfQogCiAgICAg
c3RhdGljIGJvb2wgaGFzTm9uQXJnTm9uQ29udHJvbEVmZmVjdHMoSW5zdCYgaW5zdCkKICAgICB7
Ci0gICAgICAgIHJldHVybiBpbnN0LmFyZ3NbMF0uc3BlY2lhbCgpLT5oYXNOb25BcmdOb25Db250
cm9sRWZmZWN0cygpOworICAgICAgICByZXR1cm4gaW5zdC5hcmdzWzBdLnNwZWNpYWwoKS0+aGFz
Tm9uQXJnTm9uQ29udHJvbEVmZmVjdHMoaW5zdCk7CiAgICAgfQogCiAgICAgc3RhdGljIENDYWxs
SGVscGVyczo6SnVtcCBnZW5lcmF0ZSgKQEAgLTEzOCw2ICsxNDMsMTEgQEAgc3RydWN0IENDYWxs
Q3VzdG9tIHsKICAgICB7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KKyAgICAKKyAgICBz
dGF0aWMgYm9vbCBpc1Rlcm1pbmFsKEluc3QmKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH0KIAogICAgIHN0YXRpYyBib29sIGhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKElu
c3QmKQogICAgIHsKQEAgLTE5Nyw2ICsyMDcsMTEgQEAgc3RydWN0IFNodWZmbGVDdXN0b20gewog
ICAgICAgICB9CiAgICAgfQogCisgICAgc3RhdGljIGJvb2wgaXNUZXJtaW5hbChJbnN0JikKKyAg
ICB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKICAgICBzdGF0aWMgYm9vbCBoYXNO
b25BcmdOb25Db250cm9sRWZmZWN0cyhJbnN0JikKICAgICB7CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGUuY3Bw
CShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckdl
bmVyYXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAsOCArNTAsMTAgQEAKICNpbmNsdWRlICJC
M0luZGV4TWFwLmgiCiAjaW5jbHVkZSAiQjNQcm9jZWR1cmUuaCIKICNpbmNsdWRlICJCM1RpbWlu
Z1Njb3BlLmgiCisjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJDQ2FsbEhl
bHBlcnMuaCIKICNpbmNsdWRlICJEaXNhbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UuaCIK
KyNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMg
eyBuYW1lc3BhY2UgQWlyIHsKIApAQCAtMTczLDEyICsxNzUsMTYgQEAgdm9pZCBnZW5lcmF0ZShD
b2RlJiBjb2RlLCBDQ2FsbEhlbHBlcnMmIAogCiAgICAgR2VuZXJhdGlvbkNvbnRleHQgY29udGV4
dDsKICAgICBjb250ZXh0LmNvZGUgPSAmY29kZTsKLSAgICBJbmRleE1hcDxCYXNpY0Jsb2NrLCBD
Q2FsbEhlbHBlcnM6OkxhYmVsPiBibG9ja0xhYmVscyhjb2RlLnNpemUoKSk7CisgICAgY29udGV4
dC5ibG9ja0xhYmVscy5yZXNpemUoY29kZS5zaXplKCkpOworICAgIGZvciAoQmFzaWNCbG9jayog
YmxvY2sgOiBjb2RlKSB7CisgICAgICAgIGlmIChibG9jaykKKyAgICAgICAgICAgIGNvbnRleHQu
YmxvY2tMYWJlbHNbYmxvY2tdID0gQm94PENDYWxsSGVscGVyczo6TGFiZWw+OjpjcmVhdGUoKTsK
KyAgICB9CiAgICAgSW5kZXhNYXA8QmFzaWNCbG9jaywgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdD4g
YmxvY2tKdW1wcyhjb2RlLnNpemUoKSk7CiAKICAgICBhdXRvIGxpbmsgPSBbJl0gKENDYWxsSGVs
cGVyczo6SnVtcCBqdW1wLCBCYXNpY0Jsb2NrKiB0YXJnZXQpIHsKLSAgICAgICAgaWYgKGJsb2Nr
TGFiZWxzW3RhcmdldF0uaXNTZXQoKSkgewotICAgICAgICAgICAganVtcC5saW5rVG8oYmxvY2tM
YWJlbHNbdGFyZ2V0XSwgJmppdCk7CisgICAgICAgIGlmIChjb250ZXh0LmJsb2NrTGFiZWxzW3Rh
cmdldF0tPmlzU2V0KCkpIHsKKyAgICAgICAgICAgIGp1bXAubGlua1RvKCpjb250ZXh0LmJsb2Nr
TGFiZWxzW3RhcmdldF0sICZqaXQpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAK
QEAgLTE5NSwxNiArMjAxLDIyIEBAIHZvaWQgZ2VuZXJhdGUoQ29kZSYgY29kZSwgQ0NhbGxIZWxw
ZXJzJiAKICAgICB9OwogCiAgICAgZm9yIChCYXNpY0Jsb2NrKiBibG9jayA6IGNvZGUpIHsKKyAg
ICAgICAgY29udGV4dC5jdXJyZW50QmxvY2sgPSBibG9jazsKKyAgICAgICAgY29udGV4dC5pbmRl
eEluQmxvY2sgPSBVSU5UX01BWDsKICAgICAgICAgYmxvY2tKdW1wc1tibG9ja10ubGluaygmaml0
KTsKLSAgICAgICAgYmxvY2tMYWJlbHNbYmxvY2tdID0gaml0LmxhYmVsKCk7CisgICAgICAgIEND
YWxsSGVscGVyczo6TGFiZWwgbGFiZWwgPSBqaXQubGFiZWwoKTsKKyAgICAgICAgKmNvbnRleHQu
YmxvY2tMYWJlbHNbYmxvY2tdID0gbGFiZWw7CiAgICAgICAgIEFTU0VSVChibG9jay0+c2l6ZSgp
ID49IDEpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgYmxvY2stPnNpemUoKSAt
IDE7ICsraSkgeworICAgICAgICAgICAgY29udGV4dC5pbmRleEluQmxvY2sgPSBpOwogICAgICAg
ICAgICAgSW5zdCYgaW5zdCA9IGJsb2NrLT5hdChpKTsKICAgICAgICAgICAgIGFkZEl0ZW0oaW5z
dCk7CiAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAganVtcCA9IGluc3QuZ2VuZXJhdGUo
aml0LCBjb250ZXh0KTsKICAgICAgICAgICAgIEFTU0VSVF9VTlVTRUQoanVtcCwgIWp1bXAuaXNT
ZXQoKSk7CiAgICAgICAgIH0KIAorICAgICAgICBjb250ZXh0LmluZGV4SW5CbG9jayA9IGJsb2Nr
LT5zaXplKCkgLSAxOworICAgICAgICAKICAgICAgICAgaWYgKGJsb2NrLT5sYXN0KCkub3Bjb2Rl
ID09IEp1bXAKICAgICAgICAgICAgICYmIGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKSA9PSBjb2Rl
LmZpbmROZXh0QmxvY2soYmxvY2spKQogICAgICAgICAgICAgY29udGludWU7CkBAIC0yMjgsMjYg
KzI0MCwzMCBAQCB2b2lkIGdlbmVyYXRlKENvZGUmIGNvZGUsIENDYWxsSGVscGVycyYgCiAgICAg
ICAgICAgICBhZGRJdGVtKGJsb2NrLT5sYXN0KCkpOwogICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgIH0KLQorICAgICAgICAKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGp1bXAgPSBi
bG9jay0+bGFzdCgpLmdlbmVyYXRlKGppdCwgY29udGV4dCk7Ci0gICAgICAgIHN3aXRjaCAoYmxv
Y2stPm51bVN1Y2Nlc3NvcnMoKSkgewotICAgICAgICBjYXNlIDA6Ci0gICAgICAgICAgICBBU1NF
UlQoIWp1bXAuaXNTZXQoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAxOgot
ICAgICAgICAgICAgbGluayhqdW1wLCBibG9jay0+c3VjY2Vzc29yQmxvY2soMCkpOwotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgMjoKLSAgICAgICAgICAgIGxpbmsoanVtcCwgYmxv
Y2stPnN1Y2Nlc3NvckJsb2NrKDApKTsKLSAgICAgICAgICAgIGlmIChibG9jay0+c3VjY2Vzc29y
QmxvY2soMSkgIT0gY29kZS5maW5kTmV4dEJsb2NrKGJsb2NrKSkKLSAgICAgICAgICAgICAgICBs
aW5rKGppdC5qdW1wKCksIGJsb2NrLT5zdWNjZXNzb3JCbG9jaygxKSk7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgLy8gVGhlIGp1bXAgd29uJ3Qg
YmUgc2V0IGZvciBwYXRjaHBvaW50cy4gSXQgd29uJ3QgYmUgc2V0IGZvciBPb3BzIGJlY2F1c2Ug
dGhlbiBpdCB3b24ndCBoYXZlCisgICAgICAgIC8vIGFueSBzdWNjZXNzb3JzLgorICAgICAgICBp
ZiAoanVtcC5pc1NldCgpKSB7CisgICAgICAgICAgICBzd2l0Y2ggKGJsb2NrLT5udW1TdWNjZXNz
b3JzKCkpIHsKKyAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICBsaW5rKGp1bXAs
IGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICAgICAgbGluayhqdW1wLCBibG9jay0+c3VjY2Vz
c29yQmxvY2soMCkpOworICAgICAgICAgICAgICAgIGlmIChibG9jay0+c3VjY2Vzc29yQmxvY2so
MSkgIT0gY29kZS5maW5kTmV4dEJsb2NrKGJsb2NrKSkKKyAgICAgICAgICAgICAgICAgICAgbGlu
ayhqaXQuanVtcCgpLCBibG9jay0+c3VjY2Vzc29yQmxvY2soMSkpOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
fQogICAgICAgICB9CiAgICAgICAgIGFkZEl0ZW0oYmxvY2stPmxhc3QoKSk7CiAgICAgfQorICAg
IAorICAgIGNvbnRleHQuY3VycmVudEJsb2NrID0gbnVsbHB0cjsKKyAgICBjb250ZXh0LmluZGV4
SW5CbG9jayA9IFVJTlRfTUFYOwogCiAgICAgcGNUb09yaWdpbk1hcC5hcHBlbmRJdGVtKGppdC5s
YWJlbCgpLCBPcmlnaW4oKSk7CiAgICAgLy8gRklYTUU6IE1ha2UgbGF0ZSBwYXRocyBoYXZlIE9y
aWdpbnM6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM2ODkKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGlvbkNvbnRleHQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRpb25D
b250ZXh0LmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvQWlyR2VuZXJhdGlvbkNvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCwxNCArMjgsMTQgQEAK
IAogI2lmIEVOQUJMRShCM19KSVQpCiAKKyNpbmNsdWRlICJBaXJCYXNpY0Jsb2NrLmgiCisjaW5j
bHVkZSAiQjNJbmRleE1hcC5oIgorI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgorI2luY2x1ZGUg
PHd0Zi9Cb3guaD4KICNpbmNsdWRlIDx3dGYvU2hhcmVkVGFzay5oPgogI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KIAotbmFtZXNwYWNlIEpTQyB7Ci0KLWNsYXNzIENDYWxsSGVscGVyczsKLQotbmFt
ZXNwYWNlIEIzIHsgbmFtZXNwYWNlIEFpciB7CituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIz
IHsgbmFtZXNwYWNlIEFpciB7CiAKIGNsYXNzIENvZGU7CiAKQEAgLTQ0LDcgKzQ0LDEwIEBAIHN0
cnVjdCBHZW5lcmF0aW9uQ29udGV4dCB7CiAgICAgdHlwZWRlZiBTaGFyZWRUYXNrPExhdGVQYXRo
RnVuY3Rpb24+IExhdGVQYXRoOwogCiAgICAgVmVjdG9yPFJlZlB0cjxMYXRlUGF0aD4+IGxhdGVQ
YXRoczsKLSAgICBDb2RlKiBjb2RlOworICAgIEluZGV4TWFwPEJhc2ljQmxvY2ssIEJveDxDQ2Fs
bEhlbHBlcnM6OkxhYmVsPj4gYmxvY2tMYWJlbHM7CisgICAgQmFzaWNCbG9jayogY3VycmVudEJs
b2NrIHsgbnVsbHB0ciB9OworICAgIHVuc2lnbmVkIGluZGV4SW5CbG9jayB7IFVJTlRfTUFYIH07
CisgICAgQ29kZSogY29kZSB7IG51bGxwdHIgfTsKIH07CiAKIH0gfSB9IC8vIG5hbWVzcGFjZSBK
U0M6OkIzOjpBaXIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdC5oCShy
ZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckluc3Qu
aAkod29ya2luZyBjb3B5KQpAQCAtMTYzLDYgKzE2Myw5IEBAIHB1YmxpYzoKICAgICAvLyBUaGlz
IGZ1bmN0aW9uIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IG9wY29kZV9nZW5lcmF0b3IucmIuCiAgICAg
Ym9vbCBhZG1pdHNTdGFjayh1bnNpZ25lZCBhcmdJbmRleCk7CiAgICAgYm9vbCBhZG1pdHNTdGFj
ayhBcmcmKTsKKyAgICAKKyAgICAvLyBEZWZpbmVkIGJ5IG9wY29kZV9nZW5lcmF0b3IucmIuCisg
ICAgYm9vbCBpc1Rlcm1pbmFsKCk7CiAKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhpcyBpbnN0
cnVjdGlvbiBjYW4gaGF2ZSBhbnkgZWZmZWN0cyBvdGhlciB0aGFuIGNvbnRyb2wgZmxvdyBvciBh
cmd1bWVudHMuCiAgICAgYm9vbCBoYXNOb25BcmdOb25Db250cm9sRWZmZWN0cygpOwpAQCAtMTc0
LDYgKzE3Nyw5IEBAIHB1YmxpYzoKIAogICAgIC8vIFRlbGxzIHlvdSBpZiB0aGlzIG9wZXJhdGlv
biBoYXMgYXJnIGVmZmVjdHMuCiAgICAgYm9vbCBoYXNBcmdFZmZlY3RzKCk7CisgICAgCisgICAg
Ly8gVGVsbHMgeW91IGlmIHRoaXMgb3BlcmF0aW9uIGhhcyBub24tY29udHJvbCBlZmZlY3RzLgor
ICAgIGJvb2wgaGFzTm9uQ29udHJvbEVmZmVjdHMoKSB7IHJldHVybiBoYXNOb25BcmdOb25Db250
cm9sRWZmZWN0cygpIHx8IGhhc0FyZ0VmZmVjdHMoKTsgfQogCiAgICAgLy8gR2VuZXJhdGUgc29t
ZSBjb2RlIGZvciB0aGlzIGluc3RydWN0aW9uLiBUaGlzIGlzLCBsaWtlLCBsaXRlcmFsbHkgb3Vy
IGJhY2tlbmQuIElmIHRoaXMgaXMgdGhlCiAgICAgLy8gdGVybWluYWwsIGl0IHJldHVybnMgdGhl
IGp1bXAgdGhhdCBuZWVkcyB0byBiZSBsaW5rZWQgZm9yIHRoZSAidGhlbiIgY2FzZSwgd2l0aCB0
aGUgImVsc2UiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclNpbXBsaWZ5
Q0ZHLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclNp
bXBsaWZ5Q0ZHLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJTaW1wbGlmeUNGRy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk1LDMzICs5NSwz
MiBAQCBib29sIHNpbXBsaWZ5Q0ZHKENvZGUmIGNvZGUpCiAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgfQogCi0gICAgICAgICAgICAvLyBOb3cgY2hlY2sgaWYgdGhlIGJsb2NrJ3MgdGVy
bWluYWwgY2FuIGJlIHJlcGxhY2VkIHdpdGggYSBqdW1wLgotICAgICAgICAgICAgaWYgKGJsb2Nr
LT5udW1TdWNjZXNzb3JzKCkgPiAxKSB7Ci0gICAgICAgICAgICAgICAgLy8gVGhlIHRlcm1pbmFs
IG11c3Qgbm90IGhhdmUgd2VpcmQgZWZmZWN0cy4KLSAgICAgICAgICAgICAgICBpZiAoIWJsb2Nr
LT5sYXN0KCkuaGFzQXJnRWZmZWN0cygpCi0gICAgICAgICAgICAgICAgICAgICYmICFibG9jay0+
bGFzdCgpLmhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKCkpIHsKLSAgICAgICAgICAgICAgICAg
ICAgLy8gQWxsIG9mIHRoZSBzdWNjZXNzb3JzIG11c3QgYmUgdGhlIHNhbWUuCi0gICAgICAgICAg
ICAgICAgICAgIGJvb2wgYWxsU2FtZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIEJhc2lj
QmxvY2sqIGZpcnN0U3VjY2Vzc29yID0gYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDApOwotICAgICAg
ICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAxOyBpIDwgYmxvY2stPm51bVN1Y2Nlc3Nv
cnMoKTsgKytpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYmxvY2stPnN1Y2Nlc3Nv
ckJsb2NrKGkpICE9IGZpcnN0U3VjY2Vzc29yKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYWxsU2FtZSA9IGZhbHNlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgICAgIGlmIChhbGxTYW1lKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAo
dmVyYm9zZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhTG9nKCJDaGFuZ2luZyAi
LCBwb2ludGVyRHVtcChibG9jayksICIncyB0ZXJtaW5hbCB0byBhIEp1bXAuXG4iKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGJsb2NrLT5sYXN0KCkgPSBJbnN0KEp1bXAsIGJsb2NrLT5sYXN0
KCkub3JpZ2luKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLT5zdWNjZXNzb3JzKCku
cmVzaXplKDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2stPnN1Y2Nlc3NvcnMoKVsw
XS5mcmVxdWVuY3koKSA9IEZyZXF1ZW5jeUNsYXNzOjpOb3JtYWw7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAgICAgIC8vIE5vdyBjaGVjayBpZiB0aGUg
YmxvY2sncyB0ZXJtaW5hbCBjYW4gYmUgcmVwbGFjZWQgd2l0aCBhIGp1bXAuIFRoZSB0ZXJtaW5h
bCBtdXN0IG5vdAorICAgICAgICAgICAgLy8gaGF2ZSB3ZWlyZCBlZmZlY3RzLgorICAgICAgICAg
ICAgaWYgKGJsb2NrLT5udW1TdWNjZXNzb3JzKCkgPiAxIAorICAgICAgICAgICAgICAgICYmICFi
bG9jay0+bGFzdCgpLmhhc05vbkNvbnRyb2xFZmZlY3RzKCkpIHsKKyAgICAgICAgICAgICAgICAv
LyBBbGwgb2YgdGhlIHN1Y2Nlc3NvcnMgbXVzdCBiZSB0aGUgc2FtZS4KKyAgICAgICAgICAgICAg
ICBib29sIGFsbFNhbWUgPSB0cnVlOworICAgICAgICAgICAgICAgIEJhc2ljQmxvY2sqIGZpcnN0
U3VjY2Vzc29yID0gYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDApOworICAgICAgICAgICAgICAgIGZv
ciAodW5zaWduZWQgaSA9IDE7IGkgPCBibG9jay0+bnVtU3VjY2Vzc29ycygpOyArK2kpIHsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKGJsb2NrLT5zdWNjZXNzb3JCbG9jayhpKSAhPSBmaXJzdFN1
Y2Nlc3NvcikgeworICAgICAgICAgICAgICAgICAgICAgICAgYWxsU2FtZSA9IGZhbHNlOworICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGFsbFNhbWUpIHsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgICAgICAgICBkYXRhTG9nKCJD
aGFuZ2luZyAiLCBwb2ludGVyRHVtcChibG9jayksICIncyB0ZXJtaW5hbCB0byBhIEp1bXAuXG4i
KTsKKyAgICAgICAgICAgICAgICAgICAgYmxvY2stPmxhc3QoKSA9IEluc3QoSnVtcCwgYmxvY2st
Pmxhc3QoKS5vcmlnaW4pOworICAgICAgICAgICAgICAgICAgICBibG9jay0+c3VjY2Vzc29ycygp
LnJlc2l6ZSgxKTsKKyAgICAgICAgICAgICAgICAgICAgYmxvY2stPnN1Y2Nlc3NvcnMoKVswXS5m
cmVxdWVuY3koKSA9IEZyZXF1ZW5jeUNsYXNzOjpOb3JtYWw7CisgICAgICAgICAgICAgICAgICAg
IGNoYW5nZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIAogICAg
ICAgICAgICAgLy8gRmluYWxseSBoYW5kbGUganVtcHMgdG8gYSBibG9jayB3aXRoIG9uZSBwcmVk
ZWNlc3Nvci4KLSAgICAgICAgICAgIGlmIChibG9jay0+bnVtU3VjY2Vzc29ycygpID09IDEpIHsK
KyAgICAgICAgICAgIGlmIChibG9jay0+bnVtU3VjY2Vzc29ycygpID09IDEKKyAgICAgICAgICAg
ICAgICAmJiAhYmxvY2stPmxhc3QoKS5oYXNOb25Db250cm9sRWZmZWN0cygpKSB7CiAgICAgICAg
ICAgICAgICAgQmFzaWNCbG9jayogc3VjY2Vzc29yID0gYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDAp
OwogICAgICAgICAgICAgICAgIGlmIChzdWNjZXNzb3IgIT0gYmxvY2sgJiYgc3VjY2Vzc29yLT5u
dW1QcmVkZWNlc3NvcnMoKSA9PSAxKSB7CiAgICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNT
RVJUKHN1Y2Nlc3Nvci0+cHJlZGVjZXNzb3IoMCkgPT0gYmxvY2spOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJTcGVjaWFsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclNwZWNpYWwuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclNwZWNpYWwuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTU1LDcgKzU1LDEyIEBAIE9wdGlvbmFsPHVuc2lnbmVkPiBTcGVjaWFsOjpzaG91bGRUcnlB
bGkKICAgICByZXR1cm4gTnVsbG9wdDsKIH0KIAotYm9vbCBTcGVjaWFsOjpoYXNOb25BcmdOb25D
b250cm9sRWZmZWN0cygpCitib29sIFNwZWNpYWw6OmlzVGVybWluYWwoSW5zdCYpCit7CisgICAg
cmV0dXJuIGZhbHNlOworfQorCitib29sIFNwZWNpYWw6Omhhc05vbkFyZ05vbkNvbnRyb2xFZmZl
Y3RzKEluc3QmKQogewogICAgIHJldHVybiB0cnVlOwogfQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL2Fpci9BaXJTcGVjaWFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL2Fpci9BaXJTcGVjaWFsLmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyU3BlY2lhbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTg3LDkgKzg3
LDEyIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgY29uc3QgUmVnaXN0ZXJTZXQmIGV4dHJhRWFy
bHlDbG9iYmVyZWRSZWdzKEluc3QmKSA9IDA7CiAgICAgdmlydHVhbCBjb25zdCBSZWdpc3RlclNl
dCYgZXh0cmFDbG9iYmVyZWRSZWdzKEluc3QmKSA9IDA7CisgICAgCisgICAgLy8gQnkgZGVmYXVs
dCwgdGhpcyByZXR1cm5zIGZhbHNlLgorICAgIHZpcnR1YWwgYm9vbCBpc1Rlcm1pbmFsKEluc3Qm
KTsKIAogICAgIC8vIEJ5IGRlZmF1bHQsIHRoaXMgcmV0dXJucyB0cnVlLgotICAgIHZpcnR1YWwg
Ym9vbCBoYXNOb25BcmdOb25Db250cm9sRWZmZWN0cygpOworICAgIHZpcnR1YWwgYm9vbCBoYXNO
b25BcmdOb25Db250cm9sRWZmZWN0cyhJbnN0Jik7CiAKICAgICB2b2lkIGR1bXAoUHJpbnRTdHJl
YW0mKSBjb25zdDsKICAgICB2b2lkIGRlZXBEdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclZhbGlkYXRlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclZhbGlkYXRlLmNwcAkocmV2aXNp
b24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJWYWxpZGF0ZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
NS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtNzksOSArNzksOSBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgIFZBTElEQVRFKGluc3QuaXNWYWxpZEZvcm0oKSwgKCJBdCAiLCBp
bnN0LCAiIGluICIsICpibG9jaykpOwogICAgICAgICAgICAgICAgIGlmIChpbnN0SW5kZXggPT0g
YmxvY2stPnNpemUoKSAtIDEpCi0gICAgICAgICAgICAgICAgICAgIFZBTElEQVRFKGlzVGVybWlu
YWwoaW5zdC5vcGNvZGUpLCAoIkF0ICIsIGluc3QsICIgaW4gIiwgKmJsb2NrKSk7CisgICAgICAg
ICAgICAgICAgICAgIFZBTElEQVRFKGluc3QuaXNUZXJtaW5hbCgpLCAoIkF0ICIsIGluc3QsICIg
aW4gIiwgKmJsb2NrKSk7CiAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAg
ICBWQUxJREFURSghaXNUZXJtaW5hbChpbnN0Lm9wY29kZSksICgiQXQgIiwgaW5zdCwgIiBpbiAi
LCAqYmxvY2spKTsKKyAgICAgICAgICAgICAgICAgICAgVkFMSURBVEUoIWluc3QuaXNUZXJtaW5h
bCgpLCAoIkF0ICIsIGluc3QsICIgaW4gIiwgKmJsb2NrKSk7CiAKICAgICAgICAgICAgICAgICAv
LyBmb3JFYWNoQXJnIG11c3QgcmV0dXJuIEFyZyYncyB0aGF0IHBvaW50IGludG8gdGhlIGFyZ3Mg
YXJyYXkuCiAgICAgICAgICAgICAgICAgaW5zdC5mb3JFYWNoQXJnKApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJiCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvb3Bjb2RlX2dlbmVyYXRvci5yYgkocmV2aXNpb24g
MjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVfZ2VuZXJhdG9y
LnJiCSh3b3JraW5nIGNvcHkpCkBAIC03MTQsNyArNzE0LDcgQEAgd3JpdGVIKCJPcGNvZGVVdGls
cyIpIHsKICAgICBvdXRwLnB1dHMgInJldHVybiBmYWxzZTsgIgogICAgIG91dHAucHV0cyAifSIK
IAotICAgIG91dHAucHV0cyAiaW5saW5lIGJvb2wgaXNUZXJtaW5hbChPcGNvZGUgb3Bjb2RlKSIK
KyAgICBvdXRwLnB1dHMgImlubGluZSBib29sIGlzRGVmaW5pdGVseVRlcm1pbmFsKE9wY29kZSBv
cGNvZGUpIgogICAgIG91dHAucHV0cyAieyIKICAgICBvdXRwLnB1dHMgInN3aXRjaCAob3Bjb2Rl
KSB7IgogICAgIGRpZEZpbmRUZXJtaW5hbHMgPSBmYWxzZQpAQCAtOTc2LDYgKzk3NiwzMiBAQCB3
cml0ZUgoIk9wY29kZUdlbmVyYXRlZCIpIHsKICAgICBvdXRwLnB1dHMgInJldHVybiBmYWxzZTsi
CiAgICAgb3V0cC5wdXRzICJ9IgogCisgICAgb3V0cC5wdXRzICJib29sIEluc3Q6OmlzVGVybWlu
YWwoKSIKKyAgICBvdXRwLnB1dHMgInsiCisgICAgb3V0cC5wdXRzICJzd2l0Y2ggKG9wY29kZSkg
eyIKKyAgICBmb3VuZFRydWUgPSBmYWxzZQorICAgICRvcGNvZGVzLnZhbHVlcy5lYWNoIHsKKyAg
ICAgICAgfCBvcGNvZGUgfAorICAgICAgICBpZiBvcGNvZGUuYXR0cmlidXRlc1s6dGVybWluYWxd
CisgICAgICAgICAgICBvdXRwLnB1dHMgImNhc2UgI3tvcGNvZGUubmFtZX06IgorICAgICAgICAg
ICAgZm91bmRUcnVlID0gdHJ1ZQorICAgICAgICBlbmQKKyAgICB9CisgICAgaWYgZm91bmRUcnVl
CisgICAgICAgIG91dHAucHV0cyAicmV0dXJuIHRydWU7IgorICAgIGVuZAorICAgICRvcGNvZGVz
LnZhbHVlcy5lYWNoIHsKKyAgICAgICAgfCBvcGNvZGUgfAorICAgICAgICBpZiBvcGNvZGUuY3Vz
dG9tCisgICAgICAgICAgICBvdXRwLnB1dHMgImNhc2UgI3tvcGNvZGUubmFtZX06IgorICAgICAg
ICAgICAgb3V0cC5wdXRzICJyZXR1cm4gI3tvcGNvZGUubmFtZX1DdXN0b206OmlzVGVybWluYWwo
KnRoaXMpOyIKKyAgICAgICAgZW5kCisgICAgfQorICAgIG91dHAucHV0cyAiZGVmYXVsdDoiCisg
ICAgb3V0cC5wdXRzICJyZXR1cm4gZmFsc2U7IgorICAgIG91dHAucHV0cyAifSIKKyAgICBvdXRw
LnB1dHMgIn0iCisgICAgCiAgICAgb3V0cC5wdXRzICJib29sIEluc3Q6Omhhc05vbkFyZ05vbkNv
bnRyb2xFZmZlY3RzKCkiCiAgICAgb3V0cC5wdXRzICJ7IgogICAgIG91dHAucHV0cyAic3dpdGNo
IChvcGNvZGUpIHsiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZH
VG9CMy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dl
ckRGR1RvQjMuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDExIEBA
CiAKICNpbmNsdWRlICJBaXJHZW5lcmF0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIkFsbG93TWFj
cm9TY3JhdGNoUmVnaXN0ZXJVc2FnZS5oIgorI2luY2x1ZGUgIkIzQ2hlY2tWYWx1ZS5oIgorI2lu
Y2x1ZGUgIkIzUGF0Y2hwb2ludFZhbHVlLmgiCisjaW5jbHVkZSAiQjNTbG90QmFzZVZhbHVlLmgi
CiAjaW5jbHVkZSAiQjNTdGFja21hcEdlbmVyYXRpb25QYXJhbXMuaCIKKyNpbmNsdWRlICJCM1Zh
bHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIkNhbGxGcmFtZVNodWZmbGVyLmgiCiAjaW5jbHVkZSAi
Q29kZUJsb2NrV2l0aEpJVFR5cGUuaCIKICNpbmNsdWRlICJERkdBYnN0cmFjdEludGVycHJldGVy
SW5saW5lcy5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmNwcAko
cmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw4ICsyOCwxOCBAQAogCiAjaWYgRU5BQkxFKEZUTF9K
SVQpCiAKKyNpbmNsdWRlICJCM0FyZ3VtZW50UmVnVmFsdWUuaCIKKyNpbmNsdWRlICJCM0Jhc2lj
QmxvY2tJbmxpbmVzLmgiCisjaW5jbHVkZSAiQjNDQ2FsbFZhbHVlLmgiCisjaW5jbHVkZSAiQjND
b25zdDMyVmFsdWUuaCIKKyNpbmNsdWRlICJCM0NvbnN0UHRyVmFsdWUuaCIKICNpbmNsdWRlICJC
M01hdGhFeHRyYXMuaCIKKyNpbmNsdWRlICJCM01lbW9yeVZhbHVlLmgiCisjaW5jbHVkZSAiQjNT
bG90QmFzZVZhbHVlLmgiCiAjaW5jbHVkZSAiQjNTdGFja21hcEdlbmVyYXRpb25QYXJhbXMuaCIK
KyNpbmNsdWRlICJCM1N3aXRjaFZhbHVlLmgiCisjaW5jbHVkZSAiQjNVcHNpbG9uVmFsdWUuaCIK
KyNpbmNsdWRlICJCM1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIlN1cGVyU2FtcGxlci5oIgog
CiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CkBAIC01NzgsMTIgKzU4OCwxMiBAQCBM
VmFsdWUgT3V0cHV0OjpzZWxlY3QoTFZhbHVlIHZhbHVlLCBMVmFsCiAKIHZvaWQgT3V0cHV0Ojpq
dW1wKExCYXNpY0Jsb2NrIGRlc3RpbmF0aW9uKQogewotICAgIG1fYmxvY2stPmFwcGVuZE5ldzxC
Mzo6Q29udHJvbFZhbHVlPihtX3Byb2MsIEIzOjpKdW1wLCBvcmlnaW4oKSwgQjM6OkZyZXF1ZW50
ZWRCbG9jayhkZXN0aW5hdGlvbikpOworICAgIG1fYmxvY2stPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShtX3Byb2MsIEIzOjpKdW1wLCBvcmlnaW4oKSwgQjM6OkZyZXF1ZW50ZWRCbG9jayhkZXN0aW5h
dGlvbikpOwogfQogCiB2b2lkIE91dHB1dDo6YnJhbmNoKExWYWx1ZSBjb25kaXRpb24sIExCYXNp
Y0Jsb2NrIHRha2VuLCBXZWlnaHQgdGFrZW5XZWlnaHQsIExCYXNpY0Jsb2NrIG5vdFRha2VuLCBX
ZWlnaHQgbm90VGFrZW5XZWlnaHQpCiB7Ci0gICAgbV9ibG9jay0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgbV9ibG9jay0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBtX3By
b2MsIEIzOjpCcmFuY2gsIG9yaWdpbigpLCBjb25kaXRpb24sCiAgICAgICAgIEZyZXF1ZW50ZWRC
bG9jayh0YWtlbiwgdGFrZW5XZWlnaHQuZnJlcXVlbmN5Q2xhc3MoKSksCiAgICAgICAgIEZyZXF1
ZW50ZWRCbG9jayhub3RUYWtlbiwgbm90VGFrZW5XZWlnaHQuZnJlcXVlbmN5Q2xhc3MoKSkpOwpA
QCAtNjAzLDEyICs2MTMsMTIgQEAgdm9pZCBPdXRwdXQ6OmNoZWNrKExWYWx1ZSBjb25kaXRpb24s
IFdlaQogCiB2b2lkIE91dHB1dDo6cmV0KExWYWx1ZSB2YWx1ZSkKIHsKLSAgICBtX2Jsb2NrLT5h
cHBlbmROZXc8QjM6OkNvbnRyb2xWYWx1ZT4obV9wcm9jLCBCMzo6UmV0dXJuLCBvcmlnaW4oKSwg
dmFsdWUpOworICAgIG1fYmxvY2stPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShtX3Byb2MsIEIzOjpS
ZXR1cm4sIG9yaWdpbigpLCB2YWx1ZSk7CiB9CiAKIHZvaWQgT3V0cHV0Ojp1bnJlYWNoYWJsZSgp
CiB7Ci0gICAgbV9ibG9jay0+YXBwZW5kTmV3PEIzOjpDb250cm9sVmFsdWU+KG1fcHJvYywgQjM6
Ok9vcHMsIG9yaWdpbigpKTsKKyAgICBtX2Jsb2NrLT5hcHBlbmROZXdDb250cm9sVmFsdWUobV9w
cm9jLCBCMzo6T29wcywgb3JpZ2luKCkpOwogfQogCiBDaGVja1ZhbHVlKiBPdXRwdXQ6OnNwZWN1
bGF0ZShMVmFsdWUgdmFsdWUpCkBAIC02MzgsNyArNjQ4LDcgQEAgUGF0Y2hwb2ludFZhbHVlKiBP
dXRwdXQ6OnBhdGNocG9pbnQoTFR5cAogCiB2b2lkIE91dHB1dDo6dHJhcCgpCiB7Ci0gICAgbV9i
bG9jay0+YXBwZW5kTmV3PEIzOjpDb250cm9sVmFsdWU+KG1fcHJvYywgQjM6Ok9vcHMsIG9yaWdp
bigpKTsKKyAgICBtX2Jsb2NrLT5hcHBlbmROZXdDb250cm9sVmFsdWUobV9wcm9jLCBCMzo6T29w
cywgb3JpZ2luKCkpOwogfQogCiBWYWx1ZUZyb21CbG9jayBPdXRwdXQ6OmFuY2hvcihMVmFsdWUg
dmFsdWUpCkBAIC03MjksNiArNzM5LDExIEBAIHZvaWQgT3V0cHV0OjpkZWNyZW1lbnRTdXBlclNh
bXBsZXJDb3VudCgKICAgICBzdG9yZTMyKHN1Yihsb2FkMzIoY291bnRlciksIGludDMyT25lKSwg
Y291bnRlcik7CiB9CiAKK3ZvaWQgT3V0cHV0OjphZGRJbmNvbWluZ1RvUGhpKExWYWx1ZSBwaGks
IFZhbHVlRnJvbUJsb2NrIHZhbHVlKQoreworICAgIHZhbHVlLnZhbHVlKCktPmFzPEIzOjpVcHNp
bG9uVmFsdWU+KCktPnNldFBoaShwaGkpOworfQorCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRM
CiAKICNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMT3V0cHV0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExPdXRwdXQuaAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExPdXRwdXQuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsMTkgKzMwLDEyIEBACiAKICNp
ZiBFTkFCTEUoRlRMX0pJVCkKIAotI2luY2x1ZGUgIkIzQXJndW1lbnRSZWdWYWx1ZS5oIgogI2lu
Y2x1ZGUgIkIzQmFzaWNCbG9ja0lubGluZXMuaCIKICNpbmNsdWRlICJCM0NDYWxsVmFsdWUuaCIK
ICNpbmNsdWRlICJCM0NvbXBpbGF0aW9uLmgiCi0jaW5jbHVkZSAiQjNDb25zdDMyVmFsdWUuaCIK
LSNpbmNsdWRlICJCM0NvbnN0UHRyVmFsdWUuaCIKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5o
IgotI2luY2x1ZGUgIkIzTWVtb3J5VmFsdWUuaCIKKyNpbmNsdWRlICJCM0ZyZXF1ZW50ZWRCbG9j
ay5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJlLmgiCi0jaW5jbHVkZSAiQjNTbG90QmFzZVZhbHVl
LmgiCiAjaW5jbHVkZSAiQjNTd2l0Y2hWYWx1ZS5oIgotI2luY2x1ZGUgIkIzVXBzaWxvblZhbHVl
LmgiCi0jaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJGVExBYmJyZXZpYXRl
ZFR5cGVzLmgiCiAjaW5jbHVkZSAiRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oIgogI2luY2x1
ZGUgIkZUTENvbW1vblZhbHVlcy5oIgpAQCAtNjQsNyArNTcsMTMgQEAKIAogbmFtZXNwYWNlIEpT
QyB7CiAKLW5hbWVzcGFjZSBERkcgeyBzdHJ1Y3QgTm9kZTsgfQorbmFtZXNwYWNlIERGRyB7Citz
dHJ1Y3QgTm9kZTsKK30gLy8gbmFtZXNwYWNlIERGRworCituYW1lc3BhY2UgQjMgeworY2xhc3Mg
U2xvdEJhc2VWYWx1ZTsKK30gLy8gbmFtZXNwYWNlIEIzCiAKIG5hbWVzcGFjZSBGVEwgewogCkBA
IC0xMDYsOSArMTA1LDE5IEBAIHB1YmxpYzoKICAgICBMVmFsdWUgY29uc3RCb29sKGJvb2wgdmFs
dWUpOwogICAgIExWYWx1ZSBjb25zdEludDMyKGludDMyX3QgdmFsdWUpOwogICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFQ+Ci0gICAgTFZhbHVlIGNvbnN0SW50UHRyKFQqIHZhbHVlKSB7IHJldHVybiBt
X2Jsb2NrLT5hcHBlbmROZXc8QjM6OkNvbnN0UHRyVmFsdWU+KG1fcHJvYywgb3JpZ2luKCksIHZh
bHVlKTsgfQorICAgIExWYWx1ZSBjb25zdEludFB0cihUKiB2YWx1ZSkKKyAgICB7CisgICAgICAg
IGlmIChzaXplb2Yodm9pZCopID09IDgpCisgICAgICAgICAgICByZXR1cm4gY29uc3RJbnQ2NChi
aXR3aXNlX2Nhc3Q8aW50cHRyX3Q+KHZhbHVlKSk7CisgICAgICAgIHJldHVybiBjb25zdEludDMy
KGJpdHdpc2VfY2FzdDxpbnRwdHJfdD4odmFsdWUpKTsKKyAgICB9CiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVD4KLSAgICBMVmFsdWUgY29uc3RJbnRQdHIoVCB2YWx1ZSkgeyByZXR1cm4gbV9ibG9j
ay0+YXBwZW5kTmV3PEIzOjpDb25zdFB0clZhbHVlPihtX3Byb2MsIG9yaWdpbigpLCB2YWx1ZSk7
IH0KKyAgICBMVmFsdWUgY29uc3RJbnRQdHIoVCB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmIChz
aXplb2Yodm9pZCopID09IDgpCisgICAgICAgICAgICByZXR1cm4gY29uc3RJbnQ2NChzdGF0aWNf
Y2FzdDxpbnRwdHJfdD4odmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIGNvbnN0SW50MzIoc3RhdGlj
X2Nhc3Q8aW50cHRyX3Q+KHZhbHVlKSk7CisgICAgfQogICAgIExWYWx1ZSBjb25zdEludDY0KGlu
dDY0X3QgdmFsdWUpOwogICAgIExWYWx1ZSBjb25zdERvdWJsZShkb3VibGUgdmFsdWUpOwogCkBA
IC0zNTQsOCArMzYzLDcgQEAgcHVibGljOgogICAgIExWYWx1ZSBjYWxsV2l0aG91dFNpZGVFZmZl
Y3RzKEIzOjpUeXBlIHR5cGUsIEZ1bmN0aW9uIGZ1bmN0aW9uLCBMVmFsdWUgYXJnMSwgQXJncy4u
LiBhcmdzKQogICAgIHsKICAgICAgICAgcmV0dXJuIG1fYmxvY2stPmFwcGVuZE5ldzxCMzo6Q0Nh
bGxWYWx1ZT4obV9wcm9jLCB0eXBlLCBvcmlnaW4oKSwgQjM6OkVmZmVjdHM6Om5vbmUoKSwKLSAg
ICAgICAgICAgIG1fYmxvY2stPmFwcGVuZE5ldzxCMzo6Q29uc3RQdHJWYWx1ZT4obV9wcm9jLCBv
cmlnaW4oKSwgYml0d2lzZV9jYXN0PHZvaWQqPihmdW5jdGlvbikpLAotICAgICAgICAgICAgYXJn
MSwgYXJncy4uLik7CisgICAgICAgICAgICBjb25zdEludFB0cihiaXR3aXNlX2Nhc3Q8dm9pZCo+
KGZ1bmN0aW9uKSksIGFyZzEsIGFyZ3MuLi4pOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIEZ1bmN0aW9uVHlwZT4KQEAgLTM3OCw4ICszODYsOCBAQCBwdWJsaWM6CiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUgVmVjdG9yVHlwZT4KICAgICB2b2lkIHN3aXRjaEluc3RydWN0aW9uKExWYWx1
ZSB2YWx1ZSwgY29uc3QgVmVjdG9yVHlwZSYgY2FzZXMsIExCYXNpY0Jsb2NrIGZhbGxUaHJvdWdo
LCBXZWlnaHQgZmFsbFRocm91Z2hXZWlnaHQpCiAgICAgewotICAgICAgICBCMzo6U3dpdGNoVmFs
dWUqIHN3aXRjaFZhbHVlID0gbV9ibG9jay0+YXBwZW5kTmV3PEIzOjpTd2l0Y2hWYWx1ZT4oCi0g
ICAgICAgICAgICBtX3Byb2MsIG9yaWdpbigpLCB2YWx1ZSwgQjM6OkZyZXF1ZW50ZWRCbG9jayhm
YWxsVGhyb3VnaCkpOworICAgICAgICBCMzo6U3dpdGNoVmFsdWUqIHN3aXRjaFZhbHVlID0gbV9i
bG9jay0+YXBwZW5kTmV3PEIzOjpTd2l0Y2hWYWx1ZT4obV9wcm9jLCBvcmlnaW4oKSwgdmFsdWUp
OworICAgICAgICBzd2l0Y2hWYWx1ZS0+c2V0RmFsbFRocm91Z2goQjM6OkZyZXF1ZW50ZWRCbG9j
ayhmYWxsVGhyb3VnaCkpOwogICAgICAgICBmb3IgKGNvbnN0IFN3aXRjaENhc2UmIHN3aXRjaENh
c2UgOiBjYXNlcykgewogICAgICAgICAgICAgaW50NjRfdCB2YWx1ZSA9IHN3aXRjaENhc2UudmFs
dWUoKS0+YXNJbnQoKTsKICAgICAgICAgICAgIEIzOjpGcmVxdWVudGVkQmxvY2sgdGFyZ2V0KHN3
aXRjaENhc2UudGFyZ2V0KCksIHN3aXRjaENhc2Uud2VpZ2h0KCkuZnJlcXVlbmN5Q2xhc3MoKSk7
CkBAIC00MzksMTEgKzQ0Nyw2IEBAIGlubGluZSBMVmFsdWUgT3V0cHV0OjpwaGkoTFR5cGUgdHlw
ZSwgY28KICAgICByZXR1cm4gcGhpTm9kZTsKIH0KIAotaW5saW5lIHZvaWQgT3V0cHV0OjphZGRJ
bmNvbWluZ1RvUGhpKExWYWx1ZSBwaGksIFZhbHVlRnJvbUJsb2NrIHZhbHVlKQotewotICAgIHZh
bHVlLnZhbHVlKCktPmFzPEIzOjpVcHNpbG9uVmFsdWU+KCktPnNldFBoaShwaGkpOwotfQotCiB0
ZW1wbGF0ZTx0eXBlbmFtZS4uLiBQYXJhbXM+CiBpbmxpbmUgdm9pZCBPdXRwdXQ6OmFkZEluY29t
aW5nVG9QaGkoTFZhbHVlIHBoaSwgVmFsdWVGcm9tQmxvY2sgdmFsdWUsIFBhcmFtcy4uLiB0aGVS
ZXN0KQogewpJbmRleDogV2Vic2l0ZXMvd2Via2l0Lm9yZy9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2Vic2l0ZXMvd2Via2l0Lm9yZy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMjgwOSkKKysrIFdl
YnNpdGVzL3dlYmtpdC5vcmcvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTYtMDUtMjkgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAg
ICBJbXBsZW1lbnQgdGFibGUtYmFzZWQgc3dpdGNoZXMgaW4gQjMvQWlyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTExNDEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFVwZGF0ZSBkb2N1bWVu
dGF0aW9uIGZvciB0aGUgbmV3IFBvbHlKdW1wIG9wY29kZS4KKworICAgICAgICAqIGRvY3MvYjMv
aW50ZXJtZWRpYXRlLXJlcHJlc2VudGF0aW9uLmh0bWw6CisKIDIwMTYtMDctMDEgIEpvbiBEYXZp
cyAgPGpvbmRAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZGVkIGEgY29sb3JmdWwgbmV3IGltYWdl
IGFuZCBmaXhlZCB0aGUgT3BlbiBHcmFwaCBhdHRyaWJ1dGUuCkluZGV4OiBXZWJzaXRlcy93ZWJr
aXQub3JnL2RvY3MvYjMvaW50ZXJtZWRpYXRlLXJlcHJlc2VudGF0aW9uLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2Vic2l0ZXMvd2Via2l0Lm9yZy9kb2NzL2IzL2ludGVybWVkaWF0ZS1yZXByZXNlbnRh
dGlvbi5odG1sCShyZXZpc2lvbiAyMDI4MDkpCisrKyBXZWJzaXRlcy93ZWJraXQub3JnL2RvY3Mv
YjMvaW50ZXJtZWRpYXRlLXJlcHJlc2VudGF0aW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQz
LDcgKzQzLDcgQEAKICAgICA8cD5UaGUgYWN0IG9mIGNvbXBpbGluZyB0aGUgUHJvY2VkdXJlIGNo
YW5nZXMgaXQgaW4tcGxhY2UsIG1ha2luZyBpdCB1bnN1aXRhYmxlIGZvcgogICAgICAgY29tcGls
aW5nIGFnYWluLiAgQWx3YXlzIGNyZWF0ZSBhIG5ldyBQcm9jZWR1cmUgZXZlcnkgdGltZSB5b3Ug
d2FudCB0byBjb21waWxlCiAgICAgICBzb21ldGhpbmcuPC9wPgotCisgICAgCiAgICAgPGgyPlR5
cGVzPC9oMj4KIAogICAgIDxwPkIzIGhhcyBhIHRyaXZpYWwgdHlwZSBzeXN0ZW0gd2l0aCBvbmx5
IGZpdmUgdHlwZXM6PC9wPgpAQCAtMTMwLDggKzEzMCwxNSBAQAogICAgIDxoMj5Db250cm9sIGZs
b3c8L2gyPgogCiAgICAgPHA+QjMgcmVwcmVzZW50cyBjb250cm9sIGZsb3cgdXNpbmcgYmFzaWMg
YmxvY2tzLiAgRWFjaCBiYXNpYyBibG9jayBtYXkgaGF2ZSB6ZXJvIG9yIG1vcmUKLSAgICAgIHBy
ZWRlY2Vzc29ycy4gIEVhY2ggYmFzaWMgYmxvY2sgbWF5IGhhdmUgemVybyBvciBtb3JlIHN1Y2Nl
c3NvcnMuICBUaGUgc3VjY2Vzc29ycyBhcmUKLSAgICAgIGNvbnRyb2xsZWQgYnkgdGhlIGJhc2lj
IGJsb2NrJ3MgbGFzdCBWYWx1ZSwgd2hpY2ggbXVzdCBiZSBhIENvbnRyb2xWYWx1ZSBpbnN0YW5j
ZS48L3A+CisgICAgICBwcmVkZWNlc3NvcnMuICBFYWNoIGJhc2ljIGJsb2NrIG1heSBoYXZlIHpl
cm8gb3IgbW9yZSBzdWNjZXNzb3JzLiAgVGhlIG1lYW5pbmcgb2YgdGhlCisgICAgICBzdWNjZXNz
b3JzIGlzIGRldGVybWluZWQgYnkgdGhlIGJhc2ljIGJsb2NrJ3MgbGFzdCBWYWx1ZSwgd2hpY2gg
bXVzdCBiZSBhIHRlcm1pbmFsLiBBCisgICAgICB2YWx1ZSBpcyB0ZXJtaW5hbCBpZjo8L3A+Cisg
ICAgCisgICAgPHByZT48Y29kZT52YWx1ZS0mZ3Q7ZWZmZWN0cygpLnRlcm1pbmFsPC9jb2RlPjwv
cHJlPgorICAgIAorICAgIDxwPlNvbWUgb3Bjb2RlcyBhcmUgZGVmaW5pdGVseSB0ZXJtaW5hbCwg
bGlrZSBKdW1wLCBCcmFuY2gsIE9vcHMsIFJldHVybiwgYW5kIFN3aXRjaC4gQnV0IGEKKyAgICAg
IHZhbHVlIHdpdGggdGhlIFBhdGNocG9pbnQgb3Bjb2RlIG1heSBvciBtYXkgbm90IGJlIHRlcm1p
bmFsLiBJbiBnZW5lcmFsIGl0J3MgbmVjZXNzYXJ5IHRvCisgICAgICBjaGVjayB0aGUgPGNvZGU+
dGVybWluYWw8L2NvZGU+IGJpdCBhcyBzaG93biBhYm92ZS48L3A+CiAKICAgICA8cD5FYWNoIGJh
c2ljIGJsb2NrIGNvbnRhaW5zIGEgVmVjdG9yJmx0O1ZhbHVlKiZndDsgYXMgdGhlIGNvbnRlbnRz
IG9mIHRoZSBibG9jay4gQ29udHJvbAogICAgICAgZmxvdyBpbnNpZGUgdGhlIGJsb2NrIGlzIGlt
cGxpY2l0IGJhc2VkIG9uIHRoZSBvcmRlciBvZiBWYWx1ZXMgaW4gdGhlIHZlY3Rvci48L3A+CkBA
IC00NTgsNiArNDY1LDE3IEBAIHBhdGNocG9pbnQtPnNldEdlbmVyYXRvcigKICAgICAgICAgICBw
YXRjaHBvaW50IHdpbGwgdGFrZSBzb21lIGV4aXQgc3RhdGUgYXMgcGFydCBvZiBpdHMgYXJndW1l
bnRzLCBhbmQgaXQgd2lsbCBtYW5pcHVsYXRlCiAgICAgICAgICAgdGhlIGNhbGwgZnJhbWUgaW4g
cGxhY2UgdG8gbWFrZSBpdCBsb29rIGxpa2UgYW5vdGhlciBleGVjdXRpb24gZW5naW5lJ3MgY2Fs
bCBmcmFtZS4KICAgICAgICAgICBUaGlzIGlzIGNhbGxlZCBPU1IsIGFuZCBKYXZhU2NyaXB0Q29y
ZSBkb2VzIGl0IGEgbG90LjwvcD4KKyAgICAgICAgCisgICAgICAgIDxwPkEgcGF0Y2hwb2ludCBj
YW4gYmUgdXNlZCBhcyBhIHRlcm1pbmFsLiBTaW1wbHkgc2V0IHRoZSA8Y29kZT50ZXJtaW5hbDwv
Y29kZT4gYml0OjwvcD4KKyAgICAgICAgCisgICAgICAgIDxwcmU+PGNvZGU+cGF0Y2hwb2ludC0m
Z3Q7ZWZmZWN0cy50ZXJtaW5hbCA9IHRydWU7PC9jb2RlPjwvcHJlPgorICAgICAgICAKKyAgICAg
ICAgPHA+VGhlIGdlbmVyYXRvciBjYW4gZGV0ZXJtaW5lIHdoZXJlIHRvIGJyYW5jaCBieSB1c2lu
ZyB0aGUgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zIHRvCisgICAgICAgICAgZ2V0IHRoZSBzZXQg
b2YgbGFiZWxzIGZvciBhbGwgc3VjY2Vzc29ycy4gWW91J3JlIGd1YXJhbnRlZWQgdGhhdCB0aGUg
bnVtYmVyIG9mCisgICAgICAgICAgc3VjY2Vzc29ycyBvZiB0aGUgcGF0Y2hwb2ludCdzIGJhc2lj
IGJsb2NrIHdpbGwgYmUgdGhlIHNhbWUgYXMgd2hlbiB5b3UgY3JlYXRlZCBpdC4KKyAgICAgICAg
ICBIb3dldmVyLCBsaWtlIGFueSB2YWx1ZSwgYSBwYXRjaHBvaW50IG1heSBiZSBjbG9uZWQuIFRo
aXMgbWVhbnMsIGZvciBleGFtcGxlLCB0aGF0IGlmCisgICAgICAgICAgeW91IHVzZSB0aGlzIHRv
IGltcGxlbWVudCBhIHRhYmxlIGp1bXAgdGhlbiB0aGUganVtcCB0YWJsZSBtdXN0IGJlIGNyZWF0
ZWQgaW5zaWRlIHRoZQorICAgICAgICAgIGdlbmVyYXRvciwgc28gdGhhdCB5b3UgZ2V0IG9uZSBq
dW1wIHRhYmxlIHBlciBjbG9uZS48L3A+CiAgCiAgICAgICAgIDxwPk11c3QgdXNlIHRoZSBQYXRj
aHBvaW50VmFsdWUgY2xhc3Mgd2l0aCB0aGUgUGF0Y2hwb2ludCBvcGNvZGUuPC9wPgogICAgICAg
PC9kZD4KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMjgwOSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE2LTA1LTI5ICBGaWxpcCBQaXps
byAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IHRhYmxlLWJhc2VkIHN3
aXRjaGVzIGluIEIzL0FpcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTUxMTQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBqcy9yZWdyZXNzL2JpZ3N3aXRjaC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGpzL3JlZ3Jlc3MvYmlnc3dpdGNoLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL3Jl
Z3Jlc3Mvc2NyaXB0LXRlc3RzL2JpZ3N3aXRjaC5qczogQWRkZWQuCisgICAgICAgIChmb28pOgor
CiAyMDE2LTA3LTA0ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQsIHNraXAgbWlzYy1idWdzLTg0NzM4OS1qcGVnMjAwMC5qcyBpbiBq
c2Mgc3RyZXNzIHRlc3RzCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0
Y2gtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9i
aWdzd2l0Y2gtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAgQEAKK0pT
UmVncmVzcy9iaWdzd2l0Y2gKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
bm8gZXhjZXB0aW9uIHRocm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2guaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9J
RVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJzY3JpcHQtdGVzdHMvYmlnc3dpdGNoLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2JpZ3N3aXRj
aC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9i
aWdzd2l0Y2guanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3Njcmlw
dC10ZXN0cy9iaWdzd2l0Y2guanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMTEgQEAKK2Z1
bmN0aW9uIGZvbyhvKSB7CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCAxMDAwOyArK2kpIHsKKyAgICAgICAgdmFyIHZhbHVlID0gaSAmIDYzOworICAgICAgICBz
d2l0Y2ggKHZhbHVlKSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
LmE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgcmVz
dWx0ICs9IG8uYjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6CisgICAgICAg
ICAgICByZXN1bHQgKz0gby5jOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzoK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSA0OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIDU6CisgICAgICAgICAgICByZXN1bHQgKz0gby5mOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgNjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA3OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8u
aDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDg6CisgICAgICAgICAgICByZXN1
bHQgKz0gby5pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgOToKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxMDoK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSAxMToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSAxMjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSAxMzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmM7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxNDoKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLmQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxNToKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxNjoKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLmY7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSAxNzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSAxODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSAxOToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyMDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
Lmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyMToKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyMjoKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAy
MzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSAyNDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSAyNToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmM7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyNjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmQ7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyNzoKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyODoKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLmY7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyOToK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSAzMDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSAzMToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSAzMjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzMzoKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzNDoKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzNToKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSAzNjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSAzNzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSAzODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmM7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzOToKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
LmQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0MDoKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0MToKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLmY7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0
MjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSA0MzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSA0NDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0NToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0NjoKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0NzoKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0ODoK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSA0OToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSA1MDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSA1MToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1MjoKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLmE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1MzoKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLmI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1NDoKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLmM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSA1NToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmQ7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSA1NjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmU7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSA1NzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmY7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1ODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
Lmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1OToKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLmg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA2MDoKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA2
MToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSA2MjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLno7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworfQorCiso
ZnVuY3Rpb24oKSB7CisgICAgdmFyIG8gPSB7YToxLCBiOjIsIGM6MywgZDo0LCBlOjUsIGY6Niwg
Zzo3LCBoOjgsIGk6OSwgajoxMCwgazoxMSwgejoxMDB9OworICAgIHZhciByZXN1bHQgPSAwOwor
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkKKyAgICAgICAgcmVzdWx0ICs9IGZv
byhvKTsKKyAgICBpZiAocmVzdWx0ICE9IDc5NjYwMDAwKQorICAgICAgICB0aHJvdyAiRXJyb3I6
IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9KSgpOworCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283169</attachid>
            <date>2016-07-08 09:27:44 -0700</date>
            <delta_ts>2016-07-08 15:38:43 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>452547</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAyOTgxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc2NCBA
QAorMjAxNi0wNy0wOCAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IEltcGxlbWVudCB0YWJsZS1iYXNlZCBzd2l0Y2hlcyBpbiBCMy9BaXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTE0MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIElmIGEgc3dpdGNoIHN0YXRlbWVudCBn
ZXRzIGxhcmdlLCBpdCdzIGJldHRlciB0byBleHByZXNzIGl0IGFzIGFuIGluZGlyZWN0IGp1bXAg
cmF0aGVyIHRoYW4KKyAgICAgICAgdXNpbmcgYSBiaW5hcnkgc3dpdGNoIChkaXZpZGUtYW5kLWNv
bnF1ZXIgdHJlZSBvZiBjb21wYXJpc29ucyBsZWFkaW5nIHRvIE8obG9nIG4pIGJyYW5jaGVzIHRv
CisgICAgICAgIGdldCB0byB0aGUgc3dpdGNoIGNhc2UpLiBXaGVuIGRlYWxpbmcgd2l0aCBpbnRl
Z2VyIHN3aXRjaGVzLCBGVEwgd2lsbCBhbHJlYWR5IHVzZSB0aGUgQjMKKyAgICAgICAgU3dpdGNo
IGFuZCBleHBlY3QgdGhpcyB0byBnZXQgbG93ZXJlZCBhcyBlZmZpY2llbnRseSBhcyBwb3NzaWJs
ZTsgaXQncyBhIGJ1ZyB0aGF0IEIzIHdpbGwKKyAgICAgICAgYWx3YXlzIHVzZSBhIGJpbmFyeSBz
d2l0Y2ggcmF0aGVyIHRoYW4gaW5kaXJlY3QganVtcHMuIFdoZW4gZGVhbGluZyB3aXRoIHN3aXRj
aGVzIG92ZXIgc29tZQorICAgICAgICBtb3JlIHNvcGhpc3RpY2F0ZWQgdHlwZXMsIHdlJ2Qgd2Fu
dCBGVEwgdG8gYnVpbGQgYW4gaW5kaXJlY3QganVtcCB0YWJsZSBpdHNlbGYgYW5kIHVzZQorICAg
ICAgICBzb21ldGhpbmcgbGlrZSBhIGhhc2h0YWJsZSB0byBmZWVkIGl0LiBJbiB0aGF0IGNhc2Us
IHRoZXJlIHdpbGwgYmUgbm8gQjMgU3dpdGNoOyB3ZSdsbCB3YW50CisgICAgICAgIHNvbWUga2lu
ZCBvZiBpbmRpcmVjdCBqdW1wIGluc3RydWN0aW9uLgorICAgICAgICAKKyAgICAgICAgVGhpcyBp
bXBsaWVzIHRoYXQgd2Ugd2FudCBCMyB0byBoYXZlIHRoZSBhYmlsaXR5IHRvIGxvd2VyIFN3aXRj
aCB0byBpbmRpcmVjdCBqdW1wcyBhbmQgdG8KKyAgICAgICAgZXhwb3NlIHRob3NlIGluZGlyZWN0
IGp1bXBzIGluIElSIHNvIHRoYXQgdGhlIEZUTCBjb3VsZCBkbyBpdHMgb3duIGluZGlyZWN0IGp1
bXBzIGZvcgorICAgICAgICBzd2l0Y2hlcyBvdmVyIG1vcmUgY29tcGxpY2F0ZWQgdGhpbmdzIGxp
a2Ugc3RyaW5ncy4gQnV0IGluZGlyZWN0IGp1bXBzIGFyZSB0b3VnaCB0byBleHByZXNzCisgICAg
ICAgIGluIElSLiBGb3IgZXhhbXBsZSwgdGhlIExMVk0gYXBwcm9hY2ggbWVhbnMgdGhhdCBiYXNp
YyBibG9ja3MgY2FuIGVzY2FwZS4gVGhpcyBpbXBsaWVzIHRoYXQKKyAgICAgICAgQ0ZHIHRyYW5z
Zm9ybWF0aW9ucyBoYXZlIHRvIGF2b2lkIG1lc3Npbmcgd2l0aCBwb3NzaWJsZSBpbXBsaWNpdCBj
b250cm9sIGZsb3cgZWRnZXMgZnJvbQorICAgICAgICBpbmRpcmVjdCBqdW1wcyB0byBlc2NhcGVk
IGJhc2ljIGJsb2Nrcy4gV2UgZG9uJ3Qgd2FudCBzdWNoIHJlc3RyaWN0aW9ucyBpbiBCMywgc2lu
Y2UgQjMKKyAgICAgICAgcmVsaWVzIG9uIGJlaW5nIGFibGUgdG8gYnJlYWsgY3JpdGljYWwgZWRn
ZXMuIFlvdSBjYW4ndCBicmVhayBhIGNyaXRpY2FsIGVkZ2UgaWYgaXQncyBmcm9tIGFuCisgICAg
ICAgIGluZGlyZWN0IGp1bXAgdG8gYW4gZXNjYXBlZCBibG9jaywgc2luY2Ugd2Uga25vdyB0aGF0
IHRoZSBpbmRpcmVjdCBqdW1wIG1heSBqdW1wIHRvIHRoYXQKKyAgICAgICAgZXNjYXBlZCBibG9j
ayBhbmQgd2UnZCBoYXZlIG5vIHdheSB0byBwcmV2ZW50IHRoYXQgZnJvbSBoYXBwZW5pbmcuIFNv
LCB0aGlzIGNoYW5nZSBleHBvc2VzCisgICAgICAgIHRoZSBhYmlsaXR5IHRvIGVtaXQgaW5kaXJl
Y3QganVtcHMgYW5kIHRvIHVzZSB0aGVtIHdpdGgganVtcCB0YWJsZXMgd2l0aG91dCBwbGFjaW5n
IGFueQorICAgICAgICByZXN0cmljdGlvbnMgb24gSVIuCisgICAgICAgIAorICAgICAgICBUaGUg
dHJpY2sgaXMgdG8gYWxsb3cgUGF0Y2hwb2ludHMgdG8gYmUgdXNlZCBhcyBibG9jayB0ZXJtaW5h
bHMuIFBhdGNocG9pbnRzIGFscmVhZHkgYWxsb3cKKyAgICAgICAgY2xpZW50cyBvZiBCMyB0byBl
bWl0IHdoYXRldmVyIGNvZGUgdGhleSBsaWtlLiBQYXRjaHBvaW50cyBhcmUgZnJpZW5kbHkgdG8g
QjMncyBvdGhlcgorICAgICAgICB0cmFuc2Zvcm1hdGlvbnMgYmVjYXVzZSB0aGUgY2xpZW50IG9m
IHRoZSBwYXRjaHBvaW50IGhhcyB0byBwbGF5IGFsb25nIHdpdGggd2hhdGV2ZXIKKyAgICAgICAg
ZGVjaXNpb25zIEIzIGhhZCBtYWRlIGFyb3VuZCB0aGUgcGF0Y2hwb2ludDogd2hhdCByZWdpc3Rl
cnMgZ290IHVzZWQsIHdoYXQgdGhlIGNvbnRyb2wgZmxvdworICAgICAgICBsb29rcyBsaWtlLCBl
dGMuIFBhdGNocG9pbnRzIGNhbiBldmVuIGJlIGNsb25lZCBieSBCMywgYW5kIHRoZSBjbGllbnQg
aGFzIHRvIGFjY29tbW9kYXRlIHRoaXMKKyAgICAgICAgaW4gdGhlaXIgcGF0Y2hwb2ludCBnZW5l
cmF0b3IuIEl0IHR1cm5zIG91dCB0aGF0IHVzaW5nIFBhdGNocG9pbnRzIGFzIHRlcm1pbmFscyBp
cyBxdWl0ZQorICAgICAgICBuYXR1cmFsLiBXZSBhY2NvbXBsaXNoIHRoaXMgYnkgbW92aW5nIHRo
ZSBzdWNjZXNzb3IgZWRnZXMgb3V0IG9mIENvbnRyb2xWYWx1ZSBhbmQgaW50bworICAgICAgICBC
YXNpY0Jsb2NrLCBhbmQgcmVtb3ZpbmcgQ29udHJvbFZhbHVlIGVudGlyZWx5LiBUaGlzIHdheSwg
YW55IFZhbHVlIHN1YmNsYXNzIGNhbiBiZSBhCisgICAgICAgIHRlcm1pbmFsLiBJdCB3YXMgYWxy
ZWFkeSB0cnVlIHRoYXQgYSBWYWx1ZSBpcyBhIHRlcm1pbmFsIGlmIHZhbHVlLT5lZmZlY3RzKCku
dGVybWluYWwsIHdoaWNoCisgICAgICAgIHdvcmtzIGdyZWF0IHdpdGggUGF0Y2hwb2ludHMgc2lu
Y2UgdGhleSBjb250cm9sIHRoZWlyIGVmZmVjdHMgdmlhIFBhdGNocG9pbnRWYWx1ZTo6ZWZmZWN0
cy4KKyAgICAgICAgCisgICAgICAgIEEgUGF0Y2hwb2ludHMgaW4gdGVybWluYWwgcG9zaXRpb24g
Z2V0cyBhY2Nlc3MgdG8gYWRkaXRpb25hbCBBUEkgaW4gU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1z
LgorICAgICAgICBUaGUgZ2VuZXJhdG9yIGNhbiBnZXQgYSBCb3g8TGFiZWw+IGZvciBlYWNoIHN1
Y2Nlc3NvciB0byBpdHMgb3duaW5nIGJsb2NrLiBUaGlzIG1lYW5zIHRoYXQKKyAgICAgICAgeW91
IGNhbiBjcmVhdGUgYSB0YWJsZSBqdW1wIGJ5IGVtaXR0aW5nIGEgcGF0Y2hwb2ludCB0aGF0IHRh
a2VzIGFuIGluZGV4IGludG8gdGhlIHRhYmxlLiBXaGVuCisgICAgICAgIHRoZSBnZW5lcmF0b3Ig
cnVucywgeW91IGNyZWF0ZSB0aGUganVtcCB0YWJsZS4gVGhpcyBtZWFucyB5b3UgZ2V0IG9uZSBq
dW1wIHRhYmxlIHBlciBjbG9uZSBvZgorICAgICAgICB0aGUgcGF0Y2hwb2ludC4gVGhhdCdzIG5l
Y2Vzc2FyeSBzaW5jZSBlYWNoIGNsb25lIG9mIHRoZSBwYXRjaHBvaW50IG1heSBlbmQgdXAgd2l0
aCBkaWZmZXJlbnQKKyAgICAgICAgc3VjY2Vzc29ycy4gVGhpcyBjaGFuZ2UgbWFrZXMgTG93ZXJN
YWNyb3MgZG8gc3VjaCBhIGxvd2VyaW5nIGZvciBTd2l0Y2hlcyB0aGF0IGNhbiBiZW5lZml0Cisg
ICAgICAgIGZyb20ganVtcCB0YWJsZXMuIEl0J3MgYSBmdW4gd2F5IHRvIGRvIHN0ZXB3aXNlIGxv
d2VyaW5nOiBMb3dlck1hY3JvcyBpcyBlc3NlbnRpYWxseQorICAgICAgICBwcmUtbG93ZXJpbmcg
dGhlIFN3aXRjaCBkaXJlY3RseSB0byBtYWNoaW5lIGNvZGUsIGFuZCB3cmFwcGluZyB0aGF0IG1h
Y2hpbmUgY29kZSBpbiBhCisgICAgICAgIFBhdGNocG9pbnQgc28gdGhhdCB0aGUgcmVzdCBvZiB0
aGUgY29tcGlsZXIgZG9lc24ndCBoYXZlIHRvIGtub3cgYW55dGhpbmcgYWJvdXQgd2hhdAorICAg
ICAgICBoYXBwZW5lZC4KKworICAgICAgICBUaGlzIGlzIGEgfjMwJSBzcGVlZC11cCBvbiBtaWNy
b2JlbmNobWFya3MgdGhhdCBoYXZlIGJpZyBzd2l0Y2ggc3RhdGVtZW50cyAofjYwIGNhc2VzKS4g
SXQncworICAgICAgICBub3QgYSBzcGVlZC11cCBvbiBtYWluc3RyZWFtIGJlbmNobWFya3MuCisg
ICAgICAgIAorICAgICAgICBUaGlzIGFsc28gYWRkcyBhIG5ldyB0ZXN0IHRvIHRlc3RiMyBmb3Ig
dGVybWluYWwgUGF0Y2hwb2ludHMsIEdldCwgYW5kIFNldC4gVGhlIEZUTCBkb2VzIG5vdAorICAg
ICAgICBjdXJyZW50bHkgdXNlIHRlcm1pbmFsIFBhdGNocG9pbnRzIGRpcmVjdGx5LCBidXQgd2Ug
d2FudCB0aGlzIHRvIGJlIHBvc3NpYmxlLiBJdCBhbHNvIGRvZXNuJ3QKKyAgICAgICAgdXNlIEdl
dC9TZXQgZGlyZWN0bHkgZXZlbiB0aG91Z2ggd2Ugd2FudCB0aGlzIHRvIGJlIHBvc3NpYmxlLiBJ
dCdzIGltcG9ydGFudCB0byB0ZXN0IHRoZXNlCisgICAgICAgIHNpbmNlIG9wY29kZXMgdGhhdCBy
ZXN1bHQgZnJvbSBsb3dlcmluZyBkb24ndCBhZmZlY3QgZWFybHkgcGhhc2VzLCBzbyB3ZSBjb3Vs
ZCBoYXZlCisgICAgICAgIHJlZ3Jlc3Npb25zIGluIGVhcmx5IHBoYXNlcyByZWxhdGVkIHRvIHRo
ZXNlIG9wY29kZXMgdGhhdCB3b3VsZG4ndCBiZSBjYXVnaHQgYnkgYW55IEpTIHRlc3QuCisgICAg
ICAgIFNvLCB0aGlzIGFkZHMgYSB2ZXJ5IGJhc2ljIHRocmVhZGVkIGludGVycHJldGVyIHRvIHRl
c3RiMyBmb3IgYSBCcmFpbmZ1Y2stc3R5bGUgbGFuZ3VhZ2UsIGFuZAorICAgICAgICB0ZXN0cyBp
dCBieSBoYXZpbmcgaXQgcnVuIGEgcHJvZ3JhbSB0aGF0IHByaW50cyB0aGUgbnVtYmVycyAxLi4x
MDAgaW4gYSBsb29wLiBVbmxpa2UgYSByZWFsCisgICAgICAgIHRocmVhZGVkIGludGVycHJldGVy
LCBpdCB1c2VzIGEgY29tbW9uIGRpc3BhdGNoIGJsb2NrIHJhdGhlciB0aGFuIGhhdmluZyBkaXNw
YXRjaCBhdCB0aGUKKyAgICAgICAgdGVybWludXMgb2YgZWFjaCBvcGNvZGUuIFRoYXQncyBuZWNl
c3NhcnkgYmVjYXVzZSBQb2x5SnVtcCBpcyBub3QgY2xvbmVhYmxlLiBUaGUgc3RhdGUgb2YgdGhl
CisgICAgICAgIGludGVycHJldGVyIGlzIHJlcHJlc2VudGVkIHVzaW5nIFZhcmlhYmxlcyB0aGF0
IHdlIEdldCBhbmQgU2V0LCBzbyBpdCB0ZXN0cyBHZXQvU2V0IGFzIHdlbGwuCisKKyAgICAgICAg
KiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0Lmg6
CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNNjQ6Omp1bXApOgorICAgICAgICAqIGFz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fz
c2VtYmxlclg4NkNvbW1vbjo6anVtcCk6CisgICAgICAgICogYXNzZW1ibGVyL1g4NkFzc2VtYmxl
ci5oOgorICAgICAgICAoSlNDOjpYODZBc3NlbWJsZXI6OmptcF9tKToKKyAgICAgICAgKiBiMy9C
M0Jhc2ljQmxvY2suY3BwOgorICAgICAgICAoSlNDOjpCMzo6QmFzaWNCbG9jazo6YXBwZW5kKToK
KyAgICAgICAgKEpTQzo6QjM6OkJhc2ljQmxvY2s6OmFwcGVuZE5vblRlcm1pbmFsKToKKyAgICAg
ICAgKEpTQzo6QjM6OkJhc2ljQmxvY2s6OnJlbW92ZUxhc3QpOgorICAgICAgICAoSlNDOjpCMzo6
QmFzaWNCbG9jazo6YXBwZW5kSW50Q29uc3RhbnQpOgorICAgICAgICAoSlNDOjpCMzo6QmFzaWNC
bG9jazo6Y2xlYXJTdWNjZXNzb3JzKToKKyAgICAgICAgKEpTQzo6QjM6OkJhc2ljQmxvY2s6OmFw
cGVuZFN1Y2Nlc3Nvcik6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjpzZXRTdWNjZXNz
b3JzKToKKyAgICAgICAgKEpTQzo6QjM6OkJhc2ljQmxvY2s6OnJlcGxhY2VTdWNjZXNzb3IpOgor
ICAgICAgICAoSlNDOjpCMzo6QmFzaWNCbG9jazo6YWRkUHJlZGVjZXNzb3IpOgorICAgICAgICAo
SlNDOjpCMzo6QmFzaWNCbG9jazo6ZGVlcER1bXApOgorICAgICAgICAoSlNDOjpCMzo6QmFzaWNC
bG9jazo6YXBwZW5kTmV3Q29udHJvbFZhbHVlKToKKyAgICAgICAgKiBiMy9CM0Jhc2ljQmxvY2su
aDoKKyAgICAgICAgKEpTQzo6QjM6OkJhc2ljQmxvY2s6Om51bVN1Y2Nlc3NvcnMpOgorICAgICAg
ICAoSlNDOjpCMzo6QmFzaWNCbG9jazo6c3VjY2Vzc29yKToKKyAgICAgICAgKEpTQzo6QjM6OkJh
c2ljQmxvY2s6OnN1Y2Nlc3NvcnMpOgorICAgICAgICAoSlNDOjpCMzo6QmFzaWNCbG9jazo6c3Vj
Y2Vzc29yQmxvY2spOgorICAgICAgICAoSlNDOjpCMzo6QmFzaWNCbG9jazo6c3VjY2Vzc29yQmxv
Y2tzKToKKyAgICAgICAgKEpTQzo6QjM6OkJhc2ljQmxvY2s6Om51bVByZWRlY2Vzc29ycyk6Cisg
ICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjpwcmVkZWNlc3Nvcik6CisgICAgICAgIChKU0M6
OkIzOjpCYXNpY0Jsb2NrOjpmcmVxdWVuY3kpOgorICAgICAgICAqIGIzL0IzQmFzaWNCbG9ja0lu
bGluZXMuaDoKKyAgICAgICAgKEpTQzo6QjM6OkJhc2ljQmxvY2s6OnJlcGxhY2VMYXN0V2l0aE5l
dyk6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjp0YWtlbik6CisgICAgICAgIChKU0M6
OkIzOjpCYXNpY0Jsb2NrOjpub3RUYWtlbik6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2Nr
OjpmYWxsVGhyb3VnaCk6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjpudW1TdWNjZXNz
b3JzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6QjM6OkJhc2ljQmxvY2s6OnN1Y2Nlc3Nvcik6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjpzdWNjZXNzb3JzKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6QjM6OkJhc2ljQmxvY2s6OnN1Y2Nlc3NvckJsb2NrKTogRGVs
ZXRlZC4KKyAgICAgICAgKEpTQzo6QjM6OkJhc2ljQmxvY2s6OnN1Y2Nlc3NvckJsb2Nrcyk6IERl
bGV0ZWQuCisgICAgICAgICogYjMvQjNCbG9ja0luc2VydGlvblNldC5jcHA6CisgICAgICAgIChK
U0M6OkIzOjpCbG9ja0luc2VydGlvblNldDo6c3BsaXRGb3J3YXJkKToKKyAgICAgICAgKiBiMy9C
M0JyZWFrQ3JpdGljYWxFZGdlcy5jcHA6CisgICAgICAgIChKU0M6OkIzOjpicmVha0NyaXRpY2Fs
RWRnZXMpOgorICAgICAgICAqIGIzL0IzQ2FzZUNvbGxlY3Rpb24uY3BwOiBBZGRlZC4KKyAgICAg
ICAgKEpTQzo6QjM6OkNhc2VDb2xsZWN0aW9uOjpkdW1wKToKKyAgICAgICAgKiBiMy9CM0Nhc2VD
b2xsZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAoSlNDOjpCMzo6Q2FzZUNvbGxlY3Rpb246OkNh
c2VDb2xsZWN0aW9uKToKKyAgICAgICAgKEpTQzo6QjM6OkNhc2VDb2xsZWN0aW9uOjpvcGVyYXRv
cltdKToKKyAgICAgICAgKEpTQzo6QjM6OkNhc2VDb2xsZWN0aW9uOjppdGVyYXRvcjo6aXRlcmF0
b3IpOgorICAgICAgICAoSlNDOjpCMzo6Q2FzZUNvbGxlY3Rpb246Oml0ZXJhdG9yOjpvcGVyYXRv
ciopOgorICAgICAgICAoSlNDOjpCMzo6Q2FzZUNvbGxlY3Rpb246Oml0ZXJhdG9yOjpvcGVyYXRv
cisrKToKKyAgICAgICAgKEpTQzo6QjM6OkNhc2VDb2xsZWN0aW9uOjppdGVyYXRvcjo6b3BlcmF0
b3I9PSk6CisgICAgICAgIChKU0M6OkIzOjpDYXNlQ29sbGVjdGlvbjo6aXRlcmF0b3I6Om9wZXJh
dG9yIT0pOgorICAgICAgICAoSlNDOjpCMzo6Q2FzZUNvbGxlY3Rpb246OmJlZ2luKToKKyAgICAg
ICAgKEpTQzo6QjM6OkNhc2VDb2xsZWN0aW9uOjplbmQpOgorICAgICAgICAqIGIzL0IzQ2FzZUNv
bGxlY3Rpb25JbmxpbmVzLmg6IEFkZGVkLgorICAgICAgICAoSlNDOjpCMzo6Q2FzZUNvbGxlY3Rp
b246OmZhbGxUaHJvdWdoKToKKyAgICAgICAgKEpTQzo6QjM6OkNhc2VDb2xsZWN0aW9uOjpzaXpl
KToKKyAgICAgICAgKEpTQzo6QjM6OkNhc2VDb2xsZWN0aW9uOjphdCk6CisgICAgICAgICogYjMv
QjNDaGVja1NwZWNpYWwuY3BwOgorICAgICAgICAoSlNDOjpCMzo6Q2hlY2tTcGVjaWFsOjpDaGVj
a1NwZWNpYWwpOgorICAgICAgICAoSlNDOjpCMzo6Q2hlY2tTcGVjaWFsOjpoaWRkZW5CcmFuY2gp
OgorICAgICAgICAqIGIzL0IzQ29tbW9uLmg6CisgICAgICAgIChKU0M6OkIzOjppczY0Qml0KToK
KyAgICAgICAgKiBiMy9CM0NvbnRyb2xWYWx1ZS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogYjMv
QjNDb250cm9sVmFsdWUuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBiMy9CM0RhdGFTZWN0aW9uLmNw
cDoKKyAgICAgICAgKEpTQzo6QjM6OkRhdGFTZWN0aW9uOjpEYXRhU2VjdGlvbik6CisgICAgICAg
ICogYjMvQjNEdXBsaWNhdGVUYWlscy5jcHA6CisgICAgICAgICogYjMvQjNGaXhTU0EuY3BwOgor
ICAgICAgICAqIGIzL0IzRm9sZFBhdGhDb25zdGFudHMuY3BwOgorICAgICAgICAqIGIzL0IzTG93
ZXJNYWNyb3MuY3BwOgorICAgICAgICAqIGIzL0IzTG93ZXJUb0Fpci5jcHA6CisgICAgICAgIChK
U0M6OkIzOjpBaXI6Okxvd2VyVG9BaXI6OnJ1bik6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okxv
d2VyVG9BaXI6Omxvd2VyKToKKyAgICAgICAgKiBiMy9CM01hdGhFeHRyYXMuY3BwOgorICAgICAg
ICAoSlNDOjpCMzo6cG93RG91YmxlSW50MzIpOgorICAgICAgICAqIGIzL0IzT3Bjb2RlLmg6Cisg
ICAgICAgIChKU0M6OkIzOjppc0NvbnN0YW50KToKKyAgICAgICAgKEpTQzo6QjM6OmlzRGVmaW5p
dGVseVRlcm1pbmFsKToKKyAgICAgICAgKiBiMy9CM1BhdGNocG9pbnRTcGVjaWFsLmNwcDoKKyAg
ICAgICAgKEpTQzo6QjM6OlBhdGNocG9pbnRTcGVjaWFsOjpnZW5lcmF0ZSk6CisgICAgICAgIChK
U0M6OkIzOjpQYXRjaHBvaW50U3BlY2lhbDo6aXNUZXJtaW5hbCk6CisgICAgICAgIChKU0M6OkIz
OjpQYXRjaHBvaW50U3BlY2lhbDo6ZHVtcEltcGwpOgorICAgICAgICAqIGIzL0IzUGF0Y2hwb2lu
dFNwZWNpYWwuaDoKKyAgICAgICAgKiBiMy9CM1Byb2NlZHVyZS5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpQcm9jZWR1cmU6OnJlc2V0UmVhY2hhYmlsaXR5KToKKyAgICAgICAgKiBiMy9CM1Byb2Nl
ZHVyZS5oOgorICAgICAgICAoSlNDOjpCMzo6UHJvY2VkdXJlOjpsYXN0UGhhc2VOYW1lKToKKyAg
ICAgICAgKEpTQzo6QjM6OlByb2NlZHVyZTo6Ynlwcm9kdWN0cyk6CisgICAgICAgICogYjMvQjNS
ZWR1Y2VTdHJlbmd0aC5jcHA6CisgICAgICAgICogYjMvQjNTdGFja21hcEdlbmVyYXRpb25QYXJh
bXMuY3BwOgorICAgICAgICAoSlNDOjpCMzo6U3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zOjp1bmF2
YWlsYWJsZVJlZ2lzdGVycyk6CisgICAgICAgIChKU0M6OkIzOjpTdGFja21hcEdlbmVyYXRpb25Q
YXJhbXM6OnN1Y2Nlc3NvckxhYmVscyk6CisgICAgICAgIChKU0M6OkIzOjpTdGFja21hcEdlbmVy
YXRpb25QYXJhbXM6OmZhbGxzVGhyb3VnaFRvU3VjY2Vzc29yKToKKyAgICAgICAgKEpTQzo6QjM6
OlN0YWNrbWFwR2VuZXJhdGlvblBhcmFtczo6cHJvYyk6CisgICAgICAgICogYjMvQjNTdGFja21h
cEdlbmVyYXRpb25QYXJhbXMuaDoKKyAgICAgICAgKEpTQzo6QjM6OlN0YWNrbWFwR2VuZXJhdGlv
blBhcmFtczo6Z3BTY3JhdGNoKToKKyAgICAgICAgKEpTQzo6QjM6OlN0YWNrbWFwR2VuZXJhdGlv
blBhcmFtczo6ZnBTY3JhdGNoKToKKyAgICAgICAgKiBiMy9CM1N3aXRjaFZhbHVlLmNwcDoKKyAg
ICAgICAgKEpTQzo6QjM6OlN3aXRjaFZhbHVlOjp+U3dpdGNoVmFsdWUpOgorICAgICAgICAoSlND
OjpCMzo6U3dpdGNoVmFsdWU6OnJlbW92ZUNhc2UpOgorICAgICAgICAoSlNDOjpCMzo6U3dpdGNo
VmFsdWU6Omhhc0ZhbGxUaHJvdWdoKToKKyAgICAgICAgKEpTQzo6QjM6OlN3aXRjaFZhbHVlOjpz
ZXRGYWxsVGhyb3VnaCk6CisgICAgICAgIChKU0M6OkIzOjpTd2l0Y2hWYWx1ZTo6YXBwZW5kQ2Fz
ZSk6CisgICAgICAgIChKU0M6OkIzOjpTd2l0Y2hWYWx1ZTo6ZHVtcFN1Y2Nlc3NvcnMpOgorICAg
ICAgICAoSlNDOjpCMzo6U3dpdGNoVmFsdWU6OmR1bXBNZXRhKToKKyAgICAgICAgKEpTQzo6QjM6
OlN3aXRjaFZhbHVlOjpjbG9uZUltcGwpOgorICAgICAgICAoSlNDOjpCMzo6U3dpdGNoVmFsdWU6
OlN3aXRjaFZhbHVlKToKKyAgICAgICAgKiBiMy9CM1N3aXRjaFZhbHVlLmg6CisgICAgICAgIChK
U0M6OkIzOjpTd2l0Y2hWYWx1ZTo6YWNjZXB0cyk6CisgICAgICAgIChKU0M6OkIzOjpTd2l0Y2hW
YWx1ZTo6Y2FzZVZhbHVlcyk6CisgICAgICAgIChKU0M6OkIzOjpTd2l0Y2hWYWx1ZTo6Y2FzZXMp
OgorICAgICAgICAoSlNDOjpCMzo6U3dpdGNoVmFsdWU6OmZhbGxUaHJvdWdoKTogRGVsZXRlZC4K
KyAgICAgICAgKEpTQzo6QjM6OlN3aXRjaFZhbHVlOjpzaXplKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6QjM6OlN3aXRjaFZhbHVlOjphdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkIzOjpT
d2l0Y2hWYWx1ZTo6b3BlcmF0b3JbXSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkIzOjpTd2l0
Y2hWYWx1ZTo6aXRlcmF0b3I6Oml0ZXJhdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6QjM6
OlN3aXRjaFZhbHVlOjppdGVyYXRvcjo6b3BlcmF0b3IqKTogRGVsZXRlZC4KKyAgICAgICAgKEpT
Qzo6QjM6OlN3aXRjaFZhbHVlOjppdGVyYXRvcjo6b3BlcmF0b3IrKyk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkIzOjpTd2l0Y2hWYWx1ZTo6aXRlcmF0b3I6Om9wZXJhdG9yPT0pOiBEZWxldGVk
LgorICAgICAgICAoSlNDOjpCMzo6U3dpdGNoVmFsdWU6Oml0ZXJhdG9yOjpvcGVyYXRvciE9KTog
RGVsZXRlZC4KKyAgICAgICAgKEpTQzo6QjM6OlN3aXRjaFZhbHVlOjpiZWdpbik6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkIzOjpTd2l0Y2hWYWx1ZTo6ZW5kKTogRGVsZXRlZC4KKyAgICAgICAg
KiBiMy9CM1ZhbGlkYXRlLmNwcDoKKyAgICAgICAgKiBiMy9CM1ZhbHVlLmNwcDoKKyAgICAgICAg
KEpTQzo6QjM6OlZhbHVlOjpyZXBsYWNlV2l0aFBoaSk6CisgICAgICAgIChKU0M6OkIzOjpWYWx1
ZTo6cmVwbGFjZVdpdGhKdW1wKToKKyAgICAgICAgKEpTQzo6QjM6OlZhbHVlOjpyZXBsYWNlV2l0
aE9vcHMpOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6OmR1bXApOgorICAgICAgICAoSlNDOjpC
Mzo6VmFsdWU6OmRlZXBEdW1wKToKKyAgICAgICAgKEpTQzo6QjM6OlZhbHVlOjpkdW1wU3VjY2Vz
c29ycyk6CisgICAgICAgIChKU0M6OkIzOjpWYWx1ZTo6bmVnQ29uc3RhbnQpOgorICAgICAgICAo
SlNDOjpCMzo6VmFsdWU6OnR5cGVGb3IpOgorICAgICAgICAqIGIzL0IzVmFsdWUuaDoKKyAgICAg
ICAgKiBiMy9haXIvQWlyQ29kZS5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkNvZGU6OmFk
ZEZhc3RUbXApOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpDb2RlOjphZGREYXRhU2VjdGlvbik6
CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkNvZGU6OmpzSGFzaCk6CisgICAgICAgICogYjMvYWly
L0FpckNvZGUuaDoKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6Q29kZTo6aXNGYXN0VG1wKToKKyAg
ICAgICAgKEpTQzo6QjM6OkFpcjo6Q29kZTo6c2V0TGFzdFBoYXNlTmFtZSk6CisgICAgICAgICog
YjMvYWlyL0FpckN1c3RvbS5oOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpQYXRjaEN1c3RvbTo6
c2hvdWxkVHJ5QWxpYXNpbmdEZWYpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpQYXRjaEN1c3Rv
bTo6aXNUZXJtaW5hbCk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OlBhdGNoQ3VzdG9tOjpoYXNO
b25BcmdOb25Db250cm9sRWZmZWN0cyk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OlBhdGNoQ3Vz
dG9tOjpnZW5lcmF0ZSk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkNDYWxsQ3VzdG9tOjphZG1p
dHNTdGFjayk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkNDYWxsQ3VzdG9tOjppc1Rlcm1pbmFs
KToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6Q0NhbGxDdXN0b206Omhhc05vbkFyZ05vbkNvbnRy
b2xFZmZlY3RzKToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6U2h1ZmZsZUN1c3RvbTo6YWRtaXRz
U3RhY2spOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpTaHVmZmxlQ3VzdG9tOjppc1Rlcm1pbmFs
KToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6U2h1ZmZsZUN1c3RvbTo6aGFzTm9uQXJnTm9uQ29u
dHJvbEVmZmVjdHMpOgorICAgICAgICAqIGIzL2Fpci9BaXJHZW5lcmF0ZS5jcHA6CisgICAgICAg
IChKU0M6OkIzOjpBaXI6OmdlbmVyYXRlKToKKyAgICAgICAgKiBiMy9haXIvQWlyR2VuZXJhdGlv
bkNvbnRleHQuaDoKKyAgICAgICAgKiBiMy9haXIvQWlySW5zdC5oOgorICAgICAgICAoSlNDOjpC
Mzo6QWlyOjpJbnN0OjpoYXNOb25Db250cm9sRWZmZWN0cyk6CisgICAgICAgICogYjMvYWlyL0Fp
clNpbXBsaWZ5Q0ZHLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6c2ltcGxpZnlDRkcpOgor
ICAgICAgICAqIGIzL2Fpci9BaXJTcGVjaWFsLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6
U3BlY2lhbDo6c2hvdWxkVHJ5QWxpYXNpbmdEZWYpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpT
cGVjaWFsOjppc1Rlcm1pbmFsKToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6U3BlY2lhbDo6aGFz
Tm9uQXJnTm9uQ29udHJvbEVmZmVjdHMpOgorICAgICAgICAqIGIzL2Fpci9BaXJTcGVjaWFsLmg6
CisgICAgICAgICogYjMvYWlyL0FpclZhbGlkYXRlLmNwcDoKKyAgICAgICAgKiBiMy9haXIvb3Bj
b2RlX2dlbmVyYXRvci5yYjoKKyAgICAgICAgKiBiMy90ZXN0YjMuY3BwOgorICAgICAgICAoSlND
OjpCMzo6c2hvdWxkQmVWZXJib3NlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3Q0Mik6CisgICAg
ICAgIChKU0M6OkIzOjp0ZXN0TG9hZDQyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RMb2FkV2l0
aE9mZnNldEltcGwpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEFyZyk6CisgICAgICAgIChKU0M6
OkIzOjp0ZXN0UmV0dXJuQ29uc3Q2NCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QWRkQXJnKToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RBZGRBcmdzKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RB
ZGRBcmdJbW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEFkZEltbUFyZyk6CisgICAgICAgIChK
U0M6OkIzOjp0ZXN0QWRkQXJnTWVtKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RBZGRNZW1Bcmcp
OgorICAgICAgICAoSlNDOjpCMzo6dGVzdEFkZEltbU1lbSk6CisgICAgICAgIChKU0M6OkIzOjp0
ZXN0QWRkQXJnMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEFkZEFyZ3MzMik6CisgICAgICAg
IChKU0M6OkIzOjp0ZXN0QWRkQXJnTWVtMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEFkZE1l
bUFyZzMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RBZGRJbW1NZW0zMik6CisgICAgICAgIChK
U0M6OkIzOjp0ZXN0QWRkQXJnWmVyb0ltbVpEZWYpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEFk
ZExvYWRUd2ljZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QWRkQXJnRG91YmxlKToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RBZGRBcmdzRG91YmxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RB
ZGRBcmdJbW1Eb3VibGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEFkZEltbUFyZ0RvdWJsZSk6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QWRkSW1tc0RvdWJsZSk6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0QWRkQXJnRmxvYXQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEFkZEFyZ3NGbG9hdCk6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QWRkQXJnSW1tRmxvYXQpOgorICAgICAgICAoSlNDOjpC
Mzo6dGVzdEFkZEltbUFyZ0Zsb2F0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RBZGRJbW1zRmxv
YXQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEFkZEFyZ0Zsb2F0V2l0aFVzZWxlc3NEb3VibGVD
b252ZXJzaW9uKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RBZGRBcmdzRmxvYXRXaXRoVXNlbGVz
c0RvdWJsZUNvbnZlcnNpb24pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEFkZEFyZ3NGbG9hdFdp
dGhFZmZlY3RmdWxEb3VibGVDb252ZXJzaW9uKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNdWxB
cmcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE11bEFyZ1N0b3JlKToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RNdWxBZGRBcmcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE11bEFyZ3MpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdE11bEFyZ0ltbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TXVs
SW1tQXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNdWxBcmdzMzIpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdE11bExvYWRUd2ljZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TXVsQWRkQXJn
c0xlZnQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE11bEFkZEFyZ3NSaWdodCk6CisgICAgICAg
IChKU0M6OkIzOjp0ZXN0TXVsQWRkQXJnc0xlZnQzMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0
TXVsQWRkQXJnc1JpZ2h0MzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE11bFN1YkFyZ3NMZWZ0
KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNdWxTdWJBcmdzUmlnaHQpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdE11bFN1YkFyZ3NMZWZ0MzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE11bFN1
YkFyZ3NSaWdodDMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNdWxOZWdBcmdzKToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RNdWxOZWdBcmdzMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE11
bEFyZ0RvdWJsZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TXVsQXJnc0RvdWJsZSk6CisgICAg
ICAgIChKU0M6OkIzOjp0ZXN0TXVsQXJnSW1tRG91YmxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RNdWxJbW1BcmdEb3VibGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE11bEltbXNEb3VibGUp
OgorICAgICAgICAoSlNDOjpCMzo6dGVzdE11bEFyZ0Zsb2F0KToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RNdWxBcmdzRmxvYXQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE11bEFyZ0ltbUZsb2F0
KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNdWxJbW1BcmdGbG9hdCk6CisgICAgICAgIChKU0M6
OkIzOjp0ZXN0TXVsSW1tc0Zsb2F0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNdWxBcmdGbG9h
dFdpdGhVc2VsZXNzRG91YmxlQ29udmVyc2lvbik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TXVs
QXJnc0Zsb2F0V2l0aFVzZWxlc3NEb3VibGVDb252ZXJzaW9uKToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RNdWxBcmdzRmxvYXRXaXRoRWZmZWN0ZnVsRG91YmxlQ29udmVyc2lvbik6CisgICAgICAg
IChKU0M6OkIzOjp0ZXN0RGl2QXJnRG91YmxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3REaXZB
cmdzRG91YmxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3REaXZBcmdJbW1Eb3VibGUpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdERpdkltbUFyZ0RvdWJsZSk6CisgICAgICAgIChKU0M6OkIzOjp0
ZXN0RGl2SW1tc0RvdWJsZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0RGl2QXJnRmxvYXQpOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdERpdkFyZ3NGbG9hdCk6CisgICAgICAgIChKU0M6OkIzOjp0
ZXN0RGl2QXJnSW1tRmxvYXQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdERpdkltbUFyZ0Zsb2F0
KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3REaXZJbW1zRmxvYXQpOgorICAgICAgICAoSlNDOjpC
Mzo6dGVzdE1vZEFyZ0RvdWJsZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TW9kQXJnc0RvdWJs
ZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TW9kQXJnSW1tRG91YmxlKToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3RNb2RJbW1BcmdEb3VibGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE1vZElt
bXNEb3VibGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE1vZEFyZ0Zsb2F0KToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RNb2RBcmdzRmxvYXQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE1vZEFy
Z0ltbUZsb2F0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNb2RJbW1BcmdGbG9hdCk6CisgICAg
ICAgIChKU0M6OkIzOjp0ZXN0TW9kSW1tc0Zsb2F0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RE
aXZBcmdGbG9hdFdpdGhVc2VsZXNzRG91YmxlQ29udmVyc2lvbik6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0RGl2QXJnc0Zsb2F0V2l0aFVzZWxlc3NEb3VibGVDb252ZXJzaW9uKToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3REaXZBcmdzRmxvYXRXaXRoRWZmZWN0ZnVsRG91YmxlQ29udmVyc2lvbik6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3ViQXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RT
dWJBcmdzKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdWJBcmdJbW0pOgorICAgICAgICAoSlND
OjpCMzo6dGVzdE5lZ1ZhbHVlU3ViT25lKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdWJJbW1B
cmcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN1YkFyZ01lbSk6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0U3ViTWVtQXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdWJJbW1NZW0pOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdFN1Yk1lbUltbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3Vi
QXJnczMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdWJBcmdJbW0zMik6CisgICAgICAgIChK
U0M6OkIzOjp0ZXN0U3ViSW1tQXJnMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN1Yk1lbUFy
ZzMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdWJBcmdNZW0zMik6CisgICAgICAgIChKU0M6
OkIzOjp0ZXN0U3ViSW1tTWVtMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN1Yk1lbUltbTMy
KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3ROZWdWYWx1ZVN1Yk9uZTMyKToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3RTdWJBcmdEb3VibGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN1YkFyZ3NE
b3VibGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN1YkFyZ0ltbURvdWJsZSk6CisgICAgICAg
IChKU0M6OkIzOjp0ZXN0U3ViSW1tQXJnRG91YmxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RT
dWJJbW1zRG91YmxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdWJBcmdGbG9hdCk6CisgICAg
ICAgIChKU0M6OkIzOjp0ZXN0U3ViQXJnc0Zsb2F0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RT
dWJBcmdJbW1GbG9hdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3ViSW1tQXJnRmxvYXQpOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdFN1YkltbXNGbG9hdCk6CisgICAgICAgIChKU0M6OkIzOjp0
ZXN0U3ViQXJnRmxvYXRXaXRoVXNlbGVzc0RvdWJsZUNvbnZlcnNpb24pOgorICAgICAgICAoSlND
OjpCMzo6dGVzdFN1YkFyZ3NGbG9hdFdpdGhVc2VsZXNzRG91YmxlQ29udmVyc2lvbik6CisgICAg
ICAgIChKU0M6OkIzOjp0ZXN0U3ViQXJnc0Zsb2F0V2l0aEVmZmVjdGZ1bERvdWJsZUNvbnZlcnNp
b24pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdEFuZEFyZ3MpOgorICAgICAgICAoSlNDOjpC
Mzo6dGVzdEJpdEFuZFNhbWVBcmcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdEFuZEltbXMp
OgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdEFuZEFyZ0ltbSk6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0Qml0QW5kSW1tQXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRBbmRCaXRBbmRB
cmdJbW1JbW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdEFuZEltbUJpdEFuZEFyZ0ltbSk6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0QW5kQXJnczMyKToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RCaXRBbmRTYW1lQXJnMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdEFuZEltbXMz
Mik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0QW5kQXJnSW1tMzIpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdEJpdEFuZEltbUFyZzMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRBbmRC
aXRBbmRBcmdJbW1JbW0zMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0QW5kSW1tQml0QW5k
QXJnSW1tMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdEFuZFdpdGhNYXNrUmV0dXJuc0Jv
b2xlYW5zKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRBbmRBcmdEb3VibGUpOgorICAgICAg
ICAoSlNDOjpCMzo6dGVzdEJpdEFuZEFyZ3NEb3VibGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dEJpdEFuZEFyZ0ltbURvdWJsZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0QW5kSW1tc0Rv
dWJsZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0QW5kQXJnRmxvYXQpOgorICAgICAgICAo
SlNDOjpCMzo6dGVzdEJpdEFuZEFyZ3NGbG9hdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0
QW5kQXJnSW1tRmxvYXQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdEFuZEltbXNGbG9hdCk6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0QW5kQXJnc0Zsb2F0V2l0aFVzZWxlc3NEb3VibGVD
b252ZXJzaW9uKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRPckFyZ3MpOgorICAgICAgICAo
SlNDOjpCMzo6dGVzdEJpdE9yU2FtZUFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0T3JJ
bW1zKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRPckFyZ0ltbSk6CisgICAgICAgIChKU0M6
OkIzOjp0ZXN0Qml0T3JJbW1BcmcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdE9yQml0T3JB
cmdJbW1JbW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdE9ySW1tQml0T3JBcmdJbW0pOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdE9yQXJnczMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RCaXRPclNhbWVBcmczMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0T3JJbW1zMzIpOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdE9yQXJnSW1tMzIpOgorICAgICAgICAoSlNDOjpCMzo6
dGVzdEJpdE9ySW1tQXJnMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdE9yQml0T3JBcmdJ
bW1JbW0zMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0T3JJbW1CaXRPckFyZ0ltbTMyKToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRYb3JBcmdzKToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RCaXRYb3JTYW1lQXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRYb3JJbW1zKToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RCaXRYb3JBcmdJbW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dEJpdFhvckltbUFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0WG9yQml0WG9yQXJnSW1t
SW1tKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRYb3JJbW1CaXRYb3JBcmdJbW0pOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdEJpdFhvckFyZ3MzMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0
Qml0WG9yU2FtZUFyZzMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRYb3JJbW1zMzIpOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdFhvckFyZ0ltbTMyKToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RCaXRYb3JJbW1BcmczMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0WG9yQml0WG9y
QXJnSW1tSW1tMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdFhvckltbUJpdFhvckFyZ0lt
bTMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXROb3RBcmcpOgorICAgICAgICAoSlNDOjpC
Mzo6dGVzdEJpdE5vdEltbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0Tm90TWVtKToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RCaXROb3RBcmczMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0
Qml0Tm90SW1tMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdE5vdE1lbTMyKToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RCaXROb3RPbkJvb2xlYW5BbmRCcmFuY2gzMik6CisgICAgICAgIChK
U0M6OkIzOjp0ZXN0U2hsQXJncyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U2hsSW1tcyk6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0U2hsQXJnSW1tKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RT
aGxBcmczMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U2hsQXJnczMyKToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3RTaGxJbW1zMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNobEFyZ0ltbTMy
KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTU2hyQXJncyk6CisgICAgICAgIChKU0M6OkIzOjp0
ZXN0U1NockltbXMpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNTaHJBcmdJbW0pOgorICAgICAg
ICAoSlNDOjpCMzo6dGVzdFNTaHJBcmczMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U1NockFy
Z3MzMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U1NockltbXMzMik6CisgICAgICAgIChKU0M6
OkIzOjp0ZXN0U1NockFyZ0ltbTMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RaU2hyQXJncyk6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0WlNockltbXMpOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dFpTaHJBcmdJbW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFpTaHJBcmczMik6CisgICAgICAg
IChKU0M6OkIzOjp0ZXN0WlNockFyZ3MzMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0WlNocklt
bXMzMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0WlNockFyZ0ltbTMyKToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3RDbHpBcmc2NCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2x6TWVtNjQpOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdENsekFyZzMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RD
bHpNZW0zMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QWJzQXJnKToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RBYnNJbW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEFic01lbSk6CisgICAgICAg
IChKU0M6OkIzOjp0ZXN0QWJzQWJzQXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RBYnNCaXR3
aXNlQ2FzdEFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0d2lzZUNhc3RBYnNCaXR3aXNl
Q2FzdEFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QWJzQXJnV2l0aFVzZWxlc3NEb3VibGVD
b252ZXJzaW9uKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RBYnNBcmdXaXRoRWZmZWN0ZnVsRG91
YmxlQ29udmVyc2lvbik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2VpbEFyZyk6CisgICAgICAg
IChKU0M6OkIzOjp0ZXN0Q2VpbEltbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2VpbE1lbSk6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2VpbENlaWxBcmcpOgorICAgICAgICAoSlNDOjpCMzo6
dGVzdEZsb29yQ2VpbEFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2VpbElUb0Q2NCk6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0Q2VpbElUb0QzMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0
Q2VpbEFyZ1dpdGhVc2VsZXNzRG91YmxlQ29udmVyc2lvbik6CisgICAgICAgIChKU0M6OkIzOjp0
ZXN0Q2VpbEFyZ1dpdGhFZmZlY3RmdWxEb3VibGVDb252ZXJzaW9uKToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RGbG9vckFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Rmxvb3JJbW0pOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdEZsb29yTWVtKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RGbG9v
ckZsb29yQXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDZWlsRmxvb3JBcmcpOgorICAgICAg
ICAoSlNDOjpCMzo6dGVzdEZsb29ySVRvRDY0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RGbG9v
cklUb0QzMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Rmxvb3JBcmdXaXRoVXNlbGVzc0RvdWJs
ZUNvbnZlcnNpb24pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEZsb29yQXJnV2l0aEVmZmVjdGZ1
bERvdWJsZUNvbnZlcnNpb24pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNxcnRBcmcpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdFNxcnRJbW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNxcnRN
ZW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNxcnRBcmdXaXRoVXNlbGVzc0RvdWJsZUNvbnZl
cnNpb24pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNxcnRBcmdXaXRoRWZmZWN0ZnVsRG91Ymxl
Q29udmVyc2lvbik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q29tcGFyZVR3b0Zsb2F0VG9Eb3Vi
bGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENvbXBhcmVPbmVGbG9hdFRvRG91YmxlKToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RDb21wYXJlRmxvYXRUb0RvdWJsZVRocm91Z2hQaGkpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdERvdWJsZVRvRmxvYXRUaHJvdWdoUGhpKToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3REb3VibGVQcm9kdWNlclBoaVRvRmxvYXRDb252ZXJzaW9uKToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3REb3VibGVQcm9kdWNlclBoaVRvRmxvYXRDb252ZXJzaW9uV2l0aERvdWJs
ZUNvbnN1bWVyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3REb3VibGVQcm9kdWNlclBoaVdpdGhO
b25GbG9hdENvbnN0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3REb3VibGVBcmdUb0ludDY0Qml0
d2lzZUNhc3QpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdERvdWJsZUltbVRvSW50NjRCaXR3aXNl
Q2FzdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0VHdvQml0d2lzZUNhc3RPbkRvdWJsZSk6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0d2lzZUNhc3RPbkRvdWJsZUluTWVtb3J5KToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RCaXR3aXNlQ2FzdE9uRG91YmxlSW5NZW1vcnlJbmRleGVkKToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RJbnQ2NEJBcmdUb0RvdWJsZUJpdHdpc2VDYXN0KToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RJbnQ2NEJJbW1Ub0RvdWJsZUJpdHdpc2VDYXN0KToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RUd29CaXR3aXNlQ2FzdE9uSW50NjQpOgorICAgICAgICAoSlNDOjpCMzo6
dGVzdEJpdHdpc2VDYXN0T25JbnQ2NEluTWVtb3J5KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RC
aXR3aXNlQ2FzdE9uSW50NjRJbk1lbW9yeUluZGV4ZWQpOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dEZsb2F0SW1tVG9JbnQzMkJpdHdpc2VDYXN0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXR3
aXNlQ2FzdE9uRmxvYXRJbk1lbW9yeSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0SW50MzJCQXJn
VG9GbG9hdEJpdHdpc2VDYXN0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RJbnQzMkJJbW1Ub0Zs
b2F0Qml0d2lzZUNhc3QpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFR3b0JpdHdpc2VDYXN0T25J
bnQzMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0d2lzZUNhc3RPbkludDMySW5NZW1vcnkp
OgorICAgICAgICAoSlNDOjpCMzo6dGVzdENvbnZlcnREb3VibGVUb0Zsb2F0QXJnKToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RDb252ZXJ0RG91YmxlVG9GbG9hdEltbSk6CisgICAgICAgIChKU0M6
OkIzOjp0ZXN0Q29udmVydERvdWJsZVRvRmxvYXRNZW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dENvbnZlcnRGbG9hdFRvRG91YmxlQXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDb252ZXJ0
RmxvYXRUb0RvdWJsZUltbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q29udmVydEZsb2F0VG9E
b3VibGVNZW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENvbnZlcnREb3VibGVUb0Zsb2F0VG9E
b3VibGVUb0Zsb2F0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RMb2FkRmxvYXRDb252ZXJ0RG91
YmxlQ29udmVydEZsb2F0U3RvcmVGbG9hdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0RnJvdW5k
QXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RGcm91bmRNZW0pOgorICAgICAgICAoSlNDOjpC
Mzo6dGVzdElUb0Q2NEFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0SVRvRjY0QXJnKToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RJVG9EMzJBcmcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdElU
b0YzMkFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0SVRvRDY0TWVtKToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3RJVG9GNjRNZW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdElUb0QzMk1lbSk6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0SVRvRjMyTWVtKToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RJVG9ENjRJbW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdElUb0Y2NEltbSk6CisgICAgICAg
IChKU0M6OkIzOjp0ZXN0SVRvRDMySW1tKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RJVG9GMzJJ
bW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdElUb0RSZWR1Y2VkVG9JVG9GNjRBcmcpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdElUb0RSZWR1Y2VkVG9JVG9GMzJBcmcpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdFN0b3JlMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN0b3JlQ29uc3RhbnQp
OgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN0b3JlQ29uc3RhbnRQdHIpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdFN0b3JlOEFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3RvcmU4SW1tKToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdG9yZVBhcnRpYWw4Qml0UmVnaXN0ZXJPblg4Nik6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0U3RvcmUxNkFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0
U3RvcmUxNkltbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0VHJ1bmMpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdEFkZDEpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEFkZDFQdHIpOgorICAgICAg
ICAoSlNDOjpCMzo6dGVzdE5lZzMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3ROZWdQdHIpOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdFN0b3JlQWRkTG9hZDMyKToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RTdG9yZUFkZExvYWRJbW0zMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3RvcmVBZGRM
b2FkOCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3RvcmVBZGRMb2FkSW1tOCk6CisgICAgICAg
IChKU0M6OkIzOjp0ZXN0U3RvcmVBZGRMb2FkMTYpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN0
b3JlQWRkTG9hZEltbTE2KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdG9yZUFkZExvYWQ2NCk6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3RvcmVBZGRMb2FkSW1tNjQpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdFN0b3JlQWRkTG9hZDMySW5kZXgpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN0
b3JlQWRkTG9hZEltbTMySW5kZXgpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN0b3JlQWRkTG9h
ZDhJbmRleCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3RvcmVBZGRMb2FkSW1tOEluZGV4KToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdG9yZUFkZExvYWQxNkluZGV4KToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3RTdG9yZUFkZExvYWRJbW0xNkluZGV4KToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RTdG9yZUFkZExvYWQ2NEluZGV4KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdG9yZUFkZExv
YWRJbW02NEluZGV4KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdG9yZVN1YkxvYWQpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdFN0b3JlQWRkTG9hZEludGVyZmVyZW5jZSk6CisgICAgICAgIChK
U0M6OkIzOjp0ZXN0U3RvcmVBZGRBbmRMb2FkKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdG9y
ZU5lZ0xvYWQzMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3RvcmVOZWdMb2FkUHRyKToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RBZGQxVW5jb21tdXRlZCk6CisgICAgICAgIChKU0M6OkIzOjp0
ZXN0TG9hZE9mZnNldCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TG9hZE9mZnNldE5vdENvbnN0
YW50KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RMb2FkT2Zmc2V0VXNpbmdBZGQpOgorICAgICAg
ICAoSlNDOjpCMzo6dGVzdExvYWRPZmZzZXRVc2luZ0FkZEludGVyZmVyZW5jZSk6CisgICAgICAg
IChKU0M6OkIzOjp0ZXN0TG9hZE9mZnNldFVzaW5nQWRkTm90Q29uc3RhbnQpOgorICAgICAgICAo
SlNDOjpCMzo6dGVzdExvYWRBZGRyU2hpZnQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEZyYW1l
UG9pbnRlcik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0T3ZlcnJpZGVGcmFtZVBvaW50ZXIpOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdFN0YWNrU2xvdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0
TG9hZEZyb21GcmFtZVBvaW50ZXIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN0b3JlTG9hZFN0
YWNrU2xvdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TG9hZCk6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0U3RvcmVGbG9hdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3RvcmVEb3VibGVDb25z
dGFudEFzRmxvYXQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNwaWxsR1ApOgorICAgICAgICAo
SlNDOjpCMzo6dGVzdFNwaWxsRlApOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEludDMyVG9Eb3Vi
bGVQYXJ0aWFsUmVnaXN0ZXJTdGFsbCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0SW50MzJUb0Rv
dWJsZVBhcnRpYWxSZWdpc3RlcldpdGhvdXRTdGFsbCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0
QnJhbmNoKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCcmFuY2hQdHIpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdERpYW1vbmQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJyYW5jaE5vdEVxdWFs
KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCcmFuY2hOb3RFcXVhbENvbW11dGUpOgorICAgICAg
ICAoSlNDOjpCMzo6dGVzdEJyYW5jaE5vdEVxdWFsTm90RXF1YWwpOgorICAgICAgICAoSlNDOjpC
Mzo6dGVzdEJyYW5jaEVxdWFsKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCcmFuY2hFcXVhbEVx
dWFsKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCcmFuY2hFcXVhbENvbW11dGUpOgorICAgICAg
ICAoSlNDOjpCMzo6dGVzdEJyYW5jaEVxdWFsRXF1YWwxKToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVkQXJncyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QnJh
bmNoTm90RXF1YWxBbmRPcmRlcmVkQXJncyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QnJhbmNo
RXF1YWxPclVub3JkZXJlZERvdWJsZUFyZ0ltbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QnJh
bmNoRXF1YWxPclVub3JkZXJlZEZsb2F0QXJnSW1tKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RC
cmFuY2hFcXVhbE9yVW5vcmRlcmVkRG91YmxlSW1tcyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0
QnJhbmNoRXF1YWxPclVub3JkZXJlZEZsb2F0SW1tcyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0
QnJhbmNoRXF1YWxPclVub3JkZXJlZEZsb2F0V2l0aFVzZWxlc3NEb3VibGVDb252ZXJzaW9uKToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RCcmFuY2hGb2xkKToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3REaWFtb25kRm9sZCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QnJhbmNoTm90RXF1YWxGb2xk
UHRyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCcmFuY2hFcXVhbEZvbGRQdHIpOgorICAgICAg
ICAoSlNDOjpCMzo6dGVzdEJyYW5jaExvYWRQdHIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJy
YW5jaExvYWQzMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QnJhbmNoTG9hZDhTKToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RCcmFuY2hMb2FkOFopOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJy
YW5jaExvYWQxNlMpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJyYW5jaExvYWQxNlopOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdEJyYW5jaDhXaXRoTG9hZDhaSW5kZXgpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdENvbXBsZXgpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNpbXBsZVBhdGNocG9p
bnQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNpbXBsZVBhdGNocG9pbnRXaXRob3V0T3VwdXRD
bG9iYmVyc0dQQXJncyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U2ltcGxlUGF0Y2hwb2ludFdp
dGhPdXB1dENsb2JiZXJzR1BBcmdzKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTaW1wbGVQYXRj
aHBvaW50V2l0aG91dE91cHV0Q2xvYmJlcnNGUEFyZ3MpOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dFNpbXBsZVBhdGNocG9pbnRXaXRoT3VwdXRDbG9iYmVyc0ZQQXJncyk6CisgICAgICAgIChKU0M6
OkIzOjp0ZXN0UGF0Y2hwb2ludFdpdGhFYXJseUNsb2JiZXIpOgorICAgICAgICAoSlNDOjpCMzo6
dGVzdFBhdGNocG9pbnRDYWxsQXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RQYXRjaHBvaW50
Rml4ZWRSZWdpc3Rlcik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0UGF0Y2hwb2ludEFueSk6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0UGF0Y2hwb2ludEdQU2NyYXRjaCk6CisgICAgICAgIChKU0M6
OkIzOjp0ZXN0UGF0Y2hwb2ludEZQU2NyYXRjaCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0UGF0
Y2hwb2ludExvdHNPZkxhdGVBbnlzKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RQYXRjaHBvaW50
QW55SW1tKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RQYXRjaHBvaW50TWFueUltbXMpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdFBhdGNocG9pbnRXaXRoUmVnaXN0ZXJSZXN1bHQpOgorICAgICAg
ICAoSlNDOjpCMzo6dGVzdFBhdGNocG9pbnRXaXRoU3RhY2tBcmd1bWVudFJlc3VsdCk6CisgICAg
ICAgIChKU0M6OkIzOjp0ZXN0UGF0Y2hwb2ludFdpdGhBbnlSZXN1bHQpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdFNpbXBsZUNoZWNrKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDaGVja0ZhbHNl
KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDaGVja1RydWUpOgorICAgICAgICAoSlNDOjpCMzo6
dGVzdENoZWNrTGVzc1RoYW4pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoZWNrTWVnYUNvbWJv
KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDaGVja1RyaWNreU1lZ2FDb21ibyk6CisgICAgICAg
IChKU0M6OkIzOjp0ZXN0Q2hlY2tUd29NZWdhQ29tYm9zKToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RDaGVja1R3b05vblJlZHVuZGFudE1lZ2FDb21ib3MpOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dENoZWNrQWRkSW1tKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDaGVja0FkZEltbUNvbW11dGUp
OgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoZWNrQWRkSW1tU29tZVJlZ2lzdGVyKToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RDaGVja0FkZCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hlY2tB
ZGQ2NCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hlY2tBZGRGb2xkKToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3RDaGVja0FkZEZvbGRGYWlsKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDaGVj
a0FkZEFyZ3VtZW50QWxpYXNpbmc2NCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hlY2tBZGRB
cmd1bWVudEFsaWFzaW5nMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoZWNrQWRkU2VsZk92
ZXJmbG93NjQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoZWNrQWRkU2VsZk92ZXJmbG93MzIp
OgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoZWNrU3ViSW1tKToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RDaGVja1N1YkJhZEltbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hlY2tTdWIpOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdENoZWNrU3ViNjQpOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dENoZWNrU3ViRm9sZCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hlY2tTdWJGb2xkRmFpbCk6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hlY2tOZWcpOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dENoZWNrTmVnNjQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoZWNrTXVsKToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RDaGVja011bE1lbW9yeSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hl
Y2tNdWwyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDaGVja011bDY0KToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3RDaGVja011bEZvbGQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoZWNrTXVs
Rm9sZEZhaWwpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoZWNrTXVsQXJndW1lbnRBbGlhc2lu
ZzY0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDaGVja011bEFyZ3VtZW50QWxpYXNpbmczMik6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hlY2tNdWw2NFNTaHIpOgorICAgICAgICAoSlNDOjpC
Mzo6Z2VuZXJpY1Rlc3RDb21wYXJlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RFcXVhbERvdWJs
ZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2FsbFNpbXBsZSk6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0Q2FsbFJhcmUpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENhbGxSYXJlTGl2ZSk6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0Q2FsbFNpbXBsZVB1cmUpOgorICAgICAgICAoSlNDOjpCMzo6
dGVzdENhbGxGdW5jdGlvbldpdGhIZWxsYUFyZ3VtZW50cyk6CisgICAgICAgIChKU0M6OkIzOjp0
ZXN0UmV0dXJuRG91YmxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RSZXR1cm5GbG9hdCk6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0Q2FsbFNpbXBsZURvdWJsZSk6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0Q2FsbFNpbXBsZUZsb2F0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDYWxsRnVuY3Rp
b25XaXRoSGVsbGFEb3VibGVBcmd1bWVudHMpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENhbGxG
dW5jdGlvbldpdGhIZWxsYUZsb2F0QXJndW1lbnRzKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RD
aGlsbERpdik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hpbGxEaXZUd2ljZSk6CisgICAgICAg
IChKU0M6OkIzOjp0ZXN0Q2hpbGxEaXY2NCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TW9kQXJn
KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNb2RBcmdzKToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RNb2RJbW1zKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNb2RBcmczMik6CisgICAgICAgIChK
U0M6OkIzOjp0ZXN0TW9kQXJnczMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNb2RJbW1zMzIp
OgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoaWxsTW9kQXJnKToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RDaGlsbE1vZEFyZ3MpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoaWxsTW9kSW1tcyk6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hpbGxNb2RBcmczMik6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0Q2hpbGxNb2RBcmdzMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoaWxsTW9kSW1t
czMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTd2l0Y2gpOgorICAgICAgICAoSlNDOjpCMzo6
dGVzdFN3aXRjaENoaWxsRGl2KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTd2l0Y2hUYXJnZXR0
aW5nU2FtZUJsb2NrKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTd2l0Y2hUYXJnZXR0aW5nU2Ft
ZUJsb2NrRm9sZFBhdGhDb25zdGFudCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0VHJ1bmNGb2xk
KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RaRXh0MzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dFpFeHQzMkZvbGQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNFeHQzMik6CisgICAgICAgIChK
U0M6OkIzOjp0ZXN0U0V4dDMyRm9sZCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0VHJ1bmNaRXh0
MzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFRydW5jU0V4dDMyKToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RTRXh0OCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U0V4dDhGb2xkKToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RTRXh0OFNFeHQ4KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTRXh0
OFNFeHQxNik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U0V4dDhCaXRBbmQpOgorICAgICAgICAo
SlNDOjpCMzo6dGVzdEJpdEFuZFNFeHQ4KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTRXh0MTYp
OgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNFeHQxNkZvbGQpOgorICAgICAgICAoSlNDOjpCMzo6
dGVzdFNFeHQxNlNFeHQxNik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U0V4dDE2U0V4dDgpOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdFNFeHQxNkJpdEFuZCk6CisgICAgICAgIChKU0M6OkIzOjp0
ZXN0Qml0QW5kU0V4dDE2KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTRXh0MzJCaXRBbmQpOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdEFuZFNFeHQzMik6CisgICAgICAgIChKU0M6OkIzOjp0
ZXN0QmFzaWNTZWxlY3QpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNlbGVjdFRlc3QpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdFNlbGVjdENvbXBhcmVEb3VibGUpOgorICAgICAgICAoSlNDOjpC
Mzo6dGVzdFNlbGVjdENvbXBhcmVGbG9hdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U2VsZWN0
Q29tcGFyZUZsb2F0VG9Eb3VibGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNlbGVjdERvdWJs
ZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U2VsZWN0RG91YmxlVGVzdCk6CisgICAgICAgIChK
U0M6OkIzOjp0ZXN0U2VsZWN0RG91YmxlQ29tcGFyZURvdWJsZSk6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0U2VsZWN0RG91YmxlQ29tcGFyZUZsb2F0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RT
ZWxlY3RGbG9hdENvbXBhcmVGbG9hdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U2VsZWN0Rm9s
ZCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U2VsZWN0SW52ZXJ0KToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RDaGVja1NlbGVjdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hlY2tTZWxlY3RD
aGVja1NlbGVjdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0UG93RG91YmxlQnlJbnRlZ2VyTG9v
cCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0VHJ1bmNPckhpZ2gpOgorICAgICAgICAoSlNDOjpC
Mzo6dGVzdFRydW5jT3JMb3cpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdEFuZE9ySGlnaCk6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0QW5kT3JMb3cpOgorICAgICAgICAoSlNDOjpCMzo6
dGVzdEJyYW5jaDY0RXF1YWwpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJyYW5jaDY0RXF1YWxJ
bW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJyYW5jaDY0RXF1YWxNZW0pOgorICAgICAgICAo
SlNDOjpCMzo6dGVzdEJyYW5jaDY0RXF1YWxNZW1JbW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dFN0b3JlOExvYWQ4Wik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3RvcmUxNkxvYWQxNlopOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdFNTaHJTaGwzMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0
U1NoclNobDY0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RUcml2aWFsSW5maW5pdGVMb29wKToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RGb2xkUGF0aEVxdWFsKToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RMU2hpZnRTZWxmMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFJTaGlmdFNlbGYzMik6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0VVJTaGlmdFNlbGYzMik6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0TFNoaWZ0U2VsZjY0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RSU2hpZnRTZWxmNjQp
OgorICAgICAgICAoSlNDOjpCMzo6dGVzdFVSU2hpZnRTZWxmNjQpOgorICAgICAgICAoSlNDOjpC
Mzo6dGVzdFBhdGNocG9pbnREb3VibGVSZWdzKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTcGls
bERlZlNtYWxsZXJUaGFuVXNlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTcGlsbFVzZUxhcmdl
clRoYW5EZWYpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdExhdGVSZWdpc3Rlcik6CisgICAgICAg
IChKU0M6OkIzOjp0aHJlYWRlZEludGVycHJldGVyUHJpbnQpOgorICAgICAgICAoSlNDOjpCMzo6
dGVzdFRocmVhZGVkSW50ZXJwcmV0ZXIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFJlZHVjZVN0
cmVuZ3RoQ2hlY2tCb3R0b21Vc2VJbkFub3RoZXJCbG9jayk6CisgICAgICAgIChKU0M6OkIzOjp0
ZXN0UmVzZXRSZWFjaGFiaWxpdHlEYW5nbGluZ1JlZmVyZW5jZSk6CisgICAgICAgIChKU0M6OkIz
OjpydW4pOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAqIGZ0
bC9GVExPdXRwdXQuY3BwOgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6anVtcCk6CisgICAg
ICAgIChKU0M6OkZUTDo6T3V0cHV0OjpicmFuY2gpOgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1
dDo6cmV0KToKKyAgICAgICAgKEpTQzo6RlRMOjpPdXRwdXQ6OnVucmVhY2hhYmxlKToKKyAgICAg
ICAgKEpTQzo6RlRMOjpPdXRwdXQ6OnNwZWN1bGF0ZSk6CisgICAgICAgIChKU0M6OkZUTDo6T3V0
cHV0Ojp0cmFwKToKKyAgICAgICAgKEpTQzo6RlRMOjpPdXRwdXQ6OmFuY2hvcik6CisgICAgICAg
IChKU0M6OkZUTDo6T3V0cHV0OjpkZWNyZW1lbnRTdXBlclNhbXBsZXJDb3VudCk6CisgICAgICAg
IChKU0M6OkZUTDo6T3V0cHV0OjphZGRJbmNvbWluZ1RvUGhpKToKKyAgICAgICAgKiBmdGwvRlRM
T3V0cHV0Lmg6CisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0Ojpjb25zdEludFB0cik6CisgICAg
ICAgIChKU0M6OkZUTDo6T3V0cHV0OjpjYWxsV2l0aG91dFNpZGVFZmZlY3RzKToKKyAgICAgICAg
KEpTQzo6RlRMOjpPdXRwdXQ6OnN3aXRjaEluc3RydWN0aW9uKToKKyAgICAgICAgKEpTQzo6RlRM
OjpPdXRwdXQ6OnBoaSk6CisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0OjphZGRJbmNvbWluZ1Rv
UGhpKToKKwogMjAxNi0wNy0wOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
ICAgICAgICAgR2VuZXJhdGUgV2ViQ29yZSBidWlsdGluIHdyYXBwZXIgZmlsZXMKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTA4LDYg
KzEwOCw3IEBAIHNldChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgYjMvQjNCbG9ja0luc2Vy
dGlvblNldC5jcHAKICAgICBiMy9CM0JyZWFrQ3JpdGljYWxFZGdlcy5jcHAKICAgICBiMy9CM0ND
YWxsVmFsdWUuY3BwCisgICAgYjMvQjNDYXNlQ29sbGVjdGlvbi5jcHAKICAgICBiMy9CM0NoZWNr
U3BlY2lhbC5jcHAKICAgICBiMy9CM0NoZWNrVmFsdWUuY3BwCiAgICAgYjMvQjNDb21tb24uY3Bw
CkBAIC0xMTgsNyArMTE5LDYgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICBiMy9C
M0NvbnN0RG91YmxlVmFsdWUuY3BwCiAgICAgYjMvQjNDb25zdEZsb2F0VmFsdWUuY3BwCiAgICAg
YjMvQjNDb25zdHJhaW5lZFZhbHVlLmNwcAotICAgIGIzL0IzQ29udHJvbFZhbHVlLmNwcAogICAg
IGIzL0IzRGF0YVNlY3Rpb24uY3BwCiAgICAgYjMvQjNEdXBsaWNhdGVUYWlscy5jcHAKICAgICBi
My9CM0VmZmVjdHMuY3BwCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNp
b24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTc3Myw4ICs3NzMsNiBAQAog
CQkwRkVDODUxMDFCREFDREFDMDA4MEZGNzQgLyogQjNDb25zdDY0VmFsdWUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRUM4NEM2MUJEQUNEQUMwMDgw
RkY3NCAvKiBCM0NvbnN0NjRWYWx1ZS5oICovOyB9OwogCQkwRkVDODUxMTFCREFDREFDMDA4MEZG
NzQgLyogQjNDb25zdERvdWJsZVZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGRUM4NEM3MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0RG91
YmxlVmFsdWUuY3BwICovOyB9OwogCQkwRkVDODUxMjFCREFDREFDMDA4MEZGNzQgLyogQjNDb25z
dERvdWJsZVZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRkVDODRDODFCREFDREFDMDA4MEZGNzQgLyogQjNDb25zdERvdWJsZVZhbHVlLmggKi87
IH07Ci0JCTBGRUM4NTEzMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnRyb2xWYWx1ZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkVDODRDOTFCREFD
REFDMDA4MEZGNzQgLyogQjNDb250cm9sVmFsdWUuY3BwICovOyB9OwotCQkwRkVDODUxNDFCREFD
REFDMDA4MEZGNzQgLyogQjNDb250cm9sVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRUM4NENBMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnRy
b2xWYWx1ZS5oICovOyB9OwogCQkwRkVDODUxNTFCREFDREFDMDA4MEZGNzQgLyogQjNGcmVxdWVu
Y3lDbGFzcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRkVDODRDQjFCREFDREFDMDA4MEZGNzQgLyogQjNGcmVxdWVuY3lDbGFzcy5jcHAgKi87IH07
CiAJCTBGRUM4NTE2MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0ZyZXF1ZW5jeUNsYXNzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkVDODRDQzFCREFDREFD
MDA4MEZGNzQgLyogQjNGcmVxdWVuY3lDbGFzcy5oICovOyB9OwogCQkwRkVDODUxNzFCREFDREFD
MDA4MEZGNzQgLyogQjNGcmVxdWVudGVkQmxvY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRUM4NENEMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0ZyZXF1
ZW50ZWRCbG9jay5oICovOyB9OwpAQCAtMTk5Nyw2ICsxOTk1LDkgQEAKIAkJREM2OUFBNjYxQ0Y3
QTFGMjAwQzYyNzJGIC8qIE1hdGNoUmVzdWx0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDNjlBQTY1MUNGN0ExRUYwMEM2MjcyRiAvKiBNYXRjaFJl
c3VsdC5jcHAgKi87IH07CiAJCURDNzk5NzgzMUNERTlGQTAwMDRENEEwOSAvKiBUYWdSZWdpc3Rl
cnNNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBE
Qzc5OTc4MjFDREU5RjlFMDA0RDRBMDkgLyogVGFnUmVnaXN0ZXJzTW9kZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCURDNzk5Nzg0MUNERTlGQTIw
MDRENEEwOSAvKiBUYWdSZWdpc3RlcnNNb2RlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDNzk5NzgxMUNERTlGOUUwMDRENEEwOSAvKiBUYWdSZWdp
c3RlcnNNb2RlLmNwcCAqLzsgfTsKKwkJREM5QTBDMUYxRDJEOUNCMTAwODUxMjRFIC8qIEIzQ2Fz
ZUNvbGxlY3Rpb25JbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBEQzlBMEMxRTFEMkQ5NEVGMDA4NTEyNEUgLyogQjNDYXNlQ29sbGVjdGlvbklu
bGluZXMuaCAqLzsgfTsKKwkJREM5QTBDMjAxRDJEOUNCMzAwODUxMjRFIC8qIEIzQ2FzZUNvbGxl
Y3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERD
OUEwQzFEMUQyRDk0RUYwMDg1MTI0RSAvKiBCM0Nhc2VDb2xsZWN0aW9uLmggKi87IH07CisJCURD
OUEwQzIxMUQyRDlDQjQwMDg1MTI0RSAvKiBCM0Nhc2VDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDOUEwQzFDMUQyRDk0RUYwMDg1
MTI0RSAvKiBCM0Nhc2VDb2xsZWN0aW9uLmNwcCAqLzsgfTsKIAkJRENFRTIyMDkxQ0VCOTg5NTAw
MEMyMzk2IC8qIERGR0JhY2t3YXJkc0NGRy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRENFRTIyMDYxQ0VCOTg5MDAwMEMyMzk2IC8qIERGR0JhY2t3YXJk
c0NGRy5oICovOyB9OwogCQlEQ0VFMjIwQTFDRUI5ODk1MDAwQzIzOTYgLyogREZHQmFja3dhcmRz
RG9taW5hdG9ycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRENFRTIyMDcxQ0VCOTg5MDAwMEMyMzk2IC8qIERGR0JhY2t3YXJkc0RvbWluYXRvcnMuaCAq
LzsgfTsKIAkJRENFRTIyMEIxQ0VCOTg5NTAwMEMyMzk2IC8qIERGR0NvbnRyb2xFcXVpdmFsZW5j
ZUFuYWx5c2lzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBEQ0VFMjIwODFDRUI5ODkwMDAwQzIzOTYgLyogREZHQ29udHJvbEVxdWl2YWxlbmNlQW5hbHlz
aXMuaCAqLzsgfTsKQEAgLTI5NjQsOCArMjk2NSw2IEBACiAJCTBGRUM4NEM2MUJEQUNEQUMwMDgw
RkY3NCAvKiBCM0NvbnN0NjRWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBCM0NvbnN0NjRWYWx1ZS5oOyBwYXRoID0gYjMvQjNDb25zdDY0VmFsdWUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZFQzg0QzcxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29uc3RE
b3VibGVWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBCM0Nv
bnN0RG91YmxlVmFsdWUuY3BwOyBwYXRoID0gYjMvQjNDb25zdERvdWJsZVZhbHVlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZFQzg0QzgxQkRBQ0RBQzAwODBGRjc0IC8qIEIz
Q29uc3REb3VibGVWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCM0Nv
bnN0RG91YmxlVmFsdWUuaDsgcGF0aCA9IGIzL0IzQ29uc3REb3VibGVWYWx1ZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQkwRkVDODRDOTFCREFDREFDMDA4MEZGNzQgLyogQjNDb250
cm9sVmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQjNDb250
cm9sVmFsdWUuY3BwOyBwYXRoID0gYjMvQjNDb250cm9sVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQkwRkVDODRDQTFCREFDREFDMDA4MEZGNzQgLyogQjNDb250cm9sVmFs
dWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQjNDb250cm9sVmFsdWUuaDsg
cGF0aCA9IGIzL0IzQ29udHJvbFZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTBGRUM4NENCMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0ZyZXF1ZW5jeUNsYXNzLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEIzRnJlcXVlbmN5Q2xhc3MuY3BwOyBwYXRo
ID0gYjMvQjNGcmVxdWVuY3lDbGFzcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTBGRUM4NENDMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0ZyZXF1ZW5jeUNsYXNzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEIzRnJlcXVlbmN5Q2xhc3MuaDsgcGF0aCA9IGIzL0Iz
RnJlcXVlbmN5Q2xhc3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZFQzg0Q0Qx
QkRBQ0RBQzAwODBGRjc0IC8qIEIzRnJlcXVlbnRlZEJsb2NrLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IEIzRnJlcXVlbnRlZEJsb2NrLmg7IHBhdGggPSBiMy9CM0ZyZXF1ZW50
ZWRCbG9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDIyNSw2ICs0MjI0LDkg
QEAKIAkJREM2OUFBNjUxQ0Y3QTFFRjAwQzYyNzJGIC8qIE1hdGNoUmVzdWx0LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1hdGNoUmVzdWx0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREM3OTk3ODExQ0RFOUY5RTAwNEQ0QTA5IC8qIFRhZ1JlZ2lz
dGVyc01vZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGFnUmVn
aXN0ZXJzTW9kZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDNzk5NzgyMUNE
RTlGOUUwMDRENEEwOSAvKiBUYWdSZWdpc3RlcnNNb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFRhZ1JlZ2lzdGVyc01vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJREM5QTBDMUMxRDJEOTRFRjAwODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rpb24uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQjNDYXNlQ29sbGVjdGlvbi5jcHA7
IHBhdGggPSBiMy9CM0Nhc2VDb2xsZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJREM5QTBDMUQxRDJEOTRFRjAwODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rpb24uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQjNDYXNlQ29sbGVjdGlvbi5oOyBwYXRoID0g
YjMvQjNDYXNlQ29sbGVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEQzlB
MEMxRTFEMkQ5NEVGMDA4NTEyNEUgLyogQjNDYXNlQ29sbGVjdGlvbklubGluZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQjNDYXNlQ29sbGVjdGlvbklubGluZXMuaDsgcGF0
aCA9IGIzL0IzQ2FzZUNvbGxlY3Rpb25JbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCURDRUUyMjA2MUNFQjk4OTAwMDBDMjM5NiAvKiBERkdCYWNrd2FyZHNDRkcuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHQmFja3dhcmRzQ0ZHLmg7IHBhdGggPSBk
ZmcvREZHQmFja3dhcmRzQ0ZHLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURDRUUy
MjA3MUNFQjk4OTAwMDBDMjM5NiAvKiBERkdCYWNrd2FyZHNEb21pbmF0b3JzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0JhY2t3YXJkc0RvbWluYXRvcnMuaDsgcGF0aCA9
IGRmZy9ERkdCYWNrd2FyZHNEb21pbmF0b3JzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCURDRUUyMjA4MUNFQjk4OTAwMDBDMjM5NiAvKiBERkdDb250cm9sRXF1aXZhbGVuY2VBbmFs
eXNpcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdDb250cm9sRXF1aXZh
bGVuY2VBbmFseXNpcy5oOyBwYXRoID0gZGZnL0RGR0NvbnRyb2xFcXVpdmFsZW5jZUFuYWx5c2lz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00NjkwLDYgKzQ2OTIsOSBAQAogCQkJ
CURDRkRGQkQ3MUQxRjVEOTgwMEZFM0Q3MiAvKiBCM0JvdHRvbVByb3ZpZGVyLmggKi8sCiAJCQkJ
MEY2QjhBREUxQzRFRkUxNzAwOTY5MDUyIC8qIEIzQnJlYWtDcml0aWNhbEVkZ2VzLmNwcCAqLywK
IAkJCQkwRjZCOEFERjFDNEVGRTE3MDA5NjkwNTIgLyogQjNCcmVha0NyaXRpY2FsRWRnZXMuaCAq
LywKKwkJCQlEQzlBMEMxQzFEMkQ5NEVGMDA4NTEyNEUgLyogQjNDYXNlQ29sbGVjdGlvbi5jcHAg
Ki8sCisJCQkJREM5QTBDMUQxRDJEOTRFRjAwODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rpb24uaCAq
LywKKwkJCQlEQzlBMEMxRTFEMkQ5NEVGMDA4NTEyNEUgLyogQjNDYXNlQ29sbGVjdGlvbklubGlu
ZXMuaCAqLywKIAkJCQkwRjMzOERGNzFCRTk2QUE4MDAxM0M4OEYgLyogQjNDQ2FsbFZhbHVlLmNw
cCAqLywKIAkJCQkwRjMzOERGODFCRTk2QUE4MDAxM0M4OEYgLyogQjNDQ2FsbFZhbHVlLmggKi8s
CiAJCQkJMEYzM0ZDRjkxQzE2MjVCRTAwMzIzRjY3IC8qIEIzQ0ZHLmggKi8sCkBAIC00NzE1LDgg
KzQ3MjAsNiBAQAogCQkJCTBGRUM4NUIyMUJERUQ5NTcwMDgwRkY3NCAvKiBCM0NvbnN0UHRyVmFs
dWUuaCAqLywKIAkJCQkwRjMzOERGMzFCRTkzRDU1MDAxM0M4OEYgLyogQjNDb25zdHJhaW5lZFZh
bHVlLmNwcCAqLywKIAkJCQkwRjMzOERGNDFCRTkzRDU1MDAxM0M4OEYgLyogQjNDb25zdHJhaW5l
ZFZhbHVlLmggKi8sCi0JCQkJMEZFQzg0QzkxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29udHJvbFZh
bHVlLmNwcCAqLywKLQkJCQkwRkVDODRDQTFCREFDREFDMDA4MEZGNzQgLyogQjNDb250cm9sVmFs
dWUuaCAqLywKIAkJCQkwRjMzOEUwMTFCRjAyNzZDMDAxM0M4OEYgLyogQjNEYXRhU2VjdGlvbi5j
cHAgKi8sCiAJCQkJMEYzMzhFMDIxQkYwMjc2QzAwMTNDODhGIC8qIEIzRGF0YVNlY3Rpb24uaCAq
LywKIAkJCQkwRjMzRkNGQTFDMTYyNUJFMDAzMjNGNjcgLyogQjNEb21pbmF0b3JzLmggKi8sCkBA
IC03MDY4LDcgKzcwNzEsNiBAQAogCQkJCTBGRUM4NTEwMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0Nv
bnN0NjRWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1MTIxQkRBQ0RBQzAwODBGRjc0
IC8qIEIzQ29uc3REb3VibGVWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1QjMxQkRF
RDk1NzAwODBGRjc0IC8qIEIzQ29uc3RQdHJWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZF
Qzg1MTQxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29udHJvbFZhbHVlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkVDODVDMTFCRTE2N0EwMDA4MEZGNzQgLyogQjNFZmZlY3RzLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRkVDODUxNjFCREFDREFDMDA4MEZGNzQgLyogQjNGcmVxdWVuY3lDbGFzcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEY2MTgzMkYxQzQ1QkYwNzAwNzI0NTBCIC8qIEFpckxvd2VyQWZ0
ZXJSZWdBbGxvYy5oIGluIEhlYWRlcnMgKi8sCkBAIC03MjI1LDYgKzcyMjcsNyBAQAogCQkJCUJD
MThDM0ZCMEUxNkY1Q0QwMEIzNDQ2MCAvKiBEZWJ1Z2dlckNhbGxGcmFtZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNkFEMkNCNEQxOUI5MTQwMTAwMDY1NzE5IC8qIERlYnVnZ2VyRXZhbEVuYWJsZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCUZFQTA4NjIxMTgyQjdBMDQwMEY2RDg1MSAvKiBEZWJ1Z2dl
clByaW1pdGl2ZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCURDOUEwQzFGMUQyRDlDQjEwMDg1MTI0
RSAvKiBCM0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyRDRE
REUxOTgzMkQzNDAwN0Q0QjE5IC8qIERlYnVnZ2VyU2NvcGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGMTM2RDREMTc0QUQ2OUUwMDc1QjM1NCAvKiBEZWZlckdDLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRkM3MTJERjE3Q0Q4NzdDMDA4Q0M5M0MgLyogRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNr
LmggaW4gSGVhZGVycyAqLywKQEAgLTc0NzgsNiArNzQ4MSw3IEBACiAJCQkJMEZFMEU0QUUxQzI0
Qzk0QTAwMkUxN0I2IC8qIEFpclRtcFdpZHRoLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0YyOTk2
QzE3QTBCQjY3MDAxMDQxN0EgLyogRlRMRmFpbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQTBB
MkMxNzBCNjYxOTAwQkI3MjJDIC8qIEZUTEZvcm1hdHRlZFZhbHVlLmggaW4gSGVhZGVycyAqLywK
KwkJCQlEQzlBMEMyMDFEMkQ5Q0IzMDA4NTEyNEUgLyogQjNDYXNlQ29sbGVjdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZEOEEzMUExN0Q1MUYyMjAwQ0EyQzQwIC8qIEZUTEZvck9TUkVudHJ5
SklUQ29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc4QTk3N0YxNzk3MzhENTAwOURGNzQ0IC8q
IEZUTEdlbmVyYXRlZEZ1bmN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVBMEEwRTE3MDUx
M0RCMDBCQjcyMkMgLyogRlRMSklUQ29kZS5oIGluIEhlYWRlcnMgKi8sCkBAIC04NzExLDcgKzg3
MTUsNiBAQAogCQkJCTQzNkU1NDU0MUM0NjhFNzcwMEI1QUY3MyAvKiBCM0xlZ2FsaXplTWVtb3J5
T2Zmc2V0cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkVDODUwRjFCREFDREFDMDA4MEZGNzQg
LyogQjNDb25zdDY0VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFQzg1MTExQkRBQ0RB
QzAwODBGRjc0IC8qIEIzQ29uc3REb3VibGVWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkw
RkVDODUxMzFCREFDREFDMDA4MEZGNzQgLyogQjNDb250cm9sVmFsdWUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMEZFQzg1QzUxQkUxNkY1QTAwODBGRjc0IC8qIEIzRWZmZWN0cy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwRkVDODUxNTFCREFDREFDMDA4MEZGNzQgLyogQjNGcmVxdWVuY3lDbGFz
cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkVDODUxODFCREFDREFDMDA4MEZGNzQgLyogQjNH
ZW5lcmF0ZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTkxNTYsNiArOTE1OSw3IEBACiAJCQkJMTQ3
RjM5RDIxMDdFQzM3NjAwNDI3QTQ4IC8qIEpTR2xvYmFsT2JqZWN0LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE1RkQwMDg1MTg5QjFCN0UwMDYzMzIzMSAvKiBKU0dsb2JhbE9iamVjdENvbnNvbGVB
Z2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNUMzQTFBNTE4QzA0OTAyMDBDOTU5M0EgLyog
SlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCURDOUEw
QzIxMUQyRDlDQjQwMDg1MTI0RSAvKiBCM0Nhc2VDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE1OTQ1NTkyMTgyNDc0NDcwMENDMzg0MyAvKiBKU0dsb2JhbE9iamVjdERlYnVnZ2Fi
bGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTU3RDIzRTkxODkxQjA3NzAwMzFDN0ZBIC8qIEpT
R2xvYmFsT2JqZWN0RGVidWdnZXJBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNEU5RDE3
QjEwN0VDNDY5MDA0RERBMjEgLyogSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwIGluIFNvdXJj
ZXMgKi8sCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyQVJNNjQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyQVJNNjQuaAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgJKHdvcmtpbmcgY29weSkK
QEAgLTI4NzQsNiArMjg3NCwxMiBAQCBwdWJsaWM6CiAgICAgICAgIGxvYWQ2NChhZGRyZXNzLCBn
ZXRDYWNoZWREYXRhVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCkpOwogICAgICAgICBtX2Fz
c2VtYmxlci5icihkYXRhVGVtcFJlZ2lzdGVyKTsKICAgICB9CisgICAgCisgICAgdm9pZCBqdW1w
KEJhc2VJbmRleCBhZGRyZXNzKQorICAgIHsKKyAgICAgICAgbG9hZDY0KGFkZHJlc3MsIGdldENh
Y2hlZERhdGFUZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUoKSk7CisgICAgICAgIG1fYXNzZW1i
bGVyLmJyKGRhdGFUZW1wUmVnaXN0ZXIpOworICAgIH0KIAogICAgIHZvaWQganVtcChBYnNvbHV0
ZUFkZHJlc3MgYWRkcmVzcykKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCShyZXZpc2lv
biAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyWDg2Q29tbW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTIyNjMsNiArMjI2MywxMiBAQCBwdWJs
aWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLmptcF9tKGFkZHJlc3Mub2Zmc2V0LCBhZGRyZXNzLmJh
c2UpOwogICAgIH0KIAorICAgIC8vIEFkZHJlc3MgaXMgYSBtZW1vcnkgbG9jYXRpb24gY29udGFp
bmluZyB0aGUgYWRkcmVzcyB0byBqdW1wIHRvCisgICAgdm9pZCBqdW1wKEJhc2VJbmRleCBhZGRy
ZXNzKQorICAgIHsKKyAgICAgICAgbV9hc3NlbWJsZXIuam1wX20oYWRkcmVzcy5vZmZzZXQsIGFk
ZHJlc3MuYmFzZSwgYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZSk7CisgICAgfQorCiAKICAg
ICAvLyBBcml0aG1ldGljIGNvbnRyb2wgZmxvdyBvcGVyYXRpb25zOgogICAgIC8vCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgJKHJldmlz
aW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1i
bGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTE5ODMsNiArMTk4MywxMSBAQCBwdWJsaWM6CiAgICAg
ICAgIG1fZm9ybWF0dGVyLm9uZUJ5dGVPcChPUF9HUk9VUDVfRXYsIEdST1VQNV9PUF9KTVBOLCBi
YXNlLCBvZmZzZXQpOwogICAgIH0KICAgICAKKyAgICB2b2lkIGptcF9tKGludCBvZmZzZXQsIFJl
Z2lzdGVySUQgYmFzZSwgUmVnaXN0ZXJJRCBpbmRleCwgaW50IHNjYWxlKQorICAgIHsKKyAgICAg
ICAgbV9mb3JtYXR0ZXIub25lQnl0ZU9wKE9QX0dST1VQNV9FdiwgR1JPVVA1X09QX0pNUE4sIGJh
c2UsIGluZGV4LCBzY2FsZSwgb2Zmc2V0KTsKKyAgICB9CisgICAgCiAjaWYgIUNQVShYODZfNjQp
CiAgICAgdm9pZCBqbXBfbShjb25zdCB2b2lkKiBhZGRyZXNzKQogICAgIHsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2suY3BwCShyZXZpc2lvbiAyMDI4MDkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzAsNyArMzAsNiBAQAogCiAjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrSW5saW5lcy5oIgog
I2luY2x1ZGUgIkIzQmFzaWNCbG9ja1V0aWxzLmgiCi0jaW5jbHVkZSAiQjNDb250cm9sVmFsdWUu
aCIKICNpbmNsdWRlICJCM1Byb2NlZHVyZS5oIgogI2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgi
CiAjaW5jbHVkZSA8d3RmL0xpc3REdW1wLmg+CkBAIC01MiwxMiArNTEsMTQgQEAgQmFzaWNCbG9j
azo6fkJhc2ljQmxvY2soKQogdm9pZCBCYXNpY0Jsb2NrOjphcHBlbmQoVmFsdWUqIHZhbHVlKQog
ewogICAgIG1fdmFsdWVzLmFwcGVuZCh2YWx1ZSk7CisgICAgdmFsdWUtPm93bmVyID0gdGhpczsK
IH0KIAogdm9pZCBCYXNpY0Jsb2NrOjphcHBlbmROb25UZXJtaW5hbChWYWx1ZSogdmFsdWUpCiB7
CiAgICAgbV92YWx1ZXMuYXBwZW5kKG1fdmFsdWVzLmxhc3QoKSk7CiAgICAgbV92YWx1ZXNbbV92
YWx1ZXMuc2l6ZSgpIC0gMV0gPSB2YWx1ZTsKKyAgICB2YWx1ZS0+b3duZXIgPSB0aGlzOwogfQog
CiB2b2lkIEJhc2ljQmxvY2s6OnJlbW92ZUxhc3QoUHJvY2VkdXJlJiBwcm9jKQpAQCAtODQsOSAr
ODUsNDEgQEAgVmFsdWUqIEJhc2ljQmxvY2s6OmFwcGVuZEludENvbnN0YW50KFBybwogICAgIHJl
dHVybiBhcHBlbmRJbnRDb25zdGFudChwcm9jLCBsaWtlVmFsdWUtPm9yaWdpbigpLCBsaWtlVmFs
dWUtPnR5cGUoKSwgdmFsdWUpOwogfQogCit2b2lkIEJhc2ljQmxvY2s6OmNsZWFyU3VjY2Vzc29y
cygpCit7CisgICAgbV9zdWNjZXNzb3JzLmNsZWFyKCk7Cit9CisKK3ZvaWQgQmFzaWNCbG9jazo6
YXBwZW5kU3VjY2Vzc29yKGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgdGFyZ2V0KQoreworICAgIG1f
c3VjY2Vzc29ycy5hcHBlbmQodGFyZ2V0KTsKK30KKwordm9pZCBCYXNpY0Jsb2NrOjpzZXRTdWNj
ZXNzb3JzKGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgdGFyZ2V0KQoreworICAgIG1fc3VjY2Vzc29y
cy5yZXNpemUoMSk7CisgICAgbV9zdWNjZXNzb3JzWzBdID0gdGFyZ2V0OworfQorCit2b2lkIEJh
c2ljQmxvY2s6OnNldFN1Y2Nlc3NvcnMoY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YWtlbiwgY29u
c3QgRnJlcXVlbnRlZEJsb2NrJiBub3RUYWtlbikKK3sKKyAgICBtX3N1Y2Nlc3NvcnMucmVzaXpl
KDIpOworICAgIG1fc3VjY2Vzc29yc1swXSA9IHRha2VuOworICAgIG1fc3VjY2Vzc29yc1sxXSA9
IG5vdFRha2VuOworfQorCiBib29sIEJhc2ljQmxvY2s6OnJlcGxhY2VTdWNjZXNzb3IoQmFzaWNC
bG9jayogZnJvbSwgQmFzaWNCbG9jayogdG8pCiB7Ci0gICAgcmV0dXJuIGxhc3QoKS0+YXM8Q29u
dHJvbFZhbHVlPigpLT5yZXBsYWNlU3VjY2Vzc29yKGZyb20sIHRvKTsKKyAgICBib29sIHJlc3Vs
dCA9IGZhbHNlOworICAgIGZvciAoQmFzaWNCbG9jayomIHN1Y2Nlc3NvciA6IHN1Y2Nlc3NvckJs
b2NrcygpKSB7CisgICAgICAgIGlmIChzdWNjZXNzb3IgPT0gZnJvbSkgeworICAgICAgICAgICAg
c3VjY2Vzc29yID0gdG87CisgICAgICAgICAgICByZXN1bHQgPSB0cnVlOworICAgICAgICAgICAg
CisgICAgICAgICAgICAvLyBLZWVwIGxvb3BpbmcgYmVjYXVzZSBhIHN1Y2Nlc3NvciBtYXkgYmUg
bWVudGlvbmVkIG11bHRpcGxlIHRpbWVzLCBsaWtlIGluIGEgU3dpdGNoLgorICAgICAgICB9Cisg
ICAgfQorICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIGJvb2wgQmFzaWNCbG9jazo6YWRkUHJlZGVj
ZXNzb3IoQmFzaWNCbG9jayogYmxvY2spCkBAIC0xMjEsNiArMTU0LDQyIEBAIHZvaWQgQmFzaWNC
bG9jazo6ZGVlcER1bXAoY29uc3QgUHJvY2VkdXIKICAgICAgICAgb3V0LnByaW50KCIgIFByZWRl
Y2Vzc29yczogIiwgcG9pbnRlckxpc3REdW1wKHByZWRlY2Vzc29ycygpKSwgIlxuIik7CiAgICAg
Zm9yIChWYWx1ZSogdmFsdWUgOiAqdGhpcykKICAgICAgICAgb3V0LnByaW50KCIgICAgIiwgQjM6
OmRlZXBEdW1wKHByb2MsIHZhbHVlKSwgIlxuIik7CisgICAgaWYgKHN1Y2Nlc3NvcnMoKS5zaXpl
KCkpIHsKKyAgICAgICAgb3V0LnByaW50KCIgIFN1Y2Nlc3NvcnM6ICIpOworICAgICAgICBpZiAo
c2l6ZSgpKQorICAgICAgICAgICAgbGFzdCgpLT5kdW1wU3VjY2Vzc29ycyh0aGlzLCBvdXQpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBvdXQucHJpbnQobGlzdER1bXAoc3VjY2Vzc29ycygp
KSk7CisgICAgICAgIG91dC5wcmludCgiXG4iKTsKKyAgICB9Cit9CisKK1ZhbHVlKiBCYXNpY0Js
b2NrOjphcHBlbmROZXdDb250cm9sVmFsdWUoUHJvY2VkdXJlJiBwcm9jLCBPcGNvZGUgb3Bjb2Rl
LCBPcmlnaW4gb3JpZ2luKQoreworICAgIFJFTEVBU0VfQVNTRVJUKG9wY29kZSA9PSBPb3BzKTsK
KyAgICBjbGVhclN1Y2Nlc3NvcnMoKTsKKyAgICByZXR1cm4gYXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBvcGNvZGUsIG9yaWdpbik7Cit9CisKK1ZhbHVlKiBCYXNpY0Jsb2NrOjphcHBlbmROZXdDb250
cm9sVmFsdWUoUHJvY2VkdXJlJiBwcm9jLCBPcGNvZGUgb3Bjb2RlLCBPcmlnaW4gb3JpZ2luLCBW
YWx1ZSogdmFsdWUpCit7CisgICAgUkVMRUFTRV9BU1NFUlQob3Bjb2RlID09IFJldHVybik7Cisg
ICAgY2xlYXJTdWNjZXNzb3JzKCk7CisgICAgcmV0dXJuIGFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
b3Bjb2RlLCBvcmlnaW4sIHZhbHVlKTsKK30KKworVmFsdWUqIEJhc2ljQmxvY2s6OmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShQcm9jZWR1cmUmIHByb2MsIE9wY29kZSBvcGNvZGUsIE9yaWdpbiBvcmln
aW4sIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgdGFyZ2V0KQoreworICAgIFJFTEVBU0VfQVNTRVJU
KG9wY29kZSA9PSBKdW1wKTsKKyAgICBzZXRTdWNjZXNzb3JzKHRhcmdldCk7CisgICAgcmV0dXJu
IGFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgb3Bjb2RlLCBvcmlnaW4pOworfQorCitWYWx1ZSogQmFz
aWNCbG9jazo6YXBwZW5kTmV3Q29udHJvbFZhbHVlKFByb2NlZHVyZSYgcHJvYywgT3Bjb2RlIG9w
Y29kZSwgT3JpZ2luIG9yaWdpbiwgVmFsdWUqIHByZWRpY2F0ZSwgY29uc3QgRnJlcXVlbnRlZEJs
b2NrJiB0YWtlbiwgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBub3RUYWtlbikKK3sKKyAgICBSRUxF
QVNFX0FTU0VSVChvcGNvZGUgPT0gQnJhbmNoKTsKKyAgICBzZXRTdWNjZXNzb3JzKHRha2VuLCBu
b3RUYWtlbik7CisgICAgcmV0dXJuIGFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgb3Bjb2RlLCBvcmln
aW4sIHByZWRpY2F0ZSk7CiB9CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2suaAkocmV2aXNpb24gMjAyODA5KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKEIzX0pJVCkKIAogI2luY2x1ZGUgIkIzRnJlcXVl
bnRlZEJsb2NrLmgiCisjaW5jbHVkZSAiQjNPcGNvZGUuaCIKICNpbmNsdWRlICJCM09yaWdpbi5o
IgogI2luY2x1ZGUgIkIzU3VjY2Vzc29yQ29sbGVjdGlvbi5oIgogI2luY2x1ZGUgIkIzVHlwZS5o
IgpAQCAtNDcsNyArNDgsNyBAQCBjbGFzcyBCYXNpY0Jsb2NrIHsKIHB1YmxpYzoKICAgICB0eXBl
ZGVmIFZlY3RvcjxWYWx1ZSo+IFZhbHVlTGlzdDsKICAgICB0eXBlZGVmIFZlY3RvcjxCYXNpY0Js
b2NrKiwgMj4gUHJlZGVjZXNzb3JMaXN0OwotICAgIHR5cGVkZWYgVmVjdG9yPEZyZXF1ZW50ZWRC
bG9jaywgMj4gU3VjY2Vzc29yTGlzdDsgLy8gVGhpcyBtYXRjaGVzIENvbnRyb2xWYWx1ZTo6U3Vj
Y2Vzc29yTGlzdAorICAgIHR5cGVkZWYgVmVjdG9yPEZyZXF1ZW50ZWRCbG9jaywgMj4gU3VjY2Vz
c29yTGlzdDsKIAogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBkdW1wUHJlZml4OwogCkBA
IC03OCw3ICs3OSw3IEBAIHB1YmxpYzoKICAgICBWYWx1ZVR5cGUqIGFwcGVuZE5ldyhQcm9jZWR1
cmUmLCBBcmd1bWVudHMuLi4pOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlw
ZW5hbWUuLi4gQXJndW1lbnRzPgogICAgIFZhbHVlVHlwZSogYXBwZW5kTmV3Tm9uVGVybWluYWwo
UHJvY2VkdXJlJiwgQXJndW1lbnRzLi4uKTsKLQorICAgIAogICAgIEpTX0VYUE9SVF9QUklWQVRF
IFZhbHVlKiBhcHBlbmRJbnRDb25zdGFudChQcm9jZWR1cmUmLCBPcmlnaW4sIFR5cGUsIGludDY0
X3QgdmFsdWUpOwogICAgIFZhbHVlKiBhcHBlbmRJbnRDb25zdGFudChQcm9jZWR1cmUmLCBWYWx1
ZSogbGlrZVZhbHVlLCBpbnQ2NF90IHZhbHVlKTsKIApAQCAtODcsMTggKzg4LDM5IEBAIHB1Ymxp
YzoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBWYWx1ZVR5cGUsIHR5cGVuYW1lLi4uIEFyZ3VtZW50
cz4KICAgICBWYWx1ZVR5cGUqIHJlcGxhY2VMYXN0V2l0aE5ldyhQcm9jZWR1cmUmLCBBcmd1bWVu
dHMuLi4pOwogCi0gICAgdW5zaWduZWQgbnVtU3VjY2Vzc29ycygpIGNvbnN0OwotICAgIGNvbnN0
IEZyZXF1ZW50ZWRCbG9jayYgc3VjY2Vzc29yKHVuc2lnbmVkIGluZGV4KSBjb25zdDsKLSAgICBG
cmVxdWVudGVkQmxvY2smIHN1Y2Nlc3Nvcih1bnNpZ25lZCBpbmRleCk7Ci0gICAgY29uc3QgU3Vj
Y2Vzc29yTGlzdCYgc3VjY2Vzc29ycygpIGNvbnN0OwotICAgIFN1Y2Nlc3Nvckxpc3QmIHN1Y2Nl
c3NvcnMoKTsKLQotICAgIEJhc2ljQmxvY2sqIHN1Y2Nlc3NvckJsb2NrKHVuc2lnbmVkIGluZGV4
KSBjb25zdDsKLSAgICBCYXNpY0Jsb2NrKiYgc3VjY2Vzc29yQmxvY2sodW5zaWduZWQgaW5kZXgp
OwotICAgIFN1Y2Nlc3NvckNvbGxlY3Rpb248QmFzaWNCbG9jaywgU3VjY2Vzc29yTGlzdD4gc3Vj
Y2Vzc29yQmxvY2tzKCk7Ci0gICAgU3VjY2Vzc29yQ29sbGVjdGlvbjxjb25zdCBCYXNpY0Jsb2Nr
LCBjb25zdCBTdWNjZXNzb3JMaXN0PiBzdWNjZXNzb3JCbG9ja3MoKSBjb25zdDsKKyAgICB1bnNp
Z25lZCBudW1TdWNjZXNzb3JzKCkgY29uc3QgeyByZXR1cm4gbV9zdWNjZXNzb3JzLnNpemUoKTsg
fQorICAgIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgc3VjY2Vzc29yKHVuc2lnbmVkIGluZGV4KSBj
b25zdCB7IHJldHVybiBtX3N1Y2Nlc3NvcnNbaW5kZXhdOyB9CisgICAgRnJlcXVlbnRlZEJsb2Nr
JiBzdWNjZXNzb3IodW5zaWduZWQgaW5kZXgpIHsgcmV0dXJuIG1fc3VjY2Vzc29yc1tpbmRleF07
IH0KKyAgICBjb25zdCBTdWNjZXNzb3JMaXN0JiBzdWNjZXNzb3JzKCkgY29uc3QgeyByZXR1cm4g
bV9zdWNjZXNzb3JzOyB9CisgICAgU3VjY2Vzc29yTGlzdCYgc3VjY2Vzc29ycygpIHsgcmV0dXJu
IG1fc3VjY2Vzc29yczsgfQorICAgIAorICAgIHZvaWQgY2xlYXJTdWNjZXNzb3JzKCk7CisgICAg
SlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBhcHBlbmRTdWNjZXNzb3IoY29uc3QgRnJlcXVlbnRlZEJs
b2NrJik7CisgICAgdm9pZCBzZXRTdWNjZXNzb3JzKGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYpOwor
ICAgIHZvaWQgc2V0U3VjY2Vzc29ycyhjb25zdCBGcmVxdWVudGVkQmxvY2smLCBjb25zdCBGcmVx
dWVudGVkQmxvY2smKTsKKworICAgIEJhc2ljQmxvY2sqIHN1Y2Nlc3NvckJsb2NrKHVuc2lnbmVk
IGluZGV4KSBjb25zdCB7IHJldHVybiBzdWNjZXNzb3IoaW5kZXgpLmJsb2NrKCk7IH0KKyAgICBC
YXNpY0Jsb2NrKiYgc3VjY2Vzc29yQmxvY2sodW5zaWduZWQgaW5kZXgpIHsgcmV0dXJuIHN1Y2Nl
c3NvcihpbmRleCkuYmxvY2soKTsgfQorICAgIFN1Y2Nlc3NvckNvbGxlY3Rpb248QmFzaWNCbG9j
aywgU3VjY2Vzc29yTGlzdD4gc3VjY2Vzc29yQmxvY2tzKCkKKyAgICB7CisgICAgICAgIHJldHVy
biBTdWNjZXNzb3JDb2xsZWN0aW9uPEJhc2ljQmxvY2ssIFN1Y2Nlc3Nvckxpc3Q+KHN1Y2Nlc3Nv
cnMoKSk7CisgICAgfQorICAgIFN1Y2Nlc3NvckNvbGxlY3Rpb248Y29uc3QgQmFzaWNCbG9jaywg
Y29uc3QgU3VjY2Vzc29yTGlzdD4gc3VjY2Vzc29yQmxvY2tzKCkgY29uc3QKKyAgICB7CisgICAg
ICAgIHJldHVybiBTdWNjZXNzb3JDb2xsZWN0aW9uPGNvbnN0IEJhc2ljQmxvY2ssIGNvbnN0IFN1
Y2Nlc3Nvckxpc3Q+KHN1Y2Nlc3NvcnMoKSk7CisgICAgfQogCiAgICAgYm9vbCByZXBsYWNlU3Vj
Y2Vzc29yKEJhc2ljQmxvY2sqIGZyb20sIEJhc2ljQmxvY2sqIHRvKTsKKyAgICAKKyAgICAvLyBU
aGlzIGlzIG9ubHkgdmFsaWQgZm9yIEp1bXAgYW5kIEJyYW5jaC4KKyAgICBjb25zdCBGcmVxdWVu
dGVkQmxvY2smIHRha2VuKCkgY29uc3Q7CisgICAgRnJlcXVlbnRlZEJsb2NrJiB0YWtlbigpOwor
ICAgIC8vIFRoaXMgaXMgb25seSB2YWxpZCBmb3IgQnJhbmNoLgorICAgIGNvbnN0IEZyZXF1ZW50
ZWRCbG9jayYgbm90VGFrZW4oKSBjb25zdDsKKyAgICBGcmVxdWVudGVkQmxvY2smIG5vdFRha2Vu
KCk7CisgICAgLy8gVGhpcyBpcyBvbmx5IHZhbGlkIGZvciBCcmFuY2ggYW5kIFN3aXRjaC4KKyAg
ICBjb25zdCBGcmVxdWVudGVkQmxvY2smIGZhbGxUaHJvdWdoKCkgY29uc3Q7CisgICAgRnJlcXVl
bnRlZEJsb2NrJiBmYWxsVGhyb3VnaCgpOwogCiAgICAgdW5zaWduZWQgbnVtUHJlZGVjZXNzb3Jz
KCkgY29uc3QgeyByZXR1cm4gbV9wcmVkZWNlc3NvcnMuc2l6ZSgpOyB9CiAgICAgQmFzaWNCbG9j
ayogcHJlZGVjZXNzb3IodW5zaWduZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fcHJlZGVjZXNz
b3JzW2luZGV4XTsgfQpAQCAtMTE1LDEwICsxMzcsMjMgQEAgcHVibGljOgogICAgIHZvaWQgdXBk
YXRlUHJlZGVjZXNzb3JzQWZ0ZXIoKTsKIAogICAgIGRvdWJsZSBmcmVxdWVuY3koKSBjb25zdCB7
IHJldHVybiBtX2ZyZXF1ZW5jeTsgfQotCisgICAgCiAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFt
JikgY29uc3Q7CiAgICAgdm9pZCBkZWVwRHVtcChjb25zdCBQcm9jZWR1cmUmLCBQcmludFN0cmVh
bSYpIGNvbnN0OwogCisgICAgLy8gVGhlc2UgYXJlIGRlcHJlY2F0ZWQgbWV0aG9kIGZvciBjb21w
YXRpYmlsaXR5IHdpdGggdGhlIG9sZCBDb250cm9sVmFsdWUgY2xhc3MuIERvbid0IHVzZSB0aGVt
CisgICAgLy8gaW4gbmV3IGNvZGUuCisgICAgLy8gRklYTUU6IGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk0NDAKKyAgICAKKyAgICAvLyBVc2UgdGhpcyBmb3IgT29w
cy4KKyAgICBKU19FWFBPUlRfUFJJVkFURSBWYWx1ZSogYXBwZW5kTmV3Q29udHJvbFZhbHVlKFBy
b2NlZHVyZSYsIE9wY29kZSwgT3JpZ2luKTsKKyAgICAvLyBVc2UgdGhpcyBmb3IgUmV0dXJuLgor
ICAgIEpTX0VYUE9SVF9QUklWQVRFIFZhbHVlKiBhcHBlbmROZXdDb250cm9sVmFsdWUoUHJvY2Vk
dXJlJiwgT3Bjb2RlLCBPcmlnaW4sIFZhbHVlKik7CisgICAgLy8gVXNlIHRoaXMgZm9yIEp1bXAu
CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgVmFsdWUqIGFwcGVuZE5ld0NvbnRyb2xWYWx1ZShQcm9j
ZWR1cmUmLCBPcGNvZGUsIE9yaWdpbiwgY29uc3QgRnJlcXVlbnRlZEJsb2NrJik7CisgICAgLy8g
VXNlIHRoaXMgZm9yIEJyYW5jaC4KKyAgICBKU19FWFBPUlRfUFJJVkFURSBWYWx1ZSogYXBwZW5k
TmV3Q29udHJvbFZhbHVlKFByb2NlZHVyZSYsIE9wY29kZSwgT3JpZ2luLCBWYWx1ZSosIGNvbnN0
IEZyZXF1ZW50ZWRCbG9jayYsIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYpOworICAgIAogcHJpdmF0
ZToKICAgICBmcmllbmQgY2xhc3MgQmxvY2tJbnNlcnRpb25TZXQ7CiAgICAgZnJpZW5kIGNsYXNz
IEluc2VydGlvblNldDsKQEAgLTEzMCw2ICsxNjUsNyBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVk
IG1faW5kZXg7CiAgICAgVmFsdWVMaXN0IG1fdmFsdWVzOwogICAgIFByZWRlY2Vzc29yTGlzdCBt
X3ByZWRlY2Vzc29yczsKKyAgICBTdWNjZXNzb3JMaXN0IG1fc3VjY2Vzc29yczsKICAgICBkb3Vi
bGUgbV9mcmVxdWVuY3k7CiB9OwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNC
YXNpY0Jsb2NrSW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM0Jhc2ljQmxvY2tJbmxpbmVzLmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2tJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5
LDggKzI5LDggQEAKICNpZiBFTkFCTEUoQjNfSklUKQogCiAjaW5jbHVkZSAiQjNCYXNpY0Jsb2Nr
LmgiCi0jaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKICNpbmNsdWRlICJCM1Byb2NlZHVyZUlu
bGluZXMuaCIKKyNpbmNsdWRlICJCM1ZhbHVlLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3Bh
Y2UgQjMgewogCkBAIC01OCw0OSArNTgsNDAgQEAgVmFsdWVUeXBlKiBCYXNpY0Jsb2NrOjpyZXBs
YWNlTGFzdFdpdGhOZQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLWlubGluZSB1bnNpZ25lZCBC
YXNpY0Jsb2NrOjpudW1TdWNjZXNzb3JzKCkgY29uc3QKK2lubGluZSBjb25zdCBGcmVxdWVudGVk
QmxvY2smIEJhc2ljQmxvY2s6OnRha2VuKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbGFzdCgpLT5h
czxDb250cm9sVmFsdWU+KCktPm51bVN1Y2Nlc3NvcnMoKTsKKyAgICBBU1NFUlQobGFzdCgpLT5v
cGNvZGUoKSA9PSBKdW1wIHx8IGxhc3QoKS0+b3Bjb2RlKCkgPT0gQnJhbmNoKTsKKyAgICByZXR1
cm4gbV9zdWNjZXNzb3JzWzBdOwogfQogCi1pbmxpbmUgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBC
YXNpY0Jsb2NrOjpzdWNjZXNzb3IodW5zaWduZWQgaW5kZXgpIGNvbnN0CitpbmxpbmUgRnJlcXVl
bnRlZEJsb2NrJiBCYXNpY0Jsb2NrOjp0YWtlbigpCiB7Ci0gICAgcmV0dXJuIGxhc3QoKS0+YXM8
Q29udHJvbFZhbHVlPigpLT5zdWNjZXNzb3IoaW5kZXgpOworICAgIEFTU0VSVChsYXN0KCktPm9w
Y29kZSgpID09IEp1bXAgfHwgbGFzdCgpLT5vcGNvZGUoKSA9PSBCcmFuY2gpOworICAgIHJldHVy
biBtX3N1Y2Nlc3NvcnNbMF07CiB9CiAKLWlubGluZSBGcmVxdWVudGVkQmxvY2smIEJhc2ljQmxv
Y2s6OnN1Y2Nlc3Nvcih1bnNpZ25lZCBpbmRleCkKK2lubGluZSBjb25zdCBGcmVxdWVudGVkQmxv
Y2smIEJhc2ljQmxvY2s6Om5vdFRha2VuKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbGFzdCgpLT5h
czxDb250cm9sVmFsdWU+KCktPnN1Y2Nlc3NvcihpbmRleCk7CisgICAgQVNTRVJUKGxhc3QoKS0+
b3Bjb2RlKCkgPT0gQnJhbmNoKTsKKyAgICByZXR1cm4gbV9zdWNjZXNzb3JzWzFdOwogfQogCi1p
bmxpbmUgY29uc3QgQmFzaWNCbG9jazo6U3VjY2Vzc29yTGlzdCYgQmFzaWNCbG9jazo6c3VjY2Vz
c29ycygpIGNvbnN0CitpbmxpbmUgRnJlcXVlbnRlZEJsb2NrJiBCYXNpY0Jsb2NrOjpub3RUYWtl
bigpCiB7Ci0gICAgcmV0dXJuIGxhc3QoKS0+YXM8Q29udHJvbFZhbHVlPigpLT5zdWNjZXNzb3Jz
KCk7CisgICAgQVNTRVJUKGxhc3QoKS0+b3Bjb2RlKCkgPT0gQnJhbmNoKTsKKyAgICByZXR1cm4g
bV9zdWNjZXNzb3JzWzFdOwogfQogCi1pbmxpbmUgQmFzaWNCbG9jazo6U3VjY2Vzc29yTGlzdCYg
QmFzaWNCbG9jazo6c3VjY2Vzc29ycygpCitpbmxpbmUgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBC
YXNpY0Jsb2NrOjpmYWxsVGhyb3VnaCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGxhc3QoKS0+YXM8
Q29udHJvbFZhbHVlPigpLT5zdWNjZXNzb3JzKCk7CisgICAgQVNTRVJUKGxhc3QoKS0+b3Bjb2Rl
KCkgPT0gQnJhbmNoIHx8IGxhc3QoKS0+b3Bjb2RlKCkgPT0gU3dpdGNoKTsKKyAgICByZXR1cm4g
bV9zdWNjZXNzb3JzLmxhc3QoKTsKIH0KIAotaW5saW5lIEJhc2ljQmxvY2sqIEJhc2ljQmxvY2s6
OnN1Y2Nlc3NvckJsb2NrKHVuc2lnbmVkIGluZGV4KSBjb25zdAoraW5saW5lIEZyZXF1ZW50ZWRC
bG9jayYgQmFzaWNCbG9jazo6ZmFsbFRocm91Z2goKQogewotICAgIHJldHVybiBzdWNjZXNzb3Io
aW5kZXgpLmJsb2NrKCk7Ci19Ci0KLWlubGluZSBCYXNpY0Jsb2NrKiYgQmFzaWNCbG9jazo6c3Vj
Y2Vzc29yQmxvY2sodW5zaWduZWQgaW5kZXgpCi17Ci0gICAgcmV0dXJuIHN1Y2Nlc3NvcihpbmRl
eCkuYmxvY2soKTsKLX0KLQotaW5saW5lIFN1Y2Nlc3NvckNvbGxlY3Rpb248QmFzaWNCbG9jaywg
QmFzaWNCbG9jazo6U3VjY2Vzc29yTGlzdD4gQmFzaWNCbG9jazo6c3VjY2Vzc29yQmxvY2tzKCkK
LXsKLSAgICByZXR1cm4gU3VjY2Vzc29yQ29sbGVjdGlvbjxCYXNpY0Jsb2NrLCBTdWNjZXNzb3JM
aXN0PihzdWNjZXNzb3JzKCkpOwotfQotCi1pbmxpbmUgU3VjY2Vzc29yQ29sbGVjdGlvbjxjb25z
dCBCYXNpY0Jsb2NrLCBjb25zdCBCYXNpY0Jsb2NrOjpTdWNjZXNzb3JMaXN0PiBCYXNpY0Jsb2Nr
OjpzdWNjZXNzb3JCbG9ja3MoKSBjb25zdAotewotICAgIHJldHVybiBTdWNjZXNzb3JDb2xsZWN0
aW9uPGNvbnN0IEJhc2ljQmxvY2ssIGNvbnN0IFN1Y2Nlc3Nvckxpc3Q+KHN1Y2Nlc3NvcnMoKSk7
CisgICAgQVNTRVJUKGxhc3QoKS0+b3Bjb2RlKCkgPT0gQnJhbmNoIHx8IGxhc3QoKS0+b3Bjb2Rl
KCkgPT0gU3dpdGNoKTsKKyAgICByZXR1cm4gbV9zdWNjZXNzb3JzLmxhc3QoKTsKIH0KIAogfSB9
IC8vIG5hbWVzcGFjZSBKU0M6OkIzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNC
bG9ja0luc2VydGlvblNldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzQmxvY2tJbnNlcnRpb25TZXQuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNCbG9ja0luc2VydGlvblNldC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTc4LDggKzc4LDggQEAgQmFzaWNCbG9jayogQmxvY2tJbnNlcnRpb25TZXQ6OnNwbGl0Rm9y
dwogICAgICAgICByZXN1bHQtPm1fdmFsdWVzW2ldID0gYmxvY2stPm1fdmFsdWVzW2ldOwogCiAg
ICAgLy8gTWFrZSB0aGUgbmV3IGJsb2NrIGp1bXAgdG8gJ2Jsb2NrJy4KLSAgICByZXN1bHQtPm1f
dmFsdWVzW3ZhbHVlSW5kZXhdID0KLSAgICAgICAgbV9wcm9jLmFkZDxDb250cm9sVmFsdWU+KEp1
bXAsIHZhbHVlLT5vcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGJsb2NrKSk7CisgICAgcmVzdWx0
LT5tX3ZhbHVlc1t2YWx1ZUluZGV4XSA9IG1fcHJvYy5hZGQ8VmFsdWU+KEp1bXAsIHZhbHVlLT5v
cmlnaW4oKSk7CisgICAgcmVzdWx0LT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhibG9j
aykpOwogCiAgICAgLy8gSWYgd2UgaGFkIGluc2VydGVkIHRoaW5ncyBpbnRvICdibG9jaycgYmVm
b3JlIHRoaXMsIGV4ZWN1dGUgdGhvc2UgaW5zZXJ0aW9ucyBub3cuCiAgICAgaWYgKGluc2VydGlv
blNldCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0JyZWFrQ3JpdGljYWxFZGdl
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQnJlYWtDcml0
aWNhbEVkZ2VzLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzQnJlYWtDcml0aWNhbEVkZ2VzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAs
NiBAQAogCiAjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrSW5saW5lcy5oIgogI2luY2x1ZGUgIkIzQmxv
Y2tJbnNlcnRpb25TZXQuaCIKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUg
IkIzUHJvY2VkdXJlSW5saW5lcy5oIgogI2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCiAKQEAg
LTUwLDggKzQ5LDggQEAgdm9pZCBicmVha0NyaXRpY2FsRWRnZXMoUHJvY2VkdXJlJiBwcm9jKQog
CiAgICAgICAgICAgICBCYXNpY0Jsb2NrKiBwYWQgPQogICAgICAgICAgICAgICAgIGluc2VydGlv
blNldC5pbnNlcnRCZWZvcmUoc3VjY2Vzc29yLCBzdWNjZXNzb3ItPmZyZXF1ZW5jeSgpKTsKLSAg
ICAgICAgICAgIHBhZC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCi0gICAgICAgICAgICAgICAg
cHJvYywgSnVtcCwgc3VjY2Vzc29yLT5hdCgwKS0+b3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhz
dWNjZXNzb3IpKTsKKyAgICAgICAgICAgIHBhZC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBKdW1w
LCBzdWNjZXNzb3ItPmF0KDApLT5vcmlnaW4oKSk7CisgICAgICAgICAgICBwYWQtPnNldFN1Y2Nl
c3NvcnMoRnJlcXVlbnRlZEJsb2NrKHN1Y2Nlc3NvcikpOwogICAgICAgICAgICAgcGFkLT5hZGRQ
cmVkZWNlc3NvcihibG9jayk7CiAgICAgICAgICAgICBzdWNjZXNzb3ItPnJlcGxhY2VQcmVkZWNl
c3NvcihibG9jaywgcGFkKTsKICAgICAgICAgICAgIHN1Y2Nlc3NvciA9IHBhZDsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nhc2VDb2xsZWN0aW9uLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDYXNlQ29sbGVjdGlvbi5jcHAJKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDYXNlQ29sbGVjdGlvbi5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQjNDYXNl
Q29sbGVjdGlvbi5oIgorCisjaWYgRU5BQkxFKEIzX0pJVCkKKworI2luY2x1ZGUgIkIzQmFzaWNC
bG9ja0lubGluZXMuaCIKKyNpbmNsdWRlICJCM0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oIgorI2lu
Y2x1ZGUgPHd0Zi9Db21tYVByaW50ZXIuaD4KKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBC
MyB7CisKK3ZvaWQgQ2FzZUNvbGxlY3Rpb246OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QK
K3sKKyAgICBDb21tYVByaW50ZXIgY29tbWE7CisgICAgZm9yIChTd2l0Y2hDYXNlIHN3aXRjaENh
c2UgOiAqdGhpcykKKyAgICAgICAgb3V0LnByaW50KGNvbW1hLCBzd2l0Y2hDYXNlKTsKKyAgICBv
dXQucHJpbnQoY29tbWEsICJkZWZhdWx0LT4iLCBmYWxsVGhyb3VnaCgpKTsKK30KKworfSB9IC8v
IG5hbWVzcGFjZSBKU0M6OkIzCisKKyNlbmRpZiAvLyBFTkFCTEUoQjNfSklUKQorCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDYXNlQ29sbGVjdGlvbi5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nhc2VDb2xsZWN0aW9uLmgJKHJldmlzaW9uIDAp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDYXNlQ29sbGVjdGlvbi5oCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMTIwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpZm5kZWYgQjNDYXNlQ29sbGVjdGlvbl9oCisjZGVmaW5lIEIzQ2Fz
ZUNvbGxlY3Rpb25faAorCisjaWYgRU5BQkxFKEIzX0pJVCkKKworI2luY2x1ZGUgIkIzU3dpdGNo
Q2FzZS5oIgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKKworY2xhc3MgQmFzaWNC
bG9jazsKK2NsYXNzIFN3aXRjaFZhbHVlOworCisvLyBOT1RFOiBZb3UnbGwgYWx3YXlzIHdhbnQg
dG8gaW5jbHVkZSBCM0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oIHdoZW4geW91IHVzZSB0aGlzLgor
CitjbGFzcyBDYXNlQ29sbGVjdGlvbiB7CitwdWJsaWM6CisgICAgQ2FzZUNvbGxlY3Rpb24oKQor
ICAgIHsKKyAgICB9CisgICAgCisgICAgQ2FzZUNvbGxlY3Rpb24oY29uc3QgU3dpdGNoVmFsdWUq
IHRlcm1pbmFsLCBjb25zdCBCYXNpY0Jsb2NrKiBvd25lcikKKyAgICAgICAgOiBtX3N3aXRjaCh0
ZXJtaW5hbCkKKyAgICAgICAgLCBtX293bmVyKG93bmVyKQorICAgIHsKKyAgICB9CisgICAgCisg
ICAgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBmYWxsVGhyb3VnaCgpIGNvbnN0OworCisgICAgdW5z
aWduZWQgc2l6ZSgpIGNvbnN0OworICAgIFN3aXRjaENhc2UgYXQodW5zaWduZWQgaW5kZXgpIGNv
bnN0OworICAgIAorICAgIFN3aXRjaENhc2Ugb3BlcmF0b3JbXSh1bnNpZ25lZCBpbmRleCkgY29u
c3QKKyAgICB7CisgICAgICAgIHJldHVybiBhdChpbmRleCk7CisgICAgfQorCisgICAgY2xhc3Mg
aXRlcmF0b3IgeworICAgIHB1YmxpYzoKKyAgICAgICAgaXRlcmF0b3IoKQorICAgICAgICAgICAg
OiBtX2NvbGxlY3Rpb24obnVsbHB0cikKKyAgICAgICAgICAgICwgbV9pbmRleCgwKQorICAgICAg
ICB7CisgICAgICAgIH0KKworICAgICAgICBpdGVyYXRvcihjb25zdCBDYXNlQ29sbGVjdGlvbiYg
Y29sbGVjdGlvbiwgdW5zaWduZWQgaW5kZXgpCisgICAgICAgICAgICA6IG1fY29sbGVjdGlvbigm
Y29sbGVjdGlvbikKKyAgICAgICAgICAgICwgbV9pbmRleChpbmRleCkKKyAgICAgICAgeworICAg
ICAgICB9CisKKyAgICAgICAgU3dpdGNoQ2FzZSBvcGVyYXRvciooKQorICAgICAgICB7CisgICAg
ICAgICAgICByZXR1cm4gbV9jb2xsZWN0aW9uLT5hdChtX2luZGV4KTsKKyAgICAgICAgfQorCisg
ICAgICAgIGl0ZXJhdG9yJiBvcGVyYXRvcisrKCkKKyAgICAgICAgeworICAgICAgICAgICAgbV9p
bmRleCsrOworICAgICAgICAgICAgcmV0dXJuICp0aGlzOworICAgICAgICB9CisKKyAgICAgICAg
Ym9vbCBvcGVyYXRvcj09KGNvbnN0IGl0ZXJhdG9yJiBvdGhlcikgY29uc3QKKyAgICAgICAgewor
ICAgICAgICAgICAgQVNTRVJUKG1fY29sbGVjdGlvbiA9PSBvdGhlci5tX2NvbGxlY3Rpb24pOwor
ICAgICAgICAgICAgcmV0dXJuIG1faW5kZXggPT0gb3RoZXIubV9pbmRleDsKKyAgICAgICAgfQor
CisgICAgICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBpdGVyYXRvciYgb3RoZXIpIGNvbnN0Cisg
ICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAhKCp0aGlzID09IG90aGVyKTsKKyAgICAgICAg
fQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgY29uc3QgQ2FzZUNvbGxlY3Rpb24qIG1fY29sbGVj
dGlvbjsKKyAgICAgICAgdW5zaWduZWQgbV9pbmRleDsKKyAgICB9OworCisgICAgdHlwZWRlZiBp
dGVyYXRvciBjb25zdF9pdGVyYXRvcjsKKworICAgIGl0ZXJhdG9yIGJlZ2luKCkgY29uc3QgeyBy
ZXR1cm4gaXRlcmF0b3IoKnRoaXMsIDApOyB9CisgICAgaXRlcmF0b3IgZW5kKCkgY29uc3QgeyBy
ZXR1cm4gaXRlcmF0b3IoKnRoaXMsIHNpemUoKSk7IH0KKyAgICAKKyAgICB2b2lkIGR1bXAoUHJp
bnRTdHJlYW0mKSBjb25zdDsKKyAgICAKK3ByaXZhdGU6CisgICAgY29uc3QgU3dpdGNoVmFsdWUq
IG1fc3dpdGNoIHsgbnVsbHB0ciB9OworICAgIGNvbnN0IEJhc2ljQmxvY2sqIG1fb3duZXIgeyBu
dWxscHRyIH07Cit9OworCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKKworI2VuZGlmIC8vIEVO
QUJMRShCM19KSVQpCisKKyNlbmRpZiAvLyBCM0Nhc2VDb2xsZWN0aW9uX2gKKwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2FzZUNvbGxlY3Rpb25JbmxpbmVzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2FzZUNvbGxlY3Rpb25JbmxpbmVzLmgJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDYXNlQ29sbGVjdGlv
bklubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgQjNDYXNlQ29sbGVjdGlv
bklubGluZXNfaAorI2RlZmluZSBCM0Nhc2VDb2xsZWN0aW9uSW5saW5lc19oCisKKyNpZiBFTkFC
TEUoQjNfSklUKQorCisjaW5jbHVkZSAiQjNDYXNlQ29sbGVjdGlvbi5oIgorI2luY2x1ZGUgIkIz
U3dpdGNoVmFsdWUuaCIKKyNpbmNsdWRlICJCM0Jhc2ljQmxvY2suaCIKKworbmFtZXNwYWNlIEpT
QyB7IG5hbWVzcGFjZSBCMyB7CisKK2lubGluZSBjb25zdCBGcmVxdWVudGVkQmxvY2smIENhc2VD
b2xsZWN0aW9uOjpmYWxsVGhyb3VnaCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fb3duZXItPmZh
bGxUaHJvdWdoKCk7Cit9CisKK2lubGluZSB1bnNpZ25lZCBDYXNlQ29sbGVjdGlvbjo6c2l6ZSgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc3dpdGNoLT5udW1DYXNlVmFsdWVzKCk7Cit9CisKK2lu
bGluZSBTd2l0Y2hDYXNlIENhc2VDb2xsZWN0aW9uOjphdCh1bnNpZ25lZCBpbmRleCkgY29uc3QK
K3sKKyAgICByZXR1cm4gU3dpdGNoQ2FzZShtX3N3aXRjaC0+Y2FzZVZhbHVlKGluZGV4KSwgbV9v
d25lci0+c3VjY2Vzc29yKGluZGV4KSk7Cit9CisKK30gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMwor
CisjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKKworI2VuZGlmIC8vIEIzQ2FzZUNvbGxlY3Rpb25J
bmxpbmVzX2gKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2hlY2tTcGVjaWFs
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDaGVja1NwZWNp
YWwuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjND
aGVja1NwZWNpYWwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NCw3ICs4NCw3IEBAIENoZWNrU3Bl
Y2lhbDo6Q2hlY2tTcGVjaWFsKEFpcjo6T3Bjb2RlIG8KICAgICAsIG1fc3RhY2ttYXBSb2xlKHN0
YWNrbWFwUm9sZSkKICAgICAsIG1fbnVtQ2hlY2tBcmdzKG51bUFyZ3MpCiB7Ci0gICAgQVNTRVJU
KGlzVGVybWluYWwob3Bjb2RlKSk7CisgICAgQVNTRVJUKGlzRGVmaW5pdGVseVRlcm1pbmFsKG9w
Y29kZSkpOwogfQogCiBDaGVja1NwZWNpYWw6OkNoZWNrU3BlY2lhbChjb25zdCBDaGVja1NwZWNp
YWw6OktleSYga2V5KQpAQCAtMTAyLDYgKzEwMiw3IEBAIEluc3QgQ2hlY2tTcGVjaWFsOjpoaWRk
ZW5CcmFuY2goY29uc3QgSW4KICAgICBoaWRkZW5CcmFuY2guYXJncy5yZXNlcnZlSW5pdGlhbENh
cGFjaXR5KG1fbnVtQ2hlY2tBcmdzKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9u
dW1DaGVja0FyZ3M7ICsraSkKICAgICAgICAgaGlkZGVuQnJhbmNoLmFyZ3MuYXBwZW5kKGluc3Qu
YXJnc1tpICsgMV0pOworICAgIEFTU0VSVChoaWRkZW5CcmFuY2guaXNUZXJtaW5hbCgpKTsKICAg
ICByZXR1cm4gaGlkZGVuQnJhbmNoOwogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNDb21tb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjND
b21tb24uaAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
Q29tbW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsNiArMjgsOCBAQAogCiAjaWYgRU5BQkxFKEIzX0pJ
VCkKIAorI2luY2x1ZGUgIkpTRXhwb3J0TWFjcm9zLmgiCisKIG5hbWVzcGFjZSBKU0MgeyBuYW1l
c3BhY2UgQjMgewogCiBpbmxpbmUgYm9vbCBpczY0Qml0KCkgeyByZXR1cm4gc2l6ZW9mKHZvaWQq
KSA9PSA4OyB9CkBAIC0zOCw3ICs0MCw3IEBAIGVudW0gQjNDb21wbGl0YXRpb25Nb2RlIHsKICAg
ICBBaXJNb2RlCiB9OwogCi1ib29sIHNob3VsZER1bXBJUihCM0NvbXBsaXRhdGlvbk1vZGUpOwor
SlNfRVhQT1JUX1BSSVZBVEUgYm9vbCBzaG91bGREdW1wSVIoQjNDb21wbGl0YXRpb25Nb2RlKTsK
IGJvb2wgc2hvdWxkRHVtcElSQXRFYWNoUGhhc2UoQjNDb21wbGl0YXRpb25Nb2RlKTsKIGJvb2wg
c2hvdWxkVmFsaWRhdGVJUigpOwogYm9vbCBzaG91bGRWYWxpZGF0ZUlSQXRFYWNoUGhhc2UoKTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnRyb2xWYWx1ZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29udHJvbFZhbHVlLmNwcAkocmV2
aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29udHJvbFZhbHVl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw5NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu
Y2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCi0KLSNpZiBFTkFCTEUoQjNfSklUKQotCi0jaW5jbHVk
ZSAiQjNCYXNpY0Jsb2NrLmgiCi0KLW5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewotCi1D
b250cm9sVmFsdWU6On5Db250cm9sVmFsdWUoKQotewotfQotCi1ib29sIENvbnRyb2xWYWx1ZTo6
cmVwbGFjZVN1Y2Nlc3NvcihCYXNpY0Jsb2NrKiBmcm9tLCBCYXNpY0Jsb2NrKiB0bykKLXsKLSAg
ICBib29sIHJlc3VsdCA9IGZhbHNlOwotICAgIGZvciAoRnJlcXVlbnRlZEJsb2NrJiBzdWNjZXNz
b3IgOiBtX3N1Y2Nlc3NvcnMpIHsKLSAgICAgICAgaWYgKHN1Y2Nlc3Nvci5ibG9jaygpID09IGZy
b20pIHsKLSAgICAgICAgICAgIHN1Y2Nlc3Nvci5ibG9jaygpID0gdG87Ci0gICAgICAgICAgICBy
ZXN1bHQgPSB0cnVlOwotCi0gICAgICAgICAgICAvLyBLZWVwIGxvb3BpbmcgYmVjYXVzZSBpdCdz
IHZhbGlkIGZvciBhIHN1Y2Nlc3NvciB0byBiZSBtZW50aW9uZWQgbXVsdGlwbGUgdGltZXMsCi0g
ICAgICAgICAgICAvLyBsaWtlIGlmIG11bHRpcGxlIHN3aXRjaCBjYXNlcyBoYXZlIHRoZSBzYW1l
IHRhcmdldC4KLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi12b2lk
IENvbnRyb2xWYWx1ZTo6Y29udmVydFRvSnVtcChCYXNpY0Jsb2NrKiBkZXN0aW5hdGlvbikKLXsK
LSAgICB1bnNpZ25lZCBpbmRleCA9IHRoaXMtPmluZGV4KCk7Ci0gICAgT3JpZ2luIG9yaWdpbiA9
IHRoaXMtPm9yaWdpbigpOwotICAgIEJhc2ljQmxvY2sqIG93bmVyID0gdGhpcy0+b3duZXI7Ci0K
LSAgICB0aGlzLT5+Q29udHJvbFZhbHVlKCk7Ci0KLSAgICBuZXcgKHRoaXMpIENvbnRyb2xWYWx1
ZShKdW1wLCBvcmlnaW4sIEZyZXF1ZW50ZWRCbG9jayhkZXN0aW5hdGlvbikpOwotCi0gICAgdGhp
cy0+b3duZXIgPSBvd25lcjsKLSAgICB0aGlzLT5tX2luZGV4ID0gaW5kZXg7Ci19Ci0KLXZvaWQg
Q29udHJvbFZhbHVlOjpjb252ZXJ0VG9Pb3BzKCkKLXsKLSAgICB1bnNpZ25lZCBpbmRleCA9IHRo
aXMtPmluZGV4KCk7Ci0gICAgT3JpZ2luIG9yaWdpbiA9IHRoaXMtPm9yaWdpbigpOwotICAgIEJh
c2ljQmxvY2sqIG93bmVyID0gdGhpcy0+b3duZXI7Ci0KLSAgICB0aGlzLT5+Q29udHJvbFZhbHVl
KCk7Ci0KLSAgICBuZXcgKHRoaXMpIENvbnRyb2xWYWx1ZShPb3BzLCBvcmlnaW4pOwotCi0gICAg
dGhpcy0+b3duZXIgPSBvd25lcjsKLSAgICB0aGlzLT5tX2luZGV4ID0gaW5kZXg7Ci19Ci0KLXZv
aWQgQ29udHJvbFZhbHVlOjpkdW1wTWV0YShDb21tYVByaW50ZXImIGNvbW1hLCBQcmludFN0cmVh
bSYgb3V0KSBjb25zdAotewotICAgIGZvciAoRnJlcXVlbnRlZEJsb2NrIHN1Y2Nlc3NvciA6IG1f
c3VjY2Vzc29ycykKLSAgICAgICAgb3V0LnByaW50KGNvbW1hLCBzdWNjZXNzb3IpOwotfQotCi1W
YWx1ZSogQ29udHJvbFZhbHVlOjpjbG9uZUltcGwoKSBjb25zdAotewotICAgIHJldHVybiBuZXcg
Q29udHJvbFZhbHVlKCp0aGlzKTsKLX0KLQotfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzCi0KLSNl
bmRpZiAvLyBFTkFCTEUoQjNfSklUKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
Q29udHJvbFZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
Q29udHJvbFZhbHVlLmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0NvbnRyb2xWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE2MyArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
Ci0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRl
ZiBCM0NvbnRyb2xWYWx1ZV9oCi0jZGVmaW5lIEIzQ29udHJvbFZhbHVlX2gKLQotI2lmIEVOQUJM
RShCM19KSVQpCi0KLSNpbmNsdWRlICJCM0ZyZXF1ZW50ZWRCbG9jay5oIgotI2luY2x1ZGUgIkIz
U3VjY2Vzc29yQ29sbGVjdGlvbi5oIgotI2luY2x1ZGUgIkIzVmFsdWUuaCIKLQotbmFtZXNwYWNl
IEpTQyB7IG5hbWVzcGFjZSBCMyB7Ci0KLWNsYXNzIEJhc2ljQmxvY2s7Ci0KLWNsYXNzIEpTX0VY
UE9SVF9QUklWQVRFIENvbnRyb2xWYWx1ZSA6IHB1YmxpYyBWYWx1ZSB7Ci1wdWJsaWM6Ci0gICAg
c3RhdGljIGJvb2wgYWNjZXB0cyhPcGNvZGUgb3Bjb2RlKQotICAgIHsKLSAgICAgICAgc3dpdGNo
IChvcGNvZGUpIHsKLSAgICAgICAgY2FzZSBKdW1wOgotICAgICAgICBjYXNlIEJyYW5jaDoKLSAg
ICAgICAgY2FzZSBSZXR1cm46Ci0gICAgICAgIGNhc2UgT29wczoKLSAgICAgICAgICAgIHJldHVy
biB0cnVlOwotICAgICAgICBjYXNlIFN3aXRjaDogCi0gICAgICAgICAgICAvLyBUaGlzIGlzIGhl
cmUgYmVjYXVzZSBTd2l0Y2hWYWx1ZSBpcyBhIHN1YmNsYXNzIG9mIENvbnRyb2xWYWx1ZSwgc28g
d2Ugd2FudAotICAgICAgICAgICAgLy8gc3dpdGNoVmFsdWUtPmFzPENvbnRyb2xWYWx1ZT4oKSB0
byByZXR1cm4gbm9uLW51bGwuCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgZGVm
YXVsdDoKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgIH0KLQotICAg
IHR5cGVkZWYgVmVjdG9yPEZyZXF1ZW50ZWRCbG9jaywgMj4gU3VjY2Vzc29yTGlzdDsKLQotICAg
IH5Db250cm9sVmFsdWUoKTsKLQotICAgIHVuc2lnbmVkIG51bVN1Y2Nlc3NvcnMoKSBjb25zdCB7
IHJldHVybiBtX3N1Y2Nlc3NvcnMuc2l6ZSgpOyB9Ci0gICAgY29uc3QgRnJlcXVlbnRlZEJsb2Nr
JiBzdWNjZXNzb3IodW5zaWduZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fc3VjY2Vzc29yc1tp
bmRleF07IH0KLSAgICBGcmVxdWVudGVkQmxvY2smIHN1Y2Nlc3Nvcih1bnNpZ25lZCBpbmRleCkg
eyByZXR1cm4gbV9zdWNjZXNzb3JzW2luZGV4XTsgfQotICAgIGNvbnN0IFN1Y2Nlc3Nvckxpc3Qm
IHN1Y2Nlc3NvcnMoKSBjb25zdCB7IHJldHVybiBtX3N1Y2Nlc3NvcnM7IH0KLSAgICBTdWNjZXNz
b3JMaXN0JiBzdWNjZXNzb3JzKCkgeyByZXR1cm4gbV9zdWNjZXNzb3JzOyB9Ci0KLSAgICBCYXNp
Y0Jsb2NrKiBzdWNjZXNzb3JCbG9jayh1bnNpZ25lZCBpbmRleCkgY29uc3QgeyByZXR1cm4gc3Vj
Y2Vzc29yKGluZGV4KS5ibG9jaygpOyB9Ci0gICAgQmFzaWNCbG9jayomIHN1Y2Nlc3NvckJsb2Nr
KHVuc2lnbmVkIGluZGV4KSB7IHJldHVybiBzdWNjZXNzb3IoaW5kZXgpLmJsb2NrKCk7IH0KLSAg
ICBTdWNjZXNzb3JDb2xsZWN0aW9uPEJhc2ljQmxvY2ssIFN1Y2Nlc3Nvckxpc3Q+IHN1Y2Nlc3Nv
ckJsb2NrcygpCi0gICAgewotICAgICAgICByZXR1cm4gU3VjY2Vzc29yQ29sbGVjdGlvbjxCYXNp
Y0Jsb2NrLCBTdWNjZXNzb3JMaXN0PihzdWNjZXNzb3JzKCkpOwotICAgIH0KLSAgICBTdWNjZXNz
b3JDb2xsZWN0aW9uPGNvbnN0IEJhc2ljQmxvY2ssIGNvbnN0IFN1Y2Nlc3Nvckxpc3Q+IHN1Y2Nl
c3NvckJsb2NrcygpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gU3VjY2Vzc29yQ29sbGVj
dGlvbjxjb25zdCBCYXNpY0Jsb2NrLCBjb25zdCBTdWNjZXNzb3JMaXN0PihzdWNjZXNzb3JzKCkp
OwotICAgIH0KLQotICAgIGJvb2wgcmVwbGFjZVN1Y2Nlc3NvcihCYXNpY0Jsb2NrKiBmcm9tLCBC
YXNpY0Jsb2NrKiB0byk7Ci0KLSAgICBjb25zdCBGcmVxdWVudGVkQmxvY2smIHRha2VuKCkgY29u
c3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChvcGNvZGUoKSA9PSBKdW1wIHx8IG9wY29kZSgpID09
IEJyYW5jaCk7Ci0gICAgICAgIHJldHVybiBzdWNjZXNzb3IoMCk7Ci0gICAgfQotICAgIEZyZXF1
ZW50ZWRCbG9jayYgdGFrZW4oKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG9wY29kZSgpID09IEp1
bXAgfHwgb3Bjb2RlKCkgPT0gQnJhbmNoKTsKLSAgICAgICAgcmV0dXJuIHN1Y2Nlc3NvcigwKTsK
LSAgICB9Ci0gICAgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBub3RUYWtlbigpIGNvbnN0Ci0gICAg
ewotICAgICAgICBBU1NFUlQob3Bjb2RlKCkgPT0gQnJhbmNoKTsKLSAgICAgICAgcmV0dXJuIHN1
Y2Nlc3NvcigxKTsKLSAgICB9Ci0gICAgRnJlcXVlbnRlZEJsb2NrJiBub3RUYWtlbigpCi0gICAg
ewotICAgICAgICBBU1NFUlQob3Bjb2RlKCkgPT0gQnJhbmNoKTsKLSAgICAgICAgcmV0dXJuIHN1
Y2Nlc3NvcigxKTsKLSAgICB9Ci0KLSAgICB2b2lkIGNvbnZlcnRUb0p1bXAoQmFzaWNCbG9jayog
ZGVzdGluYXRpb24pOwotICAgIHZvaWQgY29udmVydFRvT29wcygpOwotCi1wcm90ZWN0ZWQ6Ci0g
ICAgdm9pZCBkdW1wTWV0YShDb21tYVByaW50ZXImLCBQcmludFN0cmVhbSYpIGNvbnN0IG92ZXJy
aWRlOwotCi0gICAgVmFsdWUqIGNsb25lSW1wbCgpIGNvbnN0IG92ZXJyaWRlOwotCi0gICAgLy8g
VXNlIHRoaXMgZm9yIHN1YmNsYXNzZXMuCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJndW1l
bnRzPgotICAgIENvbnRyb2xWYWx1ZShPcGNvZGUgb3Bjb2RlLCBUeXBlIHR5cGUsIE9yaWdpbiBv
cmlnaW4sIEFyZ3VtZW50cy4uLiBhcmd1bWVudHMpCi0gICAgICAgIDogVmFsdWUoQ2hlY2tlZE9w
Y29kZSwgb3Bjb2RlLCB0eXBlLCBvcmlnaW4sIGFyZ3VtZW50cy4uLikKLSAgICB7Ci0gICAgICAg
IEFTU0VSVChhY2NlcHRzKG9wY29kZSkpOwotICAgIH0KLQotICAgIC8vIFN1YmNsYXNzZXMgd2ls
bCBwb3B1bGF0ZSB0aGlzLgotICAgIFN1Y2Nlc3Nvckxpc3QgbV9zdWNjZXNzb3JzOwotCi1wcml2
YXRlOgotICAgIGZyaWVuZCBjbGFzcyBQcm9jZWR1cmU7Ci0KLSAgICAvLyBVc2UgdGhpcyBmb3Ig
T29wcy4KLSAgICBDb250cm9sVmFsdWUoT3Bjb2RlIG9wY29kZSwgT3JpZ2luIG9yaWdpbikKLSAg
ICAgICAgOiBWYWx1ZShDaGVja2VkT3Bjb2RlLCBvcGNvZGUsIFZvaWQsIG9yaWdpbikKLSAgICB7
Ci0gICAgICAgIEFTU0VSVChvcGNvZGUgPT0gT29wcyk7Ci0gICAgfQotCi0gICAgLy8gVXNlIHRo
aXMgZm9yIFJldHVybi4KLSAgICBDb250cm9sVmFsdWUoT3Bjb2RlIG9wY29kZSwgT3JpZ2luIG9y
aWdpbiwgVmFsdWUqIHJlc3VsdCkKLSAgICAgICAgOiBWYWx1ZShDaGVja2VkT3Bjb2RlLCBvcGNv
ZGUsIFZvaWQsIG9yaWdpbiwgcmVzdWx0KQotICAgIHsKLSAgICAgICAgQVNTRVJUKG9wY29kZSA9
PSBSZXR1cm4pOwotICAgIH0KLQotICAgIC8vIFVzZSB0aGlzIGZvciBKdW1wLgotICAgIENvbnRy
b2xWYWx1ZShPcGNvZGUgb3Bjb2RlLCBPcmlnaW4gb3JpZ2luLCBjb25zdCBGcmVxdWVudGVkQmxv
Y2smIHRhcmdldCkKLSAgICAgICAgOiBWYWx1ZShDaGVja2VkT3Bjb2RlLCBvcGNvZGUsIFZvaWQs
IG9yaWdpbikKLSAgICB7Ci0gICAgICAgIEFTU0VSVChvcGNvZGUgPT0gSnVtcCk7Ci0gICAgICAg
IG1fc3VjY2Vzc29ycy5hcHBlbmQodGFyZ2V0KTsKLSAgICB9Ci0KLSAgICAvLyBVc2UgdGhpcyBm
b3IgQnJhbmNoLgotICAgIENvbnRyb2xWYWx1ZSgKLSAgICAgICAgT3Bjb2RlIG9wY29kZSwgT3Jp
Z2luIG9yaWdpbiwgVmFsdWUqIHByZWRpY2F0ZSwKLSAgICAgICAgY29uc3QgRnJlcXVlbnRlZEJs
b2NrJiB5ZXMsIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgbm8pCi0gICAgICAgIDogVmFsdWUoQ2hl
Y2tlZE9wY29kZSwgb3Bjb2RlLCBWb2lkLCBvcmlnaW4sIHByZWRpY2F0ZSkKLSAgICB7Ci0gICAg
ICAgIEFTU0VSVChvcGNvZGUgPT0gQnJhbmNoKTsKLSAgICAgICAgbV9zdWNjZXNzb3JzLmFwcGVu
ZCh5ZXMpOwotICAgICAgICBtX3N1Y2Nlc3NvcnMuYXBwZW5kKG5vKTsKLSAgICB9Ci19OwotCi19
IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKLQotI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCi0KLSNl
bmRpZiAvLyBCM0NvbnRyb2xWYWx1ZV9oCi0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM0RhdGFTZWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNEYXRhU2VjdGlvbi5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0RhdGFTZWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMSw3ICszMSw3IEBA
CiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKIAogRGF0YVNlY3Rpb246OkRhdGFTZWN0
aW9uKHNpemVfdCBzaXplKQotICAgIDogbV9kYXRhKGZhc3RNYWxsb2Moc2l6ZSkpCisgICAgOiBt
X2RhdGEoZmFzdFplcm9lZE1hbGxvYyhzaXplKSkKICAgICAsIG1fc2l6ZShzaXplKQogewogfQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRHVwbGljYXRlVGFpbHMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0R1cGxpY2F0ZVRhaWxzLmNwcAko
cmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRHVwbGljYXRl
VGFpbHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw2IEBACiAKICNpbmNsdWRlICJC
M0Jhc2ljQmxvY2tJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNCcmVha0NyaXRpY2FsRWRnZXMuaCIK
LSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzRG9taW5hdG9ycy5oIgog
I2luY2x1ZGUgIkIzRml4U1NBLmgiCiAjaW5jbHVkZSAiQjNJbmRleFNldC5oIgpAQCAtNzIsOSAr
NzEsMTAgQEAgcHVibGljOgogICAgICAgICBJbmRleFNldDxCYXNpY0Jsb2NrPiBjYW5kaWRhdGVz
OwogCiAgICAgICAgIGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiBtX3Byb2MpIHsKLSAgICAgICAg
ICAgIGlmIChibG9jay0+c2l6ZSgpID4gbV9tYXhTaXplIHx8IGJsb2NrLT5udW1TdWNjZXNzb3Jz
KCkgPiBtX21heFN1Y2Nlc3NvcnMpCisgICAgICAgICAgICBpZiAoYmxvY2stPnNpemUoKSA+IG1f
bWF4U2l6ZQorICAgICAgICAgICAgICAgIHx8IGJsb2NrLT5udW1TdWNjZXNzb3JzKCkgPiBtX21h
eFN1Y2Nlc3NvcnMpCiAgICAgICAgICAgICAgICAgY29udGludWU7Ci0KKyAgICAgICAgICAgIAog
ICAgICAgICAgICAgY2FuZGlkYXRlcy5hZGQoYmxvY2spOwogICAgICAgICB9CiAKQEAgLTk3LDEx
ICs5NywxMCBAQCBwdWJsaWM6CiAgICAgICAgIH0KIAogICAgICAgICBmb3IgKEJhc2ljQmxvY2sq
IGJsb2NrIDogbV9wcm9jKSB7Ci0gICAgICAgICAgICBDb250cm9sVmFsdWUqIGp1bXAgPSBibG9j
ay0+bGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCk7Ci0gICAgICAgICAgICBpZiAoanVtcC0+b3Bj
b2RlKCkgIT0gSnVtcCkKKyAgICAgICAgICAgIGlmIChibG9jay0+bGFzdCgpLT5vcGNvZGUoKSAh
PSBKdW1wKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgICAgICBCYXNpY0Js
b2NrKiB0YWlsID0ganVtcC0+c3VjY2Vzc29yQmxvY2soMCk7CisgICAgICAgICAgICBCYXNpY0Js
b2NrKiB0YWlsID0gYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDApOwogICAgICAgICAgICAgaWYgKCFj
YW5kaWRhdGVzLmNvbnRhaW5zKHRhaWwpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCkBA
IC0xMzAsNiArMTI5LDcgQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAgICBtYXAuYWRkKHZh
bHVlLCBjbG9uZSk7CiAgICAgICAgICAgICAgICAgYmxvY2stPmFwcGVuZChjbG9uZSk7CiAgICAg
ICAgICAgICB9CisgICAgICAgICAgICBibG9jay0+c3VjY2Vzc29ycygpID0gdGFpbC0+c3VjY2Vz
c29ycygpOwogICAgICAgICB9CiAKICAgICAgICAgbV9wcm9jLnJlc2V0UmVhY2hhYmlsaXR5KCk7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNGaXhTU0EuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0ZpeFNTQS5jcHAJKHJldmlzaW9uIDIwMjgw
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0ZpeFNTQS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTMwLDcgKzMwLDYgQEAKIAogI2luY2x1ZGUgIkIzQmFzaWNCbG9ja0lubGluZXMuaCIK
ICNpbmNsdWRlICJCM0JyZWFrQ3JpdGljYWxFZGdlcy5oIgotI2luY2x1ZGUgIkIzQ29udHJvbFZh
bHVlLmgiCiAjaW5jbHVkZSAiQjNEb21pbmF0b3JzLmgiCiAjaW5jbHVkZSAiQjNJbmRleFNldC5o
IgogI2luY2x1ZGUgIkIzSW5zZXJ0aW9uU2V0SW5saW5lcy5oIgpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzRm9sZFBhdGhDb25zdGFudHMuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0ZvbGRQYXRoQ29uc3RhbnRzLmNwcAkocmV2aXNpb24gMjAy
ODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRm9sZFBhdGhDb25zdGFudHMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAjaWYgRU5BQkxFKEIzX0pJVCkKIAog
I2luY2x1ZGUgIkIzQmFzaWNCbG9ja0lubGluZXMuaCIKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1
ZS5oIgorI2luY2x1ZGUgIkIzQ2FzZUNvbGxlY3Rpb25JbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNE
b21pbmF0b3JzLmgiCiAjaW5jbHVkZSAiQjNJbnNlcnRpb25TZXRJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiQjNQaGFzZVNjb3BlLmgiCkBAIC04NywyNCArODcsMjQgQEAgcHVibGljOgogICAgICAgICB9
OwogICAgICAgICAKICAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBibG9jayA6IG1fcHJvYykgewot
ICAgICAgICAgICAgQ29udHJvbFZhbHVlKiBicmFuY2ggPSBibG9jay0+bGFzdCgpLT5hczxDb250
cm9sVmFsdWU+KCk7CisgICAgICAgICAgICBWYWx1ZSogYnJhbmNoID0gYmxvY2stPmxhc3QoKTsK
ICAgICAgICAgICAgIHN3aXRjaCAoYnJhbmNoLT5vcGNvZGUoKSkgewogICAgICAgICAgICAgY2Fz
ZSBCcmFuY2g6Ci0gICAgICAgICAgICAgICAgaWYgKGJyYW5jaC0+c3VjY2Vzc29yQmxvY2soMCkg
PT0gYnJhbmNoLT5zdWNjZXNzb3JCbG9jaygxKSkKKyAgICAgICAgICAgICAgICBpZiAoYmxvY2st
PnN1Y2Nlc3NvckJsb2NrKDApID09IGJsb2NrLT5zdWNjZXNzb3JCbG9jaygxKSkKICAgICAgICAg
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgYWRkT3ZlcnJpZGUoCiAgICAg
ICAgICAgICAgICAgICAgIGJsb2NrLCBicmFuY2gtPmNoaWxkKDApLAotICAgICAgICAgICAgICAg
ICAgICBPdmVycmlkZTo6bm9uWmVybyhicmFuY2gtPnN1Y2Nlc3NvckJsb2NrKDApKSk7CisgICAg
ICAgICAgICAgICAgICAgIE92ZXJyaWRlOjpub25aZXJvKGJsb2NrLT5zdWNjZXNzb3JCbG9jaygw
KSkpOwogICAgICAgICAgICAgICAgIGFkZE92ZXJyaWRlKAogICAgICAgICAgICAgICAgICAgICBi
bG9jaywgYnJhbmNoLT5jaGlsZCgwKSwKLSAgICAgICAgICAgICAgICAgICAgT3ZlcnJpZGU6OmNv
bnN0YW50KGJyYW5jaC0+c3VjY2Vzc29yQmxvY2soMSksIDApKTsKKyAgICAgICAgICAgICAgICAg
ICAgT3ZlcnJpZGU6OmNvbnN0YW50KGJsb2NrLT5zdWNjZXNzb3JCbG9jaygxKSwgMCkpOwogICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBTd2l0Y2g6IHsKICAgICAgICAg
ICAgICAgICBIYXNoTWFwPEJhc2ljQmxvY2sqLCB1bnNpZ25lZD4gdGFyZ2V0VXNlczsKLSAgICAg
ICAgICAgICAgICBmb3IgKGNvbnN0IFN3aXRjaENhc2UmIHN3aXRjaENhc2UgOiAqYnJhbmNoLT5h
czxTd2l0Y2hWYWx1ZT4oKSkKKyAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFN3aXRjaENhc2Um
IHN3aXRjaENhc2UgOiBicmFuY2gtPmFzPFN3aXRjaFZhbHVlPigpLT5jYXNlcyhibG9jaykpCiAg
ICAgICAgICAgICAgICAgICAgIHRhcmdldFVzZXMuYWRkKHN3aXRjaENhc2UudGFyZ2V0QmxvY2so
KSwgMCkuaXRlcmF0b3ItPnZhbHVlKys7CiAKLSAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFN3
aXRjaENhc2UmIHN3aXRjaENhc2UgOiAqYnJhbmNoLT5hczxTd2l0Y2hWYWx1ZT4oKSkgeworICAg
ICAgICAgICAgICAgIGZvciAoY29uc3QgU3dpdGNoQ2FzZSYgc3dpdGNoQ2FzZSA6IGJyYW5jaC0+
YXM8U3dpdGNoVmFsdWU+KCktPmNhc2VzKGJsb2NrKSkgewogICAgICAgICAgICAgICAgICAgICBp
ZiAodGFyZ2V0VXNlcy5maW5kKHN3aXRjaENhc2UudGFyZ2V0QmxvY2soKSktPnZhbHVlICE9IDEp
CiAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKIApAQCAtMTU4LDkgKzE1OCw4IEBA
IHB1YmxpYzoKIAogICAgICAgICAgICAgICAgIHN3aXRjaCAodmFsdWUtPm9wY29kZSgpKSB7CiAg
ICAgICAgICAgICAgICAgY2FzZSBCcmFuY2g6IHsKLSAgICAgICAgICAgICAgICAgICAgQ29udHJv
bFZhbHVlKiBicmFuY2ggPSB2YWx1ZS0+YXM8Q29udHJvbFZhbHVlPigpOwotICAgICAgICAgICAg
ICAgICAgICBpZiAoZ2V0T3ZlcnJpZGUoYmxvY2ssIGJyYW5jaC0+Y2hpbGQoMCkpLmlzTm9uWmVy
bykgewotICAgICAgICAgICAgICAgICAgICAgICAgYnJhbmNoLT5jb252ZXJ0VG9KdW1wKGJyYW5j
aC0+dGFrZW4oKS5ibG9jaygpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGdldE92ZXJyaWRl
KGJsb2NrLCB2YWx1ZS0+Y2hpbGQoMCkpLmlzTm9uWmVybykgeworICAgICAgICAgICAgICAgICAg
ICAgICAgdmFsdWUtPnJlcGxhY2VXaXRoSnVtcChibG9jaywgYmxvY2stPnRha2VuKCkpOwogICAg
ICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNMb3dlck1hY3Jvcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzTG93ZXJNYWNyb3MuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNMb3dlck1hY3Jvcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsMTcgKzI4
LDIzIEBACiAKICNpZiBFTkFCTEUoQjNfSklUKQogCisjaW5jbHVkZSAiQWxsb3dNYWNyb1NjcmF0
Y2hSZWdpc3RlclVzYWdlLmgiCiAjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrSW5saW5lcy5oIgogI2lu
Y2x1ZGUgIkIzQmxvY2tJbnNlcnRpb25TZXQuaCIKICNpbmNsdWRlICJCM0NDYWxsVmFsdWUuaCIK
KyNpbmNsdWRlICJCM0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oIgogI2luY2x1ZGUgIkIzQ29uc3RQ
dHJWYWx1ZS5oIgotI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNJbnNl
cnRpb25TZXRJbmxpbmVzLmgiCisjaW5jbHVkZSAiQjNNZW1vcnlWYWx1ZS5oIgorI2luY2x1ZGUg
IkIzUGF0Y2hwb2ludFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNQaGFzZVNjb3BlLmgiCiAjaW5jbHVk
ZSAiQjNQcm9jZWR1cmVJbmxpbmVzLmgiCisjaW5jbHVkZSAiQjNTdGFja21hcEdlbmVyYXRpb25Q
YXJhbXMuaCIKICNpbmNsdWRlICJCM1N3aXRjaFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNVcHNpbG9u
VmFsdWUuaCIKICNpbmNsdWRlICJCM1ZhbHVlSW5saW5lcy5oIgorI2luY2x1ZGUgIkNDYWxsSGVs
cGVycy5oIgorI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKICNpbmNsdWRlIDxjbWF0aD4KIAogbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CkBAIC0xMTgsOCArMTI0LDggQEAgcHJpdmF0ZToK
ICAgICAgICAgICAgICAgICAgICAgQmFzaWNCbG9jayogemVyb0RlbkNhc2UgPSBtX2Jsb2NrSW5z
ZXJ0aW9uU2V0Lmluc2VydEJlZm9yZShtX2Jsb2NrKTsKICAgICAgICAgICAgICAgICAgICAgQmFz
aWNCbG9jayogbm9ybWFsTW9kQ2FzZSA9IG1fYmxvY2tJbnNlcnRpb25TZXQuaW5zZXJ0QmVmb3Jl
KG1fYmxvY2spOwogCi0gICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+cmVwbGFjZUxhc3RXaXRo
TmV3PENvbnRyb2xWYWx1ZT4oCi0gICAgICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIEJyYW5j
aCwgbV9vcmlnaW4sIG1fdmFsdWUtPmNoaWxkKDEpLAorICAgICAgICAgICAgICAgICAgICBiZWZv
cmUtPnJlcGxhY2VMYXN0V2l0aE5ldzxWYWx1ZT4obV9wcm9jLCBCcmFuY2gsIG1fb3JpZ2luLCBt
X3ZhbHVlLT5jaGlsZCgxKSk7CisgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+c2V0U3VjY2Vz
c29ycygKICAgICAgICAgICAgICAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhub3JtYWxNb2RD
YXNlLCBGcmVxdWVuY3lDbGFzczo6Tm9ybWFsKSwKICAgICAgICAgICAgICAgICAgICAgICAgIEZy
ZXF1ZW50ZWRCbG9jayh6ZXJvRGVuQ2FzZSwgRnJlcXVlbmN5Q2xhc3M6OlJhcmUpKTsKIApAQCAt
MTI3LDEyICsxMzMsMTQgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgVmFsdWUqIG11
bHRpcGxpZWRCYWNrID0gbm9ybWFsTW9kQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIE11
bCwgbV9vcmlnaW4sIGRpdlJlc3VsdCwgbV92YWx1ZS0+Y2hpbGQoMSkpOwogICAgICAgICAgICAg
ICAgICAgICBWYWx1ZSogcmVzdWx0ID0gbm9ybWFsTW9kQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPiht
X3Byb2MsIFN1YiwgbV9vcmlnaW4sIG1fdmFsdWUtPmNoaWxkKDApLCBtdWx0aXBsaWVkQmFjayk7
CiAgICAgICAgICAgICAgICAgICAgIFVwc2lsb25WYWx1ZSogbm9ybWFsUmVzdWx0ID0gbm9ybWFs
TW9kQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4obV9wcm9jLCBtX29yaWdpbiwgcmVzdWx0
KTsKLSAgICAgICAgICAgICAgICAgICAgbm9ybWFsTW9kQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4obV9wcm9jLCBKdW1wLCBtX29yaWdpbiwgRnJlcXVlbnRlZEJsb2NrKG1fYmxvY2spKTsK
KyAgICAgICAgICAgICAgICAgICAgbm9ybWFsTW9kQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihtX3By
b2MsIEp1bXAsIG1fb3JpZ2luKTsKKyAgICAgICAgICAgICAgICAgICAgbm9ybWFsTW9kQ2FzZS0+
c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2sobV9ibG9jaykpOwogCiAgICAgICAgICAgICAg
ICAgICAgIFVwc2lsb25WYWx1ZSogemVyb1Jlc3VsdCA9IHplcm9EZW5DYXNlLT5hcHBlbmROZXc8
VXBzaWxvblZhbHVlPigKICAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgbV9vcmlnaW4s
CiAgICAgICAgICAgICAgICAgICAgICAgICB6ZXJvRGVuQ2FzZS0+YXBwZW5kSW50Q29uc3RhbnQo
bV9wcm9jLCBtX3ZhbHVlLCAwKSk7Ci0gICAgICAgICAgICAgICAgICAgIHplcm9EZW5DYXNlLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihtX3Byb2MsIEp1bXAsIG1fb3JpZ2luLCBGcmVxdWVudGVk
QmxvY2sobV9ibG9jaykpOworICAgICAgICAgICAgICAgICAgICB6ZXJvRGVuQ2FzZS0+YXBwZW5k
TmV3PFZhbHVlPihtX3Byb2MsIEp1bXAsIG1fb3JpZ2luKTsKKyAgICAgICAgICAgICAgICAgICAg
emVyb0RlbkNhc2UtPnNldFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2NrKG1fYmxvY2spKTsKIAog
ICAgICAgICAgICAgICAgICAgICBWYWx1ZSogcGhpID0gbV9pbnNlcnRpb25TZXQuaW5zZXJ0PFZh
bHVlPihtX2luZGV4LCBQaGksIG1fdmFsdWUtPnR5cGUoKSwgbV9vcmlnaW4pOwogICAgICAgICAg
ICAgICAgICAgICBub3JtYWxSZXN1bHQtPnNldFBoaShwaGkpOwpAQCAtMTQ3LDE1ICsxNTUsMTYg
QEAgcHJpdmF0ZToKICAgICAgICAgICAgIGNhc2UgU3dpdGNoOiB7CiAgICAgICAgICAgICAgICAg
U3dpdGNoVmFsdWUqIHN3aXRjaFZhbHVlID0gbV92YWx1ZS0+YXM8U3dpdGNoVmFsdWU+KCk7CiAg
ICAgICAgICAgICAgICAgVmVjdG9yPFN3aXRjaENhc2U+IGNhc2VzOwotICAgICAgICAgICAgICAg
IGZvciAoY29uc3QgU3dpdGNoQ2FzZSYgc3dpdGNoQ2FzZSA6ICpzd2l0Y2hWYWx1ZSkKKyAgICAg
ICAgICAgICAgICBmb3IgKGNvbnN0IFN3aXRjaENhc2UmIHN3aXRjaENhc2UgOiBzd2l0Y2hWYWx1
ZS0+Y2FzZXMobV9ibG9jaykpCiAgICAgICAgICAgICAgICAgICAgIGNhc2VzLmFwcGVuZChzd2l0
Y2hDYXNlKTsKICAgICAgICAgICAgICAgICBzdGQ6OnNvcnQoCiAgICAgICAgICAgICAgICAgICAg
IGNhc2VzLmJlZ2luKCksIGNhc2VzLmVuZCgpLAogICAgICAgICAgICAgICAgICAgICBbXSAoY29u
c3QgU3dpdGNoQ2FzZSYgbGVmdCwgY29uc3QgU3dpdGNoQ2FzZSYgcmlnaHQpIHsKICAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBsZWZ0LmNhc2VWYWx1ZSgpIDwgcmlnaHQuY2FzZVZhbHVl
KCk7CiAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIEZyZXF1ZW50ZWRC
bG9jayBmYWxsVGhyb3VnaCA9IG1fYmxvY2stPmZhbGxUaHJvdWdoKCk7CiAgICAgICAgICAgICAg
ICAgbV9ibG9jay0+dmFsdWVzKCkucmVtb3ZlTGFzdCgpOwotICAgICAgICAgICAgICAgIHJlY3Vy
c2l2ZWx5QnVpbGRTd2l0Y2goY2FzZXMsIDAsIGZhbHNlLCBjYXNlcy5zaXplKCksIG1fYmxvY2sp
OworICAgICAgICAgICAgICAgIHJlY3Vyc2l2ZWx5QnVpbGRTd2l0Y2goY2FzZXMsIGZhbGxUaHJv
dWdoLCAwLCBmYWxzZSwgY2FzZXMuc2l6ZSgpLCBtX2Jsb2NrKTsKICAgICAgICAgICAgICAgICBt
X3Byb2MuZGVsZXRlVmFsdWUoc3dpdGNoVmFsdWUpOwogICAgICAgICAgICAgICAgIG1fYmxvY2st
PnVwZGF0ZVByZWRlY2Vzc29yc0FmdGVyKCk7CiAgICAgICAgICAgICAgICAgbV9jaGFuZ2VkID0g
dHJ1ZTsKQEAgLTIxMCwyNyArMjE5LDI3IEBAIHByaXZhdGU6CiAgICAgICAgIEJhc2ljQmxvY2sq
IG5lZzFEZW5DYXNlID0gbV9ibG9ja0luc2VydGlvblNldC5pbnNlcnRCZWZvcmUobV9ibG9jayk7
CiAgICAgICAgIEJhc2ljQmxvY2sqIGludE1pbkNhc2UgPSBtX2Jsb2NrSW5zZXJ0aW9uU2V0Lmlu
c2VydEJlZm9yZShtX2Jsb2NrKTsKIAotICAgICAgICBiZWZvcmUtPnJlcGxhY2VMYXN0V2l0aE5l
dzxDb250cm9sVmFsdWU+KAotICAgICAgICAgICAgbV9wcm9jLCBCcmFuY2gsIG1fb3JpZ2luLCBp
c0Rlbk9LLAorICAgICAgICBiZWZvcmUtPnJlcGxhY2VMYXN0V2l0aE5ldzxWYWx1ZT4obV9wcm9j
LCBCcmFuY2gsIG1fb3JpZ2luLCBpc0Rlbk9LKTsKKyAgICAgICAgYmVmb3JlLT5zZXRTdWNjZXNz
b3JzKAogICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKG5vcm1hbERpdkNhc2UsIEZyZXF1ZW5j
eUNsYXNzOjpOb3JtYWwpLAogICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHNoYWR5RGVuQ2Fz
ZSwgRnJlcXVlbmN5Q2xhc3M6OlJhcmUpKTsKIAogICAgICAgICBVcHNpbG9uVmFsdWUqIG5vcm1h
bFJlc3VsdCA9IG5vcm1hbERpdkNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KAogICAgICAg
ICAgICAgbV9wcm9jLCBtX29yaWdpbiwKICAgICAgICAgICAgIG5vcm1hbERpdkNhc2UtPmFwcGVu
ZE5ldzxWYWx1ZT4obV9wcm9jLCBub25DaGlsbE9wY29kZSwgbV9vcmlnaW4sIG51bSwgZGVuKSk7
Ci0gICAgICAgIG5vcm1hbERpdkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAotICAgICAg
ICAgICAgbV9wcm9jLCBKdW1wLCBtX29yaWdpbiwgRnJlcXVlbnRlZEJsb2NrKG1fYmxvY2spKTsK
KyAgICAgICAgbm9ybWFsRGl2Q2FzZS0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIEp1bXAsIG1f
b3JpZ2luKTsKKyAgICAgICAgbm9ybWFsRGl2Q2FzZS0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVk
QmxvY2sobV9ibG9jaykpOwogCi0gICAgICAgIHNoYWR5RGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCi0gICAgICAgICAgICBtX3Byb2MsIEJyYW5jaCwgbV9vcmlnaW4sIGRlbiwKKyAg
ICAgICAgc2hhZHlEZW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgQnJhbmNoLCBtX29y
aWdpbiwgZGVuKTsKKyAgICAgICAgc2hhZHlEZW5DYXNlLT5zZXRTdWNjZXNzb3JzKAogICAgICAg
ICAgICAgRnJlcXVlbnRlZEJsb2NrKG5lZzFEZW5DYXNlLCBGcmVxdWVuY3lDbGFzczo6Tm9ybWFs
KSwKICAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh6ZXJvRGVuQ2FzZSwgRnJlcXVlbmN5Q2xh
c3M6OlJhcmUpKTsKIAogICAgICAgICBVcHNpbG9uVmFsdWUqIHplcm9SZXN1bHQgPSB6ZXJvRGVu
Q2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4oCiAgICAgICAgICAgICBtX3Byb2MsIG1fb3Jp
Z2luLAogICAgICAgICAgICAgemVyb0RlbkNhc2UtPmFwcGVuZEludENvbnN0YW50KG1fcHJvYywg
bV92YWx1ZSwgMCkpOwotICAgICAgICB6ZXJvRGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCi0gICAgICAgICAgICBtX3Byb2MsIEp1bXAsIG1fb3JpZ2luLCBGcmVxdWVudGVkQmxvY2so
bV9ibG9jaykpOworICAgICAgICB6ZXJvRGVuQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2Ms
IEp1bXAsIG1fb3JpZ2luKTsKKyAgICAgICAgemVyb0RlbkNhc2UtPnNldFN1Y2Nlc3NvcnMoRnJl
cXVlbnRlZEJsb2NrKG1fYmxvY2spKTsKIAogICAgICAgICBpbnQ2NF90IGJhZE51bWVyYXRvckNv
bnN0ID0gMDsKICAgICAgICAgc3dpdGNoIChtX3ZhbHVlLT50eXBlKCkpIHsKQEAgLTI0OCwxOCAr
MjU3LDE5IEBAIHByaXZhdGU6CiAgICAgICAgIFZhbHVlKiBiYWROdW1lcmF0b3IgPQogICAgICAg
ICAgICAgbmVnMURlbkNhc2UtPmFwcGVuZEludENvbnN0YW50KG1fcHJvYywgbV92YWx1ZSwgYmFk
TnVtZXJhdG9yQ29uc3QpOwogCi0gICAgICAgIG5lZzFEZW5DYXNlLT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICAgICAgbmVnMURlbkNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBtX3Byb2MsIEJyYW5jaCwgbV9vcmlnaW4sCiAgICAgICAgICAgICBuZWcxRGVuQ2FzZS0+
YXBwZW5kTmV3PFZhbHVlPigKLSAgICAgICAgICAgICAgICBtX3Byb2MsIEVxdWFsLCBtX29yaWdp
biwgbnVtLCBiYWROdW1lcmF0b3IpLAorICAgICAgICAgICAgICAgIG1fcHJvYywgRXF1YWwsIG1f
b3JpZ2luLCBudW0sIGJhZE51bWVyYXRvcikpOworICAgICAgICBuZWcxRGVuQ2FzZS0+c2V0U3Vj
Y2Vzc29ycygKICAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhpbnRNaW5DYXNlLCBGcmVxdWVu
Y3lDbGFzczo6UmFyZSksCiAgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2sobm9ybWFsRGl2Q2Fz
ZSwgRnJlcXVlbmN5Q2xhc3M6Ok5vcm1hbCkpOwogCiAgICAgICAgIFZhbHVlKiBpbnRNaW5SZXN1
bHQgPSBub25DaGlsbE9wY29kZSA9PSBEaXYgPyBiYWROdW1lcmF0b3IgOiBpbnRNaW5DYXNlLT5h
cHBlbmRJbnRDb25zdGFudChtX3Byb2MsIG1fdmFsdWUsIDApOwogICAgICAgICBVcHNpbG9uVmFs
dWUqIGludE1pblJlc3VsdFVwc2lsb24gPSBpbnRNaW5DYXNlLT5hcHBlbmROZXc8VXBzaWxvblZh
bHVlPigKICAgICAgICAgICAgIG1fcHJvYywgbV9vcmlnaW4sIGludE1pblJlc3VsdCk7Ci0gICAg
ICAgIGludE1pbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAotICAgICAgICAgICAgbV9w
cm9jLCBKdW1wLCBtX29yaWdpbiwgRnJlcXVlbnRlZEJsb2NrKG1fYmxvY2spKTsKKyAgICAgICAg
aW50TWluQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIEp1bXAsIG1fb3JpZ2luKTsKKyAg
ICAgICAgaW50TWluQ2FzZS0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2sobV9ibG9jaykp
OwogCiAgICAgICAgIFZhbHVlKiBwaGkgPSBtX2luc2VydGlvblNldC5pbnNlcnQ8VmFsdWU+KAog
ICAgICAgICAgICAgbV9pbmRleCwgUGhpLCBtX3ZhbHVlLT50eXBlKCksIG1fb3JpZ2luKTsKQEAg
LTI3MiwxMSArMjgyLDEwNSBAQCBwcml2YXRlOgogICAgIH0KIAogICAgIHZvaWQgcmVjdXJzaXZl
bHlCdWlsZFN3aXRjaCgKLSAgICAgICAgY29uc3QgVmVjdG9yPFN3aXRjaENhc2U+JiBjYXNlcywg
dW5zaWduZWQgc3RhcnQsIGJvb2wgaGFyZFN0YXJ0LCB1bnNpZ25lZCBlbmQsCi0gICAgICAgIEJh
c2ljQmxvY2sqIGJlZm9yZSkKKyAgICAgICAgY29uc3QgVmVjdG9yPFN3aXRjaENhc2U+JiBjYXNl
cywgRnJlcXVlbnRlZEJsb2NrIGZhbGxUaHJvdWdoLCB1bnNpZ25lZCBzdGFydCwgYm9vbCBoYXJk
U3RhcnQsCisgICAgICAgIHVuc2lnbmVkIGVuZCwgQmFzaWNCbG9jayogYmVmb3JlKQogICAgIHsK
LSAgICAgICAgLy8gRklYTUU6IEFkZCB0YWJsZS1iYXNlZCBzd2l0Y2ggbG93ZXJpbmcuCi0gICAg
ICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTExNDEKKyAg
ICAgICAgVmFsdWUqIGNoaWxkID0gbV92YWx1ZS0+Y2hpbGQoMCk7CisgICAgICAgIFR5cGUgdHlw
ZSA9IGNoaWxkLT50eXBlKCk7CisgICAgICAgIAorICAgICAgICAvLyBJdCdzIGEgZ29vZCBpZGVh
IHRvIHVzZSBhIHRhYmxlLWJhc2VkIHN3aXRjaCBpbiBzb21lIGNhc2VzOiB0aGUgbnVtYmVyIG9m
IGNhc2VzIGhhcyB0byBiZQorICAgICAgICAvLyBsYXJnZSBlbm91Z2ggYW5kIHRoZXkgaGF2ZSB0
byBiZSBkZW5zZSBlbm91Z2guIFRoaXMgY291bGQgcHJvYmFibHkgYmUgaW1wcm92ZWQgYSBsb3Qu
IEZvcgorICAgICAgICAvLyBleGFtcGxlLCB3ZSBjb3VsZCBzdGlsbCB1c2UgYSBqdW1wIHRhYmxl
IGluIGNhc2VzIHdoZXJlIHRoZSBpbnB1dHMgYXJlIHNwYXJzZSBzbyBsb25nIGFzIHdlCisgICAg
ICAgIC8vIHNoaWZ0IG9mZiB0aGUgdW5pbnRlcmVzdGluZyBiaXRzLiBPbiB0aGUgb3RoZXIgaGFu
ZCwgaXQncyBub3QgY2xlYXIgdGhhdCB0aGlzIHdvdWxkCisgICAgICAgIC8vIGFjdHVhbGx5IGJl
IGFueSBiZXR0ZXIgdGhhbiB3aGF0IHdlIGhhdmUgZG9uZSBoZXJlIGFuZCBpdCdzIG5vdCBjbGVh
ciB0aGF0IGl0IHdvdWxkIGJlCisgICAgICAgIC8vIGJldHRlciB0aGFuIGEgYmluYXJ5IHN3aXRj
aC4KKyAgICAgICAgY29uc3QgdW5zaWduZWQgbWluQ2FzZXNGb3JUYWJsZSA9IDc7CisgICAgICAg
IGNvbnN0IHVuc2lnbmVkIGRlbnNpdHlMaW1pdCA9IDQ7CisgICAgICAgIGlmIChlbmQgLSBzdGFy
dCA+PSBtaW5DYXNlc0ZvclRhYmxlKSB7CisgICAgICAgICAgICBpbnQ2NF90IGZpcnN0VmFsdWUg
PSBjYXNlc1tzdGFydF0uY2FzZVZhbHVlKCk7CisgICAgICAgICAgICBpbnQ2NF90IGxhc3RWYWx1
ZSA9IGNhc2VzW2VuZCAtIDFdLmNhc2VWYWx1ZSgpOworICAgICAgICAgICAgaWYgKChsYXN0VmFs
dWUgLSBmaXJzdFZhbHVlICsgMSkgLyBjYXNlcy5zaXplKCkgPCBkZW5zaXR5TGltaXQpIHsKKyAg
ICAgICAgICAgICAgICBCYXNpY0Jsb2NrKiBzd2l0Y2hCbG9jayA9IG1fYmxvY2tJbnNlcnRpb25T
ZXQuaW5zZXJ0QWZ0ZXIobV9ibG9jayk7CisgICAgICAgICAgICAgICAgVmFsdWUqIGluZGV4ID0g
YmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIFN1
YiwgbV9vcmlnaW4sIGNoaWxkLAorICAgICAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZElu
dENvbnN0YW50KG1fcHJvYywgbV9vcmlnaW4sIHR5cGUsIGZpcnN0VmFsdWUpKTsKKyAgICAgICAg
ICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICAgICAgICAgIG1f
cHJvYywgQnJhbmNoLCBtX29yaWdpbiwKKyAgICAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBl
bmROZXc8VmFsdWU+KAorICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBBYm92ZSwgbV9v
cmlnaW4sIGluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmRJbnRD
b25zdGFudChtX3Byb2MsIG1fb3JpZ2luLCB0eXBlLCBsYXN0VmFsdWUgLSBmaXJzdFZhbHVlKSkp
OworICAgICAgICAgICAgICAgIGJlZm9yZS0+c2V0U3VjY2Vzc29ycyhmYWxsVGhyb3VnaCwgRnJl
cXVlbnRlZEJsb2NrKHN3aXRjaEJsb2NrKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAg
ICAgICAgc2l6ZV90IHRhYmxlU2l6ZSA9IGxhc3RWYWx1ZSAtIGZpcnN0VmFsdWUgKyAxOworICAg
ICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChpbmRleC0+dHlwZSgpICE9IHBvaW50
ZXJUeXBlKCkgJiYgaW5kZXgtPnR5cGUoKSA9PSBJbnQzMikKKyAgICAgICAgICAgICAgICAgICAg
aW5kZXggPSBzd2l0Y2hCbG9jay0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIFpFeHQzMiwgbV9v
cmlnaW4sIGluZGV4KTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBQYXRjaHBv
aW50VmFsdWUqIHBhdGNocG9pbnQgPQorICAgICAgICAgICAgICAgICAgICBzd2l0Y2hCbG9jay0+
YXBwZW5kTmV3PFBhdGNocG9pbnRWYWx1ZT4obV9wcm9jLCBWb2lkLCBtX29yaWdpbik7CisgICAg
ICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgcGF0Y2hwb2ludC0+ZWZmZWN0cy50ZXJtaW5h
bCA9IHRydWU7CisgICAgICAgICAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kU29tZVJlZ2lzdGVy
KGluZGV4KTsKKyAgICAgICAgICAgICAgICBwYXRjaHBvaW50LT5udW1HUFNjcmF0Y2hSZWdpc3Rl
cnMrKzsKKyAgICAgICAgICAgICAgICAvLyBUZWNobmljYWxseSwgd2UgZG9uJ3QgaGF2ZSB0byBj
bG9iYmVyIG1hY3JvIHJlZ2lzdGVycyBvbiBYODZfNjQuIFRoaXMgaXMgcHJvYmFibHkKKyAgICAg
ICAgICAgICAgICAvLyBPSyB0aG91Z2guCisgICAgICAgICAgICAgICAgcGF0Y2hwb2ludC0+Y2xv
YmJlcihSZWdpc3RlclNldDo6bWFjcm9TY3JhdGNoUmVnaXN0ZXJzKCkpOworICAgICAgICAgICAg
ICAgIAorICAgICAgICAgICAgICAgIEJpdFZlY3RvciBoYW5kbGVkSW5kaWNlczsKKyAgICAgICAg
ICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBzdGFydDsgaSA8IGVuZDsgKytpKSB7CisgICAgICAg
ICAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayBibG9jayA9IGNhc2VzW2ldLnRhcmdldCgpOwor
ICAgICAgICAgICAgICAgICAgICBpbnQ2NF90IHZhbHVlID0gY2FzZXNbaV0uY2FzZVZhbHVlKCk7
CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaEJsb2NrLT5hcHBlbmRTdWNjZXNzb3IoYmxvY2sp
OworICAgICAgICAgICAgICAgICAgICBzaXplX3QgaW5kZXggPSB2YWx1ZSAtIGZpcnN0VmFsdWU7
CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVCghaGFuZGxlZEluZGljZXMuZ2V0KGluZGV4KSk7
CisgICAgICAgICAgICAgICAgICAgIGhhbmRsZWRJbmRpY2VzLnNldChpbmRleCk7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGJvb2wgaGFzVW5o
YW5kbGVkSW5kZXggPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgdGFibGVTaXplOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFoYW5kbGVk
SW5kaWNlcy5nZXQoaSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhc1VuaGFuZGxlZElu
ZGV4ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAg
ICAgICAgIGlmIChoYXNVbmhhbmRsZWRJbmRleCkKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNo
QmxvY2stPmFwcGVuZFN1Y2Nlc3NvcihmYWxsVGhyb3VnaCk7CisKKyAgICAgICAgICAgICAgICBw
YXRjaHBvaW50LT5zZXRHZW5lcmF0b3IoCisgICAgICAgICAgICAgICAgICAgIFs9XSAoQ0NhbGxI
ZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYgcGFyYW1zKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBBbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UgYWxs
b3dTY3JhdGNoKGppdCk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAg
ICAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0cioganVtcFRhYmxlID0gc3RhdGljX2Nhc3Q8
TWFjcm9Bc3NlbWJsZXJDb2RlUHRyKj4oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFy
YW1zLnByb2MoKS5hZGREYXRhU2VjdGlvbihzaXplb2YoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKSAq
IHRhYmxlU2l6ZSkpOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAg
ICAgICAgICBHUFJSZWcgaW5kZXggPSBwYXJhbXNbMF0uZ3ByKCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBHUFJSZWcgc2NyYXRjaCA9IHBhcmFtcy5ncFNjcmF0Y2goMCk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGppdC5tb3ZlKENDYWxsSGVs
cGVyczo6VHJ1c3RlZEltbVB0cihqdW1wVGFibGUpLCBzY3JhdGNoKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGppdC5qdW1wKENDYWxsSGVscGVyczo6QmFzZUluZGV4KHNjcmF0Y2gsIGluZGV4
LCBDQ2FsbEhlbHBlcnM6OnRpbWVzUHRyKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAor
ICAgICAgICAgICAgICAgICAgICAgICAgVmVjdG9yPEJveDxDQ2FsbEhlbHBlcnM6OkxhYmVsPj4g
bGFiZWxzID0gcGFyYW1zLnN1Y2Nlc3NvckxhYmVscygpOworICAgICAgICAgICAgICAgICAgICAg
ICAgCisgICAgICAgICAgICAgICAgICAgICAgICBqaXQuYWRkTGlua1Rhc2soCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgWz1dIChMaW5rQnVmZmVyJiBsaW5rQnVmZmVyKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoYXNVbmhhbmRsZWRJbmRleCkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGZhbGxU
aHJvdWdoID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rQnVm
ZmVyLmxvY2F0aW9uT2YoKmxhYmVscy5sYXN0KCkpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gdGFibGVTaXplOyBpLS07KQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGp1bXBUYWJsZVtpXSA9IGZhbGxUaHJvdWdo
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBs
YWJlbEluZGV4ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh1bnNp
Z25lZCB0YWJsZUluZGV4IDogaGFuZGxlZEluZGljZXMpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGp1bXBUYWJsZVt0YWJsZUluZGV4XSA9CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbGlua0J1ZmZlci5sb2NhdGlvbk9mKCpsYWJlbHNbbGFi
ZWxJbmRleCsrXSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgICAgIAogICAg
ICAgICAvLyBTZWUgY29tbWVudHMgaW4gaml0L0JpbmFyeVN3aXRjaC5jcHAgZm9yIGEganVzdGlm
aWNhdGlvbiBvZiB0aGlzIGFsZ29yaXRobS4gVGhlIG9ubHkKICAgICAgICAgLy8gdGhpbmcgd2Ug
ZG8gZGlmZmVyZW50bHkgaXMgdGhhdCB3ZSBkb24ndCB1c2UgcmFuZG9tbmVzcy4KQEAgLTMwNCwy
NSArNDA4LDIzIEBAIHByaXZhdGU6CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBsaW1pdDsgKytpKSB7CiAgICAgICAgICAgICAgICAgQmFzaWNCbG9j
ayogbmV4dENoZWNrID0gbV9ibG9ja0luc2VydGlvblNldC5pbnNlcnRBZnRlcihtX2Jsb2NrKTsK
LSAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAg
ICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgICAgICAgICAg
bV9wcm9jLCBCcmFuY2gsIG1fb3JpZ2luLAogICAgICAgICAgICAgICAgICAgICBiZWZvcmUtPmFw
cGVuZE5ldzxWYWx1ZT4oCi0gICAgICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIEVxdWFsLCBt
X29yaWdpbiwgbV92YWx1ZS0+Y2hpbGQoMCksCisgICAgICAgICAgICAgICAgICAgICAgICBtX3By
b2MsIEVxdWFsLCBtX29yaWdpbiwgY2hpbGQsCiAgICAgICAgICAgICAgICAgICAgICAgICBiZWZv
cmUtPmFwcGVuZEludENvbnN0YW50KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJv
YywgbV9vcmlnaW4sIG1fdmFsdWUtPmNoaWxkKDApLT50eXBlKCksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY2FzZXNbc3RhcnQgKyBpXS5jYXNlVmFsdWUoKSkpLAotICAgICAgICAgICAg
ICAgICAgICBjYXNlc1tzdGFydCArIGldLnRhcmdldCgpLCBGcmVxdWVudGVkQmxvY2sobmV4dENo
ZWNrKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwgdHlw
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlc1tzdGFydCArIGldLmNhc2VWYWx1
ZSgpKSkpOworICAgICAgICAgICAgICAgIGJlZm9yZS0+c2V0U3VjY2Vzc29ycyhjYXNlc1tzdGFy
dCArIGldLnRhcmdldCgpLCBGcmVxdWVudGVkQmxvY2sobmV4dENoZWNrKSk7CiAKICAgICAgICAg
ICAgICAgICBiZWZvcmUgPSBuZXh0Q2hlY2s7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAg
IGlmIChhbGxDb25zZWN1dGl2ZSkgewotICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCi0gICAgICAgICAgICAgICAgICAgIG1fcHJvYywgSnVtcCwgbV9vcmln
aW4sIGNhc2VzW2VuZCAtIDFdLnRhcmdldCgpKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgICAg
ICAgICAgICAgbV9wcm9jLCBKdW1wLCBtX29yaWdpbiwgbV92YWx1ZS0+YXM8U3dpdGNoVmFsdWU+
KCktPmZhbGxUaHJvdWdoKCkpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgYmVmb3JlLT5h
cHBlbmROZXc8VmFsdWU+KG1fcHJvYywgSnVtcCwgbV9vcmlnaW4pOworICAgICAgICAgICAgaWYg
KGFsbENvbnNlY3V0aXZlKQorICAgICAgICAgICAgICAgIGJlZm9yZS0+c2V0U3VjY2Vzc29ycyhj
YXNlc1tlbmQgLSAxXS50YXJnZXQoKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgYmVmb3JlLT5zZXRTdWNjZXNzb3JzKGZhbGxUaHJvdWdoKTsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQogCkBAIC0zMzEsMTcgKzQzMywxNyBAQCBwcml2YXRlOgogICAgICAgICBC
YXNpY0Jsb2NrKiBsZWZ0ID0gbV9ibG9ja0luc2VydGlvblNldC5pbnNlcnRBZnRlcihtX2Jsb2Nr
KTsKICAgICAgICAgQmFzaWNCbG9jayogcmlnaHQgPSBtX2Jsb2NrSW5zZXJ0aW9uU2V0Lmluc2Vy
dEFmdGVyKG1fYmxvY2spOwogCi0gICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIG1fcHJv
YywgQnJhbmNoLCBtX29yaWdpbiwKICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PFZhbHVl
PigKLSAgICAgICAgICAgICAgICBtX3Byb2MsIExlc3NUaGFuLCBtX29yaWdpbiwgbV92YWx1ZS0+
Y2hpbGQoMCksCisgICAgICAgICAgICAgICAgbV9wcm9jLCBMZXNzVGhhbiwgbV9vcmlnaW4sIGNo
aWxkLAogICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kSW50Q29uc3RhbnQoCi0gICAgICAg
ICAgICAgICAgICAgIG1fcHJvYywgbV9vcmlnaW4sIG1fdmFsdWUtPmNoaWxkKDApLT50eXBlKCks
Ci0gICAgICAgICAgICAgICAgICAgIGNhc2VzW21lZGlhbkluZGV4XS5jYXNlVmFsdWUoKSkpLAot
ICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKGxlZnQpLCBGcmVxdWVudGVkQmxvY2socmlnaHQp
KTsKKyAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwgdHlwZSwKKyAgICAgICAg
ICAgICAgICAgICAgY2FzZXNbbWVkaWFuSW5kZXhdLmNhc2VWYWx1ZSgpKSkpOworICAgICAgICBi
ZWZvcmUtPnNldFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2NrKGxlZnQpLCBGcmVxdWVudGVkQmxv
Y2socmlnaHQpKTsKIAotICAgICAgICByZWN1cnNpdmVseUJ1aWxkU3dpdGNoKGNhc2VzLCBzdGFy
dCwgaGFyZFN0YXJ0LCBtZWRpYW5JbmRleCwgbGVmdCk7Ci0gICAgICAgIHJlY3Vyc2l2ZWx5QnVp
bGRTd2l0Y2goY2FzZXMsIG1lZGlhbkluZGV4LCB0cnVlLCBlbmQsIHJpZ2h0KTsKKyAgICAgICAg
cmVjdXJzaXZlbHlCdWlsZFN3aXRjaChjYXNlcywgZmFsbFRocm91Z2gsIHN0YXJ0LCBoYXJkU3Rh
cnQsIG1lZGlhbkluZGV4LCBsZWZ0KTsKKyAgICAgICAgcmVjdXJzaXZlbHlCdWlsZFN3aXRjaChj
YXNlcywgZmFsbFRocm91Z2gsIG1lZGlhbkluZGV4LCB0cnVlLCBlbmQsIHJpZ2h0KTsKICAgICB9
CiAgICAgCiAgICAgUHJvY2VkdXJlJiBtX3Byb2M7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNMb3dlclRvQWlyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNMb3dlclRvQWlyLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1NSw3ICsx
NTUsNiBAQCBwdWJsaWM6CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIC8vIE1ha2Ugc3Vy
ZSB0aGF0IHRoZSBzdWNjZXNzb3JzIGFyZSBzZXQgdXAgY29ycmVjdGx5LgotICAgICAgICAgICAg
QVNTRVJUKGJsb2NrLT5zdWNjZXNzb3JzKCkuc2l6ZSgpIDw9IDIpOwogICAgICAgICAgICAgZm9y
IChCMzo6RnJlcXVlbnRlZEJsb2NrIHN1Y2Nlc3NvciA6IGJsb2NrLT5zdWNjZXNzb3JzKCkpIHsK
ICAgICAgICAgICAgICAgICBtX2Jsb2NrVG9CbG9ja1tibG9ja10tPnN1Y2Nlc3NvcnMoKS5hcHBl
bmQoCiAgICAgICAgICAgICAgICAgICAgIEFpcjo6RnJlcXVlbnRlZEJsb2NrKG1fYmxvY2tUb0Js
b2NrW3N1Y2Nlc3Nvci5ibG9jaygpXSwgc3VjY2Vzc29yLmZyZXF1ZW5jeSgpKSk7CkBAIC0yNDQx
LDcgKzI0NDAsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9Ci0KKyAgICAgICAgICAgIAogICAgICAgICBjYXNlIEIzOjpPb3BzOiB7CiAg
ICAgICAgICAgICBhcHBlbmQoQWlyOjpPb3BzKTsKICAgICAgICAgICAgIHJldHVybjsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM01hdGhFeHRyYXMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM01hdGhFeHRyYXMuY3BwCShyZXZpc2lvbiAyMDI4
MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNNYXRoRXh0cmFzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSAiQjNDb25zdDMyVmFsdWUuaCIKICNpbmNs
dWRlICJCM0NvbnN0RG91YmxlVmFsdWUuaCIKICNpbmNsdWRlICJCM0NvbnN0UHRyVmFsdWUuaCIK
LSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzVXBzaWxvblZhbHVlLmgi
CiAjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJNYXRoQ29tbW9uLmgiCkBA
IC01MiwxMCArNTEsOCBAQCBzdGQ6OnBhaXI8QmFzaWNCbG9jayosIFZhbHVlKj4gcG93RG91Ymxl
CiAgICAgVmFsdWUqIHNob3VsZEdvU2xvd1BhdGggPSBzdGFydC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jZWR1cmUsIEFib3ZlLCBvcmlnaW4sCiAgICAgICAgIHksCiAgICAgICAgIHN0YXJ0LT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jZWR1cmUsIG9yaWdpbiwgbWF4RXhwb25lbnRGb3JJbnRl
Z2VyTWF0aFBvdykpOwotICAgIHN0YXJ0LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAg
ICAgcHJvY2VkdXJlLCBCcmFuY2gsIG9yaWdpbiwKLSAgICAgICAgc2hvdWxkR29TbG93UGF0aCwK
LSAgICAgICAgRnJlcXVlbnRlZEJsb2NrKGZ1bmN0aW9uQ2FsbENhc2UpLCBGcmVxdWVudGVkQmxv
Y2sobG9vcFByZUhlYWRlckNhc2UpKTsKKyAgICBzdGFydC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
ZWR1cmUsIEJyYW5jaCwgb3JpZ2luLCBzaG91bGRHb1Nsb3dQYXRoKTsKKyAgICBzdGFydC0+c2V0
U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2soZnVuY3Rpb25DYWxsQ2FzZSksIEZyZXF1ZW50ZWRC
bG9jayhsb29wUHJlSGVhZGVyQ2FzZSkpOwogCiAgICAgLy8gRnVuY3Rpb24gY2FsbC4KICAgICBW
YWx1ZSogeUFzRG91YmxlID0gZnVuY3Rpb25DYWxsQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
ZWR1cmUsIElUb0QsIG9yaWdpbiwgeSk7CkBAIC02NSw3ICs2Miw4IEBAIHN0ZDo6cGFpcjxCYXNp
Y0Jsb2NrKiwgVmFsdWUqPiBwb3dEb3VibGUKICAgICAgICAgZnVuY3Rpb25DYWxsQ2FzZS0+YXBw
ZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2NlZHVyZSwgb3JpZ2luLCBiaXR3aXNlX2Nhc3Q8dm9p
ZCo+KHBvd0RvdWJsZSkpLAogICAgICAgICB4LCB5QXNEb3VibGUpOwogICAgIFVwc2lsb25WYWx1
ZSogcG93UmVzdWx0VXBzaWxvbiA9IGZ1bmN0aW9uQ2FsbENhc2UtPmFwcGVuZE5ldzxVcHNpbG9u
VmFsdWU+KHByb2NlZHVyZSwgb3JpZ2luLCBwb3dSZXN1bHQpOwotICAgIGZ1bmN0aW9uQ2FsbENh
c2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2NlZHVyZSwgSnVtcCwgb3JpZ2luLCBGcmVx
dWVudGVkQmxvY2soY29udGludWF0aW9uKSk7CisgICAgZnVuY3Rpb25DYWxsQ2FzZS0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jZWR1cmUsIEp1bXAsIG9yaWdpbik7CisgICAgZnVuY3Rpb25DYWxsQ2Fz
ZS0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2soY29udGludWF0aW9uKSk7CiAKICAgICAv
LyBMb29wIHByZS1oZWFkZXIuCiAgICAgVmFsdWUqIGluaXRpYWxSZXN1bHQgPSBsb29wUHJlSGVh
ZGVyQ2FzZS0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2NlZHVyZSwgb3JpZ2luLCAx
Lik7CkBAIC03Myw3ICs3MSw4IEBAIHN0ZDo6cGFpcjxCYXNpY0Jsb2NrKiwgVmFsdWUqPiBwb3dE
b3VibGUKICAgICBVcHNpbG9uVmFsdWUqIGluaXRpYWxSZXN1bHRWYWx1ZSA9IGxvb3BQcmVIZWFk
ZXJDYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jZWR1cmUsIG9yaWdpbiwgaW5pdGlh
bFJlc3VsdCk7CiAgICAgVXBzaWxvblZhbHVlKiBpbml0aWFsU3F1YXJlZElucHV0ID0gbG9vcFBy
ZUhlYWRlckNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2NlZHVyZSwgb3JpZ2luLCB4
KTsKICAgICBVcHNpbG9uVmFsdWUqIGluaXRpYWxMb29wQ291bnRlciA9IGxvb3BQcmVIZWFkZXJD
YXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jZWR1cmUsIG9yaWdpbiwgeSk7Ci0gICAg
bG9vcFByZUhlYWRlckNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2NlZHVyZSwgSnVt
cCwgb3JpZ2luLCBGcmVxdWVudGVkQmxvY2sobG9vcFRlc3RGb3JFdmVuQ2FzZSkpOworICAgIGxv
b3BQcmVIZWFkZXJDYXNlLT5hcHBlbmROZXc8VmFsdWU+KHByb2NlZHVyZSwgSnVtcCwgb3JpZ2lu
KTsKKyAgICBsb29wUHJlSGVhZGVyQ2FzZS0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2so
bG9vcFRlc3RGb3JFdmVuQ2FzZSkpOwogCiAgICAgLy8gVGVzdCBpZiB3aGF0IGlzIGxlZnQgb2Yg
dGhlIGNvdW50ZXIgaXMgZXZlbi4KICAgICBWYWx1ZSogaW5Mb29wQ291bnRlciA9IGxvb3BUZXN0
Rm9yRXZlbkNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvY2VkdXJlLCBQaGksIEludDMyLCBvcmln
aW4pOwpAQCAtODEsMTAgKzgwLDggQEAgc3RkOjpwYWlyPEJhc2ljQmxvY2sqLCBWYWx1ZSo+IHBv
d0RvdWJsZQogICAgIFZhbHVlKiBsYXN0Q291bnRlckJpdCA9IGxvb3BUZXN0Rm9yRXZlbkNhc2Ut
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvY2VkdXJlLCBCaXRBbmQsIG9yaWdpbiwKICAgICAgICAgaW5M
b29wQ291bnRlciwKICAgICAgICAgbG9vcFRlc3RGb3JFdmVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvY2VkdXJlLCBvcmlnaW4sIDEpKTsKLSAgICBsb29wVGVzdEZvckV2ZW5DYXNl
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgcHJvY2VkdXJlLCBCcmFuY2gsIG9y
aWdpbiwKLSAgICAgICAgbGFzdENvdW50ZXJCaXQsCi0gICAgICAgIEZyZXF1ZW50ZWRCbG9jayhs
b29wT2RkKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3BFdmVuT2RkKSk7CisgICAgbG9vcFRlc3RGb3JF
dmVuQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihwcm9jZWR1cmUsIEJyYW5jaCwgb3JpZ2luLCBsYXN0
Q291bnRlckJpdCk7CisgICAgbG9vcFRlc3RGb3JFdmVuQ2FzZS0+c2V0U3VjY2Vzc29ycyhGcmVx
dWVudGVkQmxvY2sobG9vcE9kZCksIEZyZXF1ZW50ZWRCbG9jayhsb29wRXZlbk9kZCkpOwogCiAg
ICAgLy8gQ291bnRlciBpcyBvZGQuCiAgICAgVmFsdWUqIGluTG9vcFJlc3VsdCA9IGxvb3BPZGQt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvY2VkdXJlLCBQaGksIERvdWJsZSwgb3JpZ2luKTsKQEAgLTk0
LDcgKzkxLDggQEAgc3RkOjpwYWlyPEJhc2ljQmxvY2sqLCBWYWx1ZSo+IHBvd0RvdWJsZQogICAg
IHVwZGF0ZWRMb29wUmVzdWx0VXBzaWxvbi0+c2V0UGhpKGluTG9vcFJlc3VsdCk7CiAgICAgVXBz
aWxvblZhbHVlKiB1cGRhdGVkTG9vcFJlc3VsdCA9IGxvb3BPZGQtPmFwcGVuZE5ldzxVcHNpbG9u
VmFsdWU+KHByb2NlZHVyZSwgb3JpZ2luLCB1cGRhdGVkUmVzdWx0KTsKIAotICAgIGxvb3BPZGQt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2NlZHVyZSwgSnVtcCwgb3JpZ2luLCBGcmVxdWVu
dGVkQmxvY2sobG9vcEV2ZW5PZGQpKTsKKyAgICBsb29wT2RkLT5hcHBlbmROZXc8VmFsdWU+KHBy
b2NlZHVyZSwgSnVtcCwgb3JpZ2luKTsKKyAgICBsb29wT2RkLT5zZXRTdWNjZXNzb3JzKEZyZXF1
ZW50ZWRCbG9jayhsb29wRXZlbk9kZCkpOwogCiAgICAgLy8gRXZlbiB2YWx1ZSBhbmQgZm9sbG93
aW5nIHRoZSBPZGQuCiAgICAgVmFsdWUqIHNxdWFyZWRJbnB1dCA9IGxvb3BFdmVuT2RkLT5hcHBl
bmROZXc8VmFsdWU+KHByb2NlZHVyZSwgTXVsLCBvcmlnaW4sIGluTG9vcFNxdWFyZWRJbnB1dCwg
aW5Mb29wU3F1YXJlZElucHV0KTsKQEAgLTEwOSwxMCArMTA3LDggQEAgc3RkOjpwYWlyPEJhc2lj
QmxvY2sqLCBWYWx1ZSo+IHBvd0RvdWJsZQogICAgIGluaXRpYWxMb29wQ291bnRlci0+c2V0UGhp
KGluTG9vcENvdW50ZXIpOwogICAgIHVwZGF0ZWRDb3VudGVyVXBzaWxvbi0+c2V0UGhpKGluTG9v
cENvdW50ZXIpOwogCi0gICAgbG9vcEV2ZW5PZGQtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAot
ICAgICAgICBwcm9jZWR1cmUsIEJyYW5jaCwgb3JpZ2luLAotICAgICAgICB1cGRhdGVkQ291bnRl
ciwKLSAgICAgICAgRnJlcXVlbnRlZEJsb2NrKGxvb3BUZXN0Rm9yRXZlbkNhc2UpLCBGcmVxdWVu
dGVkQmxvY2soY29udGludWF0aW9uKSk7CisgICAgbG9vcEV2ZW5PZGQtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvY2VkdXJlLCBCcmFuY2gsIG9yaWdpbiwgdXBkYXRlZENvdW50ZXIpOworICAgIGxvb3BF
dmVuT2RkLT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhsb29wVGVzdEZvckV2ZW5DYXNl
KSwgRnJlcXVlbnRlZEJsb2NrKGNvbnRpbnVhdGlvbikpOwogCiAgICAgLy8gSW5saW5lIGxvb3Au
CiAgICAgVmFsdWUqIGZpbmFsUmVzdWx0UGhpID0gY29udGludWF0aW9uLT5hcHBlbmROZXc8VmFs
dWU+KHByb2NlZHVyZSwgUGhpLCBEb3VibGUsIG9yaWdpbik7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNPcGNvZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNPcGNvZGUuaAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzT3Bjb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTIwNywyMSArMjA3LDIxIEBAIGVu
dW0gT3Bjb2RlIDogaW50MTZfdCB7CiAgICAgVXBzaWxvbiwgLy8gVGhpcyB1c2VzIHRoZSBVcHNp
bG9uVmFsdWUgY2xhc3MuCiAgICAgUGhpLAogCi0gICAgLy8gSnVtcC4gVXNlcyB0aGUgQ29udHJv
bFZhbHVlIGNsYXNzLgorICAgIC8vIEp1bXAuCiAgICAgSnVtcCwKICAgICAKLSAgICAvLyBQb2x5
bW9ycGhpYyBicmFuY2gsIHVzYWJsZSB3aXRoIGFueSBpbnRlZ2VyIHR5cGUuIEJyYW5jaGVzIGlm
IG5vdCBlcXVhbCB0byB6ZXJvLiBVc2VzIHRoZQotICAgIC8vIENvbnRyb2xWYWx1ZSBjbGFzcywg
d2l0aCB0aGUgMC1pbmRleCBzdWNjZXNzb3IgYmVpbmcgdGhlIHRydWUgc3VjY2Vzc29yLgorICAg
IC8vIFBvbHltb3JwaGljIGJyYW5jaCwgdXNhYmxlIHdpdGggYW55IGludGVnZXIgdHlwZS4gQnJh
bmNoZXMgaWYgbm90IGVxdWFsIHRvIHplcm8uIFRoZSAwLWluZGV4CisgICAgLy8gc3VjY2Vzc29y
IGlzIHRoZSB0cnVlIHN1Y2Nlc3Nvci4KICAgICBCcmFuY2gsCiAKICAgICAvLyBTd2l0Y2guIFN3
aXRjaGVzIG92ZXIgZWl0aGVyIEludDMyIG9yIEludDY0LiBVc2VzIHRoZSBTd2l0Y2hWYWx1ZSBj
bGFzcy4KICAgICBTd2l0Y2gsCi0KKyAgICAKICAgICAvLyBSZXR1cm4uIE5vdGUgdGhhdCBCMyBw
cm9jZWR1cmVzIGRvbid0IGtub3cgdGhlaXIgcmV0dXJuIHR5cGUsIHNvIHRoaXMgY2FuIGp1c3Qg
cmV0dXJuIGFueQotICAgIC8vIHR5cGUuIFVzZXMgdGhlIENvbnRyb2xWYWx1ZSBjbGFzcy4KKyAg
ICAvLyB0eXBlLgogICAgIFJldHVybiwKIAotICAgIC8vIFRoaXMgaXMgYSB0ZXJtaW5hbCB0aGF0
IGluZGljYXRlcyB0aGF0IHdlIHdpbGwgbmV2ZXIgZ2V0IGhlcmUuIFVzZXMgdGhlIENvbnRyb2xW
YWx1ZSBjbGFzcy4KKyAgICAvLyBUaGlzIGlzIGEgdGVybWluYWwgdGhhdCBpbmRpY2F0ZXMgdGhh
dCB3ZSB3aWxsIG5ldmVyIGdldCBoZXJlLgogICAgIE9vcHMKIH07CiAKQEAgLTI1OSw2ICsyNTks
MjAgQEAgaW5saW5lIGJvb2wgaXNDb25zdGFudChPcGNvZGUgb3Bjb2RlKQogICAgIH0KIH0KIAor
aW5saW5lIGJvb2wgaXNEZWZpbml0ZWx5VGVybWluYWwoT3Bjb2RlIG9wY29kZSkKK3sKKyAgICBz
d2l0Y2ggKG9wY29kZSkgeworICAgIGNhc2UgSnVtcDoKKyAgICBjYXNlIEJyYW5jaDoKKyAgICBj
YXNlIFN3aXRjaDoKKyAgICBjYXNlIE9vcHM6CisgICAgY2FzZSBSZXR1cm46CisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9
CisKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMwogCiBuYW1lc3BhY2UgV1RGIHsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BhdGNocG9pbnRTcGVjaWFsLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQYXRjaHBvaW50U3BlY2lhbC5jcHAJKHJl
dmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BhdGNocG9pbnRT
cGVjaWFsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQ2LDYgKzE0NiwxMSBAQCBDQ2FsbEhlbHBl
cnM6Okp1bXAgUGF0Y2hwb2ludFNwZWNpYWw6OmdlCiAgICAgcmV0dXJuIENDYWxsSGVscGVyczo6
SnVtcCgpOwogfQogCitib29sIFBhdGNocG9pbnRTcGVjaWFsOjppc1Rlcm1pbmFsKEluc3QmIGlu
c3QpCit7CisgICAgcmV0dXJuIGluc3Qub3JpZ2luLT5hczxQYXRjaHBvaW50VmFsdWU+KCktPmVm
ZmVjdHMudGVybWluYWw7Cit9CisKIHZvaWQgUGF0Y2hwb2ludFNwZWNpYWw6OmR1bXBJbXBsKFBy
aW50U3RyZWFtJiBvdXQpIGNvbnN0CiB7CiAgICAgb3V0LnByaW50KCJQYXRjaHBvaW50Iik7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQYXRjaHBvaW50U3BlY2lhbC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BhdGNocG9pbnRTcGVjaWFsLmgJ
KHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BhdGNocG9p
bnRTcGVjaWFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTYsNiArNTYsOCBAQCBwcm90ZWN0ZWQ6CiAgICAg
Ly8gZ2VuZXJhdGVzIHRoZSBzdGFja21hcC4gU3VwZXIgY3JhenkgZHVkZSEKIAogICAgIENDYWxs
SGVscGVyczo6SnVtcCBnZW5lcmF0ZShBaXI6Okluc3QmLCBDQ2FsbEhlbHBlcnMmLCBBaXI6Okdl
bmVyYXRpb25Db250ZXh0Jikgb3ZlcnJpZGU7CisgICAgCisgICAgYm9vbCBpc1Rlcm1pbmFsKEFp
cjo6SW5zdCYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBkdW1wSW1wbChQcmludFN0cmVhbSYpIGNv
bnN0IG92ZXJyaWRlOwogICAgIHZvaWQgZGVlcER1bXBJbXBsKFByaW50U3RyZWFtJikgY29uc3Qg
b3ZlcnJpZGU7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5jcHAJ
KHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVy
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0OCwzMSArMTQ4LDYgQEAgdm9pZCBQcm9jZWR1cmU6
OnJlc2V0VmFsdWVPd25lcnMoKQogCiB2b2lkIFByb2NlZHVyZTo6cmVzZXRSZWFjaGFiaWxpdHko
KQogewotICAgIGlmIChzaG91bGRWYWxpZGF0ZUlSKCkpIHsKLSAgICAgICAgLy8gVmFsaWRhdGUg
dGhlIGJhc2ljIHByb3BlcnRpZXMgdGhhdCB3ZSBuZWVkIGZvciByZXNldHRpbmcgcmVhY2hhYmls
aXR5LiBXZSBvZnRlbiByZXNldAotICAgICAgICAvLyByZWFjaGFiaWxpdHkgYmVmb3JlIElSIHZh
bGlkYXRpb24sIHNvIHdpdGhvdXQgdGhpcyBtaW5pLXZhbGlkYXRpb24sIHlvdSB3b3VsZCBjcmFz
aCBpbnNpZGUKLSAgICAgICAgLy8gQjM6OnJlc2V0UmVhY2hhYmlsaXR5KCkgd2l0aG91dCBnZXR0
aW5nIGFueSBJUiBkdW1wLgotCi0gICAgICAgIEJhc2ljQmxvY2sqIGJhZEJsb2NrID0gbnVsbHB0
cjsKLSAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBibG9jayA6ICp0aGlzKSB7Ci0gICAgICAgICAg
ICBpZiAoIWJsb2NrLT5zaXplKCkpIHsKLSAgICAgICAgICAgICAgICBiYWRCbG9jayA9IGJsb2Nr
OwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBp
ZiAoIWJsb2NrLT5sYXN0KCktPmFzPENvbnRyb2xWYWx1ZT4oKSkgewotICAgICAgICAgICAgICAg
IGJhZEJsb2NrID0gYmxvY2s7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoYmFkQmxvY2spIHsKLSAgICAgICAgICAgIGRhdGFM
b2coIkZBVEFMOiBJbnZhbGlkIGJhc2ljIGJsb2NrICIsICpiYWRCbG9jaywgIiB3aGlsZSBydW5u
aW5nIFByb2NlZHVyZTo6cmVzZXRSZWFjaGFiaWxpdHkoKS5cbiIpOwotICAgICAgICAgICAgZGF0
YUxvZygqdGhpcyk7Ci0gICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwot
ICAgICAgICB9Ci0gICAgfQotICAgIAogICAgIHJlY29tcHV0ZVByZWRlY2Vzc29ycyhtX2Jsb2Nr
cyk7CiAgICAgCiAgICAgLy8gVGhlIGNvbW1vbiBjYXNlIGlzIHRoYXQgdGhpcyBkb2VzIG5vdCBm
aW5kIGFueSBkZWFkIGJsb2Nrcy4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1By
b2NlZHVyZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2Nl
ZHVyZS5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQ
cm9jZWR1cmUuaAkod29ya2luZyBjb3B5KQpAQCAtMjE4LDcgKzIxOCwxMCBAQCBwdWJsaWM6CiAK
ICAgICBjb25zdCBjaGFyKiBsYXN0UGhhc2VOYW1lKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0UGhh
c2VOYW1lOyB9CiAKLSAgICB2b2lkKiBhZGREYXRhU2VjdGlvbihzaXplX3Qgc2l6ZSk7CisgICAg
Ly8gQWxsb2NhdGVzIGEgc2xhYiBvZiBtZW1vcnkgdGhhdCB3aWxsIGJlIGtlcHQgYWxpdmUgYnkg
YW55b25lIHdobyBrZWVwcyB0aGUgcmVzdWx0aW5nIGNvZGUKKyAgICAvLyBhbGl2ZS4gR3JlYXQg
Zm9yIGNvbXBpbGVyLWdlbmVyYXRlZCBkYXRhIHNlY3Rpb25zLCBsaWtlIHN3aXRjaCBqdW1wIHRh
YmxlcyBhbmQgY29uc3RhbnQgcG9vbHMuCisgICAgLy8gVGhpcyByZXR1cm5zIG1lbW9yeSB0aGF0
IGhhcyBiZWVuIHplcm8taW5pdGlhbGl6ZWQuCisgICAgdm9pZCogYWRkRGF0YVNlY3Rpb24oc2l6
ZV90KTsKIAogICAgIE9wYXF1ZUJ5cHJvZHVjdHMmIGJ5cHJvZHVjdHMoKSB7IHJldHVybiAqbV9i
eXByb2R1Y3RzOyB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0
cmVuZ3RoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1
Y2VTdHJlbmd0aC5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNiBA
QAogI2luY2x1ZGUgIkIzQmFzaWNCbG9ja0lubGluZXMuaCIKICNpbmNsdWRlICJCM0Jsb2NrSW5z
ZXJ0aW9uU2V0LmgiCiAjaW5jbHVkZSAiQjNDb21wdXRlRGl2aXNpb25NYWdpYy5oIgotI2luY2x1
ZGUgIkIzQ29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNEb21pbmF0b3JzLmgiCiAjaW5jbHVk
ZSAiQjNJbmRleFNldC5oIgogI2luY2x1ZGUgIkIzSW5zZXJ0aW9uU2V0SW5saW5lcy5oIgpAQCAt
MTcxNyw3ICsxNzE2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAvLyBSZXBsYWNlIHRo
ZSByZXN0IG9mIHRoZSBibG9jayB3aXRoIGFuIE9vcHMuCiAgICAgICAgICAgICAgICAgZm9yICh1
bnNpZ25lZCBpID0gbV9pbmRleCArIDE7IGkgPCBtX2Jsb2NrLT5zaXplKCkgLSAxOyArK2kpCiAg
ICAgICAgICAgICAgICAgICAgIG1fYmxvY2stPmF0KGkpLT5yZXBsYWNlV2l0aEJvdHRvbShtX2lu
c2VydGlvblNldCwgbV9pbmRleCk7Ci0gICAgICAgICAgICAgICAgbV9ibG9jay0+bGFzdCgpLT5h
czxDb250cm9sVmFsdWU+KCktPmNvbnZlcnRUb09vcHMoKTsKKyAgICAgICAgICAgICAgICBtX2Js
b2NrLT5sYXN0KCktPnJlcGxhY2VXaXRoT29wcyhtX2Jsb2NrKTsKICAgICAgICAgICAgICAgICBt
X2Jsb2NrLT5sYXN0KCktPnNldE9yaWdpbihjaGVja1ZhbHVlLT5vcmlnaW4oKSk7CiAKICAgICAg
ICAgICAgICAgICAvLyBSZXBsYWNlIG91cnNlbHZlcyBsYXN0LgpAQCAtMTc3Myw2ICsxNzcyLDcg
QEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlLT5vcGNvZGUoKSA9
PSBTZWxlY3QKICAgICAgICAgICAgICAgICAgICAgICAgICYmICh2YWx1ZS0+Y2hpbGQoMSktPmlz
Q29uc3RhbnQoKSAmJiB2YWx1ZS0+Y2hpbGQoMiktPmlzQ29uc3RhbnQoKSk7CiAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChzZWxlY3QpIHsKICAgICAg
ICAgICAgICAgICBzcGVjaWFsaXplU2VsZWN0KHNlbGVjdCk7CiAgICAgICAgICAgICAgICAgYnJl
YWs7CkBAIC0xNzgxLDUwICsxNzgxLDQ4IEBAIHByaXZhdGU6CiAgICAgICAgIH0KIAogICAgICAg
ICBjYXNlIEJyYW5jaDogewotICAgICAgICAgICAgQ29udHJvbFZhbHVlKiBicmFuY2ggPSBtX3Zh
bHVlLT5hczxDb250cm9sVmFsdWU+KCk7Ci0KICAgICAgICAgICAgIC8vIFR1cm4gdGhpczogQnJh
bmNoKE5vdEVxdWFsKHgsIDApKQogICAgICAgICAgICAgLy8gSW50byB0aGlzOiBCcmFuY2goeCkK
LSAgICAgICAgICAgIGlmIChicmFuY2gtPmNoaWxkKDApLT5vcGNvZGUoKSA9PSBOb3RFcXVhbCAm
JiBicmFuY2gtPmNoaWxkKDApLT5jaGlsZCgxKS0+aXNJbnQoMCkpIHsKLSAgICAgICAgICAgICAg
ICBicmFuY2gtPmNoaWxkKDApID0gYnJhbmNoLT5jaGlsZCgwKS0+Y2hpbGQoMCk7CisgICAgICAg
ICAgICBpZiAobV92YWx1ZS0+Y2hpbGQoMCktPm9wY29kZSgpID09IE5vdEVxdWFsICYmIG1fdmFs
dWUtPmNoaWxkKDApLT5jaGlsZCgxKS0+aXNJbnQoMCkpIHsKKyAgICAgICAgICAgICAgICBtX3Zh
bHVlLT5jaGlsZCgwKSA9IG1fdmFsdWUtPmNoaWxkKDApLT5jaGlsZCgwKTsKICAgICAgICAgICAg
ICAgICBtX2NoYW5nZWQgPSB0cnVlOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAvLyBU
dXJuIHRoaXM6IEJyYW5jaChFcXVhbCh4LCAwKSwgdGhlbiwgZWxzZSkKICAgICAgICAgICAgIC8v
IEludG8gdGhpczogQnJhbmNoKHgsIGVsc2UsIHRoZW4pCi0gICAgICAgICAgICBpZiAoYnJhbmNo
LT5jaGlsZCgwKS0+b3Bjb2RlKCkgPT0gRXF1YWwgJiYgYnJhbmNoLT5jaGlsZCgwKS0+Y2hpbGQo
MSktPmlzSW50KDApKSB7Ci0gICAgICAgICAgICAgICAgYnJhbmNoLT5jaGlsZCgwKSA9IGJyYW5j
aC0+Y2hpbGQoMCktPmNoaWxkKDApOwotICAgICAgICAgICAgICAgIHN0ZDo6c3dhcChicmFuY2gt
PnRha2VuKCksIGJyYW5jaC0+bm90VGFrZW4oKSk7CisgICAgICAgICAgICBpZiAobV92YWx1ZS0+
Y2hpbGQoMCktPm9wY29kZSgpID09IEVxdWFsICYmIG1fdmFsdWUtPmNoaWxkKDApLT5jaGlsZCgx
KS0+aXNJbnQoMCkpIHsKKyAgICAgICAgICAgICAgICBtX3ZhbHVlLT5jaGlsZCgwKSA9IG1fdmFs
dWUtPmNoaWxkKDApLT5jaGlsZCgwKTsKKyAgICAgICAgICAgICAgICBzdGQ6OnN3YXAobV9ibG9j
ay0+dGFrZW4oKSwgbV9ibG9jay0+bm90VGFrZW4oKSk7CiAgICAgICAgICAgICAgICAgbV9jaGFu
Z2VkID0gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAgICAgLy8g
VHVybiB0aGlzOiBCcmFuY2goQml0WG9yKGJvb2wsIDEpLCB0aGVuLCBlbHNlKQogICAgICAgICAg
ICAgLy8gSW50byB0aGlzOiBCcmFuY2goYm9vbCwgZWxzZSwgdGhlbikKLSAgICAgICAgICAgIGlm
IChicmFuY2gtPmNoaWxkKDApLT5vcGNvZGUoKSA9PSBCaXRYb3IKLSAgICAgICAgICAgICAgICAm
JiBicmFuY2gtPmNoaWxkKDApLT5jaGlsZCgxKS0+aXNJbnQzMigxKQotICAgICAgICAgICAgICAg
ICYmIGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDApLT5yZXR1cm5zQm9vbCgpKSB7Ci0gICAgICAg
ICAgICAgICAgYnJhbmNoLT5jaGlsZCgwKSA9IGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDApOwot
ICAgICAgICAgICAgICAgIHN0ZDo6c3dhcChicmFuY2gtPnRha2VuKCksIGJyYW5jaC0+bm90VGFr
ZW4oKSk7CisgICAgICAgICAgICBpZiAobV92YWx1ZS0+Y2hpbGQoMCktPm9wY29kZSgpID09IEJp
dFhvcgorICAgICAgICAgICAgICAgICYmIG1fdmFsdWUtPmNoaWxkKDApLT5jaGlsZCgxKS0+aXNJ
bnQzMigxKQorICAgICAgICAgICAgICAgICYmIG1fdmFsdWUtPmNoaWxkKDApLT5jaGlsZCgwKS0+
cmV0dXJuc0Jvb2woKSkgeworICAgICAgICAgICAgICAgIG1fdmFsdWUtPmNoaWxkKDApID0gbV92
YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDApOworICAgICAgICAgICAgICAgIHN0ZDo6c3dhcChtX2Js
b2NrLT50YWtlbigpLCBtX2Jsb2NrLT5ub3RUYWtlbigpKTsKICAgICAgICAgICAgICAgICBtX2No
YW5nZWQgPSB0cnVlOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAvLyBUdXJuIHRoaXM6
IEJyYW5jaChCaXRBbmQoYm9vbCwgeHliMSksIHRoZW4sIGVsc2UpCiAgICAgICAgICAgICAvLyBJ
bnRvIHRoaXM6IEJyYW5jaChib29sLCB0aGVuLCBlbHNlKQotICAgICAgICAgICAgaWYgKGJyYW5j
aC0+Y2hpbGQoMCktPm9wY29kZSgpID09IEJpdEFuZAotICAgICAgICAgICAgICAgICYmIGJyYW5j
aC0+Y2hpbGQoMCktPmNoaWxkKDEpLT5oYXNJbnQoKQotICAgICAgICAgICAgICAgICYmIGJyYW5j
aC0+Y2hpbGQoMCktPmNoaWxkKDEpLT5hc0ludCgpICYgMQotICAgICAgICAgICAgICAgICYmIGJy
YW5jaC0+Y2hpbGQoMCktPmNoaWxkKDApLT5yZXR1cm5zQm9vbCgpKSB7Ci0gICAgICAgICAgICAg
ICAgYnJhbmNoLT5jaGlsZCgwKSA9IGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDApOworICAgICAg
ICAgICAgaWYgKG1fdmFsdWUtPmNoaWxkKDApLT5vcGNvZGUoKSA9PSBCaXRBbmQKKyAgICAgICAg
ICAgICAgICAmJiBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMSktPmhhc0ludCgpCisgICAgICAg
ICAgICAgICAgJiYgbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDEpLT5hc0ludCgpICYgMQorICAg
ICAgICAgICAgICAgICYmIG1fdmFsdWUtPmNoaWxkKDApLT5jaGlsZCgwKS0+cmV0dXJuc0Jvb2wo
KSkgeworICAgICAgICAgICAgICAgIG1fdmFsdWUtPmNoaWxkKDApID0gbV92YWx1ZS0+Y2hpbGQo
MCktPmNoaWxkKDApOwogICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7CiAgICAgICAg
ICAgICB9CiAKLSAgICAgICAgICAgIFRyaVN0YXRlIHRyaVN0YXRlID0gYnJhbmNoLT5jaGlsZCgw
KS0+YXNUcmlTdGF0ZSgpOworICAgICAgICAgICAgVHJpU3RhdGUgdHJpU3RhdGUgPSBtX3ZhbHVl
LT5jaGlsZCgwKS0+YXNUcmlTdGF0ZSgpOwogCiAgICAgICAgICAgICAvLyBUdXJuIHRoaXM6IEJy
YW5jaCgwLCB0aGVuLCBlbHNlKQogICAgICAgICAgICAgLy8gSW50byB0aGlzOiBKdW1wKGVsc2Up
CiAgICAgICAgICAgICBpZiAodHJpU3RhdGUgPT0gRmFsc2VUcmlTdGF0ZSkgewotICAgICAgICAg
ICAgICAgIGJyYW5jaC0+dGFrZW4oKS5ibG9jaygpLT5yZW1vdmVQcmVkZWNlc3NvcihtX2Jsb2Nr
KTsKLSAgICAgICAgICAgICAgICBicmFuY2gtPmNvbnZlcnRUb0p1bXAoYnJhbmNoLT5ub3RUYWtl
bigpLmJsb2NrKCkpOworICAgICAgICAgICAgICAgIG1fYmxvY2stPnRha2VuKCkuYmxvY2soKS0+
cmVtb3ZlUHJlZGVjZXNzb3IobV9ibG9jayk7CisgICAgICAgICAgICAgICAgbV92YWx1ZS0+cmVw
bGFjZVdpdGhKdW1wKG1fYmxvY2ssIG1fYmxvY2stPm5vdFRha2VuKCkpOwogICAgICAgICAgICAg
ICAgIG1fY2hhbmdlZENGRyA9IHRydWU7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
ICAgICB9CkBAIC0xODMyLDggKzE4MzAsOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgLy8gVHVy
biB0aGlzOiBCcmFuY2gobm90IDAsIHRoZW4sIGVsc2UpCiAgICAgICAgICAgICAvLyBJbnRvIHRo
aXM6IEp1bXAodGhlbikKICAgICAgICAgICAgIGlmICh0cmlTdGF0ZSA9PSBUcnVlVHJpU3RhdGUp
IHsKLSAgICAgICAgICAgICAgICBicmFuY2gtPm5vdFRha2VuKCkuYmxvY2soKS0+cmVtb3ZlUHJl
ZGVjZXNzb3IobV9ibG9jayk7Ci0gICAgICAgICAgICAgICAgYnJhbmNoLT5jb252ZXJ0VG9KdW1w
KGJyYW5jaC0+dGFrZW4oKS5ibG9jaygpKTsKKyAgICAgICAgICAgICAgICBtX2Jsb2NrLT5ub3RU
YWtlbigpLmJsb2NrKCktPnJlbW92ZVByZWRlY2Vzc29yKG1fYmxvY2spOworICAgICAgICAgICAg
ICAgIG1fdmFsdWUtPnJlcGxhY2VXaXRoSnVtcChtX2Jsb2NrLCBtX2Jsb2NrLT50YWtlbigpKTsK
ICAgICAgICAgICAgICAgICBtX2NoYW5nZWRDRkcgPSB0cnVlOwogICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgfQpAQCAtMTg0MiwxMiArMTg0MCwxMiBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgLy8gb2YgbWFrZXMgc2Vuc2UgaGVyZSBiZWNhdXNlIGl0J3MgY2hlYXAsIGJ1dCBo
YWNrcyBsaWtlIHRoaXMgc2hvdyB0aGF0IHdlJ3JlIGdvaW5nCiAgICAgICAgICAgICAvLyB0byBu
ZWVkIFNDQ1AuCiAgICAgICAgICAgICBWYWx1ZSogY2hlY2sgPSBtX3B1cmVDU0UuZmluZE1hdGNo
KAotICAgICAgICAgICAgICAgIFZhbHVlS2V5KENoZWNrLCBWb2lkLCBicmFuY2gtPmNoaWxkKDAp
KSwgbV9ibG9jaywgKm1fZG9taW5hdG9ycyk7CisgICAgICAgICAgICAgICAgVmFsdWVLZXkoQ2hl
Y2ssIFZvaWQsIG1fdmFsdWUtPmNoaWxkKDApKSwgbV9ibG9jaywgKm1fZG9taW5hdG9ycyk7CiAg
ICAgICAgICAgICBpZiAoY2hlY2spIHsKICAgICAgICAgICAgICAgICAvLyBUaGUgQ2hlY2sgd291
bGQgaGF2ZSBzaWRlLWV4aXRlZCBpZiBjaGlsZCgwKSB3YXMgbm9uLXplcm8uIFNvLCBpdCBtdXN0
IGJlCiAgICAgICAgICAgICAgICAgLy8gemVybyBoZXJlLgotICAgICAgICAgICAgICAgIGJyYW5j
aC0+dGFrZW4oKS5ibG9jaygpLT5yZW1vdmVQcmVkZWNlc3NvcihtX2Jsb2NrKTsKLSAgICAgICAg
ICAgICAgICBicmFuY2gtPmNvbnZlcnRUb0p1bXAoYnJhbmNoLT5ub3RUYWtlbigpLmJsb2NrKCkp
OworICAgICAgICAgICAgICAgIG1fYmxvY2stPnRha2VuKCkuYmxvY2soKS0+cmVtb3ZlUHJlZGVj
ZXNzb3IobV9ibG9jayk7CisgICAgICAgICAgICAgICAgbV92YWx1ZS0+cmVwbGFjZVdpdGhKdW1w
KG1fYmxvY2ssIG1fYmxvY2stPm5vdFRha2VuKCkpOwogICAgICAgICAgICAgICAgIG1fY2hhbmdl
ZENGRyA9IHRydWU7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKQEAgLTE5ODYs
MTMgKzE5ODQsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgLy8gUmVtb3ZlIHRoZSB2YWx1ZXMgZnJv
bSB0aGUgcHJlZGVjZXNzb3IuCiAgICAgICAgIHByZWRlY2Vzc29yLT52YWx1ZXMoKS5yZXNpemUo
c3RhcnRJbmRleCk7CiAgICAgICAgIAotICAgICAgICBwcmVkZWNlc3Nvci0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCi0gICAgICAgICAgICBtX3Byb2MsIEJyYW5jaCwgc291cmNlLT5vcmlnaW4o
KSwgcHJlZGljYXRlLAotICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKGNhc2VzWzBdKSwgRnJl
cXVlbnRlZEJsb2NrKGNhc2VzWzFdKSk7CisgICAgICAgIHByZWRlY2Vzc29yLT5hcHBlbmROZXc8
VmFsdWU+KG1fcHJvYywgQnJhbmNoLCBzb3VyY2UtPm9yaWdpbigpLCBwcmVkaWNhdGUpOworICAg
ICAgICBwcmVkZWNlc3Nvci0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2soY2FzZXNbMF0p
LCBGcmVxdWVudGVkQmxvY2soY2FzZXNbMV0pKTsKIAogICAgICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgbnVtQ2FzZXM7ICsraSkgewotICAgICAgICAgICAgY2FzZXNbaV0tPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAotICAgICAgICAgICAgICAgIG1fcHJvYywgSnVtcCwgbV92YWx1ZS0+
b3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7CisgICAgICAgICAgICBjYXNlc1tp
XS0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIEp1bXAsIG1fdmFsdWUtPm9yaWdpbigpKTsKKyAg
ICAgICAgICAgIGNhc2VzW2ldLT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2Nr
KSk7CiAgICAgICAgIH0KIAogICAgICAgICBtX2NoYW5nZWQgPSB0cnVlOwpAQCAtMjIyMSw3ICsy
MjE4LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhTG9nKAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ2hhbmdpbmcgIiwgcG9pbnRlckR1bXAo
YmxvY2spLCAiJ3MgdGVybWluYWwgdG8gYSBKdW1wLlxuIik7CiAgICAgICAgICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBibG9jay0+bGFzdCgpLT5hczxDb250cm9s
VmFsdWU+KCktPmNvbnZlcnRUb0p1bXAoZmlyc3RTdWNjZXNzb3IpOworICAgICAgICAgICAgICAg
ICAgICAgICAgYmxvY2stPmxhc3QoKS0+cmVwbGFjZVdpdGhKdW1wKGJsb2NrLCBGcmVxdWVudGVk
QmxvY2soZmlyc3RTdWNjZXNzb3IpKTsKICAgICAgICAgICAgICAgICAgICAgICAgIG1fY2hhbmdl
ZENGRyA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CkBA
IC0yMjM5LDE2ICsyMjM2LDE4IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgIC8vIFJl
bW92ZSB0aGUgdGVybWluYWwuCiAgICAgICAgICAgICAgICAgICAgIFZhbHVlKiB2YWx1ZSA9IGJs
b2NrLT52YWx1ZXMoKS50YWtlTGFzdCgpOwogICAgICAgICAgICAgICAgICAgICBPcmlnaW4ganVt
cE9yaWdpbiA9IHZhbHVlLT5vcmlnaW4oKTsKLSAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9B
U1NFUlQodmFsdWUtPmFzPENvbnRyb2xWYWx1ZT4oKSk7CisgICAgICAgICAgICAgICAgICAgIFJF
TEVBU0VfQVNTRVJUKHZhbHVlLT5lZmZlY3RzKCkudGVybWluYWwpOwogICAgICAgICAgICAgICAg
ICAgICBtX3Byb2MuZGVsZXRlVmFsdWUodmFsdWUpOwogICAgICAgICAgICAgICAgICAgICAKICAg
ICAgICAgICAgICAgICAgICAgLy8gQXBwZW5kIHRoZSBmdWxsIGNvbnRlbnRzIG9mIHRoZSBzdWNj
ZXNzb3IgdG8gdGhlIHByZWRlY2Vzc29yLgogICAgICAgICAgICAgICAgICAgICBibG9jay0+dmFs
dWVzKCkuYXBwZW5kVmVjdG9yKHN1Y2Nlc3Nvci0+dmFsdWVzKCkpOworICAgICAgICAgICAgICAg
ICAgICBibG9jay0+c3VjY2Vzc29ycygpID0gc3VjY2Vzc29yLT5zdWNjZXNzb3JzKCk7CiAgICAg
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCB0
aGUgc3VjY2Vzc29yIGhhcyBub3RoaW5nIGxlZnQgaW4gaXQuIE1ha2Ugc3VyZSB0aGF0IHRoZSBi
bG9jawogICAgICAgICAgICAgICAgICAgICAvLyBoYXMgYSB0ZXJtaW5hbCBzbyB0aGF0IG5vYm9k
eSBjaG9rZXMgd2hlbiB0aGV5IGxvb2sgYXQgaXQuCiAgICAgICAgICAgICAgICAgICAgIHN1Y2Nl
c3Nvci0+dmFsdWVzKCkucmVzaXplKDApOwotICAgICAgICAgICAgICAgICAgICBzdWNjZXNzb3It
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KG1fcHJvYywgT29wcywganVtcE9yaWdpbik7CisgICAg
ICAgICAgICAgICAgICAgIHN1Y2Nlc3Nvci0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIE9vcHMs
IGp1bXBPcmlnaW4pOworICAgICAgICAgICAgICAgICAgICBzdWNjZXNzb3ItPmNsZWFyU3VjY2Vz
c29ycygpOwogICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgLy8gRW5z
dXJlIHRoYXQgcHJlZGVjZXNzb3JzIG9mIGJsb2NrJ3MgbmV3IHN1Y2Nlc3NvcnMga25vdyB3aGF0
J3MgdXAuCiAgICAgICAgICAgICAgICAgICAgIGZvciAoQmFzaWNCbG9jayogbmV3U3VjY2Vzc29y
IDogYmxvY2stPnN1Y2Nlc3NvckJsb2NrcygpKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcEdlbmVyYXRpb25QYXJhbXMuY3BwCShyZXZpc2lv
biAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcEdlbmVyYXRp
b25QYXJhbXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU5LDYgKzU5LDI3IEBAIFJlZ2lzdGVyU2V0IFN0
YWNrbWFwR2VuZXJhdGlvblBhcmFtczo6dW4KICAgICByZXR1cm4gcmVzdWx0OwogfQogCitWZWN0
b3I8Qm94PENDYWxsSGVscGVyczo6TGFiZWw+PiBTdGFja21hcEdlbmVyYXRpb25QYXJhbXM6OnN1
Y2Nlc3NvckxhYmVscygpIGNvbnN0Cit7CisgICAgUkVMRUFTRV9BU1NFUlQobV9jb250ZXh0Lmlu
ZGV4SW5CbG9jayA9PSBtX2NvbnRleHQuY3VycmVudEJsb2NrLT5zaXplKCkgLSAxKTsKKyAgICBS
RUxFQVNFX0FTU0VSVChtX3ZhbHVlLT5lZmZlY3RzKCkudGVybWluYWwpOworICAgIAorICAgIFZl
Y3RvcjxCb3g8Q0NhbGxIZWxwZXJzOjpMYWJlbD4+IHJlc3VsdChtX2NvbnRleHQuY3VycmVudEJs
b2NrLT5udW1TdWNjZXNzb3JzKCkpOworICAgIGZvciAodW5zaWduZWQgaSA9IG1fY29udGV4dC5j
dXJyZW50QmxvY2stPm51bVN1Y2Nlc3NvcnMoKTsgaS0tOykKKyAgICAgICAgcmVzdWx0W2ldID0g
bV9jb250ZXh0LmJsb2NrTGFiZWxzW21fY29udGV4dC5jdXJyZW50QmxvY2stPnN1Y2Nlc3NvckJs
b2NrKGkpXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitib29sIFN0YWNrbWFwR2VuZXJhdGlv
blBhcmFtczo6ZmFsbHNUaHJvdWdoVG9TdWNjZXNzb3IodW5zaWduZWQgc3VjY2Vzc29ySW5kZXgp
IGNvbnN0Cit7CisgICAgUkVMRUFTRV9BU1NFUlQobV9jb250ZXh0LmluZGV4SW5CbG9jayA9PSBt
X2NvbnRleHQuY3VycmVudEJsb2NrLT5zaXplKCkgLSAxKTsKKyAgICBSRUxFQVNFX0FTU0VSVCht
X3ZhbHVlLT5lZmZlY3RzKCkudGVybWluYWwpOworICAgIAorICAgIEFpcjo6QmFzaWNCbG9jayog
c3VjY2Vzc29yID0gbV9jb250ZXh0LmN1cnJlbnRCbG9jay0+c3VjY2Vzc29yQmxvY2soc3VjY2Vz
c29ySW5kZXgpOworICAgIEFpcjo6QmFzaWNCbG9jayogbmV4dEJsb2NrID0gbV9jb250ZXh0LmNv
ZGUtPmZpbmROZXh0QmxvY2sobV9jb250ZXh0LmN1cnJlbnRCbG9jayk7CisgICAgcmV0dXJuIHN1
Y2Nlc3NvciA9PSBuZXh0QmxvY2s7Cit9CisKIFByb2NlZHVyZSYgU3RhY2ttYXBHZW5lcmF0aW9u
UGFyYW1zOjpwcm9jKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9jb250ZXh0LmNvZGUtPnByb2Mo
KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFwR2VuZXJhdGlvblBh
cmFtcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFw
R2VuZXJhdGlvblBhcmFtcy5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNTdGFja21hcEdlbmVyYXRpb25QYXJhbXMuaAkod29ya2luZyBjb3B5KQpAQCAt
MzAsNyArMzAsOSBAQAogCiAjaW5jbHVkZSAiQWlyR2VuZXJhdGlvbkNvbnRleHQuaCIKICNpbmNs
dWRlICJCM1ZhbHVlUmVwLmgiCisjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAi
UmVnaXN0ZXJTZXQuaCIKKyNpbmNsdWRlIDx3dGYvQm94Lmg+CiAKIG5hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgQjMgewogCkBAIC0zOSw2ICs0MSw4IEBAIGNsYXNzIFBhdGNocG9pbnRTcGVjaWFs
OwogY2xhc3MgUHJvY2VkdXJlOwogY2xhc3MgU3RhY2ttYXBWYWx1ZTsKIAorLy8gTk9URTogSXQn
cyBwb3NzaWJsZSB0byBjYXB0dXJlIFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyBieSB2YWx1ZSwg
YnV0IG5vdCBhbGwgb2YgdGhlIG1ldGhvZHMgd2lsbAorLy8gd29yayBpZiB5b3UgZG8gdGhhdC4K
IGNsYXNzIFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyB7CiBwdWJsaWM6CiAgICAgLy8gVGhpcyBp
cyB0aGUgc3RhY2ttYXAgdmFsdWUgdGhhdCB3ZSdyZSBnZW5lcmF0aW5nLgpAQCAtODAsNiArODQs
MTIgQEAgcHVibGljOgogCiAgICAgR1BSUmVnIGdwU2NyYXRjaCh1bnNpZ25lZCBpbmRleCkgY29u
c3QgeyByZXR1cm4gbV9ncFNjcmF0Y2hbaW5kZXhdOyB9CiAgICAgRlBSUmVnIGZwU2NyYXRjaCh1
bnNpZ25lZCBpbmRleCkgY29uc3QgeyByZXR1cm4gbV9mcFNjcmF0Y2hbaW5kZXhdOyB9CisgICAg
CisgICAgLy8gVGhpcyBpcyBjb21wdXRlZCBsYXppbHksIHNvIGl0IHdvbid0IHdvcmsgaWYgeW91
IGNhcHR1cmUgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zIGJ5IHZhbHVlLgorICAgIEpTX0VYUE9S
VF9QUklWQVRFIFZlY3RvcjxCb3g8Q0NhbGxIZWxwZXJzOjpMYWJlbD4+IHN1Y2Nlc3NvckxhYmVs
cygpIGNvbnN0OworICAgIAorICAgIC8vIFRoaXMgaXMgY29tcHV0ZWQgbGF6aWx5IGFsc28uCisg
ICAgYm9vbCBmYWxsc1Rocm91Z2hUb1N1Y2Nlc3Nvcih1bnNpZ25lZCBzdWNjZXNzb3JJbmRleCkg
Y29uc3Q7CiAKICAgICAvLyBUaGlzIGlzIHByb3ZpZGVkIGZvciBjb252ZW5pZW5jZTsgaXQgbWVh
bnMgdGhhdCB5b3UgZG9uJ3QgaGF2ZSB0byBjYXB0dXJlIGl0IGlmIHlvdSBkb24ndCB3YW50IHRv
LgogICAgIFByb2NlZHVyZSYgcHJvYygpIGNvbnN0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzU3dpdGNoVmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM1N3aXRjaFZhbHVlLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzU3dpdGNoVmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNywz
MCArMzcsNzYgQEAgU3dpdGNoVmFsdWU6On5Td2l0Y2hWYWx1ZSgpCiB7CiB9CiAKLVN3aXRjaENh
c2UgU3dpdGNoVmFsdWU6OnJlbW92ZUNhc2UodW5zaWduZWQgaW5kZXgpCitTd2l0Y2hDYXNlIFN3
aXRjaFZhbHVlOjpyZW1vdmVDYXNlKEJhc2ljQmxvY2sqIGJsb2NrLCB1bnNpZ25lZCBpbmRleCkK
IHsKLSAgICBGcmVxdWVudGVkQmxvY2sgcmVzdWx0QmxvY2sgPSBtX3N1Y2Nlc3NvcnNbaW5kZXhd
OworICAgIEZyZXF1ZW50ZWRCbG9jayByZXN1bHRCbG9jayA9IGJsb2NrLT5zdWNjZXNzb3IoaW5k
ZXgpOwogICAgIGludDY0X3QgcmVzdWx0VmFsdWUgPSBtX3ZhbHVlc1tpbmRleF07Ci0gICAgbV9z
dWNjZXNzb3JzW2luZGV4XSA9IG1fc3VjY2Vzc29ycy5sYXN0KCk7Ci0gICAgbV9zdWNjZXNzb3Jz
LnJlbW92ZUxhc3QoKTsKKyAgICBibG9jay0+c3VjY2Vzc29yKGluZGV4KSA9IGJsb2NrLT5zdWNj
ZXNzb3JzKCkubGFzdCgpOworICAgIGJsb2NrLT5zdWNjZXNzb3JzKCkucmVtb3ZlTGFzdCgpOwog
ICAgIG1fdmFsdWVzW2luZGV4XSA9IG1fdmFsdWVzLmxhc3QoKTsKICAgICBtX3ZhbHVlcy5yZW1v
dmVMYXN0KCk7CiAgICAgcmV0dXJuIFN3aXRjaENhc2UocmVzdWx0VmFsdWUsIHJlc3VsdEJsb2Nr
KTsKIH0KIAotdm9pZCBTd2l0Y2hWYWx1ZTo6YXBwZW5kQ2FzZShjb25zdCBTd2l0Y2hDYXNlJiBz
d2l0Y2hDYXNlKQorYm9vbCBTd2l0Y2hWYWx1ZTo6aGFzRmFsbFRocm91Z2goY29uc3QgQmFzaWNC
bG9jayogYmxvY2spIGNvbnN0Cit7CisgICAgdW5zaWduZWQgbnVtU3VjY2Vzc29ycyA9IGJsb2Nr
LT5udW1TdWNjZXNzb3JzKCk7CisgICAgdW5zaWduZWQgbnVtVmFsdWVzID0gbV92YWx1ZXMuc2l6
ZSgpOworICAgIFJFTEVBU0VfQVNTRVJUKG51bVZhbHVlcyA9PSBudW1TdWNjZXNzb3JzIHx8IG51
bVZhbHVlcyArIDEgPT0gbnVtU3VjY2Vzc29ycyk7CisgICAgCisgICAgcmV0dXJuIG51bVZhbHVl
cyArIDEgPT0gbnVtU3VjY2Vzc29yczsKK30KKworYm9vbCBTd2l0Y2hWYWx1ZTo6aGFzRmFsbFRo
cm91Z2goKSBjb25zdAoreworICAgIHJldHVybiBoYXNGYWxsVGhyb3VnaChvd25lcik7Cit9CisK
K3ZvaWQgU3dpdGNoVmFsdWU6OnNldEZhbGxUaHJvdWdoKEJhc2ljQmxvY2sqIGJsb2NrLCBjb25z
dCBGcmVxdWVudGVkQmxvY2smIHRhcmdldCkKK3sKKyAgICBpZiAoIWhhc0ZhbGxUaHJvdWdoKCkp
CisgICAgICAgIGJsb2NrLT5zdWNjZXNzb3JzKCkuYXBwZW5kKHRhcmdldCk7CisgICAgZWxzZQor
ICAgICAgICBibG9jay0+c3VjY2Vzc29ycygpLmxhc3QoKSA9IHRhcmdldDsKKyAgICBBU1NFUlQo
aGFzRmFsbFRocm91Z2goYmxvY2spKTsKK30KKwordm9pZCBTd2l0Y2hWYWx1ZTo6YXBwZW5kQ2Fz
ZShCYXNpY0Jsb2NrKiBibG9jaywgY29uc3QgU3dpdGNoQ2FzZSYgc3dpdGNoQ2FzZSkKIHsKLSAg
ICBtX3N1Y2Nlc3NvcnMuYXBwZW5kKG1fc3VjY2Vzc29ycy5sYXN0KCkpOwotICAgIG1fc3VjY2Vz
c29yc1ttX3N1Y2Nlc3NvcnMuc2l6ZSgpIC0gMl0gPSBzd2l0Y2hDYXNlLnRhcmdldCgpOworICAg
IGlmICghaGFzRmFsbFRocm91Z2goKSkKKyAgICAgICAgYmxvY2stPnN1Y2Nlc3NvcnMoKS5hcHBl
bmQoc3dpdGNoQ2FzZS50YXJnZXQoKSk7CisgICAgZWxzZSB7CisgICAgICAgIGJsb2NrLT5zdWNj
ZXNzb3JzKCkuYXBwZW5kKGJsb2NrLT5zdWNjZXNzb3JzKCkubGFzdCgpKTsKKyAgICAgICAgYmxv
Y2stPnN1Y2Nlc3NvcihibG9jay0+bnVtU3VjY2Vzc29ycygpIC0gMikgPSBzd2l0Y2hDYXNlLnRh
cmdldCgpOworICAgIH0KICAgICBtX3ZhbHVlcy5hcHBlbmQoc3dpdGNoQ2FzZS5jYXNlVmFsdWUo
KSk7CiB9CiAKK3ZvaWQgU3dpdGNoVmFsdWU6OnNldEZhbGxUaHJvdWdoKGNvbnN0IEZyZXF1ZW50
ZWRCbG9jayYgdGFyZ2V0KQoreworICAgIHNldEZhbGxUaHJvdWdoKG93bmVyLCB0YXJnZXQpOwor
fQorCit2b2lkIFN3aXRjaFZhbHVlOjphcHBlbmRDYXNlKGNvbnN0IFN3aXRjaENhc2UmIHN3aXRj
aENhc2UpCit7CisgICAgYXBwZW5kQ2FzZShvd25lciwgc3dpdGNoQ2FzZSk7Cit9CisKK3ZvaWQg
U3dpdGNoVmFsdWU6OmR1bXBTdWNjZXNzb3JzKGNvbnN0IEJhc2ljQmxvY2sqIGJsb2NrLCBQcmlu
dFN0cmVhbSYgb3V0KSBjb25zdAoreworICAgIC8vIFdlIG11c3Qgbm90IGNyYXNoIGR1ZSB0byBh
IG51bWJlci1vZi1zdWNjZXNzb3JzIG1pc21hdGNoISBTb21lb25lIGRlYnVnZ2luZyBhCisgICAg
Ly8gbnVtYmVyLW9mLXN1Y2Nlc3NvcnMgYnVnIHdpbGwgd2FudCB0byBkdW1wIElSIQorICAgIGlm
IChudW1DYXNlVmFsdWVzKCkgKyAxICE9IGJsb2NrLT5udW1TdWNjZXNzb3JzKCkpIHsKKyAgICAg
ICAgVmFsdWU6OmR1bXBTdWNjZXNzb3JzKGJsb2NrLCBvdXQpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgIAorICAgIG91dC5wcmludChjYXNlcyhibG9jaykpOworfQorCiB2b2lkIFN3aXRj
aFZhbHVlOjpkdW1wTWV0YShDb21tYVByaW50ZXImIGNvbW1hLCBQcmludFN0cmVhbSYgb3V0KSBj
b25zdAogewotICAgIC8vIFRoaXMgZGVzdHJ1Y3RpdmVseSBvdmVycmlkZXMgQ29udHJvbFZhbHVl
J3MgZHVtcE1ldGEoKS4KLSAgICBmb3IgKFN3aXRjaENhc2Ugc3dpdGNoQ2FzZSA6ICp0aGlzKQot
ICAgICAgICBvdXQucHJpbnQoY29tbWEsIHN3aXRjaENhc2UpOwotICAgIG91dC5wcmludChjb21t
YSwgImZhbGxUaHJvdWdoID0gIiwgZmFsbFRocm91Z2goKSk7CisgICAgb3V0LnByaW50KGNvbW1h
LCAiY2FzZXMgPSBbIiwgbGlzdER1bXAobV92YWx1ZXMpLCAiXSIpOwogfQogCiBWYWx1ZSogU3dp
dGNoVmFsdWU6OmNsb25lSW1wbCgpIGNvbnN0CkBAIC02OCwxMCArMTE0LDkgQEAgVmFsdWUqIFN3
aXRjaFZhbHVlOjpjbG9uZUltcGwoKSBjb25zdAogICAgIHJldHVybiBuZXcgU3dpdGNoVmFsdWUo
KnRoaXMpOwogfQogCi1Td2l0Y2hWYWx1ZTo6U3dpdGNoVmFsdWUoT3JpZ2luIG9yaWdpbiwgVmFs
dWUqIGNoaWxkLCBjb25zdCBGcmVxdWVudGVkQmxvY2smIGZhbGxUaHJvdWdoKQotICAgIDogQ29u
dHJvbFZhbHVlKFN3aXRjaCwgVm9pZCwgb3JpZ2luLCBjaGlsZCkKK1N3aXRjaFZhbHVlOjpTd2l0
Y2hWYWx1ZShPcmlnaW4gb3JpZ2luLCBWYWx1ZSogY2hpbGQpCisgICAgOiBWYWx1ZShDaGVja2Vk
T3Bjb2RlLCBTd2l0Y2gsIFZvaWQsIG9yaWdpbiwgY2hpbGQpCiB7Ci0gICAgbV9zdWNjZXNzb3Jz
LmFwcGVuZChmYWxsVGhyb3VnaCk7CiB9CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3dpdGNoVmFsdWUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTd2l0Y2hWYWx1ZS5oCShyZXZpc2lvbiAyMDI4
MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTd2l0Y2hWYWx1ZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yOCwxMiArMjgsMTMgQEAKIAogI2lmIEVOQUJMRShCM19KSVQpCiAKLSNpbmNs
dWRlICJCM0NvbnRyb2xWYWx1ZS5oIgorI2luY2x1ZGUgIkIzQ2FzZUNvbGxlY3Rpb24uaCIKICNp
bmNsdWRlICJCM1N3aXRjaENhc2UuaCIKKyNpbmNsdWRlICJCM1ZhbHVlLmgiCiAKIG5hbWVzcGFj
ZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCi1jbGFzcyBTd2l0Y2hWYWx1ZSA6IHB1YmxpYyBDb250
cm9sVmFsdWUgeworY2xhc3MgU3dpdGNoVmFsdWUgOiBwdWJsaWMgVmFsdWUgewogcHVibGljOgog
ICAgIHN0YXRpYyBib29sIGFjY2VwdHMoT3Bjb2RlIG9wY29kZSkgeyByZXR1cm4gb3Bjb2RlID09
IFN3aXRjaDsgfQogCkBAIC00Nyw3MiArNDgsMjYgQEAgcHVibGljOgogICAgIAogICAgIGNvbnN0
IFZlY3RvcjxpbnQ2NF90PiYgY2FzZVZhbHVlcygpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWVzOyB9
CiAKLSAgICBGcmVxdWVudGVkQmxvY2sgZmFsbFRocm91Z2goKSBjb25zdCB7IHJldHVybiBzdWNj
ZXNzb3JzKCkubGFzdCgpOyB9Ci0gICAgRnJlcXVlbnRlZEJsb2NrJiBmYWxsVGhyb3VnaCgpIHsg
cmV0dXJuIHN1Y2Nlc3NvcnMoKS5sYXN0KCk7IH0KLQotICAgIHVuc2lnbmVkIHNpemUoKSBjb25z
dCB7IHJldHVybiBudW1DYXNlVmFsdWVzKCk7IH0KLSAgICBTd2l0Y2hDYXNlIGF0KHVuc2lnbmVk
IGluZGV4KSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIFN3aXRjaENhc2UoY2FzZVZhbHVl
KGluZGV4KSwgc3VjY2Vzc29yKGluZGV4KSk7Ci0gICAgfQotICAgIFN3aXRjaENhc2Ugb3BlcmF0
b3JbXSh1bnNpZ25lZCBpbmRleCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBhdChpbmRl
eCk7Ci0gICAgfQotCi0gICAgY2xhc3MgaXRlcmF0b3IgewotICAgIHB1YmxpYzoKLSAgICAgICAg
aXRlcmF0b3IoKQotICAgICAgICAgICAgOiBtX3N3aXRjaChudWxscHRyKQotICAgICAgICAgICAg
LCBtX2luZGV4KDApCi0gICAgICAgIHsKLSAgICAgICAgfQotCi0gICAgICAgIGl0ZXJhdG9yKGNv
bnN0IFN3aXRjaFZhbHVlJiBzd2l0Y2hWYWx1ZSwgdW5zaWduZWQgaW5kZXgpCi0gICAgICAgICAg
ICA6IG1fc3dpdGNoKCZzd2l0Y2hWYWx1ZSkKLSAgICAgICAgICAgICwgbV9pbmRleChpbmRleCkK
LSAgICAgICAgewotICAgICAgICB9Ci0KLSAgICAgICAgU3dpdGNoQ2FzZSBvcGVyYXRvciooKQot
ICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbV9zd2l0Y2gtPmF0KG1faW5kZXgpOwotICAg
ICAgICB9Ci0KLSAgICAgICAgaXRlcmF0b3ImIG9wZXJhdG9yKysoKQotICAgICAgICB7Ci0gICAg
ICAgICAgICBtX2luZGV4Kys7Ci0gICAgICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgICAgIH0K
LQotICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgaXRlcmF0b3ImIG90aGVyKSBjb25zdAot
ICAgICAgICB7Ci0gICAgICAgICAgICBBU1NFUlQobV9zd2l0Y2ggPT0gb3RoZXIubV9zd2l0Y2gp
OwotICAgICAgICAgICAgcmV0dXJuIG1faW5kZXggPT0gb3RoZXIubV9pbmRleDsKLSAgICAgICAg
fQotCi0gICAgICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBpdGVyYXRvciYgb3RoZXIpIGNvbnN0
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiAhKCp0aGlzID09IG90aGVyKTsKLSAgICAg
ICAgfQotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgY29uc3QgU3dpdGNoVmFsdWUqIG1fc3dpdGNo
OwotICAgICAgICB1bnNpZ25lZCBtX2luZGV4OwotICAgIH07Ci0KLSAgICB0eXBlZGVmIGl0ZXJh
dG9yIGNvbnN0X2l0ZXJhdG9yOwotCi0gICAgaXRlcmF0b3IgYmVnaW4oKSBjb25zdCB7IHJldHVy
biBpdGVyYXRvcigqdGhpcywgMCk7IH0KLSAgICBpdGVyYXRvciBlbmQoKSBjb25zdCB7IHJldHVy
biBpdGVyYXRvcigqdGhpcywgc2l6ZSgpKTsgfQorICAgIENhc2VDb2xsZWN0aW9uIGNhc2VzKGNv
bnN0IEJhc2ljQmxvY2sqIG93bmVyKSBjb25zdCB7IHJldHVybiBDYXNlQ29sbGVjdGlvbih0aGlz
LCBvd25lcik7IH0KKyAgICBDYXNlQ29sbGVjdGlvbiBjYXNlcygpIGNvbnN0IHsgcmV0dXJuIGNh
c2VzKG93bmVyKTsgfQogCiAgICAgLy8gVGhpcyByZW1vdmVzIHRoZSBjYXNlIGFuZCByZW9yZGVy
cyB0aGluZ3MgYSBiaXQuIElmIHlvdSdyZSBpdGVyYXRpbmcgdGhlIGNhc2VzIGZyb20gMCB0byBO
LAogICAgIC8vIHRoZW4geW91IGNhbiBrZWVwIGl0ZXJhdGluZyBhZnRlciB0aGlzIHNvIGxvbmcg
YXMgeW91IHJldmlzaXQgdGhpcyBzYW1lIGluZGV4ICh3aGljaCB3aWxsIG5vdwogICAgIC8vIGNv
bnRhaW4gc29tZSBvdGhlciBjYXNlIHZhbHVlKS4gVGhpcyByZW1vdmVzIHRoZSBjYXNlIHRoYXQg
d2FzIHJlbW92ZWQuCi0gICAgU3dpdGNoQ2FzZSByZW1vdmVDYXNlKHVuc2lnbmVkIGluZGV4KTsK
KyAgICBTd2l0Y2hDYXNlIHJlbW92ZUNhc2UoQmFzaWNCbG9jayosIHVuc2lnbmVkIGluZGV4KTsK
IAorICAgIGJvb2wgaGFzRmFsbFRocm91Z2goY29uc3QgQmFzaWNCbG9jayopIGNvbnN0OworICAg
IGJvb2wgaGFzRmFsbFRocm91Z2goKSBjb25zdDsKKworICAgIC8vIFRoZXNlIHR3byBmdW5jdGlv
bnMgY2FuIGJlIGNhbGxlZCBpbiBhbnkgb3JkZXIuCisgICAgdm9pZCBzZXRGYWxsVGhyb3VnaChC
YXNpY0Jsb2NrKiwgY29uc3QgRnJlcXVlbnRlZEJsb2NrJik7CisgICAgdm9pZCBhcHBlbmRDYXNl
KEJhc2ljQmxvY2sqLCBjb25zdCBTd2l0Y2hDYXNlJik7CisgICAgCisgICAgSlNfRVhQT1JUX1BS
SVZBVEUgdm9pZCBzZXRGYWxsVGhyb3VnaChjb25zdCBGcmVxdWVudGVkQmxvY2smKTsKICAgICBK
U19FWFBPUlRfUFJJVkFURSB2b2lkIGFwcGVuZENhc2UoY29uc3QgU3dpdGNoQ2FzZSYpOwogCisg
ICAgdm9pZCBkdW1wU3VjY2Vzc29ycyhjb25zdCBCYXNpY0Jsb2NrKiwgUHJpbnRTdHJlYW0mKSBj
b25zdCBvdmVycmlkZTsKKwogcHJvdGVjdGVkOgogICAgIHZvaWQgZHVtcE1ldGEoQ29tbWFQcmlu
dGVyJiwgUHJpbnRTdHJlYW0mKSBjb25zdCBvdmVycmlkZTsKIApAQCAtMTIxLDcgKzc2LDcgQEAg
cHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgUHJvY2VkdXJlOwogCi0gICAg
SlNfRVhQT1JUX1BSSVZBVEUgU3dpdGNoVmFsdWUoT3JpZ2luLCBWYWx1ZSogY2hpbGQsIGNvbnN0
IEZyZXF1ZW50ZWRCbG9jayYgZmFsbFRocm91Z2gpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIFN3
aXRjaFZhbHVlKE9yaWdpbiwgVmFsdWUqIGNoaWxkKTsKIAogICAgIFZlY3RvcjxpbnQ2NF90PiBt
X3ZhbHVlczsKIH07CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWxpZGF0ZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsaWRhdGUuY3Bw
CShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWxpZGF0
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJCM1Byb2Nl
ZHVyZS5oIgogI2luY2x1ZGUgIkIzU2xvdEJhc2VWYWx1ZS5oIgogI2luY2x1ZGUgIkIzU3RhY2tT
bG90LmgiCisjaW5jbHVkZSAiQjNTd2l0Y2hWYWx1ZS5oIgogI2luY2x1ZGUgIkIzVXBzaWxvblZh
bHVlLmgiCiAjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJCM1ZhcmlhYmxl
LmgiCkBAIC0xMDcsOCArMTA4LDggQEAgcHVibGljOgogICAgICAgICBmb3IgKEJhc2ljQmxvY2sq
IGJsb2NrIDogYmxvY2tzKSB7CiAgICAgICAgICAgICBWQUxJREFURShibG9jay0+c2l6ZSgpID49
IDEsICgiQXQgIiwgKmJsb2NrKSk7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgYmxvY2stPnNpemUoKSAtIDE7ICsraSkKLSAgICAgICAgICAgICAgICBWQUxJREFURSghQ29u
dHJvbFZhbHVlOjphY2NlcHRzKGJsb2NrLT5hdChpKS0+b3Bjb2RlKCkpLCAoIkF0ICIsICpibG9j
ay0+YXQoaSkpKTsKLSAgICAgICAgICAgIFZBTElEQVRFKENvbnRyb2xWYWx1ZTo6YWNjZXB0cyhi
bG9jay0+bGFzdCgpLT5vcGNvZGUoKSksICgiQXQgIiwgKmJsb2NrLT5sYXN0KCkpKTsKKyAgICAg
ICAgICAgICAgICBWQUxJREFURSghYmxvY2stPmF0KGkpLT5lZmZlY3RzKCkudGVybWluYWwsICgi
QXQgIiwgKmJsb2NrLT5hdChpKSkpOworICAgICAgICAgICAgVkFMSURBVEUoYmxvY2stPmxhc3Qo
KS0+ZWZmZWN0cygpLnRlcm1pbmFsLCAoIkF0ICIsICpibG9jay0+bGFzdCgpKSk7CiAgICAgICAg
ICAgICAKICAgICAgICAgICAgIGZvciAoQmFzaWNCbG9jayogc3VjY2Vzc29yIDogYmxvY2stPnN1
Y2Nlc3NvckJsb2NrcygpKSB7CiAgICAgICAgICAgICAgICAgYWxsUHJlZGVjZXNzb3JzLmFkZChz
dWNjZXNzb3IsIEhhc2hTZXQ8QmFzaWNCbG9jayo+KCkpLml0ZXJhdG9yLT52YWx1ZS5hZGQoYmxv
Y2spOwpAQCAtMTI5LDggKzEzMCw2IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICBWQUxJREFU
RShjaGlsZC0+dHlwZSgpICE9IFZvaWQsICgiQXQgIiwgKnZhbHVlLCAiLT4iLCAqY2hpbGQpKTsK
ICAgICAgICAgICAgIHN3aXRjaCAodmFsdWUtPm9wY29kZSgpKSB7CiAgICAgICAgICAgICBjYXNl
IE5vcDoKLSAgICAgICAgICAgIGNhc2UgSnVtcDoKLSAgICAgICAgICAgIGNhc2UgT29wczoKICAg
ICAgICAgICAgICAgICBWQUxJREFURSghdmFsdWUtPm51bUNoaWxkcmVuKCksICgiQXQgIiwgKnZh
bHVlKSk7CiAgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPnR5cGUoKSA9PSBWb2lkLCAo
IkF0ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzc3LDE1ICszNzYs
MzYgQEAgcHVibGljOgogICAgICAgICAgICAgICAgIFZBTElEQVRFKCF2YWx1ZS0+bnVtQ2hpbGRy
ZW4oKSwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+
dHlwZSgpICE9IFZvaWQsICgiQXQgIiwgKnZhbHVlKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBjYXNlIEp1bXA6CisgICAgICAgICAgICAgICAgVkFMSURBVEUoIXZhbHVl
LT5udW1DaGlsZHJlbigpLCAoIkF0ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIFZBTElE
QVRFKHZhbHVlLT50eXBlKCkgPT0gVm9pZCwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAg
ICAgICBWQUxJREFURSh2YWx1ZU93bmVyLmdldCh2YWx1ZSktPm51bVN1Y2Nlc3NvcnMoKSA9PSAx
LCAoIkF0ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSBPb3BzOgorICAgICAgICAgICAgICAgIFZBTElEQVRFKCF2YWx1ZS0+bnVtQ2hpbGRyZW4o
KSwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+dHlw
ZSgpID09IFZvaWQsICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAgICAgVkFMSURBVEUo
IXZhbHVlT3duZXIuZ2V0KHZhbHVlKS0+bnVtU3VjY2Vzc29ycygpLCAoIkF0ICIsICp2YWx1ZSkp
OworICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBSZXR1cm46CiAgICAg
ICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPm51bUNoaWxkcmVuKCkgPT0gMSwgKCJBdCAiLCAq
dmFsdWUpKTsKICAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+dHlwZSgpID09IFZvaWQs
ICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAgICAgVkFMSURBVEUoIXZhbHVlT3duZXIu
Z2V0KHZhbHVlKS0+bnVtU3VjY2Vzc29ycygpLCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBCcmFuY2g6CisgICAgICAgICAgICAgICAg
VkFMSURBVEUodmFsdWUtPm51bUNoaWxkcmVuKCkgPT0gMSwgKCJBdCAiLCAqdmFsdWUpKTsKKyAg
ICAgICAgICAgICAgICBWQUxJREFURShpc0ludCh2YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSksICgi
QXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPnR5cGUoKSA9
PSBWb2lkLCAoIkF0ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVl
T3duZXIuZ2V0KHZhbHVlKS0+bnVtU3VjY2Vzc29ycygpID09IDIsICgiQXQgIiwgKnZhbHVlKSk7
CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIFN3aXRjaDoKICAgICAg
ICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+bnVtQ2hpbGRyZW4oKSA9PSAxLCAoIkF0ICIsICp2
YWx1ZSkpOwogICAgICAgICAgICAgICAgIFZBTElEQVRFKGlzSW50KHZhbHVlLT5jaGlsZCgwKS0+
dHlwZSgpKSwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1
ZS0+dHlwZSgpID09IFZvaWQsICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAgICAgVkFM
SURBVEUodmFsdWUtPmFzPFN3aXRjaFZhbHVlPigpLT5oYXNGYWxsVGhyb3VnaCh2YWx1ZU93bmVy
LmdldCh2YWx1ZSkpLCAoIkF0ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIC8vIFRoaXMg
dmFsaWRhdGVzIHRoZSBzYW1lIHRoaW5nIGFzIGhhc0ZhbGxUaHJvdWdoLCBidXQgbW9yZSBleHBs
aWNpdGx5LiBXZSB3YW50IHRvCisgICAgICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRoYXQgaWYg
YW55b25lIHRyaWVzIHRvIGNoYW5nZSB0aGUgZGVmaW5pdGlvbiBvZiBoYXNGYWxsVGhyb3VnaCwg
dGhleQorICAgICAgICAgICAgICAgIC8vIHdpbGwgZmVlbCBzb21lIHBhaW4gaGVyZSwgc2luY2Ug
dGhpcyBpcyBmdW5kYW1lbnRhbC4KKyAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZU93bmVy
LmdldCh2YWx1ZSktPm51bVN1Y2Nlc3NvcnMoKSA9PSB2YWx1ZS0+YXM8U3dpdGNoVmFsdWU+KCkt
Pm51bUNhc2VWYWx1ZXMoKSArIDEsICgiQXQgIiwgKnZhbHVlKSk7CiAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1ZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1
ZS5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Zh
bHVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksOSArMjksOSBAQAogI2lmIEVOQUJMRShCM19K
SVQpCiAKICNpbmNsdWRlICJCM0FyZ3VtZW50UmVnVmFsdWUuaCIKKyNpbmNsdWRlICJCM0Jhc2lj
QmxvY2tJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNCb3R0b21Qcm92aWRlci5oIgogI2luY2x1ZGUg
IkIzQ0NhbGxWYWx1ZS5oIgotI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAi
QjNNZW1vcnlWYWx1ZS5oIgogI2luY2x1ZGUgIkIzT3JpZ2luRHVtcC5oIgogI2luY2x1ZGUgIkIz
UHJvY2VkdXJlSW5saW5lcy5oIgpAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIkIzVmFsdWVL
ZXlJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNWYXJpYWJsZVZhbHVlLmgiCiAjaW5jbHVkZSA8d3Rm
L0NvbW1hUHJpbnRlci5oPgorI2luY2x1ZGUgPHd0Zi9MaXN0RHVtcC5oPgogI2luY2x1ZGUgPHd0
Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsK
QEAgLTEyNSw2ICsxMjYsNTAgQEAgdm9pZCBWYWx1ZTo6cmVwbGFjZVdpdGhQaGkoKQogICAgIHRo
aXMtPm1faW5kZXggPSBpbmRleDsKIH0KIAordm9pZCBWYWx1ZTo6cmVwbGFjZVdpdGhKdW1wKEJh
c2ljQmxvY2sqIG93bmVyLCBjb25zdCBGcmVxdWVudGVkQmxvY2smIHRhcmdldCkKK3sKKyAgICBS
RUxFQVNFX0FTU0VSVChvd25lci0+bGFzdCgpID09IHRoaXMpOworICAgIAorICAgIHVuc2lnbmVk
IGluZGV4ID0gbV9pbmRleDsKKyAgICBPcmlnaW4gb3JpZ2luID0gbV9vcmlnaW47CisgICAgCisg
ICAgdGhpcy0+flZhbHVlKCk7CisgICAgCisgICAgbmV3ICh0aGlzKSBWYWx1ZShKdW1wLCBWb2lk
LCBvcmlnaW4pOworICAgIAorICAgIHRoaXMtPm93bmVyID0gb3duZXI7CisgICAgdGhpcy0+bV9p
bmRleCA9IGluZGV4OworICAgIAorICAgIG93bmVyLT5zZXRTdWNjZXNzb3JzKHRhcmdldCk7Cit9
CisKK3ZvaWQgVmFsdWU6OnJlcGxhY2VXaXRoT29wcyhCYXNpY0Jsb2NrKiBvd25lcikKK3sKKyAg
ICBSRUxFQVNFX0FTU0VSVChvd25lci0+bGFzdCgpID09IHRoaXMpOworICAgIAorICAgIHVuc2ln
bmVkIGluZGV4ID0gbV9pbmRleDsKKyAgICBPcmlnaW4gb3JpZ2luID0gbV9vcmlnaW47CisgICAg
CisgICAgdGhpcy0+flZhbHVlKCk7CisgICAgCisgICAgbmV3ICh0aGlzKSBWYWx1ZShPb3BzLCBW
b2lkLCBvcmlnaW4pOworICAgIAorICAgIHRoaXMtPm93bmVyID0gb3duZXI7CisgICAgdGhpcy0+
bV9pbmRleCA9IGluZGV4OworICAgIAorICAgIG93bmVyLT5jbGVhclN1Y2Nlc3NvcnMoKTsKK30K
Kwordm9pZCBWYWx1ZTo6cmVwbGFjZVdpdGhKdW1wKGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgdGFy
Z2V0KQoreworICAgIHJlcGxhY2VXaXRoSnVtcChvd25lciwgdGFyZ2V0KTsKK30KKwordm9pZCBW
YWx1ZTo6cmVwbGFjZVdpdGhPb3BzKCkKK3sKKyAgICByZXBsYWNlV2l0aE9vcHMob3duZXIpOwor
fQorCiB2b2lkIFZhbHVlOjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiB7CiAgICAgYm9v
bCBpc0NvbnN0YW50ID0gZmFsc2U7CkBAIC0xODksNiArMjM0LDE5IEBAIHZvaWQgVmFsdWU6OmRl
ZXBEdW1wKGNvbnN0IFByb2NlZHVyZSogcHIKICAgICBvdXQucHJpbnQoIikiKTsKIH0KIAordm9p
ZCBWYWx1ZTo6ZHVtcFN1Y2Nlc3NvcnMoY29uc3QgQmFzaWNCbG9jayogYmxvY2ssIFByaW50U3Ry
ZWFtJiBvdXQpIGNvbnN0Cit7CisgICAgLy8gTm90ZSB0aGF0IHRoaXMgbXVzdCBub3QgY3Jhc2gg
aWYgd2UgaGF2ZSB0aGUgd3JvbmcgbnVtYmVyIG9mIHN1Y2Nlc3NvcnMsIHNpbmNlIHNvbWVvbmUK
KyAgICAvLyBkZWJ1Z2dpbmcgYSBudW1iZXItb2Ytc3VjY2Vzc29ycyBidWcgd2lsbCBwcm9iYWJs
eSB3YW50IHRvIGR1bXAgSVIhCisgICAgCisgICAgaWYgKG9wY29kZSgpID09IEJyYW5jaCAmJiBi
bG9jay0+bnVtU3VjY2Vzc29ycygpID09IDIpIHsKKyAgICAgICAgb3V0LnByaW50KCJUaGVuOiIs
IGJsb2NrLT50YWtlbigpLCAiLCBFbHNlOiIsIGJsb2NrLT5ub3RUYWtlbigpKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICAKKyAgICBvdXQucHJpbnQobGlzdER1bXAoYmxvY2stPnN1Y2Nl
c3NvcnMoKSkpOworfQorCiBWYWx1ZSogVmFsdWU6Om5lZ0NvbnN0YW50KFByb2NlZHVyZSYpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC03MTMsNiArNzcxLDEwIEBAIFR5cGUgVmFs
dWU6OnR5cGVGb3IoT3Bjb2RlIG9wY29kZSwgVmFsdWUKICAgICAgICAgfQogICAgICAgICByZXR1
cm4gVm9pZDsKICAgICBjYXNlIE5vcDoKKyAgICBjYXNlIEp1bXA6CisgICAgY2FzZSBCcmFuY2g6
CisgICAgY2FzZSBSZXR1cm46CisgICAgY2FzZSBPb3BzOgogICAgICAgICByZXR1cm4gVm9pZDsK
ICAgICBjYXNlIFNlbGVjdDoKICAgICAgICAgQVNTRVJUKHNlY29uZENoaWxkKTsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuaAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBA
QAogCiAjaW5jbHVkZSAiQWlyQXJnLmgiCiAjaW5jbHVkZSAiQjNFZmZlY3RzLmgiCisjaW5jbHVk
ZSAiQjNGcmVxdWVudGVkQmxvY2suaCIKICNpbmNsdWRlICJCM09wY29kZS5oIgogI2luY2x1ZGUg
IkIzT3JpZ2luLmgiCiAjaW5jbHVkZSAiQjNTcGFyc2VDb2xsZWN0aW9uLmgiCkBAIC0xMDksOSAr
MTEwLDE5IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcGxhY2VXaXRoTm9wSWdub3JpbmdUeXBlKCk7
CiAgICAgCiAgICAgdm9pZCByZXBsYWNlV2l0aFBoaSgpOworICAgIAorICAgIC8vIFRoZXNlIHRy
YW5zZm9ybWF0aW9ucyBhcmUgb25seSB2YWxpZCBmb3IgdGVybWluYWxzLgorICAgIHZvaWQgcmVw
bGFjZVdpdGhKdW1wKEJhc2ljQmxvY2sqIG93bmVyLCBjb25zdCBGcmVxdWVudGVkQmxvY2smKTsK
KyAgICB2b2lkIHJlcGxhY2VXaXRoT29wcyhCYXNpY0Jsb2NrKiBvd25lcik7CisgICAgCisgICAg
Ly8gWW91IGNhbiB1c2UgdGhpcyBmb3JtIGlmIG93bmVycyBhcmUgdmFsaWQuIFRoZXkncmUgdXN1
YWxseSBub3QgdmFsaWQuCisgICAgdm9pZCByZXBsYWNlV2l0aEp1bXAoY29uc3QgRnJlcXVlbnRl
ZEJsb2NrJik7CisgICAgdm9pZCByZXBsYWNlV2l0aE9vcHMoKTsKIAogICAgIHZvaWQgZHVtcChQ
cmludFN0cmVhbSYpIGNvbnN0OwogICAgIHZvaWQgZGVlcER1bXAoY29uc3QgUHJvY2VkdXJlKiwg
UHJpbnRTdHJlYW0mKSBjb25zdDsKKyAgICAKKyAgICB2aXJ0dWFsIHZvaWQgZHVtcFN1Y2Nlc3Nv
cnMoY29uc3QgQmFzaWNCbG9jayosIFByaW50U3RyZWFtJikgY29uc3Q7CiAKICAgICAvLyBUaGlz
IGlzIGhvdyB5b3UgY2FzdCBWYWx1ZXMuIEZvciBleGFtcGxlLCBpZiB5b3Ugd2FudCB0byBkbyBz
b21ldGhpbmcgcHJvdmlkZWQgdGhhdCB3ZSBoYXZlIGEKICAgICAvLyBBcmd1bWVudFJlZ1ZhbHVl
LCB5b3UgY2FuIGRvOgpAQCAtMjIzLDcgKzIzNCw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzTGlr
ZU5vblplcm8oKSBjb25zdCB7IHJldHVybiBhc1RyaVN0YXRlKCkgPT0gVHJ1ZVRyaVN0YXRlOyB9
CiAKICAgICBFZmZlY3RzIGVmZmVjdHMoKSBjb25zdDsKLQorICAgIAogICAgIC8vIFRoaXMgcmV0
dXJucyBhIFZhbHVlS2V5IHRoYXQgZGVzY3JpYmVzIHRoYXQgdGhpcyBWYWx1ZSByZXR1cm5zIHdo
ZW4gaXQgZXhlY3V0ZXMuIFJldHVybnMgYW4KICAgICAvLyBlbXB0eSBWYWx1ZUtleSBpZiB0aGlz
IFZhbHVlIGlzIGltcHVyZS4gTm90ZSB0aGF0IGFuIG9wZXJhdGlvbiB0aGF0IHJldHVybnMgVm9p
ZCBjb3VsZCBzdGlsbAogICAgIC8vIGhhdmUgYSBub24tZW1wdHkgVmFsdWVLZXkuIFRoaXMgaGFw
cGVucyBmb3IgZXhhbXBsZSB3aXRoIENoZWNrIG9wZXJhdGlvbnMuCkBAIC0yNjQsNiArMjc1LDgg
QEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBGcmFtZVBvaW50ZXI6CiAgICAgICAgIGNhc2UgTm9w
OgogICAgICAgICBjYXNlIFBoaToKKyAgICAgICAgY2FzZSBKdW1wOgorICAgICAgICBjYXNlIE9v
cHM6CiAgICAgICAgICAgICBpZiAoVU5MSUtFTFkobnVtQXJncykpCiAgICAgICAgICAgICAgICAg
YmFkT3Bjb2RlKG9wY29kZSwgbnVtQXJncyk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTI4NCw2
ICsyOTcsOCBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIERvdWJsZVRvRmxvYXQ6CiAgICAgICAg
IGNhc2UgSVRvRjoKICAgICAgICAgY2FzZSBCaXR3aXNlQ2FzdDoKKyAgICAgICAgY2FzZSBCcmFu
Y2g6CisgICAgICAgIGNhc2UgUmV0dXJuOgogICAgICAgICAgICAgaWYgKFVOTElLRUxZKG51bUFy
Z3MgIT0gMSkpCiAgICAgICAgICAgICAgICAgYmFkT3Bjb2RlKG9wY29kZSwgbnVtQXJncyk7CiAg
ICAgICAgICAgICBicmVhazsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCShy
ZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNiBAQAogI2luY2x1ZGUgIkIzQ29tcHV0ZURpdmlz
aW9uTWFnaWMuaCIKICNpbmNsdWRlICJCM0NvbnN0MzJWYWx1ZS5oIgogI2luY2x1ZGUgIkIzQ29u
c3RQdHJWYWx1ZS5oIgotI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNF
ZmZlY3RzLmgiCiAjaW5jbHVkZSAiQjNNYXRoRXh0cmFzLmgiCiAjaW5jbHVkZSAiQjNNZW1vcnlW
YWx1ZS5oIgpAQCAtNDYsNyArNDUsMTAgQEAKICNpbmNsdWRlICJCM1Vwc2lsb25WYWx1ZS5oIgog
I2luY2x1ZGUgIkIzVmFsaWRhdGUuaCIKICNpbmNsdWRlICJCM1ZhbHVlSW5saW5lcy5oIgorI2lu
Y2x1ZGUgIkIzVmFyaWFibGVWYWx1ZS5oIgogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgorI2lu
Y2x1ZGUgIkZQUkluZm8uaCIKKyNpbmNsdWRlICJHUFJJbmZvLmgiCiAjaW5jbHVkZSAiSW5pdGlh
bGl6ZVRocmVhZGluZy5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKICNpbmNsdWRlICJMaW5r
QnVmZmVyLmgiCkBAIC01NCw2ICs1Niw3IEBACiAjaW5jbHVkZSAiVk0uaCIKICNpbmNsdWRlIDxj
bWF0aD4KICNpbmNsdWRlIDxzdHJpbmc+CisjaW5jbHVkZSA8d3RmL0xpc3REdW1wLmg+CiAjaW5j
bHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTnVtYmVyT2ZDb3Jlcy5oPgogI2luY2x1
ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KQEAgLTc1LDYgKzc4LDExIEBAIHVzaW5nIG5hbWVzcGFjZSBK
U0M6OkIzOwogCiBuYW1lc3BhY2UgewogCitib29sIHNob3VsZEJlVmVyYm9zZSgpCit7CisgICAg
cmV0dXJuIHNob3VsZER1bXBJUihCM01vZGUpOworfQorCiBTdGF0aWNMb2NrIGNyYXNoTG9jazsK
IAogLy8gTm90aGluZyBmYW5jeSBmb3Igbm93OyB3ZSBqdXN0IHVzZSB0aGUgZXhpc3RpbmcgV1RG
IGFzc2VydGlvbiBtYWNoaW5lcnkuCkBAIC0xOTQsNyArMjAyLDcgQEAgdm9pZCB0ZXN0NDIoKQog
ICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7CiAgICAgVmFsdWUqIGNvbnN0NDIgPSByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgNDIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIGNvbnN0NDIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjb25zdDQyKTsKIAogICAgIENIRUNLKGNv
bXBpbGVBbmRSdW48aW50Pihwcm9jKSA9PSA0Mik7CiB9CkBAIC0yMDQsNyArMjEyLDcgQEAgdm9p
ZCB0ZXN0TG9hZDQyKCkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIGludCB4ID0gNDI7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZCwgSW50MzIsIE9yaWdpbigpLApAQCAtMjIw
LDcgKzIyOCw3IEBAIHZvaWQgdGVzdExvYWRXaXRoT2Zmc2V0SW1wbChpbnQzMl90IG9mZnMKICAg
ICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICAgICAgaW50NjRf
dCB4ID0gLTQyOwogICAgICAgICBWYWx1ZSogYmFzZSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgICAgIHBy
b2MsIExvYWQsIEludDY0LCBPcmlnaW4oKSwKQEAgLTIzNSw3ICsyNDMsNyBAQCB2b2lkIHRlc3RM
b2FkV2l0aE9mZnNldEltcGwoaW50MzJfdCBvZmZzCiAgICAgICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgICAgIGludDMyX3QgeCA9IC00MjsKICAgICAgICAgVmFs
dWUqIGJhc2UgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2lu
KCksCkBAIC0yODgsNyArMjk2LDcgQEAgdm9pZCB0ZXN0QXJnKGludCBhcmd1bWVudCkKIHsKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjApKTsKIApAQCAtMjk5LDcgKzMwNyw3IEBAIHZvaWQgdGVzdFJldHVybkNv
bnN0NjQoaW50NjRfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIHZhbHVlKSk7CiAKQEAgLTMxMSw3ICszMTksNyBAQCB2b2lkIHRlc3RB
ZGRBcmcoaW50IGEpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIHZhbHVlLCB2YWx1ZSkpOwog
CkBAIC0zMjIsNyArMzMwLDcgQEAgdm9pZCB0ZXN0QWRkQXJncyhpbnQgYSwgaW50IGIpCiB7CiAg
ICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigp
LApAQCAtMzM2LDcgKzM0NCw3IEBAIHZvaWQgdGVzdEFkZEFyZ0ltbShpbnQgYSwgaW50IGIpCiB7
CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdp
bigpLApAQCAtMzUwLDcgKzM1OCw3IEBAIHZvaWQgdGVzdEFkZEltbUFyZyhpbnQgYSwgaW50IGIp
CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9y
aWdpbigpLApAQCAtMzcwLDcgKzM3OCw3IEBAIHZvaWQgdGVzdEFkZEFyZ01lbShpbnQ2NF90IGEs
IGludDY0X3QgYikKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApLAogICAgICAgICBsb2FkKTsKICAg
ICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVz
dWx0LCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
MCkpOwogCiAgICAgaW50NjRfdCBpbnB1dE91dHB1dCA9IGI7CiAgICAgQ0hFQ0soIWNvbXBpbGVB
bmRSdW48aW50NjRfdD4ocHJvYywgYSwgJmlucHV0T3V0cHV0KSk7CkBAIC0zODYsNyArMzk0LDcg
QEAgdm9pZCB0ZXN0QWRkTWVtQXJnKGludDY0X3QgYSwgaW50NjRfdCBiKQogICAgIFZhbHVlKiBy
ZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksCiAgICAg
ICAgIGxvYWQsCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsK
IAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgJmEsIGIpID09IGEgKyBi
KTsKIH0KQEAgLTQwMSw3ICs0MDksNyBAQCB2b2lkIHRlc3RBZGRJbW1NZW0oaW50NjRfdCBhLCBp
bnQ2NF90IGIpCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9y
aWdpbigpLCBhKSwKICAgICAgICAgbG9hZCk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZh
bHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgYWRkcmVzcyk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGludDY0X3QgaW5wdXRP
dXRwdXQgPSBiOwogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludD4ocHJvYywgJmlucHV0T3V0
cHV0KSk7CkBAIC00MTQsNyArNDIyLDcgQEAgdm9pZCB0ZXN0QWRkQXJnMzIoaW50IGEpCiAgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWUgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwg
dmFsdWUsIHZhbHVlKSk7CiAKQEAgLTQyNSw3ICs0MzMsNyBAQCB2b2lkIHRlc3RBZGRBcmdzMzIo
aW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgQWRkLCBPcmlnaW4oKSwKQEAgLTQ0OSw3ICs0NTcsNyBAQCB2b2lkIHRlc3RBZGRBcmdN
ZW0zMihpbnQzMl90IGEsIGludDMyX3QgCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAg
VmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4o
KSwgYXJndW1lbnQsIGxvYWQpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJv
YywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMy
VmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBpbnQzMl90IGlucHV0T3V0cHV0ID0g
YjsKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBhLCAmaW5wdXRPdXRw
dXQpKTsKQEAgLTQ2NSw3ICs0NzMsNyBAQCB2b2lkIHRlc3RBZGRNZW1BcmczMihpbnQzMl90IGEs
IGludDMyX3QgCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7CiAgICAgVmFs
dWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwg
bG9hZCwgYXJndW1lbnQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhjb21waWxl
QW5kUnVuPGludDMyX3Q+KHByb2MsICZhLCBiKSA9PSBhICsgYik7CiB9CkBAIC00ODAsNyArNDg4
LDcgQEAgdm9pZCB0ZXN0QWRkSW1tTWVtMzIoaW50MzJfdCBhLCBpbnQzMl90IAogICAgICAgICBy
b290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSksCiAgICAgICAg
IGxvYWQpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9y
aWdpbigpLCByZXN1bHQsIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAwKSk7CiAKICAgICBpbnQzMl90IGlucHV0T3V0cHV0ID0gYjsKICAgICBDSEVD
SyghY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsICZpbnB1dE91dHB1dCkpOwpAQCAtNDk1LDcgKzUw
Myw3IEBAIHZvaWQgdGVzdEFkZEFyZ1plcm9JbW1aRGVmKCkKICAgICAgICAgcHJvYywgVHJ1bmMs
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiBjb25zdFpl
cm8gPSByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKQEAg
LTUxNSw3ICs1MjMsNyBAQCB2b2lkIHRlc3RBZGRMb2FkVHdpY2UoKQogICAgICAgICBWYWx1ZSog
bG9hZCA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBM
b2FkLCBJbnQzMiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQ
dHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZ2YWx1ZSkpOwotICAgICAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgbG9hZCwgbG9hZCkpOwogCkBAIC01
MzIsNyArNTQwLDcgQEAgdm9pZCB0ZXN0QWRkQXJnRG91YmxlKGRvdWJsZSBhKQogICAgIFByb2Nl
ZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAg
VmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBBZGQsIE9yaWdpbigpLCB2YWx1ZSwgdmFsdWUpKTsKIApAQCAtNTQ1LDcgKzU1Myw3IEBAIHZv
aWQgdGVzdEFkZEFyZ3NEb3VibGUoZG91YmxlIGEsIGRvdWJsZSAKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBS
MCk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIxKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtNTU4LDcg
KzU2Niw3IEBAIHZvaWQgdGVzdEFkZEFyZ0ltbURvdWJsZShkb3VibGUgYSwgZG91YmwKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86
OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxDb25z
dERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEFkZCwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTU3MSw3ICs1NzksNyBA
QCB2b2lkIHRlc3RBZGRJbW1BcmdEb3VibGUoZG91YmxlIGEsIGRvdWJsCiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBw
ZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSog
dmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQs
IE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC01ODQsNyArNTkyLDcgQEAgdm9pZCB0
ZXN0QWRkSW1tc0RvdWJsZShkb3VibGUgYSwgZG91YmxlIAogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxD
b25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHZhbHVlQiA9
IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7
CiAKQEAgLTYwMCw3ICs2MDgsNyBAQCB2b2lkIHRlc3RBZGRBcmdGbG9hdChmbG9hdCBhKQogICAg
IFZhbHVlKiBmbG9hdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNl
Q2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGZsb2F0VmFsdWUsIGZsb2F0VmFs
dWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
Qml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwog
CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJp
dHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhICsgYSkpKTsK
QEAgLTYxOCw3ICs2MjYsNyBAQCB2b2lkIHRlc3RBZGRBcmdzRmxvYXQoZmxvYXQgYSwgZmxvYXQg
YikKICAgICBWYWx1ZSogZmxvYXRWYWx1ZTIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQyaW50MzIpOwogICAgIFZhbHVlKiByZXN1
bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGZsb2F0VmFs
dWUxLCBmbG9hdFZhbHVlMik7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMy
X3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+
KGIpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgKyBiKSkpOwogfQpAQCAtNjMzLDcgKzY0MSw3
IEBAIHZvaWQgdGVzdEFkZEFyZ0ltbUZsb2F0KGZsb2F0IGEsIGZsb2F0IGIKICAgICBWYWx1ZSog
Y29uc3RWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdp
bigpLCBiKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBBZGQsIE9yaWdpbigpLCBmbG9hdFZhbHVlLCBjb25zdFZhbHVlKTsKICAgICBWYWx1ZSogcmVz
dWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4o
KSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRp
Y2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEp
KSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgKyBiKSkpOwogfQpAQCAtNjQ4LDcgKzY1Niw3IEBA
IHZvaWQgdGVzdEFkZEltbUFyZ0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIKICAgICBWYWx1ZSogY29u
c3RWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigp
LCBhKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBB
ZGQsIE9yaWdpbigpLCBjb25zdFZhbHVlLCBmbG9hdFZhbHVlKTsKICAgICBWYWx1ZSogcmVzdWx0
MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwg
cmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2Fs
KGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwg
Yml0d2lzZV9jYXN0PGludDMyX3Q+KGEgKyBiKSkpOwogfQpAQCAtNjYxLDcgKzY2OSw3IEBAIHZv
aWQgdGVzdEFkZEltbXNGbG9hdChmbG9hdCBhLCBmbG9hdCBiKQogICAgIFZhbHVlKiBjb25zdFZh
bHVlMiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBi
KTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQs
IE9yaWdpbigpLCBjb25zdFZhbHVlMSwgY29uc3RWYWx1ZTIpOwogICAgIFZhbHVlKiByZXN1bHQz
MiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBy
ZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwo
Y29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgKyBi
KSkpOwogfQpAQCAtNjc3LDcgKzY4NSw3IEBAIHZvaWQgdGVzdEFkZEFyZ0Zsb2F0V2l0aFVzZWxl
c3NEb3VibGVDb24KICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBBZGQsIE9yaWdpbigpLCBhc0RvdWJsZSwgYXNEb3VibGUpOwogICAgIFZhbHVlKiBmbG9h
dFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3Jp
Z2luKCksIHJlc3VsdCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQz
Mik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50
MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMy
X3Q+KGEgKyBhKSkpOwogfQpAQCAtNjk3LDcgKzcwNSw3IEBAIHZvaWQgdGVzdEFkZEFyZ3NGbG9h
dFdpdGhVc2VsZXNzRG91YmxlQ28KICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBhc0RvdWJsZTEsIGFzRG91YmxlMik7CiAgICAg
VmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVU
b0Zsb2F0LCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGls
ZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2Vf
Y2FzdDxpbnQzMl90PihiKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhICsgYikpKTsKIH0KQEAg
LTcxOSw3ICs3MjcsNyBAQCB2b2lkIHRlc3RBZGRBcmdzRmxvYXRXaXRoRWZmZWN0ZnVsRG91Ymxl
CiAgICAgVmFsdWUqIGRvdWJsZUFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMik7CiAgICAgcm9vdC0+
YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgZG91
YmxlQWRkcmVzcyk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJlc3VsdDMyKTsKIAogICAgIGRvdWJsZSBlZmZlY3QgPSAwOwogICAgIENIRUNLKGlzSWRlbnRp
Y2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEp
LCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYiksICZlZmZlY3QpLCBiaXR3aXNlX2Nhc3Q8aW50MzJf
dD4oYSArIGIpKSk7CkBAIC03MzIsNyArNzQwLDcgQEAgdm9pZCB0ZXN0TXVsQXJnKGludCBhKQog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVl
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigp
LCByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdp
bigpLCB2YWx1ZSwgdmFsdWUpKTsKIApAQCAtNzU5LDcgKzc2Nyw3IEBAIHZvaWQgdGVzdE11bEFy
Z1N0b3JlKGludCBhKQogICAgICAgICBwcm9jLCBTdG9yZSwgT3JpZ2luKCksIG11bCwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAmbXVsU2xv
dCkpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgQ0hF
Q0soIWNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCBhKSk7CkBAIC03NzQsNyArNzgyLDcgQEAgdm9p
ZCB0ZXN0TXVsQWRkQXJnKGludCBhKQogICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCiAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjApKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQs
IE9yaWdpbigpLApAQCAtNzg4LDcgKzc5Niw3IEBAIHZvaWQgdGVzdE11bEFyZ3MoaW50IGEsIGlu
dCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTXVs
LCBPcmlnaW4oKSwKQEAgLTgwMiw3ICs4MTAsNyBAQCB2b2lkIHRlc3RNdWxBcmdJbW0oaW50NjRf
dCBhLCBpbnQ2NF90IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBNdWwsIE9yaWdpbigpLApAQCAtODE2LDcgKzgyNCw3IEBAIHZvaWQgdGVzdE11bElt
bUFyZyhpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBNdWwsIE9yaWdpbigpLApAQCAtODMwLDcgKzgzOCw3IEBAIHZvaWQgdGVzdE11
bEFyZ3MzMihpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBNdWwsIE9yaWdpbigpLApAQCAtODUzLDcgKzg2MSw3IEBAIHZvaWQgdGVz
dE11bExvYWRUd2ljZSgpCiAgICAgICAgIFZhbHVlKiBsb2FkID0gcm9vdC0+YXBwZW5kTmV3PE1l
bW9yeVZhbHVlPigKICAgICAgICAgICAgIHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwKICAg
ICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
JnZhbHVlKSk7Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWws
IE9yaWdpbigpLCBsb2FkLCBsb2FkKSk7CiAKQEAgLTg3NSw3ICs4ODMsNyBAQCB2b2lkIHRlc3RN
dWxBZGRBcmdzTGVmdCgpCiAgICAgVmFsdWUqIGFyZzIgPSByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMik7CiAgICAg
VmFsdWUqIG11bHRpcGxpZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3Jp
Z2luKCksIGFyZzAsIGFyZzEpOwogICAgIFZhbHVlKiBhZGRlZCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgbXVsdGlwbGllZCwgYXJnMik7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBh
ZGRlZCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC04OTksNyArOTA3
LDcgQEAgdm9pZCB0ZXN0TXVsQWRkQXJnc1JpZ2h0KCkKICAgICBWYWx1ZSogYXJnMiA9IHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIyKTsKICAgICBWYWx1ZSogbXVsdGlwbGllZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgYXJnMSwgYXJnMik7CiAgICAgVmFsdWUqIGFkZGVkID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBhcmcwLCBtdWx0aXBs
aWVkKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBhZGRlZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIGFkZGVkKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7
CiAKQEAgLTkyNiw3ICs5MzQsNyBAQCB2b2lkIHRlc3RNdWxBZGRBcmdzTGVmdDMyKCkKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjIpKTsKICAgICBWYWx1ZSogbXVsdGlwbGllZCA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgYXJnMCwgYXJnMSk7CiAgICAgVmFsdWUq
IGFkZGVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBtdWx0
aXBsaWVkLCBhcmcyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBp
bGUocHJvYyk7CiAKQEAgLTk1Myw3ICs5NjEsNyBAQCB2b2lkIHRlc3RNdWxBZGRBcmdzUmlnaHQz
MigpCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKSk7CiAgICAgVmFsdWUqIG11bHRpcGxpZWQgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGFyZzEsIGFyZzIpOwog
ICAgIFZhbHVlKiBhZGRlZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmln
aW4oKSwgYXJnMCwgbXVsdGlwbGllZCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CiAKICAgICBhdXRvIGNv
ZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC05NzcsNyArOTg1LDcgQEAgdm9pZCB0ZXN0TXVsU3Vi
QXJnc0xlZnQoKQogICAgIFZhbHVlKiBhcmcyID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpOwogICAgIFZhbHVl
KiBtdWx0aXBsaWVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigp
LCBhcmcwLCBhcmcxKTsKICAgICBWYWx1ZSogYWRkZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIFN1YiwgT3JpZ2luKCksIG11bHRpcGxpZWQsIGFyZzIpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQp
OwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAtMTAwMSw3ICsxMDA5LDcg
QEAgdm9pZCB0ZXN0TXVsU3ViQXJnc1JpZ2h0KCkKICAgICBWYWx1ZSogYXJnMiA9IHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIyKTsKICAgICBWYWx1ZSogbXVsdGlwbGllZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgTXVsLCBPcmlnaW4oKSwgYXJnMSwgYXJnMik7CiAgICAgVmFsdWUqIGFkZGVkID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBhcmcwLCBtdWx0aXBsaWVk
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBhZGRlZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIGFkZGVkKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAK
QEAgLTEwMjgsNyArMTAzNiw3IEBAIHZvaWQgdGVzdE11bFN1YkFyZ3NMZWZ0MzIoKQogICAgICAg
ICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMikpOwogICAgIFZhbHVlKiBtdWx0aXBsaWVkID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBhcmcwLCBhcmcxKTsKICAgICBWYWx1ZSog
YWRkZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIG11bHRp
cGxpZWQsIGFyZzIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIGFkZGVkKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGls
ZShwcm9jKTsKIApAQCAtMTA1NSw3ICsxMDYzLDcgQEAgdm9pZCB0ZXN0TXVsU3ViQXJnc1JpZ2h0
MzIoKQogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMikpOwogICAgIFZhbHVlKiBtdWx0aXBsaWVkID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBhcmcxLCBhcmcyKTsK
ICAgICBWYWx1ZSogYWRkZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3Jp
Z2luKCksIGFyZzAsIG11bHRpcGxpZWQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOwogCiAgICAgYXV0byBj
b2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAtMTA3OSw3ICsxMDg3LDcgQEAgdm9pZCB0ZXN0TXVs
TmVnQXJncygpCiAgICAgVmFsdWUqIG11bHRpcGxpZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIE11bCwgT3JpZ2luKCksIGFyZzAsIGFyZzEpOwogICAgIFZhbHVlKiB6ZXJvID0gcm9v
dC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApOwogICAgIFZhbHVl
KiBhZGRlZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgemVy
bywgbXVsdGlwbGllZCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21w
aWxlKHByb2MpOwogCkBAIC0xMTAzLDcgKzExMTEsNyBAQCB2b2lkIHRlc3RNdWxOZWdBcmdzMzIo
KQogICAgIFZhbHVlKiBtdWx0aXBsaWVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBN
dWwsIE9yaWdpbigpLCBhcmcwLCBhcmcxKTsKICAgICBWYWx1ZSogemVybyA9IHJvb3QtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKTsKICAgICBWYWx1ZSogYWRkZWQg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIHplcm8sIG11bHRp
cGxpZWQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIGFkZGVkKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9j
KTsKIApAQCAtMTEyMCw3ICsxMTI4LDcgQEAgdm9pZCB0ZXN0TXVsQXJnRG91YmxlKGRvdWJsZSBh
KQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCB2YWx1ZSwgdmFsdWUpKTsKIApAQCAtMTEzMyw3
ICsxMTQxLDcgQEAgdm9pZCB0ZXN0TXVsQXJnc0RvdWJsZShkb3VibGUgYSwgZG91YmxlIAogICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5m
bzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjEpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikp
OwogCkBAIC0xMTQ2LDcgKzExNTQsNyBAQCB2b2lkIHRlc3RNdWxBcmdJbW1Eb3VibGUoZG91Ymxl
IGEsIGRvdWJsCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBW
YWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290
LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBA
IC0xMTU5LDcgKzExNjcsNyBAQCB2b2lkIHRlc3RNdWxJbW1BcmdEb3VibGUoZG91YmxlIGEsIGRv
dWJsCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSog
dmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBhKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC0xMTcy
LDcgKzExODAsNyBAQCB2b2lkIHRlc3RNdWxJbW1zRG91YmxlKGRvdWJsZSBhLCBkb3VibGUgCiAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVB
ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsK
ICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBiKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4o
KSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTE4OCw3ICsxMTk2LDcgQEAgdm9pZCB0ZXN0TXVs
QXJnRmxvYXQoZmxvYXQgYSkKICAgICBWYWx1ZSogZmxvYXRWYWx1ZSA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBW
YWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigp
LCBmbG9hdFZhbHVlLCBmbG9hdFZhbHVlKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdDMyKTsKIAogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFu
ZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nh
c3Q8aW50MzJfdD4oYSAqIGEpKSk7CkBAIC0xMjA2LDcgKzEyMTQsNyBAQCB2b2lkIHRlc3RNdWxB
cmdzRmxvYXQoZmxvYXQgYSwgZmxvYXQgYikKICAgICBWYWx1ZSogZmxvYXRWYWx1ZTIgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQy
aW50MzIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IE11bCwgT3JpZ2luKCksIGZsb2F0VmFsdWUxLCBmbG9hdFZhbHVlMik7CiAgICAgVmFsdWUqIHJl
c3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2lu
KCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50
aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90Pihh
KSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgKiBi
KSkpOwogfQpAQCAtMTIyMSw3ICsxMjI5LDcgQEAgdm9pZCB0ZXN0TXVsQXJnSW1tRmxvYXQoZmxv
YXQgYSwgZmxvYXQgYgogICAgIFZhbHVlKiBjb25zdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENv
bnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiByZXN1bHQgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGZsb2F0VmFsdWUsIGNv
bnN0VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9j
LCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAqIGIp
KSk7CiB9CkBAIC0xMjM2LDcgKzEyNDQsNyBAQCB2b2lkIHRlc3RNdWxJbW1BcmdGbG9hdChmbG9h
dCBhLCBmbG9hdCBiCiAgICAgVmFsdWUqIGNvbnN0VmFsdWUgPSByb290LT5hcHBlbmROZXc8Q29u
c3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgY29uc3RWYWx1ZSwgZmxv
YXRWYWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQz
Mik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2Ms
IGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhICogYikp
KTsKIH0KQEAgLTEyNDksNyArMTI1Nyw3IEBAIHZvaWQgdGVzdE11bEltbXNGbG9hdChmbG9hdCBh
LCBmbG9hdCBiKQogICAgIFZhbHVlKiBjb25zdFZhbHVlMiA9IHJvb3QtPmFwcGVuZE5ldzxDb25z
dEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBjb25zdFZhbHVlMSwgY29u
c3RWYWx1ZTIpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9j
KSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgKiBiKSkpOwogfQpAQCAtMTI2NSw3ICsxMjczLDcg
QEAgdm9pZCB0ZXN0TXVsQXJnRmxvYXRXaXRoVXNlbGVzc0RvdWJsZUNvbgogICAgIFZhbHVlKiBy
ZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGFzRG91
YmxlLCBhc0RvdWJsZSk7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICBWYWx1
ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBP
cmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hF
Q0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAqIGEpKSk7CiB9CkBAIC0xMjg1
LDcgKzEyOTMsNyBAQCB2b2lkIHRlc3RNdWxBcmdzRmxvYXRXaXRoVXNlbGVzc0RvdWJsZUNvCiAg
ICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmln
aW4oKSwgYXNEb3VibGUxLCBhc0RvdWJsZTIpOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIHJlc3Vs
dCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBC
aXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMy
KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywg
Yml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oYSAqIGIpKSk7CiB9CkBAIC0xMzA3LDcgKzEzMTUsNyBAQCB2b2lk
IHRlc3RNdWxBcmdzRmxvYXRXaXRoRWZmZWN0ZnVsRG91YmxlCiAgICAgVmFsdWUqIGRvdWJsZU11
bHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMik7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVl
Pihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgZG91YmxlTXVscmVzcyk7CiAgICAgVmFs
dWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwg
T3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIGRv
dWJsZSBlZmZlY3QgPSAwOwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50
MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJf
dD4oYiksICZlZmZlY3QpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAqIGIpKSk7CkBAIC0xMzE5
LDcgKzEzMjcsNyBAQCB2b2lkIHRlc3REaXZBcmdEb3VibGUoZG91YmxlIGEpCiAgICAgUHJvY2Vk
dXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBW
YWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IERpdiwgT3JpZ2luKCksIHZhbHVlLCB2YWx1ZSkpOwogCkBAIC0xMzMyLDcgKzEzNDAsNyBAQCB2
b2lkIHRlc3REaXZBcmdzRG91YmxlKGRvdWJsZSBhLCBkb3VibGUgCiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQ
UjApOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMSk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIERpdiwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTEzNDUs
NyArMTM1Myw3IEBAIHZvaWQgdGVzdERpdkFyZ0ltbURvdWJsZShkb3VibGUgYSwgZG91YmwKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEg
PSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUklu
Zm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxD
b25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIERpdiwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTEzNTgsNyArMTM2
Niw3IEBAIHZvaWQgdGVzdERpdkltbUFyZ0RvdWJsZShkb3VibGUgYSwgZG91YmwKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290
LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZh
bHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IERpdiwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTEzNzEsNyArMTM3OSw3IEBA
IHZvaWQgdGVzdERpdkltbXNEb3VibGUoZG91YmxlIGEsIGRvdWJsZSAKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBl
bmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiB2
YWx1ZUIgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IGIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEaXYsIE9yaWdpbigpLCB2YWx1ZUEsIHZh
bHVlQikpOwogCkBAIC0xMzg3LDcgKzEzOTUsNyBAQCB2b2lkIHRlc3REaXZBcmdGbG9hdChmbG9h
dCBhKQogICAgIFZhbHVlKiBmbG9hdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiByZXN1bHQg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERpdiwgT3JpZ2luKCksIGZsb2F0VmFsdWUs
IGZsb2F0VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0MzIpOwogCiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+
KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90Pihh
IC8gYSkpKTsKQEAgLTE0MDUsNyArMTQxMyw3IEBAIHZvaWQgdGVzdERpdkFyZ3NGbG9hdChmbG9h
dCBhLCBmbG9hdCBiKQogICAgIFZhbHVlKiBmbG9hdFZhbHVlMiA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDJpbnQzMik7CiAgICAg
VmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRGl2LCBPcmlnaW4o
KSwgZmxvYXRWYWx1ZTEsIGZsb2F0VmFsdWUyKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVB
bmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nh
c3Q8aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAvIGIpKSk7CiB9CkBAIC0x
NDIwLDcgKzE0MjgsNyBAQCB2b2lkIHRlc3REaXZBcmdJbW1GbG9hdChmbG9hdCBhLCBmbG9hdCBi
CiAgICAgVmFsdWUqIGNvbnN0VmFsdWUgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgYik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSwgY29uc3RWYWx1ZSk7CiAg
ICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNl
Q2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBD
SEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2Fz
dDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhIC8gYikpKTsKIH0KQEAgLTE0
MzUsNyArMTQ0Myw3IEBAIHZvaWQgdGVzdERpdkltbUFyZ0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIK
ICAgICBWYWx1ZSogY29uc3RWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+
KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBEaXYsIE9yaWdpbigpLCBjb25zdFZhbHVlLCBmbG9hdFZhbHVlKTsKICAg
ICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VD
YXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENI
RUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0
PGludDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLyBiKSkpOwogfQpAQCAtMTQ0
OCw3ICsxNDU2LDcgQEAgdm9pZCB0ZXN0RGl2SW1tc0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIpCiAg
ICAgVmFsdWUqIGNvbnN0VmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIERpdiwgT3JpZ2luKCksIGNvbnN0VmFsdWUxLCBjb25zdFZhbHVlMik7CiAg
ICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNl
Q2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBD
SEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MpLCBiaXR3aXNlX2Nh
c3Q8aW50MzJfdD4oYSAvIGIpKSk7CiB9CkBAIC0xNDU4LDcgKzE0NjYsNyBAQCB2b2lkIHRlc3RN
b2RBcmdEb3VibGUoZG91YmxlIGEpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50
RlBSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIHZhbHVlLCB2
YWx1ZSkpOwogCkBAIC0xNDcxLDcgKzE0NzksNyBAQCB2b2lkIHRlc3RNb2RBcmdzRG91YmxlKGRv
dWJsZSBhLCBkb3VibGUgCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
ICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiB2YWx1ZUIg
PSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUklu
Zm86OmFyZ3VtZW50RlBSMSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2lu
KCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTE0ODQsNyArMTQ5Miw3IEBAIHZvaWQgdGVzdE1v
ZEFyZ0ltbURvdWJsZShkb3VibGUgYSwgZG91YmwKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAg
VmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgYik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIHZh
bHVlQSwgdmFsdWVCKSk7CiAKQEAgLTE0OTcsNyArMTUwNSw3IEBAIHZvaWQgdGVzdE1vZEltbUFy
Z0RvdWJsZShkb3VibGUgYSwgZG91YmwKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50
RlBSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIHZhbHVlQSwg
dmFsdWVCKSk7CiAKQEAgLTE1MTAsNyArMTUxOCw3IEBAIHZvaWQgdGVzdE1vZEltbXNEb3VibGUo
ZG91YmxlIGEsIGRvdWJsZSAKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8
Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBNb2QsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC0xNTI2LDcgKzE1
MzQsNyBAQCB2b2lkIHRlc3RNb2RBcmdGbG9hdChmbG9hdCBhKQogICAgIFZhbHVlKiBmbG9hdFZh
bHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCks
IGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIE1vZCwgT3JpZ2luKCksIGZsb2F0VmFsdWUsIGZsb2F0VmFsdWUpOwogICAgIFZhbHVl
KiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9y
aWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAKICAgICBDSEVDSyhp
c0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQz
Ml90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihzdGF0aWNfY2FzdDxmbG9hdD4oZm1vZChh
LCBhKSkpKSk7CkBAIC0xNTQ0LDcgKzE1NTIsNyBAQCB2b2lkIHRlc3RNb2RBcmdzRmxvYXQoZmxv
YXQgYSwgZmxvYXQgYikKICAgICBWYWx1ZSogZmxvYXRWYWx1ZTIgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQyaW50MzIpOwogICAg
IFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2lu
KCksIGZsb2F0VmFsdWUxLCBmbG9hdFZhbHVlMik7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxl
QW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgYml0d2lzZV9j
YXN0PGludDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0PGZsb2F0
PihmbW9kKGEsIGIpKSkpKTsKIH0KQEAgLTE1NTksNyArMTU2Nyw3IEBAIHZvaWQgdGVzdE1vZEFy
Z0ltbUZsb2F0KGZsb2F0IGEsIGZsb2F0IGIKICAgICBWYWx1ZSogY29uc3RWYWx1ZSA9IHJvb3Qt
PmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKICAgICBWYWx1
ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigpLCBm
bG9hdFZhbHVlLCBjb25zdFZhbHVlKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1
bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48
aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KHN0YXRpY19jYXN0PGZsb2F0PihmbW9kKGEsIGIpKSkpKTsKIH0KQEAgLTE1NzQsNyAr
MTU4Miw3IEBAIHZvaWQgdGVzdE1vZEltbUFyZ0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIKICAgICBW
YWx1ZSogY29uc3RWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBNb2QsIE9yaWdpbigpLCBjb25zdFZhbHVlLCBmbG9hdFZhbHVlKTsKICAgICBWYWx1
ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBP
cmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlz
SWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMy
X3Q+KGIpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0PGZsb2F0PihmbW9kKGEs
IGIpKSkpKTsKIH0KQEAgLTE1ODcsNyArMTU5NSw3IEBAIHZvaWQgdGVzdE1vZEltbXNGbG9hdChm
bG9hdCBhLCBmbG9hdCBiKQogICAgIFZhbHVlKiBjb25zdFZhbHVlMiA9IHJvb3QtPmFwcGVuZE5l
dzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKICAgICBWYWx1ZSogcmVzdWx0
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigpLCBjb25zdFZhbHVl
MSwgY29uc3RWYWx1ZTIpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90
Pihwcm9jKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0PGZsb2F0PihmbW9kKGEs
IGIpKSkpKTsKIH0KQEAgLTE2MDMsNyArMTYxMSw3IEBAIHZvaWQgdGVzdERpdkFyZ0Zsb2F0V2l0
aFVzZWxlc3NEb3VibGVDb24KICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBEaXYsIE9yaWdpbigpLCBhc0RvdWJsZSwgYXNEb3VibGUpOwogICAgIFZhbHVl
KiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9h
dCwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRS
dW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0
PGludDMyX3Q+KGEgLyBhKSkpOwogfQpAQCAtMTYyMyw3ICsxNjMxLDcgQEAgdm9pZCB0ZXN0RGl2
QXJnc0Zsb2F0V2l0aFVzZWxlc3NEb3VibGVDbwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIERpdiwgT3JpZ2luKCksIGFzRG91YmxlMSwgYXNEb3VibGUy
KTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCByZXN1bHQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9h
dFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNh
bChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwg
Yml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLyBiKSkp
OwogfQpAQCAtMTY0NSw3ICsxNjUzLDcgQEAgdm9pZCB0ZXN0RGl2QXJnc0Zsb2F0V2l0aEVmZmVj
dGZ1bERvdWJsZQogICAgIFZhbHVlKiBkb3VibGVEaXZyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpOwog
ICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCBy
ZXN1bHQsIGRvdWJsZURpdnJlc3MpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBkb3VibGUgZWZmZWN0ID0gMDsKICAgICBDSEVD
Syhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxp
bnQzMl90PihhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpLCAmZWZmZWN0KSwgYml0d2lzZV9j
YXN0PGludDMyX3Q+KGEgLyBiKSkpOwpAQCAtMTY1Nyw3ICsxNjY1LDcgQEAgdm9pZCB0ZXN0U3Vi
QXJnKGludCBhKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCB2YWx1ZSwgdmFsdWUpKTsKIApA
QCAtMTY2OCw3ICsxNjc2LDcgQEAgdm9pZCB0ZXN0U3ViQXJncyhpbnQgYSwgaW50IGIpCiB7CiAg
ICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTdWIsIE9yaWdpbigp
LApAQCAtMTY4Miw3ICsxNjkwLDcgQEAgdm9pZCB0ZXN0U3ViQXJnSW1tKGludDY0X3QgYSwgaW50
NjRfdCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
U3ViLCBPcmlnaW4oKSwKQEAgLTE3MDMsNyArMTcxMSw3IEBAIHZvaWQgdGVzdE5lZ1ZhbHVlU3Vi
T25lKGludCBhKQogICAgIFZhbHVlKiBuZWdBcmd1bWVudE1pbnVzT25lID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLAogICAgICAgICBuZWdBcmd1bWVudCwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBuZWdBcmd1bWVudE1pbnVzT25lKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgbmVnQXJndW1lbnRNaW51c09uZSk7CiAgICAgQ0hFQ0so
Y29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIGEpID09IC1hIC0gMSk7CiB9CiAKQEAgLTE3MTEsNyAr
MTcxOSw3IEBAIHZvaWQgdGVzdFN1YkltbUFyZyhpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2Vk
dXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTdWIsIE9yaWdpbigpLApAQCAtMTcz
MCw3ICsxNzM4LDcgQEAgdm9pZCB0ZXN0U3ViQXJnTWVtKGludDY0X3QgYSwgaW50NjRfdCBiKQog
ICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwKICAgICAgICAgbG9hZCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgYSwg
JmIpID09IGEgLSBiKTsKIH0KQEAgLTE3NDUsNyArMTc1Myw3IEBAIHZvaWQgdGVzdFN1Yk1lbUFy
ZyhpbnQ2NF90IGEsIGludDY0X3QgYikKICAgICAgICAgbG9hZCwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjEpKTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBP
cmlnaW4oKSwgcmVzdWx0LCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgMCkpOwogCiAgICAgaW50NjRfdCBpbnB1dE91dHB1dCA9IGE7CiAgICAgQ0hF
Q0soIWNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgJmlucHV0T3V0cHV0LCBiKSk7CkBAIC0x
NzYyLDcgKzE3NzAsNyBAQCB2b2lkIHRlc3RTdWJJbW1NZW0oaW50NjRfdCBhLCBpbnQ2NF90IGIp
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBh
KSwKICAgICAgICAgbG9hZCk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9j
LCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgYWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGludDY0X3QgaW5wdXRPdXRwdXQgPSBi
OwogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludD4ocHJvYywgJmlucHV0T3V0cHV0KSk7CkBA
IC0xNzc5LDcgKzE3ODcsNyBAQCB2b2lkIHRlc3RTdWJNZW1JbW0oaW50NjRfdCBhLCBpbnQ2NF90
IGIpCiAgICAgICAgIGxvYWQsCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+
KHByb2MsIE9yaWdpbigpLCBiKSk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihw
cm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgYWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGludDY0X3QgaW5wdXRPdXRwdXQg
PSBhOwogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludD4ocHJvYywgJmlucHV0T3V0cHV0KSk7
CkBAIC0xNzkxLDcgKzE3OTksNyBAQCB2b2lkIHRlc3RTdWJBcmdzMzIoaW50IGEsIGludCBiKQog
ewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU3ViLCBPcmln
aW4oKSwKQEAgLTE4MDksNyArMTgxNyw3IEBAIHZvaWQgdGVzdFN1YkFyZ0ltbTMyKGludCBhLCBp
bnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFN1
YiwgT3JpZ2luKCksCkBAIC0xODI1LDcgKzE4MzMsNyBAQCB2b2lkIHRlc3RTdWJJbW1BcmczMihp
bnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBw
cm9jLCBTdWIsIE9yaWdpbigpLApAQCAtMTg0Nyw3ICsxODU1LDcgQEAgdm9pZCB0ZXN0U3ViTWVt
QXJnMzIoaW50MzJfdCBhLCBpbnQzMl90IAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSkpOwogICAg
IFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2lu
KCksIGxvYWQsIGFyZ3VtZW50KTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHBy
b2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgaW50MzJfdCBpbnB1dE91dHB1dCA9
IGE7CiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgJmlucHV0T3V0cHV0
LCBiKSk7CkBAIC0xODYzLDcgKzE4NzEsNyBAQCB2b2lkIHRlc3RTdWJBcmdNZW0zMihpbnQzMl90
IGEsIGludDMyX3QgCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAg
VmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4o
KSwgYXJndW1lbnQsIGxvYWQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhjb21w
aWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGEsICZiKSA9PSBhIC0gYik7CiB9CkBAIC0xODc4LDcg
KzE4ODYsNyBAQCB2b2lkIHRlc3RTdWJJbW1NZW0zMihpbnQzMl90IGEsIGludDMyX3QgCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKSwKICAg
ICAgICAgbG9hZCk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9y
ZSwgT3JpZ2luKCksIHJlc3VsdCwgYWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGludDMyX3QgaW5wdXRPdXRwdXQgPSBiOwogICAg
IENIRUNLKCFjb21waWxlQW5kUnVuPGludD4ocHJvYywgJmlucHV0T3V0cHV0KSk7CkBAIC0xODk1
LDcgKzE5MDMsNyBAQCB2b2lkIHRlc3RTdWJNZW1JbW0zMihpbnQzMl90IGEsIGludDMyX3QgCiAg
ICAgICAgIGxvYWQsCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBiKSk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBT
dG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgYWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGludDMyX3QgaW5wdXRPdXRwdXQgPSBhOwog
ICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludD4ocHJvYywgJmlucHV0T3V0cHV0KSk7CkBAIC0x
OTE0LDcgKzE5MjIsNyBAQCB2b2lkIHRlc3ROZWdWYWx1ZVN1Yk9uZTMyKGludCBhKQogICAgIFZh
bHVlKiBuZWdBcmd1bWVudE1pbnVzT25lID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBT
dWIsIE9yaWdpbigpLAogICAgICAgICBuZWdBcmd1bWVudCwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBuZWdBcmd1bWVudE1pbnVz
T25lKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgbmVnQXJndW1lbnRNaW51c09uZSk7CiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+
KHByb2MsIGEpID09IC1hIC0gMSk7CiB9CiAKQEAgLTE5MjMsNyArMTkzMSw3IEBAIHZvaWQgdGVz
dFN1YkFyZ0RvdWJsZShkb3VibGUgYSkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1l
bnRGUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgdmFsdWUs
IHZhbHVlKSk7CiAKQEAgLTE5MzYsNyArMTk0NCw3IEBAIHZvaWQgdGVzdFN1YkFyZ3NEb3VibGUo
ZG91YmxlIGEsIGRvdWJsZSAKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIHZhbHVl
QiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBS
SW5mbzo6YXJndW1lbnRGUFIxKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmln
aW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTk0OSw3ICsxOTU3LDcgQEAgdm9pZCB0ZXN0
U3ViQXJnSW1tRG91YmxlKGRvdWJsZSBhLCBkb3VibAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAg
ICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBiKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwg
dmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTk2Miw3ICsxOTcwLDcgQEAgdm9pZCB0ZXN0U3ViSW1t
QXJnRG91YmxlKGRvdWJsZSBhLCBkb3VibAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJs
ZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1l
bnRGUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgdmFsdWVB
LCB2YWx1ZUIpKTsKIApAQCAtMTk3NSw3ICsxOTgzLDcgQEAgdm9pZCB0ZXN0U3ViSW1tc0RvdWJs
ZShkb3VibGUgYSwgZG91YmxlIAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5l
dzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAgICAgCkBAIC0xOTkx
LDcgKzE5OTksNyBAQCB2b2lkIHRlc3RTdWJBcmdGbG9hdChmbG9hdCBhKQogICAgIFZhbHVlKiBm
bG9hdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3Jp
Z2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIGZsb2F0VmFsdWUsIGZsb2F0VmFsdWUpOwogICAg
IFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNh
c3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAKICAgICBD
SEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2Fz
dDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhIC0gYSkpKTsKQEAgLTIwMDks
NyArMjAxNyw3IEBAIHZvaWQgdGVzdFN1YkFyZ3NGbG9hdChmbG9hdCBhLCBmbG9hdCBiKQogICAg
IFZhbHVlKiBmbG9hdFZhbHVlMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lz
ZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDJpbnQzMik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZTEsIGZs
b2F0VmFsdWUyKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJv
YywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBi
aXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAtIGIpKSk7CiB9CkBAIC0yMDI0LDcgKzIwMzIsNyBAQCB2
b2lkIHRlc3RTdWJBcmdJbW1GbG9hdChmbG9hdCBhLCBmbG9hdCBiCiAgICAgVmFsdWUqIGNvbnN0
VmFsdWUgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
Yik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3Vi
LCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSwgY29uc3RWYWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMy
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJl
c3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChj
b21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJp
dHdpc2VfY2FzdDxpbnQzMl90PihhIC0gYikpKTsKIH0KQEAgLTIwMzksNyArMjA0Nyw3IEBAIHZv
aWQgdGVzdFN1YkltbUFyZ0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIKICAgICBWYWx1ZSogY29uc3RW
YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBh
KTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIs
IE9yaWdpbigpLCBjb25zdFZhbHVlLCBmbG9hdFZhbHVlKTsKICAgICBWYWx1ZSogcmVzdWx0MzIg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVz
dWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNv
bXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0
d2lzZV9jYXN0PGludDMyX3Q+KGEgLSBiKSkpOwogfQpAQCAtMjA1Miw3ICsyMDYwLDcgQEAgdm9p
ZCB0ZXN0U3ViSW1tc0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIpCiAgICAgVmFsdWUqIGNvbnN0VmFs
dWUyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIp
OwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1Yiwg
T3JpZ2luKCksIGNvbnN0VmFsdWUxLCBjb25zdFZhbHVlMik7CiAgICAgVmFsdWUqIHJlc3VsdDMy
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJl
c3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChj
b21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAtIGIp
KSk7CiB9CkBAIC0yMDY4LDcgKzIwNzYsNyBAQCB2b2lkIHRlc3RTdWJBcmdGbG9hdFdpdGhVc2Vs
ZXNzRG91YmxlQ29uCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgU3ViLCBPcmlnaW4oKSwgYXNEb3VibGUsIGFzRG91YmxlKTsKICAgICBWYWx1ZSogZmxv
YXRSZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9y
aWdpbigpLCByZXN1bHQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGlu
dDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQz
Ml90PihhIC0gYSkpKTsKIH0KQEAgLTIwODgsNyArMjA5Niw3IEBAIHZvaWQgdGVzdFN1YkFyZ3NG
bG9hdFdpdGhVc2VsZXNzRG91YmxlQ28KICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBhc0RvdWJsZTEsIGFzRG91YmxlMik7CiAg
ICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3Vi
bGVUb0Zsb2F0LCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1
bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29t
cGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdp
c2VfY2FzdDxpbnQzMl90PihiKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhIC0gYikpKTsKIH0K
QEAgLTIxMTAsNyArMjExOCw3IEBAIHZvaWQgdGVzdFN1YkFyZ3NGbG9hdFdpdGhFZmZlY3RmdWxE
b3VibGUKICAgICBWYWx1ZSogZG91YmxlU3VicmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKTsKICAgICBy
b290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0
LCBkb3VibGVTdWJyZXNzKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0MzIpOwogCiAgICAgZG91YmxlIGVmZmVjdCA9IDA7CiAgICAgQ0hFQ0soaXNJ
ZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJf
dD4oYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSwgJmVmZmVjdCksIGJpdHdpc2VfY2FzdDxp
bnQzMl90PihhIC0gYikpKTsKQEAgLTIxMjEsNyArMjEyOSw3IEBAIHZvaWQgdGVzdEJpdEFuZEFy
Z3MoaW50NjRfdCBhLCBpbnQ2NF90IGIKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0yMTM2LDcgKzIxNDQsNyBAQCB2
b2lkIHRlc3RCaXRBbmRTYW1lQXJnKGludDY0X3QgYSkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVu
dCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BS
SW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBw
cm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMjE1MCw3ICsyMTU4LDcgQEAgdm9pZCB0ZXN0Qml0
QW5kSW1tcyhpbnQ2NF90IGEsIGludDY0X3QgYgogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTIxNjQsNyArMjE3Miw3
IEBAIHZvaWQgdGVzdEJpdEFuZEFyZ0ltbShpbnQ2NF90IGEsIGludDY0X3QKIHsKICAgICBQcm9j
ZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBA
IC0yMTc4LDcgKzIxODYsNyBAQCB2b2lkIHRlc3RCaXRBbmRJbW1BcmcoaW50NjRfdCBhLCBpbnQ2
NF90CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRB
bmQsIE9yaWdpbigpLApAQCAtMjE5Niw3ICsyMjA0LDcgQEAgdm9pZCB0ZXN0Qml0QW5kQml0QW5k
QXJnSW1tSW1tKGludDY0X3QgYQogICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFs
dWU+KHByb2MsIE9yaWdpbigpLCBiKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTIyMTQsNyArMjIyMiw3IEBAIHZvaWQgdGVz
dEJpdEFuZEltbUJpdEFuZEFyZ0ltbShpbnQ2NF90IGEKICAgICAgICAgcHJvYywgQml0QW5kLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYykpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0yMjI4LDcgKzIyMzYs
NyBAQCB2b2lkIHRlc3RCaXRBbmRBcmdzMzIoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVy
ZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTIy
NDgsNyArMjI1Niw3IEBAIHZvaWQgdGVzdEJpdEFuZFNhbWVBcmczMihpbnQgYSkKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJp
dEFuZCwgT3JpZ2luKCksCkBAIC0yMjYyLDcgKzIyNzAsNyBAQCB2b2lkIHRlc3RCaXRBbmRJbW1z
MzIoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTIyNzYsNyArMjI4NCw3IEBAIHZvaWQgdGVz
dEJpdEFuZEFyZ0ltbTMyKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0yMjkyLDcgKzIzMDAs
NyBAQCB2b2lkIHRlc3RCaXRBbmRJbW1BcmczMihpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2Vk
dXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAt
MjMxNCw3ICsyMzIyLDcgQEAgdm9pZCB0ZXN0Qml0QW5kQml0QW5kQXJnSW1tSW1tMzIoaW50IGEs
IAogICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjApKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIGIpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBC
aXRBbmQsIE9yaWdpbigpLApAQCAtMjMzNCw3ICsyMzQyLDcgQEAgdm9pZCB0ZXN0Qml0QW5kSW1t
Qml0QW5kQXJnSW1tMzIoaW50IGEsIAogICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigp
LAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGMpKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
CiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMjM2MSw3ICsyMzY5LDcg
QEAgdm9pZCB0ZXN0Qml0QW5kV2l0aE1hc2tSZXR1cm5zQm9vbGVhbnMoaQogICAgICAgICByb290
LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTUpKTsKIAotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNl
bGVjdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHNlbGVjdCk7CiAKICAgICBpbnQ2NF90IGV4cGVjdGVkID0gKGEgPT0gYikgPyAtNSA6
IDQyOwogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgYSwgYikgPT0gZXhw
ZWN0ZWQpOwpAQCAtMjM3OCw3ICsyMzg2LDcgQEAgdm9pZCB0ZXN0Qml0QW5kQXJnRG91YmxlKGRv
dWJsZSBhKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFs
dWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdEFuZCwgT3JpZ2luKCksIGFyZ3VtZW50LCBhcmd1
bWVudCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBp
bGVBbmRSdW48ZG91YmxlPihwcm9jLCBhKSwgYml0QW5kRG91YmxlKGEsIGEpKSk7CiB9CkBAIC0y
MzkwLDcgKzIzOTgsNyBAQCB2b2lkIHRlc3RCaXRBbmRBcmdzRG91YmxlKGRvdWJsZSBhLCBkb3Vi
CiAgICAgVmFsdWUqIGFyZ3VtZW50QSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogYXJn
dW1lbnRCID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBGUFJJbmZvOjphcmd1bWVudEZQUjEpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEJpdEFuZCwgT3JpZ2luKCksIGFyZ3VtZW50QSwgYXJndW1lbnRC
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFu
ZFJ1bjxkb3VibGU+KHByb2MsIGEsIGIpLCBiaXRBbmREb3VibGUoYSwgYikpKTsKIH0KQEAgLTI0
MDIsNyArMjQxMCw3IEBAIHZvaWQgdGVzdEJpdEFuZEFyZ0ltbURvdWJsZShkb3VibGUgYSwgZG8K
ICAgICBWYWx1ZSogYXJndW1lbnRBID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiBhcmd1
bWVudEIgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IGIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJp
dEFuZCwgT3JpZ2luKCksIGFyZ3VtZW50QSwgYXJndW1lbnRCKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQp
OwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIGEs
IGIpLCBiaXRBbmREb3VibGUoYSwgYikpKTsKIH0KQEAgLTI0MTQsNyArMjQyMiw3IEBAIHZvaWQg
dGVzdEJpdEFuZEltbXNEb3VibGUoZG91YmxlIGEsIGRvdWIKICAgICBWYWx1ZSogYXJndW1lbnRB
ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsK
ICAgICBWYWx1ZSogYXJndW1lbnRCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBiKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBCaXRBbmQsIE9yaWdpbigpLCBhcmd1bWVudEEsIGFyZ3VtZW50Qik7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48
ZG91YmxlPihwcm9jKSwgYml0QW5kRG91YmxlKGEsIGIpKSk7CiB9CkBAIC0yNDMyLDcgKzI0NDAs
NyBAQCB2b2lkIHRlc3RCaXRBbmRBcmdGbG9hdChmbG9hdCBhKQogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwKSkpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEJpdEFuZCwgT3JpZ2luKCksIGFyZ3VtZW50LCBhcmd1bWVudCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2Ms
IGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdEFuZEZsb2F0KGEsIGEpKSk7CiB9CkBAIC0y
NDQ4LDcgKzI0NTYsNyBAQCB2b2lkIHRlc3RCaXRBbmRBcmdzRmxvYXQoZmxvYXQgYSwgZmxvYXQg
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLAog
ICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0QW5kLCBPcmlnaW4oKSwgYXJndW1lbnRBLCBhcmd1
bWVudEIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21w
aWxlQW5kUnVuPGZsb2F0Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2Vf
Y2FzdDxpbnQzMl90PihiKSksIGJpdEFuZEZsb2F0KGEsIGIpKSk7CiB9CkBAIC0yNDYyLDcgKzI0
NzAsNyBAQCB2b2lkIHRlc3RCaXRBbmRBcmdJbW1GbG9hdChmbG9hdCBhLCBmbG9hCiAgICAgICAg
ICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMCkpKTsKICAgICBWYWx1ZSogYXJndW1lbnRCID0gcm9vdC0+YXBw
ZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiBy
ZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdEFuZCwgT3JpZ2luKCksIGFy
Z3VtZW50QSwgYXJndW1lbnRCKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soaXNJ
ZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+
KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXRBbmRGbG9hdChhLCBiKSkpOwogfQpA
QCAtMjQ3NCw3ICsyNDgyLDcgQEAgdm9pZCB0ZXN0Qml0QW5kSW1tc0Zsb2F0KGZsb2F0IGEsIGZs
b2F0IAogICAgIFZhbHVlKiBhcmd1bWVudEEgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIGFyZ3VtZW50QiA9IHJvb3QtPmFw
cGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKICAgICBWYWx1ZSog
cmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXRBbmQsIE9yaWdpbigpLCBh
cmd1bWVudEEsIGFyZ3VtZW50Qik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGlz
SWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MpLCBiaXRBbmRGbG9hdChhLCBiKSkp
OwogfQpAQCAtMjQ5Myw3ICsyNTAxLDcgQEAgdm9pZCB0ZXN0Qml0QW5kQXJnc0Zsb2F0V2l0aFVz
ZWxlc3NEb3VibAogICAgIFZhbHVlKiBhcmd1bWVudEJhc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGFyZ3VtZW50Qik7CiAgICAg
VmFsdWUqIGRvdWJsZVJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0QW5k
LCBPcmlnaW4oKSwgYXJndW1lbnRBYXNEb3VibGUsIGFyZ3VtZW50QmFzRG91YmxlKTsKICAgICBW
YWx1ZSogZmxvYXRSZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRv
RmxvYXQsIE9yaWdpbigpLCBkb3VibGVSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZmxvYXRSZXN1
bHQpOwogCiAgICAgZG91YmxlIGRvdWJsZUEgPSBhOwogICAgIGRvdWJsZSBkb3VibGVCID0gYjsK
QEAgLTI1MDUsNyArMjUxMyw3IEBAIHZvaWQgdGVzdEJpdE9yQXJncyhpbnQ2NF90IGEsIGludDY0
X3QgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJp
dE9yLCBPcmlnaW4oKSwKQEAgLTI1MjAsNyArMjUyOCw3IEBAIHZvaWQgdGVzdEJpdE9yU2FtZUFy
ZyhpbnQ2NF90IGEpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0T3IsIE9yaWdpbigp
LApAQCAtMjUzNCw3ICsyNTQyLDcgQEAgdm9pZCB0ZXN0Qml0T3JJbW1zKGludDY0X3QgYSwgaW50
NjRfdCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
Qml0T3IsIE9yaWdpbigpLApAQCAtMjU0OCw3ICsyNTU2LDcgQEAgdm9pZCB0ZXN0Qml0T3JBcmdJ
bW0oaW50NjRfdCBhLCBpbnQ2NF90IAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgQml0T3IsIE9yaWdpbigpLApAQCAtMjU2Miw3ICsyNTcwLDcgQEAgdm9p
ZCB0ZXN0Qml0T3JJbW1BcmcoaW50NjRfdCBhLCBpbnQ2NF90IAogewogICAgIFByb2NlZHVyZSBw
cm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0T3IsIE9yaWdpbigpLApAQCAtMjU4MCw3
ICsyNTg4LDcgQEAgdm9pZCB0ZXN0Qml0T3JCaXRPckFyZ0ltbUltbShpbnQ2NF90IGEsIAogICAg
ICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCks
CkBAIC0yNTk4LDcgKzI2MDYsNyBAQCB2b2lkIHRlc3RCaXRPckltbUJpdE9yQXJnSW1tKGludDY0
X3QgYSwgCiAgICAgICAgIHByb2MsIEJpdE9yLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjApLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmln
aW4oKSwgYykpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdE9y
LCBPcmlnaW4oKSwKQEAgLTI2MTIsNyArMjYyMCw3IEBAIHZvaWQgdGVzdEJpdE9yQXJnczMyKGlu
dCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIEJpdE9yLCBPcmlnaW4oKSwKQEAgLTI2MzMsNyArMjY0MSw3IEBAIHZvaWQgdGVzdEJpdE9y
U2FtZUFyZzMyKGludCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0
T3IsIE9yaWdpbigpLApAQCAtMjY0Nyw3ICsyNjU1LDcgQEAgdm9pZCB0ZXN0Qml0T3JJbW1zMzIo
aW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgQml0T3IsIE9yaWdpbigpLApAQCAtMjY2MSw3ICsyNjY5LDcgQEAgdm9pZCB0ZXN0Qml0
T3JBcmdJbW0zMihpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCksCkBAIC0yNjc3LDcgKzI2ODUsNyBAQCB2
b2lkIHRlc3RCaXRPckltbUFyZzMyKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdE9yLCBPcmlnaW4oKSwKQEAgLTI2OTksNyAr
MjcwNyw3IEBAIHZvaWQgdGVzdEJpdE9yQml0T3JBcmdJbW1JbW0zMihpbnQgYSwgaW4KICAgICAg
ICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIw
KSksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBiKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0T3IsIE9y
aWdpbigpLApAQCAtMjcxOSw3ICsyNzI3LDcgQEAgdm9pZCB0ZXN0Qml0T3JJbW1CaXRPckFyZ0lt
bTMyKGludCBhLCBpbgogICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIGMpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCksCkBAIC0yNzMzLDcgKzI3NDEsNyBAQCB2b2lkIHRl
c3RCaXRYb3JBcmdzKGludDY0X3QgYSwgaW50NjRfdCBiCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjc0OCw3ICsy
NzU2LDcgQEAgdm9pZCB0ZXN0Qml0WG9yU2FtZUFyZyhpbnQ2NF90IGEpCiAgICAgUHJvY2VkdXJl
IHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1
ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTI3NjIsNyArMjc3MCw3IEBAIHZv
aWQgdGVzdEJpdFhvckltbXMoaW50NjRfdCBhLCBpbnQ2NF90IGIKIHsKICAgICBQcm9jZWR1cmUg
cHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCkBAIC0yNzc2
LDcgKzI3ODQsNyBAQCB2b2lkIHRlc3RCaXRYb3JBcmdJbW0oaW50NjRfdCBhLCBpbnQ2NF90CiB7
CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRYb3IsIE9y
aWdpbigpLApAQCAtMjc5MCw3ICsyNzk4LDcgQEAgdm9pZCB0ZXN0Qml0WG9ySW1tQXJnKGludDY0
X3QgYSwgaW50NjRfdAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTI4MDgsNyArMjgxNiw3IEBAIHZvaWQgdGVzdEJp
dFhvckJpdFhvckFyZ0ltbUltbShpbnQ2NF90IGEKICAgICAgICAgcHJvYywgQml0WG9yLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApLAogICAgICAgICByb290LT5hcHBlbmROZXc8
Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYikpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCkBAIC0yODI2LDcgKzI4MzQsNyBA
QCB2b2lkIHRlc3RCaXRYb3JJbW1CaXRYb3JBcmdJbW0oaW50NjRfdCBhCiAgICAgICAgIHByb2Ms
IEJpdFhvciwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGMpKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjg0
MCw3ICsyODQ4LDcgQEAgdm9pZCB0ZXN0Qml0WG9yQXJnczMyKGludCBhLCBpbnQgYikKIHsKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2lu
KCksCkBAIC0yODYxLDcgKzI4NjksNyBAQCB2b2lkIHRlc3RCaXRYb3JTYW1lQXJnMzIoaW50IGEp
CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
cHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApA
QCAtMjg3NSw3ICsyODgzLDcgQEAgdm9pZCB0ZXN0Qml0WG9ySW1tczMyKGludCBhLCBpbnQgYikK
IHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwg
T3JpZ2luKCksCkBAIC0yODg5LDcgKzI4OTcsNyBAQCB2b2lkIHRlc3RCaXRYb3JBcmdJbW0zMihp
bnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBw
cm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjkwNSw3ICsyOTEzLDcgQEAgdm9pZCB0ZXN0Qml0
WG9ySW1tQXJnMzIoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAog
ICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTI5MjcsNyArMjkzNSw3IEBA
IHZvaWQgdGVzdEJpdFhvckJpdFhvckFyZ0ltbUltbTMyKGludCBhLCAKICAgICAgICAgICAgIHBy
b2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKSk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwK
QEAgLTI5NDcsNyArMjk1NSw3IEBAIHZvaWQgdGVzdEJpdFhvckltbUJpdFhvckFyZ0ltbTMyKGlu
dCBhLCAKICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKSksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBjKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTI5NjEsNyArMjk2OSw3IEBAIHZvaWQgdGVzdEJpdE5v
dEFyZyhpbnQ2NF90IGEpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjk3NSw3ICsyOTgzLDcgQEAgdm9pZCB0ZXN0
Qml0Tm90SW1tKGludDY0X3QgYSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCkBAIC0yOTk1LDcgKzMwMDMsNyBAQCB2b2lk
IHRlc3RCaXROb3RNZW0oaW50NjRfdCBhKQogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2
NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTEpLAogICAgICAgICBsb2FkKTsKICAgICByb290LT5h
cHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgbm90TG9hZCwgYWRk
cmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDAp
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAog
ICAgIGludDY0X3QgaW5wdXQgPSBhOwogICAgIGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywg
JmlucHV0KTsKQEAgLTMwMDgsNyArMzAxNiw3IEBAIHZvaWQgdGVzdEJpdE5vdEFyZzMyKGludDMy
X3QgYSkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVl
KiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBC
aXRYb3IsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIC0xKSwKQEAgLTMwMjAsNyArMzAyOCw3IEBAIHZvaWQgdGVzdEJp
dE5vdEltbTMyKGludDMyX3QgYSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCkBAIC0zMDQwLDcgKzMwNDgsNyBAQCB2b2lk
IHRlc3RCaXROb3RNZW0zMihpbnQzMl90IGEpCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMSksCiAgICAgICAgIGxvYWQpOwogICAgIHJvb3Qt
PmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCBub3RMb2FkLCBh
ZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
MCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwog
CiAgICAgaW50MzJfdCBpbnB1dCA9IGE7CiAgICAgY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9j
LCAmaW5wdXQpOwpAQCAtMzA2MywxNiArMzA3MSwxNiBAQCB2b2lkIHRlc3RCaXROb3RPbkJvb2xl
YW5BbmRCcmFuY2gzMihpbnQ2CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAtMSksCiAgICAgICAgIGFyZ3NBcmVFcXVhbCk7CiAKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIGFyZ3NBcmVOb3RF
cXVhbCwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2Nr
KGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCA0MikpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgLTQyKSk7CiAKQEAgLTMwODQsNyArMzA5Miw3IEBAIHZvaWQg
dGVzdFNobEFyZ3MoaW50NjRfdCBhLCBpbnQ2NF90IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTaGwsIE9yaWdpbigpLApAQCAtMzEwMCw3ICszMTA4
LDcgQEAgdm9pZCB0ZXN0U2hsSW1tcyhpbnQ2NF90IGEsIGludDY0X3QgYikKIHsKICAgICBQcm9j
ZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNobCwgT3JpZ2luKCksCkBAIC0z
MTE0LDcgKzMxMjIsNyBAQCB2b2lkIHRlc3RTaGxBcmdJbW0oaW50NjRfdCBhLCBpbnQ2NF90IGIp
CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTaGwsIE9y
aWdpbigpLApAQCAtMzEzMSw3ICszMTM5LDcgQEAgdm9pZCB0ZXN0U2hsQXJnMzIoaW50MzJfdCBh
KQogICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgIHBy
b2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgU2hsLCBPcmlnaW4oKSwgdmFsdWUsIHZhbHVlKSk7CiAKQEAgLTMx
NDIsNyArMzE1MCw3IEBAIHZvaWQgdGVzdFNobEFyZ3MzMihpbnQzMl90IGEsIGludDMyX3QgYikK
IHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNobCwgT3Jp
Z2luKCksCkBAIC0zMTYwLDcgKzMxNjgsNyBAQCB2b2lkIHRlc3RTaGxJbW1zMzIoaW50MzJfdCBh
LCBpbnQzMl90IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBw
cm9jLCBTaGwsIE9yaWdpbigpLApAQCAtMzE3NCw3ICszMTgyLDcgQEAgdm9pZCB0ZXN0U2hsQXJn
SW1tMzIoaW50MzJfdCBhLCBpbnQzMl90IAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAog
ICAgICAgICAgICAgcHJvYywgU2hsLCBPcmlnaW4oKSwKQEAgLTMxOTAsNyArMzE5OCw3IEBAIHZv
aWQgdGVzdFNTaHJBcmdzKGludDY0X3QgYSwgaW50NjRfdCBiKQogewogICAgIFByb2NlZHVyZSBw
cm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU1NociwgT3JpZ2luKCksCkBAIC0zMjA2LDcg
KzMyMTQsNyBAQCB2b2lkIHRlc3RTU2hySW1tcyhpbnQ2NF90IGEsIGludDY0X3QgYikKIHsKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNTaHIsIE9yaWdpbigp
LApAQCAtMzIyMCw3ICszMjI4LDcgQEAgdm9pZCB0ZXN0U1NockFyZ0ltbShpbnQ2NF90IGEsIGlu
dDY0X3QgYgogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
U1NociwgT3JpZ2luKCksCkBAIC0zMjM3LDcgKzMyNDUsNyBAQCB2b2lkIHRlc3RTU2hyQXJnMzIo
aW50MzJfdCBhKQogICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU1NociwgT3JpZ2luKCksIHZhbHVlLCB2YWx1ZSkp
OwogCkBAIC0zMjQ4LDcgKzMyNTYsNyBAQCB2b2lkIHRlc3RTU2hyQXJnczMyKGludDMyX3QgYSwg
aW50MzJfdCBiCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBTU2hyLCBPcmlnaW4oKSwKQEAgLTMyNjYsNyArMzI3NCw3IEBAIHZvaWQgdGVzdFNTaHJJbW1z
MzIoaW50MzJfdCBhLCBpbnQzMl90IGIKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIFNTaHIsIE9yaWdpbigpLApAQCAtMzI4MCw3ICszMjg4LDcgQEAgdm9p
ZCB0ZXN0U1NockFyZ0ltbTMyKGludDMyX3QgYSwgaW50MzJfdAogewogICAgIFByb2NlZHVyZSBw
cm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU1NociwgT3JpZ2luKCksCkBAIC0zMjk2LDcg
KzMzMDQsNyBAQCB2b2lkIHRlc3RaU2hyQXJncyh1aW50NjRfdCBhLCB1aW50NjRfdCBiCiB7CiAg
ICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBaU2hyLCBPcmlnaW4o
KSwKQEAgLTMzMTIsNyArMzMyMCw3IEBAIHZvaWQgdGVzdFpTaHJJbW1zKHVpbnQ2NF90IGEsIHVp
bnQ2NF90IGIKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IFpTaHIsIE9yaWdpbigpLApAQCAtMzMyNiw3ICszMzM0LDcgQEAgdm9pZCB0ZXN0WlNockFyZ0lt
bSh1aW50NjRfdCBhLCB1aW50NjRfdAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgWlNociwgT3JpZ2luKCksCkBAIC0zMzQzLDcgKzMzNTEsNyBAQCB2b2lk
IHRlc3RaU2hyQXJnMzIodWludDMyX3QgYSkKICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFpTaHIsIE9yaWdpbigp
LCB2YWx1ZSwgdmFsdWUpKTsKIApAQCAtMzM1NCw3ICszMzYyLDcgQEAgdm9pZCB0ZXN0WlNockFy
Z3MzMih1aW50MzJfdCBhLCB1aW50MzJfdAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAog
ICAgICAgICAgICAgcHJvYywgWlNociwgT3JpZ2luKCksCkBAIC0zMzcyLDcgKzMzODAsNyBAQCB2
b2lkIHRlc3RaU2hySW1tczMyKHVpbnQzMl90IGEsIHVpbnQzMl90CiB7CiAgICAgUHJvY2VkdXJl
IHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBaU2hyLCBPcmlnaW4oKSwKQEAgLTMzODYs
NyArMzM5NCw3IEBAIHZvaWQgdGVzdFpTaHJBcmdJbW0zMih1aW50MzJfdCBhLCB1aW50MzIKIHsK
ICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFpTaHIsIE9yaWdp
bigpLApAQCAtMzQxOSw3ICszNDI3LDcgQEAgdm9pZCB0ZXN0Q2x6QXJnNjQoaW50NjRfdCBhKQog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3Vt
ZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFZhbHVlKiBjbHpWYWx1ZSA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQ2x6LCBPcmlnaW4oKSwgYXJndW1lbnQpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNselZhbHVlKTsK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
Y2x6VmFsdWUpOwogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48dW5zaWduZWQ+KHByb2MsIGEpID09
IGNvdW50TGVhZGluZ1plcm8oYSkpOwogfQogCkBAIC0zNDMwLDcgKzM0MzgsNyBAQCB2b2lkIHRl
c3RDbHpNZW02NChpbnQ2NF90IGEpCiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BS
MCk7CiAgICAgTWVtb3J5VmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVl
Pihwcm9jLCBMb2FkLCBJbnQ2NCwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBjbHpW
YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2x6LCBPcmlnaW4oKSwgdmFsdWUp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIGNselZhbHVlKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgY2x6VmFsdWUpOwogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48dW5zaWdu
ZWQ+KHByb2MsICZhKSA9PSBjb3VudExlYWRpbmdaZXJvKGEpKTsKIH0KIApAQCAtMzQ0MSw3ICsz
NDQ5LDcgQEAgdm9pZCB0ZXN0Q2x6QXJnMzIoaW50MzJfdCBhKQogICAgIFZhbHVlKiBhcmd1bWVu
dCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiBjbHpWYWx1ZSA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQ2x6LCBPcmlnaW4oKSwgYXJndW1lbnQpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNselZhbHVlKTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2x6
VmFsdWUpOwogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48dW5zaWduZWQ+KHByb2MsIGEpID09IGNv
dW50TGVhZGluZ1plcm8oYSkpOwogfQogCkBAIC0zNDUyLDcgKzM0NjAsNyBAQCB2b2lkIHRlc3RD
bHpNZW0zMihpbnQzMl90IGEpCiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7
CiAgICAgTWVtb3J5VmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihw
cm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBjbHpWYWx1
ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2x6LCBPcmlnaW4oKSwgdmFsdWUpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IGNselZhbHVlKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgY2x6VmFsdWUpOwogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48dW5zaWduZWQ+
KHByb2MsICZhKSA9PSBjb3VudExlYWRpbmdaZXJvKGEpKTsKIH0KIApAQCAtMzQ2MCw3ICszNDY4
LDcgQEAgdm9pZCB0ZXN0QWJzQXJnKGRvdWJsZSBhKQogewogICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KAogICAgICAgICAgICAgcHJvYywgQWJzLCBPcmlnaW4oKSwKQEAgLTM0NzQsNyArMzQ4Miw3
IEBAIHZvaWQgdGVzdEFic0ltbShkb3VibGUgYSkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9
IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFicywgT3JpZ2luKCksIGFyZ3VtZW50KSk7CiAKQEAg
LTM0ODcsNyArMzQ5NSw3IEBAIHZvaWQgdGVzdEFic01lbShkb3VibGUgYSkKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3
PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBEb3VibGUsIE9yaWdpbigpLCBhZGRyZXNzKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBPcmlnaW4oKSwgbG9hZERvdWJsZSkpOwogCkBA
IC0zNTAxLDcgKzM1MDksNyBAQCB2b2lkIHRlc3RBYnNBYnNBcmcoZG91YmxlIGEpCiAgICAgVmFs
dWUqIGZpcnN0QWJzID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCkpOwogICAgIFZhbHVlKiBzZWNvbmRBYnMgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFicywgT3JpZ2luKCksIGZpcnN0QWJzKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNv
bmRBYnMpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBzZWNvbmRBYnMpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1
bjxkb3VibGU+KHByb2MsIGEpLCBmYWJzKGEpKSk7CiB9CkBAIC0zNTEzLDcgKzM1MjEsNyBAQCB2
b2lkIHRlc3RBYnNCaXR3aXNlQ2FzdEFyZyhkb3VibGUgYSkKICAgICBWYWx1ZSogYXJndW1lbnRB
c0ludDY0ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFZhbHVlKiBhcmd1bWVudEFzRG91YmxlID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3Vt
ZW50QXNJbnQ2NCk7CiAgICAgVmFsdWUqIGFic1ZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBBYnMsIE9yaWdpbigpLCBhcmd1bWVudEFzRG91YmxlKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhYnNWYWx1ZSk7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFi
c1ZhbHVlKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihw
cm9jLCBiaXR3aXNlX2Nhc3Q8aW50NjRfdD4oYSkpLCBmYWJzKGEpKSk7CiB9CkBAIC0zNTI3LDcg
KzM1MzUsNyBAQCB2b2lkIHRlc3RCaXR3aXNlQ2FzdEFic0JpdHdpc2VDYXN0QXJnKGRvCiAgICAg
VmFsdWUqIGFic1ZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdp
bigpLCBhcmd1bWVudEFzRG91YmxlKTsKICAgICBWYWx1ZSogcmVzdWx0QXNJbnQ2NCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhYnNWYWx1ZSk7
CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHRBc0ludDY0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0QXNJbnQ2NCk7CiAKICAgICBpbnQ2NF90IGV4cGVj
dGVkUmVzdWx0ID0gYml0d2lzZV9jYXN0PGludDY0X3Q+KGZhYnMoYSkpOwogICAgIENIRUNLKGlz
SWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDY0
X3Q+KGEpKSwgZXhwZWN0ZWRSZXN1bHQpKTsKQEAgLTM1NDIsNyArMzU1MCw3IEBAIHZvaWQgdGVz
dEFic0FyZyhmbG9hdCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1
ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdpbigpLCBh
cmd1bWVudCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQz
Mik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2Ms
IGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihzdGF0aWNf
Y2FzdDxmbG9hdD4oZmFicyhhKSkpKSk7CiB9CkBAIC0zNTU0LDcgKzM1NjIsNyBAQCB2b2lkIHRl
c3RBYnNJbW0oZmxvYXQgYSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8
Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBPcmlnaW4oKSwgYXJndW1lbnQpOwog
ICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lz
ZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAg
Q0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nh
c3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+
KGZhYnMoYSkpKSkpOwogfQpAQCAtMzU2Nyw3ICszNTc1LDcgQEAgdm9pZCB0ZXN0QWJzTWVtKGZs
b2F0IGEpCiAgICAgTWVtb3J5VmFsdWUqIGxvYWRGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxNZW1v
cnlWYWx1ZT4ocHJvYywgTG9hZCwgRmxvYXQsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1
ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdpbigpLCBs
b2FkRmxvYXQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9j
LCAmYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihzdGF0aWNfY2FzdDxmbG9hdD4oZmFicyhhKSkp
KSk7CiB9CkBAIC0zNTgxLDcgKzM1ODksNyBAQCB2b2lkIHRlc3RBYnNBYnNBcmcoZmxvYXQgYSkK
ICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdp
c2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUqIGZpcnN0QWJzID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAg
VmFsdWUqIHNlY29uZEFicyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBPcmln
aW4oKSwgZmlyc3RBYnMpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHNlY29uZEFicyk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZEFicyk7CiAKICAgICBDSEVDSyhp
c0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJf
dD4oYSkpLCBzdGF0aWNfY2FzdDxmbG9hdD4oZmFicyhhKSkpKTsKIH0KQEAgLTM1OTQsNyArMzYw
Miw3IEBAIHZvaWQgdGVzdEFic0JpdHdpc2VDYXN0QXJnKGZsb2F0IGEpCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKSk7CiAgICAgVmFsdWUqIGFyZ3VtZW50QXNmbG9hdCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudEFzSW50MzIpOwog
ICAgIFZhbHVlKiBhYnNWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBP
cmlnaW4oKSwgYXJndW1lbnRBc2Zsb2F0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhYnNWYWx1ZSk7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFic1ZhbHVlKTsKIAogICAg
IENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsIGJpdHdpc2VfY2Fz
dDxpbnQzMl90PihhKSksIHN0YXRpY19jYXN0PGZsb2F0PihmYWJzKGEpKSkpOwogfQpAQCAtMzYw
OSw3ICszNjE3LDcgQEAgdm9pZCB0ZXN0Qml0d2lzZUNhc3RBYnNCaXR3aXNlQ2FzdEFyZyhmbAog
ICAgIFZhbHVlKiBhYnNWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBP
cmlnaW4oKSwgYXJndW1lbnRBc2Zsb2F0KTsKICAgICBWYWx1ZSogcmVzdWx0QXNJbnQ2NCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhYnNWYWx1
ZSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHRBc0ludDY0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0QXNJbnQ2NCk7CiAKICAgICBpbnQzMl90IGV4
cGVjdGVkUmVzdWx0ID0gYml0d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0PGZsb2F0Pihm
YWJzKGEpKSk7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihw
cm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBleHBlY3RlZFJlc3VsdCkpOwpAQCAtMzYy
Niw3ICszNjM0LDcgQEAgdm9pZCB0ZXN0QWJzQXJnV2l0aFVzZWxlc3NEb3VibGVDb252ZXJzaQog
ICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFicywgT3Jp
Z2luKCksIGFzRG91YmxlKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCByZXN1bHQpOwogICAgIFZh
bHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3Qs
IE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBD
SEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2Fz
dDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihzdGF0aWNfY2FzdDxmbG9hdD4o
ZmFicyhhKSkpKSk7CiB9CkBAIC0zNjQ0LDcgKzM2NTIsNyBAQCB2b2lkIHRlc3RBYnNBcmdXaXRo
RWZmZWN0ZnVsRG91YmxlQ29udmVyCiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKICAg
ICBWYWx1ZSogZG91YmxlQWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKICAgICByb290LT5hcHBl
bmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBkb3VibGVB
ZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIGRvdWJsZSBlZmZlY3QgPSAw
OwogICAgIGludDMyX3QgcmVzdWx0VmFsdWUgPSBjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2Ms
IGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgJmVmZmVjdCk7CkBAIC0zNjU2LDcgKzM2NjQsNyBA
QCB2b2lkIHRlc3RDZWlsQXJnKGRvdWJsZSBhKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgQ2VpbCwgT3JpZ2luKCksCkBAIC0zNjcwLDcgKzM2NzgsNyBA
QCB2b2lkIHRlc3RDZWlsSW1tKGRvdWJsZSBhKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0g
cm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCksIGFyZ3VtZW50KSk7CiAKQEAg
LTM2ODMsNyArMzY5MSw3IEBAIHZvaWQgdGVzdENlaWxNZW0oZG91YmxlIGEpCiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKTsKICAgICBNZW1vcnlWYWx1ZSogbG9hZERvdWJsZSA9IHJvb3QtPmFwcGVuZE5l
dzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgRG91YmxlLCBPcmlnaW4oKSwgYWRkcmVzcyk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBsb2FkRG91YmxlKSk7CiAK
QEAgLTM2OTcsNyArMzcwNSw3IEBAIHZvaWQgdGVzdENlaWxDZWlsQXJnKGRvdWJsZSBhKQogICAg
IFZhbHVlKiBmaXJzdENlaWwgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCkpOwogICAgIFZhbHVlKiBzZWNvbmRDZWls
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDZWlsLCBPcmlnaW4oKSwgZmlyc3RDZWls
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBzZWNvbmRDZWlsKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kQ2VpbCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChj
b21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgYSksIGNlaWwoYSkpKTsKIH0KQEAgLTM3MDksNyAr
MzcxNyw3IEBAIHZvaWQgdGVzdEZsb29yQ2VpbEFyZyhkb3VibGUgYSkKICAgICBWYWx1ZSogZmly
c3RDZWlsID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDZWlsLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBG
UFJJbmZvOjphcmd1bWVudEZQUjApKTsKICAgICBWYWx1ZSogd3JhcHBpbmdGbG9vciA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBmaXJzdENlaWwpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHdy
YXBwaW5nRmxvb3IpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCB3cmFwcGluZ0Zsb29yKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNv
bXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBhKSwgY2VpbChhKSkpOwogfQpAQCAtMzcyMSw3ICsz
NzI5LDcgQEAgdm9pZCB0ZXN0Q2VpbElUb0Q2NChpbnQ2NF90IGEpCiAgICAgVmFsdWUqIGFyZ3Vt
ZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFZhbHVlKiBhcmd1bWVudEFzRG91YmxlID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgYXJndW1lbnQpOwogCi0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBhcmd1bWVudEFzRG91Ymxl
KSk7CiAKQEAgLTM3MzYsNyArMzc0NCw3IEBAIHZvaWQgdGVzdENlaWxJVG9EMzIoaW50NjRfdCBh
KQogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiBhcmd1bWVudEFzRG91Ymxl
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgYXJndW1lbnQp
OwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBhcmd1bWVudEFz
RG91YmxlKSk7CiAKQEAgLTM3NTIsNyArMzc2MCw3IEBAIHZvaWQgdGVzdENlaWxBcmcoZmxvYXQg
YSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJp
dHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAg
ICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VD
YXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENI
RUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0
PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGNlaWxmKGEpKSkpOwogfQpAQCAt
Mzc2NCw3ICszNzcyLDcgQEAgdm9pZCB0ZXN0Q2VpbEltbShmbG9hdCBhKQogICAgIFZhbHVlKiBh
cmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigp
LCBhKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBD
ZWlsLCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
c3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1
bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4oY2VpbGYoYSkpKSk7CiB9CkBAIC0zNzc3LDcgKzM3ODUsNyBAQCB2b2lkIHRlc3RD
ZWlsTWVtKGZsb2F0IGEpCiAgICAgTWVtb3J5VmFsdWUqIGxvYWRGbG9hdCA9IHJvb3QtPmFwcGVu
ZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgRmxvYXQsIE9yaWdpbigpLCBhZGRyZXNzKTsK
ICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDZWlsLCBP
cmlnaW4oKSwgbG9hZEZsb2F0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQz
Mik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50
MzJfdD4ocHJvYywgJmEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oY2VpbGYoYSkpKSk7CiB9CkBA
IC0zNzkxLDcgKzM3OTksNyBAQCB2b2lkIHRlc3RDZWlsQ2VpbEFyZyhmbG9hdCBhKQogICAgIFZh
bHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3Qs
IE9yaWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1ZSogZmlyc3RDZWlsID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBDZWlsLCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZhbHVl
KiBzZWNvbmRDZWlsID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDZWlsLCBPcmlnaW4o
KSwgZmlyc3RDZWlsKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCBzZWNvbmRDZWlsKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kQ2VpbCk7CiAKICAgICBDSEVDSyhp
c0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJf
dD4oYSkpLCBjZWlsZihhKSkpOwogfQpAQCAtMzgwNSw3ICszODEzLDcgQEAgdm9pZCB0ZXN0Rmxv
b3JDZWlsQXJnKGZsb2F0IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZh
bHVlKiBmaXJzdENlaWwgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdp
bigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHdyYXBwaW5nRmxvb3IgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgZmlyc3RDZWlsKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB3cmFwcGluZ0Zs
b29yKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgd3JhcHBpbmdGbG9vcik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5k
UnVuPGZsb2F0Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBjZWlsZihhKSkpOwog
fQpAQCAtMzgyMSw3ICszODI5LDcgQEAgdm9pZCB0ZXN0Q2VpbEFyZ1dpdGhVc2VsZXNzRG91Ymxl
Q29udmVycwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IENlaWwsIE9yaWdpbigpLCBhc0RvdWJsZSk7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgcmVzdWx0
KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJp
dHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIp
OwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBi
aXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oY2VpbGYoYSkp
KSk7CiB9CkBAIC0zODM5LDcgKzM4NDcsNyBAQCB2b2lkIHRlc3RDZWlsQXJnV2l0aEVmZmVjdGZ1
bERvdWJsZUNvbnZlCiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKICAgICBWYWx1ZSog
ZG91YmxlQWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKICAgICByb290LT5hcHBlbmROZXc8TWVt
b3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBkb3VibGVBZGRyZXNzKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIGRvdWJsZSBlZmZlY3QgPSAwOwogICAgIGlu
dDMyX3QgcmVzdWx0VmFsdWUgPSBjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2Vf
Y2FzdDxpbnQzMl90PihhKSwgJmVmZmVjdCk7CkBAIC0zODUxLDcgKzM4NTksNyBAQCB2b2lkIHRl
c3RGbG9vckFyZyhkb3VibGUgYSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIEZsb29yLCBPcmlnaW4oKSwKQEAgLTM4NjUsNyArMzg3Myw3IEBAIHZvaWQg
dGVzdEZsb29ySW1tKGRvdWJsZSBhKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+
YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBhcmd1bWVudCkpOwogCkBAIC0zODc4
LDcgKzM4ODYsNyBAQCB2b2lkIHRlc3RGbG9vck1lbShkb3VibGUgYSkKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PE1l
bW9yeVZhbHVlPihwcm9jLCBMb2FkLCBEb3VibGUsIE9yaWdpbigpLCBhZGRyZXNzKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBsb2FkRG91YmxlKSk7CiAKQEAg
LTM4OTIsNyArMzkwMCw3IEBAIHZvaWQgdGVzdEZsb29yRmxvb3JBcmcoZG91YmxlIGEpCiAgICAg
VmFsdWUqIGZpcnN0Rmxvb3IgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApKTsKICAgICBWYWx1ZSogc2Vjb25kRmxv
b3IgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgZmlyc3RG
bG9vcik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgc2Vjb25kRmxvb3IpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmRGbG9vcik7CiAKICAgICBDSEVDSyhpc0lkZW50
aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgYSksIGZsb29yKGEpKSk7CiB9CkBAIC0z
OTA0LDcgKzM5MTIsNyBAQCB2b2lkIHRlc3RDZWlsRmxvb3JBcmcoZG91YmxlIGEpCiAgICAgVmFs
dWUqIGZpcnN0Rmxvb3IgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApKTsKICAgICBWYWx1ZSogd3JhcHBpbmdDZWls
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDZWlsLCBPcmlnaW4oKSwgZmlyc3RGbG9v
cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgd3JhcHBpbmdDZWlsKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgd3JhcHBpbmdDZWlsKTsKIAogICAgIENIRUNLKGlzSWRlbnRp
Y2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBhKSwgZmxvb3IoYSkpKTsKIH0KQEAgLTM5
MTYsNyArMzkyNCw3IEBAIHZvaWQgdGVzdEZsb29ySVRvRDY0KGludDY0X3QgYSkKICAgICBWYWx1
ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50QXNEb3Vi
bGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBhcmd1bWVu
dCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBhcmd1bWVu
dEFzRG91YmxlKSk7CiAKQEAgLTM5MzEsNyArMzkzOSw3IEBAIHZvaWQgdGVzdEZsb29ySVRvRDMy
KGludDY0X3QgYSkKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSogYXJndW1l
bnRBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCks
IGFyZ3VtZW50KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCks
IGFyZ3VtZW50QXNEb3VibGUpKTsKIApAQCAtMzk0Nyw3ICszOTU1LDcgQEAgdm9pZCB0ZXN0Rmxv
b3JBcmcoZmxvYXQgYSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUq
IHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBh
cmd1bWVudCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQz
Mik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2Ms
IGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihmbG9vcmYo
YSkpKSk7CiB9CkBAIC0zOTU5LDcgKzM5NjcsNyBAQCB2b2lkIHRlc3RGbG9vckltbShmbG9hdCBh
KQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+
KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBWYWx1ZSogcmVz
dWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4o
KSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRp
Y2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEp
KSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGZsb29yZihhKSkpKTsKIH0KQEAgLTM5NzIsNyArMzk4
MCw3IEBAIHZvaWQgdGVzdEZsb29yTWVtKGZsb2F0IGEpCiAgICAgTWVtb3J5VmFsdWUqIGxvYWRG
bG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgRmxvYXQsIE9y
aWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGxvYWRGbG9hdCk7CiAgICAgVmFsdWUqIHJlc3Vs
dDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCks
IHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNh
bChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsICZhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+
KGZsb29yZihhKSkpKTsKIH0KQEAgLTM5ODYsNyArMzk5NCw3IEBAIHZvaWQgdGVzdEZsb29yRmxv
b3JBcmcoZmxvYXQgYSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUq
IGZpcnN0Rmxvb3IgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4o
KSwgYXJndW1lbnQpOwogICAgIFZhbHVlKiBzZWNvbmRGbG9vciA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBmaXJzdEZsb29yKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmRGbG9vcik7
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHNlY29uZEZsb29yKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48Zmxv
YXQ+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGZsb29yZihhKSkpOwogfQpAQCAt
NDAwMCw3ICs0MDA4LDcgQEAgdm9pZCB0ZXN0Q2VpbEZsb29yQXJnKGZsb2F0IGEpCiAgICAgVmFs
dWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwg
T3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiBmaXJzdEZsb29yID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBWYWx1
ZSogd3JhcHBpbmdDZWlsID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDZWlsLCBPcmln
aW4oKSwgZmlyc3RGbG9vcik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgd3JhcHBpbmdDZWlsKTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgd3JhcHBpbmdDZWlsKTsKIAogICAg
IENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsIGJpdHdpc2VfY2Fz
dDxpbnQzMl90PihhKSksIGZsb29yZihhKSkpOwogfQpAQCAtNDAxNiw3ICs0MDI0LDcgQEAgdm9p
ZCB0ZXN0Rmxvb3JBcmdXaXRoVXNlbGVzc0RvdWJsZUNvbnZlcgogICAgIFZhbHVlKiByZXN1bHQg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgYXNEb3VibGUp
OwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
RG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0
UmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2Fs
KGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwg
Yml0d2lzZV9jYXN0PGludDMyX3Q+KGZsb29yZihhKSkpKTsKIH0KQEAgLTQwMzQsNyArNDA0Miw3
IEBAIHZvaWQgdGVzdEZsb29yQXJnV2l0aEVmZmVjdGZ1bERvdWJsZUNvbnYKICAgICBWYWx1ZSog
cmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmln
aW4oKSwgZmxvYXRSZXN1bHQpOwogICAgIFZhbHVlKiBkb3VibGVBZGRyZXNzID0gcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjEpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9y
aWdpbigpLCByZXN1bHQsIGRvdWJsZUFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwog
CiAgICAgZG91YmxlIGVmZmVjdCA9IDA7CiAgICAgaW50MzJfdCByZXN1bHRWYWx1ZSA9IGNvbXBp
bGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCAmZWZmZWN0
KTsKQEAgLTQwNDYsNyArNDA1NCw3IEBAIHZvaWQgdGVzdFNxcnRBcmcoZG91YmxlIGEpCiB7CiAg
ICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTcXJ0LCBPcmlnaW4o
KSwKQEAgLTQwNjAsNyArNDA2OCw3IEBAIHZvaWQgdGVzdFNxcnRJbW0oZG91YmxlIGEpCiAgICAg
UHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
ICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIGEpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTcXJ0LCBPcmln
aW4oKSwgYXJndW1lbnQpKTsKIApAQCAtNDA3Myw3ICs0MDgxLDcgQEAgdm9pZCB0ZXN0U3FydE1l
bShkb3VibGUgYSkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAg
IFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2Fk
RG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBEb3VibGUs
IE9yaWdpbigpLCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3FydCwgT3Jp
Z2luKCksIGxvYWREb3VibGUpKTsKIApAQCAtNDA4OSw3ICs0MDk3LDcgQEAgdm9pZCB0ZXN0U3Fy
dEFyZyhmbG9hdCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1ZSog
cmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTcXJ0LCBPcmlnaW4oKSwgYXJn
dW1lbnQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIp
OwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBi
aXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nh
c3Q8ZmxvYXQ+KHNxcnQoYSkpKSkpOwogfQpAQCAtNDEwMSw3ICs0MTA5LDcgQEAgdm9pZCB0ZXN0
U3FydEltbShmbG9hdCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxD
b25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogcmVzdWx0ID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTcXJ0LCBPcmlnaW4oKSwgYXJndW1lbnQpOwog
ICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lz
ZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAg
Q0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nh
c3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+
KHNxcnQoYSkpKSkpOwogfQpAQCAtNDExNCw3ICs0MTIyLDcgQEAgdm9pZCB0ZXN0U3FydE1lbShm
bG9hdCBhKQogICAgIE1lbW9yeVZhbHVlKiBsb2FkRmxvYXQgPSByb290LT5hcHBlbmROZXc8TWVt
b3J5VmFsdWU+KHByb2MsIExvYWQsIEZsb2F0LCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAgVmFs
dWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3FydCwgT3JpZ2luKCks
IGxvYWRGbG9hdCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1
bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHBy
b2MsICZhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0PGZsb2F0PihzcXJ0KGEp
KSkpKTsKIH0KQEAgLTQxMzAsNyArNDEzOCw3IEBAIHZvaWQgdGVzdFNxcnRBcmdXaXRoVXNlbGVz
c0RvdWJsZUNvbnZlcnMKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBTcXJ0LCBPcmlnaW4oKSwgYXNEb3VibGUpOwogICAgIFZhbHVlKiBmbG9hdFJlc3Vs
dCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCks
IHJlc3VsdCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
c3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4o
cHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHN0
YXRpY19jYXN0PGZsb2F0PihzcXJ0KGEpKSkpKTsKIH0KQEAgLTQxNDgsNyArNDE1Niw3IEBAIHZv
aWQgdGVzdFNxcnRBcmdXaXRoRWZmZWN0ZnVsRG91YmxlQ29udmUKICAgICBWYWx1ZSogcmVzdWx0
MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwg
ZmxvYXRSZXN1bHQpOwogICAgIFZhbHVlKiBkb3VibGVBZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEp
OwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigp
LCByZXN1bHQsIGRvdWJsZUFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAg
ZG91YmxlIGVmZmVjdCA9IDA7CiAgICAgaW50MzJfdCByZXN1bHRWYWx1ZSA9IGNvbXBpbGVBbmRS
dW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCAmZWZmZWN0KTsKQEAg
LTQxNzIsNyArNDE4MCw3IEBAIHZvaWQgdGVzdENvbXBhcmVUd29GbG9hdFRvRG91YmxlKGZsb2F0
IGEKICAgICBWYWx1ZSogYXJnMkFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgYXJnMkZsb2F0KTsKICAgICBWYWx1ZSogZXF1YWwg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEVxdWFsLCBPcmlnaW4oKSwgYXJnMUFzRG91
YmxlLCBhcmcyQXNEb3VibGUpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZXF1YWwpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBlcXVhbCk7CiAKICAgICBDSEVDSyhjb21w
aWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgYml0d2lz
ZV9jYXN0PGludDMyX3Q+KGIpKSA9PSAoYSA9PSBiKSk7CiB9CkBAIC00MTkwLDcgKzQxOTgsNyBA
QCB2b2lkIHRlc3RDb21wYXJlT25lRmxvYXRUb0RvdWJsZShmbG9hdCBhCiAgICAgVmFsdWUqIGFy
ZzJBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogZXF1YWwgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEVxdWFsLCBPcmlnaW4oKSwgYXJnMUFzRG91YmxlLCBhcmcy
QXNEb3VibGUpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgZXF1YWwpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBlcXVhbCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVu
PGludDY0X3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgYikgPT0gKGEgPT0gYikp
OwogfQpAQCAtNDIxNCwyMyArNDIyMiwyMyBAQCB2b2lkIHRlc3RDb21wYXJlRmxvYXRUb0RvdWJs
ZVRocm91Z2hQaGkoCiAgICAgVmFsdWUqIGFyZzJBc0Zsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgYXJnMkFzRG91YmxlKTsKICAgICBW
YWx1ZSogYXJnMkFzRlJvdW5kZWREb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBhcmcyQXNGbG9hdCk7CiAKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIGNvbmRpdGlvbiwKICAgICAg
ICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7
CiAKICAgICBVcHNpbG9uVmFsdWUqIHRoZW5WYWx1ZSA9IHRoZW5DYXNlLT5hcHBlbmROZXc8VXBz
aWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYXJnMUFzRG91YmxlKTsKLSAgICB0aGVuQ2FzZS0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRC
bG9jayh0YWlsKSk7CisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBK
dW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKIAogICAgIFZhbHVlKiBlbHNl
Q29uc3QgPSBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAwLik7CiAgICAgVXBzaWxvblZhbHVlKiBlbHNlVmFsdWUgPSBlbHNlQ2FzZS0+YXBwZW5k
TmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGVsc2VDb25zdCk7Ci0gICAgZWxzZUNh
c2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVu
dGVkQmxvY2sodGFpbCkpOworICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CiAKICAgICBWYWx1ZSog
ZG91YmxlSW5wdXQgPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFBoaSwgRG91YmxlLCBP
cmlnaW4oKSk7CiAgICAgdGhlblZhbHVlLT5zZXRQaGkoZG91YmxlSW5wdXQpOwogICAgIGVsc2VW
YWx1ZS0+c2V0UGhpKGRvdWJsZUlucHV0KTsKICAgICBWYWx1ZSogZXF1YWwgPSB0YWlsLT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEVxdWFsLCBPcmlnaW4oKSwgZG91YmxlSW5wdXQsIGFyZzJBc0ZS
b3VuZGVkRG91YmxlKTsKLSAgICB0YWlsLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCBlcXVhbCk7CisgICAgdGFpbC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGVxdWFsKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBp
bGUocHJvYyk7CiAgICAgaW50MzJfdCBpbnRlZ2VyQSA9IGJpdHdpc2VfY2FzdDxpbnQzMl90Pihh
KTsKQEAgLTQyNjEsNyArNDI2OSw3IEBAIHZvaWQgdGVzdERvdWJsZVRvRmxvYXRUaHJvdWdoUGhp
KGZsb2F0IHYKICAgICBWYWx1ZSogZmxvYXRWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1ZSogYXJn
QXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9y
aWdpbigpLCBmbG9hdFZhbHVlKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNo
LCBPcmlnaW4oKSwKICAgICAgICAgY29uZGl0aW9uLAogICAgICAgICBGcmVxdWVudGVkQmxvY2so
dGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKQEAgLTQyNjksMTcgKzQyNzcs
MTcgQEAgdm9pZCB0ZXN0RG91YmxlVG9GbG9hdFRocm91Z2hQaGkoZmxvYXQgdgogICAgIFZhbHVl
KiBwb3N0aXRpdmVDb25zdCA9IHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIDQyLjVmKTsKICAgICBWYWx1ZSogdGhlbkFkZCA9IHRoZW5DYXNlLT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGFyZ0FzRG91YmxlLCBwb3N0aXRp
dmVDb25zdCk7CiAgICAgVXBzaWxvblZhbHVlKiB0aGVuVmFsdWUgPSB0aGVuQ2FzZS0+YXBwZW5k
TmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHRoZW5BZGQpOwotICAgIHRoZW5DYXNl
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRl
ZEJsb2NrKHRhaWwpKTsKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOwogCiAgICAgVmFsdWUqIGVs
c2VDb25zdCA9IGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIE1fUEkpOwogICAgIFVwc2lsb25WYWx1ZSogZWxzZVZhbHVlID0gZWxzZUNhc2UtPmFw
cGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCBlbHNlQ29uc3QpOwotICAgIGVs
c2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJl
cXVlbnRlZEJsb2NrKHRhaWwpKTsKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOwogCiAgICAgVmFs
dWUqIGRvdWJsZUlucHV0ID0gdGFpbC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBQaGksIERvdWJs
ZSwgT3JpZ2luKCkpOwogICAgIHRoZW5WYWx1ZS0+c2V0UGhpKGRvdWJsZUlucHV0KTsKICAgICBl
bHNlVmFsdWUtPnNldFBoaShkb3VibGVJbnB1dCk7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0g
dGFpbC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgZG91
YmxlSW5wdXQpOwotICAgIHRhaWwtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKKyAgICB0YWlsLT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwogCiAgICAgYXV0byBjb2Rl
ID0gY29tcGlsZShwcm9jKTsKICAgICBDSEVDSyhpc0lkZW50aWNhbChpbnZva2U8ZmxvYXQ+KCpj
b2RlLCAxLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4odmFsdWUpKSwgdmFsdWUgKyA0Mi41ZikpOwpA
QCAtNDI5OSwxOCArNDMwNywxOCBAQCB2b2lkIHRlc3REb3VibGVQcm9kdWNlclBoaVRvRmxvYXRD
b252ZXJzCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7CiAgICAgVmFsdWUqIGZsb2F0VmFsdWUg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJn
dW1lbnQzMik7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCks
CiAgICAgICAgIGNvbmRpdGlvbiwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwg
RnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKICAgICBWYWx1ZSogYXNEb3VibGUgPSB0aGVu
Q2FzZS0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgZmxv
YXRWYWx1ZSk7CiAgICAgVXBzaWxvblZhbHVlKiB0aGVuVmFsdWUgPSB0aGVuQ2FzZS0+YXBwZW5k
TmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFzRG91YmxlKTsKLSAgICB0aGVuQ2Fz
ZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50
ZWRCbG9jayh0YWlsKSk7CisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKIAogICAgIFZhbHVlKiBj
b25zdERvdWJsZSA9IGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDQyLjUpOwogICAgIFVwc2lsb25WYWx1ZSogZWxzZVZhbHVlID0gZWxzZUNhc2Ut
PmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCBjb25zdERvdWJsZSk7Ci0g
ICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigp
LCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOworICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CiAKICAg
ICBWYWx1ZSogZG91YmxlSW5wdXQgPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFBoaSwg
RG91YmxlLCBPcmlnaW4oKSk7CiAgICAgdGhlblZhbHVlLT5zZXRQaGkoZG91YmxlSW5wdXQpOwpA
QCAtNDMxOSw3ICs0MzI3LDcgQEAgdm9pZCB0ZXN0RG91YmxlUHJvZHVjZXJQaGlUb0Zsb2F0Q29u
dmVycwogICAgIFZhbHVlKiBhcmdBc0RvdWJsZUFnYWluID0gdGFpbC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSk7CiAgICAgVmFsdWUq
IGZpbmFsQWRkID0gdGFpbC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBk
b3VibGVJbnB1dCwgYXJnQXNEb3VibGVBZ2Fpbik7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0g
dGFpbC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgZmlu
YWxBZGQpOwotICAgIHRhaWwtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKKyAgICB0YWlsLT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwogCiAgICAgYXV0byBjb2RlID0g
Y29tcGlsZShwcm9jKTsKICAgICBDSEVDSyhpc0lkZW50aWNhbChpbnZva2U8ZmxvYXQ+KCpjb2Rl
LCAxLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4odmFsdWUpKSwgdmFsdWUgKyB2YWx1ZSkpOwpAQCAt
NDM0MSwxOCArNDM0OSwxOCBAQCB2b2lkIHRlc3REb3VibGVQcm9kdWNlclBoaVRvRmxvYXRDb252
ZXJzCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7CiAgICAgVmFsdWUqIGZsb2F0VmFsdWUgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1l
bnQzMik7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAg
ICAgICAgIGNvbmRpdGlvbiwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJl
cXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKICAgICBWYWx1ZSogYXNEb3VibGUgPSB0aGVuQ2Fz
ZS0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgZmxvYXRW
YWx1ZSk7CiAgICAgVXBzaWxvblZhbHVlKiB0aGVuVmFsdWUgPSB0aGVuQ2FzZS0+YXBwZW5kTmV3
PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFzRG91YmxlKTsKLSAgICB0aGVuQ2FzZS0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRC
bG9jayh0YWlsKSk7CisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBK
dW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKIAogICAgIFZhbHVlKiBjb25z
dERvdWJsZSA9IGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIDQyLjUpOwogICAgIFVwc2lsb25WYWx1ZSogZWxzZVZhbHVlID0gZWxzZUNhc2UtPmFw
cGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCBjb25zdERvdWJsZSk7Ci0gICAg
ZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBG
cmVxdWVudGVkQmxvY2sodGFpbCkpOworICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CiAKICAgICBW
YWx1ZSogZG91YmxlSW5wdXQgPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFBoaSwgRG91
YmxlLCBPcmlnaW4oKSk7CiAgICAgdGhlblZhbHVlLT5zZXRQaGkoZG91YmxlSW5wdXQpOwpAQCAt
NDM2OCw3ICs0Mzc2LDcgQEAgdm9pZCB0ZXN0RG91YmxlUHJvZHVjZXJQaGlUb0Zsb2F0Q29udmVy
cwogICAgIC8vIFRoaXMgb25lICpjYW5ub3QqIGJlIGVsaW1pbmF0ZWQKICAgICBWYWx1ZSogZG91
YmxlQWRkID0gdGFpbC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBkb3Vi
bGVJbnB1dCwgZG91YmxlUmVzdWx0KTsKIAotICAgIHRhaWwtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGRvdWJsZUFkZCk7CisgICAgdGFpbC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGRvdWJsZUFkZCk7CiAKICAg
ICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGludm9r
ZTxkb3VibGU+KCpjb2RlLCAxLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4odmFsdWUpKSwgKHZhbHVl
ICsgdmFsdWUpICsgc3RhdGljX2Nhc3Q8ZG91YmxlPih2YWx1ZSkpKTsKQEAgLTQzODgsMTggKzQz
OTYsMTggQEAgdm9pZCB0ZXN0RG91YmxlUHJvZHVjZXJQaGlXaXRoTm9uRmxvYXRDbwogICAgICAg
ICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMSkpOwogICAgIFZhbHVlKiBmbG9hdFZhbHVlID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogCi0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICBjb25k
aXRpb24sCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9j
ayhlbHNlQ2FzZSkpOwogCiAgICAgVmFsdWUqIGFzRG91YmxlID0gdGhlbkNhc2UtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGZsb2F0VmFsdWUpOwogICAg
IFVwc2lsb25WYWx1ZSogdGhlblZhbHVlID0gdGhlbkNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBhc0RvdWJsZSk7Ci0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkp
OworICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2lu
KCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CiAKICAgICBWYWx1ZSogY29uc3REb3VibGUgPSBl
bHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBjb25z
dFZhbHVlKTsKICAgICBVcHNpbG9uVmFsdWUqIGVsc2VWYWx1ZSA9IGVsc2VDYXNlLT5hcHBlbmRO
ZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgY29uc3REb3VibGUpOwotICAgIGVsc2VD
YXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVl
bnRlZEJsb2NrKHRhaWwpKTsKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOwogCiAgICAgVmFsdWUq
IGRvdWJsZUlucHV0ID0gdGFpbC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBQaGksIERvdWJsZSwg
T3JpZ2luKCkpOwogICAgIHRoZW5WYWx1ZS0+c2V0UGhpKGRvdWJsZUlucHV0KTsKQEAgLTQ0MDgs
NyArNDQxNiw3IEBAIHZvaWQgdGVzdERvdWJsZVByb2R1Y2VyUGhpV2l0aE5vbkZsb2F0Q28KICAg
ICBWYWx1ZSogYXJnQXNEb3VibGVBZ2FpbiA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
RmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGZsb2F0VmFsdWUpOwogICAgIFZhbHVlKiBmaW5hbEFk
ZCA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgZG91YmxlSW5w
dXQsIGFyZ0FzRG91YmxlQWdhaW4pOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHRhaWwtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIGZpbmFsQWRkKTsK
LSAgICB0YWlsLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBmbG9hdFJlc3VsdCk7CisgICAgdGFpbC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUo
cHJvYyk7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoaW52b2tlPGZsb2F0PigqY29kZSwgMSwgYml0
d2lzZV9jYXN0PGludDMyX3Q+KHZhbHVlKSksIHZhbHVlICsgdmFsdWUpKTsKQEAgLTQ0MjEsNyAr
NDQyOSw3IEBAIHZvaWQgdGVzdERvdWJsZUFyZ1RvSW50NjRCaXR3aXNlQ2FzdChkb3UKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5m
bzo6YXJndW1lbnRGUFIwKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQpKTsKQEAgLTQ0MzUsNyArNDQ0Myw3
IEBAIHZvaWQgdGVzdERvdWJsZUltbVRvSW50NjRCaXR3aXNlQ2FzdChkb3UKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3Qt
PmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpOwogCi0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0d2lzZUNhc3QsIE9yaWdp
bigpLCBhcmd1bWVudCkpOwpAQCAtNDQ1MCw3ICs0NDU4LDcgQEAgdm9pZCB0ZXN0VHdvQml0d2lz
ZUNhc3RPbkRvdWJsZShkb3VibGUgdgogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRG
UFIwKTsKICAgICBWYWx1ZSogZmlyc3QgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJp
dHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZhbHVlKiBzZWNvbmQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmlyc3QpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHNlY29uZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHNlY29uZCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVu
PGRvdWJsZT4ocHJvYywgdmFsdWUpLCB2YWx1ZSkpOwogfQpAQCAtNDQ2Miw3ICs0NDcwLDcgQEAg
dm9pZCB0ZXN0Qml0d2lzZUNhc3RPbkRvdWJsZUluTWVtb3J5KGRvdQogICAgIFZhbHVlKiBhZGRy
ZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkRG91YmxlID0gcm9v
dC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBEb3VibGUsIE9yaWdpbigpLCBh
ZGRyZXNzKTsKICAgICBWYWx1ZSogY2FzdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
Qml0d2lzZUNhc3QsIE9yaWdpbigpLCBsb2FkRG91YmxlKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0KTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FzdCk7CiAKICAg
ICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsICZ2YWx1ZSks
IGJpdHdpc2VfY2FzdDxpbnQ2NF90Pih2YWx1ZSkpKTsKIH0KQEAgLTQ0NzksNyArNDQ4Nyw3IEBA
IHZvaWQgdGVzdEJpdHdpc2VDYXN0T25Eb3VibGVJbk1lbW9yeUluZGUKICAgICBWYWx1ZSogYWRk
cmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYmFzZSwg
c2NhbGVkT2Zmc2V0KTsKICAgICBNZW1vcnlWYWx1ZSogbG9hZERvdWJsZSA9IHJvb3QtPmFwcGVu
ZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgRG91YmxlLCBPcmlnaW4oKSwgYWRkcmVzcyk7
CiAgICAgVmFsdWUqIGNhc3QgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VD
YXN0LCBPcmlnaW4oKSwgbG9hZERvdWJsZSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FzdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNhc3QpOwogCiAgICAgQ0hFQ0so
aXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAmdmFsdWUsIDApLCBiaXR3
aXNlX2Nhc3Q8aW50NjRfdD4odmFsdWUpKSk7CiB9CkBAIC00NDkwLDcgKzQ0OTgsNyBAQCB2b2lk
IHRlc3RJbnQ2NEJBcmdUb0RvdWJsZUJpdHdpc2VDYXN0KGluCiAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BS
MCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXR3aXNlQ2Fz
dCwgT3JpZ2luKCksIGFyZ3VtZW50KSk7CkBAIC00NTA0LDcgKzQ1MTIsNyBAQCB2b2lkIHRlc3RJ
bnQ2NEJJbW1Ub0RvdWJsZUJpdHdpc2VDYXN0KGluCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8Q29u
c3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudCkpOwpA
QCAtNDUxOSw3ICs0NTI3LDcgQEAgdm9pZCB0ZXN0VHdvQml0d2lzZUNhc3RPbkludDY0KGludDY0
X3QgdgogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBWYWx1ZSog
Zmlyc3QgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4o
KSwgYXJndW1lbnQpOwogICAgIFZhbHVlKiBzZWNvbmQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmlyc3QpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZCk7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZCk7
CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIHZh
bHVlKSwgdmFsdWUpKTsKIH0KQEAgLTQ1MzEsNyArNDUzOSw3IEBAIHZvaWQgdGVzdEJpdHdpc2VD
YXN0T25JbnQ2NEluTWVtb3J5KGludDYKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIwKTsKICAgICBNZW1vcnlWYWx1ZSogbG9hZERvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxNZW1v
cnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50NjQsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1
ZSogY2FzdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdp
bigpLCBsb2FkRG91YmxlKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FzdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNh
bChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgJnZhbHVlKSwgYml0d2lzZV9jYXN0PGRvdWJs
ZT4odmFsdWUpKSk7CiB9CkBAIC00NTQ4LDcgKzQ1NTYsNyBAQCB2b2lkIHRlc3RCaXR3aXNlQ2Fz
dE9uSW50NjRJbk1lbW9yeUluZGV4CiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGJhc2UsIHNjYWxlZE9mZnNldCk7CiAgICAg
TWVtb3J5VmFsdWUqIGxvYWREb3VibGUgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHBy
b2MsIExvYWQsIEludDY0LCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIGNhc3QgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgbG9hZERv
dWJsZSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgY2FzdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIGNhc3QpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFu
ZFJ1bjxkb3VibGU+KHByb2MsICZ2YWx1ZSwgMCksIGJpdHdpc2VfY2FzdDxkb3VibGU+KHZhbHVl
KSkpOwogfQpAQCAtNDU1OSw3ICs0NTY3LDcgQEAgdm9pZCB0ZXN0RmxvYXRJbW1Ub0ludDMyQml0
d2lzZUNhc3QoZmxvYQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAg
ICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIHZhbHVlKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQpKTsKQEAgLTQ1NzQsNyArNDU4
Miw3IEBAIHZvaWQgdGVzdEJpdHdpc2VDYXN0T25GbG9hdEluTWVtb3J5KGZsb2EKICAgICBWYWx1
ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBNZW1vcnlWYWx1ZSogbG9hZEZsb2F0
ID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBGbG9hdCwgT3JpZ2lu
KCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBjYXN0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGxvYWRGbG9hdCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FzdCk7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNhc3QpOwog
CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCAmdmFs
dWUpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4odmFsdWUpKSk7CiB9CkBAIC00NTg1LDcgKzQ1OTMs
NyBAQCB2b2lkIHRlc3RJbnQzMkJBcmdUb0Zsb2F0Qml0d2lzZUNhc3QoaW50CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBC
aXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50KSk7CkBAIC00NTk5LDcgKzQ2MDcsNyBAQCB2
b2lkIHRlc3RJbnQzMkJJbW1Ub0Zsb2F0Qml0d2lzZUNhc3QoaW50CiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBl
bmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpOwogCi0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1
bWVudCkpOwpAQCAtNDYxNCw3ICs0NjIyLDcgQEAgdm9pZCB0ZXN0VHdvQml0d2lzZUNhc3RPbklu
dDMyKGludDMyX3QgdgogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAg
ICBWYWx1ZSogZmlyc3QgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0
LCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZhbHVlKiBzZWNvbmQgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmlyc3QpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZCk7
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHNlY29uZCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+
KHByb2MsIHZhbHVlKSwgdmFsdWUpKTsKIH0KQEAgLTQ2MjYsNyArNDYzNCw3IEBAIHZvaWQgdGVz
dEJpdHdpc2VDYXN0T25JbnQzMkluTWVtb3J5KGludDMKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKTsKICAgICBNZW1vcnlWYWx1ZSogbG9hZEZsb2F0ID0gcm9vdC0+YXBwZW5k
TmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2luKCksIGFkZHJlc3MpOwog
ICAgIFZhbHVlKiBjYXN0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2Fz
dCwgT3JpZ2luKCksIGxvYWRGbG9hdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FzdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNhc3QpOwogCiAgICAgQ0hFQ0soaXNJ
ZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYywgJnZhbHVlKSwgYml0d2lzZV9jYXN0
PGZsb2F0Pih2YWx1ZSkpKTsKIH0KQEAgLTQ2MzcsNyArNDY0NSw3IEBAIHZvaWQgdGVzdENvbnZl
cnREb3VibGVUb0Zsb2F0QXJnKGRvdWJsZSAKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBW
YWx1ZSogYXNGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9h
dCwgT3JpZ2luKCksIGFyZ3VtZW50KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0Zsb2F0KTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNGbG9hdCk7CiAKICAgICBDSEVD
Syhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jLCB2YWx1ZSksIHN0YXRpY19j
YXN0PGZsb2F0Pih2YWx1ZSkpKTsKIH0KQEAgLTQ2NDgsNyArNDY1Niw3IEBAIHZvaWQgdGVzdENv
bnZlcnREb3VibGVUb0Zsb2F0SW1tKGRvdWJsZSAKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25z
dERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpOwogICAgIFZhbHVlKiBhc0Zsb2F0
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwg
YXJndW1lbnQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIGFzRmxvYXQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0Zsb2F0KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2Fs
KGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MpLCBzdGF0aWNfY2FzdDxmbG9hdD4odmFsdWUpKSk7
CiB9CkBAIC00NjYwLDcgKzQ2NjgsNyBAQCB2b2lkIHRlc3RDb252ZXJ0RG91YmxlVG9GbG9hdE1l
bShkb3VibGUgCiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVt
b3J5VmFsdWUqIGxvYWRlZERvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJv
YywgTG9hZCwgRG91YmxlLCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIGFzRmxvYXQg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBs
b2FkZWREb3VibGUpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIGFzRmxvYXQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0Zsb2F0KTsKIAogICAgIENIRUNLKGlzSWRlbnRp
Y2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsICZ2YWx1ZSksIHN0YXRpY19jYXN0PGZsb2F0
Pih2YWx1ZSkpKTsKIH0KQEAgLTQ2NzMsNyArNDY4MSw3IEBAIHZvaWQgdGVzdENvbnZlcnRGbG9h
dFRvRG91YmxlQXJnKGZsb2F0IHYKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAgICBWYWx1
ZSogZmxvYXRWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3Qs
IE9yaWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1ZSogYXNEb3VibGUgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBmbG9hdFZhbHVlKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBhc0RvdWJsZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIGFzRG91YmxlKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVB
bmRSdW48ZG91YmxlPihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4odmFsdWUpKSwgc3RhdGlj
X2Nhc3Q8ZG91YmxlPih2YWx1ZSkpKTsKIH0KQEAgLTQ2ODQsNyArNDY5Miw3IEBAIHZvaWQgdGVz
dENvbnZlcnRGbG9hdFRvRG91YmxlSW1tKGZsb2F0IHYKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxD
b25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSk7CiAgICAgVmFsdWUqIGFzRG91
YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4o
KSwgYXJndW1lbnQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIGFzRG91YmxlKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNEb3VibGUpOwogCiAgICAgQ0hFQ0soaXNJZGVu
dGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MpLCBzdGF0aWNfY2FzdDxkb3VibGU+KHZh
bHVlKSkpOwogfQpAQCAtNDY5Niw3ICs0NzA0LDcgQEAgdm9pZCB0ZXN0Q29udmVydEZsb2F0VG9E
b3VibGVNZW0oZmxvYXQgdgogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwog
ICAgIE1lbW9yeVZhbHVlKiBsb2FkZWRGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1
ZT4ocHJvYywgTG9hZCwgRmxvYXQsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogYXNE
b3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdp
bigpLCBsb2FkZWRGbG9hdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgYXNEb3VibGUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0RvdWJsZSk7CiAKICAgICBDSEVDSyhp
c0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgJnZhbHVlKSwgc3RhdGljX2Nh
c3Q8ZG91YmxlPih2YWx1ZSkpKTsKIH0KQEAgLTQ3MDksNyArNDcxNyw3IEBAIHZvaWQgdGVzdENv
bnZlcnREb3VibGVUb0Zsb2F0VG9Eb3VibGVUb0YKICAgICBWYWx1ZSogYXNGbG9hdCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIGFyZ3VtZW50
KTsKICAgICBWYWx1ZSogYXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZs
b2F0VG9Eb3VibGUsIE9yaWdpbigpLCBhc0Zsb2F0KTsKICAgICBWYWx1ZSogYXNGbG9hdEFnYWlu
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwg
YXNEb3VibGUpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIGFzRmxvYXRBZ2Fpbik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFzRmxvYXRBZ2Fpbik7CiAKICAgICBDSEVDSyhp
c0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jLCB2YWx1ZSksIHN0YXRpY19jYXN0
PGZsb2F0Pih2YWx1ZSkpKTsKIH0KQEAgLTQ3MjUsNyArNDczMyw3IEBAIHZvaWQgdGVzdExvYWRG
bG9hdENvbnZlcnREb3VibGVDb252ZXJ0RmwKICAgICBWYWx1ZSogYXNGbG9hdEFnYWluID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgYXNEb3Vi
bGUpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdp
bigpLCBhc0Zsb2F0QWdhaW4sIGRzdCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgMCkpOwogCiAgICAgZmxvYXQgaW5wdXQgPSB2YWx1ZTsKICAgICBmbG9hdCBv
dXRwdXQgPSAwLjsKQEAgLTQ3NDAsNyArNDc0OCw3IEBAIHZvaWQgdGVzdEZyb3VuZEFyZyhkb3Vi
bGUgdmFsdWUpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50
UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZh
bHVlKiBhc0Zsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0
LCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZhbHVlKiBhc0RvdWJsZSA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGFzRmxvYXQpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFz
RG91YmxlKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgYXNEb3VibGUpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1
bjxkb3VibGU+KHByb2MsIHZhbHVlKSwgc3RhdGljX2Nhc3Q8ZG91YmxlPihzdGF0aWNfY2FzdDxm
bG9hdD4odmFsdWUpKSkpOwogfQpAQCAtNDc1Myw3ICs0NzYxLDcgQEAgdm9pZCB0ZXN0RnJvdW5k
TWVtKGRvdWJsZSB2YWx1ZSkKICAgICBNZW1vcnlWYWx1ZSogbG9hZGVkRG91YmxlID0gcm9vdC0+
YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBEb3VibGUsIE9yaWdpbigpLCBhZGRy
ZXNzKTsKICAgICBWYWx1ZSogYXNGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
RG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIGxvYWRlZERvdWJsZSk7CiAgICAgVmFsdWUqIGFzRG91
YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4o
KSwgYXNGbG9hdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgYXNEb3VibGUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0RvdWJsZSk7CiAKICAgICBDSEVDSyhpc0lkZW50
aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgJnZhbHVlKSwgc3RhdGljX2Nhc3Q8ZG91
YmxlPihzdGF0aWNfY2FzdDxmbG9hdD4odmFsdWUpKSkpOwogfQpAQCAtNDc2NCw3ICs0NzcyLDcg
QEAgdm9pZCB0ZXN0SVRvRDY0QXJnKCkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwogICAgIFZhbHVlKiBzcmMgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIHNy
Y0FzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwg
c3JjKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBzcmNBc0RvdWJsZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRG91YmxlKTsKIAogICAgIGF1dG8gY29kZSA9IGNv
bXBpbGUocHJvYyk7CiAgICAgZm9yIChhdXRvIHRlc3RWYWx1ZSA6IGludDY0T3BlcmFuZHMoKSkK
QEAgLTQ3NzcsNyArNDc4NSw3IEBAIHZvaWQgdGVzdElUb0Y2NEFyZygpCiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogc3JjID0gcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApOwogICAgIFZhbHVlKiBzcmNBc0Zsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBJVG9GLCBPcmlnaW4oKSwgc3JjKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0KTsKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdCk7CiAKICAg
ICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIGZvciAoYXV0byB0ZXN0VmFsdWUgOiBp
bnQ2NE9wZXJhbmRzKCkpCkBAIC00NzkxLDcgKzQ3OTksNyBAQCB2b2lkIHRlc3RJVG9EMzJBcmco
KQogICAgIFZhbHVlKiBzcmMgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSogc3JjQXNEb3Vi
bGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBzcmMpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHNyY0FzRG91YmxlKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgc3JjQXNEb3VibGUpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShw
cm9jKTsKICAgICBmb3IgKGF1dG8gdGVzdFZhbHVlIDogaW50MzJPcGVyYW5kcygpKQpAQCAtNDgw
NSw3ICs0ODEzLDcgQEAgdm9pZCB0ZXN0SVRvRjMyQXJnKCkKICAgICBWYWx1ZSogc3JjID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKSk7CiAgICAgVmFsdWUqIHNyY0FzRmxvYXQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIElUb0YsIE9yaWdpbigpLCBzcmMpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXQpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0
KTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgZm9yIChhdXRvIHRlc3RW
YWx1ZSA6IGludDMyT3BlcmFuZHMoKSkKQEAgLTQ4MTksNyArNDgyNyw3IEBAIHZvaWQgdGVzdElU
b0Q2NE1lbSgpCiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVt
b3J5VmFsdWUqIGxvYWRlZFNyYyA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywg
TG9hZCwgSW50NjQsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogc3JjQXNEb3VibGUg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBsb2FkZWRTcmMp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHNyY0FzRG91YmxlKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNEb3VibGUpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGls
ZShwcm9jKTsKICAgICBpbnQ2NF90IGluTWVtb3J5VmFsdWU7CkBAIC00ODM3LDcgKzQ4NDUsNyBA
QCB2b2lkIHRlc3RJVG9GNjRNZW0oKQogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkZWRTcmMgPSByb290LT5hcHBlbmROZXc8TWVtb3J5
VmFsdWU+KHByb2MsIExvYWQsIEludDY0LCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUq
IHNyY0FzRmxvYXQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0YsIE9yaWdpbigp
LCBsb2FkZWRTcmMpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0KTsKIAogICAgIGF1dG8gY29k
ZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgaW50NjRfdCBpbk1lbW9yeVZhbHVlOwpAQCAtNDg1NSw3
ICs0ODYzLDcgQEAgdm9pZCB0ZXN0SVRvRDMyTWVtKCkKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKTsKICAgICBNZW1vcnlWYWx1ZSogbG9hZGVkU3JjID0gcm9vdC0+YXBwZW5k
TmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2luKCksIGFkZHJlc3MpOwog
ICAgIFZhbHVlKiBzcmNBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRv
RCwgT3JpZ2luKCksIGxvYWRlZFNyYyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNEb3VibGUpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0RvdWJsZSk7CiAK
ICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIGludDMyX3QgaW5NZW1vcnlWYWx1
ZTsKQEAgLTQ4NzMsNyArNDg4MSw3IEBAIHZvaWQgdGVzdElUb0YzMk1lbSgpCiAgICAgVmFsdWUq
IGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWRlZFNyYyA9
IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50MzIsIE9yaWdpbigp
LCBhZGRyZXNzKTsKICAgICBWYWx1ZSogc3JjQXNGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgSVRvRiwgT3JpZ2luKCksIGxvYWRlZFNyYyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdCk7CisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0Fz
RmxvYXQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBpbnQzMl90IGlu
TWVtb3J5VmFsdWU7CkBAIC00ODkwLDcgKzQ4OTgsNyBAQCB2b2lkIHRlc3RJVG9ENjRJbW0oaW50
NjRfdCB2YWx1ZSkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAg
IFZhbHVlKiBzcmMgPSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgdmFsdWUpOwogICAgIFZhbHVlKiBzcmNBc0Zsb2F0aW5nUG9pbnQgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBzcmMpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXRpbmdQb2lu
dCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHNyY0FzRmxvYXRpbmdQb2ludCk7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFu
ZFJ1bjxkb3VibGU+KHByb2MpLCBzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVlKSkpOwogfQogCkBA
IC00OTAwLDcgKzQ5MDgsNyBAQCB2b2lkIHRlc3RJVG9GNjRJbW0oaW50NjRfdCB2YWx1ZSkKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBzcmMgPSBy
b290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpOwogICAg
IFZhbHVlKiBzcmNBc0Zsb2F0aW5nUG9pbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IElUb0YsIE9yaWdpbigpLCBzcmMpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXRpbmdQb2ludCk7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXRp
bmdQb2ludCk7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJv
YyksIHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZSkpKTsKIH0KIApAQCAtNDkxMCw3ICs0OTE4LDcg
QEAgdm9pZCB0ZXN0SVRvRDMySW1tKGludDMyX3QgdmFsdWUpCiAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogc3JjID0gcm9vdC0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKTsKICAgICBWYWx1ZSogc3JjQXNGbG9h
dGluZ1BvaW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwg
c3JjKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBzcmNBc0Zsb2F0aW5nUG9pbnQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0aW5nUG9pbnQpOwogICAgIENI
RUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jKSwgc3RhdGljX2Nhc3Q8
ZG91YmxlPih2YWx1ZSkpKTsKIH0KIApAQCAtNDkyMCw3ICs0OTI4LDcgQEAgdm9pZCB0ZXN0SVRv
RjMySW1tKGludDMyX3QgdmFsdWUpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKICAgICBWYWx1ZSogc3JjID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIHZhbHVlKTsKICAgICBWYWx1ZSogc3JjQXNGbG9hdGluZ1BvaW50ID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9GLCBPcmlnaW4oKSwgc3JjKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zs
b2F0aW5nUG9pbnQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0aW5nUG9pbnQpOwogICAgIENIRUNLKGlzSWRlbnRpY2Fs
KGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MpLCBzdGF0aWNfY2FzdDxmbG9hdD4odmFsdWUpKSk7
CiB9CiAKQEAgLTQ5MzEsNyArNDkzOSw3IEBAIHZvaWQgdGVzdElUb0RSZWR1Y2VkVG9JVG9GNjRB
cmcoKQogICAgIFZhbHVlKiBzcmMgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIHNyY0Fz
RG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgc3Jj
KTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBzcmNBc0RvdWJsZSk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBm
bG9hdFJlc3VsdCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIGZvciAo
YXV0byB0ZXN0VmFsdWUgOiBpbnQ2NE9wZXJhbmRzKCkpCkBAIC00OTQ2LDcgKzQ5NTQsNyBAQCB2
b2lkIHRlc3RJVG9EUmVkdWNlZFRvSVRvRjMyQXJnKCkKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjAp
KTsKICAgICBWYWx1ZSogc3JjQXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IElUb0QsIE9yaWdpbigpLCBzcmMpOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIHNyY0FzRG91Ymxl
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBmbG9hdFJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBp
bGUocHJvYyk7CiAgICAgZm9yIChhdXRvIHRlc3RWYWx1ZSA6IGludDMyT3BlcmFuZHMoKSkKQEAg
LTQ5NjQsNyArNDk3Miw3IEBAIHZvaWQgdGVzdFN0b3JlMzIoaW50IHZhbHVlKQogICAgICAgICAg
ICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAm
c2xvdCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9v
dC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIENI
RUNLKCFjb21waWxlQW5kUnVuPGludD4ocHJvYywgdmFsdWUpKTsKQEAgLTQ5ODAsNyArNDk4OCw3
IEBAIHZvaWQgdGVzdFN0b3JlQ29uc3RhbnQoaW50IHZhbHVlKQogICAgICAgICBwcm9jLCBTdG9y
ZSwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCB2YWx1ZSksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgJnNsb3QpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAwKSk7CiAKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MpKTsKQEAgLTUw
MDAsNyArNTAwOCw3IEBAIHZvaWQgdGVzdFN0b3JlQ29uc3RhbnRQdHIoaW50cHRyX3QgdmFsdWUK
ICAgICAgICAgcHJvYywgU3RvcmUsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAmc2xvdCkpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIENIRUNLKCFjb21waWxlQW5kUnVu
PGludD4ocHJvYykpOwpAQCAtNTAxOCw3ICs1MDI2LDcgQEAgdm9pZCB0ZXN0U3RvcmU4QXJnKCkK
ICAgICAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CiAKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZTgsIE9yaWdpbigpLCB2YWx1ZSwg
YWRkcmVzcyk7Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHZhbHVlKTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKIAogICAgICAgICBpbnQ4X3Qgc3Rv
cmFnZSA9IDA7CiAgICAgICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgNDIs
ICZzdG9yYWdlKSA9PSA0Mik7CkBAIC01MDM5LDcgKzUwNDcsNyBAQCB2b2lkIHRlc3RTdG9yZThB
cmcoKQogICAgICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQWRkLCBPcmlnaW4oKSwgYmFzZURpc3BsYWNlbWVudCwgb2Zmc2V0KTsKIAogICAgICAgICBy
b290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlOCwgT3JpZ2luKCksIHZhbHVl
LCBhZGRyZXNzKTsKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOwogCiAgICAgICAgIGludDhfdCBz
dG9yYWdlID0gMDsKICAgICAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCA0
MiwgJnN0b3JhZ2UsIDEpID09IDQyKTsKQEAgLTUwNTcsNyArNTA2NSw3IEBAIHZvaWQgdGVzdFN0
b3JlOEltbSgpCiAgICAgICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmU4LCBPcmlnaW4o
KSwgdmFsdWUsIGFkZHJlc3MpOwotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CiAKICAgICAgICAg
aW50OF90IHN0b3JhZ2UgPSAwOwogICAgICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+
KHByb2MsICZzdG9yYWdlKSA9PSA0Mik7CkBAIC01MDc3LDcgKzUwODUsNyBAQCB2b2lkIHRlc3RT
dG9yZThJbW0oKQogICAgICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYmFzZURpc3BsYWNlbWVudCwgb2Zmc2V0KTsKIAogICAg
ICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlOCwgT3JpZ2luKCks
IHZhbHVlLCBhZGRyZXNzKTsKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOworICAgICAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOwogCiAgICAgICAgIGlu
dDhfdCBzdG9yYWdlID0gMDsKICAgICAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihw
cm9jLCAmc3RvcmFnZSwgMSkgPT0gNDIpOwpAQCAtNTEyOSw3ICs1MTM3LDcgQEAgdm9pZCB0ZXN0
U3RvcmVQYXJ0aWFsOEJpdFJlZ2lzdGVyT25YODYoKQogICAgIC8vIGlmIHdlIHVzZSBYODYgcGFy
dGlhbCByZWdpc3RlcnMuCiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBT
dG9yZTgsIE9yaWdpbigpLCBwYXRjaHBvaW50LCB3aGVyZVRvU3RvcmUpOwogCi0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmV0dXJuVmFs
dWUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXR1cm5WYWx1ZSk7CiAKICAgICBpbnQ4X3Qgc3RvcmFnZSA9IDB4ZmY7CiAgICAgQ0hF
Q0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAweDEyMzQ1Njc4YWJjZGVmMTIsICZzdG9y
YWdlKSA9PSAweDEyMzQ1Njc4YWJjZGVmMTIpOwpAQCAtNTE0Nyw3ICs1MTU1LDcgQEAgdm9pZCB0
ZXN0U3RvcmUxNkFyZygpCiAgICAgICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEp
OwogCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUxNiwg
T3JpZ2luKCksIHZhbHVlLCBhZGRyZXNzKTsKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOworICAgICAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOwogCiAg
ICAgICAgIGludDE2X3Qgc3RvcmFnZSA9IC0xOwogICAgICAgICBDSEVDSyhjb21waWxlQW5kUnVu
PGludDY0X3Q+KHByb2MsIDQyLCAmc3RvcmFnZSkgPT0gNDIpOwpAQCAtNTE2OCw3ICs1MTc2LDcg
QEAgdm9pZCB0ZXN0U3RvcmUxNkFyZygpCiAgICAgICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBiYXNlRGlzcGxhY2VtZW50LCBv
ZmZzZXQpOwogCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3Rv
cmUxNiwgT3JpZ2luKCksIHZhbHVlLCBhZGRyZXNzKTsKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOworICAgICAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUp
OwogCiAgICAgICAgIGludDE2X3Qgc3RvcmFnZSA9IC0xOwogICAgICAgICBDSEVDSyhjb21waWxl
QW5kUnVuPGludDY0X3Q+KHByb2MsIDQyLCAmc3RvcmFnZSwgMSkgPT0gNDIpOwpAQCAtNTE4Niw3
ICs1MTk0LDcgQEAgdm9pZCB0ZXN0U3RvcmUxNkltbSgpCiAgICAgICAgIFZhbHVlKiBhZGRyZXNz
ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApOwogCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1
ZT4ocHJvYywgU3RvcmUxNiwgT3JpZ2luKCksIHZhbHVlLCBhZGRyZXNzKTsKLSAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUp
OworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgdmFsdWUpOwogCiAgICAgICAgIGludDE2X3Qgc3RvcmFnZSA9IC0xOwogICAgICAgICBD
SEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsICZzdG9yYWdlKSA9PSA0Mik7CkBAIC01
MjA2LDcgKzUyMTQsNyBAQCB2b2lkIHRlc3RTdG9yZTE2SW1tKCkKICAgICAgICAgVmFsdWUqIGFk
ZHJlc3MgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGJhc2VE
aXNwbGFjZW1lbnQsIG9mZnNldCk7CiAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZh
bHVlPihwcm9jLCBTdG9yZTE2LCBPcmlnaW4oKSwgdmFsdWUsIGFkZHJlc3MpOwotICAgICAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1
ZSk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCB2YWx1ZSk7CiAKICAgICAgICAgaW50MTZfdCBzdG9yYWdlID0gLTE7CiAgICAgICAg
IENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgJnN0b3JhZ2UsIDEpID09IDQyKTsK
QEAgLTUyMTgsNyArNTIyNiw3IEBAIHZvaWQgdGVzdFRydW5jKGludDY0X3QgdmFsdWUpCiB7CiAg
ICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2lu
KCksCkBAIC01MjMxLDcgKzUyMzksNyBAQCB2b2lkIHRlc3RBZGQxKGludCB2YWx1ZSkKIHsKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCks
CkBAIC01MjQ3LDcgKzUyNTUsNyBAQCB2b2lkIHRlc3RBZGQxUHRyKGludHB0cl90IHZhbHVlKQog
ewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmln
aW4oKSwKQEAgLTUyNjEsNyArNTI2OSw3IEBAIHZvaWQgdGVzdE5lZzMyKGludDMyX3QgdmFsdWUp
CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTdWIsIE9y
aWdpbigpLApAQCAtNTI3Nyw3ICs1Mjg1LDcgQEAgdm9pZCB0ZXN0TmVnUHRyKGludHB0cl90IHZh
bHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU3Vi
LCBPcmlnaW4oKSwKQEAgLTUzMDIsNyArNTMxMCw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9hZDMy
KGludCBhbW91bnQpCiAgICAgICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAg
ICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSkpLAogICAgICAgICBzbG90UHRyKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTUzMjMsNyAr
NTMzMSw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9hZEltbTMyKGludCBhbW91bnQpCiAgICAgICAg
ICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDMyLCBPcmln
aW4oKSwgc2xvdFB0ciksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgYW1vdW50KSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNTM0Niw3ICs1MzU0
LDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkOChpbnQgYW1vdW50LCBCMzo6TwogICAgICAgICAg
ICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgICAgICByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCkpKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01MzY3LDcgKzUzNzUsNyBAQCB2b2lkIHRlc3RTdG9y
ZUFkZExvYWRJbW04KGludCBhbW91bnQsIEIzCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8
TWVtb3J5VmFsdWU+KHByb2MsIGxvYWRPcGNvZGUsIE9yaWdpbigpLCBzbG90UHRyKSwKICAgICAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhbW91
bnQpKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgMCkpOwogCkBAIC01MzkwLDcgKzUzOTgsNyBAQCB2b2lkIHRlc3RTdG9yZUFk
ZExvYWQxNihpbnQgYW1vdW50LCBCMzo6CiAgICAgICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9y
aWdpbigpLAogICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSkpLAogICAgICAgICBzbG90
UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAK
QEAgLTU0MTEsNyArNTQxOSw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9hZEltbTE2KGludCBhbW91
bnQsIEIKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgbG9h
ZE9wY29kZSwgT3JpZ2luKCksIHNsb3RQdHIpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFtb3VudCkpLAogICAgICAgICBzbG90UHRy
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAg
LTU0MzIsNyArNTQ0MCw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9hZDY0KGludCBhbW91bnQpCiAg
ICAgICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDY0
LCBPcmlnaW4oKSwgc2xvdFB0ciksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAg
ICAgICBzbG90UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCAwKSk7CiAKQEAgLTU0NTMsNyArNTQ2MSw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9hZEltbTY0
KGludDY0X3QgYW1vdW4KICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4o
cHJvYywgTG9hZCwgSW50NjQsIE9yaWdpbigpLCBzbG90UHRyKSwKICAgICAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhbW91bnQpKSwKICAgICAg
ICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
MCkpOwogCkBAIC01NDg1LDcgKzU0OTMsNyBAQCB2b2lkIHRlc3RTdG9yZUFkZExvYWQzMkluZGV4
KGludCBhbW91bnQpCiAgICAgICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAg
ICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSkpLAogICAgICAgICBzbG90UHRyKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTU1MTUsNyAr
NTUyMyw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9hZEltbTMySW5kZXgoaW50IGFtb3UKICAgICAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50MzIsIE9y
aWdpbigpLCBzbG90UHRyKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBhbW91bnQpKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01NTQ3LDcgKzU1
NTUsNyBAQCB2b2lkIHRlc3RTdG9yZUFkZExvYWQ4SW5kZXgoaW50IGFtb3VudCwgCiAgICAgICAg
ICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwKSkpLAogICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTU1NzcsNyArNTU4NSw3IEBAIHZvaWQgdGVzdFN0
b3JlQWRkTG9hZEltbThJbmRleChpbnQgYW1vdW4KICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxNZW1vcnlWYWx1ZT4ocHJvYywgbG9hZE9wY29kZSwgT3JpZ2luKCksIHNsb3RQdHIpLAogICAg
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFt
b3VudCkpLAogICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTU2MDksNyArNTYxNyw3IEBAIHZvaWQgdGVzdFN0b3Jl
QWRkTG9hZDE2SW5kZXgoaW50IGFtb3VudCwKICAgICAgICAgICAgICAgICBwcm9jLCBUcnVuYywg
T3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSksCiAgICAgICAgIHNs
b3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsK
IApAQCAtNTYzOSw3ICs1NjQ3LDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkSW1tMTZJbmRleChp
bnQgYW1vdQogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBs
b2FkT3Bjb2RlLCBPcmlnaW4oKSwgc2xvdFB0ciksCiAgICAgICAgICAgICByb290LT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYW1vdW50KSksCiAgICAgICAgIHNsb3RQ
dHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApA
QCAtNTY2OSw3ICs1Njc3LDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkNjRJbmRleChpbnQgYW1v
dW50KQogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2Fk
LCBJbnQ2NCwgT3JpZ2luKCksIHNsb3RQdHIpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjAp
KSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgMCkpOwogCkBAIC01Njk5LDcgKzU3MDcsNyBAQCB2b2lkIHRlc3RTdG9yZUFkZExv
YWRJbW02NEluZGV4KGludDY0X3QgCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5
VmFsdWU+KHByb2MsIExvYWQsIEludDY0LCBPcmlnaW4oKSwgc2xvdFB0ciksCiAgICAgICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYW1vdW50KSks
CiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIDApKTsKIApAQCAtNTcyMyw3ICs1NzMxLDcgQEAgdm9pZCB0ZXN0U3RvcmVTdWJMb2Fk
KGludCBhbW91bnQpCiAgICAgICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAg
ICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSkpLAogICAgICAgICBzbG90UHRyKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTU3NTAsNyAr
NTc1OCw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9hZEludGVyZmVyZW5jZShpbnQgYW0KICAgICAg
ICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCiAgICAgICAgICAgICBsb2FkLCByb290LT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYW1vdW50KSksCiAgICAgICAgIHNs
b3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsK
IApAQCAtNTc3NCw3ICs1NzgyLDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRBbmRMb2FkKGludCBhbW91
bnQsIGludAogICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBhbW91bnQpKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBtYXNrKSksCiAgICAgICAgIHNsb3RQdHIpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNTc5OSw3
ICs1ODA3LDcgQEAgdm9pZCB0ZXN0U3RvcmVOZWdMb2FkMzIoaW50MzJfdCB2YWx1ZSkKICAgICAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50MzIsIE9y
aWdpbigpLCBzbG90UHRyKSksCiAgICAgICAgIHNsb3RQdHIpOwogICAgIAotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGlu
dDMyX3Q+KHByb2MpKTsKQEAgLTU4MjMsNyArNTgzMSw3IEBAIHZvaWQgdGVzdFN0b3JlTmVnTG9h
ZFB0cihpbnRwdHJfdCB2YWx1ZSkKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlW
YWx1ZT4ocHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCksIHNsb3RQdHIpKSwKICAg
ICAgICAgc2xvdFB0cik7CiAgICAgCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
MCkpOwogCiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYykpOwpAQCAtNTgz
NCw3ICs1ODQyLDcgQEAgdm9pZCB0ZXN0QWRkMVVuY29tbXV0ZWQoaW50IHZhbHVlKQogewogICAg
IFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwK
QEAgLTU4NTIsNyArNTg2MCw3IEBAIHZvaWQgdGVzdExvYWRPZmZzZXQoKQogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgaW50IGFycmF5W10gPSB7IDEsIDIgfTsK
ICAgICBDb25zdFB0clZhbHVlKiBhcnJheVB0ciA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgYXJyYXkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCkBAIC01ODY4LDcgKzU4NzYsNyBAQCB2b2lkIHRl
c3RMb2FkT2Zmc2V0Tm90Q29uc3RhbnQoKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7CiAgICAgaW50IGFycmF5W10gPSB7IDEsIDIgfTsKICAgICBWYWx1ZSogYXJyYXlQ
dHIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgQWRkLCBPcmlnaW4oKSwKQEAgLTU4ODQsNyArNTg5Miw3IEBAIHZvaWQgdGVzdExvYWRP
ZmZzZXRVc2luZ0FkZCgpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
ICAgICBpbnQgYXJyYXlbXSA9IHsgMSwgMiB9OwogICAgIENvbnN0UHRyVmFsdWUqIGFycmF5UHRy
ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhcnJheSk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwK
QEAgLTU5MjUsNyArNTkzMyw3IEBAIHZvaWQgdGVzdExvYWRPZmZzZXRVc2luZ0FkZEludGVyZmVy
ZW5jZSgKICAgICAgICAgcHJvYywgU3RvcmUsIE9yaWdpbigpLCB0aGVOdW1iZXJPZlRoZUJlYXN0
LCBvdGhlckFycmF5UHRyLCAwKTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAog
ICAgICAgICBwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHRoZU51bWJlck9mVGhlQmVhc3QsIG90aGVy
QXJyYXlQdHIsIHNpemVvZihpbnQpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBBZGQsIE9yaWdpbigpLCBsZWZ0LCByaWdodCkpOwpAQCAtNTk0MSw3ICs1OTQ5LDcg
QEAgdm9pZCB0ZXN0TG9hZE9mZnNldFVzaW5nQWRkTm90Q29uc3RhbnQoKQogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgaW50IGFycmF5W10gPSB7IDEsIDIgfTsK
ICAgICBWYWx1ZSogYXJyYXlQdHIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKQEAgLTU5NzcsNyArNTk4NSw3
IEBAIHZvaWQgdGVzdExvYWRBZGRyU2hpZnQodW5zaWduZWQgc2hpZnQpCiAKICAgICAqc2xvdCA9
IDg2NzUzMDk7CiAgICAgCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgTG9hZCwgSW50MzIsIE9yaWdpbigpLApAQCAtNTk5Myw3ICs2MDAxLDcgQEAgdm9pZCB0
ZXN0RnJhbWVQb2ludGVyKCkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGcmFt
ZVBvaW50ZXIsIE9yaWdpbigpKSk7CiAKQEAgLTYwMTYsNyArNjAyNCw3IEBAIHZvaWQgdGVzdE92
ZXJyaWRlRnJhbWVQb2ludGVyKCkKICAgICAgICAgVmFsdWUqIGZwID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBGcmFtZVBvaW50ZXIsIE9yaWdpbigpKTsKICAgICAgICAgVmFsdWUqIHJl
c3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgZnAsIG9m
ZnNldCk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgICAgIENIRUNLKGNvbXBp
bGVBbmRSdW48aW50NjRfdD4ocHJvYywgMSkpOwogICAgIH0KICAgICB7CkBAIC02MDMyLDcgKzYw
NDAsNyBAQCB2b2lkIHRlc3RPdmVycmlkZUZyYW1lUG9pbnRlcigpCiAgICAgICAgIFZhbHVlKiBv
ZmZzZXRBcmcgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIG9m
ZnNldCwgYXJnKTsKICAgICAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgb2Zmc2V0QXJnLCBvZmZzZXRGUCk7CiAKLSAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0KTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdCk7CiAgICAgICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4o
cHJvYywgMSwgMikpOwogICAgIH0KIH0KQEAgLTYwNDEsNyArNjA0OSw3IEBAIHZvaWQgdGVzdFN0
YWNrU2xvdCgpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxTbG90QmFzZVZhbHVlPihwcm9jLCBPcmln
aW4oKSwgcHJvYy5hZGRTdGFja1Nsb3QoMSkpKTsKIApAQCAtNjA1NCw3ICs2MDYyLDcgQEAgdm9p
ZCB0ZXN0TG9hZEZyb21GcmFtZVBvaW50ZXIoKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCks
CkBAIC02MDgxLDcgKzYwODksNyBAQCB2b2lkIHRlc3RTdG9yZUxvYWRTdGFja1Nsb3QoaW50IHZh
bHVlKQogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAgc3RhY2spOwogICAg
IAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2luKCks
IHN0YWNrKSk7CiAKQEAgLTYxMTYsNyArNjEyNCw3IEBAIHZvaWQgdGVzdExvYWQoQjM6Ok9wY29k
ZSBvcGNvZGUsIElucHV0VHkKICAgICAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgICAgIAotICAgICAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgb3Bjb2Rl
LCB0eXBlLCBPcmlnaW4oKSwKQEAgLTYxMzAsNyArNjEzOCw3IEBAIHZvaWQgdGVzdExvYWQoQjM6
Ok9wY29kZSBvcGNvZGUsIElucHV0VHkKICAgICAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgICAgIAotICAgICAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywg
b3Bjb2RlLCB0eXBlLCBPcmlnaW4oKSwKQEAgLTYxNDQsNyArNjE1Miw3IEBAIHZvaWQgdGVzdExv
YWQoQjM6Ok9wY29kZSBvcGNvZGUsIElucHV0VHkKICAgICAgICAgUHJvY2VkdXJlIHByb2M7CiAg
ICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgICAgIAotICAg
ICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICAgICAg
cHJvYywgb3Bjb2RlLCB0eXBlLCBPcmlnaW4oKSwKQEAgLTYxNTksNyArNjE2Nyw3IEBAIHZvaWQg
dGVzdExvYWQoQjM6Ok9wY29kZSBvcGNvZGUsIElucHV0VHkKICAgICAgICAgUHJvY2VkdXJlIHBy
b2M7CiAgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgICAgIHBy
b2MsIG9wY29kZSwgdHlwZSwgT3JpZ2luKCksCkBAIC02MTc5LDcgKzYxODcsNyBAQCB2b2lkIHRl
c3RMb2FkKEIzOjpPcGNvZGUgb3Bjb2RlLCBJbnB1dFR5CiAgICAgICAgIFByb2NlZHVyZSBwcm9j
OwogICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9j
LCBvcGNvZGUsIHR5cGUsIE9yaWdpbigpLApAQCAtNjIxOSw3ICs2MjI3LDcgQEAgdm9pZCB0ZXN0
U3RvcmVGbG9hdChkb3VibGUgaW5wdXQpCiAgICAgICAgIFZhbHVlKiBkZXN0aW5hdGlvbkFkZHJl
c3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1
ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCBhcmd1bWVudEFzRmxvYXQsIGRlc3RpbmF0aW9uQWRk
cmVzcyk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDApKTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCAwKSk7CiAKICAgICAgICAgZmxvYXQgb3V0cHV0ID0gMC47CiAgICAgICAgIENIRUNLKCFjb21w
aWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIGlucHV0LCAmb3V0cHV0KSk7CkBAIC02MjQzLDcgKzYy
NTEsNyBAQCB2b2lkIHRlc3RTdG9yZUZsb2F0KGRvdWJsZSBpbnB1dCkKIAogICAgICAgICByb290
LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgYXJndW1lbnRB
c0Zsb2F0LCBkZXN0aW5hdGlvbkFkZHJlc3MpOwogCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgICAgIGZsb2F0IG91dHB1dCA9IDAu
OwogICAgICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCBpbnB1dCwgJm91
dHB1dCAtIDEsIDEpKTsKQEAgLTYyNjMsNyArNjI3MSw3IEBAIHZvaWQgdGVzdFN0b3JlRG91Ymxl
Q29uc3RhbnRBc0Zsb2F0KGRvdWIKIAogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4o
cHJvYywgU3RvcmUsIE9yaWdpbigpLCB2YWx1ZUFzRmxvYXQsIGRlc3RpbmF0aW9uQWRkcmVzcyk7
CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
b290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAg
ZmxvYXQgb3V0cHV0ID0gMC47CiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJv
YywgaW5wdXQsICZvdXRwdXQpKTsKQEAgLTYyODksNyArNjI5Nyw3IEBAIHZvaWQgdGVzdFNwaWxs
R1AoKQogICAgIGZvciAoVmFsdWUqIHZhbHVlIDogc291cmNlcykKICAgICAgICAgdG90YWwgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIHRvdGFsLCB2YWx1ZSk7
CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCB0b3RhbCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHRvdGFsKTsKICAgICBjb21waWxlQW5kUnVuPGludD4ocHJvYywgMSwgMik7
CiB9CiAKQEAgLTYzMTIsNyArNjMyMCw3IEBAIHZvaWQgdGVzdFNwaWxsRlAoKQogICAgIGZvciAo
VmFsdWUqIHZhbHVlIDogc291cmNlcykKICAgICAgICAgdG90YWwgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIHRvdGFsLCB2YWx1ZSk7CiAKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB0b3RhbCk7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHRv
dGFsKTsKICAgICBjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgMS4xLCAyLjUpOwogfQogCkBA
IC02MzI4LDcgKzYzMzYsNyBAQCB2b2lkIHRlc3RJbnQzMlRvRG91YmxlUGFydGlhbFJlZ2lzdGVy
U3RhCiAgICAgVmFsdWUqIGNvdW50ZXIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVXBzaWxvblZh
bHVlKiBvcmlnaW5hbFRvdGFsID0gcm9vdC0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywg
T3JpZ2luKCksIHRvdGFsKTsKICAgICBVcHNpbG9uVmFsdWUqIG9yaWdpbmFsQ291bnRlciA9IHJv
b3QtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCBjb3VudGVyKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJl
cXVlbnRlZEJsb2NrKGxvb3ApKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhsb29wKSk7CiAKICAgICAvLyBMb29w
LgogICAgIFZhbHVlKiBsb29wQ291bnRlciA9IGxvb3AtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
UGhpLCBJbnQ2NCwgT3JpZ2luKCkpOwpAQCAtNjM0NSwxMyArNjM1MywxMyBAQCB2b2lkIHRlc3RJ
bnQzMlRvRG91YmxlUGFydGlhbFJlZ2lzdGVyU3RhCiAgICAgVmFsdWUqIGRlY0NvdW50ZXIgPSBs
b29wLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIGxvb3BDb3VudGVyLCBs
b29wLT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogICAgIFVw
c2lsb25WYWx1ZSogZGVjQ291bnRlclVwc2lsb24gPSBsb29wLT5hcHBlbmROZXc8VXBzaWxvblZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgZGVjQ291bnRlcik7CiAgICAgZGVjQ291bnRlclVwc2lsb24t
PnNldFBoaShsb29wQ291bnRlcik7Ci0gICAgbG9vcC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgbG9vcC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gs
IE9yaWdpbigpLAogICAgICAgICBkZWNDb3VudGVyLAogICAgICAgICBGcmVxdWVudGVkQmxvY2so
bG9vcCksIEZyZXF1ZW50ZWRCbG9jayhkb25lKSk7CiAKICAgICAvLyBUYWlsLgotICAgIGRvbmUt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHVwZGF0ZWRU
b3RhbCk7CisgICAgZG9uZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHVwZGF0ZWRUb3RhbCk7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1
bjxkb3VibGU+KHByb2MsIDEwMDAwMCksIDUwMDAwNTAwMDAuKSk7CiB9CiAKQEAgLTYzNzEsNyAr
NjM3OSw3IEBAIHZvaWQgdGVzdEludDMyVG9Eb3VibGVQYXJ0aWFsUmVnaXN0ZXJXaXQKICAgICBW
YWx1ZSogZm9yUGFkZGluZ0lucHV0QWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgJmZvclBhZGRpbmdJbnB1dCk7CiAgICAgdWludDY0X3QgZm9y
UGFkZGluZ091dHB1dDsKICAgICBWYWx1ZSogZm9yUGFkZGluZ091dHB1dEFkZHJlc3MgPSByb290
LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZmb3JQYWRkaW5nT3V0
cHV0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmln
aW4oKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3ApKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhsb29wKSk7CiAKICAg
ICAvLyBMb29wLgogICAgIFZhbHVlKiBsb29wQ291bnRlciA9IGxvb3AtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgUGhpLCBJbnQ2NCwgT3JpZ2luKCkpOwpAQCAtNjQwNSwxMyArNjQxMywxMyBAQCB2
b2lkIHRlc3RJbnQzMlRvRG91YmxlUGFydGlhbFJlZ2lzdGVyV2l0CiAgICAgVmFsdWUqIGRlY0Nv
dW50ZXIgPSBsb29wLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIGxvb3BD
b3VudGVyLCBsb29wLT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkp
OwogICAgIFVwc2lsb25WYWx1ZSogZGVjQ291bnRlclVwc2lsb24gPSBsb29wLT5hcHBlbmROZXc8
VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgZGVjQ291bnRlcik7CiAgICAgZGVjQ291bnRl
clVwc2lsb24tPnNldFBoaShsb29wQ291bnRlcik7Ci0gICAgbG9vcC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgbG9vcC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICBkZWNDb3VudGVyLAogICAgICAgICBGcmVxdWVu
dGVkQmxvY2sobG9vcCksIEZyZXF1ZW50ZWRCbG9jayhkb25lKSk7CiAKICAgICAvLyBUYWlsLgot
ICAgIGRvbmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHVwZGF0ZWRUb3RhbCk7CisgICAgZG9uZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHVwZGF0ZWRUb3RhbCk7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29t
cGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIDEwMDAwMCksIDUwMDAwNTAwMDAuKSk7CiB9CiAKQEAg
LTY0MjIsMTggKzY0MzAsMTggQEAgdm9pZCB0ZXN0QnJhbmNoKCkKICAgICBCYXNpY0Jsb2NrKiB0
aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHBy
b2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAg
IEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwog
Ci0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
MSkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VD
YXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgMCkpOwogCkBAIC02NDQ5LDE2ICs2NDU3LDE2IEBAIHZvaWQgdGVzdEJyYW5jaFB0cigp
CiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNC
bG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwKICAgICAg
ICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7
CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2Ut
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxz
ZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCAwKSk7CiAKQEAgLTY0NzUsNyArNjQ4Myw3IEBAIHZvaWQgdGVzdERpYW1vbmQoKQog
ICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxv
Y2sqIGRvbmUgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCkBAIC02NDg0LDE2ICs2NDkyLDE2IEBAIHZv
aWQgdGVzdERpYW1vbmQoKQogCiAgICAgVXBzaWxvblZhbHVlKiB0aGVuUmVzdWx0ID0gdGhlbkNh
c2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KAogICAgICAgICBwcm9jLCBPcmlnaW4oKSwgdGhl
bkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7Ci0gICAg
dGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBG
cmVxdWVudGVkQmxvY2soZG9uZSkpOworICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhkb25lKSk7CiAKICAgICBV
cHNpbG9uVmFsdWUqIGVsc2VSZXN1bHQgPSBlbHNlQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1
ZT4oCiAgICAgICAgIHByb2MsIE9yaWdpbigpLCBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhkb25lKSk7Cisg
ICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwg
RnJlcXVlbnRlZEJsb2NrKGRvbmUpKTsKIAogICAgIFZhbHVlKiBwaGkgPSBkb25lLT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIFBoaSwgSW50MzIsIE9yaWdpbigpKTsKICAgICB0aGVuUmVzdWx0LT5z
ZXRQaGkocGhpKTsKICAgICBlbHNlUmVzdWx0LT5zZXRQaGkocGhpKTsKLSAgICBkb25lLT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwaGkpOworICAgIGRv
bmUtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwaGkpOwog
CiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBDSEVDSyhpbnZva2U8aW50Pigq
Y29kZSwgNDIpID09IDEpOwpAQCAtNjUwNyw3ICs2NTE1LDcgQEAgdm9pZCB0ZXN0QnJhbmNoTm90
RXF1YWwoKQogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAg
IEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTm90RXF1YWwsIE9yaWdpbigpLApAQCAtNjUxNywx
MSArNjUyNSwxMSBAQCB2b2lkIHRlc3RCcmFuY2hOb3RFcXVhbCgpCiAgICAgICAgICAgICByb290
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpLAogICAgICAgICBG
cmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAot
ICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEp
KTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2Fz
ZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDApKTsKIApAQCAtNjUzNyw3ICs2NTQ1LDcgQEAgdm9pZCB0ZXN0QnJhbmNoTm90RXF1YWxD
b21tdXRlKCkKICAgICBCYXNpY0Jsb2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAg
ICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIE5vdEVxdWFsLCBPcmlnaW4oKSwKQEAgLTY1NDcs
MTEgKzY1NTUsMTEgQEAgdm9pZCB0ZXN0QnJhbmNoTm90RXF1YWxDb21tdXRlKCkKICAgICAgICAg
ICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMCkpKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5D
YXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2Ut
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTY1Njcs
NyArNjU3NSw3IEBAIHZvaWQgdGVzdEJyYW5jaE5vdEVxdWFsTm90RXF1YWwoKQogICAgIEJhc2lj
QmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VD
YXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFu
Y2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgTm90RXF1YWwsIE9yaWdpbigpLApAQCAtNjU4MCwxMSArNjU4OCwxMSBAQCB2b2lk
IHRlc3RCcmFuY2hOb3RFcXVhbE5vdEVxdWFsKCkKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSksCiAgICAgICAgIEZyZXF1ZW50ZWRC
bG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNh
c2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5D
YXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAg
ZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwog
CkBAIC02NjAwLDcgKzY2MDgsNyBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbCgpCiAgICAgQmFzaWNC
bG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNh
c2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5j
aCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBFcXVhbCwgT3JpZ2luKCksCkBAIC02NjEwLDExICs2NjE4LDExIEBAIHZvaWQgdGVz
dEJyYW5jaEVxdWFsKCkKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAwKSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSks
IEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCkBAIC02NjMwLDcgKzY2
MzgsNyBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbEVxdWFsKCkKICAgICBCYXNpY0Jsb2NrKiB0aGVu
Q2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2Mu
YWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEVx
dWFsLCBPcmlnaW4oKSwKQEAgLTY2NDMsMTEgKzY2NTEsMTEgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1
YWxFcXVhbCgpCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgMCkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVx
dWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNjY2Myw3ICs2NjcxLDcg
QEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxDb21tdXRlKCkKICAgICBCYXNpY0Jsb2NrKiB0aGVuQ2Fz
ZSA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRk
QmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEVxdWFs
LCBPcmlnaW4oKSwKQEAgLTY2NzMsMTEgKzY2ODEsMTEgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxD
b21tdXRlKCkKICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpKSwKICAgICAgICAgRnJl
cXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAg
ICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7
CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2Ut
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCAxKSk7CiAKQEAgLTY2OTMsNyArNjcwMSw3IEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsRXF1YWwx
KCkKICAgICBCYXNpY0Jsb2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNp
Y0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIEVxdWFsLCBPcmlnaW4oKSwKQEAgLTY3MDYsMTEgKzY3MTQs
MTEgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxFcXVhbDEoKQogICAgICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKSwKICAgICAgICAgRnJlcXVl
bnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0
aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
dGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAK
LSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAx
KSk7CiAKQEAgLTY3MjgsNyArNjczNiw3IEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsT3JVbm9yZGVy
ZWRBcmdzKGRvdWIKIAogICAgIFZhbHVlKiBhcmd1bWVudEEgPSByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAg
ICAgVmFsdWUqIGFyZ3VtZW50QiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIxKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBFcXVhbE9yVW5vcmRlcmVkLCBPcmlnaW4oKSwKQEAgLTY3
MzYsMTEgKzY3NDQsMTEgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJlZEFyZ3MoZG91
YgogICAgICAgICAgICAgYXJndW1lbnRCKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5D
YXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwogCi0gICAgZWxzZUNhc2Ut
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNl
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTEzKSk7CiAKQEAgLTY3
NjAsNyArNjc2OCw3IEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsT3JVbm9yZGVyZWRBcmdzKGZsb2EK
ICAgICBWYWx1ZSogYXJndW1lbnRCID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9j
LCBMb2FkLCBGbG9hdCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7CiAKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBFcXVhbE9yVW5vcmRlcmVkLCBP
cmlnaW4oKSwKQEAgLTY3NjgsMTEgKzY3NzYsMTEgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVu
b3JkZXJlZEFyZ3MoZmxvYQogICAgICAgICAgICAgYXJndW1lbnRCKSwKICAgICAgICAgRnJlcXVl
bnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0
aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
dGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwog
Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
LTEzKSk7CiAKQEAgLTY3OTcsMTYgKzY4MDUsMTYgQEAgdm9pZCB0ZXN0QnJhbmNoTm90RXF1YWxB
bmRPcmRlcmVkQXJncyhkbwogICAgICAgICBwcm9jLCBFcXVhbCwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSwKICAgICAg
ICAgZXF1YWxPclVub3JkZXJlZCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gs
IE9yaWdpbigpLAogICAgICAgICBub3RFcXVhbEFuZE9yZGVyZWQsCiAgICAgICAgIEZyZXF1ZW50
ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhl
bkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRo
ZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpKTsKIAot
ICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0x
MykpOwogCkBAIC02ODMzLDE2ICs2ODQxLDE2IEBAIHZvaWQgdGVzdEJyYW5jaE5vdEVxdWFsQW5k
T3JkZXJlZEFyZ3MoZmwKICAgICAgICAgcHJvYywgRXF1YWwsIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCksCiAgICAgICAg
IGVxdWFsT3JVbm9yZGVyZWQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBP
cmlnaW4oKSwKICAgICAgICAgbm90RXF1YWxBbmRPcmRlcmVkLAogICAgICAgICBGcmVxdWVudGVk
QmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5D
YXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVu
Q2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7CiAKLSAg
ICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMTMp
KTsKIApAQCAtNjg1OSw3ICs2ODY3LDcgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJl
ZERvdWJsZUFyZwogCiAgICAgVmFsdWUqIGFyZ3VtZW50QSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAg
ICBWYWx1ZSogYXJndW1lbnRCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBiKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBFcXVhbE9yVW5vcmRlcmVkLCBPcmlnaW4oKSwKQEAgLTY4NjcsMTEgKzY4NzUsMTEgQEAgdm9p
ZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJlZERvdWJsZUFyZwogICAgICAgICAgICAgYXJndW1l
bnRCKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2Nr
KGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCA0MikpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgLTEzKSk7CiAKQEAgLTY4OTAsNyArNjg5OCw3IEBAIHZvaWQg
dGVzdEJyYW5jaEVxdWFsT3JVbm9yZGVyZWRGbG9hdEFyZ0kKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApKTsKICAgICBWYWx1ZSogYXJndW1lbnRCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBC
cmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgcHJvYywgRXF1YWxPclVub3JkZXJlZCwgT3JpZ2luKCksCkBAIC02ODk4LDExICs2OTA2
LDExIEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsT3JVbm9yZGVyZWRGbG9hdEFyZ0kKICAgICAgICAg
ICAgIGFyZ3VtZW50QiksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1
ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xMykpOwogCkBAIC02OTE5LDcgKzY5Mjcs
NyBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVkRG91YmxlSW1tCiAKICAgICBWYWx1
ZSogYXJndW1lbnRBID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBhKTsKICAgICBWYWx1ZSogYXJndW1lbnRCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0
RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBFcXVhbE9yVW5vcmRlcmVkLCBPcmlnaW4oKSwKQEAgLTY5MjcsMTEg
KzY5MzUsMTEgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJlZERvdWJsZUltbQogICAg
ICAgICAgICAgYXJndW1lbnRCKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwg
RnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTEzKSk7CiAKQEAgLTY5NDksNyAr
Njk1Nyw3IEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsT3JVbm9yZGVyZWRGbG9hdEltbXMKICAgICBW
YWx1ZSogYXJndW1lbnRBID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiBhcmd1bWVudEIgPSByb290LT5hcHBlbmROZXc8Q29u
c3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7CiAKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
CiAgICAgICAgICAgICBwcm9jLCBFcXVhbE9yVW5vcmRlcmVkLCBPcmlnaW4oKSwKQEAgLTY5NTcs
MTEgKzY5NjUsMTEgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJlZEZsb2F0SW1tcwog
ICAgICAgICAgICAgYXJndW1lbnRCKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNl
KSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwogCi0gICAgZWxzZUNhc2UtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTEzKSk7CiAKQEAgLTY5ODMs
NyArNjk5MSw3IEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsT3JVbm9yZGVyZWRGbG9hdFdpdGgKICAg
ICBWYWx1ZSogYXJndW1lbnQxQXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBhcmd1bWVudDEpOwogICAgIFZhbHVlKiBhcmd1bWVu
dDJBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwg
T3JpZ2luKCksIGFyZ3VtZW50Mik7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5j
aCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBFcXVhbE9yVW5vcmRlcmVkLCBPcmlnaW4oKSwKQEAgLTY5OTEsMTEgKzY5OTksMTEg
QEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJlZEZsb2F0V2l0aAogICAgICAgICAgICAg
YXJndW1lbnQyQXNEb3VibGUpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBG
cmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMTMpKTsKIApAQCAtNzAxMCwxNiAr
NzAxOCwxNiBAQCB2b2lkIHRlc3RCcmFuY2hGb2xkKGludCB2YWx1ZSkKICAgICBCYXNpY0Jsb2Nr
KiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9
IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIHZhbHVlKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVl
bnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMy
VmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTcwMzQsMjMgKzcwNDIsMjMg
QEAgdm9pZCB0ZXN0RGlhbW9uZEZvbGQoaW50IHZhbHVlKQogICAgIEJhc2ljQmxvY2sqIGVsc2VD
YXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGRvbmUgPSBwcm9jLmFkZEJs
b2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1
ZSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhl
bHNlQ2FzZSkpOwogCiAgICAgVXBzaWxvblZhbHVlKiB0aGVuUmVzdWx0ID0gdGhlbkNhc2UtPmFw
cGVuZE5ldzxVcHNpbG9uVmFsdWU+KAogICAgICAgICBwcm9jLCBPcmlnaW4oKSwgdGhlbkNhc2Ut
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7Ci0gICAgdGhlbkNh
c2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVu
dGVkQmxvY2soZG9uZSkpOworICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhkb25lKSk7CiAKICAgICBVcHNpbG9u
VmFsdWUqIGVsc2VSZXN1bHQgPSBlbHNlQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4oCiAg
ICAgICAgIHByb2MsIE9yaWdpbigpLCBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIDApKTsKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhkb25lKSk7CisgICAgZWxz
ZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVl
bnRlZEJsb2NrKGRvbmUpKTsKIAogICAgIFZhbHVlKiBwaGkgPSBkb25lLT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIFBoaSwgSW50MzIsIE9yaWdpbigpKTsKICAgICB0aGVuUmVzdWx0LT5zZXRQaGko
cGhpKTsKICAgICBlbHNlUmVzdWx0LT5zZXRQaGkocGhpKTsKLSAgICBkb25lLT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwaGkpOworICAgIGRvbmUtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwaGkpOwogCiAgICAg
Q0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MpID09ICEhdmFsdWUpOwogfQpAQCAtNzA2Miw3
ICs3MDcwLDcgQEAgdm9pZCB0ZXN0QnJhbmNoTm90RXF1YWxGb2xkUHRyKGludHB0cl90IAogICAg
IEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sq
IGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgTm90RXF1YWwsIE9yaWdpbigpLApAQCAtNzA3MCwxMSArNzA3OCwxMSBA
QCB2b2lkIHRlc3RCcmFuY2hOb3RFcXVhbEZvbGRQdHIoaW50cHRyX3QgCiAgICAgICAgICAgICBy
b290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKSwKICAgICAg
ICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7
CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2Ut
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxz
ZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCAwKSk7CiAKQEAgLTcwODgsNyArNzA5Niw3IEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFs
Rm9sZFB0cihpbnRwdHJfdCB2YWwKICAgICBCYXNpY0Jsb2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRk
QmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKIAot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEVxdWFsLCBPcmlnaW4oKSwK
QEAgLTcwOTYsMTEgKzcxMDQsMTEgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxGb2xkUHRyKGludHB0
cl90IHZhbAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAwKSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1
ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC03MTE0LDE4ICs3MTIyLDE4
IEBAIHZvaWQgdGVzdEJyYW5jaExvYWRQdHIoKQogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0g
cHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9j
aygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9h
ZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkp
LAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxz
ZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0
aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNzE0NCwxOCArNzE1MiwxOCBAQCB2b2lkIHRlc3RC
cmFuY2hMb2FkMzIoKQogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygp
OwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZCwgSW50MzIsIE9yaWdp
bigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAgRnJlcXVlbnRlZEJs
b2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2Fz
ZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNh
c2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKLSAgICBl
bHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
ZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAK
QEAgLTcxNzQsMTggKzcxODIsMTggQEAgdm9pZCB0ZXN0QnJhbmNoTG9hZDhTKCkKICAgICBCYXNp
Y0Jsb2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBlbHNl
Q2FzZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJh
bmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIExvYWQ4UywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxv
Y2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNzIwNCwxOCArNzIxMiwxOCBAQCB2b2lk
IHRlc3RCcmFuY2hMb2FkOFooKQogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRC
bG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZDhaLCBPcmln
aW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIEZyZXF1ZW50ZWRC
bG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNh
c2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5D
YXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAg
ZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwog
CkBAIC03MjM0LDE4ICs3MjQyLDE4IEBAIHZvaWQgdGVzdEJyYW5jaExvYWQxNlMoKQogICAgIEJh
c2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVs
c2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBC
cmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAog
ICAgICAgICAgICAgcHJvYywgTG9hZDE2UywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVk
QmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNzI2NCwxOCArNzI3MiwxOCBAQCB2
b2lkIHRlc3RCcmFuY2hMb2FkMTZaKCkKICAgICBCYXNpY0Jsb2NrKiB0aGVuQ2FzZSA9IHByb2Mu
YWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsK
IAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgIHByb2MsIExvYWQxNlos
IE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAgRnJlcXVl
bnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0
aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
dGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAK
LSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAw
KSk7CiAKQEAgLTcyOTUsNyArNzMwMyw3IEBAIHZvaWQgdGVzdEJyYW5jaDhXaXRoTG9hZDhaSW5k
ZXgoKQogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCiAgICAg
aW50IGxvZ1NjYWxlID0gMTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBBYm92ZSwgT3JpZ2luKCksCkBAIC03MzExLDExICs3MzE5LDExIEBAIHZvaWQgdGVzdEJyYW5j
aDhXaXRoTG9hZDhaSW5kZXgoKQogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDI1MCkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhl
bkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VDYXNl
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2Fz
ZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNzM1
Nyw3ICs3MzY1LDcgQEAgdm9pZCB0ZXN0Q29tcGxleCh1bnNpZ25lZCBudW1WYXJzLCB1bnNpZwog
ICAgICAgICAgICAgQmFzaWNCbG9jayogZWxzZUJsb2NrID0gcHJvYy5hZGRCbG9jaygpOwogICAg
ICAgICAgICAgQmFzaWNCbG9jayogY29udGludWF0aW9uID0gcHJvYy5hZGRCbG9jaygpOwogCi0g
ICAgICAgICAgICBjdXJyZW50LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgICAg
IGN1cnJlbnQtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgICAgICBwcm9jLCBC
cmFuY2gsIE9yaWdpbigpLCB2YXJzW3ByZWRpY2F0ZVZhckluZGV4XSwKICAgICAgICAgICAgICAg
ICBGcmVxdWVudGVkQmxvY2sodGhlbkJsb2NrKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VCbG9jaykp
OwogCkBAIC03MzY2LDE0ICs3Mzc0LDE0IEBAIHZvaWQgdGVzdENvbXBsZXgodW5zaWduZWQgbnVt
VmFycywgdW5zaWcKICAgICAgICAgICAgICAgICB0aGVuQmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQWRkLCBPcmlnaW4oKSwgdmFyc1t0aGVuSW5jVmFySW5kZXhdLCBvbmUpKTsKICAgICAg
ICAgICAgIFVwc2lsb25WYWx1ZSogdGhlbkVsc2VSZXN1bHQgPSB0aGVuQmxvY2stPmFwcGVuZE5l
dzxVcHNpbG9uVmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLCB2YXJzW2Vs
c2VJbmNWYXJJbmRleF0pOwotICAgICAgICAgICAgdGhlbkJsb2NrLT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGNvbnRpbnVhdGlv
bikpOworICAgICAgICAgICAgdGhlbkJsb2NrLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
SnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhjb250aW51YXRpb24pKTsKIAogICAgICAg
ICAgICAgVXBzaWxvblZhbHVlKiBlbHNlRWxzZVJlc3VsdCA9IGVsc2VCbG9jay0+YXBwZW5kTmV3
PFVwc2lsb25WYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksCiAgICAgICAg
ICAgICAgICAgZWxzZUJsb2NrLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCks
IHZhcnNbZWxzZUluY1ZhckluZGV4XSwgb25lKSk7CiAgICAgICAgICAgICBVcHNpbG9uVmFsdWUq
IGVsc2VUaGVuUmVzdWx0ID0gZWxzZUJsb2NrLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPigKICAg
ICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgdmFyc1t0aGVuSW5jVmFySW5kZXhdKTsKLSAg
ICAgICAgICAgIGVsc2VCbG9jay0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwg
T3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhjb250aW51YXRpb24pKTsKKyAgICAgICAgICAgIGVs
c2VCbG9jay0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVx
dWVudGVkQmxvY2soY29udGludWF0aW9uKSk7CiAKICAgICAgICAgICAgIFZhbHVlKiB0aGVuUGhp
ID0gY29udGludWF0aW9uLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFBoaSwgSW50MzIsIE9yaWdp
bigpKTsKICAgICAgICAgICAgIHRoZW5UaGVuUmVzdWx0LT5zZXRQaGkodGhlblBoaSk7CkBAIC03
Mzk4LDcgKzc0MDYsNyBAQCB2b2lkIHRlc3RDb21wbGV4KHVuc2lnbmVkIG51bVZhcnMsIHVuc2ln
CiAgICAgICAgICAgICAKICAgICAgICAgICAgIFZhbHVlKiBzdGFydEluZGV4ID0gdmFyc1soKGkg
Pj4gMSkgKyAxKSAlIG51bVZhcnNdOwogICAgICAgICAgICAgVmFsdWUqIHN0YXJ0U3VtID0gY3Vy
cmVudC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApOwotICAgICAg
ICAgICAgY3VycmVudC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgICAgICBjdXJy
ZW50LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICAgICAgcHJvYywgQnJhbmNo
LCBPcmlnaW4oKSwgc3RhcnRJbmRleCwKICAgICAgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2so
bG9vcEVudHJ5KSwgRnJlcXVlbnRlZEJsb2NrKGxvb3BTa2lwKSk7CiAKQEAgLTc0MDYsNyArNzQx
NCw3IEBAIHZvaWQgdGVzdENvbXBsZXgodW5zaWduZWQgbnVtVmFycywgdW5zaWcKICAgICAgICAg
ICAgICAgICBwcm9jLCBPcmlnaW4oKSwgc3RhcnRJbmRleCk7CiAgICAgICAgICAgICBVcHNpbG9u
VmFsdWUqIHN0YXJ0U3VtRm9yQm9keSA9IGxvb3BFbnRyeS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1
ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksIHN0YXJ0U3VtKTsKLSAgICAgICAg
ICAgIGxvb3BFbnRyeS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2lu
KCksIEZyZXF1ZW50ZWRCbG9jayhsb29wQm9keSkpOworICAgICAgICAgICAgbG9vcEVudHJ5LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9j
ayhsb29wQm9keSkpOwogCiAgICAgICAgICAgICBWYWx1ZSogYm9keUluZGV4ID0gbG9vcEJvZHkt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBJbnQzMiwgT3JpZ2luKCkpOwogICAgICAgICAg
ICAgc3RhcnRJbmRleEZvckJvZHktPnNldFBoaShib2R5SW5kZXgpOwpAQCAtNzQzMSwxOSArNzQz
OSwxOSBAQCB2b2lkIHRlc3RDb21wbGV4KHVuc2lnbmVkIG51bVZhcnMsIHVuc2lnCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb29wQm9keS0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4oCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvYywgT3Jp
Z2luKCksIG51bVZhcnMgLSAxKSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvb3BC
b2R5LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMikpKSkpOwotICAg
ICAgICAgICAgbG9vcEJvZHktPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICAgICAg
bG9vcEJvZHktPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgICAgICBwcm9jLCBC
cmFuY2gsIE9yaWdpbigpLCBuZXdCb2R5SW5kZXgsCiAgICAgICAgICAgICAgICAgRnJlcXVlbnRl
ZEJsb2NrKGxvb3BSZWVudHJ5KSwgRnJlcXVlbnRlZEJsb2NrKGxvb3BFeGl0KSk7CiAKICAgICAg
ICAgICAgIGxvb3BSZWVudHJ5LT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgbmV3Qm9keUluZGV4LCBib2R5SW5kZXgpOwogICAgICAgICAgICAgbG9vcFJlZW50cnktPmFw
cGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCBuZXdCb2R5U3VtLCBib2R5U3Vt
KTsKLSAgICAgICAgICAgIGxvb3BSZWVudHJ5LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3BCb2R5KSk7CisgICAgICAgICAg
ICBsb29wUmVlbnRyeS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigp
LCBGcmVxdWVudGVkQmxvY2sobG9vcEJvZHkpKTsKIAogICAgICAgICAgICAgVXBzaWxvblZhbHVl
KiBleGl0U3VtID0gbG9vcEV4aXQtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBuZXdCb2R5U3VtKTsKLSAgICAgICAgICAgIGxvb3BFeGl0LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGNvbnRpbnVhdGlv
bikpOworICAgICAgICAgICAgbG9vcEV4aXQtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBK
dW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGNvbnRpbnVhdGlvbikpOwogCiAgICAgICAg
ICAgICBVcHNpbG9uVmFsdWUqIHNraXBTdW0gPSBsb29wU2tpcC0+YXBwZW5kTmV3PFVwc2lsb25W
YWx1ZT4ocHJvYywgT3JpZ2luKCksIHN0YXJ0U3VtKTsKLSAgICAgICAgICAgIGxvb3BTa2lwLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJs
b2NrKGNvbnRpbnVhdGlvbikpOworICAgICAgICAgICAgbG9vcFNraXAtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGNvbnRpbnVhdGlv
bikpOwogCiAgICAgICAgICAgICBWYWx1ZSogZmluYWxTdW0gPSBjb250aW51YXRpb24tPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBJbnQzMiwgT3JpZ2luKCkpOwogICAgICAgICAgICAgZXhp
dFN1bS0+c2V0UGhpKGZpbmFsU3VtKTsKQEAgLTc0NTQsNyArNzQ2Miw3IEBAIHZvaWQgdGVzdENv
bXBsZXgodW5zaWduZWQgbnVtVmFycywgdW5zaWcKICAgICAgICAgfQogICAgIH0KIAotICAgIGN1
cnJlbnQtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZh
cnNbMF0pOworICAgIGN1cnJlbnQtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCB2YXJzWzBdKTsKIAogICAgIGNvbXBpbGUocHJvYyk7CiAKQEAgLTc0ODAsNyAr
NzQ4OCw3IEBAIHZvaWQgdGVzdFNpbXBsZVBhdGNocG9pbnQoKQogICAgICAgICAgICAgQ0hFQ0so
cGFyYW1zWzJdLmlzR1BSKCkpOwogICAgICAgICAgICAgYWRkMzIoaml0LCBwYXJhbXNbMV0uZ3By
KCksIHBhcmFtc1syXS5ncHIoKSwgcGFyYW1zWzBdLmdwcigpKTsKICAgICAgICAgfSk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0
Y2hwb2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHBhdGNocG9pbnQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHBy
b2MsIDEsIDIpID09IDMpOwogfQpAQCAtNzUxMSw3ICs3NTE5LDcgQEAgdm9pZCB0ZXN0U2ltcGxl
UGF0Y2hwb2ludFdpdGhvdXRPdXB1dENsbwogICAgICAgICB9KTsKIAogICAgIFZhbHVlKiByZXN1
bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGFyZzEsIGFy
ZzIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4o
cHJvYywgMSwgMikgPT0gMyk7CiB9CkBAIC03NTYwLDcgKzc1NjgsNyBAQCB2b2lkIHRlc3RTaW1w
bGVQYXRjaHBvaW50V2l0aE91cHV0Q2xvYmJlCiAKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBwYXRjaHBvaW50LAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGFyZzEsIGFyZzIp
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHBy
b2MsIDEsIDIpID09IDU4KTsKIH0KQEAgLTc1OTEsNyArNzU5OSw3IEBAIHZvaWQgdGVzdFNpbXBs
ZVBhdGNocG9pbnRXaXRob3V0T3VwdXRDbG8KICAgICAgICAgfSk7CiAKICAgICBWYWx1ZSogcmVz
dWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBhcmcxLCBh
cmcyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxkb3Vi
bGU+KHByb2MsIDEuNSwgMi41KSA9PSA0KTsKIH0KQEAgLTc2MzIsNyArNzY0MCw3IEBAIHZvaWQg
dGVzdFNpbXBsZVBhdGNocG9pbnRXaXRoT3VwdXRDbG9iYmUKIAogICAgIFZhbHVlKiByZXN1bHQg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIHBhdGNocG9pbnQs
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYXJn
MSwgYXJnMikpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVu
PGRvdWJsZT4ocHJvYywgMS41LCAyLjUpID09IDU5LjYpOwogfQpAQCAtNzY1Nyw3ICs3NjY1LDcg
QEAgdm9pZCB0ZXN0UGF0Y2hwb2ludFdpdGhFYXJseUNsb2JiZXIoKQogICAgICAgICAgICAgICAg
IGFkZDMyKGppdCwgcGFyYW1zWzFdLmdwcigpLCBwYXJhbXNbMl0uZ3ByKCksIHBhcmFtc1swXS5n
cHIoKSk7CiAgICAgICAgICAgICB9KTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICAgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9p
bnQpOwogCiAgICAgICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAxLCAyKSA9PSAz
KTsKICAgICB9OwpAQCAtNzY5MCw3ICs3Njk4LDcgQEAgdm9pZCB0ZXN0UGF0Y2hwb2ludENhbGxB
cmcoKQogICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpjYWxs
RnJhbWVSZWdpc3RlciwgcGFyYW1zWzJdLm9mZnNldEZyb21GUCgpKSwKICAgICAgICAgICAgICAg
ICBwYXJhbXNbMF0uZ3ByKCkpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2lu
dCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywgMSwgMikgPT0gMyk7CiB9
CkBAIC03NzEzLDcgKzc3MjEsNyBAQCB2b2lkIHRlc3RQYXRjaHBvaW50Rml4ZWRSZWdpc3Rlcigp
CiAgICAgICAgICAgICBDSEVDSyhwYXJhbXNbMl0gPT0gVmFsdWVSZXAoR1BSSW5mbzo6cmVnVDEp
KTsKICAgICAgICAgICAgIGFkZDMyKGppdCwgR1BSSW5mbzo6cmVnVDAsIEdQUkluZm86OnJlZ1Qx
LCBwYXJhbXNbMF0uZ3ByKCkpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2lu
dCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywgMSwgMikgPT0gMyk7CiB9
CkBAIC03NzM3LDcgKzc3NDUsNyBAQCB2b2lkIHRlc3RQYXRjaHBvaW50QW55KFZhbHVlUmVwIHJl
cCkKICAgICAgICAgICAgIENIRUNLKHBhcmFtc1syXS5pc0dQUigpKTsKICAgICAgICAgICAgIGFk
ZDMyKGppdCwgcGFyYW1zWzFdLmdwcigpLCBwYXJhbXNbMl0uZ3ByKCksIHBhcmFtc1swXS5ncHIo
KSk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKIAogICAgIENIRUNL
KGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAxLCAyKSA9PSAzKTsKIH0KQEAgLTc3NzMsNyArNzc4
MSw3IEBAIHZvaWQgdGVzdFBhdGNocG9pbnRHUFNjcmF0Y2goKQogICAgICAgICAgICAgQ0hFQ0so
IXBhcmFtcy51bmF2YWlsYWJsZVJlZ2lzdGVycygpLmdldChwYXJhbXMuZ3BTY3JhdGNoKDEpKSk7
CiAgICAgICAgICAgICBhZGQzMihqaXQsIHBhcmFtc1sxXS5ncHIoKSwgcGFyYW1zWzJdLmdwcigp
LCBwYXJhbXNbMF0uZ3ByKCkpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2lu
dCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywgMSwgMikgPT0gMyk7CiB9
CkBAIC03ODAzLDcgKzc4MTEsNyBAQCB2b2lkIHRlc3RQYXRjaHBvaW50RlBTY3JhdGNoKCkKICAg
ICAgICAgICAgIENIRUNLKCFwYXJhbXMudW5hdmFpbGFibGVSZWdpc3RlcnMoKS5nZXQocGFyYW1z
LmZwU2NyYXRjaCgxKSkpOwogICAgICAgICAgICAgYWRkMzIoaml0LCBwYXJhbXNbMV0uZ3ByKCks
IHBhcmFtc1syXS5ncHIoKSwgcGFyYW1zWzBdLmdwcigpKTsKICAgICAgICAgfSk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hw
b2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHBhdGNocG9pbnQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2Ms
IDEsIDIpID09IDMpOwogfQpAQCAtNzg0NSw3ICs3ODUzLDcgQEAgdm9pZCB0ZXN0UGF0Y2hwb2lu
dExvdHNPZkxhdGVBbnlzKCkKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHBhdGNocG9pbnQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKIAogICAgIENIRUNLKGNvbXBpbGVB
bmRSdW48aW50Pihwcm9jKSA9PSAodGhpbmdzLnNpemUoKSAqICh0aGluZ3Muc2l6ZSgpIC0gMSkp
IC8gMik7CiB9CkBAIC03ODczLDcgKzc4ODEsNyBAQCB2b2lkIHRlc3RQYXRjaHBvaW50QW55SW1t
KFZhbHVlUmVwIHJlcCkKICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0z
MihzdGF0aWNfY2FzdDxpbnQzMl90PihwYXJhbXNbMl0udmFsdWUoKSkpLAogICAgICAgICAgICAg
ICAgIHBhcmFtc1sxXS5ncHIoKSwgcGFyYW1zWzBdLmdwcigpKTsKICAgICAgICAgfSk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0
Y2hwb2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHBhdGNocG9pbnQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHBy
b2MsIDEpID09IDQzKTsKIH0KQEAgLTc4OTksNyArNzkwNyw3IEBAIHZvaWQgdGVzdFBhdGNocG9p
bnRNYW55SW1tcygpCiAgICAgICAgICAgICBDSEVDSyhwYXJhbXNbMl0gPT0gVmFsdWVSZXA6OmNv
bnN0YW50KDQzMDAwMDAwMDAwMDAwbGwpKTsKICAgICAgICAgICAgIENIRUNLKHBhcmFtc1szXSA9
PSBWYWx1ZVJlcDo6Y29uc3RhbnQoYml0d2lzZV9jYXN0PGludDY0X3Q+KDQyLjUpKSk7CiAgICAg
ICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsK
IApAQCAtNzkyNSw3ICs3OTMzLDcgQEAgdm9pZCB0ZXN0UGF0Y2hwb2ludFdpdGhSZWdpc3RlclJl
c3VsdCgpCiAgICAgICAgICAgICBDSEVDSyhwYXJhbXNbMl0uaXNHUFIoKSk7CiAgICAgICAgICAg
ICBhZGQzMihqaXQsIHBhcmFtc1sxXS5ncHIoKSwgcGFyYW1zWzJdLmdwcigpLCBHUFJJbmZvOjpu
b25BcmdHUFIwKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOwogCiAg
ICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIDEsIDIpID09IDMpOwogfQpAQCAtNzk1
MSw3ICs3OTU5LDcgQEAgdm9pZCB0ZXN0UGF0Y2hwb2ludFdpdGhTdGFja0FyZ3VtZW50UmVzdQog
ICAgICAgICAgICAgaml0LmFkZDMyKHBhcmFtc1sxXS5ncHIoKSwgcGFyYW1zWzJdLmdwcigpLCBq
aXQuc2NyYXRjaFJlZ2lzdGVyKCkpOwogICAgICAgICAgICAgaml0LnN0b3JlMzIoaml0LnNjcmF0
Y2hSZWdpc3RlcigpLCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpzdGFja1Bv
aW50ZXJSZWdpc3RlciwgMCkpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2lu
dCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywgMSwgMikgPT0gMyk7CiB9
CkBAIC03OTgwLDcgKzc5ODgsNyBAQCB2b2lkIHRlc3RQYXRjaHBvaW50V2l0aEFueVJlc3VsdCgp
CiAgICAgICAgICAgICBqaXQuY29udmVydEludDMyVG9Eb3VibGUoR1BSSW5mbzo6cmVnVDAsIEZQ
UkluZm86OmZwUmVnVDApOwogICAgICAgICAgICAgaml0LnN0b3JlRG91YmxlKEZQUkluZm86OmZw
UmVnVDAsIENDYWxsSGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlciwg
cGFyYW1zWzBdLm9mZnNldEZyb21GUCgpKSk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBw
YXRjaHBvaW50KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCAxLCAy
KSA9PSAzKTsKIH0KQEAgLTgwMDIsNyArODAxMCw3IEBAIHZvaWQgdGVzdFNpbXBsZUNoZWNrKCkK
ICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0
LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAw
KSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwpAQCAtODAyMSw3ICs4MDI5LDcg
QEAgdm9pZCB0ZXN0Q2hlY2tGYWxzZSgpCiAgICAgICAgIFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29u
c3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgewogICAgICAgICAgICAgQ0hFQ0soISJUaGlz
IHNob3VsZCBub3QgaGF2ZSBleGVjdXRlZCIpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2Mp
OwpAQCAtODA0Nyw3ICs4MDU1LDcgQEAgdm9pZCB0ZXN0Q2hlY2tUcnVlKCkKICAgICAgICAgICAg
IGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAg
ICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJv
b3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBh
dXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwpAQCAtODA3OCw3ICs4MDg2LDcgQEAgdm9pZCB0ZXN0
Q2hlY2tMZXNzVGhhbigpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsK
ICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKQEAg
LTgxMjQsNyArODEzMiw3IEBAIHZvaWQgdGVzdENoZWNrTWVnYUNvbWJvKCkKICAgICAgICAgICAg
IGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAg
ICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJv
b3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBh
dXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwpAQCAtODE3OSw3ICs4MTg3LDcgQEAgdm9pZCB0ZXN0
Q2hlY2tUcmlja3lNZWdhQ29tYm8oKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxv
Z3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJv
Yyk7CkBAIC04MjQzLDcgKzgyNTEsNyBAQCB2b2lkIHRlc3RDaGVja1R3b01lZ2FDb21ib3MoKQog
ICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQu
cmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDAp
KTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CkBAIC04MjkzLDcgKzgzMDEsNyBA
QCB2b2lkIHRlc3RDaGVja1R3b05vblJlZHVuZGFudE1lZ2FDb21ib3MoCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZDhTLCBPcmlnaW4oKSwgcHRyKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7
CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksIGJyYW5jaFBy
ZWRpY2F0ZSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJs
b2NrKGVsc2VDYXNlKSk7CiAgICAgCkBAIC04MzA5LDcgKzgzMTcsNyBAQCB2b2lkIHRlc3RDaGVj
a1R3b05vblJlZHVuZGFudE1lZ2FDb21ib3MoCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9u
RXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgdGhl
bkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIHRoZW5DYXNlLT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDMpKTsKIAogICAgIENoZWNr
VmFsdWUqIGNoZWNrMiA9IGVsc2VDYXNlLT5hcHBlbmROZXc8Q2hlY2tWYWx1ZT4ocHJvYywgQ2hl
Y2ssIE9yaWdpbigpLCBjaGVja1ByZWRpY2F0ZSk7CkBAIC04MzI0LDcgKzgzMzIsNyBAQCB2b2lk
IHRlc3RDaGVja1R3b05vblJlZHVuZGFudE1lZ2FDb21ib3MoCiAgICAgICAgICAgICBqaXQuZW1p
dEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7
Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIGVs
c2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDUpKTsKIAog
ICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CkBAIC04Mzc4LDcgKzgzODYsNyBAQCB2b2lk
IHRlc3RDaGVja0FkZEltbSgpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUo
KTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVja0FkZCkpOwogCkBAIC04NDE0LDcgKzg0MjIs
NyBAQCB2b2lkIHRlc3RDaGVja0FkZEltbUNvbW11dGUoKQogICAgICAgICAgICAgaml0LmVtaXRG
dW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tBZGQpKTsKIApA
QCAtODQ0OSw3ICs4NDU3LDcgQEAgdm9pZCB0ZXN0Q2hlY2tBZGRJbW1Tb21lUmVnaXN0ZXIoKQog
ICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQu
cmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmln
aW4oKSwgY2hlY2tBZGQpKTsKIApAQCAtODQ4Niw3ICs4NDk0LDcgQEAgdm9pZCB0ZXN0Q2hlY2tB
ZGQoKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAg
ICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9E
LCBPcmlnaW4oKSwgY2hlY2tBZGQpKTsKIApAQCAtODUxOSw3ICs4NTI3LDcgQEAgdm9pZCB0ZXN0
Q2hlY2tBZGQ2NCgpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAg
ICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIElUb0QsIE9yaWdpbigpLCBjaGVja0FkZCkpOwogCkBAIC04NTQyLDcgKzg1NTAsNyBAQCB2
b2lkIHRlc3RDaGVja0FkZEZvbGQoaW50IGEsIGludCBiKQogICAgICAgICBbJl0gKENDYWxsSGVs
cGVycyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsKICAgICAgICAgICAgIENI
RUNLKCEiU2hvdWxkIGhhdmUgYmVlbiBmb2xkZWQiKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tBZGQp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBjaGVja0FkZCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC04NTYz
LDcgKzg1NzEsNyBAQCB2b2lkIHRlc3RDaGVja0FkZEZvbGRGYWlsKGludCBhLCBpbnQgYikKICAg
ICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJl
dCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja0FkZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrQWRkKTsKIAogICAgIGF1dG8gY29k
ZSA9IGNvbXBpbGUocHJvYyk7CiAKQEAgLTg2MDIsNyArODYxMCw3IEBAIHZvaWQgdGVzdENoZWNr
QWRkQXJndW1lbnRBbGlhc2luZzY0KCkKICAgICBDaGVja1ZhbHVlKiBjaGVja0FkZDMgPSByb290
LT5hcHBlbmROZXc8Q2hlY2tWYWx1ZT4ocHJvYywgQ2hlY2tBZGQsIE9yaWdpbigpLCBjaGVja0Fk
ZDEsIGNoZWNrQWRkMik7CiAgICAgY2hlY2tBZGQzLT5zZXRHZW5lcmF0b3IoWyZdIChDQ2FsbEhl
bHBlcnMmIGppdCwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeyBqaXQub29wcygp
OyB9KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIGNoZWNrQWRkMyk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrQWRkMyk7CiAKICAgICBDSEVDSyhjb21waWxlQW5k
UnVuPGludDY0X3Q+KHByb2MsIDEsIDIsIDMpID09IDgpOwogfQpAQCAtODY0NSw3ICs4NjUzLDcg
QEAgdm9pZCB0ZXN0Q2hlY2tBZGRBcmd1bWVudEFsaWFzaW5nMzIoKQogICAgIENoZWNrVmFsdWUq
IGNoZWNrQWRkMyA9IHJvb3QtPmFwcGVuZE5ldzxDaGVja1ZhbHVlPihwcm9jLCBDaGVja0FkZCwg
T3JpZ2luKCksIGNoZWNrQWRkMSwgY2hlY2tBZGQyKTsKICAgICBjaGVja0FkZDMtPnNldEdlbmVy
YXRvcihbJl0gKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJh
bXMmKSB7IGppdC5vb3BzKCk7IH0pOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tBZGQzKTsKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tBZGQzKTsKIAogICAg
IENIRUNLKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgMSwgMiwgMykgPT0gOCk7CiB9CkBA
IC04NjcwLDcgKzg2NzgsNyBAQCB2b2lkIHRlc3RDaGVja0FkZFNlbGZPdmVyZmxvdzY0KCkKICAg
ICBvcGFxdWVVc2UtPmFwcGVuZChDb25zdHJhaW5lZFZhbHVlKGFyZywgVmFsdWVSZXA6OlNvbWVS
ZWdpc3RlcikpOwogICAgIG9wYXF1ZVVzZS0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJz
JiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeyB9KTsKIAotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrQWRkKTsK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
Y2hlY2tBZGQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAtODcwMSw3
ICs4NzA5LDcgQEAgdm9pZCB0ZXN0Q2hlY2tBZGRTZWxmT3ZlcmZsb3czMigpCiAgICAgb3BhcXVl
VXNlLT5hcHBlbmQoQ29uc3RyYWluZWRWYWx1ZShhcmcsIFZhbHVlUmVwOjpTb21lUmVnaXN0ZXIp
KTsKICAgICBvcGFxdWVVc2UtPnNldEdlbmVyYXRvcihbJl0gKENDYWxsSGVscGVycyYsIGNvbnN0
IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsgfSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja0FkZCk7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrQWRk
KTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKQEAgLTg3MzQsNyArODc0Miw3
IEBAIHZvaWQgdGVzdENoZWNrU3ViSW1tKCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25F
cGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGNoZWNrU3ViKSk7CiAKQEAgLTg3NzYs
NyArODc4NCw3IEBAIHZvaWQgdGVzdENoZWNrU3ViQmFkSW1tKCkKICAgICAgICAgICAgIGppdC5l
bWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGNoZWNrU3ViKSk7
CiAKQEAgLTg4MTMsNyArODgyMSw3IEBAIHZvaWQgdGVzdENoZWNrU3ViKCkKICAgICAgICAgICAg
IGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAg
ICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGNoZWNr
U3ViKSk7CiAKQEAgLTg4NTEsNyArODg1OSw3IEBAIHZvaWQgdGVzdENoZWNrU3ViNjQoKQogICAg
ICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0
KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4o
KSwgY2hlY2tTdWIpKTsKIApAQCAtODg3NCw3ICs4ODgyLDcgQEAgdm9pZCB0ZXN0Q2hlY2tTdWJG
b2xkKGludCBhLCBpbnQgYikKICAgICAgICAgWyZdIChDQ2FsbEhlbHBlcnMmLCBjb25zdCBTdGFj
a21hcEdlbmVyYXRpb25QYXJhbXMmKSB7CiAgICAgICAgICAgICBDSEVDSyghIlNob3VsZCBoYXZl
IGJlZW4gZm9sZGVkIik7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrU3ViKTsKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tTdWIpOwogCiAg
ICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAtODg5NSw3ICs4OTAzLDcgQEAgdm9p
ZCB0ZXN0Q2hlY2tTdWJGb2xkRmFpbChpbnQgYSwgaW50IGIpCiAgICAgICAgICAgICBqaXQuZW1p
dEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgY2hlY2tTdWIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBjaGVja1N1Yik7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2Mp
OwogCkBAIC04OTIyLDcgKzg5MzAsNyBAQCB2b2lkIHRlc3RDaGVja05lZygpCiAgICAgICAgICAg
ICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAg
ICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVj
a05lZykpOwogCkBAIC04OTUyLDcgKzg5NjAsNyBAQCB2b2lkIHRlc3RDaGVja05lZzY0KCkKICAg
ICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJl
dCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2lu
KCksIGNoZWNrTmVnKSk7CiAKQEAgLTg5ODksNyArODk5Nyw3IEBAIHZvaWQgdGVzdENoZWNrTXVs
KCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAg
aml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwg
T3JpZ2luKCksIGNoZWNrTXVsKSk7CiAKQEAgLTkwMzAsNyArOTAzOCw3IEBAIHZvaWQgdGVzdENo
ZWNrTXVsTWVtb3J5KCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwog
ICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgSVRvRCwgT3JpZ2luKCksIGNoZWNrTXVsKSk7CiAKQEAgLTkwNzcsNyArOTA4NSw3IEBA
IHZvaWQgdGVzdENoZWNrTXVsMigpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9n
dWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVja011bCkpOwogCkBAIC05MTEwLDcgKzkx
MTgsNyBAQCB2b2lkIHRlc3RDaGVja011bDY0KCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rp
b25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGNoZWNrTXVsKSk7CiAKQEAgLTkx
MzMsNyArOTE0MSw3IEBAIHZvaWQgdGVzdENoZWNrTXVsRm9sZChpbnQgYSwgaW50IGIpCiAgICAg
ICAgIFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikg
ewogICAgICAgICAgICAgQ0hFQ0soISJTaG91bGQgaGF2ZSBiZWVuIGZvbGRlZCIpOwogICAgICAg
ICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBjaGVja011bCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIGNoZWNrTXVsKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUo
cHJvYyk7CiAKQEAgLTkxNTQsNyArOTE2Miw3IEBAIHZvaWQgdGVzdENoZWNrTXVsRm9sZEZhaWwo
aW50IGEsIGludCBiKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAg
ICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrTXVsKTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tNdWwp
OwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAtOTE5Myw3ICs5MjAxLDcg
QEAgdm9pZCB0ZXN0Q2hlY2tNdWxBcmd1bWVudEFsaWFzaW5nNjQoKQogICAgIENoZWNrVmFsdWUq
IGNoZWNrTXVsMyA9IHJvb3QtPmFwcGVuZE5ldzxDaGVja1ZhbHVlPihwcm9jLCBDaGVja011bCwg
T3JpZ2luKCksIGNoZWNrTXVsMSwgY2hlY2tNdWwyKTsKICAgICBjaGVja011bDMtPnNldEdlbmVy
YXRvcihbJl0gKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJh
bXMmKSB7IGppdC5vb3BzKCk7IH0pOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tNdWwzKTsKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tNdWwzKTsKIAogICAg
IENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgMiwgMywgNCkgPT0gNzIpOwogfQpA
QCAtOTIzNiw3ICs5MjQ0LDcgQEAgdm9pZCB0ZXN0Q2hlY2tNdWxBcmd1bWVudEFsaWFzaW5nMzIo
KQogICAgIENoZWNrVmFsdWUqIGNoZWNrTXVsMyA9IHJvb3QtPmFwcGVuZE5ldzxDaGVja1ZhbHVl
Pihwcm9jLCBDaGVja011bCwgT3JpZ2luKCksIGNoZWNrTXVsMSwgY2hlY2tNdWwyKTsKICAgICBj
aGVja011bDMtPnNldEdlbmVyYXRvcihbJl0gKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBTdGFj
a21hcEdlbmVyYXRpb25QYXJhbXMmKSB7IGppdC5vb3BzKCk7IH0pOwogCi0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tNdWwzKTsK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
Y2hlY2tNdWwzKTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgMiwg
MywgNCkgPT0gNzIpOwogfQpAQCAtOTI2OCw3ICs5Mjc2LDcgQEAgdm9pZCB0ZXN0Q2hlY2tNdWw2
NFNTaHIoKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAg
ICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJ
VG9ELCBPcmlnaW4oKSwgY2hlY2tNdWwpKTsKIApAQCAtOTI5NCw3ICs5MzAyLDcgQEAgdm9pZCBn
ZW5lcmljVGVzdENvbXBhcmUoCiAgICAgICAgIFZhbHVlKiByaWdodFZhbHVlID0gcmlnaHRGdW5j
dG9yKHJvb3QsIHByb2MpOwogICAgICAgICBWYWx1ZSogY29tcGFyaXNvblJlc3VsdCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgb3Bjb2RlLCBPcmlnaW4oKSwgbGVmdFZhbHVlLCByaWdo
dFZhbHVlKTsKICAgICAgICAgCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgICAgICBwcm9jLCBOb3RFcXVhbCwgT3JpZ2luKCksCkBAIC05MzE0LDcgKzkz
MjIsNyBAQCB2b2lkIGdlbmVyaWNUZXN0Q29tcGFyZSgKICAgICAgICAgVmFsdWUqIGxlZnRWYWx1
ZSA9IGxlZnRGdW5jdG9yKHJvb3QsIHByb2MpOwogICAgICAgICBWYWx1ZSogcmlnaHRWYWx1ZSA9
IHJpZ2h0RnVuY3Rvcihyb290LCBwcm9jKTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgb3Bjb2RlLCBPcmlnaW4oKSwgbGVmdFZhbHVlLCByaWdodFZhbHVlKSwK
ICAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhl
bHNlQ2FzZSkpOwpAQCAtOTMyOCw5ICs5MzM2LDkgQEAgdm9pZCBnZW5lcmljVGVzdENvbXBhcmUo
CiAgICAgICAgICAgICAgICAgQ0hFQ0socGFyYW1zWzBdLmlzR1BSKCkpOwogICAgICAgICAgICAg
ICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDEpLCBwYXJhbXNbMF0uZ3By
KCkpOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICAgICAgdGhl
bkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRj
aHBvaW50KTsKIAotICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTk1NjksNyArOTU3Nyw3IEBAIHZv
aWQgdGVzdEVxdWFsRG91YmxlKGRvdWJsZSBsZWZ0LCBkb3VibGUKIHsKICAgICBQcm9jZWR1cmUg
cHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEVxdWFsLCBPcmlnaW4oKSwKQEAgLTk1ODgs
NyArOTU5Niw3IEBAIHZvaWQgdGVzdENhbGxTaW1wbGUoaW50IGEsIGludCBiKQogewogICAgIFBy
b2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8Q0NhbGxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBJbnQzMiwgT3JpZ2lu
KCksCkBAIC05NjA2LDE2ICs5NjE0LDE2IEBAIHZvaWQgdGVzdENhbGxSYXJlKGludCBhLCBpbnQg
YikKICAgICBCYXNpY0Jsb2NrKiBjb21tb24gPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNC
bG9jayogcmFyZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApLAogICAgICAgICBG
cmVxdWVudGVkQmxvY2socmFyZSwgRnJlcXVlbmN5Q2xhc3M6OlJhcmUpLAogICAgICAgICBGcmVx
dWVudGVkQmxvY2soY29tbW9uKSk7CiAKLSAgICBjb21tb24tPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIGNvbW1vbi0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCBjb21tb24tPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCAwKSk7CiAgICAgCi0gICAgcmFyZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcmFyZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByYXJlLT5hcHBlbmROZXc8Q0NhbGxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBJbnQzMiwgT3JpZ2luKCksCkBAIC05NjMzLDE2ICs5NjQxLDE2IEBAIHZvaWQgdGVz
dENhbGxSYXJlTGl2ZShpbnQgYSwgaW50IGIsIGludCAKICAgICBCYXNpY0Jsb2NrKiBjb21tb24g
PSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogcmFyZSA9IHByb2MuYWRkQmxvY2so
KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApLAogICAgICAgICBGcmVxdWVudGVkQmxvY2socmFyZSwgRnJlcXVl
bmN5Q2xhc3M6OlJhcmUpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2soY29tbW9uKSk7CiAKLSAg
ICBjb21tb24tPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGNvbW1vbi0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjb21tb24tPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAgICAgCi0gICAgcmFy
ZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcmFyZS0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByYXJlLT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKQEAgLTk2NjIs
NyArOTY3MCw3IEBAIHZvaWQgdGVzdENhbGxTaW1wbGVQdXJlKGludCBhLCBpbnQgYikKIHsKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PENDYWxsVmFsdWU+KAogICAgICAgICAgICAgcHJvYywgSW50MzIsIE9y
aWdpbigpLCBFZmZlY3RzOjpub25lKCksCkBAIC05NjkyLDcgKzk3MDAsNyBAQCB2b2lkIHRlc3RD
YWxsRnVuY3Rpb25XaXRoSGVsbGFBcmd1bWVudHMoCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
b25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYml0d2lzZV9jYXN0PHZvaWQqPihmdW5jdGlv
bldpdGhIZWxsYUFyZ3VtZW50cykpKTsKICAgICBjYWxsLT5jaGlsZHJlbigpLmFwcGVuZFZlY3Rv
cihhcmdzKTsKICAgICAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCBjYWxsKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FsbCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVu
PGludD4ocHJvYykgPT0gZnVuY3Rpb25XaXRoSGVsbGFBcmd1bWVudHMoMSwgMiwgMywgNCwgNSwg
NiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDE3LCAxOCwgMTksIDIwLCAy
MSwgMjIsIDIzLCAyNCwgMjUsIDI2KSk7CiB9CkBAIC05NzAxLDcgKzk3MDksNyBAQCB2b2lkIHRl
c3RSZXR1cm5Eb3VibGUoZG91YmxlIHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RE
b3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKSk7CiAKQEAgLTk3MTIsNyArOTcyMCw3
IEBAIHZvaWQgdGVzdFJldHVybkZsb2F0KGZsb2F0IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBw
cm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpKTsKIApAQCAtOTcyOCw3
ICs5NzM2LDcgQEAgdm9pZCB0ZXN0Q2FsbFNpbXBsZURvdWJsZShkb3VibGUgYSwgZG91Ygogewog
ICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8Q0NhbGxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBEb3VibGUs
IE9yaWdpbigpLApAQCAtOTc1NCw3ICs5NzYyLDcgQEAgdm9pZCB0ZXN0Q2FsbFNpbXBsZUZsb2F0
KGZsb2F0IGEsIGZsb2F0IAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSkpOwogICAgIFZhbHVlKiBm
bG9hdFZhbHVlMSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9y
aWdpbigpLCBhcmd1bWVudDFpbnQzMik7CiAgICAgVmFsdWUqIGZsb2F0VmFsdWUyID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50Mmlu
dDMyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxDQ2FsbFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEZsb2F0
LCBPcmlnaW4oKSwKQEAgLTk3ODQsNyArOTc5Miw3IEBAIHZvaWQgdGVzdENhbGxGdW5jdGlvbldp
dGhIZWxsYURvdWJsZUFyZ3UKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBiaXR3aXNlX2Nhc3Q8dm9pZCo+KGZ1bmN0aW9uV2l0aEhlbGxhRG91
YmxlQXJndW1lbnRzKSkpOwogICAgIGNhbGwtPmNoaWxkcmVuKCkuYXBwZW5kVmVjdG9yKGFyZ3Mp
OwogICAgIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIGNhbGwpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCBjYWxsKTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48ZG91Ymxl
Pihwcm9jKSA9PSBmdW5jdGlvbldpdGhIZWxsYURvdWJsZUFyZ3VtZW50cygxLCAyLCAzLCA0LCA1
LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4LCAxOSwgMjAs
IDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYpKTsKIH0KQEAgLTk4MDgsNyArOTgxNiw3IEBAIHZvaWQg
dGVzdENhbGxGdW5jdGlvbldpdGhIZWxsYUZsb2F0QXJndW0KICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiaXR3aXNlX2Nhc3Q8dm9pZCo+KGZ1
bmN0aW9uV2l0aEhlbGxhRmxvYXRBcmd1bWVudHMpKSk7CiAgICAgY2FsbC0+Y2hpbGRyZW4oKS5h
cHBlbmRWZWN0b3IoYXJncyk7CiAgICAgCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FsbCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNhbGwpOwogCiAgICAgQ0hFQ0soY29t
cGlsZUFuZFJ1bjxmbG9hdD4ocHJvYykgPT0gZnVuY3Rpb25XaXRoSGVsbGFGbG9hdEFyZ3VtZW50
cygxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwg
MTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYpKTsKIH0KQEAgLTk4MjAsNyAr
OTgyOCw3IEBAIHZvaWQgdGVzdENoaWxsRGl2KGludCBudW0sIGludCBkZW4sIGludCAKICAgICAg
ICAgUHJvY2VkdXJlIHByb2M7CiAgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7CiAgICAgICAgIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICAgICAgcHJvYywgQ2hpbGxEaXYsIE9yaWdpbigpLApAQCAtOTgzOSw3ICs5ODQ3
LDcgQEAgdm9pZCB0ZXN0Q2hpbGxEaXYoaW50IG51bSwgaW50IGRlbiwgaW50IAogICAgICAgICBQ
cm9jZWR1cmUgcHJvYzsKICAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKICAgICAgICAgCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
ICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgICAgICBwcm9jLCBDaGlsbERpdiwgT3JpZ2luKCksCkBAIC05ODU1LDcgKzk4NjMsNyBA
QCB2b2lkIHRlc3RDaGlsbERpdlR3aWNlKGludCBudW0xLCBpbnQgZGVuCiAgICAgUHJvY2VkdXJl
IHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCkBAIC05ODg5
LDcgKzk4OTcsNyBAQCB2b2lkIHRlc3RDaGlsbERpdjY0KGludDY0X3QgbnVtLCBpbnQ2NF90CiAg
ICAgICAgIFByb2NlZHVyZSBwcm9jOwogICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwogICAgICAgICAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgICAgIHByb2MsIENoaWxsRGl2LCBPcmlnaW4oKSwKQEAgLTk5MDQsNyAr
OTkxMiw3IEBAIHZvaWQgdGVzdENoaWxsRGl2NjQoaW50NjRfdCBudW0sIGludDY0X3QKICAgICAg
ICAgUHJvY2VkdXJlIHByb2M7CiAgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7CiAgICAgICAgIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICAgICAgcHJvYywgQ2hpbGxEaXYsIE9yaWdpbigpLApAQCAtOTkyNSw3ICs5OTMz
LDcgQEAgdm9pZCB0ZXN0TW9kQXJnKGludDY0X3QgdmFsdWUpCiAKICAgICBWYWx1ZSogYXJndW1l
bnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgYXJndW1lbnQsIGFyZ3VtZW50KTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1
bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywg
dmFsdWUpKTsKIH0KQEAgLTk5NDMsNyArOTk1MSw3IEBAIHZvaWQgdGVzdE1vZEFyZ3MoaW50NjRf
dCBudW1lcmF0b3IsIGludDYKICAgICBWYWx1ZSogYXJndW1lbnQxID0gcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjAp
OwogICAgIFZhbHVlKiBhcmd1bWVudDIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CiAgICAgVmFsdWUqIHJl
c3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgYXJndW1l
bnQxLCBhcmd1bWVudDIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhjb21waWxl
QW5kUnVuPGludDY0X3Q+KHByb2MsIG51bWVyYXRvciwgZGVub21pbmF0b3IpID09IG51bWVyYXRv
ciAlIGRlbm9taW5hdG9yKTsKIH0KQEAgLTk5NjEsNyArOTk2OSw3IEBAIHZvaWQgdGVzdE1vZElt
bXMoaW50NjRfdCBudW1lcmF0b3IsIGludDYKICAgICBWYWx1ZSogYXJndW1lbnQxID0gcm9vdC0+
YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIG51bWVyYXRvcik7CiAgICAg
VmFsdWUqIGFyZ3VtZW50MiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9y
aWdpbigpLCBkZW5vbWluYXRvcik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgYXJndW1lbnQxLCBhcmd1bWVudDIpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
c3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2Ms
IG51bWVyYXRvciwgZGVub21pbmF0b3IpID09IG51bWVyYXRvciAlIGRlbm9taW5hdG9yKTsKIH0K
QEAgLTk5NzcsNyArOTk4NSw3IEBAIHZvaWQgdGVzdE1vZEFyZzMyKGludDMyX3QgdmFsdWUpCiAg
ICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgYXJndW1lbnQsIGFy
Z3VtZW50KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48
aW50MzJfdD4ocHJvYywgdmFsdWUpKTsKIH0KQEAgLTk5OTcsNyArMTAwMDUsNyBAQCB2b2lkIHRl
c3RNb2RBcmdzMzIoaW50MzJfdCBudW1lcmF0b3IsIGluCiAgICAgVmFsdWUqIGFyZ3VtZW50MiA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMSkpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIGFyZ3VtZW50MSwgYXJndW1lbnQyKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBudW1l
cmF0b3IsIGRlbm9taW5hdG9yKSA9PSBudW1lcmF0b3IgJSBkZW5vbWluYXRvcik7CiB9CkBAIC0x
MDAxNSw3ICsxMDAyMyw3IEBAIHZvaWQgdGVzdE1vZEltbXMzMihpbnQzMl90IG51bWVyYXRvciwg
aW4KICAgICBWYWx1ZSogYXJndW1lbnQxID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIG51bWVyYXRvcik7CiAgICAgVmFsdWUqIGFyZ3VtZW50MiA9IHJvb3Qt
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBkZW5vbWluYXRvcik7CiAg
ICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmln
aW4oKSwgYXJndW1lbnQxLCBhcmd1bWVudDIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBD
SEVDSyhjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIG51bWVyYXRvciwgZGVub21pbmF0b3Ip
ID09IG51bWVyYXRvciAlIGRlbm9taW5hdG9yKTsKIH0KQEAgLTEwMDI3LDcgKzEwMDM1LDcgQEAg
dm9pZCB0ZXN0Q2hpbGxNb2RBcmcoaW50NjRfdCB2YWx1ZSkKIAogICAgIFZhbHVlKiBhcmd1bWVu
dCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BS
SW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBDaGlsbE1vZCwgT3JpZ2luKCksIGFyZ3VtZW50LCBhcmd1bWVudCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludDY0X3Q+KHBy
b2MsIHZhbHVlKSk7CiB9CkBAIC0xMDA0MCw3ICsxMDA0OCw3IEBAIHZvaWQgdGVzdENoaWxsTW9k
QXJncyhpbnQ2NF90IG51bWVyYXRvciwKICAgICBWYWx1ZSogYXJndW1lbnQxID0gcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjApOwogICAgIFZhbHVlKiBhcmd1bWVudDIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CiAgICAgVmFs
dWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2hpbGxNb2QsIE9yaWdp
bigpLCBhcmd1bWVudDEsIGFyZ3VtZW50Mik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENI
RUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgbnVtZXJhdG9yLCBkZW5vbWluYXRvcikg
PT0gY2hpbGxNb2QobnVtZXJhdG9yLCBkZW5vbWluYXRvcikpOwogfQpAQCAtMTAwNTMsNyArMTAw
NjEsNyBAQCB2b2lkIHRlc3RDaGlsbE1vZEltbXMoaW50NjRfdCBudW1lcmF0b3IsCiAgICAgVmFs
dWUqIGFyZ3VtZW50MSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdp
bigpLCBudW1lcmF0b3IpOwogICAgIFZhbHVlKiBhcmd1bWVudDIgPSByb290LT5hcHBlbmROZXc8
Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgZGVub21pbmF0b3IpOwogICAgIFZhbHVlKiBy
ZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENoaWxsTW9kLCBPcmlnaW4oKSwg
YXJndW1lbnQxLCBhcmd1bWVudDIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhj
b21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIG51bWVyYXRvciwgZGVub21pbmF0b3IpID09IGNo
aWxsTW9kKG51bWVyYXRvciwgZGVub21pbmF0b3IpKTsKIH0KQEAgLTEwMDY2LDcgKzEwMDc0LDcg
QEAgdm9pZCB0ZXN0Q2hpbGxNb2RBcmczMihpbnQzMl90IHZhbHVlKQogICAgIFZhbHVlKiBhcmd1
bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIENoaWxsTW9kLCBPcmlnaW4oKSwgYXJndW1lbnQsIGFyZ3VtZW50KTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50MzJfdD4o
cHJvYywgdmFsdWUpKTsKIH0KQEAgLTEwMDgxLDcgKzEwMDg5LDcgQEAgdm9pZCB0ZXN0Q2hpbGxN
b2RBcmdzMzIoaW50MzJfdCBudW1lcmF0bwogICAgIFZhbHVlKiBhcmd1bWVudDIgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjEpKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBDaGlsbE1vZCwgT3JpZ2luKCksIGFyZ3VtZW50MSwgYXJndW1lbnQyKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBudW1lcmF0
b3IsIGRlbm9taW5hdG9yKSA9PSBjaGlsbE1vZChudW1lcmF0b3IsIGRlbm9taW5hdG9yKSk7CiB9
CkBAIC0xMDA5NCw3ICsxMDEwMiw3IEBAIHZvaWQgdGVzdENoaWxsTW9kSW1tczMyKGludDMyX3Qg
bnVtZXJhdG8KICAgICBWYWx1ZSogYXJndW1lbnQxID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIG51bWVyYXRvcik7CiAgICAgVmFsdWUqIGFyZ3VtZW50MiA9
IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBkZW5vbWluYXRv
cik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2hp
bGxNb2QsIE9yaWdpbigpLCBhcmd1bWVudDEsIGFyZ3VtZW50Mik7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgbnVtZXJhdG9yLCBk
ZW5vbWluYXRvcikgPT0gY2hpbGxNb2QobnVtZXJhdG9yLCBkZW5vbWluYXRvcikpOwogfQpAQCAt
MTAxMDUsMTggKzEwMTEzLDE3IEBAIHZvaWQgdGVzdFN3aXRjaCh1bnNpZ25lZCBkZWdyZWUsIHVu
c2lnbmUKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogCiAgICAgQmFz
aWNCbG9jayogdGVybWluYXRlID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHRlcm1pbmF0ZS0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGVybWluYXRlLT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRlcm1pbmF0ZS0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIFN3aXRj
aFZhbHVlKiBzd2l0Y2hWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxTd2l0Y2hWYWx1ZT4oCi0gICAg
ICAgIHByb2MsIE9yaWdpbigpLAotICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCksCi0gICAgICAgIEZy
ZXF1ZW50ZWRCbG9jayh0ZXJtaW5hdGUpKTsKKyAgICAgICAgcHJvYywgT3JpZ2luKCksIHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKSk7CisgICAgc3dpdGNoVmFsdWUtPnNldEZhbGxUaHJvdWdoKEZyZXF1ZW50ZWRC
bG9jayh0ZXJtaW5hdGUpKTsKIAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBkZWdyZWU7
ICsraSkgewogICAgICAgICBCYXNpY0Jsb2NrKiBuZXdCbG9jayA9IHByb2MuYWRkQmxvY2soKTsK
LSAgICAgICAgbmV3QmxvY2stPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICBuZXdC
bG9jay0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgICAgIG5ld0Jsb2NrLT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksIChpICYgMSkgPyBHUFJJbmZvOjph
cmd1bWVudEdQUjIgOiBHUFJJbmZvOjphcmd1bWVudEdQUjEpKTsKQEAgLTEwMTQ3LDE5ICsxMDE1
NCwxOCBAQCB2b2lkIHRlc3RTd2l0Y2hDaGlsbERpdih1bnNpZ25lZCBkZWdyZWUsCiAgICAgVmFs
dWUqIHJpZ2h0ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpOwogCiAgICAgQmFzaWNCbG9jayogdGVybWluYXRl
ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHRlcm1pbmF0ZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgdGVybWluYXRlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRlcm1pbmF0ZS0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIFN3aXRjaFZhbHVlKiBzd2l0Y2hWYWx1
ZSA9IHJvb3QtPmFwcGVuZE5ldzxTd2l0Y2hWYWx1ZT4oCi0gICAgICAgIHByb2MsIE9yaWdpbigp
LAotICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCksCi0gICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0ZXJt
aW5hdGUpKTsKKyAgICAgICAgcHJvYywgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CisgICAg
c3dpdGNoVmFsdWUtPnNldEZhbGxUaHJvdWdoKEZyZXF1ZW50ZWRCbG9jayh0ZXJtaW5hdGUpKTsK
IAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBkZWdyZWU7ICsraSkgewogICAgICAgICBC
YXNpY0Jsb2NrKiBuZXdCbG9jayA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgICAgICBuZXdCbG9j
ay0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIG5ld0Jsb2NrLT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICAgICAgbmV3QmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywg
Q2hpbGxEaXYsIE9yaWdpbigpLCAoaSAmIDEpID8gcmlnaHQgOiBsZWZ0LCAoaSAmIDEpID8gbGVm
dCA6IHJpZ2h0KSk7CkBAIC0xMDE3MCw3ICsxMDE3NiwxMCBAQCB2b2lkIHRlc3RTd2l0Y2hDaGls
bERpdih1bnNpZ25lZCBkZWdyZWUsCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIAog
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBkZWdyZWU7ICsraSkgewotICAgICAgICBDSEVD
SyhpbnZva2U8aW50MzJfdD4oKmNvZGUsIGkgKiBnYXAsIDQyLCAxMSkgPT0gKChpICYgMSkgPyAx
MS80MiA6IDQyLzExKSk7CisgICAgICAgIGRhdGFMb2coImkgPSAiLCBpLCAiXG4iKTsKKyAgICAg
ICAgaW50MzJfdCByZXN1bHQgPSBpbnZva2U8aW50MzJfdD4oKmNvZGUsIGkgKiBnYXAsIDQyLCAx
MSk7CisgICAgICAgIGRhdGFMb2coInJlc3VsdCA9ICIsIHJlc3VsdCwgIlxuIik7CisgICAgICAg
IENIRUNLKHJlc3VsdCA9PSAoKGkgJiAxKSA/IDExLzQyIDogNDIvMTEpKTsKICAgICAgICAgaWYg
KGdhcCA+IDEpIHsKICAgICAgICAgICAgIENIRUNLKCFpbnZva2U8aW50MzJfdD4oKmNvZGUsIGkg
KiBnYXAgKyAxLCA0MiwgMTEpKTsKICAgICAgICAgICAgIENIRUNLKCFpbnZva2U8aW50MzJfdD4o
KmNvZGUsIGkgKiBnYXAgLSAxLCA0MiwgMTEpKTsKQEAgLTEwMTg4LDE3ICsxMDE5NywxNiBAQCB2
b2lkIHRlc3RTd2l0Y2hUYXJnZXR0aW5nU2FtZUJsb2NrKCkKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwogCiAgICAgQmFzaWNCbG9jayogdGVybWluYXRlID0gcHJvYy5h
ZGRCbG9jaygpOwotICAgIHRlcm1pbmF0ZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
dGVybWluYXRlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHRlcm1pbmF0ZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIDUpKTsKIAogICAgIFN3aXRjaFZhbHVlKiBzd2l0Y2hWYWx1ZSA9IHJvb3Qt
PmFwcGVuZE5ldzxTd2l0Y2hWYWx1ZT4oCi0gICAgICAgIHByb2MsIE9yaWdpbigpLAotICAgICAg
ICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCksCi0gICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0ZXJtaW5hdGUpKTsK
KyAgICAgICAgcHJvYywgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CisgICAgc3dpdGNoVmFs
dWUtPnNldEZhbGxUaHJvdWdoKEZyZXF1ZW50ZWRCbG9jayh0ZXJtaW5hdGUpKTsKIAogICAgIEJh
c2ljQmxvY2sqIG90aGVyVGFyZ2V0ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIG90aGVyVGFyZ2V0
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBvdGhlclRhcmdldC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBvdGhl
clRhcmdldC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7CiAg
ICAgc3dpdGNoVmFsdWUtPmFwcGVuZENhc2UoU3dpdGNoQ2FzZSgzLCBGcmVxdWVudGVkQmxvY2so
b3RoZXJUYXJnZXQpKSk7CkBAIC0xMDIxOCwxOCArMTAyMjYsMTYgQEAgdm9pZCB0ZXN0U3dpdGNo
VGFyZ2V0dGluZ1NhbWVCbG9ja0ZvbGRQYQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7CiAKICAgICBCYXNpY0Jsb2NrKiB0ZXJtaW5hdGUgPSBwcm9jLmFkZEJsb2NrKCk7
Ci0gICAgdGVybWluYXRlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0ZXJtaW5hdGUt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgdGVybWluYXRlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgNDIpKTsKIAogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICBT
d2l0Y2hWYWx1ZSogc3dpdGNoVmFsdWUgPSByb290LT5hcHBlbmROZXc8U3dpdGNoVmFsdWU+KAot
ICAgICAgICBwcm9jLCBPcmlnaW4oKSwKLSAgICAgICAgYXJndW1lbnQsCi0gICAgICAgIEZyZXF1
ZW50ZWRCbG9jayh0ZXJtaW5hdGUpKTsKKyAgICBTd2l0Y2hWYWx1ZSogc3dpdGNoVmFsdWUgPSBy
b290LT5hcHBlbmROZXc8U3dpdGNoVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhcmd1bWVudCk7Cisg
ICAgc3dpdGNoVmFsdWUtPnNldEZhbGxUaHJvdWdoKEZyZXF1ZW50ZWRCbG9jayh0ZXJtaW5hdGUp
KTsKIAogICAgIEJhc2ljQmxvY2sqIG90aGVyVGFyZ2V0ID0gcHJvYy5hZGRCbG9jaygpOwotICAg
IG90aGVyVGFyZ2V0LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBvdGhlclRhcmdldC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBh
cmd1bWVudCk7CiAgICAgc3dpdGNoVmFsdWUtPmFwcGVuZENhc2UoU3dpdGNoQ2FzZSgzLCBGcmVx
dWVudGVkQmxvY2sob3RoZXJUYXJnZXQpKSk7CiAgICAgc3dpdGNoVmFsdWUtPmFwcGVuZENhc2Uo
U3dpdGNoQ2FzZSgxMywgRnJlcXVlbnRlZEJsb2NrKG90aGVyVGFyZ2V0KSkpOwpAQCAtMTAyNDYs
NyArMTAyNTIsNyBAQCB2b2lkIHRlc3RUcnVuY0ZvbGQoaW50NjRfdCB2YWx1ZSkKIHsKICAgICBQ
cm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwK
QEAgLTEwMjU5LDcgKzEwMjY1LDcgQEAgdm9pZCB0ZXN0WkV4dDMyKGludDMyX3QgdmFsdWUpCiB7
CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBaRXh0MzIsIE9y
aWdpbigpLApAQCAtMTAyNzQsNyArMTAyODAsNyBAQCB2b2lkIHRlc3RaRXh0MzJGb2xkKGludDMy
X3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBaRXh0MzIsIE9yaWdpbigpLApAQCAtMTAyODcsNyArMTAyOTMsNyBAQCB2b2lkIHRlc3RTRXh0
MzIoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIFNFeHQzMiwgT3JpZ2luKCksCkBAIC0xMDMwMiw3ICsxMDMwOCw3IEBAIHZvaWQg
dGVzdFNFeHQzMkZvbGQoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIFNFeHQzMiwgT3JpZ2luKCksCkBAIC0xMDMxNSw3ICsxMDMy
MSw3IEBAIHZvaWQgdGVzdFRydW5jWkV4dDMyKGludDMyX3QgdmFsdWUpCiB7CiAgICAgUHJvY2Vk
dXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCkBAIC0x
MDMzMiw3ICsxMDMzOCw3IEBAIHZvaWQgdGVzdFRydW5jU0V4dDMyKGludDMyX3QgdmFsdWUpCiB7
CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3Jp
Z2luKCksCkBAIC0xMDM0OSw3ICsxMDM1NSw3IEBAIHZvaWQgdGVzdFNFeHQ4KGludDMyX3QgdmFs
dWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTRXh0
OCwgT3JpZ2luKCksCkBAIC0xMDM2NCw3ICsxMDM3MCw3IEBAIHZvaWQgdGVzdFNFeHQ4Rm9sZChp
bnQzMl90IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgU0V4dDgsIE9yaWdpbigpLApAQCAtMTAzNzcsNyArMTAzODMsNyBAQCB2b2lkIHRlc3RT
RXh0OFNFeHQ4KGludDMyX3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBTRXh0OCwgT3JpZ2luKCksCkBAIC0xMDM5NCw3ICsxMDQwMCw3IEBA
IHZvaWQgdGVzdFNFeHQ4U0V4dDE2KGludDMyX3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHBy
b2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTRXh0OCwgT3JpZ2luKCksCkBAIC0xMDQxMSw3
ICsxMDQxNyw3IEBAIHZvaWQgdGVzdFNFeHQ4Qml0QW5kKGludDMyX3QgdmFsdWUsIGludDMKIHsK
ICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNFeHQ4LCBPcmln
aW4oKSwKQEAgLTEwNDI5LDcgKzEwNDM1LDcgQEAgdm9pZCB0ZXN0Qml0QW5kU0V4dDgoaW50MzJf
dCB2YWx1ZSwgaW50MwogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTEwNDQ3LDcgKzEwNDUzLDcgQEAgdm9pZCB0ZXN0
U0V4dDE2KGludDMyX3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBTRXh0MTYsIE9yaWdpbigpLApAQCAtMTA0NjIsNyArMTA0NjgsNyBAQCB2
b2lkIHRlc3RTRXh0MTZGb2xkKGludDMyX3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTRXh0MTYsIE9yaWdpbigpLApAQCAtMTA0NzUsNyAr
MTA0ODEsNyBAQCB2b2lkIHRlc3RTRXh0MTZTRXh0MTYoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQ
cm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNFeHQxNiwgT3JpZ2luKCks
CkBAIC0xMDQ5Miw3ICsxMDQ5OCw3IEBAIHZvaWQgdGVzdFNFeHQxNlNFeHQ4KGludDMyX3QgdmFs
dWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTRXh0
MTYsIE9yaWdpbigpLApAQCAtMTA1MDksNyArMTA1MTUsNyBAQCB2b2lkIHRlc3RTRXh0MTZCaXRB
bmQoaW50MzJfdCB2YWx1ZSwgaW50CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBTRXh0MTYsIE9yaWdpbigpLApAQCAtMTA1MjcsNyArMTA1MzMsNyBAQCB2
b2lkIHRlc3RCaXRBbmRTRXh0MTYoaW50MzJfdCB2YWx1ZSwgaW50CiB7CiAgICAgUHJvY2VkdXJl
IHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMTA1
NDUsNyArMTA1NTEsNyBAQCB2b2lkIHRlc3RTRXh0MzJCaXRBbmQoaW50MzJfdCB2YWx1ZSwgaW50
CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTRXh0MzIs
IE9yaWdpbigpLApAQCAtMTA1NjMsNyArMTA1NjksNyBAQCB2b2lkIHRlc3RCaXRBbmRTRXh0MzIo
aW50MzJfdCB2YWx1ZSwgaW50CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMTA1ODEsNyArMTA1ODcsNyBAQCB2b2lk
IHRlc3RCYXNpY1NlbGVjdCgpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLApAQCAtMTA2MDMsNyArMTA2MDksNyBAQCB2b2lk
IHRlc3RTZWxlY3RUZXN0KCkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0xMDYyMiw3ICsxMDYyOCw3IEBAIHZvaWQg
dGVzdFNlbGVjdENvbXBhcmVEb3VibGUoKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAog
ICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTEwNjUzLDcgKzEwNjU5LDcg
QEAgdm9pZCB0ZXN0U2VsZWN0Q29tcGFyZUZsb2F0KGZsb2F0IGEsIGZsbwogICAgIFZhbHVlKiBm
bG9hdFZhbHVlMSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9y
aWdpbigpLCBhcmd1bWVudDFpbnQzMik7CiAgICAgVmFsdWUqIGZsb2F0VmFsdWUyID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50Mmlu
dDMyKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwg
T3JpZ2luKCksCkBAIC0xMDY5MSw3ICsxMDY5Nyw3IEBAIHZvaWQgdGVzdFNlbGVjdENvbXBhcmVG
bG9hdFRvRG91YmxlKGZsb2EKICAgICBWYWx1ZSogZG91YmxlVmFsdWUxID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZTEpOwog
ICAgIFZhbHVlKiBkb3VibGVWYWx1ZTIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZs
b2F0VG9Eb3VibGUsIE9yaWdpbigpLCBmbG9hdFZhbHVlMik7CiAKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLApAQCAtMTA3MTksNyArMTA3
MjUsNyBAQCB2b2lkIHRlc3RTZWxlY3REb3VibGUoKQogewogICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KAogICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTEwNzQxLDcgKzEw
NzQ3LDcgQEAgdm9pZCB0ZXN0U2VsZWN0RG91YmxlVGVzdCgpCiB7CiAgICAgUHJvY2VkdXJlIHBy
b2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLApAQCAtMTA3NjAs
NyArMTA3NjYsNyBAQCB2b2lkIHRlc3RTZWxlY3REb3VibGVDb21wYXJlRG91YmxlKCkKIHsKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2lu
KCksCkBAIC0xMDc5MCw3ICsxMDc5Niw3IEBAIHZvaWQgdGVzdFNlbGVjdERvdWJsZUNvbXBhcmVG
bG9hdChmbG9hdCAKICAgICBWYWx1ZSogZmxvYXRWYWx1ZTEgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQxaW50MzIpOwogICAgIFZh
bHVlKiBmbG9hdFZhbHVlMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNh
c3QsIE9yaWdpbigpLCBhcmd1bWVudDJpbnQzMik7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLApAQCAtMTA4MjEsNyArMTA4MjcsNyBA
QCB2b2lkIHRlc3RTZWxlY3RGbG9hdENvbXBhcmVGbG9hdChmbG9hdCBhCiAgICAgVmFsdWUqIGZs
b2F0VmFsdWUzID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3Jp
Z2luKCksIGFyZ3VtZW50M2ludDMyKTsKICAgICBWYWx1ZSogZmxvYXRWYWx1ZTQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQ0aW50
MzIpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBP
cmlnaW4oKSwKQEAgLTEwODQ3LDcgKzEwODUzLDcgQEAgdm9pZCB0ZXN0U2VsZWN0RG91YmxlQ29t
cGFyZURvdWJsZShib29sIAogICAgICAgICBWYWx1ZSogYXJnMiA9IHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIyKTsK
ICAgICAgICAgVmFsdWUqIGFyZzMgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMyk7CiAKLSAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3Jp
Z2luKCksCkBAIC0xMDg4Myw3ICsxMDg4OSw3IEBAIHZvaWQgdGVzdFNlbGVjdERvdWJsZUNvbXBh
cmVEb3VibGUoYm9vbCAKICAgICAgICAga2VlcFZhbHVlc0xpdmUtPmFwcGVuZChDb25zdHJhaW5l
ZFZhbHVlKGFyZzIsIFZhbHVlUmVwOjpTb21lUmVnaXN0ZXIpKTsKICAgICAgICAga2VlcFZhbHVl
c0xpdmUtPnNldEdlbmVyYXRvcihbJl0gKENDYWxsSGVscGVycyYsIGNvbnN0IFN0YWNrbWFwR2Vu
ZXJhdGlvblBhcmFtcyYpIHsgfSk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAg
ICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKICAgICAgICAgZm9yIChhdXRvJiBsZWZ0
IDogZmxvYXRpbmdQb2ludE9wZXJhbmRzPGRvdWJsZT4oKSkgewpAQCAtMTA5MTAsNyArMTA5MTYs
NyBAQCB2b2lkIHRlc3RTZWxlY3REb3VibGVDb21wYXJlRG91YmxlKGJvb2wgCiAgICAgICAgIGtl
ZXBWYWx1ZXNMaXZlLT5hcHBlbmQoQ29uc3RyYWluZWRWYWx1ZShhcmczLCBWYWx1ZVJlcDo6U29t
ZVJlZ2lzdGVyKSk7CiAgICAgICAgIGtlZXBWYWx1ZXNMaXZlLT5zZXRHZW5lcmF0b3IoWyZdIChD
Q2FsbEhlbHBlcnMmLCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7IH0pOwogCi0g
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogICAgICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHBy
b2MpOwogCiAgICAgICAgIGZvciAoYXV0byYgbGVmdCA6IGZsb2F0aW5nUG9pbnRPcGVyYW5kczxk
b3VibGU+KCkpIHsKQEAgLTEwOTM4LDcgKzEwOTQ0LDcgQEAgdm9pZCB0ZXN0U2VsZWN0RG91Ymxl
Q29tcGFyZURvdWJsZShib29sIAogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+YXBwZW5kKENvbnN0
cmFpbmVkVmFsdWUoYXJnMywgVmFsdWVSZXA6OlNvbWVSZWdpc3RlcikpOwogICAgICAgICBrZWVw
VmFsdWVzTGl2ZS0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3RhY2tt
YXBHZW5lcmF0aW9uUGFyYW1zJikgeyB9KTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgICAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsK
ICAgICAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIAogICAgICAgICBmb3IgKGF1dG8m
IGxlZnQgOiBmbG9hdGluZ1BvaW50T3BlcmFuZHM8ZG91YmxlPigpKSB7CkBAIC0xMDk1NSw3ICsx
MDk2MSw3IEBAIHZvaWQgdGVzdFNlbGVjdERvdWJsZUNvbXBhcmVEb3VibGUoYm9vbCAKICAgICAg
ICAgVmFsdWUqIGFyZzEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMSk7CiAgICAgICAgIFZhbHVlKiBhcmcyID0g
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZv
Ojphcmd1bWVudEZQUjIpOwogCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLApAQCAtMTA5OTAsNyArMTA5
OTYsNyBAQCB2b2lkIHRlc3RTZWxlY3REb3VibGVDb21wYXJlRG91YmxlKGJvb2wgCiAgICAgICAg
IGtlZXBWYWx1ZXNMaXZlLT5hcHBlbmQoQ29uc3RyYWluZWRWYWx1ZShhcmcyLCBWYWx1ZVJlcDo6
U29tZVJlZ2lzdGVyKSk7CiAgICAgICAgIGtlZXBWYWx1ZXNMaXZlLT5zZXRHZW5lcmF0b3IoWyZd
IChDQ2FsbEhlbHBlcnMmLCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7IH0pOwog
Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogICAgICAgICBhdXRvIGNvZGUgPSBjb21waWxl
KHByb2MpOwogCiAgICAgICAgIGZvciAoYXV0byYgbGVmdCA6IGZsb2F0aW5nUG9pbnRPcGVyYW5k
czxkb3VibGU+KCkpIHsKQEAgLTExMDMzLDcgKzExMDM5LDcgQEAgdm9pZCB0ZXN0U2VsZWN0Rmxv
YXRDb21wYXJlRmxvYXQoYm9vbCAoKgogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjMp
KSk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
ICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0xMTA3Nyw3ICsxMTA4Myw3IEBAIHZvaWQg
dGVzdFNlbGVjdEZsb2F0Q29tcGFyZUZsb2F0KGJvb2wgKCoKICAgICAgICAga2VlcFZhbHVlc0xp
dmUtPmFwcGVuZChDb25zdHJhaW5lZFZhbHVlKGFyZzIsIFZhbHVlUmVwOjpTb21lUmVnaXN0ZXIp
KTsKICAgICAgICAga2VlcFZhbHVlc0xpdmUtPnNldEdlbmVyYXRvcihbJl0gKENDYWxsSGVscGVy
cyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsgfSk7CiAKLSAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
KTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdCk7CiAgICAgICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKICAg
ICAgICAgZm9yIChhdXRvJiBsZWZ0IDogZmxvYXRpbmdQb2ludE9wZXJhbmRzPGZsb2F0PigpKSB7
CkBAIC0xMTExMiw3ICsxMTExOCw3IEBAIHZvaWQgdGVzdFNlbGVjdEZsb2F0Q29tcGFyZUZsb2F0
KGJvb2wgKCoKICAgICAgICAga2VlcFZhbHVlc0xpdmUtPmFwcGVuZChDb25zdHJhaW5lZFZhbHVl
KGFyZzMsIFZhbHVlUmVwOjpTb21lUmVnaXN0ZXIpKTsKICAgICAgICAga2VlcFZhbHVlc0xpdmUt
PnNldEdlbmVyYXRvcihbJl0gKENDYWxsSGVscGVycyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlv
blBhcmFtcyYpIHsgfSk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgICAgIGF1
dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKICAgICAgICAgZm9yIChhdXRvJiBsZWZ0IDogZmxv
YXRpbmdQb2ludE9wZXJhbmRzPGZsb2F0PigpKSB7CkBAIC0xMTE0OCw3ICsxMTE1NCw3IEBAIHZv
aWQgdGVzdFNlbGVjdEZsb2F0Q29tcGFyZUZsb2F0KGJvb2wgKCoKICAgICAgICAga2VlcFZhbHVl
c0xpdmUtPmFwcGVuZChDb25zdHJhaW5lZFZhbHVlKGFyZzMsIFZhbHVlUmVwOjpTb21lUmVnaXN0
ZXIpKTsKICAgICAgICAga2VlcFZhbHVlc0xpdmUtPnNldEdlbmVyYXRvcihbJl0gKENDYWxsSGVs
cGVycyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsgfSk7CiAKLSAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0KTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdCk7CiAgICAgICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAK
ICAgICAgICAgZm9yIChhdXRvJiBsZWZ0IDogZmxvYXRpbmdQb2ludE9wZXJhbmRzPGZsb2F0Pigp
KSB7CkBAIC0xMTE3MSw3ICsxMTE3Nyw3IEBAIHZvaWQgdGVzdFNlbGVjdEZsb2F0Q29tcGFyZUZs
b2F0KGJvb2wgKCoKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1
bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKSkpOwogCi0gICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBT
ZWxlY3QsIE9yaWdpbigpLApAQCAtMTEyMTIsNyArMTEyMTgsNyBAQCB2b2lkIHRlc3RTZWxlY3RG
bG9hdENvbXBhcmVGbG9hdChib29sICgqCiAgICAgICAgIGtlZXBWYWx1ZXNMaXZlLT5hcHBlbmQo
Q29uc3RyYWluZWRWYWx1ZShhcmcyLCBWYWx1ZVJlcDo6U29tZVJlZ2lzdGVyKSk7CiAgICAgICAg
IGtlZXBWYWx1ZXNMaXZlLT5zZXRHZW5lcmF0b3IoWyZdIChDQ2FsbEhlbHBlcnMmLCBjb25zdCBT
dGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7IH0pOwogCi0gICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1
bHQpOwogICAgICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCiAgICAgICAgIGZvciAo
YXV0byYgbGVmdCA6IGZsb2F0aW5nUG9pbnRPcGVyYW5kczxmbG9hdD4oKSkgewpAQCAtMTEyMzks
NyArMTEyNDUsNyBAQCB2b2lkIHRlc3RTZWxlY3RGb2xkKGludHB0cl90IHZhbHVlKQogewogICAg
IFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4o
KSwKQEAgLTExMjU5LDcgKzExMjY1LDcgQEAgdm9pZCB0ZXN0U2VsZWN0SW52ZXJ0KCkKIHsKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2lu
KCksCkBAIC0xMTMxMiw3ICsxMTMxOCw3IEBAIHZvaWQgdGVzdENoZWNrU2VsZWN0KCkKICAgICAg
ICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7CiAgICAgCi0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC0xMTM4Myw3ICsxMTM4OSw3IEBAIHZv
aWQgdGVzdENoZWNrU2VsZWN0Q2hlY2tTZWxlY3QoKQogICAgICAgICAgICAgaml0LnJldCgpOwog
ICAgICAgICB9KTsKICAgICAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAwKSk7CiAKQEAgLTExNDE5LDcgKzExNDI1LDcgQEAgdm9pZCB0ZXN0UG93RG91YmxlQnlJ
bnRlZ2VyTG9vcChkb3VibGUgeAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIGF1dG8g
cmVzdWx0ID0gcG93RG91YmxlSW50MzIocHJvYywgcm9vdCwgT3JpZ2luKCksIHgsIHkpOwogICAg
IEJhc2ljQmxvY2sqIGNvbnRpbnVhdGlvbiA9IHJlc3VsdC5maXJzdDsKLSAgICBjb250aW51YXRp
b24tPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dC5zZWNvbmQpOworICAgIGNvbnRpbnVhdGlvbi0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdC5zZWNvbmQpOwogCiAgICAgQ0hFQ0soaXNJZGVudGlj
YWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIHhPcGVyYW5kLCB5T3BlcmFuZCksIGIzUG93
KHhPcGVyYW5kLCB5T3BlcmFuZCkpKTsKIH0KQEAgLTExNDI5LDcgKzExNDM1LDcgQEAgdm9pZCB0
ZXN0VHJ1bmNPckhpZ2goKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCkBAIC0xMTQ0Nyw3ICsxMTQ1Myw3IEBAIHZvaWQgdGVz
dFRydW5jT3JMb3coKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBw
cm9jLCBUcnVuYywgT3JpZ2luKCksCkBAIC0xMTQ2NSw3ICsxMTQ3MSw3IEBAIHZvaWQgdGVzdEJp
dEFuZE9ySGlnaCgpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0xMTQ4NCw3ICsxMTQ5MCw3IEBAIHZvaWQgdGVzdEJp
dEFuZE9yTG93KCkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTExNTA3LDIwICsxMTUxMywyMCBAQCB2b2lkIHRlc3RC
cmFuY2g2NEVxdWFsKGludDY0X3QgbGVmdCwgaW50CiAKICAgICBWYWx1ZSogYXJnMSA9IHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKTsKICAgICBWYWx1ZSogYXJnMiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgRXF1YWwsIE9yaWdpbigpLCBhcmcxLCBhcmcyKSwKICAgICAgICAg
RnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAK
ICAgICBib29sIHRydWVSZXN1bHQgPSB0cnVlOwotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PE1l
bW9yeVZhbHVlPigKICAgICAgICAgICAgIHByb2MsIExvYWQ4WiwgT3JpZ2luKCksCiAgICAgICAg
ICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAm
dHJ1ZVJlc3VsdCkpKTsKIAogICAgIGJvb2wgZWxzZVJlc3VsdCA9IGZhbHNlOwotICAgIGVsc2VD
YXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNl
Q2FzZS0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgIHByb2MsIExvYWQ4Wiwg
T3JpZ2luKCksCkBAIC0xMTUzOCwyMCArMTE1NDQsMjAgQEAgdm9pZCB0ZXN0QnJhbmNoNjRFcXVh
bEltbShpbnQ2NF90IGxlZnQsIAogCiAgICAgVmFsdWUqIGFyZzEgPSByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7
CiAgICAgVmFsdWUqIGFyZzIgPSByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIHJpZ2h0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRXF1YWwsIE9yaWdp
bigpLCBhcmcxLCBhcmcyKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJl
cXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKICAgICBib29sIHRydWVSZXN1bHQgPSB0cnVlOwot
ICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IExvYWQ4WiwgT3JpZ2luKCksCiAgICAgICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0
UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAmdHJ1ZVJlc3VsdCkpKTsKIAogICAgIGJvb2wgZWxz
ZVJlc3VsdCA9IGZhbHNlOwotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIExvYWQ4WiwgT3JpZ2luKCksCkBAIC0xMTU3MSwyMCArMTE1Nzcs
MjAgQEAgdm9pZCB0ZXN0QnJhbmNoNjRFcXVhbE1lbShpbnQ2NF90IGxlZnQsIAogICAgICAgICBw
cm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApKTsKICAgICBWYWx1ZSogYXJnMiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgRXF1YWwsIE9yaWdpbigpLCBhcmcxLCBhcmcyKSwKICAgICAgICAgRnJlcXVl
bnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKICAgICBi
b29sIHRydWVSZXN1bHQgPSB0cnVlOwotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PE1lbW9yeVZh
bHVlPigKICAgICAgICAgICAgIHByb2MsIExvYWQ4WiwgT3JpZ2luKCksCiAgICAgICAgICAgICB0
aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAmdHJ1ZVJl
c3VsdCkpKTsKIAogICAgIGJvb2wgZWxzZVJlc3VsdCA9IGZhbHNlOwotICAgIGVsc2VDYXNlLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+
YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgIHByb2MsIExvYWQ4WiwgT3JpZ2lu
KCksCkBAIC0xMTYwNCwyMCArMTE2MTAsMjAgQEAgdm9pZCB0ZXN0QnJhbmNoNjRFcXVhbE1lbUlt
bShpbnQ2NF90IGxlZgogICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSogYXJnMiA9IHJvb3QtPmFw
cGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgcmlnaHQpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBFcXVhbCwgT3JpZ2luKCksIGFyZzEsIGFyZzIpLAogICAgICAgICBG
cmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAog
ICAgIGJvb2wgdHJ1ZVJlc3VsdCA9IHRydWU7Ci0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8TWVt
b3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZDhaLCBPcmlnaW4oKSwKICAgICAgICAg
ICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZ0
cnVlUmVzdWx0KSkpOwogCiAgICAgYm9vbCBlbHNlUmVzdWx0ID0gZmFsc2U7Ci0gICAgZWxzZUNh
c2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VD
YXNlLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZDhaLCBP
cmlnaW4oKSwKQEAgLTExNjQxLDcgKzExNjQ3LDcgQEAgdm9pZCB0ZXN0U3RvcmU4TG9hZDhaKGlu
dDMyX3QgdmFsdWUpCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICBwdHIp
OwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQ4WiwgT3JpZ2luKCksIHB0
cikpOwogCkBAIC0xMTY2Myw3ICsxMTY2OSw3IEBAIHZvaWQgdGVzdFN0b3JlMTZMb2FkMTZaKGlu
dDMyX3QgdmFsdWUpCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICBwdHIp
OwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQxNlosIE9yaWdpbigpLCBw
dHIpKTsKIApAQCAtMTE2NzUsNyArMTE2ODEsNyBAQCB2b2lkIHRlc3RTU2hyU2hsMzIoaW50MzJf
dCB2YWx1ZSwgaW50MzJfCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIFNTaHIsIE9yaWdpbigpLApAQCAtMTE2OTcsNyArMTE3MDMsNyBAQCB2b2lkIHRlc3RT
U2hyU2hsNjQoaW50NjRfdCB2YWx1ZSwgaW50MzJfCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIFNTaHIsIE9yaWdpbigpLApAQCAtMTE3MjUsOCArMTE3MzEs
OCBAQCB2b2lkIHRlc3RUcml2aWFsSW5maW5pdGVMb29wKCkKICAgICBQcm9jZWR1cmUgcHJvYzsK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sq
IGxvb3AgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhsb29wKSk7Ci0gICAgbG9v
cC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50
ZWRCbG9jayhsb29wKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1
bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sobG9vcCkpOworICAgIGxvb3AtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3Ap
KTsKIAogICAgIGNvbXBpbGUocHJvYyk7CiB9CkBAIC0xMTc0MCwxNSArMTE3NDYsMTUgQEAgdm9p
ZCB0ZXN0Rm9sZFBhdGhFcXVhbCgpCiAKICAgICBWYWx1ZSogYXJnID0gcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjAp
OwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLCBhcmcsIEZy
ZXF1ZW50ZWRCbG9jayh0aGVuQmxvY2spLCBGcmVxdWVudGVkQmxvY2soZWxzZUJsb2NrKSk7CiAK
LSAgICB0aGVuQmxvY2stPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5CbG9jay0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICB0aGVuQmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBF
cXVhbCwgT3JpZ2luKCksIGFyZywgdGhlbkJsb2NrLT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIDApKSk7CiAKLSAgICBlbHNlQmxvY2stPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIGVsc2VCbG9jay0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQmxvY2stPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBFcXVhbCwgT3JpZ2luKCksIGFyZywgZWxzZUJsb2NrLT5h
cHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKSk7CkBAIC0xMTc2Niw3
ICsxMTc3Miw3IEBAIHZvaWQgdGVzdExTaGlmdFNlbGYzMigpCiAgICAgVmFsdWUqIGFyZyA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU2hsLCBP
cmlnaW4oKSwgYXJnLCBhcmcpKTsKIApAQCAtMTE3ODksNyArMTE3OTUsNyBAQCB2b2lkIHRlc3RS
U2hpZnRTZWxmMzIoKQogICAgIFZhbHVlKiBhcmcgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KAog
ICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFNTaHIsIE9yaWdpbigpLCBhcmcsIGFyZykpOwog
CkBAIC0xMTgxMiw3ICsxMTgxOCw3IEBAIHZvaWQgdGVzdFVSU2hpZnRTZWxmMzIoKQogICAgIFZh
bHVlKiBhcmcgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICBwcm9jLCBUcnVuYywg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIFpTaHIsIE9yaWdpbigpLCBhcmcsIGFyZykpOwogCkBAIC0xMTgzMyw3ICsxMTgzOSw3
IEBAIHZvaWQgdGVzdExTaGlmdFNlbGY2NCgpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJnID0gcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNobCwg
T3JpZ2luKCksIGFyZywgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2lu
KCksIGFyZykpKTsKQEAgLTExODU3LDcgKzExODYzLDcgQEAgdm9pZCB0ZXN0UlNoaWZ0U2VsZjY0
KCkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwogICAgIFZhbHVlKiBhcmcgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU1NociwgT3JpZ2luKCksIGFyZywgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksIGFyZykpKTsKQEAgLTExODgxLDcg
KzExODg3LDcgQEAgdm9pZCB0ZXN0VVJTaGlmdFNlbGY2NCgpCiAgICAgUHJvY2VkdXJlIHByb2M7
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJn
ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIFpTaHIsIE9yaWdpbigpLCBhcmcsIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1
bmMsIE9yaWdpbigpLCBhcmcpKSk7CkBAIC0xMTkxNyw3ICsxMTkyMyw3IEBAIHZvaWQgdGVzdFBh
dGNocG9pbnREb3VibGVSZWdzKCkKICAgICAgICAgICAgIG51bUNhbGxzKys7CiAgICAgICAgIH0p
OwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcGF0Y2hwb2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGls
ZShwcm9jKTsKICAgICBDSEVDSyhudW1DYWxscyA9PSAxKTsKQEAgLTExOTUwLDcgKzExOTU2LDcg
QEAgdm9pZCB0ZXN0U3BpbGxEZWZTbWFsbGVyVGhhblVzZSgpCiAKICAgICAvLyBPbiB4ODYsIFN1
YiBhZG1pdCBhbiBhZGRyZXNzIGZvciBhbnkgb3BlcmFuZC4gSWYgaXQgdXNlcyB0aGUgc3RhY2ss
IHRoZSB0b3AgYml0cyBtdXN0IGJlIHplcm8uCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgZm9yY2VTcGlsbCwgYXJnNjQpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAg
IENIRUNLKGludm9rZTxpbnQ2NF90PigqY29kZSwgMHhmZmZmZmZmZjAwMDAwMDAwKSA9PSAwKTsK
QEAgLTExOTcwLDcgKzExOTc2LDcgQEAgdm9pZCB0ZXN0U3BpbGxVc2VMYXJnZXJUaGFuRGVmKCkK
IAogICAgIFZhbHVlKiBjb25kaXRpb24gPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIGFy
Z3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJh
bmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKQEAgLTExOTgwLDEwICsxMTk4NiwxMCBAQCB2b2lk
IHRlc3RTcGlsbFVzZUxhcmdlclRoYW5EZWYoKQogICAgIFZhbHVlKiB0cnVuY2F0ZWQgPSB0aGVu
Q2FzZS0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBaRXh0MzIsIE9yaWdpbigpLAogICAgICAgICB0
aGVuQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksIGFyZ3VtZW50
KSk7CiAgICAgVXBzaWxvblZhbHVlKiB0aGVuUmVzdWx0ID0gdGhlbkNhc2UtPmFwcGVuZE5ldzxV
cHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCB0cnVuY2F0ZWQpOwotICAgIHRoZW5DYXNlLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJs
b2NrKHRhaWwpKTsKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1
bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOwogCiAgICAgVXBzaWxvblZhbHVl
KiBlbHNlUmVzdWx0ID0gZWxzZUNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBhcmd1bWVudCk7Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOworICAgIGVsc2VD
YXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50
ZWRCbG9jayh0YWlsKSk7CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgMTAwOyArK2kp
IHsKICAgICAgICAgUGF0Y2hwb2ludFZhbHVlKiBwcmV2ZW50VGFpbER1cGxpY2F0aW9uID0gdGFp
bC0+YXBwZW5kTmV3PFBhdGNocG9pbnRWYWx1ZT4ocHJvYywgVm9pZCwgT3JpZ2luKCkpOwpAQCAt
MTIwMDQsNyArMTIwMTAsNyBAQCB2b2lkIHRlc3RTcGlsbFVzZUxhcmdlclRoYW5EZWYoKQogICAg
IFZhbHVlKiBwaGkgPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFBoaSwgSW50NjQsIE9y
aWdpbigpKTsKICAgICB0aGVuUmVzdWx0LT5zZXRQaGkocGhpKTsKICAgICBlbHNlUmVzdWx0LT5z
ZXRQaGkocGhpKTsKLSAgICB0YWlsLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBwaGkpOworICAgIHRhaWwtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBwaGkpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9j
KTsKICAgICBDSEVDSyhpbnZva2U8dWludDY0X3Q+KCpjb2RlLCAxLCAweGZmZmZmZmZmMDAwMDAw
MDApID09IDApOwpAQCAtMTIwODYsMTIgKzEyMDkyLDI0NCBAQCB2b2lkIHRlc3RMYXRlUmVnaXN0
ZXIoKQogICAgICAgICAgICAgaml0Lm5vcCgpOwogICAgICAgICAgICAgaml0Lm5vcCgpOwogICAg
ICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBzZWNvbmRQYXRjaHBvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kUGF0Y2hwb2ludCk7CiAgICAgCiAg
ICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBDSEVDSyhpbnZva2U8dWludDY0X3Q+
KCpjb2RlKSA9PSByZXN1bHQpOwogfQogCit2b2lkIHRocmVhZGVkSW50ZXJwcmV0ZXJQcmludChW
ZWN0b3I8aW50cHRyX3Q+KiBzdHJlYW0sIGludHB0cl90IHZhbHVlKQoreworICAgIHN0cmVhbS0+
YXBwZW5kKHZhbHVlKTsKK30KKwordm9pZCB0ZXN0VGhyZWFkZWRJbnRlcnByZXRlcigpCit7Cisg
ICAgLy8gVGhpcyBjcmVhdGVzIGEgcG9vciBtYW4ncyB0aHJlYWRlZCBpbnRlcnByZXRlciB1c2lu
ZyBQb2x5SnVtcCBhbmQgc2VlcyBpZiBpdCB3b3Jrcy4gTm90ZQorICAgIC8vIHRoYXQgUG9seUp1
bXAgaXMgbm90IGxpa2UgaW5kaXJlY3QgYnJhbmNoZXMgaW4gTExWTSwgc28geW91IGNhbid0IGFj
dHVhbGx5IHVzZSBpdCB0bworICAgIC8vIGltcGxlbWVudCBhIHByb3BlciB0aHJlYWRlZCBpbnRl
cnByZXRlci4gVGhpcyBjaGVhdHM6IHRoZSBkaXNwYXRjaCBpbnN0cnVjdGlvbiBpcyBhdCB0aGUg
dG9wCisgICAgLy8gb2YgdGhlIGxvb3AuIFRoaXMgYWxzbyB0ZXN0cyBWYXJpYWJsZVZhbHVlLgor
ICAgIAorICAgIFByb2NlZHVyZSBwcm9jOworICAgIAorICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayogZGlzcGF0Y2ggPSBwcm9jLmFkZEJsb2Nr
KCk7CisgICAgQmFzaWNCbG9jayogYWRkVG9EYXRhUG9pbnRlciA9IHByb2MuYWRkQmxvY2soKTsK
KyAgICBCYXNpY0Jsb2NrKiBhZGRUb0NvZGVQb2ludGVyID0gcHJvYy5hZGRCbG9jaygpOworICAg
IEJhc2ljQmxvY2sqIGFkZFRvQ29kZVBvaW50ZXJUYWtlbiA9IHByb2MuYWRkQmxvY2soKTsKKyAg
ICBCYXNpY0Jsb2NrKiBhZGRUb0NvZGVQb2ludGVyTm90VGFrZW4gPSBwcm9jLmFkZEJsb2NrKCk7
CisgICAgQmFzaWNCbG9jayogYWRkVG9EYXRhID0gcHJvYy5hZGRCbG9jaygpOworICAgIEJhc2lj
QmxvY2sqIHByaW50ID0gcHJvYy5hZGRCbG9jaygpOworICAgIEJhc2ljQmxvY2sqIHN0b3AgPSBw
cm9jLmFkZEJsb2NrKCk7CisgICAgCisgICAgVmFyaWFibGUqIGRhdGFQb2ludGVyID0gcHJvYy5h
ZGRWYXJpYWJsZShwb2ludGVyVHlwZSgpKTsKKyAgICBWYXJpYWJsZSogY29kZVBvaW50ZXIgPSBw
cm9jLmFkZFZhcmlhYmxlKHBvaW50ZXJUeXBlKCkpOworICAgIAorICAgIHJvb3QtPmFwcGVuZE5l
dzxWYXJpYWJsZVZhbHVlPigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgZGF0YVBvaW50
ZXIsCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3PFZhcmlh
YmxlVmFsdWU+KAorICAgICAgICBwcm9jLCBTZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlciwKKyAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjEpKTsKKyAgICBWYWx1ZSogY29udGV4dCA9IHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2lu
KCksIEZyZXF1ZW50ZWRCbG9jayhkaXNwYXRjaCkpOworCisgICAgVmFsdWUqIGNvZGVQb2ludGVy
VmFsdWUgPQorICAgICAgICBkaXNwYXRjaC0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHByb2Ms
IEIzOjpHZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlcik7CisgICAgUGF0Y2hwb2ludFZhbHVlKiBw
b2x5SnVtcCA9IGRpc3BhdGNoLT5hcHBlbmROZXc8UGF0Y2hwb2ludFZhbHVlPihwcm9jLCBWb2lk
LCBPcmlnaW4oKSk7CisgICAgcG9seUp1bXAtPmVmZmVjdHMudGVybWluYWwgPSB0cnVlOworICAg
IHBvbHlKdW1wLT5hcHBlbmRTb21lUmVnaXN0ZXIoY29kZVBvaW50ZXJWYWx1ZSk7CisgICAgZGlz
cGF0Y2gtPmFwcGVuZFN1Y2Nlc3NvcihGcmVxdWVudGVkQmxvY2soYWRkVG9EYXRhUG9pbnRlcikp
OworICAgIGRpc3BhdGNoLT5hcHBlbmRTdWNjZXNzb3IoRnJlcXVlbnRlZEJsb2NrKGFkZFRvQ29k
ZVBvaW50ZXIpKTsKKyAgICBkaXNwYXRjaC0+YXBwZW5kU3VjY2Vzc29yKEZyZXF1ZW50ZWRCbG9j
ayhhZGRUb0RhdGEpKTsKKyAgICBkaXNwYXRjaC0+YXBwZW5kU3VjY2Vzc29yKEZyZXF1ZW50ZWRC
bG9jayhwcmludCkpOworICAgIGRpc3BhdGNoLT5hcHBlbmRTdWNjZXNzb3IoRnJlcXVlbnRlZEJs
b2NrKHN0b3ApKTsKKyAgICAKKyAgICAvLyBPdXIgIm9wY29kZXMiLiBUaGV5IHdpbGwgaGF2ZSBt
ZWFuaW5nIG9uY2Ugd2UgY29tcGlsZS4KKyAgICBpbnRwdHJfdCBBZGREUCA9IDA7CisgICAgaW50
cHRyX3QgQWRkQ1AgPSAwOworICAgIGludHB0cl90IEFkZCA9IDA7CisgICAgaW50cHRyX3QgUHJp
bnQgPSAwOworICAgIGludHB0cl90IFN0b3AgPSAwOworICAgIHBvbHlKdW1wLT5zZXRHZW5lcmF0
b3IoCisgICAgICAgIFsmXSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNrbWFwR2VuZXJh
dGlvblBhcmFtcyYgcGFyYW1zKSB7CisgICAgICAgICAgICBqaXQuanVtcChDQ2FsbEhlbHBlcnM6
OkFkZHJlc3MocGFyYW1zWzBdLmdwcigpKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFZl
Y3RvcjxCb3g8Q0NhbGxIZWxwZXJzOjpMYWJlbD4+IGxhYmVscyA9IHBhcmFtcy5zdWNjZXNzb3JM
YWJlbHMoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaml0LmFkZExpbmtUYXNrKAorICAg
ICAgICAgICAgICAgIFsmLCBsYWJlbHNdIChMaW5rQnVmZmVyJiBsaW5rQnVmZmVyKSB7CisgICAg
ICAgICAgICAgICAgICAgIGF1dG8gZ2V0ID0gWyZdIChzaXplX3QgaW5kZXgpIC0+IGludHB0cl90
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8aW50cHRyX3Q+
KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmtCdWZmZXIubG9jYXRpb25PZigqbGFi
ZWxzW2luZGV4XSkuZXhlY3V0YWJsZUFkZHJlc3MoKSk7CisgICAgICAgICAgICAgICAgICAgIH07
CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBBZGREUCA9IGdldCgw
KTsKKyAgICAgICAgICAgICAgICAgICAgQWRkQ1AgPSBnZXQoMSk7CisgICAgICAgICAgICAgICAg
ICAgIEFkZCA9IGdldCgyKTsKKyAgICAgICAgICAgICAgICAgICAgUHJpbnQgPSBnZXQoMyk7Cisg
ICAgICAgICAgICAgICAgICAgIFN0b3AgPSBnZXQoNCk7CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgIH0pOworICAgIAorICAgIC8vIEFkZERQIDxvcGVyYW5kPjogYWRkcyA8b3BlcmFuZD4g
dG8gRFAuCisgICAgY29kZVBvaW50ZXJWYWx1ZSA9CisgICAgICAgIGFkZFRvRGF0YVBvaW50ZXIt
PmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPihwcm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwgY29kZVBv
aW50ZXIpOworICAgIGFkZFRvRGF0YVBvaW50ZXItPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPigK
KyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgZGF0YVBvaW50ZXIsCisgICAgICAgIGFkZFRv
RGF0YVBvaW50ZXItPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBCMzo6QWRk
LCBPcmlnaW4oKSwKKyAgICAgICAgICAgIGFkZFRvRGF0YVBvaW50ZXItPmFwcGVuZE5ldzxWYXJp
YWJsZVZhbHVlPihwcm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwgZGF0YVBvaW50ZXIpLAorICAgICAg
ICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgICAg
ICBwcm9jLCBNdWwsIE9yaWdpbigpLAorICAgICAgICAgICAgICAgIGFkZFRvRGF0YVBvaW50ZXIt
PmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgICAgICAgICAgICAgIHByb2MsIExvYWQs
IHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLCBzaXplb2YoaW50cHRy
X3QpKSwKKyAgICAgICAgICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmRJbnRDb25zdGFu
dCgKKyAgICAgICAgICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBlKCksIHNp
emVvZihpbnRwdHJfdCkpKSkpOworICAgIGFkZFRvRGF0YVBvaW50ZXItPmFwcGVuZE5ldzxWYXJp
YWJsZVZhbHVlPigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIsCisg
ICAgICAgIGFkZFRvRGF0YVBvaW50ZXItPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICBw
cm9jLCBCMzo6QWRkLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwKKyAgICAgICAgICAgIGFk
ZFRvRGF0YVBvaW50ZXItPmFwcGVuZEludENvbnN0YW50KAorICAgICAgICAgICAgICAgIHByb2Ms
IE9yaWdpbigpLCBwb2ludGVyVHlwZSgpLCBzaXplb2YoaW50cHRyX3QpICogMikpKTsKKyAgICBh
ZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2lu
KCksIEZyZXF1ZW50ZWRCbG9jayhkaXNwYXRjaCkpOworICAgIAorICAgIC8vIEFkZENQIDxvcGVy
YW5kPjogYWRkcyA8b3BlcmFuZD4gdG8gQ1AgaWYgdGhlIGN1cnJlbnQgdmFsdWUgYXQgRFAgaXMg
bm9uLXplcm8sIG90aGVyd2lzZQorICAgIC8vIGZhbGxzIHRocm91Z2ggbm9ybWFsbHkuCisgICAg
Y29kZVBvaW50ZXJWYWx1ZSA9CisgICAgICAgIGFkZFRvQ29kZVBvaW50ZXItPmFwcGVuZE5ldzxW
YXJpYWJsZVZhbHVlPihwcm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIpOworICAg
IFZhbHVlKiBkYXRhUG9pbnRlclZhbHVlID0KKyAgICAgICAgYWRkVG9Db2RlUG9pbnRlci0+YXBw
ZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRl
cik7CisgICAgYWRkVG9Db2RlUG9pbnRlci0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAorICAgICAg
ICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAorICAgICAgICBhZGRUb0NvZGVQb2ludGVyLT5hcHBl
bmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5cGUo
KSwgT3JpZ2luKCksIGRhdGFQb2ludGVyVmFsdWUpLAorICAgICAgICBGcmVxdWVudGVkQmxvY2so
YWRkVG9Db2RlUG9pbnRlclRha2VuKSwgRnJlcXVlbnRlZEJsb2NrKGFkZFRvQ29kZVBvaW50ZXJO
b3RUYWtlbikpOworICAgIGFkZFRvQ29kZVBvaW50ZXJUYWtlbi0+YXBwZW5kTmV3PFZhcmlhYmxl
VmFsdWU+KAorICAgICAgICBwcm9jLCBTZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlciwKKyAgICAg
ICAgYWRkVG9Db2RlUG9pbnRlclRha2VuLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAg
cHJvYywgQjM6OkFkZCwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUsCisgICAgICAgICAgICBh
ZGRUb0NvZGVQb2ludGVyVGFrZW4tPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICAgICAg
cHJvYywgTXVsLCBPcmlnaW4oKSwKKyAgICAgICAgICAgICAgICBhZGRUb0NvZGVQb2ludGVyVGFr
ZW4tPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgICAgICAgICAgICAgIHByb2MsIExv
YWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLCBzaXplb2YoaW50
cHRyX3QpKSwKKyAgICAgICAgICAgICAgICBhZGRUb0NvZGVQb2ludGVyVGFrZW4tPmFwcGVuZElu
dENvbnN0YW50KAorICAgICAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5
cGUoKSwgc2l6ZW9mKGludHB0cl90KSkpKSk7CisgICAgYWRkVG9Db2RlUG9pbnRlclRha2VuLT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9j
ayhkaXNwYXRjaCkpOworICAgIGFkZFRvQ29kZVBvaW50ZXJOb3RUYWtlbi0+YXBwZW5kTmV3PFZh
cmlhYmxlVmFsdWU+KAorICAgICAgICBwcm9jLCBTZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlciwK
KyAgICAgICAgYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuLT5hcHBlbmROZXc8VmFsdWU+KAorICAg
ICAgICAgICAgcHJvYywgQjM6OkFkZCwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUsCisgICAg
ICAgICAgICBhZGRUb0NvZGVQb2ludGVyTm90VGFrZW4tPmFwcGVuZEludENvbnN0YW50KAorICAg
ICAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLCBwb2ludGVyVHlwZSgpLCBzaXplb2YoaW50cHRy
X3QpICogMikpKTsKKyAgICBhZGRUb0NvZGVQb2ludGVyTm90VGFrZW4tPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKKyAgICAgICAgcHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhk
aXNwYXRjaCkpOworCisgICAgLy8gQWRkIDxvcGVyYW5kPjogYWRkcyA8b3BlcmFuZD4gdG8gdGhl
IHNsb3QgcG9pbnRlZCB0byBieSBEUC4KKyAgICBjb2RlUG9pbnRlclZhbHVlID0gYWRkVG9EYXRh
LT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGNvZGVQ
b2ludGVyKTsKKyAgICBkYXRhUG9pbnRlclZhbHVlID0gYWRkVG9EYXRhLT5hcHBlbmROZXc8VmFy
aWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGRhdGFQb2ludGVyKTsKKyAgICBh
ZGRUb0RhdGEtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgIHByb2MsIFN0b3JlLCBP
cmlnaW4oKSwKKyAgICAgICAgYWRkVG9EYXRhLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAg
ICAgcHJvYywgQjM6OkFkZCwgT3JpZ2luKCksCisgICAgICAgICAgICBhZGRUb0RhdGEtPmFwcGVu
ZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5
cGUoKSwgT3JpZ2luKCksIGRhdGFQb2ludGVyVmFsdWUpLAorICAgICAgICAgICAgYWRkVG9EYXRh
LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICAgICAgICAgIHByb2MsIExvYWQsIHBv
aW50ZXJUeXBlKCksIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLCBzaXplb2YoaW50cHRyX3Qp
KSksCisgICAgICAgIGRhdGFQb2ludGVyVmFsdWUpOworICAgIGFkZFRvRGF0YS0+YXBwZW5kTmV3
PFZhcmlhYmxlVmFsdWU+KAorICAgICAgICBwcm9jLCBTZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRl
ciwKKyAgICAgICAgYWRkVG9EYXRhLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgcHJv
YywgQjM6OkFkZCwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUsCisgICAgICAgICAgICBhZGRU
b0RhdGEtPmFwcGVuZEludENvbnN0YW50KHByb2MsIE9yaWdpbigpLCBwb2ludGVyVHlwZSgpLCBz
aXplb2YoaW50cHRyX3QpICogMikpKTsKKyAgICBhZGRUb0RhdGEtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRpc3BhdGNoKSk7Cisg
ICAgCisgICAgLy8gUHJpbnQ6ICJwcmludHMiIHRoZSB2YWx1ZSBwb2ludGVkIHRvIGJ5IERQLiBX
aGF0IHRoaXMgYWN0dWFsbHkgbWVhbnMgaXMgdGhhdCB0aGUgdmFsdWUgaXMKKyAgICAvLyBhcHBl
bmRlZCB0byB0aGUgc3RyZWFtIHZlY3RvciBieSB0aGUgdGhyZWFkZWRJbnRlcnByZXRlclByaW50
IGZ1bmN0aW9uLgorICAgIGNvZGVQb2ludGVyVmFsdWUgPSBwcmludC0+YXBwZW5kTmV3PFZhcmlh
YmxlVmFsdWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlcik7CisgICAgZGF0
YVBvaW50ZXJWYWx1ZSA9IHByaW50LT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6
OkdldCwgT3JpZ2luKCksIGRhdGFQb2ludGVyKTsKKyAgICBwcmludC0+YXBwZW5kTmV3PENDYWxs
VmFsdWU+KAorICAgICAgICBwcm9jLCBWb2lkLCBPcmlnaW4oKSwKKyAgICAgICAgcHJpbnQtPmFw
cGVuZE5ldzxDb25zdFB0clZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLCBiaXR3
aXNlX2Nhc3Q8dm9pZCo+KHRocmVhZGVkSW50ZXJwcmV0ZXJQcmludCkpLAorICAgICAgICBjb250
ZXh0LAorICAgICAgICBwcmludC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBw
b2ludGVyVHlwZSgpLCBPcmlnaW4oKSwgZGF0YVBvaW50ZXJWYWx1ZSkpOworICAgIHByaW50LT5h
cHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNv
ZGVQb2ludGVyLAorICAgICAgICBwcmludC0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAg
IHByb2MsIEIzOjpBZGQsIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLAorICAgICAgICAgICAg
cHJpbnQtPmFwcGVuZEludENvbnN0YW50KHByb2MsIE9yaWdpbigpLCBwb2ludGVyVHlwZSgpLCBz
aXplb2YoaW50cHRyX3QpKSkpOworICAgIHByaW50LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhkaXNwYXRjaCkpOworICAgIAorICAg
IC8vIFN0b3A6IHJldHVybnMuCisgICAgc3RvcC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAorICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAorICAgICAgICBzdG9wLT5hcHBlbmRJbnRDb25z
dGFudChwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgMCkpOworICAgIAorICAgIGF1dG8g
aW50ZXJwcmV0ZXIgPSBjb21waWxlKHByb2MpOworICAgIAorICAgIENIRUNLKEFkZERQKTsKKyAg
ICBDSEVDSyhBZGRDUCk7CisgICAgQ0hFQ0soQWRkKTsKKyAgICBDSEVDSyhQcmludCk7CisgICAg
Q0hFQ0soU3RvcCk7CisgICAgCisgICAgVmVjdG9yPGludHB0cl90PiBkYXRhOworICAgIFZlY3Rv
cjxpbnRwdHJfdD4gY29kZTsKKyAgICBWZWN0b3I8aW50cHRyX3Q+IHN0cmVhbTsKKyAgICAKKyAg
ICBkYXRhLmFwcGVuZCgxKTsKKyAgICBkYXRhLmFwcGVuZCgwKTsKKyAgICAKKyAgICBpZiAoc2hv
dWxkQmVWZXJib3NlKCkpCisgICAgICAgIGRhdGFMb2coImRhdGEgPSAiLCBsaXN0RHVtcChkYXRh
KSwgIlxuIik7CisgICAgCisgICAgLy8gV2UnbGwgd3JpdGUgYSBwcm9ncmFtIHRoYXQgcHJpbnRz
IHRoZSBudW1iZXJzIDEuLjEwMC4KKyAgICAvLyBXZSBleHBlY3QgRFAgdG8gcG9pbnQgYXQgIzAu
CisgICAgY29kZS5hcHBlbmQoQWRkQ1ApOworICAgIGNvZGUuYXBwZW5kKDYpOyAvLyBnbyB0byBs
b29wIGJvZHkKKyAgICAKKyAgICAvLyBMb29wIHJlLWVudHJ5OgorICAgIC8vIFdlIGV4cGVjdCBE
UCB0byBwb2ludCBhdCAjMSBhbmQgZm9yICMxIHRvIGJlIG9mZnNldCBieSAtMTAwLgorICAgIGNv
ZGUuYXBwZW5kKEFkZCk7CisgICAgY29kZS5hcHBlbmQoMTAwKTsKKyAgICAKKyAgICBjb2RlLmFw
cGVuZChBZGREUCk7CisgICAgY29kZS5hcHBlbmQoLTEpOworICAgIAorICAgIC8vIExvb3AgaGVh
ZGVyOgorICAgIC8vIFdlIGV4cGVjdCBEUCB0byBwb2ludCBhdCAjMC4KKyAgICBjb2RlLmFwcGVu
ZChBZGREUCk7CisgICAgY29kZS5hcHBlbmQoMSk7CisgICAgCisgICAgY29kZS5hcHBlbmQoQWRk
KTsKKyAgICBjb2RlLmFwcGVuZCgxKTsKKyAgICAKKyAgICBjb2RlLmFwcGVuZChQcmludCk7Cisg
ICAgCisgICAgY29kZS5hcHBlbmQoQWRkKTsKKyAgICBjb2RlLmFwcGVuZCgtMTAwKTsKKyAgICAK
KyAgICAvLyBXZSB3YW50IHRvIHN0b3AgaWYgaXQncyB6ZXJvIGFuZCBjb250aW51ZSBpZiBpdCdz
IG5vbi16ZXJvLiBBZGRDUCB0YWtlcyB0aGUgYnJhbmNoIGlmIGl0J3MKKyAgICAvLyBub24temVy
by4KKyAgICBjb2RlLmFwcGVuZChBZGRDUCk7CisgICAgY29kZS5hcHBlbmQoLTExKTsgLy8gZ28g
dG8gbG9vcCByZS1lbnRyeS4KKyAgICAKKyAgICBjb2RlLmFwcGVuZChTdG9wKTsKKyAgICAKKyAg
ICBpZiAoc2hvdWxkQmVWZXJib3NlKCkpCisgICAgICAgIGRhdGFMb2coImNvZGUgPSAiLCBsaXN0
RHVtcChjb2RlKSwgIlxuIik7CisgICAgCisgICAgQ0hFQ0soIWludm9rZTxpbnRwdHJfdD4oKmlu
dGVycHJldGVyLCBkYXRhLmRhdGEoKSwgY29kZS5kYXRhKCksICZzdHJlYW0pKTsKKyAgICAKKyAg
ICBDSEVDSyhzdHJlYW0uc2l6ZSgpID09IDEwMCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IDEwMDsgKytpKQorICAgICAgICBDSEVDSyhzdHJlYW1baV0gPT0gaSArIDEpOworICAgIAor
ICAgIGlmIChzaG91bGRCZVZlcmJvc2UoKSkKKyAgICAgICAgZGF0YUxvZygic3RyZWFtID0gIiwg
bGlzdER1bXAoc3RyZWFtKSwgIlxuIik7Cit9CisKIHZvaWQgdGVzdFJlZHVjZVN0cmVuZ3RoQ2hl
Y2tCb3R0b21Vc2VJbkFub3RoZXJCbG9jaygpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CkBAIC0x
MjExMCw3ICsxMjM0OCw3IEBAIHZvaWQgdGVzdFJlZHVjZVN0cmVuZ3RoQ2hlY2tCb3R0b21Vc2VJ
bkEKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7CiAgICAgVmFsdWUqIGFyZyA9
IG9uZS0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjApOwotICAgIG9uZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
SnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0d28pKTsKKyAgICBvbmUtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHR3bykp
OwogICAgIAogICAgIGNoZWNrID0gdHdvLT5hcHBlbmROZXc8Q2hlY2tWYWx1ZT4oCiAgICAgICAg
IHByb2MsIENoZWNrQWRkLCBPcmlnaW4oKSwgYXJnLApAQCAtMTIxMTksNyArMTIzNTcsNyBAQCB2
b2lkIHRlc3RSZWR1Y2VTdHJlbmd0aENoZWNrQm90dG9tVXNlSW5BCiAgICAgICAgIFsmXSAoQ0Nh
bGxIZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgewogICAgICAgICAg
ICAgQ0hFQ0soISJTaG91bGQgbm90IGV4ZWN1dGUiKTsKICAgICAgICAgfSk7Ci0gICAgdHdvLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVjayk7Cisg
ICAgdHdvLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hl
Y2spOwogICAgIAogICAgIHByb2MucmVzZXRSZWFjaGFiaWxpdHkoKTsKICAgICByZWR1Y2VTdHJl
bmd0aChwcm9jKTsKQEAgLTEyMTM0LDExICsxMjM3MiwxMSBAQCB2b2lkIHRlc3RSZXNldFJlYWNo
YWJpbGl0eURhbmdsaW5nUmVmZXJlCiAgICAgCiAgICAgVXBzaWxvblZhbHVlKiB1cHNpbG9uID0g
b25lLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPigKICAgICAgICAgcHJvYywgT3JpZ2luKCksIG9u
ZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7Ci0gICAgb25l
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBPb3BzLCBPcmlnaW4oKSk7CisgICAgb25l
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgT29wcywgT3JpZ2luKCkpOwogICAgIAogICAg
IFZhbHVlKiBwaGkgPSB0d28tPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBJbnQzMiwgT3Jp
Z2luKCkpOwogICAgIHVwc2lsb24tPnNldFBoaShwaGkpOwotICAgIHR3by0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgT29wcywgT3JpZ2luKCkpOworICAgIHR3by0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIE9vcHMsIE9yaWdpbigpKTsKICAgICAKICAgICBwcm9jLnJlc2V0UmVh
Y2hhYmlsaXR5KCk7CiAgICAgdmFsaWRhdGUocHJvYyk7CkBAIC0xMzU0Nyw2ICsxMzc4NSw3IEBA
IHZvaWQgcnVuKGNvbnN0IGNoYXIqIGZpbHRlcikKICAgICBSVU4odGVzdFNwaWxsRGVmU21hbGxl
clRoYW5Vc2UoKSk7CiAgICAgUlVOKHRlc3RTcGlsbFVzZUxhcmdlclRoYW5EZWYoKSk7CiAgICAg
UlVOKHRlc3RMYXRlUmVnaXN0ZXIoKSk7CisgICAgUlVOKHRlc3RUaHJlYWRlZEludGVycHJldGVy
KCkpOwogICAgIFJVTih0ZXN0UmVkdWNlU3RyZW5ndGhDaGVja0JvdHRvbVVzZUluQW5vdGhlckJs
b2NrKCkpOwogICAgIFJVTih0ZXN0UmVzZXRSZWFjaGFiaWxpdHlEYW5nbGluZ1JlZmVyZW5jZSgp
KTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuY3BwCShyZXZp
c2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJBaXJDQ2FsbFNw
ZWNpYWwuaCIKICNpbmNsdWRlICJCM0Jhc2ljQmxvY2tVdGlscy5oIgorI2luY2x1ZGUgIkIzUHJv
Y2VkdXJlLmgiCiAjaW5jbHVkZSAiQjNTdGFja1Nsb3QuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBCMyB7IG5hbWVzcGFjZSBBaXIgewpAQCAtMTM1LDYgKzEzNiwxMSBAQCB2b2lkIENv
ZGU6OmFkZEZhc3RUbXAoVG1wIHRtcCkKICAgICBtX2Zhc3RUbXBzLmFkZCh0bXApOwogfQogCit2
b2lkKiBDb2RlOjphZGREYXRhU2VjdGlvbihzaXplX3Qgc2l6ZSkKK3sKKyAgICByZXR1cm4gbV9w
cm9jLmFkZERhdGFTZWN0aW9uKHNpemUpOworfQorCiB1bnNpZ25lZCBDb2RlOjpqc0hhc2goKSBj
b25zdAogewogICAgIHVuc2lnbmVkIHJlc3VsdCA9IDA7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvYWlyL0FpckNvZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL0FpckNvZGUuaAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL2Fpci9BaXJDb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDcgQEAK
ICNpbmNsdWRlICJBaXJTcGVjaWFsLmgiCiAjaW5jbHVkZSAiQWlyU3RhY2tTbG90LmgiCiAjaW5j
bHVkZSAiQWlyVG1wLmgiCisjaW5jbHVkZSAiQjNJbmRleE1hcC5oIgogI2luY2x1ZGUgIkIzU3Bh
cnNlQ29sbGVjdGlvbi5oIgogI2luY2x1ZGUgIlJlZ2lzdGVyQXRPZmZzZXRMaXN0LmgiCiAjaW5j
bHVkZSAiU3RhY2tBbGlnbm1lbnQuaCIKQEAgLTIwMyw2ICsyMDQsOCBAQCBwdWJsaWM6CiAgICAg
dm9pZCBhZGRGYXN0VG1wKFRtcCk7CiAgICAgYm9vbCBpc0Zhc3RUbXAoVG1wIHRtcCkgY29uc3Qg
eyByZXR1cm4gbV9mYXN0VG1wcy5jb250YWlucyh0bXApOyB9CiAgICAgCisgICAgdm9pZCogYWRk
RGF0YVNlY3Rpb24oc2l6ZV90KTsKKyAgICAKICAgICAvLyBUaGUgbmFtZSBoYXMgdG8gYmUgYSBz
dHJpbmcgbGl0ZXJhbCwgc2luY2Ugd2UgZG9uJ3QgZG8gYW55IG1lbW9yeSBtYW5hZ2VtZW50IGZv
ciB0aGUgc3RyaW5nLgogICAgIHZvaWQgc2V0TGFzdFBoYXNlTmFtZShjb25zdCBjaGFyKiBuYW1l
KQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ3VzdG9tLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDdXN0b20uaAko
cmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDdXN0
b20uaAkod29ya2luZyBjb3B5KQpAQCAtODQsMTAgKzg0LDE1IEBAIHN0cnVjdCBQYXRjaEN1c3Rv
bSB7CiAgICAgewogICAgICAgICByZXR1cm4gaW5zdC5hcmdzWzBdLnNwZWNpYWwoKS0+c2hvdWxk
VHJ5QWxpYXNpbmdEZWYoaW5zdCk7CiAgICAgfQorICAgIAorICAgIHN0YXRpYyBib29sIGlzVGVy
bWluYWwoSW5zdCYgaW5zdCkKKyAgICB7CisgICAgICAgIHJldHVybiBpbnN0LmFyZ3NbMF0uc3Bl
Y2lhbCgpLT5pc1Rlcm1pbmFsKGluc3QpOworICAgIH0KIAogICAgIHN0YXRpYyBib29sIGhhc05v
bkFyZ05vbkNvbnRyb2xFZmZlY3RzKEluc3QmIGluc3QpCiAgICAgewotICAgICAgICByZXR1cm4g
aW5zdC5hcmdzWzBdLnNwZWNpYWwoKS0+aGFzTm9uQXJnTm9uQ29udHJvbEVmZmVjdHMoKTsKKyAg
ICAgICAgcmV0dXJuIGluc3QuYXJnc1swXS5zcGVjaWFsKCktPmhhc05vbkFyZ05vbkNvbnRyb2xF
ZmZlY3RzKGluc3QpOwogICAgIH0KIAogICAgIHN0YXRpYyBDQ2FsbEhlbHBlcnM6Okp1bXAgZ2Vu
ZXJhdGUoCkBAIC0xMzgsNiArMTQzLDExIEBAIHN0cnVjdCBDQ2FsbEN1c3RvbSB7CiAgICAgewog
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CisgICAgCisgICAgc3RhdGljIGJvb2wgaXNUZXJt
aW5hbChJbnN0JikKKyAgICB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAKICAgICBz
dGF0aWMgYm9vbCBoYXNOb25BcmdOb25Db250cm9sRWZmZWN0cyhJbnN0JikKICAgICB7CkBAIC0x
OTcsNiArMjA3LDExIEBAIHN0cnVjdCBTaHVmZmxlQ3VzdG9tIHsKICAgICAgICAgfQogICAgIH0K
IAorICAgIHN0YXRpYyBib29sIGlzVGVybWluYWwoSW5zdCYpCisgICAgeworICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorCiAgICAgc3RhdGljIGJvb2wgaGFzTm9uQXJnTm9uQ29udHJvbEVm
ZmVjdHMoSW5zdCYpCiAgICAgewogICAgICAgICByZXR1cm4gZmFsc2U7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRlLmNwcAkocmV2aXNpb24gMjAyODA5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0ZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTUwLDggKzUwLDEwIEBACiAjaW5jbHVkZSAiQjNJbmRleE1hcC5oIgogI2lu
Y2x1ZGUgIkIzUHJvY2VkdXJlLmgiCiAjaW5jbHVkZSAiQjNUaW1pbmdTY29wZS5oIgorI2luY2x1
ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVk
ZSAiRGlzYWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlLmgiCisjaW5jbHVkZSAiTGlua0J1
ZmZlci5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsgbmFtZXNwYWNlIEFpciB7
CiAKQEAgLTE3MywxMiArMTc1LDE2IEBAIHZvaWQgZ2VuZXJhdGUoQ29kZSYgY29kZSwgQ0NhbGxI
ZWxwZXJzJiAKIAogICAgIEdlbmVyYXRpb25Db250ZXh0IGNvbnRleHQ7CiAgICAgY29udGV4dC5j
b2RlID0gJmNvZGU7Ci0gICAgSW5kZXhNYXA8QmFzaWNCbG9jaywgQ0NhbGxIZWxwZXJzOjpMYWJl
bD4gYmxvY2tMYWJlbHMoY29kZS5zaXplKCkpOworICAgIGNvbnRleHQuYmxvY2tMYWJlbHMucmVz
aXplKGNvZGUuc2l6ZSgpKTsKKyAgICBmb3IgKEJhc2ljQmxvY2sqIGJsb2NrIDogY29kZSkgewor
ICAgICAgICBpZiAoYmxvY2spCisgICAgICAgICAgICBjb250ZXh0LmJsb2NrTGFiZWxzW2Jsb2Nr
XSA9IEJveDxDQ2FsbEhlbHBlcnM6OkxhYmVsPjo6Y3JlYXRlKCk7CisgICAgfQogICAgIEluZGV4
TWFwPEJhc2ljQmxvY2ssIENDYWxsSGVscGVyczo6SnVtcExpc3Q+IGJsb2NrSnVtcHMoY29kZS5z
aXplKCkpOwogCiAgICAgYXV0byBsaW5rID0gWyZdIChDQ2FsbEhlbHBlcnM6Okp1bXAganVtcCwg
QmFzaWNCbG9jayogdGFyZ2V0KSB7Ci0gICAgICAgIGlmIChibG9ja0xhYmVsc1t0YXJnZXRdLmlz
U2V0KCkpIHsKLSAgICAgICAgICAgIGp1bXAubGlua1RvKGJsb2NrTGFiZWxzW3RhcmdldF0sICZq
aXQpOworICAgICAgICBpZiAoY29udGV4dC5ibG9ja0xhYmVsc1t0YXJnZXRdLT5pc1NldCgpKSB7
CisgICAgICAgICAgICBqdW1wLmxpbmtUbygqY29udGV4dC5ibG9ja0xhYmVsc1t0YXJnZXRdLCAm
aml0KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC0xOTUsMTYgKzIwMSwy
MiBAQCB2b2lkIGdlbmVyYXRlKENvZGUmIGNvZGUsIENDYWxsSGVscGVycyYgCiAgICAgfTsKIAog
ICAgIGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiBjb2RlKSB7CisgICAgICAgIGNvbnRleHQuY3Vy
cmVudEJsb2NrID0gYmxvY2s7CisgICAgICAgIGNvbnRleHQuaW5kZXhJbkJsb2NrID0gVUlOVF9N
QVg7CiAgICAgICAgIGJsb2NrSnVtcHNbYmxvY2tdLmxpbmsoJmppdCk7Ci0gICAgICAgIGJsb2Nr
TGFiZWxzW2Jsb2NrXSA9IGppdC5sYWJlbCgpOworICAgICAgICBDQ2FsbEhlbHBlcnM6OkxhYmVs
IGxhYmVsID0gaml0LmxhYmVsKCk7CisgICAgICAgICpjb250ZXh0LmJsb2NrTGFiZWxzW2Jsb2Nr
XSA9IGxhYmVsOwogICAgICAgICBBU1NFUlQoYmxvY2stPnNpemUoKSA+PSAxKTsKICAgICAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGJsb2NrLT5zaXplKCkgLSAxOyArK2kpIHsKKyAgICAg
ICAgICAgIGNvbnRleHQuaW5kZXhJbkJsb2NrID0gaTsKICAgICAgICAgICAgIEluc3QmIGluc3Qg
PSBibG9jay0+YXQoaSk7CiAgICAgICAgICAgICBhZGRJdGVtKGluc3QpOwogICAgICAgICAgICAg
Q0NhbGxIZWxwZXJzOjpKdW1wIGp1bXAgPSBpbnN0LmdlbmVyYXRlKGppdCwgY29udGV4dCk7CiAg
ICAgICAgICAgICBBU1NFUlRfVU5VU0VEKGp1bXAsICFqdW1wLmlzU2V0KCkpOwogICAgICAgICB9
CiAKKyAgICAgICAgY29udGV4dC5pbmRleEluQmxvY2sgPSBibG9jay0+c2l6ZSgpIC0gMTsKKyAg
ICAgICAgCiAgICAgICAgIGlmIChibG9jay0+bGFzdCgpLm9wY29kZSA9PSBKdW1wCiAgICAgICAg
ICAgICAmJiBibG9jay0+c3VjY2Vzc29yQmxvY2soMCkgPT0gY29kZS5maW5kTmV4dEJsb2NrKGJs
b2NrKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtMjI4LDI2ICsyNDAsMzAgQEAgdm9pZCBn
ZW5lcmF0ZShDb2RlJiBjb2RlLCBDQ2FsbEhlbHBlcnMmIAogICAgICAgICAgICAgYWRkSXRlbShi
bG9jay0+bGFzdCgpKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9Ci0KKyAgICAg
ICAgCiAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcCBqdW1wID0gYmxvY2stPmxhc3QoKS5nZW5l
cmF0ZShqaXQsIGNvbnRleHQpOwotICAgICAgICBzd2l0Y2ggKGJsb2NrLT5udW1TdWNjZXNzb3Jz
KCkpIHsKLSAgICAgICAgY2FzZSAwOgotICAgICAgICAgICAgQVNTRVJUKCFqdW1wLmlzU2V0KCkp
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgMToKLSAgICAgICAgICAgIGxpbmso
anVtcCwgYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDApKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIDI6Ci0gICAgICAgICAgICBsaW5rKGp1bXAsIGJsb2NrLT5zdWNjZXNzb3JCbG9j
aygwKSk7Ci0gICAgICAgICAgICBpZiAoYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDEpICE9IGNvZGUu
ZmluZE5leHRCbG9jayhibG9jaykpCi0gICAgICAgICAgICAgICAgbGluayhqaXQuanVtcCgpLCBi
bG9jay0+c3VjY2Vzc29yQmxvY2soMSkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGRl
ZmF1bHQ6Ci0gICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIC8vIFRoZSBqdW1wIHdvbid0IGJlIHNldCBmb3IgcGF0Y2hw
b2ludHMuIEl0IHdvbid0IGJlIHNldCBmb3IgT29wcyBiZWNhdXNlIHRoZW4gaXQgd29uJ3QgaGF2
ZQorICAgICAgICAvLyBhbnkgc3VjY2Vzc29ycy4KKyAgICAgICAgaWYgKGp1bXAuaXNTZXQoKSkg
eworICAgICAgICAgICAgc3dpdGNoIChibG9jay0+bnVtU3VjY2Vzc29ycygpKSB7CisgICAgICAg
ICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgbGluayhqdW1wLCBibG9jay0+c3VjY2Vzc29y
QmxvY2soMCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAyOgor
ICAgICAgICAgICAgICAgIGxpbmsoanVtcCwgYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDApKTsKKyAg
ICAgICAgICAgICAgICBpZiAoYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDEpICE9IGNvZGUuZmluZE5l
eHRCbG9jayhibG9jaykpCisgICAgICAgICAgICAgICAgICAgIGxpbmsoaml0Lmp1bXAoKSwgYmxv
Y2stPnN1Y2Nlc3NvckJsb2NrKDEpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAg
ICAgICBhZGRJdGVtKGJsb2NrLT5sYXN0KCkpOwogICAgIH0KKyAgICAKKyAgICBjb250ZXh0LmN1
cnJlbnRCbG9jayA9IG51bGxwdHI7CisgICAgY29udGV4dC5pbmRleEluQmxvY2sgPSBVSU5UX01B
WDsKIAogICAgIHBjVG9PcmlnaW5NYXAuYXBwZW5kSXRlbShqaXQubGFiZWwoKSwgT3JpZ2luKCkp
OwogICAgIC8vIEZJWE1FOiBNYWtlIGxhdGUgcGF0aHMgaGF2ZSBPcmlnaW5zOiBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzNjg5CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRpb25Db250ZXh0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0aW9uQ29udGV4dC5oCShyZXZpc2lv
biAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRpb25D
b250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsMTQgKzI4LDE0IEBACiAKICNpZiBFTkFCTEUoQjNf
SklUKQogCisjaW5jbHVkZSAiQWlyQmFzaWNCbG9jay5oIgorI2luY2x1ZGUgIkIzSW5kZXhNYXAu
aCIKKyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKKyNpbmNsdWRlIDx3dGYvQm94Lmg+CiAjaW5j
bHVkZSA8d3RmL1NoYXJlZFRhc2suaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKLW5hbWVz
cGFjZSBKU0MgewotCi1jbGFzcyBDQ2FsbEhlbHBlcnM7Ci0KLW5hbWVzcGFjZSBCMyB7IG5hbWVz
cGFjZSBBaXIgeworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7IG5hbWVzcGFjZSBBaXIg
ewogCiBjbGFzcyBDb2RlOwogCkBAIC00NCw3ICs0NCwxMCBAQCBzdHJ1Y3QgR2VuZXJhdGlvbkNv
bnRleHQgewogICAgIHR5cGVkZWYgU2hhcmVkVGFzazxMYXRlUGF0aEZ1bmN0aW9uPiBMYXRlUGF0
aDsKIAogICAgIFZlY3RvcjxSZWZQdHI8TGF0ZVBhdGg+PiBsYXRlUGF0aHM7Ci0gICAgQ29kZSog
Y29kZTsKKyAgICBJbmRleE1hcDxCYXNpY0Jsb2NrLCBCb3g8Q0NhbGxIZWxwZXJzOjpMYWJlbD4+
IGJsb2NrTGFiZWxzOworICAgIEJhc2ljQmxvY2sqIGN1cnJlbnRCbG9jayB7IG51bGxwdHIgfTsK
KyAgICB1bnNpZ25lZCBpbmRleEluQmxvY2sgeyBVSU5UX01BWCB9OworICAgIENvZGUqIGNvZGUg
eyBudWxscHRyIH07CiB9OwogCiB9IH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMzo6QWlyCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckluc3QuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckluc3QuaAkocmV2aXNpb24gMjAyODA5KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0LmgJKHdvcmtpbmcgY29weSkK
QEAgLTE2Myw2ICsxNjMsOSBAQCBwdWJsaWM6CiAgICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBhdXRv
LWdlbmVyYXRlZCBieSBvcGNvZGVfZ2VuZXJhdG9yLnJiLgogICAgIGJvb2wgYWRtaXRzU3RhY2so
dW5zaWduZWQgYXJnSW5kZXgpOwogICAgIGJvb2wgYWRtaXRzU3RhY2soQXJnJik7CisgICAgCisg
ICAgLy8gRGVmaW5lZCBieSBvcGNvZGVfZ2VuZXJhdG9yLnJiLgorICAgIGJvb2wgaXNUZXJtaW5h
bCgpOwogCiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoaXMgaW5zdHJ1Y3Rpb24gY2FuIGhhdmUg
YW55IGVmZmVjdHMgb3RoZXIgdGhhbiBjb250cm9sIGZsb3cgb3IgYXJndW1lbnRzLgogICAgIGJv
b2wgaGFzTm9uQXJnTm9uQ29udHJvbEVmZmVjdHMoKTsKQEAgLTE3NCw2ICsxNzcsOSBAQCBwdWJs
aWM6CiAKICAgICAvLyBUZWxscyB5b3UgaWYgdGhpcyBvcGVyYXRpb24gaGFzIGFyZyBlZmZlY3Rz
LgogICAgIGJvb2wgaGFzQXJnRWZmZWN0cygpOworICAgIAorICAgIC8vIFRlbGxzIHlvdSBpZiB0
aGlzIG9wZXJhdGlvbiBoYXMgbm9uLWNvbnRyb2wgZWZmZWN0cy4KKyAgICBib29sIGhhc05vbkNv
bnRyb2xFZmZlY3RzKCkgeyByZXR1cm4gaGFzTm9uQXJnTm9uQ29udHJvbEVmZmVjdHMoKSB8fCBo
YXNBcmdFZmZlY3RzKCk7IH0KIAogICAgIC8vIEdlbmVyYXRlIHNvbWUgY29kZSBmb3IgdGhpcyBp
bnN0cnVjdGlvbi4gVGhpcyBpcywgbGlrZSwgbGl0ZXJhbGx5IG91ciBiYWNrZW5kLiBJZiB0aGlz
IGlzIHRoZQogICAgIC8vIHRlcm1pbmFsLCBpdCByZXR1cm5zIHRoZSBqdW1wIHRoYXQgbmVlZHMg
dG8gYmUgbGlua2VkIGZvciB0aGUgInRoZW4iIGNhc2UsIHdpdGggdGhlICJlbHNlIgpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJTaW1wbGlmeUNGRy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJTaW1wbGlmeUNGRy5jcHAJKHJl
dmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyU2ltcGxp
ZnlDRkcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05NSwzMyArOTUsMzIgQEAgYm9vbCBzaW1wbGlm
eUNGRyhDb2RlJiBjb2RlKQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIAotICAg
ICAgICAgICAgLy8gTm93IGNoZWNrIGlmIHRoZSBibG9jaydzIHRlcm1pbmFsIGNhbiBiZSByZXBs
YWNlZCB3aXRoIGEganVtcC4KLSAgICAgICAgICAgIGlmIChibG9jay0+bnVtU3VjY2Vzc29ycygp
ID4gMSkgewotICAgICAgICAgICAgICAgIC8vIFRoZSB0ZXJtaW5hbCBtdXN0IG5vdCBoYXZlIHdl
aXJkIGVmZmVjdHMuCi0gICAgICAgICAgICAgICAgaWYgKCFibG9jay0+bGFzdCgpLmhhc0FyZ0Vm
ZmVjdHMoKQotICAgICAgICAgICAgICAgICAgICAmJiAhYmxvY2stPmxhc3QoKS5oYXNOb25BcmdO
b25Db250cm9sRWZmZWN0cygpKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIEFsbCBvZiB0aGUg
c3VjY2Vzc29ycyBtdXN0IGJlIHRoZSBzYW1lLgotICAgICAgICAgICAgICAgICAgICBib29sIGFs
bFNhbWUgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICBCYXNpY0Jsb2NrKiBmaXJzdFN1Y2Nl
c3NvciA9IGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKTsKLSAgICAgICAgICAgICAgICAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMTsgaSA8IGJsb2NrLT5udW1TdWNjZXNzb3JzKCk7ICsraSkgewotICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKGJsb2NrLT5zdWNjZXNzb3JCbG9jayhpKSAhPSBmaXJz
dFN1Y2Nlc3NvcikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbFNhbWUgPSBmYWxz
ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBpZiAo
YWxsU2FtZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygiQ2hhbmdpbmcgIiwgcG9pbnRlckR1bXAoYmxv
Y2spLCAiJ3MgdGVybWluYWwgdG8gYSBKdW1wLlxuIik7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBibG9jay0+bGFzdCgpID0gSW5zdChKdW1wLCBibG9jay0+bGFzdCgpLm9yaWdpbik7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBibG9jay0+c3VjY2Vzc29ycygpLnJlc2l6ZSgxKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGJsb2NrLT5zdWNjZXNzb3JzKClbMF0uZnJlcXVlbmN5KCkgPSBG
cmVxdWVuY3lDbGFzczo6Tm9ybWFsOwotICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCA9
IHRydWU7CisgICAgICAgICAgICAvLyBOb3cgY2hlY2sgaWYgdGhlIGJsb2NrJ3MgdGVybWluYWwg
Y2FuIGJlIHJlcGxhY2VkIHdpdGggYSBqdW1wLiBUaGUgdGVybWluYWwgbXVzdCBub3QKKyAgICAg
ICAgICAgIC8vIGhhdmUgd2VpcmQgZWZmZWN0cy4KKyAgICAgICAgICAgIGlmIChibG9jay0+bnVt
U3VjY2Vzc29ycygpID4gMSAKKyAgICAgICAgICAgICAgICAmJiAhYmxvY2stPmxhc3QoKS5oYXNO
b25Db250cm9sRWZmZWN0cygpKSB7CisgICAgICAgICAgICAgICAgLy8gQWxsIG9mIHRoZSBzdWNj
ZXNzb3JzIG11c3QgYmUgdGhlIHNhbWUuCisgICAgICAgICAgICAgICAgYm9vbCBhbGxTYW1lID0g
dHJ1ZTsKKyAgICAgICAgICAgICAgICBCYXNpY0Jsb2NrKiBmaXJzdFN1Y2Nlc3NvciA9IGJsb2Nr
LT5zdWNjZXNzb3JCbG9jaygwKTsKKyAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAx
OyBpIDwgYmxvY2stPm51bVN1Y2Nlc3NvcnMoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAg
IGlmIChibG9jay0+c3VjY2Vzc29yQmxvY2soaSkgIT0gZmlyc3RTdWNjZXNzb3IpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGFsbFNhbWUgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIGlmIChhbGxTYW1lKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh2ZXJi
b3NlKQorICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygiQ2hhbmdpbmcgIiwgcG9pbnRl
ckR1bXAoYmxvY2spLCAiJ3MgdGVybWluYWwgdG8gYSBKdW1wLlxuIik7CisgICAgICAgICAgICAg
ICAgICAgIGJsb2NrLT5sYXN0KCkgPSBJbnN0KEp1bXAsIGJsb2NrLT5sYXN0KCkub3JpZ2luKTsK
KyAgICAgICAgICAgICAgICAgICAgYmxvY2stPnN1Y2Nlc3NvcnMoKS5yZXNpemUoMSk7CisgICAg
ICAgICAgICAgICAgICAgIGJsb2NrLT5zdWNjZXNzb3JzKClbMF0uZnJlcXVlbmN5KCkgPSBGcmVx
dWVuY3lDbGFzczo6Tm9ybWFsOworICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsK
KyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIC8vIEZpbmFs
bHkgaGFuZGxlIGp1bXBzIHRvIGEgYmxvY2sgd2l0aCBvbmUgcHJlZGVjZXNzb3IuCi0gICAgICAg
ICAgICBpZiAoYmxvY2stPm51bVN1Y2Nlc3NvcnMoKSA9PSAxKSB7CisgICAgICAgICAgICBpZiAo
YmxvY2stPm51bVN1Y2Nlc3NvcnMoKSA9PSAxCisgICAgICAgICAgICAgICAgJiYgIWJsb2NrLT5s
YXN0KCkuaGFzTm9uQ29udHJvbEVmZmVjdHMoKSkgewogICAgICAgICAgICAgICAgIEJhc2ljQmxv
Y2sqIHN1Y2Nlc3NvciA9IGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKTsKICAgICAgICAgICAgICAg
ICBpZiAoc3VjY2Vzc29yICE9IGJsb2NrICYmIHN1Y2Nlc3Nvci0+bnVtUHJlZGVjZXNzb3JzKCkg
PT0gMSkgewogICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChzdWNjZXNzb3ItPnBy
ZWRlY2Vzc29yKDApID09IGJsb2NrKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvQWlyU3BlY2lhbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9BaXJTcGVjaWFsLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL2Fpci9BaXJTcGVjaWFsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01NSw3ICs1NSwxMiBA
QCBPcHRpb25hbDx1bnNpZ25lZD4gU3BlY2lhbDo6c2hvdWxkVHJ5QWxpCiAgICAgcmV0dXJuIE51
bGxvcHQ7CiB9CiAKLWJvb2wgU3BlY2lhbDo6aGFzTm9uQXJnTm9uQ29udHJvbEVmZmVjdHMoKQor
Ym9vbCBTcGVjaWFsOjppc1Rlcm1pbmFsKEluc3QmKQoreworICAgIHJldHVybiBmYWxzZTsKK30K
KworYm9vbCBTcGVjaWFsOjpoYXNOb25BcmdOb25Db250cm9sRWZmZWN0cyhJbnN0JikKIHsKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWly
U3BlY2lhbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWly
U3BlY2lhbC5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
YWlyL0FpclNwZWNpYWwuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC04Nyw5ICs4NywxMiBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIGNvbnN0IFJlZ2lzdGVyU2V0JiBleHRyYUVhcmx5Q2xvYmJlcmVkUmVncyhJ
bnN0JikgPSAwOwogICAgIHZpcnR1YWwgY29uc3QgUmVnaXN0ZXJTZXQmIGV4dHJhQ2xvYmJlcmVk
UmVncyhJbnN0JikgPSAwOworICAgIAorICAgIC8vIEJ5IGRlZmF1bHQsIHRoaXMgcmV0dXJucyBm
YWxzZS4KKyAgICB2aXJ0dWFsIGJvb2wgaXNUZXJtaW5hbChJbnN0Jik7CiAKICAgICAvLyBCeSBk
ZWZhdWx0LCB0aGlzIHJldHVybnMgdHJ1ZS4KLSAgICB2aXJ0dWFsIGJvb2wgaGFzTm9uQXJnTm9u
Q29udHJvbEVmZmVjdHMoKTsKKyAgICB2aXJ0dWFsIGJvb2wgaGFzTm9uQXJnTm9uQ29udHJvbEVm
ZmVjdHMoSW5zdCYpOwogCiAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAgICAg
dm9pZCBkZWVwRHVtcChQcmludFN0cmVhbSYpIGNvbnN0OwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL2Fpci9BaXJWYWxpZGF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJWYWxpZGF0ZS5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyVmFsaWRhdGUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTc5LDkgKzc5LDkgQEAgcHVibGljOgogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICBWQUxJREFURShpbnN0LmlzVmFsaWRGb3JtKCksICgiQXQgIiwgaW5zdCwgIiBpbiAiLCAqYmxv
Y2spKTsKICAgICAgICAgICAgICAgICBpZiAoaW5zdEluZGV4ID09IGJsb2NrLT5zaXplKCkgLSAx
KQotICAgICAgICAgICAgICAgICAgICBWQUxJREFURShpc1Rlcm1pbmFsKGluc3Qub3Bjb2RlKSwg
KCJBdCAiLCBpbnN0LCAiIGluICIsICpibG9jaykpOworICAgICAgICAgICAgICAgICAgICBWQUxJ
REFURShpbnN0LmlzVGVybWluYWwoKSwgKCJBdCAiLCBpbnN0LCAiIGluICIsICpibG9jaykpOwog
ICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgVkFMSURBVEUoIWlzVGVy
bWluYWwoaW5zdC5vcGNvZGUpLCAoIkF0ICIsIGluc3QsICIgaW4gIiwgKmJsb2NrKSk7CisgICAg
ICAgICAgICAgICAgICAgIFZBTElEQVRFKCFpbnN0LmlzVGVybWluYWwoKSwgKCJBdCAiLCBpbnN0
LCAiIGluICIsICpibG9jaykpOwogCiAgICAgICAgICAgICAgICAgLy8gZm9yRWFjaEFyZyBtdXN0
IHJldHVybiBBcmcmJ3MgdGhhdCBwb2ludCBpbnRvIHRoZSBhcmdzIGFycmF5LgogICAgICAgICAg
ICAgICAgIGluc3QuZm9yRWFjaEFyZygKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvb3Bjb2RlX2dlbmVyYXRvci5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL29wY29kZV9nZW5lcmF0b3IucmIJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvb3Bjb2RlX2dlbmVyYXRvci5yYgkod29ya2luZyBjb3B5
KQpAQCAtNzE0LDcgKzcxNCw3IEBAIHdyaXRlSCgiT3Bjb2RlVXRpbHMiKSB7CiAgICAgb3V0cC5w
dXRzICJyZXR1cm4gZmFsc2U7ICIKICAgICBvdXRwLnB1dHMgIn0iCiAKLSAgICBvdXRwLnB1dHMg
ImlubGluZSBib29sIGlzVGVybWluYWwoT3Bjb2RlIG9wY29kZSkiCisgICAgb3V0cC5wdXRzICJp
bmxpbmUgYm9vbCBpc0RlZmluaXRlbHlUZXJtaW5hbChPcGNvZGUgb3Bjb2RlKSIKICAgICBvdXRw
LnB1dHMgInsiCiAgICAgb3V0cC5wdXRzICJzd2l0Y2ggKG9wY29kZSkgeyIKICAgICBkaWRGaW5k
VGVybWluYWxzID0gZmFsc2UKQEAgLTk3Niw2ICs5NzYsMzIgQEAgd3JpdGVIKCJPcGNvZGVHZW5l
cmF0ZWQiKSB7CiAgICAgb3V0cC5wdXRzICJyZXR1cm4gZmFsc2U7IgogICAgIG91dHAucHV0cyAi
fSIKIAorICAgIG91dHAucHV0cyAiYm9vbCBJbnN0Ojppc1Rlcm1pbmFsKCkiCisgICAgb3V0cC5w
dXRzICJ7IgorICAgIG91dHAucHV0cyAic3dpdGNoIChvcGNvZGUpIHsiCisgICAgZm91bmRUcnVl
ID0gZmFsc2UKKyAgICAkb3Bjb2Rlcy52YWx1ZXMuZWFjaCB7CisgICAgICAgIHwgb3Bjb2RlIHwK
KyAgICAgICAgaWYgb3Bjb2RlLmF0dHJpYnV0ZXNbOnRlcm1pbmFsXQorICAgICAgICAgICAgb3V0
cC5wdXRzICJjYXNlICN7b3Bjb2RlLm5hbWV9OiIKKyAgICAgICAgICAgIGZvdW5kVHJ1ZSA9IHRy
dWUKKyAgICAgICAgZW5kCisgICAgfQorICAgIGlmIGZvdW5kVHJ1ZQorICAgICAgICBvdXRwLnB1
dHMgInJldHVybiB0cnVlOyIKKyAgICBlbmQKKyAgICAkb3Bjb2Rlcy52YWx1ZXMuZWFjaCB7Cisg
ICAgICAgIHwgb3Bjb2RlIHwKKyAgICAgICAgaWYgb3Bjb2RlLmN1c3RvbQorICAgICAgICAgICAg
b3V0cC5wdXRzICJjYXNlICN7b3Bjb2RlLm5hbWV9OiIKKyAgICAgICAgICAgIG91dHAucHV0cyAi
cmV0dXJuICN7b3Bjb2RlLm5hbWV9Q3VzdG9tOjppc1Rlcm1pbmFsKCp0aGlzKTsiCisgICAgICAg
IGVuZAorICAgIH0KKyAgICBvdXRwLnB1dHMgImRlZmF1bHQ6IgorICAgIG91dHAucHV0cyAicmV0
dXJuIGZhbHNlOyIKKyAgICBvdXRwLnB1dHMgIn0iCisgICAgb3V0cC5wdXRzICJ9IgorICAgIAog
ICAgIG91dHAucHV0cyAiYm9vbCBJbnN0OjpoYXNOb25BcmdOb25Db250cm9sRWZmZWN0cygpIgog
ICAgIG91dHAucHV0cyAieyIKICAgICBvdXRwLnB1dHMgInN3aXRjaCAob3Bjb2RlKSB7IgpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAkocmV2
aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1Rv
QjMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCwxMSBAQAogCiAjaW5jbHVkZSAiQWly
R2VuZXJhdGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJBbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVy
VXNhZ2UuaCIKKyNpbmNsdWRlICJCM0NoZWNrVmFsdWUuaCIKKyNpbmNsdWRlICJCM1BhdGNocG9p
bnRWYWx1ZS5oIgorI2luY2x1ZGUgIkIzU2xvdEJhc2VWYWx1ZS5oIgogI2luY2x1ZGUgIkIzU3Rh
Y2ttYXBHZW5lcmF0aW9uUGFyYW1zLmgiCisjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKICNp
bmNsdWRlICJDYWxsRnJhbWVTaHVmZmxlci5oIgogI2luY2x1ZGUgIkNvZGVCbG9ja1dpdGhKSVRU
eXBlLmgiCiAjaW5jbHVkZSAiREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaCIKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5jcHAJKHJldmlzaW9uIDIwMjgwOSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjgsOCArMjgsMTggQEAKIAogI2lmIEVOQUJMRShGVExfSklUKQogCisjaW5jbHVkZSAi
QjNBcmd1bWVudFJlZ1ZhbHVlLmgiCisjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrSW5saW5lcy5oIgor
I2luY2x1ZGUgIkIzQ0NhbGxWYWx1ZS5oIgorI2luY2x1ZGUgIkIzQ29uc3QzMlZhbHVlLmgiCisj
aW5jbHVkZSAiQjNDb25zdFB0clZhbHVlLmgiCiAjaW5jbHVkZSAiQjNNYXRoRXh0cmFzLmgiCisj
aW5jbHVkZSAiQjNNZW1vcnlWYWx1ZS5oIgorI2luY2x1ZGUgIkIzU2xvdEJhc2VWYWx1ZS5oIgog
I2luY2x1ZGUgIkIzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmgiCisjaW5jbHVkZSAiQjNTd2l0
Y2hWYWx1ZS5oIgorI2luY2x1ZGUgIkIzVXBzaWxvblZhbHVlLmgiCisjaW5jbHVkZSAiQjNWYWx1
ZUlubGluZXMuaCIKICNpbmNsdWRlICJTdXBlclNhbXBsZXIuaCIKIAogbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBGVEwgewpAQCAtNTc4LDEyICs1ODgsMTIgQEAgTFZhbHVlIE91dHB1dDo6c2Vs
ZWN0KExWYWx1ZSB2YWx1ZSwgTFZhbAogCiB2b2lkIE91dHB1dDo6anVtcChMQmFzaWNCbG9jayBk
ZXN0aW5hdGlvbikKIHsKLSAgICBtX2Jsb2NrLT5hcHBlbmROZXc8QjM6OkNvbnRyb2xWYWx1ZT4o
bV9wcm9jLCBCMzo6SnVtcCwgb3JpZ2luKCksIEIzOjpGcmVxdWVudGVkQmxvY2soZGVzdGluYXRp
b24pKTsKKyAgICBtX2Jsb2NrLT5hcHBlbmROZXdDb250cm9sVmFsdWUobV9wcm9jLCBCMzo6SnVt
cCwgb3JpZ2luKCksIEIzOjpGcmVxdWVudGVkQmxvY2soZGVzdGluYXRpb24pKTsKIH0KIAogdm9p
ZCBPdXRwdXQ6OmJyYW5jaChMVmFsdWUgY29uZGl0aW9uLCBMQmFzaWNCbG9jayB0YWtlbiwgV2Vp
Z2h0IHRha2VuV2VpZ2h0LCBMQmFzaWNCbG9jayBub3RUYWtlbiwgV2VpZ2h0IG5vdFRha2VuV2Vp
Z2h0KQogewotICAgIG1fYmxvY2stPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIG1fYmxv
Y2stPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgbV9wcm9jLCBCMzo6QnJhbmNoLCBv
cmlnaW4oKSwgY29uZGl0aW9uLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGFrZW4sIHRha2Vu
V2VpZ2h0LmZyZXF1ZW5jeUNsYXNzKCkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sobm90VGFr
ZW4sIG5vdFRha2VuV2VpZ2h0LmZyZXF1ZW5jeUNsYXNzKCkpKTsKQEAgLTYwMywxMiArNjEzLDEy
IEBAIHZvaWQgT3V0cHV0OjpjaGVjayhMVmFsdWUgY29uZGl0aW9uLCBXZWkKIAogdm9pZCBPdXRw
dXQ6OnJldChMVmFsdWUgdmFsdWUpCiB7Ci0gICAgbV9ibG9jay0+YXBwZW5kTmV3PEIzOjpDb250
cm9sVmFsdWU+KG1fcHJvYywgQjM6OlJldHVybiwgb3JpZ2luKCksIHZhbHVlKTsKKyAgICBtX2Js
b2NrLT5hcHBlbmROZXdDb250cm9sVmFsdWUobV9wcm9jLCBCMzo6UmV0dXJuLCBvcmlnaW4oKSwg
dmFsdWUpOwogfQogCiB2b2lkIE91dHB1dDo6dW5yZWFjaGFibGUoKQogewotICAgIG1fYmxvY2st
PmFwcGVuZE5ldzxCMzo6Q29udHJvbFZhbHVlPihtX3Byb2MsIEIzOjpPb3BzLCBvcmlnaW4oKSk7
CisgICAgbV9ibG9jay0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKG1fcHJvYywgQjM6Ok9vcHMsIG9y
aWdpbigpKTsKIH0KIAogQ2hlY2tWYWx1ZSogT3V0cHV0OjpzcGVjdWxhdGUoTFZhbHVlIHZhbHVl
KQpAQCAtNjM4LDcgKzY0OCw3IEBAIFBhdGNocG9pbnRWYWx1ZSogT3V0cHV0OjpwYXRjaHBvaW50
KExUeXAKIAogdm9pZCBPdXRwdXQ6OnRyYXAoKQogewotICAgIG1fYmxvY2stPmFwcGVuZE5ldzxC
Mzo6Q29udHJvbFZhbHVlPihtX3Byb2MsIEIzOjpPb3BzLCBvcmlnaW4oKSk7CisgICAgbV9ibG9j
ay0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKG1fcHJvYywgQjM6Ok9vcHMsIG9yaWdpbigpKTsKIH0K
IAogVmFsdWVGcm9tQmxvY2sgT3V0cHV0OjphbmNob3IoTFZhbHVlIHZhbHVlKQpAQCAtNzI5LDYg
KzczOSwxMSBAQCB2b2lkIE91dHB1dDo6ZGVjcmVtZW50U3VwZXJTYW1wbGVyQ291bnQoCiAgICAg
c3RvcmUzMihzdWIobG9hZDMyKGNvdW50ZXIpLCBpbnQzMk9uZSksIGNvdW50ZXIpOwogfQogCit2
b2lkIE91dHB1dDo6YWRkSW5jb21pbmdUb1BoaShMVmFsdWUgcGhpLCBWYWx1ZUZyb21CbG9jayB2
YWx1ZSkKK3sKKyAgICB2YWx1ZS52YWx1ZSgpLT5hczxCMzo6VXBzaWxvblZhbHVlPigpLT5zZXRQ
aGkocGhpKTsKK30KKwogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAogCiAjZW5kaWYgLy8gRU5B
QkxFKEZUTF9KSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmgJKHJl
dmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMwLDE5ICszMCwxMiBAQAogCiAjaWYgRU5BQkxFKEZUTF9KSVQp
CiAKLSNpbmNsdWRlICJCM0FyZ3VtZW50UmVnVmFsdWUuaCIKICNpbmNsdWRlICJCM0Jhc2ljQmxv
Y2tJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNDQ2FsbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNDb21w
aWxhdGlvbi5oIgotI2luY2x1ZGUgIkIzQ29uc3QzMlZhbHVlLmgiCi0jaW5jbHVkZSAiQjNDb25z
dFB0clZhbHVlLmgiCi0jaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKLSNpbmNsdWRlICJCM01l
bW9yeVZhbHVlLmgiCisjaW5jbHVkZSAiQjNGcmVxdWVudGVkQmxvY2suaCIKICNpbmNsdWRlICJC
M1Byb2NlZHVyZS5oIgotI2luY2x1ZGUgIkIzU2xvdEJhc2VWYWx1ZS5oIgogI2luY2x1ZGUgIkIz
U3dpdGNoVmFsdWUuaCIKLSNpbmNsdWRlICJCM1Vwc2lsb25WYWx1ZS5oIgotI2luY2x1ZGUgIkIz
VmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRlRMQWJicmV2aWF0ZWRUeXBlcy5oIgogI2luY2x1
ZGUgIkZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaCIKICNpbmNsdWRlICJGVExDb21tb25WYWx1
ZXMuaCIKQEAgLTY0LDcgKzU3LDEzIEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1uYW1lc3BhY2Ug
REZHIHsgc3RydWN0IE5vZGU7IH0KK25hbWVzcGFjZSBERkcgeworc3RydWN0IE5vZGU7Cit9IC8v
IG5hbWVzcGFjZSBERkcKKworbmFtZXNwYWNlIEIzIHsKK2NsYXNzIFNsb3RCYXNlVmFsdWU7Cit9
IC8vIG5hbWVzcGFjZSBCMwogCiBuYW1lc3BhY2UgRlRMIHsKIApAQCAtMTA2LDkgKzEwNSwxOSBA
QCBwdWJsaWM6CiAgICAgTFZhbHVlIGNvbnN0Qm9vbChib29sIHZhbHVlKTsKICAgICBMVmFsdWUg
Y29uc3RJbnQzMihpbnQzMl90IHZhbHVlKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgotICAg
IExWYWx1ZSBjb25zdEludFB0cihUKiB2YWx1ZSkgeyByZXR1cm4gbV9ibG9jay0+YXBwZW5kTmV3
PEIzOjpDb25zdFB0clZhbHVlPihtX3Byb2MsIG9yaWdpbigpLCB2YWx1ZSk7IH0KKyAgICBMVmFs
dWUgY29uc3RJbnRQdHIoVCogdmFsdWUpCisgICAgeworICAgICAgICBpZiAoc2l6ZW9mKHZvaWQq
KSA9PSA4KQorICAgICAgICAgICAgcmV0dXJuIGNvbnN0SW50NjQoYml0d2lzZV9jYXN0PGludHB0
cl90Pih2YWx1ZSkpOworICAgICAgICByZXR1cm4gY29uc3RJbnQzMihiaXR3aXNlX2Nhc3Q8aW50
cHRyX3Q+KHZhbHVlKSk7CisgICAgfQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci0gICAgTFZh
bHVlIGNvbnN0SW50UHRyKFQgdmFsdWUpIHsgcmV0dXJuIG1fYmxvY2stPmFwcGVuZE5ldzxCMzo6
Q29uc3RQdHJWYWx1ZT4obV9wcm9jLCBvcmlnaW4oKSwgdmFsdWUpOyB9CisgICAgTFZhbHVlIGNv
bnN0SW50UHRyKFQgdmFsdWUpCisgICAgeworICAgICAgICBpZiAoc2l6ZW9mKHZvaWQqKSA9PSA4
KQorICAgICAgICAgICAgcmV0dXJuIGNvbnN0SW50NjQoc3RhdGljX2Nhc3Q8aW50cHRyX3Q+KHZh
bHVlKSk7CisgICAgICAgIHJldHVybiBjb25zdEludDMyKHN0YXRpY19jYXN0PGludHB0cl90Pih2
YWx1ZSkpOworICAgIH0KICAgICBMVmFsdWUgY29uc3RJbnQ2NChpbnQ2NF90IHZhbHVlKTsKICAg
ICBMVmFsdWUgY29uc3REb3VibGUoZG91YmxlIHZhbHVlKTsKIApAQCAtMzU0LDggKzM2Myw3IEBA
IHB1YmxpYzoKICAgICBMVmFsdWUgY2FsbFdpdGhvdXRTaWRlRWZmZWN0cyhCMzo6VHlwZSB0eXBl
LCBGdW5jdGlvbiBmdW5jdGlvbiwgTFZhbHVlIGFyZzEsIEFyZ3MuLi4gYXJncykKICAgICB7CiAg
ICAgICAgIHJldHVybiBtX2Jsb2NrLT5hcHBlbmROZXc8QjM6OkNDYWxsVmFsdWU+KG1fcHJvYywg
dHlwZSwgb3JpZ2luKCksIEIzOjpFZmZlY3RzOjpub25lKCksCi0gICAgICAgICAgICBtX2Jsb2Nr
LT5hcHBlbmROZXc8QjM6OkNvbnN0UHRyVmFsdWU+KG1fcHJvYywgb3JpZ2luKCksIGJpdHdpc2Vf
Y2FzdDx2b2lkKj4oZnVuY3Rpb24pKSwKLSAgICAgICAgICAgIGFyZzEsIGFyZ3MuLi4pOworICAg
ICAgICAgICAgY29uc3RJbnRQdHIoYml0d2lzZV9jYXN0PHZvaWQqPihmdW5jdGlvbikpLCBhcmcx
LCBhcmdzLi4uKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdGlvblR5cGU+
CkBAIC0zNzgsOCArMzg2LDggQEAgcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZlY3Rv
clR5cGU+CiAgICAgdm9pZCBzd2l0Y2hJbnN0cnVjdGlvbihMVmFsdWUgdmFsdWUsIGNvbnN0IFZl
Y3RvclR5cGUmIGNhc2VzLCBMQmFzaWNCbG9jayBmYWxsVGhyb3VnaCwgV2VpZ2h0IGZhbGxUaHJv
dWdoV2VpZ2h0KQogICAgIHsKLSAgICAgICAgQjM6OlN3aXRjaFZhbHVlKiBzd2l0Y2hWYWx1ZSA9
IG1fYmxvY2stPmFwcGVuZE5ldzxCMzo6U3dpdGNoVmFsdWU+KAotICAgICAgICAgICAgbV9wcm9j
LCBvcmlnaW4oKSwgdmFsdWUsIEIzOjpGcmVxdWVudGVkQmxvY2soZmFsbFRocm91Z2gpKTsKKyAg
ICAgICAgQjM6OlN3aXRjaFZhbHVlKiBzd2l0Y2hWYWx1ZSA9IG1fYmxvY2stPmFwcGVuZE5ldzxC
Mzo6U3dpdGNoVmFsdWU+KG1fcHJvYywgb3JpZ2luKCksIHZhbHVlKTsKKyAgICAgICAgc3dpdGNo
VmFsdWUtPnNldEZhbGxUaHJvdWdoKEIzOjpGcmVxdWVudGVkQmxvY2soZmFsbFRocm91Z2gpKTsK
ICAgICAgICAgZm9yIChjb25zdCBTd2l0Y2hDYXNlJiBzd2l0Y2hDYXNlIDogY2FzZXMpIHsKICAg
ICAgICAgICAgIGludDY0X3QgdmFsdWUgPSBzd2l0Y2hDYXNlLnZhbHVlKCktPmFzSW50KCk7CiAg
ICAgICAgICAgICBCMzo6RnJlcXVlbnRlZEJsb2NrIHRhcmdldChzd2l0Y2hDYXNlLnRhcmdldCgp
LCBzd2l0Y2hDYXNlLndlaWdodCgpLmZyZXF1ZW5jeUNsYXNzKCkpOwpAQCAtNDM5LDExICs0NDcs
NiBAQCBpbmxpbmUgTFZhbHVlIE91dHB1dDo6cGhpKExUeXBlIHR5cGUsIGNvCiAgICAgcmV0dXJu
IHBoaU5vZGU7CiB9CiAKLWlubGluZSB2b2lkIE91dHB1dDo6YWRkSW5jb21pbmdUb1BoaShMVmFs
dWUgcGhpLCBWYWx1ZUZyb21CbG9jayB2YWx1ZSkKLXsKLSAgICB2YWx1ZS52YWx1ZSgpLT5hczxC
Mzo6VXBzaWxvblZhbHVlPigpLT5zZXRQaGkocGhpKTsKLX0KLQogdGVtcGxhdGU8dHlwZW5hbWUu
Li4gUGFyYW1zPgogaW5saW5lIHZvaWQgT3V0cHV0OjphZGRJbmNvbWluZ1RvUGhpKExWYWx1ZSBw
aGksIFZhbHVlRnJvbUJsb2NrIHZhbHVlLCBQYXJhbXMuLi4gdGhlUmVzdCkKIHsKSW5kZXg6IFdl
YnNpdGVzL3dlYmtpdC5vcmcvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3dlYmtp
dC5vcmcvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMDI4MDkpCisrKyBXZWJzaXRlcy93ZWJraXQub3Jn
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE2LTA1LTI5ICBG
aWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IHRhYmxl
LWJhc2VkIHN3aXRjaGVzIGluIEIzL0FpcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTUxMTQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisgICAgICAgIAorICAgICAgICBVcGRhdGUgZG9jdW1lbnRhdGlvbiB0byByZWZsZWN0
IFBhdGNocG9pbnQncyBuZXcgcG93ZXJzLgorCisgICAgICAgICogZG9jcy9iMy9pbnRlcm1lZGlh
dGUtcmVwcmVzZW50YXRpb24uaHRtbDoKKwogMjAxNi0wNy0wMSAgSm9uIERhdmlzICA8am9uZEBh
cHBsZS5jb20+CiAKICAgICAgICAgQWRkZWQgYSBjb2xvcmZ1bCBuZXcgaW1hZ2UgYW5kIGZpeGVk
IHRoZSBPcGVuIEdyYXBoIGF0dHJpYnV0ZS4KSW5kZXg6IFdlYnNpdGVzL3dlYmtpdC5vcmcvZG9j
cy9iMy9pbnRlcm1lZGlhdGUtcmVwcmVzZW50YXRpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJz
aXRlcy93ZWJraXQub3JnL2RvY3MvYjMvaW50ZXJtZWRpYXRlLXJlcHJlc2VudGF0aW9uLmh0bWwJ
KHJldmlzaW9uIDIwMjgwOSkKKysrIFdlYnNpdGVzL3dlYmtpdC5vcmcvZG9jcy9iMy9pbnRlcm1l
ZGlhdGUtcmVwcmVzZW50YXRpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNDMsNyArNDMsNyBA
QAogICAgIDxwPlRoZSBhY3Qgb2YgY29tcGlsaW5nIHRoZSBQcm9jZWR1cmUgY2hhbmdlcyBpdCBp
bi1wbGFjZSwgbWFraW5nIGl0IHVuc3VpdGFibGUgZm9yCiAgICAgICBjb21waWxpbmcgYWdhaW4u
ICBBbHdheXMgY3JlYXRlIGEgbmV3IFByb2NlZHVyZSBldmVyeSB0aW1lIHlvdSB3YW50IHRvIGNv
bXBpbGUKICAgICAgIHNvbWV0aGluZy48L3A+Ci0KKyAgICAKICAgICA8aDI+VHlwZXM8L2gyPgog
CiAgICAgPHA+QjMgaGFzIGEgdHJpdmlhbCB0eXBlIHN5c3RlbSB3aXRoIG9ubHkgZml2ZSB0eXBl
czo8L3A+CkBAIC0xMzAsOCArMTMwLDE1IEBACiAgICAgPGgyPkNvbnRyb2wgZmxvdzwvaDI+CiAK
ICAgICA8cD5CMyByZXByZXNlbnRzIGNvbnRyb2wgZmxvdyB1c2luZyBiYXNpYyBibG9ja3MuICBF
YWNoIGJhc2ljIGJsb2NrIG1heSBoYXZlIHplcm8gb3IgbW9yZQotICAgICAgcHJlZGVjZXNzb3Jz
LiAgRWFjaCBiYXNpYyBibG9jayBtYXkgaGF2ZSB6ZXJvIG9yIG1vcmUgc3VjY2Vzc29ycy4gIFRo
ZSBzdWNjZXNzb3JzIGFyZQotICAgICAgY29udHJvbGxlZCBieSB0aGUgYmFzaWMgYmxvY2sncyBs
YXN0IFZhbHVlLCB3aGljaCBtdXN0IGJlIGEgQ29udHJvbFZhbHVlIGluc3RhbmNlLjwvcD4KKyAg
ICAgIHByZWRlY2Vzc29ycy4gIEVhY2ggYmFzaWMgYmxvY2sgbWF5IGhhdmUgemVybyBvciBtb3Jl
IHN1Y2Nlc3NvcnMuICBUaGUgbWVhbmluZyBvZiB0aGUKKyAgICAgIHN1Y2Nlc3NvcnMgaXMgZGV0
ZXJtaW5lZCBieSB0aGUgYmFzaWMgYmxvY2sncyBsYXN0IFZhbHVlLCB3aGljaCBtdXN0IGJlIGEg
dGVybWluYWwuIEEKKyAgICAgIHZhbHVlIGlzIHRlcm1pbmFsIGlmOjwvcD4KKyAgICAKKyAgICA8
cHJlPjxjb2RlPnZhbHVlLSZndDtlZmZlY3RzKCkudGVybWluYWw8L2NvZGU+PC9wcmU+CisgICAg
CisgICAgPHA+U29tZSBvcGNvZGVzIGFyZSBkZWZpbml0ZWx5IHRlcm1pbmFsLCBsaWtlIEp1bXAs
IEJyYW5jaCwgT29wcywgUmV0dXJuLCBhbmQgU3dpdGNoLiBCdXQgYQorICAgICAgdmFsdWUgd2l0
aCB0aGUgUGF0Y2hwb2ludCBvcGNvZGUgbWF5IG9yIG1heSBub3QgYmUgdGVybWluYWwuIEluIGdl
bmVyYWwgaXQncyBuZWNlc3NhcnkgdG8KKyAgICAgIGNoZWNrIHRoZSA8Y29kZT50ZXJtaW5hbDwv
Y29kZT4gYml0IGFzIHNob3duIGFib3ZlLjwvcD4KIAogICAgIDxwPkVhY2ggYmFzaWMgYmxvY2sg
Y29udGFpbnMgYSBWZWN0b3ImbHQ7VmFsdWUqJmd0OyBhcyB0aGUgY29udGVudHMgb2YgdGhlIGJs
b2NrLiBDb250cm9sCiAgICAgICBmbG93IGluc2lkZSB0aGUgYmxvY2sgaXMgaW1wbGljaXQgYmFz
ZWQgb24gdGhlIG9yZGVyIG9mIFZhbHVlcyBpbiB0aGUgdmVjdG9yLjwvcD4KQEAgLTQ1OCw2ICs0
NjUsMTcgQEAgcGF0Y2hwb2ludC0+c2V0R2VuZXJhdG9yKAogICAgICAgICAgIHBhdGNocG9pbnQg
d2lsbCB0YWtlIHNvbWUgZXhpdCBzdGF0ZSBhcyBwYXJ0IG9mIGl0cyBhcmd1bWVudHMsIGFuZCBp
dCB3aWxsIG1hbmlwdWxhdGUKICAgICAgICAgICB0aGUgY2FsbCBmcmFtZSBpbiBwbGFjZSB0byBt
YWtlIGl0IGxvb2sgbGlrZSBhbm90aGVyIGV4ZWN1dGlvbiBlbmdpbmUncyBjYWxsIGZyYW1lLgog
ICAgICAgICAgIFRoaXMgaXMgY2FsbGVkIE9TUiwgYW5kIEphdmFTY3JpcHRDb3JlIGRvZXMgaXQg
YSBsb3QuPC9wPgorICAgICAgICAKKyAgICAgICAgPHA+QSBwYXRjaHBvaW50IGNhbiBiZSB1c2Vk
IGFzIGEgdGVybWluYWwuIFNpbXBseSBzZXQgdGhlIDxjb2RlPnRlcm1pbmFsPC9jb2RlPiBiaXQ6
PC9wPgorICAgICAgICAKKyAgICAgICAgPHByZT48Y29kZT5wYXRjaHBvaW50LSZndDtlZmZlY3Rz
LnRlcm1pbmFsID0gdHJ1ZTs8L2NvZGU+PC9wcmU+CisgICAgICAgIAorICAgICAgICA8cD5UaGUg
Z2VuZXJhdG9yIGNhbiBkZXRlcm1pbmUgd2hlcmUgdG8gYnJhbmNoIGJ5IHVzaW5nIHRoZSBTdGFj
a21hcEdlbmVyYXRpb25QYXJhbXMgdG8KKyAgICAgICAgICBnZXQgdGhlIHNldCBvZiBsYWJlbHMg
Zm9yIGFsbCBzdWNjZXNzb3JzLiBZb3UncmUgZ3VhcmFudGVlZCB0aGF0IHRoZSBudW1iZXIgb2YK
KyAgICAgICAgICBzdWNjZXNzb3JzIG9mIHRoZSBwYXRjaHBvaW50J3MgYmFzaWMgYmxvY2sgd2ls
bCBiZSB0aGUgc2FtZSBhcyB3aGVuIHlvdSBjcmVhdGVkIGl0LgorICAgICAgICAgIEhvd2V2ZXIs
IGxpa2UgYW55IHZhbHVlLCBhIHBhdGNocG9pbnQgbWF5IGJlIGNsb25lZC4gVGhpcyBtZWFucywg
Zm9yIGV4YW1wbGUsIHRoYXQgaWYKKyAgICAgICAgICB5b3UgdXNlIHRoaXMgdG8gaW1wbGVtZW50
IGEgdGFibGUganVtcCB0aGVuIHRoZSBqdW1wIHRhYmxlIG11c3QgYmUgY3JlYXRlZCBpbnNpZGUg
dGhlCisgICAgICAgICAgZ2VuZXJhdG9yLCBzbyB0aGF0IHlvdSBnZXQgb25lIGp1bXAgdGFibGUg
cGVyIGNsb25lLjwvcD4KICAKICAgICAgICAgPHA+TXVzdCB1c2UgdGhlIFBhdGNocG9pbnRWYWx1
ZSBjbGFzcyB3aXRoIHRoZSBQYXRjaHBvaW50IG9wY29kZS48L3A+CiAgICAgICA8L2RkPgpJbmRl
eDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkocmV2aXNpb24gMjAyODA5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTYtMDUtMjkgIEZpbGlwIFBpemxvICA8ZnBpemxv
QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgdGFibGUtYmFzZWQgc3dpdGNoZXMgaW4g
QjMvQWlyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTExNDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGpzL3JlZ3Jlc3MvYmlnc3dpdGNoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMv
cmVncmVzcy9iaWdzd2l0Y2guaHRtbDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3Jp
cHQtdGVzdHMvYmlnc3dpdGNoLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisKIDIwMTYtMDct
MDQgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCwgc2tpcCBtaXNjLWJ1Z3MtODQ3Mzg5LWpwZWcyMDAwLmpzIGluIGpzYyBzdHJlc3Mg
dGVzdHMKSW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAorSlNSZWdyZXNzL2Jp
Z3N3aXRjaAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBubyBleGNlcHRp
b24gdGhyb3duCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2guaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC5odG1sCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2guaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBI
VE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNj
cmlwdC10ZXN0cy9iaWdzd2l0Y2guanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvYmlnc3dpdGNoLmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2JpZ3N3aXRjaC5q
cwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2Jp
Z3N3aXRjaC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIxMSBAQAorZnVuY3Rpb24gZm9v
KG8pIHsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7
ICsraSkgeworICAgICAgICB2YXIgdmFsdWUgPSBpICYgNjM7CisgICAgICAgIHN3aXRjaCAodmFs
dWUpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXN1bHQgKz0gby5i
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLmM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAg
ICAgcmVzdWx0ICs9IG8uZDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ6Cisg
ICAgICAgICAgICByZXN1bHQgKz0gby5lOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgNToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmY7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSA2OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZzsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIDc6CisgICAgICAgICAgICByZXN1bHQgKz0gby5oOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA5OgorICAgICAgICAgICAgcmVzdWx0
ICs9IG8uajsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDEwOgorICAgICAgICAg
ICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDExOgor
ICAgICAgICAgICAgcmVzdWx0ICs9IG8uYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIDEyOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYjsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIDEzOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYzsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIDE0OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZDsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE1OgorICAgICAgICAgICAgcmVzdWx0ICs9
IG8uZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE2OgorICAgICAgICAgICAg
cmVzdWx0ICs9IG8uZjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE3OgorICAg
ICAgICAgICAgcmVzdWx0ICs9IG8uZzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IDE4OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaDsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIDE5OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIDIwOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uajsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDIxOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8u
azsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDIyOgorICAgICAgICAgICAgcmVz
dWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDIzOgorICAgICAg
ICAgICAgcmVzdWx0ICs9IG8uYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI0
OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIDI1OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYzsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIDI2OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZDsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIDI3OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZTsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI4OgorICAgICAgICAgICAgcmVzdWx0
ICs9IG8uZjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI5OgorICAgICAgICAg
ICAgcmVzdWx0ICs9IG8uZzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDMwOgor
ICAgICAgICAgICAgcmVzdWx0ICs9IG8uaDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIDMxOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIDMyOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uajsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIDMzOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM0OgorICAgICAgICAgICAgcmVzdWx0ICs9
IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM1OgorICAgICAgICAgICAg
cmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM2OgorICAg
ICAgICAgICAgcmVzdWx0ICs9IG8uYTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IDM3OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYjsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIDM4OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYzsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIDM5OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZDsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQwOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8u
ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQxOgorICAgICAgICAgICAgcmVz
dWx0ICs9IG8uZjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQyOgorICAgICAg
ICAgICAgcmVzdWx0ICs9IG8uZzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQz
OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIDQ0OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIDQ1OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uajsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ2OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ3OgorICAgICAgICAgICAgcmVzdWx0
ICs9IG8uaTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ4OgorICAgICAgICAg
ICAgcmVzdWx0ICs9IG8uajsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDQ5Ogor
ICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIDUwOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIDUxOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIDUyOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYTsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDUzOgorICAgICAgICAgICAgcmVzdWx0ICs9
IG8uYjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDU0OgorICAgICAgICAgICAg
cmVzdWx0ICs9IG8uYzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDU1OgorICAg
ICAgICAgICAgcmVzdWx0ICs9IG8uZDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IDU2OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIDU3OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZjsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIDU4OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uZzsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDU5OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8u
aDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDYwOgorICAgICAgICAgICAgcmVz
dWx0ICs9IG8uaTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDYxOgorICAgICAg
ICAgICAgcmVzdWx0ICs9IG8uajsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDYy
OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uazsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBkZWZhdWx0OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uejsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKKyhmdW5jdGlvbigp
IHsKKyAgICB2YXIgbyA9IHthOjEsIGI6MiwgYzozLCBkOjQsIGU6NSwgZjo2LCBnOjcsIGg6OCwg
aTo5LCBqOjEwLCBrOjExLCB6OjEwMH07CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKQorICAgICAgICByZXN1bHQgKz0gZm9vKG8pOworICAg
IGlmIChyZXN1bHQgIT0gNzk2NjAwMDApCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3Vs
dDogIiArIHJlc3VsdDsKK30pKCk7CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283207</attachid>
            <date>2016-07-08 15:38:43 -0700</date>
            <delta_ts>2016-07-08 16:36:15 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>454184</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAyOTgxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc4MSBA
QAorMjAxNi0wNy0wOCAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IEltcGxlbWVudCB0YWJsZS1iYXNlZCBzd2l0Y2hlcyBpbiBCMy9BaXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTE0MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIElmIGEgc3dpdGNoIHN0YXRlbWVudCBn
ZXRzIGxhcmdlLCBpdCdzIGJldHRlciB0byBleHByZXNzIGl0IGFzIGFuIGluZGlyZWN0IGp1bXAg
cmF0aGVyIHRoYW4KKyAgICAgICAgdXNpbmcgYSBiaW5hcnkgc3dpdGNoIChkaXZpZGUtYW5kLWNv
bnF1ZXIgdHJlZSBvZiBjb21wYXJpc29ucyBsZWFkaW5nIHRvIE8obG9nIG4pIGJyYW5jaGVzIHRv
CisgICAgICAgIGdldCB0byB0aGUgc3dpdGNoIGNhc2UpLiBXaGVuIGRlYWxpbmcgd2l0aCBpbnRl
Z2VyIHN3aXRjaGVzLCBGVEwgd2lsbCBhbHJlYWR5IHVzZSB0aGUgQjMKKyAgICAgICAgU3dpdGNo
IGFuZCBleHBlY3QgdGhpcyB0byBnZXQgbG93ZXJlZCBhcyBlZmZpY2llbnRseSBhcyBwb3NzaWJs
ZTsgaXQncyBhIGJ1ZyB0aGF0IEIzIHdpbGwKKyAgICAgICAgYWx3YXlzIHVzZSBhIGJpbmFyeSBz
d2l0Y2ggcmF0aGVyIHRoYW4gaW5kaXJlY3QganVtcHMuIFdoZW4gZGVhbGluZyB3aXRoIHN3aXRj
aGVzIG92ZXIgc29tZQorICAgICAgICBtb3JlIHNvcGhpc3RpY2F0ZWQgdHlwZXMsIHdlJ2Qgd2Fu
dCBGVEwgdG8gYnVpbGQgYW4gaW5kaXJlY3QganVtcCB0YWJsZSBpdHNlbGYgYW5kIHVzZQorICAg
ICAgICBzb21ldGhpbmcgbGlrZSBhIGhhc2h0YWJsZSB0byBmZWVkIGl0LiBJbiB0aGF0IGNhc2Us
IHRoZXJlIHdpbGwgYmUgbm8gQjMgU3dpdGNoOyB3ZSdsbCB3YW50CisgICAgICAgIHNvbWUgd2F5
IGZvciB0aGUgRlRMIHRvIGRpcmVjdGx5IGV4cHJlc3MgYW4gaW5kaXJlY3Rpb24ganVtcCB3aGVu
IGVtaXR0aW5nIEIzLgorICAgICAgICAKKyAgICAgICAgVGhpcyBpbXBsaWVzIHRoYXQgd2Ugd2Fu
dCBCMyB0byBoYXZlIHRoZSBhYmlsaXR5IHRvIGxvd2VyIFN3aXRjaCB0byBpbmRpcmVjdCBqdW1w
cyBhbmQgdG8KKyAgICAgICAgZXhwb3NlIHRob3NlIGluZGlyZWN0IGp1bXBzIGluIElSIHNvIHRo
YXQgdGhlIEZUTCBjb3VsZCBkbyBpdHMgb3duIGluZGlyZWN0IGp1bXBzIGZvcgorICAgICAgICBz
d2l0Y2hlcyBvdmVyIG1vcmUgY29tcGxpY2F0ZWQgdGhpbmdzIGxpa2Ugc3RyaW5ncy4gQnV0IGlu
ZGlyZWN0IGp1bXBzIGFyZSB0b3VnaCB0byBleHByZXNzCisgICAgICAgIGluIElSLiBGb3IgZXhh
bXBsZSwgdGhlIExMVk0gYXBwcm9hY2ggKCJpbmRpcmVjdGJyIiBhbmQgImJsb2NrYWRkcmVzcyIp
IG1lYW5zIHRoYXQgc29tZQorICAgICAgICBjb250cm9sIGZsb3cgZWRnZXMgY2Fubm90IGJlIHNw
bGl0LiBJbmRpcmVjdGJyIHRha2VzIGFuIGFkZHJlc3MgYXMgaW5wdXQgYW5kIGp1bXBzIHRvIGl0
LCBhbmQKKyAgICAgICAgYmxvY2thZGRyZXNzIGxldHMgeW91IGJ1aWxkIGp1bXAgdGFibGVzIG91
dCBvZiBiYXNpYyBibG9jayBhZGRyZXNzZXMuIFRoaXMgbWVhbnMgdGhhdCB0aGUKKyAgICAgICAg
Y29tcGlsZXIgY2FuIG5ldmVyIGNoYW5nZSBhbnkgc3VjY2Vzc29yIG9mIGFuIGluZGlyZWN0YnIs
IHNpbmNlIHRoZSBjbGllbnQgd2lsbCBoYXZlIGFscmVhZHkKKyAgICAgICAgYXJyYW5nZWQgZm9y
IHRoYXQgaW5kaXJlY3RiciB0byBqdW1wIHRvIGV4YWN0bHkgdGhvc2Ugc3VjY2Vzc29ycy4gV2Ug
ZG9uJ3Qgd2FudCBzdWNoCisgICAgICAgIHJlc3RyaWN0aW9ucyBpbiBCMywgc2luY2UgQjMgcmVs
aWVzIG9uIGJlaW5nIGFibGUgdG8gYnJlYWsgY3JpdGljYWwgZWRnZXMgZm9yIFNTQSBjb252ZXJz
aW9uLgorICAgICAgICBBbHNvLCBpbmRpcmVjdGJyIGlzIG5vdCBjbG9uZWFibGUsIHdoaWNoIHdv
dWxkIGJyZWFrIGFueSBob3BlIG9mIGRvaW5nIHNwZWNpYWxpemF0aW9uLWJhc2VkCisgICAgICAg
IHRyYW5zZm9ybWF0aW9ucyBsaWtlIHdlIHdhbnQgdG8gZG8gZm9yIG11bHRpcGxlIGVudHJ5cG9p
bnRzIChidWcgMTU5MzkxKS4gVGhlIGdvYWwgb2YgdGhpcworICAgICAgICBjaGFuZ2UgaXMgdG8g
bGV0IGNsaWVudHMgZG8gaW5kaXJlY3QganVtcHMgd2l0aG91dCBwbGFjaW5nIGFueSByZXN0cmlj
dGlvbnMgb24gSVIuCisgICAgICAgIAorICAgICAgICBUaGUgdHJpY2sgaXMgdG8gYWxsb3cgUGF0
Y2hwb2ludHMgdG8gYmUgdXNlZCBhcyBibG9jayB0ZXJtaW5hbHMuIFBhdGNocG9pbnRzIGFscmVh
ZHkgYWxsb3cKKyAgICAgICAgY2xpZW50cyBvZiBCMyB0byBlbWl0IHdoYXRldmVyIGNvZGUgdGhl
eSBsaWtlLiBQYXRjaHBvaW50cyBhcmUgZnJpZW5kbHkgdG8gQjMncyBvdGhlcgorICAgICAgICB0
cmFuc2Zvcm1hdGlvbnMgYmVjYXVzZSB0aGUgY2xpZW50IG9mIHRoZSBwYXRjaHBvaW50IGhhcyB0
byBwbGF5IGFsb25nIHdpdGggd2hhdGV2ZXIKKyAgICAgICAgZGVjaXNpb25zIEIzIGhhZCBtYWRl
IGFyb3VuZCB0aGUgcGF0Y2hwb2ludDogd2hhdCByZWdpc3RlcnMgZ290IHVzZWQsIHdoYXQgdGhl
IGNvbnRyb2wgZmxvdworICAgICAgICBsb29rcyBsaWtlLCBldGMuIFBhdGNocG9pbnRzIGNhbiBl
dmVuIGJlIGNsb25lZCBieSBCMywgYW5kIHRoZSBjbGllbnQgaGFzIHRvIGFjY29tbW9kYXRlIHRo
aXMKKyAgICAgICAgaW4gdGhlaXIgcGF0Y2hwb2ludCBnZW5lcmF0b3IuIEl0IHR1cm5zIG91dCB0
aGF0IHVzaW5nIFBhdGNocG9pbnRzIGFzIHRlcm1pbmFscyBpcyBxdWl0ZQorICAgICAgICBuYXR1
cmFsLiBXZSBhY2NvbXBsaXNoIHRoaXMgYnkgbW92aW5nIHRoZSBzdWNjZXNzb3IgZWRnZXMgb3V0
IG9mIENvbnRyb2xWYWx1ZSBhbmQgaW50bworICAgICAgICBCYXNpY0Jsb2NrLCBhbmQgcmVtb3Zp
bmcgQ29udHJvbFZhbHVlIGVudGlyZWx5LiBUaGlzIHdheSwgYW55IFZhbHVlIHN1YmNsYXNzIGNh
biBiZSBhCisgICAgICAgIHRlcm1pbmFsLiBJdCB3YXMgYWxyZWFkeSB0cnVlIHRoYXQgYSBWYWx1
ZSBpcyBhIHRlcm1pbmFsIGlmIHZhbHVlLT5lZmZlY3RzKCkudGVybWluYWwsIHdoaWNoCisgICAg
ICAgIHdvcmtzIGdyZWF0IHdpdGggUGF0Y2hwb2ludHMgc2luY2UgdGhleSBjb250cm9sIHRoZWly
IGVmZmVjdHMgdmlhIFBhdGNocG9pbnRWYWx1ZTo6ZWZmZWN0cy4KKyAgICAgICAgWW91IGNhbiBt
YWtlIHlvdXIgUGF0Y2hwb2ludCBpbnRvIGEgdGVybWluYWwgYnkgcGxhY2luZyBpdCBhdCB0aGUg
ZW5kIG9mIGEgYmxvY2sgYW5kIGRvaW5nOgorICAgICAgICAKKyAgICAgICAgcGF0Y2hwb2ludC0+
ZWZmZWN0cy50ZXJtaW5hbCA9IHRydWU7CisgICAgICAgIAorICAgICAgICBBIFBhdGNocG9pbnRz
IGluIHRlcm1pbmFsIHBvc2l0aW9uIGdldHMgYWNjZXNzIHRvIGFkZGl0aW9uYWwgQVBJIGluIFN0
YWNrbWFwR2VuZXJhdGlvblBhcmFtcy4KKyAgICAgICAgVGhlIGdlbmVyYXRvciBjYW4gZ2V0IGEg
Qm94PExhYmVsPiBmb3IgZWFjaCBzdWNjZXNzb3IgdG8gaXRzIG93bmluZyBibG9jay4gRm9yIGV4
YW1wbGUsIHRvCisgICAgICAgIGltcGxlbWVudCBhIGp1bXAtdGFibGUtYmFzZWQgc3dpdGNoLCB5
b3Ugd291bGQgbWFrZSB5b3VyIHBhdGNocG9pbnQgdGFrZSB0aGUgdGFibGUgaW5kZXggYXMKKyAg
ICAgICAgaXRzIHNvbGUgaW5wdXQuIEluc2lkZSB0aGUgZ2VuZXJhdG9yLCB5b3UgYWxsb2NhdGUg
dGhlIGp1bXAgdGFibGUgYW5kIGVtaXQgYSBCYXNlSW5kZXgganVtcAorICAgICAgICB0aGF0IHVz
ZXMgdGhlIGp1bXAgdGFibGUgcG9pbnRlciAod2hpY2ggd2lsbCBiZSBhIGNvbnN0YW50IGtub3du
IHRvIHRoZSBnZW5lcmF0b3Igc2luY2UgaXQKKyAgICAgICAganVzdCBhbGxvY2F0ZWQgaXQpIGFz
IHRoZSBiYXNlIGFuZCB0aGUgcGF0Y2hwb2ludCBpbnB1dCBhcyBhbiBpbmRleC4gVGhlIGp1bXAg
dGFibGUgY2FuIGJlCisgICAgICAgIHBvcHVsYXRlZCBieSBNYWNyb0Fzc2VtYmxlckNvZGVQdHIn
cyBjb21wdXRlZCBieSBpbnN0YWxsaW5nIGEgbGluayB0YXNrIHRvIHJlc29sdmUgdGhlIGxhYmVs
cworICAgICAgICB0byBjb25jcmV0ZSBsb2NhdGlvbnMuIFRoaXMgY2hhbmdlIG1ha2VzIExvd2Vy
TWFjcm9zIGRvIHN1Y2ggYSBsb3dlcmluZyBmb3IgU3dpdGNoZXMgdGhhdCBjYW4KKyAgICAgICAg
YmVuZWZpdCBmcm9tIGp1bXAgdGFibGVzLiBUaGlzIGhhcHBlbnMgcmVjdXJzaXZlbHk6IGlmIHRo
ZSBvcmlnaW5hbCBTd2l0Y2ggaXMgdG9vIHNwYXJzZSwgd2UKKyAgICAgICAgd2lsbCBkaXZpZGUt
YW5kLWNvbnF1ZXIgYXMgYmVmb3JlLiBJZiBhdCBhbnkgcmVjdXJzaW9uIHN0ZXAgd2UgZmluZCB0
aGF0IHRoZSByZW1haW5pbmcgY2FzZXMKKyAgICAgICAgYXJlIGRlbnNlIGFuZCBsYXJnZSBlbm91
Z2ggdG8gcHJvZml0IGZyb20gYSBqdW1wIHRhYmxlLCB0aGVuIHRob3NlIGNhc2VzIHdpbGwgYmUg
bG93ZXJlZCB0byBhCisgICAgICAgIFBhdGNocG9pbnQgdGhhdCBkb2VzIHRoZSB0YWJsZSBqdW1w
LiBUaGlzIGlzIGEgZnVuIHdheSB0byBkbyBzdGVwd2lzZSBsb3dlcmluZzogTG93ZXJNYWNyb3MK
KyAgICAgICAgaXMgZXNzZW50aWFsbHkgcHJlLWxvd2VyaW5nIHRoZSBTd2l0Y2ggZGlyZWN0bHkg
dG8gbWFjaGluZSBjb2RlLCBhbmQgd3JhcHBpbmcgdGhhdCBtYWNoaW5lCisgICAgICAgIGNvZGUg
aW4gYSBQYXRjaHBvaW50IHNvIHRoYXQgdGhlIHJlc3Qgb2YgdGhlIGNvbXBpbGVyIGRvZXNuJ3Qg
aGF2ZSB0byBrbm93IGFueXRoaW5nIGFib3V0CisgICAgICAgIHdoYXQgaGFwcGVuZWQuIEkgc3Vz
cGVjdCB0aGF0IGluIHRoZSBmdXR1cmUgd2Ugd2lsbCB3YW50IHRvIGRvIG90aGVyIHByZS1sb3dl
cmluZ3MgdGhpcyB3YXksCisgICAgICAgIHdoZW5ldmVyIHRoZSBCMyBJUiBwaGFzZXMgaGF2ZSBz
b21lIHNwZWNpYWwga25vd2xlZGdlIGFib3V0IHdoYXQgbWFjaGluZSBjb2RlIHNob3VsZCBiZQor
ICAgICAgICBlbWl0dGVkIGFuZCBpdCB3b3VsZCBiZSBhbm5veWluZyB0byBkcmFnIHRoYXQga25v
d2xlZGdlIHRocm91Z2ggdGhlIHJlc3Qgb2YgdGhlIGNvbXBpbGVyLgorICAgICAgICAKKyAgICAg
ICAgSSB0aGluayB0aGF0IHdlIHdpbGwgYWxzbyBlbmQgdXAgdXNpbmcgdGhpcyBmYWNpbGl0eSB0
byBleHRlbmQgb3VyIHVzZSBvZiBzbmlwcGV0cy4gV2UKKyAgICAgICAgYWxyZWFkeSB1c2Ugc2hh
cmVkIHNuaXBwZXQgZ2VuZXJhdG9ycyBmb3IgdGhlIGdlbmVyaWMgZm9ybXMgb2YgYXJpdGhtZXRp
Yy4gV2Ugd2lsbCBwcm9iYWJseQorICAgICAgICBhbHNvIHdhbnQgdG8gZG8gdGhpcyBmb3IgZ2Vu
ZXJpYyBmb3JtcyBvZiBicmFuY2hlcy4gVGhpcyB3b3VsZG4ndCBoYXZlIGJlZW4gcG9zc2libGUg
cHJpb3IgdG8KKyAgICAgICAgdGhpcyBjaGFuZ2UsIHNpbmNlIHRoZXJlIHdvdWxkIGhhdmUgYmVl
biBubyB3YXkgdG8gZW1pdCBhIGNvbnRyb2wgc25pcHBldCBpbiBGVEwuIE5vdyB3ZSBjYW4KKyAg
ICAgICAgZW1pdCBjb250cm9sIHNuaXBwZXRzIHVzaW5nIHRlcm1pbmFsIHBhdGNocG9pbnRzLgor
CisgICAgICAgIFRoaXMgaXMgYSB+MzAlIHNwZWVkLXVwIG9uIG1pY3JvYmVuY2htYXJrcyB0aGF0
IGhhdmUgYmlnIHN3aXRjaCBzdGF0ZW1lbnRzICh+NjAgY2FzZXMpLiBJdCdzCisgICAgICAgIG5v
dCBhIHNwZWVkLXVwIG9uIG1haW5zdHJlYW0gYmVuY2htYXJrcy4KKyAgICAgICAgCisgICAgICAg
IFRoaXMgYWxzbyBhZGRzIGEgbmV3IHRlc3QgdG8gdGVzdGIzIGZvciB0ZXJtaW5hbCBQYXRjaHBv
aW50cywgR2V0LCBhbmQgU2V0LiBUaGUgRlRMIGRvZXMgbm90CisgICAgICAgIGN1cnJlbnRseSB1
c2UgdGVybWluYWwgUGF0Y2hwb2ludHMgZGlyZWN0bHksIGJ1dCB3ZSB3YW50IHRoaXMgdG8gYmUg
cG9zc2libGUuIEl0IGFsc28gZG9lc24ndAorICAgICAgICB1c2UgR2V0L1NldCBkaXJlY3RseSBl
dmVuIHRob3VnaCB3ZSB3YW50IHRoaXMgdG8gYmUgcG9zc2libGUuIEl0J3MgaW1wb3J0YW50IHRv
IHRlc3QgdGhlc2UKKyAgICAgICAgc2luY2Ugb3Bjb2RlcyB0aGF0IHJlc3VsdCBmcm9tIGxvd2Vy
aW5nIGRvbid0IGFmZmVjdCBlYXJseSBwaGFzZXMsIHNvIHdlIGNvdWxkIGhhdmUKKyAgICAgICAg
cmVncmVzc2lvbnMgaW4gZWFybHkgcGhhc2VzIHJlbGF0ZWQgdG8gdGhlc2Ugb3Bjb2RlcyB0aGF0
IHdvdWxkbid0IGJlIGNhdWdodCBieSBhbnkgSlMgdGVzdC4KKyAgICAgICAgU28sIHRoaXMgYWRk
cyBhIHZlcnkgYmFzaWMgdGhyZWFkZWQgaW50ZXJwcmV0ZXIgdG8gdGVzdGIzIGZvciBhIEJyYWlu
ZnVjay1zdHlsZSBsYW5ndWFnZSwgYW5kCisgICAgICAgIHRlc3RzIGl0IGJ5IGhhdmluZyBpdCBy
dW4gYSBwcm9ncmFtIHRoYXQgcHJpbnRzIHRoZSBudW1iZXJzIDEuLjEwMCBpbiBhIGxvb3AuIFVu
bGlrZSBhIHJlYWwKKyAgICAgICAgdGhyZWFkZWQgaW50ZXJwcmV0ZXIsIGl0IHVzZXMgYSBjb21t
b24gZGlzcGF0Y2ggYmxvY2sgcmF0aGVyIHRoYW4gaGF2aW5nIGRpc3BhdGNoIGF0IHRoZQorICAg
ICAgICB0ZXJtaW51cyBvZiBlYWNoIG9wY29kZS4gVGhhdCdzIG5lY2Vzc2FyeSBiZWNhdXNlIFBv
bHlKdW1wIGlzIG5vdCBjbG9uZWFibGUuIFRoZSBzdGF0ZSBvZiB0aGUKKyAgICAgICAgaW50ZXJw
cmV0ZXIgaXMgcmVwcmVzZW50ZWQgdXNpbmcgVmFyaWFibGVzIHRoYXQgd2UgR2V0IGFuZCBTZXQs
IHNvIGl0IHRlc3RzIEdldC9TZXQgYXMgd2VsbC4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0
OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaDoKKyAgICAgICAgKEpTQzo6
TWFjcm9Bc3NlbWJsZXJBUk02NDo6anVtcCk6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyWDg2Q29tbW9uLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9u
OjpqdW1wKToKKyAgICAgICAgKiBhc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmg6CisgICAgICAgIChK
U0M6Olg4NkFzc2VtYmxlcjo6am1wX20pOgorICAgICAgICAqIGIzL0IzQmFzaWNCbG9jay5jcHA6
CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjphcHBlbmQpOgorICAgICAgICAoSlNDOjpC
Mzo6QmFzaWNCbG9jazo6YXBwZW5kTm9uVGVybWluYWwpOgorICAgICAgICAoSlNDOjpCMzo6QmFz
aWNCbG9jazo6cmVtb3ZlTGFzdCk6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjphcHBl
bmRJbnRDb25zdGFudCk6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjpjbGVhclN1Y2Nl
c3NvcnMpOgorICAgICAgICAoSlNDOjpCMzo6QmFzaWNCbG9jazo6YXBwZW5kU3VjY2Vzc29yKToK
KyAgICAgICAgKEpTQzo6QjM6OkJhc2ljQmxvY2s6OnNldFN1Y2Nlc3NvcnMpOgorICAgICAgICAo
SlNDOjpCMzo6QmFzaWNCbG9jazo6cmVwbGFjZVN1Y2Nlc3Nvcik6CisgICAgICAgIChKU0M6OkIz
OjpCYXNpY0Jsb2NrOjphZGRQcmVkZWNlc3Nvcik6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Js
b2NrOjpkZWVwRHVtcCk6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjphcHBlbmROZXdD
b250cm9sVmFsdWUpOgorICAgICAgICAqIGIzL0IzQmFzaWNCbG9jay5oOgorICAgICAgICAoSlND
OjpCMzo6QmFzaWNCbG9jazo6bnVtU3VjY2Vzc29ycyk6CisgICAgICAgIChKU0M6OkIzOjpCYXNp
Y0Jsb2NrOjpzdWNjZXNzb3IpOgorICAgICAgICAoSlNDOjpCMzo6QmFzaWNCbG9jazo6c3VjY2Vz
c29ycyk6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjpzdWNjZXNzb3JCbG9jayk6Cisg
ICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjpzdWNjZXNzb3JCbG9ja3MpOgorICAgICAgICAo
SlNDOjpCMzo6QmFzaWNCbG9jazo6bnVtUHJlZGVjZXNzb3JzKToKKyAgICAgICAgKEpTQzo6QjM6
OkJhc2ljQmxvY2s6OnByZWRlY2Vzc29yKToKKyAgICAgICAgKEpTQzo6QjM6OkJhc2ljQmxvY2s6
OmZyZXF1ZW5jeSk6CisgICAgICAgICogYjMvQjNCYXNpY0Jsb2NrSW5saW5lcy5oOgorICAgICAg
ICAoSlNDOjpCMzo6QmFzaWNCbG9jazo6cmVwbGFjZUxhc3RXaXRoTmV3KToKKyAgICAgICAgKEpT
Qzo6QjM6OkJhc2ljQmxvY2s6OnRha2VuKToKKyAgICAgICAgKEpTQzo6QjM6OkJhc2ljQmxvY2s6
Om5vdFRha2VuKToKKyAgICAgICAgKEpTQzo6QjM6OkJhc2ljQmxvY2s6OmZhbGxUaHJvdWdoKToK
KyAgICAgICAgKEpTQzo6QjM6OkJhc2ljQmxvY2s6Om51bVN1Y2Nlc3NvcnMpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjpCMzo6QmFzaWNCbG9jazo6c3VjY2Vzc29yKTogRGVsZXRlZC4KKyAgICAg
ICAgKEpTQzo6QjM6OkJhc2ljQmxvY2s6OnN1Y2Nlc3NvcnMpOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpCMzo6QmFzaWNCbG9jazo6c3VjY2Vzc29yQmxvY2spOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpCMzo6QmFzaWNCbG9jazo6c3VjY2Vzc29yQmxvY2tzKTogRGVsZXRlZC4KKyAgICAgICAg
KiBiMy9CM0Jsb2NrSW5zZXJ0aW9uU2V0LmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OkJsb2NrSW5z
ZXJ0aW9uU2V0OjpzcGxpdEZvcndhcmQpOgorICAgICAgICAqIGIzL0IzQnJlYWtDcml0aWNhbEVk
Z2VzLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OmJyZWFrQ3JpdGljYWxFZGdlcyk6CisgICAgICAg
ICogYjMvQjNDYXNlQ29sbGVjdGlvbi5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpCMzo6Q2Fz
ZUNvbGxlY3Rpb246OmR1bXApOgorICAgICAgICAqIGIzL0IzQ2FzZUNvbGxlY3Rpb24uaDogQWRk
ZWQuCisgICAgICAgIChKU0M6OkIzOjpDYXNlQ29sbGVjdGlvbjo6Q2FzZUNvbGxlY3Rpb24pOgor
ICAgICAgICAoSlNDOjpCMzo6Q2FzZUNvbGxlY3Rpb246Om9wZXJhdG9yW10pOgorICAgICAgICAo
SlNDOjpCMzo6Q2FzZUNvbGxlY3Rpb246Oml0ZXJhdG9yOjppdGVyYXRvcik6CisgICAgICAgIChK
U0M6OkIzOjpDYXNlQ29sbGVjdGlvbjo6aXRlcmF0b3I6Om9wZXJhdG9yKik6CisgICAgICAgIChK
U0M6OkIzOjpDYXNlQ29sbGVjdGlvbjo6aXRlcmF0b3I6Om9wZXJhdG9yKyspOgorICAgICAgICAo
SlNDOjpCMzo6Q2FzZUNvbGxlY3Rpb246Oml0ZXJhdG9yOjpvcGVyYXRvcj09KToKKyAgICAgICAg
KEpTQzo6QjM6OkNhc2VDb2xsZWN0aW9uOjppdGVyYXRvcjo6b3BlcmF0b3IhPSk6CisgICAgICAg
IChKU0M6OkIzOjpDYXNlQ29sbGVjdGlvbjo6YmVnaW4pOgorICAgICAgICAoSlNDOjpCMzo6Q2Fz
ZUNvbGxlY3Rpb246OmVuZCk6CisgICAgICAgICogYjMvQjNDYXNlQ29sbGVjdGlvbklubGluZXMu
aDogQWRkZWQuCisgICAgICAgIChKU0M6OkIzOjpDYXNlQ29sbGVjdGlvbjo6ZmFsbFRocm91Z2gp
OgorICAgICAgICAoSlNDOjpCMzo6Q2FzZUNvbGxlY3Rpb246OnNpemUpOgorICAgICAgICAoSlND
OjpCMzo6Q2FzZUNvbGxlY3Rpb246OmF0KToKKyAgICAgICAgKiBiMy9CM0NoZWNrU3BlY2lhbC5j
cHA6CisgICAgICAgIChKU0M6OkIzOjpDaGVja1NwZWNpYWw6OkNoZWNrU3BlY2lhbCk6CisgICAg
ICAgIChKU0M6OkIzOjpDaGVja1NwZWNpYWw6OmhpZGRlbkJyYW5jaCk6CisgICAgICAgICogYjMv
QjNDb21tb24uaDoKKyAgICAgICAgKEpTQzo6QjM6OmlzNjRCaXQpOgorICAgICAgICAqIGIzL0Iz
Q29udHJvbFZhbHVlLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBiMy9CM0NvbnRyb2xWYWx1ZS5o
OiBSZW1vdmVkLgorICAgICAgICAqIGIzL0IzRGF0YVNlY3Rpb24uY3BwOgorICAgICAgICAoSlND
OjpCMzo6RGF0YVNlY3Rpb246OkRhdGFTZWN0aW9uKToKKyAgICAgICAgKiBiMy9CM0R1cGxpY2F0
ZVRhaWxzLmNwcDoKKyAgICAgICAgKiBiMy9CM0ZpeFNTQS5jcHA6CisgICAgICAgICogYjMvQjNG
b2xkUGF0aENvbnN0YW50cy5jcHA6CisgICAgICAgICogYjMvQjNMb3dlck1hY3Jvcy5jcHA6Cisg
ICAgICAgICogYjMvQjNMb3dlclRvQWlyLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6TG93
ZXJUb0Fpcjo6cnVuKToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6TG93ZXJUb0Fpcjo6bG93ZXIp
OgorICAgICAgICAqIGIzL0IzTWF0aEV4dHJhcy5jcHA6CisgICAgICAgIChKU0M6OkIzOjpwb3dE
b3VibGVJbnQzMik6CisgICAgICAgICogYjMvQjNPcGNvZGUuaDoKKyAgICAgICAgKEpTQzo6QjM6
OmlzQ29uc3RhbnQpOgorICAgICAgICAoSlNDOjpCMzo6aXNEZWZpbml0ZWx5VGVybWluYWwpOgor
ICAgICAgICAqIGIzL0IzUGF0Y2hwb2ludFNwZWNpYWwuY3BwOgorICAgICAgICAoSlNDOjpCMzo6
UGF0Y2hwb2ludFNwZWNpYWw6OmdlbmVyYXRlKToKKyAgICAgICAgKEpTQzo6QjM6OlBhdGNocG9p
bnRTcGVjaWFsOjppc1Rlcm1pbmFsKToKKyAgICAgICAgKEpTQzo6QjM6OlBhdGNocG9pbnRTcGVj
aWFsOjpkdW1wSW1wbCk6CisgICAgICAgICogYjMvQjNQYXRjaHBvaW50U3BlY2lhbC5oOgorICAg
ICAgICAqIGIzL0IzUHJvY2VkdXJlLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OlByb2NlZHVyZTo6
cmVzZXRSZWFjaGFiaWxpdHkpOgorICAgICAgICAqIGIzL0IzUHJvY2VkdXJlLmg6CisgICAgICAg
IChKU0M6OkIzOjpQcm9jZWR1cmU6Omxhc3RQaGFzZU5hbWUpOgorICAgICAgICAoSlNDOjpCMzo6
UHJvY2VkdXJlOjpieXByb2R1Y3RzKToKKyAgICAgICAgKiBiMy9CM1JlZHVjZVN0cmVuZ3RoLmNw
cDoKKyAgICAgICAgKiBiMy9CM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5jcHA6CisgICAgICAg
IChKU0M6OkIzOjpTdGFja21hcEdlbmVyYXRpb25QYXJhbXM6OnVuYXZhaWxhYmxlUmVnaXN0ZXJz
KToKKyAgICAgICAgKEpTQzo6QjM6OlN0YWNrbWFwR2VuZXJhdGlvblBhcmFtczo6c3VjY2Vzc29y
TGFiZWxzKToKKyAgICAgICAgKEpTQzo6QjM6OlN0YWNrbWFwR2VuZXJhdGlvblBhcmFtczo6ZmFs
bHNUaHJvdWdoVG9TdWNjZXNzb3IpOgorICAgICAgICAoSlNDOjpCMzo6U3RhY2ttYXBHZW5lcmF0
aW9uUGFyYW1zOjpwcm9jKToKKyAgICAgICAgKiBiMy9CM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFt
cy5oOgorICAgICAgICAoSlNDOjpCMzo6U3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zOjpncFNjcmF0
Y2gpOgorICAgICAgICAoSlNDOjpCMzo6U3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zOjpmcFNjcmF0
Y2gpOgorICAgICAgICAqIGIzL0IzU3dpdGNoVmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6
U3dpdGNoVmFsdWU6On5Td2l0Y2hWYWx1ZSk6CisgICAgICAgIChKU0M6OkIzOjpTd2l0Y2hWYWx1
ZTo6cmVtb3ZlQ2FzZSk6CisgICAgICAgIChKU0M6OkIzOjpTd2l0Y2hWYWx1ZTo6aGFzRmFsbFRo
cm91Z2gpOgorICAgICAgICAoSlNDOjpCMzo6U3dpdGNoVmFsdWU6OnNldEZhbGxUaHJvdWdoKToK
KyAgICAgICAgKEpTQzo6QjM6OlN3aXRjaFZhbHVlOjphcHBlbmRDYXNlKToKKyAgICAgICAgKEpT
Qzo6QjM6OlN3aXRjaFZhbHVlOjpkdW1wU3VjY2Vzc29ycyk6CisgICAgICAgIChKU0M6OkIzOjpT
d2l0Y2hWYWx1ZTo6ZHVtcE1ldGEpOgorICAgICAgICAoSlNDOjpCMzo6U3dpdGNoVmFsdWU6OmNs
b25lSW1wbCk6CisgICAgICAgIChKU0M6OkIzOjpTd2l0Y2hWYWx1ZTo6U3dpdGNoVmFsdWUpOgor
ICAgICAgICAqIGIzL0IzU3dpdGNoVmFsdWUuaDoKKyAgICAgICAgKEpTQzo6QjM6OlN3aXRjaFZh
bHVlOjphY2NlcHRzKToKKyAgICAgICAgKEpTQzo6QjM6OlN3aXRjaFZhbHVlOjpjYXNlVmFsdWVz
KToKKyAgICAgICAgKEpTQzo6QjM6OlN3aXRjaFZhbHVlOjpjYXNlcyk6CisgICAgICAgIChKU0M6
OkIzOjpTd2l0Y2hWYWx1ZTo6ZmFsbFRocm91Z2gpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpC
Mzo6U3dpdGNoVmFsdWU6OnNpemUpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpCMzo6U3dpdGNo
VmFsdWU6OmF0KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6QjM6OlN3aXRjaFZhbHVlOjpvcGVy
YXRvcltdKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6QjM6OlN3aXRjaFZhbHVlOjppdGVyYXRv
cjo6aXRlcmF0b3IpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpCMzo6U3dpdGNoVmFsdWU6Oml0
ZXJhdG9yOjpvcGVyYXRvciopOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpCMzo6U3dpdGNoVmFs
dWU6Oml0ZXJhdG9yOjpvcGVyYXRvcisrKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6QjM6OlN3
aXRjaFZhbHVlOjppdGVyYXRvcjo6b3BlcmF0b3I9PSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkIzOjpTd2l0Y2hWYWx1ZTo6aXRlcmF0b3I6Om9wZXJhdG9yIT0pOiBEZWxldGVkLgorICAgICAg
ICAoSlNDOjpCMzo6U3dpdGNoVmFsdWU6OmJlZ2luKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6
QjM6OlN3aXRjaFZhbHVlOjplbmQpOiBEZWxldGVkLgorICAgICAgICAqIGIzL0IzVmFsaWRhdGUu
Y3BwOgorICAgICAgICAqIGIzL0IzVmFsdWUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6
OnJlcGxhY2VXaXRoUGhpKToKKyAgICAgICAgKEpTQzo6QjM6OlZhbHVlOjpyZXBsYWNlV2l0aEp1
bXApOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6OnJlcGxhY2VXaXRoT29wcyk6CisgICAgICAg
IChKU0M6OkIzOjpWYWx1ZTo6ZHVtcCk6CisgICAgICAgIChKU0M6OkIzOjpWYWx1ZTo6ZGVlcER1
bXApOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6OmR1bXBTdWNjZXNzb3JzKToKKyAgICAgICAg
KEpTQzo6QjM6OlZhbHVlOjpuZWdDb25zdGFudCk6CisgICAgICAgIChKU0M6OkIzOjpWYWx1ZTo6
dHlwZUZvcik6CisgICAgICAgICogYjMvQjNWYWx1ZS5oOgorICAgICAgICAqIGIzL2Fpci9BaXJD
b2RlLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6Q29kZTo6YWRkRmFzdFRtcCk6CisgICAg
ICAgIChKU0M6OkIzOjpBaXI6OkNvZGU6OmFkZERhdGFTZWN0aW9uKToKKyAgICAgICAgKEpTQzo6
QjM6OkFpcjo6Q29kZTo6anNIYXNoKToKKyAgICAgICAgKiBiMy9haXIvQWlyQ29kZS5oOgorICAg
ICAgICAoSlNDOjpCMzo6QWlyOjpDb2RlOjppc0Zhc3RUbXApOgorICAgICAgICAoSlNDOjpCMzo6
QWlyOjpDb2RlOjpzZXRMYXN0UGhhc2VOYW1lKToKKyAgICAgICAgKiBiMy9haXIvQWlyQ3VzdG9t
Lmg6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OlBhdGNoQ3VzdG9tOjpzaG91bGRUcnlBbGlhc2lu
Z0RlZik6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OlBhdGNoQ3VzdG9tOjppc1Rlcm1pbmFsKToK
KyAgICAgICAgKEpTQzo6QjM6OkFpcjo6UGF0Y2hDdXN0b206Omhhc05vbkFyZ05vbkNvbnRyb2xF
ZmZlY3RzKToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6UGF0Y2hDdXN0b206OmdlbmVyYXRlKToK
KyAgICAgICAgKEpTQzo6QjM6OkFpcjo6Q0NhbGxDdXN0b206OmFkbWl0c1N0YWNrKToKKyAgICAg
ICAgKEpTQzo6QjM6OkFpcjo6Q0NhbGxDdXN0b206OmlzVGVybWluYWwpOgorICAgICAgICAoSlND
OjpCMzo6QWlyOjpDQ2FsbEN1c3RvbTo6aGFzTm9uQXJnTm9uQ29udHJvbEVmZmVjdHMpOgorICAg
ICAgICAoSlNDOjpCMzo6QWlyOjpTaHVmZmxlQ3VzdG9tOjphZG1pdHNTdGFjayk6CisgICAgICAg
IChKU0M6OkIzOjpBaXI6OlNodWZmbGVDdXN0b206OmlzVGVybWluYWwpOgorICAgICAgICAoSlND
OjpCMzo6QWlyOjpTaHVmZmxlQ3VzdG9tOjpoYXNOb25BcmdOb25Db250cm9sRWZmZWN0cyk6Cisg
ICAgICAgICogYjMvYWlyL0FpckdlbmVyYXRlLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6
Z2VuZXJhdGUpOgorICAgICAgICAqIGIzL2Fpci9BaXJHZW5lcmF0aW9uQ29udGV4dC5oOgorICAg
ICAgICAqIGIzL2Fpci9BaXJJbnN0Lmg6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okluc3Q6Omhh
c05vbkNvbnRyb2xFZmZlY3RzKToKKyAgICAgICAgKiBiMy9haXIvQWlyU2ltcGxpZnlDRkcuY3Bw
OgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpzaW1wbGlmeUNGRyk6CisgICAgICAgICogYjMvYWly
L0FpclNwZWNpYWwuY3BwOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpTcGVjaWFsOjpzaG91bGRU
cnlBbGlhc2luZ0RlZik6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OlNwZWNpYWw6OmlzVGVybWlu
YWwpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpTcGVjaWFsOjpoYXNOb25BcmdOb25Db250cm9s
RWZmZWN0cyk6CisgICAgICAgICogYjMvYWlyL0FpclNwZWNpYWwuaDoKKyAgICAgICAgKiBiMy9h
aXIvQWlyVmFsaWRhdGUuY3BwOgorICAgICAgICAqIGIzL2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJi
OgorICAgICAgICAqIGIzL3Rlc3RiMy5jcHA6CisgICAgICAgIChKU0M6OkIzOjpzaG91bGRCZVZl
cmJvc2UpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdDQyKToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RMb2FkNDIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdExvYWRXaXRoT2Zmc2V0SW1wbCk6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0QXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RSZXR1cm5D
b25zdDY0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RBZGRBcmcpOgorICAgICAgICAoSlNDOjpC
Mzo6dGVzdEFkZEFyZ3MpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEFkZEFyZ0ltbSk6CisgICAg
ICAgIChKU0M6OkIzOjp0ZXN0QWRkSW1tQXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RBZGRB
cmdNZW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEFkZE1lbUFyZyk6CisgICAgICAgIChKU0M6
OkIzOjp0ZXN0QWRkSW1tTWVtKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RBZGRBcmczMik6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0QWRkQXJnczMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RB
ZGRBcmdNZW0zMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QWRkTWVtQXJnMzIpOgorICAgICAg
ICAoSlNDOjpCMzo6dGVzdEFkZEltbU1lbTMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RBZGRB
cmdaZXJvSW1tWkRlZik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QWRkTG9hZFR3aWNlKToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RBZGRBcmdEb3VibGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dEFkZEFyZ3NEb3VibGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEFkZEFyZ0ltbURvdWJsZSk6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QWRkSW1tQXJnRG91YmxlKToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RBZGRJbW1zRG91YmxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RBZGRBcmdGbG9h
dCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QWRkQXJnc0Zsb2F0KToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RBZGRBcmdJbW1GbG9hdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QWRkSW1tQXJn
RmxvYXQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEFkZEltbXNGbG9hdCk6CisgICAgICAgIChK
U0M6OkIzOjp0ZXN0QWRkQXJnRmxvYXRXaXRoVXNlbGVzc0RvdWJsZUNvbnZlcnNpb24pOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdEFkZEFyZ3NGbG9hdFdpdGhVc2VsZXNzRG91YmxlQ29udmVyc2lv
bik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QWRkQXJnc0Zsb2F0V2l0aEVmZmVjdGZ1bERvdWJs
ZUNvbnZlcnNpb24pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE11bEFyZyk6CisgICAgICAgIChK
U0M6OkIzOjp0ZXN0TXVsQXJnU3RvcmUpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE11bEFkZEFy
Zyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TXVsQXJncyk6CisgICAgICAgIChKU0M6OkIzOjp0
ZXN0TXVsQXJnSW1tKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNdWxJbW1BcmcpOgorICAgICAg
ICAoSlNDOjpCMzo6dGVzdE11bEFyZ3MzMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TXVsTG9h
ZFR3aWNlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNdWxBZGRBcmdzTGVmdCk6CisgICAgICAg
IChKU0M6OkIzOjp0ZXN0TXVsQWRkQXJnc1JpZ2h0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RN
dWxBZGRBcmdzTGVmdDMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNdWxBZGRBcmdzUmlnaHQz
Mik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TXVsU3ViQXJnc0xlZnQpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdE11bFN1YkFyZ3NSaWdodCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TXVsU3Vi
QXJnc0xlZnQzMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TXVsU3ViQXJnc1JpZ2h0MzIpOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdE11bE5lZ0FyZ3MpOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dE11bE5lZ0FyZ3MzMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TXVsQXJnRG91YmxlKToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RNdWxBcmdzRG91YmxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RNdWxBcmdJbW1Eb3VibGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE11bEltbUFyZ0RvdWJs
ZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TXVsSW1tc0RvdWJsZSk6CisgICAgICAgIChKU0M6
OkIzOjp0ZXN0TXVsQXJnRmxvYXQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE11bEFyZ3NGbG9h
dCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TXVsQXJnSW1tRmxvYXQpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdE11bEltbUFyZ0Zsb2F0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNdWxJbW1z
RmxvYXQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE11bEFyZ0Zsb2F0V2l0aFVzZWxlc3NEb3Vi
bGVDb252ZXJzaW9uKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNdWxBcmdzRmxvYXRXaXRoVXNl
bGVzc0RvdWJsZUNvbnZlcnNpb24pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE11bEFyZ3NGbG9h
dFdpdGhFZmZlY3RmdWxEb3VibGVDb252ZXJzaW9uKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RE
aXZBcmdEb3VibGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdERpdkFyZ3NEb3VibGUpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdERpdkFyZ0ltbURvdWJsZSk6CisgICAgICAgIChKU0M6OkIzOjp0
ZXN0RGl2SW1tQXJnRG91YmxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3REaXZJbW1zRG91Ymxl
KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3REaXZBcmdGbG9hdCk6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0RGl2QXJnc0Zsb2F0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3REaXZBcmdJbW1GbG9h
dCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0RGl2SW1tQXJnRmxvYXQpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdERpdkltbXNGbG9hdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TW9kQXJnRG91
YmxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNb2RBcmdzRG91YmxlKToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3RNb2RBcmdJbW1Eb3VibGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE1vZElt
bUFyZ0RvdWJsZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TW9kSW1tc0RvdWJsZSk6CisgICAg
ICAgIChKU0M6OkIzOjp0ZXN0TW9kQXJnRmxvYXQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE1v
ZEFyZ3NGbG9hdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TW9kQXJnSW1tRmxvYXQpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdE1vZEltbUFyZ0Zsb2F0KToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RNb2RJbW1zRmxvYXQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdERpdkFyZ0Zsb2F0V2l0aFVz
ZWxlc3NEb3VibGVDb252ZXJzaW9uKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3REaXZBcmdzRmxv
YXRXaXRoVXNlbGVzc0RvdWJsZUNvbnZlcnNpb24pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdERp
dkFyZ3NGbG9hdFdpdGhFZmZlY3RmdWxEb3VibGVDb252ZXJzaW9uKToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RTdWJBcmcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN1YkFyZ3MpOgorICAgICAg
ICAoSlNDOjpCMzo6dGVzdFN1YkFyZ0ltbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TmVnVmFs
dWVTdWJPbmUpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN1YkltbUFyZyk6CisgICAgICAgIChK
U0M6OkIzOjp0ZXN0U3ViQXJnTWVtKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdWJNZW1Bcmcp
OgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN1YkltbU1lbSk6CisgICAgICAgIChKU0M6OkIzOjp0
ZXN0U3ViTWVtSW1tKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdWJBcmdzMzIpOgorICAgICAg
ICAoSlNDOjpCMzo6dGVzdFN1YkFyZ0ltbTMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdWJJ
bW1BcmczMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3ViTWVtQXJnMzIpOgorICAgICAgICAo
SlNDOjpCMzo6dGVzdFN1YkFyZ01lbTMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdWJJbW1N
ZW0zMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3ViTWVtSW1tMzIpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdE5lZ1ZhbHVlU3ViT25lMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN1YkFy
Z0RvdWJsZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3ViQXJnc0RvdWJsZSk6CisgICAgICAg
IChKU0M6OkIzOjp0ZXN0U3ViQXJnSW1tRG91YmxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RT
dWJJbW1BcmdEb3VibGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN1YkltbXNEb3VibGUpOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdFN1YkFyZ0Zsb2F0KToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RTdWJBcmdzRmxvYXQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN1YkFyZ0ltbUZsb2F0KToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdWJJbW1BcmdGbG9hdCk6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0U3ViSW1tc0Zsb2F0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdWJBcmdGbG9hdFdp
dGhVc2VsZXNzRG91YmxlQ29udmVyc2lvbik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3ViQXJn
c0Zsb2F0V2l0aFVzZWxlc3NEb3VibGVDb252ZXJzaW9uKToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RTdWJBcmdzRmxvYXRXaXRoRWZmZWN0ZnVsRG91YmxlQ29udmVyc2lvbik6CisgICAgICAgIChK
U0M6OkIzOjp0ZXN0Qml0QW5kQXJncyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0QW5kU2Ft
ZUFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0QW5kSW1tcyk6CisgICAgICAgIChKU0M6
OkIzOjp0ZXN0Qml0QW5kQXJnSW1tKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRBbmRJbW1B
cmcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdEFuZEJpdEFuZEFyZ0ltbUltbSk6CisgICAg
ICAgIChKU0M6OkIzOjp0ZXN0Qml0QW5kSW1tQml0QW5kQXJnSW1tKToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RCaXRBbmRBcmdzMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdEFuZFNhbWVB
cmczMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0QW5kSW1tczMyKToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3RCaXRBbmRBcmdJbW0zMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0QW5k
SW1tQXJnMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdEFuZEJpdEFuZEFyZ0ltbUltbTMy
KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRBbmRJbW1CaXRBbmRBcmdJbW0zMik6CisgICAg
ICAgIChKU0M6OkIzOjp0ZXN0Qml0QW5kV2l0aE1hc2tSZXR1cm5zQm9vbGVhbnMpOgorICAgICAg
ICAoSlNDOjpCMzo6dGVzdEJpdEFuZEFyZ0RvdWJsZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0
Qml0QW5kQXJnc0RvdWJsZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0QW5kQXJnSW1tRG91
YmxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRBbmRJbW1zRG91YmxlKToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RCaXRBbmRBcmdGbG9hdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0
QW5kQXJnc0Zsb2F0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRBbmRBcmdJbW1GbG9hdCk6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0QW5kSW1tc0Zsb2F0KToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RCaXRBbmRBcmdzRmxvYXRXaXRoVXNlbGVzc0RvdWJsZUNvbnZlcnNpb24pOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdEJpdE9yQXJncyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0
T3JTYW1lQXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRPckltbXMpOgorICAgICAgICAo
SlNDOjpCMzo6dGVzdEJpdE9yQXJnSW1tKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRPcklt
bUFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0T3JCaXRPckFyZ0ltbUltbSk6CisgICAg
ICAgIChKU0M6OkIzOjp0ZXN0Qml0T3JJbW1CaXRPckFyZ0ltbSk6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0Qml0T3JBcmdzMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdE9yU2FtZUFyZzMy
KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRPckltbXMzMik6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0Qml0T3JBcmdJbW0zMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0T3JJbW1Bcmcz
Mik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0T3JCaXRPckFyZ0ltbUltbTMyKToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RCaXRPckltbUJpdE9yQXJnSW1tMzIpOgorICAgICAgICAoSlNDOjpC
Mzo6dGVzdEJpdFhvckFyZ3MpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdFhvclNhbWVBcmcp
OgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdFhvckltbXMpOgorICAgICAgICAoSlNDOjpCMzo6
dGVzdEJpdFhvckFyZ0ltbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0WG9ySW1tQXJnKToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRYb3JCaXRYb3JBcmdJbW1JbW0pOgorICAgICAgICAo
SlNDOjpCMzo6dGVzdEJpdFhvckltbUJpdFhvckFyZ0ltbSk6CisgICAgICAgIChKU0M6OkIzOjp0
ZXN0Qml0WG9yQXJnczMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRYb3JTYW1lQXJnMzIp
OgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdFhvckltbXMzMik6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0Qml0WG9yQXJnSW1tMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdFhvckltbUFy
ZzMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRYb3JCaXRYb3JBcmdJbW1JbW0zMik6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0WG9ySW1tQml0WG9yQXJnSW1tMzIpOgorICAgICAgICAo
SlNDOjpCMzo6dGVzdEJpdE5vdEFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0Tm90SW1t
KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXROb3RNZW0pOgorICAgICAgICAoSlNDOjpCMzo6
dGVzdEJpdE5vdEFyZzMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXROb3RJbW0zMik6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0Tm90TWVtMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dEJpdE5vdE9uQm9vbGVhbkFuZEJyYW5jaDMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTaGxB
cmdzKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTaGxJbW1zKToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RTaGxBcmdJbW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNobEFyZzMyKToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RTaGxBcmdzMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNobElt
bXMzMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U2hsQXJnSW1tMzIpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdFNTaHJBcmdzKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTU2hySW1tcyk6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0U1NockFyZ0ltbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0
U1NockFyZzMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTU2hyQXJnczMyKToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RTU2hySW1tczMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTU2hyQXJn
SW1tMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFpTaHJBcmdzKToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RaU2hySW1tcyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0WlNockFyZ0ltbSk6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0WlNockFyZzMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3Ra
U2hyQXJnczMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RaU2hySW1tczMyKToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RaU2hyQXJnSW1tMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENsekFy
ZzY0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDbHpNZW02NCk6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0Q2x6QXJnMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENsek1lbTMyKToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RBYnNBcmcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEFic0ltbSk6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QWJzTWVtKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RB
YnNBYnNBcmcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEFic0JpdHdpc2VDYXN0QXJnKToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RCaXR3aXNlQ2FzdEFic0JpdHdpc2VDYXN0QXJnKToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RBYnNBcmdXaXRoVXNlbGVzc0RvdWJsZUNvbnZlcnNpb24pOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdEFic0FyZ1dpdGhFZmZlY3RmdWxEb3VibGVDb252ZXJzaW9uKToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RDZWlsQXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RD
ZWlsSW1tKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDZWlsTWVtKToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RDZWlsQ2VpbEFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Rmxvb3JDZWlsQXJn
KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDZWlsSVRvRDY0KToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RDZWlsSVRvRDMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDZWlsQXJnV2l0aFVzZWxl
c3NEb3VibGVDb252ZXJzaW9uKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDZWlsQXJnV2l0aEVm
ZmVjdGZ1bERvdWJsZUNvbnZlcnNpb24pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEZsb29yQXJn
KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RGbG9vckltbSk6CisgICAgICAgIChKU0M6OkIzOjp0
ZXN0Rmxvb3JNZW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEZsb29yRmxvb3JBcmcpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdENlaWxGbG9vckFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0
Rmxvb3JJVG9ENjQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEZsb29ySVRvRDMyKToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RGbG9vckFyZ1dpdGhVc2VsZXNzRG91YmxlQ29udmVyc2lvbik6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0Rmxvb3JBcmdXaXRoRWZmZWN0ZnVsRG91YmxlQ29udmVyc2lv
bik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3FydEFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0
ZXN0U3FydEltbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3FydE1lbSk6CisgICAgICAgIChK
U0M6OkIzOjp0ZXN0U3FydEFyZ1dpdGhVc2VsZXNzRG91YmxlQ29udmVyc2lvbik6CisgICAgICAg
IChKU0M6OkIzOjp0ZXN0U3FydEFyZ1dpdGhFZmZlY3RmdWxEb3VibGVDb252ZXJzaW9uKToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RDb21wYXJlVHdvRmxvYXRUb0RvdWJsZSk6CisgICAgICAgIChK
U0M6OkIzOjp0ZXN0Q29tcGFyZU9uZUZsb2F0VG9Eb3VibGUpOgorICAgICAgICAoSlNDOjpCMzo6
dGVzdENvbXBhcmVGbG9hdFRvRG91YmxlVGhyb3VnaFBoaSk6CisgICAgICAgIChKU0M6OkIzOjp0
ZXN0RG91YmxlVG9GbG9hdFRocm91Z2hQaGkpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdERvdWJs
ZVByb2R1Y2VyUGhpVG9GbG9hdENvbnZlcnNpb24pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdERv
dWJsZVByb2R1Y2VyUGhpVG9GbG9hdENvbnZlcnNpb25XaXRoRG91YmxlQ29uc3VtZXIpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdERvdWJsZVByb2R1Y2VyUGhpV2l0aE5vbkZsb2F0Q29uc3QpOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdERvdWJsZUFyZ1RvSW50NjRCaXR3aXNlQ2FzdCk6CisgICAg
ICAgIChKU0M6OkIzOjp0ZXN0RG91YmxlSW1tVG9JbnQ2NEJpdHdpc2VDYXN0KToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RUd29CaXR3aXNlQ2FzdE9uRG91YmxlKToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RCaXR3aXNlQ2FzdE9uRG91YmxlSW5NZW1vcnkpOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dEJpdHdpc2VDYXN0T25Eb3VibGVJbk1lbW9yeUluZGV4ZWQpOgorICAgICAgICAoSlNDOjpCMzo6
dGVzdEludDY0QkFyZ1RvRG91YmxlQml0d2lzZUNhc3QpOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dEludDY0QkltbVRvRG91YmxlQml0d2lzZUNhc3QpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFR3
b0JpdHdpc2VDYXN0T25JbnQ2NCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0d2lzZUNhc3RP
bkludDY0SW5NZW1vcnkpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdHdpc2VDYXN0T25JbnQ2
NEluTWVtb3J5SW5kZXhlZCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0RmxvYXRJbW1Ub0ludDMy
Qml0d2lzZUNhc3QpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdHdpc2VDYXN0T25GbG9hdElu
TWVtb3J5KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RJbnQzMkJBcmdUb0Zsb2F0Qml0d2lzZUNh
c3QpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEludDMyQkltbVRvRmxvYXRCaXR3aXNlQ2FzdCk6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0VHdvQml0d2lzZUNhc3RPbkludDMyKToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RCaXR3aXNlQ2FzdE9uSW50MzJJbk1lbW9yeSk6CisgICAgICAgIChKU0M6
OkIzOjp0ZXN0Q29udmVydERvdWJsZVRvRmxvYXRBcmcpOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dENvbnZlcnREb3VibGVUb0Zsb2F0SW1tKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDb252ZXJ0
RG91YmxlVG9GbG9hdE1lbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q29udmVydEZsb2F0VG9E
b3VibGVBcmcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENvbnZlcnRGbG9hdFRvRG91YmxlSW1t
KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDb252ZXJ0RmxvYXRUb0RvdWJsZU1lbSk6CisgICAg
ICAgIChKU0M6OkIzOjp0ZXN0Q29udmVydERvdWJsZVRvRmxvYXRUb0RvdWJsZVRvRmxvYXQpOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdExvYWRGbG9hdENvbnZlcnREb3VibGVDb252ZXJ0RmxvYXRT
dG9yZUZsb2F0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RGcm91bmRBcmcpOgorICAgICAgICAo
SlNDOjpCMzo6dGVzdEZyb3VuZE1lbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0SVRvRDY0QXJn
KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RJVG9GNjRBcmcpOgorICAgICAgICAoSlNDOjpCMzo6
dGVzdElUb0QzMkFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0SVRvRjMyQXJnKToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RJVG9ENjRNZW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdElUb0Y2
NE1lbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0SVRvRDMyTWVtKToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RJVG9GMzJNZW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdElUb0Q2NEltbSk6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0SVRvRjY0SW1tKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RJ
VG9EMzJJbW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdElUb0YzMkltbSk6CisgICAgICAgIChK
U0M6OkIzOjp0ZXN0SVRvRFJlZHVjZWRUb0lUb0Y2NEFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0
ZXN0SVRvRFJlZHVjZWRUb0lUb0YzMkFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3RvcmUz
Mik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3RvcmVDb25zdGFudCk6CisgICAgICAgIChKU0M6
OkIzOjp0ZXN0U3RvcmVDb25zdGFudFB0cik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3RvcmU4
QXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdG9yZThJbW0pOgorICAgICAgICAoSlNDOjpC
Mzo6dGVzdFN0b3JlUGFydGlhbDhCaXRSZWdpc3Rlck9uWDg2KToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RTdG9yZTE2QXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdG9yZTE2SW1tKToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RUcnVuYyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QWRkMSk6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QWRkMVB0cik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0
TmVnMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE5lZ1B0cik6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0U3RvcmVBZGRMb2FkMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN0b3JlQWRkTG9h
ZEltbTMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdG9yZUFkZExvYWQ4KToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RTdG9yZUFkZExvYWRJbW04KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RT
dG9yZUFkZExvYWQxNik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3RvcmVBZGRMb2FkSW1tMTYp
OgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN0b3JlQWRkTG9hZDY0KToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RTdG9yZUFkZExvYWRJbW02NCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3RvcmVB
ZGRMb2FkMzJJbmRleCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3RvcmVBZGRMb2FkSW1tMzJJ
bmRleCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3RvcmVBZGRMb2FkOEluZGV4KToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RTdG9yZUFkZExvYWRJbW04SW5kZXgpOgorICAgICAgICAoSlNDOjpC
Mzo6dGVzdFN0b3JlQWRkTG9hZDE2SW5kZXgpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN0b3Jl
QWRkTG9hZEltbTE2SW5kZXgpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN0b3JlQWRkTG9hZDY0
SW5kZXgpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN0b3JlQWRkTG9hZEltbTY0SW5kZXgpOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdFN0b3JlU3ViTG9hZCk6CisgICAgICAgIChKU0M6OkIzOjp0
ZXN0U3RvcmVBZGRMb2FkSW50ZXJmZXJlbmNlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdG9y
ZUFkZEFuZExvYWQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN0b3JlTmVnTG9hZDMyKToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RTdG9yZU5lZ0xvYWRQdHIpOgorICAgICAgICAoSlNDOjpCMzo6
dGVzdEFkZDFVbmNvbW11dGVkKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RMb2FkT2Zmc2V0KToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RMb2FkT2Zmc2V0Tm90Q29uc3RhbnQpOgorICAgICAgICAo
SlNDOjpCMzo6dGVzdExvYWRPZmZzZXRVc2luZ0FkZCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0
TG9hZE9mZnNldFVzaW5nQWRkSW50ZXJmZXJlbmNlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RM
b2FkT2Zmc2V0VXNpbmdBZGROb3RDb25zdGFudCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TG9h
ZEFkZHJTaGlmdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0RnJhbWVQb2ludGVyKToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RPdmVycmlkZUZyYW1lUG9pbnRlcik6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0U3RhY2tTbG90KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RMb2FkRnJvbUZyYW1lUG9p
bnRlcik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3RvcmVMb2FkU3RhY2tTbG90KToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RMb2FkKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdG9yZUZsb2F0
KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdG9yZURvdWJsZUNvbnN0YW50QXNGbG9hdCk6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0U3BpbGxHUCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3Bp
bGxGUCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0SW50MzJUb0RvdWJsZVBhcnRpYWxSZWdpc3Rl
clN0YWxsKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RJbnQzMlRvRG91YmxlUGFydGlhbFJlZ2lz
dGVyV2l0aG91dFN0YWxsKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCcmFuY2gpOgorICAgICAg
ICAoSlNDOjpCMzo6dGVzdEJyYW5jaFB0cik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0RGlhbW9u
ZCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QnJhbmNoTm90RXF1YWwpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdEJyYW5jaE5vdEVxdWFsQ29tbXV0ZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0
QnJhbmNoTm90RXF1YWxOb3RFcXVhbCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QnJhbmNoRXF1
YWwpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJyYW5jaEVxdWFsRXF1YWwpOgorICAgICAgICAo
SlNDOjpCMzo6dGVzdEJyYW5jaEVxdWFsQ29tbXV0ZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0
QnJhbmNoRXF1YWxFcXVhbDEpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJyYW5jaEVxdWFsT3JV
bm9yZGVyZWRBcmdzKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCcmFuY2hOb3RFcXVhbEFuZE9y
ZGVyZWRBcmdzKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVk
RG91YmxlQXJnSW1tKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCcmFuY2hFcXVhbE9yVW5vcmRl
cmVkRmxvYXRBcmdJbW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJyYW5jaEVxdWFsT3JVbm9y
ZGVyZWREb3VibGVJbW1zKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCcmFuY2hFcXVhbE9yVW5v
cmRlcmVkRmxvYXRJbW1zKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCcmFuY2hFcXVhbE9yVW5v
cmRlcmVkRmxvYXRXaXRoVXNlbGVzc0RvdWJsZUNvbnZlcnNpb24pOgorICAgICAgICAoSlNDOjpC
Mzo6dGVzdEJyYW5jaEZvbGQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdERpYW1vbmRGb2xkKToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RCcmFuY2hOb3RFcXVhbEZvbGRQdHIpOgorICAgICAgICAo
SlNDOjpCMzo6dGVzdEJyYW5jaEVxdWFsRm9sZFB0cik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0
QnJhbmNoTG9hZFB0cik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QnJhbmNoTG9hZDMyKToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RCcmFuY2hMb2FkOFMpOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dEJyYW5jaExvYWQ4Wik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QnJhbmNoTG9hZDE2Uyk6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0QnJhbmNoTG9hZDE2Wik6CisgICAgICAgIChKU0M6OkIzOjp0
ZXN0QnJhbmNoOFdpdGhMb2FkOFpJbmRleCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q29tcGxl
eCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U2ltcGxlUGF0Y2hwb2ludCk6CisgICAgICAgIChK
U0M6OkIzOjp0ZXN0U2ltcGxlUGF0Y2hwb2ludFdpdGhvdXRPdXB1dENsb2JiZXJzR1BBcmdzKToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RTaW1wbGVQYXRjaHBvaW50V2l0aE91cHV0Q2xvYmJlcnNH
UEFyZ3MpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNpbXBsZVBhdGNocG9pbnRXaXRob3V0T3Vw
dXRDbG9iYmVyc0ZQQXJncyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U2ltcGxlUGF0Y2hwb2lu
dFdpdGhPdXB1dENsb2JiZXJzRlBBcmdzKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RQYXRjaHBv
aW50V2l0aEVhcmx5Q2xvYmJlcik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0UGF0Y2hwb2ludENh
bGxBcmcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFBhdGNocG9pbnRGaXhlZFJlZ2lzdGVyKToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RQYXRjaHBvaW50QW55KToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RQYXRjaHBvaW50R1BTY3JhdGNoKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RQYXRjaHBv
aW50RlBTY3JhdGNoKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RQYXRjaHBvaW50TG90c09mTGF0
ZUFueXMpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFBhdGNocG9pbnRBbnlJbW0pOgorICAgICAg
ICAoSlNDOjpCMzo6dGVzdFBhdGNocG9pbnRNYW55SW1tcyk6CisgICAgICAgIChKU0M6OkIzOjp0
ZXN0UGF0Y2hwb2ludFdpdGhSZWdpc3RlclJlc3VsdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0
UGF0Y2hwb2ludFdpdGhTdGFja0FyZ3VtZW50UmVzdWx0KToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RQYXRjaHBvaW50V2l0aEFueVJlc3VsdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U2ltcGxl
Q2hlY2spOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoZWNrRmFsc2UpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdENoZWNrVHJ1ZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hlY2tMZXNzVGhh
bik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hlY2tNZWdhQ29tYm8pOgorICAgICAgICAoSlND
OjpCMzo6dGVzdENoZWNrVHJpY2t5TWVnYUNvbWJvKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RD
aGVja1R3b01lZ2FDb21ib3MpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoZWNrVHdvTm9uUmVk
dW5kYW50TWVnYUNvbWJvcyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hlY2tBZGRJbW0pOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdENoZWNrQWRkSW1tQ29tbXV0ZSk6CisgICAgICAgIChKU0M6
OkIzOjp0ZXN0Q2hlY2tBZGRJbW1Tb21lUmVnaXN0ZXIpOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dENoZWNrQWRkKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDaGVja0FkZDY0KToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RDaGVja0FkZEZvbGQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoZWNr
QWRkRm9sZEZhaWwpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoZWNrQWRkQXJndW1lbnRBbGlh
c2luZzY0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDaGVja0FkZEFyZ3VtZW50QWxpYXNpbmcz
Mik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hlY2tBZGRTZWxmT3ZlcmZsb3c2NCk6CisgICAg
ICAgIChKU0M6OkIzOjp0ZXN0Q2hlY2tBZGRTZWxmT3ZlcmZsb3czMik6CisgICAgICAgIChKU0M6
OkIzOjp0ZXN0Q2hlY2tTdWJJbW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoZWNrU3ViQmFk
SW1tKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDaGVja1N1Yik6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0Q2hlY2tTdWI2NCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hlY2tTdWJGb2xkKToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RDaGVja1N1YkZvbGRGYWlsKToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RDaGVja05lZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hlY2tOZWc2NCk6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hlY2tNdWwpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENo
ZWNrTXVsTWVtb3J5KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDaGVja011bDIpOgorICAgICAg
ICAoSlNDOjpCMzo6dGVzdENoZWNrTXVsNjQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoZWNr
TXVsRm9sZCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hlY2tNdWxGb2xkRmFpbCk6CisgICAg
ICAgIChKU0M6OkIzOjp0ZXN0Q2hlY2tNdWxBcmd1bWVudEFsaWFzaW5nNjQpOgorICAgICAgICAo
SlNDOjpCMzo6dGVzdENoZWNrTXVsQXJndW1lbnRBbGlhc2luZzMyKToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RDaGVja011bDY0U1Nocik6CisgICAgICAgIChKU0M6OkIzOjpnZW5lcmljVGVzdENv
bXBhcmUpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEVxdWFsRG91YmxlKToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3RDYWxsU2ltcGxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDYWxsUmFyZSk6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2FsbFJhcmVMaXZlKToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RDYWxsU2ltcGxlUHVyZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2FsbEZ1bmN0aW9u
V2l0aEhlbGxhQXJndW1lbnRzKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RSZXR1cm5Eb3VibGUp
OgorICAgICAgICAoSlNDOjpCMzo6dGVzdFJldHVybkZsb2F0KToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RDYWxsU2ltcGxlRG91YmxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDYWxsU2ltcGxl
RmxvYXQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENhbGxGdW5jdGlvbldpdGhIZWxsYURvdWJs
ZUFyZ3VtZW50cyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2FsbEZ1bmN0aW9uV2l0aEhlbGxh
RmxvYXRBcmd1bWVudHMpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoaWxsRGl2KToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RDaGlsbERpdlR3aWNlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RD
aGlsbERpdjY0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNb2RBcmcpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdE1vZEFyZ3MpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE1vZEltbXMpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdE1vZEFyZzMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNb2RB
cmdzMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE1vZEltbXMzMik6CisgICAgICAgIChKU0M6
OkIzOjp0ZXN0Q2hpbGxNb2RBcmcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoaWxsTW9kQXJn
cyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hpbGxNb2RJbW1zKToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RDaGlsbE1vZEFyZzMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDaGlsbE1vZEFy
Z3MzMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hpbGxNb2RJbW1zMzIpOgorICAgICAgICAo
SlNDOjpCMzo6dGVzdFN3aXRjaCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3dpdGNoQ2hpbGxE
aXYpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN3aXRjaFRhcmdldHRpbmdTYW1lQmxvY2spOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdFN3aXRjaFRhcmdldHRpbmdTYW1lQmxvY2tGb2xkUGF0aENv
bnN0YW50KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RUcnVuY0ZvbGQpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdFpFeHQzMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0WkV4dDMyRm9sZCk6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0U0V4dDMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTRXh0
MzJGb2xkKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RUcnVuY1pFeHQzMik6CisgICAgICAgIChK
U0M6OkIzOjp0ZXN0VHJ1bmNTRXh0MzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNFeHQ4KToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RTRXh0OEZvbGQpOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dFNFeHQ4U0V4dDgpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNFeHQ4U0V4dDE2KToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RTRXh0OEJpdEFuZCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0
QW5kU0V4dDgpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNFeHQxNik6CisgICAgICAgIChKU0M6
OkIzOjp0ZXN0U0V4dDE2Rm9sZCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U0V4dDE2U0V4dDE2
KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTRXh0MTZTRXh0OCk6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0U0V4dDE2Qml0QW5kKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRBbmRTRXh0MTYp
OgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNFeHQzMkJpdEFuZCk6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0Qml0QW5kU0V4dDMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCYXNpY1NlbGVjdCk6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U2VsZWN0VGVzdCk6CisgICAgICAgIChKU0M6OkIzOjp0
ZXN0U2VsZWN0Q29tcGFyZURvdWJsZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U2VsZWN0Q29t
cGFyZUZsb2F0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTZWxlY3RDb21wYXJlRmxvYXRUb0Rv
dWJsZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U2VsZWN0RG91YmxlKToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3RTZWxlY3REb3VibGVUZXN0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTZWxl
Y3REb3VibGVDb21wYXJlRG91YmxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTZWxlY3REb3Vi
bGVDb21wYXJlRmxvYXQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNlbGVjdEZsb2F0Q29tcGFy
ZUZsb2F0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTZWxlY3RGb2xkKToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3RTZWxlY3RJbnZlcnQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoZWNrU2Vs
ZWN0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDaGVja1NlbGVjdENoZWNrU2VsZWN0KToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RQb3dEb3VibGVCeUludGVnZXJMb29wKToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3RUcnVuY09ySGlnaCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0VHJ1bmNPckxv
dyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0QW5kT3JIaWdoKToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RCaXRBbmRPckxvdyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QnJhbmNoNjRFcXVh
bCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QnJhbmNoNjRFcXVhbEltbSk6CisgICAgICAgIChK
U0M6OkIzOjp0ZXN0QnJhbmNoNjRFcXVhbE1lbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QnJh
bmNoNjRFcXVhbE1lbUltbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3RvcmU4TG9hZDhaKToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdG9yZTE2TG9hZDE2Wik6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0U1NoclNobDMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTU2hyU2hsNjQpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdFRyaXZpYWxJbmZpbml0ZUxvb3ApOgorICAgICAgICAoSlNDOjpC
Mzo6dGVzdEZvbGRQYXRoRXF1YWwpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdExTaGlmdFNlbGYz
Mik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0UlNoaWZ0U2VsZjMyKToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RVUlNoaWZ0U2VsZjMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RMU2hpZnRTZWxm
NjQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFJTaGlmdFNlbGY2NCk6CisgICAgICAgIChKU0M6
OkIzOjp0ZXN0VVJTaGlmdFNlbGY2NCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0UGF0Y2hwb2lu
dERvdWJsZVJlZ3MpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNwaWxsRGVmU21hbGxlclRoYW5V
c2UpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNwaWxsVXNlTGFyZ2VyVGhhbkRlZik6CisgICAg
ICAgIChKU0M6OkIzOjp0ZXN0TGF0ZVJlZ2lzdGVyKToKKyAgICAgICAgKEpTQzo6QjM6OnRocmVh
ZGVkSW50ZXJwcmV0ZXJQcmludCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0VGhyZWFkZWRJbnRl
cnByZXRlcik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0UmVkdWNlU3RyZW5ndGhDaGVja0JvdHRv
bVVzZUluQW5vdGhlckJsb2NrKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RSZXNldFJlYWNoYWJp
bGl0eURhbmdsaW5nUmVmZXJlbmNlKToKKyAgICAgICAgKEpTQzo6QjM6OnJ1bik6CisgICAgICAg
ICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgICogZnRsL0ZUTE91dHB1dC5jcHA6
CisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0OjpqdW1wKToKKyAgICAgICAgKEpTQzo6RlRMOjpP
dXRwdXQ6OmJyYW5jaCk6CisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0OjpyZXQpOgorICAgICAg
ICAoSlNDOjpGVEw6Ok91dHB1dDo6dW5yZWFjaGFibGUpOgorICAgICAgICAoSlNDOjpGVEw6Ok91
dHB1dDo6c3BlY3VsYXRlKToKKyAgICAgICAgKEpTQzo6RlRMOjpPdXRwdXQ6OnRyYXApOgorICAg
ICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6YW5jaG9yKToKKyAgICAgICAgKEpTQzo6RlRMOjpPdXRw
dXQ6OmRlY3JlbWVudFN1cGVyU2FtcGxlckNvdW50KToKKyAgICAgICAgKEpTQzo6RlRMOjpPdXRw
dXQ6OmFkZEluY29taW5nVG9QaGkpOgorICAgICAgICAqIGZ0bC9GVExPdXRwdXQuaDoKKyAgICAg
ICAgKEpTQzo6RlRMOjpPdXRwdXQ6OmNvbnN0SW50UHRyKToKKyAgICAgICAgKEpTQzo6RlRMOjpP
dXRwdXQ6OmNhbGxXaXRob3V0U2lkZUVmZmVjdHMpOgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1
dDo6c3dpdGNoSW5zdHJ1Y3Rpb24pOgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6cGhpKToK
KyAgICAgICAgKEpTQzo6RlRMOjpPdXRwdXQ6OmFkZEluY29taW5nVG9QaGkpOgorCiAyMDE2LTA3
LTA4ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBHZW5lcmF0
ZSBXZWJDb3JlIGJ1aWx0aW4gd3JhcHBlciBmaWxlcwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
TWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMDgsNiArMTA4LDcgQEAgc2V0KEph
dmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICBiMy9CM0Jsb2NrSW5zZXJ0aW9uU2V0LmNwcAogICAg
IGIzL0IzQnJlYWtDcml0aWNhbEVkZ2VzLmNwcAogICAgIGIzL0IzQ0NhbGxWYWx1ZS5jcHAKKyAg
ICBiMy9CM0Nhc2VDb2xsZWN0aW9uLmNwcAogICAgIGIzL0IzQ2hlY2tTcGVjaWFsLmNwcAogICAg
IGIzL0IzQ2hlY2tWYWx1ZS5jcHAKICAgICBiMy9CM0NvbW1vbi5jcHAKQEAgLTExOCw3ICsxMTks
NiBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIGIzL0IzQ29uc3REb3VibGVWYWx1
ZS5jcHAKICAgICBiMy9CM0NvbnN0RmxvYXRWYWx1ZS5jcHAKICAgICBiMy9CM0NvbnN0cmFpbmVk
VmFsdWUuY3BwCi0gICAgYjMvQjNDb250cm9sVmFsdWUuY3BwCiAgICAgYjMvQjNEYXRhU2VjdGlv
bi5jcHAKICAgICBiMy9CM0R1cGxpY2F0ZVRhaWxzLmNwcAogICAgIGIzL0IzRWZmZWN0cy5jcHAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMDI4MDkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkod29ya2luZyBjb3B5KQpAQCAtNzczLDggKzc3Myw2IEBACiAJCTBGRUM4NTEwMUJEQUNE
QUMwMDgwRkY3NCAvKiBCM0NvbnN0NjRWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEZFQzg0QzYxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29uc3Q2
NFZhbHVlLmggKi87IH07CiAJCTBGRUM4NTExMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0RG91
YmxlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEZFQzg0QzcxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29uc3REb3VibGVWYWx1ZS5jcHAgKi87
IH07CiAJCTBGRUM4NTEyMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0RG91YmxlVmFsdWUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRUM4NEM4MUJE
QUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0RG91YmxlVmFsdWUuaCAqLzsgfTsKLQkJMEZFQzg1MTMx
QkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29udHJvbFZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRUM4NEM5MUJEQUNEQUMwMDgwRkY3NCAvKiBC
M0NvbnRyb2xWYWx1ZS5jcHAgKi87IH07Ci0JCTBGRUM4NTE0MUJEQUNEQUMwMDgwRkY3NCAvKiBC
M0NvbnRyb2xWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEZFQzg0Q0ExQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29udHJvbFZhbHVlLmggKi87IH07
CiAJCTBGRUM4NTE1MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0ZyZXF1ZW5jeUNsYXNzLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRUM4NENCMUJEQUNE
QUMwMDgwRkY3NCAvKiBCM0ZyZXF1ZW5jeUNsYXNzLmNwcCAqLzsgfTsKIAkJMEZFQzg1MTYxQkRB
Q0RBQzAwODBGRjc0IC8qIEIzRnJlcXVlbmN5Q2xhc3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRUM4NENDMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0Zy
ZXF1ZW5jeUNsYXNzLmggKi87IH07CiAJCTBGRUM4NTE3MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0Zy
ZXF1ZW50ZWRCbG9jay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEZFQzg0Q0QxQkRBQ0RBQzAwODBGRjc0IC8qIEIzRnJlcXVlbnRlZEJsb2NrLmggKi87
IH07CkBAIC0xOTk3LDYgKzE5OTUsOSBAQAogCQlEQzY5QUE2NjFDRjdBMUYyMDBDNjI3MkYgLyog
TWF0Y2hSZXN1bHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gREM2OUFBNjUxQ0Y3QTFFRjAwQzYyNzJGIC8qIE1hdGNoUmVzdWx0LmNwcCAqLzsgfTsK
IAkJREM3OTk3ODMxQ0RFOUZBMDAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDNzk5NzgyMUNERTlGOUUw
MDRENEEwOSAvKiBUYWdSZWdpc3RlcnNNb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJREM3OTk3ODQxQ0RFOUZBMjAwNEQ0QTA5IC8qIFRhZ1Jl
Z2lzdGVyc01vZGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gREM3OTk3ODExQ0RFOUY5RTAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuY3BwICov
OyB9OworCQlEQzlBMEMxRjFEMkQ5Q0IxMDA4NTEyNEUgLyogQjNDYXNlQ29sbGVjdGlvbklubGlu
ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDOUEw
QzFFMUQyRDk0RUYwMDg1MTI0RSAvKiBCM0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oICovOyB9Owor
CQlEQzlBMEMyMDFEMkQ5Q0IzMDA4NTEyNEUgLyogQjNDYXNlQ29sbGVjdGlvbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM5QTBDMUQxRDJEOTRFRjAw
ODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rpb24uaCAqLzsgfTsKKwkJREM5QTBDMjExRDJEOUNCNDAw
ODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gREM5QTBDMUMxRDJEOTRFRjAwODUxMjRFIC8qIEIzQ2FzZUNv
bGxlY3Rpb24uY3BwICovOyB9OwogCQlEQ0VFMjIwOTFDRUI5ODk1MDAwQzIzOTYgLyogREZHQmFj
a3dhcmRzQ0ZHLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBEQ0VFMjIwNjFDRUI5ODkwMDAwQzIzOTYgLyogREZHQmFja3dhcmRzQ0ZHLmggKi87IH07CiAJ
CURDRUUyMjBBMUNFQjk4OTUwMDBDMjM5NiAvKiBERkdCYWNrd2FyZHNEb21pbmF0b3JzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQ0VFMjIwNzFDRUI5
ODkwMDAwQzIzOTYgLyogREZHQmFja3dhcmRzRG9taW5hdG9ycy5oICovOyB9OwogCQlEQ0VFMjIw
QjFDRUI5ODk1MDAwQzIzOTYgLyogREZHQ29udHJvbEVxdWl2YWxlbmNlQW5hbHlzaXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDRUUyMjA4MUNFQjk4
OTAwMDBDMjM5NiAvKiBERkdDb250cm9sRXF1aXZhbGVuY2VBbmFseXNpcy5oICovOyB9OwpAQCAt
Mjk2NCw4ICsyOTY1LDYgQEAKIAkJMEZFQzg0QzYxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29uc3Q2
NFZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEIzQ29uc3Q2NFZhbHVl
Lmg7IHBhdGggPSBiMy9CM0NvbnN0NjRWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRkVDODRDNzFCREFDREFDMDA4MEZGNzQgLyogQjNDb25zdERvdWJsZVZhbHVlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEIzQ29uc3REb3VibGVWYWx1ZS5j
cHA7IHBhdGggPSBiMy9CM0NvbnN0RG91YmxlVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRkVDODRDODFCREFDREFDMDA4MEZGNzQgLyogQjNDb25zdERvdWJsZVZhbHVl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEIzQ29uc3REb3VibGVWYWx1ZS5o
OyBwYXRoID0gYjMvQjNDb25zdERvdWJsZVZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTBGRUM4NEM5MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnRyb2xWYWx1ZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBCM0NvbnRyb2xWYWx1ZS5jcHA7IHBh
dGggPSBiMy9CM0NvbnRyb2xWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTBGRUM4NENBMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnRyb2xWYWx1ZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBCM0NvbnRyb2xWYWx1ZS5oOyBwYXRoID0gYjMvQjNDb250
cm9sVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZFQzg0Q0IxQkRBQ0RB
QzAwODBGRjc0IC8qIEIzRnJlcXVlbmN5Q2xhc3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gQjNGcmVxdWVuY3lDbGFzcy5jcHA7IHBhdGggPSBiMy9CM0ZyZXF1ZW5j
eUNsYXNzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZFQzg0Q0MxQkRBQ0RB
QzAwODBGRjc0IC8qIEIzRnJlcXVlbmN5Q2xhc3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gQjNGcmVxdWVuY3lDbGFzcy5oOyBwYXRoID0gYjMvQjNGcmVxdWVuY3lDbGFzcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkVDODRDRDFCREFDREFDMDA4MEZGNzQg
LyogQjNGcmVxdWVudGVkQmxvY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
QjNGcmVxdWVudGVkQmxvY2suaDsgcGF0aCA9IGIzL0IzRnJlcXVlbnRlZEJsb2NrLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00MjI1LDYgKzQyMjQsOSBAQAogCQlEQzY5QUE2NTFD
RjdBMUVGMDBDNjI3MkYgLyogTWF0Y2hSZXN1bHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTWF0Y2hSZXN1bHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlEQzc5OTc4MTFDREU5RjlFMDA0RDRBMDkgLyogVGFnUmVnaXN0ZXJzTW9kZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUYWdSZWdpc3RlcnNNb2RlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREM3OTk3ODIxQ0RFOUY5RTAwNEQ0QTA5IC8q
IFRhZ1JlZ2lzdGVyc01vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGFn
UmVnaXN0ZXJzTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEQzlBMEMxQzFE
MkQ5NEVGMDA4NTEyNEUgLyogQjNDYXNlQ29sbGVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBCM0Nhc2VDb2xsZWN0aW9uLmNwcDsgcGF0aCA9IGIzL0IzQ2Fz
ZUNvbGxlY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEQzlBMEMxRDFE
MkQ5NEVGMDA4NTEyNEUgLyogQjNDYXNlQ29sbGVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBCM0Nhc2VDb2xsZWN0aW9uLmg7IHBhdGggPSBiMy9CM0Nhc2VDb2xsZWN0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCURDOUEwQzFFMUQyRDk0RUYwMDg1
MTI0RSAvKiBCM0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBCM0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oOyBwYXRoID0gYjMvQjNDYXNlQ29s
bGVjdGlvbklubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRENFRTIyMDYx
Q0VCOTg5MDAwMEMyMzk2IC8qIERGR0JhY2t3YXJkc0NGRy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBERkdCYWNrd2FyZHNDRkcuaDsgcGF0aCA9IGRmZy9ERkdCYWNrd2FyZHND
RkcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRENFRTIyMDcxQ0VCOTg5MDAwMEMy
Mzk2IC8qIERGR0JhY2t3YXJkc0RvbWluYXRvcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gREZHQmFja3dhcmRzRG9taW5hdG9ycy5oOyBwYXRoID0gZGZnL0RGR0JhY2t3YXJk
c0RvbWluYXRvcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRENFRTIyMDgxQ0VC
OTg5MDAwMEMyMzk2IC8qIERGR0NvbnRyb2xFcXVpdmFsZW5jZUFuYWx5c2lzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0NvbnRyb2xFcXVpdmFsZW5jZUFuYWx5c2lzLmg7
IHBhdGggPSBkZmcvREZHQ29udHJvbEVxdWl2YWxlbmNlQW5hbHlzaXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTQ2OTAsNiArNDY5Miw5IEBACiAJCQkJRENGREZCRDcxRDFGNUQ5
ODAwRkUzRDcyIC8qIEIzQm90dG9tUHJvdmlkZXIuaCAqLywKIAkJCQkwRjZCOEFERTFDNEVGRTE3
MDA5NjkwNTIgLyogQjNCcmVha0NyaXRpY2FsRWRnZXMuY3BwICovLAogCQkJCTBGNkI4QURGMUM0
RUZFMTcwMDk2OTA1MiAvKiBCM0JyZWFrQ3JpdGljYWxFZGdlcy5oICovLAorCQkJCURDOUEwQzFD
MUQyRDk0RUYwMDg1MTI0RSAvKiBCM0Nhc2VDb2xsZWN0aW9uLmNwcCAqLywKKwkJCQlEQzlBMEMx
RDFEMkQ5NEVGMDA4NTEyNEUgLyogQjNDYXNlQ29sbGVjdGlvbi5oICovLAorCQkJCURDOUEwQzFF
MUQyRDk0RUYwMDg1MTI0RSAvKiBCM0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oICovLAogCQkJCTBG
MzM4REY3MUJFOTZBQTgwMDEzQzg4RiAvKiBCM0NDYWxsVmFsdWUuY3BwICovLAogCQkJCTBGMzM4
REY4MUJFOTZBQTgwMDEzQzg4RiAvKiBCM0NDYWxsVmFsdWUuaCAqLywKIAkJCQkwRjMzRkNGOTFD
MTYyNUJFMDAzMjNGNjcgLyogQjNDRkcuaCAqLywKQEAgLTQ3MTUsOCArNDcyMCw2IEBACiAJCQkJ
MEZFQzg1QjIxQkRFRDk1NzAwODBGRjc0IC8qIEIzQ29uc3RQdHJWYWx1ZS5oICovLAogCQkJCTBG
MzM4REYzMUJFOTNENTUwMDEzQzg4RiAvKiBCM0NvbnN0cmFpbmVkVmFsdWUuY3BwICovLAogCQkJ
CTBGMzM4REY0MUJFOTNENTUwMDEzQzg4RiAvKiBCM0NvbnN0cmFpbmVkVmFsdWUuaCAqLywKLQkJ
CQkwRkVDODRDOTFCREFDREFDMDA4MEZGNzQgLyogQjNDb250cm9sVmFsdWUuY3BwICovLAotCQkJ
CTBGRUM4NENBMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnRyb2xWYWx1ZS5oICovLAogCQkJCTBG
MzM4RTAxMUJGMDI3NkMwMDEzQzg4RiAvKiBCM0RhdGFTZWN0aW9uLmNwcCAqLywKIAkJCQkwRjMz
OEUwMjFCRjAyNzZDMDAxM0M4OEYgLyogQjNEYXRhU2VjdGlvbi5oICovLAogCQkJCTBGMzNGQ0ZB
MUMxNjI1QkUwMDMyM0Y2NyAvKiBCM0RvbWluYXRvcnMuaCAqLywKQEAgLTcwNjgsNyArNzA3MSw2
IEBACiAJCQkJMEZFQzg1MTAxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29uc3Q2NFZhbHVlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkVDODUxMjFCREFDREFDMDA4MEZGNzQgLyogQjNDb25zdERvdWJs
ZVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODVCMzFCREVEOTU3MDA4MEZGNzQgLyog
QjNDb25zdFB0clZhbHVlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkVDODUxNDFCREFDREFDMDA4
MEZGNzQgLyogQjNDb250cm9sVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NUMxMUJF
MTY3QTAwMDgwRkY3NCAvKiBCM0VmZmVjdHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTE2
MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0ZyZXF1ZW5jeUNsYXNzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRjYxODMyRjFDNDVCRjA3MDA3MjQ1MEIgLyogQWlyTG93ZXJBZnRlclJlZ0FsbG9jLmggaW4g
SGVhZGVycyAqLywKQEAgLTcyMjUsNiArNzIyNyw3IEBACiAJCQkJQkMxOEMzRkIwRTE2RjVDRDAw
QjM0NDYwIC8qIERlYnVnZ2VyQ2FsbEZyYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQk2QUQyQ0I0
RDE5QjkxNDAxMDAwNjU3MTkgLyogRGVidWdnZXJFdmFsRW5hYmxlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRkVBMDg2MjExODJCN0EwNDAwRjZEODUxIC8qIERlYnVnZ2VyUHJpbWl0aXZlcy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJREM5QTBDMUYxRDJEOUNCMTAwODUxMjRFIC8qIEIzQ2FzZUNvbGxl
Y3Rpb25JbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJENERERTE5ODMyRDM0MDA3RDRC
MTkgLyogRGVidWdnZXJTY29wZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYxMzZENEQxNzRBRDY5
RTAwNzVCMzU0IC8qIERlZmVyR0MuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzcxMkRGMTdDRDg3
N0MwMDhDQzkzQyAvKiBEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaCBpbiBIZWFkZXJzICov
LApAQCAtNzQ3OCw2ICs3NDgxLDcgQEAKIAkJCQkwRkUwRTRBRTFDMjRDOTRBMDAyRTE3QjYgLyog
QWlyVG1wV2lkdGguaCBpbiBIZWFkZXJzICovLAogCQkJCUE3RjI5OTZDMTdBMEJCNjcwMDEwNDE3
QSAvKiBGVExGYWlsLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVBMEEyQzE3MEI2NjE5MDBCQjcy
MkMgLyogRlRMRm9ybWF0dGVkVmFsdWUuaCBpbiBIZWFkZXJzICovLAorCQkJCURDOUEwQzIwMUQy
RDlDQjMwMDg1MTI0RSAvKiBCM0Nhc2VDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RkQ4QTMxQTE3RDUxRjIyMDBDQTJDNDAgLyogRlRMRm9yT1NSRW50cnlKSVRDb2RlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBNzhBOTc3RjE3OTczOEQ1MDA5REY3NDQgLyogRlRMR2VuZXJhdGVkRnVu
Y3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUEwQTBFMTcwNTEzREIwMEJCNzIyQyAvKiBG
VExKSVRDb2RlLmggaW4gSGVhZGVycyAqLywKQEAgLTg3MTEsNyArODcxNSw2IEBACiAJCQkJNDM2
RTU0NTQxQzQ2OEU3NzAwQjVBRjczIC8qIEIzTGVnYWxpemVNZW1vcnlPZmZzZXRzLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTBGRUM4NTBGMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0NjRWYWx1
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkVDODUxMTFCREFDREFDMDA4MEZGNzQgLyogQjND
b25zdERvdWJsZVZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBGRUM4NTEzMUJEQUNEQUMw
MDgwRkY3NCAvKiBCM0NvbnRyb2xWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkVDODVD
NTFCRTE2RjVBMDA4MEZGNzQgLyogQjNFZmZlY3RzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBG
RUM4NTE1MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0ZyZXF1ZW5jeUNsYXNzLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTBGRUM4NTE4MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0dlbmVyYXRlLmNwcCBpbiBT
b3VyY2VzICovLApAQCAtOTE1Niw2ICs5MTU5LDcgQEAKIAkJCQkxNDdGMzlEMjEwN0VDMzc2MDA0
MjdBNDggLyogSlNHbG9iYWxPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVGRDAwODUx
ODlCMUI3RTAwNjMzMjMxIC8qIEpTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUE1QzNBMUE1MThDMDQ5MDIwMEM5NTkzQSAvKiBKU0dsb2JhbE9iamVjdENv
bnNvbGVDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJREM5QTBDMjExRDJEOUNCNDAwODUx
MjRFIC8qIEIzQ2FzZUNvbGxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTU5NDU1OTIx
ODI0NzQ0NzAwQ0MzODQzIC8qIEpTR2xvYmFsT2JqZWN0RGVidWdnYWJsZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlBNTdEMjNFOTE4OTFCMDc3MDAzMUM3RkEgLyogSlNHbG9iYWxPYmplY3REZWJ1
Z2dlckFnZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0RTlEMTdCMTA3RUM0NjkwMDREREEy
MSAvKiBKU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJB
Uk02NC5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAkod29ya2luZyBjb3B5KQpAQCAtMjg3NCw2ICsyODc0
LDEyIEBAIHB1YmxpYzoKICAgICAgICAgbG9hZDY0KGFkZHJlc3MsIGdldENhY2hlZERhdGFUZW1w
UmVnaXN0ZXJJREFuZEludmFsaWRhdGUoKSk7CiAgICAgICAgIG1fYXNzZW1ibGVyLmJyKGRhdGFU
ZW1wUmVnaXN0ZXIpOwogICAgIH0KKyAgICAKKyAgICB2b2lkIGp1bXAoQmFzZUluZGV4IGFkZHJl
c3MpCisgICAgeworICAgICAgICBsb2FkNjQoYWRkcmVzcywgZ2V0Q2FjaGVkRGF0YVRlbXBSZWdp
c3RlcklEQW5kSW52YWxpZGF0ZSgpKTsKKyAgICAgICAgbV9hc3NlbWJsZXIuYnIoZGF0YVRlbXBS
ZWdpc3Rlcik7CisgICAgfQogCiAgICAgdm9pZCBqdW1wKEFic29sdXRlQWRkcmVzcyBhZGRyZXNz
KQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJYODZDb21tb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaAko
d29ya2luZyBjb3B5KQpAQCAtMjI2Myw2ICsyMjYzLDEyIEBAIHB1YmxpYzoKICAgICAgICAgbV9h
c3NlbWJsZXIuam1wX20oYWRkcmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFzZSk7CiAgICAgfQogCisg
ICAgLy8gQWRkcmVzcyBpcyBhIG1lbW9yeSBsb2NhdGlvbiBjb250YWluaW5nIHRoZSBhZGRyZXNz
IHRvIGp1bXAgdG8KKyAgICB2b2lkIGp1bXAoQmFzZUluZGV4IGFkZHJlc3MpCisgICAgeworICAg
ICAgICBtX2Fzc2VtYmxlci5qbXBfbShhZGRyZXNzLm9mZnNldCwgYWRkcmVzcy5iYXNlLCBhZGRy
ZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKKyAgICB9CisKIAogICAgIC8vIEFyaXRobWV0aWMg
Y29udHJvbCBmbG93IG9wZXJhdGlvbnM6CiAgICAgLy8KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaAkocmV2aXNpb24gMjAyODA5KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaAkod29ya2luZyBj
b3B5KQpAQCAtMTk4Myw2ICsxOTgzLDExIEBAIHB1YmxpYzoKICAgICAgICAgbV9mb3JtYXR0ZXIu
b25lQnl0ZU9wKE9QX0dST1VQNV9FdiwgR1JPVVA1X09QX0pNUE4sIGJhc2UsIG9mZnNldCk7CiAg
ICAgfQogICAgIAorICAgIHZvaWQgam1wX20oaW50IG9mZnNldCwgUmVnaXN0ZXJJRCBiYXNlLCBS
ZWdpc3RlcklEIGluZGV4LCBpbnQgc2NhbGUpCisgICAgeworICAgICAgICBtX2Zvcm1hdHRlci5v
bmVCeXRlT3AoT1BfR1JPVVA1X0V2LCBHUk9VUDVfT1BfSk1QTiwgYmFzZSwgaW5kZXgsIHNjYWxl
LCBvZmZzZXQpOworICAgIH0KKyAgICAKICNpZiAhQ1BVKFg4Nl82NCkKICAgICB2b2lkIGptcF9t
KGNvbnN0IHZvaWQqIGFkZHJlc3MpCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzQmFzaWNCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzQmFzaWNCbG9jay5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw2
IEBACiAKICNpbmNsdWRlICJCM0Jhc2ljQmxvY2tJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNCYXNp
Y0Jsb2NrVXRpbHMuaCIKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIz
UHJvY2VkdXJlLmgiCiAjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlIDx3dGYv
TGlzdER1bXAuaD4KQEAgLTUyLDEyICs1MSwxNCBAQCBCYXNpY0Jsb2NrOjp+QmFzaWNCbG9jaygp
CiB2b2lkIEJhc2ljQmxvY2s6OmFwcGVuZChWYWx1ZSogdmFsdWUpCiB7CiAgICAgbV92YWx1ZXMu
YXBwZW5kKHZhbHVlKTsKKyAgICB2YWx1ZS0+b3duZXIgPSB0aGlzOwogfQogCiB2b2lkIEJhc2lj
QmxvY2s6OmFwcGVuZE5vblRlcm1pbmFsKFZhbHVlKiB2YWx1ZSkKIHsKICAgICBtX3ZhbHVlcy5h
cHBlbmQobV92YWx1ZXMubGFzdCgpKTsKICAgICBtX3ZhbHVlc1ttX3ZhbHVlcy5zaXplKCkgLSAx
XSA9IHZhbHVlOworICAgIHZhbHVlLT5vd25lciA9IHRoaXM7CiB9CiAKIHZvaWQgQmFzaWNCbG9j
azo6cmVtb3ZlTGFzdChQcm9jZWR1cmUmIHByb2MpCkBAIC04NCw5ICs4NSw0MSBAQCBWYWx1ZSog
QmFzaWNCbG9jazo6YXBwZW5kSW50Q29uc3RhbnQoUHJvCiAgICAgcmV0dXJuIGFwcGVuZEludENv
bnN0YW50KHByb2MsIGxpa2VWYWx1ZS0+b3JpZ2luKCksIGxpa2VWYWx1ZS0+dHlwZSgpLCB2YWx1
ZSk7CiB9CiAKK3ZvaWQgQmFzaWNCbG9jazo6Y2xlYXJTdWNjZXNzb3JzKCkKK3sKKyAgICBtX3N1
Y2Nlc3NvcnMuY2xlYXIoKTsKK30KKwordm9pZCBCYXNpY0Jsb2NrOjphcHBlbmRTdWNjZXNzb3Io
Y29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YXJnZXQpCit7CisgICAgbV9zdWNjZXNzb3JzLmFwcGVu
ZCh0YXJnZXQpOworfQorCit2b2lkIEJhc2ljQmxvY2s6OnNldFN1Y2Nlc3NvcnMoY29uc3QgRnJl
cXVlbnRlZEJsb2NrJiB0YXJnZXQpCit7CisgICAgbV9zdWNjZXNzb3JzLnJlc2l6ZSgxKTsKKyAg
ICBtX3N1Y2Nlc3NvcnNbMF0gPSB0YXJnZXQ7Cit9CisKK3ZvaWQgQmFzaWNCbG9jazo6c2V0U3Vj
Y2Vzc29ycyhjb25zdCBGcmVxdWVudGVkQmxvY2smIHRha2VuLCBjb25zdCBGcmVxdWVudGVkQmxv
Y2smIG5vdFRha2VuKQoreworICAgIG1fc3VjY2Vzc29ycy5yZXNpemUoMik7CisgICAgbV9zdWNj
ZXNzb3JzWzBdID0gdGFrZW47CisgICAgbV9zdWNjZXNzb3JzWzFdID0gbm90VGFrZW47Cit9CisK
IGJvb2wgQmFzaWNCbG9jazo6cmVwbGFjZVN1Y2Nlc3NvcihCYXNpY0Jsb2NrKiBmcm9tLCBCYXNp
Y0Jsb2NrKiB0bykKIHsKLSAgICByZXR1cm4gbGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCktPnJl
cGxhY2VTdWNjZXNzb3IoZnJvbSwgdG8pOworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAg
Zm9yIChCYXNpY0Jsb2NrKiYgc3VjY2Vzc29yIDogc3VjY2Vzc29yQmxvY2tzKCkpIHsKKyAgICAg
ICAgaWYgKHN1Y2Nlc3NvciA9PSBmcm9tKSB7CisgICAgICAgICAgICBzdWNjZXNzb3IgPSB0bzsK
KyAgICAgICAgICAgIHJlc3VsdCA9IHRydWU7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8v
IEtlZXAgbG9vcGluZyBiZWNhdXNlIGEgc3VjY2Vzc29yIG1heSBiZSBtZW50aW9uZWQgbXVsdGlw
bGUgdGltZXMsIGxpa2UgaW4gYSBTd2l0Y2guCisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJu
IHJlc3VsdDsKIH0KIAogYm9vbCBCYXNpY0Jsb2NrOjphZGRQcmVkZWNlc3NvcihCYXNpY0Jsb2Nr
KiBibG9jaykKQEAgLTEyMSw2ICsxNTQsNDIgQEAgdm9pZCBCYXNpY0Jsb2NrOjpkZWVwRHVtcChj
b25zdCBQcm9jZWR1cgogICAgICAgICBvdXQucHJpbnQoIiAgUHJlZGVjZXNzb3JzOiAiLCBwb2lu
dGVyTGlzdER1bXAocHJlZGVjZXNzb3JzKCkpLCAiXG4iKTsKICAgICBmb3IgKFZhbHVlKiB2YWx1
ZSA6ICp0aGlzKQogICAgICAgICBvdXQucHJpbnQoIiAgICAiLCBCMzo6ZGVlcER1bXAocHJvYywg
dmFsdWUpLCAiXG4iKTsKKyAgICBpZiAoc3VjY2Vzc29ycygpLnNpemUoKSkgeworICAgICAgICBv
dXQucHJpbnQoIiAgU3VjY2Vzc29yczogIik7CisgICAgICAgIGlmIChzaXplKCkpCisgICAgICAg
ICAgICBsYXN0KCktPmR1bXBTdWNjZXNzb3JzKHRoaXMsIG91dCk7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIG91dC5wcmludChsaXN0RHVtcChzdWNjZXNzb3JzKCkpKTsKKyAgICAgICAgb3V0
LnByaW50KCJcbiIpOworICAgIH0KK30KKworVmFsdWUqIEJhc2ljQmxvY2s6OmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShQcm9jZWR1cmUmIHByb2MsIE9wY29kZSBvcGNvZGUsIE9yaWdpbiBvcmlnaW4p
Cit7CisgICAgUkVMRUFTRV9BU1NFUlQob3Bjb2RlID09IE9vcHMpOworICAgIGNsZWFyU3VjY2Vz
c29ycygpOworICAgIHJldHVybiBhcHBlbmROZXc8VmFsdWU+KHByb2MsIG9wY29kZSwgb3JpZ2lu
KTsKK30KKworVmFsdWUqIEJhc2ljQmxvY2s6OmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShQcm9jZWR1
cmUmIHByb2MsIE9wY29kZSBvcGNvZGUsIE9yaWdpbiBvcmlnaW4sIFZhbHVlKiB2YWx1ZSkKK3sK
KyAgICBSRUxFQVNFX0FTU0VSVChvcGNvZGUgPT0gUmV0dXJuKTsKKyAgICBjbGVhclN1Y2Nlc3Nv
cnMoKTsKKyAgICByZXR1cm4gYXBwZW5kTmV3PFZhbHVlPihwcm9jLCBvcGNvZGUsIG9yaWdpbiwg
dmFsdWUpOworfQorCitWYWx1ZSogQmFzaWNCbG9jazo6YXBwZW5kTmV3Q29udHJvbFZhbHVlKFBy
b2NlZHVyZSYgcHJvYywgT3Bjb2RlIG9wY29kZSwgT3JpZ2luIG9yaWdpbiwgY29uc3QgRnJlcXVl
bnRlZEJsb2NrJiB0YXJnZXQpCit7CisgICAgUkVMRUFTRV9BU1NFUlQob3Bjb2RlID09IEp1bXAp
OworICAgIHNldFN1Y2Nlc3NvcnModGFyZ2V0KTsKKyAgICByZXR1cm4gYXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBvcGNvZGUsIG9yaWdpbik7Cit9CisKK1ZhbHVlKiBCYXNpY0Jsb2NrOjphcHBlbmRO
ZXdDb250cm9sVmFsdWUoUHJvY2VkdXJlJiBwcm9jLCBPcGNvZGUgb3Bjb2RlLCBPcmlnaW4gb3Jp
Z2luLCBWYWx1ZSogcHJlZGljYXRlLCBjb25zdCBGcmVxdWVudGVkQmxvY2smIHRha2VuLCBjb25z
dCBGcmVxdWVudGVkQmxvY2smIG5vdFRha2VuKQoreworICAgIFJFTEVBU0VfQVNTRVJUKG9wY29k
ZSA9PSBCcmFuY2gpOworICAgIHNldFN1Y2Nlc3NvcnModGFrZW4sIG5vdFRha2VuKTsKKyAgICBy
ZXR1cm4gYXBwZW5kTmV3PFZhbHVlPihwcm9jLCBvcGNvZGUsIG9yaWdpbiwgcHJlZGljYXRlKTsK
IH0KIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNCYXNpY0Jsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzQmFzaWNCbG9jay5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNCYXNpY0Jsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAK
ICNpZiBFTkFCTEUoQjNfSklUKQogCiAjaW5jbHVkZSAiQjNGcmVxdWVudGVkQmxvY2suaCIKKyNp
bmNsdWRlICJCM09wY29kZS5oIgogI2luY2x1ZGUgIkIzT3JpZ2luLmgiCiAjaW5jbHVkZSAiQjNT
dWNjZXNzb3JDb2xsZWN0aW9uLmgiCiAjaW5jbHVkZSAiQjNUeXBlLmgiCkBAIC00Nyw3ICs0OCw3
IEBAIGNsYXNzIEJhc2ljQmxvY2sgewogcHVibGljOgogICAgIHR5cGVkZWYgVmVjdG9yPFZhbHVl
Kj4gVmFsdWVMaXN0OwogICAgIHR5cGVkZWYgVmVjdG9yPEJhc2ljQmxvY2sqLCAyPiBQcmVkZWNl
c3Nvckxpc3Q7Ci0gICAgdHlwZWRlZiBWZWN0b3I8RnJlcXVlbnRlZEJsb2NrLCAyPiBTdWNjZXNz
b3JMaXN0OyAvLyBUaGlzIG1hdGNoZXMgQ29udHJvbFZhbHVlOjpTdWNjZXNzb3JMaXN0CisgICAg
dHlwZWRlZiBWZWN0b3I8RnJlcXVlbnRlZEJsb2NrLCAyPiBTdWNjZXNzb3JMaXN0OwogCiAgICAg
c3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGR1bXBQcmVmaXg7CiAKQEAgLTc4LDcgKzc5LDcgQEAg
cHVibGljOgogICAgIFZhbHVlVHlwZSogYXBwZW5kTmV3KFByb2NlZHVyZSYsIEFyZ3VtZW50cy4u
Lik7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVmFsdWVUeXBlLCB0eXBlbmFtZS4uLiBBcmd1bWVu
dHM+CiAgICAgVmFsdWVUeXBlKiBhcHBlbmROZXdOb25UZXJtaW5hbChQcm9jZWR1cmUmLCBBcmd1
bWVudHMuLi4pOwotCisgICAgCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgVmFsdWUqIGFwcGVuZElu
dENvbnN0YW50KFByb2NlZHVyZSYsIE9yaWdpbiwgVHlwZSwgaW50NjRfdCB2YWx1ZSk7CiAgICAg
VmFsdWUqIGFwcGVuZEludENvbnN0YW50KFByb2NlZHVyZSYsIFZhbHVlKiBsaWtlVmFsdWUsIGlu
dDY0X3QgdmFsdWUpOwogCkBAIC04NywxOCArODgsMzkgQEAgcHVibGljOgogICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5hbWUuLi4gQXJndW1lbnRzPgogICAgIFZhbHVlVHlw
ZSogcmVwbGFjZUxhc3RXaXRoTmV3KFByb2NlZHVyZSYsIEFyZ3VtZW50cy4uLik7CiAKLSAgICB1
bnNpZ25lZCBudW1TdWNjZXNzb3JzKCkgY29uc3Q7Ci0gICAgY29uc3QgRnJlcXVlbnRlZEJsb2Nr
JiBzdWNjZXNzb3IodW5zaWduZWQgaW5kZXgpIGNvbnN0OwotICAgIEZyZXF1ZW50ZWRCbG9jayYg
c3VjY2Vzc29yKHVuc2lnbmVkIGluZGV4KTsKLSAgICBjb25zdCBTdWNjZXNzb3JMaXN0JiBzdWNj
ZXNzb3JzKCkgY29uc3Q7Ci0gICAgU3VjY2Vzc29yTGlzdCYgc3VjY2Vzc29ycygpOwotCi0gICAg
QmFzaWNCbG9jayogc3VjY2Vzc29yQmxvY2sodW5zaWduZWQgaW5kZXgpIGNvbnN0OwotICAgIEJh
c2ljQmxvY2sqJiBzdWNjZXNzb3JCbG9jayh1bnNpZ25lZCBpbmRleCk7Ci0gICAgU3VjY2Vzc29y
Q29sbGVjdGlvbjxCYXNpY0Jsb2NrLCBTdWNjZXNzb3JMaXN0PiBzdWNjZXNzb3JCbG9ja3MoKTsK
LSAgICBTdWNjZXNzb3JDb2xsZWN0aW9uPGNvbnN0IEJhc2ljQmxvY2ssIGNvbnN0IFN1Y2Nlc3Nv
ckxpc3Q+IHN1Y2Nlc3NvckJsb2NrcygpIGNvbnN0OworICAgIHVuc2lnbmVkIG51bVN1Y2Nlc3Nv
cnMoKSBjb25zdCB7IHJldHVybiBtX3N1Y2Nlc3NvcnMuc2l6ZSgpOyB9CisgICAgY29uc3QgRnJl
cXVlbnRlZEJsb2NrJiBzdWNjZXNzb3IodW5zaWduZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1f
c3VjY2Vzc29yc1tpbmRleF07IH0KKyAgICBGcmVxdWVudGVkQmxvY2smIHN1Y2Nlc3Nvcih1bnNp
Z25lZCBpbmRleCkgeyByZXR1cm4gbV9zdWNjZXNzb3JzW2luZGV4XTsgfQorICAgIGNvbnN0IFN1
Y2Nlc3Nvckxpc3QmIHN1Y2Nlc3NvcnMoKSBjb25zdCB7IHJldHVybiBtX3N1Y2Nlc3NvcnM7IH0K
KyAgICBTdWNjZXNzb3JMaXN0JiBzdWNjZXNzb3JzKCkgeyByZXR1cm4gbV9zdWNjZXNzb3JzOyB9
CisgICAgCisgICAgdm9pZCBjbGVhclN1Y2Nlc3NvcnMoKTsKKyAgICBKU19FWFBPUlRfUFJJVkFU
RSB2b2lkIGFwcGVuZFN1Y2Nlc3Nvcihjb25zdCBGcmVxdWVudGVkQmxvY2smKTsKKyAgICB2b2lk
IHNldFN1Y2Nlc3NvcnMoY29uc3QgRnJlcXVlbnRlZEJsb2NrJik7CisgICAgdm9pZCBzZXRTdWNj
ZXNzb3JzKGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYsIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYpOwor
CisgICAgQmFzaWNCbG9jayogc3VjY2Vzc29yQmxvY2sodW5zaWduZWQgaW5kZXgpIGNvbnN0IHsg
cmV0dXJuIHN1Y2Nlc3NvcihpbmRleCkuYmxvY2soKTsgfQorICAgIEJhc2ljQmxvY2sqJiBzdWNj
ZXNzb3JCbG9jayh1bnNpZ25lZCBpbmRleCkgeyByZXR1cm4gc3VjY2Vzc29yKGluZGV4KS5ibG9j
aygpOyB9CisgICAgU3VjY2Vzc29yQ29sbGVjdGlvbjxCYXNpY0Jsb2NrLCBTdWNjZXNzb3JMaXN0
PiBzdWNjZXNzb3JCbG9ja3MoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIFN1Y2Nlc3NvckNvbGxl
Y3Rpb248QmFzaWNCbG9jaywgU3VjY2Vzc29yTGlzdD4oc3VjY2Vzc29ycygpKTsKKyAgICB9Cisg
ICAgU3VjY2Vzc29yQ29sbGVjdGlvbjxjb25zdCBCYXNpY0Jsb2NrLCBjb25zdCBTdWNjZXNzb3JM
aXN0PiBzdWNjZXNzb3JCbG9ja3MoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIFN1Y2Nl
c3NvckNvbGxlY3Rpb248Y29uc3QgQmFzaWNCbG9jaywgY29uc3QgU3VjY2Vzc29yTGlzdD4oc3Vj
Y2Vzc29ycygpKTsKKyAgICB9CiAKICAgICBib29sIHJlcGxhY2VTdWNjZXNzb3IoQmFzaWNCbG9j
ayogZnJvbSwgQmFzaWNCbG9jayogdG8pOworICAgIAorICAgIC8vIFRoaXMgaXMgb25seSB2YWxp
ZCBmb3IgSnVtcCBhbmQgQnJhbmNoLgorICAgIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgdGFrZW4o
KSBjb25zdDsKKyAgICBGcmVxdWVudGVkQmxvY2smIHRha2VuKCk7CisgICAgLy8gVGhpcyBpcyBv
bmx5IHZhbGlkIGZvciBCcmFuY2guCisgICAgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBub3RUYWtl
bigpIGNvbnN0OworICAgIEZyZXF1ZW50ZWRCbG9jayYgbm90VGFrZW4oKTsKKyAgICAvLyBUaGlz
IGlzIG9ubHkgdmFsaWQgZm9yIEJyYW5jaCBhbmQgU3dpdGNoLgorICAgIGNvbnN0IEZyZXF1ZW50
ZWRCbG9jayYgZmFsbFRocm91Z2goKSBjb25zdDsKKyAgICBGcmVxdWVudGVkQmxvY2smIGZhbGxU
aHJvdWdoKCk7CiAKICAgICB1bnNpZ25lZCBudW1QcmVkZWNlc3NvcnMoKSBjb25zdCB7IHJldHVy
biBtX3ByZWRlY2Vzc29ycy5zaXplKCk7IH0KICAgICBCYXNpY0Jsb2NrKiBwcmVkZWNlc3Nvcih1
bnNpZ25lZCBpbmRleCkgY29uc3QgeyByZXR1cm4gbV9wcmVkZWNlc3NvcnNbaW5kZXhdOyB9CkBA
IC0xMTUsMTAgKzEzNywyMyBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVQcmVkZWNlc3NvcnNB
ZnRlcigpOwogCiAgICAgZG91YmxlIGZyZXF1ZW5jeSgpIGNvbnN0IHsgcmV0dXJuIG1fZnJlcXVl
bmN5OyB9Ci0KKyAgICAKICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKICAgICB2
b2lkIGRlZXBEdW1wKGNvbnN0IFByb2NlZHVyZSYsIFByaW50U3RyZWFtJikgY29uc3Q7CiAKKyAg
ICAvLyBUaGVzZSBhcmUgZGVwcmVjYXRlZCBtZXRob2QgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCB0
aGUgb2xkIENvbnRyb2xWYWx1ZSBjbGFzcy4gRG9uJ3QgdXNlIHRoZW0KKyAgICAvLyBpbiBuZXcg
Y29kZS4KKyAgICAvLyBGSVhNRTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE1OTQ0MAorICAgIAorICAgIC8vIFVzZSB0aGlzIGZvciBPb3BzLgorICAgIEpTX0VYUE9S
VF9QUklWQVRFIFZhbHVlKiBhcHBlbmROZXdDb250cm9sVmFsdWUoUHJvY2VkdXJlJiwgT3Bjb2Rl
LCBPcmlnaW4pOworICAgIC8vIFVzZSB0aGlzIGZvciBSZXR1cm4uCisgICAgSlNfRVhQT1JUX1BS
SVZBVEUgVmFsdWUqIGFwcGVuZE5ld0NvbnRyb2xWYWx1ZShQcm9jZWR1cmUmLCBPcGNvZGUsIE9y
aWdpbiwgVmFsdWUqKTsKKyAgICAvLyBVc2UgdGhpcyBmb3IgSnVtcC4KKyAgICBKU19FWFBPUlRf
UFJJVkFURSBWYWx1ZSogYXBwZW5kTmV3Q29udHJvbFZhbHVlKFByb2NlZHVyZSYsIE9wY29kZSwg
T3JpZ2luLCBjb25zdCBGcmVxdWVudGVkQmxvY2smKTsKKyAgICAvLyBVc2UgdGhpcyBmb3IgQnJh
bmNoLgorICAgIEpTX0VYUE9SVF9QUklWQVRFIFZhbHVlKiBhcHBlbmROZXdDb250cm9sVmFsdWUo
UHJvY2VkdXJlJiwgT3Bjb2RlLCBPcmlnaW4sIFZhbHVlKiwgY29uc3QgRnJlcXVlbnRlZEJsb2Nr
JiwgY29uc3QgRnJlcXVlbnRlZEJsb2NrJik7CisgICAgCiBwcml2YXRlOgogICAgIGZyaWVuZCBj
bGFzcyBCbG9ja0luc2VydGlvblNldDsKICAgICBmcmllbmQgY2xhc3MgSW5zZXJ0aW9uU2V0OwpA
QCAtMTMwLDYgKzE2NSw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9pbmRleDsKICAgICBW
YWx1ZUxpc3QgbV92YWx1ZXM7CiAgICAgUHJlZGVjZXNzb3JMaXN0IG1fcHJlZGVjZXNzb3JzOwor
ICAgIFN1Y2Nlc3Nvckxpc3QgbV9zdWNjZXNzb3JzOwogICAgIGRvdWJsZSBtX2ZyZXF1ZW5jeTsK
IH07CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2tJbmxpbmVz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9ja0lu
bGluZXMuaAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
QmFzaWNCbG9ja0lubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjksOCArMjksOCBAQAogI2lm
IEVOQUJMRShCM19KSVQpCiAKICNpbmNsdWRlICJCM0Jhc2ljQmxvY2suaCIKLSNpbmNsdWRlICJC
M0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJlSW5saW5lcy5oIgorI2luY2x1
ZGUgIkIzVmFsdWUuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKQEAgLTU4
LDQ5ICs1OCw0MCBAQCBWYWx1ZVR5cGUqIEJhc2ljQmxvY2s6OnJlcGxhY2VMYXN0V2l0aE5lCiAg
ICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotaW5saW5lIHVuc2lnbmVkIEJhc2ljQmxvY2s6Om51bVN1
Y2Nlc3NvcnMoKSBjb25zdAoraW5saW5lIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgQmFzaWNCbG9j
azo6dGFrZW4oKSBjb25zdAogewotICAgIHJldHVybiBsYXN0KCktPmFzPENvbnRyb2xWYWx1ZT4o
KS0+bnVtU3VjY2Vzc29ycygpOworICAgIEFTU0VSVChsYXN0KCktPm9wY29kZSgpID09IEp1bXAg
fHwgbGFzdCgpLT5vcGNvZGUoKSA9PSBCcmFuY2gpOworICAgIHJldHVybiBtX3N1Y2Nlc3NvcnNb
MF07CiB9CiAKLWlubGluZSBjb25zdCBGcmVxdWVudGVkQmxvY2smIEJhc2ljQmxvY2s6OnN1Y2Nl
c3Nvcih1bnNpZ25lZCBpbmRleCkgY29uc3QKK2lubGluZSBGcmVxdWVudGVkQmxvY2smIEJhc2lj
QmxvY2s6OnRha2VuKCkKIHsKLSAgICByZXR1cm4gbGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCkt
PnN1Y2Nlc3NvcihpbmRleCk7CisgICAgQVNTRVJUKGxhc3QoKS0+b3Bjb2RlKCkgPT0gSnVtcCB8
fCBsYXN0KCktPm9wY29kZSgpID09IEJyYW5jaCk7CisgICAgcmV0dXJuIG1fc3VjY2Vzc29yc1sw
XTsKIH0KIAotaW5saW5lIEZyZXF1ZW50ZWRCbG9jayYgQmFzaWNCbG9jazo6c3VjY2Vzc29yKHVu
c2lnbmVkIGluZGV4KQoraW5saW5lIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgQmFzaWNCbG9jazo6
bm90VGFrZW4oKSBjb25zdAogewotICAgIHJldHVybiBsYXN0KCktPmFzPENvbnRyb2xWYWx1ZT4o
KS0+c3VjY2Vzc29yKGluZGV4KTsKKyAgICBBU1NFUlQobGFzdCgpLT5vcGNvZGUoKSA9PSBCcmFu
Y2gpOworICAgIHJldHVybiBtX3N1Y2Nlc3NvcnNbMV07CiB9CiAKLWlubGluZSBjb25zdCBCYXNp
Y0Jsb2NrOjpTdWNjZXNzb3JMaXN0JiBCYXNpY0Jsb2NrOjpzdWNjZXNzb3JzKCkgY29uc3QKK2lu
bGluZSBGcmVxdWVudGVkQmxvY2smIEJhc2ljQmxvY2s6Om5vdFRha2VuKCkKIHsKLSAgICByZXR1
cm4gbGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCktPnN1Y2Nlc3NvcnMoKTsKKyAgICBBU1NFUlQo
bGFzdCgpLT5vcGNvZGUoKSA9PSBCcmFuY2gpOworICAgIHJldHVybiBtX3N1Y2Nlc3NvcnNbMV07
CiB9CiAKLWlubGluZSBCYXNpY0Jsb2NrOjpTdWNjZXNzb3JMaXN0JiBCYXNpY0Jsb2NrOjpzdWNj
ZXNzb3JzKCkKK2lubGluZSBjb25zdCBGcmVxdWVudGVkQmxvY2smIEJhc2ljQmxvY2s6OmZhbGxU
aHJvdWdoKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCkt
PnN1Y2Nlc3NvcnMoKTsKKyAgICBBU1NFUlQobGFzdCgpLT5vcGNvZGUoKSA9PSBCcmFuY2ggfHwg
bGFzdCgpLT5vcGNvZGUoKSA9PSBTd2l0Y2gpOworICAgIHJldHVybiBtX3N1Y2Nlc3NvcnMubGFz
dCgpOwogfQogCi1pbmxpbmUgQmFzaWNCbG9jayogQmFzaWNCbG9jazo6c3VjY2Vzc29yQmxvY2so
dW5zaWduZWQgaW5kZXgpIGNvbnN0CitpbmxpbmUgRnJlcXVlbnRlZEJsb2NrJiBCYXNpY0Jsb2Nr
OjpmYWxsVGhyb3VnaCgpCiB7Ci0gICAgcmV0dXJuIHN1Y2Nlc3NvcihpbmRleCkuYmxvY2soKTsK
LX0KLQotaW5saW5lIEJhc2ljQmxvY2sqJiBCYXNpY0Jsb2NrOjpzdWNjZXNzb3JCbG9jayh1bnNp
Z25lZCBpbmRleCkKLXsKLSAgICByZXR1cm4gc3VjY2Vzc29yKGluZGV4KS5ibG9jaygpOwotfQot
Ci1pbmxpbmUgU3VjY2Vzc29yQ29sbGVjdGlvbjxCYXNpY0Jsb2NrLCBCYXNpY0Jsb2NrOjpTdWNj
ZXNzb3JMaXN0PiBCYXNpY0Jsb2NrOjpzdWNjZXNzb3JCbG9ja3MoKQotewotICAgIHJldHVybiBT
dWNjZXNzb3JDb2xsZWN0aW9uPEJhc2ljQmxvY2ssIFN1Y2Nlc3Nvckxpc3Q+KHN1Y2Nlc3NvcnMo
KSk7Ci19Ci0KLWlubGluZSBTdWNjZXNzb3JDb2xsZWN0aW9uPGNvbnN0IEJhc2ljQmxvY2ssIGNv
bnN0IEJhc2ljQmxvY2s6OlN1Y2Nlc3Nvckxpc3Q+IEJhc2ljQmxvY2s6OnN1Y2Nlc3NvckJsb2Nr
cygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIFN1Y2Nlc3NvckNvbGxlY3Rpb248Y29uc3QgQmFzaWNC
bG9jaywgY29uc3QgU3VjY2Vzc29yTGlzdD4oc3VjY2Vzc29ycygpKTsKKyAgICBBU1NFUlQobGFz
dCgpLT5vcGNvZGUoKSA9PSBCcmFuY2ggfHwgbGFzdCgpLT5vcGNvZGUoKSA9PSBTd2l0Y2gpOwor
ICAgIHJldHVybiBtX3N1Y2Nlc3NvcnMubGFzdCgpOwogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpT
Qzo6QjMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jsb2NrSW5zZXJ0aW9uU2V0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCbG9ja0luc2Vy
dGlvblNldC5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM0Jsb2NrSW5zZXJ0aW9uU2V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzgsOCArNzgsOCBA
QCBCYXNpY0Jsb2NrKiBCbG9ja0luc2VydGlvblNldDo6c3BsaXRGb3J3CiAgICAgICAgIHJlc3Vs
dC0+bV92YWx1ZXNbaV0gPSBibG9jay0+bV92YWx1ZXNbaV07CiAKICAgICAvLyBNYWtlIHRoZSBu
ZXcgYmxvY2sganVtcCB0byAnYmxvY2snLgotICAgIHJlc3VsdC0+bV92YWx1ZXNbdmFsdWVJbmRl
eF0gPQotICAgICAgICBtX3Byb2MuYWRkPENvbnRyb2xWYWx1ZT4oSnVtcCwgdmFsdWUtPm9yaWdp
bigpLCBGcmVxdWVudGVkQmxvY2soYmxvY2spKTsKKyAgICByZXN1bHQtPm1fdmFsdWVzW3ZhbHVl
SW5kZXhdID0gbV9wcm9jLmFkZDxWYWx1ZT4oSnVtcCwgdmFsdWUtPm9yaWdpbigpKTsKKyAgICBy
ZXN1bHQtPnNldFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2NrKGJsb2NrKSk7CiAKICAgICAvLyBJ
ZiB3ZSBoYWQgaW5zZXJ0ZWQgdGhpbmdzIGludG8gJ2Jsb2NrJyBiZWZvcmUgdGhpcywgZXhlY3V0
ZSB0aG9zZSBpbnNlcnRpb25zIG5vdy4KICAgICBpZiAoaW5zZXJ0aW9uU2V0KQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQnJlYWtDcml0aWNhbEVkZ2VzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCcmVha0NyaXRpY2FsRWRnZXMuY3BwCShy
ZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCcmVha0NyaXRp
Y2FsRWRnZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw2IEBACiAKICNpbmNsdWRl
ICJCM0Jhc2ljQmxvY2tJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNCbG9ja0luc2VydGlvblNldC5o
IgotI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNQcm9jZWR1cmVJbmxp
bmVzLmgiCiAjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKIApAQCAtNTAsOCArNDksOCBAQCB2
b2lkIGJyZWFrQ3JpdGljYWxFZGdlcyhQcm9jZWR1cmUmIHByb2MpCiAKICAgICAgICAgICAgIEJh
c2ljQmxvY2sqIHBhZCA9CiAgICAgICAgICAgICAgICAgaW5zZXJ0aW9uU2V0Lmluc2VydEJlZm9y
ZShzdWNjZXNzb3IsIHN1Y2Nlc3Nvci0+ZnJlcXVlbmN5KCkpOwotICAgICAgICAgICAgcGFkLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgICAgICAgICBwcm9jLCBKdW1wLCBzdWNj
ZXNzb3ItPmF0KDApLT5vcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHN1Y2Nlc3NvcikpOworICAg
ICAgICAgICAgcGFkLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEp1bXAsIHN1Y2Nlc3Nvci0+YXQo
MCktPm9yaWdpbigpKTsKKyAgICAgICAgICAgIHBhZC0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVk
QmxvY2soc3VjY2Vzc29yKSk7CiAgICAgICAgICAgICBwYWQtPmFkZFByZWRlY2Vzc29yKGJsb2Nr
KTsKICAgICAgICAgICAgIHN1Y2Nlc3Nvci0+cmVwbGFjZVByZWRlY2Vzc29yKGJsb2NrLCBwYWQp
OwogICAgICAgICAgICAgc3VjY2Vzc29yID0gcGFkOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzQ2FzZUNvbGxlY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0Nhc2VDb2xsZWN0aW9uLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM0Nhc2VDb2xsZWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJCM0Nhc2VDb2xsZWN0aW9uLmgiCisK
KyNpZiBFTkFCTEUoQjNfSklUKQorCisjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrSW5saW5lcy5oIgor
I2luY2x1ZGUgIkIzQ2FzZUNvbGxlY3Rpb25JbmxpbmVzLmgiCisjaW5jbHVkZSA8d3RmL0NvbW1h
UHJpbnRlci5oPgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKKwordm9pZCBDYXNl
Q29sbGVjdGlvbjo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAoreworICAgIENvbW1hUHJp
bnRlciBjb21tYTsKKyAgICBmb3IgKFN3aXRjaENhc2Ugc3dpdGNoQ2FzZSA6ICp0aGlzKQorICAg
ICAgICBvdXQucHJpbnQoY29tbWEsIHN3aXRjaENhc2UpOworICAgIG91dC5wcmludChjb21tYSwg
ImRlZmF1bHQtPiIsIGZhbGxUaHJvdWdoKCkpOworfQorCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6
QjMKKworI2VuZGlmIC8vIEVOQUJMRShCM19KSVQpCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM0Nhc2VDb2xsZWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzQ2FzZUNvbGxlY3Rpb24uaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0Nhc2VDb2xsZWN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwxMjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
I2lmbmRlZiBCM0Nhc2VDb2xsZWN0aW9uX2gKKyNkZWZpbmUgQjNDYXNlQ29sbGVjdGlvbl9oCisK
KyNpZiBFTkFCTEUoQjNfSklUKQorCisjaW5jbHVkZSAiQjNTd2l0Y2hDYXNlLmgiCisKK25hbWVz
cGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeworCitjbGFzcyBCYXNpY0Jsb2NrOworY2xhc3MgU3dp
dGNoVmFsdWU7CisKKy8vIE5PVEU6IFlvdSdsbCBhbHdheXMgd2FudCB0byBpbmNsdWRlIEIzQ2Fz
ZUNvbGxlY3Rpb25JbmxpbmVzLmggd2hlbiB5b3UgdXNlIHRoaXMuCisKK2NsYXNzIENhc2VDb2xs
ZWN0aW9uIHsKK3B1YmxpYzoKKyAgICBDYXNlQ29sbGVjdGlvbigpCisgICAgeworICAgIH0KKyAg
ICAKKyAgICBDYXNlQ29sbGVjdGlvbihjb25zdCBTd2l0Y2hWYWx1ZSogdGVybWluYWwsIGNvbnN0
IEJhc2ljQmxvY2sqIG93bmVyKQorICAgICAgICA6IG1fc3dpdGNoKHRlcm1pbmFsKQorICAgICAg
ICAsIG1fb3duZXIob3duZXIpCisgICAgeworICAgIH0KKyAgICAKKyAgICBjb25zdCBGcmVxdWVu
dGVkQmxvY2smIGZhbGxUaHJvdWdoKCkgY29uc3Q7CisKKyAgICB1bnNpZ25lZCBzaXplKCkgY29u
c3Q7CisgICAgU3dpdGNoQ2FzZSBhdCh1bnNpZ25lZCBpbmRleCkgY29uc3Q7CisgICAgCisgICAg
U3dpdGNoQ2FzZSBvcGVyYXRvcltdKHVuc2lnbmVkIGluZGV4KSBjb25zdAorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGF0KGluZGV4KTsKKyAgICB9CisKKyAgICBjbGFzcyBpdGVyYXRvciB7CisgICAg
cHVibGljOgorICAgICAgICBpdGVyYXRvcigpCisgICAgICAgICAgICA6IG1fY29sbGVjdGlvbihu
dWxscHRyKQorICAgICAgICAgICAgLCBtX2luZGV4KDApCisgICAgICAgIHsKKyAgICAgICAgfQor
CisgICAgICAgIGl0ZXJhdG9yKGNvbnN0IENhc2VDb2xsZWN0aW9uJiBjb2xsZWN0aW9uLCB1bnNp
Z25lZCBpbmRleCkKKyAgICAgICAgICAgIDogbV9jb2xsZWN0aW9uKCZjb2xsZWN0aW9uKQorICAg
ICAgICAgICAgLCBtX2luZGV4KGluZGV4KQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAg
ICBTd2l0Y2hDYXNlIG9wZXJhdG9yKigpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBt
X2NvbGxlY3Rpb24tPmF0KG1faW5kZXgpOworICAgICAgICB9CisKKyAgICAgICAgaXRlcmF0b3Im
IG9wZXJhdG9yKysoKQorICAgICAgICB7CisgICAgICAgICAgICBtX2luZGV4Kys7CisgICAgICAg
ICAgICByZXR1cm4gKnRoaXM7CisgICAgICAgIH0KKworICAgICAgICBib29sIG9wZXJhdG9yPT0o
Y29uc3QgaXRlcmF0b3ImIG90aGVyKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICBBU1NF
UlQobV9jb2xsZWN0aW9uID09IG90aGVyLm1fY29sbGVjdGlvbik7CisgICAgICAgICAgICByZXR1
cm4gbV9pbmRleCA9PSBvdGhlci5tX2luZGV4OworICAgICAgICB9CisKKyAgICAgICAgYm9vbCBv
cGVyYXRvciE9KGNvbnN0IGl0ZXJhdG9yJiBvdGhlcikgY29uc3QKKyAgICAgICAgeworICAgICAg
ICAgICAgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOworICAgICAgICB9CisKKyAgICBwcml2YXRl
OgorICAgICAgICBjb25zdCBDYXNlQ29sbGVjdGlvbiogbV9jb2xsZWN0aW9uOworICAgICAgICB1
bnNpZ25lZCBtX2luZGV4OworICAgIH07CisKKyAgICB0eXBlZGVmIGl0ZXJhdG9yIGNvbnN0X2l0
ZXJhdG9yOworCisgICAgaXRlcmF0b3IgYmVnaW4oKSBjb25zdCB7IHJldHVybiBpdGVyYXRvcigq
dGhpcywgMCk7IH0KKyAgICBpdGVyYXRvciBlbmQoKSBjb25zdCB7IHJldHVybiBpdGVyYXRvcigq
dGhpcywgc2l6ZSgpKTsgfQorICAgIAorICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0
OworICAgIAorcHJpdmF0ZToKKyAgICBjb25zdCBTd2l0Y2hWYWx1ZSogbV9zd2l0Y2ggeyBudWxs
cHRyIH07CisgICAgY29uc3QgQmFzaWNCbG9jayogbV9vd25lciB7IG51bGxwdHIgfTsKK307CisK
K30gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMworCisjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKKwor
I2VuZGlmIC8vIEIzQ2FzZUNvbGxlY3Rpb25faAorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNDYXNlQ29sbGVjdGlvbklubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNDYXNlQ29sbGVjdGlvbklubGluZXMuaAkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBCM0Nhc2VDb2xsZWN0aW9uSW5saW5lc19oCisjZGVm
aW5lIEIzQ2FzZUNvbGxlY3Rpb25JbmxpbmVzX2gKKworI2lmIEVOQUJMRShCM19KSVQpCisKKyNp
bmNsdWRlICJCM0Nhc2VDb2xsZWN0aW9uLmgiCisjaW5jbHVkZSAiQjNTd2l0Y2hWYWx1ZS5oIgor
I2luY2x1ZGUgIkIzQmFzaWNCbG9jay5oIgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIz
IHsKKworaW5saW5lIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgQ2FzZUNvbGxlY3Rpb246OmZhbGxU
aHJvdWdoKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9vd25lci0+ZmFsbFRocm91Z2goKTsKK30K
KworaW5saW5lIHVuc2lnbmVkIENhc2VDb2xsZWN0aW9uOjpzaXplKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9zd2l0Y2gtPm51bUNhc2VWYWx1ZXMoKTsKK30KKworaW5saW5lIFN3aXRjaENhc2Ug
Q2FzZUNvbGxlY3Rpb246OmF0KHVuc2lnbmVkIGluZGV4KSBjb25zdAoreworICAgIHJldHVybiBT
d2l0Y2hDYXNlKG1fc3dpdGNoLT5jYXNlVmFsdWUoaW5kZXgpLCBtX293bmVyLT5zdWNjZXNzb3Io
aW5kZXgpKTsKK30KKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzCisKKyNlbmRpZiAvLyBFTkFC
TEUoQjNfSklUKQorCisjZW5kaWYgLy8gQjNDYXNlQ29sbGVjdGlvbklubGluZXNfaAorCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDaGVja1NwZWNpYWwuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NoZWNrU3BlY2lhbC5jcHAJKHJldmlzaW9u
IDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NoZWNrU3BlY2lhbC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTg0LDcgKzg0LDcgQEAgQ2hlY2tTcGVjaWFsOjpDaGVja1NwZWNp
YWwoQWlyOjpPcGNvZGUgbwogICAgICwgbV9zdGFja21hcFJvbGUoc3RhY2ttYXBSb2xlKQogICAg
ICwgbV9udW1DaGVja0FyZ3MobnVtQXJncykKIHsKLSAgICBBU1NFUlQoaXNUZXJtaW5hbChvcGNv
ZGUpKTsKKyAgICBBU1NFUlQoaXNEZWZpbml0ZWx5VGVybWluYWwob3Bjb2RlKSk7CiB9CiAKIENo
ZWNrU3BlY2lhbDo6Q2hlY2tTcGVjaWFsKGNvbnN0IENoZWNrU3BlY2lhbDo6S2V5JiBrZXkpCkBA
IC0xMDIsNiArMTAyLDcgQEAgSW5zdCBDaGVja1NwZWNpYWw6OmhpZGRlbkJyYW5jaChjb25zdCBJ
bgogICAgIGhpZGRlbkJyYW5jaC5hcmdzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkobV9udW1DaGVj
a0FyZ3MpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX251bUNoZWNrQXJnczsgKytp
KQogICAgICAgICBoaWRkZW5CcmFuY2guYXJncy5hcHBlbmQoaW5zdC5hcmdzW2kgKyAxXSk7Cisg
ICAgQVNTRVJUKGhpZGRlbkJyYW5jaC5pc1Rlcm1pbmFsKCkpOwogICAgIHJldHVybiBoaWRkZW5C
cmFuY2g7CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbW1vbi5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbW1vbi5oCShyZXZpc2lv
biAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb21tb24uaAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0yOCw2ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoQjNfSklUKQogCisjaW5jbHVkZSAi
SlNFeHBvcnRNYWNyb3MuaCIKKwogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKIGlu
bGluZSBib29sIGlzNjRCaXQoKSB7IHJldHVybiBzaXplb2Yodm9pZCopID09IDg7IH0KQEAgLTM4
LDcgKzQwLDcgQEAgZW51bSBCM0NvbXBsaXRhdGlvbk1vZGUgewogICAgIEFpck1vZGUKIH07CiAK
LWJvb2wgc2hvdWxkRHVtcElSKEIzQ29tcGxpdGF0aW9uTW9kZSk7CitKU19FWFBPUlRfUFJJVkFU
RSBib29sIHNob3VsZER1bXBJUihCM0NvbXBsaXRhdGlvbk1vZGUpOwogYm9vbCBzaG91bGREdW1w
SVJBdEVhY2hQaGFzZShCM0NvbXBsaXRhdGlvbk1vZGUpOwogYm9vbCBzaG91bGRWYWxpZGF0ZUlS
KCk7CiBib29sIHNob3VsZFZhbGlkYXRlSVJBdEVhY2hQaGFzZSgpOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzQ29udHJvbFZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNDb250cm9sVmFsdWUuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb250cm9sVmFsdWUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDk1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQjNDb250cm9s
VmFsdWUuaCIKLQotI2lmIEVOQUJMRShCM19KSVQpCi0KLSNpbmNsdWRlICJCM0Jhc2ljQmxvY2su
aCIKLQotbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7Ci0KLUNvbnRyb2xWYWx1ZTo6fkNv
bnRyb2xWYWx1ZSgpCi17Ci19Ci0KLWJvb2wgQ29udHJvbFZhbHVlOjpyZXBsYWNlU3VjY2Vzc29y
KEJhc2ljQmxvY2sqIGZyb20sIEJhc2ljQmxvY2sqIHRvKQotewotICAgIGJvb2wgcmVzdWx0ID0g
ZmFsc2U7Ci0gICAgZm9yIChGcmVxdWVudGVkQmxvY2smIHN1Y2Nlc3NvciA6IG1fc3VjY2Vzc29y
cykgewotICAgICAgICBpZiAoc3VjY2Vzc29yLmJsb2NrKCkgPT0gZnJvbSkgewotICAgICAgICAg
ICAgc3VjY2Vzc29yLmJsb2NrKCkgPSB0bzsKLSAgICAgICAgICAgIHJlc3VsdCA9IHRydWU7Ci0K
LSAgICAgICAgICAgIC8vIEtlZXAgbG9vcGluZyBiZWNhdXNlIGl0J3MgdmFsaWQgZm9yIGEgc3Vj
Y2Vzc29yIHRvIGJlIG1lbnRpb25lZCBtdWx0aXBsZSB0aW1lcywKLSAgICAgICAgICAgIC8vIGxp
a2UgaWYgbXVsdGlwbGUgc3dpdGNoIGNhc2VzIGhhdmUgdGhlIHNhbWUgdGFyZ2V0LgotICAgICAg
ICB9Ci0gICAgfQotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLXZvaWQgQ29udHJvbFZhbHVlOjpj
b252ZXJ0VG9KdW1wKEJhc2ljQmxvY2sqIGRlc3RpbmF0aW9uKQotewotICAgIHVuc2lnbmVkIGlu
ZGV4ID0gdGhpcy0+aW5kZXgoKTsKLSAgICBPcmlnaW4gb3JpZ2luID0gdGhpcy0+b3JpZ2luKCk7
Ci0gICAgQmFzaWNCbG9jayogb3duZXIgPSB0aGlzLT5vd25lcjsKLQotICAgIHRoaXMtPn5Db250
cm9sVmFsdWUoKTsKLQotICAgIG5ldyAodGhpcykgQ29udHJvbFZhbHVlKEp1bXAsIG9yaWdpbiwg
RnJlcXVlbnRlZEJsb2NrKGRlc3RpbmF0aW9uKSk7Ci0KLSAgICB0aGlzLT5vd25lciA9IG93bmVy
OwotICAgIHRoaXMtPm1faW5kZXggPSBpbmRleDsKLX0KLQotdm9pZCBDb250cm9sVmFsdWU6OmNv
bnZlcnRUb09vcHMoKQotewotICAgIHVuc2lnbmVkIGluZGV4ID0gdGhpcy0+aW5kZXgoKTsKLSAg
ICBPcmlnaW4gb3JpZ2luID0gdGhpcy0+b3JpZ2luKCk7Ci0gICAgQmFzaWNCbG9jayogb3duZXIg
PSB0aGlzLT5vd25lcjsKLQotICAgIHRoaXMtPn5Db250cm9sVmFsdWUoKTsKLQotICAgIG5ldyAo
dGhpcykgQ29udHJvbFZhbHVlKE9vcHMsIG9yaWdpbik7Ci0KLSAgICB0aGlzLT5vd25lciA9IG93
bmVyOwotICAgIHRoaXMtPm1faW5kZXggPSBpbmRleDsKLX0KLQotdm9pZCBDb250cm9sVmFsdWU6
OmR1bXBNZXRhKENvbW1hUHJpbnRlciYgY29tbWEsIFByaW50U3RyZWFtJiBvdXQpIGNvbnN0Ci17
Ci0gICAgZm9yIChGcmVxdWVudGVkQmxvY2sgc3VjY2Vzc29yIDogbV9zdWNjZXNzb3JzKQotICAg
ICAgICBvdXQucHJpbnQoY29tbWEsIHN1Y2Nlc3Nvcik7Ci19Ci0KLVZhbHVlKiBDb250cm9sVmFs
dWU6OmNsb25lSW1wbCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG5ldyBDb250cm9sVmFsdWUoKnRo
aXMpOwotfQotCi19IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKLQotI2VuZGlmIC8vIEVOQUJMRShC
M19KSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb250cm9sVmFsdWUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb250cm9sVmFsdWUuaAko
cmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29udHJvbFZh
bHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsMTYzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0g
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIEIzQ29udHJvbFZhbHVl
X2gKLSNkZWZpbmUgQjNDb250cm9sVmFsdWVfaAotCi0jaWYgRU5BQkxFKEIzX0pJVCkKLQotI2lu
Y2x1ZGUgIkIzRnJlcXVlbnRlZEJsb2NrLmgiCi0jaW5jbHVkZSAiQjNTdWNjZXNzb3JDb2xsZWN0
aW9uLmgiCi0jaW5jbHVkZSAiQjNWYWx1ZS5oIgotCi1uYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNl
IEIzIHsKLQotY2xhc3MgQmFzaWNCbG9jazsKLQotY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgQ29u
dHJvbFZhbHVlIDogcHVibGljIFZhbHVlIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgYm9vbCBhY2Nl
cHRzKE9wY29kZSBvcGNvZGUpCi0gICAgewotICAgICAgICBzd2l0Y2ggKG9wY29kZSkgewotICAg
ICAgICBjYXNlIEp1bXA6Ci0gICAgICAgIGNhc2UgQnJhbmNoOgotICAgICAgICBjYXNlIFJldHVy
bjoKLSAgICAgICAgY2FzZSBPb3BzOgotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAg
IGNhc2UgU3dpdGNoOiAKLSAgICAgICAgICAgIC8vIFRoaXMgaXMgaGVyZSBiZWNhdXNlIFN3aXRj
aFZhbHVlIGlzIGEgc3ViY2xhc3Mgb2YgQ29udHJvbFZhbHVlLCBzbyB3ZSB3YW50Ci0gICAgICAg
ICAgICAvLyBzd2l0Y2hWYWx1ZS0+YXM8Q29udHJvbFZhbHVlPigpIHRvIHJldHVybiBub24tbnVs
bC4KLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgdHlwZWRlZiBWZWN0b3I8
RnJlcXVlbnRlZEJsb2NrLCAyPiBTdWNjZXNzb3JMaXN0OwotCi0gICAgfkNvbnRyb2xWYWx1ZSgp
OwotCi0gICAgdW5zaWduZWQgbnVtU3VjY2Vzc29ycygpIGNvbnN0IHsgcmV0dXJuIG1fc3VjY2Vz
c29ycy5zaXplKCk7IH0KLSAgICBjb25zdCBGcmVxdWVudGVkQmxvY2smIHN1Y2Nlc3Nvcih1bnNp
Z25lZCBpbmRleCkgY29uc3QgeyByZXR1cm4gbV9zdWNjZXNzb3JzW2luZGV4XTsgfQotICAgIEZy
ZXF1ZW50ZWRCbG9jayYgc3VjY2Vzc29yKHVuc2lnbmVkIGluZGV4KSB7IHJldHVybiBtX3N1Y2Nl
c3NvcnNbaW5kZXhdOyB9Ci0gICAgY29uc3QgU3VjY2Vzc29yTGlzdCYgc3VjY2Vzc29ycygpIGNv
bnN0IHsgcmV0dXJuIG1fc3VjY2Vzc29yczsgfQotICAgIFN1Y2Nlc3Nvckxpc3QmIHN1Y2Nlc3Nv
cnMoKSB7IHJldHVybiBtX3N1Y2Nlc3NvcnM7IH0KLQotICAgIEJhc2ljQmxvY2sqIHN1Y2Nlc3Nv
ckJsb2NrKHVuc2lnbmVkIGluZGV4KSBjb25zdCB7IHJldHVybiBzdWNjZXNzb3IoaW5kZXgpLmJs
b2NrKCk7IH0KLSAgICBCYXNpY0Jsb2NrKiYgc3VjY2Vzc29yQmxvY2sodW5zaWduZWQgaW5kZXgp
IHsgcmV0dXJuIHN1Y2Nlc3NvcihpbmRleCkuYmxvY2soKTsgfQotICAgIFN1Y2Nlc3NvckNvbGxl
Y3Rpb248QmFzaWNCbG9jaywgU3VjY2Vzc29yTGlzdD4gc3VjY2Vzc29yQmxvY2tzKCkKLSAgICB7
Ci0gICAgICAgIHJldHVybiBTdWNjZXNzb3JDb2xsZWN0aW9uPEJhc2ljQmxvY2ssIFN1Y2Nlc3Nv
ckxpc3Q+KHN1Y2Nlc3NvcnMoKSk7Ci0gICAgfQotICAgIFN1Y2Nlc3NvckNvbGxlY3Rpb248Y29u
c3QgQmFzaWNCbG9jaywgY29uc3QgU3VjY2Vzc29yTGlzdD4gc3VjY2Vzc29yQmxvY2tzKCkgY29u
c3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBTdWNjZXNzb3JDb2xsZWN0aW9uPGNvbnN0IEJhc2lj
QmxvY2ssIGNvbnN0IFN1Y2Nlc3Nvckxpc3Q+KHN1Y2Nlc3NvcnMoKSk7Ci0gICAgfQotCi0gICAg
Ym9vbCByZXBsYWNlU3VjY2Vzc29yKEJhc2ljQmxvY2sqIGZyb20sIEJhc2ljQmxvY2sqIHRvKTsK
LQotICAgIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgdGFrZW4oKSBjb25zdAotICAgIHsKLSAgICAg
ICAgQVNTRVJUKG9wY29kZSgpID09IEp1bXAgfHwgb3Bjb2RlKCkgPT0gQnJhbmNoKTsKLSAgICAg
ICAgcmV0dXJuIHN1Y2Nlc3NvcigwKTsKLSAgICB9Ci0gICAgRnJlcXVlbnRlZEJsb2NrJiB0YWtl
bigpCi0gICAgewotICAgICAgICBBU1NFUlQob3Bjb2RlKCkgPT0gSnVtcCB8fCBvcGNvZGUoKSA9
PSBCcmFuY2gpOwotICAgICAgICByZXR1cm4gc3VjY2Vzc29yKDApOwotICAgIH0KLSAgICBjb25z
dCBGcmVxdWVudGVkQmxvY2smIG5vdFRha2VuKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VS
VChvcGNvZGUoKSA9PSBCcmFuY2gpOwotICAgICAgICByZXR1cm4gc3VjY2Vzc29yKDEpOwotICAg
IH0KLSAgICBGcmVxdWVudGVkQmxvY2smIG5vdFRha2VuKCkKLSAgICB7Ci0gICAgICAgIEFTU0VS
VChvcGNvZGUoKSA9PSBCcmFuY2gpOwotICAgICAgICByZXR1cm4gc3VjY2Vzc29yKDEpOwotICAg
IH0KLQotICAgIHZvaWQgY29udmVydFRvSnVtcChCYXNpY0Jsb2NrKiBkZXN0aW5hdGlvbik7Ci0g
ICAgdm9pZCBjb252ZXJ0VG9Pb3BzKCk7Ci0KLXByb3RlY3RlZDoKLSAgICB2b2lkIGR1bXBNZXRh
KENvbW1hUHJpbnRlciYsIFByaW50U3RyZWFtJikgY29uc3Qgb3ZlcnJpZGU7Ci0KLSAgICBWYWx1
ZSogY2xvbmVJbXBsKCkgY29uc3Qgb3ZlcnJpZGU7Ci0KLSAgICAvLyBVc2UgdGhpcyBmb3Igc3Vi
Y2xhc3Nlcy4KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+Ci0gICAgQ29udHJv
bFZhbHVlKE9wY29kZSBvcGNvZGUsIFR5cGUgdHlwZSwgT3JpZ2luIG9yaWdpbiwgQXJndW1lbnRz
Li4uIGFyZ3VtZW50cykKLSAgICAgICAgOiBWYWx1ZShDaGVja2VkT3Bjb2RlLCBvcGNvZGUsIHR5
cGUsIG9yaWdpbiwgYXJndW1lbnRzLi4uKQotICAgIHsKLSAgICAgICAgQVNTRVJUKGFjY2VwdHMo
b3Bjb2RlKSk7Ci0gICAgfQotCi0gICAgLy8gU3ViY2xhc3NlcyB3aWxsIHBvcHVsYXRlIHRoaXMu
Ci0gICAgU3VjY2Vzc29yTGlzdCBtX3N1Y2Nlc3NvcnM7Ci0KLXByaXZhdGU6Ci0gICAgZnJpZW5k
IGNsYXNzIFByb2NlZHVyZTsKLQotICAgIC8vIFVzZSB0aGlzIGZvciBPb3BzLgotICAgIENvbnRy
b2xWYWx1ZShPcGNvZGUgb3Bjb2RlLCBPcmlnaW4gb3JpZ2luKQotICAgICAgICA6IFZhbHVlKENo
ZWNrZWRPcGNvZGUsIG9wY29kZSwgVm9pZCwgb3JpZ2luKQotICAgIHsKLSAgICAgICAgQVNTRVJU
KG9wY29kZSA9PSBPb3BzKTsKLSAgICB9Ci0KLSAgICAvLyBVc2UgdGhpcyBmb3IgUmV0dXJuLgot
ICAgIENvbnRyb2xWYWx1ZShPcGNvZGUgb3Bjb2RlLCBPcmlnaW4gb3JpZ2luLCBWYWx1ZSogcmVz
dWx0KQotICAgICAgICA6IFZhbHVlKENoZWNrZWRPcGNvZGUsIG9wY29kZSwgVm9pZCwgb3JpZ2lu
LCByZXN1bHQpCi0gICAgewotICAgICAgICBBU1NFUlQob3Bjb2RlID09IFJldHVybik7Ci0gICAg
fQotCi0gICAgLy8gVXNlIHRoaXMgZm9yIEp1bXAuCi0gICAgQ29udHJvbFZhbHVlKE9wY29kZSBv
cGNvZGUsIE9yaWdpbiBvcmlnaW4sIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgdGFyZ2V0KQotICAg
ICAgICA6IFZhbHVlKENoZWNrZWRPcGNvZGUsIG9wY29kZSwgVm9pZCwgb3JpZ2luKQotICAgIHsK
LSAgICAgICAgQVNTRVJUKG9wY29kZSA9PSBKdW1wKTsKLSAgICAgICAgbV9zdWNjZXNzb3JzLmFw
cGVuZCh0YXJnZXQpOwotICAgIH0KLQotICAgIC8vIFVzZSB0aGlzIGZvciBCcmFuY2guCi0gICAg
Q29udHJvbFZhbHVlKAotICAgICAgICBPcGNvZGUgb3Bjb2RlLCBPcmlnaW4gb3JpZ2luLCBWYWx1
ZSogcHJlZGljYXRlLAotICAgICAgICBjb25zdCBGcmVxdWVudGVkQmxvY2smIHllcywgY29uc3Qg
RnJlcXVlbnRlZEJsb2NrJiBubykKLSAgICAgICAgOiBWYWx1ZShDaGVja2VkT3Bjb2RlLCBvcGNv
ZGUsIFZvaWQsIG9yaWdpbiwgcHJlZGljYXRlKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG9wY29k
ZSA9PSBCcmFuY2gpOwotICAgICAgICBtX3N1Y2Nlc3NvcnMuYXBwZW5kKHllcyk7Ci0gICAgICAg
IG1fc3VjY2Vzc29ycy5hcHBlbmQobm8pOwotICAgIH0KLX07Ci0KLX0gfSAvLyBuYW1lc3BhY2Ug
SlNDOjpCMwotCi0jZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKLQotI2VuZGlmIC8vIEIzQ29udHJv
bFZhbHVlX2gKLQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRGF0YVNlY3Rpb24u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0RhdGFTZWN0aW9u
LmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRGF0
YVNlY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMxLDcgKzMxLDcgQEAKIG5hbWVzcGFjZSBKU0Mg
eyBuYW1lc3BhY2UgQjMgewogCiBEYXRhU2VjdGlvbjo6RGF0YVNlY3Rpb24oc2l6ZV90IHNpemUp
Ci0gICAgOiBtX2RhdGEoZmFzdE1hbGxvYyhzaXplKSkKKyAgICA6IG1fZGF0YShmYXN0WmVyb2Vk
TWFsbG9jKHNpemUpKQogICAgICwgbV9zaXplKHNpemUpCiB7CiB9CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNEdXBsaWNhdGVUYWlscy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzRHVwbGljYXRlVGFpbHMuY3BwCShyZXZpc2lvbiAyMDI4MDkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEdXBsaWNhdGVUYWlscy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMwLDcgKzMwLDYgQEAKIAogI2luY2x1ZGUgIkIzQmFzaWNCbG9ja0lubGlu
ZXMuaCIKICNpbmNsdWRlICJCM0JyZWFrQ3JpdGljYWxFZGdlcy5oIgotI2luY2x1ZGUgIkIzQ29u
dHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNEb21pbmF0b3JzLmgiCiAjaW5jbHVkZSAiQjNGaXhT
U0EuaCIKICNpbmNsdWRlICJCM0luZGV4U2V0LmgiCkBAIC03Miw5ICs3MSwxMCBAQCBwdWJsaWM6
CiAgICAgICAgIEluZGV4U2V0PEJhc2ljQmxvY2s+IGNhbmRpZGF0ZXM7CiAKICAgICAgICAgZm9y
IChCYXNpY0Jsb2NrKiBibG9jayA6IG1fcHJvYykgewotICAgICAgICAgICAgaWYgKGJsb2NrLT5z
aXplKCkgPiBtX21heFNpemUgfHwgYmxvY2stPm51bVN1Y2Nlc3NvcnMoKSA+IG1fbWF4U3VjY2Vz
c29ycykKKyAgICAgICAgICAgIGlmIChibG9jay0+c2l6ZSgpID4gbV9tYXhTaXplCisgICAgICAg
ICAgICAgICAgfHwgYmxvY2stPm51bVN1Y2Nlc3NvcnMoKSA+IG1fbWF4U3VjY2Vzc29ycykKICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKLQorICAgICAgICAgICAgCiAgICAgICAgICAgICBjYW5k
aWRhdGVzLmFkZChibG9jayk7CiAgICAgICAgIH0KIApAQCAtOTcsMTEgKzk3LDEwIEBAIHB1Ymxp
YzoKICAgICAgICAgfQogCiAgICAgICAgIGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiBtX3Byb2Mp
IHsKLSAgICAgICAgICAgIENvbnRyb2xWYWx1ZSoganVtcCA9IGJsb2NrLT5sYXN0KCktPmFzPENv
bnRyb2xWYWx1ZT4oKTsKLSAgICAgICAgICAgIGlmIChqdW1wLT5vcGNvZGUoKSAhPSBKdW1wKQor
ICAgICAgICAgICAgaWYgKGJsb2NrLT5sYXN0KCktPm9wY29kZSgpICE9IEp1bXApCiAgICAgICAg
ICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgICAgIEJhc2ljQmxvY2sqIHRhaWwgPSBqdW1w
LT5zdWNjZXNzb3JCbG9jaygwKTsKKyAgICAgICAgICAgIEJhc2ljQmxvY2sqIHRhaWwgPSBibG9j
ay0+c3VjY2Vzc29yQmxvY2soMCk7CiAgICAgICAgICAgICBpZiAoIWNhbmRpZGF0ZXMuY29udGFp
bnModGFpbCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKQEAgLTEzMCw2ICsxMjksNyBA
QCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgIG1hcC5hZGQodmFsdWUsIGNsb25lKTsKICAg
ICAgICAgICAgICAgICBibG9jay0+YXBwZW5kKGNsb25lKTsKICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIGJsb2NrLT5zdWNjZXNzb3JzKCkgPSB0YWlsLT5zdWNjZXNzb3JzKCk7CiAgICAgICAg
IH0KIAogICAgICAgICBtX3Byb2MucmVzZXRSZWFjaGFiaWxpdHkoKTsKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM0ZpeFNTQS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzRml4U1NBLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzRml4U1NBLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAs
NiBAQAogCiAjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrSW5saW5lcy5oIgogI2luY2x1ZGUgIkIzQnJl
YWtDcml0aWNhbEVkZ2VzLmgiCi0jaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKICNpbmNsdWRl
ICJCM0RvbWluYXRvcnMuaCIKICNpbmNsdWRlICJCM0luZGV4U2V0LmgiCiAjaW5jbHVkZSAiQjNJ
bnNlcnRpb25TZXRJbmxpbmVzLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNG
b2xkUGF0aENvbnN0YW50cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzRm9sZFBhdGhDb25zdGFudHMuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNGb2xkUGF0aENvbnN0YW50cy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI5LDcgKzI5LDcgQEAKICNpZiBFTkFCTEUoQjNfSklUKQogCiAjaW5jbHVkZSAiQjNCYXNp
Y0Jsb2NrSW5saW5lcy5oIgotI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCisjaW5jbHVkZSAi
QjNDYXNlQ29sbGVjdGlvbklubGluZXMuaCIKICNpbmNsdWRlICJCM0RvbWluYXRvcnMuaCIKICNp
bmNsdWRlICJCM0luc2VydGlvblNldElubGluZXMuaCIKICNpbmNsdWRlICJCM1BoYXNlU2NvcGUu
aCIKQEAgLTg3LDI0ICs4NywyNCBAQCBwdWJsaWM6CiAgICAgICAgIH07CiAgICAgICAgIAogICAg
ICAgICBmb3IgKEJhc2ljQmxvY2sqIGJsb2NrIDogbV9wcm9jKSB7Ci0gICAgICAgICAgICBDb250
cm9sVmFsdWUqIGJyYW5jaCA9IGJsb2NrLT5sYXN0KCktPmFzPENvbnRyb2xWYWx1ZT4oKTsKKyAg
ICAgICAgICAgIFZhbHVlKiBicmFuY2ggPSBibG9jay0+bGFzdCgpOwogICAgICAgICAgICAgc3dp
dGNoIChicmFuY2gtPm9wY29kZSgpKSB7CiAgICAgICAgICAgICBjYXNlIEJyYW5jaDoKLSAgICAg
ICAgICAgICAgICBpZiAoYnJhbmNoLT5zdWNjZXNzb3JCbG9jaygwKSA9PSBicmFuY2gtPnN1Y2Nl
c3NvckJsb2NrKDEpKQorICAgICAgICAgICAgICAgIGlmIChibG9jay0+c3VjY2Vzc29yQmxvY2so
MCkgPT0gYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDEpKQogICAgICAgICAgICAgICAgICAgICBjb250
aW51ZTsKICAgICAgICAgICAgICAgICBhZGRPdmVycmlkZSgKICAgICAgICAgICAgICAgICAgICAg
YmxvY2ssIGJyYW5jaC0+Y2hpbGQoMCksCi0gICAgICAgICAgICAgICAgICAgIE92ZXJyaWRlOjpu
b25aZXJvKGJyYW5jaC0+c3VjY2Vzc29yQmxvY2soMCkpKTsKKyAgICAgICAgICAgICAgICAgICAg
T3ZlcnJpZGU6Om5vblplcm8oYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDApKSk7CiAgICAgICAgICAg
ICAgICAgYWRkT3ZlcnJpZGUoCiAgICAgICAgICAgICAgICAgICAgIGJsb2NrLCBicmFuY2gtPmNo
aWxkKDApLAotICAgICAgICAgICAgICAgICAgICBPdmVycmlkZTo6Y29uc3RhbnQoYnJhbmNoLT5z
dWNjZXNzb3JCbG9jaygxKSwgMCkpOworICAgICAgICAgICAgICAgICAgICBPdmVycmlkZTo6Y29u
c3RhbnQoYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDEpLCAwKSk7CiAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICBjYXNlIFN3aXRjaDogewogICAgICAgICAgICAgICAgIEhhc2hNYXA8
QmFzaWNCbG9jayosIHVuc2lnbmVkPiB0YXJnZXRVc2VzOwotICAgICAgICAgICAgICAgIGZvciAo
Y29uc3QgU3dpdGNoQ2FzZSYgc3dpdGNoQ2FzZSA6ICpicmFuY2gtPmFzPFN3aXRjaFZhbHVlPigp
KQorICAgICAgICAgICAgICAgIGZvciAoY29uc3QgU3dpdGNoQ2FzZSYgc3dpdGNoQ2FzZSA6IGJy
YW5jaC0+YXM8U3dpdGNoVmFsdWU+KCktPmNhc2VzKGJsb2NrKSkKICAgICAgICAgICAgICAgICAg
ICAgdGFyZ2V0VXNlcy5hZGQoc3dpdGNoQ2FzZS50YXJnZXRCbG9jaygpLCAwKS5pdGVyYXRvci0+
dmFsdWUrKzsKIAotICAgICAgICAgICAgICAgIGZvciAoY29uc3QgU3dpdGNoQ2FzZSYgc3dpdGNo
Q2FzZSA6ICpicmFuY2gtPmFzPFN3aXRjaFZhbHVlPigpKSB7CisgICAgICAgICAgICAgICAgZm9y
IChjb25zdCBTd2l0Y2hDYXNlJiBzd2l0Y2hDYXNlIDogYnJhbmNoLT5hczxTd2l0Y2hWYWx1ZT4o
KS0+Y2FzZXMoYmxvY2spKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICh0YXJnZXRVc2VzLmZp
bmQoc3dpdGNoQ2FzZS50YXJnZXRCbG9jaygpKS0+dmFsdWUgIT0gMSkKICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOwogCkBAIC0xNTgsOSArMTU4LDggQEAgcHVibGljOgogCiAgICAg
ICAgICAgICAgICAgc3dpdGNoICh2YWx1ZS0+b3Bjb2RlKCkpIHsKICAgICAgICAgICAgICAgICBj
YXNlIEJyYW5jaDogewotICAgICAgICAgICAgICAgICAgICBDb250cm9sVmFsdWUqIGJyYW5jaCA9
IHZhbHVlLT5hczxDb250cm9sVmFsdWU+KCk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChnZXRP
dmVycmlkZShibG9jaywgYnJhbmNoLT5jaGlsZCgwKSkuaXNOb25aZXJvKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBicmFuY2gtPmNvbnZlcnRUb0p1bXAoYnJhbmNoLT50YWtlbigpLmJsb2Nr
KCkpOworICAgICAgICAgICAgICAgICAgICBpZiAoZ2V0T3ZlcnJpZGUoYmxvY2ssIHZhbHVlLT5j
aGlsZCgwKSkuaXNOb25aZXJvKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZS0+cmVw
bGFjZVdpdGhKdW1wKGJsb2NrLCBibG9jay0+dGFrZW4oKSk7CiAgICAgICAgICAgICAgICAgICAg
ICAgICBjaGFuZ2VkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgICBicmVhazsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyTWFj
cm9zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlck1h
Y3Jvcy5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0xvd2VyTWFjcm9zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCwxNyArMjgsMjMgQEAKIAogI2lmIEVO
QUJMRShCM19KSVQpCiAKKyNpbmNsdWRlICJBbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2Uu
aCIKICNpbmNsdWRlICJCM0Jhc2ljQmxvY2tJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNCbG9ja0lu
c2VydGlvblNldC5oIgogI2luY2x1ZGUgIkIzQ0NhbGxWYWx1ZS5oIgorI2luY2x1ZGUgIkIzQ2Fz
ZUNvbGxlY3Rpb25JbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNDb25zdFB0clZhbHVlLmgiCi0jaW5j
bHVkZSAiQjNDb250cm9sVmFsdWUuaCIKICNpbmNsdWRlICJCM0luc2VydGlvblNldElubGluZXMu
aCIKKyNpbmNsdWRlICJCM01lbW9yeVZhbHVlLmgiCisjaW5jbHVkZSAiQjNQYXRjaHBvaW50VmFs
dWUuaCIKICNpbmNsdWRlICJCM1BoYXNlU2NvcGUuaCIKICNpbmNsdWRlICJCM1Byb2NlZHVyZUlu
bGluZXMuaCIKKyNpbmNsdWRlICJCM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5oIgogI2luY2x1
ZGUgIkIzU3dpdGNoVmFsdWUuaCIKICNpbmNsdWRlICJCM1Vwc2lsb25WYWx1ZS5oIgogI2luY2x1
ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCisjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCisjaW5jbHVk
ZSAiTGlua0J1ZmZlci5oIgogI2luY2x1ZGUgPGNtYXRoPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIEIzIHsKQEAgLTExOCw4ICsxMjQsOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAg
ICAgICBCYXNpY0Jsb2NrKiB6ZXJvRGVuQ2FzZSA9IG1fYmxvY2tJbnNlcnRpb25TZXQuaW5zZXJ0
QmVmb3JlKG1fYmxvY2spOwogICAgICAgICAgICAgICAgICAgICBCYXNpY0Jsb2NrKiBub3JtYWxN
b2RDYXNlID0gbV9ibG9ja0luc2VydGlvblNldC5pbnNlcnRCZWZvcmUobV9ibG9jayk7CiAKLSAg
ICAgICAgICAgICAgICAgICAgYmVmb3JlLT5yZXBsYWNlTGFzdFdpdGhOZXc8Q29udHJvbFZhbHVl
PigKLSAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgQnJhbmNoLCBtX29yaWdpbiwgbV92
YWx1ZS0+Y2hpbGQoMSksCisgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+cmVwbGFjZUxhc3RX
aXRoTmV3PFZhbHVlPihtX3Byb2MsIEJyYW5jaCwgbV9vcmlnaW4sIG1fdmFsdWUtPmNoaWxkKDEp
KTsKKyAgICAgICAgICAgICAgICAgICAgYmVmb3JlLT5zZXRTdWNjZXNzb3JzKAogICAgICAgICAg
ICAgICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKG5vcm1hbE1vZENhc2UsIEZyZXF1ZW5jeUNs
YXNzOjpOb3JtYWwpLAogICAgICAgICAgICAgICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHpl
cm9EZW5DYXNlLCBGcmVxdWVuY3lDbGFzczo6UmFyZSkpOwogCkBAIC0xMjcsMTIgKzEzMywxNCBA
QCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICBWYWx1ZSogbXVsdGlwbGllZEJhY2sgPSBu
b3JtYWxNb2RDYXNlLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgTXVsLCBtX29yaWdpbiwgZGl2
UmVzdWx0LCBtX3ZhbHVlLT5jaGlsZCgxKSk7CiAgICAgICAgICAgICAgICAgICAgIFZhbHVlKiBy
ZXN1bHQgPSBub3JtYWxNb2RDYXNlLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgU3ViLCBtX29y
aWdpbiwgbV92YWx1ZS0+Y2hpbGQoMCksIG11bHRpcGxpZWRCYWNrKTsKICAgICAgICAgICAgICAg
ICAgICAgVXBzaWxvblZhbHVlKiBub3JtYWxSZXN1bHQgPSBub3JtYWxNb2RDYXNlLT5hcHBlbmRO
ZXc8VXBzaWxvblZhbHVlPihtX3Byb2MsIG1fb3JpZ2luLCByZXN1bHQpOwotICAgICAgICAgICAg
ICAgICAgICBub3JtYWxNb2RDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihtX3Byb2MsIEp1
bXAsIG1fb3JpZ2luLCBGcmVxdWVudGVkQmxvY2sobV9ibG9jaykpOworICAgICAgICAgICAgICAg
ICAgICBub3JtYWxNb2RDYXNlLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgSnVtcCwgbV9vcmln
aW4pOworICAgICAgICAgICAgICAgICAgICBub3JtYWxNb2RDYXNlLT5zZXRTdWNjZXNzb3JzKEZy
ZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7CiAKICAgICAgICAgICAgICAgICAgICAgVXBzaWxvblZh
bHVlKiB6ZXJvUmVzdWx0ID0gemVyb0RlbkNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KAog
ICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwKICAgICAgICAgICAgICAg
ICAgICAgICAgIHplcm9EZW5DYXNlLT5hcHBlbmRJbnRDb25zdGFudChtX3Byb2MsIG1fdmFsdWUs
IDApKTsKLSAgICAgICAgICAgICAgICAgICAgemVyb0RlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7
CisgICAgICAgICAgICAgICAgICAgIHplcm9EZW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJv
YywgSnVtcCwgbV9vcmlnaW4pOworICAgICAgICAgICAgICAgICAgICB6ZXJvRGVuQ2FzZS0+c2V0
U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2sobV9ibG9jaykpOwogCiAgICAgICAgICAgICAgICAg
ICAgIFZhbHVlKiBwaGkgPSBtX2luc2VydGlvblNldC5pbnNlcnQ8VmFsdWU+KG1faW5kZXgsIFBo
aSwgbV92YWx1ZS0+dHlwZSgpLCBtX29yaWdpbik7CiAgICAgICAgICAgICAgICAgICAgIG5vcm1h
bFJlc3VsdC0+c2V0UGhpKHBoaSk7CkBAIC0xNDcsMTUgKzE1NSwxNiBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgY2FzZSBTd2l0Y2g6IHsKICAgICAgICAgICAgICAgICBTd2l0Y2hWYWx1ZSogc3dp
dGNoVmFsdWUgPSBtX3ZhbHVlLT5hczxTd2l0Y2hWYWx1ZT4oKTsKICAgICAgICAgICAgICAgICBW
ZWN0b3I8U3dpdGNoQ2FzZT4gY2FzZXM7Ci0gICAgICAgICAgICAgICAgZm9yIChjb25zdCBTd2l0
Y2hDYXNlJiBzd2l0Y2hDYXNlIDogKnN3aXRjaFZhbHVlKQorICAgICAgICAgICAgICAgIGZvciAo
Y29uc3QgU3dpdGNoQ2FzZSYgc3dpdGNoQ2FzZSA6IHN3aXRjaFZhbHVlLT5jYXNlcyhtX2Jsb2Nr
KSkKICAgICAgICAgICAgICAgICAgICAgY2FzZXMuYXBwZW5kKHN3aXRjaENhc2UpOwogICAgICAg
ICAgICAgICAgIHN0ZDo6c29ydCgKICAgICAgICAgICAgICAgICAgICAgY2FzZXMuYmVnaW4oKSwg
Y2FzZXMuZW5kKCksCiAgICAgICAgICAgICAgICAgICAgIFtdIChjb25zdCBTd2l0Y2hDYXNlJiBs
ZWZ0LCBjb25zdCBTd2l0Y2hDYXNlJiByaWdodCkgewogICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGxlZnQuY2FzZVZhbHVlKCkgPCByaWdodC5jYXNlVmFsdWUoKTsKICAgICAgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrIGZhbGxUaHJvdWdo
ID0gbV9ibG9jay0+ZmFsbFRocm91Z2goKTsKICAgICAgICAgICAgICAgICBtX2Jsb2NrLT52YWx1
ZXMoKS5yZW1vdmVMYXN0KCk7Ci0gICAgICAgICAgICAgICAgcmVjdXJzaXZlbHlCdWlsZFN3aXRj
aChjYXNlcywgMCwgZmFsc2UsIGNhc2VzLnNpemUoKSwgbV9ibG9jayk7CisgICAgICAgICAgICAg
ICAgcmVjdXJzaXZlbHlCdWlsZFN3aXRjaChjYXNlcywgZmFsbFRocm91Z2gsIDAsIGZhbHNlLCBj
YXNlcy5zaXplKCksIG1fYmxvY2spOwogICAgICAgICAgICAgICAgIG1fcHJvYy5kZWxldGVWYWx1
ZShzd2l0Y2hWYWx1ZSk7CiAgICAgICAgICAgICAgICAgbV9ibG9jay0+dXBkYXRlUHJlZGVjZXNz
b3JzQWZ0ZXIoKTsKICAgICAgICAgICAgICAgICBtX2NoYW5nZWQgPSB0cnVlOwpAQCAtMjEwLDI3
ICsyMTksMjcgQEAgcHJpdmF0ZToKICAgICAgICAgQmFzaWNCbG9jayogbmVnMURlbkNhc2UgPSBt
X2Jsb2NrSW5zZXJ0aW9uU2V0Lmluc2VydEJlZm9yZShtX2Jsb2NrKTsKICAgICAgICAgQmFzaWNC
bG9jayogaW50TWluQ2FzZSA9IG1fYmxvY2tJbnNlcnRpb25TZXQuaW5zZXJ0QmVmb3JlKG1fYmxv
Y2spOwogCi0gICAgICAgIGJlZm9yZS0+cmVwbGFjZUxhc3RXaXRoTmV3PENvbnRyb2xWYWx1ZT4o
Ci0gICAgICAgICAgICBtX3Byb2MsIEJyYW5jaCwgbV9vcmlnaW4sIGlzRGVuT0ssCisgICAgICAg
IGJlZm9yZS0+cmVwbGFjZUxhc3RXaXRoTmV3PFZhbHVlPihtX3Byb2MsIEJyYW5jaCwgbV9vcmln
aW4sIGlzRGVuT0spOworICAgICAgICBiZWZvcmUtPnNldFN1Y2Nlc3NvcnMoCiAgICAgICAgICAg
ICBGcmVxdWVudGVkQmxvY2sobm9ybWFsRGl2Q2FzZSwgRnJlcXVlbmN5Q2xhc3M6Ok5vcm1hbCks
CiAgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2soc2hhZHlEZW5DYXNlLCBGcmVxdWVuY3lDbGFz
czo6UmFyZSkpOwogCiAgICAgICAgIFVwc2lsb25WYWx1ZSogbm9ybWFsUmVzdWx0ID0gbm9ybWFs
RGl2Q2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4oCiAgICAgICAgICAgICBtX3Byb2MsIG1f
b3JpZ2luLAogICAgICAgICAgICAgbm9ybWFsRGl2Q2FzZS0+YXBwZW5kTmV3PFZhbHVlPihtX3By
b2MsIG5vbkNoaWxsT3Bjb2RlLCBtX29yaWdpbiwgbnVtLCBkZW4pKTsKLSAgICAgICAgbm9ybWFs
RGl2Q2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCi0gICAgICAgICAgICBtX3Byb2MsIEp1
bXAsIG1fb3JpZ2luLCBGcmVxdWVudGVkQmxvY2sobV9ibG9jaykpOworICAgICAgICBub3JtYWxE
aXZDYXNlLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgSnVtcCwgbV9vcmlnaW4pOworICAgICAg
ICBub3JtYWxEaXZDYXNlLT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7
CiAKLSAgICAgICAgc2hhZHlEZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAg
ICAgICAgIG1fcHJvYywgQnJhbmNoLCBtX29yaWdpbiwgZGVuLAorICAgICAgICBzaGFkeURlbkNh
c2UtPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBCcmFuY2gsIG1fb3JpZ2luLCBkZW4pOworICAg
ICAgICBzaGFkeURlbkNhc2UtPnNldFN1Y2Nlc3NvcnMoCiAgICAgICAgICAgICBGcmVxdWVudGVk
QmxvY2sobmVnMURlbkNhc2UsIEZyZXF1ZW5jeUNsYXNzOjpOb3JtYWwpLAogICAgICAgICAgICAg
RnJlcXVlbnRlZEJsb2NrKHplcm9EZW5DYXNlLCBGcmVxdWVuY3lDbGFzczo6UmFyZSkpOwogCiAg
ICAgICAgIFVwc2lsb25WYWx1ZSogemVyb1Jlc3VsdCA9IHplcm9EZW5DYXNlLT5hcHBlbmROZXc8
VXBzaWxvblZhbHVlPigKICAgICAgICAgICAgIG1fcHJvYywgbV9vcmlnaW4sCiAgICAgICAgICAg
ICB6ZXJvRGVuQ2FzZS0+YXBwZW5kSW50Q29uc3RhbnQobV9wcm9jLCBtX3ZhbHVlLCAwKSk7Ci0g
ICAgICAgIHplcm9EZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgICAg
IG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7CisgICAg
ICAgIHplcm9EZW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgSnVtcCwgbV9vcmlnaW4p
OworICAgICAgICB6ZXJvRGVuQ2FzZS0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2sobV9i
bG9jaykpOwogCiAgICAgICAgIGludDY0X3QgYmFkTnVtZXJhdG9yQ29uc3QgPSAwOwogICAgICAg
ICBzd2l0Y2ggKG1fdmFsdWUtPnR5cGUoKSkgewpAQCAtMjQ4LDE4ICsyNTcsMTkgQEAgcHJpdmF0
ZToKICAgICAgICAgVmFsdWUqIGJhZE51bWVyYXRvciA9CiAgICAgICAgICAgICBuZWcxRGVuQ2Fz
ZS0+YXBwZW5kSW50Q29uc3RhbnQobV9wcm9jLCBtX3ZhbHVlLCBiYWROdW1lcmF0b3JDb25zdCk7
CiAKLSAgICAgICAgbmVnMURlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAg
ICBuZWcxRGVuQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIG1fcHJvYywgQnJh
bmNoLCBtX29yaWdpbiwKICAgICAgICAgICAgIG5lZzFEZW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+
KAotICAgICAgICAgICAgICAgIG1fcHJvYywgRXF1YWwsIG1fb3JpZ2luLCBudW0sIGJhZE51bWVy
YXRvciksCisgICAgICAgICAgICAgICAgbV9wcm9jLCBFcXVhbCwgbV9vcmlnaW4sIG51bSwgYmFk
TnVtZXJhdG9yKSk7CisgICAgICAgIG5lZzFEZW5DYXNlLT5zZXRTdWNjZXNzb3JzKAogICAgICAg
ICAgICAgRnJlcXVlbnRlZEJsb2NrKGludE1pbkNhc2UsIEZyZXF1ZW5jeUNsYXNzOjpSYXJlKSwK
ICAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhub3JtYWxEaXZDYXNlLCBGcmVxdWVuY3lDbGFz
czo6Tm9ybWFsKSk7CiAKICAgICAgICAgVmFsdWUqIGludE1pblJlc3VsdCA9IG5vbkNoaWxsT3Bj
b2RlID09IERpdiA/IGJhZE51bWVyYXRvciA6IGludE1pbkNhc2UtPmFwcGVuZEludENvbnN0YW50
KG1fcHJvYywgbV92YWx1ZSwgMCk7CiAgICAgICAgIFVwc2lsb25WYWx1ZSogaW50TWluUmVzdWx0
VXBzaWxvbiA9IGludE1pbkNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KAogICAgICAgICAg
ICAgbV9wcm9jLCBtX29yaWdpbiwgaW50TWluUmVzdWx0KTsKLSAgICAgICAgaW50TWluQ2FzZS0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCi0gICAgICAgICAgICBtX3Byb2MsIEp1bXAsIG1fb3Jp
Z2luLCBGcmVxdWVudGVkQmxvY2sobV9ibG9jaykpOworICAgICAgICBpbnRNaW5DYXNlLT5hcHBl
bmROZXc8VmFsdWU+KG1fcHJvYywgSnVtcCwgbV9vcmlnaW4pOworICAgICAgICBpbnRNaW5DYXNl
LT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7CiAKICAgICAgICAgVmFs
dWUqIHBoaSA9IG1faW5zZXJ0aW9uU2V0Lmluc2VydDxWYWx1ZT4oCiAgICAgICAgICAgICBtX2lu
ZGV4LCBQaGksIG1fdmFsdWUtPnR5cGUoKSwgbV9vcmlnaW4pOwpAQCAtMjcyLDExICsyODIsMTA1
IEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgdm9pZCByZWN1cnNpdmVseUJ1aWxkU3dpdGNoKAot
ICAgICAgICBjb25zdCBWZWN0b3I8U3dpdGNoQ2FzZT4mIGNhc2VzLCB1bnNpZ25lZCBzdGFydCwg
Ym9vbCBoYXJkU3RhcnQsIHVuc2lnbmVkIGVuZCwKLSAgICAgICAgQmFzaWNCbG9jayogYmVmb3Jl
KQorICAgICAgICBjb25zdCBWZWN0b3I8U3dpdGNoQ2FzZT4mIGNhc2VzLCBGcmVxdWVudGVkQmxv
Y2sgZmFsbFRocm91Z2gsIHVuc2lnbmVkIHN0YXJ0LCBib29sIGhhcmRTdGFydCwKKyAgICAgICAg
dW5zaWduZWQgZW5kLCBCYXNpY0Jsb2NrKiBiZWZvcmUpCiAgICAgewotICAgICAgICAvLyBGSVhN
RTogQWRkIHRhYmxlLWJhc2VkIHN3aXRjaCBsb3dlcmluZy4KLSAgICAgICAgLy8gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTE0MQorICAgICAgICBWYWx1ZSogY2hp
bGQgPSBtX3ZhbHVlLT5jaGlsZCgwKTsKKyAgICAgICAgVHlwZSB0eXBlID0gY2hpbGQtPnR5cGUo
KTsKKyAgICAgICAgCisgICAgICAgIC8vIEl0J3MgYSBnb29kIGlkZWEgdG8gdXNlIGEgdGFibGUt
YmFzZWQgc3dpdGNoIGluIHNvbWUgY2FzZXM6IHRoZSBudW1iZXIgb2YgY2FzZXMgaGFzIHRvIGJl
CisgICAgICAgIC8vIGxhcmdlIGVub3VnaCBhbmQgdGhleSBoYXZlIHRvIGJlIGRlbnNlIGVub3Vn
aC4gVGhpcyBjb3VsZCBwcm9iYWJseSBiZSBpbXByb3ZlZCBhIGxvdC4gRm9yCisgICAgICAgIC8v
IGV4YW1wbGUsIHdlIGNvdWxkIHN0aWxsIHVzZSBhIGp1bXAgdGFibGUgaW4gY2FzZXMgd2hlcmUg
dGhlIGlucHV0cyBhcmUgc3BhcnNlIHNvIGxvbmcgYXMgd2UKKyAgICAgICAgLy8gc2hpZnQgb2Zm
IHRoZSB1bmludGVyZXN0aW5nIGJpdHMuIE9uIHRoZSBvdGhlciBoYW5kLCBpdCdzIG5vdCBjbGVh
ciB0aGF0IHRoaXMgd291bGQKKyAgICAgICAgLy8gYWN0dWFsbHkgYmUgYW55IGJldHRlciB0aGFu
IHdoYXQgd2UgaGF2ZSBkb25lIGhlcmUgYW5kIGl0J3Mgbm90IGNsZWFyIHRoYXQgaXQgd291bGQg
YmUKKyAgICAgICAgLy8gYmV0dGVyIHRoYW4gYSBiaW5hcnkgc3dpdGNoLgorICAgICAgICBjb25z
dCB1bnNpZ25lZCBtaW5DYXNlc0ZvclRhYmxlID0gNzsKKyAgICAgICAgY29uc3QgdW5zaWduZWQg
ZGVuc2l0eUxpbWl0ID0gNDsKKyAgICAgICAgaWYgKGVuZCAtIHN0YXJ0ID49IG1pbkNhc2VzRm9y
VGFibGUpIHsKKyAgICAgICAgICAgIGludDY0X3QgZmlyc3RWYWx1ZSA9IGNhc2VzW3N0YXJ0XS5j
YXNlVmFsdWUoKTsKKyAgICAgICAgICAgIGludDY0X3QgbGFzdFZhbHVlID0gY2FzZXNbZW5kIC0g
MV0uY2FzZVZhbHVlKCk7CisgICAgICAgICAgICBpZiAoKGxhc3RWYWx1ZSAtIGZpcnN0VmFsdWUg
KyAxKSAvIGNhc2VzLnNpemUoKSA8IGRlbnNpdHlMaW1pdCkgeworICAgICAgICAgICAgICAgIEJh
c2ljQmxvY2sqIHN3aXRjaEJsb2NrID0gbV9ibG9ja0luc2VydGlvblNldC5pbnNlcnRBZnRlciht
X2Jsb2NrKTsKKyAgICAgICAgICAgICAgICBWYWx1ZSogaW5kZXggPSBiZWZvcmUtPmFwcGVuZE5l
dzxWYWx1ZT4oCisgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgU3ViLCBtX29yaWdpbiwgY2hp
bGQsCisgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kSW50Q29uc3RhbnQobV9wcm9j
LCBtX29yaWdpbiwgdHlwZSwgZmlyc3RWYWx1ZSkpOworICAgICAgICAgICAgICAgIGJlZm9yZS0+
YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBCcmFuY2gsIG1f
b3JpZ2luLAorICAgICAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4oCisg
ICAgICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIEFib3ZlLCBtX29yaWdpbiwgaW5kZXgsCisg
ICAgICAgICAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZEludENvbnN0YW50KG1fcHJvYywg
bV9vcmlnaW4sIHR5cGUsIGxhc3RWYWx1ZSAtIGZpcnN0VmFsdWUpKSk7CisgICAgICAgICAgICAg
ICAgYmVmb3JlLT5zZXRTdWNjZXNzb3JzKGZhbGxUaHJvdWdoLCBGcmVxdWVudGVkQmxvY2soc3dp
dGNoQmxvY2spKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBzaXplX3QgdGFi
bGVTaXplID0gbGFzdFZhbHVlIC0gZmlyc3RWYWx1ZSArIDE7CisgICAgICAgICAgICAgICAgCisg
ICAgICAgICAgICAgICAgaWYgKGluZGV4LT50eXBlKCkgIT0gcG9pbnRlclR5cGUoKSAmJiBpbmRl
eC0+dHlwZSgpID09IEludDMyKQorICAgICAgICAgICAgICAgICAgICBpbmRleCA9IHN3aXRjaEJs
b2NrLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgWkV4dDMyLCBtX29yaWdpbiwgaW5kZXgpOwor
ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFBhdGNocG9pbnRWYWx1ZSogcGF0Y2hw
b2ludCA9CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaEJsb2NrLT5hcHBlbmROZXc8UGF0Y2hw
b2ludFZhbHVlPihtX3Byb2MsIFZvaWQsIG1fb3JpZ2luKTsKKyAgICAgICAgICAgICAgICAKKyAg
ICAgICAgICAgICAgICBwYXRjaHBvaW50LT5lZmZlY3RzLnRlcm1pbmFsID0gdHJ1ZTsKKyAgICAg
ICAgICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmRTb21lUmVnaXN0ZXIoaW5kZXgpOworICAgICAg
ICAgICAgICAgIHBhdGNocG9pbnQtPm51bUdQU2NyYXRjaFJlZ2lzdGVycysrOworICAgICAgICAg
ICAgICAgIC8vIFRlY2huaWNhbGx5LCB3ZSBkb24ndCBoYXZlIHRvIGNsb2JiZXIgbWFjcm8gcmVn
aXN0ZXJzIG9uIFg4Nl82NC4gVGhpcyBpcyBwcm9iYWJseQorICAgICAgICAgICAgICAgIC8vIE9L
IHRob3VnaC4KKyAgICAgICAgICAgICAgICBwYXRjaHBvaW50LT5jbG9iYmVyKFJlZ2lzdGVyU2V0
OjptYWNyb1NjcmF0Y2hSZWdpc3RlcnMoKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAg
ICAgICAgQml0VmVjdG9yIGhhbmRsZWRJbmRpY2VzOworICAgICAgICAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IHN0YXJ0OyBpIDwgZW5kOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgRnJl
cXVlbnRlZEJsb2NrIGJsb2NrID0gY2FzZXNbaV0udGFyZ2V0KCk7CisgICAgICAgICAgICAgICAg
ICAgIGludDY0X3QgdmFsdWUgPSBjYXNlc1tpXS5jYXNlVmFsdWUoKTsKKyAgICAgICAgICAgICAg
ICAgICAgc3dpdGNoQmxvY2stPmFwcGVuZFN1Y2Nlc3NvcihibG9jayk7CisgICAgICAgICAgICAg
ICAgICAgIHNpemVfdCBpbmRleCA9IHZhbHVlIC0gZmlyc3RWYWx1ZTsKKyAgICAgICAgICAgICAg
ICAgICAgQVNTRVJUKCFoYW5kbGVkSW5kaWNlcy5nZXQoaW5kZXgpKTsKKyAgICAgICAgICAgICAg
ICAgICAgaGFuZGxlZEluZGljZXMuc2V0KGluZGV4KTsKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgYm9vbCBoYXNVbmhhbmRsZWRJbmRleCA9IGZh
bHNlOworICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB0YWJsZVNpemU7
ICsraSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIWhhbmRsZWRJbmRpY2VzLmdldChpKSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgaGFzVW5oYW5kbGVkSW5kZXggPSB0cnVlOworICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGhhc1Vu
aGFuZGxlZEluZGV4KQorICAgICAgICAgICAgICAgICAgICBzd2l0Y2hCbG9jay0+YXBwZW5kU3Vj
Y2Vzc29yKGZhbGxUaHJvdWdoKTsKKworICAgICAgICAgICAgICAgIHBhdGNocG9pbnQtPnNldEdl
bmVyYXRvcigKKyAgICAgICAgICAgICAgICAgICAgWz1dIChDQ2FsbEhlbHBlcnMmIGppdCwgY29u
c3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJiBwYXJhbXMpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIEFsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSBhbGxvd1NjcmF0Y2goaml0KTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgTWFjcm9B
c3NlbWJsZXJDb2RlUHRyKiBqdW1wVGFibGUgPSBzdGF0aWNfY2FzdDxNYWNyb0Fzc2VtYmxlckNv
ZGVQdHIqPigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMucHJvYygpLmFkZERh
dGFTZWN0aW9uKHNpemVvZihNYWNyb0Fzc2VtYmxlckNvZGVQdHIpICogdGFibGVTaXplKSk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIEdQUlJlZyBp
bmRleCA9IHBhcmFtc1swXS5ncHIoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIEdQUlJlZyBz
Y3JhdGNoID0gcGFyYW1zLmdwU2NyYXRjaCgwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAor
ICAgICAgICAgICAgICAgICAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1t
UHRyKGp1bXBUYWJsZSksIHNjcmF0Y2gpOworICAgICAgICAgICAgICAgICAgICAgICAgaml0Lmp1
bXAoQ0NhbGxIZWxwZXJzOjpCYXNlSW5kZXgoc2NyYXRjaCwgaW5kZXgsIENDYWxsSGVscGVyczo6
dGltZXNQdHIoKSkpOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAg
ICAgICAgICBWZWN0b3I8Qm94PENDYWxsSGVscGVyczo6TGFiZWw+PiBsYWJlbHMgPSBwYXJhbXMu
c3VjY2Vzc29yTGFiZWxzKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGppdC5hZGRMaW5rVGFzaygKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbPV0gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKGhhc1VuaGFuZGxlZEluZGV4KSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgZmFsbFRocm91Z2ggPQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmtCdWZmZXIubG9jYXRpb25PZigq
bGFiZWxzLmxhc3QoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSB0YWJsZVNpemU7IGktLTspCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAganVtcFRhYmxlW2ldID0gZmFsbFRocm91Z2g7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxhYmVsSW5kZXggPSAwOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIHRhYmxlSW5kZXgg
OiBoYW5kbGVkSW5kaWNlcykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
anVtcFRhYmxlW3RhYmxlSW5kZXhdID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBsaW5rQnVmZmVyLmxvY2F0aW9uT2YoKmxhYmVsc1tsYWJlbEluZGV4KytdKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIC8vIFNlZSBjb21t
ZW50cyBpbiBqaXQvQmluYXJ5U3dpdGNoLmNwcCBmb3IgYSBqdXN0aWZpY2F0aW9uIG9mIHRoaXMg
YWxnb3JpdGhtLiBUaGUgb25seQogICAgICAgICAvLyB0aGluZyB3ZSBkbyBkaWZmZXJlbnRseSBp
cyB0aGF0IHdlIGRvbid0IHVzZSByYW5kb21uZXNzLgpAQCAtMzA0LDI1ICs0MDgsMjMgQEAgcHJp
dmF0ZToKICAgICAgICAgICAgIAogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IGxpbWl0OyArK2kpIHsKICAgICAgICAgICAgICAgICBCYXNpY0Jsb2NrKiBuZXh0Q2hlY2sgPSBt
X2Jsb2NrSW5zZXJ0aW9uU2V0Lmluc2VydEFmdGVyKG1fYmxvY2spOwotICAgICAgICAgICAgICAg
IGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgICAgICAgICAgYmVmb3Jl
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIEJyYW5jaCwg
bV9vcmlnaW4sCiAgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PFZhbHVlPigK
LSAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgRXF1YWwsIG1fb3JpZ2luLCBtX3ZhbHVl
LT5jaGlsZCgwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgRXF1YWwsIG1fb3Jp
Z2luLCBjaGlsZCwKICAgICAgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kSW50Q29u
c3RhbnQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwgbV92
YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNl
c1tzdGFydCArIGldLmNhc2VWYWx1ZSgpKSksCi0gICAgICAgICAgICAgICAgICAgIGNhc2VzW3N0
YXJ0ICsgaV0udGFyZ2V0KCksIEZyZXF1ZW50ZWRCbG9jayhuZXh0Q2hlY2spKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLCB0eXBlLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNhc2VzW3N0YXJ0ICsgaV0uY2FzZVZhbHVlKCkpKSk7CisgICAgICAg
ICAgICAgICAgYmVmb3JlLT5zZXRTdWNjZXNzb3JzKGNhc2VzW3N0YXJ0ICsgaV0udGFyZ2V0KCks
IEZyZXF1ZW50ZWRCbG9jayhuZXh0Q2hlY2spKTsKIAogICAgICAgICAgICAgICAgIGJlZm9yZSA9
IG5leHRDaGVjazsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgaWYgKGFsbENvbnNlY3V0
aXZlKSB7Ci0gICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
LSAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBKdW1wLCBtX29yaWdpbiwgY2FzZXNbZW5kIC0g
MV0udGFyZ2V0KCkpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBiZWZv
cmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAotICAgICAgICAgICAgICAgICAgICBtX3Byb2Ms
IEp1bXAsIG1fb3JpZ2luLCBtX3ZhbHVlLT5hczxTd2l0Y2hWYWx1ZT4oKS0+ZmFsbFRocm91Z2go
KSk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4o
bV9wcm9jLCBKdW1wLCBtX29yaWdpbik7CisgICAgICAgICAgICBpZiAoYWxsQ29uc2VjdXRpdmUp
CisgICAgICAgICAgICAgICAgYmVmb3JlLT5zZXRTdWNjZXNzb3JzKGNhc2VzW2VuZCAtIDFdLnRh
cmdldCgpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBiZWZvcmUtPnNldFN1
Y2Nlc3NvcnMoZmFsbFRocm91Z2gpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAK
QEAgLTMzMSwxNyArNDMzLDE3IEBAIHByaXZhdGU6CiAgICAgICAgIEJhc2ljQmxvY2sqIGxlZnQg
PSBtX2Jsb2NrSW5zZXJ0aW9uU2V0Lmluc2VydEFmdGVyKG1fYmxvY2spOwogICAgICAgICBCYXNp
Y0Jsb2NrKiByaWdodCA9IG1fYmxvY2tJbnNlcnRpb25TZXQuaW5zZXJ0QWZ0ZXIobV9ibG9jayk7
CiAKLSAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgYmVm
b3JlLT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgbV9wcm9jLCBCcmFuY2gsIG1fb3Jp
Z2luLAogICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+KAotICAgICAgICAgICAg
ICAgIG1fcHJvYywgTGVzc1RoYW4sIG1fb3JpZ2luLCBtX3ZhbHVlLT5jaGlsZCgwKSwKKyAgICAg
ICAgICAgICAgICBtX3Byb2MsIExlc3NUaGFuLCBtX29yaWdpbiwgY2hpbGQsCiAgICAgICAgICAg
ICAgICAgYmVmb3JlLT5hcHBlbmRJbnRDb25zdGFudCgKLSAgICAgICAgICAgICAgICAgICAgbV9w
cm9jLCBtX29yaWdpbiwgbV92YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSwKLSAgICAgICAgICAgICAg
ICAgICAgY2FzZXNbbWVkaWFuSW5kZXhdLmNhc2VWYWx1ZSgpKSksCi0gICAgICAgICAgICBGcmVx
dWVudGVkQmxvY2sobGVmdCksIEZyZXF1ZW50ZWRCbG9jayhyaWdodCkpOworICAgICAgICAgICAg
ICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLCB0eXBlLAorICAgICAgICAgICAgICAgICAgICBjYXNl
c1ttZWRpYW5JbmRleF0uY2FzZVZhbHVlKCkpKSk7CisgICAgICAgIGJlZm9yZS0+c2V0U3VjY2Vz
c29ycyhGcmVxdWVudGVkQmxvY2sobGVmdCksIEZyZXF1ZW50ZWRCbG9jayhyaWdodCkpOwogCi0g
ICAgICAgIHJlY3Vyc2l2ZWx5QnVpbGRTd2l0Y2goY2FzZXMsIHN0YXJ0LCBoYXJkU3RhcnQsIG1l
ZGlhbkluZGV4LCBsZWZ0KTsKLSAgICAgICAgcmVjdXJzaXZlbHlCdWlsZFN3aXRjaChjYXNlcywg
bWVkaWFuSW5kZXgsIHRydWUsIGVuZCwgcmlnaHQpOworICAgICAgICByZWN1cnNpdmVseUJ1aWxk
U3dpdGNoKGNhc2VzLCBmYWxsVGhyb3VnaCwgc3RhcnQsIGhhcmRTdGFydCwgbWVkaWFuSW5kZXgs
IGxlZnQpOworICAgICAgICByZWN1cnNpdmVseUJ1aWxkU3dpdGNoKGNhc2VzLCBmYWxsVGhyb3Vn
aCwgbWVkaWFuSW5kZXgsIHRydWUsIGVuZCwgcmlnaHQpOwogICAgIH0KICAgICAKICAgICBQcm9j
ZWR1cmUmIG1fcHJvYzsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9B
aXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9B
aXIuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNM
b3dlclRvQWlyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU1LDcgKzE1NSw2IEBAIHB1YmxpYzoK
ICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgdGhlIHN1Y2Nl
c3NvcnMgYXJlIHNldCB1cCBjb3JyZWN0bHkuCi0gICAgICAgICAgICBBU1NFUlQoYmxvY2stPnN1
Y2Nlc3NvcnMoKS5zaXplKCkgPD0gMik7CiAgICAgICAgICAgICBmb3IgKEIzOjpGcmVxdWVudGVk
QmxvY2sgc3VjY2Vzc29yIDogYmxvY2stPnN1Y2Nlc3NvcnMoKSkgewogICAgICAgICAgICAgICAg
IG1fYmxvY2tUb0Jsb2NrW2Jsb2NrXS0+c3VjY2Vzc29ycygpLmFwcGVuZCgKICAgICAgICAgICAg
ICAgICAgICAgQWlyOjpGcmVxdWVudGVkQmxvY2sobV9ibG9ja1RvQmxvY2tbc3VjY2Vzc29yLmJs
b2NrKCldLCBzdWNjZXNzb3IuZnJlcXVlbmN5KCkpKTsKQEAgLTI0NDEsNyArMjQ0MCw3IEBAIHBy
aXZhdGU6CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLQor
ICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgQjM6Ok9vcHM6IHsKICAgICAgICAgICAgIGFwcGVu
ZChBaXI6Ok9vcHMpOwogICAgICAgICAgICAgcmV0dXJuOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzTWF0aEV4dHJhcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzTWF0aEV4dHJhcy5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM01hdGhFeHRyYXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDcgKzMz
LDYgQEAKICNpbmNsdWRlICJCM0NvbnN0MzJWYWx1ZS5oIgogI2luY2x1ZGUgIkIzQ29uc3REb3Vi
bGVWYWx1ZS5oIgogI2luY2x1ZGUgIkIzQ29uc3RQdHJWYWx1ZS5oIgotI2luY2x1ZGUgIkIzQ29u
dHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNVcHNpbG9uVmFsdWUuaCIKICNpbmNsdWRlICJCM1Zh
bHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIk1hdGhDb21tb24uaCIKQEAgLTUyLDEwICs1MSw4IEBA
IHN0ZDo6cGFpcjxCYXNpY0Jsb2NrKiwgVmFsdWUqPiBwb3dEb3VibGUKICAgICBWYWx1ZSogc2hv
dWxkR29TbG93UGF0aCA9IHN0YXJ0LT5hcHBlbmROZXc8VmFsdWU+KHByb2NlZHVyZSwgQWJvdmUs
IG9yaWdpbiwKICAgICAgICAgeSwKICAgICAgICAgc3RhcnQtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2NlZHVyZSwgb3JpZ2luLCBtYXhFeHBvbmVudEZvckludGVnZXJNYXRoUG93KSk7Ci0g
ICAgc3RhcnQtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAotICAgICAgICBwcm9jZWR1cmUsIEJy
YW5jaCwgb3JpZ2luLAotICAgICAgICBzaG91bGRHb1Nsb3dQYXRoLAotICAgICAgICBGcmVxdWVu
dGVkQmxvY2soZnVuY3Rpb25DYWxsQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhsb29wUHJlSGVhZGVy
Q2FzZSkpOworICAgIHN0YXJ0LT5hcHBlbmROZXc8VmFsdWU+KHByb2NlZHVyZSwgQnJhbmNoLCBv
cmlnaW4sIHNob3VsZEdvU2xvd1BhdGgpOworICAgIHN0YXJ0LT5zZXRTdWNjZXNzb3JzKEZyZXF1
ZW50ZWRCbG9jayhmdW5jdGlvbkNhbGxDYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3BQcmVIZWFk
ZXJDYXNlKSk7CiAKICAgICAvLyBGdW5jdGlvbiBjYWxsLgogICAgIFZhbHVlKiB5QXNEb3VibGUg
PSBmdW5jdGlvbkNhbGxDYXNlLT5hcHBlbmROZXc8VmFsdWU+KHByb2NlZHVyZSwgSVRvRCwgb3Jp
Z2luLCB5KTsKQEAgLTY1LDcgKzYyLDggQEAgc3RkOjpwYWlyPEJhc2ljQmxvY2sqLCBWYWx1ZSo+
IHBvd0RvdWJsZQogICAgICAgICBmdW5jdGlvbkNhbGxDYXNlLT5hcHBlbmROZXc8Q29uc3RQdHJW
YWx1ZT4ocHJvY2VkdXJlLCBvcmlnaW4sIGJpdHdpc2VfY2FzdDx2b2lkKj4ocG93RG91YmxlKSks
CiAgICAgICAgIHgsIHlBc0RvdWJsZSk7CiAgICAgVXBzaWxvblZhbHVlKiBwb3dSZXN1bHRVcHNp
bG9uID0gZnVuY3Rpb25DYWxsQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvY2VkdXJl
LCBvcmlnaW4sIHBvd1Jlc3VsdCk7Ci0gICAgZnVuY3Rpb25DYWxsQ2FzZS0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvY2VkdXJlLCBKdW1wLCBvcmlnaW4sIEZyZXF1ZW50ZWRCbG9jayhjb250
aW51YXRpb24pKTsKKyAgICBmdW5jdGlvbkNhbGxDYXNlLT5hcHBlbmROZXc8VmFsdWU+KHByb2Nl
ZHVyZSwgSnVtcCwgb3JpZ2luKTsKKyAgICBmdW5jdGlvbkNhbGxDYXNlLT5zZXRTdWNjZXNzb3Jz
KEZyZXF1ZW50ZWRCbG9jayhjb250aW51YXRpb24pKTsKIAogICAgIC8vIExvb3AgcHJlLWhlYWRl
ci4KICAgICBWYWx1ZSogaW5pdGlhbFJlc3VsdCA9IGxvb3BQcmVIZWFkZXJDYXNlLT5hcHBlbmRO
ZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvY2VkdXJlLCBvcmlnaW4sIDEuKTsKQEAgLTczLDcgKzcx
LDggQEAgc3RkOjpwYWlyPEJhc2ljQmxvY2sqLCBWYWx1ZSo+IHBvd0RvdWJsZQogICAgIFVwc2ls
b25WYWx1ZSogaW5pdGlhbFJlc3VsdFZhbHVlID0gbG9vcFByZUhlYWRlckNhc2UtPmFwcGVuZE5l
dzxVcHNpbG9uVmFsdWU+KHByb2NlZHVyZSwgb3JpZ2luLCBpbml0aWFsUmVzdWx0KTsKICAgICBV
cHNpbG9uVmFsdWUqIGluaXRpYWxTcXVhcmVkSW5wdXQgPSBsb29wUHJlSGVhZGVyQ2FzZS0+YXBw
ZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvY2VkdXJlLCBvcmlnaW4sIHgpOwogICAgIFVwc2lsb25W
YWx1ZSogaW5pdGlhbExvb3BDb3VudGVyID0gbG9vcFByZUhlYWRlckNhc2UtPmFwcGVuZE5ldzxV
cHNpbG9uVmFsdWU+KHByb2NlZHVyZSwgb3JpZ2luLCB5KTsKLSAgICBsb29wUHJlSGVhZGVyQ2Fz
ZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvY2VkdXJlLCBKdW1wLCBvcmlnaW4sIEZyZXF1
ZW50ZWRCbG9jayhsb29wVGVzdEZvckV2ZW5DYXNlKSk7CisgICAgbG9vcFByZUhlYWRlckNhc2Ut
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvY2VkdXJlLCBKdW1wLCBvcmlnaW4pOworICAgIGxvb3BQcmVI
ZWFkZXJDYXNlLT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhsb29wVGVzdEZvckV2ZW5D
YXNlKSk7CiAKICAgICAvLyBUZXN0IGlmIHdoYXQgaXMgbGVmdCBvZiB0aGUgY291bnRlciBpcyBl
dmVuLgogICAgIFZhbHVlKiBpbkxvb3BDb3VudGVyID0gbG9vcFRlc3RGb3JFdmVuQ2FzZS0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jZWR1cmUsIFBoaSwgSW50MzIsIG9yaWdpbik7CkBAIC04MSwxMCAr
ODAsOCBAQCBzdGQ6OnBhaXI8QmFzaWNCbG9jayosIFZhbHVlKj4gcG93RG91YmxlCiAgICAgVmFs
dWUqIGxhc3RDb3VudGVyQml0ID0gbG9vcFRlc3RGb3JFdmVuQ2FzZS0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jZWR1cmUsIEJpdEFuZCwgb3JpZ2luLAogICAgICAgICBpbkxvb3BDb3VudGVyLAogICAg
ICAgICBsb29wVGVzdEZvckV2ZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jZWR1
cmUsIG9yaWdpbiwgMSkpOwotICAgIGxvb3BUZXN0Rm9yRXZlbkNhc2UtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAotICAgICAgICBwcm9jZWR1cmUsIEJyYW5jaCwgb3JpZ2luLAotICAgICAgICBs
YXN0Q291bnRlckJpdCwKLSAgICAgICAgRnJlcXVlbnRlZEJsb2NrKGxvb3BPZGQpLCBGcmVxdWVu
dGVkQmxvY2sobG9vcEV2ZW5PZGQpKTsKKyAgICBsb29wVGVzdEZvckV2ZW5DYXNlLT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2NlZHVyZSwgQnJhbmNoLCBvcmlnaW4sIGxhc3RDb3VudGVyQml0KTsKKyAg
ICBsb29wVGVzdEZvckV2ZW5DYXNlLT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhsb29w
T2RkKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3BFdmVuT2RkKSk7CiAKICAgICAvLyBDb3VudGVyIGlz
IG9kZC4KICAgICBWYWx1ZSogaW5Mb29wUmVzdWx0ID0gbG9vcE9kZC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jZWR1cmUsIFBoaSwgRG91YmxlLCBvcmlnaW4pOwpAQCAtOTQsNyArOTEsOCBAQCBzdGQ6
OnBhaXI8QmFzaWNCbG9jayosIFZhbHVlKj4gcG93RG91YmxlCiAgICAgdXBkYXRlZExvb3BSZXN1
bHRVcHNpbG9uLT5zZXRQaGkoaW5Mb29wUmVzdWx0KTsKICAgICBVcHNpbG9uVmFsdWUqIHVwZGF0
ZWRMb29wUmVzdWx0ID0gbG9vcE9kZC0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvY2VkdXJl
LCBvcmlnaW4sIHVwZGF0ZWRSZXN1bHQpOwogCi0gICAgbG9vcE9kZC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvY2VkdXJlLCBKdW1wLCBvcmlnaW4sIEZyZXF1ZW50ZWRCbG9jayhsb29wRXZl
bk9kZCkpOworICAgIGxvb3BPZGQtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvY2VkdXJlLCBKdW1wLCBv
cmlnaW4pOworICAgIGxvb3BPZGQtPnNldFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2NrKGxvb3BF
dmVuT2RkKSk7CiAKICAgICAvLyBFdmVuIHZhbHVlIGFuZCBmb2xsb3dpbmcgdGhlIE9kZC4KICAg
ICBWYWx1ZSogc3F1YXJlZElucHV0ID0gbG9vcEV2ZW5PZGQtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
Y2VkdXJlLCBNdWwsIG9yaWdpbiwgaW5Mb29wU3F1YXJlZElucHV0LCBpbkxvb3BTcXVhcmVkSW5w
dXQpOwpAQCAtMTA5LDEwICsxMDcsOCBAQCBzdGQ6OnBhaXI8QmFzaWNCbG9jayosIFZhbHVlKj4g
cG93RG91YmxlCiAgICAgaW5pdGlhbExvb3BDb3VudGVyLT5zZXRQaGkoaW5Mb29wQ291bnRlcik7
CiAgICAgdXBkYXRlZENvdW50ZXJVcHNpbG9uLT5zZXRQaGkoaW5Mb29wQ291bnRlcik7CiAKLSAg
ICBsb29wRXZlbk9kZC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCi0gICAgICAgIHByb2NlZHVy
ZSwgQnJhbmNoLCBvcmlnaW4sCi0gICAgICAgIHVwZGF0ZWRDb3VudGVyLAotICAgICAgICBGcmVx
dWVudGVkQmxvY2sobG9vcFRlc3RGb3JFdmVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhjb250aW51
YXRpb24pKTsKKyAgICBsb29wRXZlbk9kZC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jZWR1cmUsIEJy
YW5jaCwgb3JpZ2luLCB1cGRhdGVkQ291bnRlcik7CisgICAgbG9vcEV2ZW5PZGQtPnNldFN1Y2Nl
c3NvcnMoRnJlcXVlbnRlZEJsb2NrKGxvb3BUZXN0Rm9yRXZlbkNhc2UpLCBGcmVxdWVudGVkQmxv
Y2soY29udGludWF0aW9uKSk7CiAKICAgICAvLyBJbmxpbmUgbG9vcC4KICAgICBWYWx1ZSogZmlu
YWxSZXN1bHRQaGkgPSBjb250aW51YXRpb24tPmFwcGVuZE5ldzxWYWx1ZT4ocHJvY2VkdXJlLCBQ
aGksIERvdWJsZSwgb3JpZ2luKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09w
Y29kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5o
CShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUu
aAkod29ya2luZyBjb3B5KQpAQCAtMjA3LDIxICsyMDcsMjEgQEAgZW51bSBPcGNvZGUgOiBpbnQx
Nl90IHsKICAgICBVcHNpbG9uLCAvLyBUaGlzIHVzZXMgdGhlIFVwc2lsb25WYWx1ZSBjbGFzcy4K
ICAgICBQaGksCiAKLSAgICAvLyBKdW1wLiBVc2VzIHRoZSBDb250cm9sVmFsdWUgY2xhc3MuCisg
ICAgLy8gSnVtcC4KICAgICBKdW1wLAogICAgIAotICAgIC8vIFBvbHltb3JwaGljIGJyYW5jaCwg
dXNhYmxlIHdpdGggYW55IGludGVnZXIgdHlwZS4gQnJhbmNoZXMgaWYgbm90IGVxdWFsIHRvIHpl
cm8uIFVzZXMgdGhlCi0gICAgLy8gQ29udHJvbFZhbHVlIGNsYXNzLCB3aXRoIHRoZSAwLWluZGV4
IHN1Y2Nlc3NvciBiZWluZyB0aGUgdHJ1ZSBzdWNjZXNzb3IuCisgICAgLy8gUG9seW1vcnBoaWMg
YnJhbmNoLCB1c2FibGUgd2l0aCBhbnkgaW50ZWdlciB0eXBlLiBCcmFuY2hlcyBpZiBub3QgZXF1
YWwgdG8gemVyby4gVGhlIDAtaW5kZXgKKyAgICAvLyBzdWNjZXNzb3IgaXMgdGhlIHRydWUgc3Vj
Y2Vzc29yLgogICAgIEJyYW5jaCwKIAogICAgIC8vIFN3aXRjaC4gU3dpdGNoZXMgb3ZlciBlaXRo
ZXIgSW50MzIgb3IgSW50NjQuIFVzZXMgdGhlIFN3aXRjaFZhbHVlIGNsYXNzLgogICAgIFN3aXRj
aCwKLQorICAgIAogICAgIC8vIFJldHVybi4gTm90ZSB0aGF0IEIzIHByb2NlZHVyZXMgZG9uJ3Qg
a25vdyB0aGVpciByZXR1cm4gdHlwZSwgc28gdGhpcyBjYW4ganVzdCByZXR1cm4gYW55Ci0gICAg
Ly8gdHlwZS4gVXNlcyB0aGUgQ29udHJvbFZhbHVlIGNsYXNzLgorICAgIC8vIHR5cGUuCiAgICAg
UmV0dXJuLAogCi0gICAgLy8gVGhpcyBpcyBhIHRlcm1pbmFsIHRoYXQgaW5kaWNhdGVzIHRoYXQg
d2Ugd2lsbCBuZXZlciBnZXQgaGVyZS4gVXNlcyB0aGUgQ29udHJvbFZhbHVlIGNsYXNzLgorICAg
IC8vIFRoaXMgaXMgYSB0ZXJtaW5hbCB0aGF0IGluZGljYXRlcyB0aGF0IHdlIHdpbGwgbmV2ZXIg
Z2V0IGhlcmUuCiAgICAgT29wcwogfTsKIApAQCAtMjU5LDYgKzI1OSwyMCBAQCBpbmxpbmUgYm9v
bCBpc0NvbnN0YW50KE9wY29kZSBvcGNvZGUpCiAgICAgfQogfQogCitpbmxpbmUgYm9vbCBpc0Rl
ZmluaXRlbHlUZXJtaW5hbChPcGNvZGUgb3Bjb2RlKQoreworICAgIHN3aXRjaCAob3Bjb2RlKSB7
CisgICAgY2FzZSBKdW1wOgorICAgIGNhc2UgQnJhbmNoOgorICAgIGNhc2UgU3dpdGNoOgorICAg
IGNhc2UgT29wczoKKyAgICBjYXNlIFJldHVybjoKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
ZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KKwogfSB9IC8vIG5hbWVz
cGFjZSBKU0M6OkIzCiAKIG5hbWVzcGFjZSBXVEYgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzUGF0Y2hwb2ludFNwZWNpYWwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM1BhdGNocG9pbnRTcGVjaWFsLmNwcAkocmV2aXNpb24gMjAyODA5KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUGF0Y2hwb2ludFNwZWNpYWwuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNDYsNiArMTQ2LDExIEBAIENDYWxsSGVscGVyczo6SnVtcCBQYXRjaHBv
aW50U3BlY2lhbDo6Z2UKICAgICByZXR1cm4gQ0NhbGxIZWxwZXJzOjpKdW1wKCk7CiB9CiAKK2Jv
b2wgUGF0Y2hwb2ludFNwZWNpYWw6OmlzVGVybWluYWwoSW5zdCYgaW5zdCkKK3sKKyAgICByZXR1
cm4gaW5zdC5vcmlnaW4tPmFzPFBhdGNocG9pbnRWYWx1ZT4oKS0+ZWZmZWN0cy50ZXJtaW5hbDsK
K30KKwogdm9pZCBQYXRjaHBvaW50U3BlY2lhbDo6ZHVtcEltcGwoUHJpbnRTdHJlYW0mIG91dCkg
Y29uc3QKIHsKICAgICBvdXQucHJpbnQoIlBhdGNocG9pbnQiKTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM1BhdGNocG9pbnRTcGVjaWFsLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzUGF0Y2hwb2ludFNwZWNpYWwuaAkocmV2aXNpb24gMjAyODA5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUGF0Y2hwb2ludFNwZWNpYWwuaAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC01Niw2ICs1Niw4IEBAIHByb3RlY3RlZDoKICAgICAvLyBnZW5lcmF0ZXMgdGhl
IHN0YWNrbWFwLiBTdXBlciBjcmF6eSBkdWRlIQogCiAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGdl
bmVyYXRlKEFpcjo6SW5zdCYsIENDYWxsSGVscGVycyYsIEFpcjo6R2VuZXJhdGlvbkNvbnRleHQm
KSBvdmVycmlkZTsKKyAgICAKKyAgICBib29sIGlzVGVybWluYWwoQWlyOjpJbnN0Jikgb3ZlcnJp
ZGU7CiAKICAgICB2b2lkIGR1bXBJbXBsKFByaW50U3RyZWFtJikgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBkZWVwRHVtcEltcGwoUHJpbnRTdHJlYW0mKSBjb25zdCBvdmVycmlkZTsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmNwcAkocmV2aXNpb24gMjAyODA5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTQ4LDMxICsxNDgsNiBAQCB2b2lkIFByb2NlZHVyZTo6cmVzZXRWYWx1ZU93bmVy
cygpCiAKIHZvaWQgUHJvY2VkdXJlOjpyZXNldFJlYWNoYWJpbGl0eSgpCiB7Ci0gICAgaWYgKHNo
b3VsZFZhbGlkYXRlSVIoKSkgewotICAgICAgICAvLyBWYWxpZGF0ZSB0aGUgYmFzaWMgcHJvcGVy
dGllcyB0aGF0IHdlIG5lZWQgZm9yIHJlc2V0dGluZyByZWFjaGFiaWxpdHkuIFdlIG9mdGVuIHJl
c2V0Ci0gICAgICAgIC8vIHJlYWNoYWJpbGl0eSBiZWZvcmUgSVIgdmFsaWRhdGlvbiwgc28gd2l0
aG91dCB0aGlzIG1pbmktdmFsaWRhdGlvbiwgeW91IHdvdWxkIGNyYXNoIGluc2lkZQotICAgICAg
ICAvLyBCMzo6cmVzZXRSZWFjaGFiaWxpdHkoKSB3aXRob3V0IGdldHRpbmcgYW55IElSIGR1bXAu
Ci0KLSAgICAgICAgQmFzaWNCbG9jayogYmFkQmxvY2sgPSBudWxscHRyOwotICAgICAgICBmb3Ig
KEJhc2ljQmxvY2sqIGJsb2NrIDogKnRoaXMpIHsKLSAgICAgICAgICAgIGlmICghYmxvY2stPnNp
emUoKSkgewotICAgICAgICAgICAgICAgIGJhZEJsb2NrID0gYmxvY2s7Ci0gICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmICghYmxvY2stPmxhc3Qo
KS0+YXM8Q29udHJvbFZhbHVlPigpKSB7Ci0gICAgICAgICAgICAgICAgYmFkQmxvY2sgPSBibG9j
azsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0g
ICAgICAgIGlmIChiYWRCbG9jaykgewotICAgICAgICAgICAgZGF0YUxvZygiRkFUQUw6IEludmFs
aWQgYmFzaWMgYmxvY2sgIiwgKmJhZEJsb2NrLCAiIHdoaWxlIHJ1bm5pbmcgUHJvY2VkdXJlOjpy
ZXNldFJlYWNoYWJpbGl0eSgpLlxuIik7Ci0gICAgICAgICAgICBkYXRhTG9nKCp0aGlzKTsKLSAg
ICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIH0KLSAgICB9
Ci0gICAgCiAgICAgcmVjb21wdXRlUHJlZGVjZXNzb3JzKG1fYmxvY2tzKTsKICAgICAKICAgICAv
LyBUaGUgY29tbW9uIGNhc2UgaXMgdGhhdCB0aGlzIGRvZXMgbm90IGZpbmQgYW55IGRlYWQgYmxv
Y2tzLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmgJKHJldmlzaW9u
IDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMTgsNyArMjE4LDEwIEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IGNoYXIq
IGxhc3RQaGFzZU5hbWUoKSBjb25zdCB7IHJldHVybiBtX2xhc3RQaGFzZU5hbWU7IH0KIAotICAg
IHZvaWQqIGFkZERhdGFTZWN0aW9uKHNpemVfdCBzaXplKTsKKyAgICAvLyBBbGxvY2F0ZXMgYSBz
bGFiIG9mIG1lbW9yeSB0aGF0IHdpbGwgYmUga2VwdCBhbGl2ZSBieSBhbnlvbmUgd2hvIGtlZXBz
IHRoZSByZXN1bHRpbmcgY29kZQorICAgIC8vIGFsaXZlLiBHcmVhdCBmb3IgY29tcGlsZXItZ2Vu
ZXJhdGVkIGRhdGEgc2VjdGlvbnMsIGxpa2Ugc3dpdGNoIGp1bXAgdGFibGVzIGFuZCBjb25zdGFu
dCBwb29scy4KKyAgICAvLyBUaGlzIHJldHVybnMgbWVtb3J5IHRoYXQgaGFzIGJlZW4gemVyby1p
bml0aWFsaXplZC4KKyAgICB2b2lkKiBhZGREYXRhU2VjdGlvbihzaXplX3QpOwogCiAgICAgT3Bh
cXVlQnlwcm9kdWN0cyYgYnlwcm9kdWN0cygpIHsgcmV0dXJuICptX2J5cHJvZHVjdHM7IH0KIApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcAko
cmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3Ry
ZW5ndGguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiQjNC
YXNpY0Jsb2NrSW5saW5lcy5oIgogI2luY2x1ZGUgIkIzQmxvY2tJbnNlcnRpb25TZXQuaCIKICNp
bmNsdWRlICJCM0NvbXB1dGVEaXZpc2lvbk1hZ2ljLmgiCi0jaW5jbHVkZSAiQjNDb250cm9sVmFs
dWUuaCIKICNpbmNsdWRlICJCM0RvbWluYXRvcnMuaCIKICNpbmNsdWRlICJCM0luZGV4U2V0Lmgi
CiAjaW5jbHVkZSAiQjNJbnNlcnRpb25TZXRJbmxpbmVzLmgiCkBAIC0xNzE3LDcgKzE3MTYsNyBA
QCBwcml2YXRlOgogICAgICAgICAgICAgICAgIC8vIFJlcGxhY2UgdGhlIHJlc3Qgb2YgdGhlIGJs
b2NrIHdpdGggYW4gT29wcy4KICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBtX2lu
ZGV4ICsgMTsgaSA8IG1fYmxvY2stPnNpemUoKSAtIDE7ICsraSkKICAgICAgICAgICAgICAgICAg
ICAgbV9ibG9jay0+YXQoaSktPnJlcGxhY2VXaXRoQm90dG9tKG1faW5zZXJ0aW9uU2V0LCBtX2lu
ZGV4KTsKLSAgICAgICAgICAgICAgICBtX2Jsb2NrLT5sYXN0KCktPmFzPENvbnRyb2xWYWx1ZT4o
KS0+Y29udmVydFRvT29wcygpOworICAgICAgICAgICAgICAgIG1fYmxvY2stPmxhc3QoKS0+cmVw
bGFjZVdpdGhPb3BzKG1fYmxvY2spOwogICAgICAgICAgICAgICAgIG1fYmxvY2stPmxhc3QoKS0+
c2V0T3JpZ2luKGNoZWNrVmFsdWUtPm9yaWdpbigpKTsKIAogICAgICAgICAgICAgICAgIC8vIFJl
cGxhY2Ugb3Vyc2VsdmVzIGxhc3QuCkBAIC0xNzczLDYgKzE3NzIsNyBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUtPm9wY29kZSgpID09IFNlbGVjdAogICAgICAg
ICAgICAgICAgICAgICAgICAgJiYgKHZhbHVlLT5jaGlsZCgxKS0+aXNDb25zdGFudCgpICYmIHZh
bHVlLT5jaGlsZCgyKS0+aXNDb25zdGFudCgpKTsKICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIAogICAgICAgICAgICAgaWYgKHNlbGVjdCkgewogICAgICAgICAgICAgICAgIHNwZWNp
YWxpemVTZWxlY3Qoc2VsZWN0KTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTE3ODEsNTAg
KzE3ODEsNDggQEAgcHJpdmF0ZToKICAgICAgICAgfQogCiAgICAgICAgIGNhc2UgQnJhbmNoOiB7
Ci0gICAgICAgICAgICBDb250cm9sVmFsdWUqIGJyYW5jaCA9IG1fdmFsdWUtPmFzPENvbnRyb2xW
YWx1ZT4oKTsKLQogICAgICAgICAgICAgLy8gVHVybiB0aGlzOiBCcmFuY2goTm90RXF1YWwoeCwg
MCkpCiAgICAgICAgICAgICAvLyBJbnRvIHRoaXM6IEJyYW5jaCh4KQotICAgICAgICAgICAgaWYg
KGJyYW5jaC0+Y2hpbGQoMCktPm9wY29kZSgpID09IE5vdEVxdWFsICYmIGJyYW5jaC0+Y2hpbGQo
MCktPmNoaWxkKDEpLT5pc0ludCgwKSkgewotICAgICAgICAgICAgICAgIGJyYW5jaC0+Y2hpbGQo
MCkgPSBicmFuY2gtPmNoaWxkKDApLT5jaGlsZCgwKTsKKyAgICAgICAgICAgIGlmIChtX3ZhbHVl
LT5jaGlsZCgwKS0+b3Bjb2RlKCkgPT0gTm90RXF1YWwgJiYgbV92YWx1ZS0+Y2hpbGQoMCktPmNo
aWxkKDEpLT5pc0ludCgwKSkgeworICAgICAgICAgICAgICAgIG1fdmFsdWUtPmNoaWxkKDApID0g
bV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDApOwogICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9
IHRydWU7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIC8vIFR1cm4gdGhpczogQnJhbmNo
KEVxdWFsKHgsIDApLCB0aGVuLCBlbHNlKQogICAgICAgICAgICAgLy8gSW50byB0aGlzOiBCcmFu
Y2goeCwgZWxzZSwgdGhlbikKLSAgICAgICAgICAgIGlmIChicmFuY2gtPmNoaWxkKDApLT5vcGNv
ZGUoKSA9PSBFcXVhbCAmJiBicmFuY2gtPmNoaWxkKDApLT5jaGlsZCgxKS0+aXNJbnQoMCkpIHsK
LSAgICAgICAgICAgICAgICBicmFuY2gtPmNoaWxkKDApID0gYnJhbmNoLT5jaGlsZCgwKS0+Y2hp
bGQoMCk7Ci0gICAgICAgICAgICAgICAgc3RkOjpzd2FwKGJyYW5jaC0+dGFrZW4oKSwgYnJhbmNo
LT5ub3RUYWtlbigpKTsKKyAgICAgICAgICAgIGlmIChtX3ZhbHVlLT5jaGlsZCgwKS0+b3Bjb2Rl
KCkgPT0gRXF1YWwgJiYgbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDEpLT5pc0ludCgwKSkgewor
ICAgICAgICAgICAgICAgIG1fdmFsdWUtPmNoaWxkKDApID0gbV92YWx1ZS0+Y2hpbGQoMCktPmNo
aWxkKDApOworICAgICAgICAgICAgICAgIHN0ZDo6c3dhcChtX2Jsb2NrLT50YWtlbigpLCBtX2Js
b2NrLT5ub3RUYWtlbigpKTsKICAgICAgICAgICAgICAgICBtX2NoYW5nZWQgPSB0cnVlOwogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgICAgICAvLyBUdXJuIHRoaXM6IEJyYW5j
aChCaXRYb3IoYm9vbCwgMSksIHRoZW4sIGVsc2UpCiAgICAgICAgICAgICAvLyBJbnRvIHRoaXM6
IEJyYW5jaChib29sLCBlbHNlLCB0aGVuKQotICAgICAgICAgICAgaWYgKGJyYW5jaC0+Y2hpbGQo
MCktPm9wY29kZSgpID09IEJpdFhvcgotICAgICAgICAgICAgICAgICYmIGJyYW5jaC0+Y2hpbGQo
MCktPmNoaWxkKDEpLT5pc0ludDMyKDEpCi0gICAgICAgICAgICAgICAgJiYgYnJhbmNoLT5jaGls
ZCgwKS0+Y2hpbGQoMCktPnJldHVybnNCb29sKCkpIHsKLSAgICAgICAgICAgICAgICBicmFuY2gt
PmNoaWxkKDApID0gYnJhbmNoLT5jaGlsZCgwKS0+Y2hpbGQoMCk7Ci0gICAgICAgICAgICAgICAg
c3RkOjpzd2FwKGJyYW5jaC0+dGFrZW4oKSwgYnJhbmNoLT5ub3RUYWtlbigpKTsKKyAgICAgICAg
ICAgIGlmIChtX3ZhbHVlLT5jaGlsZCgwKS0+b3Bjb2RlKCkgPT0gQml0WG9yCisgICAgICAgICAg
ICAgICAgJiYgbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDEpLT5pc0ludDMyKDEpCisgICAgICAg
ICAgICAgICAgJiYgbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDApLT5yZXR1cm5zQm9vbCgpKSB7
CisgICAgICAgICAgICAgICAgbV92YWx1ZS0+Y2hpbGQoMCkgPSBtX3ZhbHVlLT5jaGlsZCgwKS0+
Y2hpbGQoMCk7CisgICAgICAgICAgICAgICAgc3RkOjpzd2FwKG1fYmxvY2stPnRha2VuKCksIG1f
YmxvY2stPm5vdFRha2VuKCkpOwogICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7CiAg
ICAgICAgICAgICB9CiAKICAgICAgICAgICAgIC8vIFR1cm4gdGhpczogQnJhbmNoKEJpdEFuZChi
b29sLCB4eWIxKSwgdGhlbiwgZWxzZSkKICAgICAgICAgICAgIC8vIEludG8gdGhpczogQnJhbmNo
KGJvb2wsIHRoZW4sIGVsc2UpCi0gICAgICAgICAgICBpZiAoYnJhbmNoLT5jaGlsZCgwKS0+b3Bj
b2RlKCkgPT0gQml0QW5kCi0gICAgICAgICAgICAgICAgJiYgYnJhbmNoLT5jaGlsZCgwKS0+Y2hp
bGQoMSktPmhhc0ludCgpCi0gICAgICAgICAgICAgICAgJiYgYnJhbmNoLT5jaGlsZCgwKS0+Y2hp
bGQoMSktPmFzSW50KCkgJiAxCi0gICAgICAgICAgICAgICAgJiYgYnJhbmNoLT5jaGlsZCgwKS0+
Y2hpbGQoMCktPnJldHVybnNCb29sKCkpIHsKLSAgICAgICAgICAgICAgICBicmFuY2gtPmNoaWxk
KDApID0gYnJhbmNoLT5jaGlsZCgwKS0+Y2hpbGQoMCk7CisgICAgICAgICAgICBpZiAobV92YWx1
ZS0+Y2hpbGQoMCktPm9wY29kZSgpID09IEJpdEFuZAorICAgICAgICAgICAgICAgICYmIG1fdmFs
dWUtPmNoaWxkKDApLT5jaGlsZCgxKS0+aGFzSW50KCkKKyAgICAgICAgICAgICAgICAmJiBtX3Zh
bHVlLT5jaGlsZCgwKS0+Y2hpbGQoMSktPmFzSW50KCkgJiAxCisgICAgICAgICAgICAgICAgJiYg
bV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDApLT5yZXR1cm5zQm9vbCgpKSB7CisgICAgICAgICAg
ICAgICAgbV92YWx1ZS0+Y2hpbGQoMCkgPSBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMCk7CiAg
ICAgICAgICAgICAgICAgbV9jaGFuZ2VkID0gdHJ1ZTsKICAgICAgICAgICAgIH0KIAotICAgICAg
ICAgICAgVHJpU3RhdGUgdHJpU3RhdGUgPSBicmFuY2gtPmNoaWxkKDApLT5hc1RyaVN0YXRlKCk7
CisgICAgICAgICAgICBUcmlTdGF0ZSB0cmlTdGF0ZSA9IG1fdmFsdWUtPmNoaWxkKDApLT5hc1Ry
aVN0YXRlKCk7CiAKICAgICAgICAgICAgIC8vIFR1cm4gdGhpczogQnJhbmNoKDAsIHRoZW4sIGVs
c2UpCiAgICAgICAgICAgICAvLyBJbnRvIHRoaXM6IEp1bXAoZWxzZSkKICAgICAgICAgICAgIGlm
ICh0cmlTdGF0ZSA9PSBGYWxzZVRyaVN0YXRlKSB7Ci0gICAgICAgICAgICAgICAgYnJhbmNoLT50
YWtlbigpLmJsb2NrKCktPnJlbW92ZVByZWRlY2Vzc29yKG1fYmxvY2spOwotICAgICAgICAgICAg
ICAgIGJyYW5jaC0+Y29udmVydFRvSnVtcChicmFuY2gtPm5vdFRha2VuKCkuYmxvY2soKSk7Cisg
ICAgICAgICAgICAgICAgbV9ibG9jay0+dGFrZW4oKS5ibG9jaygpLT5yZW1vdmVQcmVkZWNlc3Nv
cihtX2Jsb2NrKTsKKyAgICAgICAgICAgICAgICBtX3ZhbHVlLT5yZXBsYWNlV2l0aEp1bXAobV9i
bG9jaywgbV9ibG9jay0+bm90VGFrZW4oKSk7CiAgICAgICAgICAgICAgICAgbV9jaGFuZ2VkQ0ZH
ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KQEAgLTE4MzIs
OCArMTgzMCw4IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAvLyBUdXJuIHRoaXM6IEJyYW5jaChu
b3QgMCwgdGhlbiwgZWxzZSkKICAgICAgICAgICAgIC8vIEludG8gdGhpczogSnVtcCh0aGVuKQog
ICAgICAgICAgICAgaWYgKHRyaVN0YXRlID09IFRydWVUcmlTdGF0ZSkgewotICAgICAgICAgICAg
ICAgIGJyYW5jaC0+bm90VGFrZW4oKS5ibG9jaygpLT5yZW1vdmVQcmVkZWNlc3NvcihtX2Jsb2Nr
KTsKLSAgICAgICAgICAgICAgICBicmFuY2gtPmNvbnZlcnRUb0p1bXAoYnJhbmNoLT50YWtlbigp
LmJsb2NrKCkpOworICAgICAgICAgICAgICAgIG1fYmxvY2stPm5vdFRha2VuKCkuYmxvY2soKS0+
cmVtb3ZlUHJlZGVjZXNzb3IobV9ibG9jayk7CisgICAgICAgICAgICAgICAgbV92YWx1ZS0+cmVw
bGFjZVdpdGhKdW1wKG1fYmxvY2ssIG1fYmxvY2stPnRha2VuKCkpOwogICAgICAgICAgICAgICAg
IG1fY2hhbmdlZENGRyA9IHRydWU7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICB9CkBAIC0xODQyLDEyICsxODQwLDEyIEBAIHByaXZhdGU6CiAgICAgICAgICAgICAvLyBvZiBt
YWtlcyBzZW5zZSBoZXJlIGJlY2F1c2UgaXQncyBjaGVhcCwgYnV0IGhhY2tzIGxpa2UgdGhpcyBz
aG93IHRoYXQgd2UncmUgZ29pbmcKICAgICAgICAgICAgIC8vIHRvIG5lZWQgU0NDUC4KICAgICAg
ICAgICAgIFZhbHVlKiBjaGVjayA9IG1fcHVyZUNTRS5maW5kTWF0Y2goCi0gICAgICAgICAgICAg
ICAgVmFsdWVLZXkoQ2hlY2ssIFZvaWQsIGJyYW5jaC0+Y2hpbGQoMCkpLCBtX2Jsb2NrLCAqbV9k
b21pbmF0b3JzKTsKKyAgICAgICAgICAgICAgICBWYWx1ZUtleShDaGVjaywgVm9pZCwgbV92YWx1
ZS0+Y2hpbGQoMCkpLCBtX2Jsb2NrLCAqbV9kb21pbmF0b3JzKTsKICAgICAgICAgICAgIGlmIChj
aGVjaykgewogICAgICAgICAgICAgICAgIC8vIFRoZSBDaGVjayB3b3VsZCBoYXZlIHNpZGUtZXhp
dGVkIGlmIGNoaWxkKDApIHdhcyBub24temVyby4gU28sIGl0IG11c3QgYmUKICAgICAgICAgICAg
ICAgICAvLyB6ZXJvIGhlcmUuCi0gICAgICAgICAgICAgICAgYnJhbmNoLT50YWtlbigpLmJsb2Nr
KCktPnJlbW92ZVByZWRlY2Vzc29yKG1fYmxvY2spOwotICAgICAgICAgICAgICAgIGJyYW5jaC0+
Y29udmVydFRvSnVtcChicmFuY2gtPm5vdFRha2VuKCkuYmxvY2soKSk7CisgICAgICAgICAgICAg
ICAgbV9ibG9jay0+dGFrZW4oKS5ibG9jaygpLT5yZW1vdmVQcmVkZWNlc3NvcihtX2Jsb2NrKTsK
KyAgICAgICAgICAgICAgICBtX3ZhbHVlLT5yZXBsYWNlV2l0aEp1bXAobV9ibG9jaywgbV9ibG9j
ay0+bm90VGFrZW4oKSk7CiAgICAgICAgICAgICAgICAgbV9jaGFuZ2VkQ0ZHID0gdHJ1ZTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTk4NiwxMyArMTk4NCwxMiBAQCBw
cml2YXRlOgogICAgICAgICAvLyBSZW1vdmUgdGhlIHZhbHVlcyBmcm9tIHRoZSBwcmVkZWNlc3Nv
ci4KICAgICAgICAgcHJlZGVjZXNzb3ItPnZhbHVlcygpLnJlc2l6ZShzdGFydEluZGV4KTsKICAg
ICAgICAgCi0gICAgICAgIHByZWRlY2Vzc29yLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAg
ICAgICAgICAgIG1fcHJvYywgQnJhbmNoLCBzb3VyY2UtPm9yaWdpbigpLCBwcmVkaWNhdGUsCi0g
ICAgICAgICAgICBGcmVxdWVudGVkQmxvY2soY2FzZXNbMF0pLCBGcmVxdWVudGVkQmxvY2soY2Fz
ZXNbMV0pKTsKKyAgICAgICAgcHJlZGVjZXNzb3ItPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBC
cmFuY2gsIHNvdXJjZS0+b3JpZ2luKCksIHByZWRpY2F0ZSk7CisgICAgICAgIHByZWRlY2Vzc29y
LT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhjYXNlc1swXSksIEZyZXF1ZW50ZWRCbG9j
ayhjYXNlc1sxXSkpOwogCiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1DYXNl
czsgKytpKSB7Ci0gICAgICAgICAgICBjYXNlc1tpXS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
Ci0gICAgICAgICAgICAgICAgbV9wcm9jLCBKdW1wLCBtX3ZhbHVlLT5vcmlnaW4oKSwgRnJlcXVl
bnRlZEJsb2NrKG1fYmxvY2spKTsKKyAgICAgICAgICAgIGNhc2VzW2ldLT5hcHBlbmROZXc8VmFs
dWU+KG1fcHJvYywgSnVtcCwgbV92YWx1ZS0+b3JpZ2luKCkpOworICAgICAgICAgICAgY2FzZXNb
aV0tPnNldFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2NrKG1fYmxvY2spKTsKICAgICAgICAgfQog
CiAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7CkBAIC0yMjIxLDcgKzIyMTgsNyBAQCBwcml2YXRl
OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFMb2coCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJDaGFuZ2luZyAiLCBwb2ludGVyRHVtcChibG9jayksICIncyB0ZXJt
aW5hbCB0byBhIEp1bXAuXG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICAgICAgICAgIGJsb2NrLT5sYXN0KCktPmFzPENvbnRyb2xWYWx1ZT4oKS0+Y29udmVy
dFRvSnVtcChmaXJzdFN1Y2Nlc3Nvcik7CisgICAgICAgICAgICAgICAgICAgICAgICBibG9jay0+
bGFzdCgpLT5yZXBsYWNlV2l0aEp1bXAoYmxvY2ssIEZyZXF1ZW50ZWRCbG9jayhmaXJzdFN1Y2Nl
c3NvcikpOwogICAgICAgICAgICAgICAgICAgICAgICAgbV9jaGFuZ2VkQ0ZHID0gdHJ1ZTsKICAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KQEAgLTIyMzksMTYgKzIyMzYs
MTggQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgLy8gUmVtb3ZlIHRoZSB0ZXJtaW5h
bC4KICAgICAgICAgICAgICAgICAgICAgVmFsdWUqIHZhbHVlID0gYmxvY2stPnZhbHVlcygpLnRh
a2VMYXN0KCk7CiAgICAgICAgICAgICAgICAgICAgIE9yaWdpbiBqdW1wT3JpZ2luID0gdmFsdWUt
Pm9yaWdpbigpOwotICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVCh2YWx1ZS0+YXM8
Q29udHJvbFZhbHVlPigpKTsKKyAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQodmFs
dWUtPmVmZmVjdHMoKS50ZXJtaW5hbCk7CiAgICAgICAgICAgICAgICAgICAgIG1fcHJvYy5kZWxl
dGVWYWx1ZSh2YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg
ICAvLyBBcHBlbmQgdGhlIGZ1bGwgY29udGVudHMgb2YgdGhlIHN1Y2Nlc3NvciB0byB0aGUgcHJl
ZGVjZXNzb3IuCiAgICAgICAgICAgICAgICAgICAgIGJsb2NrLT52YWx1ZXMoKS5hcHBlbmRWZWN0
b3Ioc3VjY2Vzc29yLT52YWx1ZXMoKSk7CisgICAgICAgICAgICAgICAgICAgIGJsb2NrLT5zdWNj
ZXNzb3JzKCkgPSBzdWNjZXNzb3ItPnN1Y2Nlc3NvcnMoKTsKICAgICAgICAgICAgICAgICAgICAg
CiAgICAgICAgICAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBzdWNjZXNzb3IgaGFz
IG5vdGhpbmcgbGVmdCBpbiBpdC4gTWFrZSBzdXJlIHRoYXQgdGhlIGJsb2NrCiAgICAgICAgICAg
ICAgICAgICAgIC8vIGhhcyBhIHRlcm1pbmFsIHNvIHRoYXQgbm9ib2R5IGNob2tlcyB3aGVuIHRo
ZXkgbG9vayBhdCBpdC4KICAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc29yLT52YWx1ZXMoKS5y
ZXNpemUoMCk7Ci0gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3Nvci0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4obV9wcm9jLCBPb3BzLCBqdW1wT3JpZ2luKTsKKyAgICAgICAgICAgICAgICAgICAg
c3VjY2Vzc29yLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgT29wcywganVtcE9yaWdpbik7Cisg
ICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3Nvci0+Y2xlYXJTdWNjZXNzb3JzKCk7CiAgICAgICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAvLyBFbnN1cmUgdGhhdCBwcmVkZWNl
c3NvcnMgb2YgYmxvY2sncyBuZXcgc3VjY2Vzc29ycyBrbm93IHdoYXQncyB1cC4KICAgICAgICAg
ICAgICAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBuZXdTdWNjZXNzb3IgOiBibG9jay0+c3VjY2Vz
c29yQmxvY2tzKCkpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcEdl
bmVyYXRpb25QYXJhbXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtNTksNiArNTksMjcgQEAgUmVnaXN0ZXJTZXQgU3RhY2ttYXBHZW5lcmF0aW9u
UGFyYW1zOjp1bgogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK1ZlY3RvcjxCb3g8Q0NhbGxIZWxw
ZXJzOjpMYWJlbD4+IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtczo6c3VjY2Vzc29yTGFiZWxzKCkg
Y29uc3QKK3sKKyAgICBSRUxFQVNFX0FTU0VSVChtX2NvbnRleHQuaW5kZXhJbkJsb2NrID09IG1f
Y29udGV4dC5jdXJyZW50QmxvY2stPnNpemUoKSAtIDEpOworICAgIFJFTEVBU0VfQVNTRVJUKG1f
dmFsdWUtPmVmZmVjdHMoKS50ZXJtaW5hbCk7CisgICAgCisgICAgVmVjdG9yPEJveDxDQ2FsbEhl
bHBlcnM6OkxhYmVsPj4gcmVzdWx0KG1fY29udGV4dC5jdXJyZW50QmxvY2stPm51bVN1Y2Nlc3Nv
cnMoKSk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gbV9jb250ZXh0LmN1cnJlbnRCbG9jay0+bnVt
U3VjY2Vzc29ycygpOyBpLS07KQorICAgICAgICByZXN1bHRbaV0gPSBtX2NvbnRleHQuYmxvY2tM
YWJlbHNbbV9jb250ZXh0LmN1cnJlbnRCbG9jay0+c3VjY2Vzc29yQmxvY2soaSldOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CisKK2Jvb2wgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zOjpmYWxsc1Ro
cm91Z2hUb1N1Y2Nlc3Nvcih1bnNpZ25lZCBzdWNjZXNzb3JJbmRleCkgY29uc3QKK3sKKyAgICBS
RUxFQVNFX0FTU0VSVChtX2NvbnRleHQuaW5kZXhJbkJsb2NrID09IG1fY29udGV4dC5jdXJyZW50
QmxvY2stPnNpemUoKSAtIDEpOworICAgIFJFTEVBU0VfQVNTRVJUKG1fdmFsdWUtPmVmZmVjdHMo
KS50ZXJtaW5hbCk7CisgICAgCisgICAgQWlyOjpCYXNpY0Jsb2NrKiBzdWNjZXNzb3IgPSBtX2Nv
bnRleHQuY3VycmVudEJsb2NrLT5zdWNjZXNzb3JCbG9jayhzdWNjZXNzb3JJbmRleCk7CisgICAg
QWlyOjpCYXNpY0Jsb2NrKiBuZXh0QmxvY2sgPSBtX2NvbnRleHQuY29kZS0+ZmluZE5leHRCbG9j
ayhtX2NvbnRleHQuY3VycmVudEJsb2NrKTsKKyAgICByZXR1cm4gc3VjY2Vzc29yID09IG5leHRC
bG9jazsKK30KKwogUHJvY2VkdXJlJiBTdGFja21hcEdlbmVyYXRpb25QYXJhbXM6OnByb2MoKSBj
b25zdAogewogICAgIHJldHVybiBtX2NvbnRleHQuY29kZS0+cHJvYygpOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1z
LmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNr
bWFwR2VuZXJhdGlvblBhcmFtcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw5IEBACiAK
ICNpbmNsdWRlICJBaXJHZW5lcmF0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIkIzVmFsdWVSZXAu
aCIKKyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKICNpbmNsdWRlICJSZWdpc3RlclNldC5oIgor
I2luY2x1ZGUgPHd0Zi9Cb3guaD4KIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAK
QEAgLTM5LDYgKzQxLDggQEAgY2xhc3MgUGF0Y2hwb2ludFNwZWNpYWw7CiBjbGFzcyBQcm9jZWR1
cmU7CiBjbGFzcyBTdGFja21hcFZhbHVlOwogCisvLyBOT1RFOiBJdCdzIHBvc3NpYmxlIHRvIGNh
cHR1cmUgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zIGJ5IHZhbHVlLCBidXQgbm90IGFsbCBvZiB0
aGUgbWV0aG9kcyB3aWxsCisvLyB3b3JrIGlmIHlvdSBkbyB0aGF0LgogY2xhc3MgU3RhY2ttYXBH
ZW5lcmF0aW9uUGFyYW1zIHsKIHB1YmxpYzoKICAgICAvLyBUaGlzIGlzIHRoZSBzdGFja21hcCB2
YWx1ZSB0aGF0IHdlJ3JlIGdlbmVyYXRpbmcuCkBAIC04MCw2ICs4NCwxMiBAQCBwdWJsaWM6CiAK
ICAgICBHUFJSZWcgZ3BTY3JhdGNoKHVuc2lnbmVkIGluZGV4KSBjb25zdCB7IHJldHVybiBtX2dw
U2NyYXRjaFtpbmRleF07IH0KICAgICBGUFJSZWcgZnBTY3JhdGNoKHVuc2lnbmVkIGluZGV4KSBj
b25zdCB7IHJldHVybiBtX2ZwU2NyYXRjaFtpbmRleF07IH0KKyAgICAKKyAgICAvLyBUaGlzIGlz
IGNvbXB1dGVkIGxhemlseSwgc28gaXQgd29uJ3Qgd29yayBpZiB5b3UgY2FwdHVyZSBTdGFja21h
cEdlbmVyYXRpb25QYXJhbXMgYnkgdmFsdWUuCisgICAgSlNfRVhQT1JUX1BSSVZBVEUgVmVjdG9y
PEJveDxDQ2FsbEhlbHBlcnM6OkxhYmVsPj4gc3VjY2Vzc29yTGFiZWxzKCkgY29uc3Q7CisgICAg
CisgICAgLy8gVGhpcyBpcyBjb21wdXRlZCBsYXppbHkgYWxzby4KKyAgICBib29sIGZhbGxzVGhy
b3VnaFRvU3VjY2Vzc29yKHVuc2lnbmVkIHN1Y2Nlc3NvckluZGV4KSBjb25zdDsKIAogICAgIC8v
IFRoaXMgaXMgcHJvdmlkZWQgZm9yIGNvbnZlbmllbmNlOyBpdCBtZWFucyB0aGF0IHlvdSBkb24n
dCBoYXZlIHRvIGNhcHR1cmUgaXQgaWYgeW91IGRvbid0IHdhbnQgdG8uCiAgICAgUHJvY2VkdXJl
JiBwcm9jKCkgY29uc3Q7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTd2l0Y2hW
YWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3dpdGNo
VmFsdWUuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNTd2l0Y2hWYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDMwICszNyw3NiBAQCBTd2l0
Y2hWYWx1ZTo6flN3aXRjaFZhbHVlKCkKIHsKIH0KIAotU3dpdGNoQ2FzZSBTd2l0Y2hWYWx1ZTo6
cmVtb3ZlQ2FzZSh1bnNpZ25lZCBpbmRleCkKK1N3aXRjaENhc2UgU3dpdGNoVmFsdWU6OnJlbW92
ZUNhc2UoQmFzaWNCbG9jayogYmxvY2ssIHVuc2lnbmVkIGluZGV4KQogewotICAgIEZyZXF1ZW50
ZWRCbG9jayByZXN1bHRCbG9jayA9IG1fc3VjY2Vzc29yc1tpbmRleF07CisgICAgRnJlcXVlbnRl
ZEJsb2NrIHJlc3VsdEJsb2NrID0gYmxvY2stPnN1Y2Nlc3NvcihpbmRleCk7CiAgICAgaW50NjRf
dCByZXN1bHRWYWx1ZSA9IG1fdmFsdWVzW2luZGV4XTsKLSAgICBtX3N1Y2Nlc3NvcnNbaW5kZXhd
ID0gbV9zdWNjZXNzb3JzLmxhc3QoKTsKLSAgICBtX3N1Y2Nlc3NvcnMucmVtb3ZlTGFzdCgpOwor
ICAgIGJsb2NrLT5zdWNjZXNzb3IoaW5kZXgpID0gYmxvY2stPnN1Y2Nlc3NvcnMoKS5sYXN0KCk7
CisgICAgYmxvY2stPnN1Y2Nlc3NvcnMoKS5yZW1vdmVMYXN0KCk7CiAgICAgbV92YWx1ZXNbaW5k
ZXhdID0gbV92YWx1ZXMubGFzdCgpOwogICAgIG1fdmFsdWVzLnJlbW92ZUxhc3QoKTsKICAgICBy
ZXR1cm4gU3dpdGNoQ2FzZShyZXN1bHRWYWx1ZSwgcmVzdWx0QmxvY2spOwogfQogCi12b2lkIFN3
aXRjaFZhbHVlOjphcHBlbmRDYXNlKGNvbnN0IFN3aXRjaENhc2UmIHN3aXRjaENhc2UpCitib29s
IFN3aXRjaFZhbHVlOjpoYXNGYWxsVGhyb3VnaChjb25zdCBCYXNpY0Jsb2NrKiBibG9jaykgY29u
c3QKK3sKKyAgICB1bnNpZ25lZCBudW1TdWNjZXNzb3JzID0gYmxvY2stPm51bVN1Y2Nlc3NvcnMo
KTsKKyAgICB1bnNpZ25lZCBudW1WYWx1ZXMgPSBtX3ZhbHVlcy5zaXplKCk7CisgICAgUkVMRUFT
RV9BU1NFUlQobnVtVmFsdWVzID09IG51bVN1Y2Nlc3NvcnMgfHwgbnVtVmFsdWVzICsgMSA9PSBu
dW1TdWNjZXNzb3JzKTsKKyAgICAKKyAgICByZXR1cm4gbnVtVmFsdWVzICsgMSA9PSBudW1TdWNj
ZXNzb3JzOworfQorCitib29sIFN3aXRjaFZhbHVlOjpoYXNGYWxsVGhyb3VnaCgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIGhhc0ZhbGxUaHJvdWdoKG93bmVyKTsKK30KKwordm9pZCBTd2l0Y2hWYWx1
ZTo6c2V0RmFsbFRocm91Z2goQmFzaWNCbG9jayogYmxvY2ssIGNvbnN0IEZyZXF1ZW50ZWRCbG9j
ayYgdGFyZ2V0KQoreworICAgIGlmICghaGFzRmFsbFRocm91Z2goKSkKKyAgICAgICAgYmxvY2st
PnN1Y2Nlc3NvcnMoKS5hcHBlbmQodGFyZ2V0KTsKKyAgICBlbHNlCisgICAgICAgIGJsb2NrLT5z
dWNjZXNzb3JzKCkubGFzdCgpID0gdGFyZ2V0OworICAgIEFTU0VSVChoYXNGYWxsVGhyb3VnaChi
bG9jaykpOworfQorCit2b2lkIFN3aXRjaFZhbHVlOjphcHBlbmRDYXNlKEJhc2ljQmxvY2sqIGJs
b2NrLCBjb25zdCBTd2l0Y2hDYXNlJiBzd2l0Y2hDYXNlKQogewotICAgIG1fc3VjY2Vzc29ycy5h
cHBlbmQobV9zdWNjZXNzb3JzLmxhc3QoKSk7Ci0gICAgbV9zdWNjZXNzb3JzW21fc3VjY2Vzc29y
cy5zaXplKCkgLSAyXSA9IHN3aXRjaENhc2UudGFyZ2V0KCk7CisgICAgaWYgKCFoYXNGYWxsVGhy
b3VnaCgpKQorICAgICAgICBibG9jay0+c3VjY2Vzc29ycygpLmFwcGVuZChzd2l0Y2hDYXNlLnRh
cmdldCgpKTsKKyAgICBlbHNlIHsKKyAgICAgICAgYmxvY2stPnN1Y2Nlc3NvcnMoKS5hcHBlbmQo
YmxvY2stPnN1Y2Nlc3NvcnMoKS5sYXN0KCkpOworICAgICAgICBibG9jay0+c3VjY2Vzc29yKGJs
b2NrLT5udW1TdWNjZXNzb3JzKCkgLSAyKSA9IHN3aXRjaENhc2UudGFyZ2V0KCk7CisgICAgfQog
ICAgIG1fdmFsdWVzLmFwcGVuZChzd2l0Y2hDYXNlLmNhc2VWYWx1ZSgpKTsKIH0KIAordm9pZCBT
d2l0Y2hWYWx1ZTo6c2V0RmFsbFRocm91Z2goY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YXJnZXQp
Cit7CisgICAgc2V0RmFsbFRocm91Z2gob3duZXIsIHRhcmdldCk7Cit9CisKK3ZvaWQgU3dpdGNo
VmFsdWU6OmFwcGVuZENhc2UoY29uc3QgU3dpdGNoQ2FzZSYgc3dpdGNoQ2FzZSkKK3sKKyAgICBh
cHBlbmRDYXNlKG93bmVyLCBzd2l0Y2hDYXNlKTsKK30KKwordm9pZCBTd2l0Y2hWYWx1ZTo6ZHVt
cFN1Y2Nlc3NvcnMoY29uc3QgQmFzaWNCbG9jayogYmxvY2ssIFByaW50U3RyZWFtJiBvdXQpIGNv
bnN0Cit7CisgICAgLy8gV2UgbXVzdCBub3QgY3Jhc2ggZHVlIHRvIGEgbnVtYmVyLW9mLXN1Y2Nl
c3NvcnMgbWlzbWF0Y2ghIFNvbWVvbmUgZGVidWdnaW5nIGEKKyAgICAvLyBudW1iZXItb2Ytc3Vj
Y2Vzc29ycyBidWcgd2lsbCB3YW50IHRvIGR1bXAgSVIhCisgICAgaWYgKG51bUNhc2VWYWx1ZXMo
KSArIDEgIT0gYmxvY2stPm51bVN1Y2Nlc3NvcnMoKSkgeworICAgICAgICBWYWx1ZTo6ZHVtcFN1
Y2Nlc3NvcnMoYmxvY2ssIG91dCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAg
b3V0LnByaW50KGNhc2VzKGJsb2NrKSk7Cit9CisKIHZvaWQgU3dpdGNoVmFsdWU6OmR1bXBNZXRh
KENvbW1hUHJpbnRlciYgY29tbWEsIFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiB7Ci0gICAgLy8g
VGhpcyBkZXN0cnVjdGl2ZWx5IG92ZXJyaWRlcyBDb250cm9sVmFsdWUncyBkdW1wTWV0YSgpLgot
ICAgIGZvciAoU3dpdGNoQ2FzZSBzd2l0Y2hDYXNlIDogKnRoaXMpCi0gICAgICAgIG91dC5wcmlu
dChjb21tYSwgc3dpdGNoQ2FzZSk7Ci0gICAgb3V0LnByaW50KGNvbW1hLCAiZmFsbFRocm91Z2gg
PSAiLCBmYWxsVGhyb3VnaCgpKTsKKyAgICBvdXQucHJpbnQoY29tbWEsICJjYXNlcyA9IFsiLCBs
aXN0RHVtcChtX3ZhbHVlcyksICJdIik7CiB9CiAKIFZhbHVlKiBTd2l0Y2hWYWx1ZTo6Y2xvbmVJ
bXBsKCkgY29uc3QKQEAgLTY4LDEwICsxMTQsOSBAQCBWYWx1ZSogU3dpdGNoVmFsdWU6OmNsb25l
SW1wbCgpIGNvbnN0CiAgICAgcmV0dXJuIG5ldyBTd2l0Y2hWYWx1ZSgqdGhpcyk7CiB9CiAKLVN3
aXRjaFZhbHVlOjpTd2l0Y2hWYWx1ZShPcmlnaW4gb3JpZ2luLCBWYWx1ZSogY2hpbGQsIGNvbnN0
IEZyZXF1ZW50ZWRCbG9jayYgZmFsbFRocm91Z2gpCi0gICAgOiBDb250cm9sVmFsdWUoU3dpdGNo
LCBWb2lkLCBvcmlnaW4sIGNoaWxkKQorU3dpdGNoVmFsdWU6OlN3aXRjaFZhbHVlKE9yaWdpbiBv
cmlnaW4sIFZhbHVlKiBjaGlsZCkKKyAgICA6IFZhbHVlKENoZWNrZWRPcGNvZGUsIFN3aXRjaCwg
Vm9pZCwgb3JpZ2luLCBjaGlsZCkKIHsKLSAgICBtX3N1Y2Nlc3NvcnMuYXBwZW5kKGZhbGxUaHJv
dWdoKTsKIH0KIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNTd2l0Y2hWYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM1N3aXRjaFZhbHVlLmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM1N3aXRjaFZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDEy
ICsyOCwxMyBAQAogCiAjaWYgRU5BQkxFKEIzX0pJVCkKIAotI2luY2x1ZGUgIkIzQ29udHJvbFZh
bHVlLmgiCisjaW5jbHVkZSAiQjNDYXNlQ29sbGVjdGlvbi5oIgogI2luY2x1ZGUgIkIzU3dpdGNo
Q2FzZS5oIgorI2luY2x1ZGUgIkIzVmFsdWUuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFj
ZSBCMyB7CiAKLWNsYXNzIFN3aXRjaFZhbHVlIDogcHVibGljIENvbnRyb2xWYWx1ZSB7CitjbGFz
cyBTd2l0Y2hWYWx1ZSA6IHB1YmxpYyBWYWx1ZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wg
YWNjZXB0cyhPcGNvZGUgb3Bjb2RlKSB7IHJldHVybiBvcGNvZGUgPT0gU3dpdGNoOyB9CiAKQEAg
LTQ3LDcyICs0OCwyNiBAQCBwdWJsaWM6CiAgICAgCiAgICAgY29uc3QgVmVjdG9yPGludDY0X3Q+
JiBjYXNlVmFsdWVzKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZXM7IH0KIAotICAgIEZyZXF1ZW50
ZWRCbG9jayBmYWxsVGhyb3VnaCgpIGNvbnN0IHsgcmV0dXJuIHN1Y2Nlc3NvcnMoKS5sYXN0KCk7
IH0KLSAgICBGcmVxdWVudGVkQmxvY2smIGZhbGxUaHJvdWdoKCkgeyByZXR1cm4gc3VjY2Vzc29y
cygpLmxhc3QoKTsgfQotCi0gICAgdW5zaWduZWQgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG51bUNh
c2VWYWx1ZXMoKTsgfQotICAgIFN3aXRjaENhc2UgYXQodW5zaWduZWQgaW5kZXgpIGNvbnN0Ci0g
ICAgewotICAgICAgICByZXR1cm4gU3dpdGNoQ2FzZShjYXNlVmFsdWUoaW5kZXgpLCBzdWNjZXNz
b3IoaW5kZXgpKTsKLSAgICB9Ci0gICAgU3dpdGNoQ2FzZSBvcGVyYXRvcltdKHVuc2lnbmVkIGlu
ZGV4KSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIGF0KGluZGV4KTsKLSAgICB9Ci0KLSAg
ICBjbGFzcyBpdGVyYXRvciB7Ci0gICAgcHVibGljOgotICAgICAgICBpdGVyYXRvcigpCi0gICAg
ICAgICAgICA6IG1fc3dpdGNoKG51bGxwdHIpCi0gICAgICAgICAgICAsIG1faW5kZXgoMCkKLSAg
ICAgICAgewotICAgICAgICB9Ci0KLSAgICAgICAgaXRlcmF0b3IoY29uc3QgU3dpdGNoVmFsdWUm
IHN3aXRjaFZhbHVlLCB1bnNpZ25lZCBpbmRleCkKLSAgICAgICAgICAgIDogbV9zd2l0Y2goJnN3
aXRjaFZhbHVlKQotICAgICAgICAgICAgLCBtX2luZGV4KGluZGV4KQotICAgICAgICB7Ci0gICAg
ICAgIH0KLQotICAgICAgICBTd2l0Y2hDYXNlIG9wZXJhdG9yKigpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIHJldHVybiBtX3N3aXRjaC0+YXQobV9pbmRleCk7Ci0gICAgICAgIH0KLQotICAgICAg
ICBpdGVyYXRvciYgb3BlcmF0b3IrKygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIG1faW5kZXgr
KzsKLSAgICAgICAgICAgIHJldHVybiAqdGhpczsKLSAgICAgICAgfQotCi0gICAgICAgIGJvb2wg
b3BlcmF0b3I9PShjb25zdCBpdGVyYXRvciYgb3RoZXIpIGNvbnN0Ci0gICAgICAgIHsKLSAgICAg
ICAgICAgIEFTU0VSVChtX3N3aXRjaCA9PSBvdGhlci5tX3N3aXRjaCk7Ci0gICAgICAgICAgICBy
ZXR1cm4gbV9pbmRleCA9PSBvdGhlci5tX2luZGV4OwotICAgICAgICB9Ci0KLSAgICAgICAgYm9v
bCBvcGVyYXRvciE9KGNvbnN0IGl0ZXJhdG9yJiBvdGhlcikgY29uc3QKLSAgICAgICAgewotICAg
ICAgICAgICAgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOwotICAgICAgICB9Ci0KLSAgICBwcml2
YXRlOgotICAgICAgICBjb25zdCBTd2l0Y2hWYWx1ZSogbV9zd2l0Y2g7Ci0gICAgICAgIHVuc2ln
bmVkIG1faW5kZXg7Ci0gICAgfTsKLQotICAgIHR5cGVkZWYgaXRlcmF0b3IgY29uc3RfaXRlcmF0
b3I7Ci0KLSAgICBpdGVyYXRvciBiZWdpbigpIGNvbnN0IHsgcmV0dXJuIGl0ZXJhdG9yKCp0aGlz
LCAwKTsgfQotICAgIGl0ZXJhdG9yIGVuZCgpIGNvbnN0IHsgcmV0dXJuIGl0ZXJhdG9yKCp0aGlz
LCBzaXplKCkpOyB9CisgICAgQ2FzZUNvbGxlY3Rpb24gY2FzZXMoY29uc3QgQmFzaWNCbG9jayog
b3duZXIpIGNvbnN0IHsgcmV0dXJuIENhc2VDb2xsZWN0aW9uKHRoaXMsIG93bmVyKTsgfQorICAg
IENhc2VDb2xsZWN0aW9uIGNhc2VzKCkgY29uc3QgeyByZXR1cm4gY2FzZXMob3duZXIpOyB9CiAK
ICAgICAvLyBUaGlzIHJlbW92ZXMgdGhlIGNhc2UgYW5kIHJlb3JkZXJzIHRoaW5ncyBhIGJpdC4g
SWYgeW91J3JlIGl0ZXJhdGluZyB0aGUgY2FzZXMgZnJvbSAwIHRvIE4sCiAgICAgLy8gdGhlbiB5
b3UgY2FuIGtlZXAgaXRlcmF0aW5nIGFmdGVyIHRoaXMgc28gbG9uZyBhcyB5b3UgcmV2aXNpdCB0
aGlzIHNhbWUgaW5kZXggKHdoaWNoIHdpbGwgbm93CiAgICAgLy8gY29udGFpbiBzb21lIG90aGVy
IGNhc2UgdmFsdWUpLiBUaGlzIHJlbW92ZXMgdGhlIGNhc2UgdGhhdCB3YXMgcmVtb3ZlZC4KLSAg
ICBTd2l0Y2hDYXNlIHJlbW92ZUNhc2UodW5zaWduZWQgaW5kZXgpOworICAgIFN3aXRjaENhc2Ug
cmVtb3ZlQ2FzZShCYXNpY0Jsb2NrKiwgdW5zaWduZWQgaW5kZXgpOwogCisgICAgYm9vbCBoYXNG
YWxsVGhyb3VnaChjb25zdCBCYXNpY0Jsb2NrKikgY29uc3Q7CisgICAgYm9vbCBoYXNGYWxsVGhy
b3VnaCgpIGNvbnN0OworCisgICAgLy8gVGhlc2UgdHdvIGZ1bmN0aW9ucyBjYW4gYmUgY2FsbGVk
IGluIGFueSBvcmRlci4KKyAgICB2b2lkIHNldEZhbGxUaHJvdWdoKEJhc2ljQmxvY2sqLCBjb25z
dCBGcmVxdWVudGVkQmxvY2smKTsKKyAgICB2b2lkIGFwcGVuZENhc2UoQmFzaWNCbG9jayosIGNv
bnN0IFN3aXRjaENhc2UmKTsKKyAgICAKKyAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIHNldEZh
bGxUaHJvdWdoKGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYpOwogICAgIEpTX0VYUE9SVF9QUklWQVRF
IHZvaWQgYXBwZW5kQ2FzZShjb25zdCBTd2l0Y2hDYXNlJik7CiAKKyAgICB2b2lkIGR1bXBTdWNj
ZXNzb3JzKGNvbnN0IEJhc2ljQmxvY2sqLCBQcmludFN0cmVhbSYpIGNvbnN0IG92ZXJyaWRlOwor
CiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBkdW1wTWV0YShDb21tYVByaW50ZXImLCBQcmludFN0cmVh
bSYpIGNvbnN0IG92ZXJyaWRlOwogCkBAIC0xMjEsNyArNzYsNyBAQCBwcm90ZWN0ZWQ6CiBwcml2
YXRlOgogICAgIGZyaWVuZCBjbGFzcyBQcm9jZWR1cmU7CiAKLSAgICBKU19FWFBPUlRfUFJJVkFU
RSBTd2l0Y2hWYWx1ZShPcmlnaW4sIFZhbHVlKiBjaGlsZCwgY29uc3QgRnJlcXVlbnRlZEJsb2Nr
JiBmYWxsVGhyb3VnaCk7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgU3dpdGNoVmFsdWUoT3JpZ2lu
LCBWYWx1ZSogY2hpbGQpOwogCiAgICAgVmVjdG9yPGludDY0X3Q+IG1fdmFsdWVzOwogfTsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbGlkYXRlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWxpZGF0ZS5jcHAJKHJldmlzaW9uIDIwMjgw
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbGlkYXRlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkIzUHJvY2VkdXJlLmgiCiAjaW5jbHVk
ZSAiQjNTbG90QmFzZVZhbHVlLmgiCiAjaW5jbHVkZSAiQjNTdGFja1Nsb3QuaCIKKyNpbmNsdWRl
ICJCM1N3aXRjaFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNVcHNpbG9uVmFsdWUuaCIKICNpbmNsdWRl
ICJCM1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIkIzVmFyaWFibGUuaCIKQEAgLTEwNyw4ICsx
MDgsOCBAQCBwdWJsaWM6CiAgICAgICAgIGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiBibG9ja3Mp
IHsKICAgICAgICAgICAgIFZBTElEQVRFKGJsb2NrLT5zaXplKCkgPj0gMSwgKCJBdCAiLCAqYmxv
Y2spKTsKICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBibG9jay0+c2l6ZSgp
IC0gMTsgKytpKQotICAgICAgICAgICAgICAgIFZBTElEQVRFKCFDb250cm9sVmFsdWU6OmFjY2Vw
dHMoYmxvY2stPmF0KGkpLT5vcGNvZGUoKSksICgiQXQgIiwgKmJsb2NrLT5hdChpKSkpOwotICAg
ICAgICAgICAgVkFMSURBVEUoQ29udHJvbFZhbHVlOjphY2NlcHRzKGJsb2NrLT5sYXN0KCktPm9w
Y29kZSgpKSwgKCJBdCAiLCAqYmxvY2stPmxhc3QoKSkpOworICAgICAgICAgICAgICAgIFZBTElE
QVRFKCFibG9jay0+YXQoaSktPmVmZmVjdHMoKS50ZXJtaW5hbCwgKCJBdCAiLCAqYmxvY2stPmF0
KGkpKSk7CisgICAgICAgICAgICBWQUxJREFURShibG9jay0+bGFzdCgpLT5lZmZlY3RzKCkudGVy
bWluYWwsICgiQXQgIiwgKmJsb2NrLT5sYXN0KCkpKTsKICAgICAgICAgICAgIAogICAgICAgICAg
ICAgZm9yIChCYXNpY0Jsb2NrKiBzdWNjZXNzb3IgOiBibG9jay0+c3VjY2Vzc29yQmxvY2tzKCkp
IHsKICAgICAgICAgICAgICAgICBhbGxQcmVkZWNlc3NvcnMuYWRkKHN1Y2Nlc3NvciwgSGFzaFNl
dDxCYXNpY0Jsb2NrKj4oKSkuaXRlcmF0b3ItPnZhbHVlLmFkZChibG9jayk7CkBAIC0xMjksOCAr
MTMwLDYgQEAgcHVibGljOgogICAgICAgICAgICAgICAgIFZBTElEQVRFKGNoaWxkLT50eXBlKCkg
IT0gVm9pZCwgKCJBdCAiLCAqdmFsdWUsICItPiIsICpjaGlsZCkpOwogICAgICAgICAgICAgc3dp
dGNoICh2YWx1ZS0+b3Bjb2RlKCkpIHsKICAgICAgICAgICAgIGNhc2UgTm9wOgotICAgICAgICAg
ICAgY2FzZSBKdW1wOgotICAgICAgICAgICAgY2FzZSBPb3BzOgogICAgICAgICAgICAgICAgIFZB
TElEQVRFKCF2YWx1ZS0+bnVtQ2hpbGRyZW4oKSwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAg
ICAgICAgICBWQUxJREFURSh2YWx1ZS0+dHlwZSgpID09IFZvaWQsICgiQXQgIiwgKnZhbHVlKSk7
CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0zNzcsMTUgKzM3NiwzNiBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICAgICAgVkFMSURBVEUoIXZhbHVlLT5udW1DaGlsZHJlbigpLCAoIkF0ICIsICp2
YWx1ZSkpOwogICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgIT0gVm9pZCwg
KCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgSnVtcDoKKyAgICAgICAgICAgICAgICBWQUxJREFURSghdmFsdWUtPm51bUNoaWxkcmVuKCks
ICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPnR5cGUo
KSA9PSBWb2lkLCAoIkF0ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIFZBTElEQVRFKHZh
bHVlT3duZXIuZ2V0KHZhbHVlKS0+bnVtU3VjY2Vzc29ycygpID09IDEsICgiQXQgIiwgKnZhbHVl
KSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIE9vcHM6CisgICAg
ICAgICAgICAgICAgVkFMSURBVEUoIXZhbHVlLT5udW1DaGlsZHJlbigpLCAoIkF0ICIsICp2YWx1
ZSkpOworICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgPT0gVm9pZCwgKCJB
dCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFURSghdmFsdWVPd25lci5nZXQo
dmFsdWUpLT5udW1TdWNjZXNzb3JzKCksICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIFJldHVybjoKICAgICAgICAgICAgICAgICBWQUxJ
REFURSh2YWx1ZS0+bnVtQ2hpbGRyZW4oKSA9PSAxLCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAg
ICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgPT0gVm9pZCwgKCJBdCAiLCAqdmFsdWUp
KTsKKyAgICAgICAgICAgICAgICBWQUxJREFURSghdmFsdWVPd25lci5nZXQodmFsdWUpLT5udW1T
dWNjZXNzb3JzKCksICgiQXQgIiwgKnZhbHVlKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICBjYXNlIEJyYW5jaDoKKyAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+
bnVtQ2hpbGRyZW4oKSA9PSAxLCAoIkF0ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIFZB
TElEQVRFKGlzSW50KHZhbHVlLT5jaGlsZCgwKS0+dHlwZSgpKSwgKCJBdCAiLCAqdmFsdWUpKTsK
KyAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+dHlwZSgpID09IFZvaWQsICgiQXQgIiwg
KnZhbHVlKSk7CisgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWVPd25lci5nZXQodmFsdWUp
LT5udW1TdWNjZXNzb3JzKCkgPT0gMiwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgIGNhc2UgU3dpdGNoOgogICAgICAgICAgICAgICAgIFZBTElE
QVRFKHZhbHVlLT5udW1DaGlsZHJlbigpID09IDEsICgiQXQgIiwgKnZhbHVlKSk7CiAgICAgICAg
ICAgICAgICAgVkFMSURBVEUoaXNJbnQodmFsdWUtPmNoaWxkKDApLT50eXBlKCkpLCAoIkF0ICIs
ICp2YWx1ZSkpOwogICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgPT0gVm9p
ZCwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+YXM8
U3dpdGNoVmFsdWU+KCktPmhhc0ZhbGxUaHJvdWdoKHZhbHVlT3duZXIuZ2V0KHZhbHVlKSksICgi
QXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAgICAgLy8gVGhpcyB2YWxpZGF0ZXMgdGhlIHNh
bWUgdGhpbmcgYXMgaGFzRmFsbFRocm91Z2gsIGJ1dCBtb3JlIGV4cGxpY2l0bHkuIFdlIHdhbnQg
dG8KKyAgICAgICAgICAgICAgICAvLyBtYWtlIHN1cmUgdGhhdCBpZiBhbnlvbmUgdHJpZXMgdG8g
Y2hhbmdlIHRoZSBkZWZpbml0aW9uIG9mIGhhc0ZhbGxUaHJvdWdoLCB0aGV5CisgICAgICAgICAg
ICAgICAgLy8gd2lsbCBmZWVsIHNvbWUgcGFpbiBoZXJlLCBzaW5jZSB0aGlzIGlzIGZ1bmRhbWVu
dGFsLgorICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlT3duZXIuZ2V0KHZhbHVlKS0+bnVt
U3VjY2Vzc29ycygpID09IHZhbHVlLT5hczxTd2l0Y2hWYWx1ZT4oKS0+bnVtQ2FzZVZhbHVlcygp
ICsgMSwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmNwcAkocmV2aXNpb24g
MjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yOSw5ICsyOSw5IEBACiAjaWYgRU5BQkxFKEIzX0pJVCkKIAogI2luY2x1ZGUg
IkIzQXJndW1lbnRSZWdWYWx1ZS5oIgorI2luY2x1ZGUgIkIzQmFzaWNCbG9ja0lubGluZXMuaCIK
ICNpbmNsdWRlICJCM0JvdHRvbVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiQjNDQ2FsbFZhbHVlLmgi
Ci0jaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKICNpbmNsdWRlICJCM01lbW9yeVZhbHVlLmgi
CiAjaW5jbHVkZSAiQjNPcmlnaW5EdW1wLmgiCiAjaW5jbHVkZSAiQjNQcm9jZWR1cmVJbmxpbmVz
LmgiCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiQjNWYWx1ZUtleUlubGluZXMuaCIKICNp
bmNsdWRlICJCM1ZhcmlhYmxlVmFsdWUuaCIKICNpbmNsdWRlIDx3dGYvQ29tbWFQcmludGVyLmg+
CisjaW5jbHVkZSA8d3RmL0xpc3REdW1wLmg+CiAjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3Ry
ZWFtLmg+CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewpAQCAtMTI1LDYgKzEyNiw1
MCBAQCB2b2lkIFZhbHVlOjpyZXBsYWNlV2l0aFBoaSgpCiAgICAgdGhpcy0+bV9pbmRleCA9IGlu
ZGV4OwogfQogCit2b2lkIFZhbHVlOjpyZXBsYWNlV2l0aEp1bXAoQmFzaWNCbG9jayogb3duZXIs
IGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgdGFyZ2V0KQoreworICAgIFJFTEVBU0VfQVNTRVJUKG93
bmVyLT5sYXN0KCkgPT0gdGhpcyk7CisgICAgCisgICAgdW5zaWduZWQgaW5kZXggPSBtX2luZGV4
OworICAgIE9yaWdpbiBvcmlnaW4gPSBtX29yaWdpbjsKKyAgICAKKyAgICB0aGlzLT5+VmFsdWUo
KTsKKyAgICAKKyAgICBuZXcgKHRoaXMpIFZhbHVlKEp1bXAsIFZvaWQsIG9yaWdpbik7CisgICAg
CisgICAgdGhpcy0+b3duZXIgPSBvd25lcjsKKyAgICB0aGlzLT5tX2luZGV4ID0gaW5kZXg7Cisg
ICAgCisgICAgb3duZXItPnNldFN1Y2Nlc3NvcnModGFyZ2V0KTsKK30KKwordm9pZCBWYWx1ZTo6
cmVwbGFjZVdpdGhPb3BzKEJhc2ljQmxvY2sqIG93bmVyKQoreworICAgIFJFTEVBU0VfQVNTRVJU
KG93bmVyLT5sYXN0KCkgPT0gdGhpcyk7CisgICAgCisgICAgdW5zaWduZWQgaW5kZXggPSBtX2lu
ZGV4OworICAgIE9yaWdpbiBvcmlnaW4gPSBtX29yaWdpbjsKKyAgICAKKyAgICB0aGlzLT5+VmFs
dWUoKTsKKyAgICAKKyAgICBuZXcgKHRoaXMpIFZhbHVlKE9vcHMsIFZvaWQsIG9yaWdpbik7Cisg
ICAgCisgICAgdGhpcy0+b3duZXIgPSBvd25lcjsKKyAgICB0aGlzLT5tX2luZGV4ID0gaW5kZXg7
CisgICAgCisgICAgb3duZXItPmNsZWFyU3VjY2Vzc29ycygpOworfQorCit2b2lkIFZhbHVlOjpy
ZXBsYWNlV2l0aEp1bXAoY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YXJnZXQpCit7CisgICAgcmVw
bGFjZVdpdGhKdW1wKG93bmVyLCB0YXJnZXQpOworfQorCit2b2lkIFZhbHVlOjpyZXBsYWNlV2l0
aE9vcHMoKQoreworICAgIHJlcGxhY2VXaXRoT29wcyhvd25lcik7Cit9CisKIHZvaWQgVmFsdWU6
OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHsKICAgICBib29sIGlzQ29uc3RhbnQgPSBm
YWxzZTsKQEAgLTE4OSw2ICsyMzQsMTkgQEAgdm9pZCBWYWx1ZTo6ZGVlcER1bXAoY29uc3QgUHJv
Y2VkdXJlKiBwcgogICAgIG91dC5wcmludCgiKSIpOwogfQogCit2b2lkIFZhbHVlOjpkdW1wU3Vj
Y2Vzc29ycyhjb25zdCBCYXNpY0Jsb2NrKiBibG9jaywgUHJpbnRTdHJlYW0mIG91dCkgY29uc3QK
K3sKKyAgICAvLyBOb3RlIHRoYXQgdGhpcyBtdXN0IG5vdCBjcmFzaCBpZiB3ZSBoYXZlIHRoZSB3
cm9uZyBudW1iZXIgb2Ygc3VjY2Vzc29ycywgc2luY2Ugc29tZW9uZQorICAgIC8vIGRlYnVnZ2lu
ZyBhIG51bWJlci1vZi1zdWNjZXNzb3JzIGJ1ZyB3aWxsIHByb2JhYmx5IHdhbnQgdG8gZHVtcCBJ
UiEKKyAgICAKKyAgICBpZiAob3Bjb2RlKCkgPT0gQnJhbmNoICYmIGJsb2NrLT5udW1TdWNjZXNz
b3JzKCkgPT0gMikgeworICAgICAgICBvdXQucHJpbnQoIlRoZW46IiwgYmxvY2stPnRha2VuKCks
ICIsIEVsc2U6IiwgYmxvY2stPm5vdFRha2VuKCkpOworICAgICAgICByZXR1cm47CisgICAgfQor
ICAgIAorICAgIG91dC5wcmludChsaXN0RHVtcChibG9jay0+c3VjY2Vzc29ycygpKSk7Cit9CisK
IFZhbHVlKiBWYWx1ZTo6bmVnQ29uc3RhbnQoUHJvY2VkdXJlJikgY29uc3QKIHsKICAgICByZXR1
cm4gbnVsbHB0cjsKQEAgLTcxMyw2ICs3NzEsMTAgQEAgVHlwZSBWYWx1ZTo6dHlwZUZvcihPcGNv
ZGUgb3Bjb2RlLCBWYWx1ZQogICAgICAgICB9CiAgICAgICAgIHJldHVybiBWb2lkOwogICAgIGNh
c2UgTm9wOgorICAgIGNhc2UgSnVtcDoKKyAgICBjYXNlIEJyYW5jaDoKKyAgICBjYXNlIFJldHVy
bjoKKyAgICBjYXNlIE9vcHM6CiAgICAgICAgIHJldHVybiBWb2lkOwogICAgIGNhc2UgU2VsZWN0
OgogICAgICAgICBBU1NFUlQoc2Vjb25kQ2hpbGQpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNWYWx1ZS5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJB
aXJBcmcuaCIKICNpbmNsdWRlICJCM0VmZmVjdHMuaCIKKyNpbmNsdWRlICJCM0ZyZXF1ZW50ZWRC
bG9jay5oIgogI2luY2x1ZGUgIkIzT3Bjb2RlLmgiCiAjaW5jbHVkZSAiQjNPcmlnaW4uaCIKICNp
bmNsdWRlICJCM1NwYXJzZUNvbGxlY3Rpb24uaCIKQEAgLTEwOSw5ICsxMTAsMTkgQEAgcHVibGlj
OgogICAgIHZvaWQgcmVwbGFjZVdpdGhOb3BJZ25vcmluZ1R5cGUoKTsKICAgICAKICAgICB2b2lk
IHJlcGxhY2VXaXRoUGhpKCk7CisgICAgCisgICAgLy8gVGhlc2UgdHJhbnNmb3JtYXRpb25zIGFy
ZSBvbmx5IHZhbGlkIGZvciB0ZXJtaW5hbHMuCisgICAgdm9pZCByZXBsYWNlV2l0aEp1bXAoQmFz
aWNCbG9jayogb3duZXIsIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYpOworICAgIHZvaWQgcmVwbGFj
ZVdpdGhPb3BzKEJhc2ljQmxvY2sqIG93bmVyKTsKKyAgICAKKyAgICAvLyBZb3UgY2FuIHVzZSB0
aGlzIGZvcm0gaWYgb3duZXJzIGFyZSB2YWxpZC4gVGhleSdyZSB1c3VhbGx5IG5vdCB2YWxpZC4K
KyAgICB2b2lkIHJlcGxhY2VXaXRoSnVtcChjb25zdCBGcmVxdWVudGVkQmxvY2smKTsKKyAgICB2
b2lkIHJlcGxhY2VXaXRoT29wcygpOwogCiAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29u
c3Q7CiAgICAgdm9pZCBkZWVwRHVtcChjb25zdCBQcm9jZWR1cmUqLCBQcmludFN0cmVhbSYpIGNv
bnN0OworICAgIAorICAgIHZpcnR1YWwgdm9pZCBkdW1wU3VjY2Vzc29ycyhjb25zdCBCYXNpY0Js
b2NrKiwgUHJpbnRTdHJlYW0mKSBjb25zdDsKIAogICAgIC8vIFRoaXMgaXMgaG93IHlvdSBjYXN0
IFZhbHVlcy4gRm9yIGV4YW1wbGUsIGlmIHlvdSB3YW50IHRvIGRvIHNvbWV0aGluZyBwcm92aWRl
ZCB0aGF0IHdlIGhhdmUgYQogICAgIC8vIEFyZ3VtZW50UmVnVmFsdWUsIHlvdSBjYW4gZG86CkBA
IC0yMjMsNyArMjM0LDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNMaWtlTm9uWmVybygpIGNvbnN0
IHsgcmV0dXJuIGFzVHJpU3RhdGUoKSA9PSBUcnVlVHJpU3RhdGU7IH0KIAogICAgIEVmZmVjdHMg
ZWZmZWN0cygpIGNvbnN0OwotCisgICAgCiAgICAgLy8gVGhpcyByZXR1cm5zIGEgVmFsdWVLZXkg
dGhhdCBkZXNjcmliZXMgdGhhdCB0aGlzIFZhbHVlIHJldHVybnMgd2hlbiBpdCBleGVjdXRlcy4g
UmV0dXJucyBhbgogICAgIC8vIGVtcHR5IFZhbHVlS2V5IGlmIHRoaXMgVmFsdWUgaXMgaW1wdXJl
LiBOb3RlIHRoYXQgYW4gb3BlcmF0aW9uIHRoYXQgcmV0dXJucyBWb2lkIGNvdWxkIHN0aWxsCiAg
ICAgLy8gaGF2ZSBhIG5vbi1lbXB0eSBWYWx1ZUtleS4gVGhpcyBoYXBwZW5zIGZvciBleGFtcGxl
IHdpdGggQ2hlY2sgb3BlcmF0aW9ucy4KQEAgLTI2NCw2ICsyNzUsOCBAQCBwcml2YXRlOgogICAg
ICAgICBjYXNlIEZyYW1lUG9pbnRlcjoKICAgICAgICAgY2FzZSBOb3A6CiAgICAgICAgIGNhc2Ug
UGhpOgorICAgICAgICBjYXNlIEp1bXA6CisgICAgICAgIGNhc2UgT29wczoKICAgICAgICAgICAg
IGlmIChVTkxJS0VMWShudW1BcmdzKSkKICAgICAgICAgICAgICAgICBiYWRPcGNvZGUob3Bjb2Rl
LCBudW1BcmdzKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjg0LDYgKzI5Nyw4IEBAIHByaXZh
dGU6CiAgICAgICAgIGNhc2UgRG91YmxlVG9GbG9hdDoKICAgICAgICAgY2FzZSBJVG9GOgogICAg
ICAgICBjYXNlIEJpdHdpc2VDYXN0OgorICAgICAgICBjYXNlIEJyYW5jaDoKKyAgICAgICAgY2Fz
ZSBSZXR1cm46CiAgICAgICAgICAgICBpZiAoVU5MSUtFTFkobnVtQXJncyAhPSAxKSkKICAgICAg
ICAgICAgICAgICBiYWRPcGNvZGUob3Bjb2RlLCBudW1BcmdzKTsKICAgICAgICAgICAgIGJyZWFr
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAJKHJldmlzaW9uIDIwMjgwOSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSAiQjNDb21wdXRlRGl2aXNpb25NYWdpYy5oIgogI2lu
Y2x1ZGUgIkIzQ29uc3QzMlZhbHVlLmgiCiAjaW5jbHVkZSAiQjNDb25zdFB0clZhbHVlLmgiCi0j
aW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKICNpbmNsdWRlICJCM0VmZmVjdHMuaCIKICNpbmNs
dWRlICJCM01hdGhFeHRyYXMuaCIKICNpbmNsdWRlICJCM01lbW9yeVZhbHVlLmgiCkBAIC00Niw3
ICs0NSwxMCBAQAogI2luY2x1ZGUgIkIzVXBzaWxvblZhbHVlLmgiCiAjaW5jbHVkZSAiQjNWYWxp
ZGF0ZS5oIgogI2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCisjaW5jbHVkZSAiQjNWYXJpYWJs
ZVZhbHVlLmgiCiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCisjaW5jbHVkZSAiRlBSSW5mby5o
IgorI2luY2x1ZGUgIkdQUkluZm8uaCIKICNpbmNsdWRlICJJbml0aWFsaXplVGhyZWFkaW5nLmgi
CiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKQEAgLTU0
LDYgKzU2LDcgQEAKICNpbmNsdWRlICJWTS5oIgogI2luY2x1ZGUgPGNtYXRoPgogI2luY2x1ZGUg
PHN0cmluZz4KKyNpbmNsdWRlIDx3dGYvTGlzdER1bXAuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5o
PgogI2luY2x1ZGUgPHd0Zi9OdW1iZXJPZkNvcmVzLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGlu
Zy5oPgpAQCAtNzUsNiArNzgsMTEgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzo6QjM7CiAKIG5hbWVz
cGFjZSB7CiAKK2Jvb2wgc2hvdWxkQmVWZXJib3NlKCkKK3sKKyAgICByZXR1cm4gc2hvdWxkRHVt
cElSKEIzTW9kZSk7Cit9CisKIFN0YXRpY0xvY2sgY3Jhc2hMb2NrOwogCiAvLyBOb3RoaW5nIGZh
bmN5IGZvciBub3c7IHdlIGp1c3QgdXNlIHRoZSBleGlzdGluZyBXVEYgYXNzZXJ0aW9uIG1hY2hp
bmVyeS4KQEAgLTE5NCw3ICsyMDIsNyBAQCB2b2lkIHRlc3Q0MigpCiAgICAgUHJvY2VkdXJlIHBy
b2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSog
Y29uc3Q0MiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0
Mik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgY29uc3Q0Mik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIGNvbnN0NDIpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+
KHByb2MpID09IDQyKTsKIH0KQEAgLTIwNCw3ICsyMTIsNyBAQCB2b2lkIHRlc3RMb2FkNDIoKQog
ICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7CiAgICAgaW50IHggPSA0MjsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2luKCksCkBAIC0yMjAsNyArMjI4LDcgQEAgdm9p
ZCB0ZXN0TG9hZFdpdGhPZmZzZXRJbXBsKGludDMyX3Qgb2ZmcwogICAgICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgICAgICBpbnQ2NF90IHggPSAtNDI7CiAgICAg
ICAgIFZhbHVlKiBiYXNlID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwotICAgICAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgTG9hZCwgSW50NjQs
IE9yaWdpbigpLApAQCAtMjM1LDcgKzI0Myw3IEBAIHZvaWQgdGVzdExvYWRXaXRoT2Zmc2V0SW1w
bChpbnQzMl90IG9mZnMKICAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKICAgICAgICAgaW50MzJfdCB4ID0gLTQyOwogICAgICAgICBWYWx1ZSogYmFzZSA9IHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKTsKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAog
ICAgICAgICAgICAgICAgIHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwKQEAgLTI4OCw3ICsy
OTYsNyBAQCB2b2lkIHRlc3RBcmcoaW50IGFyZ3VtZW50KQogewogICAgIFByb2NlZHVyZSBwcm9j
OwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkp
OwogCkBAIC0yOTksNyArMzA3LDcgQEAgdm9pZCB0ZXN0UmV0dXJuQ29uc3Q2NChpbnQ2NF90IHZh
bHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
dmFsdWUpKTsKIApAQCAtMzExLDcgKzMxOSw3IEBAIHZvaWQgdGVzdEFkZEFyZyhpbnQgYSkKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwogICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgdmFsdWUsIHZhbHVlKSk7CiAKQEAgLTMyMiw3ICszMzAs
NyBAQCB2b2lkIHRlc3RBZGRBcmdzKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCkBAIC0zMzYsNyArMzQ0
LDcgQEAgdm9pZCB0ZXN0QWRkQXJnSW1tKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUg
cHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCkBAIC0zNTAsNyAr
MzU4LDcgQEAgdm9pZCB0ZXN0QWRkSW1tQXJnKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1
cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCkBAIC0zNzAs
NyArMzc4LDcgQEAgdm9pZCB0ZXN0QWRkQXJnTWVtKGludDY0X3QgYSwgaW50NjRfdCBiKQogICAg
ICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMCksCiAgICAgICAgIGxvYWQpOwogICAgIHJvb3QtPmFwcGVuZE5l
dzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGFkZHJlc3MpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3Qt
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBpbnQ2
NF90IGlucHV0T3V0cHV0ID0gYjsKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihw
cm9jLCBhLCAmaW5wdXRPdXRwdXQpKTsKQEAgLTM4Niw3ICszOTQsNyBAQCB2b2lkIHRlc3RBZGRN
ZW1BcmcoaW50NjRfdCBhLCBpbnQ2NF90IGIpCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwKICAgICAgICAgbG9hZCwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjEpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29t
cGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAmYSwgYikgPT0gYSArIGIpOwogfQpAQCAtNDAxLDcg
KzQwOSw3IEBAIHZvaWQgdGVzdEFkZEltbU1lbShpbnQ2NF90IGEsIGludDY0X3QgYikKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpLAogICAg
ICAgICBsb2FkKTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3Jl
LCBPcmlnaW4oKSwgcmVzdWx0LCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgaW50NjRfdCBpbnB1dE91dHB1dCA9IGI7CiAgICAg
Q0hFQ0soIWNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAmaW5wdXRPdXRwdXQpKTsKQEAgLTQxNCw3
ICs0MjIsNyBAQCB2b2lkIHRlc3RBZGRBcmczMihpbnQgYSkKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCB2YWx1ZSwgdmFsdWUpKTsK
IApAQCAtNDI1LDcgKzQzMyw3IEBAIHZvaWQgdGVzdEFkZEFyZ3MzMihpbnQgYSwgaW50IGIpCiB7
CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdp
bigpLApAQCAtNDQ5LDcgKzQ1Nyw3IEBAIHZvaWQgdGVzdEFkZEFyZ01lbTMyKGludDMyX3QgYSwg
aW50MzJfdCAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSogcmVzdWx0ID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBhcmd1bWVudCwgbG9h
ZCk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2lu
KCksIHJlc3VsdCwgYWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIDApKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIDApKTsKIAogICAgIGludDMyX3QgaW5wdXRPdXRwdXQgPSBiOwogICAgIENIRUNLKCFj
b21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGEsICZpbnB1dE91dHB1dCkpOwpAQCAtNDY1LDcg
KzQ3Myw3IEBAIHZvaWQgdGVzdEFkZE1lbUFyZzMyKGludDMyX3QgYSwgaW50MzJfdCAKICAgICBW
YWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBsb2FkLCBhcmd1bWVudCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50MzJfdD4o
cHJvYywgJmEsIGIpID09IGEgKyBiKTsKIH0KQEAgLTQ4MCw3ICs0ODgsNyBAQCB2b2lkIHRlc3RB
ZGRJbW1NZW0zMihpbnQzMl90IGEsIGludDMyX3QgCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKSwKICAgICAgICAgbG9hZCk7CiAgICAgcm9v
dC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwg
YWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IDApKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsK
IAogICAgIGludDMyX3QgaW5wdXRPdXRwdXQgPSBiOwogICAgIENIRUNLKCFjb21waWxlQW5kUnVu
PGludD4ocHJvYywgJmlucHV0T3V0cHV0KSk7CkBAIC00OTUsNyArNTAzLDcgQEAgdm9pZCB0ZXN0
QWRkQXJnWmVyb0ltbVpEZWYoKQogICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BS
SW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgVmFsdWUqIGNvbnN0WmVybyA9IHJvb3QtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAtNTE1LDcgKzUyMyw3IEBA
IHZvaWQgdGVzdEFkZExvYWRUd2ljZSgpCiAgICAgICAgIFZhbHVlKiBsb2FkID0gcm9vdC0+YXBw
ZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgIHByb2MsIExvYWQsIEludDMyLCBPcmln
aW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgJnZhbHVlKSk7Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBBZGQsIE9yaWdpbigpLCBsb2FkLCBsb2FkKSk7CiAKQEAgLTUzMiw3ICs1NDAsNyBAQCB2
b2lkIHRlc3RBZGRBcmdEb3VibGUoZG91YmxlIGEpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWUgPSBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86
OmFyZ3VtZW50RlBSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCks
IHZhbHVlLCB2YWx1ZSkpOwogCkBAIC01NDUsNyArNTUzLDcgQEAgdm9pZCB0ZXN0QWRkQXJnc0Rv
dWJsZShkb3VibGUgYSwgZG91YmxlIAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSog
dmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBGUFJJbmZvOjphcmd1bWVudEZQUjEpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQs
IE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC01NTgsNyArNTY2LDcgQEAgdm9pZCB0
ZXN0QWRkQXJnSW1tRG91YmxlKGRvdWJsZSBhLCBkb3VibAogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsK
ICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBiKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4o
KSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtNTcxLDcgKzU3OSw3IEBAIHZvaWQgdGVzdEFkZElt
bUFyZ0RvdWJsZShkb3VibGUgYSwgZG91YmwKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3Vi
bGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3Vt
ZW50RlBSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIHZhbHVl
QSwgdmFsdWVCKSk7CiAKQEAgLTU4NCw3ICs1OTIsNyBAQCB2b2lkIHRlc3RBZGRJbW1zRG91Ymxl
KGRvdWJsZSBhLCBkb3VibGUgCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3
PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtNjAwLDcgKzYw
OCw3IEBAIHZvaWQgdGVzdEFkZEFyZ0Zsb2F0KGZsb2F0IGEpCiAgICAgVmFsdWUqIGZsb2F0VmFs
dWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwg
YXJndW1lbnQzMik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQWRkLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSwgZmxvYXRWYWx1ZSk7CiAgICAgVmFsdWUq
IHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3Jp
Z2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKIAogICAgIENIRUNLKGlz
SWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMy
X3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgKyBhKSkpOwpAQCAtNjE4LDcgKzYyNiw3
IEBAIHZvaWQgdGVzdEFkZEFyZ3NGbG9hdChmbG9hdCBhLCBmbG9hdCBiKQogICAgIFZhbHVlKiBm
bG9hdFZhbHVlMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9y
aWdpbigpLCBhcmd1bWVudDJpbnQzMik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZTEsIGZsb2F0VmFsdWUy
KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJp
dHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAog
ICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lz
ZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nh
c3Q8aW50MzJfdD4oYSArIGIpKSk7CiB9CkBAIC02MzMsNyArNjQxLDcgQEAgdm9pZCB0ZXN0QWRk
QXJnSW1tRmxvYXQoZmxvYXQgYSwgZmxvYXQgYgogICAgIFZhbHVlKiBjb25zdFZhbHVlID0gcm9v
dC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogICAgIFZh
bHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCks
IGZsb2F0VmFsdWUsIGNvbnN0VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
c3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1
bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4oYSArIGIpKSk7CiB9CkBAIC02NDgsNyArNjU2LDcgQEAgdm9pZCB0ZXN0QWRkSW1t
QXJnRmxvYXQoZmxvYXQgYSwgZmxvYXQgYgogICAgIFZhbHVlKiBjb25zdFZhbHVlID0gcm9vdC0+
YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVl
KiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGNv
bnN0VmFsdWUsIGZsb2F0VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxp
bnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50
MzJfdD4oYSArIGIpKSk7CiB9CkBAIC02NjEsNyArNjY5LDcgQEAgdm9pZCB0ZXN0QWRkSW1tc0Zs
b2F0KGZsb2F0IGEsIGZsb2F0IGIpCiAgICAgVmFsdWUqIGNvbnN0VmFsdWUyID0gcm9vdC0+YXBw
ZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiBy
ZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGNvbnN0
VmFsdWUxLCBjb25zdFZhbHVlMik7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGlu
dDMyX3Q+KHByb2MpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSArIGIpKSk7CiB9CkBAIC02Nzcs
NyArNjg1LDcgQEAgdm9pZCB0ZXN0QWRkQXJnRmxvYXRXaXRoVXNlbGVzc0RvdWJsZUNvbgogICAg
IFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2lu
KCksIGFzRG91YmxlLCBhc0RvdWJsZSk7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgcmVzdWx0KTsK
ICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdp
c2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwog
CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSArIGEpKSk7CiB9
CkBAIC02OTcsNyArNzA1LDcgQEAgdm9pZCB0ZXN0QWRkQXJnc0Zsb2F0V2l0aFVzZWxlc3NEb3Vi
bGVDbwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFk
ZCwgT3JpZ2luKCksIGFzRG91YmxlMSwgYXNEb3VibGUyKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1
bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigp
LCByZXN1bHQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+
KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIp
KSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgKyBiKSkpOwogfQpAQCAtNzE5LDcgKzcyNyw3IEBA
IHZvaWQgdGVzdEFkZEFyZ3NGbG9hdFdpdGhFZmZlY3RmdWxEb3VibGUKICAgICBWYWx1ZSogZG91
YmxlQWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5
VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBkb3VibGVBZGRyZXNzKTsKICAg
ICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VD
YXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAg
ICAgZG91YmxlIGVmZmVjdCA9IDA7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1
bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxp
bnQzMl90PihiKSwgJmVmZmVjdCksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhICsgYikpKTsKQEAg
LTczMiw3ICs3NDAsNyBAQCB2b2lkIHRlc3RNdWxBcmcoaW50IGEpCiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KAogICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIw
KSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIHZhbHVlLCB2YWx1
ZSkpOwogCkBAIC03NTksNyArNzY3LDcgQEAgdm9pZCB0ZXN0TXVsQXJnU3RvcmUoaW50IGEpCiAg
ICAgICAgIHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgbXVsLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZtdWxTbG90KSk7CiAKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1
bjxpbnQ+KHByb2MsIGEpKTsKQEAgLTc3NCw3ICs3ODIsNyBAQCB2b2lkIHRlc3RNdWxBZGRBcmco
aW50IGEpCiAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCkBAIC03
ODgsNyArNzk2LDcgQEAgdm9pZCB0ZXN0TXVsQXJncyhpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJv
Y2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBNdWwsIE9yaWdpbigpLApAQCAt
ODAyLDcgKzgxMCw3IEBAIHZvaWQgdGVzdE11bEFyZ0ltbShpbnQ2NF90IGEsIGludDY0X3QgYikK
IHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIE11bCwgT3Jp
Z2luKCksCkBAIC04MTYsNyArODI0LDcgQEAgdm9pZCB0ZXN0TXVsSW1tQXJnKGludCBhLCBpbnQg
YikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIE11bCwg
T3JpZ2luKCksCkBAIC04MzAsNyArODM4LDcgQEAgdm9pZCB0ZXN0TXVsQXJnczMyKGludCBhLCBp
bnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIE11
bCwgT3JpZ2luKCksCkBAIC04NTMsNyArODYxLDcgQEAgdm9pZCB0ZXN0TXVsTG9hZFR3aWNlKCkK
ICAgICAgICAgVmFsdWUqIGxvYWQgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgTG9hZCwgSW50MzIsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAmdmFsdWUpKTsKLSAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGxvYWQs
IGxvYWQpKTsKIApAQCAtODc1LDcgKzg4Myw3IEBAIHZvaWQgdGVzdE11bEFkZEFyZ3NMZWZ0KCkK
ICAgICBWYWx1ZSogYXJnMiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKTsKICAgICBWYWx1ZSogbXVsdGlwbGll
ZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgYXJnMCwgYXJn
MSk7CiAgICAgVmFsdWUqIGFkZGVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQs
IE9yaWdpbigpLCBtdWx0aXBsaWVkLCBhcmcyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKIAogICAgIGF1
dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKQEAgLTg5OSw3ICs5MDcsNyBAQCB2b2lkIHRlc3RN
dWxBZGRBcmdzUmlnaHQoKQogICAgIFZhbHVlKiBhcmcyID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpOwogICAg
IFZhbHVlKiBtdWx0aXBsaWVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9y
aWdpbigpLCBhcmcxLCBhcmcyKTsKICAgICBWYWx1ZSogYWRkZWQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGFyZzAsIG11bHRpcGxpZWQpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
YWRkZWQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAtOTI2LDcgKzkz
NCw3IEBAIHZvaWQgdGVzdE11bEFkZEFyZ3NMZWZ0MzIoKQogICAgICAgICByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BS
MikpOwogICAgIFZhbHVlKiBtdWx0aXBsaWVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBNdWwsIE9yaWdpbigpLCBhcmcwLCBhcmcxKTsKICAgICBWYWx1ZSogYWRkZWQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIG11bHRpcGxpZWQsIGFyZzIpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IGFkZGVkKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgYWRkZWQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAt
OTUzLDcgKzk2MSw3IEBAIHZvaWQgdGVzdE11bEFkZEFyZ3NSaWdodDMyKCkKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjIpKTsKICAgICBWYWx1ZSogbXVsdGlwbGllZCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgYXJnMSwgYXJnMik7CiAgICAgVmFsdWUqIGFkZGVk
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBhcmcwLCBtdWx0
aXBsaWVkKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBhZGRlZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJv
Yyk7CiAKQEAgLTk3Nyw3ICs5ODUsNyBAQCB2b2lkIHRlc3RNdWxTdWJBcmdzTGVmdCgpCiAgICAg
VmFsdWUqIGFyZzIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMik7CiAgICAgVmFsdWUqIG11bHRpcGxpZWQgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGFyZzAsIGFyZzEpOwog
ICAgIFZhbHVlKiBhZGRlZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmln
aW4oKSwgbXVsdGlwbGllZCwgYXJnMik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CiAKICAgICBhdXRvIGNv
ZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC0xMDAxLDcgKzEwMDksNyBAQCB2b2lkIHRlc3RNdWxT
dWJBcmdzUmlnaHQoKQogICAgIFZhbHVlKiBhcmcyID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50
UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpOwogICAgIFZh
bHVlKiBtdWx0aXBsaWVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdp
bigpLCBhcmcxLCBhcmcyKTsKICAgICBWYWx1ZSogYWRkZWQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIGFyZzAsIG11bHRpcGxpZWQpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRk
ZWQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAtMTAyOCw3ICsxMDM2
LDcgQEAgdm9pZCB0ZXN0TXVsU3ViQXJnc0xlZnQzMigpCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIy
KSk7CiAgICAgVmFsdWUqIG11bHRpcGxpZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IE11bCwgT3JpZ2luKCksIGFyZzAsIGFyZzEpOwogICAgIFZhbHVlKiBhZGRlZCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgbXVsdGlwbGllZCwgYXJnMik7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
YWRkZWQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBhZGRlZCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC0x
MDU1LDcgKzEwNjMsNyBAQCB2b2lkIHRlc3RNdWxTdWJBcmdzUmlnaHQzMigpCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIyKSk7CiAgICAgVmFsdWUqIG11bHRpcGxpZWQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGFyZzEsIGFyZzIpOwogICAgIFZhbHVlKiBhZGRl
ZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgYXJnMCwgbXVs
dGlwbGllZCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgYWRkZWQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHBy
b2MpOwogCkBAIC0xMDc5LDcgKzEwODcsNyBAQCB2b2lkIHRlc3RNdWxOZWdBcmdzKCkKICAgICBW
YWx1ZSogbXVsdGlwbGllZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmln
aW4oKSwgYXJnMCwgYXJnMSk7CiAgICAgVmFsdWUqIHplcm8gPSByb290LT5hcHBlbmROZXc8Q29u
c3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCk7CiAgICAgVmFsdWUqIGFkZGVkID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCB6ZXJvLCBtdWx0aXBsaWVkKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBhZGRlZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIGFkZGVkKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKQEAg
LTExMDMsNyArMTExMSw3IEBAIHZvaWQgdGVzdE11bE5lZ0FyZ3MzMigpCiAgICAgVmFsdWUqIG11
bHRpcGxpZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGFy
ZzAsIGFyZzEpOwogICAgIFZhbHVlKiB6ZXJvID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIDApOwogICAgIFZhbHVlKiBhZGRlZCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgemVybywgbXVsdGlwbGllZCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBhZGRlZCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC0xMTIwLDcg
KzExMjgsNyBAQCB2b2lkIHRlc3RNdWxBcmdEb3VibGUoZG91YmxlIGEpCiAgICAgUHJvY2VkdXJl
IHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1
ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11
bCwgT3JpZ2luKCksIHZhbHVlLCB2YWx1ZSkpOwogCkBAIC0xMTMzLDcgKzExNDEsNyBAQCB2b2lk
IHRlc3RNdWxBcmdzRG91YmxlKGRvdWJsZSBhLCBkb3VibGUgCiAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjAp
OwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMSk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIE11bCwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTExNDYsNyAr
MTE1NCw3IEBAIHZvaWQgdGVzdE11bEFyZ0ltbURvdWJsZShkb3VibGUgYSwgZG91YmwKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86
OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxDb25z
dERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIE11bCwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTExNTksNyArMTE2Nyw3
IEBAIHZvaWQgdGVzdE11bEltbUFyZ0RvdWJsZShkb3VibGUgYSwgZG91YmwKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5h
cHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVl
KiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11
bCwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTExNzIsNyArMTE4MCw3IEBAIHZv
aWQgdGVzdE11bEltbXNEb3VibGUoZG91YmxlIGEsIGRvdWJsZSAKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmRO
ZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiB2YWx1
ZUIgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVl
QikpOwogCkBAIC0xMTg4LDcgKzExOTYsNyBAQCB2b2lkIHRlc3RNdWxBcmdGbG9hdChmbG9hdCBh
KQogICAgIFZhbHVlKiBmbG9hdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBC
aXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiByZXN1bHQgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGZsb2F0VmFsdWUsIGZs
b2F0VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
MzIpOwogCiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHBy
b2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhICog
YSkpKTsKQEAgLTEyMDYsNyArMTIxNCw3IEBAIHZvaWQgdGVzdE11bEFyZ3NGbG9hdChmbG9hdCBh
LCBmbG9hdCBiKQogICAgIFZhbHVlKiBmbG9hdFZhbHVlMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDJpbnQzMik7CiAgICAgVmFs
dWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwg
ZmxvYXRWYWx1ZTEsIGZsb2F0VmFsdWUyKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRS
dW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAqIGIpKSk7CiB9CkBAIC0xMjIx
LDcgKzEyMjksNyBAQCB2b2lkIHRlc3RNdWxBcmdJbW1GbG9hdChmbG9hdCBhLCBmbG9hdCBiCiAg
ICAgVmFsdWUqIGNvbnN0VmFsdWUgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgYik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSwgY29uc3RWYWx1ZSk7CiAgICAg
VmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2Fz
dCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVD
Syhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxp
bnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhICogYikpKTsKIH0KQEAgLTEyMzYs
NyArMTI0NCw3IEBAIHZvaWQgdGVzdE11bEltbUFyZ0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIKICAg
ICBWYWx1ZSogY29uc3RWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBjb25zdFZhbHVlLCBmbG9hdFZhbHVlKTsKICAgICBW
YWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0
LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNL
KGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgKiBiKSkpOwogfQpAQCAtMTI0OSw3
ICsxMjU3LDcgQEAgdm9pZCB0ZXN0TXVsSW1tc0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIpCiAgICAg
VmFsdWUqIGNvbnN0VmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGNvbnN0VmFsdWUxLCBjb25zdFZhbHVlMik7CiAgICAg
VmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2Fz
dCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVD
Syhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MpLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4oYSAqIGIpKSk7CiB9CkBAIC0xMjY1LDcgKzEyNzMsNyBAQCB2b2lkIHRlc3RNdWxB
cmdGbG9hdFdpdGhVc2VsZXNzRG91YmxlQ29uCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgYXNEb3VibGUsIGFzRG91YmxlKTsK
ICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERv
dWJsZVRvRmxvYXQsIE9yaWdpbigpLCByZXN1bHQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJl
c3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChj
b21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJp
dHdpc2VfY2FzdDxpbnQzMl90PihhICogYSkpKTsKIH0KQEAgLTEyODUsNyArMTI5Myw3IEBAIHZv
aWQgdGVzdE11bEFyZ3NGbG9hdFdpdGhVc2VsZXNzRG91YmxlQ28KICAgICBWYWx1ZSogcmVzdWx0
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBhc0RvdWJsZTEs
IGFzRG91YmxlMik7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICBWYWx1ZSog
cmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmln
aW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0so
aXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50
MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90
PihhICogYikpKTsKIH0KQEAgLTEzMDcsNyArMTMxNSw3IEBAIHZvaWQgdGVzdE11bEFyZ3NGbG9h
dFdpdGhFZmZlY3RmdWxEb3VibGUKICAgICBWYWx1ZSogZG91YmxlTXVscmVzcyA9IHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIyKTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBP
cmlnaW4oKSwgcmVzdWx0LCBkb3VibGVNdWxyZXNzKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRS
ZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgZG91YmxlIGVmZmVjdCA9IDA7
CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSwgJmVmZmVjdCks
IGJpdHdpc2VfY2FzdDxpbnQzMl90PihhICogYikpKTsKQEAgLTEzMTksNyArMTMyNyw3IEBAIHZv
aWQgdGVzdERpdkFyZ0RvdWJsZShkb3VibGUgYSkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZSA9IHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6
YXJndW1lbnRGUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwg
dmFsdWUsIHZhbHVlKSk7CiAKQEAgLTEzMzIsNyArMTM0MCw3IEBAIHZvaWQgdGVzdERpdkFyZ3NE
b3VibGUoZG91YmxlIGEsIGRvdWJsZSAKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUq
IHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgRlBSSW5mbzo6YXJndW1lbnRGUFIxKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRGl2
LCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTM0NSw3ICsxMzUzLDcgQEAgdm9p
ZCB0ZXN0RGl2QXJnSW1tRG91YmxlKGRvdWJsZSBhLCBkb3VibAogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIw
KTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBiKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRGl2LCBPcmln
aW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTM1OCw3ICsxMzY2LDcgQEAgdm9pZCB0ZXN0
RGl2SW1tQXJnRG91YmxlKGRvdWJsZSBhLCBkb3VibAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxDb25z
dERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6
YXJndW1lbnRGUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwg
dmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTM3MSw3ICsxMzc5LDcgQEAgdm9pZCB0ZXN0RGl2SW1t
c0RvdWJsZShkb3VibGUgYSwgZG91YmxlIAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJs
ZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFw
cGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIERpdiwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTEz
ODcsNyArMTM5NSw3IEBAIHZvaWQgdGVzdERpdkFyZ0Zsb2F0KGZsb2F0IGEpCiAgICAgVmFsdWUq
IGZsb2F0VmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBP
cmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSwgZmxvYXRWYWx1ZSk7CiAg
ICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNl
Q2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKIAogICAg
IENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9j
YXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLyBhKSkpOwpAQCAtMTQw
NSw3ICsxNDEzLDcgQEAgdm9pZCB0ZXN0RGl2QXJnc0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIpCiAg
ICAgVmFsdWUqIGZsb2F0VmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3
aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MmludDMyKTsKICAgICBWYWx1ZSogcmVzdWx0ID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEaXYsIE9yaWdpbigpLCBmbG9hdFZhbHVlMSwg
ZmxvYXRWYWx1ZTIpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihw
cm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSks
IGJpdHdpc2VfY2FzdDxpbnQzMl90PihhIC8gYikpKTsKIH0KQEAgLTE0MjAsNyArMTQyOCw3IEBA
IHZvaWQgdGVzdERpdkFyZ0ltbUZsb2F0KGZsb2F0IGEsIGZsb2F0IGIKICAgICBWYWx1ZSogY29u
c3RWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigp
LCBiKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBE
aXYsIE9yaWdpbigpLCBmbG9hdFZhbHVlLCBjb25zdFZhbHVlKTsKICAgICBWYWx1ZSogcmVzdWx0
MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwg
cmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2Fs
KGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwg
Yml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLyBiKSkpOwogfQpAQCAtMTQzNSw3ICsxNDQzLDcgQEAg
dm9pZCB0ZXN0RGl2SW1tQXJnRmxvYXQoZmxvYXQgYSwgZmxvYXQgYgogICAgIFZhbHVlKiBjb25z
dFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IGEpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERp
diwgT3JpZ2luKCksIGNvbnN0VmFsdWUsIGZsb2F0VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQz
MiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBy
ZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwo
Y29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBi
aXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAvIGIpKSk7CiB9CkBAIC0xNDQ4LDcgKzE0NTYsNyBAQCB2
b2lkIHRlc3REaXZJbW1zRmxvYXQoZmxvYXQgYSwgZmxvYXQgYikKICAgICBWYWx1ZSogY29uc3RW
YWx1ZTIgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
Yik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRGl2
LCBPcmlnaW4oKSwgY29uc3RWYWx1ZTEsIGNvbnN0VmFsdWUyKTsKICAgICBWYWx1ZSogcmVzdWx0
MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwg
cmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2Fs
KGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYyksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhIC8g
YikpKTsKIH0KQEAgLTE0NTgsNyArMTQ2Niw3IEBAIHZvaWQgdGVzdE1vZEFyZ0RvdWJsZShkb3Vi
bGUgYSkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgdmFsdWUsIHZhbHVlKSk7CiAKQEAgLTE0
NzEsNyArMTQ3OSw3IEBAIHZvaWQgdGVzdE1vZEFyZ3NEb3VibGUoZG91YmxlIGEsIGRvdWJsZSAK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1
ZUEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQ
UkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIx
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1
ZUIpKTsKIApAQCAtMTQ4NCw3ICsxNDkyLDcgQEAgdm9pZCB0ZXN0TW9kQXJnSW1tRG91YmxlKGRv
dWJsZSBhLCBkb3VibAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAg
ICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogdmFsdWVCID0g
cm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsK
IApAQCAtMTQ5Nyw3ICsxNTA1LDcgQEAgdm9pZCB0ZXN0TW9kSW1tQXJnRG91YmxlKGRvdWJsZSBh
LCBkb3VibAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFs
dWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmln
aW4oKSwgYSk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAt
MTUxMCw3ICsxNTE4LDcgQEAgdm9pZCB0ZXN0TW9kSW1tc0RvdWJsZShkb3VibGUgYSwgZG91Ymxl
IAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZh
bHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
YSk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgYik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE1vZCwgT3Jp
Z2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTE1MjYsNyArMTUzNCw3IEBAIHZvaWQgdGVz
dE1vZEFyZ0Zsb2F0KGZsb2F0IGEpCiAgICAgVmFsdWUqIGZsb2F0VmFsdWUgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAg
ICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmln
aW4oKSwgZmxvYXRWYWx1ZSwgZmxvYXRWYWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBp
bGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lz
ZV9jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0PGZsb2F0PihmbW9kKGEsIGEpKSkpKTsKQEAgLTE1
NDQsNyArMTU1Miw3IEBAIHZvaWQgdGVzdE1vZEFyZ3NGbG9hdChmbG9hdCBhLCBmbG9hdCBiKQog
ICAgIFZhbHVlKiBmbG9hdFZhbHVlMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0
d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDJpbnQzMik7CiAgICAgVmFsdWUqIHJlc3VsdCA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZTEs
IGZsb2F0VmFsdWUyKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
c3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4o
cHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikp
LCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KGZtb2QoYSwgYikpKSkp
OwogfQpAQCAtMTU1OSw3ICsxNTY3LDcgQEAgdm9pZCB0ZXN0TW9kQXJnSW1tRmxvYXQoZmxvYXQg
YSwgZmxvYXQgYgogICAgIFZhbHVlKiBjb25zdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0
RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIGZsb2F0VmFsdWUsIGNvbnN0
VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIp
OwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBi
aXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nh
c3Q8ZmxvYXQ+KGZtb2QoYSwgYikpKSkpOwogfQpAQCAtMTU3NCw3ICsxNTgyLDcgQEAgdm9pZCB0
ZXN0TW9kSW1tQXJnRmxvYXQoZmxvYXQgYSwgZmxvYXQgYgogICAgIFZhbHVlKiBjb25zdFZhbHVl
ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwog
ICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE1vZCwgT3Jp
Z2luKCksIGNvbnN0VmFsdWUsIGZsb2F0VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGls
ZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3aXNl
X2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KGZtb2QoYSwgYikpKSkpOwogfQpAQCAt
MTU4Nyw3ICsxNTk1LDcgQEAgdm9pZCB0ZXN0TW9kSW1tc0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIp
CiAgICAgVmFsdWUqIGNvbnN0VmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIGNvbnN0VmFsdWUxLCBjb25zdFZhbHVlMik7
CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3
aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAg
ICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MpLCBiaXR3aXNl
X2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KGZtb2QoYSwgYikpKSkpOwogfQpAQCAt
MTYwMyw3ICsxNjExLDcgQEAgdm9pZCB0ZXN0RGl2QXJnRmxvYXRXaXRoVXNlbGVzc0RvdWJsZUNv
bgogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERpdiwg
T3JpZ2luKCksIGFzRG91YmxlLCBhc0RvdWJsZSk7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgcmVz
dWx0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9j
LCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAvIGEp
KSk7CiB9CkBAIC0xNjIzLDcgKzE2MzEsNyBAQCB2b2lkIHRlc3REaXZBcmdzRmxvYXRXaXRoVXNl
bGVzc0RvdWJsZUNvCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgRGl2LCBPcmlnaW4oKSwgYXNEb3VibGUxLCBhc0RvdWJsZTIpOwogICAgIFZhbHVlKiBm
bG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwg
T3JpZ2luKCksIHJlc3VsdCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1
bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48
aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50
MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAvIGIpKSk7CiB9CkBAIC0xNjQ1LDcg
KzE2NTMsNyBAQCB2b2lkIHRlc3REaXZBcmdzRmxvYXRXaXRoRWZmZWN0ZnVsRG91YmxlCiAgICAg
VmFsdWUqIGRvdWJsZURpdnJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMik7CiAgICAgcm9vdC0+YXBwZW5k
TmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgZG91YmxlRGl2
cmVzcyk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dDMyKTsKIAogICAgIGRvdWJsZSBlZmZlY3QgPSAwOwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNv
bXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oYiksICZlZmZlY3QpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAv
IGIpKSk7CkBAIC0xNjU3LDcgKzE2NjUsNyBAQCB2b2lkIHRlc3RTdWJBcmcoaW50IGEpCiAgICAg
UHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
ICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIFN1YiwgT3JpZ2luKCksIHZhbHVlLCB2YWx1ZSkpOwogCkBAIC0xNjY4LDcgKzE2NzYs
NyBAQCB2b2lkIHRlc3RTdWJBcmdzKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFN1YiwgT3JpZ2luKCksCkBAIC0xNjgyLDcgKzE2
OTAsNyBAQCB2b2lkIHRlc3RTdWJBcmdJbW0oaW50NjRfdCBhLCBpbnQ2NF90IGIpCiB7CiAgICAg
UHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTdWIsIE9yaWdpbigpLApA
QCAtMTcwMyw3ICsxNzExLDcgQEAgdm9pZCB0ZXN0TmVnVmFsdWVTdWJPbmUoaW50IGEpCiAgICAg
VmFsdWUqIG5lZ0FyZ3VtZW50TWludXNPbmUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IFN1YiwgT3JpZ2luKCksCiAgICAgICAgIG5lZ0FyZ3VtZW50LAogICAgICAgICByb290LT5hcHBl
bmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIG5lZ0FyZ3VtZW50TWlu
dXNPbmUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBuZWdBcmd1bWVudE1pbnVzT25lKTsKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGlu
dD4ocHJvYywgYSkgPT0gLWEgLSAxKTsKIH0KIApAQCAtMTcxMSw3ICsxNzE5LDcgQEAgdm9pZCB0
ZXN0U3ViSW1tQXJnKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIFN1YiwgT3JpZ2luKCksCkBAIC0xNzMwLDcgKzE3MzgsNyBAQCB2
b2lkIHRlc3RTdWJBcmdNZW0oaW50NjRfdCBhLCBpbnQ2NF90IGIpCiAgICAgVmFsdWUqIHJlc3Vs
dCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjApLAogICAgICAgICBsb2FkKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAg
ICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCBhLCAmYikgPT0gYSAtIGIpOwog
fQpAQCAtMTc0NSw3ICsxNzUzLDcgQEAgdm9pZCB0ZXN0U3ViTWVtQXJnKGludDY0X3QgYSwgaW50
NjRfdCBiKQogICAgICAgICBsb2FkLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSkpOwogICAgIHJv
b3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQs
IGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7
CiAKICAgICBpbnQ2NF90IGlucHV0T3V0cHV0ID0gYTsKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1
bjxpbnQ2NF90Pihwcm9jLCAmaW5wdXRPdXRwdXQsIGIpKTsKQEAgLTE3NjIsNyArMTc3MCw3IEBA
IHZvaWQgdGVzdFN1YkltbU1lbShpbnQ2NF90IGEsIGludDY0X3QgYikKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpLAogICAgICAgICBsb2Fk
KTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4o
KSwgcmVzdWx0LCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgMCkpOwogCiAgICAgaW50NjRfdCBpbnB1dE91dHB1dCA9IGI7CiAgICAgQ0hFQ0soIWNv
bXBpbGVBbmRSdW48aW50Pihwcm9jLCAmaW5wdXRPdXRwdXQpKTsKQEAgLTE3NzksNyArMTc4Nyw3
IEBAIHZvaWQgdGVzdFN1Yk1lbUltbShpbnQ2NF90IGEsIGludDY0X3QgYikKICAgICAgICAgbG9h
ZCwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IGIpKTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmln
aW4oKSwgcmVzdWx0LCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgMCkpOwogCiAgICAgaW50NjRfdCBpbnB1dE91dHB1dCA9IGE7CiAgICAgQ0hFQ0so
IWNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAmaW5wdXRPdXRwdXQpKTsKQEAgLTE3OTEsNyArMTc5
OSw3IEBAIHZvaWQgdGVzdFN1YkFyZ3MzMihpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJl
IHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTdWIsIE9yaWdpbigpLApAQCAtMTgwOSw3
ICsxODE3LDcgQEAgdm9pZCB0ZXN0U3ViQXJnSW1tMzIoaW50IGEsIGludCBiKQogewogICAgIFBy
b2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU3ViLCBPcmlnaW4oKSwKQEAg
LTE4MjUsNyArMTgzMyw3IEBAIHZvaWQgdGVzdFN1YkltbUFyZzMyKGludCBhLCBpbnQgYikKIHsK
ICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFN1YiwgT3JpZ2lu
KCksCkBAIC0xODQ3LDcgKzE4NTUsNyBAQCB2b2lkIHRlc3RTdWJNZW1BcmczMihpbnQzMl90IGEs
IGludDMyX3QgCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgbG9hZCwgYXJndW1l
bnQpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdp
bigpLCByZXN1bHQsIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCAwKSk7CiAKICAgICBpbnQzMl90IGlucHV0T3V0cHV0ID0gYTsKICAgICBDSEVDSygh
Y29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCAmaW5wdXRPdXRwdXQsIGIpKTsKQEAgLTE4NjMs
NyArMTg3MSw3IEBAIHZvaWQgdGVzdFN1YkFyZ01lbTMyKGludDMyX3QgYSwgaW50MzJfdCAKICAg
ICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSogcmVzdWx0ID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBhcmd1bWVudCwgbG9h
ZCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50MzJf
dD4ocHJvYywgYSwgJmIpID09IGEgLSBiKTsKIH0KQEAgLTE4NzgsNyArMTg4Niw3IEBAIHZvaWQg
dGVzdFN1YkltbU1lbTMyKGludDMyX3QgYSwgaW50MzJfdCAKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpLAogICAgICAgICBsb2FkKTsKICAg
ICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVz
dWx0LCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
MCkpOwogCiAgICAgaW50MzJfdCBpbnB1dE91dHB1dCA9IGI7CiAgICAgQ0hFQ0soIWNvbXBpbGVB
bmRSdW48aW50Pihwcm9jLCAmaW5wdXRPdXRwdXQpKTsKQEAgLTE4OTUsNyArMTkwMyw3IEBAIHZv
aWQgdGVzdFN1Yk1lbUltbTMyKGludDMyX3QgYSwgaW50MzJfdCAKICAgICAgICAgbG9hZCwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpKTsK
ICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwg
cmVzdWx0LCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgMCkpOwogCiAgICAgaW50MzJfdCBpbnB1dE91dHB1dCA9IGE7CiAgICAgQ0hFQ0soIWNvbXBp
bGVBbmRSdW48aW50Pihwcm9jLCAmaW5wdXRPdXRwdXQpKTsKQEAgLTE5MTQsNyArMTkyMiw3IEBA
IHZvaWQgdGVzdE5lZ1ZhbHVlU3ViT25lMzIoaW50IGEpCiAgICAgVmFsdWUqIG5lZ0FyZ3VtZW50
TWludXNPbmUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksCiAg
ICAgICAgIG5lZ0FyZ3VtZW50LAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgMSkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIG5lZ0FyZ3VtZW50TWludXNPbmUpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBuZWdBcmd1bWVu
dE1pbnVzT25lKTsKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywgYSkgPT0gLWEg
LSAxKTsKIH0KIApAQCAtMTkyMyw3ICsxOTMxLDcgQEAgdm9pZCB0ZXN0U3ViQXJnRG91YmxlKGRv
dWJsZSBhKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50
UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCB2YWx1ZSwgdmFsdWUpKTsKIApAQCAt
MTkzNiw3ICsxOTQ0LDcgQEAgdm9pZCB0ZXN0U3ViQXJnc0RvdWJsZShkb3VibGUgYSwgZG91Ymxl
IAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZh
bHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
RlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQ
UjEpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCB2YWx1ZUEsIHZh
bHVlQikpOwogCkBAIC0xOTQ5LDcgKzE5NTcsNyBAQCB2b2lkIHRlc3RTdWJBcmdJbW1Eb3VibGUo
ZG91YmxlIGEsIGRvdWJsCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
ICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiB2YWx1ZUIg
PSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikp
OwogCkBAIC0xOTYyLDcgKzE5NzAsNyBAQCB2b2lkIHRlc3RTdWJJbW1BcmdEb3VibGUoZG91Ymxl
IGEsIGRvdWJsCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBW
YWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBhKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50
UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBA
IC0xOTc1LDcgKzE5ODMsNyBAQCB2b2lkIHRlc3RTdWJJbW1zRG91YmxlKGRvdWJsZSBhLCBkb3Vi
bGUgCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSog
dmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBhKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBiKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBP
cmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKICAgICAKQEAgLTE5OTEsNyArMTk5OSw3IEBAIHZv
aWQgdGVzdFN1YkFyZ0Zsb2F0KGZsb2F0IGEpCiAgICAgVmFsdWUqIGZsb2F0VmFsdWUgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQz
Mik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3Vi
LCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSwgZmxvYXRWYWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMy
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJl
c3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKIAogICAgIENIRUNLKGlzSWRlbnRpY2Fs
KGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwg
Yml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLSBhKSkpOwpAQCAtMjAwOSw3ICsyMDE3LDcgQEAgdm9p
ZCB0ZXN0U3ViQXJnc0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIpCiAgICAgVmFsdWUqIGZsb2F0VmFs
dWUyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCks
IGFyZ3VtZW50MmludDMyKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBmbG9hdFZhbHVlMSwgZmxvYXRWYWx1ZTIpOwogICAg
IFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNh
c3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hF
Q0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSksIGJpdHdpc2VfY2FzdDxpbnQz
Ml90PihhIC0gYikpKTsKIH0KQEAgLTIwMjQsNyArMjAzMiw3IEBAIHZvaWQgdGVzdFN1YkFyZ0lt
bUZsb2F0KGZsb2F0IGEsIGZsb2F0IGIKICAgICBWYWx1ZSogY29uc3RWYWx1ZSA9IHJvb3QtPmFw
cGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKICAgICBWYWx1ZSog
cmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBmbG9h
dFZhbHVlLCBjb25zdFZhbHVlKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQz
Mik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50
MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMy
X3Q+KGEgLSBiKSkpOwogfQpAQCAtMjAzOSw3ICsyMDQ3LDcgQEAgdm9pZCB0ZXN0U3ViSW1tQXJn
RmxvYXQoZmxvYXQgYSwgZmxvYXQgYgogICAgIFZhbHVlKiBjb25zdFZhbHVlID0gcm9vdC0+YXBw
ZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiBy
ZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIGNvbnN0
VmFsdWUsIGZsb2F0VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMy
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQz
Ml90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJf
dD4oYSAtIGIpKSk7CiB9CkBAIC0yMDUyLDcgKzIwNjAsNyBAQCB2b2lkIHRlc3RTdWJJbW1zRmxv
YXQoZmxvYXQgYSwgZmxvYXQgYikKICAgICBWYWx1ZSogY29uc3RWYWx1ZTIgPSByb290LT5hcHBl
bmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7CiAgICAgVmFsdWUqIHJl
c3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgY29uc3RW
YWx1ZTEsIGNvbnN0VmFsdWUyKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQz
Mik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50
MzJfdD4ocHJvYyksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhIC0gYikpKTsKIH0KQEAgLTIwNjgs
NyArMjA3Niw3IEBAIHZvaWQgdGVzdFN1YkFyZ0Zsb2F0V2l0aFVzZWxlc3NEb3VibGVDb24KICAg
ICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdp
bigpLCBhc0RvdWJsZSwgYXNEb3VibGUpOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIHJlc3VsdCk7
CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3
aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsK
IAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0
d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLSBhKSkpOwog
fQpAQCAtMjA4OCw3ICsyMDk2LDcgQEAgdm9pZCB0ZXN0U3ViQXJnc0Zsb2F0V2l0aFVzZWxlc3NE
b3VibGVDbwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IFN1YiwgT3JpZ2luKCksIGFzRG91YmxlMSwgYXNEb3VibGUyKTsKICAgICBWYWx1ZSogZmxvYXRS
ZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdp
bigpLCByZXN1bHQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMy
X3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+
KGIpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLSBiKSkpOwogfQpAQCAtMjExMCw3ICsyMTE4
LDcgQEAgdm9pZCB0ZXN0U3ViQXJnc0Zsb2F0V2l0aEVmZmVjdGZ1bERvdWJsZQogICAgIFZhbHVl
KiBkb3VibGVTdWJyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxN
ZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGRvdWJsZVN1YnJlc3Mp
OwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0
d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7
CiAKICAgICBkb3VibGUgZWZmZWN0ID0gMDsKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxl
QW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgYml0d2lzZV9j
YXN0PGludDMyX3Q+KGIpLCAmZWZmZWN0KSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLSBiKSkp
OwpAQCAtMjEyMSw3ICsyMTI5LDcgQEAgdm9pZCB0ZXN0Qml0QW5kQXJncyhpbnQ2NF90IGEsIGlu
dDY0X3QgYgogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
Qml0QW5kLCBPcmlnaW4oKSwKQEAgLTIxMzYsNyArMjE0NCw3IEBAIHZvaWQgdGVzdEJpdEFuZFNh
bWVBcmcoaW50NjRfdCBhKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3Jp
Z2luKCksCkBAIC0yMTUwLDcgKzIxNTgsNyBAQCB2b2lkIHRlc3RCaXRBbmRJbW1zKGludDY0X3Qg
YSwgaW50NjRfdCBiCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBw
cm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMjE2NCw3ICsyMTcyLDcgQEAgdm9pZCB0ZXN0Qml0
QW5kQXJnSW1tKGludDY0X3QgYSwgaW50NjRfdAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTIxNzgsNyArMjE4Niw3
IEBAIHZvaWQgdGVzdEJpdEFuZEltbUFyZyhpbnQ2NF90IGEsIGludDY0X3QKIHsKICAgICBQcm9j
ZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBA
IC0yMTk2LDcgKzIyMDQsNyBAQCB2b2lkIHRlc3RCaXRBbmRCaXRBbmRBcmdJbW1JbW0oaW50NjRf
dCBhCiAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIwKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIGIpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQs
IE9yaWdpbigpLApAQCAtMjIxNCw3ICsyMjIyLDcgQEAgdm9pZCB0ZXN0Qml0QW5kSW1tQml0QW5k
QXJnSW1tKGludDY0X3QgYQogICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+
KHByb2MsIE9yaWdpbigpLCBjKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTIyMjgsNyArMjIzNiw3IEBAIHZvaWQgdGVzdEJp
dEFuZEFyZ3MzMihpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMjI0OCw3ICsyMjU2LDcgQEAg
dm9pZCB0ZXN0Qml0QW5kU2FtZUFyZzMyKGludCBhKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwK
QEAgLTIyNjIsNyArMjI3MCw3IEBAIHZvaWQgdGVzdEJpdEFuZEltbXMzMihpbnQgYSwgaW50IGIp
CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQs
IE9yaWdpbigpLApAQCAtMjI3Niw3ICsyMjg0LDcgQEAgdm9pZCB0ZXN0Qml0QW5kQXJnSW1tMzIo
aW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTIyOTIsNyArMjMwMCw3IEBAIHZvaWQgdGVzdEJp
dEFuZEltbUFyZzMyKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0yMzE0LDcgKzIzMjIsNyBA
QCB2b2lkIHRlc3RCaXRBbmRCaXRBbmRBcmdJbW1JbW0zMihpbnQgYSwgCiAgICAgICAgICAgICBw
cm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYikpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCks
CkBAIC0yMzM0LDcgKzIzNDIsNyBAQCB2b2lkIHRlc3RCaXRBbmRJbW1CaXRBbmRBcmdJbW0zMihp
bnQgYSwgCiAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgYykpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0yMzYxLDcgKzIzNjksNyBAQCB2b2lkIHRlc3RCaXRB
bmRXaXRoTWFza1JldHVybnNCb29sZWFucyhpCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25z
dDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MiksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
b25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCAtNSkpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2VsZWN0KTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2VsZWN0KTsK
IAogICAgIGludDY0X3QgZXhwZWN0ZWQgPSAoYSA9PSBiKSA/IC01IDogNDI7CiAgICAgQ0hFQ0so
Y29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCBhLCBiKSA9PSBleHBlY3RlZCk7CkBAIC0yMzc4
LDcgKzIzODYsNyBAQCB2b2lkIHRlc3RCaXRBbmRBcmdEb3VibGUoZG91YmxlIGEpCiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86
OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQml0QW5kLCBPcmlnaW4oKSwgYXJndW1lbnQsIGFyZ3VtZW50KTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+
KHByb2MsIGEpLCBiaXRBbmREb3VibGUoYSwgYSkpKTsKIH0KQEAgLTIzOTAsNyArMjM5OCw3IEBA
IHZvaWQgdGVzdEJpdEFuZEFyZ3NEb3VibGUoZG91YmxlIGEsIGRvdWIKICAgICBWYWx1ZSogYXJn
dW1lbnRBID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiBhcmd1bWVudEIgPSByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3Vt
ZW50RlBSMSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQml0QW5kLCBPcmlnaW4oKSwgYXJndW1lbnRBLCBhcmd1bWVudEIpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
c3VsdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJv
YywgYSwgYiksIGJpdEFuZERvdWJsZShhLCBiKSkpOwogfQpAQCAtMjQwMiw3ICsyNDEwLDcgQEAg
dm9pZCB0ZXN0Qml0QW5kQXJnSW1tRG91YmxlKGRvdWJsZSBhLCBkbwogICAgIFZhbHVlKiBhcmd1
bWVudEEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50QiA9IHJvb3QtPmFw
cGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7CiAgICAgVmFsdWUq
IHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0QW5kLCBPcmlnaW4oKSwg
YXJndW1lbnRBLCBhcmd1bWVudEIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhp
c0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgYSwgYiksIGJpdEFuZERvdWJs
ZShhLCBiKSkpOwogfQpAQCAtMjQxNCw3ICsyNDIyLDcgQEAgdm9pZCB0ZXN0Qml0QW5kSW1tc0Rv
dWJsZShkb3VibGUgYSwgZG91YgogICAgIFZhbHVlKiBhcmd1bWVudEEgPSByb290LT5hcHBlbmRO
ZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiBhcmd1
bWVudEIgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IGIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJp
dEFuZCwgT3JpZ2luKCksIGFyZ3VtZW50QSwgYXJndW1lbnRCKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQp
OwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MpLCBi
aXRBbmREb3VibGUoYSwgYikpKTsKIH0KQEAgLTI0MzIsNyArMjQ0MCw3IEBAIHZvaWQgdGVzdEJp
dEFuZEFyZ0Zsb2F0KGZsb2F0IGEpCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50
UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSk7CiAgICAg
VmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0QW5kLCBPcmln
aW4oKSwgYXJndW1lbnQsIGFyZ3VtZW50KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hF
Q0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYywgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KGEpKSwgYml0QW5kRmxvYXQoYSwgYSkpKTsKIH0KQEAgLTI0NDgsNyArMjQ1Niw3IEBA
IHZvaWQgdGVzdEJpdEFuZEFyZ3NGbG9hdChmbG9hdCBhLCBmbG9hdCAKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMSkpKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBCaXRBbmQsIE9yaWdpbigpLCBhcmd1bWVudEEsIGFyZ3VtZW50Qik7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+
KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIp
KSwgYml0QW5kRmxvYXQoYSwgYikpKTsKIH0KQEAgLTI0NjIsNyArMjQ3MCw3IEBAIHZvaWQgdGVz
dEJpdEFuZEFyZ0ltbUZsb2F0KGZsb2F0IGEsIGZsb2EKICAgICAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIwKSkpOwogICAgIFZhbHVlKiBhcmd1bWVudEIgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9h
dFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0QW5kLCBPcmlnaW4oKSwgYXJndW1lbnRBLCBhcmd1bWVu
dEIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxl
QW5kUnVuPGZsb2F0Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2Fz
dDxpbnQzMl90PihiKSksIGJpdEFuZEZsb2F0KGEsIGIpKSk7CiB9CkBAIC0yNDc0LDcgKzI0ODIs
NyBAQCB2b2lkIHRlc3RCaXRBbmRJbW1zRmxvYXQoZmxvYXQgYSwgZmxvYXQgCiAgICAgVmFsdWUq
IGFyZ3VtZW50QSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdp
bigpLCBhKTsKICAgICBWYWx1ZSogYXJndW1lbnRCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0Rmxv
YXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdEFuZCwgT3JpZ2luKCksIGFyZ3VtZW50QSwgYXJndW1l
bnRCKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGls
ZUFuZFJ1bjxmbG9hdD4ocHJvYyksIGJpdEFuZEZsb2F0KGEsIGIpKSk7CiB9CkBAIC0yNDkzLDcg
KzI1MDEsNyBAQCB2b2lkIHRlc3RCaXRBbmRBcmdzRmxvYXRXaXRoVXNlbGVzc0RvdWJsCiAgICAg
VmFsdWUqIGFyZ3VtZW50QmFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBG
bG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgYXJndW1lbnRCKTsKICAgICBWYWx1ZSogZG91YmxlUmVz
dWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXRBbmQsIE9yaWdpbigpLCBhcmd1
bWVudEFhc0RvdWJsZSwgYXJndW1lbnRCYXNEb3VibGUpOwogICAgIFZhbHVlKiBmbG9hdFJlc3Vs
dCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCks
IGRvdWJsZVJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CiAKICAgICBkb3Vi
bGUgZG91YmxlQSA9IGE7CiAgICAgZG91YmxlIGRvdWJsZUIgPSBiOwpAQCAtMjUwNSw3ICsyNTEz
LDcgQEAgdm9pZCB0ZXN0Qml0T3JBcmdzKGludDY0X3QgYSwgaW50NjRfdCBiKQogewogICAgIFBy
b2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0T3IsIE9yaWdpbigpLApA
QCAtMjUyMCw3ICsyNTI4LDcgQEAgdm9pZCB0ZXN0Qml0T3JTYW1lQXJnKGludDY0X3QgYSkKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCksCkBAIC0yNTM0LDcgKzI1
NDIsNyBAQCB2b2lkIHRlc3RCaXRPckltbXMoaW50NjRfdCBhLCBpbnQ2NF90IGIpCiB7CiAgICAg
UHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCks
CkBAIC0yNTQ4LDcgKzI1NTYsNyBAQCB2b2lkIHRlc3RCaXRPckFyZ0ltbShpbnQ2NF90IGEsIGlu
dDY0X3QgCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBC
aXRPciwgT3JpZ2luKCksCkBAIC0yNTYyLDcgKzI1NzAsNyBAQCB2b2lkIHRlc3RCaXRPckltbUFy
ZyhpbnQ2NF90IGEsIGludDY0X3QgCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCksCkBAIC0yNTgwLDcgKzI1ODgsNyBAQCB2b2lk
IHRlc3RCaXRPckJpdE9yQXJnSW1tSW1tKGludDY0X3QgYSwgCiAgICAgICAgIHByb2MsIEJpdE9y
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApLAogICAgICAgICByb290LT5hcHBl
bmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYikpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdE9yLCBPcmlnaW4oKSwKQEAgLTI1OTgsNyArMjYw
Niw3IEBAIHZvaWQgdGVzdEJpdE9ySW1tQml0T3JBcmdJbW0oaW50NjRfdCBhLCAKICAgICAgICAg
cHJvYywgQml0T3IsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBjKSk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0T3IsIE9yaWdpbigpLApAQCAt
MjYxMiw3ICsyNjIwLDcgQEAgdm9pZCB0ZXN0Qml0T3JBcmdzMzIoaW50IGEsIGludCBiKQogewog
ICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0T3IsIE9yaWdp
bigpLApAQCAtMjYzMyw3ICsyNjQxLDcgQEAgdm9pZCB0ZXN0Qml0T3JTYW1lQXJnMzIoaW50IGEp
CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
cHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCksCkBA
IC0yNjQ3LDcgKzI2NTUsNyBAQCB2b2lkIHRlc3RCaXRPckltbXMzMihpbnQgYSwgaW50IGIpCiB7
CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRPciwgT3Jp
Z2luKCksCkBAIC0yNjYxLDcgKzI2NjksNyBAQCB2b2lkIHRlc3RCaXRPckFyZ0ltbTMyKGludCBh
LCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IEJpdE9yLCBPcmlnaW4oKSwKQEAgLTI2NzcsNyArMjY4NSw3IEBAIHZvaWQgdGVzdEJpdE9ySW1t
QXJnMzIoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgcHJvYywgQml0T3IsIE9yaWdpbigpLApAQCAtMjY5OSw3ICsyNzA3LDcgQEAgdm9pZCB0
ZXN0Qml0T3JCaXRPckFyZ0ltbUltbTMyKGludCBhLCBpbgogICAgICAgICAgICAgcHJvYywgVHJ1
bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCksCkBAIC0yNzE5
LDcgKzI3MjcsNyBAQCB2b2lkIHRlc3RCaXRPckltbUJpdE9yQXJnSW1tMzIoaW50IGEsIGluCiAg
ICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCkpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgYykpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdE9y
LCBPcmlnaW4oKSwKQEAgLTI3MzMsNyArMjc0MSw3IEBAIHZvaWQgdGVzdEJpdFhvckFyZ3MoaW50
NjRfdCBhLCBpbnQ2NF90IGIKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCkBAIC0yNzQ4LDcgKzI3NTYsNyBAQCB2b2lkIHRl
c3RCaXRYb3JTYW1lQXJnKGludDY0X3QgYSkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBC
aXRYb3IsIE9yaWdpbigpLApAQCAtMjc2Miw3ICsyNzcwLDcgQEAgdm9pZCB0ZXN0Qml0WG9ySW1t
cyhpbnQ2NF90IGEsIGludDY0X3QgYgogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTI3NzYsNyArMjc4NCw3IEBAIHZv
aWQgdGVzdEJpdFhvckFyZ0ltbShpbnQ2NF90IGEsIGludDY0X3QKIHsKICAgICBQcm9jZWR1cmUg
cHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCkBAIC0yNzkw
LDcgKzI3OTgsNyBAQCB2b2lkIHRlc3RCaXRYb3JJbW1BcmcoaW50NjRfdCBhLCBpbnQ2NF90CiB7
CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRYb3IsIE9y
aWdpbigpLApAQCAtMjgwOCw3ICsyODE2LDcgQEAgdm9pZCB0ZXN0Qml0WG9yQml0WG9yQXJnSW1t
SW1tKGludDY0X3QgYQogICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBiKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTI4MjYsNyArMjgzNCw3IEBAIHZvaWQgdGVzdEJpdFhv
ckltbUJpdFhvckFyZ0ltbShpbnQ2NF90IGEKICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29u
c3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYykpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCkBAIC0yODQwLDcgKzI4NDgsNyBAQCB2
b2lkIHRlc3RCaXRYb3JBcmdzMzIoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9j
OwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTI4NjEsNyAr
Mjg2OSw3IEBAIHZvaWQgdGVzdEJpdFhvclNhbWVBcmczMihpbnQgYSkKICAgICBWYWx1ZSogYXJn
dW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICBwcm9jLCBUcnVuYywgT3Jp
Z2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCkBAIC0yODc1LDcgKzI4ODMs
NyBAQCB2b2lkIHRlc3RCaXRYb3JJbW1zMzIoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVy
ZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTI4
ODksNyArMjg5Nyw3IEBAIHZvaWQgdGVzdEJpdFhvckFyZ0ltbTMyKGludCBhLCBpbnQgYikKIHsK
ICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3Jp
Z2luKCksCkBAIC0yOTA1LDcgKzI5MTMsNyBAQCB2b2lkIHRlc3RCaXRYb3JJbW1BcmczMihpbnQg
YSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjkyNyw3ICsyOTM1LDcgQEAgdm9pZCB0ZXN0Qml0WG9y
Qml0WG9yQXJnSW1tSW1tMzIoaW50IGEsIAogICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdp
bigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjk0Nyw3ICsyOTU1
LDcgQEAgdm9pZCB0ZXN0Qml0WG9ySW1tQml0WG9yQXJnSW1tMzIoaW50IGEsIAogICAgICAgICAg
ICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGMp
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdp
bigpLApAQCAtMjk2MSw3ICsyOTY5LDcgQEAgdm9pZCB0ZXN0Qml0Tm90QXJnKGludDY0X3QgYSkK
IHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwg
T3JpZ2luKCksCkBAIC0yOTc1LDcgKzI5ODMsNyBAQCB2b2lkIHRlc3RCaXROb3RJbW0oaW50NjRf
dCBhKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0
WG9yLCBPcmlnaW4oKSwKQEAgLTI5OTUsNyArMzAwMyw3IEBAIHZvaWQgdGVzdEJpdE5vdE1lbShp
bnQ2NF90IGEpCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9y
aWdpbigpLCAtMSksCiAgICAgICAgIGxvYWQpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlW
YWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCBub3RMb2FkLCBhZGRyZXNzKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgaW50NjRfdCBpbnB1
dCA9IGE7CiAgICAgY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCAmaW5wdXQpOwpAQCAtMzAw
OCw3ICszMDE2LDcgQEAgdm9pZCB0ZXN0Qml0Tm90QXJnMzIoaW50MzJfdCBhKQogICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdFhvciwgT3JpZ2luKCks
CiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgLTEpLApAQCAtMzAyMCw3ICszMDI4LDcgQEAgdm9pZCB0ZXN0Qml0Tm90SW1tMzIoaW50MzJf
dCBhKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0
WG9yLCBPcmlnaW4oKSwKQEAgLTMwNDAsNyArMzA0OCw3IEBAIHZvaWQgdGVzdEJpdE5vdE1lbTMy
KGludDMyX3QgYSkKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIC0xKSwKICAgICAgICAgbG9hZCk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9y
eVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIG5vdExvYWQsIGFkZHJlc3MpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3Qt
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBpbnQzMl90IGlu
cHV0ID0gYTsKICAgICBjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsICZpbnB1dCk7CkBAIC0z
MDYzLDE2ICszMDcxLDE2IEBAIHZvaWQgdGVzdEJpdE5vdE9uQm9vbGVhbkFuZEJyYW5jaDMyKGlu
dDYKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IC0xKSwKICAgICAgICAgYXJnc0FyZUVxdWFsKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgYXJnc0FyZU5vdEVxdWFsLAogICAgICAgICBG
cmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAot
ICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQy
KSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNh
c2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAtNDIpKTsKIApAQCAtMzA4NCw3ICszMDkyLDcgQEAgdm9pZCB0ZXN0U2hsQXJncyhpbnQ2
NF90IGEsIGludDY0X3QgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIFNobCwgT3JpZ2luKCksCkBAIC0zMTAwLDcgKzMxMDgsNyBAQCB2b2lkIHRlc3RT
aGxJbW1zKGludDY0X3QgYSwgaW50NjRfdCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgU2hsLCBPcmlnaW4oKSwKQEAgLTMxMTQsNyArMzEyMiw3IEBA
IHZvaWQgdGVzdFNobEFyZ0ltbShpbnQ2NF90IGEsIGludDY0X3QgYikKIHsKICAgICBQcm9jZWR1
cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNobCwgT3JpZ2luKCksCkBAIC0zMTMx
LDcgKzMxMzksNyBAQCB2b2lkIHRlc3RTaGxBcmczMihpbnQzMl90IGEpCiAgICAgVmFsdWUqIHZh
bHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBTaGwsIE9yaWdpbigpLCB2YWx1ZSwgdmFsdWUpKTsKIApAQCAtMzE0Miw3ICszMTUwLDcgQEAg
dm9pZCB0ZXN0U2hsQXJnczMyKGludDMyX3QgYSwgaW50MzJfdCBiKQogewogICAgIFByb2NlZHVy
ZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2hsLCBPcmlnaW4oKSwKQEAgLTMxNjAs
NyArMzE2OCw3IEBAIHZvaWQgdGVzdFNobEltbXMzMihpbnQzMl90IGEsIGludDMyX3QgYikKIHsK
ICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNobCwgT3JpZ2lu
KCksCkBAIC0zMTc0LDcgKzMxODIsNyBAQCB2b2lkIHRlc3RTaGxBcmdJbW0zMihpbnQzMl90IGEs
IGludDMyX3QgCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBTaGwsIE9yaWdpbigpLApAQCAtMzE5MCw3ICszMTk4LDcgQEAgdm9pZCB0ZXN0U1NockFyZ3Mo
aW50NjRfdCBhLCBpbnQ2NF90IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBTU2hyLCBPcmlnaW4oKSwKQEAgLTMyMDYsNyArMzIxNCw3IEBAIHZvaWQg
dGVzdFNTaHJJbW1zKGludDY0X3QgYSwgaW50NjRfdCBiKQogewogICAgIFByb2NlZHVyZSBwcm9j
OwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU1NociwgT3JpZ2luKCksCkBAIC0zMjIwLDcgKzMy
MjgsNyBAQCB2b2lkIHRlc3RTU2hyQXJnSW1tKGludDY0X3QgYSwgaW50NjRfdCBiCiB7CiAgICAg
UHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTU2hyLCBPcmlnaW4oKSwK
QEAgLTMyMzcsNyArMzI0NSw3IEBAIHZvaWQgdGVzdFNTaHJBcmczMihpbnQzMl90IGEpCiAgICAg
VmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgcHJvYywgVHJ1
bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBTU2hyLCBPcmlnaW4oKSwgdmFsdWUsIHZhbHVlKSk7CiAKQEAgLTMyNDgsNyAr
MzI1Niw3IEBAIHZvaWQgdGVzdFNTaHJBcmdzMzIoaW50MzJfdCBhLCBpbnQzMl90IGIKIHsKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNTaHIsIE9yaWdpbigp
LApAQCAtMzI2Niw3ICszMjc0LDcgQEAgdm9pZCB0ZXN0U1NockltbXMzMihpbnQzMl90IGEsIGlu
dDMyX3QgYgogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
U1NociwgT3JpZ2luKCksCkBAIC0zMjgwLDcgKzMyODgsNyBAQCB2b2lkIHRlc3RTU2hyQXJnSW1t
MzIoaW50MzJfdCBhLCBpbnQzMl90CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBTU2hyLCBPcmlnaW4oKSwKQEAgLTMyOTYsNyArMzMwNCw3IEBAIHZvaWQg
dGVzdFpTaHJBcmdzKHVpbnQ2NF90IGEsIHVpbnQ2NF90IGIKIHsKICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFpTaHIsIE9yaWdpbigpLApAQCAtMzMxMiw3ICsz
MzIwLDcgQEAgdm9pZCB0ZXN0WlNockltbXModWludDY0X3QgYSwgdWludDY0X3QgYgogewogICAg
IFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgWlNociwgT3JpZ2luKCks
CkBAIC0zMzI2LDcgKzMzMzQsNyBAQCB2b2lkIHRlc3RaU2hyQXJnSW1tKHVpbnQ2NF90IGEsIHVp
bnQ2NF90CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBa
U2hyLCBPcmlnaW4oKSwKQEAgLTMzNDMsNyArMzM1MSw3IEBAIHZvaWQgdGVzdFpTaHJBcmczMih1
aW50MzJfdCBhKQogICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgWlNociwgT3JpZ2luKCksIHZhbHVlLCB2YWx1ZSkp
OwogCkBAIC0zMzU0LDcgKzMzNjIsNyBAQCB2b2lkIHRlc3RaU2hyQXJnczMyKHVpbnQzMl90IGEs
IHVpbnQzMl90CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBaU2hyLCBPcmlnaW4oKSwKQEAgLTMzNzIsNyArMzM4MCw3IEBAIHZvaWQgdGVzdFpTaHJJbW1z
MzIodWludDMyX3QgYSwgdWludDMyX3QKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIFpTaHIsIE9yaWdpbigpLApAQCAtMzM4Niw3ICszMzk0LDcgQEAgdm9p
ZCB0ZXN0WlNockFyZ0ltbTMyKHVpbnQzMl90IGEsIHVpbnQzMgogewogICAgIFByb2NlZHVyZSBw
cm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgWlNociwgT3JpZ2luKCksCkBAIC0zNDE5LDcg
KzM0MjcsNyBAQCB2b2lkIHRlc3RDbHpBcmc2NChpbnQ2NF90IGEpCiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCk7CiAgICAgVmFsdWUqIGNselZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBDbHosIE9yaWdpbigpLCBhcmd1bWVudCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2x6VmFsdWUpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjbHpWYWx1ZSk7CiAgICAg
Q0hFQ0soY29tcGlsZUFuZFJ1bjx1bnNpZ25lZD4ocHJvYywgYSkgPT0gY291bnRMZWFkaW5nWmVy
byhhKSk7CiB9CiAKQEAgLTM0MzAsNyArMzQzOCw3IEBAIHZvaWQgdGVzdENsek1lbTY0KGludDY0
X3QgYSkKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBNZW1vcnlW
YWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIElu
dDY0LCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIGNselZhbHVlID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBDbHosIE9yaWdpbigpLCB2YWx1ZSk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2x6VmFsdWUpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBj
bHpWYWx1ZSk7CiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjx1bnNpZ25lZD4ocHJvYywgJmEpID09
IGNvdW50TGVhZGluZ1plcm8oYSkpOwogfQogCkBAIC0zNDQxLDcgKzM0NDksNyBAQCB2b2lkIHRl
c3RDbHpBcmczMihpbnQzMl90IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIw
KSk7CiAgICAgVmFsdWUqIGNselZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBD
bHosIE9yaWdpbigpLCBhcmd1bWVudCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2x6VmFsdWUpOworICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjbHpWYWx1ZSk7CiAgICAgQ0hF
Q0soY29tcGlsZUFuZFJ1bjx1bnNpZ25lZD4ocHJvYywgYSkgPT0gY291bnRMZWFkaW5nWmVybyhh
KSk7CiB9CiAKQEAgLTM0NTIsNyArMzQ2MCw3IEBAIHZvaWQgdGVzdENsek1lbTMyKGludDMyX3Qg
YSkKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBNZW1vcnlWYWx1
ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDMy
LCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIGNselZhbHVlID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBDbHosIE9yaWdpbigpLCB2YWx1ZSk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2x6VmFsdWUpOworICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjbHpW
YWx1ZSk7CiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjx1bnNpZ25lZD4ocHJvYywgJmEpID09IGNv
dW50TGVhZGluZ1plcm8oYSkpOwogfQogCkBAIC0zNDYwLDcgKzM0NjgsNyBAQCB2b2lkIHRlc3RB
YnNBcmcoZG91YmxlIGEpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBBYnMsIE9yaWdpbigpLApAQCAtMzQ3NCw3ICszNDgyLDcgQEAgdm9pZCB0ZXN0QWJz
SW1tKGRvdWJsZSBhKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3
PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQWJzLCBPcmlnaW4oKSwgYXJndW1lbnQpKTsKIApAQCAtMzQ4Nyw3ICszNDk1LDcg
QEAgdm9pZCB0ZXN0QWJzTWVtKGRvdWJsZSBhKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAg
TWVtb3J5VmFsdWUqIGxvYWREb3VibGUgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHBy
b2MsIExvYWQsIERvdWJsZSwgT3JpZ2luKCksIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBBYnMsIE9yaWdpbigpLCBsb2FkRG91YmxlKSk7CiAKQEAgLTM1MDEsNyArMzUwOSw3
IEBAIHZvaWQgdGVzdEFic0Fic0FyZyhkb3VibGUgYSkKICAgICBWYWx1ZSogZmlyc3RBYnMgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFicywgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJn
dW1lbnRGUFIwKSk7CiAgICAgVmFsdWUqIHNlY29uZEFicyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQWJzLCBPcmlnaW4oKSwgZmlyc3RBYnMpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZEFicyk7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZEFi
cyk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywg
YSksIGZhYnMoYSkpKTsKIH0KQEAgLTM1MTMsNyArMzUyMSw3IEBAIHZvaWQgdGVzdEFic0JpdHdp
c2VDYXN0QXJnKGRvdWJsZSBhKQogICAgIFZhbHVlKiBhcmd1bWVudEFzSW50NjQgPSByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50QXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnRBc0ludDY0KTsKICAg
ICBWYWx1ZSogYWJzVmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFicywgT3Jp
Z2luKCksIGFyZ3VtZW50QXNEb3VibGUpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFic1ZhbHVlKTsKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWJzVmFsdWUpOwogCiAgICAg
Q0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIGJpdHdpc2VfY2Fz
dDxpbnQ2NF90PihhKSksIGZhYnMoYSkpKTsKIH0KQEAgLTM1MjcsNyArMzUzNSw3IEBAIHZvaWQg
dGVzdEJpdHdpc2VDYXN0QWJzQml0d2lzZUNhc3RBcmcoZG8KICAgICBWYWx1ZSogYWJzVmFsdWUg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFicywgT3JpZ2luKCksIGFyZ3VtZW50QXNE
b3VibGUpOwogICAgIFZhbHVlKiByZXN1bHRBc0ludDY0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFic1ZhbHVlKTsKIAotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdEFzSW50
NjQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHRBc0ludDY0KTsKIAogICAgIGludDY0X3QgZXhwZWN0ZWRSZXN1bHQgPSBiaXR3
aXNlX2Nhc3Q8aW50NjRfdD4oZmFicyhhKSk7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGls
ZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50NjRfdD4oYSkpLCBleHBlY3Rl
ZFJlc3VsdCkpOwpAQCAtMzU0Miw3ICszNTUwLDcgQEAgdm9pZCB0ZXN0QWJzQXJnKGZsb2F0IGEp
CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3
aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFicywgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBW
YWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0
LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNL
KGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0PGZsb2F0PihmYWJz
KGEpKSkpKTsKIH0KQEAgLTM1NTQsNyArMzU2Miw3IEBAIHZvaWQgdGVzdEFic0ltbShmbG9hdCBh
KQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+
KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHJlc3Vs
dDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCks
IHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNh
bChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSks
IGJpdHdpc2VfY2FzdDxpbnQzMl90PihzdGF0aWNfY2FzdDxmbG9hdD4oZmFicyhhKSkpKSk7CiB9
CkBAIC0zNTY3LDcgKzM1NzUsNyBAQCB2b2lkIHRlc3RBYnNNZW0oZmxvYXQgYSkKICAgICBNZW1v
cnlWYWx1ZSogbG9hZEZsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBM
b2FkLCBGbG9hdCwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFicywgT3JpZ2luKCksIGxvYWRGbG9hdCk7CiAgICAg
VmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2Fz
dCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVD
Syhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsICZhKSwgYml0d2lzZV9j
YXN0PGludDMyX3Q+KHN0YXRpY19jYXN0PGZsb2F0PihmYWJzKGEpKSkpKTsKIH0KQEAgLTM1ODEs
NyArMzU4OSw3IEBAIHZvaWQgdGVzdEFic0Fic0FyZyhmbG9hdCBhKQogICAgIFZhbHVlKiBhcmd1
bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigp
LCBhcmd1bWVudDMyKTsKICAgICBWYWx1ZSogZmlyc3RBYnMgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEFicywgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBWYWx1ZSogc2Vjb25kQWJz
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdpbigpLCBmaXJzdEFicyk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgc2Vjb25kQWJzKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgc2Vjb25kQWJzKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBp
bGVBbmRSdW48ZmxvYXQ+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIHN0YXRpY19j
YXN0PGZsb2F0PihmYWJzKGEpKSkpOwogfQpAQCAtMzU5NCw3ICszNjAyLDcgQEAgdm9pZCB0ZXN0
QWJzQml0d2lzZUNhc3RBcmcoZmxvYXQgYSkKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAg
ICBWYWx1ZSogYXJndW1lbnRBc2Zsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBC
aXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50QXNJbnQzMik7CiAgICAgVmFsdWUqIGFic1Zh
bHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdpbigpLCBhcmd1bWVu
dEFzZmxvYXQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIGFic1ZhbHVlKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWJzVmFsdWUpOwogCiAgICAgQ0hFQ0soaXNJZGVudGlj
YWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwg
c3RhdGljX2Nhc3Q8ZmxvYXQ+KGZhYnMoYSkpKSk7CiB9CkBAIC0zNjA5LDcgKzM2MTcsNyBAQCB2
b2lkIHRlc3RCaXR3aXNlQ2FzdEFic0JpdHdpc2VDYXN0QXJnKGZsCiAgICAgVmFsdWUqIGFic1Zh
bHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdpbigpLCBhcmd1bWVu
dEFzZmxvYXQpOwogICAgIFZhbHVlKiByZXN1bHRBc0ludDY0ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFic1ZhbHVlKTsKIAotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdEFz
SW50NjQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHRBc0ludDY0KTsKIAogICAgIGludDMyX3QgZXhwZWN0ZWRSZXN1bHQgPSBi
aXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KGZhYnMoYSkpKTsKICAgICBD
SEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2Fz
dDxpbnQzMl90PihhKSksIGV4cGVjdGVkUmVzdWx0KSk7CkBAIC0zNjI2LDcgKzM2MzQsNyBAQCB2
b2lkIHRlc3RBYnNBcmdXaXRoVXNlbGVzc0RvdWJsZUNvbnZlcnNpCiAgICAgVmFsdWUqIHJlc3Vs
dCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBPcmlnaW4oKSwgYXNEb3VibGUp
OwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
RG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0
UmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2Fs
KGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwg
Yml0d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0PGZsb2F0PihmYWJzKGEpKSkpKTsKIH0K
QEAgLTM2NDQsNyArMzY1Miw3IEBAIHZvaWQgdGVzdEFic0FyZ1dpdGhFZmZlY3RmdWxEb3VibGVD
b252ZXIKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwogICAgIFZhbHVlKiBkb3VibGVB
ZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1
ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGRvdWJsZUFkZHJlc3MpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0MzIpOwogCiAgICAgZG91YmxlIGVmZmVjdCA9IDA7CiAgICAgaW50MzJfdCBy
ZXN1bHRWYWx1ZSA9IGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KGEpLCAmZWZmZWN0KTsKQEAgLTM2NTYsNyArMzY2NCw3IEBAIHZvaWQgdGVzdENlaWxB
cmcoZG91YmxlIGEpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBw
cm9jLCBDZWlsLCBPcmlnaW4oKSwKQEAgLTM2NzAsNyArMzY3OCw3IEBAIHZvaWQgdGVzdENlaWxJ
bW0oZG91YmxlIGEpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8
Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBDZWlsLCBPcmlnaW4oKSwgYXJndW1lbnQpKTsKIApAQCAtMzY4Myw3ICszNjkxLDcg
QEAgdm9pZCB0ZXN0Q2VpbE1lbShkb3VibGUgYSkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAg
IE1lbW9yeVZhbHVlKiBsb2FkRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihw
cm9jLCBMb2FkLCBEb3VibGUsIE9yaWdpbigpLCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCksIGxvYWREb3VibGUpKTsKIApAQCAtMzY5Nyw3ICszNzA1
LDcgQEAgdm9pZCB0ZXN0Q2VpbENlaWxBcmcoZG91YmxlIGEpCiAgICAgVmFsdWUqIGZpcnN0Q2Vp
bCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5m
bzo6YXJndW1lbnRGUFIwKSk7CiAgICAgVmFsdWUqIHNlY29uZENlaWwgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBmaXJzdENlaWwpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZENlaWwp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBzZWNvbmRDZWlsKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91
YmxlPihwcm9jLCBhKSwgY2VpbChhKSkpOwogfQpAQCAtMzcwOSw3ICszNzE3LDcgQEAgdm9pZCB0
ZXN0Rmxvb3JDZWlsQXJnKGRvdWJsZSBhKQogICAgIFZhbHVlKiBmaXJzdENlaWwgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50
RlBSMCkpOwogICAgIFZhbHVlKiB3cmFwcGluZ0Zsb29yID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGZpcnN0Q2VpbCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgd3JhcHBpbmdGbG9vcik7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHdy
YXBwaW5nRmxvb3IpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3Vi
bGU+KHByb2MsIGEpLCBjZWlsKGEpKSk7CiB9CkBAIC0zNzIxLDcgKzM3MjksNyBAQCB2b2lkIHRl
c3RDZWlsSVRvRDY0KGludDY0X3QgYSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50QXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCksIGFyZ3VtZW50QXNEb3VibGUpKTsKIApAQCAtMzczNiw3
ICszNzQ0LDcgQEAgdm9pZCB0ZXN0Q2VpbElUb0QzMihpbnQ2NF90IGEpCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKSk7CiAgICAgVmFsdWUqIGFyZ3VtZW50QXNEb3VibGUgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCksIGFyZ3VtZW50QXNEb3VibGUpKTsKIApAQCAt
Mzc1Miw3ICszNzYwLDcgQEAgdm9pZCB0ZXN0Q2VpbEFyZyhmbG9hdCBhKQogICAgIFZhbHVlKiBh
cmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdp
bigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBDZWlsLCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZhbHVlKiByZXN1bHQz
MiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBy
ZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwo
Y29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBi
aXR3aXNlX2Nhc3Q8aW50MzJfdD4oY2VpbGYoYSkpKSk7CiB9CkBAIC0zNzY0LDcgKzM3NzIsNyBA
QCB2b2lkIHRlc3RDZWlsSW1tKGZsb2F0IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+
YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVl
KiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBh
cmd1bWVudCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQz
Mik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2Ms
IGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihjZWlsZihh
KSkpKTsKIH0KQEAgLTM3NzcsNyArMzc4NSw3IEBAIHZvaWQgdGVzdENlaWxNZW0oZmxvYXQgYSkK
ICAgICBNZW1vcnlWYWx1ZSogbG9hZEZsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVl
Pihwcm9jLCBMb2FkLCBGbG9hdCwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiByZXN1
bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBsb2FkRmxv
YXQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
Qml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwog
CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCAmYSks
IGJpdHdpc2VfY2FzdDxpbnQzMl90PihjZWlsZihhKSkpKTsKIH0KQEAgLTM3OTEsNyArMzc5OSw3
IEBAIHZvaWQgdGVzdENlaWxDZWlsQXJnKGZsb2F0IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3Vt
ZW50MzIpOwogICAgIFZhbHVlKiBmaXJzdENlaWwgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIENlaWwsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHNlY29uZENlaWwgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBmaXJzdENlaWwpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHNlY29uZENlaWwpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBzZWNvbmRDZWlsKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBp
bGVBbmRSdW48ZmxvYXQ+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGNlaWxmKGEp
KSk7CiB9CkBAIC0zODA1LDcgKzM4MTMsNyBAQCB2b2lkIHRlc3RGbG9vckNlaWxBcmcoZmxvYXQg
YSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJp
dHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUqIGZpcnN0Q2VpbCA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCksIGFyZ3VtZW50KTsK
ICAgICBWYWx1ZSogd3JhcHBpbmdGbG9vciA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
Rmxvb3IsIE9yaWdpbigpLCBmaXJzdENlaWwpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHdyYXBwaW5nRmxvb3IpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB3cmFwcGluZ0Zs
b29yKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2Ms
IGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGNlaWxmKGEpKSk7CiB9CkBAIC0zODIxLDcgKzM4
MjksNyBAQCB2b2lkIHRlc3RDZWlsQXJnV2l0aFVzZWxlc3NEb3VibGVDb252ZXJzCiAgICAgVmFs
dWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCks
IGFzRG91YmxlKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCByZXN1bHQpOwogICAgIFZhbHVlKiBy
ZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdp
bigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhp
c0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQz
Ml90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihjZWlsZihhKSkpKTsKIH0KQEAgLTM4Mzks
NyArMzg0Nyw3IEBAIHZvaWQgdGVzdENlaWxBcmdXaXRoRWZmZWN0ZnVsRG91YmxlQ29udmUKICAg
ICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VD
YXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwogICAgIFZhbHVlKiBkb3VibGVBZGRyZXNzID0g
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjEpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywg
U3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGRvdWJsZUFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0MzIpOwogCiAgICAgZG91YmxlIGVmZmVjdCA9IDA7CiAgICAgaW50MzJfdCByZXN1bHRWYWx1
ZSA9IGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEp
LCAmZWZmZWN0KTsKQEAgLTM4NTEsNyArMzg1OSw3IEBAIHZvaWQgdGVzdEZsb29yQXJnKGRvdWJs
ZSBhKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgRmxv
b3IsIE9yaWdpbigpLApAQCAtMzg2NSw3ICszODczLDcgQEAgdm9pZCB0ZXN0Rmxvb3JJbW0oZG91
YmxlIGEpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8Q29uc3RE
b3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBGbG9vciwgT3JpZ2luKCksIGFyZ3VtZW50KSk7CiAKQEAgLTM4NzgsNyArMzg4Niw3IEBAIHZv
aWQgdGVzdEZsb29yTWVtKGRvdWJsZSBhKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVt
b3J5VmFsdWUqIGxvYWREb3VibGUgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2Ms
IExvYWQsIERvdWJsZSwgT3JpZ2luKCksIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBGbG9vciwgT3JpZ2luKCksIGxvYWREb3VibGUpKTsKIApAQCAtMzg5Miw3ICszOTAwLDcg
QEAgdm9pZCB0ZXN0Rmxvb3JGbG9vckFyZyhkb3VibGUgYSkKICAgICBWYWx1ZSogZmlyc3RGbG9v
ciA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUklu
Zm86OmFyZ3VtZW50RlBSMCkpOwogICAgIFZhbHVlKiBzZWNvbmRGbG9vciA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBmaXJzdEZsb29yKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmRG
bG9vcik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHNlY29uZEZsb29yKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRS
dW48ZG91YmxlPihwcm9jLCBhKSwgZmxvb3IoYSkpKTsKIH0KQEAgLTM5MDQsNyArMzkxMiw3IEBA
IHZvaWQgdGVzdENlaWxGbG9vckFyZyhkb3VibGUgYSkKICAgICBWYWx1ZSogZmlyc3RGbG9vciA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86
OmFyZ3VtZW50RlBSMCkpOwogICAgIFZhbHVlKiB3cmFwcGluZ0NlaWwgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBmaXJzdEZsb29yKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB3cmFwcGluZ0Nl
aWwpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCB3cmFwcGluZ0NlaWwpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1
bjxkb3VibGU+KHByb2MsIGEpLCBmbG9vcihhKSkpOwogfQpAQCAtMzkxNiw3ICszOTI0LDcgQEAg
dm9pZCB0ZXN0Rmxvb3JJVG9ENjQoaW50NjRfdCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKTsKICAgICBWYWx1ZSogYXJndW1lbnRBc0RvdWJsZSA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGFyZ3VtZW50KTsKIAotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGFyZ3VtZW50QXNEb3VibGUpKTsKIApA
QCAtMzkzMSw3ICszOTM5LDcgQEAgdm9pZCB0ZXN0Rmxvb3JJVG9EMzIoaW50NjRfdCBhKQogICAg
ICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiBhcmd1bWVudEFzRG91YmxlID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgYXJndW1lbnQpOwogCi0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgYXJndW1lbnRBc0RvdWJs
ZSkpOwogCkBAIC0zOTQ3LDcgKzM5NTUsNyBAQCB2b2lkIHRlc3RGbG9vckFyZyhmbG9hdCBhKQog
ICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lz
ZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBW
YWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0
LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNL
KGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGZsb29yZihhKSkpKTsKIH0KQEAgLTM5
NTksNyArMzk2Nyw3IEBAIHZvaWQgdGVzdEZsb29ySW1tKGZsb2F0IGEpCiAgICAgVmFsdWUqIGFy
Z3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IGEpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZs
b29yLCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
c3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1
bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4oZmxvb3JmKGEpKSkpOwogfQpAQCAtMzk3Miw3ICszOTgwLDcgQEAgdm9pZCB0ZXN0
Rmxvb3JNZW0oZmxvYXQgYSkKICAgICBNZW1vcnlWYWx1ZSogbG9hZEZsb2F0ID0gcm9vdC0+YXBw
ZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBGbG9hdCwgT3JpZ2luKCksIGFkZHJlc3Mp
OwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29y
LCBPcmlnaW4oKSwgbG9hZEZsb2F0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1
bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48
aW50MzJfdD4ocHJvYywgJmEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oZmxvb3JmKGEpKSkpOwog
fQpAQCAtMzk4Niw3ICszOTk0LDcgQEAgdm9pZCB0ZXN0Rmxvb3JGbG9vckFyZyhmbG9hdCBhKQog
ICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lz
ZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1ZSogZmlyc3RGbG9vciA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAg
ICAgVmFsdWUqIHNlY29uZEZsb29yID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9v
ciwgT3JpZ2luKCksIGZpcnN0Rmxvb3IpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZEZsb29yKTsKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kRmxvb3IpOwog
CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYywgYml0d2lz
ZV9jYXN0PGludDMyX3Q+KGEpKSwgZmxvb3JmKGEpKSk7CiB9CkBAIC00MDAwLDcgKzQwMDgsNyBA
QCB2b2lkIHRlc3RDZWlsRmxvb3JBcmcoZmxvYXQgYSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1l
bnQzMik7CiAgICAgVmFsdWUqIGZpcnN0Rmxvb3IgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEZsb29yLCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZhbHVlKiB3cmFwcGluZ0NlaWwg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBmaXJzdEZsb29y
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCB3cmFwcGluZ0NlaWwpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCB3cmFwcGluZ0NlaWwpOwogCiAgICAgQ0hFQ0soaXNJZGVudGlj
YWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwg
Zmxvb3JmKGEpKSk7CiB9CkBAIC00MDE2LDcgKzQwMjQsNyBAQCB2b2lkIHRlc3RGbG9vckFyZ1dp
dGhVc2VsZXNzRG91YmxlQ29udmVyCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBhc0RvdWJsZSk7CiAgICAgVmFsdWUqIGZs
b2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBP
cmlnaW4oKSwgcmVzdWx0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxp
bnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50
MzJfdD4oZmxvb3JmKGEpKSkpOwogfQpAQCAtNDAzNCw3ICs0MDQyLDcgQEAgdm9pZCB0ZXN0Rmxv
b3JBcmdXaXRoRWZmZWN0ZnVsRG91YmxlQ29udgogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3Vs
dCk7CiAgICAgVmFsdWUqIGRvdWJsZUFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CiAgICAgcm9v
dC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwg
ZG91YmxlQWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBkb3VibGUgZWZm
ZWN0ID0gMDsKICAgICBpbnQzMl90IHJlc3VsdFZhbHVlID0gY29tcGlsZUFuZFJ1bjxpbnQzMl90
Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksICZlZmZlY3QpOwpAQCAtNDA0Niw3ICs0
MDU0LDcgQEAgdm9pZCB0ZXN0U3FydEFyZyhkb3VibGUgYSkKIHsKICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNxcnQsIE9yaWdpbigpLApAQCAtNDA2MCw3ICs0
MDY4LDcgQEAgdm9pZCB0ZXN0U3FydEltbShkb3VibGUgYSkKICAgICBQcm9jZWR1cmUgcHJvYzsK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1
bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
YSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFNxcnQsIE9yaWdpbigpLCBhcmd1bWVudCkp
OwogCkBAIC00MDczLDcgKzQwODEsNyBAQCB2b2lkIHRlc3RTcXJ0TWVtKGRvdWJsZSBhKQogICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFkZHJlc3Mg
PSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWREb3VibGUgPSByb290LT5h
cHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIERvdWJsZSwgT3JpZ2luKCksIGFkZHJl
c3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTcXJ0LCBPcmlnaW4oKSwgbG9hZERvdWJs
ZSkpOwogCkBAIC00MDg5LDcgKzQwOTcsNyBAQCB2b2lkIHRlc3RTcXJ0QXJnKGZsb2F0IGEpCiAg
ICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNl
Q2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIFNxcnQsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFs
dWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwg
T3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhp
c0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQz
Ml90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihzdGF0aWNfY2FzdDxmbG9hdD4oc3FydChh
KSkpKSk7CiB9CkBAIC00MTAxLDcgKzQxMDksNyBAQCB2b2lkIHRlc3RTcXJ0SW1tKGZsb2F0IGEp
CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIFNxcnQsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHJlc3Vs
dDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCks
IHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNh
bChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSks
IGJpdHdpc2VfY2FzdDxpbnQzMl90PihzdGF0aWNfY2FzdDxmbG9hdD4oc3FydChhKSkpKSk7CiB9
CkBAIC00MTE0LDcgKzQxMjIsNyBAQCB2b2lkIHRlc3RTcXJ0TWVtKGZsb2F0IGEpCiAgICAgTWVt
b3J5VmFsdWUqIGxvYWRGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywg
TG9hZCwgRmxvYXQsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTcXJ0LCBPcmlnaW4oKSwgbG9hZEZsb2F0KTsKICAg
ICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VD
YXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENI
RUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgJmEpLCBiaXR3aXNl
X2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KHNxcnQoYSkpKSkpOwogfQpAQCAtNDEz
MCw3ICs0MTM4LDcgQEAgdm9pZCB0ZXN0U3FydEFyZ1dpdGhVc2VsZXNzRG91YmxlQ29udmVycwog
ICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFNxcnQsIE9y
aWdpbigpLCBhc0RvdWJsZSk7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICBW
YWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0
LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAg
Q0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nh
c3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+
KHNxcnQoYSkpKSkpOwogfQpAQCAtNDE0OCw3ICs0MTU2LDcgQEAgdm9pZCB0ZXN0U3FydEFyZ1dp
dGhFZmZlY3RmdWxEb3VibGVDb252ZQogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CiAg
ICAgVmFsdWUqIGRvdWJsZUFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CiAgICAgcm9vdC0+YXBw
ZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgZG91Ymxl
QWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBkb3VibGUgZWZmZWN0ID0g
MDsKICAgICBpbnQzMl90IHJlc3VsdFZhbHVlID0gY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9j
LCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksICZlZmZlY3QpOwpAQCAtNDE3Miw3ICs0MTgwLDcg
QEAgdm9pZCB0ZXN0Q29tcGFyZVR3b0Zsb2F0VG9Eb3VibGUoZmxvYXQgYQogICAgIFZhbHVlKiBh
cmcyQXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUs
IE9yaWdpbigpLCBhcmcyRmxvYXQpOwogICAgIFZhbHVlKiBlcXVhbCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgRXF1YWwsIE9yaWdpbigpLCBhcmcxQXNEb3VibGUsIGFyZzJBc0RvdWJs
ZSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBlcXVhbCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIGVxdWFsKTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRf
dD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4o
YikpID09IChhID09IGIpKTsKIH0KQEAgLTQxOTAsNyArNDE5OCw3IEBAIHZvaWQgdGVzdENvbXBh
cmVPbmVGbG9hdFRvRG91YmxlKGZsb2F0IGEKICAgICBWYWx1ZSogYXJnMkFzRG91YmxlID0gcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjph
cmd1bWVudEZQUjApOwogICAgIFZhbHVlKiBlcXVhbCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgRXF1YWwsIE9yaWdpbigpLCBhcmcxQXNEb3VibGUsIGFyZzJBc0RvdWJsZSk7CiAKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBl
cXVhbCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIGVxdWFsKTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywg
Yml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiKSA9PSAoYSA9PSBiKSk7CiB9CkBAIC00MjE0LDIz
ICs0MjIyLDIzIEBAIHZvaWQgdGVzdENvbXBhcmVGbG9hdFRvRG91YmxlVGhyb3VnaFBoaSgKICAg
ICBWYWx1ZSogYXJnMkFzRmxvYXQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJs
ZVRvRmxvYXQsIE9yaWdpbigpLCBhcmcyQXNEb3VibGUpOwogICAgIFZhbHVlKiBhcmcyQXNGUm91
bmRlZERvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwg
T3JpZ2luKCksIGFyZzJBc0Zsb2F0KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJh
bmNoLCBPcmlnaW4oKSwKICAgICAgICAgY29uZGl0aW9uLAogICAgICAgICBGcmVxdWVudGVkQmxv
Y2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAogICAgIFVwc2lsb25W
YWx1ZSogdGhlblZhbHVlID0gdGhlbkNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBhcmcxQXNEb3VibGUpOwotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKKyAg
ICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBG
cmVxdWVudGVkQmxvY2sodGFpbCkpOwogCiAgICAgVmFsdWUqIGVsc2VDb25zdCA9IGVsc2VDYXNl
LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDAuKTsKICAgICBV
cHNpbG9uVmFsdWUqIGVsc2VWYWx1ZSA9IGVsc2VDYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgZWxzZUNvbnN0KTsKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7
CisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4o
KSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKIAogICAgIFZhbHVlKiBkb3VibGVJbnB1dCA9IHRh
aWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBEb3VibGUsIE9yaWdpbigpKTsKICAgICB0
aGVuVmFsdWUtPnNldFBoaShkb3VibGVJbnB1dCk7CiAgICAgZWxzZVZhbHVlLT5zZXRQaGkoZG91
YmxlSW5wdXQpOwogICAgIFZhbHVlKiBlcXVhbCA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgRXF1YWwsIE9yaWdpbigpLCBkb3VibGVJbnB1dCwgYXJnMkFzRlJvdW5kZWREb3VibGUpOwot
ICAgIHRhaWwtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IGVxdWFsKTsKKyAgICB0YWlsLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgZXF1YWwpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBp
bnQzMl90IGludGVnZXJBID0gYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpOwpAQCAtNDI2MSw3ICs0
MjY5LDcgQEAgdm9pZCB0ZXN0RG91YmxlVG9GbG9hdFRocm91Z2hQaGkoZmxvYXQgdgogICAgIFZh
bHVlKiBmbG9hdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2Fz
dCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiBhcmdBc0RvdWJsZSA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGZsb2F0VmFs
dWUpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAg
ICAgICBjb25kaXRpb24sCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1
ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwpAQCAtNDI2OSwxNyArNDI3NywxNyBAQCB2b2lkIHRlc3RE
b3VibGVUb0Zsb2F0VGhyb3VnaFBoaShmbG9hdCB2CiAgICAgVmFsdWUqIHBvc3RpdGl2ZUNvbnN0
ID0gdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
NDIuNWYpOwogICAgIFZhbHVlKiB0aGVuQWRkID0gdGhlbkNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQWRkLCBPcmlnaW4oKSwgYXJnQXNEb3VibGUsIHBvc3RpdGl2ZUNvbnN0KTsKICAgICBV
cHNpbG9uVmFsdWUqIHRoZW5WYWx1ZSA9IHRoZW5DYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgdGhlbkFkZCk7Ci0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOwor
ICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCks
IEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CiAKICAgICBWYWx1ZSogZWxzZUNvbnN0ID0gZWxzZUNh
c2UtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgTV9QSSk7CiAg
ICAgVXBzaWxvblZhbHVlKiBlbHNlVmFsdWUgPSBlbHNlQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25W
YWx1ZT4ocHJvYywgT3JpZ2luKCksIGVsc2VDb25zdCk7Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFp
bCkpOworICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3Jp
Z2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CiAKICAgICBWYWx1ZSogZG91YmxlSW5wdXQg
PSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFBoaSwgRG91YmxlLCBPcmlnaW4oKSk7CiAg
ICAgdGhlblZhbHVlLT5zZXRQaGkoZG91YmxlSW5wdXQpOwogICAgIGVsc2VWYWx1ZS0+c2V0UGhp
KGRvdWJsZUlucHV0KTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSB0YWlsLT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBkb3VibGVJbnB1dCk7Ci0gICAg
dGFpbC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZmxv
YXRSZXN1bHQpOworICAgIHRhaWwtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2Mp
OwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGludm9rZTxmbG9hdD4oKmNvZGUsIDEsIGJpdHdpc2Vf
Y2FzdDxpbnQzMl90Pih2YWx1ZSkpLCB2YWx1ZSArIDQyLjVmKSk7CkBAIC00Mjk5LDE4ICs0MzA3
LDE4IEBAIHZvaWQgdGVzdERvdWJsZVByb2R1Y2VyUGhpVG9GbG9hdENvbnZlcnMKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjEpKTsKICAgICBWYWx1ZSogZmxvYXRWYWx1ZSA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKIAotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgY29uZGl0
aW9uLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2so
ZWxzZUNhc2UpKTsKIAogICAgIFZhbHVlKiBhc0RvdWJsZSA9IHRoZW5DYXNlLT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBmbG9hdFZhbHVlKTsKICAgICBV
cHNpbG9uVmFsdWUqIHRoZW5WYWx1ZSA9IHRoZW5DYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgYXNEb3VibGUpOwotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsK
KyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigp
LCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOwogCiAgICAgVmFsdWUqIGNvbnN0RG91YmxlID0gZWxz
ZUNhc2UtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIuNSk7
CiAgICAgVXBzaWxvblZhbHVlKiBlbHNlVmFsdWUgPSBlbHNlQ2FzZS0+YXBwZW5kTmV3PFVwc2ls
b25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGNvbnN0RG91YmxlKTsKLSAgICBlbHNlQ2FzZS0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9j
ayh0YWlsKSk7CisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1w
LCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKIAogICAgIFZhbHVlKiBkb3VibGVJ
bnB1dCA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBEb3VibGUsIE9yaWdpbigp
KTsKICAgICB0aGVuVmFsdWUtPnNldFBoaShkb3VibGVJbnB1dCk7CkBAIC00MzE5LDcgKzQzMjcs
NyBAQCB2b2lkIHRlc3REb3VibGVQcm9kdWNlclBoaVRvRmxvYXRDb252ZXJzCiAgICAgVmFsdWUq
IGFyZ0FzRG91YmxlQWdhaW4gPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9E
b3VibGUsIE9yaWdpbigpLCBmbG9hdFZhbHVlKTsKICAgICBWYWx1ZSogZmluYWxBZGQgPSB0YWls
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGRvdWJsZUlucHV0LCBhcmdB
c0RvdWJsZUFnYWluKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSB0YWlsLT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBmaW5hbEFkZCk7Ci0gICAgdGFp
bC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZmxvYXRS
ZXN1bHQpOworICAgIHRhaWwtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBmbG9hdFJlc3VsdCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwog
ICAgIENIRUNLKGlzSWRlbnRpY2FsKGludm9rZTxmbG9hdD4oKmNvZGUsIDEsIGJpdHdpc2VfY2Fz
dDxpbnQzMl90Pih2YWx1ZSkpLCB2YWx1ZSArIHZhbHVlKSk7CkBAIC00MzQxLDE4ICs0MzQ5LDE4
IEBAIHZvaWQgdGVzdERvdWJsZVByb2R1Y2VyUGhpVG9GbG9hdENvbnZlcnMKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjEpKTsKICAgICBWYWx1ZSogZmxvYXRWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKIAotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgY29uZGl0aW9u
LAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxz
ZUNhc2UpKTsKIAogICAgIFZhbHVlKiBhc0RvdWJsZSA9IHRoZW5DYXNlLT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBmbG9hdFZhbHVlKTsKICAgICBVcHNp
bG9uVmFsdWUqIHRoZW5WYWx1ZSA9IHRoZW5DYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgYXNEb3VibGUpOwotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKKyAg
ICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBG
cmVxdWVudGVkQmxvY2sodGFpbCkpOwogCiAgICAgVmFsdWUqIGNvbnN0RG91YmxlID0gZWxzZUNh
c2UtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIuNSk7CiAg
ICAgVXBzaWxvblZhbHVlKiBlbHNlVmFsdWUgPSBlbHNlQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25W
YWx1ZT4ocHJvYywgT3JpZ2luKCksIGNvbnN0RG91YmxlKTsKLSAgICBlbHNlQ2FzZS0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0
YWlsKSk7CisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBP
cmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKIAogICAgIFZhbHVlKiBkb3VibGVJbnB1
dCA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBEb3VibGUsIE9yaWdpbigpKTsK
ICAgICB0aGVuVmFsdWUtPnNldFBoaShkb3VibGVJbnB1dCk7CkBAIC00MzY4LDcgKzQzNzYsNyBA
QCB2b2lkIHRlc3REb3VibGVQcm9kdWNlclBoaVRvRmxvYXRDb252ZXJzCiAgICAgLy8gVGhpcyBv
bmUgKmNhbm5vdCogYmUgZWxpbWluYXRlZAogICAgIFZhbHVlKiBkb3VibGVBZGQgPSB0YWlsLT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGRvdWJsZUlucHV0LCBkb3VibGVS
ZXN1bHQpOwogCi0gICAgdGFpbC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgZG91YmxlQWRkKTsKKyAgICB0YWlsLT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZG91YmxlQWRkKTsKIAogICAgIGF1dG8gY29kZSA9IGNv
bXBpbGUocHJvYyk7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoaW52b2tlPGRvdWJsZT4oKmNvZGUs
IDEsIGJpdHdpc2VfY2FzdDxpbnQzMl90Pih2YWx1ZSkpLCAodmFsdWUgKyB2YWx1ZSkgKyBzdGF0
aWNfY2FzdDxkb3VibGU+KHZhbHVlKSkpOwpAQCAtNDM4OCwxOCArNDM5NiwxOCBAQCB2b2lkIHRl
c3REb3VibGVQcm9kdWNlclBoaVdpdGhOb25GbG9hdENvCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIx
KSk7CiAgICAgVmFsdWUqIGZsb2F0VmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIGNvbmRpdGlvbiwKICAgICAgICAg
RnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAK
ICAgICBWYWx1ZSogYXNEb3VibGUgPSB0aGVuQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBG
bG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSk7CiAgICAgVXBzaWxvblZhbHVlKiB0
aGVuVmFsdWUgPSB0aGVuQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIGFzRG91YmxlKTsKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CisgICAgdGhlbkNhc2Ut
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJs
b2NrKHRhaWwpKTsKIAogICAgIFZhbHVlKiBjb25zdERvdWJsZSA9IGVsc2VDYXNlLT5hcHBlbmRO
ZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGNvbnN0VmFsdWUpOwogICAgIFVw
c2lsb25WYWx1ZSogZWxzZVZhbHVlID0gZWxzZUNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBjb25zdERvdWJsZSk7Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkp
OworICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2lu
KCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CiAKICAgICBWYWx1ZSogZG91YmxlSW5wdXQgPSB0
YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFBoaSwgRG91YmxlLCBPcmlnaW4oKSk7CiAgICAg
dGhlblZhbHVlLT5zZXRQaGkoZG91YmxlSW5wdXQpOwpAQCAtNDQwOCw3ICs0NDE2LDcgQEAgdm9p
ZCB0ZXN0RG91YmxlUHJvZHVjZXJQaGlXaXRoTm9uRmxvYXRDbwogICAgIFZhbHVlKiBhcmdBc0Rv
dWJsZUFnYWluID0gdGFpbC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBP
cmlnaW4oKSwgZmxvYXRWYWx1ZSk7CiAgICAgVmFsdWUqIGZpbmFsQWRkID0gdGFpbC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBkb3VibGVJbnB1dCwgYXJnQXNEb3VibGVB
Z2Fpbik7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gdGFpbC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgZmluYWxBZGQpOwotICAgIHRhaWwtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsK
KyAgICB0YWlsLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
ZmxvYXRSZXN1bHQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBDSEVD
Syhpc0lkZW50aWNhbChpbnZva2U8ZmxvYXQ+KCpjb2RlLCAxLCBiaXR3aXNlX2Nhc3Q8aW50MzJf
dD4odmFsdWUpKSwgdmFsdWUgKyB2YWx1ZSkpOwpAQCAtNDQyMSw3ICs0NDI5LDcgQEAgdm9pZCB0
ZXN0RG91YmxlQXJnVG9JbnQ2NEJpdHdpc2VDYXN0KGRvdQogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjAp
OwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0d2lzZUNhc3Qs
IE9yaWdpbigpLCBhcmd1bWVudCkpOwpAQCAtNDQzNSw3ICs0NDQzLDcgQEAgdm9pZCB0ZXN0RG91
YmxlSW1tVG9JbnQ2NEJpdHdpc2VDYXN0KGRvdQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0
RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSk7CiAKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50KSk7
CkBAIC00NDUwLDcgKzQ0NTgsNyBAQCB2b2lkIHRlc3RUd29CaXR3aXNlQ2FzdE9uRG91YmxlKGRv
dWJsZSB2CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVl
KiBmaXJzdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdp
bigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHNlY29uZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmaXJzdCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kKTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25k
KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCB2
YWx1ZSksIHZhbHVlKSk7CiB9CkBAIC00NDYyLDcgKzQ0NzAsNyBAQCB2b2lkIHRlc3RCaXR3aXNl
Q2FzdE9uRG91YmxlSW5NZW1vcnkoZG91CiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWREb3VibGUgPSByb290LT5hcHBlbmROZXc8TWVt
b3J5VmFsdWU+KHByb2MsIExvYWQsIERvdWJsZSwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZh
bHVlKiBjYXN0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3Jp
Z2luKCksIGxvYWREb3VibGUpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIGNhc3QpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0KTsKIAogICAgIENIRUNLKGlzSWRlbnRp
Y2FsKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgJnZhbHVlKSwgYml0d2lzZV9jYXN0PGlu
dDY0X3Q+KHZhbHVlKSkpOwogfQpAQCAtNDQ3OSw3ICs0NDg3LDcgQEAgdm9pZCB0ZXN0Qml0d2lz
ZUNhc3RPbkRvdWJsZUluTWVtb3J5SW5kZQogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBiYXNlLCBzY2FsZWRPZmZzZXQpOwog
ICAgIE1lbW9yeVZhbHVlKiBsb2FkRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVl
Pihwcm9jLCBMb2FkLCBEb3VibGUsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogY2Fz
dCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBs
b2FkRG91YmxlKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBjYXN0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgY2FzdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21w
aWxlQW5kUnVuPGludDY0X3Q+KHByb2MsICZ2YWx1ZSwgMCksIGJpdHdpc2VfY2FzdDxpbnQ2NF90
Pih2YWx1ZSkpKTsKIH0KQEAgLTQ0OTAsNyArNDQ5OCw3IEBAIHZvaWQgdGVzdEludDY0QkFyZ1Rv
RG91YmxlQml0d2lzZUNhc3QoaW4KICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKIAotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJn
dW1lbnQpKTsKQEAgLTQ1MDQsNyArNDUxMiw3IEBAIHZvaWQgdGVzdEludDY0QkltbVRvRG91Ymxl
Qml0d2lzZUNhc3QoaW4KICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwog
ICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2Ms
IE9yaWdpbigpLCB2YWx1ZSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBw
cm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50KSk7CkBAIC00NTE5LDcgKzQ1Mjcs
NyBAQCB2b2lkIHRlc3RUd29CaXR3aXNlQ2FzdE9uSW50NjQoaW50NjRfdCB2CiAgICAgVmFsdWUq
IGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFZhbHVlKiBmaXJzdCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAg
ICAgVmFsdWUqIHNlY29uZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNh
c3QsIE9yaWdpbigpLCBmaXJzdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kKTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kKTsKIAogICAgIENIRUNLKGlz
SWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgdmFsdWUpLCB2YWx1ZSkpOwog
fQpAQCAtNDUzMSw3ICs0NTM5LDcgQEAgdm9pZCB0ZXN0Qml0d2lzZUNhc3RPbkludDY0SW5NZW1v
cnkoaW50NgogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9y
eVZhbHVlKiBsb2FkRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBM
b2FkLCBJbnQ2NCwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBjYXN0ID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGxvYWREb3VibGUp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIGNhc3QpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBjYXN0KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48
ZG91YmxlPihwcm9jLCAmdmFsdWUpLCBiaXR3aXNlX2Nhc3Q8ZG91YmxlPih2YWx1ZSkpKTsKIH0K
QEAgLTQ1NDgsNyArNDU1Niw3IEBAIHZvaWQgdGVzdEJpdHdpc2VDYXN0T25JbnQ2NEluTWVtb3J5
SW5kZXgKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
QWRkLCBPcmlnaW4oKSwgYmFzZSwgc2NhbGVkT2Zmc2V0KTsKICAgICBNZW1vcnlWYWx1ZSogbG9h
ZERvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50NjQs
IE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogY2FzdCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBsb2FkRG91YmxlKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0KTsK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
Y2FzdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJv
YywgJnZhbHVlLCAwKSwgYml0d2lzZV9jYXN0PGRvdWJsZT4odmFsdWUpKSk7CiB9CkBAIC00NTU5
LDcgKzQ1NjcsNyBAQCB2b2lkIHRlc3RGbG9hdEltbVRvSW50MzJCaXR3aXNlQ2FzdChmbG9hCiAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1l
bnQgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFs
dWUpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0d2lzZUNh
c3QsIE9yaWdpbigpLCBhcmd1bWVudCkpOwpAQCAtNDU3NCw3ICs0NTgyLDcgQEAgdm9pZCB0ZXN0
Qml0d2lzZUNhc3RPbkZsb2F0SW5NZW1vcnkoZmxvYQogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkRmxvYXQgPSByb290LT5hcHBlbmRO
ZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEZsb2F0LCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAg
ICAgVmFsdWUqIGNhc3QgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0
LCBPcmlnaW4oKSwgbG9hZEZsb2F0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FzdCk7CiAKICAgICBDSEVDSyhpc0lk
ZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsICZ2YWx1ZSksIGJpdHdpc2VfY2Fz
dDxpbnQzMl90Pih2YWx1ZSkpKTsKIH0KQEAgLTQ1ODUsNyArNDU5Myw3IEBAIHZvaWQgdGVzdElu
dDMyQkFyZ1RvRmxvYXRCaXR3aXNlQ2FzdChpbnQKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKIAot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdHdpc2VDYXN0LCBPcmln
aW4oKSwgYXJndW1lbnQpKTsKQEAgLTQ1OTksNyArNDYwNyw3IEBAIHZvaWQgdGVzdEludDMyQklt
bVRvRmxvYXRCaXR3aXNlQ2FzdChpbnQKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFs
dWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50KSk7CkBAIC00NjE0
LDcgKzQ2MjIsNyBAQCB2b2lkIHRlc3RUd29CaXR3aXNlQ2FzdE9uSW50MzIoaW50MzJfdCB2CiAg
ICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFZhbHVlKiBmaXJzdCA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1
bWVudCk7CiAgICAgVmFsdWUqIHNlY29uZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
Qml0d2lzZUNhc3QsIE9yaWdpbigpLCBmaXJzdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kKTsKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kKTsKIAogICAg
IENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgdmFsdWUpLCB2
YWx1ZSkpOwogfQpAQCAtNDYyNiw3ICs0NjM0LDcgQEAgdm9pZCB0ZXN0Qml0d2lzZUNhc3RPbklu
dDMySW5NZW1vcnkoaW50MwogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwog
ICAgIE1lbW9yeVZhbHVlKiBsb2FkRmxvYXQgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+
KHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIGNhc3Qg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgbG9h
ZEZsb2F0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBjYXN0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgY2FzdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxl
QW5kUnVuPGZsb2F0Pihwcm9jLCAmdmFsdWUpLCBiaXR3aXNlX2Nhc3Q8ZmxvYXQ+KHZhbHVlKSkp
OwogfQpAQCAtNDYzNyw3ICs0NjQ1LDcgQEAgdm9pZCB0ZXN0Q29udmVydERvdWJsZVRvRmxvYXRB
cmcoZG91YmxlIAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAg
VmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiBhc0Zsb2F0ID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgYXJn
dW1lbnQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIGFzRmxvYXQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBhc0Zsb2F0KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNv
bXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsIHZhbHVlKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVl
KSkpOwogfQpAQCAtNDY0OCw3ICs0NjU2LDcgQEAgdm9pZCB0ZXN0Q29udmVydERvdWJsZVRvRmxv
YXRJbW0oZG91YmxlIAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAg
ICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCB2YWx1ZSk7CiAgICAgVmFsdWUqIGFzRmxvYXQgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBhcmd1bWVudCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNG
bG9hdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIGFzRmxvYXQpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxm
bG9hdD4ocHJvYyksIHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZSkpKTsKIH0KQEAgLTQ2NjAsNyAr
NDY2OCw3IEBAIHZvaWQgdGVzdENvbnZlcnREb3VibGVUb0Zsb2F0TWVtKGRvdWJsZSAKICAgICBW
YWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBNZW1vcnlWYWx1ZSogbG9hZGVk
RG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBEb3VibGUs
IE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogYXNGbG9hdCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIGxvYWRlZERvdWJsZSk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
YXNGbG9hdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIGFzRmxvYXQpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1
bjxmbG9hdD4ocHJvYywgJnZhbHVlKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlKSkpOwogfQpA
QCAtNDY3Myw3ICs0NjgxLDcgQEAgdm9pZCB0ZXN0Q29udmVydEZsb2F0VG9Eb3VibGVBcmcoZmxv
YXQgdgogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiBmbG9hdFZhbHVlID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3Vt
ZW50MzIpOwogICAgIFZhbHVlKiBhc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGZsb2F0VmFsdWUpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFzRG91YmxlKTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNE
b3VibGUpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHBy
b2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90Pih2YWx1ZSkpLCBzdGF0aWNfY2FzdDxkb3VibGU+KHZh
bHVlKSkpOwogfQpAQCAtNDY4NCw3ICs0NjkyLDcgQEAgdm9pZCB0ZXN0Q29udmVydEZsb2F0VG9E
b3VibGVJbW0oZmxvYXQgdgogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIHZhbHVlKTsKICAgICBWYWx1ZSogYXNEb3VibGUgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBhcmd1bWVudCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
YXNEb3VibGUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBhc0RvdWJsZSk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5k
UnVuPGRvdWJsZT4ocHJvYyksIHN0YXRpY19jYXN0PGRvdWJsZT4odmFsdWUpKSk7CiB9CkBAIC00
Njk2LDcgKzQ3MDQsNyBAQCB2b2lkIHRlc3RDb252ZXJ0RmxvYXRUb0RvdWJsZU1lbShmbG9hdCB2
CiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUq
IGxvYWRlZEZsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBG
bG9hdCwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBhc0RvdWJsZSA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGxvYWRlZEZsb2F0
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBhc0RvdWJsZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIGFzRG91YmxlKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBp
bGVBbmRSdW48ZG91YmxlPihwcm9jLCAmdmFsdWUpLCBzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVl
KSkpOwogfQpAQCAtNDcwOSw3ICs0NzE3LDcgQEAgdm9pZCB0ZXN0Q29udmVydERvdWJsZVRvRmxv
YXRUb0RvdWJsZVRvRgogICAgIFZhbHVlKiBhc0Zsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZhbHVlKiBh
c0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3Jp
Z2luKCksIGFzRmxvYXQpOwogICAgIFZhbHVlKiBhc0Zsb2F0QWdhaW4gPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBhc0RvdWJsZSk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNG
bG9hdEFnYWluKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgYXNGbG9hdEFnYWluKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBp
bGVBbmRSdW48ZmxvYXQ+KHByb2MsIHZhbHVlKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlKSkp
OwogfQpAQCAtNDcyNSw3ICs0NzMzLDcgQEAgdm9pZCB0ZXN0TG9hZEZsb2F0Q29udmVydERvdWJs
ZUNvbnZlcnRGbAogICAgIFZhbHVlKiBhc0Zsb2F0QWdhaW4gPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBhc0RvdWJsZSk7CiAgICAgcm9vdC0+
YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIGFzRmxvYXRBZ2Fp
biwgZHN0KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7
CiAKICAgICBmbG9hdCBpbnB1dCA9IHZhbHVlOwogICAgIGZsb2F0IG91dHB1dCA9IDAuOwpAQCAt
NDc0MCw3ICs0NzQ4LDcgQEAgdm9pZCB0ZXN0RnJvdW5kQXJnKGRvdWJsZSB2YWx1ZSkKICAgICBW
YWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIGFzRmxvYXQgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBhcmd1
bWVudCk7CiAgICAgVmFsdWUqIGFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgYXNGbG9hdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNEb3VibGUpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0RvdWJs
ZSk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywg
dmFsdWUpLCBzdGF0aWNfY2FzdDxkb3VibGU+KHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZSkpKSk7
CiB9CkBAIC00NzUzLDcgKzQ3NjEsNyBAQCB2b2lkIHRlc3RGcm91bmRNZW0oZG91YmxlIHZhbHVl
KQogICAgIE1lbW9yeVZhbHVlKiBsb2FkZWREb3VibGUgPSByb290LT5hcHBlbmROZXc8TWVtb3J5
VmFsdWU+KHByb2MsIExvYWQsIERvdWJsZSwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVl
KiBhc0Zsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBP
cmlnaW4oKSwgbG9hZGVkRG91YmxlKTsKICAgICBWYWx1ZSogYXNEb3VibGUgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBhc0Zsb2F0KTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBh
c0RvdWJsZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIGFzRG91YmxlKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRS
dW48ZG91YmxlPihwcm9jLCAmdmFsdWUpLCBzdGF0aWNfY2FzdDxkb3VibGU+KHN0YXRpY19jYXN0
PGZsb2F0Pih2YWx1ZSkpKSk7CiB9CkBAIC00NzY0LDcgKzQ3NzIsNyBAQCB2b2lkIHRlc3RJVG9E
NjRBcmcoKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFs
dWUqIHNyYyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBWYWx1ZSogc3JjQXNEb3VibGUgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBzcmMpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRG91
YmxlKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgc3JjQXNEb3VibGUpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAg
ICBmb3IgKGF1dG8gdGVzdFZhbHVlIDogaW50NjRPcGVyYW5kcygpKQpAQCAtNDc3Nyw3ICs0Nzg1
LDcgQEAgdm9pZCB0ZXN0SVRvRjY0QXJnKCkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwogICAgIFZhbHVlKiBzcmMgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUq
IHNyY0FzRmxvYXQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0YsIE9yaWdpbigp
LCBzcmMpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHNyY0FzRmxvYXQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0KTsKIAogICAgIGF1dG8gY29kZSA9IGNv
bXBpbGUocHJvYyk7CiAgICAgZm9yIChhdXRvIHRlc3RWYWx1ZSA6IGludDY0T3BlcmFuZHMoKSkK
QEAgLTQ3OTEsNyArNDc5OSw3IEBAIHZvaWQgdGVzdElUb0QzMkFyZygpCiAgICAgVmFsdWUqIHNy
YyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiBzcmNBc0RvdWJsZSA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIHNyYyk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNEb3VibGUpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBz
cmNBc0RvdWJsZSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIGZvciAo
YXV0byB0ZXN0VmFsdWUgOiBpbnQzMk9wZXJhbmRzKCkpCkBAIC00ODA1LDcgKzQ4MTMsNyBAQCB2
b2lkIHRlc3RJVG9GMzJBcmcoKQogICAgIFZhbHVlKiBzcmMgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAg
ICBWYWx1ZSogc3JjQXNGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRiwg
T3JpZ2luKCksIHNyYyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXQpOwogCiAgICAgYXV0byBj
b2RlID0gY29tcGlsZShwcm9jKTsKICAgICBmb3IgKGF1dG8gdGVzdFZhbHVlIDogaW50MzJPcGVy
YW5kcygpKQpAQCAtNDgxOSw3ICs0ODI3LDcgQEAgdm9pZCB0ZXN0SVRvRDY0TWVtKCkKICAgICBW
YWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBNZW1vcnlWYWx1ZSogbG9hZGVk
U3JjID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQ2NCwgT3Jp
Z2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBzcmNBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGxvYWRlZFNyYyk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNEb3VibGUp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBzcmNBc0RvdWJsZSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIGlu
dDY0X3QgaW5NZW1vcnlWYWx1ZTsKQEAgLTQ4MzcsNyArNDg0NSw3IEBAIHZvaWQgdGVzdElUb0Y2
NE1lbSgpCiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVtb3J5
VmFsdWUqIGxvYWRlZFNyYyA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9h
ZCwgSW50NjQsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogc3JjQXNGbG9hdCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRiwgT3JpZ2luKCksIGxvYWRlZFNyYyk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
c3JjQXNGbG9hdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHNyY0FzRmxvYXQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9j
KTsKICAgICBpbnQ2NF90IGluTWVtb3J5VmFsdWU7CkBAIC00ODU1LDcgKzQ4NjMsNyBAQCB2b2lk
IHRlc3RJVG9EMzJNZW0oKQogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwog
ICAgIE1lbW9yeVZhbHVlKiBsb2FkZWRTcmMgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+
KHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIHNyY0Fz
RG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgbG9h
ZGVkU3JjKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBzcmNBc0RvdWJsZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRG91YmxlKTsKIAogICAgIGF1dG8gY29kZSA9
IGNvbXBpbGUocHJvYyk7CiAgICAgaW50MzJfdCBpbk1lbW9yeVZhbHVlOwpAQCAtNDg3Myw3ICs0
ODgxLDcgQEAgdm9pZCB0ZXN0SVRvRjMyTWVtKCkKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKTsKICAgICBNZW1vcnlWYWx1ZSogbG9hZGVkU3JjID0gcm9vdC0+YXBwZW5kTmV3
PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAg
IFZhbHVlKiBzcmNBc0Zsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9GLCBP
cmlnaW4oKSwgbG9hZGVkU3JjKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0KTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdCk7CiAKICAgICBh
dXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIGludDMyX3QgaW5NZW1vcnlWYWx1ZTsKQEAg
LTQ4OTAsNyArNDg5OCw3IEBAIHZvaWQgdGVzdElUb0Q2NEltbShpbnQ2NF90IHZhbHVlKQogICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHNyYyA9IHJv
b3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSk7CiAgICAg
VmFsdWUqIHNyY0FzRmxvYXRpbmdQb2ludCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
SVRvRCwgT3JpZ2luKCksIHNyYyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdGluZ1BvaW50KTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdGlu
Z1BvaW50KTsKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJv
YyksIHN0YXRpY19jYXN0PGRvdWJsZT4odmFsdWUpKSk7CiB9CiAKQEAgLTQ5MDAsNyArNDkwOCw3
IEBAIHZvaWQgdGVzdElUb0Y2NEltbShpbnQ2NF90IHZhbHVlKQogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHNyYyA9IHJvb3QtPmFwcGVuZE5ldzxD
b25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSk7CiAgICAgVmFsdWUqIHNyY0FzRmxv
YXRpbmdQb2ludCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRiwgT3JpZ2luKCks
IHNyYyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgc3JjQXNGbG9hdGluZ1BvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdGluZ1BvaW50KTsKICAgICBD
SEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jKSwgc3RhdGljX2Nhc3Q8
ZmxvYXQ+KHZhbHVlKSkpOwogfQogCkBAIC00OTEwLDcgKzQ5MTgsNyBAQCB2b2lkIHRlc3RJVG9E
MzJJbW0oaW50MzJfdCB2YWx1ZSkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwogICAgIFZhbHVlKiBzcmMgPSByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgdmFsdWUpOwogICAgIFZhbHVlKiBzcmNBc0Zsb2F0aW5nUG9pbnQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBzcmMpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxv
YXRpbmdQb2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHNyY0FzRmxvYXRpbmdQb2ludCk7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwo
Y29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MpLCBzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVlKSkp
OwogfQogCkBAIC00OTIwLDcgKzQ5MjgsNyBAQCB2b2lkIHRlc3RJVG9GMzJJbW0oaW50MzJfdCB2
YWx1ZSkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVl
KiBzcmMgPSByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFs
dWUpOwogICAgIFZhbHVlKiBzcmNBc0Zsb2F0aW5nUG9pbnQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIElUb0YsIE9yaWdpbigpLCBzcmMpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXRpbmdQb2ludCk7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNy
Y0FzRmxvYXRpbmdQb2ludCk7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxm
bG9hdD4ocHJvYyksIHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZSkpKTsKIH0KIApAQCAtNDkzMSw3
ICs0OTM5LDcgQEAgdm9pZCB0ZXN0SVRvRFJlZHVjZWRUb0lUb0Y2NEFyZygpCiAgICAgVmFsdWUq
IHNyYyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
R1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBWYWx1ZSogc3JjQXNEb3VibGUgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBzcmMpOwogICAgIFZhbHVlKiBm
bG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwg
T3JpZ2luKCksIHNyY0FzRG91YmxlKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKIAog
ICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgZm9yIChhdXRvIHRlc3RWYWx1ZSA6
IGludDY0T3BlcmFuZHMoKSkKQEAgLTQ5NDYsNyArNDk1NCw3IEBAIHZvaWQgdGVzdElUb0RSZWR1
Y2VkVG9JVG9GMzJBcmcoKQogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiBz
cmNBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCks
IHNyYyk7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgc3JjQXNEb3VibGUpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGZsb2F0UmVzdWx0
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgZmxvYXRSZXN1bHQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBm
b3IgKGF1dG8gdGVzdFZhbHVlIDogaW50MzJPcGVyYW5kcygpKQpAQCAtNDk2NCw3ICs0OTcyLDcg
QEAgdm9pZCB0ZXN0U3RvcmUzMihpbnQgdmFsdWUpCiAgICAgICAgICAgICBwcm9jLCBUcnVuYywg
T3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZzbG90KSk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29u
c3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRS
dW48aW50Pihwcm9jLCB2YWx1ZSkpOwpAQCAtNDk4MCw3ICs0OTg4LDcgQEAgdm9pZCB0ZXN0U3Rv
cmVDb25zdGFudChpbnQgdmFsdWUpCiAgICAgICAgIHByb2MsIFN0b3JlLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVl
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCAmc2xvdCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAg
IENIRUNLKCFjb21waWxlQW5kUnVuPGludD4ocHJvYykpOwpAQCAtNTAwMCw3ICs1MDA4LDcgQEAg
dm9pZCB0ZXN0U3RvcmVDb25zdGFudFB0cihpbnRwdHJfdCB2YWx1ZQogICAgICAgICBwcm9jLCBT
dG9yZSwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgdmFsdWUpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksICZzbG90KSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgMCkpOwogCiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50Pihwcm9jKSk7CkBA
IC01MDE4LDcgKzUwMjYsNyBAQCB2b2lkIHRlc3RTdG9yZThBcmcoKQogICAgICAgICBWYWx1ZSog
YWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKIAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVt
b3J5VmFsdWU+KHByb2MsIFN0b3JlOCwgT3JpZ2luKCksIHZhbHVlLCBhZGRyZXNzKTsKLSAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
dmFsdWUpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgdmFsdWUpOwogCiAgICAgICAgIGludDhfdCBzdG9yYWdlID0gMDsKICAgICAg
ICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCA0MiwgJnN0b3JhZ2UpID09IDQy
KTsKQEAgLTUwMzksNyArNTA0Nyw3IEBAIHZvaWQgdGVzdFN0b3JlOEFyZygpCiAgICAgICAgIFZh
bHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigp
LCBiYXNlRGlzcGxhY2VtZW50LCBvZmZzZXQpOwogCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxN
ZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmU4LCBPcmlnaW4oKSwgdmFsdWUsIGFkZHJlc3MpOwotICAg
ICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCB2YWx1ZSk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCB2YWx1ZSk7CiAKICAgICAgICAgaW50OF90IHN0b3JhZ2UgPSAwOwogICAg
ICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIDQyLCAmc3RvcmFnZSwgMSkg
PT0gNDIpOwpAQCAtNTA1Nyw3ICs1MDY1LDcgQEAgdm9pZCB0ZXN0U3RvcmU4SW1tKCkKICAgICAg
ICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZTgsIE9yaWdpbigpLCB2YWx1ZSwgYWRkcmVz
cyk7Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHZhbHVlKTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKIAogICAgICAgICBpbnQ4X3Qgc3RvcmFnZSA9
IDA7CiAgICAgICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgJnN0b3JhZ2Up
ID09IDQyKTsKQEAgLTUwNzcsNyArNTA4NSw3IEBAIHZvaWQgdGVzdFN0b3JlOEltbSgpCiAgICAg
ICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9y
aWdpbigpLCBiYXNlRGlzcGxhY2VtZW50LCBvZmZzZXQpOwogCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmU4LCBPcmlnaW4oKSwgdmFsdWUsIGFkZHJlc3Mp
OwotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCB2YWx1ZSk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CiAKICAgICAgICAgaW50OF90IHN0b3JhZ2UgPSAw
OwogICAgICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsICZzdG9yYWdlLCAx
KSA9PSA0Mik7CkBAIC01MTI5LDcgKzUxMzcsNyBAQCB2b2lkIHRlc3RTdG9yZVBhcnRpYWw4Qml0
UmVnaXN0ZXJPblg4NigpCiAgICAgLy8gaWYgd2UgdXNlIFg4NiBwYXJ0aWFsIHJlZ2lzdGVycy4K
ICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlOCwgT3JpZ2luKCks
IHBhdGNocG9pbnQsIHdoZXJlVG9TdG9yZSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXR1cm5WYWx1ZSk7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJldHVyblZhbHVl
KTsKIAogICAgIGludDhfdCBzdG9yYWdlID0gMHhmZjsKICAgICBDSEVDSyhjb21waWxlQW5kUnVu
PGludDY0X3Q+KHByb2MsIDB4MTIzNDU2NzhhYmNkZWYxMiwgJnN0b3JhZ2UpID09IDB4MTIzNDU2
NzhhYmNkZWYxMik7CkBAIC01MTQ3LDcgKzUxNTUsNyBAQCB2b2lkIHRlc3RTdG9yZTE2QXJnKCkK
ICAgICAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CiAKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZTE2LCBPcmlnaW4oKSwgdmFsdWUs
IGFkZHJlc3MpOwotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CiAKICAgICAgICAgaW50MTZfdCBz
dG9yYWdlID0gLTE7CiAgICAgICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywg
NDIsICZzdG9yYWdlKSA9PSA0Mik7CkBAIC01MTY4LDcgKzUxNzYsNyBAQCB2b2lkIHRlc3RTdG9y
ZTE2QXJnKCkKICAgICAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEFkZCwgT3JpZ2luKCksIGJhc2VEaXNwbGFjZW1lbnQsIG9mZnNldCk7CiAKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZTE2LCBPcmlnaW4oKSwg
dmFsdWUsIGFkZHJlc3MpOwotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CiAKICAgICAgICAgaW50
MTZfdCBzdG9yYWdlID0gLTE7CiAgICAgICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4o
cHJvYywgNDIsICZzdG9yYWdlLCAxKSA9PSA0Mik7CkBAIC01MTg2LDcgKzUxOTQsNyBAQCB2b2lk
IHRlc3RTdG9yZTE2SW1tKCkKICAgICAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BS
MCk7CiAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZTE2
LCBPcmlnaW4oKSwgdmFsdWUsIGFkZHJlc3MpOwotICAgICAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CisgICAgICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CiAK
ICAgICAgICAgaW50MTZfdCBzdG9yYWdlID0gLTE7CiAgICAgICAgIENIRUNLKGNvbXBpbGVBbmRS
dW48aW50NjRfdD4ocHJvYywgJnN0b3JhZ2UpID09IDQyKTsKQEAgLTUyMDYsNyArNTIxNCw3IEBA
IHZvaWQgdGVzdFN0b3JlMTZJbW0oKQogICAgICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYmFzZURpc3BsYWNlbWVudCwgb2Zm
c2V0KTsKIAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3Jl
MTYsIE9yaWdpbigpLCB2YWx1ZSwgYWRkcmVzcyk7Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKKyAgICAgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsK
IAogICAgICAgICBpbnQxNl90IHN0b3JhZ2UgPSAtMTsKICAgICAgICAgQ0hFQ0soY29tcGlsZUFu
ZFJ1bjxpbnQ2NF90Pihwcm9jLCAmc3RvcmFnZSwgMSkgPT0gNDIpOwpAQCAtNTIxOCw3ICs1MjI2
LDcgQEAgdm9pZCB0ZXN0VHJ1bmMoaW50NjRfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKQEAgLTUyMzEsNyAr
NTIzOSw3IEBAIHZvaWQgdGVzdEFkZDEoaW50IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9j
OwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKQEAgLTUyNDcsNyArNTI1
NSw3IEBAIHZvaWQgdGVzdEFkZDFQdHIoaW50cHRyX3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJl
IHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAtNTI2MSw3
ICs1MjY5LDcgQEAgdm9pZCB0ZXN0TmVnMzIoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1
cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFN1YiwgT3JpZ2luKCksCkBAIC01Mjc3
LDcgKzUyODUsNyBAQCB2b2lkIHRlc3ROZWdQdHIoaW50cHRyX3QgdmFsdWUpCiB7CiAgICAgUHJv
Y2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTdWIsIE9yaWdpbigpLApAQCAt
NTMwMiw3ICs1MzEwLDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkMzIoaW50IGFtb3VudCkKICAg
ICAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApKSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNTMyMyw3ICs1MzMxLDcgQEAgdm9pZCB0
ZXN0U3RvcmVBZGRMb2FkSW1tMzIoaW50IGFtb3VudCkKICAgICAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50MzIsIE9yaWdpbigpLCBzbG90UHRyKSwK
ICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBhbW91bnQpKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01MzQ2LDcgKzUzNTQsNyBAQCB2b2lkIHRlc3RT
dG9yZUFkZExvYWQ4KGludCBhbW91bnQsIEIzOjpPCiAgICAgICAgICAgICAgICAgcHJvYywgVHJ1
bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSkpLAogICAgICAg
ICBzbG90UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAw
KSk7CiAKQEAgLTUzNjcsNyArNTM3NSw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9hZEltbTgoaW50
IGFtb3VudCwgQjMKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJv
YywgbG9hZE9wY29kZSwgT3JpZ2luKCksIHNsb3RQdHIpLAogICAgICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFtb3VudCkpLAogICAgICAgICBz
bG90UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7
CiAKQEAgLTUzOTAsNyArNTM5OCw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9hZDE2KGludCBhbW91
bnQsIEIzOjoKICAgICAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAg
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNTQxMSw3ICs1NDE5
LDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkSW1tMTYoaW50IGFtb3VudCwgQgogICAgICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBsb2FkT3Bjb2RlLCBPcmlnaW4o
KSwgc2xvdFB0ciksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgYW1vdW50KSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNTQzMiw3ICs1NDQwLDcg
QEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkNjQoaW50IGFtb3VudCkKICAgICAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50NjQsIE9yaWdpbigpLCBzbG90
UHRyKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIHNsb3RQdHIpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNTQ1
Myw3ICs1NDYxLDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkSW1tNjQoaW50NjRfdCBhbW91bgog
ICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQ2
NCwgT3JpZ2luKCksIHNsb3RQdHIpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0
NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFtb3VudCkpLAogICAgICAgICBzbG90UHRyKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTU0ODUs
NyArNTQ5Myw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9hZDMySW5kZXgoaW50IGFtb3VudCkKICAg
ICAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApKSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNTUxNSw3ICs1NTIzLDcgQEAgdm9pZCB0
ZXN0U3RvcmVBZGRMb2FkSW1tMzJJbmRleChpbnQgYW1vdQogICAgICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2luKCksIHNsb3RQdHIp
LAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIGFtb3VudCkpLAogICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTU1NDcsNyArNTU1NSw3IEBAIHZvaWQgdGVz
dFN0b3JlQWRkTG9hZDhJbmRleChpbnQgYW1vdW50LCAKICAgICAgICAgICAgICAgICBwcm9jLCBU
cnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50
UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSksCiAgICAg
ICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IDApKTsKIApAQCAtNTU3Nyw3ICs1NTg1LDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkSW1tOElu
ZGV4KGludCBhbW91bgogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihw
cm9jLCBsb2FkT3Bjb2RlLCBPcmlnaW4oKSwgc2xvdFB0ciksCiAgICAgICAgICAgICByb290LT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYW1vdW50KSksCiAgICAgICAg
IHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDAp
KTsKIApAQCAtNTYwOSw3ICs1NjE3LDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkMTZJbmRleChp
bnQgYW1vdW50LAogICAgICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAg
ICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01NjM5LDcgKzU2
NDcsNyBAQCB2b2lkIHRlc3RTdG9yZUFkZExvYWRJbW0xNkluZGV4KGludCBhbW91CiAgICAgICAg
ICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIGxvYWRPcGNvZGUsIE9yaWdp
bigpLCBzbG90UHRyKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBhbW91bnQpKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01NjY5LDcgKzU2Nzcs
NyBAQCB2b2lkIHRlc3RTdG9yZUFkZExvYWQ2NEluZGV4KGludCBhbW91bnQpCiAgICAgICAgICAg
ICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDY0LCBPcmlnaW4o
KSwgc2xvdFB0ciksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICBzbG90
UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAK
QEAgLTU2OTksNyArNTcwNyw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9hZEltbTY0SW5kZXgoaW50
NjRfdCAKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9h
ZCwgSW50NjQsIE9yaWdpbigpLCBzbG90UHRyKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhbW91bnQpKSwKICAgICAgICAgc2xvdFB0
cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBA
IC01NzIzLDcgKzU3MzEsNyBAQCB2b2lkIHRlc3RTdG9yZVN1YkxvYWQoaW50IGFtb3VudCkKICAg
ICAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApKSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNTc1MCw3ICs1NzU4LDcgQEAgdm9pZCB0
ZXN0U3RvcmVBZGRMb2FkSW50ZXJmZXJlbmNlKGludCBhbQogICAgICAgICAgICAgcHJvYywgQWRk
LCBPcmlnaW4oKSwKICAgICAgICAgICAgIGxvYWQsIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBhbW91bnQpKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01Nzc0LDcgKzU3
ODIsNyBAQCB2b2lkIHRlc3RTdG9yZUFkZEFuZExvYWQoaW50IGFtb3VudCwgaW50CiAgICAgICAg
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFt
b3VudCkpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIG1hc2spKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01Nzk5LDcgKzU4MDcsNyBAQCB2b2lk
IHRlc3RTdG9yZU5lZ0xvYWQzMihpbnQzMl90IHZhbHVlKQogICAgICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2luKCksIHNsb3RQdHIp
KSwKICAgICAgICAgc2xvdFB0cik7CiAgICAgCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgMCkpOwogCiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYykpOwpA
QCAtNTgyMyw3ICs1ODMxLDcgQEAgdm9pZCB0ZXN0U3RvcmVOZWdMb2FkUHRyKGludHB0cl90IHZh
bHVlKQogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2Fk
LCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwgc2xvdFB0cikpLAogICAgICAgICBzbG90UHRyKTsK
ICAgICAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3Qt
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBDSEVD
SyghY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jKSk7CkBAIC01ODM0LDcgKzU4NDIsNyBAQCB2
b2lkIHRlc3RBZGQxVW5jb21tdXRlZChpbnQgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAtNTg1Miw3ICs1ODYw
LDcgQEAgdm9pZCB0ZXN0TG9hZE9mZnNldCgpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKICAgICBpbnQgYXJyYXlbXSA9IHsgMSwgMiB9OwogICAgIENvbnN0UHRyVmFs
dWUqIGFycmF5UHRyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBhcnJheSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRk
LCBPcmlnaW4oKSwKQEAgLTU4NjgsNyArNTg3Niw3IEBAIHZvaWQgdGVzdExvYWRPZmZzZXROb3RD
b25zdGFudCgpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBp
bnQgYXJyYXlbXSA9IHsgMSwgMiB9OwogICAgIFZhbHVlKiBhcnJheVB0ciA9IHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdp
bigpLApAQCAtNTg4NCw3ICs1ODkyLDcgQEAgdm9pZCB0ZXN0TG9hZE9mZnNldFVzaW5nQWRkKCkK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIGludCBhcnJheVtd
ID0geyAxLCAyIH07CiAgICAgQ29uc3RQdHJWYWx1ZSogYXJyYXlQdHIgPSByb290LT5hcHBlbmRO
ZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFycmF5KTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAtNTkyNSw3ICs1OTMz
LDcgQEAgdm9pZCB0ZXN0TG9hZE9mZnNldFVzaW5nQWRkSW50ZXJmZXJlbmNlKAogICAgICAgICBw
cm9jLCBTdG9yZSwgT3JpZ2luKCksIHRoZU51bWJlck9mVGhlQmVhc3QsIG90aGVyQXJyYXlQdHIs
IDApOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgIHByb2MsIFN0
b3JlLCBPcmlnaW4oKSwgdGhlTnVtYmVyT2ZUaGVCZWFzdCwgb3RoZXJBcnJheVB0ciwgc2l6ZW9m
KGludCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEFkZCwgT3Jp
Z2luKCksIGxlZnQsIHJpZ2h0KSk7CkBAIC01OTQxLDcgKzU5NDksNyBAQCB2b2lkIHRlc3RMb2Fk
T2Zmc2V0VXNpbmdBZGROb3RDb25zdGFudCgpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKICAgICBpbnQgYXJyYXlbXSA9IHsgMSwgMiB9OwogICAgIFZhbHVlKiBhcnJh
eVB0ciA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
R1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAtNTk3Nyw3ICs1OTg1LDcgQEAgdm9pZCB0ZXN0TG9h
ZEFkZHJTaGlmdCh1bnNpZ25lZCBzaGlmdCkKIAogICAgICpzbG90ID0gODY3NTMwOTsKICAgICAK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkLCBJbnQz
MiwgT3JpZ2luKCksCkBAIC01OTkzLDcgKzYwMDEsNyBAQCB2b2lkIHRlc3RGcmFtZVBvaW50ZXIo
KQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZyYW1lUG9pbnRlciwgT3JpZ2lu
KCkpKTsKIApAQCAtNjAxNiw3ICs2MDI0LDcgQEAgdm9pZCB0ZXN0T3ZlcnJpZGVGcmFtZVBvaW50
ZXIoKQogICAgICAgICBWYWx1ZSogZnAgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZy
YW1lUG9pbnRlciwgT3JpZ2luKCkpOwogICAgICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBmcCwgb2Zmc2V0KTsKIAotICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90
Pihwcm9jLCAxKSk7CiAgICAgfQogICAgIHsKQEAgLTYwMzIsNyArNjA0MCw3IEBAIHZvaWQgdGVz
dE92ZXJyaWRlRnJhbWVQb2ludGVyKCkKICAgICAgICAgVmFsdWUqIG9mZnNldEFyZyA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgb2Zmc2V0LCBhcmcpOwogICAg
ICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9y
aWdpbigpLCBvZmZzZXRBcmcsIG9mZnNldEZQKTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgICAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
KTsKICAgICAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAxLCAyKSk7CiAg
ICAgfQogfQpAQCAtNjA0MSw3ICs2MDQ5LDcgQEAgdm9pZCB0ZXN0U3RhY2tTbG90KCkKIHsKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFNsb3RCYXNlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBwcm9jLmFkZFN0
YWNrU2xvdCgxKSkpOwogCkBAIC02MDU0LDcgKzYwNjIsNyBAQCB2b2lkIHRlc3RMb2FkRnJvbUZy
YW1lUG9pbnRlcigpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwKQEAgLTYwODEsNyArNjA4
OSw3IEBAIHZvaWQgdGVzdFN0b3JlTG9hZFN0YWNrU2xvdChpbnQgdmFsdWUpCiAgICAgICAgICAg
ICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICBzdGFjayk7CiAgICAgCi0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwgc3RhY2spKTsKIApAQCAt
NjExNiw3ICs2MTI0LDcgQEAgdm9pZCB0ZXN0TG9hZChCMzo6T3Bjb2RlIG9wY29kZSwgSW5wdXRU
eQogICAgICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKICAgICAgICAgCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1l
bW9yeVZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBvcGNvZGUsIHR5cGUsIE9yaWdpbigp
LApAQCAtNjEzMCw3ICs2MTM4LDcgQEAgdm9pZCB0ZXN0TG9hZChCMzo6T3Bjb2RlIG9wY29kZSwg
SW5wdXRUeQogICAgICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKICAgICAgICAgCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBvcGNvZGUsIHR5cGUsIE9y
aWdpbigpLApAQCAtNjE0NCw3ICs2MTUyLDcgQEAgdm9pZCB0ZXN0TG9hZChCMzo6T3Bjb2RlIG9w
Y29kZSwgSW5wdXRUeQogICAgICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICAgICAgCi0gICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBvcGNvZGUsIHR5
cGUsIE9yaWdpbigpLApAQCAtNjE1OSw3ICs2MTY3LDcgQEAgdm9pZCB0ZXN0TG9hZChCMzo6T3Bj
b2RlIG9wY29kZSwgSW5wdXRUeQogICAgICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgICAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgb3Bjb2RlLCB0eXBl
LCBPcmlnaW4oKSwKQEAgLTYxNzksNyArNjE4Nyw3IEBAIHZvaWQgdGVzdExvYWQoQjM6Ok9wY29k
ZSBvcGNvZGUsIElucHV0VHkKICAgICAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBl
bmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIG9wY29kZSwgdHlwZSwg
T3JpZ2luKCksCkBAIC02MjE5LDcgKzYyMjcsNyBAQCB2b2lkIHRlc3RTdG9yZUZsb2F0KGRvdWJs
ZSBpbnB1dCkKICAgICAgICAgVmFsdWUqIGRlc3RpbmF0aW9uQWRkcmVzcyA9IHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIwKTsKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwg
T3JpZ2luKCksIGFyZ3VtZW50QXNGbG9hdCwgZGVzdGluYXRpb25BZGRyZXNzKTsKIAotICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
b290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgICAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9v
dC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgICAg
ICBmbG9hdCBvdXRwdXQgPSAwLjsKICAgICAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50NjRf
dD4ocHJvYywgaW5wdXQsICZvdXRwdXQpKTsKQEAgLTYyNDMsNyArNjI1MSw3IEBAIHZvaWQgdGVz
dFN0b3JlRmxvYXQoZG91YmxlIGlucHV0KQogCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1v
cnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCBhcmd1bWVudEFzRmxvYXQsIGRlc3RpbmF0
aW9uQWRkcmVzcyk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDApKTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCAwKSk7CiAKICAgICAgICAgZmxvYXQgb3V0cHV0ID0gMC47CiAgICAgICAgIENIRUNL
KCFjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIGlucHV0LCAmb3V0cHV0IC0gMSwgMSkpOwpA
QCAtNjI2Myw3ICs2MjcxLDcgQEAgdm9pZCB0ZXN0U3RvcmVEb3VibGVDb25zdGFudEFzRmxvYXQo
ZG91YgogCiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3Jp
Z2luKCksIHZhbHVlQXNGbG9hdCwgZGVzdGluYXRpb25BZGRyZXNzKTsKIAotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBmbG9hdCBvdXRwdXQgPSAw
LjsKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCBpbnB1dCwgJm91dHB1
dCkpOwpAQCAtNjI4OSw3ICs2Mjk3LDcgQEAgdm9pZCB0ZXN0U3BpbGxHUCgpCiAgICAgZm9yIChW
YWx1ZSogdmFsdWUgOiBzb3VyY2VzKQogICAgICAgICB0b3RhbCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgdG90YWwsIHZhbHVlKTsKIAotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHRvdGFsKTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdG90
YWwpOwogICAgIGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAxLCAyKTsKIH0KIApAQCAtNjMxMiw3
ICs2MzIwLDcgQEAgdm9pZCB0ZXN0U3BpbGxGUCgpCiAgICAgZm9yIChWYWx1ZSogdmFsdWUgOiBz
b3VyY2VzKQogICAgICAgICB0b3RhbCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRk
LCBPcmlnaW4oKSwgdG90YWwsIHZhbHVlKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHRvdGFsKTsKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdG90YWwpOwogICAgIGNvbXBp
bGVBbmRSdW48ZG91YmxlPihwcm9jLCAxLjEsIDIuNSk7CiB9CiAKQEAgLTYzMjgsNyArNjMzNiw3
IEBAIHZvaWQgdGVzdEludDMyVG9Eb3VibGVQYXJ0aWFsUmVnaXN0ZXJTdGEKICAgICBWYWx1ZSog
Y291bnRlciA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBVcHNpbG9uVmFsdWUqIG9yaWdpbmFsVG90
YWwgPSByb290LT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdG90YWwp
OwogICAgIFVwc2lsb25WYWx1ZSogb3JpZ2luYWxDb3VudGVyID0gcm9vdC0+YXBwZW5kTmV3PFVw
c2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGNvdW50ZXIpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sobG9v
cCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4o
KSwgRnJlcXVlbnRlZEJsb2NrKGxvb3ApKTsKIAogICAgIC8vIExvb3AuCiAgICAgVmFsdWUqIGxv
b3BDb3VudGVyID0gbG9vcC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBQaGksIEludDY0LCBPcmln
aW4oKSk7CkBAIC02MzQ1LDEzICs2MzUzLDEzIEBAIHZvaWQgdGVzdEludDMyVG9Eb3VibGVQYXJ0
aWFsUmVnaXN0ZXJTdGEKICAgICBWYWx1ZSogZGVjQ291bnRlciA9IGxvb3AtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgbG9vcENvdW50ZXIsIGxvb3AtPmFwcGVuZE5ldzxD
b25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAgICAgVXBzaWxvblZhbHVlKiBkZWND
b3VudGVyVXBzaWxvbiA9IGxvb3AtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBkZWNDb3VudGVyKTsKICAgICBkZWNDb3VudGVyVXBzaWxvbi0+c2V0UGhpKGxvb3BDb3Vu
dGVyKTsKLSAgICBsb29wLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBsb29wLT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAg
ICAgIGRlY0NvdW50ZXIsCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhsb29wKSwgRnJlcXVlbnRl
ZEJsb2NrKGRvbmUpKTsKIAogICAgIC8vIFRhaWwuCi0gICAgZG9uZS0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdXBkYXRlZFRvdGFsKTsKKyAgICBkb25l
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdXBkYXRlZFRv
dGFsKTsKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywg
MTAwMDAwKSwgNTAwMDA1MDAwMC4pKTsKIH0KIApAQCAtNjM3MSw3ICs2Mzc5LDcgQEAgdm9pZCB0
ZXN0SW50MzJUb0RvdWJsZVBhcnRpYWxSZWdpc3RlcldpdAogICAgIFZhbHVlKiBmb3JQYWRkaW5n
SW5wdXRBZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAmZm9yUGFkZGluZ0lucHV0KTsKICAgICB1aW50NjRfdCBmb3JQYWRkaW5nT3V0cHV0Owog
ICAgIFZhbHVlKiBmb3JQYWRkaW5nT3V0cHV0QWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxDb25z
dFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJmZvclBhZGRpbmdPdXRwdXQpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVk
QmxvY2sobG9vcCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1w
LCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3ApKTsKIAogICAgIC8vIExvb3AuCiAgICAg
VmFsdWUqIGxvb3BDb3VudGVyID0gbG9vcC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBQaGksIElu
dDY0LCBPcmlnaW4oKSk7CkBAIC02NDA1LDEzICs2NDEzLDEzIEBAIHZvaWQgdGVzdEludDMyVG9E
b3VibGVQYXJ0aWFsUmVnaXN0ZXJXaXQKICAgICBWYWx1ZSogZGVjQ291bnRlciA9IGxvb3AtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgbG9vcENvdW50ZXIsIGxvb3AtPmFw
cGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAgICAgVXBzaWxvblZh
bHVlKiBkZWNDb3VudGVyVXBzaWxvbiA9IGxvb3AtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBkZWNDb3VudGVyKTsKICAgICBkZWNDb3VudGVyVXBzaWxvbi0+c2V0UGhp
KGxvb3BDb3VudGVyKTsKLSAgICBsb29wLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBs
b29wLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2lu
KCksCiAgICAgICAgIGRlY0NvdW50ZXIsCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhsb29wKSwg
RnJlcXVlbnRlZEJsb2NrKGRvbmUpKTsKIAogICAgIC8vIFRhaWwuCi0gICAgZG9uZS0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdXBkYXRlZFRvdGFsKTsK
KyAgICBkb25lLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
dXBkYXRlZFRvdGFsKTsKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJs
ZT4ocHJvYywgMTAwMDAwKSwgNTAwMDA1MDAwMC4pKTsKIH0KIApAQCAtNjQyMiwxOCArNjQzMCwx
OCBAQCB2b2lkIHRlc3RCcmFuY2goKQogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5h
ZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwog
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigp
LAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2Nr
KHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2Ut
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKLSAgICBlbHNl
Q2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxz
ZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAg
LTY0NDksMTYgKzY0NTcsMTYgQEAgdm9pZCB0ZXN0QnJhbmNoUHRyKCkKICAgICBCYXNpY0Jsb2Nr
KiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9
IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApLAogICAgICAgICBGcmVxdWVudGVkQmxv
Y2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNl
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2Fz
ZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVs
c2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBl
bHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApA
QCAtNjQ3NSw3ICs2NDgzLDcgQEAgdm9pZCB0ZXN0RGlhbW9uZCgpCiAgICAgQmFzaWNCbG9jayog
ZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZG9uZSA9IHByb2Mu
YWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFRy
dW5jLCBPcmlnaW4oKSwKQEAgLTY0ODQsMTYgKzY0OTIsMTYgQEAgdm9pZCB0ZXN0RGlhbW9uZCgp
CiAKICAgICBVcHNpbG9uVmFsdWUqIHRoZW5SZXN1bHQgPSB0aGVuQ2FzZS0+YXBwZW5kTmV3PFVw
c2lsb25WYWx1ZT4oCiAgICAgICAgIHByb2MsIE9yaWdpbigpLCB0aGVuQ2FzZS0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKLSAgICB0aGVuQ2FzZS0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhk
b25lKSk7CisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBP
cmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRvbmUpKTsKIAogICAgIFVwc2lsb25WYWx1ZSogZWxz
ZVJlc3VsdCA9IGVsc2VDYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPigKICAgICAgICAgcHJv
YywgT3JpZ2luKCksIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgMCkpOwotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBK
dW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRvbmUpKTsKKyAgICBlbHNlQ2FzZS0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2so
ZG9uZSkpOwogCiAgICAgVmFsdWUqIHBoaSA9IGRvbmUtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
UGhpLCBJbnQzMiwgT3JpZ2luKCkpOwogICAgIHRoZW5SZXN1bHQtPnNldFBoaShwaGkpOwogICAg
IGVsc2VSZXN1bHQtPnNldFBoaShwaGkpOwotICAgIGRvbmUtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBoaSk7CisgICAgZG9uZS0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBoaSk7CiAKICAgICBhdXRvIGNvZGUg
PSBjb21waWxlKHByb2MpOwogICAgIENIRUNLKGludm9rZTxpbnQ+KCpjb2RlLCA0MikgPT0gMSk7
CkBAIC02NTA3LDcgKzY1MTUsNyBAQCB2b2lkIHRlc3RCcmFuY2hOb3RFcXVhbCgpCiAgICAgQmFz
aWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxz
ZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJy
YW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBOb3RFcXVhbCwgT3JpZ2luKCksCkBAIC02NTE3LDExICs2NTI1LDExIEBAIHZv
aWQgdGVzdEJyYW5jaE5vdEVxdWFsKCkKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0
aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNh
c2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VD
YXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC02
NTM3LDcgKzY1NDUsNyBAQCB2b2lkIHRlc3RCcmFuY2hOb3RFcXVhbENvbW11dGUoKQogICAgIEJh
c2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVs
c2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBC
cmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgcHJvYywgTm90RXF1YWwsIE9yaWdpbigpLApAQCAtNjU0NywxMSArNjU1NSwxMSBAQCB2
b2lkIHRlc3RCcmFuY2hOb3RFcXVhbENvbW11dGUoKQogICAgICAgICAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwKSkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVk
QmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNjU2Nyw3ICs2NTc1LDcgQEAgdm9p
ZCB0ZXN0QnJhbmNoTm90RXF1YWxOb3RFcXVhbCgpCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2Ug
PSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJs
b2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBOb3RFcXVh
bCwgT3JpZ2luKCksCkBAIC02NTgwLDExICs2NTg4LDExIEBAIHZvaWQgdGVzdEJyYW5jaE5vdEVx
dWFsTm90RXF1YWwoKQogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIDApKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwg
RnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTY2MDAsNyArNjYw
OCw3IEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsKCkKICAgICBCYXNpY0Jsb2NrKiB0aGVuQ2FzZSA9
IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxv
Y2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEVxdWFsLCBP
cmlnaW4oKSwKQEAgLTY2MTAsMTEgKzY2MTgsMTEgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWwoKQog
ICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IDApKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2Nr
KGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAwKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKQEAgLTY2MzAsNyArNjYzOCw3IEBAIHZvaWQgdGVz
dEJyYW5jaEVxdWFsRXF1YWwoKQogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRC
bG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgRXF1YWwsIE9yaWdpbigpLApA
QCAtNjY0MywxMSArNjY1MSwxMSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbEVxdWFsKCkKICAgICAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSks
CiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNl
Q2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRo
ZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC02NjYzLDcgKzY2NzEsNyBAQCB2b2lkIHRlc3RCcmFu
Y2hFcXVhbENvbW11dGUoKQogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9j
aygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgRXF1YWwsIE9yaWdpbigpLApAQCAt
NjY3MywxMSArNjY4MSwxMSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbENvbW11dGUoKQogICAgICAg
ICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhl
bkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAotICAgIGVsc2VDYXNl
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2Fz
ZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIApAQCAtNjY5
Myw3ICs2NzAxLDcgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxFcXVhbDEoKQogICAgIEJhc2ljQmxv
Y2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNl
ID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gs
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgRXF1YWwsIE9yaWdpbigpLApAQCAtNjcwNiwxMSArNjcxNCwxMSBAQCB2b2lkIHRlc3RC
cmFuY2hFcXVhbEVxdWFsMSgpCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNh
c2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAotICAgIGVsc2VDYXNlLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIApAQCAtNjcyOCw3
ICs2NzM2LDcgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJlZEFyZ3MoZG91YgogCiAg
ICAgVmFsdWUqIGFyZ3VtZW50QSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogYXJndW1l
bnRCID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBG
UFJJbmZvOjphcmd1bWVudEZQUjEpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNo
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIEVxdWFsT3JVbm9yZGVyZWQsIE9yaWdpbigpLApAQCAtNjczNiwxMSArNjc0NCwxMSBA
QCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVkQXJncyhkb3ViCiAgICAgICAgICAgICBh
cmd1bWVudEIpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVk
QmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMTMpKTsKIApAQCAtNjc2MCw3ICs2NzY4LDcgQEAg
dm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJlZEFyZ3MoZmxvYQogICAgIFZhbHVlKiBhcmd1
bWVudEIgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEZsb2F0LCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKTsKIAotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIEVxdWFsT3JVbm9yZGVyZWQsIE9yaWdpbigpLApAQCAtNjc2
OCwxMSArNjc3NiwxMSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVkQXJncyhmbG9h
CiAgICAgICAgICAgICBhcmd1bWVudEIpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNh
c2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7CiAKLSAgICBlbHNlQ2FzZS0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2Ut
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMTMpKTsKIApAQCAtNjc5
NywxNiArNjgwNSwxNiBAQCB2b2lkIHRlc3RCcmFuY2hOb3RFcXVhbEFuZE9yZGVyZWRBcmdzKGRv
CiAgICAgICAgIHByb2MsIEVxdWFsLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApLAogICAgICAgICBlcXVhbE9yVW5vcmRl
cmVkKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAg
ICAgIG5vdEVxdWFsQW5kT3JkZXJlZCwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNl
KSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwogCi0gICAgZWxzZUNhc2UtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTEzKSk7CiAKQEAgLTY4MzMs
MTYgKzY4NDEsMTYgQEAgdm9pZCB0ZXN0QnJhbmNoTm90RXF1YWxBbmRPcmRlcmVkQXJncyhmbAog
ICAgICAgICBwcm9jLCBFcXVhbCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSwKICAgICAgICAgZXF1YWxPclVub3JkZXJl
ZCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAg
ICBub3RFcXVhbEFuZE9yZGVyZWQsCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSks
IEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xMykpOwogCkBAIC02ODU5LDcg
KzY4NjcsNyBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVkRG91YmxlQXJnCiAKICAg
ICBWYWx1ZSogYXJndW1lbnRBID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiBhcmd1bWVu
dEIgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEVxdWFsT3JVbm9yZGVy
ZWQsIE9yaWdpbigpLApAQCAtNjg2NywxMSArNjg3NSwxMSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVh
bE9yVW5vcmRlcmVkRG91YmxlQXJnCiAgICAgICAgICAgICBhcmd1bWVudEIpLAogICAgICAgICBG
cmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAot
ICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQy
KSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNh
c2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAtMTMpKTsKIApAQCAtNjg5MCw3ICs2ODk4LDcgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxP
clVub3JkZXJlZEZsb2F0QXJnSQogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVl
KiBhcmd1bWVudEIgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmln
aW4oKSwgYik7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBFcXVh
bE9yVW5vcmRlcmVkLCBPcmlnaW4oKSwKQEAgLTY4OTgsMTEgKzY5MDYsMTEgQEAgdm9pZCB0ZXN0
QnJhbmNoRXF1YWxPclVub3JkZXJlZEZsb2F0QXJnSQogICAgICAgICAgICAgYXJndW1lbnRCKSwK
ICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VD
YXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhl
bkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCA0MikpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgLTEzKSk7CiAKQEAgLTY5MTksNyArNjkyNyw3IEBAIHZvaWQgdGVzdEJy
YW5jaEVxdWFsT3JVbm9yZGVyZWREb3VibGVJbW0KIAogICAgIFZhbHVlKiBhcmd1bWVudEEgPSBy
b290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAg
IFZhbHVlKiBhcmd1bWVudEIgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIGIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IEVxdWFsT3JVbm9yZGVyZWQsIE9yaWdpbigpLApAQCAtNjkyNywxMSArNjkzNSwxMSBAQCB2b2lk
IHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVkRG91YmxlSW1tCiAgICAgICAgICAgICBhcmd1bWVu
dEIpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2so
ZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIDQyKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCAtMTMpKTsKIApAQCAtNjk0OSw3ICs2OTU3LDcgQEAgdm9pZCB0
ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJlZEZsb2F0SW1tcwogICAgIFZhbHVlKiBhcmd1bWVudEEg
PSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAg
ICAgVmFsdWUqIGFyZ3VtZW50QiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBiKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIEVxdWFsT3JVbm9yZGVyZWQsIE9yaWdpbigpLApAQCAtNjk1NywxMSArNjk2NSwxMSBAQCB2
b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVkRmxvYXRJbW1zCiAgICAgICAgICAgICBhcmd1
bWVudEIpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxv
Y2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIDQyKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMy
VmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMTMpKTsKIApAQCAtNjk4Myw3ICs2OTkxLDcgQEAgdm9p
ZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJlZEZsb2F0V2l0aAogICAgIFZhbHVlKiBhcmd1bWVu
dDFBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwg
T3JpZ2luKCksIGFyZ3VtZW50MSk7CiAgICAgVmFsdWUqIGFyZ3VtZW50MkFzRG91YmxlID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgYXJndW1l
bnQyKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEVxdWFsT3JV
bm9yZGVyZWQsIE9yaWdpbigpLApAQCAtNjk5MSwxMSArNjk5OSwxMSBAQCB2b2lkIHRlc3RCcmFu
Y2hFcXVhbE9yVW5vcmRlcmVkRmxvYXRXaXRoCiAgICAgICAgICAgICBhcmd1bWVudDJBc0RvdWJs
ZSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhl
bHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgNDIpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIC0xMykpOwogCkBAIC03MDEwLDE2ICs3MDE4LDE2IEBAIHZvaWQg
dGVzdEJyYW5jaEZvbGQoaW50IHZhbHVlKQogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJv
Yy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygp
OwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpLAog
ICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNh
c2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVu
Q2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIDApKTsKIApAQCAtNzAzNCwyMyArNzA0MiwyMyBAQCB2b2lkIHRlc3REaWFt
b25kRm9sZChpbnQgdmFsdWUpCiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJs
b2NrKCk7CiAgICAgQmFzaWNCbG9jayogZG9uZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKSwKICAgICAgICAgRnJl
cXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKICAg
ICBVcHNpbG9uVmFsdWUqIHRoZW5SZXN1bHQgPSB0aGVuQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25W
YWx1ZT4oCiAgICAgICAgIHByb2MsIE9yaWdpbigpLCB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhkb25lKSk7
CisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4o
KSwgRnJlcXVlbnRlZEJsb2NrKGRvbmUpKTsKIAogICAgIFVwc2lsb25WYWx1ZSogZWxzZVJlc3Vs
dCA9IGVsc2VDYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPigKICAgICAgICAgcHJvYywgT3Jp
Z2luKCksIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
MCkpOwotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBP
cmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRvbmUpKTsKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZG9uZSkp
OwogCiAgICAgVmFsdWUqIHBoaSA9IGRvbmUtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBJ
bnQzMiwgT3JpZ2luKCkpOwogICAgIHRoZW5SZXN1bHQtPnNldFBoaShwaGkpOwogICAgIGVsc2VS
ZXN1bHQtPnNldFBoaShwaGkpOwotICAgIGRvbmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHBoaSk7CisgICAgZG9uZS0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBoaSk7CiAKICAgICBDSEVDSyhjb21waWxlQW5k
UnVuPGludD4ocHJvYykgPT0gISF2YWx1ZSk7CiB9CkBAIC03MDYyLDcgKzcwNzAsNyBAQCB2b2lk
IHRlc3RCcmFuY2hOb3RFcXVhbEZvbGRQdHIoaW50cHRyX3QgCiAgICAgQmFzaWNCbG9jayogdGhl
bkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9j
LmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBO
b3RFcXVhbCwgT3JpZ2luKCksCkBAIC03MDcwLDExICs3MDc4LDExIEBAIHZvaWQgdGVzdEJyYW5j
aE5vdEVxdWFsRm9sZFB0cihpbnRwdHJfdCAKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
b25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpLAogICAgICAgICBGcmVxdWVudGVkQmxv
Y2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNl
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2Fz
ZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVs
c2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBl
bHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApA
QCAtNzA4OCw3ICs3MDk2LDcgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxGb2xkUHRyKGludHB0cl90
IHZhbAogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJh
c2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KAogICAgICAgICAgICAgcHJvYywgRXF1YWwsIE9yaWdpbigpLApAQCAtNzA5NiwxMSArNzEw
NCwxMSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbEZvbGRQdHIoaW50cHRyX3QgdmFsCiAgICAgICAg
ICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKSwK
ICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VD
YXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhl
bkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTcxMTQsMTggKzcxMjIsMTggQEAgdm9pZCB0ZXN0QnJh
bmNoTG9hZFB0cigpCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7
CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgp
LCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIEZyZXF1
ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAg
dGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwog
Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
MCkpOwogCkBAIC03MTQ0LDE4ICs3MTUyLDE4IEBAIHZvaWQgdGVzdEJyYW5jaExvYWQzMigpCiAg
ICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9j
ayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2luKCksCiAgICAgICAgICAg
ICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBG
cmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNzE3NCwxOCArNzE4
MiwxOCBAQCB2b2lkIHRlc3RCcmFuY2hMb2FkOFMoKQogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNl
ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRC
bG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
TG9hZDhTLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAg
IEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwog
Ci0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
MSkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VD
YXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgMCkpOwogCkBAIC03MjA0LDE4ICs3MjEyLDE4IEBAIHZvaWQgdGVzdEJyYW5jaExvYWQ4
WigpCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFz
aWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1v
cnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkOFosIE9yaWdpbigpLAogICAgICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwg
RnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTcyMzQsMTggKzcy
NDIsMTggQEAgdm9pZCB0ZXN0QnJhbmNoTG9hZDE2UygpCiAgICAgQmFzaWNCbG9jayogdGhlbkNh
c2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFk
ZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBMb2FkMTZTLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAg
ICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkp
OwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNl
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgMSkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVs
c2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgMCkpOwogCkBAIC03MjY0LDE4ICs3MjcyLDE4IEBAIHZvaWQgdGVzdEJyYW5jaExv
YWQxNlooKQogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAg
IEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZDE2WiwgT3JpZ2luKCksCiAgICAg
ICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNh
c2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNzI5NSw3
ICs3MzAzLDcgQEAgdm9pZCB0ZXN0QnJhbmNoOFdpdGhMb2FkOFpJbmRleCgpCiAgICAgQmFzaWNC
bG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKICAgICBpbnQgbG9nU2NhbGUgPSAx
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEFib3ZlLCBPcmlnaW4o
KSwKQEAgLTczMTEsMTEgKzczMTksMTEgQEAgdm9pZCB0ZXN0QnJhbmNoOFdpdGhMb2FkOFpJbmRl
eCgpCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgMjUwKSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50
ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29u
c3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC03MzU3LDcgKzczNjUsNyBAQCB2
b2lkIHRlc3RDb21wbGV4KHVuc2lnbmVkIG51bVZhcnMsIHVuc2lnCiAgICAgICAgICAgICBCYXNp
Y0Jsb2NrKiBlbHNlQmxvY2sgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgICAgICAgICBCYXNpY0Js
b2NrKiBjb250aW51YXRpb24gPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICAgICAgICAgIGN1cnJl
bnQtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICAgICAgY3VycmVudC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCks
IHZhcnNbcHJlZGljYXRlVmFySW5kZXhdLAogICAgICAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9j
ayh0aGVuQmxvY2spLCBGcmVxdWVudGVkQmxvY2soZWxzZUJsb2NrKSk7CiAKQEAgLTczNjYsMTQg
KzczNzQsMTQgQEAgdm9pZCB0ZXN0Q29tcGxleCh1bnNpZ25lZCBudW1WYXJzLCB1bnNpZwogICAg
ICAgICAgICAgICAgIHRoZW5CbG9jay0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdp
bigpLCB2YXJzW3RoZW5JbmNWYXJJbmRleF0sIG9uZSkpOwogICAgICAgICAgICAgVXBzaWxvblZh
bHVlKiB0aGVuRWxzZVJlc3VsdCA9IHRoZW5CbG9jay0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4o
CiAgICAgICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksIHZhcnNbZWxzZUluY1ZhckluZGV4XSk7
Ci0gICAgICAgICAgICB0aGVuQmxvY2stPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1
bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soY29udGludWF0aW9uKSk7CisgICAgICAgICAg
ICB0aGVuQmxvY2stPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwg
RnJlcXVlbnRlZEJsb2NrKGNvbnRpbnVhdGlvbikpOwogCiAgICAgICAgICAgICBVcHNpbG9uVmFs
dWUqIGVsc2VFbHNlUmVzdWx0ID0gZWxzZUJsb2NrLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPigK
ICAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgICAgICAgICBlbHNlQmxv
Y2stPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgdmFyc1tlbHNlSW5jVmFy
SW5kZXhdLCBvbmUpKTsKICAgICAgICAgICAgIFVwc2lsb25WYWx1ZSogZWxzZVRoZW5SZXN1bHQg
PSBlbHNlQmxvY2stPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KAogICAgICAgICAgICAgICAgIHBy
b2MsIE9yaWdpbigpLCB2YXJzW3RoZW5JbmNWYXJJbmRleF0pOwotICAgICAgICAgICAgZWxzZUJs
b2NrLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVl
bnRlZEJsb2NrKGNvbnRpbnVhdGlvbikpOworICAgICAgICAgICAgZWxzZUJsb2NrLT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhjb250
aW51YXRpb24pKTsKIAogICAgICAgICAgICAgVmFsdWUqIHRoZW5QaGkgPSBjb250aW51YXRpb24t
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBJbnQzMiwgT3JpZ2luKCkpOwogICAgICAgICAg
ICAgdGhlblRoZW5SZXN1bHQtPnNldFBoaSh0aGVuUGhpKTsKQEAgLTczOTgsNyArNzQwNiw3IEBA
IHZvaWQgdGVzdENvbXBsZXgodW5zaWduZWQgbnVtVmFycywgdW5zaWcKICAgICAgICAgICAgIAog
ICAgICAgICAgICAgVmFsdWUqIHN0YXJ0SW5kZXggPSB2YXJzWygoaSA+PiAxKSArIDEpICUgbnVt
VmFyc107CiAgICAgICAgICAgICBWYWx1ZSogc3RhcnRTdW0gPSBjdXJyZW50LT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCk7Ci0gICAgICAgICAgICBjdXJyZW50LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgICAgIGN1cnJlbnQtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLCBzdGFy
dEluZGV4LAogICAgICAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhsb29wRW50cnkpLCBGcmVx
dWVudGVkQmxvY2sobG9vcFNraXApKTsKIApAQCAtNzQwNiw3ICs3NDE0LDcgQEAgdm9pZCB0ZXN0
Q29tcGxleCh1bnNpZ25lZCBudW1WYXJzLCB1bnNpZwogICAgICAgICAgICAgICAgIHByb2MsIE9y
aWdpbigpLCBzdGFydEluZGV4KTsKICAgICAgICAgICAgIFVwc2lsb25WYWx1ZSogc3RhcnRTdW1G
b3JCb2R5ID0gbG9vcEVudHJ5LT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPigKICAgICAgICAgICAg
ICAgICBwcm9jLCBPcmlnaW4oKSwgc3RhcnRTdW0pOwotICAgICAgICAgICAgbG9vcEVudHJ5LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJs
b2NrKGxvb3BCb2R5KSk7CisgICAgICAgICAgICBsb29wRW50cnktPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3BCb2R5KSk7CiAK
ICAgICAgICAgICAgIFZhbHVlKiBib2R5SW5kZXggPSBsb29wQm9keS0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBQaGksIEludDMyLCBPcmlnaW4oKSk7CiAgICAgICAgICAgICBzdGFydEluZGV4Rm9y
Qm9keS0+c2V0UGhpKGJvZHlJbmRleCk7CkBAIC03NDMxLDE5ICs3NDM5LDE5IEBAIHZvaWQgdGVz
dENvbXBsZXgodW5zaWduZWQgbnVtVmFycywgdW5zaWcKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxvb3BCb2R5LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPigKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgbnVtVmFycyAt
IDEpKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9vcEJvZHktPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAyKSkpKSk7Ci0gICAgICAgICAgICBsb29wQm9k
eS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgICAgICBsb29wQm9keS0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCks
IG5ld0JvZHlJbmRleCwKICAgICAgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2sobG9vcFJlZW50
cnkpLCBGcmVxdWVudGVkQmxvY2sobG9vcEV4aXQpKTsKIAogICAgICAgICAgICAgbG9vcFJlZW50
cnktPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCBuZXdCb2R5SW5kZXgs
IGJvZHlJbmRleCk7CiAgICAgICAgICAgICBsb29wUmVlbnRyeS0+YXBwZW5kTmV3PFVwc2lsb25W
YWx1ZT4ocHJvYywgT3JpZ2luKCksIG5ld0JvZHlTdW0sIGJvZHlTdW0pOwotICAgICAgICAgICAg
bG9vcFJlZW50cnktPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigp
LCBGcmVxdWVudGVkQmxvY2sobG9vcEJvZHkpKTsKKyAgICAgICAgICAgIGxvb3BSZWVudHJ5LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9j
ayhsb29wQm9keSkpOwogCiAgICAgICAgICAgICBVcHNpbG9uVmFsdWUqIGV4aXRTdW0gPSBsb29w
RXhpdC0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIG5ld0JvZHlTdW0p
OwotICAgICAgICAgICAgbG9vcEV4aXQtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1
bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soY29udGludWF0aW9uKSk7CisgICAgICAgICAg
ICBsb29wRXhpdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBG
cmVxdWVudGVkQmxvY2soY29udGludWF0aW9uKSk7CiAKICAgICAgICAgICAgIFVwc2lsb25WYWx1
ZSogc2tpcFN1bSA9IGxvb3BTa2lwLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmln
aW4oKSwgc3RhcnRTdW0pOwotICAgICAgICAgICAgbG9vcFNraXAtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soY29udGludWF0aW9u
KSk7CisgICAgICAgICAgICBsb29wU2tpcC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1
bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soY29udGludWF0aW9uKSk7CiAKICAgICAgICAg
ICAgIFZhbHVlKiBmaW5hbFN1bSA9IGNvbnRpbnVhdGlvbi0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBQaGksIEludDMyLCBPcmlnaW4oKSk7CiAgICAgICAgICAgICBleGl0U3VtLT5zZXRQaGkoZmlu
YWxTdW0pOwpAQCAtNzQ1NCw3ICs3NDYyLDcgQEAgdm9pZCB0ZXN0Q29tcGxleCh1bnNpZ25lZCBu
dW1WYXJzLCB1bnNpZwogICAgICAgICB9CiAgICAgfQogCi0gICAgY3VycmVudC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFyc1swXSk7CisgICAgY3Vy
cmVudC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhcnNb
MF0pOwogCiAgICAgY29tcGlsZShwcm9jKTsKIApAQCAtNzQ4MCw3ICs3NDg4LDcgQEAgdm9pZCB0
ZXN0U2ltcGxlUGF0Y2hwb2ludCgpCiAgICAgICAgICAgICBDSEVDSyhwYXJhbXNbMl0uaXNHUFIo
KSk7CiAgICAgICAgICAgICBhZGQzMihqaXQsIHBhcmFtc1sxXS5ncHIoKSwgcGFyYW1zWzJdLmdw
cigpLCBwYXJhbXNbMF0uZ3ByKCkpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hw
b2ludCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywgMSwgMikgPT0gMyk7
CiB9CkBAIC03NTExLDcgKzc1MTksNyBAQCB2b2lkIHRlc3RTaW1wbGVQYXRjaHBvaW50V2l0aG91
dE91cHV0Q2xvCiAgICAgICAgIH0pOwogCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYXJnMSwgYXJnMik7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAxLCAyKSA9PSAz
KTsKIH0KQEAgLTc1NjAsNyArNzU2OCw3IEBAIHZvaWQgdGVzdFNpbXBsZVBhdGNocG9pbnRXaXRo
T3VwdXRDbG9iYmUKIAogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEFkZCwgT3JpZ2luKCksIHBhdGNocG9pbnQsCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYXJnMSwgYXJnMikpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
c3VsdCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywgMSwgMikgPT0gNTgp
OwogfQpAQCAtNzU5MSw3ICs3NTk5LDcgQEAgdm9pZCB0ZXN0U2ltcGxlUGF0Y2hwb2ludFdpdGhv
dXRPdXB1dENsbwogICAgICAgICB9KTsKIAogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGFyZzEsIGFyZzIpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJlc3VsdCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgMS41LCAy
LjUpID09IDQpOwogfQpAQCAtNzYzMiw3ICs3NjQwLDcgQEAgdm9pZCB0ZXN0U2ltcGxlUGF0Y2hw
b2ludFdpdGhPdXB1dENsb2JiZQogCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBhcmcxLCBhcmcyKSk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCAx
LjUsIDIuNSkgPT0gNTkuNik7CiB9CkBAIC03NjU3LDcgKzc2NjUsNyBAQCB2b2lkIHRlc3RQYXRj
aHBvaW50V2l0aEVhcmx5Q2xvYmJlcigpCiAgICAgICAgICAgICAgICAgYWRkMzIoaml0LCBwYXJh
bXNbMV0uZ3ByKCksIHBhcmFtc1syXS5ncHIoKSwgcGFyYW1zWzBdLmdwcigpKTsKICAgICAgICAg
ICAgIH0pOwogCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CiAKICAgICAgICAg
Q0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIDEsIDIpID09IDMpOwogICAgIH07CkBAIC03
NjkwLDcgKzc2OTgsNyBAQCB2b2lkIHRlc3RQYXRjaHBvaW50Q2FsbEFyZygpCiAgICAgICAgICAg
ICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBw
YXJhbXNbMl0ub2Zmc2V0RnJvbUZQKCkpLAogICAgICAgICAgICAgICAgIHBhcmFtc1swXS5ncHIo
KSk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKIAogICAgIENIRUNL
KGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAxLCAyKSA9PSAzKTsKIH0KQEAgLTc3MTMsNyArNzcy
MSw3IEBAIHZvaWQgdGVzdFBhdGNocG9pbnRGaXhlZFJlZ2lzdGVyKCkKICAgICAgICAgICAgIENI
RUNLKHBhcmFtc1syXSA9PSBWYWx1ZVJlcChHUFJJbmZvOjpyZWdUMSkpOwogICAgICAgICAgICAg
YWRkMzIoaml0LCBHUFJJbmZvOjpyZWdUMCwgR1BSSW5mbzo6cmVnVDEsIHBhcmFtc1swXS5ncHIo
KSk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKIAogICAgIENIRUNL
KGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAxLCAyKSA9PSAzKTsKIH0KQEAgLTc3MzcsNyArNzc0
NSw3IEBAIHZvaWQgdGVzdFBhdGNocG9pbnRBbnkoVmFsdWVSZXAgcmVwKQogICAgICAgICAgICAg
Q0hFQ0socGFyYW1zWzJdLmlzR1BSKCkpOwogICAgICAgICAgICAgYWRkMzIoaml0LCBwYXJhbXNb
MV0uZ3ByKCksIHBhcmFtc1syXS5ncHIoKSwgcGFyYW1zWzBdLmdwcigpKTsKICAgICAgICAgfSk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcGF0Y2hwb2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxp
bnQ+KHByb2MsIDEsIDIpID09IDMpOwogfQpAQCAtNzc3Myw3ICs3NzgxLDcgQEAgdm9pZCB0ZXN0
UGF0Y2hwb2ludEdQU2NyYXRjaCgpCiAgICAgICAgICAgICBDSEVDSyghcGFyYW1zLnVuYXZhaWxh
YmxlUmVnaXN0ZXJzKCkuZ2V0KHBhcmFtcy5ncFNjcmF0Y2goMSkpKTsKICAgICAgICAgICAgIGFk
ZDMyKGppdCwgcGFyYW1zWzFdLmdwcigpLCBwYXJhbXNbMl0uZ3ByKCksIHBhcmFtc1swXS5ncHIo
KSk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKIAogICAgIENIRUNL
KGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAxLCAyKSA9PSAzKTsKIH0KQEAgLTc4MDMsNyArNzgx
MSw3IEBAIHZvaWQgdGVzdFBhdGNocG9pbnRGUFNjcmF0Y2goKQogICAgICAgICAgICAgQ0hFQ0so
IXBhcmFtcy51bmF2YWlsYWJsZVJlZ2lzdGVycygpLmdldChwYXJhbXMuZnBTY3JhdGNoKDEpKSk7
CiAgICAgICAgICAgICBhZGQzMihqaXQsIHBhcmFtc1sxXS5ncHIoKSwgcGFyYW1zWzJdLmdwcigp
LCBwYXJhbXNbMF0uZ3ByKCkpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2lu
dCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywgMSwgMikgPT0gMyk7CiB9
CkBAIC03ODQ1LDcgKzc4NTMsNyBAQCB2b2lkIHRlc3RQYXRjaHBvaW50TG90c09mTGF0ZUFueXMo
KQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfSk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hw
b2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHBhdGNocG9pbnQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2Mp
ID09ICh0aGluZ3Muc2l6ZSgpICogKHRoaW5ncy5zaXplKCkgLSAxKSkgLyAyKTsKIH0KQEAgLTc4
NzMsNyArNzg4MSw3IEBAIHZvaWQgdGVzdFBhdGNocG9pbnRBbnlJbW0oVmFsdWVSZXAgcmVwKQog
ICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKHN0YXRpY19jYXN0PGlu
dDMyX3Q+KHBhcmFtc1syXS52YWx1ZSgpKSksCiAgICAgICAgICAgICAgICAgcGFyYW1zWzFdLmdw
cigpLCBwYXJhbXNbMF0uZ3ByKCkpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hw
b2ludCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywgMSkgPT0gNDMpOwog
fQpAQCAtNzg5OSw3ICs3OTA3LDcgQEAgdm9pZCB0ZXN0UGF0Y2hwb2ludE1hbnlJbW1zKCkKICAg
ICAgICAgICAgIENIRUNLKHBhcmFtc1syXSA9PSBWYWx1ZVJlcDo6Y29uc3RhbnQoNDMwMDAwMDAw
MDAwMDBsbCkpOwogICAgICAgICAgICAgQ0hFQ0socGFyYW1zWzNdID09IFZhbHVlUmVwOjpjb25z
dGFudChiaXR3aXNlX2Nhc3Q8aW50NjRfdD4oNDIuNSkpKTsKICAgICAgICAgfSk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC03OTI1LDcgKzc5
MzMsNyBAQCB2b2lkIHRlc3RQYXRjaHBvaW50V2l0aFJlZ2lzdGVyUmVzdWx0KCkKICAgICAgICAg
ICAgIENIRUNLKHBhcmFtc1syXS5pc0dQUigpKTsKICAgICAgICAgICAgIGFkZDMyKGppdCwgcGFy
YW1zWzFdLmdwcigpLCBwYXJhbXNbMl0uZ3ByKCksIEdQUkluZm86Om5vbkFyZ0dQUjApOwogICAg
ICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CiAKICAgICBDSEVDSyhjb21waWxl
QW5kUnVuPGludD4ocHJvYywgMSwgMikgPT0gMyk7CiB9CkBAIC03OTUxLDcgKzc5NTksNyBAQCB2
b2lkIHRlc3RQYXRjaHBvaW50V2l0aFN0YWNrQXJndW1lbnRSZXN1CiAgICAgICAgICAgICBqaXQu
YWRkMzIocGFyYW1zWzFdLmdwcigpLCBwYXJhbXNbMl0uZ3ByKCksIGppdC5zY3JhdGNoUmVnaXN0
ZXIoKSk7CiAgICAgICAgICAgICBqaXQuc3RvcmUzMihqaXQuc2NyYXRjaFJlZ2lzdGVyKCksIEND
YWxsSGVscGVyczo6QWRkcmVzcyhDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCAw
KSk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKIAogICAgIENIRUNL
KGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAxLCAyKSA9PSAzKTsKIH0KQEAgLTc5ODAsNyArNzk4
OCw3IEBAIHZvaWQgdGVzdFBhdGNocG9pbnRXaXRoQW55UmVzdWx0KCkKICAgICAgICAgICAgIGpp
dC5jb252ZXJ0SW50MzJUb0RvdWJsZShHUFJJbmZvOjpyZWdUMCwgRlBSSW5mbzo6ZnBSZWdUMCk7
CiAgICAgICAgICAgICBqaXQuc3RvcmVEb3VibGUoRlBSSW5mbzo6ZnBSZWdUMCwgQ0NhbGxIZWxw
ZXJzOjpBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBwYXJhbXNbMF0ub2Zmc2V0
RnJvbUZQKCkpKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOwogCiAg
ICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIDEsIDIpID09IDMpOwogfQpAQCAt
ODAwMiw3ICs4MDEwLDcgQEAgdm9pZCB0ZXN0U2ltcGxlQ2hlY2soKQogICAgICAgICAgICAgaml0
LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAg
IH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGF1dG8g
Y29kZSA9IGNvbXBpbGUocHJvYyk7CkBAIC04MDIxLDcgKzgwMjksNyBAQCB2b2lkIHRlc3RDaGVj
a0ZhbHNlKCkKICAgICAgICAgWyZdIChDQ2FsbEhlbHBlcnMmLCBjb25zdCBTdGFja21hcEdlbmVy
YXRpb25QYXJhbXMmKSB7CiAgICAgICAgICAgICBDSEVDSyghIlRoaXMgc2hvdWxkIG5vdCBoYXZl
IGV4ZWN1dGVkIik7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDApKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CkBAIC04MDQ3LDcgKzgw
NTUsNyBAQCB2b2lkIHRlc3RDaGVja1RydWUoKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlv
bkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBp
bGUocHJvYyk7CkBAIC04MDc4LDcgKzgwODYsNyBAQCB2b2lkIHRlc3RDaGVja0xlc3NUaGFuKCkK
ICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0
LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAw
KSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwpAQCAtODEyNCw3ICs4MTMyLDcg
QEAgdm9pZCB0ZXN0Q2hlY2tNZWdhQ29tYm8oKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlv
bkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBp
bGUocHJvYyk7CkBAIC04MTc5LDcgKzgxODcsNyBAQCB2b2lkIHRlc3RDaGVja1RyaWNreU1lZ2FD
b21ibygpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAg
ICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgMCkpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKQEAgLTgyNDMsNyAr
ODI1MSw3IEBAIHZvaWQgdGVzdENoZWNrVHdvTWVnYUNvbWJvcygpCiAgICAgICAgICAgICBqaXQu
ZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAg
fSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgYXV0byBj
b2RlID0gY29tcGlsZShwcm9jKTsKQEAgLTgyOTMsNyArODMwMSw3IEBAIHZvaWQgdGVzdENoZWNr
VHdvTm9uUmVkdW5kYW50TWVnYUNvbWJvcygKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9y
eVZhbHVlPihwcm9jLCBMb2FkOFMsIE9yaWdpbigpLCBwdHIpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpKTsKIAotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwgYnJhbmNoUHJlZGljYXRlLAogICAgICAg
ICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsK
ICAgICAKQEAgLTgzMDksNyArODMxNyw3IEBAIHZvaWQgdGVzdENoZWNrVHdvTm9uUmVkdW5kYW50
TWVnYUNvbWJvcygKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAg
ICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMy
VmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MykpOwogCiAgICAgQ2hlY2tWYWx1ZSogY2hlY2syID0g
ZWxzZUNhc2UtPmFwcGVuZE5ldzxDaGVja1ZhbHVlPihwcm9jLCBDaGVjaywgT3JpZ2luKCksIGNo
ZWNrUHJlZGljYXRlKTsKQEAgLTgzMjQsNyArODMzMiw3IEBAIHZvaWQgdGVzdENoZWNrVHdvTm9u
UmVkdW5kYW50TWVnYUNvbWJvcygKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1
ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICBlbHNlQ2FzZS0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZWxzZUNhc2UtPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0NSkpOwogCiAgICAgYXV0byBjb2RlID0g
Y29tcGlsZShwcm9jKTsKQEAgLTgzNzgsNyArODM4Niw3IEBAIHZvaWQgdGVzdENoZWNrQWRkSW1t
KCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAg
aml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwg
T3JpZ2luKCksIGNoZWNrQWRkKSk7CiAKQEAgLTg0MTQsNyArODQyMiw3IEBAIHZvaWQgdGVzdENo
ZWNrQWRkSW1tQ29tbXV0ZSgpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUo
KTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVja0FkZCkpOwogCkBAIC04NDQ5LDcgKzg0NTcs
NyBAQCB2b2lkIHRlc3RDaGVja0FkZEltbVNvbWVSZWdpc3RlcigpCiAgICAgICAgICAgICBqaXQu
ZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAg
fSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVja0FkZCkp
OwogCkBAIC04NDg2LDcgKzg0OTQsNyBAQCB2b2lkIHRlc3RDaGVja0FkZCgpCiAgICAgICAgICAg
ICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAg
ICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVj
a0FkZCkpOwogCkBAIC04NTE5LDcgKzg1MjcsNyBAQCB2b2lkIHRlc3RDaGVja0FkZDY0KCkKICAg
ICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJl
dCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2lu
KCksIGNoZWNrQWRkKSk7CiAKQEAgLTg1NDIsNyArODU1MCw3IEBAIHZvaWQgdGVzdENoZWNrQWRk
Rm9sZChpbnQgYSwgaW50IGIpCiAgICAgICAgIFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3Rh
Y2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgewogICAgICAgICAgICAgQ0hFQ0soISJTaG91bGQgaGF2
ZSBiZWVuIGZvbGRlZCIpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja0FkZCk7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrQWRkKTsKIAog
ICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKQEAgLTg1NjMsNyArODU3MSw3IEBAIHZv
aWQgdGVzdENoZWNrQWRkRm9sZEZhaWwoaW50IGEsIGludCBiKQogICAgICAgICAgICAgaml0LmVt
aXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0p
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIGNoZWNrQWRkKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgY2hlY2tBZGQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9j
KTsKIApAQCAtODYwMiw3ICs4NjEwLDcgQEAgdm9pZCB0ZXN0Q2hlY2tBZGRBcmd1bWVudEFsaWFz
aW5nNjQoKQogICAgIENoZWNrVmFsdWUqIGNoZWNrQWRkMyA9IHJvb3QtPmFwcGVuZE5ldzxDaGVj
a1ZhbHVlPihwcm9jLCBDaGVja0FkZCwgT3JpZ2luKCksIGNoZWNrQWRkMSwgY2hlY2tBZGQyKTsK
ICAgICBjaGVja0FkZDMtPnNldEdlbmVyYXRvcihbJl0gKENDYWxsSGVscGVycyYgaml0LCBjb25z
dCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7IGppdC5vb3BzKCk7IH0pOwogCi0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tB
ZGQzKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgY2hlY2tBZGQzKTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJv
YywgMSwgMiwgMykgPT0gOCk7CiB9CkBAIC04NjQ1LDcgKzg2NTMsNyBAQCB2b2lkIHRlc3RDaGVj
a0FkZEFyZ3VtZW50QWxpYXNpbmczMigpCiAgICAgQ2hlY2tWYWx1ZSogY2hlY2tBZGQzID0gcm9v
dC0+YXBwZW5kTmV3PENoZWNrVmFsdWU+KHByb2MsIENoZWNrQWRkLCBPcmlnaW4oKSwgY2hlY2tB
ZGQxLCBjaGVja0FkZDIpOwogICAgIGNoZWNrQWRkMy0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxI
ZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsgaml0Lm9vcHMo
KTsgfSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBjaGVja0FkZDMpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja0FkZDMpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFu
ZFJ1bjxpbnQzMl90Pihwcm9jLCAxLCAyLCAzKSA9PSA4KTsKIH0KQEAgLTg2NzAsNyArODY3OCw3
IEBAIHZvaWQgdGVzdENoZWNrQWRkU2VsZk92ZXJmbG93NjQoKQogICAgIG9wYXF1ZVVzZS0+YXBw
ZW5kKENvbnN0cmFpbmVkVmFsdWUoYXJnLCBWYWx1ZVJlcDo6U29tZVJlZ2lzdGVyKSk7CiAgICAg
b3BhcXVlVXNlLT5zZXRHZW5lcmF0b3IoWyZdIChDQ2FsbEhlbHBlcnMmLCBjb25zdCBTdGFja21h
cEdlbmVyYXRpb25QYXJhbXMmKSB7IH0pOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tBZGQpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja0FkZCk7CiAKICAg
ICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC04NzAxLDcgKzg3MDksNyBAQCB2b2lk
IHRlc3RDaGVja0FkZFNlbGZPdmVyZmxvdzMyKCkKICAgICBvcGFxdWVVc2UtPmFwcGVuZChDb25z
dHJhaW5lZFZhbHVlKGFyZywgVmFsdWVSZXA6OlNvbWVSZWdpc3RlcikpOwogICAgIG9wYXF1ZVVz
ZS0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0
aW9uUGFyYW1zJikgeyB9KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrQWRkKTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tBZGQpOwogCiAgICAgYXV0byBj
b2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAtODczNCw3ICs4NzQyLDcgQEAgdm9pZCB0ZXN0Q2hl
Y2tTdWJJbW0oKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAg
ICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tTdWIpKTsKIApAQCAtODc3Niw3ICs4Nzg0LDcgQEAgdm9p
ZCB0ZXN0Q2hlY2tTdWJCYWRJbW0oKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxv
Z3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tTdWIpKTsKIApAQCAtODgxMyw3ICs4
ODIxLDcgQEAgdm9pZCB0ZXN0Q2hlY2tTdWIoKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlv
bkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tTdWIpKTsKIApAQCAtODg1
MSw3ICs4ODU5LDcgQEAgdm9pZCB0ZXN0Q2hlY2tTdWI2NCgpCiAgICAgICAgICAgICBqaXQuZW1p
dEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVja1N1YikpOwog
CkBAIC04ODc0LDcgKzg4ODIsNyBAQCB2b2lkIHRlc3RDaGVja1N1YkZvbGQoaW50IGEsIGludCBi
KQogICAgICAgICBbJl0gKENDYWxsSGVscGVycyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBh
cmFtcyYpIHsKICAgICAgICAgICAgIENIRUNLKCEiU2hvdWxkIGhhdmUgYmVlbiBmb2xkZWQiKTsK
ICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgY2hlY2tTdWIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja1N1Yik7CiAKICAgICBhdXRvIGNvZGUgPSBj
b21waWxlKHByb2MpOwogCkBAIC04ODk1LDcgKzg5MDMsNyBAQCB2b2lkIHRlc3RDaGVja1N1YkZv
bGRGYWlsKGludCBhLCBpbnQgYikKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1
ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja1N1Yik7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNo
ZWNrU3ViKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKQEAgLTg5MjIsNyAr
ODkzMCw3IEBAIHZvaWQgdGVzdENoZWNrTmVnKCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rp
b25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGNoZWNrTmVnKSk7CiAKQEAgLTg5
NTIsNyArODk2MCw3IEBAIHZvaWQgdGVzdENoZWNrTmVnNjQoKQogICAgICAgICAgICAgaml0LmVt
aXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0p
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tOZWcpKTsK
IApAQCAtODk4OSw3ICs4OTk3LDcgQEAgdm9pZCB0ZXN0Q2hlY2tNdWwoKQogICAgICAgICAgICAg
aml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAg
ICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tN
dWwpKTsKIApAQCAtOTAzMCw3ICs5MDM4LDcgQEAgdm9pZCB0ZXN0Q2hlY2tNdWxNZW1vcnkoKQog
ICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQu
cmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmln
aW4oKSwgY2hlY2tNdWwpKTsKIApAQCAtOTA3Nyw3ICs5MDg1LDcgQEAgdm9pZCB0ZXN0Q2hlY2tN
dWwyKCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAg
ICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRv
RCwgT3JpZ2luKCksIGNoZWNrTXVsKSk7CiAKQEAgLTkxMTAsNyArOTExOCw3IEBAIHZvaWQgdGVz
dENoZWNrTXVsNjQoKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAg
ICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tNdWwpKTsKIApAQCAtOTEzMyw3ICs5MTQxLDcgQEAg
dm9pZCB0ZXN0Q2hlY2tNdWxGb2xkKGludCBhLCBpbnQgYikKICAgICAgICAgWyZdIChDQ2FsbEhl
bHBlcnMmLCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7CiAgICAgICAgICAgICBD
SEVDSyghIlNob3VsZCBoYXZlIGJlZW4gZm9sZGVkIik7CiAgICAgICAgIH0pOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrTXVs
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgY2hlY2tNdWwpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAtOTE1
NCw3ICs5MTYyLDcgQEAgdm9pZCB0ZXN0Q2hlY2tNdWxGb2xkRmFpbChpbnQgYSwgaW50IGIpCiAg
ICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5y
ZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tNdWwpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja011bCk7CiAKICAgICBhdXRvIGNv
ZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC05MTkzLDcgKzkyMDEsNyBAQCB2b2lkIHRlc3RDaGVj
a011bEFyZ3VtZW50QWxpYXNpbmc2NCgpCiAgICAgQ2hlY2tWYWx1ZSogY2hlY2tNdWwzID0gcm9v
dC0+YXBwZW5kTmV3PENoZWNrVmFsdWU+KHByb2MsIENoZWNrTXVsLCBPcmlnaW4oKSwgY2hlY2tN
dWwxLCBjaGVja011bDIpOwogICAgIGNoZWNrTXVsMy0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxI
ZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsgaml0Lm9vcHMo
KTsgfSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBjaGVja011bDMpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja011bDMpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFu
ZFJ1bjxpbnQ2NF90Pihwcm9jLCAyLCAzLCA0KSA9PSA3Mik7CiB9CkBAIC05MjM2LDcgKzkyNDQs
NyBAQCB2b2lkIHRlc3RDaGVja011bEFyZ3VtZW50QWxpYXNpbmczMigpCiAgICAgQ2hlY2tWYWx1
ZSogY2hlY2tNdWwzID0gcm9vdC0+YXBwZW5kTmV3PENoZWNrVmFsdWU+KHByb2MsIENoZWNrTXVs
LCBPcmlnaW4oKSwgY2hlY2tNdWwxLCBjaGVja011bDIpOwogICAgIGNoZWNrTXVsMy0+c2V0R2Vu
ZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBh
cmFtcyYpIHsgaml0Lm9vcHMoKTsgfSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja011bDMpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja011bDMpOwogCiAg
ICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCAyLCAzLCA0KSA9PSA3Mik7CiB9
CkBAIC05MjY4LDcgKzkyNzYsNyBAQCB2b2lkIHRlc3RDaGVja011bDY0U1NocigpCiAgICAgICAg
ICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsK
ICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBj
aGVja011bCkpOwogCkBAIC05Mjk0LDcgKzkzMDIsNyBAQCB2b2lkIGdlbmVyaWNUZXN0Q29tcGFy
ZSgKICAgICAgICAgVmFsdWUqIHJpZ2h0VmFsdWUgPSByaWdodEZ1bmN0b3Iocm9vdCwgcHJvYyk7
CiAgICAgICAgIFZhbHVlKiBjb21wYXJpc29uUmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBvcGNvZGUsIE9yaWdpbigpLCBsZWZ0VmFsdWUsIHJpZ2h0VmFsdWUpOwogICAgICAg
ICAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAg
IHByb2MsIE5vdEVxdWFsLCBPcmlnaW4oKSwKQEAgLTkzMTQsNyArOTMyMiw3IEBAIHZvaWQgZ2Vu
ZXJpY1Rlc3RDb21wYXJlKAogICAgICAgICBWYWx1ZSogbGVmdFZhbHVlID0gbGVmdEZ1bmN0b3Io
cm9vdCwgcHJvYyk7CiAgICAgICAgIFZhbHVlKiByaWdodFZhbHVlID0gcmlnaHRGdW5jdG9yKHJv
b3QsIHByb2MpOwogCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
ICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBCcmFu
Y2gsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBv
cGNvZGUsIE9yaWdpbigpLCBsZWZ0VmFsdWUsIHJpZ2h0VmFsdWUpLAogICAgICAgICAgICAgRnJl
cXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CkBAIC05
MzI4LDkgKzkzMzYsOSBAQCB2b2lkIGdlbmVyaWNUZXN0Q29tcGFyZSgKICAgICAgICAgICAgICAg
ICBDSEVDSyhwYXJhbXNbMF0uaXNHUFIoKSk7CiAgICAgICAgICAgICAgICAgaml0Lm1vdmUoQ0Nh
bGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoMSksIHBhcmFtc1swXS5ncHIoKSk7CiAgICAgICAgICAg
ICB9KTsKLSAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOworICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOwogCi0gICAg
ICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgZWxzZUNhc2Ut
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDApKTsKIApAQCAtOTU2OSw3ICs5NTc3LDcgQEAgdm9pZCB0ZXN0RXF1YWxEb3Vi
bGUoZG91YmxlIGxlZnQsIGRvdWJsZQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgRXF1YWwsIE9yaWdpbigpLApAQCAtOTU4OCw3ICs5NTk2LDcgQEAgdm9p
ZCB0ZXN0Q2FsbFNpbXBsZShpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDQ2Fs
bFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEludDMyLCBPcmlnaW4oKSwKQEAgLTk2MDYsMTYg
Kzk2MTQsMTYgQEAgdm9pZCB0ZXN0Q2FsbFJhcmUoaW50IGEsIGludCBiKQogICAgIEJhc2ljQmxv
Y2sqIGNvbW1vbiA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiByYXJlID0gcHJv
Yy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhy
YXJlLCBGcmVxdWVuY3lDbGFzczo6UmFyZSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhjb21t
b24pKTsKIAotICAgIGNvbW1vbi0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgY29tbW9u
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
IGNvbW1vbi0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKICAg
ICAKLSAgICByYXJlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByYXJlLT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJhcmUtPmFwcGVuZE5ldzxDQ2FsbFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEludDMyLCBP
cmlnaW4oKSwKQEAgLTk2MzMsMTYgKzk2NDEsMTYgQEAgdm9pZCB0ZXN0Q2FsbFJhcmVMaXZlKGlu
dCBhLCBpbnQgYiwgaW50IAogICAgIEJhc2ljQmxvY2sqIGNvbW1vbiA9IHByb2MuYWRkQmxvY2so
KTsKICAgICBCYXNpY0Jsb2NrKiByYXJlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BS
MCksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhyYXJlLCBGcmVxdWVuY3lDbGFzczo6UmFyZSks
CiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhjb21tb24pKTsKIAotICAgIGNvbW1vbi0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgY29tbW9uLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNvbW1vbi0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKICAgICAKLSAgICByYXJlLT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByYXJlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJhcmUtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAtOTY2Miw3ICs5NjcwLDcgQEAgdm9p
ZCB0ZXN0Q2FsbFNpbXBsZVB1cmUoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9j
OwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
Q0NhbGxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBJbnQzMiwgT3JpZ2luKCksIEVmZmVjdHM6
Om5vbmUoKSwKQEAgLTk2OTIsNyArOTcwMCw3IEBAIHZvaWQgdGVzdENhbGxGdW5jdGlvbldpdGhI
ZWxsYUFyZ3VtZW50cygKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBiaXR3aXNlX2Nhc3Q8dm9pZCo+KGZ1bmN0aW9uV2l0aEhlbGxhQXJndW1l
bnRzKSkpOwogICAgIGNhbGwtPmNoaWxkcmVuKCkuYXBwZW5kVmVjdG9yKGFyZ3MpOwogICAgIAot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IGNhbGwpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBjYWxsKTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jKSA9PSBm
dW5jdGlvbldpdGhIZWxsYUFyZ3VtZW50cygxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwg
MTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0LCAy
NSwgMjYpKTsKIH0KQEAgLTk3MDEsNyArOTcwOSw3IEBAIHZvaWQgdGVzdFJldHVybkRvdWJsZShk
b3VibGUgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgdmFsdWUpKTsKIApAQCAtOTcxMiw3ICs5NzIwLDcgQEAgdm9pZCB0ZXN0UmV0
dXJuRmxvYXQoZmxvYXQgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFs
dWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSkpOwogCkBAIC05NzI4LDcgKzk3MzYsNyBAQCB2b2lk
IHRlc3RDYWxsU2ltcGxlRG91YmxlKGRvdWJsZSBhLCBkb3ViCiB7CiAgICAgUHJvY2VkdXJlIHBy
b2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxDQ2FsbFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIERvdWJsZSwgT3JpZ2luKCksCkBAIC05
NzU0LDcgKzk3NjIsNyBAQCB2b2lkIHRlc3RDYWxsU2ltcGxlRmxvYXQoZmxvYXQgYSwgZmxvYXQg
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7CiAgICAgVmFsdWUqIGZsb2F0VmFsdWUxID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50
MWludDMyKTsKICAgICBWYWx1ZSogZmxvYXRWYWx1ZTIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQyaW50MzIpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PENDYWxsVmFsdWU+KAogICAgICAgICAgICAgcHJvYywgRmxvYXQsIE9yaWdpbigpLApAQCAt
OTc4NCw3ICs5NzkyLDcgQEAgdm9pZCB0ZXN0Q2FsbEZ1bmN0aW9uV2l0aEhlbGxhRG91YmxlQXJn
dQogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IGJpdHdpc2VfY2FzdDx2b2lkKj4oZnVuY3Rpb25XaXRoSGVsbGFEb3VibGVBcmd1bWVudHMpKSk7
CiAgICAgY2FsbC0+Y2hpbGRyZW4oKS5hcHBlbmRWZWN0b3IoYXJncyk7CiAgICAgCi0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FsbCk7
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IGNhbGwpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MpID09IGZ1bmN0
aW9uV2l0aEhlbGxhRG91YmxlQXJndW1lbnRzKDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEw
LCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjQs
IDI1LCAyNikpOwogfQpAQCAtOTgwOCw3ICs5ODE2LDcgQEAgdm9pZCB0ZXN0Q2FsbEZ1bmN0aW9u
V2l0aEhlbGxhRmxvYXRBcmd1bQogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIGJpdHdpc2VfY2FzdDx2b2lkKj4oZnVuY3Rpb25XaXRoSGVsbGFG
bG9hdEFyZ3VtZW50cykpKTsKICAgICBjYWxsLT5jaGlsZHJlbigpLmFwcGVuZFZlY3Rvcihhcmdz
KTsKICAgICAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBjYWxsKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgY2FsbCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGZsb2F0
Pihwcm9jKSA9PSBmdW5jdGlvbldpdGhIZWxsYUZsb2F0QXJndW1lbnRzKDEsIDIsIDMsIDQsIDUs
IDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAxNywgMTgsIDE5LCAyMCwg
MjEsIDIyLCAyMywgMjQsIDI1LCAyNikpOwogfQpAQCAtOTgyMCw3ICs5ODI4LDcgQEAgdm9pZCB0
ZXN0Q2hpbGxEaXYoaW50IG51bSwgaW50IGRlbiwgaW50IAogICAgICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICAgICAg
Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgICAgICBw
cm9jLCBDaGlsbERpdiwgT3JpZ2luKCksCkBAIC05ODM5LDcgKzk4NDcsNyBAQCB2b2lkIHRlc3RD
aGlsbERpdihpbnQgbnVtLCBpbnQgZGVuLCBpbnQgCiAgICAgICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgICAgICAKLSAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2Ms
IENoaWxsRGl2LCBPcmlnaW4oKSwKQEAgLTk4NTUsNyArOTg2Myw3IEBAIHZvaWQgdGVzdENoaWxs
RGl2VHdpY2UoaW50IG51bTEsIGludCBkZW4KICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAog
ICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKQEAgLTk4ODksNyArOTg5Nyw3IEBAIHZv
aWQgdGVzdENoaWxsRGl2NjQoaW50NjRfdCBudW0sIGludDY0X3QKICAgICAgICAgUHJvY2VkdXJl
IHByb2M7CiAgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAg
ICAgIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICAg
ICAgcHJvYywgQ2hpbGxEaXYsIE9yaWdpbigpLApAQCAtOTkwNCw3ICs5OTEyLDcgQEAgdm9pZCB0
ZXN0Q2hpbGxEaXY2NChpbnQ2NF90IG51bSwgaW50NjRfdAogICAgICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICAgICAg
Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgICAgICBw
cm9jLCBDaGlsbERpdiwgT3JpZ2luKCksCkBAIC05OTI1LDcgKzk5MzMsNyBAQCB2b2lkIHRlc3RN
b2RBcmcoaW50NjRfdCB2YWx1ZSkKIAogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIwKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBN
b2QsIE9yaWdpbigpLCBhcmd1bWVudCwgYXJndW1lbnQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAK
ICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCB2YWx1ZSkpOwogfQpAQCAt
OTk0Myw3ICs5OTUxLDcgQEAgdm9pZCB0ZXN0TW9kQXJncyhpbnQ2NF90IG51bWVyYXRvciwgaW50
NgogICAgIFZhbHVlKiBhcmd1bWVudDEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIGFy
Z3VtZW50MiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigpLCBhcmd1bWVudDEsIGFyZ3VtZW50Mik7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4o
cHJvYywgbnVtZXJhdG9yLCBkZW5vbWluYXRvcikgPT0gbnVtZXJhdG9yICUgZGVub21pbmF0b3Ip
OwogfQpAQCAtOTk2MSw3ICs5OTY5LDcgQEAgdm9pZCB0ZXN0TW9kSW1tcyhpbnQ2NF90IG51bWVy
YXRvciwgaW50NgogICAgIFZhbHVlKiBhcmd1bWVudDEgPSByb290LT5hcHBlbmROZXc8Q29uc3Q2
NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgbnVtZXJhdG9yKTsKICAgICBWYWx1ZSogYXJndW1lbnQy
ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGRlbm9taW5h
dG9yKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBN
b2QsIE9yaWdpbigpLCBhcmd1bWVudDEsIGFyZ3VtZW50Mik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsK
IAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgbnVtZXJhdG9yLCBkZW5v
bWluYXRvcikgPT0gbnVtZXJhdG9yICUgZGVub21pbmF0b3IpOwogfQpAQCAtOTk3Nyw3ICs5OTg1
LDcgQEAgdm9pZCB0ZXN0TW9kQXJnMzIoaW50MzJfdCB2YWx1ZSkKICAgICBWYWx1ZSogYXJndW1l
bnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigpLCBhcmd1bWVudCwgYXJndW1lbnQpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCB2
YWx1ZSkpOwogfQpAQCAtOTk5Nyw3ICsxMDAwNSw3IEBAIHZvaWQgdGVzdE1vZEFyZ3MzMihpbnQz
Ml90IG51bWVyYXRvciwgaW4KICAgICBWYWx1ZSogYXJndW1lbnQyID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7
CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBP
cmlnaW4oKSwgYXJndW1lbnQxLCBhcmd1bWVudDIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAg
ICBDSEVDSyhjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIG51bWVyYXRvciwgZGVub21pbmF0
b3IpID09IG51bWVyYXRvciAlIGRlbm9taW5hdG9yKTsKIH0KQEAgLTEwMDE1LDcgKzEwMDIzLDcg
QEAgdm9pZCB0ZXN0TW9kSW1tczMyKGludDMyX3QgbnVtZXJhdG9yLCBpbgogICAgIFZhbHVlKiBh
cmd1bWVudDEgPSByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
bnVtZXJhdG9yKTsKICAgICBWYWx1ZSogYXJndW1lbnQyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGRlbm9taW5hdG9yKTsKICAgICBWYWx1ZSogcmVzdWx0
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigpLCBhcmd1bWVudDEs
IGFyZ3VtZW50Mik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRS
dW48aW50MzJfdD4ocHJvYywgbnVtZXJhdG9yLCBkZW5vbWluYXRvcikgPT0gbnVtZXJhdG9yICUg
ZGVub21pbmF0b3IpOwogfQpAQCAtMTAwMjcsNyArMTAwMzUsNyBAQCB2b2lkIHRlc3RDaGlsbE1v
ZEFyZyhpbnQ2NF90IHZhbHVlKQogCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENo
aWxsTW9kLCBPcmlnaW4oKSwgYXJndW1lbnQsIGFyZ3VtZW50KTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQp
OwogCiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgdmFsdWUpKTsKIH0K
QEAgLTEwMDQwLDcgKzEwMDQ4LDcgQEAgdm9pZCB0ZXN0Q2hpbGxNb2RBcmdzKGludDY0X3QgbnVt
ZXJhdG9yLAogICAgIFZhbHVlKiBhcmd1bWVudDEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFs
dWUqIGFyZ3VtZW50MiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDaGlsbE1vZCwgT3JpZ2luKCksIGFyZ3VtZW50MSwg
YXJndW1lbnQyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1
bjxpbnQ2NF90Pihwcm9jLCBudW1lcmF0b3IsIGRlbm9taW5hdG9yKSA9PSBjaGlsbE1vZChudW1l
cmF0b3IsIGRlbm9taW5hdG9yKSk7CiB9CkBAIC0xMDA1Myw3ICsxMDA2MSw3IEBAIHZvaWQgdGVz
dENoaWxsTW9kSW1tcyhpbnQ2NF90IG51bWVyYXRvciwKICAgICBWYWx1ZSogYXJndW1lbnQxID0g
cm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIG51bWVyYXRvcik7
CiAgICAgVmFsdWUqIGFyZ3VtZW50MiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBkZW5vbWluYXRvcik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2hpbGxNb2QsIE9yaWdpbigpLCBhcmd1bWVudDEsIGFyZ3Vt
ZW50Mik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50
NjRfdD4ocHJvYywgbnVtZXJhdG9yLCBkZW5vbWluYXRvcikgPT0gY2hpbGxNb2QobnVtZXJhdG9y
LCBkZW5vbWluYXRvcikpOwogfQpAQCAtMTAwNjYsNyArMTAwNzQsNyBAQCB2b2lkIHRlc3RDaGls
bE1vZEFyZzMyKGludDMyX3QgdmFsdWUpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIwKSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
Q2hpbGxNb2QsIE9yaWdpbigpLCBhcmd1bWVudCwgYXJndW1lbnQpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dCk7CiAKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCB2YWx1ZSkpOwog
fQpAQCAtMTAwODEsNyArMTAwODksNyBAQCB2b2lkIHRlc3RDaGlsbE1vZEFyZ3MzMihpbnQzMl90
IG51bWVyYXRvCiAgICAgVmFsdWUqIGFyZ3VtZW50MiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSkpOwogICAgIFZh
bHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENoaWxsTW9kLCBPcmln
aW4oKSwgYXJndW1lbnQxLCBhcmd1bWVudDIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBD
SEVDSyhjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIG51bWVyYXRvciwgZGVub21pbmF0b3Ip
ID09IGNoaWxsTW9kKG51bWVyYXRvciwgZGVub21pbmF0b3IpKTsKIH0KQEAgLTEwMDk0LDcgKzEw
MTAyLDcgQEAgdm9pZCB0ZXN0Q2hpbGxNb2RJbW1zMzIoaW50MzJfdCBudW1lcmF0bwogICAgIFZh
bHVlKiBhcmd1bWVudDEgPSByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgbnVtZXJhdG9yKTsKICAgICBWYWx1ZSogYXJndW1lbnQyID0gcm9vdC0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGRlbm9taW5hdG9yKTsKICAgICBWYWx1ZSog
cmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDaGlsbE1vZCwgT3JpZ2luKCks
IGFyZ3VtZW50MSwgYXJndW1lbnQyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0so
Y29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBudW1lcmF0b3IsIGRlbm9taW5hdG9yKSA9PSBj
aGlsbE1vZChudW1lcmF0b3IsIGRlbm9taW5hdG9yKSk7CiB9CkBAIC0xMDEwNSwxOCArMTAxMTMs
MTcgQEAgdm9pZCB0ZXN0U3dpdGNoKHVuc2lnbmVkIGRlZ3JlZSwgdW5zaWduZQogICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAKICAgICBCYXNpY0Jsb2NrKiB0ZXJtaW5h
dGUgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgdGVybWluYXRlLT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICB0ZXJtaW5hdGUtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGVybWluYXRlLT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgU3dpdGNoVmFsdWUqIHN3aXRjaFZh
bHVlID0gcm9vdC0+YXBwZW5kTmV3PFN3aXRjaFZhbHVlPigKLSAgICAgICAgcHJvYywgT3JpZ2lu
KCksCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwKLSAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRl
cm1pbmF0ZSkpOworICAgICAgICBwcm9jLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKKyAg
ICBzd2l0Y2hWYWx1ZS0+c2V0RmFsbFRocm91Z2goRnJlcXVlbnRlZEJsb2NrKHRlcm1pbmF0ZSkp
OwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGRlZ3JlZTsgKytpKSB7CiAgICAgICAg
IEJhc2ljQmxvY2sqIG5ld0Jsb2NrID0gcHJvYy5hZGRCbG9jaygpOwotICAgICAgICBuZXdCbG9j
ay0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIG5ld0Jsb2NrLT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICAgICAgbmV3QmxvY2stPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPigKICAgICAgICAgICAg
ICAgICBwcm9jLCBPcmlnaW4oKSwgKGkgJiAxKSA/IEdQUkluZm86OmFyZ3VtZW50R1BSMiA6IEdQ
UkluZm86OmFyZ3VtZW50R1BSMSkpOwpAQCAtMTAxNDcsMTkgKzEwMTU0LDE4IEBAIHZvaWQgdGVz
dFN3aXRjaENoaWxsRGl2KHVuc2lnbmVkIGRlZ3JlZSwKICAgICBWYWx1ZSogcmlnaHQgPSByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMik7CiAKICAgICBCYXNpY0Jsb2NrKiB0ZXJtaW5hdGUgPSBwcm9jLmFkZEJsb2Nr
KCk7Ci0gICAgdGVybWluYXRlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0ZXJtaW5h
dGUtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgdGVybWluYXRlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgMCkpOwogCiAgICAgU3dpdGNoVmFsdWUqIHN3aXRjaFZhbHVlID0gcm9vdC0+YXBwZW5k
TmV3PFN3aXRjaFZhbHVlPigKLSAgICAgICAgcHJvYywgT3JpZ2luKCksCi0gICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKSwKLSAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRlcm1pbmF0ZSkpOworICAgICAg
ICBwcm9jLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKKyAgICBzd2l0Y2hWYWx1ZS0+c2V0
RmFsbFRocm91Z2goRnJlcXVlbnRlZEJsb2NrKHRlcm1pbmF0ZSkpOwogCiAgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IGRlZ3JlZTsgKytpKSB7CiAgICAgICAgIEJhc2ljQmxvY2sqIG5ld0Js
b2NrID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgICAgIG5ld0Jsb2NrLT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICAgICAgbmV3QmxvY2stPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICBuZXdCbG9jay0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBDaGlsbERpdiwgT3JpZ2lu
KCksIChpICYgMSkgPyByaWdodCA6IGxlZnQsIChpICYgMSkgPyBsZWZ0IDogcmlnaHQpKTsKQEAg
LTEwMTcwLDcgKzEwMTc2LDEwIEBAIHZvaWQgdGVzdFN3aXRjaENoaWxsRGl2KHVuc2lnbmVkIGRl
Z3JlZSwKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCiAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IGRlZ3JlZTsgKytpKSB7Ci0gICAgICAgIENIRUNLKGludm9rZTxpbnQzMl90
PigqY29kZSwgaSAqIGdhcCwgNDIsIDExKSA9PSAoKGkgJiAxKSA/IDExLzQyIDogNDIvMTEpKTsK
KyAgICAgICAgZGF0YUxvZygiaSA9ICIsIGksICJcbiIpOworICAgICAgICBpbnQzMl90IHJlc3Vs
dCA9IGludm9rZTxpbnQzMl90PigqY29kZSwgaSAqIGdhcCwgNDIsIDExKTsKKyAgICAgICAgZGF0
YUxvZygicmVzdWx0ID0gIiwgcmVzdWx0LCAiXG4iKTsKKyAgICAgICAgQ0hFQ0socmVzdWx0ID09
ICgoaSAmIDEpID8gMTEvNDIgOiA0Mi8xMSkpOwogICAgICAgICBpZiAoZ2FwID4gMSkgewogICAg
ICAgICAgICAgQ0hFQ0soIWludm9rZTxpbnQzMl90PigqY29kZSwgaSAqIGdhcCArIDEsIDQyLCAx
MSkpOwogICAgICAgICAgICAgQ0hFQ0soIWludm9rZTxpbnQzMl90PigqY29kZSwgaSAqIGdhcCAt
IDEsIDQyLCAxMSkpOwpAQCAtMTAxODgsMTcgKzEwMTk3LDE2IEBAIHZvaWQgdGVzdFN3aXRjaFRh
cmdldHRpbmdTYW1lQmxvY2soKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7CiAKICAgICBCYXNpY0Jsb2NrKiB0ZXJtaW5hdGUgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAg
dGVybWluYXRlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0ZXJtaW5hdGUtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgdGVybWluYXRlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNSkp
OwogCiAgICAgU3dpdGNoVmFsdWUqIHN3aXRjaFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFN3aXRj
aFZhbHVlPigKLSAgICAgICAgcHJvYywgT3JpZ2luKCksCi0gICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIw
KSwKLSAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRlcm1pbmF0ZSkpOworICAgICAgICBwcm9jLCBP
cmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKKyAgICBzd2l0Y2hWYWx1ZS0+c2V0RmFsbFRocm91
Z2goRnJlcXVlbnRlZEJsb2NrKHRlcm1pbmF0ZSkpOwogCiAgICAgQmFzaWNCbG9jayogb3RoZXJU
YXJnZXQgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgb3RoZXJUYXJnZXQtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIG90aGVyVGFyZ2V0LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIG90aGVyVGFyZ2V0LT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpKTsKICAgICBzd2l0Y2hWYWx1ZS0+
YXBwZW5kQ2FzZShTd2l0Y2hDYXNlKDMsIEZyZXF1ZW50ZWRCbG9jayhvdGhlclRhcmdldCkpKTsK
QEAgLTEwMjE4LDE4ICsxMDIyNiwxNiBAQCB2b2lkIHRlc3RTd2l0Y2hUYXJnZXR0aW5nU2FtZUJs
b2NrRm9sZFBhCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKIAogICAg
IEJhc2ljQmxvY2sqIHRlcm1pbmF0ZSA9IHByb2MuYWRkQmxvY2soKTsKLSAgICB0ZXJtaW5hdGUt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRlcm1pbmF0ZS0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0ZXJtaW5h
dGUtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwogCiAgICAg
VmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwotICAgIFN3aXRjaFZhbHVlKiBzd2l0
Y2hWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxTd2l0Y2hWYWx1ZT4oCi0gICAgICAgIHByb2MsIE9y
aWdpbigpLAotICAgICAgICBhcmd1bWVudCwKLSAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRlcm1p
bmF0ZSkpOworICAgIFN3aXRjaFZhbHVlKiBzd2l0Y2hWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxT
d2l0Y2hWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFyZ3VtZW50KTsKKyAgICBzd2l0Y2hWYWx1ZS0+
c2V0RmFsbFRocm91Z2goRnJlcXVlbnRlZEJsb2NrKHRlcm1pbmF0ZSkpOwogCiAgICAgQmFzaWNC
bG9jayogb3RoZXJUYXJnZXQgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgb3RoZXJUYXJnZXQtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIG90aGVyVGFyZ2V0LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBz
d2l0Y2hWYWx1ZS0+YXBwZW5kQ2FzZShTd2l0Y2hDYXNlKDMsIEZyZXF1ZW50ZWRCbG9jayhvdGhl
clRhcmdldCkpKTsKICAgICBzd2l0Y2hWYWx1ZS0+YXBwZW5kQ2FzZShTd2l0Y2hDYXNlKDEzLCBG
cmVxdWVudGVkQmxvY2sob3RoZXJUYXJnZXQpKSk7CkBAIC0xMDI0Niw3ICsxMDI1Miw3IEBAIHZv
aWQgdGVzdFRydW5jRm9sZChpbnQ2NF90IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KAogICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLApAQCAtMTAyNTksNyArMTAy
NjUsNyBAQCB2b2lkIHRlc3RaRXh0MzIoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUg
cHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFpFeHQzMiwgT3JpZ2luKCksCkBAIC0xMDI3
NCw3ICsxMDI4MCw3IEBAIHZvaWQgdGVzdFpFeHQzMkZvbGQoaW50MzJfdCB2YWx1ZSkKIHsKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFpFeHQzMiwgT3JpZ2lu
KCksCkBAIC0xMDI4Nyw3ICsxMDI5Myw3IEBAIHZvaWQgdGVzdFNFeHQzMihpbnQzMl90IHZhbHVl
KQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU0V4dDMy
LCBPcmlnaW4oKSwKQEAgLTEwMzAyLDcgKzEwMzA4LDcgQEAgdm9pZCB0ZXN0U0V4dDMyRm9sZChp
bnQzMl90IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgU0V4dDMyLCBPcmlnaW4oKSwKQEAgLTEwMzE1LDcgKzEwMzIxLDcgQEAgdm9pZCB0ZXN0
VHJ1bmNaRXh0MzIoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKQEAgLTEwMzMyLDcgKzEwMzM4LDcg
QEAgdm9pZCB0ZXN0VHJ1bmNTRXh0MzIoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUg
cHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKQEAgLTEwMzQ5
LDcgKzEwMzU1LDcgQEAgdm9pZCB0ZXN0U0V4dDgoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9j
ZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNFeHQ4LCBPcmlnaW4oKSwKQEAg
LTEwMzY0LDcgKzEwMzcwLDcgQEAgdm9pZCB0ZXN0U0V4dDhGb2xkKGludDMyX3QgdmFsdWUpCiB7
CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTRXh0OCwgT3Jp
Z2luKCksCkBAIC0xMDM3Nyw3ICsxMDM4Myw3IEBAIHZvaWQgdGVzdFNFeHQ4U0V4dDgoaW50MzJf
dCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IFNFeHQ4LCBPcmlnaW4oKSwKQEAgLTEwMzk0LDcgKzEwNDAwLDcgQEAgdm9pZCB0ZXN0U0V4dDhT
RXh0MTYoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIFNFeHQ4LCBPcmlnaW4oKSwKQEAgLTEwNDExLDcgKzEwNDE3LDcgQEAgdm9p
ZCB0ZXN0U0V4dDhCaXRBbmQoaW50MzJfdCB2YWx1ZSwgaW50MwogewogICAgIFByb2NlZHVyZSBw
cm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU0V4dDgsIE9yaWdpbigpLApAQCAtMTA0Mjks
NyArMTA0MzUsNyBAQCB2b2lkIHRlc3RCaXRBbmRTRXh0OChpbnQzMl90IHZhbHVlLCBpbnQzCiB7
CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9y
aWdpbigpLApAQCAtMTA0NDcsNyArMTA0NTMsNyBAQCB2b2lkIHRlc3RTRXh0MTYoaW50MzJfdCB2
YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNF
eHQxNiwgT3JpZ2luKCksCkBAIC0xMDQ2Miw3ICsxMDQ2OCw3IEBAIHZvaWQgdGVzdFNFeHQxNkZv
bGQoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIFNFeHQxNiwgT3JpZ2luKCksCkBAIC0xMDQ3NSw3ICsxMDQ4MSw3IEBAIHZvaWQg
dGVzdFNFeHQxNlNFeHQxNihpbnQzMl90IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KAogICAgICAgICAgICAgcHJvYywgU0V4dDE2LCBPcmlnaW4oKSwKQEAgLTEwNDkyLDcgKzEw
NDk4LDcgQEAgdm9pZCB0ZXN0U0V4dDE2U0V4dDgoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9j
ZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNFeHQxNiwgT3JpZ2luKCksCkBA
IC0xMDUwOSw3ICsxMDUxNSw3IEBAIHZvaWQgdGVzdFNFeHQxNkJpdEFuZChpbnQzMl90IHZhbHVl
LCBpbnQKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNF
eHQxNiwgT3JpZ2luKCksCkBAIC0xMDUyNyw3ICsxMDUzMyw3IEBAIHZvaWQgdGVzdEJpdEFuZFNF
eHQxNihpbnQzMl90IHZhbHVlLCBpbnQKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0xMDU0NSw3ICsxMDU1MSw3IEBA
IHZvaWQgdGVzdFNFeHQzMkJpdEFuZChpbnQzMl90IHZhbHVlLCBpbnQKIHsKICAgICBQcm9jZWR1
cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNFeHQzMiwgT3JpZ2luKCksCkBAIC0x
MDU2Myw3ICsxMDU2OSw3IEBAIHZvaWQgdGVzdEJpdEFuZFNFeHQzMihpbnQzMl90IHZhbHVlLCBp
bnQKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdEFu
ZCwgT3JpZ2luKCksCkBAIC0xMDU4MSw3ICsxMDU4Nyw3IEBAIHZvaWQgdGVzdEJhc2ljU2VsZWN0
KCkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNlbGVj
dCwgT3JpZ2luKCksCkBAIC0xMDYwMyw3ICsxMDYwOSw3IEBAIHZvaWQgdGVzdFNlbGVjdFRlc3Qo
KQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2VsZWN0
LCBPcmlnaW4oKSwKQEAgLTEwNjIyLDcgKzEwNjI4LDcgQEAgdm9pZCB0ZXN0U2VsZWN0Q29tcGFy
ZURvdWJsZSgpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBTZWxlY3QsIE9yaWdpbigpLApAQCAtMTA2NTMsNyArMTA2NTksNyBAQCB2b2lkIHRlc3RTZWxl
Y3RDb21wYXJlRmxvYXQoZmxvYXQgYSwgZmxvCiAgICAgVmFsdWUqIGZsb2F0VmFsdWUxID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50
MWludDMyKTsKICAgICBWYWx1ZSogZmxvYXRWYWx1ZTIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQyaW50MzIpOwogCi0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTEw
NjkxLDcgKzEwNjk3LDcgQEAgdm9pZCB0ZXN0U2VsZWN0Q29tcGFyZUZsb2F0VG9Eb3VibGUoZmxv
YQogICAgIFZhbHVlKiBkb3VibGVWYWx1ZTEgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBmbG9hdFZhbHVlMSk7CiAgICAgVmFsdWUqIGRvdWJs
ZVZhbHVlMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3Jp
Z2luKCksIGZsb2F0VmFsdWUyKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0xMDcxOSw3ICsxMDcyNSw3IEBAIHZvaWQgdGVz
dFNlbGVjdERvdWJsZSgpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLApAQCAtMTA3NDEsNyArMTA3NDcsNyBAQCB2b2lkIHRl
c3RTZWxlY3REb3VibGVUZXN0KCkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0xMDc2MCw3ICsxMDc2Niw3IEBAIHZv
aWQgdGVzdFNlbGVjdERvdWJsZUNvbXBhcmVEb3VibGUoKQogewogICAgIFByb2NlZHVyZSBwcm9j
OwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTEwNzkwLDcg
KzEwNzk2LDcgQEAgdm9pZCB0ZXN0U2VsZWN0RG91YmxlQ29tcGFyZUZsb2F0KGZsb2F0IAogICAg
IFZhbHVlKiBmbG9hdFZhbHVlMSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lz
ZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDFpbnQzMik7CiAgICAgVmFsdWUqIGZsb2F0VmFsdWUy
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFy
Z3VtZW50MmludDMyKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IFNlbGVjdCwgT3JpZ2luKCksCkBAIC0xMDgyMSw3ICsxMDgyNyw3IEBAIHZvaWQgdGVzdFNlbGVj
dEZsb2F0Q29tcGFyZUZsb2F0KGZsb2F0IGEKICAgICBWYWx1ZSogZmxvYXRWYWx1ZTMgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQz
aW50MzIpOwogICAgIFZhbHVlKiBmbG9hdFZhbHVlNCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDRpbnQzMik7CiAKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLApAQCAtMTA4
NDcsNyArMTA4NTMsNyBAQCB2b2lkIHRlc3RTZWxlY3REb3VibGVDb21wYXJlRG91YmxlKGJvb2wg
CiAgICAgICAgIFZhbHVlKiBhcmcyID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjIpOwogICAgICAgICBWYWx1ZSog
YXJnMyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
RlBSSW5mbzo6YXJndW1lbnRGUFIzKTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTEwODgz
LDcgKzEwODg5LDcgQEAgdm9pZCB0ZXN0U2VsZWN0RG91YmxlQ29tcGFyZURvdWJsZShib29sIAog
ICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+YXBwZW5kKENvbnN0cmFpbmVkVmFsdWUoYXJnMiwgVmFs
dWVSZXA6OlNvbWVSZWdpc3RlcikpOwogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+c2V0R2VuZXJh
dG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikg
eyB9KTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICAgICAgYXV0byBjb2RlID0g
Y29tcGlsZShwcm9jKTsKIAogICAgICAgICBmb3IgKGF1dG8mIGxlZnQgOiBmbG9hdGluZ1BvaW50
T3BlcmFuZHM8ZG91YmxlPigpKSB7CkBAIC0xMDkxMCw3ICsxMDkxNiw3IEBAIHZvaWQgdGVzdFNl
bGVjdERvdWJsZUNvbXBhcmVEb3VibGUoYm9vbCAKICAgICAgICAga2VlcFZhbHVlc0xpdmUtPmFw
cGVuZChDb25zdHJhaW5lZFZhbHVlKGFyZzMsIFZhbHVlUmVwOjpTb21lUmVnaXN0ZXIpKTsKICAg
ICAgICAga2VlcFZhbHVlc0xpdmUtPnNldEdlbmVyYXRvcihbJl0gKENDYWxsSGVscGVycyYsIGNv
bnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsgfSk7CiAKLSAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJlc3VsdCk7CiAgICAgICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKICAgICAgICAg
Zm9yIChhdXRvJiBsZWZ0IDogZmxvYXRpbmdQb2ludE9wZXJhbmRzPGRvdWJsZT4oKSkgewpAQCAt
MTA5MzgsNyArMTA5NDQsNyBAQCB2b2lkIHRlc3RTZWxlY3REb3VibGVDb21wYXJlRG91YmxlKGJv
b2wgCiAgICAgICAgIGtlZXBWYWx1ZXNMaXZlLT5hcHBlbmQoQ29uc3RyYWluZWRWYWx1ZShhcmcz
LCBWYWx1ZVJlcDo6U29tZVJlZ2lzdGVyKSk7CiAgICAgICAgIGtlZXBWYWx1ZXNMaXZlLT5zZXRH
ZW5lcmF0b3IoWyZdIChDQ2FsbEhlbHBlcnMmLCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJh
bXMmKSB7IH0pOwogCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogICAgICAgICBhdXRvIGNv
ZGUgPSBjb21waWxlKHByb2MpOwogCiAgICAgICAgIGZvciAoYXV0byYgbGVmdCA6IGZsb2F0aW5n
UG9pbnRPcGVyYW5kczxkb3VibGU+KCkpIHsKQEAgLTEwOTU1LDcgKzEwOTYxLDcgQEAgdm9pZCB0
ZXN0U2VsZWN0RG91YmxlQ29tcGFyZURvdWJsZShib29sIAogICAgICAgICBWYWx1ZSogYXJnMSA9
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5m
bzo6YXJndW1lbnRGUFIxKTsKICAgICAgICAgVmFsdWUqIGFyZzIgPSByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMik7
CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAg
IHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0xMDk5MCw3ICsxMDk5Niw3IEBAIHZvaWQgdGVz
dFNlbGVjdERvdWJsZUNvbXBhcmVEb3VibGUoYm9vbCAKICAgICAgICAga2VlcFZhbHVlc0xpdmUt
PmFwcGVuZChDb25zdHJhaW5lZFZhbHVlKGFyZzIsIFZhbHVlUmVwOjpTb21lUmVnaXN0ZXIpKTsK
ICAgICAgICAga2VlcFZhbHVlc0xpdmUtPnNldEdlbmVyYXRvcihbJl0gKENDYWxsSGVscGVycyYs
IGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsgfSk7CiAKLSAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsK
KyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdCk7CiAgICAgICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKICAgICAg
ICAgZm9yIChhdXRvJiBsZWZ0IDogZmxvYXRpbmdQb2ludE9wZXJhbmRzPGRvdWJsZT4oKSkgewpA
QCAtMTEwMzMsNyArMTEwMzksNyBAQCB2b2lkIHRlc3RTZWxlY3RGbG9hdENvbXBhcmVGbG9hdChi
b29sICgqCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBP
cmlnaW4oKSwKICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMykpKTsKIAotICAgICAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgU2VsZWN0
LCBPcmlnaW4oKSwKQEAgLTExMDc3LDcgKzExMDgzLDcgQEAgdm9pZCB0ZXN0U2VsZWN0RmxvYXRD
b21wYXJlRmxvYXQoYm9vbCAoKgogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+YXBwZW5kKENvbnN0
cmFpbmVkVmFsdWUoYXJnMiwgVmFsdWVSZXA6OlNvbWVSZWdpc3RlcikpOwogICAgICAgICBrZWVw
VmFsdWVzTGl2ZS0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3RhY2tt
YXBHZW5lcmF0aW9uUGFyYW1zJikgeyB9KTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgICAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsK
ICAgICAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIAogICAgICAgICBmb3IgKGF1dG8m
IGxlZnQgOiBmbG9hdGluZ1BvaW50T3BlcmFuZHM8ZmxvYXQ+KCkpIHsKQEAgLTExMTEyLDcgKzEx
MTE4LDcgQEAgdm9pZCB0ZXN0U2VsZWN0RmxvYXRDb21wYXJlRmxvYXQoYm9vbCAoKgogICAgICAg
ICBrZWVwVmFsdWVzTGl2ZS0+YXBwZW5kKENvbnN0cmFpbmVkVmFsdWUoYXJnMywgVmFsdWVSZXA6
OlNvbWVSZWdpc3RlcikpOwogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+c2V0R2VuZXJhdG9yKFsm
XSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeyB9KTsK
IAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICAgICAgYXV0byBjb2RlID0gY29tcGls
ZShwcm9jKTsKIAogICAgICAgICBmb3IgKGF1dG8mIGxlZnQgOiBmbG9hdGluZ1BvaW50T3BlcmFu
ZHM8ZmxvYXQ+KCkpIHsKQEAgLTExMTQ4LDcgKzExMTU0LDcgQEAgdm9pZCB0ZXN0U2VsZWN0Rmxv
YXRDb21wYXJlRmxvYXQoYm9vbCAoKgogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+YXBwZW5kKENv
bnN0cmFpbmVkVmFsdWUoYXJnMywgVmFsdWVSZXA6OlNvbWVSZWdpc3RlcikpOwogICAgICAgICBr
ZWVwVmFsdWVzTGl2ZS0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3Rh
Y2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeyB9KTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgICAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
KTsKICAgICAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIAogICAgICAgICBmb3IgKGF1
dG8mIGxlZnQgOiBmbG9hdGluZ1BvaW50T3BlcmFuZHM8ZmxvYXQ+KCkpIHsKQEAgLTExMTcxLDcg
KzExMTc3LDcgQEAgdm9pZCB0ZXN0U2VsZWN0RmxvYXRDb21wYXJlRmxvYXQoYm9vbCAoKgogICAg
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAg
ICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpKSk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCks
CkBAIC0xMTIxMiw3ICsxMTIxOCw3IEBAIHZvaWQgdGVzdFNlbGVjdEZsb2F0Q29tcGFyZUZsb2F0
KGJvb2wgKCoKICAgICAgICAga2VlcFZhbHVlc0xpdmUtPmFwcGVuZChDb25zdHJhaW5lZFZhbHVl
KGFyZzIsIFZhbHVlUmVwOjpTb21lUmVnaXN0ZXIpKTsKICAgICAgICAga2VlcFZhbHVlc0xpdmUt
PnNldEdlbmVyYXRvcihbJl0gKENDYWxsSGVscGVycyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlv
blBhcmFtcyYpIHsgfSk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgICAgIGF1
dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKICAgICAgICAgZm9yIChhdXRvJiBsZWZ0IDogZmxv
YXRpbmdQb2ludE9wZXJhbmRzPGZsb2F0PigpKSB7CkBAIC0xMTIzOSw3ICsxMTI0NSw3IEBAIHZv
aWQgdGVzdFNlbGVjdEZvbGQoaW50cHRyX3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLApAQCAtMTEyNTksNyAr
MTEyNjUsNyBAQCB2b2lkIHRlc3RTZWxlY3RJbnZlcnQoKQogewogICAgIFByb2NlZHVyZSBwcm9j
OwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTExMzEyLDcg
KzExMzE4LDcgQEAgdm9pZCB0ZXN0Q2hlY2tTZWxlY3QoKQogICAgICAgICAgICAgaml0LnJldCgp
OwogICAgICAgICB9KTsKICAgICAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCAwKSk7CiAKQEAgLTExMzgzLDcgKzExMzg5LDcgQEAgdm9pZCB0ZXN0Q2hlY2tTZWxl
Y3RDaGVja1NlbGVjdCgpCiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwogICAg
IAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAt
MTE0MTksNyArMTE0MjUsNyBAQCB2b2lkIHRlc3RQb3dEb3VibGVCeUludGVnZXJMb29wKGRvdWJs
ZSB4CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgYXV0byByZXN1bHQgPSBwb3dEb3Vi
bGVJbnQzMihwcm9jLCByb290LCBPcmlnaW4oKSwgeCwgeSk7CiAgICAgQmFzaWNCbG9jayogY29u
dGludWF0aW9uID0gcmVzdWx0LmZpcnN0OwotICAgIGNvbnRpbnVhdGlvbi0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0LnNlY29uZCk7CisgICAg
Y29udGludWF0aW9uLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0LnNlY29uZCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVu
PGRvdWJsZT4ocHJvYywgeE9wZXJhbmQsIHlPcGVyYW5kKSwgYjNQb3coeE9wZXJhbmQsIHlPcGVy
YW5kKSkpOwogfQpAQCAtMTE0MjksNyArMTE0MzUsNyBAQCB2b2lkIHRlc3RUcnVuY09ySGlnaCgp
CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFRydW5jLCBP
cmlnaW4oKSwKQEAgLTExNDQ3LDcgKzExNDUzLDcgQEAgdm9pZCB0ZXN0VHJ1bmNPckxvdygpCiAg
ICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmln
aW4oKSwKQEAgLTExNDY1LDcgKzExNDcxLDcgQEAgdm9pZCB0ZXN0Qml0QW5kT3JIaWdoKCkKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmln
aW4oKSwKQEAgLTExNDg0LDcgKzExNDkwLDcgQEAgdm9pZCB0ZXN0Qml0QW5kT3JMb3coKQogICAg
IFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdp
bigpLApAQCAtMTE1MDcsMjAgKzExNTEzLDIwIEBAIHZvaWQgdGVzdEJyYW5jaDY0RXF1YWwoaW50
NjRfdCBsZWZ0LCBpbnQKIAogICAgIFZhbHVlKiBhcmcxID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAg
IFZhbHVlKiBhcmcyID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBFcXVhbCwgT3JpZ2luKCksIGFyZzEsIGFyZzIpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2so
dGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAogICAgIGJvb2wgdHJ1ZVJl
c3VsdCA9IHRydWU7Ci0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgTG9hZDhaLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHRoZW5DYXNlLT5h
cHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZ0cnVlUmVzdWx0KSkpOwog
CiAgICAgYm9vbCBlbHNlUmVzdWx0ID0gZmFsc2U7Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8
TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZDhaLCBPcmlnaW4oKSwKQEAgLTEx
NTM4LDIwICsxMTU0NCwyMCBAQCB2b2lkIHRlc3RCcmFuY2g2NEVxdWFsSW1tKGludDY0X3QgbGVm
dCwgCiAKICAgICBWYWx1ZSogYXJnMSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBWYWx1ZSogYXJn
MiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgcmlnaHQp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBFcXVhbCwgT3JpZ2luKCksIGFyZzEsIGFyZzIp
LAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxz
ZUNhc2UpKTsKIAogICAgIGJvb2wgdHJ1ZVJlc3VsdCA9IHRydWU7Ci0gICAgdGhlbkNhc2UtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5h
cHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZDhaLCBPcmlnaW4o
KSwKICAgICAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksICZ0cnVlUmVzdWx0KSkpOwogCiAgICAgYm9vbCBlbHNlUmVzdWx0ID0gZmFsc2U7
Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgTG9hZDhaLCBPcmlnaW4oKSwKQEAgLTExNTcxLDIwICsxMTU3NywyMCBAQCB2b2lkIHRlc3RC
cmFuY2g2NEVxdWFsTWVtKGludDY0X3QgbGVmdCwgCiAgICAgICAgIHByb2MsIExvYWQsIHBvaW50
ZXJUeXBlKCksIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVl
KiBhcmcyID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJh
bmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBFcXVh
bCwgT3JpZ2luKCksIGFyZzEsIGFyZzIpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNh
c2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAogICAgIGJvb2wgdHJ1ZVJlc3VsdCA9
IHRydWU7Ci0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5D
YXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgTG9hZDhaLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmRO
ZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZ0cnVlUmVzdWx0KSkpOwogCiAgICAg
Ym9vbCBlbHNlUmVzdWx0ID0gZmFsc2U7Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8TWVtb3J5
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZDhaLCBPcmlnaW4oKSwKQEAgLTExNjA0LDIw
ICsxMTYxMCwyMCBAQCB2b2lkIHRlc3RCcmFuY2g2NEVxdWFsTWVtSW1tKGludDY0X3QgbGVmCiAg
ICAgICAgIHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiBhcmcyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRy
VmFsdWU+KHByb2MsIE9yaWdpbigpLCByaWdodCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEVxdWFsLCBPcmlnaW4oKSwgYXJnMSwgYXJnMiksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0
aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCiAgICAgYm9vbCB0cnVlUmVz
dWx0ID0gdHJ1ZTsKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
dGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBMb2FkOFosIE9yaWdpbigpLAogICAgICAgICAgICAgdGhlbkNhc2UtPmFw
cGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJnRydWVSZXN1bHQpKSk7CiAK
ICAgICBib29sIGVsc2VSZXN1bHQgPSBmYWxzZTsKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxN
ZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkOFosIE9yaWdpbigpLApAQCAtMTE2
NDEsNyArMTE2NDcsNyBAQCB2b2lkIHRlc3RTdG9yZThMb2FkOFooaW50MzJfdCB2YWx1ZSkKICAg
ICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIHB0cik7CiAKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZDhaLCBPcmlnaW4oKSwgcHRyKSk7CiAKQEAgLTExNjYz
LDcgKzExNjY5LDcgQEAgdm9pZCB0ZXN0U3RvcmUxNkxvYWQxNlooaW50MzJfdCB2YWx1ZSkKICAg
ICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIHB0cik7CiAKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZDE2WiwgT3JpZ2luKCksIHB0cikpOwogCkBAIC0xMTY3
NSw3ICsxMTY4MSw3IEBAIHZvaWQgdGVzdFNTaHJTaGwzMihpbnQzMl90IHZhbHVlLCBpbnQzMl8K
ICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU1NociwgT3Jp
Z2luKCksCkBAIC0xMTY5Nyw3ICsxMTcwMyw3IEBAIHZvaWQgdGVzdFNTaHJTaGw2NChpbnQ2NF90
IHZhbHVlLCBpbnQzMl8KICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgU1NociwgT3JpZ2luKCksCkBAIC0xMTcyNSw4ICsxMTczMSw4IEBAIHZvaWQgdGVzdFRy
aXZpYWxJbmZpbml0ZUxvb3AoKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogbG9vcCA9IHByb2MuYWRk
QmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBP
cmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3ApKTsKLSAgICBsb29wLT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3ApKTsK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZy
ZXF1ZW50ZWRCbG9jayhsb29wKSk7CisgICAgbG9vcC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sobG9vcCkpOwogCiAgICAgY29tcGls
ZShwcm9jKTsKIH0KQEAgLTExNzQwLDE1ICsxMTc0NiwxNSBAQCB2b2lkIHRlc3RGb2xkUGF0aEVx
dWFsKCkKIAogICAgIFZhbHVlKiBhcmcgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksIGFyZywgRnJlcXVlbnRlZEJsb2NrKHRo
ZW5CbG9jayksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQmxvY2spKTsKIAotICAgIHRoZW5CbG9jay0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkJsb2NrLT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5CbG9j
ay0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEVxdWFsLCBPcmlnaW4oKSwg
YXJnLCB0aGVuQmxvY2stPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
MCkpKTsKIAotICAgIGVsc2VCbG9jay0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxz
ZUJsb2NrLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIGVsc2VCbG9jay0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIEVxdWFsLCBPcmlnaW4oKSwgYXJnLCBlbHNlQmxvY2stPmFwcGVuZE5ldzxDb25zdFB0
clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpKTsKQEAgLTExNzY2LDcgKzExNzcyLDcgQEAgdm9p
ZCB0ZXN0TFNoaWZ0U2VsZjMyKCkKICAgICBWYWx1ZSogYXJnID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTaGwsIE9yaWdpbigpLCBhcmcsIGFy
ZykpOwogCkBAIC0xMTc4OSw3ICsxMTc5NSw3IEBAIHZvaWQgdGVzdFJTaGlmdFNlbGYzMigpCiAg
ICAgVmFsdWUqIGFyZyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgIHByb2MsIFRy
dW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgU1NociwgT3JpZ2luKCksIGFyZywgYXJnKSk7CiAKQEAgLTExODEyLDcgKzEx
ODE4LDcgQEAgdm9pZCB0ZXN0VVJTaGlmdFNlbGYzMigpCiAgICAgVmFsdWUqIGFyZyA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgWlNociwgT3Jp
Z2luKCksIGFyZywgYXJnKSk7CiAKQEAgLTExODMzLDcgKzExODM5LDcgQEAgdm9pZCB0ZXN0TFNo
aWZ0U2VsZjY0KCkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmcgPSByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2hsLCBPcmlnaW4oKSwgYXJnLCBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwgYXJnKSkpOwpAQCAt
MTE4NTcsNyArMTE4NjMsNyBAQCB2b2lkIHRlc3RSU2hpZnRTZWxmNjQoKQogICAgIFByb2NlZHVy
ZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFs
dWUqIGFyZyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBTU2hyLCBPcmlnaW4oKSwgYXJnLCByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIFRydW5jLCBPcmlnaW4oKSwgYXJnKSkpOwpAQCAtMTE4ODEsNyArMTE4ODcsNyBAQCB2b2lk
IHRlc3RVUlNoaWZ0U2VsZjY0KCkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmcgPSByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BS
MCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgWlNociwgT3JpZ2lu
KCksIGFyZywgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksIGFy
ZykpKTsKQEAgLTExOTE3LDcgKzExOTIzLDcgQEAgdm9pZCB0ZXN0UGF0Y2hwb2ludERvdWJsZVJl
Z3MoKQogICAgICAgICAgICAgbnVtQ2FsbHMrKzsKICAgICAgICAgfSk7CiAKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcGF0Y2hwb2ludCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIENI
RUNLKG51bUNhbGxzID09IDEpOwpAQCAtMTE5NTAsNyArMTE5NTYsNyBAQCB2b2lkIHRlc3RTcGls
bERlZlNtYWxsZXJUaGFuVXNlKCkKIAogICAgIC8vIE9uIHg4NiwgU3ViIGFkbWl0IGFuIGFkZHJl
c3MgZm9yIGFueSBvcGVyYW5kLiBJZiBpdCB1c2VzIHRoZSBzdGFjaywgdGhlIHRvcCBiaXRzIG11
c3QgYmUgemVyby4KICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBTdWIsIE9yaWdpbigpLCBmb3JjZVNwaWxsLCBhcmc2NCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
KTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgQ0hFQ0soaW52b2tlPGlu
dDY0X3Q+KCpjb2RlLCAweGZmZmZmZmZmMDAwMDAwMDApID09IDApOwpAQCAtMTE5NzAsNyArMTE5
NzYsNyBAQCB2b2lkIHRlc3RTcGlsbFVzZUxhcmdlclRoYW5EZWYoKQogCiAgICAgVmFsdWUqIGNv
bmRpdGlvbiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgVHJ1bmMs
IE9yaWdpbigpLApAQCAtMTE5ODAsMTAgKzExOTg2LDEwIEBAIHZvaWQgdGVzdFNwaWxsVXNlTGFy
Z2VyVGhhbkRlZigpCiAgICAgVmFsdWUqIHRydW5jYXRlZCA9IHRoZW5DYXNlLT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIFpFeHQzMiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwgYXJndW1lbnQpKTsKICAgICBVcHNpbG9u
VmFsdWUqIHRoZW5SZXN1bHQgPSB0aGVuQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJv
YywgT3JpZ2luKCksIHRydW5jYXRlZCk7Ci0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOworICAg
IHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZy
ZXF1ZW50ZWRCbG9jayh0YWlsKSk7CiAKICAgICBVcHNpbG9uVmFsdWUqIGVsc2VSZXN1bHQgPSBl
bHNlQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFyZ3VtZW50
KTsKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3Jp
Z2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsK
IAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCAxMDA7ICsraSkgewogICAgICAgICBQYXRj
aHBvaW50VmFsdWUqIHByZXZlbnRUYWlsRHVwbGljYXRpb24gPSB0YWlsLT5hcHBlbmROZXc8UGF0
Y2hwb2ludFZhbHVlPihwcm9jLCBWb2lkLCBPcmlnaW4oKSk7CkBAIC0xMjAwNCw3ICsxMjAxMCw3
IEBAIHZvaWQgdGVzdFNwaWxsVXNlTGFyZ2VyVGhhbkRlZigpCiAgICAgVmFsdWUqIHBoaSA9IHRh
aWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBJbnQ2NCwgT3JpZ2luKCkpOwogICAgIHRo
ZW5SZXN1bHQtPnNldFBoaShwaGkpOwogICAgIGVsc2VSZXN1bHQtPnNldFBoaShwaGkpOwotICAg
IHRhaWwtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBo
aSk7CisgICAgdGFpbC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHBoaSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIENIRUNLKGlu
dm9rZTx1aW50NjRfdD4oKmNvZGUsIDEsIDB4ZmZmZmZmZmYwMDAwMDAwMCkgPT0gMCk7CkBAIC0x
MjA4NiwxMiArMTIwOTIsMjQ0IEBAIHZvaWQgdGVzdExhdGVSZWdpc3RlcigpCiAgICAgICAgICAg
ICBqaXQubm9wKCk7CiAgICAgICAgICAgICBqaXQubm9wKCk7CiAgICAgICAgIH0pOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29u
ZFBhdGNocG9pbnQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBzZWNvbmRQYXRjaHBvaW50KTsKICAgICAKICAgICBhdXRvIGNvZGUgPSBj
b21waWxlKHByb2MpOwogICAgIENIRUNLKGludm9rZTx1aW50NjRfdD4oKmNvZGUpID09IHJlc3Vs
dCk7CiB9CiAKK3ZvaWQgdGhyZWFkZWRJbnRlcnByZXRlclByaW50KFZlY3RvcjxpbnRwdHJfdD4q
IHN0cmVhbSwgaW50cHRyX3QgdmFsdWUpCit7CisgICAgc3RyZWFtLT5hcHBlbmQodmFsdWUpOwor
fQorCit2b2lkIHRlc3RUaHJlYWRlZEludGVycHJldGVyKCkKK3sKKyAgICAvLyBUaGlzIGNyZWF0
ZXMgYSBwb29yIG1hbidzIHRocmVhZGVkIGludGVycHJldGVyIHVzaW5nIFBvbHlKdW1wIGFuZCBz
ZWVzIGlmIGl0IHdvcmtzLiBOb3RlCisgICAgLy8gdGhhdCBQb2x5SnVtcCBpcyBub3QgbGlrZSBp
bmRpcmVjdCBicmFuY2hlcyBpbiBMTFZNLCBzbyB5b3UgY2FuJ3QgYWN0dWFsbHkgdXNlIGl0IHRv
CisgICAgLy8gaW1wbGVtZW50IGEgcHJvcGVyIHRocmVhZGVkIGludGVycHJldGVyLiBUaGlzIGNo
ZWF0czogdGhlIGRpc3BhdGNoIGluc3RydWN0aW9uIGlzIGF0IHRoZSB0b3AKKyAgICAvLyBvZiB0
aGUgbG9vcC4gVGhpcyBhbHNvIHRlc3RzIFZhcmlhYmxlVmFsdWUuCisgICAgCisgICAgUHJvY2Vk
dXJlIHByb2M7CisgICAgCisgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
KyAgICBCYXNpY0Jsb2NrKiBkaXNwYXRjaCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBCYXNpY0Js
b2NrKiBhZGRUb0RhdGFQb2ludGVyID0gcHJvYy5hZGRCbG9jaygpOworICAgIEJhc2ljQmxvY2sq
IGFkZFRvQ29kZVBvaW50ZXIgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayogYWRk
VG9Db2RlUG9pbnRlclRha2VuID0gcHJvYy5hZGRCbG9jaygpOworICAgIEJhc2ljQmxvY2sqIGFk
ZFRvQ29kZVBvaW50ZXJOb3RUYWtlbiA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBCYXNpY0Jsb2Nr
KiBhZGRUb0RhdGEgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayogcHJpbnQgPSBw
cm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayogc3RvcCA9IHByb2MuYWRkQmxvY2soKTsK
KyAgICAKKyAgICBWYXJpYWJsZSogZGF0YVBvaW50ZXIgPSBwcm9jLmFkZFZhcmlhYmxlKHBvaW50
ZXJUeXBlKCkpOworICAgIFZhcmlhYmxlKiBjb2RlUG9pbnRlciA9IHByb2MuYWRkVmFyaWFibGUo
cG9pbnRlclR5cGUoKSk7CisgICAgCisgICAgcm9vdC0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+
KAorICAgICAgICBwcm9jLCBTZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRlciwKKyAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApKTsKKyAgICByb290LT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAg
ICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyLAorICAgICAgICByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMSkpOworICAgIFZhbHVlKiBjb250ZXh0ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJs
b2NrKGRpc3BhdGNoKSk7CisKKyAgICBWYWx1ZSogY29kZVBvaW50ZXJWYWx1ZSA9CisgICAgICAg
IGRpc3BhdGNoLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2lu
KCksIGNvZGVQb2ludGVyKTsKKyAgICBQYXRjaHBvaW50VmFsdWUqIHBvbHlKdW1wID0gZGlzcGF0
Y2gtPmFwcGVuZE5ldzxQYXRjaHBvaW50VmFsdWU+KHByb2MsIFZvaWQsIE9yaWdpbigpKTsKKyAg
ICBwb2x5SnVtcC0+ZWZmZWN0cy50ZXJtaW5hbCA9IHRydWU7CisgICAgcG9seUp1bXAtPmFwcGVu
ZFNvbWVSZWdpc3Rlcihjb2RlUG9pbnRlclZhbHVlKTsKKyAgICBkaXNwYXRjaC0+YXBwZW5kU3Vj
Y2Vzc29yKEZyZXF1ZW50ZWRCbG9jayhhZGRUb0RhdGFQb2ludGVyKSk7CisgICAgZGlzcGF0Y2gt
PmFwcGVuZFN1Y2Nlc3NvcihGcmVxdWVudGVkQmxvY2soYWRkVG9Db2RlUG9pbnRlcikpOworICAg
IGRpc3BhdGNoLT5hcHBlbmRTdWNjZXNzb3IoRnJlcXVlbnRlZEJsb2NrKGFkZFRvRGF0YSkpOwor
ICAgIGRpc3BhdGNoLT5hcHBlbmRTdWNjZXNzb3IoRnJlcXVlbnRlZEJsb2NrKHByaW50KSk7Cisg
ICAgZGlzcGF0Y2gtPmFwcGVuZFN1Y2Nlc3NvcihGcmVxdWVudGVkQmxvY2soc3RvcCkpOworICAg
IAorICAgIC8vIE91ciAib3Bjb2RlcyIuIFRoZXkgd2lsbCBoYXZlIG1lYW5pbmcgb25jZSB3ZSBj
b21waWxlLgorICAgIGludHB0cl90IEFkZERQID0gMDsKKyAgICBpbnRwdHJfdCBBZGRDUCA9IDA7
CisgICAgaW50cHRyX3QgQWRkID0gMDsKKyAgICBpbnRwdHJfdCBQcmludCA9IDA7CisgICAgaW50
cHRyX3QgU3RvcCA9IDA7CisgICAgcG9seUp1bXAtPnNldEdlbmVyYXRvcigKKyAgICAgICAgWyZd
IChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJiBwYXJh
bXMpIHsKKyAgICAgICAgICAgIGppdC5qdW1wKENDYWxsSGVscGVyczo6QWRkcmVzcyhwYXJhbXNb
MF0uZ3ByKCkpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgVmVjdG9yPEJveDxDQ2FsbEhl
bHBlcnM6OkxhYmVsPj4gbGFiZWxzID0gcGFyYW1zLnN1Y2Nlc3NvckxhYmVscygpOworICAgICAg
ICAgICAgCisgICAgICAgICAgICBqaXQuYWRkTGlua1Rhc2soCisgICAgICAgICAgICAgICAgWyYs
IGxhYmVsc10gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsKKyAgICAgICAgICAgICAgICAgICAg
YXV0byBnZXQgPSBbJl0gKHNpemVfdCBpbmRleCkgLT4gaW50cHRyX3QgeworICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxpbnRwdHJfdD4oCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGlua0J1ZmZlci5sb2NhdGlvbk9mKCpsYWJlbHNbaW5kZXhdKS5leGVj
dXRhYmxlQWRkcmVzcygpKTsKKyAgICAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAg
ICAgICAgCisgICAgICAgICAgICAgICAgICAgIEFkZERQID0gZ2V0KDApOworICAgICAgICAgICAg
ICAgICAgICBBZGRDUCA9IGdldCgxKTsKKyAgICAgICAgICAgICAgICAgICAgQWRkID0gZ2V0KDIp
OworICAgICAgICAgICAgICAgICAgICBQcmludCA9IGdldCgzKTsKKyAgICAgICAgICAgICAgICAg
ICAgU3RvcCA9IGdldCg0KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAg
CisgICAgLy8gQWRkRFAgPG9wZXJhbmQ+OiBhZGRzIDxvcGVyYW5kPiB0byBEUC4KKyAgICBjb2Rl
UG9pbnRlclZhbHVlID0KKyAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhcmlh
YmxlVmFsdWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlcik7CisgICAgYWRk
VG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAgICAgICBwcm9jLCBT
ZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRlciwKKyAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBw
ZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEIzOjpBZGQsIE9yaWdpbigpLAorICAg
ICAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHByb2Ms
IEIzOjpHZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRlciksCisgICAgICAgICAgICBhZGRUb0RhdGFQ
b2ludGVyLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgICAgIHByb2MsIE11bCwgT3Jp
Z2luKCksCisgICAgICAgICAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PE1lbW9y
eVZhbHVlPigKKyAgICAgICAgICAgICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwg
T3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUsIHNpemVvZihpbnRwdHJfdCkpLAorICAgICAgICAg
ICAgICAgIGFkZFRvRGF0YVBvaW50ZXItPmFwcGVuZEludENvbnN0YW50KAorICAgICAgICAgICAg
ICAgICAgICBwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6ZW9mKGludHB0cl90KSkp
KSk7CisgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAg
ICAgICBwcm9jLCBTZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlciwKKyAgICAgICAgYWRkVG9EYXRh
UG9pbnRlci0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEIzOjpBZGQsIE9y
aWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLAorICAgICAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+
YXBwZW5kSW50Q29uc3RhbnQoCisgICAgICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksIHBvaW50
ZXJUeXBlKCksIHNpemVvZihpbnRwdHJfdCkgKiAyKSkpOworICAgIGFkZFRvRGF0YVBvaW50ZXIt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJs
b2NrKGRpc3BhdGNoKSk7CisgICAgCisgICAgLy8gQWRkQ1AgPG9wZXJhbmQ+OiBhZGRzIDxvcGVy
YW5kPiB0byBDUCBpZiB0aGUgY3VycmVudCB2YWx1ZSBhdCBEUCBpcyBub24temVybywgb3RoZXJ3
aXNlCisgICAgLy8gZmFsbHMgdGhyb3VnaCBub3JtYWxseS4KKyAgICBjb2RlUG9pbnRlclZhbHVl
ID0KKyAgICAgICAgYWRkVG9Db2RlUG9pbnRlci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHBy
b2MsIEIzOjpHZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlcik7CisgICAgVmFsdWUqIGRhdGFQb2lu
dGVyVmFsdWUgPQorICAgICAgICBhZGRUb0NvZGVQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVW
YWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGRhdGFQb2ludGVyKTsKKyAgICBhZGRUb0Nv
ZGVQb2ludGVyLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCisgICAgICAgIHByb2MsIEJyYW5jaCwg
T3JpZ2luKCksCisgICAgICAgIGFkZFRvQ29kZVBvaW50ZXItPmFwcGVuZE5ldzxNZW1vcnlWYWx1
ZT4oCisgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwgZGF0
YVBvaW50ZXJWYWx1ZSksCisgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhhZGRUb0NvZGVQb2ludGVy
VGFrZW4pLCBGcmVxdWVudGVkQmxvY2soYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuKSk7CisgICAg
YWRkVG9Db2RlUG9pbnRlclRha2VuLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAg
IHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyLAorICAgICAgICBhZGRUb0NvZGVQb2lu
dGVyVGFrZW4tPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBCMzo6QWRkLCBP
cmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwKKyAgICAgICAgICAgIGFkZFRvQ29kZVBvaW50ZXJU
YWtlbi0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgICAgICBwcm9jLCBNdWwsIE9yaWdp
bigpLAorICAgICAgICAgICAgICAgIGFkZFRvQ29kZVBvaW50ZXJUYWtlbi0+YXBwZW5kTmV3PE1l
bW9yeVZhbHVlPigKKyAgICAgICAgICAgICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5cGUo
KSwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUsIHNpemVvZihpbnRwdHJfdCkpLAorICAgICAg
ICAgICAgICAgIGFkZFRvQ29kZVBvaW50ZXJUYWtlbi0+YXBwZW5kSW50Q29uc3RhbnQoCisgICAg
ICAgICAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLCBwb2ludGVyVHlwZSgpLCBzaXplb2YoaW50
cHRyX3QpKSkpKTsKKyAgICBhZGRUb0NvZGVQb2ludGVyVGFrZW4tPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRpc3BhdGNoKSk7Cisg
ICAgYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisg
ICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyLAorICAgICAgICBhZGRUb0Nv
ZGVQb2ludGVyTm90VGFrZW4tPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBC
Mzo6QWRkLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwKKyAgICAgICAgICAgIGFkZFRvQ29k
ZVBvaW50ZXJOb3RUYWtlbi0+YXBwZW5kSW50Q29uc3RhbnQoCisgICAgICAgICAgICAgICAgcHJv
YywgT3JpZ2luKCksIHBvaW50ZXJUeXBlKCksIHNpemVvZihpbnRwdHJfdCkgKiAyKSkpOworICAg
IGFkZFRvQ29kZVBvaW50ZXJOb3RUYWtlbi0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAorICAgICAg
ICBwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRpc3BhdGNoKSk7CisKKyAg
ICAvLyBBZGQgPG9wZXJhbmQ+OiBhZGRzIDxvcGVyYW5kPiB0byB0aGUgc2xvdCBwb2ludGVkIHRv
IGJ5IERQLgorICAgIGNvZGVQb2ludGVyVmFsdWUgPSBhZGRUb0RhdGEtPmFwcGVuZE5ldzxWYXJp
YWJsZVZhbHVlPihwcm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIpOworICAgIGRh
dGFQb2ludGVyVmFsdWUgPSBhZGRUb0RhdGEtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPihwcm9j
LCBCMzo6R2V0LCBPcmlnaW4oKSwgZGF0YVBvaW50ZXIpOworICAgIGFkZFRvRGF0YS0+YXBwZW5k
TmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgcHJvYywgU3RvcmUsIE9yaWdpbigpLAorICAgICAg
ICBhZGRUb0RhdGEtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBCMzo6QWRk
LCBPcmlnaW4oKSwKKyAgICAgICAgICAgIGFkZFRvRGF0YS0+YXBwZW5kTmV3PE1lbW9yeVZhbHVl
PigKKyAgICAgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwg
ZGF0YVBvaW50ZXJWYWx1ZSksCisgICAgICAgICAgICBhZGRUb0RhdGEtPmFwcGVuZE5ldzxNZW1v
cnlWYWx1ZT4oCisgICAgICAgICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3Jp
Z2luKCksIGNvZGVQb2ludGVyVmFsdWUsIHNpemVvZihpbnRwdHJfdCkpKSwKKyAgICAgICAgZGF0
YVBvaW50ZXJWYWx1ZSk7CisgICAgYWRkVG9EYXRhLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4o
CisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyLAorICAgICAgICBhZGRU
b0RhdGEtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBCMzo6QWRkLCBPcmln
aW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwKKyAgICAgICAgICAgIGFkZFRvRGF0YS0+YXBwZW5kSW50
Q29uc3RhbnQocHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBlKCksIHNpemVvZihpbnRwdHJfdCkg
KiAyKSkpOworICAgIGFkZFRvRGF0YS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAs
IE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZGlzcGF0Y2gpKTsKKyAgICAKKyAgICAvLyBQcmlu
dDogInByaW50cyIgdGhlIHZhbHVlIHBvaW50ZWQgdG8gYnkgRFAuIFdoYXQgdGhpcyBhY3R1YWxs
eSBtZWFucyBpcyB0aGF0IHRoZSB2YWx1ZSBpcworICAgIC8vIGFwcGVuZGVkIHRvIHRoZSBzdHJl
YW0gdmVjdG9yIGJ5IHRoZSB0aHJlYWRlZEludGVycHJldGVyUHJpbnQgZnVuY3Rpb24uCisgICAg
Y29kZVBvaW50ZXJWYWx1ZSA9IHByaW50LT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywg
QjM6OkdldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyKTsKKyAgICBkYXRhUG9pbnRlclZhbHVlID0g
cHJpbnQtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPihwcm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwg
ZGF0YVBvaW50ZXIpOworICAgIHByaW50LT5hcHBlbmROZXc8Q0NhbGxWYWx1ZT4oCisgICAgICAg
IHByb2MsIFZvaWQsIE9yaWdpbigpLAorICAgICAgICBwcmludC0+YXBwZW5kTmV3PENvbnN0UHRy
VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksIGJpdHdpc2VfY2FzdDx2b2lkKj4o
dGhyZWFkZWRJbnRlcnByZXRlclByaW50KSksCisgICAgICAgIGNvbnRleHQsCisgICAgICAgIHBy
aW50LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9y
aWdpbigpLCBkYXRhUG9pbnRlclZhbHVlKSk7CisgICAgcHJpbnQtPmFwcGVuZE5ldzxWYXJpYWJs
ZVZhbHVlPigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIsCisgICAg
ICAgIHByaW50LT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgQjM6OkFkZCwg
T3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUsCisgICAgICAgICAgICBwcmludC0+YXBwZW5kSW50
Q29uc3RhbnQocHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBlKCksIHNpemVvZihpbnRwdHJfdCkp
KSk7CisgICAgcHJpbnQtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4o
KSwgRnJlcXVlbnRlZEJsb2NrKGRpc3BhdGNoKSk7CisgICAgCisgICAgLy8gU3RvcDogcmV0dXJu
cy4KKyAgICBzdG9wLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCisgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCisgICAgICAgIHN0b3AtPmFwcGVuZEludENvbnN0YW50KHByb2MsIE9yaWdp
bigpLCBwb2ludGVyVHlwZSgpLCAwKSk7CisgICAgCisgICAgYXV0byBpbnRlcnByZXRlciA9IGNv
bXBpbGUocHJvYyk7CisgICAgCisgICAgQ0hFQ0soQWRkRFApOworICAgIENIRUNLKEFkZENQKTsK
KyAgICBDSEVDSyhBZGQpOworICAgIENIRUNLKFByaW50KTsKKyAgICBDSEVDSyhTdG9wKTsKKyAg
ICAKKyAgICBWZWN0b3I8aW50cHRyX3Q+IGRhdGE7CisgICAgVmVjdG9yPGludHB0cl90PiBjb2Rl
OworICAgIFZlY3RvcjxpbnRwdHJfdD4gc3RyZWFtOworICAgIAorICAgIGRhdGEuYXBwZW5kKDEp
OworICAgIGRhdGEuYXBwZW5kKDApOworICAgIAorICAgIGlmIChzaG91bGRCZVZlcmJvc2UoKSkK
KyAgICAgICAgZGF0YUxvZygiZGF0YSA9ICIsIGxpc3REdW1wKGRhdGEpLCAiXG4iKTsKKyAgICAK
KyAgICAvLyBXZSdsbCB3cml0ZSBhIHByb2dyYW0gdGhhdCBwcmludHMgdGhlIG51bWJlcnMgMS4u
MTAwLgorICAgIC8vIFdlIGV4cGVjdCBEUCB0byBwb2ludCBhdCAjMC4KKyAgICBjb2RlLmFwcGVu
ZChBZGRDUCk7CisgICAgY29kZS5hcHBlbmQoNik7IC8vIGdvIHRvIGxvb3AgYm9keQorICAgIAor
ICAgIC8vIExvb3AgcmUtZW50cnk6CisgICAgLy8gV2UgZXhwZWN0IERQIHRvIHBvaW50IGF0ICMx
IGFuZCBmb3IgIzEgdG8gYmUgb2Zmc2V0IGJ5IC0xMDAuCisgICAgY29kZS5hcHBlbmQoQWRkKTsK
KyAgICBjb2RlLmFwcGVuZCgxMDApOworICAgIAorICAgIGNvZGUuYXBwZW5kKEFkZERQKTsKKyAg
ICBjb2RlLmFwcGVuZCgtMSk7CisgICAgCisgICAgLy8gTG9vcCBoZWFkZXI6CisgICAgLy8gV2Ug
ZXhwZWN0IERQIHRvIHBvaW50IGF0ICMwLgorICAgIGNvZGUuYXBwZW5kKEFkZERQKTsKKyAgICBj
b2RlLmFwcGVuZCgxKTsKKyAgICAKKyAgICBjb2RlLmFwcGVuZChBZGQpOworICAgIGNvZGUuYXBw
ZW5kKDEpOworICAgIAorICAgIGNvZGUuYXBwZW5kKFByaW50KTsKKyAgICAKKyAgICBjb2RlLmFw
cGVuZChBZGQpOworICAgIGNvZGUuYXBwZW5kKC0xMDApOworICAgIAorICAgIC8vIFdlIHdhbnQg
dG8gc3RvcCBpZiBpdCdzIHplcm8gYW5kIGNvbnRpbnVlIGlmIGl0J3Mgbm9uLXplcm8uIEFkZENQ
IHRha2VzIHRoZSBicmFuY2ggaWYgaXQncworICAgIC8vIG5vbi16ZXJvLgorICAgIGNvZGUuYXBw
ZW5kKEFkZENQKTsKKyAgICBjb2RlLmFwcGVuZCgtMTEpOyAvLyBnbyB0byBsb29wIHJlLWVudHJ5
LgorICAgIAorICAgIGNvZGUuYXBwZW5kKFN0b3ApOworICAgIAorICAgIGlmIChzaG91bGRCZVZl
cmJvc2UoKSkKKyAgICAgICAgZGF0YUxvZygiY29kZSA9ICIsIGxpc3REdW1wKGNvZGUpLCAiXG4i
KTsKKyAgICAKKyAgICBDSEVDSyghaW52b2tlPGludHB0cl90PigqaW50ZXJwcmV0ZXIsIGRhdGEu
ZGF0YSgpLCBjb2RlLmRhdGEoKSwgJnN0cmVhbSkpOworICAgIAorICAgIENIRUNLKHN0cmVhbS5z
aXplKCkgPT0gMTAwKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgMTAwOyArK2kpCisg
ICAgICAgIENIRUNLKHN0cmVhbVtpXSA9PSBpICsgMSk7CisgICAgCisgICAgaWYgKHNob3VsZEJl
VmVyYm9zZSgpKQorICAgICAgICBkYXRhTG9nKCJzdHJlYW0gPSAiLCBsaXN0RHVtcChzdHJlYW0p
LCAiXG4iKTsKK30KKwogdm9pZCB0ZXN0UmVkdWNlU3RyZW5ndGhDaGVja0JvdHRvbVVzZUluQW5v
dGhlckJsb2NrKCkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKQEAgLTEyMTEwLDcgKzEyMzQ4LDcg
QEAgdm9pZCB0ZXN0UmVkdWNlU3RyZW5ndGhDaGVja0JvdHRvbVVzZUluQQogICAgICAgICAgICAg
aml0LnJldCgpOwogICAgICAgICB9KTsKICAgICBWYWx1ZSogYXJnID0gb25lLT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7
Ci0gICAgb25lLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwg
RnJlcXVlbnRlZEJsb2NrKHR3bykpOworICAgIG9uZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodHdvKSk7CiAgICAgCiAgICAgY2hl
Y2sgPSB0d28tPmFwcGVuZE5ldzxDaGVja1ZhbHVlPigKICAgICAgICAgcHJvYywgQ2hlY2tBZGQs
IE9yaWdpbigpLCBhcmcsCkBAIC0xMjExOSw3ICsxMjM1Nyw3IEBAIHZvaWQgdGVzdFJlZHVjZVN0
cmVuZ3RoQ2hlY2tCb3R0b21Vc2VJbkEKICAgICAgICAgWyZdIChDQ2FsbEhlbHBlcnMmLCBjb25z
dCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7CiAgICAgICAgICAgICBDSEVDSyghIlNob3Vs
ZCBub3QgZXhlY3V0ZSIpOwogICAgICAgICB9KTsKLSAgICB0d28tPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrKTsKKyAgICB0d28tPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVjayk7CiAgICAgCiAgICAg
cHJvYy5yZXNldFJlYWNoYWJpbGl0eSgpOwogICAgIHJlZHVjZVN0cmVuZ3RoKHByb2MpOwpAQCAt
MTIxMzQsMTEgKzEyMzcyLDExIEBAIHZvaWQgdGVzdFJlc2V0UmVhY2hhYmlsaXR5RGFuZ2xpbmdS
ZWZlcmUKICAgICAKICAgICBVcHNpbG9uVmFsdWUqIHVwc2lsb24gPSBvbmUtPmFwcGVuZE5ldzxV
cHNpbG9uVmFsdWU+KAogICAgICAgICBwcm9jLCBPcmlnaW4oKSwgb25lLT5hcHBlbmROZXc8Q29u
c3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpKTsKLSAgICBvbmUtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIE9vcHMsIE9yaWdpbigpKTsKKyAgICBvbmUtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBPb3BzLCBPcmlnaW4oKSk7CiAgICAgCiAgICAgVmFsdWUqIHBoaSA9IHR3
by0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBQaGksIEludDMyLCBPcmlnaW4oKSk7CiAgICAgdXBz
aWxvbi0+c2V0UGhpKHBoaSk7Ci0gICAgdHdvLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBPb3BzLCBPcmlnaW4oKSk7CisgICAgdHdvLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
T29wcywgT3JpZ2luKCkpOwogICAgIAogICAgIHByb2MucmVzZXRSZWFjaGFiaWxpdHkoKTsKICAg
ICB2YWxpZGF0ZShwcm9jKTsKQEAgLTEzNTQ3LDYgKzEzNzg1LDcgQEAgdm9pZCBydW4oY29uc3Qg
Y2hhciogZmlsdGVyKQogICAgIFJVTih0ZXN0U3BpbGxEZWZTbWFsbGVyVGhhblVzZSgpKTsKICAg
ICBSVU4odGVzdFNwaWxsVXNlTGFyZ2VyVGhhbkRlZigpKTsKICAgICBSVU4odGVzdExhdGVSZWdp
c3RlcigpKTsKKyAgICBSVU4odGVzdFRocmVhZGVkSW50ZXJwcmV0ZXIoKSk7CiAgICAgUlVOKHRl
c3RSZWR1Y2VTdHJlbmd0aENoZWNrQm90dG9tVXNlSW5Bbm90aGVyQmxvY2soKSk7CiAgICAgUlVO
KHRlc3RSZXNldFJlYWNoYWJpbGl0eURhbmdsaW5nUmVmZXJlbmNlKCkpOwogCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkFpckNDYWxsU3BlY2lhbC5oIgogI2luY2x1
ZGUgIkIzQmFzaWNCbG9ja1V0aWxzLmgiCisjaW5jbHVkZSAiQjNQcm9jZWR1cmUuaCIKICNpbmNs
dWRlICJCM1N0YWNrU2xvdC5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsgbmFt
ZXNwYWNlIEFpciB7CkBAIC0xMzUsNiArMTM2LDExIEBAIHZvaWQgQ29kZTo6YWRkRmFzdFRtcChU
bXAgdG1wKQogICAgIG1fZmFzdFRtcHMuYWRkKHRtcCk7CiB9CiAKK3ZvaWQqIENvZGU6OmFkZERh
dGFTZWN0aW9uKHNpemVfdCBzaXplKQoreworICAgIHJldHVybiBtX3Byb2MuYWRkRGF0YVNlY3Rp
b24oc2l6ZSk7Cit9CisKIHVuc2lnbmVkIENvZGU6OmpzSGFzaCgpIGNvbnN0CiB7CiAgICAgdW5z
aWduZWQgcmVzdWx0ID0gMDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWly
Q29kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29k
ZS5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fp
ckNvZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkFpclNw
ZWNpYWwuaCIKICNpbmNsdWRlICJBaXJTdGFja1Nsb3QuaCIKICNpbmNsdWRlICJBaXJUbXAuaCIK
KyNpbmNsdWRlICJCM0luZGV4TWFwLmgiCiAjaW5jbHVkZSAiQjNTcGFyc2VDb2xsZWN0aW9uLmgi
CiAjaW5jbHVkZSAiUmVnaXN0ZXJBdE9mZnNldExpc3QuaCIKICNpbmNsdWRlICJTdGFja0FsaWdu
bWVudC5oIgpAQCAtMjAzLDYgKzIwNCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZEZhc3RUbXAo
VG1wKTsKICAgICBib29sIGlzRmFzdFRtcChUbXAgdG1wKSBjb25zdCB7IHJldHVybiBtX2Zhc3RU
bXBzLmNvbnRhaW5zKHRtcCk7IH0KICAgICAKKyAgICB2b2lkKiBhZGREYXRhU2VjdGlvbihzaXpl
X3QpOworICAgIAogICAgIC8vIFRoZSBuYW1lIGhhcyB0byBiZSBhIHN0cmluZyBsaXRlcmFsLCBz
aW5jZSB3ZSBkb24ndCBkbyBhbnkgbWVtb3J5IG1hbmFnZW1lbnQgZm9yIHRoZSBzdHJpbmcuCiAg
ICAgdm9pZCBzZXRMYXN0UGhhc2VOYW1lKGNvbnN0IGNoYXIqIG5hbWUpCiAgICAgewpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDdXN0b20uaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckN1c3RvbS5oCShyZXZpc2lvbiAyMDI4MDkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckN1c3RvbS5oCSh3b3JraW5nIGNv
cHkpCkBAIC04NCwxMCArODQsMTUgQEAgc3RydWN0IFBhdGNoQ3VzdG9tIHsKICAgICB7CiAgICAg
ICAgIHJldHVybiBpbnN0LmFyZ3NbMF0uc3BlY2lhbCgpLT5zaG91bGRUcnlBbGlhc2luZ0RlZihp
bnN0KTsKICAgICB9CisgICAgCisgICAgc3RhdGljIGJvb2wgaXNUZXJtaW5hbChJbnN0JiBpbnN0
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGluc3QuYXJnc1swXS5zcGVjaWFsKCktPmlzVGVybWlu
YWwoaW5zdCk7CisgICAgfQogCiAgICAgc3RhdGljIGJvb2wgaGFzTm9uQXJnTm9uQ29udHJvbEVm
ZmVjdHMoSW5zdCYgaW5zdCkKICAgICB7Ci0gICAgICAgIHJldHVybiBpbnN0LmFyZ3NbMF0uc3Bl
Y2lhbCgpLT5oYXNOb25BcmdOb25Db250cm9sRWZmZWN0cygpOworICAgICAgICByZXR1cm4gaW5z
dC5hcmdzWzBdLnNwZWNpYWwoKS0+aGFzTm9uQXJnTm9uQ29udHJvbEVmZmVjdHMoaW5zdCk7CiAg
ICAgfQogCiAgICAgc3RhdGljIENDYWxsSGVscGVyczo6SnVtcCBnZW5lcmF0ZSgKQEAgLTEzOCw2
ICsxNDMsMTEgQEAgc3RydWN0IENDYWxsQ3VzdG9tIHsKICAgICB7CiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KKyAgICAKKyAgICBzdGF0aWMgYm9vbCBpc1Rlcm1pbmFsKEluc3QmKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KIAogICAgIHN0YXRpYyBib29sIGhhc05v
bkFyZ05vbkNvbnRyb2xFZmZlY3RzKEluc3QmKQogICAgIHsKQEAgLTE5Nyw2ICsyMDcsMTEgQEAg
c3RydWN0IFNodWZmbGVDdXN0b20gewogICAgICAgICB9CiAgICAgfQogCisgICAgc3RhdGljIGJv
b2wgaXNUZXJtaW5hbChJbnN0JikKKyAgICB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
CisKICAgICBzdGF0aWMgYm9vbCBoYXNOb25BcmdOb25Db250cm9sRWZmZWN0cyhJbnN0JikKICAg
ICB7CiAgICAgICAgIHJldHVybiBmYWxzZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyR2VuZXJhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvQWlyR2VuZXJhdGUuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAs
OCArNTAsMTAgQEAKICNpbmNsdWRlICJCM0luZGV4TWFwLmgiCiAjaW5jbHVkZSAiQjNQcm9jZWR1
cmUuaCIKICNpbmNsdWRlICJCM1RpbWluZ1Njb3BlLmgiCisjaW5jbHVkZSAiQjNWYWx1ZUlubGlu
ZXMuaCIKICNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKICNpbmNsdWRlICJEaXNhbGxvd01hY3Jv
U2NyYXRjaFJlZ2lzdGVyVXNhZ2UuaCIKKyNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAKIG5hbWVz
cGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UgQWlyIHsKIApAQCAtMTczLDEyICsx
NzUsMTYgQEAgdm9pZCBnZW5lcmF0ZShDb2RlJiBjb2RlLCBDQ2FsbEhlbHBlcnMmIAogCiAgICAg
R2VuZXJhdGlvbkNvbnRleHQgY29udGV4dDsKICAgICBjb250ZXh0LmNvZGUgPSAmY29kZTsKLSAg
ICBJbmRleE1hcDxCYXNpY0Jsb2NrLCBDQ2FsbEhlbHBlcnM6OkxhYmVsPiBibG9ja0xhYmVscyhj
b2RlLnNpemUoKSk7CisgICAgY29udGV4dC5ibG9ja0xhYmVscy5yZXNpemUoY29kZS5zaXplKCkp
OworICAgIGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiBjb2RlKSB7CisgICAgICAgIGlmIChibG9j
aykKKyAgICAgICAgICAgIGNvbnRleHQuYmxvY2tMYWJlbHNbYmxvY2tdID0gQm94PENDYWxsSGVs
cGVyczo6TGFiZWw+OjpjcmVhdGUoKTsKKyAgICB9CiAgICAgSW5kZXhNYXA8QmFzaWNCbG9jaywg
Q0NhbGxIZWxwZXJzOjpKdW1wTGlzdD4gYmxvY2tKdW1wcyhjb2RlLnNpemUoKSk7CiAKICAgICBh
dXRvIGxpbmsgPSBbJl0gKENDYWxsSGVscGVyczo6SnVtcCBqdW1wLCBCYXNpY0Jsb2NrKiB0YXJn
ZXQpIHsKLSAgICAgICAgaWYgKGJsb2NrTGFiZWxzW3RhcmdldF0uaXNTZXQoKSkgewotICAgICAg
ICAgICAganVtcC5saW5rVG8oYmxvY2tMYWJlbHNbdGFyZ2V0XSwgJmppdCk7CisgICAgICAgIGlm
IChjb250ZXh0LmJsb2NrTGFiZWxzW3RhcmdldF0tPmlzU2V0KCkpIHsKKyAgICAgICAgICAgIGp1
bXAubGlua1RvKCpjb250ZXh0LmJsb2NrTGFiZWxzW3RhcmdldF0sICZqaXQpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAgLTE5NSwxNiArMjAxLDIyIEBAIHZvaWQgZ2VuZXJh
dGUoQ29kZSYgY29kZSwgQ0NhbGxIZWxwZXJzJiAKICAgICB9OwogCiAgICAgZm9yIChCYXNpY0Js
b2NrKiBibG9jayA6IGNvZGUpIHsKKyAgICAgICAgY29udGV4dC5jdXJyZW50QmxvY2sgPSBibG9j
azsKKyAgICAgICAgY29udGV4dC5pbmRleEluQmxvY2sgPSBVSU5UX01BWDsKICAgICAgICAgYmxv
Y2tKdW1wc1tibG9ja10ubGluaygmaml0KTsKLSAgICAgICAgYmxvY2tMYWJlbHNbYmxvY2tdID0g
aml0LmxhYmVsKCk7CisgICAgICAgIENDYWxsSGVscGVyczo6TGFiZWwgbGFiZWwgPSBqaXQubGFi
ZWwoKTsKKyAgICAgICAgKmNvbnRleHQuYmxvY2tMYWJlbHNbYmxvY2tdID0gbGFiZWw7CiAgICAg
ICAgIEFTU0VSVChibG9jay0+c2l6ZSgpID49IDEpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgYmxvY2stPnNpemUoKSAtIDE7ICsraSkgeworICAgICAgICAgICAgY29udGV4dC5p
bmRleEluQmxvY2sgPSBpOwogICAgICAgICAgICAgSW5zdCYgaW5zdCA9IGJsb2NrLT5hdChpKTsK
ICAgICAgICAgICAgIGFkZEl0ZW0oaW5zdCk7CiAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1
bXAganVtcCA9IGluc3QuZ2VuZXJhdGUoaml0LCBjb250ZXh0KTsKICAgICAgICAgICAgIEFTU0VS
VF9VTlVTRUQoanVtcCwgIWp1bXAuaXNTZXQoKSk7CiAgICAgICAgIH0KIAorICAgICAgICBjb250
ZXh0LmluZGV4SW5CbG9jayA9IGJsb2NrLT5zaXplKCkgLSAxOworICAgICAgICAKICAgICAgICAg
aWYgKGJsb2NrLT5sYXN0KCkub3Bjb2RlID09IEp1bXAKICAgICAgICAgICAgICYmIGJsb2NrLT5z
dWNjZXNzb3JCbG9jaygwKSA9PSBjb2RlLmZpbmROZXh0QmxvY2soYmxvY2spKQogICAgICAgICAg
ICAgY29udGludWU7CkBAIC0yMjgsMjYgKzI0MCwzMCBAQCB2b2lkIGdlbmVyYXRlKENvZGUmIGNv
ZGUsIENDYWxsSGVscGVycyYgCiAgICAgICAgICAgICBhZGRJdGVtKGJsb2NrLT5sYXN0KCkpOwog
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KLQorICAgICAgICAKICAgICAgICAgQ0Nh
bGxIZWxwZXJzOjpKdW1wIGp1bXAgPSBibG9jay0+bGFzdCgpLmdlbmVyYXRlKGppdCwgY29udGV4
dCk7Ci0gICAgICAgIHN3aXRjaCAoYmxvY2stPm51bVN1Y2Nlc3NvcnMoKSkgewotICAgICAgICBj
YXNlIDA6Ci0gICAgICAgICAgICBBU1NFUlQoIWp1bXAuaXNTZXQoKSk7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSAxOgotICAgICAgICAgICAgbGluayhqdW1wLCBibG9jay0+c3Vj
Y2Vzc29yQmxvY2soMCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgMjoKLSAg
ICAgICAgICAgIGxpbmsoanVtcCwgYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDApKTsKLSAgICAgICAg
ICAgIGlmIChibG9jay0+c3VjY2Vzc29yQmxvY2soMSkgIT0gY29kZS5maW5kTmV4dEJsb2NrKGJs
b2NrKSkKLSAgICAgICAgICAgICAgICBsaW5rKGppdC5qdW1wKCksIGJsb2NrLT5zdWNjZXNzb3JC
bG9jaygxKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAg
ICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgLy8gVGhlIGp1bXAgd29uJ3QgYmUgc2V0IGZvciBwYXRjaHBvaW50cy4gSXQgd29uJ3Qg
YmUgc2V0IGZvciBPb3BzIGJlY2F1c2UgdGhlbiBpdCB3b24ndCBoYXZlCisgICAgICAgIC8vIGFu
eSBzdWNjZXNzb3JzLgorICAgICAgICBpZiAoanVtcC5pc1NldCgpKSB7CisgICAgICAgICAgICBz
d2l0Y2ggKGJsb2NrLT5udW1TdWNjZXNzb3JzKCkpIHsKKyAgICAgICAgICAgIGNhc2UgMToKKyAg
ICAgICAgICAgICAgICBsaW5rKGp1bXAsIGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKSk7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICAgICAg
bGluayhqdW1wLCBibG9jay0+c3VjY2Vzc29yQmxvY2soMCkpOworICAgICAgICAgICAgICAgIGlm
IChibG9jay0+c3VjY2Vzc29yQmxvY2soMSkgIT0gY29kZS5maW5kTmV4dEJsb2NrKGJsb2NrKSkK
KyAgICAgICAgICAgICAgICAgICAgbGluayhqaXQuanVtcCgpLCBibG9jay0+c3VjY2Vzc29yQmxv
Y2soMSkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGFkZEl0ZW0oYmxv
Y2stPmxhc3QoKSk7CiAgICAgfQorICAgIAorICAgIGNvbnRleHQuY3VycmVudEJsb2NrID0gbnVs
bHB0cjsKKyAgICBjb250ZXh0LmluZGV4SW5CbG9jayA9IFVJTlRfTUFYOwogCiAgICAgcGNUb09y
aWdpbk1hcC5hcHBlbmRJdGVtKGppdC5sYWJlbCgpLCBPcmlnaW4oKSk7CiAgICAgLy8gRklYTUU6
IE1ha2UgbGF0ZSBwYXRocyBoYXZlIE9yaWdpbnM6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNTM2ODkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyR2VuZXJhdGlvbkNvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL0FpckdlbmVyYXRpb25Db250ZXh0LmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGlvbkNvbnRleHQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0yOCwxNCArMjgsMTQgQEAKIAogI2lmIEVOQUJMRShCM19KSVQpCiAKKyNpbmNsdWRl
ICJBaXJCYXNpY0Jsb2NrLmgiCisjaW5jbHVkZSAiQjNJbmRleE1hcC5oIgorI2luY2x1ZGUgIkND
YWxsSGVscGVycy5oIgorI2luY2x1ZGUgPHd0Zi9Cb3guaD4KICNpbmNsdWRlIDx3dGYvU2hhcmVk
VGFzay5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAotbmFtZXNwYWNlIEpTQyB7Ci0KLWNs
YXNzIENDYWxsSGVscGVyczsKLQotbmFtZXNwYWNlIEIzIHsgbmFtZXNwYWNlIEFpciB7CituYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsgbmFtZXNwYWNlIEFpciB7CiAKIGNsYXNzIENvZGU7
CiAKQEAgLTQ0LDcgKzQ0LDEwIEBAIHN0cnVjdCBHZW5lcmF0aW9uQ29udGV4dCB7CiAgICAgdHlw
ZWRlZiBTaGFyZWRUYXNrPExhdGVQYXRoRnVuY3Rpb24+IExhdGVQYXRoOwogCiAgICAgVmVjdG9y
PFJlZlB0cjxMYXRlUGF0aD4+IGxhdGVQYXRoczsKLSAgICBDb2RlKiBjb2RlOworICAgIEluZGV4
TWFwPEJhc2ljQmxvY2ssIEJveDxDQ2FsbEhlbHBlcnM6OkxhYmVsPj4gYmxvY2tMYWJlbHM7Cisg
ICAgQmFzaWNCbG9jayogY3VycmVudEJsb2NrIHsgbnVsbHB0ciB9OworICAgIHVuc2lnbmVkIGlu
ZGV4SW5CbG9jayB7IFVJTlRfTUFYIH07CisgICAgQ29kZSogY29kZSB7IG51bGxwdHIgfTsKIH07
CiAKIH0gfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzOjpBaXIKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvQWlySW5zdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvQWlySW5zdC5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvYWlyL0Fpckluc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMTYzLDYgKzE2Myw5
IEBAIHB1YmxpYzoKICAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IG9w
Y29kZV9nZW5lcmF0b3IucmIuCiAgICAgYm9vbCBhZG1pdHNTdGFjayh1bnNpZ25lZCBhcmdJbmRl
eCk7CiAgICAgYm9vbCBhZG1pdHNTdGFjayhBcmcmKTsKKyAgICAKKyAgICAvLyBEZWZpbmVkIGJ5
IG9wY29kZV9nZW5lcmF0b3IucmIuCisgICAgYm9vbCBpc1Rlcm1pbmFsKCk7CiAKICAgICAvLyBS
ZXR1cm5zIHRydWUgaWYgdGhpcyBpbnN0cnVjdGlvbiBjYW4gaGF2ZSBhbnkgZWZmZWN0cyBvdGhl
ciB0aGFuIGNvbnRyb2wgZmxvdyBvciBhcmd1bWVudHMuCiAgICAgYm9vbCBoYXNOb25BcmdOb25D
b250cm9sRWZmZWN0cygpOwpAQCAtMTc0LDYgKzE3Nyw5IEBAIHB1YmxpYzoKIAogICAgIC8vIFRl
bGxzIHlvdSBpZiB0aGlzIG9wZXJhdGlvbiBoYXMgYXJnIGVmZmVjdHMuCiAgICAgYm9vbCBoYXNB
cmdFZmZlY3RzKCk7CisgICAgCisgICAgLy8gVGVsbHMgeW91IGlmIHRoaXMgb3BlcmF0aW9uIGhh
cyBub24tY29udHJvbCBlZmZlY3RzLgorICAgIGJvb2wgaGFzTm9uQ29udHJvbEVmZmVjdHMoKSB7
IHJldHVybiBoYXNOb25BcmdOb25Db250cm9sRWZmZWN0cygpIHx8IGhhc0FyZ0VmZmVjdHMoKTsg
fQogCiAgICAgLy8gR2VuZXJhdGUgc29tZSBjb2RlIGZvciB0aGlzIGluc3RydWN0aW9uLiBUaGlz
IGlzLCBsaWtlLCBsaXRlcmFsbHkgb3VyIGJhY2tlbmQuIElmIHRoaXMgaXMgdGhlCiAgICAgLy8g
dGVybWluYWwsIGl0IHJldHVybnMgdGhlIGp1bXAgdGhhdCBuZWVkcyB0byBiZSBsaW5rZWQgZm9y
IHRoZSAidGhlbiIgY2FzZSwgd2l0aCB0aGUgImVsc2UiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvYWlyL0FpclNpbXBsaWZ5Q0ZHLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpclNpbXBsaWZ5Q0ZHLmNwcAkocmV2aXNpb24gMjAyODA5KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJTaW1wbGlmeUNGRy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTk1LDMzICs5NSwzMiBAQCBib29sIHNpbXBsaWZ5Q0ZHKENvZGUmIGNvZGUp
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAvLyBOb3cg
Y2hlY2sgaWYgdGhlIGJsb2NrJ3MgdGVybWluYWwgY2FuIGJlIHJlcGxhY2VkIHdpdGggYSBqdW1w
LgotICAgICAgICAgICAgaWYgKGJsb2NrLT5udW1TdWNjZXNzb3JzKCkgPiAxKSB7Ci0gICAgICAg
ICAgICAgICAgLy8gVGhlIHRlcm1pbmFsIG11c3Qgbm90IGhhdmUgd2VpcmQgZWZmZWN0cy4KLSAg
ICAgICAgICAgICAgICBpZiAoIWJsb2NrLT5sYXN0KCkuaGFzQXJnRWZmZWN0cygpCi0gICAgICAg
ICAgICAgICAgICAgICYmICFibG9jay0+bGFzdCgpLmhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3Rz
KCkpIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gQWxsIG9mIHRoZSBzdWNjZXNzb3JzIG11c3Qg
YmUgdGhlIHNhbWUuCi0gICAgICAgICAgICAgICAgICAgIGJvb2wgYWxsU2FtZSA9IHRydWU7Ci0g
ICAgICAgICAgICAgICAgICAgIEJhc2ljQmxvY2sqIGZpcnN0U3VjY2Vzc29yID0gYmxvY2stPnN1
Y2Nlc3NvckJsb2NrKDApOwotICAgICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAx
OyBpIDwgYmxvY2stPm51bVN1Y2Nlc3NvcnMoKTsgKytpKSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBpZiAoYmxvY2stPnN1Y2Nlc3NvckJsb2NrKGkpICE9IGZpcnN0U3VjY2Vzc29yKSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsU2FtZSA9IGZhbHNlOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGlmIChhbGxTYW1lKSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBkYXRhTG9nKCJDaGFuZ2luZyAiLCBwb2ludGVyRHVtcChibG9jayksICIncyB0ZXJtaW5h
bCB0byBhIEp1bXAuXG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLT5sYXN0KCkg
PSBJbnN0KEp1bXAsIGJsb2NrLT5sYXN0KCkub3JpZ2luKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGJsb2NrLT5zdWNjZXNzb3JzKCkucmVzaXplKDEpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgYmxvY2stPnN1Y2Nlc3NvcnMoKVswXS5mcmVxdWVuY3koKSA9IEZyZXF1ZW5jeUNsYXNzOjpO
b3JtYWw7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAg
ICAgIC8vIE5vdyBjaGVjayBpZiB0aGUgYmxvY2sncyB0ZXJtaW5hbCBjYW4gYmUgcmVwbGFjZWQg
d2l0aCBhIGp1bXAuIFRoZSB0ZXJtaW5hbCBtdXN0IG5vdAorICAgICAgICAgICAgLy8gaGF2ZSB3
ZWlyZCBlZmZlY3RzLgorICAgICAgICAgICAgaWYgKGJsb2NrLT5udW1TdWNjZXNzb3JzKCkgPiAx
IAorICAgICAgICAgICAgICAgICYmICFibG9jay0+bGFzdCgpLmhhc05vbkNvbnRyb2xFZmZlY3Rz
KCkpIHsKKyAgICAgICAgICAgICAgICAvLyBBbGwgb2YgdGhlIHN1Y2Nlc3NvcnMgbXVzdCBiZSB0
aGUgc2FtZS4KKyAgICAgICAgICAgICAgICBib29sIGFsbFNhbWUgPSB0cnVlOworICAgICAgICAg
ICAgICAgIEJhc2ljQmxvY2sqIGZpcnN0U3VjY2Vzc29yID0gYmxvY2stPnN1Y2Nlc3NvckJsb2Nr
KDApOworICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDE7IGkgPCBibG9jay0+bnVt
U3VjY2Vzc29ycygpOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGJsb2NrLT5zdWNj
ZXNzb3JCbG9jayhpKSAhPSBmaXJzdFN1Y2Nlc3NvcikgeworICAgICAgICAgICAgICAgICAgICAg
ICAgYWxsU2FtZSA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYg
KGFsbFNhbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAg
ICAgICAgICAgICAgICBkYXRhTG9nKCJDaGFuZ2luZyAiLCBwb2ludGVyRHVtcChibG9jayksICIn
cyB0ZXJtaW5hbCB0byBhIEp1bXAuXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgYmxvY2stPmxh
c3QoKSA9IEluc3QoSnVtcCwgYmxvY2stPmxhc3QoKS5vcmlnaW4pOworICAgICAgICAgICAgICAg
ICAgICBibG9jay0+c3VjY2Vzc29ycygpLnJlc2l6ZSgxKTsKKyAgICAgICAgICAgICAgICAgICAg
YmxvY2stPnN1Y2Nlc3NvcnMoKVswXS5mcmVxdWVuY3koKSA9IEZyZXF1ZW5jeUNsYXNzOjpOb3Jt
YWw7CisgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlOworICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgLy8gRmluYWxseSBoYW5kbGUganVtcHMg
dG8gYSBibG9jayB3aXRoIG9uZSBwcmVkZWNlc3Nvci4KLSAgICAgICAgICAgIGlmIChibG9jay0+
bnVtU3VjY2Vzc29ycygpID09IDEpIHsKKyAgICAgICAgICAgIGlmIChibG9jay0+bnVtU3VjY2Vz
c29ycygpID09IDEKKyAgICAgICAgICAgICAgICAmJiAhYmxvY2stPmxhc3QoKS5oYXNOb25Db250
cm9sRWZmZWN0cygpKSB7CiAgICAgICAgICAgICAgICAgQmFzaWNCbG9jayogc3VjY2Vzc29yID0g
YmxvY2stPnN1Y2Nlc3NvckJsb2NrKDApOwogICAgICAgICAgICAgICAgIGlmIChzdWNjZXNzb3Ig
IT0gYmxvY2sgJiYgc3VjY2Vzc29yLT5udW1QcmVkZWNlc3NvcnMoKSA9PSAxKSB7CiAgICAgICAg
ICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHN1Y2Nlc3Nvci0+cHJlZGVjZXNzb3IoMCkgPT0g
YmxvY2spOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJTcGVjaWFsLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclNwZWNpYWwu
Y3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fp
clNwZWNpYWwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU1LDcgKzU1LDEyIEBAIE9wdGlvbmFsPHVuc2ln
bmVkPiBTcGVjaWFsOjpzaG91bGRUcnlBbGkKICAgICByZXR1cm4gTnVsbG9wdDsKIH0KIAotYm9v
bCBTcGVjaWFsOjpoYXNOb25BcmdOb25Db250cm9sRWZmZWN0cygpCitib29sIFNwZWNpYWw6Omlz
VGVybWluYWwoSW5zdCYpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFNwZWNpYWw6
Omhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKEluc3QmKQogewogICAgIHJldHVybiB0cnVlOwog
fQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJTcGVjaWFsLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJTcGVjaWFsLmgJKHJldmlz
aW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyU3BlY2lhbC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUt
MjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTg3LDkgKzg3LDEyIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgY29u
c3QgUmVnaXN0ZXJTZXQmIGV4dHJhRWFybHlDbG9iYmVyZWRSZWdzKEluc3QmKSA9IDA7CiAgICAg
dmlydHVhbCBjb25zdCBSZWdpc3RlclNldCYgZXh0cmFDbG9iYmVyZWRSZWdzKEluc3QmKSA9IDA7
CisgICAgCisgICAgLy8gQnkgZGVmYXVsdCwgdGhpcyByZXR1cm5zIGZhbHNlLgorICAgIHZpcnR1
YWwgYm9vbCBpc1Rlcm1pbmFsKEluc3QmKTsKIAogICAgIC8vIEJ5IGRlZmF1bHQsIHRoaXMgcmV0
dXJucyB0cnVlLgotICAgIHZpcnR1YWwgYm9vbCBoYXNOb25BcmdOb25Db250cm9sRWZmZWN0cygp
OworICAgIHZpcnR1YWwgYm9vbCBoYXNOb25BcmdOb25Db250cm9sRWZmZWN0cyhJbnN0Jik7CiAK
ICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKICAgICB2b2lkIGRlZXBEdW1wKFBy
aW50U3RyZWFtJikgY29uc3Q7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fp
clZhbGlkYXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0FpclZhbGlkYXRlLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci9BaXJWYWxpZGF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNzksOSArNzksOSBAQCBw
dWJsaWM6CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIFZBTElEQVRFKGluc3Qu
aXNWYWxpZEZvcm0oKSwgKCJBdCAiLCBpbnN0LCAiIGluICIsICpibG9jaykpOwogICAgICAgICAg
ICAgICAgIGlmIChpbnN0SW5kZXggPT0gYmxvY2stPnNpemUoKSAtIDEpCi0gICAgICAgICAgICAg
ICAgICAgIFZBTElEQVRFKGlzVGVybWluYWwoaW5zdC5vcGNvZGUpLCAoIkF0ICIsIGluc3QsICIg
aW4gIiwgKmJsb2NrKSk7CisgICAgICAgICAgICAgICAgICAgIFZBTElEQVRFKGluc3QuaXNUZXJt
aW5hbCgpLCAoIkF0ICIsIGluc3QsICIgaW4gIiwgKmJsb2NrKSk7CiAgICAgICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgICAgICAgICBWQUxJREFURSghaXNUZXJtaW5hbChpbnN0Lm9wY29k
ZSksICgiQXQgIiwgaW5zdCwgIiBpbiAiLCAqYmxvY2spKTsKKyAgICAgICAgICAgICAgICAgICAg
VkFMSURBVEUoIWluc3QuaXNUZXJtaW5hbCgpLCAoIkF0ICIsIGluc3QsICIgaW4gIiwgKmJsb2Nr
KSk7CiAKICAgICAgICAgICAgICAgICAvLyBmb3JFYWNoQXJnIG11c3QgcmV0dXJuIEFyZyYncyB0
aGF0IHBvaW50IGludG8gdGhlIGFyZ3MgYXJyYXkuCiAgICAgICAgICAgICAgICAgaW5zdC5mb3JF
YWNoQXJnKApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVfZ2VuZXJh
dG9yLnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvb3Bjb2Rl
X2dlbmVyYXRvci5yYgkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJiCSh3b3JraW5nIGNvcHkpCkBAIC03MTQsNyArNzE0
LDcgQEAgd3JpdGVIKCJPcGNvZGVVdGlscyIpIHsKICAgICBvdXRwLnB1dHMgInJldHVybiBmYWxz
ZTsgIgogICAgIG91dHAucHV0cyAifSIKIAotICAgIG91dHAucHV0cyAiaW5saW5lIGJvb2wgaXNU
ZXJtaW5hbChPcGNvZGUgb3Bjb2RlKSIKKyAgICBvdXRwLnB1dHMgImlubGluZSBib29sIGlzRGVm
aW5pdGVseVRlcm1pbmFsKE9wY29kZSBvcGNvZGUpIgogICAgIG91dHAucHV0cyAieyIKICAgICBv
dXRwLnB1dHMgInN3aXRjaCAob3Bjb2RlKSB7IgogICAgIGRpZEZpbmRUZXJtaW5hbHMgPSBmYWxz
ZQpAQCAtOTc2LDYgKzk3NiwzMiBAQCB3cml0ZUgoIk9wY29kZUdlbmVyYXRlZCIpIHsKICAgICBv
dXRwLnB1dHMgInJldHVybiBmYWxzZTsiCiAgICAgb3V0cC5wdXRzICJ9IgogCisgICAgb3V0cC5w
dXRzICJib29sIEluc3Q6OmlzVGVybWluYWwoKSIKKyAgICBvdXRwLnB1dHMgInsiCisgICAgb3V0
cC5wdXRzICJzd2l0Y2ggKG9wY29kZSkgeyIKKyAgICBmb3VuZFRydWUgPSBmYWxzZQorICAgICRv
cGNvZGVzLnZhbHVlcy5lYWNoIHsKKyAgICAgICAgfCBvcGNvZGUgfAorICAgICAgICBpZiBvcGNv
ZGUuYXR0cmlidXRlc1s6dGVybWluYWxdCisgICAgICAgICAgICBvdXRwLnB1dHMgImNhc2UgI3tv
cGNvZGUubmFtZX06IgorICAgICAgICAgICAgZm91bmRUcnVlID0gdHJ1ZQorICAgICAgICBlbmQK
KyAgICB9CisgICAgaWYgZm91bmRUcnVlCisgICAgICAgIG91dHAucHV0cyAicmV0dXJuIHRydWU7
IgorICAgIGVuZAorICAgICRvcGNvZGVzLnZhbHVlcy5lYWNoIHsKKyAgICAgICAgfCBvcGNvZGUg
fAorICAgICAgICBpZiBvcGNvZGUuY3VzdG9tCisgICAgICAgICAgICBvdXRwLnB1dHMgImNhc2Ug
I3tvcGNvZGUubmFtZX06IgorICAgICAgICAgICAgb3V0cC5wdXRzICJyZXR1cm4gI3tvcGNvZGUu
bmFtZX1DdXN0b206OmlzVGVybWluYWwoKnRoaXMpOyIKKyAgICAgICAgZW5kCisgICAgfQorICAg
IG91dHAucHV0cyAiZGVmYXVsdDoiCisgICAgb3V0cC5wdXRzICJyZXR1cm4gZmFsc2U7IgorICAg
IG91dHAucHV0cyAifSIKKyAgICBvdXRwLnB1dHMgIn0iCisgICAgCiAgICAgb3V0cC5wdXRzICJi
b29sIEluc3Q6Omhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKCkiCiAgICAgb3V0cC5wdXRzICJ7
IgogICAgIG91dHAucHV0cyAic3dpdGNoIChvcGNvZGUpIHsiCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMwLDcgKzMwLDExIEBACiAKICNpbmNsdWRlICJBaXJHZW5lcmF0aW9uQ29udGV4
dC5oIgogI2luY2x1ZGUgIkFsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZS5oIgorI2luY2x1
ZGUgIkIzQ2hlY2tWYWx1ZS5oIgorI2luY2x1ZGUgIkIzUGF0Y2hwb2ludFZhbHVlLmgiCisjaW5j
bHVkZSAiQjNTbG90QmFzZVZhbHVlLmgiCiAjaW5jbHVkZSAiQjNTdGFja21hcEdlbmVyYXRpb25Q
YXJhbXMuaCIKKyNpbmNsdWRlICJCM1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIkNhbGxGcmFt
ZVNodWZmbGVyLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrV2l0aEpJVFR5cGUuaCIKICNpbmNsdWRl
ICJERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oIgpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExPdXRwdXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMT3V0cHV0LmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw4ICsyOCwx
OCBAQAogCiAjaWYgRU5BQkxFKEZUTF9KSVQpCiAKKyNpbmNsdWRlICJCM0FyZ3VtZW50UmVnVmFs
dWUuaCIKKyNpbmNsdWRlICJCM0Jhc2ljQmxvY2tJbmxpbmVzLmgiCisjaW5jbHVkZSAiQjNDQ2Fs
bFZhbHVlLmgiCisjaW5jbHVkZSAiQjNDb25zdDMyVmFsdWUuaCIKKyNpbmNsdWRlICJCM0NvbnN0
UHRyVmFsdWUuaCIKICNpbmNsdWRlICJCM01hdGhFeHRyYXMuaCIKKyNpbmNsdWRlICJCM01lbW9y
eVZhbHVlLmgiCisjaW5jbHVkZSAiQjNTbG90QmFzZVZhbHVlLmgiCiAjaW5jbHVkZSAiQjNTdGFj
a21hcEdlbmVyYXRpb25QYXJhbXMuaCIKKyNpbmNsdWRlICJCM1N3aXRjaFZhbHVlLmgiCisjaW5j
bHVkZSAiQjNVcHNpbG9uVmFsdWUuaCIKKyNpbmNsdWRlICJCM1ZhbHVlSW5saW5lcy5oIgogI2lu
Y2x1ZGUgIlN1cGVyU2FtcGxlci5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7
CkBAIC01NzgsMTIgKzU4OCwxMiBAQCBMVmFsdWUgT3V0cHV0OjpzZWxlY3QoTFZhbHVlIHZhbHVl
LCBMVmFsCiAKIHZvaWQgT3V0cHV0OjpqdW1wKExCYXNpY0Jsb2NrIGRlc3RpbmF0aW9uKQogewot
ICAgIG1fYmxvY2stPmFwcGVuZE5ldzxCMzo6Q29udHJvbFZhbHVlPihtX3Byb2MsIEIzOjpKdW1w
LCBvcmlnaW4oKSwgQjM6OkZyZXF1ZW50ZWRCbG9jayhkZXN0aW5hdGlvbikpOworICAgIG1fYmxv
Y2stPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShtX3Byb2MsIEIzOjpKdW1wLCBvcmlnaW4oKSwgQjM6
OkZyZXF1ZW50ZWRCbG9jayhkZXN0aW5hdGlvbikpOwogfQogCiB2b2lkIE91dHB1dDo6YnJhbmNo
KExWYWx1ZSBjb25kaXRpb24sIExCYXNpY0Jsb2NrIHRha2VuLCBXZWlnaHQgdGFrZW5XZWlnaHQs
IExCYXNpY0Jsb2NrIG5vdFRha2VuLCBXZWlnaHQgbm90VGFrZW5XZWlnaHQpCiB7Ci0gICAgbV9i
bG9jay0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgbV9ibG9jay0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBtX3Byb2MsIEIzOjpCcmFuY2gsIG9yaWdpbigpLCBjb25kaXRp
b24sCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0YWtlbiwgdGFrZW5XZWlnaHQuZnJlcXVlbmN5
Q2xhc3MoKSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhub3RUYWtlbiwgbm90VGFrZW5XZWln
aHQuZnJlcXVlbmN5Q2xhc3MoKSkpOwpAQCAtNjAzLDEyICs2MTMsMTIgQEAgdm9pZCBPdXRwdXQ6
OmNoZWNrKExWYWx1ZSBjb25kaXRpb24sIFdlaQogCiB2b2lkIE91dHB1dDo6cmV0KExWYWx1ZSB2
YWx1ZSkKIHsKLSAgICBtX2Jsb2NrLT5hcHBlbmROZXc8QjM6OkNvbnRyb2xWYWx1ZT4obV9wcm9j
LCBCMzo6UmV0dXJuLCBvcmlnaW4oKSwgdmFsdWUpOworICAgIG1fYmxvY2stPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShtX3Byb2MsIEIzOjpSZXR1cm4sIG9yaWdpbigpLCB2YWx1ZSk7CiB9CiAKIHZv
aWQgT3V0cHV0Ojp1bnJlYWNoYWJsZSgpCiB7Ci0gICAgbV9ibG9jay0+YXBwZW5kTmV3PEIzOjpD
b250cm9sVmFsdWU+KG1fcHJvYywgQjM6Ok9vcHMsIG9yaWdpbigpKTsKKyAgICBtX2Jsb2NrLT5h
cHBlbmROZXdDb250cm9sVmFsdWUobV9wcm9jLCBCMzo6T29wcywgb3JpZ2luKCkpOwogfQogCiBD
aGVja1ZhbHVlKiBPdXRwdXQ6OnNwZWN1bGF0ZShMVmFsdWUgdmFsdWUpCkBAIC02MzgsNyArNjQ4
LDcgQEAgUGF0Y2hwb2ludFZhbHVlKiBPdXRwdXQ6OnBhdGNocG9pbnQoTFR5cAogCiB2b2lkIE91
dHB1dDo6dHJhcCgpCiB7Ci0gICAgbV9ibG9jay0+YXBwZW5kTmV3PEIzOjpDb250cm9sVmFsdWU+
KG1fcHJvYywgQjM6Ok9vcHMsIG9yaWdpbigpKTsKKyAgICBtX2Jsb2NrLT5hcHBlbmROZXdDb250
cm9sVmFsdWUobV9wcm9jLCBCMzo6T29wcywgb3JpZ2luKCkpOwogfQogCiBWYWx1ZUZyb21CbG9j
ayBPdXRwdXQ6OmFuY2hvcihMVmFsdWUgdmFsdWUpCkBAIC03MjksNiArNzM5LDExIEBAIHZvaWQg
T3V0cHV0OjpkZWNyZW1lbnRTdXBlclNhbXBsZXJDb3VudCgKICAgICBzdG9yZTMyKHN1Yihsb2Fk
MzIoY291bnRlciksIGludDMyT25lKSwgY291bnRlcik7CiB9CiAKK3ZvaWQgT3V0cHV0OjphZGRJ
bmNvbWluZ1RvUGhpKExWYWx1ZSBwaGksIFZhbHVlRnJvbUJsb2NrIHZhbHVlKQoreworICAgIHZh
bHVlLnZhbHVlKCktPmFzPEIzOjpVcHNpbG9uVmFsdWU+KCktPnNldFBoaShwaGkpOworfQorCiB9
IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCiAKICNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuaAkocmV2aXNpb24gMjAyODA5KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuaAkod29ya2luZyBjb3B5KQpA
QCAtMzAsMTkgKzMwLDEyIEBACiAKICNpZiBFTkFCTEUoRlRMX0pJVCkKIAotI2luY2x1ZGUgIkIz
QXJndW1lbnRSZWdWYWx1ZS5oIgogI2luY2x1ZGUgIkIzQmFzaWNCbG9ja0lubGluZXMuaCIKICNp
bmNsdWRlICJCM0NDYWxsVmFsdWUuaCIKICNpbmNsdWRlICJCM0NvbXBpbGF0aW9uLmgiCi0jaW5j
bHVkZSAiQjNDb25zdDMyVmFsdWUuaCIKLSNpbmNsdWRlICJCM0NvbnN0UHRyVmFsdWUuaCIKLSNp
bmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgotI2luY2x1ZGUgIkIzTWVtb3J5VmFsdWUuaCIKKyNp
bmNsdWRlICJCM0ZyZXF1ZW50ZWRCbG9jay5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJlLmgiCi0j
aW5jbHVkZSAiQjNTbG90QmFzZVZhbHVlLmgiCiAjaW5jbHVkZSAiQjNTd2l0Y2hWYWx1ZS5oIgot
I2luY2x1ZGUgIkIzVXBzaWxvblZhbHVlLmgiCi0jaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIK
ICNpbmNsdWRlICJGVExBYmJyZXZpYXRlZFR5cGVzLmgiCiAjaW5jbHVkZSAiRlRMQWJzdHJhY3RI
ZWFwUmVwb3NpdG9yeS5oIgogI2luY2x1ZGUgIkZUTENvbW1vblZhbHVlcy5oIgpAQCAtNjQsNyAr
NTcsMTMgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLW5hbWVzcGFjZSBERkcgeyBzdHJ1Y3QgTm9k
ZTsgfQorbmFtZXNwYWNlIERGRyB7CitzdHJ1Y3QgTm9kZTsKK30gLy8gbmFtZXNwYWNlIERGRwor
CituYW1lc3BhY2UgQjMgeworY2xhc3MgU2xvdEJhc2VWYWx1ZTsKK30gLy8gbmFtZXNwYWNlIEIz
CiAKIG5hbWVzcGFjZSBGVEwgewogCkBAIC0xMDYsOSArMTA1LDE5IEBAIHB1YmxpYzoKICAgICBM
VmFsdWUgY29uc3RCb29sKGJvb2wgdmFsdWUpOwogICAgIExWYWx1ZSBjb25zdEludDMyKGludDMy
X3QgdmFsdWUpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci0gICAgTFZhbHVlIGNvbnN0SW50
UHRyKFQqIHZhbHVlKSB7IHJldHVybiBtX2Jsb2NrLT5hcHBlbmROZXc8QjM6OkNvbnN0UHRyVmFs
dWU+KG1fcHJvYywgb3JpZ2luKCksIHZhbHVlKTsgfQorICAgIExWYWx1ZSBjb25zdEludFB0cihU
KiB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmIChzaXplb2Yodm9pZCopID09IDgpCisgICAgICAg
ICAgICByZXR1cm4gY29uc3RJbnQ2NChiaXR3aXNlX2Nhc3Q8aW50cHRyX3Q+KHZhbHVlKSk7Cisg
ICAgICAgIHJldHVybiBjb25zdEludDMyKGJpdHdpc2VfY2FzdDxpbnRwdHJfdD4odmFsdWUpKTsK
KyAgICB9CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KLSAgICBMVmFsdWUgY29uc3RJbnRQdHIo
VCB2YWx1ZSkgeyByZXR1cm4gbV9ibG9jay0+YXBwZW5kTmV3PEIzOjpDb25zdFB0clZhbHVlPiht
X3Byb2MsIG9yaWdpbigpLCB2YWx1ZSk7IH0KKyAgICBMVmFsdWUgY29uc3RJbnRQdHIoVCB2YWx1
ZSkKKyAgICB7CisgICAgICAgIGlmIChzaXplb2Yodm9pZCopID09IDgpCisgICAgICAgICAgICBy
ZXR1cm4gY29uc3RJbnQ2NChzdGF0aWNfY2FzdDxpbnRwdHJfdD4odmFsdWUpKTsKKyAgICAgICAg
cmV0dXJuIGNvbnN0SW50MzIoc3RhdGljX2Nhc3Q8aW50cHRyX3Q+KHZhbHVlKSk7CisgICAgfQog
ICAgIExWYWx1ZSBjb25zdEludDY0KGludDY0X3QgdmFsdWUpOwogICAgIExWYWx1ZSBjb25zdERv
dWJsZShkb3VibGUgdmFsdWUpOwogCkBAIC0zNTQsOCArMzYzLDcgQEAgcHVibGljOgogICAgIExW
YWx1ZSBjYWxsV2l0aG91dFNpZGVFZmZlY3RzKEIzOjpUeXBlIHR5cGUsIEZ1bmN0aW9uIGZ1bmN0
aW9uLCBMVmFsdWUgYXJnMSwgQXJncy4uLiBhcmdzKQogICAgIHsKICAgICAgICAgcmV0dXJuIG1f
YmxvY2stPmFwcGVuZE5ldzxCMzo6Q0NhbGxWYWx1ZT4obV9wcm9jLCB0eXBlLCBvcmlnaW4oKSwg
QjM6OkVmZmVjdHM6Om5vbmUoKSwKLSAgICAgICAgICAgIG1fYmxvY2stPmFwcGVuZE5ldzxCMzo6
Q29uc3RQdHJWYWx1ZT4obV9wcm9jLCBvcmlnaW4oKSwgYml0d2lzZV9jYXN0PHZvaWQqPihmdW5j
dGlvbikpLAotICAgICAgICAgICAgYXJnMSwgYXJncy4uLik7CisgICAgICAgICAgICBjb25zdElu
dFB0cihiaXR3aXNlX2Nhc3Q8dm9pZCo+KGZ1bmN0aW9uKSksIGFyZzEsIGFyZ3MuLi4pOwogICAg
IH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0aW9uVHlwZT4KQEAgLTM3OCw4ICszODYs
OCBAQCBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVmVjdG9yVHlwZT4KICAgICB2b2lk
IHN3aXRjaEluc3RydWN0aW9uKExWYWx1ZSB2YWx1ZSwgY29uc3QgVmVjdG9yVHlwZSYgY2FzZXMs
IExCYXNpY0Jsb2NrIGZhbGxUaHJvdWdoLCBXZWlnaHQgZmFsbFRocm91Z2hXZWlnaHQpCiAgICAg
ewotICAgICAgICBCMzo6U3dpdGNoVmFsdWUqIHN3aXRjaFZhbHVlID0gbV9ibG9jay0+YXBwZW5k
TmV3PEIzOjpTd2l0Y2hWYWx1ZT4oCi0gICAgICAgICAgICBtX3Byb2MsIG9yaWdpbigpLCB2YWx1
ZSwgQjM6OkZyZXF1ZW50ZWRCbG9jayhmYWxsVGhyb3VnaCkpOworICAgICAgICBCMzo6U3dpdGNo
VmFsdWUqIHN3aXRjaFZhbHVlID0gbV9ibG9jay0+YXBwZW5kTmV3PEIzOjpTd2l0Y2hWYWx1ZT4o
bV9wcm9jLCBvcmlnaW4oKSwgdmFsdWUpOworICAgICAgICBzd2l0Y2hWYWx1ZS0+c2V0RmFsbFRo
cm91Z2goQjM6OkZyZXF1ZW50ZWRCbG9jayhmYWxsVGhyb3VnaCkpOwogICAgICAgICBmb3IgKGNv
bnN0IFN3aXRjaENhc2UmIHN3aXRjaENhc2UgOiBjYXNlcykgewogICAgICAgICAgICAgaW50NjRf
dCB2YWx1ZSA9IHN3aXRjaENhc2UudmFsdWUoKS0+YXNJbnQoKTsKICAgICAgICAgICAgIEIzOjpG
cmVxdWVudGVkQmxvY2sgdGFyZ2V0KHN3aXRjaENhc2UudGFyZ2V0KCksIHN3aXRjaENhc2Uud2Vp
Z2h0KCkuZnJlcXVlbmN5Q2xhc3MoKSk7CkBAIC00MzksMTEgKzQ0Nyw2IEBAIGlubGluZSBMVmFs
dWUgT3V0cHV0OjpwaGkoTFR5cGUgdHlwZSwgY28KICAgICByZXR1cm4gcGhpTm9kZTsKIH0KIAot
aW5saW5lIHZvaWQgT3V0cHV0OjphZGRJbmNvbWluZ1RvUGhpKExWYWx1ZSBwaGksIFZhbHVlRnJv
bUJsb2NrIHZhbHVlKQotewotICAgIHZhbHVlLnZhbHVlKCktPmFzPEIzOjpVcHNpbG9uVmFsdWU+
KCktPnNldFBoaShwaGkpOwotfQotCiB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBQYXJhbXM+CiBpbmxp
bmUgdm9pZCBPdXRwdXQ6OmFkZEluY29taW5nVG9QaGkoTFZhbHVlIHBoaSwgVmFsdWVGcm9tQmxv
Y2sgdmFsdWUsIFBhcmFtcy4uLiB0aGVSZXN0KQogewpJbmRleDogV2Vic2l0ZXMvd2Via2l0Lm9y
Zy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvd2Via2l0Lm9yZy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDIwMjgwOSkKKysrIFdlYnNpdGVzL3dlYmtpdC5vcmcvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMDUtMjkgIEZpbGlwIFBpemxvICA8ZnBp
emxvQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgdGFibGUtYmFzZWQgc3dpdGNoZXMg
aW4gQjMvQWlyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNTExNDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAg
CisgICAgICAgIFVwZGF0ZSBkb2N1bWVudGF0aW9uIHRvIHJlZmxlY3QgUGF0Y2hwb2ludCdzIG5l
dyBwb3dlcnMuCisKKyAgICAgICAgKiBkb2NzL2IzL2ludGVybWVkaWF0ZS1yZXByZXNlbnRhdGlv
bi5odG1sOgorCiAyMDE2LTA3LTAxICBKb24gRGF2aXMgIDxqb25kQGFwcGxlLmNvbT4KIAogICAg
ICAgICBBZGRlZCBhIGNvbG9yZnVsIG5ldyBpbWFnZSBhbmQgZml4ZWQgdGhlIE9wZW4gR3JhcGgg
YXR0cmlidXRlLgpJbmRleDogV2Vic2l0ZXMvd2Via2l0Lm9yZy9kb2NzL2IzL2ludGVybWVkaWF0
ZS1yZXByZXNlbnRhdGlvbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3dlYmtpdC5vcmcv
ZG9jcy9iMy9pbnRlcm1lZGlhdGUtcmVwcmVzZW50YXRpb24uaHRtbAkocmV2aXNpb24gMjAyODA5
KQorKysgV2Vic2l0ZXMvd2Via2l0Lm9yZy9kb2NzL2IzL2ludGVybWVkaWF0ZS1yZXByZXNlbnRh
dGlvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0Myw3IEBACiAgICAgPHA+VGhlIGFj
dCBvZiBjb21waWxpbmcgdGhlIFByb2NlZHVyZSBjaGFuZ2VzIGl0IGluLXBsYWNlLCBtYWtpbmcg
aXQgdW5zdWl0YWJsZSBmb3IKICAgICAgIGNvbXBpbGluZyBhZ2Fpbi4gIEFsd2F5cyBjcmVhdGUg
YSBuZXcgUHJvY2VkdXJlIGV2ZXJ5IHRpbWUgeW91IHdhbnQgdG8gY29tcGlsZQogICAgICAgc29t
ZXRoaW5nLjwvcD4KLQorICAgIAogICAgIDxoMj5UeXBlczwvaDI+CiAKICAgICA8cD5CMyBoYXMg
YSB0cml2aWFsIHR5cGUgc3lzdGVtIHdpdGggb25seSBmaXZlIHR5cGVzOjwvcD4KQEAgLTEzMCw4
ICsxMzAsMTUgQEAKICAgICA8aDI+Q29udHJvbCBmbG93PC9oMj4KIAogICAgIDxwPkIzIHJlcHJl
c2VudHMgY29udHJvbCBmbG93IHVzaW5nIGJhc2ljIGJsb2Nrcy4gIEVhY2ggYmFzaWMgYmxvY2sg
bWF5IGhhdmUgemVybyBvciBtb3JlCi0gICAgICBwcmVkZWNlc3NvcnMuICBFYWNoIGJhc2ljIGJs
b2NrIG1heSBoYXZlIHplcm8gb3IgbW9yZSBzdWNjZXNzb3JzLiAgVGhlIHN1Y2Nlc3NvcnMgYXJl
Ci0gICAgICBjb250cm9sbGVkIGJ5IHRoZSBiYXNpYyBibG9jaydzIGxhc3QgVmFsdWUsIHdoaWNo
IG11c3QgYmUgYSBDb250cm9sVmFsdWUgaW5zdGFuY2UuPC9wPgorICAgICAgcHJlZGVjZXNzb3Jz
LiAgRWFjaCBiYXNpYyBibG9jayBtYXkgaGF2ZSB6ZXJvIG9yIG1vcmUgc3VjY2Vzc29ycy4gIFRo
ZSBtZWFuaW5nIG9mIHRoZQorICAgICAgc3VjY2Vzc29ycyBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBi
YXNpYyBibG9jaydzIGxhc3QgVmFsdWUsIHdoaWNoIG11c3QgYmUgYSB0ZXJtaW5hbC4gQQorICAg
ICAgdmFsdWUgaXMgdGVybWluYWwgaWY6PC9wPgorICAgIAorICAgIDxwcmU+PGNvZGU+dmFsdWUt
Jmd0O2VmZmVjdHMoKS50ZXJtaW5hbDwvY29kZT48L3ByZT4KKyAgICAKKyAgICA8cD5Tb21lIG9w
Y29kZXMgYXJlIGRlZmluaXRlbHkgdGVybWluYWwsIGxpa2UgSnVtcCwgQnJhbmNoLCBPb3BzLCBS
ZXR1cm4sIGFuZCBTd2l0Y2guIEJ1dCBhCisgICAgICB2YWx1ZSB3aXRoIHRoZSBQYXRjaHBvaW50
IG9wY29kZSBtYXkgb3IgbWF5IG5vdCBiZSB0ZXJtaW5hbC4gSW4gZ2VuZXJhbCBpdCdzIG5lY2Vz
c2FyeSB0bworICAgICAgY2hlY2sgdGhlIDxjb2RlPnRlcm1pbmFsPC9jb2RlPiBiaXQgYXMgc2hv
d24gYWJvdmUuPC9wPgogCiAgICAgPHA+RWFjaCBiYXNpYyBibG9jayBjb250YWlucyBhIFZlY3Rv
ciZsdDtWYWx1ZSomZ3Q7IGFzIHRoZSBjb250ZW50cyBvZiB0aGUgYmxvY2suIENvbnRyb2wKICAg
ICAgIGZsb3cgaW5zaWRlIHRoZSBibG9jayBpcyBpbXBsaWNpdCBiYXNlZCBvbiB0aGUgb3JkZXIg
b2YgVmFsdWVzIGluIHRoZSB2ZWN0b3IuPC9wPgpAQCAtNDU4LDYgKzQ2NSwxNyBAQCBwYXRjaHBv
aW50LT5zZXRHZW5lcmF0b3IoCiAgICAgICAgICAgcGF0Y2hwb2ludCB3aWxsIHRha2Ugc29tZSBl
eGl0IHN0YXRlIGFzIHBhcnQgb2YgaXRzIGFyZ3VtZW50cywgYW5kIGl0IHdpbGwgbWFuaXB1bGF0
ZQogICAgICAgICAgIHRoZSBjYWxsIGZyYW1lIGluIHBsYWNlIHRvIG1ha2UgaXQgbG9vayBsaWtl
IGFub3RoZXIgZXhlY3V0aW9uIGVuZ2luZSdzIGNhbGwgZnJhbWUuCiAgICAgICAgICAgVGhpcyBp
cyBjYWxsZWQgT1NSLCBhbmQgSmF2YVNjcmlwdENvcmUgZG9lcyBpdCBhIGxvdC48L3A+CisgICAg
ICAgIAorICAgICAgICA8cD5BIHBhdGNocG9pbnQgY2FuIGJlIHVzZWQgYXMgYSB0ZXJtaW5hbC4g
U2ltcGx5IHNldCB0aGUgPGNvZGU+dGVybWluYWw8L2NvZGU+IGJpdDo8L3A+CisgICAgICAgIAor
ICAgICAgICA8cHJlPjxjb2RlPnBhdGNocG9pbnQtJmd0O2VmZmVjdHMudGVybWluYWwgPSB0cnVl
OzwvY29kZT48L3ByZT4KKyAgICAgICAgCisgICAgICAgIDxwPlRoZSBnZW5lcmF0b3IgY2FuIGRl
dGVybWluZSB3aGVyZSB0byBicmFuY2ggYnkgdXNpbmcgdGhlIFN0YWNrbWFwR2VuZXJhdGlvblBh
cmFtcyB0bworICAgICAgICAgIGdldCB0aGUgc2V0IG9mIGxhYmVscyBmb3IgYWxsIHN1Y2Nlc3Nv
cnMuIFlvdSdyZSBndWFyYW50ZWVkIHRoYXQgdGhlIG51bWJlciBvZgorICAgICAgICAgIHN1Y2Nl
c3NvcnMgb2YgdGhlIHBhdGNocG9pbnQncyBiYXNpYyBibG9jayB3aWxsIGJlIHRoZSBzYW1lIGFz
IHdoZW4geW91IGNyZWF0ZWQgaXQuCisgICAgICAgICAgSG93ZXZlciwgbGlrZSBhbnkgdmFsdWUs
IGEgcGF0Y2hwb2ludCBtYXkgYmUgY2xvbmVkLiBUaGlzIG1lYW5zLCBmb3IgZXhhbXBsZSwgdGhh
dCBpZgorICAgICAgICAgIHlvdSB1c2UgdGhpcyB0byBpbXBsZW1lbnQgYSB0YWJsZSBqdW1wIHRo
ZW4gdGhlIGp1bXAgdGFibGUgbXVzdCBiZSBjcmVhdGVkIGluc2lkZSB0aGUKKyAgICAgICAgICBn
ZW5lcmF0b3IsIHNvIHRoYXQgeW91IGdldCBvbmUganVtcCB0YWJsZSBwZXIgY2xvbmUuPC9wPgog
IAogICAgICAgICA8cD5NdXN0IHVzZSB0aGUgUGF0Y2hwb2ludFZhbHVlIGNsYXNzIHdpdGggdGhl
IFBhdGNocG9pbnQgb3Bjb2RlLjwvcD4KICAgICAgIDwvZGQ+CkluZGV4OiBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAy
MDI4MDkpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwxNSBAQAorMjAxNi0wNS0yOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisg
ICAgICAgIEltcGxlbWVudCB0YWJsZS1iYXNlZCBzd2l0Y2hlcyBpbiBCMy9BaXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTE0MQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICoganMvcmVncmVzcy9iaWdz
d2l0Y2gtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2JpZ3N3aXRj
aC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9iaWdzd2l0
Y2guanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKwogMjAxNi0wNy0wNCAgWXVzdWtlIFN1enVr
aSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBza2lwIG1p
c2MtYnVncy04NDczODktanBlZzIwMDAuanMgaW4ganNjIHN0cmVzcyB0ZXN0cwpJbmRleDogTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2gtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3MvYmlnc3dpdGNoCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlv
dXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIg
QEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9y
ZWdyZXNzLXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2JpZ3N3
aXRjaC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3Mt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9q
cy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9iaWdzd2l0Y2guanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvYmlnc3dpdGNoLmpzCShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvYmlnc3dpdGNoLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMjExIEBACitmdW5jdGlvbiBmb28obykgeworICAgIHZhciBy
ZXN1bHQgPSAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgKytpKSB7CisgICAgICAg
IHZhciB2YWx1ZSA9IGkgJiA2MzsKKyAgICAgICAgc3dpdGNoICh2YWx1ZSkgeworICAgICAgICBj
YXNlIDA6CisgICAgICAgICAgICByZXN1bHQgKz0gby5hOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYzsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICByZXN1bHQgKz0gby5k
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDoKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1OgorICAgICAgICAg
ICAgcmVzdWx0ICs9IG8uZjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDY6Cisg
ICAgICAgICAgICByZXN1bHQgKz0gby5nOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgNzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSA4OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIDk6CisgICAgICAgICAgICByZXN1bHQgKz0gby5qOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTA6CisgICAgICAgICAgICByZXN1bHQgKz0gby5r
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTE6CisgICAgICAgICAgICByZXN1
bHQgKz0gby5hOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTI6CisgICAgICAg
ICAgICByZXN1bHQgKz0gby5iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTM6
CisgICAgICAgICAgICByZXN1bHQgKz0gby5jOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgMTQ6CisgICAgICAgICAgICByZXN1bHQgKz0gby5kOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgMTU6CisgICAgICAgICAgICByZXN1bHQgKz0gby5lOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTY6CisgICAgICAgICAgICByZXN1bHQgKz0gby5mOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTc6CisgICAgICAgICAgICByZXN1bHQg
Kz0gby5nOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTg6CisgICAgICAgICAg
ICByZXN1bHQgKz0gby5oOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTk6Cisg
ICAgICAgICAgICByZXN1bHQgKz0gby5pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgMjA6CisgICAgICAgICAgICByZXN1bHQgKz0gby5qOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgMjE6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgMjI6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjM6CisgICAgICAgICAgICByZXN1bHQgKz0g
by5hOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjQ6CisgICAgICAgICAgICBy
ZXN1bHQgKz0gby5iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjU6CisgICAg
ICAgICAgICByZXN1bHQgKz0gby5jOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
MjY6CisgICAgICAgICAgICByZXN1bHQgKz0gby5kOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgMjc6CisgICAgICAgICAgICByZXN1bHQgKz0gby5lOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgMjg6CisgICAgICAgICAgICByZXN1bHQgKz0gby5mOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjk6CisgICAgICAgICAgICByZXN1bHQgKz0gby5n
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzA6CisgICAgICAgICAgICByZXN1
bHQgKz0gby5oOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzE6CisgICAgICAg
ICAgICByZXN1bHQgKz0gby5pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzI6
CisgICAgICAgICAgICByZXN1bHQgKz0gby5qOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgMzM6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgMzQ6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzU6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzY6CisgICAgICAgICAgICByZXN1bHQg
Kz0gby5hOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzc6CisgICAgICAgICAg
ICByZXN1bHQgKz0gby5iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzg6Cisg
ICAgICAgICAgICByZXN1bHQgKz0gby5jOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgMzk6CisgICAgICAgICAgICByZXN1bHQgKz0gby5kOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgNDA6CisgICAgICAgICAgICByZXN1bHQgKz0gby5lOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgNDE6CisgICAgICAgICAgICByZXN1bHQgKz0gby5mOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDI6CisgICAgICAgICAgICByZXN1bHQgKz0g
by5nOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDM6CisgICAgICAgICAgICBy
ZXN1bHQgKz0gby5oOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDQ6CisgICAg
ICAgICAgICByZXN1bHQgKz0gby5pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
NDU6CisgICAgICAgICAgICByZXN1bHQgKz0gby5qOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgNDY6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgNDc6CisgICAgICAgICAgICByZXN1bHQgKz0gby5pOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDg6CisgICAgICAgICAgICByZXN1bHQgKz0gby5q
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDk6CisgICAgICAgICAgICByZXN1
bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTA6CisgICAgICAg
ICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTE6
CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgNTI6CisgICAgICAgICAgICByZXN1bHQgKz0gby5hOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgNTM6CisgICAgICAgICAgICByZXN1bHQgKz0gby5iOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTQ6CisgICAgICAgICAgICByZXN1bHQgKz0gby5jOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTU6CisgICAgICAgICAgICByZXN1bHQg
Kz0gby5kOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTY6CisgICAgICAgICAg
ICByZXN1bHQgKz0gby5lOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTc6Cisg
ICAgICAgICAgICByZXN1bHQgKz0gby5mOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgNTg6CisgICAgICAgICAgICByZXN1bHQgKz0gby5nOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgNTk6CisgICAgICAgICAgICByZXN1bHQgKz0gby5oOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgNjA6CisgICAgICAgICAgICByZXN1bHQgKz0gby5pOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNjE6CisgICAgICAgICAgICByZXN1bHQgKz0g
by5qOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNjI6CisgICAgICAgICAgICBy
ZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICByZXN1bHQgKz0gby56OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg
ICB9CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworKGZ1bmN0aW9uKCkgeworICAgIHZhciBvID0g
e2E6MSwgYjoyLCBjOjMsIGQ6NCwgZTo1LCBmOjYsIGc6NywgaDo4LCBpOjksIGo6MTAsIGs6MTEs
IHo6MTAwfTsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEw
MDAwOyArK2kpCisgICAgICAgIHJlc3VsdCArPSBmb28obyk7CisgICAgaWYgKHJlc3VsdCAhPSA3
OTY2MDAwMCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0Owor
fSkoKTsKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283217</attachid>
            <date>2016-07-08 16:36:15 -0700</date>
            <delta_ts>2016-07-10 10:57:00 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>454822</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAyOTgxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc4OSBA
QAorMjAxNi0wNy0wOCAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IEltcGxlbWVudCB0YWJsZS1iYXNlZCBzd2l0Y2hlcyBpbiBCMy9BaXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTE0MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIElmIGEgc3dpdGNoIHN0YXRlbWVudCBn
ZXRzIGxhcmdlLCBpdCdzIGJldHRlciB0byBleHByZXNzIGl0IGFzIGFuIGluZGlyZWN0IGp1bXAg
cmF0aGVyIHRoYW4KKyAgICAgICAgdXNpbmcgYSBiaW5hcnkgc3dpdGNoIChkaXZpZGUtYW5kLWNv
bnF1ZXIgdHJlZSBvZiBjb21wYXJpc29ucyBsZWFkaW5nIHRvIE8obG9nIG4pIGJyYW5jaGVzIHRv
CisgICAgICAgIGdldCB0byB0aGUgc3dpdGNoIGNhc2UpLiBXaGVuIGRlYWxpbmcgd2l0aCBpbnRl
Z2VyIHN3aXRjaGVzLCBGVEwgd2lsbCBhbHJlYWR5IHVzZSB0aGUgQjMKKyAgICAgICAgU3dpdGNo
IGFuZCBleHBlY3QgdGhpcyB0byBnZXQgbG93ZXJlZCBhcyBlZmZpY2llbnRseSBhcyBwb3NzaWJs
ZTsgaXQncyBhIGJ1ZyB0aGF0IEIzIHdpbGwKKyAgICAgICAgYWx3YXlzIHVzZSBhIGJpbmFyeSBz
d2l0Y2ggcmF0aGVyIHRoYW4gaW5kaXJlY3QganVtcHMuIFdoZW4gZGVhbGluZyB3aXRoIHN3aXRj
aGVzIG92ZXIgc29tZQorICAgICAgICBtb3JlIHNvcGhpc3RpY2F0ZWQgdHlwZXMsIHdlJ2Qgd2Fu
dCBGVEwgdG8gYnVpbGQgYW4gaW5kaXJlY3QganVtcCB0YWJsZSBpdHNlbGYgYW5kIHVzZQorICAg
ICAgICBzb21ldGhpbmcgbGlrZSBhIGhhc2h0YWJsZSB0byBmZWVkIGl0LiBJbiB0aGF0IGNhc2Us
IHRoZXJlIHdpbGwgYmUgbm8gQjMgU3dpdGNoOyB3ZSdsbCB3YW50CisgICAgICAgIHNvbWUgd2F5
IGZvciB0aGUgRlRMIHRvIGRpcmVjdGx5IGV4cHJlc3MgYW4gaW5kaXJlY3Rpb24ganVtcCB3aGVu
IGVtaXR0aW5nIEIzLgorICAgICAgICAKKyAgICAgICAgVGhpcyBpbXBsaWVzIHRoYXQgd2Ugd2Fu
dCBCMyB0byBoYXZlIHRoZSBhYmlsaXR5IHRvIGxvd2VyIFN3aXRjaCB0byBpbmRpcmVjdCBqdW1w
cyBhbmQgdG8KKyAgICAgICAgZXhwb3NlIHRob3NlIGluZGlyZWN0IGp1bXBzIGluIElSIHNvIHRo
YXQgdGhlIEZUTCBjb3VsZCBkbyBpdHMgb3duIGluZGlyZWN0IGp1bXBzIGZvcgorICAgICAgICBz
d2l0Y2hlcyBvdmVyIG1vcmUgY29tcGxpY2F0ZWQgdGhpbmdzIGxpa2Ugc3RyaW5ncy4gQnV0IGlu
ZGlyZWN0IGp1bXBzIGFyZSB0b3VnaCB0byBleHByZXNzCisgICAgICAgIGluIElSLiBGb3IgZXhh
bXBsZSwgdGhlIExMVk0gYXBwcm9hY2ggKCJpbmRpcmVjdGJyIiBhbmQgImJsb2NrYWRkcmVzcyIs
IHNlZQorICAgICAgICBodHRwOi8vYmxvZy5sbHZtLm9yZy8yMDEwLzAxL2FkZHJlc3Mtb2YtbGFi
ZWwtYW5kLWluZGlyZWN0LWJyYW5jaGVzLmh0bWwpIG1lYW5zIHRoYXQgc29tZQorICAgICAgICBj
b250cm9sIGZsb3cgZWRnZXMgY2Fubm90IGJlIHNwbGl0LiBJbmRpcmVjdGJyIHRha2VzIGFuIGFk
ZHJlc3MgYXMgaW5wdXQgYW5kIGp1bXBzIHRvIGl0LCBhbmQKKyAgICAgICAgYmxvY2thZGRyZXNz
IGxldHMgeW91IGJ1aWxkIGp1bXAgdGFibGVzIG91dCBvZiBiYXNpYyBibG9jayBhZGRyZXNzZXMu
IFRoaXMgbWVhbnMgdGhhdCB0aGUKKyAgICAgICAgY29tcGlsZXIgY2FuIG5ldmVyIGNoYW5nZSBh
bnkgc3VjY2Vzc29yIG9mIGFuIGluZGlyZWN0YnIsIHNpbmNlIHRoZSBjbGllbnQgd2lsbCBoYXZl
IGFscmVhZHkKKyAgICAgICAgYXJyYW5nZWQgZm9yIHRoYXQgaW5kaXJlY3RiciB0byBqdW1wIHRv
IGV4YWN0bHkgdGhvc2Ugc3VjY2Vzc29ycy4gV2UgZG9uJ3Qgd2FudCBzdWNoCisgICAgICAgIHJl
c3RyaWN0aW9ucyBpbiBCMywgc2luY2UgQjMgcmVsaWVzIG9uIGJlaW5nIGFibGUgdG8gYnJlYWsg
Y3JpdGljYWwgZWRnZXMgZm9yIFNTQSBjb252ZXJzaW9uLgorICAgICAgICBBbHNvLCBpbmRpcmVj
dGJyIGlzIG5vdCBjbG9uZWFibGUsIHdoaWNoIHdvdWxkIGJyZWFrIGFueSBob3BlIG9mIGRvaW5n
IHNwZWNpYWxpemF0aW9uLWJhc2VkCisgICAgICAgIHRyYW5zZm9ybWF0aW9ucyBsaWtlIHdlIHdh
bnQgdG8gZG8gZm9yIG11bHRpcGxlIGVudHJ5cG9pbnRzIChidWcgMTU5MzkxKS4gVGhlIGdvYWwg
b2YgdGhpcworICAgICAgICBjaGFuZ2UgaXMgdG8gbGV0IGNsaWVudHMgZG8gaW5kaXJlY3QganVt
cHMgd2l0aG91dCBwbGFjaW5nIGFueSByZXN0cmljdGlvbnMgb24gSVIuCisgICAgICAgIAorICAg
ICAgICBUaGUgdHJpY2sgaXMgdG8gYWxsb3cgUGF0Y2hwb2ludHMgdG8gYmUgdXNlZCBhcyBibG9j
ayB0ZXJtaW5hbHMuIFBhdGNocG9pbnRzIGFscmVhZHkgYWxsb3cKKyAgICAgICAgY2xpZW50cyBv
ZiBCMyB0byBlbWl0IHdoYXRldmVyIGNvZGUgdGhleSBsaWtlLiBQYXRjaHBvaW50cyBhcmUgZnJp
ZW5kbHkgdG8gQjMncyBvdGhlcgorICAgICAgICB0cmFuc2Zvcm1hdGlvbnMgYmVjYXVzZSB0aGUg
Y2xpZW50IG9mIHRoZSBwYXRjaHBvaW50IGhhcyB0byBwbGF5IGFsb25nIHdpdGggd2hhdGV2ZXIK
KyAgICAgICAgZGVjaXNpb25zIEIzIGhhZCBtYWRlIGFyb3VuZCB0aGUgcGF0Y2hwb2ludDogd2hh
dCByZWdpc3RlcnMgZ290IHVzZWQsIHdoYXQgdGhlIGNvbnRyb2wgZmxvdworICAgICAgICBsb29r
cyBsaWtlLCBldGMuIFBhdGNocG9pbnRzIGNhbiBldmVuIGJlIGNsb25lZCBieSBCMywgYW5kIHRo
ZSBjbGllbnQgaGFzIHRvIGFjY29tbW9kYXRlIHRoaXMKKyAgICAgICAgaW4gdGhlaXIgcGF0Y2hw
b2ludCBnZW5lcmF0b3IuIEl0IHR1cm5zIG91dCB0aGF0IHVzaW5nIFBhdGNocG9pbnRzIGFzIHRl
cm1pbmFscyBpcyBxdWl0ZQorICAgICAgICBuYXR1cmFsLiBXZSBhY2NvbXBsaXNoIHRoaXMgYnkg
bW92aW5nIHRoZSBzdWNjZXNzb3IgZWRnZXMgb3V0IG9mIENvbnRyb2xWYWx1ZSBhbmQgaW50bwor
ICAgICAgICBCYXNpY0Jsb2NrLCBhbmQgcmVtb3ZpbmcgQ29udHJvbFZhbHVlIGVudGlyZWx5LiBU
aGlzIHdheSwgYW55IFZhbHVlIHN1YmNsYXNzIGNhbiBiZSBhCisgICAgICAgIHRlcm1pbmFsLiBJ
dCB3YXMgYWxyZWFkeSB0cnVlIHRoYXQgYSBWYWx1ZSBpcyBhIHRlcm1pbmFsIGlmIHZhbHVlLT5l
ZmZlY3RzKCkudGVybWluYWwsIHdoaWNoCisgICAgICAgIHdvcmtzIGdyZWF0IHdpdGggUGF0Y2hw
b2ludHMgc2luY2UgdGhleSBjb250cm9sIHRoZWlyIGVmZmVjdHMgdmlhIFBhdGNocG9pbnRWYWx1
ZTo6ZWZmZWN0cy4KKyAgICAgICAgWW91IGNhbiBtYWtlIHlvdXIgUGF0Y2hwb2ludCBpbnRvIGEg
dGVybWluYWwgYnkgcGxhY2luZyBpdCBhdCB0aGUgZW5kIG9mIGEgYmxvY2sgYW5kIGRvaW5nOgor
ICAgICAgICAKKyAgICAgICAgcGF0Y2hwb2ludC0+ZWZmZWN0cy50ZXJtaW5hbCA9IHRydWU7Cisg
ICAgICAgIAorICAgICAgICBBIFBhdGNocG9pbnRzIGluIHRlcm1pbmFsIHBvc2l0aW9uIGdldHMg
YWNjZXNzIHRvIGFkZGl0aW9uYWwgQVBJIGluIFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy4KKyAg
ICAgICAgVGhlIGdlbmVyYXRvciBjYW4gZ2V0IGEgQm94PExhYmVsPiBmb3IgZWFjaCBzdWNjZXNz
b3IgdG8gaXRzIG93bmluZyBibG9jay4gRm9yIGV4YW1wbGUsIHRvCisgICAgICAgIGltcGxlbWVu
dCBhIGp1bXAtdGFibGUtYmFzZWQgc3dpdGNoLCB5b3Ugd291bGQgbWFrZSB5b3VyIHBhdGNocG9p
bnQgdGFrZSB0aGUgdGFibGUgaW5kZXggYXMKKyAgICAgICAgaXRzIHNvbGUgaW5wdXQuIEluc2lk
ZSB0aGUgZ2VuZXJhdG9yLCB5b3UgYWxsb2NhdGUgdGhlIGp1bXAgdGFibGUgYW5kIGVtaXQgYSBC
YXNlSW5kZXgganVtcAorICAgICAgICB0aGF0IHVzZXMgdGhlIGp1bXAgdGFibGUgcG9pbnRlciAo
d2hpY2ggd2lsbCBiZSBhIGNvbnN0YW50IGtub3duIHRvIHRoZSBnZW5lcmF0b3Igc2luY2UgaXQK
KyAgICAgICAganVzdCBhbGxvY2F0ZWQgaXQpIGFzIHRoZSBiYXNlIGFuZCB0aGUgcGF0Y2hwb2lu
dCBpbnB1dCBhcyBhbiBpbmRleC4gVGhlIGp1bXAgdGFibGUgY2FuIGJlCisgICAgICAgIHBvcHVs
YXRlZCBieSBNYWNyb0Fzc2VtYmxlckNvZGVQdHIncyBjb21wdXRlZCBieSBpbnN0YWxsaW5nIGEg
bGluayB0YXNrIHRvIHJlc29sdmUgdGhlIGxhYmVscworICAgICAgICB0byBjb25jcmV0ZSBsb2Nh
dGlvbnMuIFRoaXMgY2hhbmdlIG1ha2VzIExvd2VyTWFjcm9zIGRvIHN1Y2ggYSBsb3dlcmluZyBm
b3IgU3dpdGNoZXMgdGhhdCBjYW4KKyAgICAgICAgYmVuZWZpdCBmcm9tIGp1bXAgdGFibGVzLiBU
aGlzIGhhcHBlbnMgcmVjdXJzaXZlbHk6IGlmIHRoZSBvcmlnaW5hbCBTd2l0Y2ggaXMgdG9vIHNw
YXJzZSwgd2UKKyAgICAgICAgd2lsbCBkaXZpZGUtYW5kLWNvbnF1ZXIgYXMgYmVmb3JlLiBJZiBh
dCBhbnkgcmVjdXJzaW9uIHN0ZXAgd2UgZmluZCB0aGF0IHRoZSByZW1haW5pbmcgY2FzZXMKKyAg
ICAgICAgYXJlIGRlbnNlIGFuZCBsYXJnZSBlbm91Z2ggdG8gcHJvZml0IGZyb20gYSBqdW1wIHRh
YmxlLCB0aGVuIHRob3NlIGNhc2VzIHdpbGwgYmUgbG93ZXJlZCB0byBhCisgICAgICAgIFBhdGNo
cG9pbnQgdGhhdCBkb2VzIHRoZSB0YWJsZSBqdW1wLiBUaGlzIGlzIGEgZnVuIHdheSB0byBkbyBz
dGVwd2lzZSBsb3dlcmluZzogTG93ZXJNYWNyb3MKKyAgICAgICAgaXMgZXNzZW50aWFsbHkgcHJl
LWxvd2VyaW5nIHRoZSBTd2l0Y2ggZGlyZWN0bHkgdG8gbWFjaGluZSBjb2RlLCBhbmQgd3JhcHBp
bmcgdGhhdCBtYWNoaW5lCisgICAgICAgIGNvZGUgaW4gYSBQYXRjaHBvaW50IHNvIHRoYXQgdGhl
IHJlc3Qgb2YgdGhlIGNvbXBpbGVyIGRvZXNuJ3QgaGF2ZSB0byBrbm93IGFueXRoaW5nIGFib3V0
CisgICAgICAgIHdoYXQgaGFwcGVuZWQuIEkgc3VzcGVjdCB0aGF0IGluIHRoZSBmdXR1cmUgd2Ug
d2lsbCB3YW50IHRvIGRvIG90aGVyIHByZS1sb3dlcmluZ3MgdGhpcyB3YXksCisgICAgICAgIHdo
ZW5ldmVyIHRoZSBCMyBJUiBwaGFzZXMgaGF2ZSBzb21lIHNwZWNpYWwga25vd2xlZGdlIGFib3V0
IHdoYXQgbWFjaGluZSBjb2RlIHNob3VsZCBiZQorICAgICAgICBlbWl0dGVkIGFuZCBpdCB3b3Vs
ZCBiZSBhbm5veWluZyB0byBkcmFnIHRoYXQga25vd2xlZGdlIHRocm91Z2ggdGhlIHJlc3Qgb2Yg
dGhlIGNvbXBpbGVyLgorICAgICAgICAKKyAgICAgICAgT25lIGRvd25zaWRlIG9mIHRoaXMgY2hh
bmdlIGlzIHRoYXQgd2UgdXNlZCBDb250cm9sVmFsdWUgaW4gc28gbWFueSBwbGFjZXMuIE1vc3Qg
b2YgdGhpcworICAgICAgICBwYXRjaCBpbnZvbHZlcyByZW1vdmluZyByZWZlcmVuY2VzIHRvIENv
bnRyb2xWYWx1ZS4gSXQgd291bGQgYmUgbGVzcyB0aGFuIDEwMGtiIGlmIGl0IHdhc24ndAorICAg
ICAgICBmb3IgdGhhdC4gVG8gbWFrZSB0aGlzIGEgYml0IGVhc2llciwgSSBhZGRlZCAiYXBwZW5k
TmV3Q29udHJvbFZhbHVlIiBtZXRob2RzIHRvIEJhc2ljQmxvY2ssCisgICAgICAgIHdoaWNoIGFs
bG9jYXRlIGEgVmFsdWUgYW5kIHNldCB0aGUgc3VjY2Vzc29ycyBhcyBpZiB5b3UgaGFkIGRvbmUg
ImFwcGVuZE5ldzxDb250cm9sVmFsdWU+Ii4KKyAgICAgICAgVGhpcyBtYWRlIGZvciBhbiBlYXN5
IHNlYXJjaC1hbmQtcmVwbGFjZSBpbiB0ZXN0YjMgYW5kIEZUTE91dHB1dC4gSSBmaWxlZCBidWcg
MTU5NDQwIHRvCisgICAgICAgIHJlbW92ZSB0aGlzIHVnbHkgc3RvcGdhcCBtZXRob2QuCisgICAg
ICAgIAorICAgICAgICBJIHRoaW5rIHRoYXQgd2Ugd2lsbCBhbHNvIGVuZCB1cCB1c2luZyB0aGlz
IGZhY2lsaXR5IHRvIGV4dGVuZCBvdXIgdXNlIG9mIHNuaXBwZXRzLiBXZQorICAgICAgICBhbHJl
YWR5IHVzZSBzaGFyZWQgc25pcHBldCBnZW5lcmF0b3JzIGZvciB0aGUgZ2VuZXJpYyBmb3JtcyBv
ZiBhcml0aG1ldGljLiBXZSB3aWxsIHByb2JhYmx5CisgICAgICAgIGFsc28gd2FudCB0byBkbyB0
aGlzIGZvciBnZW5lcmljIGZvcm1zIG9mIGJyYW5jaGVzLiBUaGlzIHdvdWxkbid0IGhhdmUgYmVl
biBwb3NzaWJsZSBwcmlvciB0bworICAgICAgICB0aGlzIGNoYW5nZSwgc2luY2UgdGhlcmUgd291
bGQgaGF2ZSBiZWVuIG5vIHdheSB0byBlbWl0IGEgY29udHJvbCBzbmlwcGV0IGluIEZUTC4gTm93
IHdlIGNhbgorICAgICAgICBlbWl0IGNvbnRyb2wgc25pcHBldHMgdXNpbmcgdGVybWluYWwgcGF0
Y2hwb2ludHMuCisKKyAgICAgICAgVGhpcyBpcyBhIH4zMCUgc3BlZWQtdXAgb24gbWljcm9iZW5j
aG1hcmtzIHRoYXQgaGF2ZSBiaWcgc3dpdGNoIHN0YXRlbWVudHMgKH42MCBjYXNlcykuIEl0J3MK
KyAgICAgICAgbm90IGEgc3BlZWQtdXAgb24gbWFpbnN0cmVhbSBiZW5jaG1hcmtzLgorICAgICAg
ICAKKyAgICAgICAgVGhpcyBhbHNvIGFkZHMgYSBuZXcgdGVzdCB0byB0ZXN0YjMgZm9yIHRlcm1p
bmFsIFBhdGNocG9pbnRzLCBHZXQsIGFuZCBTZXQuIFRoZSBGVEwgZG9lcyBub3QKKyAgICAgICAg
Y3VycmVudGx5IHVzZSB0ZXJtaW5hbCBQYXRjaHBvaW50cyBkaXJlY3RseSwgYnV0IHdlIHdhbnQg
dGhpcyB0byBiZSBwb3NzaWJsZS4gSXQgYWxzbyBkb2Vzbid0CisgICAgICAgIHVzZSBHZXQvU2V0
IGRpcmVjdGx5IGV2ZW4gdGhvdWdoIHdlIHdhbnQgdGhpcyB0byBiZSBwb3NzaWJsZS4gSXQncyBp
bXBvcnRhbnQgdG8gdGVzdCB0aGVzZQorICAgICAgICBzaW5jZSBvcGNvZGVzIHRoYXQgcmVzdWx0
IGZyb20gbG93ZXJpbmcgZG9uJ3QgYWZmZWN0IGVhcmx5IHBoYXNlcywgc28gd2UgY291bGQgaGF2
ZQorICAgICAgICByZWdyZXNzaW9ucyBpbiBlYXJseSBwaGFzZXMgcmVsYXRlZCB0byB0aGVzZSBv
cGNvZGVzIHRoYXQgd291bGRuJ3QgYmUgY2F1Z2h0IGJ5IGFueSBKUyB0ZXN0LgorICAgICAgICBT
bywgdGhpcyBhZGRzIGEgdmVyeSBiYXNpYyB0aHJlYWRlZCBpbnRlcnByZXRlciB0byB0ZXN0YjMg
Zm9yIGEgQnJhaW5mdWNrLXN0eWxlIGxhbmd1YWdlLCBhbmQKKyAgICAgICAgdGVzdHMgaXQgYnkg
aGF2aW5nIGl0IHJ1biBhIHByb2dyYW0gdGhhdCBwcmludHMgdGhlIG51bWJlcnMgMS4uMTAwIGlu
IGEgbG9vcC4gVW5saWtlIGEgcmVhbAorICAgICAgICB0aHJlYWRlZCBpbnRlcnByZXRlciwgaXQg
dXNlcyBhIGNvbW1vbiBkaXNwYXRjaCBibG9jayByYXRoZXIgdGhhbiBoYXZpbmcgZGlzcGF0Y2gg
YXQgdGhlCisgICAgICAgIHRlcm1pbnVzIG9mIGVhY2ggb3Bjb2RlLiBUaGF0J3MgbmVjZXNzYXJ5
IGJlY2F1c2UgUG9seUp1bXAgaXMgbm90IGNsb25lYWJsZS4gVGhlIHN0YXRlIG9mIHRoZQorICAg
ICAgICBpbnRlcnByZXRlciBpcyByZXByZXNlbnRlZCB1c2luZyBWYXJpYWJsZXMgdGhhdCB3ZSBH
ZXQgYW5kIFNldCwgc28gaXQgdGVzdHMgR2V0L1NldCBhcyB3ZWxsLgorCisgICAgICAgICogQ01h
a2VMaXN0cy50eHQ6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oOgorICAg
ICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0OjpqdW1wKToKKyAgICAgICAgKiBhc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJs
ZXJYODZDb21tb246Omp1bXApOgorICAgICAgICAqIGFzc2VtYmxlci9YODZBc3NlbWJsZXIuaDoK
KyAgICAgICAgKEpTQzo6WDg2QXNzZW1ibGVyOjpqbXBfbSk6CisgICAgICAgICogYjMvQjNCYXNp
Y0Jsb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OkJhc2ljQmxvY2s6OmFwcGVuZCk6CisgICAg
ICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjphcHBlbmROb25UZXJtaW5hbCk6CisgICAgICAgIChK
U0M6OkIzOjpCYXNpY0Jsb2NrOjpyZW1vdmVMYXN0KToKKyAgICAgICAgKEpTQzo6QjM6OkJhc2lj
QmxvY2s6OmFwcGVuZEludENvbnN0YW50KToKKyAgICAgICAgKEpTQzo6QjM6OkJhc2ljQmxvY2s6
OmNsZWFyU3VjY2Vzc29ycyk6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjphcHBlbmRT
dWNjZXNzb3IpOgorICAgICAgICAoSlNDOjpCMzo6QmFzaWNCbG9jazo6c2V0U3VjY2Vzc29ycyk6
CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjpyZXBsYWNlU3VjY2Vzc29yKToKKyAgICAg
ICAgKEpTQzo6QjM6OkJhc2ljQmxvY2s6OmFkZFByZWRlY2Vzc29yKToKKyAgICAgICAgKEpTQzo6
QjM6OkJhc2ljQmxvY2s6OmRlZXBEdW1wKToKKyAgICAgICAgKEpTQzo6QjM6OkJhc2ljQmxvY2s6
OmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSk6CisgICAgICAgICogYjMvQjNCYXNpY0Jsb2NrLmg6Cisg
ICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjpudW1TdWNjZXNzb3JzKToKKyAgICAgICAgKEpT
Qzo6QjM6OkJhc2ljQmxvY2s6OnN1Y2Nlc3Nvcik6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Js
b2NrOjpzdWNjZXNzb3JzKToKKyAgICAgICAgKEpTQzo6QjM6OkJhc2ljQmxvY2s6OnN1Y2Nlc3Nv
ckJsb2NrKToKKyAgICAgICAgKEpTQzo6QjM6OkJhc2ljQmxvY2s6OnN1Y2Nlc3NvckJsb2Nrcyk6
CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjpudW1QcmVkZWNlc3NvcnMpOgorICAgICAg
ICAoSlNDOjpCMzo6QmFzaWNCbG9jazo6cHJlZGVjZXNzb3IpOgorICAgICAgICAoSlNDOjpCMzo6
QmFzaWNCbG9jazo6ZnJlcXVlbmN5KToKKyAgICAgICAgKiBiMy9CM0Jhc2ljQmxvY2tJbmxpbmVz
Lmg6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjpyZXBsYWNlTGFzdFdpdGhOZXcpOgor
ICAgICAgICAoSlNDOjpCMzo6QmFzaWNCbG9jazo6dGFrZW4pOgorICAgICAgICAoSlNDOjpCMzo6
QmFzaWNCbG9jazo6bm90VGFrZW4pOgorICAgICAgICAoSlNDOjpCMzo6QmFzaWNCbG9jazo6ZmFs
bFRocm91Z2gpOgorICAgICAgICAoSlNDOjpCMzo6QmFzaWNCbG9jazo6bnVtU3VjY2Vzc29ycyk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjpzdWNjZXNzb3IpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpCMzo6QmFzaWNCbG9jazo6c3VjY2Vzc29ycyk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjpzdWNjZXNzb3JCbG9jayk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjpzdWNjZXNzb3JCbG9ja3MpOiBEZWxldGVk
LgorICAgICAgICAqIGIzL0IzQmxvY2tJbnNlcnRpb25TZXQuY3BwOgorICAgICAgICAoSlNDOjpC
Mzo6QmxvY2tJbnNlcnRpb25TZXQ6OnNwbGl0Rm9yd2FyZCk6CisgICAgICAgICogYjMvQjNCcmVh
a0NyaXRpY2FsRWRnZXMuY3BwOgorICAgICAgICAoSlNDOjpCMzo6YnJlYWtDcml0aWNhbEVkZ2Vz
KToKKyAgICAgICAgKiBiMy9CM0Nhc2VDb2xsZWN0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChK
U0M6OkIzOjpDYXNlQ29sbGVjdGlvbjo6ZHVtcCk6CisgICAgICAgICogYjMvQjNDYXNlQ29sbGVj
dGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6QjM6OkNhc2VDb2xsZWN0aW9uOjpDYXNlQ29s
bGVjdGlvbik6CisgICAgICAgIChKU0M6OkIzOjpDYXNlQ29sbGVjdGlvbjo6b3BlcmF0b3JbXSk6
CisgICAgICAgIChKU0M6OkIzOjpDYXNlQ29sbGVjdGlvbjo6aXRlcmF0b3I6Oml0ZXJhdG9yKToK
KyAgICAgICAgKEpTQzo6QjM6OkNhc2VDb2xsZWN0aW9uOjppdGVyYXRvcjo6b3BlcmF0b3IqKToK
KyAgICAgICAgKEpTQzo6QjM6OkNhc2VDb2xsZWN0aW9uOjppdGVyYXRvcjo6b3BlcmF0b3IrKyk6
CisgICAgICAgIChKU0M6OkIzOjpDYXNlQ29sbGVjdGlvbjo6aXRlcmF0b3I6Om9wZXJhdG9yPT0p
OgorICAgICAgICAoSlNDOjpCMzo6Q2FzZUNvbGxlY3Rpb246Oml0ZXJhdG9yOjpvcGVyYXRvciE9
KToKKyAgICAgICAgKEpTQzo6QjM6OkNhc2VDb2xsZWN0aW9uOjpiZWdpbik6CisgICAgICAgIChK
U0M6OkIzOjpDYXNlQ29sbGVjdGlvbjo6ZW5kKToKKyAgICAgICAgKiBiMy9CM0Nhc2VDb2xsZWN0
aW9uSW5saW5lcy5oOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6QjM6OkNhc2VDb2xsZWN0aW9uOjpm
YWxsVGhyb3VnaCk6CisgICAgICAgIChKU0M6OkIzOjpDYXNlQ29sbGVjdGlvbjo6c2l6ZSk6Cisg
ICAgICAgIChKU0M6OkIzOjpDYXNlQ29sbGVjdGlvbjo6YXQpOgorICAgICAgICAqIGIzL0IzQ2hl
Y2tTcGVjaWFsLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OkNoZWNrU3BlY2lhbDo6Q2hlY2tTcGVj
aWFsKToKKyAgICAgICAgKEpTQzo6QjM6OkNoZWNrU3BlY2lhbDo6aGlkZGVuQnJhbmNoKToKKyAg
ICAgICAgKiBiMy9CM0NvbW1vbi5oOgorICAgICAgICAoSlNDOjpCMzo6aXM2NEJpdCk6CisgICAg
ICAgICogYjMvQjNDb250cm9sVmFsdWUuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGIzL0IzQ29u
dHJvbFZhbHVlLmg6IFJlbW92ZWQuCisgICAgICAgICogYjMvQjNEYXRhU2VjdGlvbi5jcHA6Cisg
ICAgICAgIChKU0M6OkIzOjpEYXRhU2VjdGlvbjo6RGF0YVNlY3Rpb24pOgorICAgICAgICAqIGIz
L0IzRHVwbGljYXRlVGFpbHMuY3BwOgorICAgICAgICAqIGIzL0IzRml4U1NBLmNwcDoKKyAgICAg
ICAgKiBiMy9CM0ZvbGRQYXRoQ29uc3RhbnRzLmNwcDoKKyAgICAgICAgKiBiMy9CM0xvd2VyTWFj
cm9zLmNwcDoKKyAgICAgICAgKiBiMy9CM0xvd2VyVG9BaXIuY3BwOgorICAgICAgICAoSlNDOjpC
Mzo6QWlyOjpMb3dlclRvQWlyOjpydW4pOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpMb3dlclRv
QWlyOjpsb3dlcik6CisgICAgICAgICogYjMvQjNNYXRoRXh0cmFzLmNwcDoKKyAgICAgICAgKEpT
Qzo6QjM6OnBvd0RvdWJsZUludDMyKToKKyAgICAgICAgKiBiMy9CM09wY29kZS5oOgorICAgICAg
ICAoSlNDOjpCMzo6aXNDb25zdGFudCk6CisgICAgICAgIChKU0M6OkIzOjppc0RlZmluaXRlbHlU
ZXJtaW5hbCk6CisgICAgICAgICogYjMvQjNQYXRjaHBvaW50U3BlY2lhbC5jcHA6CisgICAgICAg
IChKU0M6OkIzOjpQYXRjaHBvaW50U3BlY2lhbDo6Z2VuZXJhdGUpOgorICAgICAgICAoSlNDOjpC
Mzo6UGF0Y2hwb2ludFNwZWNpYWw6OmlzVGVybWluYWwpOgorICAgICAgICAoSlNDOjpCMzo6UGF0
Y2hwb2ludFNwZWNpYWw6OmR1bXBJbXBsKToKKyAgICAgICAgKiBiMy9CM1BhdGNocG9pbnRTcGVj
aWFsLmg6CisgICAgICAgICogYjMvQjNQcm9jZWR1cmUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6
UHJvY2VkdXJlOjpyZXNldFJlYWNoYWJpbGl0eSk6CisgICAgICAgICogYjMvQjNQcm9jZWR1cmUu
aDoKKyAgICAgICAgKEpTQzo6QjM6OlByb2NlZHVyZTo6bGFzdFBoYXNlTmFtZSk6CisgICAgICAg
IChKU0M6OkIzOjpQcm9jZWR1cmU6OmJ5cHJvZHVjdHMpOgorICAgICAgICAqIGIzL0IzUmVkdWNl
U3RyZW5ndGguY3BwOgorICAgICAgICAqIGIzL0IzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmNw
cDoKKyAgICAgICAgKEpTQzo6QjM6OlN0YWNrbWFwR2VuZXJhdGlvblBhcmFtczo6dW5hdmFpbGFi
bGVSZWdpc3RlcnMpOgorICAgICAgICAoSlNDOjpCMzo6U3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1z
OjpzdWNjZXNzb3JMYWJlbHMpOgorICAgICAgICAoSlNDOjpCMzo6U3RhY2ttYXBHZW5lcmF0aW9u
UGFyYW1zOjpmYWxsc1Rocm91Z2hUb1N1Y2Nlc3Nvcik6CisgICAgICAgIChKU0M6OkIzOjpTdGFj
a21hcEdlbmVyYXRpb25QYXJhbXM6OnByb2MpOgorICAgICAgICAqIGIzL0IzU3RhY2ttYXBHZW5l
cmF0aW9uUGFyYW1zLmg6CisgICAgICAgIChKU0M6OkIzOjpTdGFja21hcEdlbmVyYXRpb25QYXJh
bXM6OmdwU2NyYXRjaCk6CisgICAgICAgIChKU0M6OkIzOjpTdGFja21hcEdlbmVyYXRpb25QYXJh
bXM6OmZwU2NyYXRjaCk6CisgICAgICAgICogYjMvQjNTd2l0Y2hWYWx1ZS5jcHA6CisgICAgICAg
IChKU0M6OkIzOjpTd2l0Y2hWYWx1ZTo6flN3aXRjaFZhbHVlKToKKyAgICAgICAgKEpTQzo6QjM6
OlN3aXRjaFZhbHVlOjpyZW1vdmVDYXNlKToKKyAgICAgICAgKEpTQzo6QjM6OlN3aXRjaFZhbHVl
OjpoYXNGYWxsVGhyb3VnaCk6CisgICAgICAgIChKU0M6OkIzOjpTd2l0Y2hWYWx1ZTo6c2V0RmFs
bFRocm91Z2gpOgorICAgICAgICAoSlNDOjpCMzo6U3dpdGNoVmFsdWU6OmFwcGVuZENhc2UpOgor
ICAgICAgICAoSlNDOjpCMzo6U3dpdGNoVmFsdWU6OmR1bXBTdWNjZXNzb3JzKToKKyAgICAgICAg
KEpTQzo6QjM6OlN3aXRjaFZhbHVlOjpkdW1wTWV0YSk6CisgICAgICAgIChKU0M6OkIzOjpTd2l0
Y2hWYWx1ZTo6Y2xvbmVJbXBsKToKKyAgICAgICAgKEpTQzo6QjM6OlN3aXRjaFZhbHVlOjpTd2l0
Y2hWYWx1ZSk6CisgICAgICAgICogYjMvQjNTd2l0Y2hWYWx1ZS5oOgorICAgICAgICAoSlNDOjpC
Mzo6U3dpdGNoVmFsdWU6OmFjY2VwdHMpOgorICAgICAgICAoSlNDOjpCMzo6U3dpdGNoVmFsdWU6
OmNhc2VWYWx1ZXMpOgorICAgICAgICAoSlNDOjpCMzo6U3dpdGNoVmFsdWU6OmNhc2VzKToKKyAg
ICAgICAgKEpTQzo6QjM6OlN3aXRjaFZhbHVlOjpmYWxsVGhyb3VnaCk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkIzOjpTd2l0Y2hWYWx1ZTo6c2l6ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkIzOjpTd2l0Y2hWYWx1ZTo6YXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpCMzo6U3dpdGNo
VmFsdWU6Om9wZXJhdG9yW10pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpCMzo6U3dpdGNoVmFs
dWU6Oml0ZXJhdG9yOjppdGVyYXRvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkIzOjpTd2l0
Y2hWYWx1ZTo6aXRlcmF0b3I6Om9wZXJhdG9yKik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkIz
OjpTd2l0Y2hWYWx1ZTo6aXRlcmF0b3I6Om9wZXJhdG9yKyspOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpCMzo6U3dpdGNoVmFsdWU6Oml0ZXJhdG9yOjpvcGVyYXRvcj09KTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6QjM6OlN3aXRjaFZhbHVlOjppdGVyYXRvcjo6b3BlcmF0b3IhPSk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkIzOjpTd2l0Y2hWYWx1ZTo6YmVnaW4pOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpCMzo6U3dpdGNoVmFsdWU6OmVuZCk6IERlbGV0ZWQuCisgICAgICAgICogYjMv
QjNWYWxpZGF0ZS5jcHA6CisgICAgICAgICogYjMvQjNWYWx1ZS5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpWYWx1ZTo6cmVwbGFjZVdpdGhQaGkpOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6OnJl
cGxhY2VXaXRoSnVtcCk6CisgICAgICAgIChKU0M6OkIzOjpWYWx1ZTo6cmVwbGFjZVdpdGhPb3Bz
KToKKyAgICAgICAgKEpTQzo6QjM6OlZhbHVlOjpkdW1wKToKKyAgICAgICAgKEpTQzo6QjM6OlZh
bHVlOjpkZWVwRHVtcCk6CisgICAgICAgIChKU0M6OkIzOjpWYWx1ZTo6ZHVtcFN1Y2Nlc3NvcnMp
OgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6Om5lZ0NvbnN0YW50KToKKyAgICAgICAgKEpTQzo6
QjM6OlZhbHVlOjp0eXBlRm9yKToKKyAgICAgICAgKiBiMy9CM1ZhbHVlLmg6CisgICAgICAgICog
YjMvYWlyL0FpckNvZGUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpDb2RlOjphZGRGYXN0
VG1wKToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6Q29kZTo6YWRkRGF0YVNlY3Rpb24pOgorICAg
ICAgICAoSlNDOjpCMzo6QWlyOjpDb2RlOjpqc0hhc2gpOgorICAgICAgICAqIGIzL2Fpci9BaXJD
b2RlLmg6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkNvZGU6OmlzRmFzdFRtcCk6CisgICAgICAg
IChKU0M6OkIzOjpBaXI6OkNvZGU6OnNldExhc3RQaGFzZU5hbWUpOgorICAgICAgICAqIGIzL2Fp
ci9BaXJDdXN0b20uaDoKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6UGF0Y2hDdXN0b206OnNob3Vs
ZFRyeUFsaWFzaW5nRGVmKToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6UGF0Y2hDdXN0b206Omlz
VGVybWluYWwpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpQYXRjaEN1c3RvbTo6aGFzTm9uQXJn
Tm9uQ29udHJvbEVmZmVjdHMpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpQYXRjaEN1c3RvbTo6
Z2VuZXJhdGUpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpDQ2FsbEN1c3RvbTo6YWRtaXRzU3Rh
Y2spOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpDQ2FsbEN1c3RvbTo6aXNUZXJtaW5hbCk6Cisg
ICAgICAgIChKU0M6OkIzOjpBaXI6OkNDYWxsQ3VzdG9tOjpoYXNOb25BcmdOb25Db250cm9sRWZm
ZWN0cyk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OlNodWZmbGVDdXN0b206OmFkbWl0c1N0YWNr
KToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6U2h1ZmZsZUN1c3RvbTo6aXNUZXJtaW5hbCk6Cisg
ICAgICAgIChKU0M6OkIzOjpBaXI6OlNodWZmbGVDdXN0b206Omhhc05vbkFyZ05vbkNvbnRyb2xF
ZmZlY3RzKToKKyAgICAgICAgKiBiMy9haXIvQWlyR2VuZXJhdGUuY3BwOgorICAgICAgICAoSlND
OjpCMzo6QWlyOjpnZW5lcmF0ZSk6CisgICAgICAgICogYjMvYWlyL0FpckdlbmVyYXRpb25Db250
ZXh0Lmg6CisgICAgICAgICogYjMvYWlyL0Fpckluc3QuaDoKKyAgICAgICAgKEpTQzo6QjM6OkFp
cjo6SW5zdDo6aGFzTm9uQ29udHJvbEVmZmVjdHMpOgorICAgICAgICAqIGIzL2Fpci9BaXJTaW1w
bGlmeUNGRy5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OnNpbXBsaWZ5Q0ZHKToKKyAgICAg
ICAgKiBiMy9haXIvQWlyU3BlY2lhbC5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OlNwZWNp
YWw6OnNob3VsZFRyeUFsaWFzaW5nRGVmKToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6U3BlY2lh
bDo6aXNUZXJtaW5hbCk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OlNwZWNpYWw6Omhhc05vbkFy
Z05vbkNvbnRyb2xFZmZlY3RzKToKKyAgICAgICAgKiBiMy9haXIvQWlyU3BlY2lhbC5oOgorICAg
ICAgICAqIGIzL2Fpci9BaXJWYWxpZGF0ZS5jcHA6CisgICAgICAgICogYjMvYWlyL29wY29kZV9n
ZW5lcmF0b3IucmI6CisgICAgICAgICogYjMvdGVzdGIzLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6
OnNob3VsZEJlVmVyYm9zZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0NDIpOgorICAgICAgICAo
SlNDOjpCMzo6dGVzdExvYWQ0Mik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TG9hZFdpdGhPZmZz
ZXRJbXBsKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RBcmcpOgorICAgICAgICAoSlNDOjpCMzo6
dGVzdFJldHVybkNvbnN0NjQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEFkZEFyZyk6CisgICAg
ICAgIChKU0M6OkIzOjp0ZXN0QWRkQXJncyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QWRkQXJn
SW1tKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RBZGRJbW1BcmcpOgorICAgICAgICAoSlNDOjpC
Mzo6dGVzdEFkZEFyZ01lbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QWRkTWVtQXJnKToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RBZGRJbW1NZW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEFk
ZEFyZzMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RBZGRBcmdzMzIpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdEFkZEFyZ01lbTMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RBZGRNZW1Bcmcz
Mik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QWRkSW1tTWVtMzIpOgorICAgICAgICAoSlNDOjpC
Mzo6dGVzdEFkZEFyZ1plcm9JbW1aRGVmKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RBZGRMb2Fk
VHdpY2UpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEFkZEFyZ0RvdWJsZSk6CisgICAgICAgIChK
U0M6OkIzOjp0ZXN0QWRkQXJnc0RvdWJsZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QWRkQXJn
SW1tRG91YmxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RBZGRJbW1BcmdEb3VibGUpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdEFkZEltbXNEb3VibGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dEFkZEFyZ0Zsb2F0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RBZGRBcmdzRmxvYXQpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdEFkZEFyZ0ltbUZsb2F0KToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RBZGRJbW1BcmdGbG9hdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QWRkSW1tc0Zsb2F0KToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RBZGRBcmdGbG9hdFdpdGhVc2VsZXNzRG91YmxlQ29udmVy
c2lvbik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QWRkQXJnc0Zsb2F0V2l0aFVzZWxlc3NEb3Vi
bGVDb252ZXJzaW9uKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RBZGRBcmdzRmxvYXRXaXRoRWZm
ZWN0ZnVsRG91YmxlQ29udmVyc2lvbik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TXVsQXJnKToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RNdWxBcmdTdG9yZSk6CisgICAgICAgIChKU0M6OkIzOjp0
ZXN0TXVsQWRkQXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNdWxBcmdzKToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RNdWxBcmdJbW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE11bEltbUFy
Zyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TXVsQXJnczMyKToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RNdWxMb2FkVHdpY2UpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE11bEFkZEFyZ3NMZWZ0
KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNdWxBZGRBcmdzUmlnaHQpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdE11bEFkZEFyZ3NMZWZ0MzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE11bEFk
ZEFyZ3NSaWdodDMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNdWxTdWJBcmdzTGVmdCk6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0TXVsU3ViQXJnc1JpZ2h0KToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RNdWxTdWJBcmdzTGVmdDMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNdWxTdWJBcmdz
UmlnaHQzMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TXVsTmVnQXJncyk6CisgICAgICAgIChK
U0M6OkIzOjp0ZXN0TXVsTmVnQXJnczMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNdWxBcmdE
b3VibGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE11bEFyZ3NEb3VibGUpOgorICAgICAgICAo
SlNDOjpCMzo6dGVzdE11bEFyZ0ltbURvdWJsZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TXVs
SW1tQXJnRG91YmxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNdWxJbW1zRG91YmxlKToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RNdWxBcmdGbG9hdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0
TXVsQXJnc0Zsb2F0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNdWxBcmdJbW1GbG9hdCk6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0TXVsSW1tQXJnRmxvYXQpOgorICAgICAgICAoSlNDOjpCMzo6
dGVzdE11bEltbXNGbG9hdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TXVsQXJnRmxvYXRXaXRo
VXNlbGVzc0RvdWJsZUNvbnZlcnNpb24pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE11bEFyZ3NG
bG9hdFdpdGhVc2VsZXNzRG91YmxlQ29udmVyc2lvbik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0
TXVsQXJnc0Zsb2F0V2l0aEVmZmVjdGZ1bERvdWJsZUNvbnZlcnNpb24pOgorICAgICAgICAoSlND
OjpCMzo6dGVzdERpdkFyZ0RvdWJsZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0RGl2QXJnc0Rv
dWJsZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0RGl2QXJnSW1tRG91YmxlKToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3REaXZJbW1BcmdEb3VibGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdERp
dkltbXNEb3VibGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdERpdkFyZ0Zsb2F0KToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3REaXZBcmdzRmxvYXQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdERp
dkFyZ0ltbUZsb2F0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3REaXZJbW1BcmdGbG9hdCk6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0RGl2SW1tc0Zsb2F0KToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RNb2RBcmdEb3VibGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE1vZEFyZ3NEb3VibGUpOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdE1vZEFyZ0ltbURvdWJsZSk6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0TW9kSW1tQXJnRG91YmxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNb2RJbW1zRG91
YmxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNb2RBcmdGbG9hdCk6CisgICAgICAgIChKU0M6
OkIzOjp0ZXN0TW9kQXJnc0Zsb2F0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNb2RBcmdJbW1G
bG9hdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TW9kSW1tQXJnRmxvYXQpOgorICAgICAgICAo
SlNDOjpCMzo6dGVzdE1vZEltbXNGbG9hdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0RGl2QXJn
RmxvYXRXaXRoVXNlbGVzc0RvdWJsZUNvbnZlcnNpb24pOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dERpdkFyZ3NGbG9hdFdpdGhVc2VsZXNzRG91YmxlQ29udmVyc2lvbik6CisgICAgICAgIChKU0M6
OkIzOjp0ZXN0RGl2QXJnc0Zsb2F0V2l0aEVmZmVjdGZ1bERvdWJsZUNvbnZlcnNpb24pOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdFN1YkFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3ViQXJn
cyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3ViQXJnSW1tKToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3ROZWdWYWx1ZVN1Yk9uZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3ViSW1tQXJnKToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdWJBcmdNZW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dFN1Yk1lbUFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3ViSW1tTWVtKToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RTdWJNZW1JbW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN1YkFyZ3Mz
Mik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3ViQXJnSW1tMzIpOgorICAgICAgICAoSlNDOjpC
Mzo6dGVzdFN1YkltbUFyZzMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdWJNZW1BcmczMik6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3ViQXJnTWVtMzIpOgorICAgICAgICAoSlNDOjpCMzo6
dGVzdFN1YkltbU1lbTMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdWJNZW1JbW0zMik6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0TmVnVmFsdWVTdWJPbmUzMik6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0U3ViQXJnRG91YmxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdWJBcmdzRG91Ymxl
KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdWJBcmdJbW1Eb3VibGUpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdFN1YkltbUFyZ0RvdWJsZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3ViSW1t
c0RvdWJsZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3ViQXJnRmxvYXQpOgorICAgICAgICAo
SlNDOjpCMzo6dGVzdFN1YkFyZ3NGbG9hdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3ViQXJn
SW1tRmxvYXQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN1YkltbUFyZ0Zsb2F0KToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RTdWJJbW1zRmxvYXQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN1
YkFyZ0Zsb2F0V2l0aFVzZWxlc3NEb3VibGVDb252ZXJzaW9uKToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RTdWJBcmdzRmxvYXRXaXRoVXNlbGVzc0RvdWJsZUNvbnZlcnNpb24pOgorICAgICAgICAo
SlNDOjpCMzo6dGVzdFN1YkFyZ3NGbG9hdFdpdGhFZmZlY3RmdWxEb3VibGVDb252ZXJzaW9uKToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRBbmRBcmdzKToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RCaXRBbmRTYW1lQXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRBbmRJbW1zKToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RCaXRBbmRBcmdJbW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dEJpdEFuZEltbUFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0QW5kQml0QW5kQXJnSW1t
SW1tKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRBbmRJbW1CaXRBbmRBcmdJbW0pOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdEJpdEFuZEFyZ3MzMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0
Qml0QW5kU2FtZUFyZzMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRBbmRJbW1zMzIpOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdEFuZEFyZ0ltbTMyKToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RCaXRBbmRJbW1BcmczMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0QW5kQml0QW5k
QXJnSW1tSW1tMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdEFuZEltbUJpdEFuZEFyZ0lt
bTMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRBbmRXaXRoTWFza1JldHVybnNCb29sZWFu
cyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0QW5kQXJnRG91YmxlKToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3RCaXRBbmRBcmdzRG91YmxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRB
bmRBcmdJbW1Eb3VibGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdEFuZEltbXNEb3VibGUp
OgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdEFuZEFyZ0Zsb2F0KToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RCaXRBbmRBcmdzRmxvYXQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdEFuZEFy
Z0ltbUZsb2F0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRBbmRJbW1zRmxvYXQpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdEJpdEFuZEFyZ3NGbG9hdFdpdGhVc2VsZXNzRG91YmxlQ29udmVy
c2lvbik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0T3JBcmdzKToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RCaXRPclNhbWVBcmcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdE9ySW1tcyk6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0T3JBcmdJbW0pOgorICAgICAgICAoSlNDOjpCMzo6
dGVzdEJpdE9ySW1tQXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRPckJpdE9yQXJnSW1t
SW1tKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRPckltbUJpdE9yQXJnSW1tKToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RCaXRPckFyZ3MzMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0
T3JTYW1lQXJnMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdE9ySW1tczMyKToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RCaXRPckFyZ0ltbTMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RC
aXRPckltbUFyZzMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRPckJpdE9yQXJnSW1tSW1t
MzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdE9ySW1tQml0T3JBcmdJbW0zMik6CisgICAg
ICAgIChKU0M6OkIzOjp0ZXN0Qml0WG9yQXJncyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0
WG9yU2FtZUFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0WG9ySW1tcyk6CisgICAgICAg
IChKU0M6OkIzOjp0ZXN0Qml0WG9yQXJnSW1tKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRY
b3JJbW1BcmcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdFhvckJpdFhvckFyZ0ltbUltbSk6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0WG9ySW1tQml0WG9yQXJnSW1tKToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RCaXRYb3JBcmdzMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdFhv
clNhbWVBcmczMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0WG9ySW1tczMyKToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RCaXRYb3JBcmdJbW0zMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0
Qml0WG9ySW1tQXJnMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdFhvckJpdFhvckFyZ0lt
bUltbTMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRYb3JJbW1CaXRYb3JBcmdJbW0zMik6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0Tm90QXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RCaXROb3RJbW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdE5vdE1lbSk6CisgICAgICAg
IChKU0M6OkIzOjp0ZXN0Qml0Tm90QXJnMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdE5v
dEltbTMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXROb3RNZW0zMik6CisgICAgICAgIChK
U0M6OkIzOjp0ZXN0Qml0Tm90T25Cb29sZWFuQW5kQnJhbmNoMzIpOgorICAgICAgICAoSlNDOjpC
Mzo6dGVzdFNobEFyZ3MpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNobEltbXMpOgorICAgICAg
ICAoSlNDOjpCMzo6dGVzdFNobEFyZ0ltbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U2hsQXJn
MzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNobEFyZ3MzMik6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0U2hsSW1tczMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTaGxBcmdJbW0zMik6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0U1NockFyZ3MpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNT
aHJJbW1zKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTU2hyQXJnSW1tKToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3RTU2hyQXJnMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNTaHJBcmdzMzIp
OgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNTaHJJbW1zMzIpOgorICAgICAgICAoSlNDOjpCMzo6
dGVzdFNTaHJBcmdJbW0zMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0WlNockFyZ3MpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdFpTaHJJbW1zKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RaU2hy
QXJnSW1tKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RaU2hyQXJnMzIpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdFpTaHJBcmdzMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFpTaHJJbW1zMzIp
OgorICAgICAgICAoSlNDOjpCMzo6dGVzdFpTaHJBcmdJbW0zMik6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0Q2x6QXJnNjQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENsek1lbTY0KToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RDbHpBcmczMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2x6TWVt
MzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEFic0FyZyk6CisgICAgICAgIChKU0M6OkIzOjp0
ZXN0QWJzSW1tKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RBYnNNZW0pOgorICAgICAgICAoSlND
OjpCMzo6dGVzdEFic0Fic0FyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QWJzQml0d2lzZUNh
c3RBcmcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdHdpc2VDYXN0QWJzQml0d2lzZUNhc3RB
cmcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEFic0FyZ1dpdGhVc2VsZXNzRG91YmxlQ29udmVy
c2lvbik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QWJzQXJnV2l0aEVmZmVjdGZ1bERvdWJsZUNv
bnZlcnNpb24pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENlaWxBcmcpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdENlaWxJbW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENlaWxNZW0pOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdENlaWxDZWlsQXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RG
bG9vckNlaWxBcmcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENlaWxJVG9ENjQpOgorICAgICAg
ICAoSlNDOjpCMzo6dGVzdENlaWxJVG9EMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENlaWxB
cmdXaXRoVXNlbGVzc0RvdWJsZUNvbnZlcnNpb24pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENl
aWxBcmdXaXRoRWZmZWN0ZnVsRG91YmxlQ29udmVyc2lvbik6CisgICAgICAgIChKU0M6OkIzOjp0
ZXN0Rmxvb3JBcmcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEZsb29ySW1tKToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RGbG9vck1lbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Rmxvb3JGbG9v
ckFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2VpbEZsb29yQXJnKToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3RGbG9vcklUb0Q2NCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Rmxvb3JJVG9E
MzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEZsb29yQXJnV2l0aFVzZWxlc3NEb3VibGVDb252
ZXJzaW9uKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RGbG9vckFyZ1dpdGhFZmZlY3RmdWxEb3Vi
bGVDb252ZXJzaW9uKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTcXJ0QXJnKToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RTcXJ0SW1tKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTcXJ0TWVtKToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RTcXJ0QXJnV2l0aFVzZWxlc3NEb3VibGVDb252ZXJzaW9u
KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTcXJ0QXJnV2l0aEVmZmVjdGZ1bERvdWJsZUNvbnZl
cnNpb24pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENvbXBhcmVUd29GbG9hdFRvRG91YmxlKToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RDb21wYXJlT25lRmxvYXRUb0RvdWJsZSk6CisgICAgICAg
IChKU0M6OkIzOjp0ZXN0Q29tcGFyZUZsb2F0VG9Eb3VibGVUaHJvdWdoUGhpKToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3REb3VibGVUb0Zsb2F0VGhyb3VnaFBoaSk6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0RG91YmxlUHJvZHVjZXJQaGlUb0Zsb2F0Q29udmVyc2lvbik6CisgICAgICAgIChKU0M6
OkIzOjp0ZXN0RG91YmxlUHJvZHVjZXJQaGlUb0Zsb2F0Q29udmVyc2lvbldpdGhEb3VibGVDb25z
dW1lcik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0RG91YmxlUHJvZHVjZXJQaGlXaXRoTm9uRmxv
YXRDb25zdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0RG91YmxlQXJnVG9JbnQ2NEJpdHdpc2VD
YXN0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3REb3VibGVJbW1Ub0ludDY0Qml0d2lzZUNhc3Qp
OgorICAgICAgICAoSlNDOjpCMzo6dGVzdFR3b0JpdHdpc2VDYXN0T25Eb3VibGUpOgorICAgICAg
ICAoSlNDOjpCMzo6dGVzdEJpdHdpc2VDYXN0T25Eb3VibGVJbk1lbW9yeSk6CisgICAgICAgIChK
U0M6OkIzOjp0ZXN0Qml0d2lzZUNhc3RPbkRvdWJsZUluTWVtb3J5SW5kZXhlZCk6CisgICAgICAg
IChKU0M6OkIzOjp0ZXN0SW50NjRCQXJnVG9Eb3VibGVCaXR3aXNlQ2FzdCk6CisgICAgICAgIChK
U0M6OkIzOjp0ZXN0SW50NjRCSW1tVG9Eb3VibGVCaXR3aXNlQ2FzdCk6CisgICAgICAgIChKU0M6
OkIzOjp0ZXN0VHdvQml0d2lzZUNhc3RPbkludDY0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RC
aXR3aXNlQ2FzdE9uSW50NjRJbk1lbW9yeSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0d2lz
ZUNhc3RPbkludDY0SW5NZW1vcnlJbmRleGVkKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RGbG9h
dEltbVRvSW50MzJCaXR3aXNlQ2FzdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0d2lzZUNh
c3RPbkZsb2F0SW5NZW1vcnkpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEludDMyQkFyZ1RvRmxv
YXRCaXR3aXNlQ2FzdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0SW50MzJCSW1tVG9GbG9hdEJp
dHdpc2VDYXN0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RUd29CaXR3aXNlQ2FzdE9uSW50MzIp
OgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdHdpc2VDYXN0T25JbnQzMkluTWVtb3J5KToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RDb252ZXJ0RG91YmxlVG9GbG9hdEFyZyk6CisgICAgICAgIChK
U0M6OkIzOjp0ZXN0Q29udmVydERvdWJsZVRvRmxvYXRJbW0pOgorICAgICAgICAoSlNDOjpCMzo6
dGVzdENvbnZlcnREb3VibGVUb0Zsb2F0TWVtKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDb252
ZXJ0RmxvYXRUb0RvdWJsZUFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q29udmVydEZsb2F0
VG9Eb3VibGVJbW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENvbnZlcnRGbG9hdFRvRG91Ymxl
TWVtKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDb252ZXJ0RG91YmxlVG9GbG9hdFRvRG91Ymxl
VG9GbG9hdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TG9hZEZsb2F0Q29udmVydERvdWJsZUNv
bnZlcnRGbG9hdFN0b3JlRmxvYXQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEZyb3VuZEFyZyk6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0RnJvdW5kTWVtKToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RJVG9ENjRBcmcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdElUb0Y2NEFyZyk6CisgICAgICAg
IChKU0M6OkIzOjp0ZXN0SVRvRDMyQXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RJVG9GMzJB
cmcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdElUb0Q2NE1lbSk6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0SVRvRjY0TWVtKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RJVG9EMzJNZW0pOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdElUb0YzMk1lbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0SVRv
RDY0SW1tKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RJVG9GNjRJbW0pOgorICAgICAgICAoSlND
OjpCMzo6dGVzdElUb0QzMkltbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0SVRvRjMySW1tKToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RJVG9EUmVkdWNlZFRvSVRvRjY0QXJnKToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RJVG9EUmVkdWNlZFRvSVRvRjMyQXJnKToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RTdG9yZTMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdG9yZUNvbnN0YW50KToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RTdG9yZUNvbnN0YW50UHRyKToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RTdG9yZThBcmcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN0b3JlOEltbSk6CisgICAg
ICAgIChKU0M6OkIzOjp0ZXN0U3RvcmVQYXJ0aWFsOEJpdFJlZ2lzdGVyT25YODYpOgorICAgICAg
ICAoSlNDOjpCMzo6dGVzdFN0b3JlMTZBcmcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN0b3Jl
MTZJbW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFRydW5jKToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RBZGQxKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RBZGQxUHRyKToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3ROZWczMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TmVnUHRyKToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RTdG9yZUFkZExvYWQzMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0
U3RvcmVBZGRMb2FkSW1tMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN0b3JlQWRkTG9hZDgp
OgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN0b3JlQWRkTG9hZEltbTgpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdFN0b3JlQWRkTG9hZDE2KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdG9yZUFk
ZExvYWRJbW0xNik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3RvcmVBZGRMb2FkNjQpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdFN0b3JlQWRkTG9hZEltbTY0KToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RTdG9yZUFkZExvYWQzMkluZGV4KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdG9yZUFk
ZExvYWRJbW0zMkluZGV4KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdG9yZUFkZExvYWQ4SW5k
ZXgpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN0b3JlQWRkTG9hZEltbThJbmRleCk6CisgICAg
ICAgIChKU0M6OkIzOjp0ZXN0U3RvcmVBZGRMb2FkMTZJbmRleCk6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0U3RvcmVBZGRMb2FkSW1tMTZJbmRleCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3Rv
cmVBZGRMb2FkNjRJbmRleCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3RvcmVBZGRMb2FkSW1t
NjRJbmRleCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3RvcmVTdWJMb2FkKToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RTdG9yZUFkZExvYWRJbnRlcmZlcmVuY2UpOgorICAgICAgICAoSlNDOjpC
Mzo6dGVzdFN0b3JlQWRkQW5kTG9hZCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3RvcmVOZWdM
b2FkMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN0b3JlTmVnTG9hZFB0cik6CisgICAgICAg
IChKU0M6OkIzOjp0ZXN0QWRkMVVuY29tbXV0ZWQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdExv
YWRPZmZzZXQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdExvYWRPZmZzZXROb3RDb25zdGFudCk6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TG9hZE9mZnNldFVzaW5nQWRkKToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3RMb2FkT2Zmc2V0VXNpbmdBZGRJbnRlcmZlcmVuY2UpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdExvYWRPZmZzZXRVc2luZ0FkZE5vdENvbnN0YW50KToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RMb2FkQWRkclNoaWZ0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RGcmFtZVBvaW50
ZXIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE92ZXJyaWRlRnJhbWVQb2ludGVyKToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RTdGFja1Nsb3QpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdExvYWRG
cm9tRnJhbWVQb2ludGVyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdG9yZUxvYWRTdGFja1Ns
b3QpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdExvYWQpOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dFN0b3JlRmxvYXQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN0b3JlRG91YmxlQ29uc3RhbnRB
c0Zsb2F0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTcGlsbEdQKToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RTcGlsbEZQKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RJbnQzMlRvRG91YmxlUGFy
dGlhbFJlZ2lzdGVyU3RhbGwpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEludDMyVG9Eb3VibGVQ
YXJ0aWFsUmVnaXN0ZXJXaXRob3V0U3RhbGwpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJyYW5j
aCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QnJhbmNoUHRyKToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3REaWFtb25kKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCcmFuY2hOb3RFcXVhbCk6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0QnJhbmNoTm90RXF1YWxDb21tdXRlKToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3RCcmFuY2hOb3RFcXVhbE5vdEVxdWFsKToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RCcmFuY2hFcXVhbCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QnJhbmNoRXF1YWxFcXVhbCk6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QnJhbmNoRXF1YWxDb21tdXRlKToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3RCcmFuY2hFcXVhbEVxdWFsMSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QnJh
bmNoRXF1YWxPclVub3JkZXJlZEFyZ3MpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJyYW5jaE5v
dEVxdWFsQW5kT3JkZXJlZEFyZ3MpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJyYW5jaEVxdWFs
T3JVbm9yZGVyZWREb3VibGVBcmdJbW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJyYW5jaEVx
dWFsT3JVbm9yZGVyZWRGbG9hdEFyZ0ltbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QnJhbmNo
RXF1YWxPclVub3JkZXJlZERvdWJsZUltbXMpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJyYW5j
aEVxdWFsT3JVbm9yZGVyZWRGbG9hdEltbXMpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJyYW5j
aEVxdWFsT3JVbm9yZGVyZWRGbG9hdFdpdGhVc2VsZXNzRG91YmxlQ29udmVyc2lvbik6CisgICAg
ICAgIChKU0M6OkIzOjp0ZXN0QnJhbmNoRm9sZCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0RGlh
bW9uZEZvbGQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJyYW5jaE5vdEVxdWFsRm9sZFB0cik6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QnJhbmNoRXF1YWxGb2xkUHRyKToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3RCcmFuY2hMb2FkUHRyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCcmFuY2hM
b2FkMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJyYW5jaExvYWQ4Uyk6CisgICAgICAgIChK
U0M6OkIzOjp0ZXN0QnJhbmNoTG9hZDhaKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCcmFuY2hM
b2FkMTZTKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCcmFuY2hMb2FkMTZaKToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RCcmFuY2g4V2l0aExvYWQ4WkluZGV4KToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RDb21wbGV4KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTaW1wbGVQYXRjaHBvaW50KToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RTaW1wbGVQYXRjaHBvaW50V2l0aG91dE91cHV0Q2xvYmJl
cnNHUEFyZ3MpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNpbXBsZVBhdGNocG9pbnRXaXRoT3Vw
dXRDbG9iYmVyc0dQQXJncyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U2ltcGxlUGF0Y2hwb2lu
dFdpdGhvdXRPdXB1dENsb2JiZXJzRlBBcmdzKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTaW1w
bGVQYXRjaHBvaW50V2l0aE91cHV0Q2xvYmJlcnNGUEFyZ3MpOgorICAgICAgICAoSlNDOjpCMzo6
dGVzdFBhdGNocG9pbnRXaXRoRWFybHlDbG9iYmVyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RQ
YXRjaHBvaW50Q2FsbEFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0UGF0Y2hwb2ludEZpeGVk
UmVnaXN0ZXIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFBhdGNocG9pbnRBbnkpOgorICAgICAg
ICAoSlNDOjpCMzo6dGVzdFBhdGNocG9pbnRHUFNjcmF0Y2gpOgorICAgICAgICAoSlNDOjpCMzo6
dGVzdFBhdGNocG9pbnRGUFNjcmF0Y2gpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFBhdGNocG9p
bnRMb3RzT2ZMYXRlQW55cyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0UGF0Y2hwb2ludEFueUlt
bSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0UGF0Y2hwb2ludE1hbnlJbW1zKToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RQYXRjaHBvaW50V2l0aFJlZ2lzdGVyUmVzdWx0KToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3RQYXRjaHBvaW50V2l0aFN0YWNrQXJndW1lbnRSZXN1bHQpOgorICAgICAgICAo
SlNDOjpCMzo6dGVzdFBhdGNocG9pbnRXaXRoQW55UmVzdWx0KToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RTaW1wbGVDaGVjayk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hlY2tGYWxzZSk6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hlY2tUcnVlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RD
aGVja0xlc3NUaGFuKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDaGVja01lZ2FDb21ibyk6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hlY2tUcmlja3lNZWdhQ29tYm8pOgorICAgICAgICAoSlND
OjpCMzo6dGVzdENoZWNrVHdvTWVnYUNvbWJvcyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hl
Y2tUd29Ob25SZWR1bmRhbnRNZWdhQ29tYm9zKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDaGVj
a0FkZEltbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hlY2tBZGRJbW1Db21tdXRlKToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RDaGVja0FkZEltbVNvbWVSZWdpc3Rlcik6CisgICAgICAgIChK
U0M6OkIzOjp0ZXN0Q2hlY2tBZGQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoZWNrQWRkNjQp
OgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoZWNrQWRkRm9sZCk6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0Q2hlY2tBZGRGb2xkRmFpbCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hlY2tBZGRB
cmd1bWVudEFsaWFzaW5nNjQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoZWNrQWRkQXJndW1l
bnRBbGlhc2luZzMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDaGVja0FkZFNlbGZPdmVyZmxv
dzY0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDaGVja0FkZFNlbGZPdmVyZmxvdzMyKToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RDaGVja1N1YkltbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0
Q2hlY2tTdWJCYWRJbW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoZWNrU3ViKToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RDaGVja1N1YjY0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDaGVj
a1N1YkZvbGQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoZWNrU3ViRm9sZEZhaWwpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdENoZWNrTmVnKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDaGVj
a05lZzY0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDaGVja011bCk6CisgICAgICAgIChKU0M6
OkIzOjp0ZXN0Q2hlY2tNdWxNZW1vcnkpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoZWNrTXVs
Mik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hlY2tNdWw2NCk6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0Q2hlY2tNdWxGb2xkKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDaGVja011bEZvbGRG
YWlsKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDaGVja011bEFyZ3VtZW50QWxpYXNpbmc2NCk6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hlY2tNdWxBcmd1bWVudEFsaWFzaW5nMzIpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdENoZWNrTXVsNjRTU2hyKToKKyAgICAgICAgKEpTQzo6QjM6Omdl
bmVyaWNUZXN0Q29tcGFyZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0RXF1YWxEb3VibGUpOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdENhbGxTaW1wbGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dENhbGxSYXJlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDYWxsUmFyZUxpdmUpOgorICAgICAg
ICAoSlNDOjpCMzo6dGVzdENhbGxTaW1wbGVQdXJlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RD
YWxsRnVuY3Rpb25XaXRoSGVsbGFBcmd1bWVudHMpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFJl
dHVybkRvdWJsZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0UmV0dXJuRmxvYXQpOgorICAgICAg
ICAoSlNDOjpCMzo6dGVzdENhbGxTaW1wbGVEb3VibGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dENhbGxTaW1wbGVGbG9hdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2FsbEZ1bmN0aW9uV2l0
aEhlbGxhRG91YmxlQXJndW1lbnRzKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDYWxsRnVuY3Rp
b25XaXRoSGVsbGFGbG9hdEFyZ3VtZW50cyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hpbGxE
aXYpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoaWxsRGl2VHdpY2UpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdENoaWxsRGl2NjQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE1vZEFyZyk6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0TW9kQXJncyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TW9k
SW1tcyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TW9kQXJnMzIpOgorICAgICAgICAoSlNDOjpC
Mzo6dGVzdE1vZEFyZ3MzMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TW9kSW1tczMyKToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RDaGlsbE1vZEFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0
Q2hpbGxNb2RBcmdzKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDaGlsbE1vZEltbXMpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdENoaWxsTW9kQXJnMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dENoaWxsTW9kQXJnczMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDaGlsbE1vZEltbXMzMik6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3dpdGNoKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RT
d2l0Y2hDaGlsbERpdik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3dpdGNoVGFyZ2V0dGluZ1Nh
bWVCbG9jayk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3dpdGNoVGFyZ2V0dGluZ1NhbWVCbG9j
a0ZvbGRQYXRoQ29uc3RhbnQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFRydW5jRm9sZCk6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0WkV4dDMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RaRXh0
MzJGb2xkKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTRXh0MzIpOgorICAgICAgICAoSlNDOjpC
Mzo6dGVzdFNFeHQzMkZvbGQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFRydW5jWkV4dDMyKToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RUcnVuY1NFeHQzMik6CisgICAgICAgIChKU0M6OkIzOjp0
ZXN0U0V4dDgpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNFeHQ4Rm9sZCk6CisgICAgICAgIChK
U0M6OkIzOjp0ZXN0U0V4dDhTRXh0OCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U0V4dDhTRXh0
MTYpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNFeHQ4Qml0QW5kKToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RCaXRBbmRTRXh0OCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U0V4dDE2KToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RTRXh0MTZGb2xkKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RT
RXh0MTZTRXh0MTYpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNFeHQxNlNFeHQ4KToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RTRXh0MTZCaXRBbmQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJp
dEFuZFNFeHQxNik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U0V4dDMyQml0QW5kKToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RCaXRBbmRTRXh0MzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJh
c2ljU2VsZWN0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTZWxlY3RUZXN0KToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RTZWxlY3RDb21wYXJlRG91YmxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RTZWxlY3RDb21wYXJlRmxvYXQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNlbGVjdENvbXBh
cmVGbG9hdFRvRG91YmxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTZWxlY3REb3VibGUpOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdFNlbGVjdERvdWJsZVRlc3QpOgorICAgICAgICAoSlNDOjpC
Mzo6dGVzdFNlbGVjdERvdWJsZUNvbXBhcmVEb3VibGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dFNlbGVjdERvdWJsZUNvbXBhcmVGbG9hdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U2VsZWN0
RmxvYXRDb21wYXJlRmxvYXQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNlbGVjdEZvbGQpOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdFNlbGVjdEludmVydCk6CisgICAgICAgIChKU0M6OkIzOjp0
ZXN0Q2hlY2tTZWxlY3QpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoZWNrU2VsZWN0Q2hlY2tT
ZWxlY3QpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFBvd0RvdWJsZUJ5SW50ZWdlckxvb3ApOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdFRydW5jT3JIaWdoKToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RUcnVuY09yTG93KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRBbmRPckhpZ2gpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdEJpdEFuZE9yTG93KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RC
cmFuY2g2NEVxdWFsKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCcmFuY2g2NEVxdWFsSW1tKToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RCcmFuY2g2NEVxdWFsTWVtKToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RCcmFuY2g2NEVxdWFsTWVtSW1tKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdG9y
ZThMb2FkOFopOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN0b3JlMTZMb2FkMTZaKToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RTU2hyU2hsMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNTaHJT
aGw2NCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0VHJpdmlhbEluZmluaXRlTG9vcCk6CisgICAg
ICAgIChKU0M6OkIzOjp0ZXN0Rm9sZFBhdGhFcXVhbCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0
TFNoaWZ0U2VsZjMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RSU2hpZnRTZWxmMzIpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdFVSU2hpZnRTZWxmMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dExTaGlmdFNlbGY2NCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0UlNoaWZ0U2VsZjY0KToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RVUlNoaWZ0U2VsZjY0KToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RQYXRjaHBvaW50RG91YmxlUmVncyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3BpbGxEZWZT
bWFsbGVyVGhhblVzZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3BpbGxVc2VMYXJnZXJUaGFu
RGVmKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RMYXRlUmVnaXN0ZXIpOgorICAgICAgICAoSlND
OjpCMzo6dGhyZWFkZWRJbnRlcnByZXRlclByaW50KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RU
aHJlYWRlZEludGVycHJldGVyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RSZWR1Y2VTdHJlbmd0
aENoZWNrQm90dG9tVXNlSW5Bbm90aGVyQmxvY2spOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFJl
c2V0UmVhY2hhYmlsaXR5RGFuZ2xpbmdSZWZlcmVuY2UpOgorICAgICAgICAoSlNDOjpCMzo6cnVu
KToKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKiBmdGwvRlRM
T3V0cHV0LmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpPdXRwdXQ6Omp1bXApOgorICAgICAgICAo
SlNDOjpGVEw6Ok91dHB1dDo6YnJhbmNoKToKKyAgICAgICAgKEpTQzo6RlRMOjpPdXRwdXQ6OnJl
dCk6CisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0Ojp1bnJlYWNoYWJsZSk6CisgICAgICAgIChK
U0M6OkZUTDo6T3V0cHV0OjpzcGVjdWxhdGUpOgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6
dHJhcCk6CisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0OjphbmNob3IpOgorICAgICAgICAoSlND
OjpGVEw6Ok91dHB1dDo6ZGVjcmVtZW50U3VwZXJTYW1wbGVyQ291bnQpOgorICAgICAgICAoSlND
OjpGVEw6Ok91dHB1dDo6YWRkSW5jb21pbmdUb1BoaSk6CisgICAgICAgICogZnRsL0ZUTE91dHB1
dC5oOgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6Y29uc3RJbnRQdHIpOgorICAgICAgICAo
SlNDOjpGVEw6Ok91dHB1dDo6Y2FsbFdpdGhvdXRTaWRlRWZmZWN0cyk6CisgICAgICAgIChKU0M6
OkZUTDo6T3V0cHV0Ojpzd2l0Y2hJbnN0cnVjdGlvbik6CisgICAgICAgIChKU0M6OkZUTDo6T3V0
cHV0OjpwaGkpOgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6YWRkSW5jb21pbmdUb1BoaSk6
CisKIDIwMTYtMDctMDggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAg
ICAgIEdlbmVyYXRlIFdlYkNvcmUgYnVpbHRpbiB3cmFwcGVyIGZpbGVzCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEwOCw2ICsxMDgs
NyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIGIzL0IzQmxvY2tJbnNlcnRpb25T
ZXQuY3BwCiAgICAgYjMvQjNCcmVha0NyaXRpY2FsRWRnZXMuY3BwCiAgICAgYjMvQjNDQ2FsbFZh
bHVlLmNwcAorICAgIGIzL0IzQ2FzZUNvbGxlY3Rpb24uY3BwCiAgICAgYjMvQjNDaGVja1NwZWNp
YWwuY3BwCiAgICAgYjMvQjNDaGVja1ZhbHVlLmNwcAogICAgIGIzL0IzQ29tbW9uLmNwcApAQCAt
MTE4LDcgKzExOSw2IEBAIHNldChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgYjMvQjNDb25z
dERvdWJsZVZhbHVlLmNwcAogICAgIGIzL0IzQ29uc3RGbG9hdFZhbHVlLmNwcAogICAgIGIzL0Iz
Q29uc3RyYWluZWRWYWx1ZS5jcHAKLSAgICBiMy9CM0NvbnRyb2xWYWx1ZS5jcHAKICAgICBiMy9C
M0RhdGFTZWN0aW9uLmNwcAogICAgIGIzL0IzRHVwbGljYXRlVGFpbHMuY3BwCiAgICAgYjMvQjNF
ZmZlY3RzLmNwcApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIw
MjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC03NzMsOCArNzczLDYgQEAKIAkJMEZF
Qzg1MTAxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29uc3Q2NFZhbHVlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkVDODRDNjFCREFDREFDMDA4MEZGNzQg
LyogQjNDb25zdDY0VmFsdWUuaCAqLzsgfTsKIAkJMEZFQzg1MTExQkRBQ0RBQzAwODBGRjc0IC8q
IEIzQ29uc3REb3VibGVWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRkVDODRDNzFCREFDREFDMDA4MEZGNzQgLyogQjNDb25zdERvdWJsZVZh
bHVlLmNwcCAqLzsgfTsKIAkJMEZFQzg1MTIxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29uc3REb3Vi
bGVWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEZFQzg0QzgxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29uc3REb3VibGVWYWx1ZS5oICovOyB9Owot
CQkwRkVDODUxMzFCREFDREFDMDA4MEZGNzQgLyogQjNDb250cm9sVmFsdWUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZFQzg0QzkxQkRBQ0RBQzAw
ODBGRjc0IC8qIEIzQ29udHJvbFZhbHVlLmNwcCAqLzsgfTsKLQkJMEZFQzg1MTQxQkRBQ0RBQzAw
ODBGRjc0IC8qIEIzQ29udHJvbFZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRkVDODRDQTFCREFDREFDMDA4MEZGNzQgLyogQjNDb250cm9sVmFs
dWUuaCAqLzsgfTsKIAkJMEZFQzg1MTUxQkRBQ0RBQzAwODBGRjc0IC8qIEIzRnJlcXVlbmN5Q2xh
c3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZF
Qzg0Q0IxQkRBQ0RBQzAwODBGRjc0IC8qIEIzRnJlcXVlbmN5Q2xhc3MuY3BwICovOyB9OwogCQkw
RkVDODUxNjFCREFDREFDMDA4MEZGNzQgLyogQjNGcmVxdWVuY3lDbGFzcy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZFQzg0Q0MxQkRBQ0RBQzAwODBG
Rjc0IC8qIEIzRnJlcXVlbmN5Q2xhc3MuaCAqLzsgfTsKIAkJMEZFQzg1MTcxQkRBQ0RBQzAwODBG
Rjc0IC8qIEIzRnJlcXVlbnRlZEJsb2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRkVDODRDRDFCREFDREFDMDA4MEZGNzQgLyogQjNGcmVxdWVudGVk
QmxvY2suaCAqLzsgfTsKQEAgLTE5OTcsNiArMTk5NSw5IEBACiAJCURDNjlBQTY2MUNGN0ExRjIw
MEM2MjcyRiAvKiBNYXRjaFJlc3VsdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBEQzY5QUE2NTFDRjdBMUVGMDBDNjI3MkYgLyogTWF0Y2hSZXN1bHQu
Y3BwICovOyB9OwogCQlEQzc5OTc4MzFDREU5RkEwMDA0RDRBMDkgLyogVGFnUmVnaXN0ZXJzTW9k
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM3OTk3
ODIxQ0RFOUY5RTAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlEQzc5OTc4NDFDREU5RkEyMDA0RDRB
MDkgLyogVGFnUmVnaXN0ZXJzTW9kZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBEQzc5OTc4MTFDREU5RjlFMDA0RDRBMDkgLyogVGFnUmVnaXN0ZXJz
TW9kZS5jcHAgKi87IH07CisJCURDOUEwQzFGMUQyRDlDQjEwMDg1MTI0RSAvKiBCM0Nhc2VDb2xs
ZWN0aW9uSW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gREM5QTBDMUUxRDJEOTRFRjAwODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rpb25JbmxpbmVz
LmggKi87IH07CisJCURDOUEwQzIwMUQyRDlDQjMwMDg1MTI0RSAvKiBCM0Nhc2VDb2xsZWN0aW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzlBMEMx
RDFEMkQ5NEVGMDA4NTEyNEUgLyogQjNDYXNlQ29sbGVjdGlvbi5oICovOyB9OworCQlEQzlBMEMy
MTFEMkQ5Q0I0MDA4NTEyNEUgLyogQjNDYXNlQ29sbGVjdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzlBMEMxQzFEMkQ5NEVGMDA4NTEyNEUg
LyogQjNDYXNlQ29sbGVjdGlvbi5jcHAgKi87IH07CiAJCURDRUUyMjA5MUNFQjk4OTUwMDBDMjM5
NiAvKiBERkdCYWNrd2FyZHNDRkcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IERDRUUyMjA2MUNFQjk4OTAwMDBDMjM5NiAvKiBERkdCYWNrd2FyZHNDRkcu
aCAqLzsgfTsKIAkJRENFRTIyMEExQ0VCOTg5NTAwMEMyMzk2IC8qIERGR0JhY2t3YXJkc0RvbWlu
YXRvcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERD
RUUyMjA3MUNFQjk4OTAwMDBDMjM5NiAvKiBERkdCYWNrd2FyZHNEb21pbmF0b3JzLmggKi87IH07
CiAJCURDRUUyMjBCMUNFQjk4OTUwMDBDMjM5NiAvKiBERkdDb250cm9sRXF1aXZhbGVuY2VBbmFs
eXNpcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRENF
RTIyMDgxQ0VCOTg5MDAwMEMyMzk2IC8qIERGR0NvbnRyb2xFcXVpdmFsZW5jZUFuYWx5c2lzLmgg
Ki87IH07CkBAIC0yOTY0LDggKzI5NjUsNiBAQAogCQkwRkVDODRDNjFCREFDREFDMDA4MEZGNzQg
LyogQjNDb25zdDY0VmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQjND
b25zdDY0VmFsdWUuaDsgcGF0aCA9IGIzL0IzQ29uc3Q2NFZhbHVlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGRUM4NEM3MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0RG91Ymxl
VmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQjNDb25zdERv
dWJsZVZhbHVlLmNwcDsgcGF0aCA9IGIzL0IzQ29uc3REb3VibGVWYWx1ZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRUM4NEM4MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0
RG91YmxlVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQjNDb25zdERv
dWJsZVZhbHVlLmg7IHBhdGggPSBiMy9CM0NvbnN0RG91YmxlVmFsdWUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJMEZFQzg0QzkxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29udHJvbFZh
bHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEIzQ29udHJvbFZh
bHVlLmNwcDsgcGF0aCA9IGIzL0IzQ29udHJvbFZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJMEZFQzg0Q0ExQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29udHJvbFZhbHVlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEIzQ29udHJvbFZhbHVlLmg7IHBhdGgg
PSBiMy9CM0NvbnRyb2xWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkVD
ODRDQjFCREFDREFDMDA4MEZGNzQgLyogQjNGcmVxdWVuY3lDbGFzcy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBCM0ZyZXF1ZW5jeUNsYXNzLmNwcDsgcGF0aCA9IGIz
L0IzRnJlcXVlbmN5Q2xhc3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkVD
ODRDQzFCREFDREFDMDA4MEZGNzQgLyogQjNGcmVxdWVuY3lDbGFzcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBCM0ZyZXF1ZW5jeUNsYXNzLmg7IHBhdGggPSBiMy9CM0ZyZXF1
ZW5jeUNsYXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRUM4NENEMUJEQUNE
QUMwMDgwRkY3NCAvKiBCM0ZyZXF1ZW50ZWRCbG9jay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBCM0ZyZXF1ZW50ZWRCbG9jay5oOyBwYXRoID0gYjMvQjNGcmVxdWVudGVkQmxv
Y2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQyMjUsNiArNDIyNCw5IEBACiAJ
CURDNjlBQTY1MUNGN0ExRUYwMEM2MjcyRiAvKiBNYXRjaFJlc3VsdC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNYXRjaFJlc3VsdC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCURDNzk5NzgxMUNERTlGOUUwMDRENEEwOSAvKiBUYWdSZWdpc3RlcnNN
b2RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRhZ1JlZ2lzdGVy
c01vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzc5OTc4MjFDREU5RjlF
MDA0RDRBMDkgLyogVGFnUmVnaXN0ZXJzTW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBUYWdSZWdpc3RlcnNNb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CURDOUEwQzFDMUQyRDk0RUYwMDg1MTI0RSAvKiBCM0Nhc2VDb2xsZWN0aW9uLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEIzQ2FzZUNvbGxlY3Rpb24uY3BwOyBwYXRo
ID0gYjMvQjNDYXNlQ29sbGVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CURDOUEwQzFEMUQyRDk0RUYwMDg1MTI0RSAvKiBCM0Nhc2VDb2xsZWN0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEIzQ2FzZUNvbGxlY3Rpb24uaDsgcGF0aCA9IGIzL0Iz
Q2FzZUNvbGxlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREM5QTBDMUUx
RDJEOTRFRjAwODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rpb25JbmxpbmVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEIzQ2FzZUNvbGxlY3Rpb25JbmxpbmVzLmg7IHBhdGggPSBi
My9CM0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlEQ0VFMjIwNjFDRUI5ODkwMDAwQzIzOTYgLyogREZHQmFja3dhcmRzQ0ZHLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0JhY2t3YXJkc0NGRy5oOyBwYXRoID0gZGZnL0RG
R0JhY2t3YXJkc0NGRy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQ0VFMjIwNzFD
RUI5ODkwMDAwQzIzOTYgLyogREZHQmFja3dhcmRzRG9taW5hdG9ycy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBERkdCYWNrd2FyZHNEb21pbmF0b3JzLmg7IHBhdGggPSBkZmcv
REZHQmFja3dhcmRzRG9taW5hdG9ycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlE
Q0VFMjIwODFDRUI5ODkwMDAwQzIzOTYgLyogREZHQ29udHJvbEVxdWl2YWxlbmNlQW5hbHlzaXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHQ29udHJvbEVxdWl2YWxlbmNl
QW5hbHlzaXMuaDsgcGF0aCA9IGRmZy9ERkdDb250cm9sRXF1aXZhbGVuY2VBbmFseXNpcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDY5MCw2ICs0NjkyLDkgQEAKIAkJCQlEQ0ZE
RkJENzFEMUY1RDk4MDBGRTNENzIgLyogQjNCb3R0b21Qcm92aWRlci5oICovLAogCQkJCTBGNkI4
QURFMUM0RUZFMTcwMDk2OTA1MiAvKiBCM0JyZWFrQ3JpdGljYWxFZGdlcy5jcHAgKi8sCiAJCQkJ
MEY2QjhBREYxQzRFRkUxNzAwOTY5MDUyIC8qIEIzQnJlYWtDcml0aWNhbEVkZ2VzLmggKi8sCisJ
CQkJREM5QTBDMUMxRDJEOTRFRjAwODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rpb24uY3BwICovLAor
CQkJCURDOUEwQzFEMUQyRDk0RUYwMDg1MTI0RSAvKiBCM0Nhc2VDb2xsZWN0aW9uLmggKi8sCisJ
CQkJREM5QTBDMUUxRDJEOTRFRjAwODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rpb25JbmxpbmVzLmgg
Ki8sCiAJCQkJMEYzMzhERjcxQkU5NkFBODAwMTNDODhGIC8qIEIzQ0NhbGxWYWx1ZS5jcHAgKi8s
CiAJCQkJMEYzMzhERjgxQkU5NkFBODAwMTNDODhGIC8qIEIzQ0NhbGxWYWx1ZS5oICovLAogCQkJ
CTBGMzNGQ0Y5MUMxNjI1QkUwMDMyM0Y2NyAvKiBCM0NGRy5oICovLApAQCAtNDcxNSw4ICs0NzIw
LDYgQEAKIAkJCQkwRkVDODVCMjFCREVEOTU3MDA4MEZGNzQgLyogQjNDb25zdFB0clZhbHVlLmgg
Ki8sCiAJCQkJMEYzMzhERjMxQkU5M0Q1NTAwMTNDODhGIC8qIEIzQ29uc3RyYWluZWRWYWx1ZS5j
cHAgKi8sCiAJCQkJMEYzMzhERjQxQkU5M0Q1NTAwMTNDODhGIC8qIEIzQ29uc3RyYWluZWRWYWx1
ZS5oICovLAotCQkJCTBGRUM4NEM5MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnRyb2xWYWx1ZS5j
cHAgKi8sCi0JCQkJMEZFQzg0Q0ExQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29udHJvbFZhbHVlLmgg
Ki8sCiAJCQkJMEYzMzhFMDExQkYwMjc2QzAwMTNDODhGIC8qIEIzRGF0YVNlY3Rpb24uY3BwICov
LAogCQkJCTBGMzM4RTAyMUJGMDI3NkMwMDEzQzg4RiAvKiBCM0RhdGFTZWN0aW9uLmggKi8sCiAJ
CQkJMEYzM0ZDRkExQzE2MjVCRTAwMzIzRjY3IC8qIEIzRG9taW5hdG9ycy5oICovLApAQCAtNzA2
OCw3ICs3MDcxLDYgQEAKIAkJCQkwRkVDODUxMDFCREFDREFDMDA4MEZGNzQgLyogQjNDb25zdDY0
VmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTEyMUJEQUNEQUMwMDgwRkY3NCAvKiBC
M0NvbnN0RG91YmxlVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NUIzMUJERUQ5NTcw
MDgwRkY3NCAvKiBCM0NvbnN0UHRyVmFsdWUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRUM4NTE0
MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnRyb2xWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEZFQzg1QzExQkUxNjdBMDAwODBGRjc0IC8qIEIzRWZmZWN0cy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEZFQzg1MTYxQkRBQ0RBQzAwODBGRjc0IC8qIEIzRnJlcXVlbmN5Q2xhc3MuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGNjE4MzJGMUM0NUJGMDcwMDcyNDUwQiAvKiBBaXJMb3dlckFmdGVyUmVn
QWxsb2MuaCBpbiBIZWFkZXJzICovLApAQCAtNzIyNSw2ICs3MjI3LDcgQEAKIAkJCQlCQzE4QzNG
QjBFMTZGNUNEMDBCMzQ0NjAgLyogRGVidWdnZXJDYWxsRnJhbWUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTZBRDJDQjREMTlCOTE0MDEwMDA2NTcxOSAvKiBEZWJ1Z2dlckV2YWxFbmFibGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlGRUEwODYyMTE4MkI3QTA0MDBGNkQ4NTEgLyogRGVidWdnZXJQcmlt
aXRpdmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQlEQzlBMEMxRjFEMkQ5Q0IxMDA4NTEyNEUgLyog
QjNDYXNlQ29sbGVjdGlvbklubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkQ0RERFMTk4
MzJEMzQwMDdENEIxOSAvKiBEZWJ1Z2dlclNjb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjEz
NkQ0RDE3NEFENjlFMDA3NUIzNTQgLyogRGVmZXJHQy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZD
NzEyREYxN0NEODc3QzAwOENDOTNDIC8qIERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oIGlu
IEhlYWRlcnMgKi8sCkBAIC03NDc4LDYgKzc0ODEsNyBAQAogCQkJCTBGRTBFNEFFMUMyNEM5NEEw
MDJFMTdCNiAvKiBBaXJUbXBXaWR0aC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdGMjk5NkMxN0Ew
QkI2NzAwMTA0MTdBIC8qIEZUTEZhaWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUEwQTJDMTcw
QjY2MTkwMEJCNzIyQyAvKiBGVExGb3JtYXR0ZWRWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
REM5QTBDMjAxRDJEOUNCMzAwODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGRDhBMzFBMTdENTFGMjIwMENBMkM0MCAvKiBGVExGb3JPU1JFbnRyeUpJVENv
ZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3OEE5NzdGMTc5NzM4RDUwMDlERjc0NCAvKiBGVExH
ZW5lcmF0ZWRGdW5jdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQTBBMEUxNzA1MTNEQjAw
QkI3MjJDIC8qIEZUTEpJVENvZGUuaCBpbiBIZWFkZXJzICovLApAQCAtODcxMSw3ICs4NzE1LDYg
QEAKIAkJCQk0MzZFNTQ1NDFDNDY4RTc3MDBCNUFGNzMgLyogQjNMZWdhbGl6ZU1lbW9yeU9mZnNl
dHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFQzg1MEYxQkRBQ0RBQzAwODBGRjc0IC8qIEIz
Q29uc3Q2NFZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRUM4NTExMUJEQUNEQUMwMDgw
RkY3NCAvKiBCM0NvbnN0RG91YmxlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFQzg1
MTMxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29udHJvbFZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTBGRUM4NUM1MUJFMTZGNUEwMDgwRkY3NCAvKiBCM0VmZmVjdHMuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMEZFQzg1MTUxQkRBQ0RBQzAwODBGRjc0IC8qIEIzRnJlcXVlbmN5Q2xhc3MuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFQzg1MTgxQkRBQ0RBQzAwODBGRjc0IC8qIEIzR2VuZXJh
dGUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC05MTU2LDYgKzkxNTksNyBAQAogCQkJCTE0N0YzOUQy
MTA3RUMzNzYwMDQyN0E0OCAvKiBKU0dsb2JhbE9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBNUZEMDA4NTE4OUIxQjdFMDA2MzMyMzEgLyogSlNHbG9iYWxPYmplY3RDb25zb2xlQWdlbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVDM0ExQTUxOEMwNDkwMjAwQzk1OTNBIC8qIEpTR2xv
YmFsT2JqZWN0Q29uc29sZUNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlEQzlBMEMyMTFE
MkQ5Q0I0MDA4NTEyNEUgLyogQjNDYXNlQ29sbGVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBNTk0NTU5MjE4MjQ3NDQ3MDBDQzM4NDMgLyogSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUE1N0QyM0U5MTg5MUIwNzcwMDMxQzdGQSAvKiBKU0dsb2Jh
bE9iamVjdERlYnVnZ2VyQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTRFOUQxN0IxMDdF
QzQ2OTAwNEREQTIxIC8qIEpTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcCBpbiBTb3VyY2VzICov
LApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFS
TTY0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlckFSTTY0LmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
ODc0LDYgKzI4NzQsMTIgQEAgcHVibGljOgogICAgICAgICBsb2FkNjQoYWRkcmVzcywgZ2V0Q2Fj
aGVkRGF0YVRlbXBSZWdpc3RlcklEQW5kSW52YWxpZGF0ZSgpKTsKICAgICAgICAgbV9hc3NlbWJs
ZXIuYnIoZGF0YVRlbXBSZWdpc3Rlcik7CiAgICAgfQorICAgIAorICAgIHZvaWQganVtcChCYXNl
SW5kZXggYWRkcmVzcykKKyAgICB7CisgICAgICAgIGxvYWQ2NChhZGRyZXNzLCBnZXRDYWNoZWRE
YXRhVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCkpOworICAgICAgICBtX2Fzc2VtYmxlci5i
cihkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICB9CiAKICAgICB2b2lkIGp1bXAoQWJzb2x1dGVBZGRy
ZXNzIGFkZHJlc3MpCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaAkocmV2aXNpb24gMjAy
ODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4
NkNvbW1vbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMjYzLDYgKzIyNjMsMTIgQEAgcHVibGljOgog
ICAgICAgICBtX2Fzc2VtYmxlci5qbXBfbShhZGRyZXNzLm9mZnNldCwgYWRkcmVzcy5iYXNlKTsK
ICAgICB9CiAKKyAgICAvLyBBZGRyZXNzIGlzIGEgbWVtb3J5IGxvY2F0aW9uIGNvbnRhaW5pbmcg
dGhlIGFkZHJlc3MgdG8ganVtcCB0bworICAgIHZvaWQganVtcChCYXNlSW5kZXggYWRkcmVzcykK
KyAgICB7CisgICAgICAgIG1fYXNzZW1ibGVyLmptcF9tKGFkZHJlc3Mub2Zmc2V0LCBhZGRyZXNz
LmJhc2UsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUpOworICAgIH0KKwogCiAgICAgLy8g
QXJpdGhtZXRpYyBjb250cm9sIGZsb3cgb3BlcmF0aW9uczoKICAgICAvLwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oCShyZXZpc2lvbiAy
MDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xOTgzLDYgKzE5ODMsMTEgQEAgcHVibGljOgogICAgICAgICBt
X2Zvcm1hdHRlci5vbmVCeXRlT3AoT1BfR1JPVVA1X0V2LCBHUk9VUDVfT1BfSk1QTiwgYmFzZSwg
b2Zmc2V0KTsKICAgICB9CiAgICAgCisgICAgdm9pZCBqbXBfbShpbnQgb2Zmc2V0LCBSZWdpc3Rl
cklEIGJhc2UsIFJlZ2lzdGVySUQgaW5kZXgsIGludCBzY2FsZSkKKyAgICB7CisgICAgICAgIG1f
Zm9ybWF0dGVyLm9uZUJ5dGVPcChPUF9HUk9VUDVfRXYsIEdST1VQNV9PUF9KTVBOLCBiYXNlLCBp
bmRleCwgc2NhbGUsIG9mZnNldCk7CisgICAgfQorICAgIAogI2lmICFDUFUoWDg2XzY0KQogICAg
IHZvaWQgam1wX20oY29uc3Qgdm9pZCogYWRkcmVzcykKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMwLDcgKzMwLDYgQEAKIAogI2luY2x1ZGUgIkIzQmFzaWNCbG9ja0lubGluZXMuaCIKICNpbmNs
dWRlICJCM0Jhc2ljQmxvY2tVdGlscy5oIgotI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCiAj
aW5jbHVkZSAiQjNQcm9jZWR1cmUuaCIKICNpbmNsdWRlICJCM1ZhbHVlSW5saW5lcy5oIgogI2lu
Y2x1ZGUgPHd0Zi9MaXN0RHVtcC5oPgpAQCAtNTIsMTIgKzUxLDE0IEBAIEJhc2ljQmxvY2s6On5C
YXNpY0Jsb2NrKCkKIHZvaWQgQmFzaWNCbG9jazo6YXBwZW5kKFZhbHVlKiB2YWx1ZSkKIHsKICAg
ICBtX3ZhbHVlcy5hcHBlbmQodmFsdWUpOworICAgIHZhbHVlLT5vd25lciA9IHRoaXM7CiB9CiAK
IHZvaWQgQmFzaWNCbG9jazo6YXBwZW5kTm9uVGVybWluYWwoVmFsdWUqIHZhbHVlKQogewogICAg
IG1fdmFsdWVzLmFwcGVuZChtX3ZhbHVlcy5sYXN0KCkpOwogICAgIG1fdmFsdWVzW21fdmFsdWVz
LnNpemUoKSAtIDFdID0gdmFsdWU7CisgICAgdmFsdWUtPm93bmVyID0gdGhpczsKIH0KIAogdm9p
ZCBCYXNpY0Jsb2NrOjpyZW1vdmVMYXN0KFByb2NlZHVyZSYgcHJvYykKQEAgLTg0LDkgKzg1LDQx
IEBAIFZhbHVlKiBCYXNpY0Jsb2NrOjphcHBlbmRJbnRDb25zdGFudChQcm8KICAgICByZXR1cm4g
YXBwZW5kSW50Q29uc3RhbnQocHJvYywgbGlrZVZhbHVlLT5vcmlnaW4oKSwgbGlrZVZhbHVlLT50
eXBlKCksIHZhbHVlKTsKIH0KIAordm9pZCBCYXNpY0Jsb2NrOjpjbGVhclN1Y2Nlc3NvcnMoKQor
eworICAgIG1fc3VjY2Vzc29ycy5jbGVhcigpOworfQorCit2b2lkIEJhc2ljQmxvY2s6OmFwcGVu
ZFN1Y2Nlc3Nvcihjb25zdCBGcmVxdWVudGVkQmxvY2smIHRhcmdldCkKK3sKKyAgICBtX3N1Y2Nl
c3NvcnMuYXBwZW5kKHRhcmdldCk7Cit9CisKK3ZvaWQgQmFzaWNCbG9jazo6c2V0U3VjY2Vzc29y
cyhjb25zdCBGcmVxdWVudGVkQmxvY2smIHRhcmdldCkKK3sKKyAgICBtX3N1Y2Nlc3NvcnMucmVz
aXplKDEpOworICAgIG1fc3VjY2Vzc29yc1swXSA9IHRhcmdldDsKK30KKwordm9pZCBCYXNpY0Js
b2NrOjpzZXRTdWNjZXNzb3JzKGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgdGFrZW4sIGNvbnN0IEZy
ZXF1ZW50ZWRCbG9jayYgbm90VGFrZW4pCit7CisgICAgbV9zdWNjZXNzb3JzLnJlc2l6ZSgyKTsK
KyAgICBtX3N1Y2Nlc3NvcnNbMF0gPSB0YWtlbjsKKyAgICBtX3N1Y2Nlc3NvcnNbMV0gPSBub3RU
YWtlbjsKK30KKwogYm9vbCBCYXNpY0Jsb2NrOjpyZXBsYWNlU3VjY2Vzc29yKEJhc2ljQmxvY2sq
IGZyb20sIEJhc2ljQmxvY2sqIHRvKQogewotICAgIHJldHVybiBsYXN0KCktPmFzPENvbnRyb2xW
YWx1ZT4oKS0+cmVwbGFjZVN1Y2Nlc3Nvcihmcm9tLCB0byk7CisgICAgYm9vbCByZXN1bHQgPSBm
YWxzZTsKKyAgICBmb3IgKEJhc2ljQmxvY2sqJiBzdWNjZXNzb3IgOiBzdWNjZXNzb3JCbG9ja3Mo
KSkgeworICAgICAgICBpZiAoc3VjY2Vzc29yID09IGZyb20pIHsKKyAgICAgICAgICAgIHN1Y2Nl
c3NvciA9IHRvOworICAgICAgICAgICAgcmVzdWx0ID0gdHJ1ZTsKKyAgICAgICAgICAgIAorICAg
ICAgICAgICAgLy8gS2VlcCBsb29waW5nIGJlY2F1c2UgYSBzdWNjZXNzb3IgbWF5IGJlIG1lbnRp
b25lZCBtdWx0aXBsZSB0aW1lcywgbGlrZSBpbiBhIFN3aXRjaC4KKyAgICAgICAgfQorICAgIH0K
KyAgICByZXR1cm4gcmVzdWx0OwogfQogCiBib29sIEJhc2ljQmxvY2s6OmFkZFByZWRlY2Vzc29y
KEJhc2ljQmxvY2sqIGJsb2NrKQpAQCAtMTIxLDYgKzE1NCw0MiBAQCB2b2lkIEJhc2ljQmxvY2s6
OmRlZXBEdW1wKGNvbnN0IFByb2NlZHVyCiAgICAgICAgIG91dC5wcmludCgiICBQcmVkZWNlc3Nv
cnM6ICIsIHBvaW50ZXJMaXN0RHVtcChwcmVkZWNlc3NvcnMoKSksICJcbiIpOwogICAgIGZvciAo
VmFsdWUqIHZhbHVlIDogKnRoaXMpCiAgICAgICAgIG91dC5wcmludCgiICAgICIsIEIzOjpkZWVw
RHVtcChwcm9jLCB2YWx1ZSksICJcbiIpOworICAgIGlmIChzdWNjZXNzb3JzKCkuc2l6ZSgpKSB7
CisgICAgICAgIG91dC5wcmludCgiICBTdWNjZXNzb3JzOiAiKTsKKyAgICAgICAgaWYgKHNpemUo
KSkKKyAgICAgICAgICAgIGxhc3QoKS0+ZHVtcFN1Y2Nlc3NvcnModGhpcywgb3V0KTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgb3V0LnByaW50KGxpc3REdW1wKHN1Y2Nlc3NvcnMoKSkpOwor
ICAgICAgICBvdXQucHJpbnQoIlxuIik7CisgICAgfQorfQorCitWYWx1ZSogQmFzaWNCbG9jazo6
YXBwZW5kTmV3Q29udHJvbFZhbHVlKFByb2NlZHVyZSYgcHJvYywgT3Bjb2RlIG9wY29kZSwgT3Jp
Z2luIG9yaWdpbikKK3sKKyAgICBSRUxFQVNFX0FTU0VSVChvcGNvZGUgPT0gT29wcyk7CisgICAg
Y2xlYXJTdWNjZXNzb3JzKCk7CisgICAgcmV0dXJuIGFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgb3Bj
b2RlLCBvcmlnaW4pOworfQorCitWYWx1ZSogQmFzaWNCbG9jazo6YXBwZW5kTmV3Q29udHJvbFZh
bHVlKFByb2NlZHVyZSYgcHJvYywgT3Bjb2RlIG9wY29kZSwgT3JpZ2luIG9yaWdpbiwgVmFsdWUq
IHZhbHVlKQoreworICAgIFJFTEVBU0VfQVNTRVJUKG9wY29kZSA9PSBSZXR1cm4pOworICAgIGNs
ZWFyU3VjY2Vzc29ycygpOworICAgIHJldHVybiBhcHBlbmROZXc8VmFsdWU+KHByb2MsIG9wY29k
ZSwgb3JpZ2luLCB2YWx1ZSk7Cit9CisKK1ZhbHVlKiBCYXNpY0Jsb2NrOjphcHBlbmROZXdDb250
cm9sVmFsdWUoUHJvY2VkdXJlJiBwcm9jLCBPcGNvZGUgb3Bjb2RlLCBPcmlnaW4gb3JpZ2luLCBj
b25zdCBGcmVxdWVudGVkQmxvY2smIHRhcmdldCkKK3sKKyAgICBSRUxFQVNFX0FTU0VSVChvcGNv
ZGUgPT0gSnVtcCk7CisgICAgc2V0U3VjY2Vzc29ycyh0YXJnZXQpOworICAgIHJldHVybiBhcHBl
bmROZXc8VmFsdWU+KHByb2MsIG9wY29kZSwgb3JpZ2luKTsKK30KKworVmFsdWUqIEJhc2ljQmxv
Y2s6OmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShQcm9jZWR1cmUmIHByb2MsIE9wY29kZSBvcGNvZGUs
IE9yaWdpbiBvcmlnaW4sIFZhbHVlKiBwcmVkaWNhdGUsIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYg
dGFrZW4sIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgbm90VGFrZW4pCit7CisgICAgUkVMRUFTRV9B
U1NFUlQob3Bjb2RlID09IEJyYW5jaCk7CisgICAgc2V0U3VjY2Vzc29ycyh0YWtlbiwgbm90VGFr
ZW4pOworICAgIHJldHVybiBhcHBlbmROZXc8VmFsdWU+KHByb2MsIG9wY29kZSwgb3JpZ2luLCBw
cmVkaWNhdGUpOwogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtMjks
NiArMjksNyBAQAogI2lmIEVOQUJMRShCM19KSVQpCiAKICNpbmNsdWRlICJCM0ZyZXF1ZW50ZWRC
bG9jay5oIgorI2luY2x1ZGUgIkIzT3Bjb2RlLmgiCiAjaW5jbHVkZSAiQjNPcmlnaW4uaCIKICNp
bmNsdWRlICJCM1N1Y2Nlc3NvckNvbGxlY3Rpb24uaCIKICNpbmNsdWRlICJCM1R5cGUuaCIKQEAg
LTQ3LDcgKzQ4LDcgQEAgY2xhc3MgQmFzaWNCbG9jayB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBW
ZWN0b3I8VmFsdWUqPiBWYWx1ZUxpc3Q7CiAgICAgdHlwZWRlZiBWZWN0b3I8QmFzaWNCbG9jayos
IDI+IFByZWRlY2Vzc29yTGlzdDsKLSAgICB0eXBlZGVmIFZlY3RvcjxGcmVxdWVudGVkQmxvY2ss
IDI+IFN1Y2Nlc3Nvckxpc3Q7IC8vIFRoaXMgbWF0Y2hlcyBDb250cm9sVmFsdWU6OlN1Y2Nlc3Nv
ckxpc3QKKyAgICB0eXBlZGVmIFZlY3RvcjxGcmVxdWVudGVkQmxvY2ssIDI+IFN1Y2Nlc3Nvckxp
c3Q7CiAKICAgICBzdGF0aWMgY29uc3QgY2hhciogY29uc3QgZHVtcFByZWZpeDsKIApAQCAtNzgs
NyArNzksNyBAQCBwdWJsaWM6CiAgICAgVmFsdWVUeXBlKiBhcHBlbmROZXcoUHJvY2VkdXJlJiwg
QXJndW1lbnRzLi4uKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBWYWx1ZVR5cGUsIHR5cGVuYW1l
Li4uIEFyZ3VtZW50cz4KICAgICBWYWx1ZVR5cGUqIGFwcGVuZE5ld05vblRlcm1pbmFsKFByb2Nl
ZHVyZSYsIEFyZ3VtZW50cy4uLik7Ci0KKyAgICAKICAgICBKU19FWFBPUlRfUFJJVkFURSBWYWx1
ZSogYXBwZW5kSW50Q29uc3RhbnQoUHJvY2VkdXJlJiwgT3JpZ2luLCBUeXBlLCBpbnQ2NF90IHZh
bHVlKTsKICAgICBWYWx1ZSogYXBwZW5kSW50Q29uc3RhbnQoUHJvY2VkdXJlJiwgVmFsdWUqIGxp
a2VWYWx1ZSwgaW50NjRfdCB2YWx1ZSk7CiAKQEAgLTg3LDE4ICs4OCwzOSBAQCBwdWJsaWM6CiAg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgVmFsdWVUeXBlLCB0eXBlbmFtZS4uLiBBcmd1bWVudHM+CiAg
ICAgVmFsdWVUeXBlKiByZXBsYWNlTGFzdFdpdGhOZXcoUHJvY2VkdXJlJiwgQXJndW1lbnRzLi4u
KTsKIAotICAgIHVuc2lnbmVkIG51bVN1Y2Nlc3NvcnMoKSBjb25zdDsKLSAgICBjb25zdCBGcmVx
dWVudGVkQmxvY2smIHN1Y2Nlc3Nvcih1bnNpZ25lZCBpbmRleCkgY29uc3Q7Ci0gICAgRnJlcXVl
bnRlZEJsb2NrJiBzdWNjZXNzb3IodW5zaWduZWQgaW5kZXgpOwotICAgIGNvbnN0IFN1Y2Nlc3Nv
ckxpc3QmIHN1Y2Nlc3NvcnMoKSBjb25zdDsKLSAgICBTdWNjZXNzb3JMaXN0JiBzdWNjZXNzb3Jz
KCk7Ci0KLSAgICBCYXNpY0Jsb2NrKiBzdWNjZXNzb3JCbG9jayh1bnNpZ25lZCBpbmRleCkgY29u
c3Q7Ci0gICAgQmFzaWNCbG9jayomIHN1Y2Nlc3NvckJsb2NrKHVuc2lnbmVkIGluZGV4KTsKLSAg
ICBTdWNjZXNzb3JDb2xsZWN0aW9uPEJhc2ljQmxvY2ssIFN1Y2Nlc3Nvckxpc3Q+IHN1Y2Nlc3Nv
ckJsb2NrcygpOwotICAgIFN1Y2Nlc3NvckNvbGxlY3Rpb248Y29uc3QgQmFzaWNCbG9jaywgY29u
c3QgU3VjY2Vzc29yTGlzdD4gc3VjY2Vzc29yQmxvY2tzKCkgY29uc3Q7CisgICAgdW5zaWduZWQg
bnVtU3VjY2Vzc29ycygpIGNvbnN0IHsgcmV0dXJuIG1fc3VjY2Vzc29ycy5zaXplKCk7IH0KKyAg
ICBjb25zdCBGcmVxdWVudGVkQmxvY2smIHN1Y2Nlc3Nvcih1bnNpZ25lZCBpbmRleCkgY29uc3Qg
eyByZXR1cm4gbV9zdWNjZXNzb3JzW2luZGV4XTsgfQorICAgIEZyZXF1ZW50ZWRCbG9jayYgc3Vj
Y2Vzc29yKHVuc2lnbmVkIGluZGV4KSB7IHJldHVybiBtX3N1Y2Nlc3NvcnNbaW5kZXhdOyB9Cisg
ICAgY29uc3QgU3VjY2Vzc29yTGlzdCYgc3VjY2Vzc29ycygpIGNvbnN0IHsgcmV0dXJuIG1fc3Vj
Y2Vzc29yczsgfQorICAgIFN1Y2Nlc3Nvckxpc3QmIHN1Y2Nlc3NvcnMoKSB7IHJldHVybiBtX3N1
Y2Nlc3NvcnM7IH0KKyAgICAKKyAgICB2b2lkIGNsZWFyU3VjY2Vzc29ycygpOworICAgIEpTX0VY
UE9SVF9QUklWQVRFIHZvaWQgYXBwZW5kU3VjY2Vzc29yKGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYp
OworICAgIHZvaWQgc2V0U3VjY2Vzc29ycyhjb25zdCBGcmVxdWVudGVkQmxvY2smKTsKKyAgICB2
b2lkIHNldFN1Y2Nlc3NvcnMoY29uc3QgRnJlcXVlbnRlZEJsb2NrJiwgY29uc3QgRnJlcXVlbnRl
ZEJsb2NrJik7CisKKyAgICBCYXNpY0Jsb2NrKiBzdWNjZXNzb3JCbG9jayh1bnNpZ25lZCBpbmRl
eCkgY29uc3QgeyByZXR1cm4gc3VjY2Vzc29yKGluZGV4KS5ibG9jaygpOyB9CisgICAgQmFzaWNC
bG9jayomIHN1Y2Nlc3NvckJsb2NrKHVuc2lnbmVkIGluZGV4KSB7IHJldHVybiBzdWNjZXNzb3Io
aW5kZXgpLmJsb2NrKCk7IH0KKyAgICBTdWNjZXNzb3JDb2xsZWN0aW9uPEJhc2ljQmxvY2ssIFN1
Y2Nlc3Nvckxpc3Q+IHN1Y2Nlc3NvckJsb2NrcygpCisgICAgeworICAgICAgICByZXR1cm4gU3Vj
Y2Vzc29yQ29sbGVjdGlvbjxCYXNpY0Jsb2NrLCBTdWNjZXNzb3JMaXN0PihzdWNjZXNzb3JzKCkp
OworICAgIH0KKyAgICBTdWNjZXNzb3JDb2xsZWN0aW9uPGNvbnN0IEJhc2ljQmxvY2ssIGNvbnN0
IFN1Y2Nlc3Nvckxpc3Q+IHN1Y2Nlc3NvckJsb2NrcygpIGNvbnN0CisgICAgeworICAgICAgICBy
ZXR1cm4gU3VjY2Vzc29yQ29sbGVjdGlvbjxjb25zdCBCYXNpY0Jsb2NrLCBjb25zdCBTdWNjZXNz
b3JMaXN0PihzdWNjZXNzb3JzKCkpOworICAgIH0KIAogICAgIGJvb2wgcmVwbGFjZVN1Y2Nlc3Nv
cihCYXNpY0Jsb2NrKiBmcm9tLCBCYXNpY0Jsb2NrKiB0byk7CisgICAgCisgICAgLy8gVGhpcyBp
cyBvbmx5IHZhbGlkIGZvciBKdW1wIGFuZCBCcmFuY2guCisgICAgY29uc3QgRnJlcXVlbnRlZEJs
b2NrJiB0YWtlbigpIGNvbnN0OworICAgIEZyZXF1ZW50ZWRCbG9jayYgdGFrZW4oKTsKKyAgICAv
LyBUaGlzIGlzIG9ubHkgdmFsaWQgZm9yIEJyYW5jaC4KKyAgICBjb25zdCBGcmVxdWVudGVkQmxv
Y2smIG5vdFRha2VuKCkgY29uc3Q7CisgICAgRnJlcXVlbnRlZEJsb2NrJiBub3RUYWtlbigpOwor
ICAgIC8vIFRoaXMgaXMgb25seSB2YWxpZCBmb3IgQnJhbmNoIGFuZCBTd2l0Y2guCisgICAgY29u
c3QgRnJlcXVlbnRlZEJsb2NrJiBmYWxsVGhyb3VnaCgpIGNvbnN0OworICAgIEZyZXF1ZW50ZWRC
bG9jayYgZmFsbFRocm91Z2goKTsKIAogICAgIHVuc2lnbmVkIG51bVByZWRlY2Vzc29ycygpIGNv
bnN0IHsgcmV0dXJuIG1fcHJlZGVjZXNzb3JzLnNpemUoKTsgfQogICAgIEJhc2ljQmxvY2sqIHBy
ZWRlY2Vzc29yKHVuc2lnbmVkIGluZGV4KSBjb25zdCB7IHJldHVybiBtX3ByZWRlY2Vzc29yc1tp
bmRleF07IH0KQEAgLTExNSwxMCArMTM3LDIzIEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZVBy
ZWRlY2Vzc29yc0FmdGVyKCk7CiAKICAgICBkb3VibGUgZnJlcXVlbmN5KCkgY29uc3QgeyByZXR1
cm4gbV9mcmVxdWVuY3k7IH0KLQorICAgIAogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNv
bnN0OwogICAgIHZvaWQgZGVlcER1bXAoY29uc3QgUHJvY2VkdXJlJiwgUHJpbnRTdHJlYW0mKSBj
b25zdDsKIAorICAgIC8vIFRoZXNlIGFyZSBkZXByZWNhdGVkIG1ldGhvZCBmb3IgY29tcGF0aWJp
bGl0eSB3aXRoIHRoZSBvbGQgQ29udHJvbFZhbHVlIGNsYXNzLiBEb24ndCB1c2UgdGhlbQorICAg
IC8vIGluIG5ldyBjb2RlLgorICAgIC8vIEZJWE1FOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTU5NDQwCisgICAgCisgICAgLy8gVXNlIHRoaXMgZm9yIE9vcHMuCisg
ICAgSlNfRVhQT1JUX1BSSVZBVEUgVmFsdWUqIGFwcGVuZE5ld0NvbnRyb2xWYWx1ZShQcm9jZWR1
cmUmLCBPcGNvZGUsIE9yaWdpbik7CisgICAgLy8gVXNlIHRoaXMgZm9yIFJldHVybi4KKyAgICBK
U19FWFBPUlRfUFJJVkFURSBWYWx1ZSogYXBwZW5kTmV3Q29udHJvbFZhbHVlKFByb2NlZHVyZSYs
IE9wY29kZSwgT3JpZ2luLCBWYWx1ZSopOworICAgIC8vIFVzZSB0aGlzIGZvciBKdW1wLgorICAg
IEpTX0VYUE9SVF9QUklWQVRFIFZhbHVlKiBhcHBlbmROZXdDb250cm9sVmFsdWUoUHJvY2VkdXJl
JiwgT3Bjb2RlLCBPcmlnaW4sIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYpOworICAgIC8vIFVzZSB0
aGlzIGZvciBCcmFuY2guCisgICAgSlNfRVhQT1JUX1BSSVZBVEUgVmFsdWUqIGFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShQcm9jZWR1cmUmLCBPcGNvZGUsIE9yaWdpbiwgVmFsdWUqLCBjb25zdCBGcmVx
dWVudGVkQmxvY2smLCBjb25zdCBGcmVxdWVudGVkQmxvY2smKTsKKyAgICAKIHByaXZhdGU6CiAg
ICAgZnJpZW5kIGNsYXNzIEJsb2NrSW5zZXJ0aW9uU2V0OwogICAgIGZyaWVuZCBjbGFzcyBJbnNl
cnRpb25TZXQ7CkBAIC0xMzAsNiArMTY1LDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2lu
ZGV4OwogICAgIFZhbHVlTGlzdCBtX3ZhbHVlczsKICAgICBQcmVkZWNlc3Nvckxpc3QgbV9wcmVk
ZWNlc3NvcnM7CisgICAgU3VjY2Vzc29yTGlzdCBtX3N1Y2Nlc3NvcnM7CiAgICAgZG91YmxlIG1f
ZnJlcXVlbmN5OwogfTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNC
bG9ja0lubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNC
YXNpY0Jsb2NrSW5saW5lcy5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNCYXNpY0Jsb2NrSW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw4ICsy
OSw4IEBACiAjaWYgRU5BQkxFKEIzX0pJVCkKIAogI2luY2x1ZGUgIkIzQmFzaWNCbG9jay5oIgot
I2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNQcm9jZWR1cmVJbmxpbmVz
LmgiCisjaW5jbHVkZSAiQjNWYWx1ZS5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIz
IHsKIApAQCAtNTgsNDkgKzU4LDQwIEBAIFZhbHVlVHlwZSogQmFzaWNCbG9jazo6cmVwbGFjZUxh
c3RXaXRoTmUKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1pbmxpbmUgdW5zaWduZWQgQmFzaWNC
bG9jazo6bnVtU3VjY2Vzc29ycygpIGNvbnN0CitpbmxpbmUgY29uc3QgRnJlcXVlbnRlZEJsb2Nr
JiBCYXNpY0Jsb2NrOjp0YWtlbigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGxhc3QoKS0+YXM8Q29u
dHJvbFZhbHVlPigpLT5udW1TdWNjZXNzb3JzKCk7CisgICAgQVNTRVJUKGxhc3QoKS0+b3Bjb2Rl
KCkgPT0gSnVtcCB8fCBsYXN0KCktPm9wY29kZSgpID09IEJyYW5jaCk7CisgICAgcmV0dXJuIG1f
c3VjY2Vzc29yc1swXTsKIH0KIAotaW5saW5lIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgQmFzaWNC
bG9jazo6c3VjY2Vzc29yKHVuc2lnbmVkIGluZGV4KSBjb25zdAoraW5saW5lIEZyZXF1ZW50ZWRC
bG9jayYgQmFzaWNCbG9jazo6dGFrZW4oKQogewotICAgIHJldHVybiBsYXN0KCktPmFzPENvbnRy
b2xWYWx1ZT4oKS0+c3VjY2Vzc29yKGluZGV4KTsKKyAgICBBU1NFUlQobGFzdCgpLT5vcGNvZGUo
KSA9PSBKdW1wIHx8IGxhc3QoKS0+b3Bjb2RlKCkgPT0gQnJhbmNoKTsKKyAgICByZXR1cm4gbV9z
dWNjZXNzb3JzWzBdOwogfQogCi1pbmxpbmUgRnJlcXVlbnRlZEJsb2NrJiBCYXNpY0Jsb2NrOjpz
dWNjZXNzb3IodW5zaWduZWQgaW5kZXgpCitpbmxpbmUgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBC
YXNpY0Jsb2NrOjpub3RUYWtlbigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGxhc3QoKS0+YXM8Q29u
dHJvbFZhbHVlPigpLT5zdWNjZXNzb3IoaW5kZXgpOworICAgIEFTU0VSVChsYXN0KCktPm9wY29k
ZSgpID09IEJyYW5jaCk7CisgICAgcmV0dXJuIG1fc3VjY2Vzc29yc1sxXTsKIH0KIAotaW5saW5l
IGNvbnN0IEJhc2ljQmxvY2s6OlN1Y2Nlc3Nvckxpc3QmIEJhc2ljQmxvY2s6OnN1Y2Nlc3NvcnMo
KSBjb25zdAoraW5saW5lIEZyZXF1ZW50ZWRCbG9jayYgQmFzaWNCbG9jazo6bm90VGFrZW4oKQog
ewotICAgIHJldHVybiBsYXN0KCktPmFzPENvbnRyb2xWYWx1ZT4oKS0+c3VjY2Vzc29ycygpOwor
ICAgIEFTU0VSVChsYXN0KCktPm9wY29kZSgpID09IEJyYW5jaCk7CisgICAgcmV0dXJuIG1fc3Vj
Y2Vzc29yc1sxXTsKIH0KIAotaW5saW5lIEJhc2ljQmxvY2s6OlN1Y2Nlc3Nvckxpc3QmIEJhc2lj
QmxvY2s6OnN1Y2Nlc3NvcnMoKQoraW5saW5lIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgQmFzaWNC
bG9jazo6ZmFsbFRocm91Z2goKSBjb25zdAogewotICAgIHJldHVybiBsYXN0KCktPmFzPENvbnRy
b2xWYWx1ZT4oKS0+c3VjY2Vzc29ycygpOworICAgIEFTU0VSVChsYXN0KCktPm9wY29kZSgpID09
IEJyYW5jaCB8fCBsYXN0KCktPm9wY29kZSgpID09IFN3aXRjaCk7CisgICAgcmV0dXJuIG1fc3Vj
Y2Vzc29ycy5sYXN0KCk7CiB9CiAKLWlubGluZSBCYXNpY0Jsb2NrKiBCYXNpY0Jsb2NrOjpzdWNj
ZXNzb3JCbG9jayh1bnNpZ25lZCBpbmRleCkgY29uc3QKK2lubGluZSBGcmVxdWVudGVkQmxvY2sm
IEJhc2ljQmxvY2s6OmZhbGxUaHJvdWdoKCkKIHsKLSAgICByZXR1cm4gc3VjY2Vzc29yKGluZGV4
KS5ibG9jaygpOwotfQotCi1pbmxpbmUgQmFzaWNCbG9jayomIEJhc2ljQmxvY2s6OnN1Y2Nlc3Nv
ckJsb2NrKHVuc2lnbmVkIGluZGV4KQotewotICAgIHJldHVybiBzdWNjZXNzb3IoaW5kZXgpLmJs
b2NrKCk7Ci19Ci0KLWlubGluZSBTdWNjZXNzb3JDb2xsZWN0aW9uPEJhc2ljQmxvY2ssIEJhc2lj
QmxvY2s6OlN1Y2Nlc3Nvckxpc3Q+IEJhc2ljQmxvY2s6OnN1Y2Nlc3NvckJsb2NrcygpCi17Ci0g
ICAgcmV0dXJuIFN1Y2Nlc3NvckNvbGxlY3Rpb248QmFzaWNCbG9jaywgU3VjY2Vzc29yTGlzdD4o
c3VjY2Vzc29ycygpKTsKLX0KLQotaW5saW5lIFN1Y2Nlc3NvckNvbGxlY3Rpb248Y29uc3QgQmFz
aWNCbG9jaywgY29uc3QgQmFzaWNCbG9jazo6U3VjY2Vzc29yTGlzdD4gQmFzaWNCbG9jazo6c3Vj
Y2Vzc29yQmxvY2tzKCkgY29uc3QKLXsKLSAgICByZXR1cm4gU3VjY2Vzc29yQ29sbGVjdGlvbjxj
b25zdCBCYXNpY0Jsb2NrLCBjb25zdCBTdWNjZXNzb3JMaXN0PihzdWNjZXNzb3JzKCkpOworICAg
IEFTU0VSVChsYXN0KCktPm9wY29kZSgpID09IEJyYW5jaCB8fCBsYXN0KCktPm9wY29kZSgpID09
IFN3aXRjaCk7CisgICAgcmV0dXJuIG1fc3VjY2Vzc29ycy5sYXN0KCk7CiB9CiAKIH0gfSAvLyBu
YW1lc3BhY2UgSlNDOjpCMwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmxvY2tJ
bnNlcnRpb25TZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0Jsb2NrSW5zZXJ0aW9uU2V0LmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzQmxvY2tJbnNlcnRpb25TZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03
OCw4ICs3OCw4IEBAIEJhc2ljQmxvY2sqIEJsb2NrSW5zZXJ0aW9uU2V0OjpzcGxpdEZvcncKICAg
ICAgICAgcmVzdWx0LT5tX3ZhbHVlc1tpXSA9IGJsb2NrLT5tX3ZhbHVlc1tpXTsKIAogICAgIC8v
IE1ha2UgdGhlIG5ldyBibG9jayBqdW1wIHRvICdibG9jaycuCi0gICAgcmVzdWx0LT5tX3ZhbHVl
c1t2YWx1ZUluZGV4XSA9Ci0gICAgICAgIG1fcHJvYy5hZGQ8Q29udHJvbFZhbHVlPihKdW1wLCB2
YWx1ZS0+b3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhibG9jaykpOworICAgIHJlc3VsdC0+bV92
YWx1ZXNbdmFsdWVJbmRleF0gPSBtX3Byb2MuYWRkPFZhbHVlPihKdW1wLCB2YWx1ZS0+b3JpZ2lu
KCkpOworICAgIHJlc3VsdC0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2soYmxvY2spKTsK
IAogICAgIC8vIElmIHdlIGhhZCBpbnNlcnRlZCB0aGluZ3MgaW50byAnYmxvY2snIGJlZm9yZSB0
aGlzLCBleGVjdXRlIHRob3NlIGluc2VydGlvbnMgbm93LgogICAgIGlmIChpbnNlcnRpb25TZXQp
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCcmVha0NyaXRpY2FsRWRnZXMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0JyZWFrQ3JpdGljYWxF
ZGdlcy5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0JyZWFrQ3JpdGljYWxFZGdlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDYgQEAK
IAogI2luY2x1ZGUgIkIzQmFzaWNCbG9ja0lubGluZXMuaCIKICNpbmNsdWRlICJCM0Jsb2NrSW5z
ZXJ0aW9uU2V0LmgiCi0jaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKICNpbmNsdWRlICJCM1By
b2NlZHVyZUlubGluZXMuaCIKICNpbmNsdWRlICJCM1ZhbHVlSW5saW5lcy5oIgogCkBAIC01MCw4
ICs0OSw4IEBAIHZvaWQgYnJlYWtDcml0aWNhbEVkZ2VzKFByb2NlZHVyZSYgcHJvYykKIAogICAg
ICAgICAgICAgQmFzaWNCbG9jayogcGFkID0KICAgICAgICAgICAgICAgICBpbnNlcnRpb25TZXQu
aW5zZXJ0QmVmb3JlKHN1Y2Nlc3Nvciwgc3VjY2Vzc29yLT5mcmVxdWVuY3koKSk7Ci0gICAgICAg
ICAgICBwYWQtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAotICAgICAgICAgICAgICAgIHByb2Ms
IEp1bXAsIHN1Y2Nlc3Nvci0+YXQoMCktPm9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soc3VjY2Vz
c29yKSk7CisgICAgICAgICAgICBwYWQtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSnVtcCwgc3Vj
Y2Vzc29yLT5hdCgwKS0+b3JpZ2luKCkpOworICAgICAgICAgICAgcGFkLT5zZXRTdWNjZXNzb3Jz
KEZyZXF1ZW50ZWRCbG9jayhzdWNjZXNzb3IpKTsKICAgICAgICAgICAgIHBhZC0+YWRkUHJlZGVj
ZXNzb3IoYmxvY2spOwogICAgICAgICAgICAgc3VjY2Vzc29yLT5yZXBsYWNlUHJlZGVjZXNzb3Io
YmxvY2ssIHBhZCk7CiAgICAgICAgICAgICBzdWNjZXNzb3IgPSBwYWQ7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNDYXNlQ29sbGVjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2FzZUNvbGxlY3Rpb24uY3BwCShyZXZpc2lvbiAwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2FzZUNvbGxlY3Rpb24uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkIzQ2FzZUNvbGxl
Y3Rpb24uaCIKKworI2lmIEVOQUJMRShCM19KSVQpCisKKyNpbmNsdWRlICJCM0Jhc2ljQmxvY2tJ
bmxpbmVzLmgiCisjaW5jbHVkZSAiQjNDYXNlQ29sbGVjdGlvbklubGluZXMuaCIKKyNpbmNsdWRl
IDx3dGYvQ29tbWFQcmludGVyLmg+CisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewor
Cit2b2lkIENhc2VDb2xsZWN0aW9uOjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0Cit7Cisg
ICAgQ29tbWFQcmludGVyIGNvbW1hOworICAgIGZvciAoU3dpdGNoQ2FzZSBzd2l0Y2hDYXNlIDog
KnRoaXMpCisgICAgICAgIG91dC5wcmludChjb21tYSwgc3dpdGNoQ2FzZSk7CisgICAgb3V0LnBy
aW50KGNvbW1hLCAiZGVmYXVsdC0+IiwgZmFsbFRocm91Z2goKSk7Cit9CisKK30gfSAvLyBuYW1l
c3BhY2UgSlNDOjpCMworCisjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKKwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzQ2FzZUNvbGxlY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDYXNlQ29sbGVjdGlvbi5oCShyZXZpc2lvbiAwKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2FzZUNvbGxlY3Rpb24uaAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDEyMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCisjaWZuZGVmIEIzQ2FzZUNvbGxlY3Rpb25faAorI2RlZmluZSBCM0Nhc2VDb2xs
ZWN0aW9uX2gKKworI2lmIEVOQUJMRShCM19KSVQpCisKKyNpbmNsdWRlICJCM1N3aXRjaENhc2Uu
aCIKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CisKK2NsYXNzIEJhc2ljQmxvY2s7
CitjbGFzcyBTd2l0Y2hWYWx1ZTsKKworLy8gTk9URTogWW91J2xsIGFsd2F5cyB3YW50IHRvIGlu
Y2x1ZGUgQjNDYXNlQ29sbGVjdGlvbklubGluZXMuaCB3aGVuIHlvdSB1c2UgdGhpcy4KKworY2xh
c3MgQ2FzZUNvbGxlY3Rpb24geworcHVibGljOgorICAgIENhc2VDb2xsZWN0aW9uKCkKKyAgICB7
CisgICAgfQorICAgIAorICAgIENhc2VDb2xsZWN0aW9uKGNvbnN0IFN3aXRjaFZhbHVlKiB0ZXJt
aW5hbCwgY29uc3QgQmFzaWNCbG9jayogb3duZXIpCisgICAgICAgIDogbV9zd2l0Y2godGVybWlu
YWwpCisgICAgICAgICwgbV9vd25lcihvd25lcikKKyAgICB7CisgICAgfQorICAgIAorICAgIGNv
bnN0IEZyZXF1ZW50ZWRCbG9jayYgZmFsbFRocm91Z2goKSBjb25zdDsKKworICAgIHVuc2lnbmVk
IHNpemUoKSBjb25zdDsKKyAgICBTd2l0Y2hDYXNlIGF0KHVuc2lnbmVkIGluZGV4KSBjb25zdDsK
KyAgICAKKyAgICBTd2l0Y2hDYXNlIG9wZXJhdG9yW10odW5zaWduZWQgaW5kZXgpIGNvbnN0Cisg
ICAgeworICAgICAgICByZXR1cm4gYXQoaW5kZXgpOworICAgIH0KKworICAgIGNsYXNzIGl0ZXJh
dG9yIHsKKyAgICBwdWJsaWM6CisgICAgICAgIGl0ZXJhdG9yKCkKKyAgICAgICAgICAgIDogbV9j
b2xsZWN0aW9uKG51bGxwdHIpCisgICAgICAgICAgICAsIG1faW5kZXgoMCkKKyAgICAgICAgewor
ICAgICAgICB9CisKKyAgICAgICAgaXRlcmF0b3IoY29uc3QgQ2FzZUNvbGxlY3Rpb24mIGNvbGxl
Y3Rpb24sIHVuc2lnbmVkIGluZGV4KQorICAgICAgICAgICAgOiBtX2NvbGxlY3Rpb24oJmNvbGxl
Y3Rpb24pCisgICAgICAgICAgICAsIG1faW5kZXgoaW5kZXgpCisgICAgICAgIHsKKyAgICAgICAg
fQorCisgICAgICAgIFN3aXRjaENhc2Ugb3BlcmF0b3IqKCkKKyAgICAgICAgeworICAgICAgICAg
ICAgcmV0dXJuIG1fY29sbGVjdGlvbi0+YXQobV9pbmRleCk7CisgICAgICAgIH0KKworICAgICAg
ICBpdGVyYXRvciYgb3BlcmF0b3IrKygpCisgICAgICAgIHsKKyAgICAgICAgICAgIG1faW5kZXgr
KzsKKyAgICAgICAgICAgIHJldHVybiAqdGhpczsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2wg
b3BlcmF0b3I9PShjb25zdCBpdGVyYXRvciYgb3RoZXIpIGNvbnN0CisgICAgICAgIHsKKyAgICAg
ICAgICAgIEFTU0VSVChtX2NvbGxlY3Rpb24gPT0gb3RoZXIubV9jb2xsZWN0aW9uKTsKKyAgICAg
ICAgICAgIHJldHVybiBtX2luZGV4ID09IG90aGVyLm1faW5kZXg7CisgICAgICAgIH0KKworICAg
ICAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgaXRlcmF0b3ImIG90aGVyKSBjb25zdAorICAgICAg
ICB7CisgICAgICAgICAgICByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7CisgICAgICAgIH0KKwor
ICAgIHByaXZhdGU6CisgICAgICAgIGNvbnN0IENhc2VDb2xsZWN0aW9uKiBtX2NvbGxlY3Rpb247
CisgICAgICAgIHVuc2lnbmVkIG1faW5kZXg7CisgICAgfTsKKworICAgIHR5cGVkZWYgaXRlcmF0
b3IgY29uc3RfaXRlcmF0b3I7CisKKyAgICBpdGVyYXRvciBiZWdpbigpIGNvbnN0IHsgcmV0dXJu
IGl0ZXJhdG9yKCp0aGlzLCAwKTsgfQorICAgIGl0ZXJhdG9yIGVuZCgpIGNvbnN0IHsgcmV0dXJu
IGl0ZXJhdG9yKCp0aGlzLCBzaXplKCkpOyB9CisgICAgCisgICAgdm9pZCBkdW1wKFByaW50U3Ry
ZWFtJikgY29uc3Q7CisgICAgCitwcml2YXRlOgorICAgIGNvbnN0IFN3aXRjaFZhbHVlKiBtX3N3
aXRjaCB7IG51bGxwdHIgfTsKKyAgICBjb25zdCBCYXNpY0Jsb2NrKiBtX293bmVyIHsgbnVsbHB0
ciB9OworfTsKKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzCisKKyNlbmRpZiAvLyBFTkFCTEUo
QjNfSklUKQorCisjZW5kaWYgLy8gQjNDYXNlQ29sbGVjdGlvbl9oCisKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oCShyZXZp
c2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2FzZUNvbGxlY3Rpb25Jbmxp
bmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEIzQ2FzZUNvbGxlY3Rpb25Jbmxp
bmVzX2gKKyNkZWZpbmUgQjNDYXNlQ29sbGVjdGlvbklubGluZXNfaAorCisjaWYgRU5BQkxFKEIz
X0pJVCkKKworI2luY2x1ZGUgIkIzQ2FzZUNvbGxlY3Rpb24uaCIKKyNpbmNsdWRlICJCM1N3aXRj
aFZhbHVlLmgiCisjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrLmgiCisKK25hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgQjMgeworCitpbmxpbmUgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBDYXNlQ29sbGVj
dGlvbjo6ZmFsbFRocm91Z2goKSBjb25zdAoreworICAgIHJldHVybiBtX293bmVyLT5mYWxsVGhy
b3VnaCgpOworfQorCitpbmxpbmUgdW5zaWduZWQgQ2FzZUNvbGxlY3Rpb246OnNpemUoKSBjb25z
dAoreworICAgIHJldHVybiBtX3N3aXRjaC0+bnVtQ2FzZVZhbHVlcygpOworfQorCitpbmxpbmUg
U3dpdGNoQ2FzZSBDYXNlQ29sbGVjdGlvbjo6YXQodW5zaWduZWQgaW5kZXgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIFN3aXRjaENhc2UobV9zd2l0Y2gtPmNhc2VWYWx1ZShpbmRleCksIG1fb3duZXIt
PnN1Y2Nlc3NvcihpbmRleCkpOworfQorCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKKworI2Vu
ZGlmIC8vIEVOQUJMRShCM19KSVQpCisKKyNlbmRpZiAvLyBCM0Nhc2VDb2xsZWN0aW9uSW5saW5l
c19oCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NoZWNrU3BlY2lhbC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2hlY2tTcGVjaWFsLmNw
cAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2hlY2tT
cGVjaWFsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODQsNyArODQsNyBAQCBDaGVja1NwZWNpYWw6
OkNoZWNrU3BlY2lhbChBaXI6Ok9wY29kZSBvCiAgICAgLCBtX3N0YWNrbWFwUm9sZShzdGFja21h
cFJvbGUpCiAgICAgLCBtX251bUNoZWNrQXJncyhudW1BcmdzKQogewotICAgIEFTU0VSVChpc1Rl
cm1pbmFsKG9wY29kZSkpOworICAgIEFTU0VSVChpc0RlZmluaXRlbHlUZXJtaW5hbChvcGNvZGUp
KTsKIH0KIAogQ2hlY2tTcGVjaWFsOjpDaGVja1NwZWNpYWwoY29uc3QgQ2hlY2tTcGVjaWFsOjpL
ZXkmIGtleSkKQEAgLTEwMiw2ICsxMDIsNyBAQCBJbnN0IENoZWNrU3BlY2lhbDo6aGlkZGVuQnJh
bmNoKGNvbnN0IEluCiAgICAgaGlkZGVuQnJhbmNoLmFyZ3MucmVzZXJ2ZUluaXRpYWxDYXBhY2l0
eShtX251bUNoZWNrQXJncyk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fbnVtQ2hl
Y2tBcmdzOyArK2kpCiAgICAgICAgIGhpZGRlbkJyYW5jaC5hcmdzLmFwcGVuZChpbnN0LmFyZ3Nb
aSArIDFdKTsKKyAgICBBU1NFUlQoaGlkZGVuQnJhbmNoLmlzVGVybWluYWwoKSk7CiAgICAgcmV0
dXJuIGhpZGRlbkJyYW5jaDsKIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
Q29tbW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29tbW9u
LmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbW1v
bi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDYgKzI4LDggQEAKIAogI2lmIEVOQUJMRShCM19KSVQpCiAK
KyNpbmNsdWRlICJKU0V4cG9ydE1hY3Jvcy5oIgorCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNl
IEIzIHsKIAogaW5saW5lIGJvb2wgaXM2NEJpdCgpIHsgcmV0dXJuIHNpemVvZih2b2lkKikgPT0g
ODsgfQpAQCAtMzgsNyArNDAsNyBAQCBlbnVtIEIzQ29tcGxpdGF0aW9uTW9kZSB7CiAgICAgQWly
TW9kZQogfTsKIAotYm9vbCBzaG91bGREdW1wSVIoQjNDb21wbGl0YXRpb25Nb2RlKTsKK0pTX0VY
UE9SVF9QUklWQVRFIGJvb2wgc2hvdWxkRHVtcElSKEIzQ29tcGxpdGF0aW9uTW9kZSk7CiBib29s
IHNob3VsZER1bXBJUkF0RWFjaFBoYXNlKEIzQ29tcGxpdGF0aW9uTW9kZSk7CiBib29sIHNob3Vs
ZFZhbGlkYXRlSVIoKTsKIGJvb2wgc2hvdWxkVmFsaWRhdGVJUkF0RWFjaFBoYXNlKCk7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb250cm9sVmFsdWUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnRyb2xWYWx1ZS5jcHAJKHJldmlzaW9u
IDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnRyb2xWYWx1ZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEsOTUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
LSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRl
ICJCM0NvbnRyb2xWYWx1ZS5oIgotCi0jaWYgRU5BQkxFKEIzX0pJVCkKLQotI2luY2x1ZGUgIkIz
QmFzaWNCbG9jay5oIgotCi1uYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKLQotQ29udHJv
bFZhbHVlOjp+Q29udHJvbFZhbHVlKCkKLXsKLX0KLQotYm9vbCBDb250cm9sVmFsdWU6OnJlcGxh
Y2VTdWNjZXNzb3IoQmFzaWNCbG9jayogZnJvbSwgQmFzaWNCbG9jayogdG8pCi17Ci0gICAgYm9v
bCByZXN1bHQgPSBmYWxzZTsKLSAgICBmb3IgKEZyZXF1ZW50ZWRCbG9jayYgc3VjY2Vzc29yIDog
bV9zdWNjZXNzb3JzKSB7Ci0gICAgICAgIGlmIChzdWNjZXNzb3IuYmxvY2soKSA9PSBmcm9tKSB7
Ci0gICAgICAgICAgICBzdWNjZXNzb3IuYmxvY2soKSA9IHRvOwotICAgICAgICAgICAgcmVzdWx0
ID0gdHJ1ZTsKLQotICAgICAgICAgICAgLy8gS2VlcCBsb29waW5nIGJlY2F1c2UgaXQncyB2YWxp
ZCBmb3IgYSBzdWNjZXNzb3IgdG8gYmUgbWVudGlvbmVkIG11bHRpcGxlIHRpbWVzLAotICAgICAg
ICAgICAgLy8gbGlrZSBpZiBtdWx0aXBsZSBzd2l0Y2ggY2FzZXMgaGF2ZSB0aGUgc2FtZSB0YXJn
ZXQuCi0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotdm9pZCBDb250
cm9sVmFsdWU6OmNvbnZlcnRUb0p1bXAoQmFzaWNCbG9jayogZGVzdGluYXRpb24pCi17Ci0gICAg
dW5zaWduZWQgaW5kZXggPSB0aGlzLT5pbmRleCgpOwotICAgIE9yaWdpbiBvcmlnaW4gPSB0aGlz
LT5vcmlnaW4oKTsKLSAgICBCYXNpY0Jsb2NrKiBvd25lciA9IHRoaXMtPm93bmVyOwotCi0gICAg
dGhpcy0+fkNvbnRyb2xWYWx1ZSgpOwotCi0gICAgbmV3ICh0aGlzKSBDb250cm9sVmFsdWUoSnVt
cCwgb3JpZ2luLCBGcmVxdWVudGVkQmxvY2soZGVzdGluYXRpb24pKTsKLQotICAgIHRoaXMtPm93
bmVyID0gb3duZXI7Ci0gICAgdGhpcy0+bV9pbmRleCA9IGluZGV4OwotfQotCi12b2lkIENvbnRy
b2xWYWx1ZTo6Y29udmVydFRvT29wcygpCi17Ci0gICAgdW5zaWduZWQgaW5kZXggPSB0aGlzLT5p
bmRleCgpOwotICAgIE9yaWdpbiBvcmlnaW4gPSB0aGlzLT5vcmlnaW4oKTsKLSAgICBCYXNpY0Js
b2NrKiBvd25lciA9IHRoaXMtPm93bmVyOwotCi0gICAgdGhpcy0+fkNvbnRyb2xWYWx1ZSgpOwot
Ci0gICAgbmV3ICh0aGlzKSBDb250cm9sVmFsdWUoT29wcywgb3JpZ2luKTsKLQotICAgIHRoaXMt
Pm93bmVyID0gb3duZXI7Ci0gICAgdGhpcy0+bV9pbmRleCA9IGluZGV4OwotfQotCi12b2lkIENv
bnRyb2xWYWx1ZTo6ZHVtcE1ldGEoQ29tbWFQcmludGVyJiBjb21tYSwgUHJpbnRTdHJlYW0mIG91
dCkgY29uc3QKLXsKLSAgICBmb3IgKEZyZXF1ZW50ZWRCbG9jayBzdWNjZXNzb3IgOiBtX3N1Y2Nl
c3NvcnMpCi0gICAgICAgIG91dC5wcmludChjb21tYSwgc3VjY2Vzc29yKTsKLX0KLQotVmFsdWUq
IENvbnRyb2xWYWx1ZTo6Y2xvbmVJbXBsKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbmV3IENvbnRy
b2xWYWx1ZSgqdGhpcyk7Ci19Ci0KLX0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMwotCi0jZW5kaWYg
Ly8gRU5BQkxFKEIzX0pJVCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnRy
b2xWYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnRy
b2xWYWx1ZS5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNDb250cm9sVmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMSwxNjMgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgQjND
b250cm9sVmFsdWVfaAotI2RlZmluZSBCM0NvbnRyb2xWYWx1ZV9oCi0KLSNpZiBFTkFCTEUoQjNf
SklUKQotCi0jaW5jbHVkZSAiQjNGcmVxdWVudGVkQmxvY2suaCIKLSNpbmNsdWRlICJCM1N1Y2Nl
c3NvckNvbGxlY3Rpb24uaCIKLSNpbmNsdWRlICJCM1ZhbHVlLmgiCi0KLW5hbWVzcGFjZSBKU0Mg
eyBuYW1lc3BhY2UgQjMgewotCi1jbGFzcyBCYXNpY0Jsb2NrOwotCi1jbGFzcyBKU19FWFBPUlRf
UFJJVkFURSBDb250cm9sVmFsdWUgOiBwdWJsaWMgVmFsdWUgewotcHVibGljOgotICAgIHN0YXRp
YyBib29sIGFjY2VwdHMoT3Bjb2RlIG9wY29kZSkKLSAgICB7Ci0gICAgICAgIHN3aXRjaCAob3Bj
b2RlKSB7Ci0gICAgICAgIGNhc2UgSnVtcDoKLSAgICAgICAgY2FzZSBCcmFuY2g6Ci0gICAgICAg
IGNhc2UgUmV0dXJuOgotICAgICAgICBjYXNlIE9vcHM6Ci0gICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKLSAgICAgICAgY2FzZSBTd2l0Y2g6IAotICAgICAgICAgICAgLy8gVGhpcyBpcyBoZXJlIGJl
Y2F1c2UgU3dpdGNoVmFsdWUgaXMgYSBzdWJjbGFzcyBvZiBDb250cm9sVmFsdWUsIHNvIHdlIHdh
bnQKLSAgICAgICAgICAgIC8vIHN3aXRjaFZhbHVlLT5hczxDb250cm9sVmFsdWU+KCkgdG8gcmV0
dXJuIG5vbi1udWxsLgotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGRlZmF1bHQ6
Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICB0eXBl
ZGVmIFZlY3RvcjxGcmVxdWVudGVkQmxvY2ssIDI+IFN1Y2Nlc3Nvckxpc3Q7Ci0KLSAgICB+Q29u
dHJvbFZhbHVlKCk7Ci0KLSAgICB1bnNpZ25lZCBudW1TdWNjZXNzb3JzKCkgY29uc3QgeyByZXR1
cm4gbV9zdWNjZXNzb3JzLnNpemUoKTsgfQotICAgIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgc3Vj
Y2Vzc29yKHVuc2lnbmVkIGluZGV4KSBjb25zdCB7IHJldHVybiBtX3N1Y2Nlc3NvcnNbaW5kZXhd
OyB9Ci0gICAgRnJlcXVlbnRlZEJsb2NrJiBzdWNjZXNzb3IodW5zaWduZWQgaW5kZXgpIHsgcmV0
dXJuIG1fc3VjY2Vzc29yc1tpbmRleF07IH0KLSAgICBjb25zdCBTdWNjZXNzb3JMaXN0JiBzdWNj
ZXNzb3JzKCkgY29uc3QgeyByZXR1cm4gbV9zdWNjZXNzb3JzOyB9Ci0gICAgU3VjY2Vzc29yTGlz
dCYgc3VjY2Vzc29ycygpIHsgcmV0dXJuIG1fc3VjY2Vzc29yczsgfQotCi0gICAgQmFzaWNCbG9j
ayogc3VjY2Vzc29yQmxvY2sodW5zaWduZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIHN1Y2Nlc3Nv
cihpbmRleCkuYmxvY2soKTsgfQotICAgIEJhc2ljQmxvY2sqJiBzdWNjZXNzb3JCbG9jayh1bnNp
Z25lZCBpbmRleCkgeyByZXR1cm4gc3VjY2Vzc29yKGluZGV4KS5ibG9jaygpOyB9Ci0gICAgU3Vj
Y2Vzc29yQ29sbGVjdGlvbjxCYXNpY0Jsb2NrLCBTdWNjZXNzb3JMaXN0PiBzdWNjZXNzb3JCbG9j
a3MoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIFN1Y2Nlc3NvckNvbGxlY3Rpb248QmFzaWNCbG9j
aywgU3VjY2Vzc29yTGlzdD4oc3VjY2Vzc29ycygpKTsKLSAgICB9Ci0gICAgU3VjY2Vzc29yQ29s
bGVjdGlvbjxjb25zdCBCYXNpY0Jsb2NrLCBjb25zdCBTdWNjZXNzb3JMaXN0PiBzdWNjZXNzb3JC
bG9ja3MoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIFN1Y2Nlc3NvckNvbGxlY3Rpb248
Y29uc3QgQmFzaWNCbG9jaywgY29uc3QgU3VjY2Vzc29yTGlzdD4oc3VjY2Vzc29ycygpKTsKLSAg
ICB9Ci0KLSAgICBib29sIHJlcGxhY2VTdWNjZXNzb3IoQmFzaWNCbG9jayogZnJvbSwgQmFzaWNC
bG9jayogdG8pOwotCi0gICAgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YWtlbigpIGNvbnN0Ci0g
ICAgewotICAgICAgICBBU1NFUlQob3Bjb2RlKCkgPT0gSnVtcCB8fCBvcGNvZGUoKSA9PSBCcmFu
Y2gpOwotICAgICAgICByZXR1cm4gc3VjY2Vzc29yKDApOwotICAgIH0KLSAgICBGcmVxdWVudGVk
QmxvY2smIHRha2VuKCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChvcGNvZGUoKSA9PSBKdW1wIHx8
IG9wY29kZSgpID09IEJyYW5jaCk7Ci0gICAgICAgIHJldHVybiBzdWNjZXNzb3IoMCk7Ci0gICAg
fQotICAgIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgbm90VGFrZW4oKSBjb25zdAotICAgIHsKLSAg
ICAgICAgQVNTRVJUKG9wY29kZSgpID09IEJyYW5jaCk7Ci0gICAgICAgIHJldHVybiBzdWNjZXNz
b3IoMSk7Ci0gICAgfQotICAgIEZyZXF1ZW50ZWRCbG9jayYgbm90VGFrZW4oKQotICAgIHsKLSAg
ICAgICAgQVNTRVJUKG9wY29kZSgpID09IEJyYW5jaCk7Ci0gICAgICAgIHJldHVybiBzdWNjZXNz
b3IoMSk7Ci0gICAgfQotCi0gICAgdm9pZCBjb252ZXJ0VG9KdW1wKEJhc2ljQmxvY2sqIGRlc3Rp
bmF0aW9uKTsKLSAgICB2b2lkIGNvbnZlcnRUb09vcHMoKTsKLQotcHJvdGVjdGVkOgotICAgIHZv
aWQgZHVtcE1ldGEoQ29tbWFQcmludGVyJiwgUHJpbnRTdHJlYW0mKSBjb25zdCBvdmVycmlkZTsK
LQotICAgIFZhbHVlKiBjbG9uZUltcGwoKSBjb25zdCBvdmVycmlkZTsKLQotICAgIC8vIFVzZSB0
aGlzIGZvciBzdWJjbGFzc2VzLgotICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4K
LSAgICBDb250cm9sVmFsdWUoT3Bjb2RlIG9wY29kZSwgVHlwZSB0eXBlLCBPcmlnaW4gb3JpZ2lu
LCBBcmd1bWVudHMuLi4gYXJndW1lbnRzKQotICAgICAgICA6IFZhbHVlKENoZWNrZWRPcGNvZGUs
IG9wY29kZSwgdHlwZSwgb3JpZ2luLCBhcmd1bWVudHMuLi4pCi0gICAgewotICAgICAgICBBU1NF
UlQoYWNjZXB0cyhvcGNvZGUpKTsKLSAgICB9Ci0KLSAgICAvLyBTdWJjbGFzc2VzIHdpbGwgcG9w
dWxhdGUgdGhpcy4KLSAgICBTdWNjZXNzb3JMaXN0IG1fc3VjY2Vzc29yczsKLQotcHJpdmF0ZToK
LSAgICBmcmllbmQgY2xhc3MgUHJvY2VkdXJlOwotCi0gICAgLy8gVXNlIHRoaXMgZm9yIE9vcHMu
Ci0gICAgQ29udHJvbFZhbHVlKE9wY29kZSBvcGNvZGUsIE9yaWdpbiBvcmlnaW4pCi0gICAgICAg
IDogVmFsdWUoQ2hlY2tlZE9wY29kZSwgb3Bjb2RlLCBWb2lkLCBvcmlnaW4pCi0gICAgewotICAg
ICAgICBBU1NFUlQob3Bjb2RlID09IE9vcHMpOwotICAgIH0KLQotICAgIC8vIFVzZSB0aGlzIGZv
ciBSZXR1cm4uCi0gICAgQ29udHJvbFZhbHVlKE9wY29kZSBvcGNvZGUsIE9yaWdpbiBvcmlnaW4s
IFZhbHVlKiByZXN1bHQpCi0gICAgICAgIDogVmFsdWUoQ2hlY2tlZE9wY29kZSwgb3Bjb2RlLCBW
b2lkLCBvcmlnaW4sIHJlc3VsdCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChvcGNvZGUgPT0gUmV0
dXJuKTsKLSAgICB9Ci0KLSAgICAvLyBVc2UgdGhpcyBmb3IgSnVtcC4KLSAgICBDb250cm9sVmFs
dWUoT3Bjb2RlIG9wY29kZSwgT3JpZ2luIG9yaWdpbiwgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0
YXJnZXQpCi0gICAgICAgIDogVmFsdWUoQ2hlY2tlZE9wY29kZSwgb3Bjb2RlLCBWb2lkLCBvcmln
aW4pCi0gICAgewotICAgICAgICBBU1NFUlQob3Bjb2RlID09IEp1bXApOwotICAgICAgICBtX3N1
Y2Nlc3NvcnMuYXBwZW5kKHRhcmdldCk7Ci0gICAgfQotCi0gICAgLy8gVXNlIHRoaXMgZm9yIEJy
YW5jaC4KLSAgICBDb250cm9sVmFsdWUoCi0gICAgICAgIE9wY29kZSBvcGNvZGUsIE9yaWdpbiBv
cmlnaW4sIFZhbHVlKiBwcmVkaWNhdGUsCi0gICAgICAgIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYg
eWVzLCBjb25zdCBGcmVxdWVudGVkQmxvY2smIG5vKQotICAgICAgICA6IFZhbHVlKENoZWNrZWRP
cGNvZGUsIG9wY29kZSwgVm9pZCwgb3JpZ2luLCBwcmVkaWNhdGUpCi0gICAgewotICAgICAgICBB
U1NFUlQob3Bjb2RlID09IEJyYW5jaCk7Ci0gICAgICAgIG1fc3VjY2Vzc29ycy5hcHBlbmQoeWVz
KTsKLSAgICAgICAgbV9zdWNjZXNzb3JzLmFwcGVuZChubyk7Ci0gICAgfQotfTsKLQotfSB9IC8v
IG5hbWVzcGFjZSBKU0M6OkIzCi0KLSNlbmRpZiAvLyBFTkFCTEUoQjNfSklUKQotCi0jZW5kaWYg
Ly8gQjNDb250cm9sVmFsdWVfaAotCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNE
YXRhU2VjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
RGF0YVNlY3Rpb24uY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNEYXRhU2VjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzEsNyArMzEsNyBAQAogbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKIERhdGFTZWN0aW9uOjpEYXRhU2VjdGlvbihz
aXplX3Qgc2l6ZSkKLSAgICA6IG1fZGF0YShmYXN0TWFsbG9jKHNpemUpKQorICAgIDogbV9kYXRh
KGZhc3RaZXJvZWRNYWxsb2Moc2l6ZSkpCiAgICAgLCBtX3NpemUoc2l6ZSkKIHsKIH0KSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0R1cGxpY2F0ZVRhaWxzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEdXBsaWNhdGVUYWlscy5jcHAJKHJldmlz
aW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0R1cGxpY2F0ZVRhaWxz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNiBAQAogCiAjaW5jbHVkZSAiQjNCYXNp
Y0Jsb2NrSW5saW5lcy5oIgogI2luY2x1ZGUgIkIzQnJlYWtDcml0aWNhbEVkZ2VzLmgiCi0jaW5j
bHVkZSAiQjNDb250cm9sVmFsdWUuaCIKICNpbmNsdWRlICJCM0RvbWluYXRvcnMuaCIKICNpbmNs
dWRlICJCM0ZpeFNTQS5oIgogI2luY2x1ZGUgIkIzSW5kZXhTZXQuaCIKQEAgLTcyLDkgKzcxLDEw
IEBAIHB1YmxpYzoKICAgICAgICAgSW5kZXhTZXQ8QmFzaWNCbG9jaz4gY2FuZGlkYXRlczsKIAog
ICAgICAgICBmb3IgKEJhc2ljQmxvY2sqIGJsb2NrIDogbV9wcm9jKSB7Ci0gICAgICAgICAgICBp
ZiAoYmxvY2stPnNpemUoKSA+IG1fbWF4U2l6ZSB8fCBibG9jay0+bnVtU3VjY2Vzc29ycygpID4g
bV9tYXhTdWNjZXNzb3JzKQorICAgICAgICAgICAgaWYgKGJsb2NrLT5zaXplKCkgPiBtX21heFNp
emUKKyAgICAgICAgICAgICAgICB8fCBibG9jay0+bnVtU3VjY2Vzc29ycygpID4gbV9tYXhTdWNj
ZXNzb3JzKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotCisgICAgICAgICAgICAKICAgICAg
ICAgICAgIGNhbmRpZGF0ZXMuYWRkKGJsb2NrKTsKICAgICAgICAgfQogCkBAIC05NywxMSArOTcs
MTAgQEAgcHVibGljOgogICAgICAgICB9CiAKICAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBibG9j
ayA6IG1fcHJvYykgewotICAgICAgICAgICAgQ29udHJvbFZhbHVlKiBqdW1wID0gYmxvY2stPmxh
c3QoKS0+YXM8Q29udHJvbFZhbHVlPigpOwotICAgICAgICAgICAgaWYgKGp1bXAtPm9wY29kZSgp
ICE9IEp1bXApCisgICAgICAgICAgICBpZiAoYmxvY2stPmxhc3QoKS0+b3Bjb2RlKCkgIT0gSnVt
cCkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICAgICAgQmFzaWNCbG9jayog
dGFpbCA9IGp1bXAtPnN1Y2Nlc3NvckJsb2NrKDApOworICAgICAgICAgICAgQmFzaWNCbG9jayog
dGFpbCA9IGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKTsKICAgICAgICAgICAgIGlmICghY2FuZGlk
YXRlcy5jb250YWlucyh0YWlsKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIApAQCAtMTMw
LDYgKzEyOSw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgbWFwLmFkZCh2YWx1ZSwg
Y2xvbmUpOwogICAgICAgICAgICAgICAgIGJsb2NrLT5hcHBlbmQoY2xvbmUpOwogICAgICAgICAg
ICAgfQorICAgICAgICAgICAgYmxvY2stPnN1Y2Nlc3NvcnMoKSA9IHRhaWwtPnN1Y2Nlc3NvcnMo
KTsKICAgICAgICAgfQogCiAgICAgICAgIG1fcHJvYy5yZXNldFJlYWNoYWJpbGl0eSgpOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRml4U1NBLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNGaXhTU0EuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNGaXhTU0EuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMCw3ICszMCw2IEBACiAKICNpbmNsdWRlICJCM0Jhc2ljQmxvY2tJbmxpbmVzLmgiCiAjaW5j
bHVkZSAiQjNCcmVha0NyaXRpY2FsRWRnZXMuaCIKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5o
IgogI2luY2x1ZGUgIkIzRG9taW5hdG9ycy5oIgogI2luY2x1ZGUgIkIzSW5kZXhTZXQuaCIKICNp
bmNsdWRlICJCM0luc2VydGlvblNldElubGluZXMuaCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM0ZvbGRQYXRoQ29uc3RhbnRzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNGb2xkUGF0aENvbnN0YW50cy5jcHAJKHJldmlzaW9uIDIwMjgwOSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0ZvbGRQYXRoQ29uc3RhbnRzLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogI2lmIEVOQUJMRShCM19KSVQpCiAKICNpbmNs
dWRlICJCM0Jhc2ljQmxvY2tJbmxpbmVzLmgiCi0jaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIK
KyNpbmNsdWRlICJCM0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oIgogI2luY2x1ZGUgIkIzRG9taW5h
dG9ycy5oIgogI2luY2x1ZGUgIkIzSW5zZXJ0aW9uU2V0SW5saW5lcy5oIgogI2luY2x1ZGUgIkIz
UGhhc2VTY29wZS5oIgpAQCAtODcsMjQgKzg3LDI0IEBAIHB1YmxpYzoKICAgICAgICAgfTsKICAg
ICAgICAgCiAgICAgICAgIGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiBtX3Byb2MpIHsKLSAgICAg
ICAgICAgIENvbnRyb2xWYWx1ZSogYnJhbmNoID0gYmxvY2stPmxhc3QoKS0+YXM8Q29udHJvbFZh
bHVlPigpOworICAgICAgICAgICAgVmFsdWUqIGJyYW5jaCA9IGJsb2NrLT5sYXN0KCk7CiAgICAg
ICAgICAgICBzd2l0Y2ggKGJyYW5jaC0+b3Bjb2RlKCkpIHsKICAgICAgICAgICAgIGNhc2UgQnJh
bmNoOgotICAgICAgICAgICAgICAgIGlmIChicmFuY2gtPnN1Y2Nlc3NvckJsb2NrKDApID09IGJy
YW5jaC0+c3VjY2Vzc29yQmxvY2soMSkpCisgICAgICAgICAgICAgICAgaWYgKGJsb2NrLT5zdWNj
ZXNzb3JCbG9jaygwKSA9PSBibG9jay0+c3VjY2Vzc29yQmxvY2soMSkpCiAgICAgICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIGFkZE92ZXJyaWRlKAogICAgICAgICAg
ICAgICAgICAgICBibG9jaywgYnJhbmNoLT5jaGlsZCgwKSwKLSAgICAgICAgICAgICAgICAgICAg
T3ZlcnJpZGU6Om5vblplcm8oYnJhbmNoLT5zdWNjZXNzb3JCbG9jaygwKSkpOworICAgICAgICAg
ICAgICAgICAgICBPdmVycmlkZTo6bm9uWmVybyhibG9jay0+c3VjY2Vzc29yQmxvY2soMCkpKTsK
ICAgICAgICAgICAgICAgICBhZGRPdmVycmlkZSgKICAgICAgICAgICAgICAgICAgICAgYmxvY2ss
IGJyYW5jaC0+Y2hpbGQoMCksCi0gICAgICAgICAgICAgICAgICAgIE92ZXJyaWRlOjpjb25zdGFu
dChicmFuY2gtPnN1Y2Nlc3NvckJsb2NrKDEpLCAwKSk7CisgICAgICAgICAgICAgICAgICAgIE92
ZXJyaWRlOjpjb25zdGFudChibG9jay0+c3VjY2Vzc29yQmxvY2soMSksIDApKTsKICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgU3dpdGNoOiB7CiAgICAgICAgICAgICAg
ICAgSGFzaE1hcDxCYXNpY0Jsb2NrKiwgdW5zaWduZWQ+IHRhcmdldFVzZXM7Ci0gICAgICAgICAg
ICAgICAgZm9yIChjb25zdCBTd2l0Y2hDYXNlJiBzd2l0Y2hDYXNlIDogKmJyYW5jaC0+YXM8U3dp
dGNoVmFsdWU+KCkpCisgICAgICAgICAgICAgICAgZm9yIChjb25zdCBTd2l0Y2hDYXNlJiBzd2l0
Y2hDYXNlIDogYnJhbmNoLT5hczxTd2l0Y2hWYWx1ZT4oKS0+Y2FzZXMoYmxvY2spKQogICAgICAg
ICAgICAgICAgICAgICB0YXJnZXRVc2VzLmFkZChzd2l0Y2hDYXNlLnRhcmdldEJsb2NrKCksIDAp
Lml0ZXJhdG9yLT52YWx1ZSsrOwogCi0gICAgICAgICAgICAgICAgZm9yIChjb25zdCBTd2l0Y2hD
YXNlJiBzd2l0Y2hDYXNlIDogKmJyYW5jaC0+YXM8U3dpdGNoVmFsdWU+KCkpIHsKKyAgICAgICAg
ICAgICAgICBmb3IgKGNvbnN0IFN3aXRjaENhc2UmIHN3aXRjaENhc2UgOiBicmFuY2gtPmFzPFN3
aXRjaFZhbHVlPigpLT5jYXNlcyhibG9jaykpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKHRh
cmdldFVzZXMuZmluZChzd2l0Y2hDYXNlLnRhcmdldEJsb2NrKCkpLT52YWx1ZSAhPSAxKQogICAg
ICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAKQEAgLTE1OCw5ICsxNTgsOCBAQCBwdWJs
aWM6CiAKICAgICAgICAgICAgICAgICBzd2l0Y2ggKHZhbHVlLT5vcGNvZGUoKSkgewogICAgICAg
ICAgICAgICAgIGNhc2UgQnJhbmNoOiB7Ci0gICAgICAgICAgICAgICAgICAgIENvbnRyb2xWYWx1
ZSogYnJhbmNoID0gdmFsdWUtPmFzPENvbnRyb2xWYWx1ZT4oKTsKLSAgICAgICAgICAgICAgICAg
ICAgaWYgKGdldE92ZXJyaWRlKGJsb2NrLCBicmFuY2gtPmNoaWxkKDApKS5pc05vblplcm8pIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGJyYW5jaC0+Y29udmVydFRvSnVtcChicmFuY2gtPnRh
a2VuKCkuYmxvY2soKSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChnZXRPdmVycmlkZShibG9j
aywgdmFsdWUtPmNoaWxkKDApKS5pc05vblplcm8pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHZhbHVlLT5yZXBsYWNlV2l0aEp1bXAoYmxvY2ssIGJsb2NrLT50YWtlbigpKTsKICAgICAgICAg
ICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzTG93ZXJNYWNyb3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM0xvd2VyTWFjcm9zLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzTG93ZXJNYWNyb3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDE3ICsyOCwyMyBA
QAogCiAjaWYgRU5BQkxFKEIzX0pJVCkKIAorI2luY2x1ZGUgIkFsbG93TWFjcm9TY3JhdGNoUmVn
aXN0ZXJVc2FnZS5oIgogI2luY2x1ZGUgIkIzQmFzaWNCbG9ja0lubGluZXMuaCIKICNpbmNsdWRl
ICJCM0Jsb2NrSW5zZXJ0aW9uU2V0LmgiCiAjaW5jbHVkZSAiQjNDQ2FsbFZhbHVlLmgiCisjaW5j
bHVkZSAiQjNDYXNlQ29sbGVjdGlvbklubGluZXMuaCIKICNpbmNsdWRlICJCM0NvbnN0UHRyVmFs
dWUuaCIKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzSW5zZXJ0aW9u
U2V0SW5saW5lcy5oIgorI2luY2x1ZGUgIkIzTWVtb3J5VmFsdWUuaCIKKyNpbmNsdWRlICJCM1Bh
dGNocG9pbnRWYWx1ZS5oIgogI2luY2x1ZGUgIkIzUGhhc2VTY29wZS5oIgogI2luY2x1ZGUgIkIz
UHJvY2VkdXJlSW5saW5lcy5oIgorI2luY2x1ZGUgIkIzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1z
LmgiCiAjaW5jbHVkZSAiQjNTd2l0Y2hWYWx1ZS5oIgogI2luY2x1ZGUgIkIzVXBzaWxvblZhbHVl
LmgiCiAjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKKyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMu
aCIKKyNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAjaW5jbHVkZSA8Y21hdGg+CiAKIG5hbWVzcGFj
ZSBKU0MgeyBuYW1lc3BhY2UgQjMgewpAQCAtMTE4LDggKzEyNCw4IEBAIHByaXZhdGU6CiAgICAg
ICAgICAgICAgICAgICAgIEJhc2ljQmxvY2sqIHplcm9EZW5DYXNlID0gbV9ibG9ja0luc2VydGlv
blNldC5pbnNlcnRCZWZvcmUobV9ibG9jayk7CiAgICAgICAgICAgICAgICAgICAgIEJhc2ljQmxv
Y2sqIG5vcm1hbE1vZENhc2UgPSBtX2Jsb2NrSW5zZXJ0aW9uU2V0Lmluc2VydEJlZm9yZShtX2Js
b2NrKTsKIAotICAgICAgICAgICAgICAgICAgICBiZWZvcmUtPnJlcGxhY2VMYXN0V2l0aE5ldzxD
b250cm9sVmFsdWU+KAotICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBCcmFuY2gsIG1f
b3JpZ2luLCBtX3ZhbHVlLT5jaGlsZCgxKSwKKyAgICAgICAgICAgICAgICAgICAgYmVmb3JlLT5y
ZXBsYWNlTGFzdFdpdGhOZXc8VmFsdWU+KG1fcHJvYywgQnJhbmNoLCBtX29yaWdpbiwgbV92YWx1
ZS0+Y2hpbGQoMSkpOworICAgICAgICAgICAgICAgICAgICBiZWZvcmUtPnNldFN1Y2Nlc3NvcnMo
CiAgICAgICAgICAgICAgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2sobm9ybWFsTW9kQ2FzZSwg
RnJlcXVlbmN5Q2xhc3M6Ok5vcm1hbCksCiAgICAgICAgICAgICAgICAgICAgICAgICBGcmVxdWVu
dGVkQmxvY2soemVyb0RlbkNhc2UsIEZyZXF1ZW5jeUNsYXNzOjpSYXJlKSk7CiAKQEAgLTEyNywx
MiArMTMzLDE0IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgIFZhbHVlKiBtdWx0aXBs
aWVkQmFjayA9IG5vcm1hbE1vZENhc2UtPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBNdWwsIG1f
b3JpZ2luLCBkaXZSZXN1bHQsIG1fdmFsdWUtPmNoaWxkKDEpKTsKICAgICAgICAgICAgICAgICAg
ICAgVmFsdWUqIHJlc3VsdCA9IG5vcm1hbE1vZENhc2UtPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9j
LCBTdWIsIG1fb3JpZ2luLCBtX3ZhbHVlLT5jaGlsZCgwKSwgbXVsdGlwbGllZEJhY2spOwogICAg
ICAgICAgICAgICAgICAgICBVcHNpbG9uVmFsdWUqIG5vcm1hbFJlc3VsdCA9IG5vcm1hbE1vZENh
c2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KG1fcHJvYywgbV9vcmlnaW4sIHJlc3VsdCk7Ci0g
ICAgICAgICAgICAgICAgICAgIG5vcm1hbE1vZENhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7CisgICAg
ICAgICAgICAgICAgICAgIG5vcm1hbE1vZENhc2UtPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBK
dW1wLCBtX29yaWdpbik7CisgICAgICAgICAgICAgICAgICAgIG5vcm1hbE1vZENhc2UtPnNldFN1
Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2NrKG1fYmxvY2spKTsKIAogICAgICAgICAgICAgICAgICAg
ICBVcHNpbG9uVmFsdWUqIHplcm9SZXN1bHQgPSB6ZXJvRGVuQ2FzZS0+YXBwZW5kTmV3PFVwc2ls
b25WYWx1ZT4oCiAgICAgICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLAogICAg
ICAgICAgICAgICAgICAgICAgICAgemVyb0RlbkNhc2UtPmFwcGVuZEludENvbnN0YW50KG1fcHJv
YywgbV92YWx1ZSwgMCkpOwotICAgICAgICAgICAgICAgICAgICB6ZXJvRGVuQ2FzZS0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4obV9wcm9jLCBKdW1wLCBtX29yaWdpbiwgRnJlcXVlbnRlZEJsb2Nr
KG1fYmxvY2spKTsKKyAgICAgICAgICAgICAgICAgICAgemVyb0RlbkNhc2UtPmFwcGVuZE5ldzxW
YWx1ZT4obV9wcm9jLCBKdW1wLCBtX29yaWdpbik7CisgICAgICAgICAgICAgICAgICAgIHplcm9E
ZW5DYXNlLT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7CiAKICAgICAg
ICAgICAgICAgICAgICAgVmFsdWUqIHBoaSA9IG1faW5zZXJ0aW9uU2V0Lmluc2VydDxWYWx1ZT4o
bV9pbmRleCwgUGhpLCBtX3ZhbHVlLT50eXBlKCksIG1fb3JpZ2luKTsKICAgICAgICAgICAgICAg
ICAgICAgbm9ybWFsUmVzdWx0LT5zZXRQaGkocGhpKTsKQEAgLTE0NywxNSArMTU1LDE2IEBAIHBy
aXZhdGU6CiAgICAgICAgICAgICBjYXNlIFN3aXRjaDogewogICAgICAgICAgICAgICAgIFN3aXRj
aFZhbHVlKiBzd2l0Y2hWYWx1ZSA9IG1fdmFsdWUtPmFzPFN3aXRjaFZhbHVlPigpOwogICAgICAg
ICAgICAgICAgIFZlY3RvcjxTd2l0Y2hDYXNlPiBjYXNlczsKLSAgICAgICAgICAgICAgICBmb3Ig
KGNvbnN0IFN3aXRjaENhc2UmIHN3aXRjaENhc2UgOiAqc3dpdGNoVmFsdWUpCisgICAgICAgICAg
ICAgICAgZm9yIChjb25zdCBTd2l0Y2hDYXNlJiBzd2l0Y2hDYXNlIDogc3dpdGNoVmFsdWUtPmNh
c2VzKG1fYmxvY2spKQogICAgICAgICAgICAgICAgICAgICBjYXNlcy5hcHBlbmQoc3dpdGNoQ2Fz
ZSk7CiAgICAgICAgICAgICAgICAgc3RkOjpzb3J0KAogICAgICAgICAgICAgICAgICAgICBjYXNl
cy5iZWdpbigpLCBjYXNlcy5lbmQoKSwKICAgICAgICAgICAgICAgICAgICAgW10gKGNvbnN0IFN3
aXRjaENhc2UmIGxlZnQsIGNvbnN0IFN3aXRjaENhc2UmIHJpZ2h0KSB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gbGVmdC5jYXNlVmFsdWUoKSA8IHJpZ2h0LmNhc2VWYWx1ZSgpOwog
ICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2sg
ZmFsbFRocm91Z2ggPSBtX2Jsb2NrLT5mYWxsVGhyb3VnaCgpOwogICAgICAgICAgICAgICAgIG1f
YmxvY2stPnZhbHVlcygpLnJlbW92ZUxhc3QoKTsKLSAgICAgICAgICAgICAgICByZWN1cnNpdmVs
eUJ1aWxkU3dpdGNoKGNhc2VzLCAwLCBmYWxzZSwgY2FzZXMuc2l6ZSgpLCBtX2Jsb2NrKTsKKyAg
ICAgICAgICAgICAgICByZWN1cnNpdmVseUJ1aWxkU3dpdGNoKGNhc2VzLCBmYWxsVGhyb3VnaCwg
MCwgZmFsc2UsIGNhc2VzLnNpemUoKSwgbV9ibG9jayk7CiAgICAgICAgICAgICAgICAgbV9wcm9j
LmRlbGV0ZVZhbHVlKHN3aXRjaFZhbHVlKTsKICAgICAgICAgICAgICAgICBtX2Jsb2NrLT51cGRh
dGVQcmVkZWNlc3NvcnNBZnRlcigpOwogICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7
CkBAIC0yMTAsMjcgKzIxOSwyNyBAQCBwcml2YXRlOgogICAgICAgICBCYXNpY0Jsb2NrKiBuZWcx
RGVuQ2FzZSA9IG1fYmxvY2tJbnNlcnRpb25TZXQuaW5zZXJ0QmVmb3JlKG1fYmxvY2spOwogICAg
ICAgICBCYXNpY0Jsb2NrKiBpbnRNaW5DYXNlID0gbV9ibG9ja0luc2VydGlvblNldC5pbnNlcnRC
ZWZvcmUobV9ibG9jayk7CiAKLSAgICAgICAgYmVmb3JlLT5yZXBsYWNlTGFzdFdpdGhOZXc8Q29u
dHJvbFZhbHVlPigKLSAgICAgICAgICAgIG1fcHJvYywgQnJhbmNoLCBtX29yaWdpbiwgaXNEZW5P
SywKKyAgICAgICAgYmVmb3JlLT5yZXBsYWNlTGFzdFdpdGhOZXc8VmFsdWU+KG1fcHJvYywgQnJh
bmNoLCBtX29yaWdpbiwgaXNEZW5PSyk7CisgICAgICAgIGJlZm9yZS0+c2V0U3VjY2Vzc29ycygK
ICAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhub3JtYWxEaXZDYXNlLCBGcmVxdWVuY3lDbGFz
czo6Tm9ybWFsKSwKICAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhzaGFkeURlbkNhc2UsIEZy
ZXF1ZW5jeUNsYXNzOjpSYXJlKSk7CiAKICAgICAgICAgVXBzaWxvblZhbHVlKiBub3JtYWxSZXN1
bHQgPSBub3JtYWxEaXZDYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPigKICAgICAgICAgICAg
IG1fcHJvYywgbV9vcmlnaW4sCiAgICAgICAgICAgICBub3JtYWxEaXZDYXNlLT5hcHBlbmROZXc8
VmFsdWU+KG1fcHJvYywgbm9uQ2hpbGxPcGNvZGUsIG1fb3JpZ2luLCBudW0sIGRlbikpOwotICAg
ICAgICBub3JtYWxEaXZDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgICAg
IG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7CisgICAg
ICAgIG5vcm1hbERpdkNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBKdW1wLCBtX29yaWdp
bik7CisgICAgICAgIG5vcm1hbERpdkNhc2UtPnNldFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2Nr
KG1fYmxvY2spKTsKIAotICAgICAgICBzaGFkeURlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAotICAgICAgICAgICAgbV9wcm9jLCBCcmFuY2gsIG1fb3JpZ2luLCBkZW4sCisgICAgICAg
IHNoYWR5RGVuQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIEJyYW5jaCwgbV9vcmlnaW4s
IGRlbik7CisgICAgICAgIHNoYWR5RGVuQ2FzZS0+c2V0U3VjY2Vzc29ycygKICAgICAgICAgICAg
IEZyZXF1ZW50ZWRCbG9jayhuZWcxRGVuQ2FzZSwgRnJlcXVlbmN5Q2xhc3M6Ok5vcm1hbCksCiAg
ICAgICAgICAgICBGcmVxdWVudGVkQmxvY2soemVyb0RlbkNhc2UsIEZyZXF1ZW5jeUNsYXNzOjpS
YXJlKSk7CiAKICAgICAgICAgVXBzaWxvblZhbHVlKiB6ZXJvUmVzdWx0ID0gemVyb0RlbkNhc2Ut
PmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KAogICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwK
ICAgICAgICAgICAgIHplcm9EZW5DYXNlLT5hcHBlbmRJbnRDb25zdGFudChtX3Byb2MsIG1fdmFs
dWUsIDApKTsKLSAgICAgICAgemVyb0RlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAot
ICAgICAgICAgICAgbV9wcm9jLCBKdW1wLCBtX29yaWdpbiwgRnJlcXVlbnRlZEJsb2NrKG1fYmxv
Y2spKTsKKyAgICAgICAgemVyb0RlbkNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBKdW1w
LCBtX29yaWdpbik7CisgICAgICAgIHplcm9EZW5DYXNlLT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50
ZWRCbG9jayhtX2Jsb2NrKSk7CiAKICAgICAgICAgaW50NjRfdCBiYWROdW1lcmF0b3JDb25zdCA9
IDA7CiAgICAgICAgIHN3aXRjaCAobV92YWx1ZS0+dHlwZSgpKSB7CkBAIC0yNDgsMTggKzI1Nywx
OSBAQCBwcml2YXRlOgogICAgICAgICBWYWx1ZSogYmFkTnVtZXJhdG9yID0KICAgICAgICAgICAg
IG5lZzFEZW5DYXNlLT5hcHBlbmRJbnRDb25zdGFudChtX3Byb2MsIG1fdmFsdWUsIGJhZE51bWVy
YXRvckNvbnN0KTsKIAotICAgICAgICBuZWcxRGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgICAgIG5lZzFEZW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
bV9wcm9jLCBCcmFuY2gsIG1fb3JpZ2luLAogICAgICAgICAgICAgbmVnMURlbkNhc2UtPmFwcGVu
ZE5ldzxWYWx1ZT4oCi0gICAgICAgICAgICAgICAgbV9wcm9jLCBFcXVhbCwgbV9vcmlnaW4sIG51
bSwgYmFkTnVtZXJhdG9yKSwKKyAgICAgICAgICAgICAgICBtX3Byb2MsIEVxdWFsLCBtX29yaWdp
biwgbnVtLCBiYWROdW1lcmF0b3IpKTsKKyAgICAgICAgbmVnMURlbkNhc2UtPnNldFN1Y2Nlc3Nv
cnMoCiAgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2soaW50TWluQ2FzZSwgRnJlcXVlbmN5Q2xh
c3M6OlJhcmUpLAogICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKG5vcm1hbERpdkNhc2UsIEZy
ZXF1ZW5jeUNsYXNzOjpOb3JtYWwpKTsKIAogICAgICAgICBWYWx1ZSogaW50TWluUmVzdWx0ID0g
bm9uQ2hpbGxPcGNvZGUgPT0gRGl2ID8gYmFkTnVtZXJhdG9yIDogaW50TWluQ2FzZS0+YXBwZW5k
SW50Q29uc3RhbnQobV9wcm9jLCBtX3ZhbHVlLCAwKTsKICAgICAgICAgVXBzaWxvblZhbHVlKiBp
bnRNaW5SZXN1bHRVcHNpbG9uID0gaW50TWluQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4o
CiAgICAgICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLCBpbnRNaW5SZXN1bHQpOwotICAgICAgICBp
bnRNaW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgICAgIG1fcHJvYywg
SnVtcCwgbV9vcmlnaW4sIEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7CisgICAgICAgIGludE1p
bkNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBKdW1wLCBtX29yaWdpbik7CisgICAgICAg
IGludE1pbkNhc2UtPnNldFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2NrKG1fYmxvY2spKTsKIAog
ICAgICAgICBWYWx1ZSogcGhpID0gbV9pbnNlcnRpb25TZXQuaW5zZXJ0PFZhbHVlPigKICAgICAg
ICAgICAgIG1faW5kZXgsIFBoaSwgbV92YWx1ZS0+dHlwZSgpLCBtX29yaWdpbik7CkBAIC0yNzIs
MTEgKzI4MiwxMDUgQEAgcHJpdmF0ZToKICAgICB9CiAKICAgICB2b2lkIHJlY3Vyc2l2ZWx5QnVp
bGRTd2l0Y2goCi0gICAgICAgIGNvbnN0IFZlY3RvcjxTd2l0Y2hDYXNlPiYgY2FzZXMsIHVuc2ln
bmVkIHN0YXJ0LCBib29sIGhhcmRTdGFydCwgdW5zaWduZWQgZW5kLAotICAgICAgICBCYXNpY0Js
b2NrKiBiZWZvcmUpCisgICAgICAgIGNvbnN0IFZlY3RvcjxTd2l0Y2hDYXNlPiYgY2FzZXMsIEZy
ZXF1ZW50ZWRCbG9jayBmYWxsVGhyb3VnaCwgdW5zaWduZWQgc3RhcnQsIGJvb2wgaGFyZFN0YXJ0
LAorICAgICAgICB1bnNpZ25lZCBlbmQsIEJhc2ljQmxvY2sqIGJlZm9yZSkKICAgICB7Ci0gICAg
ICAgIC8vIEZJWE1FOiBBZGQgdGFibGUtYmFzZWQgc3dpdGNoIGxvd2VyaW5nLgotICAgICAgICAv
LyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxMTQxCisgICAgICAg
IFZhbHVlKiBjaGlsZCA9IG1fdmFsdWUtPmNoaWxkKDApOworICAgICAgICBUeXBlIHR5cGUgPSBj
aGlsZC0+dHlwZSgpOworICAgICAgICAKKyAgICAgICAgLy8gSXQncyBhIGdvb2QgaWRlYSB0byB1
c2UgYSB0YWJsZS1iYXNlZCBzd2l0Y2ggaW4gc29tZSBjYXNlczogdGhlIG51bWJlciBvZiBjYXNl
cyBoYXMgdG8gYmUKKyAgICAgICAgLy8gbGFyZ2UgZW5vdWdoIGFuZCB0aGV5IGhhdmUgdG8gYmUg
ZGVuc2UgZW5vdWdoLiBUaGlzIGNvdWxkIHByb2JhYmx5IGJlIGltcHJvdmVkIGEgbG90LiBGb3IK
KyAgICAgICAgLy8gZXhhbXBsZSwgd2UgY291bGQgc3RpbGwgdXNlIGEganVtcCB0YWJsZSBpbiBj
YXNlcyB3aGVyZSB0aGUgaW5wdXRzIGFyZSBzcGFyc2Ugc28gbG9uZyBhcyB3ZQorICAgICAgICAv
LyBzaGlmdCBvZmYgdGhlIHVuaW50ZXJlc3RpbmcgYml0cy4gT24gdGhlIG90aGVyIGhhbmQsIGl0
J3Mgbm90IGNsZWFyIHRoYXQgdGhpcyB3b3VsZAorICAgICAgICAvLyBhY3R1YWxseSBiZSBhbnkg
YmV0dGVyIHRoYW4gd2hhdCB3ZSBoYXZlIGRvbmUgaGVyZSBhbmQgaXQncyBub3QgY2xlYXIgdGhh
dCBpdCB3b3VsZCBiZQorICAgICAgICAvLyBiZXR0ZXIgdGhhbiBhIGJpbmFyeSBzd2l0Y2guCisg
ICAgICAgIGNvbnN0IHVuc2lnbmVkIG1pbkNhc2VzRm9yVGFibGUgPSA3OworICAgICAgICBjb25z
dCB1bnNpZ25lZCBkZW5zaXR5TGltaXQgPSA0OworICAgICAgICBpZiAoZW5kIC0gc3RhcnQgPj0g
bWluQ2FzZXNGb3JUYWJsZSkgeworICAgICAgICAgICAgaW50NjRfdCBmaXJzdFZhbHVlID0gY2Fz
ZXNbc3RhcnRdLmNhc2VWYWx1ZSgpOworICAgICAgICAgICAgaW50NjRfdCBsYXN0VmFsdWUgPSBj
YXNlc1tlbmQgLSAxXS5jYXNlVmFsdWUoKTsKKyAgICAgICAgICAgIGlmICgobGFzdFZhbHVlIC0g
Zmlyc3RWYWx1ZSArIDEpIC8gY2FzZXMuc2l6ZSgpIDwgZGVuc2l0eUxpbWl0KSB7CisgICAgICAg
ICAgICAgICAgQmFzaWNCbG9jayogc3dpdGNoQmxvY2sgPSBtX2Jsb2NrSW5zZXJ0aW9uU2V0Lmlu
c2VydEFmdGVyKG1fYmxvY2spOworICAgICAgICAgICAgICAgIFZhbHVlKiBpbmRleCA9IGJlZm9y
ZS0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBTdWIsIG1f
b3JpZ2luLCBjaGlsZCwKKyAgICAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmRJbnRDb25z
dGFudChtX3Byb2MsIG1fb3JpZ2luLCB0eXBlLCBmaXJzdFZhbHVlKSk7CisgICAgICAgICAgICAg
ICAgYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgICAgICAgICBtX3Byb2Ms
IEJyYW5jaCwgbV9vcmlnaW4sCisgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3
PFZhbHVlPigKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgQWJvdmUsIG1fb3JpZ2lu
LCBpbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kSW50Q29uc3Rh
bnQobV9wcm9jLCBtX29yaWdpbiwgdHlwZSwgbGFzdFZhbHVlIC0gZmlyc3RWYWx1ZSkpKTsKKyAg
ICAgICAgICAgICAgICBiZWZvcmUtPnNldFN1Y2Nlc3NvcnMoZmFsbFRocm91Z2gsIEZyZXF1ZW50
ZWRCbG9jayhzd2l0Y2hCbG9jaykpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAg
IHNpemVfdCB0YWJsZVNpemUgPSBsYXN0VmFsdWUgLSBmaXJzdFZhbHVlICsgMTsKKyAgICAgICAg
ICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoaW5kZXgtPnR5cGUoKSAhPSBwb2ludGVyVHlw
ZSgpICYmIGluZGV4LT50eXBlKCkgPT0gSW50MzIpCisgICAgICAgICAgICAgICAgICAgIGluZGV4
ID0gc3dpdGNoQmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBaRXh0MzIsIG1fb3JpZ2lu
LCBpbmRleCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgUGF0Y2hwb2ludFZh
bHVlKiBwYXRjaHBvaW50ID0KKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoQmxvY2stPmFwcGVu
ZE5ldzxQYXRjaHBvaW50VmFsdWU+KG1fcHJvYywgVm9pZCwgbV9vcmlnaW4pOworICAgICAgICAg
ICAgICAgIAorICAgICAgICAgICAgICAgIHBhdGNocG9pbnQtPmVmZmVjdHMudGVybWluYWwgPSB0
cnVlOworICAgICAgICAgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZFNvbWVSZWdpc3RlcihpbmRl
eCk7CisgICAgICAgICAgICAgICAgcGF0Y2hwb2ludC0+bnVtR1BTY3JhdGNoUmVnaXN0ZXJzKys7
CisgICAgICAgICAgICAgICAgLy8gVGVjaG5pY2FsbHksIHdlIGRvbid0IGhhdmUgdG8gY2xvYmJl
ciBtYWNybyByZWdpc3RlcnMgb24gWDg2XzY0LiBUaGlzIGlzIHByb2JhYmx5CisgICAgICAgICAg
ICAgICAgLy8gT0sgdGhvdWdoLgorICAgICAgICAgICAgICAgIHBhdGNocG9pbnQtPmNsb2JiZXIo
UmVnaXN0ZXJTZXQ6Om1hY3JvU2NyYXRjaFJlZ2lzdGVycygpKTsKKyAgICAgICAgICAgICAgICAK
KyAgICAgICAgICAgICAgICBCaXRWZWN0b3IgaGFuZGxlZEluZGljZXM7CisgICAgICAgICAgICAg
ICAgZm9yICh1bnNpZ25lZCBpID0gc3RhcnQ7IGkgPCBlbmQ7ICsraSkgeworICAgICAgICAgICAg
ICAgICAgICBGcmVxdWVudGVkQmxvY2sgYmxvY2sgPSBjYXNlc1tpXS50YXJnZXQoKTsKKyAgICAg
ICAgICAgICAgICAgICAgaW50NjRfdCB2YWx1ZSA9IGNhc2VzW2ldLmNhc2VWYWx1ZSgpOworICAg
ICAgICAgICAgICAgICAgICBzd2l0Y2hCbG9jay0+YXBwZW5kU3VjY2Vzc29yKGJsb2NrKTsKKyAg
ICAgICAgICAgICAgICAgICAgc2l6ZV90IGluZGV4ID0gdmFsdWUgLSBmaXJzdFZhbHVlOworICAg
ICAgICAgICAgICAgICAgICBBU1NFUlQoIWhhbmRsZWRJbmRpY2VzLmdldChpbmRleCkpOworICAg
ICAgICAgICAgICAgICAgICBoYW5kbGVkSW5kaWNlcy5zZXQoaW5kZXgpOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBib29sIGhhc1VuaGFuZGxl
ZEluZGV4ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IHRhYmxlU2l6ZTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghaGFuZGxlZEluZGlj
ZXMuZ2V0KGkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBoYXNVbmhhbmRsZWRJbmRleCA9
IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAg
ICBpZiAoaGFzVW5oYW5kbGVkSW5kZXgpCisgICAgICAgICAgICAgICAgICAgIHN3aXRjaEJsb2Nr
LT5hcHBlbmRTdWNjZXNzb3IoZmFsbFRocm91Z2gpOworCisgICAgICAgICAgICAgICAgcGF0Y2hw
b2ludC0+c2V0R2VuZXJhdG9yKAorICAgICAgICAgICAgICAgICAgICBbPV0gKENDYWxsSGVscGVy
cyYgaml0LCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmIHBhcmFtcykgeworICAgICAg
ICAgICAgICAgICAgICAgICAgQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlIGFsbG93U2Ny
YXRjaChqaXQpOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAg
ICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIqIGp1bXBUYWJsZSA9IHN0YXRpY19jYXN0PE1hY3Jv
QXNzZW1ibGVyQ29kZVB0cio+KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy5w
cm9jKCkuYWRkRGF0YVNlY3Rpb24oc2l6ZW9mKE1hY3JvQXNzZW1ibGVyQ29kZVB0cikgKiB0YWJs
ZVNpemUpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAg
ICAgR1BSUmVnIGluZGV4ID0gcGFyYW1zWzBdLmdwcigpOworICAgICAgICAgICAgICAgICAgICAg
ICAgR1BSUmVnIHNjcmF0Y2ggPSBwYXJhbXMuZ3BTY3JhdGNoKDApOworICAgICAgICAgICAgICAg
ICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6
OlRydXN0ZWRJbW1QdHIoanVtcFRhYmxlKSwgc2NyYXRjaCk7CisgICAgICAgICAgICAgICAgICAg
ICAgICBqaXQuanVtcChDQ2FsbEhlbHBlcnM6OkJhc2VJbmRleChzY3JhdGNoLCBpbmRleCwgQ0Nh
bGxIZWxwZXJzOjp0aW1lc1B0cigpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAg
ICAgICAgICAgICAgICAgICAgIFZlY3RvcjxCb3g8Q0NhbGxIZWxwZXJzOjpMYWJlbD4+IGxhYmVs
cyA9IHBhcmFtcy5zdWNjZXNzb3JMYWJlbHMoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAor
ICAgICAgICAgICAgICAgICAgICAgICAgaml0LmFkZExpbmtUYXNrKAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFs9XSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoaGFzVW5oYW5kbGVkSW5kZXgpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBmYWxsVGhyb3Vn
aCA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlua0J1ZmZlci5s
b2NhdGlvbk9mKCpsYWJlbHMubGFzdCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGZvciAodW5zaWduZWQgaSA9IHRhYmxlU2l6ZTsgaS0tOykKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBqdW1wVGFibGVbaV0gPSBmYWxsVGhyb3VnaDsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbGFiZWxJ
bmRleCA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQg
dGFibGVJbmRleCA6IGhhbmRsZWRJbmRpY2VzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBqdW1wVGFibGVbdGFibGVJbmRleF0gPQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGxpbmtCdWZmZXIubG9jYXRpb25PZigqbGFiZWxzW2xhYmVsSW5k
ZXgrK10pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgICAgICAKICAgICAgICAg
Ly8gU2VlIGNvbW1lbnRzIGluIGppdC9CaW5hcnlTd2l0Y2guY3BwIGZvciBhIGp1c3RpZmljYXRp
b24gb2YgdGhpcyBhbGdvcml0aG0uIFRoZSBvbmx5CiAgICAgICAgIC8vIHRoaW5nIHdlIGRvIGRp
ZmZlcmVudGx5IGlzIHRoYXQgd2UgZG9uJ3QgdXNlIHJhbmRvbW5lc3MuCkBAIC0zMDQsMjUgKzQw
OCwyMyBAQCBwcml2YXRlOgogICAgICAgICAgICAgCiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgbGltaXQ7ICsraSkgewogICAgICAgICAgICAgICAgIEJhc2ljQmxvY2sqIG5l
eHRDaGVjayA9IG1fYmxvY2tJbnNlcnRpb25TZXQuaW5zZXJ0QWZ0ZXIobV9ibG9jayk7Ci0gICAg
ICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgICAg
ICAgICBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICAgICAgICAgIG1fcHJv
YywgQnJhbmNoLCBtX29yaWdpbiwKICAgICAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmRO
ZXc8VmFsdWU+KAotICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBFcXVhbCwgbV9vcmln
aW4sIG1fdmFsdWUtPmNoaWxkKDApLAorICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBF
cXVhbCwgbV9vcmlnaW4sIGNoaWxkLAogICAgICAgICAgICAgICAgICAgICAgICAgYmVmb3JlLT5h
cHBlbmRJbnRDb25zdGFudCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIG1f
b3JpZ2luLCBtX3ZhbHVlLT5jaGlsZCgwKS0+dHlwZSgpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNhc2VzW3N0YXJ0ICsgaV0uY2FzZVZhbHVlKCkpKSwKLSAgICAgICAgICAgICAgICAg
ICAgY2FzZXNbc3RhcnQgKyBpXS50YXJnZXQoKSwgRnJlcXVlbnRlZEJsb2NrKG5leHRDaGVjaykp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgbV9vcmlnaW4sIHR5cGUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZXNbc3RhcnQgKyBpXS5jYXNlVmFsdWUoKSkp
KTsKKyAgICAgICAgICAgICAgICBiZWZvcmUtPnNldFN1Y2Nlc3NvcnMoY2FzZXNbc3RhcnQgKyBp
XS50YXJnZXQoKSwgRnJlcXVlbnRlZEJsb2NrKG5leHRDaGVjaykpOwogCiAgICAgICAgICAgICAg
ICAgYmVmb3JlID0gbmV4dENoZWNrOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBpZiAo
YWxsQ29uc2VjdXRpdmUpIHsKLSAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAotICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIEp1bXAsIG1fb3JpZ2luLCBj
YXNlc1tlbmQgLSAxXS50YXJnZXQoKSk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCi0gICAgICAgICAgICAgICAg
ICAgIG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIG1fdmFsdWUtPmFzPFN3aXRjaFZhbHVlPigpLT5m
YWxsVGhyb3VnaCgpKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5k
TmV3PFZhbHVlPihtX3Byb2MsIEp1bXAsIG1fb3JpZ2luKTsKKyAgICAgICAgICAgIGlmIChhbGxD
b25zZWN1dGl2ZSkKKyAgICAgICAgICAgICAgICBiZWZvcmUtPnNldFN1Y2Nlc3NvcnMoY2FzZXNb
ZW5kIC0gMV0udGFyZ2V0KCkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGJl
Zm9yZS0+c2V0U3VjY2Vzc29ycyhmYWxsVGhyb3VnaCk7CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KIApAQCAtMzMxLDE3ICs0MzMsMTcgQEAgcHJpdmF0ZToKICAgICAgICAgQmFzaWNC
bG9jayogbGVmdCA9IG1fYmxvY2tJbnNlcnRpb25TZXQuaW5zZXJ0QWZ0ZXIobV9ibG9jayk7CiAg
ICAgICAgIEJhc2ljQmxvY2sqIHJpZ2h0ID0gbV9ibG9ja0luc2VydGlvblNldC5pbnNlcnRBZnRl
cihtX2Jsb2NrKTsKIAotICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBtX3Byb2MsIEJy
YW5jaCwgbV9vcmlnaW4sCiAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4oCi0g
ICAgICAgICAgICAgICAgbV9wcm9jLCBMZXNzVGhhbiwgbV9vcmlnaW4sIG1fdmFsdWUtPmNoaWxk
KDApLAorICAgICAgICAgICAgICAgIG1fcHJvYywgTGVzc1RoYW4sIG1fb3JpZ2luLCBjaGlsZCwK
ICAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZEludENvbnN0YW50KAotICAgICAgICAgICAg
ICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLCBtX3ZhbHVlLT5jaGlsZCgwKS0+dHlwZSgpLAotICAg
ICAgICAgICAgICAgICAgICBjYXNlc1ttZWRpYW5JbmRleF0uY2FzZVZhbHVlKCkpKSwKLSAgICAg
ICAgICAgIEZyZXF1ZW50ZWRCbG9jayhsZWZ0KSwgRnJlcXVlbnRlZEJsb2NrKHJpZ2h0KSk7Cisg
ICAgICAgICAgICAgICAgICAgIG1fcHJvYywgbV9vcmlnaW4sIHR5cGUsCisgICAgICAgICAgICAg
ICAgICAgIGNhc2VzW21lZGlhbkluZGV4XS5jYXNlVmFsdWUoKSkpKTsKKyAgICAgICAgYmVmb3Jl
LT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhsZWZ0KSwgRnJlcXVlbnRlZEJsb2NrKHJp
Z2h0KSk7CiAKLSAgICAgICAgcmVjdXJzaXZlbHlCdWlsZFN3aXRjaChjYXNlcywgc3RhcnQsIGhh
cmRTdGFydCwgbWVkaWFuSW5kZXgsIGxlZnQpOwotICAgICAgICByZWN1cnNpdmVseUJ1aWxkU3dp
dGNoKGNhc2VzLCBtZWRpYW5JbmRleCwgdHJ1ZSwgZW5kLCByaWdodCk7CisgICAgICAgIHJlY3Vy
c2l2ZWx5QnVpbGRTd2l0Y2goY2FzZXMsIGZhbGxUaHJvdWdoLCBzdGFydCwgaGFyZFN0YXJ0LCBt
ZWRpYW5JbmRleCwgbGVmdCk7CisgICAgICAgIHJlY3Vyc2l2ZWx5QnVpbGRTd2l0Y2goY2FzZXMs
IGZhbGxUaHJvdWdoLCBtZWRpYW5JbmRleCwgdHJ1ZSwgZW5kLCByaWdodCk7CiAgICAgfQogICAg
IAogICAgIFByb2NlZHVyZSYgbV9wcm9jOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzTG93ZXJUb0Fpci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzTG93ZXJUb0Fpci5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTUsNyArMTU1LDYg
QEAgcHVibGljOgogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgdGhh
dCB0aGUgc3VjY2Vzc29ycyBhcmUgc2V0IHVwIGNvcnJlY3RseS4KLSAgICAgICAgICAgIEFTU0VS
VChibG9jay0+c3VjY2Vzc29ycygpLnNpemUoKSA8PSAyKTsKICAgICAgICAgICAgIGZvciAoQjM6
OkZyZXF1ZW50ZWRCbG9jayBzdWNjZXNzb3IgOiBibG9jay0+c3VjY2Vzc29ycygpKSB7CiAgICAg
ICAgICAgICAgICAgbV9ibG9ja1RvQmxvY2tbYmxvY2tdLT5zdWNjZXNzb3JzKCkuYXBwZW5kKAog
ICAgICAgICAgICAgICAgICAgICBBaXI6OkZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrVG9CbG9ja1tz
dWNjZXNzb3IuYmxvY2soKV0sIHN1Y2Nlc3Nvci5mcmVxdWVuY3koKSkpOwpAQCAtMjQ0MSw3ICsy
NDQwLDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQotCisgICAgICAgICAgICAKICAgICAgICAgY2FzZSBCMzo6T29wczogewogICAgICAg
ICAgICAgYXBwZW5kKEFpcjo6T29wcyk7CiAgICAgICAgICAgICByZXR1cm47CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNNYXRoRXh0cmFzLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNNYXRoRXh0cmFzLmNwcAkocmV2aXNpb24gMjAyODA5KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTWF0aEV4dHJhcy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMzMsNyArMzMsNiBAQAogI2luY2x1ZGUgIkIzQ29uc3QzMlZhbHVlLmgiCiAjaW5jbHVkZSAi
QjNDb25zdERvdWJsZVZhbHVlLmgiCiAjaW5jbHVkZSAiQjNDb25zdFB0clZhbHVlLmgiCi0jaW5j
bHVkZSAiQjNDb250cm9sVmFsdWUuaCIKICNpbmNsdWRlICJCM1Vwc2lsb25WYWx1ZS5oIgogI2lu
Y2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiTWF0aENvbW1vbi5oIgpAQCAtNTIs
MTAgKzUxLDggQEAgc3RkOjpwYWlyPEJhc2ljQmxvY2sqLCBWYWx1ZSo+IHBvd0RvdWJsZQogICAg
IFZhbHVlKiBzaG91bGRHb1Nsb3dQYXRoID0gc3RhcnQtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvY2Vk
dXJlLCBBYm92ZSwgb3JpZ2luLAogICAgICAgICB5LAogICAgICAgICBzdGFydC0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvY2VkdXJlLCBvcmlnaW4sIG1heEV4cG9uZW50Rm9ySW50ZWdlck1h
dGhQb3cpKTsKLSAgICBzdGFydC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCi0gICAgICAgIHBy
b2NlZHVyZSwgQnJhbmNoLCBvcmlnaW4sCi0gICAgICAgIHNob3VsZEdvU2xvd1BhdGgsCi0gICAg
ICAgIEZyZXF1ZW50ZWRCbG9jayhmdW5jdGlvbkNhbGxDYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGxv
b3BQcmVIZWFkZXJDYXNlKSk7CisgICAgc3RhcnQtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvY2VkdXJl
LCBCcmFuY2gsIG9yaWdpbiwgc2hvdWxkR29TbG93UGF0aCk7CisgICAgc3RhcnQtPnNldFN1Y2Nl
c3NvcnMoRnJlcXVlbnRlZEJsb2NrKGZ1bmN0aW9uQ2FsbENhc2UpLCBGcmVxdWVudGVkQmxvY2so
bG9vcFByZUhlYWRlckNhc2UpKTsKIAogICAgIC8vIEZ1bmN0aW9uIGNhbGwuCiAgICAgVmFsdWUq
IHlBc0RvdWJsZSA9IGZ1bmN0aW9uQ2FsbENhc2UtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvY2VkdXJl
LCBJVG9ELCBvcmlnaW4sIHkpOwpAQCAtNjUsNyArNjIsOCBAQCBzdGQ6OnBhaXI8QmFzaWNCbG9j
ayosIFZhbHVlKj4gcG93RG91YmxlCiAgICAgICAgIGZ1bmN0aW9uQ2FsbENhc2UtPmFwcGVuZE5l
dzxDb25zdFB0clZhbHVlPihwcm9jZWR1cmUsIG9yaWdpbiwgYml0d2lzZV9jYXN0PHZvaWQqPihw
b3dEb3VibGUpKSwKICAgICAgICAgeCwgeUFzRG91YmxlKTsKICAgICBVcHNpbG9uVmFsdWUqIHBv
d1Jlc3VsdFVwc2lsb24gPSBmdW5jdGlvbkNhbGxDYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVl
Pihwcm9jZWR1cmUsIG9yaWdpbiwgcG93UmVzdWx0KTsKLSAgICBmdW5jdGlvbkNhbGxDYXNlLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jZWR1cmUsIEp1bXAsIG9yaWdpbiwgRnJlcXVlbnRl
ZEJsb2NrKGNvbnRpbnVhdGlvbikpOworICAgIGZ1bmN0aW9uQ2FsbENhc2UtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvY2VkdXJlLCBKdW1wLCBvcmlnaW4pOworICAgIGZ1bmN0aW9uQ2FsbENhc2UtPnNl
dFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2NrKGNvbnRpbnVhdGlvbikpOwogCiAgICAgLy8gTG9v
cCBwcmUtaGVhZGVyLgogICAgIFZhbHVlKiBpbml0aWFsUmVzdWx0ID0gbG9vcFByZUhlYWRlckNh
c2UtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jZWR1cmUsIG9yaWdpbiwgMS4pOwpA
QCAtNzMsNyArNzEsOCBAQCBzdGQ6OnBhaXI8QmFzaWNCbG9jayosIFZhbHVlKj4gcG93RG91Ymxl
CiAgICAgVXBzaWxvblZhbHVlKiBpbml0aWFsUmVzdWx0VmFsdWUgPSBsb29wUHJlSGVhZGVyQ2Fz
ZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvY2VkdXJlLCBvcmlnaW4sIGluaXRpYWxSZXN1
bHQpOwogICAgIFVwc2lsb25WYWx1ZSogaW5pdGlhbFNxdWFyZWRJbnB1dCA9IGxvb3BQcmVIZWFk
ZXJDYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jZWR1cmUsIG9yaWdpbiwgeCk7CiAg
ICAgVXBzaWxvblZhbHVlKiBpbml0aWFsTG9vcENvdW50ZXIgPSBsb29wUHJlSGVhZGVyQ2FzZS0+
YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvY2VkdXJlLCBvcmlnaW4sIHkpOwotICAgIGxvb3BQ
cmVIZWFkZXJDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jZWR1cmUsIEp1bXAsIG9y
aWdpbiwgRnJlcXVlbnRlZEJsb2NrKGxvb3BUZXN0Rm9yRXZlbkNhc2UpKTsKKyAgICBsb29wUHJl
SGVhZGVyQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihwcm9jZWR1cmUsIEp1bXAsIG9yaWdpbik7Cisg
ICAgbG9vcFByZUhlYWRlckNhc2UtPnNldFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2NrKGxvb3BU
ZXN0Rm9yRXZlbkNhc2UpKTsKIAogICAgIC8vIFRlc3QgaWYgd2hhdCBpcyBsZWZ0IG9mIHRoZSBj
b3VudGVyIGlzIGV2ZW4uCiAgICAgVmFsdWUqIGluTG9vcENvdW50ZXIgPSBsb29wVGVzdEZvckV2
ZW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+KHByb2NlZHVyZSwgUGhpLCBJbnQzMiwgb3JpZ2luKTsK
QEAgLTgxLDEwICs4MCw4IEBAIHN0ZDo6cGFpcjxCYXNpY0Jsb2NrKiwgVmFsdWUqPiBwb3dEb3Vi
bGUKICAgICBWYWx1ZSogbGFzdENvdW50ZXJCaXQgPSBsb29wVGVzdEZvckV2ZW5DYXNlLT5hcHBl
bmROZXc8VmFsdWU+KHByb2NlZHVyZSwgQml0QW5kLCBvcmlnaW4sCiAgICAgICAgIGluTG9vcENv
dW50ZXIsCiAgICAgICAgIGxvb3BUZXN0Rm9yRXZlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2NlZHVyZSwgb3JpZ2luLCAxKSk7Ci0gICAgbG9vcFRlc3RGb3JFdmVuQ2FzZS0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCi0gICAgICAgIHByb2NlZHVyZSwgQnJhbmNoLCBvcmlnaW4s
Ci0gICAgICAgIGxhc3RDb3VudGVyQml0LAotICAgICAgICBGcmVxdWVudGVkQmxvY2sobG9vcE9k
ZCksIEZyZXF1ZW50ZWRCbG9jayhsb29wRXZlbk9kZCkpOworICAgIGxvb3BUZXN0Rm9yRXZlbkNh
c2UtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvY2VkdXJlLCBCcmFuY2gsIG9yaWdpbiwgbGFzdENvdW50
ZXJCaXQpOworICAgIGxvb3BUZXN0Rm9yRXZlbkNhc2UtPnNldFN1Y2Nlc3NvcnMoRnJlcXVlbnRl
ZEJsb2NrKGxvb3BPZGQpLCBGcmVxdWVudGVkQmxvY2sobG9vcEV2ZW5PZGQpKTsKIAogICAgIC8v
IENvdW50ZXIgaXMgb2RkLgogICAgIFZhbHVlKiBpbkxvb3BSZXN1bHQgPSBsb29wT2RkLT5hcHBl
bmROZXc8VmFsdWU+KHByb2NlZHVyZSwgUGhpLCBEb3VibGUsIG9yaWdpbik7CkBAIC05NCw3ICs5
MSw4IEBAIHN0ZDo6cGFpcjxCYXNpY0Jsb2NrKiwgVmFsdWUqPiBwb3dEb3VibGUKICAgICB1cGRh
dGVkTG9vcFJlc3VsdFVwc2lsb24tPnNldFBoaShpbkxvb3BSZXN1bHQpOwogICAgIFVwc2lsb25W
YWx1ZSogdXBkYXRlZExvb3BSZXN1bHQgPSBsb29wT2RkLT5hcHBlbmROZXc8VXBzaWxvblZhbHVl
Pihwcm9jZWR1cmUsIG9yaWdpbiwgdXBkYXRlZFJlc3VsdCk7CiAKLSAgICBsb29wT2RkLT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jZWR1cmUsIEp1bXAsIG9yaWdpbiwgRnJlcXVlbnRlZEJs
b2NrKGxvb3BFdmVuT2RkKSk7CisgICAgbG9vcE9kZC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jZWR1
cmUsIEp1bXAsIG9yaWdpbik7CisgICAgbG9vcE9kZC0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVk
QmxvY2sobG9vcEV2ZW5PZGQpKTsKIAogICAgIC8vIEV2ZW4gdmFsdWUgYW5kIGZvbGxvd2luZyB0
aGUgT2RkLgogICAgIFZhbHVlKiBzcXVhcmVkSW5wdXQgPSBsb29wRXZlbk9kZC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jZWR1cmUsIE11bCwgb3JpZ2luLCBpbkxvb3BTcXVhcmVkSW5wdXQsIGluTG9v
cFNxdWFyZWRJbnB1dCk7CkBAIC0xMDksMTAgKzEwNyw4IEBAIHN0ZDo6cGFpcjxCYXNpY0Jsb2Nr
KiwgVmFsdWUqPiBwb3dEb3VibGUKICAgICBpbml0aWFsTG9vcENvdW50ZXItPnNldFBoaShpbkxv
b3BDb3VudGVyKTsKICAgICB1cGRhdGVkQ291bnRlclVwc2lsb24tPnNldFBoaShpbkxvb3BDb3Vu
dGVyKTsKIAotICAgIGxvb3BFdmVuT2RkLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAg
ICAgcHJvY2VkdXJlLCBCcmFuY2gsIG9yaWdpbiwKLSAgICAgICAgdXBkYXRlZENvdW50ZXIsCi0g
ICAgICAgIEZyZXF1ZW50ZWRCbG9jayhsb29wVGVzdEZvckV2ZW5DYXNlKSwgRnJlcXVlbnRlZEJs
b2NrKGNvbnRpbnVhdGlvbikpOworICAgIGxvb3BFdmVuT2RkLT5hcHBlbmROZXc8VmFsdWU+KHBy
b2NlZHVyZSwgQnJhbmNoLCBvcmlnaW4sIHVwZGF0ZWRDb3VudGVyKTsKKyAgICBsb29wRXZlbk9k
ZC0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2sobG9vcFRlc3RGb3JFdmVuQ2FzZSksIEZy
ZXF1ZW50ZWRCbG9jayhjb250aW51YXRpb24pKTsKIAogICAgIC8vIElubGluZSBsb29wLgogICAg
IFZhbHVlKiBmaW5hbFJlc3VsdFBoaSA9IGNvbnRpbnVhdGlvbi0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jZWR1cmUsIFBoaSwgRG91YmxlLCBvcmlnaW4pOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzT3Bjb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzT3Bjb2RlLmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM09wY29kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMDcsMjEgKzIwNywyMSBAQCBlbnVtIE9w
Y29kZSA6IGludDE2X3QgewogICAgIFVwc2lsb24sIC8vIFRoaXMgdXNlcyB0aGUgVXBzaWxvblZh
bHVlIGNsYXNzLgogICAgIFBoaSwKIAotICAgIC8vIEp1bXAuIFVzZXMgdGhlIENvbnRyb2xWYWx1
ZSBjbGFzcy4KKyAgICAvLyBKdW1wLgogICAgIEp1bXAsCiAgICAgCi0gICAgLy8gUG9seW1vcnBo
aWMgYnJhbmNoLCB1c2FibGUgd2l0aCBhbnkgaW50ZWdlciB0eXBlLiBCcmFuY2hlcyBpZiBub3Qg
ZXF1YWwgdG8gemVyby4gVXNlcyB0aGUKLSAgICAvLyBDb250cm9sVmFsdWUgY2xhc3MsIHdpdGgg
dGhlIDAtaW5kZXggc3VjY2Vzc29yIGJlaW5nIHRoZSB0cnVlIHN1Y2Nlc3Nvci4KKyAgICAvLyBQ
b2x5bW9ycGhpYyBicmFuY2gsIHVzYWJsZSB3aXRoIGFueSBpbnRlZ2VyIHR5cGUuIEJyYW5jaGVz
IGlmIG5vdCBlcXVhbCB0byB6ZXJvLiBUaGUgMC1pbmRleAorICAgIC8vIHN1Y2Nlc3NvciBpcyB0
aGUgdHJ1ZSBzdWNjZXNzb3IuCiAgICAgQnJhbmNoLAogCiAgICAgLy8gU3dpdGNoLiBTd2l0Y2hl
cyBvdmVyIGVpdGhlciBJbnQzMiBvciBJbnQ2NC4gVXNlcyB0aGUgU3dpdGNoVmFsdWUgY2xhc3Mu
CiAgICAgU3dpdGNoLAotCisgICAgCiAgICAgLy8gUmV0dXJuLiBOb3RlIHRoYXQgQjMgcHJvY2Vk
dXJlcyBkb24ndCBrbm93IHRoZWlyIHJldHVybiB0eXBlLCBzbyB0aGlzIGNhbiBqdXN0IHJldHVy
biBhbnkKLSAgICAvLyB0eXBlLiBVc2VzIHRoZSBDb250cm9sVmFsdWUgY2xhc3MuCisgICAgLy8g
dHlwZS4KICAgICBSZXR1cm4sCiAKLSAgICAvLyBUaGlzIGlzIGEgdGVybWluYWwgdGhhdCBpbmRp
Y2F0ZXMgdGhhdCB3ZSB3aWxsIG5ldmVyIGdldCBoZXJlLiBVc2VzIHRoZSBDb250cm9sVmFsdWUg
Y2xhc3MuCisgICAgLy8gVGhpcyBpcyBhIHRlcm1pbmFsIHRoYXQgaW5kaWNhdGVzIHRoYXQgd2Ug
d2lsbCBuZXZlciBnZXQgaGVyZS4KICAgICBPb3BzCiB9OwogCkBAIC0yNTksNiArMjU5LDIwIEBA
IGlubGluZSBib29sIGlzQ29uc3RhbnQoT3Bjb2RlIG9wY29kZSkKICAgICB9CiB9CiAKK2lubGlu
ZSBib29sIGlzRGVmaW5pdGVseVRlcm1pbmFsKE9wY29kZSBvcGNvZGUpCit7CisgICAgc3dpdGNo
IChvcGNvZGUpIHsKKyAgICBjYXNlIEp1bXA6CisgICAgY2FzZSBCcmFuY2g6CisgICAgY2FzZSBT
d2l0Y2g6CisgICAgY2FzZSBPb3BzOgorICAgIGNhc2UgUmV0dXJuOgorICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQorCiB9
IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKIAogbmFtZXNwYWNlIFdURiB7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNQYXRjaHBvaW50U3BlY2lhbC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUGF0Y2hwb2ludFNwZWNpYWwuY3BwCShyZXZpc2lv
biAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQYXRjaHBvaW50U3BlY2lh
bC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0Niw2ICsxNDYsMTEgQEAgQ0NhbGxIZWxwZXJzOjpK
dW1wIFBhdGNocG9pbnRTcGVjaWFsOjpnZQogICAgIHJldHVybiBDQ2FsbEhlbHBlcnM6Okp1bXAo
KTsKIH0KIAorYm9vbCBQYXRjaHBvaW50U3BlY2lhbDo6aXNUZXJtaW5hbChJbnN0JiBpbnN0KQor
eworICAgIHJldHVybiBpbnN0Lm9yaWdpbi0+YXM8UGF0Y2hwb2ludFZhbHVlPigpLT5lZmZlY3Rz
LnRlcm1pbmFsOworfQorCiB2b2lkIFBhdGNocG9pbnRTcGVjaWFsOjpkdW1wSW1wbChQcmludFN0
cmVhbSYgb3V0KSBjb25zdAogewogICAgIG91dC5wcmludCgiUGF0Y2hwb2ludCIpOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUGF0Y2hwb2ludFNwZWNpYWwuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQYXRjaHBvaW50U3BlY2lhbC5oCShyZXZp
c2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQYXRjaHBvaW50U3Bl
Y2lhbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTU2LDYgKzU2LDggQEAgcHJvdGVjdGVkOgogICAgIC8vIGdl
bmVyYXRlcyB0aGUgc3RhY2ttYXAuIFN1cGVyIGNyYXp5IGR1ZGUhCiAKICAgICBDQ2FsbEhlbHBl
cnM6Okp1bXAgZ2VuZXJhdGUoQWlyOjpJbnN0JiwgQ0NhbGxIZWxwZXJzJiwgQWlyOjpHZW5lcmF0
aW9uQ29udGV4dCYpIG92ZXJyaWRlOworICAgIAorICAgIGJvb2wgaXNUZXJtaW5hbChBaXI6Oklu
c3QmKSBvdmVycmlkZTsKIAogICAgIHZvaWQgZHVtcEltcGwoUHJpbnRTdHJlYW0mKSBjb25zdCBv
dmVycmlkZTsKICAgICB2b2lkIGRlZXBEdW1wSW1wbChQcmludFN0cmVhbSYpIGNvbnN0IG92ZXJy
aWRlOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuY3BwCShyZXZp
c2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xNDgsMzEgKzE0OCw2IEBAIHZvaWQgUHJvY2VkdXJlOjpyZXNl
dFZhbHVlT3duZXJzKCkKIAogdm9pZCBQcm9jZWR1cmU6OnJlc2V0UmVhY2hhYmlsaXR5KCkKIHsK
LSAgICBpZiAoc2hvdWxkVmFsaWRhdGVJUigpKSB7Ci0gICAgICAgIC8vIFZhbGlkYXRlIHRoZSBi
YXNpYyBwcm9wZXJ0aWVzIHRoYXQgd2UgbmVlZCBmb3IgcmVzZXR0aW5nIHJlYWNoYWJpbGl0eS4g
V2Ugb2Z0ZW4gcmVzZXQKLSAgICAgICAgLy8gcmVhY2hhYmlsaXR5IGJlZm9yZSBJUiB2YWxpZGF0
aW9uLCBzbyB3aXRob3V0IHRoaXMgbWluaS12YWxpZGF0aW9uLCB5b3Ugd291bGQgY3Jhc2ggaW5z
aWRlCi0gICAgICAgIC8vIEIzOjpyZXNldFJlYWNoYWJpbGl0eSgpIHdpdGhvdXQgZ2V0dGluZyBh
bnkgSVIgZHVtcC4KLQotICAgICAgICBCYXNpY0Jsb2NrKiBiYWRCbG9jayA9IG51bGxwdHI7Ci0g
ICAgICAgIGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiAqdGhpcykgewotICAgICAgICAgICAgaWYg
KCFibG9jay0+c2l6ZSgpKSB7Ci0gICAgICAgICAgICAgICAgYmFkQmxvY2sgPSBibG9jazsKLSAg
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKCFi
bG9jay0+bGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCkpIHsKLSAgICAgICAgICAgICAgICBiYWRC
bG9jayA9IGJsb2NrOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAg
ICAgICB9Ci0KLSAgICAgICAgaWYgKGJhZEJsb2NrKSB7Ci0gICAgICAgICAgICBkYXRhTG9nKCJG
QVRBTDogSW52YWxpZCBiYXNpYyBibG9jayAiLCAqYmFkQmxvY2ssICIgd2hpbGUgcnVubmluZyBQ
cm9jZWR1cmU6OnJlc2V0UmVhY2hhYmlsaXR5KCkuXG4iKTsKLSAgICAgICAgICAgIGRhdGFMb2co
KnRoaXMpOwotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAg
ICAgfQotICAgIH0KLSAgICAKICAgICByZWNvbXB1dGVQcmVkZWNlc3NvcnMobV9ibG9ja3MpOwog
ICAgIAogICAgIC8vIFRoZSBjb21tb24gY2FzZSBpcyB0aGF0IHRoaXMgZG9lcyBub3QgZmluZCBh
bnkgZGVhZCBibG9ja3MuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1
cmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUu
aAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2Vk
dXJlLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxOCw3ICsyMTgsMTAgQEAgcHVibGljOgogCiAgICAg
Y29uc3QgY2hhciogbGFzdFBoYXNlTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdFBoYXNlTmFt
ZTsgfQogCi0gICAgdm9pZCogYWRkRGF0YVNlY3Rpb24oc2l6ZV90IHNpemUpOworICAgIC8vIEFs
bG9jYXRlcyBhIHNsYWIgb2YgbWVtb3J5IHRoYXQgd2lsbCBiZSBrZXB0IGFsaXZlIGJ5IGFueW9u
ZSB3aG8ga2VlcHMgdGhlIHJlc3VsdGluZyBjb2RlCisgICAgLy8gYWxpdmUuIEdyZWF0IGZvciBj
b21waWxlci1nZW5lcmF0ZWQgZGF0YSBzZWN0aW9ucywgbGlrZSBzd2l0Y2gganVtcCB0YWJsZXMg
YW5kIGNvbnN0YW50IHBvb2xzLgorICAgIC8vIFRoaXMgcmV0dXJucyBtZW1vcnkgdGhhdCBoYXMg
YmVlbiB6ZXJvLWluaXRpYWxpemVkLgorICAgIHZvaWQqIGFkZERhdGFTZWN0aW9uKHNpemVfdCk7
CiAKICAgICBPcGFxdWVCeXByb2R1Y3RzJiBieXByb2R1Y3RzKCkgeyByZXR1cm4gKm1fYnlwcm9k
dWN0czsgfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VTdHJlbmd0
aC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3Ry
ZW5ndGguY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNSZWR1Y2VTdHJlbmd0aC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDYgQEAKICNp
bmNsdWRlICJCM0Jhc2ljQmxvY2tJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNCbG9ja0luc2VydGlv
blNldC5oIgogI2luY2x1ZGUgIkIzQ29tcHV0ZURpdmlzaW9uTWFnaWMuaCIKLSNpbmNsdWRlICJC
M0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzRG9taW5hdG9ycy5oIgogI2luY2x1ZGUgIkIz
SW5kZXhTZXQuaCIKICNpbmNsdWRlICJCM0luc2VydGlvblNldElubGluZXMuaCIKQEAgLTE3MTcs
NyArMTcxNiw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgLy8gUmVwbGFjZSB0aGUgcmVz
dCBvZiB0aGUgYmxvY2sgd2l0aCBhbiBPb3BzLgogICAgICAgICAgICAgICAgIGZvciAodW5zaWdu
ZWQgaSA9IG1faW5kZXggKyAxOyBpIDwgbV9ibG9jay0+c2l6ZSgpIC0gMTsgKytpKQogICAgICAg
ICAgICAgICAgICAgICBtX2Jsb2NrLT5hdChpKS0+cmVwbGFjZVdpdGhCb3R0b20obV9pbnNlcnRp
b25TZXQsIG1faW5kZXgpOwotICAgICAgICAgICAgICAgIG1fYmxvY2stPmxhc3QoKS0+YXM8Q29u
dHJvbFZhbHVlPigpLT5jb252ZXJ0VG9Pb3BzKCk7CisgICAgICAgICAgICAgICAgbV9ibG9jay0+
bGFzdCgpLT5yZXBsYWNlV2l0aE9vcHMobV9ibG9jayk7CiAgICAgICAgICAgICAgICAgbV9ibG9j
ay0+bGFzdCgpLT5zZXRPcmlnaW4oY2hlY2tWYWx1ZS0+b3JpZ2luKCkpOwogCiAgICAgICAgICAg
ICAgICAgLy8gUmVwbGFjZSBvdXJzZWx2ZXMgbGFzdC4KQEAgLTE3NzMsNiArMTc3Miw3IEBAIHBy
aXZhdGU6CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZS0+b3Bjb2RlKCkgPT0gU2Vs
ZWN0CiAgICAgICAgICAgICAgICAgICAgICAgICAmJiAodmFsdWUtPmNoaWxkKDEpLT5pc0NvbnN0
YW50KCkgJiYgdmFsdWUtPmNoaWxkKDIpLT5pc0NvbnN0YW50KCkpOwogICAgICAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoc2VsZWN0KSB7CiAgICAgICAgICAg
ICAgICAgc3BlY2lhbGl6ZVNlbGVjdChzZWxlY3QpOwogICAgICAgICAgICAgICAgIGJyZWFrOwpA
QCAtMTc4MSw1MCArMTc4MSw0OCBAQCBwcml2YXRlOgogICAgICAgICB9CiAKICAgICAgICAgY2Fz
ZSBCcmFuY2g6IHsKLSAgICAgICAgICAgIENvbnRyb2xWYWx1ZSogYnJhbmNoID0gbV92YWx1ZS0+
YXM8Q29udHJvbFZhbHVlPigpOwotCiAgICAgICAgICAgICAvLyBUdXJuIHRoaXM6IEJyYW5jaChO
b3RFcXVhbCh4LCAwKSkKICAgICAgICAgICAgIC8vIEludG8gdGhpczogQnJhbmNoKHgpCi0gICAg
ICAgICAgICBpZiAoYnJhbmNoLT5jaGlsZCgwKS0+b3Bjb2RlKCkgPT0gTm90RXF1YWwgJiYgYnJh
bmNoLT5jaGlsZCgwKS0+Y2hpbGQoMSktPmlzSW50KDApKSB7Ci0gICAgICAgICAgICAgICAgYnJh
bmNoLT5jaGlsZCgwKSA9IGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDApOworICAgICAgICAgICAg
aWYgKG1fdmFsdWUtPmNoaWxkKDApLT5vcGNvZGUoKSA9PSBOb3RFcXVhbCAmJiBtX3ZhbHVlLT5j
aGlsZCgwKS0+Y2hpbGQoMSktPmlzSW50KDApKSB7CisgICAgICAgICAgICAgICAgbV92YWx1ZS0+
Y2hpbGQoMCkgPSBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMCk7CiAgICAgICAgICAgICAgICAg
bV9jaGFuZ2VkID0gdHJ1ZTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgLy8gVHVybiB0
aGlzOiBCcmFuY2goRXF1YWwoeCwgMCksIHRoZW4sIGVsc2UpCiAgICAgICAgICAgICAvLyBJbnRv
IHRoaXM6IEJyYW5jaCh4LCBlbHNlLCB0aGVuKQotICAgICAgICAgICAgaWYgKGJyYW5jaC0+Y2hp
bGQoMCktPm9wY29kZSgpID09IEVxdWFsICYmIGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDEpLT5p
c0ludCgwKSkgewotICAgICAgICAgICAgICAgIGJyYW5jaC0+Y2hpbGQoMCkgPSBicmFuY2gtPmNo
aWxkKDApLT5jaGlsZCgwKTsKLSAgICAgICAgICAgICAgICBzdGQ6OnN3YXAoYnJhbmNoLT50YWtl
bigpLCBicmFuY2gtPm5vdFRha2VuKCkpOworICAgICAgICAgICAgaWYgKG1fdmFsdWUtPmNoaWxk
KDApLT5vcGNvZGUoKSA9PSBFcXVhbCAmJiBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMSktPmlz
SW50KDApKSB7CisgICAgICAgICAgICAgICAgbV92YWx1ZS0+Y2hpbGQoMCkgPSBtX3ZhbHVlLT5j
aGlsZCgwKS0+Y2hpbGQoMCk7CisgICAgICAgICAgICAgICAgc3RkOjpzd2FwKG1fYmxvY2stPnRh
a2VuKCksIG1fYmxvY2stPm5vdFRha2VuKCkpOwogICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9
IHRydWU7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgICAgIC8vIFR1cm4g
dGhpczogQnJhbmNoKEJpdFhvcihib29sLCAxKSwgdGhlbiwgZWxzZSkKICAgICAgICAgICAgIC8v
IEludG8gdGhpczogQnJhbmNoKGJvb2wsIGVsc2UsIHRoZW4pCi0gICAgICAgICAgICBpZiAoYnJh
bmNoLT5jaGlsZCgwKS0+b3Bjb2RlKCkgPT0gQml0WG9yCi0gICAgICAgICAgICAgICAgJiYgYnJh
bmNoLT5jaGlsZCgwKS0+Y2hpbGQoMSktPmlzSW50MzIoMSkKLSAgICAgICAgICAgICAgICAmJiBi
cmFuY2gtPmNoaWxkKDApLT5jaGlsZCgwKS0+cmV0dXJuc0Jvb2woKSkgewotICAgICAgICAgICAg
ICAgIGJyYW5jaC0+Y2hpbGQoMCkgPSBicmFuY2gtPmNoaWxkKDApLT5jaGlsZCgwKTsKLSAgICAg
ICAgICAgICAgICBzdGQ6OnN3YXAoYnJhbmNoLT50YWtlbigpLCBicmFuY2gtPm5vdFRha2VuKCkp
OworICAgICAgICAgICAgaWYgKG1fdmFsdWUtPmNoaWxkKDApLT5vcGNvZGUoKSA9PSBCaXRYb3IK
KyAgICAgICAgICAgICAgICAmJiBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMSktPmlzSW50MzIo
MSkKKyAgICAgICAgICAgICAgICAmJiBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMCktPnJldHVy
bnNCb29sKCkpIHsKKyAgICAgICAgICAgICAgICBtX3ZhbHVlLT5jaGlsZCgwKSA9IG1fdmFsdWUt
PmNoaWxkKDApLT5jaGlsZCgwKTsKKyAgICAgICAgICAgICAgICBzdGQ6OnN3YXAobV9ibG9jay0+
dGFrZW4oKSwgbV9ibG9jay0+bm90VGFrZW4oKSk7CiAgICAgICAgICAgICAgICAgbV9jaGFuZ2Vk
ID0gdHJ1ZTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgLy8gVHVybiB0aGlzOiBCcmFu
Y2goQml0QW5kKGJvb2wsIHh5YjEpLCB0aGVuLCBlbHNlKQogICAgICAgICAgICAgLy8gSW50byB0
aGlzOiBCcmFuY2goYm9vbCwgdGhlbiwgZWxzZSkKLSAgICAgICAgICAgIGlmIChicmFuY2gtPmNo
aWxkKDApLT5vcGNvZGUoKSA9PSBCaXRBbmQKLSAgICAgICAgICAgICAgICAmJiBicmFuY2gtPmNo
aWxkKDApLT5jaGlsZCgxKS0+aGFzSW50KCkKLSAgICAgICAgICAgICAgICAmJiBicmFuY2gtPmNo
aWxkKDApLT5jaGlsZCgxKS0+YXNJbnQoKSAmIDEKLSAgICAgICAgICAgICAgICAmJiBicmFuY2gt
PmNoaWxkKDApLT5jaGlsZCgwKS0+cmV0dXJuc0Jvb2woKSkgewotICAgICAgICAgICAgICAgIGJy
YW5jaC0+Y2hpbGQoMCkgPSBicmFuY2gtPmNoaWxkKDApLT5jaGlsZCgwKTsKKyAgICAgICAgICAg
IGlmIChtX3ZhbHVlLT5jaGlsZCgwKS0+b3Bjb2RlKCkgPT0gQml0QW5kCisgICAgICAgICAgICAg
ICAgJiYgbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDEpLT5oYXNJbnQoKQorICAgICAgICAgICAg
ICAgICYmIG1fdmFsdWUtPmNoaWxkKDApLT5jaGlsZCgxKS0+YXNJbnQoKSAmIDEKKyAgICAgICAg
ICAgICAgICAmJiBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMCktPnJldHVybnNCb29sKCkpIHsK
KyAgICAgICAgICAgICAgICBtX3ZhbHVlLT5jaGlsZCgwKSA9IG1fdmFsdWUtPmNoaWxkKDApLT5j
aGlsZCgwKTsKICAgICAgICAgICAgICAgICBtX2NoYW5nZWQgPSB0cnVlOwogICAgICAgICAgICAg
fQogCi0gICAgICAgICAgICBUcmlTdGF0ZSB0cmlTdGF0ZSA9IGJyYW5jaC0+Y2hpbGQoMCktPmFz
VHJpU3RhdGUoKTsKKyAgICAgICAgICAgIFRyaVN0YXRlIHRyaVN0YXRlID0gbV92YWx1ZS0+Y2hp
bGQoMCktPmFzVHJpU3RhdGUoKTsKIAogICAgICAgICAgICAgLy8gVHVybiB0aGlzOiBCcmFuY2go
MCwgdGhlbiwgZWxzZSkKICAgICAgICAgICAgIC8vIEludG8gdGhpczogSnVtcChlbHNlKQogICAg
ICAgICAgICAgaWYgKHRyaVN0YXRlID09IEZhbHNlVHJpU3RhdGUpIHsKLSAgICAgICAgICAgICAg
ICBicmFuY2gtPnRha2VuKCkuYmxvY2soKS0+cmVtb3ZlUHJlZGVjZXNzb3IobV9ibG9jayk7Ci0g
ICAgICAgICAgICAgICAgYnJhbmNoLT5jb252ZXJ0VG9KdW1wKGJyYW5jaC0+bm90VGFrZW4oKS5i
bG9jaygpKTsKKyAgICAgICAgICAgICAgICBtX2Jsb2NrLT50YWtlbigpLmJsb2NrKCktPnJlbW92
ZVByZWRlY2Vzc29yKG1fYmxvY2spOworICAgICAgICAgICAgICAgIG1fdmFsdWUtPnJlcGxhY2VX
aXRoSnVtcChtX2Jsb2NrLCBtX2Jsb2NrLT5ub3RUYWtlbigpKTsKICAgICAgICAgICAgICAgICBt
X2NoYW5nZWRDRkcgPSB0cnVlOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
fQpAQCAtMTgzMiw4ICsxODMwLDggQEAgcHJpdmF0ZToKICAgICAgICAgICAgIC8vIFR1cm4gdGhp
czogQnJhbmNoKG5vdCAwLCB0aGVuLCBlbHNlKQogICAgICAgICAgICAgLy8gSW50byB0aGlzOiBK
dW1wKHRoZW4pCiAgICAgICAgICAgICBpZiAodHJpU3RhdGUgPT0gVHJ1ZVRyaVN0YXRlKSB7Ci0g
ICAgICAgICAgICAgICAgYnJhbmNoLT5ub3RUYWtlbigpLmJsb2NrKCktPnJlbW92ZVByZWRlY2Vz
c29yKG1fYmxvY2spOwotICAgICAgICAgICAgICAgIGJyYW5jaC0+Y29udmVydFRvSnVtcChicmFu
Y2gtPnRha2VuKCkuYmxvY2soKSk7CisgICAgICAgICAgICAgICAgbV9ibG9jay0+bm90VGFrZW4o
KS5ibG9jaygpLT5yZW1vdmVQcmVkZWNlc3NvcihtX2Jsb2NrKTsKKyAgICAgICAgICAgICAgICBt
X3ZhbHVlLT5yZXBsYWNlV2l0aEp1bXAobV9ibG9jaywgbV9ibG9jay0+dGFrZW4oKSk7CiAgICAg
ICAgICAgICAgICAgbV9jaGFuZ2VkQ0ZHID0gdHJ1ZTsKICAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgIH0KQEAgLTE4NDIsMTIgKzE4NDAsMTIgQEAgcHJpdmF0ZToKICAgICAgICAg
ICAgIC8vIG9mIG1ha2VzIHNlbnNlIGhlcmUgYmVjYXVzZSBpdCdzIGNoZWFwLCBidXQgaGFja3Mg
bGlrZSB0aGlzIHNob3cgdGhhdCB3ZSdyZSBnb2luZwogICAgICAgICAgICAgLy8gdG8gbmVlZCBT
Q0NQLgogICAgICAgICAgICAgVmFsdWUqIGNoZWNrID0gbV9wdXJlQ1NFLmZpbmRNYXRjaCgKLSAg
ICAgICAgICAgICAgICBWYWx1ZUtleShDaGVjaywgVm9pZCwgYnJhbmNoLT5jaGlsZCgwKSksIG1f
YmxvY2ssICptX2RvbWluYXRvcnMpOworICAgICAgICAgICAgICAgIFZhbHVlS2V5KENoZWNrLCBW
b2lkLCBtX3ZhbHVlLT5jaGlsZCgwKSksIG1fYmxvY2ssICptX2RvbWluYXRvcnMpOwogICAgICAg
ICAgICAgaWYgKGNoZWNrKSB7CiAgICAgICAgICAgICAgICAgLy8gVGhlIENoZWNrIHdvdWxkIGhh
dmUgc2lkZS1leGl0ZWQgaWYgY2hpbGQoMCkgd2FzIG5vbi16ZXJvLiBTbywgaXQgbXVzdCBiZQog
ICAgICAgICAgICAgICAgIC8vIHplcm8gaGVyZS4KLSAgICAgICAgICAgICAgICBicmFuY2gtPnRh
a2VuKCkuYmxvY2soKS0+cmVtb3ZlUHJlZGVjZXNzb3IobV9ibG9jayk7Ci0gICAgICAgICAgICAg
ICAgYnJhbmNoLT5jb252ZXJ0VG9KdW1wKGJyYW5jaC0+bm90VGFrZW4oKS5ibG9jaygpKTsKKyAg
ICAgICAgICAgICAgICBtX2Jsb2NrLT50YWtlbigpLmJsb2NrKCktPnJlbW92ZVByZWRlY2Vzc29y
KG1fYmxvY2spOworICAgICAgICAgICAgICAgIG1fdmFsdWUtPnJlcGxhY2VXaXRoSnVtcChtX2Js
b2NrLCBtX2Jsb2NrLT5ub3RUYWtlbigpKTsKICAgICAgICAgICAgICAgICBtX2NoYW5nZWRDRkcg
PSB0cnVlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CkBAIC0xOTg2LDEzICsx
OTg0LDEyIEBAIHByaXZhdGU6CiAgICAgICAgIC8vIFJlbW92ZSB0aGUgdmFsdWVzIGZyb20gdGhl
IHByZWRlY2Vzc29yLgogICAgICAgICBwcmVkZWNlc3Nvci0+dmFsdWVzKCkucmVzaXplKHN0YXJ0
SW5kZXgpOwogICAgICAgICAKLSAgICAgICAgcHJlZGVjZXNzb3ItPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAotICAgICAgICAgICAgbV9wcm9jLCBCcmFuY2gsIHNvdXJjZS0+b3JpZ2luKCksIHBy
ZWRpY2F0ZSwKLSAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhjYXNlc1swXSksIEZyZXF1ZW50
ZWRCbG9jayhjYXNlc1sxXSkpOworICAgICAgICBwcmVkZWNlc3Nvci0+YXBwZW5kTmV3PFZhbHVl
PihtX3Byb2MsIEJyYW5jaCwgc291cmNlLT5vcmlnaW4oKSwgcHJlZGljYXRlKTsKKyAgICAgICAg
cHJlZGVjZXNzb3ItPnNldFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2NrKGNhc2VzWzBdKSwgRnJl
cXVlbnRlZEJsb2NrKGNhc2VzWzFdKSk7CiAKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IG51bUNhc2VzOyArK2kpIHsKLSAgICAgICAgICAgIGNhc2VzW2ldLT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKLSAgICAgICAgICAgICAgICBtX3Byb2MsIEp1bXAsIG1fdmFsdWUtPm9yaWdp
bigpLCBGcmVxdWVudGVkQmxvY2sobV9ibG9jaykpOworICAgICAgICAgICAgY2FzZXNbaV0tPmFw
cGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBKdW1wLCBtX3ZhbHVlLT5vcmlnaW4oKSk7CisgICAgICAg
ICAgICBjYXNlc1tpXS0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2sobV9ibG9jaykpOwog
ICAgICAgICB9CiAKICAgICAgICAgbV9jaGFuZ2VkID0gdHJ1ZTsKQEAgLTIyMjEsNyArMjIxOCw3
IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNoYW5naW5nICIsIHBvaW50ZXJEdW1wKGJsb2Nr
KSwgIidzIHRlcm1pbmFsIHRvIGEgSnVtcC5cbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2stPmxhc3QoKS0+YXM8Q29udHJvbFZhbHVl
PigpLT5jb252ZXJ0VG9KdW1wKGZpcnN0U3VjY2Vzc29yKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGJsb2NrLT5sYXN0KCktPnJlcGxhY2VXaXRoSnVtcChibG9jaywgRnJlcXVlbnRlZEJsb2Nr
KGZpcnN0U3VjY2Vzc29yKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBtX2NoYW5nZWRDRkcg
PSB0cnVlOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQpAQCAtMjIz
OSwxNiArMjIzNiwxOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICAvLyBSZW1vdmUg
dGhlIHRlcm1pbmFsLgogICAgICAgICAgICAgICAgICAgICBWYWx1ZSogdmFsdWUgPSBibG9jay0+
dmFsdWVzKCkudGFrZUxhc3QoKTsKICAgICAgICAgICAgICAgICAgICAgT3JpZ2luIGp1bXBPcmln
aW4gPSB2YWx1ZS0+b3JpZ2luKCk7Ci0gICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJU
KHZhbHVlLT5hczxDb250cm9sVmFsdWU+KCkpOworICAgICAgICAgICAgICAgICAgICBSRUxFQVNF
X0FTU0VSVCh2YWx1ZS0+ZWZmZWN0cygpLnRlcm1pbmFsKTsKICAgICAgICAgICAgICAgICAgICAg
bV9wcm9jLmRlbGV0ZVZhbHVlKHZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgICAgIC8vIEFwcGVuZCB0aGUgZnVsbCBjb250ZW50cyBvZiB0aGUgc3VjY2Vzc29y
IHRvIHRoZSBwcmVkZWNlc3Nvci4KICAgICAgICAgICAgICAgICAgICAgYmxvY2stPnZhbHVlcygp
LmFwcGVuZFZlY3RvcihzdWNjZXNzb3ItPnZhbHVlcygpKTsKKyAgICAgICAgICAgICAgICAgICAg
YmxvY2stPnN1Y2Nlc3NvcnMoKSA9IHN1Y2Nlc3Nvci0+c3VjY2Vzc29ycygpOwogICAgICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgdGhlIHN1
Y2Nlc3NvciBoYXMgbm90aGluZyBsZWZ0IGluIGl0LiBNYWtlIHN1cmUgdGhhdCB0aGUgYmxvY2sK
ICAgICAgICAgICAgICAgICAgICAgLy8gaGFzIGEgdGVybWluYWwgc28gdGhhdCBub2JvZHkgY2hv
a2VzIHdoZW4gdGhleSBsb29rIGF0IGl0LgogICAgICAgICAgICAgICAgICAgICBzdWNjZXNzb3It
PnZhbHVlcygpLnJlc2l6ZSgwKTsKLSAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc29yLT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihtX3Byb2MsIE9vcHMsIGp1bXBPcmlnaW4pOworICAgICAgICAg
ICAgICAgICAgICBzdWNjZXNzb3ItPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBPb3BzLCBqdW1w
T3JpZ2luKTsKKyAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc29yLT5jbGVhclN1Y2Nlc3NvcnMo
KTsKICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgIC8vIEVuc3VyZSB0
aGF0IHByZWRlY2Vzc29ycyBvZiBibG9jaydzIG5ldyBzdWNjZXNzb3JzIGtub3cgd2hhdCdzIHVw
LgogICAgICAgICAgICAgICAgICAgICBmb3IgKEJhc2ljQmxvY2sqIG5ld1N1Y2Nlc3NvciA6IGJs
b2NrLT5zdWNjZXNzb3JCbG9ja3MoKSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmNwcAkocmV2aXNpb24gMjAy
ODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3RhY2ttYXBHZW5lcmF0aW9uUGFy
YW1zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC01OSw2ICs1OSwyNyBAQCBSZWdpc3RlclNldCBTdGFja21h
cEdlbmVyYXRpb25QYXJhbXM6OnVuCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorVmVjdG9yPEJv
eDxDQ2FsbEhlbHBlcnM6OkxhYmVsPj4gU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zOjpzdWNjZXNz
b3JMYWJlbHMoKSBjb25zdAoreworICAgIFJFTEVBU0VfQVNTRVJUKG1fY29udGV4dC5pbmRleElu
QmxvY2sgPT0gbV9jb250ZXh0LmN1cnJlbnRCbG9jay0+c2l6ZSgpIC0gMSk7CisgICAgUkVMRUFT
RV9BU1NFUlQobV92YWx1ZS0+ZWZmZWN0cygpLnRlcm1pbmFsKTsKKyAgICAKKyAgICBWZWN0b3I8
Qm94PENDYWxsSGVscGVyczo6TGFiZWw+PiByZXN1bHQobV9jb250ZXh0LmN1cnJlbnRCbG9jay0+
bnVtU3VjY2Vzc29ycygpKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSBtX2NvbnRleHQuY3VycmVu
dEJsb2NrLT5udW1TdWNjZXNzb3JzKCk7IGktLTspCisgICAgICAgIHJlc3VsdFtpXSA9IG1fY29u
dGV4dC5ibG9ja0xhYmVsc1ttX2NvbnRleHQuY3VycmVudEJsb2NrLT5zdWNjZXNzb3JCbG9jayhp
KV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworYm9vbCBTdGFja21hcEdlbmVyYXRpb25QYXJh
bXM6OmZhbGxzVGhyb3VnaFRvU3VjY2Vzc29yKHVuc2lnbmVkIHN1Y2Nlc3NvckluZGV4KSBjb25z
dAoreworICAgIFJFTEVBU0VfQVNTRVJUKG1fY29udGV4dC5pbmRleEluQmxvY2sgPT0gbV9jb250
ZXh0LmN1cnJlbnRCbG9jay0+c2l6ZSgpIC0gMSk7CisgICAgUkVMRUFTRV9BU1NFUlQobV92YWx1
ZS0+ZWZmZWN0cygpLnRlcm1pbmFsKTsKKyAgICAKKyAgICBBaXI6OkJhc2ljQmxvY2sqIHN1Y2Nl
c3NvciA9IG1fY29udGV4dC5jdXJyZW50QmxvY2stPnN1Y2Nlc3NvckJsb2NrKHN1Y2Nlc3Nvcklu
ZGV4KTsKKyAgICBBaXI6OkJhc2ljQmxvY2sqIG5leHRCbG9jayA9IG1fY29udGV4dC5jb2RlLT5m
aW5kTmV4dEJsb2NrKG1fY29udGV4dC5jdXJyZW50QmxvY2spOworICAgIHJldHVybiBzdWNjZXNz
b3IgPT0gbmV4dEJsb2NrOworfQorCiBQcm9jZWR1cmUmIFN0YWNrbWFwR2VuZXJhdGlvblBhcmFt
czo6cHJvYygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fY29udGV4dC5jb2RlLT5wcm9jKCk7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcEdlbmVyYXRpb25QYXJhbXMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcEdlbmVy
YXRpb25QYXJhbXMuaAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcg
KzMwLDkgQEAKIAogI2luY2x1ZGUgIkFpckdlbmVyYXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAi
QjNWYWx1ZVJlcC5oIgorI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgogI2luY2x1ZGUgIlJlZ2lz
dGVyU2V0LmgiCisjaW5jbHVkZSA8d3RmL0JveC5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNw
YWNlIEIzIHsKIApAQCAtMzksNiArNDEsOCBAQCBjbGFzcyBQYXRjaHBvaW50U3BlY2lhbDsKIGNs
YXNzIFByb2NlZHVyZTsKIGNsYXNzIFN0YWNrbWFwVmFsdWU7CiAKKy8vIE5PVEU6IEl0J3MgcG9z
c2libGUgdG8gY2FwdHVyZSBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMgYnkgdmFsdWUsIGJ1dCBu
b3QgYWxsIG9mIHRoZSBtZXRob2RzIHdpbGwKKy8vIHdvcmsgaWYgeW91IGRvIHRoYXQuCiBjbGFz
cyBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMgewogcHVibGljOgogICAgIC8vIFRoaXMgaXMgdGhl
IHN0YWNrbWFwIHZhbHVlIHRoYXQgd2UncmUgZ2VuZXJhdGluZy4KQEAgLTgwLDYgKzg0LDEyIEBA
IHB1YmxpYzoKIAogICAgIEdQUlJlZyBncFNjcmF0Y2godW5zaWduZWQgaW5kZXgpIGNvbnN0IHsg
cmV0dXJuIG1fZ3BTY3JhdGNoW2luZGV4XTsgfQogICAgIEZQUlJlZyBmcFNjcmF0Y2godW5zaWdu
ZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fZnBTY3JhdGNoW2luZGV4XTsgfQorICAgIAorICAg
IC8vIFRoaXMgaXMgY29tcHV0ZWQgbGF6aWx5LCBzbyBpdCB3b24ndCB3b3JrIGlmIHlvdSBjYXB0
dXJlIFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyBieSB2YWx1ZS4KKyAgICBKU19FWFBPUlRfUFJJ
VkFURSBWZWN0b3I8Qm94PENDYWxsSGVscGVyczo6TGFiZWw+PiBzdWNjZXNzb3JMYWJlbHMoKSBj
b25zdDsKKyAgICAKKyAgICAvLyBUaGlzIGlzIGNvbXB1dGVkIGxhemlseSBhbHNvLgorICAgIGJv
b2wgZmFsbHNUaHJvdWdoVG9TdWNjZXNzb3IodW5zaWduZWQgc3VjY2Vzc29ySW5kZXgpIGNvbnN0
OwogCiAgICAgLy8gVGhpcyBpcyBwcm92aWRlZCBmb3IgY29udmVuaWVuY2U7IGl0IG1lYW5zIHRo
YXQgeW91IGRvbid0IGhhdmUgdG8gY2FwdHVyZSBpdCBpZiB5b3UgZG9uJ3Qgd2FudCB0by4KICAg
ICBQcm9jZWR1cmUmIHByb2MoKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1N3aXRjaFZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNTd2l0Y2hWYWx1ZS5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM1N3aXRjaFZhbHVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsMzAgKzM3
LDc2IEBAIFN3aXRjaFZhbHVlOjp+U3dpdGNoVmFsdWUoKQogewogfQogCi1Td2l0Y2hDYXNlIFN3
aXRjaFZhbHVlOjpyZW1vdmVDYXNlKHVuc2lnbmVkIGluZGV4KQorU3dpdGNoQ2FzZSBTd2l0Y2hW
YWx1ZTo6cmVtb3ZlQ2FzZShCYXNpY0Jsb2NrKiBibG9jaywgdW5zaWduZWQgaW5kZXgpCiB7Ci0g
ICAgRnJlcXVlbnRlZEJsb2NrIHJlc3VsdEJsb2NrID0gbV9zdWNjZXNzb3JzW2luZGV4XTsKKyAg
ICBGcmVxdWVudGVkQmxvY2sgcmVzdWx0QmxvY2sgPSBibG9jay0+c3VjY2Vzc29yKGluZGV4KTsK
ICAgICBpbnQ2NF90IHJlc3VsdFZhbHVlID0gbV92YWx1ZXNbaW5kZXhdOwotICAgIG1fc3VjY2Vz
c29yc1tpbmRleF0gPSBtX3N1Y2Nlc3NvcnMubGFzdCgpOwotICAgIG1fc3VjY2Vzc29ycy5yZW1v
dmVMYXN0KCk7CisgICAgYmxvY2stPnN1Y2Nlc3NvcihpbmRleCkgPSBibG9jay0+c3VjY2Vzc29y
cygpLmxhc3QoKTsKKyAgICBibG9jay0+c3VjY2Vzc29ycygpLnJlbW92ZUxhc3QoKTsKICAgICBt
X3ZhbHVlc1tpbmRleF0gPSBtX3ZhbHVlcy5sYXN0KCk7CiAgICAgbV92YWx1ZXMucmVtb3ZlTGFz
dCgpOwogICAgIHJldHVybiBTd2l0Y2hDYXNlKHJlc3VsdFZhbHVlLCByZXN1bHRCbG9jayk7CiB9
CiAKLXZvaWQgU3dpdGNoVmFsdWU6OmFwcGVuZENhc2UoY29uc3QgU3dpdGNoQ2FzZSYgc3dpdGNo
Q2FzZSkKK2Jvb2wgU3dpdGNoVmFsdWU6Omhhc0ZhbGxUaHJvdWdoKGNvbnN0IEJhc2ljQmxvY2sq
IGJsb2NrKSBjb25zdAoreworICAgIHVuc2lnbmVkIG51bVN1Y2Nlc3NvcnMgPSBibG9jay0+bnVt
U3VjY2Vzc29ycygpOworICAgIHVuc2lnbmVkIG51bVZhbHVlcyA9IG1fdmFsdWVzLnNpemUoKTsK
KyAgICBSRUxFQVNFX0FTU0VSVChudW1WYWx1ZXMgPT0gbnVtU3VjY2Vzc29ycyB8fCBudW1WYWx1
ZXMgKyAxID09IG51bVN1Y2Nlc3NvcnMpOworICAgIAorICAgIHJldHVybiBudW1WYWx1ZXMgKyAx
ID09IG51bVN1Y2Nlc3NvcnM7Cit9CisKK2Jvb2wgU3dpdGNoVmFsdWU6Omhhc0ZhbGxUaHJvdWdo
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gaGFzRmFsbFRocm91Z2gob3duZXIpOworfQorCit2b2lk
IFN3aXRjaFZhbHVlOjpzZXRGYWxsVGhyb3VnaChCYXNpY0Jsb2NrKiBibG9jaywgY29uc3QgRnJl
cXVlbnRlZEJsb2NrJiB0YXJnZXQpCit7CisgICAgaWYgKCFoYXNGYWxsVGhyb3VnaCgpKQorICAg
ICAgICBibG9jay0+c3VjY2Vzc29ycygpLmFwcGVuZCh0YXJnZXQpOworICAgIGVsc2UKKyAgICAg
ICAgYmxvY2stPnN1Y2Nlc3NvcnMoKS5sYXN0KCkgPSB0YXJnZXQ7CisgICAgQVNTRVJUKGhhc0Zh
bGxUaHJvdWdoKGJsb2NrKSk7Cit9CisKK3ZvaWQgU3dpdGNoVmFsdWU6OmFwcGVuZENhc2UoQmFz
aWNCbG9jayogYmxvY2ssIGNvbnN0IFN3aXRjaENhc2UmIHN3aXRjaENhc2UpCiB7Ci0gICAgbV9z
dWNjZXNzb3JzLmFwcGVuZChtX3N1Y2Nlc3NvcnMubGFzdCgpKTsKLSAgICBtX3N1Y2Nlc3NvcnNb
bV9zdWNjZXNzb3JzLnNpemUoKSAtIDJdID0gc3dpdGNoQ2FzZS50YXJnZXQoKTsKKyAgICBpZiAo
IWhhc0ZhbGxUaHJvdWdoKCkpCisgICAgICAgIGJsb2NrLT5zdWNjZXNzb3JzKCkuYXBwZW5kKHN3
aXRjaENhc2UudGFyZ2V0KCkpOworICAgIGVsc2UgeworICAgICAgICBibG9jay0+c3VjY2Vzc29y
cygpLmFwcGVuZChibG9jay0+c3VjY2Vzc29ycygpLmxhc3QoKSk7CisgICAgICAgIGJsb2NrLT5z
dWNjZXNzb3IoYmxvY2stPm51bVN1Y2Nlc3NvcnMoKSAtIDIpID0gc3dpdGNoQ2FzZS50YXJnZXQo
KTsKKyAgICB9CiAgICAgbV92YWx1ZXMuYXBwZW5kKHN3aXRjaENhc2UuY2FzZVZhbHVlKCkpOwog
fQogCit2b2lkIFN3aXRjaFZhbHVlOjpzZXRGYWxsVGhyb3VnaChjb25zdCBGcmVxdWVudGVkQmxv
Y2smIHRhcmdldCkKK3sKKyAgICBzZXRGYWxsVGhyb3VnaChvd25lciwgdGFyZ2V0KTsKK30KKwor
dm9pZCBTd2l0Y2hWYWx1ZTo6YXBwZW5kQ2FzZShjb25zdCBTd2l0Y2hDYXNlJiBzd2l0Y2hDYXNl
KQoreworICAgIGFwcGVuZENhc2Uob3duZXIsIHN3aXRjaENhc2UpOworfQorCit2b2lkIFN3aXRj
aFZhbHVlOjpkdW1wU3VjY2Vzc29ycyhjb25zdCBCYXNpY0Jsb2NrKiBibG9jaywgUHJpbnRTdHJl
YW0mIG91dCkgY29uc3QKK3sKKyAgICAvLyBXZSBtdXN0IG5vdCBjcmFzaCBkdWUgdG8gYSBudW1i
ZXItb2Ytc3VjY2Vzc29ycyBtaXNtYXRjaCEgU29tZW9uZSBkZWJ1Z2dpbmcgYQorICAgIC8vIG51
bWJlci1vZi1zdWNjZXNzb3JzIGJ1ZyB3aWxsIHdhbnQgdG8gZHVtcCBJUiEKKyAgICBpZiAobnVt
Q2FzZVZhbHVlcygpICsgMSAhPSBibG9jay0+bnVtU3VjY2Vzc29ycygpKSB7CisgICAgICAgIFZh
bHVlOjpkdW1wU3VjY2Vzc29ycyhibG9jaywgb3V0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICAKKyAgICBvdXQucHJpbnQoY2FzZXMoYmxvY2spKTsKK30KKwogdm9pZCBTd2l0Y2hWYWx1
ZTo6ZHVtcE1ldGEoQ29tbWFQcmludGVyJiBjb21tYSwgUHJpbnRTdHJlYW0mIG91dCkgY29uc3QK
IHsKLSAgICAvLyBUaGlzIGRlc3RydWN0aXZlbHkgb3ZlcnJpZGVzIENvbnRyb2xWYWx1ZSdzIGR1
bXBNZXRhKCkuCi0gICAgZm9yIChTd2l0Y2hDYXNlIHN3aXRjaENhc2UgOiAqdGhpcykKLSAgICAg
ICAgb3V0LnByaW50KGNvbW1hLCBzd2l0Y2hDYXNlKTsKLSAgICBvdXQucHJpbnQoY29tbWEsICJm
YWxsVGhyb3VnaCA9ICIsIGZhbGxUaHJvdWdoKCkpOworICAgIG91dC5wcmludChjb21tYSwgImNh
c2VzID0gWyIsIGxpc3REdW1wKG1fdmFsdWVzKSwgIl0iKTsKIH0KIAogVmFsdWUqIFN3aXRjaFZh
bHVlOjpjbG9uZUltcGwoKSBjb25zdApAQCAtNjgsMTAgKzExNCw5IEBAIFZhbHVlKiBTd2l0Y2hW
YWx1ZTo6Y2xvbmVJbXBsKCkgY29uc3QKICAgICByZXR1cm4gbmV3IFN3aXRjaFZhbHVlKCp0aGlz
KTsKIH0KIAotU3dpdGNoVmFsdWU6OlN3aXRjaFZhbHVlKE9yaWdpbiBvcmlnaW4sIFZhbHVlKiBj
aGlsZCwgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBmYWxsVGhyb3VnaCkKLSAgICA6IENvbnRyb2xW
YWx1ZShTd2l0Y2gsIFZvaWQsIG9yaWdpbiwgY2hpbGQpCitTd2l0Y2hWYWx1ZTo6U3dpdGNoVmFs
dWUoT3JpZ2luIG9yaWdpbiwgVmFsdWUqIGNoaWxkKQorICAgIDogVmFsdWUoQ2hlY2tlZE9wY29k
ZSwgU3dpdGNoLCBWb2lkLCBvcmlnaW4sIGNoaWxkKQogewotICAgIG1fc3VjY2Vzc29ycy5hcHBl
bmQoZmFsbFRocm91Z2gpOwogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N3aXRjaFZhbHVlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3dpdGNoVmFsdWUuaAkocmV2aXNpb24gMjAyODA5KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3dpdGNoVmFsdWUuaAkod29ya2luZyBjb3B5
KQpAQCAtMjgsMTIgKzI4LDEzIEBACiAKICNpZiBFTkFCTEUoQjNfSklUKQogCi0jaW5jbHVkZSAi
QjNDb250cm9sVmFsdWUuaCIKKyNpbmNsdWRlICJCM0Nhc2VDb2xsZWN0aW9uLmgiCiAjaW5jbHVk
ZSAiQjNTd2l0Y2hDYXNlLmgiCisjaW5jbHVkZSAiQjNWYWx1ZS5oIgogCiBuYW1lc3BhY2UgSlND
IHsgbmFtZXNwYWNlIEIzIHsKIAotY2xhc3MgU3dpdGNoVmFsdWUgOiBwdWJsaWMgQ29udHJvbFZh
bHVlIHsKK2NsYXNzIFN3aXRjaFZhbHVlIDogcHVibGljIFZhbHVlIHsKIHB1YmxpYzoKICAgICBz
dGF0aWMgYm9vbCBhY2NlcHRzKE9wY29kZSBvcGNvZGUpIHsgcmV0dXJuIG9wY29kZSA9PSBTd2l0
Y2g7IH0KIApAQCAtNDcsNzIgKzQ4LDI2IEBAIHB1YmxpYzoKICAgICAKICAgICBjb25zdCBWZWN0
b3I8aW50NjRfdD4mIGNhc2VWYWx1ZXMoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlczsgfQogCi0g
ICAgRnJlcXVlbnRlZEJsb2NrIGZhbGxUaHJvdWdoKCkgY29uc3QgeyByZXR1cm4gc3VjY2Vzc29y
cygpLmxhc3QoKTsgfQotICAgIEZyZXF1ZW50ZWRCbG9jayYgZmFsbFRocm91Z2goKSB7IHJldHVy
biBzdWNjZXNzb3JzKCkubGFzdCgpOyB9Ci0KLSAgICB1bnNpZ25lZCBzaXplKCkgY29uc3QgeyBy
ZXR1cm4gbnVtQ2FzZVZhbHVlcygpOyB9Ci0gICAgU3dpdGNoQ2FzZSBhdCh1bnNpZ25lZCBpbmRl
eCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBTd2l0Y2hDYXNlKGNhc2VWYWx1ZShpbmRl
eCksIHN1Y2Nlc3NvcihpbmRleCkpOwotICAgIH0KLSAgICBTd2l0Y2hDYXNlIG9wZXJhdG9yW10o
dW5zaWduZWQgaW5kZXgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gYXQoaW5kZXgpOwot
ICAgIH0KLQotICAgIGNsYXNzIGl0ZXJhdG9yIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIGl0ZXJh
dG9yKCkKLSAgICAgICAgICAgIDogbV9zd2l0Y2gobnVsbHB0cikKLSAgICAgICAgICAgICwgbV9p
bmRleCgwKQotICAgICAgICB7Ci0gICAgICAgIH0KLQotICAgICAgICBpdGVyYXRvcihjb25zdCBT
d2l0Y2hWYWx1ZSYgc3dpdGNoVmFsdWUsIHVuc2lnbmVkIGluZGV4KQotICAgICAgICAgICAgOiBt
X3N3aXRjaCgmc3dpdGNoVmFsdWUpCi0gICAgICAgICAgICAsIG1faW5kZXgoaW5kZXgpCi0gICAg
ICAgIHsKLSAgICAgICAgfQotCi0gICAgICAgIFN3aXRjaENhc2Ugb3BlcmF0b3IqKCkKLSAgICAg
ICAgewotICAgICAgICAgICAgcmV0dXJuIG1fc3dpdGNoLT5hdChtX2luZGV4KTsKLSAgICAgICAg
fQotCi0gICAgICAgIGl0ZXJhdG9yJiBvcGVyYXRvcisrKCkKLSAgICAgICAgewotICAgICAgICAg
ICAgbV9pbmRleCsrOwotICAgICAgICAgICAgcmV0dXJuICp0aGlzOwotICAgICAgICB9Ci0KLSAg
ICAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IGl0ZXJhdG9yJiBvdGhlcikgY29uc3QKLSAgICAg
ICAgewotICAgICAgICAgICAgQVNTRVJUKG1fc3dpdGNoID09IG90aGVyLm1fc3dpdGNoKTsKLSAg
ICAgICAgICAgIHJldHVybiBtX2luZGV4ID09IG90aGVyLm1faW5kZXg7Ci0gICAgICAgIH0KLQot
ICAgICAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgaXRlcmF0b3ImIG90aGVyKSBjb25zdAotICAg
ICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7Ci0gICAgICAgIH0K
LQotICAgIHByaXZhdGU6Ci0gICAgICAgIGNvbnN0IFN3aXRjaFZhbHVlKiBtX3N3aXRjaDsKLSAg
ICAgICAgdW5zaWduZWQgbV9pbmRleDsKLSAgICB9OwotCi0gICAgdHlwZWRlZiBpdGVyYXRvciBj
b25zdF9pdGVyYXRvcjsKLQotICAgIGl0ZXJhdG9yIGJlZ2luKCkgY29uc3QgeyByZXR1cm4gaXRl
cmF0b3IoKnRoaXMsIDApOyB9Ci0gICAgaXRlcmF0b3IgZW5kKCkgY29uc3QgeyByZXR1cm4gaXRl
cmF0b3IoKnRoaXMsIHNpemUoKSk7IH0KKyAgICBDYXNlQ29sbGVjdGlvbiBjYXNlcyhjb25zdCBC
YXNpY0Jsb2NrKiBvd25lcikgY29uc3QgeyByZXR1cm4gQ2FzZUNvbGxlY3Rpb24odGhpcywgb3du
ZXIpOyB9CisgICAgQ2FzZUNvbGxlY3Rpb24gY2FzZXMoKSBjb25zdCB7IHJldHVybiBjYXNlcyhv
d25lcik7IH0KIAogICAgIC8vIFRoaXMgcmVtb3ZlcyB0aGUgY2FzZSBhbmQgcmVvcmRlcnMgdGhp
bmdzIGEgYml0LiBJZiB5b3UncmUgaXRlcmF0aW5nIHRoZSBjYXNlcyBmcm9tIDAgdG8gTiwKICAg
ICAvLyB0aGVuIHlvdSBjYW4ga2VlcCBpdGVyYXRpbmcgYWZ0ZXIgdGhpcyBzbyBsb25nIGFzIHlv
dSByZXZpc2l0IHRoaXMgc2FtZSBpbmRleCAod2hpY2ggd2lsbCBub3cKICAgICAvLyBjb250YWlu
IHNvbWUgb3RoZXIgY2FzZSB2YWx1ZSkuIFRoaXMgcmVtb3ZlcyB0aGUgY2FzZSB0aGF0IHdhcyBy
ZW1vdmVkLgotICAgIFN3aXRjaENhc2UgcmVtb3ZlQ2FzZSh1bnNpZ25lZCBpbmRleCk7CisgICAg
U3dpdGNoQ2FzZSByZW1vdmVDYXNlKEJhc2ljQmxvY2sqLCB1bnNpZ25lZCBpbmRleCk7CiAKKyAg
ICBib29sIGhhc0ZhbGxUaHJvdWdoKGNvbnN0IEJhc2ljQmxvY2sqKSBjb25zdDsKKyAgICBib29s
IGhhc0ZhbGxUaHJvdWdoKCkgY29uc3Q7CisKKyAgICAvLyBUaGVzZSB0d28gZnVuY3Rpb25zIGNh
biBiZSBjYWxsZWQgaW4gYW55IG9yZGVyLgorICAgIHZvaWQgc2V0RmFsbFRocm91Z2goQmFzaWNC
bG9jayosIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYpOworICAgIHZvaWQgYXBwZW5kQ2FzZShCYXNp
Y0Jsb2NrKiwgY29uc3QgU3dpdGNoQ2FzZSYpOworICAgIAorICAgIEpTX0VYUE9SVF9QUklWQVRF
IHZvaWQgc2V0RmFsbFRocm91Z2goY29uc3QgRnJlcXVlbnRlZEJsb2NrJik7CiAgICAgSlNfRVhQ
T1JUX1BSSVZBVEUgdm9pZCBhcHBlbmRDYXNlKGNvbnN0IFN3aXRjaENhc2UmKTsKIAorICAgIHZv
aWQgZHVtcFN1Y2Nlc3NvcnMoY29uc3QgQmFzaWNCbG9jayosIFByaW50U3RyZWFtJikgY29uc3Qg
b3ZlcnJpZGU7CisKIHByb3RlY3RlZDoKICAgICB2b2lkIGR1bXBNZXRhKENvbW1hUHJpbnRlciYs
IFByaW50U3RyZWFtJikgY29uc3Qgb3ZlcnJpZGU7CiAKQEAgLTEyMSw3ICs3Niw3IEBAIHByb3Rl
Y3RlZDoKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFByb2NlZHVyZTsKIAotICAgIEpTX0VY
UE9SVF9QUklWQVRFIFN3aXRjaFZhbHVlKE9yaWdpbiwgVmFsdWUqIGNoaWxkLCBjb25zdCBGcmVx
dWVudGVkQmxvY2smIGZhbGxUaHJvdWdoKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBTd2l0Y2hW
YWx1ZShPcmlnaW4sIFZhbHVlKiBjaGlsZCk7CiAKICAgICBWZWN0b3I8aW50NjRfdD4gbV92YWx1
ZXM7CiB9OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsaWRhdGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbGlkYXRlLmNwcAkocmV2
aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsaWRhdGUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiQjNQcm9jZWR1cmUu
aCIKICNpbmNsdWRlICJCM1Nsb3RCYXNlVmFsdWUuaCIKICNpbmNsdWRlICJCM1N0YWNrU2xvdC5o
IgorI2luY2x1ZGUgIkIzU3dpdGNoVmFsdWUuaCIKICNpbmNsdWRlICJCM1Vwc2lsb25WYWx1ZS5o
IgogI2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNWYXJpYWJsZS5oIgpA
QCAtMTA3LDggKzEwOCw4IEBAIHB1YmxpYzoKICAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBibG9j
ayA6IGJsb2NrcykgewogICAgICAgICAgICAgVkFMSURBVEUoYmxvY2stPnNpemUoKSA+PSAxLCAo
IkF0ICIsICpibG9jaykpOwogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGJs
b2NrLT5zaXplKCkgLSAxOyArK2kpCi0gICAgICAgICAgICAgICAgVkFMSURBVEUoIUNvbnRyb2xW
YWx1ZTo6YWNjZXB0cyhibG9jay0+YXQoaSktPm9wY29kZSgpKSwgKCJBdCAiLCAqYmxvY2stPmF0
KGkpKSk7Ci0gICAgICAgICAgICBWQUxJREFURShDb250cm9sVmFsdWU6OmFjY2VwdHMoYmxvY2st
Pmxhc3QoKS0+b3Bjb2RlKCkpLCAoIkF0ICIsICpibG9jay0+bGFzdCgpKSk7CisgICAgICAgICAg
ICAgICAgVkFMSURBVEUoIWJsb2NrLT5hdChpKS0+ZWZmZWN0cygpLnRlcm1pbmFsLCAoIkF0ICIs
ICpibG9jay0+YXQoaSkpKTsKKyAgICAgICAgICAgIFZBTElEQVRFKGJsb2NrLT5sYXN0KCktPmVm
ZmVjdHMoKS50ZXJtaW5hbCwgKCJBdCAiLCAqYmxvY2stPmxhc3QoKSkpOwogICAgICAgICAgICAg
CiAgICAgICAgICAgICBmb3IgKEJhc2ljQmxvY2sqIHN1Y2Nlc3NvciA6IGJsb2NrLT5zdWNjZXNz
b3JCbG9ja3MoKSkgewogICAgICAgICAgICAgICAgIGFsbFByZWRlY2Vzc29ycy5hZGQoc3VjY2Vz
c29yLCBIYXNoU2V0PEJhc2ljQmxvY2sqPigpKS5pdGVyYXRvci0+dmFsdWUuYWRkKGJsb2NrKTsK
QEAgLTEyOSw4ICsxMzAsNiBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgVkFMSURBVEUoY2hp
bGQtPnR5cGUoKSAhPSBWb2lkLCAoIkF0ICIsICp2YWx1ZSwgIi0+IiwgKmNoaWxkKSk7CiAgICAg
ICAgICAgICBzd2l0Y2ggKHZhbHVlLT5vcGNvZGUoKSkgewogICAgICAgICAgICAgY2FzZSBOb3A6
Ci0gICAgICAgICAgICBjYXNlIEp1bXA6Ci0gICAgICAgICAgICBjYXNlIE9vcHM6CiAgICAgICAg
ICAgICAgICAgVkFMSURBVEUoIXZhbHVlLT5udW1DaGlsZHJlbigpLCAoIkF0ICIsICp2YWx1ZSkp
OwogICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgPT0gVm9pZCwgKCJBdCAi
LCAqdmFsdWUpKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTM3NywxNSArMzc2LDM2IEBA
IHB1YmxpYzoKICAgICAgICAgICAgICAgICBWQUxJREFURSghdmFsdWUtPm51bUNoaWxkcmVuKCks
ICgiQXQgIiwgKnZhbHVlKSk7CiAgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPnR5cGUo
KSAhPSBWb2lkLCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSBKdW1wOgorICAgICAgICAgICAgICAgIFZBTElEQVRFKCF2YWx1ZS0+bnVt
Q2hpbGRyZW4oKSwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFURSh2
YWx1ZS0+dHlwZSgpID09IFZvaWQsICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAgICAg
VkFMSURBVEUodmFsdWVPd25lci5nZXQodmFsdWUpLT5udW1TdWNjZXNzb3JzKCkgPT0gMSwgKCJB
dCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
T29wczoKKyAgICAgICAgICAgICAgICBWQUxJREFURSghdmFsdWUtPm51bUNoaWxkcmVuKCksICgi
QXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPnR5cGUoKSA9
PSBWb2lkLCAoIkF0ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIFZBTElEQVRFKCF2YWx1
ZU93bmVyLmdldCh2YWx1ZSktPm51bVN1Y2Nlc3NvcnMoKSwgKCJBdCAiLCAqdmFsdWUpKTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgUmV0dXJuOgogICAgICAgICAg
ICAgICAgIFZBTElEQVRFKHZhbHVlLT5udW1DaGlsZHJlbigpID09IDEsICgiQXQgIiwgKnZhbHVl
KSk7CiAgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPnR5cGUoKSA9PSBWb2lkLCAoIkF0
ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIFZBTElEQVRFKCF2YWx1ZU93bmVyLmdldCh2
YWx1ZSktPm51bVN1Y2Nlc3NvcnMoKSwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgIGNhc2UgQnJhbmNoOgorICAgICAgICAgICAgICAgIFZBTElE
QVRFKHZhbHVlLT5udW1DaGlsZHJlbigpID09IDEsICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAg
ICAgICAgICAgVkFMSURBVEUoaXNJbnQodmFsdWUtPmNoaWxkKDApLT50eXBlKCkpLCAoIkF0ICIs
ICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgPT0gVm9p
ZCwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZU93bmVy
LmdldCh2YWx1ZSktPm51bVN1Y2Nlc3NvcnMoKSA9PSAyLCAoIkF0ICIsICp2YWx1ZSkpOworICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBTd2l0Y2g6CiAgICAgICAgICAg
ICAgICAgVkFMSURBVEUodmFsdWUtPm51bUNoaWxkcmVuKCkgPT0gMSwgKCJBdCAiLCAqdmFsdWUp
KTsKICAgICAgICAgICAgICAgICBWQUxJREFURShpc0ludCh2YWx1ZS0+Y2hpbGQoMCktPnR5cGUo
KSksICgiQXQgIiwgKnZhbHVlKSk7CiAgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPnR5
cGUoKSA9PSBWb2lkLCAoIkF0ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIFZBTElEQVRF
KHZhbHVlLT5hczxTd2l0Y2hWYWx1ZT4oKS0+aGFzRmFsbFRocm91Z2godmFsdWVPd25lci5nZXQo
dmFsdWUpKSwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICAvLyBUaGlzIHZhbGlk
YXRlcyB0aGUgc2FtZSB0aGluZyBhcyBoYXNGYWxsVGhyb3VnaCwgYnV0IG1vcmUgZXhwbGljaXRs
eS4gV2Ugd2FudCB0bworICAgICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGF0IGlmIGFueW9u
ZSB0cmllcyB0byBjaGFuZ2UgdGhlIGRlZmluaXRpb24gb2YgaGFzRmFsbFRocm91Z2gsIHRoZXkK
KyAgICAgICAgICAgICAgICAvLyB3aWxsIGZlZWwgc29tZSBwYWluIGhlcmUsIHNpbmNlIHRoaXMg
aXMgZnVuZGFtZW50YWwuCisgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWVPd25lci5nZXQo
dmFsdWUpLT5udW1TdWNjZXNzb3JzKCkgPT0gdmFsdWUtPmFzPFN3aXRjaFZhbHVlPigpLT5udW1D
YXNlVmFsdWVzKCkgKyAxLCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuY3Bw
CShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDkgKzI5LDkgQEAKICNpZiBFTkFCTEUoQjNfSklUKQog
CiAjaW5jbHVkZSAiQjNBcmd1bWVudFJlZ1ZhbHVlLmgiCisjaW5jbHVkZSAiQjNCYXNpY0Jsb2Nr
SW5saW5lcy5oIgogI2luY2x1ZGUgIkIzQm90dG9tUHJvdmlkZXIuaCIKICNpbmNsdWRlICJCM0ND
YWxsVmFsdWUuaCIKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzTWVt
b3J5VmFsdWUuaCIKICNpbmNsdWRlICJCM09yaWdpbkR1bXAuaCIKICNpbmNsdWRlICJCM1Byb2Nl
ZHVyZUlubGluZXMuaCIKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJCM1ZhbHVlS2V5SW5s
aW5lcy5oIgogI2luY2x1ZGUgIkIzVmFyaWFibGVWYWx1ZS5oIgogI2luY2x1ZGUgPHd0Zi9Db21t
YVByaW50ZXIuaD4KKyNpbmNsdWRlIDx3dGYvTGlzdER1bXAuaD4KICNpbmNsdWRlIDx3dGYvU3Ry
aW5nUHJpbnRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CkBAIC0x
MjUsNiArMTI2LDUwIEBAIHZvaWQgVmFsdWU6OnJlcGxhY2VXaXRoUGhpKCkKICAgICB0aGlzLT5t
X2luZGV4ID0gaW5kZXg7CiB9CiAKK3ZvaWQgVmFsdWU6OnJlcGxhY2VXaXRoSnVtcChCYXNpY0Js
b2NrKiBvd25lciwgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YXJnZXQpCit7CisgICAgUkVMRUFT
RV9BU1NFUlQob3duZXItPmxhc3QoKSA9PSB0aGlzKTsKKyAgICAKKyAgICB1bnNpZ25lZCBpbmRl
eCA9IG1faW5kZXg7CisgICAgT3JpZ2luIG9yaWdpbiA9IG1fb3JpZ2luOworICAgIAorICAgIHRo
aXMtPn5WYWx1ZSgpOworICAgIAorICAgIG5ldyAodGhpcykgVmFsdWUoSnVtcCwgVm9pZCwgb3Jp
Z2luKTsKKyAgICAKKyAgICB0aGlzLT5vd25lciA9IG93bmVyOworICAgIHRoaXMtPm1faW5kZXgg
PSBpbmRleDsKKyAgICAKKyAgICBvd25lci0+c2V0U3VjY2Vzc29ycyh0YXJnZXQpOworfQorCit2
b2lkIFZhbHVlOjpyZXBsYWNlV2l0aE9vcHMoQmFzaWNCbG9jayogb3duZXIpCit7CisgICAgUkVM
RUFTRV9BU1NFUlQob3duZXItPmxhc3QoKSA9PSB0aGlzKTsKKyAgICAKKyAgICB1bnNpZ25lZCBp
bmRleCA9IG1faW5kZXg7CisgICAgT3JpZ2luIG9yaWdpbiA9IG1fb3JpZ2luOworICAgIAorICAg
IHRoaXMtPn5WYWx1ZSgpOworICAgIAorICAgIG5ldyAodGhpcykgVmFsdWUoT29wcywgVm9pZCwg
b3JpZ2luKTsKKyAgICAKKyAgICB0aGlzLT5vd25lciA9IG93bmVyOworICAgIHRoaXMtPm1faW5k
ZXggPSBpbmRleDsKKyAgICAKKyAgICBvd25lci0+Y2xlYXJTdWNjZXNzb3JzKCk7Cit9CisKK3Zv
aWQgVmFsdWU6OnJlcGxhY2VXaXRoSnVtcChjb25zdCBGcmVxdWVudGVkQmxvY2smIHRhcmdldCkK
K3sKKyAgICByZXBsYWNlV2l0aEp1bXAob3duZXIsIHRhcmdldCk7Cit9CisKK3ZvaWQgVmFsdWU6
OnJlcGxhY2VXaXRoT29wcygpCit7CisgICAgcmVwbGFjZVdpdGhPb3BzKG93bmVyKTsKK30KKwog
dm9pZCBWYWx1ZTo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogewogICAgIGJvb2wgaXND
b25zdGFudCA9IGZhbHNlOwpAQCAtMTg5LDYgKzIzNCwxOSBAQCB2b2lkIFZhbHVlOjpkZWVwRHVt
cChjb25zdCBQcm9jZWR1cmUqIHByCiAgICAgb3V0LnByaW50KCIpIik7CiB9CiAKK3ZvaWQgVmFs
dWU6OmR1bXBTdWNjZXNzb3JzKGNvbnN0IEJhc2ljQmxvY2sqIGJsb2NrLCBQcmludFN0cmVhbSYg
b3V0KSBjb25zdAoreworICAgIC8vIE5vdGUgdGhhdCB0aGlzIG11c3Qgbm90IGNyYXNoIGlmIHdl
IGhhdmUgdGhlIHdyb25nIG51bWJlciBvZiBzdWNjZXNzb3JzLCBzaW5jZSBzb21lb25lCisgICAg
Ly8gZGVidWdnaW5nIGEgbnVtYmVyLW9mLXN1Y2Nlc3NvcnMgYnVnIHdpbGwgcHJvYmFibHkgd2Fu
dCB0byBkdW1wIElSIQorICAgIAorICAgIGlmIChvcGNvZGUoKSA9PSBCcmFuY2ggJiYgYmxvY2st
Pm51bVN1Y2Nlc3NvcnMoKSA9PSAyKSB7CisgICAgICAgIG91dC5wcmludCgiVGhlbjoiLCBibG9j
ay0+dGFrZW4oKSwgIiwgRWxzZToiLCBibG9jay0+bm90VGFrZW4oKSk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisgICAgCisgICAgb3V0LnByaW50KGxpc3REdW1wKGJsb2NrLT5zdWNjZXNzb3Jz
KCkpKTsKK30KKwogVmFsdWUqIFZhbHVlOjpuZWdDb25zdGFudChQcm9jZWR1cmUmKSBjb25zdAog
ewogICAgIHJldHVybiBudWxscHRyOwpAQCAtNzEzLDYgKzc3MSwxMCBAQCBUeXBlIFZhbHVlOjp0
eXBlRm9yKE9wY29kZSBvcGNvZGUsIFZhbHVlCiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIFZv
aWQ7CiAgICAgY2FzZSBOb3A6CisgICAgY2FzZSBKdW1wOgorICAgIGNhc2UgQnJhbmNoOgorICAg
IGNhc2UgUmV0dXJuOgorICAgIGNhc2UgT29wczoKICAgICAgICAgcmV0dXJuIFZvaWQ7CiAgICAg
Y2FzZSBTZWxlY3Q6CiAgICAgICAgIEFTU0VSVChzZWNvbmRDaGlsZCk7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM1ZhbHVlLmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM1ZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKIAog
I2luY2x1ZGUgIkFpckFyZy5oIgogI2luY2x1ZGUgIkIzRWZmZWN0cy5oIgorI2luY2x1ZGUgIkIz
RnJlcXVlbnRlZEJsb2NrLmgiCiAjaW5jbHVkZSAiQjNPcGNvZGUuaCIKICNpbmNsdWRlICJCM09y
aWdpbi5oIgogI2luY2x1ZGUgIkIzU3BhcnNlQ29sbGVjdGlvbi5oIgpAQCAtMTA5LDkgKzExMCwx
OSBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXBsYWNlV2l0aE5vcElnbm9yaW5nVHlwZSgpOwogICAg
IAogICAgIHZvaWQgcmVwbGFjZVdpdGhQaGkoKTsKKyAgICAKKyAgICAvLyBUaGVzZSB0cmFuc2Zv
cm1hdGlvbnMgYXJlIG9ubHkgdmFsaWQgZm9yIHRlcm1pbmFscy4KKyAgICB2b2lkIHJlcGxhY2VX
aXRoSnVtcChCYXNpY0Jsb2NrKiBvd25lciwgY29uc3QgRnJlcXVlbnRlZEJsb2NrJik7CisgICAg
dm9pZCByZXBsYWNlV2l0aE9vcHMoQmFzaWNCbG9jayogb3duZXIpOworICAgIAorICAgIC8vIFlv
dSBjYW4gdXNlIHRoaXMgZm9ybSBpZiBvd25lcnMgYXJlIHZhbGlkLiBUaGV5J3JlIHVzdWFsbHkg
bm90IHZhbGlkLgorICAgIHZvaWQgcmVwbGFjZVdpdGhKdW1wKGNvbnN0IEZyZXF1ZW50ZWRCbG9j
ayYpOworICAgIHZvaWQgcmVwbGFjZVdpdGhPb3BzKCk7CiAKICAgICB2b2lkIGR1bXAoUHJpbnRT
dHJlYW0mKSBjb25zdDsKICAgICB2b2lkIGRlZXBEdW1wKGNvbnN0IFByb2NlZHVyZSosIFByaW50
U3RyZWFtJikgY29uc3Q7CisgICAgCisgICAgdmlydHVhbCB2b2lkIGR1bXBTdWNjZXNzb3JzKGNv
bnN0IEJhc2ljQmxvY2sqLCBQcmludFN0cmVhbSYpIGNvbnN0OwogCiAgICAgLy8gVGhpcyBpcyBo
b3cgeW91IGNhc3QgVmFsdWVzLiBGb3IgZXhhbXBsZSwgaWYgeW91IHdhbnQgdG8gZG8gc29tZXRo
aW5nIHByb3ZpZGVkIHRoYXQgd2UgaGF2ZSBhCiAgICAgLy8gQXJndW1lbnRSZWdWYWx1ZSwgeW91
IGNhbiBkbzoKQEAgLTIyMyw3ICsyMzQsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0xpa2VOb25a
ZXJvKCkgY29uc3QgeyByZXR1cm4gYXNUcmlTdGF0ZSgpID09IFRydWVUcmlTdGF0ZTsgfQogCiAg
ICAgRWZmZWN0cyBlZmZlY3RzKCkgY29uc3Q7Ci0KKyAgICAKICAgICAvLyBUaGlzIHJldHVybnMg
YSBWYWx1ZUtleSB0aGF0IGRlc2NyaWJlcyB0aGF0IHRoaXMgVmFsdWUgcmV0dXJucyB3aGVuIGl0
IGV4ZWN1dGVzLiBSZXR1cm5zIGFuCiAgICAgLy8gZW1wdHkgVmFsdWVLZXkgaWYgdGhpcyBWYWx1
ZSBpcyBpbXB1cmUuIE5vdGUgdGhhdCBhbiBvcGVyYXRpb24gdGhhdCByZXR1cm5zIFZvaWQgY291
bGQgc3RpbGwKICAgICAvLyBoYXZlIGEgbm9uLWVtcHR5IFZhbHVlS2V5LiBUaGlzIGhhcHBlbnMg
Zm9yIGV4YW1wbGUgd2l0aCBDaGVjayBvcGVyYXRpb25zLgpAQCAtMjY0LDYgKzI3NSw4IEBAIHBy
aXZhdGU6CiAgICAgICAgIGNhc2UgRnJhbWVQb2ludGVyOgogICAgICAgICBjYXNlIE5vcDoKICAg
ICAgICAgY2FzZSBQaGk6CisgICAgICAgIGNhc2UgSnVtcDoKKyAgICAgICAgY2FzZSBPb3BzOgog
ICAgICAgICAgICAgaWYgKFVOTElLRUxZKG51bUFyZ3MpKQogICAgICAgICAgICAgICAgIGJhZE9w
Y29kZShvcGNvZGUsIG51bUFyZ3MpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0yODQsNiArMjk3
LDggQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBEb3VibGVUb0Zsb2F0OgogICAgICAgICBjYXNl
IElUb0Y6CiAgICAgICAgIGNhc2UgQml0d2lzZUNhc3Q6CisgICAgICAgIGNhc2UgQnJhbmNoOgor
ICAgICAgICBjYXNlIFJldHVybjoKICAgICAgICAgICAgIGlmIChVTkxJS0VMWShudW1BcmdzICE9
IDEpKQogICAgICAgICAgICAgICAgIGJhZE9wY29kZShvcGNvZGUsIG51bUFyZ3MpOwogICAgICAg
ICAgICAgYnJlYWs7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcAkocmV2aXNp
b24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMzLDcgKzMzLDYgQEAKICNpbmNsdWRlICJCM0NvbXB1dGVEaXZpc2lvbk1h
Z2ljLmgiCiAjaW5jbHVkZSAiQjNDb25zdDMyVmFsdWUuaCIKICNpbmNsdWRlICJCM0NvbnN0UHRy
VmFsdWUuaCIKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzRWZmZWN0
cy5oIgogI2luY2x1ZGUgIkIzTWF0aEV4dHJhcy5oIgogI2luY2x1ZGUgIkIzTWVtb3J5VmFsdWUu
aCIKQEAgLTQ2LDcgKzQ1LDEwIEBACiAjaW5jbHVkZSAiQjNVcHNpbG9uVmFsdWUuaCIKICNpbmNs
dWRlICJCM1ZhbGlkYXRlLmgiCiAjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKKyNpbmNsdWRl
ICJCM1ZhcmlhYmxlVmFsdWUuaCIKICNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKKyNpbmNsdWRl
ICJGUFJJbmZvLmgiCisjaW5jbHVkZSAiR1BSSW5mby5oIgogI2luY2x1ZGUgIkluaXRpYWxpemVU
aHJlYWRpbmcuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiTGlua0J1ZmZl
ci5oIgpAQCAtNTQsNiArNTYsNyBAQAogI2luY2x1ZGUgIlZNLmgiCiAjaW5jbHVkZSA8Y21hdGg+
CiAjaW5jbHVkZSA8c3RyaW5nPgorI2luY2x1ZGUgPHd0Zi9MaXN0RHVtcC5oPgogI2luY2x1ZGUg
PHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL051bWJlck9mQ29yZXMuaD4KICNpbmNsdWRlIDx3
dGYvVGhyZWFkaW5nLmg+CkBAIC03NSw2ICs3OCwxMSBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOjpC
MzsKIAogbmFtZXNwYWNlIHsKIAorYm9vbCBzaG91bGRCZVZlcmJvc2UoKQoreworICAgIHJldHVy
biBzaG91bGREdW1wSVIoQjNNb2RlKTsKK30KKwogU3RhdGljTG9jayBjcmFzaExvY2s7CiAKIC8v
IE5vdGhpbmcgZmFuY3kgZm9yIG5vdzsgd2UganVzdCB1c2UgdGhlIGV4aXN0aW5nIFdURiBhc3Nl
cnRpb24gbWFjaGluZXJ5LgpAQCAtMTk0LDcgKzIwMiw3IEBAIHZvaWQgdGVzdDQyKCkKICAgICBQ
cm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwog
ICAgIFZhbHVlKiBjb25zdDQyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDQyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCBjb25zdDQyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY29uc3Q0Mik7CiAKICAgICBDSEVDSyhjb21waWxl
QW5kUnVuPGludD4ocHJvYykgPT0gNDIpOwogfQpAQCAtMjA0LDcgKzIxMiw3IEBAIHZvaWQgdGVz
dExvYWQ0MigpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKICAgICBpbnQgeCA9IDQyOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwKQEAgLTIyMCw3ICsy
MjgsNyBAQCB2b2lkIHRlc3RMb2FkV2l0aE9mZnNldEltcGwoaW50MzJfdCBvZmZzCiAgICAgICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgICAgIGludDY0X3QgeCA9
IC00MjsKICAgICAgICAgVmFsdWUqIGJhc2UgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBM
b2FkLCBJbnQ2NCwgT3JpZ2luKCksCkBAIC0yMzUsNyArMjQzLDcgQEAgdm9pZCB0ZXN0TG9hZFdp
dGhPZmZzZXRJbXBsKGludDMyX3Qgb2ZmcwogICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwogICAgICAgICBpbnQzMl90IHggPSAtNDI7CiAgICAgICAgIFZhbHVlKiBi
YXNlID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApOwotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1v
cnlWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgTG9hZCwgSW50MzIsIE9yaWdpbigpLApA
QCAtMjg4LDcgKzI5Niw3IEBAIHZvaWQgdGVzdEFyZyhpbnQgYXJndW1lbnQpCiB7CiAgICAgUHJv
Y2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKSk7CiAKQEAgLTI5OSw3ICszMDcsNyBAQCB2b2lkIHRlc3RSZXR1cm5Db25zdDY0
KGludDY0X3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2Ms
IE9yaWdpbigpLCB2YWx1ZSkpOwogCkBAIC0zMTEsNyArMzE5LDcgQEAgdm9pZCB0ZXN0QWRkQXJn
KGludCBhKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50
UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCB2YWx1ZSwgdmFsdWUpKTsKIApAQCAt
MzIyLDcgKzMzMCw3IEBAIHZvaWQgdGVzdEFkZEFyZ3MoaW50IGEsIGludCBiKQogewogICAgIFBy
b2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKQEAg
LTMzNiw3ICszNDQsNyBAQCB2b2lkIHRlc3RBZGRBcmdJbW0oaW50IGEsIGludCBiKQogewogICAg
IFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwK
QEAgLTM1MCw3ICszNTgsNyBAQCB2b2lkIHRlc3RBZGRJbW1BcmcoaW50IGEsIGludCBiKQogewog
ICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4o
KSwKQEAgLTM3MCw3ICszNzgsNyBAQCB2b2lkIHRlc3RBZGRBcmdNZW0oaW50NjRfdCBhLCBpbnQ2
NF90IGIpCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwKICAgICAgICAgbG9hZCk7CiAgICAgcm9v
dC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwg
YWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IDApKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsK
IAogICAgIGludDY0X3QgaW5wdXRPdXRwdXQgPSBiOwogICAgIENIRUNLKCFjb21waWxlQW5kUnVu
PGludDY0X3Q+KHByb2MsIGEsICZpbnB1dE91dHB1dCkpOwpAQCAtMzg2LDcgKzM5NCw3IEBAIHZv
aWQgdGVzdEFkZE1lbUFyZyhpbnQ2NF90IGEsIGludDY0X3QgYikKICAgICBWYWx1ZSogcmVzdWx0
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLAogICAgICAgICBs
b2FkLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAg
ICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsICZhLCBiKSA9PSBhICsgYik7CiB9
CkBAIC00MDEsNyArNDA5LDcgQEAgdm9pZCB0ZXN0QWRkSW1tTWVtKGludDY0X3QgYSwgaW50NjRf
dCBiKQogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgYSksCiAgICAgICAgIGxvYWQpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4o
cHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBpbnQ2NF90IGlucHV0T3V0cHV0
ID0gYjsKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsICZpbnB1dE91dHB1dCkp
OwpAQCAtNDE0LDcgKzQyMiw3IEBAIHZvaWQgdGVzdEFkZEFyZzMyKGludCBhKQogICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIHZhbHVl
LCB2YWx1ZSkpOwogCkBAIC00MjUsNyArNDMzLDcgQEAgdm9pZCB0ZXN0QWRkQXJnczMyKGludCBh
LCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IEFkZCwgT3JpZ2luKCksCkBAIC00NDksNyArNDU3LDcgQEAgdm9pZCB0ZXN0QWRkQXJnTWVtMzIo
aW50MzJfdCBhLCBpbnQzMl90IAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVl
KiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGFy
Z3VtZW50LCBsb2FkKTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0
b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgaW50MzJfdCBpbnB1dE91dHB1dCA9IGI7CiAg
ICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYSwgJmlucHV0T3V0cHV0KSk7
CkBAIC00NjUsNyArNDczLDcgQEAgdm9pZCB0ZXN0QWRkTWVtQXJnMzIoaW50MzJfdCBhLCBpbnQz
Ml90IAogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
VHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSkpOwogICAgIFZhbHVlKiBy
ZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGxvYWQs
IGFyZ3VtZW50KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1
bjxpbnQzMl90Pihwcm9jLCAmYSwgYikgPT0gYSArIGIpOwogfQpAQCAtNDgwLDcgKzQ4OCw3IEBA
IHZvaWQgdGVzdEFkZEltbU1lbTMyKGludDMyX3QgYSwgaW50MzJfdCAKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpLAogICAgICAgICBsb2Fk
KTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4o
KSwgcmVzdWx0LCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgMCkpOwogCiAgICAgaW50MzJfdCBpbnB1dE91dHB1dCA9IGI7CiAgICAgQ0hFQ0soIWNv
bXBpbGVBbmRSdW48aW50Pihwcm9jLCAmaW5wdXRPdXRwdXQpKTsKQEAgLTQ5NSw3ICs1MDMsNyBA
QCB2b2lkIHRlc3RBZGRBcmdaZXJvSW1tWkRlZigpCiAgICAgICAgIHByb2MsIFRydW5jLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSogY29uc3RaZXJvID0g
cm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCkBAIC01MTUs
NyArNTIzLDcgQEAgdm9pZCB0ZXN0QWRkTG9hZFR3aWNlKCkKICAgICAgICAgVmFsdWUqIGxvYWQg
PSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZCwg
SW50MzIsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCAmdmFsdWUpKTsKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGxvYWQsIGxvYWQpKTsKIApAQCAtNTMyLDcg
KzU0MCw3IEBAIHZvaWQgdGVzdEFkZEFyZ0RvdWJsZShkb3VibGUgYSkKICAgICBQcm9jZWR1cmUg
cHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVl
KiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRk
LCBPcmlnaW4oKSwgdmFsdWUsIHZhbHVlKSk7CiAKQEAgLTU0NSw3ICs1NTMsNyBAQCB2b2lkIHRl
c3RBZGRBcmdzRG91YmxlKGRvdWJsZSBhLCBkb3VibGUgCiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwog
ICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEFkZCwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTU1OCw3ICs1NjYs
NyBAQCB2b2lkIHRlc3RBZGRBcmdJbW1Eb3VibGUoZG91YmxlIGEsIGRvdWJsCiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1
bWVudEZQUjApOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3Vi
bGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBB
ZGQsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC01NzEsNyArNTc5LDcgQEAgdm9p
ZCB0ZXN0QWRkSW1tQXJnRG91YmxlKGRvdWJsZSBhLCBkb3VibAogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5l
dzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHZhbHVl
QiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBS
SW5mbzo6YXJndW1lbnRGUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmln
aW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtNTg0LDcgKzU5Miw3IEBAIHZvaWQgdGVzdEFk
ZEltbXNEb3VibGUoZG91YmxlIGEsIGRvdWJsZSAKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8Q29uc3RE
b3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290
LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBA
IC02MDAsNyArNjA4LDcgQEAgdm9pZCB0ZXN0QWRkQXJnRmxvYXQoZmxvYXQgYSkKICAgICBWYWx1
ZSogZmxvYXRWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3Qs
IE9yaWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBmbG9hdFZhbHVlLCBmbG9hdFZhbHVlKTsK
ICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdp
c2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogCiAg
ICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNl
X2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSArIGEpKSk7CkBAIC02
MTgsNyArNjI2LDcgQEAgdm9pZCB0ZXN0QWRkQXJnc0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIpCiAg
ICAgVmFsdWUqIGZsb2F0VmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3
aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MmludDMyKTsKICAgICBWYWx1ZSogcmVzdWx0ID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBmbG9hdFZhbHVlMSwg
ZmxvYXRWYWx1ZTIpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihw
cm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSks
IGJpdHdpc2VfY2FzdDxpbnQzMl90PihhICsgYikpKTsKIH0KQEAgLTYzMyw3ICs2NDEsNyBAQCB2
b2lkIHRlc3RBZGRBcmdJbW1GbG9hdChmbG9hdCBhLCBmbG9hdCBiCiAgICAgVmFsdWUqIGNvbnN0
VmFsdWUgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
Yik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRk
LCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSwgY29uc3RWYWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMy
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJl
c3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChj
b21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJp
dHdpc2VfY2FzdDxpbnQzMl90PihhICsgYikpKTsKIH0KQEAgLTY0OCw3ICs2NTYsNyBAQCB2b2lk
IHRlc3RBZGRJbW1BcmdGbG9hdChmbG9hdCBhLCBmbG9hdCBiCiAgICAgVmFsdWUqIGNvbnN0VmFs
dWUgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7
CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBP
cmlnaW4oKSwgY29uc3RWYWx1ZSwgZmxvYXRWYWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3Vs
dCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21w
aWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSksIGJpdHdp
c2VfY2FzdDxpbnQzMl90PihhICsgYikpKTsKIH0KQEAgLTY2MSw3ICs2NjksNyBAQCB2b2lkIHRl
c3RBZGRJbW1zRmxvYXQoZmxvYXQgYSwgZmxvYXQgYikKICAgICBWYWx1ZSogY29uc3RWYWx1ZTIg
PSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7CiAg
ICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmln
aW4oKSwgY29uc3RWYWx1ZTEsIGNvbnN0VmFsdWUyKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBp
bGVBbmRSdW48aW50MzJfdD4ocHJvYyksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhICsgYikpKTsK
IH0KQEAgLTY3Nyw3ICs2ODUsNyBAQCB2b2lkIHRlc3RBZGRBcmdGbG9hdFdpdGhVc2VsZXNzRG91
YmxlQ29uCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
QWRkLCBPcmlnaW4oKSwgYXNEb3VibGUsIGFzRG91YmxlKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1
bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigp
LCByZXN1bHQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+
KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90Pihh
ICsgYSkpKTsKIH0KQEAgLTY5Nyw3ICs3MDUsNyBAQCB2b2lkIHRlc3RBZGRBcmdzRmxvYXRXaXRo
VXNlbGVzc0RvdWJsZUNvCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYXNEb3VibGUxLCBhc0RvdWJsZTIpOwogICAgIFZhbHVl
KiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9h
dCwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRS
dW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSArIGIpKSk7CiB9CkBAIC03MTks
NyArNzI3LDcgQEAgdm9pZCB0ZXN0QWRkQXJnc0Zsb2F0V2l0aEVmZmVjdGZ1bERvdWJsZQogICAg
IFZhbHVlKiBkb3VibGVBZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpOwogICAgIHJvb3QtPmFwcGVu
ZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGRvdWJsZUFk
ZHJlc3MpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1
bHQzMik7CiAKICAgICBkb3VibGUgZWZmZWN0ID0gMDsKICAgICBDSEVDSyhpc0lkZW50aWNhbChj
b21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgYml0
d2lzZV9jYXN0PGludDMyX3Q+KGIpLCAmZWZmZWN0KSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEg
KyBiKSkpOwpAQCAtNzMyLDcgKzc0MCw3IEBAIHZvaWQgdGVzdE11bEFyZyhpbnQgYSkKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZSA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwgcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwg
dmFsdWUsIHZhbHVlKSk7CiAKQEAgLTc1OSw3ICs3NjcsNyBAQCB2b2lkIHRlc3RNdWxBcmdTdG9y
ZShpbnQgYSkKICAgICAgICAgcHJvYywgU3RvcmUsIE9yaWdpbigpLCBtdWwsCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJm11bFNsb3QpKTsK
IAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIENIRUNLKCFj
b21waWxlQW5kUnVuPGludD4ocHJvYywgYSkpOwpAQCAtNzc0LDcgKzc4Miw3IEBAIHZvaWQgdGVz
dE11bEFkZEFyZyhpbnQgYSkKICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KAogICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIwKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmln
aW4oKSwKQEAgLTc4OCw3ICs3OTYsNyBAQCB2b2lkIHRlc3RNdWxBcmdzKGludCBhLCBpbnQgYikK
IHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIE11bCwgT3Jp
Z2luKCksCkBAIC04MDIsNyArODEwLDcgQEAgdm9pZCB0ZXN0TXVsQXJnSW1tKGludDY0X3QgYSwg
aW50NjRfdCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgTXVsLCBPcmlnaW4oKSwKQEAgLTgxNiw3ICs4MjQsNyBAQCB2b2lkIHRlc3RNdWxJbW1Bcmco
aW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgTXVsLCBPcmlnaW4oKSwKQEAgLTgzMCw3ICs4MzgsNyBAQCB2b2lkIHRlc3RNdWxBcmdz
MzIoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgTXVsLCBPcmlnaW4oKSwKQEAgLTg1Myw3ICs4NjEsNyBAQCB2b2lkIHRlc3RNdWxM
b2FkVHdpY2UoKQogICAgICAgICBWYWx1ZSogbG9hZCA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2luKCksCiAgICAgICAg
ICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZ2YWx1
ZSkpOwotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmln
aW4oKSwgbG9hZCwgbG9hZCkpOwogCkBAIC04NzUsNyArODgzLDcgQEAgdm9pZCB0ZXN0TXVsQWRk
QXJnc0xlZnQoKQogICAgIFZhbHVlKiBhcmcyID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpOwogICAgIFZhbHVl
KiBtdWx0aXBsaWVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigp
LCBhcmcwLCBhcmcxKTsKICAgICBWYWx1ZSogYWRkZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEFkZCwgT3JpZ2luKCksIG11bHRpcGxpZWQsIGFyZzIpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQp
OwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAtODk5LDcgKzkwNyw3IEBA
IHZvaWQgdGVzdE11bEFkZEFyZ3NSaWdodCgpCiAgICAgVmFsdWUqIGFyZzIgPSByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMik7CiAgICAgVmFsdWUqIG11bHRpcGxpZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIE11bCwgT3JpZ2luKCksIGFyZzEsIGFyZzIpOwogICAgIFZhbHVlKiBhZGRlZCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYXJnMCwgbXVsdGlwbGllZCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgYWRkZWQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBhZGRlZCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBA
IC05MjYsNyArOTM0LDcgQEAgdm9pZCB0ZXN0TXVsQWRkQXJnc0xlZnQzMigpCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIyKSk7CiAgICAgVmFsdWUqIG11bHRpcGxpZWQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGFyZzAsIGFyZzEpOwogICAgIFZhbHVlKiBhZGRl
ZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgbXVsdGlwbGll
ZCwgYXJnMik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgYWRkZWQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHBy
b2MpOwogCkBAIC05NTMsNyArOTYxLDcgQEAgdm9pZCB0ZXN0TXVsQWRkQXJnc1JpZ2h0MzIoKQog
ICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMikpOwogICAgIFZhbHVlKiBtdWx0aXBsaWVkID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBhcmcxLCBhcmcyKTsKICAgICBW
YWx1ZSogYWRkZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCks
IGFyZzAsIG11bHRpcGxpZWQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOwogCiAgICAgYXV0byBjb2RlID0g
Y29tcGlsZShwcm9jKTsKIApAQCAtOTc3LDcgKzk4NSw3IEBAIHZvaWQgdGVzdE11bFN1YkFyZ3NM
ZWZ0KCkKICAgICBWYWx1ZSogYXJnMiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKTsKICAgICBWYWx1ZSogbXVs
dGlwbGllZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgYXJn
MCwgYXJnMSk7CiAgICAgVmFsdWUqIGFkZGVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBTdWIsIE9yaWdpbigpLCBtdWx0aXBsaWVkLCBhcmcyKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKIAog
ICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKQEAgLTEwMDEsNyArMTAwOSw3IEBAIHZv
aWQgdGVzdE11bFN1YkFyZ3NSaWdodCgpCiAgICAgVmFsdWUqIGFyZzIgPSByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BS
Mik7CiAgICAgVmFsdWUqIG11bHRpcGxpZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IE11bCwgT3JpZ2luKCksIGFyZzEsIGFyZzIpOwogICAgIFZhbHVlKiBhZGRlZCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgYXJnMCwgbXVsdGlwbGllZCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
YWRkZWQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBhZGRlZCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC0x
MDI4LDcgKzEwMzYsNyBAQCB2b2lkIHRlc3RNdWxTdWJBcmdzTGVmdDMyKCkKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjIpKTsKICAgICBWYWx1ZSogbXVsdGlwbGllZCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgYXJnMCwgYXJnMSk7CiAgICAgVmFsdWUqIGFkZGVk
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBtdWx0aXBsaWVk
LCBhcmcyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBhZGRlZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJv
Yyk7CiAKQEAgLTEwNTUsNyArMTA2Myw3IEBAIHZvaWQgdGVzdE11bFN1YkFyZ3NSaWdodDMyKCkK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjIpKTsKICAgICBWYWx1ZSogbXVsdGlwbGllZCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgYXJnMSwgYXJnMik7CiAgICAg
VmFsdWUqIGFkZGVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigp
LCBhcmcwLCBtdWx0aXBsaWVkKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKIAogICAgIGF1dG8gY29kZSA9
IGNvbXBpbGUocHJvYyk7CiAKQEAgLTEwNzksNyArMTA4Nyw3IEBAIHZvaWQgdGVzdE11bE5lZ0Fy
Z3MoKQogICAgIFZhbHVlKiBtdWx0aXBsaWVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBNdWwsIE9yaWdpbigpLCBhcmcwLCBhcmcxKTsKICAgICBWYWx1ZSogemVybyA9IHJvb3QtPmFw
cGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKTsKICAgICBWYWx1ZSogYWRk
ZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIHplcm8sIG11
bHRpcGxpZWQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIGFkZGVkKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShw
cm9jKTsKIApAQCAtMTEwMyw3ICsxMTExLDcgQEAgdm9pZCB0ZXN0TXVsTmVnQXJnczMyKCkKICAg
ICBWYWx1ZSogbXVsdGlwbGllZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBP
cmlnaW4oKSwgYXJnMCwgYXJnMSk7CiAgICAgVmFsdWUqIHplcm8gPSByb290LT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCk7CiAgICAgVmFsdWUqIGFkZGVkID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCB6ZXJvLCBtdWx0aXBsaWVk
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBhZGRlZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIGFkZGVkKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAK
QEAgLTExMjAsNyArMTEyOCw3IEBAIHZvaWQgdGVzdE11bEFyZ0RvdWJsZShkb3VibGUgYSkKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwogICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgdmFsdWUsIHZhbHVlKSk7CiAKQEAgLTExMzMsNyArMTE0
MSw3IEBAIHZvaWQgdGVzdE11bEFyZ3NEb3VibGUoZG91YmxlIGEsIGRvdWJsZSAKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFy
Z3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIxKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApA
QCAtMTE0Niw3ICsxMTU0LDcgQEAgdm9pZCB0ZXN0TXVsQXJnSW1tRG91YmxlKGRvdWJsZSBhLCBk
b3VibAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUq
IHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBw
ZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTE1
OSw3ICsxMTY3LDcgQEAgdm9pZCB0ZXN0TXVsSW1tQXJnRG91YmxlKGRvdWJsZSBhLCBkb3VibAog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVl
QSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7
CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTE3Miw3ICsx
MTgwLDcgQEAgdm9pZCB0ZXN0TXVsSW1tc0RvdWJsZShkb3VibGUgYSwgZG91YmxlIAogICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJv
b3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAg
VmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgYik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIHZh
bHVlQSwgdmFsdWVCKSk7CiAKQEAgLTExODgsNyArMTE5Niw3IEBAIHZvaWQgdGVzdE11bEFyZ0Zs
b2F0KGZsb2F0IGEpCiAgICAgVmFsdWUqIGZsb2F0VmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUq
IHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgZmxv
YXRWYWx1ZSwgZmxvYXRWYWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQzMik7CiAKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48
aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KGEgKiBhKSkpOwpAQCAtMTIwNiw3ICsxMjE0LDcgQEAgdm9pZCB0ZXN0TXVsQXJnc0Zs
b2F0KGZsb2F0IGEsIGZsb2F0IGIpCiAgICAgVmFsdWUqIGZsb2F0VmFsdWUyID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MmludDMy
KTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWws
IE9yaWdpbigpLCBmbG9hdFZhbHVlMSwgZmxvYXRWYWx1ZTIpOwogICAgIFZhbHVlKiByZXN1bHQz
MiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBy
ZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwo
Y29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJp
dHdpc2VfY2FzdDxpbnQzMl90PihiKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhICogYikpKTsK
IH0KQEAgLTEyMjEsNyArMTIyOSw3IEBAIHZvaWQgdGVzdE11bEFyZ0ltbUZsb2F0KGZsb2F0IGEs
IGZsb2F0IGIKICAgICBWYWx1ZSogY29uc3RWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZs
b2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBmbG9hdFZhbHVlLCBjb25zdFZh
bHVlKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsK
IAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0
d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgKiBiKSkpOwog
fQpAQCAtMTIzNiw3ICsxMjQ0LDcgQEAgdm9pZCB0ZXN0TXVsSW1tQXJnRmxvYXQoZmxvYXQgYSwg
ZmxvYXQgYgogICAgIFZhbHVlKiBjb25zdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0Rmxv
YXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGNvbnN0VmFsdWUsIGZsb2F0VmFs
dWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
Qml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwog
CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAqIGIpKSk7CiB9
CkBAIC0xMjQ5LDcgKzEyNTcsNyBAQCB2b2lkIHRlc3RNdWxJbW1zRmxvYXQoZmxvYXQgYSwgZmxv
YXQgYikKICAgICBWYWx1ZSogY29uc3RWYWx1ZTIgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9h
dFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgY29uc3RWYWx1ZTEsIGNvbnN0VmFs
dWUyKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsK
IAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYyksIGJp
dHdpc2VfY2FzdDxpbnQzMl90PihhICogYikpKTsKIH0KQEAgLTEyNjUsNyArMTI3Myw3IEBAIHZv
aWQgdGVzdE11bEFyZ0Zsb2F0V2l0aFVzZWxlc3NEb3VibGVDb24KICAgICBWYWx1ZSogcmVzdWx0
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBhc0RvdWJsZSwg
YXNEb3VibGUpOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgVmFsdWUqIHJl
c3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2lu
KCksIGZsb2F0UmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlz
SWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMy
X3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgKiBhKSkpOwogfQpAQCAtMTI4NSw3ICsx
MjkzLDcgQEAgdm9pZCB0ZXN0TXVsQXJnc0Zsb2F0V2l0aFVzZWxlc3NEb3VibGVDbwogICAgIFZh
bHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCks
IGFzRG91YmxlMSwgYXNEb3VibGUyKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCByZXN1bHQpOwog
ICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lz
ZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAK
ICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdp
c2VfY2FzdDxpbnQzMl90PihhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0d2lzZV9j
YXN0PGludDMyX3Q+KGEgKiBiKSkpOwogfQpAQCAtMTMwNyw3ICsxMzE1LDcgQEAgdm9pZCB0ZXN0
TXVsQXJnc0Zsb2F0V2l0aEVmZmVjdGZ1bERvdWJsZQogICAgIFZhbHVlKiBkb3VibGVNdWxyZXNz
ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjIpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJv
YywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGRvdWJsZU11bHJlc3MpOwogICAgIFZhbHVlKiBy
ZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdp
bigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBkb3VibGUg
ZWZmZWN0ID0gMDsKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+
KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIp
LCAmZWZmZWN0KSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgKiBiKSkpOwpAQCAtMTMxOSw3ICsx
MzI3LDcgQEAgdm9pZCB0ZXN0RGl2QXJnRG91YmxlKGRvdWJsZSBhKQogICAgIFByb2NlZHVyZSBw
cm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUq
IHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEaXYs
IE9yaWdpbigpLCB2YWx1ZSwgdmFsdWUpKTsKIApAQCAtMTMzMiw3ICsxMzQwLDcgQEAgdm9pZCB0
ZXN0RGl2QXJnc0RvdWJsZShkb3VibGUgYSwgZG91YmxlIAogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsK
ICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjEpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBEaXYsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC0xMzQ1LDcgKzEz
NTMsNyBAQCB2b2lkIHRlc3REaXZBcmdJbW1Eb3VibGUoZG91YmxlIGEsIGRvdWJsCiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjph
cmd1bWVudEZQUjApOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8Q29uc3RE
b3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBEaXYsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC0xMzU4LDcgKzEzNjYsNyBA
QCB2b2lkIHRlc3REaXZJbW1BcmdEb3VibGUoZG91YmxlIGEsIGRvdWJsCiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBw
ZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSog
dmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEaXYs
IE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC0xMzcxLDcgKzEzNzksNyBAQCB2b2lk
IHRlc3REaXZJbW1zRG91YmxlKGRvdWJsZSBhLCBkb3VibGUgCiAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3
PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogdmFsdWVC
ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIp
KTsKIApAQCAtMTM4Nyw3ICsxMzk1LDcgQEAgdm9pZCB0ZXN0RGl2QXJnRmxvYXQoZmxvYXQgYSkK
ICAgICBWYWx1ZSogZmxvYXRWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0
d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEaXYsIE9yaWdpbigpLCBmbG9hdFZhbHVlLCBmbG9h
dFZhbHVlKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMy
KTsKIAogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9j
LCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAvIGEp
KSk7CkBAIC0xNDA1LDcgKzE0MTMsNyBAQCB2b2lkIHRlc3REaXZBcmdzRmxvYXQoZmxvYXQgYSwg
ZmxvYXQgYikKICAgICBWYWx1ZSogZmxvYXRWYWx1ZTIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQyaW50MzIpOwogICAgIFZhbHVl
KiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERpdiwgT3JpZ2luKCksIGZs
b2F0VmFsdWUxLCBmbG9hdFZhbHVlMik7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVu
PGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLyBiKSkpOwogfQpAQCAtMTQyMCw3
ICsxNDI4LDcgQEAgdm9pZCB0ZXN0RGl2QXJnSW1tRmxvYXQoZmxvYXQgYSwgZmxvYXQgYgogICAg
IFZhbHVlKiBjb25zdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIERpdiwgT3JpZ2luKCksIGZsb2F0VmFsdWUsIGNvbnN0VmFsdWUpOwogICAgIFZh
bHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3Qs
IE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0so
aXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50
MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAvIGIpKSk7CiB9CkBAIC0xNDM1LDcg
KzE0NDMsNyBAQCB2b2lkIHRlc3REaXZJbW1BcmdGbG9hdChmbG9hdCBhLCBmbG9hdCBiCiAgICAg
VmFsdWUqIGNvbnN0VmFsdWUgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwgY29uc3RWYWx1ZSwgZmxvYXRWYWx1ZSk7CiAgICAgVmFs
dWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwg
T3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhp
c0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQz
Ml90PihiKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhIC8gYikpKTsKIH0KQEAgLTE0NDgsNyAr
MTQ1Niw3IEBAIHZvaWQgdGVzdERpdkltbXNGbG9hdChmbG9hdCBhLCBmbG9hdCBiKQogICAgIFZh
bHVlKiBjb25zdFZhbHVlMiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBiKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBEaXYsIE9yaWdpbigpLCBjb25zdFZhbHVlMSwgY29uc3RWYWx1ZTIpOwogICAgIFZh
bHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3Qs
IE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0so
aXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jKSwgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KGEgLyBiKSkpOwogfQpAQCAtMTQ1OCw3ICsxNDY2LDcgQEAgdm9pZCB0ZXN0TW9kQXJn
RG91YmxlKGRvdWJsZSBhKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjAp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigpLCB2YWx1ZSwgdmFsdWUp
KTsKIApAQCAtMTQ3MSw3ICsxNDc5LDcgQEAgdm9pZCB0ZXN0TW9kQXJnc0RvdWJsZShkb3VibGUg
YSwgZG91YmxlIAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAg
VmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjph
cmd1bWVudEZQUjEpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigpLCB2
YWx1ZUEsIHZhbHVlQikpOwogCkBAIC0xNDg0LDcgKzE0OTIsNyBAQCB2b2lkIHRlc3RNb2RBcmdJ
bW1Eb3VibGUoZG91YmxlIGEsIGRvdWJsCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVl
KiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIGIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigpLCB2YWx1ZUEs
IHZhbHVlQikpOwogCkBAIC0xNDk3LDcgKzE1MDUsNyBAQCB2b2lkIHRlc3RNb2RJbW1BcmdEb3Vi
bGUoZG91YmxlIGEsIGRvdWJsCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjAp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVl
QikpOwogCkBAIC0xNTEwLDcgKzE1MTgsNyBAQCB2b2lkIHRlc3RNb2RJbW1zRG91YmxlKGRvdWJs
ZSBhLCBkb3VibGUgCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAg
ICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0
RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgTW9kLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTUyNiw3ICsxNTM0LDcg
QEAgdm9pZCB0ZXN0TW9kQXJnRmxvYXQoZmxvYXQgYSkKICAgICBWYWx1ZSogZmxvYXRWYWx1ZSA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1
bWVudDMyKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBNb2QsIE9yaWdpbigpLCBmbG9hdFZhbHVlLCBmbG9hdFZhbHVlKTsKICAgICBWYWx1ZSogcmVz
dWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4o
KSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogCiAgICAgQ0hFQ0soaXNJZGVu
dGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4o
YSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KGZtb2QoYSwgYSkp
KSkpOwpAQCAtMTU0NCw3ICsxNTUyLDcgQEAgdm9pZCB0ZXN0TW9kQXJnc0Zsb2F0KGZsb2F0IGEs
IGZsb2F0IGIpCiAgICAgVmFsdWUqIGZsb2F0VmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MmludDMyKTsKICAgICBWYWx1
ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigpLCBm
bG9hdFZhbHVlMSwgZmxvYXRWYWx1ZTIpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
c3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1
bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxp
bnQzMl90PihiKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihzdGF0aWNfY2FzdDxmbG9hdD4oZm1v
ZChhLCBiKSkpKSk7CiB9CkBAIC0xNTU5LDcgKzE1NjcsNyBAQCB2b2lkIHRlc3RNb2RBcmdJbW1G
bG9hdChmbG9hdCBhLCBmbG9hdCBiCiAgICAgVmFsdWUqIGNvbnN0VmFsdWUgPSByb290LT5hcHBl
bmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7CiAgICAgVmFsdWUqIHJl
c3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgZmxvYXRW
YWx1ZSwgY29uc3RWYWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMy
X3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90
PihzdGF0aWNfY2FzdDxmbG9hdD4oZm1vZChhLCBiKSkpKSk7CiB9CkBAIC0xNTc0LDcgKzE1ODIs
NyBAQCB2b2lkIHRlc3RNb2RJbW1BcmdGbG9hdChmbG9hdCBhLCBmbG9hdCBiCiAgICAgVmFsdWUq
IGNvbnN0VmFsdWUgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmln
aW4oKSwgYSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgTW9kLCBPcmlnaW4oKSwgY29uc3RWYWx1ZSwgZmxvYXRWYWx1ZSk7CiAgICAgVmFsdWUqIHJl
c3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2lu
KCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50
aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90Pihi
KSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihzdGF0aWNfY2FzdDxmbG9hdD4oZm1vZChhLCBiKSkp
KSk7CiB9CkBAIC0xNTg3LDcgKzE1OTUsNyBAQCB2b2lkIHRlc3RNb2RJbW1zRmxvYXQoZmxvYXQg
YSwgZmxvYXQgYikKICAgICBWYWx1ZSogY29uc3RWYWx1ZTIgPSByb290LT5hcHBlbmROZXc8Q29u
c3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgY29uc3RWYWx1ZTEsIGNv
bnN0VmFsdWUyKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJv
YyksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihzdGF0aWNfY2FzdDxmbG9hdD4oZm1vZChhLCBiKSkp
KSk7CiB9CkBAIC0xNjAzLDcgKzE2MTEsNyBAQCB2b2lkIHRlc3REaXZBcmdGbG9hdFdpdGhVc2Vs
ZXNzRG91YmxlQ29uCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgRGl2LCBPcmlnaW4oKSwgYXNEb3VibGUsIGFzRG91YmxlKTsKICAgICBWYWx1ZSogZmxv
YXRSZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9y
aWdpbigpLCByZXN1bHQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGlu
dDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQz
Ml90PihhIC8gYSkpKTsKIH0KQEAgLTE2MjMsNyArMTYzMSw3IEBAIHZvaWQgdGVzdERpdkFyZ3NG
bG9hdFdpdGhVc2VsZXNzRG91YmxlQ28KICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBEaXYsIE9yaWdpbigpLCBhc0RvdWJsZTEsIGFzRG91YmxlMik7CiAg
ICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3Vi
bGVUb0Zsb2F0LCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1
bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29t
cGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdp
c2VfY2FzdDxpbnQzMl90PihiKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhIC8gYikpKTsKIH0K
QEAgLTE2NDUsNyArMTY1Myw3IEBAIHZvaWQgdGVzdERpdkFyZ3NGbG9hdFdpdGhFZmZlY3RmdWxE
b3VibGUKICAgICBWYWx1ZSogZG91YmxlRGl2cmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKTsKICAgICBy
b290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0
LCBkb3VibGVEaXZyZXNzKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0MzIpOwogCiAgICAgZG91YmxlIGVmZmVjdCA9IDA7CiAgICAgQ0hFQ0soaXNJ
ZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJf
dD4oYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSwgJmVmZmVjdCksIGJpdHdpc2VfY2FzdDxp
bnQzMl90PihhIC8gYikpKTsKQEAgLTE2NTcsNyArMTY2NSw3IEBAIHZvaWQgdGVzdFN1YkFyZyhp
bnQgYSkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgdmFsdWUsIHZhbHVlKSk7CiAKQEAgLTE2
NjgsNyArMTY3Niw3IEBAIHZvaWQgdGVzdFN1YkFyZ3MoaW50IGEsIGludCBiKQogewogICAgIFBy
b2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU3ViLCBPcmlnaW4oKSwKQEAg
LTE2ODIsNyArMTY5MCw3IEBAIHZvaWQgdGVzdFN1YkFyZ0ltbShpbnQ2NF90IGEsIGludDY0X3Qg
YikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFN1Yiwg
T3JpZ2luKCksCkBAIC0xNzAzLDcgKzE3MTEsNyBAQCB2b2lkIHRlc3ROZWdWYWx1ZVN1Yk9uZShp
bnQgYSkKICAgICBWYWx1ZSogbmVnQXJndW1lbnRNaW51c09uZSA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwKICAgICAgICAgbmVnQXJndW1lbnQsCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgbmVn
QXJndW1lbnRNaW51c09uZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIG5lZ0FyZ3VtZW50TWludXNPbmUpOwogICAgIENIRUNLKGNvbXBp
bGVBbmRSdW48aW50Pihwcm9jLCBhKSA9PSAtYSAtIDEpOwogfQogCkBAIC0xNzExLDcgKzE3MTks
NyBAQCB2b2lkIHRlc3RTdWJJbW1BcmcoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBw
cm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU3ViLCBPcmlnaW4oKSwKQEAgLTE3MzAsNyAr
MTczOCw3IEBAIHZvaWQgdGVzdFN1YkFyZ01lbShpbnQ2NF90IGEsIGludDY0X3QgYikKICAgICBW
YWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCksCiAgICAgICAgIGxvYWQpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
c3VsdCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIGEsICZiKSA9
PSBhIC0gYik7CiB9CkBAIC0xNzQ1LDcgKzE3NTMsNyBAQCB2b2lkIHRlc3RTdWJNZW1BcmcoaW50
NjRfdCBhLCBpbnQ2NF90IGIpCiAgICAgICAgIGxvYWQsCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIx
KSk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2lu
KCksIHJlc3VsdCwgYWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIDApKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIDApKTsKIAogICAgIGludDY0X3QgaW5wdXRPdXRwdXQgPSBhOwogICAgIENIRUNLKCFj
b21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsICZpbnB1dE91dHB1dCwgYikpOwpAQCAtMTc2Miw3
ICsxNzcwLDcgQEAgdm9pZCB0ZXN0U3ViSW1tTWVtKGludDY0X3QgYSwgaW50NjRfdCBiKQogICAg
ICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSksCiAg
ICAgICAgIGxvYWQpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3Rv
cmUsIE9yaWdpbigpLCByZXN1bHQsIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMy
VmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBpbnQ2NF90IGlucHV0T3V0cHV0ID0gYjsKICAg
ICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsICZpbnB1dE91dHB1dCkpOwpAQCAtMTc3
OSw3ICsxNzg3LDcgQEAgdm9pZCB0ZXN0U3ViTWVtSW1tKGludDY0X3QgYSwgaW50NjRfdCBiKQog
ICAgICAgICBsb2FkLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgYikpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywg
U3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBpbnQ2NF90IGlucHV0T3V0cHV0ID0gYTsK
ICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsICZpbnB1dE91dHB1dCkpOwpAQCAt
MTc5MSw3ICsxNzk5LDcgQEAgdm9pZCB0ZXN0U3ViQXJnczMyKGludCBhLCBpbnQgYikKIHsKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFN1YiwgT3JpZ2luKCks
CkBAIC0xODA5LDcgKzE4MTcsNyBAQCB2b2lkIHRlc3RTdWJBcmdJbW0zMihpbnQgYSwgaW50IGIp
CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTdWIsIE9y
aWdpbigpLApAQCAtMTgyNSw3ICsxODMzLDcgQEAgdm9pZCB0ZXN0U3ViSW1tQXJnMzIoaW50IGEs
IGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
U3ViLCBPcmlnaW4oKSwKQEAgLTE4NDcsNyArMTg1NSw3IEBAIHZvaWQgdGVzdFN1Yk1lbUFyZzMy
KGludDMyX3QgYSwgaW50MzJfdCAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKTsKICAgICBWYWx1
ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBs
b2FkLCBhcmd1bWVudCk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBT
dG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgYWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGludDMyX3QgaW5wdXRPdXRwdXQgPSBhOwog
ICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsICZpbnB1dE91dHB1dCwgYikp
OwpAQCAtMTg2Myw3ICsxODcxLDcgQEAgdm9pZCB0ZXN0U3ViQXJnTWVtMzIoaW50MzJfdCBhLCBp
bnQzMl90IAogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVl
KiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIGFy
Z3VtZW50LCBsb2FkKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFu
ZFJ1bjxpbnQzMl90Pihwcm9jLCBhLCAmYikgPT0gYSAtIGIpOwogfQpAQCAtMTg3OCw3ICsxODg2
LDcgQEAgdm9pZCB0ZXN0U3ViSW1tTWVtMzIoaW50MzJfdCBhLCBpbnQzMl90IAogICAgICAgICBy
b290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSksCiAgICAgICAg
IGxvYWQpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9y
aWdpbigpLCByZXN1bHQsIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAwKSk7CiAKICAgICBpbnQzMl90IGlucHV0T3V0cHV0ID0gYjsKICAgICBDSEVD
SyghY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsICZpbnB1dE91dHB1dCkpOwpAQCAtMTg5NSw3ICsx
OTAzLDcgQEAgdm9pZCB0ZXN0U3ViTWVtSW1tMzIoaW50MzJfdCBhLCBpbnQzMl90IAogICAgICAg
ICBsb2FkLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgYikpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUs
IE9yaWdpbigpLCByZXN1bHQsIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBpbnQzMl90IGlucHV0T3V0cHV0ID0gYTsKICAgICBD
SEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsICZpbnB1dE91dHB1dCkpOwpAQCAtMTkxNCw3
ICsxOTIyLDcgQEAgdm9pZCB0ZXN0TmVnVmFsdWVTdWJPbmUzMihpbnQgYSkKICAgICBWYWx1ZSog
bmVnQXJndW1lbnRNaW51c09uZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBP
cmlnaW4oKSwKICAgICAgICAgbmVnQXJndW1lbnQsCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgbmVnQXJndW1lbnRNaW51c09uZSk7
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IG5lZ0FyZ3VtZW50TWludXNPbmUpOwogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9j
LCBhKSA9PSAtYSAtIDEpOwogfQogCkBAIC0xOTIzLDcgKzE5MzEsNyBAQCB2b2lkIHRlc3RTdWJB
cmdEb3VibGUoZG91YmxlIGEpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBS
MCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIHZhbHVlLCB2YWx1
ZSkpOwogCkBAIC0xOTM2LDcgKzE5NDQsNyBAQCB2b2lkIHRlc3RTdWJBcmdzRG91YmxlKGRvdWJs
ZSBhLCBkb3VibGUgCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAg
ICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiB2YWx1ZUIgPSBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86
OmFyZ3VtZW50RlBSMSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCks
IHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTE5NDksNyArMTk1Nyw3IEBAIHZvaWQgdGVzdFN1YkFy
Z0ltbURvdWJsZShkb3VibGUgYSwgZG91YmwKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFs
dWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmln
aW4oKSwgYik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIHZhbHVl
QSwgdmFsdWVCKSk7CiAKQEAgLTE5NjIsNyArMTk3MCw3IEBAIHZvaWQgdGVzdFN1YkltbUFyZ0Rv
dWJsZShkb3VibGUgYSwgZG91YmwKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBS
MCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIHZhbHVlQSwgdmFs
dWVCKSk7CiAKQEAgLTE5NzUsNyArMTk4Myw3IEBAIHZvaWQgdGVzdFN1YkltbXNEb3VibGUoZG91
YmxlIGEsIGRvdWJsZSAKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwog
ICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8Q29u
c3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBTdWIsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogICAgIApAQCAtMTk5MSw3ICsx
OTk5LDcgQEAgdm9pZCB0ZXN0U3ViQXJnRmxvYXQoZmxvYXQgYSkKICAgICBWYWx1ZSogZmxvYXRW
YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigp
LCBhcmd1bWVudDMyKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBTdWIsIE9yaWdpbigpLCBmbG9hdFZhbHVlLCBmbG9hdFZhbHVlKTsKICAgICBWYWx1
ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBP
cmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogCiAgICAgQ0hFQ0so
aXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50
MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAtIGEpKSk7CkBAIC0yMDA5LDcgKzIw
MTcsNyBAQCB2b2lkIHRlc3RTdWJBcmdzRmxvYXQoZmxvYXQgYSwgZmxvYXQgYikKICAgICBWYWx1
ZSogZmxvYXRWYWx1ZTIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0
LCBPcmlnaW4oKSwgYXJndW1lbnQyaW50MzIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIGZsb2F0VmFsdWUxLCBmbG9hdFZh
bHVlMik7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7
CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJp
dHdpc2VfY2FzdDxpbnQzMl90PihhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0d2lz
ZV9jYXN0PGludDMyX3Q+KGEgLSBiKSkpOwogfQpAQCAtMjAyNCw3ICsyMDMyLDcgQEAgdm9pZCB0
ZXN0U3ViQXJnSW1tRmxvYXQoZmxvYXQgYSwgZmxvYXQgYgogICAgIFZhbHVlKiBjb25zdFZhbHVl
ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwog
ICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3Jp
Z2luKCksIGZsb2F0VmFsdWUsIGNvbnN0VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGls
ZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNl
X2Nhc3Q8aW50MzJfdD4oYSAtIGIpKSk7CiB9CkBAIC0yMDM5LDcgKzIwNDcsNyBAQCB2b2lkIHRl
c3RTdWJJbW1BcmdGbG9hdChmbG9hdCBhLCBmbG9hdCBiCiAgICAgVmFsdWUqIGNvbnN0VmFsdWUg
PSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAg
ICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmln
aW4oKSwgY29uc3RWYWx1ZSwgZmxvYXRWYWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxl
QW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSksIGJpdHdpc2Vf
Y2FzdDxpbnQzMl90PihhIC0gYikpKTsKIH0KQEAgLTIwNTIsNyArMjA2MCw3IEBAIHZvaWQgdGVz
dFN1YkltbXNGbG9hdChmbG9hdCBhLCBmbG9hdCBiKQogICAgIFZhbHVlKiBjb25zdFZhbHVlMiA9
IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKICAg
ICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdp
bigpLCBjb25zdFZhbHVlMSwgY29uc3RWYWx1ZTIpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGls
ZUFuZFJ1bjxpbnQzMl90Pihwcm9jKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLSBiKSkpOwog
fQpAQCAtMjA2OCw3ICsyMDc2LDcgQEAgdm9pZCB0ZXN0U3ViQXJnRmxvYXRXaXRoVXNlbGVzc0Rv
dWJsZUNvbgogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IFN1YiwgT3JpZ2luKCksIGFzRG91YmxlLCBhc0RvdWJsZSk7CiAgICAgVmFsdWUqIGZsb2F0UmVz
dWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4o
KSwgcmVzdWx0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90
Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4o
YSAtIGEpKSk7CiB9CkBAIC0yMDg4LDcgKzIwOTYsNyBAQCB2b2lkIHRlc3RTdWJBcmdzRmxvYXRX
aXRoVXNlbGVzc0RvdWJsZUNvCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgYXNEb3VibGUxLCBhc0RvdWJsZTIpOwogICAgIFZh
bHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9G
bG9hdCwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVB
bmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nh
c3Q8aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAtIGIpKSk7CiB9CkBAIC0y
MTEwLDcgKzIxMTgsNyBAQCB2b2lkIHRlc3RTdWJBcmdzRmxvYXRXaXRoRWZmZWN0ZnVsRG91Ymxl
CiAgICAgVmFsdWUqIGRvdWJsZVN1YnJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMik7CiAgICAgcm9vdC0+
YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgZG91
YmxlU3VicmVzcyk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJlc3VsdDMyKTsKIAogICAgIGRvdWJsZSBlZmZlY3QgPSAwOwogICAgIENIRUNLKGlzSWRlbnRp
Y2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEp
LCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYiksICZlZmZlY3QpLCBiaXR3aXNlX2Nhc3Q8aW50MzJf
dD4oYSAtIGIpKSk7CkBAIC0yMTIxLDcgKzIxMjksNyBAQCB2b2lkIHRlc3RCaXRBbmRBcmdzKGlu
dDY0X3QgYSwgaW50NjRfdCBiCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMjEzNiw3ICsyMTQ0LDcgQEAgdm9pZCB0
ZXN0Qml0QW5kU2FtZUFyZyhpbnQ2NF90IGEpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
Qml0QW5kLCBPcmlnaW4oKSwKQEAgLTIxNTAsNyArMjE1OCw3IEBAIHZvaWQgdGVzdEJpdEFuZElt
bXMoaW50NjRfdCBhLCBpbnQ2NF90IGIKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0yMTY0LDcgKzIxNzIsNyBAQCB2
b2lkIHRlc3RCaXRBbmRBcmdJbW0oaW50NjRfdCBhLCBpbnQ2NF90CiB7CiAgICAgUHJvY2VkdXJl
IHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMjE3
OCw3ICsyMTg2LDcgQEAgdm9pZCB0ZXN0Qml0QW5kSW1tQXJnKGludDY0X3QgYSwgaW50NjRfdAog
ewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBP
cmlnaW4oKSwKQEAgLTIxOTYsNyArMjIwNCw3IEBAIHZvaWQgdGVzdEJpdEFuZEJpdEFuZEFyZ0lt
bUltbShpbnQ2NF90IGEKICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjApLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgYikpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0yMjE0LDcgKzIyMjIsNyBAQCB2b2lkIHRlc3RCaXRB
bmRJbW1CaXRBbmRBcmdJbW0oaW50NjRfdCBhCiAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENv
bnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGMpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMjIyOCw3ICsyMjM2LDcgQEAg
dm9pZCB0ZXN0Qml0QW5kQXJnczMyKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0yMjQ4LDcg
KzIyNTYsNyBAQCB2b2lkIHRlc3RCaXRBbmRTYW1lQXJnMzIoaW50IGEpCiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjApKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQs
IE9yaWdpbigpLApAQCAtMjI2Miw3ICsyMjcwLDcgQEAgdm9pZCB0ZXN0Qml0QW5kSW1tczMyKGlu
dCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0yMjc2LDcgKzIyODQsNyBAQCB2b2lkIHRlc3RCaXRB
bmRBcmdJbW0zMihpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMjI5Miw3ICsyMzAwLDcgQEAg
dm9pZCB0ZXN0Qml0QW5kSW1tQXJnMzIoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBw
cm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTIzMTQs
NyArMjMyMiw3IEBAIHZvaWQgdGVzdEJpdEFuZEJpdEFuZEFyZ0ltbUltbTMyKGludCBhLCAKICAg
ICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIwKSksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBiKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5k
LCBPcmlnaW4oKSwKQEAgLTIzMzQsNyArMjM0Miw3IEBAIHZvaWQgdGVzdEJpdEFuZEltbUJpdEFu
ZEFyZ0ltbTMyKGludCBhLCAKICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAg
ICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBjKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTIzNjEsNyArMjM2OSw3IEBAIHZv
aWQgdGVzdEJpdEFuZFdpdGhNYXNrUmV0dXJuc0Jvb2xlYW5zKGkKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC01KSk7CiAKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWxlY3Qp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBzZWxlY3QpOwogCiAgICAgaW50NjRfdCBleHBlY3RlZCA9IChhID09IGIpID8gLTUgOiA0MjsK
ICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIGEsIGIpID09IGV4cGVjdGVk
KTsKQEAgLTIzNzgsNyArMjM4Niw3IEBAIHZvaWQgdGVzdEJpdEFuZEFyZ0RvdWJsZShkb3VibGUg
YSkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBh
cmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBCaXRBbmQsIE9yaWdpbigpLCBhcmd1bWVudCwgYXJndW1lbnQp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5k
UnVuPGRvdWJsZT4ocHJvYywgYSksIGJpdEFuZERvdWJsZShhLCBhKSkpOwogfQpAQCAtMjM5MCw3
ICsyMzk4LDcgQEAgdm9pZCB0ZXN0Qml0QW5kQXJnc0RvdWJsZShkb3VibGUgYSwgZG91YgogICAg
IFZhbHVlKiBhcmd1bWVudEEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50
QiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBS
SW5mbzo6YXJndW1lbnRGUFIxKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBCaXRBbmQsIE9yaWdpbigpLCBhcmd1bWVudEEsIGFyZ3VtZW50Qik7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48
ZG91YmxlPihwcm9jLCBhLCBiKSwgYml0QW5kRG91YmxlKGEsIGIpKSk7CiB9CkBAIC0yNDAyLDcg
KzI0MTAsNyBAQCB2b2lkIHRlc3RCaXRBbmRBcmdJbW1Eb3VibGUoZG91YmxlIGEsIGRvCiAgICAg
VmFsdWUqIGFyZ3VtZW50QSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogYXJndW1lbnRC
ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsK
ICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXRBbmQs
IE9yaWdpbigpLCBhcmd1bWVudEEsIGFyZ3VtZW50Qik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAog
ICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBhLCBiKSwg
Yml0QW5kRG91YmxlKGEsIGIpKSk7CiB9CkBAIC0yNDE0LDcgKzI0MjIsNyBAQCB2b2lkIHRlc3RC
aXRBbmRJbW1zRG91YmxlKGRvdWJsZSBhLCBkb3ViCiAgICAgVmFsdWUqIGFyZ3VtZW50QSA9IHJv
b3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAg
VmFsdWUqIGFyZ3VtZW50QiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgYik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQml0QW5kLCBPcmlnaW4oKSwgYXJndW1lbnRBLCBhcmd1bWVudEIpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJs
ZT4ocHJvYyksIGJpdEFuZERvdWJsZShhLCBiKSkpOwogfQpAQCAtMjQzMiw3ICsyNDQwLDcgQEAg
dm9pZCB0ZXN0Qml0QW5kQXJnRmxvYXQoZmxvYXQgYSkKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BS
MCkpKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBC
aXRBbmQsIE9yaWdpbigpLCBhcmd1bWVudCwgYXJndW1lbnQpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7
CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXRBbmRGbG9hdChhLCBhKSkpOwogfQpAQCAtMjQ0OCw3
ICsyNDU2LDcgQEAgdm9pZCB0ZXN0Qml0QW5kQXJnc0Zsb2F0KGZsb2F0IGEsIGZsb2F0IAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
R1BSSW5mbzo6YXJndW1lbnRHUFIxKSkpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEJpdEFuZCwgT3JpZ2luKCksIGFyZ3VtZW50QSwgYXJndW1lbnRC
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFu
ZFJ1bjxmbG9hdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4oYikpLCBiaXRBbmRGbG9hdChhLCBiKSkpOwogfQpAQCAtMjQ2Miw3ICsyNDcwLDcg
QEAgdm9pZCB0ZXN0Qml0QW5kQXJnSW1tRmxvYXQoZmxvYXQgYSwgZmxvYQogICAgICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjApKSk7CiAgICAgVmFsdWUqIGFyZ3VtZW50QiA9IHJvb3QtPmFwcGVuZE5l
dzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKICAgICBWYWx1ZSogcmVzdWx0
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXRBbmQsIE9yaWdpbigpLCBhcmd1bWVu
dEEsIGFyZ3VtZW50Qik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGlzSWRlbnRp
Y2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwg
Yml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0QW5kRmxvYXQoYSwgYikpKTsKIH0KQEAgLTI0
NzQsNyArMjQ4Miw3IEBAIHZvaWQgdGVzdEJpdEFuZEltbXNGbG9hdChmbG9hdCBhLCBmbG9hdCAK
ICAgICBWYWx1ZSogYXJndW1lbnRBID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiBhcmd1bWVudEIgPSByb290LT5hcHBlbmRO
ZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7CiAgICAgVmFsdWUqIHJlc3Vs
dCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0QW5kLCBPcmlnaW4oKSwgYXJndW1l
bnRBLCBhcmd1bWVudEIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhpc0lkZW50
aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jKSwgYml0QW5kRmxvYXQoYSwgYikpKTsKIH0K
QEAgLTI0OTMsNyArMjUwMSw3IEBAIHZvaWQgdGVzdEJpdEFuZEFyZ3NGbG9hdFdpdGhVc2VsZXNz
RG91YmwKICAgICBWYWx1ZSogYXJndW1lbnRCYXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBhcmd1bWVudEIpOwogICAgIFZhbHVl
KiBkb3VibGVSZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdEFuZCwgT3Jp
Z2luKCksIGFyZ3VtZW50QWFzRG91YmxlLCBhcmd1bWVudEJhc0RvdWJsZSk7CiAgICAgVmFsdWUq
IGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0
LCBPcmlnaW4oKSwgZG91YmxlUmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsK
IAogICAgIGRvdWJsZSBkb3VibGVBID0gYTsKICAgICBkb3VibGUgZG91YmxlQiA9IGI7CkBAIC0y
NTA1LDcgKzI1MTMsNyBAQCB2b2lkIHRlc3RCaXRPckFyZ3MoaW50NjRfdCBhLCBpbnQ2NF90IGIp
CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRPciwg
T3JpZ2luKCksCkBAIC0yNTIwLDcgKzI1MjgsNyBAQCB2b2lkIHRlc3RCaXRPclNhbWVBcmcoaW50
NjRfdCBhKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdE9yLCBPcmlnaW4oKSwKQEAg
LTI1MzQsNyArMjU0Miw3IEBAIHZvaWQgdGVzdEJpdE9ySW1tcyhpbnQ2NF90IGEsIGludDY0X3Qg
YikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdE9y
LCBPcmlnaW4oKSwKQEAgLTI1NDgsNyArMjU1Niw3IEBAIHZvaWQgdGVzdEJpdE9yQXJnSW1tKGlu
dDY0X3QgYSwgaW50NjRfdCAKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIEJpdE9yLCBPcmlnaW4oKSwKQEAgLTI1NjIsNyArMjU3MCw3IEBAIHZvaWQgdGVz
dEJpdE9ySW1tQXJnKGludDY0X3QgYSwgaW50NjRfdCAKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdE9yLCBPcmlnaW4oKSwKQEAgLTI1ODAsNyArMjU4
OCw3IEBAIHZvaWQgdGVzdEJpdE9yQml0T3JBcmdJbW1JbW0oaW50NjRfdCBhLCAKICAgICAgICAg
cHJvYywgQml0T3IsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKSk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0T3IsIE9yaWdpbigpLApAQCAt
MjU5OCw3ICsyNjA2LDcgQEAgdm9pZCB0ZXN0Qml0T3JJbW1CaXRPckFyZ0ltbShpbnQ2NF90IGEs
IAogICAgICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIw
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IGMpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRPciwgT3Jp
Z2luKCksCkBAIC0yNjEyLDcgKzI2MjAsNyBAQCB2b2lkIHRlc3RCaXRPckFyZ3MzMihpbnQgYSwg
aW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBC
aXRPciwgT3JpZ2luKCksCkBAIC0yNjMzLDcgKzI2NDEsNyBAQCB2b2lkIHRlc3RCaXRPclNhbWVB
cmczMihpbnQgYSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdE9yLCBP
cmlnaW4oKSwKQEAgLTI2NDcsNyArMjY1NSw3IEBAIHZvaWQgdGVzdEJpdE9ySW1tczMyKGludCBh
LCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IEJpdE9yLCBPcmlnaW4oKSwKQEAgLTI2NjEsNyArMjY2OSw3IEBAIHZvaWQgdGVzdEJpdE9yQXJn
SW1tMzIoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgcHJvYywgQml0T3IsIE9yaWdpbigpLApAQCAtMjY3Nyw3ICsyNjg1LDcgQEAgdm9pZCB0
ZXN0Qml0T3JJbW1BcmczMihpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCksCkBAIC0yNjk5LDcgKzI3MDcs
NyBAQCB2b2lkIHRlc3RCaXRPckJpdE9yQXJnSW1tSW1tMzIoaW50IGEsIGluCiAgICAgICAgICAg
ICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYikp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdE9yLCBPcmlnaW4o
KSwKQEAgLTI3MTksNyArMjcyNyw3IEBAIHZvaWQgdGVzdEJpdE9ySW1tQml0T3JBcmdJbW0zMihp
bnQgYSwgaW4KICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBjKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgQml0T3IsIE9yaWdpbigpLApAQCAtMjczMyw3ICsyNzQxLDcgQEAgdm9pZCB0ZXN0Qml0
WG9yQXJncyhpbnQ2NF90IGEsIGludDY0X3QgYgogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTI3NDgsNyArMjc1Niw3
IEBAIHZvaWQgdGVzdEJpdFhvclNhbWVBcmcoaW50NjRfdCBhKQogICAgIFByb2NlZHVyZSBwcm9j
OwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFy
Z3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCkBAIC0yNzYyLDcgKzI3NzAsNyBAQCB2b2lkIHRl
c3RCaXRYb3JJbW1zKGludDY0X3QgYSwgaW50NjRfdCBiCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjc3Niw3ICsy
Nzg0LDcgQEAgdm9pZCB0ZXN0Qml0WG9yQXJnSW1tKGludDY0X3QgYSwgaW50NjRfdAogewogICAg
IFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4o
KSwKQEAgLTI3OTAsNyArMjc5OCw3IEBAIHZvaWQgdGVzdEJpdFhvckltbUFyZyhpbnQ2NF90IGEs
IGludDY0X3QKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IEJpdFhvciwgT3JpZ2luKCksCkBAIC0yODA4LDcgKzI4MTYsNyBAQCB2b2lkIHRlc3RCaXRYb3JC
aXRYb3JBcmdJbW1JbW0oaW50NjRfdCBhCiAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0
NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjgyNiw3ICsyODM0LDcgQEAgdm9p
ZCB0ZXN0Qml0WG9ySW1tQml0WG9yQXJnSW1tKGludDY0X3QgYQogICAgICAgICBwcm9jLCBCaXRY
b3IsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBjKSk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTI4NDAsNyAr
Mjg0OCw3IEBAIHZvaWQgdGVzdEJpdFhvckFyZ3MzMihpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJv
Y2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApA
QCAtMjg2MSw3ICsyODY5LDcgQEAgdm9pZCB0ZXN0Qml0WG9yU2FtZUFyZzMyKGludCBhKQogICAg
IFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgIHByb2Ms
IFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTI4
NzUsNyArMjg4Myw3IEBAIHZvaWQgdGVzdEJpdFhvckltbXMzMihpbnQgYSwgaW50IGIpCiB7CiAg
ICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdp
bigpLApAQCAtMjg4OSw3ICsyODk3LDcgQEAgdm9pZCB0ZXN0Qml0WG9yQXJnSW1tMzIoaW50IGEs
IGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
Qml0WG9yLCBPcmlnaW4oKSwKQEAgLTI5MDUsNyArMjkxMyw3IEBAIHZvaWQgdGVzdEJpdFhvcklt
bUFyZzMyKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCkBAIC0yOTI3LDcgKzI5MzUsNyBAQCB2b2lk
IHRlc3RCaXRYb3JCaXRYb3JBcmdJbW1JbW0zMihpbnQgYSwgCiAgICAgICAgICAgICBwcm9jLCBU
cnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYikpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCkBAIC0y
OTQ3LDcgKzI5NTUsNyBAQCB2b2lkIHRlc3RCaXRYb3JJbW1CaXRYb3JBcmdJbW0zMihpbnQgYSwg
CiAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCkpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgYykpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJp
dFhvciwgT3JpZ2luKCksCkBAIC0yOTYxLDcgKzI5NjksNyBAQCB2b2lkIHRlc3RCaXROb3RBcmco
aW50NjRfdCBhKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTI5NzUsNyArMjk4Myw3IEBAIHZvaWQgdGVzdEJpdE5v
dEltbShpbnQ2NF90IGEpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjk5NSw3ICszMDAzLDcgQEAgdm9pZCB0ZXN0
Qml0Tm90TWVtKGludDY0X3QgYSkKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIC0xKSwKICAgICAgICAgbG9hZCk7CiAgICAgcm9vdC0+YXBwZW5k
TmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIG5vdExvYWQsIGFkZHJlc3Mp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJv
b3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBp
bnQ2NF90IGlucHV0ID0gYTsKICAgICBjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsICZpbnB1
dCk7CkBAIC0zMDA4LDcgKzMwMTYsNyBAQCB2b2lkIHRlc3RCaXROb3RBcmczMihpbnQzMl90IGEp
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJn
dW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0WG9y
LCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAtMSksCkBAIC0zMDIwLDcgKzMwMjgsNyBAQCB2b2lkIHRlc3RCaXROb3RJ
bW0zMihpbnQzMl90IGEpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMzA0MCw3ICszMDQ4LDcgQEAgdm9pZCB0ZXN0
Qml0Tm90TWVtMzIoaW50MzJfdCBhKQogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgLTEpLAogICAgICAgICBsb2FkKTsKICAgICByb290LT5hcHBl
bmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgbm90TG9hZCwgYWRkcmVz
cyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAg
IGludDMyX3QgaW5wdXQgPSBhOwogICAgIGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgJmlu
cHV0KTsKQEAgLTMwNjMsMTYgKzMwNzEsMTYgQEAgdm9pZCB0ZXN0Qml0Tm90T25Cb29sZWFuQW5k
QnJhbmNoMzIoaW50NgogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgLTEpLAogICAgICAgICBhcmdzQXJlRXF1YWwpOwogCi0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICBhcmdzQXJlTm90RXF1YWws
CiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNl
Q2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRo
ZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgNDIpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIC00MikpOwogCkBAIC0zMDg0LDcgKzMwOTIsNyBAQCB2b2lkIHRlc3RT
aGxBcmdzKGludDY0X3QgYSwgaW50NjRfdCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgU2hsLCBPcmlnaW4oKSwKQEAgLTMxMDAsNyArMzEwOCw3IEBA
IHZvaWQgdGVzdFNobEltbXMoaW50NjRfdCBhLCBpbnQ2NF90IGIpCiB7CiAgICAgUHJvY2VkdXJl
IHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTaGwsIE9yaWdpbigpLApAQCAtMzExNCw3
ICszMTIyLDcgQEAgdm9pZCB0ZXN0U2hsQXJnSW1tKGludDY0X3QgYSwgaW50NjRfdCBiKQogewog
ICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2hsLCBPcmlnaW4o
KSwKQEAgLTMxMzEsNyArMzEzOSw3IEBAIHZvaWQgdGVzdFNobEFyZzMyKGludDMyX3QgYSkKICAg
ICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICBwcm9jLCBU
cnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIFNobCwgT3JpZ2luKCksIHZhbHVlLCB2YWx1ZSkpOwogCkBAIC0zMTQyLDcg
KzMxNTAsNyBAQCB2b2lkIHRlc3RTaGxBcmdzMzIoaW50MzJfdCBhLCBpbnQzMl90IGIpCiB7CiAg
ICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTaGwsIE9yaWdpbigp
LApAQCAtMzE2MCw3ICszMTY4LDcgQEAgdm9pZCB0ZXN0U2hsSW1tczMyKGludDMyX3QgYSwgaW50
MzJfdCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
U2hsLCBPcmlnaW4oKSwKQEAgLTMxNzQsNyArMzE4Miw3IEBAIHZvaWQgdGVzdFNobEFyZ0ltbTMy
KGludDMyX3QgYSwgaW50MzJfdCAKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIFNobCwgT3JpZ2luKCksCkBAIC0zMTkwLDcgKzMxOTgsNyBAQCB2b2lkIHRl
c3RTU2hyQXJncyhpbnQ2NF90IGEsIGludDY0X3QgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKICAgICAgICAgICAgIHByb2MsIFNTaHIsIE9yaWdpbigpLApAQCAtMzIwNiw3ICszMjE0
LDcgQEAgdm9pZCB0ZXN0U1NockltbXMoaW50NjRfdCBhLCBpbnQ2NF90IGIpCiB7CiAgICAgUHJv
Y2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTU2hyLCBPcmlnaW4oKSwKQEAg
LTMyMjAsNyArMzIyOCw3IEBAIHZvaWQgdGVzdFNTaHJBcmdJbW0oaW50NjRfdCBhLCBpbnQ2NF90
IGIKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNTaHIs
IE9yaWdpbigpLApAQCAtMzIzNyw3ICszMjQ1LDcgQEAgdm9pZCB0ZXN0U1NockFyZzMyKGludDMy
X3QgYSkKICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIFNTaHIsIE9yaWdpbigpLCB2YWx1ZSwgdmFsdWUpKTsKIApA
QCAtMzI0OCw3ICszMjU2LDcgQEAgdm9pZCB0ZXN0U1NockFyZ3MzMihpbnQzMl90IGEsIGludDMy
X3QgYgogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU1No
ciwgT3JpZ2luKCksCkBAIC0zMjY2LDcgKzMyNzQsNyBAQCB2b2lkIHRlc3RTU2hySW1tczMyKGlu
dDMyX3QgYSwgaW50MzJfdCBiCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBTU2hyLCBPcmlnaW4oKSwKQEAgLTMyODAsNyArMzI4OCw3IEBAIHZvaWQgdGVz
dFNTaHJBcmdJbW0zMihpbnQzMl90IGEsIGludDMyX3QKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKICAgICAgICAgICAgIHByb2MsIFNTaHIsIE9yaWdpbigpLApAQCAtMzI5Niw3ICszMzA0
LDcgQEAgdm9pZCB0ZXN0WlNockFyZ3ModWludDY0X3QgYSwgdWludDY0X3QgYgogewogICAgIFBy
b2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgWlNociwgT3JpZ2luKCksCkBA
IC0zMzEyLDcgKzMzMjAsNyBAQCB2b2lkIHRlc3RaU2hySW1tcyh1aW50NjRfdCBhLCB1aW50NjRf
dCBiCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBaU2hy
LCBPcmlnaW4oKSwKQEAgLTMzMjYsNyArMzMzNCw3IEBAIHZvaWQgdGVzdFpTaHJBcmdJbW0odWlu
dDY0X3QgYSwgdWludDY0X3QKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIFpTaHIsIE9yaWdpbigpLApAQCAtMzM0Myw3ICszMzUxLDcgQEAgdm9pZCB0ZXN0
WlNockFyZzMyKHVpbnQzMl90IGEpCiAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBaU2hyLCBPcmlnaW4oKSwgdmFs
dWUsIHZhbHVlKSk7CiAKQEAgLTMzNTQsNyArMzM2Miw3IEBAIHZvaWQgdGVzdFpTaHJBcmdzMzIo
dWludDMyX3QgYSwgdWludDMyX3QKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIFpTaHIsIE9yaWdpbigpLApAQCAtMzM3Miw3ICszMzgwLDcgQEAgdm9pZCB0
ZXN0WlNockltbXMzMih1aW50MzJfdCBhLCB1aW50MzJfdAogewogICAgIFByb2NlZHVyZSBwcm9j
OwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgWlNociwgT3JpZ2luKCksCkBAIC0zMzg2LDcgKzMz
OTQsNyBAQCB2b2lkIHRlc3RaU2hyQXJnSW1tMzIodWludDMyX3QgYSwgdWludDMyCiB7CiAgICAg
UHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBaU2hyLCBPcmlnaW4oKSwK
QEAgLTM0MTksNyArMzQyNyw3IEBAIHZvaWQgdGVzdENsekFyZzY0KGludDY0X3QgYSkKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIwKTsKICAgICBWYWx1ZSogY2x6VmFsdWUgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIENseiwgT3JpZ2luKCksIGFyZ3VtZW50KTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjbHpWYWx1ZSk7CisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNselZh
bHVlKTsKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPHVuc2lnbmVkPihwcm9jLCBhKSA9PSBjb3Vu
dExlYWRpbmdaZXJvKGEpKTsKIH0KIApAQCAtMzQzMCw3ICszNDM4LDcgQEAgdm9pZCB0ZXN0Q2x6
TWVtNjQoaW50NjRfdCBhKQogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwog
ICAgIE1lbW9yeVZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJv
YywgTG9hZCwgSW50NjQsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogY2x6VmFsdWUg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENseiwgT3JpZ2luKCksIHZhbHVlKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBj
bHpWYWx1ZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIGNselZhbHVlKTsKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPHVuc2lnbmVkPihw
cm9jLCAmYSkgPT0gY291bnRMZWFkaW5nWmVybyhhKSk7CiB9CiAKQEAgLTM0NDEsNyArMzQ0OSw3
IEBAIHZvaWQgdGVzdENsekFyZzMyKGludDMyX3QgYSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSogY2x6VmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIENseiwgT3JpZ2luKCksIGFyZ3VtZW50KTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjbHpWYWx1ZSk7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNselZhbHVl
KTsKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPHVuc2lnbmVkPihwcm9jLCBhKSA9PSBjb3VudExl
YWRpbmdaZXJvKGEpKTsKIH0KIApAQCAtMzQ1Miw3ICszNDYwLDcgQEAgdm9pZCB0ZXN0Q2x6TWVt
MzIoaW50MzJfdCBhKQogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAg
IE1lbW9yeVZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywg
TG9hZCwgSW50MzIsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogY2x6VmFsdWUgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENseiwgT3JpZ2luKCksIHZhbHVlKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjbHpW
YWx1ZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIGNselZhbHVlKTsKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPHVuc2lnbmVkPihwcm9j
LCAmYSkgPT0gY291bnRMZWFkaW5nWmVybyhhKSk7CiB9CiAKQEAgLTM0NjAsNyArMzQ2OCw3IEBA
IHZvaWQgdGVzdEFic0FyZyhkb3VibGUgYSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIEFicywgT3JpZ2luKCksCkBAIC0zNDc0LDcgKzM0ODIsNyBAQCB2
b2lkIHRlc3RBYnNJbW0oZG91YmxlIGEpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290
LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdpbigpLCBhcmd1bWVudCkpOwogCkBAIC0zNDg3
LDcgKzM0OTUsNyBAQCB2b2lkIHRlc3RBYnNNZW0oZG91YmxlIGEpCiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIwKTsKICAgICBNZW1vcnlWYWx1ZSogbG9hZERvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxNZW1v
cnlWYWx1ZT4ocHJvYywgTG9hZCwgRG91YmxlLCBPcmlnaW4oKSwgYWRkcmVzcyk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEFicywgT3JpZ2luKCksIGxvYWREb3VibGUpKTsKIApAQCAtMzUw
MSw3ICszNTA5LDcgQEAgdm9pZCB0ZXN0QWJzQWJzQXJnKGRvdWJsZSBhKQogICAgIFZhbHVlKiBm
aXJzdEFicyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBG
UFJJbmZvOjphcmd1bWVudEZQUjApKTsKICAgICBWYWx1ZSogc2Vjb25kQWJzID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdpbigpLCBmaXJzdEFicyk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kQWJz
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgc2Vjb25kQWJzKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91
YmxlPihwcm9jLCBhKSwgZmFicyhhKSkpOwogfQpAQCAtMzUxMyw3ICszNTIxLDcgQEAgdm9pZCB0
ZXN0QWJzQml0d2lzZUNhc3RBcmcoZG91YmxlIGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50QXNJbnQ2
NCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BS
SW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBWYWx1ZSogYXJndW1lbnRBc0RvdWJsZSA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudEFz
SW50NjQpOwogICAgIFZhbHVlKiBhYnNWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQWJzLCBPcmlnaW4oKSwgYXJndW1lbnRBc0RvdWJsZSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWJzVmFsdWUpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhYnNWYWx1
ZSk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywg
Yml0d2lzZV9jYXN0PGludDY0X3Q+KGEpKSwgZmFicyhhKSkpOwogfQpAQCAtMzUyNyw3ICszNTM1
LDcgQEAgdm9pZCB0ZXN0Qml0d2lzZUNhc3RBYnNCaXR3aXNlQ2FzdEFyZyhkbwogICAgIFZhbHVl
KiBhYnNWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBPcmlnaW4oKSwg
YXJndW1lbnRBc0RvdWJsZSk7CiAgICAgVmFsdWUqIHJlc3VsdEFzSW50NjQgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYWJzVmFsdWUpOwogCi0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0QXNJbnQ2NCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdEFzSW50NjQpOwogCiAgICAgaW50NjRfdCBleHBlY3RlZFJl
c3VsdCA9IGJpdHdpc2VfY2FzdDxpbnQ2NF90PihmYWJzKGEpKTsKICAgICBDSEVDSyhpc0lkZW50
aWNhbChjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQ2NF90Pihh
KSksIGV4cGVjdGVkUmVzdWx0KSk7CkBAIC0zNTQyLDcgKzM1NTAsNyBAQCB2b2lkIHRlc3RBYnNB
cmcoZmxvYXQgYSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUqIHJl
c3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBPcmlnaW4oKSwgYXJndW1l
bnQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
Qml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwog
CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8
ZmxvYXQ+KGZhYnMoYSkpKSkpOwogfQpAQCAtMzU1NCw3ICszNTYyLDcgQEAgdm9pZCB0ZXN0QWJz
SW1tKGZsb2F0IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0
RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFicywgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBW
YWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0
LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNL
KGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0PGZsb2F0PihmYWJz
KGEpKSkpKTsKIH0KQEAgLTM1NjcsNyArMzU3NSw3IEBAIHZvaWQgdGVzdEFic01lbShmbG9hdCBh
KQogICAgIE1lbW9yeVZhbHVlKiBsb2FkRmxvYXQgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFs
dWU+KHByb2MsIExvYWQsIEZsb2F0LCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIHJl
c3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBPcmlnaW4oKSwgbG9hZEZs
b2F0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsK
IAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgJmEp
LCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KGZhYnMoYSkpKSkpOwog
fQpAQCAtMzU4MSw3ICszNTg5LDcgQEAgdm9pZCB0ZXN0QWJzQWJzQXJnKGZsb2F0IGEpCiAgICAg
VmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2Fz
dCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiBmaXJzdEFicyA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZhbHVl
KiBzZWNvbmRBYnMgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFicywgT3JpZ2luKCks
IGZpcnN0QWJzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBzZWNvbmRBYnMpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmRBYnMpOwogCiAgICAgQ0hFQ0soaXNJZGVu
dGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEp
KSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGZhYnMoYSkpKSk7CiB9CkBAIC0zNTk0LDcgKzM2MDIsNyBA
QCB2b2lkIHRlc3RBYnNCaXR3aXNlQ2FzdEFyZyhmbG9hdCBhKQogICAgICAgICByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCkpOwogICAgIFZhbHVlKiBhcmd1bWVudEFzZmxvYXQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnRBc0ludDMyKTsKICAgICBW
YWx1ZSogYWJzVmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFicywgT3JpZ2lu
KCksIGFyZ3VtZW50QXNmbG9hdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWJzVmFsdWUpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhYnNWYWx1ZSk7CiAKICAgICBDSEVD
Syhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50
MzJfdD4oYSkpLCBzdGF0aWNfY2FzdDxmbG9hdD4oZmFicyhhKSkpKTsKIH0KQEAgLTM2MDksNyAr
MzYxNyw3IEBAIHZvaWQgdGVzdEJpdHdpc2VDYXN0QWJzQml0d2lzZUNhc3RBcmcoZmwKICAgICBW
YWx1ZSogYWJzVmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFicywgT3JpZ2lu
KCksIGFyZ3VtZW50QXNmbG9hdCk7CiAgICAgVmFsdWUqIHJlc3VsdEFzSW50NjQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYWJzVmFsdWUpOwog
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0QXNJbnQ2NCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdEFzSW50NjQpOwogCiAgICAgaW50MzJfdCBleHBlY3Rl
ZFJlc3VsdCA9IGJpdHdpc2VfY2FzdDxpbnQzMl90PihzdGF0aWNfY2FzdDxmbG9hdD4oZmFicyhh
KSkpOwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywg
Yml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgZXhwZWN0ZWRSZXN1bHQpKTsKQEAgLTM2MjYsNyAr
MzYzNCw3IEBAIHZvaWQgdGVzdEFic0FyZ1dpdGhVc2VsZXNzRG91YmxlQ29udmVyc2kKICAgICBW
YWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdpbigp
LCBhc0RvdWJsZSk7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICBWYWx1ZSog
cmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmln
aW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0so
aXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50
MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KGZhYnMo
YSkpKSkpOwogfQpAQCAtMzY0NCw3ICszNjUyLDcgQEAgdm9pZCB0ZXN0QWJzQXJnV2l0aEVmZmVj
dGZ1bERvdWJsZUNvbnZlcgogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CiAgICAgVmFs
dWUqIGRvdWJsZUFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CiAgICAgcm9vdC0+YXBwZW5kTmV3
PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgZG91YmxlQWRkcmVz
cyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBkb3VibGUgZWZmZWN0ID0gMDsKICAg
ICBpbnQzMl90IHJlc3VsdFZhbHVlID0gY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oYSksICZlZmZlY3QpOwpAQCAtMzY1Niw3ICszNjY0LDcgQEAgdm9p
ZCB0ZXN0Q2VpbEFyZyhkb3VibGUgYSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIENlaWwsIE9yaWdpbigpLApAQCAtMzY3MCw3ICszNjc4LDcgQEAgdm9p
ZCB0ZXN0Q2VpbEltbShkb3VibGUgYSkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3Qt
PmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBhcmd1bWVudCkpOwogCkBAIC0zNjgz
LDcgKzM2OTEsNyBAQCB2b2lkIHRlc3RDZWlsTWVtKGRvdWJsZSBhKQogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWREb3VibGUgPSByb290LT5hcHBlbmROZXc8TWVt
b3J5VmFsdWU+KHByb2MsIExvYWQsIERvdWJsZSwgT3JpZ2luKCksIGFkZHJlc3MpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBDZWlsLCBPcmlnaW4oKSwgbG9hZERvdWJsZSkpOwogCkBAIC0z
Njk3LDcgKzM3MDUsNyBAQCB2b2lkIHRlc3RDZWlsQ2VpbEFyZyhkb3VibGUgYSkKICAgICBWYWx1
ZSogZmlyc3RDZWlsID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDZWlsLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApKTsKICAgICBWYWx1ZSogc2Vjb25kQ2VpbCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCksIGZpcnN0Q2VpbCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
c2Vjb25kQ2VpbCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHNlY29uZENlaWwpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGls
ZUFuZFJ1bjxkb3VibGU+KHByb2MsIGEpLCBjZWlsKGEpKSk7CiB9CkBAIC0zNzA5LDcgKzM3MTcs
NyBAQCB2b2lkIHRlc3RGbG9vckNlaWxBcmcoZG91YmxlIGEpCiAgICAgVmFsdWUqIGZpcnN0Q2Vp
bCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5m
bzo6YXJndW1lbnRGUFIwKSk7CiAgICAgVmFsdWUqIHdyYXBwaW5nRmxvb3IgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgZmlyc3RDZWlsKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB3cmFwcGlu
Z0Zsb29yKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgd3JhcHBpbmdGbG9vcik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxl
QW5kUnVuPGRvdWJsZT4ocHJvYywgYSksIGNlaWwoYSkpKTsKIH0KQEAgLTM3MjEsNyArMzcyOSw3
IEBAIHZvaWQgdGVzdENlaWxJVG9ENjQoaW50NjRfdCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIwKTsKICAgICBWYWx1ZSogYXJndW1lbnRBc0RvdWJsZSA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGFyZ3VtZW50KTsKIAotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBDZWlsLCBPcmlnaW4oKSwgYXJndW1lbnRBc0RvdWJsZSkpOwog
CkBAIC0zNzM2LDcgKzM3NDQsNyBAQCB2b2lkIHRlc3RDZWlsSVRvRDMyKGludDY0X3QgYSkKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSogYXJndW1lbnRBc0RvdWJsZSA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGFyZ3VtZW50KTsKIAot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDZWlsLCBPcmlnaW4oKSwgYXJndW1lbnRBc0RvdWJs
ZSkpOwogCkBAIC0zNzUyLDcgKzM3NjAsNyBAQCB2b2lkIHRlc3RDZWlsQXJnKGZsb2F0IGEpCiAg
ICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNl
Q2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFs
dWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwg
T3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhp
c0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQz
Ml90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihjZWlsZihhKSkpKTsKIH0KQEAgLTM3NjQs
NyArMzc3Miw3IEBAIHZvaWQgdGVzdENlaWxJbW0oZmxvYXQgYSkKICAgICBWYWx1ZSogYXJndW1l
bnQgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7
CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwg
T3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQz
Mik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50
MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMy
X3Q+KGNlaWxmKGEpKSkpOwogfQpAQCAtMzc3Nyw3ICszNzg1LDcgQEAgdm9pZCB0ZXN0Q2VpbE1l
bShmbG9hdCBhKQogICAgIE1lbW9yeVZhbHVlKiBsb2FkRmxvYXQgPSByb290LT5hcHBlbmROZXc8
TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEZsb2F0LCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAg
VmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2lu
KCksIGxvYWRGbG9hdCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+
KHByb2MsICZhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGNlaWxmKGEpKSkpOwogfQpAQCAtMzc5
MSw3ICszNzk5LDcgQEAgdm9pZCB0ZXN0Q2VpbENlaWxBcmcoZmxvYXQgYSkKICAgICBWYWx1ZSog
YXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmln
aW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUqIGZpcnN0Q2VpbCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBWYWx1ZSogc2Vj
b25kQ2VpbCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCksIGZp
cnN0Q2VpbCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgc2Vjb25kQ2VpbCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZENlaWwpOwogCiAgICAgQ0hFQ0soaXNJZGVu
dGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEp
KSwgY2VpbGYoYSkpKTsKIH0KQEAgLTM4MDUsNyArMzgxMyw3IEBAIHZvaWQgdGVzdEZsb29yQ2Vp
bEFyZyhmbG9hdCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1ZSog
Zmlyc3RDZWlsID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDZWlsLCBPcmlnaW4oKSwg
YXJndW1lbnQpOwogICAgIFZhbHVlKiB3cmFwcGluZ0Zsb29yID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGZpcnN0Q2VpbCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgd3JhcHBpbmdGbG9vcik7
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHdyYXBwaW5nRmxvb3IpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxm
bG9hdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgY2VpbGYoYSkpKTsKIH0KQEAg
LTM4MjEsNyArMzgyOSw3IEBAIHZvaWQgdGVzdENlaWxBcmdXaXRoVXNlbGVzc0RvdWJsZUNvbnZl
cnMKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDZWls
LCBPcmlnaW4oKSwgYXNEb3VibGUpOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIHJlc3VsdCk7CiAg
ICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNl
Q2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAog
ICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lz
ZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGNlaWxmKGEpKSkpOwog
fQpAQCAtMzgzOSw3ICszODQ3LDcgQEAgdm9pZCB0ZXN0Q2VpbEFyZ1dpdGhFZmZlY3RmdWxEb3Vi
bGVDb252ZQogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CiAgICAgVmFsdWUqIGRvdWJs
ZUFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZh
bHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgZG91YmxlQWRkcmVzcyk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQzMik7CiAKICAgICBkb3VibGUgZWZmZWN0ID0gMDsKICAgICBpbnQzMl90
IHJlc3VsdFZhbHVlID0gY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4oYSksICZlZmZlY3QpOwpAQCAtMzg1MSw3ICszODU5LDcgQEAgdm9pZCB0ZXN0Rmxv
b3JBcmcoZG91YmxlIGEpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBGbG9vciwgT3JpZ2luKCksCkBAIC0zODY1LDcgKzM4NzMsNyBAQCB2b2lkIHRlc3RG
bG9vckltbShkb3VibGUgYSkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVu
ZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgYXJndW1lbnQpKTsKIApAQCAtMzg3OCw3ICsz
ODg2LDcgQEAgdm9pZCB0ZXN0Rmxvb3JNZW0oZG91YmxlIGEpCiAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIw
KTsKICAgICBNZW1vcnlWYWx1ZSogbG9hZERvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlW
YWx1ZT4ocHJvYywgTG9hZCwgRG91YmxlLCBPcmlnaW4oKSwgYWRkcmVzcyk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgbG9hZERvdWJsZSkpOwogCkBAIC0zODky
LDcgKzM5MDAsNyBAQCB2b2lkIHRlc3RGbG9vckZsb29yQXJnKGRvdWJsZSBhKQogICAgIFZhbHVl
KiBmaXJzdEZsb29yID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKSk7CiAgICAgVmFsdWUqIHNlY29uZEZsb29yID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGZpcnN0Rmxvb3Ip
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHNlY29uZEZsb29yKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kRmxvb3IpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwo
Y29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIGEpLCBmbG9vcihhKSkpOwogfQpAQCAtMzkwNCw3
ICszOTEyLDcgQEAgdm9pZCB0ZXN0Q2VpbEZsb29yQXJnKGRvdWJsZSBhKQogICAgIFZhbHVlKiBm
aXJzdEZsb29yID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKSk7CiAgICAgVmFsdWUqIHdyYXBwaW5nQ2VpbCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCksIGZpcnN0Rmxvb3IpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHdyYXBwaW5nQ2VpbCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHdyYXBwaW5nQ2VpbCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChj
b21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgYSksIGZsb29yKGEpKSk7CiB9CkBAIC0zOTE2LDcg
KzM5MjQsNyBAQCB2b2lkIHRlc3RGbG9vcklUb0Q2NChpbnQ2NF90IGEpCiAgICAgVmFsdWUqIGFy
Z3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFZhbHVlKiBhcmd1bWVudEFzRG91YmxlID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgYXJndW1lbnQpOwog
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgYXJndW1lbnRBc0Rv
dWJsZSkpOwogCkBAIC0zOTMxLDcgKzM5MzksNyBAQCB2b2lkIHRlc3RGbG9vcklUb0QzMihpbnQ2
NF90IGEpCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgVmFsdWUqIGFyZ3VtZW50QXNE
b3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBhcmd1
bWVudCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBhcmd1
bWVudEFzRG91YmxlKSk7CiAKQEAgLTM5NDcsNyArMzk1NSw3IEBAIHZvaWQgdGVzdEZsb29yQXJn
KGZsb2F0IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiByZXN1
bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgYXJndW1l
bnQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
Qml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwog
CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oZmxvb3JmKGEpKSkp
OwogfQpAQCAtMzk1OSw3ICszOTY3LDcgQEAgdm9pZCB0ZXN0Rmxvb3JJbW0oZmxvYXQgYSkKICAg
ICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHJlc3VsdDMy
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJl
c3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChj
b21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJp
dHdpc2VfY2FzdDxpbnQzMl90PihmbG9vcmYoYSkpKSk7CiB9CkBAIC0zOTcyLDcgKzM5ODAsNyBA
QCB2b2lkIHRlc3RGbG9vck1lbShmbG9hdCBhKQogICAgIE1lbW9yeVZhbHVlKiBsb2FkRmxvYXQg
PSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEZsb2F0LCBPcmlnaW4o
KSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgRmxvb3IsIE9yaWdpbigpLCBsb2FkRmxvYXQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1
bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29t
cGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCAmYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihmbG9v
cmYoYSkpKSk7CiB9CkBAIC0zOTg2LDcgKzM5OTQsNyBAQCB2b2lkIHRlc3RGbG9vckZsb29yQXJn
KGZsb2F0IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiBmaXJz
dEZsb29yID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGFy
Z3VtZW50KTsKICAgICBWYWx1ZSogc2Vjb25kRmxvb3IgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgZmlyc3RGbG9vcik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kRmxvb3IpOworICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNv
bmRGbG9vcik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihw
cm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBmbG9vcmYoYSkpKTsKIH0KQEAgLTQwMDAs
NyArNDAwOCw3IEBAIHZvaWQgdGVzdENlaWxGbG9vckFyZyhmbG9hdCBhKQogICAgIFZhbHVlKiBh
cmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdp
bigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1ZSogZmlyc3RGbG9vciA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHdy
YXBwaW5nQ2VpbCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCks
IGZpcnN0Rmxvb3IpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHdyYXBwaW5nQ2VpbCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHdyYXBwaW5nQ2VpbCk7CiAKICAgICBDSEVD
Syhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50
MzJfdD4oYSkpLCBmbG9vcmYoYSkpKTsKIH0KQEAgLTQwMTYsNyArNDAyNCw3IEBAIHZvaWQgdGVz
dEZsb29yQXJnV2l0aFVzZWxlc3NEb3VibGVDb252ZXIKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGFzRG91YmxlKTsKICAg
ICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJs
ZVRvRmxvYXQsIE9yaWdpbigpLCByZXN1bHQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3Vs
dCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21w
aWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdp
c2VfY2FzdDxpbnQzMl90PihmbG9vcmYoYSkpKSk7CiB9CkBAIC00MDM0LDcgKzQwNDIsNyBAQCB2
b2lkIHRlc3RGbG9vckFyZ1dpdGhFZmZlY3RmdWxEb3VibGVDb252CiAgICAgVmFsdWUqIHJlc3Vs
dDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCks
IGZsb2F0UmVzdWx0KTsKICAgICBWYWx1ZSogZG91YmxlQWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIx
KTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4o
KSwgcmVzdWx0LCBkb3VibGVBZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAg
IGRvdWJsZSBlZmZlY3QgPSAwOwogICAgIGludDMyX3QgcmVzdWx0VmFsdWUgPSBjb21waWxlQW5k
UnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgJmVmZmVjdCk7CkBA
IC00MDQ2LDcgKzQwNTQsNyBAQCB2b2lkIHRlc3RTcXJ0QXJnKGRvdWJsZSBhKQogewogICAgIFBy
b2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU3FydCwgT3JpZ2luKCksCkBA
IC00MDYwLDcgKzQwNjgsNyBAQCB2b2lkIHRlc3RTcXJ0SW1tKGRvdWJsZSBhKQogICAgIFByb2Nl
ZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAg
VmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBhKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3FydCwgT3JpZ2luKCks
IGFyZ3VtZW50KSk7CiAKQEAgLTQwNzMsNyArNDA4MSw3IEBAIHZvaWQgdGVzdFNxcnRNZW0oZG91
YmxlIGEpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1
ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBNZW1vcnlWYWx1ZSogbG9hZERvdWJs
ZSA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgRG91YmxlLCBPcmln
aW4oKSwgYWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFNxcnQsIE9yaWdpbigp
LCBsb2FkRG91YmxlKSk7CiAKQEAgLTQwODksNyArNDA5Nyw3IEBAIHZvaWQgdGVzdFNxcnRBcmco
ZmxvYXQgYSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUqIHJlc3Vs
dCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3FydCwgT3JpZ2luKCksIGFyZ3VtZW50
KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJp
dHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAog
ICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lz
ZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0PGZs
b2F0PihzcXJ0KGEpKSkpKTsKIH0KQEAgLTQxMDEsNyArNDEwOSw3IEBAIHZvaWQgdGVzdFNxcnRJ
bW0oZmxvYXQgYSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8Q29uc3RG
bG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3FydCwgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBW
YWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0
LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNL
KGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0PGZsb2F0PihzcXJ0
KGEpKSkpKTsKIH0KQEAgLTQxMTQsNyArNDEyMiw3IEBAIHZvaWQgdGVzdFNxcnRNZW0oZmxvYXQg
YSkKICAgICBNZW1vcnlWYWx1ZSogbG9hZEZsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZh
bHVlPihwcm9jLCBMb2FkLCBGbG9hdCwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBy
ZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFNxcnQsIE9yaWdpbigpLCBsb2Fk
RmxvYXQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIp
OwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCAm
YSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihzdGF0aWNfY2FzdDxmbG9hdD4oc3FydChhKSkpKSk7
CiB9CkBAIC00MTMwLDcgKzQxMzgsNyBAQCB2b2lkIHRlc3RTcXJ0QXJnV2l0aFVzZWxlc3NEb3Vi
bGVDb252ZXJzCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgU3FydCwgT3JpZ2luKCksIGFzRG91YmxlKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCByZXN1
bHQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
Qml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQz
Mik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2Ms
IGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihzdGF0aWNf
Y2FzdDxmbG9hdD4oc3FydChhKSkpKSk7CiB9CkBAIC00MTQ4LDcgKzQxNTYsNyBAQCB2b2lkIHRl
c3RTcXJ0QXJnV2l0aEVmZmVjdGZ1bERvdWJsZUNvbnZlCiAgICAgVmFsdWUqIHJlc3VsdDMyID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0
UmVzdWx0KTsKICAgICBWYWx1ZSogZG91YmxlQWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKICAg
ICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVz
dWx0LCBkb3VibGVBZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIGRvdWJs
ZSBlZmZlY3QgPSAwOwogICAgIGludDMyX3QgcmVzdWx0VmFsdWUgPSBjb21waWxlQW5kUnVuPGlu
dDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgJmVmZmVjdCk7CkBAIC00MTcy
LDcgKzQxODAsNyBAQCB2b2lkIHRlc3RDb21wYXJlVHdvRmxvYXRUb0RvdWJsZShmbG9hdCBhCiAg
ICAgVmFsdWUqIGFyZzJBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxv
YXRUb0RvdWJsZSwgT3JpZ2luKCksIGFyZzJGbG9hdCk7CiAgICAgVmFsdWUqIGVxdWFsID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBFcXVhbCwgT3JpZ2luKCksIGFyZzFBc0RvdWJsZSwg
YXJnMkFzRG91YmxlKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIGVxdWFsKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZXF1YWwpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFu
ZFJ1bjxpbnQ2NF90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2Fz
dDxpbnQzMl90PihiKSkgPT0gKGEgPT0gYikpOwogfQpAQCAtNDE5MCw3ICs0MTk4LDcgQEAgdm9p
ZCB0ZXN0Q29tcGFyZU9uZUZsb2F0VG9Eb3VibGUoZmxvYXQgYQogICAgIFZhbHVlKiBhcmcyQXNE
b3VibGUgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIGVxdWFsID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBFcXVhbCwgT3JpZ2luKCksIGFyZzFBc0RvdWJsZSwgYXJnMkFzRG91
YmxlKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIGVxdWFsKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgZXF1YWwpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2
NF90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGIpID09IChhID09IGIpKTsKIH0K
QEAgLTQyMTQsMjMgKzQyMjIsMjMgQEAgdm9pZCB0ZXN0Q29tcGFyZUZsb2F0VG9Eb3VibGVUaHJv
dWdoUGhpKAogICAgIFZhbHVlKiBhcmcyQXNGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIGFyZzJBc0RvdWJsZSk7CiAgICAgVmFsdWUq
IGFyZzJBc0ZSb3VuZGVkRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9h
dFRvRG91YmxlLCBPcmlnaW4oKSwgYXJnMkFzRmxvYXQpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICBjb25kaXRpb24sCiAgICAgICAgIEZy
ZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCiAg
ICAgVXBzaWxvblZhbHVlKiB0aGVuVmFsdWUgPSB0aGVuQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25W
YWx1ZT4ocHJvYywgT3JpZ2luKCksIGFyZzFBc0RvdWJsZSk7Ci0gICAgdGhlbkNhc2UtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2so
dGFpbCkpOworICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwg
T3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CiAKICAgICBWYWx1ZSogZWxzZUNvbnN0
ID0gZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
MC4pOwogICAgIFVwc2lsb25WYWx1ZSogZWxzZVZhbHVlID0gZWxzZUNhc2UtPmFwcGVuZE5ldzxV
cHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCBlbHNlQ29uc3QpOwotICAgIGVsc2VDYXNlLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJs
b2NrKHRhaWwpKTsKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1
bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOwogCiAgICAgVmFsdWUqIGRvdWJs
ZUlucHV0ID0gdGFpbC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBQaGksIERvdWJsZSwgT3JpZ2lu
KCkpOwogICAgIHRoZW5WYWx1ZS0+c2V0UGhpKGRvdWJsZUlucHV0KTsKICAgICBlbHNlVmFsdWUt
PnNldFBoaShkb3VibGVJbnB1dCk7CiAgICAgVmFsdWUqIGVxdWFsID0gdGFpbC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBFcXVhbCwgT3JpZ2luKCksIGRvdWJsZUlucHV0LCBhcmcyQXNGUm91bmRl
ZERvdWJsZSk7Ci0gICAgdGFpbC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgZXF1YWwpOworICAgIHRhaWwtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBlcXVhbCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHBy
b2MpOwogICAgIGludDMyX3QgaW50ZWdlckEgPSBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSk7CkBA
IC00MjYxLDcgKzQyNjksNyBAQCB2b2lkIHRlc3REb3VibGVUb0Zsb2F0VGhyb3VnaFBoaShmbG9h
dCB2CiAgICAgVmFsdWUqIGZsb2F0VmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUqIGFyZ0FzRG91
YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4o
KSwgZmxvYXRWYWx1ZSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3Jp
Z2luKCksCiAgICAgICAgIGNvbmRpdGlvbiwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5D
YXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CkBAIC00MjY5LDE3ICs0Mjc3LDE3IEBA
IHZvaWQgdGVzdERvdWJsZVRvRmxvYXRUaHJvdWdoUGhpKGZsb2F0IHYKICAgICBWYWx1ZSogcG9z
dGl0aXZlQ29uc3QgPSB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCA0Mi41Zik7CiAgICAgVmFsdWUqIHRoZW5BZGQgPSB0aGVuQ2FzZS0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBhcmdBc0RvdWJsZSwgcG9zdGl0aXZlQ29u
c3QpOwogICAgIFVwc2lsb25WYWx1ZSogdGhlblZhbHVlID0gdGhlbkNhc2UtPmFwcGVuZE5ldzxV
cHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCB0aGVuQWRkKTsKLSAgICB0aGVuQ2FzZS0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9j
ayh0YWlsKSk7CisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1w
LCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKIAogICAgIFZhbHVlKiBlbHNlQ29u
c3QgPSBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBNX1BJKTsKICAgICBVcHNpbG9uVmFsdWUqIGVsc2VWYWx1ZSA9IGVsc2VDYXNlLT5hcHBlbmRO
ZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgZWxzZUNvbnN0KTsKLSAgICBlbHNlQ2Fz
ZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50
ZWRCbG9jayh0YWlsKSk7CisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKIAogICAgIFZhbHVlKiBk
b3VibGVJbnB1dCA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBEb3VibGUsIE9y
aWdpbigpKTsKICAgICB0aGVuVmFsdWUtPnNldFBoaShkb3VibGVJbnB1dCk7CiAgICAgZWxzZVZh
bHVlLT5zZXRQaGkoZG91YmxlSW5wdXQpOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHRhaWwt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIGRvdWJsZUlu
cHV0KTsKLSAgICB0YWlsLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBmbG9hdFJlc3VsdCk7CisgICAgdGFpbC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKIAogICAgIGF1dG8gY29kZSA9IGNv
bXBpbGUocHJvYyk7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoaW52b2tlPGZsb2F0PigqY29kZSwg
MSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHZhbHVlKSksIHZhbHVlICsgNDIuNWYpKTsKQEAgLTQy
OTksMTggKzQzMDcsMTggQEAgdm9pZCB0ZXN0RG91YmxlUHJvZHVjZXJQaGlUb0Zsb2F0Q29udmVy
cwogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSkpOwogICAgIFZhbHVlKiBmbG9hdFZhbHVlID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50
MzIpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAg
ICAgICBjb25kaXRpb24sCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1
ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCiAgICAgVmFsdWUqIGFzRG91YmxlID0gdGhlbkNhc2Ut
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGZsb2F0VmFs
dWUpOwogICAgIFVwc2lsb25WYWx1ZSogdGhlblZhbHVlID0gdGhlbkNhc2UtPmFwcGVuZE5ldzxV
cHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhc0RvdWJsZSk7Ci0gICAgdGhlbkNhc2UtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxv
Y2sodGFpbCkpOworICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVt
cCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CiAKICAgICBWYWx1ZSogY29uc3RE
b3VibGUgPSBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdp
bigpLCA0Mi41KTsKICAgICBVcHNpbG9uVmFsdWUqIGVsc2VWYWx1ZSA9IGVsc2VDYXNlLT5hcHBl
bmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgY29uc3REb3VibGUpOwotICAgIGVs
c2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJl
cXVlbnRlZEJsb2NrKHRhaWwpKTsKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOwogCiAgICAgVmFs
dWUqIGRvdWJsZUlucHV0ID0gdGFpbC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBQaGksIERvdWJs
ZSwgT3JpZ2luKCkpOwogICAgIHRoZW5WYWx1ZS0+c2V0UGhpKGRvdWJsZUlucHV0KTsKQEAgLTQz
MTksNyArNDMyNyw3IEBAIHZvaWQgdGVzdERvdWJsZVByb2R1Y2VyUGhpVG9GbG9hdENvbnZlcnMK
ICAgICBWYWx1ZSogYXJnQXNEb3VibGVBZ2FpbiA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGZsb2F0VmFsdWUpOwogICAgIFZhbHVlKiBmaW5h
bEFkZCA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgZG91Ymxl
SW5wdXQsIGFyZ0FzRG91YmxlQWdhaW4pOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHRhaWwt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIGZpbmFsQWRk
KTsKLSAgICB0YWlsLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBmbG9hdFJlc3VsdCk7CisgICAgdGFpbC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBp
bGUocHJvYyk7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoaW52b2tlPGZsb2F0PigqY29kZSwgMSwg
Yml0d2lzZV9jYXN0PGludDMyX3Q+KHZhbHVlKSksIHZhbHVlICsgdmFsdWUpKTsKQEAgLTQzNDEs
MTggKzQzNDksMTggQEAgdm9pZCB0ZXN0RG91YmxlUHJvZHVjZXJQaGlUb0Zsb2F0Q29udmVycwog
ICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMSkpOwogICAgIFZhbHVlKiBmbG9hdFZhbHVlID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIp
OwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAg
ICBjb25kaXRpb24sCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50
ZWRCbG9jayhlbHNlQ2FzZSkpOwogCiAgICAgVmFsdWUqIGFzRG91YmxlID0gdGhlbkNhc2UtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGZsb2F0VmFsdWUp
OwogICAgIFVwc2lsb25WYWx1ZSogdGhlblZhbHVlID0gdGhlbkNhc2UtPmFwcGVuZE5ldzxVcHNp
bG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhc0RvdWJsZSk7Ci0gICAgdGhlbkNhc2UtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2so
dGFpbCkpOworICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwg
T3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CiAKICAgICBWYWx1ZSogY29uc3REb3Vi
bGUgPSBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigp
LCA0Mi41KTsKICAgICBVcHNpbG9uVmFsdWUqIGVsc2VWYWx1ZSA9IGVsc2VDYXNlLT5hcHBlbmRO
ZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgY29uc3REb3VibGUpOwotICAgIGVsc2VD
YXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVl
bnRlZEJsb2NrKHRhaWwpKTsKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOwogCiAgICAgVmFsdWUq
IGRvdWJsZUlucHV0ID0gdGFpbC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBQaGksIERvdWJsZSwg
T3JpZ2luKCkpOwogICAgIHRoZW5WYWx1ZS0+c2V0UGhpKGRvdWJsZUlucHV0KTsKQEAgLTQzNjgs
NyArNDM3Niw3IEBAIHZvaWQgdGVzdERvdWJsZVByb2R1Y2VyUGhpVG9GbG9hdENvbnZlcnMKICAg
ICAvLyBUaGlzIG9uZSAqY2Fubm90KiBiZSBlbGltaW5hdGVkCiAgICAgVmFsdWUqIGRvdWJsZUFk
ZCA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgZG91YmxlSW5w
dXQsIGRvdWJsZVJlc3VsdCk7CiAKLSAgICB0YWlsLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBkb3VibGVBZGQpOworICAgIHRhaWwtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBkb3VibGVBZGQpOwogCiAgICAgYXV0
byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBDSEVDSyhpc0lkZW50aWNhbChpbnZva2U8ZG91
YmxlPigqY29kZSwgMSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHZhbHVlKSksICh2YWx1ZSArIHZh
bHVlKSArIHN0YXRpY19jYXN0PGRvdWJsZT4odmFsdWUpKSk7CkBAIC00Mzg4LDE4ICs0Mzk2LDE4
IEBAIHZvaWQgdGVzdERvdWJsZVByb2R1Y2VyUGhpV2l0aE5vbkZsb2F0Q28KICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjEpKTsKICAgICBWYWx1ZSogZmxvYXRWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKIAotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgY29uZGl0aW9u
LAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxz
ZUNhc2UpKTsKIAogICAgIFZhbHVlKiBhc0RvdWJsZSA9IHRoZW5DYXNlLT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBmbG9hdFZhbHVlKTsKICAgICBVcHNp
bG9uVmFsdWUqIHRoZW5WYWx1ZSA9IHRoZW5DYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgYXNEb3VibGUpOwotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKKyAg
ICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBG
cmVxdWVudGVkQmxvY2sodGFpbCkpOwogCiAgICAgVmFsdWUqIGNvbnN0RG91YmxlID0gZWxzZUNh
c2UtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgY29uc3RWYWx1
ZSk7CiAgICAgVXBzaWxvblZhbHVlKiBlbHNlVmFsdWUgPSBlbHNlQ2FzZS0+YXBwZW5kTmV3PFVw
c2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGNvbnN0RG91YmxlKTsKLSAgICBlbHNlQ2FzZS0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRC
bG9jayh0YWlsKSk7CisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBK
dW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKIAogICAgIFZhbHVlKiBkb3Vi
bGVJbnB1dCA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBEb3VibGUsIE9yaWdp
bigpKTsKICAgICB0aGVuVmFsdWUtPnNldFBoaShkb3VibGVJbnB1dCk7CkBAIC00NDA4LDcgKzQ0
MTYsNyBAQCB2b2lkIHRlc3REb3VibGVQcm9kdWNlclBoaVdpdGhOb25GbG9hdENvCiAgICAgVmFs
dWUqIGFyZ0FzRG91YmxlQWdhaW4gPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0
VG9Eb3VibGUsIE9yaWdpbigpLCBmbG9hdFZhbHVlKTsKICAgICBWYWx1ZSogZmluYWxBZGQgPSB0
YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGRvdWJsZUlucHV0LCBh
cmdBc0RvdWJsZUFnYWluKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSB0YWlsLT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBmaW5hbEFkZCk7Ci0gICAg
dGFpbC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZmxv
YXRSZXN1bHQpOworICAgIHRhaWwtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2Mp
OwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGludm9rZTxmbG9hdD4oKmNvZGUsIDEsIGJpdHdpc2Vf
Y2FzdDxpbnQzMl90Pih2YWx1ZSkpLCB2YWx1ZSArIHZhbHVlKSk7CkBAIC00NDIxLDcgKzQ0Mjks
NyBAQCB2b2lkIHRlc3REb3VibGVBcmdUb0ludDY0Qml0d2lzZUNhc3QoZG91CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFy
Z3VtZW50RlBSMCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBC
aXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50KSk7CkBAIC00NDM1LDcgKzQ0NDMsNyBAQCB2
b2lkIHRlc3REb3VibGVJbW1Ub0ludDY0Qml0d2lzZUNhc3QoZG91CiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBl
bmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKTsKIAotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwg
YXJndW1lbnQpKTsKQEAgLTQ0NTAsNyArNDQ1OCw3IEBAIHZvaWQgdGVzdFR3b0JpdHdpc2VDYXN0
T25Eb3VibGUoZG91YmxlIHYKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7
CiAgICAgVmFsdWUqIGZpcnN0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNl
Q2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBWYWx1ZSogc2Vjb25kID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZpcnN0KTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNv
bmQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBzZWNvbmQpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3Vi
bGU+KHByb2MsIHZhbHVlKSwgdmFsdWUpKTsKIH0KQEAgLTQ0NjIsNyArNDQ3MCw3IEBAIHZvaWQg
dGVzdEJpdHdpc2VDYXN0T25Eb3VibGVJbk1lbW9yeShkb3UKICAgICBWYWx1ZSogYWRkcmVzcyA9
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIwKTsKICAgICBNZW1vcnlWYWx1ZSogbG9hZERvdWJsZSA9IHJvb3QtPmFw
cGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgRG91YmxlLCBPcmlnaW4oKSwgYWRkcmVz
cyk7CiAgICAgVmFsdWUqIGNhc3QgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdp
c2VDYXN0LCBPcmlnaW4oKSwgbG9hZERvdWJsZSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FzdCk7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNhc3QpOwogCiAgICAgQ0hF
Q0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAmdmFsdWUpLCBiaXR3
aXNlX2Nhc3Q8aW50NjRfdD4odmFsdWUpKSk7CiB9CkBAIC00NDc5LDcgKzQ0ODcsNyBAQCB2b2lk
IHRlc3RCaXR3aXNlQ2FzdE9uRG91YmxlSW5NZW1vcnlJbmRlCiAgICAgVmFsdWUqIGFkZHJlc3Mg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGJhc2UsIHNjYWxl
ZE9mZnNldCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWREb3VibGUgPSByb290LT5hcHBlbmROZXc8
TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIERvdWJsZSwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAg
IFZhbHVlKiBjYXN0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwg
T3JpZ2luKCksIGxvYWREb3VibGUpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNhc3QpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0KTsKIAogICAgIENIRUNLKGlzSWRl
bnRpY2FsKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgJnZhbHVlLCAwKSwgYml0d2lzZV9j
YXN0PGludDY0X3Q+KHZhbHVlKSkpOwogfQpAQCAtNDQ5MCw3ICs0NDk4LDcgQEAgdm9pZCB0ZXN0
SW50NjRCQXJnVG9Eb3VibGVCaXR3aXNlQ2FzdChpbgogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwog
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0d2lzZUNhc3QsIE9y
aWdpbigpLCBhcmd1bWVudCkpOwpAQCAtNDUwNCw3ICs0NTEyLDcgQEAgdm9pZCB0ZXN0SW50NjRC
SW1tVG9Eb3VibGVCaXR3aXNlQ2FzdChpbgogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQpKTsKQEAgLTQ1
MTksNyArNDUyNyw3IEBAIHZvaWQgdGVzdFR3b0JpdHdpc2VDYXN0T25JbnQ2NChpbnQ2NF90IHYK
ICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIGZpcnN0
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFy
Z3VtZW50KTsKICAgICBWYWx1ZSogc2Vjb25kID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZpcnN0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmQpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmQpOwogCiAg
ICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCB2YWx1ZSks
IHZhbHVlKSk7CiB9CkBAIC00NTMxLDcgKzQ1MzksNyBAQCB2b2lkIHRlc3RCaXR3aXNlQ2FzdE9u
SW50NjRJbk1lbW9yeShpbnQ2CiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7
CiAgICAgTWVtb3J5VmFsdWUqIGxvYWREb3VibGUgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFs
dWU+KHByb2MsIExvYWQsIEludDY0LCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIGNh
c3QgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwg
bG9hZERvdWJsZSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgY2FzdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIGNhc3QpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29t
cGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsICZ2YWx1ZSksIGJpdHdpc2VfY2FzdDxkb3VibGU+KHZh
bHVlKSkpOwogfQpAQCAtNDU0OCw3ICs0NTU2LDcgQEAgdm9pZCB0ZXN0Qml0d2lzZUNhc3RPbklu
dDY0SW5NZW1vcnlJbmRleAogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBiYXNlLCBzY2FsZWRPZmZzZXQpOwogICAgIE1lbW9y
eVZhbHVlKiBsb2FkRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBM
b2FkLCBJbnQ2NCwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBjYXN0ID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGxvYWREb3VibGUp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIGNhc3QpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBjYXN0KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48
ZG91YmxlPihwcm9jLCAmdmFsdWUsIDApLCBiaXR3aXNlX2Nhc3Q8ZG91YmxlPih2YWx1ZSkpKTsK
IH0KQEAgLTQ1NTksNyArNDU2Nyw3IEBAIHZvaWQgdGVzdEZsb2F0SW1tVG9JbnQzMkJpdHdpc2VD
YXN0KGZsb2EKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZh
bHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9y
aWdpbigpLCB2YWx1ZSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50KSk7CkBAIC00NTc0LDcgKzQ1ODIsNyBA
QCB2b2lkIHRlc3RCaXR3aXNlQ2FzdE9uRmxvYXRJbk1lbW9yeShmbG9hCiAgICAgVmFsdWUqIGFk
ZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWRGbG9hdCA9IHJv
b3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgRmxvYXQsIE9yaWdpbigpLCBh
ZGRyZXNzKTsKICAgICBWYWx1ZSogY2FzdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
Qml0d2lzZUNhc3QsIE9yaWdpbigpLCBsb2FkRmxvYXQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNhc3QpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0KTsKIAogICAg
IENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgJnZhbHVlKSwg
Yml0d2lzZV9jYXN0PGludDMyX3Q+KHZhbHVlKSkpOwogfQpAQCAtNDU4NSw3ICs0NTkzLDcgQEAg
dm9pZCB0ZXN0SW50MzJCQXJnVG9GbG9hdEJpdHdpc2VDYXN0KGludAogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjApOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0d2lz
ZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudCkpOwpAQCAtNDU5OSw3ICs0NjA3LDcgQEAgdm9pZCB0
ZXN0SW50MzJCSW1tVG9GbG9hdEJpdHdpc2VDYXN0KGludAogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3
PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKTsKIAotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQp
KTsKQEAgLTQ2MTQsNyArNDYyMiw3IEBAIHZvaWQgdGVzdFR3b0JpdHdpc2VDYXN0T25JbnQzMihp
bnQzMl90IHYKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFs
dWUqIGZpcnN0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3Jp
Z2luKCksIGFyZ3VtZW50KTsKICAgICBWYWx1ZSogc2Vjb25kID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZpcnN0KTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmQpOworICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNv
bmQpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9j
LCB2YWx1ZSksIHZhbHVlKSk7CiB9CkBAIC00NjI2LDcgKzQ2MzQsNyBAQCB2b2lkIHRlc3RCaXR3
aXNlQ2FzdE9uSW50MzJJbk1lbW9yeShpbnQzCiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWRGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxN
ZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50MzIsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBW
YWx1ZSogY2FzdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9y
aWdpbigpLCBsb2FkRmxvYXQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIGNhc3QpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0KTsKIAogICAgIENIRUNLKGlzSWRlbnRp
Y2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsICZ2YWx1ZSksIGJpdHdpc2VfY2FzdDxmbG9h
dD4odmFsdWUpKSk7CiB9CkBAIC00NjM3LDcgKzQ2NDUsNyBAQCB2b2lkIHRlc3RDb252ZXJ0RG91
YmxlVG9GbG9hdEFyZyhkb3VibGUgCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUq
IGFzRmxvYXQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9y
aWdpbigpLCBhcmd1bWVudCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgYXNGbG9hdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFzRmxvYXQpOwogCiAgICAgQ0hFQ0soaXNJ
ZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYywgdmFsdWUpLCBzdGF0aWNfY2FzdDxm
bG9hdD4odmFsdWUpKSk7CiB9CkBAIC00NjQ4LDcgKzQ2NTYsNyBAQCB2b2lkIHRlc3RDb252ZXJ0
RG91YmxlVG9GbG9hdEltbShkb3VibGUgCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3Vi
bGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKTsKICAgICBWYWx1ZSogYXNGbG9hdCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIGFyZ3Vt
ZW50KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBhc0Zsb2F0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgYXNGbG9hdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21w
aWxlQW5kUnVuPGZsb2F0Pihwcm9jKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlKSkpOwogfQpA
QCAtNDY2MCw3ICs0NjY4LDcgQEAgdm9pZCB0ZXN0Q29udmVydERvdWJsZVRvRmxvYXRNZW0oZG91
YmxlIAogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZh
bHVlKiBsb2FkZWREb3VibGUgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExv
YWQsIERvdWJsZSwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBhc0Zsb2F0ID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgbG9hZGVk
RG91YmxlKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBhc0Zsb2F0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgYXNGbG9hdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChj
b21waWxlQW5kUnVuPGZsb2F0Pihwcm9jLCAmdmFsdWUpLCBzdGF0aWNfY2FzdDxmbG9hdD4odmFs
dWUpKSk7CiB9CkBAIC00NjczLDcgKzQ2ODEsNyBAQCB2b2lkIHRlc3RDb252ZXJ0RmxvYXRUb0Rv
dWJsZUFyZyhmbG9hdCB2CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgVmFsdWUqIGZs
b2F0VmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmln
aW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUqIGFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNE
b3VibGUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBhc0RvdWJsZSk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVu
PGRvdWJsZT4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KHZhbHVlKSksIHN0YXRpY19jYXN0
PGRvdWJsZT4odmFsdWUpKSk7CiB9CkBAIC00Njg0LDcgKzQ2OTIsNyBAQCB2b2lkIHRlc3RDb252
ZXJ0RmxvYXRUb0RvdWJsZUltbShmbG9hdCB2CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8Q29uc3RG
bG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpOwogICAgIFZhbHVlKiBhc0RvdWJsZSA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGFy
Z3VtZW50KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBhc0RvdWJsZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIGFzRG91YmxlKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2Fs
KGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jKSwgc3RhdGljX2Nhc3Q8ZG91YmxlPih2YWx1ZSkp
KTsKIH0KQEAgLTQ2OTYsNyArNDcwNCw3IEBAIHZvaWQgdGVzdENvbnZlcnRGbG9hdFRvRG91Ymxl
TWVtKGZsb2F0IHYKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBN
ZW1vcnlWYWx1ZSogbG9hZGVkRmxvYXQgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHBy
b2MsIExvYWQsIEZsb2F0LCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIGFzRG91Ymxl
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwg
bG9hZGVkRmxvYXQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIGFzRG91YmxlKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNEb3VibGUpOwogCiAgICAgQ0hFQ0soaXNJZGVu
dGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsICZ2YWx1ZSksIHN0YXRpY19jYXN0PGRv
dWJsZT4odmFsdWUpKSk7CiB9CkBAIC00NzA5LDcgKzQ3MTcsNyBAQCB2b2lkIHRlc3RDb252ZXJ0
RG91YmxlVG9GbG9hdFRvRG91YmxlVG9GCiAgICAgVmFsdWUqIGFzRmxvYXQgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAg
ICAgVmFsdWUqIGFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRv
RG91YmxlLCBPcmlnaW4oKSwgYXNGbG9hdCk7CiAgICAgVmFsdWUqIGFzRmxvYXRBZ2FpbiA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIGFzRG91
YmxlKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBhc0Zsb2F0QWdhaW4pOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0Zsb2F0QWdhaW4pOwogCiAgICAgQ0hFQ0soaXNJZGVu
dGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYywgdmFsdWUpLCBzdGF0aWNfY2FzdDxmbG9h
dD4odmFsdWUpKSk7CiB9CkBAIC00NzI1LDcgKzQ3MzMsNyBAQCB2b2lkIHRlc3RMb2FkRmxvYXRD
b252ZXJ0RG91YmxlQ29udmVydEZsCiAgICAgVmFsdWUqIGFzRmxvYXRBZ2FpbiA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIGFzRG91YmxlKTsK
ICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwg
YXNGbG9hdEFnYWluLCBkc3QpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIDApKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIDApKTsKIAogICAgIGZsb2F0IGlucHV0ID0gdmFsdWU7CiAgICAgZmxvYXQgb3V0cHV0
ID0gMC47CkBAIC00NzQwLDcgKzQ3NDgsNyBAQCB2b2lkIHRlc3RGcm91bmRBcmcoZG91YmxlIHZh
bHVlKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSog
YXNGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3Jp
Z2luKCksIGFyZ3VtZW50KTsKICAgICBWYWx1ZSogYXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBhc0Zsb2F0KTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0RvdWJs
ZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIGFzRG91YmxlKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91
YmxlPihwcm9jLCB2YWx1ZSksIHN0YXRpY19jYXN0PGRvdWJsZT4oc3RhdGljX2Nhc3Q8ZmxvYXQ+
KHZhbHVlKSkpKTsKIH0KQEAgLTQ3NTMsNyArNDc2MSw3IEBAIHZvaWQgdGVzdEZyb3VuZE1lbShk
b3VibGUgdmFsdWUpCiAgICAgTWVtb3J5VmFsdWUqIGxvYWRlZERvdWJsZSA9IHJvb3QtPmFwcGVu
ZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgRG91YmxlLCBPcmlnaW4oKSwgYWRkcmVzcyk7
CiAgICAgVmFsdWUqIGFzRmxvYXQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJs
ZVRvRmxvYXQsIE9yaWdpbigpLCBsb2FkZWREb3VibGUpOwogICAgIFZhbHVlKiBhc0RvdWJsZSA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGFz
RmxvYXQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIGFzRG91YmxlKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgYXNEb3VibGUpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwo
Y29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsICZ2YWx1ZSksIHN0YXRpY19jYXN0PGRvdWJsZT4o
c3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlKSkpKTsKIH0KQEAgLTQ3NjQsNyArNDc3Miw3IEBAIHZv
aWQgdGVzdElUb0Q2NEFyZygpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKICAgICBWYWx1ZSogc3JjID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFZhbHVlKiBzcmNBc0Rv
dWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIHNyYyk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgc3JjQXNEb3VibGUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCBzcmNBc0RvdWJsZSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxl
KHByb2MpOwogICAgIGZvciAoYXV0byB0ZXN0VmFsdWUgOiBpbnQ2NE9wZXJhbmRzKCkpCkBAIC00
Nzc3LDcgKzQ3ODUsNyBAQCB2b2lkIHRlc3RJVG9GNjRBcmcoKQogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHNyYyA9IHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsK
ICAgICBWYWx1ZSogc3JjQXNGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRv
RiwgT3JpZ2luKCksIHNyYyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXQpOwogCiAgICAgYXV0
byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBmb3IgKGF1dG8gdGVzdFZhbHVlIDogaW50NjRP
cGVyYW5kcygpKQpAQCAtNDc5MSw3ICs0Nzk5LDcgQEAgdm9pZCB0ZXN0SVRvRDMyQXJnKCkKICAg
ICBWYWx1ZSogc3JjID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgVmFsdWUqIHNyY0FzRG91YmxlID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgc3JjKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNB
c0RvdWJsZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHNyY0FzRG91YmxlKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7
CiAgICAgZm9yIChhdXRvIHRlc3RWYWx1ZSA6IGludDMyT3BlcmFuZHMoKSkKQEAgLTQ4MDUsNyAr
NDgxMyw3IEBAIHZvaWQgdGVzdElUb0YzMkFyZygpCiAgICAgVmFsdWUqIHNyYyA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCkpOwogICAgIFZhbHVlKiBzcmNBc0Zsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBJVG9GLCBPcmlnaW4oKSwgc3JjKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0KTsKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdCk7CiAK
ICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIGZvciAoYXV0byB0ZXN0VmFsdWUg
OiBpbnQzMk9wZXJhbmRzKCkpCkBAIC00ODE5LDcgKzQ4MjcsNyBAQCB2b2lkIHRlc3RJVG9ENjRN
ZW0oKQogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZh
bHVlKiBsb2FkZWRTcmMgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQs
IEludDY0LCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIHNyY0FzRG91YmxlID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgbG9hZGVkU3JjKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBz
cmNBc0RvdWJsZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHNyY0FzRG91YmxlKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJv
Yyk7CiAgICAgaW50NjRfdCBpbk1lbW9yeVZhbHVlOwpAQCAtNDgzNyw3ICs0ODQ1LDcgQEAgdm9p
ZCB0ZXN0SVRvRjY0TWVtKCkKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsK
ICAgICBNZW1vcnlWYWx1ZSogbG9hZGVkU3JjID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVl
Pihwcm9jLCBMb2FkLCBJbnQ2NCwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBzcmNB
c0Zsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9GLCBPcmlnaW4oKSwgbG9h
ZGVkU3JjKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBzcmNBc0Zsb2F0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdCk7CiAKICAgICBhdXRvIGNvZGUgPSBj
b21waWxlKHByb2MpOwogICAgIGludDY0X3QgaW5NZW1vcnlWYWx1ZTsKQEAgLTQ4NTUsNyArNDg2
Myw3IEBAIHZvaWQgdGVzdElUb0QzMk1lbSgpCiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWRlZFNyYyA9IHJvb3QtPmFwcGVuZE5ldzxN
ZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50MzIsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBW
YWx1ZSogc3JjQXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9y
aWdpbigpLCBsb2FkZWRTcmMpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRG91YmxlKTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNEb3VibGUpOwogCiAgICAg
YXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBpbnQzMl90IGluTWVtb3J5VmFsdWU7CkBA
IC00ODczLDcgKzQ4ODEsNyBAQCB2b2lkIHRlc3RJVG9GMzJNZW0oKQogICAgIFZhbHVlKiBhZGRy
ZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkZWRTcmMgPSByb290
LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwgYWRk
cmVzcyk7CiAgICAgVmFsdWUqIHNyY0FzRmxvYXQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIElUb0YsIE9yaWdpbigpLCBsb2FkZWRTcmMpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXQpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0
KTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgaW50MzJfdCBpbk1lbW9y
eVZhbHVlOwpAQCAtNDg5MCw3ICs0ODk4LDcgQEAgdm9pZCB0ZXN0SVRvRDY0SW1tKGludDY0X3Qg
dmFsdWUpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1
ZSogc3JjID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZh
bHVlKTsKICAgICBWYWx1ZSogc3JjQXNGbG9hdGluZ1BvaW50ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgc3JjKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0aW5nUG9pbnQpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBz
cmNBc0Zsb2F0aW5nUG9pbnQpOwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48
ZG91YmxlPihwcm9jKSwgc3RhdGljX2Nhc3Q8ZG91YmxlPih2YWx1ZSkpKTsKIH0KIApAQCAtNDkw
MCw3ICs0OTA4LDcgQEAgdm9pZCB0ZXN0SVRvRjY0SW1tKGludDY0X3QgdmFsdWUpCiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogc3JjID0gcm9vdC0+
YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKTsKICAgICBWYWx1
ZSogc3JjQXNGbG9hdGluZ1BvaW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9G
LCBPcmlnaW4oKSwgc3JjKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0aW5nUG9pbnQpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0aW5nUG9p
bnQpOwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MpLCBz
dGF0aWNfY2FzdDxmbG9hdD4odmFsdWUpKSk7CiB9CiAKQEAgLTQ5MTAsNyArNDkxOCw3IEBAIHZv
aWQgdGVzdElUb0QzMkltbShpbnQzMl90IHZhbHVlKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHNyYyA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMy
VmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSk7CiAgICAgVmFsdWUqIHNyY0FzRmxvYXRpbmdQ
b2ludCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIHNyYyk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgc3JjQXNGbG9hdGluZ1BvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdGluZ1BvaW50KTsKICAgICBDSEVDSyhp
c0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYyksIHN0YXRpY19jYXN0PGRvdWJs
ZT4odmFsdWUpKSk7CiB9CiAKQEAgLTQ5MjAsNyArNDkyOCw3IEBAIHZvaWQgdGVzdElUb0YzMklt
bShpbnQzMl90IHZhbHVlKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
CiAgICAgVmFsdWUqIHNyYyA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCB2YWx1ZSk7CiAgICAgVmFsdWUqIHNyY0FzRmxvYXRpbmdQb2ludCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRiwgT3JpZ2luKCksIHNyYyk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdGlu
Z1BvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgc3JjQXNGbG9hdGluZ1BvaW50KTsKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21w
aWxlQW5kUnVuPGZsb2F0Pihwcm9jKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlKSkpOwogfQog
CkBAIC00OTMxLDcgKzQ5MzksNyBAQCB2b2lkIHRlc3RJVG9EUmVkdWNlZFRvSVRvRjY0QXJnKCkK
ICAgICBWYWx1ZSogc3JjID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFZhbHVlKiBzcmNBc0RvdWJs
ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIHNyYyk7CiAg
ICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3Vi
bGVUb0Zsb2F0LCBPcmlnaW4oKSwgc3JjQXNEb3VibGUpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZmxvYXRS
ZXN1bHQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBmb3IgKGF1dG8g
dGVzdFZhbHVlIDogaW50NjRPcGVyYW5kcygpKQpAQCAtNDk0Niw3ICs0OTU0LDcgQEAgdm9pZCB0
ZXN0SVRvRFJlZHVjZWRUb0lUb0YzMkFyZygpCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAg
ICAgVmFsdWUqIHNyY0FzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9E
LCBPcmlnaW4oKSwgc3JjKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBzcmNBc0RvdWJsZSk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
ZmxvYXRSZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHBy
b2MpOwogICAgIGZvciAoYXV0byB0ZXN0VmFsdWUgOiBpbnQzMk9wZXJhbmRzKCkpCkBAIC00OTY0
LDcgKzQ5NzIsNyBAQCB2b2lkIHRlc3RTdG9yZTMyKGludCB2YWx1ZSkKICAgICAgICAgICAgIHBy
b2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJnNsb3Qp
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBDSEVDSygh
Y29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIHZhbHVlKSk7CkBAIC00OTgwLDcgKzQ5ODgsNyBAQCB2
b2lkIHRlc3RTdG9yZUNvbnN0YW50KGludCB2YWx1ZSkKICAgICAgICAgcHJvYywgU3RvcmUsIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgdmFsdWUpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksICZzbG90KSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
MCkpOwogCiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50Pihwcm9jKSk7CkBAIC01MDAwLDcg
KzUwMDgsNyBAQCB2b2lkIHRlc3RTdG9yZUNvbnN0YW50UHRyKGludHB0cl90IHZhbHVlCiAgICAg
ICAgIHByb2MsIFN0b3JlLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0
UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJnNsb3QpKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ+
KHByb2MpKTsKQEAgLTUwMTgsNyArNTAyNiw3IEBAIHZvaWQgdGVzdFN0b3JlOEFyZygpCiAgICAg
ICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwogCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmU4LCBPcmlnaW4oKSwgdmFsdWUsIGFkZHJl
c3MpOwotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCB2YWx1ZSk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CiAKICAgICAgICAgaW50OF90IHN0b3JhZ2Ug
PSAwOwogICAgICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIDQyLCAmc3Rv
cmFnZSkgPT0gNDIpOwpAQCAtNTAzOSw3ICs1MDQ3LDcgQEAgdm9pZCB0ZXN0U3RvcmU4QXJnKCkK
ICAgICAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFk
ZCwgT3JpZ2luKCksIGJhc2VEaXNwbGFjZW1lbnQsIG9mZnNldCk7CiAKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZTgsIE9yaWdpbigpLCB2YWx1ZSwgYWRk
cmVzcyk7Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHZhbHVlKTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKIAogICAgICAgICBpbnQ4X3Qgc3RvcmFn
ZSA9IDA7CiAgICAgICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgNDIsICZz
dG9yYWdlLCAxKSA9PSA0Mik7CkBAIC01MDU3LDcgKzUwNjUsNyBAQCB2b2lkIHRlc3RTdG9yZThJ
bW0oKQogICAgICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKIAogICAgICAg
ICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlOCwgT3JpZ2luKCksIHZh
bHVlLCBhZGRyZXNzKTsKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOwogCiAgICAgICAgIGludDhf
dCBzdG9yYWdlID0gMDsKICAgICAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9j
LCAmc3RvcmFnZSkgPT0gNDIpOwpAQCAtNTA3Nyw3ICs1MDg1LDcgQEAgdm9pZCB0ZXN0U3RvcmU4
SW1tKCkKICAgICAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEFkZCwgT3JpZ2luKCksIGJhc2VEaXNwbGFjZW1lbnQsIG9mZnNldCk7CiAKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZTgsIE9yaWdpbigpLCB2YWx1
ZSwgYWRkcmVzcyk7Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKIAogICAgICAgICBpbnQ4X3Qg
c3RvcmFnZSA9IDA7CiAgICAgICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywg
JnN0b3JhZ2UsIDEpID09IDQyKTsKQEAgLTUxMjksNyArNTEzNyw3IEBAIHZvaWQgdGVzdFN0b3Jl
UGFydGlhbDhCaXRSZWdpc3Rlck9uWDg2KCkKICAgICAvLyBpZiB3ZSB1c2UgWDg2IHBhcnRpYWwg
cmVnaXN0ZXJzLgogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmU4
LCBPcmlnaW4oKSwgcGF0Y2hwb2ludCwgd2hlcmVUb1N0b3JlKTsKIAotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJldHVyblZhbHVlKTsK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmV0dXJuVmFsdWUpOwogCiAgICAgaW50OF90IHN0b3JhZ2UgPSAweGZmOwogICAgIENIRUNLKGNv
bXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgMHgxMjM0NTY3OGFiY2RlZjEyLCAmc3RvcmFnZSkg
PT0gMHgxMjM0NTY3OGFiY2RlZjEyKTsKQEAgLTUxNDcsNyArNTE1NSw3IEBAIHZvaWQgdGVzdFN0
b3JlMTZBcmcoKQogICAgICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKIAog
ICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlMTYsIE9yaWdp
bigpLCB2YWx1ZSwgYWRkcmVzcyk7Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKKyAgICAgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKIAogICAgICAg
ICBpbnQxNl90IHN0b3JhZ2UgPSAtMTsKICAgICAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2
NF90Pihwcm9jLCA0MiwgJnN0b3JhZ2UpID09IDQyKTsKQEAgLTUxNjgsNyArNTE3Niw3IEBAIHZv
aWQgdGVzdFN0b3JlMTZBcmcoKQogICAgICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYmFzZURpc3BsYWNlbWVudCwgb2Zmc2V0
KTsKIAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlMTYs
IE9yaWdpbigpLCB2YWx1ZSwgYWRkcmVzcyk7Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKKyAgICAgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKIAog
ICAgICAgICBpbnQxNl90IHN0b3JhZ2UgPSAtMTsKICAgICAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1
bjxpbnQ2NF90Pihwcm9jLCA0MiwgJnN0b3JhZ2UsIDEpID09IDQyKTsKQEAgLTUxODYsNyArNTE5
NCw3IEBAIHZvaWQgdGVzdFN0b3JlMTZJbW0oKQogICAgICAgICBWYWx1ZSogYWRkcmVzcyA9IHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKTsKIAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHBy
b2MsIFN0b3JlMTYsIE9yaWdpbigpLCB2YWx1ZSwgYWRkcmVzcyk7Ci0gICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKKyAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHZhbHVlKTsKIAogICAgICAgICBpbnQxNl90IHN0b3JhZ2UgPSAtMTsKICAgICAgICAgQ0hFQ0so
Y29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAmc3RvcmFnZSkgPT0gNDIpOwpAQCAtNTIwNiw3
ICs1MjE0LDcgQEAgdm9pZCB0ZXN0U3RvcmUxNkltbSgpCiAgICAgICAgIFZhbHVlKiBhZGRyZXNz
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBiYXNlRGlzcGxh
Y2VtZW50LCBvZmZzZXQpOwogCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4o
cHJvYywgU3RvcmUxNiwgT3JpZ2luKCksIHZhbHVlLCBhZGRyZXNzKTsKLSAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOwor
ICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgdmFsdWUpOwogCiAgICAgICAgIGludDE2X3Qgc3RvcmFnZSA9IC0xOwogICAgICAgICBDSEVD
Syhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsICZzdG9yYWdlLCAxKSA9PSA0Mik7CkBAIC01
MjE4LDcgKzUyMjYsNyBAQCB2b2lkIHRlc3RUcnVuYyhpbnQ2NF90IHZhbHVlKQogewogICAgIFBy
b2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLApA
QCAtNTIzMSw3ICs1MjM5LDcgQEAgdm9pZCB0ZXN0QWRkMShpbnQgdmFsdWUpCiB7CiAgICAgUHJv
Y2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAt
NTI0Nyw3ICs1MjU1LDcgQEAgdm9pZCB0ZXN0QWRkMVB0cihpbnRwdHJfdCB2YWx1ZSkKIHsKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCks
CkBAIC01MjYxLDcgKzUyNjksNyBAQCB2b2lkIHRlc3ROZWczMihpbnQzMl90IHZhbHVlKQogewog
ICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU3ViLCBPcmlnaW4o
KSwKQEAgLTUyNzcsNyArNTI4NSw3IEBAIHZvaWQgdGVzdE5lZ1B0cihpbnRwdHJfdCB2YWx1ZSkK
IHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFN1YiwgT3Jp
Z2luKCksCkBAIC01MzAyLDcgKzUzMTAsNyBAQCB2b2lkIHRlc3RTdG9yZUFkZExvYWQzMihpbnQg
YW1vdW50KQogICAgICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAg
ICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMCkpKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01MzIzLDcgKzUzMzEs
NyBAQCB2b2lkIHRlc3RTdG9yZUFkZExvYWRJbW0zMihpbnQgYW1vdW50KQogICAgICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2luKCks
IHNsb3RQdHIpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIGFtb3VudCkpLAogICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTUzNDYsNyArNTM1NCw3IEBA
IHZvaWQgdGVzdFN0b3JlQWRkTG9hZDgoaW50IGFtb3VudCwgQjM6Ok8KICAgICAgICAgICAgICAg
ICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjAp
KSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDApKTsKIApAQCAtNTM2Nyw3ICs1Mzc1LDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRM
b2FkSW1tOChpbnQgYW1vdW50LCBCMwogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9y
eVZhbHVlPihwcm9jLCBsb2FkT3Bjb2RlLCBPcmlnaW4oKSwgc2xvdFB0ciksCiAgICAgICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYW1vdW50KSks
CiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIDApKTsKIApAQCAtNTM5MCw3ICs1Mzk4LDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2Fk
MTYoaW50IGFtb3VudCwgQjM6OgogICAgICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4o
KSwKICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpKSwKICAgICAgICAgc2xvdFB0cik7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01
NDExLDcgKzU0MTksNyBAQCB2b2lkIHRlc3RTdG9yZUFkZExvYWRJbW0xNihpbnQgYW1vdW50LCBC
CiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIGxvYWRPcGNv
ZGUsIE9yaWdpbigpLCBzbG90UHRyKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhbW91bnQpKSwKICAgICAgICAgc2xvdFB0cik7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01NDMy
LDcgKzU0NDAsNyBAQCB2b2lkIHRlc3RTdG9yZUFkZExvYWQ2NChpbnQgYW1vdW50KQogICAgICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQ2NCwgT3Jp
Z2luKCksIHNsb3RQdHIpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAg
c2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkp
OwogCkBAIC01NDUzLDcgKzU0NjEsNyBAQCB2b2lkIHRlc3RTdG9yZUFkZExvYWRJbW02NChpbnQ2
NF90IGFtb3VuCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2Ms
IExvYWQsIEludDY0LCBPcmlnaW4oKSwgc2xvdFB0ciksCiAgICAgICAgICAgICByb290LT5hcHBl
bmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYW1vdW50KSksCiAgICAgICAgIHNs
b3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsK
IApAQCAtNTQ4NSw3ICs1NDkzLDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkMzJJbmRleChpbnQg
YW1vdW50KQogICAgICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAg
ICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMCkpKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01NTE1LDcgKzU1MjMs
NyBAQCB2b2lkIHRlc3RTdG9yZUFkZExvYWRJbW0zMkluZGV4KGludCBhbW91CiAgICAgICAgICAg
ICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4o
KSwgc2xvdFB0ciksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgYW1vdW50KSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNTU0Nyw3ICs1NTU1LDcg
QEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkOEluZGV4KGludCBhbW91bnQsIAogICAgICAgICAgICAg
ICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgICAgICByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BS
MCkpKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgMCkpOwogCkBAIC01NTc3LDcgKzU1ODUsNyBAQCB2b2lkIHRlc3RTdG9yZUFk
ZExvYWRJbW04SW5kZXgoaW50IGFtb3VuCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8TWVt
b3J5VmFsdWU+KHByb2MsIGxvYWRPcGNvZGUsIE9yaWdpbigpLCBzbG90UHRyKSwKICAgICAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhbW91bnQp
KSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgMCkpOwogCkBAIC01NjA5LDcgKzU2MTcsNyBAQCB2b2lkIHRlc3RTdG9yZUFkZExv
YWQxNkluZGV4KGludCBhbW91bnQsCiAgICAgICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdp
bigpLAogICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSkpLAogICAgICAgICBzbG90UHRy
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAg
LTU2MzksNyArNTY0Nyw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9hZEltbTE2SW5kZXgoaW50IGFt
b3UKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgbG9hZE9w
Y29kZSwgT3JpZ2luKCksIHNsb3RQdHIpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFtb3VudCkpLAogICAgICAgICBzbG90UHRyKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTU2
NjksNyArNTY3Nyw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9hZDY0SW5kZXgoaW50IGFtb3VudCkK
ICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50
NjQsIE9yaWdpbigpLCBzbG90UHRyKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAg
ICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDApKTsKIApAQCAtNTY5OSw3ICs1NzA3LDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkSW1t
NjRJbmRleChpbnQ2NF90IAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVl
Pihwcm9jLCBMb2FkLCBJbnQ2NCwgT3JpZ2luKCksIHNsb3RQdHIpLAogICAgICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFtb3VudCkpLAogICAg
ICAgICBzbG90UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCAwKSk7CiAKQEAgLTU3MjMsNyArNTczMSw3IEBAIHZvaWQgdGVzdFN0b3JlU3ViTG9hZChpbnQg
YW1vdW50KQogICAgICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAg
ICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMCkpKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01NzUwLDcgKzU3NTgs
NyBAQCB2b2lkIHRlc3RTdG9yZUFkZExvYWRJbnRlcmZlcmVuY2UoaW50IGFtCiAgICAgICAgICAg
ICBwcm9jLCBBZGQsIE9yaWdpbigpLAogICAgICAgICAgICAgbG9hZCwgcm9vdC0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFtb3VudCkpLAogICAgICAgICBzbG90UHRy
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAg
LTU3NzQsNyArNTc4Miw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkQW5kTG9hZChpbnQgYW1vdW50LCBp
bnQKICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgYW1vdW50KSksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgbWFzaykpLAogICAgICAgICBzbG90UHRyKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTU3OTksNyArNTgw
Nyw3IEBAIHZvaWQgdGVzdFN0b3JlTmVnTG9hZDMyKGludDMyX3QgdmFsdWUpCiAgICAgICAgICAg
ICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4o
KSwgc2xvdFB0cikpLAogICAgICAgICBzbG90UHRyKTsKICAgICAKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQzMl90
Pihwcm9jKSk7CkBAIC01ODIzLDcgKzU4MzEsNyBAQCB2b2lkIHRlc3RTdG9yZU5lZ0xvYWRQdHIo
aW50cHRyX3QgdmFsdWUpCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+
KHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLCBzbG90UHRyKSksCiAgICAgICAg
IHNsb3RQdHIpOwogICAgIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsK
IAogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MpKTsKQEAgLTU4MzQsNyAr
NTg0Miw3IEBAIHZvaWQgdGVzdEFkZDFVbmNvbW11dGVkKGludCB2YWx1ZSkKIHsKICAgICBQcm9j
ZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCkBAIC01
ODUyLDcgKzU4NjAsNyBAQCB2b2lkIHRlc3RMb2FkT2Zmc2V0KCkKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIGludCBhcnJheVtdID0geyAxLCAyIH07CiAgICAg
Q29uc3RQdHJWYWx1ZSogYXJyYXlQdHIgPSByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIGFycmF5KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAtNTg2OCw3ICs1ODc2LDcgQEAgdm9pZCB0ZXN0TG9h
ZE9mZnNldE5vdENvbnN0YW50KCkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwogICAgIGludCBhcnJheVtdID0geyAxLCAyIH07CiAgICAgVmFsdWUqIGFycmF5UHRyID0g
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IEFkZCwgT3JpZ2luKCksCkBAIC01ODg0LDcgKzU4OTIsNyBAQCB2b2lkIHRlc3RMb2FkT2Zmc2V0
VXNpbmdBZGQoKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAg
aW50IGFycmF5W10gPSB7IDEsIDIgfTsKICAgICBDb25zdFB0clZhbHVlKiBhcnJheVB0ciA9IHJv
b3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYXJyYXkpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCkBAIC01
OTI1LDcgKzU5MzMsNyBAQCB2b2lkIHRlc3RMb2FkT2Zmc2V0VXNpbmdBZGRJbnRlcmZlcmVuY2Uo
CiAgICAgICAgIHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgdGhlTnVtYmVyT2ZUaGVCZWFzdCwgb3Ro
ZXJBcnJheVB0ciwgMCk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAg
ICAgcHJvYywgU3RvcmUsIE9yaWdpbigpLCB0aGVOdW1iZXJPZlRoZUJlYXN0LCBvdGhlckFycmF5
UHRyLCBzaXplb2YoaW50KSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgQWRkLCBPcmlnaW4oKSwgbGVmdCwgcmlnaHQpKTsKQEAgLTU5NDEsNyArNTk0OSw3IEBAIHZv
aWQgdGVzdExvYWRPZmZzZXRVc2luZ0FkZE5vdENvbnN0YW50KCkKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIGludCBhcnJheVtdID0geyAxLCAyIH07CiAgICAg
VmFsdWUqIGFycmF5UHRyID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCkBAIC01OTc3LDcgKzU5ODUsNyBAQCB2
b2lkIHRlc3RMb2FkQWRkclNoaWZ0KHVuc2lnbmVkIHNoaWZ0KQogCiAgICAgKnNsb3QgPSA4Njc1
MzA5OwogICAgIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IExvYWQsIEludDMyLCBPcmlnaW4oKSwKQEAgLTU5OTMsNyArNjAwMSw3IEBAIHZvaWQgdGVzdEZy
YW1lUG9pbnRlcigpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRnJhbWVQb2lu
dGVyLCBPcmlnaW4oKSkpOwogCkBAIC02MDE2LDcgKzYwMjQsNyBAQCB2b2lkIHRlc3RPdmVycmlk
ZUZyYW1lUG9pbnRlcigpCiAgICAgICAgIFZhbHVlKiBmcCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgRnJhbWVQb2ludGVyLCBPcmlnaW4oKSk7CiAgICAgICAgIFZhbHVlKiByZXN1bHQg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIGZwLCBvZmZzZXQp
OwogCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogICAgICAgICBDSEVDSyhjb21waWxlQW5k
UnVuPGludDY0X3Q+KHByb2MsIDEpKTsKICAgICB9CiAgICAgewpAQCAtNjAzMiw3ICs2MDQwLDcg
QEAgdm9pZCB0ZXN0T3ZlcnJpZGVGcmFtZVBvaW50ZXIoKQogICAgICAgICBWYWx1ZSogb2Zmc2V0
QXJnID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBvZmZzZXQs
IGFyZyk7CiAgICAgICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEFkZCwgT3JpZ2luKCksIG9mZnNldEFyZywgb2Zmc2V0RlApOwogCi0gICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7
CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQpOwogICAgICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2Ms
IDEsIDIpKTsKICAgICB9CiB9CkBAIC02MDQxLDcgKzYwNDksNyBAQCB2b2lkIHRlc3RTdGFja1Ns
b3QoKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8U2xvdEJhc2VWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IHByb2MuYWRkU3RhY2tTbG90KDEpKSk7CiAKQEAgLTYwNTQsNyArNjA2Miw3IEBAIHZvaWQgdGVz
dExvYWRGcm9tRnJhbWVQb2ludGVyKCkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLApAQCAt
NjA4MSw3ICs2MDg5LDcgQEAgdm9pZCB0ZXN0U3RvcmVMb2FkU3RhY2tTbG90KGludCB2YWx1ZSkK
ICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIHN0YWNrKTsKICAgICAKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50MzIsIE9yaWdpbigpLCBzdGFj
aykpOwogCkBAIC02MTE2LDcgKzYxMjQsNyBAQCB2b2lkIHRlc3RMb2FkKEIzOjpPcGNvZGUgb3Bj
b2RlLCBJbnB1dFR5CiAgICAgICAgIFByb2NlZHVyZSBwcm9jOwogICAgICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgICAgICAKLSAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5h
cHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIG9wY29kZSwgdHlw
ZSwgT3JpZ2luKCksCkBAIC02MTMwLDcgKzYxMzgsNyBAQCB2b2lkIHRlc3RMb2FkKEIzOjpPcGNv
ZGUgb3Bjb2RlLCBJbnB1dFR5CiAgICAgICAgIFByb2NlZHVyZSBwcm9jOwogICAgICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgICAgICAKLSAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICBy
b290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIG9wY29k
ZSwgdHlwZSwgT3JpZ2luKCksCkBAIC02MTQ0LDcgKzYxNTIsNyBAQCB2b2lkIHRlc3RMb2FkKEIz
OjpPcGNvZGUgb3Bjb2RlLCBJbnB1dFR5CiAgICAgICAgIFByb2NlZHVyZSBwcm9jOwogICAgICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgICAgICAKLSAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
ICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2Ms
IG9wY29kZSwgdHlwZSwgT3JpZ2luKCksCkBAIC02MTU5LDcgKzYxNjcsNyBAQCB2b2lkIHRlc3RM
b2FkKEIzOjpPcGNvZGUgb3Bjb2RlLCBJbnB1dFR5CiAgICAgICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBv
cGNvZGUsIHR5cGUsIE9yaWdpbigpLApAQCAtNjE3OSw3ICs2MTg3LDcgQEAgdm9pZCB0ZXN0TG9h
ZChCMzo6T3Bjb2RlIG9wY29kZSwgSW5wdXRUeQogICAgICAgICBQcm9jZWR1cmUgcHJvYzsKICAg
ICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgICAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgb3Bj
b2RlLCB0eXBlLCBPcmlnaW4oKSwKQEAgLTYyMTksNyArNjIyNyw3IEBAIHZvaWQgdGVzdFN0b3Jl
RmxvYXQoZG91YmxlIGlucHV0KQogICAgICAgICBWYWx1ZSogZGVzdGluYXRpb25BZGRyZXNzID0g
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjApOwogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHBy
b2MsIFN0b3JlLCBPcmlnaW4oKSwgYXJndW1lbnRBc0Zsb2F0LCBkZXN0aW5hdGlvbkFkZHJlc3Mp
OwogCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAw
KSk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkp
OwogCiAgICAgICAgIGZsb2F0IG91dHB1dCA9IDAuOwogICAgICAgICBDSEVDSyghY29tcGlsZUFu
ZFJ1bjxpbnQ2NF90Pihwcm9jLCBpbnB1dCwgJm91dHB1dCkpOwpAQCAtNjI0Myw3ICs2MjUxLDcg
QEAgdm9pZCB0ZXN0U3RvcmVGbG9hdChkb3VibGUgaW5wdXQpCiAKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIGFyZ3VtZW50QXNGbG9h
dCwgZGVzdGluYXRpb25BZGRyZXNzKTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgICAgICBmbG9hdCBvdXRwdXQgPSAwLjsKICAg
ICAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgaW5wdXQsICZvdXRwdXQg
LSAxLCAxKSk7CkBAIC02MjYzLDcgKzYyNzEsNyBAQCB2b2lkIHRlc3RTdG9yZURvdWJsZUNvbnN0
YW50QXNGbG9hdChkb3ViCiAKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2Ms
IFN0b3JlLCBPcmlnaW4oKSwgdmFsdWVBc0Zsb2F0LCBkZXN0aW5hdGlvbkFkZHJlc3MpOwogCi0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGZsb2F0
IG91dHB1dCA9IDAuOwogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIGlu
cHV0LCAmb3V0cHV0KSk7CkBAIC02Mjg5LDcgKzYyOTcsNyBAQCB2b2lkIHRlc3RTcGlsbEdQKCkK
ICAgICBmb3IgKFZhbHVlKiB2YWx1ZSA6IHNvdXJjZXMpCiAgICAgICAgIHRvdGFsID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCB0b3RhbCwgdmFsdWUpOwogCi0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
dG90YWwpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCB0b3RhbCk7CiAgICAgY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIDEsIDIpOwogfQog
CkBAIC02MzEyLDcgKzYzMjAsNyBAQCB2b2lkIHRlc3RTcGlsbEZQKCkKICAgICBmb3IgKFZhbHVl
KiB2YWx1ZSA6IHNvdXJjZXMpCiAgICAgICAgIHRvdGFsID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBBZGQsIE9yaWdpbigpLCB0b3RhbCwgdmFsdWUpOwogCi0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdG90YWwpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB0b3RhbCk7
CiAgICAgY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIDEuMSwgMi41KTsKIH0KIApAQCAtNjMy
OCw3ICs2MzM2LDcgQEAgdm9pZCB0ZXN0SW50MzJUb0RvdWJsZVBhcnRpYWxSZWdpc3RlclN0YQog
ICAgIFZhbHVlKiBjb3VudGVyID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFVwc2lsb25WYWx1ZSog
b3JpZ2luYWxUb3RhbCA9IHJvb3QtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdp
bigpLCB0b3RhbCk7CiAgICAgVXBzaWxvblZhbHVlKiBvcmlnaW5hbENvdW50ZXIgPSByb290LT5h
cHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgY291bnRlcik7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50
ZWRCbG9jayhsb29wKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1
bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sobG9vcCkpOwogCiAgICAgLy8gTG9vcC4KICAg
ICBWYWx1ZSogbG9vcENvdW50ZXIgPSBsb29wLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFBoaSwg
SW50NjQsIE9yaWdpbigpKTsKQEAgLTYzNDUsMTMgKzYzNTMsMTMgQEAgdm9pZCB0ZXN0SW50MzJU
b0RvdWJsZVBhcnRpYWxSZWdpc3RlclN0YQogICAgIFZhbHVlKiBkZWNDb3VudGVyID0gbG9vcC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBsb29wQ291bnRlciwgbG9vcC0+
YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKICAgICBVcHNpbG9u
VmFsdWUqIGRlY0NvdW50ZXJVcHNpbG9uID0gbG9vcC0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4o
cHJvYywgT3JpZ2luKCksIGRlY0NvdW50ZXIpOwogICAgIGRlY0NvdW50ZXJVcHNpbG9uLT5zZXRQ
aGkobG9vcENvdW50ZXIpOwotICAgIGxvb3AtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IGxvb3AtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmln
aW4oKSwKICAgICAgICAgZGVjQ291bnRlciwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKGxvb3Ap
LCBGcmVxdWVudGVkQmxvY2soZG9uZSkpOwogCiAgICAgLy8gVGFpbC4KLSAgICBkb25lLT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB1cGRhdGVkVG90YWwp
OworICAgIGRvbmUtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCB1cGRhdGVkVG90YWwpOwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91
YmxlPihwcm9jLCAxMDAwMDApLCA1MDAwMDUwMDAwLikpOwogfQogCkBAIC02MzcxLDcgKzYzNzks
NyBAQCB2b2lkIHRlc3RJbnQzMlRvRG91YmxlUGFydGlhbFJlZ2lzdGVyV2l0CiAgICAgVmFsdWUq
IGZvclBhZGRpbmdJbnB1dEFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksICZmb3JQYWRkaW5nSW5wdXQpOwogICAgIHVpbnQ2NF90IGZvclBhZGRp
bmdPdXRwdXQ7CiAgICAgVmFsdWUqIGZvclBhZGRpbmdPdXRwdXRBZGRyZXNzID0gcm9vdC0+YXBw
ZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAmZm9yUGFkZGluZ091dHB1dCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCks
IEZyZXF1ZW50ZWRCbG9jayhsb29wKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sobG9vcCkpOwogCiAgICAgLy8g
TG9vcC4KICAgICBWYWx1ZSogbG9vcENvdW50ZXIgPSBsb29wLT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIFBoaSwgSW50NjQsIE9yaWdpbigpKTsKQEAgLTY0MDUsMTMgKzY0MTMsMTMgQEAgdm9pZCB0
ZXN0SW50MzJUb0RvdWJsZVBhcnRpYWxSZWdpc3RlcldpdAogICAgIFZhbHVlKiBkZWNDb3VudGVy
ID0gbG9vcC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBsb29wQ291bnRl
ciwgbG9vcC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKICAg
ICBVcHNpbG9uVmFsdWUqIGRlY0NvdW50ZXJVcHNpbG9uID0gbG9vcC0+YXBwZW5kTmV3PFVwc2ls
b25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGRlY0NvdW50ZXIpOwogICAgIGRlY0NvdW50ZXJVcHNp
bG9uLT5zZXRQaGkobG9vcENvdW50ZXIpOwotICAgIGxvb3AtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIGxvb3AtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJh
bmNoLCBPcmlnaW4oKSwKICAgICAgICAgZGVjQ291bnRlciwKICAgICAgICAgRnJlcXVlbnRlZEJs
b2NrKGxvb3ApLCBGcmVxdWVudGVkQmxvY2soZG9uZSkpOwogCiAgICAgLy8gVGFpbC4KLSAgICBk
b25lLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB1cGRh
dGVkVG90YWwpOworICAgIGRvbmUtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCB1cGRhdGVkVG90YWwpOwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVB
bmRSdW48ZG91YmxlPihwcm9jLCAxMDAwMDApLCA1MDAwMDUwMDAwLikpOwogfQogCkBAIC02NDIy
LDE4ICs2NDMwLDE4IEBAIHZvaWQgdGVzdEJyYW5jaCgpCiAgICAgQmFzaWNCbG9jayogdGhlbkNh
c2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFk
ZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBUcnVu
YywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICBGcmVx
dWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAg
IHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsK
IAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IDApKTsKIApAQCAtNjQ0OSwxNiArNjQ1NywxNiBAQCB2b2lkIHRlc3RCcmFuY2hQdHIoKQogICAg
IEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sq
IGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCksCiAgICAgICAgIEZy
ZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0g
ICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkp
OwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNl
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgMCkpOwogCkBAIC02NDc1LDcgKzY0ODMsNyBAQCB2b2lkIHRlc3REaWFtb25kKCkKICAgICBC
YXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBk
b25lID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFu
Y2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLApAQCAtNjQ4NCwxNiArNjQ5MiwxNiBAQCB2b2lkIHRl
c3REaWFtb25kKCkKIAogICAgIFVwc2lsb25WYWx1ZSogdGhlblJlc3VsdCA9IHRoZW5DYXNlLT5h
cHBlbmROZXc8VXBzaWxvblZhbHVlPigKICAgICAgICAgcHJvYywgT3JpZ2luKCksIHRoZW5DYXNl
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwotICAgIHRoZW5D
YXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVl
bnRlZEJsb2NrKGRvbmUpKTsKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZG9uZSkpOwogCiAgICAgVXBzaWxv
blZhbHVlKiBlbHNlUmVzdWx0ID0gZWxzZUNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KAog
ICAgICAgICBwcm9jLCBPcmlnaW4oKSwgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAwKSk7Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZG9uZSkpOworICAgIGVs
c2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1
ZW50ZWRCbG9jayhkb25lKSk7CiAKICAgICBWYWx1ZSogcGhpID0gZG9uZS0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBQaGksIEludDMyLCBPcmlnaW4oKSk7CiAgICAgdGhlblJlc3VsdC0+c2V0UGhp
KHBoaSk7CiAgICAgZWxzZVJlc3VsdC0+c2V0UGhpKHBoaSk7Ci0gICAgZG9uZS0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGhpKTsKKyAgICBkb25lLT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGhpKTsKIAogICAg
IGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgQ0hFQ0soaW52b2tlPGludD4oKmNvZGUs
IDQyKSA9PSAxKTsKQEAgLTY1MDcsNyArNjUxNSw3IEBAIHZvaWQgdGVzdEJyYW5jaE5vdEVxdWFs
KCkKICAgICBCYXNpY0Jsb2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNp
Y0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIE5vdEVxdWFsLCBPcmlnaW4oKSwKQEAgLTY1MTcsMTEgKzY1
MjUsMTEgQEAgdm9pZCB0ZXN0QnJhbmNoTm90RXF1YWwoKQogICAgICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKSwKICAgICAgICAgRnJlcXVl
bnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0
aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
dGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAK
LSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAw
KSk7CiAKQEAgLTY1MzcsNyArNjU0NSw3IEBAIHZvaWQgdGVzdEJyYW5jaE5vdEVxdWFsQ29tbXV0
ZSgpCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFz
aWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBOb3RFcXVhbCwgT3JpZ2luKCksCkBAIC02NTQ3LDExICs2
NTU1LDExIEBAIHZvaWQgdGVzdEJyYW5jaE5vdEVxdWFsQ29tbXV0ZSgpCiAgICAgICAgICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApKSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSks
IEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC02NTY3LDcgKzY1
NzUsNyBAQCB2b2lkIHRlc3RCcmFuY2hOb3RFcXVhbE5vdEVxdWFsKCkKICAgICBCYXNpY0Jsb2Nr
KiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9
IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIE5vdEVxdWFsLCBPcmlnaW4oKSwKQEAgLTY1ODAsMTEgKzY1ODgsMTEgQEAgdm9pZCB0ZXN0
QnJhbmNoTm90RXF1YWxOb3RFcXVhbCgpCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29u
c3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2so
dGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VD
YXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNl
Q2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAt
NjYwMCw3ICs2NjA4LDcgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWwoKQogICAgIEJhc2ljQmxvY2sq
IHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0g
cHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgRXF1YWwsIE9yaWdpbigpLApAQCAtNjYxMCwxMSArNjYxOCwxMSBAQCB2b2lkIHRlc3RCcmFu
Y2hFcXVhbCgpCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgMCkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVx
dWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIApAQCAtNjYzMCw3ICs2NjM4LDcg
QEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxFcXVhbCgpCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2Ug
PSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJs
b2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBFcXVhbCwg
T3JpZ2luKCksCkBAIC02NjQzLDExICs2NjUxLDExIEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsRXF1
YWwoKQogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIDApKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRl
ZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTY2NjMsNyArNjY3MSw3IEBAIHZv
aWQgdGVzdEJyYW5jaEVxdWFsQ29tbXV0ZSgpCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBw
cm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2Nr
KCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBFcXVhbCwgT3Jp
Z2luKCksCkBAIC02NjczLDExICs2NjgxLDExIEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsQ29tbXV0
ZSgpCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSksCiAgICAgICAgIEZyZXF1ZW50
ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhl
bkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRo
ZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCi0g
ICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkp
OwogCkBAIC02NjkzLDcgKzY3MDEsNyBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbEVxdWFsMSgpCiAg
ICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9j
ayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBFcXVhbCwgT3JpZ2luKCksCkBAIC02NzA2LDExICs2NzE0LDExIEBA
IHZvaWQgdGVzdEJyYW5jaEVxdWFsRXF1YWwxKCkKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSksCiAgICAgICAgIEZyZXF1ZW50ZWRC
bG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNh
c2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5D
YXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCi0gICAg
ZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwog
CkBAIC02NzI4LDcgKzY3MzYsNyBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVkQXJn
cyhkb3ViCiAKICAgICBWYWx1ZSogYXJndW1lbnRBID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50
UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZh
bHVlKiBhcmd1bWVudEIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAog
ICAgICAgICAgICAgcHJvYywgRXF1YWxPclVub3JkZXJlZCwgT3JpZ2luKCksCkBAIC02NzM2LDEx
ICs2NzQ0LDExIEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsT3JVbm9yZGVyZWRBcmdzKGRvdWIKICAg
ICAgICAgICAgIGFyZ3VtZW50QiksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSks
IEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xMykpOwogCkBAIC02NzYwLDcg
KzY3NjgsNyBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVkQXJncyhmbG9hCiAgICAg
VmFsdWUqIGFyZ3VtZW50QiA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9h
ZCwgRmxvYXQsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSkpOwogCi0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgRXF1YWxPclVub3JkZXJlZCwgT3JpZ2lu
KCksCkBAIC02NzY4LDExICs2Nzc2LDExIEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsT3JVbm9yZGVy
ZWRBcmdzKGZsb2EKICAgICAgICAgICAgIGFyZ3VtZW50QiksCiAgICAgICAgIEZyZXF1ZW50ZWRC
bG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNh
c2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5D
YXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpKTsKIAotICAg
IGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xMykp
OwogCkBAIC02Nzk3LDE2ICs2ODA1LDE2IEBAIHZvaWQgdGVzdEJyYW5jaE5vdEVxdWFsQW5kT3Jk
ZXJlZEFyZ3MoZG8KICAgICAgICAgcHJvYywgRXF1YWwsIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCksCiAgICAgICAgIGVx
dWFsT3JVbm9yZGVyZWQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmln
aW4oKSwKICAgICAgICAgbm90RXF1YWxBbmRPcmRlcmVkLAogICAgICAgICBGcmVxdWVudGVkQmxv
Y2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNl
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2Fz
ZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7CiAKLSAgICBl
bHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
ZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMTMpKTsK
IApAQCAtNjgzMywxNiArNjg0MSwxNiBAQCB2b2lkIHRlc3RCcmFuY2hOb3RFcXVhbEFuZE9yZGVy
ZWRBcmdzKGZsCiAgICAgICAgIHByb2MsIEVxdWFsLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApLAogICAgICAgICBlcXVh
bE9yVW5vcmRlcmVkKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2lu
KCksCiAgICAgICAgIG5vdEVxdWFsQW5kT3JkZXJlZCwKICAgICAgICAgRnJlcXVlbnRlZEJsb2Nr
KHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2Ut
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwogCi0gICAgZWxz
ZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVs
c2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTEzKSk7CiAK
QEAgLTY4NTksNyArNjg2Nyw3IEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsT3JVbm9yZGVyZWREb3Vi
bGVBcmcKIAogICAgIFZhbHVlKiBhcmd1bWVudEEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFs
dWUqIGFyZ3VtZW50QiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgYik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgRXF1
YWxPclVub3JkZXJlZCwgT3JpZ2luKCksCkBAIC02ODY3LDExICs2ODc1LDExIEBAIHZvaWQgdGVz
dEJyYW5jaEVxdWFsT3JVbm9yZGVyZWREb3VibGVBcmcKICAgICAgICAgICAgIGFyZ3VtZW50Qiks
CiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNl
Q2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRo
ZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgNDIpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIC0xMykpOwogCkBAIC02ODkwLDcgKzY4OTgsNyBAQCB2b2lkIHRlc3RC
cmFuY2hFcXVhbE9yVW5vcmRlcmVkRmxvYXRBcmdJCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7
CiAgICAgVmFsdWUqIGFyZ3VtZW50QiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+
KHByb2MsIE9yaWdpbigpLCBiKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNo
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIEVxdWFsT3JVbm9yZGVyZWQsIE9yaWdpbigpLApAQCAtNjg5OCwxMSArNjkwNiwxMSBA
QCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVkRmxvYXRBcmdJCiAgICAgICAgICAgICBh
cmd1bWVudEIpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVk
QmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMTMpKTsKIApAQCAtNjkxOSw3ICs2OTI3LDcgQEAg
dm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJlZERvdWJsZUltbQogCiAgICAgVmFsdWUqIGFy
Z3VtZW50QSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgYSk7CiAgICAgVmFsdWUqIGFyZ3VtZW50QiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJs
ZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBC
cmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgcHJvYywgRXF1YWxPclVub3JkZXJlZCwgT3JpZ2luKCksCkBAIC02OTI3LDExICs2OTM1
LDExIEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsT3JVbm9yZGVyZWREb3VibGVJbW0KICAgICAgICAg
ICAgIGFyZ3VtZW50QiksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1
ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xMykpOwogCkBAIC02OTQ5LDcgKzY5NTcs
NyBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVkRmxvYXRJbW1zCiAgICAgVmFsdWUq
IGFyZ3VtZW50QSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdp
bigpLCBhKTsKICAgICBWYWx1ZSogYXJndW1lbnRCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0Rmxv
YXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgRXF1YWxPclVub3JkZXJlZCwgT3JpZ2luKCksCkBAIC02OTU3LDExICs2
OTY1LDExIEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsT3JVbm9yZGVyZWRGbG9hdEltbXMKICAgICAg
ICAgICAgIGFyZ3VtZW50QiksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZy
ZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29u
c3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xMykpOwogCkBAIC02OTgzLDcgKzY5
OTEsNyBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVkRmxvYXRXaXRoCiAgICAgVmFs
dWUqIGFyZ3VtZW50MUFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9h
dFRvRG91YmxlLCBPcmlnaW4oKSwgYXJndW1lbnQxKTsKICAgICBWYWx1ZSogYXJndW1lbnQyQXNE
b3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdp
bigpLCBhcmd1bWVudDIpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgRXF1YWxPclVub3JkZXJlZCwgT3JpZ2luKCksCkBAIC02OTkxLDExICs2OTk5LDExIEBAIHZv
aWQgdGVzdEJyYW5jaEVxdWFsT3JVbm9yZGVyZWRGbG9hdFdpdGgKICAgICAgICAgICAgIGFyZ3Vt
ZW50MkFzRG91YmxlKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVl
bnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMy
VmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTEzKSk7CiAKQEAgLTcwMTAsMTYgKzcwMTgs
MTYgQEAgdm9pZCB0ZXN0QnJhbmNoRm9sZChpbnQgdmFsdWUpCiAgICAgQmFzaWNCbG9jayogdGhl
bkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9j
LmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCB2YWx1ZSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRC
bG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC03MDM0LDIzICs3MDQyLDIzIEBAIHZv
aWQgdGVzdERpYW1vbmRGb2xkKGludCB2YWx1ZSkKICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9
IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBkb25lID0gcHJvYy5hZGRCbG9jaygp
OwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpLAog
ICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNh
c2UpKTsKIAogICAgIFVwc2lsb25WYWx1ZSogdGhlblJlc3VsdCA9IHRoZW5DYXNlLT5hcHBlbmRO
ZXc8VXBzaWxvblZhbHVlPigKICAgICAgICAgcHJvYywgT3JpZ2luKCksIHRoZW5DYXNlLT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwotICAgIHRoZW5DYXNlLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJs
b2NrKGRvbmUpKTsKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1
bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZG9uZSkpOwogCiAgICAgVXBzaWxvblZhbHVl
KiBlbHNlUmVzdWx0ID0gZWxzZUNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KAogICAgICAg
ICBwcm9jLCBPcmlnaW4oKSwgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAwKSk7Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZG9uZSkpOworICAgIGVsc2VDYXNl
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRC
bG9jayhkb25lKSk7CiAKICAgICBWYWx1ZSogcGhpID0gZG9uZS0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBQaGksIEludDMyLCBPcmlnaW4oKSk7CiAgICAgdGhlblJlc3VsdC0+c2V0UGhpKHBoaSk7
CiAgICAgZWxzZVJlc3VsdC0+c2V0UGhpKHBoaSk7Ci0gICAgZG9uZS0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGhpKTsKKyAgICBkb25lLT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGhpKTsKIAogICAgIENIRUNL
KGNvbXBpbGVBbmRSdW48aW50Pihwcm9jKSA9PSAhIXZhbHVlKTsKIH0KQEAgLTcwNjIsNyArNzA3
MCw3IEBAIHZvaWQgdGVzdEJyYW5jaE5vdEVxdWFsRm9sZFB0cihpbnRwdHJfdCAKICAgICBCYXNp
Y0Jsb2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBlbHNl
Q2FzZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJh
bmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIE5vdEVxdWFsLCBPcmlnaW4oKSwKQEAgLTcwNzAsMTEgKzcwNzgsMTEgQEAgdm9p
ZCB0ZXN0QnJhbmNoTm90RXF1YWxGb2xkUHRyKGludHB0cl90IAogICAgICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSksCiAgICAgICAgIEZy
ZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0g
ICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkp
OwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNl
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgMCkpOwogCkBAIC03MDg4LDcgKzcwOTYsNyBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbEZvbGRQ
dHIoaW50cHRyX3QgdmFsCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2Nr
KCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBFcXVhbCwgT3JpZ2luKCksCkBAIC03
MDk2LDExICs3MTA0LDExIEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsRm9sZFB0cihpbnRwdHJfdCB2
YWwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmln
aW4oKSwgMCkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVk
QmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNzExNCwxOCArNzEyMiwxOCBAQCB2
b2lkIHRlc3RCcmFuY2hMb2FkUHRyKCkKICAgICBCYXNpY0Jsb2NrKiB0aGVuQ2FzZSA9IHByb2Mu
YWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsK
IAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgIHByb2MsIExvYWQsIHBv
aW50ZXJUeXBlKCksIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAg
ICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNl
KSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNh
c2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
ZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAwKSk7CiAKQEAgLTcxNDQsMTggKzcxNTIsMTggQEAgdm9pZCB0ZXN0QnJhbmNo
TG9hZDMyKCkKICAgICBCYXNpY0Jsb2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAg
ICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgIHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwK
ICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0
aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNh
c2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VD
YXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC03
MTc0LDE4ICs3MTgyLDE4IEBAIHZvaWQgdGVzdEJyYW5jaExvYWQ4UygpCiAgICAgQmFzaWNCbG9j
ayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2Ug
PSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBMb2FkOFMsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjAp
KSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVs
c2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
dGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTcyMDQsMTggKzcyMTIsMTggQEAgdm9pZCB0ZXN0
QnJhbmNoTG9hZDhaKCkKICAgICBCYXNpY0Jsb2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2so
KTsKICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgIHByb2MsIExvYWQ4WiwgT3JpZ2luKCks
CiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2so
dGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VD
YXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNl
Q2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAt
NzIzNCwxOCArNzI0MiwxOCBAQCB2b2lkIHRlc3RCcmFuY2hMb2FkMTZTKCkKICAgICBCYXNpY0Js
b2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2Fz
ZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNo
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIExvYWQxNlMsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2Nr
KGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTcyNjQsMTggKzcyNzIsMTggQEAgdm9pZCB0
ZXN0QnJhbmNoTG9hZDE2WigpCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJs
b2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkMTZaLCBPcmln
aW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIEZyZXF1ZW50ZWRC
bG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNh
c2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5D
YXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAg
ZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwog
CkBAIC03Mjk1LDcgKzczMDMsNyBAQCB2b2lkIHRlc3RCcmFuY2g4V2l0aExvYWQ4WkluZGV4KCkK
ICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKIAogICAgIGludCBs
b2dTY2FsZSA9IDE7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWJv
dmUsIE9yaWdpbigpLApAQCAtNzMxMSwxMSArNzMxOSwxMSBAQCB2b2lkIHRlc3RCcmFuY2g4V2l0
aExvYWQ4WkluZGV4KCkKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAyNTApKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNl
KSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTczNTcsNyAr
NzM2NSw3IEBAIHZvaWQgdGVzdENvbXBsZXgodW5zaWduZWQgbnVtVmFycywgdW5zaWcKICAgICAg
ICAgICAgIEJhc2ljQmxvY2sqIGVsc2VCbG9jayA9IHByb2MuYWRkQmxvY2soKTsKICAgICAgICAg
ICAgIEJhc2ljQmxvY2sqIGNvbnRpbnVhdGlvbiA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgICAg
ICAgICAgY3VycmVudC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgICAgICBjdXJy
ZW50LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICAgICAgcHJvYywgQnJhbmNo
LCBPcmlnaW4oKSwgdmFyc1twcmVkaWNhdGVWYXJJbmRleF0sCiAgICAgICAgICAgICAgICAgRnJl
cXVlbnRlZEJsb2NrKHRoZW5CbG9jayksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQmxvY2spKTsKIApA
QCAtNzM2NiwxNCArNzM3NCwxNCBAQCB2b2lkIHRlc3RDb21wbGV4KHVuc2lnbmVkIG51bVZhcnMs
IHVuc2lnCiAgICAgICAgICAgICAgICAgdGhlbkJsb2NrLT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEFkZCwgT3JpZ2luKCksIHZhcnNbdGhlbkluY1ZhckluZGV4XSwgb25lKSk7CiAgICAgICAgICAg
ICBVcHNpbG9uVmFsdWUqIHRoZW5FbHNlUmVzdWx0ID0gdGhlbkJsb2NrLT5hcHBlbmROZXc8VXBz
aWxvblZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgdmFyc1tlbHNlSW5j
VmFySW5kZXhdKTsKLSAgICAgICAgICAgIHRoZW5CbG9jay0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhjb250aW51YXRpb24pKTsK
KyAgICAgICAgICAgIHRoZW5CbG9jay0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAs
IE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soY29udGludWF0aW9uKSk7CiAKICAgICAgICAgICAg
IFVwc2lsb25WYWx1ZSogZWxzZUVsc2VSZXN1bHQgPSBlbHNlQmxvY2stPmFwcGVuZE5ldzxVcHNp
bG9uVmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLAogICAgICAgICAgICAg
ICAgIGVsc2VCbG9jay0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCB2YXJz
W2Vsc2VJbmNWYXJJbmRleF0sIG9uZSkpOwogICAgICAgICAgICAgVXBzaWxvblZhbHVlKiBlbHNl
VGhlblJlc3VsdCA9IGVsc2VCbG9jay0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4oCiAgICAgICAg
ICAgICAgICAgcHJvYywgT3JpZ2luKCksIHZhcnNbdGhlbkluY1ZhckluZGV4XSk7Ci0gICAgICAg
ICAgICBlbHNlQmxvY2stPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdp
bigpLCBGcmVxdWVudGVkQmxvY2soY29udGludWF0aW9uKSk7CisgICAgICAgICAgICBlbHNlQmxv
Y2stPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRl
ZEJsb2NrKGNvbnRpbnVhdGlvbikpOwogCiAgICAgICAgICAgICBWYWx1ZSogdGhlblBoaSA9IGNv
bnRpbnVhdGlvbi0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBQaGksIEludDMyLCBPcmlnaW4oKSk7
CiAgICAgICAgICAgICB0aGVuVGhlblJlc3VsdC0+c2V0UGhpKHRoZW5QaGkpOwpAQCAtNzM5OCw3
ICs3NDA2LDcgQEAgdm9pZCB0ZXN0Q29tcGxleCh1bnNpZ25lZCBudW1WYXJzLCB1bnNpZwogICAg
ICAgICAgICAgCiAgICAgICAgICAgICBWYWx1ZSogc3RhcnRJbmRleCA9IHZhcnNbKChpID4+IDEp
ICsgMSkgJSBudW1WYXJzXTsKICAgICAgICAgICAgIFZhbHVlKiBzdGFydFN1bSA9IGN1cnJlbnQt
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKTsKLSAgICAgICAgICAg
IGN1cnJlbnQtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICAgICAgY3VycmVudC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgICAgIHByb2MsIEJyYW5jaCwgT3Jp
Z2luKCksIHN0YXJ0SW5kZXgsCiAgICAgICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKGxvb3BF
bnRyeSksIEZyZXF1ZW50ZWRCbG9jayhsb29wU2tpcCkpOwogCkBAIC03NDA2LDcgKzc0MTQsNyBA
QCB2b2lkIHRlc3RDb21wbGV4KHVuc2lnbmVkIG51bVZhcnMsIHVuc2lnCiAgICAgICAgICAgICAg
ICAgcHJvYywgT3JpZ2luKCksIHN0YXJ0SW5kZXgpOwogICAgICAgICAgICAgVXBzaWxvblZhbHVl
KiBzdGFydFN1bUZvckJvZHkgPSBsb29wRW50cnktPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KAog
ICAgICAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLCBzdGFydFN1bSk7Ci0gICAgICAgICAgICBs
b29wRW50cnktPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBG
cmVxdWVudGVkQmxvY2sobG9vcEJvZHkpKTsKKyAgICAgICAgICAgIGxvb3BFbnRyeS0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sobG9v
cEJvZHkpKTsKIAogICAgICAgICAgICAgVmFsdWUqIGJvZHlJbmRleCA9IGxvb3BCb2R5LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIFBoaSwgSW50MzIsIE9yaWdpbigpKTsKICAgICAgICAgICAgIHN0
YXJ0SW5kZXhGb3JCb2R5LT5zZXRQaGkoYm9keUluZGV4KTsKQEAgLTc0MzEsMTkgKzc0MzksMTkg
QEAgdm9pZCB0ZXN0Q29tcGxleCh1bnNpZ25lZCBudW1WYXJzLCB1bnNpZwogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbG9vcEJvZHktPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2MsIE9yaWdpbigp
LCBudW1WYXJzIC0gMSkpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb29wQm9keS0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDIpKSkpKTsKLSAgICAgICAg
ICAgIGxvb3BCb2R5LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgICAgIGxvb3BC
b2R5LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICAgICAgcHJvYywgQnJhbmNo
LCBPcmlnaW4oKSwgbmV3Qm9keUluZGV4LAogICAgICAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9j
ayhsb29wUmVlbnRyeSksIEZyZXF1ZW50ZWRCbG9jayhsb29wRXhpdCkpOwogCiAgICAgICAgICAg
ICBsb29wUmVlbnRyeS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIG5l
d0JvZHlJbmRleCwgYm9keUluZGV4KTsKICAgICAgICAgICAgIGxvb3BSZWVudHJ5LT5hcHBlbmRO
ZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgbmV3Qm9keVN1bSwgYm9keVN1bSk7Ci0g
ICAgICAgICAgICBsb29wUmVlbnRyeS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVt
cCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhsb29wQm9keSkpOworICAgICAgICAgICAgbG9v
cFJlZW50cnktPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJl
cXVlbnRlZEJsb2NrKGxvb3BCb2R5KSk7CiAKICAgICAgICAgICAgIFVwc2lsb25WYWx1ZSogZXhp
dFN1bSA9IGxvb3BFeGl0LT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
bmV3Qm9keVN1bSk7Ci0gICAgICAgICAgICBsb29wRXhpdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhjb250aW51YXRpb24pKTsK
KyAgICAgICAgICAgIGxvb3BFeGl0LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwg
T3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhjb250aW51YXRpb24pKTsKIAogICAgICAgICAgICAg
VXBzaWxvblZhbHVlKiBza2lwU3VtID0gbG9vcFNraXAtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBzdGFydFN1bSk7Ci0gICAgICAgICAgICBsb29wU2tpcC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhj
b250aW51YXRpb24pKTsKKyAgICAgICAgICAgIGxvb3BTa2lwLT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhjb250aW51YXRpb24pKTsK
IAogICAgICAgICAgICAgVmFsdWUqIGZpbmFsU3VtID0gY29udGludWF0aW9uLT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIFBoaSwgSW50MzIsIE9yaWdpbigpKTsKICAgICAgICAgICAgIGV4aXRTdW0t
PnNldFBoaShmaW5hbFN1bSk7CkBAIC03NDU0LDcgKzc0NjIsNyBAQCB2b2lkIHRlc3RDb21wbGV4
KHVuc2lnbmVkIG51bVZhcnMsIHVuc2lnCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBjdXJyZW50
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YXJzWzBd
KTsKKyAgICBjdXJyZW50LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgdmFyc1swXSk7CiAKICAgICBjb21waWxlKHByb2MpOwogCkBAIC03NDgwLDcgKzc0ODgs
NyBAQCB2b2lkIHRlc3RTaW1wbGVQYXRjaHBvaW50KCkKICAgICAgICAgICAgIENIRUNLKHBhcmFt
c1syXS5pc0dQUigpKTsKICAgICAgICAgICAgIGFkZDMyKGppdCwgcGFyYW1zWzFdLmdwcigpLCBw
YXJhbXNbMl0uZ3ByKCksIHBhcmFtc1swXS5ncHIoKSk7CiAgICAgICAgIH0pOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9p
bnQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBwYXRjaHBvaW50KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAx
LCAyKSA9PSAzKTsKIH0KQEAgLTc1MTEsNyArNzUxOSw3IEBAIHZvaWQgdGVzdFNpbXBsZVBhdGNo
cG9pbnRXaXRob3V0T3VwdXRDbG8KICAgICAgICAgfSk7CiAKICAgICBWYWx1ZSogcmVzdWx0ID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBhcmcxLCBhcmcyKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2Ms
IDEsIDIpID09IDMpOwogfQpAQCAtNzU2MCw3ICs3NTY4LDcgQEAgdm9pZCB0ZXN0U2ltcGxlUGF0
Y2hwb2ludFdpdGhPdXB1dENsb2JiZQogCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBhcmcxLCBhcmcyKSk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAx
LCAyKSA9PSA1OCk7CiB9CkBAIC03NTkxLDcgKzc1OTksNyBAQCB2b2lkIHRlc3RTaW1wbGVQYXRj
aHBvaW50V2l0aG91dE91cHV0Q2xvCiAgICAgICAgIH0pOwogCiAgICAgVmFsdWUqIHJlc3VsdCA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYXJnMSwgYXJnMik7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48ZG91YmxlPihw
cm9jLCAxLjUsIDIuNSkgPT0gNCk7CiB9CkBAIC03NjMyLDcgKzc2NDAsNyBAQCB2b2lkIHRlc3RT
aW1wbGVQYXRjaHBvaW50V2l0aE91cHV0Q2xvYmJlCiAKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBwYXRjaHBvaW50LAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGFyZzEsIGFy
ZzIpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxkb3Vi
bGU+KHByb2MsIDEuNSwgMi41KSA9PSA1OS42KTsKIH0KQEAgLTc2NTcsNyArNzY2NSw3IEBAIHZv
aWQgdGVzdFBhdGNocG9pbnRXaXRoRWFybHlDbG9iYmVyKCkKICAgICAgICAgICAgICAgICBhZGQz
MihqaXQsIHBhcmFtc1sxXS5ncHIoKSwgcGFyYW1zWzJdLmdwcigpLCBwYXJhbXNbMF0uZ3ByKCkp
OwogICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CisgICAgICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsK
IAogICAgICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywgMSwgMikgPT0gMyk7CiAg
ICAgfTsKQEAgLTc2OTAsNyArNzY5OCw3IEBAIHZvaWQgdGVzdFBhdGNocG9pbnRDYWxsQXJnKCkK
ICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1l
UmVnaXN0ZXIsIHBhcmFtc1syXS5vZmZzZXRGcm9tRlAoKSksCiAgICAgICAgICAgICAgICAgcGFy
YW1zWzBdLmdwcigpKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOwog
CiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIDEsIDIpID09IDMpOwogfQpAQCAt
NzcxMyw3ICs3NzIxLDcgQEAgdm9pZCB0ZXN0UGF0Y2hwb2ludEZpeGVkUmVnaXN0ZXIoKQogICAg
ICAgICAgICAgQ0hFQ0socGFyYW1zWzJdID09IFZhbHVlUmVwKEdQUkluZm86OnJlZ1QxKSk7CiAg
ICAgICAgICAgICBhZGQzMihqaXQsIEdQUkluZm86OnJlZ1QwLCBHUFJJbmZvOjpyZWdUMSwgcGFy
YW1zWzBdLmdwcigpKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOwog
CiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIDEsIDIpID09IDMpOwogfQpAQCAt
NzczNyw3ICs3NzQ1LDcgQEAgdm9pZCB0ZXN0UGF0Y2hwb2ludEFueShWYWx1ZVJlcCByZXApCiAg
ICAgICAgICAgICBDSEVDSyhwYXJhbXNbMl0uaXNHUFIoKSk7CiAgICAgICAgICAgICBhZGQzMihq
aXQsIHBhcmFtc1sxXS5ncHIoKSwgcGFyYW1zWzJdLmdwcigpLCBwYXJhbXNbMF0uZ3ByKCkpOwog
ICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CiAKICAgICBDSEVDSyhjb21w
aWxlQW5kUnVuPGludD4ocHJvYywgMSwgMikgPT0gMyk7CiB9CkBAIC03NzczLDcgKzc3ODEsNyBA
QCB2b2lkIHRlc3RQYXRjaHBvaW50R1BTY3JhdGNoKCkKICAgICAgICAgICAgIENIRUNLKCFwYXJh
bXMudW5hdmFpbGFibGVSZWdpc3RlcnMoKS5nZXQocGFyYW1zLmdwU2NyYXRjaCgxKSkpOwogICAg
ICAgICAgICAgYWRkMzIoaml0LCBwYXJhbXNbMV0uZ3ByKCksIHBhcmFtc1syXS5ncHIoKSwgcGFy
YW1zWzBdLmdwcigpKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOwog
CiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIDEsIDIpID09IDMpOwogfQpAQCAt
NzgwMyw3ICs3ODExLDcgQEAgdm9pZCB0ZXN0UGF0Y2hwb2ludEZQU2NyYXRjaCgpCiAgICAgICAg
ICAgICBDSEVDSyghcGFyYW1zLnVuYXZhaWxhYmxlUmVnaXN0ZXJzKCkuZ2V0KHBhcmFtcy5mcFNj
cmF0Y2goMSkpKTsKICAgICAgICAgICAgIGFkZDMyKGppdCwgcGFyYW1zWzFdLmdwcigpLCBwYXJh
bXNbMl0uZ3ByKCksIHBhcmFtc1swXS5ncHIoKSk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBwYXRjaHBvaW50KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAxLCAy
KSA9PSAzKTsKIH0KQEAgLTc4NDUsNyArNzg1Myw3IEBAIHZvaWQgdGVzdFBhdGNocG9pbnRMb3Rz
T2ZMYXRlQW55cygpCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBwYXRjaHBvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVu
PGludD4ocHJvYykgPT0gKHRoaW5ncy5zaXplKCkgKiAodGhpbmdzLnNpemUoKSAtIDEpKSAvIDIp
OwogfQpAQCAtNzg3Myw3ICs3ODgxLDcgQEAgdm9pZCB0ZXN0UGF0Y2hwb2ludEFueUltbShWYWx1
ZVJlcCByZXApCiAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoc3Rh
dGljX2Nhc3Q8aW50MzJfdD4ocGFyYW1zWzJdLnZhbHVlKCkpKSwKICAgICAgICAgICAgICAgICBw
YXJhbXNbMV0uZ3ByKCksIHBhcmFtc1swXS5ncHIoKSk7CiAgICAgICAgIH0pOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9p
bnQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBwYXRjaHBvaW50KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAx
KSA9PSA0Myk7CiB9CkBAIC03ODk5LDcgKzc5MDcsNyBAQCB2b2lkIHRlc3RQYXRjaHBvaW50TWFu
eUltbXMoKQogICAgICAgICAgICAgQ0hFQ0socGFyYW1zWzJdID09IFZhbHVlUmVwOjpjb25zdGFu
dCg0MzAwMDAwMDAwMDAwMGxsKSk7CiAgICAgICAgICAgICBDSEVDSyhwYXJhbXNbM10gPT0gVmFs
dWVSZXA6OmNvbnN0YW50KGJpdHdpc2VfY2FzdDxpbnQ2NF90Pig0Mi41KSkpOwogICAgICAgICB9
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAg
LTc5MjUsNyArNzkzMyw3IEBAIHZvaWQgdGVzdFBhdGNocG9pbnRXaXRoUmVnaXN0ZXJSZXN1bHQo
KQogICAgICAgICAgICAgQ0hFQ0socGFyYW1zWzJdLmlzR1BSKCkpOwogICAgICAgICAgICAgYWRk
MzIoaml0LCBwYXJhbXNbMV0uZ3ByKCksIHBhcmFtc1syXS5ncHIoKSwgR1BSSW5mbzo6bm9uQXJn
R1BSMCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKIAogICAgIENI
RUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAxLCAyKSA9PSAzKTsKIH0KQEAgLTc5NTEsNyAr
Nzk1OSw3IEBAIHZvaWQgdGVzdFBhdGNocG9pbnRXaXRoU3RhY2tBcmd1bWVudFJlc3UKICAgICAg
ICAgICAgIGppdC5hZGQzMihwYXJhbXNbMV0uZ3ByKCksIHBhcmFtc1syXS5ncHIoKSwgaml0LnNj
cmF0Y2hSZWdpc3RlcigpKTsKICAgICAgICAgICAgIGppdC5zdG9yZTMyKGppdC5zY3JhdGNoUmVn
aXN0ZXIoKSwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVy
UmVnaXN0ZXIsIDApKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOwog
CiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIDEsIDIpID09IDMpOwogfQpAQCAt
Nzk4MCw3ICs3OTg4LDcgQEAgdm9pZCB0ZXN0UGF0Y2hwb2ludFdpdGhBbnlSZXN1bHQoKQogICAg
ICAgICAgICAgaml0LmNvbnZlcnRJbnQzMlRvRG91YmxlKEdQUkluZm86OnJlZ1QwLCBGUFJJbmZv
OjpmcFJlZ1QwKTsKICAgICAgICAgICAgIGppdC5zdG9yZURvdWJsZShGUFJJbmZvOjpmcFJlZ1Qw
LCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIHBhcmFt
c1swXS5vZmZzZXRGcm9tRlAoKSkpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hw
b2ludCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgMSwgMikgPT0g
Myk7CiB9CkBAIC04MDAyLDcgKzgwMTAsNyBAQCB2b2lkIHRlc3RTaW1wbGVDaGVjaygpCiAgICAg
ICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQo
KTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwog
CiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKQEAgLTgwMjEsNyArODAyOSw3IEBAIHZv
aWQgdGVzdENoZWNrRmFsc2UoKQogICAgICAgICBbJl0gKENDYWxsSGVscGVycyYsIGNvbnN0IFN0
YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsKICAgICAgICAgICAgIENIRUNLKCEiVGhpcyBzaG91
bGQgbm90IGhhdmUgZXhlY3V0ZWQiKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKQEAg
LTgwNDcsNyArODA1NSw3IEBAIHZvaWQgdGVzdENoZWNrVHJ1ZSgpCiAgICAgICAgICAgICBqaXQu
ZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAg
fSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgYXV0byBj
b2RlID0gY29tcGlsZShwcm9jKTsKQEAgLTgwNzgsNyArODA4Niw3IEBAIHZvaWQgdGVzdENoZWNr
TGVzc1RoYW4oKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAg
ICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDApKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CkBAIC04MTI0
LDcgKzgxMzIsNyBAQCB2b2lkIHRlc3RDaGVja01lZ2FDb21ibygpCiAgICAgICAgICAgICBqaXQu
ZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAg
fSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgYXV0byBj
b2RlID0gY29tcGlsZShwcm9jKTsKQEAgLTgxNzksNyArODE4Nyw3IEBAIHZvaWQgdGVzdENoZWNr
VHJpY2t5TWVnYUNvbWJvKCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgp
OwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwpA
QCAtODI0Myw3ICs4MjUxLDcgQEAgdm9pZCB0ZXN0Q2hlY2tUd29NZWdhQ29tYm9zKCkKICAgICAg
ICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgp
OwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAK
ICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwpAQCAtODI5Myw3ICs4MzAxLDcgQEAgdm9p
ZCB0ZXN0Q2hlY2tUd29Ob25SZWR1bmRhbnRNZWdhQ29tYm9zKAogICAgICAgICByb290LT5hcHBl
bmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQ4UywgT3JpZ2luKCksIHB0ciksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwogCi0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLCBicmFuY2hQcmVkaWNh
dGUsCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhl
bHNlQ2FzZSkpOwogICAgIApAQCAtODMwOSw3ICs4MzE3LDcgQEAgdm9pZCB0ZXN0Q2hlY2tUd29O
b25SZWR1bmRhbnRNZWdhQ29tYm9zKAogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxv
Z3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHRoZW5DYXNl
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB0aGVuQ2FzZS0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQzKSk7CiAKICAgICBDaGVja1ZhbHVl
KiBjaGVjazIgPSBlbHNlQ2FzZS0+YXBwZW5kTmV3PENoZWNrVmFsdWU+KHByb2MsIENoZWNrLCBP
cmlnaW4oKSwgY2hlY2tQcmVkaWNhdGUpOwpAQCAtODMyNCw3ICs4MzMyLDcgQEAgdm9pZCB0ZXN0
Q2hlY2tUd29Ob25SZWR1bmRhbnRNZWdhQ29tYm9zKAogICAgICAgICAgICAgaml0LmVtaXRGdW5j
dGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAg
IGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBlbHNlQ2Fz
ZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQ1KSk7CiAKICAgICBh
dXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwpAQCAtODM3OCw3ICs4Mzg2LDcgQEAgdm9pZCB0ZXN0
Q2hlY2tBZGRJbW0oKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAg
ICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tBZGQpKTsKIApAQCAtODQxNCw3ICs4NDIyLDcgQEAg
dm9pZCB0ZXN0Q2hlY2tBZGRJbW1Db21tdXRlKCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rp
b25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGNoZWNrQWRkKSk7CiAKQEAgLTg0
NDksNyArODQ1Nyw3IEBAIHZvaWQgdGVzdENoZWNrQWRkSW1tU29tZVJlZ2lzdGVyKCkKICAgICAg
ICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgp
OwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCks
IGNoZWNrQWRkKSk7CiAKQEAgLTg0ODYsNyArODQ5NCw3IEBAIHZvaWQgdGVzdENoZWNrQWRkKCkK
ICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0
LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3Jp
Z2luKCksIGNoZWNrQWRkKSk7CiAKQEAgLTg1MTksNyArODUyNyw3IEBAIHZvaWQgdGVzdENoZWNr
QWRkNjQoKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAg
ICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJ
VG9ELCBPcmlnaW4oKSwgY2hlY2tBZGQpKTsKIApAQCAtODU0Miw3ICs4NTUwLDcgQEAgdm9pZCB0
ZXN0Q2hlY2tBZGRGb2xkKGludCBhLCBpbnQgYikKICAgICAgICAgWyZdIChDQ2FsbEhlbHBlcnMm
LCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7CiAgICAgICAgICAgICBDSEVDSygh
IlNob3VsZCBoYXZlIGJlZW4gZm9sZGVkIik7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrQWRkKTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hl
Y2tBZGQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAtODU2Myw3ICs4
NTcxLDcgQEAgdm9pZCB0ZXN0Q2hlY2tBZGRGb2xkRmFpbChpbnQgYSwgaW50IGIpCiAgICAgICAg
ICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsK
ICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgY2hlY2tBZGQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja0FkZCk7CiAKICAgICBhdXRvIGNvZGUgPSBj
b21waWxlKHByb2MpOwogCkBAIC04NjAyLDcgKzg2MTAsNyBAQCB2b2lkIHRlc3RDaGVja0FkZEFy
Z3VtZW50QWxpYXNpbmc2NCgpCiAgICAgQ2hlY2tWYWx1ZSogY2hlY2tBZGQzID0gcm9vdC0+YXBw
ZW5kTmV3PENoZWNrVmFsdWU+KHByb2MsIENoZWNrQWRkLCBPcmlnaW4oKSwgY2hlY2tBZGQxLCBj
aGVja0FkZDIpOwogICAgIGNoZWNrQWRkMy0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJz
JiBqaXQsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsgaml0Lm9vcHMoKTsgfSk7
CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBjaGVja0FkZDMpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCBjaGVja0FkZDMpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxp
bnQ2NF90Pihwcm9jLCAxLCAyLCAzKSA9PSA4KTsKIH0KQEAgLTg2NDUsNyArODY1Myw3IEBAIHZv
aWQgdGVzdENoZWNrQWRkQXJndW1lbnRBbGlhc2luZzMyKCkKICAgICBDaGVja1ZhbHVlKiBjaGVj
a0FkZDMgPSByb290LT5hcHBlbmROZXc8Q2hlY2tWYWx1ZT4ocHJvYywgQ2hlY2tBZGQsIE9yaWdp
bigpLCBjaGVja0FkZDEsIGNoZWNrQWRkMik7CiAgICAgY2hlY2tBZGQzLT5zZXRHZW5lcmF0b3Io
WyZdIChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikg
eyBqaXQub29wcygpOyB9KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrQWRkMyk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrQWRkMyk7CiAKICAgICBDSEVD
Syhjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIDEsIDIsIDMpID09IDgpOwogfQpAQCAtODY3
MCw3ICs4Njc4LDcgQEAgdm9pZCB0ZXN0Q2hlY2tBZGRTZWxmT3ZlcmZsb3c2NCgpCiAgICAgb3Bh
cXVlVXNlLT5hcHBlbmQoQ29uc3RyYWluZWRWYWx1ZShhcmcsIFZhbHVlUmVwOjpTb21lUmVnaXN0
ZXIpKTsKICAgICBvcGFxdWVVc2UtPnNldEdlbmVyYXRvcihbJl0gKENDYWxsSGVscGVycyYsIGNv
bnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsgfSk7CiAKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja0FkZCk7CisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNr
QWRkKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKQEAgLTg3MDEsNyArODcw
OSw3IEBAIHZvaWQgdGVzdENoZWNrQWRkU2VsZk92ZXJmbG93MzIoKQogICAgIG9wYXF1ZVVzZS0+
YXBwZW5kKENvbnN0cmFpbmVkVmFsdWUoYXJnLCBWYWx1ZVJlcDo6U29tZVJlZ2lzdGVyKSk7CiAg
ICAgb3BhcXVlVXNlLT5zZXRHZW5lcmF0b3IoWyZdIChDQ2FsbEhlbHBlcnMmLCBjb25zdCBTdGFj
a21hcEdlbmVyYXRpb25QYXJhbXMmKSB7IH0pOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tBZGQpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja0FkZCk7CiAK
ICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC04NzM0LDcgKzg3NDIsNyBAQCB2
b2lkIHRlc3RDaGVja1N1YkltbSgpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9n
dWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVja1N1YikpOwogCkBAIC04Nzc2LDcgKzg3
ODQsNyBAQCB2b2lkIHRlc3RDaGVja1N1YkJhZEltbSgpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1
bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVja1N1YikpOwogCkBA
IC04ODEzLDcgKzg4MjEsNyBAQCB2b2lkIHRlc3RDaGVja1N1YigpCiAgICAgICAgICAgICBqaXQu
ZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAg
fSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVja1N1Yikp
OwogCkBAIC04ODUxLDcgKzg4NTksNyBAQCB2b2lkIHRlc3RDaGVja1N1YjY0KCkKICAgICAgICAg
ICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwog
ICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGNo
ZWNrU3ViKSk7CiAKQEAgLTg4NzQsNyArODg4Miw3IEBAIHZvaWQgdGVzdENoZWNrU3ViRm9sZChp
bnQgYSwgaW50IGIpCiAgICAgICAgIFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBH
ZW5lcmF0aW9uUGFyYW1zJikgewogICAgICAgICAgICAgQ0hFQ0soISJTaG91bGQgaGF2ZSBiZWVu
IGZvbGRlZCIpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja1N1Yik7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrU3ViKTsKIAogICAgIGF1
dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKQEAgLTg4OTUsNyArODkwMyw3IEBAIHZvaWQgdGVz
dENoZWNrU3ViRm9sZEZhaWwoaW50IGEsIGludCBiKQogICAgICAgICAgICAgaml0LmVtaXRGdW5j
dGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNo
ZWNrU3ViKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgY2hlY2tTdWIpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApA
QCAtODkyMiw3ICs4OTMwLDcgQEAgdm9pZCB0ZXN0Q2hlY2tOZWcoKQogICAgICAgICAgICAgaml0
LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAg
IH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tOZWcp
KTsKIApAQCAtODk1Miw3ICs4OTYwLDcgQEAgdm9pZCB0ZXN0Q2hlY2tOZWc2NCgpCiAgICAgICAg
ICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsK
ICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBj
aGVja05lZykpOwogCkBAIC04OTg5LDcgKzg5OTcsNyBAQCB2b2lkIHRlc3RDaGVja011bCgpCiAg
ICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5y
ZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdp
bigpLCBjaGVja011bCkpOwogCkBAIC05MDMwLDcgKzkwMzgsNyBAQCB2b2lkIHRlc3RDaGVja011
bE1lbW9yeSgpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAg
ICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IElUb0QsIE9yaWdpbigpLCBjaGVja011bCkpOwogCkBAIC05MDc3LDcgKzkwODUsNyBAQCB2b2lk
IHRlc3RDaGVja011bDIoKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7
CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tNdWwpKTsKIApAQCAtOTExMCw3ICs5MTE4LDcg
QEAgdm9pZCB0ZXN0Q2hlY2tNdWw2NCgpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBp
bG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVja011bCkpOwogCkBAIC05MTMzLDcg
KzkxNDEsNyBAQCB2b2lkIHRlc3RDaGVja011bEZvbGQoaW50IGEsIGludCBiKQogICAgICAgICBb
Jl0gKENDYWxsSGVscGVycyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsKICAg
ICAgICAgICAgIENIRUNLKCEiU2hvdWxkIGhhdmUgYmVlbiBmb2xkZWQiKTsKICAgICAgICAgfSk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgY2hlY2tNdWwpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBjaGVja011bCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2Mp
OwogCkBAIC05MTU0LDcgKzkxNjIsNyBAQCB2b2lkIHRlc3RDaGVja011bEZvbGRGYWlsKGludCBh
LCBpbnQgYikKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAg
ICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja011bCk7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrTXVsKTsKIAog
ICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKQEAgLTkxOTMsNyArOTIwMSw3IEBAIHZv
aWQgdGVzdENoZWNrTXVsQXJndW1lbnRBbGlhc2luZzY0KCkKICAgICBDaGVja1ZhbHVlKiBjaGVj
a011bDMgPSByb290LT5hcHBlbmROZXc8Q2hlY2tWYWx1ZT4ocHJvYywgQ2hlY2tNdWwsIE9yaWdp
bigpLCBjaGVja011bDEsIGNoZWNrTXVsMik7CiAgICAgY2hlY2tNdWwzLT5zZXRHZW5lcmF0b3Io
WyZdIChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikg
eyBqaXQub29wcygpOyB9KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrTXVsMyk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrTXVsMyk7CiAKICAgICBDSEVD
Syhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIDIsIDMsIDQpID09IDcyKTsKIH0KQEAgLTky
MzYsNyArOTI0NCw3IEBAIHZvaWQgdGVzdENoZWNrTXVsQXJndW1lbnRBbGlhc2luZzMyKCkKICAg
ICBDaGVja1ZhbHVlKiBjaGVja011bDMgPSByb290LT5hcHBlbmROZXc8Q2hlY2tWYWx1ZT4ocHJv
YywgQ2hlY2tNdWwsIE9yaWdpbigpLCBjaGVja011bDEsIGNoZWNrTXVsMik7CiAgICAgY2hlY2tN
dWwzLT5zZXRHZW5lcmF0b3IoWyZdIChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU3RhY2ttYXBH
ZW5lcmF0aW9uUGFyYW1zJikgeyBqaXQub29wcygpOyB9KTsKIAotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrTXVsMyk7CisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNr
TXVsMyk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIDIsIDMsIDQp
ID09IDcyKTsKIH0KQEAgLTkyNjgsNyArOTI3Niw3IEBAIHZvaWQgdGVzdENoZWNrTXVsNjRTU2hy
KCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAg
aml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwg
T3JpZ2luKCksIGNoZWNrTXVsKSk7CiAKQEAgLTkyOTQsNyArOTMwMiw3IEBAIHZvaWQgZ2VuZXJp
Y1Rlc3RDb21wYXJlKAogICAgICAgICBWYWx1ZSogcmlnaHRWYWx1ZSA9IHJpZ2h0RnVuY3Rvcihy
b290LCBwcm9jKTsKICAgICAgICAgVmFsdWUqIGNvbXBhcmlzb25SZXN1bHQgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIG9wY29kZSwgT3JpZ2luKCksIGxlZnRWYWx1ZSwgcmlnaHRWYWx1
ZSk7CiAgICAgICAgIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICAgICAgcHJvYywgTm90RXF1YWwsIE9yaWdpbigpLApAQCAtOTMxNCw3ICs5MzIyLDcg
QEAgdm9pZCBnZW5lcmljVGVzdENvbXBhcmUoCiAgICAgICAgIFZhbHVlKiBsZWZ0VmFsdWUgPSBs
ZWZ0RnVuY3Rvcihyb290LCBwcm9jKTsKICAgICAgICAgVmFsdWUqIHJpZ2h0VmFsdWUgPSByaWdo
dEZ1bmN0b3Iocm9vdCwgcHJvYyk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAg
IHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIG9wY29kZSwgT3JpZ2luKCksIGxlZnRWYWx1ZSwgcmlnaHRWYWx1ZSksCiAgICAg
ICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNh
c2UpKTsKQEAgLTkzMjgsOSArOTMzNiw5IEBAIHZvaWQgZ2VuZXJpY1Rlc3RDb21wYXJlKAogICAg
ICAgICAgICAgICAgIENIRUNLKHBhcmFtc1swXS5pc0dQUigpKTsKICAgICAgICAgICAgICAgICBq
aXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigxKSwgcGFyYW1zWzBdLmdwcigpKTsK
ICAgICAgICAgICAgIH0pOwotICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CisgICAgICAgIHRoZW5DYXNl
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2lu
dCk7CiAKLSAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAg
ICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC05NTY5LDcgKzk1NzcsNyBAQCB2b2lkIHRl
c3RFcXVhbERvdWJsZShkb3VibGUgbGVmdCwgZG91YmxlCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBFcXVhbCwgT3JpZ2luKCksCkBAIC05NTg4LDcgKzk1
OTYsNyBAQCB2b2lkIHRlc3RDYWxsU2ltcGxlKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1
cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PENDYWxsVmFsdWU+KAogICAgICAgICAgICAgcHJvYywgSW50MzIsIE9yaWdpbigpLApA
QCAtOTYwNiwxNiArOTYxNCwxNiBAQCB2b2lkIHRlc3RDYWxsUmFyZShpbnQgYSwgaW50IGIpCiAg
ICAgQmFzaWNCbG9jayogY29tbW9uID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sq
IHJhcmUgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJy
YW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwKICAgICAgICAgRnJlcXVl
bnRlZEJsb2NrKHJhcmUsIEZyZXF1ZW5jeUNsYXNzOjpSYXJlKSwKICAgICAgICAgRnJlcXVlbnRl
ZEJsb2NrKGNvbW1vbikpOwogCi0gICAgY29tbW9uLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICBjb21tb24tPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgY29tbW9uLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgMCkpOwogICAgIAotICAgIHJhcmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJh
cmUtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcmFyZS0+YXBwZW5kTmV3PENDYWxsVmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgSW50MzIsIE9yaWdpbigpLApAQCAtOTYzMywxNiArOTY0MSwxNiBAQCB2b2lkIHRlc3RDYWxs
UmFyZUxpdmUoaW50IGEsIGludCBiLCBpbnQgCiAgICAgQmFzaWNCbG9jayogY29tbW9uID0gcHJv
Yy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIHJhcmUgPSBwcm9jLmFkZEJsb2NrKCk7CiAK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHJhcmUsIEZyZXF1ZW5jeUNs
YXNzOjpSYXJlKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKGNvbW1vbikpOwogCi0gICAgY29t
bW9uLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBjb21tb24tPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY29tbW9uLT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogICAgIAotICAgIHJhcmUtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJhcmUtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcmFyZS0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCkBAIC05NjYyLDcgKzk2
NzAsNyBAQCB2b2lkIHRlc3RDYWxsU2ltcGxlUHVyZShpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJv
Y2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxDQ2FsbFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEludDMyLCBPcmlnaW4o
KSwgRWZmZWN0czo6bm9uZSgpLApAQCAtOTY5Miw3ICs5NzAwLDcgQEAgdm9pZCB0ZXN0Q2FsbEZ1
bmN0aW9uV2l0aEhlbGxhQXJndW1lbnRzKAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQ
dHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGJpdHdpc2VfY2FzdDx2b2lkKj4oZnVuY3Rpb25XaXRo
SGVsbGFBcmd1bWVudHMpKSk7CiAgICAgY2FsbC0+Y2hpbGRyZW4oKS5hcHBlbmRWZWN0b3IoYXJn
cyk7CiAgICAgCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgY2FsbCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIGNhbGwpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+
KHByb2MpID09IGZ1bmN0aW9uV2l0aEhlbGxhQXJndW1lbnRzKDEsIDIsIDMsIDQsIDUsIDYsIDcs
IDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAxNywgMTgsIDE5LCAyMCwgMjEsIDIy
LCAyMywgMjQsIDI1LCAyNikpOwogfQpAQCAtOTcwMSw3ICs5NzA5LDcgQEAgdm9pZCB0ZXN0UmV0
dXJuRG91YmxlKGRvdWJsZSB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91Ymxl
VmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSkpOwogCkBAIC05NzEyLDcgKzk3MjAsNyBAQCB2
b2lkIHRlc3RSZXR1cm5GbG9hdChmbG9hdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENv
bnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKSk7CiAKQEAgLTk3MjgsNyArOTcz
Niw3IEBAIHZvaWQgdGVzdENhbGxTaW1wbGVEb3VibGUoZG91YmxlIGEsIGRvdWIKIHsKICAgICBQ
cm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENDYWxsVmFsdWU+KAogICAgICAgICAgICAgcHJvYywgRG91YmxlLCBPcmln
aW4oKSwKQEAgLTk3NTQsNyArOTc2Miw3IEBAIHZvaWQgdGVzdENhbGxTaW1wbGVGbG9hdChmbG9h
dCBhLCBmbG9hdCAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKTsKICAgICBWYWx1ZSogZmxvYXRW
YWx1ZTEgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4o
KSwgYXJndW1lbnQxaW50MzIpOwogICAgIFZhbHVlKiBmbG9hdFZhbHVlMiA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDJpbnQzMik7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8Q0NhbGxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBGbG9hdCwgT3Jp
Z2luKCksCkBAIC05Nzg0LDcgKzk3OTIsNyBAQCB2b2lkIHRlc3RDYWxsRnVuY3Rpb25XaXRoSGVs
bGFEb3VibGVBcmd1CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgYml0d2lzZV9jYXN0PHZvaWQqPihmdW5jdGlvbldpdGhIZWxsYURvdWJsZUFy
Z3VtZW50cykpKTsKICAgICBjYWxsLT5jaGlsZHJlbigpLmFwcGVuZFZlY3RvcihhcmdzKTsKICAg
ICAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBjYWxsKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgY2FsbCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJv
YykgPT0gZnVuY3Rpb25XaXRoSGVsbGFEb3VibGVBcmd1bWVudHMoMSwgMiwgMywgNCwgNSwgNiwg
NywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDE3LCAxOCwgMTksIDIwLCAyMSwg
MjIsIDIzLCAyNCwgMjUsIDI2KSk7CiB9CkBAIC05ODA4LDcgKzk4MTYsNyBAQCB2b2lkIHRlc3RD
YWxsRnVuY3Rpb25XaXRoSGVsbGFGbG9hdEFyZ3VtCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
b25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYml0d2lzZV9jYXN0PHZvaWQqPihmdW5jdGlv
bldpdGhIZWxsYUZsb2F0QXJndW1lbnRzKSkpOwogICAgIGNhbGwtPmNoaWxkcmVuKCkuYXBwZW5k
VmVjdG9yKGFyZ3MpOwogICAgIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIGNhbGwpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYWxsKTsKIAogICAgIENIRUNLKGNvbXBpbGVB
bmRSdW48ZmxvYXQ+KHByb2MpID09IGZ1bmN0aW9uV2l0aEhlbGxhRmxvYXRBcmd1bWVudHMoMSwg
MiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDE3LCAx
OCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNCwgMjUsIDI2KSk7CiB9CkBAIC05ODIwLDcgKzk4Mjgs
NyBAQCB2b2lkIHRlc3RDaGlsbERpdihpbnQgbnVtLCBpbnQgZGVuLCBpbnQgCiAgICAgICAgIFBy
b2NlZHVyZSBwcm9jOwogICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwogICAgICAgICAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgICAgIHByb2MsIENoaWxsRGl2LCBPcmlnaW4oKSwKQEAgLTk4MzksNyArOTg0Nyw3IEBA
IHZvaWQgdGVzdENoaWxsRGl2KGludCBudW0sIGludCBkZW4sIGludCAKICAgICAgICAgUHJvY2Vk
dXJlIHByb2M7CiAgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAg
ICAgICAgIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICAgICAgcHJvYywgQ2hpbGxEaXYsIE9yaWdpbigpLApAQCAtOTg1NSw3ICs5ODYzLDcgQEAgdm9p
ZCB0ZXN0Q2hpbGxEaXZUd2ljZShpbnQgbnVtMSwgaW50IGRlbgogICAgIFByb2NlZHVyZSBwcm9j
OwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAtOTg4OSw3ICs5
ODk3LDcgQEAgdm9pZCB0ZXN0Q2hpbGxEaXY2NChpbnQ2NF90IG51bSwgaW50NjRfdAogICAgICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKICAgICAgICAgCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAg
ICAgICAgICAgICAgICBwcm9jLCBDaGlsbERpdiwgT3JpZ2luKCksCkBAIC05OTA0LDcgKzk5MTIs
NyBAQCB2b2lkIHRlc3RDaGlsbERpdjY0KGludDY0X3QgbnVtLCBpbnQ2NF90CiAgICAgICAgIFBy
b2NlZHVyZSBwcm9jOwogICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwogICAgICAgICAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgICAgIHByb2MsIENoaWxsRGl2LCBPcmlnaW4oKSwKQEAgLTk5MjUsNyArOTkzMyw3IEBA
IHZvaWQgdGVzdE1vZEFyZyhpbnQ2NF90IHZhbHVlKQogCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0g
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjApOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIGFyZ3VtZW50LCBhcmd1bWVudCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0KTsKIAogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIHZhbHVl
KSk7CiB9CkBAIC05OTQzLDcgKzk5NTEsNyBAQCB2b2lkIHRlc3RNb2RBcmdzKGludDY0X3QgbnVt
ZXJhdG9yLCBpbnQ2CiAgICAgVmFsdWUqIGFyZ3VtZW50MSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAg
ICBWYWx1ZSogYXJndW1lbnQyID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwogICAgIFZhbHVlKiByZXN1bHQg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIGFyZ3VtZW50MSwg
YXJndW1lbnQyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1
bjxpbnQ2NF90Pihwcm9jLCBudW1lcmF0b3IsIGRlbm9taW5hdG9yKSA9PSBudW1lcmF0b3IgJSBk
ZW5vbWluYXRvcik7CiB9CkBAIC05OTYxLDcgKzk5NjksNyBAQCB2b2lkIHRlc3RNb2RJbW1zKGlu
dDY0X3QgbnVtZXJhdG9yLCBpbnQ2CiAgICAgVmFsdWUqIGFyZ3VtZW50MSA9IHJvb3QtPmFwcGVu
ZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBudW1lcmF0b3IpOwogICAgIFZhbHVl
KiBhcmd1bWVudDIgPSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgZGVub21pbmF0b3IpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIGFyZ3VtZW50MSwgYXJndW1lbnQyKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCBudW1l
cmF0b3IsIGRlbm9taW5hdG9yKSA9PSBudW1lcmF0b3IgJSBkZW5vbWluYXRvcik7CiB9CkBAIC05
OTc3LDcgKzk5ODUsNyBAQCB2b2lkIHRlc3RNb2RBcmczMihpbnQzMl90IHZhbHVlKQogICAgIFZh
bHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIGFyZ3VtZW50LCBhcmd1bWVu
dCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludDMy
X3Q+KHByb2MsIHZhbHVlKSk7CiB9CkBAIC05OTk3LDcgKzEwMDA1LDcgQEAgdm9pZCB0ZXN0TW9k
QXJnczMyKGludDMyX3QgbnVtZXJhdG9yLCBpbgogICAgIFZhbHVlKiBhcmd1bWVudDIgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjEpKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBNb2QsIE9yaWdpbigpLCBhcmd1bWVudDEsIGFyZ3VtZW50Mik7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgbnVtZXJhdG9y
LCBkZW5vbWluYXRvcikgPT0gbnVtZXJhdG9yICUgZGVub21pbmF0b3IpOwogfQpAQCAtMTAwMTUs
NyArMTAwMjMsNyBAQCB2b2lkIHRlc3RNb2RJbW1zMzIoaW50MzJfdCBudW1lcmF0b3IsIGluCiAg
ICAgVmFsdWUqIGFyZ3VtZW50MSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBudW1lcmF0b3IpOwogICAgIFZhbHVlKiBhcmd1bWVudDIgPSByb290LT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgZGVub21pbmF0b3IpOwogICAgIFZh
bHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2luKCks
IGFyZ3VtZW50MSwgYXJndW1lbnQyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0so
Y29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBudW1lcmF0b3IsIGRlbm9taW5hdG9yKSA9PSBu
dW1lcmF0b3IgJSBkZW5vbWluYXRvcik7CiB9CkBAIC0xMDAyNyw3ICsxMDAzNSw3IEBAIHZvaWQg
dGVzdENoaWxsTW9kQXJnKGludDY0X3QgdmFsdWUpCiAKICAgICBWYWx1ZSogYXJndW1lbnQgPSBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQ2hpbGxNb2QsIE9yaWdpbigpLCBhcmd1bWVudCwgYXJndW1lbnQpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCB2
YWx1ZSkpOwogfQpAQCAtMTAwNDAsNyArMTAwNDgsNyBAQCB2b2lkIHRlc3RDaGlsbE1vZEFyZ3Mo
aW50NjRfdCBudW1lcmF0b3IsCiAgICAgVmFsdWUqIGFyZ3VtZW50MSA9IHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIw
KTsKICAgICBWYWx1ZSogYXJndW1lbnQyID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwogICAgIFZhbHVlKiBy
ZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENoaWxsTW9kLCBPcmlnaW4oKSwg
YXJndW1lbnQxLCBhcmd1bWVudDIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhj
b21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIG51bWVyYXRvciwgZGVub21pbmF0b3IpID09IGNo
aWxsTW9kKG51bWVyYXRvciwgZGVub21pbmF0b3IpKTsKIH0KQEAgLTEwMDUzLDcgKzEwMDYxLDcg
QEAgdm9pZCB0ZXN0Q2hpbGxNb2RJbW1zKGludDY0X3QgbnVtZXJhdG9yLAogICAgIFZhbHVlKiBh
cmd1bWVudDEgPSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
bnVtZXJhdG9yKTsKICAgICBWYWx1ZSogYXJndW1lbnQyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0
NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGRlbm9taW5hdG9yKTsKICAgICBWYWx1ZSogcmVzdWx0
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDaGlsbE1vZCwgT3JpZ2luKCksIGFyZ3Vt
ZW50MSwgYXJndW1lbnQyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGls
ZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCBudW1lcmF0b3IsIGRlbm9taW5hdG9yKSA9PSBjaGlsbE1v
ZChudW1lcmF0b3IsIGRlbm9taW5hdG9yKSk7CiB9CkBAIC0xMDA2Niw3ICsxMDA3NCw3IEBAIHZv
aWQgdGVzdENoaWxsTW9kQXJnMzIoaW50MzJfdCB2YWx1ZSkKICAgICBWYWx1ZSogYXJndW1lbnQg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBDaGlsbE1vZCwgT3JpZ2luKCksIGFyZ3VtZW50LCBhcmd1bWVudCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2Ms
IHZhbHVlKSk7CiB9CkBAIC0xMDA4MSw3ICsxMDA4OSw3IEBAIHZvaWQgdGVzdENoaWxsTW9kQXJn
czMyKGludDMyX3QgbnVtZXJhdG8KICAgICBWYWx1ZSogYXJndW1lbnQyID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIx
KSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2hp
bGxNb2QsIE9yaWdpbigpLCBhcmd1bWVudDEsIGFyZ3VtZW50Mik7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgbnVtZXJhdG9yLCBk
ZW5vbWluYXRvcikgPT0gY2hpbGxNb2QobnVtZXJhdG9yLCBkZW5vbWluYXRvcikpOwogfQpAQCAt
MTAwOTQsNyArMTAxMDIsNyBAQCB2b2lkIHRlc3RDaGlsbE1vZEltbXMzMihpbnQzMl90IG51bWVy
YXRvCiAgICAgVmFsdWUqIGFyZ3VtZW50MSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBudW1lcmF0b3IpOwogICAgIFZhbHVlKiBhcmd1bWVudDIgPSByb290
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgZGVub21pbmF0b3IpOwog
ICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENoaWxsTW9k
LCBPcmlnaW4oKSwgYXJndW1lbnQxLCBhcmd1bWVudDIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAK
ICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIG51bWVyYXRvciwgZGVub21p
bmF0b3IpID09IGNoaWxsTW9kKG51bWVyYXRvciwgZGVub21pbmF0b3IpKTsKIH0KQEAgLTEwMTA1
LDE4ICsxMDExMywxNyBAQCB2b2lkIHRlc3RTd2l0Y2godW5zaWduZWQgZGVncmVlLCB1bnNpZ25l
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKIAogICAgIEJhc2ljQmxv
Y2sqIHRlcm1pbmF0ZSA9IHByb2MuYWRkQmxvY2soKTsKLSAgICB0ZXJtaW5hdGUtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHRlcm1pbmF0ZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0ZXJtaW5hdGUtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBTd2l0Y2hWYWx1
ZSogc3dpdGNoVmFsdWUgPSByb290LT5hcHBlbmROZXc8U3dpdGNoVmFsdWU+KAotICAgICAgICBw
cm9jLCBPcmlnaW4oKSwKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApLAotICAgICAgICBGcmVxdWVu
dGVkQmxvY2sodGVybWluYXRlKSk7CisgICAgICAgIHByb2MsIE9yaWdpbigpLCByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCkpOworICAgIHN3aXRjaFZhbHVlLT5zZXRGYWxsVGhyb3VnaChGcmVxdWVudGVkQmxvY2so
dGVybWluYXRlKSk7CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZGVncmVlOyArK2kp
IHsKICAgICAgICAgQmFzaWNCbG9jayogbmV3QmxvY2sgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAg
ICAgIG5ld0Jsb2NrLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgbmV3QmxvY2st
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgICAgICBuZXdCbG9jay0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KAog
ICAgICAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLCAoaSAmIDEpID8gR1BSSW5mbzo6YXJndW1l
bnRHUFIyIDogR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7CkBAIC0xMDE0NywxOSArMTAxNTQsMTgg
QEAgdm9pZCB0ZXN0U3dpdGNoQ2hpbGxEaXYodW5zaWduZWQgZGVncmVlLAogICAgIFZhbHVlKiBy
aWdodCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
R1BSSW5mbzo6YXJndW1lbnRHUFIyKTsKIAogICAgIEJhc2ljQmxvY2sqIHRlcm1pbmF0ZSA9IHBy
b2MuYWRkQmxvY2soKTsKLSAgICB0ZXJtaW5hdGUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHRlcm1pbmF0ZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICB0ZXJtaW5hdGUtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBTd2l0Y2hWYWx1ZSogc3dpdGNoVmFsdWUgPSBy
b290LT5hcHBlbmROZXc8U3dpdGNoVmFsdWU+KAotICAgICAgICBwcm9jLCBPcmlnaW4oKSwKLSAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApLAotICAgICAgICBGcmVxdWVudGVkQmxvY2sodGVybWluYXRl
KSk7CisgICAgICAgIHByb2MsIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOworICAgIHN3aXRj
aFZhbHVlLT5zZXRGYWxsVGhyb3VnaChGcmVxdWVudGVkQmxvY2sodGVybWluYXRlKSk7CiAKICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZGVncmVlOyArK2kpIHsKICAgICAgICAgQmFzaWNC
bG9jayogbmV3QmxvY2sgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICAgICAgbmV3QmxvY2stPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICBuZXdCbG9jay0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAg
IG5ld0Jsb2NrLT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIENoaWxs
RGl2LCBPcmlnaW4oKSwgKGkgJiAxKSA/IHJpZ2h0IDogbGVmdCwgKGkgJiAxKSA/IGxlZnQgOiBy
aWdodCkpOwpAQCAtMTAxNzAsNyArMTAxNzYsMTAgQEAgdm9pZCB0ZXN0U3dpdGNoQ2hpbGxEaXYo
dW5zaWduZWQgZGVncmVlLAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZGVncmVlOyArK2kpIHsKLSAgICAgICAgQ0hFQ0soaW52
b2tlPGludDMyX3Q+KCpjb2RlLCBpICogZ2FwLCA0MiwgMTEpID09ICgoaSAmIDEpID8gMTEvNDIg
OiA0Mi8xMSkpOworICAgICAgICBkYXRhTG9nKCJpID0gIiwgaSwgIlxuIik7CisgICAgICAgIGlu
dDMyX3QgcmVzdWx0ID0gaW52b2tlPGludDMyX3Q+KCpjb2RlLCBpICogZ2FwLCA0MiwgMTEpOwor
ICAgICAgICBkYXRhTG9nKCJyZXN1bHQgPSAiLCByZXN1bHQsICJcbiIpOworICAgICAgICBDSEVD
SyhyZXN1bHQgPT0gKChpICYgMSkgPyAxMS80MiA6IDQyLzExKSk7CiAgICAgICAgIGlmIChnYXAg
PiAxKSB7CiAgICAgICAgICAgICBDSEVDSyghaW52b2tlPGludDMyX3Q+KCpjb2RlLCBpICogZ2Fw
ICsgMSwgNDIsIDExKSk7CiAgICAgICAgICAgICBDSEVDSyghaW52b2tlPGludDMyX3Q+KCpjb2Rl
LCBpICogZ2FwIC0gMSwgNDIsIDExKSk7CkBAIC0xMDE4OCwxNyArMTAxOTcsMTYgQEAgdm9pZCB0
ZXN0U3dpdGNoVGFyZ2V0dGluZ1NhbWVCbG9jaygpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKIAogICAgIEJhc2ljQmxvY2sqIHRlcm1pbmF0ZSA9IHByb2MuYWRkQmxv
Y2soKTsKLSAgICB0ZXJtaW5hdGUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRlcm1p
bmF0ZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICB0ZXJtaW5hdGUtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCA1KSk7CiAKICAgICBTd2l0Y2hWYWx1ZSogc3dpdGNoVmFsdWUgPSByb290LT5hcHBl
bmROZXc8U3dpdGNoVmFsdWU+KAotICAgICAgICBwcm9jLCBPcmlnaW4oKSwKLSAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApLAotICAgICAgICBGcmVxdWVudGVkQmxvY2sodGVybWluYXRlKSk7CisgICAg
ICAgIHByb2MsIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOworICAgIHN3aXRjaFZhbHVlLT5z
ZXRGYWxsVGhyb3VnaChGcmVxdWVudGVkQmxvY2sodGVybWluYXRlKSk7CiAKICAgICBCYXNpY0Js
b2NrKiBvdGhlclRhcmdldCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICBvdGhlclRhcmdldC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgb3RoZXJUYXJnZXQtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgb3RoZXJUYXJn
ZXQtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwogICAgIHN3
aXRjaFZhbHVlLT5hcHBlbmRDYXNlKFN3aXRjaENhc2UoMywgRnJlcXVlbnRlZEJsb2NrKG90aGVy
VGFyZ2V0KSkpOwpAQCAtMTAyMTgsMTggKzEwMjI2LDE2IEBAIHZvaWQgdGVzdFN3aXRjaFRhcmdl
dHRpbmdTYW1lQmxvY2tGb2xkUGEKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwogCiAgICAgQmFzaWNCbG9jayogdGVybWluYXRlID0gcHJvYy5hZGRCbG9jaygpOwotICAg
IHRlcm1pbmF0ZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGVybWluYXRlLT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHRlcm1pbmF0ZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQy
KSk7CiAKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgU3dpdGNo
VmFsdWUqIHN3aXRjaFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFN3aXRjaFZhbHVlPigKLSAgICAg
ICAgcHJvYywgT3JpZ2luKCksCi0gICAgICAgIGFyZ3VtZW50LAotICAgICAgICBGcmVxdWVudGVk
QmxvY2sodGVybWluYXRlKSk7CisgICAgU3dpdGNoVmFsdWUqIHN3aXRjaFZhbHVlID0gcm9vdC0+
YXBwZW5kTmV3PFN3aXRjaFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYXJndW1lbnQpOworICAgIHN3
aXRjaFZhbHVlLT5zZXRGYWxsVGhyb3VnaChGcmVxdWVudGVkQmxvY2sodGVybWluYXRlKSk7CiAK
ICAgICBCYXNpY0Jsb2NrKiBvdGhlclRhcmdldCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICBvdGhl
clRhcmdldC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgb3RoZXJUYXJnZXQtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXJndW1l
bnQpOwogICAgIHN3aXRjaFZhbHVlLT5hcHBlbmRDYXNlKFN3aXRjaENhc2UoMywgRnJlcXVlbnRl
ZEJsb2NrKG90aGVyVGFyZ2V0KSkpOwogICAgIHN3aXRjaFZhbHVlLT5hcHBlbmRDYXNlKFN3aXRj
aENhc2UoMTMsIEZyZXF1ZW50ZWRCbG9jayhvdGhlclRhcmdldCkpKTsKQEAgLTEwMjQ2LDcgKzEw
MjUyLDcgQEAgdm9pZCB0ZXN0VHJ1bmNGb2xkKGludDY0X3QgdmFsdWUpCiB7CiAgICAgUHJvY2Vk
dXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCkBAIC0x
MDI1OSw3ICsxMDI2NSw3IEBAIHZvaWQgdGVzdFpFeHQzMihpbnQzMl90IHZhbHVlKQogewogICAg
IFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgWkV4dDMyLCBPcmlnaW4o
KSwKQEAgLTEwMjc0LDcgKzEwMjgwLDcgQEAgdm9pZCB0ZXN0WkV4dDMyRm9sZChpbnQzMl90IHZh
bHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgWkV4
dDMyLCBPcmlnaW4oKSwKQEAgLTEwMjg3LDcgKzEwMjkzLDcgQEAgdm9pZCB0ZXN0U0V4dDMyKGlu
dDMyX3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBw
cm9jLCBTRXh0MzIsIE9yaWdpbigpLApAQCAtMTAzMDIsNyArMTAzMDgsNyBAQCB2b2lkIHRlc3RT
RXh0MzJGb2xkKGludDMyX3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBTRXh0MzIsIE9yaWdpbigpLApAQCAtMTAzMTUsNyArMTAzMjEsNyBA
QCB2b2lkIHRlc3RUcnVuY1pFeHQzMihpbnQzMl90IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBw
cm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLApAQCAtMTAzMzIs
NyArMTAzMzgsNyBAQCB2b2lkIHRlc3RUcnVuY1NFeHQzMihpbnQzMl90IHZhbHVlKQogewogICAg
IFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigp
LApAQCAtMTAzNDksNyArMTAzNTUsNyBAQCB2b2lkIHRlc3RTRXh0OChpbnQzMl90IHZhbHVlKQog
ewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU0V4dDgsIE9y
aWdpbigpLApAQCAtMTAzNjQsNyArMTAzNzAsNyBAQCB2b2lkIHRlc3RTRXh0OEZvbGQoaW50MzJf
dCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IFNFeHQ4LCBPcmlnaW4oKSwKQEAgLTEwMzc3LDcgKzEwMzgzLDcgQEAgdm9pZCB0ZXN0U0V4dDhT
RXh0OChpbnQzMl90IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgcHJvYywgU0V4dDgsIE9yaWdpbigpLApAQCAtMTAzOTQsNyArMTA0MDAsNyBAQCB2b2lk
IHRlc3RTRXh0OFNFeHQxNihpbnQzMl90IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KAogICAgICAgICAgICAgcHJvYywgU0V4dDgsIE9yaWdpbigpLApAQCAtMTA0MTEsNyArMTA0
MTcsNyBAQCB2b2lkIHRlc3RTRXh0OEJpdEFuZChpbnQzMl90IHZhbHVlLCBpbnQzCiB7CiAgICAg
UHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTRXh0OCwgT3JpZ2luKCks
CkBAIC0xMDQyOSw3ICsxMDQzNSw3IEBAIHZvaWQgdGVzdEJpdEFuZFNFeHQ4KGludDMyX3QgdmFs
dWUsIGludDMKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IEJpdEFuZCwgT3JpZ2luKCksCkBAIC0xMDQ0Nyw3ICsxMDQ1Myw3IEBAIHZvaWQgdGVzdFNFeHQx
NihpbnQzMl90IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgU0V4dDE2LCBPcmlnaW4oKSwKQEAgLTEwNDYyLDcgKzEwNDY4LDcgQEAgdm9pZCB0
ZXN0U0V4dDE2Rm9sZChpbnQzMl90IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgU0V4dDE2LCBPcmlnaW4oKSwKQEAgLTEwNDc1LDcgKzEwNDgx
LDcgQEAgdm9pZCB0ZXN0U0V4dDE2U0V4dDE2KGludDMyX3QgdmFsdWUpCiB7CiAgICAgUHJvY2Vk
dXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTRXh0MTYsIE9yaWdpbigpLApAQCAt
MTA0OTIsNyArMTA0OTgsNyBAQCB2b2lkIHRlc3RTRXh0MTZTRXh0OChpbnQzMl90IHZhbHVlKQog
ewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU0V4dDE2LCBP
cmlnaW4oKSwKQEAgLTEwNTA5LDcgKzEwNTE1LDcgQEAgdm9pZCB0ZXN0U0V4dDE2Qml0QW5kKGlu
dDMyX3QgdmFsdWUsIGludAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgU0V4dDE2LCBPcmlnaW4oKSwKQEAgLTEwNTI3LDcgKzEwNTMzLDcgQEAgdm9pZCB0
ZXN0Qml0QW5kU0V4dDE2KGludDMyX3QgdmFsdWUsIGludAogewogICAgIFByb2NlZHVyZSBwcm9j
OwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTEwNTQ1LDcg
KzEwNTUxLDcgQEAgdm9pZCB0ZXN0U0V4dDMyQml0QW5kKGludDMyX3QgdmFsdWUsIGludAogewog
ICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU0V4dDMyLCBPcmln
aW4oKSwKQEAgLTEwNTYzLDcgKzEwNTY5LDcgQEAgdm9pZCB0ZXN0Qml0QW5kU0V4dDMyKGludDMy
X3QgdmFsdWUsIGludAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTEwNTgxLDcgKzEwNTg3LDcgQEAgdm9pZCB0ZXN0
QmFzaWNTZWxlY3QoKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTEwNjAzLDcgKzEwNjA5LDcgQEAgdm9pZCB0ZXN0
U2VsZWN0VGVzdCgpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBw
cm9jLCBTZWxlY3QsIE9yaWdpbigpLApAQCAtMTA2MjIsNyArMTA2MjgsNyBAQCB2b2lkIHRlc3RT
ZWxlY3RDb21wYXJlRG91YmxlKCkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0xMDY1Myw3ICsxMDY1OSw3IEBAIHZv
aWQgdGVzdFNlbGVjdENvbXBhcmVGbG9hdChmbG9hdCBhLCBmbG8KICAgICBWYWx1ZSogZmxvYXRW
YWx1ZTEgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4o
KSwgYXJndW1lbnQxaW50MzIpOwogICAgIFZhbHVlKiBmbG9hdFZhbHVlMiA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDJpbnQzMik7
CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdp
bigpLApAQCAtMTA2OTEsNyArMTA2OTcsNyBAQCB2b2lkIHRlc3RTZWxlY3RDb21wYXJlRmxvYXRU
b0RvdWJsZShmbG9hCiAgICAgVmFsdWUqIGRvdWJsZVZhbHVlMSA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGZsb2F0VmFsdWUxKTsKICAgICBW
YWx1ZSogZG91YmxlVmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRv
RG91YmxlLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZTIpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAog
ICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTEwNzE5LDcgKzEwNzI1LDcg
QEAgdm9pZCB0ZXN0U2VsZWN0RG91YmxlKCkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0xMDc0MSw3ICsxMDc0Nyw3
IEBAIHZvaWQgdGVzdFNlbGVjdERvdWJsZVRlc3QoKQogewogICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KAogICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTEwNzYwLDcgKzEw
NzY2LDcgQEAgdm9pZCB0ZXN0U2VsZWN0RG91YmxlQ29tcGFyZURvdWJsZSgpCiB7CiAgICAgUHJv
Y2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLApA
QCAtMTA3OTAsNyArMTA3OTYsNyBAQCB2b2lkIHRlc3RTZWxlY3REb3VibGVDb21wYXJlRmxvYXQo
ZmxvYXQgCiAgICAgVmFsdWUqIGZsb2F0VmFsdWUxID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MWludDMyKTsKICAgICBWYWx1ZSog
ZmxvYXRWYWx1ZTIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBP
cmlnaW4oKSwgYXJndW1lbnQyaW50MzIpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTEwODIxLDcgKzEwODI3LDcgQEAgdm9p
ZCB0ZXN0U2VsZWN0RmxvYXRDb21wYXJlRmxvYXQoZmxvYXQgYQogICAgIFZhbHVlKiBmbG9hdFZh
bHVlMyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigp
LCBhcmd1bWVudDNpbnQzMik7CiAgICAgVmFsdWUqIGZsb2F0VmFsdWU0ID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50NGludDMyKTsK
IAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2lu
KCksCkBAIC0xMDg0Nyw3ICsxMDg1Myw3IEBAIHZvaWQgdGVzdFNlbGVjdERvdWJsZUNvbXBhcmVE
b3VibGUoYm9vbCAKICAgICAgICAgVmFsdWUqIGFyZzIgPSByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMik7CiAgICAg
ICAgIFZhbHVlKiBhcmczID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjMpOwogCi0gICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigp
LApAQCAtMTA4ODMsNyArMTA4ODksNyBAQCB2b2lkIHRlc3RTZWxlY3REb3VibGVDb21wYXJlRG91
YmxlKGJvb2wgCiAgICAgICAgIGtlZXBWYWx1ZXNMaXZlLT5hcHBlbmQoQ29uc3RyYWluZWRWYWx1
ZShhcmcyLCBWYWx1ZVJlcDo6U29tZVJlZ2lzdGVyKSk7CiAgICAgICAgIGtlZXBWYWx1ZXNMaXZl
LT5zZXRHZW5lcmF0b3IoWyZdIChDQ2FsbEhlbHBlcnMmLCBjb25zdCBTdGFja21hcEdlbmVyYXRp
b25QYXJhbXMmKSB7IH0pOwogCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogICAgICAgICBh
dXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCiAgICAgICAgIGZvciAoYXV0byYgbGVmdCA6IGZs
b2F0aW5nUG9pbnRPcGVyYW5kczxkb3VibGU+KCkpIHsKQEAgLTEwOTEwLDcgKzEwOTE2LDcgQEAg
dm9pZCB0ZXN0U2VsZWN0RG91YmxlQ29tcGFyZURvdWJsZShib29sIAogICAgICAgICBrZWVwVmFs
dWVzTGl2ZS0+YXBwZW5kKENvbnN0cmFpbmVkVmFsdWUoYXJnMywgVmFsdWVSZXA6OlNvbWVSZWdp
c3RlcikpOwogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxI
ZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeyB9KTsKIAotICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsK
IAogICAgICAgICBmb3IgKGF1dG8mIGxlZnQgOiBmbG9hdGluZ1BvaW50T3BlcmFuZHM8ZG91Ymxl
PigpKSB7CkBAIC0xMDkzOCw3ICsxMDk0NCw3IEBAIHZvaWQgdGVzdFNlbGVjdERvdWJsZUNvbXBh
cmVEb3VibGUoYm9vbCAKICAgICAgICAga2VlcFZhbHVlc0xpdmUtPmFwcGVuZChDb25zdHJhaW5l
ZFZhbHVlKGFyZzMsIFZhbHVlUmVwOjpTb21lUmVnaXN0ZXIpKTsKICAgICAgICAga2VlcFZhbHVl
c0xpdmUtPnNldEdlbmVyYXRvcihbJl0gKENDYWxsSGVscGVycyYsIGNvbnN0IFN0YWNrbWFwR2Vu
ZXJhdGlvblBhcmFtcyYpIHsgfSk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAg
ICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKICAgICAgICAgZm9yIChhdXRvJiBsZWZ0
IDogZmxvYXRpbmdQb2ludE9wZXJhbmRzPGRvdWJsZT4oKSkgewpAQCAtMTA5NTUsNyArMTA5NjEs
NyBAQCB2b2lkIHRlc3RTZWxlY3REb3VibGVDb21wYXJlRG91YmxlKGJvb2wgCiAgICAgICAgIFZh
bHVlKiBhcmcxID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjEpOwogICAgICAgICBWYWx1ZSogYXJnMiA9IHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJn
dW1lbnRGUFIyKTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTEwOTkwLDcgKzEwOTk2LDcg
QEAgdm9pZCB0ZXN0U2VsZWN0RG91YmxlQ29tcGFyZURvdWJsZShib29sIAogICAgICAgICBrZWVw
VmFsdWVzTGl2ZS0+YXBwZW5kKENvbnN0cmFpbmVkVmFsdWUoYXJnMiwgVmFsdWVSZXA6OlNvbWVS
ZWdpc3RlcikpOwogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+c2V0R2VuZXJhdG9yKFsmXSAoQ0Nh
bGxIZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeyB9KTsKIAotICAg
ICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9j
KTsKIAogICAgICAgICBmb3IgKGF1dG8mIGxlZnQgOiBmbG9hdGluZ1BvaW50T3BlcmFuZHM8ZG91
YmxlPigpKSB7CkBAIC0xMTAzMyw3ICsxMTAzOSw3IEBAIHZvaWQgdGVzdFNlbGVjdEZsb2F0Q29t
cGFyZUZsb2F0KGJvb2wgKCoKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIzKSkpOwog
Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgICAgICBw
cm9jLCBTZWxlY3QsIE9yaWdpbigpLApAQCAtMTEwNzcsNyArMTEwODMsNyBAQCB2b2lkIHRlc3RT
ZWxlY3RGbG9hdENvbXBhcmVGbG9hdChib29sICgqCiAgICAgICAgIGtlZXBWYWx1ZXNMaXZlLT5h
cHBlbmQoQ29uc3RyYWluZWRWYWx1ZShhcmcyLCBWYWx1ZVJlcDo6U29tZVJlZ2lzdGVyKSk7CiAg
ICAgICAgIGtlZXBWYWx1ZXNMaXZlLT5zZXRHZW5lcmF0b3IoWyZdIChDQ2FsbEhlbHBlcnMmLCBj
b25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7IH0pOwogCi0gICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7Cisg
ICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQpOwogICAgICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCiAgICAgICAg
IGZvciAoYXV0byYgbGVmdCA6IGZsb2F0aW5nUG9pbnRPcGVyYW5kczxmbG9hdD4oKSkgewpAQCAt
MTExMTIsNyArMTExMTgsNyBAQCB2b2lkIHRlc3RTZWxlY3RGbG9hdENvbXBhcmVGbG9hdChib29s
ICgqCiAgICAgICAgIGtlZXBWYWx1ZXNMaXZlLT5hcHBlbmQoQ29uc3RyYWluZWRWYWx1ZShhcmcz
LCBWYWx1ZVJlcDo6U29tZVJlZ2lzdGVyKSk7CiAgICAgICAgIGtlZXBWYWx1ZXNMaXZlLT5zZXRH
ZW5lcmF0b3IoWyZdIChDQ2FsbEhlbHBlcnMmLCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJh
bXMmKSB7IH0pOwogCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogICAgICAgICBhdXRvIGNv
ZGUgPSBjb21waWxlKHByb2MpOwogCiAgICAgICAgIGZvciAoYXV0byYgbGVmdCA6IGZsb2F0aW5n
UG9pbnRPcGVyYW5kczxmbG9hdD4oKSkgewpAQCAtMTExNDgsNyArMTExNTQsNyBAQCB2b2lkIHRl
c3RTZWxlY3RGbG9hdENvbXBhcmVGbG9hdChib29sICgqCiAgICAgICAgIGtlZXBWYWx1ZXNMaXZl
LT5hcHBlbmQoQ29uc3RyYWluZWRWYWx1ZShhcmczLCBWYWx1ZVJlcDo6U29tZVJlZ2lzdGVyKSk7
CiAgICAgICAgIGtlZXBWYWx1ZXNMaXZlLT5zZXRHZW5lcmF0b3IoWyZdIChDQ2FsbEhlbHBlcnMm
LCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7IH0pOwogCi0gICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7
CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQpOwogICAgICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCiAgICAg
ICAgIGZvciAoYXV0byYgbGVmdCA6IGZsb2F0aW5nUG9pbnRPcGVyYW5kczxmbG9hdD4oKSkgewpA
QCAtMTExNzEsNyArMTExNzcsNyBAQCB2b2lkIHRlc3RTZWxlY3RGbG9hdENvbXBhcmVGbG9hdChi
b29sICgqCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBP
cmlnaW4oKSwKICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMikpKTsKIAotICAgICAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgU2VsZWN0
LCBPcmlnaW4oKSwKQEAgLTExMjEyLDcgKzExMjE4LDcgQEAgdm9pZCB0ZXN0U2VsZWN0RmxvYXRD
b21wYXJlRmxvYXQoYm9vbCAoKgogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+YXBwZW5kKENvbnN0
cmFpbmVkVmFsdWUoYXJnMiwgVmFsdWVSZXA6OlNvbWVSZWdpc3RlcikpOwogICAgICAgICBrZWVw
VmFsdWVzTGl2ZS0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3RhY2tt
YXBHZW5lcmF0aW9uUGFyYW1zJikgeyB9KTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgICAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsK
ICAgICAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIAogICAgICAgICBmb3IgKGF1dG8m
IGxlZnQgOiBmbG9hdGluZ1BvaW50T3BlcmFuZHM8ZmxvYXQ+KCkpIHsKQEAgLTExMjM5LDcgKzEx
MjQ1LDcgQEAgdm9pZCB0ZXN0U2VsZWN0Rm9sZChpbnRwdHJfdCB2YWx1ZSkKIHsKICAgICBQcm9j
ZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBA
IC0xMTI1OSw3ICsxMTI2NSw3IEBAIHZvaWQgdGVzdFNlbGVjdEludmVydCgpCiB7CiAgICAgUHJv
Y2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLApA
QCAtMTEzMTIsNyArMTEzMTgsNyBAQCB2b2lkIHRlc3RDaGVja1NlbGVjdCgpCiAgICAgICAgICAg
ICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwogICAgIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtMTEzODMsNyArMTEzODksNyBAQCB2b2lkIHRl
c3RDaGVja1NlbGVjdENoZWNrU2VsZWN0KCkKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAg
ICAgfSk7CiAgICAgCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
MCkpOwogCkBAIC0xMTQxOSw3ICsxMTQyNSw3IEBAIHZvaWQgdGVzdFBvd0RvdWJsZUJ5SW50ZWdl
ckxvb3AoZG91YmxlIHgKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAgICBhdXRvIHJlc3Vs
dCA9IHBvd0RvdWJsZUludDMyKHByb2MsIHJvb3QsIE9yaWdpbigpLCB4LCB5KTsKICAgICBCYXNp
Y0Jsb2NrKiBjb250aW51YXRpb24gPSByZXN1bHQuZmlyc3Q7Ci0gICAgY29udGludWF0aW9uLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQuc2Vj
b25kKTsKKyAgICBjb250aW51YXRpb24tPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByZXN1bHQuc2Vjb25kKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNv
bXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCB4T3BlcmFuZCwgeU9wZXJhbmQpLCBiM1Bvdyh4T3Bl
cmFuZCwgeU9wZXJhbmQpKSk7CiB9CkBAIC0xMTQyOSw3ICsxMTQzNSw3IEBAIHZvaWQgdGVzdFRy
dW5jT3JIaWdoKCkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgVHJ1bmMsIE9yaWdpbigpLApAQCAtMTE0NDcsNyArMTE0NTMsNyBAQCB2b2lkIHRlc3RUcnVu
Y09yTG93KCkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
VHJ1bmMsIE9yaWdpbigpLApAQCAtMTE0NjUsNyArMTE0NzEsNyBAQCB2b2lkIHRlc3RCaXRBbmRP
ckhpZ2goKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBC
aXRBbmQsIE9yaWdpbigpLApAQCAtMTE0ODQsNyArMTE0OTAsNyBAQCB2b2lkIHRlc3RCaXRBbmRP
ckxvdygpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJp
dEFuZCwgT3JpZ2luKCksCkBAIC0xMTUwNywyMCArMTE1MTMsMjAgQEAgdm9pZCB0ZXN0QnJhbmNo
NjRFcXVhbChpbnQ2NF90IGxlZnQsIGludAogCiAgICAgVmFsdWUqIGFyZzEgPSByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCk7CiAgICAgVmFsdWUqIGFyZzIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEVxdWFsLCBPcmlnaW4oKSwgYXJnMSwgYXJnMiksCiAgICAgICAgIEZyZXF1
ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCiAgICAg
Ym9vbCB0cnVlUmVzdWx0ID0gdHJ1ZTsKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxNZW1vcnlW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkOFosIE9yaWdpbigpLAogICAgICAgICAgICAg
dGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJnRydWVS
ZXN1bHQpKSk7CiAKICAgICBib29sIGVsc2VSZXN1bHQgPSBmYWxzZTsKLSAgICBlbHNlQ2FzZS0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2Ut
PmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkOFosIE9yaWdp
bigpLApAQCAtMTE1MzgsMjAgKzExNTQ0LDIwIEBAIHZvaWQgdGVzdEJyYW5jaDY0RXF1YWxJbW0o
aW50NjRfdCBsZWZ0LCAKIAogICAgIFZhbHVlKiBhcmcxID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAg
IFZhbHVlKiBhcmcyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCByaWdodCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEVxdWFsLCBPcmlnaW4oKSwg
YXJnMSwgYXJnMiksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50
ZWRCbG9jayhlbHNlQ2FzZSkpOwogCiAgICAgYm9vbCB0cnVlUmVzdWx0ID0gdHJ1ZTsKLSAgICB0
aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
dGhlbkNhc2UtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2Fk
OFosIE9yaWdpbigpLAogICAgICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdFB0clZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgJnRydWVSZXN1bHQpKSk7CiAKICAgICBib29sIGVsc2VSZXN1
bHQgPSBmYWxzZTsKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
ZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBMb2FkOFosIE9yaWdpbigpLApAQCAtMTE1NzEsMjAgKzExNTc3LDIwIEBA
IHZvaWQgdGVzdEJyYW5jaDY0RXF1YWxNZW0oaW50NjRfdCBsZWZ0LCAKICAgICAgICAgcHJvYywg
TG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7
CiAgICAgVmFsdWUqIGFyZzIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEVxdWFsLCBPcmlnaW4oKSwgYXJnMSwgYXJnMiksCiAgICAgICAgIEZyZXF1ZW50ZWRC
bG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCiAgICAgYm9vbCB0
cnVlUmVzdWx0ID0gdHJ1ZTsKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4o
CiAgICAgICAgICAgICBwcm9jLCBMb2FkOFosIE9yaWdpbigpLAogICAgICAgICAgICAgdGhlbkNh
c2UtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJnRydWVSZXN1bHQp
KSk7CiAKICAgICBib29sIGVsc2VSZXN1bHQgPSBmYWxzZTsKLSAgICBlbHNlQ2FzZS0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVu
ZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkOFosIE9yaWdpbigpLApA
QCAtMTE2MDQsMjAgKzExNjEwLDIwIEBAIHZvaWQgdGVzdEJyYW5jaDY0RXF1YWxNZW1JbW0oaW50
NjRfdCBsZWYKICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
R1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgVmFsdWUqIGFyZzIgPSByb290LT5hcHBlbmRO
ZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHJpZ2h0KTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgRXF1YWwsIE9yaWdpbigpLCBhcmcxLCBhcmcyKSwKICAgICAgICAgRnJlcXVl
bnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKICAgICBi
b29sIHRydWVSZXN1bHQgPSB0cnVlOwotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PE1lbW9yeVZh
bHVlPigKICAgICAgICAgICAgIHByb2MsIExvYWQ4WiwgT3JpZ2luKCksCiAgICAgICAgICAgICB0
aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAmdHJ1ZVJl
c3VsdCkpKTsKIAogICAgIGJvb2wgZWxzZVJlc3VsdCA9IGZhbHNlOwotICAgIGVsc2VDYXNlLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+
YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgIHByb2MsIExvYWQ4WiwgT3JpZ2lu
KCksCkBAIC0xMTY0MSw3ICsxMTY0Nyw3IEBAIHZvaWQgdGVzdFN0b3JlOExvYWQ4WihpbnQzMl90
IHZhbHVlKQogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAgcHRyKTsKIAot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkOFosIE9yaWdpbigpLCBwdHIpKTsK
IApAQCAtMTE2NjMsNyArMTE2NjksNyBAQCB2b2lkIHRlc3RTdG9yZTE2TG9hZDE2WihpbnQzMl90
IHZhbHVlKQogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAgcHRyKTsKIAot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkMTZaLCBPcmlnaW4oKSwgcHRyKSk7
CiAKQEAgLTExNjc1LDcgKzExNjgxLDcgQEAgdm9pZCB0ZXN0U1NoclNobDMyKGludDMyX3QgdmFs
dWUsIGludDMyXwogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBTU2hyLCBPcmlnaW4oKSwKQEAgLTExNjk3LDcgKzExNzAzLDcgQEAgdm9pZCB0ZXN0U1NoclNo
bDY0KGludDY0X3QgdmFsdWUsIGludDMyXwogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBTU2hyLCBPcmlnaW4oKSwKQEAgLTExNzI1LDggKzExNzMxLDggQEAg
dm9pZCB0ZXN0VHJpdmlhbEluZmluaXRlTG9vcCgpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBsb29w
ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sobG9vcCkpOwotICAgIGxvb3AtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxv
Y2sobG9vcCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBP
cmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3ApKTsKKyAgICBsb29wLT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhsb29wKSk7CiAK
ICAgICBjb21waWxlKHByb2MpOwogfQpAQCAtMTE3NDAsMTUgKzExNzQ2LDE1IEBAIHZvaWQgdGVz
dEZvbGRQYXRoRXF1YWwoKQogCiAgICAgVmFsdWUqIGFyZyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKIAot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwgYXJnLCBGcmVxdWVu
dGVkQmxvY2sodGhlbkJsb2NrKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VCbG9jaykpOwogCi0gICAg
dGhlbkJsb2NrLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQmxvY2stPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgdGhlbkJsb2NrLT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgRXF1YWws
IE9yaWdpbigpLCBhcmcsIHRoZW5CbG9jay0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAwKSkpOwogCi0gICAgZWxzZUJsb2NrLT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICBlbHNlQmxvY2stPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUJsb2NrLT5hcHBlbmROZXc8VmFsdWU+KAog
ICAgICAgICAgICAgcHJvYywgRXF1YWwsIE9yaWdpbigpLCBhcmcsIGVsc2VCbG9jay0+YXBwZW5k
TmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSkpOwpAQCAtMTE3NjYsNyArMTE3
NzIsNyBAQCB2b2lkIHRlc3RMU2hpZnRTZWxmMzIoKQogICAgIFZhbHVlKiBhcmcgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KAogICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIwKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFNobCwgT3JpZ2lu
KCksIGFyZywgYXJnKSk7CiAKQEAgLTExNzg5LDcgKzExNzk1LDcgQEAgdm9pZCB0ZXN0UlNoaWZ0
U2VsZjMyKCkKICAgICBWYWx1ZSogYXJnID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTU2hyLCBPcmlnaW4oKSwgYXJnLCBhcmcpKTsKIApAQCAt
MTE4MTIsNyArMTE4MTgsNyBAQCB2b2lkIHRlc3RVUlNoaWZ0U2VsZjMyKCkKICAgICBWYWx1ZSog
YXJnID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBaU2hyLCBPcmlnaW4oKSwgYXJnLCBhcmcpKTsKIApAQCAtMTE4MzMsNyArMTE4MzksNyBAQCB2
b2lkIHRlc3RMU2hpZnRTZWxmNjQoKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZyA9IHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTaGwsIE9yaWdp
bigpLCBhcmcsIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLCBh
cmcpKSk7CkBAIC0xMTg1Nyw3ICsxMTg2Myw3IEBAIHZvaWQgdGVzdFJTaGlmdFNlbGY2NCgpCiAg
ICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKICAgICBWYWx1ZSogYXJnID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIFNTaHIsIE9yaWdpbigpLCBhcmcsIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLCBhcmcpKSk7CkBAIC0xMTg4MSw3ICsxMTg4
Nyw3IEBAIHZvaWQgdGVzdFVSU2hpZnRTZWxmNjQoKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZyA9IHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBa
U2hyLCBPcmlnaW4oKSwgYXJnLCByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBP
cmlnaW4oKSwgYXJnKSkpOwpAQCAtMTE5MTcsNyArMTE5MjMsNyBAQCB2b2lkIHRlc3RQYXRjaHBv
aW50RG91YmxlUmVncygpCiAgICAgICAgICAgICBudW1DYWxscysrOwogICAgICAgICB9KTsKIAot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHBhdGNocG9pbnQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJv
Yyk7CiAgICAgQ0hFQ0sobnVtQ2FsbHMgPT0gMSk7CkBAIC0xMTk1MCw3ICsxMTk1Niw3IEBAIHZv
aWQgdGVzdFNwaWxsRGVmU21hbGxlclRoYW5Vc2UoKQogCiAgICAgLy8gT24geDg2LCBTdWIgYWRt
aXQgYW4gYWRkcmVzcyBmb3IgYW55IG9wZXJhbmQuIElmIGl0IHVzZXMgdGhlIHN0YWNrLCB0aGUg
dG9wIGJpdHMgbXVzdCBiZSB6ZXJvLgogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIGZvcmNlU3BpbGwsIGFyZzY0KTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1
bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBDSEVD
SyhpbnZva2U8aW50NjRfdD4oKmNvZGUsIDB4ZmZmZmZmZmYwMDAwMDAwMCkgPT0gMCk7CkBAIC0x
MTk3MCw3ICsxMTk3Niw3IEBAIHZvaWQgdGVzdFNwaWxsVXNlTGFyZ2VyVGhhbkRlZigpCiAKICAg
ICBWYWx1ZSogY29uZGl0aW9uID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFZhbHVlKiBhcmd1bWVu
dCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BS
SW5mbzo6YXJndW1lbnRHUFIxKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBw
cm9jLCBUcnVuYywgT3JpZ2luKCksCkBAIC0xMTk4MCwxMCArMTE5ODYsMTAgQEAgdm9pZCB0ZXN0
U3BpbGxVc2VMYXJnZXJUaGFuRGVmKCkKICAgICBWYWx1ZSogdHJ1bmNhdGVkID0gdGhlbkNhc2Ut
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgWkV4dDMyLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNh
c2UtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLCBhcmd1bWVudCkpOwog
ICAgIFVwc2lsb25WYWx1ZSogdGhlblJlc3VsdCA9IHRoZW5DYXNlLT5hcHBlbmROZXc8VXBzaWxv
blZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdHJ1bmNhdGVkKTsKLSAgICB0aGVuQ2FzZS0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0
YWlsKSk7CisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBP
cmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKIAogICAgIFVwc2lsb25WYWx1ZSogZWxz
ZVJlc3VsdCA9IGVsc2VDYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgYXJndW1lbnQpOwotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKKyAgICBlbHNlQ2FzZS0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxv
Y2sodGFpbCkpOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDEwMDsgKytpKSB7CiAg
ICAgICAgIFBhdGNocG9pbnRWYWx1ZSogcHJldmVudFRhaWxEdXBsaWNhdGlvbiA9IHRhaWwtPmFw
cGVuZE5ldzxQYXRjaHBvaW50VmFsdWU+KHByb2MsIFZvaWQsIE9yaWdpbigpKTsKQEAgLTEyMDA0
LDcgKzEyMDEwLDcgQEAgdm9pZCB0ZXN0U3BpbGxVc2VMYXJnZXJUaGFuRGVmKCkKICAgICBWYWx1
ZSogcGhpID0gdGFpbC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBQaGksIEludDY0LCBPcmlnaW4o
KSk7CiAgICAgdGhlblJlc3VsdC0+c2V0UGhpKHBoaSk7CiAgICAgZWxzZVJlc3VsdC0+c2V0UGhp
KHBoaSk7Ci0gICAgdGFpbC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcGhpKTsKKyAgICB0YWlsLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcGhpKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAg
ICAgQ0hFQ0soaW52b2tlPHVpbnQ2NF90PigqY29kZSwgMSwgMHhmZmZmZmZmZjAwMDAwMDAwKSA9
PSAwKTsKQEAgLTEyMDg2LDEyICsxMjA5MiwyNDQgQEAgdm9pZCB0ZXN0TGF0ZVJlZ2lzdGVyKCkK
ICAgICAgICAgICAgIGppdC5ub3AoKTsKICAgICAgICAgICAgIGppdC5ub3AoKTsKICAgICAgICAg
fSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgc2Vjb25kUGF0Y2hwb2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZFBhdGNocG9pbnQpOwogICAgIAogICAgIGF1
dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgQ0hFQ0soaW52b2tlPHVpbnQ2NF90PigqY29k
ZSkgPT0gcmVzdWx0KTsKIH0KIAordm9pZCB0aHJlYWRlZEludGVycHJldGVyUHJpbnQoVmVjdG9y
PGludHB0cl90Piogc3RyZWFtLCBpbnRwdHJfdCB2YWx1ZSkKK3sKKyAgICBzdHJlYW0tPmFwcGVu
ZCh2YWx1ZSk7Cit9CisKK3ZvaWQgdGVzdFRocmVhZGVkSW50ZXJwcmV0ZXIoKQoreworICAgIC8v
IFRoaXMgY3JlYXRlcyBhIHBvb3IgbWFuJ3MgdGhyZWFkZWQgaW50ZXJwcmV0ZXIgdXNpbmcgUG9s
eUp1bXAgYW5kIHNlZXMgaWYgaXQgd29ya3MuIE5vdGUKKyAgICAvLyB0aGF0IFBvbHlKdW1wIGlz
IG5vdCBsaWtlIGluZGlyZWN0IGJyYW5jaGVzIGluIExMVk0sIHNvIHlvdSBjYW4ndCBhY3R1YWxs
eSB1c2UgaXQgdG8KKyAgICAvLyBpbXBsZW1lbnQgYSBwcm9wZXIgdGhyZWFkZWQgaW50ZXJwcmV0
ZXIuIFRoaXMgY2hlYXRzOiB0aGUgZGlzcGF0Y2ggaW5zdHJ1Y3Rpb24gaXMgYXQgdGhlIHRvcAor
ICAgIC8vIG9mIHRoZSBsb29wLiBUaGlzIGFsc28gdGVzdHMgVmFyaWFibGVWYWx1ZS4KKyAgICAK
KyAgICBQcm9jZWR1cmUgcHJvYzsKKyAgICAKKyAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOworICAgIEJhc2ljQmxvY2sqIGRpc3BhdGNoID0gcHJvYy5hZGRCbG9jaygpOwor
ICAgIEJhc2ljQmxvY2sqIGFkZFRvRGF0YVBvaW50ZXIgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAg
QmFzaWNCbG9jayogYWRkVG9Db2RlUG9pbnRlciA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBCYXNp
Y0Jsb2NrKiBhZGRUb0NvZGVQb2ludGVyVGFrZW4gPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFz
aWNCbG9jayogYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuID0gcHJvYy5hZGRCbG9jaygpOworICAg
IEJhc2ljQmxvY2sqIGFkZFRvRGF0YSA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBCYXNpY0Jsb2Nr
KiBwcmludCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBCYXNpY0Jsb2NrKiBzdG9wID0gcHJvYy5h
ZGRCbG9jaygpOworICAgIAorICAgIFZhcmlhYmxlKiBkYXRhUG9pbnRlciA9IHByb2MuYWRkVmFy
aWFibGUocG9pbnRlclR5cGUoKSk7CisgICAgVmFyaWFibGUqIGNvZGVQb2ludGVyID0gcHJvYy5h
ZGRWYXJpYWJsZShwb2ludGVyVHlwZSgpKTsKKyAgICAKKyAgICByb290LT5hcHBlbmROZXc8VmFy
aWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGRhdGFQb2ludGVyLAor
ICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOworICAgIHJvb3QtPmFwcGVuZE5ldzxWYXJpYWJsZVZh
bHVlPigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIsCisgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIxKSk7CisgICAgVmFsdWUqIGNvbnRleHQgPSByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMik7
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBG
cmVxdWVudGVkQmxvY2soZGlzcGF0Y2gpKTsKKworICAgIFZhbHVlKiBjb2RlUG9pbnRlclZhbHVl
ID0KKyAgICAgICAgZGlzcGF0Y2gtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPihwcm9jLCBCMzo6
R2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIpOworICAgIFBhdGNocG9pbnRWYWx1ZSogcG9seUp1
bXAgPSBkaXNwYXRjaC0+YXBwZW5kTmV3PFBhdGNocG9pbnRWYWx1ZT4ocHJvYywgVm9pZCwgT3Jp
Z2luKCkpOworICAgIHBvbHlKdW1wLT5lZmZlY3RzLnRlcm1pbmFsID0gdHJ1ZTsKKyAgICBwb2x5
SnVtcC0+YXBwZW5kU29tZVJlZ2lzdGVyKGNvZGVQb2ludGVyVmFsdWUpOworICAgIGRpc3BhdGNo
LT5hcHBlbmRTdWNjZXNzb3IoRnJlcXVlbnRlZEJsb2NrKGFkZFRvRGF0YVBvaW50ZXIpKTsKKyAg
ICBkaXNwYXRjaC0+YXBwZW5kU3VjY2Vzc29yKEZyZXF1ZW50ZWRCbG9jayhhZGRUb0NvZGVQb2lu
dGVyKSk7CisgICAgZGlzcGF0Y2gtPmFwcGVuZFN1Y2Nlc3NvcihGcmVxdWVudGVkQmxvY2soYWRk
VG9EYXRhKSk7CisgICAgZGlzcGF0Y2gtPmFwcGVuZFN1Y2Nlc3NvcihGcmVxdWVudGVkQmxvY2so
cHJpbnQpKTsKKyAgICBkaXNwYXRjaC0+YXBwZW5kU3VjY2Vzc29yKEZyZXF1ZW50ZWRCbG9jayhz
dG9wKSk7CisgICAgCisgICAgLy8gT3VyICJvcGNvZGVzIi4gVGhleSB3aWxsIGhhdmUgbWVhbmlu
ZyBvbmNlIHdlIGNvbXBpbGUuCisgICAgaW50cHRyX3QgQWRkRFAgPSAwOworICAgIGludHB0cl90
IEFkZENQID0gMDsKKyAgICBpbnRwdHJfdCBBZGQgPSAwOworICAgIGludHB0cl90IFByaW50ID0g
MDsKKyAgICBpbnRwdHJfdCBTdG9wID0gMDsKKyAgICBwb2x5SnVtcC0+c2V0R2VuZXJhdG9yKAor
ICAgICAgICBbJl0gKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25Q
YXJhbXMmIHBhcmFtcykgeworICAgICAgICAgICAgaml0Lmp1bXAoQ0NhbGxIZWxwZXJzOjpBZGRy
ZXNzKHBhcmFtc1swXS5ncHIoKSkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBWZWN0b3I8
Qm94PENDYWxsSGVscGVyczo6TGFiZWw+PiBsYWJlbHMgPSBwYXJhbXMuc3VjY2Vzc29yTGFiZWxz
KCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGppdC5hZGRMaW5rVGFzaygKKyAgICAgICAg
ICAgICAgICBbJiwgbGFiZWxzXSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikgeworICAgICAgICAg
ICAgICAgICAgICBhdXRvIGdldCA9IFsmXSAoc2l6ZV90IGluZGV4KSAtPiBpbnRwdHJfdCB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYml0d2lzZV9jYXN0PGludHB0cl90PigKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rQnVmZmVyLmxvY2F0aW9uT2YoKmxhYmVsc1tp
bmRleF0pLmV4ZWN1dGFibGVBZGRyZXNzKCkpOworICAgICAgICAgICAgICAgICAgICB9OworICAg
ICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgQWRkRFAgPSBnZXQoMCk7Cisg
ICAgICAgICAgICAgICAgICAgIEFkZENQID0gZ2V0KDEpOworICAgICAgICAgICAgICAgICAgICBB
ZGQgPSBnZXQoMik7CisgICAgICAgICAgICAgICAgICAgIFByaW50ID0gZ2V0KDMpOworICAgICAg
ICAgICAgICAgICAgICBTdG9wID0gZ2V0KDQpOworICAgICAgICAgICAgICAgIH0pOworICAgICAg
ICB9KTsKKyAgICAKKyAgICAvLyBBZGREUCA8b3BlcmFuZD46IGFkZHMgPG9wZXJhbmQ+IHRvIERQ
LgorICAgIGNvZGVQb2ludGVyVmFsdWUgPQorICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBl
bmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGNvZGVQb2ludGVy
KTsKKyAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAg
ICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGRhdGFQb2ludGVyLAorICAgICAgICBhZGRUb0RhdGFQ
b2ludGVyLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgQjM6OkFkZCwgT3Jp
Z2luKCksCisgICAgICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVW
YWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGRhdGFQb2ludGVyKSwKKyAgICAgICAgICAg
IGFkZFRvRGF0YVBvaW50ZXItPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICAgICAgcHJv
YywgTXVsLCBPcmlnaW4oKSwKKyAgICAgICAgICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBl
bmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICAgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2lu
dGVyVHlwZSgpLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwgc2l6ZW9mKGludHB0cl90KSks
CisgICAgICAgICAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kSW50Q29uc3RhbnQoCisg
ICAgICAgICAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLCBwb2ludGVyVHlwZSgpLCBzaXplb2Yo
aW50cHRyX3QpKSkpKTsKKyAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVW
YWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyLAorICAgICAg
ICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgcHJvYywg
QjM6OkFkZCwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUsCisgICAgICAgICAgICBhZGRUb0Rh
dGFQb2ludGVyLT5hcHBlbmRJbnRDb25zdGFudCgKKyAgICAgICAgICAgICAgICBwcm9jLCBPcmln
aW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6ZW9mKGludHB0cl90KSAqIDIpKSk7CisgICAgYWRkVG9E
YXRhUG9pbnRlci0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBG
cmVxdWVudGVkQmxvY2soZGlzcGF0Y2gpKTsKKyAgICAKKyAgICAvLyBBZGRDUCA8b3BlcmFuZD46
IGFkZHMgPG9wZXJhbmQ+IHRvIENQIGlmIHRoZSBjdXJyZW50IHZhbHVlIGF0IERQIGlzIG5vbi16
ZXJvLCBvdGhlcndpc2UKKyAgICAvLyBmYWxscyB0aHJvdWdoIG5vcm1hbGx5LgorICAgIGNvZGVQ
b2ludGVyVmFsdWUgPQorICAgICAgICBhZGRUb0NvZGVQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFi
bGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyKTsKKyAgICBWYWx1
ZSogZGF0YVBvaW50ZXJWYWx1ZSA9CisgICAgICAgIGFkZFRvQ29kZVBvaW50ZXItPmFwcGVuZE5l
dzxWYXJpYWJsZVZhbHVlPihwcm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwgZGF0YVBvaW50ZXIpOwor
ICAgIGFkZFRvQ29kZVBvaW50ZXItPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKKyAgICAgICAgcHJv
YywgQnJhbmNoLCBPcmlnaW4oKSwKKyAgICAgICAgYWRkVG9Db2RlUG9pbnRlci0+YXBwZW5kTmV3
PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9y
aWdpbigpLCBkYXRhUG9pbnRlclZhbHVlKSwKKyAgICAgICAgRnJlcXVlbnRlZEJsb2NrKGFkZFRv
Q29kZVBvaW50ZXJUYWtlbiksIEZyZXF1ZW50ZWRCbG9jayhhZGRUb0NvZGVQb2ludGVyTm90VGFr
ZW4pKTsKKyAgICBhZGRUb0NvZGVQb2ludGVyVGFrZW4tPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVl
PigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIsCisgICAgICAgIGFk
ZFRvQ29kZVBvaW50ZXJUYWtlbi0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2Ms
IEIzOjpBZGQsIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLAorICAgICAgICAgICAgYWRkVG9D
b2RlUG9pbnRlclRha2VuLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgICAgIHByb2Ms
IE11bCwgT3JpZ2luKCksCisgICAgICAgICAgICAgICAgYWRkVG9Db2RlUG9pbnRlclRha2VuLT5h
cHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICAgICAgICAgICAgICBwcm9jLCBMb2FkLCBw
b2ludGVyVHlwZSgpLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwgc2l6ZW9mKGludHB0cl90
KSksCisgICAgICAgICAgICAgICAgYWRkVG9Db2RlUG9pbnRlclRha2VuLT5hcHBlbmRJbnRDb25z
dGFudCgKKyAgICAgICAgICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBlKCks
IHNpemVvZihpbnRwdHJfdCkpKSkpOworICAgIGFkZFRvQ29kZVBvaW50ZXJUYWtlbi0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZGlz
cGF0Y2gpKTsKKyAgICBhZGRUb0NvZGVQb2ludGVyTm90VGFrZW4tPmFwcGVuZE5ldzxWYXJpYWJs
ZVZhbHVlPigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIsCisgICAg
ICAgIGFkZFRvQ29kZVBvaW50ZXJOb3RUYWtlbi0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAg
ICAgIHByb2MsIEIzOjpBZGQsIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLAorICAgICAgICAg
ICAgYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuLT5hcHBlbmRJbnRDb25zdGFudCgKKyAgICAgICAg
ICAgICAgICBwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6ZW9mKGludHB0cl90KSAq
IDIpKSk7CisgICAgYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuLT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCisgICAgICAgIHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZGlzcGF0
Y2gpKTsKKworICAgIC8vIEFkZCA8b3BlcmFuZD46IGFkZHMgPG9wZXJhbmQ+IHRvIHRoZSBzbG90
IHBvaW50ZWQgdG8gYnkgRFAuCisgICAgY29kZVBvaW50ZXJWYWx1ZSA9IGFkZFRvRGF0YS0+YXBw
ZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRl
cik7CisgICAgZGF0YVBvaW50ZXJWYWx1ZSA9IGFkZFRvRGF0YS0+YXBwZW5kTmV3PFZhcmlhYmxl
VmFsdWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRlcik7CisgICAgYWRkVG9E
YXRhLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICBwcm9jLCBTdG9yZSwgT3JpZ2lu
KCksCisgICAgICAgIGFkZFRvRGF0YS0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHBy
b2MsIEIzOjpBZGQsIE9yaWdpbigpLAorICAgICAgICAgICAgYWRkVG9EYXRhLT5hcHBlbmROZXc8
TWVtb3J5VmFsdWU+KAorICAgICAgICAgICAgICAgIHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCks
IE9yaWdpbigpLCBkYXRhUG9pbnRlclZhbHVlKSwKKyAgICAgICAgICAgIGFkZFRvRGF0YS0+YXBw
ZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVy
VHlwZSgpLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwgc2l6ZW9mKGludHB0cl90KSkpLAor
ICAgICAgICBkYXRhUG9pbnRlclZhbHVlKTsKKyAgICBhZGRUb0RhdGEtPmFwcGVuZE5ldzxWYXJp
YWJsZVZhbHVlPigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIsCisg
ICAgICAgIGFkZFRvRGF0YS0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEIz
OjpBZGQsIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLAorICAgICAgICAgICAgYWRkVG9EYXRh
LT5hcHBlbmRJbnRDb25zdGFudChwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6ZW9m
KGludHB0cl90KSAqIDIpKSk7CisgICAgYWRkVG9EYXRhLT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhkaXNwYXRjaCkpOworICAgIAor
ICAgIC8vIFByaW50OiAicHJpbnRzIiB0aGUgdmFsdWUgcG9pbnRlZCB0byBieSBEUC4gV2hhdCB0
aGlzIGFjdHVhbGx5IG1lYW5zIGlzIHRoYXQgdGhlIHZhbHVlIGlzCisgICAgLy8gYXBwZW5kZWQg
dG8gdGhlIHN0cmVhbSB2ZWN0b3IgYnkgdGhlIHRocmVhZGVkSW50ZXJwcmV0ZXJQcmludCBmdW5j
dGlvbi4KKyAgICBjb2RlUG9pbnRlclZhbHVlID0gcHJpbnQtPmFwcGVuZE5ldzxWYXJpYWJsZVZh
bHVlPihwcm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIpOworICAgIGRhdGFQb2lu
dGVyVmFsdWUgPSBwcmludC0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHByb2MsIEIzOjpHZXQs
IE9yaWdpbigpLCBkYXRhUG9pbnRlcik7CisgICAgcHJpbnQtPmFwcGVuZE5ldzxDQ2FsbFZhbHVl
PigKKyAgICAgICAgcHJvYywgVm9pZCwgT3JpZ2luKCksCisgICAgICAgIHByaW50LT5hcHBlbmRO
ZXc8Q29uc3RQdHJWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgYml0d2lzZV9j
YXN0PHZvaWQqPih0aHJlYWRlZEludGVycHJldGVyUHJpbnQpKSwKKyAgICAgICAgY29udGV4dCwK
KyAgICAgICAgcHJpbnQtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgcG9pbnRl
clR5cGUoKSwgT3JpZ2luKCksIGRhdGFQb2ludGVyVmFsdWUpKTsKKyAgICBwcmludC0+YXBwZW5k
TmV3PFZhcmlhYmxlVmFsdWU+KAorICAgICAgICBwcm9jLCBTZXQsIE9yaWdpbigpLCBjb2RlUG9p
bnRlciwKKyAgICAgICAgcHJpbnQtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICBwcm9j
LCBCMzo6QWRkLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwKKyAgICAgICAgICAgIHByaW50
LT5hcHBlbmRJbnRDb25zdGFudChwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6ZW9m
KGludHB0cl90KSkpKTsKKyAgICBwcmludC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1
bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZGlzcGF0Y2gpKTsKKyAgICAKKyAgICAvLyBT
dG9wOiByZXR1cm5zLgorICAgIHN0b3AtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKKyAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICAgICAgc3RvcC0+YXBwZW5kSW50Q29uc3RhbnQo
cHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBlKCksIDApKTsKKyAgICAKKyAgICBhdXRvIGludGVy
cHJldGVyID0gY29tcGlsZShwcm9jKTsKKyAgICAKKyAgICBDSEVDSyhBZGREUCk7CisgICAgQ0hF
Q0soQWRkQ1ApOworICAgIENIRUNLKEFkZCk7CisgICAgQ0hFQ0soUHJpbnQpOworICAgIENIRUNL
KFN0b3ApOworICAgIAorICAgIFZlY3RvcjxpbnRwdHJfdD4gZGF0YTsKKyAgICBWZWN0b3I8aW50
cHRyX3Q+IGNvZGU7CisgICAgVmVjdG9yPGludHB0cl90PiBzdHJlYW07CisgICAgCisgICAgZGF0
YS5hcHBlbmQoMSk7CisgICAgZGF0YS5hcHBlbmQoMCk7CisgICAgCisgICAgaWYgKHNob3VsZEJl
VmVyYm9zZSgpKQorICAgICAgICBkYXRhTG9nKCJkYXRhID0gIiwgbGlzdER1bXAoZGF0YSksICJc
biIpOworICAgIAorICAgIC8vIFdlJ2xsIHdyaXRlIGEgcHJvZ3JhbSB0aGF0IHByaW50cyB0aGUg
bnVtYmVycyAxLi4xMDAuCisgICAgLy8gV2UgZXhwZWN0IERQIHRvIHBvaW50IGF0ICMwLgorICAg
IGNvZGUuYXBwZW5kKEFkZENQKTsKKyAgICBjb2RlLmFwcGVuZCg2KTsgLy8gZ28gdG8gbG9vcCBi
b2R5CisgICAgCisgICAgLy8gTG9vcCByZS1lbnRyeToKKyAgICAvLyBXZSBleHBlY3QgRFAgdG8g
cG9pbnQgYXQgIzEgYW5kIGZvciAjMSB0byBiZSBvZmZzZXQgYnkgLTEwMC4KKyAgICBjb2RlLmFw
cGVuZChBZGQpOworICAgIGNvZGUuYXBwZW5kKDEwMCk7CisgICAgCisgICAgY29kZS5hcHBlbmQo
QWRkRFApOworICAgIGNvZGUuYXBwZW5kKC0xKTsKKyAgICAKKyAgICAvLyBMb29wIGhlYWRlcjoK
KyAgICAvLyBXZSBleHBlY3QgRFAgdG8gcG9pbnQgYXQgIzAuCisgICAgY29kZS5hcHBlbmQoQWRk
RFApOworICAgIGNvZGUuYXBwZW5kKDEpOworICAgIAorICAgIGNvZGUuYXBwZW5kKEFkZCk7Cisg
ICAgY29kZS5hcHBlbmQoMSk7CisgICAgCisgICAgY29kZS5hcHBlbmQoUHJpbnQpOworICAgIAor
ICAgIGNvZGUuYXBwZW5kKEFkZCk7CisgICAgY29kZS5hcHBlbmQoLTEwMCk7CisgICAgCisgICAg
Ly8gV2Ugd2FudCB0byBzdG9wIGlmIGl0J3MgemVybyBhbmQgY29udGludWUgaWYgaXQncyBub24t
emVyby4gQWRkQ1AgdGFrZXMgdGhlIGJyYW5jaCBpZiBpdCdzCisgICAgLy8gbm9uLXplcm8uCisg
ICAgY29kZS5hcHBlbmQoQWRkQ1ApOworICAgIGNvZGUuYXBwZW5kKC0xMSk7IC8vIGdvIHRvIGxv
b3AgcmUtZW50cnkuCisgICAgCisgICAgY29kZS5hcHBlbmQoU3RvcCk7CisgICAgCisgICAgaWYg
KHNob3VsZEJlVmVyYm9zZSgpKQorICAgICAgICBkYXRhTG9nKCJjb2RlID0gIiwgbGlzdER1bXAo
Y29kZSksICJcbiIpOworICAgIAorICAgIENIRUNLKCFpbnZva2U8aW50cHRyX3Q+KCppbnRlcnBy
ZXRlciwgZGF0YS5kYXRhKCksIGNvZGUuZGF0YSgpLCAmc3RyZWFtKSk7CisgICAgCisgICAgQ0hF
Q0soc3RyZWFtLnNpemUoKSA9PSAxMDApOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCAx
MDA7ICsraSkKKyAgICAgICAgQ0hFQ0soc3RyZWFtW2ldID09IGkgKyAxKTsKKyAgICAKKyAgICBp
ZiAoc2hvdWxkQmVWZXJib3NlKCkpCisgICAgICAgIGRhdGFMb2coInN0cmVhbSA9ICIsIGxpc3RE
dW1wKHN0cmVhbSksICJcbiIpOworfQorCiB2b2lkIHRlc3RSZWR1Y2VTdHJlbmd0aENoZWNrQm90
dG9tVXNlSW5Bbm90aGVyQmxvY2soKQogewogICAgIFByb2NlZHVyZSBwcm9jOwpAQCAtMTIxMTAs
NyArMTIzNDgsNyBAQCB2b2lkIHRlc3RSZWR1Y2VTdHJlbmd0aENoZWNrQm90dG9tVXNlSW5BCiAg
ICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwogICAgIFZhbHVlKiBhcmcgPSBvbmUt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKTsKLSAgICBvbmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAs
IE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodHdvKSk7CisgICAgb25lLT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0d28pKTsKICAg
ICAKICAgICBjaGVjayA9IHR3by0+YXBwZW5kTmV3PENoZWNrVmFsdWU+KAogICAgICAgICBwcm9j
LCBDaGVja0FkZCwgT3JpZ2luKCksIGFyZywKQEAgLTEyMTE5LDcgKzEyMzU3LDcgQEAgdm9pZCB0
ZXN0UmVkdWNlU3RyZW5ndGhDaGVja0JvdHRvbVVzZUluQQogICAgICAgICBbJl0gKENDYWxsSGVs
cGVycyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsKICAgICAgICAgICAgIENI
RUNLKCEiU2hvdWxkIG5vdCBleGVjdXRlIik7CiAgICAgICAgIH0pOwotICAgIHR3by0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2spOworICAgIHR3
by0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrKTsK
ICAgICAKICAgICBwcm9jLnJlc2V0UmVhY2hhYmlsaXR5KCk7CiAgICAgcmVkdWNlU3RyZW5ndGgo
cHJvYyk7CkBAIC0xMjEzNCwxMSArMTIzNzIsMTEgQEAgdm9pZCB0ZXN0UmVzZXRSZWFjaGFiaWxp
dHlEYW5nbGluZ1JlZmVyZQogICAgIAogICAgIFVwc2lsb25WYWx1ZSogdXBzaWxvbiA9IG9uZS0+
YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4oCiAgICAgICAgIHByb2MsIE9yaWdpbigpLCBvbmUtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwotICAgIG9uZS0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgT29wcywgT3JpZ2luKCkpOworICAgIG9uZS0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIE9vcHMsIE9yaWdpbigpKTsKICAgICAKICAgICBWYWx1
ZSogcGhpID0gdHdvLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFBoaSwgSW50MzIsIE9yaWdpbigp
KTsKICAgICB1cHNpbG9uLT5zZXRQaGkocGhpKTsKLSAgICB0d28tPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIE9vcHMsIE9yaWdpbigpKTsKKyAgICB0d28tPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBPb3BzLCBPcmlnaW4oKSk7CiAgICAgCiAgICAgcHJvYy5yZXNldFJlYWNoYWJp
bGl0eSgpOwogICAgIHZhbGlkYXRlKHByb2MpOwpAQCAtMTM1NDcsNiArMTM3ODUsNyBAQCB2b2lk
IHJ1bihjb25zdCBjaGFyKiBmaWx0ZXIpCiAgICAgUlVOKHRlc3RTcGlsbERlZlNtYWxsZXJUaGFu
VXNlKCkpOwogICAgIFJVTih0ZXN0U3BpbGxVc2VMYXJnZXJUaGFuRGVmKCkpOwogICAgIFJVTih0
ZXN0TGF0ZVJlZ2lzdGVyKCkpOworICAgIFJVTih0ZXN0VGhyZWFkZWRJbnRlcnByZXRlcigpKTsK
ICAgICBSVU4odGVzdFJlZHVjZVN0cmVuZ3RoQ2hlY2tCb3R0b21Vc2VJbkFub3RoZXJCbG9jaygp
KTsKICAgICBSVU4odGVzdFJlc2V0UmVhY2hhYmlsaXR5RGFuZ2xpbmdSZWZlcmVuY2UoKSk7CiAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmNwcAkocmV2aXNpb24g
MjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiQWlyQ0NhbGxTcGVjaWFs
LmgiCiAjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrVXRpbHMuaCIKKyNpbmNsdWRlICJCM1Byb2NlZHVy
ZS5oIgogI2luY2x1ZGUgIkIzU3RhY2tTbG90LmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3Bh
Y2UgQjMgeyBuYW1lc3BhY2UgQWlyIHsKQEAgLTEzNSw2ICsxMzYsMTEgQEAgdm9pZCBDb2RlOjph
ZGRGYXN0VG1wKFRtcCB0bXApCiAgICAgbV9mYXN0VG1wcy5hZGQodG1wKTsKIH0KIAordm9pZCog
Q29kZTo6YWRkRGF0YVNlY3Rpb24oc2l6ZV90IHNpemUpCit7CisgICAgcmV0dXJuIG1fcHJvYy5h
ZGREYXRhU2VjdGlvbihzaXplKTsKK30KKwogdW5zaWduZWQgQ29kZTo6anNIYXNoKCkgY29uc3QK
IHsKICAgICB1bnNpZ25lZCByZXN1bHQgPSAwOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJDb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9BaXJDb2RlLmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvQWlyQ29kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAjaW5j
bHVkZSAiQWlyU3BlY2lhbC5oIgogI2luY2x1ZGUgIkFpclN0YWNrU2xvdC5oIgogI2luY2x1ZGUg
IkFpclRtcC5oIgorI2luY2x1ZGUgIkIzSW5kZXhNYXAuaCIKICNpbmNsdWRlICJCM1NwYXJzZUNv
bGxlY3Rpb24uaCIKICNpbmNsdWRlICJSZWdpc3RlckF0T2Zmc2V0TGlzdC5oIgogI2luY2x1ZGUg
IlN0YWNrQWxpZ25tZW50LmgiCkBAIC0yMDMsNiArMjA0LDggQEAgcHVibGljOgogICAgIHZvaWQg
YWRkRmFzdFRtcChUbXApOwogICAgIGJvb2wgaXNGYXN0VG1wKFRtcCB0bXApIGNvbnN0IHsgcmV0
dXJuIG1fZmFzdFRtcHMuY29udGFpbnModG1wKTsgfQogICAgIAorICAgIHZvaWQqIGFkZERhdGFT
ZWN0aW9uKHNpemVfdCk7CisgICAgCiAgICAgLy8gVGhlIG5hbWUgaGFzIHRvIGJlIGEgc3RyaW5n
IGxpdGVyYWwsIHNpbmNlIHdlIGRvbid0IGRvIGFueSBtZW1vcnkgbWFuYWdlbWVudCBmb3IgdGhl
IHN0cmluZy4KICAgICB2b2lkIHNldExhc3RQaGFzZU5hbWUoY29uc3QgY2hhciogbmFtZSkKICAg
ICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckN1c3RvbS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ3VzdG9tLmgJKHJldmlz
aW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ3VzdG9tLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTg0LDEwICs4NCwxNSBAQCBzdHJ1Y3QgUGF0Y2hDdXN0b20gewog
ICAgIHsKICAgICAgICAgcmV0dXJuIGluc3QuYXJnc1swXS5zcGVjaWFsKCktPnNob3VsZFRyeUFs
aWFzaW5nRGVmKGluc3QpOwogICAgIH0KKyAgICAKKyAgICBzdGF0aWMgYm9vbCBpc1Rlcm1pbmFs
KEluc3QmIGluc3QpCisgICAgeworICAgICAgICByZXR1cm4gaW5zdC5hcmdzWzBdLnNwZWNpYWwo
KS0+aXNUZXJtaW5hbChpbnN0KTsKKyAgICB9CiAKICAgICBzdGF0aWMgYm9vbCBoYXNOb25BcmdO
b25Db250cm9sRWZmZWN0cyhJbnN0JiBpbnN0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGluc3Qu
YXJnc1swXS5zcGVjaWFsKCktPmhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKCk7CisgICAgICAg
IHJldHVybiBpbnN0LmFyZ3NbMF0uc3BlY2lhbCgpLT5oYXNOb25BcmdOb25Db250cm9sRWZmZWN0
cyhpbnN0KTsKICAgICB9CiAKICAgICBzdGF0aWMgQ0NhbGxIZWxwZXJzOjpKdW1wIGdlbmVyYXRl
KApAQCAtMTM4LDYgKzE0MywxMSBAQCBzdHJ1Y3QgQ0NhbGxDdXN0b20gewogICAgIHsKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfQorICAgIAorICAgIHN0YXRpYyBib29sIGlzVGVybWluYWwo
SW5zdCYpCisgICAgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogCiAgICAgc3RhdGlj
IGJvb2wgaGFzTm9uQXJnTm9uQ29udHJvbEVmZmVjdHMoSW5zdCYpCiAgICAgewpAQCAtMTk3LDYg
KzIwNywxMSBAQCBzdHJ1Y3QgU2h1ZmZsZUN1c3RvbSB7CiAgICAgICAgIH0KICAgICB9CiAKKyAg
ICBzdGF0aWMgYm9vbCBpc1Rlcm1pbmFsKEluc3QmKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIH0KKwogICAgIHN0YXRpYyBib29sIGhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3Rz
KEluc3QmKQogICAgIHsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0ZS5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC01MCw4ICs1MCwxMCBAQAogI2luY2x1ZGUgIkIzSW5kZXhNYXAuaCIKICNpbmNsdWRl
ICJCM1Byb2NlZHVyZS5oIgogI2luY2x1ZGUgIkIzVGltaW5nU2NvcGUuaCIKKyNpbmNsdWRlICJC
M1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgogI2luY2x1ZGUgIkRp
c2FsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZS5oIgorI2luY2x1ZGUgIkxpbmtCdWZmZXIu
aCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7IG5hbWVzcGFjZSBBaXIgewogCkBA
IC0xNzMsMTIgKzE3NSwxNiBAQCB2b2lkIGdlbmVyYXRlKENvZGUmIGNvZGUsIENDYWxsSGVscGVy
cyYgCiAKICAgICBHZW5lcmF0aW9uQ29udGV4dCBjb250ZXh0OwogICAgIGNvbnRleHQuY29kZSA9
ICZjb2RlOwotICAgIEluZGV4TWFwPEJhc2ljQmxvY2ssIENDYWxsSGVscGVyczo6TGFiZWw+IGJs
b2NrTGFiZWxzKGNvZGUuc2l6ZSgpKTsKKyAgICBjb250ZXh0LmJsb2NrTGFiZWxzLnJlc2l6ZShj
b2RlLnNpemUoKSk7CisgICAgZm9yIChCYXNpY0Jsb2NrKiBibG9jayA6IGNvZGUpIHsKKyAgICAg
ICAgaWYgKGJsb2NrKQorICAgICAgICAgICAgY29udGV4dC5ibG9ja0xhYmVsc1tibG9ja10gPSBC
b3g8Q0NhbGxIZWxwZXJzOjpMYWJlbD46OmNyZWF0ZSgpOworICAgIH0KICAgICBJbmRleE1hcDxC
YXNpY0Jsb2NrLCBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0PiBibG9ja0p1bXBzKGNvZGUuc2l6ZSgp
KTsKIAogICAgIGF1dG8gbGluayA9IFsmXSAoQ0NhbGxIZWxwZXJzOjpKdW1wIGp1bXAsIEJhc2lj
QmxvY2sqIHRhcmdldCkgewotICAgICAgICBpZiAoYmxvY2tMYWJlbHNbdGFyZ2V0XS5pc1NldCgp
KSB7Ci0gICAgICAgICAgICBqdW1wLmxpbmtUbyhibG9ja0xhYmVsc1t0YXJnZXRdLCAmaml0KTsK
KyAgICAgICAgaWYgKGNvbnRleHQuYmxvY2tMYWJlbHNbdGFyZ2V0XS0+aXNTZXQoKSkgeworICAg
ICAgICAgICAganVtcC5saW5rVG8oKmNvbnRleHQuYmxvY2tMYWJlbHNbdGFyZ2V0XSwgJmppdCk7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIApAQCAtMTk1LDE2ICsyMDEsMjIgQEAg
dm9pZCBnZW5lcmF0ZShDb2RlJiBjb2RlLCBDQ2FsbEhlbHBlcnMmIAogICAgIH07CiAKICAgICBm
b3IgKEJhc2ljQmxvY2sqIGJsb2NrIDogY29kZSkgeworICAgICAgICBjb250ZXh0LmN1cnJlbnRC
bG9jayA9IGJsb2NrOworICAgICAgICBjb250ZXh0LmluZGV4SW5CbG9jayA9IFVJTlRfTUFYOwog
ICAgICAgICBibG9ja0p1bXBzW2Jsb2NrXS5saW5rKCZqaXQpOwotICAgICAgICBibG9ja0xhYmVs
c1tibG9ja10gPSBqaXQubGFiZWwoKTsKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpMYWJlbCBsYWJl
bCA9IGppdC5sYWJlbCgpOworICAgICAgICAqY29udGV4dC5ibG9ja0xhYmVsc1tibG9ja10gPSBs
YWJlbDsKICAgICAgICAgQVNTRVJUKGJsb2NrLT5zaXplKCkgPj0gMSk7CiAgICAgICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBibG9jay0+c2l6ZSgpIC0gMTsgKytpKSB7CisgICAgICAgICAg
ICBjb250ZXh0LmluZGV4SW5CbG9jayA9IGk7CiAgICAgICAgICAgICBJbnN0JiBpbnN0ID0gYmxv
Y2stPmF0KGkpOwogICAgICAgICAgICAgYWRkSXRlbShpbnN0KTsKICAgICAgICAgICAgIENDYWxs
SGVscGVyczo6SnVtcCBqdW1wID0gaW5zdC5nZW5lcmF0ZShqaXQsIGNvbnRleHQpOwogICAgICAg
ICAgICAgQVNTRVJUX1VOVVNFRChqdW1wLCAhanVtcC5pc1NldCgpKTsKICAgICAgICAgfQogCisg
ICAgICAgIGNvbnRleHQuaW5kZXhJbkJsb2NrID0gYmxvY2stPnNpemUoKSAtIDE7CisgICAgICAg
IAogICAgICAgICBpZiAoYmxvY2stPmxhc3QoKS5vcGNvZGUgPT0gSnVtcAogICAgICAgICAgICAg
JiYgYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDApID09IGNvZGUuZmluZE5leHRCbG9jayhibG9jaykp
CiAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTIyOCwyNiArMjQwLDMwIEBAIHZvaWQgZ2VuZXJh
dGUoQ29kZSYgY29kZSwgQ0NhbGxIZWxwZXJzJiAKICAgICAgICAgICAgIGFkZEl0ZW0oYmxvY2st
Pmxhc3QoKSk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQotCisgICAgICAgIAog
ICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAganVtcCA9IGJsb2NrLT5sYXN0KCkuZ2VuZXJhdGUo
aml0LCBjb250ZXh0KTsKLSAgICAgICAgc3dpdGNoIChibG9jay0+bnVtU3VjY2Vzc29ycygpKSB7
Ci0gICAgICAgIGNhc2UgMDoKLSAgICAgICAgICAgIEFTU0VSVCghanVtcC5pc1NldCgpKTsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIDE6Ci0gICAgICAgICAgICBsaW5rKGp1bXAs
IGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
Y2FzZSAyOgotICAgICAgICAgICAgbGluayhqdW1wLCBibG9jay0+c3VjY2Vzc29yQmxvY2soMCkp
OwotICAgICAgICAgICAgaWYgKGJsb2NrLT5zdWNjZXNzb3JCbG9jaygxKSAhPSBjb2RlLmZpbmRO
ZXh0QmxvY2soYmxvY2spKQotICAgICAgICAgICAgICAgIGxpbmsoaml0Lmp1bXAoKSwgYmxvY2st
PnN1Y2Nlc3NvckJsb2NrKDEpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0
OgotICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAvLyBUaGUganVtcCB3b24ndCBiZSBzZXQgZm9yIHBhdGNocG9pbnRz
LiBJdCB3b24ndCBiZSBzZXQgZm9yIE9vcHMgYmVjYXVzZSB0aGVuIGl0IHdvbid0IGhhdmUKKyAg
ICAgICAgLy8gYW55IHN1Y2Nlc3NvcnMuCisgICAgICAgIGlmIChqdW1wLmlzU2V0KCkpIHsKKyAg
ICAgICAgICAgIHN3aXRjaCAoYmxvY2stPm51bVN1Y2Nlc3NvcnMoKSkgeworICAgICAgICAgICAg
Y2FzZSAxOgorICAgICAgICAgICAgICAgIGxpbmsoanVtcCwgYmxvY2stPnN1Y2Nlc3NvckJsb2Nr
KDApKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMjoKKyAgICAg
ICAgICAgICAgICBsaW5rKGp1bXAsIGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKSk7CisgICAgICAg
ICAgICAgICAgaWYgKGJsb2NrLT5zdWNjZXNzb3JCbG9jaygxKSAhPSBjb2RlLmZpbmROZXh0Qmxv
Y2soYmxvY2spKQorICAgICAgICAgICAgICAgICAgICBsaW5rKGppdC5qdW1wKCksIGJsb2NrLT5z
dWNjZXNzb3JCbG9jaygxKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAg
YWRkSXRlbShibG9jay0+bGFzdCgpKTsKICAgICB9CisgICAgCisgICAgY29udGV4dC5jdXJyZW50
QmxvY2sgPSBudWxscHRyOworICAgIGNvbnRleHQuaW5kZXhJbkJsb2NrID0gVUlOVF9NQVg7CiAK
ICAgICBwY1RvT3JpZ2luTWFwLmFwcGVuZEl0ZW0oaml0LmxhYmVsKCksIE9yaWdpbigpKTsKICAg
ICAvLyBGSVhNRTogTWFrZSBsYXRlIHBhdGhzIGhhdmUgT3JpZ2luczogaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MzY4OQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci9BaXJHZW5lcmF0aW9uQ29udGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGlvbkNvbnRleHQuaAkocmV2aXNpb24gMjAy
ODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0aW9uQ29udGV4
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDE0ICsyOCwxNCBAQAogCiAjaWYgRU5BQkxFKEIzX0pJVCkK
IAorI2luY2x1ZGUgIkFpckJhc2ljQmxvY2suaCIKKyNpbmNsdWRlICJCM0luZGV4TWFwLmgiCisj
aW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCisjaW5jbHVkZSA8d3RmL0JveC5oPgogI2luY2x1ZGUg
PHd0Zi9TaGFyZWRUYXNrLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCi1uYW1lc3BhY2Ug
SlNDIHsKLQotY2xhc3MgQ0NhbGxIZWxwZXJzOwotCi1uYW1lc3BhY2UgQjMgeyBuYW1lc3BhY2Ug
QWlyIHsKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UgQWlyIHsKIAog
Y2xhc3MgQ29kZTsKIApAQCAtNDQsNyArNDQsMTAgQEAgc3RydWN0IEdlbmVyYXRpb25Db250ZXh0
IHsKICAgICB0eXBlZGVmIFNoYXJlZFRhc2s8TGF0ZVBhdGhGdW5jdGlvbj4gTGF0ZVBhdGg7CiAK
ICAgICBWZWN0b3I8UmVmUHRyPExhdGVQYXRoPj4gbGF0ZVBhdGhzOwotICAgIENvZGUqIGNvZGU7
CisgICAgSW5kZXhNYXA8QmFzaWNCbG9jaywgQm94PENDYWxsSGVscGVyczo6TGFiZWw+PiBibG9j
a0xhYmVsczsKKyAgICBCYXNpY0Jsb2NrKiBjdXJyZW50QmxvY2sgeyBudWxscHRyIH07CisgICAg
dW5zaWduZWQgaW5kZXhJbkJsb2NrIHsgVUlOVF9NQVggfTsKKyAgICBDb2RlKiBjb2RlIHsgbnVs
bHB0ciB9OwogfTsKIAogfSB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjM6OkFpcgpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0LmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5zdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
NjMsNiArMTYzLDkgQEAgcHVibGljOgogICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgYXV0by1nZW5l
cmF0ZWQgYnkgb3Bjb2RlX2dlbmVyYXRvci5yYi4KICAgICBib29sIGFkbWl0c1N0YWNrKHVuc2ln
bmVkIGFyZ0luZGV4KTsKICAgICBib29sIGFkbWl0c1N0YWNrKEFyZyYpOworICAgIAorICAgIC8v
IERlZmluZWQgYnkgb3Bjb2RlX2dlbmVyYXRvci5yYi4KKyAgICBib29sIGlzVGVybWluYWwoKTsK
IAogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGlzIGluc3RydWN0aW9uIGNhbiBoYXZlIGFueSBl
ZmZlY3RzIG90aGVyIHRoYW4gY29udHJvbCBmbG93IG9yIGFyZ3VtZW50cy4KICAgICBib29sIGhh
c05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKCk7CkBAIC0xNzQsNiArMTc3LDkgQEAgcHVibGljOgog
CiAgICAgLy8gVGVsbHMgeW91IGlmIHRoaXMgb3BlcmF0aW9uIGhhcyBhcmcgZWZmZWN0cy4KICAg
ICBib29sIGhhc0FyZ0VmZmVjdHMoKTsKKyAgICAKKyAgICAvLyBUZWxscyB5b3UgaWYgdGhpcyBv
cGVyYXRpb24gaGFzIG5vbi1jb250cm9sIGVmZmVjdHMuCisgICAgYm9vbCBoYXNOb25Db250cm9s
RWZmZWN0cygpIHsgcmV0dXJuIGhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKCkgfHwgaGFzQXJn
RWZmZWN0cygpOyB9CiAKICAgICAvLyBHZW5lcmF0ZSBzb21lIGNvZGUgZm9yIHRoaXMgaW5zdHJ1
Y3Rpb24uIFRoaXMgaXMsIGxpa2UsIGxpdGVyYWxseSBvdXIgYmFja2VuZC4gSWYgdGhpcyBpcyB0
aGUKICAgICAvLyB0ZXJtaW5hbCwgaXQgcmV0dXJucyB0aGUganVtcCB0aGF0IG5lZWRzIHRvIGJl
IGxpbmtlZCBmb3IgdGhlICJ0aGVuIiBjYXNlLCB3aXRoIHRoZSAiZWxzZSIKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyU2ltcGxpZnlDRkcuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyU2ltcGxpZnlDRkcuY3BwCShyZXZpc2lv
biAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclNpbXBsaWZ5Q0ZH
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTUsMzMgKzk1LDMyIEBAIGJvb2wgc2ltcGxpZnlDRkco
Q29kZSYgY29kZSkKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAKLSAgICAgICAg
ICAgIC8vIE5vdyBjaGVjayBpZiB0aGUgYmxvY2sncyB0ZXJtaW5hbCBjYW4gYmUgcmVwbGFjZWQg
d2l0aCBhIGp1bXAuCi0gICAgICAgICAgICBpZiAoYmxvY2stPm51bVN1Y2Nlc3NvcnMoKSA+IDEp
IHsKLSAgICAgICAgICAgICAgICAvLyBUaGUgdGVybWluYWwgbXVzdCBub3QgaGF2ZSB3ZWlyZCBl
ZmZlY3RzLgotICAgICAgICAgICAgICAgIGlmICghYmxvY2stPmxhc3QoKS5oYXNBcmdFZmZlY3Rz
KCkKLSAgICAgICAgICAgICAgICAgICAgJiYgIWJsb2NrLT5sYXN0KCkuaGFzTm9uQXJnTm9uQ29u
dHJvbEVmZmVjdHMoKSkgewotICAgICAgICAgICAgICAgICAgICAvLyBBbGwgb2YgdGhlIHN1Y2Nl
c3NvcnMgbXVzdCBiZSB0aGUgc2FtZS4KLSAgICAgICAgICAgICAgICAgICAgYm9vbCBhbGxTYW1l
ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgQmFzaWNCbG9jayogZmlyc3RTdWNjZXNzb3Ig
PSBibG9jay0+c3VjY2Vzc29yQmxvY2soMCk7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDE7IGkgPCBibG9jay0+bnVtU3VjY2Vzc29ycygpOyArK2kpIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIChibG9jay0+c3VjY2Vzc29yQmxvY2soaSkgIT0gZmlyc3RTdWNj
ZXNzb3IpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxTYW1lID0gZmFsc2U7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgaWYgKGFsbFNh
bWUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRhdGFMb2coIkNoYW5naW5nICIsIHBvaW50ZXJEdW1wKGJsb2NrKSwg
IidzIHRlcm1pbmFsIHRvIGEgSnVtcC5cbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAgYmxv
Y2stPmxhc3QoKSA9IEluc3QoSnVtcCwgYmxvY2stPmxhc3QoKS5vcmlnaW4pOwotICAgICAgICAg
ICAgICAgICAgICAgICAgYmxvY2stPnN1Y2Nlc3NvcnMoKS5yZXNpemUoMSk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBibG9jay0+c3VjY2Vzc29ycygpWzBdLmZyZXF1ZW5jeSgpID0gRnJlcXVl
bmN5Q2xhc3M6Ok5vcm1hbDsKLSAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVl
OworICAgICAgICAgICAgLy8gTm93IGNoZWNrIGlmIHRoZSBibG9jaydzIHRlcm1pbmFsIGNhbiBi
ZSByZXBsYWNlZCB3aXRoIGEganVtcC4gVGhlIHRlcm1pbmFsIG11c3Qgbm90CisgICAgICAgICAg
ICAvLyBoYXZlIHdlaXJkIGVmZmVjdHMuCisgICAgICAgICAgICBpZiAoYmxvY2stPm51bVN1Y2Nl
c3NvcnMoKSA+IDEgCisgICAgICAgICAgICAgICAgJiYgIWJsb2NrLT5sYXN0KCkuaGFzTm9uQ29u
dHJvbEVmZmVjdHMoKSkgeworICAgICAgICAgICAgICAgIC8vIEFsbCBvZiB0aGUgc3VjY2Vzc29y
cyBtdXN0IGJlIHRoZSBzYW1lLgorICAgICAgICAgICAgICAgIGJvb2wgYWxsU2FtZSA9IHRydWU7
CisgICAgICAgICAgICAgICAgQmFzaWNCbG9jayogZmlyc3RTdWNjZXNzb3IgPSBibG9jay0+c3Vj
Y2Vzc29yQmxvY2soMCk7CisgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMTsgaSA8
IGJsb2NrLT5udW1TdWNjZXNzb3JzKCk7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBpZiAo
YmxvY2stPnN1Y2Nlc3NvckJsb2NrKGkpICE9IGZpcnN0U3VjY2Vzc29yKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBhbGxTYW1lID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICBpZiAoYWxsU2FtZSkgeworICAgICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkK
KyAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFMb2coIkNoYW5naW5nICIsIHBvaW50ZXJEdW1w
KGJsb2NrKSwgIidzIHRlcm1pbmFsIHRvIGEgSnVtcC5cbiIpOworICAgICAgICAgICAgICAgICAg
ICBibG9jay0+bGFzdCgpID0gSW5zdChKdW1wLCBibG9jay0+bGFzdCgpLm9yaWdpbik7CisgICAg
ICAgICAgICAgICAgICAgIGJsb2NrLT5zdWNjZXNzb3JzKCkucmVzaXplKDEpOworICAgICAgICAg
ICAgICAgICAgICBibG9jay0+c3VjY2Vzc29ycygpWzBdLmZyZXF1ZW5jeSgpID0gRnJlcXVlbmN5
Q2xhc3M6Ok5vcm1hbDsKKyAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7CisgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAvLyBGaW5hbGx5IGhh
bmRsZSBqdW1wcyB0byBhIGJsb2NrIHdpdGggb25lIHByZWRlY2Vzc29yLgotICAgICAgICAgICAg
aWYgKGJsb2NrLT5udW1TdWNjZXNzb3JzKCkgPT0gMSkgeworICAgICAgICAgICAgaWYgKGJsb2Nr
LT5udW1TdWNjZXNzb3JzKCkgPT0gMQorICAgICAgICAgICAgICAgICYmICFibG9jay0+bGFzdCgp
Lmhhc05vbkNvbnRyb2xFZmZlY3RzKCkpIHsKICAgICAgICAgICAgICAgICBCYXNpY0Jsb2NrKiBz
dWNjZXNzb3IgPSBibG9jay0+c3VjY2Vzc29yQmxvY2soMCk7CiAgICAgICAgICAgICAgICAgaWYg
KHN1Y2Nlc3NvciAhPSBibG9jayAmJiBzdWNjZXNzb3ItPm51bVByZWRlY2Vzc29ycygpID09IDEp
IHsKICAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoc3VjY2Vzc29yLT5wcmVkZWNl
c3NvcigwKSA9PSBibG9jayk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fp
clNwZWNpYWwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyU3BlY2lhbC5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvQWlyU3BlY2lhbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTUsNyArNTUsMTIgQEAgT3B0
aW9uYWw8dW5zaWduZWQ+IFNwZWNpYWw6OnNob3VsZFRyeUFsaQogICAgIHJldHVybiBOdWxsb3B0
OwogfQogCi1ib29sIFNwZWNpYWw6Omhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKCkKK2Jvb2wg
U3BlY2lhbDo6aXNUZXJtaW5hbChJbnN0JikKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jv
b2wgU3BlY2lhbDo6aGFzTm9uQXJnTm9uQ29udHJvbEVmZmVjdHMoSW5zdCYpCiB7CiAgICAgcmV0
dXJuIHRydWU7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclNwZWNp
YWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclNwZWNp
YWwuaAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9B
aXJTcGVjaWFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtODcsOSArODcsMTIgQEAgcHVibGljOgogCiAgICAg
dmlydHVhbCBjb25zdCBSZWdpc3RlclNldCYgZXh0cmFFYXJseUNsb2JiZXJlZFJlZ3MoSW5zdCYp
ID0gMDsKICAgICB2aXJ0dWFsIGNvbnN0IFJlZ2lzdGVyU2V0JiBleHRyYUNsb2JiZXJlZFJlZ3Mo
SW5zdCYpID0gMDsKKyAgICAKKyAgICAvLyBCeSBkZWZhdWx0LCB0aGlzIHJldHVybnMgZmFsc2Uu
CisgICAgdmlydHVhbCBib29sIGlzVGVybWluYWwoSW5zdCYpOwogCiAgICAgLy8gQnkgZGVmYXVs
dCwgdGhpcyByZXR1cm5zIHRydWUuCi0gICAgdmlydHVhbCBib29sIGhhc05vbkFyZ05vbkNvbnRy
b2xFZmZlY3RzKCk7CisgICAgdmlydHVhbCBib29sIGhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3Rz
KEluc3QmKTsKIAogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0OwogICAgIHZvaWQg
ZGVlcER1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvQWlyVmFsaWRhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvQWlyVmFsaWRhdGUuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclZhbGlkYXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC03OSw5
ICs3OSw5IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgVkFM
SURBVEUoaW5zdC5pc1ZhbGlkRm9ybSgpLCAoIkF0ICIsIGluc3QsICIgaW4gIiwgKmJsb2NrKSk7
CiAgICAgICAgICAgICAgICAgaWYgKGluc3RJbmRleCA9PSBibG9jay0+c2l6ZSgpIC0gMSkKLSAg
ICAgICAgICAgICAgICAgICAgVkFMSURBVEUoaXNUZXJtaW5hbChpbnN0Lm9wY29kZSksICgiQXQg
IiwgaW5zdCwgIiBpbiAiLCAqYmxvY2spKTsKKyAgICAgICAgICAgICAgICAgICAgVkFMSURBVEUo
aW5zdC5pc1Rlcm1pbmFsKCksICgiQXQgIiwgaW5zdCwgIiBpbiAiLCAqYmxvY2spKTsKICAgICAg
ICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIFZBTElEQVRFKCFpc1Rlcm1pbmFs
KGluc3Qub3Bjb2RlKSwgKCJBdCAiLCBpbnN0LCAiIGluICIsICpibG9jaykpOworICAgICAgICAg
ICAgICAgICAgICBWQUxJREFURSghaW5zdC5pc1Rlcm1pbmFsKCksICgiQXQgIiwgaW5zdCwgIiBp
biAiLCAqYmxvY2spKTsKIAogICAgICAgICAgICAgICAgIC8vIGZvckVhY2hBcmcgbXVzdCByZXR1
cm4gQXJnJidzIHRoYXQgcG9pbnQgaW50byB0aGUgYXJncyBhcnJheS4KICAgICAgICAgICAgICAg
ICBpbnN0LmZvckVhY2hBcmcoCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL29w
Y29kZV9nZW5lcmF0b3IucmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJiCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL29wY29kZV9nZW5lcmF0b3IucmIJKHdvcmtpbmcgY29weSkKQEAg
LTcxNCw3ICs3MTQsNyBAQCB3cml0ZUgoIk9wY29kZVV0aWxzIikgewogICAgIG91dHAucHV0cyAi
cmV0dXJuIGZhbHNlOyAiCiAgICAgb3V0cC5wdXRzICJ9IgogCi0gICAgb3V0cC5wdXRzICJpbmxp
bmUgYm9vbCBpc1Rlcm1pbmFsKE9wY29kZSBvcGNvZGUpIgorICAgIG91dHAucHV0cyAiaW5saW5l
IGJvb2wgaXNEZWZpbml0ZWx5VGVybWluYWwoT3Bjb2RlIG9wY29kZSkiCiAgICAgb3V0cC5wdXRz
ICJ7IgogICAgIG91dHAucHV0cyAic3dpdGNoIChvcGNvZGUpIHsiCiAgICAgZGlkRmluZFRlcm1p
bmFscyA9IGZhbHNlCkBAIC05NzYsNiArOTc2LDMyIEBAIHdyaXRlSCgiT3Bjb2RlR2VuZXJhdGVk
IikgewogICAgIG91dHAucHV0cyAicmV0dXJuIGZhbHNlOyIKICAgICBvdXRwLnB1dHMgIn0iCiAK
KyAgICBvdXRwLnB1dHMgImJvb2wgSW5zdDo6aXNUZXJtaW5hbCgpIgorICAgIG91dHAucHV0cyAi
eyIKKyAgICBvdXRwLnB1dHMgInN3aXRjaCAob3Bjb2RlKSB7IgorICAgIGZvdW5kVHJ1ZSA9IGZh
bHNlCisgICAgJG9wY29kZXMudmFsdWVzLmVhY2ggeworICAgICAgICB8IG9wY29kZSB8CisgICAg
ICAgIGlmIG9wY29kZS5hdHRyaWJ1dGVzWzp0ZXJtaW5hbF0KKyAgICAgICAgICAgIG91dHAucHV0
cyAiY2FzZSAje29wY29kZS5uYW1lfToiCisgICAgICAgICAgICBmb3VuZFRydWUgPSB0cnVlCisg
ICAgICAgIGVuZAorICAgIH0KKyAgICBpZiBmb3VuZFRydWUKKyAgICAgICAgb3V0cC5wdXRzICJy
ZXR1cm4gdHJ1ZTsiCisgICAgZW5kCisgICAgJG9wY29kZXMudmFsdWVzLmVhY2ggeworICAgICAg
ICB8IG9wY29kZSB8CisgICAgICAgIGlmIG9wY29kZS5jdXN0b20KKyAgICAgICAgICAgIG91dHAu
cHV0cyAiY2FzZSAje29wY29kZS5uYW1lfToiCisgICAgICAgICAgICBvdXRwLnB1dHMgInJldHVy
biAje29wY29kZS5uYW1lfUN1c3RvbTo6aXNUZXJtaW5hbCgqdGhpcyk7IgorICAgICAgICBlbmQK
KyAgICB9CisgICAgb3V0cC5wdXRzICJkZWZhdWx0OiIKKyAgICBvdXRwLnB1dHMgInJldHVybiBm
YWxzZTsiCisgICAgb3V0cC5wdXRzICJ9IgorICAgIG91dHAucHV0cyAifSIKKyAgICAKICAgICBv
dXRwLnB1dHMgImJvb2wgSW5zdDo6aGFzTm9uQXJnTm9uQ29udHJvbEVmZmVjdHMoKSIKICAgICBv
dXRwLnB1dHMgInsiCiAgICAgb3V0cC5wdXRzICJzd2l0Y2ggKG9wY29kZSkgeyIKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAJKHJldmlzaW9u
IDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsMTEgQEAKIAogI2luY2x1ZGUgIkFpckdlbmVy
YXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdl
LmgiCisjaW5jbHVkZSAiQjNDaGVja1ZhbHVlLmgiCisjaW5jbHVkZSAiQjNQYXRjaHBvaW50VmFs
dWUuaCIKKyNpbmNsdWRlICJCM1Nsb3RCYXNlVmFsdWUuaCIKICNpbmNsdWRlICJCM1N0YWNrbWFw
R2VuZXJhdGlvblBhcmFtcy5oIgorI2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiQ2FsbEZyYW1lU2h1ZmZsZXIuaCIKICNpbmNsdWRlICJDb2RlQmxvY2tXaXRoSklUVHlwZS5o
IgogI2luY2x1ZGUgIkRGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgiCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI4LDggKzI4LDE4IEBACiAKICNpZiBFTkFCTEUoRlRMX0pJVCkKIAorI2luY2x1ZGUgIkIzQXJn
dW1lbnRSZWdWYWx1ZS5oIgorI2luY2x1ZGUgIkIzQmFzaWNCbG9ja0lubGluZXMuaCIKKyNpbmNs
dWRlICJCM0NDYWxsVmFsdWUuaCIKKyNpbmNsdWRlICJCM0NvbnN0MzJWYWx1ZS5oIgorI2luY2x1
ZGUgIkIzQ29uc3RQdHJWYWx1ZS5oIgogI2luY2x1ZGUgIkIzTWF0aEV4dHJhcy5oIgorI2luY2x1
ZGUgIkIzTWVtb3J5VmFsdWUuaCIKKyNpbmNsdWRlICJCM1Nsb3RCYXNlVmFsdWUuaCIKICNpbmNs
dWRlICJCM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5oIgorI2luY2x1ZGUgIkIzU3dpdGNoVmFs
dWUuaCIKKyNpbmNsdWRlICJCM1Vwc2lsb25WYWx1ZS5oIgorI2luY2x1ZGUgIkIzVmFsdWVJbmxp
bmVzLmgiCiAjaW5jbHVkZSAiU3VwZXJTYW1wbGVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1l
c3BhY2UgRlRMIHsKQEAgLTU3OCwxMiArNTg4LDEyIEBAIExWYWx1ZSBPdXRwdXQ6OnNlbGVjdChM
VmFsdWUgdmFsdWUsIExWYWwKIAogdm9pZCBPdXRwdXQ6Omp1bXAoTEJhc2ljQmxvY2sgZGVzdGlu
YXRpb24pCiB7Ci0gICAgbV9ibG9jay0+YXBwZW5kTmV3PEIzOjpDb250cm9sVmFsdWU+KG1fcHJv
YywgQjM6Okp1bXAsIG9yaWdpbigpLCBCMzo6RnJlcXVlbnRlZEJsb2NrKGRlc3RpbmF0aW9uKSk7
CisgICAgbV9ibG9jay0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKG1fcHJvYywgQjM6Okp1bXAsIG9y
aWdpbigpLCBCMzo6RnJlcXVlbnRlZEJsb2NrKGRlc3RpbmF0aW9uKSk7CiB9CiAKIHZvaWQgT3V0
cHV0OjpicmFuY2goTFZhbHVlIGNvbmRpdGlvbiwgTEJhc2ljQmxvY2sgdGFrZW4sIFdlaWdodCB0
YWtlbldlaWdodCwgTEJhc2ljQmxvY2sgbm90VGFrZW4sIFdlaWdodCBub3RUYWtlbldlaWdodCkK
IHsKLSAgICBtX2Jsb2NrLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBtX2Jsb2NrLT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIG1fcHJvYywgQjM6OkJyYW5jaCwgb3JpZ2lu
KCksIGNvbmRpdGlvbiwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRha2VuLCB0YWtlbldlaWdo
dC5mcmVxdWVuY3lDbGFzcygpKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKG5vdFRha2VuLCBu
b3RUYWtlbldlaWdodC5mcmVxdWVuY3lDbGFzcygpKSk7CkBAIC02MDMsMTIgKzYxMywxMiBAQCB2
b2lkIE91dHB1dDo6Y2hlY2soTFZhbHVlIGNvbmRpdGlvbiwgV2VpCiAKIHZvaWQgT3V0cHV0Ojpy
ZXQoTFZhbHVlIHZhbHVlKQogewotICAgIG1fYmxvY2stPmFwcGVuZE5ldzxCMzo6Q29udHJvbFZh
bHVlPihtX3Byb2MsIEIzOjpSZXR1cm4sIG9yaWdpbigpLCB2YWx1ZSk7CisgICAgbV9ibG9jay0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKG1fcHJvYywgQjM6OlJldHVybiwgb3JpZ2luKCksIHZhbHVl
KTsKIH0KIAogdm9pZCBPdXRwdXQ6OnVucmVhY2hhYmxlKCkKIHsKLSAgICBtX2Jsb2NrLT5hcHBl
bmROZXc8QjM6OkNvbnRyb2xWYWx1ZT4obV9wcm9jLCBCMzo6T29wcywgb3JpZ2luKCkpOworICAg
IG1fYmxvY2stPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShtX3Byb2MsIEIzOjpPb3BzLCBvcmlnaW4o
KSk7CiB9CiAKIENoZWNrVmFsdWUqIE91dHB1dDo6c3BlY3VsYXRlKExWYWx1ZSB2YWx1ZSkKQEAg
LTYzOCw3ICs2NDgsNyBAQCBQYXRjaHBvaW50VmFsdWUqIE91dHB1dDo6cGF0Y2hwb2ludChMVHlw
CiAKIHZvaWQgT3V0cHV0Ojp0cmFwKCkKIHsKLSAgICBtX2Jsb2NrLT5hcHBlbmROZXc8QjM6OkNv
bnRyb2xWYWx1ZT4obV9wcm9jLCBCMzo6T29wcywgb3JpZ2luKCkpOworICAgIG1fYmxvY2stPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShtX3Byb2MsIEIzOjpPb3BzLCBvcmlnaW4oKSk7CiB9CiAKIFZh
bHVlRnJvbUJsb2NrIE91dHB1dDo6YW5jaG9yKExWYWx1ZSB2YWx1ZSkKQEAgLTcyOSw2ICs3Mzks
MTEgQEAgdm9pZCBPdXRwdXQ6OmRlY3JlbWVudFN1cGVyU2FtcGxlckNvdW50KAogICAgIHN0b3Jl
MzIoc3ViKGxvYWQzMihjb3VudGVyKSwgaW50MzJPbmUpLCBjb3VudGVyKTsKIH0KIAordm9pZCBP
dXRwdXQ6OmFkZEluY29taW5nVG9QaGkoTFZhbHVlIHBoaSwgVmFsdWVGcm9tQmxvY2sgdmFsdWUp
Cit7CisgICAgdmFsdWUudmFsdWUoKS0+YXM8QjM6OlVwc2lsb25WYWx1ZT4oKS0+c2V0UGhpKHBo
aSk7Cit9CisKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpGVEwKIAogI2VuZGlmIC8vIEVOQUJMRShG
VExfSklUKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5oCShyZXZpc2lv
biAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMCwxOSArMzAsMTIgQEAKIAogI2lmIEVOQUJMRShGVExfSklUKQogCi0j
aW5jbHVkZSAiQjNBcmd1bWVudFJlZ1ZhbHVlLmgiCiAjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrSW5s
aW5lcy5oIgogI2luY2x1ZGUgIkIzQ0NhbGxWYWx1ZS5oIgogI2luY2x1ZGUgIkIzQ29tcGlsYXRp
b24uaCIKLSNpbmNsdWRlICJCM0NvbnN0MzJWYWx1ZS5oIgotI2luY2x1ZGUgIkIzQ29uc3RQdHJW
YWx1ZS5oIgotI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCi0jaW5jbHVkZSAiQjNNZW1vcnlW
YWx1ZS5oIgorI2luY2x1ZGUgIkIzRnJlcXVlbnRlZEJsb2NrLmgiCiAjaW5jbHVkZSAiQjNQcm9j
ZWR1cmUuaCIKLSNpbmNsdWRlICJCM1Nsb3RCYXNlVmFsdWUuaCIKICNpbmNsdWRlICJCM1N3aXRj
aFZhbHVlLmgiCi0jaW5jbHVkZSAiQjNVcHNpbG9uVmFsdWUuaCIKLSNpbmNsdWRlICJCM1ZhbHVl
SW5saW5lcy5oIgogI2luY2x1ZGUgIkZUTEFiYnJldmlhdGVkVHlwZXMuaCIKICNpbmNsdWRlICJG
VExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5LmgiCiAjaW5jbHVkZSAiRlRMQ29tbW9uVmFsdWVzLmgi
CkBAIC02NCw3ICs1NywxMyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotbmFtZXNwYWNlIERGRyB7
IHN0cnVjdCBOb2RlOyB9CituYW1lc3BhY2UgREZHIHsKK3N0cnVjdCBOb2RlOworfSAvLyBuYW1l
c3BhY2UgREZHCisKK25hbWVzcGFjZSBCMyB7CitjbGFzcyBTbG90QmFzZVZhbHVlOworfSAvLyBu
YW1lc3BhY2UgQjMKIAogbmFtZXNwYWNlIEZUTCB7CiAKQEAgLTEwNiw5ICsxMDUsMTkgQEAgcHVi
bGljOgogICAgIExWYWx1ZSBjb25zdEJvb2woYm9vbCB2YWx1ZSk7CiAgICAgTFZhbHVlIGNvbnN0
SW50MzIoaW50MzJfdCB2YWx1ZSk7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KLSAgICBMVmFs
dWUgY29uc3RJbnRQdHIoVCogdmFsdWUpIHsgcmV0dXJuIG1fYmxvY2stPmFwcGVuZE5ldzxCMzo6
Q29uc3RQdHJWYWx1ZT4obV9wcm9jLCBvcmlnaW4oKSwgdmFsdWUpOyB9CisgICAgTFZhbHVlIGNv
bnN0SW50UHRyKFQqIHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKHNpemVvZih2b2lkKikgPT0g
OCkKKyAgICAgICAgICAgIHJldHVybiBjb25zdEludDY0KGJpdHdpc2VfY2FzdDxpbnRwdHJfdD4o
dmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIGNvbnN0SW50MzIoYml0d2lzZV9jYXN0PGludHB0cl90
Pih2YWx1ZSkpOworICAgIH0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgotICAgIExWYWx1ZSBj
b25zdEludFB0cihUIHZhbHVlKSB7IHJldHVybiBtX2Jsb2NrLT5hcHBlbmROZXc8QjM6OkNvbnN0
UHRyVmFsdWU+KG1fcHJvYywgb3JpZ2luKCksIHZhbHVlKTsgfQorICAgIExWYWx1ZSBjb25zdElu
dFB0cihUIHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKHNpemVvZih2b2lkKikgPT0gOCkKKyAg
ICAgICAgICAgIHJldHVybiBjb25zdEludDY0KHN0YXRpY19jYXN0PGludHB0cl90Pih2YWx1ZSkp
OworICAgICAgICByZXR1cm4gY29uc3RJbnQzMihzdGF0aWNfY2FzdDxpbnRwdHJfdD4odmFsdWUp
KTsKKyAgICB9CiAgICAgTFZhbHVlIGNvbnN0SW50NjQoaW50NjRfdCB2YWx1ZSk7CiAgICAgTFZh
bHVlIGNvbnN0RG91YmxlKGRvdWJsZSB2YWx1ZSk7CiAKQEAgLTM1NCw4ICszNjMsNyBAQCBwdWJs
aWM6CiAgICAgTFZhbHVlIGNhbGxXaXRob3V0U2lkZUVmZmVjdHMoQjM6OlR5cGUgdHlwZSwgRnVu
Y3Rpb24gZnVuY3Rpb24sIExWYWx1ZSBhcmcxLCBBcmdzLi4uIGFyZ3MpCiAgICAgewogICAgICAg
ICByZXR1cm4gbV9ibG9jay0+YXBwZW5kTmV3PEIzOjpDQ2FsbFZhbHVlPihtX3Byb2MsIHR5cGUs
IG9yaWdpbigpLCBCMzo6RWZmZWN0czo6bm9uZSgpLAotICAgICAgICAgICAgbV9ibG9jay0+YXBw
ZW5kTmV3PEIzOjpDb25zdFB0clZhbHVlPihtX3Byb2MsIG9yaWdpbigpLCBiaXR3aXNlX2Nhc3Q8
dm9pZCo+KGZ1bmN0aW9uKSksCi0gICAgICAgICAgICBhcmcxLCBhcmdzLi4uKTsKKyAgICAgICAg
ICAgIGNvbnN0SW50UHRyKGJpdHdpc2VfY2FzdDx2b2lkKj4oZnVuY3Rpb24pKSwgYXJnMSwgYXJn
cy4uLik7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rpb25UeXBlPgpAQCAt
Mzc4LDggKzM4Niw4IEBAIHB1YmxpYzoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBWZWN0b3JUeXBl
PgogICAgIHZvaWQgc3dpdGNoSW5zdHJ1Y3Rpb24oTFZhbHVlIHZhbHVlLCBjb25zdCBWZWN0b3JU
eXBlJiBjYXNlcywgTEJhc2ljQmxvY2sgZmFsbFRocm91Z2gsIFdlaWdodCBmYWxsVGhyb3VnaFdl
aWdodCkKICAgICB7Ci0gICAgICAgIEIzOjpTd2l0Y2hWYWx1ZSogc3dpdGNoVmFsdWUgPSBtX2Js
b2NrLT5hcHBlbmROZXc8QjM6OlN3aXRjaFZhbHVlPigKLSAgICAgICAgICAgIG1fcHJvYywgb3Jp
Z2luKCksIHZhbHVlLCBCMzo6RnJlcXVlbnRlZEJsb2NrKGZhbGxUaHJvdWdoKSk7CisgICAgICAg
IEIzOjpTd2l0Y2hWYWx1ZSogc3dpdGNoVmFsdWUgPSBtX2Jsb2NrLT5hcHBlbmROZXc8QjM6OlN3
aXRjaFZhbHVlPihtX3Byb2MsIG9yaWdpbigpLCB2YWx1ZSk7CisgICAgICAgIHN3aXRjaFZhbHVl
LT5zZXRGYWxsVGhyb3VnaChCMzo6RnJlcXVlbnRlZEJsb2NrKGZhbGxUaHJvdWdoKSk7CiAgICAg
ICAgIGZvciAoY29uc3QgU3dpdGNoQ2FzZSYgc3dpdGNoQ2FzZSA6IGNhc2VzKSB7CiAgICAgICAg
ICAgICBpbnQ2NF90IHZhbHVlID0gc3dpdGNoQ2FzZS52YWx1ZSgpLT5hc0ludCgpOwogICAgICAg
ICAgICAgQjM6OkZyZXF1ZW50ZWRCbG9jayB0YXJnZXQoc3dpdGNoQ2FzZS50YXJnZXQoKSwgc3dp
dGNoQ2FzZS53ZWlnaHQoKS5mcmVxdWVuY3lDbGFzcygpKTsKQEAgLTQzOSwxMSArNDQ3LDYgQEAg
aW5saW5lIExWYWx1ZSBPdXRwdXQ6OnBoaShMVHlwZSB0eXBlLCBjbwogICAgIHJldHVybiBwaGlO
b2RlOwogfQogCi1pbmxpbmUgdm9pZCBPdXRwdXQ6OmFkZEluY29taW5nVG9QaGkoTFZhbHVlIHBo
aSwgVmFsdWVGcm9tQmxvY2sgdmFsdWUpCi17Ci0gICAgdmFsdWUudmFsdWUoKS0+YXM8QjM6OlVw
c2lsb25WYWx1ZT4oKS0+c2V0UGhpKHBoaSk7Ci19Ci0KIHRlbXBsYXRlPHR5cGVuYW1lLi4uIFBh
cmFtcz4KIGlubGluZSB2b2lkIE91dHB1dDo6YWRkSW5jb21pbmdUb1BoaShMVmFsdWUgcGhpLCBW
YWx1ZUZyb21CbG9jayB2YWx1ZSwgUGFyYW1zLi4uIHRoZVJlc3QpCiB7CkluZGV4OiBXZWJzaXRl
cy93ZWJraXQub3JnL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy93ZWJraXQub3Jn
L0NoYW5nZUxvZwkocmV2aXNpb24gMjAyODA5KQorKysgV2Vic2l0ZXMvd2Via2l0Lm9yZy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxNi0wNS0yOSAgRmlsaXAg
UGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCB0YWJsZS1iYXNl
ZCBzd2l0Y2hlcyBpbiBCMy9BaXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1MTE0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorICAgICAgICAKKyAgICAgICAgVXBkYXRlIGRvY3VtZW50YXRpb24gdG8gcmVmbGVjdCBQYXRj
aHBvaW50J3MgbmV3IHBvd2Vycy4KKworICAgICAgICAqIGRvY3MvYjMvaW50ZXJtZWRpYXRlLXJl
cHJlc2VudGF0aW9uLmh0bWw6CisKIDIwMTYtMDctMDEgIEpvbiBEYXZpcyAgPGpvbmRAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFkZGVkIGEgY29sb3JmdWwgbmV3IGltYWdlIGFuZCBmaXhlZCB0aGUg
T3BlbiBHcmFwaCBhdHRyaWJ1dGUuCkluZGV4OiBXZWJzaXRlcy93ZWJraXQub3JnL2RvY3MvYjMv
aW50ZXJtZWRpYXRlLXJlcHJlc2VudGF0aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMv
d2Via2l0Lm9yZy9kb2NzL2IzL2ludGVybWVkaWF0ZS1yZXByZXNlbnRhdGlvbi5odG1sCShyZXZp
c2lvbiAyMDI4MDkpCisrKyBXZWJzaXRlcy93ZWJraXQub3JnL2RvY3MvYjMvaW50ZXJtZWRpYXRl
LXJlcHJlc2VudGF0aW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQzLDcgKzQzLDcgQEAKICAg
ICA8cD5UaGUgYWN0IG9mIGNvbXBpbGluZyB0aGUgUHJvY2VkdXJlIGNoYW5nZXMgaXQgaW4tcGxh
Y2UsIG1ha2luZyBpdCB1bnN1aXRhYmxlIGZvcgogICAgICAgY29tcGlsaW5nIGFnYWluLiAgQWx3
YXlzIGNyZWF0ZSBhIG5ldyBQcm9jZWR1cmUgZXZlcnkgdGltZSB5b3Ugd2FudCB0byBjb21waWxl
CiAgICAgICBzb21ldGhpbmcuPC9wPgotCisgICAgCiAgICAgPGgyPlR5cGVzPC9oMj4KIAogICAg
IDxwPkIzIGhhcyBhIHRyaXZpYWwgdHlwZSBzeXN0ZW0gd2l0aCBvbmx5IGZpdmUgdHlwZXM6PC9w
PgpAQCAtMTMwLDggKzEzMCwxNSBAQAogICAgIDxoMj5Db250cm9sIGZsb3c8L2gyPgogCiAgICAg
PHA+QjMgcmVwcmVzZW50cyBjb250cm9sIGZsb3cgdXNpbmcgYmFzaWMgYmxvY2tzLiAgRWFjaCBi
YXNpYyBibG9jayBtYXkgaGF2ZSB6ZXJvIG9yIG1vcmUKLSAgICAgIHByZWRlY2Vzc29ycy4gIEVh
Y2ggYmFzaWMgYmxvY2sgbWF5IGhhdmUgemVybyBvciBtb3JlIHN1Y2Nlc3NvcnMuICBUaGUgc3Vj
Y2Vzc29ycyBhcmUKLSAgICAgIGNvbnRyb2xsZWQgYnkgdGhlIGJhc2ljIGJsb2NrJ3MgbGFzdCBW
YWx1ZSwgd2hpY2ggbXVzdCBiZSBhIENvbnRyb2xWYWx1ZSBpbnN0YW5jZS48L3A+CisgICAgICBw
cmVkZWNlc3NvcnMuICBFYWNoIGJhc2ljIGJsb2NrIG1heSBoYXZlIHplcm8gb3IgbW9yZSBzdWNj
ZXNzb3JzLiAgVGhlIG1lYW5pbmcgb2YgdGhlCisgICAgICBzdWNjZXNzb3JzIGlzIGRldGVybWlu
ZWQgYnkgdGhlIGJhc2ljIGJsb2NrJ3MgbGFzdCBWYWx1ZSwgd2hpY2ggbXVzdCBiZSBhIHRlcm1p
bmFsLiBBCisgICAgICB2YWx1ZSBpcyB0ZXJtaW5hbCBpZjo8L3A+CisgICAgCisgICAgPHByZT48
Y29kZT52YWx1ZS0mZ3Q7ZWZmZWN0cygpLnRlcm1pbmFsPC9jb2RlPjwvcHJlPgorICAgIAorICAg
IDxwPlNvbWUgb3Bjb2RlcyBhcmUgZGVmaW5pdGVseSB0ZXJtaW5hbCwgbGlrZSBKdW1wLCBCcmFu
Y2gsIE9vcHMsIFJldHVybiwgYW5kIFN3aXRjaC4gQnV0IGEKKyAgICAgIHZhbHVlIHdpdGggdGhl
IFBhdGNocG9pbnQgb3Bjb2RlIG1heSBvciBtYXkgbm90IGJlIHRlcm1pbmFsLiBJbiBnZW5lcmFs
IGl0J3MgbmVjZXNzYXJ5IHRvCisgICAgICBjaGVjayB0aGUgPGNvZGU+dGVybWluYWw8L2NvZGU+
IGJpdCBhcyBzaG93biBhYm92ZS48L3A+CiAKICAgICA8cD5FYWNoIGJhc2ljIGJsb2NrIGNvbnRh
aW5zIGEgVmVjdG9yJmx0O1ZhbHVlKiZndDsgYXMgdGhlIGNvbnRlbnRzIG9mIHRoZSBibG9jay4g
Q29udHJvbAogICAgICAgZmxvdyBpbnNpZGUgdGhlIGJsb2NrIGlzIGltcGxpY2l0IGJhc2VkIG9u
IHRoZSBvcmRlciBvZiBWYWx1ZXMgaW4gdGhlIHZlY3Rvci48L3A+CkBAIC00NTgsNiArNDY1LDE3
IEBAIHBhdGNocG9pbnQtPnNldEdlbmVyYXRvcigKICAgICAgICAgICBwYXRjaHBvaW50IHdpbGwg
dGFrZSBzb21lIGV4aXQgc3RhdGUgYXMgcGFydCBvZiBpdHMgYXJndW1lbnRzLCBhbmQgaXQgd2ls
bCBtYW5pcHVsYXRlCiAgICAgICAgICAgdGhlIGNhbGwgZnJhbWUgaW4gcGxhY2UgdG8gbWFrZSBp
dCBsb29rIGxpa2UgYW5vdGhlciBleGVjdXRpb24gZW5naW5lJ3MgY2FsbCBmcmFtZS4KICAgICAg
ICAgICBUaGlzIGlzIGNhbGxlZCBPU1IsIGFuZCBKYXZhU2NyaXB0Q29yZSBkb2VzIGl0IGEgbG90
LjwvcD4KKyAgICAgICAgCisgICAgICAgIDxwPkEgcGF0Y2hwb2ludCBjYW4gYmUgdXNlZCBhcyBh
IHRlcm1pbmFsLiBTaW1wbHkgc2V0IHRoZSA8Y29kZT50ZXJtaW5hbDwvY29kZT4gYml0OjwvcD4K
KyAgICAgICAgCisgICAgICAgIDxwcmU+PGNvZGU+cGF0Y2hwb2ludC0mZ3Q7ZWZmZWN0cy50ZXJt
aW5hbCA9IHRydWU7PC9jb2RlPjwvcHJlPgorICAgICAgICAKKyAgICAgICAgPHA+VGhlIGdlbmVy
YXRvciBjYW4gZGV0ZXJtaW5lIHdoZXJlIHRvIGJyYW5jaCBieSB1c2luZyB0aGUgU3RhY2ttYXBH
ZW5lcmF0aW9uUGFyYW1zIHRvCisgICAgICAgICAgZ2V0IHRoZSBzZXQgb2YgbGFiZWxzIGZvciBh
bGwgc3VjY2Vzc29ycy4gWW91J3JlIGd1YXJhbnRlZWQgdGhhdCB0aGUgbnVtYmVyIG9mCisgICAg
ICAgICAgc3VjY2Vzc29ycyBvZiB0aGUgcGF0Y2hwb2ludCdzIGJhc2ljIGJsb2NrIHdpbGwgYmUg
dGhlIHNhbWUgYXMgd2hlbiB5b3UgY3JlYXRlZCBpdC4KKyAgICAgICAgICBIb3dldmVyLCBsaWtl
IGFueSB2YWx1ZSwgYSBwYXRjaHBvaW50IG1heSBiZSBjbG9uZWQuIFRoaXMgbWVhbnMsIGZvciBl
eGFtcGxlLCB0aGF0IGlmCisgICAgICAgICAgeW91IHVzZSB0aGlzIHRvIGltcGxlbWVudCBhIHRh
YmxlIGp1bXAgdGhlbiB0aGUganVtcCB0YWJsZSBtdXN0IGJlIGNyZWF0ZWQgaW5zaWRlIHRoZQor
ICAgICAgICAgIGdlbmVyYXRvciwgc28gdGhhdCB5b3UgZ2V0IG9uZSBqdW1wIHRhYmxlIHBlciBj
bG9uZS48L3A+CiAgCiAgICAgICAgIDxwPk11c3QgdXNlIHRoZSBQYXRjaHBvaW50VmFsdWUgY2xh
c3Mgd2l0aCB0aGUgUGF0Y2hwb2ludCBvcGNvZGUuPC9wPgogICAgICAgPC9kZD4KSW5kZXg6IExh
eW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDIwMjgwOSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDE1IEBACisyMDE2LTA1LTI5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBs
ZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IHRhYmxlLWJhc2VkIHN3aXRjaGVzIGluIEIzL0Fp
cgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxMTQx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBqcy9y
ZWdyZXNzL2JpZ3N3aXRjaC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jl
c3MvYmlnc3dpdGNoLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL3JlZ3Jlc3Mvc2NyaXB0LXRl
c3RzL2JpZ3N3aXRjaC5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorCiAyMDE2LTA3LTA0ICBZ
dXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIHNraXAgbWlzYy1idWdzLTg0NzM4OS1qcGVnMjAwMC5qcyBpbiBqc2Mgc3RyZXNzIHRlc3Rz
CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2gtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2gtZXhwZWN0
ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAgQEAKK0pTUmVncmVzcy9iaWdzd2l0
Y2gKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgbm8gZXhjZXB0aW9uIHRo
cm93bgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
SW5kZXg6IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2guaHRtbAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwxMiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8v
RU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL3JlZ3Jlc3MtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzY3JpcHQt
dGVzdHMvYmlnc3dpdGNoLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvcmVncmVzcy1wb3N0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2JpZ3N3aXRjaC5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9iaWdzd2l0Y2guanMJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9iaWdzd2l0
Y2guanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMTEgQEAKK2Z1bmN0aW9uIGZvbyhvKSB7
CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kp
IHsKKyAgICAgICAgdmFyIHZhbHVlID0gaSAmIDYzOworICAgICAgICBzd2l0Y2ggKHZhbHVlKSB7
CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYjsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICByZXN1bHQgKz0g
by5jOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLmQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0OgorICAgICAg
ICAgICAgcmVzdWx0ICs9IG8uZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDU6
CisgICAgICAgICAgICByZXN1bHQgKz0gby5mOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgNjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSA3OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaDsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIDg6CisgICAgICAgICAgICByZXN1bHQgKz0gby5pOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgOToKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
Lmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxMDoKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxMToKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAx
MjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSAxMzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmM7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSAxNDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmQ7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxNToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmU7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxNjoKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLmY7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxNzoKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxODoK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSAxOToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSAyMDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSAyMToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyMjoKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyMzoKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLmE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyNDoKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSAyNToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmM7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSAyNjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmQ7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSAyNzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmU7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
LmY7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyOToKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzMDoKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAz
MToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSAzMjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSAzMzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzNDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzNToKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzNjoKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzNzoK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSAzODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmM7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSAzOToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmQ7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSA0MDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmU7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0MToKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLmY7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0MjoKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0MzoKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSA0NDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSA0NToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSA0NjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0NzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
Lmk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0ODoKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0OToKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1
MDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSA1MToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSA1MjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1MzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmI7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1NDoKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLmM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1NToKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLmQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1NjoK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSA1NzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmY7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSA1ODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSA1OToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA2MDoKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLmk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA2MToKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA2MjoKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLno7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworfQorCisoZnVuY3Rpb24oKSB7Cisg
ICAgdmFyIG8gPSB7YToxLCBiOjIsIGM6MywgZDo0LCBlOjUsIGY6NiwgZzo3LCBoOjgsIGk6OSwg
ajoxMCwgazoxMSwgejoxMDB9OworICAgIHZhciByZXN1bHQgPSAwOworICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgMTAwMDA7ICsraSkKKyAgICAgICAgcmVzdWx0ICs9IGZvbyhvKTsKKyAgICBpZiAo
cmVzdWx0ICE9IDc5NjYwMDAwKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIg
KyByZXN1bHQ7Cit9KSgpOworCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283288</attachid>
            <date>2016-07-10 10:57:00 -0700</date>
            <delta_ts>2016-07-18 13:54:55 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>456971</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAyOTgxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc4OSBA
QAorMjAxNi0wNy0wOCAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IEltcGxlbWVudCB0YWJsZS1iYXNlZCBzd2l0Y2hlcyBpbiBCMy9BaXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTE0MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIElmIGEgc3dpdGNoIHN0YXRlbWVudCBn
ZXRzIGxhcmdlLCBpdCdzIGJldHRlciB0byBleHByZXNzIGl0IGFzIGFuIGluZGlyZWN0IGp1bXAg
cmF0aGVyIHRoYW4KKyAgICAgICAgdXNpbmcgYSBiaW5hcnkgc3dpdGNoIChkaXZpZGUtYW5kLWNv
bnF1ZXIgdHJlZSBvZiBjb21wYXJpc29ucyBsZWFkaW5nIHRvIE8obG9nIG4pIGJyYW5jaGVzIHRv
CisgICAgICAgIGdldCB0byB0aGUgc3dpdGNoIGNhc2UpLiBXaGVuIGRlYWxpbmcgd2l0aCBpbnRl
Z2VyIHN3aXRjaGVzLCBGVEwgd2lsbCBhbHJlYWR5IHVzZSB0aGUgQjMKKyAgICAgICAgU3dpdGNo
IGFuZCBleHBlY3QgdGhpcyB0byBnZXQgbG93ZXJlZCBhcyBlZmZpY2llbnRseSBhcyBwb3NzaWJs
ZTsgaXQncyBhIGJ1ZyB0aGF0IEIzIHdpbGwKKyAgICAgICAgYWx3YXlzIHVzZSBhIGJpbmFyeSBz
d2l0Y2ggcmF0aGVyIHRoYW4gaW5kaXJlY3QganVtcHMuIFdoZW4gZGVhbGluZyB3aXRoIHN3aXRj
aGVzIG92ZXIgc29tZQorICAgICAgICBtb3JlIHNvcGhpc3RpY2F0ZWQgdHlwZXMsIHdlJ2Qgd2Fu
dCBGVEwgdG8gYnVpbGQgYW4gaW5kaXJlY3QganVtcCB0YWJsZSBpdHNlbGYgYW5kIHVzZQorICAg
ICAgICBzb21ldGhpbmcgbGlrZSBhIGhhc2h0YWJsZSB0byBmZWVkIGl0LiBJbiB0aGF0IGNhc2Us
IHRoZXJlIHdpbGwgYmUgbm8gQjMgU3dpdGNoOyB3ZSdsbCB3YW50CisgICAgICAgIHNvbWUgd2F5
IGZvciB0aGUgRlRMIHRvIGRpcmVjdGx5IGV4cHJlc3MgYW4gaW5kaXJlY3Rpb24ganVtcCB3aGVu
IGVtaXR0aW5nIEIzLgorICAgICAgICAKKyAgICAgICAgVGhpcyBpbXBsaWVzIHRoYXQgd2Ugd2Fu
dCBCMyB0byBoYXZlIHRoZSBhYmlsaXR5IHRvIGxvd2VyIFN3aXRjaCB0byBpbmRpcmVjdCBqdW1w
cyBhbmQgdG8KKyAgICAgICAgZXhwb3NlIHRob3NlIGluZGlyZWN0IGp1bXBzIGluIElSIHNvIHRo
YXQgdGhlIEZUTCBjb3VsZCBkbyBpdHMgb3duIGluZGlyZWN0IGp1bXBzIGZvcgorICAgICAgICBz
d2l0Y2hlcyBvdmVyIG1vcmUgY29tcGxpY2F0ZWQgdGhpbmdzIGxpa2Ugc3RyaW5ncy4gQnV0IGlu
ZGlyZWN0IGp1bXBzIGFyZSB0b3VnaCB0byBleHByZXNzCisgICAgICAgIGluIElSLiBGb3IgZXhh
bXBsZSwgdGhlIExMVk0gYXBwcm9hY2ggKCJpbmRpcmVjdGJyIiBhbmQgImJsb2NrYWRkcmVzcyIs
IHNlZQorICAgICAgICBodHRwOi8vYmxvZy5sbHZtLm9yZy8yMDEwLzAxL2FkZHJlc3Mtb2YtbGFi
ZWwtYW5kLWluZGlyZWN0LWJyYW5jaGVzLmh0bWwpIG1lYW5zIHRoYXQgc29tZQorICAgICAgICBj
b250cm9sIGZsb3cgZWRnZXMgY2Fubm90IGJlIHNwbGl0LiBJbmRpcmVjdGJyIHRha2VzIGFuIGFk
ZHJlc3MgYXMgaW5wdXQgYW5kIGp1bXBzIHRvIGl0LCBhbmQKKyAgICAgICAgYmxvY2thZGRyZXNz
IGxldHMgeW91IGJ1aWxkIGp1bXAgdGFibGVzIG91dCBvZiBiYXNpYyBibG9jayBhZGRyZXNzZXMu
IFRoaXMgbWVhbnMgdGhhdCB0aGUKKyAgICAgICAgY29tcGlsZXIgY2FuIG5ldmVyIGNoYW5nZSBh
bnkgc3VjY2Vzc29yIG9mIGFuIGluZGlyZWN0YnIsIHNpbmNlIHRoZSBjbGllbnQgd2lsbCBoYXZl
IGFscmVhZHkKKyAgICAgICAgYXJyYW5nZWQgZm9yIHRoYXQgaW5kaXJlY3RiciB0byBqdW1wIHRv
IGV4YWN0bHkgdGhvc2Ugc3VjY2Vzc29ycy4gV2UgZG9uJ3Qgd2FudCBzdWNoCisgICAgICAgIHJl
c3RyaWN0aW9ucyBpbiBCMywgc2luY2UgQjMgcmVsaWVzIG9uIGJlaW5nIGFibGUgdG8gYnJlYWsg
Y3JpdGljYWwgZWRnZXMgZm9yIFNTQSBjb252ZXJzaW9uLgorICAgICAgICBBbHNvLCBpbmRpcmVj
dGJyIGlzIG5vdCBjbG9uZWFibGUsIHdoaWNoIHdvdWxkIGJyZWFrIGFueSBob3BlIG9mIGRvaW5n
IHNwZWNpYWxpemF0aW9uLWJhc2VkCisgICAgICAgIHRyYW5zZm9ybWF0aW9ucyBsaWtlIHdlIHdh
bnQgdG8gZG8gZm9yIG11bHRpcGxlIGVudHJ5cG9pbnRzIChidWcgMTU5MzkxKS4gVGhlIGdvYWwg
b2YgdGhpcworICAgICAgICBjaGFuZ2UgaXMgdG8gbGV0IGNsaWVudHMgZG8gaW5kaXJlY3QganVt
cHMgd2l0aG91dCBwbGFjaW5nIGFueSByZXN0cmljdGlvbnMgb24gSVIuCisgICAgICAgIAorICAg
ICAgICBUaGUgdHJpY2sgaXMgdG8gYWxsb3cgUGF0Y2hwb2ludHMgdG8gYmUgdXNlZCBhcyBibG9j
ayB0ZXJtaW5hbHMuIFBhdGNocG9pbnRzIGFscmVhZHkgYWxsb3cKKyAgICAgICAgY2xpZW50cyBv
ZiBCMyB0byBlbWl0IHdoYXRldmVyIGNvZGUgdGhleSBsaWtlLiBQYXRjaHBvaW50cyBhcmUgZnJp
ZW5kbHkgdG8gQjMncyBvdGhlcgorICAgICAgICB0cmFuc2Zvcm1hdGlvbnMgYmVjYXVzZSB0aGUg
Y2xpZW50IG9mIHRoZSBwYXRjaHBvaW50IGhhcyB0byBwbGF5IGFsb25nIHdpdGggd2hhdGV2ZXIK
KyAgICAgICAgZGVjaXNpb25zIEIzIGhhZCBtYWRlIGFyb3VuZCB0aGUgcGF0Y2hwb2ludDogd2hh
dCByZWdpc3RlcnMgZ290IHVzZWQsIHdoYXQgdGhlIGNvbnRyb2wgZmxvdworICAgICAgICBsb29r
cyBsaWtlLCBldGMuIFBhdGNocG9pbnRzIGNhbiBldmVuIGJlIGNsb25lZCBieSBCMywgYW5kIHRo
ZSBjbGllbnQgaGFzIHRvIGFjY29tbW9kYXRlIHRoaXMKKyAgICAgICAgaW4gdGhlaXIgcGF0Y2hw
b2ludCBnZW5lcmF0b3IuIEl0IHR1cm5zIG91dCB0aGF0IHVzaW5nIFBhdGNocG9pbnRzIGFzIHRl
cm1pbmFscyBpcyBxdWl0ZQorICAgICAgICBuYXR1cmFsLiBXZSBhY2NvbXBsaXNoIHRoaXMgYnkg
bW92aW5nIHRoZSBzdWNjZXNzb3IgZWRnZXMgb3V0IG9mIENvbnRyb2xWYWx1ZSBhbmQgaW50bwor
ICAgICAgICBCYXNpY0Jsb2NrLCBhbmQgcmVtb3ZpbmcgQ29udHJvbFZhbHVlIGVudGlyZWx5LiBU
aGlzIHdheSwgYW55IFZhbHVlIHN1YmNsYXNzIGNhbiBiZSBhCisgICAgICAgIHRlcm1pbmFsLiBJ
dCB3YXMgYWxyZWFkeSB0cnVlIHRoYXQgYSBWYWx1ZSBpcyBhIHRlcm1pbmFsIGlmIHZhbHVlLT5l
ZmZlY3RzKCkudGVybWluYWwsIHdoaWNoCisgICAgICAgIHdvcmtzIGdyZWF0IHdpdGggUGF0Y2hw
b2ludHMgc2luY2UgdGhleSBjb250cm9sIHRoZWlyIGVmZmVjdHMgdmlhIFBhdGNocG9pbnRWYWx1
ZTo6ZWZmZWN0cy4KKyAgICAgICAgWW91IGNhbiBtYWtlIHlvdXIgUGF0Y2hwb2ludCBpbnRvIGEg
dGVybWluYWwgYnkgcGxhY2luZyBpdCBhdCB0aGUgZW5kIG9mIGEgYmxvY2sgYW5kIGRvaW5nOgor
ICAgICAgICAKKyAgICAgICAgcGF0Y2hwb2ludC0+ZWZmZWN0cy50ZXJtaW5hbCA9IHRydWU7Cisg
ICAgICAgIAorICAgICAgICBBIFBhdGNocG9pbnRzIGluIHRlcm1pbmFsIHBvc2l0aW9uIGdldHMg
YWNjZXNzIHRvIGFkZGl0aW9uYWwgQVBJIGluIFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy4KKyAg
ICAgICAgVGhlIGdlbmVyYXRvciBjYW4gZ2V0IGEgQm94PExhYmVsPiBmb3IgZWFjaCBzdWNjZXNz
b3IgdG8gaXRzIG93bmluZyBibG9jay4gRm9yIGV4YW1wbGUsIHRvCisgICAgICAgIGltcGxlbWVu
dCBhIGp1bXAtdGFibGUtYmFzZWQgc3dpdGNoLCB5b3Ugd291bGQgbWFrZSB5b3VyIHBhdGNocG9p
bnQgdGFrZSB0aGUgdGFibGUgaW5kZXggYXMKKyAgICAgICAgaXRzIHNvbGUgaW5wdXQuIEluc2lk
ZSB0aGUgZ2VuZXJhdG9yLCB5b3UgYWxsb2NhdGUgdGhlIGp1bXAgdGFibGUgYW5kIGVtaXQgYSBC
YXNlSW5kZXgganVtcAorICAgICAgICB0aGF0IHVzZXMgdGhlIGp1bXAgdGFibGUgcG9pbnRlciAo
d2hpY2ggd2lsbCBiZSBhIGNvbnN0YW50IGtub3duIHRvIHRoZSBnZW5lcmF0b3Igc2luY2UgaXQK
KyAgICAgICAganVzdCBhbGxvY2F0ZWQgaXQpIGFzIHRoZSBiYXNlIGFuZCB0aGUgcGF0Y2hwb2lu
dCBpbnB1dCBhcyBhbiBpbmRleC4gVGhlIGp1bXAgdGFibGUgY2FuIGJlCisgICAgICAgIHBvcHVs
YXRlZCBieSBNYWNyb0Fzc2VtYmxlckNvZGVQdHIncyBjb21wdXRlZCBieSBpbnN0YWxsaW5nIGEg
bGluayB0YXNrIHRvIHJlc29sdmUgdGhlIGxhYmVscworICAgICAgICB0byBjb25jcmV0ZSBsb2Nh
dGlvbnMuIFRoaXMgY2hhbmdlIG1ha2VzIExvd2VyTWFjcm9zIGRvIHN1Y2ggYSBsb3dlcmluZyBm
b3IgU3dpdGNoZXMgdGhhdCBjYW4KKyAgICAgICAgYmVuZWZpdCBmcm9tIGp1bXAgdGFibGVzLiBU
aGlzIGhhcHBlbnMgcmVjdXJzaXZlbHk6IGlmIHRoZSBvcmlnaW5hbCBTd2l0Y2ggaXMgdG9vIHNw
YXJzZSwgd2UKKyAgICAgICAgd2lsbCBkaXZpZGUtYW5kLWNvbnF1ZXIgYXMgYmVmb3JlLiBJZiBh
dCBhbnkgcmVjdXJzaW9uIHN0ZXAgd2UgZmluZCB0aGF0IHRoZSByZW1haW5pbmcgY2FzZXMKKyAg
ICAgICAgYXJlIGRlbnNlIGFuZCBsYXJnZSBlbm91Z2ggdG8gcHJvZml0IGZyb20gYSBqdW1wIHRh
YmxlLCB0aGVuIHRob3NlIGNhc2VzIHdpbGwgYmUgbG93ZXJlZCB0byBhCisgICAgICAgIFBhdGNo
cG9pbnQgdGhhdCBkb2VzIHRoZSB0YWJsZSBqdW1wLiBUaGlzIGlzIGEgZnVuIHdheSB0byBkbyBz
dGVwd2lzZSBsb3dlcmluZzogTG93ZXJNYWNyb3MKKyAgICAgICAgaXMgZXNzZW50aWFsbHkgcHJl
LWxvd2VyaW5nIHRoZSBTd2l0Y2ggZGlyZWN0bHkgdG8gbWFjaGluZSBjb2RlLCBhbmQgd3JhcHBp
bmcgdGhhdCBtYWNoaW5lCisgICAgICAgIGNvZGUgaW4gYSBQYXRjaHBvaW50IHNvIHRoYXQgdGhl
IHJlc3Qgb2YgdGhlIGNvbXBpbGVyIGRvZXNuJ3QgaGF2ZSB0byBrbm93IGFueXRoaW5nIGFib3V0
CisgICAgICAgIHdoYXQgaGFwcGVuZWQuIEkgc3VzcGVjdCB0aGF0IGluIHRoZSBmdXR1cmUgd2Ug
d2lsbCB3YW50IHRvIGRvIG90aGVyIHByZS1sb3dlcmluZ3MgdGhpcyB3YXksCisgICAgICAgIHdo
ZW5ldmVyIHRoZSBCMyBJUiBwaGFzZXMgaGF2ZSBzb21lIHNwZWNpYWwga25vd2xlZGdlIGFib3V0
IHdoYXQgbWFjaGluZSBjb2RlIHNob3VsZCBiZQorICAgICAgICBlbWl0dGVkIGFuZCBpdCB3b3Vs
ZCBiZSBhbm5veWluZyB0byBkcmFnIHRoYXQga25vd2xlZGdlIHRocm91Z2ggdGhlIHJlc3Qgb2Yg
dGhlIGNvbXBpbGVyLgorICAgICAgICAKKyAgICAgICAgT25lIGRvd25zaWRlIG9mIHRoaXMgY2hh
bmdlIGlzIHRoYXQgd2UgdXNlZCBDb250cm9sVmFsdWUgaW4gc28gbWFueSBwbGFjZXMuIE1vc3Qg
b2YgdGhpcworICAgICAgICBwYXRjaCBpbnZvbHZlcyByZW1vdmluZyByZWZlcmVuY2VzIHRvIENv
bnRyb2xWYWx1ZS4gSXQgd291bGQgYmUgbGVzcyB0aGFuIDEwMGtiIGlmIGl0IHdhc24ndAorICAg
ICAgICBmb3IgdGhhdC4gVG8gbWFrZSB0aGlzIGEgYml0IGVhc2llciwgSSBhZGRlZCAiYXBwZW5k
TmV3Q29udHJvbFZhbHVlIiBtZXRob2RzIHRvIEJhc2ljQmxvY2ssCisgICAgICAgIHdoaWNoIGFs
bG9jYXRlIGEgVmFsdWUgYW5kIHNldCB0aGUgc3VjY2Vzc29ycyBhcyBpZiB5b3UgaGFkIGRvbmUg
ImFwcGVuZE5ldzxDb250cm9sVmFsdWU+Ii4KKyAgICAgICAgVGhpcyBtYWRlIGZvciBhbiBlYXN5
IHNlYXJjaC1hbmQtcmVwbGFjZSBpbiB0ZXN0YjMgYW5kIEZUTE91dHB1dC4gSSBmaWxlZCBidWcg
MTU5NDQwIHRvCisgICAgICAgIHJlbW92ZSB0aGlzIHVnbHkgc3RvcGdhcCBtZXRob2QuCisgICAg
ICAgIAorICAgICAgICBJIHRoaW5rIHRoYXQgd2Ugd2lsbCBhbHNvIGVuZCB1cCB1c2luZyB0aGlz
IGZhY2lsaXR5IHRvIGV4dGVuZCBvdXIgdXNlIG9mIHNuaXBwZXRzLiBXZQorICAgICAgICBhbHJl
YWR5IHVzZSBzaGFyZWQgc25pcHBldCBnZW5lcmF0b3JzIGZvciB0aGUgZ2VuZXJpYyBmb3JtcyBv
ZiBhcml0aG1ldGljLiBXZSB3aWxsIHByb2JhYmx5CisgICAgICAgIGFsc28gd2FudCB0byBkbyB0
aGlzIGZvciBnZW5lcmljIGZvcm1zIG9mIGJyYW5jaGVzLiBUaGlzIHdvdWxkbid0IGhhdmUgYmVl
biBwb3NzaWJsZSBwcmlvciB0bworICAgICAgICB0aGlzIGNoYW5nZSwgc2luY2UgdGhlcmUgd291
bGQgaGF2ZSBiZWVuIG5vIHdheSB0byBlbWl0IGEgY29udHJvbCBzbmlwcGV0IGluIEZUTC4gTm93
IHdlIGNhbgorICAgICAgICBlbWl0IGNvbnRyb2wgc25pcHBldHMgdXNpbmcgdGVybWluYWwgcGF0
Y2hwb2ludHMuCisKKyAgICAgICAgVGhpcyBpcyBhIH4zMCUgc3BlZWQtdXAgb24gbWljcm9iZW5j
aG1hcmtzIHRoYXQgaGF2ZSBiaWcgc3dpdGNoIHN0YXRlbWVudHMgKH42MCBjYXNlcykuIEl0J3MK
KyAgICAgICAgbm90IGEgc3BlZWQtdXAgb24gbWFpbnN0cmVhbSBiZW5jaG1hcmtzLgorICAgICAg
ICAKKyAgICAgICAgVGhpcyBhbHNvIGFkZHMgYSBuZXcgdGVzdCB0byB0ZXN0YjMgZm9yIHRlcm1p
bmFsIFBhdGNocG9pbnRzLCBHZXQsIGFuZCBTZXQuIFRoZSBGVEwgZG9lcyBub3QKKyAgICAgICAg
Y3VycmVudGx5IHVzZSB0ZXJtaW5hbCBQYXRjaHBvaW50cyBkaXJlY3RseSwgYnV0IHdlIHdhbnQg
dGhpcyB0byBiZSBwb3NzaWJsZS4gSXQgYWxzbyBkb2Vzbid0CisgICAgICAgIHVzZSBHZXQvU2V0
IGRpcmVjdGx5IGV2ZW4gdGhvdWdoIHdlIHdhbnQgdGhpcyB0byBiZSBwb3NzaWJsZS4gSXQncyBp
bXBvcnRhbnQgdG8gdGVzdCB0aGVzZQorICAgICAgICBzaW5jZSBvcGNvZGVzIHRoYXQgcmVzdWx0
IGZyb20gbG93ZXJpbmcgZG9uJ3QgYWZmZWN0IGVhcmx5IHBoYXNlcywgc28gd2UgY291bGQgaGF2
ZQorICAgICAgICByZWdyZXNzaW9ucyBpbiBlYXJseSBwaGFzZXMgcmVsYXRlZCB0byB0aGVzZSBv
cGNvZGVzIHRoYXQgd291bGRuJ3QgYmUgY2F1Z2h0IGJ5IGFueSBKUyB0ZXN0LgorICAgICAgICBT
bywgdGhpcyBhZGRzIGEgdmVyeSBiYXNpYyB0aHJlYWRlZCBpbnRlcnByZXRlciB0byB0ZXN0YjMg
Zm9yIGEgQnJhaW5mdWNrLXN0eWxlIGxhbmd1YWdlLCBhbmQKKyAgICAgICAgdGVzdHMgaXQgYnkg
aGF2aW5nIGl0IHJ1biBhIHByb2dyYW0gdGhhdCBwcmludHMgdGhlIG51bWJlcnMgMS4uMTAwIGlu
IGEgbG9vcC4gVW5saWtlIGEgcmVhbAorICAgICAgICB0aHJlYWRlZCBpbnRlcnByZXRlciwgaXQg
dXNlcyBhIGNvbW1vbiBkaXNwYXRjaCBibG9jayByYXRoZXIgdGhhbiBoYXZpbmcgZGlzcGF0Y2gg
YXQgdGhlCisgICAgICAgIHRlcm1pbnVzIG9mIGVhY2ggb3Bjb2RlLiBUaGF0J3MgbmVjZXNzYXJ5
IGJlY2F1c2UgUG9seUp1bXAgaXMgbm90IGNsb25lYWJsZS4gVGhlIHN0YXRlIG9mIHRoZQorICAg
ICAgICBpbnRlcnByZXRlciBpcyByZXByZXNlbnRlZCB1c2luZyBWYXJpYWJsZXMgdGhhdCB3ZSBH
ZXQgYW5kIFNldCwgc28gaXQgdGVzdHMgR2V0L1NldCBhcyB3ZWxsLgorCisgICAgICAgICogQ01h
a2VMaXN0cy50eHQ6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oOgorICAg
ICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0OjpqdW1wKToKKyAgICAgICAgKiBhc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJs
ZXJYODZDb21tb246Omp1bXApOgorICAgICAgICAqIGFzc2VtYmxlci9YODZBc3NlbWJsZXIuaDoK
KyAgICAgICAgKEpTQzo6WDg2QXNzZW1ibGVyOjpqbXBfbSk6CisgICAgICAgICogYjMvQjNCYXNp
Y0Jsb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OkJhc2ljQmxvY2s6OmFwcGVuZCk6CisgICAg
ICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjphcHBlbmROb25UZXJtaW5hbCk6CisgICAgICAgIChK
U0M6OkIzOjpCYXNpY0Jsb2NrOjpyZW1vdmVMYXN0KToKKyAgICAgICAgKEpTQzo6QjM6OkJhc2lj
QmxvY2s6OmFwcGVuZEludENvbnN0YW50KToKKyAgICAgICAgKEpTQzo6QjM6OkJhc2ljQmxvY2s6
OmNsZWFyU3VjY2Vzc29ycyk6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjphcHBlbmRT
dWNjZXNzb3IpOgorICAgICAgICAoSlNDOjpCMzo6QmFzaWNCbG9jazo6c2V0U3VjY2Vzc29ycyk6
CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjpyZXBsYWNlU3VjY2Vzc29yKToKKyAgICAg
ICAgKEpTQzo6QjM6OkJhc2ljQmxvY2s6OmFkZFByZWRlY2Vzc29yKToKKyAgICAgICAgKEpTQzo6
QjM6OkJhc2ljQmxvY2s6OmRlZXBEdW1wKToKKyAgICAgICAgKEpTQzo6QjM6OkJhc2ljQmxvY2s6
OmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSk6CisgICAgICAgICogYjMvQjNCYXNpY0Jsb2NrLmg6Cisg
ICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjpudW1TdWNjZXNzb3JzKToKKyAgICAgICAgKEpT
Qzo6QjM6OkJhc2ljQmxvY2s6OnN1Y2Nlc3Nvcik6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Js
b2NrOjpzdWNjZXNzb3JzKToKKyAgICAgICAgKEpTQzo6QjM6OkJhc2ljQmxvY2s6OnN1Y2Nlc3Nv
ckJsb2NrKToKKyAgICAgICAgKEpTQzo6QjM6OkJhc2ljQmxvY2s6OnN1Y2Nlc3NvckJsb2Nrcyk6
CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjpudW1QcmVkZWNlc3NvcnMpOgorICAgICAg
ICAoSlNDOjpCMzo6QmFzaWNCbG9jazo6cHJlZGVjZXNzb3IpOgorICAgICAgICAoSlNDOjpCMzo6
QmFzaWNCbG9jazo6ZnJlcXVlbmN5KToKKyAgICAgICAgKiBiMy9CM0Jhc2ljQmxvY2tJbmxpbmVz
Lmg6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjpyZXBsYWNlTGFzdFdpdGhOZXcpOgor
ICAgICAgICAoSlNDOjpCMzo6QmFzaWNCbG9jazo6dGFrZW4pOgorICAgICAgICAoSlNDOjpCMzo6
QmFzaWNCbG9jazo6bm90VGFrZW4pOgorICAgICAgICAoSlNDOjpCMzo6QmFzaWNCbG9jazo6ZmFs
bFRocm91Z2gpOgorICAgICAgICAoSlNDOjpCMzo6QmFzaWNCbG9jazo6bnVtU3VjY2Vzc29ycyk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjpzdWNjZXNzb3IpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpCMzo6QmFzaWNCbG9jazo6c3VjY2Vzc29ycyk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjpzdWNjZXNzb3JCbG9jayk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjpzdWNjZXNzb3JCbG9ja3MpOiBEZWxldGVk
LgorICAgICAgICAqIGIzL0IzQmxvY2tJbnNlcnRpb25TZXQuY3BwOgorICAgICAgICAoSlNDOjpC
Mzo6QmxvY2tJbnNlcnRpb25TZXQ6OnNwbGl0Rm9yd2FyZCk6CisgICAgICAgICogYjMvQjNCcmVh
a0NyaXRpY2FsRWRnZXMuY3BwOgorICAgICAgICAoSlNDOjpCMzo6YnJlYWtDcml0aWNhbEVkZ2Vz
KToKKyAgICAgICAgKiBiMy9CM0Nhc2VDb2xsZWN0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChK
U0M6OkIzOjpDYXNlQ29sbGVjdGlvbjo6ZHVtcCk6CisgICAgICAgICogYjMvQjNDYXNlQ29sbGVj
dGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6QjM6OkNhc2VDb2xsZWN0aW9uOjpDYXNlQ29s
bGVjdGlvbik6CisgICAgICAgIChKU0M6OkIzOjpDYXNlQ29sbGVjdGlvbjo6b3BlcmF0b3JbXSk6
CisgICAgICAgIChKU0M6OkIzOjpDYXNlQ29sbGVjdGlvbjo6aXRlcmF0b3I6Oml0ZXJhdG9yKToK
KyAgICAgICAgKEpTQzo6QjM6OkNhc2VDb2xsZWN0aW9uOjppdGVyYXRvcjo6b3BlcmF0b3IqKToK
KyAgICAgICAgKEpTQzo6QjM6OkNhc2VDb2xsZWN0aW9uOjppdGVyYXRvcjo6b3BlcmF0b3IrKyk6
CisgICAgICAgIChKU0M6OkIzOjpDYXNlQ29sbGVjdGlvbjo6aXRlcmF0b3I6Om9wZXJhdG9yPT0p
OgorICAgICAgICAoSlNDOjpCMzo6Q2FzZUNvbGxlY3Rpb246Oml0ZXJhdG9yOjpvcGVyYXRvciE9
KToKKyAgICAgICAgKEpTQzo6QjM6OkNhc2VDb2xsZWN0aW9uOjpiZWdpbik6CisgICAgICAgIChK
U0M6OkIzOjpDYXNlQ29sbGVjdGlvbjo6ZW5kKToKKyAgICAgICAgKiBiMy9CM0Nhc2VDb2xsZWN0
aW9uSW5saW5lcy5oOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6QjM6OkNhc2VDb2xsZWN0aW9uOjpm
YWxsVGhyb3VnaCk6CisgICAgICAgIChKU0M6OkIzOjpDYXNlQ29sbGVjdGlvbjo6c2l6ZSk6Cisg
ICAgICAgIChKU0M6OkIzOjpDYXNlQ29sbGVjdGlvbjo6YXQpOgorICAgICAgICAqIGIzL0IzQ2hl
Y2tTcGVjaWFsLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OkNoZWNrU3BlY2lhbDo6Q2hlY2tTcGVj
aWFsKToKKyAgICAgICAgKEpTQzo6QjM6OkNoZWNrU3BlY2lhbDo6aGlkZGVuQnJhbmNoKToKKyAg
ICAgICAgKiBiMy9CM0NvbW1vbi5oOgorICAgICAgICAoSlNDOjpCMzo6aXM2NEJpdCk6CisgICAg
ICAgICogYjMvQjNDb250cm9sVmFsdWUuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGIzL0IzQ29u
dHJvbFZhbHVlLmg6IFJlbW92ZWQuCisgICAgICAgICogYjMvQjNEYXRhU2VjdGlvbi5jcHA6Cisg
ICAgICAgIChKU0M6OkIzOjpEYXRhU2VjdGlvbjo6RGF0YVNlY3Rpb24pOgorICAgICAgICAqIGIz
L0IzRHVwbGljYXRlVGFpbHMuY3BwOgorICAgICAgICAqIGIzL0IzRml4U1NBLmNwcDoKKyAgICAg
ICAgKiBiMy9CM0ZvbGRQYXRoQ29uc3RhbnRzLmNwcDoKKyAgICAgICAgKiBiMy9CM0xvd2VyTWFj
cm9zLmNwcDoKKyAgICAgICAgKiBiMy9CM0xvd2VyVG9BaXIuY3BwOgorICAgICAgICAoSlNDOjpC
Mzo6QWlyOjpMb3dlclRvQWlyOjpydW4pOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpMb3dlclRv
QWlyOjpsb3dlcik6CisgICAgICAgICogYjMvQjNNYXRoRXh0cmFzLmNwcDoKKyAgICAgICAgKEpT
Qzo6QjM6OnBvd0RvdWJsZUludDMyKToKKyAgICAgICAgKiBiMy9CM09wY29kZS5oOgorICAgICAg
ICAoSlNDOjpCMzo6aXNDb25zdGFudCk6CisgICAgICAgIChKU0M6OkIzOjppc0RlZmluaXRlbHlU
ZXJtaW5hbCk6CisgICAgICAgICogYjMvQjNQYXRjaHBvaW50U3BlY2lhbC5jcHA6CisgICAgICAg
IChKU0M6OkIzOjpQYXRjaHBvaW50U3BlY2lhbDo6Z2VuZXJhdGUpOgorICAgICAgICAoSlNDOjpC
Mzo6UGF0Y2hwb2ludFNwZWNpYWw6OmlzVGVybWluYWwpOgorICAgICAgICAoSlNDOjpCMzo6UGF0
Y2hwb2ludFNwZWNpYWw6OmR1bXBJbXBsKToKKyAgICAgICAgKiBiMy9CM1BhdGNocG9pbnRTcGVj
aWFsLmg6CisgICAgICAgICogYjMvQjNQcm9jZWR1cmUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6
UHJvY2VkdXJlOjpyZXNldFJlYWNoYWJpbGl0eSk6CisgICAgICAgICogYjMvQjNQcm9jZWR1cmUu
aDoKKyAgICAgICAgKEpTQzo6QjM6OlByb2NlZHVyZTo6bGFzdFBoYXNlTmFtZSk6CisgICAgICAg
IChKU0M6OkIzOjpQcm9jZWR1cmU6OmJ5cHJvZHVjdHMpOgorICAgICAgICAqIGIzL0IzUmVkdWNl
U3RyZW5ndGguY3BwOgorICAgICAgICAqIGIzL0IzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmNw
cDoKKyAgICAgICAgKEpTQzo6QjM6OlN0YWNrbWFwR2VuZXJhdGlvblBhcmFtczo6dW5hdmFpbGFi
bGVSZWdpc3RlcnMpOgorICAgICAgICAoSlNDOjpCMzo6U3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1z
OjpzdWNjZXNzb3JMYWJlbHMpOgorICAgICAgICAoSlNDOjpCMzo6U3RhY2ttYXBHZW5lcmF0aW9u
UGFyYW1zOjpmYWxsc1Rocm91Z2hUb1N1Y2Nlc3Nvcik6CisgICAgICAgIChKU0M6OkIzOjpTdGFj
a21hcEdlbmVyYXRpb25QYXJhbXM6OnByb2MpOgorICAgICAgICAqIGIzL0IzU3RhY2ttYXBHZW5l
cmF0aW9uUGFyYW1zLmg6CisgICAgICAgIChKU0M6OkIzOjpTdGFja21hcEdlbmVyYXRpb25QYXJh
bXM6OmdwU2NyYXRjaCk6CisgICAgICAgIChKU0M6OkIzOjpTdGFja21hcEdlbmVyYXRpb25QYXJh
bXM6OmZwU2NyYXRjaCk6CisgICAgICAgICogYjMvQjNTd2l0Y2hWYWx1ZS5jcHA6CisgICAgICAg
IChKU0M6OkIzOjpTd2l0Y2hWYWx1ZTo6flN3aXRjaFZhbHVlKToKKyAgICAgICAgKEpTQzo6QjM6
OlN3aXRjaFZhbHVlOjpyZW1vdmVDYXNlKToKKyAgICAgICAgKEpTQzo6QjM6OlN3aXRjaFZhbHVl
OjpoYXNGYWxsVGhyb3VnaCk6CisgICAgICAgIChKU0M6OkIzOjpTd2l0Y2hWYWx1ZTo6c2V0RmFs
bFRocm91Z2gpOgorICAgICAgICAoSlNDOjpCMzo6U3dpdGNoVmFsdWU6OmFwcGVuZENhc2UpOgor
ICAgICAgICAoSlNDOjpCMzo6U3dpdGNoVmFsdWU6OmR1bXBTdWNjZXNzb3JzKToKKyAgICAgICAg
KEpTQzo6QjM6OlN3aXRjaFZhbHVlOjpkdW1wTWV0YSk6CisgICAgICAgIChKU0M6OkIzOjpTd2l0
Y2hWYWx1ZTo6Y2xvbmVJbXBsKToKKyAgICAgICAgKEpTQzo6QjM6OlN3aXRjaFZhbHVlOjpTd2l0
Y2hWYWx1ZSk6CisgICAgICAgICogYjMvQjNTd2l0Y2hWYWx1ZS5oOgorICAgICAgICAoSlNDOjpC
Mzo6U3dpdGNoVmFsdWU6OmFjY2VwdHMpOgorICAgICAgICAoSlNDOjpCMzo6U3dpdGNoVmFsdWU6
OmNhc2VWYWx1ZXMpOgorICAgICAgICAoSlNDOjpCMzo6U3dpdGNoVmFsdWU6OmNhc2VzKToKKyAg
ICAgICAgKEpTQzo6QjM6OlN3aXRjaFZhbHVlOjpmYWxsVGhyb3VnaCk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkIzOjpTd2l0Y2hWYWx1ZTo6c2l6ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkIzOjpTd2l0Y2hWYWx1ZTo6YXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpCMzo6U3dpdGNo
VmFsdWU6Om9wZXJhdG9yW10pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpCMzo6U3dpdGNoVmFs
dWU6Oml0ZXJhdG9yOjppdGVyYXRvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkIzOjpTd2l0
Y2hWYWx1ZTo6aXRlcmF0b3I6Om9wZXJhdG9yKik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkIz
OjpTd2l0Y2hWYWx1ZTo6aXRlcmF0b3I6Om9wZXJhdG9yKyspOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpCMzo6U3dpdGNoVmFsdWU6Oml0ZXJhdG9yOjpvcGVyYXRvcj09KTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6QjM6OlN3aXRjaFZhbHVlOjppdGVyYXRvcjo6b3BlcmF0b3IhPSk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkIzOjpTd2l0Y2hWYWx1ZTo6YmVnaW4pOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpCMzo6U3dpdGNoVmFsdWU6OmVuZCk6IERlbGV0ZWQuCisgICAgICAgICogYjMv
QjNWYWxpZGF0ZS5jcHA6CisgICAgICAgICogYjMvQjNWYWx1ZS5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpWYWx1ZTo6cmVwbGFjZVdpdGhQaGkpOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6OnJl
cGxhY2VXaXRoSnVtcCk6CisgICAgICAgIChKU0M6OkIzOjpWYWx1ZTo6cmVwbGFjZVdpdGhPb3Bz
KToKKyAgICAgICAgKEpTQzo6QjM6OlZhbHVlOjpkdW1wKToKKyAgICAgICAgKEpTQzo6QjM6OlZh
bHVlOjpkZWVwRHVtcCk6CisgICAgICAgIChKU0M6OkIzOjpWYWx1ZTo6ZHVtcFN1Y2Nlc3NvcnMp
OgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6Om5lZ0NvbnN0YW50KToKKyAgICAgICAgKEpTQzo6
QjM6OlZhbHVlOjp0eXBlRm9yKToKKyAgICAgICAgKiBiMy9CM1ZhbHVlLmg6CisgICAgICAgICog
YjMvYWlyL0FpckNvZGUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpDb2RlOjphZGRGYXN0
VG1wKToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6Q29kZTo6YWRkRGF0YVNlY3Rpb24pOgorICAg
ICAgICAoSlNDOjpCMzo6QWlyOjpDb2RlOjpqc0hhc2gpOgorICAgICAgICAqIGIzL2Fpci9BaXJD
b2RlLmg6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkNvZGU6OmlzRmFzdFRtcCk6CisgICAgICAg
IChKU0M6OkIzOjpBaXI6OkNvZGU6OnNldExhc3RQaGFzZU5hbWUpOgorICAgICAgICAqIGIzL2Fp
ci9BaXJDdXN0b20uaDoKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6UGF0Y2hDdXN0b206OnNob3Vs
ZFRyeUFsaWFzaW5nRGVmKToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6UGF0Y2hDdXN0b206Omlz
VGVybWluYWwpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpQYXRjaEN1c3RvbTo6aGFzTm9uQXJn
Tm9uQ29udHJvbEVmZmVjdHMpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpQYXRjaEN1c3RvbTo6
Z2VuZXJhdGUpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpDQ2FsbEN1c3RvbTo6YWRtaXRzU3Rh
Y2spOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpDQ2FsbEN1c3RvbTo6aXNUZXJtaW5hbCk6Cisg
ICAgICAgIChKU0M6OkIzOjpBaXI6OkNDYWxsQ3VzdG9tOjpoYXNOb25BcmdOb25Db250cm9sRWZm
ZWN0cyk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OlNodWZmbGVDdXN0b206OmFkbWl0c1N0YWNr
KToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6U2h1ZmZsZUN1c3RvbTo6aXNUZXJtaW5hbCk6Cisg
ICAgICAgIChKU0M6OkIzOjpBaXI6OlNodWZmbGVDdXN0b206Omhhc05vbkFyZ05vbkNvbnRyb2xF
ZmZlY3RzKToKKyAgICAgICAgKiBiMy9haXIvQWlyR2VuZXJhdGUuY3BwOgorICAgICAgICAoSlND
OjpCMzo6QWlyOjpnZW5lcmF0ZSk6CisgICAgICAgICogYjMvYWlyL0FpckdlbmVyYXRpb25Db250
ZXh0Lmg6CisgICAgICAgICogYjMvYWlyL0Fpckluc3QuaDoKKyAgICAgICAgKEpTQzo6QjM6OkFp
cjo6SW5zdDo6aGFzTm9uQ29udHJvbEVmZmVjdHMpOgorICAgICAgICAqIGIzL2Fpci9BaXJTaW1w
bGlmeUNGRy5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OnNpbXBsaWZ5Q0ZHKToKKyAgICAg
ICAgKiBiMy9haXIvQWlyU3BlY2lhbC5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OlNwZWNp
YWw6OnNob3VsZFRyeUFsaWFzaW5nRGVmKToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6U3BlY2lh
bDo6aXNUZXJtaW5hbCk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OlNwZWNpYWw6Omhhc05vbkFy
Z05vbkNvbnRyb2xFZmZlY3RzKToKKyAgICAgICAgKiBiMy9haXIvQWlyU3BlY2lhbC5oOgorICAg
ICAgICAqIGIzL2Fpci9BaXJWYWxpZGF0ZS5jcHA6CisgICAgICAgICogYjMvYWlyL29wY29kZV9n
ZW5lcmF0b3IucmI6CisgICAgICAgICogYjMvdGVzdGIzLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6
OnNob3VsZEJlVmVyYm9zZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0NDIpOgorICAgICAgICAo
SlNDOjpCMzo6dGVzdExvYWQ0Mik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TG9hZFdpdGhPZmZz
ZXRJbXBsKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RBcmcpOgorICAgICAgICAoSlNDOjpCMzo6
dGVzdFJldHVybkNvbnN0NjQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEFkZEFyZyk6CisgICAg
ICAgIChKU0M6OkIzOjp0ZXN0QWRkQXJncyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QWRkQXJn
SW1tKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RBZGRJbW1BcmcpOgorICAgICAgICAoSlNDOjpC
Mzo6dGVzdEFkZEFyZ01lbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QWRkTWVtQXJnKToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RBZGRJbW1NZW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEFk
ZEFyZzMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RBZGRBcmdzMzIpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdEFkZEFyZ01lbTMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RBZGRNZW1Bcmcz
Mik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QWRkSW1tTWVtMzIpOgorICAgICAgICAoSlNDOjpC
Mzo6dGVzdEFkZEFyZ1plcm9JbW1aRGVmKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RBZGRMb2Fk
VHdpY2UpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEFkZEFyZ0RvdWJsZSk6CisgICAgICAgIChK
U0M6OkIzOjp0ZXN0QWRkQXJnc0RvdWJsZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QWRkQXJn
SW1tRG91YmxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RBZGRJbW1BcmdEb3VibGUpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdEFkZEltbXNEb3VibGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dEFkZEFyZ0Zsb2F0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RBZGRBcmdzRmxvYXQpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdEFkZEFyZ0ltbUZsb2F0KToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RBZGRJbW1BcmdGbG9hdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QWRkSW1tc0Zsb2F0KToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RBZGRBcmdGbG9hdFdpdGhVc2VsZXNzRG91YmxlQ29udmVy
c2lvbik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QWRkQXJnc0Zsb2F0V2l0aFVzZWxlc3NEb3Vi
bGVDb252ZXJzaW9uKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RBZGRBcmdzRmxvYXRXaXRoRWZm
ZWN0ZnVsRG91YmxlQ29udmVyc2lvbik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TXVsQXJnKToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RNdWxBcmdTdG9yZSk6CisgICAgICAgIChKU0M6OkIzOjp0
ZXN0TXVsQWRkQXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNdWxBcmdzKToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RNdWxBcmdJbW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE11bEltbUFy
Zyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TXVsQXJnczMyKToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RNdWxMb2FkVHdpY2UpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE11bEFkZEFyZ3NMZWZ0
KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNdWxBZGRBcmdzUmlnaHQpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdE11bEFkZEFyZ3NMZWZ0MzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE11bEFk
ZEFyZ3NSaWdodDMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNdWxTdWJBcmdzTGVmdCk6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0TXVsU3ViQXJnc1JpZ2h0KToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RNdWxTdWJBcmdzTGVmdDMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNdWxTdWJBcmdz
UmlnaHQzMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TXVsTmVnQXJncyk6CisgICAgICAgIChK
U0M6OkIzOjp0ZXN0TXVsTmVnQXJnczMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNdWxBcmdE
b3VibGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE11bEFyZ3NEb3VibGUpOgorICAgICAgICAo
SlNDOjpCMzo6dGVzdE11bEFyZ0ltbURvdWJsZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TXVs
SW1tQXJnRG91YmxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNdWxJbW1zRG91YmxlKToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RNdWxBcmdGbG9hdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0
TXVsQXJnc0Zsb2F0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNdWxBcmdJbW1GbG9hdCk6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0TXVsSW1tQXJnRmxvYXQpOgorICAgICAgICAoSlNDOjpCMzo6
dGVzdE11bEltbXNGbG9hdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TXVsQXJnRmxvYXRXaXRo
VXNlbGVzc0RvdWJsZUNvbnZlcnNpb24pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE11bEFyZ3NG
bG9hdFdpdGhVc2VsZXNzRG91YmxlQ29udmVyc2lvbik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0
TXVsQXJnc0Zsb2F0V2l0aEVmZmVjdGZ1bERvdWJsZUNvbnZlcnNpb24pOgorICAgICAgICAoSlND
OjpCMzo6dGVzdERpdkFyZ0RvdWJsZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0RGl2QXJnc0Rv
dWJsZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0RGl2QXJnSW1tRG91YmxlKToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3REaXZJbW1BcmdEb3VibGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdERp
dkltbXNEb3VibGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdERpdkFyZ0Zsb2F0KToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3REaXZBcmdzRmxvYXQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdERp
dkFyZ0ltbUZsb2F0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3REaXZJbW1BcmdGbG9hdCk6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0RGl2SW1tc0Zsb2F0KToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RNb2RBcmdEb3VibGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE1vZEFyZ3NEb3VibGUpOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdE1vZEFyZ0ltbURvdWJsZSk6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0TW9kSW1tQXJnRG91YmxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNb2RJbW1zRG91
YmxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNb2RBcmdGbG9hdCk6CisgICAgICAgIChKU0M6
OkIzOjp0ZXN0TW9kQXJnc0Zsb2F0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RNb2RBcmdJbW1G
bG9hdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TW9kSW1tQXJnRmxvYXQpOgorICAgICAgICAo
SlNDOjpCMzo6dGVzdE1vZEltbXNGbG9hdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0RGl2QXJn
RmxvYXRXaXRoVXNlbGVzc0RvdWJsZUNvbnZlcnNpb24pOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dERpdkFyZ3NGbG9hdFdpdGhVc2VsZXNzRG91YmxlQ29udmVyc2lvbik6CisgICAgICAgIChKU0M6
OkIzOjp0ZXN0RGl2QXJnc0Zsb2F0V2l0aEVmZmVjdGZ1bERvdWJsZUNvbnZlcnNpb24pOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdFN1YkFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3ViQXJn
cyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3ViQXJnSW1tKToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3ROZWdWYWx1ZVN1Yk9uZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3ViSW1tQXJnKToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdWJBcmdNZW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dFN1Yk1lbUFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3ViSW1tTWVtKToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RTdWJNZW1JbW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN1YkFyZ3Mz
Mik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3ViQXJnSW1tMzIpOgorICAgICAgICAoSlNDOjpC
Mzo6dGVzdFN1YkltbUFyZzMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdWJNZW1BcmczMik6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3ViQXJnTWVtMzIpOgorICAgICAgICAoSlNDOjpCMzo6
dGVzdFN1YkltbU1lbTMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdWJNZW1JbW0zMik6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0TmVnVmFsdWVTdWJPbmUzMik6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0U3ViQXJnRG91YmxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdWJBcmdzRG91Ymxl
KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdWJBcmdJbW1Eb3VibGUpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdFN1YkltbUFyZ0RvdWJsZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3ViSW1t
c0RvdWJsZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3ViQXJnRmxvYXQpOgorICAgICAgICAo
SlNDOjpCMzo6dGVzdFN1YkFyZ3NGbG9hdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3ViQXJn
SW1tRmxvYXQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN1YkltbUFyZ0Zsb2F0KToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RTdWJJbW1zRmxvYXQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN1
YkFyZ0Zsb2F0V2l0aFVzZWxlc3NEb3VibGVDb252ZXJzaW9uKToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RTdWJBcmdzRmxvYXRXaXRoVXNlbGVzc0RvdWJsZUNvbnZlcnNpb24pOgorICAgICAgICAo
SlNDOjpCMzo6dGVzdFN1YkFyZ3NGbG9hdFdpdGhFZmZlY3RmdWxEb3VibGVDb252ZXJzaW9uKToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRBbmRBcmdzKToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RCaXRBbmRTYW1lQXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRBbmRJbW1zKToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RCaXRBbmRBcmdJbW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dEJpdEFuZEltbUFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0QW5kQml0QW5kQXJnSW1t
SW1tKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRBbmRJbW1CaXRBbmRBcmdJbW0pOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdEJpdEFuZEFyZ3MzMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0
Qml0QW5kU2FtZUFyZzMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRBbmRJbW1zMzIpOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdEFuZEFyZ0ltbTMyKToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RCaXRBbmRJbW1BcmczMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0QW5kQml0QW5k
QXJnSW1tSW1tMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdEFuZEltbUJpdEFuZEFyZ0lt
bTMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRBbmRXaXRoTWFza1JldHVybnNCb29sZWFu
cyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0QW5kQXJnRG91YmxlKToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3RCaXRBbmRBcmdzRG91YmxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRB
bmRBcmdJbW1Eb3VibGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdEFuZEltbXNEb3VibGUp
OgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdEFuZEFyZ0Zsb2F0KToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RCaXRBbmRBcmdzRmxvYXQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdEFuZEFy
Z0ltbUZsb2F0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRBbmRJbW1zRmxvYXQpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdEJpdEFuZEFyZ3NGbG9hdFdpdGhVc2VsZXNzRG91YmxlQ29udmVy
c2lvbik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0T3JBcmdzKToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RCaXRPclNhbWVBcmcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdE9ySW1tcyk6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0T3JBcmdJbW0pOgorICAgICAgICAoSlNDOjpCMzo6
dGVzdEJpdE9ySW1tQXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRPckJpdE9yQXJnSW1t
SW1tKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRPckltbUJpdE9yQXJnSW1tKToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RCaXRPckFyZ3MzMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0
T3JTYW1lQXJnMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdE9ySW1tczMyKToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RCaXRPckFyZ0ltbTMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RC
aXRPckltbUFyZzMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRPckJpdE9yQXJnSW1tSW1t
MzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdE9ySW1tQml0T3JBcmdJbW0zMik6CisgICAg
ICAgIChKU0M6OkIzOjp0ZXN0Qml0WG9yQXJncyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0
WG9yU2FtZUFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0WG9ySW1tcyk6CisgICAgICAg
IChKU0M6OkIzOjp0ZXN0Qml0WG9yQXJnSW1tKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRY
b3JJbW1BcmcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdFhvckJpdFhvckFyZ0ltbUltbSk6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0WG9ySW1tQml0WG9yQXJnSW1tKToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RCaXRYb3JBcmdzMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdFhv
clNhbWVBcmczMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0WG9ySW1tczMyKToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RCaXRYb3JBcmdJbW0zMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0
Qml0WG9ySW1tQXJnMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdFhvckJpdFhvckFyZ0lt
bUltbTMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRYb3JJbW1CaXRYb3JBcmdJbW0zMik6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0Tm90QXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RCaXROb3RJbW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdE5vdE1lbSk6CisgICAgICAg
IChKU0M6OkIzOjp0ZXN0Qml0Tm90QXJnMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdE5v
dEltbTMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXROb3RNZW0zMik6CisgICAgICAgIChK
U0M6OkIzOjp0ZXN0Qml0Tm90T25Cb29sZWFuQW5kQnJhbmNoMzIpOgorICAgICAgICAoSlNDOjpC
Mzo6dGVzdFNobEFyZ3MpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNobEltbXMpOgorICAgICAg
ICAoSlNDOjpCMzo6dGVzdFNobEFyZ0ltbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U2hsQXJn
MzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNobEFyZ3MzMik6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0U2hsSW1tczMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTaGxBcmdJbW0zMik6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0U1NockFyZ3MpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNT
aHJJbW1zKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTU2hyQXJnSW1tKToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3RTU2hyQXJnMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNTaHJBcmdzMzIp
OgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNTaHJJbW1zMzIpOgorICAgICAgICAoSlNDOjpCMzo6
dGVzdFNTaHJBcmdJbW0zMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0WlNockFyZ3MpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdFpTaHJJbW1zKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RaU2hy
QXJnSW1tKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RaU2hyQXJnMzIpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdFpTaHJBcmdzMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFpTaHJJbW1zMzIp
OgorICAgICAgICAoSlNDOjpCMzo6dGVzdFpTaHJBcmdJbW0zMik6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0Q2x6QXJnNjQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENsek1lbTY0KToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RDbHpBcmczMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2x6TWVt
MzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEFic0FyZyk6CisgICAgICAgIChKU0M6OkIzOjp0
ZXN0QWJzSW1tKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RBYnNNZW0pOgorICAgICAgICAoSlND
OjpCMzo6dGVzdEFic0Fic0FyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QWJzQml0d2lzZUNh
c3RBcmcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdHdpc2VDYXN0QWJzQml0d2lzZUNhc3RB
cmcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEFic0FyZ1dpdGhVc2VsZXNzRG91YmxlQ29udmVy
c2lvbik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QWJzQXJnV2l0aEVmZmVjdGZ1bERvdWJsZUNv
bnZlcnNpb24pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENlaWxBcmcpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdENlaWxJbW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENlaWxNZW0pOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdENlaWxDZWlsQXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RG
bG9vckNlaWxBcmcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENlaWxJVG9ENjQpOgorICAgICAg
ICAoSlNDOjpCMzo6dGVzdENlaWxJVG9EMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENlaWxB
cmdXaXRoVXNlbGVzc0RvdWJsZUNvbnZlcnNpb24pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENl
aWxBcmdXaXRoRWZmZWN0ZnVsRG91YmxlQ29udmVyc2lvbik6CisgICAgICAgIChKU0M6OkIzOjp0
ZXN0Rmxvb3JBcmcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEZsb29ySW1tKToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RGbG9vck1lbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Rmxvb3JGbG9v
ckFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2VpbEZsb29yQXJnKToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3RGbG9vcklUb0Q2NCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Rmxvb3JJVG9E
MzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEZsb29yQXJnV2l0aFVzZWxlc3NEb3VibGVDb252
ZXJzaW9uKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RGbG9vckFyZ1dpdGhFZmZlY3RmdWxEb3Vi
bGVDb252ZXJzaW9uKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTcXJ0QXJnKToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RTcXJ0SW1tKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTcXJ0TWVtKToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RTcXJ0QXJnV2l0aFVzZWxlc3NEb3VibGVDb252ZXJzaW9u
KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTcXJ0QXJnV2l0aEVmZmVjdGZ1bERvdWJsZUNvbnZl
cnNpb24pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENvbXBhcmVUd29GbG9hdFRvRG91YmxlKToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RDb21wYXJlT25lRmxvYXRUb0RvdWJsZSk6CisgICAgICAg
IChKU0M6OkIzOjp0ZXN0Q29tcGFyZUZsb2F0VG9Eb3VibGVUaHJvdWdoUGhpKToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3REb3VibGVUb0Zsb2F0VGhyb3VnaFBoaSk6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0RG91YmxlUHJvZHVjZXJQaGlUb0Zsb2F0Q29udmVyc2lvbik6CisgICAgICAgIChKU0M6
OkIzOjp0ZXN0RG91YmxlUHJvZHVjZXJQaGlUb0Zsb2F0Q29udmVyc2lvbldpdGhEb3VibGVDb25z
dW1lcik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0RG91YmxlUHJvZHVjZXJQaGlXaXRoTm9uRmxv
YXRDb25zdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0RG91YmxlQXJnVG9JbnQ2NEJpdHdpc2VD
YXN0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3REb3VibGVJbW1Ub0ludDY0Qml0d2lzZUNhc3Qp
OgorICAgICAgICAoSlNDOjpCMzo6dGVzdFR3b0JpdHdpc2VDYXN0T25Eb3VibGUpOgorICAgICAg
ICAoSlNDOjpCMzo6dGVzdEJpdHdpc2VDYXN0T25Eb3VibGVJbk1lbW9yeSk6CisgICAgICAgIChK
U0M6OkIzOjp0ZXN0Qml0d2lzZUNhc3RPbkRvdWJsZUluTWVtb3J5SW5kZXhlZCk6CisgICAgICAg
IChKU0M6OkIzOjp0ZXN0SW50NjRCQXJnVG9Eb3VibGVCaXR3aXNlQ2FzdCk6CisgICAgICAgIChK
U0M6OkIzOjp0ZXN0SW50NjRCSW1tVG9Eb3VibGVCaXR3aXNlQ2FzdCk6CisgICAgICAgIChKU0M6
OkIzOjp0ZXN0VHdvQml0d2lzZUNhc3RPbkludDY0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RC
aXR3aXNlQ2FzdE9uSW50NjRJbk1lbW9yeSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0d2lz
ZUNhc3RPbkludDY0SW5NZW1vcnlJbmRleGVkKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RGbG9h
dEltbVRvSW50MzJCaXR3aXNlQ2FzdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Qml0d2lzZUNh
c3RPbkZsb2F0SW5NZW1vcnkpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEludDMyQkFyZ1RvRmxv
YXRCaXR3aXNlQ2FzdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0SW50MzJCSW1tVG9GbG9hdEJp
dHdpc2VDYXN0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RUd29CaXR3aXNlQ2FzdE9uSW50MzIp
OgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJpdHdpc2VDYXN0T25JbnQzMkluTWVtb3J5KToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RDb252ZXJ0RG91YmxlVG9GbG9hdEFyZyk6CisgICAgICAgIChK
U0M6OkIzOjp0ZXN0Q29udmVydERvdWJsZVRvRmxvYXRJbW0pOgorICAgICAgICAoSlNDOjpCMzo6
dGVzdENvbnZlcnREb3VibGVUb0Zsb2F0TWVtKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDb252
ZXJ0RmxvYXRUb0RvdWJsZUFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q29udmVydEZsb2F0
VG9Eb3VibGVJbW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENvbnZlcnRGbG9hdFRvRG91Ymxl
TWVtKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDb252ZXJ0RG91YmxlVG9GbG9hdFRvRG91Ymxl
VG9GbG9hdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TG9hZEZsb2F0Q29udmVydERvdWJsZUNv
bnZlcnRGbG9hdFN0b3JlRmxvYXQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEZyb3VuZEFyZyk6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0RnJvdW5kTWVtKToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RJVG9ENjRBcmcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdElUb0Y2NEFyZyk6CisgICAgICAg
IChKU0M6OkIzOjp0ZXN0SVRvRDMyQXJnKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RJVG9GMzJB
cmcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdElUb0Q2NE1lbSk6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0SVRvRjY0TWVtKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RJVG9EMzJNZW0pOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdElUb0YzMk1lbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0SVRv
RDY0SW1tKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RJVG9GNjRJbW0pOgorICAgICAgICAoSlND
OjpCMzo6dGVzdElUb0QzMkltbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0SVRvRjMySW1tKToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RJVG9EUmVkdWNlZFRvSVRvRjY0QXJnKToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RJVG9EUmVkdWNlZFRvSVRvRjMyQXJnKToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RTdG9yZTMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdG9yZUNvbnN0YW50KToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RTdG9yZUNvbnN0YW50UHRyKToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RTdG9yZThBcmcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN0b3JlOEltbSk6CisgICAg
ICAgIChKU0M6OkIzOjp0ZXN0U3RvcmVQYXJ0aWFsOEJpdFJlZ2lzdGVyT25YODYpOgorICAgICAg
ICAoSlNDOjpCMzo6dGVzdFN0b3JlMTZBcmcpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN0b3Jl
MTZJbW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFRydW5jKToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RBZGQxKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RBZGQxUHRyKToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3ROZWczMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TmVnUHRyKToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RTdG9yZUFkZExvYWQzMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0
U3RvcmVBZGRMb2FkSW1tMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN0b3JlQWRkTG9hZDgp
OgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN0b3JlQWRkTG9hZEltbTgpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdFN0b3JlQWRkTG9hZDE2KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdG9yZUFk
ZExvYWRJbW0xNik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3RvcmVBZGRMb2FkNjQpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdFN0b3JlQWRkTG9hZEltbTY0KToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RTdG9yZUFkZExvYWQzMkluZGV4KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdG9yZUFk
ZExvYWRJbW0zMkluZGV4KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdG9yZUFkZExvYWQ4SW5k
ZXgpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN0b3JlQWRkTG9hZEltbThJbmRleCk6CisgICAg
ICAgIChKU0M6OkIzOjp0ZXN0U3RvcmVBZGRMb2FkMTZJbmRleCk6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0U3RvcmVBZGRMb2FkSW1tMTZJbmRleCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3Rv
cmVBZGRMb2FkNjRJbmRleCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3RvcmVBZGRMb2FkSW1t
NjRJbmRleCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3RvcmVTdWJMb2FkKToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RTdG9yZUFkZExvYWRJbnRlcmZlcmVuY2UpOgorICAgICAgICAoSlNDOjpC
Mzo6dGVzdFN0b3JlQWRkQW5kTG9hZCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3RvcmVOZWdM
b2FkMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN0b3JlTmVnTG9hZFB0cik6CisgICAgICAg
IChKU0M6OkIzOjp0ZXN0QWRkMVVuY29tbXV0ZWQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdExv
YWRPZmZzZXQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdExvYWRPZmZzZXROb3RDb25zdGFudCk6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TG9hZE9mZnNldFVzaW5nQWRkKToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3RMb2FkT2Zmc2V0VXNpbmdBZGRJbnRlcmZlcmVuY2UpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdExvYWRPZmZzZXRVc2luZ0FkZE5vdENvbnN0YW50KToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RMb2FkQWRkclNoaWZ0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RGcmFtZVBvaW50
ZXIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE92ZXJyaWRlRnJhbWVQb2ludGVyKToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RTdGFja1Nsb3QpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdExvYWRG
cm9tRnJhbWVQb2ludGVyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdG9yZUxvYWRTdGFja1Ns
b3QpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdExvYWQpOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dFN0b3JlRmxvYXQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN0b3JlRG91YmxlQ29uc3RhbnRB
c0Zsb2F0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTcGlsbEdQKToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RTcGlsbEZQKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RJbnQzMlRvRG91YmxlUGFy
dGlhbFJlZ2lzdGVyU3RhbGwpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEludDMyVG9Eb3VibGVQ
YXJ0aWFsUmVnaXN0ZXJXaXRob3V0U3RhbGwpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJyYW5j
aCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QnJhbmNoUHRyKToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3REaWFtb25kKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCcmFuY2hOb3RFcXVhbCk6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0QnJhbmNoTm90RXF1YWxDb21tdXRlKToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3RCcmFuY2hOb3RFcXVhbE5vdEVxdWFsKToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RCcmFuY2hFcXVhbCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QnJhbmNoRXF1YWxFcXVhbCk6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QnJhbmNoRXF1YWxDb21tdXRlKToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3RCcmFuY2hFcXVhbEVxdWFsMSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QnJh
bmNoRXF1YWxPclVub3JkZXJlZEFyZ3MpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJyYW5jaE5v
dEVxdWFsQW5kT3JkZXJlZEFyZ3MpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJyYW5jaEVxdWFs
T3JVbm9yZGVyZWREb3VibGVBcmdJbW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJyYW5jaEVx
dWFsT3JVbm9yZGVyZWRGbG9hdEFyZ0ltbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QnJhbmNo
RXF1YWxPclVub3JkZXJlZERvdWJsZUltbXMpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJyYW5j
aEVxdWFsT3JVbm9yZGVyZWRGbG9hdEltbXMpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJyYW5j
aEVxdWFsT3JVbm9yZGVyZWRGbG9hdFdpdGhVc2VsZXNzRG91YmxlQ29udmVyc2lvbik6CisgICAg
ICAgIChKU0M6OkIzOjp0ZXN0QnJhbmNoRm9sZCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0RGlh
bW9uZEZvbGQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJyYW5jaE5vdEVxdWFsRm9sZFB0cik6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0QnJhbmNoRXF1YWxGb2xkUHRyKToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3RCcmFuY2hMb2FkUHRyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCcmFuY2hM
b2FkMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJyYW5jaExvYWQ4Uyk6CisgICAgICAgIChK
U0M6OkIzOjp0ZXN0QnJhbmNoTG9hZDhaKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCcmFuY2hM
b2FkMTZTKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCcmFuY2hMb2FkMTZaKToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RCcmFuY2g4V2l0aExvYWQ4WkluZGV4KToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RDb21wbGV4KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTaW1wbGVQYXRjaHBvaW50KToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RTaW1wbGVQYXRjaHBvaW50V2l0aG91dE91cHV0Q2xvYmJl
cnNHUEFyZ3MpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNpbXBsZVBhdGNocG9pbnRXaXRoT3Vw
dXRDbG9iYmVyc0dQQXJncyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U2ltcGxlUGF0Y2hwb2lu
dFdpdGhvdXRPdXB1dENsb2JiZXJzRlBBcmdzKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTaW1w
bGVQYXRjaHBvaW50V2l0aE91cHV0Q2xvYmJlcnNGUEFyZ3MpOgorICAgICAgICAoSlNDOjpCMzo6
dGVzdFBhdGNocG9pbnRXaXRoRWFybHlDbG9iYmVyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RQ
YXRjaHBvaW50Q2FsbEFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0UGF0Y2hwb2ludEZpeGVk
UmVnaXN0ZXIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFBhdGNocG9pbnRBbnkpOgorICAgICAg
ICAoSlNDOjpCMzo6dGVzdFBhdGNocG9pbnRHUFNjcmF0Y2gpOgorICAgICAgICAoSlNDOjpCMzo6
dGVzdFBhdGNocG9pbnRGUFNjcmF0Y2gpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFBhdGNocG9p
bnRMb3RzT2ZMYXRlQW55cyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0UGF0Y2hwb2ludEFueUlt
bSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0UGF0Y2hwb2ludE1hbnlJbW1zKToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RQYXRjaHBvaW50V2l0aFJlZ2lzdGVyUmVzdWx0KToKKyAgICAgICAgKEpT
Qzo6QjM6OnRlc3RQYXRjaHBvaW50V2l0aFN0YWNrQXJndW1lbnRSZXN1bHQpOgorICAgICAgICAo
SlNDOjpCMzo6dGVzdFBhdGNocG9pbnRXaXRoQW55UmVzdWx0KToKKyAgICAgICAgKEpTQzo6QjM6
OnRlc3RTaW1wbGVDaGVjayk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hlY2tGYWxzZSk6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hlY2tUcnVlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RD
aGVja0xlc3NUaGFuKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDaGVja01lZ2FDb21ibyk6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hlY2tUcmlja3lNZWdhQ29tYm8pOgorICAgICAgICAoSlND
OjpCMzo6dGVzdENoZWNrVHdvTWVnYUNvbWJvcyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hl
Y2tUd29Ob25SZWR1bmRhbnRNZWdhQ29tYm9zKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDaGVj
a0FkZEltbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hlY2tBZGRJbW1Db21tdXRlKToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RDaGVja0FkZEltbVNvbWVSZWdpc3Rlcik6CisgICAgICAgIChK
U0M6OkIzOjp0ZXN0Q2hlY2tBZGQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoZWNrQWRkNjQp
OgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoZWNrQWRkRm9sZCk6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0Q2hlY2tBZGRGb2xkRmFpbCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hlY2tBZGRB
cmd1bWVudEFsaWFzaW5nNjQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoZWNrQWRkQXJndW1l
bnRBbGlhc2luZzMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDaGVja0FkZFNlbGZPdmVyZmxv
dzY0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDaGVja0FkZFNlbGZPdmVyZmxvdzMyKToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RDaGVja1N1YkltbSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0
Q2hlY2tTdWJCYWRJbW0pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoZWNrU3ViKToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RDaGVja1N1YjY0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDaGVj
a1N1YkZvbGQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoZWNrU3ViRm9sZEZhaWwpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdENoZWNrTmVnKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDaGVj
a05lZzY0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDaGVja011bCk6CisgICAgICAgIChKU0M6
OkIzOjp0ZXN0Q2hlY2tNdWxNZW1vcnkpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoZWNrTXVs
Mik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hlY2tNdWw2NCk6CisgICAgICAgIChKU0M6OkIz
Ojp0ZXN0Q2hlY2tNdWxGb2xkKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDaGVja011bEZvbGRG
YWlsKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDaGVja011bEFyZ3VtZW50QWxpYXNpbmc2NCk6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hlY2tNdWxBcmd1bWVudEFsaWFzaW5nMzIpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdENoZWNrTXVsNjRTU2hyKToKKyAgICAgICAgKEpTQzo6QjM6Omdl
bmVyaWNUZXN0Q29tcGFyZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0RXF1YWxEb3VibGUpOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdENhbGxTaW1wbGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dENhbGxSYXJlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDYWxsUmFyZUxpdmUpOgorICAgICAg
ICAoSlNDOjpCMzo6dGVzdENhbGxTaW1wbGVQdXJlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RD
YWxsRnVuY3Rpb25XaXRoSGVsbGFBcmd1bWVudHMpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFJl
dHVybkRvdWJsZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0UmV0dXJuRmxvYXQpOgorICAgICAg
ICAoSlNDOjpCMzo6dGVzdENhbGxTaW1wbGVEb3VibGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dENhbGxTaW1wbGVGbG9hdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2FsbEZ1bmN0aW9uV2l0
aEhlbGxhRG91YmxlQXJndW1lbnRzKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDYWxsRnVuY3Rp
b25XaXRoSGVsbGFGbG9hdEFyZ3VtZW50cyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0Q2hpbGxE
aXYpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoaWxsRGl2VHdpY2UpOgorICAgICAgICAoSlND
OjpCMzo6dGVzdENoaWxsRGl2NjQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdE1vZEFyZyk6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0TW9kQXJncyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TW9k
SW1tcyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TW9kQXJnMzIpOgorICAgICAgICAoSlNDOjpC
Mzo6dGVzdE1vZEFyZ3MzMik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0TW9kSW1tczMyKToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RDaGlsbE1vZEFyZyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0
Q2hpbGxNb2RBcmdzKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDaGlsbE1vZEltbXMpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdENoaWxsTW9kQXJnMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dENoaWxsTW9kQXJnczMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RDaGlsbE1vZEltbXMzMik6
CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3dpdGNoKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RT
d2l0Y2hDaGlsbERpdik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3dpdGNoVGFyZ2V0dGluZ1Nh
bWVCbG9jayk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3dpdGNoVGFyZ2V0dGluZ1NhbWVCbG9j
a0ZvbGRQYXRoQ29uc3RhbnQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFRydW5jRm9sZCk6Cisg
ICAgICAgIChKU0M6OkIzOjp0ZXN0WkV4dDMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RaRXh0
MzJGb2xkKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTRXh0MzIpOgorICAgICAgICAoSlNDOjpC
Mzo6dGVzdFNFeHQzMkZvbGQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFRydW5jWkV4dDMyKToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RUcnVuY1NFeHQzMik6CisgICAgICAgIChKU0M6OkIzOjp0
ZXN0U0V4dDgpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNFeHQ4Rm9sZCk6CisgICAgICAgIChK
U0M6OkIzOjp0ZXN0U0V4dDhTRXh0OCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U0V4dDhTRXh0
MTYpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNFeHQ4Qml0QW5kKToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RCaXRBbmRTRXh0OCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U0V4dDE2KToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RTRXh0MTZGb2xkKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RT
RXh0MTZTRXh0MTYpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNFeHQxNlNFeHQ4KToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RTRXh0MTZCaXRBbmQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJp
dEFuZFNFeHQxNik6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U0V4dDMyQml0QW5kKToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RCaXRBbmRTRXh0MzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEJh
c2ljU2VsZWN0KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTZWxlY3RUZXN0KToKKyAgICAgICAg
KEpTQzo6QjM6OnRlc3RTZWxlY3RDb21wYXJlRG91YmxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RTZWxlY3RDb21wYXJlRmxvYXQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNlbGVjdENvbXBh
cmVGbG9hdFRvRG91YmxlKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTZWxlY3REb3VibGUpOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdFNlbGVjdERvdWJsZVRlc3QpOgorICAgICAgICAoSlNDOjpC
Mzo6dGVzdFNlbGVjdERvdWJsZUNvbXBhcmVEb3VibGUpOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dFNlbGVjdERvdWJsZUNvbXBhcmVGbG9hdCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U2VsZWN0
RmxvYXRDb21wYXJlRmxvYXQpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNlbGVjdEZvbGQpOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdFNlbGVjdEludmVydCk6CisgICAgICAgIChKU0M6OkIzOjp0
ZXN0Q2hlY2tTZWxlY3QpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdENoZWNrU2VsZWN0Q2hlY2tT
ZWxlY3QpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFBvd0RvdWJsZUJ5SW50ZWdlckxvb3ApOgor
ICAgICAgICAoSlNDOjpCMzo6dGVzdFRydW5jT3JIaWdoKToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RUcnVuY09yTG93KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCaXRBbmRPckhpZ2gpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdEJpdEFuZE9yTG93KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RC
cmFuY2g2NEVxdWFsKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RCcmFuY2g2NEVxdWFsSW1tKToK
KyAgICAgICAgKEpTQzo6QjM6OnRlc3RCcmFuY2g2NEVxdWFsTWVtKToKKyAgICAgICAgKEpTQzo6
QjM6OnRlc3RCcmFuY2g2NEVxdWFsTWVtSW1tKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTdG9y
ZThMb2FkOFopOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFN0b3JlMTZMb2FkMTZaKToKKyAgICAg
ICAgKEpTQzo6QjM6OnRlc3RTU2hyU2hsMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFNTaHJT
aGw2NCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0VHJpdmlhbEluZmluaXRlTG9vcCk6CisgICAg
ICAgIChKU0M6OkIzOjp0ZXN0Rm9sZFBhdGhFcXVhbCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0
TFNoaWZ0U2VsZjMyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RSU2hpZnRTZWxmMzIpOgorICAg
ICAgICAoSlNDOjpCMzo6dGVzdFVSU2hpZnRTZWxmMzIpOgorICAgICAgICAoSlNDOjpCMzo6dGVz
dExTaGlmdFNlbGY2NCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0UlNoaWZ0U2VsZjY0KToKKyAg
ICAgICAgKEpTQzo6QjM6OnRlc3RVUlNoaWZ0U2VsZjY0KToKKyAgICAgICAgKEpTQzo6QjM6OnRl
c3RQYXRjaHBvaW50RG91YmxlUmVncyk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3BpbGxEZWZT
bWFsbGVyVGhhblVzZSk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U3BpbGxVc2VMYXJnZXJUaGFu
RGVmKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RMYXRlUmVnaXN0ZXIpOgorICAgICAgICAoSlND
OjpCMzo6dGhyZWFkZWRJbnRlcnByZXRlclByaW50KToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RU
aHJlYWRlZEludGVycHJldGVyKToKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RSZWR1Y2VTdHJlbmd0
aENoZWNrQm90dG9tVXNlSW5Bbm90aGVyQmxvY2spOgorICAgICAgICAoSlNDOjpCMzo6dGVzdFJl
c2V0UmVhY2hhYmlsaXR5RGFuZ2xpbmdSZWZlcmVuY2UpOgorICAgICAgICAoSlNDOjpCMzo6cnVu
KToKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKiBmdGwvRlRM
T3V0cHV0LmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpPdXRwdXQ6Omp1bXApOgorICAgICAgICAo
SlNDOjpGVEw6Ok91dHB1dDo6YnJhbmNoKToKKyAgICAgICAgKEpTQzo6RlRMOjpPdXRwdXQ6OnJl
dCk6CisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0Ojp1bnJlYWNoYWJsZSk6CisgICAgICAgIChK
U0M6OkZUTDo6T3V0cHV0OjpzcGVjdWxhdGUpOgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6
dHJhcCk6CisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0OjphbmNob3IpOgorICAgICAgICAoSlND
OjpGVEw6Ok91dHB1dDo6ZGVjcmVtZW50U3VwZXJTYW1wbGVyQ291bnQpOgorICAgICAgICAoSlND
OjpGVEw6Ok91dHB1dDo6YWRkSW5jb21pbmdUb1BoaSk6CisgICAgICAgICogZnRsL0ZUTE91dHB1
dC5oOgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6Y29uc3RJbnRQdHIpOgorICAgICAgICAo
SlNDOjpGVEw6Ok91dHB1dDo6Y2FsbFdpdGhvdXRTaWRlRWZmZWN0cyk6CisgICAgICAgIChKU0M6
OkZUTDo6T3V0cHV0Ojpzd2l0Y2hJbnN0cnVjdGlvbik6CisgICAgICAgIChKU0M6OkZUTDo6T3V0
cHV0OjpwaGkpOgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6YWRkSW5jb21pbmdUb1BoaSk6
CisKIDIwMTYtMDctMDggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAg
ICAgIEdlbmVyYXRlIFdlYkNvcmUgYnVpbHRpbiB3cmFwcGVyIGZpbGVzCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEwOCw2ICsxMDgs
NyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIGIzL0IzQmxvY2tJbnNlcnRpb25T
ZXQuY3BwCiAgICAgYjMvQjNCcmVha0NyaXRpY2FsRWRnZXMuY3BwCiAgICAgYjMvQjNDQ2FsbFZh
bHVlLmNwcAorICAgIGIzL0IzQ2FzZUNvbGxlY3Rpb24uY3BwCiAgICAgYjMvQjNDaGVja1NwZWNp
YWwuY3BwCiAgICAgYjMvQjNDaGVja1ZhbHVlLmNwcAogICAgIGIzL0IzQ29tbW9uLmNwcApAQCAt
MTE4LDcgKzExOSw2IEBAIHNldChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgYjMvQjNDb25z
dERvdWJsZVZhbHVlLmNwcAogICAgIGIzL0IzQ29uc3RGbG9hdFZhbHVlLmNwcAogICAgIGIzL0Iz
Q29uc3RyYWluZWRWYWx1ZS5jcHAKLSAgICBiMy9CM0NvbnRyb2xWYWx1ZS5jcHAKICAgICBiMy9C
M0RhdGFTZWN0aW9uLmNwcAogICAgIGIzL0IzRHVwbGljYXRlVGFpbHMuY3BwCiAgICAgYjMvQjNF
ZmZlY3RzLmNwcApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIw
MjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC03NzMsOCArNzczLDYgQEAKIAkJMEZF
Qzg1MTAxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29uc3Q2NFZhbHVlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkVDODRDNjFCREFDREFDMDA4MEZGNzQg
LyogQjNDb25zdDY0VmFsdWUuaCAqLzsgfTsKIAkJMEZFQzg1MTExQkRBQ0RBQzAwODBGRjc0IC8q
IEIzQ29uc3REb3VibGVWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRkVDODRDNzFCREFDREFDMDA4MEZGNzQgLyogQjNDb25zdERvdWJsZVZh
bHVlLmNwcCAqLzsgfTsKIAkJMEZFQzg1MTIxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29uc3REb3Vi
bGVWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEZFQzg0QzgxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29uc3REb3VibGVWYWx1ZS5oICovOyB9Owot
CQkwRkVDODUxMzFCREFDREFDMDA4MEZGNzQgLyogQjNDb250cm9sVmFsdWUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZFQzg0QzkxQkRBQ0RBQzAw
ODBGRjc0IC8qIEIzQ29udHJvbFZhbHVlLmNwcCAqLzsgfTsKLQkJMEZFQzg1MTQxQkRBQ0RBQzAw
ODBGRjc0IC8qIEIzQ29udHJvbFZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRkVDODRDQTFCREFDREFDMDA4MEZGNzQgLyogQjNDb250cm9sVmFs
dWUuaCAqLzsgfTsKIAkJMEZFQzg1MTUxQkRBQ0RBQzAwODBGRjc0IC8qIEIzRnJlcXVlbmN5Q2xh
c3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZF
Qzg0Q0IxQkRBQ0RBQzAwODBGRjc0IC8qIEIzRnJlcXVlbmN5Q2xhc3MuY3BwICovOyB9OwogCQkw
RkVDODUxNjFCREFDREFDMDA4MEZGNzQgLyogQjNGcmVxdWVuY3lDbGFzcy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZFQzg0Q0MxQkRBQ0RBQzAwODBG
Rjc0IC8qIEIzRnJlcXVlbmN5Q2xhc3MuaCAqLzsgfTsKIAkJMEZFQzg1MTcxQkRBQ0RBQzAwODBG
Rjc0IC8qIEIzRnJlcXVlbnRlZEJsb2NrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRkVDODRDRDFCREFDREFDMDA4MEZGNzQgLyogQjNGcmVxdWVudGVk
QmxvY2suaCAqLzsgfTsKQEAgLTE5OTcsNiArMTk5NSw5IEBACiAJCURDNjlBQTY2MUNGN0ExRjIw
MEM2MjcyRiAvKiBNYXRjaFJlc3VsdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBEQzY5QUE2NTFDRjdBMUVGMDBDNjI3MkYgLyogTWF0Y2hSZXN1bHQu
Y3BwICovOyB9OwogCQlEQzc5OTc4MzFDREU5RkEwMDA0RDRBMDkgLyogVGFnUmVnaXN0ZXJzTW9k
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM3OTk3
ODIxQ0RFOUY5RTAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlEQzc5OTc4NDFDREU5RkEyMDA0RDRB
MDkgLyogVGFnUmVnaXN0ZXJzTW9kZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBEQzc5OTc4MTFDREU5RjlFMDA0RDRBMDkgLyogVGFnUmVnaXN0ZXJz
TW9kZS5jcHAgKi87IH07CisJCURDOUEwQzFGMUQyRDlDQjEwMDg1MTI0RSAvKiBCM0Nhc2VDb2xs
ZWN0aW9uSW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gREM5QTBDMUUxRDJEOTRFRjAwODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rpb25JbmxpbmVz
LmggKi87IH07CisJCURDOUEwQzIwMUQyRDlDQjMwMDg1MTI0RSAvKiBCM0Nhc2VDb2xsZWN0aW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzlBMEMx
RDFEMkQ5NEVGMDA4NTEyNEUgLyogQjNDYXNlQ29sbGVjdGlvbi5oICovOyB9OworCQlEQzlBMEMy
MTFEMkQ5Q0I0MDA4NTEyNEUgLyogQjNDYXNlQ29sbGVjdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQzlBMEMxQzFEMkQ5NEVGMDA4NTEyNEUg
LyogQjNDYXNlQ29sbGVjdGlvbi5jcHAgKi87IH07CiAJCURDRUUyMjA5MUNFQjk4OTUwMDBDMjM5
NiAvKiBERkdCYWNrd2FyZHNDRkcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IERDRUUyMjA2MUNFQjk4OTAwMDBDMjM5NiAvKiBERkdCYWNrd2FyZHNDRkcu
aCAqLzsgfTsKIAkJRENFRTIyMEExQ0VCOTg5NTAwMEMyMzk2IC8qIERGR0JhY2t3YXJkc0RvbWlu
YXRvcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERD
RUUyMjA3MUNFQjk4OTAwMDBDMjM5NiAvKiBERkdCYWNrd2FyZHNEb21pbmF0b3JzLmggKi87IH07
CiAJCURDRUUyMjBCMUNFQjk4OTUwMDBDMjM5NiAvKiBERkdDb250cm9sRXF1aXZhbGVuY2VBbmFs
eXNpcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRENF
RTIyMDgxQ0VCOTg5MDAwMEMyMzk2IC8qIERGR0NvbnRyb2xFcXVpdmFsZW5jZUFuYWx5c2lzLmgg
Ki87IH07CkBAIC0yOTY0LDggKzI5NjUsNiBAQAogCQkwRkVDODRDNjFCREFDREFDMDA4MEZGNzQg
LyogQjNDb25zdDY0VmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQjND
b25zdDY0VmFsdWUuaDsgcGF0aCA9IGIzL0IzQ29uc3Q2NFZhbHVlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGRUM4NEM3MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0RG91Ymxl
VmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQjNDb25zdERv
dWJsZVZhbHVlLmNwcDsgcGF0aCA9IGIzL0IzQ29uc3REb3VibGVWYWx1ZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRUM4NEM4MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0
RG91YmxlVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQjNDb25zdERv
dWJsZVZhbHVlLmg7IHBhdGggPSBiMy9CM0NvbnN0RG91YmxlVmFsdWUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJMEZFQzg0QzkxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29udHJvbFZh
bHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEIzQ29udHJvbFZh
bHVlLmNwcDsgcGF0aCA9IGIzL0IzQ29udHJvbFZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJMEZFQzg0Q0ExQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29udHJvbFZhbHVlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEIzQ29udHJvbFZhbHVlLmg7IHBhdGgg
PSBiMy9CM0NvbnRyb2xWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkVD
ODRDQjFCREFDREFDMDA4MEZGNzQgLyogQjNGcmVxdWVuY3lDbGFzcy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBCM0ZyZXF1ZW5jeUNsYXNzLmNwcDsgcGF0aCA9IGIz
L0IzRnJlcXVlbmN5Q2xhc3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkVD
ODRDQzFCREFDREFDMDA4MEZGNzQgLyogQjNGcmVxdWVuY3lDbGFzcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBCM0ZyZXF1ZW5jeUNsYXNzLmg7IHBhdGggPSBiMy9CM0ZyZXF1
ZW5jeUNsYXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRUM4NENEMUJEQUNE
QUMwMDgwRkY3NCAvKiBCM0ZyZXF1ZW50ZWRCbG9jay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBCM0ZyZXF1ZW50ZWRCbG9jay5oOyBwYXRoID0gYjMvQjNGcmVxdWVudGVkQmxv
Y2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQyMjUsNiArNDIyNCw5IEBACiAJ
CURDNjlBQTY1MUNGN0ExRUYwMEM2MjcyRiAvKiBNYXRjaFJlc3VsdC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNYXRjaFJlc3VsdC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCURDNzk5NzgxMUNERTlGOUUwMDRENEEwOSAvKiBUYWdSZWdpc3RlcnNN
b2RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRhZ1JlZ2lzdGVy
c01vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzc5OTc4MjFDREU5RjlF
MDA0RDRBMDkgLyogVGFnUmVnaXN0ZXJzTW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBUYWdSZWdpc3RlcnNNb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CURDOUEwQzFDMUQyRDk0RUYwMDg1MTI0RSAvKiBCM0Nhc2VDb2xsZWN0aW9uLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEIzQ2FzZUNvbGxlY3Rpb24uY3BwOyBwYXRo
ID0gYjMvQjNDYXNlQ29sbGVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CURDOUEwQzFEMUQyRDk0RUYwMDg1MTI0RSAvKiBCM0Nhc2VDb2xsZWN0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEIzQ2FzZUNvbGxlY3Rpb24uaDsgcGF0aCA9IGIzL0Iz
Q2FzZUNvbGxlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREM5QTBDMUUx
RDJEOTRFRjAwODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rpb25JbmxpbmVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEIzQ2FzZUNvbGxlY3Rpb25JbmxpbmVzLmg7IHBhdGggPSBi
My9CM0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlEQ0VFMjIwNjFDRUI5ODkwMDAwQzIzOTYgLyogREZHQmFja3dhcmRzQ0ZHLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0JhY2t3YXJkc0NGRy5oOyBwYXRoID0gZGZnL0RG
R0JhY2t3YXJkc0NGRy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQ0VFMjIwNzFD
RUI5ODkwMDAwQzIzOTYgLyogREZHQmFja3dhcmRzRG9taW5hdG9ycy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBERkdCYWNrd2FyZHNEb21pbmF0b3JzLmg7IHBhdGggPSBkZmcv
REZHQmFja3dhcmRzRG9taW5hdG9ycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlE
Q0VFMjIwODFDRUI5ODkwMDAwQzIzOTYgLyogREZHQ29udHJvbEVxdWl2YWxlbmNlQW5hbHlzaXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHQ29udHJvbEVxdWl2YWxlbmNl
QW5hbHlzaXMuaDsgcGF0aCA9IGRmZy9ERkdDb250cm9sRXF1aXZhbGVuY2VBbmFseXNpcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDY5MCw2ICs0NjkyLDkgQEAKIAkJCQlEQ0ZE
RkJENzFEMUY1RDk4MDBGRTNENzIgLyogQjNCb3R0b21Qcm92aWRlci5oICovLAogCQkJCTBGNkI4
QURFMUM0RUZFMTcwMDk2OTA1MiAvKiBCM0JyZWFrQ3JpdGljYWxFZGdlcy5jcHAgKi8sCiAJCQkJ
MEY2QjhBREYxQzRFRkUxNzAwOTY5MDUyIC8qIEIzQnJlYWtDcml0aWNhbEVkZ2VzLmggKi8sCisJ
CQkJREM5QTBDMUMxRDJEOTRFRjAwODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rpb24uY3BwICovLAor
CQkJCURDOUEwQzFEMUQyRDk0RUYwMDg1MTI0RSAvKiBCM0Nhc2VDb2xsZWN0aW9uLmggKi8sCisJ
CQkJREM5QTBDMUUxRDJEOTRFRjAwODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rpb25JbmxpbmVzLmgg
Ki8sCiAJCQkJMEYzMzhERjcxQkU5NkFBODAwMTNDODhGIC8qIEIzQ0NhbGxWYWx1ZS5jcHAgKi8s
CiAJCQkJMEYzMzhERjgxQkU5NkFBODAwMTNDODhGIC8qIEIzQ0NhbGxWYWx1ZS5oICovLAogCQkJ
CTBGMzNGQ0Y5MUMxNjI1QkUwMDMyM0Y2NyAvKiBCM0NGRy5oICovLApAQCAtNDcxNSw4ICs0NzIw
LDYgQEAKIAkJCQkwRkVDODVCMjFCREVEOTU3MDA4MEZGNzQgLyogQjNDb25zdFB0clZhbHVlLmgg
Ki8sCiAJCQkJMEYzMzhERjMxQkU5M0Q1NTAwMTNDODhGIC8qIEIzQ29uc3RyYWluZWRWYWx1ZS5j
cHAgKi8sCiAJCQkJMEYzMzhERjQxQkU5M0Q1NTAwMTNDODhGIC8qIEIzQ29uc3RyYWluZWRWYWx1
ZS5oICovLAotCQkJCTBGRUM4NEM5MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnRyb2xWYWx1ZS5j
cHAgKi8sCi0JCQkJMEZFQzg0Q0ExQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29udHJvbFZhbHVlLmgg
Ki8sCiAJCQkJMEYzMzhFMDExQkYwMjc2QzAwMTNDODhGIC8qIEIzRGF0YVNlY3Rpb24uY3BwICov
LAogCQkJCTBGMzM4RTAyMUJGMDI3NkMwMDEzQzg4RiAvKiBCM0RhdGFTZWN0aW9uLmggKi8sCiAJ
CQkJMEYzM0ZDRkExQzE2MjVCRTAwMzIzRjY3IC8qIEIzRG9taW5hdG9ycy5oICovLApAQCAtNzA2
OCw3ICs3MDcxLDYgQEAKIAkJCQkwRkVDODUxMDFCREFDREFDMDA4MEZGNzQgLyogQjNDb25zdDY0
VmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTEyMUJEQUNEQUMwMDgwRkY3NCAvKiBC
M0NvbnN0RG91YmxlVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NUIzMUJERUQ5NTcw
MDgwRkY3NCAvKiBCM0NvbnN0UHRyVmFsdWUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRUM4NTE0
MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnRyb2xWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEZFQzg1QzExQkUxNjdBMDAwODBGRjc0IC8qIEIzRWZmZWN0cy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEZFQzg1MTYxQkRBQ0RBQzAwODBGRjc0IC8qIEIzRnJlcXVlbmN5Q2xhc3MuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGNjE4MzJGMUM0NUJGMDcwMDcyNDUwQiAvKiBBaXJMb3dlckFmdGVyUmVn
QWxsb2MuaCBpbiBIZWFkZXJzICovLApAQCAtNzIyNSw2ICs3MjI3LDcgQEAKIAkJCQlCQzE4QzNG
QjBFMTZGNUNEMDBCMzQ0NjAgLyogRGVidWdnZXJDYWxsRnJhbWUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTZBRDJDQjREMTlCOTE0MDEwMDA2NTcxOSAvKiBEZWJ1Z2dlckV2YWxFbmFibGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlGRUEwODYyMTE4MkI3QTA0MDBGNkQ4NTEgLyogRGVidWdnZXJQcmlt
aXRpdmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQlEQzlBMEMxRjFEMkQ5Q0IxMDA4NTEyNEUgLyog
QjNDYXNlQ29sbGVjdGlvbklubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMkQ0RERFMTk4
MzJEMzQwMDdENEIxOSAvKiBEZWJ1Z2dlclNjb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjEz
NkQ0RDE3NEFENjlFMDA3NUIzNTQgLyogRGVmZXJHQy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZD
NzEyREYxN0NEODc3QzAwOENDOTNDIC8qIERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oIGlu
IEhlYWRlcnMgKi8sCkBAIC03NDc4LDYgKzc0ODEsNyBAQAogCQkJCTBGRTBFNEFFMUMyNEM5NEEw
MDJFMTdCNiAvKiBBaXJUbXBXaWR0aC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdGMjk5NkMxN0Ew
QkI2NzAwMTA0MTdBIC8qIEZUTEZhaWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUEwQTJDMTcw
QjY2MTkwMEJCNzIyQyAvKiBGVExGb3JtYXR0ZWRWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
REM5QTBDMjAxRDJEOUNCMzAwODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGRDhBMzFBMTdENTFGMjIwMENBMkM0MCAvKiBGVExGb3JPU1JFbnRyeUpJVENv
ZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3OEE5NzdGMTc5NzM4RDUwMDlERjc0NCAvKiBGVExH
ZW5lcmF0ZWRGdW5jdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQTBBMEUxNzA1MTNEQjAw
QkI3MjJDIC8qIEZUTEpJVENvZGUuaCBpbiBIZWFkZXJzICovLApAQCAtODcxMSw3ICs4NzE1LDYg
QEAKIAkJCQk0MzZFNTQ1NDFDNDY4RTc3MDBCNUFGNzMgLyogQjNMZWdhbGl6ZU1lbW9yeU9mZnNl
dHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFQzg1MEYxQkRBQ0RBQzAwODBGRjc0IC8qIEIz
Q29uc3Q2NFZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRUM4NTExMUJEQUNEQUMwMDgw
RkY3NCAvKiBCM0NvbnN0RG91YmxlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFQzg1
MTMxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29udHJvbFZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTBGRUM4NUM1MUJFMTZGNUEwMDgwRkY3NCAvKiBCM0VmZmVjdHMuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMEZFQzg1MTUxQkRBQ0RBQzAwODBGRjc0IC8qIEIzRnJlcXVlbmN5Q2xhc3MuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFQzg1MTgxQkRBQ0RBQzAwODBGRjc0IC8qIEIzR2VuZXJh
dGUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC05MTU2LDYgKzkxNTksNyBAQAogCQkJCTE0N0YzOUQy
MTA3RUMzNzYwMDQyN0E0OCAvKiBKU0dsb2JhbE9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBNUZEMDA4NTE4OUIxQjdFMDA2MzMyMzEgLyogSlNHbG9iYWxPYmplY3RDb25zb2xlQWdlbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVDM0ExQTUxOEMwNDkwMjAwQzk1OTNBIC8qIEpTR2xv
YmFsT2JqZWN0Q29uc29sZUNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlEQzlBMEMyMTFE
MkQ5Q0I0MDA4NTEyNEUgLyogQjNDYXNlQ29sbGVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBNTk0NTU5MjE4MjQ3NDQ3MDBDQzM4NDMgLyogSlNHbG9iYWxPYmplY3REZWJ1Z2dhYmxlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUE1N0QyM0U5MTg5MUIwNzcwMDMxQzdGQSAvKiBKU0dsb2Jh
bE9iamVjdERlYnVnZ2VyQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTRFOUQxN0IxMDdF
QzQ2OTAwNEREQTIxIC8qIEpTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcCBpbiBTb3VyY2VzICov
LApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFS
TTY0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlckFSTTY0LmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
ODc0LDYgKzI4NzQsMTIgQEAgcHVibGljOgogICAgICAgICBsb2FkNjQoYWRkcmVzcywgZ2V0Q2Fj
aGVkRGF0YVRlbXBSZWdpc3RlcklEQW5kSW52YWxpZGF0ZSgpKTsKICAgICAgICAgbV9hc3NlbWJs
ZXIuYnIoZGF0YVRlbXBSZWdpc3Rlcik7CiAgICAgfQorICAgIAorICAgIHZvaWQganVtcChCYXNl
SW5kZXggYWRkcmVzcykKKyAgICB7CisgICAgICAgIGxvYWQ2NChhZGRyZXNzLCBnZXRDYWNoZWRE
YXRhVGVtcFJlZ2lzdGVySURBbmRJbnZhbGlkYXRlKCkpOworICAgICAgICBtX2Fzc2VtYmxlci5i
cihkYXRhVGVtcFJlZ2lzdGVyKTsKKyAgICB9CiAKICAgICB2b2lkIGp1bXAoQWJzb2x1dGVBZGRy
ZXNzIGFkZHJlc3MpCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaAkocmV2aXNpb24gMjAy
ODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4
NkNvbW1vbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMjYzLDYgKzIyNjMsMTIgQEAgcHVibGljOgog
ICAgICAgICBtX2Fzc2VtYmxlci5qbXBfbShhZGRyZXNzLm9mZnNldCwgYWRkcmVzcy5iYXNlKTsK
ICAgICB9CiAKKyAgICAvLyBBZGRyZXNzIGlzIGEgbWVtb3J5IGxvY2F0aW9uIGNvbnRhaW5pbmcg
dGhlIGFkZHJlc3MgdG8ganVtcCB0bworICAgIHZvaWQganVtcChCYXNlSW5kZXggYWRkcmVzcykK
KyAgICB7CisgICAgICAgIG1fYXNzZW1ibGVyLmptcF9tKGFkZHJlc3Mub2Zmc2V0LCBhZGRyZXNz
LmJhc2UsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUpOworICAgIH0KKwogCiAgICAgLy8g
QXJpdGhtZXRpYyBjb250cm9sIGZsb3cgb3BlcmF0aW9uczoKICAgICAvLwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oCShyZXZpc2lvbiAy
MDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xOTgzLDYgKzE5ODMsMTEgQEAgcHVibGljOgogICAgICAgICBt
X2Zvcm1hdHRlci5vbmVCeXRlT3AoT1BfR1JPVVA1X0V2LCBHUk9VUDVfT1BfSk1QTiwgYmFzZSwg
b2Zmc2V0KTsKICAgICB9CiAgICAgCisgICAgdm9pZCBqbXBfbShpbnQgb2Zmc2V0LCBSZWdpc3Rl
cklEIGJhc2UsIFJlZ2lzdGVySUQgaW5kZXgsIGludCBzY2FsZSkKKyAgICB7CisgICAgICAgIG1f
Zm9ybWF0dGVyLm9uZUJ5dGVPcChPUF9HUk9VUDVfRXYsIEdST1VQNV9PUF9KTVBOLCBiYXNlLCBp
bmRleCwgc2NhbGUsIG9mZnNldCk7CisgICAgfQorICAgIAogI2lmICFDUFUoWDg2XzY0KQogICAg
IHZvaWQgam1wX20oY29uc3Qgdm9pZCogYWRkcmVzcykKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMwLDcgKzMwLDYgQEAKIAogI2luY2x1ZGUgIkIzQmFzaWNCbG9ja0lubGluZXMuaCIKICNpbmNs
dWRlICJCM0Jhc2ljQmxvY2tVdGlscy5oIgotI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCiAj
aW5jbHVkZSAiQjNQcm9jZWR1cmUuaCIKICNpbmNsdWRlICJCM1ZhbHVlSW5saW5lcy5oIgogI2lu
Y2x1ZGUgPHd0Zi9MaXN0RHVtcC5oPgpAQCAtNTIsMTIgKzUxLDE0IEBAIEJhc2ljQmxvY2s6On5C
YXNpY0Jsb2NrKCkKIHZvaWQgQmFzaWNCbG9jazo6YXBwZW5kKFZhbHVlKiB2YWx1ZSkKIHsKICAg
ICBtX3ZhbHVlcy5hcHBlbmQodmFsdWUpOworICAgIHZhbHVlLT5vd25lciA9IHRoaXM7CiB9CiAK
IHZvaWQgQmFzaWNCbG9jazo6YXBwZW5kTm9uVGVybWluYWwoVmFsdWUqIHZhbHVlKQogewogICAg
IG1fdmFsdWVzLmFwcGVuZChtX3ZhbHVlcy5sYXN0KCkpOwogICAgIG1fdmFsdWVzW21fdmFsdWVz
LnNpemUoKSAtIDFdID0gdmFsdWU7CisgICAgdmFsdWUtPm93bmVyID0gdGhpczsKIH0KIAogdm9p
ZCBCYXNpY0Jsb2NrOjpyZW1vdmVMYXN0KFByb2NlZHVyZSYgcHJvYykKQEAgLTg0LDkgKzg1LDQx
IEBAIFZhbHVlKiBCYXNpY0Jsb2NrOjphcHBlbmRJbnRDb25zdGFudChQcm8KICAgICByZXR1cm4g
YXBwZW5kSW50Q29uc3RhbnQocHJvYywgbGlrZVZhbHVlLT5vcmlnaW4oKSwgbGlrZVZhbHVlLT50
eXBlKCksIHZhbHVlKTsKIH0KIAordm9pZCBCYXNpY0Jsb2NrOjpjbGVhclN1Y2Nlc3NvcnMoKQor
eworICAgIG1fc3VjY2Vzc29ycy5jbGVhcigpOworfQorCit2b2lkIEJhc2ljQmxvY2s6OmFwcGVu
ZFN1Y2Nlc3Nvcihjb25zdCBGcmVxdWVudGVkQmxvY2smIHRhcmdldCkKK3sKKyAgICBtX3N1Y2Nl
c3NvcnMuYXBwZW5kKHRhcmdldCk7Cit9CisKK3ZvaWQgQmFzaWNCbG9jazo6c2V0U3VjY2Vzc29y
cyhjb25zdCBGcmVxdWVudGVkQmxvY2smIHRhcmdldCkKK3sKKyAgICBtX3N1Y2Nlc3NvcnMucmVz
aXplKDEpOworICAgIG1fc3VjY2Vzc29yc1swXSA9IHRhcmdldDsKK30KKwordm9pZCBCYXNpY0Js
b2NrOjpzZXRTdWNjZXNzb3JzKGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgdGFrZW4sIGNvbnN0IEZy
ZXF1ZW50ZWRCbG9jayYgbm90VGFrZW4pCit7CisgICAgbV9zdWNjZXNzb3JzLnJlc2l6ZSgyKTsK
KyAgICBtX3N1Y2Nlc3NvcnNbMF0gPSB0YWtlbjsKKyAgICBtX3N1Y2Nlc3NvcnNbMV0gPSBub3RU
YWtlbjsKK30KKwogYm9vbCBCYXNpY0Jsb2NrOjpyZXBsYWNlU3VjY2Vzc29yKEJhc2ljQmxvY2sq
IGZyb20sIEJhc2ljQmxvY2sqIHRvKQogewotICAgIHJldHVybiBsYXN0KCktPmFzPENvbnRyb2xW
YWx1ZT4oKS0+cmVwbGFjZVN1Y2Nlc3Nvcihmcm9tLCB0byk7CisgICAgYm9vbCByZXN1bHQgPSBm
YWxzZTsKKyAgICBmb3IgKEJhc2ljQmxvY2sqJiBzdWNjZXNzb3IgOiBzdWNjZXNzb3JCbG9ja3Mo
KSkgeworICAgICAgICBpZiAoc3VjY2Vzc29yID09IGZyb20pIHsKKyAgICAgICAgICAgIHN1Y2Nl
c3NvciA9IHRvOworICAgICAgICAgICAgcmVzdWx0ID0gdHJ1ZTsKKyAgICAgICAgICAgIAorICAg
ICAgICAgICAgLy8gS2VlcCBsb29waW5nIGJlY2F1c2UgYSBzdWNjZXNzb3IgbWF5IGJlIG1lbnRp
b25lZCBtdWx0aXBsZSB0aW1lcywgbGlrZSBpbiBhIFN3aXRjaC4KKyAgICAgICAgfQorICAgIH0K
KyAgICByZXR1cm4gcmVzdWx0OwogfQogCiBib29sIEJhc2ljQmxvY2s6OmFkZFByZWRlY2Vzc29y
KEJhc2ljQmxvY2sqIGJsb2NrKQpAQCAtMTIxLDYgKzE1NCw0MiBAQCB2b2lkIEJhc2ljQmxvY2s6
OmRlZXBEdW1wKGNvbnN0IFByb2NlZHVyCiAgICAgICAgIG91dC5wcmludCgiICBQcmVkZWNlc3Nv
cnM6ICIsIHBvaW50ZXJMaXN0RHVtcChwcmVkZWNlc3NvcnMoKSksICJcbiIpOwogICAgIGZvciAo
VmFsdWUqIHZhbHVlIDogKnRoaXMpCiAgICAgICAgIG91dC5wcmludCgiICAgICIsIEIzOjpkZWVw
RHVtcChwcm9jLCB2YWx1ZSksICJcbiIpOworICAgIGlmIChzdWNjZXNzb3JzKCkuc2l6ZSgpKSB7
CisgICAgICAgIG91dC5wcmludCgiICBTdWNjZXNzb3JzOiAiKTsKKyAgICAgICAgaWYgKHNpemUo
KSkKKyAgICAgICAgICAgIGxhc3QoKS0+ZHVtcFN1Y2Nlc3NvcnModGhpcywgb3V0KTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgb3V0LnByaW50KGxpc3REdW1wKHN1Y2Nlc3NvcnMoKSkpOwor
ICAgICAgICBvdXQucHJpbnQoIlxuIik7CisgICAgfQorfQorCitWYWx1ZSogQmFzaWNCbG9jazo6
YXBwZW5kTmV3Q29udHJvbFZhbHVlKFByb2NlZHVyZSYgcHJvYywgT3Bjb2RlIG9wY29kZSwgT3Jp
Z2luIG9yaWdpbikKK3sKKyAgICBSRUxFQVNFX0FTU0VSVChvcGNvZGUgPT0gT29wcyk7CisgICAg
Y2xlYXJTdWNjZXNzb3JzKCk7CisgICAgcmV0dXJuIGFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgb3Bj
b2RlLCBvcmlnaW4pOworfQorCitWYWx1ZSogQmFzaWNCbG9jazo6YXBwZW5kTmV3Q29udHJvbFZh
bHVlKFByb2NlZHVyZSYgcHJvYywgT3Bjb2RlIG9wY29kZSwgT3JpZ2luIG9yaWdpbiwgVmFsdWUq
IHZhbHVlKQoreworICAgIFJFTEVBU0VfQVNTRVJUKG9wY29kZSA9PSBSZXR1cm4pOworICAgIGNs
ZWFyU3VjY2Vzc29ycygpOworICAgIHJldHVybiBhcHBlbmROZXc8VmFsdWU+KHByb2MsIG9wY29k
ZSwgb3JpZ2luLCB2YWx1ZSk7Cit9CisKK1ZhbHVlKiBCYXNpY0Jsb2NrOjphcHBlbmROZXdDb250
cm9sVmFsdWUoUHJvY2VkdXJlJiBwcm9jLCBPcGNvZGUgb3Bjb2RlLCBPcmlnaW4gb3JpZ2luLCBj
b25zdCBGcmVxdWVudGVkQmxvY2smIHRhcmdldCkKK3sKKyAgICBSRUxFQVNFX0FTU0VSVChvcGNv
ZGUgPT0gSnVtcCk7CisgICAgc2V0U3VjY2Vzc29ycyh0YXJnZXQpOworICAgIHJldHVybiBhcHBl
bmROZXc8VmFsdWU+KHByb2MsIG9wY29kZSwgb3JpZ2luKTsKK30KKworVmFsdWUqIEJhc2ljQmxv
Y2s6OmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShQcm9jZWR1cmUmIHByb2MsIE9wY29kZSBvcGNvZGUs
IE9yaWdpbiBvcmlnaW4sIFZhbHVlKiBwcmVkaWNhdGUsIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYg
dGFrZW4sIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgbm90VGFrZW4pCit7CisgICAgUkVMRUFTRV9B
U1NFUlQob3Bjb2RlID09IEJyYW5jaCk7CisgICAgc2V0U3VjY2Vzc29ycyh0YWtlbiwgbm90VGFr
ZW4pOworICAgIHJldHVybiBhcHBlbmROZXc8VmFsdWU+KHByb2MsIG9wY29kZSwgb3JpZ2luLCBw
cmVkaWNhdGUpOwogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNCYXNpY0Jsb2NrLmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtMjks
NiArMjksNyBAQAogI2lmIEVOQUJMRShCM19KSVQpCiAKICNpbmNsdWRlICJCM0ZyZXF1ZW50ZWRC
bG9jay5oIgorI2luY2x1ZGUgIkIzT3Bjb2RlLmgiCiAjaW5jbHVkZSAiQjNPcmlnaW4uaCIKICNp
bmNsdWRlICJCM1N1Y2Nlc3NvckNvbGxlY3Rpb24uaCIKICNpbmNsdWRlICJCM1R5cGUuaCIKQEAg
LTQ3LDcgKzQ4LDcgQEAgY2xhc3MgQmFzaWNCbG9jayB7CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBW
ZWN0b3I8VmFsdWUqPiBWYWx1ZUxpc3Q7CiAgICAgdHlwZWRlZiBWZWN0b3I8QmFzaWNCbG9jayos
IDI+IFByZWRlY2Vzc29yTGlzdDsKLSAgICB0eXBlZGVmIFZlY3RvcjxGcmVxdWVudGVkQmxvY2ss
IDI+IFN1Y2Nlc3Nvckxpc3Q7IC8vIFRoaXMgbWF0Y2hlcyBDb250cm9sVmFsdWU6OlN1Y2Nlc3Nv
ckxpc3QKKyAgICB0eXBlZGVmIFZlY3RvcjxGcmVxdWVudGVkQmxvY2ssIDI+IFN1Y2Nlc3Nvckxp
c3Q7CiAKICAgICBzdGF0aWMgY29uc3QgY2hhciogY29uc3QgZHVtcFByZWZpeDsKIApAQCAtNzgs
NyArNzksNyBAQCBwdWJsaWM6CiAgICAgVmFsdWVUeXBlKiBhcHBlbmROZXcoUHJvY2VkdXJlJiwg
QXJndW1lbnRzLi4uKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBWYWx1ZVR5cGUsIHR5cGVuYW1l
Li4uIEFyZ3VtZW50cz4KICAgICBWYWx1ZVR5cGUqIGFwcGVuZE5ld05vblRlcm1pbmFsKFByb2Nl
ZHVyZSYsIEFyZ3VtZW50cy4uLik7Ci0KKyAgICAKICAgICBKU19FWFBPUlRfUFJJVkFURSBWYWx1
ZSogYXBwZW5kSW50Q29uc3RhbnQoUHJvY2VkdXJlJiwgT3JpZ2luLCBUeXBlLCBpbnQ2NF90IHZh
bHVlKTsKICAgICBWYWx1ZSogYXBwZW5kSW50Q29uc3RhbnQoUHJvY2VkdXJlJiwgVmFsdWUqIGxp
a2VWYWx1ZSwgaW50NjRfdCB2YWx1ZSk7CiAKQEAgLTg3LDE4ICs4OCwzOSBAQCBwdWJsaWM6CiAg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgVmFsdWVUeXBlLCB0eXBlbmFtZS4uLiBBcmd1bWVudHM+CiAg
ICAgVmFsdWVUeXBlKiByZXBsYWNlTGFzdFdpdGhOZXcoUHJvY2VkdXJlJiwgQXJndW1lbnRzLi4u
KTsKIAotICAgIHVuc2lnbmVkIG51bVN1Y2Nlc3NvcnMoKSBjb25zdDsKLSAgICBjb25zdCBGcmVx
dWVudGVkQmxvY2smIHN1Y2Nlc3Nvcih1bnNpZ25lZCBpbmRleCkgY29uc3Q7Ci0gICAgRnJlcXVl
bnRlZEJsb2NrJiBzdWNjZXNzb3IodW5zaWduZWQgaW5kZXgpOwotICAgIGNvbnN0IFN1Y2Nlc3Nv
ckxpc3QmIHN1Y2Nlc3NvcnMoKSBjb25zdDsKLSAgICBTdWNjZXNzb3JMaXN0JiBzdWNjZXNzb3Jz
KCk7Ci0KLSAgICBCYXNpY0Jsb2NrKiBzdWNjZXNzb3JCbG9jayh1bnNpZ25lZCBpbmRleCkgY29u
c3Q7Ci0gICAgQmFzaWNCbG9jayomIHN1Y2Nlc3NvckJsb2NrKHVuc2lnbmVkIGluZGV4KTsKLSAg
ICBTdWNjZXNzb3JDb2xsZWN0aW9uPEJhc2ljQmxvY2ssIFN1Y2Nlc3Nvckxpc3Q+IHN1Y2Nlc3Nv
ckJsb2NrcygpOwotICAgIFN1Y2Nlc3NvckNvbGxlY3Rpb248Y29uc3QgQmFzaWNCbG9jaywgY29u
c3QgU3VjY2Vzc29yTGlzdD4gc3VjY2Vzc29yQmxvY2tzKCkgY29uc3Q7CisgICAgdW5zaWduZWQg
bnVtU3VjY2Vzc29ycygpIGNvbnN0IHsgcmV0dXJuIG1fc3VjY2Vzc29ycy5zaXplKCk7IH0KKyAg
ICBjb25zdCBGcmVxdWVudGVkQmxvY2smIHN1Y2Nlc3Nvcih1bnNpZ25lZCBpbmRleCkgY29uc3Qg
eyByZXR1cm4gbV9zdWNjZXNzb3JzW2luZGV4XTsgfQorICAgIEZyZXF1ZW50ZWRCbG9jayYgc3Vj
Y2Vzc29yKHVuc2lnbmVkIGluZGV4KSB7IHJldHVybiBtX3N1Y2Nlc3NvcnNbaW5kZXhdOyB9Cisg
ICAgY29uc3QgU3VjY2Vzc29yTGlzdCYgc3VjY2Vzc29ycygpIGNvbnN0IHsgcmV0dXJuIG1fc3Vj
Y2Vzc29yczsgfQorICAgIFN1Y2Nlc3Nvckxpc3QmIHN1Y2Nlc3NvcnMoKSB7IHJldHVybiBtX3N1
Y2Nlc3NvcnM7IH0KKyAgICAKKyAgICB2b2lkIGNsZWFyU3VjY2Vzc29ycygpOworICAgIEpTX0VY
UE9SVF9QUklWQVRFIHZvaWQgYXBwZW5kU3VjY2Vzc29yKGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYp
OworICAgIHZvaWQgc2V0U3VjY2Vzc29ycyhjb25zdCBGcmVxdWVudGVkQmxvY2smKTsKKyAgICB2
b2lkIHNldFN1Y2Nlc3NvcnMoY29uc3QgRnJlcXVlbnRlZEJsb2NrJiwgY29uc3QgRnJlcXVlbnRl
ZEJsb2NrJik7CisKKyAgICBCYXNpY0Jsb2NrKiBzdWNjZXNzb3JCbG9jayh1bnNpZ25lZCBpbmRl
eCkgY29uc3QgeyByZXR1cm4gc3VjY2Vzc29yKGluZGV4KS5ibG9jaygpOyB9CisgICAgQmFzaWNC
bG9jayomIHN1Y2Nlc3NvckJsb2NrKHVuc2lnbmVkIGluZGV4KSB7IHJldHVybiBzdWNjZXNzb3Io
aW5kZXgpLmJsb2NrKCk7IH0KKyAgICBTdWNjZXNzb3JDb2xsZWN0aW9uPEJhc2ljQmxvY2ssIFN1
Y2Nlc3Nvckxpc3Q+IHN1Y2Nlc3NvckJsb2NrcygpCisgICAgeworICAgICAgICByZXR1cm4gU3Vj
Y2Vzc29yQ29sbGVjdGlvbjxCYXNpY0Jsb2NrLCBTdWNjZXNzb3JMaXN0PihzdWNjZXNzb3JzKCkp
OworICAgIH0KKyAgICBTdWNjZXNzb3JDb2xsZWN0aW9uPGNvbnN0IEJhc2ljQmxvY2ssIGNvbnN0
IFN1Y2Nlc3Nvckxpc3Q+IHN1Y2Nlc3NvckJsb2NrcygpIGNvbnN0CisgICAgeworICAgICAgICBy
ZXR1cm4gU3VjY2Vzc29yQ29sbGVjdGlvbjxjb25zdCBCYXNpY0Jsb2NrLCBjb25zdCBTdWNjZXNz
b3JMaXN0PihzdWNjZXNzb3JzKCkpOworICAgIH0KIAogICAgIGJvb2wgcmVwbGFjZVN1Y2Nlc3Nv
cihCYXNpY0Jsb2NrKiBmcm9tLCBCYXNpY0Jsb2NrKiB0byk7CisgICAgCisgICAgLy8gVGhpcyBp
cyBvbmx5IHZhbGlkIGZvciBKdW1wIGFuZCBCcmFuY2guCisgICAgY29uc3QgRnJlcXVlbnRlZEJs
b2NrJiB0YWtlbigpIGNvbnN0OworICAgIEZyZXF1ZW50ZWRCbG9jayYgdGFrZW4oKTsKKyAgICAv
LyBUaGlzIGlzIG9ubHkgdmFsaWQgZm9yIEJyYW5jaC4KKyAgICBjb25zdCBGcmVxdWVudGVkQmxv
Y2smIG5vdFRha2VuKCkgY29uc3Q7CisgICAgRnJlcXVlbnRlZEJsb2NrJiBub3RUYWtlbigpOwor
ICAgIC8vIFRoaXMgaXMgb25seSB2YWxpZCBmb3IgQnJhbmNoIGFuZCBTd2l0Y2guCisgICAgY29u
c3QgRnJlcXVlbnRlZEJsb2NrJiBmYWxsVGhyb3VnaCgpIGNvbnN0OworICAgIEZyZXF1ZW50ZWRC
bG9jayYgZmFsbFRocm91Z2goKTsKIAogICAgIHVuc2lnbmVkIG51bVByZWRlY2Vzc29ycygpIGNv
bnN0IHsgcmV0dXJuIG1fcHJlZGVjZXNzb3JzLnNpemUoKTsgfQogICAgIEJhc2ljQmxvY2sqIHBy
ZWRlY2Vzc29yKHVuc2lnbmVkIGluZGV4KSBjb25zdCB7IHJldHVybiBtX3ByZWRlY2Vzc29yc1tp
bmRleF07IH0KQEAgLTExNSwxMCArMTM3LDIzIEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZVBy
ZWRlY2Vzc29yc0FmdGVyKCk7CiAKICAgICBkb3VibGUgZnJlcXVlbmN5KCkgY29uc3QgeyByZXR1
cm4gbV9mcmVxdWVuY3k7IH0KLQorICAgIAogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNv
bnN0OwogICAgIHZvaWQgZGVlcER1bXAoY29uc3QgUHJvY2VkdXJlJiwgUHJpbnRTdHJlYW0mKSBj
b25zdDsKIAorICAgIC8vIFRoZXNlIGFyZSBkZXByZWNhdGVkIG1ldGhvZCBmb3IgY29tcGF0aWJp
bGl0eSB3aXRoIHRoZSBvbGQgQ29udHJvbFZhbHVlIGNsYXNzLiBEb24ndCB1c2UgdGhlbQorICAg
IC8vIGluIG5ldyBjb2RlLgorICAgIC8vIEZJWE1FOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTU5NDQwCisgICAgCisgICAgLy8gVXNlIHRoaXMgZm9yIE9vcHMuCisg
ICAgSlNfRVhQT1JUX1BSSVZBVEUgVmFsdWUqIGFwcGVuZE5ld0NvbnRyb2xWYWx1ZShQcm9jZWR1
cmUmLCBPcGNvZGUsIE9yaWdpbik7CisgICAgLy8gVXNlIHRoaXMgZm9yIFJldHVybi4KKyAgICBK
U19FWFBPUlRfUFJJVkFURSBWYWx1ZSogYXBwZW5kTmV3Q29udHJvbFZhbHVlKFByb2NlZHVyZSYs
IE9wY29kZSwgT3JpZ2luLCBWYWx1ZSopOworICAgIC8vIFVzZSB0aGlzIGZvciBKdW1wLgorICAg
IEpTX0VYUE9SVF9QUklWQVRFIFZhbHVlKiBhcHBlbmROZXdDb250cm9sVmFsdWUoUHJvY2VkdXJl
JiwgT3Bjb2RlLCBPcmlnaW4sIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYpOworICAgIC8vIFVzZSB0
aGlzIGZvciBCcmFuY2guCisgICAgSlNfRVhQT1JUX1BSSVZBVEUgVmFsdWUqIGFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShQcm9jZWR1cmUmLCBPcGNvZGUsIE9yaWdpbiwgVmFsdWUqLCBjb25zdCBGcmVx
dWVudGVkQmxvY2smLCBjb25zdCBGcmVxdWVudGVkQmxvY2smKTsKKyAgICAKIHByaXZhdGU6CiAg
ICAgZnJpZW5kIGNsYXNzIEJsb2NrSW5zZXJ0aW9uU2V0OwogICAgIGZyaWVuZCBjbGFzcyBJbnNl
cnRpb25TZXQ7CkBAIC0xMzAsNiArMTY1LDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2lu
ZGV4OwogICAgIFZhbHVlTGlzdCBtX3ZhbHVlczsKICAgICBQcmVkZWNlc3Nvckxpc3QgbV9wcmVk
ZWNlc3NvcnM7CisgICAgU3VjY2Vzc29yTGlzdCBtX3N1Y2Nlc3NvcnM7CiAgICAgZG91YmxlIG1f
ZnJlcXVlbmN5OwogfTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNC
bG9ja0lubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNC
YXNpY0Jsb2NrSW5saW5lcy5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNCYXNpY0Jsb2NrSW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw4ICsy
OSw4IEBACiAjaWYgRU5BQkxFKEIzX0pJVCkKIAogI2luY2x1ZGUgIkIzQmFzaWNCbG9jay5oIgot
I2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNQcm9jZWR1cmVJbmxpbmVz
LmgiCisjaW5jbHVkZSAiQjNWYWx1ZS5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIz
IHsKIApAQCAtNTgsNDkgKzU4LDQwIEBAIFZhbHVlVHlwZSogQmFzaWNCbG9jazo6cmVwbGFjZUxh
c3RXaXRoTmUKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1pbmxpbmUgdW5zaWduZWQgQmFzaWNC
bG9jazo6bnVtU3VjY2Vzc29ycygpIGNvbnN0CitpbmxpbmUgY29uc3QgRnJlcXVlbnRlZEJsb2Nr
JiBCYXNpY0Jsb2NrOjp0YWtlbigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGxhc3QoKS0+YXM8Q29u
dHJvbFZhbHVlPigpLT5udW1TdWNjZXNzb3JzKCk7CisgICAgQVNTRVJUKGxhc3QoKS0+b3Bjb2Rl
KCkgPT0gSnVtcCB8fCBsYXN0KCktPm9wY29kZSgpID09IEJyYW5jaCk7CisgICAgcmV0dXJuIG1f
c3VjY2Vzc29yc1swXTsKIH0KIAotaW5saW5lIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgQmFzaWNC
bG9jazo6c3VjY2Vzc29yKHVuc2lnbmVkIGluZGV4KSBjb25zdAoraW5saW5lIEZyZXF1ZW50ZWRC
bG9jayYgQmFzaWNCbG9jazo6dGFrZW4oKQogewotICAgIHJldHVybiBsYXN0KCktPmFzPENvbnRy
b2xWYWx1ZT4oKS0+c3VjY2Vzc29yKGluZGV4KTsKKyAgICBBU1NFUlQobGFzdCgpLT5vcGNvZGUo
KSA9PSBKdW1wIHx8IGxhc3QoKS0+b3Bjb2RlKCkgPT0gQnJhbmNoKTsKKyAgICByZXR1cm4gbV9z
dWNjZXNzb3JzWzBdOwogfQogCi1pbmxpbmUgRnJlcXVlbnRlZEJsb2NrJiBCYXNpY0Jsb2NrOjpz
dWNjZXNzb3IodW5zaWduZWQgaW5kZXgpCitpbmxpbmUgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBC
YXNpY0Jsb2NrOjpub3RUYWtlbigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGxhc3QoKS0+YXM8Q29u
dHJvbFZhbHVlPigpLT5zdWNjZXNzb3IoaW5kZXgpOworICAgIEFTU0VSVChsYXN0KCktPm9wY29k
ZSgpID09IEJyYW5jaCk7CisgICAgcmV0dXJuIG1fc3VjY2Vzc29yc1sxXTsKIH0KIAotaW5saW5l
IGNvbnN0IEJhc2ljQmxvY2s6OlN1Y2Nlc3Nvckxpc3QmIEJhc2ljQmxvY2s6OnN1Y2Nlc3NvcnMo
KSBjb25zdAoraW5saW5lIEZyZXF1ZW50ZWRCbG9jayYgQmFzaWNCbG9jazo6bm90VGFrZW4oKQog
ewotICAgIHJldHVybiBsYXN0KCktPmFzPENvbnRyb2xWYWx1ZT4oKS0+c3VjY2Vzc29ycygpOwor
ICAgIEFTU0VSVChsYXN0KCktPm9wY29kZSgpID09IEJyYW5jaCk7CisgICAgcmV0dXJuIG1fc3Vj
Y2Vzc29yc1sxXTsKIH0KIAotaW5saW5lIEJhc2ljQmxvY2s6OlN1Y2Nlc3Nvckxpc3QmIEJhc2lj
QmxvY2s6OnN1Y2Nlc3NvcnMoKQoraW5saW5lIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgQmFzaWNC
bG9jazo6ZmFsbFRocm91Z2goKSBjb25zdAogewotICAgIHJldHVybiBsYXN0KCktPmFzPENvbnRy
b2xWYWx1ZT4oKS0+c3VjY2Vzc29ycygpOworICAgIEFTU0VSVChsYXN0KCktPm9wY29kZSgpID09
IEJyYW5jaCB8fCBsYXN0KCktPm9wY29kZSgpID09IFN3aXRjaCk7CisgICAgcmV0dXJuIG1fc3Vj
Y2Vzc29ycy5sYXN0KCk7CiB9CiAKLWlubGluZSBCYXNpY0Jsb2NrKiBCYXNpY0Jsb2NrOjpzdWNj
ZXNzb3JCbG9jayh1bnNpZ25lZCBpbmRleCkgY29uc3QKK2lubGluZSBGcmVxdWVudGVkQmxvY2sm
IEJhc2ljQmxvY2s6OmZhbGxUaHJvdWdoKCkKIHsKLSAgICByZXR1cm4gc3VjY2Vzc29yKGluZGV4
KS5ibG9jaygpOwotfQotCi1pbmxpbmUgQmFzaWNCbG9jayomIEJhc2ljQmxvY2s6OnN1Y2Nlc3Nv
ckJsb2NrKHVuc2lnbmVkIGluZGV4KQotewotICAgIHJldHVybiBzdWNjZXNzb3IoaW5kZXgpLmJs
b2NrKCk7Ci19Ci0KLWlubGluZSBTdWNjZXNzb3JDb2xsZWN0aW9uPEJhc2ljQmxvY2ssIEJhc2lj
QmxvY2s6OlN1Y2Nlc3Nvckxpc3Q+IEJhc2ljQmxvY2s6OnN1Y2Nlc3NvckJsb2NrcygpCi17Ci0g
ICAgcmV0dXJuIFN1Y2Nlc3NvckNvbGxlY3Rpb248QmFzaWNCbG9jaywgU3VjY2Vzc29yTGlzdD4o
c3VjY2Vzc29ycygpKTsKLX0KLQotaW5saW5lIFN1Y2Nlc3NvckNvbGxlY3Rpb248Y29uc3QgQmFz
aWNCbG9jaywgY29uc3QgQmFzaWNCbG9jazo6U3VjY2Vzc29yTGlzdD4gQmFzaWNCbG9jazo6c3Vj
Y2Vzc29yQmxvY2tzKCkgY29uc3QKLXsKLSAgICByZXR1cm4gU3VjY2Vzc29yQ29sbGVjdGlvbjxj
b25zdCBCYXNpY0Jsb2NrLCBjb25zdCBTdWNjZXNzb3JMaXN0PihzdWNjZXNzb3JzKCkpOworICAg
IEFTU0VSVChsYXN0KCktPm9wY29kZSgpID09IEJyYW5jaCB8fCBsYXN0KCktPm9wY29kZSgpID09
IFN3aXRjaCk7CisgICAgcmV0dXJuIG1fc3VjY2Vzc29ycy5sYXN0KCk7CiB9CiAKIH0gfSAvLyBu
YW1lc3BhY2UgSlNDOjpCMwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmxvY2tJ
bnNlcnRpb25TZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0Jsb2NrSW5zZXJ0aW9uU2V0LmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzQmxvY2tJbnNlcnRpb25TZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03
OCw4ICs3OCw4IEBAIEJhc2ljQmxvY2sqIEJsb2NrSW5zZXJ0aW9uU2V0OjpzcGxpdEZvcncKICAg
ICAgICAgcmVzdWx0LT5tX3ZhbHVlc1tpXSA9IGJsb2NrLT5tX3ZhbHVlc1tpXTsKIAogICAgIC8v
IE1ha2UgdGhlIG5ldyBibG9jayBqdW1wIHRvICdibG9jaycuCi0gICAgcmVzdWx0LT5tX3ZhbHVl
c1t2YWx1ZUluZGV4XSA9Ci0gICAgICAgIG1fcHJvYy5hZGQ8Q29udHJvbFZhbHVlPihKdW1wLCB2
YWx1ZS0+b3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhibG9jaykpOworICAgIHJlc3VsdC0+bV92
YWx1ZXNbdmFsdWVJbmRleF0gPSBtX3Byb2MuYWRkPFZhbHVlPihKdW1wLCB2YWx1ZS0+b3JpZ2lu
KCkpOworICAgIHJlc3VsdC0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2soYmxvY2spKTsK
IAogICAgIC8vIElmIHdlIGhhZCBpbnNlcnRlZCB0aGluZ3MgaW50byAnYmxvY2snIGJlZm9yZSB0
aGlzLCBleGVjdXRlIHRob3NlIGluc2VydGlvbnMgbm93LgogICAgIGlmIChpbnNlcnRpb25TZXQp
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCcmVha0NyaXRpY2FsRWRnZXMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0JyZWFrQ3JpdGljYWxF
ZGdlcy5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0JyZWFrQ3JpdGljYWxFZGdlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDYgQEAK
IAogI2luY2x1ZGUgIkIzQmFzaWNCbG9ja0lubGluZXMuaCIKICNpbmNsdWRlICJCM0Jsb2NrSW5z
ZXJ0aW9uU2V0LmgiCi0jaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKICNpbmNsdWRlICJCM1By
b2NlZHVyZUlubGluZXMuaCIKICNpbmNsdWRlICJCM1ZhbHVlSW5saW5lcy5oIgogCkBAIC01MCw4
ICs0OSw4IEBAIHZvaWQgYnJlYWtDcml0aWNhbEVkZ2VzKFByb2NlZHVyZSYgcHJvYykKIAogICAg
ICAgICAgICAgQmFzaWNCbG9jayogcGFkID0KICAgICAgICAgICAgICAgICBpbnNlcnRpb25TZXQu
aW5zZXJ0QmVmb3JlKHN1Y2Nlc3Nvciwgc3VjY2Vzc29yLT5mcmVxdWVuY3koKSk7Ci0gICAgICAg
ICAgICBwYWQtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAotICAgICAgICAgICAgICAgIHByb2Ms
IEp1bXAsIHN1Y2Nlc3Nvci0+YXQoMCktPm9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soc3VjY2Vz
c29yKSk7CisgICAgICAgICAgICBwYWQtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSnVtcCwgc3Vj
Y2Vzc29yLT5hdCgwKS0+b3JpZ2luKCkpOworICAgICAgICAgICAgcGFkLT5zZXRTdWNjZXNzb3Jz
KEZyZXF1ZW50ZWRCbG9jayhzdWNjZXNzb3IpKTsKICAgICAgICAgICAgIHBhZC0+YWRkUHJlZGVj
ZXNzb3IoYmxvY2spOwogICAgICAgICAgICAgc3VjY2Vzc29yLT5yZXBsYWNlUHJlZGVjZXNzb3Io
YmxvY2ssIHBhZCk7CiAgICAgICAgICAgICBzdWNjZXNzb3IgPSBwYWQ7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNDYXNlQ29sbGVjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2FzZUNvbGxlY3Rpb24uY3BwCShyZXZpc2lvbiAwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2FzZUNvbGxlY3Rpb24uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkIzQ2FzZUNvbGxl
Y3Rpb24uaCIKKworI2lmIEVOQUJMRShCM19KSVQpCisKKyNpbmNsdWRlICJCM0Jhc2ljQmxvY2tJ
bmxpbmVzLmgiCisjaW5jbHVkZSAiQjNDYXNlQ29sbGVjdGlvbklubGluZXMuaCIKKyNpbmNsdWRl
IDx3dGYvQ29tbWFQcmludGVyLmg+CisKK25hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewor
Cit2b2lkIENhc2VDb2xsZWN0aW9uOjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0Cit7Cisg
ICAgQ29tbWFQcmludGVyIGNvbW1hOworICAgIGZvciAoU3dpdGNoQ2FzZSBzd2l0Y2hDYXNlIDog
KnRoaXMpCisgICAgICAgIG91dC5wcmludChjb21tYSwgc3dpdGNoQ2FzZSk7CisgICAgb3V0LnBy
aW50KGNvbW1hLCAiZGVmYXVsdC0+IiwgZmFsbFRocm91Z2goKSk7Cit9CisKK30gfSAvLyBuYW1l
c3BhY2UgSlNDOjpCMworCisjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKKwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzQ2FzZUNvbGxlY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDYXNlQ29sbGVjdGlvbi5oCShyZXZpc2lvbiAwKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2FzZUNvbGxlY3Rpb24uaAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDEyMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCisjaWZuZGVmIEIzQ2FzZUNvbGxlY3Rpb25faAorI2RlZmluZSBCM0Nhc2VDb2xs
ZWN0aW9uX2gKKworI2lmIEVOQUJMRShCM19KSVQpCisKKyNpbmNsdWRlICJCM1N3aXRjaENhc2Uu
aCIKKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CisKK2NsYXNzIEJhc2ljQmxvY2s7
CitjbGFzcyBTd2l0Y2hWYWx1ZTsKKworLy8gTk9URTogWW91J2xsIGFsd2F5cyB3YW50IHRvIGlu
Y2x1ZGUgQjNDYXNlQ29sbGVjdGlvbklubGluZXMuaCB3aGVuIHlvdSB1c2UgdGhpcy4KKworY2xh
c3MgQ2FzZUNvbGxlY3Rpb24geworcHVibGljOgorICAgIENhc2VDb2xsZWN0aW9uKCkKKyAgICB7
CisgICAgfQorICAgIAorICAgIENhc2VDb2xsZWN0aW9uKGNvbnN0IFN3aXRjaFZhbHVlKiB0ZXJt
aW5hbCwgY29uc3QgQmFzaWNCbG9jayogb3duZXIpCisgICAgICAgIDogbV9zd2l0Y2godGVybWlu
YWwpCisgICAgICAgICwgbV9vd25lcihvd25lcikKKyAgICB7CisgICAgfQorICAgIAorICAgIGNv
bnN0IEZyZXF1ZW50ZWRCbG9jayYgZmFsbFRocm91Z2goKSBjb25zdDsKKworICAgIHVuc2lnbmVk
IHNpemUoKSBjb25zdDsKKyAgICBTd2l0Y2hDYXNlIGF0KHVuc2lnbmVkIGluZGV4KSBjb25zdDsK
KyAgICAKKyAgICBTd2l0Y2hDYXNlIG9wZXJhdG9yW10odW5zaWduZWQgaW5kZXgpIGNvbnN0Cisg
ICAgeworICAgICAgICByZXR1cm4gYXQoaW5kZXgpOworICAgIH0KKworICAgIGNsYXNzIGl0ZXJh
dG9yIHsKKyAgICBwdWJsaWM6CisgICAgICAgIGl0ZXJhdG9yKCkKKyAgICAgICAgICAgIDogbV9j
b2xsZWN0aW9uKG51bGxwdHIpCisgICAgICAgICAgICAsIG1faW5kZXgoMCkKKyAgICAgICAgewor
ICAgICAgICB9CisKKyAgICAgICAgaXRlcmF0b3IoY29uc3QgQ2FzZUNvbGxlY3Rpb24mIGNvbGxl
Y3Rpb24sIHVuc2lnbmVkIGluZGV4KQorICAgICAgICAgICAgOiBtX2NvbGxlY3Rpb24oJmNvbGxl
Y3Rpb24pCisgICAgICAgICAgICAsIG1faW5kZXgoaW5kZXgpCisgICAgICAgIHsKKyAgICAgICAg
fQorCisgICAgICAgIFN3aXRjaENhc2Ugb3BlcmF0b3IqKCkKKyAgICAgICAgeworICAgICAgICAg
ICAgcmV0dXJuIG1fY29sbGVjdGlvbi0+YXQobV9pbmRleCk7CisgICAgICAgIH0KKworICAgICAg
ICBpdGVyYXRvciYgb3BlcmF0b3IrKygpCisgICAgICAgIHsKKyAgICAgICAgICAgIG1faW5kZXgr
KzsKKyAgICAgICAgICAgIHJldHVybiAqdGhpczsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2wg
b3BlcmF0b3I9PShjb25zdCBpdGVyYXRvciYgb3RoZXIpIGNvbnN0CisgICAgICAgIHsKKyAgICAg
ICAgICAgIEFTU0VSVChtX2NvbGxlY3Rpb24gPT0gb3RoZXIubV9jb2xsZWN0aW9uKTsKKyAgICAg
ICAgICAgIHJldHVybiBtX2luZGV4ID09IG90aGVyLm1faW5kZXg7CisgICAgICAgIH0KKworICAg
ICAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgaXRlcmF0b3ImIG90aGVyKSBjb25zdAorICAgICAg
ICB7CisgICAgICAgICAgICByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7CisgICAgICAgIH0KKwor
ICAgIHByaXZhdGU6CisgICAgICAgIGNvbnN0IENhc2VDb2xsZWN0aW9uKiBtX2NvbGxlY3Rpb247
CisgICAgICAgIHVuc2lnbmVkIG1faW5kZXg7CisgICAgfTsKKworICAgIHR5cGVkZWYgaXRlcmF0
b3IgY29uc3RfaXRlcmF0b3I7CisKKyAgICBpdGVyYXRvciBiZWdpbigpIGNvbnN0IHsgcmV0dXJu
IGl0ZXJhdG9yKCp0aGlzLCAwKTsgfQorICAgIGl0ZXJhdG9yIGVuZCgpIGNvbnN0IHsgcmV0dXJu
IGl0ZXJhdG9yKCp0aGlzLCBzaXplKCkpOyB9CisgICAgCisgICAgdm9pZCBkdW1wKFByaW50U3Ry
ZWFtJikgY29uc3Q7CisgICAgCitwcml2YXRlOgorICAgIGNvbnN0IFN3aXRjaFZhbHVlKiBtX3N3
aXRjaCB7IG51bGxwdHIgfTsKKyAgICBjb25zdCBCYXNpY0Jsb2NrKiBtX293bmVyIHsgbnVsbHB0
ciB9OworfTsKKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzCisKKyNlbmRpZiAvLyBFTkFCTEUo
QjNfSklUKQorCisjZW5kaWYgLy8gQjNDYXNlQ29sbGVjdGlvbl9oCisKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oCShyZXZp
c2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2FzZUNvbGxlY3Rpb25Jbmxp
bmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEIzQ2FzZUNvbGxlY3Rpb25Jbmxp
bmVzX2gKKyNkZWZpbmUgQjNDYXNlQ29sbGVjdGlvbklubGluZXNfaAorCisjaWYgRU5BQkxFKEIz
X0pJVCkKKworI2luY2x1ZGUgIkIzQ2FzZUNvbGxlY3Rpb24uaCIKKyNpbmNsdWRlICJCM1N3aXRj
aFZhbHVlLmgiCisjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrLmgiCisKK25hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgQjMgeworCitpbmxpbmUgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBDYXNlQ29sbGVj
dGlvbjo6ZmFsbFRocm91Z2goKSBjb25zdAoreworICAgIHJldHVybiBtX293bmVyLT5mYWxsVGhy
b3VnaCgpOworfQorCitpbmxpbmUgdW5zaWduZWQgQ2FzZUNvbGxlY3Rpb246OnNpemUoKSBjb25z
dAoreworICAgIHJldHVybiBtX3N3aXRjaC0+bnVtQ2FzZVZhbHVlcygpOworfQorCitpbmxpbmUg
U3dpdGNoQ2FzZSBDYXNlQ29sbGVjdGlvbjo6YXQodW5zaWduZWQgaW5kZXgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIFN3aXRjaENhc2UobV9zd2l0Y2gtPmNhc2VWYWx1ZShpbmRleCksIG1fb3duZXIt
PnN1Y2Nlc3NvcihpbmRleCkpOworfQorCit9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKKworI2Vu
ZGlmIC8vIEVOQUJMRShCM19KSVQpCisKKyNlbmRpZiAvLyBCM0Nhc2VDb2xsZWN0aW9uSW5saW5l
c19oCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NoZWNrU3BlY2lhbC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2hlY2tTcGVjaWFsLmNw
cAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2hlY2tT
cGVjaWFsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODQsNyArODQsNyBAQCBDaGVja1NwZWNpYWw6
OkNoZWNrU3BlY2lhbChBaXI6Ok9wY29kZSBvCiAgICAgLCBtX3N0YWNrbWFwUm9sZShzdGFja21h
cFJvbGUpCiAgICAgLCBtX251bUNoZWNrQXJncyhudW1BcmdzKQogewotICAgIEFTU0VSVChpc1Rl
cm1pbmFsKG9wY29kZSkpOworICAgIEFTU0VSVChpc0RlZmluaXRlbHlUZXJtaW5hbChvcGNvZGUp
KTsKIH0KIAogQ2hlY2tTcGVjaWFsOjpDaGVja1NwZWNpYWwoY29uc3QgQ2hlY2tTcGVjaWFsOjpL
ZXkmIGtleSkKQEAgLTEwMiw2ICsxMDIsNyBAQCBJbnN0IENoZWNrU3BlY2lhbDo6aGlkZGVuQnJh
bmNoKGNvbnN0IEluCiAgICAgaGlkZGVuQnJhbmNoLmFyZ3MucmVzZXJ2ZUluaXRpYWxDYXBhY2l0
eShtX251bUNoZWNrQXJncyk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fbnVtQ2hl
Y2tBcmdzOyArK2kpCiAgICAgICAgIGhpZGRlbkJyYW5jaC5hcmdzLmFwcGVuZChpbnN0LmFyZ3Nb
aSArIDFdKTsKKyAgICBBU1NFUlQoaGlkZGVuQnJhbmNoLmlzVGVybWluYWwoKSk7CiAgICAgcmV0
dXJuIGhpZGRlbkJyYW5jaDsKIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
Q29tbW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ29tbW9u
LmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbW1v
bi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDYgKzI4LDggQEAKIAogI2lmIEVOQUJMRShCM19KSVQpCiAK
KyNpbmNsdWRlICJKU0V4cG9ydE1hY3Jvcy5oIgorCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNl
IEIzIHsKIAogaW5saW5lIGJvb2wgaXM2NEJpdCgpIHsgcmV0dXJuIHNpemVvZih2b2lkKikgPT0g
ODsgfQpAQCAtMzgsNyArNDAsNyBAQCBlbnVtIEIzQ29tcGxpdGF0aW9uTW9kZSB7CiAgICAgQWly
TW9kZQogfTsKIAotYm9vbCBzaG91bGREdW1wSVIoQjNDb21wbGl0YXRpb25Nb2RlKTsKK0pTX0VY
UE9SVF9QUklWQVRFIGJvb2wgc2hvdWxkRHVtcElSKEIzQ29tcGxpdGF0aW9uTW9kZSk7CiBib29s
IHNob3VsZER1bXBJUkF0RWFjaFBoYXNlKEIzQ29tcGxpdGF0aW9uTW9kZSk7CiBib29sIHNob3Vs
ZFZhbGlkYXRlSVIoKTsKIGJvb2wgc2hvdWxkVmFsaWRhdGVJUkF0RWFjaFBoYXNlKCk7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb250cm9sVmFsdWUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnRyb2xWYWx1ZS5jcHAJKHJldmlzaW9u
IDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnRyb2xWYWx1ZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEsOTUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
LSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRl
ICJCM0NvbnRyb2xWYWx1ZS5oIgotCi0jaWYgRU5BQkxFKEIzX0pJVCkKLQotI2luY2x1ZGUgIkIz
QmFzaWNCbG9jay5oIgotCi1uYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKLQotQ29udHJv
bFZhbHVlOjp+Q29udHJvbFZhbHVlKCkKLXsKLX0KLQotYm9vbCBDb250cm9sVmFsdWU6OnJlcGxh
Y2VTdWNjZXNzb3IoQmFzaWNCbG9jayogZnJvbSwgQmFzaWNCbG9jayogdG8pCi17Ci0gICAgYm9v
bCByZXN1bHQgPSBmYWxzZTsKLSAgICBmb3IgKEZyZXF1ZW50ZWRCbG9jayYgc3VjY2Vzc29yIDog
bV9zdWNjZXNzb3JzKSB7Ci0gICAgICAgIGlmIChzdWNjZXNzb3IuYmxvY2soKSA9PSBmcm9tKSB7
Ci0gICAgICAgICAgICBzdWNjZXNzb3IuYmxvY2soKSA9IHRvOwotICAgICAgICAgICAgcmVzdWx0
ID0gdHJ1ZTsKLQotICAgICAgICAgICAgLy8gS2VlcCBsb29waW5nIGJlY2F1c2UgaXQncyB2YWxp
ZCBmb3IgYSBzdWNjZXNzb3IgdG8gYmUgbWVudGlvbmVkIG11bHRpcGxlIHRpbWVzLAotICAgICAg
ICAgICAgLy8gbGlrZSBpZiBtdWx0aXBsZSBzd2l0Y2ggY2FzZXMgaGF2ZSB0aGUgc2FtZSB0YXJn
ZXQuCi0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotdm9pZCBDb250
cm9sVmFsdWU6OmNvbnZlcnRUb0p1bXAoQmFzaWNCbG9jayogZGVzdGluYXRpb24pCi17Ci0gICAg
dW5zaWduZWQgaW5kZXggPSB0aGlzLT5pbmRleCgpOwotICAgIE9yaWdpbiBvcmlnaW4gPSB0aGlz
LT5vcmlnaW4oKTsKLSAgICBCYXNpY0Jsb2NrKiBvd25lciA9IHRoaXMtPm93bmVyOwotCi0gICAg
dGhpcy0+fkNvbnRyb2xWYWx1ZSgpOwotCi0gICAgbmV3ICh0aGlzKSBDb250cm9sVmFsdWUoSnVt
cCwgb3JpZ2luLCBGcmVxdWVudGVkQmxvY2soZGVzdGluYXRpb24pKTsKLQotICAgIHRoaXMtPm93
bmVyID0gb3duZXI7Ci0gICAgdGhpcy0+bV9pbmRleCA9IGluZGV4OwotfQotCi12b2lkIENvbnRy
b2xWYWx1ZTo6Y29udmVydFRvT29wcygpCi17Ci0gICAgdW5zaWduZWQgaW5kZXggPSB0aGlzLT5p
bmRleCgpOwotICAgIE9yaWdpbiBvcmlnaW4gPSB0aGlzLT5vcmlnaW4oKTsKLSAgICBCYXNpY0Js
b2NrKiBvd25lciA9IHRoaXMtPm93bmVyOwotCi0gICAgdGhpcy0+fkNvbnRyb2xWYWx1ZSgpOwot
Ci0gICAgbmV3ICh0aGlzKSBDb250cm9sVmFsdWUoT29wcywgb3JpZ2luKTsKLQotICAgIHRoaXMt
Pm93bmVyID0gb3duZXI7Ci0gICAgdGhpcy0+bV9pbmRleCA9IGluZGV4OwotfQotCi12b2lkIENv
bnRyb2xWYWx1ZTo6ZHVtcE1ldGEoQ29tbWFQcmludGVyJiBjb21tYSwgUHJpbnRTdHJlYW0mIG91
dCkgY29uc3QKLXsKLSAgICBmb3IgKEZyZXF1ZW50ZWRCbG9jayBzdWNjZXNzb3IgOiBtX3N1Y2Nl
c3NvcnMpCi0gICAgICAgIG91dC5wcmludChjb21tYSwgc3VjY2Vzc29yKTsKLX0KLQotVmFsdWUq
IENvbnRyb2xWYWx1ZTo6Y2xvbmVJbXBsKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbmV3IENvbnRy
b2xWYWx1ZSgqdGhpcyk7Ci19Ci0KLX0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMwotCi0jZW5kaWYg
Ly8gRU5BQkxFKEIzX0pJVCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnRy
b2xWYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnRy
b2xWYWx1ZS5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNDb250cm9sVmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMSwxNjMgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgQjND
b250cm9sVmFsdWVfaAotI2RlZmluZSBCM0NvbnRyb2xWYWx1ZV9oCi0KLSNpZiBFTkFCTEUoQjNf
SklUKQotCi0jaW5jbHVkZSAiQjNGcmVxdWVudGVkQmxvY2suaCIKLSNpbmNsdWRlICJCM1N1Y2Nl
c3NvckNvbGxlY3Rpb24uaCIKLSNpbmNsdWRlICJCM1ZhbHVlLmgiCi0KLW5hbWVzcGFjZSBKU0Mg
eyBuYW1lc3BhY2UgQjMgewotCi1jbGFzcyBCYXNpY0Jsb2NrOwotCi1jbGFzcyBKU19FWFBPUlRf
UFJJVkFURSBDb250cm9sVmFsdWUgOiBwdWJsaWMgVmFsdWUgewotcHVibGljOgotICAgIHN0YXRp
YyBib29sIGFjY2VwdHMoT3Bjb2RlIG9wY29kZSkKLSAgICB7Ci0gICAgICAgIHN3aXRjaCAob3Bj
b2RlKSB7Ci0gICAgICAgIGNhc2UgSnVtcDoKLSAgICAgICAgY2FzZSBCcmFuY2g6Ci0gICAgICAg
IGNhc2UgUmV0dXJuOgotICAgICAgICBjYXNlIE9vcHM6Ci0gICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKLSAgICAgICAgY2FzZSBTd2l0Y2g6IAotICAgICAgICAgICAgLy8gVGhpcyBpcyBoZXJlIGJl
Y2F1c2UgU3dpdGNoVmFsdWUgaXMgYSBzdWJjbGFzcyBvZiBDb250cm9sVmFsdWUsIHNvIHdlIHdh
bnQKLSAgICAgICAgICAgIC8vIHN3aXRjaFZhbHVlLT5hczxDb250cm9sVmFsdWU+KCkgdG8gcmV0
dXJuIG5vbi1udWxsLgotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGRlZmF1bHQ6
Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICB0eXBl
ZGVmIFZlY3RvcjxGcmVxdWVudGVkQmxvY2ssIDI+IFN1Y2Nlc3Nvckxpc3Q7Ci0KLSAgICB+Q29u
dHJvbFZhbHVlKCk7Ci0KLSAgICB1bnNpZ25lZCBudW1TdWNjZXNzb3JzKCkgY29uc3QgeyByZXR1
cm4gbV9zdWNjZXNzb3JzLnNpemUoKTsgfQotICAgIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgc3Vj
Y2Vzc29yKHVuc2lnbmVkIGluZGV4KSBjb25zdCB7IHJldHVybiBtX3N1Y2Nlc3NvcnNbaW5kZXhd
OyB9Ci0gICAgRnJlcXVlbnRlZEJsb2NrJiBzdWNjZXNzb3IodW5zaWduZWQgaW5kZXgpIHsgcmV0
dXJuIG1fc3VjY2Vzc29yc1tpbmRleF07IH0KLSAgICBjb25zdCBTdWNjZXNzb3JMaXN0JiBzdWNj
ZXNzb3JzKCkgY29uc3QgeyByZXR1cm4gbV9zdWNjZXNzb3JzOyB9Ci0gICAgU3VjY2Vzc29yTGlz
dCYgc3VjY2Vzc29ycygpIHsgcmV0dXJuIG1fc3VjY2Vzc29yczsgfQotCi0gICAgQmFzaWNCbG9j
ayogc3VjY2Vzc29yQmxvY2sodW5zaWduZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIHN1Y2Nlc3Nv
cihpbmRleCkuYmxvY2soKTsgfQotICAgIEJhc2ljQmxvY2sqJiBzdWNjZXNzb3JCbG9jayh1bnNp
Z25lZCBpbmRleCkgeyByZXR1cm4gc3VjY2Vzc29yKGluZGV4KS5ibG9jaygpOyB9Ci0gICAgU3Vj
Y2Vzc29yQ29sbGVjdGlvbjxCYXNpY0Jsb2NrLCBTdWNjZXNzb3JMaXN0PiBzdWNjZXNzb3JCbG9j
a3MoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIFN1Y2Nlc3NvckNvbGxlY3Rpb248QmFzaWNCbG9j
aywgU3VjY2Vzc29yTGlzdD4oc3VjY2Vzc29ycygpKTsKLSAgICB9Ci0gICAgU3VjY2Vzc29yQ29s
bGVjdGlvbjxjb25zdCBCYXNpY0Jsb2NrLCBjb25zdCBTdWNjZXNzb3JMaXN0PiBzdWNjZXNzb3JC
bG9ja3MoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIFN1Y2Nlc3NvckNvbGxlY3Rpb248
Y29uc3QgQmFzaWNCbG9jaywgY29uc3QgU3VjY2Vzc29yTGlzdD4oc3VjY2Vzc29ycygpKTsKLSAg
ICB9Ci0KLSAgICBib29sIHJlcGxhY2VTdWNjZXNzb3IoQmFzaWNCbG9jayogZnJvbSwgQmFzaWNC
bG9jayogdG8pOwotCi0gICAgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YWtlbigpIGNvbnN0Ci0g
ICAgewotICAgICAgICBBU1NFUlQob3Bjb2RlKCkgPT0gSnVtcCB8fCBvcGNvZGUoKSA9PSBCcmFu
Y2gpOwotICAgICAgICByZXR1cm4gc3VjY2Vzc29yKDApOwotICAgIH0KLSAgICBGcmVxdWVudGVk
QmxvY2smIHRha2VuKCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChvcGNvZGUoKSA9PSBKdW1wIHx8
IG9wY29kZSgpID09IEJyYW5jaCk7Ci0gICAgICAgIHJldHVybiBzdWNjZXNzb3IoMCk7Ci0gICAg
fQotICAgIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgbm90VGFrZW4oKSBjb25zdAotICAgIHsKLSAg
ICAgICAgQVNTRVJUKG9wY29kZSgpID09IEJyYW5jaCk7Ci0gICAgICAgIHJldHVybiBzdWNjZXNz
b3IoMSk7Ci0gICAgfQotICAgIEZyZXF1ZW50ZWRCbG9jayYgbm90VGFrZW4oKQotICAgIHsKLSAg
ICAgICAgQVNTRVJUKG9wY29kZSgpID09IEJyYW5jaCk7Ci0gICAgICAgIHJldHVybiBzdWNjZXNz
b3IoMSk7Ci0gICAgfQotCi0gICAgdm9pZCBjb252ZXJ0VG9KdW1wKEJhc2ljQmxvY2sqIGRlc3Rp
bmF0aW9uKTsKLSAgICB2b2lkIGNvbnZlcnRUb09vcHMoKTsKLQotcHJvdGVjdGVkOgotICAgIHZv
aWQgZHVtcE1ldGEoQ29tbWFQcmludGVyJiwgUHJpbnRTdHJlYW0mKSBjb25zdCBvdmVycmlkZTsK
LQotICAgIFZhbHVlKiBjbG9uZUltcGwoKSBjb25zdCBvdmVycmlkZTsKLQotICAgIC8vIFVzZSB0
aGlzIGZvciBzdWJjbGFzc2VzLgotICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4K
LSAgICBDb250cm9sVmFsdWUoT3Bjb2RlIG9wY29kZSwgVHlwZSB0eXBlLCBPcmlnaW4gb3JpZ2lu
LCBBcmd1bWVudHMuLi4gYXJndW1lbnRzKQotICAgICAgICA6IFZhbHVlKENoZWNrZWRPcGNvZGUs
IG9wY29kZSwgdHlwZSwgb3JpZ2luLCBhcmd1bWVudHMuLi4pCi0gICAgewotICAgICAgICBBU1NF
UlQoYWNjZXB0cyhvcGNvZGUpKTsKLSAgICB9Ci0KLSAgICAvLyBTdWJjbGFzc2VzIHdpbGwgcG9w
dWxhdGUgdGhpcy4KLSAgICBTdWNjZXNzb3JMaXN0IG1fc3VjY2Vzc29yczsKLQotcHJpdmF0ZToK
LSAgICBmcmllbmQgY2xhc3MgUHJvY2VkdXJlOwotCi0gICAgLy8gVXNlIHRoaXMgZm9yIE9vcHMu
Ci0gICAgQ29udHJvbFZhbHVlKE9wY29kZSBvcGNvZGUsIE9yaWdpbiBvcmlnaW4pCi0gICAgICAg
IDogVmFsdWUoQ2hlY2tlZE9wY29kZSwgb3Bjb2RlLCBWb2lkLCBvcmlnaW4pCi0gICAgewotICAg
ICAgICBBU1NFUlQob3Bjb2RlID09IE9vcHMpOwotICAgIH0KLQotICAgIC8vIFVzZSB0aGlzIGZv
ciBSZXR1cm4uCi0gICAgQ29udHJvbFZhbHVlKE9wY29kZSBvcGNvZGUsIE9yaWdpbiBvcmlnaW4s
IFZhbHVlKiByZXN1bHQpCi0gICAgICAgIDogVmFsdWUoQ2hlY2tlZE9wY29kZSwgb3Bjb2RlLCBW
b2lkLCBvcmlnaW4sIHJlc3VsdCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChvcGNvZGUgPT0gUmV0
dXJuKTsKLSAgICB9Ci0KLSAgICAvLyBVc2UgdGhpcyBmb3IgSnVtcC4KLSAgICBDb250cm9sVmFs
dWUoT3Bjb2RlIG9wY29kZSwgT3JpZ2luIG9yaWdpbiwgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0
YXJnZXQpCi0gICAgICAgIDogVmFsdWUoQ2hlY2tlZE9wY29kZSwgb3Bjb2RlLCBWb2lkLCBvcmln
aW4pCi0gICAgewotICAgICAgICBBU1NFUlQob3Bjb2RlID09IEp1bXApOwotICAgICAgICBtX3N1
Y2Nlc3NvcnMuYXBwZW5kKHRhcmdldCk7Ci0gICAgfQotCi0gICAgLy8gVXNlIHRoaXMgZm9yIEJy
YW5jaC4KLSAgICBDb250cm9sVmFsdWUoCi0gICAgICAgIE9wY29kZSBvcGNvZGUsIE9yaWdpbiBv
cmlnaW4sIFZhbHVlKiBwcmVkaWNhdGUsCi0gICAgICAgIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYg
eWVzLCBjb25zdCBGcmVxdWVudGVkQmxvY2smIG5vKQotICAgICAgICA6IFZhbHVlKENoZWNrZWRP
cGNvZGUsIG9wY29kZSwgVm9pZCwgb3JpZ2luLCBwcmVkaWNhdGUpCi0gICAgewotICAgICAgICBB
U1NFUlQob3Bjb2RlID09IEJyYW5jaCk7Ci0gICAgICAgIG1fc3VjY2Vzc29ycy5hcHBlbmQoeWVz
KTsKLSAgICAgICAgbV9zdWNjZXNzb3JzLmFwcGVuZChubyk7Ci0gICAgfQotfTsKLQotfSB9IC8v
IG5hbWVzcGFjZSBKU0M6OkIzCi0KLSNlbmRpZiAvLyBFTkFCTEUoQjNfSklUKQotCi0jZW5kaWYg
Ly8gQjNDb250cm9sVmFsdWVfaAotCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNE
YXRhU2VjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
RGF0YVNlY3Rpb24uY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNEYXRhU2VjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzEsNyArMzEsNyBAQAogbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKIERhdGFTZWN0aW9uOjpEYXRhU2VjdGlvbihz
aXplX3Qgc2l6ZSkKLSAgICA6IG1fZGF0YShmYXN0TWFsbG9jKHNpemUpKQorICAgIDogbV9kYXRh
KGZhc3RaZXJvZWRNYWxsb2Moc2l6ZSkpCiAgICAgLCBtX3NpemUoc2l6ZSkKIHsKIH0KSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0R1cGxpY2F0ZVRhaWxzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEdXBsaWNhdGVUYWlscy5jcHAJKHJldmlz
aW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0R1cGxpY2F0ZVRhaWxz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNiBAQAogCiAjaW5jbHVkZSAiQjNCYXNp
Y0Jsb2NrSW5saW5lcy5oIgogI2luY2x1ZGUgIkIzQnJlYWtDcml0aWNhbEVkZ2VzLmgiCi0jaW5j
bHVkZSAiQjNDb250cm9sVmFsdWUuaCIKICNpbmNsdWRlICJCM0RvbWluYXRvcnMuaCIKICNpbmNs
dWRlICJCM0ZpeFNTQS5oIgogI2luY2x1ZGUgIkIzSW5kZXhTZXQuaCIKQEAgLTcyLDkgKzcxLDEw
IEBAIHB1YmxpYzoKICAgICAgICAgSW5kZXhTZXQ8QmFzaWNCbG9jaz4gY2FuZGlkYXRlczsKIAog
ICAgICAgICBmb3IgKEJhc2ljQmxvY2sqIGJsb2NrIDogbV9wcm9jKSB7Ci0gICAgICAgICAgICBp
ZiAoYmxvY2stPnNpemUoKSA+IG1fbWF4U2l6ZSB8fCBibG9jay0+bnVtU3VjY2Vzc29ycygpID4g
bV9tYXhTdWNjZXNzb3JzKQorICAgICAgICAgICAgaWYgKGJsb2NrLT5zaXplKCkgPiBtX21heFNp
emUKKyAgICAgICAgICAgICAgICB8fCBibG9jay0+bnVtU3VjY2Vzc29ycygpID4gbV9tYXhTdWNj
ZXNzb3JzKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotCisgICAgICAgICAgICAKICAgICAg
ICAgICAgIGNhbmRpZGF0ZXMuYWRkKGJsb2NrKTsKICAgICAgICAgfQogCkBAIC05NywxMSArOTcs
MTAgQEAgcHVibGljOgogICAgICAgICB9CiAKICAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBibG9j
ayA6IG1fcHJvYykgewotICAgICAgICAgICAgQ29udHJvbFZhbHVlKiBqdW1wID0gYmxvY2stPmxh
c3QoKS0+YXM8Q29udHJvbFZhbHVlPigpOwotICAgICAgICAgICAgaWYgKGp1bXAtPm9wY29kZSgp
ICE9IEp1bXApCisgICAgICAgICAgICBpZiAoYmxvY2stPmxhc3QoKS0+b3Bjb2RlKCkgIT0gSnVt
cCkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICAgICAgQmFzaWNCbG9jayog
dGFpbCA9IGp1bXAtPnN1Y2Nlc3NvckJsb2NrKDApOworICAgICAgICAgICAgQmFzaWNCbG9jayog
dGFpbCA9IGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKTsKICAgICAgICAgICAgIGlmICghY2FuZGlk
YXRlcy5jb250YWlucyh0YWlsKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIApAQCAtMTMw
LDYgKzEyOSw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgbWFwLmFkZCh2YWx1ZSwg
Y2xvbmUpOwogICAgICAgICAgICAgICAgIGJsb2NrLT5hcHBlbmQoY2xvbmUpOwogICAgICAgICAg
ICAgfQorICAgICAgICAgICAgYmxvY2stPnN1Y2Nlc3NvcnMoKSA9IHRhaWwtPnN1Y2Nlc3NvcnMo
KTsKICAgICAgICAgfQogCiAgICAgICAgIG1fcHJvYy5yZXNldFJlYWNoYWJpbGl0eSgpOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRWZmZWN0cy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0VmZmVjdHMuaAkocmV2aXNpb24gMjAyODA5KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRWZmZWN0cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ1LDcg
KzQ1LDExIEBAIHN0cnVjdCBFZmZlY3RzIHsKICAgICAvLyB0ZXJtaW5hdGVzIGFicnVwdGx5Lgog
ICAgIGJvb2wgZXhpdHNTaWRld2F5cyB7IGZhbHNlIH07CiAKLSAgICAvLyBUcnVlIGlmIHRoZSBp
bnN0cnVjdGlvbiBtYXkgY2hhbmdlIHNlbWFudGljcyBpZiBob2lzdGVkIGFib3ZlIHNvbWUgY29u
dHJvbCBmbG93LgorICAgIC8vIFRydWUgaWYgdGhlIGluc3RydWN0aW9uIG1heSBjaGFuZ2Ugc2Vt
YW50aWNzIGlmIGhvaXN0ZWQgYWJvdmUgc29tZSBjb250cm9sIGZsb3cuIEZvciBleGFtcGxlLAor
ICAgIC8vIGxvYWRzIGFyZSB1c3VhbGx5IGNvbnRyb2wtZGVwZW5kZW50IGJlY2F1c2Ugd2UgbXVz
dCBhc3N1bWUgdGhhdCBhbnkgY29udHJvbCBjb25zdHJ1Y3QgKGVpdGhlcgorICAgIC8vIGEgdGVy
bWluYWwgbGlrZSBCcmFuY2ggb3IgYW55dGhpbmcgdGhhdCBleGl0cyBzaWRld2F5cywgbGlrZSBD
aGVjaykgdmFsaWRhdGVzIHdoZXRoZXIgdGhlCisgICAgLy8gcG9pbnRlciBpcyB2YWxpZC4gSG9p
c3RpbmcgdGhlIGxvYWQgYWJvdmUgY29udHJvbCBtYXkgY2F1c2UgdGhlIGxvYWQgdG8gdHJhcCBl
dmVuIHRob3VnaCBpdAorICAgIC8vIHdvdWxkIG5vdCBoYXZlIG90aGVyd2lzZSB0cmFwcGVkLgog
ICAgIGJvb2wgY29udHJvbERlcGVuZGVudCB7IGZhbHNlIH07CiAKICAgICAvLyBUcnVlIGlmIHRo
aXMgd3JpdGVzIHRvIHRoZSBsb2NhbCBzdGF0ZS4gT3BlcmF0aW9ucyB0aGF0IHdyaXRlIGxvY2Fs
IHN0YXRlIGRvbid0IHdyaXRlIHRvIGFueXRoaW5nCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNGaXhTU0EuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM0ZpeFNTQS5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0ZpeFNTQS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDYgQEAKIAogI2lu
Y2x1ZGUgIkIzQmFzaWNCbG9ja0lubGluZXMuaCIKICNpbmNsdWRlICJCM0JyZWFrQ3JpdGljYWxF
ZGdlcy5oIgotI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNEb21pbmF0
b3JzLmgiCiAjaW5jbHVkZSAiQjNJbmRleFNldC5oIgogI2luY2x1ZGUgIkIzSW5zZXJ0aW9uU2V0
SW5saW5lcy5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRm9sZFBhdGhDb25z
dGFudHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0ZvbGRQ
YXRoQ29uc3RhbnRzLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzRm9sZFBhdGhDb25zdGFudHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsy
OSw3IEBACiAjaWYgRU5BQkxFKEIzX0pJVCkKIAogI2luY2x1ZGUgIkIzQmFzaWNCbG9ja0lubGlu
ZXMuaCIKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgorI2luY2x1ZGUgIkIzQ2FzZUNvbGxl
Y3Rpb25JbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNEb21pbmF0b3JzLmgiCiAjaW5jbHVkZSAiQjNJ
bnNlcnRpb25TZXRJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNQaGFzZVNjb3BlLmgiCkBAIC04Nywy
NCArODcsMjQgQEAgcHVibGljOgogICAgICAgICB9OwogICAgICAgICAKICAgICAgICAgZm9yIChC
YXNpY0Jsb2NrKiBibG9jayA6IG1fcHJvYykgewotICAgICAgICAgICAgQ29udHJvbFZhbHVlKiBi
cmFuY2ggPSBibG9jay0+bGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCk7CisgICAgICAgICAgICBW
YWx1ZSogYnJhbmNoID0gYmxvY2stPmxhc3QoKTsKICAgICAgICAgICAgIHN3aXRjaCAoYnJhbmNo
LT5vcGNvZGUoKSkgewogICAgICAgICAgICAgY2FzZSBCcmFuY2g6Ci0gICAgICAgICAgICAgICAg
aWYgKGJyYW5jaC0+c3VjY2Vzc29yQmxvY2soMCkgPT0gYnJhbmNoLT5zdWNjZXNzb3JCbG9jaygx
KSkKKyAgICAgICAgICAgICAgICBpZiAoYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDApID09IGJsb2Nr
LT5zdWNjZXNzb3JCbG9jaygxKSkKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAg
ICAgICAgICAgICAgYWRkT3ZlcnJpZGUoCiAgICAgICAgICAgICAgICAgICAgIGJsb2NrLCBicmFu
Y2gtPmNoaWxkKDApLAotICAgICAgICAgICAgICAgICAgICBPdmVycmlkZTo6bm9uWmVybyhicmFu
Y2gtPnN1Y2Nlc3NvckJsb2NrKDApKSk7CisgICAgICAgICAgICAgICAgICAgIE92ZXJyaWRlOjpu
b25aZXJvKGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKSkpOwogICAgICAgICAgICAgICAgIGFkZE92
ZXJyaWRlKAogICAgICAgICAgICAgICAgICAgICBibG9jaywgYnJhbmNoLT5jaGlsZCgwKSwKLSAg
ICAgICAgICAgICAgICAgICAgT3ZlcnJpZGU6OmNvbnN0YW50KGJyYW5jaC0+c3VjY2Vzc29yQmxv
Y2soMSksIDApKTsKKyAgICAgICAgICAgICAgICAgICAgT3ZlcnJpZGU6OmNvbnN0YW50KGJsb2Nr
LT5zdWNjZXNzb3JCbG9jaygxKSwgMCkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgY2FzZSBTd2l0Y2g6IHsKICAgICAgICAgICAgICAgICBIYXNoTWFwPEJhc2ljQmxvY2sq
LCB1bnNpZ25lZD4gdGFyZ2V0VXNlczsKLSAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFN3aXRj
aENhc2UmIHN3aXRjaENhc2UgOiAqYnJhbmNoLT5hczxTd2l0Y2hWYWx1ZT4oKSkKKyAgICAgICAg
ICAgICAgICBmb3IgKGNvbnN0IFN3aXRjaENhc2UmIHN3aXRjaENhc2UgOiBicmFuY2gtPmFzPFN3
aXRjaFZhbHVlPigpLT5jYXNlcyhibG9jaykpCiAgICAgICAgICAgICAgICAgICAgIHRhcmdldFVz
ZXMuYWRkKHN3aXRjaENhc2UudGFyZ2V0QmxvY2soKSwgMCkuaXRlcmF0b3ItPnZhbHVlKys7CiAK
LSAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFN3aXRjaENhc2UmIHN3aXRjaENhc2UgOiAqYnJh
bmNoLT5hczxTd2l0Y2hWYWx1ZT4oKSkgeworICAgICAgICAgICAgICAgIGZvciAoY29uc3QgU3dp
dGNoQ2FzZSYgc3dpdGNoQ2FzZSA6IGJyYW5jaC0+YXM8U3dpdGNoVmFsdWU+KCktPmNhc2VzKGJs
b2NrKSkgewogICAgICAgICAgICAgICAgICAgICBpZiAodGFyZ2V0VXNlcy5maW5kKHN3aXRjaENh
c2UudGFyZ2V0QmxvY2soKSktPnZhbHVlICE9IDEpCiAgICAgICAgICAgICAgICAgICAgICAgICBj
b250aW51ZTsKIApAQCAtMTU4LDkgKzE1OCw4IEBAIHB1YmxpYzoKIAogICAgICAgICAgICAgICAg
IHN3aXRjaCAodmFsdWUtPm9wY29kZSgpKSB7CiAgICAgICAgICAgICAgICAgY2FzZSBCcmFuY2g6
IHsKLSAgICAgICAgICAgICAgICAgICAgQ29udHJvbFZhbHVlKiBicmFuY2ggPSB2YWx1ZS0+YXM8
Q29udHJvbFZhbHVlPigpOwotICAgICAgICAgICAgICAgICAgICBpZiAoZ2V0T3ZlcnJpZGUoYmxv
Y2ssIGJyYW5jaC0+Y2hpbGQoMCkpLmlzTm9uWmVybykgewotICAgICAgICAgICAgICAgICAgICAg
ICAgYnJhbmNoLT5jb252ZXJ0VG9KdW1wKGJyYW5jaC0+dGFrZW4oKS5ibG9jaygpKTsKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKGdldE92ZXJyaWRlKGJsb2NrLCB2YWx1ZS0+Y2hpbGQoMCkpLmlz
Tm9uWmVybykgeworICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUtPnJlcGxhY2VXaXRoSnVt
cChibG9jaywgYmxvY2stPnRha2VuKCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdl
ZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlck1hY3Jvcy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJNYWNyb3MuY3BwCShy
ZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlck1hY3Jv
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsMTcgKzI4LDIzIEBACiAKICNpZiBFTkFCTEUoQjNfSklU
KQogCisjaW5jbHVkZSAiQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlLmgiCiAjaW5jbHVk
ZSAiQjNCYXNpY0Jsb2NrSW5saW5lcy5oIgogI2luY2x1ZGUgIkIzQmxvY2tJbnNlcnRpb25TZXQu
aCIKICNpbmNsdWRlICJCM0NDYWxsVmFsdWUuaCIKKyNpbmNsdWRlICJCM0Nhc2VDb2xsZWN0aW9u
SW5saW5lcy5oIgogI2luY2x1ZGUgIkIzQ29uc3RQdHJWYWx1ZS5oIgotI2luY2x1ZGUgIkIzQ29u
dHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNJbnNlcnRpb25TZXRJbmxpbmVzLmgiCisjaW5jbHVk
ZSAiQjNNZW1vcnlWYWx1ZS5oIgorI2luY2x1ZGUgIkIzUGF0Y2hwb2ludFZhbHVlLmgiCiAjaW5j
bHVkZSAiQjNQaGFzZVNjb3BlLmgiCiAjaW5jbHVkZSAiQjNQcm9jZWR1cmVJbmxpbmVzLmgiCisj
aW5jbHVkZSAiQjNTdGFja21hcEdlbmVyYXRpb25QYXJhbXMuaCIKICNpbmNsdWRlICJCM1N3aXRj
aFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNVcHNpbG9uVmFsdWUuaCIKICNpbmNsdWRlICJCM1ZhbHVl
SW5saW5lcy5oIgorI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgorI2luY2x1ZGUgIkxpbmtCdWZm
ZXIuaCIKICNpbmNsdWRlIDxjbWF0aD4KIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7
CkBAIC0xMTgsOCArMTI0LDggQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgQmFzaWNC
bG9jayogemVyb0RlbkNhc2UgPSBtX2Jsb2NrSW5zZXJ0aW9uU2V0Lmluc2VydEJlZm9yZShtX2Js
b2NrKTsKICAgICAgICAgICAgICAgICAgICAgQmFzaWNCbG9jayogbm9ybWFsTW9kQ2FzZSA9IG1f
YmxvY2tJbnNlcnRpb25TZXQuaW5zZXJ0QmVmb3JlKG1fYmxvY2spOwogCi0gICAgICAgICAgICAg
ICAgICAgIGJlZm9yZS0+cmVwbGFjZUxhc3RXaXRoTmV3PENvbnRyb2xWYWx1ZT4oCi0gICAgICAg
ICAgICAgICAgICAgICAgICBtX3Byb2MsIEJyYW5jaCwgbV9vcmlnaW4sIG1fdmFsdWUtPmNoaWxk
KDEpLAorICAgICAgICAgICAgICAgICAgICBiZWZvcmUtPnJlcGxhY2VMYXN0V2l0aE5ldzxWYWx1
ZT4obV9wcm9jLCBCcmFuY2gsIG1fb3JpZ2luLCBtX3ZhbHVlLT5jaGlsZCgxKSk7CisgICAgICAg
ICAgICAgICAgICAgIGJlZm9yZS0+c2V0U3VjY2Vzc29ycygKICAgICAgICAgICAgICAgICAgICAg
ICAgIEZyZXF1ZW50ZWRCbG9jayhub3JtYWxNb2RDYXNlLCBGcmVxdWVuY3lDbGFzczo6Tm9ybWFs
KSwKICAgICAgICAgICAgICAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh6ZXJvRGVuQ2FzZSwg
RnJlcXVlbmN5Q2xhc3M6OlJhcmUpKTsKIApAQCAtMTI3LDEyICsxMzMsMTQgQEAgcHJpdmF0ZToK
ICAgICAgICAgICAgICAgICAgICAgVmFsdWUqIG11bHRpcGxpZWRCYWNrID0gbm9ybWFsTW9kQ2Fz
ZS0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIE11bCwgbV9vcmlnaW4sIGRpdlJlc3VsdCwgbV92
YWx1ZS0+Y2hpbGQoMSkpOwogICAgICAgICAgICAgICAgICAgICBWYWx1ZSogcmVzdWx0ID0gbm9y
bWFsTW9kQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIFN1YiwgbV9vcmlnaW4sIG1fdmFs
dWUtPmNoaWxkKDApLCBtdWx0aXBsaWVkQmFjayk7CiAgICAgICAgICAgICAgICAgICAgIFVwc2ls
b25WYWx1ZSogbm9ybWFsUmVzdWx0ID0gbm9ybWFsTW9kQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25W
YWx1ZT4obV9wcm9jLCBtX29yaWdpbiwgcmVzdWx0KTsKLSAgICAgICAgICAgICAgICAgICAgbm9y
bWFsTW9kQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4obV9wcm9jLCBKdW1wLCBtX29yaWdp
biwgRnJlcXVlbnRlZEJsb2NrKG1fYmxvY2spKTsKKyAgICAgICAgICAgICAgICAgICAgbm9ybWFs
TW9kQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIEp1bXAsIG1fb3JpZ2luKTsKKyAgICAg
ICAgICAgICAgICAgICAgbm9ybWFsTW9kQ2FzZS0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxv
Y2sobV9ibG9jaykpOwogCiAgICAgICAgICAgICAgICAgICAgIFVwc2lsb25WYWx1ZSogemVyb1Jl
c3VsdCA9IHplcm9EZW5DYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPigKICAgICAgICAgICAg
ICAgICAgICAgICAgIG1fcHJvYywgbV9vcmlnaW4sCiAgICAgICAgICAgICAgICAgICAgICAgICB6
ZXJvRGVuQ2FzZS0+YXBwZW5kSW50Q29uc3RhbnQobV9wcm9jLCBtX3ZhbHVlLCAwKSk7Ci0gICAg
ICAgICAgICAgICAgICAgIHplcm9EZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihtX3By
b2MsIEp1bXAsIG1fb3JpZ2luLCBGcmVxdWVudGVkQmxvY2sobV9ibG9jaykpOworICAgICAgICAg
ICAgICAgICAgICB6ZXJvRGVuQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIEp1bXAsIG1f
b3JpZ2luKTsKKyAgICAgICAgICAgICAgICAgICAgemVyb0RlbkNhc2UtPnNldFN1Y2Nlc3NvcnMo
RnJlcXVlbnRlZEJsb2NrKG1fYmxvY2spKTsKIAogICAgICAgICAgICAgICAgICAgICBWYWx1ZSog
cGhpID0gbV9pbnNlcnRpb25TZXQuaW5zZXJ0PFZhbHVlPihtX2luZGV4LCBQaGksIG1fdmFsdWUt
PnR5cGUoKSwgbV9vcmlnaW4pOwogICAgICAgICAgICAgICAgICAgICBub3JtYWxSZXN1bHQtPnNl
dFBoaShwaGkpOwpAQCAtMTQ3LDE1ICsxNTUsMTYgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGNh
c2UgU3dpdGNoOiB7CiAgICAgICAgICAgICAgICAgU3dpdGNoVmFsdWUqIHN3aXRjaFZhbHVlID0g
bV92YWx1ZS0+YXM8U3dpdGNoVmFsdWU+KCk7CiAgICAgICAgICAgICAgICAgVmVjdG9yPFN3aXRj
aENhc2U+IGNhc2VzOwotICAgICAgICAgICAgICAgIGZvciAoY29uc3QgU3dpdGNoQ2FzZSYgc3dp
dGNoQ2FzZSA6ICpzd2l0Y2hWYWx1ZSkKKyAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFN3aXRj
aENhc2UmIHN3aXRjaENhc2UgOiBzd2l0Y2hWYWx1ZS0+Y2FzZXMobV9ibG9jaykpCiAgICAgICAg
ICAgICAgICAgICAgIGNhc2VzLmFwcGVuZChzd2l0Y2hDYXNlKTsKICAgICAgICAgICAgICAgICBz
dGQ6OnNvcnQoCiAgICAgICAgICAgICAgICAgICAgIGNhc2VzLmJlZ2luKCksIGNhc2VzLmVuZCgp
LAogICAgICAgICAgICAgICAgICAgICBbXSAoY29uc3QgU3dpdGNoQ2FzZSYgbGVmdCwgY29uc3Qg
U3dpdGNoQ2FzZSYgcmlnaHQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBsZWZ0
LmNhc2VWYWx1ZSgpIDwgcmlnaHQuY2FzZVZhbHVlKCk7CiAgICAgICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayBmYWxsVGhyb3VnaCA9IG1fYmxvY2st
PmZhbGxUaHJvdWdoKCk7CiAgICAgICAgICAgICAgICAgbV9ibG9jay0+dmFsdWVzKCkucmVtb3Zl
TGFzdCgpOwotICAgICAgICAgICAgICAgIHJlY3Vyc2l2ZWx5QnVpbGRTd2l0Y2goY2FzZXMsIDAs
IGZhbHNlLCBjYXNlcy5zaXplKCksIG1fYmxvY2spOworICAgICAgICAgICAgICAgIHJlY3Vyc2l2
ZWx5QnVpbGRTd2l0Y2goY2FzZXMsIGZhbGxUaHJvdWdoLCAwLCBmYWxzZSwgY2FzZXMuc2l6ZSgp
LCBtX2Jsb2NrKTsKICAgICAgICAgICAgICAgICBtX3Byb2MuZGVsZXRlVmFsdWUoc3dpdGNoVmFs
dWUpOwogICAgICAgICAgICAgICAgIG1fYmxvY2stPnVwZGF0ZVByZWRlY2Vzc29yc0FmdGVyKCk7
CiAgICAgICAgICAgICAgICAgbV9jaGFuZ2VkID0gdHJ1ZTsKQEAgLTIxMCwyNyArMjE5LDI3IEBA
IHByaXZhdGU6CiAgICAgICAgIEJhc2ljQmxvY2sqIG5lZzFEZW5DYXNlID0gbV9ibG9ja0luc2Vy
dGlvblNldC5pbnNlcnRCZWZvcmUobV9ibG9jayk7CiAgICAgICAgIEJhc2ljQmxvY2sqIGludE1p
bkNhc2UgPSBtX2Jsb2NrSW5zZXJ0aW9uU2V0Lmluc2VydEJlZm9yZShtX2Jsb2NrKTsKIAotICAg
ICAgICBiZWZvcmUtPnJlcGxhY2VMYXN0V2l0aE5ldzxDb250cm9sVmFsdWU+KAotICAgICAgICAg
ICAgbV9wcm9jLCBCcmFuY2gsIG1fb3JpZ2luLCBpc0Rlbk9LLAorICAgICAgICBiZWZvcmUtPnJl
cGxhY2VMYXN0V2l0aE5ldzxWYWx1ZT4obV9wcm9jLCBCcmFuY2gsIG1fb3JpZ2luLCBpc0Rlbk9L
KTsKKyAgICAgICAgYmVmb3JlLT5zZXRTdWNjZXNzb3JzKAogICAgICAgICAgICAgRnJlcXVlbnRl
ZEJsb2NrKG5vcm1hbERpdkNhc2UsIEZyZXF1ZW5jeUNsYXNzOjpOb3JtYWwpLAogICAgICAgICAg
ICAgRnJlcXVlbnRlZEJsb2NrKHNoYWR5RGVuQ2FzZSwgRnJlcXVlbmN5Q2xhc3M6OlJhcmUpKTsK
IAogICAgICAgICBVcHNpbG9uVmFsdWUqIG5vcm1hbFJlc3VsdCA9IG5vcm1hbERpdkNhc2UtPmFw
cGVuZE5ldzxVcHNpbG9uVmFsdWU+KAogICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwKICAg
ICAgICAgICAgIG5vcm1hbERpdkNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBub25DaGls
bE9wY29kZSwgbV9vcmlnaW4sIG51bSwgZGVuKSk7Ci0gICAgICAgIG5vcm1hbERpdkNhc2UtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAotICAgICAgICAgICAgbV9wcm9jLCBKdW1wLCBtX29yaWdp
biwgRnJlcXVlbnRlZEJsb2NrKG1fYmxvY2spKTsKKyAgICAgICAgbm9ybWFsRGl2Q2FzZS0+YXBw
ZW5kTmV3PFZhbHVlPihtX3Byb2MsIEp1bXAsIG1fb3JpZ2luKTsKKyAgICAgICAgbm9ybWFsRGl2
Q2FzZS0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2sobV9ibG9jaykpOwogCi0gICAgICAg
IHNoYWR5RGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCi0gICAgICAgICAgICBtX3By
b2MsIEJyYW5jaCwgbV9vcmlnaW4sIGRlbiwKKyAgICAgICAgc2hhZHlEZW5DYXNlLT5hcHBlbmRO
ZXc8VmFsdWU+KG1fcHJvYywgQnJhbmNoLCBtX29yaWdpbiwgZGVuKTsKKyAgICAgICAgc2hhZHlE
ZW5DYXNlLT5zZXRTdWNjZXNzb3JzKAogICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKG5lZzFE
ZW5DYXNlLCBGcmVxdWVuY3lDbGFzczo6Tm9ybWFsKSwKICAgICAgICAgICAgIEZyZXF1ZW50ZWRC
bG9jayh6ZXJvRGVuQ2FzZSwgRnJlcXVlbmN5Q2xhc3M6OlJhcmUpKTsKIAogICAgICAgICBVcHNp
bG9uVmFsdWUqIHplcm9SZXN1bHQgPSB6ZXJvRGVuQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1
ZT4oCiAgICAgICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLAogICAgICAgICAgICAgemVyb0RlbkNh
c2UtPmFwcGVuZEludENvbnN0YW50KG1fcHJvYywgbV92YWx1ZSwgMCkpOwotICAgICAgICB6ZXJv
RGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCi0gICAgICAgICAgICBtX3Byb2MsIEp1
bXAsIG1fb3JpZ2luLCBGcmVxdWVudGVkQmxvY2sobV9ibG9jaykpOworICAgICAgICB6ZXJvRGVu
Q2FzZS0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIEp1bXAsIG1fb3JpZ2luKTsKKyAgICAgICAg
emVyb0RlbkNhc2UtPnNldFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2NrKG1fYmxvY2spKTsKIAog
ICAgICAgICBpbnQ2NF90IGJhZE51bWVyYXRvckNvbnN0ID0gMDsKICAgICAgICAgc3dpdGNoICht
X3ZhbHVlLT50eXBlKCkpIHsKQEAgLTI0OCwxOCArMjU3LDE5IEBAIHByaXZhdGU6CiAgICAgICAg
IFZhbHVlKiBiYWROdW1lcmF0b3IgPQogICAgICAgICAgICAgbmVnMURlbkNhc2UtPmFwcGVuZElu
dENvbnN0YW50KG1fcHJvYywgbV92YWx1ZSwgYmFkTnVtZXJhdG9yQ29uc3QpOwogCi0gICAgICAg
IG5lZzFEZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgbmVnMURlbkNh
c2UtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBtX3Byb2MsIEJyYW5jaCwgbV9vcmln
aW4sCiAgICAgICAgICAgICBuZWcxRGVuQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPigKLSAgICAgICAg
ICAgICAgICBtX3Byb2MsIEVxdWFsLCBtX29yaWdpbiwgbnVtLCBiYWROdW1lcmF0b3IpLAorICAg
ICAgICAgICAgICAgIG1fcHJvYywgRXF1YWwsIG1fb3JpZ2luLCBudW0sIGJhZE51bWVyYXRvcikp
OworICAgICAgICBuZWcxRGVuQ2FzZS0+c2V0U3VjY2Vzc29ycygKICAgICAgICAgICAgIEZyZXF1
ZW50ZWRCbG9jayhpbnRNaW5DYXNlLCBGcmVxdWVuY3lDbGFzczo6UmFyZSksCiAgICAgICAgICAg
ICBGcmVxdWVudGVkQmxvY2sobm9ybWFsRGl2Q2FzZSwgRnJlcXVlbmN5Q2xhc3M6Ok5vcm1hbCkp
OwogCiAgICAgICAgIFZhbHVlKiBpbnRNaW5SZXN1bHQgPSBub25DaGlsbE9wY29kZSA9PSBEaXYg
PyBiYWROdW1lcmF0b3IgOiBpbnRNaW5DYXNlLT5hcHBlbmRJbnRDb25zdGFudChtX3Byb2MsIG1f
dmFsdWUsIDApOwogICAgICAgICBVcHNpbG9uVmFsdWUqIGludE1pblJlc3VsdFVwc2lsb24gPSBp
bnRNaW5DYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPigKICAgICAgICAgICAgIG1fcHJvYywg
bV9vcmlnaW4sIGludE1pblJlc3VsdCk7Ci0gICAgICAgIGludE1pbkNhc2UtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAotICAgICAgICAgICAgbV9wcm9jLCBKdW1wLCBtX29yaWdpbiwgRnJlcXVl
bnRlZEJsb2NrKG1fYmxvY2spKTsKKyAgICAgICAgaW50TWluQ2FzZS0+YXBwZW5kTmV3PFZhbHVl
PihtX3Byb2MsIEp1bXAsIG1fb3JpZ2luKTsKKyAgICAgICAgaW50TWluQ2FzZS0+c2V0U3VjY2Vz
c29ycyhGcmVxdWVudGVkQmxvY2sobV9ibG9jaykpOwogCiAgICAgICAgIFZhbHVlKiBwaGkgPSBt
X2luc2VydGlvblNldC5pbnNlcnQ8VmFsdWU+KAogICAgICAgICAgICAgbV9pbmRleCwgUGhpLCBt
X3ZhbHVlLT50eXBlKCksIG1fb3JpZ2luKTsKQEAgLTI3MiwxMSArMjgyLDExMSBAQCBwcml2YXRl
OgogICAgIH0KIAogICAgIHZvaWQgcmVjdXJzaXZlbHlCdWlsZFN3aXRjaCgKLSAgICAgICAgY29u
c3QgVmVjdG9yPFN3aXRjaENhc2U+JiBjYXNlcywgdW5zaWduZWQgc3RhcnQsIGJvb2wgaGFyZFN0
YXJ0LCB1bnNpZ25lZCBlbmQsCi0gICAgICAgIEJhc2ljQmxvY2sqIGJlZm9yZSkKKyAgICAgICAg
Y29uc3QgVmVjdG9yPFN3aXRjaENhc2U+JiBjYXNlcywgRnJlcXVlbnRlZEJsb2NrIGZhbGxUaHJv
dWdoLCB1bnNpZ25lZCBzdGFydCwgYm9vbCBoYXJkU3RhcnQsCisgICAgICAgIHVuc2lnbmVkIGVu
ZCwgQmFzaWNCbG9jayogYmVmb3JlKQogICAgIHsKLSAgICAgICAgLy8gRklYTUU6IEFkZCB0YWJs
ZS1iYXNlZCBzd2l0Y2ggbG93ZXJpbmcuCi0gICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTExNDEKKyAgICAgICAgVmFsdWUqIGNoaWxkID0gbV92YWx1
ZS0+Y2hpbGQoMCk7CisgICAgICAgIFR5cGUgdHlwZSA9IGNoaWxkLT50eXBlKCk7CisgICAgICAg
IAorICAgICAgICAvLyBJdCdzIGEgZ29vZCBpZGVhIHRvIHVzZSBhIHRhYmxlLWJhc2VkIHN3aXRj
aCBpbiBzb21lIGNhc2VzOiB0aGUgbnVtYmVyIG9mIGNhc2VzIGhhcyB0byBiZQorICAgICAgICAv
LyBsYXJnZSBlbm91Z2ggYW5kIHRoZXkgaGF2ZSB0byBiZSBkZW5zZSBlbm91Z2guIFRoaXMgY291
bGQgcHJvYmFibHkgYmUgaW1wcm92ZWQgYSBsb3QuIEZvcgorICAgICAgICAvLyBleGFtcGxlLCB3
ZSBjb3VsZCBzdGlsbCB1c2UgYSBqdW1wIHRhYmxlIGluIGNhc2VzIHdoZXJlIHRoZSBpbnB1dHMg
YXJlIHNwYXJzZSBzbyBsb25nIGFzIHdlCisgICAgICAgIC8vIHNoaWZ0IG9mZiB0aGUgdW5pbnRl
cmVzdGluZyBiaXRzLiBPbiB0aGUgb3RoZXIgaGFuZCwgaXQncyBub3QgY2xlYXIgdGhhdCB0aGlz
IHdvdWxkCisgICAgICAgIC8vIGFjdHVhbGx5IGJlIGFueSBiZXR0ZXIgdGhhbiB3aGF0IHdlIGhh
dmUgZG9uZSBoZXJlIGFuZCBpdCdzIG5vdCBjbGVhciB0aGF0IGl0IHdvdWxkIGJlCisgICAgICAg
IC8vIGJldHRlciB0aGFuIGEgYmluYXJ5IHN3aXRjaC4KKyAgICAgICAgY29uc3QgdW5zaWduZWQg
bWluQ2FzZXNGb3JUYWJsZSA9IDc7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGRlbnNpdHlMaW1p
dCA9IDQ7CisgICAgICAgIGlmIChlbmQgLSBzdGFydCA+PSBtaW5DYXNlc0ZvclRhYmxlKSB7Cisg
ICAgICAgICAgICBpbnQ2NF90IGZpcnN0VmFsdWUgPSBjYXNlc1tzdGFydF0uY2FzZVZhbHVlKCk7
CisgICAgICAgICAgICBpbnQ2NF90IGxhc3RWYWx1ZSA9IGNhc2VzW2VuZCAtIDFdLmNhc2VWYWx1
ZSgpOworICAgICAgICAgICAgaWYgKChsYXN0VmFsdWUgLSBmaXJzdFZhbHVlICsgMSkgLyBjYXNl
cy5zaXplKCkgPCBkZW5zaXR5TGltaXQpIHsKKyAgICAgICAgICAgICAgICBCYXNpY0Jsb2NrKiBz
d2l0Y2hCbG9jayA9IG1fYmxvY2tJbnNlcnRpb25TZXQuaW5zZXJ0QWZ0ZXIobV9ibG9jayk7Cisg
ICAgICAgICAgICAgICAgVmFsdWUqIGluZGV4ID0gYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+KAor
ICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIFN1YiwgbV9vcmlnaW4sIGNoaWxkLAorICAgICAg
ICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZEludENvbnN0YW50KG1fcHJvYywgbV9vcmlnaW4s
IHR5cGUsIGZpcnN0VmFsdWUpKTsKKyAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxW
YWx1ZT4oCisgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgQnJhbmNoLCBtX29yaWdpbiwKKyAg
ICAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAg
ICAgICAgICAgICAgbV9wcm9jLCBBYm92ZSwgbV9vcmlnaW4sIGluZGV4LAorICAgICAgICAgICAg
ICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmRJbnRDb25zdGFudChtX3Byb2MsIG1fb3JpZ2luLCB0
eXBlLCBsYXN0VmFsdWUgLSBmaXJzdFZhbHVlKSkpOworICAgICAgICAgICAgICAgIGJlZm9yZS0+
c2V0U3VjY2Vzc29ycyhmYWxsVGhyb3VnaCwgRnJlcXVlbnRlZEJsb2NrKHN3aXRjaEJsb2NrKSk7
CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgc2l6ZV90IHRhYmxlU2l6ZSA9IGxh
c3RWYWx1ZSAtIGZpcnN0VmFsdWUgKyAxOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAg
ICAgIGlmIChpbmRleC0+dHlwZSgpICE9IHBvaW50ZXJUeXBlKCkgJiYgaW5kZXgtPnR5cGUoKSA9
PSBJbnQzMikKKyAgICAgICAgICAgICAgICAgICAgaW5kZXggPSBzd2l0Y2hCbG9jay0+YXBwZW5k
TmV3PFZhbHVlPihtX3Byb2MsIFpFeHQzMiwgbV9vcmlnaW4sIGluZGV4KTsKKyAgICAgICAgICAg
ICAgICAKKyAgICAgICAgICAgICAgICBQYXRjaHBvaW50VmFsdWUqIHBhdGNocG9pbnQgPQorICAg
ICAgICAgICAgICAgICAgICBzd2l0Y2hCbG9jay0+YXBwZW5kTmV3PFBhdGNocG9pbnRWYWx1ZT4o
bV9wcm9jLCBWb2lkLCBtX29yaWdpbik7CisKKyAgICAgICAgICAgICAgICAvLyBFdmVuIHRob3Vn
aCB0aGlzIGxvYWRzIGZyb20gdGhlIGp1bXAgdGFibGUsIHRoZSBqdW1wIHRhYmxlIGlzIGltbXV0
YWJsZS4gRm9yIHRoZQorICAgICAgICAgICAgICAgIC8vIHB1cnBvc2Ugb2YgYWxpYXMgYW5hbHlz
aXMsIHJlYWRpbmcgc29tZXRoaW5nIGltbXV0YWJsZSBpcyBsaWtlIHJlYWRpbmcgbm90aGluZy4K
KyAgICAgICAgICAgICAgICBwYXRjaHBvaW50LT5lZmZlY3RzID0gRWZmZWN0cygpOworICAgICAg
ICAgICAgICAgIHBhdGNocG9pbnQtPmVmZmVjdHMudGVybWluYWwgPSB0cnVlOworICAgICAgICAg
ICAgICAgIAorICAgICAgICAgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZFNvbWVSZWdpc3Rlcihp
bmRleCk7CisgICAgICAgICAgICAgICAgcGF0Y2hwb2ludC0+bnVtR1BTY3JhdGNoUmVnaXN0ZXJz
Kys7CisgICAgICAgICAgICAgICAgLy8gVGVjaG5pY2FsbHksIHdlIGRvbid0IGhhdmUgdG8gY2xv
YmJlciBtYWNybyByZWdpc3RlcnMgb24gWDg2XzY0LiBUaGlzIGlzIHByb2JhYmx5CisgICAgICAg
ICAgICAgICAgLy8gT0sgdGhvdWdoLgorICAgICAgICAgICAgICAgIHBhdGNocG9pbnQtPmNsb2Ji
ZXIoUmVnaXN0ZXJTZXQ6Om1hY3JvU2NyYXRjaFJlZ2lzdGVycygpKTsKKyAgICAgICAgICAgICAg
ICAKKyAgICAgICAgICAgICAgICBCaXRWZWN0b3IgaGFuZGxlZEluZGljZXM7CisgICAgICAgICAg
ICAgICAgZm9yICh1bnNpZ25lZCBpID0gc3RhcnQ7IGkgPCBlbmQ7ICsraSkgeworICAgICAgICAg
ICAgICAgICAgICBGcmVxdWVudGVkQmxvY2sgYmxvY2sgPSBjYXNlc1tpXS50YXJnZXQoKTsKKyAg
ICAgICAgICAgICAgICAgICAgaW50NjRfdCB2YWx1ZSA9IGNhc2VzW2ldLmNhc2VWYWx1ZSgpOwor
ICAgICAgICAgICAgICAgICAgICBzd2l0Y2hCbG9jay0+YXBwZW5kU3VjY2Vzc29yKGJsb2NrKTsK
KyAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGluZGV4ID0gdmFsdWUgLSBmaXJzdFZhbHVlOwor
ICAgICAgICAgICAgICAgICAgICBBU1NFUlQoIWhhbmRsZWRJbmRpY2VzLmdldChpbmRleCkpOwor
ICAgICAgICAgICAgICAgICAgICBoYW5kbGVkSW5kaWNlcy5zZXQoaW5kZXgpOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBib29sIGhhc1VuaGFu
ZGxlZEluZGV4ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IHRhYmxlU2l6ZTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghaGFuZGxlZElu
ZGljZXMuZ2V0KGkpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBoYXNVbmhhbmRsZWRJbmRl
eCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAg
ICAgICBpZiAoaGFzVW5oYW5kbGVkSW5kZXgpCisgICAgICAgICAgICAgICAgICAgIHN3aXRjaEJs
b2NrLT5hcHBlbmRTdWNjZXNzb3IoZmFsbFRocm91Z2gpOworCisgICAgICAgICAgICAgICAgcGF0
Y2hwb2ludC0+c2V0R2VuZXJhdG9yKAorICAgICAgICAgICAgICAgICAgICBbPV0gKENDYWxsSGVs
cGVycyYgaml0LCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmIHBhcmFtcykgeworICAg
ICAgICAgICAgICAgICAgICAgICAgQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlIGFsbG93
U2NyYXRjaChqaXQpOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAg
ICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIqIGp1bXBUYWJsZSA9IHN0YXRpY19jYXN0PE1h
Y3JvQXNzZW1ibGVyQ29kZVB0cio+KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFt
cy5wcm9jKCkuYWRkRGF0YVNlY3Rpb24oc2l6ZW9mKE1hY3JvQXNzZW1ibGVyQ29kZVB0cikgKiB0
YWJsZVNpemUpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAg
ICAgICAgR1BSUmVnIGluZGV4ID0gcGFyYW1zWzBdLmdwcigpOworICAgICAgICAgICAgICAgICAg
ICAgICAgR1BSUmVnIHNjcmF0Y2ggPSBwYXJhbXMuZ3BTY3JhdGNoKDApOworICAgICAgICAgICAg
ICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBl
cnM6OlRydXN0ZWRJbW1QdHIoanVtcFRhYmxlKSwgc2NyYXRjaCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBqaXQuanVtcChDQ2FsbEhlbHBlcnM6OkJhc2VJbmRleChzY3JhdGNoLCBpbmRleCwg
Q0NhbGxIZWxwZXJzOjp0aW1lc1B0cigpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZXNlIGxhYmVscyBhcmUgZ3VhcmFudGVlZCB0byBi
ZSBwb3B1bGF0ZWQgYmVmb3JlIGVpdGhlciBsYXRlIHBhdGhzIG9yCisgICAgICAgICAgICAgICAg
ICAgICAgICAvLyBsaW5rIHRhc2tzIHJ1bi4KKyAgICAgICAgICAgICAgICAgICAgICAgIFZlY3Rv
cjxCb3g8Q0NhbGxIZWxwZXJzOjpMYWJlbD4+IGxhYmVscyA9IHBhcmFtcy5zdWNjZXNzb3JMYWJl
bHMoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAg
aml0LmFkZExpbmtUYXNrKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFs9XSAoTGlua0J1
ZmZlciYgbGlua0J1ZmZlcikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
aGFzVW5oYW5kbGVkSW5kZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IE1hY3JvQXNzZW1ibGVyQ29kZVB0ciBmYWxsVGhyb3VnaCA9CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbGlua0J1ZmZlci5sb2NhdGlvbk9mKCpsYWJlbHMubGFzdCgp
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9
IHRhYmxlU2l6ZTsgaS0tOykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBqdW1wVGFibGVbaV0gPSBmYWxsVGhyb3VnaDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbGFiZWxJbmRleCA9IDA7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgdGFibGVJbmRleCA6IGhhbmRsZWRJbmRp
Y2VzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqdW1wVGFibGVbdGFi
bGVJbmRleF0gPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmtC
dWZmZXIubG9jYXRpb25PZigqbGFiZWxzW2xhYmVsSW5kZXgrK10pOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQogICAgICAgICAKICAgICAgICAgLy8gU2VlIGNvbW1lbnRzIGluIGppdC9C
aW5hcnlTd2l0Y2guY3BwIGZvciBhIGp1c3RpZmljYXRpb24gb2YgdGhpcyBhbGdvcml0aG0uIFRo
ZSBvbmx5CiAgICAgICAgIC8vIHRoaW5nIHdlIGRvIGRpZmZlcmVudGx5IGlzIHRoYXQgd2UgZG9u
J3QgdXNlIHJhbmRvbW5lc3MuCkBAIC0zMDQsMjUgKzQxNCwyMyBAQCBwcml2YXRlOgogICAgICAg
ICAgICAgCiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGltaXQ7ICsraSkg
ewogICAgICAgICAgICAgICAgIEJhc2ljQmxvY2sqIG5leHRDaGVjayA9IG1fYmxvY2tJbnNlcnRp
b25TZXQuaW5zZXJ0QWZ0ZXIobV9ibG9jayk7Ci0gICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgQnJhbmNoLCBtX29yaWdpbiwKICAg
ICAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+KAotICAgICAgICAgICAg
ICAgICAgICAgICAgbV9wcm9jLCBFcXVhbCwgbV9vcmlnaW4sIG1fdmFsdWUtPmNoaWxkKDApLAor
ICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBFcXVhbCwgbV9vcmlnaW4sIGNoaWxkLAog
ICAgICAgICAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmRJbnRDb25zdGFudCgKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLCBtX3ZhbHVlLT5jaGlsZCgw
KS0+dHlwZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2VzW3N0YXJ0ICsgaV0u
Y2FzZVZhbHVlKCkpKSwKLSAgICAgICAgICAgICAgICAgICAgY2FzZXNbc3RhcnQgKyBpXS50YXJn
ZXQoKSwgRnJlcXVlbnRlZEJsb2NrKG5leHRDaGVjaykpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1fcHJvYywgbV9vcmlnaW4sIHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY2FzZXNbc3RhcnQgKyBpXS5jYXNlVmFsdWUoKSkpKTsKKyAgICAgICAgICAgICAgICBiZWZv
cmUtPnNldFN1Y2Nlc3NvcnMoY2FzZXNbc3RhcnQgKyBpXS50YXJnZXQoKSwgRnJlcXVlbnRlZEJs
b2NrKG5leHRDaGVjaykpOwogCiAgICAgICAgICAgICAgICAgYmVmb3JlID0gbmV4dENoZWNrOwog
ICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBpZiAoYWxsQ29uc2VjdXRpdmUpIHsKLSAgICAg
ICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAotICAgICAgICAgICAg
ICAgICAgICBtX3Byb2MsIEp1bXAsIG1fb3JpZ2luLCBjYXNlc1tlbmQgLSAxXS50YXJnZXQoKSk7
Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCi0gICAgICAgICAgICAgICAgICAgIG1fcHJvYywgSnVtcCwgbV9vcmln
aW4sIG1fdmFsdWUtPmFzPFN3aXRjaFZhbHVlPigpLT5mYWxsVGhyb3VnaCgpKTsKLSAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIEp1bXAs
IG1fb3JpZ2luKTsKKyAgICAgICAgICAgIGlmIChhbGxDb25zZWN1dGl2ZSkKKyAgICAgICAgICAg
ICAgICBiZWZvcmUtPnNldFN1Y2Nlc3NvcnMoY2FzZXNbZW5kIC0gMV0udGFyZ2V0KCkpOworICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGJlZm9yZS0+c2V0U3VjY2Vzc29ycyhmYWxs
VGhyb3VnaCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIApAQCAtMzMxLDE3ICs0
MzksMTcgQEAgcHJpdmF0ZToKICAgICAgICAgQmFzaWNCbG9jayogbGVmdCA9IG1fYmxvY2tJbnNl
cnRpb25TZXQuaW5zZXJ0QWZ0ZXIobV9ibG9jayk7CiAgICAgICAgIEJhc2ljQmxvY2sqIHJpZ2h0
ID0gbV9ibG9ja0luc2VydGlvblNldC5pbnNlcnRBZnRlcihtX2Jsb2NrKTsKIAotICAgICAgICBi
ZWZvcmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICBiZWZvcmUtPmFwcGVuZE5l
dzxWYWx1ZT4oCiAgICAgICAgICAgICBtX3Byb2MsIEJyYW5jaCwgbV9vcmlnaW4sCiAgICAgICAg
ICAgICBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4oCi0gICAgICAgICAgICAgICAgbV9wcm9jLCBM
ZXNzVGhhbiwgbV9vcmlnaW4sIG1fdmFsdWUtPmNoaWxkKDApLAorICAgICAgICAgICAgICAgIG1f
cHJvYywgTGVzc1RoYW4sIG1fb3JpZ2luLCBjaGlsZCwKICAgICAgICAgICAgICAgICBiZWZvcmUt
PmFwcGVuZEludENvbnN0YW50KAotICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIG1fb3JpZ2lu
LCBtX3ZhbHVlLT5jaGlsZCgwKS0+dHlwZSgpLAotICAgICAgICAgICAgICAgICAgICBjYXNlc1tt
ZWRpYW5JbmRleF0uY2FzZVZhbHVlKCkpKSwKLSAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhs
ZWZ0KSwgRnJlcXVlbnRlZEJsb2NrKHJpZ2h0KSk7CisgICAgICAgICAgICAgICAgICAgIG1fcHJv
YywgbV9vcmlnaW4sIHR5cGUsCisgICAgICAgICAgICAgICAgICAgIGNhc2VzW21lZGlhbkluZGV4
XS5jYXNlVmFsdWUoKSkpKTsKKyAgICAgICAgYmVmb3JlLT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50
ZWRCbG9jayhsZWZ0KSwgRnJlcXVlbnRlZEJsb2NrKHJpZ2h0KSk7CiAKLSAgICAgICAgcmVjdXJz
aXZlbHlCdWlsZFN3aXRjaChjYXNlcywgc3RhcnQsIGhhcmRTdGFydCwgbWVkaWFuSW5kZXgsIGxl
ZnQpOwotICAgICAgICByZWN1cnNpdmVseUJ1aWxkU3dpdGNoKGNhc2VzLCBtZWRpYW5JbmRleCwg
dHJ1ZSwgZW5kLCByaWdodCk7CisgICAgICAgIHJlY3Vyc2l2ZWx5QnVpbGRTd2l0Y2goY2FzZXMs
IGZhbGxUaHJvdWdoLCBzdGFydCwgaGFyZFN0YXJ0LCBtZWRpYW5JbmRleCwgbGVmdCk7CisgICAg
ICAgIHJlY3Vyc2l2ZWx5QnVpbGRTd2l0Y2goY2FzZXMsIGZhbGxUaHJvdWdoLCBtZWRpYW5JbmRl
eCwgdHJ1ZSwgZW5kLCByaWdodCk7CiAgICAgfQogICAgIAogICAgIFByb2NlZHVyZSYgbV9wcm9j
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAJKHJldmlz
aW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xNTUsNyArMTU1LDYgQEAgcHVibGljOgogICAgICAgICAgICAg
fQogCiAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCB0aGUgc3VjY2Vzc29ycyBhcmUgc2V0
IHVwIGNvcnJlY3RseS4KLSAgICAgICAgICAgIEFTU0VSVChibG9jay0+c3VjY2Vzc29ycygpLnNp
emUoKSA8PSAyKTsKICAgICAgICAgICAgIGZvciAoQjM6OkZyZXF1ZW50ZWRCbG9jayBzdWNjZXNz
b3IgOiBibG9jay0+c3VjY2Vzc29ycygpKSB7CiAgICAgICAgICAgICAgICAgbV9ibG9ja1RvQmxv
Y2tbYmxvY2tdLT5zdWNjZXNzb3JzKCkuYXBwZW5kKAogICAgICAgICAgICAgICAgICAgICBBaXI6
OkZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrVG9CbG9ja1tzdWNjZXNzb3IuYmxvY2soKV0sIHN1Y2Nl
c3Nvci5mcmVxdWVuY3koKSkpOwpAQCAtMjQ0MSw3ICsyNDQwLDcgQEAgcHJpdmF0ZToKICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotCisgICAgICAgICAgICAK
ICAgICAgICAgY2FzZSBCMzo6T29wczogewogICAgICAgICAgICAgYXBwZW5kKEFpcjo6T29wcyk7
CiAgICAgICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNN
YXRoRXh0cmFzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNN
YXRoRXh0cmFzLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzTWF0aEV4dHJhcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzMsNyArMzMsNiBAQAogI2luY2x1
ZGUgIkIzQ29uc3QzMlZhbHVlLmgiCiAjaW5jbHVkZSAiQjNDb25zdERvdWJsZVZhbHVlLmgiCiAj
aW5jbHVkZSAiQjNDb25zdFB0clZhbHVlLmgiCi0jaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIK
ICNpbmNsdWRlICJCM1Vwc2lsb25WYWx1ZS5oIgogI2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgi
CiAjaW5jbHVkZSAiTWF0aENvbW1vbi5oIgpAQCAtNTIsMTAgKzUxLDggQEAgc3RkOjpwYWlyPEJh
c2ljQmxvY2sqLCBWYWx1ZSo+IHBvd0RvdWJsZQogICAgIFZhbHVlKiBzaG91bGRHb1Nsb3dQYXRo
ID0gc3RhcnQtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvY2VkdXJlLCBBYm92ZSwgb3JpZ2luLAogICAg
ICAgICB5LAogICAgICAgICBzdGFydC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvY2VkdXJl
LCBvcmlnaW4sIG1heEV4cG9uZW50Rm9ySW50ZWdlck1hdGhQb3cpKTsKLSAgICBzdGFydC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCi0gICAgICAgIHByb2NlZHVyZSwgQnJhbmNoLCBvcmlnaW4s
Ci0gICAgICAgIHNob3VsZEdvU2xvd1BhdGgsCi0gICAgICAgIEZyZXF1ZW50ZWRCbG9jayhmdW5j
dGlvbkNhbGxDYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3BQcmVIZWFkZXJDYXNlKSk7CisgICAg
c3RhcnQtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvY2VkdXJlLCBCcmFuY2gsIG9yaWdpbiwgc2hvdWxk
R29TbG93UGF0aCk7CisgICAgc3RhcnQtPnNldFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2NrKGZ1
bmN0aW9uQ2FsbENhc2UpLCBGcmVxdWVudGVkQmxvY2sobG9vcFByZUhlYWRlckNhc2UpKTsKIAog
ICAgIC8vIEZ1bmN0aW9uIGNhbGwuCiAgICAgVmFsdWUqIHlBc0RvdWJsZSA9IGZ1bmN0aW9uQ2Fs
bENhc2UtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvY2VkdXJlLCBJVG9ELCBvcmlnaW4sIHkpOwpAQCAt
NjUsNyArNjIsOCBAQCBzdGQ6OnBhaXI8QmFzaWNCbG9jayosIFZhbHVlKj4gcG93RG91YmxlCiAg
ICAgICAgIGZ1bmN0aW9uQ2FsbENhc2UtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jZWR1
cmUsIG9yaWdpbiwgYml0d2lzZV9jYXN0PHZvaWQqPihwb3dEb3VibGUpKSwKICAgICAgICAgeCwg
eUFzRG91YmxlKTsKICAgICBVcHNpbG9uVmFsdWUqIHBvd1Jlc3VsdFVwc2lsb24gPSBmdW5jdGlv
bkNhbGxDYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jZWR1cmUsIG9yaWdpbiwgcG93
UmVzdWx0KTsKLSAgICBmdW5jdGlvbkNhbGxDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jZWR1cmUsIEp1bXAsIG9yaWdpbiwgRnJlcXVlbnRlZEJsb2NrKGNvbnRpbnVhdGlvbikpOwor
ICAgIGZ1bmN0aW9uQ2FsbENhc2UtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvY2VkdXJlLCBKdW1wLCBv
cmlnaW4pOworICAgIGZ1bmN0aW9uQ2FsbENhc2UtPnNldFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJs
b2NrKGNvbnRpbnVhdGlvbikpOwogCiAgICAgLy8gTG9vcCBwcmUtaGVhZGVyLgogICAgIFZhbHVl
KiBpbml0aWFsUmVzdWx0ID0gbG9vcFByZUhlYWRlckNhc2UtPmFwcGVuZE5ldzxDb25zdERvdWJs
ZVZhbHVlPihwcm9jZWR1cmUsIG9yaWdpbiwgMS4pOwpAQCAtNzMsNyArNzEsOCBAQCBzdGQ6OnBh
aXI8QmFzaWNCbG9jayosIFZhbHVlKj4gcG93RG91YmxlCiAgICAgVXBzaWxvblZhbHVlKiBpbml0
aWFsUmVzdWx0VmFsdWUgPSBsb29wUHJlSGVhZGVyQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1
ZT4ocHJvY2VkdXJlLCBvcmlnaW4sIGluaXRpYWxSZXN1bHQpOwogICAgIFVwc2lsb25WYWx1ZSog
aW5pdGlhbFNxdWFyZWRJbnB1dCA9IGxvb3BQcmVIZWFkZXJDYXNlLT5hcHBlbmROZXc8VXBzaWxv
blZhbHVlPihwcm9jZWR1cmUsIG9yaWdpbiwgeCk7CiAgICAgVXBzaWxvblZhbHVlKiBpbml0aWFs
TG9vcENvdW50ZXIgPSBsb29wUHJlSGVhZGVyQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4o
cHJvY2VkdXJlLCBvcmlnaW4sIHkpOwotICAgIGxvb3BQcmVIZWFkZXJDYXNlLT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jZWR1cmUsIEp1bXAsIG9yaWdpbiwgRnJlcXVlbnRlZEJsb2NrKGxv
b3BUZXN0Rm9yRXZlbkNhc2UpKTsKKyAgICBsb29wUHJlSGVhZGVyQ2FzZS0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jZWR1cmUsIEp1bXAsIG9yaWdpbik7CisgICAgbG9vcFByZUhlYWRlckNhc2UtPnNl
dFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2NrKGxvb3BUZXN0Rm9yRXZlbkNhc2UpKTsKIAogICAg
IC8vIFRlc3QgaWYgd2hhdCBpcyBsZWZ0IG9mIHRoZSBjb3VudGVyIGlzIGV2ZW4uCiAgICAgVmFs
dWUqIGluTG9vcENvdW50ZXIgPSBsb29wVGVzdEZvckV2ZW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+
KHByb2NlZHVyZSwgUGhpLCBJbnQzMiwgb3JpZ2luKTsKQEAgLTgxLDEwICs4MCw4IEBAIHN0ZDo6
cGFpcjxCYXNpY0Jsb2NrKiwgVmFsdWUqPiBwb3dEb3VibGUKICAgICBWYWx1ZSogbGFzdENvdW50
ZXJCaXQgPSBsb29wVGVzdEZvckV2ZW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+KHByb2NlZHVyZSwg
Qml0QW5kLCBvcmlnaW4sCiAgICAgICAgIGluTG9vcENvdW50ZXIsCiAgICAgICAgIGxvb3BUZXN0
Rm9yRXZlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2NlZHVyZSwgb3JpZ2luLCAx
KSk7Ci0gICAgbG9vcFRlc3RGb3JFdmVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCi0g
ICAgICAgIHByb2NlZHVyZSwgQnJhbmNoLCBvcmlnaW4sCi0gICAgICAgIGxhc3RDb3VudGVyQml0
LAotICAgICAgICBGcmVxdWVudGVkQmxvY2sobG9vcE9kZCksIEZyZXF1ZW50ZWRCbG9jayhsb29w
RXZlbk9kZCkpOworICAgIGxvb3BUZXN0Rm9yRXZlbkNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
Y2VkdXJlLCBCcmFuY2gsIG9yaWdpbiwgbGFzdENvdW50ZXJCaXQpOworICAgIGxvb3BUZXN0Rm9y
RXZlbkNhc2UtPnNldFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2NrKGxvb3BPZGQpLCBGcmVxdWVu
dGVkQmxvY2sobG9vcEV2ZW5PZGQpKTsKIAogICAgIC8vIENvdW50ZXIgaXMgb2RkLgogICAgIFZh
bHVlKiBpbkxvb3BSZXN1bHQgPSBsb29wT2RkLT5hcHBlbmROZXc8VmFsdWU+KHByb2NlZHVyZSwg
UGhpLCBEb3VibGUsIG9yaWdpbik7CkBAIC05NCw3ICs5MSw4IEBAIHN0ZDo6cGFpcjxCYXNpY0Js
b2NrKiwgVmFsdWUqPiBwb3dEb3VibGUKICAgICB1cGRhdGVkTG9vcFJlc3VsdFVwc2lsb24tPnNl
dFBoaShpbkxvb3BSZXN1bHQpOwogICAgIFVwc2lsb25WYWx1ZSogdXBkYXRlZExvb3BSZXN1bHQg
PSBsb29wT2RkLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jZWR1cmUsIG9yaWdpbiwgdXBk
YXRlZFJlc3VsdCk7CiAKLSAgICBsb29wT2RkLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
ZWR1cmUsIEp1bXAsIG9yaWdpbiwgRnJlcXVlbnRlZEJsb2NrKGxvb3BFdmVuT2RkKSk7CisgICAg
bG9vcE9kZC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jZWR1cmUsIEp1bXAsIG9yaWdpbik7CisgICAg
bG9vcE9kZC0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2sobG9vcEV2ZW5PZGQpKTsKIAog
ICAgIC8vIEV2ZW4gdmFsdWUgYW5kIGZvbGxvd2luZyB0aGUgT2RkLgogICAgIFZhbHVlKiBzcXVh
cmVkSW5wdXQgPSBsb29wRXZlbk9kZC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jZWR1cmUsIE11bCwg
b3JpZ2luLCBpbkxvb3BTcXVhcmVkSW5wdXQsIGluTG9vcFNxdWFyZWRJbnB1dCk7CkBAIC0xMDks
MTAgKzEwNyw4IEBAIHN0ZDo6cGFpcjxCYXNpY0Jsb2NrKiwgVmFsdWUqPiBwb3dEb3VibGUKICAg
ICBpbml0aWFsTG9vcENvdW50ZXItPnNldFBoaShpbkxvb3BDb3VudGVyKTsKICAgICB1cGRhdGVk
Q291bnRlclVwc2lsb24tPnNldFBoaShpbkxvb3BDb3VudGVyKTsKIAotICAgIGxvb3BFdmVuT2Rk
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgcHJvY2VkdXJlLCBCcmFuY2gsIG9y
aWdpbiwKLSAgICAgICAgdXBkYXRlZENvdW50ZXIsCi0gICAgICAgIEZyZXF1ZW50ZWRCbG9jayhs
b29wVGVzdEZvckV2ZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGNvbnRpbnVhdGlvbikpOworICAg
IGxvb3BFdmVuT2RkLT5hcHBlbmROZXc8VmFsdWU+KHByb2NlZHVyZSwgQnJhbmNoLCBvcmlnaW4s
IHVwZGF0ZWRDb3VudGVyKTsKKyAgICBsb29wRXZlbk9kZC0+c2V0U3VjY2Vzc29ycyhGcmVxdWVu
dGVkQmxvY2sobG9vcFRlc3RGb3JFdmVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhjb250aW51YXRp
b24pKTsKIAogICAgIC8vIElubGluZSBsb29wLgogICAgIFZhbHVlKiBmaW5hbFJlc3VsdFBoaSA9
IGNvbnRpbnVhdGlvbi0+YXBwZW5kTmV3PFZhbHVlPihwcm9jZWR1cmUsIFBoaSwgRG91YmxlLCBv
cmlnaW4pOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzT3Bjb2RlLmgJKHJldmlzaW9uIDIw
MjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM09wY29kZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yMDcsMjEgKzIwNywyMSBAQCBlbnVtIE9wY29kZSA6IGludDE2X3QgewogICAgIFVw
c2lsb24sIC8vIFRoaXMgdXNlcyB0aGUgVXBzaWxvblZhbHVlIGNsYXNzLgogICAgIFBoaSwKIAot
ICAgIC8vIEp1bXAuIFVzZXMgdGhlIENvbnRyb2xWYWx1ZSBjbGFzcy4KKyAgICAvLyBKdW1wLgog
ICAgIEp1bXAsCiAgICAgCi0gICAgLy8gUG9seW1vcnBoaWMgYnJhbmNoLCB1c2FibGUgd2l0aCBh
bnkgaW50ZWdlciB0eXBlLiBCcmFuY2hlcyBpZiBub3QgZXF1YWwgdG8gemVyby4gVXNlcyB0aGUK
LSAgICAvLyBDb250cm9sVmFsdWUgY2xhc3MsIHdpdGggdGhlIDAtaW5kZXggc3VjY2Vzc29yIGJl
aW5nIHRoZSB0cnVlIHN1Y2Nlc3Nvci4KKyAgICAvLyBQb2x5bW9ycGhpYyBicmFuY2gsIHVzYWJs
ZSB3aXRoIGFueSBpbnRlZ2VyIHR5cGUuIEJyYW5jaGVzIGlmIG5vdCBlcXVhbCB0byB6ZXJvLiBU
aGUgMC1pbmRleAorICAgIC8vIHN1Y2Nlc3NvciBpcyB0aGUgdHJ1ZSBzdWNjZXNzb3IuCiAgICAg
QnJhbmNoLAogCiAgICAgLy8gU3dpdGNoLiBTd2l0Y2hlcyBvdmVyIGVpdGhlciBJbnQzMiBvciBJ
bnQ2NC4gVXNlcyB0aGUgU3dpdGNoVmFsdWUgY2xhc3MuCiAgICAgU3dpdGNoLAotCisgICAgCiAg
ICAgLy8gUmV0dXJuLiBOb3RlIHRoYXQgQjMgcHJvY2VkdXJlcyBkb24ndCBrbm93IHRoZWlyIHJl
dHVybiB0eXBlLCBzbyB0aGlzIGNhbiBqdXN0IHJldHVybiBhbnkKLSAgICAvLyB0eXBlLiBVc2Vz
IHRoZSBDb250cm9sVmFsdWUgY2xhc3MuCisgICAgLy8gdHlwZS4KICAgICBSZXR1cm4sCiAKLSAg
ICAvLyBUaGlzIGlzIGEgdGVybWluYWwgdGhhdCBpbmRpY2F0ZXMgdGhhdCB3ZSB3aWxsIG5ldmVy
IGdldCBoZXJlLiBVc2VzIHRoZSBDb250cm9sVmFsdWUgY2xhc3MuCisgICAgLy8gVGhpcyBpcyBh
IHRlcm1pbmFsIHRoYXQgaW5kaWNhdGVzIHRoYXQgd2Ugd2lsbCBuZXZlciBnZXQgaGVyZS4KICAg
ICBPb3BzCiB9OwogCkBAIC0yNTksNiArMjU5LDIwIEBAIGlubGluZSBib29sIGlzQ29uc3RhbnQo
T3Bjb2RlIG9wY29kZSkKICAgICB9CiB9CiAKK2lubGluZSBib29sIGlzRGVmaW5pdGVseVRlcm1p
bmFsKE9wY29kZSBvcGNvZGUpCit7CisgICAgc3dpdGNoIChvcGNvZGUpIHsKKyAgICBjYXNlIEp1
bXA6CisgICAgY2FzZSBCcmFuY2g6CisgICAgY2FzZSBTd2l0Y2g6CisgICAgY2FzZSBPb3BzOgor
ICAgIGNhc2UgUmV0dXJuOgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBkZWZhdWx0OgorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQorCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMK
IAogbmFtZXNwYWNlIFdURiB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQYXRj
aHBvaW50U3BlY2lhbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzUGF0Y2hwb2ludFNwZWNpYWwuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNQYXRjaHBvaW50U3BlY2lhbC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTE0Niw2ICsxNDYsMTEgQEAgQ0NhbGxIZWxwZXJzOjpKdW1wIFBhdGNocG9pbnRTcGVjaWFsOjpn
ZQogICAgIHJldHVybiBDQ2FsbEhlbHBlcnM6Okp1bXAoKTsKIH0KIAorYm9vbCBQYXRjaHBvaW50
U3BlY2lhbDo6aXNUZXJtaW5hbChJbnN0JiBpbnN0KQoreworICAgIHJldHVybiBpbnN0Lm9yaWdp
bi0+YXM8UGF0Y2hwb2ludFZhbHVlPigpLT5lZmZlY3RzLnRlcm1pbmFsOworfQorCiB2b2lkIFBh
dGNocG9pbnRTcGVjaWFsOjpkdW1wSW1wbChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogewogICAg
IG91dC5wcmludCgiUGF0Y2hwb2ludCIpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzUGF0Y2hwb2ludFNwZWNpYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNQYXRjaHBvaW50U3BlY2lhbC5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNQYXRjaHBvaW50U3BlY2lhbC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU2
LDYgKzU2LDggQEAgcHJvdGVjdGVkOgogICAgIC8vIGdlbmVyYXRlcyB0aGUgc3RhY2ttYXAuIFN1
cGVyIGNyYXp5IGR1ZGUhCiAKICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgZ2VuZXJhdGUoQWlyOjpJ
bnN0JiwgQ0NhbGxIZWxwZXJzJiwgQWlyOjpHZW5lcmF0aW9uQ29udGV4dCYpIG92ZXJyaWRlOwor
ICAgIAorICAgIGJvb2wgaXNUZXJtaW5hbChBaXI6Okluc3QmKSBvdmVycmlkZTsKIAogICAgIHZv
aWQgZHVtcEltcGwoUHJpbnRTdHJlYW0mKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIGRlZXBE
dW1wSW1wbChQcmludFN0cmVhbSYpIGNvbnN0IG92ZXJyaWRlOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDgs
MzEgKzE0OCw2IEBAIHZvaWQgUHJvY2VkdXJlOjpyZXNldFZhbHVlT3duZXJzKCkKIAogdm9pZCBQ
cm9jZWR1cmU6OnJlc2V0UmVhY2hhYmlsaXR5KCkKIHsKLSAgICBpZiAoc2hvdWxkVmFsaWRhdGVJ
UigpKSB7Ci0gICAgICAgIC8vIFZhbGlkYXRlIHRoZSBiYXNpYyBwcm9wZXJ0aWVzIHRoYXQgd2Ug
bmVlZCBmb3IgcmVzZXR0aW5nIHJlYWNoYWJpbGl0eS4gV2Ugb2Z0ZW4gcmVzZXQKLSAgICAgICAg
Ly8gcmVhY2hhYmlsaXR5IGJlZm9yZSBJUiB2YWxpZGF0aW9uLCBzbyB3aXRob3V0IHRoaXMgbWlu
aS12YWxpZGF0aW9uLCB5b3Ugd291bGQgY3Jhc2ggaW5zaWRlCi0gICAgICAgIC8vIEIzOjpyZXNl
dFJlYWNoYWJpbGl0eSgpIHdpdGhvdXQgZ2V0dGluZyBhbnkgSVIgZHVtcC4KLQotICAgICAgICBC
YXNpY0Jsb2NrKiBiYWRCbG9jayA9IG51bGxwdHI7Ci0gICAgICAgIGZvciAoQmFzaWNCbG9jayog
YmxvY2sgOiAqdGhpcykgewotICAgICAgICAgICAgaWYgKCFibG9jay0+c2l6ZSgpKSB7Ci0gICAg
ICAgICAgICAgICAgYmFkQmxvY2sgPSBibG9jazsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKCFibG9jay0+bGFzdCgpLT5hczxDb250cm9s
VmFsdWU+KCkpIHsKLSAgICAgICAgICAgICAgICBiYWRCbG9jayA9IGJsb2NrOwotICAgICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGJh
ZEJsb2NrKSB7Ci0gICAgICAgICAgICBkYXRhTG9nKCJGQVRBTDogSW52YWxpZCBiYXNpYyBibG9j
ayAiLCAqYmFkQmxvY2ssICIgd2hpbGUgcnVubmluZyBQcm9jZWR1cmU6OnJlc2V0UmVhY2hhYmls
aXR5KCkuXG4iKTsKLSAgICAgICAgICAgIGRhdGFMb2coKnRoaXMpOwotICAgICAgICAgICAgUkVM
RUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgfQotICAgIH0KLSAgICAKICAgICBy
ZWNvbXB1dGVQcmVkZWNlc3NvcnMobV9ibG9ja3MpOwogICAgIAogICAgIC8vIFRoZSBjb21tb24g
Y2FzZSBpcyB0aGF0IHRoaXMgZG9lcyBub3QgZmluZCBhbnkgZGVhZCBibG9ja3MuCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUuaAkocmV2aXNpb24gMjAyODA5KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTIxOCw3ICsyMTgsMTAgQEAgcHVibGljOgogCiAgICAgY29uc3QgY2hhciogbGFzdFBoYXNlTmFt
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdFBoYXNlTmFtZTsgfQogCi0gICAgdm9pZCogYWRkRGF0
YVNlY3Rpb24oc2l6ZV90IHNpemUpOworICAgIC8vIEFsbG9jYXRlcyBhIHNsYWIgb2YgbWVtb3J5
IHRoYXQgd2lsbCBiZSBrZXB0IGFsaXZlIGJ5IGFueW9uZSB3aG8ga2VlcHMgdGhlIHJlc3VsdGlu
ZyBjb2RlCisgICAgLy8gYWxpdmUuIEdyZWF0IGZvciBjb21waWxlci1nZW5lcmF0ZWQgZGF0YSBz
ZWN0aW9ucywgbGlrZSBzd2l0Y2gganVtcCB0YWJsZXMgYW5kIGNvbnN0YW50IHBvb2xzLgorICAg
IC8vIFRoaXMgcmV0dXJucyBtZW1vcnkgdGhhdCBoYXMgYmVlbiB6ZXJvLWluaXRpYWxpemVkLgor
ICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQqIGFkZERhdGFTZWN0aW9uKHNpemVfdCk7CiAKICAg
ICBPcGFxdWVCeXByb2R1Y3RzJiBieXByb2R1Y3RzKCkgeyByZXR1cm4gKm1fYnlwcm9kdWN0czsg
fQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VTdHJlbmd0aC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGgu
Y3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNSZWR1
Y2VTdHJlbmd0aC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRl
ICJCM0Jhc2ljQmxvY2tJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNCbG9ja0luc2VydGlvblNldC5o
IgogI2luY2x1ZGUgIkIzQ29tcHV0ZURpdmlzaW9uTWFnaWMuaCIKLSNpbmNsdWRlICJCM0NvbnRy
b2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzRG9taW5hdG9ycy5oIgogI2luY2x1ZGUgIkIzSW5kZXhT
ZXQuaCIKICNpbmNsdWRlICJCM0luc2VydGlvblNldElubGluZXMuaCIKQEAgLTE3MTcsNyArMTcx
Niw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgLy8gUmVwbGFjZSB0aGUgcmVzdCBvZiB0
aGUgYmxvY2sgd2l0aCBhbiBPb3BzLgogICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9
IG1faW5kZXggKyAxOyBpIDwgbV9ibG9jay0+c2l6ZSgpIC0gMTsgKytpKQogICAgICAgICAgICAg
ICAgICAgICBtX2Jsb2NrLT5hdChpKS0+cmVwbGFjZVdpdGhCb3R0b20obV9pbnNlcnRpb25TZXQs
IG1faW5kZXgpOwotICAgICAgICAgICAgICAgIG1fYmxvY2stPmxhc3QoKS0+YXM8Q29udHJvbFZh
bHVlPigpLT5jb252ZXJ0VG9Pb3BzKCk7CisgICAgICAgICAgICAgICAgbV9ibG9jay0+bGFzdCgp
LT5yZXBsYWNlV2l0aE9vcHMobV9ibG9jayk7CiAgICAgICAgICAgICAgICAgbV9ibG9jay0+bGFz
dCgpLT5zZXRPcmlnaW4oY2hlY2tWYWx1ZS0+b3JpZ2luKCkpOwogCiAgICAgICAgICAgICAgICAg
Ly8gUmVwbGFjZSBvdXJzZWx2ZXMgbGFzdC4KQEAgLTE3NzMsNiArMTc3Miw3IEBAIHByaXZhdGU6
CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZS0+b3Bjb2RlKCkgPT0gU2VsZWN0CiAg
ICAgICAgICAgICAgICAgICAgICAgICAmJiAodmFsdWUtPmNoaWxkKDEpLT5pc0NvbnN0YW50KCkg
JiYgdmFsdWUtPmNoaWxkKDIpLT5pc0NvbnN0YW50KCkpOwogICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoc2VsZWN0KSB7CiAgICAgICAgICAgICAgICAg
c3BlY2lhbGl6ZVNlbGVjdChzZWxlY3QpOwogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTc4
MSw1MCArMTc4MSw0OCBAQCBwcml2YXRlOgogICAgICAgICB9CiAKICAgICAgICAgY2FzZSBCcmFu
Y2g6IHsKLSAgICAgICAgICAgIENvbnRyb2xWYWx1ZSogYnJhbmNoID0gbV92YWx1ZS0+YXM8Q29u
dHJvbFZhbHVlPigpOwotCiAgICAgICAgICAgICAvLyBUdXJuIHRoaXM6IEJyYW5jaChOb3RFcXVh
bCh4LCAwKSkKICAgICAgICAgICAgIC8vIEludG8gdGhpczogQnJhbmNoKHgpCi0gICAgICAgICAg
ICBpZiAoYnJhbmNoLT5jaGlsZCgwKS0+b3Bjb2RlKCkgPT0gTm90RXF1YWwgJiYgYnJhbmNoLT5j
aGlsZCgwKS0+Y2hpbGQoMSktPmlzSW50KDApKSB7Ci0gICAgICAgICAgICAgICAgYnJhbmNoLT5j
aGlsZCgwKSA9IGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDApOworICAgICAgICAgICAgaWYgKG1f
dmFsdWUtPmNoaWxkKDApLT5vcGNvZGUoKSA9PSBOb3RFcXVhbCAmJiBtX3ZhbHVlLT5jaGlsZCgw
KS0+Y2hpbGQoMSktPmlzSW50KDApKSB7CisgICAgICAgICAgICAgICAgbV92YWx1ZS0+Y2hpbGQo
MCkgPSBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMCk7CiAgICAgICAgICAgICAgICAgbV9jaGFu
Z2VkID0gdHJ1ZTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgLy8gVHVybiB0aGlzOiBC
cmFuY2goRXF1YWwoeCwgMCksIHRoZW4sIGVsc2UpCiAgICAgICAgICAgICAvLyBJbnRvIHRoaXM6
IEJyYW5jaCh4LCBlbHNlLCB0aGVuKQotICAgICAgICAgICAgaWYgKGJyYW5jaC0+Y2hpbGQoMCkt
Pm9wY29kZSgpID09IEVxdWFsICYmIGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDEpLT5pc0ludCgw
KSkgewotICAgICAgICAgICAgICAgIGJyYW5jaC0+Y2hpbGQoMCkgPSBicmFuY2gtPmNoaWxkKDAp
LT5jaGlsZCgwKTsKLSAgICAgICAgICAgICAgICBzdGQ6OnN3YXAoYnJhbmNoLT50YWtlbigpLCBi
cmFuY2gtPm5vdFRha2VuKCkpOworICAgICAgICAgICAgaWYgKG1fdmFsdWUtPmNoaWxkKDApLT5v
cGNvZGUoKSA9PSBFcXVhbCAmJiBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMSktPmlzSW50KDAp
KSB7CisgICAgICAgICAgICAgICAgbV92YWx1ZS0+Y2hpbGQoMCkgPSBtX3ZhbHVlLT5jaGlsZCgw
KS0+Y2hpbGQoMCk7CisgICAgICAgICAgICAgICAgc3RkOjpzd2FwKG1fYmxvY2stPnRha2VuKCks
IG1fYmxvY2stPm5vdFRha2VuKCkpOwogICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgICAgIC8vIFR1cm4gdGhpczog
QnJhbmNoKEJpdFhvcihib29sLCAxKSwgdGhlbiwgZWxzZSkKICAgICAgICAgICAgIC8vIEludG8g
dGhpczogQnJhbmNoKGJvb2wsIGVsc2UsIHRoZW4pCi0gICAgICAgICAgICBpZiAoYnJhbmNoLT5j
aGlsZCgwKS0+b3Bjb2RlKCkgPT0gQml0WG9yCi0gICAgICAgICAgICAgICAgJiYgYnJhbmNoLT5j
aGlsZCgwKS0+Y2hpbGQoMSktPmlzSW50MzIoMSkKLSAgICAgICAgICAgICAgICAmJiBicmFuY2gt
PmNoaWxkKDApLT5jaGlsZCgwKS0+cmV0dXJuc0Jvb2woKSkgewotICAgICAgICAgICAgICAgIGJy
YW5jaC0+Y2hpbGQoMCkgPSBicmFuY2gtPmNoaWxkKDApLT5jaGlsZCgwKTsKLSAgICAgICAgICAg
ICAgICBzdGQ6OnN3YXAoYnJhbmNoLT50YWtlbigpLCBicmFuY2gtPm5vdFRha2VuKCkpOworICAg
ICAgICAgICAgaWYgKG1fdmFsdWUtPmNoaWxkKDApLT5vcGNvZGUoKSA9PSBCaXRYb3IKKyAgICAg
ICAgICAgICAgICAmJiBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMSktPmlzSW50MzIoMSkKKyAg
ICAgICAgICAgICAgICAmJiBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMCktPnJldHVybnNCb29s
KCkpIHsKKyAgICAgICAgICAgICAgICBtX3ZhbHVlLT5jaGlsZCgwKSA9IG1fdmFsdWUtPmNoaWxk
KDApLT5jaGlsZCgwKTsKKyAgICAgICAgICAgICAgICBzdGQ6OnN3YXAobV9ibG9jay0+dGFrZW4o
KSwgbV9ibG9jay0+bm90VGFrZW4oKSk7CiAgICAgICAgICAgICAgICAgbV9jaGFuZ2VkID0gdHJ1
ZTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgLy8gVHVybiB0aGlzOiBCcmFuY2goQml0
QW5kKGJvb2wsIHh5YjEpLCB0aGVuLCBlbHNlKQogICAgICAgICAgICAgLy8gSW50byB0aGlzOiBC
cmFuY2goYm9vbCwgdGhlbiwgZWxzZSkKLSAgICAgICAgICAgIGlmIChicmFuY2gtPmNoaWxkKDAp
LT5vcGNvZGUoKSA9PSBCaXRBbmQKLSAgICAgICAgICAgICAgICAmJiBicmFuY2gtPmNoaWxkKDAp
LT5jaGlsZCgxKS0+aGFzSW50KCkKLSAgICAgICAgICAgICAgICAmJiBicmFuY2gtPmNoaWxkKDAp
LT5jaGlsZCgxKS0+YXNJbnQoKSAmIDEKLSAgICAgICAgICAgICAgICAmJiBicmFuY2gtPmNoaWxk
KDApLT5jaGlsZCgwKS0+cmV0dXJuc0Jvb2woKSkgewotICAgICAgICAgICAgICAgIGJyYW5jaC0+
Y2hpbGQoMCkgPSBicmFuY2gtPmNoaWxkKDApLT5jaGlsZCgwKTsKKyAgICAgICAgICAgIGlmICht
X3ZhbHVlLT5jaGlsZCgwKS0+b3Bjb2RlKCkgPT0gQml0QW5kCisgICAgICAgICAgICAgICAgJiYg
bV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDEpLT5oYXNJbnQoKQorICAgICAgICAgICAgICAgICYm
IG1fdmFsdWUtPmNoaWxkKDApLT5jaGlsZCgxKS0+YXNJbnQoKSAmIDEKKyAgICAgICAgICAgICAg
ICAmJiBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMCktPnJldHVybnNCb29sKCkpIHsKKyAgICAg
ICAgICAgICAgICBtX3ZhbHVlLT5jaGlsZCgwKSA9IG1fdmFsdWUtPmNoaWxkKDApLT5jaGlsZCgw
KTsKICAgICAgICAgICAgICAgICBtX2NoYW5nZWQgPSB0cnVlOwogICAgICAgICAgICAgfQogCi0g
ICAgICAgICAgICBUcmlTdGF0ZSB0cmlTdGF0ZSA9IGJyYW5jaC0+Y2hpbGQoMCktPmFzVHJpU3Rh
dGUoKTsKKyAgICAgICAgICAgIFRyaVN0YXRlIHRyaVN0YXRlID0gbV92YWx1ZS0+Y2hpbGQoMCkt
PmFzVHJpU3RhdGUoKTsKIAogICAgICAgICAgICAgLy8gVHVybiB0aGlzOiBCcmFuY2goMCwgdGhl
biwgZWxzZSkKICAgICAgICAgICAgIC8vIEludG8gdGhpczogSnVtcChlbHNlKQogICAgICAgICAg
ICAgaWYgKHRyaVN0YXRlID09IEZhbHNlVHJpU3RhdGUpIHsKLSAgICAgICAgICAgICAgICBicmFu
Y2gtPnRha2VuKCkuYmxvY2soKS0+cmVtb3ZlUHJlZGVjZXNzb3IobV9ibG9jayk7Ci0gICAgICAg
ICAgICAgICAgYnJhbmNoLT5jb252ZXJ0VG9KdW1wKGJyYW5jaC0+bm90VGFrZW4oKS5ibG9jaygp
KTsKKyAgICAgICAgICAgICAgICBtX2Jsb2NrLT50YWtlbigpLmJsb2NrKCktPnJlbW92ZVByZWRl
Y2Vzc29yKG1fYmxvY2spOworICAgICAgICAgICAgICAgIG1fdmFsdWUtPnJlcGxhY2VXaXRoSnVt
cChtX2Jsb2NrLCBtX2Jsb2NrLT5ub3RUYWtlbigpKTsKICAgICAgICAgICAgICAgICBtX2NoYW5n
ZWRDRkcgPSB0cnVlOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpAQCAt
MTgzMiw4ICsxODMwLDggQEAgcHJpdmF0ZToKICAgICAgICAgICAgIC8vIFR1cm4gdGhpczogQnJh
bmNoKG5vdCAwLCB0aGVuLCBlbHNlKQogICAgICAgICAgICAgLy8gSW50byB0aGlzOiBKdW1wKHRo
ZW4pCiAgICAgICAgICAgICBpZiAodHJpU3RhdGUgPT0gVHJ1ZVRyaVN0YXRlKSB7Ci0gICAgICAg
ICAgICAgICAgYnJhbmNoLT5ub3RUYWtlbigpLmJsb2NrKCktPnJlbW92ZVByZWRlY2Vzc29yKG1f
YmxvY2spOwotICAgICAgICAgICAgICAgIGJyYW5jaC0+Y29udmVydFRvSnVtcChicmFuY2gtPnRh
a2VuKCkuYmxvY2soKSk7CisgICAgICAgICAgICAgICAgbV9ibG9jay0+bm90VGFrZW4oKS5ibG9j
aygpLT5yZW1vdmVQcmVkZWNlc3NvcihtX2Jsb2NrKTsKKyAgICAgICAgICAgICAgICBtX3ZhbHVl
LT5yZXBsYWNlV2l0aEp1bXAobV9ibG9jaywgbV9ibG9jay0+dGFrZW4oKSk7CiAgICAgICAgICAg
ICAgICAgbV9jaGFuZ2VkQ0ZHID0gdHJ1ZTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgIH0KQEAgLTE4NDIsMTIgKzE4NDAsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIC8v
IG9mIG1ha2VzIHNlbnNlIGhlcmUgYmVjYXVzZSBpdCdzIGNoZWFwLCBidXQgaGFja3MgbGlrZSB0
aGlzIHNob3cgdGhhdCB3ZSdyZSBnb2luZwogICAgICAgICAgICAgLy8gdG8gbmVlZCBTQ0NQLgog
ICAgICAgICAgICAgVmFsdWUqIGNoZWNrID0gbV9wdXJlQ1NFLmZpbmRNYXRjaCgKLSAgICAgICAg
ICAgICAgICBWYWx1ZUtleShDaGVjaywgVm9pZCwgYnJhbmNoLT5jaGlsZCgwKSksIG1fYmxvY2ss
ICptX2RvbWluYXRvcnMpOworICAgICAgICAgICAgICAgIFZhbHVlS2V5KENoZWNrLCBWb2lkLCBt
X3ZhbHVlLT5jaGlsZCgwKSksIG1fYmxvY2ssICptX2RvbWluYXRvcnMpOwogICAgICAgICAgICAg
aWYgKGNoZWNrKSB7CiAgICAgICAgICAgICAgICAgLy8gVGhlIENoZWNrIHdvdWxkIGhhdmUgc2lk
ZS1leGl0ZWQgaWYgY2hpbGQoMCkgd2FzIG5vbi16ZXJvLiBTbywgaXQgbXVzdCBiZQogICAgICAg
ICAgICAgICAgIC8vIHplcm8gaGVyZS4KLSAgICAgICAgICAgICAgICBicmFuY2gtPnRha2VuKCku
YmxvY2soKS0+cmVtb3ZlUHJlZGVjZXNzb3IobV9ibG9jayk7Ci0gICAgICAgICAgICAgICAgYnJh
bmNoLT5jb252ZXJ0VG9KdW1wKGJyYW5jaC0+bm90VGFrZW4oKS5ibG9jaygpKTsKKyAgICAgICAg
ICAgICAgICBtX2Jsb2NrLT50YWtlbigpLmJsb2NrKCktPnJlbW92ZVByZWRlY2Vzc29yKG1fYmxv
Y2spOworICAgICAgICAgICAgICAgIG1fdmFsdWUtPnJlcGxhY2VXaXRoSnVtcChtX2Jsb2NrLCBt
X2Jsb2NrLT5ub3RUYWtlbigpKTsKICAgICAgICAgICAgICAgICBtX2NoYW5nZWRDRkcgPSB0cnVl
OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CkBAIC0xOTg2LDEzICsxOTg0LDEy
IEBAIHByaXZhdGU6CiAgICAgICAgIC8vIFJlbW92ZSB0aGUgdmFsdWVzIGZyb20gdGhlIHByZWRl
Y2Vzc29yLgogICAgICAgICBwcmVkZWNlc3Nvci0+dmFsdWVzKCkucmVzaXplKHN0YXJ0SW5kZXgp
OwogICAgICAgICAKLSAgICAgICAgcHJlZGVjZXNzb3ItPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAotICAgICAgICAgICAgbV9wcm9jLCBCcmFuY2gsIHNvdXJjZS0+b3JpZ2luKCksIHByZWRpY2F0
ZSwKLSAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhjYXNlc1swXSksIEZyZXF1ZW50ZWRCbG9j
ayhjYXNlc1sxXSkpOworICAgICAgICBwcmVkZWNlc3Nvci0+YXBwZW5kTmV3PFZhbHVlPihtX3By
b2MsIEJyYW5jaCwgc291cmNlLT5vcmlnaW4oKSwgcHJlZGljYXRlKTsKKyAgICAgICAgcHJlZGVj
ZXNzb3ItPnNldFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2NrKGNhc2VzWzBdKSwgRnJlcXVlbnRl
ZEJsb2NrKGNhc2VzWzFdKSk7CiAKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51
bUNhc2VzOyArK2kpIHsKLSAgICAgICAgICAgIGNhc2VzW2ldLT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKLSAgICAgICAgICAgICAgICBtX3Byb2MsIEp1bXAsIG1fdmFsdWUtPm9yaWdpbigpLCBG
cmVxdWVudGVkQmxvY2sobV9ibG9jaykpOworICAgICAgICAgICAgY2FzZXNbaV0tPmFwcGVuZE5l
dzxWYWx1ZT4obV9wcm9jLCBKdW1wLCBtX3ZhbHVlLT5vcmlnaW4oKSk7CisgICAgICAgICAgICBj
YXNlc1tpXS0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2sobV9ibG9jaykpOwogICAgICAg
ICB9CiAKICAgICAgICAgbV9jaGFuZ2VkID0gdHJ1ZTsKQEAgLTIyMjEsNyArMjIxOCw3IEBAIHBy
aXZhdGU6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIkNoYW5naW5nICIsIHBvaW50ZXJEdW1wKGJsb2NrKSwgIidz
IHRlcm1pbmFsIHRvIGEgSnVtcC5cbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgICAgICAgICAgYmxvY2stPmxhc3QoKS0+YXM8Q29udHJvbFZhbHVlPigpLT5j
b252ZXJ0VG9KdW1wKGZpcnN0U3VjY2Vzc29yKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJs
b2NrLT5sYXN0KCktPnJlcGxhY2VXaXRoSnVtcChibG9jaywgRnJlcXVlbnRlZEJsb2NrKGZpcnN0
U3VjY2Vzc29yKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBtX2NoYW5nZWRDRkcgPSB0cnVl
OwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQpAQCAtMjIzOSwxNiAr
MjIzNiwxOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICAvLyBSZW1vdmUgdGhlIHRl
cm1pbmFsLgogICAgICAgICAgICAgICAgICAgICBWYWx1ZSogdmFsdWUgPSBibG9jay0+dmFsdWVz
KCkudGFrZUxhc3QoKTsKICAgICAgICAgICAgICAgICAgICAgT3JpZ2luIGp1bXBPcmlnaW4gPSB2
YWx1ZS0+b3JpZ2luKCk7Ci0gICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHZhbHVl
LT5hczxDb250cm9sVmFsdWU+KCkpOworICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VS
VCh2YWx1ZS0+ZWZmZWN0cygpLnRlcm1pbmFsKTsKICAgICAgICAgICAgICAgICAgICAgbV9wcm9j
LmRlbGV0ZVZhbHVlKHZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgICAgIC8vIEFwcGVuZCB0aGUgZnVsbCBjb250ZW50cyBvZiB0aGUgc3VjY2Vzc29yIHRvIHRo
ZSBwcmVkZWNlc3Nvci4KICAgICAgICAgICAgICAgICAgICAgYmxvY2stPnZhbHVlcygpLmFwcGVu
ZFZlY3RvcihzdWNjZXNzb3ItPnZhbHVlcygpKTsKKyAgICAgICAgICAgICAgICAgICAgYmxvY2st
PnN1Y2Nlc3NvcnMoKSA9IHN1Y2Nlc3Nvci0+c3VjY2Vzc29ycygpOwogICAgICAgICAgICAgICAg
ICAgICAKICAgICAgICAgICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgdGhlIHN1Y2Nlc3Nv
ciBoYXMgbm90aGluZyBsZWZ0IGluIGl0LiBNYWtlIHN1cmUgdGhhdCB0aGUgYmxvY2sKICAgICAg
ICAgICAgICAgICAgICAgLy8gaGFzIGEgdGVybWluYWwgc28gdGhhdCBub2JvZHkgY2hva2VzIHdo
ZW4gdGhleSBsb29rIGF0IGl0LgogICAgICAgICAgICAgICAgICAgICBzdWNjZXNzb3ItPnZhbHVl
cygpLnJlc2l6ZSgwKTsKLSAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc29yLT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihtX3Byb2MsIE9vcHMsIGp1bXBPcmlnaW4pOworICAgICAgICAgICAgICAg
ICAgICBzdWNjZXNzb3ItPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBPb3BzLCBqdW1wT3JpZ2lu
KTsKKyAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc29yLT5jbGVhclN1Y2Nlc3NvcnMoKTsKICAg
ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgIC8vIEVuc3VyZSB0aGF0IHBy
ZWRlY2Vzc29ycyBvZiBibG9jaydzIG5ldyBzdWNjZXNzb3JzIGtub3cgd2hhdCdzIHVwLgogICAg
ICAgICAgICAgICAgICAgICBmb3IgKEJhc2ljQmxvY2sqIG5ld1N1Y2Nlc3NvciA6IGJsb2NrLT5z
dWNjZXNzb3JCbG9ja3MoKSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNr
bWFwR2VuZXJhdGlvblBhcmFtcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmNwcAkocmV2aXNpb24gMjAyODA5KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1
LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC01OSw2ICs1OSwyNyBAQCBSZWdpc3RlclNldCBTdGFja21hcEdlbmVy
YXRpb25QYXJhbXM6OnVuCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorVmVjdG9yPEJveDxDQ2Fs
bEhlbHBlcnM6OkxhYmVsPj4gU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zOjpzdWNjZXNzb3JMYWJl
bHMoKSBjb25zdAoreworICAgIFJFTEVBU0VfQVNTRVJUKG1fY29udGV4dC5pbmRleEluQmxvY2sg
PT0gbV9jb250ZXh0LmN1cnJlbnRCbG9jay0+c2l6ZSgpIC0gMSk7CisgICAgUkVMRUFTRV9BU1NF
UlQobV92YWx1ZS0+ZWZmZWN0cygpLnRlcm1pbmFsKTsKKyAgICAKKyAgICBWZWN0b3I8Qm94PEND
YWxsSGVscGVyczo6TGFiZWw+PiByZXN1bHQobV9jb250ZXh0LmN1cnJlbnRCbG9jay0+bnVtU3Vj
Y2Vzc29ycygpKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSBtX2NvbnRleHQuY3VycmVudEJsb2Nr
LT5udW1TdWNjZXNzb3JzKCk7IGktLTspCisgICAgICAgIHJlc3VsdFtpXSA9IG1fY29udGV4dC5i
bG9ja0xhYmVsc1ttX2NvbnRleHQuY3VycmVudEJsb2NrLT5zdWNjZXNzb3JCbG9jayhpKV07Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KKworYm9vbCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXM6OmZh
bGxzVGhyb3VnaFRvU3VjY2Vzc29yKHVuc2lnbmVkIHN1Y2Nlc3NvckluZGV4KSBjb25zdAorewor
ICAgIFJFTEVBU0VfQVNTRVJUKG1fY29udGV4dC5pbmRleEluQmxvY2sgPT0gbV9jb250ZXh0LmN1
cnJlbnRCbG9jay0+c2l6ZSgpIC0gMSk7CisgICAgUkVMRUFTRV9BU1NFUlQobV92YWx1ZS0+ZWZm
ZWN0cygpLnRlcm1pbmFsKTsKKyAgICAKKyAgICBBaXI6OkJhc2ljQmxvY2sqIHN1Y2Nlc3NvciA9
IG1fY29udGV4dC5jdXJyZW50QmxvY2stPnN1Y2Nlc3NvckJsb2NrKHN1Y2Nlc3NvckluZGV4KTsK
KyAgICBBaXI6OkJhc2ljQmxvY2sqIG5leHRCbG9jayA9IG1fY29udGV4dC5jb2RlLT5maW5kTmV4
dEJsb2NrKG1fY29udGV4dC5jdXJyZW50QmxvY2spOworICAgIHJldHVybiBzdWNjZXNzb3IgPT0g
bmV4dEJsb2NrOworfQorCiBQcm9jZWR1cmUmIFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtczo6cHJv
YygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fY29udGV4dC5jb2RlLT5wcm9jKCk7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcEdlbmVyYXRpb25QYXJhbXMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcEdlbmVyYXRpb25Q
YXJhbXMuaAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
U3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDkg
QEAKIAogI2luY2x1ZGUgIkFpckdlbmVyYXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiQjNWYWx1
ZVJlcC5oIgorI2luY2x1ZGUgIkNDYWxsSGVscGVycy5oIgogI2luY2x1ZGUgIlJlZ2lzdGVyU2V0
LmgiCisjaW5jbHVkZSA8d3RmL0JveC5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIz
IHsKIApAQCAtMzksNiArNDEsOCBAQCBjbGFzcyBQYXRjaHBvaW50U3BlY2lhbDsKIGNsYXNzIFBy
b2NlZHVyZTsKIGNsYXNzIFN0YWNrbWFwVmFsdWU7CiAKKy8vIE5PVEU6IEl0J3MgcG9zc2libGUg
dG8gY2FwdHVyZSBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMgYnkgdmFsdWUsIGJ1dCBub3QgYWxs
IG9mIHRoZSBtZXRob2RzIHdpbGwKKy8vIHdvcmsgaWYgeW91IGRvIHRoYXQuCiBjbGFzcyBTdGFj
a21hcEdlbmVyYXRpb25QYXJhbXMgewogcHVibGljOgogICAgIC8vIFRoaXMgaXMgdGhlIHN0YWNr
bWFwIHZhbHVlIHRoYXQgd2UncmUgZ2VuZXJhdGluZy4KQEAgLTgwLDkgKzg0LDE4IEBAIHB1Ymxp
YzoKIAogICAgIEdQUlJlZyBncFNjcmF0Y2godW5zaWduZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJu
IG1fZ3BTY3JhdGNoW2luZGV4XTsgfQogICAgIEZQUlJlZyBmcFNjcmF0Y2godW5zaWduZWQgaW5k
ZXgpIGNvbnN0IHsgcmV0dXJuIG1fZnBTY3JhdGNoW2luZGV4XTsgfQorICAgIAorICAgIC8vIFRo
aXMgaXMgY29tcHV0ZWQgbGF6aWx5LCBzbyBpdCB3b24ndCB3b3JrIGlmIHlvdSBjYXB0dXJlIFN0
YWNrbWFwR2VuZXJhdGlvblBhcmFtcyBieSB2YWx1ZS4KKyAgICAvLyBUaGVzZSBsYWJlbHMgd2ls
bCBnZXQgcG9wdWxhdGVkIGJlZm9yZSBhbnkgbGF0ZSBwYXRocyBvciBsaW5rIHRhc2tzIGV4ZWN1
dGUuCisgICAgSlNfRVhQT1JUX1BSSVZBVEUgVmVjdG9yPEJveDxDQ2FsbEhlbHBlcnM6OkxhYmVs
Pj4gc3VjY2Vzc29yTGFiZWxzKCkgY29uc3Q7CisgICAgCisgICAgLy8gVGhpcyBpcyBjb21wdXRl
ZCBsYXppbHksIHNvIGl0IHdvbid0IHdvcmsgaWYgeW91IGNhcHR1cmUgU3RhY2ttYXBHZW5lcmF0
aW9uUGFyYW1zIGJ5IHZhbHVlLgorICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgc3VjY2Vzc29y
IGF0IHRoZSBnaXZlbiBpbmRleCBpcyBnb2luZyB0byBiZSBlbWl0dGVkIHJpZ2h0IGFmdGVyIHRo
ZQorICAgIC8vIHBhdGNocG9pbnQuCisgICAgYm9vbCBmYWxsc1Rocm91Z2hUb1N1Y2Nlc3Nvcih1
bnNpZ25lZCBzdWNjZXNzb3JJbmRleCkgY29uc3Q7CiAKICAgICAvLyBUaGlzIGlzIHByb3ZpZGVk
IGZvciBjb252ZW5pZW5jZTsgaXQgbWVhbnMgdGhhdCB5b3UgZG9uJ3QgaGF2ZSB0byBjYXB0dXJl
IGl0IGlmIHlvdSBkb24ndCB3YW50IHRvLgotICAgIFByb2NlZHVyZSYgcHJvYygpIGNvbnN0Owor
ICAgIEpTX0VYUE9SVF9QUklWQVRFIFByb2NlZHVyZSYgcHJvYygpIGNvbnN0OwogICAgIAogICAg
IC8vIFRoZSBBaXI6OkdlbmVyYXRpb25Db250ZXh0IGdpdmVzIHlvdSBldmVuIG1vcmUgcG93ZXIu
CiAgICAgQWlyOjpHZW5lcmF0aW9uQ29udGV4dCYgY29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1f
Y29udGV4dDsgfTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N3aXRjaFZhbHVl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTd2l0Y2hWYWx1
ZS5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N3
aXRjaFZhbHVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsMzAgKzM3LDc2IEBAIFN3aXRjaFZh
bHVlOjp+U3dpdGNoVmFsdWUoKQogewogfQogCi1Td2l0Y2hDYXNlIFN3aXRjaFZhbHVlOjpyZW1v
dmVDYXNlKHVuc2lnbmVkIGluZGV4KQorU3dpdGNoQ2FzZSBTd2l0Y2hWYWx1ZTo6cmVtb3ZlQ2Fz
ZShCYXNpY0Jsb2NrKiBibG9jaywgdW5zaWduZWQgaW5kZXgpCiB7Ci0gICAgRnJlcXVlbnRlZEJs
b2NrIHJlc3VsdEJsb2NrID0gbV9zdWNjZXNzb3JzW2luZGV4XTsKKyAgICBGcmVxdWVudGVkQmxv
Y2sgcmVzdWx0QmxvY2sgPSBibG9jay0+c3VjY2Vzc29yKGluZGV4KTsKICAgICBpbnQ2NF90IHJl
c3VsdFZhbHVlID0gbV92YWx1ZXNbaW5kZXhdOwotICAgIG1fc3VjY2Vzc29yc1tpbmRleF0gPSBt
X3N1Y2Nlc3NvcnMubGFzdCgpOwotICAgIG1fc3VjY2Vzc29ycy5yZW1vdmVMYXN0KCk7CisgICAg
YmxvY2stPnN1Y2Nlc3NvcihpbmRleCkgPSBibG9jay0+c3VjY2Vzc29ycygpLmxhc3QoKTsKKyAg
ICBibG9jay0+c3VjY2Vzc29ycygpLnJlbW92ZUxhc3QoKTsKICAgICBtX3ZhbHVlc1tpbmRleF0g
PSBtX3ZhbHVlcy5sYXN0KCk7CiAgICAgbV92YWx1ZXMucmVtb3ZlTGFzdCgpOwogICAgIHJldHVy
biBTd2l0Y2hDYXNlKHJlc3VsdFZhbHVlLCByZXN1bHRCbG9jayk7CiB9CiAKLXZvaWQgU3dpdGNo
VmFsdWU6OmFwcGVuZENhc2UoY29uc3QgU3dpdGNoQ2FzZSYgc3dpdGNoQ2FzZSkKK2Jvb2wgU3dp
dGNoVmFsdWU6Omhhc0ZhbGxUaHJvdWdoKGNvbnN0IEJhc2ljQmxvY2sqIGJsb2NrKSBjb25zdAor
eworICAgIHVuc2lnbmVkIG51bVN1Y2Nlc3NvcnMgPSBibG9jay0+bnVtU3VjY2Vzc29ycygpOwor
ICAgIHVuc2lnbmVkIG51bVZhbHVlcyA9IG1fdmFsdWVzLnNpemUoKTsKKyAgICBSRUxFQVNFX0FT
U0VSVChudW1WYWx1ZXMgPT0gbnVtU3VjY2Vzc29ycyB8fCBudW1WYWx1ZXMgKyAxID09IG51bVN1
Y2Nlc3NvcnMpOworICAgIAorICAgIHJldHVybiBudW1WYWx1ZXMgKyAxID09IG51bVN1Y2Nlc3Nv
cnM7Cit9CisKK2Jvb2wgU3dpdGNoVmFsdWU6Omhhc0ZhbGxUaHJvdWdoKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gaGFzRmFsbFRocm91Z2gob3duZXIpOworfQorCit2b2lkIFN3aXRjaFZhbHVlOjpz
ZXRGYWxsVGhyb3VnaChCYXNpY0Jsb2NrKiBibG9jaywgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0
YXJnZXQpCit7CisgICAgaWYgKCFoYXNGYWxsVGhyb3VnaCgpKQorICAgICAgICBibG9jay0+c3Vj
Y2Vzc29ycygpLmFwcGVuZCh0YXJnZXQpOworICAgIGVsc2UKKyAgICAgICAgYmxvY2stPnN1Y2Nl
c3NvcnMoKS5sYXN0KCkgPSB0YXJnZXQ7CisgICAgQVNTRVJUKGhhc0ZhbGxUaHJvdWdoKGJsb2Nr
KSk7Cit9CisKK3ZvaWQgU3dpdGNoVmFsdWU6OmFwcGVuZENhc2UoQmFzaWNCbG9jayogYmxvY2ss
IGNvbnN0IFN3aXRjaENhc2UmIHN3aXRjaENhc2UpCiB7Ci0gICAgbV9zdWNjZXNzb3JzLmFwcGVu
ZChtX3N1Y2Nlc3NvcnMubGFzdCgpKTsKLSAgICBtX3N1Y2Nlc3NvcnNbbV9zdWNjZXNzb3JzLnNp
emUoKSAtIDJdID0gc3dpdGNoQ2FzZS50YXJnZXQoKTsKKyAgICBpZiAoIWhhc0ZhbGxUaHJvdWdo
KCkpCisgICAgICAgIGJsb2NrLT5zdWNjZXNzb3JzKCkuYXBwZW5kKHN3aXRjaENhc2UudGFyZ2V0
KCkpOworICAgIGVsc2UgeworICAgICAgICBibG9jay0+c3VjY2Vzc29ycygpLmFwcGVuZChibG9j
ay0+c3VjY2Vzc29ycygpLmxhc3QoKSk7CisgICAgICAgIGJsb2NrLT5zdWNjZXNzb3IoYmxvY2st
Pm51bVN1Y2Nlc3NvcnMoKSAtIDIpID0gc3dpdGNoQ2FzZS50YXJnZXQoKTsKKyAgICB9CiAgICAg
bV92YWx1ZXMuYXBwZW5kKHN3aXRjaENhc2UuY2FzZVZhbHVlKCkpOwogfQogCit2b2lkIFN3aXRj
aFZhbHVlOjpzZXRGYWxsVGhyb3VnaChjb25zdCBGcmVxdWVudGVkQmxvY2smIHRhcmdldCkKK3sK
KyAgICBzZXRGYWxsVGhyb3VnaChvd25lciwgdGFyZ2V0KTsKK30KKwordm9pZCBTd2l0Y2hWYWx1
ZTo6YXBwZW5kQ2FzZShjb25zdCBTd2l0Y2hDYXNlJiBzd2l0Y2hDYXNlKQoreworICAgIGFwcGVu
ZENhc2Uob3duZXIsIHN3aXRjaENhc2UpOworfQorCit2b2lkIFN3aXRjaFZhbHVlOjpkdW1wU3Vj
Y2Vzc29ycyhjb25zdCBCYXNpY0Jsb2NrKiBibG9jaywgUHJpbnRTdHJlYW0mIG91dCkgY29uc3QK
K3sKKyAgICAvLyBXZSBtdXN0IG5vdCBjcmFzaCBkdWUgdG8gYSBudW1iZXItb2Ytc3VjY2Vzc29y
cyBtaXNtYXRjaCEgU29tZW9uZSBkZWJ1Z2dpbmcgYQorICAgIC8vIG51bWJlci1vZi1zdWNjZXNz
b3JzIGJ1ZyB3aWxsIHdhbnQgdG8gZHVtcCBJUiEKKyAgICBpZiAobnVtQ2FzZVZhbHVlcygpICsg
MSAhPSBibG9jay0+bnVtU3VjY2Vzc29ycygpKSB7CisgICAgICAgIFZhbHVlOjpkdW1wU3VjY2Vz
c29ycyhibG9jaywgb3V0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICBvdXQu
cHJpbnQoY2FzZXMoYmxvY2spKTsKK30KKwogdm9pZCBTd2l0Y2hWYWx1ZTo6ZHVtcE1ldGEoQ29t
bWFQcmludGVyJiBjb21tYSwgUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHsKLSAgICAvLyBUaGlz
IGRlc3RydWN0aXZlbHkgb3ZlcnJpZGVzIENvbnRyb2xWYWx1ZSdzIGR1bXBNZXRhKCkuCi0gICAg
Zm9yIChTd2l0Y2hDYXNlIHN3aXRjaENhc2UgOiAqdGhpcykKLSAgICAgICAgb3V0LnByaW50KGNv
bW1hLCBzd2l0Y2hDYXNlKTsKLSAgICBvdXQucHJpbnQoY29tbWEsICJmYWxsVGhyb3VnaCA9ICIs
IGZhbGxUaHJvdWdoKCkpOworICAgIG91dC5wcmludChjb21tYSwgImNhc2VzID0gWyIsIGxpc3RE
dW1wKG1fdmFsdWVzKSwgIl0iKTsKIH0KIAogVmFsdWUqIFN3aXRjaFZhbHVlOjpjbG9uZUltcGwo
KSBjb25zdApAQCAtNjgsMTAgKzExNCw5IEBAIFZhbHVlKiBTd2l0Y2hWYWx1ZTo6Y2xvbmVJbXBs
KCkgY29uc3QKICAgICByZXR1cm4gbmV3IFN3aXRjaFZhbHVlKCp0aGlzKTsKIH0KIAotU3dpdGNo
VmFsdWU6OlN3aXRjaFZhbHVlKE9yaWdpbiBvcmlnaW4sIFZhbHVlKiBjaGlsZCwgY29uc3QgRnJl
cXVlbnRlZEJsb2NrJiBmYWxsVGhyb3VnaCkKLSAgICA6IENvbnRyb2xWYWx1ZShTd2l0Y2gsIFZv
aWQsIG9yaWdpbiwgY2hpbGQpCitTd2l0Y2hWYWx1ZTo6U3dpdGNoVmFsdWUoT3JpZ2luIG9yaWdp
biwgVmFsdWUqIGNoaWxkKQorICAgIDogVmFsdWUoQ2hlY2tlZE9wY29kZSwgU3dpdGNoLCBWb2lk
LCBvcmlnaW4sIGNoaWxkKQogewotICAgIG1fc3VjY2Vzc29ycy5hcHBlbmQoZmFsbFRocm91Z2gp
OwogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM1N3aXRjaFZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzU3dpdGNoVmFsdWUuaAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzU3dpdGNoVmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsMTIgKzI4
LDEzIEBACiAKICNpZiBFTkFCTEUoQjNfSklUKQogCi0jaW5jbHVkZSAiQjNDb250cm9sVmFsdWUu
aCIKKyNpbmNsdWRlICJCM0Nhc2VDb2xsZWN0aW9uLmgiCiAjaW5jbHVkZSAiQjNTd2l0Y2hDYXNl
LmgiCisjaW5jbHVkZSAiQjNWYWx1ZS5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIz
IHsKIAotY2xhc3MgU3dpdGNoVmFsdWUgOiBwdWJsaWMgQ29udHJvbFZhbHVlIHsKK2NsYXNzIFN3
aXRjaFZhbHVlIDogcHVibGljIFZhbHVlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBhY2Nl
cHRzKE9wY29kZSBvcGNvZGUpIHsgcmV0dXJuIG9wY29kZSA9PSBTd2l0Y2g7IH0KIApAQCAtNDcs
NzIgKzQ4LDI2IEBAIHB1YmxpYzoKICAgICAKICAgICBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGNh
c2VWYWx1ZXMoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlczsgfQogCi0gICAgRnJlcXVlbnRlZEJs
b2NrIGZhbGxUaHJvdWdoKCkgY29uc3QgeyByZXR1cm4gc3VjY2Vzc29ycygpLmxhc3QoKTsgfQot
ICAgIEZyZXF1ZW50ZWRCbG9jayYgZmFsbFRocm91Z2goKSB7IHJldHVybiBzdWNjZXNzb3JzKCku
bGFzdCgpOyB9Ci0KLSAgICB1bnNpZ25lZCBzaXplKCkgY29uc3QgeyByZXR1cm4gbnVtQ2FzZVZh
bHVlcygpOyB9Ci0gICAgU3dpdGNoQ2FzZSBhdCh1bnNpZ25lZCBpbmRleCkgY29uc3QKLSAgICB7
Ci0gICAgICAgIHJldHVybiBTd2l0Y2hDYXNlKGNhc2VWYWx1ZShpbmRleCksIHN1Y2Nlc3Nvcihp
bmRleCkpOwotICAgIH0KLSAgICBTd2l0Y2hDYXNlIG9wZXJhdG9yW10odW5zaWduZWQgaW5kZXgp
IGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gYXQoaW5kZXgpOwotICAgIH0KLQotICAgIGNs
YXNzIGl0ZXJhdG9yIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIGl0ZXJhdG9yKCkKLSAgICAgICAg
ICAgIDogbV9zd2l0Y2gobnVsbHB0cikKLSAgICAgICAgICAgICwgbV9pbmRleCgwKQotICAgICAg
ICB7Ci0gICAgICAgIH0KLQotICAgICAgICBpdGVyYXRvcihjb25zdCBTd2l0Y2hWYWx1ZSYgc3dp
dGNoVmFsdWUsIHVuc2lnbmVkIGluZGV4KQotICAgICAgICAgICAgOiBtX3N3aXRjaCgmc3dpdGNo
VmFsdWUpCi0gICAgICAgICAgICAsIG1faW5kZXgoaW5kZXgpCi0gICAgICAgIHsKLSAgICAgICAg
fQotCi0gICAgICAgIFN3aXRjaENhc2Ugb3BlcmF0b3IqKCkKLSAgICAgICAgewotICAgICAgICAg
ICAgcmV0dXJuIG1fc3dpdGNoLT5hdChtX2luZGV4KTsKLSAgICAgICAgfQotCi0gICAgICAgIGl0
ZXJhdG9yJiBvcGVyYXRvcisrKCkKLSAgICAgICAgewotICAgICAgICAgICAgbV9pbmRleCsrOwot
ICAgICAgICAgICAgcmV0dXJuICp0aGlzOwotICAgICAgICB9Ci0KLSAgICAgICAgYm9vbCBvcGVy
YXRvcj09KGNvbnN0IGl0ZXJhdG9yJiBvdGhlcikgY29uc3QKLSAgICAgICAgewotICAgICAgICAg
ICAgQVNTRVJUKG1fc3dpdGNoID09IG90aGVyLm1fc3dpdGNoKTsKLSAgICAgICAgICAgIHJldHVy
biBtX2luZGV4ID09IG90aGVyLm1faW5kZXg7Ci0gICAgICAgIH0KLQotICAgICAgICBib29sIG9w
ZXJhdG9yIT0oY29uc3QgaXRlcmF0b3ImIG90aGVyKSBjb25zdAotICAgICAgICB7Ci0gICAgICAg
ICAgICByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7Ci0gICAgICAgIH0KLQotICAgIHByaXZhdGU6
Ci0gICAgICAgIGNvbnN0IFN3aXRjaFZhbHVlKiBtX3N3aXRjaDsKLSAgICAgICAgdW5zaWduZWQg
bV9pbmRleDsKLSAgICB9OwotCi0gICAgdHlwZWRlZiBpdGVyYXRvciBjb25zdF9pdGVyYXRvcjsK
LQotICAgIGl0ZXJhdG9yIGJlZ2luKCkgY29uc3QgeyByZXR1cm4gaXRlcmF0b3IoKnRoaXMsIDAp
OyB9Ci0gICAgaXRlcmF0b3IgZW5kKCkgY29uc3QgeyByZXR1cm4gaXRlcmF0b3IoKnRoaXMsIHNp
emUoKSk7IH0KKyAgICBDYXNlQ29sbGVjdGlvbiBjYXNlcyhjb25zdCBCYXNpY0Jsb2NrKiBvd25l
cikgY29uc3QgeyByZXR1cm4gQ2FzZUNvbGxlY3Rpb24odGhpcywgb3duZXIpOyB9CisgICAgQ2Fz
ZUNvbGxlY3Rpb24gY2FzZXMoKSBjb25zdCB7IHJldHVybiBjYXNlcyhvd25lcik7IH0KIAogICAg
IC8vIFRoaXMgcmVtb3ZlcyB0aGUgY2FzZSBhbmQgcmVvcmRlcnMgdGhpbmdzIGEgYml0LiBJZiB5
b3UncmUgaXRlcmF0aW5nIHRoZSBjYXNlcyBmcm9tIDAgdG8gTiwKICAgICAvLyB0aGVuIHlvdSBj
YW4ga2VlcCBpdGVyYXRpbmcgYWZ0ZXIgdGhpcyBzbyBsb25nIGFzIHlvdSByZXZpc2l0IHRoaXMg
c2FtZSBpbmRleCAod2hpY2ggd2lsbCBub3cKICAgICAvLyBjb250YWluIHNvbWUgb3RoZXIgY2Fz
ZSB2YWx1ZSkuIFRoaXMgcmVtb3ZlcyB0aGUgY2FzZSB0aGF0IHdhcyByZW1vdmVkLgotICAgIFN3
aXRjaENhc2UgcmVtb3ZlQ2FzZSh1bnNpZ25lZCBpbmRleCk7CisgICAgU3dpdGNoQ2FzZSByZW1v
dmVDYXNlKEJhc2ljQmxvY2sqLCB1bnNpZ25lZCBpbmRleCk7CiAKKyAgICBib29sIGhhc0ZhbGxU
aHJvdWdoKGNvbnN0IEJhc2ljQmxvY2sqKSBjb25zdDsKKyAgICBib29sIGhhc0ZhbGxUaHJvdWdo
KCkgY29uc3Q7CisKKyAgICAvLyBUaGVzZSB0d28gZnVuY3Rpb25zIGNhbiBiZSBjYWxsZWQgaW4g
YW55IG9yZGVyLgorICAgIHZvaWQgc2V0RmFsbFRocm91Z2goQmFzaWNCbG9jayosIGNvbnN0IEZy
ZXF1ZW50ZWRCbG9jayYpOworICAgIHZvaWQgYXBwZW5kQ2FzZShCYXNpY0Jsb2NrKiwgY29uc3Qg
U3dpdGNoQ2FzZSYpOworICAgIAorICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgc2V0RmFsbFRo
cm91Z2goY29uc3QgRnJlcXVlbnRlZEJsb2NrJik7CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9p
ZCBhcHBlbmRDYXNlKGNvbnN0IFN3aXRjaENhc2UmKTsKIAorICAgIHZvaWQgZHVtcFN1Y2Nlc3Nv
cnMoY29uc3QgQmFzaWNCbG9jayosIFByaW50U3RyZWFtJikgY29uc3Qgb3ZlcnJpZGU7CisKIHBy
b3RlY3RlZDoKICAgICB2b2lkIGR1bXBNZXRhKENvbW1hUHJpbnRlciYsIFByaW50U3RyZWFtJikg
Y29uc3Qgb3ZlcnJpZGU7CiAKQEAgLTEyMSw3ICs3Niw3IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6
CiAgICAgZnJpZW5kIGNsYXNzIFByb2NlZHVyZTsKIAotICAgIEpTX0VYUE9SVF9QUklWQVRFIFN3
aXRjaFZhbHVlKE9yaWdpbiwgVmFsdWUqIGNoaWxkLCBjb25zdCBGcmVxdWVudGVkQmxvY2smIGZh
bGxUaHJvdWdoKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBTd2l0Y2hWYWx1ZShPcmlnaW4sIFZh
bHVlKiBjaGlsZCk7CiAKICAgICBWZWN0b3I8aW50NjRfdD4gbV92YWx1ZXM7CiB9OwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsaWRhdGUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbGlkYXRlLmNwcAkocmV2aXNpb24gMjAyODA5KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsaWRhdGUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiQjNQcm9jZWR1cmUuaCIKICNpbmNsdWRlICJC
M1Nsb3RCYXNlVmFsdWUuaCIKICNpbmNsdWRlICJCM1N0YWNrU2xvdC5oIgorI2luY2x1ZGUgIkIz
U3dpdGNoVmFsdWUuaCIKICNpbmNsdWRlICJCM1Vwc2lsb25WYWx1ZS5oIgogI2luY2x1ZGUgIkIz
VmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNWYXJpYWJsZS5oIgpAQCAtMTA3LDggKzEwOCw4
IEBAIHB1YmxpYzoKICAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBibG9jayA6IGJsb2Nrcykgewog
ICAgICAgICAgICAgVkFMSURBVEUoYmxvY2stPnNpemUoKSA+PSAxLCAoIkF0ICIsICpibG9jaykp
OwogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGJsb2NrLT5zaXplKCkgLSAx
OyArK2kpCi0gICAgICAgICAgICAgICAgVkFMSURBVEUoIUNvbnRyb2xWYWx1ZTo6YWNjZXB0cyhi
bG9jay0+YXQoaSktPm9wY29kZSgpKSwgKCJBdCAiLCAqYmxvY2stPmF0KGkpKSk7Ci0gICAgICAg
ICAgICBWQUxJREFURShDb250cm9sVmFsdWU6OmFjY2VwdHMoYmxvY2stPmxhc3QoKS0+b3Bjb2Rl
KCkpLCAoIkF0ICIsICpibG9jay0+bGFzdCgpKSk7CisgICAgICAgICAgICAgICAgVkFMSURBVEUo
IWJsb2NrLT5hdChpKS0+ZWZmZWN0cygpLnRlcm1pbmFsLCAoIkF0ICIsICpibG9jay0+YXQoaSkp
KTsKKyAgICAgICAgICAgIFZBTElEQVRFKGJsb2NrLT5sYXN0KCktPmVmZmVjdHMoKS50ZXJtaW5h
bCwgKCJBdCAiLCAqYmxvY2stPmxhc3QoKSkpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBm
b3IgKEJhc2ljQmxvY2sqIHN1Y2Nlc3NvciA6IGJsb2NrLT5zdWNjZXNzb3JCbG9ja3MoKSkgewog
ICAgICAgICAgICAgICAgIGFsbFByZWRlY2Vzc29ycy5hZGQoc3VjY2Vzc29yLCBIYXNoU2V0PEJh
c2ljQmxvY2sqPigpKS5pdGVyYXRvci0+dmFsdWUuYWRkKGJsb2NrKTsKQEAgLTEyOSw4ICsxMzAs
NiBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgVkFMSURBVEUoY2hpbGQtPnR5cGUoKSAhPSBW
b2lkLCAoIkF0ICIsICp2YWx1ZSwgIi0+IiwgKmNoaWxkKSk7CiAgICAgICAgICAgICBzd2l0Y2gg
KHZhbHVlLT5vcGNvZGUoKSkgewogICAgICAgICAgICAgY2FzZSBOb3A6Ci0gICAgICAgICAgICBj
YXNlIEp1bXA6Ci0gICAgICAgICAgICBjYXNlIE9vcHM6CiAgICAgICAgICAgICAgICAgVkFMSURB
VEUoIXZhbHVlLT5udW1DaGlsZHJlbigpLCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAg
ICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgPT0gVm9pZCwgKCJBdCAiLCAqdmFsdWUpKTsKICAg
ICAgICAgICAgICAgICBicmVhazsKQEAgLTM3NywxNSArMzc2LDM2IEBAIHB1YmxpYzoKICAgICAg
ICAgICAgICAgICBWQUxJREFURSghdmFsdWUtPm51bUNoaWxkcmVuKCksICgiQXQgIiwgKnZhbHVl
KSk7CiAgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPnR5cGUoKSAhPSBWb2lkLCAoIkF0
ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBK
dW1wOgorICAgICAgICAgICAgICAgIFZBTElEQVRFKCF2YWx1ZS0+bnVtQ2hpbGRyZW4oKSwgKCJB
dCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+dHlwZSgpID09
IFZvaWQsICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWVP
d25lci5nZXQodmFsdWUpLT5udW1TdWNjZXNzb3JzKCkgPT0gMSwgKCJBdCAiLCAqdmFsdWUpKTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgT29wczoKKyAgICAgICAg
ICAgICAgICBWQUxJREFURSghdmFsdWUtPm51bUNoaWxkcmVuKCksICgiQXQgIiwgKnZhbHVlKSk7
CisgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPnR5cGUoKSA9PSBWb2lkLCAoIkF0ICIs
ICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIFZBTElEQVRFKCF2YWx1ZU93bmVyLmdldCh2YWx1
ZSktPm51bVN1Y2Nlc3NvcnMoKSwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgIGNhc2UgUmV0dXJuOgogICAgICAgICAgICAgICAgIFZBTElEQVRF
KHZhbHVlLT5udW1DaGlsZHJlbigpID09IDEsICgiQXQgIiwgKnZhbHVlKSk7CiAgICAgICAgICAg
ICAgICAgVkFMSURBVEUodmFsdWUtPnR5cGUoKSA9PSBWb2lkLCAoIkF0ICIsICp2YWx1ZSkpOwor
ICAgICAgICAgICAgICAgIFZBTElEQVRFKCF2YWx1ZU93bmVyLmdldCh2YWx1ZSktPm51bVN1Y2Nl
c3NvcnMoKSwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgIGNhc2UgQnJhbmNoOgorICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT5udW1D
aGlsZHJlbigpID09IDEsICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAgICAgVkFMSURB
VEUoaXNJbnQodmFsdWUtPmNoaWxkKDApLT50eXBlKCkpLCAoIkF0ICIsICp2YWx1ZSkpOworICAg
ICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgPT0gVm9pZCwgKCJBdCAiLCAqdmFs
dWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZU93bmVyLmdldCh2YWx1ZSktPm51
bVN1Y2Nlc3NvcnMoKSA9PSAyLCAoIkF0ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgY2FzZSBTd2l0Y2g6CiAgICAgICAgICAgICAgICAgVkFMSURBVEUo
dmFsdWUtPm51bUNoaWxkcmVuKCkgPT0gMSwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAg
ICAgICBWQUxJREFURShpc0ludCh2YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSksICgiQXQgIiwgKnZh
bHVlKSk7CiAgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPnR5cGUoKSA9PSBWb2lkLCAo
IkF0ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT5hczxTd2l0
Y2hWYWx1ZT4oKS0+aGFzRmFsbFRocm91Z2godmFsdWVPd25lci5nZXQodmFsdWUpKSwgKCJBdCAi
LCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICAvLyBUaGlzIHZhbGlkYXRlcyB0aGUgc2FtZSB0
aGluZyBhcyBoYXNGYWxsVGhyb3VnaCwgYnV0IG1vcmUgZXhwbGljaXRseS4gV2Ugd2FudCB0bwor
ICAgICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGF0IGlmIGFueW9uZSB0cmllcyB0byBjaGFu
Z2UgdGhlIGRlZmluaXRpb24gb2YgaGFzRmFsbFRocm91Z2gsIHRoZXkKKyAgICAgICAgICAgICAg
ICAvLyB3aWxsIGZlZWwgc29tZSBwYWluIGhlcmUsIHNpbmNlIHRoaXMgaXMgZnVuZGFtZW50YWwu
CisgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWVPd25lci5nZXQodmFsdWUpLT5udW1TdWNj
ZXNzb3JzKCkgPT0gdmFsdWUtPmFzPFN3aXRjaFZhbHVlPigpLT5udW1DYXNlVmFsdWVzKCkgKyAx
LCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
fQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuY3BwCShyZXZpc2lvbiAyMDI4
MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI5LDkgKzI5LDkgQEAKICNpZiBFTkFCTEUoQjNfSklUKQogCiAjaW5jbHVkZSAiQjNB
cmd1bWVudFJlZ1ZhbHVlLmgiCisjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrSW5saW5lcy5oIgogI2lu
Y2x1ZGUgIkIzQm90dG9tUHJvdmlkZXIuaCIKICNpbmNsdWRlICJCM0NDYWxsVmFsdWUuaCIKLSNp
bmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzTWVtb3J5VmFsdWUuaCIKICNp
bmNsdWRlICJCM09yaWdpbkR1bXAuaCIKICNpbmNsdWRlICJCM1Byb2NlZHVyZUlubGluZXMuaCIK
QEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJCM1ZhbHVlS2V5SW5saW5lcy5oIgogI2luY2x1
ZGUgIkIzVmFyaWFibGVWYWx1ZS5oIgogI2luY2x1ZGUgPHd0Zi9Db21tYVByaW50ZXIuaD4KKyNp
bmNsdWRlIDx3dGYvTGlzdER1bXAuaD4KICNpbmNsdWRlIDx3dGYvU3RyaW5nUHJpbnRTdHJlYW0u
aD4KIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CkBAIC0xMjUsNiArMTI2LDUwIEBA
IHZvaWQgVmFsdWU6OnJlcGxhY2VXaXRoUGhpKCkKICAgICB0aGlzLT5tX2luZGV4ID0gaW5kZXg7
CiB9CiAKK3ZvaWQgVmFsdWU6OnJlcGxhY2VXaXRoSnVtcChCYXNpY0Jsb2NrKiBvd25lciwgY29u
c3QgRnJlcXVlbnRlZEJsb2NrJiB0YXJnZXQpCit7CisgICAgUkVMRUFTRV9BU1NFUlQob3duZXIt
Pmxhc3QoKSA9PSB0aGlzKTsKKyAgICAKKyAgICB1bnNpZ25lZCBpbmRleCA9IG1faW5kZXg7Cisg
ICAgT3JpZ2luIG9yaWdpbiA9IG1fb3JpZ2luOworICAgIAorICAgIHRoaXMtPn5WYWx1ZSgpOwor
ICAgIAorICAgIG5ldyAodGhpcykgVmFsdWUoSnVtcCwgVm9pZCwgb3JpZ2luKTsKKyAgICAKKyAg
ICB0aGlzLT5vd25lciA9IG93bmVyOworICAgIHRoaXMtPm1faW5kZXggPSBpbmRleDsKKyAgICAK
KyAgICBvd25lci0+c2V0U3VjY2Vzc29ycyh0YXJnZXQpOworfQorCit2b2lkIFZhbHVlOjpyZXBs
YWNlV2l0aE9vcHMoQmFzaWNCbG9jayogb3duZXIpCit7CisgICAgUkVMRUFTRV9BU1NFUlQob3du
ZXItPmxhc3QoKSA9PSB0aGlzKTsKKyAgICAKKyAgICB1bnNpZ25lZCBpbmRleCA9IG1faW5kZXg7
CisgICAgT3JpZ2luIG9yaWdpbiA9IG1fb3JpZ2luOworICAgIAorICAgIHRoaXMtPn5WYWx1ZSgp
OworICAgIAorICAgIG5ldyAodGhpcykgVmFsdWUoT29wcywgVm9pZCwgb3JpZ2luKTsKKyAgICAK
KyAgICB0aGlzLT5vd25lciA9IG93bmVyOworICAgIHRoaXMtPm1faW5kZXggPSBpbmRleDsKKyAg
ICAKKyAgICBvd25lci0+Y2xlYXJTdWNjZXNzb3JzKCk7Cit9CisKK3ZvaWQgVmFsdWU6OnJlcGxh
Y2VXaXRoSnVtcChjb25zdCBGcmVxdWVudGVkQmxvY2smIHRhcmdldCkKK3sKKyAgICByZXBsYWNl
V2l0aEp1bXAob3duZXIsIHRhcmdldCk7Cit9CisKK3ZvaWQgVmFsdWU6OnJlcGxhY2VXaXRoT29w
cygpCit7CisgICAgcmVwbGFjZVdpdGhPb3BzKG93bmVyKTsKK30KKwogdm9pZCBWYWx1ZTo6ZHVt
cChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogewogICAgIGJvb2wgaXNDb25zdGFudCA9IGZhbHNl
OwpAQCAtMTg5LDYgKzIzNCwxOSBAQCB2b2lkIFZhbHVlOjpkZWVwRHVtcChjb25zdCBQcm9jZWR1
cmUqIHByCiAgICAgb3V0LnByaW50KCIpIik7CiB9CiAKK3ZvaWQgVmFsdWU6OmR1bXBTdWNjZXNz
b3JzKGNvbnN0IEJhc2ljQmxvY2sqIGJsb2NrLCBQcmludFN0cmVhbSYgb3V0KSBjb25zdAorewor
ICAgIC8vIE5vdGUgdGhhdCB0aGlzIG11c3Qgbm90IGNyYXNoIGlmIHdlIGhhdmUgdGhlIHdyb25n
IG51bWJlciBvZiBzdWNjZXNzb3JzLCBzaW5jZSBzb21lb25lCisgICAgLy8gZGVidWdnaW5nIGEg
bnVtYmVyLW9mLXN1Y2Nlc3NvcnMgYnVnIHdpbGwgcHJvYmFibHkgd2FudCB0byBkdW1wIElSIQor
ICAgIAorICAgIGlmIChvcGNvZGUoKSA9PSBCcmFuY2ggJiYgYmxvY2stPm51bVN1Y2Nlc3NvcnMo
KSA9PSAyKSB7CisgICAgICAgIG91dC5wcmludCgiVGhlbjoiLCBibG9jay0+dGFrZW4oKSwgIiwg
RWxzZToiLCBibG9jay0+bm90VGFrZW4oKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
CisgICAgb3V0LnByaW50KGxpc3REdW1wKGJsb2NrLT5zdWNjZXNzb3JzKCkpKTsKK30KKwogVmFs
dWUqIFZhbHVlOjpuZWdDb25zdGFudChQcm9jZWR1cmUmKSBjb25zdAogewogICAgIHJldHVybiBu
dWxscHRyOwpAQCAtNzEzLDYgKzc3MSwxMCBAQCBUeXBlIFZhbHVlOjp0eXBlRm9yKE9wY29kZSBv
cGNvZGUsIFZhbHVlCiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIFZvaWQ7CiAgICAgY2FzZSBO
b3A6CisgICAgY2FzZSBKdW1wOgorICAgIGNhc2UgQnJhbmNoOgorICAgIGNhc2UgUmV0dXJuOgor
ICAgIGNhc2UgT29wczoKICAgICAgICAgcmV0dXJuIFZvaWQ7CiAgICAgY2FzZSBTZWxlY3Q6CiAg
ICAgICAgIEFTU0VSVChzZWNvbmRDaGlsZCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNWYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Zh
bHVlLmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Zh
bHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkFpckFy
Zy5oIgogI2luY2x1ZGUgIkIzRWZmZWN0cy5oIgorI2luY2x1ZGUgIkIzRnJlcXVlbnRlZEJsb2Nr
LmgiCiAjaW5jbHVkZSAiQjNPcGNvZGUuaCIKICNpbmNsdWRlICJCM09yaWdpbi5oIgogI2luY2x1
ZGUgIkIzU3BhcnNlQ29sbGVjdGlvbi5oIgpAQCAtMTA5LDkgKzExMCwxOSBAQCBwdWJsaWM6CiAg
ICAgdm9pZCByZXBsYWNlV2l0aE5vcElnbm9yaW5nVHlwZSgpOwogICAgIAogICAgIHZvaWQgcmVw
bGFjZVdpdGhQaGkoKTsKKyAgICAKKyAgICAvLyBUaGVzZSB0cmFuc2Zvcm1hdGlvbnMgYXJlIG9u
bHkgdmFsaWQgZm9yIHRlcm1pbmFscy4KKyAgICB2b2lkIHJlcGxhY2VXaXRoSnVtcChCYXNpY0Js
b2NrKiBvd25lciwgY29uc3QgRnJlcXVlbnRlZEJsb2NrJik7CisgICAgdm9pZCByZXBsYWNlV2l0
aE9vcHMoQmFzaWNCbG9jayogb3duZXIpOworICAgIAorICAgIC8vIFlvdSBjYW4gdXNlIHRoaXMg
Zm9ybSBpZiBvd25lcnMgYXJlIHZhbGlkLiBUaGV5J3JlIHVzdWFsbHkgbm90IHZhbGlkLgorICAg
IHZvaWQgcmVwbGFjZVdpdGhKdW1wKGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYpOworICAgIHZvaWQg
cmVwbGFjZVdpdGhPb3BzKCk7CiAKICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsK
ICAgICB2b2lkIGRlZXBEdW1wKGNvbnN0IFByb2NlZHVyZSosIFByaW50U3RyZWFtJikgY29uc3Q7
CisgICAgCisgICAgdmlydHVhbCB2b2lkIGR1bXBTdWNjZXNzb3JzKGNvbnN0IEJhc2ljQmxvY2sq
LCBQcmludFN0cmVhbSYpIGNvbnN0OwogCiAgICAgLy8gVGhpcyBpcyBob3cgeW91IGNhc3QgVmFs
dWVzLiBGb3IgZXhhbXBsZSwgaWYgeW91IHdhbnQgdG8gZG8gc29tZXRoaW5nIHByb3ZpZGVkIHRo
YXQgd2UgaGF2ZSBhCiAgICAgLy8gQXJndW1lbnRSZWdWYWx1ZSwgeW91IGNhbiBkbzoKQEAgLTIy
Myw3ICsyMzQsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0xpa2VOb25aZXJvKCkgY29uc3QgeyBy
ZXR1cm4gYXNUcmlTdGF0ZSgpID09IFRydWVUcmlTdGF0ZTsgfQogCiAgICAgRWZmZWN0cyBlZmZl
Y3RzKCkgY29uc3Q7Ci0KKyAgICAKICAgICAvLyBUaGlzIHJldHVybnMgYSBWYWx1ZUtleSB0aGF0
IGRlc2NyaWJlcyB0aGF0IHRoaXMgVmFsdWUgcmV0dXJucyB3aGVuIGl0IGV4ZWN1dGVzLiBSZXR1
cm5zIGFuCiAgICAgLy8gZW1wdHkgVmFsdWVLZXkgaWYgdGhpcyBWYWx1ZSBpcyBpbXB1cmUuIE5v
dGUgdGhhdCBhbiBvcGVyYXRpb24gdGhhdCByZXR1cm5zIFZvaWQgY291bGQgc3RpbGwKICAgICAv
LyBoYXZlIGEgbm9uLWVtcHR5IFZhbHVlS2V5LiBUaGlzIGhhcHBlbnMgZm9yIGV4YW1wbGUgd2l0
aCBDaGVjayBvcGVyYXRpb25zLgpAQCAtMjY0LDYgKzI3NSw4IEBAIHByaXZhdGU6CiAgICAgICAg
IGNhc2UgRnJhbWVQb2ludGVyOgogICAgICAgICBjYXNlIE5vcDoKICAgICAgICAgY2FzZSBQaGk6
CisgICAgICAgIGNhc2UgSnVtcDoKKyAgICAgICAgY2FzZSBPb3BzOgogICAgICAgICAgICAgaWYg
KFVOTElLRUxZKG51bUFyZ3MpKQogICAgICAgICAgICAgICAgIGJhZE9wY29kZShvcGNvZGUsIG51
bUFyZ3MpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0yODQsNiArMjk3LDggQEAgcHJpdmF0ZToK
ICAgICAgICAgY2FzZSBEb3VibGVUb0Zsb2F0OgogICAgICAgICBjYXNlIElUb0Y6CiAgICAgICAg
IGNhc2UgQml0d2lzZUNhc3Q6CisgICAgICAgIGNhc2UgQnJhbmNoOgorICAgICAgICBjYXNlIFJl
dHVybjoKICAgICAgICAgICAgIGlmIChVTkxJS0VMWShudW1BcmdzICE9IDEpKQogICAgICAgICAg
ICAgICAgIGJhZE9wY29kZShvcGNvZGUsIG51bUFyZ3MpOwogICAgICAgICAgICAgYnJlYWs7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMz
LDcgKzMzLDYgQEAKICNpbmNsdWRlICJCM0NvbXB1dGVEaXZpc2lvbk1hZ2ljLmgiCiAjaW5jbHVk
ZSAiQjNDb25zdDMyVmFsdWUuaCIKICNpbmNsdWRlICJCM0NvbnN0UHRyVmFsdWUuaCIKLSNpbmNs
dWRlICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzRWZmZWN0cy5oIgogI2luY2x1ZGUg
IkIzTWF0aEV4dHJhcy5oIgogI2luY2x1ZGUgIkIzTWVtb3J5VmFsdWUuaCIKQEAgLTQ2LDcgKzQ1
LDEwIEBACiAjaW5jbHVkZSAiQjNVcHNpbG9uVmFsdWUuaCIKICNpbmNsdWRlICJCM1ZhbGlkYXRl
LmgiCiAjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKKyNpbmNsdWRlICJCM1ZhcmlhYmxlVmFs
dWUuaCIKICNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKKyNpbmNsdWRlICJGUFJJbmZvLmgiCisj
aW5jbHVkZSAiR1BSSW5mby5oIgogI2luY2x1ZGUgIkluaXRpYWxpemVUaHJlYWRpbmcuaCIKICNp
bmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiTGlua0J1ZmZlci5oIgpAQCAtNTQsNiAr
NTYsNyBAQAogI2luY2x1ZGUgIlZNLmgiCiAjaW5jbHVkZSA8Y21hdGg+CiAjaW5jbHVkZSA8c3Ry
aW5nPgorI2luY2x1ZGUgPHd0Zi9MaXN0RHVtcC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAj
aW5jbHVkZSA8d3RmL051bWJlck9mQ29yZXMuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+
CkBAIC03NSw2ICs3OCwxMSBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOjpCMzsKIAogbmFtZXNwYWNl
IHsKIAorYm9vbCBzaG91bGRCZVZlcmJvc2UoKQoreworICAgIHJldHVybiBzaG91bGREdW1wSVIo
QjNNb2RlKTsKK30KKwogU3RhdGljTG9jayBjcmFzaExvY2s7CiAKIC8vIE5vdGhpbmcgZmFuY3kg
Zm9yIG5vdzsgd2UganVzdCB1c2UgdGhlIGV4aXN0aW5nIFdURiBhc3NlcnRpb24gbWFjaGluZXJ5
LgpAQCAtMTk0LDcgKzIwMiw3IEBAIHZvaWQgdGVzdDQyKCkKICAgICBQcm9jZWR1cmUgcHJvYzsK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBjb25z
dDQyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBjb25zdDQyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgY29uc3Q0Mik7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJv
YykgPT0gNDIpOwogfQpAQCAtMjA0LDcgKzIxMiw3IEBAIHZvaWQgdGVzdExvYWQ0MigpCiAgICAg
UHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
ICAgICBpbnQgeCA9IDQyOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwKQEAgLTIyMCw3ICsyMjgsNyBAQCB2b2lkIHRl
c3RMb2FkV2l0aE9mZnNldEltcGwoaW50MzJfdCBvZmZzCiAgICAgICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgICAgIGludDY0X3QgeCA9IC00MjsKICAgICAgICAg
VmFsdWUqIGJhc2UgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBMb2FkLCBJbnQ2NCwgT3Jp
Z2luKCksCkBAIC0yMzUsNyArMjQzLDcgQEAgdm9pZCB0ZXN0TG9hZFdpdGhPZmZzZXRJbXBsKGlu
dDMyX3Qgb2ZmcwogICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwog
ICAgICAgICBpbnQzMl90IHggPSAtNDI7CiAgICAgICAgIFZhbHVlKiBiYXNlID0gcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjApOwotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAg
ICAgICAgICAgICAgcHJvYywgTG9hZCwgSW50MzIsIE9yaWdpbigpLApAQCAtMjg4LDcgKzI5Niw3
IEBAIHZvaWQgdGVzdEFyZyhpbnQgYXJndW1lbnQpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAK
QEAgLTI5OSw3ICszMDcsNyBAQCB2b2lkIHRlc3RSZXR1cm5Db25zdDY0KGludDY0X3QgdmFsdWUp
CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1
ZSkpOwogCkBAIC0zMTEsNyArMzE5LDcgQEAgdm9pZCB0ZXN0QWRkQXJnKGludCBhKQogICAgIFBy
b2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAg
ICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBBZGQsIE9yaWdpbigpLCB2YWx1ZSwgdmFsdWUpKTsKIApAQCAtMzIyLDcgKzMzMCw3IEBA
IHZvaWQgdGVzdEFkZEFyZ3MoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKQEAgLTMzNiw3ICszNDQsNyBA
QCB2b2lkIHRlc3RBZGRBcmdJbW0oaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9j
OwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKQEAgLTM1MCw3ICszNTgs
NyBAQCB2b2lkIHRlc3RBZGRJbW1BcmcoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBw
cm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKQEAgLTM3MCw3ICsz
NzgsNyBAQCB2b2lkIHRlc3RBZGRBcmdNZW0oaW50NjRfdCBhLCBpbnQ2NF90IGIpCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIwKSwKICAgICAgICAgbG9hZCk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1l
bW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgYWRkcmVzcyk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9v
dC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGludDY0X3Qg
aW5wdXRPdXRwdXQgPSBiOwogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2Ms
IGEsICZpbnB1dE91dHB1dCkpOwpAQCAtMzg2LDcgKzM5NCw3IEBAIHZvaWQgdGVzdEFkZE1lbUFy
ZyhpbnQ2NF90IGEsIGludDY0X3QgYikKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLAogICAgICAgICBsb2FkLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMSkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhjb21waWxl
QW5kUnVuPGludDY0X3Q+KHByb2MsICZhLCBiKSA9PSBhICsgYik7CiB9CkBAIC00MDEsNyArNDA5
LDcgQEAgdm9pZCB0ZXN0QWRkSW1tTWVtKGludDY0X3QgYSwgaW50NjRfdCBiKQogICAgICAgICBy
b290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSksCiAgICAgICAg
IGxvYWQpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9y
aWdpbigpLCByZXN1bHQsIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAwKSk7CiAKICAgICBpbnQ2NF90IGlucHV0T3V0cHV0ID0gYjsKICAgICBDSEVD
SyghY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsICZpbnB1dE91dHB1dCkpOwpAQCAtNDE0LDcgKzQy
Miw3IEBAIHZvaWQgdGVzdEFkZEFyZzMyKGludCBhKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIHZhbHVlLCB2YWx1ZSkpOwogCkBA
IC00MjUsNyArNDMzLDcgQEAgdm9pZCB0ZXN0QWRkQXJnczMyKGludCBhLCBpbnQgYikKIHsKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCks
CkBAIC00NDksNyArNDU3LDcgQEAgdm9pZCB0ZXN0QWRkQXJnTWVtMzIoaW50MzJfdCBhLCBpbnQz
Ml90IAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGFyZ3VtZW50LCBsb2FkKTsK
ICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwg
cmVzdWx0LCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgMCkpOwogCiAgICAgaW50MzJfdCBpbnB1dE91dHB1dCA9IGI7CiAgICAgQ0hFQ0soIWNvbXBp
bGVBbmRSdW48aW50MzJfdD4ocHJvYywgYSwgJmlucHV0T3V0cHV0KSk7CkBAIC00NjUsNyArNDcz
LDcgQEAgdm9pZCB0ZXN0QWRkTWVtQXJnMzIoaW50MzJfdCBhLCBpbnQzMl90IAogICAgIFZhbHVl
KiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSkpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGxvYWQsIGFyZ3VtZW50KTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9j
LCAmYSwgYikgPT0gYSArIGIpOwogfQpAQCAtNDgwLDcgKzQ4OCw3IEBAIHZvaWQgdGVzdEFkZElt
bU1lbTMyKGludDMyX3QgYSwgaW50MzJfdCAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpLAogICAgICAgICBsb2FkKTsKICAgICByb290LT5h
cHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBhZGRy
ZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAg
ICAgaW50MzJfdCBpbnB1dE91dHB1dCA9IGI7CiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50
Pihwcm9jLCAmaW5wdXRPdXRwdXQpKTsKQEAgLTQ5NSw3ICs1MDMsNyBAQCB2b2lkIHRlc3RBZGRB
cmdaZXJvSW1tWkRlZigpCiAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSogY29uc3RaZXJvID0gcm9vdC0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCkBAIC01MTUsNyArNTIzLDcgQEAgdm9p
ZCB0ZXN0QWRkTG9hZFR3aWNlKCkKICAgICAgICAgVmFsdWUqIGxvYWQgPSByb290LT5hcHBlbmRO
ZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZCwgSW50MzIsIE9yaWdpbigp
LAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAmdmFsdWUpKTsKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEFkZCwgT3JpZ2luKCksIGxvYWQsIGxvYWQpKTsKIApAQCAtNTMyLDcgKzU0MCw3IEBAIHZvaWQg
dGVzdEFkZEFyZ0RvdWJsZShkb3VibGUgYSkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJn
dW1lbnRGUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgdmFs
dWUsIHZhbHVlKSk7CiAKQEAgLTU0NSw3ICs1NTMsNyBAQCB2b2lkIHRlc3RBZGRBcmdzRG91Ymxl
KGRvdWJsZSBhLCBkb3VibGUgCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiB2YWx1
ZUIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQ
UkluZm86OmFyZ3VtZW50RlBSMSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3Jp
Z2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTU1OCw3ICs1NjYsNyBAQCB2b2lkIHRlc3RB
ZGRBcmdJbW1Eb3VibGUoZG91YmxlIGEsIGRvdWJsCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAg
IFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIGIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCB2
YWx1ZUEsIHZhbHVlQikpOwogCkBAIC01NzEsNyArNTc5LDcgQEAgdm9pZCB0ZXN0QWRkSW1tQXJn
RG91YmxlKGRvdWJsZSBhLCBkb3VibAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRG
UFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgdmFsdWVBLCB2
YWx1ZUIpKTsKIApAQCAtNTg0LDcgKzU5Miw3IEBAIHZvaWQgdGVzdEFkZEltbXNEb3VibGUoZG91
YmxlIGEsIGRvdWJsZSAKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwog
ICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8Q29u
c3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBBZGQsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC02MDAsNyArNjA4LDcg
QEAgdm9pZCB0ZXN0QWRkQXJnRmxvYXQoZmxvYXQgYSkKICAgICBWYWx1ZSogZmxvYXRWYWx1ZSA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1
bWVudDMyKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBBZGQsIE9yaWdpbigpLCBmbG9hdFZhbHVlLCBmbG9hdFZhbHVlKTsKICAgICBWYWx1ZSogcmVz
dWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4o
KSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogCiAgICAgQ0hFQ0soaXNJZGVu
dGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4o
YSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSArIGEpKSk7CkBAIC02MTgsNyArNjI2LDcgQEAg
dm9pZCB0ZXN0QWRkQXJnc0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIpCiAgICAgVmFsdWUqIGZsb2F0
VmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2lu
KCksIGFyZ3VtZW50MmludDMyKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBmbG9hdFZhbHVlMSwgZmxvYXRWYWx1ZTIpOwog
ICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lz
ZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAg
Q0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nh
c3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSksIGJpdHdpc2VfY2FzdDxp
bnQzMl90PihhICsgYikpKTsKIH0KQEAgLTYzMyw3ICs2NDEsNyBAQCB2b2lkIHRlc3RBZGRBcmdJ
bW1GbG9hdChmbG9hdCBhLCBmbG9hdCBiCiAgICAgVmFsdWUqIGNvbnN0VmFsdWUgPSByb290LT5h
cHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7CiAgICAgVmFsdWUq
IHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgZmxv
YXRWYWx1ZSwgY29uc3RWYWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGlu
dDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQz
Ml90PihhICsgYikpKTsKIH0KQEAgLTY0OCw3ICs2NTYsNyBAQCB2b2lkIHRlc3RBZGRJbW1BcmdG
bG9hdChmbG9hdCBhLCBmbG9hdCBiCiAgICAgVmFsdWUqIGNvbnN0VmFsdWUgPSByb290LT5hcHBl
bmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHJl
c3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgY29uc3RW
YWx1ZSwgZmxvYXRWYWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMy
X3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90
PihhICsgYikpKTsKIH0KQEAgLTY2MSw3ICs2NjksNyBAQCB2b2lkIHRlc3RBZGRJbW1zRmxvYXQo
ZmxvYXQgYSwgZmxvYXQgYikKICAgICBWYWx1ZSogY29uc3RWYWx1ZTIgPSByb290LT5hcHBlbmRO
ZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7CiAgICAgVmFsdWUqIHJlc3Vs
dCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgY29uc3RWYWx1
ZTEsIGNvbnN0VmFsdWUyKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJf
dD4ocHJvYyksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhICsgYikpKTsKIH0KQEAgLTY3Nyw3ICs2
ODUsNyBAQCB2b2lkIHRlc3RBZGRBcmdGbG9hdFdpdGhVc2VsZXNzRG91YmxlQ29uCiAgICAgVmFs
dWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwg
YXNEb3VibGUsIGFzRG91YmxlKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCByZXN1bHQpOwogICAg
IFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNh
c3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAg
ICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2Vf
Y2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhICsgYSkpKTsKIH0KQEAg
LTY5Nyw3ICs3MDUsNyBAQCB2b2lkIHRlc3RBZGRBcmdzRmxvYXRXaXRoVXNlbGVzc0RvdWJsZUNv
CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBP
cmlnaW4oKSwgYXNEb3VibGUxLCBhc0RvdWJsZTIpOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIHJl
c3VsdCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJv
YywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBi
aXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSArIGIpKSk7CiB9CkBAIC03MTksNyArNzI3LDcgQEAgdm9p
ZCB0ZXN0QWRkQXJnc0Zsb2F0V2l0aEVmZmVjdGZ1bERvdWJsZQogICAgIFZhbHVlKiBkb3VibGVB
ZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjIpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1
ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGRvdWJsZUFkZHJlc3MpOwogICAgIFZh
bHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3Qs
IE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBk
b3VibGUgZWZmZWN0ID0gMDsKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGlu
dDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgYml0d2lzZV9jYXN0PGludDMy
X3Q+KGIpLCAmZWZmZWN0KSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgKyBiKSkpOwpAQCAtNzMy
LDcgKzc0MCw3IEBAIHZvaWQgdGVzdE11bEFyZyhpbnQgYSkKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgdmFsdWUsIHZhbHVlKSk7
CiAKQEAgLTc1OSw3ICs3NjcsNyBAQCB2b2lkIHRlc3RNdWxBcmdTdG9yZShpbnQgYSkKICAgICAg
ICAgcHJvYywgU3RvcmUsIE9yaWdpbigpLCBtdWwsCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
b25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJm11bFNsb3QpKTsKIAotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGlu
dD4ocHJvYywgYSkpOwpAQCAtNzc0LDcgKzc4Miw3IEBAIHZvaWQgdGVzdE11bEFkZEFyZyhpbnQg
YSkKICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICBw
cm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKQEAgLTc4OCw3
ICs3OTYsNyBAQCB2b2lkIHRlc3RNdWxBcmdzKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1
cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIE11bCwgT3JpZ2luKCksCkBAIC04MDIs
NyArODEwLDcgQEAgdm9pZCB0ZXN0TXVsQXJnSW1tKGludDY0X3QgYSwgaW50NjRfdCBiKQogewog
ICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTXVsLCBPcmlnaW4o
KSwKQEAgLTgxNiw3ICs4MjQsNyBAQCB2b2lkIHRlc3RNdWxJbW1BcmcoaW50IGEsIGludCBiKQog
ewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTXVsLCBPcmln
aW4oKSwKQEAgLTgzMCw3ICs4MzgsNyBAQCB2b2lkIHRlc3RNdWxBcmdzMzIoaW50IGEsIGludCBi
KQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTXVsLCBP
cmlnaW4oKSwKQEAgLTg1Myw3ICs4NjEsNyBAQCB2b2lkIHRlc3RNdWxMb2FkVHdpY2UoKQogICAg
ICAgICBWYWx1ZSogbG9hZCA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBl
bmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZ2YWx1ZSkpOwotICAgICAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgbG9hZCwgbG9h
ZCkpOwogCkBAIC04NzUsNyArODgzLDcgQEAgdm9pZCB0ZXN0TXVsQWRkQXJnc0xlZnQoKQogICAg
IFZhbHVlKiBhcmcyID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpOwogICAgIFZhbHVlKiBtdWx0aXBsaWVkID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBhcmcwLCBhcmcxKTsK
ICAgICBWYWx1ZSogYWRkZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3Jp
Z2luKCksIG11bHRpcGxpZWQsIGFyZzIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOwogCiAgICAgYXV0byBj
b2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAtODk5LDcgKzkwNyw3IEBAIHZvaWQgdGVzdE11bEFk
ZEFyZ3NSaWdodCgpCiAgICAgVmFsdWUqIGFyZzIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMik7CiAgICAgVmFs
dWUqIG11bHRpcGxpZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2lu
KCksIGFyZzEsIGFyZzIpOwogICAgIFZhbHVlKiBhZGRlZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYXJnMCwgbXVsdGlwbGllZCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOworICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRl
ZCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC05MjYsNyArOTM0LDcg
QEAgdm9pZCB0ZXN0TXVsQWRkQXJnc0xlZnQzMigpCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKSk7
CiAgICAgVmFsdWUqIG11bHRpcGxpZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11
bCwgT3JpZ2luKCksIGFyZzAsIGFyZzEpOwogICAgIFZhbHVlKiBhZGRlZCA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgbXVsdGlwbGllZCwgYXJnMik7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRk
ZWQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBhZGRlZCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC05NTMs
NyArOTYxLDcgQEAgdm9pZCB0ZXN0TXVsQWRkQXJnc1JpZ2h0MzIoKQogICAgICAgICByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMikpOwogICAgIFZhbHVlKiBtdWx0aXBsaWVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBNdWwsIE9yaWdpbigpLCBhcmcxLCBhcmcyKTsKICAgICBWYWx1ZSogYWRkZWQgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGFyZzAsIG11bHRpcGxp
ZWQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIGFkZGVkKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgYWRkZWQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsK
IApAQCAtOTc3LDcgKzk4NSw3IEBAIHZvaWQgdGVzdE11bFN1YkFyZ3NMZWZ0KCkKICAgICBWYWx1
ZSogYXJnMiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKTsKICAgICBWYWx1ZSogbXVsdGlwbGllZCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgYXJnMCwgYXJnMSk7CiAgICAg
VmFsdWUqIGFkZGVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigp
LCBtdWx0aXBsaWVkLCBhcmcyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKIAogICAgIGF1dG8gY29kZSA9
IGNvbXBpbGUocHJvYyk7CiAKQEAgLTEwMDEsNyArMTAwOSw3IEBAIHZvaWQgdGVzdE11bFN1YkFy
Z3NSaWdodCgpCiAgICAgVmFsdWUqIGFyZzIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMik7CiAgICAgVmFsdWUq
IG11bHRpcGxpZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCks
IGFyZzEsIGFyZzIpOwogICAgIFZhbHVlKiBhZGRlZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgU3ViLCBPcmlnaW4oKSwgYXJnMCwgbXVsdGlwbGllZCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7
CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC0xMDI4LDcgKzEwMzYsNyBA
QCB2b2lkIHRlc3RNdWxTdWJBcmdzTGVmdDMyKCkKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpKTsK
ICAgICBWYWx1ZSogbXVsdGlwbGllZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVs
LCBPcmlnaW4oKSwgYXJnMCwgYXJnMSk7CiAgICAgVmFsdWUqIGFkZGVkID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBtdWx0aXBsaWVkLCBhcmcyKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRl
ZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIGFkZGVkKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKQEAgLTEwNTUs
NyArMTA2Myw3IEBAIHZvaWQgdGVzdE11bFN1YkFyZ3NSaWdodDMyKCkKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjIpKTsKICAgICBWYWx1ZSogbXVsdGlwbGllZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgYXJnMSwgYXJnMik7CiAgICAgVmFsdWUqIGFkZGVkID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBhcmcwLCBtdWx0aXBs
aWVkKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBhZGRlZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIGFkZGVkKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7
CiAKQEAgLTEwNzksNyArMTA4Nyw3IEBAIHZvaWQgdGVzdE11bE5lZ0FyZ3MoKQogICAgIFZhbHVl
KiBtdWx0aXBsaWVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigp
LCBhcmcwLCBhcmcxKTsKICAgICBWYWx1ZSogemVybyA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0
VmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKTsKICAgICBWYWx1ZSogYWRkZWQgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIHplcm8sIG11bHRpcGxpZWQpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFk
ZGVkKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgYWRkZWQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAtMTEw
Myw3ICsxMTExLDcgQEAgdm9pZCB0ZXN0TXVsTmVnQXJnczMyKCkKICAgICBWYWx1ZSogbXVsdGlw
bGllZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgYXJnMCwg
YXJnMSk7CiAgICAgVmFsdWUqIHplcm8gPSByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgMCk7CiAgICAgVmFsdWUqIGFkZGVkID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCB6ZXJvLCBtdWx0aXBsaWVkKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFk
ZGVkKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKQEAgLTExMjAsNyArMTEy
OCw3IEBAIHZvaWQgdGVzdE11bEFyZ0RvdWJsZShkb3VibGUgYSkKICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2
YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
RlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBP
cmlnaW4oKSwgdmFsdWUsIHZhbHVlKSk7CiAKQEAgLTExMzMsNyArMTE0MSw3IEBAIHZvaWQgdGVz
dE11bEFyZ3NEb3VibGUoZG91YmxlIGEsIGRvdWJsZSAKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAg
ICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIxKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgTXVsLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTE0Niw3ICsxMTU0
LDcgQEAgdm9pZCB0ZXN0TXVsQXJnSW1tRG91YmxlKGRvdWJsZSBhLCBkb3VibAogICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJn
dW1lbnRGUFIwKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91
YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
TXVsLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTE1OSw3ICsxMTY3LDcgQEAg
dm9pZCB0ZXN0TXVsSW1tQXJnRG91YmxlKGRvdWJsZSBhLCBkb3VibAogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVu
ZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHZh
bHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
RlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBP
cmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTE3Miw3ICsxMTgwLDcgQEAgdm9pZCB0
ZXN0TXVsSW1tc0RvdWJsZShkb3VibGUgYSwgZG91YmxlIAogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxD
b25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHZhbHVlQiA9
IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7
CiAKQEAgLTExODgsNyArMTE5Niw3IEBAIHZvaWQgdGVzdE11bEFyZ0Zsb2F0KGZsb2F0IGEpCiAg
ICAgVmFsdWUqIGZsb2F0VmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdp
c2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSwgZmxvYXRW
YWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7
CiAKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywg
Yml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgKiBhKSkp
OwpAQCAtMTIwNiw3ICsxMjE0LDcgQEAgdm9pZCB0ZXN0TXVsQXJnc0Zsb2F0KGZsb2F0IGEsIGZs
b2F0IGIpCiAgICAgVmFsdWUqIGZsb2F0VmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MmludDMyKTsKICAgICBWYWx1ZSog
cmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBmbG9h
dFZhbHVlMSwgZmxvYXRWYWx1ZTIpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxp
bnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxpbnQz
Ml90PihiKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhICogYikpKTsKIH0KQEAgLTEyMjEsNyAr
MTIyOSw3IEBAIHZvaWQgdGVzdE11bEFyZ0ltbUZsb2F0KGZsb2F0IGEsIGZsb2F0IGIKICAgICBW
YWx1ZSogY29uc3RWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBiKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBNdWwsIE9yaWdpbigpLCBmbG9hdFZhbHVlLCBjb25zdFZhbHVlKTsKICAgICBWYWx1
ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBP
cmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlz
SWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMy
X3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgKiBiKSkpOwogfQpAQCAtMTIzNiw3ICsx
MjQ0LDcgQEAgdm9pZCB0ZXN0TXVsSW1tQXJnRmxvYXQoZmxvYXQgYSwgZmxvYXQgYgogICAgIFZh
bHVlKiBjb25zdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIE11bCwgT3JpZ2luKCksIGNvbnN0VmFsdWUsIGZsb2F0VmFsdWUpOwogICAgIFZhbHVl
KiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9y
aWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJ
ZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJf
dD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAqIGIpKSk7CiB9CkBAIC0xMjQ5LDcgKzEy
NTcsNyBAQCB2b2lkIHRlc3RNdWxJbW1zRmxvYXQoZmxvYXQgYSwgZmxvYXQgYikKICAgICBWYWx1
ZSogY29uc3RWYWx1ZTIgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgYik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgTXVsLCBPcmlnaW4oKSwgY29uc3RWYWx1ZTEsIGNvbnN0VmFsdWUyKTsKICAgICBWYWx1
ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBP
cmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlz
SWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYyksIGJpdHdpc2VfY2FzdDxpbnQz
Ml90PihhICogYikpKTsKIH0KQEAgLTEyNjUsNyArMTI3Myw3IEBAIHZvaWQgdGVzdE11bEFyZ0Zs
b2F0V2l0aFVzZWxlc3NEb3VibGVDb24KICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBhc0RvdWJsZSwgYXNEb3VibGUpOwogICAg
IFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91Ymxl
VG9GbG9hdCwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBp
bGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lz
ZV9jYXN0PGludDMyX3Q+KGEgKiBhKSkpOwogfQpAQCAtMTI4NSw3ICsxMjkzLDcgQEAgdm9pZCB0
ZXN0TXVsQXJnc0Zsb2F0V2l0aFVzZWxlc3NEb3VibGVDbwogICAgIFZhbHVlKiByZXN1bHQgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGFzRG91YmxlMSwgYXNE
b3VibGUyKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCByZXN1bHQpOwogICAgIFZhbHVlKiByZXN1
bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigp
LCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lk
ZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90
PihhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEg
KiBiKSkpOwogfQpAQCAtMTMwNyw3ICsxMzE1LDcgQEAgdm9pZCB0ZXN0TXVsQXJnc0Zsb2F0V2l0
aEVmZmVjdGZ1bERvdWJsZQogICAgIFZhbHVlKiBkb3VibGVNdWxyZXNzID0gcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjIpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdp
bigpLCByZXN1bHQsIGRvdWJsZU11bHJlc3MpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3Vs
dCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBkb3VibGUgZWZmZWN0ID0gMDsKICAg
ICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2Vf
Y2FzdDxpbnQzMl90PihhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpLCAmZWZmZWN0KSwgYml0
d2lzZV9jYXN0PGludDMyX3Q+KGEgKiBiKSkpOwpAQCAtMTMxOSw3ICsxMzI3LDcgQEAgdm9pZCB0
ZXN0RGl2QXJnRG91YmxlKGRvdWJsZSBhKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1
bWVudEZQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEaXYsIE9yaWdpbigpLCB2YWx1
ZSwgdmFsdWUpKTsKIApAQCAtMTMzMiw3ICsxMzQwLDcgQEAgdm9pZCB0ZXN0RGl2QXJnc0RvdWJs
ZShkb3VibGUgYSwgZG91YmxlIAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogdmFs
dWVCID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBG
UFJJbmZvOjphcmd1bWVudEZQUjEpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEaXYsIE9y
aWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC0xMzQ1LDcgKzEzNTMsNyBAQCB2b2lkIHRl
c3REaXZBcmdJbW1Eb3VibGUoZG91YmxlIGEsIGRvdWJsCiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwog
ICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIGIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEaXYsIE9yaWdpbigp
LCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC0xMzU4LDcgKzEzNjYsNyBAQCB2b2lkIHRlc3REaXZJ
bW1BcmdEb3VibGUoZG91YmxlIGEsIGRvdWJsCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91
YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1
bWVudEZQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEaXYsIE9yaWdpbigpLCB2YWx1
ZUEsIHZhbHVlQikpOwogCkBAIC0xMzcxLDcgKzEzNzksNyBAQCB2b2lkIHRlc3REaXZJbW1zRG91
YmxlKGRvdWJsZSBhLCBkb3VibGUgCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5k
TmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTM4Nyw3
ICsxMzk1LDcgQEAgdm9pZCB0ZXN0RGl2QXJnRmxvYXQoZmxvYXQgYSkKICAgICBWYWx1ZSogZmxv
YXRWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdp
bigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBEaXYsIE9yaWdpbigpLCBmbG9hdFZhbHVlLCBmbG9hdFZhbHVlKTsKICAgICBW
YWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0
LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogCiAgICAgQ0hF
Q0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAvIGEpKSk7CkBAIC0xNDA1LDcg
KzE0MTMsNyBAQCB2b2lkIHRlc3REaXZBcmdzRmxvYXQoZmxvYXQgYSwgZmxvYXQgYikKICAgICBW
YWx1ZSogZmxvYXRWYWx1ZTIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VD
YXN0LCBPcmlnaW4oKSwgYXJndW1lbnQyaW50MzIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERpdiwgT3JpZ2luKCksIGZsb2F0VmFsdWUxLCBmbG9h
dFZhbHVlMik7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQz
Mik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2Ms
IGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0
d2lzZV9jYXN0PGludDMyX3Q+KGEgLyBiKSkpOwogfQpAQCAtMTQyMCw3ICsxNDI4LDcgQEAgdm9p
ZCB0ZXN0RGl2QXJnSW1tRmxvYXQoZmxvYXQgYSwgZmxvYXQgYgogICAgIFZhbHVlKiBjb25zdFZh
bHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIp
OwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERpdiwg
T3JpZ2luKCksIGZsb2F0VmFsdWUsIGNvbnN0VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1
bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29t
cGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oYSAvIGIpKSk7CiB9CkBAIC0xNDM1LDcgKzE0NDMsNyBAQCB2b2lk
IHRlc3REaXZJbW1BcmdGbG9hdChmbG9hdCBhLCBmbG9hdCBiCiAgICAgVmFsdWUqIGNvbnN0VmFs
dWUgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7
CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRGl2LCBP
cmlnaW4oKSwgY29uc3RWYWx1ZSwgZmxvYXRWYWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3Vs
dCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21w
aWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSksIGJpdHdp
c2VfY2FzdDxpbnQzMl90PihhIC8gYikpKTsKIH0KQEAgLTE0NDgsNyArMTQ1Niw3IEBAIHZvaWQg
dGVzdERpdkltbXNGbG9hdChmbG9hdCBhLCBmbG9hdCBiKQogICAgIFZhbHVlKiBjb25zdFZhbHVl
MiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsK
ICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEaXYsIE9y
aWdpbigpLCBjb25zdFZhbHVlMSwgY29uc3RWYWx1ZTIpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1
bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29t
cGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLyBiKSkp
OwogfQpAQCAtMTQ1OCw3ICsxNDY2LDcgQEAgdm9pZCB0ZXN0TW9kQXJnRG91YmxlKGRvdWJsZSBh
KQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigpLCB2YWx1ZSwgdmFsdWUpKTsKIApAQCAtMTQ3MSw3
ICsxNDc5LDcgQEAgdm9pZCB0ZXN0TW9kQXJnc0RvdWJsZShkb3VibGUgYSwgZG91YmxlIAogICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5m
bzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjEpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikp
OwogCkBAIC0xNDg0LDcgKzE0OTIsNyBAQCB2b2lkIHRlc3RNb2RBcmdJbW1Eb3VibGUoZG91Ymxl
IGEsIGRvdWJsCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBW
YWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290
LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBA
IC0xNDk3LDcgKzE1MDUsNyBAQCB2b2lkIHRlc3RNb2RJbW1BcmdEb3VibGUoZG91YmxlIGEsIGRv
dWJsCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSog
dmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBhKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC0xNTEw
LDcgKzE1MTgsNyBAQCB2b2lkIHRlc3RNb2RJbW1zRG91YmxlKGRvdWJsZSBhLCBkb3VibGUgCiAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVB
ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsK
ICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBiKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4o
KSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTUyNiw3ICsxNTM0LDcgQEAgdm9pZCB0ZXN0TW9k
QXJnRmxvYXQoZmxvYXQgYSkKICAgICBWYWx1ZSogZmxvYXRWYWx1ZSA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBW
YWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigp
LCBmbG9hdFZhbHVlLCBmbG9hdFZhbHVlKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdDMyKTsKIAogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFu
ZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nh
c3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KGZtb2QoYSwgYSkpKSkpOwpAQCAtMTU0NCw3
ICsxNTUyLDcgQEAgdm9pZCB0ZXN0TW9kQXJnc0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIpCiAgICAg
VmFsdWUqIGZsb2F0VmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNl
Q2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MmludDMyKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigpLCBmbG9hdFZhbHVlMSwgZmxv
YXRWYWx1ZTIpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9j
LCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSksIGJp
dHdpc2VfY2FzdDxpbnQzMl90PihzdGF0aWNfY2FzdDxmbG9hdD4oZm1vZChhLCBiKSkpKSk7CiB9
CkBAIC0xNTU5LDcgKzE1NjcsNyBAQCB2b2lkIHRlc3RNb2RBcmdJbW1GbG9hdChmbG9hdCBhLCBm
bG9hdCBiCiAgICAgVmFsdWUqIGNvbnN0VmFsdWUgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9h
dFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSwgY29uc3RWYWx1
ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBC
aXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAK
ICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdp
c2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihzdGF0aWNfY2FzdDxm
bG9hdD4oZm1vZChhLCBiKSkpKSk7CiB9CkBAIC0xNTc0LDcgKzE1ODIsNyBAQCB2b2lkIHRlc3RN
b2RJbW1BcmdGbG9hdChmbG9hdCBhLCBmbG9hdCBiCiAgICAgVmFsdWUqIGNvbnN0VmFsdWUgPSBy
b290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAg
VmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4o
KSwgY29uc3RWYWx1ZSwgZmxvYXRWYWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5k
UnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSksIGJpdHdpc2VfY2Fz
dDxpbnQzMl90PihzdGF0aWNfY2FzdDxmbG9hdD4oZm1vZChhLCBiKSkpKSk7CiB9CkBAIC0xNTg3
LDcgKzE1OTUsNyBAQCB2b2lkIHRlc3RNb2RJbW1zRmxvYXQoZmxvYXQgYSwgZmxvYXQgYikKICAg
ICBWYWx1ZSogY29uc3RWYWx1ZTIgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgYik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgY29uc3RWYWx1ZTEsIGNvbnN0VmFsdWUyKTsKICAg
ICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VD
YXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENI
RUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYyksIGJpdHdpc2VfY2Fz
dDxpbnQzMl90PihzdGF0aWNfY2FzdDxmbG9hdD4oZm1vZChhLCBiKSkpKSk7CiB9CkBAIC0xNjAz
LDcgKzE2MTEsNyBAQCB2b2lkIHRlc3REaXZBcmdGbG9hdFdpdGhVc2VsZXNzRG91YmxlQ29uCiAg
ICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRGl2LCBPcmln
aW4oKSwgYXNEb3VibGUsIGFzRG91YmxlKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCByZXN1bHQp
OwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0
d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7
CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJp
dHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhIC8gYSkpKTsK
IH0KQEAgLTE2MjMsNyArMTYzMSw3IEBAIHZvaWQgdGVzdERpdkFyZ3NGbG9hdFdpdGhVc2VsZXNz
RG91YmxlQ28KICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBEaXYsIE9yaWdpbigpLCBhc0RvdWJsZTEsIGFzRG91YmxlMik7CiAgICAgVmFsdWUqIGZsb2F0
UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmln
aW4oKSwgcmVzdWx0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMy
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQz
Ml90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90
PihiKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhIC8gYikpKTsKIH0KQEAgLTE2NDUsNyArMTY1
Myw3IEBAIHZvaWQgdGVzdERpdkFyZ3NGbG9hdFdpdGhFZmZlY3RmdWxEb3VibGUKICAgICBWYWx1
ZSogZG91YmxlRGl2cmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKTsKICAgICByb290LT5hcHBlbmROZXc8
TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBkb3VibGVEaXZyZXNz
KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJp
dHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIp
OwogCiAgICAgZG91YmxlIGVmZmVjdCA9IDA7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGls
ZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2Vf
Y2FzdDxpbnQzMl90PihiKSwgJmVmZmVjdCksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhIC8gYikp
KTsKQEAgLTE2NTcsNyArMTY2NSw3IEBAIHZvaWQgdGVzdFN1YkFyZyhpbnQgYSkKICAgICBQcm9j
ZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAg
IFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgU3ViLCBPcmlnaW4oKSwgdmFsdWUsIHZhbHVlKSk7CiAKQEAgLTE2NjgsNyArMTY3Niw3IEBA
IHZvaWQgdGVzdFN1YkFyZ3MoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KAogICAgICAgICAgICAgcHJvYywgU3ViLCBPcmlnaW4oKSwKQEAgLTE2ODIsNyArMTY5MCw3
IEBAIHZvaWQgdGVzdFN1YkFyZ0ltbShpbnQ2NF90IGEsIGludDY0X3QgYikKIHsKICAgICBQcm9j
ZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFN1YiwgT3JpZ2luKCksCkBAIC0x
NzAzLDcgKzE3MTEsNyBAQCB2b2lkIHRlc3ROZWdWYWx1ZVN1Yk9uZShpbnQgYSkKICAgICBWYWx1
ZSogbmVnQXJndW1lbnRNaW51c09uZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3Vi
LCBPcmlnaW4oKSwKICAgICAgICAgbmVnQXJndW1lbnQsCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgbmVnQXJndW1lbnRNaW51c09u
ZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIG5lZ0FyZ3VtZW50TWludXNPbmUpOwogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihw
cm9jLCBhKSA9PSAtYSAtIDEpOwogfQogCkBAIC0xNzExLDcgKzE3MTksNyBAQCB2b2lkIHRlc3RT
dWJJbW1BcmcoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgU3ViLCBPcmlnaW4oKSwKQEAgLTE3MzAsNyArMTczOCw3IEBAIHZvaWQg
dGVzdFN1YkFyZ01lbShpbnQ2NF90IGEsIGludDY0X3QgYikKICAgICBWYWx1ZSogcmVzdWx0ID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMCksCiAgICAgICAgIGxvYWQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBD
SEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIGEsICZiKSA9PSBhIC0gYik7CiB9CkBA
IC0xNzQ1LDcgKzE3NTMsNyBAQCB2b2lkIHRlc3RTdWJNZW1BcmcoaW50NjRfdCBhLCBpbnQ2NF90
IGIpCiAgICAgICAgIGxvYWQsCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7CiAgICAgcm9vdC0+
YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgYWRk
cmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDAp
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAog
ICAgIGludDY0X3QgaW5wdXRPdXRwdXQgPSBhOwogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGlu
dDY0X3Q+KHByb2MsICZpbnB1dE91dHB1dCwgYikpOwpAQCAtMTc2Miw3ICsxNzcwLDcgQEAgdm9p
ZCB0ZXN0U3ViSW1tTWVtKGludDY0X3QgYSwgaW50NjRfdCBiKQogICAgICAgICByb290LT5hcHBl
bmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSksCiAgICAgICAgIGxvYWQpOwog
ICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCBy
ZXN1bHQsIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCAwKSk7CiAKICAgICBpbnQ2NF90IGlucHV0T3V0cHV0ID0gYjsKICAgICBDSEVDSyghY29tcGls
ZUFuZFJ1bjxpbnQ+KHByb2MsICZpbnB1dE91dHB1dCkpOwpAQCAtMTc3OSw3ICsxNzg3LDcgQEAg
dm9pZCB0ZXN0U3ViTWVtSW1tKGludDY0X3QgYSwgaW50NjRfdCBiKQogICAgICAgICBsb2FkLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYikp
OwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigp
LCByZXN1bHQsIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAwKSk7CiAKICAgICBpbnQ2NF90IGlucHV0T3V0cHV0ID0gYTsKICAgICBDSEVDSyghY29t
cGlsZUFuZFJ1bjxpbnQ+KHByb2MsICZpbnB1dE91dHB1dCkpOwpAQCAtMTc5MSw3ICsxNzk5LDcg
QEAgdm9pZCB0ZXN0U3ViQXJnczMyKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFN1YiwgT3JpZ2luKCksCkBAIC0xODA5LDcgKzE4
MTcsNyBAQCB2b2lkIHRlc3RTdWJBcmdJbW0zMihpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2Vk
dXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTdWIsIE9yaWdpbigpLApAQCAtMTgy
NSw3ICsxODMzLDcgQEAgdm9pZCB0ZXN0U3ViSW1tQXJnMzIoaW50IGEsIGludCBiKQogewogICAg
IFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU3ViLCBPcmlnaW4oKSwK
QEAgLTE4NDcsNyArMTg1NSw3IEBAIHZvaWQgdGVzdFN1Yk1lbUFyZzMyKGludDMyX3QgYSwgaW50
MzJfdCAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBsb2FkLCBhcmd1bWVudCk7
CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCks
IHJlc3VsdCwgYWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDApKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDApKTsKIAogICAgIGludDMyX3QgaW5wdXRPdXRwdXQgPSBhOwogICAgIENIRUNLKCFjb21w
aWxlQW5kUnVuPGludDMyX3Q+KHByb2MsICZpbnB1dE91dHB1dCwgYikpOwpAQCAtMTg2Myw3ICsx
ODcxLDcgQEAgdm9pZCB0ZXN0U3ViQXJnTWVtMzIoaW50MzJfdCBhLCBpbnQzMl90IAogICAgIFZh
bHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIGFyZ3VtZW50LCBsb2FkKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihw
cm9jLCBhLCAmYikgPT0gYSAtIGIpOwogfQpAQCAtMTg3OCw3ICsxODg2LDcgQEAgdm9pZCB0ZXN0
U3ViSW1tTWVtMzIoaW50MzJfdCBhLCBpbnQzMl90IAogICAgICAgICByb290LT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSksCiAgICAgICAgIGxvYWQpOwogICAgIHJv
b3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQs
IGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7
CiAKICAgICBpbnQzMl90IGlucHV0T3V0cHV0ID0gYjsKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1
bjxpbnQ+KHByb2MsICZpbnB1dE91dHB1dCkpOwpAQCAtMTg5NSw3ICsxOTAzLDcgQEAgdm9pZCB0
ZXN0U3ViTWVtSW1tMzIoaW50MzJfdCBhLCBpbnQzMl90IAogICAgICAgICBsb2FkLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYikpOwogICAg
IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1
bHQsIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAw
KSk7CiAKICAgICBpbnQzMl90IGlucHV0T3V0cHV0ID0gYTsKICAgICBDSEVDSyghY29tcGlsZUFu
ZFJ1bjxpbnQ+KHByb2MsICZpbnB1dE91dHB1dCkpOwpAQCAtMTkxNCw3ICsxOTIyLDcgQEAgdm9p
ZCB0ZXN0TmVnVmFsdWVTdWJPbmUzMihpbnQgYSkKICAgICBWYWx1ZSogbmVnQXJndW1lbnRNaW51
c09uZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwKICAgICAg
ICAgbmVnQXJndW1lbnQsCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAxKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgbmVnQXJndW1lbnRNaW51c09uZSk7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIG5lZ0FyZ3VtZW50TWlu
dXNPbmUpOwogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCBhKSA9PSAtYSAtIDEp
OwogfQogCkBAIC0xOTIzLDcgKzE5MzEsNyBAQCB2b2lkIHRlc3RTdWJBcmdEb3VibGUoZG91Ymxl
IGEpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIHZhbHVlLCB2YWx1ZSkpOwogCkBAIC0xOTM2
LDcgKzE5NDQsNyBAQCB2b2lkIHRlc3RTdWJBcmdzRG91YmxlKGRvdWJsZSBhLCBkb3VibGUgCiAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVB
ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJ
bmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMSk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVC
KSk7CiAKQEAgLTE5NDksNyArMTk1Nyw3IEBAIHZvaWQgdGVzdFN1YkFyZ0ltbURvdWJsZShkb3Vi
bGUgYSwgZG91YmwKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAg
IFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJv
b3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAK
QEAgLTE5NjIsNyArMTk3MCw3IEBAIHZvaWQgdGVzdFN1YkltbUFyZ0RvdWJsZShkb3VibGUgYSwg
ZG91YmwKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVl
KiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIGEpOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTE5
NzUsNyArMTk4Myw3IEBAIHZvaWQgdGVzdFN1YkltbXNEb3VibGUoZG91YmxlIGEsIGRvdWJsZSAK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1
ZUEgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEp
OwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIGIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdp
bigpLCB2YWx1ZUEsIHZhbHVlQikpOwogICAgIApAQCAtMTk5MSw3ICsxOTk5LDcgQEAgdm9pZCB0
ZXN0U3ViQXJnRmxvYXQoZmxvYXQgYSkKICAgICBWYWx1ZSogZmxvYXRWYWx1ZSA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsK
ICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9y
aWdpbigpLCBmbG9hdFZhbHVlLCBmbG9hdFZhbHVlKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29t
cGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oYSAtIGEpKSk7CkBAIC0yMDA5LDcgKzIwMTcsNyBAQCB2b2lkIHRl
c3RTdWJBcmdzRmxvYXQoZmxvYXQgYSwgZmxvYXQgYikKICAgICBWYWx1ZSogZmxvYXRWYWx1ZTIg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJn
dW1lbnQyaW50MzIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIFN1YiwgT3JpZ2luKCksIGZsb2F0VmFsdWUxLCBmbG9hdFZhbHVlMik7CiAgICAgVmFs
dWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwg
T3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhp
c0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQz
Ml90PihhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+
KGEgLSBiKSkpOwogfQpAQCAtMjAyNCw3ICsyMDMyLDcgQEAgdm9pZCB0ZXN0U3ViQXJnSW1tRmxv
YXQoZmxvYXQgYSwgZmxvYXQgYgogICAgIFZhbHVlKiBjb25zdFZhbHVlID0gcm9vdC0+YXBwZW5k
TmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiByZXN1
bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIGZsb2F0VmFs
dWUsIGNvbnN0VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90
Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4o
YSAtIGIpKSk7CiB9CkBAIC0yMDM5LDcgKzIwNDcsNyBAQCB2b2lkIHRlc3RTdWJJbW1BcmdGbG9h
dChmbG9hdCBhLCBmbG9hdCBiCiAgICAgVmFsdWUqIGNvbnN0VmFsdWUgPSByb290LT5hcHBlbmRO
ZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHJlc3Vs
dCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgY29uc3RWYWx1
ZSwgZmxvYXRWYWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+
KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90Pihh
IC0gYikpKTsKIH0KQEAgLTIwNTIsNyArMjA2MCw3IEBAIHZvaWQgdGVzdFN1YkltbXNGbG9hdChm
bG9hdCBhLCBmbG9hdCBiKQogICAgIFZhbHVlKiBjb25zdFZhbHVlMiA9IHJvb3QtPmFwcGVuZE5l
dzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKICAgICBWYWx1ZSogcmVzdWx0
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBjb25zdFZhbHVl
MSwgY29uc3RWYWx1ZTIpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90
Pihwcm9jKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLSBiKSkpOwogfQpAQCAtMjA2OCw3ICsy
MDc2LDcgQEAgdm9pZCB0ZXN0U3ViQXJnRmxvYXRXaXRoVXNlbGVzc0RvdWJsZUNvbgogICAgIFZh
bHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCks
IGFzRG91YmxlLCBhc0RvdWJsZSk7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgcmVzdWx0KTsKICAg
ICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VD
YXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAg
ICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNl
X2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAtIGEpKSk7CiB9CkBA
IC0yMDg4LDcgKzIwOTYsNyBAQCB2b2lkIHRlc3RTdWJBcmdzRmxvYXRXaXRoVXNlbGVzc0RvdWJs
ZUNvCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3Vi
LCBPcmlnaW4oKSwgYXNEb3VibGUxLCBhc0RvdWJsZTIpOwogICAgIFZhbHVlKiBmbG9hdFJlc3Vs
dCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCks
IHJlc3VsdCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
c3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4o
cHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikp
LCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAtIGIpKSk7CiB9CkBAIC0yMTEwLDcgKzIxMTgsNyBA
QCB2b2lkIHRlc3RTdWJBcmdzRmxvYXRXaXRoRWZmZWN0ZnVsRG91YmxlCiAgICAgVmFsdWUqIGRv
dWJsZVN1YnJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMik7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9y
eVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgZG91YmxlU3VicmVzcyk7CiAg
ICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNl
Q2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAog
ICAgIGRvdWJsZSBlZmZlY3QgPSAwOwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRS
dW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4oYiksICZlZmZlY3QpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAtIGIpKSk7CkBA
IC0yMTIxLDcgKzIxMjksNyBAQCB2b2lkIHRlc3RCaXRBbmRBcmdzKGludDY0X3QgYSwgaW50NjRf
dCBiCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRB
bmQsIE9yaWdpbigpLApAQCAtMjEzNiw3ICsyMTQ0LDcgQEAgdm9pZCB0ZXN0Qml0QW5kU2FtZUFy
ZyhpbnQ2NF90IGEpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4o
KSwKQEAgLTIxNTAsNyArMjE1OCw3IEBAIHZvaWQgdGVzdEJpdEFuZEltbXMoaW50NjRfdCBhLCBp
bnQ2NF90IGIKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IEJpdEFuZCwgT3JpZ2luKCksCkBAIC0yMTY0LDcgKzIxNzIsNyBAQCB2b2lkIHRlc3RCaXRBbmRB
cmdJbW0oaW50NjRfdCBhLCBpbnQ2NF90CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMjE3OCw3ICsyMTg2LDcgQEAg
dm9pZCB0ZXN0Qml0QW5kSW1tQXJnKGludDY0X3QgYSwgaW50NjRfdAogewogICAgIFByb2NlZHVy
ZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTIx
OTYsNyArMjIwNCw3IEBAIHZvaWQgdGVzdEJpdEFuZEJpdEFuZEFyZ0ltbUltbShpbnQ2NF90IGEK
ICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjAp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
YikpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3Jp
Z2luKCksCkBAIC0yMjE0LDcgKzIyMjIsNyBAQCB2b2lkIHRlc3RCaXRBbmRJbW1CaXRBbmRBcmdJ
bW0oaW50NjRfdCBhCiAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIGMpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMjIyOCw3ICsyMjM2LDcgQEAgdm9pZCB0ZXN0Qml0QW5k
QXJnczMyKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0yMjQ4LDcgKzIyNTYsNyBAQCB2b2lk
IHRlc3RCaXRBbmRTYW1lQXJnMzIoaW50IGEpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50
UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAt
MjI2Miw3ICsyMjcwLDcgQEAgdm9pZCB0ZXN0Qml0QW5kSW1tczMyKGludCBhLCBpbnQgYikKIHsK
ICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3Jp
Z2luKCksCkBAIC0yMjc2LDcgKzIyODQsNyBAQCB2b2lkIHRlc3RCaXRBbmRBcmdJbW0zMihpbnQg
YSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMjI5Miw3ICsyMzAwLDcgQEAgdm9pZCB0ZXN0Qml0QW5k
SW1tQXJnMzIoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTIzMTQsNyArMjMyMiw3IEBAIHZv
aWQgdGVzdEJpdEFuZEJpdEFuZEFyZ0ltbUltbTMyKGludCBhLCAKICAgICAgICAgICAgIHByb2Ms
IFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKSk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAg
LTIzMzQsNyArMjM0Miw3IEBAIHZvaWQgdGVzdEJpdEFuZEltbUJpdEFuZEFyZ0ltbTMyKGludCBh
LCAKICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKSksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBjKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
Qml0QW5kLCBPcmlnaW4oKSwKQEAgLTIzNjEsNyArMjM2OSw3IEBAIHZvaWQgdGVzdEJpdEFuZFdp
dGhNYXNrUmV0dXJuc0Jvb2xlYW5zKGkKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0
NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC01KSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWxlY3QpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWxlY3QpOwogCiAg
ICAgaW50NjRfdCBleHBlY3RlZCA9IChhID09IGIpID8gLTUgOiA0MjsKICAgICBDSEVDSyhjb21w
aWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIGEsIGIpID09IGV4cGVjdGVkKTsKQEAgLTIzNzgsNyAr
MjM4Niw3IEBAIHZvaWQgdGVzdEJpdEFuZEFyZ0RvdWJsZShkb3VibGUgYSkKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJn
dW1lbnRGUFIwKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBCaXRBbmQsIE9yaWdpbigpLCBhcmd1bWVudCwgYXJndW1lbnQpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
c3VsdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJv
YywgYSksIGJpdEFuZERvdWJsZShhLCBhKSkpOwogfQpAQCAtMjM5MCw3ICsyMzk4LDcgQEAgdm9p
ZCB0ZXN0Qml0QW5kQXJnc0RvdWJsZShkb3VibGUgYSwgZG91YgogICAgIFZhbHVlKiBhcmd1bWVu
dEEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQ
UkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50QiA9IHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRG
UFIxKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBC
aXRBbmQsIE9yaWdpbigpLCBhcmd1bWVudEEsIGFyZ3VtZW50Qik7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBh
LCBiKSwgYml0QW5kRG91YmxlKGEsIGIpKSk7CiB9CkBAIC0yNDAyLDcgKzI0MTAsNyBAQCB2b2lk
IHRlc3RCaXRBbmRBcmdJbW1Eb3VibGUoZG91YmxlIGEsIGRvCiAgICAgVmFsdWUqIGFyZ3VtZW50
QSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBS
SW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogYXJndW1lbnRCID0gcm9vdC0+YXBwZW5k
TmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKICAgICBWYWx1ZSogcmVz
dWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXRBbmQsIE9yaWdpbigpLCBhcmd1
bWVudEEsIGFyZ3VtZW50Qik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGlzSWRl
bnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBhLCBiKSwgYml0QW5kRG91YmxlKGEs
IGIpKSk7CiB9CkBAIC0yNDE0LDcgKzI0MjIsNyBAQCB2b2lkIHRlc3RCaXRBbmRJbW1zRG91Ymxl
KGRvdWJsZSBhLCBkb3ViCiAgICAgVmFsdWUqIGFyZ3VtZW50QSA9IHJvb3QtPmFwcGVuZE5ldzxD
b25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIGFyZ3VtZW50
QiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7
CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0QW5k
LCBPcmlnaW4oKSwgYXJndW1lbnRBLCBhcmd1bWVudEIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAK
ICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYyksIGJpdEFu
ZERvdWJsZShhLCBiKSkpOwogfQpAQCAtMjQzMiw3ICsyNDQwLDcgQEAgdm9pZCB0ZXN0Qml0QW5k
QXJnRmxvYXQoZmxvYXQgYSkKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBU
cnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpKTsKICAgICBWYWx1
ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXRBbmQsIE9yaWdpbigp
LCBhcmd1bWVudCwgYXJndW1lbnQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhp
c0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJf
dD4oYSkpLCBiaXRBbmRGbG9hdChhLCBhKSkpOwogfQpAQCAtMjQ0OCw3ICsyNDU2LDcgQEAgdm9p
ZCB0ZXN0Qml0QW5kQXJnc0Zsb2F0KGZsb2F0IGEsIGZsb2F0IAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIxKSkpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEJpdEFuZCwgT3JpZ2luKCksIGFyZ3VtZW50QSwgYXJndW1lbnRCKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJv
YywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBi
aXRBbmRGbG9hdChhLCBiKSkpOwogfQpAQCAtMjQ2Miw3ICsyNDcwLDcgQEAgdm9pZCB0ZXN0Qml0
QW5kQXJnSW1tRmxvYXQoZmxvYXQgYSwgZmxvYQogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjAp
KSk7CiAgICAgVmFsdWUqIGFyZ3VtZW50QiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFs
dWU+KHByb2MsIE9yaWdpbigpLCBiKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBCaXRBbmQsIE9yaWdpbigpLCBhcmd1bWVudEEsIGFyZ3VtZW50Qik7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRS
dW48ZmxvYXQ+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KGIpKSwgYml0QW5kRmxvYXQoYSwgYikpKTsKIH0KQEAgLTI0NzQsNyArMjQ4Miw3IEBA
IHZvaWQgdGVzdEJpdEFuZEltbXNGbG9hdChmbG9hdCBhLCBmbG9hdCAKICAgICBWYWx1ZSogYXJn
dW1lbnRBID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IGEpOwogICAgIFZhbHVlKiBhcmd1bWVudEIgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgYik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQml0QW5kLCBPcmlnaW4oKSwgYXJndW1lbnRBLCBhcmd1bWVudEIp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5k
UnVuPGZsb2F0Pihwcm9jKSwgYml0QW5kRmxvYXQoYSwgYikpKTsKIH0KQEAgLTI0OTMsNyArMjUw
MSw3IEBAIHZvaWQgdGVzdEJpdEFuZEFyZ3NGbG9hdFdpdGhVc2VsZXNzRG91YmwKICAgICBWYWx1
ZSogYXJndW1lbnRCYXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0
VG9Eb3VibGUsIE9yaWdpbigpLCBhcmd1bWVudEIpOwogICAgIFZhbHVlKiBkb3VibGVSZXN1bHQg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdEFuZCwgT3JpZ2luKCksIGFyZ3VtZW50
QWFzRG91YmxlLCBhcmd1bWVudEJhc0RvdWJsZSk7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgZG91
YmxlUmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKIAogICAgIGRvdWJsZSBk
b3VibGVBID0gYTsKICAgICBkb3VibGUgZG91YmxlQiA9IGI7CkBAIC0yNTA1LDcgKzI1MTMsNyBA
QCB2b2lkIHRlc3RCaXRPckFyZ3MoaW50NjRfdCBhLCBpbnQ2NF90IGIpCiB7CiAgICAgUHJvY2Vk
dXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCksCkBAIC0y
NTIwLDcgKzI1MjgsNyBAQCB2b2lkIHRlc3RCaXRPclNhbWVBcmcoaW50NjRfdCBhKQogICAgIFBy
b2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAg
ICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIEJpdE9yLCBPcmlnaW4oKSwKQEAgLTI1MzQsNyArMjU0Miw3
IEBAIHZvaWQgdGVzdEJpdE9ySW1tcyhpbnQ2NF90IGEsIGludDY0X3QgYikKIHsKICAgICBQcm9j
ZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdE9yLCBPcmlnaW4oKSwKQEAg
LTI1NDgsNyArMjU1Niw3IEBAIHZvaWQgdGVzdEJpdE9yQXJnSW1tKGludDY0X3QgYSwgaW50NjRf
dCAKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdE9y
LCBPcmlnaW4oKSwKQEAgLTI1NjIsNyArMjU3MCw3IEBAIHZvaWQgdGVzdEJpdE9ySW1tQXJnKGlu
dDY0X3QgYSwgaW50NjRfdCAKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIEJpdE9yLCBPcmlnaW4oKSwKQEAgLTI1ODAsNyArMjU4OCw3IEBAIHZvaWQgdGVz
dEJpdE9yQml0T3JBcmdJbW1JbW0oaW50NjRfdCBhLCAKICAgICAgICAgcHJvYywgQml0T3IsIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgQml0T3IsIE9yaWdpbigpLApAQCAtMjU5OCw3ICsyNjA2LDcg
QEAgdm9pZCB0ZXN0Qml0T3JJbW1CaXRPckFyZ0ltbShpbnQ2NF90IGEsIAogICAgICAgICBwcm9j
LCBCaXRPciwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGMpKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCksCkBAIC0yNjEy
LDcgKzI2MjAsNyBAQCB2b2lkIHRlc3RCaXRPckFyZ3MzMihpbnQgYSwgaW50IGIpCiB7CiAgICAg
UHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCks
CkBAIC0yNjMzLDcgKzI2NDEsNyBAQCB2b2lkIHRlc3RCaXRPclNhbWVBcmczMihpbnQgYSkKICAg
ICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICBwcm9j
LCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdE9yLCBPcmlnaW4oKSwKQEAgLTI2
NDcsNyArMjY1NSw3IEBAIHZvaWQgdGVzdEJpdE9ySW1tczMyKGludCBhLCBpbnQgYikKIHsKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdE9yLCBPcmlnaW4o
KSwKQEAgLTI2NjEsNyArMjY2OSw3IEBAIHZvaWQgdGVzdEJpdE9yQXJnSW1tMzIoaW50IGEsIGlu
dCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0
T3IsIE9yaWdpbigpLApAQCAtMjY3Nyw3ICsyNjg1LDcgQEAgdm9pZCB0ZXN0Qml0T3JJbW1Bcmcz
MihpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBCaXRPciwgT3JpZ2luKCksCkBAIC0yNjk5LDcgKzI3MDcsNyBAQCB2b2lkIHRlc3RC
aXRPckJpdE9yQXJnSW1tSW1tMzIoaW50IGEsIGluCiAgICAgICAgICAgICBwcm9jLCBUcnVuYywg
T3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYikpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdE9yLCBPcmlnaW4oKSwKQEAgLTI3MTksNyAr
MjcyNyw3IEBAIHZvaWQgdGVzdEJpdE9ySW1tQml0T3JBcmdJbW0zMihpbnQgYSwgaW4KICAgICAg
ICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIw
KSksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBjKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0T3IsIE9y
aWdpbigpLApAQCAtMjczMyw3ICsyNzQxLDcgQEAgdm9pZCB0ZXN0Qml0WG9yQXJncyhpbnQ2NF90
IGEsIGludDY0X3QgYgogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTI3NDgsNyArMjc1Niw3IEBAIHZvaWQgdGVzdEJp
dFhvclNhbWVBcmcoaW50NjRfdCBhKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdFhv
ciwgT3JpZ2luKCksCkBAIC0yNzYyLDcgKzI3NzAsNyBAQCB2b2lkIHRlc3RCaXRYb3JJbW1zKGlu
dDY0X3QgYSwgaW50NjRfdCBiCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjc3Niw3ICsyNzg0LDcgQEAgdm9pZCB0
ZXN0Qml0WG9yQXJnSW1tKGludDY0X3QgYSwgaW50NjRfdAogewogICAgIFByb2NlZHVyZSBwcm9j
OwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTI3OTAsNyAr
Mjc5OCw3IEBAIHZvaWQgdGVzdEJpdFhvckltbUFyZyhpbnQ2NF90IGEsIGludDY0X3QKIHsKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2lu
KCksCkBAIC0yODA4LDcgKzI4MTYsNyBAQCB2b2lkIHRlc3RCaXRYb3JCaXRYb3JBcmdJbW1JbW0o
aW50NjRfdCBhCiAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIGIpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBC
aXRYb3IsIE9yaWdpbigpLApAQCAtMjgyNiw3ICsyODM0LDcgQEAgdm9pZCB0ZXN0Qml0WG9ySW1t
Qml0WG9yQXJnSW1tKGludDY0X3QgYQogICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBjKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTI4NDAsNyArMjg0OCw3IEBAIHZvaWQg
dGVzdEJpdFhvckFyZ3MzMihpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjg2MSw3ICsyODY5
LDcgQEAgdm9pZCB0ZXN0Qml0WG9yU2FtZUFyZzMyKGludCBhKQogICAgIFZhbHVlKiBhcmd1bWVu
dCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4o
KSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAog
ICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTI4NzUsNyArMjg4Myw3IEBA
IHZvaWQgdGVzdEJpdFhvckltbXMzMihpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHBy
b2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjg4OSw3
ICsyODk3LDcgQEAgdm9pZCB0ZXN0Qml0WG9yQXJnSW1tMzIoaW50IGEsIGludCBiKQogewogICAg
IFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4o
KSwKQEAgLTI5MDUsNyArMjkxMyw3IEBAIHZvaWQgdGVzdEJpdFhvckltbUFyZzMyKGludCBhLCBp
bnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJp
dFhvciwgT3JpZ2luKCksCkBAIC0yOTI3LDcgKzI5MzUsNyBAQCB2b2lkIHRlc3RCaXRYb3JCaXRY
b3JBcmdJbW1JbW0zMihpbnQgYSwgCiAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCks
CiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYikpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCkBAIC0yOTQ3LDcgKzI5NTUsNyBA
QCB2b2lkIHRlc3RCaXRYb3JJbW1CaXRYb3JBcmdJbW0zMihpbnQgYSwgCiAgICAgICAgICAgICBw
cm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYykpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCks
CkBAIC0yOTYxLDcgKzI5NjksNyBAQCB2b2lkIHRlc3RCaXROb3RBcmcoaW50NjRfdCBhKQogewog
ICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmln
aW4oKSwKQEAgLTI5NzUsNyArMjk4Myw3IEBAIHZvaWQgdGVzdEJpdE5vdEltbShpbnQ2NF90IGEp
CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRYb3Is
IE9yaWdpbigpLApAQCAtMjk5NSw3ICszMDAzLDcgQEAgdm9pZCB0ZXN0Qml0Tm90TWVtKGludDY0
X3QgYSkKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIC0xKSwKICAgICAgICAgbG9hZCk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVl
Pihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIG5vdExvYWQsIGFkZHJlc3MpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBpbnQ2NF90IGlucHV0ID0g
YTsKICAgICBjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsICZpbnB1dCk7CkBAIC0zMDA4LDcg
KzMwMTYsNyBAQCB2b2lkIHRlc3RCaXROb3RBcmczMihpbnQzMl90IGEpCiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjApKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0WG9yLCBPcmlnaW4oKSwKICAg
ICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAt
MSksCkBAIC0zMDIwLDcgKzMwMjgsNyBAQCB2b2lkIHRlc3RCaXROb3RJbW0zMihpbnQzMl90IGEp
CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRYb3Is
IE9yaWdpbigpLApAQCAtMzA0MCw3ICszMDQ4LDcgQEAgdm9pZCB0ZXN0Qml0Tm90TWVtMzIoaW50
MzJfdCBhKQogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgLTEpLAogICAgICAgICBsb2FkKTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFs
dWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgbm90TG9hZCwgYWRkcmVzcyk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGludDMyX3QgaW5wdXQg
PSBhOwogICAgIGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgJmlucHV0KTsKQEAgLTMwNjMs
MTYgKzMwNzEsMTYgQEAgdm9pZCB0ZXN0Qml0Tm90T25Cb29sZWFuQW5kQnJhbmNoMzIoaW50Ngog
ICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTEp
LAogICAgICAgICBhcmdzQXJlRXF1YWwpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBC
cmFuY2gsIE9yaWdpbigpLAogICAgICAgICBhcmdzQXJlTm90RXF1YWwsCiAgICAgICAgIEZyZXF1
ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAg
dGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpKTsK
IAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IC00MikpOwogCkBAIC0zMDg0LDcgKzMwOTIsNyBAQCB2b2lkIHRlc3RTaGxBcmdzKGludDY0X3Qg
YSwgaW50NjRfdCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgU2hsLCBPcmlnaW4oKSwKQEAgLTMxMDAsNyArMzEwOCw3IEBAIHZvaWQgdGVzdFNobElt
bXMoaW50NjRfdCBhLCBpbnQ2NF90IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBTaGwsIE9yaWdpbigpLApAQCAtMzExNCw3ICszMTIyLDcgQEAgdm9p
ZCB0ZXN0U2hsQXJnSW1tKGludDY0X3QgYSwgaW50NjRfdCBiKQogewogICAgIFByb2NlZHVyZSBw
cm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2hsLCBPcmlnaW4oKSwKQEAgLTMxMzEsNyAr
MzEzOSw3IEBAIHZvaWQgdGVzdFNobEFyZzMyKGludDMyX3QgYSkKICAgICBWYWx1ZSogdmFsdWUg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFNo
bCwgT3JpZ2luKCksIHZhbHVlLCB2YWx1ZSkpOwogCkBAIC0zMTQyLDcgKzMxNTAsNyBAQCB2b2lk
IHRlc3RTaGxBcmdzMzIoaW50MzJfdCBhLCBpbnQzMl90IGIpCiB7CiAgICAgUHJvY2VkdXJlIHBy
b2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTaGwsIE9yaWdpbigpLApAQCAtMzE2MCw3ICsz
MTY4LDcgQEAgdm9pZCB0ZXN0U2hsSW1tczMyKGludDMyX3QgYSwgaW50MzJfdCBiKQogewogICAg
IFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2hsLCBPcmlnaW4oKSwK
QEAgLTMxNzQsNyArMzE4Miw3IEBAIHZvaWQgdGVzdFNobEFyZ0ltbTMyKGludDMyX3QgYSwgaW50
MzJfdCAKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNo
bCwgT3JpZ2luKCksCkBAIC0zMTkwLDcgKzMxOTgsNyBAQCB2b2lkIHRlc3RTU2hyQXJncyhpbnQ2
NF90IGEsIGludDY0X3QgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIFNTaHIsIE9yaWdpbigpLApAQCAtMzIwNiw3ICszMjE0LDcgQEAgdm9pZCB0ZXN0
U1NockltbXMoaW50NjRfdCBhLCBpbnQ2NF90IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBTU2hyLCBPcmlnaW4oKSwKQEAgLTMyMjAsNyArMzIyOCw3
IEBAIHZvaWQgdGVzdFNTaHJBcmdJbW0oaW50NjRfdCBhLCBpbnQ2NF90IGIKIHsKICAgICBQcm9j
ZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNTaHIsIE9yaWdpbigpLApAQCAt
MzIzNyw3ICszMjQ1LDcgQEAgdm9pZCB0ZXN0U1NockFyZzMyKGludDMyX3QgYSkKICAgICBWYWx1
ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICBwcm9jLCBUcnVuYywg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIFNTaHIsIE9yaWdpbigpLCB2YWx1ZSwgdmFsdWUpKTsKIApAQCAtMzI0OCw3ICszMjU2
LDcgQEAgdm9pZCB0ZXN0U1NockFyZ3MzMihpbnQzMl90IGEsIGludDMyX3QgYgogewogICAgIFBy
b2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU1NociwgT3JpZ2luKCksCkBA
IC0zMjY2LDcgKzMyNzQsNyBAQCB2b2lkIHRlc3RTU2hySW1tczMyKGludDMyX3QgYSwgaW50MzJf
dCBiCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTU2hy
LCBPcmlnaW4oKSwKQEAgLTMyODAsNyArMzI4OCw3IEBAIHZvaWQgdGVzdFNTaHJBcmdJbW0zMihp
bnQzMl90IGEsIGludDMyX3QKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIFNTaHIsIE9yaWdpbigpLApAQCAtMzI5Niw3ICszMzA0LDcgQEAgdm9pZCB0ZXN0
WlNockFyZ3ModWludDY0X3QgYSwgdWludDY0X3QgYgogewogICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KAogICAgICAgICAgICAgcHJvYywgWlNociwgT3JpZ2luKCksCkBAIC0zMzEyLDcgKzMzMjAs
NyBAQCB2b2lkIHRlc3RaU2hySW1tcyh1aW50NjRfdCBhLCB1aW50NjRfdCBiCiB7CiAgICAgUHJv
Y2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBaU2hyLCBPcmlnaW4oKSwKQEAg
LTMzMjYsNyArMzMzNCw3IEBAIHZvaWQgdGVzdFpTaHJBcmdJbW0odWludDY0X3QgYSwgdWludDY0
X3QKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFpTaHIs
IE9yaWdpbigpLApAQCAtMzM0Myw3ICszMzUxLDcgQEAgdm9pZCB0ZXN0WlNockFyZzMyKHVpbnQz
Ml90IGEpCiAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBaU2hyLCBPcmlnaW4oKSwgdmFsdWUsIHZhbHVlKSk7CiAK
QEAgLTMzNTQsNyArMzM2Miw3IEBAIHZvaWQgdGVzdFpTaHJBcmdzMzIodWludDMyX3QgYSwgdWlu
dDMyX3QKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFpT
aHIsIE9yaWdpbigpLApAQCAtMzM3Miw3ICszMzgwLDcgQEAgdm9pZCB0ZXN0WlNockltbXMzMih1
aW50MzJfdCBhLCB1aW50MzJfdAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgcHJvYywgWlNociwgT3JpZ2luKCksCkBAIC0zMzg2LDcgKzMzOTQsNyBAQCB2b2lkIHRl
c3RaU2hyQXJnSW1tMzIodWludDMyX3QgYSwgdWludDMyCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBaU2hyLCBPcmlnaW4oKSwKQEAgLTM0MTksNyArMzQy
Nyw3IEBAIHZvaWQgdGVzdENsekFyZzY0KGludDY0X3QgYSkKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIw
KTsKICAgICBWYWx1ZSogY2x6VmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENs
eiwgT3JpZ2luKCksIGFyZ3VtZW50KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjbHpWYWx1ZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNselZhbHVlKTsKICAgICBDSEVD
Syhjb21waWxlQW5kUnVuPHVuc2lnbmVkPihwcm9jLCBhKSA9PSBjb3VudExlYWRpbmdaZXJvKGEp
KTsKIH0KIApAQCAtMzQzMCw3ICszNDM4LDcgQEAgdm9pZCB0ZXN0Q2x6TWVtNjQoaW50NjRfdCBh
KQogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVl
KiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50NjQs
IE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogY2x6VmFsdWUgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIENseiwgT3JpZ2luKCksIHZhbHVlKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjbHpWYWx1ZSk7CisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNselZh
bHVlKTsKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPHVuc2lnbmVkPihwcm9jLCAmYSkgPT0gY291
bnRMZWFkaW5nWmVybyhhKSk7CiB9CiAKQEAgLTM0NDEsNyArMzQ0OSw3IEBAIHZvaWQgdGVzdENs
ekFyZzMyKGludDMyX3QgYSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsK
ICAgICBWYWx1ZSogY2x6VmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENseiwg
T3JpZ2luKCksIGFyZ3VtZW50KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjbHpWYWx1ZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNselZhbHVlKTsKICAgICBDSEVDSyhj
b21waWxlQW5kUnVuPHVuc2lnbmVkPihwcm9jLCBhKSA9PSBjb3VudExlYWRpbmdaZXJvKGEpKTsK
IH0KIApAQCAtMzQ1Miw3ICszNDYwLDcgQEAgdm9pZCB0ZXN0Q2x6TWVtMzIoaW50MzJfdCBhKQog
ICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiB2
YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50MzIsIE9y
aWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogY2x6VmFsdWUgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIENseiwgT3JpZ2luKCksIHZhbHVlKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjbHpWYWx1ZSk7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNselZhbHVl
KTsKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPHVuc2lnbmVkPihwcm9jLCAmYSkgPT0gY291bnRM
ZWFkaW5nWmVybyhhKSk7CiB9CiAKQEAgLTM0NjAsNyArMzQ2OCw3IEBAIHZvaWQgdGVzdEFic0Fy
Zyhkb3VibGUgYSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIEFicywgT3JpZ2luKCksCkBAIC0zNDc0LDcgKzM0ODIsNyBAQCB2b2lkIHRlc3RBYnNJbW0o
ZG91YmxlIGEpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8Q29u
c3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBBYnMsIE9yaWdpbigpLCBhcmd1bWVudCkpOwogCkBAIC0zNDg3LDcgKzM0OTUsNyBAQCB2
b2lkIHRlc3RBYnNNZW0oZG91YmxlIGEpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBNZW1v
cnlWYWx1ZSogbG9hZERvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywg
TG9hZCwgRG91YmxlLCBPcmlnaW4oKSwgYWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEFicywgT3JpZ2luKCksIGxvYWREb3VibGUpKTsKIApAQCAtMzUwMSw3ICszNTA5LDcgQEAg
dm9pZCB0ZXN0QWJzQWJzQXJnKGRvdWJsZSBhKQogICAgIFZhbHVlKiBmaXJzdEFicyA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVu
dEZQUjApKTsKICAgICBWYWx1ZSogc2Vjb25kQWJzID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBBYnMsIE9yaWdpbigpLCBmaXJzdEFicyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kQWJzKTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kQWJzKTsK
IAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBhKSwg
ZmFicyhhKSkpOwogfQpAQCAtMzUxMyw3ICszNTIxLDcgQEAgdm9pZCB0ZXN0QWJzQml0d2lzZUNh
c3RBcmcoZG91YmxlIGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50QXNJbnQ2NCA9IHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIwKTsKICAgICBWYWx1ZSogYXJndW1lbnRBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudEFzSW50NjQpOwogICAgIFZh
bHVlKiBhYnNWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBPcmlnaW4o
KSwgYXJndW1lbnRBc0RvdWJsZSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWJzVmFsdWUpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhYnNWYWx1ZSk7CiAKICAgICBDSEVD
Syhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgYml0d2lzZV9jYXN0PGlu
dDY0X3Q+KGEpKSwgZmFicyhhKSkpOwogfQpAQCAtMzUyNyw3ICszNTM1LDcgQEAgdm9pZCB0ZXN0
Qml0d2lzZUNhc3RBYnNCaXR3aXNlQ2FzdEFyZyhkbwogICAgIFZhbHVlKiBhYnNWYWx1ZSA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBPcmlnaW4oKSwgYXJndW1lbnRBc0RvdWJs
ZSk7CiAgICAgVmFsdWUqIHJlc3VsdEFzSW50NjQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYWJzVmFsdWUpOwogCi0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0QXNJbnQ2NCk7
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJlc3VsdEFzSW50NjQpOwogCiAgICAgaW50NjRfdCBleHBlY3RlZFJlc3VsdCA9IGJpdHdpc2Vf
Y2FzdDxpbnQ2NF90PihmYWJzKGEpKTsKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5k
UnVuPGludDY0X3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQ2NF90PihhKSksIGV4cGVjdGVkUmVz
dWx0KSk7CkBAIC0zNTQyLDcgKzM1NTAsNyBAQCB2b2lkIHRlc3RBYnNBcmcoZmxvYXQgYSkKICAg
ICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VD
YXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZhbHVl
KiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9y
aWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJ
ZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJf
dD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KGZhYnMoYSkp
KSkpOwogfQpAQCAtMzU1NCw3ICszNTYyLDcgQEAgdm9pZCB0ZXN0QWJzSW1tKGZsb2F0IGEpCiAg
ICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEFicywgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBWYWx1ZSogcmVzdWx0MzIg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVz
dWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNv
bXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0
d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0PGZsb2F0PihmYWJzKGEpKSkpKTsKIH0KQEAg
LTM1NjcsNyArMzU3NSw3IEBAIHZvaWQgdGVzdEFic01lbShmbG9hdCBhKQogICAgIE1lbW9yeVZh
bHVlKiBsb2FkRmxvYXQgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQs
IEZsb2F0LCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBPcmlnaW4oKSwgbG9hZEZsb2F0KTsKICAgICBWYWx1
ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBP
cmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlz
SWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgJmEpLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KGZhYnMoYSkpKSkpOwogfQpAQCAtMzU4MSw3ICsz
NTg5LDcgQEAgdm9pZCB0ZXN0QWJzQWJzQXJnKGZsb2F0IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFy
Z3VtZW50MzIpOwogICAgIFZhbHVlKiBmaXJzdEFicyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQWJzLCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZhbHVlKiBzZWNvbmRBYnMgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFicywgT3JpZ2luKCksIGZpcnN0QWJzKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBz
ZWNvbmRBYnMpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBzZWNvbmRBYnMpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFu
ZFJ1bjxmbG9hdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgc3RhdGljX2Nhc3Q8
ZmxvYXQ+KGZhYnMoYSkpKSk7CiB9CkBAIC0zNTk0LDcgKzM2MDIsNyBAQCB2b2lkIHRlc3RBYnNC
aXR3aXNlQ2FzdEFyZyhmbG9hdCBhKQogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZh
bHVlKiBhcmd1bWVudEFzZmxvYXQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdp
c2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnRBc0ludDMyKTsKICAgICBWYWx1ZSogYWJzVmFsdWUg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFicywgT3JpZ2luKCksIGFyZ3VtZW50QXNm
bG9hdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgYWJzVmFsdWUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBhYnNWYWx1ZSk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChj
b21waWxlQW5kUnVuPGZsb2F0Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBzdGF0
aWNfY2FzdDxmbG9hdD4oZmFicyhhKSkpKTsKIH0KQEAgLTM2MDksNyArMzYxNyw3IEBAIHZvaWQg
dGVzdEJpdHdpc2VDYXN0QWJzQml0d2lzZUNhc3RBcmcoZmwKICAgICBWYWx1ZSogYWJzVmFsdWUg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFicywgT3JpZ2luKCksIGFyZ3VtZW50QXNm
bG9hdCk7CiAgICAgVmFsdWUqIHJlc3VsdEFzSW50NjQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYWJzVmFsdWUpOwogCi0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0QXNJbnQ2
NCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdEFzSW50NjQpOwogCiAgICAgaW50MzJfdCBleHBlY3RlZFJlc3VsdCA9IGJpdHdp
c2VfY2FzdDxpbnQzMl90PihzdGF0aWNfY2FzdDxmbG9hdD4oZmFicyhhKSkpOwogICAgIENIRUNL
KGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KGEpKSwgZXhwZWN0ZWRSZXN1bHQpKTsKQEAgLTM2MjYsNyArMzYzNCw3IEBAIHZvaWQg
dGVzdEFic0FyZ1dpdGhVc2VsZXNzRG91YmxlQ29udmVyc2kKICAgICBWYWx1ZSogcmVzdWx0ID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdpbigpLCBhc0RvdWJsZSk7CiAg
ICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3Vi
bGVUb0Zsb2F0LCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1
bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29t
cGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KGZhYnMoYSkpKSkpOwogfQpAQCAt
MzY0NCw3ICszNjUyLDcgQEAgdm9pZCB0ZXN0QWJzQXJnV2l0aEVmZmVjdGZ1bERvdWJsZUNvbnZl
cgogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0
d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CiAgICAgVmFsdWUqIGRvdWJsZUFkZHJl
c3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMSk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihw
cm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgZG91YmxlQWRkcmVzcyk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQzMik7CiAKICAgICBkb3VibGUgZWZmZWN0ID0gMDsKICAgICBpbnQzMl90IHJlc3Vs
dFZhbHVlID0gY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJf
dD4oYSksICZlZmZlY3QpOwpAQCAtMzY1Niw3ICszNjY0LDcgQEAgdm9pZCB0ZXN0Q2VpbEFyZyhk
b3VibGUgYSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IENlaWwsIE9yaWdpbigpLApAQCAtMzY3MCw3ICszNjc4LDcgQEAgdm9pZCB0ZXN0Q2VpbEltbShk
b3VibGUgYSkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25z
dERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIENlaWwsIE9yaWdpbigpLCBhcmd1bWVudCkpOwogCkBAIC0zNjgzLDcgKzM2OTEsNyBAQCB2
b2lkIHRlc3RDZWlsTWVtKGRvdWJsZSBhKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVt
b3J5VmFsdWUqIGxvYWREb3VibGUgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2Ms
IExvYWQsIERvdWJsZSwgT3JpZ2luKCksIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBDZWlsLCBPcmlnaW4oKSwgbG9hZERvdWJsZSkpOwogCkBAIC0zNjk3LDcgKzM3MDUsNyBA
QCB2b2lkIHRlc3RDZWlsQ2VpbEFyZyhkb3VibGUgYSkKICAgICBWYWx1ZSogZmlyc3RDZWlsID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDZWlsLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjph
cmd1bWVudEZQUjApKTsKICAgICBWYWx1ZSogc2Vjb25kQ2VpbCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCksIGZpcnN0Q2VpbCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kQ2VpbCk7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNl
Y29uZENlaWwpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+
KHByb2MsIGEpLCBjZWlsKGEpKSk7CiB9CkBAIC0zNzA5LDcgKzM3MTcsNyBAQCB2b2lkIHRlc3RG
bG9vckNlaWxBcmcoZG91YmxlIGEpCiAgICAgVmFsdWUqIGZpcnN0Q2VpbCA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIw
KSk7CiAgICAgVmFsdWUqIHdyYXBwaW5nRmxvb3IgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEZsb29yLCBPcmlnaW4oKSwgZmlyc3RDZWlsKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB3cmFwcGluZ0Zsb29yKTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgd3JhcHBp
bmdGbG9vcik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4o
cHJvYywgYSksIGNlaWwoYSkpKTsKIH0KQEAgLTM3MjEsNyArMzcyOSw3IEBAIHZvaWQgdGVzdENl
aWxJVG9ENjQoaW50NjRfdCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIw
KTsKICAgICBWYWx1ZSogYXJndW1lbnRBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgSVRvRCwgT3JpZ2luKCksIGFyZ3VtZW50KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBDZWlsLCBPcmlnaW4oKSwgYXJndW1lbnRBc0RvdWJsZSkpOwogCkBAIC0zNzM2LDcgKzM3
NDQsNyBAQCB2b2lkIHRlc3RDZWlsSVRvRDMyKGludDY0X3QgYSkKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjApKTsKICAgICBWYWx1ZSogYXJndW1lbnRBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGFyZ3VtZW50KTsKIAotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBDZWlsLCBPcmlnaW4oKSwgYXJndW1lbnRBc0RvdWJsZSkpOwogCkBAIC0zNzUy
LDcgKzM3NjAsNyBAQCB2b2lkIHRlc3RDZWlsQXJnKGZsb2F0IGEpCiAgICAgVmFsdWUqIGFyZ3Vt
ZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCks
IGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIENlaWwsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3Vs
dCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21w
aWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdp
c2VfY2FzdDxpbnQzMl90PihjZWlsZihhKSkpKTsKIH0KQEAgLTM3NjQsNyArMzc3Miw3IEBAIHZv
aWQgdGVzdENlaWxJbW0oZmxvYXQgYSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBl
bmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHJl
c3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCksIGFyZ3Vt
ZW50KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsK
IAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0
d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGNlaWxmKGEpKSkp
OwogfQpAQCAtMzc3Nyw3ICszNzg1LDcgQEAgdm9pZCB0ZXN0Q2VpbE1lbShmbG9hdCBhKQogICAg
IE1lbW9yeVZhbHVlKiBsb2FkRmxvYXQgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHBy
b2MsIExvYWQsIEZsb2F0LCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIHJlc3VsdCA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCksIGxvYWRGbG9hdCk7
CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3
aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAg
ICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsICZhKSwgYml0
d2lzZV9jYXN0PGludDMyX3Q+KGNlaWxmKGEpKSkpOwogfQpAQCAtMzc5MSw3ICszNzk5LDcgQEAg
dm9pZCB0ZXN0Q2VpbENlaWxBcmcoZmxvYXQgYSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQz
Mik7CiAgICAgVmFsdWUqIGZpcnN0Q2VpbCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
Q2VpbCwgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBWYWx1ZSogc2Vjb25kQ2VpbCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCksIGZpcnN0Q2VpbCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vj
b25kQ2VpbCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHNlY29uZENlaWwpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFu
ZFJ1bjxmbG9hdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgY2VpbGYoYSkpKTsK
IH0KQEAgLTM4MDUsNyArMzgxMyw3IEBAIHZvaWQgdGVzdEZsb29yQ2VpbEFyZyhmbG9hdCBhKQog
ICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lz
ZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1ZSogZmlyc3RDZWlsID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDZWlsLCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAg
IFZhbHVlKiB3cmFwcGluZ0Zsb29yID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9v
ciwgT3JpZ2luKCksIGZpcnN0Q2VpbCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgd3JhcHBpbmdGbG9vcik7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHdyYXBwaW5nRmxvb3Ip
OwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYywgYml0
d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgY2VpbGYoYSkpKTsKIH0KQEAgLTM4MjEsNyArMzgyOSw3
IEBAIHZvaWQgdGVzdENlaWxBcmdXaXRoVXNlbGVzc0RvdWJsZUNvbnZlcnMKICAgICBWYWx1ZSog
cmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDZWlsLCBPcmlnaW4oKSwgYXNE
b3VibGUpOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgVmFsdWUqIHJlc3Vs
dDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCks
IGZsb2F0UmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRl
bnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+
KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGNlaWxmKGEpKSkpOwogfQpAQCAtMzgzOSw3ICsz
ODQ3LDcgQEAgdm9pZCB0ZXN0Q2VpbEFyZ1dpdGhFZmZlY3RmdWxEb3VibGVDb252ZQogICAgIFZh
bHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3Qs
IE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CiAgICAgVmFsdWUqIGRvdWJsZUFkZHJlc3MgPSByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMSk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9y
ZSwgT3JpZ2luKCksIHJlc3VsdCwgZG91YmxlQWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQz
Mik7CiAKICAgICBkb3VibGUgZWZmZWN0ID0gMDsKICAgICBpbnQzMl90IHJlc3VsdFZhbHVlID0g
Y29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksICZl
ZmZlY3QpOwpAQCAtMzg1MSw3ICszODU5LDcgQEAgdm9pZCB0ZXN0Rmxvb3JBcmcoZG91YmxlIGEp
CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBGbG9vciwg
T3JpZ2luKCksCkBAIC0zODY1LDcgKzM4NzMsNyBAQCB2b2lkIHRlc3RGbG9vckltbShkb3VibGUg
YSkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJs
ZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZs
b29yLCBPcmlnaW4oKSwgYXJndW1lbnQpKTsKIApAQCAtMzg3OCw3ICszODg2LDcgQEAgdm9pZCB0
ZXN0Rmxvb3JNZW0oZG91YmxlIGEpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBNZW1vcnlW
YWx1ZSogbG9hZERvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9h
ZCwgRG91YmxlLCBPcmlnaW4oKSwgYWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEZsb29yLCBPcmlnaW4oKSwgbG9hZERvdWJsZSkpOwogCkBAIC0zODkyLDcgKzM5MDAsNyBAQCB2
b2lkIHRlc3RGbG9vckZsb29yQXJnKGRvdWJsZSBhKQogICAgIFZhbHVlKiBmaXJzdEZsb29yID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6
YXJndW1lbnRGUFIwKSk7CiAgICAgVmFsdWUqIHNlY29uZEZsb29yID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGZpcnN0Rmxvb3IpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZEZsb29y
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgc2Vjb25kRmxvb3IpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxk
b3VibGU+KHByb2MsIGEpLCBmbG9vcihhKSkpOwogfQpAQCAtMzkwNCw3ICszOTEyLDcgQEAgdm9p
ZCB0ZXN0Q2VpbEZsb29yQXJnKGRvdWJsZSBhKQogICAgIFZhbHVlKiBmaXJzdEZsb29yID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJn
dW1lbnRGUFIwKSk7CiAgICAgVmFsdWUqIHdyYXBwaW5nQ2VpbCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCksIGZpcnN0Rmxvb3IpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHdyYXBwaW5nQ2VpbCk7
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHdyYXBwaW5nQ2VpbCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRv
dWJsZT4ocHJvYywgYSksIGZsb29yKGEpKSk7CiB9CkBAIC0zOTE2LDcgKzM5MjQsNyBAQCB2b2lk
IHRlc3RGbG9vcklUb0Q2NChpbnQ2NF90IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjApOwogICAgIFZhbHVlKiBhcmd1bWVudEFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgYXJndW1lbnQpOwogCi0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgYXJndW1lbnRBc0RvdWJsZSkpOwogCkBAIC0z
OTMxLDcgKzM5MzksNyBAQCB2b2lkIHRlc3RGbG9vcklUb0QzMihpbnQ2NF90IGEpCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIwKSk7CiAgICAgVmFsdWUqIGFyZ3VtZW50QXNEb3VibGUgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBhcmd1bWVudEFzRG91YmxlKSk7
CiAKQEAgLTM5NDcsNyArMzk1NSw3IEBAIHZvaWQgdGVzdEZsb29yQXJnKGZsb2F0IGEpCiAgICAg
VmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2Fz
dCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZhbHVl
KiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9y
aWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJ
ZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJf
dD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oZmxvb3JmKGEpKSkpOwogfQpAQCAtMzk1OSw3
ICszOTY3LDcgQEAgdm9pZCB0ZXN0Rmxvb3JJbW0oZmxvYXQgYSkKICAgICBWYWx1ZSogYXJndW1l
bnQgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7
CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3Is
IE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGlu
dDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQz
Ml90PihmbG9vcmYoYSkpKSk7CiB9CkBAIC0zOTcyLDcgKzM5ODAsNyBAQCB2b2lkIHRlc3RGbG9v
ck1lbShmbG9hdCBhKQogICAgIE1lbW9yeVZhbHVlKiBsb2FkRmxvYXQgPSByb290LT5hcHBlbmRO
ZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEZsb2F0LCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAg
ICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9y
aWdpbigpLCBsb2FkRmxvYXQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMy
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQz
Ml90Pihwcm9jLCAmYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihmbG9vcmYoYSkpKSk7CiB9CkBA
IC0zOTg2LDcgKzM5OTQsNyBAQCB2b2lkIHRlc3RGbG9vckZsb29yQXJnKGZsb2F0IGEpCiAgICAg
VmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2Fz
dCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiBmaXJzdEZsb29yID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBW
YWx1ZSogc2Vjb25kRmxvb3IgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBP
cmlnaW4oKSwgZmlyc3RGbG9vcik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kRmxvb3IpOworICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmRGbG9vcik7CiAKICAg
ICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jLCBiaXR3aXNlX2Nh
c3Q8aW50MzJfdD4oYSkpLCBmbG9vcmYoYSkpKTsKIH0KQEAgLTQwMDAsNyArNDAwOCw3IEBAIHZv
aWQgdGVzdENlaWxGbG9vckFyZyhmbG9hdCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMy
KTsKICAgICBWYWx1ZSogZmlyc3RGbG9vciA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
Rmxvb3IsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHdyYXBwaW5nQ2VpbCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCksIGZpcnN0Rmxvb3IpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHdyYXBwaW5nQ2VpbCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHdyYXBwaW5nQ2VpbCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChj
b21waWxlQW5kUnVuPGZsb2F0Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBmbG9v
cmYoYSkpKTsKIH0KQEAgLTQwMTYsNyArNDAyNCw3IEBAIHZvaWQgdGVzdEZsb29yQXJnV2l0aFVz
ZWxlc3NEb3VibGVDb252ZXIKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGFzRG91YmxlKTsKICAgICBWYWx1ZSogZmxvYXRS
ZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdp
bigpLCByZXN1bHQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMy
X3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90
PihmbG9vcmYoYSkpKSk7CiB9CkBAIC00MDM0LDcgKzQwNDIsNyBAQCB2b2lkIHRlc3RGbG9vckFy
Z1dpdGhFZmZlY3RmdWxEb3VibGVDb252CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsK
ICAgICBWYWx1ZSogZG91YmxlQWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKICAgICByb290LT5h
cHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBkb3Vi
bGVBZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIGRvdWJsZSBlZmZlY3Qg
PSAwOwogICAgIGludDMyX3QgcmVzdWx0VmFsdWUgPSBjb21waWxlQW5kUnVuPGludDMyX3Q+KHBy
b2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgJmVmZmVjdCk7CkBAIC00MDQ2LDcgKzQwNTQs
NyBAQCB2b2lkIHRlc3RTcXJ0QXJnKGRvdWJsZSBhKQogewogICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KAogICAgICAgICAgICAgcHJvYywgU3FydCwgT3JpZ2luKCksCkBAIC00MDYwLDcgKzQwNjgs
NyBAQCB2b2lkIHRlc3RTcXJ0SW1tKGRvdWJsZSBhKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50
ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3FydCwgT3JpZ2luKCksIGFyZ3VtZW50KSk7CiAK
QEAgLTQwNzMsNyArNDA4MSw3IEBAIHZvaWQgdGVzdFNxcnRNZW0oZG91YmxlIGEpCiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKTsKICAgICBNZW1vcnlWYWx1ZSogbG9hZERvdWJsZSA9IHJvb3QtPmFwcGVu
ZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgRG91YmxlLCBPcmlnaW4oKSwgYWRkcmVzcyk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFNxcnQsIE9yaWdpbigpLCBsb2FkRG91YmxlKSk7
CiAKQEAgLTQwODksNyArNDA5Nyw3IEBAIHZvaWQgdGVzdFNxcnRBcmcoZmxvYXQgYSkKICAgICBW
YWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0
LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgU3FydCwgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBWYWx1ZSog
cmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmln
aW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRl
bnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+
KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0PGZsb2F0PihzcXJ0KGEpKSkp
KTsKIH0KQEAgLTQxMDEsNyArNDEwOSw3IEBAIHZvaWQgdGVzdFNxcnRJbW0oZmxvYXQgYSkKICAg
ICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgU3FydCwgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBWYWx1ZSogcmVzdWx0MzIg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVz
dWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNv
bXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0
d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0PGZsb2F0PihzcXJ0KGEpKSkpKTsKIH0KQEAg
LTQxMTQsNyArNDEyMiw3IEBAIHZvaWQgdGVzdFNxcnRNZW0oZmxvYXQgYSkKICAgICBNZW1vcnlW
YWx1ZSogbG9hZEZsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2Fk
LCBGbG9hdCwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIFNxcnQsIE9yaWdpbigpLCBsb2FkRmxvYXQpOwogICAgIFZh
bHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3Qs
IE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0so
aXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCAmYSksIGJpdHdpc2VfY2Fz
dDxpbnQzMl90PihzdGF0aWNfY2FzdDxmbG9hdD4oc3FydChhKSkpKSk7CiB9CkBAIC00MTMwLDcg
KzQxMzgsNyBAQCB2b2lkIHRlc3RTcXJ0QXJnV2l0aFVzZWxlc3NEb3VibGVDb252ZXJzCiAgICAg
VmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3FydCwgT3JpZ2lu
KCksIGFzRG91YmxlKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCByZXN1bHQpOwogICAgIFZhbHVl
KiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9y
aWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVD
Syhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxp
bnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihzdGF0aWNfY2FzdDxmbG9hdD4oc3Fy
dChhKSkpKSk7CiB9CkBAIC00MTQ4LDcgKzQxNTYsNyBAQCB2b2lkIHRlc3RTcXJ0QXJnV2l0aEVm
ZmVjdGZ1bERvdWJsZUNvbnZlCiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKICAgICBW
YWx1ZSogZG91YmxlQWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKICAgICByb290LT5hcHBlbmRO
ZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBkb3VibGVBZGRy
ZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIGRvdWJsZSBlZmZlY3QgPSAwOwog
ICAgIGludDMyX3QgcmVzdWx0VmFsdWUgPSBjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJp
dHdpc2VfY2FzdDxpbnQzMl90PihhKSwgJmVmZmVjdCk7CkBAIC00MTcyLDcgKzQxODAsNyBAQCB2
b2lkIHRlc3RDb21wYXJlVHdvRmxvYXRUb0RvdWJsZShmbG9hdCBhCiAgICAgVmFsdWUqIGFyZzJB
c0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3Jp
Z2luKCksIGFyZzJGbG9hdCk7CiAgICAgVmFsdWUqIGVxdWFsID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBFcXVhbCwgT3JpZ2luKCksIGFyZzFBc0RvdWJsZSwgYXJnMkFzRG91YmxlKTsK
IAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIGVxdWFsKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgZXF1YWwpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihw
cm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSkg
PT0gKGEgPT0gYikpOwogfQpAQCAtNDE5MCw3ICs0MTk4LDcgQEAgdm9pZCB0ZXN0Q29tcGFyZU9u
ZUZsb2F0VG9Eb3VibGUoZmxvYXQgYQogICAgIFZhbHVlKiBhcmcyQXNEb3VibGUgPSByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3Vt
ZW50RlBSMCk7CiAgICAgVmFsdWUqIGVxdWFsID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBFcXVhbCwgT3JpZ2luKCksIGFyZzFBc0RvdWJsZSwgYXJnMkFzRG91YmxlKTsKIAotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGVxdWFs
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgZXF1YWwpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGIpID09IChhID09IGIpKTsKIH0KQEAgLTQyMTQsMjMgKzQy
MjIsMjMgQEAgdm9pZCB0ZXN0Q29tcGFyZUZsb2F0VG9Eb3VibGVUaHJvdWdoUGhpKAogICAgIFZh
bHVlKiBhcmcyQXNGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9G
bG9hdCwgT3JpZ2luKCksIGFyZzJBc0RvdWJsZSk7CiAgICAgVmFsdWUqIGFyZzJBc0ZSb3VuZGVk
RG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmln
aW4oKSwgYXJnMkFzRmxvYXQpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gs
IE9yaWdpbigpLAogICAgICAgICBjb25kaXRpb24sCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0
aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCiAgICAgVXBzaWxvblZhbHVl
KiB0aGVuVmFsdWUgPSB0aGVuQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIGFyZzFBc0RvdWJsZSk7Ci0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOworICAgIHRo
ZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1
ZW50ZWRCbG9jayh0YWlsKSk7CiAKICAgICBWYWx1ZSogZWxzZUNvbnN0ID0gZWxzZUNhc2UtPmFw
cGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMC4pOwogICAgIFVwc2ls
b25WYWx1ZSogZWxzZVZhbHVlID0gZWxzZUNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBlbHNlQ29uc3QpOwotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKKyAg
ICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBG
cmVxdWVudGVkQmxvY2sodGFpbCkpOwogCiAgICAgVmFsdWUqIGRvdWJsZUlucHV0ID0gdGFpbC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBQaGksIERvdWJsZSwgT3JpZ2luKCkpOwogICAgIHRoZW5W
YWx1ZS0+c2V0UGhpKGRvdWJsZUlucHV0KTsKICAgICBlbHNlVmFsdWUtPnNldFBoaShkb3VibGVJ
bnB1dCk7CiAgICAgVmFsdWUqIGVxdWFsID0gdGFpbC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBF
cXVhbCwgT3JpZ2luKCksIGRvdWJsZUlucHV0LCBhcmcyQXNGUm91bmRlZERvdWJsZSk7Ci0gICAg
dGFpbC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZXF1
YWwpOworICAgIHRhaWwtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBlcXVhbCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIGludDMy
X3QgaW50ZWdlckEgPSBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSk7CkBAIC00MjYxLDcgKzQyNjks
NyBAQCB2b2lkIHRlc3REb3VibGVUb0Zsb2F0VGhyb3VnaFBoaShmbG9hdCB2CiAgICAgVmFsdWUq
IGZsb2F0VmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBP
cmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUqIGFyZ0FzRG91YmxlID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSk7
CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAg
IGNvbmRpdGlvbiwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRl
ZEJsb2NrKGVsc2VDYXNlKSk7CkBAIC00MjY5LDE3ICs0Mjc3LDE3IEBAIHZvaWQgdGVzdERvdWJs
ZVRvRmxvYXRUaHJvdWdoUGhpKGZsb2F0IHYKICAgICBWYWx1ZSogcG9zdGl0aXZlQ29uc3QgPSB0
aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0Mi41
Zik7CiAgICAgVmFsdWUqIHRoZW5BZGQgPSB0aGVuQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBBZGQsIE9yaWdpbigpLCBhcmdBc0RvdWJsZSwgcG9zdGl0aXZlQ29uc3QpOwogICAgIFVwc2ls
b25WYWx1ZSogdGhlblZhbHVlID0gdGhlbkNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCB0aGVuQWRkKTsKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CisgICAg
dGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJl
cXVlbnRlZEJsb2NrKHRhaWwpKTsKIAogICAgIFZhbHVlKiBlbHNlQ29uc3QgPSBlbHNlQ2FzZS0+
YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBNX1BJKTsKICAgICBV
cHNpbG9uVmFsdWUqIGVsc2VWYWx1ZSA9IGVsc2VDYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgZWxzZUNvbnN0KTsKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7
CisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4o
KSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKIAogICAgIFZhbHVlKiBkb3VibGVJbnB1dCA9IHRh
aWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBEb3VibGUsIE9yaWdpbigpKTsKICAgICB0
aGVuVmFsdWUtPnNldFBoaShkb3VibGVJbnB1dCk7CiAgICAgZWxzZVZhbHVlLT5zZXRQaGkoZG91
YmxlSW5wdXQpOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIGRvdWJsZUlucHV0KTsKLSAgICB0YWls
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBmbG9hdFJl
c3VsdCk7CisgICAgdGFpbC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIGZsb2F0UmVzdWx0KTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAg
ICAgQ0hFQ0soaXNJZGVudGljYWwoaW52b2tlPGZsb2F0PigqY29kZSwgMSwgYml0d2lzZV9jYXN0
PGludDMyX3Q+KHZhbHVlKSksIHZhbHVlICsgNDIuNWYpKTsKQEAgLTQyOTksMTggKzQzMDcsMTgg
QEAgdm9pZCB0ZXN0RG91YmxlUHJvZHVjZXJQaGlUb0Zsb2F0Q29udmVycwogICAgICAgICByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMSkpOwogICAgIFZhbHVlKiBmbG9hdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogCi0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICBjb25kaXRpb24s
CiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNl
Q2FzZSkpOwogCiAgICAgVmFsdWUqIGFzRG91YmxlID0gdGhlbkNhc2UtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGZsb2F0VmFsdWUpOwogICAgIFVwc2ls
b25WYWx1ZSogdGhlblZhbHVlID0gdGhlbkNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBhc0RvdWJsZSk7Ci0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOworICAg
IHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZy
ZXF1ZW50ZWRCbG9jayh0YWlsKSk7CiAKICAgICBWYWx1ZSogY29uc3REb3VibGUgPSBlbHNlQ2Fz
ZS0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0Mi41KTsKICAg
ICBVcHNpbG9uVmFsdWUqIGVsc2VWYWx1ZSA9IGVsc2VDYXNlLT5hcHBlbmROZXc8VXBzaWxvblZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgY29uc3REb3VibGUpOwotICAgIGVsc2VDYXNlLT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRh
aWwpKTsKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9y
aWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOwogCiAgICAgVmFsdWUqIGRvdWJsZUlucHV0
ID0gdGFpbC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBQaGksIERvdWJsZSwgT3JpZ2luKCkpOwog
ICAgIHRoZW5WYWx1ZS0+c2V0UGhpKGRvdWJsZUlucHV0KTsKQEAgLTQzMTksNyArNDMyNyw3IEBA
IHZvaWQgdGVzdERvdWJsZVByb2R1Y2VyUGhpVG9GbG9hdENvbnZlcnMKICAgICBWYWx1ZSogYXJn
QXNEb3VibGVBZ2FpbiA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJs
ZSwgT3JpZ2luKCksIGZsb2F0VmFsdWUpOwogICAgIFZhbHVlKiBmaW5hbEFkZCA9IHRhaWwtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgZG91YmxlSW5wdXQsIGFyZ0FzRG91
YmxlQWdhaW4pOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIGZpbmFsQWRkKTsKLSAgICB0YWlsLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBmbG9hdFJlc3Vs
dCk7CisgICAgdGFpbC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIGZsb2F0UmVzdWx0KTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAg
Q0hFQ0soaXNJZGVudGljYWwoaW52b2tlPGZsb2F0PigqY29kZSwgMSwgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KHZhbHVlKSksIHZhbHVlICsgdmFsdWUpKTsKQEAgLTQzNDEsMTggKzQzNDksMTggQEAg
dm9pZCB0ZXN0RG91YmxlUHJvZHVjZXJQaGlUb0Zsb2F0Q29udmVycwogICAgICAgICByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMSkpOwogICAgIFZhbHVlKiBmbG9hdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogCi0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICBjb25kaXRpb24sCiAg
ICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2Fz
ZSkpOwogCiAgICAgVmFsdWUqIGFzRG91YmxlID0gdGhlbkNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGZsb2F0VmFsdWUpOwogICAgIFVwc2lsb25W
YWx1ZSogdGhlblZhbHVlID0gdGhlbkNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBhc0RvdWJsZSk7Ci0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOworICAgIHRo
ZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1
ZW50ZWRCbG9jayh0YWlsKSk7CiAKICAgICBWYWx1ZSogY29uc3REb3VibGUgPSBlbHNlQ2FzZS0+
YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0Mi41KTsKICAgICBV
cHNpbG9uVmFsdWUqIGVsc2VWYWx1ZSA9IGVsc2VDYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgY29uc3REb3VibGUpOwotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwp
KTsKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdp
bigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOwogCiAgICAgVmFsdWUqIGRvdWJsZUlucHV0ID0g
dGFpbC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBQaGksIERvdWJsZSwgT3JpZ2luKCkpOwogICAg
IHRoZW5WYWx1ZS0+c2V0UGhpKGRvdWJsZUlucHV0KTsKQEAgLTQzNjgsNyArNDM3Niw3IEBAIHZv
aWQgdGVzdERvdWJsZVByb2R1Y2VyUGhpVG9GbG9hdENvbnZlcnMKICAgICAvLyBUaGlzIG9uZSAq
Y2Fubm90KiBiZSBlbGltaW5hdGVkCiAgICAgVmFsdWUqIGRvdWJsZUFkZCA9IHRhaWwtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgZG91YmxlSW5wdXQsIGRvdWJsZVJlc3Vs
dCk7CiAKLSAgICB0YWlsLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBkb3VibGVBZGQpOworICAgIHRhaWwtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBkb3VibGVBZGQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGls
ZShwcm9jKTsKICAgICBDSEVDSyhpc0lkZW50aWNhbChpbnZva2U8ZG91YmxlPigqY29kZSwgMSwg
Yml0d2lzZV9jYXN0PGludDMyX3Q+KHZhbHVlKSksICh2YWx1ZSArIHZhbHVlKSArIHN0YXRpY19j
YXN0PGRvdWJsZT4odmFsdWUpKSk7CkBAIC00Mzg4LDE4ICs0Mzk2LDE4IEBAIHZvaWQgdGVzdERv
dWJsZVByb2R1Y2VyUGhpV2l0aE5vbkZsb2F0Q28KICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKTsK
ICAgICBWYWx1ZSogZmxvYXRWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0
d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgY29uZGl0aW9uLAogICAgICAgICBGcmVx
dWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAogICAg
IFZhbHVlKiBhc0RvdWJsZSA9IHRoZW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0
VG9Eb3VibGUsIE9yaWdpbigpLCBmbG9hdFZhbHVlKTsKICAgICBVcHNpbG9uVmFsdWUqIHRoZW5W
YWx1ZSA9IHRoZW5DYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
YXNEb3VibGUpOwotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBK
dW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKKyAgICB0aGVuQ2FzZS0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2so
dGFpbCkpOwogCiAgICAgVmFsdWUqIGNvbnN0RG91YmxlID0gZWxzZUNhc2UtPmFwcGVuZE5ldzxD
b25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgY29uc3RWYWx1ZSk7CiAgICAgVXBzaWxv
blZhbHVlKiBlbHNlVmFsdWUgPSBlbHNlQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJv
YywgT3JpZ2luKCksIGNvbnN0RG91YmxlKTsKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7Cisg
ICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwg
RnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKIAogICAgIFZhbHVlKiBkb3VibGVJbnB1dCA9IHRhaWwt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBEb3VibGUsIE9yaWdpbigpKTsKICAgICB0aGVu
VmFsdWUtPnNldFBoaShkb3VibGVJbnB1dCk7CkBAIC00NDA4LDcgKzQ0MTYsNyBAQCB2b2lkIHRl
c3REb3VibGVQcm9kdWNlclBoaVdpdGhOb25GbG9hdENvCiAgICAgVmFsdWUqIGFyZ0FzRG91Ymxl
QWdhaW4gPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdp
bigpLCBmbG9hdFZhbHVlKTsKICAgICBWYWx1ZSogZmluYWxBZGQgPSB0YWlsLT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGRvdWJsZUlucHV0LCBhcmdBc0RvdWJsZUFnYWlu
KTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBmaW5hbEFkZCk7Ci0gICAgdGFpbC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOworICAg
IHRhaWwtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBmbG9h
dFJlc3VsdCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIENIRUNLKGlz
SWRlbnRpY2FsKGludm9rZTxmbG9hdD4oKmNvZGUsIDEsIGJpdHdpc2VfY2FzdDxpbnQzMl90Pih2
YWx1ZSkpLCB2YWx1ZSArIHZhbHVlKSk7CkBAIC00NDIxLDcgKzQ0MjksNyBAQCB2b2lkIHRlc3RE
b3VibGVBcmdUb0ludDY0Qml0d2lzZUNhc3QoZG91CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXR3aXNlQ2FzdCwgT3Jp
Z2luKCksIGFyZ3VtZW50KSk7CkBAIC00NDM1LDcgKzQ0NDMsNyBAQCB2b2lkIHRlc3REb3VibGVJ
bW1Ub0ludDY0Qml0d2lzZUNhc3QoZG91CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3Vi
bGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQpKTsKQEAg
LTQ0NTAsNyArNDQ1OCw3IEBAIHZvaWQgdGVzdFR3b0JpdHdpc2VDYXN0T25Eb3VibGUoZG91Ymxl
IHYKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIGZp
cnN0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCks
IGFyZ3VtZW50KTsKICAgICBWYWx1ZSogc2Vjb25kID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZpcnN0KTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmQpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmQpOwog
CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIHZhbHVl
KSwgdmFsdWUpKTsKIH0KQEAgLTQ0NjIsNyArNDQ3MCw3IEBAIHZvaWQgdGVzdEJpdHdpc2VDYXN0
T25Eb3VibGVJbk1lbW9yeShkb3UKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIw
KTsKICAgICBNZW1vcnlWYWx1ZSogbG9hZERvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlW
YWx1ZT4ocHJvYywgTG9hZCwgRG91YmxlLCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUq
IGNhc3QgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4o
KSwgbG9hZERvdWJsZSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgY2FzdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNhc3QpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwo
Y29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAmdmFsdWUpLCBiaXR3aXNlX2Nhc3Q8aW50NjRf
dD4odmFsdWUpKSk7CiB9CkBAIC00NDc5LDcgKzQ0ODcsNyBAQCB2b2lkIHRlc3RCaXR3aXNlQ2Fz
dE9uRG91YmxlSW5NZW1vcnlJbmRlCiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGJhc2UsIHNjYWxlZE9mZnNldCk7CiAgICAg
TWVtb3J5VmFsdWUqIGxvYWREb3VibGUgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHBy
b2MsIExvYWQsIERvdWJsZSwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBjYXN0ID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGxvYWRE
b3VibGUpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIGNhc3QpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCBjYXN0KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVB
bmRSdW48aW50NjRfdD4ocHJvYywgJnZhbHVlLCAwKSwgYml0d2lzZV9jYXN0PGludDY0X3Q+KHZh
bHVlKSkpOwogfQpAQCAtNDQ5MCw3ICs0NDk4LDcgQEAgdm9pZCB0ZXN0SW50NjRCQXJnVG9Eb3Vi
bGVCaXR3aXNlQ2FzdChpbgogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogCi0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVu
dCkpOwpAQCAtNDUwNCw3ICs0NTEyLDcgQEAgdm9pZCB0ZXN0SW50NjRCSW1tVG9Eb3VibGVCaXR3
aXNlQ2FzdChpbgogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAg
VmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIHZhbHVlKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQpKTsKQEAgLTQ1MTksNyArNDUyNyw3IEBA
IHZvaWQgdGVzdFR3b0JpdHdpc2VDYXN0T25JbnQ2NChpbnQ2NF90IHYKICAgICBWYWx1ZSogYXJn
dW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIGZpcnN0ID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBW
YWx1ZSogc2Vjb25kID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwg
T3JpZ2luKCksIGZpcnN0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmQpOwogCiAgICAgQ0hFQ0soaXNJZGVu
dGljYWwoY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCB2YWx1ZSksIHZhbHVlKSk7CiB9CkBA
IC00NTMxLDcgKzQ1MzksNyBAQCB2b2lkIHRlc3RCaXR3aXNlQ2FzdE9uSW50NjRJbk1lbW9yeShp
bnQ2CiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVtb3J5VmFs
dWUqIGxvYWREb3VibGUgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQs
IEludDY0LCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIGNhc3QgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgbG9hZERvdWJsZSk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
Y2FzdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIGNhc3QpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3Vi
bGU+KHByb2MsICZ2YWx1ZSksIGJpdHdpc2VfY2FzdDxkb3VibGU+KHZhbHVlKSkpOwogfQpAQCAt
NDU0OCw3ICs0NTU2LDcgQEAgdm9pZCB0ZXN0Qml0d2lzZUNhc3RPbkludDY0SW5NZW1vcnlJbmRl
eAogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQs
IE9yaWdpbigpLCBiYXNlLCBzY2FsZWRPZmZzZXQpOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkRG91
YmxlID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQ2NCwgT3Jp
Z2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBjYXN0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGxvYWREb3VibGUpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNhc3QpOworICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0
KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCAm
dmFsdWUsIDApLCBiaXR3aXNlX2Nhc3Q8ZG91YmxlPih2YWx1ZSkpKTsKIH0KQEAgLTQ1NTksNyAr
NDU2Nyw3IEBAIHZvaWQgdGVzdEZsb2F0SW1tVG9JbnQzMkJpdHdpc2VDYXN0KGZsb2EKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9
IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSk7
CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXR3aXNlQ2FzdCwg
T3JpZ2luKCksIGFyZ3VtZW50KSk7CkBAIC00NTc0LDcgKzQ1ODIsNyBAQCB2b2lkIHRlc3RCaXR3
aXNlQ2FzdE9uRmxvYXRJbk1lbW9yeShmbG9hCiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWRGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxN
ZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgRmxvYXQsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBW
YWx1ZSogY2FzdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9y
aWdpbigpLCBsb2FkRmxvYXQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIGNhc3QpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0KTsKIAogICAgIENIRUNLKGlzSWRlbnRp
Y2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgJnZhbHVlKSwgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KHZhbHVlKSkpOwogfQpAQCAtNDU4NSw3ICs0NTkzLDcgQEAgdm9pZCB0ZXN0SW50MzJC
QXJnVG9GbG9hdEJpdHdpc2VDYXN0KGludAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50
UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogCi0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigp
LCBhcmd1bWVudCkpOwpAQCAtNDU5OSw3ICs0NjA3LDcgQEAgdm9pZCB0ZXN0SW50MzJCSW1tVG9G
bG9hdEJpdHdpc2VDYXN0KGludAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIHZhbHVlKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQpKTsKQEAgLTQ2MTQsNyAr
NDYyMiw3IEBAIHZvaWQgdGVzdFR3b0JpdHdpc2VDYXN0T25JbnQzMihpbnQzMl90IHYKICAgICBW
YWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIGZpcnN0ID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50
KTsKICAgICBWYWx1ZSogc2Vjb25kID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3
aXNlQ2FzdCwgT3JpZ2luKCksIGZpcnN0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmQpOworICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmQpOwogCiAgICAgQ0hF
Q0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCB2YWx1ZSksIHZhbHVl
KSk7CiB9CkBAIC00NjI2LDcgKzQ2MzQsNyBAQCB2b2lkIHRlc3RCaXR3aXNlQ2FzdE9uSW50MzJJ
bk1lbW9yeShpbnQzCiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAg
TWVtb3J5VmFsdWUqIGxvYWRGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJv
YywgTG9hZCwgSW50MzIsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogY2FzdCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBsb2FkRmxv
YXQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIGNhc3QpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBjYXN0KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRS
dW48ZmxvYXQ+KHByb2MsICZ2YWx1ZSksIGJpdHdpc2VfY2FzdDxmbG9hdD4odmFsdWUpKSk7CiB9
CkBAIC00NjM3LDcgKzQ2NDUsNyBAQCB2b2lkIHRlc3RDb252ZXJ0RG91YmxlVG9GbG9hdEFyZyhk
b3VibGUgCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1
ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIGFzRmxvYXQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBhcmd1bWVu
dCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgYXNGbG9hdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIGFzRmxvYXQpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGls
ZUFuZFJ1bjxmbG9hdD4ocHJvYywgdmFsdWUpLCBzdGF0aWNfY2FzdDxmbG9hdD4odmFsdWUpKSk7
CiB9CkBAIC00NjQ4LDcgKzQ2NTYsNyBAQCB2b2lkIHRlc3RDb252ZXJ0RG91YmxlVG9GbG9hdElt
bShkb3VibGUgCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBW
YWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIHZhbHVlKTsKICAgICBWYWx1ZSogYXNGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIGFyZ3VtZW50KTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0Zsb2F0
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgYXNGbG9hdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0
Pihwcm9jKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlKSkpOwogfQpAQCAtNDY2MCw3ICs0NjY4
LDcgQEAgdm9pZCB0ZXN0Q29udmVydERvdWJsZVRvRmxvYXRNZW0oZG91YmxlIAogICAgIFZhbHVl
KiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkZWREb3Vi
bGUgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIERvdWJsZSwgT3Jp
Z2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBhc0Zsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgbG9hZGVkRG91YmxlKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0Zs
b2F0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgYXNGbG9hdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZs
b2F0Pihwcm9jLCAmdmFsdWUpLCBzdGF0aWNfY2FzdDxmbG9hdD4odmFsdWUpKSk7CiB9CkBAIC00
NjczLDcgKzQ2ODEsNyBAQCB2b2lkIHRlc3RDb252ZXJ0RmxvYXRUb0RvdWJsZUFyZyhmbG9hdCB2
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgVmFsdWUqIGZsb2F0VmFsdWUgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQz
Mik7CiAgICAgVmFsdWUqIGFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBG
bG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNEb3VibGUpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0RvdWJs
ZSk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywg
Yml0d2lzZV9jYXN0PGludDMyX3Q+KHZhbHVlKSksIHN0YXRpY19jYXN0PGRvdWJsZT4odmFsdWUp
KSk7CiB9CkBAIC00Njg0LDcgKzQ2OTIsNyBAQCB2b2lkIHRlc3RDb252ZXJ0RmxvYXRUb0RvdWJs
ZUltbShmbG9hdCB2CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAg
ICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgdmFsdWUpOwogICAgIFZhbHVlKiBhc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGFyZ3VtZW50KTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0Rv
dWJsZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIGFzRG91YmxlKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48
ZG91YmxlPihwcm9jKSwgc3RhdGljX2Nhc3Q8ZG91YmxlPih2YWx1ZSkpKTsKIH0KQEAgLTQ2OTYs
NyArNDcwNCw3IEBAIHZvaWQgdGVzdENvbnZlcnRGbG9hdFRvRG91YmxlTWVtKGZsb2F0IHYKICAg
ICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBNZW1vcnlWYWx1ZSogbG9h
ZGVkRmxvYXQgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEZsb2F0
LCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIGFzRG91YmxlID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgbG9hZGVkRmxvYXQpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IGFzRG91YmxlKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgYXNEb3VibGUpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFu
ZFJ1bjxkb3VibGU+KHByb2MsICZ2YWx1ZSksIHN0YXRpY19jYXN0PGRvdWJsZT4odmFsdWUpKSk7
CiB9CkBAIC00NzA5LDcgKzQ3MTcsNyBAQCB2b2lkIHRlc3RDb252ZXJ0RG91YmxlVG9GbG9hdFRv
RG91YmxlVG9GCiAgICAgVmFsdWUqIGFzRmxvYXQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIGFzRG91
YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4o
KSwgYXNGbG9hdCk7CiAgICAgVmFsdWUqIGFzRmxvYXRBZ2FpbiA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIGFzRG91YmxlKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0Zsb2F0
QWdhaW4pOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBhc0Zsb2F0QWdhaW4pOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFu
ZFJ1bjxmbG9hdD4ocHJvYywgdmFsdWUpLCBzdGF0aWNfY2FzdDxmbG9hdD4odmFsdWUpKSk7CiB9
CkBAIC00NzI1LDcgKzQ3MzMsNyBAQCB2b2lkIHRlc3RMb2FkRmxvYXRDb252ZXJ0RG91YmxlQ29u
dmVydEZsCiAgICAgVmFsdWUqIGFzRmxvYXRBZ2FpbiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIGFzRG91YmxlKTsKICAgICByb290LT5hcHBl
bmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgYXNGbG9hdEFnYWluLCBk
c3QpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDAp
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAog
ICAgIGZsb2F0IGlucHV0ID0gdmFsdWU7CiAgICAgZmxvYXQgb3V0cHV0ID0gMC47CkBAIC00NzQw
LDcgKzQ3NDgsNyBAQCB2b2lkIHRlc3RGcm91bmRBcmcoZG91YmxlIHZhbHVlKQogICAgIFZhbHVl
KiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogYXNGbG9hdCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIGFyZ3VtZW50
KTsKICAgICBWYWx1ZSogYXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZs
b2F0VG9Eb3VibGUsIE9yaWdpbigpLCBhc0Zsb2F0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0RvdWJsZSk7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFzRG91YmxlKTsK
IAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCB2YWx1
ZSksIHN0YXRpY19jYXN0PGRvdWJsZT4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlKSkpKTsKIH0K
QEAgLTQ3NTMsNyArNDc2MSw3IEBAIHZvaWQgdGVzdEZyb3VuZE1lbShkb3VibGUgdmFsdWUpCiAg
ICAgTWVtb3J5VmFsdWUqIGxvYWRlZERvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1
ZT4ocHJvYywgTG9hZCwgRG91YmxlLCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIGFz
RmxvYXQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdp
bigpLCBsb2FkZWREb3VibGUpOwogICAgIFZhbHVlKiBhc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGFzRmxvYXQpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFzRG91
YmxlKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgYXNEb3VibGUpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxk
b3VibGU+KHByb2MsICZ2YWx1ZSksIHN0YXRpY19jYXN0PGRvdWJsZT4oc3RhdGljX2Nhc3Q8Zmxv
YXQ+KHZhbHVlKSkpKTsKIH0KQEAgLTQ3NjQsNyArNDc3Miw3IEBAIHZvaWQgdGVzdElUb0Q2NEFy
ZygpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSog
c3JjID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFZhbHVlKiBzcmNBc0RvdWJsZSA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIHNyYyk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNEb3VibGUp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBzcmNBc0RvdWJsZSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIGZv
ciAoYXV0byB0ZXN0VmFsdWUgOiBpbnQ2NE9wZXJhbmRzKCkpCkBAIC00Nzc3LDcgKzQ3ODUsNyBA
QCB2b2lkIHRlc3RJVG9GNjRBcmcoKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7CiAgICAgVmFsdWUqIHNyYyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBWYWx1ZSogc3Jj
QXNGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRiwgT3JpZ2luKCksIHNy
Yyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgc3JjQXNGbG9hdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGls
ZShwcm9jKTsKICAgICBmb3IgKGF1dG8gdGVzdFZhbHVlIDogaW50NjRPcGVyYW5kcygpKQpAQCAt
NDc5MSw3ICs0Nzk5LDcgQEAgdm9pZCB0ZXN0SVRvRDMyQXJnKCkKICAgICBWYWx1ZSogc3JjID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKSk7CiAgICAgVmFsdWUqIHNyY0FzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgc3JjKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0RvdWJsZSk7CisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0Fz
RG91YmxlKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgZm9yIChhdXRv
IHRlc3RWYWx1ZSA6IGludDMyT3BlcmFuZHMoKSkKQEAgLTQ4MDUsNyArNDgxMyw3IEBAIHZvaWQg
dGVzdElUb0YzMkFyZygpCiAgICAgVmFsdWUqIHNyYyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZh
bHVlKiBzcmNBc0Zsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9GLCBPcmln
aW4oKSwgc3JjKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdCk7CiAKICAgICBhdXRvIGNvZGUg
PSBjb21waWxlKHByb2MpOwogICAgIGZvciAoYXV0byB0ZXN0VmFsdWUgOiBpbnQzMk9wZXJhbmRz
KCkpCkBAIC00ODE5LDcgKzQ4MjcsNyBAQCB2b2lkIHRlc3RJVG9ENjRNZW0oKQogICAgIFZhbHVl
KiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkZWRTcmMg
PSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDY0LCBPcmlnaW4o
KSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIHNyY0FzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgbG9hZGVkU3JjKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0RvdWJsZSk7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNy
Y0FzRG91YmxlKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgaW50NjRf
dCBpbk1lbW9yeVZhbHVlOwpAQCAtNDgzNyw3ICs0ODQ1LDcgQEAgdm9pZCB0ZXN0SVRvRjY0TWVt
KCkKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBNZW1vcnlWYWx1
ZSogbG9hZGVkU3JjID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJ
bnQ2NCwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBzcmNBc0Zsb2F0ID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9GLCBPcmlnaW4oKSwgbG9hZGVkU3JjKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNB
c0Zsb2F0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgc3JjQXNGbG9hdCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwog
ICAgIGludDY0X3QgaW5NZW1vcnlWYWx1ZTsKQEAgLTQ4NTUsNyArNDg2Myw3IEBAIHZvaWQgdGVz
dElUb0QzMk1lbSgpCiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAg
TWVtb3J5VmFsdWUqIGxvYWRlZFNyYyA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJv
YywgTG9hZCwgSW50MzIsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogc3JjQXNEb3Vi
bGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBsb2FkZWRT
cmMpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHNyY0FzRG91YmxlKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNEb3VibGUpOwogCiAgICAgYXV0byBjb2RlID0gY29t
cGlsZShwcm9jKTsKICAgICBpbnQzMl90IGluTWVtb3J5VmFsdWU7CkBAIC00ODczLDcgKzQ4ODEs
NyBAQCB2b2lkIHRlc3RJVG9GMzJNZW0oKQogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkZWRTcmMgPSByb290LT5hcHBlbmROZXc8TWVt
b3J5VmFsdWU+KHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAgVmFs
dWUqIHNyY0FzRmxvYXQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0YsIE9yaWdp
bigpLCBsb2FkZWRTcmMpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0KTsKIAogICAgIGF1dG8g
Y29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgaW50MzJfdCBpbk1lbW9yeVZhbHVlOwpAQCAtNDg5
MCw3ICs0ODk4LDcgQEAgdm9pZCB0ZXN0SVRvRDY0SW1tKGludDY0X3QgdmFsdWUpCiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogc3JjID0gcm9vdC0+
YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKTsKICAgICBWYWx1
ZSogc3JjQXNGbG9hdGluZ1BvaW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9E
LCBPcmlnaW4oKSwgc3JjKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0aW5nUG9pbnQpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0aW5nUG9p
bnQpOwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jKSwg
c3RhdGljX2Nhc3Q8ZG91YmxlPih2YWx1ZSkpKTsKIH0KIApAQCAtNDkwMCw3ICs0OTA4LDcgQEAg
dm9pZCB0ZXN0SVRvRjY0SW1tKGludDY0X3QgdmFsdWUpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogc3JjID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0
NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKTsKICAgICBWYWx1ZSogc3JjQXNGbG9hdGlu
Z1BvaW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9GLCBPcmlnaW4oKSwgc3Jj
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBzcmNBc0Zsb2F0aW5nUG9pbnQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0aW5nUG9pbnQpOwogICAgIENIRUNL
KGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MpLCBzdGF0aWNfY2FzdDxmbG9h
dD4odmFsdWUpKSk7CiB9CiAKQEAgLTQ5MTAsNyArNDkxOCw3IEBAIHZvaWQgdGVzdElUb0QzMklt
bShpbnQzMl90IHZhbHVlKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
CiAgICAgVmFsdWUqIHNyYyA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCB2YWx1ZSk7CiAgICAgVmFsdWUqIHNyY0FzRmxvYXRpbmdQb2ludCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIHNyYyk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdGlu
Z1BvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgc3JjQXNGbG9hdGluZ1BvaW50KTsKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21w
aWxlQW5kUnVuPGRvdWJsZT4ocHJvYyksIHN0YXRpY19jYXN0PGRvdWJsZT4odmFsdWUpKSk7CiB9
CiAKQEAgLTQ5MjAsNyArNDkyOCw3IEBAIHZvaWQgdGVzdElUb0YzMkltbShpbnQzMl90IHZhbHVl
KQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHNy
YyA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSk7
CiAgICAgVmFsdWUqIHNyY0FzRmxvYXRpbmdQb2ludCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgSVRvRiwgT3JpZ2luKCksIHNyYyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdGluZ1BvaW50KTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNG
bG9hdGluZ1BvaW50KTsKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0
Pihwcm9jKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlKSkpOwogfQogCkBAIC00OTMxLDcgKzQ5
MzksNyBAQCB2b2lkIHRlc3RJVG9EUmVkdWNlZFRvSVRvRjY0QXJnKCkKICAgICBWYWx1ZSogc3Jj
ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApOwogICAgIFZhbHVlKiBzcmNBc0RvdWJsZSA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIHNyYyk7CiAgICAgVmFsdWUqIGZsb2F0
UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmln
aW4oKSwgc3JjQXNEb3VibGUpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwogCiAgICAg
YXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBmb3IgKGF1dG8gdGVzdFZhbHVlIDogaW50
NjRPcGVyYW5kcygpKQpAQCAtNDk0Niw3ICs0OTU0LDcgQEAgdm9pZCB0ZXN0SVRvRFJlZHVjZWRU
b0lUb0YzMkFyZygpCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgVmFsdWUqIHNyY0Fz
RG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgc3Jj
KTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBzcmNBc0RvdWJsZSk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBm
bG9hdFJlc3VsdCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIGZvciAo
YXV0byB0ZXN0VmFsdWUgOiBpbnQzMk9wZXJhbmRzKCkpCkBAIC00OTY0LDcgKzQ5NzIsNyBAQCB2
b2lkIHRlc3RTdG9yZTMyKGludCB2YWx1ZSkKICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmln
aW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJnNsb3QpKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMy
VmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxp
bnQ+KHByb2MsIHZhbHVlKSk7CkBAIC00OTgwLDcgKzQ5ODgsNyBAQCB2b2lkIHRlc3RTdG9yZUNv
bnN0YW50KGludCB2YWx1ZSkKICAgICAgICAgcHJvYywgU3RvcmUsIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZz
bG90KSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgQ0hF
Q0soIWNvbXBpbGVBbmRSdW48aW50Pihwcm9jKSk7CkBAIC01MDAwLDcgKzUwMDgsNyBAQCB2b2lk
IHRlc3RTdG9yZUNvbnN0YW50UHRyKGludHB0cl90IHZhbHVlCiAgICAgICAgIHByb2MsIFN0b3Jl
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCB2YWx1ZSksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgJnNsb3QpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAwKSk7CiAKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MpKTsKQEAgLTUw
MTgsNyArNTAyNiw3IEBAIHZvaWQgdGVzdFN0b3JlOEFyZygpCiAgICAgICAgIFZhbHVlKiBhZGRy
ZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjEpOwogCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlW
YWx1ZT4ocHJvYywgU3RvcmU4LCBPcmlnaW4oKSwgdmFsdWUsIGFkZHJlc3MpOwotICAgICAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1
ZSk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCB2YWx1ZSk7CiAKICAgICAgICAgaW50OF90IHN0b3JhZ2UgPSAwOwogICAgICAgICBD
SEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIDQyLCAmc3RvcmFnZSkgPT0gNDIpOwpA
QCAtNTAzOSw3ICs1MDQ3LDcgQEAgdm9pZCB0ZXN0U3RvcmU4QXJnKCkKICAgICAgICAgVmFsdWUq
IGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGJh
c2VEaXNwbGFjZW1lbnQsIG9mZnNldCk7CiAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9y
eVZhbHVlPihwcm9jLCBTdG9yZTgsIE9yaWdpbigpLCB2YWx1ZSwgYWRkcmVzcyk7Ci0gICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZh
bHVlKTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHZhbHVlKTsKIAogICAgICAgICBpbnQ4X3Qgc3RvcmFnZSA9IDA7CiAgICAgICAg
IENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgNDIsICZzdG9yYWdlLCAxKSA9PSA0
Mik7CkBAIC01MDU3LDcgKzUwNjUsNyBAQCB2b2lkIHRlc3RTdG9yZThJbW0oKQogICAgICAgICBW
YWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKIAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlOCwgT3JpZ2luKCksIHZhbHVlLCBhZGRyZXNzKTsK
LSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgdmFsdWUpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOwogCiAgICAgICAgIGludDhfdCBzdG9yYWdlID0gMDsK
ICAgICAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAmc3RvcmFnZSkgPT0g
NDIpOwpAQCAtNTA3Nyw3ICs1MDg1LDcgQEAgdm9pZCB0ZXN0U3RvcmU4SW1tKCkKICAgICAgICAg
VmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2lu
KCksIGJhc2VEaXNwbGFjZW1lbnQsIG9mZnNldCk7CiAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZTgsIE9yaWdpbigpLCB2YWx1ZSwgYWRkcmVzcyk7Ci0g
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHZhbHVlKTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHZhbHVlKTsKIAogICAgICAgICBpbnQ4X3Qgc3RvcmFnZSA9IDA7CiAg
ICAgICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgJnN0b3JhZ2UsIDEpID09
IDQyKTsKQEAgLTUxMjksNyArNTEzNyw3IEBAIHZvaWQgdGVzdFN0b3JlUGFydGlhbDhCaXRSZWdp
c3Rlck9uWDg2KCkKICAgICAvLyBpZiB3ZSB1c2UgWDg2IHBhcnRpYWwgcmVnaXN0ZXJzLgogICAg
IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmU4LCBPcmlnaW4oKSwgcGF0
Y2hwb2ludCwgd2hlcmVUb1N0b3JlKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJldHVyblZhbHVlKTsKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmV0dXJuVmFsdWUpOwog
CiAgICAgaW50OF90IHN0b3JhZ2UgPSAweGZmOwogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50
NjRfdD4ocHJvYywgMHgxMjM0NTY3OGFiY2RlZjEyLCAmc3RvcmFnZSkgPT0gMHgxMjM0NTY3OGFi
Y2RlZjEyKTsKQEAgLTUxNDcsNyArNTE1NSw3IEBAIHZvaWQgdGVzdFN0b3JlMTZBcmcoKQogICAg
ICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKIAogICAgICAgICByb290LT5h
cHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlMTYsIE9yaWdpbigpLCB2YWx1ZSwgYWRk
cmVzcyk7Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHZhbHVlKTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKIAogICAgICAgICBpbnQxNl90IHN0b3Jh
Z2UgPSAtMTsKICAgICAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCA0Miwg
JnN0b3JhZ2UpID09IDQyKTsKQEAgLTUxNjgsNyArNTE3Niw3IEBAIHZvaWQgdGVzdFN0b3JlMTZB
cmcoKQogICAgICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQWRkLCBPcmlnaW4oKSwgYmFzZURpc3BsYWNlbWVudCwgb2Zmc2V0KTsKIAogICAgICAgICBy
b290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlMTYsIE9yaWdpbigpLCB2YWx1
ZSwgYWRkcmVzcyk7Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKIAogICAgICAgICBpbnQxNl90
IHN0b3JhZ2UgPSAtMTsKICAgICAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9j
LCA0MiwgJnN0b3JhZ2UsIDEpID09IDQyKTsKQEAgLTUxODYsNyArNTE5NCw3IEBAIHZvaWQgdGVz
dFN0b3JlMTZJbW0oKQogICAgICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsK
IAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlMTYsIE9y
aWdpbigpLCB2YWx1ZSwgYWRkcmVzcyk7Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKKyAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKIAogICAg
ICAgICBpbnQxNl90IHN0b3JhZ2UgPSAtMTsKICAgICAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxp
bnQ2NF90Pihwcm9jLCAmc3RvcmFnZSkgPT0gNDIpOwpAQCAtNTIwNiw3ICs1MjE0LDcgQEAgdm9p
ZCB0ZXN0U3RvcmUxNkltbSgpCiAgICAgICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBiYXNlRGlzcGxhY2VtZW50LCBvZmZzZXQp
OwogCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUxNiwg
T3JpZ2luKCksIHZhbHVlLCBhZGRyZXNzKTsKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOworICAgICAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOwogCiAg
ICAgICAgIGludDE2X3Qgc3RvcmFnZSA9IC0xOwogICAgICAgICBDSEVDSyhjb21waWxlQW5kUnVu
PGludDY0X3Q+KHByb2MsICZzdG9yYWdlLCAxKSA9PSA0Mik7CkBAIC01MjE4LDcgKzUyMjYsNyBA
QCB2b2lkIHRlc3RUcnVuYyhpbnQ2NF90IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KAogICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLApAQCAtNTIzMSw3ICs1MjM5
LDcgQEAgdm9pZCB0ZXN0QWRkMShpbnQgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAtNTI0Nyw3ICs1MjU1LDcg
QEAgdm9pZCB0ZXN0QWRkMVB0cihpbnRwdHJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCkBAIC01MjYxLDcgKzUy
NjksNyBAQCB2b2lkIHRlc3ROZWczMihpbnQzMl90IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBw
cm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU3ViLCBPcmlnaW4oKSwKQEAgLTUyNzcsNyAr
NTI4NSw3IEBAIHZvaWQgdGVzdE5lZ1B0cihpbnRwdHJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1
cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFN1YiwgT3JpZ2luKCksCkBAIC01MzAy
LDcgKzUzMTAsNyBAQCB2b2lkIHRlc3RTdG9yZUFkZExvYWQzMihpbnQgYW1vdW50KQogICAgICAg
ICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgICAgICByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCkpKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01MzIzLDcgKzUzMzEsNyBAQCB2b2lkIHRlc3RT
dG9yZUFkZExvYWRJbW0zMihpbnQgYW1vdW50KQogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2luKCksIHNsb3RQdHIpLAogICAg
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFt
b3VudCkpLAogICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTUzNDYsNyArNTM1NCw3IEBAIHZvaWQgdGVzdFN0b3Jl
QWRkTG9hZDgoaW50IGFtb3VudCwgQjM6Ok8KICAgICAgICAgICAgICAgICBwcm9jLCBUcnVuYywg
T3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSksCiAgICAgICAgIHNs
b3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsK
IApAQCAtNTM2Nyw3ICs1Mzc1LDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkSW1tOChpbnQgYW1v
dW50LCBCMwogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBs
b2FkT3Bjb2RlLCBPcmlnaW4oKSwgc2xvdFB0ciksCiAgICAgICAgICAgICByb290LT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYW1vdW50KSksCiAgICAgICAgIHNsb3RQ
dHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApA
QCAtNTM5MCw3ICs1Mzk4LDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkMTYoaW50IGFtb3VudCwg
QjM6OgogICAgICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAg
ICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMCkpKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01NDExLDcgKzU0MTksNyBA
QCB2b2lkIHRlc3RTdG9yZUFkZExvYWRJbW0xNihpbnQgYW1vdW50LCBCCiAgICAgICAgICAgICBy
b290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIGxvYWRPcGNvZGUsIE9yaWdpbigpLCBz
bG90UHRyKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBhbW91bnQpKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29u
c3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01NDMyLDcgKzU0NDAsNyBAQCB2
b2lkIHRlc3RTdG9yZUFkZExvYWQ2NChpbnQgYW1vdW50KQogICAgICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQ2NCwgT3JpZ2luKCksIHNsb3RQdHIp
LAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01NDUzLDcg
KzU0NjEsNyBAQCB2b2lkIHRlc3RTdG9yZUFkZExvYWRJbW02NChpbnQ2NF90IGFtb3VuCiAgICAg
ICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDY0LCBP
cmlnaW4oKSwgc2xvdFB0ciksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgYW1vdW50KSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNTQ4NSw3ICs1
NDkzLDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkMzJJbmRleChpbnQgYW1vdW50KQogICAgICAg
ICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgICAgICByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCkpKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01NTE1LDcgKzU1MjMsNyBAQCB2b2lkIHRlc3RT
dG9yZUFkZExvYWRJbW0zMkluZGV4KGludCBhbW91CiAgICAgICAgICAgICByb290LT5hcHBlbmRO
ZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwgc2xvdFB0ciksCiAg
ICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
YW1vdW50KSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNTU0Nyw3ICs1NTU1LDcgQEAgdm9pZCB0ZXN0U3Rv
cmVBZGRMb2FkOEluZGV4KGludCBhbW91bnQsIAogICAgICAgICAgICAgICAgIHByb2MsIFRydW5j
LCBPcmlnaW4oKSwKICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpKSwKICAgICAgICAg
c2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkp
OwogCkBAIC01NTc3LDcgKzU1ODUsNyBAQCB2b2lkIHRlc3RTdG9yZUFkZExvYWRJbW04SW5kZXgo
aW50IGFtb3VuCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2Ms
IGxvYWRPcGNvZGUsIE9yaWdpbigpLCBzbG90UHRyKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhbW91bnQpKSwKICAgICAgICAgc2xv
dFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwog
CkBAIC01NjA5LDcgKzU2MTcsNyBAQCB2b2lkIHRlc3RTdG9yZUFkZExvYWQxNkluZGV4KGludCBh
bW91bnQsCiAgICAgICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
R1BSSW5mbzo6YXJndW1lbnRHUFIwKSkpLAogICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTU2MzksNyArNTY0Nyw3
IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9hZEltbTE2SW5kZXgoaW50IGFtb3UKICAgICAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgbG9hZE9wY29kZSwgT3JpZ2luKCks
IHNsb3RQdHIpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIGFtb3VudCkpLAogICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTU2NjksNyArNTY3Nyw3IEBA
IHZvaWQgdGVzdFN0b3JlQWRkTG9hZDY0SW5kZXgoaW50IGFtb3VudCkKICAgICAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50NjQsIE9yaWdpbigpLCBz
bG90UHRyKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIHNsb3RQdHIp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAt
NTY5OSw3ICs1NzA3LDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkSW1tNjRJbmRleChpbnQ2NF90
IAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJ
bnQ2NCwgT3JpZ2luKCksIHNsb3RQdHIpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENv
bnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFtb3VudCkpLAogICAgICAgICBzbG90UHRyKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTU3
MjMsNyArNTczMSw3IEBAIHZvaWQgdGVzdFN0b3JlU3ViTG9hZChpbnQgYW1vdW50KQogICAgICAg
ICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgICAgICByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCkpKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01NzUwLDcgKzU3NTgsNyBAQCB2b2lkIHRlc3RT
dG9yZUFkZExvYWRJbnRlcmZlcmVuY2UoaW50IGFtCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9y
aWdpbigpLAogICAgICAgICAgICAgbG9hZCwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIGFtb3VudCkpLAogICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTU3NzQsNyArNTc4Miw3
IEBAIHZvaWQgdGVzdFN0b3JlQWRkQW5kTG9hZChpbnQgYW1vdW50LCBpbnQKICAgICAgICAgICAg
ICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYW1vdW50
KSksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgbWFzaykpLAogICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTU3OTksNyArNTgwNyw3IEBAIHZvaWQgdGVz
dFN0b3JlTmVnTG9hZDMyKGludDMyX3QgdmFsdWUpCiAgICAgICAgICAgICByb290LT5hcHBlbmRO
ZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwgc2xvdFB0cikpLAog
ICAgICAgICBzbG90UHRyKTsKICAgICAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCAwKSk7CiAKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jKSk7CkBAIC01
ODIzLDcgKzU4MzEsNyBAQCB2b2lkIHRlc3RTdG9yZU5lZ0xvYWRQdHIoaW50cHRyX3QgdmFsdWUp
CiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIHBv
aW50ZXJUeXBlKCksIE9yaWdpbigpLCBzbG90UHRyKSksCiAgICAgICAgIHNsb3RQdHIpOwogICAg
IAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIENIRUNLKCFj
b21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MpKTsKQEAgLTU4MzQsNyArNTg0Miw3IEBAIHZvaWQg
dGVzdEFkZDFVbmNvbW11dGVkKGludCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCkBAIC01ODUyLDcgKzU4NjAsNyBA
QCB2b2lkIHRlc3RMb2FkT2Zmc2V0KCkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwogICAgIGludCBhcnJheVtdID0geyAxLCAyIH07CiAgICAgQ29uc3RQdHJWYWx1ZSog
YXJyYXlQdHIgPSByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IGFycmF5KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9y
aWdpbigpLApAQCAtNTg2OCw3ICs1ODc2LDcgQEAgdm9pZCB0ZXN0TG9hZE9mZnNldE5vdENvbnN0
YW50KCkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIGludCBh
cnJheVtdID0geyAxLCAyIH07CiAgICAgVmFsdWUqIGFycmF5UHRyID0gcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjAp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCks
CkBAIC01ODg0LDcgKzU4OTIsNyBAQCB2b2lkIHRlc3RMb2FkT2Zmc2V0VXNpbmdBZGQoKQogICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgaW50IGFycmF5W10gPSB7
IDEsIDIgfTsKICAgICBDb25zdFB0clZhbHVlKiBhcnJheVB0ciA9IHJvb3QtPmFwcGVuZE5ldzxD
b25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYXJyYXkpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCkBAIC01OTI1LDcgKzU5MzMsNyBA
QCB2b2lkIHRlc3RMb2FkT2Zmc2V0VXNpbmdBZGRJbnRlcmZlcmVuY2UoCiAgICAgICAgIHByb2Ms
IFN0b3JlLCBPcmlnaW4oKSwgdGhlTnVtYmVyT2ZUaGVCZWFzdCwgb3RoZXJBcnJheVB0ciwgMCk7
CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgcHJvYywgU3RvcmUs
IE9yaWdpbigpLCB0aGVOdW1iZXJPZlRoZUJlYXN0LCBvdGhlckFycmF5UHRyLCBzaXplb2YoaW50
KSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4o
KSwgbGVmdCwgcmlnaHQpKTsKQEAgLTU5NDEsNyArNTk0OSw3IEBAIHZvaWQgdGVzdExvYWRPZmZz
ZXRVc2luZ0FkZE5vdENvbnN0YW50KCkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwogICAgIGludCBhcnJheVtdID0geyAxLCAyIH07CiAgICAgVmFsdWUqIGFycmF5UHRy
ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIEFkZCwgT3JpZ2luKCksCkBAIC01OTc3LDcgKzU5ODUsNyBAQCB2b2lkIHRlc3RMb2FkQWRk
clNoaWZ0KHVuc2lnbmVkIHNoaWZ0KQogCiAgICAgKnNsb3QgPSA4Njc1MzA5OwogICAgIAotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgIHByb2MsIExvYWQsIEludDMyLCBP
cmlnaW4oKSwKQEAgLTU5OTMsNyArNjAwMSw3IEBAIHZvaWQgdGVzdEZyYW1lUG9pbnRlcigpCiB7
CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRnJhbWVQb2ludGVyLCBPcmlnaW4oKSkp
OwogCkBAIC02MDE2LDcgKzYwMjQsNyBAQCB2b2lkIHRlc3RPdmVycmlkZUZyYW1lUG9pbnRlcigp
CiAgICAgICAgIFZhbHVlKiBmcCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRnJhbWVQ
b2ludGVyLCBPcmlnaW4oKSk7CiAgICAgICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIGZwLCBvZmZzZXQpOwogCi0gICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQpOwogICAgICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHBy
b2MsIDEpKTsKICAgICB9CiAgICAgewpAQCAtNjAzMiw3ICs2MDQwLDcgQEAgdm9pZCB0ZXN0T3Zl
cnJpZGVGcmFtZVBvaW50ZXIoKQogICAgICAgICBWYWx1ZSogb2Zmc2V0QXJnID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBvZmZzZXQsIGFyZyk7CiAgICAgICAg
IFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2lu
KCksIG9mZnNldEFyZywgb2Zmc2V0RlApOwogCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwog
ICAgICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIDEsIDIpKTsKICAgICB9
CiB9CkBAIC02MDQxLDcgKzYwNDksNyBAQCB2b2lkIHRlc3RTdGFja1Nsb3QoKQogewogICAgIFBy
b2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8U2xvdEJhc2VWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHByb2MuYWRkU3RhY2tT
bG90KDEpKSk7CiAKQEAgLTYwNTQsNyArNjA2Miw3IEBAIHZvaWQgdGVzdExvYWRGcm9tRnJhbWVQ
b2ludGVyKCkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLApAQCAtNjA4MSw3ICs2MDg5LDcg
QEAgdm9pZCB0ZXN0U3RvcmVMb2FkU3RhY2tTbG90KGludCB2YWx1ZSkKICAgICAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKSksCiAgICAgICAgIHN0YWNrKTsKICAgICAKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1v
cnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50MzIsIE9yaWdpbigpLCBzdGFjaykpOwogCkBAIC02MTE2
LDcgKzYxMjQsNyBAQCB2b2lkIHRlc3RMb2FkKEIzOjpPcGNvZGUgb3Bjb2RlLCBJbnB1dFR5CiAg
ICAgICAgIFByb2NlZHVyZSBwcm9jOwogICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwogICAgICAgICAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5
VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIG9wY29kZSwgdHlwZSwgT3JpZ2luKCksCkBA
IC02MTMwLDcgKzYxMzgsNyBAQCB2b2lkIHRlc3RMb2FkKEIzOjpPcGNvZGUgb3Bjb2RlLCBJbnB1
dFR5CiAgICAgICAgIFByb2NlZHVyZSBwcm9jOwogICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwogICAgICAgICAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8
TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIG9wY29kZSwgdHlwZSwgT3JpZ2lu
KCksCkBAIC02MTQ0LDcgKzYxNTIsNyBAQCB2b2lkIHRlc3RMb2FkKEIzOjpPcGNvZGUgb3Bjb2Rl
LCBJbnB1dFR5CiAgICAgICAgIFByb2NlZHVyZSBwcm9jOwogICAgICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgICAgICAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBl
bmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIG9wY29kZSwgdHlwZSwg
T3JpZ2luKCksCkBAIC02MTU5LDcgKzYxNjcsNyBAQCB2b2lkIHRlc3RMb2FkKEIzOjpPcGNvZGUg
b3Bjb2RlLCBJbnB1dFR5CiAgICAgICAgIFByb2NlZHVyZSBwcm9jOwogICAgICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBvcGNvZGUsIHR5cGUsIE9y
aWdpbigpLApAQCAtNjE3OSw3ICs2MTg3LDcgQEAgdm9pZCB0ZXN0TG9hZChCMzo6T3Bjb2RlIG9w
Y29kZSwgSW5wdXRUeQogICAgICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgb3Bjb2RlLCB0eXBlLCBPcmln
aW4oKSwKQEAgLTYyMTksNyArNjIyNyw3IEBAIHZvaWQgdGVzdFN0b3JlRmxvYXQoZG91YmxlIGlu
cHV0KQogICAgICAgICBWYWx1ZSogZGVzdGluYXRpb25BZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjAp
OwogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmln
aW4oKSwgYXJndW1lbnRBc0Zsb2F0LCBkZXN0aW5hdGlvbkFkZHJlc3MpOwogCi0gICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3Qt
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgICAgIGZs
b2F0IG91dHB1dCA9IDAuOwogICAgICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihw
cm9jLCBpbnB1dCwgJm91dHB1dCkpOwpAQCAtNjI0Myw3ICs2MjUxLDcgQEAgdm9pZCB0ZXN0U3Rv
cmVGbG9hdChkb3VibGUgaW5wdXQpCiAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZh
bHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIGFyZ3VtZW50QXNGbG9hdCwgZGVzdGluYXRpb25B
ZGRyZXNzKTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgMCkpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDApKTsKIAogICAgICAgICBmbG9hdCBvdXRwdXQgPSAwLjsKICAgICAgICAgQ0hFQ0soIWNv
bXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgaW5wdXQsICZvdXRwdXQgLSAxLCAxKSk7CkBAIC02
MjYzLDcgKzYyNzEsNyBAQCB2b2lkIHRlc3RTdG9yZURvdWJsZUNvbnN0YW50QXNGbG9hdChkb3Vi
CiAKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4o
KSwgdmFsdWVBc0Zsb2F0LCBkZXN0aW5hdGlvbkFkZHJlc3MpOwogCi0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGZsb2F0IG91dHB1dCA9IDAuOwog
ICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIGlucHV0LCAmb3V0cHV0KSk7
CkBAIC02Mjg5LDcgKzYyOTcsNyBAQCB2b2lkIHRlc3RTcGlsbEdQKCkKICAgICBmb3IgKFZhbHVl
KiB2YWx1ZSA6IHNvdXJjZXMpCiAgICAgICAgIHRvdGFsID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBBZGQsIE9yaWdpbigpLCB0b3RhbCwgdmFsdWUpOwogCi0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdG90YWwpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB0b3RhbCk7
CiAgICAgY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIDEsIDIpOwogfQogCkBAIC02MzEyLDcgKzYz
MjAsNyBAQCB2b2lkIHRlc3RTcGlsbEZQKCkKICAgICBmb3IgKFZhbHVlKiB2YWx1ZSA6IHNvdXJj
ZXMpCiAgICAgICAgIHRvdGFsID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9y
aWdpbigpLCB0b3RhbCwgdmFsdWUpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdG90YWwpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB0b3RhbCk7CiAgICAgY29tcGlsZUFu
ZFJ1bjxkb3VibGU+KHByb2MsIDEuMSwgMi41KTsKIH0KIApAQCAtNjMyOCw3ICs2MzM2LDcgQEAg
dm9pZCB0ZXN0SW50MzJUb0RvdWJsZVBhcnRpYWxSZWdpc3RlclN0YQogICAgIFZhbHVlKiBjb3Vu
dGVyID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFVwc2lsb25WYWx1ZSogb3JpZ2luYWxUb3RhbCA9
IHJvb3QtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCB0b3RhbCk7CiAg
ICAgVXBzaWxvblZhbHVlKiBvcmlnaW5hbENvdW50ZXIgPSByb290LT5hcHBlbmROZXc8VXBzaWxv
blZhbHVlPihwcm9jLCBPcmlnaW4oKSwgY291bnRlcik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhsb29wKSk7
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBG
cmVxdWVudGVkQmxvY2sobG9vcCkpOwogCiAgICAgLy8gTG9vcC4KICAgICBWYWx1ZSogbG9vcENv
dW50ZXIgPSBsb29wLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFBoaSwgSW50NjQsIE9yaWdpbigp
KTsKQEAgLTYzNDUsMTMgKzYzNTMsMTMgQEAgdm9pZCB0ZXN0SW50MzJUb0RvdWJsZVBhcnRpYWxS
ZWdpc3RlclN0YQogICAgIFZhbHVlKiBkZWNDb3VudGVyID0gbG9vcC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBTdWIsIE9yaWdpbigpLCBsb29wQ291bnRlciwgbG9vcC0+YXBwZW5kTmV3PENvbnN0
NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKICAgICBVcHNpbG9uVmFsdWUqIGRlY0NvdW50
ZXJVcHNpbG9uID0gbG9vcC0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCks
IGRlY0NvdW50ZXIpOwogICAgIGRlY0NvdW50ZXJVcHNpbG9uLT5zZXRQaGkobG9vcENvdW50ZXIp
OwotICAgIGxvb3AtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGxvb3AtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAg
ZGVjQ291bnRlciwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKGxvb3ApLCBGcmVxdWVudGVkQmxv
Y2soZG9uZSkpOwogCiAgICAgLy8gVGFpbC4KLSAgICBkb25lLT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB1cGRhdGVkVG90YWwpOworICAgIGRvbmUtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB1cGRhdGVkVG90YWwp
OwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCAxMDAw
MDApLCA1MDAwMDUwMDAwLikpOwogfQogCkBAIC02MzcxLDcgKzYzNzksNyBAQCB2b2lkIHRlc3RJ
bnQzMlRvRG91YmxlUGFydGlhbFJlZ2lzdGVyV2l0CiAgICAgVmFsdWUqIGZvclBhZGRpbmdJbnB1
dEFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
ICZmb3JQYWRkaW5nSW5wdXQpOwogICAgIHVpbnQ2NF90IGZvclBhZGRpbmdPdXRwdXQ7CiAgICAg
VmFsdWUqIGZvclBhZGRpbmdPdXRwdXRBZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRy
VmFsdWU+KHByb2MsIE9yaWdpbigpLCAmZm9yUGFkZGluZ091dHB1dCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9j
ayhsb29wKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9y
aWdpbigpLCBGcmVxdWVudGVkQmxvY2sobG9vcCkpOwogCiAgICAgLy8gTG9vcC4KICAgICBWYWx1
ZSogbG9vcENvdW50ZXIgPSBsb29wLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFBoaSwgSW50NjQs
IE9yaWdpbigpKTsKQEAgLTY0MDUsMTMgKzY0MTMsMTMgQEAgdm9pZCB0ZXN0SW50MzJUb0RvdWJs
ZVBhcnRpYWxSZWdpc3RlcldpdAogICAgIFZhbHVlKiBkZWNDb3VudGVyID0gbG9vcC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBsb29wQ291bnRlciwgbG9vcC0+YXBwZW5k
TmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKICAgICBVcHNpbG9uVmFsdWUq
IGRlY0NvdW50ZXJVcHNpbG9uID0gbG9vcC0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywg
T3JpZ2luKCksIGRlY0NvdW50ZXIpOwogICAgIGRlY0NvdW50ZXJVcHNpbG9uLT5zZXRQaGkobG9v
cENvdW50ZXIpOwotICAgIGxvb3AtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGxvb3At
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwK
ICAgICAgICAgZGVjQ291bnRlciwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKGxvb3ApLCBGcmVx
dWVudGVkQmxvY2soZG9uZSkpOwogCiAgICAgLy8gVGFpbC4KLSAgICBkb25lLT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB1cGRhdGVkVG90YWwpOworICAg
IGRvbmUtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB1cGRh
dGVkVG90YWwpOwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihw
cm9jLCAxMDAwMDApLCA1MDAwMDUwMDAwLikpOwogfQogCkBAIC02NDIyLDE4ICs2NDMwLDE4IEBA
IHZvaWQgdGVzdEJyYW5jaCgpCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJs
b2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAg
ICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhl
bkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VDYXNl
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2Fz
ZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNjQ0
OSwxNiArNjQ1NywxNiBAQCB2b2lkIHRlc3RCcmFuY2hQdHIoKQogICAgIEJhc2ljQmxvY2sqIHRo
ZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJv
Yy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0
aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNh
c2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VD
YXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC02
NDc1LDcgKzY0ODMsNyBAQCB2b2lkIHRlc3REaWFtb25kKCkKICAgICBCYXNpY0Jsb2NrKiBlbHNl
Q2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBkb25lID0gcHJvYy5hZGRC
bG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgVHJ1bmMs
IE9yaWdpbigpLApAQCAtNjQ4NCwxNiArNjQ5MiwxNiBAQCB2b2lkIHRlc3REaWFtb25kKCkKIAog
ICAgIFVwc2lsb25WYWx1ZSogdGhlblJlc3VsdCA9IHRoZW5DYXNlLT5hcHBlbmROZXc8VXBzaWxv
blZhbHVlPigKICAgICAgICAgcHJvYywgT3JpZ2luKCksIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29u
c3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRvbmUp
KTsKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdp
bigpLCBGcmVxdWVudGVkQmxvY2soZG9uZSkpOwogCiAgICAgVXBzaWxvblZhbHVlKiBlbHNlUmVz
dWx0ID0gZWxzZUNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KAogICAgICAgICBwcm9jLCBP
cmlnaW4oKSwgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCAwKSk7Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAs
IE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZG9uZSkpOworICAgIGVsc2VDYXNlLT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhkb25l
KSk7CiAKICAgICBWYWx1ZSogcGhpID0gZG9uZS0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBQaGks
IEludDMyLCBPcmlnaW4oKSk7CiAgICAgdGhlblJlc3VsdC0+c2V0UGhpKHBoaSk7CiAgICAgZWxz
ZVJlc3VsdC0+c2V0UGhpKHBoaSk7Ci0gICAgZG9uZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGhpKTsKKyAgICBkb25lLT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGhpKTsKIAogICAgIGF1dG8gY29kZSA9IGNv
bXBpbGUocHJvYyk7CiAgICAgQ0hFQ0soaW52b2tlPGludD4oKmNvZGUsIDQyKSA9PSAxKTsKQEAg
LTY1MDcsNyArNjUxNSw3IEBAIHZvaWQgdGVzdEJyYW5jaE5vdEVxdWFsKCkKICAgICBCYXNpY0Js
b2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2Fz
ZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNo
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIE5vdEVxdWFsLCBPcmlnaW4oKSwKQEAgLTY1MTcsMTEgKzY1MjUsMTEgQEAgdm9pZCB0
ZXN0QnJhbmNoTm90RXF1YWwoKQogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5D
YXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2Ut
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTY1Mzcs
NyArNjU0NSw3IEBAIHZvaWQgdGVzdEJyYW5jaE5vdEVxdWFsQ29tbXV0ZSgpCiAgICAgQmFzaWNC
bG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNh
c2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5j
aCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBOb3RFcXVhbCwgT3JpZ2luKCksCkBAIC02NTQ3LDExICs2NTU1LDExIEBAIHZvaWQg
dGVzdEJyYW5jaE5vdEVxdWFsQ29tbXV0ZSgpCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApKSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9j
ayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC02NTY3LDcgKzY1NzUsNyBAQCB2b2lkIHRl
c3RCcmFuY2hOb3RFcXVhbE5vdEVxdWFsKCkKICAgICBCYXNpY0Jsb2NrKiB0aGVuQ2FzZSA9IHBy
b2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2so
KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIE5vdEVxdWFsLCBP
cmlnaW4oKSwKQEAgLTY1ODAsMTEgKzY1ODgsMTEgQEAgdm9pZCB0ZXN0QnJhbmNoTm90RXF1YWxO
b3RFcXVhbCgpCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgMCkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVx
dWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNjYwMCw3ICs2NjA4LDcg
QEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWwoKQogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJv
Yy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygp
OwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgRXF1YWwsIE9yaWdp
bigpLApAQCAtNjYxMCwxMSArNjYxOCwxMSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbCgpCiAgICAg
ICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkp
LAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxz
ZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0
aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDApKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIDEpKTsKIApAQCAtNjYzMCw3ICs2NjM4LDcgQEAgdm9pZCB0ZXN0QnJh
bmNoRXF1YWxFcXVhbCgpCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2Nr
KCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBFcXVhbCwgT3JpZ2luKCksCkBAIC02
NjQzLDExICs2NjUxLDExIEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsRXF1YWwoKQogICAgICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKSwKICAg
ICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNl
KSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNh
c2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
ZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAwKSk7CiAKQEAgLTY2NjMsNyArNjY3MSw3IEBAIHZvaWQgdGVzdEJyYW5jaEVx
dWFsQ29tbXV0ZSgpCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7
CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBFcXVhbCwgT3JpZ2luKCksCkBAIC02Njcz
LDExICs2NjgxLDExIEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsQ29tbXV0ZSgpCiAgICAgICAgICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApKSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2Fz
ZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCi0gICAgZWxzZUNhc2UtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCkBAIC02NjkzLDcg
KzY3MDEsNyBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbEVxdWFsMSgpCiAgICAgQmFzaWNCbG9jayog
dGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBw
cm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBFcXVhbCwgT3JpZ2luKCksCkBAIC02NzA2LDExICs2NzE0LDExIEBAIHZvaWQgdGVzdEJyYW5j
aEVxdWFsRXF1YWwxKCkKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAxKSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSks
IEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCkBAIC02NzI4LDcgKzY3
MzYsNyBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVkQXJncyhkb3ViCiAKICAgICBW
YWx1ZSogYXJndW1lbnRBID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiBhcmd1bWVudEIg
PSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUklu
Zm86OmFyZ3VtZW50RlBSMSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgRXF1YWxPclVub3JkZXJlZCwgT3JpZ2luKCksCkBAIC02NzM2LDExICs2NzQ0LDExIEBAIHZv
aWQgdGVzdEJyYW5jaEVxdWFsT3JVbm9yZGVyZWRBcmdzKGRvdWIKICAgICAgICAgICAgIGFyZ3Vt
ZW50QiksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9j
ayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgNDIpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xMykpOwogCkBAIC02NzYwLDcgKzY3NjgsNyBAQCB2b2lk
IHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVkQXJncyhmbG9hCiAgICAgVmFsdWUqIGFyZ3VtZW50
QiA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgRmxvYXQsIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSkpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAog
ICAgICAgICAgICAgcHJvYywgRXF1YWxPclVub3JkZXJlZCwgT3JpZ2luKCksCkBAIC02NzY4LDEx
ICs2Nzc2LDExIEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsT3JVbm9yZGVyZWRBcmdzKGZsb2EKICAg
ICAgICAgICAgIGFyZ3VtZW50QiksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSks
IEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xMykpOwogCkBAIC02Nzk3LDE2
ICs2ODA1LDE2IEBAIHZvaWQgdGVzdEJyYW5jaE5vdEVxdWFsQW5kT3JkZXJlZEFyZ3MoZG8KICAg
ICAgICAgcHJvYywgRXF1YWwsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29u
c3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCksCiAgICAgICAgIGVxdWFsT3JVbm9yZGVyZWQp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAg
bm90RXF1YWxBbmRPcmRlcmVkLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBG
cmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMTMpKTsKIApAQCAtNjgzMywxNiAr
Njg0MSwxNiBAQCB2b2lkIHRlc3RCcmFuY2hOb3RFcXVhbEFuZE9yZGVyZWRBcmdzKGZsCiAgICAg
ICAgIHByb2MsIEVxdWFsLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApLAogICAgICAgICBlcXVhbE9yVW5vcmRlcmVkKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIG5v
dEVxdWFsQW5kT3JkZXJlZCwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJl
cXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTEzKSk7CiAKQEAgLTY4NTksNyArNjg2
Nyw3IEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsT3JVbm9yZGVyZWREb3VibGVBcmcKIAogICAgIFZh
bHVlKiBhcmd1bWVudEEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50QiA9
IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgRXF1YWxPclVub3JkZXJlZCwg
T3JpZ2luKCksCkBAIC02ODY3LDExICs2ODc1LDExIEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsT3JV
bm9yZGVyZWREb3VibGVBcmcKICAgICAgICAgICAgIGFyZ3VtZW50QiksCiAgICAgICAgIEZyZXF1
ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAg
dGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpKTsK
IAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IC0xMykpOwogCkBAIC02ODkwLDcgKzY4OTgsNyBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5v
cmRlcmVkRmxvYXRBcmdJCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgVmFsdWUqIGFy
Z3VtZW50QiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigp
LCBiKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEVxdWFsT3JV
bm9yZGVyZWQsIE9yaWdpbigpLApAQCAtNjg5OCwxMSArNjkwNiwxMSBAQCB2b2lkIHRlc3RCcmFu
Y2hFcXVhbE9yVW5vcmRlcmVkRmxvYXRBcmdJCiAgICAgICAgICAgICBhcmd1bWVudEIpLAogICAg
ICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2Up
KTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2Fz
ZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDQyKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
ZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAtMTMpKTsKIApAQCAtNjkxOSw3ICs2OTI3LDcgQEAgdm9pZCB0ZXN0QnJhbmNo
RXF1YWxPclVub3JkZXJlZERvdWJsZUltbQogCiAgICAgVmFsdWUqIGFyZ3VtZW50QSA9IHJvb3Qt
PmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFs
dWUqIGFyZ3VtZW50QiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgYik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgRXF1
YWxPclVub3JkZXJlZCwgT3JpZ2luKCksCkBAIC02OTI3LDExICs2OTM1LDExIEBAIHZvaWQgdGVz
dEJyYW5jaEVxdWFsT3JVbm9yZGVyZWREb3VibGVJbW0KICAgICAgICAgICAgIGFyZ3VtZW50Qiks
CiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNl
Q2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRo
ZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgNDIpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIC0xMykpOwogCkBAIC02OTQ5LDcgKzY5NTcsNyBAQCB2b2lkIHRlc3RC
cmFuY2hFcXVhbE9yVW5vcmRlcmVkRmxvYXRJbW1zCiAgICAgVmFsdWUqIGFyZ3VtZW50QSA9IHJv
b3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBW
YWx1ZSogYXJndW1lbnRCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIGIpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
RXF1YWxPclVub3JkZXJlZCwgT3JpZ2luKCksCkBAIC02OTU3LDExICs2OTY1LDExIEBAIHZvaWQg
dGVzdEJyYW5jaEVxdWFsT3JVbm9yZGVyZWRGbG9hdEltbXMKICAgICAgICAgICAgIGFyZ3VtZW50
QiksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhl
bHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgNDIpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIC0xMykpOwogCkBAIC02OTgzLDcgKzY5OTEsNyBAQCB2b2lkIHRl
c3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVkRmxvYXRXaXRoCiAgICAgVmFsdWUqIGFyZ3VtZW50MUFz
RG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmln
aW4oKSwgYXJndW1lbnQxKTsKICAgICBWYWx1ZSogYXJndW1lbnQyQXNEb3VibGUgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBhcmd1bWVudDIp
OwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgRXF1YWxPclVub3Jk
ZXJlZCwgT3JpZ2luKCksCkBAIC02OTkxLDExICs2OTk5LDExIEBAIHZvaWQgdGVzdEJyYW5jaEVx
dWFsT3JVbm9yZGVyZWRGbG9hdFdpdGgKICAgICAgICAgICAgIGFyZ3VtZW50MkFzRG91YmxlKSwK
ICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VD
YXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhl
bkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCA0MikpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgLTEzKSk7CiAKQEAgLTcwMTAsMTYgKzcwMTgsMTYgQEAgdm9pZCB0ZXN0
QnJhbmNoRm9sZChpbnQgdmFsdWUpCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFk
ZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSksCiAgICAg
ICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkp
OwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNl
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgMSkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVs
c2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgMCkpOwogCkBAIC03MDM0LDIzICs3MDQyLDIzIEBAIHZvaWQgdGVzdERpYW1vbmRG
b2xkKGludCB2YWx1ZSkKICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2so
KTsKICAgICBCYXNpY0Jsb2NrKiBkb25lID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpLAogICAgICAgICBGcmVxdWVu
dGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAogICAgIFVw
c2lsb25WYWx1ZSogdGhlblJlc3VsdCA9IHRoZW5DYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVl
PigKICAgICAgICAgcHJvYywgT3JpZ2luKCksIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRvbmUpKTsKKyAg
ICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBG
cmVxdWVudGVkQmxvY2soZG9uZSkpOwogCiAgICAgVXBzaWxvblZhbHVlKiBlbHNlUmVzdWx0ID0g
ZWxzZUNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KAogICAgICAgICBwcm9jLCBPcmlnaW4o
KSwgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7
Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdp
bigpLCBGcmVxdWVudGVkQmxvY2soZG9uZSkpOworICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhkb25lKSk7CiAK
ICAgICBWYWx1ZSogcGhpID0gZG9uZS0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBQaGksIEludDMy
LCBPcmlnaW4oKSk7CiAgICAgdGhlblJlc3VsdC0+c2V0UGhpKHBoaSk7CiAgICAgZWxzZVJlc3Vs
dC0+c2V0UGhpKHBoaSk7Ci0gICAgZG9uZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcGhpKTsKKyAgICBkb25lLT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGhpKTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48
aW50Pihwcm9jKSA9PSAhIXZhbHVlKTsKIH0KQEAgLTcwNjIsNyArNzA3MCw3IEBAIHZvaWQgdGVz
dEJyYW5jaE5vdEVxdWFsRm9sZFB0cihpbnRwdHJfdCAKICAgICBCYXNpY0Jsb2NrKiB0aGVuQ2Fz
ZSA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRk
QmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIE5vdEVx
dWFsLCBPcmlnaW4oKSwKQEAgLTcwNzAsMTEgKzcwNzgsMTEgQEAgdm9pZCB0ZXN0QnJhbmNoTm90
RXF1YWxGb2xkUHRyKGludHB0cl90IAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0
UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0
aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNh
c2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VD
YXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC03
MDg4LDcgKzcwOTYsNyBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbEZvbGRQdHIoaW50cHRyX3QgdmFs
CiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNC
bG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
CiAgICAgICAgICAgICBwcm9jLCBFcXVhbCwgT3JpZ2luKCksCkBAIC03MDk2LDExICs3MTA0LDEx
IEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsRm9sZFB0cihpbnRwdHJfdCB2YWwKICAgICAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpLAogICAg
ICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2Up
KTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2Fz
ZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBl
bHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDApKTsKIApAQCAtNzExNCwxOCArNzEyMiwxOCBAQCB2b2lkIHRlc3RCcmFuY2hM
b2FkUHRyKCkKICAgICBCYXNpY0Jsb2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAg
ICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgIHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9y
aWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAgRnJlcXVlbnRl
ZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVu
Q2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhl
bkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKLSAg
ICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7
CiAKQEAgLTcxNDQsMTggKzcxNTIsMTggQEAgdm9pZCB0ZXN0QnJhbmNoTG9hZDMyKCkKICAgICBC
YXNpY0Jsb2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBl
bHNlQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
QnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1
ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC03MTc0LDE4ICs3MTgyLDE4
IEBAIHZvaWQgdGVzdEJyYW5jaExvYWQ4UygpCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBw
cm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2Nr
KCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2Fk
OFMsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAgRnJl
cXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAg
ICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7
CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2Ut
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCAwKSk7CiAKQEAgLTcyMDQsMTggKzcyMTIsMTggQEAgdm9pZCB0ZXN0QnJhbmNoTG9hZDhaKCkK
ICAgICBCYXNpY0Jsb2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Js
b2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZh
bHVlPigKICAgICAgICAgICAgIHByb2MsIExvYWQ4WiwgT3JpZ2luKCksCiAgICAgICAgICAgICBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVx
dWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNzIzNCwxOCArNzI0Miwx
OCBAQCB2b2lkIHRlc3RCcmFuY2hMb2FkMTZTKCkKICAgICBCYXNpY0Jsb2NrKiB0aGVuQ2FzZSA9
IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxv
Y2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgIHByb2MsIExv
YWQxNlMsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAg
RnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAK
LSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAx
KSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNh
c2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAwKSk7CiAKQEAgLTcyNjQsMTggKzcyNzIsMTggQEAgdm9pZCB0ZXN0QnJhbmNoTG9hZDE2
WigpCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFz
aWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1v
cnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkMTZaLCBPcmlnaW4oKSwKICAgICAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BS
SW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSks
IEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC03Mjk1LDcgKzcz
MDMsNyBAQCB2b2lkIHRlc3RCcmFuY2g4V2l0aExvYWQ4WkluZGV4KCkKICAgICBCYXNpY0Jsb2Nr
KiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKIAogICAgIGludCBsb2dTY2FsZSA9IDE7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWJvdmUsIE9yaWdpbigpLApA
QCAtNzMxMSwxMSArNzMxOSwxMSBAQCB2b2lkIHRlc3RCcmFuY2g4V2l0aExvYWQ4WkluZGV4KCkK
ICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCAyNTApKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJs
b2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMy
VmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTczNTcsNyArNzM2NSw3IEBAIHZvaWQg
dGVzdENvbXBsZXgodW5zaWduZWQgbnVtVmFycywgdW5zaWcKICAgICAgICAgICAgIEJhc2ljQmxv
Y2sqIGVsc2VCbG9jayA9IHByb2MuYWRkQmxvY2soKTsKICAgICAgICAgICAgIEJhc2ljQmxvY2sq
IGNvbnRpbnVhdGlvbiA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgICAgICAgICAgY3VycmVudC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgICAgICBjdXJyZW50LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwgdmFy
c1twcmVkaWNhdGVWYXJJbmRleF0sCiAgICAgICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRo
ZW5CbG9jayksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQmxvY2spKTsKIApAQCAtNzM2NiwxNCArNzM3
NCwxNCBAQCB2b2lkIHRlc3RDb21wbGV4KHVuc2lnbmVkIG51bVZhcnMsIHVuc2lnCiAgICAgICAg
ICAgICAgICAgdGhlbkJsb2NrLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCks
IHZhcnNbdGhlbkluY1ZhckluZGV4XSwgb25lKSk7CiAgICAgICAgICAgICBVcHNpbG9uVmFsdWUq
IHRoZW5FbHNlUmVzdWx0ID0gdGhlbkJsb2NrLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPigKICAg
ICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgdmFyc1tlbHNlSW5jVmFySW5kZXhdKTsKLSAg
ICAgICAgICAgIHRoZW5CbG9jay0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwg
T3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhjb250aW51YXRpb24pKTsKKyAgICAgICAgICAgIHRo
ZW5CbG9jay0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVx
dWVudGVkQmxvY2soY29udGludWF0aW9uKSk7CiAKICAgICAgICAgICAgIFVwc2lsb25WYWx1ZSog
ZWxzZUVsc2VSZXN1bHQgPSBlbHNlQmxvY2stPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KAogICAg
ICAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLAogICAgICAgICAgICAgICAgIGVsc2VCbG9jay0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCB2YXJzW2Vsc2VJbmNWYXJJbmRl
eF0sIG9uZSkpOwogICAgICAgICAgICAgVXBzaWxvblZhbHVlKiBlbHNlVGhlblJlc3VsdCA9IGVs
c2VCbG9jay0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywg
T3JpZ2luKCksIHZhcnNbdGhlbkluY1ZhckluZGV4XSk7Ci0gICAgICAgICAgICBlbHNlQmxvY2st
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVk
QmxvY2soY29udGludWF0aW9uKSk7CisgICAgICAgICAgICBlbHNlQmxvY2stPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGNvbnRpbnVh
dGlvbikpOwogCiAgICAgICAgICAgICBWYWx1ZSogdGhlblBoaSA9IGNvbnRpbnVhdGlvbi0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBQaGksIEludDMyLCBPcmlnaW4oKSk7CiAgICAgICAgICAgICB0
aGVuVGhlblJlc3VsdC0+c2V0UGhpKHRoZW5QaGkpOwpAQCAtNzM5OCw3ICs3NDA2LDcgQEAgdm9p
ZCB0ZXN0Q29tcGxleCh1bnNpZ25lZCBudW1WYXJzLCB1bnNpZwogICAgICAgICAgICAgCiAgICAg
ICAgICAgICBWYWx1ZSogc3RhcnRJbmRleCA9IHZhcnNbKChpID4+IDEpICsgMSkgJSBudW1WYXJz
XTsKICAgICAgICAgICAgIFZhbHVlKiBzdGFydFN1bSA9IGN1cnJlbnQtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKTsKLSAgICAgICAgICAgIGN1cnJlbnQtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICAgICAgY3VycmVudC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksIHN0YXJ0SW5k
ZXgsCiAgICAgICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKGxvb3BFbnRyeSksIEZyZXF1ZW50
ZWRCbG9jayhsb29wU2tpcCkpOwogCkBAIC03NDA2LDcgKzc0MTQsNyBAQCB2b2lkIHRlc3RDb21w
bGV4KHVuc2lnbmVkIG51bVZhcnMsIHVuc2lnCiAgICAgICAgICAgICAgICAgcHJvYywgT3JpZ2lu
KCksIHN0YXJ0SW5kZXgpOwogICAgICAgICAgICAgVXBzaWxvblZhbHVlKiBzdGFydFN1bUZvckJv
ZHkgPSBsb29wRW50cnktPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KAogICAgICAgICAgICAgICAg
IHByb2MsIE9yaWdpbigpLCBzdGFydFN1bSk7Ci0gICAgICAgICAgICBsb29wRW50cnktPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2so
bG9vcEJvZHkpKTsKKyAgICAgICAgICAgIGxvb3BFbnRyeS0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sobG9vcEJvZHkpKTsKIAogICAg
ICAgICAgICAgVmFsdWUqIGJvZHlJbmRleCA9IGxvb3BCb2R5LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIFBoaSwgSW50MzIsIE9yaWdpbigpKTsKICAgICAgICAgICAgIHN0YXJ0SW5kZXhGb3JCb2R5
LT5zZXRQaGkoYm9keUluZGV4KTsKQEAgLTc0MzEsMTkgKzc0MzksMTkgQEAgdm9pZCB0ZXN0Q29t
cGxleCh1bnNpZ25lZCBudW1WYXJzLCB1bnNpZwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbG9vcEJvZHktPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLCBudW1WYXJzIC0gMSkp
KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb29wQm9keS0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDIpKSkpKTsKLSAgICAgICAgICAgIGxvb3BCb2R5LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgICAgIGxvb3BCb2R5LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwgbmV3
Qm9keUluZGV4LAogICAgICAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhsb29wUmVlbnRyeSks
IEZyZXF1ZW50ZWRCbG9jayhsb29wRXhpdCkpOwogCiAgICAgICAgICAgICBsb29wUmVlbnRyeS0+
YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIG5ld0JvZHlJbmRleCwgYm9k
eUluZGV4KTsKICAgICAgICAgICAgIGxvb3BSZWVudHJ5LT5hcHBlbmROZXc8VXBzaWxvblZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgbmV3Qm9keVN1bSwgYm9keVN1bSk7Ci0gICAgICAgICAgICBsb29w
UmVlbnRyeS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZy
ZXF1ZW50ZWRCbG9jayhsb29wQm9keSkpOworICAgICAgICAgICAgbG9vcFJlZW50cnktPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGxv
b3BCb2R5KSk7CiAKICAgICAgICAgICAgIFVwc2lsb25WYWx1ZSogZXhpdFN1bSA9IGxvb3BFeGl0
LT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgbmV3Qm9keVN1bSk7Ci0g
ICAgICAgICAgICBsb29wRXhpdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwg
T3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhjb250aW51YXRpb24pKTsKKyAgICAgICAgICAgIGxv
b3BFeGl0LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1
ZW50ZWRCbG9jayhjb250aW51YXRpb24pKTsKIAogICAgICAgICAgICAgVXBzaWxvblZhbHVlKiBz
a2lwU3VtID0gbG9vcFNraXAtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBzdGFydFN1bSk7Ci0gICAgICAgICAgICBsb29wU2tpcC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhjb250aW51YXRpb24pKTsK
KyAgICAgICAgICAgIGxvb3BTa2lwLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwg
T3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhjb250aW51YXRpb24pKTsKIAogICAgICAgICAgICAg
VmFsdWUqIGZpbmFsU3VtID0gY29udGludWF0aW9uLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFBo
aSwgSW50MzIsIE9yaWdpbigpKTsKICAgICAgICAgICAgIGV4aXRTdW0tPnNldFBoaShmaW5hbFN1
bSk7CkBAIC03NDU0LDcgKzc0NjIsNyBAQCB2b2lkIHRlc3RDb21wbGV4KHVuc2lnbmVkIG51bVZh
cnMsIHVuc2lnCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBjdXJyZW50LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YXJzWzBdKTsKKyAgICBjdXJyZW50
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFyc1swXSk7
CiAKICAgICBjb21waWxlKHByb2MpOwogCkBAIC03NDgwLDcgKzc0ODgsNyBAQCB2b2lkIHRlc3RT
aW1wbGVQYXRjaHBvaW50KCkKICAgICAgICAgICAgIENIRUNLKHBhcmFtc1syXS5pc0dQUigpKTsK
ICAgICAgICAgICAgIGFkZDMyKGppdCwgcGFyYW1zWzFdLmdwcigpLCBwYXJhbXNbMl0uZ3ByKCks
IHBhcmFtc1swXS5ncHIoKSk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50
KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAxLCAyKSA9PSAzKTsKIH0K
QEAgLTc1MTEsNyArNzUxOSw3IEBAIHZvaWQgdGVzdFNpbXBsZVBhdGNocG9pbnRXaXRob3V0T3Vw
dXRDbG8KICAgICAgICAgfSk7CiAKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBhcmcxLCBhcmcyKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1
bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIDEsIDIpID09IDMpOwog
fQpAQCAtNzU2MCw3ICs3NTY4LDcgQEAgdm9pZCB0ZXN0U2ltcGxlUGF0Y2hwb2ludFdpdGhPdXB1
dENsb2JiZQogCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQWRkLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBhcmcxLCBhcmcyKSk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAxLCAyKSA9PSA1OCk7CiB9
CkBAIC03NTkxLDcgKzc1OTksNyBAQCB2b2lkIHRlc3RTaW1wbGVQYXRjaHBvaW50V2l0aG91dE91
cHV0Q2xvCiAgICAgICAgIH0pOwogCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYXJnMSwgYXJnMik7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCAxLjUsIDIuNSkg
PT0gNCk7CiB9CkBAIC03NjMyLDcgKzc2NDAsNyBAQCB2b2lkIHRlc3RTaW1wbGVQYXRjaHBvaW50
V2l0aE91cHV0Q2xvYmJlCiAKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBwYXRjaHBvaW50LAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGFyZzEsIGFyZzIpKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIDEuNSwg
Mi41KSA9PSA1OS42KTsKIH0KQEAgLTc2NTcsNyArNzY2NSw3IEBAIHZvaWQgdGVzdFBhdGNocG9p
bnRXaXRoRWFybHlDbG9iYmVyKCkKICAgICAgICAgICAgICAgICBhZGQzMihqaXQsIHBhcmFtc1sx
XS5ncHIoKSwgcGFyYW1zWzJdLmdwcigpLCBwYXJhbXNbMF0uZ3ByKCkpOwogICAgICAgICAgICAg
fSk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKIAogICAgICAgICBDSEVD
Syhjb21waWxlQW5kUnVuPGludD4ocHJvYywgMSwgMikgPT0gMyk7CiAgICAgfTsKQEAgLTc2OTAs
NyArNzY5OCw3IEBAIHZvaWQgdGVzdFBhdGNocG9pbnRDYWxsQXJnKCkKICAgICAgICAgICAgICAg
ICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIHBhcmFt
c1syXS5vZmZzZXRGcm9tRlAoKSksCiAgICAgICAgICAgICAgICAgcGFyYW1zWzBdLmdwcigpKTsK
ICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOwogCiAgICAgQ0hFQ0soY29t
cGlsZUFuZFJ1bjxpbnQ+KHByb2MsIDEsIDIpID09IDMpOwogfQpAQCAtNzcxMyw3ICs3NzIxLDcg
QEAgdm9pZCB0ZXN0UGF0Y2hwb2ludEZpeGVkUmVnaXN0ZXIoKQogICAgICAgICAgICAgQ0hFQ0so
cGFyYW1zWzJdID09IFZhbHVlUmVwKEdQUkluZm86OnJlZ1QxKSk7CiAgICAgICAgICAgICBhZGQz
MihqaXQsIEdQUkluZm86OnJlZ1QwLCBHUFJJbmZvOjpyZWdUMSwgcGFyYW1zWzBdLmdwcigpKTsK
ICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOwogCiAgICAgQ0hFQ0soY29t
cGlsZUFuZFJ1bjxpbnQ+KHByb2MsIDEsIDIpID09IDMpOwogfQpAQCAtNzczNyw3ICs3NzQ1LDcg
QEAgdm9pZCB0ZXN0UGF0Y2hwb2ludEFueShWYWx1ZVJlcCByZXApCiAgICAgICAgICAgICBDSEVD
SyhwYXJhbXNbMl0uaXNHUFIoKSk7CiAgICAgICAgICAgICBhZGQzMihqaXQsIHBhcmFtc1sxXS5n
cHIoKSwgcGFyYW1zWzJdLmdwcigpLCBwYXJhbXNbMF0uZ3ByKCkpOwogICAgICAgICB9KTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBw
YXRjaHBvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4o
cHJvYywgMSwgMikgPT0gMyk7CiB9CkBAIC03NzczLDcgKzc3ODEsNyBAQCB2b2lkIHRlc3RQYXRj
aHBvaW50R1BTY3JhdGNoKCkKICAgICAgICAgICAgIENIRUNLKCFwYXJhbXMudW5hdmFpbGFibGVS
ZWdpc3RlcnMoKS5nZXQocGFyYW1zLmdwU2NyYXRjaCgxKSkpOwogICAgICAgICAgICAgYWRkMzIo
aml0LCBwYXJhbXNbMV0uZ3ByKCksIHBhcmFtc1syXS5ncHIoKSwgcGFyYW1zWzBdLmdwcigpKTsK
ICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOwogCiAgICAgQ0hFQ0soY29t
cGlsZUFuZFJ1bjxpbnQ+KHByb2MsIDEsIDIpID09IDMpOwogfQpAQCAtNzgwMyw3ICs3ODExLDcg
QEAgdm9pZCB0ZXN0UGF0Y2hwb2ludEZQU2NyYXRjaCgpCiAgICAgICAgICAgICBDSEVDSyghcGFy
YW1zLnVuYXZhaWxhYmxlUmVnaXN0ZXJzKCkuZ2V0KHBhcmFtcy5mcFNjcmF0Y2goMSkpKTsKICAg
ICAgICAgICAgIGFkZDMyKGppdCwgcGFyYW1zWzFdLmdwcigpLCBwYXJhbXNbMl0uZ3ByKCksIHBh
cmFtc1swXS5ncHIoKSk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsK
IAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAxLCAyKSA9PSAzKTsKIH0KQEAg
LTc4NDUsNyArNzg1Myw3IEBAIHZvaWQgdGVzdFBhdGNocG9pbnRMb3RzT2ZMYXRlQW55cygpCiAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9KTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcGF0Y2hwb2ludCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYykgPT0g
KHRoaW5ncy5zaXplKCkgKiAodGhpbmdzLnNpemUoKSAtIDEpKSAvIDIpOwogfQpAQCAtNzg3Myw3
ICs3ODgxLDcgQEAgdm9pZCB0ZXN0UGF0Y2hwb2ludEFueUltbShWYWx1ZVJlcCByZXApCiAgICAg
ICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoc3RhdGljX2Nhc3Q8aW50MzJf
dD4ocGFyYW1zWzJdLnZhbHVlKCkpKSwKICAgICAgICAgICAgICAgICBwYXJhbXNbMV0uZ3ByKCks
IHBhcmFtc1swXS5ncHIoKSk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50
KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAxKSA9PSA0Myk7CiB9CkBA
IC03ODk5LDcgKzc5MDcsNyBAQCB2b2lkIHRlc3RQYXRjaHBvaW50TWFueUltbXMoKQogICAgICAg
ICAgICAgQ0hFQ0socGFyYW1zWzJdID09IFZhbHVlUmVwOjpjb25zdGFudCg0MzAwMDAwMDAwMDAw
MGxsKSk7CiAgICAgICAgICAgICBDSEVDSyhwYXJhbXNbM10gPT0gVmFsdWVSZXA6OmNvbnN0YW50
KGJpdHdpc2VfY2FzdDxpbnQ2NF90Pig0Mi41KSkpOwogICAgICAgICB9KTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTc5MjUsNyArNzkzMyw3
IEBAIHZvaWQgdGVzdFBhdGNocG9pbnRXaXRoUmVnaXN0ZXJSZXN1bHQoKQogICAgICAgICAgICAg
Q0hFQ0socGFyYW1zWzJdLmlzR1BSKCkpOwogICAgICAgICAgICAgYWRkMzIoaml0LCBwYXJhbXNb
MV0uZ3ByKCksIHBhcmFtc1syXS5ncHIoKSwgR1BSSW5mbzo6bm9uQXJnR1BSMCk7CiAgICAgICAg
IH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHBhdGNocG9pbnQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRS
dW48aW50Pihwcm9jLCAxLCAyKSA9PSAzKTsKIH0KQEAgLTc5NTEsNyArNzk1OSw3IEBAIHZvaWQg
dGVzdFBhdGNocG9pbnRXaXRoU3RhY2tBcmd1bWVudFJlc3UKICAgICAgICAgICAgIGppdC5hZGQz
MihwYXJhbXNbMV0uZ3ByKCksIHBhcmFtc1syXS5ncHIoKSwgaml0LnNjcmF0Y2hSZWdpc3Rlcigp
KTsKICAgICAgICAgICAgIGppdC5zdG9yZTMyKGppdC5zY3JhdGNoUmVnaXN0ZXIoKSwgQ0NhbGxI
ZWxwZXJzOjpBZGRyZXNzKENDYWxsSGVscGVyczo6c3RhY2tQb2ludGVyUmVnaXN0ZXIsIDApKTsK
ICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOwogCiAgICAgQ0hFQ0soY29t
cGlsZUFuZFJ1bjxpbnQ+KHByb2MsIDEsIDIpID09IDMpOwogfQpAQCAtNzk4MCw3ICs3OTg4LDcg
QEAgdm9pZCB0ZXN0UGF0Y2hwb2ludFdpdGhBbnlSZXN1bHQoKQogICAgICAgICAgICAgaml0LmNv
bnZlcnRJbnQzMlRvRG91YmxlKEdQUkluZm86OnJlZ1QwLCBGUFJJbmZvOjpmcFJlZ1QwKTsKICAg
ICAgICAgICAgIGppdC5zdG9yZURvdWJsZShGUFJJbmZvOjpmcFJlZ1QwLCBDQ2FsbEhlbHBlcnM6
OkFkZHJlc3MoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIHBhcmFtc1swXS5vZmZzZXRGcm9t
RlAoKSkpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CiAKICAgICBD
SEVDSyhjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgMSwgMikgPT0gMyk7CiB9CkBAIC04MDAy
LDcgKzgwMTAsNyBAQCB2b2lkIHRlc3RTaW1wbGVDaGVjaygpCiAgICAgICAgICAgICBqaXQuZW1p
dEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgYXV0byBjb2Rl
ID0gY29tcGlsZShwcm9jKTsKQEAgLTgwMjEsNyArODAyOSw3IEBAIHZvaWQgdGVzdENoZWNrRmFs
c2UoKQogICAgICAgICBbJl0gKENDYWxsSGVscGVycyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlv
blBhcmFtcyYpIHsKICAgICAgICAgICAgIENIRUNLKCEiVGhpcyBzaG91bGQgbm90IGhhdmUgZXhl
Y3V0ZWQiKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
MCkpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKQEAgLTgwNDcsNyArODA1NSw3
IEBAIHZvaWQgdGVzdENoZWNrVHJ1ZSgpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBp
bG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShw
cm9jKTsKQEAgLTgwNzgsNyArODA4Niw3IEBAIHZvaWQgdGVzdENoZWNrTGVzc1RoYW4oKQogICAg
ICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0
KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsK
IAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CkBAIC04MTI0LDcgKzgxMzIsNyBAQCB2
b2lkIHRlc3RDaGVja01lZ2FDb21ibygpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBp
bG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShw
cm9jKTsKQEAgLTgxNzksNyArODE4Nyw3IEBAIHZvaWQgdGVzdENoZWNrVHJpY2t5TWVnYUNvbWJv
KCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAg
aml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCAwKSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwpAQCAtODI0Myw3ICs4MjUx
LDcgQEAgdm9pZCB0ZXN0Q2hlY2tUd29NZWdhQ29tYm9zKCkKICAgICAgICAgICAgIGppdC5lbWl0
RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBhdXRvIGNvZGUg
PSBjb21waWxlKHByb2MpOwpAQCAtODI5Myw3ICs4MzAxLDcgQEAgdm9pZCB0ZXN0Q2hlY2tUd29O
b25SZWR1bmRhbnRNZWdhQ29tYm9zKAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFs
dWU+KHByb2MsIExvYWQ4UywgT3JpZ2luKCksIHB0ciksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwogCi0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLCBicmFuY2hQcmVkaWNhdGUsCiAgICAgICAgIEZy
ZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogICAg
IApAQCAtODMwOSw3ICs4MzE3LDcgQEAgdm9pZCB0ZXN0Q2hlY2tUd29Ob25SZWR1bmRhbnRNZWdh
Q29tYm9zKAogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAg
ICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIDQzKSk7CiAKICAgICBDaGVja1ZhbHVlKiBjaGVjazIgPSBlbHNl
Q2FzZS0+YXBwZW5kTmV3PENoZWNrVmFsdWU+KHByb2MsIENoZWNrLCBPcmlnaW4oKSwgY2hlY2tQ
cmVkaWNhdGUpOwpAQCAtODMyNCw3ICs4MzMyLDcgQEAgdm9pZCB0ZXN0Q2hlY2tUd29Ob25SZWR1
bmRhbnRNZWdhQ29tYm9zKAogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7
CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIGVsc2VDYXNlLT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBlbHNlQ2FzZS0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQ1KSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21w
aWxlKHByb2MpOwpAQCAtODM3OCw3ICs4Mzg2LDcgQEAgdm9pZCB0ZXN0Q2hlY2tBZGRJbW0oKQog
ICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQu
cmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmln
aW4oKSwgY2hlY2tBZGQpKTsKIApAQCAtODQxNCw3ICs4NDIyLDcgQEAgdm9pZCB0ZXN0Q2hlY2tB
ZGRJbW1Db21tdXRlKCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwog
ICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgSVRvRCwgT3JpZ2luKCksIGNoZWNrQWRkKSk7CiAKQEAgLTg0NDksNyArODQ1Nyw3IEBA
IHZvaWQgdGVzdENoZWNrQWRkSW1tU29tZVJlZ2lzdGVyKCkKICAgICAgICAgICAgIGppdC5lbWl0
RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGNoZWNrQWRkKSk7CiAK
QEAgLTg0ODYsNyArODQ5NCw3IEBAIHZvaWQgdGVzdENoZWNrQWRkKCkKICAgICAgICAgICAgIGpp
dC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAg
ICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGNoZWNrQWRk
KSk7CiAKQEAgLTg1MTksNyArODUyNyw3IEBAIHZvaWQgdGVzdENoZWNrQWRkNjQoKQogICAgICAg
ICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7
CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwg
Y2hlY2tBZGQpKTsKIApAQCAtODU0Miw3ICs4NTUwLDcgQEAgdm9pZCB0ZXN0Q2hlY2tBZGRGb2xk
KGludCBhLCBpbnQgYikKICAgICAgICAgWyZdIChDQ2FsbEhlbHBlcnMmLCBjb25zdCBTdGFja21h
cEdlbmVyYXRpb25QYXJhbXMmKSB7CiAgICAgICAgICAgICBDSEVDSyghIlNob3VsZCBoYXZlIGJl
ZW4gZm9sZGVkIik7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrQWRkKTsKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tBZGQpOwogCiAgICAg
YXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAtODU2Myw3ICs4NTcxLDcgQEAgdm9pZCB0
ZXN0Q2hlY2tBZGRGb2xkRmFpbChpbnQgYSwgaW50IGIpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1
bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
Y2hlY2tBZGQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBjaGVja0FkZCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwog
CkBAIC04NjAyLDcgKzg2MTAsNyBAQCB2b2lkIHRlc3RDaGVja0FkZEFyZ3VtZW50QWxpYXNpbmc2
NCgpCiAgICAgQ2hlY2tWYWx1ZSogY2hlY2tBZGQzID0gcm9vdC0+YXBwZW5kTmV3PENoZWNrVmFs
dWU+KHByb2MsIENoZWNrQWRkLCBPcmlnaW4oKSwgY2hlY2tBZGQxLCBjaGVja0FkZDIpOwogICAg
IGNoZWNrQWRkMy0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFN0
YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsgaml0Lm9vcHMoKTsgfSk7CiAKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja0FkZDMp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBjaGVja0FkZDMpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAx
LCAyLCAzKSA9PSA4KTsKIH0KQEAgLTg2NDUsNyArODY1Myw3IEBAIHZvaWQgdGVzdENoZWNrQWRk
QXJndW1lbnRBbGlhc2luZzMyKCkKICAgICBDaGVja1ZhbHVlKiBjaGVja0FkZDMgPSByb290LT5h
cHBlbmROZXc8Q2hlY2tWYWx1ZT4ocHJvYywgQ2hlY2tBZGQsIE9yaWdpbigpLCBjaGVja0FkZDEs
IGNoZWNrQWRkMik7CiAgICAgY2hlY2tBZGQzLT5zZXRHZW5lcmF0b3IoWyZdIChDQ2FsbEhlbHBl
cnMmIGppdCwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeyBqaXQub29wcygpOyB9
KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIGNoZWNrQWRkMyk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIGNoZWNrQWRkMyk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVu
PGludDMyX3Q+KHByb2MsIDEsIDIsIDMpID09IDgpOwogfQpAQCAtODY3MCw3ICs4Njc4LDcgQEAg
dm9pZCB0ZXN0Q2hlY2tBZGRTZWxmT3ZlcmZsb3c2NCgpCiAgICAgb3BhcXVlVXNlLT5hcHBlbmQo
Q29uc3RyYWluZWRWYWx1ZShhcmcsIFZhbHVlUmVwOjpTb21lUmVnaXN0ZXIpKTsKICAgICBvcGFx
dWVVc2UtPnNldEdlbmVyYXRvcihbJl0gKENDYWxsSGVscGVycyYsIGNvbnN0IFN0YWNrbWFwR2Vu
ZXJhdGlvblBhcmFtcyYpIHsgfSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja0FkZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrQWRkKTsKIAogICAgIGF1
dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKQEAgLTg3MDEsNyArODcwOSw3IEBAIHZvaWQgdGVz
dENoZWNrQWRkU2VsZk92ZXJmbG93MzIoKQogICAgIG9wYXF1ZVVzZS0+YXBwZW5kKENvbnN0cmFp
bmVkVmFsdWUoYXJnLCBWYWx1ZVJlcDo6U29tZVJlZ2lzdGVyKSk7CiAgICAgb3BhcXVlVXNlLT5z
ZXRHZW5lcmF0b3IoWyZdIChDQ2FsbEhlbHBlcnMmLCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25Q
YXJhbXMmKSB7IH0pOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tBZGQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja0FkZCk7CiAKICAgICBhdXRvIGNvZGUg
PSBjb21waWxlKHByb2MpOwogCkBAIC04NzM0LDcgKzg3NDIsNyBAQCB2b2lkIHRlc3RDaGVja1N1
YkltbSgpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAg
ICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElU
b0QsIE9yaWdpbigpLCBjaGVja1N1YikpOwogCkBAIC04Nzc2LDcgKzg3ODQsNyBAQCB2b2lkIHRl
c3RDaGVja1N1YkJhZEltbSgpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUo
KTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVja1N1YikpOwogCkBAIC04ODEzLDcgKzg4MjEs
NyBAQCB2b2lkIHRlc3RDaGVja1N1YigpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBp
bG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVja1N1YikpOwogCkBAIC04ODUxLDcg
Kzg4NTksNyBAQCB2b2lkIHRlc3RDaGVja1N1YjY0KCkKICAgICAgICAgICAgIGppdC5lbWl0RnVu
Y3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGNoZWNrU3ViKSk7CiAKQEAg
LTg4NzQsNyArODg4Miw3IEBAIHZvaWQgdGVzdENoZWNrU3ViRm9sZChpbnQgYSwgaW50IGIpCiAg
ICAgICAgIFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1z
JikgewogICAgICAgICAgICAgQ0hFQ0soISJTaG91bGQgaGF2ZSBiZWVuIGZvbGRlZCIpOwogICAg
ICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBjaGVja1N1Yik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrU3ViKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBp
bGUocHJvYyk7CiAKQEAgLTg4OTUsNyArODkwMyw3IEBAIHZvaWQgdGVzdENoZWNrU3ViRm9sZEZh
aWwoaW50IGEsIGludCBiKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7
CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrU3ViKTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tT
dWIpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAtODkyMiw3ICs4OTMw
LDcgQEAgdm9pZCB0ZXN0Q2hlY2tOZWcoKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVw
aWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tOZWcpKTsKIApAQCAtODk1Miw3
ICs4OTYwLDcgQEAgdm9pZCB0ZXN0Q2hlY2tOZWc2NCgpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1
bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVja05lZykpOwogCkBA
IC04OTg5LDcgKzg5OTcsNyBAQCB2b2lkIHRlc3RDaGVja011bCgpCiAgICAgICAgICAgICBqaXQu
ZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAg
fSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVja011bCkp
OwogCkBAIC05MDMwLDcgKzkwMzgsNyBAQCB2b2lkIHRlc3RDaGVja011bE1lbW9yeSgpCiAgICAg
ICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQo
KTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigp
LCBjaGVja011bCkpOwogCkBAIC05MDc3LDcgKzkwODUsNyBAQCB2b2lkIHRlc3RDaGVja011bDIo
KQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBq
aXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBP
cmlnaW4oKSwgY2hlY2tNdWwpKTsKIApAQCAtOTExMCw3ICs5MTE4LDcgQEAgdm9pZCB0ZXN0Q2hl
Y2tNdWw2NCgpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAg
ICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IElUb0QsIE9yaWdpbigpLCBjaGVja011bCkpOwogCkBAIC05MTMzLDcgKzkxNDEsNyBAQCB2b2lk
IHRlc3RDaGVja011bEZvbGQoaW50IGEsIGludCBiKQogICAgICAgICBbJl0gKENDYWxsSGVscGVy
cyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsKICAgICAgICAgICAgIENIRUNL
KCEiU2hvdWxkIGhhdmUgYmVlbiBmb2xkZWQiKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tNdWwpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBj
aGVja011bCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC05MTU0LDcg
KzkxNjIsNyBAQCB2b2lkIHRlc3RDaGVja011bEZvbGRGYWlsKGludCBhLCBpbnQgYikKICAgICAg
ICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgp
OwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCBjaGVja011bCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrTXVsKTsKIAogICAgIGF1dG8gY29kZSA9
IGNvbXBpbGUocHJvYyk7CiAKQEAgLTkxOTMsNyArOTIwMSw3IEBAIHZvaWQgdGVzdENoZWNrTXVs
QXJndW1lbnRBbGlhc2luZzY0KCkKICAgICBDaGVja1ZhbHVlKiBjaGVja011bDMgPSByb290LT5h
cHBlbmROZXc8Q2hlY2tWYWx1ZT4ocHJvYywgQ2hlY2tNdWwsIE9yaWdpbigpLCBjaGVja011bDEs
IGNoZWNrTXVsMik7CiAgICAgY2hlY2tNdWwzLT5zZXRHZW5lcmF0b3IoWyZdIChDQ2FsbEhlbHBl
cnMmIGppdCwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeyBqaXQub29wcygpOyB9
KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIGNoZWNrTXVsMyk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIGNoZWNrTXVsMyk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVu
PGludDY0X3Q+KHByb2MsIDIsIDMsIDQpID09IDcyKTsKIH0KQEAgLTkyMzYsNyArOTI0NCw3IEBA
IHZvaWQgdGVzdENoZWNrTXVsQXJndW1lbnRBbGlhc2luZzMyKCkKICAgICBDaGVja1ZhbHVlKiBj
aGVja011bDMgPSByb290LT5hcHBlbmROZXc8Q2hlY2tWYWx1ZT4ocHJvYywgQ2hlY2tNdWwsIE9y
aWdpbigpLCBjaGVja011bDEsIGNoZWNrTXVsMik7CiAgICAgY2hlY2tNdWwzLT5zZXRHZW5lcmF0
b3IoWyZdIChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1z
JikgeyBqaXQub29wcygpOyB9KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrTXVsMyk7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrTXVsMyk7CiAKICAgICBD
SEVDSyhjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIDIsIDMsIDQpID09IDcyKTsKIH0KQEAg
LTkyNjgsNyArOTI3Niw3IEBAIHZvaWQgdGVzdENoZWNrTXVsNjRTU2hyKCkKICAgICAgICAgICAg
IGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAg
ICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGNoZWNr
TXVsKSk7CiAKQEAgLTkyOTQsNyArOTMwMiw3IEBAIHZvaWQgZ2VuZXJpY1Rlc3RDb21wYXJlKAog
ICAgICAgICBWYWx1ZSogcmlnaHRWYWx1ZSA9IHJpZ2h0RnVuY3Rvcihyb290LCBwcm9jKTsKICAg
ICAgICAgVmFsdWUqIGNvbXBhcmlzb25SZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIG9wY29kZSwgT3JpZ2luKCksIGxlZnRWYWx1ZSwgcmlnaHRWYWx1ZSk7CiAgICAgICAgIAot
ICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJv
YywgTm90RXF1YWwsIE9yaWdpbigpLApAQCAtOTMxNCw3ICs5MzIyLDcgQEAgdm9pZCBnZW5lcmlj
VGVzdENvbXBhcmUoCiAgICAgICAgIFZhbHVlKiBsZWZ0VmFsdWUgPSBsZWZ0RnVuY3Rvcihyb290
LCBwcm9jKTsKICAgICAgICAgVmFsdWUqIHJpZ2h0VmFsdWUgPSByaWdodEZ1bmN0b3Iocm9vdCwg
cHJvYyk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIEJyYW5jaCwg
T3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIG9wY29k
ZSwgT3JpZ2luKCksIGxlZnRWYWx1ZSwgcmlnaHRWYWx1ZSksCiAgICAgICAgICAgICBGcmVxdWVu
dGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKQEAgLTkzMjgs
OSArOTMzNiw5IEBAIHZvaWQgZ2VuZXJpY1Rlc3RDb21wYXJlKAogICAgICAgICAgICAgICAgIENI
RUNLKHBhcmFtc1swXS5pc0dQUigpKTsKICAgICAgICAgICAgICAgICBqaXQubW92ZShDQ2FsbEhl
bHBlcnM6OlRydXN0ZWRJbW0zMigxKSwgcGFyYW1zWzBdLmdwcigpKTsKICAgICAgICAgICAgIH0p
OwotICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CisgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CiAKLSAgICAgICAg
ZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICBlbHNlQ2FzZS0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgMCkpOwogCkBAIC05NTY5LDcgKzk1NzcsNyBAQCB2b2lkIHRlc3RFcXVhbERvdWJsZShk
b3VibGUgbGVmdCwgZG91YmxlCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBFcXVhbCwgT3JpZ2luKCksCkBAIC05NTg4LDcgKzk1OTYsNyBAQCB2b2lkIHRl
c3RDYWxsU2ltcGxlKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENDYWxsVmFs
dWU+KAogICAgICAgICAgICAgcHJvYywgSW50MzIsIE9yaWdpbigpLApAQCAtOTYwNiwxNiArOTYx
NCwxNiBAQCB2b2lkIHRlc3RDYWxsUmFyZShpbnQgYSwgaW50IGIpCiAgICAgQmFzaWNCbG9jayog
Y29tbW9uID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIHJhcmUgPSBwcm9jLmFk
ZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHJhcmUs
IEZyZXF1ZW5jeUNsYXNzOjpSYXJlKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKGNvbW1vbikp
OwogCi0gICAgY29tbW9uLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBjb21tb24tPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY29t
bW9uLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogICAgIAot
ICAgIHJhcmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJhcmUtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcmFy
ZS0+YXBwZW5kTmV3PENDYWxsVmFsdWU+KAogICAgICAgICAgICAgcHJvYywgSW50MzIsIE9yaWdp
bigpLApAQCAtOTYzMywxNiArOTY0MSwxNiBAQCB2b2lkIHRlc3RDYWxsUmFyZUxpdmUoaW50IGEs
IGludCBiLCBpbnQgCiAgICAgQmFzaWNCbG9jayogY29tbW9uID0gcHJvYy5hZGRCbG9jaygpOwog
ICAgIEJhc2ljQmxvY2sqIHJhcmUgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwK
ICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHJhcmUsIEZyZXF1ZW5jeUNsYXNzOjpSYXJlKSwKICAg
ICAgICAgRnJlcXVlbnRlZEJsb2NrKGNvbW1vbikpOwogCi0gICAgY29tbW9uLT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICBjb21tb24tPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY29tbW9uLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgMCkpOwogICAgIAotICAgIHJhcmUtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJhcmUtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcmFyZS0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCkBAIC05NjYyLDcgKzk2NzAsNyBAQCB2b2lkIHRl
c3RDYWxsU2ltcGxlUHVyZShpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDQ2Fs
bFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEludDMyLCBPcmlnaW4oKSwgRWZmZWN0czo6bm9u
ZSgpLApAQCAtOTY5Miw3ICs5NzAwLDcgQEAgdm9pZCB0ZXN0Q2FsbEZ1bmN0aW9uV2l0aEhlbGxh
QXJndW1lbnRzKAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIGJpdHdpc2VfY2FzdDx2b2lkKj4oZnVuY3Rpb25XaXRoSGVsbGFBcmd1bWVudHMp
KSk7CiAgICAgY2FsbC0+Y2hpbGRyZW4oKS5hcHBlbmRWZWN0b3IoYXJncyk7CiAgICAgCi0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2Fs
bCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIGNhbGwpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MpID09IGZ1bmN0
aW9uV2l0aEhlbGxhQXJndW1lbnRzKDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwg
MTIsIDEzLCAxNCwgMTUsIDE2LCAxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjQsIDI1LCAy
NikpOwogfQpAQCAtOTcwMSw3ICs5NzA5LDcgQEAgdm9pZCB0ZXN0UmV0dXJuRG91YmxlKGRvdWJs
ZSB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9y
aWdpbigpLCB2YWx1ZSkpOwogCkBAIC05NzEyLDcgKzk3MjAsNyBAQCB2b2lkIHRlc3RSZXR1cm5G
bG9hdChmbG9hdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIHZhbHVlKSk7CiAKQEAgLTk3MjgsNyArOTczNiw3IEBAIHZvaWQgdGVz
dENhbGxTaW1wbGVEb3VibGUoZG91YmxlIGEsIGRvdWIKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEND
YWxsVmFsdWU+KAogICAgICAgICAgICAgcHJvYywgRG91YmxlLCBPcmlnaW4oKSwKQEAgLTk3NTQs
NyArOTc2Miw3IEBAIHZvaWQgdGVzdENhbGxTaW1wbGVGbG9hdChmbG9hdCBhLCBmbG9hdCAKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjEpKTsKICAgICBWYWx1ZSogZmxvYXRWYWx1ZTEgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQxaW50
MzIpOwogICAgIFZhbHVlKiBmbG9hdFZhbHVlMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDJpbnQzMik7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
Q0NhbGxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBGbG9hdCwgT3JpZ2luKCksCkBAIC05Nzg0
LDcgKzk3OTIsNyBAQCB2b2lkIHRlc3RDYWxsRnVuY3Rpb25XaXRoSGVsbGFEb3VibGVBcmd1CiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYml0
d2lzZV9jYXN0PHZvaWQqPihmdW5jdGlvbldpdGhIZWxsYURvdWJsZUFyZ3VtZW50cykpKTsKICAg
ICBjYWxsLT5jaGlsZHJlbigpLmFwcGVuZFZlY3RvcihhcmdzKTsKICAgICAKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYWxsKTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2Fs
bCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYykgPT0gZnVuY3Rpb25X
aXRoSGVsbGFEb3VibGVBcmd1bWVudHMoMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDEx
LCAxMiwgMTMsIDE0LCAxNSwgMTYsIDE3LCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyNCwgMjUs
IDI2KSk7CiB9CkBAIC05ODA4LDcgKzk4MTYsNyBAQCB2b2lkIHRlc3RDYWxsRnVuY3Rpb25XaXRo
SGVsbGFGbG9hdEFyZ3VtCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgYml0d2lzZV9jYXN0PHZvaWQqPihmdW5jdGlvbldpdGhIZWxsYUZsb2F0
QXJndW1lbnRzKSkpOwogICAgIGNhbGwtPmNoaWxkcmVuKCkuYXBwZW5kVmVjdG9yKGFyZ3MpOwog
ICAgIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIGNhbGwpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBjYWxsKTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHBy
b2MpID09IGZ1bmN0aW9uV2l0aEhlbGxhRmxvYXRBcmd1bWVudHMoMSwgMiwgMywgNCwgNSwgNiwg
NywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDE3LCAxOCwgMTksIDIwLCAyMSwg
MjIsIDIzLCAyNCwgMjUsIDI2KSk7CiB9CkBAIC05ODIwLDcgKzk4MjgsNyBAQCB2b2lkIHRlc3RD
aGlsbERpdihpbnQgbnVtLCBpbnQgZGVuLCBpbnQgCiAgICAgICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgICAgICAKLSAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2Ms
IENoaWxsRGl2LCBPcmlnaW4oKSwKQEAgLTk4MzksNyArOTg0Nyw3IEBAIHZvaWQgdGVzdENoaWxs
RGl2KGludCBudW0sIGludCBkZW4sIGludCAKICAgICAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAg
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgICAgIAotICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgQ2hp
bGxEaXYsIE9yaWdpbigpLApAQCAtOTg1NSw3ICs5ODYzLDcgQEAgdm9pZCB0ZXN0Q2hpbGxEaXZU
d2ljZShpbnQgbnVtMSwgaW50IGRlbgogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAtOTg4OSw3ICs5ODk3LDcgQEAgdm9pZCB0
ZXN0Q2hpbGxEaXY2NChpbnQ2NF90IG51bSwgaW50NjRfdAogICAgICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICAgICAg
Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgICAgICBw
cm9jLCBDaGlsbERpdiwgT3JpZ2luKCksCkBAIC05OTA0LDcgKzk5MTIsNyBAQCB2b2lkIHRlc3RD
aGlsbERpdjY0KGludDY0X3QgbnVtLCBpbnQ2NF90CiAgICAgICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgICAgICAKLSAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2Ms
IENoaWxsRGl2LCBPcmlnaW4oKSwKQEAgLTk5MjUsNyArOTkzMyw3IEBAIHZvaWQgdGVzdE1vZEFy
ZyhpbnQ2NF90IHZhbHVlKQogCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjAp
OwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE1vZCwg
T3JpZ2luKCksIGFyZ3VtZW50LCBhcmd1bWVudCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAg
IENIRUNLKCFjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIHZhbHVlKSk7CiB9CkBAIC05OTQz
LDcgKzk5NTEsNyBAQCB2b2lkIHRlc3RNb2RBcmdzKGludDY0X3QgbnVtZXJhdG9yLCBpbnQ2CiAg
ICAgVmFsdWUqIGFyZ3VtZW50MSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBWYWx1ZSogYXJndW1l
bnQyID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjEpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIGFyZ3VtZW50MSwgYXJndW1lbnQyKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9j
LCBudW1lcmF0b3IsIGRlbm9taW5hdG9yKSA9PSBudW1lcmF0b3IgJSBkZW5vbWluYXRvcik7CiB9
CkBAIC05OTYxLDcgKzk5NjksNyBAQCB2b2lkIHRlc3RNb2RJbW1zKGludDY0X3QgbnVtZXJhdG9y
LCBpbnQ2CiAgICAgVmFsdWUqIGFyZ3VtZW50MSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFs
dWU+KHByb2MsIE9yaWdpbigpLCBudW1lcmF0b3IpOwogICAgIFZhbHVlKiBhcmd1bWVudDIgPSBy
b290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgZGVub21pbmF0b3Ip
OwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE1vZCwg
T3JpZ2luKCksIGFyZ3VtZW50MSwgYXJndW1lbnQyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAg
ICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCBudW1lcmF0b3IsIGRlbm9taW5h
dG9yKSA9PSBudW1lcmF0b3IgJSBkZW5vbWluYXRvcik7CiB9CkBAIC05OTc3LDcgKzk5ODUsNyBA
QCB2b2lkIHRlc3RNb2RBcmczMihpbnQzMl90IHZhbHVlKQogICAgIFZhbHVlKiBhcmd1bWVudCA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIGFyZ3VtZW50LCBhcmd1bWVudCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0KTsKIAogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIHZhbHVl
KSk7CiB9CkBAIC05OTk3LDcgKzEwMDA1LDcgQEAgdm9pZCB0ZXN0TW9kQXJnczMyKGludDMyX3Qg
bnVtZXJhdG9yLCBpbgogICAgIFZhbHVlKiBhcmd1bWVudDIgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKTsKICAg
ICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdp
bigpLCBhcmd1bWVudDEsIGFyZ3VtZW50Mik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENI
RUNLKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgbnVtZXJhdG9yLCBkZW5vbWluYXRvcikg
PT0gbnVtZXJhdG9yICUgZGVub21pbmF0b3IpOwogfQpAQCAtMTAwMTUsNyArMTAwMjMsNyBAQCB2
b2lkIHRlc3RNb2RJbW1zMzIoaW50MzJfdCBudW1lcmF0b3IsIGluCiAgICAgVmFsdWUqIGFyZ3Vt
ZW50MSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBudW1l
cmF0b3IpOwogICAgIFZhbHVlKiBhcmd1bWVudDIgPSByb290LT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgZGVub21pbmF0b3IpOwogICAgIFZhbHVlKiByZXN1bHQgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIGFyZ3VtZW50MSwgYXJn
dW1lbnQyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxp
bnQzMl90Pihwcm9jLCBudW1lcmF0b3IsIGRlbm9taW5hdG9yKSA9PSBudW1lcmF0b3IgJSBkZW5v
bWluYXRvcik7CiB9CkBAIC0xMDAyNyw3ICsxMDAzNSw3IEBAIHZvaWQgdGVzdENoaWxsTW9kQXJn
KGludDY0X3QgdmFsdWUpCiAKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7
CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2hpbGxN
b2QsIE9yaWdpbigpLCBhcmd1bWVudCwgYXJndW1lbnQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAK
ICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCB2YWx1ZSkpOwogfQpAQCAt
MTAwNDAsNyArMTAwNDgsNyBAQCB2b2lkIHRlc3RDaGlsbE1vZEFyZ3MoaW50NjRfdCBudW1lcmF0
b3IsCiAgICAgVmFsdWUqIGFyZ3VtZW50MSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBWYWx1ZSog
YXJndW1lbnQyID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIENoaWxsTW9kLCBPcmlnaW4oKSwgYXJndW1lbnQxLCBhcmd1
bWVudDIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGlu
dDY0X3Q+KHByb2MsIG51bWVyYXRvciwgZGVub21pbmF0b3IpID09IGNoaWxsTW9kKG51bWVyYXRv
ciwgZGVub21pbmF0b3IpKTsKIH0KQEAgLTEwMDUzLDcgKzEwMDYxLDcgQEAgdm9pZCB0ZXN0Q2hp
bGxNb2RJbW1zKGludDY0X3QgbnVtZXJhdG9yLAogICAgIFZhbHVlKiBhcmd1bWVudDEgPSByb290
LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgbnVtZXJhdG9yKTsKICAg
ICBWYWx1ZSogYXJndW1lbnQyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIGRlbm9taW5hdG9yKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBDaGlsbE1vZCwgT3JpZ2luKCksIGFyZ3VtZW50MSwgYXJndW1lbnQy
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90
Pihwcm9jLCBudW1lcmF0b3IsIGRlbm9taW5hdG9yKSA9PSBjaGlsbE1vZChudW1lcmF0b3IsIGRl
bm9taW5hdG9yKSk7CiB9CkBAIC0xMDA2Niw3ICsxMDA3NCw3IEBAIHZvaWQgdGVzdENoaWxsTW9k
QXJnMzIoaW50MzJfdCB2YWx1ZSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjAp
KTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDaGls
bE1vZCwgT3JpZ2luKCksIGFyZ3VtZW50LCBhcmd1bWVudCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsK
IAogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIHZhbHVlKSk7CiB9CkBA
IC0xMDA4MSw3ICsxMDA4OSw3IEBAIHZvaWQgdGVzdENoaWxsTW9kQXJnczMyKGludDMyX3QgbnVt
ZXJhdG8KICAgICBWYWx1ZSogYXJndW1lbnQyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7CiAgICAgVmFsdWUq
IHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2hpbGxNb2QsIE9yaWdpbigp
LCBhcmd1bWVudDEsIGFyZ3VtZW50Mik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNL
KGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgbnVtZXJhdG9yLCBkZW5vbWluYXRvcikgPT0g
Y2hpbGxNb2QobnVtZXJhdG9yLCBkZW5vbWluYXRvcikpOwogfQpAQCAtMTAwOTQsNyArMTAxMDIs
NyBAQCB2b2lkIHRlc3RDaGlsbE1vZEltbXMzMihpbnQzMl90IG51bWVyYXRvCiAgICAgVmFsdWUq
IGFyZ3VtZW50MSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBudW1lcmF0b3IpOwogICAgIFZhbHVlKiBhcmd1bWVudDIgPSByb290LT5hcHBlbmROZXc8Q29u
c3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgZGVub21pbmF0b3IpOwogICAgIFZhbHVlKiByZXN1
bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENoaWxsTW9kLCBPcmlnaW4oKSwgYXJn
dW1lbnQxLCBhcmd1bWVudDIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhjb21w
aWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIG51bWVyYXRvciwgZGVub21pbmF0b3IpID09IGNoaWxs
TW9kKG51bWVyYXRvciwgZGVub21pbmF0b3IpKTsKIH0KQEAgLTEwMTA1LDE4ICsxMDExMywxNyBA
QCB2b2lkIHRlc3RTd2l0Y2godW5zaWduZWQgZGVncmVlLCB1bnNpZ25lCiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKIAogICAgIEJhc2ljQmxvY2sqIHRlcm1pbmF0ZSA9
IHByb2MuYWRkQmxvY2soKTsKLSAgICB0ZXJtaW5hdGUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHRlcm1pbmF0ZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0ZXJtaW5hdGUtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBTd2l0Y2hWYWx1ZSogc3dpdGNoVmFsdWUg
PSByb290LT5hcHBlbmROZXc8U3dpdGNoVmFsdWU+KAotICAgICAgICBwcm9jLCBPcmlnaW4oKSwK
LSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApLAotICAgICAgICBGcmVxdWVudGVkQmxvY2sodGVybWlu
YXRlKSk7CisgICAgICAgIHByb2MsIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOworICAgIHN3
aXRjaFZhbHVlLT5zZXRGYWxsVGhyb3VnaChGcmVxdWVudGVkQmxvY2sodGVybWluYXRlKSk7CiAK
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZGVncmVlOyArK2kpIHsKICAgICAgICAgQmFz
aWNCbG9jayogbmV3QmxvY2sgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgICAgIG5ld0Jsb2NrLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgbmV3QmxvY2stPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAg
ICBuZXdCbG9jay0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KAogICAgICAgICAgICAgICAg
IHByb2MsIE9yaWdpbigpLCAoaSAmIDEpID8gR1BSSW5mbzo6YXJndW1lbnRHUFIyIDogR1BSSW5m
bzo6YXJndW1lbnRHUFIxKSk7CkBAIC0xMDE0NywxOSArMTAxNTQsMTggQEAgdm9pZCB0ZXN0U3dp
dGNoQ2hpbGxEaXYodW5zaWduZWQgZGVncmVlLAogICAgIFZhbHVlKiByaWdodCA9IHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIyKTsKIAogICAgIEJhc2ljQmxvY2sqIHRlcm1pbmF0ZSA9IHByb2MuYWRkQmxvY2soKTsK
LSAgICB0ZXJtaW5hdGUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRlcm1pbmF0ZS0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICB0ZXJtaW5hdGUtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCAwKSk7CiAKICAgICBTd2l0Y2hWYWx1ZSogc3dpdGNoVmFsdWUgPSByb290LT5hcHBlbmROZXc8
U3dpdGNoVmFsdWU+KAotICAgICAgICBwcm9jLCBPcmlnaW4oKSwKLSAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjApLAotICAgICAgICBGcmVxdWVudGVkQmxvY2sodGVybWluYXRlKSk7CisgICAgICAgIHBy
b2MsIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOworICAgIHN3aXRjaFZhbHVlLT5zZXRGYWxs
VGhyb3VnaChGcmVxdWVudGVkQmxvY2sodGVybWluYXRlKSk7CiAKICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgZGVncmVlOyArK2kpIHsKICAgICAgICAgQmFzaWNCbG9jayogbmV3QmxvY2sg
PSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICAgICAgbmV3QmxvY2stPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgICAgICBuZXdCbG9jay0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAgIG5ld0Jsb2NrLT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIENoaWxsRGl2LCBPcmlnaW4oKSwg
KGkgJiAxKSA/IHJpZ2h0IDogbGVmdCwgKGkgJiAxKSA/IGxlZnQgOiByaWdodCkpOwpAQCAtMTAx
NzAsNyArMTAxNzYsMTAgQEAgdm9pZCB0ZXN0U3dpdGNoQ2hpbGxEaXYodW5zaWduZWQgZGVncmVl
LAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgZGVncmVlOyArK2kpIHsKLSAgICAgICAgQ0hFQ0soaW52b2tlPGludDMyX3Q+KCpj
b2RlLCBpICogZ2FwLCA0MiwgMTEpID09ICgoaSAmIDEpID8gMTEvNDIgOiA0Mi8xMSkpOworICAg
ICAgICBkYXRhTG9nKCJpID0gIiwgaSwgIlxuIik7CisgICAgICAgIGludDMyX3QgcmVzdWx0ID0g
aW52b2tlPGludDMyX3Q+KCpjb2RlLCBpICogZ2FwLCA0MiwgMTEpOworICAgICAgICBkYXRhTG9n
KCJyZXN1bHQgPSAiLCByZXN1bHQsICJcbiIpOworICAgICAgICBDSEVDSyhyZXN1bHQgPT0gKChp
ICYgMSkgPyAxMS80MiA6IDQyLzExKSk7CiAgICAgICAgIGlmIChnYXAgPiAxKSB7CiAgICAgICAg
ICAgICBDSEVDSyghaW52b2tlPGludDMyX3Q+KCpjb2RlLCBpICogZ2FwICsgMSwgNDIsIDExKSk7
CiAgICAgICAgICAgICBDSEVDSyghaW52b2tlPGludDMyX3Q+KCpjb2RlLCBpICogZ2FwIC0gMSwg
NDIsIDExKSk7CkBAIC0xMDE4OCwxNyArMTAxOTcsMTYgQEAgdm9pZCB0ZXN0U3dpdGNoVGFyZ2V0
dGluZ1NhbWVCbG9jaygpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
IAogICAgIEJhc2ljQmxvY2sqIHRlcm1pbmF0ZSA9IHByb2MuYWRkQmxvY2soKTsKLSAgICB0ZXJt
aW5hdGUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRlcm1pbmF0ZS0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0
ZXJtaW5hdGUtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA1KSk7CiAK
ICAgICBTd2l0Y2hWYWx1ZSogc3dpdGNoVmFsdWUgPSByb290LT5hcHBlbmROZXc8U3dpdGNoVmFs
dWU+KAotICAgICAgICBwcm9jLCBPcmlnaW4oKSwKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApLAot
ICAgICAgICBGcmVxdWVudGVkQmxvY2sodGVybWluYXRlKSk7CisgICAgICAgIHByb2MsIE9yaWdp
bigpLCByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMCkpOworICAgIHN3aXRjaFZhbHVlLT5zZXRGYWxsVGhyb3VnaChG
cmVxdWVudGVkQmxvY2sodGVybWluYXRlKSk7CiAKICAgICBCYXNpY0Jsb2NrKiBvdGhlclRhcmdl
dCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICBvdGhlclRhcmdldC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgb3RoZXJUYXJnZXQtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgb3RoZXJUYXJnZXQtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwogICAgIHN3aXRjaFZhbHVlLT5hcHBl
bmRDYXNlKFN3aXRjaENhc2UoMywgRnJlcXVlbnRlZEJsb2NrKG90aGVyVGFyZ2V0KSkpOwpAQCAt
MTAyMTgsMTggKzEwMjI2LDE2IEBAIHZvaWQgdGVzdFN3aXRjaFRhcmdldHRpbmdTYW1lQmxvY2tG
b2xkUGEKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogCiAgICAgQmFz
aWNCbG9jayogdGVybWluYXRlID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHRlcm1pbmF0ZS0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGVybWluYXRlLT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRlcm1pbmF0ZS0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7CiAKICAgICBWYWx1
ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgU3dpdGNoVmFsdWUqIHN3aXRjaFZh
bHVlID0gcm9vdC0+YXBwZW5kTmV3PFN3aXRjaFZhbHVlPigKLSAgICAgICAgcHJvYywgT3JpZ2lu
KCksCi0gICAgICAgIGFyZ3VtZW50LAotICAgICAgICBGcmVxdWVudGVkQmxvY2sodGVybWluYXRl
KSk7CisgICAgU3dpdGNoVmFsdWUqIHN3aXRjaFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFN3aXRj
aFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYXJndW1lbnQpOworICAgIHN3aXRjaFZhbHVlLT5zZXRG
YWxsVGhyb3VnaChGcmVxdWVudGVkQmxvY2sodGVybWluYXRlKSk7CiAKICAgICBCYXNpY0Jsb2Nr
KiBvdGhlclRhcmdldCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICBvdGhlclRhcmdldC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgb3RoZXJUYXJnZXQtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgIHN3aXRj
aFZhbHVlLT5hcHBlbmRDYXNlKFN3aXRjaENhc2UoMywgRnJlcXVlbnRlZEJsb2NrKG90aGVyVGFy
Z2V0KSkpOwogICAgIHN3aXRjaFZhbHVlLT5hcHBlbmRDYXNlKFN3aXRjaENhc2UoMTMsIEZyZXF1
ZW50ZWRCbG9jayhvdGhlclRhcmdldCkpKTsKQEAgLTEwMjQ2LDcgKzEwMjUyLDcgQEAgdm9pZCB0
ZXN0VHJ1bmNGb2xkKGludDY0X3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
CiAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCkBAIC0xMDI1OSw3ICsxMDI2NSw3
IEBAIHZvaWQgdGVzdFpFeHQzMihpbnQzMl90IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9j
OwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgWkV4dDMyLCBPcmlnaW4oKSwKQEAgLTEwMjc0LDcg
KzEwMjgwLDcgQEAgdm9pZCB0ZXN0WkV4dDMyRm9sZChpbnQzMl90IHZhbHVlKQogewogICAgIFBy
b2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgWkV4dDMyLCBPcmlnaW4oKSwK
QEAgLTEwMjg3LDcgKzEwMjkzLDcgQEAgdm9pZCB0ZXN0U0V4dDMyKGludDMyX3QgdmFsdWUpCiB7
CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTRXh0MzIsIE9y
aWdpbigpLApAQCAtMTAzMDIsNyArMTAzMDgsNyBAQCB2b2lkIHRlc3RTRXh0MzJGb2xkKGludDMy
X3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBTRXh0MzIsIE9yaWdpbigpLApAQCAtMTAzMTUsNyArMTAzMjEsNyBAQCB2b2lkIHRlc3RUcnVu
Y1pFeHQzMihpbnQzMl90IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLApAQCAtMTAzMzIsNyArMTAzMzgsNyBAQCB2
b2lkIHRlc3RUcnVuY1NFeHQzMihpbnQzMl90IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9j
OwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLApAQCAtMTAzNDksNyAr
MTAzNTUsNyBAQCB2b2lkIHRlc3RTRXh0OChpbnQzMl90IHZhbHVlKQogewogICAgIFByb2NlZHVy
ZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU0V4dDgsIE9yaWdpbigpLApAQCAtMTAz
NjQsNyArMTAzNzAsNyBAQCB2b2lkIHRlc3RTRXh0OEZvbGQoaW50MzJfdCB2YWx1ZSkKIHsKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNFeHQ4LCBPcmlnaW4o
KSwKQEAgLTEwMzc3LDcgKzEwMzgzLDcgQEAgdm9pZCB0ZXN0U0V4dDhTRXh0OChpbnQzMl90IHZh
bHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU0V4
dDgsIE9yaWdpbigpLApAQCAtMTAzOTQsNyArMTA0MDAsNyBAQCB2b2lkIHRlc3RTRXh0OFNFeHQx
NihpbnQzMl90IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgU0V4dDgsIE9yaWdpbigpLApAQCAtMTA0MTEsNyArMTA0MTcsNyBAQCB2b2lkIHRl
c3RTRXh0OEJpdEFuZChpbnQzMl90IHZhbHVlLCBpbnQzCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTRXh0OCwgT3JpZ2luKCksCkBAIC0xMDQyOSw3ICsx
MDQzNSw3IEBAIHZvaWQgdGVzdEJpdEFuZFNFeHQ4KGludDMyX3QgdmFsdWUsIGludDMKIHsKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2lu
KCksCkBAIC0xMDQ0Nyw3ICsxMDQ1Myw3IEBAIHZvaWQgdGVzdFNFeHQxNihpbnQzMl90IHZhbHVl
KQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU0V4dDE2
LCBPcmlnaW4oKSwKQEAgLTEwNDYyLDcgKzEwNDY4LDcgQEAgdm9pZCB0ZXN0U0V4dDE2Rm9sZChp
bnQzMl90IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgU0V4dDE2LCBPcmlnaW4oKSwKQEAgLTEwNDc1LDcgKzEwNDgxLDcgQEAgdm9pZCB0ZXN0
U0V4dDE2U0V4dDE2KGludDMyX3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
CiAgICAgICAgICAgICBwcm9jLCBTRXh0MTYsIE9yaWdpbigpLApAQCAtMTA0OTIsNyArMTA0OTgs
NyBAQCB2b2lkIHRlc3RTRXh0MTZTRXh0OChpbnQzMl90IHZhbHVlKQogewogICAgIFByb2NlZHVy
ZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU0V4dDE2LCBPcmlnaW4oKSwKQEAgLTEw
NTA5LDcgKzEwNTE1LDcgQEAgdm9pZCB0ZXN0U0V4dDE2Qml0QW5kKGludDMyX3QgdmFsdWUsIGlu
dAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU0V4dDE2
LCBPcmlnaW4oKSwKQEAgLTEwNTI3LDcgKzEwNTMzLDcgQEAgdm9pZCB0ZXN0Qml0QW5kU0V4dDE2
KGludDMyX3QgdmFsdWUsIGludAogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTEwNTQ1LDcgKzEwNTUxLDcgQEAgdm9p
ZCB0ZXN0U0V4dDMyQml0QW5kKGludDMyX3QgdmFsdWUsIGludAogewogICAgIFByb2NlZHVyZSBw
cm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU0V4dDMyLCBPcmlnaW4oKSwKQEAgLTEwNTYz
LDcgKzEwNTY5LDcgQEAgdm9pZCB0ZXN0Qml0QW5kU0V4dDMyKGludDMyX3QgdmFsdWUsIGludAog
ewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBP
cmlnaW4oKSwKQEAgLTEwNTgxLDcgKzEwNTg3LDcgQEAgdm9pZCB0ZXN0QmFzaWNTZWxlY3QoKQog
ewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBP
cmlnaW4oKSwKQEAgLTEwNjAzLDcgKzEwNjA5LDcgQEAgdm9pZCB0ZXN0U2VsZWN0VGVzdCgpCiB7
CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9y
aWdpbigpLApAQCAtMTA2MjIsNyArMTA2MjgsNyBAQCB2b2lkIHRlc3RTZWxlY3RDb21wYXJlRG91
YmxlKCkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNl
bGVjdCwgT3JpZ2luKCksCkBAIC0xMDY1Myw3ICsxMDY1OSw3IEBAIHZvaWQgdGVzdFNlbGVjdENv
bXBhcmVGbG9hdChmbG9hdCBhLCBmbG8KICAgICBWYWx1ZSogZmxvYXRWYWx1ZTEgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQxaW50
MzIpOwogICAgIFZhbHVlKiBmbG9hdFZhbHVlMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDJpbnQzMik7CiAKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLApAQCAtMTA2OTEs
NyArMTA2OTcsNyBAQCB2b2lkIHRlc3RTZWxlY3RDb21wYXJlRmxvYXRUb0RvdWJsZShmbG9hCiAg
ICAgVmFsdWUqIGRvdWJsZVZhbHVlMSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxv
YXRUb0RvdWJsZSwgT3JpZ2luKCksIGZsb2F0VmFsdWUxKTsKICAgICBWYWx1ZSogZG91YmxlVmFs
dWUyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4o
KSwgZmxvYXRWYWx1ZTIpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTEwNzE5LDcgKzEwNzI1LDcgQEAgdm9pZCB0ZXN0U2Vs
ZWN0RG91YmxlKCkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0xMDc0MSw3ICsxMDc0Nyw3IEBAIHZvaWQgdGVzdFNl
bGVjdERvdWJsZVRlc3QoKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTEwNzYwLDcgKzEwNzY2LDcgQEAgdm9pZCB0
ZXN0U2VsZWN0RG91YmxlQ29tcGFyZURvdWJsZSgpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLApAQCAtMTA3OTAsNyArMTA3
OTYsNyBAQCB2b2lkIHRlc3RTZWxlY3REb3VibGVDb21wYXJlRmxvYXQoZmxvYXQgCiAgICAgVmFs
dWUqIGZsb2F0VmFsdWUxID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2Fz
dCwgT3JpZ2luKCksIGFyZ3VtZW50MWludDMyKTsKICAgICBWYWx1ZSogZmxvYXRWYWx1ZTIgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1l
bnQyaW50MzIpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2Vs
ZWN0LCBPcmlnaW4oKSwKQEAgLTEwODIxLDcgKzEwODI3LDcgQEAgdm9pZCB0ZXN0U2VsZWN0Rmxv
YXRDb21wYXJlRmxvYXQoZmxvYXQgYQogICAgIFZhbHVlKiBmbG9hdFZhbHVlMyA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDNpbnQz
Mik7CiAgICAgVmFsdWUqIGZsb2F0VmFsdWU0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50NGludDMyKTsKIAotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0xMDg0Nyw3
ICsxMDg1Myw3IEBAIHZvaWQgdGVzdFNlbGVjdERvdWJsZUNvbXBhcmVEb3VibGUoYm9vbCAKICAg
ICAgICAgVmFsdWUqIGFyZzIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMik7CiAgICAgICAgIFZhbHVlKiBhcmcz
ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJ
bmZvOjphcmd1bWVudEZQUjMpOwogCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLApAQCAtMTA4ODMsNyAr
MTA4ODksNyBAQCB2b2lkIHRlc3RTZWxlY3REb3VibGVDb21wYXJlRG91YmxlKGJvb2wgCiAgICAg
ICAgIGtlZXBWYWx1ZXNMaXZlLT5hcHBlbmQoQ29uc3RyYWluZWRWYWx1ZShhcmcyLCBWYWx1ZVJl
cDo6U29tZVJlZ2lzdGVyKSk7CiAgICAgICAgIGtlZXBWYWx1ZXNMaXZlLT5zZXRHZW5lcmF0b3Io
WyZdIChDQ2FsbEhlbHBlcnMmLCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7IH0p
OwogCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogICAgICAgICBhdXRvIGNvZGUgPSBjb21w
aWxlKHByb2MpOwogCiAgICAgICAgIGZvciAoYXV0byYgbGVmdCA6IGZsb2F0aW5nUG9pbnRPcGVy
YW5kczxkb3VibGU+KCkpIHsKQEAgLTEwOTEwLDcgKzEwOTE2LDcgQEAgdm9pZCB0ZXN0U2VsZWN0
RG91YmxlQ29tcGFyZURvdWJsZShib29sIAogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+YXBwZW5k
KENvbnN0cmFpbmVkVmFsdWUoYXJnMywgVmFsdWVSZXA6OlNvbWVSZWdpc3RlcikpOwogICAgICAg
ICBrZWVwVmFsdWVzTGl2ZS0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3Qg
U3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeyB9KTsKIAotICAgICAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgICAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0KTsKICAgICAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIAogICAgICAgICBmb3Ig
KGF1dG8mIGxlZnQgOiBmbG9hdGluZ1BvaW50T3BlcmFuZHM8ZG91YmxlPigpKSB7CkBAIC0xMDkz
OCw3ICsxMDk0NCw3IEBAIHZvaWQgdGVzdFNlbGVjdERvdWJsZUNvbXBhcmVEb3VibGUoYm9vbCAK
ICAgICAgICAga2VlcFZhbHVlc0xpdmUtPmFwcGVuZChDb25zdHJhaW5lZFZhbHVlKGFyZzMsIFZh
bHVlUmVwOjpTb21lUmVnaXN0ZXIpKTsKICAgICAgICAga2VlcFZhbHVlc0xpdmUtPnNldEdlbmVy
YXRvcihbJl0gKENDYWxsSGVscGVycyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYp
IHsgfSk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgICAgIGF1dG8gY29kZSA9
IGNvbXBpbGUocHJvYyk7CiAKICAgICAgICAgZm9yIChhdXRvJiBsZWZ0IDogZmxvYXRpbmdQb2lu
dE9wZXJhbmRzPGRvdWJsZT4oKSkgewpAQCAtMTA5NTUsNyArMTA5NjEsNyBAQCB2b2lkIHRlc3RT
ZWxlY3REb3VibGVDb21wYXJlRG91YmxlKGJvb2wgCiAgICAgICAgIFZhbHVlKiBhcmcxID0gcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjph
cmd1bWVudEZQUjEpOwogICAgICAgICBWYWx1ZSogYXJnMiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIyKTsKIAot
ICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJv
YywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTEwOTkwLDcgKzEwOTk2LDcgQEAgdm9pZCB0ZXN0U2Vs
ZWN0RG91YmxlQ29tcGFyZURvdWJsZShib29sIAogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+YXBw
ZW5kKENvbnN0cmFpbmVkVmFsdWUoYXJnMiwgVmFsdWVSZXA6OlNvbWVSZWdpc3RlcikpOwogICAg
ICAgICBrZWVwVmFsdWVzTGl2ZS0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29u
c3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeyB9KTsKIAotICAgICAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAg
ICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0KTsKICAgICAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIAogICAgICAgICBm
b3IgKGF1dG8mIGxlZnQgOiBmbG9hdGluZ1BvaW50T3BlcmFuZHM8ZG91YmxlPigpKSB7CkBAIC0x
MTAzMyw3ICsxMTAzOSw3IEBAIHZvaWQgdGVzdFNlbGVjdEZsb2F0Q29tcGFyZUZsb2F0KGJvb2wg
KCoKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdp
bigpLAogICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIzKSkpOwogCi0gICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9y
aWdpbigpLApAQCAtMTEwNzcsNyArMTEwODMsNyBAQCB2b2lkIHRlc3RTZWxlY3RGbG9hdENvbXBh
cmVGbG9hdChib29sICgqCiAgICAgICAgIGtlZXBWYWx1ZXNMaXZlLT5hcHBlbmQoQ29uc3RyYWlu
ZWRWYWx1ZShhcmcyLCBWYWx1ZVJlcDo6U29tZVJlZ2lzdGVyKSk7CiAgICAgICAgIGtlZXBWYWx1
ZXNMaXZlLT5zZXRHZW5lcmF0b3IoWyZdIChDQ2FsbEhlbHBlcnMmLCBjb25zdCBTdGFja21hcEdl
bmVyYXRpb25QYXJhbXMmKSB7IH0pOwogCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogICAg
ICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCiAgICAgICAgIGZvciAoYXV0byYgbGVm
dCA6IGZsb2F0aW5nUG9pbnRPcGVyYW5kczxmbG9hdD4oKSkgewpAQCAtMTExMTIsNyArMTExMTgs
NyBAQCB2b2lkIHRlc3RTZWxlY3RGbG9hdENvbXBhcmVGbG9hdChib29sICgqCiAgICAgICAgIGtl
ZXBWYWx1ZXNMaXZlLT5hcHBlbmQoQ29uc3RyYWluZWRWYWx1ZShhcmczLCBWYWx1ZVJlcDo6U29t
ZVJlZ2lzdGVyKSk7CiAgICAgICAgIGtlZXBWYWx1ZXNMaXZlLT5zZXRHZW5lcmF0b3IoWyZdIChD
Q2FsbEhlbHBlcnMmLCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7IH0pOwogCi0g
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdCk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogICAgICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHBy
b2MpOwogCiAgICAgICAgIGZvciAoYXV0byYgbGVmdCA6IGZsb2F0aW5nUG9pbnRPcGVyYW5kczxm
bG9hdD4oKSkgewpAQCAtMTExNDgsNyArMTExNTQsNyBAQCB2b2lkIHRlc3RTZWxlY3RGbG9hdENv
bXBhcmVGbG9hdChib29sICgqCiAgICAgICAgIGtlZXBWYWx1ZXNMaXZlLT5hcHBlbmQoQ29uc3Ry
YWluZWRWYWx1ZShhcmczLCBWYWx1ZVJlcDo6U29tZVJlZ2lzdGVyKSk7CiAgICAgICAgIGtlZXBW
YWx1ZXNMaXZlLT5zZXRHZW5lcmF0b3IoWyZdIChDQ2FsbEhlbHBlcnMmLCBjb25zdCBTdGFja21h
cEdlbmVyYXRpb25QYXJhbXMmKSB7IH0pOwogCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwog
ICAgICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCiAgICAgICAgIGZvciAoYXV0byYg
bGVmdCA6IGZsb2F0aW5nUG9pbnRPcGVyYW5kczxmbG9hdD4oKSkgewpAQCAtMTExNzEsNyArMTEx
NzcsNyBAQCB2b2lkIHRlc3RTZWxlY3RGbG9hdENvbXBhcmVGbG9hdChib29sICgqCiAgICAgICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAg
ICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMikpKTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKQEAg
LTExMjEyLDcgKzExMjE4LDcgQEAgdm9pZCB0ZXN0U2VsZWN0RmxvYXRDb21wYXJlRmxvYXQoYm9v
bCAoKgogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+YXBwZW5kKENvbnN0cmFpbmVkVmFsdWUoYXJn
MiwgVmFsdWVSZXA6OlNvbWVSZWdpc3RlcikpOwogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+c2V0
R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFy
YW1zJikgeyB9KTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICAgICAgYXV0byBj
b2RlID0gY29tcGlsZShwcm9jKTsKIAogICAgICAgICBmb3IgKGF1dG8mIGxlZnQgOiBmbG9hdGlu
Z1BvaW50T3BlcmFuZHM8ZmxvYXQ+KCkpIHsKQEAgLTExMjM5LDcgKzExMjQ1LDcgQEAgdm9pZCB0
ZXN0U2VsZWN0Rm9sZChpbnRwdHJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0xMTI1OSw3ICsxMTI2
NSw3IEBAIHZvaWQgdGVzdFNlbGVjdEludmVydCgpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLApAQCAtMTEzMTIsNyArMTEz
MTgsNyBAQCB2b2lkIHRlc3RDaGVja1NlbGVjdCgpCiAgICAgICAgICAgICBqaXQucmV0KCk7CiAg
ICAgICAgIH0pOwogICAgIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDApKTsKIApAQCAtMTEzODMsNyArMTEzODksNyBAQCB2b2lkIHRlc3RDaGVja1NlbGVjdENo
ZWNrU2VsZWN0KCkKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7CiAgICAgCi0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC0xMTQx
OSw3ICsxMTQyNSw3IEBAIHZvaWQgdGVzdFBvd0RvdWJsZUJ5SW50ZWdlckxvb3AoZG91YmxlIHgK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAgICBhdXRvIHJlc3VsdCA9IHBvd0RvdWJsZUlu
dDMyKHByb2MsIHJvb3QsIE9yaWdpbigpLCB4LCB5KTsKICAgICBCYXNpY0Jsb2NrKiBjb250aW51
YXRpb24gPSByZXN1bHQuZmlyc3Q7Ci0gICAgY29udGludWF0aW9uLT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQuc2Vjb25kKTsKKyAgICBjb250
aW51YXRpb24tPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQuc2Vjb25kKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91
YmxlPihwcm9jLCB4T3BlcmFuZCwgeU9wZXJhbmQpLCBiM1Bvdyh4T3BlcmFuZCwgeU9wZXJhbmQp
KSk7CiB9CkBAIC0xMTQyOSw3ICsxMTQzNSw3IEBAIHZvaWQgdGVzdFRydW5jT3JIaWdoKCkKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdp
bigpLApAQCAtMTE0NDcsNyArMTE0NTMsNyBAQCB2b2lkIHRlc3RUcnVuY09yTG93KCkKICAgICBQ
cm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwog
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigp
LApAQCAtMTE0NjUsNyArMTE0NzEsNyBAQCB2b2lkIHRlc3RCaXRBbmRPckhpZ2goKQogICAgIFBy
b2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigp
LApAQCAtMTE0ODQsNyArMTE0OTAsNyBAQCB2b2lkIHRlc3RCaXRBbmRPckxvdygpCiAgICAgUHJv
Y2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKIAot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCks
CkBAIC0xMTUwNywyMCArMTE1MTMsMjAgQEAgdm9pZCB0ZXN0QnJhbmNoNjRFcXVhbChpbnQ2NF90
IGxlZnQsIGludAogCiAgICAgVmFsdWUqIGFyZzEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFs
dWUqIGFyZzIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBC
cmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEVx
dWFsLCBPcmlnaW4oKSwgYXJnMSwgYXJnMiksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVu
Q2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCiAgICAgYm9vbCB0cnVlUmVzdWx0
ID0gdHJ1ZTsKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhl
bkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBMb2FkOFosIE9yaWdpbigpLAogICAgICAgICAgICAgdGhlbkNhc2UtPmFwcGVu
ZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJnRydWVSZXN1bHQpKSk7CiAKICAg
ICBib29sIGVsc2VSZXN1bHQgPSBmYWxzZTsKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxNZW1v
cnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkOFosIE9yaWdpbigpLApAQCAtMTE1Mzgs
MjAgKzExNTQ0LDIwIEBAIHZvaWQgdGVzdEJyYW5jaDY0RXF1YWxJbW0oaW50NjRfdCBsZWZ0LCAK
IAogICAgIFZhbHVlKiBhcmcxID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFZhbHVlKiBhcmcyID0g
cm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCByaWdodCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEVxdWFsLCBPcmlnaW4oKSwgYXJnMSwgYXJnMiksCiAg
ICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2Fz
ZSkpOwogCiAgICAgYm9vbCB0cnVlUmVzdWx0ID0gdHJ1ZTsKLSAgICB0aGVuQ2FzZS0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVu
ZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkOFosIE9yaWdpbigpLAog
ICAgICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmln
aW4oKSwgJnRydWVSZXN1bHQpKSk7CiAKICAgICBib29sIGVsc2VSZXN1bHQgPSBmYWxzZTsKLSAg
ICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBM
b2FkOFosIE9yaWdpbigpLApAQCAtMTE1NzEsMjAgKzExNTc3LDIwIEBAIHZvaWQgdGVzdEJyYW5j
aDY0RXF1YWxNZW0oaW50NjRfdCBsZWZ0LCAKICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5
cGUoKSwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgVmFsdWUqIGFy
ZzIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gs
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEVxdWFsLCBP
cmlnaW4oKSwgYXJnMSwgYXJnMiksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSks
IEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCiAgICAgYm9vbCB0cnVlUmVzdWx0ID0gdHJ1
ZTsKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2Ut
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBw
cm9jLCBMb2FkOFosIE9yaWdpbigpLAogICAgICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxD
b25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJnRydWVSZXN1bHQpKSk7CiAKICAgICBib29s
IGVsc2VSZXN1bHQgPSBmYWxzZTsKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxNZW1vcnlWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkOFosIE9yaWdpbigpLApAQCAtMTE2MDQsMjAgKzEx
NjEwLDIwIEBAIHZvaWQgdGVzdEJyYW5jaDY0RXF1YWxNZW1JbW0oaW50NjRfdCBsZWYKICAgICAg
ICAgcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwKSk7CiAgICAgVmFsdWUqIGFyZzIgPSByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIHJpZ2h0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJy
YW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRXF1
YWwsIE9yaWdpbigpLCBhcmcxLCBhcmcyKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5D
YXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKICAgICBib29sIHRydWVSZXN1bHQg
PSB0cnVlOwotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVu
Q2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIExvYWQ4WiwgT3JpZ2luKCksCiAgICAgICAgICAgICB0aGVuQ2FzZS0+YXBwZW5k
TmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAmdHJ1ZVJlc3VsdCkpKTsKIAogICAg
IGJvb2wgZWxzZVJlc3VsdCA9IGZhbHNlOwotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PE1lbW9y
eVZhbHVlPigKICAgICAgICAgICAgIHByb2MsIExvYWQ4WiwgT3JpZ2luKCksCkBAIC0xMTY0MSw3
ICsxMTY0Nyw3IEBAIHZvaWQgdGVzdFN0b3JlOExvYWQ4WihpbnQzMl90IHZhbHVlKQogICAgICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAgcHRyKTsKIAotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1l
bW9yeVZhbHVlPihwcm9jLCBMb2FkOFosIE9yaWdpbigpLCBwdHIpKTsKIApAQCAtMTE2NjMsNyAr
MTE2NjksNyBAQCB2b2lkIHRlc3RTdG9yZTE2TG9hZDE2WihpbnQzMl90IHZhbHVlKQogICAgICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAgcHRyKTsKIAotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1l
bW9yeVZhbHVlPihwcm9jLCBMb2FkMTZaLCBPcmlnaW4oKSwgcHRyKSk7CiAKQEAgLTExNjc1LDcg
KzExNjgxLDcgQEAgdm9pZCB0ZXN0U1NoclNobDMyKGludDMyX3QgdmFsdWUsIGludDMyXwogICAg
IFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTU2hyLCBPcmlnaW4o
KSwKQEAgLTExNjk3LDcgKzExNzAzLDcgQEAgdm9pZCB0ZXN0U1NoclNobDY0KGludDY0X3QgdmFs
dWUsIGludDMyXwogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBTU2hyLCBPcmlnaW4oKSwKQEAgLTExNzI1LDggKzExNzMxLDggQEAgdm9pZCB0ZXN0VHJpdmlh
bEluZmluaXRlTG9vcCgpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBsb29wID0gcHJvYy5hZGRCbG9j
aygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdp
bigpLCBGcmVxdWVudGVkQmxvY2sobG9vcCkpOwotICAgIGxvb3AtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sobG9vcCkpOworICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVl
bnRlZEJsb2NrKGxvb3ApKTsKKyAgICBsb29wLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
SnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhsb29wKSk7CiAKICAgICBjb21waWxlKHBy
b2MpOwogfQpAQCAtMTE3NDAsMTUgKzExNzQ2LDE1IEBAIHZvaWQgdGVzdEZvbGRQYXRoRXF1YWwo
KQogCiAgICAgVmFsdWUqIGFyZyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKIAotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwgYXJnLCBGcmVxdWVudGVkQmxvY2sodGhlbkJs
b2NrKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VCbG9jaykpOwogCi0gICAgdGhlbkJsb2NrLT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQmxvY2stPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkJsb2NrLT5h
cHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgRXF1YWwsIE9yaWdpbigpLCBhcmcs
IHRoZW5CbG9jay0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSkp
OwogCi0gICAgZWxzZUJsb2NrLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQmxv
Y2stPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgZWxzZUJsb2NrLT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgRXF1YWwsIE9yaWdpbigpLCBhcmcsIGVsc2VCbG9jay0+YXBwZW5kTmV3PENvbnN0UHRyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCAwKSkpOwpAQCAtMTE3NjYsNyArMTE3NzIsNyBAQCB2b2lkIHRl
c3RMU2hpZnRTZWxmMzIoKQogICAgIFZhbHVlKiBhcmcgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIw
KSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFNobCwgT3JpZ2luKCksIGFyZywgYXJnKSk7
CiAKQEAgLTExNzg5LDcgKzExNzk1LDcgQEAgdm9pZCB0ZXN0UlNoaWZ0U2VsZjMyKCkKICAgICBW
YWx1ZSogYXJnID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgcHJvYywgVHJ1bmMs
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBTU2hyLCBPcmlnaW4oKSwgYXJnLCBhcmcpKTsKIApAQCAtMTE4MTIsNyArMTE4MTgs
NyBAQCB2b2lkIHRlc3RVUlNoaWZ0U2VsZjMyKCkKICAgICBWYWx1ZSogYXJnID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBaU2hyLCBPcmlnaW4o
KSwgYXJnLCBhcmcpKTsKIApAQCAtMTE4MzMsNyArMTE4MzksNyBAQCB2b2lkIHRlc3RMU2hpZnRT
ZWxmNjQoKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTaGwsIE9yaWdpbigpLCBhcmcsIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLCBhcmcpKSk7CkBAIC0xMTg1
Nyw3ICsxMTg2Myw3IEBAIHZvaWQgdGVzdFJTaGlmdFNlbGY2NCgpCiAgICAgUHJvY2VkdXJlIHBy
b2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSog
YXJnID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIFNTaHIsIE9yaWdpbigpLCBhcmcsIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
VHJ1bmMsIE9yaWdpbigpLCBhcmcpKSk7CkBAIC0xMTg4MSw3ICsxMTg4Nyw3IEBAIHZvaWQgdGVz
dFVSU2hpZnRTZWxmNjQoKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZyA9IHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBaU2hyLCBPcmlnaW4oKSwg
YXJnLCByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwgYXJnKSkp
OwpAQCAtMTE5MTcsNyArMTE5MjMsNyBAQCB2b2lkIHRlc3RQYXRjaHBvaW50RG91YmxlUmVncygp
CiAgICAgICAgICAgICBudW1DYWxscysrOwogICAgICAgICB9KTsKIAotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBw
YXRjaHBvaW50KTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgQ0hFQ0so
bnVtQ2FsbHMgPT0gMSk7CkBAIC0xMTk1MCw3ICsxMTk1Niw3IEBAIHZvaWQgdGVzdFNwaWxsRGVm
U21hbGxlclRoYW5Vc2UoKQogCiAgICAgLy8gT24geDg2LCBTdWIgYWRtaXQgYW4gYWRkcmVzcyBm
b3IgYW55IG9wZXJhbmQuIElmIGl0IHVzZXMgdGhlIHN0YWNrLCB0aGUgdG9wIGJpdHMgbXVzdCBi
ZSB6ZXJvLgogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IFN1YiwgT3JpZ2luKCksIGZvcmNlU3BpbGwsIGFyZzY0KTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwog
CiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBDSEVDSyhpbnZva2U8aW50NjRf
dD4oKmNvZGUsIDB4ZmZmZmZmZmYwMDAwMDAwMCkgPT0gMCk7CkBAIC0xMTk3MCw3ICsxMTk3Niw3
IEBAIHZvaWQgdGVzdFNwaWxsVXNlTGFyZ2VyVGhhbkRlZigpCiAKICAgICBWYWx1ZSogY29uZGl0
aW9uID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIxKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3Jp
Z2luKCksCkBAIC0xMTk4MCwxMCArMTE5ODYsMTAgQEAgdm9pZCB0ZXN0U3BpbGxVc2VMYXJnZXJU
aGFuRGVmKCkKICAgICBWYWx1ZSogdHJ1bmNhdGVkID0gdGhlbkNhc2UtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgWkV4dDMyLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLCBhcmd1bWVudCkpOwogICAgIFVwc2lsb25WYWx1
ZSogdGhlblJlc3VsdCA9IHRoZW5DYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgdHJ1bmNhdGVkKTsKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CisgICAgdGhl
bkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVl
bnRlZEJsb2NrKHRhaWwpKTsKIAogICAgIFVwc2lsb25WYWx1ZSogZWxzZVJlc3VsdCA9IGVsc2VD
YXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYXJndW1lbnQpOwot
ICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4o
KSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOwogCiAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDEwMDsgKytpKSB7CiAgICAgICAgIFBhdGNocG9p
bnRWYWx1ZSogcHJldmVudFRhaWxEdXBsaWNhdGlvbiA9IHRhaWwtPmFwcGVuZE5ldzxQYXRjaHBv
aW50VmFsdWU+KHByb2MsIFZvaWQsIE9yaWdpbigpKTsKQEAgLTEyMDA0LDcgKzEyMDEwLDcgQEAg
dm9pZCB0ZXN0U3BpbGxVc2VMYXJnZXJUaGFuRGVmKCkKICAgICBWYWx1ZSogcGhpID0gdGFpbC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBQaGksIEludDY0LCBPcmlnaW4oKSk7CiAgICAgdGhlblJl
c3VsdC0+c2V0UGhpKHBoaSk7CiAgICAgZWxzZVJlc3VsdC0+c2V0UGhpKHBoaSk7Ci0gICAgdGFp
bC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGhpKTsK
KyAgICB0YWlsLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cGhpKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgQ0hFQ0soaW52b2tl
PHVpbnQ2NF90PigqY29kZSwgMSwgMHhmZmZmZmZmZjAwMDAwMDAwKSA9PSAwKTsKQEAgLTEyMDg2
LDEyICsxMjA5MiwyMzkgQEAgdm9pZCB0ZXN0TGF0ZVJlZ2lzdGVyKCkKICAgICAgICAgICAgIGpp
dC5ub3AoKTsKICAgICAgICAgICAgIGppdC5ub3AoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kUGF0
Y2hwb2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHNlY29uZFBhdGNocG9pbnQpOwogICAgIAogICAgIGF1dG8gY29kZSA9IGNvbXBp
bGUocHJvYyk7CiAgICAgQ0hFQ0soaW52b2tlPHVpbnQ2NF90PigqY29kZSkgPT0gcmVzdWx0KTsK
IH0KIAordm9pZCBpbnRlcnByZXRlclByaW50KFZlY3RvcjxpbnRwdHJfdD4qIHN0cmVhbSwgaW50
cHRyX3QgdmFsdWUpCit7CisgICAgc3RyZWFtLT5hcHBlbmQodmFsdWUpOworfQorCit2b2lkIHRl
c3RJbnRlcnByZXRlcigpCit7CisgICAgLy8gVGhpcyBpbXBsZW1lbnRzIGEgc2lsbHkgaW50ZXJw
cmV0ZXIgdG8gdGVzdCBidWlsZGluZyBjdXN0b20gc3dpdGNoIHN0YXRlbWVudHMgdXNpbmcKKyAg
ICAvLyBQYXRjaHBvaW50LgorICAgIAorICAgIFByb2NlZHVyZSBwcm9jOworICAgIAorICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayogZGlzcGF0
Y2ggPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayogYWRkVG9EYXRhUG9pbnRlciA9
IHByb2MuYWRkQmxvY2soKTsKKyAgICBCYXNpY0Jsb2NrKiBhZGRUb0NvZGVQb2ludGVyID0gcHJv
Yy5hZGRCbG9jaygpOworICAgIEJhc2ljQmxvY2sqIGFkZFRvQ29kZVBvaW50ZXJUYWtlbiA9IHBy
b2MuYWRkQmxvY2soKTsKKyAgICBCYXNpY0Jsb2NrKiBhZGRUb0NvZGVQb2ludGVyTm90VGFrZW4g
PSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayogYWRkVG9EYXRhID0gcHJvYy5hZGRC
bG9jaygpOworICAgIEJhc2ljQmxvY2sqIHByaW50ID0gcHJvYy5hZGRCbG9jaygpOworICAgIEJh
c2ljQmxvY2sqIHN0b3AgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgCisgICAgVmFyaWFibGUqIGRh
dGFQb2ludGVyID0gcHJvYy5hZGRWYXJpYWJsZShwb2ludGVyVHlwZSgpKTsKKyAgICBWYXJpYWJs
ZSogY29kZVBvaW50ZXIgPSBwcm9jLmFkZFZhcmlhYmxlKHBvaW50ZXJUeXBlKCkpOworICAgIAor
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPigKKyAgICAgICAgcHJvYywgU2V0LCBP
cmlnaW4oKSwgZGF0YVBvaW50ZXIsCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CisgICAgcm9v
dC0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAgICAgICBwcm9jLCBTZXQsIE9yaWdpbigp
LCBjb2RlUG9pbnRlciwKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKTsKKyAgICBWYWx1ZSogY29u
dGV4dCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
R1BSSW5mbzo6YXJndW1lbnRHUFIyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhkaXNwYXRjaCkpOworCisgICAg
Ly8gTk9URTogSXQncyB0b3RhbGx5IHZhbGlkIGZvciB0aGlzIHBhdGNocG9pbnQgdG8gYmUgdGFp
bC1kdXBsaWNhdGVkLgorICAgIFZhbHVlKiBjb2RlUG9pbnRlclZhbHVlID0KKyAgICAgICAgZGlz
cGF0Y2gtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPihwcm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwg
Y29kZVBvaW50ZXIpOworICAgIFZhbHVlKiBvcGNvZGUgPSBkaXNwYXRjaC0+YXBwZW5kTmV3PE1l
bW9yeVZhbHVlPigKKyAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCks
IGNvZGVQb2ludGVyVmFsdWUpOworICAgIFBhdGNocG9pbnRWYWx1ZSogcG9seUp1bXAgPSBkaXNw
YXRjaC0+YXBwZW5kTmV3PFBhdGNocG9pbnRWYWx1ZT4ocHJvYywgVm9pZCwgT3JpZ2luKCkpOwor
ICAgIHBvbHlKdW1wLT5lZmZlY3RzID0gRWZmZWN0cygpOworICAgIHBvbHlKdW1wLT5lZmZlY3Rz
LnRlcm1pbmFsID0gdHJ1ZTsKKyAgICBwb2x5SnVtcC0+YXBwZW5kU29tZVJlZ2lzdGVyKG9wY29k
ZSk7CisgICAgcG9seUp1bXAtPmNsb2JiZXIoUmVnaXN0ZXJTZXQ6Om1hY3JvU2NyYXRjaFJlZ2lz
dGVycygpKTsKKyAgICBwb2x5SnVtcC0+bnVtR1BTY3JhdGNoUmVnaXN0ZXJzKys7CisgICAgZGlz
cGF0Y2gtPmFwcGVuZFN1Y2Nlc3NvcihGcmVxdWVudGVkQmxvY2soYWRkVG9EYXRhUG9pbnRlcikp
OworICAgIGRpc3BhdGNoLT5hcHBlbmRTdWNjZXNzb3IoRnJlcXVlbnRlZEJsb2NrKGFkZFRvQ29k
ZVBvaW50ZXIpKTsKKyAgICBkaXNwYXRjaC0+YXBwZW5kU3VjY2Vzc29yKEZyZXF1ZW50ZWRCbG9j
ayhhZGRUb0RhdGEpKTsKKyAgICBkaXNwYXRjaC0+YXBwZW5kU3VjY2Vzc29yKEZyZXF1ZW50ZWRC
bG9jayhwcmludCkpOworICAgIGRpc3BhdGNoLT5hcHBlbmRTdWNjZXNzb3IoRnJlcXVlbnRlZEJs
b2NrKHN0b3ApKTsKKyAgICAKKyAgICAvLyBPdXIgIm9wY29kZXMiLgorICAgIHN0YXRpYyBjb25z
dCBpbnRwdHJfdCBBZGREUCA9IDA7CisgICAgc3RhdGljIGNvbnN0IGludHB0cl90IEFkZENQID0g
MTsKKyAgICBzdGF0aWMgY29uc3QgaW50cHRyX3QgQWRkID0gMjsKKyAgICBzdGF0aWMgY29uc3Qg
aW50cHRyX3QgUHJpbnQgPSAzOworICAgIHN0YXRpYyBjb25zdCBpbnRwdHJfdCBTdG9wID0gNDsK
KyAgICAKKyAgICBwb2x5SnVtcC0+c2V0R2VuZXJhdG9yKAorICAgICAgICBbJl0gKENDYWxsSGVs
cGVycyYgaml0LCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmIHBhcmFtcykgeworICAg
ICAgICAgICAgVmVjdG9yPEJveDxDQ2FsbEhlbHBlcnM6OkxhYmVsPj4gbGFiZWxzID0gcGFyYW1z
LnN1Y2Nlc3NvckxhYmVscygpOworCisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIq
IGp1bXBUYWJsZSA9IGJpdHdpc2VfY2FzdDxNYWNyb0Fzc2VtYmxlckNvZGVQdHIqPigKKyAgICAg
ICAgICAgICAgICBwYXJhbXMucHJvYygpLmFkZERhdGFTZWN0aW9uKHNpemVvZihNYWNyb0Fzc2Vt
YmxlckNvZGVQdHIpICogbGFiZWxzLnNpemUoKSkpOworCisgICAgICAgICAgICBqaXQubW92ZShD
Q2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoanVtcFRhYmxlKSwgcGFyYW1zLmdwU2NyYXRjaCgw
KSk7CisgICAgICAgICAgICBqaXQuanVtcChDQ2FsbEhlbHBlcnM6OkJhc2VJbmRleChwYXJhbXMu
Z3BTY3JhdGNoKDApLCBwYXJhbXNbMF0uZ3ByKCksIENDYWxsSGVscGVyczo6dGltZXNQdHIoKSkp
OworICAgICAgICAgICAgCisgICAgICAgICAgICBqaXQuYWRkTGlua1Rhc2soCisgICAgICAgICAg
ICAgICAgWyYsIGp1bXBUYWJsZSwgbGFiZWxzXSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikgewor
ICAgICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBsYWJlbHMuc2l6ZSgpOyBpLS07
KQorICAgICAgICAgICAgICAgICAgICAgICAganVtcFRhYmxlW2ldID0gbGlua0J1ZmZlci5sb2Nh
dGlvbk9mKCpsYWJlbHNbaV0pOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAg
ICAKKyAgICAvLyBBZGREUCA8b3BlcmFuZD46IGFkZHMgPG9wZXJhbmQ+IHRvIERQLgorICAgIGNv
ZGVQb2ludGVyVmFsdWUgPQorICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFy
aWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyKTsKKyAgICBh
ZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHByb2Ms
IFNldCwgT3JpZ2luKCksIGRhdGFQb2ludGVyLAorICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5h
cHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgQjM6OkFkZCwgT3JpZ2luKCksCisg
ICAgICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJv
YywgQjM6OkdldCwgT3JpZ2luKCksIGRhdGFQb2ludGVyKSwKKyAgICAgICAgICAgIGFkZFRvRGF0
YVBvaW50ZXItPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICAgICAgcHJvYywgTXVsLCBP
cmlnaW4oKSwKKyAgICAgICAgICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8TWVt
b3J5VmFsdWU+KAorICAgICAgICAgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgp
LCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwgc2l6ZW9mKGludHB0cl90KSksCisgICAgICAg
ICAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kSW50Q29uc3RhbnQoCisgICAgICAgICAg
ICAgICAgICAgIHByb2MsIE9yaWdpbigpLCBwb2ludGVyVHlwZSgpLCBzaXplb2YoaW50cHRyX3Qp
KSkpKTsKKyAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisg
ICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyLAorICAgICAgICBhZGRUb0Rh
dGFQb2ludGVyLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgcHJvYywgQjM6OkFkZCwg
T3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUsCisgICAgICAgICAgICBhZGRUb0RhdGFQb2ludGVy
LT5hcHBlbmRJbnRDb25zdGFudCgKKyAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgcG9p
bnRlclR5cGUoKSwgc2l6ZW9mKGludHB0cl90KSAqIDIpKSk7CisgICAgYWRkVG9EYXRhUG9pbnRl
ci0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVk
QmxvY2soZGlzcGF0Y2gpKTsKKyAgICAKKyAgICAvLyBBZGRDUCA8b3BlcmFuZD46IGFkZHMgPG9w
ZXJhbmQ+IHRvIENQIGlmIHRoZSBjdXJyZW50IHZhbHVlIGF0IERQIGlzIG5vbi16ZXJvLCBvdGhl
cndpc2UKKyAgICAvLyBmYWxscyB0aHJvdWdoIG5vcm1hbGx5LgorICAgIGNvZGVQb2ludGVyVmFs
dWUgPQorICAgICAgICBhZGRUb0NvZGVQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4o
cHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyKTsKKyAgICBWYWx1ZSogZGF0YVBv
aW50ZXJWYWx1ZSA9CisgICAgICAgIGFkZFRvQ29kZVBvaW50ZXItPmFwcGVuZE5ldzxWYXJpYWJs
ZVZhbHVlPihwcm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwgZGF0YVBvaW50ZXIpOworICAgIGFkZFRv
Q29kZVBvaW50ZXItPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKKyAgICAgICAgcHJvYywgQnJhbmNo
LCBPcmlnaW4oKSwKKyAgICAgICAgYWRkVG9Db2RlUG9pbnRlci0+YXBwZW5kTmV3PE1lbW9yeVZh
bHVlPigKKyAgICAgICAgICAgIHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLCBk
YXRhUG9pbnRlclZhbHVlKSwKKyAgICAgICAgRnJlcXVlbnRlZEJsb2NrKGFkZFRvQ29kZVBvaW50
ZXJUYWtlbiksIEZyZXF1ZW50ZWRCbG9jayhhZGRUb0NvZGVQb2ludGVyTm90VGFrZW4pKTsKKyAg
ICBhZGRUb0NvZGVQb2ludGVyVGFrZW4tPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPigKKyAgICAg
ICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIsCisgICAgICAgIGFkZFRvQ29kZVBv
aW50ZXJUYWtlbi0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEIzOjpBZGQs
IE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLAorICAgICAgICAgICAgYWRkVG9Db2RlUG9pbnRl
clRha2VuLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgICAgIHByb2MsIE11bCwgT3Jp
Z2luKCksCisgICAgICAgICAgICAgICAgYWRkVG9Db2RlUG9pbnRlclRha2VuLT5hcHBlbmROZXc8
TWVtb3J5VmFsdWU+KAorICAgICAgICAgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVyVHlw
ZSgpLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwgc2l6ZW9mKGludHB0cl90KSksCisgICAg
ICAgICAgICAgICAgYWRkVG9Db2RlUG9pbnRlclRha2VuLT5hcHBlbmRJbnRDb25zdGFudCgKKyAg
ICAgICAgICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBlKCksIHNpemVvZihp
bnRwdHJfdCkpKSkpOworICAgIGFkZFRvQ29kZVBvaW50ZXJUYWtlbi0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZGlzcGF0Y2gpKTsK
KyAgICBhZGRUb0NvZGVQb2ludGVyTm90VGFrZW4tPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPigK
KyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIsCisgICAgICAgIGFkZFRv
Q29kZVBvaW50ZXJOb3RUYWtlbi0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2Ms
IEIzOjpBZGQsIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLAorICAgICAgICAgICAgYWRkVG9D
b2RlUG9pbnRlck5vdFRha2VuLT5hcHBlbmRJbnRDb25zdGFudCgKKyAgICAgICAgICAgICAgICBw
cm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6ZW9mKGludHB0cl90KSAqIDIpKSk7Cisg
ICAgYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCisgICAg
ICAgIHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZGlzcGF0Y2gpKTsKKwor
ICAgIC8vIEFkZCA8b3BlcmFuZD46IGFkZHMgPG9wZXJhbmQ+IHRvIHRoZSBzbG90IHBvaW50ZWQg
dG8gYnkgRFAuCisgICAgY29kZVBvaW50ZXJWYWx1ZSA9IGFkZFRvRGF0YS0+YXBwZW5kTmV3PFZh
cmlhYmxlVmFsdWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlcik7CisgICAg
ZGF0YVBvaW50ZXJWYWx1ZSA9IGFkZFRvRGF0YS0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHBy
b2MsIEIzOjpHZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRlcik7CisgICAgYWRkVG9EYXRhLT5hcHBl
bmROZXc8TWVtb3J5VmFsdWU+KAorICAgICAgICBwcm9jLCBTdG9yZSwgT3JpZ2luKCksCisgICAg
ICAgIGFkZFRvRGF0YS0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEIzOjpB
ZGQsIE9yaWdpbigpLAorICAgICAgICAgICAgYWRkVG9EYXRhLT5hcHBlbmROZXc8TWVtb3J5VmFs
dWU+KAorICAgICAgICAgICAgICAgIHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigp
LCBkYXRhUG9pbnRlclZhbHVlKSwKKyAgICAgICAgICAgIGFkZFRvRGF0YS0+YXBwZW5kTmV3PE1l
bW9yeVZhbHVlPigKKyAgICAgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBP
cmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwgc2l6ZW9mKGludHB0cl90KSkpLAorICAgICAgICBk
YXRhUG9pbnRlclZhbHVlKTsKKyAgICBhZGRUb0RhdGEtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVl
PigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIsCisgICAgICAgIGFk
ZFRvRGF0YS0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEIzOjpBZGQsIE9y
aWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLAorICAgICAgICAgICAgYWRkVG9EYXRhLT5hcHBlbmRJ
bnRDb25zdGFudChwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6ZW9mKGludHB0cl90
KSAqIDIpKSk7CisgICAgYWRkVG9EYXRhLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVt
cCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhkaXNwYXRjaCkpOworICAgIAorICAgIC8vIFBy
aW50OiAicHJpbnRzIiB0aGUgdmFsdWUgcG9pbnRlZCB0byBieSBEUC4gV2hhdCB0aGlzIGFjdHVh
bGx5IG1lYW5zIGlzIHRoYXQgdGhlIHZhbHVlIGlzCisgICAgLy8gYXBwZW5kZWQgdG8gdGhlIHN0
cmVhbSB2ZWN0b3IgYnkgdGhlIGludGVycHJldGVyUHJpbnQgZnVuY3Rpb24uCisgICAgY29kZVBv
aW50ZXJWYWx1ZSA9IHByaW50LT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6Okdl
dCwgT3JpZ2luKCksIGNvZGVQb2ludGVyKTsKKyAgICBkYXRhUG9pbnRlclZhbHVlID0gcHJpbnQt
PmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPihwcm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwgZGF0YVBv
aW50ZXIpOworICAgIHByaW50LT5hcHBlbmROZXc8Q0NhbGxWYWx1ZT4oCisgICAgICAgIHByb2Ms
IFZvaWQsIE9yaWdpbigpLAorICAgICAgICBwcmludC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+
KAorICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksIGJpdHdpc2VfY2FzdDx2b2lkKj4oaW50ZXJw
cmV0ZXJQcmludCkpLAorICAgICAgICBjb250ZXh0LAorICAgICAgICBwcmludC0+YXBwZW5kTmV3
PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwgZGF0YVBv
aW50ZXJWYWx1ZSkpOworICAgIHByaW50LT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAg
ICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyLAorICAgICAgICBwcmludC0+YXBw
ZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEIzOjpBZGQsIE9yaWdpbigpLCBjb2Rl
UG9pbnRlclZhbHVlLAorICAgICAgICAgICAgcHJpbnQtPmFwcGVuZEludENvbnN0YW50KHByb2Ms
IE9yaWdpbigpLCBwb2ludGVyVHlwZSgpLCBzaXplb2YoaW50cHRyX3QpKSkpOworICAgIHByaW50
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRC
bG9jayhkaXNwYXRjaCkpOworICAgIAorICAgIC8vIFN0b3A6IHJldHVybnMuCisgICAgc3RvcC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAorICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAor
ICAgICAgICBzdG9wLT5hcHBlbmRJbnRDb25zdGFudChwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5
cGUoKSwgMCkpOworICAgIAorICAgIGF1dG8gaW50ZXJwcmV0ZXIgPSBjb21waWxlKHByb2MpOwor
ICAgIAorICAgIFZlY3RvcjxpbnRwdHJfdD4gZGF0YTsKKyAgICBWZWN0b3I8aW50cHRyX3Q+IGNv
ZGU7CisgICAgVmVjdG9yPGludHB0cl90PiBzdHJlYW07CisgICAgCisgICAgZGF0YS5hcHBlbmQo
MSk7CisgICAgZGF0YS5hcHBlbmQoMCk7CisgICAgCisgICAgaWYgKHNob3VsZEJlVmVyYm9zZSgp
KQorICAgICAgICBkYXRhTG9nKCJkYXRhID0gIiwgbGlzdER1bXAoZGF0YSksICJcbiIpOworICAg
IAorICAgIC8vIFdlJ2xsIHdyaXRlIGEgcHJvZ3JhbSB0aGF0IHByaW50cyB0aGUgbnVtYmVycyAx
Li4xMDAuCisgICAgLy8gV2UgZXhwZWN0IERQIHRvIHBvaW50IGF0ICMwLgorICAgIGNvZGUuYXBw
ZW5kKEFkZENQKTsKKyAgICBjb2RlLmFwcGVuZCg2KTsgLy8gZ28gdG8gbG9vcCBib2R5CisgICAg
CisgICAgLy8gTG9vcCByZS1lbnRyeToKKyAgICAvLyBXZSBleHBlY3QgRFAgdG8gcG9pbnQgYXQg
IzEgYW5kIGZvciAjMSB0byBiZSBvZmZzZXQgYnkgLTEwMC4KKyAgICBjb2RlLmFwcGVuZChBZGQp
OworICAgIGNvZGUuYXBwZW5kKDEwMCk7CisgICAgCisgICAgY29kZS5hcHBlbmQoQWRkRFApOwor
ICAgIGNvZGUuYXBwZW5kKC0xKTsKKyAgICAKKyAgICAvLyBMb29wIGhlYWRlcjoKKyAgICAvLyBX
ZSBleHBlY3QgRFAgdG8gcG9pbnQgYXQgIzAuCisgICAgY29kZS5hcHBlbmQoQWRkRFApOworICAg
IGNvZGUuYXBwZW5kKDEpOworICAgIAorICAgIGNvZGUuYXBwZW5kKEFkZCk7CisgICAgY29kZS5h
cHBlbmQoMSk7CisgICAgCisgICAgY29kZS5hcHBlbmQoUHJpbnQpOworICAgIAorICAgIGNvZGUu
YXBwZW5kKEFkZCk7CisgICAgY29kZS5hcHBlbmQoLTEwMCk7CisgICAgCisgICAgLy8gV2Ugd2Fu
dCB0byBzdG9wIGlmIGl0J3MgemVybyBhbmQgY29udGludWUgaWYgaXQncyBub24temVyby4gQWRk
Q1AgdGFrZXMgdGhlIGJyYW5jaCBpZiBpdCdzCisgICAgLy8gbm9uLXplcm8uCisgICAgY29kZS5h
cHBlbmQoQWRkQ1ApOworICAgIGNvZGUuYXBwZW5kKC0xMSk7IC8vIGdvIHRvIGxvb3AgcmUtZW50
cnkuCisgICAgCisgICAgY29kZS5hcHBlbmQoU3RvcCk7CisgICAgCisgICAgaWYgKHNob3VsZEJl
VmVyYm9zZSgpKQorICAgICAgICBkYXRhTG9nKCJjb2RlID0gIiwgbGlzdER1bXAoY29kZSksICJc
biIpOworICAgIAorICAgIENIRUNLKCFpbnZva2U8aW50cHRyX3Q+KCppbnRlcnByZXRlciwgZGF0
YS5kYXRhKCksIGNvZGUuZGF0YSgpLCAmc3RyZWFtKSk7CisgICAgCisgICAgQ0hFQ0soc3RyZWFt
LnNpemUoKSA9PSAxMDApOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCAxMDA7ICsraSkK
KyAgICAgICAgQ0hFQ0soc3RyZWFtW2ldID09IGkgKyAxKTsKKyAgICAKKyAgICBpZiAoc2hvdWxk
QmVWZXJib3NlKCkpCisgICAgICAgIGRhdGFMb2coInN0cmVhbSA9ICIsIGxpc3REdW1wKHN0cmVh
bSksICJcbiIpOworfQorCiB2b2lkIHRlc3RSZWR1Y2VTdHJlbmd0aENoZWNrQm90dG9tVXNlSW5B
bm90aGVyQmxvY2soKQogewogICAgIFByb2NlZHVyZSBwcm9jOwpAQCAtMTIxMTAsNyArMTIzNDMs
NyBAQCB2b2lkIHRlc3RSZWR1Y2VTdHJlbmd0aENoZWNrQm90dG9tVXNlSW5BCiAgICAgICAgICAg
ICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwogICAgIFZhbHVlKiBhcmcgPSBvbmUtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIw
KTsKLSAgICBvbmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigp
LCBGcmVxdWVudGVkQmxvY2sodHdvKSk7CisgICAgb25lLT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0d28pKTsKICAgICAKICAgICBj
aGVjayA9IHR3by0+YXBwZW5kTmV3PENoZWNrVmFsdWU+KAogICAgICAgICBwcm9jLCBDaGVja0Fk
ZCwgT3JpZ2luKCksIGFyZywKQEAgLTEyMTE5LDcgKzEyMzUyLDcgQEAgdm9pZCB0ZXN0UmVkdWNl
U3RyZW5ndGhDaGVja0JvdHRvbVVzZUluQQogICAgICAgICBbJl0gKENDYWxsSGVscGVycyYsIGNv
bnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsKICAgICAgICAgICAgIENIRUNLKCEiU2hv
dWxkIG5vdCBleGVjdXRlIik7CiAgICAgICAgIH0pOwotICAgIHR3by0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2spOworICAgIHR3by0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrKTsKICAgICAKICAg
ICBwcm9jLnJlc2V0UmVhY2hhYmlsaXR5KCk7CiAgICAgcmVkdWNlU3RyZW5ndGgocHJvYyk7CkBA
IC0xMjEzNCwxMSArMTIzNjcsMTEgQEAgdm9pZCB0ZXN0UmVzZXRSZWFjaGFiaWxpdHlEYW5nbGlu
Z1JlZmVyZQogICAgIAogICAgIFVwc2lsb25WYWx1ZSogdXBzaWxvbiA9IG9uZS0+YXBwZW5kTmV3
PFVwc2lsb25WYWx1ZT4oCiAgICAgICAgIHByb2MsIE9yaWdpbigpLCBvbmUtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwotICAgIG9uZS0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgT29wcywgT3JpZ2luKCkpOworICAgIG9uZS0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIE9vcHMsIE9yaWdpbigpKTsKICAgICAKICAgICBWYWx1ZSogcGhpID0g
dHdvLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFBoaSwgSW50MzIsIE9yaWdpbigpKTsKICAgICB1
cHNpbG9uLT5zZXRQaGkocGhpKTsKLSAgICB0d28tPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIE9vcHMsIE9yaWdpbigpKTsKKyAgICB0d28tPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBPb3BzLCBPcmlnaW4oKSk7CiAgICAgCiAgICAgcHJvYy5yZXNldFJlYWNoYWJpbGl0eSgpOwog
ICAgIHZhbGlkYXRlKHByb2MpOwpAQCAtMTM1NDcsNiArMTM3ODAsNyBAQCB2b2lkIHJ1bihjb25z
dCBjaGFyKiBmaWx0ZXIpCiAgICAgUlVOKHRlc3RTcGlsbERlZlNtYWxsZXJUaGFuVXNlKCkpOwog
ICAgIFJVTih0ZXN0U3BpbGxVc2VMYXJnZXJUaGFuRGVmKCkpOwogICAgIFJVTih0ZXN0TGF0ZVJl
Z2lzdGVyKCkpOworICAgIFJVTih0ZXN0SW50ZXJwcmV0ZXIoKSk7CiAgICAgUlVOKHRlc3RSZWR1
Y2VTdHJlbmd0aENoZWNrQm90dG9tVXNlSW5Bbm90aGVyQmxvY2soKSk7CiAgICAgUlVOKHRlc3RS
ZXNldFJlYWNoYWJpbGl0eURhbmdsaW5nUmVmZXJlbmNlKCkpOwogCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5jcHAJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMw
LDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkFpckNDYWxsU3BlY2lhbC5oIgogI2luY2x1ZGUgIkIz
QmFzaWNCbG9ja1V0aWxzLmgiCisjaW5jbHVkZSAiQjNQcm9jZWR1cmUuaCIKICNpbmNsdWRlICJC
M1N0YWNrU2xvdC5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsgbmFtZXNwYWNl
IEFpciB7CkBAIC0xMzUsNiArMTM2LDExIEBAIHZvaWQgQ29kZTo6YWRkRmFzdFRtcChUbXAgdG1w
KQogICAgIG1fZmFzdFRtcHMuYWRkKHRtcCk7CiB9CiAKK3ZvaWQqIENvZGU6OmFkZERhdGFTZWN0
aW9uKHNpemVfdCBzaXplKQoreworICAgIHJldHVybiBtX3Byb2MuYWRkRGF0YVNlY3Rpb24oc2l6
ZSk7Cit9CisKIHVuc2lnbmVkIENvZGU6OmpzSGFzaCgpIGNvbnN0CiB7CiAgICAgdW5zaWduZWQg
cmVzdWx0ID0gMDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5oCShy
ZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUu
aAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkFpclNwZWNpYWwu
aCIKICNpbmNsdWRlICJBaXJTdGFja1Nsb3QuaCIKICNpbmNsdWRlICJBaXJUbXAuaCIKKyNpbmNs
dWRlICJCM0luZGV4TWFwLmgiCiAjaW5jbHVkZSAiQjNTcGFyc2VDb2xsZWN0aW9uLmgiCiAjaW5j
bHVkZSAiUmVnaXN0ZXJBdE9mZnNldExpc3QuaCIKICNpbmNsdWRlICJTdGFja0FsaWdubWVudC5o
IgpAQCAtMjAzLDYgKzIwNCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZEZhc3RUbXAoVG1wKTsK
ICAgICBib29sIGlzRmFzdFRtcChUbXAgdG1wKSBjb25zdCB7IHJldHVybiBtX2Zhc3RUbXBzLmNv
bnRhaW5zKHRtcCk7IH0KICAgICAKKyAgICB2b2lkKiBhZGREYXRhU2VjdGlvbihzaXplX3QpOwor
ICAgIAogICAgIC8vIFRoZSBuYW1lIGhhcyB0byBiZSBhIHN0cmluZyBsaXRlcmFsLCBzaW5jZSB3
ZSBkb24ndCBkbyBhbnkgbWVtb3J5IG1hbmFnZW1lbnQgZm9yIHRoZSBzdHJpbmcuCiAgICAgdm9p
ZCBzZXRMYXN0UGhhc2VOYW1lKGNvbnN0IGNoYXIqIG5hbWUpCiAgICAgewpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDdXN0b20uaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckN1c3RvbS5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckN1c3RvbS5oCSh3b3JraW5nIGNvcHkpCkBA
IC04NCwxMCArODQsMTUgQEAgc3RydWN0IFBhdGNoQ3VzdG9tIHsKICAgICB7CiAgICAgICAgIHJl
dHVybiBpbnN0LmFyZ3NbMF0uc3BlY2lhbCgpLT5zaG91bGRUcnlBbGlhc2luZ0RlZihpbnN0KTsK
ICAgICB9CisgICAgCisgICAgc3RhdGljIGJvb2wgaXNUZXJtaW5hbChJbnN0JiBpbnN0KQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGluc3QuYXJnc1swXS5zcGVjaWFsKCktPmlzVGVybWluYWwoaW5z
dCk7CisgICAgfQogCiAgICAgc3RhdGljIGJvb2wgaGFzTm9uQXJnTm9uQ29udHJvbEVmZmVjdHMo
SW5zdCYgaW5zdCkKICAgICB7Ci0gICAgICAgIHJldHVybiBpbnN0LmFyZ3NbMF0uc3BlY2lhbCgp
LT5oYXNOb25BcmdOb25Db250cm9sRWZmZWN0cygpOworICAgICAgICByZXR1cm4gaW5zdC5hcmdz
WzBdLnNwZWNpYWwoKS0+aGFzTm9uQXJnTm9uQ29udHJvbEVmZmVjdHMoaW5zdCk7CiAgICAgfQog
CiAgICAgc3RhdGljIENDYWxsSGVscGVyczo6SnVtcCBnZW5lcmF0ZSgKQEAgLTEzOCw2ICsxNDMs
MTEgQEAgc3RydWN0IENDYWxsQ3VzdG9tIHsKICAgICB7CiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIH0KKyAgICAKKyAgICBzdGF0aWMgYm9vbCBpc1Rlcm1pbmFsKEluc3QmKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KIAogICAgIHN0YXRpYyBib29sIGhhc05vbkFyZ05v
bkNvbnRyb2xFZmZlY3RzKEluc3QmKQogICAgIHsKQEAgLTE5Nyw2ICsyMDcsMTEgQEAgc3RydWN0
IFNodWZmbGVDdXN0b20gewogICAgICAgICB9CiAgICAgfQogCisgICAgc3RhdGljIGJvb2wgaXNU
ZXJtaW5hbChJbnN0JikKKyAgICB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKICAg
ICBzdGF0aWMgYm9vbCBoYXNOb25BcmdOb25Db250cm9sRWZmZWN0cyhJbnN0JikKICAgICB7CiAg
ICAgICAgIHJldHVybiBmYWxzZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyR2VuZXJhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9h
aXIvQWlyR2VuZXJhdGUuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvYWlyL0FpckdlbmVyYXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAsOCArNTAs
MTAgQEAKICNpbmNsdWRlICJCM0luZGV4TWFwLmgiCiAjaW5jbHVkZSAiQjNQcm9jZWR1cmUuaCIK
ICNpbmNsdWRlICJCM1RpbWluZ1Njb3BlLmgiCisjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIK
ICNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKICNpbmNsdWRlICJEaXNhbGxvd01hY3JvU2NyYXRj
aFJlZ2lzdGVyVXNhZ2UuaCIKKyNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAKIG5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UgQWlyIHsKIApAQCAtMTczLDEyICsxNzUsMTYg
QEAgdm9pZCBnZW5lcmF0ZShDb2RlJiBjb2RlLCBDQ2FsbEhlbHBlcnMmIAogCiAgICAgR2VuZXJh
dGlvbkNvbnRleHQgY29udGV4dDsKICAgICBjb250ZXh0LmNvZGUgPSAmY29kZTsKLSAgICBJbmRl
eE1hcDxCYXNpY0Jsb2NrLCBDQ2FsbEhlbHBlcnM6OkxhYmVsPiBibG9ja0xhYmVscyhjb2RlLnNp
emUoKSk7CisgICAgY29udGV4dC5ibG9ja0xhYmVscy5yZXNpemUoY29kZS5zaXplKCkpOworICAg
IGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiBjb2RlKSB7CisgICAgICAgIGlmIChibG9jaykKKyAg
ICAgICAgICAgIGNvbnRleHQuYmxvY2tMYWJlbHNbYmxvY2tdID0gQm94PENDYWxsSGVscGVyczo6
TGFiZWw+OjpjcmVhdGUoKTsKKyAgICB9CiAgICAgSW5kZXhNYXA8QmFzaWNCbG9jaywgQ0NhbGxI
ZWxwZXJzOjpKdW1wTGlzdD4gYmxvY2tKdW1wcyhjb2RlLnNpemUoKSk7CiAKICAgICBhdXRvIGxp
bmsgPSBbJl0gKENDYWxsSGVscGVyczo6SnVtcCBqdW1wLCBCYXNpY0Jsb2NrKiB0YXJnZXQpIHsK
LSAgICAgICAgaWYgKGJsb2NrTGFiZWxzW3RhcmdldF0uaXNTZXQoKSkgewotICAgICAgICAgICAg
anVtcC5saW5rVG8oYmxvY2tMYWJlbHNbdGFyZ2V0XSwgJmppdCk7CisgICAgICAgIGlmIChjb250
ZXh0LmJsb2NrTGFiZWxzW3RhcmdldF0tPmlzU2V0KCkpIHsKKyAgICAgICAgICAgIGp1bXAubGlu
a1RvKCpjb250ZXh0LmJsb2NrTGFiZWxzW3RhcmdldF0sICZqaXQpOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAKQEAgLTE5NSwxNiArMjAxLDIyIEBAIHZvaWQgZ2VuZXJhdGUoQ29k
ZSYgY29kZSwgQ0NhbGxIZWxwZXJzJiAKICAgICB9OwogCiAgICAgZm9yIChCYXNpY0Jsb2NrKiBi
bG9jayA6IGNvZGUpIHsKKyAgICAgICAgY29udGV4dC5jdXJyZW50QmxvY2sgPSBibG9jazsKKyAg
ICAgICAgY29udGV4dC5pbmRleEluQmxvY2sgPSBVSU5UX01BWDsKICAgICAgICAgYmxvY2tKdW1w
c1tibG9ja10ubGluaygmaml0KTsKLSAgICAgICAgYmxvY2tMYWJlbHNbYmxvY2tdID0gaml0Lmxh
YmVsKCk7CisgICAgICAgIENDYWxsSGVscGVyczo6TGFiZWwgbGFiZWwgPSBqaXQubGFiZWwoKTsK
KyAgICAgICAgKmNvbnRleHQuYmxvY2tMYWJlbHNbYmxvY2tdID0gbGFiZWw7CiAgICAgICAgIEFT
U0VSVChibG9jay0+c2l6ZSgpID49IDEpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgYmxvY2stPnNpemUoKSAtIDE7ICsraSkgeworICAgICAgICAgICAgY29udGV4dC5pbmRleElu
QmxvY2sgPSBpOwogICAgICAgICAgICAgSW5zdCYgaW5zdCA9IGJsb2NrLT5hdChpKTsKICAgICAg
ICAgICAgIGFkZEl0ZW0oaW5zdCk7CiAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAganVt
cCA9IGluc3QuZ2VuZXJhdGUoaml0LCBjb250ZXh0KTsKICAgICAgICAgICAgIEFTU0VSVF9VTlVT
RUQoanVtcCwgIWp1bXAuaXNTZXQoKSk7CiAgICAgICAgIH0KIAorICAgICAgICBjb250ZXh0Lmlu
ZGV4SW5CbG9jayA9IGJsb2NrLT5zaXplKCkgLSAxOworICAgICAgICAKICAgICAgICAgaWYgKGJs
b2NrLT5sYXN0KCkub3Bjb2RlID09IEp1bXAKICAgICAgICAgICAgICYmIGJsb2NrLT5zdWNjZXNz
b3JCbG9jaygwKSA9PSBjb2RlLmZpbmROZXh0QmxvY2soYmxvY2spKQogICAgICAgICAgICAgY29u
dGludWU7CkBAIC0yMjgsMjYgKzI0MCwzMCBAQCB2b2lkIGdlbmVyYXRlKENvZGUmIGNvZGUsIEND
YWxsSGVscGVycyYgCiAgICAgICAgICAgICBhZGRJdGVtKGJsb2NrLT5sYXN0KCkpOwogICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgIH0KLQorICAgICAgICAKICAgICAgICAgQ0NhbGxIZWxw
ZXJzOjpKdW1wIGp1bXAgPSBibG9jay0+bGFzdCgpLmdlbmVyYXRlKGppdCwgY29udGV4dCk7Ci0g
ICAgICAgIHN3aXRjaCAoYmxvY2stPm51bVN1Y2Nlc3NvcnMoKSkgewotICAgICAgICBjYXNlIDA6
Ci0gICAgICAgICAgICBBU1NFUlQoIWp1bXAuaXNTZXQoKSk7Ci0gICAgICAgICAgICBicmVhazsK
LSAgICAgICAgY2FzZSAxOgotICAgICAgICAgICAgbGluayhqdW1wLCBibG9jay0+c3VjY2Vzc29y
QmxvY2soMCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgMjoKLSAgICAgICAg
ICAgIGxpbmsoanVtcCwgYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDApKTsKLSAgICAgICAgICAgIGlm
IChibG9jay0+c3VjY2Vzc29yQmxvY2soMSkgIT0gY29kZS5maW5kTmV4dEJsb2NrKGJsb2NrKSkK
LSAgICAgICAgICAgICAgICBsaW5rKGppdC5qdW1wKCksIGJsb2NrLT5zdWNjZXNzb3JCbG9jaygx
KSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIFJF
TEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Ly8gVGhlIGp1bXAgd29uJ3QgYmUgc2V0IGZvciBwYXRjaHBvaW50cy4gSXQgd29uJ3QgYmUgc2V0
IGZvciBPb3BzIGJlY2F1c2UgdGhlbiBpdCB3b24ndCBoYXZlCisgICAgICAgIC8vIGFueSBzdWNj
ZXNzb3JzLgorICAgICAgICBpZiAoanVtcC5pc1NldCgpKSB7CisgICAgICAgICAgICBzd2l0Y2gg
KGJsb2NrLT5udW1TdWNjZXNzb3JzKCkpIHsKKyAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAg
ICAgICAgICBsaW5rKGp1bXAsIGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKSk7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICAgICAgbGluayhq
dW1wLCBibG9jay0+c3VjY2Vzc29yQmxvY2soMCkpOworICAgICAgICAgICAgICAgIGlmIChibG9j
ay0+c3VjY2Vzc29yQmxvY2soMSkgIT0gY29kZS5maW5kTmV4dEJsb2NrKGJsb2NrKSkKKyAgICAg
ICAgICAgICAgICAgICAgbGluayhqaXQuanVtcCgpLCBibG9jay0+c3VjY2Vzc29yQmxvY2soMSkp
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAg
ICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGFkZEl0ZW0oYmxvY2stPmxh
c3QoKSk7CiAgICAgfQorICAgIAorICAgIGNvbnRleHQuY3VycmVudEJsb2NrID0gbnVsbHB0cjsK
KyAgICBjb250ZXh0LmluZGV4SW5CbG9jayA9IFVJTlRfTUFYOwogCiAgICAgcGNUb09yaWdpbk1h
cC5hcHBlbmRJdGVtKGppdC5sYWJlbCgpLCBPcmlnaW4oKSk7CiAgICAgLy8gRklYTUU6IE1ha2Ug
bGF0ZSBwYXRocyBoYXZlIE9yaWdpbnM6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNTM2ODkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2Vu
ZXJhdGlvbkNvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
YWlyL0FpckdlbmVyYXRpb25Db250ZXh0LmgJKHJldmlzaW9uIDIwMjgwOSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGlvbkNvbnRleHQuaAkod29ya2luZyBjb3B5
KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0yOCwxNCArMjgsMTQgQEAKIAogI2lmIEVOQUJMRShCM19KSVQpCiAKKyNpbmNsdWRlICJBaXJC
YXNpY0Jsb2NrLmgiCisjaW5jbHVkZSAiQjNJbmRleE1hcC5oIgorI2luY2x1ZGUgIkNDYWxsSGVs
cGVycy5oIgorI2luY2x1ZGUgPHd0Zi9Cb3guaD4KICNpbmNsdWRlIDx3dGYvU2hhcmVkVGFzay5o
PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAotbmFtZXNwYWNlIEpTQyB7Ci0KLWNsYXNzIEND
YWxsSGVscGVyczsKLQotbmFtZXNwYWNlIEIzIHsgbmFtZXNwYWNlIEFpciB7CituYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIEIzIHsgbmFtZXNwYWNlIEFpciB7CiAKIGNsYXNzIENvZGU7CiAKQEAg
LTQ0LDcgKzQ0LDEwIEBAIHN0cnVjdCBHZW5lcmF0aW9uQ29udGV4dCB7CiAgICAgdHlwZWRlZiBT
aGFyZWRUYXNrPExhdGVQYXRoRnVuY3Rpb24+IExhdGVQYXRoOwogCiAgICAgVmVjdG9yPFJlZlB0
cjxMYXRlUGF0aD4+IGxhdGVQYXRoczsKLSAgICBDb2RlKiBjb2RlOworICAgIEluZGV4TWFwPEJh
c2ljQmxvY2ssIEJveDxDQ2FsbEhlbHBlcnM6OkxhYmVsPj4gYmxvY2tMYWJlbHM7CisgICAgQmFz
aWNCbG9jayogY3VycmVudEJsb2NrIHsgbnVsbHB0ciB9OworICAgIHVuc2lnbmVkIGluZGV4SW5C
bG9jayB7IFVJTlRfTUFYIH07CisgICAgQ29kZSogY29kZSB7IG51bGxwdHIgfTsKIH07CiAKIH0g
fSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzOjpBaXIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvQWlySW5zdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlySW5zdC5oCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL0Fpckluc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMTYzLDYgKzE2Myw5IEBAIHB1
YmxpYzoKICAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IG9wY29kZV9n
ZW5lcmF0b3IucmIuCiAgICAgYm9vbCBhZG1pdHNTdGFjayh1bnNpZ25lZCBhcmdJbmRleCk7CiAg
ICAgYm9vbCBhZG1pdHNTdGFjayhBcmcmKTsKKyAgICAKKyAgICAvLyBEZWZpbmVkIGJ5IG9wY29k
ZV9nZW5lcmF0b3IucmIuCisgICAgYm9vbCBpc1Rlcm1pbmFsKCk7CiAKICAgICAvLyBSZXR1cm5z
IHRydWUgaWYgdGhpcyBpbnN0cnVjdGlvbiBjYW4gaGF2ZSBhbnkgZWZmZWN0cyBvdGhlciB0aGFu
IGNvbnRyb2wgZmxvdyBvciBhcmd1bWVudHMuCiAgICAgYm9vbCBoYXNOb25BcmdOb25Db250cm9s
RWZmZWN0cygpOwpAQCAtMTc0LDYgKzE3Nyw5IEBAIHB1YmxpYzoKIAogICAgIC8vIFRlbGxzIHlv
dSBpZiB0aGlzIG9wZXJhdGlvbiBoYXMgYXJnIGVmZmVjdHMuCiAgICAgYm9vbCBoYXNBcmdFZmZl
Y3RzKCk7CisgICAgCisgICAgLy8gVGVsbHMgeW91IGlmIHRoaXMgb3BlcmF0aW9uIGhhcyBub24t
Y29udHJvbCBlZmZlY3RzLgorICAgIGJvb2wgaGFzTm9uQ29udHJvbEVmZmVjdHMoKSB7IHJldHVy
biBoYXNOb25BcmdOb25Db250cm9sRWZmZWN0cygpIHx8IGhhc0FyZ0VmZmVjdHMoKTsgfQogCiAg
ICAgLy8gR2VuZXJhdGUgc29tZSBjb2RlIGZvciB0aGlzIGluc3RydWN0aW9uLiBUaGlzIGlzLCBs
aWtlLCBsaXRlcmFsbHkgb3VyIGJhY2tlbmQuIElmIHRoaXMgaXMgdGhlCiAgICAgLy8gdGVybWlu
YWwsIGl0IHJldHVybnMgdGhlIGp1bXAgdGhhdCBuZWVkcyB0byBiZSBsaW5rZWQgZm9yIHRoZSAi
dGhlbiIgY2FzZSwgd2l0aCB0aGUgImVsc2UiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvYWlyL0FpclNpbXBsaWZ5Q0ZHLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvYWlyL0FpclNpbXBsaWZ5Q0ZHLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJTaW1wbGlmeUNGRy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTk1LDMzICs5NSwzMiBAQCBib29sIHNpbXBsaWZ5Q0ZHKENvZGUmIGNvZGUpCiAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAvLyBOb3cgY2hlY2sg
aWYgdGhlIGJsb2NrJ3MgdGVybWluYWwgY2FuIGJlIHJlcGxhY2VkIHdpdGggYSBqdW1wLgotICAg
ICAgICAgICAgaWYgKGJsb2NrLT5udW1TdWNjZXNzb3JzKCkgPiAxKSB7Ci0gICAgICAgICAgICAg
ICAgLy8gVGhlIHRlcm1pbmFsIG11c3Qgbm90IGhhdmUgd2VpcmQgZWZmZWN0cy4KLSAgICAgICAg
ICAgICAgICBpZiAoIWJsb2NrLT5sYXN0KCkuaGFzQXJnRWZmZWN0cygpCi0gICAgICAgICAgICAg
ICAgICAgICYmICFibG9jay0+bGFzdCgpLmhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKCkpIHsK
LSAgICAgICAgICAgICAgICAgICAgLy8gQWxsIG9mIHRoZSBzdWNjZXNzb3JzIG11c3QgYmUgdGhl
IHNhbWUuCi0gICAgICAgICAgICAgICAgICAgIGJvb2wgYWxsU2FtZSA9IHRydWU7Ci0gICAgICAg
ICAgICAgICAgICAgIEJhc2ljQmxvY2sqIGZpcnN0U3VjY2Vzc29yID0gYmxvY2stPnN1Y2Nlc3Nv
ckJsb2NrKDApOwotICAgICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAxOyBpIDwg
YmxvY2stPm51bVN1Y2Nlc3NvcnMoKTsgKytpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoYmxvY2stPnN1Y2Nlc3NvckJsb2NrKGkpICE9IGZpcnN0U3VjY2Vzc29yKSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYWxsU2FtZSA9IGZhbHNlOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGlmIChhbGxTYW1lKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
YXRhTG9nKCJDaGFuZ2luZyAiLCBwb2ludGVyRHVtcChibG9jayksICIncyB0ZXJtaW5hbCB0byBh
IEp1bXAuXG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLT5sYXN0KCkgPSBJbnN0
KEp1bXAsIGJsb2NrLT5sYXN0KCkub3JpZ2luKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJs
b2NrLT5zdWNjZXNzb3JzKCkucmVzaXplKDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgYmxv
Y2stPnN1Y2Nlc3NvcnMoKVswXS5mcmVxdWVuY3koKSA9IEZyZXF1ZW5jeUNsYXNzOjpOb3JtYWw7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAgICAgIC8v
IE5vdyBjaGVjayBpZiB0aGUgYmxvY2sncyB0ZXJtaW5hbCBjYW4gYmUgcmVwbGFjZWQgd2l0aCBh
IGp1bXAuIFRoZSB0ZXJtaW5hbCBtdXN0IG5vdAorICAgICAgICAgICAgLy8gaGF2ZSB3ZWlyZCBl
ZmZlY3RzLgorICAgICAgICAgICAgaWYgKGJsb2NrLT5udW1TdWNjZXNzb3JzKCkgPiAxIAorICAg
ICAgICAgICAgICAgICYmICFibG9jay0+bGFzdCgpLmhhc05vbkNvbnRyb2xFZmZlY3RzKCkpIHsK
KyAgICAgICAgICAgICAgICAvLyBBbGwgb2YgdGhlIHN1Y2Nlc3NvcnMgbXVzdCBiZSB0aGUgc2Ft
ZS4KKyAgICAgICAgICAgICAgICBib29sIGFsbFNhbWUgPSB0cnVlOworICAgICAgICAgICAgICAg
IEJhc2ljQmxvY2sqIGZpcnN0U3VjY2Vzc29yID0gYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDApOwor
ICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDE7IGkgPCBibG9jay0+bnVtU3VjY2Vz
c29ycygpOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGJsb2NrLT5zdWNjZXNzb3JC
bG9jayhpKSAhPSBmaXJzdFN1Y2Nlc3NvcikgeworICAgICAgICAgICAgICAgICAgICAgICAgYWxs
U2FtZSA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKGFsbFNh
bWUpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAg
ICAgICAgICBkYXRhTG9nKCJDaGFuZ2luZyAiLCBwb2ludGVyRHVtcChibG9jayksICIncyB0ZXJt
aW5hbCB0byBhIEp1bXAuXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgYmxvY2stPmxhc3QoKSA9
IEluc3QoSnVtcCwgYmxvY2stPmxhc3QoKS5vcmlnaW4pOworICAgICAgICAgICAgICAgICAgICBi
bG9jay0+c3VjY2Vzc29ycygpLnJlc2l6ZSgxKTsKKyAgICAgICAgICAgICAgICAgICAgYmxvY2st
PnN1Y2Nlc3NvcnMoKVswXS5mcmVxdWVuY3koKSA9IEZyZXF1ZW5jeUNsYXNzOjpOb3JtYWw7Cisg
ICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIH0KIAogICAgICAgICAgICAgLy8gRmluYWxseSBoYW5kbGUganVtcHMgdG8gYSBi
bG9jayB3aXRoIG9uZSBwcmVkZWNlc3Nvci4KLSAgICAgICAgICAgIGlmIChibG9jay0+bnVtU3Vj
Y2Vzc29ycygpID09IDEpIHsKKyAgICAgICAgICAgIGlmIChibG9jay0+bnVtU3VjY2Vzc29ycygp
ID09IDEKKyAgICAgICAgICAgICAgICAmJiAhYmxvY2stPmxhc3QoKS5oYXNOb25Db250cm9sRWZm
ZWN0cygpKSB7CiAgICAgICAgICAgICAgICAgQmFzaWNCbG9jayogc3VjY2Vzc29yID0gYmxvY2st
PnN1Y2Nlc3NvckJsb2NrKDApOwogICAgICAgICAgICAgICAgIGlmIChzdWNjZXNzb3IgIT0gYmxv
Y2sgJiYgc3VjY2Vzc29yLT5udW1QcmVkZWNlc3NvcnMoKSA9PSAxKSB7CiAgICAgICAgICAgICAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUKHN1Y2Nlc3Nvci0+cHJlZGVjZXNzb3IoMCkgPT0gYmxvY2sp
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJTcGVjaWFsLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclNwZWNpYWwuY3BwCShy
ZXZpc2lvbiAyMDI4MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclNwZWNp
YWwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTU1LDcgKzU1LDEyIEBAIE9wdGlvbmFsPHVuc2lnbmVkPiBT
cGVjaWFsOjpzaG91bGRUcnlBbGkKICAgICByZXR1cm4gTnVsbG9wdDsKIH0KIAotYm9vbCBTcGVj
aWFsOjpoYXNOb25BcmdOb25Db250cm9sRWZmZWN0cygpCitib29sIFNwZWNpYWw6OmlzVGVybWlu
YWwoSW5zdCYpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFNwZWNpYWw6Omhhc05v
bkFyZ05vbkNvbnRyb2xFZmZlY3RzKEluc3QmKQogewogICAgIHJldHVybiB0cnVlOwogfQpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJTcGVjaWFsLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJTcGVjaWFsLmgJKHJldmlzaW9uIDIw
MjgwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyU3BlY2lhbC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTg3LDkgKzg3LDEyIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgY29uc3QgUmVn
aXN0ZXJTZXQmIGV4dHJhRWFybHlDbG9iYmVyZWRSZWdzKEluc3QmKSA9IDA7CiAgICAgdmlydHVh
bCBjb25zdCBSZWdpc3RlclNldCYgZXh0cmFDbG9iYmVyZWRSZWdzKEluc3QmKSA9IDA7CisgICAg
CisgICAgLy8gQnkgZGVmYXVsdCwgdGhpcyByZXR1cm5zIGZhbHNlLgorICAgIHZpcnR1YWwgYm9v
bCBpc1Rlcm1pbmFsKEluc3QmKTsKIAogICAgIC8vIEJ5IGRlZmF1bHQsIHRoaXMgcmV0dXJucyB0
cnVlLgotICAgIHZpcnR1YWwgYm9vbCBoYXNOb25BcmdOb25Db250cm9sRWZmZWN0cygpOworICAg
IHZpcnR1YWwgYm9vbCBoYXNOb25BcmdOb25Db250cm9sRWZmZWN0cyhJbnN0Jik7CiAKICAgICB2
b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKICAgICB2b2lkIGRlZXBEdW1wKFByaW50U3Ry
ZWFtJikgY29uc3Q7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclZhbGlk
YXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclZh
bGlkYXRlLmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L2Fpci9BaXJWYWxpZGF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNzksOSArNzksOSBAQCBwdWJsaWM6
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIFZBTElEQVRFKGluc3QuaXNWYWxp
ZEZvcm0oKSwgKCJBdCAiLCBpbnN0LCAiIGluICIsICpibG9jaykpOwogICAgICAgICAgICAgICAg
IGlmIChpbnN0SW5kZXggPT0gYmxvY2stPnNpemUoKSAtIDEpCi0gICAgICAgICAgICAgICAgICAg
IFZBTElEQVRFKGlzVGVybWluYWwoaW5zdC5vcGNvZGUpLCAoIkF0ICIsIGluc3QsICIgaW4gIiwg
KmJsb2NrKSk7CisgICAgICAgICAgICAgICAgICAgIFZBTElEQVRFKGluc3QuaXNUZXJtaW5hbCgp
LCAoIkF0ICIsIGluc3QsICIgaW4gIiwgKmJsb2NrKSk7CiAgICAgICAgICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgICAgICAgICBWQUxJREFURSghaXNUZXJtaW5hbChpbnN0Lm9wY29kZSksICgi
QXQgIiwgaW5zdCwgIiBpbiAiLCAqYmxvY2spKTsKKyAgICAgICAgICAgICAgICAgICAgVkFMSURB
VEUoIWluc3QuaXNUZXJtaW5hbCgpLCAoIkF0ICIsIGluc3QsICIgaW4gIiwgKmJsb2NrKSk7CiAK
ICAgICAgICAgICAgICAgICAvLyBmb3JFYWNoQXJnIG11c3QgcmV0dXJuIEFyZyYncyB0aGF0IHBv
aW50IGludG8gdGhlIGFyZ3MgYXJyYXkuCiAgICAgICAgICAgICAgICAgaW5zdC5mb3JFYWNoQXJn
KApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9vcGNvZGVfZ2VuZXJhdG9yLnJi
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvb3Bjb2RlX2dlbmVy
YXRvci5yYgkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fp
ci9vcGNvZGVfZ2VuZXJhdG9yLnJiCSh3b3JraW5nIGNvcHkpCkBAIC03MTQsNyArNzE0LDcgQEAg
d3JpdGVIKCJPcGNvZGVVdGlscyIpIHsKICAgICBvdXRwLnB1dHMgInJldHVybiBmYWxzZTsgIgog
ICAgIG91dHAucHV0cyAifSIKIAotICAgIG91dHAucHV0cyAiaW5saW5lIGJvb2wgaXNUZXJtaW5h
bChPcGNvZGUgb3Bjb2RlKSIKKyAgICBvdXRwLnB1dHMgImlubGluZSBib29sIGlzRGVmaW5pdGVs
eVRlcm1pbmFsKE9wY29kZSBvcGNvZGUpIgogICAgIG91dHAucHV0cyAieyIKICAgICBvdXRwLnB1
dHMgInN3aXRjaCAob3Bjb2RlKSB7IgogICAgIGRpZEZpbmRUZXJtaW5hbHMgPSBmYWxzZQpAQCAt
OTc2LDYgKzk3NiwzMiBAQCB3cml0ZUgoIk9wY29kZUdlbmVyYXRlZCIpIHsKICAgICBvdXRwLnB1
dHMgInJldHVybiBmYWxzZTsiCiAgICAgb3V0cC5wdXRzICJ9IgogCisgICAgb3V0cC5wdXRzICJi
b29sIEluc3Q6OmlzVGVybWluYWwoKSIKKyAgICBvdXRwLnB1dHMgInsiCisgICAgb3V0cC5wdXRz
ICJzd2l0Y2ggKG9wY29kZSkgeyIKKyAgICBmb3VuZFRydWUgPSBmYWxzZQorICAgICRvcGNvZGVz
LnZhbHVlcy5lYWNoIHsKKyAgICAgICAgfCBvcGNvZGUgfAorICAgICAgICBpZiBvcGNvZGUuYXR0
cmlidXRlc1s6dGVybWluYWxdCisgICAgICAgICAgICBvdXRwLnB1dHMgImNhc2UgI3tvcGNvZGUu
bmFtZX06IgorICAgICAgICAgICAgZm91bmRUcnVlID0gdHJ1ZQorICAgICAgICBlbmQKKyAgICB9
CisgICAgaWYgZm91bmRUcnVlCisgICAgICAgIG91dHAucHV0cyAicmV0dXJuIHRydWU7IgorICAg
IGVuZAorICAgICRvcGNvZGVzLnZhbHVlcy5lYWNoIHsKKyAgICAgICAgfCBvcGNvZGUgfAorICAg
ICAgICBpZiBvcGNvZGUuY3VzdG9tCisgICAgICAgICAgICBvdXRwLnB1dHMgImNhc2UgI3tvcGNv
ZGUubmFtZX06IgorICAgICAgICAgICAgb3V0cC5wdXRzICJyZXR1cm4gI3tvcGNvZGUubmFtZX1D
dXN0b206OmlzVGVybWluYWwoKnRoaXMpOyIKKyAgICAgICAgZW5kCisgICAgfQorICAgIG91dHAu
cHV0cyAiZGVmYXVsdDoiCisgICAgb3V0cC5wdXRzICJyZXR1cm4gZmFsc2U7IgorICAgIG91dHAu
cHV0cyAifSIKKyAgICBvdXRwLnB1dHMgIn0iCisgICAgCiAgICAgb3V0cC5wdXRzICJib29sIElu
c3Q6Omhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKCkiCiAgICAgb3V0cC5wdXRzICJ7IgogICAg
IG91dHAucHV0cyAic3dpdGNoIChvcGNvZGUpIHsiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCShyZXZpc2lvbiAyMDI4MDkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMwLDcgKzMwLDExIEBACiAKICNpbmNsdWRlICJBaXJHZW5lcmF0aW9uQ29udGV4dC5oIgog
I2luY2x1ZGUgIkFsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZS5oIgorI2luY2x1ZGUgIkIz
Q2hlY2tWYWx1ZS5oIgorI2luY2x1ZGUgIkIzUGF0Y2hwb2ludFZhbHVlLmgiCisjaW5jbHVkZSAi
QjNTbG90QmFzZVZhbHVlLmgiCiAjaW5jbHVkZSAiQjNTdGFja21hcEdlbmVyYXRpb25QYXJhbXMu
aCIKKyNpbmNsdWRlICJCM1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIkNhbGxGcmFtZVNodWZm
bGVyLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrV2l0aEpJVFR5cGUuaCIKICNpbmNsdWRlICJERkdB
YnN0cmFjdEludGVycHJldGVySW5saW5lcy5oIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExPdXRwdXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMT3V0cHV0LmNwcAkocmV2aXNpb24gMjAyODA5KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExPdXRwdXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw4ICsyOCwxOCBAQAog
CiAjaWYgRU5BQkxFKEZUTF9KSVQpCiAKKyNpbmNsdWRlICJCM0FyZ3VtZW50UmVnVmFsdWUuaCIK
KyNpbmNsdWRlICJCM0Jhc2ljQmxvY2tJbmxpbmVzLmgiCisjaW5jbHVkZSAiQjNDQ2FsbFZhbHVl
LmgiCisjaW5jbHVkZSAiQjNDb25zdDMyVmFsdWUuaCIKKyNpbmNsdWRlICJCM0NvbnN0UHRyVmFs
dWUuaCIKICNpbmNsdWRlICJCM01hdGhFeHRyYXMuaCIKKyNpbmNsdWRlICJCM01lbW9yeVZhbHVl
LmgiCisjaW5jbHVkZSAiQjNTbG90QmFzZVZhbHVlLmgiCiAjaW5jbHVkZSAiQjNTdGFja21hcEdl
bmVyYXRpb25QYXJhbXMuaCIKKyNpbmNsdWRlICJCM1N3aXRjaFZhbHVlLmgiCisjaW5jbHVkZSAi
QjNVcHNpbG9uVmFsdWUuaCIKKyNpbmNsdWRlICJCM1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUg
IlN1cGVyU2FtcGxlci5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CkBAIC01
NzgsMTIgKzU4OCwxMiBAQCBMVmFsdWUgT3V0cHV0OjpzZWxlY3QoTFZhbHVlIHZhbHVlLCBMVmFs
CiAKIHZvaWQgT3V0cHV0OjpqdW1wKExCYXNpY0Jsb2NrIGRlc3RpbmF0aW9uKQogewotICAgIG1f
YmxvY2stPmFwcGVuZE5ldzxCMzo6Q29udHJvbFZhbHVlPihtX3Byb2MsIEIzOjpKdW1wLCBvcmln
aW4oKSwgQjM6OkZyZXF1ZW50ZWRCbG9jayhkZXN0aW5hdGlvbikpOworICAgIG1fYmxvY2stPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShtX3Byb2MsIEIzOjpKdW1wLCBvcmlnaW4oKSwgQjM6OkZyZXF1
ZW50ZWRCbG9jayhkZXN0aW5hdGlvbikpOwogfQogCiB2b2lkIE91dHB1dDo6YnJhbmNoKExWYWx1
ZSBjb25kaXRpb24sIExCYXNpY0Jsb2NrIHRha2VuLCBXZWlnaHQgdGFrZW5XZWlnaHQsIExCYXNp
Y0Jsb2NrIG5vdFRha2VuLCBXZWlnaHQgbm90VGFrZW5XZWlnaHQpCiB7Ci0gICAgbV9ibG9jay0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgbV9ibG9jay0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBtX3Byb2MsIEIzOjpCcmFuY2gsIG9yaWdpbigpLCBjb25kaXRpb24sCiAg
ICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0YWtlbiwgdGFrZW5XZWlnaHQuZnJlcXVlbmN5Q2xhc3Mo
KSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhub3RUYWtlbiwgbm90VGFrZW5XZWlnaHQuZnJl
cXVlbmN5Q2xhc3MoKSkpOwpAQCAtNjAzLDEyICs2MTMsMTIgQEAgdm9pZCBPdXRwdXQ6OmNoZWNr
KExWYWx1ZSBjb25kaXRpb24sIFdlaQogCiB2b2lkIE91dHB1dDo6cmV0KExWYWx1ZSB2YWx1ZSkK
IHsKLSAgICBtX2Jsb2NrLT5hcHBlbmROZXc8QjM6OkNvbnRyb2xWYWx1ZT4obV9wcm9jLCBCMzo6
UmV0dXJuLCBvcmlnaW4oKSwgdmFsdWUpOworICAgIG1fYmxvY2stPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShtX3Byb2MsIEIzOjpSZXR1cm4sIG9yaWdpbigpLCB2YWx1ZSk7CiB9CiAKIHZvaWQgT3V0
cHV0Ojp1bnJlYWNoYWJsZSgpCiB7Ci0gICAgbV9ibG9jay0+YXBwZW5kTmV3PEIzOjpDb250cm9s
VmFsdWU+KG1fcHJvYywgQjM6Ok9vcHMsIG9yaWdpbigpKTsKKyAgICBtX2Jsb2NrLT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUobV9wcm9jLCBCMzo6T29wcywgb3JpZ2luKCkpOwogfQogCiBDaGVja1Zh
bHVlKiBPdXRwdXQ6OnNwZWN1bGF0ZShMVmFsdWUgdmFsdWUpCkBAIC02MzgsNyArNjQ4LDcgQEAg
UGF0Y2hwb2ludFZhbHVlKiBPdXRwdXQ6OnBhdGNocG9pbnQoTFR5cAogCiB2b2lkIE91dHB1dDo6
dHJhcCgpCiB7Ci0gICAgbV9ibG9jay0+YXBwZW5kTmV3PEIzOjpDb250cm9sVmFsdWU+KG1fcHJv
YywgQjM6Ok9vcHMsIG9yaWdpbigpKTsKKyAgICBtX2Jsb2NrLT5hcHBlbmROZXdDb250cm9sVmFs
dWUobV9wcm9jLCBCMzo6T29wcywgb3JpZ2luKCkpOwogfQogCiBWYWx1ZUZyb21CbG9jayBPdXRw
dXQ6OmFuY2hvcihMVmFsdWUgdmFsdWUpCkBAIC03MjksNiArNzM5LDExIEBAIHZvaWQgT3V0cHV0
OjpkZWNyZW1lbnRTdXBlclNhbXBsZXJDb3VudCgKICAgICBzdG9yZTMyKHN1Yihsb2FkMzIoY291
bnRlciksIGludDMyT25lKSwgY291bnRlcik7CiB9CiAKK3ZvaWQgT3V0cHV0OjphZGRJbmNvbWlu
Z1RvUGhpKExWYWx1ZSBwaGksIFZhbHVlRnJvbUJsb2NrIHZhbHVlKQoreworICAgIHZhbHVlLnZh
bHVlKCktPmFzPEIzOjpVcHNpbG9uVmFsdWU+KCktPnNldFBoaShwaGkpOworfQorCiB9IH0gLy8g
bmFtZXNwYWNlIEpTQzo6RlRMCiAKICNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuaAkocmV2aXNpb24gMjAyODA5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPdXRwdXQuaAkod29ya2luZyBjb3B5KQpAQCAtMzAs
MTkgKzMwLDEyIEBACiAKICNpZiBFTkFCTEUoRlRMX0pJVCkKIAotI2luY2x1ZGUgIkIzQXJndW1l
bnRSZWdWYWx1ZS5oIgogI2luY2x1ZGUgIkIzQmFzaWNCbG9ja0lubGluZXMuaCIKICNpbmNsdWRl
ICJCM0NDYWxsVmFsdWUuaCIKICNpbmNsdWRlICJCM0NvbXBpbGF0aW9uLmgiCi0jaW5jbHVkZSAi
QjNDb25zdDMyVmFsdWUuaCIKLSNpbmNsdWRlICJCM0NvbnN0UHRyVmFsdWUuaCIKLSNpbmNsdWRl
ICJCM0NvbnRyb2xWYWx1ZS5oIgotI2luY2x1ZGUgIkIzTWVtb3J5VmFsdWUuaCIKKyNpbmNsdWRl
ICJCM0ZyZXF1ZW50ZWRCbG9jay5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJlLmgiCi0jaW5jbHVk
ZSAiQjNTbG90QmFzZVZhbHVlLmgiCiAjaW5jbHVkZSAiQjNTd2l0Y2hWYWx1ZS5oIgotI2luY2x1
ZGUgIkIzVXBzaWxvblZhbHVlLmgiCi0jaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKICNpbmNs
dWRlICJGVExBYmJyZXZpYXRlZFR5cGVzLmgiCiAjaW5jbHVkZSAiRlRMQWJzdHJhY3RIZWFwUmVw
b3NpdG9yeS5oIgogI2luY2x1ZGUgIkZUTENvbW1vblZhbHVlcy5oIgpAQCAtNjQsNyArNTcsMTMg
QEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLW5hbWVzcGFjZSBERkcgeyBzdHJ1Y3QgTm9kZTsgfQor
bmFtZXNwYWNlIERGRyB7CitzdHJ1Y3QgTm9kZTsKK30gLy8gbmFtZXNwYWNlIERGRworCituYW1l
c3BhY2UgQjMgeworY2xhc3MgU2xvdEJhc2VWYWx1ZTsKK30gLy8gbmFtZXNwYWNlIEIzCiAKIG5h
bWVzcGFjZSBGVEwgewogCkBAIC0xMDYsOSArMTA1LDE5IEBAIHB1YmxpYzoKICAgICBMVmFsdWUg
Y29uc3RCb29sKGJvb2wgdmFsdWUpOwogICAgIExWYWx1ZSBjb25zdEludDMyKGludDMyX3QgdmFs
dWUpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci0gICAgTFZhbHVlIGNvbnN0SW50UHRyKFQq
IHZhbHVlKSB7IHJldHVybiBtX2Jsb2NrLT5hcHBlbmROZXc8QjM6OkNvbnN0UHRyVmFsdWU+KG1f
cHJvYywgb3JpZ2luKCksIHZhbHVlKTsgfQorICAgIExWYWx1ZSBjb25zdEludFB0cihUKiB2YWx1
ZSkKKyAgICB7CisgICAgICAgIGlmIChzaXplb2Yodm9pZCopID09IDgpCisgICAgICAgICAgICBy
ZXR1cm4gY29uc3RJbnQ2NChiaXR3aXNlX2Nhc3Q8aW50cHRyX3Q+KHZhbHVlKSk7CisgICAgICAg
IHJldHVybiBjb25zdEludDMyKGJpdHdpc2VfY2FzdDxpbnRwdHJfdD4odmFsdWUpKTsKKyAgICB9
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KLSAgICBMVmFsdWUgY29uc3RJbnRQdHIoVCB2YWx1
ZSkgeyByZXR1cm4gbV9ibG9jay0+YXBwZW5kTmV3PEIzOjpDb25zdFB0clZhbHVlPihtX3Byb2Ms
IG9yaWdpbigpLCB2YWx1ZSk7IH0KKyAgICBMVmFsdWUgY29uc3RJbnRQdHIoVCB2YWx1ZSkKKyAg
ICB7CisgICAgICAgIGlmIChzaXplb2Yodm9pZCopID09IDgpCisgICAgICAgICAgICByZXR1cm4g
Y29uc3RJbnQ2NChzdGF0aWNfY2FzdDxpbnRwdHJfdD4odmFsdWUpKTsKKyAgICAgICAgcmV0dXJu
IGNvbnN0SW50MzIoc3RhdGljX2Nhc3Q8aW50cHRyX3Q+KHZhbHVlKSk7CisgICAgfQogICAgIExW
YWx1ZSBjb25zdEludDY0KGludDY0X3QgdmFsdWUpOwogICAgIExWYWx1ZSBjb25zdERvdWJsZShk
b3VibGUgdmFsdWUpOwogCkBAIC0zNTQsOCArMzYzLDcgQEAgcHVibGljOgogICAgIExWYWx1ZSBj
YWxsV2l0aG91dFNpZGVFZmZlY3RzKEIzOjpUeXBlIHR5cGUsIEZ1bmN0aW9uIGZ1bmN0aW9uLCBM
VmFsdWUgYXJnMSwgQXJncy4uLiBhcmdzKQogICAgIHsKICAgICAgICAgcmV0dXJuIG1fYmxvY2st
PmFwcGVuZE5ldzxCMzo6Q0NhbGxWYWx1ZT4obV9wcm9jLCB0eXBlLCBvcmlnaW4oKSwgQjM6OkVm
ZmVjdHM6Om5vbmUoKSwKLSAgICAgICAgICAgIG1fYmxvY2stPmFwcGVuZE5ldzxCMzo6Q29uc3RQ
dHJWYWx1ZT4obV9wcm9jLCBvcmlnaW4oKSwgYml0d2lzZV9jYXN0PHZvaWQqPihmdW5jdGlvbikp
LAotICAgICAgICAgICAgYXJnMSwgYXJncy4uLik7CisgICAgICAgICAgICBjb25zdEludFB0cihi
aXR3aXNlX2Nhc3Q8dm9pZCo+KGZ1bmN0aW9uKSksIGFyZzEsIGFyZ3MuLi4pOwogICAgIH0KIAog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0aW9uVHlwZT4KQEAgLTM3OCw4ICszODYsOCBAQCBw
dWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVmVjdG9yVHlwZT4KICAgICB2b2lkIHN3aXRj
aEluc3RydWN0aW9uKExWYWx1ZSB2YWx1ZSwgY29uc3QgVmVjdG9yVHlwZSYgY2FzZXMsIExCYXNp
Y0Jsb2NrIGZhbGxUaHJvdWdoLCBXZWlnaHQgZmFsbFRocm91Z2hXZWlnaHQpCiAgICAgewotICAg
ICAgICBCMzo6U3dpdGNoVmFsdWUqIHN3aXRjaFZhbHVlID0gbV9ibG9jay0+YXBwZW5kTmV3PEIz
OjpTd2l0Y2hWYWx1ZT4oCi0gICAgICAgICAgICBtX3Byb2MsIG9yaWdpbigpLCB2YWx1ZSwgQjM6
OkZyZXF1ZW50ZWRCbG9jayhmYWxsVGhyb3VnaCkpOworICAgICAgICBCMzo6U3dpdGNoVmFsdWUq
IHN3aXRjaFZhbHVlID0gbV9ibG9jay0+YXBwZW5kTmV3PEIzOjpTd2l0Y2hWYWx1ZT4obV9wcm9j
LCBvcmlnaW4oKSwgdmFsdWUpOworICAgICAgICBzd2l0Y2hWYWx1ZS0+c2V0RmFsbFRocm91Z2go
QjM6OkZyZXF1ZW50ZWRCbG9jayhmYWxsVGhyb3VnaCkpOwogICAgICAgICBmb3IgKGNvbnN0IFN3
aXRjaENhc2UmIHN3aXRjaENhc2UgOiBjYXNlcykgewogICAgICAgICAgICAgaW50NjRfdCB2YWx1
ZSA9IHN3aXRjaENhc2UudmFsdWUoKS0+YXNJbnQoKTsKICAgICAgICAgICAgIEIzOjpGcmVxdWVu
dGVkQmxvY2sgdGFyZ2V0KHN3aXRjaENhc2UudGFyZ2V0KCksIHN3aXRjaENhc2Uud2VpZ2h0KCku
ZnJlcXVlbmN5Q2xhc3MoKSk7CkBAIC00MzksMTEgKzQ0Nyw2IEBAIGlubGluZSBMVmFsdWUgT3V0
cHV0OjpwaGkoTFR5cGUgdHlwZSwgY28KICAgICByZXR1cm4gcGhpTm9kZTsKIH0KIAotaW5saW5l
IHZvaWQgT3V0cHV0OjphZGRJbmNvbWluZ1RvUGhpKExWYWx1ZSBwaGksIFZhbHVlRnJvbUJsb2Nr
IHZhbHVlKQotewotICAgIHZhbHVlLnZhbHVlKCktPmFzPEIzOjpVcHNpbG9uVmFsdWU+KCktPnNl
dFBoaShwaGkpOwotfQotCiB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBQYXJhbXM+CiBpbmxpbmUgdm9p
ZCBPdXRwdXQ6OmFkZEluY29taW5nVG9QaGkoTFZhbHVlIHBoaSwgVmFsdWVGcm9tQmxvY2sgdmFs
dWUsIFBhcmFtcy4uLiB0aGVSZXN0KQogewpJbmRleDogV2Vic2l0ZXMvd2Via2l0Lm9yZy9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2Vic2l0ZXMvd2Via2l0Lm9yZy9DaGFuZ2VMb2cJKHJldmlz
aW9uIDIwMjgwOSkKKysrIFdlYnNpdGVzL3dlYmtpdC5vcmcvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTYtMDUtMjkgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFw
cGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgdGFibGUtYmFzZWQgc3dpdGNoZXMgaW4gQjMv
QWlyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTEx
NDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAg
ICAgIFVwZGF0ZSBkb2N1bWVudGF0aW9uIHRvIHJlZmxlY3QgUGF0Y2hwb2ludCdzIG5ldyBwb3dl
cnMuCisKKyAgICAgICAgKiBkb2NzL2IzL2ludGVybWVkaWF0ZS1yZXByZXNlbnRhdGlvbi5odG1s
OgorCiAyMDE2LTA3LTAxICBKb24gRGF2aXMgIDxqb25kQGFwcGxlLmNvbT4KIAogICAgICAgICBB
ZGRlZCBhIGNvbG9yZnVsIG5ldyBpbWFnZSBhbmQgZml4ZWQgdGhlIE9wZW4gR3JhcGggYXR0cmli
dXRlLgpJbmRleDogV2Vic2l0ZXMvd2Via2l0Lm9yZy9kb2NzL2IzL2ludGVybWVkaWF0ZS1yZXBy
ZXNlbnRhdGlvbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3dlYmtpdC5vcmcvZG9jcy9i
My9pbnRlcm1lZGlhdGUtcmVwcmVzZW50YXRpb24uaHRtbAkocmV2aXNpb24gMjAyODA5KQorKysg
V2Vic2l0ZXMvd2Via2l0Lm9yZy9kb2NzL2IzL2ludGVybWVkaWF0ZS1yZXByZXNlbnRhdGlvbi5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0Myw3IEBACiAgICAgPHA+VGhlIGFjdCBvZiBj
b21waWxpbmcgdGhlIFByb2NlZHVyZSBjaGFuZ2VzIGl0IGluLXBsYWNlLCBtYWtpbmcgaXQgdW5z
dWl0YWJsZSBmb3IKICAgICAgIGNvbXBpbGluZyBhZ2Fpbi4gIEFsd2F5cyBjcmVhdGUgYSBuZXcg
UHJvY2VkdXJlIGV2ZXJ5IHRpbWUgeW91IHdhbnQgdG8gY29tcGlsZQogICAgICAgc29tZXRoaW5n
LjwvcD4KLQorICAgIAogICAgIDxoMj5UeXBlczwvaDI+CiAKICAgICA8cD5CMyBoYXMgYSB0cml2
aWFsIHR5cGUgc3lzdGVtIHdpdGggb25seSBmaXZlIHR5cGVzOjwvcD4KQEAgLTEzMCw4ICsxMzAs
MTUgQEAKICAgICA8aDI+Q29udHJvbCBmbG93PC9oMj4KIAogICAgIDxwPkIzIHJlcHJlc2VudHMg
Y29udHJvbCBmbG93IHVzaW5nIGJhc2ljIGJsb2Nrcy4gIEVhY2ggYmFzaWMgYmxvY2sgbWF5IGhh
dmUgemVybyBvciBtb3JlCi0gICAgICBwcmVkZWNlc3NvcnMuICBFYWNoIGJhc2ljIGJsb2NrIG1h
eSBoYXZlIHplcm8gb3IgbW9yZSBzdWNjZXNzb3JzLiAgVGhlIHN1Y2Nlc3NvcnMgYXJlCi0gICAg
ICBjb250cm9sbGVkIGJ5IHRoZSBiYXNpYyBibG9jaydzIGxhc3QgVmFsdWUsIHdoaWNoIG11c3Qg
YmUgYSBDb250cm9sVmFsdWUgaW5zdGFuY2UuPC9wPgorICAgICAgcHJlZGVjZXNzb3JzLiAgRWFj
aCBiYXNpYyBibG9jayBtYXkgaGF2ZSB6ZXJvIG9yIG1vcmUgc3VjY2Vzc29ycy4gIFRoZSBtZWFu
aW5nIG9mIHRoZQorICAgICAgc3VjY2Vzc29ycyBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBiYXNpYyBi
bG9jaydzIGxhc3QgVmFsdWUsIHdoaWNoIG11c3QgYmUgYSB0ZXJtaW5hbC4gQQorICAgICAgdmFs
dWUgaXMgdGVybWluYWwgaWY6PC9wPgorICAgIAorICAgIDxwcmU+PGNvZGU+dmFsdWUtJmd0O2Vm
ZmVjdHMoKS50ZXJtaW5hbDwvY29kZT48L3ByZT4KKyAgICAKKyAgICA8cD5Tb21lIG9wY29kZXMg
YXJlIGRlZmluaXRlbHkgdGVybWluYWwsIGxpa2UgSnVtcCwgQnJhbmNoLCBPb3BzLCBSZXR1cm4s
IGFuZCBTd2l0Y2guIEJ1dCBhCisgICAgICB2YWx1ZSB3aXRoIHRoZSBQYXRjaHBvaW50IG9wY29k
ZSBtYXkgb3IgbWF5IG5vdCBiZSB0ZXJtaW5hbC4gSW4gZ2VuZXJhbCBpdCdzIG5lY2Vzc2FyeSB0
bworICAgICAgY2hlY2sgdGhlIDxjb2RlPnRlcm1pbmFsPC9jb2RlPiBiaXQgYXMgc2hvd24gYWJv
dmUuPC9wPgogCiAgICAgPHA+RWFjaCBiYXNpYyBibG9jayBjb250YWlucyBhIFZlY3RvciZsdDtW
YWx1ZSomZ3Q7IGFzIHRoZSBjb250ZW50cyBvZiB0aGUgYmxvY2suIENvbnRyb2wKICAgICAgIGZs
b3cgaW5zaWRlIHRoZSBibG9jayBpcyBpbXBsaWNpdCBiYXNlZCBvbiB0aGUgb3JkZXIgb2YgVmFs
dWVzIGluIHRoZSB2ZWN0b3IuPC9wPgpAQCAtNDU4LDYgKzQ2NSwxNyBAQCBwYXRjaHBvaW50LT5z
ZXRHZW5lcmF0b3IoCiAgICAgICAgICAgcGF0Y2hwb2ludCB3aWxsIHRha2Ugc29tZSBleGl0IHN0
YXRlIGFzIHBhcnQgb2YgaXRzIGFyZ3VtZW50cywgYW5kIGl0IHdpbGwgbWFuaXB1bGF0ZQogICAg
ICAgICAgIHRoZSBjYWxsIGZyYW1lIGluIHBsYWNlIHRvIG1ha2UgaXQgbG9vayBsaWtlIGFub3Ro
ZXIgZXhlY3V0aW9uIGVuZ2luZSdzIGNhbGwgZnJhbWUuCiAgICAgICAgICAgVGhpcyBpcyBjYWxs
ZWQgT1NSLCBhbmQgSmF2YVNjcmlwdENvcmUgZG9lcyBpdCBhIGxvdC48L3A+CisgICAgICAgIAor
ICAgICAgICA8cD5BIHBhdGNocG9pbnQgY2FuIGJlIHVzZWQgYXMgYSB0ZXJtaW5hbC4gU2ltcGx5
IHNldCB0aGUgPGNvZGU+dGVybWluYWw8L2NvZGU+IGJpdDo8L3A+CisgICAgICAgIAorICAgICAg
ICA8cHJlPjxjb2RlPnBhdGNocG9pbnQtJmd0O2VmZmVjdHMudGVybWluYWwgPSB0cnVlOzwvY29k
ZT48L3ByZT4KKyAgICAgICAgCisgICAgICAgIDxwPlRoZSBnZW5lcmF0b3IgY2FuIGRldGVybWlu
ZSB3aGVyZSB0byBicmFuY2ggYnkgdXNpbmcgdGhlIFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyB0
bworICAgICAgICAgIGdldCB0aGUgc2V0IG9mIGxhYmVscyBmb3IgYWxsIHN1Y2Nlc3NvcnMuIFlv
dSdyZSBndWFyYW50ZWVkIHRoYXQgdGhlIG51bWJlciBvZgorICAgICAgICAgIHN1Y2Nlc3NvcnMg
b2YgdGhlIHBhdGNocG9pbnQncyBiYXNpYyBibG9jayB3aWxsIGJlIHRoZSBzYW1lIGFzIHdoZW4g
eW91IGNyZWF0ZWQgaXQuCisgICAgICAgICAgSG93ZXZlciwgbGlrZSBhbnkgdmFsdWUsIGEgcGF0
Y2hwb2ludCBtYXkgYmUgY2xvbmVkLiBUaGlzIG1lYW5zLCBmb3IgZXhhbXBsZSwgdGhhdCBpZgor
ICAgICAgICAgIHlvdSB1c2UgdGhpcyB0byBpbXBsZW1lbnQgYSB0YWJsZSBqdW1wIHRoZW4gdGhl
IGp1bXAgdGFibGUgbXVzdCBiZSBjcmVhdGVkIGluc2lkZSB0aGUKKyAgICAgICAgICBnZW5lcmF0
b3IsIHNvIHRoYXQgeW91IGdldCBvbmUganVtcCB0YWJsZSBwZXIgY2xvbmUuPC9wPgogIAogICAg
ICAgICA8cD5NdXN0IHVzZSB0aGUgUGF0Y2hwb2ludFZhbHVlIGNsYXNzIHdpdGggdGhlIFBhdGNo
cG9pbnQgb3Bjb2RlLjwvcD4KICAgICAgIDwvZGQ+CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMDI4MDkp
CisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBA
QAorMjAxNi0wNS0yOSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IEltcGxlbWVudCB0YWJsZS1iYXNlZCBzd2l0Y2hlcyBpbiBCMy9BaXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTE0MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICoganMvcmVncmVzcy9iaWdzd2l0Y2gt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL2JpZ3N3aXRjaC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBqcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9iaWdzd2l0Y2guanM6
IEFkZGVkLgorICAgICAgICAoZm9vKToKKwogMjAxNi0wNy0wNCAgWXVzdWtlIFN1enVraSAgPHV0
YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBza2lwIG1pc2MtYnVn
cy04NDczODktanBlZzIwMDAuanMgaW4ganNjIHN0cmVzcyB0ZXN0cwpJbmRleDogTGF5b3V0VGVz
dHMvanMvcmVncmVzcy9iaWdzd2l0Y2gtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3MvYmlnc3dpdGNoCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pz
L3JlZ3Jlc3MvYmlnc3dpdGNoLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9qcy9y
ZWdyZXNzL2JpZ3N3aXRjaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTIgQEAKKzwh
RE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNz
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL2JpZ3N3aXRjaC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3JlZ3Jlc3MtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdy
ZXNzL3NjcmlwdC10ZXN0cy9iaWdzd2l0Y2guanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
anMvcmVncmVzcy9zY3JpcHQtdGVzdHMvYmlnc3dpdGNoLmpzCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvYmlnc3dpdGNoLmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMjExIEBACitmdW5jdGlvbiBmb28obykgeworICAgIHZhciByZXN1bHQg
PSAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgKytpKSB7CisgICAgICAgIHZhciB2
YWx1ZSA9IGkgJiA2MzsKKyAgICAgICAgc3dpdGNoICh2YWx1ZSkgeworICAgICAgICBjYXNlIDA6
CisgICAgICAgICAgICByZXN1bHQgKz0gby5hOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgMToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYzsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICByZXN1bHQgKz0gby5kOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
LmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1OgorICAgICAgICAgICAgcmVz
dWx0ICs9IG8uZjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDY6CisgICAgICAg
ICAgICByZXN1bHQgKz0gby5nOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNzoK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSA4OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIDk6CisgICAgICAgICAgICByZXN1bHQgKz0gby5qOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgMTA6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTE6CisgICAgICAgICAgICByZXN1bHQgKz0g
by5hOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTI6CisgICAgICAgICAgICBy
ZXN1bHQgKz0gby5iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTM6CisgICAg
ICAgICAgICByZXN1bHQgKz0gby5jOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
MTQ6CisgICAgICAgICAgICByZXN1bHQgKz0gby5kOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgMTU6CisgICAgICAgICAgICByZXN1bHQgKz0gby5lOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgMTY6CisgICAgICAgICAgICByZXN1bHQgKz0gby5mOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTc6CisgICAgICAgICAgICByZXN1bHQgKz0gby5n
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTg6CisgICAgICAgICAgICByZXN1
bHQgKz0gby5oOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTk6CisgICAgICAg
ICAgICByZXN1bHQgKz0gby5pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjA6
CisgICAgICAgICAgICByZXN1bHQgKz0gby5qOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgMjE6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgMjI6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjM6CisgICAgICAgICAgICByZXN1bHQgKz0gby5hOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjQ6CisgICAgICAgICAgICByZXN1bHQg
Kz0gby5iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjU6CisgICAgICAgICAg
ICByZXN1bHQgKz0gby5jOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjY6Cisg
ICAgICAgICAgICByZXN1bHQgKz0gby5kOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgMjc6CisgICAgICAgICAgICByZXN1bHQgKz0gby5lOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgMjg6CisgICAgICAgICAgICByZXN1bHQgKz0gby5mOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgMjk6CisgICAgICAgICAgICByZXN1bHQgKz0gby5nOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzA6CisgICAgICAgICAgICByZXN1bHQgKz0g
by5oOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzE6CisgICAgICAgICAgICBy
ZXN1bHQgKz0gby5pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzI6CisgICAg
ICAgICAgICByZXN1bHQgKz0gby5qOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
MzM6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgMzQ6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgMzU6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzY6CisgICAgICAgICAgICByZXN1bHQgKz0gby5h
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzc6CisgICAgICAgICAgICByZXN1
bHQgKz0gby5iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzg6CisgICAgICAg
ICAgICByZXN1bHQgKz0gby5jOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzk6
CisgICAgICAgICAgICByZXN1bHQgKz0gby5kOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgNDA6CisgICAgICAgICAgICByZXN1bHQgKz0gby5lOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgNDE6CisgICAgICAgICAgICByZXN1bHQgKz0gby5mOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDI6CisgICAgICAgICAgICByZXN1bHQgKz0gby5nOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDM6CisgICAgICAgICAgICByZXN1bHQg
Kz0gby5oOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDQ6CisgICAgICAgICAg
ICByZXN1bHQgKz0gby5pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDU6Cisg
ICAgICAgICAgICByZXN1bHQgKz0gby5qOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgNDY6CisgICAgICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgNDc6CisgICAgICAgICAgICByZXN1bHQgKz0gby5pOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgNDg6CisgICAgICAgICAgICByZXN1bHQgKz0gby5qOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNDk6CisgICAgICAgICAgICByZXN1bHQgKz0g
by5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTA6CisgICAgICAgICAgICBy
ZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTE6CisgICAg
ICAgICAgICByZXN1bHQgKz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
NTI6CisgICAgICAgICAgICByZXN1bHQgKz0gby5hOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgNTM6CisgICAgICAgICAgICByZXN1bHQgKz0gby5iOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgNTQ6CisgICAgICAgICAgICByZXN1bHQgKz0gby5jOworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTU6CisgICAgICAgICAgICByZXN1bHQgKz0gby5k
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTY6CisgICAgICAgICAgICByZXN1
bHQgKz0gby5lOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTc6CisgICAgICAg
ICAgICByZXN1bHQgKz0gby5mOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNTg6
CisgICAgICAgICAgICByZXN1bHQgKz0gby5nOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgNTk6CisgICAgICAgICAgICByZXN1bHQgKz0gby5oOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgNjA6CisgICAgICAgICAgICByZXN1bHQgKz0gby5pOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgNjE6CisgICAgICAgICAgICByZXN1bHQgKz0gby5qOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNjI6CisgICAgICAgICAgICByZXN1bHQg
Kz0gby5rOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg
ICByZXN1bHQgKz0gby56OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KKworKGZ1bmN0aW9uKCkgeworICAgIHZhciBvID0ge2E6MSwg
YjoyLCBjOjMsIGQ6NCwgZTo1LCBmOjYsIGc6NywgaDo4LCBpOjksIGo6MTAsIGs6MTEsIHo6MTAw
fTsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyAr
K2kpCisgICAgICAgIHJlc3VsdCArPSBmb28obyk7CisgICAgaWYgKHJlc3VsdCAhPSA3OTY2MDAw
MCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfSkoKTsK
Kwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283928</attachid>
            <date>2016-07-18 13:54:55 -0700</date>
            <delta_ts>2016-07-18 14:20:28 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>434929</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAzMzcxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3OCBA
QAorMjAxNi0wNy0xNyAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IEltcGxlbWVudCB0YWJsZS1iYXNlZCBzd2l0Y2hlcyBpbiBCMy9BaXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTE0MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIElmIGEgc3dpdGNoIHN0YXRlbWVudCBn
ZXRzIGxhcmdlLCBpdCdzIGJldHRlciB0byBleHByZXNzIGl0IGFzIGFuIGluZGlyZWN0IGp1bXAg
cmF0aGVyIHRoYW4KKyAgICAgICAgdXNpbmcgYSBiaW5hcnkgc3dpdGNoIChkaXZpZGUtYW5kLWNv
bnF1ZXIgdHJlZSBvZiBjb21wYXJpc29ucyBsZWFkaW5nIHRvIE8obG9nIG4pIGJyYW5jaGVzIHRv
CisgICAgICAgIGdldCB0byB0aGUgc3dpdGNoIGNhc2UpLiBXaGVuIGRlYWxpbmcgd2l0aCBpbnRl
Z2VyIHN3aXRjaGVzLCBGVEwgd2lsbCBhbHJlYWR5IHVzZSB0aGUgQjMKKyAgICAgICAgU3dpdGNo
IGFuZCBleHBlY3QgdGhpcyB0byBnZXQgbG93ZXJlZCBhcyBlZmZpY2llbnRseSBhcyBwb3NzaWJs
ZTsgaXQncyBhIGJ1ZyB0aGF0IEIzIHdpbGwKKyAgICAgICAgYWx3YXlzIHVzZSBhIGJpbmFyeSBz
d2l0Y2ggcmF0aGVyIHRoYW4gaW5kaXJlY3QganVtcHMuIFdoZW4gZGVhbGluZyB3aXRoIHN3aXRj
aGVzIG92ZXIgc29tZQorICAgICAgICBtb3JlIHNvcGhpc3RpY2F0ZWQgdHlwZXMsIHdlJ2Qgd2Fu
dCBGVEwgdG8gYnVpbGQgYW4gaW5kaXJlY3QganVtcCB0YWJsZSBpdHNlbGYgYW5kIHVzZQorICAg
ICAgICBzb21ldGhpbmcgbGlrZSBhIGhhc2h0YWJsZSB0byBmZWVkIGl0LiBJbiB0aGF0IGNhc2Us
IHRoZXJlIHdpbGwgYmUgbm8gQjMgU3dpdGNoOyB3ZSdsbCB3YW50CisgICAgICAgIHNvbWUgd2F5
IGZvciB0aGUgRlRMIHRvIGRpcmVjdGx5IGV4cHJlc3MgYW4gaW5kaXJlY3Rpb24ganVtcCB3aGVu
IGVtaXR0aW5nIEIzLgorICAgICAgICAKKyAgICAgICAgVGhpcyBpbXBsaWVzIHRoYXQgd2Ugd2Fu
dCBCMyB0byBoYXZlIHRoZSBhYmlsaXR5IHRvIGxvd2VyIFN3aXRjaCB0byBpbmRpcmVjdCBqdW1w
cyBhbmQgdG8KKyAgICAgICAgZXhwb3NlIHRob3NlIGluZGlyZWN0IGp1bXBzIGluIElSIHNvIHRo
YXQgdGhlIEZUTCBjb3VsZCBkbyBpdHMgb3duIGluZGlyZWN0IGp1bXBzIGZvcgorICAgICAgICBz
d2l0Y2hlcyBvdmVyIG1vcmUgY29tcGxpY2F0ZWQgdGhpbmdzIGxpa2Ugc3RyaW5ncy4gQnV0IGlu
ZGlyZWN0IGp1bXBzIGFyZSB0b3VnaCB0byBleHByZXNzCisgICAgICAgIGluIElSLiBGb3IgZXhh
bXBsZSwgdGhlIExMVk0gYXBwcm9hY2ggKCJpbmRpcmVjdGJyIiBhbmQgImJsb2NrYWRkcmVzcyIs
IHNlZQorICAgICAgICBodHRwOi8vYmxvZy5sbHZtLm9yZy8yMDEwLzAxL2FkZHJlc3Mtb2YtbGFi
ZWwtYW5kLWluZGlyZWN0LWJyYW5jaGVzLmh0bWwpIG1lYW5zIHRoYXQgc29tZQorICAgICAgICBj
b250cm9sIGZsb3cgZWRnZXMgY2Fubm90IGJlIHNwbGl0LiBJbmRpcmVjdGJyIHRha2VzIGFuIGFk
ZHJlc3MgYXMgaW5wdXQgYW5kIGp1bXBzIHRvIGl0LCBhbmQKKyAgICAgICAgYmxvY2thZGRyZXNz
IGxldHMgeW91IGJ1aWxkIGp1bXAgdGFibGVzIG91dCBvZiBiYXNpYyBibG9jayBhZGRyZXNzZXMu
IFRoaXMgbWVhbnMgdGhhdCB0aGUKKyAgICAgICAgY29tcGlsZXIgY2FuIG5ldmVyIGNoYW5nZSBh
bnkgc3VjY2Vzc29yIG9mIGFuIGluZGlyZWN0YnIsIHNpbmNlIHRoZSBjbGllbnQgd2lsbCBoYXZl
IGFscmVhZHkKKyAgICAgICAgYXJyYW5nZWQgZm9yIHRoYXQgaW5kaXJlY3RiciB0byBqdW1wIHRv
IGV4YWN0bHkgdGhvc2Ugc3VjY2Vzc29ycy4gV2UgZG9uJ3Qgd2FudCBzdWNoCisgICAgICAgIHJl
c3RyaWN0aW9ucyBpbiBCMywgc2luY2UgQjMgcmVsaWVzIG9uIGJlaW5nIGFibGUgdG8gYnJlYWsg
Y3JpdGljYWwgZWRnZXMgZm9yIFNTQSBjb252ZXJzaW9uLgorICAgICAgICBBbHNvLCBpbmRpcmVj
dGJyIGlzIG5vdCBjbG9uZWFibGUsIHdoaWNoIHdvdWxkIGJyZWFrIGFueSBob3BlIG9mIGRvaW5n
IHNwZWNpYWxpemF0aW9uLWJhc2VkCisgICAgICAgIHRyYW5zZm9ybWF0aW9ucyBsaWtlIHdlIHdh
bnQgdG8gZG8gZm9yIG11bHRpcGxlIGVudHJ5cG9pbnRzIChidWcgMTU5MzkxKS4gVGhlIGdvYWwg
b2YgdGhpcworICAgICAgICBjaGFuZ2UgaXMgdG8gbGV0IGNsaWVudHMgZG8gaW5kaXJlY3QganVt
cHMgd2l0aG91dCBwbGFjaW5nIGFueSByZXN0cmljdGlvbnMgb24gSVIuCisgICAgICAgIAorICAg
ICAgICBUaGUgdHJpY2sgaXMgdG8gYWxsb3cgUGF0Y2hwb2ludHMgdG8gYmUgdXNlZCBhcyBibG9j
ayB0ZXJtaW5hbHMuIFBhdGNocG9pbnRzIGFscmVhZHkgYWxsb3cKKyAgICAgICAgY2xpZW50cyBv
ZiBCMyB0byBlbWl0IHdoYXRldmVyIGNvZGUgdGhleSBsaWtlLiBQYXRjaHBvaW50cyBhcmUgZnJp
ZW5kbHkgdG8gQjMncyBvdGhlcgorICAgICAgICB0cmFuc2Zvcm1hdGlvbnMgYmVjYXVzZSB0aGUg
Y2xpZW50IG9mIHRoZSBwYXRjaHBvaW50IGhhcyB0byBwbGF5IGFsb25nIHdpdGggd2hhdGV2ZXIK
KyAgICAgICAgZGVjaXNpb25zIEIzIGhhZCBtYWRlIGFyb3VuZCB0aGUgcGF0Y2hwb2ludDogd2hh
dCByZWdpc3RlcnMgZ290IHVzZWQsIHdoYXQgdGhlIGNvbnRyb2wgZmxvdworICAgICAgICBsb29r
cyBsaWtlLCBldGMuIFBhdGNocG9pbnRzIGNhbiBldmVuIGJlIGNsb25lZCBieSBCMywgYW5kIHRo
ZSBjbGllbnQgaGFzIHRvIGFjY29tbW9kYXRlIHRoaXMKKyAgICAgICAgaW4gdGhlaXIgcGF0Y2hw
b2ludCBnZW5lcmF0b3IuIEl0IHR1cm5zIG91dCB0aGF0IHVzaW5nIFBhdGNocG9pbnRzIGFzIHRl
cm1pbmFscyBpcyBxdWl0ZQorICAgICAgICBuYXR1cmFsLiBXZSBhY2NvbXBsaXNoIHRoaXMgYnkg
bW92aW5nIHRoZSBzdWNjZXNzb3IgZWRnZXMgb3V0IG9mIENvbnRyb2xWYWx1ZSBhbmQgaW50bwor
ICAgICAgICBCYXNpY0Jsb2NrLCBhbmQgcmVtb3ZpbmcgQ29udHJvbFZhbHVlIGVudGlyZWx5LiBU
aGlzIHdheSwgYW55IFZhbHVlIHN1YmNsYXNzIGNhbiBiZSBhCisgICAgICAgIHRlcm1pbmFsLiBJ
dCB3YXMgYWxyZWFkeSB0cnVlIHRoYXQgYSBWYWx1ZSBpcyBhIHRlcm1pbmFsIGlmIHZhbHVlLT5l
ZmZlY3RzKCkudGVybWluYWwsIHdoaWNoCisgICAgICAgIHdvcmtzIGdyZWF0IHdpdGggUGF0Y2hw
b2ludHMgc2luY2UgdGhleSBjb250cm9sIHRoZWlyIGVmZmVjdHMgdmlhIFBhdGNocG9pbnRWYWx1
ZTo6ZWZmZWN0cy4KKyAgICAgICAgWW91IGNhbiBtYWtlIHlvdXIgUGF0Y2hwb2ludCBpbnRvIGEg
dGVybWluYWwgYnkgcGxhY2luZyBpdCBhdCB0aGUgZW5kIG9mIGEgYmxvY2sgYW5kIGRvaW5nOgor
ICAgICAgICAKKyAgICAgICAgcGF0Y2hwb2ludC0+ZWZmZWN0cy50ZXJtaW5hbCA9IHRydWU7Cisg
ICAgICAgIAorICAgICAgICBBIFBhdGNocG9pbnRzIGluIHRlcm1pbmFsIHBvc2l0aW9uIGdldHMg
YWNjZXNzIHRvIGFkZGl0aW9uYWwgQVBJIGluIFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy4KKyAg
ICAgICAgVGhlIGdlbmVyYXRvciBjYW4gZ2V0IGEgQm94PExhYmVsPiBmb3IgZWFjaCBzdWNjZXNz
b3IgdG8gaXRzIG93bmluZyBibG9jay4gRm9yIGV4YW1wbGUsIHRvCisgICAgICAgIGltcGxlbWVu
dCBhIGp1bXAtdGFibGUtYmFzZWQgc3dpdGNoLCB5b3Ugd291bGQgbWFrZSB5b3VyIHBhdGNocG9p
bnQgdGFrZSB0aGUgdGFibGUgaW5kZXggYXMKKyAgICAgICAgaXRzIHNvbGUgaW5wdXQuIEluc2lk
ZSB0aGUgZ2VuZXJhdG9yLCB5b3UgYWxsb2NhdGUgdGhlIGp1bXAgdGFibGUgYW5kIGVtaXQgYSBC
YXNlSW5kZXgganVtcAorICAgICAgICB0aGF0IHVzZXMgdGhlIGp1bXAgdGFibGUgcG9pbnRlciAo
d2hpY2ggd2lsbCBiZSBhIGNvbnN0YW50IGtub3duIHRvIHRoZSBnZW5lcmF0b3Igc2luY2UgaXQK
KyAgICAgICAganVzdCBhbGxvY2F0ZWQgaXQpIGFzIHRoZSBiYXNlIGFuZCB0aGUgcGF0Y2hwb2lu
dCBpbnB1dCBhcyBhbiBpbmRleC4gVGhlIGp1bXAgdGFibGUgY2FuIGJlCisgICAgICAgIHBvcHVs
YXRlZCBieSBNYWNyb0Fzc2VtYmxlckNvZGVQdHIncyBjb21wdXRlZCBieSBpbnN0YWxsaW5nIGEg
bGluayB0YXNrIHRvIHJlc29sdmUgdGhlIGxhYmVscworICAgICAgICB0byBjb25jcmV0ZSBsb2Nh
dGlvbnMuIFRoaXMgY2hhbmdlIG1ha2VzIExvd2VyTWFjcm9zIGRvIHN1Y2ggYSBsb3dlcmluZyBm
b3IgU3dpdGNoZXMgdGhhdCBjYW4KKyAgICAgICAgYmVuZWZpdCBmcm9tIGp1bXAgdGFibGVzLiBU
aGlzIGhhcHBlbnMgcmVjdXJzaXZlbHk6IGlmIHRoZSBvcmlnaW5hbCBTd2l0Y2ggaXMgdG9vIHNw
YXJzZSwgd2UKKyAgICAgICAgd2lsbCBkaXZpZGUtYW5kLWNvbnF1ZXIgYXMgYmVmb3JlLiBJZiBh
dCBhbnkgcmVjdXJzaW9uIHN0ZXAgd2UgZmluZCB0aGF0IHRoZSByZW1haW5pbmcgY2FzZXMKKyAg
ICAgICAgYXJlIGRlbnNlIGFuZCBsYXJnZSBlbm91Z2ggdG8gcHJvZml0IGZyb20gYSBqdW1wIHRh
YmxlLCB0aGVuIHRob3NlIGNhc2VzIHdpbGwgYmUgbG93ZXJlZCB0byBhCisgICAgICAgIFBhdGNo
cG9pbnQgdGhhdCBkb2VzIHRoZSB0YWJsZSBqdW1wLiBUaGlzIGlzIGEgZnVuIHdheSB0byBkbyBz
dGVwd2lzZSBsb3dlcmluZzogTG93ZXJNYWNyb3MKKyAgICAgICAgaXMgZXNzZW50aWFsbHkgcHJl
LWxvd2VyaW5nIHRoZSBTd2l0Y2ggZGlyZWN0bHkgdG8gbWFjaGluZSBjb2RlLCBhbmQgd3JhcHBp
bmcgdGhhdCBtYWNoaW5lCisgICAgICAgIGNvZGUgaW4gYSBQYXRjaHBvaW50IHNvIHRoYXQgdGhl
IHJlc3Qgb2YgdGhlIGNvbXBpbGVyIGRvZXNuJ3QgaGF2ZSB0byBrbm93IGFueXRoaW5nIGFib3V0
CisgICAgICAgIHdoYXQgaGFwcGVuZWQuIEkgc3VzcGVjdCB0aGF0IGluIHRoZSBmdXR1cmUgd2Ug
d2lsbCB3YW50IHRvIGRvIG90aGVyIHByZS1sb3dlcmluZ3MgdGhpcyB3YXksCisgICAgICAgIHdo
ZW5ldmVyIHRoZSBCMyBJUiBwaGFzZXMgaGF2ZSBzb21lIHNwZWNpYWwga25vd2xlZGdlIGFib3V0
IHdoYXQgbWFjaGluZSBjb2RlIHNob3VsZCBiZQorICAgICAgICBlbWl0dGVkIGFuZCBpdCB3b3Vs
ZCBiZSBhbm5veWluZyB0byBkcmFnIHRoYXQga25vd2xlZGdlIHRocm91Z2ggdGhlIHJlc3Qgb2Yg
dGhlIGNvbXBpbGVyLgorICAgICAgICAKKyAgICAgICAgT25lIGRvd25zaWRlIG9mIHRoaXMgY2hh
bmdlIGlzIHRoYXQgd2UgdXNlZCBDb250cm9sVmFsdWUgaW4gc28gbWFueSBwbGFjZXMuIE1vc3Qg
b2YgdGhpcworICAgICAgICBwYXRjaCBpbnZvbHZlcyByZW1vdmluZyByZWZlcmVuY2VzIHRvIENv
bnRyb2xWYWx1ZS4gSXQgd291bGQgYmUgbGVzcyB0aGFuIDEwMGtiIGlmIGl0IHdhc24ndAorICAg
ICAgICBmb3IgdGhhdC4gVG8gbWFrZSB0aGlzIGEgYml0IGVhc2llciwgSSBhZGRlZCAiYXBwZW5k
TmV3Q29udHJvbFZhbHVlIiBtZXRob2RzIHRvIEJhc2ljQmxvY2ssCisgICAgICAgIHdoaWNoIGFs
bG9jYXRlIGEgVmFsdWUgYW5kIHNldCB0aGUgc3VjY2Vzc29ycyBhcyBpZiB5b3UgaGFkIGRvbmUg
ImFwcGVuZE5ldzxDb250cm9sVmFsdWU+Ii4KKyAgICAgICAgVGhpcyBtYWRlIGZvciBhbiBlYXN5
IHNlYXJjaC1hbmQtcmVwbGFjZSBpbiB0ZXN0YjMgYW5kIEZUTE91dHB1dC4gSSBmaWxlZCBidWcg
MTU5NDQwIHRvCisgICAgICAgIHJlbW92ZSB0aGlzIHVnbHkgc3RvcGdhcCBtZXRob2QuCisgICAg
ICAgIAorICAgICAgICBJIHRoaW5rIHRoYXQgd2Ugd2lsbCBhbHNvIGVuZCB1cCB1c2luZyB0aGlz
IGZhY2lsaXR5IHRvIGV4dGVuZCBvdXIgdXNlIG9mIHNuaXBwZXRzLiBXZQorICAgICAgICBhbHJl
YWR5IHVzZSBzaGFyZWQgc25pcHBldCBnZW5lcmF0b3JzIGZvciB0aGUgZ2VuZXJpYyBmb3JtcyBv
ZiBhcml0aG1ldGljLiBXZSB3aWxsIHByb2JhYmx5CisgICAgICAgIGFsc28gd2FudCB0byBkbyB0
aGlzIGZvciBnZW5lcmljIGZvcm1zIG9mIGJyYW5jaGVzLiBUaGlzIHdvdWxkbid0IGhhdmUgYmVl
biBwb3NzaWJsZSBwcmlvciB0bworICAgICAgICB0aGlzIGNoYW5nZSwgc2luY2UgdGhlcmUgd291
bGQgaGF2ZSBiZWVuIG5vIHdheSB0byBlbWl0IGEgY29udHJvbCBzbmlwcGV0IGluIEZUTC4gTm93
IHdlIGNhbgorICAgICAgICBlbWl0IGNvbnRyb2wgc25pcHBldHMgdXNpbmcgdGVybWluYWwgcGF0
Y2hwb2ludHMuCisKKyAgICAgICAgVGhpcyBpcyBhIH4zMCUgc3BlZWQtdXAgb24gbWljcm9iZW5j
aG1hcmtzIHRoYXQgaGF2ZSBiaWcgc3dpdGNoIHN0YXRlbWVudHMgKH42MCBjYXNlcykuIEl0J3MK
KyAgICAgICAgbm90IGEgc3BlZWQtdXAgb24gbWFpbnN0cmVhbSBiZW5jaG1hcmtzLgorICAgICAg
ICAKKyAgICAgICAgVGhpcyBhbHNvIGFkZHMgYSBuZXcgdGVzdCB0byB0ZXN0YjMgZm9yIHRlcm1p
bmFsIFBhdGNocG9pbnRzLCBHZXQsIGFuZCBTZXQuIFRoZSBGVEwgZG9lcyBub3QKKyAgICAgICAg
Y3VycmVudGx5IHVzZSB0ZXJtaW5hbCBQYXRjaHBvaW50cyBkaXJlY3RseSwgYnV0IHdlIHdhbnQg
dGhpcyB0byBiZSBwb3NzaWJsZS4gSXQgYWxzbyBkb2Vzbid0CisgICAgICAgIHVzZSBHZXQvU2V0
IGRpcmVjdGx5IGV2ZW4gdGhvdWdoIHdlIHdhbnQgdGhpcyB0byBiZSBwb3NzaWJsZS4gSXQncyBp
bXBvcnRhbnQgdG8gdGVzdCB0aGVzZQorICAgICAgICBzaW5jZSBvcGNvZGVzIHRoYXQgcmVzdWx0
IGZyb20gbG93ZXJpbmcgZG9uJ3QgYWZmZWN0IGVhcmx5IHBoYXNlcywgc28gd2UgY291bGQgaGF2
ZQorICAgICAgICByZWdyZXNzaW9ucyBpbiBlYXJseSBwaGFzZXMgcmVsYXRlZCB0byB0aGVzZSBv
cGNvZGVzIHRoYXQgd291bGRuJ3QgYmUgY2F1Z2h0IGJ5IGFueSBKUyB0ZXN0LgorICAgICAgICBT
bywgdGhpcyBhZGRzIGEgdmVyeSBiYXNpYyB0aHJlYWRlZCBpbnRlcnByZXRlciB0byB0ZXN0YjMg
Zm9yIGEgQnJhaW5mdWNrLXN0eWxlIGxhbmd1YWdlLCBhbmQKKyAgICAgICAgdGVzdHMgaXQgYnkg
aGF2aW5nIGl0IHJ1biBhIHByb2dyYW0gdGhhdCBwcmludHMgdGhlIG51bWJlcnMgMS4uMTAwIGlu
IGEgbG9vcC4gVW5saWtlIGEgcmVhbAorICAgICAgICB0aHJlYWRlZCBpbnRlcnByZXRlciwgaXQg
dXNlcyBhIGNvbW1vbiBkaXNwYXRjaCBibG9jayByYXRoZXIgdGhhbiBoYXZpbmcgZGlzcGF0Y2gg
YXQgdGhlCisgICAgICAgIHRlcm1pbnVzIG9mIGVhY2ggb3Bjb2RlLiBUaGF0J3MgbmVjZXNzYXJ5
IGJlY2F1c2UgUG9seUp1bXAgaXMgbm90IGNsb25lYWJsZS4gVGhlIHN0YXRlIG9mIHRoZQorICAg
ICAgICBpbnRlcnByZXRlciBpcyByZXByZXNlbnRlZCB1c2luZyBWYXJpYWJsZXMgdGhhdCB3ZSBH
ZXQgYW5kIFNldCwgc28gaXQgdGVzdHMgR2V0L1NldCBhcyB3ZWxsLgorCisgICAgICAgICogQ01h
a2VMaXN0cy50eHQ6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oOgorICAg
ICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0OjpqdW1wKToKKyAgICAgICAgKiBhc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJs
ZXJYODZDb21tb246Omp1bXApOgorICAgICAgICAqIGFzc2VtYmxlci9YODZBc3NlbWJsZXIuaDoK
KyAgICAgICAgKEpTQzo6WDg2QXNzZW1ibGVyOjpqbXBfbSk6CisgICAgICAgICogYjMvQjNCYXNp
Y0Jsb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OkJhc2ljQmxvY2s6OmFwcGVuZCk6CisgICAg
ICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjphcHBlbmROb25UZXJtaW5hbCk6CisgICAgICAgIChK
U0M6OkIzOjpCYXNpY0Jsb2NrOjpyZW1vdmVMYXN0KToKKyAgICAgICAgKEpTQzo6QjM6OkJhc2lj
QmxvY2s6OmFwcGVuZEludENvbnN0YW50KToKKyAgICAgICAgKEpTQzo6QjM6OkJhc2ljQmxvY2s6
OmNsZWFyU3VjY2Vzc29ycyk6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjphcHBlbmRT
dWNjZXNzb3IpOgorICAgICAgICAoSlNDOjpCMzo6QmFzaWNCbG9jazo6c2V0U3VjY2Vzc29ycyk6
CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjpyZXBsYWNlU3VjY2Vzc29yKToKKyAgICAg
ICAgKEpTQzo6QjM6OkJhc2ljQmxvY2s6OmFkZFByZWRlY2Vzc29yKToKKyAgICAgICAgKEpTQzo6
QjM6OkJhc2ljQmxvY2s6OmRlZXBEdW1wKToKKyAgICAgICAgKEpTQzo6QjM6OkJhc2ljQmxvY2s6
OmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSk6CisgICAgICAgICogYjMvQjNCYXNpY0Jsb2NrLmg6Cisg
ICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjpudW1TdWNjZXNzb3JzKToKKyAgICAgICAgKEpT
Qzo6QjM6OkJhc2ljQmxvY2s6OnN1Y2Nlc3Nvcik6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Js
b2NrOjpzdWNjZXNzb3JzKToKKyAgICAgICAgKEpTQzo6QjM6OkJhc2ljQmxvY2s6OnN1Y2Nlc3Nv
ckJsb2NrKToKKyAgICAgICAgKEpTQzo6QjM6OkJhc2ljQmxvY2s6OnN1Y2Nlc3NvckJsb2Nrcyk6
CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjpudW1QcmVkZWNlc3NvcnMpOgorICAgICAg
ICAoSlNDOjpCMzo6QmFzaWNCbG9jazo6cHJlZGVjZXNzb3IpOgorICAgICAgICAoSlNDOjpCMzo6
QmFzaWNCbG9jazo6ZnJlcXVlbmN5KToKKyAgICAgICAgKiBiMy9CM0Jhc2ljQmxvY2tJbmxpbmVz
Lmg6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjpyZXBsYWNlTGFzdFdpdGhOZXcpOgor
ICAgICAgICAoSlNDOjpCMzo6QmFzaWNCbG9jazo6dGFrZW4pOgorICAgICAgICAoSlNDOjpCMzo6
QmFzaWNCbG9jazo6bm90VGFrZW4pOgorICAgICAgICAoSlNDOjpCMzo6QmFzaWNCbG9jazo6ZmFs
bFRocm91Z2gpOgorICAgICAgICAoSlNDOjpCMzo6QmFzaWNCbG9jazo6bnVtU3VjY2Vzc29ycyk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjpzdWNjZXNzb3IpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpCMzo6QmFzaWNCbG9jazo6c3VjY2Vzc29ycyk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjpzdWNjZXNzb3JCbG9jayk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjpzdWNjZXNzb3JCbG9ja3MpOiBEZWxldGVk
LgorICAgICAgICAqIGIzL0IzQmxvY2tJbnNlcnRpb25TZXQuY3BwOgorICAgICAgICAoSlNDOjpC
Mzo6QmxvY2tJbnNlcnRpb25TZXQ6OnNwbGl0Rm9yd2FyZCk6CisgICAgICAgICogYjMvQjNCcmVh
a0NyaXRpY2FsRWRnZXMuY3BwOgorICAgICAgICAoSlNDOjpCMzo6YnJlYWtDcml0aWNhbEVkZ2Vz
KToKKyAgICAgICAgKiBiMy9CM0Nhc2VDb2xsZWN0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChK
U0M6OkIzOjpDYXNlQ29sbGVjdGlvbjo6ZHVtcCk6CisgICAgICAgICogYjMvQjNDYXNlQ29sbGVj
dGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6QjM6OkNhc2VDb2xsZWN0aW9uOjpDYXNlQ29s
bGVjdGlvbik6CisgICAgICAgIChKU0M6OkIzOjpDYXNlQ29sbGVjdGlvbjo6b3BlcmF0b3JbXSk6
CisgICAgICAgIChKU0M6OkIzOjpDYXNlQ29sbGVjdGlvbjo6aXRlcmF0b3I6Oml0ZXJhdG9yKToK
KyAgICAgICAgKEpTQzo6QjM6OkNhc2VDb2xsZWN0aW9uOjppdGVyYXRvcjo6b3BlcmF0b3IqKToK
KyAgICAgICAgKEpTQzo6QjM6OkNhc2VDb2xsZWN0aW9uOjppdGVyYXRvcjo6b3BlcmF0b3IrKyk6
CisgICAgICAgIChKU0M6OkIzOjpDYXNlQ29sbGVjdGlvbjo6aXRlcmF0b3I6Om9wZXJhdG9yPT0p
OgorICAgICAgICAoSlNDOjpCMzo6Q2FzZUNvbGxlY3Rpb246Oml0ZXJhdG9yOjpvcGVyYXRvciE9
KToKKyAgICAgICAgKEpTQzo6QjM6OkNhc2VDb2xsZWN0aW9uOjpiZWdpbik6CisgICAgICAgIChK
U0M6OkIzOjpDYXNlQ29sbGVjdGlvbjo6ZW5kKToKKyAgICAgICAgKiBiMy9CM0Nhc2VDb2xsZWN0
aW9uSW5saW5lcy5oOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6QjM6OkNhc2VDb2xsZWN0aW9uOjpm
YWxsVGhyb3VnaCk6CisgICAgICAgIChKU0M6OkIzOjpDYXNlQ29sbGVjdGlvbjo6c2l6ZSk6Cisg
ICAgICAgIChKU0M6OkIzOjpDYXNlQ29sbGVjdGlvbjo6YXQpOgorICAgICAgICAqIGIzL0IzQ2hl
Y2tTcGVjaWFsLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OkNoZWNrU3BlY2lhbDo6Q2hlY2tTcGVj
aWFsKToKKyAgICAgICAgKEpTQzo6QjM6OkNoZWNrU3BlY2lhbDo6aGlkZGVuQnJhbmNoKToKKyAg
ICAgICAgKiBiMy9CM0NvbW1vbi5oOgorICAgICAgICAoSlNDOjpCMzo6aXM2NEJpdCk6CisgICAg
ICAgICogYjMvQjNDb250cm9sVmFsdWUuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGIzL0IzQ29u
dHJvbFZhbHVlLmg6IFJlbW92ZWQuCisgICAgICAgICogYjMvQjNEYXRhU2VjdGlvbi5jcHA6Cisg
ICAgICAgIChKU0M6OkIzOjpEYXRhU2VjdGlvbjo6RGF0YVNlY3Rpb24pOgorICAgICAgICAqIGIz
L0IzRHVwbGljYXRlVGFpbHMuY3BwOgorICAgICAgICAqIGIzL0IzRml4U1NBLmNwcDoKKyAgICAg
ICAgKiBiMy9CM0ZvbGRQYXRoQ29uc3RhbnRzLmNwcDoKKyAgICAgICAgKiBiMy9CM0xvd2VyTWFj
cm9zLmNwcDoKKyAgICAgICAgKiBiMy9CM0xvd2VyVG9BaXIuY3BwOgorICAgICAgICAoSlNDOjpC
Mzo6QWlyOjpMb3dlclRvQWlyOjpydW4pOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpMb3dlclRv
QWlyOjpsb3dlcik6CisgICAgICAgICogYjMvQjNNYXRoRXh0cmFzLmNwcDoKKyAgICAgICAgKEpT
Qzo6QjM6OnBvd0RvdWJsZUludDMyKToKKyAgICAgICAgKiBiMy9CM09wY29kZS5oOgorICAgICAg
ICAoSlNDOjpCMzo6aXNDb25zdGFudCk6CisgICAgICAgIChKU0M6OkIzOjppc0RlZmluaXRlbHlU
ZXJtaW5hbCk6CisgICAgICAgICogYjMvQjNQYXRjaHBvaW50U3BlY2lhbC5jcHA6CisgICAgICAg
IChKU0M6OkIzOjpQYXRjaHBvaW50U3BlY2lhbDo6Z2VuZXJhdGUpOgorICAgICAgICAoSlNDOjpC
Mzo6UGF0Y2hwb2ludFNwZWNpYWw6OmlzVGVybWluYWwpOgorICAgICAgICAoSlNDOjpCMzo6UGF0
Y2hwb2ludFNwZWNpYWw6OmR1bXBJbXBsKToKKyAgICAgICAgKiBiMy9CM1BhdGNocG9pbnRTcGVj
aWFsLmg6CisgICAgICAgICogYjMvQjNQcm9jZWR1cmUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6
UHJvY2VkdXJlOjpyZXNldFJlYWNoYWJpbGl0eSk6CisgICAgICAgICogYjMvQjNQcm9jZWR1cmUu
aDoKKyAgICAgICAgKEpTQzo6QjM6OlByb2NlZHVyZTo6bGFzdFBoYXNlTmFtZSk6CisgICAgICAg
IChKU0M6OkIzOjpQcm9jZWR1cmU6OmJ5cHJvZHVjdHMpOgorICAgICAgICAqIGIzL0IzUmVkdWNl
U3RyZW5ndGguY3BwOgorICAgICAgICAqIGIzL0IzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmNw
cDoKKyAgICAgICAgKEpTQzo6QjM6OlN0YWNrbWFwR2VuZXJhdGlvblBhcmFtczo6dW5hdmFpbGFi
bGVSZWdpc3RlcnMpOgorICAgICAgICAoSlNDOjpCMzo6U3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1z
OjpzdWNjZXNzb3JMYWJlbHMpOgorICAgICAgICAoSlNDOjpCMzo6U3RhY2ttYXBHZW5lcmF0aW9u
UGFyYW1zOjpmYWxsc1Rocm91Z2hUb1N1Y2Nlc3Nvcik6CisgICAgICAgIChKU0M6OkIzOjpTdGFj
a21hcEdlbmVyYXRpb25QYXJhbXM6OnByb2MpOgorICAgICAgICAqIGIzL0IzU3RhY2ttYXBHZW5l
cmF0aW9uUGFyYW1zLmg6CisgICAgICAgIChKU0M6OkIzOjpTdGFja21hcEdlbmVyYXRpb25QYXJh
bXM6OmdwU2NyYXRjaCk6CisgICAgICAgIChKU0M6OkIzOjpTdGFja21hcEdlbmVyYXRpb25QYXJh
bXM6OmZwU2NyYXRjaCk6CisgICAgICAgICogYjMvQjNTd2l0Y2hWYWx1ZS5jcHA6CisgICAgICAg
IChKU0M6OkIzOjpTd2l0Y2hWYWx1ZTo6flN3aXRjaFZhbHVlKToKKyAgICAgICAgKEpTQzo6QjM6
OlN3aXRjaFZhbHVlOjpyZW1vdmVDYXNlKToKKyAgICAgICAgKEpTQzo6QjM6OlN3aXRjaFZhbHVl
OjpoYXNGYWxsVGhyb3VnaCk6CisgICAgICAgIChKU0M6OkIzOjpTd2l0Y2hWYWx1ZTo6c2V0RmFs
bFRocm91Z2gpOgorICAgICAgICAoSlNDOjpCMzo6U3dpdGNoVmFsdWU6OmFwcGVuZENhc2UpOgor
ICAgICAgICAoSlNDOjpCMzo6U3dpdGNoVmFsdWU6OmR1bXBTdWNjZXNzb3JzKToKKyAgICAgICAg
KEpTQzo6QjM6OlN3aXRjaFZhbHVlOjpkdW1wTWV0YSk6CisgICAgICAgIChKU0M6OkIzOjpTd2l0
Y2hWYWx1ZTo6Y2xvbmVJbXBsKToKKyAgICAgICAgKEpTQzo6QjM6OlN3aXRjaFZhbHVlOjpTd2l0
Y2hWYWx1ZSk6CisgICAgICAgICogYjMvQjNTd2l0Y2hWYWx1ZS5oOgorICAgICAgICAoSlNDOjpC
Mzo6U3dpdGNoVmFsdWU6OmFjY2VwdHMpOgorICAgICAgICAoSlNDOjpCMzo6U3dpdGNoVmFsdWU6
OmNhc2VWYWx1ZXMpOgorICAgICAgICAoSlNDOjpCMzo6U3dpdGNoVmFsdWU6OmNhc2VzKToKKyAg
ICAgICAgKEpTQzo6QjM6OlN3aXRjaFZhbHVlOjpmYWxsVGhyb3VnaCk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkIzOjpTd2l0Y2hWYWx1ZTo6c2l6ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkIzOjpTd2l0Y2hWYWx1ZTo6YXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpCMzo6U3dpdGNo
VmFsdWU6Om9wZXJhdG9yW10pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpCMzo6U3dpdGNoVmFs
dWU6Oml0ZXJhdG9yOjppdGVyYXRvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkIzOjpTd2l0
Y2hWYWx1ZTo6aXRlcmF0b3I6Om9wZXJhdG9yKik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkIz
OjpTd2l0Y2hWYWx1ZTo6aXRlcmF0b3I6Om9wZXJhdG9yKyspOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpCMzo6U3dpdGNoVmFsdWU6Oml0ZXJhdG9yOjpvcGVyYXRvcj09KTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6QjM6OlN3aXRjaFZhbHVlOjppdGVyYXRvcjo6b3BlcmF0b3IhPSk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkIzOjpTd2l0Y2hWYWx1ZTo6YmVnaW4pOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpCMzo6U3dpdGNoVmFsdWU6OmVuZCk6IERlbGV0ZWQuCisgICAgICAgICogYjMv
QjNWYWxpZGF0ZS5jcHA6CisgICAgICAgICogYjMvQjNWYWx1ZS5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpWYWx1ZTo6cmVwbGFjZVdpdGhQaGkpOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6OnJl
cGxhY2VXaXRoSnVtcCk6CisgICAgICAgIChKU0M6OkIzOjpWYWx1ZTo6cmVwbGFjZVdpdGhPb3Bz
KToKKyAgICAgICAgKEpTQzo6QjM6OlZhbHVlOjpkdW1wKToKKyAgICAgICAgKEpTQzo6QjM6OlZh
bHVlOjpkZWVwRHVtcCk6CisgICAgICAgIChKU0M6OkIzOjpWYWx1ZTo6ZHVtcFN1Y2Nlc3NvcnMp
OgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6Om5lZ0NvbnN0YW50KToKKyAgICAgICAgKEpTQzo6
QjM6OlZhbHVlOjp0eXBlRm9yKToKKyAgICAgICAgKiBiMy9CM1ZhbHVlLmg6CisgICAgICAgICog
YjMvYWlyL0FpckNvZGUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpDb2RlOjphZGRGYXN0
VG1wKToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6Q29kZTo6YWRkRGF0YVNlY3Rpb24pOgorICAg
ICAgICAoSlNDOjpCMzo6QWlyOjpDb2RlOjpqc0hhc2gpOgorICAgICAgICAqIGIzL2Fpci9BaXJD
b2RlLmg6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkNvZGU6OmlzRmFzdFRtcCk6CisgICAgICAg
IChKU0M6OkIzOjpBaXI6OkNvZGU6OnNldExhc3RQaGFzZU5hbWUpOgorICAgICAgICAqIGIzL2Fp
ci9BaXJDdXN0b20uaDoKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6UGF0Y2hDdXN0b206OnNob3Vs
ZFRyeUFsaWFzaW5nRGVmKToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6UGF0Y2hDdXN0b206Omlz
VGVybWluYWwpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpQYXRjaEN1c3RvbTo6aGFzTm9uQXJn
Tm9uQ29udHJvbEVmZmVjdHMpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpQYXRjaEN1c3RvbTo6
Z2VuZXJhdGUpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpDQ2FsbEN1c3RvbTo6YWRtaXRzU3Rh
Y2spOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpDQ2FsbEN1c3RvbTo6aXNUZXJtaW5hbCk6Cisg
ICAgICAgIChKU0M6OkIzOjpBaXI6OkNDYWxsQ3VzdG9tOjpoYXNOb25BcmdOb25Db250cm9sRWZm
ZWN0cyk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OlNodWZmbGVDdXN0b206OmFkbWl0c1N0YWNr
KToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6U2h1ZmZsZUN1c3RvbTo6aXNUZXJtaW5hbCk6Cisg
ICAgICAgIChKU0M6OkIzOjpBaXI6OlNodWZmbGVDdXN0b206Omhhc05vbkFyZ05vbkNvbnRyb2xF
ZmZlY3RzKToKKyAgICAgICAgKiBiMy9haXIvQWlyR2VuZXJhdGUuY3BwOgorICAgICAgICAoSlND
OjpCMzo6QWlyOjpnZW5lcmF0ZSk6CisgICAgICAgICogYjMvYWlyL0FpckdlbmVyYXRpb25Db250
ZXh0Lmg6CisgICAgICAgICogYjMvYWlyL0Fpckluc3QuaDoKKyAgICAgICAgKEpTQzo6QjM6OkFp
cjo6SW5zdDo6aGFzTm9uQ29udHJvbEVmZmVjdHMpOgorICAgICAgICAqIGIzL2Fpci9BaXJTaW1w
bGlmeUNGRy5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OnNpbXBsaWZ5Q0ZHKToKKyAgICAg
ICAgKiBiMy9haXIvQWlyU3BlY2lhbC5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OlNwZWNp
YWw6OnNob3VsZFRyeUFsaWFzaW5nRGVmKToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6U3BlY2lh
bDo6aXNUZXJtaW5hbCk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OlNwZWNpYWw6Omhhc05vbkFy
Z05vbkNvbnRyb2xFZmZlY3RzKToKKyAgICAgICAgKiBiMy9haXIvQWlyU3BlY2lhbC5oOgorICAg
ICAgICAqIGIzL2Fpci9BaXJWYWxpZGF0ZS5jcHA6CisgICAgICAgICogYjMvYWlyL29wY29kZV9n
ZW5lcmF0b3IucmI6CisgICAgICAgICogYjMvdGVzdGIzLmNwcDoKKyAgICAgICAgKiBmdGwvRlRM
TG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKiBmdGwvRlRMT3V0cHV0LmNwcDoKKyAgICAgICAg
KEpTQzo6RlRMOjpPdXRwdXQ6Omp1bXApOgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6YnJh
bmNoKToKKyAgICAgICAgKEpTQzo6RlRMOjpPdXRwdXQ6OnJldCk6CisgICAgICAgIChKU0M6OkZU
TDo6T3V0cHV0Ojp1bnJlYWNoYWJsZSk6CisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0OjpzcGVj
dWxhdGUpOgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6dHJhcCk6CisgICAgICAgIChKU0M6
OkZUTDo6T3V0cHV0OjphbmNob3IpOgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6ZGVjcmVt
ZW50U3VwZXJTYW1wbGVyQ291bnQpOgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6YWRkSW5j
b21pbmdUb1BoaSk6CisgICAgICAgICogZnRsL0ZUTE91dHB1dC5oOgorICAgICAgICAoSlNDOjpG
VEw6Ok91dHB1dDo6Y29uc3RJbnRQdHIpOgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6Y2Fs
bFdpdGhvdXRTaWRlRWZmZWN0cyk6CisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0Ojpzd2l0Y2hJ
bnN0cnVjdGlvbik6CisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0OjpwaGkpOgorICAgICAgICAo
SlNDOjpGVEw6Ok91dHB1dDo6YWRkSW5jb21pbmdUb1BoaSk6CisKIDIwMTYtMDctMTggIEZpbGlw
IFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXBlYXRlZGx5IGNyZWF0aW5n
IGFuZCBkZXN0cm95aW5nIHdvcmtlcnMgdGhhdCBlbnF1ZXVlIERGRyBwbGFucyBjYW4gb3V0cGFj
ZSB0aGUgREZHIHdvcmtsaXN0LCB3aGljaCB0aGVuIGNhdXNlcyBWTSBzaHV0ZG93biB0byBzdGFs
bCwgd2hpY2ggdGhlbiBjYXVzZXMgbWVtb3J5IGdyb3d0aApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMjAzMzcxKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMDgsNiArMTA4LDcgQEAgc2V0
KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICBiMy9CM0Jsb2NrSW5zZXJ0aW9uU2V0LmNwcAog
ICAgIGIzL0IzQnJlYWtDcml0aWNhbEVkZ2VzLmNwcAogICAgIGIzL0IzQ0NhbGxWYWx1ZS5jcHAK
KyAgICBiMy9CM0Nhc2VDb2xsZWN0aW9uLmNwcAogICAgIGIzL0IzQ2hlY2tTcGVjaWFsLmNwcAog
ICAgIGIzL0IzQ2hlY2tWYWx1ZS5jcHAKICAgICBiMy9CM0NvbW1vbi5jcHAKQEAgLTExOCw3ICsx
MTksNiBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIGIzL0IzQ29uc3REb3VibGVW
YWx1ZS5jcHAKICAgICBiMy9CM0NvbnN0RmxvYXRWYWx1ZS5jcHAKICAgICBiMy9CM0NvbnN0cmFp
bmVkVmFsdWUuY3BwCi0gICAgYjMvQjNDb250cm9sVmFsdWUuY3BwCiAgICAgYjMvQjNEYXRhU2Vj
dGlvbi5jcHAKICAgICBiMy9CM0R1cGxpY2F0ZVRhaWxzLmNwcAogICAgIGIzL0IzRWZmZWN0cy5j
cHAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMDMzNzEpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNzczLDggKzc3Myw2IEBACiAJCTBGRUM4NTEwMUJE
QUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0NjRWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZFQzg0QzYxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29u
c3Q2NFZhbHVlLmggKi87IH07CiAJCTBGRUM4NTExMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0
RG91YmxlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEZFQzg0QzcxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29uc3REb3VibGVWYWx1ZS5jcHAg
Ki87IH07CiAJCTBGRUM4NTEyMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0RG91YmxlVmFsdWUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRUM4NEM4
MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0RG91YmxlVmFsdWUuaCAqLzsgfTsKLQkJMEZFQzg1
MTMxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29udHJvbFZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRUM4NEM5MUJEQUNEQUMwMDgwRkY3NCAv
KiBCM0NvbnRyb2xWYWx1ZS5jcHAgKi87IH07Ci0JCTBGRUM4NTE0MUJEQUNEQUMwMDgwRkY3NCAv
KiBCM0NvbnRyb2xWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEZFQzg0Q0ExQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29udHJvbFZhbHVlLmggKi87
IH07CiAJCTBGRUM4NTE1MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0ZyZXF1ZW5jeUNsYXNzLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRUM4NENCMUJE
QUNEQUMwMDgwRkY3NCAvKiBCM0ZyZXF1ZW5jeUNsYXNzLmNwcCAqLzsgfTsKIAkJMEZFQzg1MTYx
QkRBQ0RBQzAwODBGRjc0IC8qIEIzRnJlcXVlbmN5Q2xhc3MuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRUM4NENDMUJEQUNEQUMwMDgwRkY3NCAvKiBC
M0ZyZXF1ZW5jeUNsYXNzLmggKi87IH07CiAJCTBGRUM4NTE3MUJEQUNEQUMwMDgwRkY3NCAvKiBC
M0ZyZXF1ZW50ZWRCbG9jay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEZFQzg0Q0QxQkRBQ0RBQzAwODBGRjc0IC8qIEIzRnJlcXVlbnRlZEJsb2NrLmgg
Ki87IH07CkBAIC0yMDAxLDYgKzE5OTksOSBAQAogCQlEQzY5QUE2NjFDRjdBMUYyMDBDNjI3MkYg
LyogTWF0Y2hSZXN1bHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gREM2OUFBNjUxQ0Y3QTFFRjAwQzYyNzJGIC8qIE1hdGNoUmVzdWx0LmNwcCAqLzsg
fTsKIAkJREM3OTk3ODMxQ0RFOUZBMDAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDNzk5NzgyMUNERTlG
OUUwMDRENEEwOSAvKiBUYWdSZWdpc3RlcnNNb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJREM3OTk3ODQxQ0RFOUZBMjAwNEQ0QTA5IC8qIFRh
Z1JlZ2lzdGVyc01vZGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gREM3OTk3ODExQ0RFOUY5RTAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuY3Bw
ICovOyB9OworCQlEQzlBMEMxRjFEMkQ5Q0IxMDA4NTEyNEUgLyogQjNDYXNlQ29sbGVjdGlvbklu
bGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERD
OUEwQzFFMUQyRDk0RUYwMDg1MTI0RSAvKiBCM0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oICovOyB9
OworCQlEQzlBMEMyMDFEMkQ5Q0IzMDA4NTEyNEUgLyogQjNDYXNlQ29sbGVjdGlvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM5QTBDMUQxRDJEOTRF
RjAwODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rpb24uaCAqLzsgfTsKKwkJREM5QTBDMjExRDJEOUNC
NDAwODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM5QTBDMUMxRDJEOTRFRjAwODUxMjRFIC8qIEIzQ2Fz
ZUNvbGxlY3Rpb24uY3BwICovOyB9OwogCQlEQ0VFMjIwOTFDRUI5ODk1MDAwQzIzOTYgLyogREZH
QmFja3dhcmRzQ0ZHLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBEQ0VFMjIwNjFDRUI5ODkwMDAwQzIzOTYgLyogREZHQmFja3dhcmRzQ0ZHLmggKi87IH07
CiAJCURDRUUyMjBBMUNFQjk4OTUwMDBDMjM5NiAvKiBERkdCYWNrd2FyZHNEb21pbmF0b3JzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQ0VFMjIwNzFD
RUI5ODkwMDAwQzIzOTYgLyogREZHQmFja3dhcmRzRG9taW5hdG9ycy5oICovOyB9OwogCQlEQ0VF
MjIwQjFDRUI5ODk1MDAwQzIzOTYgLyogREZHQ29udHJvbEVxdWl2YWxlbmNlQW5hbHlzaXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDRUUyMjA4MUNF
Qjk4OTAwMDBDMjM5NiAvKiBERkdDb250cm9sRXF1aXZhbGVuY2VBbmFseXNpcy5oICovOyB9OwpA
QCAtMjk2OCw4ICsyOTY5LDYgQEAKIAkJMEZFQzg0QzYxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29u
c3Q2NFZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEIzQ29uc3Q2NFZh
bHVlLmg7IHBhdGggPSBiMy9CM0NvbnN0NjRWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRkVDODRDNzFCREFDREFDMDA4MEZGNzQgLyogQjNDb25zdERvdWJsZVZhbHVlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEIzQ29uc3REb3VibGVWYWx1
ZS5jcHA7IHBhdGggPSBiMy9CM0NvbnN0RG91YmxlVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwRkVDODRDODFCREFDREFDMDA4MEZGNzQgLyogQjNDb25zdERvdWJsZVZh
bHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEIzQ29uc3REb3VibGVWYWx1
ZS5oOyBwYXRoID0gYjMvQjNDb25zdERvdWJsZVZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTBGRUM4NEM5MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnRyb2xWYWx1ZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBCM0NvbnRyb2xWYWx1ZS5jcHA7
IHBhdGggPSBiMy9CM0NvbnRyb2xWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTBGRUM4NENBMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnRyb2xWYWx1ZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCM0NvbnRyb2xWYWx1ZS5oOyBwYXRoID0gYjMvQjND
b250cm9sVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZFQzg0Q0IxQkRB
Q0RBQzAwODBGRjc0IC8qIEIzRnJlcXVlbmN5Q2xhc3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gQjNGcmVxdWVuY3lDbGFzcy5jcHA7IHBhdGggPSBiMy9CM0ZyZXF1
ZW5jeUNsYXNzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZFQzg0Q0MxQkRB
Q0RBQzAwODBGRjc0IC8qIEIzRnJlcXVlbmN5Q2xhc3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gQjNGcmVxdWVuY3lDbGFzcy5oOyBwYXRoID0gYjMvQjNGcmVxdWVuY3lDbGFz
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkVDODRDRDFCREFDREFDMDA4MEZG
NzQgLyogQjNGcmVxdWVudGVkQmxvY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gQjNGcmVxdWVudGVkQmxvY2suaDsgcGF0aCA9IGIzL0IzRnJlcXVlbnRlZEJsb2NrLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00MjMzLDYgKzQyMzIsOSBAQAogCQlEQzY5QUE2
NTFDRjdBMUVGMDBDNjI3MkYgLyogTWF0Y2hSZXN1bHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gTWF0Y2hSZXN1bHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlEQzc5OTc4MTFDREU5RjlFMDA0RDRBMDkgLyogVGFnUmVnaXN0ZXJzTW9kZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUYWdSZWdpc3RlcnNNb2RlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREM3OTk3ODIxQ0RFOUY5RTAwNEQ0QTA5
IC8qIFRhZ1JlZ2lzdGVyc01vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VGFnUmVnaXN0ZXJzTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEQzlBMEMx
QzFEMkQ5NEVGMDA4NTEyNEUgLyogQjNDYXNlQ29sbGVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBCM0Nhc2VDb2xsZWN0aW9uLmNwcDsgcGF0aCA9IGIzL0Iz
Q2FzZUNvbGxlY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEQzlBMEMx
RDFEMkQ5NEVGMDA4NTEyNEUgLyogQjNDYXNlQ29sbGVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBCM0Nhc2VDb2xsZWN0aW9uLmg7IHBhdGggPSBiMy9CM0Nhc2VDb2xs
ZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCURDOUEwQzFFMUQyRDk0RUYw
MDg1MTI0RSAvKiBCM0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBCM0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oOyBwYXRoID0gYjMvQjNDYXNl
Q29sbGVjdGlvbklubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRENFRTIy
MDYxQ0VCOTg5MDAwMEMyMzk2IC8qIERGR0JhY2t3YXJkc0NGRy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBERkdCYWNrd2FyZHNDRkcuaDsgcGF0aCA9IGRmZy9ERkdCYWNrd2Fy
ZHNDRkcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRENFRTIyMDcxQ0VCOTg5MDAw
MEMyMzk2IC8qIERGR0JhY2t3YXJkc0RvbWluYXRvcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gREZHQmFja3dhcmRzRG9taW5hdG9ycy5oOyBwYXRoID0gZGZnL0RGR0JhY2t3
YXJkc0RvbWluYXRvcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRENFRTIyMDgx
Q0VCOTg5MDAwMEMyMzk2IC8qIERGR0NvbnRyb2xFcXVpdmFsZW5jZUFuYWx5c2lzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0NvbnRyb2xFcXVpdmFsZW5jZUFuYWx5c2lz
Lmg7IHBhdGggPSBkZmcvREZHQ29udHJvbEVxdWl2YWxlbmNlQW5hbHlzaXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ2OTgsNiArNDcwMCw5IEBACiAJCQkJRENGREZCRDcxRDFG
NUQ5ODAwRkUzRDcyIC8qIEIzQm90dG9tUHJvdmlkZXIuaCAqLywKIAkJCQkwRjZCOEFERTFDNEVG
RTE3MDA5NjkwNTIgLyogQjNCcmVha0NyaXRpY2FsRWRnZXMuY3BwICovLAogCQkJCTBGNkI4QURG
MUM0RUZFMTcwMDk2OTA1MiAvKiBCM0JyZWFrQ3JpdGljYWxFZGdlcy5oICovLAorCQkJCURDOUEw
QzFDMUQyRDk0RUYwMDg1MTI0RSAvKiBCM0Nhc2VDb2xsZWN0aW9uLmNwcCAqLywKKwkJCQlEQzlB
MEMxRDFEMkQ5NEVGMDA4NTEyNEUgLyogQjNDYXNlQ29sbGVjdGlvbi5oICovLAorCQkJCURDOUEw
QzFFMUQyRDk0RUYwMDg1MTI0RSAvKiBCM0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oICovLAogCQkJ
CTBGMzM4REY3MUJFOTZBQTgwMDEzQzg4RiAvKiBCM0NDYWxsVmFsdWUuY3BwICovLAogCQkJCTBG
MzM4REY4MUJFOTZBQTgwMDEzQzg4RiAvKiBCM0NDYWxsVmFsdWUuaCAqLywKIAkJCQkwRjMzRkNG
OTFDMTYyNUJFMDAzMjNGNjcgLyogQjNDRkcuaCAqLywKQEAgLTQ3MjMsOCArNDcyOCw2IEBACiAJ
CQkJMEZFQzg1QjIxQkRFRDk1NzAwODBGRjc0IC8qIEIzQ29uc3RQdHJWYWx1ZS5oICovLAogCQkJ
CTBGMzM4REYzMUJFOTNENTUwMDEzQzg4RiAvKiBCM0NvbnN0cmFpbmVkVmFsdWUuY3BwICovLAog
CQkJCTBGMzM4REY0MUJFOTNENTUwMDEzQzg4RiAvKiBCM0NvbnN0cmFpbmVkVmFsdWUuaCAqLywK
LQkJCQkwRkVDODRDOTFCREFDREFDMDA4MEZGNzQgLyogQjNDb250cm9sVmFsdWUuY3BwICovLAot
CQkJCTBGRUM4NENBMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnRyb2xWYWx1ZS5oICovLAogCQkJ
CTBGMzM4RTAxMUJGMDI3NkMwMDEzQzg4RiAvKiBCM0RhdGFTZWN0aW9uLmNwcCAqLywKIAkJCQkw
RjMzOEUwMjFCRjAyNzZDMDAxM0M4OEYgLyogQjNEYXRhU2VjdGlvbi5oICovLAogCQkJCTBGMzNG
Q0ZBMUMxNjI1QkUwMDMyM0Y2NyAvKiBCM0RvbWluYXRvcnMuaCAqLywKQEAgLTcwODAsNyArNzA4
Myw2IEBACiAJCQkJMEZFQzg1MTAxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29uc3Q2NFZhbHVlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODUxMjFCREFDREFDMDA4MEZGNzQgLyogQjNDb25zdERv
dWJsZVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODVCMzFCREVEOTU3MDA4MEZGNzQg
LyogQjNDb25zdFB0clZhbHVlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkVDODUxNDFCREFDREFD
MDA4MEZGNzQgLyogQjNDb250cm9sVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NUMx
MUJFMTY3QTAwMDgwRkY3NCAvKiBCM0VmZmVjdHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4
NTE2MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0ZyZXF1ZW5jeUNsYXNzLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjYxODMyRjFDNDVCRjA3MDA3MjQ1MEIgLyogQWlyTG93ZXJBZnRlclJlZ0FsbG9jLmgg
aW4gSGVhZGVycyAqLywKQEAgLTcyNDEsNiArNzI0Myw3IEBACiAJCQkJQkMxOEMzRkIwRTE2RjVD
RDAwQjM0NDYwIC8qIERlYnVnZ2VyQ2FsbEZyYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQk2QUQy
Q0I0RDE5QjkxNDAxMDAwNjU3MTkgLyogRGVidWdnZXJFdmFsRW5hYmxlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRkVBMDg2MjExODJCN0EwNDAwRjZEODUxIC8qIERlYnVnZ2VyUHJpbWl0aXZlcy5o
IGluIEhlYWRlcnMgKi8sCisJCQkJREM5QTBDMUYxRDJEOUNCMTAwODUxMjRFIC8qIEIzQ2FzZUNv
bGxlY3Rpb25JbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJENERERTE5ODMyRDM0MDA3
RDRCMTkgLyogRGVidWdnZXJTY29wZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYxMzZENEQxNzRB
RDY5RTAwNzVCMzU0IC8qIERlZmVyR0MuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzcxMkRGMTdD
RDg3N0MwMDhDQzkzQyAvKiBEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaCBpbiBIZWFkZXJz
ICovLApAQCAtNzQ5NCw2ICs3NDk3LDcgQEAKIAkJCQkwRkUwRTRBRTFDMjRDOTRBMDAyRTE3QjYg
LyogQWlyVG1wV2lkdGguaCBpbiBIZWFkZXJzICovLAogCQkJCUE3RjI5OTZDMTdBMEJCNjcwMDEw
NDE3QSAvKiBGVExGYWlsLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVBMEEyQzE3MEI2NjE5MDBC
QjcyMkMgLyogRlRMRm9ybWF0dGVkVmFsdWUuaCBpbiBIZWFkZXJzICovLAorCQkJCURDOUEwQzIw
MUQyRDlDQjMwMDg1MTI0RSAvKiBCM0Nhc2VDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRkQ4QTMxQTE3RDUxRjIyMDBDQTJDNDAgLyogRlRMRm9yT1NSRW50cnlKSVRDb2RlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBNzhBOTc3RjE3OTczOEQ1MDA5REY3NDQgLyogRlRMR2VuZXJhdGVk
RnVuY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUEwQTBFMTcwNTEzREIwMEJCNzIyQyAv
KiBGVExKSVRDb2RlLmggaW4gSGVhZGVycyAqLywKQEAgLTg3MjcsNyArODczMSw2IEBACiAJCQkJ
NDM2RTU0NTQxQzQ2OEU3NzAwQjVBRjczIC8qIEIzTGVnYWxpemVNZW1vcnlPZmZzZXRzLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTBGRUM4NTBGMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0NjRW
YWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkVDODUxMTFCREFDREFDMDA4MEZGNzQgLyog
QjNDb25zdERvdWJsZVZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBGRUM4NTEzMUJEQUNE
QUMwMDgwRkY3NCAvKiBCM0NvbnRyb2xWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkVD
ODVDNTFCRTE2RjVBMDA4MEZGNzQgLyogQjNFZmZlY3RzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTBGRUM4NTE1MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0ZyZXF1ZW5jeUNsYXNzLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGRUM4NTE4MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0dlbmVyYXRlLmNwcCBp
biBTb3VyY2VzICovLApAQCAtOTE3Miw2ICs5MTc1LDcgQEAKIAkJCQkxNDdGMzlEMjEwN0VDMzc2
MDA0MjdBNDggLyogSlNHbG9iYWxPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVGRDAw
ODUxODlCMUI3RTAwNjMzMjMxIC8qIEpTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE1QzNBMUE1MThDMDQ5MDIwMEM5NTkzQSAvKiBKU0dsb2JhbE9iamVj
dENvbnNvbGVDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJREM5QTBDMjExRDJEOUNCNDAw
ODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTU5NDU1
OTIxODI0NzQ0NzAwQ0MzODQzIC8qIEpTR2xvYmFsT2JqZWN0RGVidWdnYWJsZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBNTdEMjNFOTE4OTFCMDc3MDAzMUM3RkEgLyogSlNHbG9iYWxPYmplY3RE
ZWJ1Z2dlckFnZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0RTlEMTdCMTA3RUM0NjkwMDRE
REEyMSAvKiBKU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJBUk02NC5oCShyZXZpc2lvbiAyMDMzNzEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAkod29ya2luZyBjb3B5KQpAQCAtMjg4Myw2ICsy
ODgzLDEyIEBAIHB1YmxpYzoKICAgICAgICAgbG9hZDY0KGFkZHJlc3MsIGdldENhY2hlZERhdGFU
ZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUoKSk7CiAgICAgICAgIG1fYXNzZW1ibGVyLmJyKGRh
dGFUZW1wUmVnaXN0ZXIpOwogICAgIH0KKyAgICAKKyAgICB2b2lkIGp1bXAoQmFzZUluZGV4IGFk
ZHJlc3MpCisgICAgeworICAgICAgICBsb2FkNjQoYWRkcmVzcywgZ2V0Q2FjaGVkRGF0YVRlbXBS
ZWdpc3RlcklEQW5kSW52YWxpZGF0ZSgpKTsKKyAgICAgICAgbV9hc3NlbWJsZXIuYnIoZGF0YVRl
bXBSZWdpc3Rlcik7CisgICAgfQogCiAgICAgdm9pZCBqdW1wKEFic29sdXRlQWRkcmVzcyBhZGRy
ZXNzKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJYODZDb21tb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgJKHJldmlzaW9uIDIwMzM3MSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24u
aAkod29ya2luZyBjb3B5KQpAQCAtMjI2NCw2ICsyMjY0LDEyIEBAIHB1YmxpYzoKICAgICAgICAg
bV9hc3NlbWJsZXIuam1wX20oYWRkcmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFzZSk7CiAgICAgfQog
CisgICAgLy8gQWRkcmVzcyBpcyBhIG1lbW9yeSBsb2NhdGlvbiBjb250YWluaW5nIHRoZSBhZGRy
ZXNzIHRvIGp1bXAgdG8KKyAgICB2b2lkIGp1bXAoQmFzZUluZGV4IGFkZHJlc3MpCisgICAgewor
ICAgICAgICBtX2Fzc2VtYmxlci5qbXBfbShhZGRyZXNzLm9mZnNldCwgYWRkcmVzcy5iYXNlLCBh
ZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKKyAgICB9CisKIAogICAgIC8vIEFyaXRobWV0
aWMgY29udHJvbCBmbG93IG9wZXJhdGlvbnM6CiAgICAgLy8KSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaAkocmV2aXNpb24gMjAzMzcxKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTk4Myw2ICsxOTgzLDExIEBAIHB1YmxpYzoKICAgICAgICAgbV9mb3JtYXR0
ZXIub25lQnl0ZU9wKE9QX0dST1VQNV9FdiwgR1JPVVA1X09QX0pNUE4sIGJhc2UsIG9mZnNldCk7
CiAgICAgfQogICAgIAorICAgIHZvaWQgam1wX20oaW50IG9mZnNldCwgUmVnaXN0ZXJJRCBiYXNl
LCBSZWdpc3RlcklEIGluZGV4LCBpbnQgc2NhbGUpCisgICAgeworICAgICAgICBtX2Zvcm1hdHRl
ci5vbmVCeXRlT3AoT1BfR1JPVVA1X0V2LCBHUk9VUDVfT1BfSk1QTiwgYmFzZSwgaW5kZXgsIHNj
YWxlLCBvZmZzZXQpOworICAgIH0KKyAgICAKICNpZiAhQ1BVKFg4Nl82NCkKICAgICB2b2lkIGpt
cF9tKGNvbnN0IHZvaWQqIGFkZHJlc3MpCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzQmFzaWNCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzQmFzaWNCbG9jay5jcHAJKHJldmlzaW9uIDIwMzM3MSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICsz
MCw2IEBACiAKICNpbmNsdWRlICJCM0Jhc2ljQmxvY2tJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNC
YXNpY0Jsb2NrVXRpbHMuaCIKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUg
IkIzUHJvY2VkdXJlLmgiCiAjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlIDx3
dGYvTGlzdER1bXAuaD4KQEAgLTUyLDEyICs1MSwxNCBAQCBCYXNpY0Jsb2NrOjp+QmFzaWNCbG9j
aygpCiB2b2lkIEJhc2ljQmxvY2s6OmFwcGVuZChWYWx1ZSogdmFsdWUpCiB7CiAgICAgbV92YWx1
ZXMuYXBwZW5kKHZhbHVlKTsKKyAgICB2YWx1ZS0+b3duZXIgPSB0aGlzOwogfQogCiB2b2lkIEJh
c2ljQmxvY2s6OmFwcGVuZE5vblRlcm1pbmFsKFZhbHVlKiB2YWx1ZSkKIHsKICAgICBtX3ZhbHVl
cy5hcHBlbmQobV92YWx1ZXMubGFzdCgpKTsKICAgICBtX3ZhbHVlc1ttX3ZhbHVlcy5zaXplKCkg
LSAxXSA9IHZhbHVlOworICAgIHZhbHVlLT5vd25lciA9IHRoaXM7CiB9CiAKIHZvaWQgQmFzaWNC
bG9jazo6cmVtb3ZlTGFzdChQcm9jZWR1cmUmIHByb2MpCkBAIC04NCw5ICs4NSw0MSBAQCBWYWx1
ZSogQmFzaWNCbG9jazo6YXBwZW5kSW50Q29uc3RhbnQoUHJvCiAgICAgcmV0dXJuIGFwcGVuZElu
dENvbnN0YW50KHByb2MsIGxpa2VWYWx1ZS0+b3JpZ2luKCksIGxpa2VWYWx1ZS0+dHlwZSgpLCB2
YWx1ZSk7CiB9CiAKK3ZvaWQgQmFzaWNCbG9jazo6Y2xlYXJTdWNjZXNzb3JzKCkKK3sKKyAgICBt
X3N1Y2Nlc3NvcnMuY2xlYXIoKTsKK30KKwordm9pZCBCYXNpY0Jsb2NrOjphcHBlbmRTdWNjZXNz
b3IoY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YXJnZXQpCit7CisgICAgbV9zdWNjZXNzb3JzLmFw
cGVuZCh0YXJnZXQpOworfQorCit2b2lkIEJhc2ljQmxvY2s6OnNldFN1Y2Nlc3NvcnMoY29uc3Qg
RnJlcXVlbnRlZEJsb2NrJiB0YXJnZXQpCit7CisgICAgbV9zdWNjZXNzb3JzLnJlc2l6ZSgxKTsK
KyAgICBtX3N1Y2Nlc3NvcnNbMF0gPSB0YXJnZXQ7Cit9CisKK3ZvaWQgQmFzaWNCbG9jazo6c2V0
U3VjY2Vzc29ycyhjb25zdCBGcmVxdWVudGVkQmxvY2smIHRha2VuLCBjb25zdCBGcmVxdWVudGVk
QmxvY2smIG5vdFRha2VuKQoreworICAgIG1fc3VjY2Vzc29ycy5yZXNpemUoMik7CisgICAgbV9z
dWNjZXNzb3JzWzBdID0gdGFrZW47CisgICAgbV9zdWNjZXNzb3JzWzFdID0gbm90VGFrZW47Cit9
CisKIGJvb2wgQmFzaWNCbG9jazo6cmVwbGFjZVN1Y2Nlc3NvcihCYXNpY0Jsb2NrKiBmcm9tLCBC
YXNpY0Jsb2NrKiB0bykKIHsKLSAgICByZXR1cm4gbGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCkt
PnJlcGxhY2VTdWNjZXNzb3IoZnJvbSwgdG8pOworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7Cisg
ICAgZm9yIChCYXNpY0Jsb2NrKiYgc3VjY2Vzc29yIDogc3VjY2Vzc29yQmxvY2tzKCkpIHsKKyAg
ICAgICAgaWYgKHN1Y2Nlc3NvciA9PSBmcm9tKSB7CisgICAgICAgICAgICBzdWNjZXNzb3IgPSB0
bzsKKyAgICAgICAgICAgIHJlc3VsdCA9IHRydWU7CisgICAgICAgICAgICAKKyAgICAgICAgICAg
IC8vIEtlZXAgbG9vcGluZyBiZWNhdXNlIGEgc3VjY2Vzc29yIG1heSBiZSBtZW50aW9uZWQgbXVs
dGlwbGUgdGltZXMsIGxpa2UgaW4gYSBTd2l0Y2guCisgICAgICAgIH0KKyAgICB9CisgICAgcmV0
dXJuIHJlc3VsdDsKIH0KIAogYm9vbCBCYXNpY0Jsb2NrOjphZGRQcmVkZWNlc3NvcihCYXNpY0Js
b2NrKiBibG9jaykKQEAgLTEyMSw2ICsxNTQsNDIgQEAgdm9pZCBCYXNpY0Jsb2NrOjpkZWVwRHVt
cChjb25zdCBQcm9jZWR1cgogICAgICAgICBvdXQucHJpbnQoIiAgUHJlZGVjZXNzb3JzOiAiLCBw
b2ludGVyTGlzdER1bXAocHJlZGVjZXNzb3JzKCkpLCAiXG4iKTsKICAgICBmb3IgKFZhbHVlKiB2
YWx1ZSA6ICp0aGlzKQogICAgICAgICBvdXQucHJpbnQoIiAgICAiLCBCMzo6ZGVlcER1bXAocHJv
YywgdmFsdWUpLCAiXG4iKTsKKyAgICBpZiAoIXN1Y2Nlc3NvcnMoKS5pc0VtcHR5KCkpIHsKKyAg
ICAgICAgb3V0LnByaW50KCIgIFN1Y2Nlc3NvcnM6ICIpOworICAgICAgICBpZiAoc2l6ZSgpKQor
ICAgICAgICAgICAgbGFzdCgpLT5kdW1wU3VjY2Vzc29ycyh0aGlzLCBvdXQpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBvdXQucHJpbnQobGlzdER1bXAoc3VjY2Vzc29ycygpKSk7CisgICAg
ICAgIG91dC5wcmludCgiXG4iKTsKKyAgICB9Cit9CisKK1ZhbHVlKiBCYXNpY0Jsb2NrOjphcHBl
bmROZXdDb250cm9sVmFsdWUoUHJvY2VkdXJlJiBwcm9jLCBPcGNvZGUgb3Bjb2RlLCBPcmlnaW4g
b3JpZ2luKQoreworICAgIFJFTEVBU0VfQVNTRVJUKG9wY29kZSA9PSBPb3BzKTsKKyAgICBjbGVh
clN1Y2Nlc3NvcnMoKTsKKyAgICByZXR1cm4gYXBwZW5kTmV3PFZhbHVlPihwcm9jLCBvcGNvZGUs
IG9yaWdpbik7Cit9CisKK1ZhbHVlKiBCYXNpY0Jsb2NrOjphcHBlbmROZXdDb250cm9sVmFsdWUo
UHJvY2VkdXJlJiBwcm9jLCBPcGNvZGUgb3Bjb2RlLCBPcmlnaW4gb3JpZ2luLCBWYWx1ZSogdmFs
dWUpCit7CisgICAgUkVMRUFTRV9BU1NFUlQob3Bjb2RlID09IFJldHVybik7CisgICAgY2xlYXJT
dWNjZXNzb3JzKCk7CisgICAgcmV0dXJuIGFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgb3Bjb2RlLCBv
cmlnaW4sIHZhbHVlKTsKK30KKworVmFsdWUqIEJhc2ljQmxvY2s6OmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShQcm9jZWR1cmUmIHByb2MsIE9wY29kZSBvcGNvZGUsIE9yaWdpbiBvcmlnaW4sIGNvbnN0
IEZyZXF1ZW50ZWRCbG9jayYgdGFyZ2V0KQoreworICAgIFJFTEVBU0VfQVNTRVJUKG9wY29kZSA9
PSBKdW1wKTsKKyAgICBzZXRTdWNjZXNzb3JzKHRhcmdldCk7CisgICAgcmV0dXJuIGFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgb3Bjb2RlLCBvcmlnaW4pOworfQorCitWYWx1ZSogQmFzaWNCbG9jazo6
YXBwZW5kTmV3Q29udHJvbFZhbHVlKFByb2NlZHVyZSYgcHJvYywgT3Bjb2RlIG9wY29kZSwgT3Jp
Z2luIG9yaWdpbiwgVmFsdWUqIHByZWRpY2F0ZSwgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YWtl
biwgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBub3RUYWtlbikKK3sKKyAgICBSRUxFQVNFX0FTU0VS
VChvcGNvZGUgPT0gQnJhbmNoKTsKKyAgICBzZXRTdWNjZXNzb3JzKHRha2VuLCBub3RUYWtlbik7
CisgICAgcmV0dXJuIGFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgb3Bjb2RlLCBvcmlnaW4sIHByZWRp
Y2F0ZSk7CiB9CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2suaAkocmV2aXNpb24gMjAzMzcxKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsy
OSw3IEBACiAjaWYgRU5BQkxFKEIzX0pJVCkKIAogI2luY2x1ZGUgIkIzRnJlcXVlbnRlZEJsb2Nr
LmgiCisjaW5jbHVkZSAiQjNPcGNvZGUuaCIKICNpbmNsdWRlICJCM09yaWdpbi5oIgogI2luY2x1
ZGUgIkIzU3VjY2Vzc29yQ29sbGVjdGlvbi5oIgogI2luY2x1ZGUgIkIzVHlwZS5oIgpAQCAtNDcs
NyArNDgsNyBAQCBjbGFzcyBCYXNpY0Jsb2NrIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIFZlY3Rv
cjxWYWx1ZSo+IFZhbHVlTGlzdDsKICAgICB0eXBlZGVmIFZlY3RvcjxCYXNpY0Jsb2NrKiwgMj4g
UHJlZGVjZXNzb3JMaXN0OwotICAgIHR5cGVkZWYgVmVjdG9yPEZyZXF1ZW50ZWRCbG9jaywgMj4g
U3VjY2Vzc29yTGlzdDsgLy8gVGhpcyBtYXRjaGVzIENvbnRyb2xWYWx1ZTo6U3VjY2Vzc29yTGlz
dAorICAgIHR5cGVkZWYgVmVjdG9yPEZyZXF1ZW50ZWRCbG9jaywgMj4gU3VjY2Vzc29yTGlzdDsK
IAogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBkdW1wUHJlZml4OwogCkBAIC04NywxOCAr
ODgsMzkgQEAgcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5h
bWUuLi4gQXJndW1lbnRzPgogICAgIFZhbHVlVHlwZSogcmVwbGFjZUxhc3RXaXRoTmV3KFByb2Nl
ZHVyZSYsIEFyZ3VtZW50cy4uLik7CiAKLSAgICB1bnNpZ25lZCBudW1TdWNjZXNzb3JzKCkgY29u
c3Q7Ci0gICAgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBzdWNjZXNzb3IodW5zaWduZWQgaW5kZXgp
IGNvbnN0OwotICAgIEZyZXF1ZW50ZWRCbG9jayYgc3VjY2Vzc29yKHVuc2lnbmVkIGluZGV4KTsK
LSAgICBjb25zdCBTdWNjZXNzb3JMaXN0JiBzdWNjZXNzb3JzKCkgY29uc3Q7Ci0gICAgU3VjY2Vz
c29yTGlzdCYgc3VjY2Vzc29ycygpOwotCi0gICAgQmFzaWNCbG9jayogc3VjY2Vzc29yQmxvY2so
dW5zaWduZWQgaW5kZXgpIGNvbnN0OwotICAgIEJhc2ljQmxvY2sqJiBzdWNjZXNzb3JCbG9jayh1
bnNpZ25lZCBpbmRleCk7Ci0gICAgU3VjY2Vzc29yQ29sbGVjdGlvbjxCYXNpY0Jsb2NrLCBTdWNj
ZXNzb3JMaXN0PiBzdWNjZXNzb3JCbG9ja3MoKTsKLSAgICBTdWNjZXNzb3JDb2xsZWN0aW9uPGNv
bnN0IEJhc2ljQmxvY2ssIGNvbnN0IFN1Y2Nlc3Nvckxpc3Q+IHN1Y2Nlc3NvckJsb2NrcygpIGNv
bnN0OworICAgIHVuc2lnbmVkIG51bVN1Y2Nlc3NvcnMoKSBjb25zdCB7IHJldHVybiBtX3N1Y2Nl
c3NvcnMuc2l6ZSgpOyB9CisgICAgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBzdWNjZXNzb3IodW5z
aWduZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fc3VjY2Vzc29yc1tpbmRleF07IH0KKyAgICBG
cmVxdWVudGVkQmxvY2smIHN1Y2Nlc3Nvcih1bnNpZ25lZCBpbmRleCkgeyByZXR1cm4gbV9zdWNj
ZXNzb3JzW2luZGV4XTsgfQorICAgIGNvbnN0IFN1Y2Nlc3Nvckxpc3QmIHN1Y2Nlc3NvcnMoKSBj
b25zdCB7IHJldHVybiBtX3N1Y2Nlc3NvcnM7IH0KKyAgICBTdWNjZXNzb3JMaXN0JiBzdWNjZXNz
b3JzKCkgeyByZXR1cm4gbV9zdWNjZXNzb3JzOyB9CisgICAgCisgICAgdm9pZCBjbGVhclN1Y2Nl
c3NvcnMoKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIGFwcGVuZFN1Y2Nlc3Nvcihjb25z
dCBGcmVxdWVudGVkQmxvY2smKTsKKyAgICB2b2lkIHNldFN1Y2Nlc3NvcnMoY29uc3QgRnJlcXVl
bnRlZEJsb2NrJik7CisgICAgdm9pZCBzZXRTdWNjZXNzb3JzKGNvbnN0IEZyZXF1ZW50ZWRCbG9j
ayYsIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYpOworCisgICAgQmFzaWNCbG9jayogc3VjY2Vzc29y
QmxvY2sodW5zaWduZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIHN1Y2Nlc3NvcihpbmRleCkuYmxv
Y2soKTsgfQorICAgIEJhc2ljQmxvY2sqJiBzdWNjZXNzb3JCbG9jayh1bnNpZ25lZCBpbmRleCkg
eyByZXR1cm4gc3VjY2Vzc29yKGluZGV4KS5ibG9jaygpOyB9CisgICAgU3VjY2Vzc29yQ29sbGVj
dGlvbjxCYXNpY0Jsb2NrLCBTdWNjZXNzb3JMaXN0PiBzdWNjZXNzb3JCbG9ja3MoKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIFN1Y2Nlc3NvckNvbGxlY3Rpb248QmFzaWNCbG9jaywgU3VjY2Vzc29y
TGlzdD4oc3VjY2Vzc29ycygpKTsKKyAgICB9CisgICAgU3VjY2Vzc29yQ29sbGVjdGlvbjxjb25z
dCBCYXNpY0Jsb2NrLCBjb25zdCBTdWNjZXNzb3JMaXN0PiBzdWNjZXNzb3JCbG9ja3MoKSBjb25z
dAorICAgIHsKKyAgICAgICAgcmV0dXJuIFN1Y2Nlc3NvckNvbGxlY3Rpb248Y29uc3QgQmFzaWNC
bG9jaywgY29uc3QgU3VjY2Vzc29yTGlzdD4oc3VjY2Vzc29ycygpKTsKKyAgICB9CiAKICAgICBi
b29sIHJlcGxhY2VTdWNjZXNzb3IoQmFzaWNCbG9jayogZnJvbSwgQmFzaWNCbG9jayogdG8pOwor
ICAgIAorICAgIC8vIFRoaXMgaXMgb25seSB2YWxpZCBmb3IgSnVtcCBhbmQgQnJhbmNoLgorICAg
IGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgdGFrZW4oKSBjb25zdDsKKyAgICBGcmVxdWVudGVkQmxv
Y2smIHRha2VuKCk7CisgICAgLy8gVGhpcyBpcyBvbmx5IHZhbGlkIGZvciBCcmFuY2guCisgICAg
Y29uc3QgRnJlcXVlbnRlZEJsb2NrJiBub3RUYWtlbigpIGNvbnN0OworICAgIEZyZXF1ZW50ZWRC
bG9jayYgbm90VGFrZW4oKTsKKyAgICAvLyBUaGlzIGlzIG9ubHkgdmFsaWQgZm9yIEJyYW5jaCBh
bmQgU3dpdGNoLgorICAgIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgZmFsbFRocm91Z2goKSBjb25z
dDsKKyAgICBGcmVxdWVudGVkQmxvY2smIGZhbGxUaHJvdWdoKCk7CiAKICAgICB1bnNpZ25lZCBu
dW1QcmVkZWNlc3NvcnMoKSBjb25zdCB7IHJldHVybiBtX3ByZWRlY2Vzc29ycy5zaXplKCk7IH0K
ICAgICBCYXNpY0Jsb2NrKiBwcmVkZWNlc3Nvcih1bnNpZ25lZCBpbmRleCkgY29uc3QgeyByZXR1
cm4gbV9wcmVkZWNlc3NvcnNbaW5kZXhdOyB9CkBAIC0xMTksNiArMTQxLDE5IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKICAgICB2b2lkIGRlZXBEdW1wKGNv
bnN0IFByb2NlZHVyZSYsIFByaW50U3RyZWFtJikgY29uc3Q7CiAKKyAgICAvLyBUaGVzZSBhcmUg
ZGVwcmVjYXRlZCBtZXRob2QgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCB0aGUgb2xkIENvbnRyb2xW
YWx1ZSBjbGFzcy4gRG9uJ3QgdXNlIHRoZW0KKyAgICAvLyBpbiBuZXcgY29kZS4KKyAgICAvLyBG
SVhNRTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTQ0MAorICAg
IAorICAgIC8vIFVzZSB0aGlzIGZvciBPb3BzLgorICAgIEpTX0VYUE9SVF9QUklWQVRFIFZhbHVl
KiBhcHBlbmROZXdDb250cm9sVmFsdWUoUHJvY2VkdXJlJiwgT3Bjb2RlLCBPcmlnaW4pOworICAg
IC8vIFVzZSB0aGlzIGZvciBSZXR1cm4uCisgICAgSlNfRVhQT1JUX1BSSVZBVEUgVmFsdWUqIGFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShQcm9jZWR1cmUmLCBPcGNvZGUsIE9yaWdpbiwgVmFsdWUqKTsK
KyAgICAvLyBVc2UgdGhpcyBmb3IgSnVtcC4KKyAgICBKU19FWFBPUlRfUFJJVkFURSBWYWx1ZSog
YXBwZW5kTmV3Q29udHJvbFZhbHVlKFByb2NlZHVyZSYsIE9wY29kZSwgT3JpZ2luLCBjb25zdCBG
cmVxdWVudGVkQmxvY2smKTsKKyAgICAvLyBVc2UgdGhpcyBmb3IgQnJhbmNoLgorICAgIEpTX0VY
UE9SVF9QUklWQVRFIFZhbHVlKiBhcHBlbmROZXdDb250cm9sVmFsdWUoUHJvY2VkdXJlJiwgT3Bj
b2RlLCBPcmlnaW4sIFZhbHVlKiwgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiwgY29uc3QgRnJlcXVl
bnRlZEJsb2NrJik7CisgICAgCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBCbG9ja0luc2Vy
dGlvblNldDsKICAgICBmcmllbmQgY2xhc3MgSW5zZXJ0aW9uU2V0OwpAQCAtMTMwLDYgKzE2NSw3
IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9pbmRleDsKICAgICBWYWx1ZUxpc3QgbV92YWx1
ZXM7CiAgICAgUHJlZGVjZXNzb3JMaXN0IG1fcHJlZGVjZXNzb3JzOworICAgIFN1Y2Nlc3Nvckxp
c3QgbV9zdWNjZXNzb3JzOwogICAgIGRvdWJsZSBtX2ZyZXF1ZW5jeTsKIH07CiAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2tJbmxpbmVzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9ja0lubGluZXMuaAkocmV2aXNp
b24gMjAzMzcxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9ja0lubGlu
ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjksOCArMjksOCBAQAogI2lmIEVOQUJMRShCM19KSVQp
CiAKICNpbmNsdWRlICJCM0Jhc2ljQmxvY2suaCIKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5o
IgogI2luY2x1ZGUgIkIzUHJvY2VkdXJlSW5saW5lcy5oIgorI2luY2x1ZGUgIkIzVmFsdWUuaCIK
IAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKQEAgLTU4LDQ5ICs1OCw0MCBAQCBW
YWx1ZVR5cGUqIEJhc2ljQmxvY2s6OnJlcGxhY2VMYXN0V2l0aE5lCiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIAotaW5saW5lIHVuc2lnbmVkIEJhc2ljQmxvY2s6Om51bVN1Y2Nlc3NvcnMoKSBjb25z
dAoraW5saW5lIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgQmFzaWNCbG9jazo6dGFrZW4oKSBjb25z
dAogewotICAgIHJldHVybiBsYXN0KCktPmFzPENvbnRyb2xWYWx1ZT4oKS0+bnVtU3VjY2Vzc29y
cygpOworICAgIEFTU0VSVChsYXN0KCktPm9wY29kZSgpID09IEp1bXAgfHwgbGFzdCgpLT5vcGNv
ZGUoKSA9PSBCcmFuY2gpOworICAgIHJldHVybiBtX3N1Y2Nlc3NvcnNbMF07CiB9CiAKLWlubGlu
ZSBjb25zdCBGcmVxdWVudGVkQmxvY2smIEJhc2ljQmxvY2s6OnN1Y2Nlc3Nvcih1bnNpZ25lZCBp
bmRleCkgY29uc3QKK2lubGluZSBGcmVxdWVudGVkQmxvY2smIEJhc2ljQmxvY2s6OnRha2VuKCkK
IHsKLSAgICByZXR1cm4gbGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCktPnN1Y2Nlc3NvcihpbmRl
eCk7CisgICAgQVNTRVJUKGxhc3QoKS0+b3Bjb2RlKCkgPT0gSnVtcCB8fCBsYXN0KCktPm9wY29k
ZSgpID09IEJyYW5jaCk7CisgICAgcmV0dXJuIG1fc3VjY2Vzc29yc1swXTsKIH0KIAotaW5saW5l
IEZyZXF1ZW50ZWRCbG9jayYgQmFzaWNCbG9jazo6c3VjY2Vzc29yKHVuc2lnbmVkIGluZGV4KQor
aW5saW5lIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgQmFzaWNCbG9jazo6bm90VGFrZW4oKSBjb25z
dAogewotICAgIHJldHVybiBsYXN0KCktPmFzPENvbnRyb2xWYWx1ZT4oKS0+c3VjY2Vzc29yKGlu
ZGV4KTsKKyAgICBBU1NFUlQobGFzdCgpLT5vcGNvZGUoKSA9PSBCcmFuY2gpOworICAgIHJldHVy
biBtX3N1Y2Nlc3NvcnNbMV07CiB9CiAKLWlubGluZSBjb25zdCBCYXNpY0Jsb2NrOjpTdWNjZXNz
b3JMaXN0JiBCYXNpY0Jsb2NrOjpzdWNjZXNzb3JzKCkgY29uc3QKK2lubGluZSBGcmVxdWVudGVk
QmxvY2smIEJhc2ljQmxvY2s6Om5vdFRha2VuKCkKIHsKLSAgICByZXR1cm4gbGFzdCgpLT5hczxD
b250cm9sVmFsdWU+KCktPnN1Y2Nlc3NvcnMoKTsKKyAgICBBU1NFUlQobGFzdCgpLT5vcGNvZGUo
KSA9PSBCcmFuY2gpOworICAgIHJldHVybiBtX3N1Y2Nlc3NvcnNbMV07CiB9CiAKLWlubGluZSBC
YXNpY0Jsb2NrOjpTdWNjZXNzb3JMaXN0JiBCYXNpY0Jsb2NrOjpzdWNjZXNzb3JzKCkKK2lubGlu
ZSBjb25zdCBGcmVxdWVudGVkQmxvY2smIEJhc2ljQmxvY2s6OmZhbGxUaHJvdWdoKCkgY29uc3QK
IHsKLSAgICByZXR1cm4gbGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCktPnN1Y2Nlc3NvcnMoKTsK
KyAgICBBU1NFUlQobGFzdCgpLT5vcGNvZGUoKSA9PSBCcmFuY2ggfHwgbGFzdCgpLT5vcGNvZGUo
KSA9PSBTd2l0Y2gpOworICAgIHJldHVybiBtX3N1Y2Nlc3NvcnMubGFzdCgpOwogfQogCi1pbmxp
bmUgQmFzaWNCbG9jayogQmFzaWNCbG9jazo6c3VjY2Vzc29yQmxvY2sodW5zaWduZWQgaW5kZXgp
IGNvbnN0CitpbmxpbmUgRnJlcXVlbnRlZEJsb2NrJiBCYXNpY0Jsb2NrOjpmYWxsVGhyb3VnaCgp
CiB7Ci0gICAgcmV0dXJuIHN1Y2Nlc3NvcihpbmRleCkuYmxvY2soKTsKLX0KLQotaW5saW5lIEJh
c2ljQmxvY2sqJiBCYXNpY0Jsb2NrOjpzdWNjZXNzb3JCbG9jayh1bnNpZ25lZCBpbmRleCkKLXsK
LSAgICByZXR1cm4gc3VjY2Vzc29yKGluZGV4KS5ibG9jaygpOwotfQotCi1pbmxpbmUgU3VjY2Vz
c29yQ29sbGVjdGlvbjxCYXNpY0Jsb2NrLCBCYXNpY0Jsb2NrOjpTdWNjZXNzb3JMaXN0PiBCYXNp
Y0Jsb2NrOjpzdWNjZXNzb3JCbG9ja3MoKQotewotICAgIHJldHVybiBTdWNjZXNzb3JDb2xsZWN0
aW9uPEJhc2ljQmxvY2ssIFN1Y2Nlc3Nvckxpc3Q+KHN1Y2Nlc3NvcnMoKSk7Ci19Ci0KLWlubGlu
ZSBTdWNjZXNzb3JDb2xsZWN0aW9uPGNvbnN0IEJhc2ljQmxvY2ssIGNvbnN0IEJhc2ljQmxvY2s6
OlN1Y2Nlc3Nvckxpc3Q+IEJhc2ljQmxvY2s6OnN1Y2Nlc3NvckJsb2NrcygpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIFN1Y2Nlc3NvckNvbGxlY3Rpb248Y29uc3QgQmFzaWNCbG9jaywgY29uc3QgU3Vj
Y2Vzc29yTGlzdD4oc3VjY2Vzc29ycygpKTsKKyAgICBBU1NFUlQobGFzdCgpLT5vcGNvZGUoKSA9
PSBCcmFuY2ggfHwgbGFzdCgpLT5vcGNvZGUoKSA9PSBTd2l0Y2gpOworICAgIHJldHVybiBtX3N1
Y2Nlc3NvcnMubGFzdCgpOwogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jsb2NrSW5zZXJ0aW9uU2V0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCbG9ja0luc2VydGlvblNldC5jcHAJKHJl
dmlzaW9uIDIwMzM3MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jsb2NrSW5zZXJ0
aW9uU2V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzgsOCArNzgsOCBAQCBCYXNpY0Jsb2NrKiBC
bG9ja0luc2VydGlvblNldDo6c3BsaXRGb3J3CiAgICAgICAgIHJlc3VsdC0+bV92YWx1ZXNbaV0g
PSBibG9jay0+bV92YWx1ZXNbaV07CiAKICAgICAvLyBNYWtlIHRoZSBuZXcgYmxvY2sganVtcCB0
byAnYmxvY2snLgotICAgIHJlc3VsdC0+bV92YWx1ZXNbdmFsdWVJbmRleF0gPQotICAgICAgICBt
X3Byb2MuYWRkPENvbnRyb2xWYWx1ZT4oSnVtcCwgdmFsdWUtPm9yaWdpbigpLCBGcmVxdWVudGVk
QmxvY2soYmxvY2spKTsKKyAgICByZXN1bHQtPm1fdmFsdWVzW3ZhbHVlSW5kZXhdID0gbV9wcm9j
LmFkZDxWYWx1ZT4oSnVtcCwgdmFsdWUtPm9yaWdpbigpKTsKKyAgICByZXN1bHQtPnNldFN1Y2Nl
c3NvcnMoRnJlcXVlbnRlZEJsb2NrKGJsb2NrKSk7CiAKICAgICAvLyBJZiB3ZSBoYWQgaW5zZXJ0
ZWQgdGhpbmdzIGludG8gJ2Jsb2NrJyBiZWZvcmUgdGhpcywgZXhlY3V0ZSB0aG9zZSBpbnNlcnRp
b25zIG5vdy4KICAgICBpZiAoaW5zZXJ0aW9uU2V0KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzQnJlYWtDcml0aWNhbEVkZ2VzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNCcmVha0NyaXRpY2FsRWRnZXMuY3BwCShyZXZpc2lvbiAyMDMzNzEp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCcmVha0NyaXRpY2FsRWRnZXMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw2IEBACiAKICNpbmNsdWRlICJCM0Jhc2ljQmxvY2tJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNCbG9ja0luc2VydGlvblNldC5oIgotI2luY2x1ZGUgIkIz
Q29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNQcm9jZWR1cmVJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiQjNWYWx1ZUlubGluZXMuaCIKIApAQCAtNTAsOCArNDksOCBAQCB2b2lkIGJyZWFrQ3JpdGlj
YWxFZGdlcyhQcm9jZWR1cmUmIHByb2MpCiAKICAgICAgICAgICAgIEJhc2ljQmxvY2sqIHBhZCA9
CiAgICAgICAgICAgICAgICAgaW5zZXJ0aW9uU2V0Lmluc2VydEJlZm9yZShzdWNjZXNzb3IsIHN1
Y2Nlc3Nvci0+ZnJlcXVlbmN5KCkpOwotICAgICAgICAgICAgcGFkLT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKLSAgICAgICAgICAgICAgICBwcm9jLCBKdW1wLCBzdWNjZXNzb3ItPmF0KDApLT5v
cmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHN1Y2Nlc3NvcikpOworICAgICAgICAgICAgcGFkLT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEp1bXAsIHN1Y2Nlc3Nvci0+YXQoMCktPm9yaWdpbigpKTsK
KyAgICAgICAgICAgIHBhZC0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2soc3VjY2Vzc29y
KSk7CiAgICAgICAgICAgICBwYWQtPmFkZFByZWRlY2Vzc29yKGJsb2NrKTsKICAgICAgICAgICAg
IHN1Y2Nlc3Nvci0+cmVwbGFjZVByZWRlY2Vzc29yKGJsb2NrLCBwYWQpOwogICAgICAgICAgICAg
c3VjY2Vzc29yID0gcGFkOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2FzZUNv
bGxlY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nh
c2VDb2xsZWN0aW9uLmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNDYXNlQ29sbGVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0OCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiQjNDYXNlQ29sbGVjdGlvbi5oIgorCisjaWYgRU5BQkxFKEIz
X0pJVCkKKworI2luY2x1ZGUgIkIzQmFzaWNCbG9ja0lubGluZXMuaCIKKyNpbmNsdWRlICJCM0Nh
c2VDb2xsZWN0aW9uSW5saW5lcy5oIgorI2luY2x1ZGUgPHd0Zi9Db21tYVByaW50ZXIuaD4KKwor
bmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CisKK3ZvaWQgQ2FzZUNvbGxlY3Rpb246OmR1
bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKK3sKKyAgICBDb21tYVByaW50ZXIgY29tbWE7Cisg
ICAgZm9yIChTd2l0Y2hDYXNlIHN3aXRjaENhc2UgOiAqdGhpcykKKyAgICAgICAgb3V0LnByaW50
KGNvbW1hLCBzd2l0Y2hDYXNlKTsKKyAgICBvdXQucHJpbnQoY29tbWEsICJkZWZhdWx0LT4iLCBm
YWxsVGhyb3VnaCgpKTsKK30KKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzCisKKyNlbmRpZiAv
LyBFTkFCTEUoQjNfSklUKQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDYXNl
Q29sbGVjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nh
c2VDb2xsZWN0aW9uLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzQ2FzZUNvbGxlY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEyMCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEIzQ2Fz
ZUNvbGxlY3Rpb25faAorI2RlZmluZSBCM0Nhc2VDb2xsZWN0aW9uX2gKKworI2lmIEVOQUJMRShC
M19KSVQpCisKKyNpbmNsdWRlICJCM1N3aXRjaENhc2UuaCIKKworbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBCMyB7CisKK2NsYXNzIEJhc2ljQmxvY2s7CitjbGFzcyBTd2l0Y2hWYWx1ZTsKKwor
Ly8gTk9URTogWW91J2xsIGFsd2F5cyB3YW50IHRvIGluY2x1ZGUgQjNDYXNlQ29sbGVjdGlvbklu
bGluZXMuaCB3aGVuIHlvdSB1c2UgdGhpcy4KKworY2xhc3MgQ2FzZUNvbGxlY3Rpb24geworcHVi
bGljOgorICAgIENhc2VDb2xsZWN0aW9uKCkKKyAgICB7CisgICAgfQorICAgIAorICAgIENhc2VD
b2xsZWN0aW9uKGNvbnN0IFN3aXRjaFZhbHVlKiB0ZXJtaW5hbCwgY29uc3QgQmFzaWNCbG9jayog
b3duZXIpCisgICAgICAgIDogbV9zd2l0Y2godGVybWluYWwpCisgICAgICAgICwgbV9vd25lcihv
d25lcikKKyAgICB7CisgICAgfQorICAgIAorICAgIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgZmFs
bFRocm91Z2goKSBjb25zdDsKKworICAgIHVuc2lnbmVkIHNpemUoKSBjb25zdDsKKyAgICBTd2l0
Y2hDYXNlIGF0KHVuc2lnbmVkIGluZGV4KSBjb25zdDsKKyAgICAKKyAgICBTd2l0Y2hDYXNlIG9w
ZXJhdG9yW10odW5zaWduZWQgaW5kZXgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gYXQo
aW5kZXgpOworICAgIH0KKworICAgIGNsYXNzIGl0ZXJhdG9yIHsKKyAgICBwdWJsaWM6CisgICAg
ICAgIGl0ZXJhdG9yKCkKKyAgICAgICAgICAgIDogbV9jb2xsZWN0aW9uKG51bGxwdHIpCisgICAg
ICAgICAgICAsIG1faW5kZXgoMCkKKyAgICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgaXRl
cmF0b3IoY29uc3QgQ2FzZUNvbGxlY3Rpb24mIGNvbGxlY3Rpb24sIHVuc2lnbmVkIGluZGV4KQor
ICAgICAgICAgICAgOiBtX2NvbGxlY3Rpb24oJmNvbGxlY3Rpb24pCisgICAgICAgICAgICAsIG1f
aW5kZXgoaW5kZXgpCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIFN3aXRjaENhc2Ug
b3BlcmF0b3IqKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1fY29sbGVjdGlvbi0+
YXQobV9pbmRleCk7CisgICAgICAgIH0KKworICAgICAgICBpdGVyYXRvciYgb3BlcmF0b3IrKygp
CisgICAgICAgIHsKKyAgICAgICAgICAgIG1faW5kZXgrKzsKKyAgICAgICAgICAgIHJldHVybiAq
dGhpczsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBpdGVyYXRv
ciYgb3RoZXIpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VSVChtX2NvbGxlY3Rp
b24gPT0gb3RoZXIubV9jb2xsZWN0aW9uKTsKKyAgICAgICAgICAgIHJldHVybiBtX2luZGV4ID09
IG90aGVyLm1faW5kZXg7CisgICAgICAgIH0KKworICAgICAgICBib29sIG9wZXJhdG9yIT0oY29u
c3QgaXRlcmF0b3ImIG90aGVyKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4g
ISgqdGhpcyA9PSBvdGhlcik7CisgICAgICAgIH0KKworICAgIHByaXZhdGU6CisgICAgICAgIGNv
bnN0IENhc2VDb2xsZWN0aW9uKiBtX2NvbGxlY3Rpb247CisgICAgICAgIHVuc2lnbmVkIG1faW5k
ZXg7CisgICAgfTsKKworICAgIHR5cGVkZWYgaXRlcmF0b3IgY29uc3RfaXRlcmF0b3I7CisKKyAg
ICBpdGVyYXRvciBiZWdpbigpIGNvbnN0IHsgcmV0dXJuIGl0ZXJhdG9yKCp0aGlzLCAwKTsgfQor
ICAgIGl0ZXJhdG9yIGVuZCgpIGNvbnN0IHsgcmV0dXJuIGl0ZXJhdG9yKCp0aGlzLCBzaXplKCkp
OyB9CisgICAgCisgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CisgICAgCitwcml2
YXRlOgorICAgIGNvbnN0IFN3aXRjaFZhbHVlKiBtX3N3aXRjaCB7IG51bGxwdHIgfTsKKyAgICBj
b25zdCBCYXNpY0Jsb2NrKiBtX293bmVyIHsgbnVsbHB0ciB9OworfTsKKworfSB9IC8vIG5hbWVz
cGFjZSBKU0M6OkIzCisKKyNlbmRpZiAvLyBFTkFCTEUoQjNfSklUKQorCisjZW5kaWYgLy8gQjND
YXNlQ29sbGVjdGlvbl9oCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nhc2VD
b2xsZWN0aW9uSW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworI2lmbmRlZiBCM0Nhc2VDb2xsZWN0aW9uSW5saW5lc19oCisjZGVmaW5lIEIzQ2FzZUNv
bGxlY3Rpb25JbmxpbmVzX2gKKworI2lmIEVOQUJMRShCM19KSVQpCisKKyNpbmNsdWRlICJCM0Nh
c2VDb2xsZWN0aW9uLmgiCisjaW5jbHVkZSAiQjNTd2l0Y2hWYWx1ZS5oIgorI2luY2x1ZGUgIkIz
QmFzaWNCbG9jay5oIgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKKworaW5saW5l
IGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgQ2FzZUNvbGxlY3Rpb246OmZhbGxUaHJvdWdoKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9vd25lci0+ZmFsbFRocm91Z2goKTsKK30KKworaW5saW5lIHVu
c2lnbmVkIENhc2VDb2xsZWN0aW9uOjpzaXplKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zd2l0
Y2gtPm51bUNhc2VWYWx1ZXMoKTsKK30KKworaW5saW5lIFN3aXRjaENhc2UgQ2FzZUNvbGxlY3Rp
b246OmF0KHVuc2lnbmVkIGluZGV4KSBjb25zdAoreworICAgIHJldHVybiBTd2l0Y2hDYXNlKG1f
c3dpdGNoLT5jYXNlVmFsdWUoaW5kZXgpLCBtX293bmVyLT5zdWNjZXNzb3IoaW5kZXgpKTsKK30K
KworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzCisKKyNlbmRpZiAvLyBFTkFCTEUoQjNfSklUKQor
CisjZW5kaWYgLy8gQjNDYXNlQ29sbGVjdGlvbklubGluZXNfaAorCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNDaGVja1NwZWNpYWwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM0NoZWNrU3BlY2lhbC5jcHAJKHJldmlzaW9uIDIwMzM3MSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NoZWNrU3BlY2lhbC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTg0LDcgKzg0LDcgQEAgQ2hlY2tTcGVjaWFsOjpDaGVja1NwZWNpYWwoQWlyOjpPcGNv
ZGUgbwogICAgICwgbV9zdGFja21hcFJvbGUoc3RhY2ttYXBSb2xlKQogICAgICwgbV9udW1DaGVj
a0FyZ3MobnVtQXJncykKIHsKLSAgICBBU1NFUlQoaXNUZXJtaW5hbChvcGNvZGUpKTsKKyAgICBB
U1NFUlQoaXNEZWZpbml0ZWx5VGVybWluYWwob3Bjb2RlKSk7CiB9CiAKIENoZWNrU3BlY2lhbDo6
Q2hlY2tTcGVjaWFsKGNvbnN0IENoZWNrU3BlY2lhbDo6S2V5JiBrZXkpCkBAIC0xMDIsNiArMTAy
LDcgQEAgSW5zdCBDaGVja1NwZWNpYWw6OmhpZGRlbkJyYW5jaChjb25zdCBJbgogICAgIGhpZGRl
bkJyYW5jaC5hcmdzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkobV9udW1DaGVja0FyZ3MpOwogICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX251bUNoZWNrQXJnczsgKytpKQogICAgICAgICBo
aWRkZW5CcmFuY2guYXJncy5hcHBlbmQoaW5zdC5hcmdzW2kgKyAxXSk7CisgICAgQVNTRVJUKGhp
ZGRlbkJyYW5jaC5pc1Rlcm1pbmFsKCkpOwogICAgIHJldHVybiBoaWRkZW5CcmFuY2g7CiB9CiAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbW1vbi5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbW1vbi5oCShyZXZpc2lvbiAyMDMzNzEpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb21tb24uaAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCw2
ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoQjNfSklUKQogCisjaW5jbHVkZSAiSlNFeHBvcnRNYWNy
b3MuaCIKKwogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKIGlubGluZSBib29sIGlz
NjRCaXQoKSB7IHJldHVybiBzaXplb2Yodm9pZCopID09IDg7IH0KQEAgLTM4LDcgKzQwLDcgQEAg
ZW51bSBCM0NvbXBsaXRhdGlvbk1vZGUgewogICAgIEFpck1vZGUKIH07CiAKLWJvb2wgc2hvdWxk
RHVtcElSKEIzQ29tcGxpdGF0aW9uTW9kZSk7CitKU19FWFBPUlRfUFJJVkFURSBib29sIHNob3Vs
ZER1bXBJUihCM0NvbXBsaXRhdGlvbk1vZGUpOwogYm9vbCBzaG91bGREdW1wSVJBdEVhY2hQaGFz
ZShCM0NvbXBsaXRhdGlvbk1vZGUpOwogYm9vbCBzaG91bGRWYWxpZGF0ZUlSKCk7CiBib29sIHNo
b3VsZFZhbGlkYXRlSVJBdEVhY2hQaGFzZSgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzQ29udHJvbFZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNDb250cm9sVmFsdWUuY3BwCShyZXZpc2lvbiAyMDMzNzEpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNDb250cm9sVmFsdWUuY3BwCShub25leGlzdGVudCkKQEAgLTEsOTUg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICov
Ci0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgotCi0j
aWYgRU5BQkxFKEIzX0pJVCkKLQotI2luY2x1ZGUgIkIzQmFzaWNCbG9jay5oIgotCi1uYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKLQotQ29udHJvbFZhbHVlOjp+Q29udHJvbFZhbHVlKCkK
LXsKLX0KLQotYm9vbCBDb250cm9sVmFsdWU6OnJlcGxhY2VTdWNjZXNzb3IoQmFzaWNCbG9jayog
ZnJvbSwgQmFzaWNCbG9jayogdG8pCi17Ci0gICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKLSAgICBm
b3IgKEZyZXF1ZW50ZWRCbG9jayYgc3VjY2Vzc29yIDogbV9zdWNjZXNzb3JzKSB7Ci0gICAgICAg
IGlmIChzdWNjZXNzb3IuYmxvY2soKSA9PSBmcm9tKSB7Ci0gICAgICAgICAgICBzdWNjZXNzb3Iu
YmxvY2soKSA9IHRvOwotICAgICAgICAgICAgcmVzdWx0ID0gdHJ1ZTsKLQotICAgICAgICAgICAg
Ly8gS2VlcCBsb29waW5nIGJlY2F1c2UgaXQncyB2YWxpZCBmb3IgYSBzdWNjZXNzb3IgdG8gYmUg
bWVudGlvbmVkIG11bHRpcGxlIHRpbWVzLAotICAgICAgICAgICAgLy8gbGlrZSBpZiBtdWx0aXBs
ZSBzd2l0Y2ggY2FzZXMgaGF2ZSB0aGUgc2FtZSB0YXJnZXQuCi0gICAgICAgIH0KLSAgICB9Ci0g
ICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotdm9pZCBDb250cm9sVmFsdWU6OmNvbnZlcnRUb0p1bXAo
QmFzaWNCbG9jayogZGVzdGluYXRpb24pCi17Ci0gICAgdW5zaWduZWQgaW5kZXggPSB0aGlzLT5p
bmRleCgpOwotICAgIE9yaWdpbiBvcmlnaW4gPSB0aGlzLT5vcmlnaW4oKTsKLSAgICBCYXNpY0Js
b2NrKiBvd25lciA9IHRoaXMtPm93bmVyOwotCi0gICAgdGhpcy0+fkNvbnRyb2xWYWx1ZSgpOwot
Ci0gICAgbmV3ICh0aGlzKSBDb250cm9sVmFsdWUoSnVtcCwgb3JpZ2luLCBGcmVxdWVudGVkQmxv
Y2soZGVzdGluYXRpb24pKTsKLQotICAgIHRoaXMtPm93bmVyID0gb3duZXI7Ci0gICAgdGhpcy0+
bV9pbmRleCA9IGluZGV4OwotfQotCi12b2lkIENvbnRyb2xWYWx1ZTo6Y29udmVydFRvT29wcygp
Ci17Ci0gICAgdW5zaWduZWQgaW5kZXggPSB0aGlzLT5pbmRleCgpOwotICAgIE9yaWdpbiBvcmln
aW4gPSB0aGlzLT5vcmlnaW4oKTsKLSAgICBCYXNpY0Jsb2NrKiBvd25lciA9IHRoaXMtPm93bmVy
OwotCi0gICAgdGhpcy0+fkNvbnRyb2xWYWx1ZSgpOwotCi0gICAgbmV3ICh0aGlzKSBDb250cm9s
VmFsdWUoT29wcywgb3JpZ2luKTsKLQotICAgIHRoaXMtPm93bmVyID0gb3duZXI7Ci0gICAgdGhp
cy0+bV9pbmRleCA9IGluZGV4OwotfQotCi12b2lkIENvbnRyb2xWYWx1ZTo6ZHVtcE1ldGEoQ29t
bWFQcmludGVyJiBjb21tYSwgUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKLXsKLSAgICBmb3IgKEZy
ZXF1ZW50ZWRCbG9jayBzdWNjZXNzb3IgOiBtX3N1Y2Nlc3NvcnMpCi0gICAgICAgIG91dC5wcmlu
dChjb21tYSwgc3VjY2Vzc29yKTsKLX0KLQotVmFsdWUqIENvbnRyb2xWYWx1ZTo6Y2xvbmVJbXBs
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbmV3IENvbnRyb2xWYWx1ZSgqdGhpcyk7Ci19Ci0KLX0g
fSAvLyBuYW1lc3BhY2UgSlNDOjpCMwotCi0jZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnRyb2xWYWx1ZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnRyb2xWYWx1ZS5oCShyZXZpc2lvbiAyMDMz
NzEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb250cm9sVmFsdWUuaAkobm9uZXhp
c3RlbnQpCkBAIC0xLDE2MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBCM0NvbnRyb2xWYWx1ZV9oCi0jZGVmaW5lIEIz
Q29udHJvbFZhbHVlX2gKLQotI2lmIEVOQUJMRShCM19KSVQpCi0KLSNpbmNsdWRlICJCM0ZyZXF1
ZW50ZWRCbG9jay5oIgotI2luY2x1ZGUgIkIzU3VjY2Vzc29yQ29sbGVjdGlvbi5oIgotI2luY2x1
ZGUgIkIzVmFsdWUuaCIKLQotbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7Ci0KLWNsYXNz
IEJhc2ljQmxvY2s7Ci0KLWNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIENvbnRyb2xWYWx1ZSA6IHB1
YmxpYyBWYWx1ZSB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIGJvb2wgYWNjZXB0cyhPcGNvZGUgb3Bj
b2RlKQotICAgIHsKLSAgICAgICAgc3dpdGNoIChvcGNvZGUpIHsKLSAgICAgICAgY2FzZSBKdW1w
OgotICAgICAgICBjYXNlIEJyYW5jaDoKLSAgICAgICAgY2FzZSBSZXR1cm46Ci0gICAgICAgIGNh
c2UgT29wczoKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBjYXNlIFN3aXRjaDog
Ci0gICAgICAgICAgICAvLyBUaGlzIGlzIGhlcmUgYmVjYXVzZSBTd2l0Y2hWYWx1ZSBpcyBhIHN1
YmNsYXNzIG9mIENvbnRyb2xWYWx1ZSwgc28gd2Ugd2FudAotICAgICAgICAgICAgLy8gc3dpdGNo
VmFsdWUtPmFzPENvbnRyb2xWYWx1ZT4oKSB0byByZXR1cm4gbm9uLW51bGwuCi0gICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHR5cGVkZWYgVmVjdG9yPEZyZXF1ZW50ZWRCbG9j
aywgMj4gU3VjY2Vzc29yTGlzdDsKLQotICAgIH5Db250cm9sVmFsdWUoKTsKLQotICAgIHVuc2ln
bmVkIG51bVN1Y2Nlc3NvcnMoKSBjb25zdCB7IHJldHVybiBtX3N1Y2Nlc3NvcnMuc2l6ZSgpOyB9
Ci0gICAgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBzdWNjZXNzb3IodW5zaWduZWQgaW5kZXgpIGNv
bnN0IHsgcmV0dXJuIG1fc3VjY2Vzc29yc1tpbmRleF07IH0KLSAgICBGcmVxdWVudGVkQmxvY2sm
IHN1Y2Nlc3Nvcih1bnNpZ25lZCBpbmRleCkgeyByZXR1cm4gbV9zdWNjZXNzb3JzW2luZGV4XTsg
fQotICAgIGNvbnN0IFN1Y2Nlc3Nvckxpc3QmIHN1Y2Nlc3NvcnMoKSBjb25zdCB7IHJldHVybiBt
X3N1Y2Nlc3NvcnM7IH0KLSAgICBTdWNjZXNzb3JMaXN0JiBzdWNjZXNzb3JzKCkgeyByZXR1cm4g
bV9zdWNjZXNzb3JzOyB9Ci0KLSAgICBCYXNpY0Jsb2NrKiBzdWNjZXNzb3JCbG9jayh1bnNpZ25l
ZCBpbmRleCkgY29uc3QgeyByZXR1cm4gc3VjY2Vzc29yKGluZGV4KS5ibG9jaygpOyB9Ci0gICAg
QmFzaWNCbG9jayomIHN1Y2Nlc3NvckJsb2NrKHVuc2lnbmVkIGluZGV4KSB7IHJldHVybiBzdWNj
ZXNzb3IoaW5kZXgpLmJsb2NrKCk7IH0KLSAgICBTdWNjZXNzb3JDb2xsZWN0aW9uPEJhc2ljQmxv
Y2ssIFN1Y2Nlc3Nvckxpc3Q+IHN1Y2Nlc3NvckJsb2NrcygpCi0gICAgewotICAgICAgICByZXR1
cm4gU3VjY2Vzc29yQ29sbGVjdGlvbjxCYXNpY0Jsb2NrLCBTdWNjZXNzb3JMaXN0PihzdWNjZXNz
b3JzKCkpOwotICAgIH0KLSAgICBTdWNjZXNzb3JDb2xsZWN0aW9uPGNvbnN0IEJhc2ljQmxvY2ss
IGNvbnN0IFN1Y2Nlc3Nvckxpc3Q+IHN1Y2Nlc3NvckJsb2NrcygpIGNvbnN0Ci0gICAgewotICAg
ICAgICByZXR1cm4gU3VjY2Vzc29yQ29sbGVjdGlvbjxjb25zdCBCYXNpY0Jsb2NrLCBjb25zdCBT
dWNjZXNzb3JMaXN0PihzdWNjZXNzb3JzKCkpOwotICAgIH0KLQotICAgIGJvb2wgcmVwbGFjZVN1
Y2Nlc3NvcihCYXNpY0Jsb2NrKiBmcm9tLCBCYXNpY0Jsb2NrKiB0byk7Ci0KLSAgICBjb25zdCBG
cmVxdWVudGVkQmxvY2smIHRha2VuKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChvcGNv
ZGUoKSA9PSBKdW1wIHx8IG9wY29kZSgpID09IEJyYW5jaCk7Ci0gICAgICAgIHJldHVybiBzdWNj
ZXNzb3IoMCk7Ci0gICAgfQotICAgIEZyZXF1ZW50ZWRCbG9jayYgdGFrZW4oKQotICAgIHsKLSAg
ICAgICAgQVNTRVJUKG9wY29kZSgpID09IEp1bXAgfHwgb3Bjb2RlKCkgPT0gQnJhbmNoKTsKLSAg
ICAgICAgcmV0dXJuIHN1Y2Nlc3NvcigwKTsKLSAgICB9Ci0gICAgY29uc3QgRnJlcXVlbnRlZEJs
b2NrJiBub3RUYWtlbigpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQob3Bjb2RlKCkgPT0g
QnJhbmNoKTsKLSAgICAgICAgcmV0dXJuIHN1Y2Nlc3NvcigxKTsKLSAgICB9Ci0gICAgRnJlcXVl
bnRlZEJsb2NrJiBub3RUYWtlbigpCi0gICAgewotICAgICAgICBBU1NFUlQob3Bjb2RlKCkgPT0g
QnJhbmNoKTsKLSAgICAgICAgcmV0dXJuIHN1Y2Nlc3NvcigxKTsKLSAgICB9Ci0KLSAgICB2b2lk
IGNvbnZlcnRUb0p1bXAoQmFzaWNCbG9jayogZGVzdGluYXRpb24pOwotICAgIHZvaWQgY29udmVy
dFRvT29wcygpOwotCi1wcm90ZWN0ZWQ6Ci0gICAgdm9pZCBkdW1wTWV0YShDb21tYVByaW50ZXIm
LCBQcmludFN0cmVhbSYpIGNvbnN0IG92ZXJyaWRlOwotCi0gICAgVmFsdWUqIGNsb25lSW1wbCgp
IGNvbnN0IG92ZXJyaWRlOwotCi0gICAgLy8gVXNlIHRoaXMgZm9yIHN1YmNsYXNzZXMuCi0gICAg
dGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJndW1lbnRzPgotICAgIENvbnRyb2xWYWx1ZShPcGNvZGUg
b3Bjb2RlLCBUeXBlIHR5cGUsIE9yaWdpbiBvcmlnaW4sIEFyZ3VtZW50cy4uLiBhcmd1bWVudHMp
Ci0gICAgICAgIDogVmFsdWUoQ2hlY2tlZE9wY29kZSwgb3Bjb2RlLCB0eXBlLCBvcmlnaW4sIGFy
Z3VtZW50cy4uLikKLSAgICB7Ci0gICAgICAgIEFTU0VSVChhY2NlcHRzKG9wY29kZSkpOwotICAg
IH0KLQotICAgIC8vIFN1YmNsYXNzZXMgd2lsbCBwb3B1bGF0ZSB0aGlzLgotICAgIFN1Y2Nlc3Nv
ckxpc3QgbV9zdWNjZXNzb3JzOwotCi1wcml2YXRlOgotICAgIGZyaWVuZCBjbGFzcyBQcm9jZWR1
cmU7Ci0KLSAgICAvLyBVc2UgdGhpcyBmb3IgT29wcy4KLSAgICBDb250cm9sVmFsdWUoT3Bjb2Rl
IG9wY29kZSwgT3JpZ2luIG9yaWdpbikKLSAgICAgICAgOiBWYWx1ZShDaGVja2VkT3Bjb2RlLCBv
cGNvZGUsIFZvaWQsIG9yaWdpbikKLSAgICB7Ci0gICAgICAgIEFTU0VSVChvcGNvZGUgPT0gT29w
cyk7Ci0gICAgfQotCi0gICAgLy8gVXNlIHRoaXMgZm9yIFJldHVybi4KLSAgICBDb250cm9sVmFs
dWUoT3Bjb2RlIG9wY29kZSwgT3JpZ2luIG9yaWdpbiwgVmFsdWUqIHJlc3VsdCkKLSAgICAgICAg
OiBWYWx1ZShDaGVja2VkT3Bjb2RlLCBvcGNvZGUsIFZvaWQsIG9yaWdpbiwgcmVzdWx0KQotICAg
IHsKLSAgICAgICAgQVNTRVJUKG9wY29kZSA9PSBSZXR1cm4pOwotICAgIH0KLQotICAgIC8vIFVz
ZSB0aGlzIGZvciBKdW1wLgotICAgIENvbnRyb2xWYWx1ZShPcGNvZGUgb3Bjb2RlLCBPcmlnaW4g
b3JpZ2luLCBjb25zdCBGcmVxdWVudGVkQmxvY2smIHRhcmdldCkKLSAgICAgICAgOiBWYWx1ZShD
aGVja2VkT3Bjb2RlLCBvcGNvZGUsIFZvaWQsIG9yaWdpbikKLSAgICB7Ci0gICAgICAgIEFTU0VS
VChvcGNvZGUgPT0gSnVtcCk7Ci0gICAgICAgIG1fc3VjY2Vzc29ycy5hcHBlbmQodGFyZ2V0KTsK
LSAgICB9Ci0KLSAgICAvLyBVc2UgdGhpcyBmb3IgQnJhbmNoLgotICAgIENvbnRyb2xWYWx1ZSgK
LSAgICAgICAgT3Bjb2RlIG9wY29kZSwgT3JpZ2luIG9yaWdpbiwgVmFsdWUqIHByZWRpY2F0ZSwK
LSAgICAgICAgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB5ZXMsIGNvbnN0IEZyZXF1ZW50ZWRCbG9j
ayYgbm8pCi0gICAgICAgIDogVmFsdWUoQ2hlY2tlZE9wY29kZSwgb3Bjb2RlLCBWb2lkLCBvcmln
aW4sIHByZWRpY2F0ZSkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChvcGNvZGUgPT0gQnJhbmNoKTsK
LSAgICAgICAgbV9zdWNjZXNzb3JzLmFwcGVuZCh5ZXMpOwotICAgICAgICBtX3N1Y2Nlc3NvcnMu
YXBwZW5kKG5vKTsKLSAgICB9Ci19OwotCi19IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKLQotI2Vu
ZGlmIC8vIEVOQUJMRShCM19KSVQpCi0KLSNlbmRpZiAvLyBCM0NvbnRyb2xWYWx1ZV9oCi0KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0RhdGFTZWN0aW9uLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEYXRhU2VjdGlvbi5jcHAJKHJldmlzaW9u
IDIwMzM3MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0RhdGFTZWN0aW9uLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0zMSw3ICszMSw3IEBACiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIz
IHsKIAogRGF0YVNlY3Rpb246OkRhdGFTZWN0aW9uKHNpemVfdCBzaXplKQotICAgIDogbV9kYXRh
KGZhc3RNYWxsb2Moc2l6ZSkpCisgICAgOiBtX2RhdGEoZmFzdFplcm9lZE1hbGxvYyhzaXplKSkK
ICAgICAsIG1fc2l6ZShzaXplKQogewogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzRHVwbGljYXRlVGFpbHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0R1cGxpY2F0ZVRhaWxzLmNwcAkocmV2aXNpb24gMjAzMzcxKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzRHVwbGljYXRlVGFpbHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
MCw3ICszMCw2IEBACiAKICNpbmNsdWRlICJCM0Jhc2ljQmxvY2tJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiQjNCcmVha0NyaXRpY2FsRWRnZXMuaCIKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgog
I2luY2x1ZGUgIkIzRG9taW5hdG9ycy5oIgogI2luY2x1ZGUgIkIzRml4U1NBLmgiCiAjaW5jbHVk
ZSAiQjNJbmRleFNldC5oIgpAQCAtOTcsMTEgKzk2LDEwIEBAIHB1YmxpYzoKICAgICAgICAgfQog
CiAgICAgICAgIGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiBtX3Byb2MpIHsKLSAgICAgICAgICAg
IENvbnRyb2xWYWx1ZSoganVtcCA9IGJsb2NrLT5sYXN0KCktPmFzPENvbnRyb2xWYWx1ZT4oKTsK
LSAgICAgICAgICAgIGlmIChqdW1wLT5vcGNvZGUoKSAhPSBKdW1wKQorICAgICAgICAgICAgaWYg
KGJsb2NrLT5sYXN0KCktPm9wY29kZSgpICE9IEp1bXApCiAgICAgICAgICAgICAgICAgY29udGlu
dWU7CiAKLSAgICAgICAgICAgIEJhc2ljQmxvY2sqIHRhaWwgPSBqdW1wLT5zdWNjZXNzb3JCbG9j
aygwKTsKKyAgICAgICAgICAgIEJhc2ljQmxvY2sqIHRhaWwgPSBibG9jay0+c3VjY2Vzc29yQmxv
Y2soMCk7CiAgICAgICAgICAgICBpZiAoIWNhbmRpZGF0ZXMuY29udGFpbnModGFpbCkpCiAgICAg
ICAgICAgICAgICAgY29udGludWU7CiAKQEAgLTEzMCw2ICsxMjgsNyBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICAgICAgICAgIG1hcC5hZGQodmFsdWUsIGNsb25lKTsKICAgICAgICAgICAgICAgICBi
bG9jay0+YXBwZW5kKGNsb25lKTsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJsb2NrLT5z
dWNjZXNzb3JzKCkgPSB0YWlsLT5zdWNjZXNzb3JzKCk7CiAgICAgICAgIH0KIAogICAgICAgICBt
X3Byb2MucmVzZXRSZWFjaGFiaWxpdHkoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM0VmZmVjdHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNF
ZmZlY3RzLmgJKHJldmlzaW9uIDIwMzM3MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0VmZmVjdHMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00NSw3ICs0NSwxMSBAQCBzdHJ1Y3QgRWZmZWN0cyB7
CiAgICAgLy8gdGVybWluYXRlcyBhYnJ1cHRseS4KICAgICBib29sIGV4aXRzU2lkZXdheXMgeyBm
YWxzZSB9OwogCi0gICAgLy8gVHJ1ZSBpZiB0aGUgaW5zdHJ1Y3Rpb24gbWF5IGNoYW5nZSBzZW1h
bnRpY3MgaWYgaG9pc3RlZCBhYm92ZSBzb21lIGNvbnRyb2wgZmxvdy4KKyAgICAvLyBUcnVlIGlm
IHRoZSBpbnN0cnVjdGlvbiBtYXkgY2hhbmdlIHNlbWFudGljcyBpZiBob2lzdGVkIGFib3ZlIHNv
bWUgY29udHJvbCBmbG93LiBGb3IgZXhhbXBsZSwKKyAgICAvLyBsb2FkcyBhcmUgdXN1YWxseSBj
b250cm9sLWRlcGVuZGVudCBiZWNhdXNlIHdlIG11c3QgYXNzdW1lIHRoYXQgYW55IGNvbnRyb2wg
Y29uc3RydWN0IChlaXRoZXIKKyAgICAvLyBhIHRlcm1pbmFsIGxpa2UgQnJhbmNoIG9yIGFueXRo
aW5nIHRoYXQgZXhpdHMgc2lkZXdheXMsIGxpa2UgQ2hlY2spIHZhbGlkYXRlcyB3aGV0aGVyIHRo
ZQorICAgIC8vIHBvaW50ZXIgaXMgdmFsaWQuIEhvaXN0aW5nIHRoZSBsb2FkIGFib3ZlIGNvbnRy
b2wgbWF5IGNhdXNlIHRoZSBsb2FkIHRvIHRyYXAgZXZlbiB0aG91Z2ggaXQKKyAgICAvLyB3b3Vs
ZCBub3QgaGF2ZSBvdGhlcndpc2UgdHJhcHBlZC4KICAgICBib29sIGNvbnRyb2xEZXBlbmRlbnQg
eyBmYWxzZSB9OwogCiAgICAgLy8gVHJ1ZSBpZiB0aGlzIHdyaXRlcyB0byB0aGUgbG9jYWwgc3Rh
dGUuIE9wZXJhdGlvbnMgdGhhdCB3cml0ZSBsb2NhbCBzdGF0ZSBkb24ndCB3cml0ZSB0byBhbnl0
aGluZwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRml4U1NBLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNGaXhTU0EuY3BwCShyZXZpc2lvbiAy
MDMzNzEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNGaXhTU0EuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMCw3ICszMCw2IEBACiAKICNpbmNsdWRlICJCM0Jhc2ljQmxvY2tJbmxpbmVz
LmgiCiAjaW5jbHVkZSAiQjNCcmVha0NyaXRpY2FsRWRnZXMuaCIKLSNpbmNsdWRlICJCM0NvbnRy
b2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzRG9taW5hdG9ycy5oIgogI2luY2x1ZGUgIkIzSW5kZXhT
ZXQuaCIKICNpbmNsdWRlICJCM0luc2VydGlvblNldElubGluZXMuaCIKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM0ZvbGRQYXRoQ29uc3RhbnRzLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNGb2xkUGF0aENvbnN0YW50cy5jcHAJKHJldmlzaW9u
IDIwMzM3MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0ZvbGRQYXRoQ29uc3RhbnRz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogI2lmIEVOQUJMRShCM19KSVQp
CiAKICNpbmNsdWRlICJCM0Jhc2ljQmxvY2tJbmxpbmVzLmgiCi0jaW5jbHVkZSAiQjNDb250cm9s
VmFsdWUuaCIKKyNpbmNsdWRlICJCM0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oIgogI2luY2x1ZGUg
IkIzRG9taW5hdG9ycy5oIgogI2luY2x1ZGUgIkIzSW5zZXJ0aW9uU2V0SW5saW5lcy5oIgogI2lu
Y2x1ZGUgIkIzUGhhc2VTY29wZS5oIgpAQCAtODcsMjQgKzg3LDI0IEBAIHB1YmxpYzoKICAgICAg
ICAgfTsKICAgICAgICAgCiAgICAgICAgIGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiBtX3Byb2Mp
IHsKLSAgICAgICAgICAgIENvbnRyb2xWYWx1ZSogYnJhbmNoID0gYmxvY2stPmxhc3QoKS0+YXM8
Q29udHJvbFZhbHVlPigpOworICAgICAgICAgICAgVmFsdWUqIGJyYW5jaCA9IGJsb2NrLT5sYXN0
KCk7CiAgICAgICAgICAgICBzd2l0Y2ggKGJyYW5jaC0+b3Bjb2RlKCkpIHsKICAgICAgICAgICAg
IGNhc2UgQnJhbmNoOgotICAgICAgICAgICAgICAgIGlmIChicmFuY2gtPnN1Y2Nlc3NvckJsb2Nr
KDApID09IGJyYW5jaC0+c3VjY2Vzc29yQmxvY2soMSkpCisgICAgICAgICAgICAgICAgaWYgKGJs
b2NrLT5zdWNjZXNzb3JCbG9jaygwKSA9PSBibG9jay0+c3VjY2Vzc29yQmxvY2soMSkpCiAgICAg
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIGFkZE92ZXJyaWRlKAog
ICAgICAgICAgICAgICAgICAgICBibG9jaywgYnJhbmNoLT5jaGlsZCgwKSwKLSAgICAgICAgICAg
ICAgICAgICAgT3ZlcnJpZGU6Om5vblplcm8oYnJhbmNoLT5zdWNjZXNzb3JCbG9jaygwKSkpOwor
ICAgICAgICAgICAgICAgICAgICBPdmVycmlkZTo6bm9uWmVybyhibG9jay0+c3VjY2Vzc29yQmxv
Y2soMCkpKTsKICAgICAgICAgICAgICAgICBhZGRPdmVycmlkZSgKICAgICAgICAgICAgICAgICAg
ICAgYmxvY2ssIGJyYW5jaC0+Y2hpbGQoMCksCi0gICAgICAgICAgICAgICAgICAgIE92ZXJyaWRl
Ojpjb25zdGFudChicmFuY2gtPnN1Y2Nlc3NvckJsb2NrKDEpLCAwKSk7CisgICAgICAgICAgICAg
ICAgICAgIE92ZXJyaWRlOjpjb25zdGFudChibG9jay0+c3VjY2Vzc29yQmxvY2soMSksIDApKTsK
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgU3dpdGNoOiB7CiAgICAg
ICAgICAgICAgICAgSGFzaE1hcDxCYXNpY0Jsb2NrKiwgdW5zaWduZWQ+IHRhcmdldFVzZXM7Ci0g
ICAgICAgICAgICAgICAgZm9yIChjb25zdCBTd2l0Y2hDYXNlJiBzd2l0Y2hDYXNlIDogKmJyYW5j
aC0+YXM8U3dpdGNoVmFsdWU+KCkpCisgICAgICAgICAgICAgICAgZm9yIChjb25zdCBTd2l0Y2hD
YXNlJiBzd2l0Y2hDYXNlIDogYnJhbmNoLT5hczxTd2l0Y2hWYWx1ZT4oKS0+Y2FzZXMoYmxvY2sp
KQogICAgICAgICAgICAgICAgICAgICB0YXJnZXRVc2VzLmFkZChzd2l0Y2hDYXNlLnRhcmdldEJs
b2NrKCksIDApLml0ZXJhdG9yLT52YWx1ZSsrOwogCi0gICAgICAgICAgICAgICAgZm9yIChjb25z
dCBTd2l0Y2hDYXNlJiBzd2l0Y2hDYXNlIDogKmJyYW5jaC0+YXM8U3dpdGNoVmFsdWU+KCkpIHsK
KyAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFN3aXRjaENhc2UmIHN3aXRjaENhc2UgOiBicmFu
Y2gtPmFzPFN3aXRjaFZhbHVlPigpLT5jYXNlcyhibG9jaykpIHsKICAgICAgICAgICAgICAgICAg
ICAgaWYgKHRhcmdldFVzZXMuZmluZChzd2l0Y2hDYXNlLnRhcmdldEJsb2NrKCkpLT52YWx1ZSAh
PSAxKQogICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAKQEAgLTE1OCw5ICsxNTgs
OCBAQCBwdWJsaWM6CiAKICAgICAgICAgICAgICAgICBzd2l0Y2ggKHZhbHVlLT5vcGNvZGUoKSkg
ewogICAgICAgICAgICAgICAgIGNhc2UgQnJhbmNoOiB7Ci0gICAgICAgICAgICAgICAgICAgIENv
bnRyb2xWYWx1ZSogYnJhbmNoID0gdmFsdWUtPmFzPENvbnRyb2xWYWx1ZT4oKTsKLSAgICAgICAg
ICAgICAgICAgICAgaWYgKGdldE92ZXJyaWRlKGJsb2NrLCBicmFuY2gtPmNoaWxkKDApKS5pc05v
blplcm8pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyYW5jaC0+Y29udmVydFRvSnVtcChi
cmFuY2gtPnRha2VuKCkuYmxvY2soKSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChnZXRPdmVy
cmlkZShibG9jaywgdmFsdWUtPmNoaWxkKDApKS5pc05vblplcm8pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHZhbHVlLT5yZXBsYWNlV2l0aEp1bXAoYmxvY2ssIGJsb2NrLT50YWtlbigpKTsK
ICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlOwogICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzTG93ZXJNYWNyb3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0xvd2VyTWFjcm9zLmNwcAkocmV2aXNpb24gMjAzMzcxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJNYWNyb3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDE3
ICsyOCwyMyBAQAogCiAjaWYgRU5BQkxFKEIzX0pJVCkKIAorI2luY2x1ZGUgIkFsbG93TWFjcm9T
Y3JhdGNoUmVnaXN0ZXJVc2FnZS5oIgogI2luY2x1ZGUgIkIzQmFzaWNCbG9ja0lubGluZXMuaCIK
ICNpbmNsdWRlICJCM0Jsb2NrSW5zZXJ0aW9uU2V0LmgiCiAjaW5jbHVkZSAiQjNDQ2FsbFZhbHVl
LmgiCisjaW5jbHVkZSAiQjNDYXNlQ29sbGVjdGlvbklubGluZXMuaCIKICNpbmNsdWRlICJCM0Nv
bnN0UHRyVmFsdWUuaCIKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIz
SW5zZXJ0aW9uU2V0SW5saW5lcy5oIgorI2luY2x1ZGUgIkIzTWVtb3J5VmFsdWUuaCIKKyNpbmNs
dWRlICJCM1BhdGNocG9pbnRWYWx1ZS5oIgogI2luY2x1ZGUgIkIzUGhhc2VTY29wZS5oIgogI2lu
Y2x1ZGUgIkIzUHJvY2VkdXJlSW5saW5lcy5oIgorI2luY2x1ZGUgIkIzU3RhY2ttYXBHZW5lcmF0
aW9uUGFyYW1zLmgiCiAjaW5jbHVkZSAiQjNTd2l0Y2hWYWx1ZS5oIgogI2luY2x1ZGUgIkIzVXBz
aWxvblZhbHVlLmgiCiAjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKKyNpbmNsdWRlICJDQ2Fs
bEhlbHBlcnMuaCIKKyNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAjaW5jbHVkZSA8Y21hdGg+CiAK
IG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewpAQCAtMTE4LDggKzEyNCw4IEBAIHByaXZh
dGU6CiAgICAgICAgICAgICAgICAgICAgIEJhc2ljQmxvY2sqIHplcm9EZW5DYXNlID0gbV9ibG9j
a0luc2VydGlvblNldC5pbnNlcnRCZWZvcmUobV9ibG9jayk7CiAgICAgICAgICAgICAgICAgICAg
IEJhc2ljQmxvY2sqIG5vcm1hbE1vZENhc2UgPSBtX2Jsb2NrSW5zZXJ0aW9uU2V0Lmluc2VydEJl
Zm9yZShtX2Jsb2NrKTsKIAotICAgICAgICAgICAgICAgICAgICBiZWZvcmUtPnJlcGxhY2VMYXN0
V2l0aE5ldzxDb250cm9sVmFsdWU+KAotICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBC
cmFuY2gsIG1fb3JpZ2luLCBtX3ZhbHVlLT5jaGlsZCgxKSwKKyAgICAgICAgICAgICAgICAgICAg
YmVmb3JlLT5yZXBsYWNlTGFzdFdpdGhOZXc8VmFsdWU+KG1fcHJvYywgQnJhbmNoLCBtX29yaWdp
biwgbV92YWx1ZS0+Y2hpbGQoMSkpOworICAgICAgICAgICAgICAgICAgICBiZWZvcmUtPnNldFN1
Y2Nlc3NvcnMoCiAgICAgICAgICAgICAgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2sobm9ybWFs
TW9kQ2FzZSwgRnJlcXVlbmN5Q2xhc3M6Ok5vcm1hbCksCiAgICAgICAgICAgICAgICAgICAgICAg
ICBGcmVxdWVudGVkQmxvY2soemVyb0RlbkNhc2UsIEZyZXF1ZW5jeUNsYXNzOjpSYXJlKSk7CiAK
QEAgLTEyNywxMiArMTMzLDE0IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgIFZhbHVl
KiBtdWx0aXBsaWVkQmFjayA9IG5vcm1hbE1vZENhc2UtPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9j
LCBNdWwsIG1fb3JpZ2luLCBkaXZSZXN1bHQsIG1fdmFsdWUtPmNoaWxkKDEpKTsKICAgICAgICAg
ICAgICAgICAgICAgVmFsdWUqIHJlc3VsdCA9IG5vcm1hbE1vZENhc2UtPmFwcGVuZE5ldzxWYWx1
ZT4obV9wcm9jLCBTdWIsIG1fb3JpZ2luLCBtX3ZhbHVlLT5jaGlsZCgwKSwgbXVsdGlwbGllZEJh
Y2spOwogICAgICAgICAgICAgICAgICAgICBVcHNpbG9uVmFsdWUqIG5vcm1hbFJlc3VsdCA9IG5v
cm1hbE1vZENhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KG1fcHJvYywgbV9vcmlnaW4sIHJl
c3VsdCk7Ci0gICAgICAgICAgICAgICAgICAgIG5vcm1hbE1vZENhc2UtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2Nr
KSk7CisgICAgICAgICAgICAgICAgICAgIG5vcm1hbE1vZENhc2UtPmFwcGVuZE5ldzxWYWx1ZT4o
bV9wcm9jLCBKdW1wLCBtX29yaWdpbik7CisgICAgICAgICAgICAgICAgICAgIG5vcm1hbE1vZENh
c2UtPnNldFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2NrKG1fYmxvY2spKTsKIAogICAgICAgICAg
ICAgICAgICAgICBVcHNpbG9uVmFsdWUqIHplcm9SZXN1bHQgPSB6ZXJvRGVuQ2FzZS0+YXBwZW5k
TmV3PFVwc2lsb25WYWx1ZT4oCiAgICAgICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIG1fb3Jp
Z2luLAogICAgICAgICAgICAgICAgICAgICAgICAgemVyb0RlbkNhc2UtPmFwcGVuZEludENvbnN0
YW50KG1fcHJvYywgbV92YWx1ZSwgMCkpOwotICAgICAgICAgICAgICAgICAgICB6ZXJvRGVuQ2Fz
ZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4obV9wcm9jLCBKdW1wLCBtX29yaWdpbiwgRnJlcXVl
bnRlZEJsb2NrKG1fYmxvY2spKTsKKyAgICAgICAgICAgICAgICAgICAgemVyb0RlbkNhc2UtPmFw
cGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBKdW1wLCBtX29yaWdpbik7CisgICAgICAgICAgICAgICAg
ICAgIHplcm9EZW5DYXNlLT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7
CiAKICAgICAgICAgICAgICAgICAgICAgVmFsdWUqIHBoaSA9IG1faW5zZXJ0aW9uU2V0Lmluc2Vy
dDxWYWx1ZT4obV9pbmRleCwgUGhpLCBtX3ZhbHVlLT50eXBlKCksIG1fb3JpZ2luKTsKICAgICAg
ICAgICAgICAgICAgICAgbm9ybWFsUmVzdWx0LT5zZXRQaGkocGhpKTsKQEAgLTE0NywxNSArMTU1
LDE2IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBjYXNlIFN3aXRjaDogewogICAgICAgICAgICAg
ICAgIFN3aXRjaFZhbHVlKiBzd2l0Y2hWYWx1ZSA9IG1fdmFsdWUtPmFzPFN3aXRjaFZhbHVlPigp
OwogICAgICAgICAgICAgICAgIFZlY3RvcjxTd2l0Y2hDYXNlPiBjYXNlczsKLSAgICAgICAgICAg
ICAgICBmb3IgKGNvbnN0IFN3aXRjaENhc2UmIHN3aXRjaENhc2UgOiAqc3dpdGNoVmFsdWUpCisg
ICAgICAgICAgICAgICAgZm9yIChjb25zdCBTd2l0Y2hDYXNlJiBzd2l0Y2hDYXNlIDogc3dpdGNo
VmFsdWUtPmNhc2VzKG1fYmxvY2spKQogICAgICAgICAgICAgICAgICAgICBjYXNlcy5hcHBlbmQo
c3dpdGNoQ2FzZSk7CiAgICAgICAgICAgICAgICAgc3RkOjpzb3J0KAogICAgICAgICAgICAgICAg
ICAgICBjYXNlcy5iZWdpbigpLCBjYXNlcy5lbmQoKSwKICAgICAgICAgICAgICAgICAgICAgW10g
KGNvbnN0IFN3aXRjaENhc2UmIGxlZnQsIGNvbnN0IFN3aXRjaENhc2UmIHJpZ2h0KSB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gbGVmdC5jYXNlVmFsdWUoKSA8IHJpZ2h0LmNhc2VW
YWx1ZSgpOwogICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBGcmVxdWVu
dGVkQmxvY2sgZmFsbFRocm91Z2ggPSBtX2Jsb2NrLT5mYWxsVGhyb3VnaCgpOwogICAgICAgICAg
ICAgICAgIG1fYmxvY2stPnZhbHVlcygpLnJlbW92ZUxhc3QoKTsKLSAgICAgICAgICAgICAgICBy
ZWN1cnNpdmVseUJ1aWxkU3dpdGNoKGNhc2VzLCAwLCBmYWxzZSwgY2FzZXMuc2l6ZSgpLCBtX2Js
b2NrKTsKKyAgICAgICAgICAgICAgICByZWN1cnNpdmVseUJ1aWxkU3dpdGNoKGNhc2VzLCBmYWxs
VGhyb3VnaCwgMCwgZmFsc2UsIGNhc2VzLnNpemUoKSwgbV9ibG9jayk7CiAgICAgICAgICAgICAg
ICAgbV9wcm9jLmRlbGV0ZVZhbHVlKHN3aXRjaFZhbHVlKTsKICAgICAgICAgICAgICAgICBtX2Js
b2NrLT51cGRhdGVQcmVkZWNlc3NvcnNBZnRlcigpOwogICAgICAgICAgICAgICAgIG1fY2hhbmdl
ZCA9IHRydWU7CkBAIC0yMTAsMjcgKzIxOSwyNyBAQCBwcml2YXRlOgogICAgICAgICBCYXNpY0Js
b2NrKiBuZWcxRGVuQ2FzZSA9IG1fYmxvY2tJbnNlcnRpb25TZXQuaW5zZXJ0QmVmb3JlKG1fYmxv
Y2spOwogICAgICAgICBCYXNpY0Jsb2NrKiBpbnRNaW5DYXNlID0gbV9ibG9ja0luc2VydGlvblNl
dC5pbnNlcnRCZWZvcmUobV9ibG9jayk7CiAKLSAgICAgICAgYmVmb3JlLT5yZXBsYWNlTGFzdFdp
dGhOZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgICAgIG1fcHJvYywgQnJhbmNoLCBtX29yaWdp
biwgaXNEZW5PSywKKyAgICAgICAgYmVmb3JlLT5yZXBsYWNlTGFzdFdpdGhOZXc8VmFsdWU+KG1f
cHJvYywgQnJhbmNoLCBtX29yaWdpbiwgaXNEZW5PSyk7CisgICAgICAgIGJlZm9yZS0+c2V0U3Vj
Y2Vzc29ycygKICAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhub3JtYWxEaXZDYXNlLCBGcmVx
dWVuY3lDbGFzczo6Tm9ybWFsKSwKICAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhzaGFkeURl
bkNhc2UsIEZyZXF1ZW5jeUNsYXNzOjpSYXJlKSk7CiAKICAgICAgICAgVXBzaWxvblZhbHVlKiBu
b3JtYWxSZXN1bHQgPSBub3JtYWxEaXZDYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPigKICAg
ICAgICAgICAgIG1fcHJvYywgbV9vcmlnaW4sCiAgICAgICAgICAgICBub3JtYWxEaXZDYXNlLT5h
cHBlbmROZXc8VmFsdWU+KG1fcHJvYywgbm9uQ2hpbGxPcGNvZGUsIG1fb3JpZ2luLCBudW0sIGRl
bikpOwotICAgICAgICBub3JtYWxEaXZDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAg
ICAgICAgICAgIG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2Nr
KSk7CisgICAgICAgIG5vcm1hbERpdkNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBKdW1w
LCBtX29yaWdpbik7CisgICAgICAgIG5vcm1hbERpdkNhc2UtPnNldFN1Y2Nlc3NvcnMoRnJlcXVl
bnRlZEJsb2NrKG1fYmxvY2spKTsKIAotICAgICAgICBzaGFkeURlbkNhc2UtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAotICAgICAgICAgICAgbV9wcm9jLCBCcmFuY2gsIG1fb3JpZ2luLCBkZW4s
CisgICAgICAgIHNoYWR5RGVuQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIEJyYW5jaCwg
bV9vcmlnaW4sIGRlbik7CisgICAgICAgIHNoYWR5RGVuQ2FzZS0+c2V0U3VjY2Vzc29ycygKICAg
ICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhuZWcxRGVuQ2FzZSwgRnJlcXVlbmN5Q2xhc3M6Ok5v
cm1hbCksCiAgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2soemVyb0RlbkNhc2UsIEZyZXF1ZW5j
eUNsYXNzOjpSYXJlKSk7CiAKICAgICAgICAgVXBzaWxvblZhbHVlKiB6ZXJvUmVzdWx0ID0gemVy
b0RlbkNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KAogICAgICAgICAgICAgbV9wcm9jLCBt
X29yaWdpbiwKICAgICAgICAgICAgIHplcm9EZW5DYXNlLT5hcHBlbmRJbnRDb25zdGFudChtX3By
b2MsIG1fdmFsdWUsIDApKTsKLSAgICAgICAgemVyb0RlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAotICAgICAgICAgICAgbV9wcm9jLCBKdW1wLCBtX29yaWdpbiwgRnJlcXVlbnRlZEJs
b2NrKG1fYmxvY2spKTsKKyAgICAgICAgemVyb0RlbkNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4obV9w
cm9jLCBKdW1wLCBtX29yaWdpbik7CisgICAgICAgIHplcm9EZW5DYXNlLT5zZXRTdWNjZXNzb3Jz
KEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7CiAKICAgICAgICAgaW50NjRfdCBiYWROdW1lcmF0
b3JDb25zdCA9IDA7CiAgICAgICAgIHN3aXRjaCAobV92YWx1ZS0+dHlwZSgpKSB7CkBAIC0yNDgs
MTggKzI1NywxOSBAQCBwcml2YXRlOgogICAgICAgICBWYWx1ZSogYmFkTnVtZXJhdG9yID0KICAg
ICAgICAgICAgIG5lZzFEZW5DYXNlLT5hcHBlbmRJbnRDb25zdGFudChtX3Byb2MsIG1fdmFsdWUs
IGJhZE51bWVyYXRvckNvbnN0KTsKIAotICAgICAgICBuZWcxRGVuQ2FzZS0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgICAgIG5lZzFEZW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgbV9wcm9jLCBCcmFuY2gsIG1fb3JpZ2luLAogICAgICAgICAgICAgbmVnMURlbkNh
c2UtPmFwcGVuZE5ldzxWYWx1ZT4oCi0gICAgICAgICAgICAgICAgbV9wcm9jLCBFcXVhbCwgbV9v
cmlnaW4sIG51bSwgYmFkTnVtZXJhdG9yKSwKKyAgICAgICAgICAgICAgICBtX3Byb2MsIEVxdWFs
LCBtX29yaWdpbiwgbnVtLCBiYWROdW1lcmF0b3IpKTsKKyAgICAgICAgbmVnMURlbkNhc2UtPnNl
dFN1Y2Nlc3NvcnMoCiAgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2soaW50TWluQ2FzZSwgRnJl
cXVlbmN5Q2xhc3M6OlJhcmUpLAogICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKG5vcm1hbERp
dkNhc2UsIEZyZXF1ZW5jeUNsYXNzOjpOb3JtYWwpKTsKIAogICAgICAgICBWYWx1ZSogaW50TWlu
UmVzdWx0ID0gbm9uQ2hpbGxPcGNvZGUgPT0gRGl2ID8gYmFkTnVtZXJhdG9yIDogaW50TWluQ2Fz
ZS0+YXBwZW5kSW50Q29uc3RhbnQobV9wcm9jLCBtX3ZhbHVlLCAwKTsKICAgICAgICAgVXBzaWxv
blZhbHVlKiBpbnRNaW5SZXN1bHRVcHNpbG9uID0gaW50TWluQ2FzZS0+YXBwZW5kTmV3PFVwc2ls
b25WYWx1ZT4oCiAgICAgICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLCBpbnRNaW5SZXN1bHQpOwot
ICAgICAgICBpbnRNaW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgICAg
IG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7CisgICAg
ICAgIGludE1pbkNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBKdW1wLCBtX29yaWdpbik7
CisgICAgICAgIGludE1pbkNhc2UtPnNldFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2NrKG1fYmxv
Y2spKTsKIAogICAgICAgICBWYWx1ZSogcGhpID0gbV9pbnNlcnRpb25TZXQuaW5zZXJ0PFZhbHVl
PigKICAgICAgICAgICAgIG1faW5kZXgsIFBoaSwgbV92YWx1ZS0+dHlwZSgpLCBtX29yaWdpbik7
CkBAIC0yNzIsMTEgKzI4MiwxMTEgQEAgcHJpdmF0ZToKICAgICB9CiAKICAgICB2b2lkIHJlY3Vy
c2l2ZWx5QnVpbGRTd2l0Y2goCi0gICAgICAgIGNvbnN0IFZlY3RvcjxTd2l0Y2hDYXNlPiYgY2Fz
ZXMsIHVuc2lnbmVkIHN0YXJ0LCBib29sIGhhcmRTdGFydCwgdW5zaWduZWQgZW5kLAotICAgICAg
ICBCYXNpY0Jsb2NrKiBiZWZvcmUpCisgICAgICAgIGNvbnN0IFZlY3RvcjxTd2l0Y2hDYXNlPiYg
Y2FzZXMsIEZyZXF1ZW50ZWRCbG9jayBmYWxsVGhyb3VnaCwgdW5zaWduZWQgc3RhcnQsIGJvb2wg
aGFyZFN0YXJ0LAorICAgICAgICB1bnNpZ25lZCBlbmQsIEJhc2ljQmxvY2sqIGJlZm9yZSkKICAg
ICB7Ci0gICAgICAgIC8vIEZJWE1FOiBBZGQgdGFibGUtYmFzZWQgc3dpdGNoIGxvd2VyaW5nLgot
ICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxMTQx
CisgICAgICAgIFZhbHVlKiBjaGlsZCA9IG1fdmFsdWUtPmNoaWxkKDApOworICAgICAgICBUeXBl
IHR5cGUgPSBjaGlsZC0+dHlwZSgpOworICAgICAgICAKKyAgICAgICAgLy8gSXQncyBhIGdvb2Qg
aWRlYSB0byB1c2UgYSB0YWJsZS1iYXNlZCBzd2l0Y2ggaW4gc29tZSBjYXNlczogdGhlIG51bWJl
ciBvZiBjYXNlcyBoYXMgdG8gYmUKKyAgICAgICAgLy8gbGFyZ2UgZW5vdWdoIGFuZCB0aGV5IGhh
dmUgdG8gYmUgZGVuc2UgZW5vdWdoLiBUaGlzIGNvdWxkIHByb2JhYmx5IGJlIGltcHJvdmVkIGEg
bG90LiBGb3IKKyAgICAgICAgLy8gZXhhbXBsZSwgd2UgY291bGQgc3RpbGwgdXNlIGEganVtcCB0
YWJsZSBpbiBjYXNlcyB3aGVyZSB0aGUgaW5wdXRzIGFyZSBzcGFyc2Ugc28gbG9uZyBhcyB3ZQor
ICAgICAgICAvLyBzaGlmdCBvZmYgdGhlIHVuaW50ZXJlc3RpbmcgYml0cy4gT24gdGhlIG90aGVy
IGhhbmQsIGl0J3Mgbm90IGNsZWFyIHRoYXQgdGhpcyB3b3VsZAorICAgICAgICAvLyBhY3R1YWxs
eSBiZSBhbnkgYmV0dGVyIHRoYW4gd2hhdCB3ZSBoYXZlIGRvbmUgaGVyZSBhbmQgaXQncyBub3Qg
Y2xlYXIgdGhhdCBpdCB3b3VsZCBiZQorICAgICAgICAvLyBiZXR0ZXIgdGhhbiBhIGJpbmFyeSBz
d2l0Y2guCisgICAgICAgIGNvbnN0IHVuc2lnbmVkIG1pbkNhc2VzRm9yVGFibGUgPSA3OworICAg
ICAgICBjb25zdCB1bnNpZ25lZCBkZW5zaXR5TGltaXQgPSA0OworICAgICAgICBpZiAoZW5kIC0g
c3RhcnQgPj0gbWluQ2FzZXNGb3JUYWJsZSkgeworICAgICAgICAgICAgaW50NjRfdCBmaXJzdFZh
bHVlID0gY2FzZXNbc3RhcnRdLmNhc2VWYWx1ZSgpOworICAgICAgICAgICAgaW50NjRfdCBsYXN0
VmFsdWUgPSBjYXNlc1tlbmQgLSAxXS5jYXNlVmFsdWUoKTsKKyAgICAgICAgICAgIGlmICgobGFz
dFZhbHVlIC0gZmlyc3RWYWx1ZSArIDEpIC8gY2FzZXMuc2l6ZSgpIDwgZGVuc2l0eUxpbWl0KSB7
CisgICAgICAgICAgICAgICAgQmFzaWNCbG9jayogc3dpdGNoQmxvY2sgPSBtX2Jsb2NrSW5zZXJ0
aW9uU2V0Lmluc2VydEFmdGVyKG1fYmxvY2spOworICAgICAgICAgICAgICAgIFZhbHVlKiBpbmRl
eCA9IGJlZm9yZS0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgICAgICAgICAgbV9wcm9j
LCBTdWIsIG1fb3JpZ2luLCBjaGlsZCwKKyAgICAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBl
bmRJbnRDb25zdGFudChtX3Byb2MsIG1fb3JpZ2luLCB0eXBlLCBmaXJzdFZhbHVlKSk7CisgICAg
ICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAgICAgICAg
ICBtX3Byb2MsIEJyYW5jaCwgbV9vcmlnaW4sCisgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+
YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgQWJvdmUs
IG1fb3JpZ2luLCBpbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5k
SW50Q29uc3RhbnQobV9wcm9jLCBtX29yaWdpbiwgdHlwZSwgbGFzdFZhbHVlIC0gZmlyc3RWYWx1
ZSkpKTsKKyAgICAgICAgICAgICAgICBiZWZvcmUtPnNldFN1Y2Nlc3NvcnMoZmFsbFRocm91Z2gs
IEZyZXF1ZW50ZWRCbG9jayhzd2l0Y2hCbG9jaykpOworICAgICAgICAgICAgICAgIAorICAgICAg
ICAgICAgICAgIHNpemVfdCB0YWJsZVNpemUgPSBsYXN0VmFsdWUgLSBmaXJzdFZhbHVlICsgMTsK
KyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoaW5kZXgtPnR5cGUoKSAhPSBw
b2ludGVyVHlwZSgpICYmIGluZGV4LT50eXBlKCkgPT0gSW50MzIpCisgICAgICAgICAgICAgICAg
ICAgIGluZGV4ID0gc3dpdGNoQmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBaRXh0MzIs
IG1fb3JpZ2luLCBpbmRleCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgUGF0
Y2hwb2ludFZhbHVlKiBwYXRjaHBvaW50ID0KKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoQmxv
Y2stPmFwcGVuZE5ldzxQYXRjaHBvaW50VmFsdWU+KG1fcHJvYywgVm9pZCwgbV9vcmlnaW4pOwor
CisgICAgICAgICAgICAgICAgLy8gRXZlbiB0aG91Z2ggdGhpcyBsb2FkcyBmcm9tIHRoZSBqdW1w
IHRhYmxlLCB0aGUganVtcCB0YWJsZSBpcyBpbW11dGFibGUuIEZvciB0aGUKKyAgICAgICAgICAg
ICAgICAvLyBwdXJwb3NlIG9mIGFsaWFzIGFuYWx5c2lzLCByZWFkaW5nIHNvbWV0aGluZyBpbW11
dGFibGUgaXMgbGlrZSByZWFkaW5nIG5vdGhpbmcuCisgICAgICAgICAgICAgICAgcGF0Y2hwb2lu
dC0+ZWZmZWN0cyA9IEVmZmVjdHMoKTsKKyAgICAgICAgICAgICAgICBwYXRjaHBvaW50LT5lZmZl
Y3RzLnRlcm1pbmFsID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBw
YXRjaHBvaW50LT5hcHBlbmRTb21lUmVnaXN0ZXIoaW5kZXgpOworICAgICAgICAgICAgICAgIHBh
dGNocG9pbnQtPm51bUdQU2NyYXRjaFJlZ2lzdGVycysrOworICAgICAgICAgICAgICAgIC8vIFRl
Y2huaWNhbGx5LCB3ZSBkb24ndCBoYXZlIHRvIGNsb2JiZXIgbWFjcm8gcmVnaXN0ZXJzIG9uIFg4
Nl82NC4gVGhpcyBpcyBwcm9iYWJseQorICAgICAgICAgICAgICAgIC8vIE9LIHRob3VnaC4KKyAg
ICAgICAgICAgICAgICBwYXRjaHBvaW50LT5jbG9iYmVyKFJlZ2lzdGVyU2V0OjptYWNyb1NjcmF0
Y2hSZWdpc3RlcnMoKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgQml0VmVj
dG9yIGhhbmRsZWRJbmRpY2VzOworICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IHN0
YXJ0OyBpIDwgZW5kOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2Nr
IGJsb2NrID0gY2FzZXNbaV0udGFyZ2V0KCk7CisgICAgICAgICAgICAgICAgICAgIGludDY0X3Qg
dmFsdWUgPSBjYXNlc1tpXS5jYXNlVmFsdWUoKTsKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNo
QmxvY2stPmFwcGVuZFN1Y2Nlc3NvcihibG9jayk7CisgICAgICAgICAgICAgICAgICAgIHNpemVf
dCBpbmRleCA9IHZhbHVlIC0gZmlyc3RWYWx1ZTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJU
KCFoYW5kbGVkSW5kaWNlcy5nZXQoaW5kZXgpKTsKKyAgICAgICAgICAgICAgICAgICAgaGFuZGxl
ZEluZGljZXMuc2V0KGluZGV4KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
CisgICAgICAgICAgICAgICAgYm9vbCBoYXNVbmhhbmRsZWRJbmRleCA9IGZhbHNlOworICAgICAg
ICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB0YWJsZVNpemU7ICsraSkgeworICAg
ICAgICAgICAgICAgICAgICBpZiAoIWhhbmRsZWRJbmRpY2VzLmdldChpKSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgaGFzVW5oYW5kbGVkSW5kZXggPSB0cnVlOworICAgICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGhhc1VuaGFuZGxlZEluZGV4
KQorICAgICAgICAgICAgICAgICAgICBzd2l0Y2hCbG9jay0+YXBwZW5kU3VjY2Vzc29yKGZhbGxU
aHJvdWdoKTsKKworICAgICAgICAgICAgICAgIHBhdGNocG9pbnQtPnNldEdlbmVyYXRvcigKKyAg
ICAgICAgICAgICAgICAgICAgWz1dIChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU3RhY2ttYXBH
ZW5lcmF0aW9uUGFyYW1zJiBwYXJhbXMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEFsbG93
TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSBhbGxvd1NjcmF0Y2goaml0KTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2Rl
UHRyKiBqdW1wVGFibGUgPSBzdGF0aWNfY2FzdDxNYWNyb0Fzc2VtYmxlckNvZGVQdHIqPigKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMucHJvYygpLmFkZERhdGFTZWN0aW9uKHNp
emVvZihNYWNyb0Fzc2VtYmxlckNvZGVQdHIpICogdGFibGVTaXplKSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIEdQUlJlZyBpbmRleCA9IHBhcmFt
c1swXS5ncHIoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIEdQUlJlZyBzY3JhdGNoID0gcGFy
YW1zLmdwU2NyYXRjaCgwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAg
ICAgICAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGp1bXBUYWJs
ZSksIHNjcmF0Y2gpOworICAgICAgICAgICAgICAgICAgICAgICAgaml0Lmp1bXAoQ0NhbGxIZWxw
ZXJzOjpCYXNlSW5kZXgoc2NyYXRjaCwgaW5kZXgsIENDYWxsSGVscGVyczo6dGltZXNQdHIoKSkp
OworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBU
aGVzZSBsYWJlbHMgYXJlIGd1YXJhbnRlZWQgdG8gYmUgcG9wdWxhdGVkIGJlZm9yZSBlaXRoZXIg
bGF0ZSBwYXRocyBvcgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGluayB0YXNrcyBydW4u
CisgICAgICAgICAgICAgICAgICAgICAgICBWZWN0b3I8Qm94PENDYWxsSGVscGVyczo6TGFiZWw+
PiBsYWJlbHMgPSBwYXJhbXMuc3VjY2Vzc29yTGFiZWxzKCk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIGppdC5hZGRMaW5rVGFzaygKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBbPV0gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGhhc1VuaGFuZGxlZEluZGV4KSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgZmFs
bFRocm91Z2ggPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmtC
dWZmZXIubG9jYXRpb25PZigqbGFiZWxzLmxhc3QoKSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSB0YWJsZVNpemU7IGktLTspCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganVtcFRhYmxlW2ldID0gZmFsbFRocm91
Z2g7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IGxhYmVsSW5kZXggPSAwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHVu
c2lnbmVkIHRhYmxlSW5kZXggOiBoYW5kbGVkSW5kaWNlcykgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAganVtcFRhYmxlW3RhYmxlSW5kZXhdID0KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rQnVmZmVyLmxvY2F0aW9uT2YoKmxhYmVsc1ts
YWJlbEluZGV4KytdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICAgICAgCiAg
ICAgICAgIC8vIFNlZSBjb21tZW50cyBpbiBqaXQvQmluYXJ5U3dpdGNoLmNwcCBmb3IgYSBqdXN0
aWZpY2F0aW9uIG9mIHRoaXMgYWxnb3JpdGhtLiBUaGUgb25seQogICAgICAgICAvLyB0aGluZyB3
ZSBkbyBkaWZmZXJlbnRseSBpcyB0aGF0IHdlIGRvbid0IHVzZSByYW5kb21uZXNzLgpAQCAtMzA0
LDI1ICs0MTQsMjMgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIAogICAgICAgICAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IGxpbWl0OyArK2kpIHsKICAgICAgICAgICAgICAgICBCYXNpY0Js
b2NrKiBuZXh0Q2hlY2sgPSBtX2Jsb2NrSW5zZXJ0aW9uU2V0Lmluc2VydEFmdGVyKG1fYmxvY2sp
OwotICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
ICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAgICAg
ICBtX3Byb2MsIEJyYW5jaCwgbV9vcmlnaW4sCiAgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+
YXBwZW5kTmV3PFZhbHVlPigKLSAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJvYywgRXF1YWws
IG1fb3JpZ2luLCBtX3ZhbHVlLT5jaGlsZCgwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1f
cHJvYywgRXF1YWwsIG1fb3JpZ2luLCBjaGlsZCwKICAgICAgICAgICAgICAgICAgICAgICAgIGJl
Zm9yZS0+YXBwZW5kSW50Q29uc3RhbnQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9w
cm9jLCBtX29yaWdpbiwgbV92YWx1ZS0+Y2hpbGQoMCktPnR5cGUoKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjYXNlc1tzdGFydCArIGldLmNhc2VWYWx1ZSgpKSksCi0gICAgICAgICAg
ICAgICAgICAgIGNhc2VzW3N0YXJ0ICsgaV0udGFyZ2V0KCksIEZyZXF1ZW50ZWRCbG9jayhuZXh0
Q2hlY2spKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLCB0
eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2VzW3N0YXJ0ICsgaV0uY2FzZVZh
bHVlKCkpKSk7CisgICAgICAgICAgICAgICAgYmVmb3JlLT5zZXRTdWNjZXNzb3JzKGNhc2VzW3N0
YXJ0ICsgaV0udGFyZ2V0KCksIEZyZXF1ZW50ZWRCbG9jayhuZXh0Q2hlY2spKTsKIAogICAgICAg
ICAgICAgICAgIGJlZm9yZSA9IG5leHRDaGVjazsKICAgICAgICAgICAgIH0KIAotICAgICAgICAg
ICAgaWYgKGFsbENvbnNlY3V0aXZlKSB7Ci0gICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBKdW1wLCBtX29y
aWdpbiwgY2FzZXNbZW5kIC0gMV0udGFyZ2V0KCkpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAotICAgICAgICAg
ICAgICAgICAgICBtX3Byb2MsIEp1bXAsIG1fb3JpZ2luLCBtX3ZhbHVlLT5hczxTd2l0Y2hWYWx1
ZT4oKS0+ZmFsbFRocm91Z2goKSk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBiZWZvcmUt
PmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBKdW1wLCBtX29yaWdpbik7CisgICAgICAgICAgICBp
ZiAoYWxsQ29uc2VjdXRpdmUpCisgICAgICAgICAgICAgICAgYmVmb3JlLT5zZXRTdWNjZXNzb3Jz
KGNhc2VzW2VuZCAtIDFdLnRhcmdldCgpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICBiZWZvcmUtPnNldFN1Y2Nlc3NvcnMoZmFsbFRocm91Z2gpOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAKQEAgLTMzMSwxNyArNDM5LDE3IEBAIHByaXZhdGU6CiAgICAgICAg
IEJhc2ljQmxvY2sqIGxlZnQgPSBtX2Jsb2NrSW5zZXJ0aW9uU2V0Lmluc2VydEFmdGVyKG1fYmxv
Y2spOwogICAgICAgICBCYXNpY0Jsb2NrKiByaWdodCA9IG1fYmxvY2tJbnNlcnRpb25TZXQuaW5z
ZXJ0QWZ0ZXIobV9ibG9jayk7CiAKLSAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgbV9w
cm9jLCBCcmFuY2gsIG1fb3JpZ2luLAogICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8VmFs
dWU+KAotICAgICAgICAgICAgICAgIG1fcHJvYywgTGVzc1RoYW4sIG1fb3JpZ2luLCBtX3ZhbHVl
LT5jaGlsZCgwKSwKKyAgICAgICAgICAgICAgICBtX3Byb2MsIExlc3NUaGFuLCBtX29yaWdpbiwg
Y2hpbGQsCiAgICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmRJbnRDb25zdGFudCgKLSAgICAg
ICAgICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwgbV92YWx1ZS0+Y2hpbGQoMCktPnR5cGUo
KSwKLSAgICAgICAgICAgICAgICAgICAgY2FzZXNbbWVkaWFuSW5kZXhdLmNhc2VWYWx1ZSgpKSks
Ci0gICAgICAgICAgICBGcmVxdWVudGVkQmxvY2sobGVmdCksIEZyZXF1ZW50ZWRCbG9jayhyaWdo
dCkpOworICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLCB0eXBlLAorICAgICAg
ICAgICAgICAgICAgICBjYXNlc1ttZWRpYW5JbmRleF0uY2FzZVZhbHVlKCkpKSk7CisgICAgICAg
IGJlZm9yZS0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2sobGVmdCksIEZyZXF1ZW50ZWRC
bG9jayhyaWdodCkpOwogCi0gICAgICAgIHJlY3Vyc2l2ZWx5QnVpbGRTd2l0Y2goY2FzZXMsIHN0
YXJ0LCBoYXJkU3RhcnQsIG1lZGlhbkluZGV4LCBsZWZ0KTsKLSAgICAgICAgcmVjdXJzaXZlbHlC
dWlsZFN3aXRjaChjYXNlcywgbWVkaWFuSW5kZXgsIHRydWUsIGVuZCwgcmlnaHQpOworICAgICAg
ICByZWN1cnNpdmVseUJ1aWxkU3dpdGNoKGNhc2VzLCBmYWxsVGhyb3VnaCwgc3RhcnQsIGhhcmRT
dGFydCwgbWVkaWFuSW5kZXgsIGxlZnQpOworICAgICAgICByZWN1cnNpdmVseUJ1aWxkU3dpdGNo
KGNhc2VzLCBmYWxsVGhyb3VnaCwgbWVkaWFuSW5kZXgsIHRydWUsIGVuZCwgcmlnaHQpOwogICAg
IH0KICAgICAKICAgICBQcm9jZWR1cmUmIG1fcHJvYzsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCShyZXZpc2lvbiAyMDMzNzEpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU1LDcg
KzE1NSw2IEBAIHB1YmxpYzoKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgLy8gTWFrZSBz
dXJlIHRoYXQgdGhlIHN1Y2Nlc3NvcnMgYXJlIHNldCB1cCBjb3JyZWN0bHkuCi0gICAgICAgICAg
ICBBU1NFUlQoYmxvY2stPnN1Y2Nlc3NvcnMoKS5zaXplKCkgPD0gMik7CiAgICAgICAgICAgICBm
b3IgKEIzOjpGcmVxdWVudGVkQmxvY2sgc3VjY2Vzc29yIDogYmxvY2stPnN1Y2Nlc3NvcnMoKSkg
ewogICAgICAgICAgICAgICAgIG1fYmxvY2tUb0Jsb2NrW2Jsb2NrXS0+c3VjY2Vzc29ycygpLmFw
cGVuZCgKICAgICAgICAgICAgICAgICAgICAgQWlyOjpGcmVxdWVudGVkQmxvY2sobV9ibG9ja1Rv
QmxvY2tbc3VjY2Vzc29yLmJsb2NrKCldLCBzdWNjZXNzb3IuZnJlcXVlbmN5KCkpKTsKQEAgLTI0
NDEsNyArMjQ0MCw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KLQorICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgQjM6Ok9vcHM6IHsK
ICAgICAgICAgICAgIGFwcGVuZChBaXI6Ok9vcHMpOwogICAgICAgICAgICAgcmV0dXJuOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTWF0aEV4dHJhcy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTWF0aEV4dHJhcy5jcHAJKHJldmlzaW9uIDIw
MzM3MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM01hdGhFeHRyYXMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTMzLDcgKzMzLDYgQEAKICNpbmNsdWRlICJCM0NvbnN0MzJWYWx1ZS5oIgogI2lu
Y2x1ZGUgIkIzQ29uc3REb3VibGVWYWx1ZS5oIgogI2luY2x1ZGUgIkIzQ29uc3RQdHJWYWx1ZS5o
IgotI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNVcHNpbG9uVmFsdWUu
aCIKICNpbmNsdWRlICJCM1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUgIk1hdGhDb21tb24uaCIK
QEAgLTUyLDEwICs1MSw4IEBAIHN0ZDo6cGFpcjxCYXNpY0Jsb2NrKiwgVmFsdWUqPiBwb3dEb3Vi
bGUKICAgICBWYWx1ZSogc2hvdWxkR29TbG93UGF0aCA9IHN0YXJ0LT5hcHBlbmROZXc8VmFsdWU+
KHByb2NlZHVyZSwgQWJvdmUsIG9yaWdpbiwKICAgICAgICAgeSwKICAgICAgICAgc3RhcnQtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2NlZHVyZSwgb3JpZ2luLCBtYXhFeHBvbmVudEZvcklu
dGVnZXJNYXRoUG93KSk7Ci0gICAgc3RhcnQtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAotICAg
ICAgICBwcm9jZWR1cmUsIEJyYW5jaCwgb3JpZ2luLAotICAgICAgICBzaG91bGRHb1Nsb3dQYXRo
LAotICAgICAgICBGcmVxdWVudGVkQmxvY2soZnVuY3Rpb25DYWxsQ2FzZSksIEZyZXF1ZW50ZWRC
bG9jayhsb29wUHJlSGVhZGVyQ2FzZSkpOworICAgIHN0YXJ0LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2NlZHVyZSwgQnJhbmNoLCBvcmlnaW4sIHNob3VsZEdvU2xvd1BhdGgpOworICAgIHN0YXJ0LT5z
ZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhmdW5jdGlvbkNhbGxDYXNlKSwgRnJlcXVlbnRl
ZEJsb2NrKGxvb3BQcmVIZWFkZXJDYXNlKSk7CiAKICAgICAvLyBGdW5jdGlvbiBjYWxsLgogICAg
IFZhbHVlKiB5QXNEb3VibGUgPSBmdW5jdGlvbkNhbGxDYXNlLT5hcHBlbmROZXc8VmFsdWU+KHBy
b2NlZHVyZSwgSVRvRCwgb3JpZ2luLCB5KTsKQEAgLTY1LDcgKzYyLDggQEAgc3RkOjpwYWlyPEJh
c2ljQmxvY2sqLCBWYWx1ZSo+IHBvd0RvdWJsZQogICAgICAgICBmdW5jdGlvbkNhbGxDYXNlLT5h
cHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvY2VkdXJlLCBvcmlnaW4sIGJpdHdpc2VfY2FzdDx2
b2lkKj4ocG93RG91YmxlKSksCiAgICAgICAgIHgsIHlBc0RvdWJsZSk7CiAgICAgVXBzaWxvblZh
bHVlKiBwb3dSZXN1bHRVcHNpbG9uID0gZnVuY3Rpb25DYWxsQ2FzZS0+YXBwZW5kTmV3PFVwc2ls
b25WYWx1ZT4ocHJvY2VkdXJlLCBvcmlnaW4sIHBvd1Jlc3VsdCk7Ci0gICAgZnVuY3Rpb25DYWxs
Q2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvY2VkdXJlLCBKdW1wLCBvcmlnaW4sIEZy
ZXF1ZW50ZWRCbG9jayhjb250aW51YXRpb24pKTsKKyAgICBmdW5jdGlvbkNhbGxDYXNlLT5hcHBl
bmROZXc8VmFsdWU+KHByb2NlZHVyZSwgSnVtcCwgb3JpZ2luKTsKKyAgICBmdW5jdGlvbkNhbGxD
YXNlLT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhjb250aW51YXRpb24pKTsKIAogICAg
IC8vIExvb3AgcHJlLWhlYWRlci4KICAgICBWYWx1ZSogaW5pdGlhbFJlc3VsdCA9IGxvb3BQcmVI
ZWFkZXJDYXNlLT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvY2VkdXJlLCBvcmlnaW4s
IDEuKTsKQEAgLTczLDcgKzcxLDggQEAgc3RkOjpwYWlyPEJhc2ljQmxvY2sqLCBWYWx1ZSo+IHBv
d0RvdWJsZQogICAgIFVwc2lsb25WYWx1ZSogaW5pdGlhbFJlc3VsdFZhbHVlID0gbG9vcFByZUhl
YWRlckNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2NlZHVyZSwgb3JpZ2luLCBpbml0
aWFsUmVzdWx0KTsKICAgICBVcHNpbG9uVmFsdWUqIGluaXRpYWxTcXVhcmVkSW5wdXQgPSBsb29w
UHJlSGVhZGVyQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvY2VkdXJlLCBvcmlnaW4s
IHgpOwogICAgIFVwc2lsb25WYWx1ZSogaW5pdGlhbExvb3BDb3VudGVyID0gbG9vcFByZUhlYWRl
ckNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2NlZHVyZSwgb3JpZ2luLCB5KTsKLSAg
ICBsb29wUHJlSGVhZGVyQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvY2VkdXJlLCBK
dW1wLCBvcmlnaW4sIEZyZXF1ZW50ZWRCbG9jayhsb29wVGVzdEZvckV2ZW5DYXNlKSk7CisgICAg
bG9vcFByZUhlYWRlckNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvY2VkdXJlLCBKdW1wLCBvcmln
aW4pOworICAgIGxvb3BQcmVIZWFkZXJDYXNlLT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9j
ayhsb29wVGVzdEZvckV2ZW5DYXNlKSk7CiAKICAgICAvLyBUZXN0IGlmIHdoYXQgaXMgbGVmdCBv
ZiB0aGUgY291bnRlciBpcyBldmVuLgogICAgIFZhbHVlKiBpbkxvb3BDb3VudGVyID0gbG9vcFRl
c3RGb3JFdmVuQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihwcm9jZWR1cmUsIFBoaSwgSW50MzIsIG9y
aWdpbik7CkBAIC04MSwxMCArODAsOCBAQCBzdGQ6OnBhaXI8QmFzaWNCbG9jayosIFZhbHVlKj4g
cG93RG91YmxlCiAgICAgVmFsdWUqIGxhc3RDb3VudGVyQml0ID0gbG9vcFRlc3RGb3JFdmVuQ2Fz
ZS0+YXBwZW5kTmV3PFZhbHVlPihwcm9jZWR1cmUsIEJpdEFuZCwgb3JpZ2luLAogICAgICAgICBp
bkxvb3BDb3VudGVyLAogICAgICAgICBsb29wVGVzdEZvckV2ZW5DYXNlLT5hcHBlbmROZXc8Q29u
c3QzMlZhbHVlPihwcm9jZWR1cmUsIG9yaWdpbiwgMSkpOwotICAgIGxvb3BUZXN0Rm9yRXZlbkNh
c2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAotICAgICAgICBwcm9jZWR1cmUsIEJyYW5jaCwg
b3JpZ2luLAotICAgICAgICBsYXN0Q291bnRlckJpdCwKLSAgICAgICAgRnJlcXVlbnRlZEJsb2Nr
KGxvb3BPZGQpLCBGcmVxdWVudGVkQmxvY2sobG9vcEV2ZW5PZGQpKTsKKyAgICBsb29wVGVzdEZv
ckV2ZW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+KHByb2NlZHVyZSwgQnJhbmNoLCBvcmlnaW4sIGxh
c3RDb3VudGVyQml0KTsKKyAgICBsb29wVGVzdEZvckV2ZW5DYXNlLT5zZXRTdWNjZXNzb3JzKEZy
ZXF1ZW50ZWRCbG9jayhsb29wT2RkKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3BFdmVuT2RkKSk7CiAK
ICAgICAvLyBDb3VudGVyIGlzIG9kZC4KICAgICBWYWx1ZSogaW5Mb29wUmVzdWx0ID0gbG9vcE9k
ZC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jZWR1cmUsIFBoaSwgRG91YmxlLCBvcmlnaW4pOwpAQCAt
OTQsNyArOTEsOCBAQCBzdGQ6OnBhaXI8QmFzaWNCbG9jayosIFZhbHVlKj4gcG93RG91YmxlCiAg
ICAgdXBkYXRlZExvb3BSZXN1bHRVcHNpbG9uLT5zZXRQaGkoaW5Mb29wUmVzdWx0KTsKICAgICBV
cHNpbG9uVmFsdWUqIHVwZGF0ZWRMb29wUmVzdWx0ID0gbG9vcE9kZC0+YXBwZW5kTmV3PFVwc2ls
b25WYWx1ZT4ocHJvY2VkdXJlLCBvcmlnaW4sIHVwZGF0ZWRSZXN1bHQpOwogCi0gICAgbG9vcE9k
ZC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvY2VkdXJlLCBKdW1wLCBvcmlnaW4sIEZyZXF1
ZW50ZWRCbG9jayhsb29wRXZlbk9kZCkpOworICAgIGxvb3BPZGQtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvY2VkdXJlLCBKdW1wLCBvcmlnaW4pOworICAgIGxvb3BPZGQtPnNldFN1Y2Nlc3NvcnMoRnJl
cXVlbnRlZEJsb2NrKGxvb3BFdmVuT2RkKSk7CiAKICAgICAvLyBFdmVuIHZhbHVlIGFuZCBmb2xs
b3dpbmcgdGhlIE9kZC4KICAgICBWYWx1ZSogc3F1YXJlZElucHV0ID0gbG9vcEV2ZW5PZGQtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvY2VkdXJlLCBNdWwsIG9yaWdpbiwgaW5Mb29wU3F1YXJlZElucHV0
LCBpbkxvb3BTcXVhcmVkSW5wdXQpOwpAQCAtMTA5LDEwICsxMDcsOCBAQCBzdGQ6OnBhaXI8QmFz
aWNCbG9jayosIFZhbHVlKj4gcG93RG91YmxlCiAgICAgaW5pdGlhbExvb3BDb3VudGVyLT5zZXRQ
aGkoaW5Mb29wQ291bnRlcik7CiAgICAgdXBkYXRlZENvdW50ZXJVcHNpbG9uLT5zZXRQaGkoaW5M
b29wQ291bnRlcik7CiAKLSAgICBsb29wRXZlbk9kZC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
Ci0gICAgICAgIHByb2NlZHVyZSwgQnJhbmNoLCBvcmlnaW4sCi0gICAgICAgIHVwZGF0ZWRDb3Vu
dGVyLAotICAgICAgICBGcmVxdWVudGVkQmxvY2sobG9vcFRlc3RGb3JFdmVuQ2FzZSksIEZyZXF1
ZW50ZWRCbG9jayhjb250aW51YXRpb24pKTsKKyAgICBsb29wRXZlbk9kZC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jZWR1cmUsIEJyYW5jaCwgb3JpZ2luLCB1cGRhdGVkQ291bnRlcik7CisgICAgbG9v
cEV2ZW5PZGQtPnNldFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2NrKGxvb3BUZXN0Rm9yRXZlbkNh
c2UpLCBGcmVxdWVudGVkQmxvY2soY29udGludWF0aW9uKSk7CiAKICAgICAvLyBJbmxpbmUgbG9v
cC4KICAgICBWYWx1ZSogZmluYWxSZXN1bHRQaGkgPSBjb250aW51YXRpb24tPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvY2VkdXJlLCBQaGksIERvdWJsZSwgb3JpZ2luKTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM09wY29kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM09wY29kZS5oCShyZXZpc2lvbiAyMDMzNzEpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNPcGNvZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjA3LDIxICsyMDcsMjEgQEAg
ZW51bSBPcGNvZGUgOiBpbnQxNl90IHsKICAgICBVcHNpbG9uLCAvLyBUaGlzIHVzZXMgdGhlIFVw
c2lsb25WYWx1ZSBjbGFzcy4KICAgICBQaGksCiAKLSAgICAvLyBKdW1wLiBVc2VzIHRoZSBDb250
cm9sVmFsdWUgY2xhc3MuCisgICAgLy8gSnVtcC4KICAgICBKdW1wLAogICAgIAotICAgIC8vIFBv
bHltb3JwaGljIGJyYW5jaCwgdXNhYmxlIHdpdGggYW55IGludGVnZXIgdHlwZS4gQnJhbmNoZXMg
aWYgbm90IGVxdWFsIHRvIHplcm8uIFVzZXMgdGhlCi0gICAgLy8gQ29udHJvbFZhbHVlIGNsYXNz
LCB3aXRoIHRoZSAwLWluZGV4IHN1Y2Nlc3NvciBiZWluZyB0aGUgdHJ1ZSBzdWNjZXNzb3IuCisg
ICAgLy8gUG9seW1vcnBoaWMgYnJhbmNoLCB1c2FibGUgd2l0aCBhbnkgaW50ZWdlciB0eXBlLiBC
cmFuY2hlcyBpZiBub3QgZXF1YWwgdG8gemVyby4gVGhlIDAtaW5kZXgKKyAgICAvLyBzdWNjZXNz
b3IgaXMgdGhlIHRydWUgc3VjY2Vzc29yLgogICAgIEJyYW5jaCwKIAogICAgIC8vIFN3aXRjaC4g
U3dpdGNoZXMgb3ZlciBlaXRoZXIgSW50MzIgb3IgSW50NjQuIFVzZXMgdGhlIFN3aXRjaFZhbHVl
IGNsYXNzLgogICAgIFN3aXRjaCwKLQorICAgIAogICAgIC8vIFJldHVybi4gTm90ZSB0aGF0IEIz
IHByb2NlZHVyZXMgZG9uJ3Qga25vdyB0aGVpciByZXR1cm4gdHlwZSwgc28gdGhpcyBjYW4ganVz
dCByZXR1cm4gYW55Ci0gICAgLy8gdHlwZS4gVXNlcyB0aGUgQ29udHJvbFZhbHVlIGNsYXNzLgor
ICAgIC8vIHR5cGUuCiAgICAgUmV0dXJuLAogCi0gICAgLy8gVGhpcyBpcyBhIHRlcm1pbmFsIHRo
YXQgaW5kaWNhdGVzIHRoYXQgd2Ugd2lsbCBuZXZlciBnZXQgaGVyZS4gVXNlcyB0aGUgQ29udHJv
bFZhbHVlIGNsYXNzLgorICAgIC8vIFRoaXMgaXMgYSB0ZXJtaW5hbCB0aGF0IGluZGljYXRlcyB0
aGF0IHdlIHdpbGwgbmV2ZXIgZ2V0IGhlcmUuCiAgICAgT29wcwogfTsKIApAQCAtMjU5LDYgKzI1
OSwyMCBAQCBpbmxpbmUgYm9vbCBpc0NvbnN0YW50KE9wY29kZSBvcGNvZGUpCiAgICAgfQogfQog
CitpbmxpbmUgYm9vbCBpc0RlZmluaXRlbHlUZXJtaW5hbChPcGNvZGUgb3Bjb2RlKQoreworICAg
IHN3aXRjaCAob3Bjb2RlKSB7CisgICAgY2FzZSBKdW1wOgorICAgIGNhc2UgQnJhbmNoOgorICAg
IGNhc2UgU3dpdGNoOgorICAgIGNhc2UgT29wczoKKyAgICBjYXNlIFJldHVybjoKKyAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0K
K30KKwogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzCiAKIG5hbWVzcGFjZSBXVEYgewpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUGF0Y2hwb2ludFNwZWNpYWwuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BhdGNocG9pbnRTcGVjaWFsLmNwcAko
cmV2aXNpb24gMjAzMzcxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUGF0Y2hwb2lu
dFNwZWNpYWwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDYsNiArMTQ2LDExIEBAIENDYWxsSGVs
cGVyczo6SnVtcCBQYXRjaHBvaW50U3BlY2lhbDo6Z2UKICAgICByZXR1cm4gQ0NhbGxIZWxwZXJz
OjpKdW1wKCk7CiB9CiAKK2Jvb2wgUGF0Y2hwb2ludFNwZWNpYWw6OmlzVGVybWluYWwoSW5zdCYg
aW5zdCkKK3sKKyAgICByZXR1cm4gaW5zdC5vcmlnaW4tPmFzPFBhdGNocG9pbnRWYWx1ZT4oKS0+
ZWZmZWN0cy50ZXJtaW5hbDsKK30KKwogdm9pZCBQYXRjaHBvaW50U3BlY2lhbDo6ZHVtcEltcGwo
UHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHsKICAgICBvdXQucHJpbnQoIlBhdGNocG9pbnQiKTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BhdGNocG9pbnRTcGVjaWFsLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUGF0Y2hwb2ludFNwZWNpYWwu
aAkocmV2aXNpb24gMjAzMzcxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUGF0Y2hw
b2ludFNwZWNpYWwuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01Niw2ICs1Niw4IEBAIHByb3RlY3RlZDoKICAg
ICAvLyBnZW5lcmF0ZXMgdGhlIHN0YWNrbWFwLiBTdXBlciBjcmF6eSBkdWRlIQogCiAgICAgQ0Nh
bGxIZWxwZXJzOjpKdW1wIGdlbmVyYXRlKEFpcjo6SW5zdCYsIENDYWxsSGVscGVycyYsIEFpcjo6
R2VuZXJhdGlvbkNvbnRleHQmKSBvdmVycmlkZTsKKyAgICAKKyAgICBib29sIGlzVGVybWluYWwo
QWlyOjpJbnN0Jikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGR1bXBJbXBsKFByaW50U3RyZWFtJikg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBkZWVwRHVtcEltcGwoUHJpbnRTdHJlYW0mKSBjb25z
dCBvdmVycmlkZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2VkdXJlLmNw
cAkocmV2aXNpb24gMjAzMzcxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJvY2Vk
dXJlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQ4LDMxICsxNDgsNiBAQCB2b2lkIFByb2NlZHVy
ZTo6cmVzZXRWYWx1ZU93bmVycygpCiAKIHZvaWQgUHJvY2VkdXJlOjpyZXNldFJlYWNoYWJpbGl0
eSgpCiB7Ci0gICAgaWYgKHNob3VsZFZhbGlkYXRlSVIoKSkgewotICAgICAgICAvLyBWYWxpZGF0
ZSB0aGUgYmFzaWMgcHJvcGVydGllcyB0aGF0IHdlIG5lZWQgZm9yIHJlc2V0dGluZyByZWFjaGFi
aWxpdHkuIFdlIG9mdGVuIHJlc2V0Ci0gICAgICAgIC8vIHJlYWNoYWJpbGl0eSBiZWZvcmUgSVIg
dmFsaWRhdGlvbiwgc28gd2l0aG91dCB0aGlzIG1pbmktdmFsaWRhdGlvbiwgeW91IHdvdWxkIGNy
YXNoIGluc2lkZQotICAgICAgICAvLyBCMzo6cmVzZXRSZWFjaGFiaWxpdHkoKSB3aXRob3V0IGdl
dHRpbmcgYW55IElSIGR1bXAuCi0KLSAgICAgICAgQmFzaWNCbG9jayogYmFkQmxvY2sgPSBudWxs
cHRyOwotICAgICAgICBmb3IgKEJhc2ljQmxvY2sqIGJsb2NrIDogKnRoaXMpIHsKLSAgICAgICAg
ICAgIGlmICghYmxvY2stPnNpemUoKSkgewotICAgICAgICAgICAgICAgIGJhZEJsb2NrID0gYmxv
Y2s7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAg
IGlmICghYmxvY2stPmxhc3QoKS0+YXM8Q29udHJvbFZhbHVlPigpKSB7Ci0gICAgICAgICAgICAg
ICAgYmFkQmxvY2sgPSBibG9jazsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfQotCi0gICAgICAgIGlmIChiYWRCbG9jaykgewotICAgICAgICAgICAgZGF0
YUxvZygiRkFUQUw6IEludmFsaWQgYmFzaWMgYmxvY2sgIiwgKmJhZEJsb2NrLCAiIHdoaWxlIHJ1
bm5pbmcgUHJvY2VkdXJlOjpyZXNldFJlYWNoYWJpbGl0eSgpLlxuIik7Ci0gICAgICAgICAgICBk
YXRhTG9nKCp0aGlzKTsKLSAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgCiAgICAgcmVjb21wdXRlUHJlZGVjZXNzb3JzKG1fYmxv
Y2tzKTsKICAgICAKICAgICAvLyBUaGUgY29tbW9uIGNhc2UgaXMgdGhhdCB0aGlzIGRvZXMgbm90
IGZpbmQgYW55IGRlYWQgYmxvY2tzLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
UHJvY2VkdXJlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUHJv
Y2VkdXJlLmgJKHJldmlzaW9uIDIwMzM3MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1Byb2NlZHVyZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTgsNyArMjE4LDEwIEBAIHB1YmxpYzoK
IAogICAgIGNvbnN0IGNoYXIqIGxhc3RQaGFzZU5hbWUoKSBjb25zdCB7IHJldHVybiBtX2xhc3RQ
aGFzZU5hbWU7IH0KIAotICAgIHZvaWQqIGFkZERhdGFTZWN0aW9uKHNpemVfdCBzaXplKTsKKyAg
ICAvLyBBbGxvY2F0ZXMgYSBzbGFiIG9mIG1lbW9yeSB0aGF0IHdpbGwgYmUga2VwdCBhbGl2ZSBi
eSBhbnlvbmUgd2hvIGtlZXBzIHRoZSByZXN1bHRpbmcgY29kZQorICAgIC8vIGFsaXZlLiBHcmVh
dCBmb3IgY29tcGlsZXItZ2VuZXJhdGVkIGRhdGEgc2VjdGlvbnMsIGxpa2Ugc3dpdGNoIGp1bXAg
dGFibGVzIGFuZCBjb25zdGFudCBwb29scy4KKyAgICAvLyBUaGlzIHJldHVybnMgbWVtb3J5IHRo
YXQgaGFzIGJlZW4gemVyby1pbml0aWFsaXplZC4KKyAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lk
KiBhZGREYXRhU2VjdGlvbihzaXplX3QpOwogCiAgICAgT3BhcXVlQnlwcm9kdWN0cyYgYnlwcm9k
dWN0cygpIHsgcmV0dXJuICptX2J5cHJvZHVjdHM7IH0KIApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcAkocmV2aXNpb24gMjAzMzcxKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUmVkdWNlU3RyZW5ndGguY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrSW5saW5lcy5oIgog
I2luY2x1ZGUgIkIzQmxvY2tJbnNlcnRpb25TZXQuaCIKICNpbmNsdWRlICJCM0NvbXB1dGVEaXZp
c2lvbk1hZ2ljLmgiCi0jaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKICNpbmNsdWRlICJCM0Rv
bWluYXRvcnMuaCIKICNpbmNsdWRlICJCM0luZGV4U2V0LmgiCiAjaW5jbHVkZSAiQjNJbnNlcnRp
b25TZXRJbmxpbmVzLmgiCkBAIC0xNzE3LDcgKzE3MTYsNyBAQCBwcml2YXRlOgogICAgICAgICAg
ICAgICAgIC8vIFJlcGxhY2UgdGhlIHJlc3Qgb2YgdGhlIGJsb2NrIHdpdGggYW4gT29wcy4KICAg
ICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBtX2luZGV4ICsgMTsgaSA8IG1fYmxvY2st
PnNpemUoKSAtIDE7ICsraSkKICAgICAgICAgICAgICAgICAgICAgbV9ibG9jay0+YXQoaSktPnJl
cGxhY2VXaXRoQm90dG9tKG1faW5zZXJ0aW9uU2V0LCBtX2luZGV4KTsKLSAgICAgICAgICAgICAg
ICBtX2Jsb2NrLT5sYXN0KCktPmFzPENvbnRyb2xWYWx1ZT4oKS0+Y29udmVydFRvT29wcygpOwor
ICAgICAgICAgICAgICAgIG1fYmxvY2stPmxhc3QoKS0+cmVwbGFjZVdpdGhPb3BzKG1fYmxvY2sp
OwogICAgICAgICAgICAgICAgIG1fYmxvY2stPmxhc3QoKS0+c2V0T3JpZ2luKGNoZWNrVmFsdWUt
Pm9yaWdpbigpKTsKIAogICAgICAgICAgICAgICAgIC8vIFJlcGxhY2Ugb3Vyc2VsdmVzIGxhc3Qu
CkBAIC0xNzczLDYgKzE3NzIsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICByZXR1
cm4gdmFsdWUtPm9wY29kZSgpID09IFNlbGVjdAogICAgICAgICAgICAgICAgICAgICAgICAgJiYg
KHZhbHVlLT5jaGlsZCgxKS0+aXNDb25zdGFudCgpICYmIHZhbHVlLT5jaGlsZCgyKS0+aXNDb25z
dGFudCgpKTsKICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIAogICAgICAgICAgICAg
aWYgKHNlbGVjdCkgewogICAgICAgICAgICAgICAgIHNwZWNpYWxpemVTZWxlY3Qoc2VsZWN0KTsK
ICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTE3ODEsNTAgKzE3ODEsNDggQEAgcHJpdmF0ZToK
ICAgICAgICAgfQogCiAgICAgICAgIGNhc2UgQnJhbmNoOiB7Ci0gICAgICAgICAgICBDb250cm9s
VmFsdWUqIGJyYW5jaCA9IG1fdmFsdWUtPmFzPENvbnRyb2xWYWx1ZT4oKTsKLQogICAgICAgICAg
ICAgLy8gVHVybiB0aGlzOiBCcmFuY2goTm90RXF1YWwoeCwgMCkpCiAgICAgICAgICAgICAvLyBJ
bnRvIHRoaXM6IEJyYW5jaCh4KQotICAgICAgICAgICAgaWYgKGJyYW5jaC0+Y2hpbGQoMCktPm9w
Y29kZSgpID09IE5vdEVxdWFsICYmIGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDEpLT5pc0ludCgw
KSkgewotICAgICAgICAgICAgICAgIGJyYW5jaC0+Y2hpbGQoMCkgPSBicmFuY2gtPmNoaWxkKDAp
LT5jaGlsZCgwKTsKKyAgICAgICAgICAgIGlmIChtX3ZhbHVlLT5jaGlsZCgwKS0+b3Bjb2RlKCkg
PT0gTm90RXF1YWwgJiYgbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDEpLT5pc0ludCgwKSkgewor
ICAgICAgICAgICAgICAgIG1fdmFsdWUtPmNoaWxkKDApID0gbV92YWx1ZS0+Y2hpbGQoMCktPmNo
aWxkKDApOwogICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAgICB9
CiAKICAgICAgICAgICAgIC8vIFR1cm4gdGhpczogQnJhbmNoKEVxdWFsKHgsIDApLCB0aGVuLCBl
bHNlKQogICAgICAgICAgICAgLy8gSW50byB0aGlzOiBCcmFuY2goeCwgZWxzZSwgdGhlbikKLSAg
ICAgICAgICAgIGlmIChicmFuY2gtPmNoaWxkKDApLT5vcGNvZGUoKSA9PSBFcXVhbCAmJiBicmFu
Y2gtPmNoaWxkKDApLT5jaGlsZCgxKS0+aXNJbnQoMCkpIHsKLSAgICAgICAgICAgICAgICBicmFu
Y2gtPmNoaWxkKDApID0gYnJhbmNoLT5jaGlsZCgwKS0+Y2hpbGQoMCk7Ci0gICAgICAgICAgICAg
ICAgc3RkOjpzd2FwKGJyYW5jaC0+dGFrZW4oKSwgYnJhbmNoLT5ub3RUYWtlbigpKTsKKyAgICAg
ICAgICAgIGlmIChtX3ZhbHVlLT5jaGlsZCgwKS0+b3Bjb2RlKCkgPT0gRXF1YWwgJiYgbV92YWx1
ZS0+Y2hpbGQoMCktPmNoaWxkKDEpLT5pc0ludCgwKSkgeworICAgICAgICAgICAgICAgIG1fdmFs
dWUtPmNoaWxkKDApID0gbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDApOworICAgICAgICAgICAg
ICAgIHN0ZDo6c3dhcChtX2Jsb2NrLT50YWtlbigpLCBtX2Jsb2NrLT5ub3RUYWtlbigpKTsKICAg
ICAgICAgICAgICAgICBtX2NoYW5nZWQgPSB0cnVlOwogICAgICAgICAgICAgfQogICAgICAgICAg
ICAgCiAgICAgICAgICAgICAvLyBUdXJuIHRoaXM6IEJyYW5jaChCaXRYb3IoYm9vbCwgMSksIHRo
ZW4sIGVsc2UpCiAgICAgICAgICAgICAvLyBJbnRvIHRoaXM6IEJyYW5jaChib29sLCBlbHNlLCB0
aGVuKQotICAgICAgICAgICAgaWYgKGJyYW5jaC0+Y2hpbGQoMCktPm9wY29kZSgpID09IEJpdFhv
cgotICAgICAgICAgICAgICAgICYmIGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDEpLT5pc0ludDMy
KDEpCi0gICAgICAgICAgICAgICAgJiYgYnJhbmNoLT5jaGlsZCgwKS0+Y2hpbGQoMCktPnJldHVy
bnNCb29sKCkpIHsKLSAgICAgICAgICAgICAgICBicmFuY2gtPmNoaWxkKDApID0gYnJhbmNoLT5j
aGlsZCgwKS0+Y2hpbGQoMCk7Ci0gICAgICAgICAgICAgICAgc3RkOjpzd2FwKGJyYW5jaC0+dGFr
ZW4oKSwgYnJhbmNoLT5ub3RUYWtlbigpKTsKKyAgICAgICAgICAgIGlmIChtX3ZhbHVlLT5jaGls
ZCgwKS0+b3Bjb2RlKCkgPT0gQml0WG9yCisgICAgICAgICAgICAgICAgJiYgbV92YWx1ZS0+Y2hp
bGQoMCktPmNoaWxkKDEpLT5pc0ludDMyKDEpCisgICAgICAgICAgICAgICAgJiYgbV92YWx1ZS0+
Y2hpbGQoMCktPmNoaWxkKDApLT5yZXR1cm5zQm9vbCgpKSB7CisgICAgICAgICAgICAgICAgbV92
YWx1ZS0+Y2hpbGQoMCkgPSBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMCk7CisgICAgICAgICAg
ICAgICAgc3RkOjpzd2FwKG1fYmxvY2stPnRha2VuKCksIG1fYmxvY2stPm5vdFRha2VuKCkpOwog
ICAgICAgICAgICAgICAgIG1fY2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAgICB9CiAKICAgICAg
ICAgICAgIC8vIFR1cm4gdGhpczogQnJhbmNoKEJpdEFuZChib29sLCB4eWIxKSwgdGhlbiwgZWxz
ZSkKICAgICAgICAgICAgIC8vIEludG8gdGhpczogQnJhbmNoKGJvb2wsIHRoZW4sIGVsc2UpCi0g
ICAgICAgICAgICBpZiAoYnJhbmNoLT5jaGlsZCgwKS0+b3Bjb2RlKCkgPT0gQml0QW5kCi0gICAg
ICAgICAgICAgICAgJiYgYnJhbmNoLT5jaGlsZCgwKS0+Y2hpbGQoMSktPmhhc0ludCgpCi0gICAg
ICAgICAgICAgICAgJiYgYnJhbmNoLT5jaGlsZCgwKS0+Y2hpbGQoMSktPmFzSW50KCkgJiAxCi0g
ICAgICAgICAgICAgICAgJiYgYnJhbmNoLT5jaGlsZCgwKS0+Y2hpbGQoMCktPnJldHVybnNCb29s
KCkpIHsKLSAgICAgICAgICAgICAgICBicmFuY2gtPmNoaWxkKDApID0gYnJhbmNoLT5jaGlsZCgw
KS0+Y2hpbGQoMCk7CisgICAgICAgICAgICBpZiAobV92YWx1ZS0+Y2hpbGQoMCktPm9wY29kZSgp
ID09IEJpdEFuZAorICAgICAgICAgICAgICAgICYmIG1fdmFsdWUtPmNoaWxkKDApLT5jaGlsZCgx
KS0+aGFzSW50KCkKKyAgICAgICAgICAgICAgICAmJiBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQo
MSktPmFzSW50KCkgJiAxCisgICAgICAgICAgICAgICAgJiYgbV92YWx1ZS0+Y2hpbGQoMCktPmNo
aWxkKDApLT5yZXR1cm5zQm9vbCgpKSB7CisgICAgICAgICAgICAgICAgbV92YWx1ZS0+Y2hpbGQo
MCkgPSBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQoMCk7CiAgICAgICAgICAgICAgICAgbV9jaGFu
Z2VkID0gdHJ1ZTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgVHJpU3RhdGUgdHJpU3Rh
dGUgPSBicmFuY2gtPmNoaWxkKDApLT5hc1RyaVN0YXRlKCk7CisgICAgICAgICAgICBUcmlTdGF0
ZSB0cmlTdGF0ZSA9IG1fdmFsdWUtPmNoaWxkKDApLT5hc1RyaVN0YXRlKCk7CiAKICAgICAgICAg
ICAgIC8vIFR1cm4gdGhpczogQnJhbmNoKDAsIHRoZW4sIGVsc2UpCiAgICAgICAgICAgICAvLyBJ
bnRvIHRoaXM6IEp1bXAoZWxzZSkKICAgICAgICAgICAgIGlmICh0cmlTdGF0ZSA9PSBGYWxzZVRy
aVN0YXRlKSB7Ci0gICAgICAgICAgICAgICAgYnJhbmNoLT50YWtlbigpLmJsb2NrKCktPnJlbW92
ZVByZWRlY2Vzc29yKG1fYmxvY2spOwotICAgICAgICAgICAgICAgIGJyYW5jaC0+Y29udmVydFRv
SnVtcChicmFuY2gtPm5vdFRha2VuKCkuYmxvY2soKSk7CisgICAgICAgICAgICAgICAgbV9ibG9j
ay0+dGFrZW4oKS5ibG9jaygpLT5yZW1vdmVQcmVkZWNlc3NvcihtX2Jsb2NrKTsKKyAgICAgICAg
ICAgICAgICBtX3ZhbHVlLT5yZXBsYWNlV2l0aEp1bXAobV9ibG9jaywgbV9ibG9jay0+bm90VGFr
ZW4oKSk7CiAgICAgICAgICAgICAgICAgbV9jaGFuZ2VkQ0ZHID0gdHJ1ZTsKICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIH0KQEAgLTE4MzIsOCArMTgzMCw4IEBAIHByaXZhdGU6
CiAgICAgICAgICAgICAvLyBUdXJuIHRoaXM6IEJyYW5jaChub3QgMCwgdGhlbiwgZWxzZSkKICAg
ICAgICAgICAgIC8vIEludG8gdGhpczogSnVtcCh0aGVuKQogICAgICAgICAgICAgaWYgKHRyaVN0
YXRlID09IFRydWVUcmlTdGF0ZSkgewotICAgICAgICAgICAgICAgIGJyYW5jaC0+bm90VGFrZW4o
KS5ibG9jaygpLT5yZW1vdmVQcmVkZWNlc3NvcihtX2Jsb2NrKTsKLSAgICAgICAgICAgICAgICBi
cmFuY2gtPmNvbnZlcnRUb0p1bXAoYnJhbmNoLT50YWtlbigpLmJsb2NrKCkpOworICAgICAgICAg
ICAgICAgIG1fYmxvY2stPm5vdFRha2VuKCkuYmxvY2soKS0+cmVtb3ZlUHJlZGVjZXNzb3IobV9i
bG9jayk7CisgICAgICAgICAgICAgICAgbV92YWx1ZS0+cmVwbGFjZVdpdGhKdW1wKG1fYmxvY2ss
IG1fYmxvY2stPnRha2VuKCkpOwogICAgICAgICAgICAgICAgIG1fY2hhbmdlZENGRyA9IHRydWU7
CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CkBAIC0xODQyLDEyICsxODQw
LDEyIEBAIHByaXZhdGU6CiAgICAgICAgICAgICAvLyBvZiBtYWtlcyBzZW5zZSBoZXJlIGJlY2F1
c2UgaXQncyBjaGVhcCwgYnV0IGhhY2tzIGxpa2UgdGhpcyBzaG93IHRoYXQgd2UncmUgZ29pbmcK
ICAgICAgICAgICAgIC8vIHRvIG5lZWQgU0NDUC4KICAgICAgICAgICAgIFZhbHVlKiBjaGVjayA9
IG1fcHVyZUNTRS5maW5kTWF0Y2goCi0gICAgICAgICAgICAgICAgVmFsdWVLZXkoQ2hlY2ssIFZv
aWQsIGJyYW5jaC0+Y2hpbGQoMCkpLCBtX2Jsb2NrLCAqbV9kb21pbmF0b3JzKTsKKyAgICAgICAg
ICAgICAgICBWYWx1ZUtleShDaGVjaywgVm9pZCwgbV92YWx1ZS0+Y2hpbGQoMCkpLCBtX2Jsb2Nr
LCAqbV9kb21pbmF0b3JzKTsKICAgICAgICAgICAgIGlmIChjaGVjaykgewogICAgICAgICAgICAg
ICAgIC8vIFRoZSBDaGVjayB3b3VsZCBoYXZlIHNpZGUtZXhpdGVkIGlmIGNoaWxkKDApIHdhcyBu
b24temVyby4gU28sIGl0IG11c3QgYmUKICAgICAgICAgICAgICAgICAvLyB6ZXJvIGhlcmUuCi0g
ICAgICAgICAgICAgICAgYnJhbmNoLT50YWtlbigpLmJsb2NrKCktPnJlbW92ZVByZWRlY2Vzc29y
KG1fYmxvY2spOwotICAgICAgICAgICAgICAgIGJyYW5jaC0+Y29udmVydFRvSnVtcChicmFuY2gt
Pm5vdFRha2VuKCkuYmxvY2soKSk7CisgICAgICAgICAgICAgICAgbV9ibG9jay0+dGFrZW4oKS5i
bG9jaygpLT5yZW1vdmVQcmVkZWNlc3NvcihtX2Jsb2NrKTsKKyAgICAgICAgICAgICAgICBtX3Zh
bHVlLT5yZXBsYWNlV2l0aEp1bXAobV9ibG9jaywgbV9ibG9jay0+bm90VGFrZW4oKSk7CiAgICAg
ICAgICAgICAgICAgbV9jaGFuZ2VkQ0ZHID0gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIGJyZWFrOwpAQCAtMTk4NiwxMyArMTk4NCwxMiBAQCBwcml2YXRlOgogICAgICAgICAvLyBS
ZW1vdmUgdGhlIHZhbHVlcyBmcm9tIHRoZSBwcmVkZWNlc3Nvci4KICAgICAgICAgcHJlZGVjZXNz
b3ItPnZhbHVlcygpLnJlc2l6ZShzdGFydEluZGV4KTsKICAgICAgICAgCi0gICAgICAgIHByZWRl
Y2Vzc29yLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgICAgIG1fcHJvYywgQnJh
bmNoLCBzb3VyY2UtPm9yaWdpbigpLCBwcmVkaWNhdGUsCi0gICAgICAgICAgICBGcmVxdWVudGVk
QmxvY2soY2FzZXNbMF0pLCBGcmVxdWVudGVkQmxvY2soY2FzZXNbMV0pKTsKKyAgICAgICAgcHJl
ZGVjZXNzb3ItPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBCcmFuY2gsIHNvdXJjZS0+b3JpZ2lu
KCksIHByZWRpY2F0ZSk7CisgICAgICAgIHByZWRlY2Vzc29yLT5zZXRTdWNjZXNzb3JzKEZyZXF1
ZW50ZWRCbG9jayhjYXNlc1swXSksIEZyZXF1ZW50ZWRCbG9jayhjYXNlc1sxXSkpOwogCiAgICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1DYXNlczsgKytpKSB7Ci0gICAgICAgICAg
ICBjYXNlc1tpXS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCi0gICAgICAgICAgICAgICAgbV9w
cm9jLCBKdW1wLCBtX3ZhbHVlLT5vcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKG1fYmxvY2spKTsK
KyAgICAgICAgICAgIGNhc2VzW2ldLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgSnVtcCwgbV92
YWx1ZS0+b3JpZ2luKCkpOworICAgICAgICAgICAgY2FzZXNbaV0tPnNldFN1Y2Nlc3NvcnMoRnJl
cXVlbnRlZEJsb2NrKG1fYmxvY2spKTsKICAgICAgICAgfQogCiAgICAgICAgIG1fY2hhbmdlZCA9
IHRydWU7CkBAIC0yMjIxLDcgKzIyMTgsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGRhdGFMb2coCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDaGFu
Z2luZyAiLCBwb2ludGVyRHVtcChibG9jayksICIncyB0ZXJtaW5hbCB0byBhIEp1bXAuXG4iKTsK
ICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGJsb2Nr
LT5sYXN0KCktPmFzPENvbnRyb2xWYWx1ZT4oKS0+Y29udmVydFRvSnVtcChmaXJzdFN1Y2Nlc3Nv
cik7CisgICAgICAgICAgICAgICAgICAgICAgICBibG9jay0+bGFzdCgpLT5yZXBsYWNlV2l0aEp1
bXAoYmxvY2ssIEZyZXF1ZW50ZWRCbG9jayhmaXJzdFN1Y2Nlc3NvcikpOwogICAgICAgICAgICAg
ICAgICAgICAgICAgbV9jaGFuZ2VkQ0ZHID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgIH0KQEAgLTIyMzksMTYgKzIyMzYsMTggQEAgcHJpdmF0ZToKICAgICAg
ICAgICAgICAgICAgICAgLy8gUmVtb3ZlIHRoZSB0ZXJtaW5hbC4KICAgICAgICAgICAgICAgICAg
ICAgVmFsdWUqIHZhbHVlID0gYmxvY2stPnZhbHVlcygpLnRha2VMYXN0KCk7CiAgICAgICAgICAg
ICAgICAgICAgIE9yaWdpbiBqdW1wT3JpZ2luID0gdmFsdWUtPm9yaWdpbigpOwotICAgICAgICAg
ICAgICAgICAgICBSRUxFQVNFX0FTU0VSVCh2YWx1ZS0+YXM8Q29udHJvbFZhbHVlPigpKTsKKyAg
ICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQodmFsdWUtPmVmZmVjdHMoKS50ZXJtaW5h
bCk7CiAgICAgICAgICAgICAgICAgICAgIG1fcHJvYy5kZWxldGVWYWx1ZSh2YWx1ZSk7CiAgICAg
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAvLyBBcHBlbmQgdGhlIGZ1bGwg
Y29udGVudHMgb2YgdGhlIHN1Y2Nlc3NvciB0byB0aGUgcHJlZGVjZXNzb3IuCiAgICAgICAgICAg
ICAgICAgICAgIGJsb2NrLT52YWx1ZXMoKS5hcHBlbmRWZWN0b3Ioc3VjY2Vzc29yLT52YWx1ZXMo
KSk7CisgICAgICAgICAgICAgICAgICAgIGJsb2NrLT5zdWNjZXNzb3JzKCkgPSBzdWNjZXNzb3It
PnN1Y2Nlc3NvcnMoKTsKICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg
IC8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBzdWNjZXNzb3IgaGFzIG5vdGhpbmcgbGVmdCBpbiBpdC4g
TWFrZSBzdXJlIHRoYXQgdGhlIGJsb2NrCiAgICAgICAgICAgICAgICAgICAgIC8vIGhhcyBhIHRl
cm1pbmFsIHNvIHRoYXQgbm9ib2R5IGNob2tlcyB3aGVuIHRoZXkgbG9vayBhdCBpdC4KICAgICAg
ICAgICAgICAgICAgICAgc3VjY2Vzc29yLT52YWx1ZXMoKS5yZXNpemUoMCk7Ci0gICAgICAgICAg
ICAgICAgICAgIHN1Y2Nlc3Nvci0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4obV9wcm9jLCBPb3Bz
LCBqdW1wT3JpZ2luKTsKKyAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc29yLT5hcHBlbmROZXc8
VmFsdWU+KG1fcHJvYywgT29wcywganVtcE9yaWdpbik7CisgICAgICAgICAgICAgICAgICAgIHN1
Y2Nlc3Nvci0+Y2xlYXJTdWNjZXNzb3JzKCk7CiAgICAgICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgICAgICAvLyBFbnN1cmUgdGhhdCBwcmVkZWNlc3NvcnMgb2YgYmxvY2sncyBuZXcg
c3VjY2Vzc29ycyBrbm93IHdoYXQncyB1cC4KICAgICAgICAgICAgICAgICAgICAgZm9yIChCYXNp
Y0Jsb2NrKiBuZXdTdWNjZXNzb3IgOiBibG9jay0+c3VjY2Vzc29yQmxvY2tzKCkpCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcEdlbmVyYXRpb25QYXJhbXMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFwR2VuZXJhdGlv
blBhcmFtcy5jcHAJKHJldmlzaW9uIDIwMzM3MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTksNiArNTks
MjcgQEAgUmVnaXN0ZXJTZXQgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zOjp1bgogICAgIHJldHVy
biByZXN1bHQ7CiB9CiAKK1ZlY3RvcjxCb3g8Q0NhbGxIZWxwZXJzOjpMYWJlbD4+IFN0YWNrbWFw
R2VuZXJhdGlvblBhcmFtczo6c3VjY2Vzc29yTGFiZWxzKCkgY29uc3QKK3sKKyAgICBSRUxFQVNF
X0FTU0VSVChtX2NvbnRleHQuaW5kZXhJbkJsb2NrID09IG1fY29udGV4dC5jdXJyZW50QmxvY2st
PnNpemUoKSAtIDEpOworICAgIFJFTEVBU0VfQVNTRVJUKG1fdmFsdWUtPmVmZmVjdHMoKS50ZXJt
aW5hbCk7CisgICAgCisgICAgVmVjdG9yPEJveDxDQ2FsbEhlbHBlcnM6OkxhYmVsPj4gcmVzdWx0
KG1fY29udGV4dC5jdXJyZW50QmxvY2stPm51bVN1Y2Nlc3NvcnMoKSk7CisgICAgZm9yICh1bnNp
Z25lZCBpID0gbV9jb250ZXh0LmN1cnJlbnRCbG9jay0+bnVtU3VjY2Vzc29ycygpOyBpLS07KQor
ICAgICAgICByZXN1bHRbaV0gPSBtX2NvbnRleHQuYmxvY2tMYWJlbHNbbV9jb250ZXh0LmN1cnJl
bnRCbG9jay0+c3VjY2Vzc29yQmxvY2soaSldOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2Jv
b2wgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zOjpmYWxsc1Rocm91Z2hUb1N1Y2Nlc3Nvcih1bnNp
Z25lZCBzdWNjZXNzb3JJbmRleCkgY29uc3QKK3sKKyAgICBSRUxFQVNFX0FTU0VSVChtX2NvbnRl
eHQuaW5kZXhJbkJsb2NrID09IG1fY29udGV4dC5jdXJyZW50QmxvY2stPnNpemUoKSAtIDEpOwor
ICAgIFJFTEVBU0VfQVNTRVJUKG1fdmFsdWUtPmVmZmVjdHMoKS50ZXJtaW5hbCk7CisgICAgCisg
ICAgQWlyOjpCYXNpY0Jsb2NrKiBzdWNjZXNzb3IgPSBtX2NvbnRleHQuY3VycmVudEJsb2NrLT5z
dWNjZXNzb3JCbG9jayhzdWNjZXNzb3JJbmRleCk7CisgICAgQWlyOjpCYXNpY0Jsb2NrKiBuZXh0
QmxvY2sgPSBtX2NvbnRleHQuY29kZS0+ZmluZE5leHRCbG9jayhtX2NvbnRleHQuY3VycmVudEJs
b2NrKTsKKyAgICByZXR1cm4gc3VjY2Vzc29yID09IG5leHRCbG9jazsKK30KKwogUHJvY2VkdXJl
JiBTdGFja21hcEdlbmVyYXRpb25QYXJhbXM6OnByb2MoKSBjb25zdAogewogICAgIHJldHVybiBt
X2NvbnRleHQuY29kZS0+cHJvYygpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
U3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmgJKHJldmlzaW9uIDIwMzM3MSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw5IEBACiAKICNpbmNsdWRlICJBaXJHZW5lcmF0
aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIkIzVmFsdWVSZXAuaCIKKyNpbmNsdWRlICJDQ2FsbEhl
bHBlcnMuaCIKICNpbmNsdWRlICJSZWdpc3RlclNldC5oIgorI2luY2x1ZGUgPHd0Zi9Cb3guaD4K
IAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKQEAgLTM5LDYgKzQxLDggQEAgY2xh
c3MgUGF0Y2hwb2ludFNwZWNpYWw7CiBjbGFzcyBQcm9jZWR1cmU7CiBjbGFzcyBTdGFja21hcFZh
bHVlOwogCisvLyBOT1RFOiBJdCdzIHBvc3NpYmxlIHRvIGNhcHR1cmUgU3RhY2ttYXBHZW5lcmF0
aW9uUGFyYW1zIGJ5IHZhbHVlLCBidXQgbm90IGFsbCBvZiB0aGUgbWV0aG9kcyB3aWxsCisvLyB3
b3JrIGlmIHlvdSBkbyB0aGF0LgogY2xhc3MgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zIHsKIHB1
YmxpYzoKICAgICAvLyBUaGlzIGlzIHRoZSBzdGFja21hcCB2YWx1ZSB0aGF0IHdlJ3JlIGdlbmVy
YXRpbmcuCkBAIC04MCw5ICs4NCwxOCBAQCBwdWJsaWM6CiAKICAgICBHUFJSZWcgZ3BTY3JhdGNo
KHVuc2lnbmVkIGluZGV4KSBjb25zdCB7IHJldHVybiBtX2dwU2NyYXRjaFtpbmRleF07IH0KICAg
ICBGUFJSZWcgZnBTY3JhdGNoKHVuc2lnbmVkIGluZGV4KSBjb25zdCB7IHJldHVybiBtX2ZwU2Ny
YXRjaFtpbmRleF07IH0KKyAgICAKKyAgICAvLyBUaGlzIGlzIGNvbXB1dGVkIGxhemlseSwgc28g
aXQgd29uJ3Qgd29yayBpZiB5b3UgY2FwdHVyZSBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMgYnkg
dmFsdWUuCisgICAgLy8gVGhlc2UgbGFiZWxzIHdpbGwgZ2V0IHBvcHVsYXRlZCBiZWZvcmUgYW55
IGxhdGUgcGF0aHMgb3IgbGluayB0YXNrcyBleGVjdXRlLgorICAgIEpTX0VYUE9SVF9QUklWQVRF
IFZlY3RvcjxCb3g8Q0NhbGxIZWxwZXJzOjpMYWJlbD4+IHN1Y2Nlc3NvckxhYmVscygpIGNvbnN0
OworICAgIAorICAgIC8vIFRoaXMgaXMgY29tcHV0ZWQgbGF6aWx5LCBzbyBpdCB3b24ndCB3b3Jr
IGlmIHlvdSBjYXB0dXJlIFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyBieSB2YWx1ZS4KKyAgICAv
LyBSZXR1cm5zIHRydWUgaWYgdGhlIHN1Y2Nlc3NvciBhdCB0aGUgZ2l2ZW4gaW5kZXggaXMgZ29p
bmcgdG8gYmUgZW1pdHRlZCByaWdodCBhZnRlciB0aGUKKyAgICAvLyBwYXRjaHBvaW50LgorICAg
IGJvb2wgZmFsbHNUaHJvdWdoVG9TdWNjZXNzb3IodW5zaWduZWQgc3VjY2Vzc29ySW5kZXgpIGNv
bnN0OwogCiAgICAgLy8gVGhpcyBpcyBwcm92aWRlZCBmb3IgY29udmVuaWVuY2U7IGl0IG1lYW5z
IHRoYXQgeW91IGRvbid0IGhhdmUgdG8gY2FwdHVyZSBpdCBpZiB5b3UgZG9uJ3Qgd2FudCB0by4K
LSAgICBQcm9jZWR1cmUmIHByb2MoKSBjb25zdDsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBQcm9j
ZWR1cmUmIHByb2MoKSBjb25zdDsKICAgICAKICAgICAvLyBUaGUgQWlyOjpHZW5lcmF0aW9uQ29u
dGV4dCBnaXZlcyB5b3UgZXZlbiBtb3JlIHBvd2VyLgogICAgIEFpcjo6R2VuZXJhdGlvbkNvbnRl
eHQmIGNvbnRleHQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHQ7IH07CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNTd2l0Y2hWYWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzU3dpdGNoVmFsdWUuY3BwCShyZXZpc2lvbiAyMDMzNzEpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTd2l0Y2hWYWx1ZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM3LDMwICszNyw3NiBAQCBTd2l0Y2hWYWx1ZTo6flN3aXRjaFZhbHVlKCkKIHsKIH0K
IAotU3dpdGNoQ2FzZSBTd2l0Y2hWYWx1ZTo6cmVtb3ZlQ2FzZSh1bnNpZ25lZCBpbmRleCkKK1N3
aXRjaENhc2UgU3dpdGNoVmFsdWU6OnJlbW92ZUNhc2UoQmFzaWNCbG9jayogYmxvY2ssIHVuc2ln
bmVkIGluZGV4KQogewotICAgIEZyZXF1ZW50ZWRCbG9jayByZXN1bHRCbG9jayA9IG1fc3VjY2Vz
c29yc1tpbmRleF07CisgICAgRnJlcXVlbnRlZEJsb2NrIHJlc3VsdEJsb2NrID0gYmxvY2stPnN1
Y2Nlc3NvcihpbmRleCk7CiAgICAgaW50NjRfdCByZXN1bHRWYWx1ZSA9IG1fdmFsdWVzW2luZGV4
XTsKLSAgICBtX3N1Y2Nlc3NvcnNbaW5kZXhdID0gbV9zdWNjZXNzb3JzLmxhc3QoKTsKLSAgICBt
X3N1Y2Nlc3NvcnMucmVtb3ZlTGFzdCgpOworICAgIGJsb2NrLT5zdWNjZXNzb3IoaW5kZXgpID0g
YmxvY2stPnN1Y2Nlc3NvcnMoKS5sYXN0KCk7CisgICAgYmxvY2stPnN1Y2Nlc3NvcnMoKS5yZW1v
dmVMYXN0KCk7CiAgICAgbV92YWx1ZXNbaW5kZXhdID0gbV92YWx1ZXMubGFzdCgpOwogICAgIG1f
dmFsdWVzLnJlbW92ZUxhc3QoKTsKICAgICByZXR1cm4gU3dpdGNoQ2FzZShyZXN1bHRWYWx1ZSwg
cmVzdWx0QmxvY2spOwogfQogCi12b2lkIFN3aXRjaFZhbHVlOjphcHBlbmRDYXNlKGNvbnN0IFN3
aXRjaENhc2UmIHN3aXRjaENhc2UpCitib29sIFN3aXRjaFZhbHVlOjpoYXNGYWxsVGhyb3VnaChj
b25zdCBCYXNpY0Jsb2NrKiBibG9jaykgY29uc3QKK3sKKyAgICB1bnNpZ25lZCBudW1TdWNjZXNz
b3JzID0gYmxvY2stPm51bVN1Y2Nlc3NvcnMoKTsKKyAgICB1bnNpZ25lZCBudW1WYWx1ZXMgPSBt
X3ZhbHVlcy5zaXplKCk7CisgICAgUkVMRUFTRV9BU1NFUlQobnVtVmFsdWVzID09IG51bVN1Y2Nl
c3NvcnMgfHwgbnVtVmFsdWVzICsgMSA9PSBudW1TdWNjZXNzb3JzKTsKKyAgICAKKyAgICByZXR1
cm4gbnVtVmFsdWVzICsgMSA9PSBudW1TdWNjZXNzb3JzOworfQorCitib29sIFN3aXRjaFZhbHVl
OjpoYXNGYWxsVGhyb3VnaCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGhhc0ZhbGxUaHJvdWdoKG93
bmVyKTsKK30KKwordm9pZCBTd2l0Y2hWYWx1ZTo6c2V0RmFsbFRocm91Z2goQmFzaWNCbG9jayog
YmxvY2ssIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgdGFyZ2V0KQoreworICAgIGlmICghaGFzRmFs
bFRocm91Z2goKSkKKyAgICAgICAgYmxvY2stPnN1Y2Nlc3NvcnMoKS5hcHBlbmQodGFyZ2V0KTsK
KyAgICBlbHNlCisgICAgICAgIGJsb2NrLT5zdWNjZXNzb3JzKCkubGFzdCgpID0gdGFyZ2V0Owor
ICAgIEFTU0VSVChoYXNGYWxsVGhyb3VnaChibG9jaykpOworfQorCit2b2lkIFN3aXRjaFZhbHVl
OjphcHBlbmRDYXNlKEJhc2ljQmxvY2sqIGJsb2NrLCBjb25zdCBTd2l0Y2hDYXNlJiBzd2l0Y2hD
YXNlKQogewotICAgIG1fc3VjY2Vzc29ycy5hcHBlbmQobV9zdWNjZXNzb3JzLmxhc3QoKSk7Ci0g
ICAgbV9zdWNjZXNzb3JzW21fc3VjY2Vzc29ycy5zaXplKCkgLSAyXSA9IHN3aXRjaENhc2UudGFy
Z2V0KCk7CisgICAgaWYgKCFoYXNGYWxsVGhyb3VnaCgpKQorICAgICAgICBibG9jay0+c3VjY2Vz
c29ycygpLmFwcGVuZChzd2l0Y2hDYXNlLnRhcmdldCgpKTsKKyAgICBlbHNlIHsKKyAgICAgICAg
YmxvY2stPnN1Y2Nlc3NvcnMoKS5hcHBlbmQoYmxvY2stPnN1Y2Nlc3NvcnMoKS5sYXN0KCkpOwor
ICAgICAgICBibG9jay0+c3VjY2Vzc29yKGJsb2NrLT5udW1TdWNjZXNzb3JzKCkgLSAyKSA9IHN3
aXRjaENhc2UudGFyZ2V0KCk7CisgICAgfQogICAgIG1fdmFsdWVzLmFwcGVuZChzd2l0Y2hDYXNl
LmNhc2VWYWx1ZSgpKTsKIH0KIAordm9pZCBTd2l0Y2hWYWx1ZTo6c2V0RmFsbFRocm91Z2goY29u
c3QgRnJlcXVlbnRlZEJsb2NrJiB0YXJnZXQpCit7CisgICAgc2V0RmFsbFRocm91Z2gob3duZXIs
IHRhcmdldCk7Cit9CisKK3ZvaWQgU3dpdGNoVmFsdWU6OmFwcGVuZENhc2UoY29uc3QgU3dpdGNo
Q2FzZSYgc3dpdGNoQ2FzZSkKK3sKKyAgICBhcHBlbmRDYXNlKG93bmVyLCBzd2l0Y2hDYXNlKTsK
K30KKwordm9pZCBTd2l0Y2hWYWx1ZTo6ZHVtcFN1Y2Nlc3NvcnMoY29uc3QgQmFzaWNCbG9jayog
YmxvY2ssIFByaW50U3RyZWFtJiBvdXQpIGNvbnN0Cit7CisgICAgLy8gV2UgbXVzdCBub3QgY3Jh
c2ggZHVlIHRvIGEgbnVtYmVyLW9mLXN1Y2Nlc3NvcnMgbWlzbWF0Y2ghIFNvbWVvbmUgZGVidWdn
aW5nIGEKKyAgICAvLyBudW1iZXItb2Ytc3VjY2Vzc29ycyBidWcgd2lsbCB3YW50IHRvIGR1bXAg
SVIhCisgICAgaWYgKG51bUNhc2VWYWx1ZXMoKSArIDEgIT0gYmxvY2stPm51bVN1Y2Nlc3NvcnMo
KSkgeworICAgICAgICBWYWx1ZTo6ZHVtcFN1Y2Nlc3NvcnMoYmxvY2ssIG91dCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisgICAgCisgICAgb3V0LnByaW50KGNhc2VzKGJsb2NrKSk7Cit9CisK
IHZvaWQgU3dpdGNoVmFsdWU6OmR1bXBNZXRhKENvbW1hUHJpbnRlciYgY29tbWEsIFByaW50U3Ry
ZWFtJiBvdXQpIGNvbnN0CiB7Ci0gICAgLy8gVGhpcyBkZXN0cnVjdGl2ZWx5IG92ZXJyaWRlcyBD
b250cm9sVmFsdWUncyBkdW1wTWV0YSgpLgotICAgIGZvciAoU3dpdGNoQ2FzZSBzd2l0Y2hDYXNl
IDogKnRoaXMpCi0gICAgICAgIG91dC5wcmludChjb21tYSwgc3dpdGNoQ2FzZSk7Ci0gICAgb3V0
LnByaW50KGNvbW1hLCAiZmFsbFRocm91Z2ggPSAiLCBmYWxsVGhyb3VnaCgpKTsKKyAgICBvdXQu
cHJpbnQoY29tbWEsICJjYXNlcyA9IFsiLCBsaXN0RHVtcChtX3ZhbHVlcyksICJdIik7CiB9CiAK
IFZhbHVlKiBTd2l0Y2hWYWx1ZTo6Y2xvbmVJbXBsKCkgY29uc3QKQEAgLTY4LDEwICsxMTQsOSBA
QCBWYWx1ZSogU3dpdGNoVmFsdWU6OmNsb25lSW1wbCgpIGNvbnN0CiAgICAgcmV0dXJuIG5ldyBT
d2l0Y2hWYWx1ZSgqdGhpcyk7CiB9CiAKLVN3aXRjaFZhbHVlOjpTd2l0Y2hWYWx1ZShPcmlnaW4g
b3JpZ2luLCBWYWx1ZSogY2hpbGQsIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgZmFsbFRocm91Z2gp
Ci0gICAgOiBDb250cm9sVmFsdWUoU3dpdGNoLCBWb2lkLCBvcmlnaW4sIGNoaWxkKQorU3dpdGNo
VmFsdWU6OlN3aXRjaFZhbHVlKE9yaWdpbiBvcmlnaW4sIFZhbHVlKiBjaGlsZCkKKyAgICA6IFZh
bHVlKENoZWNrZWRPcGNvZGUsIFN3aXRjaCwgVm9pZCwgb3JpZ2luLCBjaGlsZCkKIHsKLSAgICBt
X3N1Y2Nlc3NvcnMuYXBwZW5kKGZhbGxUaHJvdWdoKTsKIH0KIAogfSB9IC8vIG5hbWVzcGFjZSBK
U0M6OkIzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTd2l0Y2hWYWx1ZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N3aXRjaFZhbHVlLmgJKHJl
dmlzaW9uIDIwMzM3MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N3aXRjaFZhbHVl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDEyICsyOCwxMyBAQAogCiAjaWYgRU5BQkxFKEIzX0pJ
VCkKIAotI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCisjaW5jbHVkZSAiQjNDYXNlQ29sbGVj
dGlvbi5oIgogI2luY2x1ZGUgIkIzU3dpdGNoQ2FzZS5oIgorI2luY2x1ZGUgIkIzVmFsdWUuaCIK
IAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKLWNsYXNzIFN3aXRjaFZhbHVlIDog
cHVibGljIENvbnRyb2xWYWx1ZSB7CitjbGFzcyBTd2l0Y2hWYWx1ZSA6IHB1YmxpYyBWYWx1ZSB7
CiBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgYWNjZXB0cyhPcGNvZGUgb3Bjb2RlKSB7IHJldHVy
biBvcGNvZGUgPT0gU3dpdGNoOyB9CiAKQEAgLTQ3LDcyICs0OCwyNiBAQCBwdWJsaWM6CiAgICAg
CiAgICAgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBjYXNlVmFsdWVzKCkgY29uc3QgeyByZXR1cm4g
bV92YWx1ZXM7IH0KIAotICAgIEZyZXF1ZW50ZWRCbG9jayBmYWxsVGhyb3VnaCgpIGNvbnN0IHsg
cmV0dXJuIHN1Y2Nlc3NvcnMoKS5sYXN0KCk7IH0KLSAgICBGcmVxdWVudGVkQmxvY2smIGZhbGxU
aHJvdWdoKCkgeyByZXR1cm4gc3VjY2Vzc29ycygpLmxhc3QoKTsgfQotCi0gICAgdW5zaWduZWQg
c2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG51bUNhc2VWYWx1ZXMoKTsgfQotICAgIFN3aXRjaENhc2Ug
YXQodW5zaWduZWQgaW5kZXgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gU3dpdGNoQ2Fz
ZShjYXNlVmFsdWUoaW5kZXgpLCBzdWNjZXNzb3IoaW5kZXgpKTsKLSAgICB9Ci0gICAgU3dpdGNo
Q2FzZSBvcGVyYXRvcltdKHVuc2lnbmVkIGluZGV4KSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0
dXJuIGF0KGluZGV4KTsKLSAgICB9Ci0KLSAgICBjbGFzcyBpdGVyYXRvciB7Ci0gICAgcHVibGlj
OgotICAgICAgICBpdGVyYXRvcigpCi0gICAgICAgICAgICA6IG1fc3dpdGNoKG51bGxwdHIpCi0g
ICAgICAgICAgICAsIG1faW5kZXgoMCkKLSAgICAgICAgewotICAgICAgICB9Ci0KLSAgICAgICAg
aXRlcmF0b3IoY29uc3QgU3dpdGNoVmFsdWUmIHN3aXRjaFZhbHVlLCB1bnNpZ25lZCBpbmRleCkK
LSAgICAgICAgICAgIDogbV9zd2l0Y2goJnN3aXRjaFZhbHVlKQotICAgICAgICAgICAgLCBtX2lu
ZGV4KGluZGV4KQotICAgICAgICB7Ci0gICAgICAgIH0KLQotICAgICAgICBTd2l0Y2hDYXNlIG9w
ZXJhdG9yKigpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBtX3N3aXRjaC0+YXQobV9p
bmRleCk7Ci0gICAgICAgIH0KLQotICAgICAgICBpdGVyYXRvciYgb3BlcmF0b3IrKygpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIG1faW5kZXgrKzsKLSAgICAgICAgICAgIHJldHVybiAqdGhpczsK
LSAgICAgICAgfQotCi0gICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBpdGVyYXRvciYgb3Ro
ZXIpIGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAgICAgIEFTU0VSVChtX3N3aXRjaCA9PSBvdGhl
ci5tX3N3aXRjaCk7Ci0gICAgICAgICAgICByZXR1cm4gbV9pbmRleCA9PSBvdGhlci5tX2luZGV4
OwotICAgICAgICB9Ci0KLSAgICAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IGl0ZXJhdG9yJiBv
dGhlcikgY29uc3QKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuICEoKnRoaXMgPT0gb3Ro
ZXIpOwotICAgICAgICB9Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBjb25zdCBTd2l0Y2hWYWx1
ZSogbV9zd2l0Y2g7Ci0gICAgICAgIHVuc2lnbmVkIG1faW5kZXg7Ci0gICAgfTsKLQotICAgIHR5
cGVkZWYgaXRlcmF0b3IgY29uc3RfaXRlcmF0b3I7Ci0KLSAgICBpdGVyYXRvciBiZWdpbigpIGNv
bnN0IHsgcmV0dXJuIGl0ZXJhdG9yKCp0aGlzLCAwKTsgfQotICAgIGl0ZXJhdG9yIGVuZCgpIGNv
bnN0IHsgcmV0dXJuIGl0ZXJhdG9yKCp0aGlzLCBzaXplKCkpOyB9CisgICAgQ2FzZUNvbGxlY3Rp
b24gY2FzZXMoY29uc3QgQmFzaWNCbG9jayogb3duZXIpIGNvbnN0IHsgcmV0dXJuIENhc2VDb2xs
ZWN0aW9uKHRoaXMsIG93bmVyKTsgfQorICAgIENhc2VDb2xsZWN0aW9uIGNhc2VzKCkgY29uc3Qg
eyByZXR1cm4gY2FzZXMob3duZXIpOyB9CiAKICAgICAvLyBUaGlzIHJlbW92ZXMgdGhlIGNhc2Ug
YW5kIHJlb3JkZXJzIHRoaW5ncyBhIGJpdC4gSWYgeW91J3JlIGl0ZXJhdGluZyB0aGUgY2FzZXMg
ZnJvbSAwIHRvIE4sCiAgICAgLy8gdGhlbiB5b3UgY2FuIGtlZXAgaXRlcmF0aW5nIGFmdGVyIHRo
aXMgc28gbG9uZyBhcyB5b3UgcmV2aXNpdCB0aGlzIHNhbWUgaW5kZXggKHdoaWNoIHdpbGwgbm93
CiAgICAgLy8gY29udGFpbiBzb21lIG90aGVyIGNhc2UgdmFsdWUpLiBUaGlzIHJlbW92ZXMgdGhl
IGNhc2UgdGhhdCB3YXMgcmVtb3ZlZC4KLSAgICBTd2l0Y2hDYXNlIHJlbW92ZUNhc2UodW5zaWdu
ZWQgaW5kZXgpOworICAgIFN3aXRjaENhc2UgcmVtb3ZlQ2FzZShCYXNpY0Jsb2NrKiwgdW5zaWdu
ZWQgaW5kZXgpOwogCisgICAgYm9vbCBoYXNGYWxsVGhyb3VnaChjb25zdCBCYXNpY0Jsb2NrKikg
Y29uc3Q7CisgICAgYm9vbCBoYXNGYWxsVGhyb3VnaCgpIGNvbnN0OworCisgICAgLy8gVGhlc2Ug
dHdvIGZ1bmN0aW9ucyBjYW4gYmUgY2FsbGVkIGluIGFueSBvcmRlci4KKyAgICB2b2lkIHNldEZh
bGxUaHJvdWdoKEJhc2ljQmxvY2sqLCBjb25zdCBGcmVxdWVudGVkQmxvY2smKTsKKyAgICB2b2lk
IGFwcGVuZENhc2UoQmFzaWNCbG9jayosIGNvbnN0IFN3aXRjaENhc2UmKTsKKyAgICAKKyAgICBK
U19FWFBPUlRfUFJJVkFURSB2b2lkIHNldEZhbGxUaHJvdWdoKGNvbnN0IEZyZXF1ZW50ZWRCbG9j
ayYpOwogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQgYXBwZW5kQ2FzZShjb25zdCBTd2l0Y2hD
YXNlJik7CiAKKyAgICB2b2lkIGR1bXBTdWNjZXNzb3JzKGNvbnN0IEJhc2ljQmxvY2sqLCBQcmlu
dFN0cmVhbSYpIGNvbnN0IG92ZXJyaWRlOworCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBkdW1wTWV0
YShDb21tYVByaW50ZXImLCBQcmludFN0cmVhbSYpIGNvbnN0IG92ZXJyaWRlOwogCkBAIC0xMjEs
NyArNzYsNyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBQcm9jZWR1
cmU7CiAKLSAgICBKU19FWFBPUlRfUFJJVkFURSBTd2l0Y2hWYWx1ZShPcmlnaW4sIFZhbHVlKiBj
aGlsZCwgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBmYWxsVGhyb3VnaCk7CisgICAgSlNfRVhQT1JU
X1BSSVZBVEUgU3dpdGNoVmFsdWUoT3JpZ2luLCBWYWx1ZSogY2hpbGQpOwogCiAgICAgVmVjdG9y
PGludDY0X3Q+IG1fdmFsdWVzOwogfTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1ZhbGlkYXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNW
YWxpZGF0ZS5jcHAJKHJldmlzaW9uIDIwMzM3MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM1ZhbGlkYXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1
ZGUgIkIzUHJvY2VkdXJlLmgiCiAjaW5jbHVkZSAiQjNTbG90QmFzZVZhbHVlLmgiCiAjaW5jbHVk
ZSAiQjNTdGFja1Nsb3QuaCIKKyNpbmNsdWRlICJCM1N3aXRjaFZhbHVlLmgiCiAjaW5jbHVkZSAi
QjNVcHNpbG9uVmFsdWUuaCIKICNpbmNsdWRlICJCM1ZhbHVlSW5saW5lcy5oIgogI2luY2x1ZGUg
IkIzVmFyaWFibGUuaCIKQEAgLTEwNyw4ICsxMDgsOCBAQCBwdWJsaWM6CiAgICAgICAgIGZvciAo
QmFzaWNCbG9jayogYmxvY2sgOiBibG9ja3MpIHsKICAgICAgICAgICAgIFZBTElEQVRFKGJsb2Nr
LT5zaXplKCkgPj0gMSwgKCJBdCAiLCAqYmxvY2spKTsKICAgICAgICAgICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBibG9jay0+c2l6ZSgpIC0gMTsgKytpKQotICAgICAgICAgICAgICAgIFZB
TElEQVRFKCFDb250cm9sVmFsdWU6OmFjY2VwdHMoYmxvY2stPmF0KGkpLT5vcGNvZGUoKSksICgi
QXQgIiwgKmJsb2NrLT5hdChpKSkpOwotICAgICAgICAgICAgVkFMSURBVEUoQ29udHJvbFZhbHVl
OjphY2NlcHRzKGJsb2NrLT5sYXN0KCktPm9wY29kZSgpKSwgKCJBdCAiLCAqYmxvY2stPmxhc3Qo
KSkpOworICAgICAgICAgICAgICAgIFZBTElEQVRFKCFibG9jay0+YXQoaSktPmVmZmVjdHMoKS50
ZXJtaW5hbCwgKCJBdCAiLCAqYmxvY2stPmF0KGkpKSk7CisgICAgICAgICAgICBWQUxJREFURShi
bG9jay0+bGFzdCgpLT5lZmZlY3RzKCkudGVybWluYWwsICgiQXQgIiwgKmJsb2NrLT5sYXN0KCkp
KTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBzdWNjZXNzb3Ig
OiBibG9jay0+c3VjY2Vzc29yQmxvY2tzKCkpIHsKICAgICAgICAgICAgICAgICBhbGxQcmVkZWNl
c3NvcnMuYWRkKHN1Y2Nlc3NvciwgSGFzaFNldDxCYXNpY0Jsb2NrKj4oKSkuaXRlcmF0b3ItPnZh
bHVlLmFkZChibG9jayk7CkBAIC0xMjksOCArMTMwLDYgQEAgcHVibGljOgogICAgICAgICAgICAg
ICAgIFZBTElEQVRFKGNoaWxkLT50eXBlKCkgIT0gVm9pZCwgKCJBdCAiLCAqdmFsdWUsICItPiIs
ICpjaGlsZCkpOwogICAgICAgICAgICAgc3dpdGNoICh2YWx1ZS0+b3Bjb2RlKCkpIHsKICAgICAg
ICAgICAgIGNhc2UgTm9wOgotICAgICAgICAgICAgY2FzZSBKdW1wOgotICAgICAgICAgICAgY2Fz
ZSBPb3BzOgogICAgICAgICAgICAgICAgIFZBTElEQVRFKCF2YWx1ZS0+bnVtQ2hpbGRyZW4oKSwg
KCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+dHlwZSgp
ID09IFZvaWQsICgiQXQgIiwgKnZhbHVlKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0z
NzcsMTUgKzM3NiwzNiBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgVkFMSURBVEUoIXZhbHVl
LT5udW1DaGlsZHJlbigpLCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAgICAgIFZBTElE
QVRFKHZhbHVlLT50eXBlKCkgIT0gVm9pZCwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgSnVtcDoKKyAgICAgICAgICAgICAgICBWQUxJ
REFURSghdmFsdWUtPm51bUNoaWxkcmVuKCksICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAg
ICAgICAgVkFMSURBVEUodmFsdWUtPnR5cGUoKSA9PSBWb2lkLCAoIkF0ICIsICp2YWx1ZSkpOwor
ICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlT3duZXIuZ2V0KHZhbHVlKS0+bnVtU3VjY2Vz
c29ycygpID09IDEsICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlIE9vcHM6CisgICAgICAgICAgICAgICAgVkFMSURBVEUoIXZhbHVlLT5u
dW1DaGlsZHJlbigpLCAoIkF0ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIFZBTElEQVRF
KHZhbHVlLT50eXBlKCkgPT0gVm9pZCwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAg
ICBWQUxJREFURSghdmFsdWVPd25lci5nZXQodmFsdWUpLT5udW1TdWNjZXNzb3JzKCksICgiQXQg
IiwgKnZhbHVlKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIFJl
dHVybjoKICAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+bnVtQ2hpbGRyZW4oKSA9PSAx
LCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBl
KCkgPT0gVm9pZCwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFURSgh
dmFsdWVPd25lci5nZXQodmFsdWUpLT5udW1TdWNjZXNzb3JzKCksICgiQXQgIiwgKnZhbHVlKSk7
CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIEJyYW5jaDoKKyAgICAg
ICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+bnVtQ2hpbGRyZW4oKSA9PSAxLCAoIkF0ICIsICp2
YWx1ZSkpOworICAgICAgICAgICAgICAgIFZBTElEQVRFKGlzSW50KHZhbHVlLT5jaGlsZCgwKS0+
dHlwZSgpKSwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1
ZS0+dHlwZSgpID09IFZvaWQsICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAgICAgVkFM
SURBVEUodmFsdWVPd25lci5nZXQodmFsdWUpLT5udW1TdWNjZXNzb3JzKCkgPT0gMiwgKCJBdCAi
LCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgU3dp
dGNoOgogICAgICAgICAgICAgICAgIFZBTElEQVRFKHZhbHVlLT5udW1DaGlsZHJlbigpID09IDEs
ICgiQXQgIiwgKnZhbHVlKSk7CiAgICAgICAgICAgICAgICAgVkFMSURBVEUoaXNJbnQodmFsdWUt
PmNoaWxkKDApLT50eXBlKCkpLCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAgICAgIFZB
TElEQVRFKHZhbHVlLT50eXBlKCkgPT0gVm9pZCwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAg
ICAgICAgICBWQUxJREFURSh2YWx1ZS0+YXM8U3dpdGNoVmFsdWU+KCktPmhhc0ZhbGxUaHJvdWdo
KHZhbHVlT3duZXIuZ2V0KHZhbHVlKSksICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAg
ICAgLy8gVGhpcyB2YWxpZGF0ZXMgdGhlIHNhbWUgdGhpbmcgYXMgaGFzRmFsbFRocm91Z2gsIGJ1
dCBtb3JlIGV4cGxpY2l0bHkuIFdlIHdhbnQgdG8KKyAgICAgICAgICAgICAgICAvLyBtYWtlIHN1
cmUgdGhhdCBpZiBhbnlvbmUgdHJpZXMgdG8gY2hhbmdlIHRoZSBkZWZpbml0aW9uIG9mIGhhc0Zh
bGxUaHJvdWdoLCB0aGV5CisgICAgICAgICAgICAgICAgLy8gd2lsbCBmZWVsIHNvbWUgcGFpbiBo
ZXJlLCBzaW5jZSB0aGlzIGlzIGZ1bmRhbWVudGFsLgorICAgICAgICAgICAgICAgIFZBTElEQVRF
KHZhbHVlT3duZXIuZ2V0KHZhbHVlKS0+bnVtU3VjY2Vzc29ycygpID09IHZhbHVlLT5hczxTd2l0
Y2hWYWx1ZT4oKS0+bnVtQ2FzZVZhbHVlcygpICsgMSwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KIApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzVmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM1ZhbHVlLmNwcAkocmV2aXNpb24gMjAzMzcxKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzVmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw5ICsyOSw5IEBACiAjaWYg
RU5BQkxFKEIzX0pJVCkKIAogI2luY2x1ZGUgIkIzQXJndW1lbnRSZWdWYWx1ZS5oIgorI2luY2x1
ZGUgIkIzQmFzaWNCbG9ja0lubGluZXMuaCIKICNpbmNsdWRlICJCM0JvdHRvbVByb3ZpZGVyLmgi
CiAjaW5jbHVkZSAiQjNDQ2FsbFZhbHVlLmgiCi0jaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIK
ICNpbmNsdWRlICJCM01lbW9yeVZhbHVlLmgiCiAjaW5jbHVkZSAiQjNPcmlnaW5EdW1wLmgiCiAj
aW5jbHVkZSAiQjNQcm9jZWR1cmVJbmxpbmVzLmgiCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVk
ZSAiQjNWYWx1ZUtleUlubGluZXMuaCIKICNpbmNsdWRlICJCM1ZhcmlhYmxlVmFsdWUuaCIKICNp
bmNsdWRlIDx3dGYvQ29tbWFQcmludGVyLmg+CisjaW5jbHVkZSA8d3RmL0xpc3REdW1wLmg+CiAj
aW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1l
c3BhY2UgQjMgewpAQCAtMTI1LDYgKzEyNiw1MCBAQCB2b2lkIFZhbHVlOjpyZXBsYWNlV2l0aFBo
aSgpCiAgICAgdGhpcy0+bV9pbmRleCA9IGluZGV4OwogfQogCit2b2lkIFZhbHVlOjpyZXBsYWNl
V2l0aEp1bXAoQmFzaWNCbG9jayogb3duZXIsIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgdGFyZ2V0
KQoreworICAgIFJFTEVBU0VfQVNTRVJUKG93bmVyLT5sYXN0KCkgPT0gdGhpcyk7CisgICAgCisg
ICAgdW5zaWduZWQgaW5kZXggPSBtX2luZGV4OworICAgIE9yaWdpbiBvcmlnaW4gPSBtX29yaWdp
bjsKKyAgICAKKyAgICB0aGlzLT5+VmFsdWUoKTsKKyAgICAKKyAgICBuZXcgKHRoaXMpIFZhbHVl
KEp1bXAsIFZvaWQsIG9yaWdpbik7CisgICAgCisgICAgdGhpcy0+b3duZXIgPSBvd25lcjsKKyAg
ICB0aGlzLT5tX2luZGV4ID0gaW5kZXg7CisgICAgCisgICAgb3duZXItPnNldFN1Y2Nlc3NvcnMo
dGFyZ2V0KTsKK30KKwordm9pZCBWYWx1ZTo6cmVwbGFjZVdpdGhPb3BzKEJhc2ljQmxvY2sqIG93
bmVyKQoreworICAgIFJFTEVBU0VfQVNTRVJUKG93bmVyLT5sYXN0KCkgPT0gdGhpcyk7CisgICAg
CisgICAgdW5zaWduZWQgaW5kZXggPSBtX2luZGV4OworICAgIE9yaWdpbiBvcmlnaW4gPSBtX29y
aWdpbjsKKyAgICAKKyAgICB0aGlzLT5+VmFsdWUoKTsKKyAgICAKKyAgICBuZXcgKHRoaXMpIFZh
bHVlKE9vcHMsIFZvaWQsIG9yaWdpbik7CisgICAgCisgICAgdGhpcy0+b3duZXIgPSBvd25lcjsK
KyAgICB0aGlzLT5tX2luZGV4ID0gaW5kZXg7CisgICAgCisgICAgb3duZXItPmNsZWFyU3VjY2Vz
c29ycygpOworfQorCit2b2lkIFZhbHVlOjpyZXBsYWNlV2l0aEp1bXAoY29uc3QgRnJlcXVlbnRl
ZEJsb2NrJiB0YXJnZXQpCit7CisgICAgcmVwbGFjZVdpdGhKdW1wKG93bmVyLCB0YXJnZXQpOwor
fQorCit2b2lkIFZhbHVlOjpyZXBsYWNlV2l0aE9vcHMoKQoreworICAgIHJlcGxhY2VXaXRoT29w
cyhvd25lcik7Cit9CisKIHZvaWQgVmFsdWU6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QK
IHsKICAgICBib29sIGlzQ29uc3RhbnQgPSBmYWxzZTsKQEAgLTE4OSw2ICsyMzQsMTkgQEAgdm9p
ZCBWYWx1ZTo6ZGVlcER1bXAoY29uc3QgUHJvY2VkdXJlKiBwcgogICAgIG91dC5wcmludCgiKSIp
OwogfQogCit2b2lkIFZhbHVlOjpkdW1wU3VjY2Vzc29ycyhjb25zdCBCYXNpY0Jsb2NrKiBibG9j
aywgUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKK3sKKyAgICAvLyBOb3RlIHRoYXQgdGhpcyBtdXN0
IG5vdCBjcmFzaCBpZiB3ZSBoYXZlIHRoZSB3cm9uZyBudW1iZXIgb2Ygc3VjY2Vzc29ycywgc2lu
Y2Ugc29tZW9uZQorICAgIC8vIGRlYnVnZ2luZyBhIG51bWJlci1vZi1zdWNjZXNzb3JzIGJ1ZyB3
aWxsIHByb2JhYmx5IHdhbnQgdG8gZHVtcCBJUiEKKyAgICAKKyAgICBpZiAob3Bjb2RlKCkgPT0g
QnJhbmNoICYmIGJsb2NrLT5udW1TdWNjZXNzb3JzKCkgPT0gMikgeworICAgICAgICBvdXQucHJp
bnQoIlRoZW46IiwgYmxvY2stPnRha2VuKCksICIsIEVsc2U6IiwgYmxvY2stPm5vdFRha2VuKCkp
OworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIG91dC5wcmludChsaXN0RHVtcChi
bG9jay0+c3VjY2Vzc29ycygpKSk7Cit9CisKIFZhbHVlKiBWYWx1ZTo6bmVnQ29uc3RhbnQoUHJv
Y2VkdXJlJikgY29uc3QKIHsKICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTcxMyw2ICs3NzEsMTAg
QEAgVHlwZSBWYWx1ZTo6dHlwZUZvcihPcGNvZGUgb3Bjb2RlLCBWYWx1ZQogICAgICAgICB9CiAg
ICAgICAgIHJldHVybiBWb2lkOwogICAgIGNhc2UgTm9wOgorICAgIGNhc2UgSnVtcDoKKyAgICBj
YXNlIEJyYW5jaDoKKyAgICBjYXNlIFJldHVybjoKKyAgICBjYXNlIE9vcHM6CiAgICAgICAgIHJl
dHVybiBWb2lkOwogICAgIGNhc2UgU2VsZWN0OgogICAgICAgICBBU1NFUlQoc2Vjb25kQ2hpbGQp
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5oCShyZXZpc2lvbiAyMDMzNzEpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
MCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJBaXJBcmcuaCIKICNpbmNsdWRlICJCM0VmZmVjdHMu
aCIKKyNpbmNsdWRlICJCM0ZyZXF1ZW50ZWRCbG9jay5oIgogI2luY2x1ZGUgIkIzT3Bjb2RlLmgi
CiAjaW5jbHVkZSAiQjNPcmlnaW4uaCIKICNpbmNsdWRlICJCM1NwYXJzZUNvbGxlY3Rpb24uaCIK
QEAgLTEwOSw5ICsxMTAsMTkgQEAgcHVibGljOgogICAgIHZvaWQgcmVwbGFjZVdpdGhOb3BJZ25v
cmluZ1R5cGUoKTsKICAgICAKICAgICB2b2lkIHJlcGxhY2VXaXRoUGhpKCk7CisgICAgCisgICAg
Ly8gVGhlc2UgdHJhbnNmb3JtYXRpb25zIGFyZSBvbmx5IHZhbGlkIGZvciB0ZXJtaW5hbHMuCisg
ICAgdm9pZCByZXBsYWNlV2l0aEp1bXAoQmFzaWNCbG9jayogb3duZXIsIGNvbnN0IEZyZXF1ZW50
ZWRCbG9jayYpOworICAgIHZvaWQgcmVwbGFjZVdpdGhPb3BzKEJhc2ljQmxvY2sqIG93bmVyKTsK
KyAgICAKKyAgICAvLyBZb3UgY2FuIHVzZSB0aGlzIGZvcm0gaWYgb3duZXJzIGFyZSB2YWxpZC4g
VGhleSdyZSB1c3VhbGx5IG5vdCB2YWxpZC4KKyAgICB2b2lkIHJlcGxhY2VXaXRoSnVtcChjb25z
dCBGcmVxdWVudGVkQmxvY2smKTsKKyAgICB2b2lkIHJlcGxhY2VXaXRoT29wcygpOwogCiAgICAg
dm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAgICAgdm9pZCBkZWVwRHVtcChjb25zdCBQ
cm9jZWR1cmUqLCBQcmludFN0cmVhbSYpIGNvbnN0OworICAgIAorICAgIHZpcnR1YWwgdm9pZCBk
dW1wU3VjY2Vzc29ycyhjb25zdCBCYXNpY0Jsb2NrKiwgUHJpbnRTdHJlYW0mKSBjb25zdDsKIAog
ICAgIC8vIFRoaXMgaXMgaG93IHlvdSBjYXN0IFZhbHVlcy4gRm9yIGV4YW1wbGUsIGlmIHlvdSB3
YW50IHRvIGRvIHNvbWV0aGluZyBwcm92aWRlZCB0aGF0IHdlIGhhdmUgYQogICAgIC8vIEFyZ3Vt
ZW50UmVnVmFsdWUsIHlvdSBjYW4gZG86CkBAIC0yMjMsNyArMjM0LDcgQEAgcHVibGljOgogICAg
IGJvb2wgaXNMaWtlTm9uWmVybygpIGNvbnN0IHsgcmV0dXJuIGFzVHJpU3RhdGUoKSA9PSBUcnVl
VHJpU3RhdGU7IH0KIAogICAgIEVmZmVjdHMgZWZmZWN0cygpIGNvbnN0OwotCisgICAgCiAgICAg
Ly8gVGhpcyByZXR1cm5zIGEgVmFsdWVLZXkgdGhhdCBkZXNjcmliZXMgdGhhdCB0aGlzIFZhbHVl
IHJldHVybnMgd2hlbiBpdCBleGVjdXRlcy4gUmV0dXJucyBhbgogICAgIC8vIGVtcHR5IFZhbHVl
S2V5IGlmIHRoaXMgVmFsdWUgaXMgaW1wdXJlLiBOb3RlIHRoYXQgYW4gb3BlcmF0aW9uIHRoYXQg
cmV0dXJucyBWb2lkIGNvdWxkIHN0aWxsCiAgICAgLy8gaGF2ZSBhIG5vbi1lbXB0eSBWYWx1ZUtl
eS4gVGhpcyBoYXBwZW5zIGZvciBleGFtcGxlIHdpdGggQ2hlY2sgb3BlcmF0aW9ucy4KQEAgLTI2
NCw2ICsyNzUsOCBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIEZyYW1lUG9pbnRlcjoKICAgICAg
ICAgY2FzZSBOb3A6CiAgICAgICAgIGNhc2UgUGhpOgorICAgICAgICBjYXNlIEp1bXA6CisgICAg
ICAgIGNhc2UgT29wczoKICAgICAgICAgICAgIGlmIChVTkxJS0VMWShudW1BcmdzKSkKICAgICAg
ICAgICAgICAgICBiYWRPcGNvZGUob3Bjb2RlLCBudW1BcmdzKTsKICAgICAgICAgICAgIGJyZWFr
OwpAQCAtMjg0LDYgKzI5Nyw4IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgRG91YmxlVG9GbG9h
dDoKICAgICAgICAgY2FzZSBJVG9GOgogICAgICAgICBjYXNlIEJpdHdpc2VDYXN0OgorICAgICAg
ICBjYXNlIEJyYW5jaDoKKyAgICAgICAgY2FzZSBSZXR1cm46CiAgICAgICAgICAgICBpZiAoVU5M
SUtFTFkobnVtQXJncyAhPSAxKSkKICAgICAgICAgICAgICAgICBiYWRPcGNvZGUob3Bjb2RlLCBu
dW1BcmdzKTsKICAgICAgICAgICAgIGJyZWFrOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL3Rlc3RiMy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rl
c3RiMy5jcHAJKHJldmlzaW9uIDIwMzM3MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90
ZXN0YjMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSAiQjND
b21wdXRlRGl2aXNpb25NYWdpYy5oIgogI2luY2x1ZGUgIkIzQ29uc3QzMlZhbHVlLmgiCiAjaW5j
bHVkZSAiQjNDb25zdFB0clZhbHVlLmgiCi0jaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKICNp
bmNsdWRlICJCM0VmZmVjdHMuaCIKICNpbmNsdWRlICJCM01hdGhFeHRyYXMuaCIKICNpbmNsdWRl
ICJCM01lbW9yeVZhbHVlLmgiCkBAIC00Niw3ICs0NSwxMCBAQAogI2luY2x1ZGUgIkIzVXBzaWxv
blZhbHVlLmgiCiAjaW5jbHVkZSAiQjNWYWxpZGF0ZS5oIgogI2luY2x1ZGUgIkIzVmFsdWVJbmxp
bmVzLmgiCisjaW5jbHVkZSAiQjNWYXJpYWJsZVZhbHVlLmgiCiAjaW5jbHVkZSAiQ0NhbGxIZWxw
ZXJzLmgiCisjaW5jbHVkZSAiRlBSSW5mby5oIgorI2luY2x1ZGUgIkdQUkluZm8uaCIKICNpbmNs
dWRlICJJbml0aWFsaXplVGhyZWFkaW5nLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2lu
Y2x1ZGUgIkxpbmtCdWZmZXIuaCIKQEAgLTU0LDYgKzU2LDcgQEAKICNpbmNsdWRlICJWTS5oIgog
I2luY2x1ZGUgPGNtYXRoPgogI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDx3dGYvTGlzdER1
bXAuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9OdW1iZXJPZkNvcmVz
Lmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgpAQCAtNzUsNiArNzgsMTEgQEAgdXNpbmcg
bmFtZXNwYWNlIEpTQzo6QjM7CiAKIG5hbWVzcGFjZSB7CiAKK2Jvb2wgc2hvdWxkQmVWZXJib3Nl
KCkKK3sKKyAgICByZXR1cm4gc2hvdWxkRHVtcElSKEIzTW9kZSk7Cit9CisKIFN0YXRpY0xvY2sg
Y3Jhc2hMb2NrOwogCiAvLyBOb3RoaW5nIGZhbmN5IGZvciBub3c7IHdlIGp1c3QgdXNlIHRoZSBl
eGlzdGluZyBXVEYgYXNzZXJ0aW9uIG1hY2hpbmVyeS4KQEAgLTE5NCw3ICsyMDIsNyBAQCB2b2lk
IHRlc3Q0MigpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogY29uc3Q0MiA9IHJvb3QtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0Mik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY29uc3Q0Mik7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNvbnN0NDIpOwogCiAg
ICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MpID09IDQyKTsKIH0KQEAgLTIwNCw3ICsy
MTIsNyBAQCB2b2lkIHRlc3RMb2FkNDIoKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgaW50IHggPSA0MjsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2lu
KCksCkBAIC0yMjAsNyArMjI4LDcgQEAgdm9pZCB0ZXN0TG9hZFdpdGhPZmZzZXRJbXBsKGludDMy
X3Qgb2ZmcwogICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAg
ICAgICBpbnQ2NF90IHggPSAtNDI7CiAgICAgICAgIFZhbHVlKiBiYXNlID0gcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApOwotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAg
ICAgICAgICAgcHJvYywgTG9hZCwgSW50NjQsIE9yaWdpbigpLApAQCAtMjM1LDcgKzI0Myw3IEBA
IHZvaWQgdGVzdExvYWRXaXRoT2Zmc2V0SW1wbChpbnQzMl90IG9mZnMKICAgICAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICAgICAgaW50MzJfdCB4ID0gLTQyOwog
ICAgICAgICBWYWx1ZSogYmFzZSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290
LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIExvYWQsIElu
dDMyLCBPcmlnaW4oKSwKQEAgLTI4OCw3ICsyOTYsNyBAQCB2b2lkIHRlc3RBcmcoaW50IGFyZ3Vt
ZW50KQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogCkBAIC0yOTksNyArMzA3LDcgQEAgdm9pZCB0
ZXN0UmV0dXJuQ29uc3Q2NChpbnQ2NF90IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29u
c3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpKTsKIApAQCAtMzExLDcgKzMxOSw3IEBA
IHZvaWQgdGVzdEFkZEFyZyhpbnQgYSkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgdmFsdWUs
IHZhbHVlKSk7CiAKQEAgLTMyMiw3ICszMzAsNyBAQCB2b2lkIHRlc3RBZGRBcmdzKGludCBhLCBp
bnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEFk
ZCwgT3JpZ2luKCksCkBAIC0zMzYsNyArMzQ0LDcgQEAgdm9pZCB0ZXN0QWRkQXJnSW1tKGludCBh
LCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IEFkZCwgT3JpZ2luKCksCkBAIC0zNTAsNyArMzU4LDcgQEAgdm9pZCB0ZXN0QWRkSW1tQXJnKGlu
dCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIEFkZCwgT3JpZ2luKCksCkBAIC0zNzAsNyArMzc4LDcgQEAgdm9pZCB0ZXN0QWRkQXJnTWVt
KGludDY0X3QgYSwgaW50NjRfdCBiKQogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCksCiAgICAgICAg
IGxvYWQpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9y
aWdpbigpLCByZXN1bHQsIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAwKSk7CiAKICAgICBpbnQ2NF90IGlucHV0T3V0cHV0ID0gYjsKICAgICBDSEVD
SyghY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCBhLCAmaW5wdXRPdXRwdXQpKTsKQEAgLTM4
Niw3ICszOTQsNyBAQCB2b2lkIHRlc3RBZGRNZW1BcmcoaW50NjRfdCBhLCBpbnQ2NF90IGIpCiAg
ICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmln
aW4oKSwKICAgICAgICAgbG9hZCwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAmYSwg
YikgPT0gYSArIGIpOwogfQpAQCAtNDAxLDcgKzQwOSw3IEBAIHZvaWQgdGVzdEFkZEltbU1lbShp
bnQ2NF90IGEsIGludDY0X3QgYikKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIGEpLAogICAgICAgICBsb2FkKTsKICAgICByb290LT5hcHBlbmRO
ZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBhZGRyZXNzKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgaW50
NjRfdCBpbnB1dE91dHB1dCA9IGI7CiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50Pihwcm9j
LCAmaW5wdXRPdXRwdXQpKTsKQEAgLTQxNCw3ICs0MjIsNyBAQCB2b2lkIHRlc3RBZGRBcmczMihp
bnQgYSkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVl
KiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQs
IE9yaWdpbigpLCB2YWx1ZSwgdmFsdWUpKTsKIApAQCAtNDI1LDcgKzQzMyw3IEBAIHZvaWQgdGVz
dEFkZEFyZ3MzMihpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAtNDQ5LDcgKzQ1Nyw3IEBAIHZvaWQg
dGVzdEFkZEFyZ01lbTMyKGludDMyX3QgYSwgaW50MzJfdCAKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBB
ZGQsIE9yaWdpbigpLCBhcmd1bWVudCwgbG9hZCk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9y
eVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgYWRkcmVzcyk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGludDMyX3QgaW5w
dXRPdXRwdXQgPSBiOwogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGEs
ICZpbnB1dE91dHB1dCkpOwpAQCAtNDY1LDcgKzQ3Myw3IEBAIHZvaWQgdGVzdEFkZE1lbUFyZzMy
KGludDMyX3QgYSwgaW50MzJfdCAKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEp
KTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQs
IE9yaWdpbigpLCBsb2FkLCBhcmd1bWVudCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENI
RUNLKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgJmEsIGIpID09IGEgKyBiKTsKIH0KQEAg
LTQ4MCw3ICs0ODgsNyBAQCB2b2lkIHRlc3RBZGRJbW1NZW0zMihpbnQzMl90IGEsIGludDMyX3Qg
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBh
KSwKICAgICAgICAgbG9hZCk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9j
LCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgYWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGludDMyX3QgaW5wdXRPdXRwdXQgPSBi
OwogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludD4ocHJvYywgJmlucHV0T3V0cHV0KSk7CkBA
IC00OTUsNyArNTAzLDcgQEAgdm9pZCB0ZXN0QWRkQXJnWmVyb0ltbVpEZWYoKQogICAgICAgICBw
cm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgVmFs
dWUqIGNvbnN0WmVybyA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9y
aWdpbigpLApAQCAtNTE1LDcgKzUyMyw3IEBAIHZvaWQgdGVzdEFkZExvYWRUd2ljZSgpCiAgICAg
ICAgIFZhbHVlKiBsb2FkID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJnZhbHVlKSk7Ci0gICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBsb2FkLCBsb2Fk
KSk7CiAKQEAgLTUzMiw3ICs1NDAsNyBAQCB2b2lkIHRlc3RBZGRBcmdEb3VibGUoZG91YmxlIGEp
CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIHZhbHVlLCB2YWx1ZSkpOwogCkBAIC01NDUsNyAr
NTUzLDcgQEAgdm9pZCB0ZXN0QWRkQXJnc0RvdWJsZShkb3VibGUgYSwgZG91YmxlIAogICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6
YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjEpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwog
CkBAIC01NTgsNyArNTY2LDcgQEAgdm9pZCB0ZXN0QWRkQXJnSW1tRG91YmxlKGRvdWJsZSBhLCBk
b3VibAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUq
IHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBw
ZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtNTcx
LDcgKzU3OSw3IEBAIHZvaWQgdGVzdEFkZEltbUFyZ0RvdWJsZShkb3VibGUgYSwgZG91YmwKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEg
PSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwog
ICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEFkZCwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTU4NCw3ICs1OTIs
NyBAQCB2b2lkIHRlc3RBZGRJbW1zRG91YmxlKGRvdWJsZSBhLCBkb3VibGUgCiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+
YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1
ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBiKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgdmFsdWVB
LCB2YWx1ZUIpKTsKIApAQCAtNjAwLDcgKzYwOCw3IEBAIHZvaWQgdGVzdEFkZEFyZ0Zsb2F0KGZs
b2F0IGEpCiAgICAgVmFsdWUqIGZsb2F0VmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUqIHJlc3Vs
dCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgZmxvYXRWYWx1
ZSwgZmxvYXRWYWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQzMik7CiAKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJf
dD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+
KGEgKyBhKSkpOwpAQCAtNjE4LDcgKzYyNiw3IEBAIHZvaWQgdGVzdEFkZEFyZ3NGbG9hdChmbG9h
dCBhLCBmbG9hdCBiKQogICAgIFZhbHVlKiBmbG9hdFZhbHVlMiA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDJpbnQzMik7CiAgICAg
VmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4o
KSwgZmxvYXRWYWx1ZTEsIGZsb2F0VmFsdWUyKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVB
bmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nh
c3Q8aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSArIGIpKSk7CiB9CkBAIC02
MzMsNyArNjQxLDcgQEAgdm9pZCB0ZXN0QWRkQXJnSW1tRmxvYXQoZmxvYXQgYSwgZmxvYXQgYgog
ICAgIFZhbHVlKiBjb25zdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGZsb2F0VmFsdWUsIGNvbnN0VmFsdWUpOwogICAg
IFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNh
c3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hF
Q0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSArIGIpKSk7CiB9CkBAIC02NDgs
NyArNjU2LDcgQEAgdm9pZCB0ZXN0QWRkSW1tQXJnRmxvYXQoZmxvYXQgYSwgZmxvYXQgYgogICAg
IFZhbHVlKiBjb25zdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGNvbnN0VmFsdWUsIGZsb2F0VmFsdWUpOwogICAgIFZh
bHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3Qs
IE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0so
aXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50
MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSArIGIpKSk7CiB9CkBAIC02NjEsNyAr
NjY5LDcgQEAgdm9pZCB0ZXN0QWRkSW1tc0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIpCiAgICAgVmFs
dWUqIGNvbnN0VmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEFkZCwgT3JpZ2luKCksIGNvbnN0VmFsdWUxLCBjb25zdFZhbHVlMik7CiAgICAgVmFs
dWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwg
T3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhp
c0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MpLCBiaXR3aXNlX2Nhc3Q8aW50
MzJfdD4oYSArIGIpKSk7CiB9CkBAIC02NzcsNyArNjg1LDcgQEAgdm9pZCB0ZXN0QWRkQXJnRmxv
YXRXaXRoVXNlbGVzc0RvdWJsZUNvbgogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGFzRG91YmxlLCBhc0RvdWJsZSk7CiAgICAg
VmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVU
b0Zsb2F0LCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGls
ZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNl
X2Nhc3Q8aW50MzJfdD4oYSArIGEpKSk7CiB9CkBAIC02OTcsNyArNzA1LDcgQEAgdm9pZCB0ZXN0
QWRkQXJnc0Zsb2F0V2l0aFVzZWxlc3NEb3VibGVDbwogICAgIFZhbHVlKiByZXN1bHQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGFzRG91YmxlMSwgYXNEb3Vi
bGUyKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCByZXN1bHQpOwogICAgIFZhbHVlKiByZXN1bHQz
MiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBm
bG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50
aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90Pihh
KSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgKyBi
KSkpOwogfQpAQCAtNzE5LDcgKzcyNyw3IEBAIHZvaWQgdGVzdEFkZEFyZ3NGbG9hdFdpdGhFZmZl
Y3RmdWxEb3VibGUKICAgICBWYWx1ZSogZG91YmxlQWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKTsK
ICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwg
cmVzdWx0LCBkb3VibGVBZGRyZXNzKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgZG91YmxlIGVmZmVjdCA9IDA7CiAgICAgQ0hF
Q0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSwgJmVmZmVjdCksIGJpdHdpc2Vf
Y2FzdDxpbnQzMl90PihhICsgYikpKTsKQEAgLTczMiw3ICs3NDAsNyBAQCB2b2lkIHRlc3RNdWxB
cmcoaW50IGEpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBW
YWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICBwcm9jLCBUcnVu
YywgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IE11bCwgT3JpZ2luKCksIHZhbHVlLCB2YWx1ZSkpOwogCkBAIC03NTksNyArNzY3LDcgQEAgdm9p
ZCB0ZXN0TXVsQXJnU3RvcmUoaW50IGEpCiAgICAgICAgIHByb2MsIFN0b3JlLCBPcmlnaW4oKSwg
bXVsLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksICZtdWxTbG90KSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7
CiAKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIGEpKTsKQEAgLTc3NCw3ICs3
ODIsNyBAQCB2b2lkIHRlc3RNdWxBZGRBcmcoaW50IGEpCiAgICAgVmFsdWUqIHZhbHVlID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIEFkZCwgT3JpZ2luKCksCkBAIC03ODgsNyArNzk2LDcgQEAgdm9pZCB0ZXN0TXVsQXJn
cyhpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBNdWwsIE9yaWdpbigpLApAQCAtODAyLDcgKzgxMCw3IEBAIHZvaWQgdGVzdE11bEFy
Z0ltbShpbnQ2NF90IGEsIGludDY0X3QgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIE11bCwgT3JpZ2luKCksCkBAIC04MTYsNyArODI0LDcgQEAgdm9p
ZCB0ZXN0TXVsSW1tQXJnKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIE11bCwgT3JpZ2luKCksCkBAIC04MzAsNyArODM4LDcgQEAg
dm9pZCB0ZXN0TXVsQXJnczMyKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKICAgICAgICAgICAgIHByb2MsIE11bCwgT3JpZ2luKCksCkBAIC04NTMsNyArODYxLDcg
QEAgdm9pZCB0ZXN0TXVsTG9hZFR3aWNlKCkKICAgICAgICAgVmFsdWUqIGxvYWQgPSByb290LT5h
cHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZCwgSW50MzIsIE9y
aWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAmdmFsdWUpKTsKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIE11bCwgT3JpZ2luKCksIGxvYWQsIGxvYWQpKTsKIApAQCAtODc1LDcgKzg4Myw3IEBA
IHZvaWQgdGVzdE11bEFkZEFyZ3NMZWZ0KCkKICAgICBWYWx1ZSogYXJnMiA9IHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIyKTsKICAgICBWYWx1ZSogbXVsdGlwbGllZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgTXVsLCBPcmlnaW4oKSwgYXJnMCwgYXJnMSk7CiAgICAgVmFsdWUqIGFkZGVkID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBtdWx0aXBsaWVkLCBhcmcyKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBhZGRlZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIGFkZGVkKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKQEAg
LTg5OSw3ICs5MDcsNyBAQCB2b2lkIHRlc3RNdWxBZGRBcmdzUmlnaHQoKQogICAgIFZhbHVlKiBh
cmcyID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjIpOwogICAgIFZhbHVlKiBtdWx0aXBsaWVkID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBhcmcxLCBhcmcyKTsKICAgICBWYWx1
ZSogYWRkZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGFy
ZzAsIG11bHRpcGxpZWQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOwogCiAgICAgYXV0byBjb2RlID0gY29t
cGlsZShwcm9jKTsKIApAQCAtOTI2LDcgKzkzNCw3IEBAIHZvaWQgdGVzdE11bEFkZEFyZ3NMZWZ0
MzIoKQogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMikpOwogICAgIFZhbHVlKiBtdWx0aXBsaWVkID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBhcmcwLCBhcmcxKTsK
ICAgICBWYWx1ZSogYWRkZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3Jp
Z2luKCksIG11bHRpcGxpZWQsIGFyZzIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOwogCiAgICAgYXV0byBj
b2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAtOTUzLDcgKzk2MSw3IEBAIHZvaWQgdGVzdE11bEFk
ZEFyZ3NSaWdodDMyKCkKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpKTsKICAgICBWYWx1ZSogbXVs
dGlwbGllZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgYXJn
MSwgYXJnMik7CiAgICAgVmFsdWUqIGFkZGVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBBZGQsIE9yaWdpbigpLCBhcmcwLCBtdWx0aXBsaWVkKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKIAog
ICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKQEAgLTk3Nyw3ICs5ODUsNyBAQCB2b2lk
IHRlc3RNdWxTdWJBcmdzTGVmdCgpCiAgICAgVmFsdWUqIGFyZzIgPSByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMik7
CiAgICAgVmFsdWUqIG11bHRpcGxpZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11
bCwgT3JpZ2luKCksIGFyZzAsIGFyZzEpOwogICAgIFZhbHVlKiBhZGRlZCA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgbXVsdGlwbGllZCwgYXJnMik7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRk
ZWQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBhZGRlZCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC0xMDAx
LDcgKzEwMDksNyBAQCB2b2lkIHRlc3RNdWxTdWJBcmdzUmlnaHQoKQogICAgIFZhbHVlKiBhcmcy
ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjIpOwogICAgIFZhbHVlKiBtdWx0aXBsaWVkID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBhcmcxLCBhcmcyKTsKICAgICBWYWx1ZSog
YWRkZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIGFyZzAs
IG11bHRpcGxpZWQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIGFkZGVkKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGls
ZShwcm9jKTsKIApAQCAtMTAyOCw3ICsxMDM2LDcgQEAgdm9pZCB0ZXN0TXVsU3ViQXJnc0xlZnQz
MigpCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKSk7CiAgICAgVmFsdWUqIG11bHRpcGxpZWQgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGFyZzAsIGFyZzEpOwog
ICAgIFZhbHVlKiBhZGRlZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmln
aW4oKSwgbXVsdGlwbGllZCwgYXJnMik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CiAKICAgICBhdXRvIGNv
ZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC0xMDU1LDcgKzEwNjMsNyBAQCB2b2lkIHRlc3RNdWxT
dWJBcmdzUmlnaHQzMigpCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKSk7CiAgICAgVmFsdWUqIG11
bHRpcGxpZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGFy
ZzEsIGFyZzIpOwogICAgIFZhbHVlKiBhZGRlZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgU3ViLCBPcmlnaW4oKSwgYXJnMCwgbXVsdGlwbGllZCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CiAK
ICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC0xMDc5LDcgKzEwODcsNyBAQCB2
b2lkIHRlc3RNdWxOZWdBcmdzKCkKICAgICBWYWx1ZSogbXVsdGlwbGllZCA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgYXJnMCwgYXJnMSk7CiAgICAgVmFsdWUq
IHplcm8gPSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCk7
CiAgICAgVmFsdWUqIGFkZGVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9y
aWdpbigpLCB6ZXJvLCBtdWx0aXBsaWVkKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKIAogICAgIGF1dG8g
Y29kZSA9IGNvbXBpbGUocHJvYyk7CiAKQEAgLTExMDMsNyArMTExMSw3IEBAIHZvaWQgdGVzdE11
bE5lZ0FyZ3MzMigpCiAgICAgVmFsdWUqIG11bHRpcGxpZWQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGFyZzAsIGFyZzEpOwogICAgIFZhbHVlKiB6ZXJvID0g
cm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApOwogICAgIFZh
bHVlKiBhZGRlZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwg
emVybywgbXVsdGlwbGllZCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CiAKICAgICBhdXRvIGNvZGUgPSBj
b21waWxlKHByb2MpOwogCkBAIC0xMTIwLDcgKzExMjgsNyBAQCB2b2lkIHRlc3RNdWxBcmdEb3Vi
bGUoZG91YmxlIGEpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIHZhbHVlLCB2YWx1ZSkpOwog
CkBAIC0xMTMzLDcgKzExNDEsNyBAQCB2b2lkIHRlc3RNdWxBcmdzRG91YmxlKGRvdWJsZSBhLCBk
b3VibGUgCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1
ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3Vt
ZW50RlBSMSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIHZhbHVl
QSwgdmFsdWVCKSk7CiAKQEAgLTExNDYsNyArMTE1NCw3IEBAIHZvaWQgdGVzdE11bEFyZ0ltbURv
dWJsZShkb3VibGUgYSwgZG91YmwKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIHZh
bHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
Yik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIHZhbHVlQSwgdmFs
dWVCKSk7CiAKQEAgLTExNTksNyArMTE2Nyw3IEBAIHZvaWQgdGVzdE11bEltbUFyZ0RvdWJsZShk
b3VibGUgYSwgZG91YmwKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwog
ICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7
CiAKQEAgLTExNzIsNyArMTE4MCw3IEBAIHZvaWQgdGVzdE11bEltbXNEb3VibGUoZG91YmxlIGEs
IGRvdWJsZSAKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZh
bHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIGEpOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3Vi
bGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBN
dWwsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC0xMTg4LDcgKzExOTYsNyBAQCB2
b2lkIHRlc3RNdWxBcmdGbG9hdChmbG9hdCBhKQogICAgIFZhbHVlKiBmbG9hdFZhbHVlID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50
MzIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11
bCwgT3JpZ2luKCksIGZsb2F0VmFsdWUsIGZsb2F0VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQz
MiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBy
ZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAKICAgICBDSEVDSyhpc0lkZW50aWNh
bChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSks
IGJpdHdpc2VfY2FzdDxpbnQzMl90PihhICogYSkpKTsKQEAgLTEyMDYsNyArMTIxNCw3IEBAIHZv
aWQgdGVzdE11bEFyZ3NGbG9hdChmbG9hdCBhLCBmbG9hdCBiKQogICAgIFZhbHVlKiBmbG9hdFZh
bHVlMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigp
LCBhcmd1bWVudDJpbnQzMik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZTEsIGZsb2F0VmFsdWUyKTsKICAg
ICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VD
YXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENI
RUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0
PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50
MzJfdD4oYSAqIGIpKSk7CiB9CkBAIC0xMjIxLDcgKzEyMjksNyBAQCB2b2lkIHRlc3RNdWxBcmdJ
bW1GbG9hdChmbG9hdCBhLCBmbG9hdCBiCiAgICAgVmFsdWUqIGNvbnN0VmFsdWUgPSByb290LT5h
cHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7CiAgICAgVmFsdWUq
IHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgZmxv
YXRWYWx1ZSwgY29uc3RWYWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGlu
dDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQz
Ml90PihhICogYikpKTsKIH0KQEAgLTEyMzYsNyArMTI0NCw3IEBAIHZvaWQgdGVzdE11bEltbUFy
Z0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIKICAgICBWYWx1ZSogY29uc3RWYWx1ZSA9IHJvb3QtPmFw
cGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSog
cmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBjb25z
dFZhbHVlLCBmbG9hdFZhbHVlKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQz
Mik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50
MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0PGludDMy
X3Q+KGEgKiBiKSkpOwogfQpAQCAtMTI0OSw3ICsxMjU3LDcgQEAgdm9pZCB0ZXN0TXVsSW1tc0Zs
b2F0KGZsb2F0IGEsIGZsb2F0IGIpCiAgICAgVmFsdWUqIGNvbnN0VmFsdWUyID0gcm9vdC0+YXBw
ZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiBy
ZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGNvbnN0
VmFsdWUxLCBjb25zdFZhbHVlMik7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGlu
dDMyX3Q+KHByb2MpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAqIGIpKSk7CiB9CkBAIC0xMjY1
LDcgKzEyNzMsNyBAQCB2b2lkIHRlc3RNdWxBcmdGbG9hdFdpdGhVc2VsZXNzRG91YmxlQ29uCiAg
ICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmln
aW4oKSwgYXNEb3VibGUsIGFzRG91YmxlKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCByZXN1bHQp
OwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0
d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7
CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJp
dHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhICogYSkpKTsK
IH0KQEAgLTEyODUsNyArMTI5Myw3IEBAIHZvaWQgdGVzdE11bEFyZ3NGbG9hdFdpdGhVc2VsZXNz
RG91YmxlQ28KICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBNdWwsIE9yaWdpbigpLCBhc0RvdWJsZTEsIGFzRG91YmxlMik7CiAgICAgVmFsdWUqIGZsb2F0
UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmln
aW4oKSwgcmVzdWx0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMy
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQz
Ml90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90
PihiKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhICogYikpKTsKIH0KQEAgLTEzMDcsNyArMTMx
NSw3IEBAIHZvaWQgdGVzdE11bEFyZ3NGbG9hdFdpdGhFZmZlY3RmdWxEb3VibGUKICAgICBWYWx1
ZSogZG91YmxlTXVscmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKTsKICAgICByb290LT5hcHBlbmROZXc8
TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBkb3VibGVNdWxyZXNz
KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJp
dHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIp
OwogCiAgICAgZG91YmxlIGVmZmVjdCA9IDA7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGls
ZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2Vf
Y2FzdDxpbnQzMl90PihiKSwgJmVmZmVjdCksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhICogYikp
KTsKQEAgLTEzMTksNyArMTMyNyw3IEBAIHZvaWQgdGVzdERpdkFyZ0RvdWJsZShkb3VibGUgYSkK
ICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwogICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwgdmFsdWUsIHZhbHVlKSk7CiAKQEAgLTEzMzIsNyAr
MTM0MCw3IEBAIHZvaWQgdGVzdERpdkFyZ3NEb3VibGUoZG91YmxlIGEsIGRvdWJsZSAKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86
OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIxKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsK
IApAQCAtMTM0NSw3ICsxMzUzLDcgQEAgdm9pZCB0ZXN0RGl2QXJnSW1tRG91YmxlKGRvdWJsZSBh
LCBkb3VibAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFs
dWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+
YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAt
MTM1OCw3ICsxMzY2LDcgQEAgdm9pZCB0ZXN0RGl2SW1tQXJnRG91YmxlKGRvdWJsZSBhLCBkb3Vi
bAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZh
bHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
YSk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTM3MSw3
ICsxMzc5LDcgQEAgdm9pZCB0ZXN0RGl2SW1tc0RvdWJsZShkb3VibGUgYSwgZG91YmxlIAogICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9
IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAg
ICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgYik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERpdiwgT3JpZ2luKCks
IHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTEzODcsNyArMTM5NSw3IEBAIHZvaWQgdGVzdERpdkFy
Z0Zsb2F0KGZsb2F0IGEpCiAgICAgVmFsdWUqIGZsb2F0VmFsdWUgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFs
dWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwg
ZmxvYXRWYWx1ZSwgZmxvYXRWYWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQzMik7CiAKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRS
dW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0
PGludDMyX3Q+KGEgLyBhKSkpOwpAQCAtMTQwNSw3ICsxNDEzLDcgQEAgdm9pZCB0ZXN0RGl2QXJn
c0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIpCiAgICAgVmFsdWUqIGZsb2F0VmFsdWUyID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50Mmlu
dDMyKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBE
aXYsIE9yaWdpbigpLCBmbG9hdFZhbHVlMSwgZmxvYXRWYWx1ZTIpOwogICAgIFZhbHVlKiByZXN1
bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigp
LCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGlj
YWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSks
IGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhIC8gYikp
KTsKIH0KQEAgLTE0MjAsNyArMTQyOCw3IEBAIHZvaWQgdGVzdERpdkFyZ0ltbUZsb2F0KGZsb2F0
IGEsIGZsb2F0IGIKICAgICBWYWx1ZSogY29uc3RWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25z
dEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEaXYsIE9yaWdpbigpLCBmbG9hdFZhbHVlLCBjb25z
dFZhbHVlKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMy
KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywg
Yml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLyBiKSkp
OwogfQpAQCAtMTQzNSw3ICsxNDQzLDcgQEAgdm9pZCB0ZXN0RGl2SW1tQXJnRmxvYXQoZmxvYXQg
YSwgZmxvYXQgYgogICAgIFZhbHVlKiBjb25zdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0
RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERpdiwgT3JpZ2luKCksIGNvbnN0VmFsdWUsIGZsb2F0
VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIp
OwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBi
aXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAvIGIpKSk7
CiB9CkBAIC0xNDQ4LDcgKzE0NTYsNyBAQCB2b2lkIHRlc3REaXZJbW1zRmxvYXQoZmxvYXQgYSwg
ZmxvYXQgYikKICAgICBWYWx1ZSogY29uc3RWYWx1ZTIgPSByb290LT5hcHBlbmROZXc8Q29uc3RG
bG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwgY29uc3RWYWx1ZTEsIGNvbnN0
VmFsdWUyKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMy
KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYyks
IGJpdHdpc2VfY2FzdDxpbnQzMl90PihhIC8gYikpKTsKIH0KQEAgLTE0NTgsNyArMTQ2Niw3IEBA
IHZvaWQgdGVzdE1vZEFyZ0RvdWJsZShkb3VibGUgYSkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZSA9
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5m
bzo6YXJndW1lbnRGUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4o
KSwgdmFsdWUsIHZhbHVlKSk7CiAKQEAgLTE0NzEsNyArMTQ3OSw3IEBAIHZvaWQgdGVzdE1vZEFy
Z3NEb3VibGUoZG91YmxlIGEsIGRvdWJsZSAKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFs
dWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIxKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
TW9kLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTQ4NCw3ICsxNDkyLDcgQEAg
dm9pZCB0ZXN0TW9kQXJnSW1tRG91YmxlKGRvdWJsZSBhLCBkb3VibAogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRG
UFIwKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBiKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBP
cmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTQ5Nyw3ICsxNTA1LDcgQEAgdm9pZCB0
ZXN0TW9kSW1tQXJnRG91YmxlKGRvdWJsZSBhLCBkb3VibAogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxD
b25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHZhbHVlQiA9
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5m
bzo6YXJndW1lbnRGUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4o
KSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTUxMCw3ICsxNTE4LDcgQEAgdm9pZCB0ZXN0TW9k
SW1tc0RvdWJsZShkb3VibGUgYSwgZG91YmxlIAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERv
dWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3Qt
PmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAg
LTE1MjYsNyArMTUzNCw3IEBAIHZvaWQgdGVzdE1vZEFyZ0Zsb2F0KGZsb2F0IGEpCiAgICAgVmFs
dWUqIGZsb2F0VmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0
LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSwgZmxvYXRWYWx1ZSk7
CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3
aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKIAog
ICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lz
ZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0PGZs
b2F0PihmbW9kKGEsIGEpKSkpKTsKQEAgLTE1NDQsNyArMTU1Miw3IEBAIHZvaWQgdGVzdE1vZEFy
Z3NGbG9hdChmbG9hdCBhLCBmbG9hdCBiKQogICAgIFZhbHVlKiBmbG9hdFZhbHVlMiA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDJp
bnQzMik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
TW9kLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZTEsIGZsb2F0VmFsdWUyKTsKICAgICBWYWx1ZSogcmVz
dWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4o
KSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRp
Y2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEp
LCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGlj
X2Nhc3Q8ZmxvYXQ+KGZtb2QoYSwgYikpKSkpOwogfQpAQCAtMTU1OSw3ICsxNTY3LDcgQEAgdm9p
ZCB0ZXN0TW9kQXJnSW1tRmxvYXQoZmxvYXQgYSwgZmxvYXQgYgogICAgIFZhbHVlKiBjb25zdFZh
bHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIp
OwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE1vZCwg
T3JpZ2luKCksIGZsb2F0VmFsdWUsIGNvbnN0VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1
bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29t
cGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KGZtb2QoYSwgYikpKSkpOwogfQpA
QCAtMTU3NCw3ICsxNTgyLDcgQEAgdm9pZCB0ZXN0TW9kSW1tQXJnRmxvYXQoZmxvYXQgYSwgZmxv
YXQgYgogICAgIFZhbHVlKiBjb25zdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIGNvbnN0VmFsdWUsIGZsb2F0VmFsdWUp
OwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0
d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAg
ICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNl
X2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8Zmxv
YXQ+KGZtb2QoYSwgYikpKSkpOwogfQpAQCAtMTU4Nyw3ICsxNTk1LDcgQEAgdm9pZCB0ZXN0TW9k
SW1tc0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIpCiAgICAgVmFsdWUqIGNvbnN0VmFsdWUyID0gcm9v
dC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogICAgIFZh
bHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2luKCks
IGNvbnN0VmFsdWUxLCBjb25zdFZhbHVlMik7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5k
UnVuPGludDMyX3Q+KHByb2MpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8Zmxv
YXQ+KGZtb2QoYSwgYikpKSkpOwogfQpAQCAtMTYwMyw3ICsxNjExLDcgQEAgdm9pZCB0ZXN0RGl2
QXJnRmxvYXRXaXRoVXNlbGVzc0RvdWJsZUNvbgogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIERpdiwgT3JpZ2luKCksIGFzRG91YmxlLCBhc0RvdWJsZSk7
CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBE
b3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRS
ZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwo
Y29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBi
aXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAvIGEpKSk7CiB9CkBAIC0xNjIzLDcgKzE2MzEsNyBAQCB2
b2lkIHRlc3REaXZBcmdzRmxvYXRXaXRoVXNlbGVzc0RvdWJsZUNvCiAgICAgVmFsdWUqIHJlc3Vs
dCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwgYXNEb3VibGUx
LCBhc0RvdWJsZTIpOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgVmFsdWUq
IHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3Jp
Z2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNL
KGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJf
dD4oYSAvIGIpKSk7CiB9CkBAIC0xNjQ1LDcgKzE2NTMsNyBAQCB2b2lkIHRlc3REaXZBcmdzRmxv
YXRXaXRoRWZmZWN0ZnVsRG91YmxlCiAgICAgVmFsdWUqIGRvdWJsZURpdnJlc3MgPSByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMik7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwg
T3JpZ2luKCksIHJlc3VsdCwgZG91YmxlRGl2cmVzcyk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0
UmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIGRvdWJsZSBlZmZlY3QgPSAw
OwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0
d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYiksICZlZmZlY3Qp
LCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAvIGIpKSk7CkBAIC0xNjU3LDcgKzE2NjUsNyBAQCB2
b2lkIHRlc3RTdWJBcmcoaW50IGEpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIHZhbHVlLCB2
YWx1ZSkpOwogCkBAIC0xNjY4LDcgKzE2NzYsNyBAQCB2b2lkIHRlc3RTdWJBcmdzKGludCBhLCBp
bnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFN1
YiwgT3JpZ2luKCksCkBAIC0xNjgyLDcgKzE2OTAsNyBAQCB2b2lkIHRlc3RTdWJBcmdJbW0oaW50
NjRfdCBhLCBpbnQ2NF90IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBTdWIsIE9yaWdpbigpLApAQCAtMTcwMyw3ICsxNzExLDcgQEAgdm9pZCB0ZXN0
TmVnVmFsdWVTdWJPbmUoaW50IGEpCiAgICAgVmFsdWUqIG5lZ0FyZ3VtZW50TWludXNPbmUgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksCiAgICAgICAgIG5lZ0Fy
Z3VtZW50LAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmln
aW4oKSwgMSkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIG5lZ0FyZ3VtZW50TWludXNPbmUpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBuZWdBcmd1bWVudE1pbnVzT25lKTsK
ICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywgYSkgPT0gLWEgLSAxKTsKIH0KIApA
QCAtMTcxMSw3ICsxNzE5LDcgQEAgdm9pZCB0ZXN0U3ViSW1tQXJnKGludCBhLCBpbnQgYikKIHsK
ICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFN1YiwgT3JpZ2lu
KCksCkBAIC0xNzMwLDcgKzE3MzgsNyBAQCB2b2lkIHRlc3RTdWJBcmdNZW0oaW50NjRfdCBhLCBp
bnQ2NF90IGIpCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgU3ViLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApLAogICAgICAgICBsb2Fk
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90
Pihwcm9jLCBhLCAmYikgPT0gYSAtIGIpOwogfQpAQCAtMTc0NSw3ICsxNzUzLDcgQEAgdm9pZCB0
ZXN0U3ViTWVtQXJnKGludDY0X3QgYSwgaW50NjRfdCBiKQogICAgICAgICBsb2FkLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMSkpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJv
YywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMy
VmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBpbnQ2NF90IGlucHV0T3V0cHV0ID0g
YTsKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAmaW5wdXRPdXRwdXQs
IGIpKTsKQEAgLTE3NjIsNyArMTc3MCw3IEBAIHZvaWQgdGVzdFN1YkltbU1lbShpbnQ2NF90IGEs
IGludDY0X3QgYikKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIGEpLAogICAgICAgICBsb2FkKTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5
VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBhZGRyZXNzKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgaW50NjRfdCBpbnB1
dE91dHB1dCA9IGI7CiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAmaW5wdXRP
dXRwdXQpKTsKQEAgLTE3NzksNyArMTc4Nyw3IEBAIHZvaWQgdGVzdFN1Yk1lbUltbShpbnQ2NF90
IGEsIGludDY0X3QgYikKICAgICAgICAgbG9hZCwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENv
bnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpKTsKICAgICByb290LT5hcHBlbmROZXc8TWVt
b3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBhZGRyZXNzKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgaW50NjRfdCBp
bnB1dE91dHB1dCA9IGE7CiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAmaW5w
dXRPdXRwdXQpKTsKQEAgLTE3OTEsNyArMTc5OSw3IEBAIHZvaWQgdGVzdFN1YkFyZ3MzMihpbnQg
YSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBTdWIsIE9yaWdpbigpLApAQCAtMTgwOSw3ICsxODE3LDcgQEAgdm9pZCB0ZXN0U3ViQXJnSW1t
MzIoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgU3ViLCBPcmlnaW4oKSwKQEAgLTE4MjUsNyArMTgzMyw3IEBAIHZvaWQgdGVzdFN1
YkltbUFyZzMyKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIFN1YiwgT3JpZ2luKCksCkBAIC0xODQ3LDcgKzE4NTUsNyBAQCB2b2lk
IHRlc3RTdWJNZW1BcmczMihpbnQzMl90IGEsIGludDMyX3QgCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIxKSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
U3ViLCBPcmlnaW4oKSwgbG9hZCwgYXJndW1lbnQpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1v
cnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGFkZHJlc3MpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3Qt
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBpbnQzMl90IGlu
cHV0T3V0cHV0ID0gYTsKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCAm
aW5wdXRPdXRwdXQsIGIpKTsKQEAgLTE4NjMsNyArMTg3MSw3IEBAIHZvaWQgdGVzdFN1YkFyZ01l
bTMyKGludDMyX3QgYSwgaW50MzJfdCAKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBT
dWIsIE9yaWdpbigpLCBhcmd1bWVudCwgbG9hZCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAg
IENIRUNLKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYSwgJmIpID09IGEgLSBiKTsKIH0K
QEAgLTE4NzgsNyArMTg4Niw3IEBAIHZvaWQgdGVzdFN1YkltbU1lbTMyKGludDMyX3QgYSwgaW50
MzJfdCAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIGEpLAogICAgICAgICBsb2FkKTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+
KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29u
c3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgaW50MzJfdCBpbnB1dE91dHB1
dCA9IGI7CiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAmaW5wdXRPdXRwdXQp
KTsKQEAgLTE4OTUsNyArMTkwMyw3IEBAIHZvaWQgdGVzdFN1Yk1lbUltbTMyKGludDMyX3QgYSwg
aW50MzJfdCAKICAgICAgICAgbG9hZCwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpKTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFs
dWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBhZGRyZXNzKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgaW50MzJfdCBpbnB1dE91
dHB1dCA9IGE7CiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAmaW5wdXRPdXRw
dXQpKTsKQEAgLTE5MTQsNyArMTkyMiw3IEBAIHZvaWQgdGVzdE5lZ1ZhbHVlU3ViT25lMzIoaW50
IGEpCiAgICAgVmFsdWUqIG5lZ0FyZ3VtZW50TWludXNPbmUgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIFN1YiwgT3JpZ2luKCksCiAgICAgICAgIG5lZ0FyZ3VtZW50LAogICAgICAgICBy
b290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIG5lZ0Fy
Z3VtZW50TWludXNPbmUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCBuZWdBcmd1bWVudE1pbnVzT25lKTsKICAgICBDSEVDSyhjb21waWxl
QW5kUnVuPGludD4ocHJvYywgYSkgPT0gLWEgLSAxKTsKIH0KIApAQCAtMTkyMyw3ICsxOTMxLDcg
QEAgdm9pZCB0ZXN0U3ViQXJnRG91YmxlKGRvdWJsZSBhKQogICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVl
ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJ
bmZvOjphcmd1bWVudEZQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdp
bigpLCB2YWx1ZSwgdmFsdWUpKTsKIApAQCAtMTkzNiw3ICsxOTQ0LDcgQEAgdm9pZCB0ZXN0U3Vi
QXJnc0RvdWJsZShkb3VibGUgYSwgZG91YmxlIAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBW
YWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjEpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBTdWIsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC0xOTQ5LDcgKzE5NTcsNyBA
QCB2b2lkIHRlc3RTdWJBcmdJbW1Eb3VibGUoZG91YmxlIGEsIGRvdWJsCiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVu
dEZQUjApOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIs
IE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC0xOTYyLDcgKzE5NzAsNyBAQCB2b2lk
IHRlc3RTdWJJbW1BcmdEb3VibGUoZG91YmxlIGEsIGRvdWJsCiAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3
PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogdmFsdWVC
ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJ
bmZvOjphcmd1bWVudEZQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdp
bigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC0xOTc1LDcgKzE5ODMsNyBAQCB2b2lkIHRlc3RT
dWJJbW1zRG91YmxlKGRvdWJsZSBhLCBkb3VibGUgCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0
RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9v
dC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKICAg
ICAKQEAgLTE5OTEsNyArMTk5OSw3IEBAIHZvaWQgdGVzdFN1YkFyZ0Zsb2F0KGZsb2F0IGEpCiAg
ICAgVmFsdWUqIGZsb2F0VmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdp
c2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSwgZmxvYXRW
YWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7
CiAKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywg
Yml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLSBhKSkp
OwpAQCAtMjAwOSw3ICsyMDE3LDcgQEAgdm9pZCB0ZXN0U3ViQXJnc0Zsb2F0KGZsb2F0IGEsIGZs
b2F0IGIpCiAgICAgVmFsdWUqIGZsb2F0VmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MmludDMyKTsKICAgICBWYWx1ZSog
cmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBmbG9h
dFZhbHVlMSwgZmxvYXRWYWx1ZTIpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxp
bnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxpbnQz
Ml90PihiKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhIC0gYikpKTsKIH0KQEAgLTIwMjQsNyAr
MjAzMiw3IEBAIHZvaWQgdGVzdFN1YkFyZ0ltbUZsb2F0KGZsb2F0IGEsIGZsb2F0IGIKICAgICBW
YWx1ZSogY29uc3RWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBiKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBTdWIsIE9yaWdpbigpLCBmbG9hdFZhbHVlLCBjb25zdFZhbHVlKTsKICAgICBWYWx1
ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBP
cmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlz
SWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMy
X3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLSBiKSkpOwogfQpAQCAtMjAzOSw3ICsy
MDQ3LDcgQEAgdm9pZCB0ZXN0U3ViSW1tQXJnRmxvYXQoZmxvYXQgYSwgZmxvYXQgYgogICAgIFZh
bHVlKiBjb25zdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIFN1YiwgT3JpZ2luKCksIGNvbnN0VmFsdWUsIGZsb2F0VmFsdWUpOwogICAgIFZhbHVl
KiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9y
aWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJ
ZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJf
dD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAtIGIpKSk7CiB9CkBAIC0yMDUyLDcgKzIw
NjAsNyBAQCB2b2lkIHRlc3RTdWJJbW1zRmxvYXQoZmxvYXQgYSwgZmxvYXQgYikKICAgICBWYWx1
ZSogY29uc3RWYWx1ZTIgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgYik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgU3ViLCBPcmlnaW4oKSwgY29uc3RWYWx1ZTEsIGNvbnN0VmFsdWUyKTsKICAgICBWYWx1
ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBP
cmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlz
SWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYyksIGJpdHdpc2VfY2FzdDxpbnQz
Ml90PihhIC0gYikpKTsKIH0KQEAgLTIwNjgsNyArMjA3Niw3IEBAIHZvaWQgdGVzdFN1YkFyZ0Zs
b2F0V2l0aFVzZWxlc3NEb3VibGVDb24KICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBhc0RvdWJsZSwgYXNEb3VibGUpOwogICAg
IFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91Ymxl
VG9GbG9hdCwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBp
bGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lz
ZV9jYXN0PGludDMyX3Q+KGEgLSBhKSkpOwogfQpAQCAtMjA4OCw3ICsyMDk2LDcgQEAgdm9pZCB0
ZXN0U3ViQXJnc0Zsb2F0V2l0aFVzZWxlc3NEb3VibGVDbwogICAgIFZhbHVlKiByZXN1bHQgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIGFzRG91YmxlMSwgYXNE
b3VibGUyKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCByZXN1bHQpOwogICAgIFZhbHVlKiByZXN1
bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigp
LCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lk
ZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90
PihhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEg
LSBiKSkpOwogfQpAQCAtMjExMCw3ICsyMTE4LDcgQEAgdm9pZCB0ZXN0U3ViQXJnc0Zsb2F0V2l0
aEVmZmVjdGZ1bERvdWJsZQogICAgIFZhbHVlKiBkb3VibGVTdWJyZXNzID0gcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjIpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdp
bigpLCByZXN1bHQsIGRvdWJsZVN1YnJlc3MpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3Vs
dCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBkb3VibGUgZWZmZWN0ID0gMDsKICAg
ICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2Vf
Y2FzdDxpbnQzMl90PihhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpLCAmZWZmZWN0KSwgYml0
d2lzZV9jYXN0PGludDMyX3Q+KGEgLSBiKSkpOwpAQCAtMjEyMSw3ICsyMTI5LDcgQEAgdm9pZCB0
ZXN0Qml0QW5kQXJncyhpbnQ2NF90IGEsIGludDY0X3QgYgogewogICAgIFByb2NlZHVyZSBwcm9j
OwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTIxMzYsNyAr
MjE0NCw3IEBAIHZvaWQgdGVzdEJpdEFuZFNhbWVBcmcoaW50NjRfdCBhKQogICAgIFByb2NlZHVy
ZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFs
dWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0yMTUwLDcgKzIxNTgsNyBAQCB2
b2lkIHRlc3RCaXRBbmRJbW1zKGludDY0X3QgYSwgaW50NjRfdCBiCiB7CiAgICAgUHJvY2VkdXJl
IHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMjE2
NCw3ICsyMTcyLDcgQEAgdm9pZCB0ZXN0Qml0QW5kQXJnSW1tKGludDY0X3QgYSwgaW50NjRfdAog
ewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBP
cmlnaW4oKSwKQEAgLTIxNzgsNyArMjE4Niw3IEBAIHZvaWQgdGVzdEJpdEFuZEltbUFyZyhpbnQ2
NF90IGEsIGludDY0X3QKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0yMTk2LDcgKzIyMDQsNyBAQCB2b2lkIHRlc3RC
aXRBbmRCaXRBbmRBcmdJbW1JbW0oaW50NjRfdCBhCiAgICAgICAgIHByb2MsIEJpdEFuZCwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
CiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMjIxNCw3ICsyMjIyLDcg
QEAgdm9pZCB0ZXN0Qml0QW5kSW1tQml0QW5kQXJnSW1tKGludDY0X3QgYQogICAgICAgICBwcm9j
LCBCaXRBbmQsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBjKSk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTIy
MjgsNyArMjIzNiw3IEBAIHZvaWQgdGVzdEJpdEFuZEFyZ3MzMihpbnQgYSwgaW50IGIpCiB7CiAg
ICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdp
bigpLApAQCAtMjI0OCw3ICsyMjU2LDcgQEAgdm9pZCB0ZXN0Qml0QW5kU2FtZUFyZzMyKGludCBh
KQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFy
Z3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
R1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTIyNjIsNyArMjI3MCw3IEBAIHZvaWQgdGVz
dEJpdEFuZEltbXMzMihpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
CiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMjI3Niw3ICsyMjg0LDcg
QEAgdm9pZCB0ZXN0Qml0QW5kQXJnSW1tMzIoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVy
ZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTIy
OTIsNyArMjMwMCw3IEBAIHZvaWQgdGVzdEJpdEFuZEltbUFyZzMyKGludCBhLCBpbnQgYikKIHsK
ICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3Jp
Z2luKCksCkBAIC0yMzE0LDcgKzIzMjIsNyBAQCB2b2lkIHRlc3RCaXRBbmRCaXRBbmRBcmdJbW1J
bW0zMihpbnQgYSwgCiAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAg
ICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgYikpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0yMzM0LDcgKzIzNDIsNyBAQCB2b2lkIHRl
c3RCaXRBbmRJbW1CaXRBbmRBcmdJbW0zMihpbnQgYSwgCiAgICAgICAgICAgICBwcm9jLCBUcnVu
YywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYykpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0yMzYx
LDcgKzIzNjksNyBAQCB2b2lkIHRlc3RCaXRBbmRXaXRoTWFza1JldHVybnNCb29sZWFucyhpCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCA0Miks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCAt
NSkpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgc2VsZWN0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgc2VsZWN0KTsKIAogICAgIGludDY0X3QgZXhwZWN0ZWQgPSAoYSA9
PSBiKSA/IC01IDogNDI7CiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCBh
LCBiKSA9PSBleHBlY3RlZCk7CkBAIC0yMzc4LDcgKzIzODYsNyBAQCB2b2lkIHRlc3RCaXRBbmRB
cmdEb3VibGUoZG91YmxlIGEpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIHJl
c3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0QW5kLCBPcmlnaW4oKSwgYXJn
dW1lbnQsIGFyZ3VtZW50KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soaXNJZGVu
dGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIGEpLCBiaXRBbmREb3VibGUoYSwgYSkp
KTsKIH0KQEAgLTIzOTAsNyArMjM5OCw3IEBAIHZvaWQgdGVzdEJpdEFuZEFyZ3NEb3VibGUoZG91
YmxlIGEsIGRvdWIKICAgICBWYWx1ZSogYXJndW1lbnRBID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAg
IFZhbHVlKiBhcmd1bWVudEIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0QW5kLCBPcmlnaW4oKSwgYXJndW1lbnRB
LCBhcmd1bWVudEIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNh
bChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgYSwgYiksIGJpdEFuZERvdWJsZShhLCBiKSkp
OwogfQpAQCAtMjQwMiw3ICsyNDEwLDcgQEAgdm9pZCB0ZXN0Qml0QW5kQXJnSW1tRG91YmxlKGRv
dWJsZSBhLCBkbwogICAgIFZhbHVlKiBhcmd1bWVudEEgPSByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAg
VmFsdWUqIGFyZ3VtZW50QiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgYik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQml0QW5kLCBPcmlnaW4oKSwgYXJndW1lbnRBLCBhcmd1bWVudEIpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJs
ZT4ocHJvYywgYSwgYiksIGJpdEFuZERvdWJsZShhLCBiKSkpOwogfQpAQCAtMjQxNCw3ICsyNDIy
LDcgQEAgdm9pZCB0ZXN0Qml0QW5kSW1tc0RvdWJsZShkb3VibGUgYSwgZG91YgogICAgIFZhbHVl
KiBhcmd1bWVudEEgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIGEpOwogICAgIFZhbHVlKiBhcmd1bWVudEIgPSByb290LT5hcHBlbmROZXc8Q29uc3RE
b3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdEFuZCwgT3JpZ2luKCksIGFyZ3VtZW50QSwgYXJn
dW1lbnRCKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29t
cGlsZUFuZFJ1bjxkb3VibGU+KHByb2MpLCBiaXRBbmREb3VibGUoYSwgYikpKTsKIH0KQEAgLTI0
MzIsNyArMjQ0MCw3IEBAIHZvaWQgdGVzdEJpdEFuZEFyZ0Zsb2F0KGZsb2F0IGEpCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApKSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQml0QW5kLCBPcmlnaW4oKSwgYXJndW1lbnQsIGFyZ3VtZW50KTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxm
bG9hdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0QW5kRmxvYXQoYSwgYSkp
KTsKIH0KQEAgLTI0NDgsNyArMjQ1Niw3IEBAIHZvaWQgdGVzdEJpdEFuZEFyZ3NGbG9hdChmbG9h
dCBhLCBmbG9hdCAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywg
T3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSkpKTsKICAgICBWYWx1ZSogcmVz
dWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXRBbmQsIE9yaWdpbigpLCBhcmd1
bWVudEEsIGFyZ3VtZW50Qik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGlzSWRl
bnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90Pihh
KSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0QW5kRmxvYXQoYSwgYikpKTsKIH0KQEAg
LTI0NjIsNyArMjQ3MCw3IEBAIHZvaWQgdGVzdEJpdEFuZEFyZ0ltbUZsb2F0KGZsb2F0IGEsIGZs
b2EKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSkpOwogICAgIFZhbHVlKiBhcmd1bWVudEIg
PSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7CiAg
ICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0QW5kLCBP
cmlnaW4oKSwgYXJndW1lbnRBLCBhcmd1bWVudEIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAg
ICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jLCBiaXR3aXNlX2Nh
c3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSksIGJpdEFuZEZsb2F0KGEs
IGIpKSk7CiB9CkBAIC0yNDc0LDcgKzI0ODIsNyBAQCB2b2lkIHRlc3RCaXRBbmRJbW1zRmxvYXQo
ZmxvYXQgYSwgZmxvYXQgCiAgICAgVmFsdWUqIGFyZ3VtZW50QSA9IHJvb3QtPmFwcGVuZE5ldzxD
b25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogYXJndW1lbnRC
ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwog
ICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdEFuZCwg
T3JpZ2luKCksIGFyZ3VtZW50QSwgYXJndW1lbnRCKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAg
ICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYyksIGJpdEFuZEZs
b2F0KGEsIGIpKSk7CiB9CkBAIC0yNDkzLDcgKzI1MDEsNyBAQCB2b2lkIHRlc3RCaXRBbmRBcmdz
RmxvYXRXaXRoVXNlbGVzc0RvdWJsCiAgICAgVmFsdWUqIGFyZ3VtZW50QmFzRG91YmxlID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgYXJndW1l
bnRCKTsKICAgICBWYWx1ZSogZG91YmxlUmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBCaXRBbmQsIE9yaWdpbigpLCBhcmd1bWVudEFhc0RvdWJsZSwgYXJndW1lbnRCYXNEb3Vi
bGUpOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIGRvdWJsZVJlc3VsdCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBmbG9hdFJlc3VsdCk7CiAKICAgICBkb3VibGUgZG91YmxlQSA9IGE7CiAgICAgZG91YmxlIGRv
dWJsZUIgPSBiOwpAQCAtMjUwNSw3ICsyNTEzLDcgQEAgdm9pZCB0ZXN0Qml0T3JBcmdzKGludDY0
X3QgYSwgaW50NjRfdCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgQml0T3IsIE9yaWdpbigpLApAQCAtMjUyMCw3ICsyNTI4LDcgQEAgdm9pZCB0ZXN0
Qml0T3JTYW1lQXJnKGludDY0X3QgYSkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRP
ciwgT3JpZ2luKCksCkBAIC0yNTM0LDcgKzI1NDIsNyBAQCB2b2lkIHRlc3RCaXRPckltbXMoaW50
NjRfdCBhLCBpbnQ2NF90IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCksCkBAIC0yNTQ4LDcgKzI1NTYsNyBAQCB2b2lkIHRl
c3RCaXRPckFyZ0ltbShpbnQ2NF90IGEsIGludDY0X3QgCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCksCkBAIC0yNTYyLDcgKzI1
NzAsNyBAQCB2b2lkIHRlc3RCaXRPckltbUFyZyhpbnQ2NF90IGEsIGludDY0X3QgCiB7CiAgICAg
UHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCks
CkBAIC0yNTgwLDcgKzI1ODgsNyBAQCB2b2lkIHRlc3RCaXRPckJpdE9yQXJnSW1tSW1tKGludDY0
X3QgYSwgCiAgICAgICAgIHByb2MsIEJpdE9yLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjApLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmln
aW4oKSwgYikpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdE9y
LCBPcmlnaW4oKSwKQEAgLTI1OTgsNyArMjYwNiw3IEBAIHZvaWQgdGVzdEJpdE9ySW1tQml0T3JB
cmdJbW0oaW50NjRfdCBhLCAKICAgICAgICAgcHJvYywgQml0T3IsIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+
KHByb2MsIE9yaWdpbigpLCBjKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgQml0T3IsIE9yaWdpbigpLApAQCAtMjYxMiw3ICsyNjIwLDcgQEAgdm9pZCB0ZXN0Qml0
T3JBcmdzMzIoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgQml0T3IsIE9yaWdpbigpLApAQCAtMjYzMyw3ICsyNjQxLDcgQEAgdm9p
ZCB0ZXN0Qml0T3JTYW1lQXJnMzIoaW50IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBCaXRPciwgT3JpZ2luKCksCkBAIC0yNjQ3LDcgKzI2NTUsNyBAQCB2b2lkIHRlc3RC
aXRPckltbXMzMihpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCksCkBAIC0yNjYxLDcgKzI2NjksNyBAQCB2
b2lkIHRlc3RCaXRPckFyZ0ltbTMyKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdE9yLCBPcmlnaW4oKSwKQEAgLTI2NzcsNyAr
MjY4NSw3IEBAIHZvaWQgdGVzdEJpdE9ySW1tQXJnMzIoaW50IGEsIGludCBiKQogewogICAgIFBy
b2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0T3IsIE9yaWdpbigpLApA
QCAtMjY5OSw3ICsyNzA3LDcgQEAgdm9pZCB0ZXN0Qml0T3JCaXRPckFyZ0ltbUltbTMyKGludCBh
LCBpbgogICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjph
cmd1bWVudEdQUjApKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIGIpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBCaXRPciwgT3JpZ2luKCksCkBAIC0yNzE5LDcgKzI3MjcsNyBAQCB2b2lkIHRlc3RCaXRPcklt
bUJpdE9yQXJnSW1tMzIoaW50IGEsIGluCiAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2lu
KCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYykpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIEJpdE9yLCBPcmlnaW4oKSwKQEAgLTI3MzMsNyArMjc0MSw3
IEBAIHZvaWQgdGVzdEJpdFhvckFyZ3MoaW50NjRfdCBhLCBpbnQ2NF90IGIKIHsKICAgICBQcm9j
ZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCkBA
IC0yNzQ4LDcgKzI3NTYsNyBAQCB2b2lkIHRlc3RCaXRYb3JTYW1lQXJnKGludDY0X3QgYSkKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjc2Miw3ICsy
NzcwLDcgQEAgdm9pZCB0ZXN0Qml0WG9ySW1tcyhpbnQ2NF90IGEsIGludDY0X3QgYgogewogICAg
IFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4o
KSwKQEAgLTI3NzYsNyArMjc4NCw3IEBAIHZvaWQgdGVzdEJpdFhvckFyZ0ltbShpbnQ2NF90IGEs
IGludDY0X3QKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IEJpdFhvciwgT3JpZ2luKCksCkBAIC0yNzkwLDcgKzI3OTgsNyBAQCB2b2lkIHRlc3RCaXRYb3JJ
bW1BcmcoaW50NjRfdCBhLCBpbnQ2NF90CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjgwOCw3ICsyODE2LDcgQEAg
dm9pZCB0ZXN0Qml0WG9yQml0WG9yQXJnSW1tSW1tKGludDY0X3QgYQogICAgICAgICBwcm9jLCBC
aXRYb3IsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKSk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTI4MjYs
NyArMjgzNCw3IEBAIHZvaWQgdGVzdEJpdFhvckltbUJpdFhvckFyZ0ltbShpbnQ2NF90IGEKICAg
ICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYykp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2lu
KCksCkBAIC0yODQwLDcgKzI4NDgsNyBAQCB2b2lkIHRlc3RCaXRYb3JBcmdzMzIoaW50IGEsIGlu
dCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0
WG9yLCBPcmlnaW4oKSwKQEAgLTI4NjEsNyArMjg2OSw3IEBAIHZvaWQgdGVzdEJpdFhvclNhbWVB
cmczMihpbnQgYSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwg
T3JpZ2luKCksCkBAIC0yODc1LDcgKzI4ODMsNyBAQCB2b2lkIHRlc3RCaXRYb3JJbW1zMzIoaW50
IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTI4ODksNyArMjg5Nyw3IEBAIHZvaWQgdGVzdEJpdFhv
ckFyZ0ltbTMyKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCkBAIC0yOTA1LDcgKzI5MTMsNyBAQCB2
b2lkIHRlc3RCaXRYb3JJbW1BcmczMihpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHBy
b2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjkyNyw3
ICsyOTM1LDcgQEAgdm9pZCB0ZXN0Qml0WG9yQml0WG9yQXJnSW1tSW1tMzIoaW50IGEsIAogICAg
ICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIGIpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRYb3Is
IE9yaWdpbigpLApAQCAtMjk0Nyw3ICsyOTU1LDcgQEAgdm9pZCB0ZXN0Qml0WG9ySW1tQml0WG9y
QXJnSW1tMzIoaW50IGEsIAogICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAg
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGMpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjk2MSw3ICsyOTY5LDcgQEAgdm9p
ZCB0ZXN0Qml0Tm90QXJnKGludDY0X3QgYSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCkBAIC0yOTc1LDcgKzI5ODMsNyBA
QCB2b2lkIHRlc3RCaXROb3RJbW0oaW50NjRfdCBhKQogewogICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTI5OTUsNyArMzAw
Myw3IEBAIHZvaWQgdGVzdEJpdE5vdE1lbShpbnQ2NF90IGEpCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMSksCiAgICAgICAgIGxvYWQpOwog
ICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCBu
b3RMb2FkLCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgMCkpOwogCiAgICAgaW50NjRfdCBpbnB1dCA9IGE7CiAgICAgY29tcGlsZUFuZFJ1bjxpbnQz
Ml90Pihwcm9jLCAmaW5wdXQpOwpAQCAtMzAwOCw3ICszMDE2LDcgQEAgdm9pZCB0ZXN0Qml0Tm90
QXJnMzIoaW50MzJfdCBhKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVu
YywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEJpdFhvciwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTEpLApAQCAtMzAyMCw3ICszMDI4LDcgQEAg
dm9pZCB0ZXN0Qml0Tm90SW1tMzIoaW50MzJfdCBhKQogewogICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTMwNDAsNyArMzA0
OCw3IEBAIHZvaWQgdGVzdEJpdE5vdE1lbTMyKGludDMyX3QgYSkKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xKSwKICAgICAgICAgbG9hZCk7
CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCks
IG5vdExvYWQsIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAwKSk7CiAKICAgICBpbnQzMl90IGlucHV0ID0gYTsKICAgICBjb21waWxlQW5kUnVuPGlu
dDMyX3Q+KHByb2MsICZpbnB1dCk7CkBAIC0zMDYzLDE2ICszMDcxLDE2IEBAIHZvaWQgdGVzdEJp
dE5vdE9uQm9vbGVhbkFuZEJyYW5jaDMyKGludDYKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xKSwKICAgICAgICAgYXJnc0FyZUVxdWFsKTsK
IAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAg
YXJnc0FyZU5vdEVxdWFsLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVx
dWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAtNDIpKTsKIApAQCAtMzA4NCw3ICszMDky
LDcgQEAgdm9pZCB0ZXN0U2hsQXJncyhpbnQ2NF90IGEsIGludDY0X3QgYikKIHsKICAgICBQcm9j
ZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNobCwgT3JpZ2luKCksCkBAIC0z
MTAwLDcgKzMxMDgsNyBAQCB2b2lkIHRlc3RTaGxJbW1zKGludDY0X3QgYSwgaW50NjRfdCBiKQog
ewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2hsLCBPcmln
aW4oKSwKQEAgLTMxMTQsNyArMzEyMiw3IEBAIHZvaWQgdGVzdFNobEFyZ0ltbShpbnQ2NF90IGEs
IGludDY0X3QgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIFNobCwgT3JpZ2luKCksCkBAIC0zMTMxLDcgKzMxMzksNyBAQCB2b2lkIHRlc3RTaGxBcmcz
MihpbnQzMl90IGEpCiAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTaGwsIE9yaWdpbigpLCB2YWx1ZSwgdmFsdWUp
KTsKIApAQCAtMzE0Miw3ICszMTUwLDcgQEAgdm9pZCB0ZXN0U2hsQXJnczMyKGludDMyX3QgYSwg
aW50MzJfdCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgU2hsLCBPcmlnaW4oKSwKQEAgLTMxNjAsNyArMzE2OCw3IEBAIHZvaWQgdGVzdFNobEltbXMz
MihpbnQzMl90IGEsIGludDMyX3QgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIFNobCwgT3JpZ2luKCksCkBAIC0zMTc0LDcgKzMxODIsNyBAQCB2b2lk
IHRlc3RTaGxBcmdJbW0zMihpbnQzMl90IGEsIGludDMyX3QgCiB7CiAgICAgUHJvY2VkdXJlIHBy
b2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTaGwsIE9yaWdpbigpLApAQCAtMzE5MCw3ICsz
MTk4LDcgQEAgdm9pZCB0ZXN0U1NockFyZ3MoaW50NjRfdCBhLCBpbnQ2NF90IGIpCiB7CiAgICAg
UHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTU2hyLCBPcmlnaW4oKSwK
QEAgLTMyMDYsNyArMzIxNCw3IEBAIHZvaWQgdGVzdFNTaHJJbW1zKGludDY0X3QgYSwgaW50NjRf
dCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU1No
ciwgT3JpZ2luKCksCkBAIC0zMjIwLDcgKzMyMjgsNyBAQCB2b2lkIHRlc3RTU2hyQXJnSW1tKGlu
dDY0X3QgYSwgaW50NjRfdCBiCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBTU2hyLCBPcmlnaW4oKSwKQEAgLTMyMzcsNyArMzI0NSw3IEBAIHZvaWQgdGVz
dFNTaHJBcmczMihpbnQzMl90IGEpCiAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTU2hyLCBPcmlnaW4oKSwgdmFs
dWUsIHZhbHVlKSk7CiAKQEAgLTMyNDgsNyArMzI1Niw3IEBAIHZvaWQgdGVzdFNTaHJBcmdzMzIo
aW50MzJfdCBhLCBpbnQzMl90IGIKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIFNTaHIsIE9yaWdpbigpLApAQCAtMzI2Niw3ICszMjc0LDcgQEAgdm9pZCB0
ZXN0U1NockltbXMzMihpbnQzMl90IGEsIGludDMyX3QgYgogewogICAgIFByb2NlZHVyZSBwcm9j
OwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU1NociwgT3JpZ2luKCksCkBAIC0zMjgwLDcgKzMy
ODgsNyBAQCB2b2lkIHRlc3RTU2hyQXJnSW1tMzIoaW50MzJfdCBhLCBpbnQzMl90CiB7CiAgICAg
UHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTU2hyLCBPcmlnaW4oKSwK
QEAgLTMyOTYsNyArMzMwNCw3IEBAIHZvaWQgdGVzdFpTaHJBcmdzKHVpbnQ2NF90IGEsIHVpbnQ2
NF90IGIKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFpT
aHIsIE9yaWdpbigpLApAQCAtMzMxMiw3ICszMzIwLDcgQEAgdm9pZCB0ZXN0WlNockltbXModWlu
dDY0X3QgYSwgdWludDY0X3QgYgogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgcHJvYywgWlNociwgT3JpZ2luKCksCkBAIC0zMzI2LDcgKzMzMzQsNyBAQCB2b2lkIHRl
c3RaU2hyQXJnSW1tKHVpbnQ2NF90IGEsIHVpbnQ2NF90CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBaU2hyLCBPcmlnaW4oKSwKQEAgLTMzNDMsNyArMzM1
MSw3IEBAIHZvaWQgdGVzdFpTaHJBcmczMih1aW50MzJfdCBhKQogICAgIFZhbHVlKiB2YWx1ZSA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgWlNo
ciwgT3JpZ2luKCksIHZhbHVlLCB2YWx1ZSkpOwogCkBAIC0zMzU0LDcgKzMzNjIsNyBAQCB2b2lk
IHRlc3RaU2hyQXJnczMyKHVpbnQzMl90IGEsIHVpbnQzMl90CiB7CiAgICAgUHJvY2VkdXJlIHBy
b2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBaU2hyLCBPcmlnaW4oKSwKQEAgLTMzNzIsNyAr
MzM4MCw3IEBAIHZvaWQgdGVzdFpTaHJJbW1zMzIodWludDMyX3QgYSwgdWludDMyX3QKIHsKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFpTaHIsIE9yaWdpbigp
LApAQCAtMzM4Niw3ICszMzk0LDcgQEAgdm9pZCB0ZXN0WlNockFyZ0ltbTMyKHVpbnQzMl90IGEs
IHVpbnQzMgogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
WlNociwgT3JpZ2luKCksCkBAIC0zNDE5LDcgKzM0MjcsNyBAQCB2b2lkIHRlc3RDbHpBcmc2NChp
bnQ2NF90IGEpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBW
YWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIGNselZhbHVlID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDbHosIE9yaWdpbigpLCBhcmd1bWVudCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
Y2x6VmFsdWUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBjbHpWYWx1ZSk7CiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjx1bnNpZ25lZD4o
cHJvYywgYSkgPT0gY291bnRMZWFkaW5nWmVybyhhKSk7CiB9CiAKQEAgLTM0MzAsNyArMzQzOCw3
IEBAIHZvaWQgdGVzdENsek1lbTY0KGludDY0X3QgYSkKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKTsKICAgICBNZW1vcnlWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8
TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDY0LCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAg
VmFsdWUqIGNselZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDbHosIE9yaWdp
bigpLCB2YWx1ZSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgY2x6VmFsdWUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjbHpWYWx1ZSk7CiAgICAgQ0hFQ0soY29tcGlsZUFu
ZFJ1bjx1bnNpZ25lZD4ocHJvYywgJmEpID09IGNvdW50TGVhZGluZ1plcm8oYSkpOwogfQogCkBA
IC0zNDQxLDcgKzM0NDksNyBAQCB2b2lkIHRlc3RDbHpBcmczMihpbnQzMl90IGEpCiAgICAgVmFs
dWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgVmFsdWUqIGNselZhbHVlID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDbHosIE9yaWdpbigpLCBhcmd1bWVudCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2x6
VmFsdWUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBjbHpWYWx1ZSk7CiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjx1bnNpZ25lZD4ocHJv
YywgYSkgPT0gY291bnRMZWFkaW5nWmVybyhhKSk7CiB9CiAKQEAgLTM0NTIsNyArMzQ2MCw3IEBA
IHZvaWQgdGVzdENsek1lbTMyKGludDMyX3QgYSkKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKTsKICAgICBNZW1vcnlWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8TWVt
b3J5VmFsdWU+KHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAgVmFs
dWUqIGNselZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDbHosIE9yaWdpbigp
LCB2YWx1ZSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgY2x6VmFsdWUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjbHpWYWx1ZSk7CiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1
bjx1bnNpZ25lZD4ocHJvYywgJmEpID09IGNvdW50TGVhZGluZ1plcm8oYSkpOwogfQogCkBAIC0z
NDYwLDcgKzM0NjgsNyBAQCB2b2lkIHRlc3RBYnNBcmcoZG91YmxlIGEpCiB7CiAgICAgUHJvY2Vk
dXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBYnMsIE9yaWdpbigpLApAQCAtMzQ3
NCw3ICszNDgyLDcgQEAgdm9pZCB0ZXN0QWJzSW1tKGRvdWJsZSBhKQogICAgIFByb2NlZHVyZSBw
cm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUq
IGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBhKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBPcmlnaW4oKSwgYXJndW1l
bnQpKTsKIApAQCAtMzQ4Nyw3ICszNDk1LDcgQEAgdm9pZCB0ZXN0QWJzTWVtKGRvdWJsZSBhKQog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFkZHJl
c3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWREb3VibGUgPSByb290
LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIERvdWJsZSwgT3JpZ2luKCksIGFk
ZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdpbigpLCBsb2FkRG91
YmxlKSk7CiAKQEAgLTM1MDEsNyArMzUwOSw3IEBAIHZvaWQgdGVzdEFic0Fic0FyZyhkb3VibGUg
YSkKICAgICBWYWx1ZSogZmlyc3RBYnMgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFi
cywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKSk7CiAgICAgVmFsdWUqIHNlY29u
ZEFicyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBPcmlnaW4oKSwgZmlyc3RB
YnMpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHNlY29uZEFicyk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHNlY29uZEFicyk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChj
b21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgYSksIGZhYnMoYSkpKTsKIH0KQEAgLTM1MTMsNyAr
MzUyMSw3IEBAIHZvaWQgdGVzdEFic0JpdHdpc2VDYXN0QXJnKGRvdWJsZSBhKQogICAgIFZhbHVl
KiBhcmd1bWVudEFzSW50NjQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50
QXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmln
aW4oKSwgYXJndW1lbnRBc0ludDY0KTsKICAgICBWYWx1ZSogYWJzVmFsdWUgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEFicywgT3JpZ2luKCksIGFyZ3VtZW50QXNEb3VibGUpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFi
c1ZhbHVlKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgYWJzVmFsdWUpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1
bjxkb3VibGU+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQ2NF90PihhKSksIGZhYnMoYSkpKTsKIH0K
QEAgLTM1MjcsNyArMzUzNSw3IEBAIHZvaWQgdGVzdEJpdHdpc2VDYXN0QWJzQml0d2lzZUNhc3RB
cmcoZG8KICAgICBWYWx1ZSogYWJzVmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEFicywgT3JpZ2luKCksIGFyZ3VtZW50QXNEb3VibGUpOwogICAgIFZhbHVlKiByZXN1bHRBc0lu
dDY0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCks
IGFic1ZhbHVlKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdEFzSW50NjQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHRBc0ludDY0KTsKIAogICAgIGlu
dDY0X3QgZXhwZWN0ZWRSZXN1bHQgPSBiaXR3aXNlX2Nhc3Q8aW50NjRfdD4oZmFicyhhKSk7CiAg
ICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCBiaXR3aXNl
X2Nhc3Q8aW50NjRfdD4oYSkpLCBleHBlY3RlZFJlc3VsdCkpOwpAQCAtMzU0Miw3ICszNTUwLDcg
QEAgdm9pZCB0ZXN0QWJzQXJnKGZsb2F0IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIp
OwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFicywg
T3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQz
Mik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50
MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMy
X3Q+KHN0YXRpY19jYXN0PGZsb2F0PihmYWJzKGEpKSkpKTsKIH0KQEAgLTM1NTQsNyArMzU2Miw3
IEBAIHZvaWQgdGVzdEFic0ltbShmbG9hdCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3Qt
PmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1
ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdpbigpLCBh
cmd1bWVudCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQz
Mik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2Ms
IGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihzdGF0aWNf
Y2FzdDxmbG9hdD4oZmFicyhhKSkpKSk7CiB9CkBAIC0zNTY3LDcgKzM1NzUsNyBAQCB2b2lkIHRl
c3RBYnNNZW0oZmxvYXQgYSkKICAgICBNZW1vcnlWYWx1ZSogbG9hZEZsb2F0ID0gcm9vdC0+YXBw
ZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBGbG9hdCwgT3JpZ2luKCksIGFkZHJlc3Mp
OwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFicywg
T3JpZ2luKCksIGxvYWRGbG9hdCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGlu
dDMyX3Q+KHByb2MsICZhKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0PGZsb2F0
PihmYWJzKGEpKSkpKTsKIH0KQEAgLTM1ODEsNyArMzU4OSw3IEBAIHZvaWQgdGVzdEFic0Fic0Fy
ZyhmbG9hdCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1ZSogZmly
c3RBYnMgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFicywgT3JpZ2luKCksIGFyZ3Vt
ZW50KTsKICAgICBWYWx1ZSogc2Vjb25kQWJzID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBBYnMsIE9yaWdpbigpLCBmaXJzdEFicyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kQWJzKTsKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kQWJzKTsKIAog
ICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsIGJpdHdpc2Vf
Y2FzdDxpbnQzMl90PihhKSksIHN0YXRpY19jYXN0PGZsb2F0PihmYWJzKGEpKSkpOwogfQpAQCAt
MzU5NCw3ICszNjAyLDcgQEAgdm9pZCB0ZXN0QWJzQml0d2lzZUNhc3RBcmcoZmxvYXQgYSkKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSogYXJndW1lbnRBc2Zsb2F0ID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50
QXNJbnQzMik7CiAgICAgVmFsdWUqIGFic1ZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBBYnMsIE9yaWdpbigpLCBhcmd1bWVudEFzZmxvYXQpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFic1ZhbHVlKTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWJzVmFs
dWUpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYywg
Yml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGZhYnMoYSkpKSk7
CiB9CkBAIC0zNjA5LDcgKzM2MTcsNyBAQCB2b2lkIHRlc3RCaXR3aXNlQ2FzdEFic0JpdHdpc2VD
YXN0QXJnKGZsCiAgICAgVmFsdWUqIGFic1ZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBBYnMsIE9yaWdpbigpLCBhcmd1bWVudEFzZmxvYXQpOwogICAgIFZhbHVlKiByZXN1bHRB
c0ludDY0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2lu
KCksIGFic1ZhbHVlKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdEFzSW50NjQpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHRBc0ludDY0KTsKIAogICAg
IGludDMyX3QgZXhwZWN0ZWRSZXN1bHQgPSBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nh
c3Q8ZmxvYXQ+KGZhYnMoYSkpKTsKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVu
PGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGV4cGVjdGVkUmVzdWx0
KSk7CkBAIC0zNjI2LDcgKzM2MzQsNyBAQCB2b2lkIHRlc3RBYnNBcmdXaXRoVXNlbGVzc0RvdWJs
ZUNvbnZlcnNpCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQWJzLCBPcmlnaW4oKSwgYXNEb3VibGUpOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIHJlc3Vs
dCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBC
aXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMy
KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywg
Yml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRpY19j
YXN0PGZsb2F0PihmYWJzKGEpKSkpKTsKIH0KQEAgLTM2NDQsNyArMzY1Miw3IEBAIHZvaWQgdGVz
dEFic0FyZ1dpdGhFZmZlY3RmdWxEb3VibGVDb252ZXIKICAgICBWYWx1ZSogcmVzdWx0MzIgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRS
ZXN1bHQpOwogICAgIFZhbHVlKiBkb3VibGVBZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwogICAg
IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1
bHQsIGRvdWJsZUFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgZG91Ymxl
IGVmZmVjdCA9IDA7CiAgICAgaW50MzJfdCByZXN1bHRWYWx1ZSA9IGNvbXBpbGVBbmRSdW48aW50
MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCAmZWZmZWN0KTsKQEAgLTM2NTYs
NyArMzY2NCw3IEBAIHZvaWQgdGVzdENlaWxBcmcoZG91YmxlIGEpCiB7CiAgICAgUHJvY2VkdXJl
IHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBDZWlsLCBPcmlnaW4oKSwKQEAgLTM2NzAs
NyArMzY3OCw3IEBAIHZvaWQgdGVzdENlaWxJbW0oZG91YmxlIGEpCiAgICAgUHJvY2VkdXJlIHBy
b2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSog
YXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIGEpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDZWlsLCBPcmlnaW4oKSwgYXJndW1l
bnQpKTsKIApAQCAtMzY4Myw3ICszNjkxLDcgQEAgdm9pZCB0ZXN0Q2VpbE1lbShkb3VibGUgYSkK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhZGRy
ZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkRG91YmxlID0gcm9v
dC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBEb3VibGUsIE9yaWdpbigpLCBh
ZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCksIGxvYWRE
b3VibGUpKTsKIApAQCAtMzY5Nyw3ICszNzA1LDcgQEAgdm9pZCB0ZXN0Q2VpbENlaWxBcmcoZG91
YmxlIGEpCiAgICAgVmFsdWUqIGZpcnN0Q2VpbCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQ2VpbCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKSk7CiAgICAgVmFsdWUq
IHNlY29uZENlaWwgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigp
LCBmaXJzdENlaWwpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHNlY29uZENlaWwpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmRDZWlsKTsKIAogICAgIENIRUNLKGlz
SWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBhKSwgY2VpbChhKSkpOwogfQpA
QCAtMzcwOSw3ICszNzE3LDcgQEAgdm9pZCB0ZXN0Rmxvb3JDZWlsQXJnKGRvdWJsZSBhKQogICAg
IFZhbHVlKiBmaXJzdENlaWwgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCkpOwogICAgIFZhbHVlKiB3cmFwcGluZ0Zs
b29yID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGZpcnN0
Q2VpbCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgd3JhcHBpbmdGbG9vcik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHdyYXBwaW5nRmxvb3IpOwogCiAgICAgQ0hFQ0soaXNJ
ZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIGEpLCBjZWlsKGEpKSk7CiB9CkBA
IC0zNzIxLDcgKzM3MjksNyBAQCB2b2lkIHRlc3RDZWlsSVRvRDY0KGludDY0X3QgYSkKICAgICBW
YWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50QXNE
b3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBhcmd1
bWVudCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCksIGFyZ3Vt
ZW50QXNEb3VibGUpKTsKIApAQCAtMzczNiw3ICszNzQ0LDcgQEAgdm9pZCB0ZXN0Q2VpbElUb0Qz
MihpbnQ2NF90IGEpCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgVmFsdWUqIGFyZ3Vt
ZW50QXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigp
LCBhcmd1bWVudCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCks
IGFyZ3VtZW50QXNEb3VibGUpKTsKIApAQCAtMzc1Miw3ICszNzYwLDcgQEAgdm9pZCB0ZXN0Q2Vp
bEFyZyhmbG9hdCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1ZSog
cmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDZWlsLCBPcmlnaW4oKSwgYXJn
dW1lbnQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIp
OwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBi
aXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oY2VpbGYoYSkp
KSk7CiB9CkBAIC0zNzY0LDcgKzM3NzIsNyBAQCB2b2lkIHRlc3RDZWlsSW1tKGZsb2F0IGEpCiAg
ICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHJlc3VsdDMy
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJl
c3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChj
b21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJp
dHdpc2VfY2FzdDxpbnQzMl90PihjZWlsZihhKSkpKTsKIH0KQEAgLTM3NzcsNyArMzc4NSw3IEBA
IHZvaWQgdGVzdENlaWxNZW0oZmxvYXQgYSkKICAgICBNZW1vcnlWYWx1ZSogbG9hZEZsb2F0ID0g
cm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBGbG9hdCwgT3JpZ2luKCks
IGFkZHJlc3MpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIENlaWwsIE9yaWdpbigpLCBsb2FkRmxvYXQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGls
ZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCAmYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihjZWlsZihh
KSkpKTsKIH0KQEAgLTM3OTEsNyArMzc5OSw3IEBAIHZvaWQgdGVzdENlaWxDZWlsQXJnKGZsb2F0
IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBC
aXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiBmaXJzdENlaWwg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBhcmd1bWVudCk7
CiAgICAgVmFsdWUqIHNlY29uZENlaWwgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENl
aWwsIE9yaWdpbigpLCBmaXJzdENlaWwpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZENlaWwpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmRDZWlsKTsKIAog
ICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsIGJpdHdpc2Vf
Y2FzdDxpbnQzMl90PihhKSksIGNlaWxmKGEpKSk7CiB9CkBAIC0zODA1LDcgKzM4MTMsNyBAQCB2
b2lkIHRlc3RGbG9vckNlaWxBcmcoZmxvYXQgYSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQz
Mik7CiAgICAgVmFsdWUqIGZpcnN0Q2VpbCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
Q2VpbCwgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBWYWx1ZSogd3JhcHBpbmdGbG9vciA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBmaXJzdENlaWwpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHdyYXBwaW5nRmxvb3IpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCB3cmFwcGluZ0Zsb29yKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2Fs
KGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGNl
aWxmKGEpKSk7CiB9CkBAIC0zODIxLDcgKzM4MjksNyBAQCB2b2lkIHRlc3RDZWlsQXJnV2l0aFVz
ZWxlc3NEb3VibGVDb252ZXJzCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCksIGFzRG91YmxlKTsKICAgICBWYWx1ZSogZmxvYXRS
ZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdp
bigpLCByZXN1bHQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMy
X3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90
PihjZWlsZihhKSkpKTsKIH0KQEAgLTM4MzksNyArMzg0Nyw3IEBAIHZvaWQgdGVzdENlaWxBcmdX
aXRoRWZmZWN0ZnVsRG91YmxlQ29udmUKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwog
ICAgIFZhbHVlKiBkb3VibGVBZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwogICAgIHJvb3QtPmFw
cGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGRvdWJs
ZUFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgZG91YmxlIGVmZmVjdCA9
IDA7CiAgICAgaW50MzJfdCByZXN1bHRWYWx1ZSA9IGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJv
YywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCAmZWZmZWN0KTsKQEAgLTM4NTEsNyArMzg1OSw3
IEBAIHZvaWQgdGVzdEZsb29yQXJnKGRvdWJsZSBhKQogewogICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KAogICAgICAgICAgICAgcHJvYywgRmxvb3IsIE9yaWdpbigpLApAQCAtMzg2NSw3ICszODcz
LDcgQEAgdm9pZCB0ZXN0Rmxvb3JJbW0oZG91YmxlIGEpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1l
bnQgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGFyZ3VtZW50KSk7
CiAKQEAgLTM4NzgsNyArMzg4Niw3IEBAIHZvaWQgdGVzdEZsb29yTWVtKGRvdWJsZSBhKQogICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFkZHJlc3Mg
PSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWREb3VibGUgPSByb290LT5h
cHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIERvdWJsZSwgT3JpZ2luKCksIGFkZHJl
c3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGxvYWREb3Vi
bGUpKTsKIApAQCAtMzg5Miw3ICszOTAwLDcgQEAgdm9pZCB0ZXN0Rmxvb3JGbG9vckFyZyhkb3Vi
bGUgYSkKICAgICBWYWx1ZSogZmlyc3RGbG9vciA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgRmxvb3IsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCkpOwogICAgIFZhbHVl
KiBzZWNvbmRGbG9vciA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdp
bigpLCBmaXJzdEZsb29yKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmRGbG9vcik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZEZsb29yKTsKIAogICAgIENI
RUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBhKSwgZmxvb3IoYSkp
KTsKIH0KQEAgLTM5MDQsNyArMzkxMiw3IEBAIHZvaWQgdGVzdENlaWxGbG9vckFyZyhkb3VibGUg
YSkKICAgICBWYWx1ZSogZmlyc3RGbG9vciA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
Rmxvb3IsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCkpOwogICAgIFZhbHVlKiB3
cmFwcGluZ0NlaWwgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigp
LCBmaXJzdEZsb29yKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCB3cmFwcGluZ0NlaWwpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB3cmFwcGluZ0NlaWwpOwogCiAgICAgQ0hF
Q0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIGEpLCBmbG9vcihhKSkp
OwogfQpAQCAtMzkxNiw3ICszOTI0LDcgQEAgdm9pZCB0ZXN0Rmxvb3JJVG9ENjQoaW50NjRfdCBh
KQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBWYWx1ZSogYXJn
dW1lbnRBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2lu
KCksIGFyZ3VtZW50KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2lu
KCksIGFyZ3VtZW50QXNEb3VibGUpKTsKIApAQCAtMzkzMSw3ICszOTM5LDcgQEAgdm9pZCB0ZXN0
Rmxvb3JJVG9EMzIoaW50NjRfdCBhKQogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZh
bHVlKiBhcmd1bWVudEFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9E
LCBPcmlnaW4oKSwgYXJndW1lbnQpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29y
LCBPcmlnaW4oKSwgYXJndW1lbnRBc0RvdWJsZSkpOwogCkBAIC0zOTQ3LDcgKzM5NTUsNyBAQCB2
b2lkIHRlc3RGbG9vckFyZyhmbG9hdCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsK
ICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwg
T3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQz
Mik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50
MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMy
X3Q+KGZsb29yZihhKSkpKTsKIH0KQEAgLTM5NTksNyArMzk2Nyw3IEBAIHZvaWQgdGVzdEZsb29y
SW1tKGZsb2F0IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0
RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAg
IFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNh
c3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hF
Q0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oZmxvb3JmKGEpKSkpOwogfQpAQCAt
Mzk3Miw3ICszOTgwLDcgQEAgdm9pZCB0ZXN0Rmxvb3JNZW0oZmxvYXQgYSkKICAgICBNZW1vcnlW
YWx1ZSogbG9hZEZsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2Fk
LCBGbG9hdCwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgbG9hZEZsb2F0KTsKICAgICBW
YWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0
LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNL
KGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgJmEpLCBiaXR3aXNlX2Nh
c3Q8aW50MzJfdD4oZmxvb3JmKGEpKSkpOwogfQpAQCAtMzk4Niw3ICszOTk0LDcgQEAgdm9pZCB0
ZXN0Rmxvb3JGbG9vckFyZyhmbG9hdCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsK
ICAgICBWYWx1ZSogZmlyc3RGbG9vciA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxv
b3IsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHNlY29uZEZsb29yID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGZpcnN0Rmxvb3IpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNl
Y29uZEZsb29yKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgc2Vjb25kRmxvb3IpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGls
ZUFuZFJ1bjxmbG9hdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgZmxvb3JmKGEp
KSk7CiB9CkBAIC00MDAwLDcgKzQwMDgsNyBAQCB2b2lkIHRlc3RDZWlsRmxvb3JBcmcoZmxvYXQg
YSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJp
dHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUqIGZpcnN0Rmxvb3Ig
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgYXJndW1lbnQp
OwogICAgIFZhbHVlKiB3cmFwcGluZ0NlaWwgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IENlaWwsIE9yaWdpbigpLCBmaXJzdEZsb29yKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB3cmFwcGluZ0NlaWwpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB3cmFwcGluZ0Nl
aWwpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYywg
Yml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgZmxvb3JmKGEpKSk7CiB9CkBAIC00MDE2LDcgKzQw
MjQsNyBAQCB2b2lkIHRlc3RGbG9vckFyZ1dpdGhVc2VsZXNzRG91YmxlQ29udmVyCiAgICAgVmFs
dWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigp
LCBhc0RvdWJsZSk7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICBWYWx1ZSog
cmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmln
aW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0so
aXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50
MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oZmxvb3JmKGEpKSkpOwogfQpAQCAtNDAz
NCw3ICs0MDQyLDcgQEAgdm9pZCB0ZXN0Rmxvb3JBcmdXaXRoRWZmZWN0ZnVsRG91YmxlQ29udgog
ICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lz
ZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CiAgICAgVmFsdWUqIGRvdWJsZUFkZHJlc3Mg
PSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMSk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9j
LCBTdG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgZG91YmxlQWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQzMik7CiAKICAgICBkb3VibGUgZWZmZWN0ID0gMDsKICAgICBpbnQzMl90IHJlc3VsdFZh
bHVlID0gY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4o
YSksICZlZmZlY3QpOwpAQCAtNDA0Niw3ICs0MDU0LDcgQEAgdm9pZCB0ZXN0U3FydEFyZyhkb3Vi
bGUgYSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNx
cnQsIE9yaWdpbigpLApAQCAtNDA2MCw3ICs0MDY4LDcgQEAgdm9pZCB0ZXN0U3FydEltbShkb3Vi
bGUgYSkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERv
dWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IFNxcnQsIE9yaWdpbigpLCBhcmd1bWVudCkpOwogCkBAIC00MDczLDcgKzQwODEsNyBAQCB2b2lk
IHRlc3RTcXJ0TWVtKGRvdWJsZSBhKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7CiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVtb3J5
VmFsdWUqIGxvYWREb3VibGUgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExv
YWQsIERvdWJsZSwgT3JpZ2luKCksIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBTcXJ0LCBPcmlnaW4oKSwgbG9hZERvdWJsZSkpOwogCkBAIC00MDg5LDcgKzQwOTcsNyBAQCB2
b2lkIHRlc3RTcXJ0QXJnKGZsb2F0IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwog
ICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFNxcnQsIE9y
aWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMy
X3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90
PihzdGF0aWNfY2FzdDxmbG9hdD4oc3FydChhKSkpKSk7CiB9CkBAIC00MTAxLDcgKzQxMDksNyBA
QCB2b2lkIHRlc3RTcXJ0SW1tKGZsb2F0IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+
YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVl
KiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFNxcnQsIE9yaWdpbigpLCBh
cmd1bWVudCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQz
Mik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2Ms
IGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihzdGF0aWNf
Y2FzdDxmbG9hdD4oc3FydChhKSkpKSk7CiB9CkBAIC00MTE0LDcgKzQxMjIsNyBAQCB2b2lkIHRl
c3RTcXJ0TWVtKGZsb2F0IGEpCiAgICAgTWVtb3J5VmFsdWUqIGxvYWRGbG9hdCA9IHJvb3QtPmFw
cGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgRmxvYXQsIE9yaWdpbigpLCBhZGRyZXNz
KTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTcXJ0
LCBPcmlnaW4oKSwgbG9hZEZsb2F0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1
bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48
aW50MzJfdD4ocHJvYywgJmEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8Zmxv
YXQ+KHNxcnQoYSkpKSkpOwogfQpAQCAtNDEzMCw3ICs0MTM4LDcgQEAgdm9pZCB0ZXN0U3FydEFy
Z1dpdGhVc2VsZXNzRG91YmxlQ29udmVycwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIFNxcnQsIE9yaWdpbigpLCBhc0RvdWJsZSk7CiAgICAgVmFsdWUq
IGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0
LCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
c3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1
bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KHNxcnQoYSkpKSkpOwogfQpAQCAtNDE0OCw3ICs0
MTU2LDcgQEAgdm9pZCB0ZXN0U3FydEFyZ1dpdGhFZmZlY3RmdWxEb3VibGVDb252ZQogICAgIFZh
bHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3Qs
IE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CiAgICAgVmFsdWUqIGRvdWJsZUFkZHJlc3MgPSByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMSk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9y
ZSwgT3JpZ2luKCksIHJlc3VsdCwgZG91YmxlQWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQz
Mik7CiAKICAgICBkb3VibGUgZWZmZWN0ID0gMDsKICAgICBpbnQzMl90IHJlc3VsdFZhbHVlID0g
Y29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksICZl
ZmZlY3QpOwpAQCAtNDE3Miw3ICs0MTgwLDcgQEAgdm9pZCB0ZXN0Q29tcGFyZVR3b0Zsb2F0VG9E
b3VibGUoZmxvYXQgYQogICAgIFZhbHVlKiBhcmcyQXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBhcmcyRmxvYXQpOwogICAgIFZh
bHVlKiBlcXVhbCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRXF1YWwsIE9yaWdpbigp
LCBhcmcxQXNEb3VibGUsIGFyZzJBc0RvdWJsZSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBlcXVhbCk7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGVxdWFsKTsKIAogICAg
IENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+
KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpID09IChhID09IGIpKTsKIH0KQEAgLTQxOTAs
NyArNDE5OCw3IEBAIHZvaWQgdGVzdENvbXBhcmVPbmVGbG9hdFRvRG91YmxlKGZsb2F0IGEKICAg
ICBWYWx1ZSogYXJnMkFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiBlcXVh
bCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRXF1YWwsIE9yaWdpbigpLCBhcmcxQXNE
b3VibGUsIGFyZzJBc0RvdWJsZSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBlcXVhbCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGVxdWFsKTsKIAogICAgIENIRUNLKGNv
bXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiKSA9
PSAoYSA9PSBiKSk7CiB9CkBAIC00MjE0LDIzICs0MjIyLDIzIEBAIHZvaWQgdGVzdENvbXBhcmVG
bG9hdFRvRG91YmxlVGhyb3VnaFBoaSgKICAgICBWYWx1ZSogYXJnMkFzRmxvYXQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBhcmcyQXNEb3Vi
bGUpOwogICAgIFZhbHVlKiBhcmcyQXNGUm91bmRlZERvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGFyZzJBc0Zsb2F0KTsKIAotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgY29uZGl0
aW9uLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2so
ZWxzZUNhc2UpKTsKIAogICAgIFVwc2lsb25WYWx1ZSogdGhlblZhbHVlID0gdGhlbkNhc2UtPmFw
cGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhcmcxQXNEb3VibGUpOwotICAg
IHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwg
RnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOwogCiAgICAg
VmFsdWUqIGVsc2VDb25zdCA9IGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIDAuKTsKICAgICBVcHNpbG9uVmFsdWUqIGVsc2VWYWx1ZSA9IGVsc2VD
YXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgZWxzZUNvbnN0KTsK
LSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2lu
KCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKIAog
ICAgIFZhbHVlKiBkb3VibGVJbnB1dCA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhp
LCBEb3VibGUsIE9yaWdpbigpKTsKICAgICB0aGVuVmFsdWUtPnNldFBoaShkb3VibGVJbnB1dCk7
CiAgICAgZWxzZVZhbHVlLT5zZXRQaGkoZG91YmxlSW5wdXQpOwogICAgIFZhbHVlKiBlcXVhbCA9
IHRhaWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRXF1YWwsIE9yaWdpbigpLCBkb3VibGVJbnB1
dCwgYXJnMkFzRlJvdW5kZWREb3VibGUpOwotICAgIHRhaWwtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGVxdWFsKTsKKyAgICB0YWlsLT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZXF1YWwpOwogCiAgICAgYXV0byBj
b2RlID0gY29tcGlsZShwcm9jKTsKICAgICBpbnQzMl90IGludGVnZXJBID0gYml0d2lzZV9jYXN0
PGludDMyX3Q+KGEpOwpAQCAtNDI2MSw3ICs0MjY5LDcgQEAgdm9pZCB0ZXN0RG91YmxlVG9GbG9h
dFRocm91Z2hQaGkoZmxvYXQgdgogICAgIFZhbHVlKiBmbG9hdFZhbHVlID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAg
IFZhbHVlKiBhcmdBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRU
b0RvdWJsZSwgT3JpZ2luKCksIGZsb2F0VmFsdWUpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICBjb25kaXRpb24sCiAgICAgICAgIEZyZXF1
ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwpAQCAtNDI2
OSwxNyArNDI3NywxNyBAQCB2b2lkIHRlc3REb3VibGVUb0Zsb2F0VGhyb3VnaFBoaShmbG9hdCB2
CiAgICAgVmFsdWUqIHBvc3RpdGl2ZUNvbnN0ID0gdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdERv
dWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIuNWYpOwogICAgIFZhbHVlKiB0aGVuQWRkID0g
dGhlbkNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYXJnQXNEb3Vi
bGUsIHBvc3RpdGl2ZUNvbnN0KTsKICAgICBVcHNpbG9uVmFsdWUqIHRoZW5WYWx1ZSA9IHRoZW5D
YXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdGhlbkFkZCk7Ci0g
ICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigp
LCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOworICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CiAKICAg
ICBWYWx1ZSogZWxzZUNvbnN0ID0gZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgTV9QSSk7CiAgICAgVXBzaWxvblZhbHVlKiBlbHNlVmFsdWUgPSBl
bHNlQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGVsc2VDb25z
dCk7Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9y
aWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOworICAgIGVsc2VDYXNlLT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7
CiAKICAgICBWYWx1ZSogZG91YmxlSW5wdXQgPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IFBoaSwgRG91YmxlLCBPcmlnaW4oKSk7CiAgICAgdGhlblZhbHVlLT5zZXRQaGkoZG91YmxlSW5w
dXQpOwogICAgIGVsc2VWYWx1ZS0+c2V0UGhpKGRvdWJsZUlucHV0KTsKICAgICBWYWx1ZSogZmxv
YXRSZXN1bHQgPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9y
aWdpbigpLCBkb3VibGVJbnB1dCk7Ci0gICAgdGFpbC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOworICAgIHRhaWwtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CiAKICAg
ICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGludm9r
ZTxmbG9hdD4oKmNvZGUsIDEsIGJpdHdpc2VfY2FzdDxpbnQzMl90Pih2YWx1ZSkpLCB2YWx1ZSAr
IDQyLjVmKSk7CkBAIC00Mjk5LDE4ICs0MzA3LDE4IEBAIHZvaWQgdGVzdERvdWJsZVByb2R1Y2Vy
UGhpVG9GbG9hdENvbnZlcnMKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKTsKICAgICBWYWx1ZSog
ZmxvYXRWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9y
aWdpbigpLCBhcmd1bWVudDMyKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNo
LCBPcmlnaW4oKSwKICAgICAgICAgY29uZGl0aW9uLAogICAgICAgICBGcmVxdWVudGVkQmxvY2so
dGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAogICAgIFZhbHVlKiBhc0Rv
dWJsZSA9IHRoZW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9y
aWdpbigpLCBmbG9hdFZhbHVlKTsKICAgICBVcHNpbG9uVmFsdWUqIHRoZW5WYWx1ZSA9IHRoZW5D
YXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYXNEb3VibGUpOwot
ICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4o
KSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOwogCiAg
ICAgVmFsdWUqIGNvbnN0RG91YmxlID0gZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgNDIuNSk7CiAgICAgVXBzaWxvblZhbHVlKiBlbHNlVmFsdWUg
PSBlbHNlQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGNvbnN0
RG91YmxlKTsKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVt
cCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CisgICAgZWxzZUNhc2UtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRh
aWwpKTsKIAogICAgIFZhbHVlKiBkb3VibGVJbnB1dCA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgUGhpLCBEb3VibGUsIE9yaWdpbigpKTsKICAgICB0aGVuVmFsdWUtPnNldFBoaShkb3Vi
bGVJbnB1dCk7CkBAIC00MzE5LDcgKzQzMjcsNyBAQCB2b2lkIHRlc3REb3VibGVQcm9kdWNlclBo
aVRvRmxvYXRDb252ZXJzCiAgICAgVmFsdWUqIGFyZ0FzRG91YmxlQWdhaW4gPSB0YWlsLT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBmbG9hdFZhbHVlKTsK
ICAgICBWYWx1ZSogZmluYWxBZGQgPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwg
T3JpZ2luKCksIGRvdWJsZUlucHV0LCBhcmdBc0RvdWJsZUFnYWluKTsKICAgICBWYWx1ZSogZmxv
YXRSZXN1bHQgPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9y
aWdpbigpLCBmaW5hbEFkZCk7Ci0gICAgdGFpbC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOworICAgIHRhaWwtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CiAKICAgICBh
dXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGludm9rZTxm
bG9hdD4oKmNvZGUsIDEsIGJpdHdpc2VfY2FzdDxpbnQzMl90Pih2YWx1ZSkpLCB2YWx1ZSArIHZh
bHVlKSk7CkBAIC00MzQxLDE4ICs0MzQ5LDE4IEBAIHZvaWQgdGVzdERvdWJsZVByb2R1Y2VyUGhp
VG9GbG9hdENvbnZlcnMKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKTsKICAgICBWYWx1ZSogZmxv
YXRWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdp
bigpLCBhcmd1bWVudDMyKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBP
cmlnaW4oKSwKICAgICAgICAgY29uZGl0aW9uLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhl
bkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAogICAgIFZhbHVlKiBhc0RvdWJs
ZSA9IHRoZW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdp
bigpLCBmbG9hdFZhbHVlKTsKICAgICBVcHNpbG9uVmFsdWUqIHRoZW5WYWx1ZSA9IHRoZW5DYXNl
LT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYXNEb3VibGUpOwotICAg
IHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwg
RnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOwogCiAgICAg
VmFsdWUqIGNvbnN0RG91YmxlID0gZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgNDIuNSk7CiAgICAgVXBzaWxvblZhbHVlKiBlbHNlVmFsdWUgPSBl
bHNlQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGNvbnN0RG91
YmxlKTsKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwg
T3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CisgICAgZWxzZUNhc2UtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwp
KTsKIAogICAgIFZhbHVlKiBkb3VibGVJbnB1dCA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgUGhpLCBEb3VibGUsIE9yaWdpbigpKTsKICAgICB0aGVuVmFsdWUtPnNldFBoaShkb3VibGVJ
bnB1dCk7CkBAIC00MzY4LDcgKzQzNzYsNyBAQCB2b2lkIHRlc3REb3VibGVQcm9kdWNlclBoaVRv
RmxvYXRDb252ZXJzCiAgICAgLy8gVGhpcyBvbmUgKmNhbm5vdCogYmUgZWxpbWluYXRlZAogICAg
IFZhbHVlKiBkb3VibGVBZGQgPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3Jp
Z2luKCksIGRvdWJsZUlucHV0LCBkb3VibGVSZXN1bHQpOwogCi0gICAgdGFpbC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZG91YmxlQWRkKTsKKyAgICB0
YWlsLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZG91Ymxl
QWRkKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgQ0hFQ0soaXNJZGVu
dGljYWwoaW52b2tlPGRvdWJsZT4oKmNvZGUsIDEsIGJpdHdpc2VfY2FzdDxpbnQzMl90Pih2YWx1
ZSkpLCAodmFsdWUgKyB2YWx1ZSkgKyBzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVlKSkpOwpAQCAt
NDM4OCwxOCArNDM5NiwxOCBAQCB2b2lkIHRlc3REb3VibGVQcm9kdWNlclBoaVdpdGhOb25GbG9h
dENvCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7CiAgICAgVmFsdWUqIGZsb2F0VmFsdWUgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1l
bnQzMik7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAg
ICAgICAgIGNvbmRpdGlvbiwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJl
cXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKICAgICBWYWx1ZSogYXNEb3VibGUgPSB0aGVuQ2Fz
ZS0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgZmxvYXRW
YWx1ZSk7CiAgICAgVXBzaWxvblZhbHVlKiB0aGVuVmFsdWUgPSB0aGVuQ2FzZS0+YXBwZW5kTmV3
PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFzRG91YmxlKTsKLSAgICB0aGVuQ2FzZS0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRC
bG9jayh0YWlsKSk7CisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBK
dW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKIAogICAgIFZhbHVlKiBjb25z
dERvdWJsZSA9IGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIGNvbnN0VmFsdWUpOwogICAgIFVwc2lsb25WYWx1ZSogZWxzZVZhbHVlID0gZWxzZUNh
c2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCBjb25zdERvdWJsZSk7
Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdp
bigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOworICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CiAK
ICAgICBWYWx1ZSogZG91YmxlSW5wdXQgPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFBo
aSwgRG91YmxlLCBPcmlnaW4oKSk7CiAgICAgdGhlblZhbHVlLT5zZXRQaGkoZG91YmxlSW5wdXQp
OwpAQCAtNDQwOCw3ICs0NDE2LDcgQEAgdm9pZCB0ZXN0RG91YmxlUHJvZHVjZXJQaGlXaXRoTm9u
RmxvYXRDbwogICAgIFZhbHVlKiBhcmdBc0RvdWJsZUFnYWluID0gdGFpbC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSk7CiAgICAgVmFs
dWUqIGZpbmFsQWRkID0gdGFpbC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigp
LCBkb3VibGVJbnB1dCwgYXJnQXNEb3VibGVBZ2Fpbik7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0
ID0gdGFpbC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwg
ZmluYWxBZGQpOwotICAgIHRhaWwtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKKyAgICB0YWlsLT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwogCiAgICAgYXV0byBjb2Rl
ID0gY29tcGlsZShwcm9jKTsKICAgICBDSEVDSyhpc0lkZW50aWNhbChpbnZva2U8ZmxvYXQ+KCpj
b2RlLCAxLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4odmFsdWUpKSwgdmFsdWUgKyB2YWx1ZSkpOwpA
QCAtNDQyMSw3ICs0NDI5LDcgQEAgdm9pZCB0ZXN0RG91YmxlQXJnVG9JbnQ2NEJpdHdpc2VDYXN0
KGRvdQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUq
IGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudCkpOwpAQCAtNDQz
NSw3ICs0NDQzLDcgQEAgdm9pZCB0ZXN0RG91YmxlSW1tVG9JbnQ2NEJpdHdpc2VDYXN0KGRvdQog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3Vt
ZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCB2
YWx1ZSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXR3aXNl
Q2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50KSk7CkBAIC00NDUwLDcgKzQ0NTgsNyBAQCB2b2lkIHRl
c3RUd29CaXR3aXNlQ2FzdE9uRG91YmxlKGRvdWJsZSB2CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0g
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZv
Ojphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiBmaXJzdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHNl
Y29uZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigp
LCBmaXJzdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgc2Vjb25kKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNv
bXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCB2YWx1ZSksIHZhbHVlKSk7CiB9CkBAIC00NDYyLDcg
KzQ0NzAsNyBAQCB2b2lkIHRlc3RCaXR3aXNlQ2FzdE9uRG91YmxlSW5NZW1vcnkoZG91CiAgICAg
VmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWRE
b3VibGUgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIERvdWJsZSwg
T3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBjYXN0ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGxvYWREb3VibGUpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNhc3QpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBj
YXN0KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJv
YywgJnZhbHVlKSwgYml0d2lzZV9jYXN0PGludDY0X3Q+KHZhbHVlKSkpOwogfQpAQCAtNDQ3OSw3
ICs0NDg3LDcgQEAgdm9pZCB0ZXN0Qml0d2lzZUNhc3RPbkRvdWJsZUluTWVtb3J5SW5kZQogICAg
IFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdp
bigpLCBiYXNlLCBzY2FsZWRPZmZzZXQpOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkRG91YmxlID0g
cm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBEb3VibGUsIE9yaWdpbigp
LCBhZGRyZXNzKTsKICAgICBWYWx1ZSogY2FzdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBsb2FkRG91YmxlKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0KTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FzdCk7CiAK
ICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsICZ2YWx1
ZSwgMCksIGJpdHdpc2VfY2FzdDxpbnQ2NF90Pih2YWx1ZSkpKTsKIH0KQEAgLTQ0OTAsNyArNDQ5
OCw3IEBAIHZvaWQgdGVzdEludDY0QkFyZ1RvRG91YmxlQml0d2lzZUNhc3QoaW4KICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQpKTsKQEAgLTQ1MDQsNyArNDUxMiw3IEBA
IHZvaWQgdGVzdEludDY0QkltbVRvRG91YmxlQml0d2lzZUNhc3QoaW4KICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFw
cGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSk7CiAKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFy
Z3VtZW50KSk7CkBAIC00NTE5LDcgKzQ1MjcsNyBAQCB2b2lkIHRlc3RUd29CaXR3aXNlQ2FzdE9u
SW50NjQoaW50NjRfdCB2CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwog
ICAgIFZhbHVlKiBmaXJzdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNh
c3QsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHNlY29uZCA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmaXJzdCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25k
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgc2Vjb25kKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50NjRf
dD4ocHJvYywgdmFsdWUpLCB2YWx1ZSkpOwogfQpAQCAtNDUzMSw3ICs0NTM5LDcgQEAgdm9pZCB0
ZXN0Qml0d2lzZUNhc3RPbkludDY0SW5NZW1vcnkoaW50NgogICAgIFZhbHVlKiBhZGRyZXNzID0g
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkRG91YmxlID0gcm9vdC0+YXBw
ZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQ2NCwgT3JpZ2luKCksIGFkZHJlc3Mp
OwogICAgIFZhbHVlKiBjYXN0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNl
Q2FzdCwgT3JpZ2luKCksIGxvYWREb3VibGUpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNhc3QpOworICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0KTsKIAogICAgIENIRUNL
KGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCAmdmFsdWUpLCBiaXR3aXNl
X2Nhc3Q8ZG91YmxlPih2YWx1ZSkpKTsKIH0KQEAgLTQ1NDgsNyArNDU1Niw3IEBAIHZvaWQgdGVz
dEJpdHdpc2VDYXN0T25JbnQ2NEluTWVtb3J5SW5kZXgKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYmFzZSwgc2NhbGVkT2Zm
c2V0KTsKICAgICBNZW1vcnlWYWx1ZSogbG9hZERvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxNZW1v
cnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50NjQsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1
ZSogY2FzdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdp
bigpLCBsb2FkRG91YmxlKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FzdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNh
bChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgJnZhbHVlLCAwKSwgYml0d2lzZV9jYXN0PGRv
dWJsZT4odmFsdWUpKSk7CiB9CkBAIC00NTU5LDcgKzQ1NjcsNyBAQCB2b2lkIHRlc3RGbG9hdElt
bVRvSW50MzJCaXR3aXNlQ2FzdChmbG9hCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9h
dFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAog
ICAgICAgICAgICAgcHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudCkpOwpAQCAt
NDU3NCw3ICs0NTgyLDcgQEAgdm9pZCB0ZXN0Qml0d2lzZUNhc3RPbkZsb2F0SW5NZW1vcnkoZmxv
YQogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVl
KiBsb2FkRmxvYXQgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEZs
b2F0LCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIGNhc3QgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgbG9hZEZsb2F0KTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgY2FzdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+
KHByb2MsICZ2YWx1ZSksIGJpdHdpc2VfY2FzdDxpbnQzMl90Pih2YWx1ZSkpKTsKIH0KQEAgLTQ1
ODUsNyArNDU5Myw3IEBAIHZvaWQgdGVzdEludDMyQkFyZ1RvRmxvYXRCaXR3aXNlQ2FzdChpbnQK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1
bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
R1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQpKTsKQEAgLTQ1OTksNyAr
NDYwNyw3IEBAIHZvaWQgdGVzdEludDMyQkltbVRvRmxvYXRCaXR3aXNlQ2FzdChpbnQKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9
IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSk7CiAK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXR3aXNlQ2FzdCwgT3Jp
Z2luKCksIGFyZ3VtZW50KSk7CkBAIC00NjE0LDcgKzQ2MjIsNyBAQCB2b2lkIHRlc3RUd29CaXR3
aXNlQ2FzdE9uSW50MzIoaW50MzJfdCB2CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjApOwogICAgIFZhbHVlKiBmaXJzdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
Qml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHNlY29uZCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmaXJzdCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgc2Vjb25kKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgc2Vjb25kKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRS
dW48aW50MzJfdD4ocHJvYywgdmFsdWUpLCB2YWx1ZSkpOwogfQpAQCAtNDYyNiw3ICs0NjM0LDcg
QEAgdm9pZCB0ZXN0Qml0d2lzZUNhc3RPbkludDMySW5NZW1vcnkoaW50MwogICAgIFZhbHVlKiBh
ZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkRmxvYXQgPSBy
b290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwg
YWRkcmVzcyk7CiAgICAgVmFsdWUqIGNhc3QgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgbG9hZEZsb2F0KTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0KTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FzdCk7CiAKICAg
ICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jLCAmdmFsdWUpLCBi
aXR3aXNlX2Nhc3Q8ZmxvYXQ+KHZhbHVlKSkpOwogfQpAQCAtNDYzNyw3ICs0NjQ1LDcgQEAgdm9p
ZCB0ZXN0Q29udmVydERvdWJsZVRvRmxvYXRBcmcoZG91YmxlIAogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQ
UjApOwogICAgIFZhbHVlKiBhc0Zsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBE
b3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgYXJndW1lbnQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFzRmxvYXQpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0Zsb2F0KTsK
IAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsIHZhbHVl
KSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlKSkpOwogfQpAQCAtNDY0OCw3ICs0NjU2LDcgQEAg
dm9pZCB0ZXN0Q29udmVydERvdWJsZVRvRmxvYXRJbW0oZG91YmxlIAogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBw
ZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSk7CiAgICAgVmFs
dWUqIGFzRmxvYXQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQs
IE9yaWdpbigpLCBhcmd1bWVudCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNGbG9hdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFzRmxvYXQpOwogCiAgICAgQ0hFQ0so
aXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYyksIHN0YXRpY19jYXN0PGZsb2F0
Pih2YWx1ZSkpKTsKIH0KQEAgLTQ2NjAsNyArNDY2OCw3IEBAIHZvaWQgdGVzdENvbnZlcnREb3Vi
bGVUb0Zsb2F0TWVtKGRvdWJsZSAKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIw
KTsKICAgICBNZW1vcnlWYWx1ZSogbG9hZGVkRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9y
eVZhbHVlPihwcm9jLCBMb2FkLCBEb3VibGUsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1
ZSogYXNGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwg
T3JpZ2luKCksIGxvYWRlZERvdWJsZSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNGbG9hdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFzRmxvYXQpOwogCiAgICAgQ0hF
Q0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYywgJnZhbHVlKSwgc3RhdGlj
X2Nhc3Q8ZmxvYXQ+KHZhbHVlKSkpOwogfQpAQCAtNDY3Myw3ICs0NjgxLDcgQEAgdm9pZCB0ZXN0
Q29udmVydEZsb2F0VG9Eb3VibGVBcmcoZmxvYXQgdgogICAgICAgICByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkp
OwogICAgIFZhbHVlKiBmbG9hdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBC
aXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiBhc0RvdWJsZSA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGZs
b2F0VmFsdWUpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIGFzRG91YmxlKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNEb3VibGUpOwogCiAgICAgQ0hFQ0soaXNJZGVudGlj
YWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90Pih2YWx1
ZSkpLCBzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVlKSkpOwogfQpAQCAtNDY4NCw3ICs0NjkyLDcg
QEAgdm9pZCB0ZXN0Q29udmVydEZsb2F0VG9Eb3VibGVJbW0oZmxvYXQgdgogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+
YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKTsKICAgICBW
YWx1ZSogYXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3Vi
bGUsIE9yaWdpbigpLCBhcmd1bWVudCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNEb3VibGUpOworICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0RvdWJsZSk7CiAKICAgICBD
SEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYyksIHN0YXRpY19jYXN0
PGRvdWJsZT4odmFsdWUpKSk7CiB9CkBAIC00Njk2LDcgKzQ3MDQsNyBAQCB2b2lkIHRlc3RDb252
ZXJ0RmxvYXRUb0RvdWJsZU1lbShmbG9hdCB2CiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWRlZEZsb2F0ID0gcm9vdC0+YXBwZW5kTmV3
PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBGbG9hdCwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAg
IFZhbHVlKiBhc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0Rv
dWJsZSwgT3JpZ2luKCksIGxvYWRlZEZsb2F0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0RvdWJsZSk7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFzRG91YmxlKTsKIAog
ICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCAmdmFsdWUp
LCBzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVlKSkpOwogfQpAQCAtNDcwOSw3ICs0NzE3LDcgQEAg
dm9pZCB0ZXN0Q29udmVydERvdWJsZVRvRmxvYXRUb0RvdWJsZVRvRgogICAgIFZhbHVlKiBhc0Zs
b2F0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4o
KSwgYXJndW1lbnQpOwogICAgIFZhbHVlKiBhc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGFzRmxvYXQpOwogICAgIFZhbHVlKiBh
c0Zsb2F0QWdhaW4gPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQs
IE9yaWdpbigpLCBhc0RvdWJsZSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNGbG9hdEFnYWluKTsKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNGbG9hdEFnYWluKTsKIAog
ICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsIHZhbHVlKSwg
c3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlKSkpOwogfQpAQCAtNDcyNSw3ICs0NzMzLDcgQEAgdm9p
ZCB0ZXN0TG9hZEZsb2F0Q29udmVydERvdWJsZUNvbnZlcnRGbAogICAgIFZhbHVlKiBhc0Zsb2F0
QWdhaW4gPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdp
bigpLCBhc0RvdWJsZSk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBT
dG9yZSwgT3JpZ2luKCksIGFzRmxvYXRBZ2FpbiwgZHN0KTsKIAotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMy
VmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBmbG9hdCBpbnB1dCA9IHZhbHVlOwog
ICAgIGZsb2F0IG91dHB1dCA9IDAuOwpAQCAtNDc0MCw3ICs0NzQ4LDcgQEAgdm9pZCB0ZXN0RnJv
dW5kQXJnKGRvdWJsZSB2YWx1ZSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBS
MCk7CiAgICAgVmFsdWUqIGFzRmxvYXQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERv
dWJsZVRvRmxvYXQsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIGFzRG91YmxlID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgYXNG
bG9hdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgYXNEb3VibGUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBhc0RvdWJsZSk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChj
b21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgdmFsdWUpLCBzdGF0aWNfY2FzdDxkb3VibGU+KHN0
YXRpY19jYXN0PGZsb2F0Pih2YWx1ZSkpKSk7CiB9CkBAIC00NzUzLDcgKzQ3NjEsNyBAQCB2b2lk
IHRlc3RGcm91bmRNZW0oZG91YmxlIHZhbHVlKQogICAgIE1lbW9yeVZhbHVlKiBsb2FkZWREb3Vi
bGUgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIERvdWJsZSwgT3Jp
Z2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBhc0Zsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgbG9hZGVkRG91YmxlKTsKICAgICBW
YWx1ZSogYXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3Vi
bGUsIE9yaWdpbigpLCBhc0Zsb2F0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0RvdWJsZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFzRG91YmxlKTsKIAogICAgIENI
RUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCAmdmFsdWUpLCBzdGF0
aWNfY2FzdDxkb3VibGU+KHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZSkpKSk7CiB9CkBAIC00NzY0
LDcgKzQ3NzIsNyBAQCB2b2lkIHRlc3RJVG9ENjRBcmcoKQogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHNyYyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAg
ICBWYWx1ZSogc3JjQXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0Qs
IE9yaWdpbigpLCBzcmMpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHNyY0FzRG91YmxlKTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNEb3VibGUpOwogCiAgICAgYXV0
byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBmb3IgKGF1dG8gdGVzdFZhbHVlIDogaW50NjRP
cGVyYW5kcygpKQpAQCAtNDc3Nyw3ICs0Nzg1LDcgQEAgdm9pZCB0ZXN0SVRvRjY0QXJnKCkKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBzcmMgPSBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIHNyY0FzRmxvYXQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIElUb0YsIE9yaWdpbigpLCBzcmMpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXQpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zs
b2F0KTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgZm9yIChhdXRvIHRl
c3RWYWx1ZSA6IGludDY0T3BlcmFuZHMoKSkKQEAgLTQ3OTEsNyArNDc5OSw3IEBAIHZvaWQgdGVz
dElUb0QzMkFyZygpCiAgICAgVmFsdWUqIHNyYyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVl
KiBzcmNBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2lu
KCksIHNyYyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgc3JjQXNEb3VibGUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0RvdWJsZSk7CiAKICAgICBhdXRvIGNvZGUg
PSBjb21waWxlKHByb2MpOwogICAgIGZvciAoYXV0byB0ZXN0VmFsdWUgOiBpbnQzMk9wZXJhbmRz
KCkpCkBAIC00ODA1LDcgKzQ4MTMsNyBAQCB2b2lkIHRlc3RJVG9GMzJBcmcoKQogICAgIFZhbHVl
KiBzcmMgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSogc3JjQXNGbG9hdCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRiwgT3JpZ2luKCksIHNyYyk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdCk7
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHNyY0FzRmxvYXQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBmb3Ig
KGF1dG8gdGVzdFZhbHVlIDogaW50MzJPcGVyYW5kcygpKQpAQCAtNDgxOSw3ICs0ODI3LDcgQEAg
dm9pZCB0ZXN0SVRvRDY0TWVtKCkKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIw
KTsKICAgICBNZW1vcnlWYWx1ZSogbG9hZGVkU3JjID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZh
bHVlPihwcm9jLCBMb2FkLCBJbnQ2NCwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBz
cmNBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCks
IGxvYWRlZFNyYyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgc3JjQXNEb3VibGUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0RvdWJsZSk7CiAKICAgICBhdXRvIGNv
ZGUgPSBjb21waWxlKHByb2MpOwogICAgIGludDY0X3QgaW5NZW1vcnlWYWx1ZTsKQEAgLTQ4Mzcs
NyArNDg0NSw3IEBAIHZvaWQgdGVzdElUb0Y2NE1lbSgpCiAgICAgVmFsdWUqIGFkZHJlc3MgPSBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWRlZFNyYyA9IHJvb3QtPmFwcGVu
ZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50NjQsIE9yaWdpbigpLCBhZGRyZXNzKTsK
ICAgICBWYWx1ZSogc3JjQXNGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRv
RiwgT3JpZ2luKCksIGxvYWRlZFNyYyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdCk7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXQpOwogCiAg
ICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBpbnQ2NF90IGluTWVtb3J5VmFsdWU7
CkBAIC00ODU1LDcgKzQ4NjMsNyBAQCB2b2lkIHRlc3RJVG9EMzJNZW0oKQogICAgIFZhbHVlKiBh
ZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkZWRTcmMgPSBy
b290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwg
YWRkcmVzcyk7CiAgICAgVmFsdWUqIHNyY0FzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgbG9hZGVkU3JjKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0RvdWJsZSk7CisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0Fz
RG91YmxlKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgaW50MzJfdCBp
bk1lbW9yeVZhbHVlOwpAQCAtNDg3Myw3ICs0ODgxLDcgQEAgdm9pZCB0ZXN0SVRvRjMyTWVtKCkK
ICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBNZW1vcnlWYWx1ZSog
bG9hZGVkU3JjID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQz
MiwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBzcmNBc0Zsb2F0ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9GLCBPcmlnaW4oKSwgbG9hZGVkU3JjKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zs
b2F0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgc3JjQXNGbG9hdCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAg
IGludDMyX3QgaW5NZW1vcnlWYWx1ZTsKQEAgLTQ4OTAsNyArNDg5OCw3IEBAIHZvaWQgdGVzdElU
b0Q2NEltbShpbnQ2NF90IHZhbHVlKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7CiAgICAgVmFsdWUqIHNyYyA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHBy
b2MsIE9yaWdpbigpLCB2YWx1ZSk7CiAgICAgVmFsdWUqIHNyY0FzRmxvYXRpbmdQb2ludCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIHNyYyk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNG
bG9hdGluZ1BvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdGluZ1BvaW50KTsKICAgICBDSEVDSyhpc0lkZW50aWNh
bChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYyksIHN0YXRpY19jYXN0PGRvdWJsZT4odmFsdWUp
KSk7CiB9CiAKQEAgLTQ5MDAsNyArNDkwOCw3IEBAIHZvaWQgdGVzdElUb0Y2NEltbShpbnQ2NF90
IHZhbHVlKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFs
dWUqIHNyYyA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCB2
YWx1ZSk7CiAgICAgVmFsdWUqIHNyY0FzRmxvYXRpbmdQb2ludCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgSVRvRiwgT3JpZ2luKCksIHNyYyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdGluZ1BvaW50KTsK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
c3JjQXNGbG9hdGluZ1BvaW50KTsKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVu
PGZsb2F0Pihwcm9jKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlKSkpOwogfQogCkBAIC00OTEw
LDcgKzQ5MTgsNyBAQCB2b2lkIHRlc3RJVG9EMzJJbW0oaW50MzJfdCB2YWx1ZSkKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBzcmMgPSByb290LT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpOwogICAgIFZhbHVl
KiBzcmNBc0Zsb2F0aW5nUG9pbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0Qs
IE9yaWdpbigpLCBzcmMpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXRpbmdQb2ludCk7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXRpbmdQb2lu
dCk7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MpLCBz
dGF0aWNfY2FzdDxkb3VibGU+KHZhbHVlKSkpOwogfQogCkBAIC00OTIwLDcgKzQ5MjgsNyBAQCB2
b2lkIHRlc3RJVG9GMzJJbW0oaW50MzJfdCB2YWx1ZSkKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBzcmMgPSByb290LT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpOwogICAgIFZhbHVlKiBzcmNBc0Zsb2F0aW5n
UG9pbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0YsIE9yaWdpbigpLCBzcmMp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHNyY0FzRmxvYXRpbmdQb2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXRpbmdQb2ludCk7CiAgICAgQ0hFQ0so
aXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYyksIHN0YXRpY19jYXN0PGZsb2F0
Pih2YWx1ZSkpKTsKIH0KIApAQCAtNDkzMSw3ICs0OTM5LDcgQEAgdm9pZCB0ZXN0SVRvRFJlZHVj
ZWRUb0lUb0Y2NEFyZygpCiAgICAgVmFsdWUqIHNyYyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBW
YWx1ZSogc3JjQXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9y
aWdpbigpLCBzcmMpOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIHNyY0FzRG91YmxlKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBmbG9h
dFJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7
CiAgICAgZm9yIChhdXRvIHRlc3RWYWx1ZSA6IGludDY0T3BlcmFuZHMoKSkKQEAgLTQ5NDYsNyAr
NDk1NCw3IEBAIHZvaWQgdGVzdElUb0RSZWR1Y2VkVG9JVG9GMzJBcmcoKQogICAgICAgICByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiBzcmNBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIHNyYyk7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwg
c3JjQXNEb3VibGUpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwogCiAgICAgYXV0byBj
b2RlID0gY29tcGlsZShwcm9jKTsKICAgICBmb3IgKGF1dG8gdGVzdFZhbHVlIDogaW50MzJPcGVy
YW5kcygpKQpAQCAtNDk2NCw3ICs0OTcyLDcgQEAgdm9pZCB0ZXN0U3RvcmUzMihpbnQgdmFsdWUp
CiAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCkpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksICZzbG90KSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkp
OwogCiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCB2YWx1ZSkpOwpAQCAtNDk4
MCw3ICs0OTg4LDcgQEAgdm9pZCB0ZXN0U3RvcmVDb25zdGFudChpbnQgdmFsdWUpCiAgICAgICAg
IHByb2MsIFN0b3JlLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENv
bnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAmc2xvdCkpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludD4ocHJv
YykpOwpAQCAtNTAwMCw3ICs1MDA4LDcgQEAgdm9pZCB0ZXN0U3RvcmVDb25zdGFudFB0cihpbnRw
dHJfdCB2YWx1ZQogICAgICAgICBwcm9jLCBTdG9yZSwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZzbG90KSk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgQ0hFQ0soIWNv
bXBpbGVBbmRSdW48aW50Pihwcm9jKSk7CkBAIC01MDE4LDcgKzUwMjYsNyBAQCB2b2lkIHRlc3RT
dG9yZThBcmcoKQogICAgICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKIAog
ICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlOCwgT3JpZ2lu
KCksIHZhbHVlLCBhZGRyZXNzKTsKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOworICAgICAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOwogCiAgICAgICAg
IGludDhfdCBzdG9yYWdlID0gMDsKICAgICAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90
Pihwcm9jLCA0MiwgJnN0b3JhZ2UpID09IDQyKTsKQEAgLTUwMzksNyArNTA0Nyw3IEBAIHZvaWQg
dGVzdFN0b3JlOEFyZygpCiAgICAgICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBiYXNlRGlzcGxhY2VtZW50LCBvZmZzZXQpOwog
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmU4LCBPcmln
aW4oKSwgdmFsdWUsIGFkZHJlc3MpOwotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CisgICAgICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CiAKICAgICAg
ICAgaW50OF90IHN0b3JhZ2UgPSAwOwogICAgICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0
X3Q+KHByb2MsIDQyLCAmc3RvcmFnZSwgMSkgPT0gNDIpOwpAQCAtNTA1Nyw3ICs1MDY1LDcgQEAg
dm9pZCB0ZXN0U3RvcmU4SW1tKCkKICAgICAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCk7CiAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9y
ZTgsIE9yaWdpbigpLCB2YWx1ZSwgYWRkcmVzcyk7Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKKyAgICAgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsK
IAogICAgICAgICBpbnQ4X3Qgc3RvcmFnZSA9IDA7CiAgICAgICAgIENIRUNLKGNvbXBpbGVBbmRS
dW48aW50NjRfdD4ocHJvYywgJnN0b3JhZ2UpID09IDQyKTsKQEAgLTUwNzcsNyArNTA4NSw3IEBA
IHZvaWQgdGVzdFN0b3JlOEltbSgpCiAgICAgICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBiYXNlRGlzcGxhY2VtZW50LCBvZmZz
ZXQpOwogCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmU4
LCBPcmlnaW4oKSwgdmFsdWUsIGFkZHJlc3MpOwotICAgICAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CisgICAgICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CiAK
ICAgICAgICAgaW50OF90IHN0b3JhZ2UgPSAwOwogICAgICAgICBDSEVDSyhjb21waWxlQW5kUnVu
PGludDY0X3Q+KHByb2MsICZzdG9yYWdlLCAxKSA9PSA0Mik7CkBAIC01MTI5LDcgKzUxMzcsNyBA
QCB2b2lkIHRlc3RTdG9yZVBhcnRpYWw4Qml0UmVnaXN0ZXJPblg4NigpCiAgICAgLy8gaWYgd2Ug
dXNlIFg4NiBwYXJ0aWFsIHJlZ2lzdGVycy4KICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFs
dWU+KHByb2MsIFN0b3JlOCwgT3JpZ2luKCksIHBhdGNocG9pbnQsIHdoZXJlVG9TdG9yZSk7CiAK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXR1cm5WYWx1ZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJldHVyblZhbHVlKTsKIAogICAgIGludDhfdCBzdG9yYWdlID0gMHhm
ZjsKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIDB4MTIzNDU2NzhhYmNk
ZWYxMiwgJnN0b3JhZ2UpID09IDB4MTIzNDU2NzhhYmNkZWYxMik7CkBAIC01MTQ3LDcgKzUxNTUs
NyBAQCB2b2lkIHRlc3RTdG9yZTE2QXJnKCkKICAgICAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMSk7CiAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9j
LCBTdG9yZTE2LCBPcmlnaW4oKSwgdmFsdWUsIGFkZHJlc3MpOwotICAgICAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CisgICAg
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2
YWx1ZSk7CiAKICAgICAgICAgaW50MTZfdCBzdG9yYWdlID0gLTE7CiAgICAgICAgIENIRUNLKGNv
bXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgNDIsICZzdG9yYWdlKSA9PSA0Mik7CkBAIC01MTY4
LDcgKzUxNzYsNyBAQCB2b2lkIHRlc3RTdG9yZTE2QXJnKCkKICAgICAgICAgVmFsdWUqIGFkZHJl
c3MgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGJhc2VEaXNw
bGFjZW1lbnQsIG9mZnNldCk7CiAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVl
Pihwcm9jLCBTdG9yZTE2LCBPcmlnaW4oKSwgdmFsdWUsIGFkZHJlc3MpOwotICAgICAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7
CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCB2YWx1ZSk7CiAKICAgICAgICAgaW50MTZfdCBzdG9yYWdlID0gLTE7CiAgICAgICAgIENI
RUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgNDIsICZzdG9yYWdlLCAxKSA9PSA0Mik7
CkBAIC01MTg2LDcgKzUxOTQsNyBAQCB2b2lkIHRlc3RTdG9yZTE2SW1tKCkKICAgICAgICAgVmFs
dWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZTE2LCBPcmlnaW4oKSwgdmFsdWUsIGFkZHJlc3MpOwot
ICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCB2YWx1ZSk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CiAKICAgICAgICAgaW50MTZfdCBzdG9yYWdlID0gLTE7
CiAgICAgICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgJnN0b3JhZ2UpID09
IDQyKTsKQEAgLTUyMDYsNyArNTIxNCw3IEBAIHZvaWQgdGVzdFN0b3JlMTZJbW0oKQogICAgICAg
ICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmln
aW4oKSwgYmFzZURpc3BsYWNlbWVudCwgb2Zmc2V0KTsKIAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlMTYsIE9yaWdpbigpLCB2YWx1ZSwgYWRkcmVzcyk7
Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHZhbHVlKTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKIAogICAgICAgICBpbnQxNl90IHN0b3JhZ2UgPSAt
MTsKICAgICAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAmc3RvcmFnZSwg
MSkgPT0gNDIpOwpAQCAtNTIxOCw3ICs1MjI2LDcgQEAgdm9pZCB0ZXN0VHJ1bmMoaW50NjRfdCB2
YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFRy
dW5jLCBPcmlnaW4oKSwKQEAgLTUyMzEsNyArNTIzOSw3IEBAIHZvaWQgdGVzdEFkZDEoaW50IHZh
bHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRk
LCBPcmlnaW4oKSwKQEAgLTUyNDcsNyArNTI1NSw3IEBAIHZvaWQgdGVzdEFkZDFQdHIoaW50cHRy
X3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBBZGQsIE9yaWdpbigpLApAQCAtNTI2MSw3ICs1MjY5LDcgQEAgdm9pZCB0ZXN0TmVnMzIoaW50
MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIFN1YiwgT3JpZ2luKCksCkBAIC01Mjc3LDcgKzUyODUsNyBAQCB2b2lkIHRlc3ROZWdQdHIo
aW50cHRyX3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBTdWIsIE9yaWdpbigpLApAQCAtNTMwMiw3ICs1MzEwLDcgQEAgdm9pZCB0ZXN0U3Rv
cmVBZGRMb2FkMzIoaW50IGFtb3VudCkKICAgICAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3Jp
Z2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSksCiAgICAgICAgIHNsb3RQ
dHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApA
QCAtNTMyMyw3ICs1MzMxLDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkSW1tMzIoaW50IGFtb3Vu
dCkKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwg
SW50MzIsIE9yaWdpbigpLCBzbG90UHRyKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhbW91bnQpKSwKICAgICAgICAgc2xvdFB0cik7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01
MzQ2LDcgKzUzNTQsNyBAQCB2b2lkIHRlc3RTdG9yZUFkZExvYWQ4KGludCBhbW91bnQsIEIzOjpP
CiAgICAgICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIwKSkpLAogICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTUzNjcsNyArNTM3NSw3IEBAIHZv
aWQgdGVzdFN0b3JlQWRkTG9hZEltbTgoaW50IGFtb3VudCwgQjMKICAgICAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgbG9hZE9wY29kZSwgT3JpZ2luKCksIHNsb3RQ
dHIpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIGFtb3VudCkpLAogICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMy
VmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTUzOTAsNyArNTM5OCw3IEBAIHZvaWQg
dGVzdFN0b3JlQWRkTG9hZDE2KGludCBhbW91bnQsIEIzOjoKICAgICAgICAgICAgICAgICBwcm9j
LCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSksCiAg
ICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDApKTsKIApAQCAtNTQxMSw3ICs1NDE5LDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkSW1t
MTYoaW50IGFtb3VudCwgQgogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVl
Pihwcm9jLCBsb2FkT3Bjb2RlLCBPcmlnaW4oKSwgc2xvdFB0ciksCiAgICAgICAgICAgICByb290
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYW1vdW50KSksCiAgICAg
ICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IDApKTsKIApAQCAtNTQzMiw3ICs1NDQwLDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkNjQoaW50
IGFtb3VudCkKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywg
TG9hZCwgSW50NjQsIE9yaWdpbigpLCBzbG90UHRyKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIwKSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIDApKTsKIApAQCAtNTQ1Myw3ICs1NDYxLDcgQEAgdm9pZCB0ZXN0U3RvcmVB
ZGRMb2FkSW1tNjQoaW50NjRfdCBhbW91bgogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1l
bW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQ2NCwgT3JpZ2luKCksIHNsb3RQdHIpLAogICAgICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFtb3Vu
dCkpLAogICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAwKSk7CiAKQEAgLTU0ODUsNyArNTQ5Myw3IEBAIHZvaWQgdGVzdFN0b3JlQWRk
TG9hZDMySW5kZXgoaW50IGFtb3VudCkKICAgICAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3Jp
Z2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSksCiAgICAgICAgIHNsb3RQ
dHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApA
QCAtNTUxNSw3ICs1NTIzLDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkSW1tMzJJbmRleChpbnQg
YW1vdQogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2Fk
LCBJbnQzMiwgT3JpZ2luKCksIHNsb3RQdHIpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFtb3VudCkpLAogICAgICAgICBzbG90UHRy
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAg
LTU1NDcsNyArNTU1NSw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9hZDhJbmRleChpbnQgYW1vdW50
LCAKICAgICAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjApKSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNTU3Nyw3ICs1NTg1LDcgQEAg
dm9pZCB0ZXN0U3RvcmVBZGRMb2FkSW1tOEluZGV4KGludCBhbW91bgogICAgICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBsb2FkT3Bjb2RlLCBPcmlnaW4oKSwgc2xv
dFB0ciksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgYW1vdW50KSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNTYwOSw3ICs1NjE3LDcgQEAgdm9p
ZCB0ZXN0U3RvcmVBZGRMb2FkMTZJbmRleChpbnQgYW1vdW50LAogICAgICAgICAgICAgICAgIHBy
b2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpKSwK
ICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgMCkpOwogCkBAIC01NjM5LDcgKzU2NDcsNyBAQCB2b2lkIHRlc3RTdG9yZUFkZExvYWRJ
bW0xNkluZGV4KGludCBhbW91CiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFs
dWU+KHByb2MsIGxvYWRPcGNvZGUsIE9yaWdpbigpLCBzbG90UHRyKSwKICAgICAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhbW91bnQpKSwKICAg
ICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgMCkpOwogCkBAIC01NjY5LDcgKzU2NzcsNyBAQCB2b2lkIHRlc3RTdG9yZUFkZExvYWQ2NElu
ZGV4KGludCBhbW91bnQpCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+
KHByb2MsIExvYWQsIEludDY0LCBPcmlnaW4oKSwgc2xvdFB0ciksCiAgICAgICAgICAgICByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMCkpLAogICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTU2OTksNyArNTcwNyw3IEBAIHZvaWQgdGVz
dFN0b3JlQWRkTG9hZEltbTY0SW5kZXgoaW50NjRfdCAKICAgICAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50NjQsIE9yaWdpbigpLCBzbG90UHRyKSwK
ICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigp
LCBhbW91bnQpKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01NzIzLDcgKzU3MzEsNyBAQCB2b2lkIHRlc3RT
dG9yZVN1YkxvYWQoaW50IGFtb3VudCkKICAgICAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3Jp
Z2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSksCiAgICAgICAgIHNsb3RQ
dHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApA
QCAtNTc1MCw3ICs1NzU4LDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkSW50ZXJmZXJlbmNlKGlu
dCBhbQogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKICAgICAgICAgICAgIGxvYWQs
IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhbW91bnQpKSwK
ICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgMCkpOwogCkBAIC01Nzc0LDcgKzU3ODIsNyBAQCB2b2lkIHRlc3RTdG9yZUFkZEFuZExv
YWQoaW50IGFtb3VudCwgaW50CiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFtb3VudCkpLAogICAgICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIG1hc2spKSwKICAgICAgICAgc2xv
dFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwog
CkBAIC01Nzk5LDcgKzU4MDcsNyBAQCB2b2lkIHRlc3RTdG9yZU5lZ0xvYWQzMihpbnQzMl90IHZh
bHVlKQogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2Fk
LCBJbnQzMiwgT3JpZ2luKCksIHNsb3RQdHIpKSwKICAgICAgICAgc2xvdFB0cik7CiAgICAgCi0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgQ0hFQ0soIWNvbXBp
bGVBbmRSdW48aW50MzJfdD4ocHJvYykpOwpAQCAtNTgyMyw3ICs1ODMxLDcgQEAgdm9pZCB0ZXN0
U3RvcmVOZWdMb2FkUHRyKGludHB0cl90IHZhbHVlKQogICAgICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwgc2xv
dFB0cikpLAogICAgICAgICBzbG90UHRyKTsKICAgICAKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAwKSk7CiAKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9j
KSk7CkBAIC01ODM0LDcgKzU4NDIsNyBAQCB2b2lkIHRlc3RBZGQxVW5jb21tdXRlZChpbnQgdmFs
dWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQs
IE9yaWdpbigpLApAQCAtNTg1Miw3ICs1ODYwLDcgQEAgdm9pZCB0ZXN0TG9hZE9mZnNldCgpCiAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBpbnQgYXJyYXlbXSA9
IHsgMSwgMiB9OwogICAgIENvbnN0UHRyVmFsdWUqIGFycmF5UHRyID0gcm9vdC0+YXBwZW5kTmV3
PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhcnJheSk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKQEAgLTU4NjgsNyArNTg3Niw3
IEBAIHZvaWQgdGVzdExvYWRPZmZzZXROb3RDb25zdGFudCgpCiAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBpbnQgYXJyYXlbXSA9IHsgMSwgMiB9OwogICAgIFZh
bHVlKiBhcnJheVB0ciA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAtNTg4NCw3ICs1ODkyLDcgQEAgdm9p
ZCB0ZXN0TG9hZE9mZnNldFVzaW5nQWRkKCkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwogICAgIGludCBhcnJheVtdID0geyAxLCAyIH07CiAgICAgQ29uc3RQdHJWYWx1
ZSogYXJyYXlQdHIgPSByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIGFycmF5KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQs
IE9yaWdpbigpLApAQCAtNTkyNSw3ICs1OTMzLDcgQEAgdm9pZCB0ZXN0TG9hZE9mZnNldFVzaW5n
QWRkSW50ZXJmZXJlbmNlKAogICAgICAgICBwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHRoZU51bWJl
ck9mVGhlQmVhc3QsIG90aGVyQXJyYXlQdHIsIDApOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1v
cnlWYWx1ZT4oCiAgICAgICAgIHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgdGhlTnVtYmVyT2ZUaGVC
ZWFzdCwgb3RoZXJBcnJheVB0ciwgc2l6ZW9mKGludCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksIGxlZnQsIHJpZ2h0KSk7CkBAIC01OTQx
LDcgKzU5NDksNyBAQCB2b2lkIHRlc3RMb2FkT2Zmc2V0VXNpbmdBZGROb3RDb25zdGFudCgpCiAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBpbnQgYXJyYXlbXSA9
IHsgMSwgMiB9OwogICAgIFZhbHVlKiBhcnJheVB0ciA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAtNTk3
Nyw3ICs1OTg1LDcgQEAgdm9pZCB0ZXN0TG9hZEFkZHJTaGlmdCh1bnNpZ25lZCBzaGlmdCkKIAog
ICAgICpzbG90ID0gODY3NTMwOTsKICAgICAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2luKCksCkBAIC01OTkzLDcgKzYwMDEs
NyBAQCB2b2lkIHRlc3RGcmFtZVBvaW50ZXIoKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEZyYW1lUG9pbnRlciwgT3JpZ2luKCkpKTsKIApAQCAtNjAxNiw3ICs2MDI0LDcgQEAg
dm9pZCB0ZXN0T3ZlcnJpZGVGcmFtZVBvaW50ZXIoKQogICAgICAgICBWYWx1ZSogZnAgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZyYW1lUG9pbnRlciwgT3JpZ2luKCkpOwogICAgICAg
ICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdp
bigpLCBmcCwgb2Zmc2V0KTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgICAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICAgICAg
Q0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAxKSk7CiAgICAgfQogICAgIHsKQEAg
LTYwMzIsNyArNjA0MCw3IEBAIHZvaWQgdGVzdE92ZXJyaWRlRnJhbWVQb2ludGVyKCkKICAgICAg
ICAgVmFsdWUqIG9mZnNldEFyZyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBP
cmlnaW4oKSwgb2Zmc2V0LCBhcmcpOwogICAgICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBvZmZzZXRBcmcsIG9mZnNldEZQKTsK
IAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1
bjxpbnQ2NF90Pihwcm9jLCAxLCAyKSk7CiAgICAgfQogfQpAQCAtNjA0MSw3ICs2MDQ5LDcgQEAg
dm9pZCB0ZXN0U3RhY2tTbG90KCkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFNsb3RCYXNlVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBwcm9jLmFkZFN0YWNrU2xvdCgxKSkpOwogCkBAIC02MDU0LDcgKzYw
NjIsNyBAQCB2b2lkIHRlc3RMb2FkRnJvbUZyYW1lUG9pbnRlcigpCiB7CiAgICAgUHJvY2VkdXJl
IHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgp
LCBPcmlnaW4oKSwKQEAgLTYwODEsNyArNjA4OSw3IEBAIHZvaWQgdGVzdFN0b3JlTG9hZFN0YWNr
U2xvdChpbnQgdmFsdWUpCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICBz
dGFjayk7CiAgICAgCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDMy
LCBPcmlnaW4oKSwgc3RhY2spKTsKIApAQCAtNjExNiw3ICs2MTI0LDcgQEAgdm9pZCB0ZXN0TG9h
ZChCMzo6T3Bjb2RlIG9wY29kZSwgSW5wdXRUeQogICAgICAgICBQcm9jZWR1cmUgcHJvYzsKICAg
ICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICAgICAgCi0gICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgICAgICBw
cm9jLCBvcGNvZGUsIHR5cGUsIE9yaWdpbigpLApAQCAtNjEzMCw3ICs2MTM4LDcgQEAgdm9pZCB0
ZXN0TG9hZChCMzo6T3Bjb2RlIG9wY29kZSwgSW5wdXRUeQogICAgICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICAgICAg
Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAg
ICAgICBwcm9jLCBvcGNvZGUsIHR5cGUsIE9yaWdpbigpLApAQCAtNjE0NCw3ICs2MTUyLDcgQEAg
dm9pZCB0ZXN0TG9hZChCMzo6T3Bjb2RlIG9wY29kZSwgSW5wdXRUeQogICAgICAgICBQcm9jZWR1
cmUgcHJvYzsKICAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAg
ICAgICAgCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAg
ICAgICAgICAgICBwcm9jLCBvcGNvZGUsIHR5cGUsIE9yaWdpbigpLApAQCAtNjE1OSw3ICs2MTY3
LDcgQEAgdm9pZCB0ZXN0TG9hZChCMzo6T3Bjb2RlIG9wY29kZSwgSW5wdXRUeQogICAgICAgICBQ
cm9jZWR1cmUgcHJvYzsKICAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAg
ICAgICAgICAgcHJvYywgb3Bjb2RlLCB0eXBlLCBPcmlnaW4oKSwKQEAgLTYxNzksNyArNjE4Nyw3
IEBAIHZvaWQgdGVzdExvYWQoQjM6Ok9wY29kZSBvcGNvZGUsIElucHV0VHkKICAgICAgICAgUHJv
Y2VkdXJlIHByb2M7CiAgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAg
ICAgICAgIHByb2MsIG9wY29kZSwgdHlwZSwgT3JpZ2luKCksCkBAIC02MjE5LDcgKzYyMjcsNyBA
QCB2b2lkIHRlc3RTdG9yZUZsb2F0KGRvdWJsZSBpbnB1dCkKICAgICAgICAgVmFsdWUqIGRlc3Rp
bmF0aW9uQWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIGFyZ3VtZW50QXNGbG9hdCwgZGVz
dGluYXRpb25BZGRyZXNzKTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgMCkpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIDApKTsKIAogICAgICAgICBmbG9hdCBvdXRwdXQgPSAwLjsKICAgICAgICAg
Q0hFQ0soIWNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgaW5wdXQsICZvdXRwdXQpKTsKQEAg
LTYyNDMsNyArNjI1MSw3IEBAIHZvaWQgdGVzdFN0b3JlRmxvYXQoZG91YmxlIGlucHV0KQogCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigp
LCBhcmd1bWVudEFzRmxvYXQsIGRlc3RpbmF0aW9uQWRkcmVzcyk7CiAKLSAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKKyAgICAgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICAgICAgZmxvYXQg
b3V0cHV0ID0gMC47CiAgICAgICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2Ms
IGlucHV0LCAmb3V0cHV0IC0gMSwgMSkpOwpAQCAtNjI2Myw3ICs2MjcxLDcgQEAgdm9pZCB0ZXN0
U3RvcmVEb3VibGVDb25zdGFudEFzRmxvYXQoZG91YgogCiAgICAgcm9vdC0+YXBwZW5kTmV3PE1l
bW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHZhbHVlQXNGbG9hdCwgZGVzdGluYXRp
b25BZGRyZXNzKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAw
KSk7CiAKICAgICBmbG9hdCBvdXRwdXQgPSAwLjsKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxp
bnQ2NF90Pihwcm9jLCBpbnB1dCwgJm91dHB1dCkpOwpAQCAtNjI4OSw3ICs2Mjk3LDcgQEAgdm9p
ZCB0ZXN0U3BpbGxHUCgpCiAgICAgZm9yIChWYWx1ZSogdmFsdWUgOiBzb3VyY2VzKQogICAgICAg
ICB0b3RhbCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgdG90
YWwsIHZhbHVlKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHRvdGFsKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdG90YWwpOwogICAgIGNvbXBpbGVBbmRSdW48aW50Pihw
cm9jLCAxLCAyKTsKIH0KIApAQCAtNjMxMiw3ICs2MzIwLDcgQEAgdm9pZCB0ZXN0U3BpbGxGUCgp
CiAgICAgZm9yIChWYWx1ZSogdmFsdWUgOiBzb3VyY2VzKQogICAgICAgICB0b3RhbCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgdG90YWwsIHZhbHVlKTsKIAot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHRvdGFsKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgdG90YWwpOwogICAgIGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCAxLjEsIDIu
NSk7CiB9CiAKQEAgLTYzMjgsNyArNjMzNiw3IEBAIHZvaWQgdGVzdEludDMyVG9Eb3VibGVQYXJ0
aWFsUmVnaXN0ZXJTdGEKICAgICBWYWx1ZSogY291bnRlciA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAg
ICBVcHNpbG9uVmFsdWUqIG9yaWdpbmFsVG90YWwgPSByb290LT5hcHBlbmROZXc8VXBzaWxvblZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgdG90YWwpOwogICAgIFVwc2lsb25WYWx1ZSogb3JpZ2luYWxD
b3VudGVyID0gcm9vdC0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGNv
dW50ZXIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9y
aWdpbigpLCBGcmVxdWVudGVkQmxvY2sobG9vcCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3ApKTsKIAog
ICAgIC8vIExvb3AuCiAgICAgVmFsdWUqIGxvb3BDb3VudGVyID0gbG9vcC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBQaGksIEludDY0LCBPcmlnaW4oKSk7CkBAIC02MzQ1LDEzICs2MzUzLDEzIEBA
IHZvaWQgdGVzdEludDMyVG9Eb3VibGVQYXJ0aWFsUmVnaXN0ZXJTdGEKICAgICBWYWx1ZSogZGVj
Q291bnRlciA9IGxvb3AtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgbG9v
cENvdW50ZXIsIGxvb3AtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCAx
KSk7CiAgICAgVXBzaWxvblZhbHVlKiBkZWNDb3VudGVyVXBzaWxvbiA9IGxvb3AtPmFwcGVuZE5l
dzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCBkZWNDb3VudGVyKTsKICAgICBkZWNDb3Vu
dGVyVXBzaWxvbi0+c2V0UGhpKGxvb3BDb3VudGVyKTsKLSAgICBsb29wLT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICBsb29wLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIGRlY0NvdW50ZXIsCiAgICAgICAgIEZyZXF1
ZW50ZWRCbG9jayhsb29wKSwgRnJlcXVlbnRlZEJsb2NrKGRvbmUpKTsKIAogICAgIC8vIFRhaWwu
Ci0gICAgZG9uZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgdXBkYXRlZFRvdGFsKTsKKyAgICBkb25lLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgdXBkYXRlZFRvdGFsKTsKICAgICBDSEVDSyhpc0lkZW50aWNhbChj
b21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgMTAwMDAwKSwgNTAwMDA1MDAwMC4pKTsKIH0KIApA
QCAtNjM3MSw3ICs2Mzc5LDcgQEAgdm9pZCB0ZXN0SW50MzJUb0RvdWJsZVBhcnRpYWxSZWdpc3Rl
cldpdAogICAgIFZhbHVlKiBmb3JQYWRkaW5nSW5wdXRBZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3
PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAmZm9yUGFkZGluZ0lucHV0KTsKICAgICB1
aW50NjRfdCBmb3JQYWRkaW5nT3V0cHV0OwogICAgIFZhbHVlKiBmb3JQYWRkaW5nT3V0cHV0QWRk
cmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJmZv
clBhZGRpbmdPdXRwdXQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sobG9vcCkpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGxv
b3ApKTsKIAogICAgIC8vIExvb3AuCiAgICAgVmFsdWUqIGxvb3BDb3VudGVyID0gbG9vcC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBQaGksIEludDY0LCBPcmlnaW4oKSk7CkBAIC02NDA1LDEzICs2
NDEzLDEzIEBAIHZvaWQgdGVzdEludDMyVG9Eb3VibGVQYXJ0aWFsUmVnaXN0ZXJXaXQKICAgICBW
YWx1ZSogZGVjQ291bnRlciA9IGxvb3AtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmln
aW4oKSwgbG9vcENvdW50ZXIsIGxvb3AtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9y
aWdpbigpLCAxKSk7CiAgICAgVXBzaWxvblZhbHVlKiBkZWNDb3VudGVyVXBzaWxvbiA9IGxvb3At
PmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCBkZWNDb3VudGVyKTsKICAg
ICBkZWNDb3VudGVyVXBzaWxvbi0+c2V0UGhpKGxvb3BDb3VudGVyKTsKLSAgICBsb29wLT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBsb29wLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIGRlY0NvdW50ZXIsCiAgICAg
ICAgIEZyZXF1ZW50ZWRCbG9jayhsb29wKSwgRnJlcXVlbnRlZEJsb2NrKGRvbmUpKTsKIAogICAg
IC8vIFRhaWwuCi0gICAgZG9uZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgdXBkYXRlZFRvdGFsKTsKKyAgICBkb25lLT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdXBkYXRlZFRvdGFsKTsKICAgICBDSEVDSyhpc0lk
ZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgMTAwMDAwKSwgNTAwMDA1MDAwMC4p
KTsKIH0KIApAQCAtNjQyMiwxOCArNjQzMCwxOCBAQCB2b2lkIHRlc3RCcmFuY2goKQogICAgIEJh
c2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVs
c2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBC
cmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjAp
KSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVs
c2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
dGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTY0NDksMTYgKzY0NTcsMTYgQEAgdm9pZCB0ZXN0
QnJhbmNoUHRyKCkKICAgICBCYXNpY0Jsb2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsK
ICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2so
ZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNjQ3NSw3ICs2NDgzLDcgQEAgdm9pZCB0ZXN0
RGlhbW9uZCgpCiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAg
ICAgQmFzaWNCbG9jayogZG9uZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKQEAgLTY0ODQsMTYgKzY0
OTIsMTYgQEAgdm9pZCB0ZXN0RGlhbW9uZCgpCiAKICAgICBVcHNpbG9uVmFsdWUqIHRoZW5SZXN1
bHQgPSB0aGVuQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4oCiAgICAgICAgIHByb2MsIE9y
aWdpbigpLCB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IDEpKTsKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwg
T3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhkb25lKSk7CisgICAgdGhlbkNhc2UtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRvbmUp
KTsKIAogICAgIFVwc2lsb25WYWx1ZSogZWxzZVJlc3VsdCA9IGVsc2VDYXNlLT5hcHBlbmROZXc8
VXBzaWxvblZhbHVlPigKICAgICAgICAgcHJvYywgT3JpZ2luKCksIGVsc2VDYXNlLT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwotICAgIGVsc2VDYXNlLT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2Nr
KGRvbmUpKTsKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAs
IE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZG9uZSkpOwogCiAgICAgVmFsdWUqIHBoaSA9IGRv
bmUtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBJbnQzMiwgT3JpZ2luKCkpOwogICAgIHRo
ZW5SZXN1bHQtPnNldFBoaShwaGkpOwogICAgIGVsc2VSZXN1bHQtPnNldFBoaShwaGkpOwotICAg
IGRvbmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBo
aSk7CisgICAgZG9uZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHBoaSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIENIRUNLKGlu
dm9rZTxpbnQ+KCpjb2RlLCA0MikgPT0gMSk7CkBAIC02NTA3LDcgKzY1MTUsNyBAQCB2b2lkIHRl
c3RCcmFuY2hOb3RFcXVhbCgpCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJs
b2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBOb3RFcXVhbCwgT3JpZ2luKCks
CkBAIC02NTE3LDExICs2NTI1LDExIEBAIHZvaWQgdGVzdEJyYW5jaE5vdEVxdWFsKCkKICAgICAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSks
CiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNl
Q2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRo
ZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC02NTM3LDcgKzY1NDUsNyBAQCB2b2lkIHRlc3RCcmFu
Y2hOb3RFcXVhbENvbW11dGUoKQogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRC
bG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTm90RXF1YWwsIE9yaWdpbigp
LApAQCAtNjU0NywxMSArNjU1NSwxMSBAQCB2b2lkIHRlc3RCcmFuY2hOb3RFcXVhbENvbW11dGUo
KQogICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSkpLAogICAgICAgICBGcmVxdWVudGVk
QmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5D
YXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVu
Q2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAg
IGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsK
IApAQCAtNjU2Nyw3ICs2NTc1LDcgQEAgdm9pZCB0ZXN0QnJhbmNoTm90RXF1YWxOb3RFcXVhbCgp
CiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNC
bG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
CiAgICAgICAgICAgICBwcm9jLCBOb3RFcXVhbCwgT3JpZ2luKCksCkBAIC02NTgwLDExICs2NTg4
LDExIEBAIHZvaWQgdGVzdEJyYW5jaE5vdEVxdWFsTm90RXF1YWwoKQogICAgICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKSwKICAgICAgICAg
RnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAK
LSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAx
KSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNh
c2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAwKSk7CiAKQEAgLTY2MDAsNyArNjYwOCw3IEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsKCkK
ICAgICBCYXNpY0Jsb2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Js
b2NrKiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIEVxdWFsLCBPcmlnaW4oKSwKQEAgLTY2MTAsMTEgKzY2MTgsMTEg
QEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWwoKQogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2Nr
KHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2Ut
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKLSAgICBlbHNl
Q2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxz
ZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKQEAg
LTY2MzAsNyArNjYzOCw3IEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsRXF1YWwoKQogICAgIEJhc2lj
QmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VD
YXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFu
Y2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgRXF1YWwsIE9yaWdpbigpLApAQCAtNjY0MywxMSArNjY1MSwxMSBAQCB2b2lkIHRl
c3RCcmFuY2hFcXVhbEVxdWFsKCkKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMy
VmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVu
Q2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNhc2Ut
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNl
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC02NjYz
LDcgKzY2NzEsNyBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbENvbW11dGUoKQogICAgIEJhc2ljQmxv
Y2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNl
ID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gs
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgRXF1YWwsIE9yaWdpbigpLApAQCAtNjY3MywxMSArNjY4MSwxMSBAQCB2b2lkIHRlc3RC
cmFuY2hFcXVhbENvbW11dGUoKQogICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSkpLAog
ICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNh
c2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVu
Q2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIDApKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIDEpKTsKIApAQCAtNjY5Myw3ICs2NzAxLDcgQEAgdm9pZCB0ZXN0QnJhbmNo
RXF1YWxFcXVhbDEoKQogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygp
OwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgRXF1YWwsIE9yaWdpbigpLApAQCAtNjcw
NiwxMSArNjcxNCwxMSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbEVxdWFsMSgpCiAgICAgICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpLAogICAg
ICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2Up
KTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2Fz
ZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDApKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBl
bHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDEpKTsKIApAQCAtNjcyOCw3ICs2NzM2LDcgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1
YWxPclVub3JkZXJlZEFyZ3MoZG91YgogCiAgICAgVmFsdWUqIGFyZ3VtZW50QSA9IHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1l
bnRGUFIwKTsKICAgICBWYWx1ZSogYXJndW1lbnRCID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50
UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjEpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEVxdWFsT3JVbm9yZGVyZWQsIE9yaWdp
bigpLApAQCAtNjczNiwxMSArNjc0NCwxMSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRl
cmVkQXJncyhkb3ViCiAgICAgICAgICAgICBhcmd1bWVudEIpLAogICAgICAgICBGcmVxdWVudGVk
QmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5D
YXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVu
Q2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7CiAKLSAg
ICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMTMp
KTsKIApAQCAtNjc2MCw3ICs2NzY4LDcgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJl
ZEFyZ3MoZmxvYQogICAgIFZhbHVlKiBhcmd1bWVudEIgPSByb290LT5hcHBlbmROZXc8TWVtb3J5
VmFsdWU+KHByb2MsIExvYWQsIEZsb2F0LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjEpKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEVxdWFsT3JV
bm9yZGVyZWQsIE9yaWdpbigpLApAQCAtNjc2OCwxMSArNjc3NiwxMSBAQCB2b2lkIHRlc3RCcmFu
Y2hFcXVhbE9yVW5vcmRlcmVkQXJncyhmbG9hCiAgICAgICAgICAgICBhcmd1bWVudEIpLAogICAg
ICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2Up
KTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2Fz
ZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDQyKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
ZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAtMTMpKTsKIApAQCAtNjc5NywxNiArNjgwNSwxNiBAQCB2b2lkIHRlc3RCcmFu
Y2hOb3RFcXVhbEFuZE9yZGVyZWRBcmdzKGRvCiAgICAgICAgIHByb2MsIEVxdWFsLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IDApLAogICAgICAgICBlcXVhbE9yVW5vcmRlcmVkKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIG5vdEVxdWFsQW5kT3JkZXJlZCwKICAgICAg
ICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7
CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2Ut
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCA0MikpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVs
c2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgLTEzKSk7CiAKQEAgLTY4MzMsMTYgKzY4NDEsMTYgQEAgdm9pZCB0ZXN0QnJhbmNo
Tm90RXF1YWxBbmRPcmRlcmVkQXJncyhmbAogICAgICAgICBwcm9jLCBFcXVhbCwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAw
KSwKICAgICAgICAgZXF1YWxPclVub3JkZXJlZCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICBub3RFcXVhbEFuZE9yZGVyZWQsCiAgICAgICAg
IEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwog
Ci0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
NDIpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNl
Q2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIC0xMykpOwogCkBAIC02ODU5LDcgKzY4NjcsNyBAQCB2b2lkIHRlc3RCcmFuY2hFcXVh
bE9yVW5vcmRlcmVkRG91YmxlQXJnCiAKICAgICBWYWx1ZSogYXJndW1lbnRBID0gcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVu
dEZQUjApOwogICAgIFZhbHVlKiBhcmd1bWVudEIgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3Vi
bGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
QnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIEVxdWFsT3JVbm9yZGVyZWQsIE9yaWdpbigpLApAQCAtNjg2NywxMSArNjg3
NSwxMSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVkRG91YmxlQXJnCiAgICAgICAg
ICAgICBhcmd1bWVudEIpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVx
dWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMTMpKTsKIApAQCAtNjg5MCw3ICs2ODk4
LDcgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJlZEZsb2F0QXJnSQogICAgICAgICBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiBhcmd1bWVudEIgPSByb290LT5hcHBlbmROZXc8
Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7CiAKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBFcXVhbE9yVW5vcmRlcmVkLCBPcmlnaW4oKSwKQEAgLTY4
OTgsMTEgKzY5MDYsMTEgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJlZEZsb2F0QXJn
SQogICAgICAgICAgICAgYXJndW1lbnRCKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5D
YXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwogCi0gICAgZWxzZUNhc2Ut
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNl
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTEzKSk7CiAKQEAgLTY5
MTksNyArNjkyNyw3IEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsT3JVbm9yZGVyZWREb3VibGVJbW0K
IAogICAgIFZhbHVlKiBhcmd1bWVudEEgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiBhcmd1bWVudEIgPSByb290LT5hcHBl
bmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEVxdWFsT3JVbm9yZGVyZWQsIE9yaWdpbigpLApA
QCAtNjkyNywxMSArNjkzNSwxMSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVkRG91
YmxlSW1tCiAgICAgICAgICAgICBhcmd1bWVudEIpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2so
dGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7CiAKLSAgICBlbHNl
Q2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxz
ZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMTMpKTsKIApA
QCAtNjk0OSw3ICs2OTU3LDcgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJlZEZsb2F0
SW1tcwogICAgIFZhbHVlKiBhcmd1bWVudEEgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIGFyZ3VtZW50QiA9IHJvb3QtPmFw
cGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKIAotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEVxdWFsT3JVbm9yZGVyZWQsIE9yaWdpbigp
LApAQCAtNjk1NywxMSArNjk2NSwxMSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVk
RmxvYXRJbW1zCiAgICAgICAgICAgICBhcmd1bWVudEIpLAogICAgICAgICBGcmVxdWVudGVkQmxv
Y2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNl
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2Fz
ZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7CiAKLSAgICBl
bHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
ZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMTMpKTsK
IApAQCAtNjk4Myw3ICs2OTkxLDcgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJlZEZs
b2F0V2l0aAogICAgIFZhbHVlKiBhcmd1bWVudDFBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGFyZ3VtZW50MSk7CiAgICAgVmFs
dWUqIGFyZ3VtZW50MkFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9h
dFRvRG91YmxlLCBPcmlnaW4oKSwgYXJndW1lbnQyKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIEVxdWFsT3JVbm9yZGVyZWQsIE9yaWdpbigpLApAQCAtNjk5MSwx
MSArNjk5OSwxMSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVkRmxvYXRXaXRoCiAg
ICAgICAgICAgICBhcmd1bWVudDJBc0RvdWJsZSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0
aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpKTsKIAotICAgIGVsc2VD
YXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNl
Q2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xMykpOwogCkBA
IC03MDEwLDE2ICs3MDE4LDE2IEBAIHZvaWQgdGVzdEJyYW5jaEZvbGQoaW50IHZhbHVlKQogICAg
IEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sq
IGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNh
c2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNzAzNCwy
MyArNzA0MiwyMyBAQCB2b2lkIHRlc3REaWFtb25kRm9sZChpbnQgdmFsdWUpCiAgICAgQmFzaWNC
bG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZG9uZSA9
IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIHZhbHVlKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVl
bnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKICAgICBVcHNpbG9uVmFsdWUqIHRoZW5SZXN1bHQgPSB0
aGVuQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4oCiAgICAgICAgIHByb2MsIE9yaWdpbigp
LCB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsK
LSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2lu
KCksIEZyZXF1ZW50ZWRCbG9jayhkb25lKSk7CisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRvbmUpKTsKIAog
ICAgIFVwc2lsb25WYWx1ZSogZWxzZVJlc3VsdCA9IGVsc2VDYXNlLT5hcHBlbmROZXc8VXBzaWxv
blZhbHVlPigKICAgICAgICAgcHJvYywgT3JpZ2luKCksIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29u
c3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRvbmUp
KTsKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdp
bigpLCBGcmVxdWVudGVkQmxvY2soZG9uZSkpOwogCiAgICAgVmFsdWUqIHBoaSA9IGRvbmUtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBJbnQzMiwgT3JpZ2luKCkpOwogICAgIHRoZW5SZXN1
bHQtPnNldFBoaShwaGkpOwogICAgIGVsc2VSZXN1bHQtPnNldFBoaShwaGkpOwotICAgIGRvbmUt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBoaSk7Cisg
ICAgZG9uZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBo
aSk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYykgPT0gISF2YWx1ZSk7CiB9
CkBAIC03MDYyLDcgKzcwNzAsNyBAQCB2b2lkIHRlc3RCcmFuY2hOb3RFcXVhbEZvbGRQdHIoaW50
cHRyX3QgCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAg
QmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBOb3RFcXVhbCwgT3JpZ2luKCksCkBAIC03MDcwLDEx
ICs3MDc4LDExIEBAIHZvaWQgdGVzdEJyYW5jaE5vdEVxdWFsRm9sZFB0cihpbnRwdHJfdCAKICAg
ICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
MCkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2so
ZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNzA4OCw3ICs3MDk2LDcgQEAgdm9pZCB0ZXN0
QnJhbmNoRXF1YWxGb2xkUHRyKGludHB0cl90IHZhbAogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNl
ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRC
bG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgRXF1YWws
IE9yaWdpbigpLApAQCAtNzA5NiwxMSArNzEwNCwxMSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbEZv
bGRQdHIoaW50cHRyX3QgdmFsCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5D
YXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2Ut
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTcxMTQs
MTggKzcxMjIsMTggQEAgdm9pZCB0ZXN0QnJhbmNoTG9hZFB0cigpCiAgICAgQmFzaWNCbG9jayog
dGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBw
cm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50
ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29u
c3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC03MTQ0LDE4ICs3MTUyLDE4IEBA
IHZvaWQgdGVzdEJyYW5jaExvYWQzMigpCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9j
LmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7
CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkLCBJ
bnQzMiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICBG
cmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAot
ICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEp
KTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2Fz
ZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDApKTsKIApAQCAtNzE3NCwxOCArNzE4MiwxOCBAQCB2b2lkIHRlc3RCcmFuY2hMb2FkOFMo
KQogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2lj
QmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZDhTLCBPcmlnaW4oKSwKICAgICAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZy
ZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29u
c3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC03MjA0LDE4ICs3MjEy
LDE4IEBAIHZvaWQgdGVzdEJyYW5jaExvYWQ4WigpCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2Ug
PSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJs
b2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBM
b2FkOFosIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAg
RnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAK
LSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAx
KSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNh
c2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAwKSk7CiAKQEAgLTcyMzQsMTggKzcyNDIsMTggQEAgdm9pZCB0ZXN0QnJhbmNoTG9hZDE2
UygpCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFz
aWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1v
cnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkMTZTLCBPcmlnaW4oKSwKICAgICAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BS
SW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSks
IEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC03MjY0LDE4ICs3
MjcyLDE4IEBAIHZvaWQgdGVzdEJyYW5jaExvYWQxNlooKQogICAgIEJhc2ljQmxvY2sqIHRoZW5D
YXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5h
ZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgTG9hZDE2WiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAg
ICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2Up
KTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2Fz
ZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBl
bHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDApKTsKIApAQCAtNzI5NSw3ICs3MzAzLDcgQEAgdm9pZCB0ZXN0QnJhbmNoOFdp
dGhMb2FkOFpJbmRleCgpCiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2Nr
KCk7CiAKICAgICBpbnQgbG9nU2NhbGUgPSAxOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
QnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIEFib3ZlLCBPcmlnaW4oKSwKQEAgLTczMTEsMTEgKzczMTksMTEgQEAgdm9p
ZCB0ZXN0QnJhbmNoOFdpdGhMb2FkOFpJbmRleCgpCiAgICAgICAgICAgICByb290LT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMjUwKSksCiAgICAgICAgIEZyZXF1ZW50
ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhl
bkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRo
ZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0g
ICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkp
OwogCkBAIC03MzU3LDcgKzczNjUsNyBAQCB2b2lkIHRlc3RDb21wbGV4KHVuc2lnbmVkIG51bVZh
cnMsIHVuc2lnCiAgICAgICAgICAgICBCYXNpY0Jsb2NrKiBlbHNlQmxvY2sgPSBwcm9jLmFkZEJs
b2NrKCk7CiAgICAgICAgICAgICBCYXNpY0Jsb2NrKiBjb250aW51YXRpb24gPSBwcm9jLmFkZEJs
b2NrKCk7CiAKLSAgICAgICAgICAgIGN1cnJlbnQtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgICAgICAgICAgY3VycmVudC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAg
ICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksIHZhcnNbcHJlZGljYXRlVmFySW5kZXhdLAogICAg
ICAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQmxvY2spLCBGcmVxdWVudGVkQmxvY2so
ZWxzZUJsb2NrKSk7CiAKQEAgLTczNjYsMTQgKzczNzQsMTQgQEAgdm9pZCB0ZXN0Q29tcGxleCh1
bnNpZ25lZCBudW1WYXJzLCB1bnNpZwogICAgICAgICAgICAgICAgIHRoZW5CbG9jay0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCB2YXJzW3RoZW5JbmNWYXJJbmRleF0sIG9u
ZSkpOwogICAgICAgICAgICAgVXBzaWxvblZhbHVlKiB0aGVuRWxzZVJlc3VsdCA9IHRoZW5CbG9j
ay0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgT3JpZ2lu
KCksIHZhcnNbZWxzZUluY1ZhckluZGV4XSk7Ci0gICAgICAgICAgICB0aGVuQmxvY2stPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2so
Y29udGludWF0aW9uKSk7CisgICAgICAgICAgICB0aGVuQmxvY2stPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGNvbnRpbnVhdGlvbikp
OwogCiAgICAgICAgICAgICBVcHNpbG9uVmFsdWUqIGVsc2VFbHNlUmVzdWx0ID0gZWxzZUJsb2Nr
LT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4o
KSwKICAgICAgICAgICAgICAgICBlbHNlQmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRk
LCBPcmlnaW4oKSwgdmFyc1tlbHNlSW5jVmFySW5kZXhdLCBvbmUpKTsKICAgICAgICAgICAgIFVw
c2lsb25WYWx1ZSogZWxzZVRoZW5SZXN1bHQgPSBlbHNlQmxvY2stPmFwcGVuZE5ldzxVcHNpbG9u
VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLCB2YXJzW3RoZW5JbmNWYXJJ
bmRleF0pOwotICAgICAgICAgICAgZWxzZUJsb2NrLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGNvbnRpbnVhdGlvbikpOworICAg
ICAgICAgICAgZWxzZUJsb2NrLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3Jp
Z2luKCksIEZyZXF1ZW50ZWRCbG9jayhjb250aW51YXRpb24pKTsKIAogICAgICAgICAgICAgVmFs
dWUqIHRoZW5QaGkgPSBjb250aW51YXRpb24tPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBJ
bnQzMiwgT3JpZ2luKCkpOwogICAgICAgICAgICAgdGhlblRoZW5SZXN1bHQtPnNldFBoaSh0aGVu
UGhpKTsKQEAgLTczOTgsNyArNzQwNiw3IEBAIHZvaWQgdGVzdENvbXBsZXgodW5zaWduZWQgbnVt
VmFycywgdW5zaWcKICAgICAgICAgICAgIAogICAgICAgICAgICAgVmFsdWUqIHN0YXJ0SW5kZXgg
PSB2YXJzWygoaSA+PiAxKSArIDEpICUgbnVtVmFyc107CiAgICAgICAgICAgICBWYWx1ZSogc3Rh
cnRTdW0gPSBjdXJyZW50LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
MCk7Ci0gICAgICAgICAgICBjdXJyZW50LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAg
ICAgICAgIGN1cnJlbnQtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgICAgICBw
cm9jLCBCcmFuY2gsIE9yaWdpbigpLCBzdGFydEluZGV4LAogICAgICAgICAgICAgICAgIEZyZXF1
ZW50ZWRCbG9jayhsb29wRW50cnkpLCBGcmVxdWVudGVkQmxvY2sobG9vcFNraXApKTsKIApAQCAt
NzQwNiw3ICs3NDE0LDcgQEAgdm9pZCB0ZXN0Q29tcGxleCh1bnNpZ25lZCBudW1WYXJzLCB1bnNp
ZwogICAgICAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLCBzdGFydEluZGV4KTsKICAgICAgICAg
ICAgIFVwc2lsb25WYWx1ZSogc3RhcnRTdW1Gb3JCb2R5ID0gbG9vcEVudHJ5LT5hcHBlbmROZXc8
VXBzaWxvblZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgc3RhcnRTdW0p
OwotICAgICAgICAgICAgbG9vcEVudHJ5LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBK
dW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3BCb2R5KSk7CisgICAgICAgICAgICBs
b29wRW50cnktPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJl
cXVlbnRlZEJsb2NrKGxvb3BCb2R5KSk7CiAKICAgICAgICAgICAgIFZhbHVlKiBib2R5SW5kZXgg
PSBsb29wQm9keS0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBQaGksIEludDMyLCBPcmlnaW4oKSk7
CiAgICAgICAgICAgICBzdGFydEluZGV4Rm9yQm9keS0+c2V0UGhpKGJvZHlJbmRleCk7CkBAIC03
NDMxLDE5ICs3NDM5LDE5IEBAIHZvaWQgdGVzdENvbXBsZXgodW5zaWduZWQgbnVtVmFycywgdW5z
aWcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvb3BCb2R5LT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwcm9jLCBPcmlnaW4oKSwgbnVtVmFycyAtIDEpKSksCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbG9vcEJvZHktPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAy
KSkpKSk7Ci0gICAgICAgICAgICBsb29wQm9keS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgICAgICAgICBsb29wQm9keS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAg
ICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksIG5ld0JvZHlJbmRleCwKICAgICAgICAgICAgICAg
ICBGcmVxdWVudGVkQmxvY2sobG9vcFJlZW50cnkpLCBGcmVxdWVudGVkQmxvY2sobG9vcEV4aXQp
KTsKIAogICAgICAgICAgICAgbG9vcFJlZW50cnktPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBuZXdCb2R5SW5kZXgsIGJvZHlJbmRleCk7CiAgICAgICAgICAgICBsb29w
UmVlbnRyeS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIG5ld0JvZHlT
dW0sIGJvZHlTdW0pOwotICAgICAgICAgICAgbG9vcFJlZW50cnktPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sobG9vcEJvZHkpKTsK
KyAgICAgICAgICAgIGxvb3BSZWVudHJ5LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVt
cCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhsb29wQm9keSkpOwogCiAgICAgICAgICAgICBV
cHNpbG9uVmFsdWUqIGV4aXRTdW0gPSBsb29wRXhpdC0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4o
cHJvYywgT3JpZ2luKCksIG5ld0JvZHlTdW0pOwotICAgICAgICAgICAgbG9vcEV4aXQtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2so
Y29udGludWF0aW9uKSk7CisgICAgICAgICAgICBsb29wRXhpdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soY29udGludWF0aW9uKSk7
CiAKICAgICAgICAgICAgIFVwc2lsb25WYWx1ZSogc2tpcFN1bSA9IGxvb3BTa2lwLT5hcHBlbmRO
ZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgc3RhcnRTdW0pOwotICAgICAgICAgICAg
bG9vcFNraXAtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBG
cmVxdWVudGVkQmxvY2soY29udGludWF0aW9uKSk7CisgICAgICAgICAgICBsb29wU2tpcC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2so
Y29udGludWF0aW9uKSk7CiAKICAgICAgICAgICAgIFZhbHVlKiBmaW5hbFN1bSA9IGNvbnRpbnVh
dGlvbi0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBQaGksIEludDMyLCBPcmlnaW4oKSk7CiAgICAg
ICAgICAgICBleGl0U3VtLT5zZXRQaGkoZmluYWxTdW0pOwpAQCAtNzQ1NCw3ICs3NDYyLDcgQEAg
dm9pZCB0ZXN0Q29tcGxleCh1bnNpZ25lZCBudW1WYXJzLCB1bnNpZwogICAgICAgICB9CiAgICAg
fQogCi0gICAgY3VycmVudC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgdmFyc1swXSk7CisgICAgY3VycmVudC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHZhcnNbMF0pOwogCiAgICAgY29tcGlsZShwcm9jKTsKIApA
QCAtNzQ4MCw3ICs3NDg4LDcgQEAgdm9pZCB0ZXN0U2ltcGxlUGF0Y2hwb2ludCgpCiAgICAgICAg
ICAgICBDSEVDSyhwYXJhbXNbMl0uaXNHUFIoKSk7CiAgICAgICAgICAgICBhZGQzMihqaXQsIHBh
cmFtc1sxXS5ncHIoKSwgcGFyYW1zWzJdLmdwcigpLCBwYXJhbXNbMF0uZ3ByKCkpOwogICAgICAg
ICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5k
UnVuPGludD4ocHJvYywgMSwgMikgPT0gMyk7CiB9CkBAIC03NTExLDcgKzc1MTksNyBAQCB2b2lk
IHRlc3RTaW1wbGVQYXRjaHBvaW50V2l0aG91dE91cHV0Q2xvCiAgICAgICAgIH0pOwogCiAgICAg
VmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4o
KSwgYXJnMSwgYXJnMik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVB
bmRSdW48aW50Pihwcm9jLCAxLCAyKSA9PSAzKTsKIH0KQEAgLTc1NjAsNyArNzU2OCw3IEBAIHZv
aWQgdGVzdFNpbXBsZVBhdGNocG9pbnRXaXRoT3VwdXRDbG9iYmUKIAogICAgIFZhbHVlKiByZXN1
bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIHBhdGNocG9p
bnQsCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwg
YXJnMSwgYXJnMikpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5k
UnVuPGludD4ocHJvYywgMSwgMikgPT0gNTgpOwogfQpAQCAtNzU5MSw3ICs3NTk5LDcgQEAgdm9p
ZCB0ZXN0U2ltcGxlUGF0Y2hwb2ludFdpdGhvdXRPdXB1dENsbwogICAgICAgICB9KTsKIAogICAg
IFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2lu
KCksIGFyZzEsIGFyZzIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhjb21waWxl
QW5kUnVuPGRvdWJsZT4ocHJvYywgMS41LCAyLjUpID09IDQpOwogfQpAQCAtNzYzMiw3ICs3NjQw
LDcgQEAgdm9pZCB0ZXN0U2ltcGxlUGF0Y2hwb2ludFdpdGhPdXB1dENsb2JiZQogCiAgICAgVmFs
dWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwg
cGF0Y2hwb2ludCwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9y
aWdpbigpLCBhcmcxLCBhcmcyKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGNv
bXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCAxLjUsIDIuNSkgPT0gNTkuNik7CiB9CkBAIC03NjU3
LDcgKzc2NjUsNyBAQCB2b2lkIHRlc3RQYXRjaHBvaW50V2l0aEVhcmx5Q2xvYmJlcigpCiAgICAg
ICAgICAgICAgICAgYWRkMzIoaml0LCBwYXJhbXNbMV0uZ3ByKCksIHBhcmFtc1syXS5ncHIoKSwg
cGFyYW1zWzBdLmdwcigpKTsKICAgICAgICAgICAgIH0pOwogCi0gICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOwor
ICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcGF0Y2hwb2ludCk7CiAKICAgICAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2Ms
IDEsIDIpID09IDMpOwogICAgIH07CkBAIC03NjkwLDcgKzc2OTgsNyBAQCB2b2lkIHRlc3RQYXRj
aHBvaW50Q2FsbEFyZygpCiAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQ
UkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBwYXJhbXNbMl0ub2Zmc2V0RnJvbUZQKCkpLAogICAg
ICAgICAgICAgICAgIHBhcmFtc1swXS5ncHIoKSk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBwYXRjaHBvaW50KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAxLCAy
KSA9PSAzKTsKIH0KQEAgLTc3MTMsNyArNzcyMSw3IEBAIHZvaWQgdGVzdFBhdGNocG9pbnRGaXhl
ZFJlZ2lzdGVyKCkKICAgICAgICAgICAgIENIRUNLKHBhcmFtc1syXSA9PSBWYWx1ZVJlcChHUFJJ
bmZvOjpyZWdUMSkpOwogICAgICAgICAgICAgYWRkMzIoaml0LCBHUFJJbmZvOjpyZWdUMCwgR1BS
SW5mbzo6cmVnVDEsIHBhcmFtc1swXS5ncHIoKSk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBwYXRjaHBvaW50KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAxLCAy
KSA9PSAzKTsKIH0KQEAgLTc3MzcsNyArNzc0NSw3IEBAIHZvaWQgdGVzdFBhdGNocG9pbnRBbnko
VmFsdWVSZXAgcmVwKQogICAgICAgICAgICAgQ0hFQ0socGFyYW1zWzJdLmlzR1BSKCkpOwogICAg
ICAgICAgICAgYWRkMzIoaml0LCBwYXJhbXNbMV0uZ3ByKCksIHBhcmFtc1syXS5ncHIoKSwgcGFy
YW1zWzBdLmdwcigpKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOwog
CiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIDEsIDIpID09IDMpOwogfQpAQCAt
Nzc3Myw3ICs3NzgxLDcgQEAgdm9pZCB0ZXN0UGF0Y2hwb2ludEdQU2NyYXRjaCgpCiAgICAgICAg
ICAgICBDSEVDSyghcGFyYW1zLnVuYXZhaWxhYmxlUmVnaXN0ZXJzKCkuZ2V0KHBhcmFtcy5ncFNj
cmF0Y2goMSkpKTsKICAgICAgICAgICAgIGFkZDMyKGppdCwgcGFyYW1zWzFdLmdwcigpLCBwYXJh
bXNbMl0uZ3ByKCksIHBhcmFtc1swXS5ncHIoKSk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBwYXRjaHBvaW50KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAxLCAy
KSA9PSAzKTsKIH0KQEAgLTc4MDMsNyArNzgxMSw3IEBAIHZvaWQgdGVzdFBhdGNocG9pbnRGUFNj
cmF0Y2goKQogICAgICAgICAgICAgQ0hFQ0soIXBhcmFtcy51bmF2YWlsYWJsZVJlZ2lzdGVycygp
LmdldChwYXJhbXMuZnBTY3JhdGNoKDEpKSk7CiAgICAgICAgICAgICBhZGQzMihqaXQsIHBhcmFt
c1sxXS5ncHIoKSwgcGFyYW1zWzJdLmdwcigpLCBwYXJhbXNbMF0uZ3ByKCkpOwogICAgICAgICB9
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBwYXRjaHBvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVu
PGludD4ocHJvYywgMSwgMikgPT0gMyk7CiB9CkBAIC03ODQ1LDcgKzc4NTMsNyBAQCB2b2lkIHRl
c3RQYXRjaHBvaW50TG90c09mTGF0ZUFueXMoKQogICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIH0KICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOwogCiAgICAgQ0hF
Q0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MpID09ICh0aGluZ3Muc2l6ZSgpICogKHRoaW5ncy5z
aXplKCkgLSAxKSkgLyAyKTsKIH0KQEAgLTc4NzMsNyArNzg4MSw3IEBAIHZvaWQgdGVzdFBhdGNo
cG9pbnRBbnlJbW0oVmFsdWVSZXAgcmVwKQogICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6
VHJ1c3RlZEltbTMyKHN0YXRpY19jYXN0PGludDMyX3Q+KHBhcmFtc1syXS52YWx1ZSgpKSksCiAg
ICAgICAgICAgICAgICAgcGFyYW1zWzFdLmdwcigpLCBwYXJhbXNbMF0uZ3ByKCkpOwogICAgICAg
ICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5k
UnVuPGludD4ocHJvYywgMSkgPT0gNDMpOwogfQpAQCAtNzg5OSw3ICs3OTA3LDcgQEAgdm9pZCB0
ZXN0UGF0Y2hwb2ludE1hbnlJbW1zKCkKICAgICAgICAgICAgIENIRUNLKHBhcmFtc1syXSA9PSBW
YWx1ZVJlcDo6Y29uc3RhbnQoNDMwMDAwMDAwMDAwMDBsbCkpOwogICAgICAgICAgICAgQ0hFQ0so
cGFyYW1zWzNdID09IFZhbHVlUmVwOjpjb25zdGFudChiaXR3aXNlX2Nhc3Q8aW50NjRfdD4oNDIu
NSkpKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgMCkpOwogCkBAIC03OTI1LDcgKzc5MzMsNyBAQCB2b2lkIHRlc3RQYXRjaHBvaW50V2l0
aFJlZ2lzdGVyUmVzdWx0KCkKICAgICAgICAgICAgIENIRUNLKHBhcmFtc1syXS5pc0dQUigpKTsK
ICAgICAgICAgICAgIGFkZDMyKGppdCwgcGFyYW1zWzFdLmdwcigpLCBwYXJhbXNbMl0uZ3ByKCks
IEdQUkluZm86Om5vbkFyZ0dQUjApOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hw
b2ludCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywgMSwgMikgPT0gMyk7
CiB9CkBAIC03OTUxLDcgKzc5NTksNyBAQCB2b2lkIHRlc3RQYXRjaHBvaW50V2l0aFN0YWNrQXJn
dW1lbnRSZXN1CiAgICAgICAgICAgICBqaXQuYWRkMzIocGFyYW1zWzFdLmdwcigpLCBwYXJhbXNb
Ml0uZ3ByKCksIGppdC5zY3JhdGNoUmVnaXN0ZXIoKSk7CiAgICAgICAgICAgICBqaXQuc3RvcmUz
MihqaXQuc2NyYXRjaFJlZ2lzdGVyKCksIENDYWxsSGVscGVyczo6QWRkcmVzcyhDQ2FsbEhlbHBl
cnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCAwKSk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBwYXRjaHBvaW50KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAxLCAy
KSA9PSAzKTsKIH0KQEAgLTc5ODAsNyArNzk4OCw3IEBAIHZvaWQgdGVzdFBhdGNocG9pbnRXaXRo
QW55UmVzdWx0KCkKICAgICAgICAgICAgIGppdC5jb252ZXJ0SW50MzJUb0RvdWJsZShHUFJJbmZv
OjpyZWdUMCwgRlBSSW5mbzo6ZnBSZWdUMCk7CiAgICAgICAgICAgICBqaXQuc3RvcmVEb3VibGUo
RlBSSW5mbzo6ZnBSZWdUMCwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFt
ZVJlZ2lzdGVyLCBwYXJhbXNbMF0ub2Zmc2V0RnJvbUZQKCkpKTsKICAgICAgICAgfSk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0
Y2hwb2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHBhdGNocG9pbnQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxkb3VibGU+
KHByb2MsIDEsIDIpID09IDMpOwogfQpAQCAtODAwMiw3ICs4MDEwLDcgQEAgdm9pZCB0ZXN0U2lt
cGxlQ2hlY2soKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAg
ICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDApKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CkBAIC04MDIx
LDcgKzgwMjksNyBAQCB2b2lkIHRlc3RDaGVja0ZhbHNlKCkKICAgICAgICAgWyZdIChDQ2FsbEhl
bHBlcnMmLCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7CiAgICAgICAgICAgICBD
SEVDSyghIlRoaXMgc2hvdWxkIG5vdCBoYXZlIGV4ZWN1dGVkIik7CiAgICAgICAgIH0pOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGF1dG8gY29kZSA9IGNv
bXBpbGUocHJvYyk7CkBAIC04MDQ3LDcgKzgwNTUsNyBAQCB2b2lkIHRlc3RDaGVja1RydWUoKQog
ICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQu
cmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDAp
KTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CkBAIC04MDc4LDcgKzgwODYsNyBA
QCB2b2lkIHRlc3RDaGVja0xlc3NUaGFuKCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25F
cGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxl
KHByb2MpOwpAQCAtODEyNCw3ICs4MTMyLDcgQEAgdm9pZCB0ZXN0Q2hlY2tNZWdhQ29tYm8oKQog
ICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQu
cmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDAp
KTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CkBAIC04MTc5LDcgKzgxODcsNyBA
QCB2b2lkIHRlc3RDaGVja1RyaWNreU1lZ2FDb21ibygpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1
bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgYXV0byBjb2RlID0g
Y29tcGlsZShwcm9jKTsKQEAgLTgyNDMsNyArODI1MSw3IEBAIHZvaWQgdGVzdENoZWNrVHdvTWVn
YUNvbWJvcygpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAg
ICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgMCkpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKQEAgLTgyOTMs
NyArODMwMSw3IEBAIHZvaWQgdGVzdENoZWNrVHdvTm9uUmVkdW5kYW50TWVnYUNvbWJvcygKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkOFMsIE9yaWdpbigp
LCBwdHIpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgNDIpKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4o
KSwgYnJhbmNoUHJlZGljYXRlLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBG
cmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKICAgICAKQEAgLTgzMDksNyArODMxNyw3IEBAIHZv
aWQgdGVzdENoZWNrVHdvTm9uUmVkdW5kYW50TWVnYUNvbWJvcygKICAgICAgICAgICAgIGppdC5l
bWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9
KTsKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2Ut
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
dGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MykpOwog
CiAgICAgQ2hlY2tWYWx1ZSogY2hlY2syID0gZWxzZUNhc2UtPmFwcGVuZE5ldzxDaGVja1ZhbHVl
Pihwcm9jLCBDaGVjaywgT3JpZ2luKCksIGNoZWNrUHJlZGljYXRlKTsKQEAgLTgzMjQsNyArODMz
Miw3IEBAIHZvaWQgdGVzdENoZWNrVHdvTm9uUmVkdW5kYW50TWVnYUNvbWJvcygKICAgICAgICAg
ICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwog
ICAgICAgICB9KTsKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
ZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCA0NSkpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKQEAgLTgzNzgsNyArODM4
Niw3IEBAIHZvaWQgdGVzdENoZWNrQWRkSW1tKCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rp
b25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGNoZWNrQWRkKSk7CiAKQEAgLTg0
MTQsNyArODQyMiw3IEBAIHZvaWQgdGVzdENoZWNrQWRkSW1tQ29tbXV0ZSgpCiAgICAgICAgICAg
ICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAg
ICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVj
a0FkZCkpOwogCkBAIC04NDQ5LDcgKzg0NTcsNyBAQCB2b2lkIHRlc3RDaGVja0FkZEltbVNvbWVS
ZWdpc3RlcigpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAg
ICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IElUb0QsIE9yaWdpbigpLCBjaGVja0FkZCkpOwogCkBAIC04NDg2LDcgKzg0OTQsNyBAQCB2b2lk
IHRlc3RDaGVja0FkZCgpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsK
ICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVja0FkZCkpOwogCkBAIC04NTE5LDcgKzg1MjcsNyBA
QCB2b2lkIHRlc3RDaGVja0FkZDY0KCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGls
b2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGNoZWNrQWRkKSk7CiAKQEAgLTg1NDIsNyAr
ODU1MCw3IEBAIHZvaWQgdGVzdENoZWNrQWRkRm9sZChpbnQgYSwgaW50IGIpCiAgICAgICAgIFsm
XSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgewogICAg
ICAgICAgICAgQ0hFQ0soISJTaG91bGQgaGF2ZSBiZWVuIGZvbGRlZCIpOwogICAgICAgICB9KTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBjaGVja0FkZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIGNoZWNrQWRkKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7
CiAKQEAgLTg1NjMsNyArODU3MSw3IEBAIHZvaWQgdGVzdENoZWNrQWRkRm9sZEZhaWwoaW50IGEs
IGludCBiKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAg
ICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrQWRkKTsKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tBZGQpOwogCiAg
ICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAtODYwMiw3ICs4NjEwLDcgQEAgdm9p
ZCB0ZXN0Q2hlY2tBZGRBcmd1bWVudEFsaWFzaW5nNjQoKQogICAgIENoZWNrVmFsdWUqIGNoZWNr
QWRkMyA9IHJvb3QtPmFwcGVuZE5ldzxDaGVja1ZhbHVlPihwcm9jLCBDaGVja0FkZCwgT3JpZ2lu
KCksIGNoZWNrQWRkMSwgY2hlY2tBZGQyKTsKICAgICBjaGVja0FkZDMtPnNldEdlbmVyYXRvcihb
Jl0gKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7
IGppdC5vb3BzKCk7IH0pOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tBZGQzKTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tBZGQzKTsKIAogICAgIENIRUNL
KGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgMSwgMiwgMykgPT0gOCk7CiB9CkBAIC04NjQ1
LDcgKzg2NTMsNyBAQCB2b2lkIHRlc3RDaGVja0FkZEFyZ3VtZW50QWxpYXNpbmczMigpCiAgICAg
Q2hlY2tWYWx1ZSogY2hlY2tBZGQzID0gcm9vdC0+YXBwZW5kTmV3PENoZWNrVmFsdWU+KHByb2Ms
IENoZWNrQWRkLCBPcmlnaW4oKSwgY2hlY2tBZGQxLCBjaGVja0FkZDIpOwogICAgIGNoZWNrQWRk
My0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNrbWFwR2Vu
ZXJhdGlvblBhcmFtcyYpIHsgaml0Lm9vcHMoKTsgfSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja0FkZDMpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja0Fk
ZDMpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCAxLCAyLCAzKSA9
PSA4KTsKIH0KQEAgLTg2NzAsNyArODY3OCw3IEBAIHZvaWQgdGVzdENoZWNrQWRkU2VsZk92ZXJm
bG93NjQoKQogICAgIG9wYXF1ZVVzZS0+YXBwZW5kKENvbnN0cmFpbmVkVmFsdWUoYXJnLCBWYWx1
ZVJlcDo6U29tZVJlZ2lzdGVyKSk7CiAgICAgb3BhcXVlVXNlLT5zZXRHZW5lcmF0b3IoWyZdIChD
Q2FsbEhlbHBlcnMmLCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7IH0pOwogCi0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
Y2hlY2tBZGQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBjaGVja0FkZCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwog
CkBAIC04NzAxLDcgKzg3MDksNyBAQCB2b2lkIHRlc3RDaGVja0FkZFNlbGZPdmVyZmxvdzMyKCkK
ICAgICBvcGFxdWVVc2UtPmFwcGVuZChDb25zdHJhaW5lZFZhbHVlKGFyZywgVmFsdWVSZXA6OlNv
bWVSZWdpc3RlcikpOwogICAgIG9wYXF1ZVVzZS0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxw
ZXJzJiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeyB9KTsKIAotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrQWRk
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgY2hlY2tBZGQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAtODcz
NCw3ICs4NzQyLDcgQEAgdm9pZCB0ZXN0Q2hlY2tTdWJJbW0oKQogICAgICAgICAgICAgaml0LmVt
aXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0p
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tTdWIpKTsK
IApAQCAtODc3Niw3ICs4Nzg0LDcgQEAgdm9pZCB0ZXN0Q2hlY2tTdWJCYWRJbW0oKQogICAgICAg
ICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7
CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwg
Y2hlY2tTdWIpKTsKIApAQCAtODgxMyw3ICs4ODIxLDcgQEAgdm9pZCB0ZXN0Q2hlY2tTdWIoKQog
ICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQu
cmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmln
aW4oKSwgY2hlY2tTdWIpKTsKIApAQCAtODg1MSw3ICs4ODU5LDcgQEAgdm9pZCB0ZXN0Q2hlY2tT
dWI2NCgpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAg
ICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElU
b0QsIE9yaWdpbigpLCBjaGVja1N1YikpOwogCkBAIC04ODc0LDcgKzg4ODIsNyBAQCB2b2lkIHRl
c3RDaGVja1N1YkZvbGQoaW50IGEsIGludCBiKQogICAgICAgICBbJl0gKENDYWxsSGVscGVycyYs
IGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsKICAgICAgICAgICAgIENIRUNLKCEi
U2hvdWxkIGhhdmUgYmVlbiBmb2xkZWQiKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tTdWIpOworICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVj
a1N1Yik7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC04ODk1LDcgKzg5
MDMsNyBAQCB2b2lkIHRlc3RDaGVja1N1YkZvbGRGYWlsKGludCBhLCBpbnQgYikKICAgICAgICAg
ICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwog
ICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBjaGVja1N1Yik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrU3ViKTsKIAogICAgIGF1dG8gY29kZSA9IGNv
bXBpbGUocHJvYyk7CiAKQEAgLTg5MjIsNyArODkzMCw3IEBAIHZvaWQgdGVzdENoZWNrTmVnKCkK
ICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0
LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3Jp
Z2luKCksIGNoZWNrTmVnKSk7CiAKQEAgLTg5NTIsNyArODk2MCw3IEBAIHZvaWQgdGVzdENoZWNr
TmVnNjQoKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAg
ICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJ
VG9ELCBPcmlnaW4oKSwgY2hlY2tOZWcpKTsKIApAQCAtODk4OSw3ICs4OTk3LDcgQEAgdm9pZCB0
ZXN0Q2hlY2tNdWwoKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAg
ICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tNdWwpKTsKIApAQCAtOTAzMCw3ICs5MDM4LDcgQEAg
dm9pZCB0ZXN0Q2hlY2tNdWxNZW1vcnkoKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVw
aWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tNdWwpKTsKIApAQCAtOTA3Nyw3
ICs5MDg1LDcgQEAgdm9pZCB0ZXN0Q2hlY2tNdWwyKCkKICAgICAgICAgICAgIGppdC5lbWl0RnVu
Y3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGNoZWNrTXVsKSk7CiAKQEAg
LTkxMTAsNyArOTExOCw3IEBAIHZvaWQgdGVzdENoZWNrTXVsNjQoKQogICAgICAgICAgICAgaml0
LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAg
IH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tNdWwp
KTsKIApAQCAtOTEzMyw3ICs5MTQxLDcgQEAgdm9pZCB0ZXN0Q2hlY2tNdWxGb2xkKGludCBhLCBp
bnQgYikKICAgICAgICAgWyZdIChDQ2FsbEhlbHBlcnMmLCBjb25zdCBTdGFja21hcEdlbmVyYXRp
b25QYXJhbXMmKSB7CiAgICAgICAgICAgICBDSEVDSyghIlNob3VsZCBoYXZlIGJlZW4gZm9sZGVk
Iik7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIGNoZWNrTXVsKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tNdWwpOwogCiAgICAgYXV0byBjb2Rl
ID0gY29tcGlsZShwcm9jKTsKIApAQCAtOTE1NCw3ICs5MTYyLDcgQEAgdm9pZCB0ZXN0Q2hlY2tN
dWxGb2xkRmFpbChpbnQgYSwgaW50IGIpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBp
bG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tNdWwp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBjaGVja011bCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC05MTkz
LDcgKzkyMDEsNyBAQCB2b2lkIHRlc3RDaGVja011bEFyZ3VtZW50QWxpYXNpbmc2NCgpCiAgICAg
Q2hlY2tWYWx1ZSogY2hlY2tNdWwzID0gcm9vdC0+YXBwZW5kTmV3PENoZWNrVmFsdWU+KHByb2Ms
IENoZWNrTXVsLCBPcmlnaW4oKSwgY2hlY2tNdWwxLCBjaGVja011bDIpOwogICAgIGNoZWNrTXVs
My0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNrbWFwR2Vu
ZXJhdGlvblBhcmFtcyYpIHsgaml0Lm9vcHMoKTsgfSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja011bDMpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja011
bDMpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAyLCAzLCA0KSA9
PSA3Mik7CiB9CkBAIC05MjM2LDcgKzkyNDQsNyBAQCB2b2lkIHRlc3RDaGVja011bEFyZ3VtZW50
QWxpYXNpbmczMigpCiAgICAgQ2hlY2tWYWx1ZSogY2hlY2tNdWwzID0gcm9vdC0+YXBwZW5kTmV3
PENoZWNrVmFsdWU+KHByb2MsIENoZWNrTXVsLCBPcmlnaW4oKSwgY2hlY2tNdWwxLCBjaGVja011
bDIpOwogICAgIGNoZWNrTXVsMy0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiBqaXQs
IGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsgaml0Lm9vcHMoKTsgfSk7CiAKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBj
aGVja011bDMpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBjaGVja011bDMpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQzMl90
Pihwcm9jLCAyLCAzLCA0KSA9PSA3Mik7CiB9CkBAIC05MjY4LDcgKzkyNzYsNyBAQCB2b2lkIHRl
c3RDaGVja011bDY0U1NocigpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUo
KTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVja011bCkpOwogCkBAIC05Mjk0LDcgKzkzMDIs
NyBAQCB2b2lkIGdlbmVyaWNUZXN0Q29tcGFyZSgKICAgICAgICAgVmFsdWUqIHJpZ2h0VmFsdWUg
PSByaWdodEZ1bmN0b3Iocm9vdCwgcHJvYyk7CiAgICAgICAgIFZhbHVlKiBjb21wYXJpc29uUmVz
dWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBvcGNvZGUsIE9yaWdpbigpLCBsZWZ0
VmFsdWUsIHJpZ2h0VmFsdWUpOwogICAgICAgICAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIE5vdEVxdWFsLCBPcmlnaW4oKSwKQEAg
LTkzMTQsNyArOTMyMiw3IEBAIHZvaWQgZ2VuZXJpY1Rlc3RDb21wYXJlKAogICAgICAgICBWYWx1
ZSogbGVmdFZhbHVlID0gbGVmdEZ1bmN0b3Iocm9vdCwgcHJvYyk7CiAgICAgICAgIFZhbHVlKiBy
aWdodFZhbHVlID0gcmlnaHRGdW5jdG9yKHJvb3QsIHByb2MpOwogCi0gICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBvcGNvZGUsIE9yaWdpbigpLCBsZWZ0VmFsdWUsIHJp
Z2h0VmFsdWUpLAogICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVl
bnRlZEJsb2NrKGVsc2VDYXNlKSk7CkBAIC05MzI4LDkgKzkzMzYsOSBAQCB2b2lkIGdlbmVyaWNU
ZXN0Q29tcGFyZSgKICAgICAgICAgICAgICAgICBDSEVDSyhwYXJhbXNbMF0uaXNHUFIoKSk7CiAg
ICAgICAgICAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoMSksIHBh
cmFtc1swXS5ncHIoKSk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgdGhlbkNhc2UtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOwor
ICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHBhdGNocG9pbnQpOwogCi0gICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICBlbHNlQ2FzZS0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtOTU2OSw3ICs5
NTc3LDcgQEAgdm9pZCB0ZXN0RXF1YWxEb3VibGUoZG91YmxlIGxlZnQsIGRvdWJsZQogewogICAg
IFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgRXF1YWwsIE9yaWdpbigp
LApAQCAtOTU4OCw3ICs5NTk2LDcgQEAgdm9pZCB0ZXN0Q2FsbFNpbXBsZShpbnQgYSwgaW50IGIp
CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDQ2FsbFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIElu
dDMyLCBPcmlnaW4oKSwKQEAgLTk2MDYsMTYgKzk2MTQsMTYgQEAgdm9pZCB0ZXN0Q2FsbFJhcmUo
aW50IGEsIGludCBiKQogICAgIEJhc2ljQmxvY2sqIGNvbW1vbiA9IHByb2MuYWRkQmxvY2soKTsK
ICAgICBCYXNpY0Jsb2NrKiByYXJlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCks
CiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhyYXJlLCBGcmVxdWVuY3lDbGFzczo6UmFyZSksCiAg
ICAgICAgIEZyZXF1ZW50ZWRCbG9jayhjb21tb24pKTsKIAotICAgIGNvbW1vbi0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgY29tbW9uLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNvbW1vbi0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKICAgICAKLSAgICByYXJlLT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByYXJlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJhcmUtPmFwcGVuZE5ldzxDQ2FsbFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIEludDMyLCBPcmlnaW4oKSwKQEAgLTk2MzMsMTYgKzk2NDEsMTYg
QEAgdm9pZCB0ZXN0Q2FsbFJhcmVMaXZlKGludCBhLCBpbnQgYiwgaW50IAogICAgIEJhc2ljQmxv
Y2sqIGNvbW1vbiA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiByYXJlID0gcHJv
Yy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhy
YXJlLCBGcmVxdWVuY3lDbGFzczo6UmFyZSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhjb21t
b24pKTsKIAotICAgIGNvbW1vbi0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgY29tbW9u
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
IGNvbW1vbi0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKICAg
ICAKLSAgICByYXJlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByYXJlLT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJhcmUtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigp
LApAQCAtOTY2Miw3ICs5NjcwLDcgQEAgdm9pZCB0ZXN0Q2FsbFNpbXBsZVB1cmUoaW50IGEsIGlu
dCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8Q0NhbGxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBJbnQzMiwgT3JpZ2luKCksIEVmZmVjdHM6Om5vbmUoKSwKQEAgLTk2OTIsNyArOTcwMCw3IEBA
IHZvaWQgdGVzdENhbGxGdW5jdGlvbldpdGhIZWxsYUFyZ3VtZW50cygKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiaXR3aXNlX2Nhc3Q8dm9p
ZCo+KGZ1bmN0aW9uV2l0aEhlbGxhQXJndW1lbnRzKSkpOwogICAgIGNhbGwtPmNoaWxkcmVuKCku
YXBwZW5kVmVjdG9yKGFyZ3MpOwogICAgIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNhbGwpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYWxsKTsKIAogICAgIENIRUNLKGNv
bXBpbGVBbmRSdW48aW50Pihwcm9jKSA9PSBmdW5jdGlvbldpdGhIZWxsYUFyZ3VtZW50cygxLCAy
LCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4
LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYpKTsKIH0KQEAgLTk3MDEsNyArOTcwOSw3
IEBAIHZvaWQgdGVzdFJldHVybkRvdWJsZShkb3VibGUgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJl
IHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpKTsKIApAQCAtOTcx
Miw3ICs5NzIwLDcgQEAgdm9pZCB0ZXN0UmV0dXJuRmxvYXQoZmxvYXQgdmFsdWUpCiB7CiAgICAg
UHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSkpOwog
CkBAIC05NzI4LDcgKzk3MzYsNyBAQCB2b2lkIHRlc3RDYWxsU2ltcGxlRG91YmxlKGRvdWJsZSBh
LCBkb3ViCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDQ2FsbFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIERvdWJsZSwgT3JpZ2luKCksCkBAIC05NzU0LDcgKzk3NjIsNyBAQCB2b2lkIHRlc3RDYWxs
U2ltcGxlRmxvYXQoZmxvYXQgYSwgZmxvYXQgCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7CiAg
ICAgVmFsdWUqIGZsb2F0VmFsdWUxID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3
aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MWludDMyKTsKICAgICBWYWx1ZSogZmxvYXRWYWx1
ZTIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwg
YXJndW1lbnQyaW50MzIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENDYWxsVmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgRmxvYXQsIE9yaWdpbigpLApAQCAtOTc4NCw3ICs5NzkyLDcgQEAgdm9pZCB0ZXN0Q2Fs
bEZ1bmN0aW9uV2l0aEhlbGxhRG91YmxlQXJndQogICAgICAgICByb290LT5hcHBlbmROZXc8Q29u
c3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGJpdHdpc2VfY2FzdDx2b2lkKj4oZnVuY3Rpb25X
aXRoSGVsbGFEb3VibGVBcmd1bWVudHMpKSk7CiAgICAgY2FsbC0+Y2hpbGRyZW4oKS5hcHBlbmRW
ZWN0b3IoYXJncyk7CiAgICAgCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgY2FsbCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNhbGwpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFu
ZFJ1bjxkb3VibGU+KHByb2MpID09IGZ1bmN0aW9uV2l0aEhlbGxhRG91YmxlQXJndW1lbnRzKDEs
IDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAxNywg
MTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjQsIDI1LCAyNikpOwogfQpAQCAtOTgwOCw3ICs5ODE2
LDcgQEAgdm9pZCB0ZXN0Q2FsbEZ1bmN0aW9uV2l0aEhlbGxhRmxvYXRBcmd1bQogICAgICAgICBy
b290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGJpdHdpc2VfY2Fz
dDx2b2lkKj4oZnVuY3Rpb25XaXRoSGVsbGFGbG9hdEFyZ3VtZW50cykpKTsKICAgICBjYWxsLT5j
aGlsZHJlbigpLmFwcGVuZFZlY3RvcihhcmdzKTsKICAgICAKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYWxsKTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FsbCk7CiAKICAg
ICBDSEVDSyhjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jKSA9PSBmdW5jdGlvbldpdGhIZWxsYUZs
b2F0QXJndW1lbnRzKDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAx
NCwgMTUsIDE2LCAxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjQsIDI1LCAyNikpOwogfQpA
QCAtOTgyMCw3ICs5ODI4LDcgQEAgdm9pZCB0ZXN0Q2hpbGxEaXYoaW50IG51bSwgaW50IGRlbiwg
aW50IAogICAgICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKICAgICAgICAgCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBDaGlsbERpdiwgT3JpZ2luKCksCkBAIC05
ODM5LDcgKzk4NDcsNyBAQCB2b2lkIHRlc3RDaGlsbERpdihpbnQgbnVtLCBpbnQgZGVuLCBpbnQg
CiAgICAgICAgIFByb2NlZHVyZSBwcm9jOwogICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwogICAgICAgICAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KAogICAgICAgICAgICAgICAgIHByb2MsIENoaWxsRGl2LCBPcmlnaW4oKSwKQEAgLTk4NTUs
NyArOTg2Myw3IEBAIHZvaWQgdGVzdENoaWxsRGl2VHdpY2UoaW50IG51bTEsIGludCBkZW4KICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4o
KSwKQEAgLTk4ODksNyArOTg5Nyw3IEBAIHZvaWQgdGVzdENoaWxsRGl2NjQoaW50NjRfdCBudW0s
IGludDY0X3QKICAgICAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgICAgIAotICAgICAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgQ2hpbGxEaXYsIE9yaWdpbigpLApA
QCAtOTkwNCw3ICs5OTEyLDcgQEAgdm9pZCB0ZXN0Q2hpbGxEaXY2NChpbnQ2NF90IG51bSwgaW50
NjRfdAogICAgICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKICAgICAgICAgCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBDaGlsbERpdiwgT3JpZ2luKCksCkBAIC05
OTI1LDcgKzk5MzMsNyBAQCB2b2lkIHRlc3RNb2RBcmcoaW50NjRfdCB2YWx1ZSkKIAogICAgIFZh
bHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigpLCBhcmd1bWVudCwgYXJndW1l
bnQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ2
NF90Pihwcm9jLCB2YWx1ZSkpOwogfQpAQCAtOTk0Myw3ICs5OTUxLDcgQEAgdm9pZCB0ZXN0TW9k
QXJncyhpbnQ2NF90IG51bWVyYXRvciwgaW50NgogICAgIFZhbHVlKiBhcmd1bWVudDEgPSByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50MiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKICAg
ICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdp
bigpLCBhcmd1bWVudDEsIGFyZ3VtZW50Mik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENI
RUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgbnVtZXJhdG9yLCBkZW5vbWluYXRvcikg
PT0gbnVtZXJhdG9yICUgZGVub21pbmF0b3IpOwogfQpAQCAtOTk2MSw3ICs5OTY5LDcgQEAgdm9p
ZCB0ZXN0TW9kSW1tcyhpbnQ2NF90IG51bWVyYXRvciwgaW50NgogICAgIFZhbHVlKiBhcmd1bWVu
dDEgPSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgbnVtZXJh
dG9yKTsKICAgICBWYWx1ZSogYXJndW1lbnQyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIGRlbm9taW5hdG9yKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigpLCBhcmd1bWVudDEsIGFyZ3Vt
ZW50Mik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50
NjRfdD4ocHJvYywgbnVtZXJhdG9yLCBkZW5vbWluYXRvcikgPT0gbnVtZXJhdG9yICUgZGVub21p
bmF0b3IpOwogfQpAQCAtOTk3Nyw3ICs5OTg1LDcgQEAgdm9pZCB0ZXN0TW9kQXJnMzIoaW50MzJf
dCB2YWx1ZSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAgICBWYWx1
ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigpLCBh
cmd1bWVudCwgYXJndW1lbnQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyghY29t
cGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCB2YWx1ZSkpOwogfQpAQCAtOTk5Nyw3ICsxMDAwNSw3
IEBAIHZvaWQgdGVzdE1vZEFyZ3MzMihpbnQzMl90IG51bWVyYXRvciwgaW4KICAgICBWYWx1ZSog
YXJndW1lbnQyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgYXJndW1lbnQxLCBhcmd1bWVudDIp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDMyX3Q+
KHByb2MsIG51bWVyYXRvciwgZGVub21pbmF0b3IpID09IG51bWVyYXRvciAlIGRlbm9taW5hdG9y
KTsKIH0KQEAgLTEwMDE1LDcgKzEwMDIzLDcgQEAgdm9pZCB0ZXN0TW9kSW1tczMyKGludDMyX3Qg
bnVtZXJhdG9yLCBpbgogICAgIFZhbHVlKiBhcmd1bWVudDEgPSByb290LT5hcHBlbmROZXc8Q29u
c3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgbnVtZXJhdG9yKTsKICAgICBWYWx1ZSogYXJndW1l
bnQyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGRlbm9t
aW5hdG9yKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBNb2QsIE9yaWdpbigpLCBhcmd1bWVudDEsIGFyZ3VtZW50Mik7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgbnVtZXJhdG9yLCBk
ZW5vbWluYXRvcikgPT0gbnVtZXJhdG9yICUgZGVub21pbmF0b3IpOwogfQpAQCAtMTAwMjcsNyAr
MTAwMzUsNyBAQCB2b2lkIHRlc3RDaGlsbE1vZEFyZyhpbnQ2NF90IHZhbHVlKQogCiAgICAgVmFs
dWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENoaWxsTW9kLCBPcmlnaW4oKSwgYXJndW1lbnQsIGFy
Z3VtZW50KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48
aW50NjRfdD4ocHJvYywgdmFsdWUpKTsKIH0KQEAgLTEwMDQwLDcgKzEwMDQ4LDcgQEAgdm9pZCB0
ZXN0Q2hpbGxNb2RBcmdzKGludDY0X3QgbnVtZXJhdG9yLAogICAgIFZhbHVlKiBhcmd1bWVudDEg
PSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50MiA9IHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIx
KTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDaGls
bE1vZCwgT3JpZ2luKCksIGFyZ3VtZW50MSwgYXJndW1lbnQyKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQp
OwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCBudW1lcmF0b3IsIGRl
bm9taW5hdG9yKSA9PSBjaGlsbE1vZChudW1lcmF0b3IsIGRlbm9taW5hdG9yKSk7CiB9CkBAIC0x
MDA1Myw3ICsxMDA2MSw3IEBAIHZvaWQgdGVzdENoaWxsTW9kSW1tcyhpbnQ2NF90IG51bWVyYXRv
ciwKICAgICBWYWx1ZSogYXJndW1lbnQxID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIG51bWVyYXRvcik7CiAgICAgVmFsdWUqIGFyZ3VtZW50MiA9IHJvb3Qt
PmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBkZW5vbWluYXRvcik7CiAg
ICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2hpbGxNb2Qs
IE9yaWdpbigpLCBhcmd1bWVudDEsIGFyZ3VtZW50Mik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAog
ICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgbnVtZXJhdG9yLCBkZW5vbWlu
YXRvcikgPT0gY2hpbGxNb2QobnVtZXJhdG9yLCBkZW5vbWluYXRvcikpOwogfQpAQCAtMTAwNjYs
NyArMTAwNzQsNyBAQCB2b2lkIHRlc3RDaGlsbE1vZEFyZzMyKGludDMyX3QgdmFsdWUpCiAgICAg
VmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2hpbGxNb2QsIE9yaWdpbigpLCBhcmd1bWVudCwg
YXJndW1lbnQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1
bjxpbnQzMl90Pihwcm9jLCB2YWx1ZSkpOwogfQpAQCAtMTAwODEsNyArMTAwODksNyBAQCB2b2lk
IHRlc3RDaGlsbE1vZEFyZ3MzMihpbnQzMl90IG51bWVyYXRvCiAgICAgVmFsdWUqIGFyZ3VtZW50
MiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMSkpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIENoaWxsTW9kLCBPcmlnaW4oKSwgYXJndW1lbnQxLCBhcmd1bWVudDIpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDMyX3Q+KHBy
b2MsIG51bWVyYXRvciwgZGVub21pbmF0b3IpID09IGNoaWxsTW9kKG51bWVyYXRvciwgZGVub21p
bmF0b3IpKTsKIH0KQEAgLTEwMDk0LDcgKzEwMTAyLDcgQEAgdm9pZCB0ZXN0Q2hpbGxNb2RJbW1z
MzIoaW50MzJfdCBudW1lcmF0bwogICAgIFZhbHVlKiBhcmd1bWVudDEgPSByb290LT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgbnVtZXJhdG9yKTsKICAgICBWYWx1ZSog
YXJndW1lbnQyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IGRlbm9taW5hdG9yKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBDaGlsbE1vZCwgT3JpZ2luKCksIGFyZ3VtZW50MSwgYXJndW1lbnQyKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1
bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBu
dW1lcmF0b3IsIGRlbm9taW5hdG9yKSA9PSBjaGlsbE1vZChudW1lcmF0b3IsIGRlbm9taW5hdG9y
KSk7CiB9CkBAIC0xMDEwNSwxOCArMTAxMTMsMTcgQEAgdm9pZCB0ZXN0U3dpdGNoKHVuc2lnbmVk
IGRlZ3JlZSwgdW5zaWduZQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
CiAKICAgICBCYXNpY0Jsb2NrKiB0ZXJtaW5hdGUgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgdGVy
bWluYXRlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0ZXJtaW5hdGUtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
dGVybWluYXRlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwog
CiAgICAgU3dpdGNoVmFsdWUqIHN3aXRjaFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFN3aXRjaFZh
bHVlPigKLSAgICAgICAgcHJvYywgT3JpZ2luKCksCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwK
LSAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRlcm1pbmF0ZSkpOworICAgICAgICBwcm9jLCBPcmln
aW4oKSwgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApKTsKKyAgICBzd2l0Y2hWYWx1ZS0+c2V0RmFsbFRocm91Z2go
RnJlcXVlbnRlZEJsb2NrKHRlcm1pbmF0ZSkpOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IGRlZ3JlZTsgKytpKSB7CiAgICAgICAgIEJhc2ljQmxvY2sqIG5ld0Jsb2NrID0gcHJvYy5h
ZGRCbG9jaygpOwotICAgICAgICBuZXdCbG9jay0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgICAgIG5ld0Jsb2NrLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgbmV3QmxvY2stPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgKGkgJiAxKSA/
IEdQUkluZm86OmFyZ3VtZW50R1BSMiA6IEdQUkluZm86OmFyZ3VtZW50R1BSMSkpOwpAQCAtMTAx
NDcsMTkgKzEwMTU0LDE4IEBAIHZvaWQgdGVzdFN3aXRjaENoaWxsRGl2KHVuc2lnbmVkIGRlZ3Jl
ZSwKICAgICBWYWx1ZSogcmlnaHQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMik7CiAKICAgICBCYXNpY0Jsb2Nr
KiB0ZXJtaW5hdGUgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgdGVybWluYXRlLT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICB0ZXJtaW5hdGUtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGVybWluYXRlLT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgU3dpdGNoVmFsdWUq
IHN3aXRjaFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFN3aXRjaFZhbHVlPigKLSAgICAgICAgcHJv
YywgT3JpZ2luKCksCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwKLSAgICAgICAgRnJlcXVlbnRl
ZEJsb2NrKHRlcm1pbmF0ZSkpOworICAgICAgICBwcm9jLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApKTsKKyAgICBzd2l0Y2hWYWx1ZS0+c2V0RmFsbFRocm91Z2goRnJlcXVlbnRlZEJsb2NrKHRl
cm1pbmF0ZSkpOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGRlZ3JlZTsgKytpKSB7
CiAgICAgICAgIEJhc2ljQmxvY2sqIG5ld0Jsb2NrID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAg
ICAgIG5ld0Jsb2NrLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgbmV3QmxvY2st
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgICAgICBuZXdCbG9jay0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
ICAgICBwcm9jLCBDaGlsbERpdiwgT3JpZ2luKCksIChpICYgMSkgPyByaWdodCA6IGxlZnQsIChp
ICYgMSkgPyBsZWZ0IDogcmlnaHQpKTsKQEAgLTEwMTcwLDcgKzEwMTc2LDEwIEBAIHZvaWQgdGVz
dFN3aXRjaENoaWxsRGl2KHVuc2lnbmVkIGRlZ3JlZSwKICAgICBhdXRvIGNvZGUgPSBjb21waWxl
KHByb2MpOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGRlZ3JlZTsgKytpKSB7Ci0g
ICAgICAgIENIRUNLKGludm9rZTxpbnQzMl90PigqY29kZSwgaSAqIGdhcCwgNDIsIDExKSA9PSAo
KGkgJiAxKSA/IDExLzQyIDogNDIvMTEpKTsKKyAgICAgICAgZGF0YUxvZygiaSA9ICIsIGksICJc
biIpOworICAgICAgICBpbnQzMl90IHJlc3VsdCA9IGludm9rZTxpbnQzMl90PigqY29kZSwgaSAq
IGdhcCwgNDIsIDExKTsKKyAgICAgICAgZGF0YUxvZygicmVzdWx0ID0gIiwgcmVzdWx0LCAiXG4i
KTsKKyAgICAgICAgQ0hFQ0socmVzdWx0ID09ICgoaSAmIDEpID8gMTEvNDIgOiA0Mi8xMSkpOwog
ICAgICAgICBpZiAoZ2FwID4gMSkgewogICAgICAgICAgICAgQ0hFQ0soIWludm9rZTxpbnQzMl90
PigqY29kZSwgaSAqIGdhcCArIDEsIDQyLCAxMSkpOwogICAgICAgICAgICAgQ0hFQ0soIWludm9r
ZTxpbnQzMl90PigqY29kZSwgaSAqIGdhcCAtIDEsIDQyLCAxMSkpOwpAQCAtMTAxODgsMTcgKzEw
MTk3LDE2IEBAIHZvaWQgdGVzdFN3aXRjaFRhcmdldHRpbmdTYW1lQmxvY2soKQogICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAKICAgICBCYXNpY0Jsb2NrKiB0ZXJtaW5h
dGUgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgdGVybWluYXRlLT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICB0ZXJtaW5hdGUtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGVybWluYXRlLT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNSkpOwogCiAgICAgU3dpdGNoVmFsdWUqIHN3aXRjaFZh
bHVlID0gcm9vdC0+YXBwZW5kTmV3PFN3aXRjaFZhbHVlPigKLSAgICAgICAgcHJvYywgT3JpZ2lu
KCksCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwKLSAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRl
cm1pbmF0ZSkpOworICAgICAgICBwcm9jLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKKyAg
ICBzd2l0Y2hWYWx1ZS0+c2V0RmFsbFRocm91Z2goRnJlcXVlbnRlZEJsb2NrKHRlcm1pbmF0ZSkp
OwogCiAgICAgQmFzaWNCbG9jayogb3RoZXJUYXJnZXQgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAg
b3RoZXJUYXJnZXQtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIG90aGVyVGFyZ2V0LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIG90aGVyVGFyZ2V0LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgNDIpKTsKICAgICBzd2l0Y2hWYWx1ZS0+YXBwZW5kQ2FzZShTd2l0Y2hDYXNlKDMsIEZyZXF1
ZW50ZWRCbG9jayhvdGhlclRhcmdldCkpKTsKQEAgLTEwMjE4LDE4ICsxMDIyNiwxNiBAQCB2b2lk
IHRlc3RTd2l0Y2hUYXJnZXR0aW5nU2FtZUJsb2NrRm9sZFBhCiAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKIAogICAgIEJhc2ljQmxvY2sqIHRlcm1pbmF0ZSA9IHByb2Mu
YWRkQmxvY2soKTsKLSAgICB0ZXJtaW5hdGUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHRlcm1pbmF0ZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICB0ZXJtaW5hdGUtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCA0MikpOwogCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApOwotICAgIFN3aXRjaFZhbHVlKiBzd2l0Y2hWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxTd2l0
Y2hWYWx1ZT4oCi0gICAgICAgIHByb2MsIE9yaWdpbigpLAotICAgICAgICBhcmd1bWVudCwKLSAg
ICAgICAgRnJlcXVlbnRlZEJsb2NrKHRlcm1pbmF0ZSkpOworICAgIFN3aXRjaFZhbHVlKiBzd2l0
Y2hWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxTd2l0Y2hWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFy
Z3VtZW50KTsKKyAgICBzd2l0Y2hWYWx1ZS0+c2V0RmFsbFRocm91Z2goRnJlcXVlbnRlZEJsb2Nr
KHRlcm1pbmF0ZSkpOwogCiAgICAgQmFzaWNCbG9jayogb3RoZXJUYXJnZXQgPSBwcm9jLmFkZEJs
b2NrKCk7Ci0gICAgb3RoZXJUYXJnZXQtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIG90
aGVyVGFyZ2V0LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBzd2l0Y2hWYWx1ZS0+YXBwZW5kQ2FzZShTd2l0Y2hD
YXNlKDMsIEZyZXF1ZW50ZWRCbG9jayhvdGhlclRhcmdldCkpKTsKICAgICBzd2l0Y2hWYWx1ZS0+
YXBwZW5kQ2FzZShTd2l0Y2hDYXNlKDEzLCBGcmVxdWVudGVkQmxvY2sob3RoZXJUYXJnZXQpKSk7
CkBAIC0xMDI0Niw3ICsxMDI1Miw3IEBAIHZvaWQgdGVzdFRydW5jRm9sZChpbnQ2NF90IHZhbHVl
KQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgVHJ1bmMs
IE9yaWdpbigpLApAQCAtMTAyNTksNyArMTAyNjUsNyBAQCB2b2lkIHRlc3RaRXh0MzIoaW50MzJf
dCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IFpFeHQzMiwgT3JpZ2luKCksCkBAIC0xMDI3NCw3ICsxMDI4MCw3IEBAIHZvaWQgdGVzdFpFeHQz
MkZvbGQoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIFpFeHQzMiwgT3JpZ2luKCksCkBAIC0xMDI4Nyw3ICsxMDI5Myw3IEBAIHZv
aWQgdGVzdFNFeHQzMihpbnQzMl90IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgU0V4dDMyLCBPcmlnaW4oKSwKQEAgLTEwMzAyLDcgKzEwMzA4
LDcgQEAgdm9pZCB0ZXN0U0V4dDMyRm9sZChpbnQzMl90IHZhbHVlKQogewogICAgIFByb2NlZHVy
ZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU0V4dDMyLCBPcmlnaW4oKSwKQEAgLTEw
MzE1LDcgKzEwMzIxLDcgQEAgdm9pZCB0ZXN0VHJ1bmNaRXh0MzIoaW50MzJfdCB2YWx1ZSkKIHsK
ICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmln
aW4oKSwKQEAgLTEwMzMyLDcgKzEwMzM4LDcgQEAgdm9pZCB0ZXN0VHJ1bmNTRXh0MzIoaW50MzJf
dCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IFRydW5jLCBPcmlnaW4oKSwKQEAgLTEwMzQ5LDcgKzEwMzU1LDcgQEAgdm9pZCB0ZXN0U0V4dDgo
aW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIFNFeHQ4LCBPcmlnaW4oKSwKQEAgLTEwMzY0LDcgKzEwMzcwLDcgQEAgdm9pZCB0ZXN0
U0V4dDhGb2xkKGludDMyX3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBTRXh0OCwgT3JpZ2luKCksCkBAIC0xMDM3Nyw3ICsxMDM4Myw3IEBA
IHZvaWQgdGVzdFNFeHQ4U0V4dDgoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNFeHQ4LCBPcmlnaW4oKSwKQEAgLTEwMzk0LDcg
KzEwNDAwLDcgQEAgdm9pZCB0ZXN0U0V4dDhTRXh0MTYoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQ
cm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNFeHQ4LCBPcmlnaW4oKSwK
QEAgLTEwNDExLDcgKzEwNDE3LDcgQEAgdm9pZCB0ZXN0U0V4dDhCaXRBbmQoaW50MzJfdCB2YWx1
ZSwgaW50MwogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
U0V4dDgsIE9yaWdpbigpLApAQCAtMTA0MjksNyArMTA0MzUsNyBAQCB2b2lkIHRlc3RCaXRBbmRT
RXh0OChpbnQzMl90IHZhbHVlLCBpbnQzCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMTA0NDcsNyArMTA0NTMsNyBA
QCB2b2lkIHRlc3RTRXh0MTYoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKICAgICAgICAgICAgIHByb2MsIFNFeHQxNiwgT3JpZ2luKCksCkBAIC0xMDQ2Miw3ICsx
MDQ2OCw3IEBAIHZvaWQgdGVzdFNFeHQxNkZvbGQoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9j
ZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNFeHQxNiwgT3JpZ2luKCksCkBA
IC0xMDQ3NSw3ICsxMDQ4MSw3IEBAIHZvaWQgdGVzdFNFeHQxNlNFeHQxNihpbnQzMl90IHZhbHVl
KQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU0V4dDE2
LCBPcmlnaW4oKSwKQEAgLTEwNDkyLDcgKzEwNDk4LDcgQEAgdm9pZCB0ZXN0U0V4dDE2U0V4dDgo
aW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIFNFeHQxNiwgT3JpZ2luKCksCkBAIC0xMDUwOSw3ICsxMDUxNSw3IEBAIHZvaWQgdGVz
dFNFeHQxNkJpdEFuZChpbnQzMl90IHZhbHVlLCBpbnQKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKICAgICAgICAgICAgIHByb2MsIFNFeHQxNiwgT3JpZ2luKCksCkBAIC0xMDUyNyw3ICsx
MDUzMyw3IEBAIHZvaWQgdGVzdEJpdEFuZFNFeHQxNihpbnQzMl90IHZhbHVlLCBpbnQKIHsKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2lu
KCksCkBAIC0xMDU0NSw3ICsxMDU1MSw3IEBAIHZvaWQgdGVzdFNFeHQzMkJpdEFuZChpbnQzMl90
IHZhbHVlLCBpbnQKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIFNFeHQzMiwgT3JpZ2luKCksCkBAIC0xMDU2Myw3ICsxMDU2OSw3IEBAIHZvaWQgdGVzdEJp
dEFuZFNFeHQzMihpbnQzMl90IHZhbHVlLCBpbnQKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0xMDU4MSw3ICsxMDU4
Nyw3IEBAIHZvaWQgdGVzdEJhc2ljU2VsZWN0KCkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0xMDYwMyw3ICsxMDYw
OSw3IEBAIHZvaWQgdGVzdFNlbGVjdFRlc3QoKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTEwNjIyLDcgKzEwNjI4
LDcgQEAgdm9pZCB0ZXN0U2VsZWN0Q29tcGFyZURvdWJsZSgpCiB7CiAgICAgUHJvY2VkdXJlIHBy
b2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLApAQCAtMTA2NTMs
NyArMTA2NTksNyBAQCB2b2lkIHRlc3RTZWxlY3RDb21wYXJlRmxvYXQoZmxvYXQgYSwgZmxvCiAg
ICAgVmFsdWUqIGZsb2F0VmFsdWUxID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3
aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MWludDMyKTsKICAgICBWYWx1ZSogZmxvYXRWYWx1
ZTIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwg
YXJndW1lbnQyaW50MzIpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTEwNjkxLDcgKzEwNjk3LDcgQEAgdm9pZCB0ZXN0U2Vs
ZWN0Q29tcGFyZUZsb2F0VG9Eb3VibGUoZmxvYQogICAgIFZhbHVlKiBkb3VibGVWYWx1ZTEgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBmbG9h
dFZhbHVlMSk7CiAgICAgVmFsdWUqIGRvdWJsZVZhbHVlMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGZsb2F0VmFsdWUyKTsKIAotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0x
MDcxOSw3ICsxMDcyNSw3IEBAIHZvaWQgdGVzdFNlbGVjdERvdWJsZSgpCiB7CiAgICAgUHJvY2Vk
dXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLApAQCAt
MTA3NDEsNyArMTA3NDcsNyBAQCB2b2lkIHRlc3RTZWxlY3REb3VibGVUZXN0KCkKIHsKICAgICBQ
cm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCks
CkBAIC0xMDc2MCw3ICsxMDc2Niw3IEBAIHZvaWQgdGVzdFNlbGVjdERvdWJsZUNvbXBhcmVEb3Vi
bGUoKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2Vs
ZWN0LCBPcmlnaW4oKSwKQEAgLTEwNzkwLDcgKzEwNzk2LDcgQEAgdm9pZCB0ZXN0U2VsZWN0RG91
YmxlQ29tcGFyZUZsb2F0KGZsb2F0IAogICAgIFZhbHVlKiBmbG9hdFZhbHVlMSA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDFpbnQz
Mik7CiAgICAgVmFsdWUqIGZsb2F0VmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MmludDMyKTsKIAotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0xMDgyMSw3
ICsxMDgyNyw3IEBAIHZvaWQgdGVzdFNlbGVjdEZsb2F0Q29tcGFyZUZsb2F0KGZsb2F0IGEKICAg
ICBWYWx1ZSogZmxvYXRWYWx1ZTMgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdp
c2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzaW50MzIpOwogICAgIFZhbHVlKiBmbG9hdFZhbHVl
NCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBh
cmd1bWVudDRpbnQzMik7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBTZWxlY3QsIE9yaWdpbigpLApAQCAtMTA4NDcsNyArMTA4NTMsNyBAQCB2b2lkIHRlc3RTZWxl
Y3REb3VibGVDb21wYXJlRG91YmxlKGJvb2wgCiAgICAgICAgIFZhbHVlKiBhcmcyID0gcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1
bWVudEZQUjIpOwogICAgICAgICBWYWx1ZSogYXJnMyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIzKTsKIAotICAg
ICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywg
U2VsZWN0LCBPcmlnaW4oKSwKQEAgLTEwODgzLDcgKzEwODg5LDcgQEAgdm9pZCB0ZXN0U2VsZWN0
RG91YmxlQ29tcGFyZURvdWJsZShib29sIAogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+YXBwZW5k
KENvbnN0cmFpbmVkVmFsdWUoYXJnMiwgVmFsdWVSZXA6OlNvbWVSZWdpc3RlcikpOwogICAgICAg
ICBrZWVwVmFsdWVzTGl2ZS0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3Qg
U3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeyB9KTsKIAotICAgICAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgICAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0KTsKICAgICAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIAogICAgICAgICBmb3Ig
KGF1dG8mIGxlZnQgOiBmbG9hdGluZ1BvaW50T3BlcmFuZHM8ZG91YmxlPigpKSB7CkBAIC0xMDkx
MCw3ICsxMDkxNiw3IEBAIHZvaWQgdGVzdFNlbGVjdERvdWJsZUNvbXBhcmVEb3VibGUoYm9vbCAK
ICAgICAgICAga2VlcFZhbHVlc0xpdmUtPmFwcGVuZChDb25zdHJhaW5lZFZhbHVlKGFyZzMsIFZh
bHVlUmVwOjpTb21lUmVnaXN0ZXIpKTsKICAgICAgICAga2VlcFZhbHVlc0xpdmUtPnNldEdlbmVy
YXRvcihbJl0gKENDYWxsSGVscGVycyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYp
IHsgfSk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgICAgIGF1dG8gY29kZSA9
IGNvbXBpbGUocHJvYyk7CiAKICAgICAgICAgZm9yIChhdXRvJiBsZWZ0IDogZmxvYXRpbmdQb2lu
dE9wZXJhbmRzPGRvdWJsZT4oKSkgewpAQCAtMTA5MzgsNyArMTA5NDQsNyBAQCB2b2lkIHRlc3RT
ZWxlY3REb3VibGVDb21wYXJlRG91YmxlKGJvb2wgCiAgICAgICAgIGtlZXBWYWx1ZXNMaXZlLT5h
cHBlbmQoQ29uc3RyYWluZWRWYWx1ZShhcmczLCBWYWx1ZVJlcDo6U29tZVJlZ2lzdGVyKSk7CiAg
ICAgICAgIGtlZXBWYWx1ZXNMaXZlLT5zZXRHZW5lcmF0b3IoWyZdIChDQ2FsbEhlbHBlcnMmLCBj
b25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7IH0pOwogCi0gICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7Cisg
ICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQpOwogICAgICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCiAgICAgICAg
IGZvciAoYXV0byYgbGVmdCA6IGZsb2F0aW5nUG9pbnRPcGVyYW5kczxkb3VibGU+KCkpIHsKQEAg
LTEwOTU1LDcgKzEwOTYxLDcgQEAgdm9pZCB0ZXN0U2VsZWN0RG91YmxlQ29tcGFyZURvdWJsZShi
b29sIAogICAgICAgICBWYWx1ZSogYXJnMSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIxKTsKICAgICAgICAgVmFs
dWUqIGFyZzIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEZQUkluZm86OmFyZ3VtZW50RlBSMik7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0x
MDk5MCw3ICsxMDk5Niw3IEBAIHZvaWQgdGVzdFNlbGVjdERvdWJsZUNvbXBhcmVEb3VibGUoYm9v
bCAKICAgICAgICAga2VlcFZhbHVlc0xpdmUtPmFwcGVuZChDb25zdHJhaW5lZFZhbHVlKGFyZzIs
IFZhbHVlUmVwOjpTb21lUmVnaXN0ZXIpKTsKICAgICAgICAga2VlcFZhbHVlc0xpdmUtPnNldEdl
bmVyYXRvcihbJl0gKENDYWxsSGVscGVycyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFt
cyYpIHsgfSk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgICAgIGF1dG8gY29k
ZSA9IGNvbXBpbGUocHJvYyk7CiAKICAgICAgICAgZm9yIChhdXRvJiBsZWZ0IDogZmxvYXRpbmdQ
b2ludE9wZXJhbmRzPGRvdWJsZT4oKSkgewpAQCAtMTEwMzMsNyArMTEwMzksNyBAQCB2b2lkIHRl
c3RTZWxlY3RGbG9hdENvbXBhcmVGbG9hdChib29sICgqCiAgICAgICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgICAgICByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMykpKTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTExMDc3LDcgKzExMDgz
LDcgQEAgdm9pZCB0ZXN0U2VsZWN0RmxvYXRDb21wYXJlRmxvYXQoYm9vbCAoKgogICAgICAgICBr
ZWVwVmFsdWVzTGl2ZS0+YXBwZW5kKENvbnN0cmFpbmVkVmFsdWUoYXJnMiwgVmFsdWVSZXA6OlNv
bWVSZWdpc3RlcikpOwogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+c2V0R2VuZXJhdG9yKFsmXSAo
Q0NhbGxIZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeyB9KTsKIAot
ICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICAgICAgYXV0byBjb2RlID0gY29tcGlsZShw
cm9jKTsKIAogICAgICAgICBmb3IgKGF1dG8mIGxlZnQgOiBmbG9hdGluZ1BvaW50T3BlcmFuZHM8
ZmxvYXQ+KCkpIHsKQEAgLTExMTEyLDcgKzExMTE4LDcgQEAgdm9pZCB0ZXN0U2VsZWN0RmxvYXRD
b21wYXJlRmxvYXQoYm9vbCAoKgogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+YXBwZW5kKENvbnN0
cmFpbmVkVmFsdWUoYXJnMywgVmFsdWVSZXA6OlNvbWVSZWdpc3RlcikpOwogICAgICAgICBrZWVw
VmFsdWVzTGl2ZS0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3RhY2tt
YXBHZW5lcmF0aW9uUGFyYW1zJikgeyB9KTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgICAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsK
ICAgICAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIAogICAgICAgICBmb3IgKGF1dG8m
IGxlZnQgOiBmbG9hdGluZ1BvaW50T3BlcmFuZHM8ZmxvYXQ+KCkpIHsKQEAgLTExMTQ4LDcgKzEx
MTU0LDcgQEAgdm9pZCB0ZXN0U2VsZWN0RmxvYXRDb21wYXJlRmxvYXQoYm9vbCAoKgogICAgICAg
ICBrZWVwVmFsdWVzTGl2ZS0+YXBwZW5kKENvbnN0cmFpbmVkVmFsdWUoYXJnMywgVmFsdWVSZXA6
OlNvbWVSZWdpc3RlcikpOwogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+c2V0R2VuZXJhdG9yKFsm
XSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeyB9KTsK
IAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICAgICAgYXV0byBjb2RlID0gY29tcGls
ZShwcm9jKTsKIAogICAgICAgICBmb3IgKGF1dG8mIGxlZnQgOiBmbG9hdGluZ1BvaW50T3BlcmFu
ZHM8ZmxvYXQ+KCkpIHsKQEAgLTExMTcxLDcgKzExMTc3LDcgQEAgdm9pZCB0ZXN0U2VsZWN0Rmxv
YXRDb21wYXJlRmxvYXQoYm9vbCAoKgogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIp
KSk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
ICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0xMTIxMiw3ICsxMTIxOCw3IEBAIHZvaWQg
dGVzdFNlbGVjdEZsb2F0Q29tcGFyZUZsb2F0KGJvb2wgKCoKICAgICAgICAga2VlcFZhbHVlc0xp
dmUtPmFwcGVuZChDb25zdHJhaW5lZFZhbHVlKGFyZzIsIFZhbHVlUmVwOjpTb21lUmVnaXN0ZXIp
KTsKICAgICAgICAga2VlcFZhbHVlc0xpdmUtPnNldEdlbmVyYXRvcihbJl0gKENDYWxsSGVscGVy
cyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsgfSk7CiAKLSAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
KTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdCk7CiAgICAgICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKICAg
ICAgICAgZm9yIChhdXRvJiBsZWZ0IDogZmxvYXRpbmdQb2ludE9wZXJhbmRzPGZsb2F0PigpKSB7
CkBAIC0xMTIzOSw3ICsxMTI0NSw3IEBAIHZvaWQgdGVzdFNlbGVjdEZvbGQoaW50cHRyX3QgdmFs
dWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTZWxl
Y3QsIE9yaWdpbigpLApAQCAtMTEyNTksNyArMTEyNjUsNyBAQCB2b2lkIHRlc3RTZWxlY3RJbnZl
cnQoKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2Vs
ZWN0LCBPcmlnaW4oKSwKQEAgLTExMzEyLDcgKzExMzE4LDcgQEAgdm9pZCB0ZXN0Q2hlY2tTZWxl
Y3QoKQogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKICAgICAKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTExMzgzLDcgKzEx
Mzg5LDcgQEAgdm9pZCB0ZXN0Q2hlY2tTZWxlY3RDaGVja1NlbGVjdCgpCiAgICAgICAgICAgICBq
aXQucmV0KCk7CiAgICAgICAgIH0pOwogICAgIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtMTE0MTksNyArMTE0MjUsNyBAQCB2b2lkIHRlc3RQ
b3dEb3VibGVCeUludGVnZXJMb29wKGRvdWJsZSB4CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7
CiAgICAgYXV0byByZXN1bHQgPSBwb3dEb3VibGVJbnQzMihwcm9jLCByb290LCBPcmlnaW4oKSwg
eCwgeSk7CiAgICAgQmFzaWNCbG9jayogY29udGludWF0aW9uID0gcmVzdWx0LmZpcnN0OwotICAg
IGNvbnRpbnVhdGlvbi0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0LnNlY29uZCk7CisgICAgY29udGludWF0aW9uLT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0LnNlY29uZCk7CiAKICAgICBDSEVD
Syhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgeE9wZXJhbmQsIHlPcGVy
YW5kKSwgYjNQb3coeE9wZXJhbmQsIHlPcGVyYW5kKSkpOwogfQpAQCAtMTE0MjksNyArMTE0MzUs
NyBAQCB2b2lkIHRlc3RUcnVuY09ySGlnaCgpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKQEAgLTExNDQ3LDcgKzExNDUzLDcg
QEAgdm9pZCB0ZXN0VHJ1bmNPckxvdygpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKQEAgLTExNDY1LDcgKzExNDcxLDcgQEAg
dm9pZCB0ZXN0Qml0QW5kT3JIaWdoKCkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTExNDg0LDcgKzExNDkwLDcgQEAg
dm9pZCB0ZXN0Qml0QW5kT3JMb3coKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMTE1MDcsMjAgKzExNTEzLDIwIEBA
IHZvaWQgdGVzdEJyYW5jaDY0RXF1YWwoaW50NjRfdCBsZWZ0LCBpbnQKIAogICAgIFZhbHVlKiBh
cmcxID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBH
UFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFZhbHVlKiBhcmcyID0gcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBFcXVhbCwgT3JpZ2luKCksIGFyZzEsIGFyZzIp
LAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxz
ZUNhc2UpKTsKIAogICAgIGJvb2wgdHJ1ZVJlc3VsdCA9IHRydWU7Ci0gICAgdGhlbkNhc2UtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5h
cHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZDhaLCBPcmlnaW4o
KSwKICAgICAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksICZ0cnVlUmVzdWx0KSkpOwogCiAgICAgYm9vbCBlbHNlUmVzdWx0ID0gZmFsc2U7
Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgTG9hZDhaLCBPcmlnaW4oKSwKQEAgLTExNTM4LDIwICsxMTU0NCwyMCBAQCB2b2lkIHRlc3RC
cmFuY2g2NEVxdWFsSW1tKGludDY0X3QgbGVmdCwgCiAKICAgICBWYWx1ZSogYXJnMSA9IHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKTsKICAgICBWYWx1ZSogYXJnMiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgcmlnaHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
QnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBF
cXVhbCwgT3JpZ2luKCksIGFyZzEsIGFyZzIpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhl
bkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAogICAgIGJvb2wgdHJ1ZVJlc3Vs
dCA9IHRydWU7Ci0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRo
ZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAg
ICAgICAgcHJvYywgTG9hZDhaLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHRoZW5DYXNlLT5hcHBl
bmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZ0cnVlUmVzdWx0KSkpOwogCiAg
ICAgYm9vbCBlbHNlUmVzdWx0ID0gZmFsc2U7Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8TWVt
b3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZDhaLCBPcmlnaW4oKSwKQEAgLTExNTcx
LDIwICsxMTU3NywyMCBAQCB2b2lkIHRlc3RCcmFuY2g2NEVxdWFsTWVtKGludDY0X3QgbGVmdCwg
CiAgICAgICAgIHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiBhcmcyID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBFcXVhbCwgT3JpZ2luKCksIGFyZzEsIGFyZzIpLAogICAg
ICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2Up
KTsKIAogICAgIGJvb2wgdHJ1ZVJlc3VsdCA9IHRydWU7Ci0gICAgdGhlbkNhc2UtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmRO
ZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZDhaLCBPcmlnaW4oKSwKICAg
ICAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksICZ0cnVlUmVzdWx0KSkpOwogCiAgICAgYm9vbCBlbHNlUmVzdWx0ID0gZmFsc2U7Ci0gICAg
ZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IGVsc2VDYXNlLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9h
ZDhaLCBPcmlnaW4oKSwKQEAgLTExNjA0LDIwICsxMTYxMCwyMCBAQCB2b2lkIHRlc3RCcmFuY2g2
NEVxdWFsTWVtSW1tKGludDY0X3QgbGVmCiAgICAgICAgIHByb2MsIExvYWQsIHBvaW50ZXJUeXBl
KCksIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiBhcmcy
ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCByaWdodCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEVxdWFsLCBPcmlnaW4oKSwgYXJnMSwgYXJnMiks
CiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNl
Q2FzZSkpOwogCiAgICAgYm9vbCB0cnVlUmVzdWx0ID0gdHJ1ZTsKLSAgICB0aGVuQ2FzZS0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFw
cGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkOFosIE9yaWdpbigp
LAogICAgICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgJnRydWVSZXN1bHQpKSk7CiAKICAgICBib29sIGVsc2VSZXN1bHQgPSBmYWxzZTsK
LSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBMb2FkOFosIE9yaWdpbigpLApAQCAtMTE2NDEsNyArMTE2NDcsNyBAQCB2b2lkIHRlc3RTdG9y
ZThMb2FkOFooaW50MzJfdCB2YWx1ZSkKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAg
ICAgICAgIHB0cik7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZDhaLCBP
cmlnaW4oKSwgcHRyKSk7CiAKQEAgLTExNjYzLDcgKzExNjY5LDcgQEAgdm9pZCB0ZXN0U3RvcmUx
NkxvYWQxNlooaW50MzJfdCB2YWx1ZSkKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAg
ICAgICAgIHB0cik7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZDE2Wiwg
T3JpZ2luKCksIHB0cikpOwogCkBAIC0xMTY3NSw3ICsxMTY4MSw3IEBAIHZvaWQgdGVzdFNTaHJT
aGwzMihpbnQzMl90IHZhbHVlLCBpbnQzMl8KICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAog
ICAgICAgICAgICAgcHJvYywgU1NociwgT3JpZ2luKCksCkBAIC0xMTY5Nyw3ICsxMTcwMyw3IEBA
IHZvaWQgdGVzdFNTaHJTaGw2NChpbnQ2NF90IHZhbHVlLCBpbnQzMl8KICAgICBQcm9jZWR1cmUg
cHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU1NociwgT3JpZ2luKCksCkBAIC0xMTcy
NSw4ICsxMTczMSw4IEBAIHZvaWQgdGVzdFRyaXZpYWxJbmZpbml0ZUxvb3AoKQogICAgIFByb2Nl
ZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAg
QmFzaWNCbG9jayogbG9vcCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3Ap
KTsKLSAgICBsb29wLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4o
KSwgRnJlcXVlbnRlZEJsb2NrKGxvb3ApKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhsb29wKSk7CisgICAgbG9v
cC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVk
QmxvY2sobG9vcCkpOwogCiAgICAgY29tcGlsZShwcm9jKTsKIH0KQEAgLTExNzQwLDE1ICsxMTc0
NiwxNSBAQCB2b2lkIHRlc3RGb2xkUGF0aEVxdWFsKCkKIAogICAgIFZhbHVlKiBhcmcgPSByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2lu
KCksIGFyZywgRnJlcXVlbnRlZEJsb2NrKHRoZW5CbG9jayksIEZyZXF1ZW50ZWRCbG9jayhlbHNl
QmxvY2spKTsKIAotICAgIHRoZW5CbG9jay0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
dGhlbkJsb2NrLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHRoZW5CbG9jay0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIEVxdWFsLCBPcmlnaW4oKSwgYXJnLCB0aGVuQmxvY2stPmFwcGVuZE5ldzxDb25z
dFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpKTsKIAotICAgIGVsc2VCbG9jay0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUJsb2NrLT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VCbG9jay0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEVxdWFsLCBPcmlnaW4oKSwgYXJnLCBl
bHNlQmxvY2stPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpKTsK
QEAgLTExNzY2LDcgKzExNzcyLDcgQEAgdm9pZCB0ZXN0TFNoaWZ0U2VsZjMyKCkKICAgICBWYWx1
ZSogYXJnID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgcHJvYywgVHJ1bmMsIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBTaGwsIE9yaWdpbigpLCBhcmcsIGFyZykpOwogCkBAIC0xMTc4OSw3ICsxMTc5NSw3IEBA
IHZvaWQgdGVzdFJTaGlmdFNlbGYzMigpCiAgICAgVmFsdWUqIGFyZyA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCiAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjApKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU1NociwgT3JpZ2luKCksIGFy
ZywgYXJnKSk7CiAKQEAgLTExODEyLDcgKzExODE4LDcgQEAgdm9pZCB0ZXN0VVJTaGlmdFNlbGYz
MigpCiAgICAgVmFsdWUqIGFyZyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgIHBy
b2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgWlNociwgT3JpZ2luKCksIGFyZywgYXJnKSk7CiAKQEAgLTExODMz
LDcgKzExODM5LDcgQEAgdm9pZCB0ZXN0TFNoaWZ0U2VsZjY0KCkKICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBh
cmcgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgU2hsLCBPcmlnaW4oKSwgYXJnLCByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRy
dW5jLCBPcmlnaW4oKSwgYXJnKSkpOwpAQCAtMTE4NTcsNyArMTE4NjMsNyBAQCB2b2lkIHRlc3RS
U2hpZnRTZWxmNjQoKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTU2hyLCBPcmlnaW4oKSwgYXJn
LCByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwgYXJnKSkpOwpA
QCAtMTE4ODEsNyArMTE4ODcsNyBAQCB2b2lkIHRlc3RVUlNoaWZ0U2VsZjY0KCkKICAgICBQcm9j
ZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAg
IFZhbHVlKiBhcmcgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgWlNociwgT3JpZ2luKCksIGFyZywgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBUcnVuYywgT3JpZ2luKCksIGFyZykpKTsKQEAgLTExOTE3LDcgKzExOTIzLDcgQEAg
dm9pZCB0ZXN0UGF0Y2hwb2ludERvdWJsZVJlZ3MoKQogICAgICAgICAgICAgbnVtQ2FsbHMrKzsK
ICAgICAgICAgfSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CiAKICAgICBhdXRvIGNv
ZGUgPSBjb21waWxlKHByb2MpOwogICAgIENIRUNLKG51bUNhbGxzID09IDEpOwpAQCAtMTE5NTAs
NyArMTE5NTYsNyBAQCB2b2lkIHRlc3RTcGlsbERlZlNtYWxsZXJUaGFuVXNlKCkKIAogICAgIC8v
IE9uIHg4NiwgU3ViIGFkbWl0IGFuIGFkZHJlc3MgZm9yIGFueSBvcGVyYW5kLiBJZiBpdCB1c2Vz
IHRoZSBzdGFjaywgdGhlIHRvcCBiaXRzIG11c3QgYmUgemVyby4KICAgICBWYWx1ZSogcmVzdWx0
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBmb3JjZVNwaWxs
LCBhcmc2NCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUo
cHJvYyk7CiAgICAgQ0hFQ0soaW52b2tlPGludDY0X3Q+KCpjb2RlLCAweGZmZmZmZmZmMDAwMDAw
MDApID09IDApOwpAQCAtMTE5NzAsNyArMTE5NzYsNyBAQCB2b2lkIHRlc3RTcGlsbFVzZUxhcmdl
clRoYW5EZWYoKQogCiAgICAgVmFsdWUqIGNvbmRpdGlvbiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAg
ICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLApAQCAtMTE5ODAsMTAgKzExOTg2
LDEwIEBAIHZvaWQgdGVzdFNwaWxsVXNlTGFyZ2VyVGhhbkRlZigpCiAgICAgVmFsdWUqIHRydW5j
YXRlZCA9IHRoZW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFpFeHQzMiwgT3JpZ2luKCks
CiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4o
KSwgYXJndW1lbnQpKTsKICAgICBVcHNpbG9uVmFsdWUqIHRoZW5SZXN1bHQgPSB0aGVuQ2FzZS0+
YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHRydW5jYXRlZCk7Ci0gICAg
dGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBG
cmVxdWVudGVkQmxvY2sodGFpbCkpOworICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CiAKICAgICBV
cHNpbG9uVmFsdWUqIGVsc2VSZXN1bHQgPSBlbHNlQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1
ZT4ocHJvYywgT3JpZ2luKCksIGFyZ3VtZW50KTsKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7
CisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4o
KSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKIAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCAxMDA7ICsraSkgewogICAgICAgICBQYXRjaHBvaW50VmFsdWUqIHByZXZlbnRUYWlsRHVwbGlj
YXRpb24gPSB0YWlsLT5hcHBlbmROZXc8UGF0Y2hwb2ludFZhbHVlPihwcm9jLCBWb2lkLCBPcmln
aW4oKSk7CkBAIC0xMjAwNCw3ICsxMjAxMCw3IEBAIHZvaWQgdGVzdFNwaWxsVXNlTGFyZ2VyVGhh
bkRlZigpCiAgICAgVmFsdWUqIHBoaSA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhp
LCBJbnQ2NCwgT3JpZ2luKCkpOwogICAgIHRoZW5SZXN1bHQtPnNldFBoaShwaGkpOwogICAgIGVs
c2VSZXN1bHQtPnNldFBoaShwaGkpOwotICAgIHRhaWwtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBoaSk7CisgICAgdGFpbC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBoaSk7CiAKICAgICBhdXRvIGNvZGUgPSBj
b21waWxlKHByb2MpOwogICAgIENIRUNLKGludm9rZTx1aW50NjRfdD4oKmNvZGUsIDEsIDB4ZmZm
ZmZmZmYwMDAwMDAwMCkgPT0gMCk7CkBAIC0xMjA4NiwxMiArMTIwOTIsMjM5IEBAIHZvaWQgdGVz
dExhdGVSZWdpc3RlcigpCiAgICAgICAgICAgICBqaXQubm9wKCk7CiAgICAgICAgICAgICBqaXQu
bm9wKCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZFBhdGNocG9pbnQpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmRQYXRjaHBvaW50
KTsKICAgICAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIENIRUNLKGludm9r
ZTx1aW50NjRfdD4oKmNvZGUpID09IHJlc3VsdCk7CiB9CiAKK3ZvaWQgaW50ZXJwcmV0ZXJQcmlu
dChWZWN0b3I8aW50cHRyX3Q+KiBzdHJlYW0sIGludHB0cl90IHZhbHVlKQoreworICAgIHN0cmVh
bS0+YXBwZW5kKHZhbHVlKTsKK30KKwordm9pZCB0ZXN0SW50ZXJwcmV0ZXIoKQoreworICAgIC8v
IFRoaXMgaW1wbGVtZW50cyBhIHNpbGx5IGludGVycHJldGVyIHRvIHRlc3QgYnVpbGRpbmcgY3Vz
dG9tIHN3aXRjaCBzdGF0ZW1lbnRzIHVzaW5nCisgICAgLy8gUGF0Y2hwb2ludC4KKyAgICAKKyAg
ICBQcm9jZWR1cmUgcHJvYzsKKyAgICAKKyAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOworICAgIEJhc2ljQmxvY2sqIGRpc3BhdGNoID0gcHJvYy5hZGRCbG9jaygpOworICAg
IEJhc2ljQmxvY2sqIGFkZFRvRGF0YVBvaW50ZXIgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFz
aWNCbG9jayogYWRkVG9Db2RlUG9pbnRlciA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBCYXNpY0Js
b2NrKiBhZGRUb0NvZGVQb2ludGVyVGFrZW4gPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNC
bG9jayogYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuID0gcHJvYy5hZGRCbG9jaygpOworICAgIEJh
c2ljQmxvY2sqIGFkZFRvRGF0YSA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBCYXNpY0Jsb2NrKiBw
cmludCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBCYXNpY0Jsb2NrKiBzdG9wID0gcHJvYy5hZGRC
bG9jaygpOworICAgIAorICAgIFZhcmlhYmxlKiBkYXRhUG9pbnRlciA9IHByb2MuYWRkVmFyaWFi
bGUocG9pbnRlclR5cGUoKSk7CisgICAgVmFyaWFibGUqIGNvZGVQb2ludGVyID0gcHJvYy5hZGRW
YXJpYWJsZShwb2ludGVyVHlwZSgpKTsKKyAgICAKKyAgICByb290LT5hcHBlbmROZXc8VmFyaWFi
bGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGRhdGFQb2ludGVyLAorICAg
ICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMCkpOworICAgIHJvb3QtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVl
PigKKyAgICAgICAgcHJvYywgU2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIsCisgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIxKSk7CisgICAgVmFsdWUqIGNvbnRleHQgPSByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMik7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVx
dWVudGVkQmxvY2soZGlzcGF0Y2gpKTsKKworICAgIC8vIE5PVEU6IEl0J3MgdG90YWxseSB2YWxp
ZCBmb3IgdGhpcyBwYXRjaHBvaW50IHRvIGJlIHRhaWwtZHVwbGljYXRlZC4KKyAgICBWYWx1ZSog
Y29kZVBvaW50ZXJWYWx1ZSA9CisgICAgICAgIGRpc3BhdGNoLT5hcHBlbmROZXc8VmFyaWFibGVW
YWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyKTsKKyAgICBWYWx1ZSog
b3Bjb2RlID0gZGlzcGF0Y2gtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgIHByb2Ms
IExvYWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlKTsKKyAgICBQ
YXRjaHBvaW50VmFsdWUqIHBvbHlKdW1wID0gZGlzcGF0Y2gtPmFwcGVuZE5ldzxQYXRjaHBvaW50
VmFsdWU+KHByb2MsIFZvaWQsIE9yaWdpbigpKTsKKyAgICBwb2x5SnVtcC0+ZWZmZWN0cyA9IEVm
ZmVjdHMoKTsKKyAgICBwb2x5SnVtcC0+ZWZmZWN0cy50ZXJtaW5hbCA9IHRydWU7CisgICAgcG9s
eUp1bXAtPmFwcGVuZFNvbWVSZWdpc3RlcihvcGNvZGUpOworICAgIHBvbHlKdW1wLT5jbG9iYmVy
KFJlZ2lzdGVyU2V0OjptYWNyb1NjcmF0Y2hSZWdpc3RlcnMoKSk7CisgICAgcG9seUp1bXAtPm51
bUdQU2NyYXRjaFJlZ2lzdGVycysrOworICAgIGRpc3BhdGNoLT5hcHBlbmRTdWNjZXNzb3IoRnJl
cXVlbnRlZEJsb2NrKGFkZFRvRGF0YVBvaW50ZXIpKTsKKyAgICBkaXNwYXRjaC0+YXBwZW5kU3Vj
Y2Vzc29yKEZyZXF1ZW50ZWRCbG9jayhhZGRUb0NvZGVQb2ludGVyKSk7CisgICAgZGlzcGF0Y2gt
PmFwcGVuZFN1Y2Nlc3NvcihGcmVxdWVudGVkQmxvY2soYWRkVG9EYXRhKSk7CisgICAgZGlzcGF0
Y2gtPmFwcGVuZFN1Y2Nlc3NvcihGcmVxdWVudGVkQmxvY2socHJpbnQpKTsKKyAgICBkaXNwYXRj
aC0+YXBwZW5kU3VjY2Vzc29yKEZyZXF1ZW50ZWRCbG9jayhzdG9wKSk7CisgICAgCisgICAgLy8g
T3VyICJvcGNvZGVzIi4KKyAgICBzdGF0aWMgY29uc3QgaW50cHRyX3QgQWRkRFAgPSAwOworICAg
IHN0YXRpYyBjb25zdCBpbnRwdHJfdCBBZGRDUCA9IDE7CisgICAgc3RhdGljIGNvbnN0IGludHB0
cl90IEFkZCA9IDI7CisgICAgc3RhdGljIGNvbnN0IGludHB0cl90IFByaW50ID0gMzsKKyAgICBz
dGF0aWMgY29uc3QgaW50cHRyX3QgU3RvcCA9IDQ7CisgICAgCisgICAgcG9seUp1bXAtPnNldEdl
bmVyYXRvcigKKyAgICAgICAgWyZdIChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU3RhY2ttYXBH
ZW5lcmF0aW9uUGFyYW1zJiBwYXJhbXMpIHsKKyAgICAgICAgICAgIFZlY3RvcjxCb3g8Q0NhbGxI
ZWxwZXJzOjpMYWJlbD4+IGxhYmVscyA9IHBhcmFtcy5zdWNjZXNzb3JMYWJlbHMoKTsKKworICAg
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKiBqdW1wVGFibGUgPSBiaXR3aXNlX2Nhc3Q8
TWFjcm9Bc3NlbWJsZXJDb2RlUHRyKj4oCisgICAgICAgICAgICAgICAgcGFyYW1zLnByb2MoKS5h
ZGREYXRhU2VjdGlvbihzaXplb2YoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKSAqIGxhYmVscy5zaXpl
KCkpKTsKKworICAgICAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRy
KGp1bXBUYWJsZSksIHBhcmFtcy5ncFNjcmF0Y2goMCkpOworICAgICAgICAgICAgaml0Lmp1bXAo
Q0NhbGxIZWxwZXJzOjpCYXNlSW5kZXgocGFyYW1zLmdwU2NyYXRjaCgwKSwgcGFyYW1zWzBdLmdw
cigpLCBDQ2FsbEhlbHBlcnM6OnRpbWVzUHRyKCkpKTsKKyAgICAgICAgICAgIAorICAgICAgICAg
ICAgaml0LmFkZExpbmtUYXNrKAorICAgICAgICAgICAgICAgIFsmLCBqdW1wVGFibGUsIGxhYmVs
c10gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgZm9yICh1
bnNpZ25lZCBpID0gbGFiZWxzLnNpemUoKTsgaS0tOykKKyAgICAgICAgICAgICAgICAgICAgICAg
IGp1bXBUYWJsZVtpXSA9IGxpbmtCdWZmZXIubG9jYXRpb25PZigqbGFiZWxzW2ldKTsKKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgCisgICAgLy8gQWRkRFAgPG9wZXJhbmQ+
OiBhZGRzIDxvcGVyYW5kPiB0byBEUC4KKyAgICBjb2RlUG9pbnRlclZhbHVlID0KKyAgICAgICAg
YWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHByb2MsIEIzOjpHZXQs
IE9yaWdpbigpLCBjb2RlUG9pbnRlcik7CisgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3
PFZhcmlhYmxlVmFsdWU+KAorICAgICAgICBwcm9jLCBTZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRl
ciwKKyAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAg
ICAgIHByb2MsIEIzOjpBZGQsIE9yaWdpbigpLAorICAgICAgICAgICAgYWRkVG9EYXRhUG9pbnRl
ci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBkYXRh
UG9pbnRlciksCisgICAgICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFsdWU+
KAorICAgICAgICAgICAgICAgIHByb2MsIE11bCwgT3JpZ2luKCksCisgICAgICAgICAgICAgICAg
YWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAgICAg
ICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFs
dWUsIHNpemVvZihpbnRwdHJfdCkpLAorICAgICAgICAgICAgICAgIGFkZFRvRGF0YVBvaW50ZXIt
PmFwcGVuZEludENvbnN0YW50KAorICAgICAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwg
cG9pbnRlclR5cGUoKSwgc2l6ZW9mKGludHB0cl90KSkpKSk7CisgICAgYWRkVG9EYXRhUG9pbnRl
ci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAgICAgICBwcm9jLCBTZXQsIE9yaWdpbigp
LCBjb2RlUG9pbnRlciwKKyAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhbHVl
PigKKyAgICAgICAgICAgIHByb2MsIEIzOjpBZGQsIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVl
LAorICAgICAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kSW50Q29uc3RhbnQoCisgICAg
ICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBlKCksIHNpemVvZihpbnRwdHJf
dCkgKiAyKSkpOworICAgIGFkZFRvRGF0YVBvaW50ZXItPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRpc3BhdGNoKSk7CisgICAgCisg
ICAgLy8gQWRkQ1AgPG9wZXJhbmQ+OiBhZGRzIDxvcGVyYW5kPiB0byBDUCBpZiB0aGUgY3VycmVu
dCB2YWx1ZSBhdCBEUCBpcyBub24temVybywgb3RoZXJ3aXNlCisgICAgLy8gZmFsbHMgdGhyb3Vn
aCBub3JtYWxseS4KKyAgICBjb2RlUG9pbnRlclZhbHVlID0KKyAgICAgICAgYWRkVG9Db2RlUG9p
bnRlci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBj
b2RlUG9pbnRlcik7CisgICAgVmFsdWUqIGRhdGFQb2ludGVyVmFsdWUgPQorICAgICAgICBhZGRU
b0NvZGVQb2ludGVyLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3Jp
Z2luKCksIGRhdGFQb2ludGVyKTsKKyAgICBhZGRUb0NvZGVQb2ludGVyLT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCisgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCisgICAgICAgIGFkZFRv
Q29kZVBvaW50ZXItPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBM
b2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwgZGF0YVBvaW50ZXJWYWx1ZSksCisgICAgICAg
IEZyZXF1ZW50ZWRCbG9jayhhZGRUb0NvZGVQb2ludGVyVGFrZW4pLCBGcmVxdWVudGVkQmxvY2so
YWRkVG9Db2RlUG9pbnRlck5vdFRha2VuKSk7CisgICAgYWRkVG9Db2RlUG9pbnRlclRha2VuLT5h
cHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNv
ZGVQb2ludGVyLAorICAgICAgICBhZGRUb0NvZGVQb2ludGVyVGFrZW4tPmFwcGVuZE5ldzxWYWx1
ZT4oCisgICAgICAgICAgICBwcm9jLCBCMzo6QWRkLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1
ZSwKKyAgICAgICAgICAgIGFkZFRvQ29kZVBvaW50ZXJUYWtlbi0+YXBwZW5kTmV3PFZhbHVlPigK
KyAgICAgICAgICAgICAgICBwcm9jLCBNdWwsIE9yaWdpbigpLAorICAgICAgICAgICAgICAgIGFk
ZFRvQ29kZVBvaW50ZXJUYWtlbi0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAg
ICAgICAgICAgcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCksIGNvZGVQb2ludGVy
VmFsdWUsIHNpemVvZihpbnRwdHJfdCkpLAorICAgICAgICAgICAgICAgIGFkZFRvQ29kZVBvaW50
ZXJUYWtlbi0+YXBwZW5kSW50Q29uc3RhbnQoCisgICAgICAgICAgICAgICAgICAgIHByb2MsIE9y
aWdpbigpLCBwb2ludGVyVHlwZSgpLCBzaXplb2YoaW50cHRyX3QpKSkpKTsKKyAgICBhZGRUb0Nv
ZGVQb2ludGVyVGFrZW4tPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4o
KSwgRnJlcXVlbnRlZEJsb2NrKGRpc3BhdGNoKSk7CisgICAgYWRkVG9Db2RlUG9pbnRlck5vdFRh
a2VuLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2lu
KCksIGNvZGVQb2ludGVyLAorICAgICAgICBhZGRUb0NvZGVQb2ludGVyTm90VGFrZW4tPmFwcGVu
ZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBCMzo6QWRkLCBPcmlnaW4oKSwgY29kZVBv
aW50ZXJWYWx1ZSwKKyAgICAgICAgICAgIGFkZFRvQ29kZVBvaW50ZXJOb3RUYWtlbi0+YXBwZW5k
SW50Q29uc3RhbnQoCisgICAgICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBl
KCksIHNpemVvZihpbnRwdHJfdCkgKiAyKSkpOworICAgIGFkZFRvQ29kZVBvaW50ZXJOb3RUYWtl
bi0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAorICAgICAgICBwcm9jLCBKdW1wLCBPcmlnaW4oKSwg
RnJlcXVlbnRlZEJsb2NrKGRpc3BhdGNoKSk7CisKKyAgICAvLyBBZGQgPG9wZXJhbmQ+OiBhZGRz
IDxvcGVyYW5kPiB0byB0aGUgc2xvdCBwb2ludGVkIHRvIGJ5IERQLgorICAgIGNvZGVQb2ludGVy
VmFsdWUgPSBhZGRUb0RhdGEtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPihwcm9jLCBCMzo6R2V0
LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIpOworICAgIGRhdGFQb2ludGVyVmFsdWUgPSBhZGRUb0Rh
dGEtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPihwcm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwgZGF0
YVBvaW50ZXIpOworICAgIGFkZFRvRGF0YS0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAg
ICAgcHJvYywgU3RvcmUsIE9yaWdpbigpLAorICAgICAgICBhZGRUb0RhdGEtPmFwcGVuZE5ldzxW
YWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBCMzo6QWRkLCBPcmlnaW4oKSwKKyAgICAgICAgICAg
IGFkZFRvRGF0YS0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAgICAgICBwcm9j
LCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwgZGF0YVBvaW50ZXJWYWx1ZSksCisgICAg
ICAgICAgICBhZGRUb0RhdGEtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgICAgICAg
ICAgcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUs
IHNpemVvZihpbnRwdHJfdCkpKSwKKyAgICAgICAgZGF0YVBvaW50ZXJWYWx1ZSk7CisgICAgYWRk
VG9EYXRhLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3Jp
Z2luKCksIGNvZGVQb2ludGVyLAorICAgICAgICBhZGRUb0RhdGEtPmFwcGVuZE5ldzxWYWx1ZT4o
CisgICAgICAgICAgICBwcm9jLCBCMzo6QWRkLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwK
KyAgICAgICAgICAgIGFkZFRvRGF0YS0+YXBwZW5kSW50Q29uc3RhbnQocHJvYywgT3JpZ2luKCks
IHBvaW50ZXJUeXBlKCksIHNpemVvZihpbnRwdHJfdCkgKiAyKSkpOworICAgIGFkZFRvRGF0YS0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxv
Y2soZGlzcGF0Y2gpKTsKKyAgICAKKyAgICAvLyBQcmludDogInByaW50cyIgdGhlIHZhbHVlIHBv
aW50ZWQgdG8gYnkgRFAuIFdoYXQgdGhpcyBhY3R1YWxseSBtZWFucyBpcyB0aGF0IHRoZSB2YWx1
ZSBpcworICAgIC8vIGFwcGVuZGVkIHRvIHRoZSBzdHJlYW0gdmVjdG9yIGJ5IHRoZSBpbnRlcnBy
ZXRlclByaW50IGZ1bmN0aW9uLgorICAgIGNvZGVQb2ludGVyVmFsdWUgPSBwcmludC0+YXBwZW5k
TmV3PFZhcmlhYmxlVmFsdWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlcik7
CisgICAgZGF0YVBvaW50ZXJWYWx1ZSA9IHByaW50LT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4o
cHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGRhdGFQb2ludGVyKTsKKyAgICBwcmludC0+YXBwZW5k
TmV3PENDYWxsVmFsdWU+KAorICAgICAgICBwcm9jLCBWb2lkLCBPcmlnaW4oKSwKKyAgICAgICAg
cHJpbnQtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIE9yaWdp
bigpLCBiaXR3aXNlX2Nhc3Q8dm9pZCo+KGludGVycHJldGVyUHJpbnQpKSwKKyAgICAgICAgY29u
dGV4dCwKKyAgICAgICAgcHJpbnQtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwg
cG9pbnRlclR5cGUoKSwgT3JpZ2luKCksIGRhdGFQb2ludGVyVmFsdWUpKTsKKyAgICBwcmludC0+
YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KAorICAgICAgICBwcm9jLCBTZXQsIE9yaWdpbigpLCBj
b2RlUG9pbnRlciwKKyAgICAgICAgcHJpbnQtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAg
ICBwcm9jLCBCMzo6QWRkLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwKKyAgICAgICAgICAg
IHByaW50LT5hcHBlbmRJbnRDb25zdGFudChwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwg
c2l6ZW9mKGludHB0cl90KSkpKTsKKyAgICBwcmludC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZGlzcGF0Y2gpKTsKKyAgICAKKyAg
ICAvLyBTdG9wOiByZXR1cm5zLgorICAgIHN0b3AtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKKyAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKKyAgICAgICAgc3RvcC0+YXBwZW5kSW50Q29u
c3RhbnQocHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBlKCksIDApKTsKKyAgICAKKyAgICBhdXRv
IGludGVycHJldGVyID0gY29tcGlsZShwcm9jKTsKKyAgICAKKyAgICBWZWN0b3I8aW50cHRyX3Q+
IGRhdGE7CisgICAgVmVjdG9yPGludHB0cl90PiBjb2RlOworICAgIFZlY3RvcjxpbnRwdHJfdD4g
c3RyZWFtOworICAgIAorICAgIGRhdGEuYXBwZW5kKDEpOworICAgIGRhdGEuYXBwZW5kKDApOwor
ICAgIAorICAgIGlmIChzaG91bGRCZVZlcmJvc2UoKSkKKyAgICAgICAgZGF0YUxvZygiZGF0YSA9
ICIsIGxpc3REdW1wKGRhdGEpLCAiXG4iKTsKKyAgICAKKyAgICAvLyBXZSdsbCB3cml0ZSBhIHBy
b2dyYW0gdGhhdCBwcmludHMgdGhlIG51bWJlcnMgMS4uMTAwLgorICAgIC8vIFdlIGV4cGVjdCBE
UCB0byBwb2ludCBhdCAjMC4KKyAgICBjb2RlLmFwcGVuZChBZGRDUCk7CisgICAgY29kZS5hcHBl
bmQoNik7IC8vIGdvIHRvIGxvb3AgYm9keQorICAgIAorICAgIC8vIExvb3AgcmUtZW50cnk6Cisg
ICAgLy8gV2UgZXhwZWN0IERQIHRvIHBvaW50IGF0ICMxIGFuZCBmb3IgIzEgdG8gYmUgb2Zmc2V0
IGJ5IC0xMDAuCisgICAgY29kZS5hcHBlbmQoQWRkKTsKKyAgICBjb2RlLmFwcGVuZCgxMDApOwor
ICAgIAorICAgIGNvZGUuYXBwZW5kKEFkZERQKTsKKyAgICBjb2RlLmFwcGVuZCgtMSk7CisgICAg
CisgICAgLy8gTG9vcCBoZWFkZXI6CisgICAgLy8gV2UgZXhwZWN0IERQIHRvIHBvaW50IGF0ICMw
LgorICAgIGNvZGUuYXBwZW5kKEFkZERQKTsKKyAgICBjb2RlLmFwcGVuZCgxKTsKKyAgICAKKyAg
ICBjb2RlLmFwcGVuZChBZGQpOworICAgIGNvZGUuYXBwZW5kKDEpOworICAgIAorICAgIGNvZGUu
YXBwZW5kKFByaW50KTsKKyAgICAKKyAgICBjb2RlLmFwcGVuZChBZGQpOworICAgIGNvZGUuYXBw
ZW5kKC0xMDApOworICAgIAorICAgIC8vIFdlIHdhbnQgdG8gc3RvcCBpZiBpdCdzIHplcm8gYW5k
IGNvbnRpbnVlIGlmIGl0J3Mgbm9uLXplcm8uIEFkZENQIHRha2VzIHRoZSBicmFuY2ggaWYgaXQn
cworICAgIC8vIG5vbi16ZXJvLgorICAgIGNvZGUuYXBwZW5kKEFkZENQKTsKKyAgICBjb2RlLmFw
cGVuZCgtMTEpOyAvLyBnbyB0byBsb29wIHJlLWVudHJ5LgorICAgIAorICAgIGNvZGUuYXBwZW5k
KFN0b3ApOworICAgIAorICAgIGlmIChzaG91bGRCZVZlcmJvc2UoKSkKKyAgICAgICAgZGF0YUxv
ZygiY29kZSA9ICIsIGxpc3REdW1wKGNvZGUpLCAiXG4iKTsKKyAgICAKKyAgICBDSEVDSyghaW52
b2tlPGludHB0cl90PigqaW50ZXJwcmV0ZXIsIGRhdGEuZGF0YSgpLCBjb2RlLmRhdGEoKSwgJnN0
cmVhbSkpOworICAgIAorICAgIENIRUNLKHN0cmVhbS5zaXplKCkgPT0gMTAwKTsKKyAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgMTAwOyArK2kpCisgICAgICAgIENIRUNLKHN0cmVhbVtpXSA9
PSBpICsgMSk7CisgICAgCisgICAgaWYgKHNob3VsZEJlVmVyYm9zZSgpKQorICAgICAgICBkYXRh
TG9nKCJzdHJlYW0gPSAiLCBsaXN0RHVtcChzdHJlYW0pLCAiXG4iKTsKK30KKwogdm9pZCB0ZXN0
UmVkdWNlU3RyZW5ndGhDaGVja0JvdHRvbVVzZUluQW5vdGhlckJsb2NrKCkKIHsKICAgICBQcm9j
ZWR1cmUgcHJvYzsKQEAgLTEyMTEwLDcgKzEyMzQzLDcgQEAgdm9pZCB0ZXN0UmVkdWNlU3RyZW5n
dGhDaGVja0JvdHRvbVVzZUluQQogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsK
ICAgICBWYWx1ZSogYXJnID0gb25lLT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgb25lLT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHR3bykpOwor
ICAgIG9uZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVx
dWVudGVkQmxvY2sodHdvKSk7CiAgICAgCiAgICAgY2hlY2sgPSB0d28tPmFwcGVuZE5ldzxDaGVj
a1ZhbHVlPigKICAgICAgICAgcHJvYywgQ2hlY2tBZGQsIE9yaWdpbigpLCBhcmcsCkBAIC0xMjEx
OSw3ICsxMjM1Miw3IEBAIHZvaWQgdGVzdFJlZHVjZVN0cmVuZ3RoQ2hlY2tCb3R0b21Vc2VJbkEK
ICAgICAgICAgWyZdIChDQ2FsbEhlbHBlcnMmLCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJh
bXMmKSB7CiAgICAgICAgICAgICBDSEVDSyghIlNob3VsZCBub3QgZXhlY3V0ZSIpOwogICAgICAg
ICB9KTsKLSAgICB0d28tPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIGNoZWNrKTsKKyAgICB0d28tPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBjaGVjayk7CiAgICAgCiAgICAgcHJvYy5yZXNldFJlYWNoYWJpbGl0eSgp
OwogICAgIHJlZHVjZVN0cmVuZ3RoKHByb2MpOwpAQCAtMTIxMzQsMTEgKzEyMzY3LDExIEBAIHZv
aWQgdGVzdFJlc2V0UmVhY2hhYmlsaXR5RGFuZ2xpbmdSZWZlcmUKICAgICAKICAgICBVcHNpbG9u
VmFsdWUqIHVwc2lsb24gPSBvbmUtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KAogICAgICAgICBw
cm9jLCBPcmlnaW4oKSwgb25lLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgNDIpKTsKLSAgICBvbmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIE9vcHMsIE9y
aWdpbigpKTsKKyAgICBvbmUtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBPb3BzLCBPcmln
aW4oKSk7CiAgICAgCiAgICAgVmFsdWUqIHBoaSA9IHR3by0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBQaGksIEludDMyLCBPcmlnaW4oKSk7CiAgICAgdXBzaWxvbi0+c2V0UGhpKHBoaSk7Ci0gICAg
dHdvLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBPb3BzLCBPcmlnaW4oKSk7CisgICAg
dHdvLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgT29wcywgT3JpZ2luKCkpOwogICAgIAog
ICAgIHByb2MucmVzZXRSZWFjaGFiaWxpdHkoKTsKICAgICB2YWxpZGF0ZShwcm9jKTsKQEAgLTEz
NTQ3LDYgKzEzNzgwLDcgQEAgdm9pZCBydW4oY29uc3QgY2hhciogZmlsdGVyKQogICAgIFJVTih0
ZXN0U3BpbGxEZWZTbWFsbGVyVGhhblVzZSgpKTsKICAgICBSVU4odGVzdFNwaWxsVXNlTGFyZ2Vy
VGhhbkRlZigpKTsKICAgICBSVU4odGVzdExhdGVSZWdpc3RlcigpKTsKKyAgICBSVU4odGVzdElu
dGVycHJldGVyKCkpOwogICAgIFJVTih0ZXN0UmVkdWNlU3RyZW5ndGhDaGVja0JvdHRvbVVzZUlu
QW5vdGhlckJsb2NrKCkpOwogICAgIFJVTih0ZXN0UmVzZXRSZWFjaGFiaWxpdHlEYW5nbGluZ1Jl
ZmVyZW5jZSgpKTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2Rl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUu
Y3BwCShyZXZpc2lvbiAyMDMzNzEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fp
ckNvZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJB
aXJDQ2FsbFNwZWNpYWwuaCIKICNpbmNsdWRlICJCM0Jhc2ljQmxvY2tVdGlscy5oIgorI2luY2x1
ZGUgIkIzUHJvY2VkdXJlLmgiCiAjaW5jbHVkZSAiQjNTdGFja1Nsb3QuaCIKIAogbmFtZXNwYWNl
IEpTQyB7IG5hbWVzcGFjZSBCMyB7IG5hbWVzcGFjZSBBaXIgewpAQCAtMTM1LDYgKzEzNiwxMSBA
QCB2b2lkIENvZGU6OmFkZEZhc3RUbXAoVG1wIHRtcCkKICAgICBtX2Zhc3RUbXBzLmFkZCh0bXAp
OwogfQogCit2b2lkKiBDb2RlOjphZGREYXRhU2VjdGlvbihzaXplX3Qgc2l6ZSkKK3sKKyAgICBy
ZXR1cm4gbV9wcm9jLmFkZERhdGFTZWN0aW9uKHNpemUpOworfQorCiB1bnNpZ25lZCBDb2RlOjpq
c0hhc2goKSBjb25zdAogewogICAgIHVuc2lnbmVkIHJlc3VsdCA9IDA7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuaAkocmV2aXNpb24gMjAzMzcxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYg
KzMzLDcgQEAKICNpbmNsdWRlICJBaXJTcGVjaWFsLmgiCiAjaW5jbHVkZSAiQWlyU3RhY2tTbG90
LmgiCiAjaW5jbHVkZSAiQWlyVG1wLmgiCisjaW5jbHVkZSAiQjNJbmRleE1hcC5oIgogI2luY2x1
ZGUgIkIzU3BhcnNlQ29sbGVjdGlvbi5oIgogI2luY2x1ZGUgIlJlZ2lzdGVyQXRPZmZzZXRMaXN0
LmgiCiAjaW5jbHVkZSAiU3RhY2tBbGlnbm1lbnQuaCIKQEAgLTIwMyw2ICsyMDQsOCBAQCBwdWJs
aWM6CiAgICAgdm9pZCBhZGRGYXN0VG1wKFRtcCk7CiAgICAgYm9vbCBpc0Zhc3RUbXAoVG1wIHRt
cCkgY29uc3QgeyByZXR1cm4gbV9mYXN0VG1wcy5jb250YWlucyh0bXApOyB9CiAgICAgCisgICAg
dm9pZCogYWRkRGF0YVNlY3Rpb24oc2l6ZV90KTsKKyAgICAKICAgICAvLyBUaGUgbmFtZSBoYXMg
dG8gYmUgYSBzdHJpbmcgbGl0ZXJhbCwgc2luY2Ugd2UgZG9uJ3QgZG8gYW55IG1lbW9yeSBtYW5h
Z2VtZW50IGZvciB0aGUgc3RyaW5nLgogICAgIHZvaWQgc2V0TGFzdFBoYXNlTmFtZShjb25zdCBj
aGFyKiBuYW1lKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWly
Q3VzdG9tLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJD
dXN0b20uaAkocmV2aXNpb24gMjAzMzcxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fp
ci9BaXJDdXN0b20uaAkod29ya2luZyBjb3B5KQpAQCAtODQsMTAgKzg0LDE1IEBAIHN0cnVjdCBQ
YXRjaEN1c3RvbSB7CiAgICAgewogICAgICAgICByZXR1cm4gaW5zdC5hcmdzWzBdLnNwZWNpYWwo
KS0+c2hvdWxkVHJ5QWxpYXNpbmdEZWYoaW5zdCk7CiAgICAgfQorICAgIAorICAgIHN0YXRpYyBi
b29sIGlzVGVybWluYWwoSW5zdCYgaW5zdCkKKyAgICB7CisgICAgICAgIHJldHVybiBpbnN0LmFy
Z3NbMF0uc3BlY2lhbCgpLT5pc1Rlcm1pbmFsKGluc3QpOworICAgIH0KIAogICAgIHN0YXRpYyBi
b29sIGhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3RzKEluc3QmIGluc3QpCiAgICAgewotICAgICAg
ICByZXR1cm4gaW5zdC5hcmdzWzBdLnNwZWNpYWwoKS0+aGFzTm9uQXJnTm9uQ29udHJvbEVmZmVj
dHMoKTsKKyAgICAgICAgcmV0dXJuIGluc3QuYXJnc1swXS5zcGVjaWFsKCktPmhhc05vbkFyZ05v
bkNvbnRyb2xFZmZlY3RzKGluc3QpOwogICAgIH0KIAogICAgIHN0YXRpYyBDQ2FsbEhlbHBlcnM6
Okp1bXAgZ2VuZXJhdGUoCkBAIC0xMzgsNiArMTQzLDExIEBAIHN0cnVjdCBDQ2FsbEN1c3RvbSB7
CiAgICAgewogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CisgICAgCisgICAgc3RhdGljIGJv
b2wgaXNUZXJtaW5hbChJbnN0JikKKyAgICB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
CiAKICAgICBzdGF0aWMgYm9vbCBoYXNOb25BcmdOb25Db250cm9sRWZmZWN0cyhJbnN0JikKICAg
ICB7CkBAIC0xOTcsNiArMjA3LDExIEBAIHN0cnVjdCBTaHVmZmxlQ3VzdG9tIHsKICAgICAgICAg
fQogICAgIH0KIAorICAgIHN0YXRpYyBib29sIGlzVGVybWluYWwoSW5zdCYpCisgICAgeworICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCiAgICAgc3RhdGljIGJvb2wgaGFzTm9uQXJnTm9u
Q29udHJvbEVmZmVjdHMoSW5zdCYpCiAgICAgewogICAgICAgICByZXR1cm4gZmFsc2U7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRlLmNwcAkocmV2aXNp
b24gMjAzMzcxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0ZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTUwLDggKzUwLDEwIEBACiAjaW5jbHVkZSAiQjNJbmRleE1h
cC5oIgogI2luY2x1ZGUgIkIzUHJvY2VkdXJlLmgiCiAjaW5jbHVkZSAiQjNUaW1pbmdTY29wZS5o
IgorI2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgi
CiAjaW5jbHVkZSAiRGlzYWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlLmgiCisjaW5jbHVk
ZSAiTGlua0J1ZmZlci5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsgbmFtZXNw
YWNlIEFpciB7CiAKQEAgLTE3MywxMiArMTc1LDE2IEBAIHZvaWQgZ2VuZXJhdGUoQ29kZSYgY29k
ZSwgQ0NhbGxIZWxwZXJzJiAKIAogICAgIEdlbmVyYXRpb25Db250ZXh0IGNvbnRleHQ7CiAgICAg
Y29udGV4dC5jb2RlID0gJmNvZGU7Ci0gICAgSW5kZXhNYXA8QmFzaWNCbG9jaywgQ0NhbGxIZWxw
ZXJzOjpMYWJlbD4gYmxvY2tMYWJlbHMoY29kZS5zaXplKCkpOworICAgIGNvbnRleHQuYmxvY2tM
YWJlbHMucmVzaXplKGNvZGUuc2l6ZSgpKTsKKyAgICBmb3IgKEJhc2ljQmxvY2sqIGJsb2NrIDog
Y29kZSkgeworICAgICAgICBpZiAoYmxvY2spCisgICAgICAgICAgICBjb250ZXh0LmJsb2NrTGFi
ZWxzW2Jsb2NrXSA9IEJveDxDQ2FsbEhlbHBlcnM6OkxhYmVsPjo6Y3JlYXRlKCk7CisgICAgfQog
ICAgIEluZGV4TWFwPEJhc2ljQmxvY2ssIENDYWxsSGVscGVyczo6SnVtcExpc3Q+IGJsb2NrSnVt
cHMoY29kZS5zaXplKCkpOwogCiAgICAgYXV0byBsaW5rID0gWyZdIChDQ2FsbEhlbHBlcnM6Okp1
bXAganVtcCwgQmFzaWNCbG9jayogdGFyZ2V0KSB7Ci0gICAgICAgIGlmIChibG9ja0xhYmVsc1t0
YXJnZXRdLmlzU2V0KCkpIHsKLSAgICAgICAgICAgIGp1bXAubGlua1RvKGJsb2NrTGFiZWxzW3Rh
cmdldF0sICZqaXQpOworICAgICAgICBpZiAoY29udGV4dC5ibG9ja0xhYmVsc1t0YXJnZXRdLT5p
c1NldCgpKSB7CisgICAgICAgICAgICBqdW1wLmxpbmtUbygqY29udGV4dC5ibG9ja0xhYmVsc1t0
YXJnZXRdLCAmaml0KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC0xOTUs
MTYgKzIwMSwyMiBAQCB2b2lkIGdlbmVyYXRlKENvZGUmIGNvZGUsIENDYWxsSGVscGVycyYgCiAg
ICAgfTsKIAogICAgIGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiBjb2RlKSB7CisgICAgICAgIGNv
bnRleHQuY3VycmVudEJsb2NrID0gYmxvY2s7CisgICAgICAgIGNvbnRleHQuaW5kZXhJbkJsb2Nr
ID0gVUlOVF9NQVg7CiAgICAgICAgIGJsb2NrSnVtcHNbYmxvY2tdLmxpbmsoJmppdCk7Ci0gICAg
ICAgIGJsb2NrTGFiZWxzW2Jsb2NrXSA9IGppdC5sYWJlbCgpOworICAgICAgICBDQ2FsbEhlbHBl
cnM6OkxhYmVsIGxhYmVsID0gaml0LmxhYmVsKCk7CisgICAgICAgICpjb250ZXh0LmJsb2NrTGFi
ZWxzW2Jsb2NrXSA9IGxhYmVsOwogICAgICAgICBBU1NFUlQoYmxvY2stPnNpemUoKSA+PSAxKTsK
ICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGJsb2NrLT5zaXplKCkgLSAxOyArK2kp
IHsKKyAgICAgICAgICAgIGNvbnRleHQuaW5kZXhJbkJsb2NrID0gaTsKICAgICAgICAgICAgIElu
c3QmIGluc3QgPSBibG9jay0+YXQoaSk7CiAgICAgICAgICAgICBhZGRJdGVtKGluc3QpOwogICAg
ICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGp1bXAgPSBpbnN0LmdlbmVyYXRlKGppdCwgY29u
dGV4dCk7CiAgICAgICAgICAgICBBU1NFUlRfVU5VU0VEKGp1bXAsICFqdW1wLmlzU2V0KCkpOwog
ICAgICAgICB9CiAKKyAgICAgICAgY29udGV4dC5pbmRleEluQmxvY2sgPSBibG9jay0+c2l6ZSgp
IC0gMTsKKyAgICAgICAgCiAgICAgICAgIGlmIChibG9jay0+bGFzdCgpLm9wY29kZSA9PSBKdW1w
CiAgICAgICAgICAgICAmJiBibG9jay0+c3VjY2Vzc29yQmxvY2soMCkgPT0gY29kZS5maW5kTmV4
dEJsb2NrKGJsb2NrKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtMjI4LDI2ICsyNDAsMzAg
QEAgdm9pZCBnZW5lcmF0ZShDb2RlJiBjb2RlLCBDQ2FsbEhlbHBlcnMmIAogICAgICAgICAgICAg
YWRkSXRlbShibG9jay0+bGFzdCgpKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
Ci0KKyAgICAgICAgCiAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcCBqdW1wID0gYmxvY2stPmxh
c3QoKS5nZW5lcmF0ZShqaXQsIGNvbnRleHQpOwotICAgICAgICBzd2l0Y2ggKGJsb2NrLT5udW1T
dWNjZXNzb3JzKCkpIHsKLSAgICAgICAgY2FzZSAwOgotICAgICAgICAgICAgQVNTRVJUKCFqdW1w
LmlzU2V0KCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgMToKLSAgICAgICAg
ICAgIGxpbmsoanVtcCwgYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDApKTsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBjYXNlIDI6Ci0gICAgICAgICAgICBsaW5rKGp1bXAsIGJsb2NrLT5zdWNj
ZXNzb3JCbG9jaygwKSk7Ci0gICAgICAgICAgICBpZiAoYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDEp
ICE9IGNvZGUuZmluZE5leHRCbG9jayhibG9jaykpCi0gICAgICAgICAgICAgICAgbGluayhqaXQu
anVtcCgpLCBibG9jay0+c3VjY2Vzc29yQmxvY2soMSkpOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OwotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIC8vIFRoZSBqdW1wIHdvbid0IGJlIHNldCBm
b3IgcGF0Y2hwb2ludHMuIEl0IHdvbid0IGJlIHNldCBmb3IgT29wcyBiZWNhdXNlIHRoZW4gaXQg
d29uJ3QgaGF2ZQorICAgICAgICAvLyBhbnkgc3VjY2Vzc29ycy4KKyAgICAgICAgaWYgKGp1bXAu
aXNTZXQoKSkgeworICAgICAgICAgICAgc3dpdGNoIChibG9jay0+bnVtU3VjY2Vzc29ycygpKSB7
CisgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgbGluayhqdW1wLCBibG9jay0+
c3VjY2Vzc29yQmxvY2soMCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSAyOgorICAgICAgICAgICAgICAgIGxpbmsoanVtcCwgYmxvY2stPnN1Y2Nlc3NvckJsb2Nr
KDApKTsKKyAgICAgICAgICAgICAgICBpZiAoYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDEpICE9IGNv
ZGUuZmluZE5leHRCbG9jayhibG9jaykpCisgICAgICAgICAgICAgICAgICAgIGxpbmsoaml0Lmp1
bXAoKSwgYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDEpKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KICAgICAg
ICAgfQogICAgICAgICBhZGRJdGVtKGJsb2NrLT5sYXN0KCkpOwogICAgIH0KKyAgICAKKyAgICBj
b250ZXh0LmN1cnJlbnRCbG9jayA9IG51bGxwdHI7CisgICAgY29udGV4dC5pbmRleEluQmxvY2sg
PSBVSU5UX01BWDsKIAogICAgIHBjVG9PcmlnaW5NYXAuYXBwZW5kSXRlbShqaXQubGFiZWwoKSwg
T3JpZ2luKCkpOwogICAgIC8vIEZJWE1FOiBNYWtlIGxhdGUgcGF0aHMgaGF2ZSBPcmlnaW5zOiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzNjg5CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRpb25Db250ZXh0LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0aW9uQ29udGV4dC5o
CShyZXZpc2lvbiAyMDMzNzEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckdl
bmVyYXRpb25Db250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsMTQgKzI4LDE0IEBACiAKICNpZiBF
TkFCTEUoQjNfSklUKQogCisjaW5jbHVkZSAiQWlyQmFzaWNCbG9jay5oIgorI2luY2x1ZGUgIkIz
SW5kZXhNYXAuaCIKKyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKKyNpbmNsdWRlIDx3dGYvQm94
Lmg+CiAjaW5jbHVkZSA8d3RmL1NoYXJlZFRhc2suaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CiAKLW5hbWVzcGFjZSBKU0MgewotCi1jbGFzcyBDQ2FsbEhlbHBlcnM7Ci0KLW5hbWVzcGFjZSBC
MyB7IG5hbWVzcGFjZSBBaXIgeworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7IG5hbWVz
cGFjZSBBaXIgewogCiBjbGFzcyBDb2RlOwogCkBAIC00NCw3ICs0NCwxMCBAQCBzdHJ1Y3QgR2Vu
ZXJhdGlvbkNvbnRleHQgewogICAgIHR5cGVkZWYgU2hhcmVkVGFzazxMYXRlUGF0aEZ1bmN0aW9u
PiBMYXRlUGF0aDsKIAogICAgIFZlY3RvcjxSZWZQdHI8TGF0ZVBhdGg+PiBsYXRlUGF0aHM7Ci0g
ICAgQ29kZSogY29kZTsKKyAgICBJbmRleE1hcDxCYXNpY0Jsb2NrLCBCb3g8Q0NhbGxIZWxwZXJz
OjpMYWJlbD4+IGJsb2NrTGFiZWxzOworICAgIEJhc2ljQmxvY2sqIGN1cnJlbnRCbG9jayB7IG51
bGxwdHIgfTsKKyAgICB1bnNpZ25lZCBpbmRleEluQmxvY2sgeyBVSU5UX01BWCB9OworICAgIENv
ZGUqIGNvZGUgeyBudWxscHRyIH07CiB9OwogCiB9IH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMzo6
QWlyCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckluc3QuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckluc3QuaAkocmV2aXNpb24g
MjAzMzcxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0LmgJKHdvcmtp
bmcgY29weSkKQEAgLTE2Myw2ICsxNjMsOSBAQCBwdWJsaWM6CiAgICAgLy8gVGhpcyBmdW5jdGlv
biBpcyBhdXRvLWdlbmVyYXRlZCBieSBvcGNvZGVfZ2VuZXJhdG9yLnJiLgogICAgIGJvb2wgYWRt
aXRzU3RhY2sodW5zaWduZWQgYXJnSW5kZXgpOwogICAgIGJvb2wgYWRtaXRzU3RhY2soQXJnJik7
CisgICAgCisgICAgLy8gRGVmaW5lZCBieSBvcGNvZGVfZ2VuZXJhdG9yLnJiLgorICAgIGJvb2wg
aXNUZXJtaW5hbCgpOwogCiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoaXMgaW5zdHJ1Y3Rpb24g
Y2FuIGhhdmUgYW55IGVmZmVjdHMgb3RoZXIgdGhhbiBjb250cm9sIGZsb3cgb3IgYXJndW1lbnRz
LgogICAgIGJvb2wgaGFzTm9uQXJnTm9uQ29udHJvbEVmZmVjdHMoKTsKQEAgLTE3NCw2ICsxNzcs
OSBAQCBwdWJsaWM6CiAKICAgICAvLyBUZWxscyB5b3UgaWYgdGhpcyBvcGVyYXRpb24gaGFzIGFy
ZyBlZmZlY3RzLgogICAgIGJvb2wgaGFzQXJnRWZmZWN0cygpOworICAgIAorICAgIC8vIFRlbGxz
IHlvdSBpZiB0aGlzIG9wZXJhdGlvbiBoYXMgbm9uLWNvbnRyb2wgZWZmZWN0cy4KKyAgICBib29s
IGhhc05vbkNvbnRyb2xFZmZlY3RzKCkgeyByZXR1cm4gaGFzTm9uQXJnTm9uQ29udHJvbEVmZmVj
dHMoKSB8fCBoYXNBcmdFZmZlY3RzKCk7IH0KIAogICAgIC8vIEdlbmVyYXRlIHNvbWUgY29kZSBm
b3IgdGhpcyBpbnN0cnVjdGlvbi4gVGhpcyBpcywgbGlrZSwgbGl0ZXJhbGx5IG91ciBiYWNrZW5k
LiBJZiB0aGlzIGlzIHRoZQogICAgIC8vIHRlcm1pbmFsLCBpdCByZXR1cm5zIHRoZSBqdW1wIHRo
YXQgbmVlZHMgdG8gYmUgbGlua2VkIGZvciB0aGUgInRoZW4iIGNhc2UsIHdpdGggdGhlICJlbHNl
IgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJTaW1wbGlmeUNGRy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJTaW1wbGlmeUNG
Ry5jcHAJKHJldmlzaW9uIDIwMzM3MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyU2ltcGxpZnlDRkcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05NSwzMyArOTUsMzIgQEAgYm9v
bCBzaW1wbGlmeUNGRyhDb2RlJiBjb2RlKQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IH0KIAotICAgICAgICAgICAgLy8gTm93IGNoZWNrIGlmIHRoZSBibG9jaydzIHRlcm1pbmFsIGNh
biBiZSByZXBsYWNlZCB3aXRoIGEganVtcC4KLSAgICAgICAgICAgIGlmIChibG9jay0+bnVtU3Vj
Y2Vzc29ycygpID4gMSkgewotICAgICAgICAgICAgICAgIC8vIFRoZSB0ZXJtaW5hbCBtdXN0IG5v
dCBoYXZlIHdlaXJkIGVmZmVjdHMuCi0gICAgICAgICAgICAgICAgaWYgKCFibG9jay0+bGFzdCgp
Lmhhc0FyZ0VmZmVjdHMoKQotICAgICAgICAgICAgICAgICAgICAmJiAhYmxvY2stPmxhc3QoKS5o
YXNOb25BcmdOb25Db250cm9sRWZmZWN0cygpKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIEFs
bCBvZiB0aGUgc3VjY2Vzc29ycyBtdXN0IGJlIHRoZSBzYW1lLgotICAgICAgICAgICAgICAgICAg
ICBib29sIGFsbFNhbWUgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICBCYXNpY0Jsb2NrKiBm
aXJzdFN1Y2Nlc3NvciA9IGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKTsKLSAgICAgICAgICAgICAg
ICAgICAgZm9yICh1bnNpZ25lZCBpID0gMTsgaSA8IGJsb2NrLT5udW1TdWNjZXNzb3JzKCk7ICsr
aSkgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJsb2NrLT5zdWNjZXNzb3JCbG9jayhp
KSAhPSBmaXJzdFN1Y2Nlc3NvcikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbFNh
bWUgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
ICAgICBpZiAoYWxsU2FtZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2Up
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygiQ2hhbmdpbmcgIiwgcG9pbnRl
ckR1bXAoYmxvY2spLCAiJ3MgdGVybWluYWwgdG8gYSBKdW1wLlxuIik7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBibG9jay0+bGFzdCgpID0gSW5zdChKdW1wLCBibG9jay0+bGFzdCgpLm9yaWdp
bik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBibG9jay0+c3VjY2Vzc29ycygpLnJlc2l6ZSgx
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLT5zdWNjZXNzb3JzKClbMF0uZnJlcXVl
bmN5KCkgPSBGcmVxdWVuY3lDbGFzczo6Tm9ybWFsOwotICAgICAgICAgICAgICAgICAgICAgICAg
Y2hhbmdlZCA9IHRydWU7CisgICAgICAgICAgICAvLyBOb3cgY2hlY2sgaWYgdGhlIGJsb2NrJ3Mg
dGVybWluYWwgY2FuIGJlIHJlcGxhY2VkIHdpdGggYSBqdW1wLiBUaGUgdGVybWluYWwgbXVzdCBu
b3QKKyAgICAgICAgICAgIC8vIGhhdmUgd2VpcmQgZWZmZWN0cy4KKyAgICAgICAgICAgIGlmIChi
bG9jay0+bnVtU3VjY2Vzc29ycygpID4gMSAKKyAgICAgICAgICAgICAgICAmJiAhYmxvY2stPmxh
c3QoKS5oYXNOb25Db250cm9sRWZmZWN0cygpKSB7CisgICAgICAgICAgICAgICAgLy8gQWxsIG9m
IHRoZSBzdWNjZXNzb3JzIG11c3QgYmUgdGhlIHNhbWUuCisgICAgICAgICAgICAgICAgYm9vbCBh
bGxTYW1lID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBCYXNpY0Jsb2NrKiBmaXJzdFN1Y2Nlc3Nv
ciA9IGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKTsKKyAgICAgICAgICAgICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAxOyBpIDwgYmxvY2stPm51bVN1Y2Nlc3NvcnMoKTsgKytpKSB7CisgICAgICAgICAg
ICAgICAgICAgIGlmIChibG9jay0+c3VjY2Vzc29yQmxvY2soaSkgIT0gZmlyc3RTdWNjZXNzb3Ip
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFsbFNhbWUgPSBmYWxzZTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIGlmIChhbGxTYW1lKSB7CisgICAgICAgICAgICAgICAgICAg
IGlmICh2ZXJib3NlKQorICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygiQ2hhbmdpbmcg
IiwgcG9pbnRlckR1bXAoYmxvY2spLCAiJ3MgdGVybWluYWwgdG8gYSBKdW1wLlxuIik7CisgICAg
ICAgICAgICAgICAgICAgIGJsb2NrLT5sYXN0KCkgPSBJbnN0KEp1bXAsIGJsb2NrLT5sYXN0KCku
b3JpZ2luKTsKKyAgICAgICAgICAgICAgICAgICAgYmxvY2stPnN1Y2Nlc3NvcnMoKS5yZXNpemUo
MSk7CisgICAgICAgICAgICAgICAgICAgIGJsb2NrLT5zdWNjZXNzb3JzKClbMF0uZnJlcXVlbmN5
KCkgPSBGcmVxdWVuY3lDbGFzczo6Tm9ybWFsOworICAgICAgICAgICAgICAgICAgICBjaGFuZ2Vk
ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAg
IC8vIEZpbmFsbHkgaGFuZGxlIGp1bXBzIHRvIGEgYmxvY2sgd2l0aCBvbmUgcHJlZGVjZXNzb3Iu
Ci0gICAgICAgICAgICBpZiAoYmxvY2stPm51bVN1Y2Nlc3NvcnMoKSA9PSAxKSB7CisgICAgICAg
ICAgICBpZiAoYmxvY2stPm51bVN1Y2Nlc3NvcnMoKSA9PSAxCisgICAgICAgICAgICAgICAgJiYg
IWJsb2NrLT5sYXN0KCkuaGFzTm9uQ29udHJvbEVmZmVjdHMoKSkgewogICAgICAgICAgICAgICAg
IEJhc2ljQmxvY2sqIHN1Y2Nlc3NvciA9IGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKTsKICAgICAg
ICAgICAgICAgICBpZiAoc3VjY2Vzc29yICE9IGJsb2NrICYmIHN1Y2Nlc3Nvci0+bnVtUHJlZGVj
ZXNzb3JzKCkgPT0gMSkgewogICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChzdWNj
ZXNzb3ItPnByZWRlY2Vzc29yKDApID09IGJsb2NrKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvQWlyU3BlY2lhbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL2Fpci9BaXJTcGVjaWFsLmNwcAkocmV2aXNpb24gMjAzMzcxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJTcGVjaWFsLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01NSw3
ICs1NSwxMiBAQCBPcHRpb25hbDx1bnNpZ25lZD4gU3BlY2lhbDo6c2hvdWxkVHJ5QWxpCiAgICAg
cmV0dXJuIE51bGxvcHQ7CiB9CiAKLWJvb2wgU3BlY2lhbDo6aGFzTm9uQXJnTm9uQ29udHJvbEVm
ZmVjdHMoKQorYm9vbCBTcGVjaWFsOjppc1Rlcm1pbmFsKEluc3QmKQoreworICAgIHJldHVybiBm
YWxzZTsKK30KKworYm9vbCBTcGVjaWFsOjpoYXNOb25BcmdOb25Db250cm9sRWZmZWN0cyhJbnN0
JikKIHsKICAgICByZXR1cm4gdHJ1ZTsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyU3BlY2lhbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyU3BlY2lhbC5oCShyZXZpc2lvbiAyMDMzNzEpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvYWlyL0FpclNwZWNpYWwuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC04Nyw5ICs4NywxMiBAQCBw
dWJsaWM6CiAKICAgICB2aXJ0dWFsIGNvbnN0IFJlZ2lzdGVyU2V0JiBleHRyYUVhcmx5Q2xvYmJl
cmVkUmVncyhJbnN0JikgPSAwOwogICAgIHZpcnR1YWwgY29uc3QgUmVnaXN0ZXJTZXQmIGV4dHJh
Q2xvYmJlcmVkUmVncyhJbnN0JikgPSAwOworICAgIAorICAgIC8vIEJ5IGRlZmF1bHQsIHRoaXMg
cmV0dXJucyBmYWxzZS4KKyAgICB2aXJ0dWFsIGJvb2wgaXNUZXJtaW5hbChJbnN0Jik7CiAKICAg
ICAvLyBCeSBkZWZhdWx0LCB0aGlzIHJldHVybnMgdHJ1ZS4KLSAgICB2aXJ0dWFsIGJvb2wgaGFz
Tm9uQXJnTm9uQ29udHJvbEVmZmVjdHMoKTsKKyAgICB2aXJ0dWFsIGJvb2wgaGFzTm9uQXJnTm9u
Q29udHJvbEVmZmVjdHMoSW5zdCYpOwogCiAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29u
c3Q7CiAgICAgdm9pZCBkZWVwRHVtcChQcmludFN0cmVhbSYpIGNvbnN0OwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJWYWxpZGF0ZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJWYWxpZGF0ZS5jcHAJKHJldmlzaW9uIDIwMzM3
MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyVmFsaWRhdGUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTc5LDkgKzc5LDkgQEAgcHVibGljOgogICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICBWQUxJREFURShpbnN0LmlzVmFsaWRGb3JtKCksICgiQXQgIiwgaW5zdCwgIiBp
biAiLCAqYmxvY2spKTsKICAgICAgICAgICAgICAgICBpZiAoaW5zdEluZGV4ID09IGJsb2NrLT5z
aXplKCkgLSAxKQotICAgICAgICAgICAgICAgICAgICBWQUxJREFURShpc1Rlcm1pbmFsKGluc3Qu
b3Bjb2RlKSwgKCJBdCAiLCBpbnN0LCAiIGluICIsICpibG9jaykpOworICAgICAgICAgICAgICAg
ICAgICBWQUxJREFURShpbnN0LmlzVGVybWluYWwoKSwgKCJBdCAiLCBpbnN0LCAiIGluICIsICpi
bG9jaykpOwogICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgVkFMSURB
VEUoIWlzVGVybWluYWwoaW5zdC5vcGNvZGUpLCAoIkF0ICIsIGluc3QsICIgaW4gIiwgKmJsb2Nr
KSk7CisgICAgICAgICAgICAgICAgICAgIFZBTElEQVRFKCFpbnN0LmlzVGVybWluYWwoKSwgKCJB
dCAiLCBpbnN0LCAiIGluICIsICpibG9jaykpOwogCiAgICAgICAgICAgICAgICAgLy8gZm9yRWFj
aEFyZyBtdXN0IHJldHVybiBBcmcmJ3MgdGhhdCBwb2ludCBpbnRvIHRoZSBhcmdzIGFycmF5Lgog
ICAgICAgICAgICAgICAgIGluc3QuZm9yRWFjaEFyZygKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9haXIvb3Bjb2RlX2dlbmVyYXRvci5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL29wY29kZV9nZW5lcmF0b3IucmIJKHJldmlzaW9uIDIwMzM3MSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvb3Bjb2RlX2dlbmVyYXRvci5yYgkod29y
a2luZyBjb3B5KQpAQCAtNzE0LDcgKzcxNCw3IEBAIHdyaXRlSCgiT3Bjb2RlVXRpbHMiKSB7CiAg
ICAgb3V0cC5wdXRzICJyZXR1cm4gZmFsc2U7ICIKICAgICBvdXRwLnB1dHMgIn0iCiAKLSAgICBv
dXRwLnB1dHMgImlubGluZSBib29sIGlzVGVybWluYWwoT3Bjb2RlIG9wY29kZSkiCisgICAgb3V0
cC5wdXRzICJpbmxpbmUgYm9vbCBpc0RlZmluaXRlbHlUZXJtaW5hbChPcGNvZGUgb3Bjb2RlKSIK
ICAgICBvdXRwLnB1dHMgInsiCiAgICAgb3V0cC5wdXRzICJzd2l0Y2ggKG9wY29kZSkgeyIKICAg
ICBkaWRGaW5kVGVybWluYWxzID0gZmFsc2UKQEAgLTk3Niw2ICs5NzYsMzIgQEAgd3JpdGVIKCJP
cGNvZGVHZW5lcmF0ZWQiKSB7CiAgICAgb3V0cC5wdXRzICJyZXR1cm4gZmFsc2U7IgogICAgIG91
dHAucHV0cyAifSIKIAorICAgIG91dHAucHV0cyAiYm9vbCBJbnN0Ojppc1Rlcm1pbmFsKCkiCisg
ICAgb3V0cC5wdXRzICJ7IgorICAgIG91dHAucHV0cyAic3dpdGNoIChvcGNvZGUpIHsiCisgICAg
Zm91bmRUcnVlID0gZmFsc2UKKyAgICAkb3Bjb2Rlcy52YWx1ZXMuZWFjaCB7CisgICAgICAgIHwg
b3Bjb2RlIHwKKyAgICAgICAgaWYgb3Bjb2RlLmF0dHJpYnV0ZXNbOnRlcm1pbmFsXQorICAgICAg
ICAgICAgb3V0cC5wdXRzICJjYXNlICN7b3Bjb2RlLm5hbWV9OiIKKyAgICAgICAgICAgIGZvdW5k
VHJ1ZSA9IHRydWUKKyAgICAgICAgZW5kCisgICAgfQorICAgIGlmIGZvdW5kVHJ1ZQorICAgICAg
ICBvdXRwLnB1dHMgInJldHVybiB0cnVlOyIKKyAgICBlbmQKKyAgICAkb3Bjb2Rlcy52YWx1ZXMu
ZWFjaCB7CisgICAgICAgIHwgb3Bjb2RlIHwKKyAgICAgICAgaWYgb3Bjb2RlLmN1c3RvbQorICAg
ICAgICAgICAgb3V0cC5wdXRzICJjYXNlICN7b3Bjb2RlLm5hbWV9OiIKKyAgICAgICAgICAgIG91
dHAucHV0cyAicmV0dXJuICN7b3Bjb2RlLm5hbWV9Q3VzdG9tOjppc1Rlcm1pbmFsKCp0aGlzKTsi
CisgICAgICAgIGVuZAorICAgIH0KKyAgICBvdXRwLnB1dHMgImRlZmF1bHQ6IgorICAgIG91dHAu
cHV0cyAicmV0dXJuIGZhbHNlOyIKKyAgICBvdXRwLnB1dHMgIn0iCisgICAgb3V0cC5wdXRzICJ9
IgorICAgIAogICAgIG91dHAucHV0cyAiYm9vbCBJbnN0OjpoYXNOb25BcmdOb25Db250cm9sRWZm
ZWN0cygpIgogICAgIG91dHAucHV0cyAieyIKICAgICBvdXRwLnB1dHMgInN3aXRjaCAob3Bjb2Rl
KSB7IgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0Iz
LmNwcAkocmV2aXNpb24gMjAzMzcxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExM
b3dlckRGR1RvQjMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCwxMSBAQAogCiAjaW5j
bHVkZSAiQWlyR2VuZXJhdGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJBbGxvd01hY3JvU2NyYXRj
aFJlZ2lzdGVyVXNhZ2UuaCIKKyNpbmNsdWRlICJCM0NoZWNrVmFsdWUuaCIKKyNpbmNsdWRlICJC
M1BhdGNocG9pbnRWYWx1ZS5oIgorI2luY2x1ZGUgIkIzU2xvdEJhc2VWYWx1ZS5oIgogI2luY2x1
ZGUgIkIzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmgiCisjaW5jbHVkZSAiQjNWYWx1ZUlubGlu
ZXMuaCIKICNpbmNsdWRlICJDYWxsRnJhbWVTaHVmZmxlci5oIgogI2luY2x1ZGUgIkNvZGVCbG9j
a1dpdGhKSVRUeXBlLmgiCiAjaW5jbHVkZSAiREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMu
aCIKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5jcHAJKHJldmlzaW9u
IDIwMzM3MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjgsOCArMjgsMTggQEAKIAogI2lmIEVOQUJMRShGVExfSklUKQogCisj
aW5jbHVkZSAiQjNBcmd1bWVudFJlZ1ZhbHVlLmgiCisjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrSW5s
aW5lcy5oIgorI2luY2x1ZGUgIkIzQ0NhbGxWYWx1ZS5oIgorI2luY2x1ZGUgIkIzQ29uc3QzMlZh
bHVlLmgiCisjaW5jbHVkZSAiQjNDb25zdFB0clZhbHVlLmgiCiAjaW5jbHVkZSAiQjNNYXRoRXh0
cmFzLmgiCisjaW5jbHVkZSAiQjNNZW1vcnlWYWx1ZS5oIgorI2luY2x1ZGUgIkIzU2xvdEJhc2VW
YWx1ZS5oIgogI2luY2x1ZGUgIkIzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmgiCisjaW5jbHVk
ZSAiQjNTd2l0Y2hWYWx1ZS5oIgorI2luY2x1ZGUgIkIzVXBzaWxvblZhbHVlLmgiCisjaW5jbHVk
ZSAiQjNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJTdXBlclNhbXBsZXIuaCIKIAogbmFtZXNw
YWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewpAQCAtNTc4LDEyICs1ODgsMTIgQEAgTFZhbHVlIE91
dHB1dDo6c2VsZWN0KExWYWx1ZSB2YWx1ZSwgTFZhbAogCiB2b2lkIE91dHB1dDo6anVtcChMQmFz
aWNCbG9jayBkZXN0aW5hdGlvbikKIHsKLSAgICBtX2Jsb2NrLT5hcHBlbmROZXc8QjM6OkNvbnRy
b2xWYWx1ZT4obV9wcm9jLCBCMzo6SnVtcCwgb3JpZ2luKCksIEIzOjpGcmVxdWVudGVkQmxvY2so
ZGVzdGluYXRpb24pKTsKKyAgICBtX2Jsb2NrLT5hcHBlbmROZXdDb250cm9sVmFsdWUobV9wcm9j
LCBCMzo6SnVtcCwgb3JpZ2luKCksIEIzOjpGcmVxdWVudGVkQmxvY2soZGVzdGluYXRpb24pKTsK
IH0KIAogdm9pZCBPdXRwdXQ6OmJyYW5jaChMVmFsdWUgY29uZGl0aW9uLCBMQmFzaWNCbG9jayB0
YWtlbiwgV2VpZ2h0IHRha2VuV2VpZ2h0LCBMQmFzaWNCbG9jayBub3RUYWtlbiwgV2VpZ2h0IG5v
dFRha2VuV2VpZ2h0KQogewotICAgIG1fYmxvY2stPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIG1fYmxvY2stPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgbV9wcm9jLCBCMzo6
QnJhbmNoLCBvcmlnaW4oKSwgY29uZGl0aW9uLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGFr
ZW4sIHRha2VuV2VpZ2h0LmZyZXF1ZW5jeUNsYXNzKCkpLAogICAgICAgICBGcmVxdWVudGVkQmxv
Y2sobm90VGFrZW4sIG5vdFRha2VuV2VpZ2h0LmZyZXF1ZW5jeUNsYXNzKCkpKTsKQEAgLTYwMywx
MiArNjEzLDEyIEBAIHZvaWQgT3V0cHV0OjpjaGVjayhMVmFsdWUgY29uZGl0aW9uLCBXZWkKIAog
dm9pZCBPdXRwdXQ6OnJldChMVmFsdWUgdmFsdWUpCiB7Ci0gICAgbV9ibG9jay0+YXBwZW5kTmV3
PEIzOjpDb250cm9sVmFsdWU+KG1fcHJvYywgQjM6OlJldHVybiwgb3JpZ2luKCksIHZhbHVlKTsK
KyAgICBtX2Jsb2NrLT5hcHBlbmROZXdDb250cm9sVmFsdWUobV9wcm9jLCBCMzo6UmV0dXJuLCBv
cmlnaW4oKSwgdmFsdWUpOwogfQogCiB2b2lkIE91dHB1dDo6dW5yZWFjaGFibGUoKQogewotICAg
IG1fYmxvY2stPmFwcGVuZE5ldzxCMzo6Q29udHJvbFZhbHVlPihtX3Byb2MsIEIzOjpPb3BzLCBv
cmlnaW4oKSk7CisgICAgbV9ibG9jay0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKG1fcHJvYywgQjM6
Ok9vcHMsIG9yaWdpbigpKTsKIH0KIAogQ2hlY2tWYWx1ZSogT3V0cHV0OjpzcGVjdWxhdGUoTFZh
bHVlIHZhbHVlKQpAQCAtNjM4LDcgKzY0OCw3IEBAIFBhdGNocG9pbnRWYWx1ZSogT3V0cHV0Ojpw
YXRjaHBvaW50KExUeXAKIAogdm9pZCBPdXRwdXQ6OnRyYXAoKQogewotICAgIG1fYmxvY2stPmFw
cGVuZE5ldzxCMzo6Q29udHJvbFZhbHVlPihtX3Byb2MsIEIzOjpPb3BzLCBvcmlnaW4oKSk7Cisg
ICAgbV9ibG9jay0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKG1fcHJvYywgQjM6Ok9vcHMsIG9yaWdp
bigpKTsKIH0KIAogVmFsdWVGcm9tQmxvY2sgT3V0cHV0OjphbmNob3IoTFZhbHVlIHZhbHVlKQpA
QCAtNzI5LDYgKzczOSwxMSBAQCB2b2lkIE91dHB1dDo6ZGVjcmVtZW50U3VwZXJTYW1wbGVyQ291
bnQoCiAgICAgc3RvcmUzMihzdWIobG9hZDMyKGNvdW50ZXIpLCBpbnQzMk9uZSksIGNvdW50ZXIp
OwogfQogCit2b2lkIE91dHB1dDo6YWRkSW5jb21pbmdUb1BoaShMVmFsdWUgcGhpLCBWYWx1ZUZy
b21CbG9jayB2YWx1ZSkKK3sKKyAgICB2YWx1ZS52YWx1ZSgpLT5hczxCMzo6VXBzaWxvblZhbHVl
PigpLT5zZXRQaGkocGhpKTsKK30KKwogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAogCiAjZW5k
aWYgLy8gRU5BQkxFKEZUTF9KSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TE91dHB1dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0
cHV0LmgJKHJldmlzaW9uIDIwMzM3MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
T3V0cHV0LmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDE5ICszMCwxMiBAQAogCiAjaWYgRU5BQkxF
KEZUTF9KSVQpCiAKLSNpbmNsdWRlICJCM0FyZ3VtZW50UmVnVmFsdWUuaCIKICNpbmNsdWRlICJC
M0Jhc2ljQmxvY2tJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNDQ2FsbFZhbHVlLmgiCiAjaW5jbHVk
ZSAiQjNDb21waWxhdGlvbi5oIgotI2luY2x1ZGUgIkIzQ29uc3QzMlZhbHVlLmgiCi0jaW5jbHVk
ZSAiQjNDb25zdFB0clZhbHVlLmgiCi0jaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKLSNpbmNs
dWRlICJCM01lbW9yeVZhbHVlLmgiCisjaW5jbHVkZSAiQjNGcmVxdWVudGVkQmxvY2suaCIKICNp
bmNsdWRlICJCM1Byb2NlZHVyZS5oIgotI2luY2x1ZGUgIkIzU2xvdEJhc2VWYWx1ZS5oIgogI2lu
Y2x1ZGUgIkIzU3dpdGNoVmFsdWUuaCIKLSNpbmNsdWRlICJCM1Vwc2lsb25WYWx1ZS5oIgotI2lu
Y2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiRlRMQWJicmV2aWF0ZWRUeXBlcy5o
IgogI2luY2x1ZGUgIkZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaCIKICNpbmNsdWRlICJGVExD
b21tb25WYWx1ZXMuaCIKQEAgLTY0LDcgKzU3LDEzIEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1u
YW1lc3BhY2UgREZHIHsgc3RydWN0IE5vZGU7IH0KK25hbWVzcGFjZSBERkcgeworc3RydWN0IE5v
ZGU7Cit9IC8vIG5hbWVzcGFjZSBERkcKKworbmFtZXNwYWNlIEIzIHsKK2NsYXNzIFNsb3RCYXNl
VmFsdWU7Cit9IC8vIG5hbWVzcGFjZSBCMwogCiBuYW1lc3BhY2UgRlRMIHsKIApAQCAtMTA2LDkg
KzEwNSwxOSBAQCBwdWJsaWM6CiAgICAgTFZhbHVlIGNvbnN0Qm9vbChib29sIHZhbHVlKTsKICAg
ICBMVmFsdWUgY29uc3RJbnQzMihpbnQzMl90IHZhbHVlKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPgotICAgIExWYWx1ZSBjb25zdEludFB0cihUKiB2YWx1ZSkgeyByZXR1cm4gbV9ibG9jay0+
YXBwZW5kTmV3PEIzOjpDb25zdFB0clZhbHVlPihtX3Byb2MsIG9yaWdpbigpLCB2YWx1ZSk7IH0K
KyAgICBMVmFsdWUgY29uc3RJbnRQdHIoVCogdmFsdWUpCisgICAgeworICAgICAgICBpZiAoc2l6
ZW9mKHZvaWQqKSA9PSA4KQorICAgICAgICAgICAgcmV0dXJuIGNvbnN0SW50NjQoYml0d2lzZV9j
YXN0PGludHB0cl90Pih2YWx1ZSkpOworICAgICAgICByZXR1cm4gY29uc3RJbnQzMihiaXR3aXNl
X2Nhc3Q8aW50cHRyX3Q+KHZhbHVlKSk7CisgICAgfQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+
Ci0gICAgTFZhbHVlIGNvbnN0SW50UHRyKFQgdmFsdWUpIHsgcmV0dXJuIG1fYmxvY2stPmFwcGVu
ZE5ldzxCMzo6Q29uc3RQdHJWYWx1ZT4obV9wcm9jLCBvcmlnaW4oKSwgdmFsdWUpOyB9CisgICAg
TFZhbHVlIGNvbnN0SW50UHRyKFQgdmFsdWUpCisgICAgeworICAgICAgICBpZiAoc2l6ZW9mKHZv
aWQqKSA9PSA4KQorICAgICAgICAgICAgcmV0dXJuIGNvbnN0SW50NjQoc3RhdGljX2Nhc3Q8aW50
cHRyX3Q+KHZhbHVlKSk7CisgICAgICAgIHJldHVybiBjb25zdEludDMyKHN0YXRpY19jYXN0PGlu
dHB0cl90Pih2YWx1ZSkpOworICAgIH0KICAgICBMVmFsdWUgY29uc3RJbnQ2NChpbnQ2NF90IHZh
bHVlKTsKICAgICBMVmFsdWUgY29uc3REb3VibGUoZG91YmxlIHZhbHVlKTsKIApAQCAtMzU0LDgg
KzM2Myw3IEBAIHB1YmxpYzoKICAgICBMVmFsdWUgY2FsbFdpdGhvdXRTaWRlRWZmZWN0cyhCMzo6
VHlwZSB0eXBlLCBGdW5jdGlvbiBmdW5jdGlvbiwgTFZhbHVlIGFyZzEsIEFyZ3MuLi4gYXJncykK
ICAgICB7CiAgICAgICAgIHJldHVybiBtX2Jsb2NrLT5hcHBlbmROZXc8QjM6OkNDYWxsVmFsdWU+
KG1fcHJvYywgdHlwZSwgb3JpZ2luKCksIEIzOjpFZmZlY3RzOjpub25lKCksCi0gICAgICAgICAg
ICBtX2Jsb2NrLT5hcHBlbmROZXc8QjM6OkNvbnN0UHRyVmFsdWU+KG1fcHJvYywgb3JpZ2luKCks
IGJpdHdpc2VfY2FzdDx2b2lkKj4oZnVuY3Rpb24pKSwKLSAgICAgICAgICAgIGFyZzEsIGFyZ3Mu
Li4pOworICAgICAgICAgICAgY29uc3RJbnRQdHIoYml0d2lzZV9jYXN0PHZvaWQqPihmdW5jdGlv
bikpLCBhcmcxLCBhcmdzLi4uKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5j
dGlvblR5cGU+CkBAIC0zNzgsOCArMzg2LDggQEAgcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFZlY3RvclR5cGU+CiAgICAgdm9pZCBzd2l0Y2hJbnN0cnVjdGlvbihMVmFsdWUgdmFsdWUs
IGNvbnN0IFZlY3RvclR5cGUmIGNhc2VzLCBMQmFzaWNCbG9jayBmYWxsVGhyb3VnaCwgV2VpZ2h0
IGZhbGxUaHJvdWdoV2VpZ2h0KQogICAgIHsKLSAgICAgICAgQjM6OlN3aXRjaFZhbHVlKiBzd2l0
Y2hWYWx1ZSA9IG1fYmxvY2stPmFwcGVuZE5ldzxCMzo6U3dpdGNoVmFsdWU+KAotICAgICAgICAg
ICAgbV9wcm9jLCBvcmlnaW4oKSwgdmFsdWUsIEIzOjpGcmVxdWVudGVkQmxvY2soZmFsbFRocm91
Z2gpKTsKKyAgICAgICAgQjM6OlN3aXRjaFZhbHVlKiBzd2l0Y2hWYWx1ZSA9IG1fYmxvY2stPmFw
cGVuZE5ldzxCMzo6U3dpdGNoVmFsdWU+KG1fcHJvYywgb3JpZ2luKCksIHZhbHVlKTsKKyAgICAg
ICAgc3dpdGNoVmFsdWUtPnNldEZhbGxUaHJvdWdoKEIzOjpGcmVxdWVudGVkQmxvY2soZmFsbFRo
cm91Z2gpKTsKICAgICAgICAgZm9yIChjb25zdCBTd2l0Y2hDYXNlJiBzd2l0Y2hDYXNlIDogY2Fz
ZXMpIHsKICAgICAgICAgICAgIGludDY0X3QgdmFsdWUgPSBzd2l0Y2hDYXNlLnZhbHVlKCktPmFz
SW50KCk7CiAgICAgICAgICAgICBCMzo6RnJlcXVlbnRlZEJsb2NrIHRhcmdldChzd2l0Y2hDYXNl
LnRhcmdldCgpLCBzd2l0Y2hDYXNlLndlaWdodCgpLmZyZXF1ZW5jeUNsYXNzKCkpOwpAQCAtNDM5
LDExICs0NDcsNiBAQCBpbmxpbmUgTFZhbHVlIE91dHB1dDo6cGhpKExUeXBlIHR5cGUsIGNvCiAg
ICAgcmV0dXJuIHBoaU5vZGU7CiB9CiAKLWlubGluZSB2b2lkIE91dHB1dDo6YWRkSW5jb21pbmdU
b1BoaShMVmFsdWUgcGhpLCBWYWx1ZUZyb21CbG9jayB2YWx1ZSkKLXsKLSAgICB2YWx1ZS52YWx1
ZSgpLT5hczxCMzo6VXBzaWxvblZhbHVlPigpLT5zZXRQaGkocGhpKTsKLX0KLQogdGVtcGxhdGU8
dHlwZW5hbWUuLi4gUGFyYW1zPgogaW5saW5lIHZvaWQgT3V0cHV0OjphZGRJbmNvbWluZ1RvUGhp
KExWYWx1ZSBwaGksIFZhbHVlRnJvbUJsb2NrIHZhbHVlLCBQYXJhbXMuLi4gdGhlUmVzdCkKIHsK
SW5kZXg6IFdlYnNpdGVzL3dlYmtpdC5vcmcvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNp
dGVzL3dlYmtpdC5vcmcvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMDMzNzEpCisrKyBXZWJzaXRlcy93
ZWJraXQub3JnL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE2
LTA3LTE3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVt
ZW50IHRhYmxlLWJhc2VkIHN3aXRjaGVzIGluIEIzL0FpcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxMTQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBVcGRhdGUgZG9jdW1lbnRhdGlvbiB0
byByZWZsZWN0IFBhdGNocG9pbnQncyBuZXcgcG93ZXJzLgorCisgICAgICAgICogZG9jcy9iMy9p
bnRlcm1lZGlhdGUtcmVwcmVzZW50YXRpb24uaHRtbDoKKwogMjAxNi0wNy0xNSAgSm9uIERhdmlz
ICA8am9uZEBhcHBsZS5jb20+CiAKICAgICAgICAgRml4ZWQgY29udGVudCBvdmVyZmxvdyBhbmQg
bWlzc2luZyBidWlsZCBpbmZvcm1hdGlvbiBiZWhhdmlvci4KSW5kZXg6IFdlYnNpdGVzL3dlYmtp
dC5vcmcvZG9jcy9iMy9pbnRlcm1lZGlhdGUtcmVwcmVzZW50YXRpb24uaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJzaXRlcy93ZWJraXQub3JnL2RvY3MvYjMvaW50ZXJtZWRpYXRlLXJlcHJlc2VudGF0
aW9uLmh0bWwJKHJldmlzaW9uIDIwMzM3MSkKKysrIFdlYnNpdGVzL3dlYmtpdC5vcmcvZG9jcy9i
My9pbnRlcm1lZGlhdGUtcmVwcmVzZW50YXRpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNDMs
NyArNDMsNyBAQAogICAgIDxwPlRoZSBhY3Qgb2YgY29tcGlsaW5nIHRoZSBQcm9jZWR1cmUgY2hh
bmdlcyBpdCBpbi1wbGFjZSwgbWFraW5nIGl0IHVuc3VpdGFibGUgZm9yCiAgICAgICBjb21waWxp
bmcgYWdhaW4uICBBbHdheXMgY3JlYXRlIGEgbmV3IFByb2NlZHVyZSBldmVyeSB0aW1lIHlvdSB3
YW50IHRvIGNvbXBpbGUKICAgICAgIHNvbWV0aGluZy48L3A+Ci0KKyAgICAKICAgICA8aDI+VHlw
ZXM8L2gyPgogCiAgICAgPHA+QjMgaGFzIGEgdHJpdmlhbCB0eXBlIHN5c3RlbSB3aXRoIG9ubHkg
Zml2ZSB0eXBlczo8L3A+CkBAIC0xMzAsOCArMTMwLDE1IEBACiAgICAgPGgyPkNvbnRyb2wgZmxv
dzwvaDI+CiAKICAgICA8cD5CMyByZXByZXNlbnRzIGNvbnRyb2wgZmxvdyB1c2luZyBiYXNpYyBi
bG9ja3MuICBFYWNoIGJhc2ljIGJsb2NrIG1heSBoYXZlIHplcm8gb3IgbW9yZQotICAgICAgcHJl
ZGVjZXNzb3JzLiAgRWFjaCBiYXNpYyBibG9jayBtYXkgaGF2ZSB6ZXJvIG9yIG1vcmUgc3VjY2Vz
c29ycy4gIFRoZSBzdWNjZXNzb3JzIGFyZQotICAgICAgY29udHJvbGxlZCBieSB0aGUgYmFzaWMg
YmxvY2sncyBsYXN0IFZhbHVlLCB3aGljaCBtdXN0IGJlIGEgQ29udHJvbFZhbHVlIGluc3RhbmNl
LjwvcD4KKyAgICAgIHByZWRlY2Vzc29ycy4gIEVhY2ggYmFzaWMgYmxvY2sgbWF5IGhhdmUgemVy
byBvciBtb3JlIHN1Y2Nlc3NvcnMuICBUaGUgbWVhbmluZyBvZiB0aGUKKyAgICAgIHN1Y2Nlc3Nv
cnMgaXMgZGV0ZXJtaW5lZCBieSB0aGUgYmFzaWMgYmxvY2sncyBsYXN0IFZhbHVlLCB3aGljaCBt
dXN0IGJlIGEgdGVybWluYWwuIEEKKyAgICAgIHZhbHVlIGlzIHRlcm1pbmFsIGlmOjwvcD4KKyAg
ICAKKyAgICA8cHJlPjxjb2RlPnZhbHVlLSZndDtlZmZlY3RzKCkudGVybWluYWw8L2NvZGU+PC9w
cmU+CisgICAgCisgICAgPHA+U29tZSBvcGNvZGVzIGFyZSBkZWZpbml0ZWx5IHRlcm1pbmFsLCBs
aWtlIEp1bXAsIEJyYW5jaCwgT29wcywgUmV0dXJuLCBhbmQgU3dpdGNoLiBCdXQgYQorICAgICAg
dmFsdWUgd2l0aCB0aGUgUGF0Y2hwb2ludCBvcGNvZGUgbWF5IG9yIG1heSBub3QgYmUgdGVybWlu
YWwuIEluIGdlbmVyYWwgaXQncyBuZWNlc3NhcnkgdG8KKyAgICAgIGNoZWNrIHRoZSA8Y29kZT50
ZXJtaW5hbDwvY29kZT4gYml0IGFzIHNob3duIGFib3ZlLjwvcD4KIAogICAgIDxwPkVhY2ggYmFz
aWMgYmxvY2sgY29udGFpbnMgYSBWZWN0b3ImbHQ7VmFsdWUqJmd0OyBhcyB0aGUgY29udGVudHMg
b2YgdGhlIGJsb2NrLiBDb250cm9sCiAgICAgICBmbG93IGluc2lkZSB0aGUgYmxvY2sgaXMgaW1w
bGljaXQgYmFzZWQgb24gdGhlIG9yZGVyIG9mIFZhbHVlcyBpbiB0aGUgdmVjdG9yLjwvcD4KQEAg
LTQ1OCw2ICs0NjUsMTcgQEAgcGF0Y2hwb2ludC0+c2V0R2VuZXJhdG9yKAogICAgICAgICAgIHBh
dGNocG9pbnQgd2lsbCB0YWtlIHNvbWUgZXhpdCBzdGF0ZSBhcyBwYXJ0IG9mIGl0cyBhcmd1bWVu
dHMsIGFuZCBpdCB3aWxsIG1hbmlwdWxhdGUKICAgICAgICAgICB0aGUgY2FsbCBmcmFtZSBpbiBw
bGFjZSB0byBtYWtlIGl0IGxvb2sgbGlrZSBhbm90aGVyIGV4ZWN1dGlvbiBlbmdpbmUncyBjYWxs
IGZyYW1lLgogICAgICAgICAgIFRoaXMgaXMgY2FsbGVkIE9TUiwgYW5kIEphdmFTY3JpcHRDb3Jl
IGRvZXMgaXQgYSBsb3QuPC9wPgorICAgICAgICAKKyAgICAgICAgPHA+QSBwYXRjaHBvaW50IGNh
biBiZSB1c2VkIGFzIGEgdGVybWluYWwuIFNpbXBseSBzZXQgdGhlIDxjb2RlPnRlcm1pbmFsPC9j
b2RlPiBiaXQ6PC9wPgorICAgICAgICAKKyAgICAgICAgPHByZT48Y29kZT5wYXRjaHBvaW50LSZn
dDtlZmZlY3RzLnRlcm1pbmFsID0gdHJ1ZTs8L2NvZGU+PC9wcmU+CisgICAgICAgIAorICAgICAg
ICA8cD5UaGUgZ2VuZXJhdG9yIGNhbiBkZXRlcm1pbmUgd2hlcmUgdG8gYnJhbmNoIGJ5IHVzaW5n
IHRoZSBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMgdG8KKyAgICAgICAgICBnZXQgdGhlIHNldCBv
ZiBsYWJlbHMgZm9yIGFsbCBzdWNjZXNzb3JzLiBZb3UncmUgZ3VhcmFudGVlZCB0aGF0IHRoZSBu
dW1iZXIgb2YKKyAgICAgICAgICBzdWNjZXNzb3JzIG9mIHRoZSBwYXRjaHBvaW50J3MgYmFzaWMg
YmxvY2sgd2lsbCBiZSB0aGUgc2FtZSBhcyB3aGVuIHlvdSBjcmVhdGVkIGl0LgorICAgICAgICAg
IEhvd2V2ZXIsIGxpa2UgYW55IHZhbHVlLCBhIHBhdGNocG9pbnQgbWF5IGJlIGNsb25lZC4gVGhp
cyBtZWFucywgZm9yIGV4YW1wbGUsIHRoYXQgaWYKKyAgICAgICAgICB5b3UgdXNlIHRoaXMgdG8g
aW1wbGVtZW50IGEgdGFibGUganVtcCB0aGVuIHRoZSBqdW1wIHRhYmxlIG11c3QgYmUgY3JlYXRl
ZCBpbnNpZGUgdGhlCisgICAgICAgICAgZ2VuZXJhdG9yLCBzbyB0aGF0IHlvdSBnZXQgb25lIGp1
bXAgdGFibGUgcGVyIGNsb25lLjwvcD4KICAKICAgICAgICAgPHA+TXVzdCB1c2UgdGhlIFBhdGNo
cG9pbnRWYWx1ZSBjbGFzcyB3aXRoIHRoZSBQYXRjaHBvaW50IG9wY29kZS48L3A+CiAgICAgICA8
L2RkPgpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjAzMzcxKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTYtMDctMTcgIEZpbGlwIFBpemxv
ICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgdGFibGUtYmFzZWQgc3dp
dGNoZXMgaW4gQjMvQWlyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNTExNDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIGpzL3JlZ3Jlc3MvYmlnc3dpdGNoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICoganMvcmVncmVzcy9iaWdzd2l0Y2guaHRtbDogQWRkZWQuCisgICAgICAgICoganMvcmVn
cmVzcy9zY3JpcHQtdGVzdHMvYmlnc3dpdGNoLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisK
IDIwMTYtMDctMTggIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZXBlYXRlZGx5IGNyZWF0aW5nIGFuZCBkZXN0cm95aW5nIHdvcmtlcnMgdGhhdCBlbnF1ZXVlIERG
RyBwbGFucyBjYW4gb3V0cGFjZSB0aGUgREZHIHdvcmtsaXN0LCB3aGljaCB0aGVuIGNhdXNlcyBW
TSBzaHV0ZG93biB0byBzdGFsbCwgd2hpY2ggdGhlbiBjYXVzZXMgYSBtZW1vcnkgZ3Jvd3RoCklu
ZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2gtZXhwZWN0ZWQudHh0CShu
b25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLWV4cGVjdGVk
LnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3MvYmlnc3dpdGNo
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJv
d24KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCklu
ZGV4OiBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLmh0bWwJKG5vbmV4aXN0ZW50KQorKysg
TGF5b3V0VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDEyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9F
TiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvcmVncmVzcy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10
ZXN0cy9iaWdzd2l0Y2guanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9yZWdyZXNzLXBvc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvanMvcmVncmVzcy9zY3JpcHQtdGVzdHMvYmlnc3dpdGNoLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2JpZ3N3aXRjaC5qcwkobm9u
ZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9iaWdzd2l0
Y2guanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMTEgQEAKK2Z1bmN0aW9uIGZvbyhvKSB7
CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kp
IHsKKyAgICAgICAgdmFyIHZhbHVlID0gaSAmIDYzOworICAgICAgICBzd2l0Y2ggKHZhbHVlKSB7
CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYjsKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICByZXN1bHQgKz0g
by5jOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLmQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0OgorICAgICAg
ICAgICAgcmVzdWx0ICs9IG8uZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDU6
CisgICAgICAgICAgICByZXN1bHQgKz0gby5mOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgNjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSA3OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaDsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIDg6CisgICAgICAgICAgICByZXN1bHQgKz0gby5pOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgOToKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
Lmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxMDoKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxMToKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAx
MjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSAxMzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmM7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSAxNDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmQ7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxNToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmU7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxNjoKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLmY7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxNzoKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxODoK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSAxOToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSAyMDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSAyMToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyMjoKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyMzoKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLmE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyNDoKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSAyNToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmM7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSAyNjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmQ7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSAyNzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmU7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
LmY7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyOToKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzMDoKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAz
MToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSAzMjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSAzMzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzNDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzNToKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzNjoKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzNzoK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSAzODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmM7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSAzOToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmQ7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSA0MDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmU7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0MToKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLmY7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0MjoKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0MzoKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSA0NDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSA0NToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSA0NjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0NzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
Lmk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0ODoKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0OToKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1
MDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSA1MToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSA1MjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1MzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmI7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1NDoKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLmM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1NToKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLmQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1NjoK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSA1NzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmY7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSA1ODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSA1OToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA2MDoKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLmk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA2MToKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA2MjoKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVm
YXVsdDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLno7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworfQorCisoZnVuY3Rpb24oKSB7Cisg
ICAgdmFyIG8gPSB7YToxLCBiOjIsIGM6MywgZDo0LCBlOjUsIGY6NiwgZzo3LCBoOjgsIGk6OSwg
ajoxMCwgazoxMSwgejoxMDB9OworICAgIHZhciByZXN1bHQgPSAwOworICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgMTAwMDA7ICsraSkKKyAgICAgICAgcmVzdWx0ICs9IGZvbyhvKTsKKyAgICBpZiAo
cmVzdWx0ICE9IDc5NjYwMDAwKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIg
KyByZXN1bHQ7Cit9KSgpOworCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283935</attachid>
            <date>2016-07-18 14:20:28 -0700</date>
            <delta_ts>2016-07-18 16:29:16 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>435484</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAzMzcxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3OCBA
QAorMjAxNi0wNy0xNyAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IEltcGxlbWVudCB0YWJsZS1iYXNlZCBzd2l0Y2hlcyBpbiBCMy9BaXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTE0MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIElmIGEgc3dpdGNoIHN0YXRlbWVudCBn
ZXRzIGxhcmdlLCBpdCdzIGJldHRlciB0byBleHByZXNzIGl0IGFzIGFuIGluZGlyZWN0IGp1bXAg
cmF0aGVyIHRoYW4KKyAgICAgICAgdXNpbmcgYSBiaW5hcnkgc3dpdGNoIChkaXZpZGUtYW5kLWNv
bnF1ZXIgdHJlZSBvZiBjb21wYXJpc29ucyBsZWFkaW5nIHRvIE8obG9nIG4pIGJyYW5jaGVzIHRv
CisgICAgICAgIGdldCB0byB0aGUgc3dpdGNoIGNhc2UpLiBXaGVuIGRlYWxpbmcgd2l0aCBpbnRl
Z2VyIHN3aXRjaGVzLCBGVEwgd2lsbCBhbHJlYWR5IHVzZSB0aGUgQjMKKyAgICAgICAgU3dpdGNo
IGFuZCBleHBlY3QgdGhpcyB0byBnZXQgbG93ZXJlZCBhcyBlZmZpY2llbnRseSBhcyBwb3NzaWJs
ZTsgaXQncyBhIGJ1ZyB0aGF0IEIzIHdpbGwKKyAgICAgICAgYWx3YXlzIHVzZSBhIGJpbmFyeSBz
d2l0Y2ggcmF0aGVyIHRoYW4gaW5kaXJlY3QganVtcHMuIFdoZW4gZGVhbGluZyB3aXRoIHN3aXRj
aGVzIG92ZXIgc29tZQorICAgICAgICBtb3JlIHNvcGhpc3RpY2F0ZWQgdHlwZXMsIHdlJ2Qgd2Fu
dCBGVEwgdG8gYnVpbGQgYW4gaW5kaXJlY3QganVtcCB0YWJsZSBpdHNlbGYgYW5kIHVzZQorICAg
ICAgICBzb21ldGhpbmcgbGlrZSBhIGhhc2h0YWJsZSB0byBmZWVkIGl0LiBJbiB0aGF0IGNhc2Us
IHRoZXJlIHdpbGwgYmUgbm8gQjMgU3dpdGNoOyB3ZSdsbCB3YW50CisgICAgICAgIHNvbWUgd2F5
IGZvciB0aGUgRlRMIHRvIGRpcmVjdGx5IGV4cHJlc3MgYW4gaW5kaXJlY3Rpb24ganVtcCB3aGVu
IGVtaXR0aW5nIEIzLgorICAgICAgICAKKyAgICAgICAgVGhpcyBpbXBsaWVzIHRoYXQgd2Ugd2Fu
dCBCMyB0byBoYXZlIHRoZSBhYmlsaXR5IHRvIGxvd2VyIFN3aXRjaCB0byBpbmRpcmVjdCBqdW1w
cyBhbmQgdG8KKyAgICAgICAgZXhwb3NlIHRob3NlIGluZGlyZWN0IGp1bXBzIGluIElSIHNvIHRo
YXQgdGhlIEZUTCBjb3VsZCBkbyBpdHMgb3duIGluZGlyZWN0IGp1bXBzIGZvcgorICAgICAgICBz
d2l0Y2hlcyBvdmVyIG1vcmUgY29tcGxpY2F0ZWQgdGhpbmdzIGxpa2Ugc3RyaW5ncy4gQnV0IGlu
ZGlyZWN0IGp1bXBzIGFyZSB0b3VnaCB0byBleHByZXNzCisgICAgICAgIGluIElSLiBGb3IgZXhh
bXBsZSwgdGhlIExMVk0gYXBwcm9hY2ggKCJpbmRpcmVjdGJyIiBhbmQgImJsb2NrYWRkcmVzcyIs
IHNlZQorICAgICAgICBodHRwOi8vYmxvZy5sbHZtLm9yZy8yMDEwLzAxL2FkZHJlc3Mtb2YtbGFi
ZWwtYW5kLWluZGlyZWN0LWJyYW5jaGVzLmh0bWwpIG1lYW5zIHRoYXQgc29tZQorICAgICAgICBj
b250cm9sIGZsb3cgZWRnZXMgY2Fubm90IGJlIHNwbGl0LiBJbmRpcmVjdGJyIHRha2VzIGFuIGFk
ZHJlc3MgYXMgaW5wdXQgYW5kIGp1bXBzIHRvIGl0LCBhbmQKKyAgICAgICAgYmxvY2thZGRyZXNz
IGxldHMgeW91IGJ1aWxkIGp1bXAgdGFibGVzIG91dCBvZiBiYXNpYyBibG9jayBhZGRyZXNzZXMu
IFRoaXMgbWVhbnMgdGhhdCB0aGUKKyAgICAgICAgY29tcGlsZXIgY2FuIG5ldmVyIGNoYW5nZSBh
bnkgc3VjY2Vzc29yIG9mIGFuIGluZGlyZWN0YnIsIHNpbmNlIHRoZSBjbGllbnQgd2lsbCBoYXZl
IGFscmVhZHkKKyAgICAgICAgYXJyYW5nZWQgZm9yIHRoYXQgaW5kaXJlY3RiciB0byBqdW1wIHRv
IGV4YWN0bHkgdGhvc2Ugc3VjY2Vzc29ycy4gV2UgZG9uJ3Qgd2FudCBzdWNoCisgICAgICAgIHJl
c3RyaWN0aW9ucyBpbiBCMywgc2luY2UgQjMgcmVsaWVzIG9uIGJlaW5nIGFibGUgdG8gYnJlYWsg
Y3JpdGljYWwgZWRnZXMgZm9yIFNTQSBjb252ZXJzaW9uLgorICAgICAgICBBbHNvLCBpbmRpcmVj
dGJyIGlzIG5vdCBjbG9uZWFibGUsIHdoaWNoIHdvdWxkIGJyZWFrIGFueSBob3BlIG9mIGRvaW5n
IHNwZWNpYWxpemF0aW9uLWJhc2VkCisgICAgICAgIHRyYW5zZm9ybWF0aW9ucyBsaWtlIHdlIHdh
bnQgdG8gZG8gZm9yIG11bHRpcGxlIGVudHJ5cG9pbnRzIChidWcgMTU5MzkxKS4gVGhlIGdvYWwg
b2YgdGhpcworICAgICAgICBjaGFuZ2UgaXMgdG8gbGV0IGNsaWVudHMgZG8gaW5kaXJlY3QganVt
cHMgd2l0aG91dCBwbGFjaW5nIGFueSByZXN0cmljdGlvbnMgb24gSVIuCisgICAgICAgIAorICAg
ICAgICBUaGUgdHJpY2sgaXMgdG8gYWxsb3cgUGF0Y2hwb2ludHMgdG8gYmUgdXNlZCBhcyBibG9j
ayB0ZXJtaW5hbHMuIFBhdGNocG9pbnRzIGFscmVhZHkgYWxsb3cKKyAgICAgICAgY2xpZW50cyBv
ZiBCMyB0byBlbWl0IHdoYXRldmVyIGNvZGUgdGhleSBsaWtlLiBQYXRjaHBvaW50cyBhcmUgZnJp
ZW5kbHkgdG8gQjMncyBvdGhlcgorICAgICAgICB0cmFuc2Zvcm1hdGlvbnMgYmVjYXVzZSB0aGUg
Y2xpZW50IG9mIHRoZSBwYXRjaHBvaW50IGhhcyB0byBwbGF5IGFsb25nIHdpdGggd2hhdGV2ZXIK
KyAgICAgICAgZGVjaXNpb25zIEIzIGhhZCBtYWRlIGFyb3VuZCB0aGUgcGF0Y2hwb2ludDogd2hh
dCByZWdpc3RlcnMgZ290IHVzZWQsIHdoYXQgdGhlIGNvbnRyb2wgZmxvdworICAgICAgICBsb29r
cyBsaWtlLCBldGMuIFBhdGNocG9pbnRzIGNhbiBldmVuIGJlIGNsb25lZCBieSBCMywgYW5kIHRo
ZSBjbGllbnQgaGFzIHRvIGFjY29tbW9kYXRlIHRoaXMKKyAgICAgICAgaW4gdGhlaXIgcGF0Y2hw
b2ludCBnZW5lcmF0b3IuIEl0IHR1cm5zIG91dCB0aGF0IHVzaW5nIFBhdGNocG9pbnRzIGFzIHRl
cm1pbmFscyBpcyBxdWl0ZQorICAgICAgICBuYXR1cmFsLiBXZSBhY2NvbXBsaXNoIHRoaXMgYnkg
bW92aW5nIHRoZSBzdWNjZXNzb3IgZWRnZXMgb3V0IG9mIENvbnRyb2xWYWx1ZSBhbmQgaW50bwor
ICAgICAgICBCYXNpY0Jsb2NrLCBhbmQgcmVtb3ZpbmcgQ29udHJvbFZhbHVlIGVudGlyZWx5LiBU
aGlzIHdheSwgYW55IFZhbHVlIHN1YmNsYXNzIGNhbiBiZSBhCisgICAgICAgIHRlcm1pbmFsLiBJ
dCB3YXMgYWxyZWFkeSB0cnVlIHRoYXQgYSBWYWx1ZSBpcyBhIHRlcm1pbmFsIGlmIHZhbHVlLT5l
ZmZlY3RzKCkudGVybWluYWwsIHdoaWNoCisgICAgICAgIHdvcmtzIGdyZWF0IHdpdGggUGF0Y2hw
b2ludHMgc2luY2UgdGhleSBjb250cm9sIHRoZWlyIGVmZmVjdHMgdmlhIFBhdGNocG9pbnRWYWx1
ZTo6ZWZmZWN0cy4KKyAgICAgICAgWW91IGNhbiBtYWtlIHlvdXIgUGF0Y2hwb2ludCBpbnRvIGEg
dGVybWluYWwgYnkgcGxhY2luZyBpdCBhdCB0aGUgZW5kIG9mIGEgYmxvY2sgYW5kIGRvaW5nOgor
ICAgICAgICAKKyAgICAgICAgcGF0Y2hwb2ludC0+ZWZmZWN0cy50ZXJtaW5hbCA9IHRydWU7Cisg
ICAgICAgIAorICAgICAgICBBIFBhdGNocG9pbnRzIGluIHRlcm1pbmFsIHBvc2l0aW9uIGdldHMg
YWNjZXNzIHRvIGFkZGl0aW9uYWwgQVBJIGluIFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy4KKyAg
ICAgICAgVGhlIGdlbmVyYXRvciBjYW4gZ2V0IGEgQm94PExhYmVsPiBmb3IgZWFjaCBzdWNjZXNz
b3IgdG8gaXRzIG93bmluZyBibG9jay4gRm9yIGV4YW1wbGUsIHRvCisgICAgICAgIGltcGxlbWVu
dCBhIGp1bXAtdGFibGUtYmFzZWQgc3dpdGNoLCB5b3Ugd291bGQgbWFrZSB5b3VyIHBhdGNocG9p
bnQgdGFrZSB0aGUgdGFibGUgaW5kZXggYXMKKyAgICAgICAgaXRzIHNvbGUgaW5wdXQuIEluc2lk
ZSB0aGUgZ2VuZXJhdG9yLCB5b3UgYWxsb2NhdGUgdGhlIGp1bXAgdGFibGUgYW5kIGVtaXQgYSBC
YXNlSW5kZXgganVtcAorICAgICAgICB0aGF0IHVzZXMgdGhlIGp1bXAgdGFibGUgcG9pbnRlciAo
d2hpY2ggd2lsbCBiZSBhIGNvbnN0YW50IGtub3duIHRvIHRoZSBnZW5lcmF0b3Igc2luY2UgaXQK
KyAgICAgICAganVzdCBhbGxvY2F0ZWQgaXQpIGFzIHRoZSBiYXNlIGFuZCB0aGUgcGF0Y2hwb2lu
dCBpbnB1dCBhcyBhbiBpbmRleC4gVGhlIGp1bXAgdGFibGUgY2FuIGJlCisgICAgICAgIHBvcHVs
YXRlZCBieSBNYWNyb0Fzc2VtYmxlckNvZGVQdHIncyBjb21wdXRlZCBieSBpbnN0YWxsaW5nIGEg
bGluayB0YXNrIHRvIHJlc29sdmUgdGhlIGxhYmVscworICAgICAgICB0byBjb25jcmV0ZSBsb2Nh
dGlvbnMuIFRoaXMgY2hhbmdlIG1ha2VzIExvd2VyTWFjcm9zIGRvIHN1Y2ggYSBsb3dlcmluZyBm
b3IgU3dpdGNoZXMgdGhhdCBjYW4KKyAgICAgICAgYmVuZWZpdCBmcm9tIGp1bXAgdGFibGVzLiBU
aGlzIGhhcHBlbnMgcmVjdXJzaXZlbHk6IGlmIHRoZSBvcmlnaW5hbCBTd2l0Y2ggaXMgdG9vIHNw
YXJzZSwgd2UKKyAgICAgICAgd2lsbCBkaXZpZGUtYW5kLWNvbnF1ZXIgYXMgYmVmb3JlLiBJZiBh
dCBhbnkgcmVjdXJzaW9uIHN0ZXAgd2UgZmluZCB0aGF0IHRoZSByZW1haW5pbmcgY2FzZXMKKyAg
ICAgICAgYXJlIGRlbnNlIGFuZCBsYXJnZSBlbm91Z2ggdG8gcHJvZml0IGZyb20gYSBqdW1wIHRh
YmxlLCB0aGVuIHRob3NlIGNhc2VzIHdpbGwgYmUgbG93ZXJlZCB0byBhCisgICAgICAgIFBhdGNo
cG9pbnQgdGhhdCBkb2VzIHRoZSB0YWJsZSBqdW1wLiBUaGlzIGlzIGEgZnVuIHdheSB0byBkbyBz
dGVwd2lzZSBsb3dlcmluZzogTG93ZXJNYWNyb3MKKyAgICAgICAgaXMgZXNzZW50aWFsbHkgcHJl
LWxvd2VyaW5nIHRoZSBTd2l0Y2ggZGlyZWN0bHkgdG8gbWFjaGluZSBjb2RlLCBhbmQgd3JhcHBp
bmcgdGhhdCBtYWNoaW5lCisgICAgICAgIGNvZGUgaW4gYSBQYXRjaHBvaW50IHNvIHRoYXQgdGhl
IHJlc3Qgb2YgdGhlIGNvbXBpbGVyIGRvZXNuJ3QgaGF2ZSB0byBrbm93IGFueXRoaW5nIGFib3V0
CisgICAgICAgIHdoYXQgaGFwcGVuZWQuIEkgc3VzcGVjdCB0aGF0IGluIHRoZSBmdXR1cmUgd2Ug
d2lsbCB3YW50IHRvIGRvIG90aGVyIHByZS1sb3dlcmluZ3MgdGhpcyB3YXksCisgICAgICAgIHdo
ZW5ldmVyIHRoZSBCMyBJUiBwaGFzZXMgaGF2ZSBzb21lIHNwZWNpYWwga25vd2xlZGdlIGFib3V0
IHdoYXQgbWFjaGluZSBjb2RlIHNob3VsZCBiZQorICAgICAgICBlbWl0dGVkIGFuZCBpdCB3b3Vs
ZCBiZSBhbm5veWluZyB0byBkcmFnIHRoYXQga25vd2xlZGdlIHRocm91Z2ggdGhlIHJlc3Qgb2Yg
dGhlIGNvbXBpbGVyLgorICAgICAgICAKKyAgICAgICAgT25lIGRvd25zaWRlIG9mIHRoaXMgY2hh
bmdlIGlzIHRoYXQgd2UgdXNlZCBDb250cm9sVmFsdWUgaW4gc28gbWFueSBwbGFjZXMuIE1vc3Qg
b2YgdGhpcworICAgICAgICBwYXRjaCBpbnZvbHZlcyByZW1vdmluZyByZWZlcmVuY2VzIHRvIENv
bnRyb2xWYWx1ZS4gSXQgd291bGQgYmUgbGVzcyB0aGFuIDEwMGtiIGlmIGl0IHdhc24ndAorICAg
ICAgICBmb3IgdGhhdC4gVG8gbWFrZSB0aGlzIGEgYml0IGVhc2llciwgSSBhZGRlZCAiYXBwZW5k
TmV3Q29udHJvbFZhbHVlIiBtZXRob2RzIHRvIEJhc2ljQmxvY2ssCisgICAgICAgIHdoaWNoIGFs
bG9jYXRlIGEgVmFsdWUgYW5kIHNldCB0aGUgc3VjY2Vzc29ycyBhcyBpZiB5b3UgaGFkIGRvbmUg
ImFwcGVuZE5ldzxDb250cm9sVmFsdWU+Ii4KKyAgICAgICAgVGhpcyBtYWRlIGZvciBhbiBlYXN5
IHNlYXJjaC1hbmQtcmVwbGFjZSBpbiB0ZXN0YjMgYW5kIEZUTE91dHB1dC4gSSBmaWxlZCBidWcg
MTU5NDQwIHRvCisgICAgICAgIHJlbW92ZSB0aGlzIHVnbHkgc3RvcGdhcCBtZXRob2QuCisgICAg
ICAgIAorICAgICAgICBJIHRoaW5rIHRoYXQgd2Ugd2lsbCBhbHNvIGVuZCB1cCB1c2luZyB0aGlz
IGZhY2lsaXR5IHRvIGV4dGVuZCBvdXIgdXNlIG9mIHNuaXBwZXRzLiBXZQorICAgICAgICBhbHJl
YWR5IHVzZSBzaGFyZWQgc25pcHBldCBnZW5lcmF0b3JzIGZvciB0aGUgZ2VuZXJpYyBmb3JtcyBv
ZiBhcml0aG1ldGljLiBXZSB3aWxsIHByb2JhYmx5CisgICAgICAgIGFsc28gd2FudCB0byBkbyB0
aGlzIGZvciBnZW5lcmljIGZvcm1zIG9mIGJyYW5jaGVzLiBUaGlzIHdvdWxkbid0IGhhdmUgYmVl
biBwb3NzaWJsZSBwcmlvciB0bworICAgICAgICB0aGlzIGNoYW5nZSwgc2luY2UgdGhlcmUgd291
bGQgaGF2ZSBiZWVuIG5vIHdheSB0byBlbWl0IGEgY29udHJvbCBzbmlwcGV0IGluIEZUTC4gTm93
IHdlIGNhbgorICAgICAgICBlbWl0IGNvbnRyb2wgc25pcHBldHMgdXNpbmcgdGVybWluYWwgcGF0
Y2hwb2ludHMuCisKKyAgICAgICAgVGhpcyBpcyBhIH4zMCUgc3BlZWQtdXAgb24gbWljcm9iZW5j
aG1hcmtzIHRoYXQgaGF2ZSBiaWcgc3dpdGNoIHN0YXRlbWVudHMgKH42MCBjYXNlcykuIEl0J3MK
KyAgICAgICAgbm90IGEgc3BlZWQtdXAgb24gbWFpbnN0cmVhbSBiZW5jaG1hcmtzLgorICAgICAg
ICAKKyAgICAgICAgVGhpcyBhbHNvIGFkZHMgYSBuZXcgdGVzdCB0byB0ZXN0YjMgZm9yIHRlcm1p
bmFsIFBhdGNocG9pbnRzLCBHZXQsIGFuZCBTZXQuIFRoZSBGVEwgZG9lcyBub3QKKyAgICAgICAg
Y3VycmVudGx5IHVzZSB0ZXJtaW5hbCBQYXRjaHBvaW50cyBkaXJlY3RseSwgYnV0IHdlIHdhbnQg
dGhpcyB0byBiZSBwb3NzaWJsZS4gSXQgYWxzbyBkb2Vzbid0CisgICAgICAgIHVzZSBHZXQvU2V0
IGRpcmVjdGx5IGV2ZW4gdGhvdWdoIHdlIHdhbnQgdGhpcyB0byBiZSBwb3NzaWJsZS4gSXQncyBp
bXBvcnRhbnQgdG8gdGVzdCB0aGVzZQorICAgICAgICBzaW5jZSBvcGNvZGVzIHRoYXQgcmVzdWx0
IGZyb20gbG93ZXJpbmcgZG9uJ3QgYWZmZWN0IGVhcmx5IHBoYXNlcywgc28gd2UgY291bGQgaGF2
ZQorICAgICAgICByZWdyZXNzaW9ucyBpbiBlYXJseSBwaGFzZXMgcmVsYXRlZCB0byB0aGVzZSBv
cGNvZGVzIHRoYXQgd291bGRuJ3QgYmUgY2F1Z2h0IGJ5IGFueSBKUyB0ZXN0LgorICAgICAgICBT
bywgdGhpcyBhZGRzIGEgdmVyeSBiYXNpYyB0aHJlYWRlZCBpbnRlcnByZXRlciB0byB0ZXN0YjMg
Zm9yIGEgQnJhaW5mdWNrLXN0eWxlIGxhbmd1YWdlLCBhbmQKKyAgICAgICAgdGVzdHMgaXQgYnkg
aGF2aW5nIGl0IHJ1biBhIHByb2dyYW0gdGhhdCBwcmludHMgdGhlIG51bWJlcnMgMS4uMTAwIGlu
IGEgbG9vcC4gVW5saWtlIGEgcmVhbAorICAgICAgICB0aHJlYWRlZCBpbnRlcnByZXRlciwgaXQg
dXNlcyBhIGNvbW1vbiBkaXNwYXRjaCBibG9jayByYXRoZXIgdGhhbiBoYXZpbmcgZGlzcGF0Y2gg
YXQgdGhlCisgICAgICAgIHRlcm1pbnVzIG9mIGVhY2ggb3Bjb2RlLiBUaGF0J3MgbmVjZXNzYXJ5
IGJlY2F1c2UgUG9seUp1bXAgaXMgbm90IGNsb25lYWJsZS4gVGhlIHN0YXRlIG9mIHRoZQorICAg
ICAgICBpbnRlcnByZXRlciBpcyByZXByZXNlbnRlZCB1c2luZyBWYXJpYWJsZXMgdGhhdCB3ZSBH
ZXQgYW5kIFNldCwgc28gaXQgdGVzdHMgR2V0L1NldCBhcyB3ZWxsLgorCisgICAgICAgICogQ01h
a2VMaXN0cy50eHQ6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oOgorICAg
ICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTY0OjpqdW1wKToKKyAgICAgICAgKiBhc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJs
ZXJYODZDb21tb246Omp1bXApOgorICAgICAgICAqIGFzc2VtYmxlci9YODZBc3NlbWJsZXIuaDoK
KyAgICAgICAgKEpTQzo6WDg2QXNzZW1ibGVyOjpqbXBfbSk6CisgICAgICAgICogYjMvQjNCYXNp
Y0Jsb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OkJhc2ljQmxvY2s6OmFwcGVuZCk6CisgICAg
ICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjphcHBlbmROb25UZXJtaW5hbCk6CisgICAgICAgIChK
U0M6OkIzOjpCYXNpY0Jsb2NrOjpyZW1vdmVMYXN0KToKKyAgICAgICAgKEpTQzo6QjM6OkJhc2lj
QmxvY2s6OmFwcGVuZEludENvbnN0YW50KToKKyAgICAgICAgKEpTQzo6QjM6OkJhc2ljQmxvY2s6
OmNsZWFyU3VjY2Vzc29ycyk6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjphcHBlbmRT
dWNjZXNzb3IpOgorICAgICAgICAoSlNDOjpCMzo6QmFzaWNCbG9jazo6c2V0U3VjY2Vzc29ycyk6
CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjpyZXBsYWNlU3VjY2Vzc29yKToKKyAgICAg
ICAgKEpTQzo6QjM6OkJhc2ljQmxvY2s6OmFkZFByZWRlY2Vzc29yKToKKyAgICAgICAgKEpTQzo6
QjM6OkJhc2ljQmxvY2s6OmRlZXBEdW1wKToKKyAgICAgICAgKEpTQzo6QjM6OkJhc2ljQmxvY2s6
OmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSk6CisgICAgICAgICogYjMvQjNCYXNpY0Jsb2NrLmg6Cisg
ICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjpudW1TdWNjZXNzb3JzKToKKyAgICAgICAgKEpT
Qzo6QjM6OkJhc2ljQmxvY2s6OnN1Y2Nlc3Nvcik6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Js
b2NrOjpzdWNjZXNzb3JzKToKKyAgICAgICAgKEpTQzo6QjM6OkJhc2ljQmxvY2s6OnN1Y2Nlc3Nv
ckJsb2NrKToKKyAgICAgICAgKEpTQzo6QjM6OkJhc2ljQmxvY2s6OnN1Y2Nlc3NvckJsb2Nrcyk6
CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjpudW1QcmVkZWNlc3NvcnMpOgorICAgICAg
ICAoSlNDOjpCMzo6QmFzaWNCbG9jazo6cHJlZGVjZXNzb3IpOgorICAgICAgICAoSlNDOjpCMzo6
QmFzaWNCbG9jazo6ZnJlcXVlbmN5KToKKyAgICAgICAgKiBiMy9CM0Jhc2ljQmxvY2tJbmxpbmVz
Lmg6CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjpyZXBsYWNlTGFzdFdpdGhOZXcpOgor
ICAgICAgICAoSlNDOjpCMzo6QmFzaWNCbG9jazo6dGFrZW4pOgorICAgICAgICAoSlNDOjpCMzo6
QmFzaWNCbG9jazo6bm90VGFrZW4pOgorICAgICAgICAoSlNDOjpCMzo6QmFzaWNCbG9jazo6ZmFs
bFRocm91Z2gpOgorICAgICAgICAoSlNDOjpCMzo6QmFzaWNCbG9jazo6bnVtU3VjY2Vzc29ycyk6
IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjpzdWNjZXNzb3IpOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpCMzo6QmFzaWNCbG9jazo6c3VjY2Vzc29ycyk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjpzdWNjZXNzb3JCbG9jayk6IERlbGV0ZWQu
CisgICAgICAgIChKU0M6OkIzOjpCYXNpY0Jsb2NrOjpzdWNjZXNzb3JCbG9ja3MpOiBEZWxldGVk
LgorICAgICAgICAqIGIzL0IzQmxvY2tJbnNlcnRpb25TZXQuY3BwOgorICAgICAgICAoSlNDOjpC
Mzo6QmxvY2tJbnNlcnRpb25TZXQ6OnNwbGl0Rm9yd2FyZCk6CisgICAgICAgICogYjMvQjNCcmVh
a0NyaXRpY2FsRWRnZXMuY3BwOgorICAgICAgICAoSlNDOjpCMzo6YnJlYWtDcml0aWNhbEVkZ2Vz
KToKKyAgICAgICAgKiBiMy9CM0Nhc2VDb2xsZWN0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChK
U0M6OkIzOjpDYXNlQ29sbGVjdGlvbjo6ZHVtcCk6CisgICAgICAgICogYjMvQjNDYXNlQ29sbGVj
dGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6QjM6OkNhc2VDb2xsZWN0aW9uOjpDYXNlQ29s
bGVjdGlvbik6CisgICAgICAgIChKU0M6OkIzOjpDYXNlQ29sbGVjdGlvbjo6b3BlcmF0b3JbXSk6
CisgICAgICAgIChKU0M6OkIzOjpDYXNlQ29sbGVjdGlvbjo6aXRlcmF0b3I6Oml0ZXJhdG9yKToK
KyAgICAgICAgKEpTQzo6QjM6OkNhc2VDb2xsZWN0aW9uOjppdGVyYXRvcjo6b3BlcmF0b3IqKToK
KyAgICAgICAgKEpTQzo6QjM6OkNhc2VDb2xsZWN0aW9uOjppdGVyYXRvcjo6b3BlcmF0b3IrKyk6
CisgICAgICAgIChKU0M6OkIzOjpDYXNlQ29sbGVjdGlvbjo6aXRlcmF0b3I6Om9wZXJhdG9yPT0p
OgorICAgICAgICAoSlNDOjpCMzo6Q2FzZUNvbGxlY3Rpb246Oml0ZXJhdG9yOjpvcGVyYXRvciE9
KToKKyAgICAgICAgKEpTQzo6QjM6OkNhc2VDb2xsZWN0aW9uOjpiZWdpbik6CisgICAgICAgIChK
U0M6OkIzOjpDYXNlQ29sbGVjdGlvbjo6ZW5kKToKKyAgICAgICAgKiBiMy9CM0Nhc2VDb2xsZWN0
aW9uSW5saW5lcy5oOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6QjM6OkNhc2VDb2xsZWN0aW9uOjpm
YWxsVGhyb3VnaCk6CisgICAgICAgIChKU0M6OkIzOjpDYXNlQ29sbGVjdGlvbjo6c2l6ZSk6Cisg
ICAgICAgIChKU0M6OkIzOjpDYXNlQ29sbGVjdGlvbjo6YXQpOgorICAgICAgICAqIGIzL0IzQ2hl
Y2tTcGVjaWFsLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OkNoZWNrU3BlY2lhbDo6Q2hlY2tTcGVj
aWFsKToKKyAgICAgICAgKEpTQzo6QjM6OkNoZWNrU3BlY2lhbDo6aGlkZGVuQnJhbmNoKToKKyAg
ICAgICAgKiBiMy9CM0NvbW1vbi5oOgorICAgICAgICAoSlNDOjpCMzo6aXM2NEJpdCk6CisgICAg
ICAgICogYjMvQjNDb250cm9sVmFsdWUuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGIzL0IzQ29u
dHJvbFZhbHVlLmg6IFJlbW92ZWQuCisgICAgICAgICogYjMvQjNEYXRhU2VjdGlvbi5jcHA6Cisg
ICAgICAgIChKU0M6OkIzOjpEYXRhU2VjdGlvbjo6RGF0YVNlY3Rpb24pOgorICAgICAgICAqIGIz
L0IzRHVwbGljYXRlVGFpbHMuY3BwOgorICAgICAgICAqIGIzL0IzRml4U1NBLmNwcDoKKyAgICAg
ICAgKiBiMy9CM0ZvbGRQYXRoQ29uc3RhbnRzLmNwcDoKKyAgICAgICAgKiBiMy9CM0xvd2VyTWFj
cm9zLmNwcDoKKyAgICAgICAgKiBiMy9CM0xvd2VyVG9BaXIuY3BwOgorICAgICAgICAoSlNDOjpC
Mzo6QWlyOjpMb3dlclRvQWlyOjpydW4pOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpMb3dlclRv
QWlyOjpsb3dlcik6CisgICAgICAgICogYjMvQjNNYXRoRXh0cmFzLmNwcDoKKyAgICAgICAgKEpT
Qzo6QjM6OnBvd0RvdWJsZUludDMyKToKKyAgICAgICAgKiBiMy9CM09wY29kZS5oOgorICAgICAg
ICAoSlNDOjpCMzo6aXNDb25zdGFudCk6CisgICAgICAgIChKU0M6OkIzOjppc0RlZmluaXRlbHlU
ZXJtaW5hbCk6CisgICAgICAgICogYjMvQjNQYXRjaHBvaW50U3BlY2lhbC5jcHA6CisgICAgICAg
IChKU0M6OkIzOjpQYXRjaHBvaW50U3BlY2lhbDo6Z2VuZXJhdGUpOgorICAgICAgICAoSlNDOjpC
Mzo6UGF0Y2hwb2ludFNwZWNpYWw6OmlzVGVybWluYWwpOgorICAgICAgICAoSlNDOjpCMzo6UGF0
Y2hwb2ludFNwZWNpYWw6OmR1bXBJbXBsKToKKyAgICAgICAgKiBiMy9CM1BhdGNocG9pbnRTcGVj
aWFsLmg6CisgICAgICAgICogYjMvQjNQcm9jZWR1cmUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6
UHJvY2VkdXJlOjpyZXNldFJlYWNoYWJpbGl0eSk6CisgICAgICAgICogYjMvQjNQcm9jZWR1cmUu
aDoKKyAgICAgICAgKEpTQzo6QjM6OlByb2NlZHVyZTo6bGFzdFBoYXNlTmFtZSk6CisgICAgICAg
IChKU0M6OkIzOjpQcm9jZWR1cmU6OmJ5cHJvZHVjdHMpOgorICAgICAgICAqIGIzL0IzUmVkdWNl
U3RyZW5ndGguY3BwOgorICAgICAgICAqIGIzL0IzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmNw
cDoKKyAgICAgICAgKEpTQzo6QjM6OlN0YWNrbWFwR2VuZXJhdGlvblBhcmFtczo6dW5hdmFpbGFi
bGVSZWdpc3RlcnMpOgorICAgICAgICAoSlNDOjpCMzo6U3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1z
OjpzdWNjZXNzb3JMYWJlbHMpOgorICAgICAgICAoSlNDOjpCMzo6U3RhY2ttYXBHZW5lcmF0aW9u
UGFyYW1zOjpmYWxsc1Rocm91Z2hUb1N1Y2Nlc3Nvcik6CisgICAgICAgIChKU0M6OkIzOjpTdGFj
a21hcEdlbmVyYXRpb25QYXJhbXM6OnByb2MpOgorICAgICAgICAqIGIzL0IzU3RhY2ttYXBHZW5l
cmF0aW9uUGFyYW1zLmg6CisgICAgICAgIChKU0M6OkIzOjpTdGFja21hcEdlbmVyYXRpb25QYXJh
bXM6OmdwU2NyYXRjaCk6CisgICAgICAgIChKU0M6OkIzOjpTdGFja21hcEdlbmVyYXRpb25QYXJh
bXM6OmZwU2NyYXRjaCk6CisgICAgICAgICogYjMvQjNTd2l0Y2hWYWx1ZS5jcHA6CisgICAgICAg
IChKU0M6OkIzOjpTd2l0Y2hWYWx1ZTo6flN3aXRjaFZhbHVlKToKKyAgICAgICAgKEpTQzo6QjM6
OlN3aXRjaFZhbHVlOjpyZW1vdmVDYXNlKToKKyAgICAgICAgKEpTQzo6QjM6OlN3aXRjaFZhbHVl
OjpoYXNGYWxsVGhyb3VnaCk6CisgICAgICAgIChKU0M6OkIzOjpTd2l0Y2hWYWx1ZTo6c2V0RmFs
bFRocm91Z2gpOgorICAgICAgICAoSlNDOjpCMzo6U3dpdGNoVmFsdWU6OmFwcGVuZENhc2UpOgor
ICAgICAgICAoSlNDOjpCMzo6U3dpdGNoVmFsdWU6OmR1bXBTdWNjZXNzb3JzKToKKyAgICAgICAg
KEpTQzo6QjM6OlN3aXRjaFZhbHVlOjpkdW1wTWV0YSk6CisgICAgICAgIChKU0M6OkIzOjpTd2l0
Y2hWYWx1ZTo6Y2xvbmVJbXBsKToKKyAgICAgICAgKEpTQzo6QjM6OlN3aXRjaFZhbHVlOjpTd2l0
Y2hWYWx1ZSk6CisgICAgICAgICogYjMvQjNTd2l0Y2hWYWx1ZS5oOgorICAgICAgICAoSlNDOjpC
Mzo6U3dpdGNoVmFsdWU6OmFjY2VwdHMpOgorICAgICAgICAoSlNDOjpCMzo6U3dpdGNoVmFsdWU6
OmNhc2VWYWx1ZXMpOgorICAgICAgICAoSlNDOjpCMzo6U3dpdGNoVmFsdWU6OmNhc2VzKToKKyAg
ICAgICAgKEpTQzo6QjM6OlN3aXRjaFZhbHVlOjpmYWxsVGhyb3VnaCk6IERlbGV0ZWQuCisgICAg
ICAgIChKU0M6OkIzOjpTd2l0Y2hWYWx1ZTo6c2l6ZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6
OkIzOjpTd2l0Y2hWYWx1ZTo6YXQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpCMzo6U3dpdGNo
VmFsdWU6Om9wZXJhdG9yW10pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpCMzo6U3dpdGNoVmFs
dWU6Oml0ZXJhdG9yOjppdGVyYXRvcik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkIzOjpTd2l0
Y2hWYWx1ZTo6aXRlcmF0b3I6Om9wZXJhdG9yKik6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkIz
OjpTd2l0Y2hWYWx1ZTo6aXRlcmF0b3I6Om9wZXJhdG9yKyspOiBEZWxldGVkLgorICAgICAgICAo
SlNDOjpCMzo6U3dpdGNoVmFsdWU6Oml0ZXJhdG9yOjpvcGVyYXRvcj09KTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6QjM6OlN3aXRjaFZhbHVlOjppdGVyYXRvcjo6b3BlcmF0b3IhPSk6IERlbGV0
ZWQuCisgICAgICAgIChKU0M6OkIzOjpTd2l0Y2hWYWx1ZTo6YmVnaW4pOiBEZWxldGVkLgorICAg
ICAgICAoSlNDOjpCMzo6U3dpdGNoVmFsdWU6OmVuZCk6IERlbGV0ZWQuCisgICAgICAgICogYjMv
QjNWYWxpZGF0ZS5jcHA6CisgICAgICAgICogYjMvQjNWYWx1ZS5jcHA6CisgICAgICAgIChKU0M6
OkIzOjpWYWx1ZTo6cmVwbGFjZVdpdGhQaGkpOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6OnJl
cGxhY2VXaXRoSnVtcCk6CisgICAgICAgIChKU0M6OkIzOjpWYWx1ZTo6cmVwbGFjZVdpdGhPb3Bz
KToKKyAgICAgICAgKEpTQzo6QjM6OlZhbHVlOjpkdW1wKToKKyAgICAgICAgKEpTQzo6QjM6OlZh
bHVlOjpkZWVwRHVtcCk6CisgICAgICAgIChKU0M6OkIzOjpWYWx1ZTo6ZHVtcFN1Y2Nlc3NvcnMp
OgorICAgICAgICAoSlNDOjpCMzo6VmFsdWU6Om5lZ0NvbnN0YW50KToKKyAgICAgICAgKEpTQzo6
QjM6OlZhbHVlOjp0eXBlRm9yKToKKyAgICAgICAgKiBiMy9CM1ZhbHVlLmg6CisgICAgICAgICog
YjMvYWlyL0FpckNvZGUuY3BwOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpDb2RlOjphZGRGYXN0
VG1wKToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6Q29kZTo6YWRkRGF0YVNlY3Rpb24pOgorICAg
ICAgICAoSlNDOjpCMzo6QWlyOjpDb2RlOjpqc0hhc2gpOgorICAgICAgICAqIGIzL2Fpci9BaXJD
b2RlLmg6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OkNvZGU6OmlzRmFzdFRtcCk6CisgICAgICAg
IChKU0M6OkIzOjpBaXI6OkNvZGU6OnNldExhc3RQaGFzZU5hbWUpOgorICAgICAgICAqIGIzL2Fp
ci9BaXJDdXN0b20uaDoKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6UGF0Y2hDdXN0b206OnNob3Vs
ZFRyeUFsaWFzaW5nRGVmKToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6UGF0Y2hDdXN0b206Omlz
VGVybWluYWwpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpQYXRjaEN1c3RvbTo6aGFzTm9uQXJn
Tm9uQ29udHJvbEVmZmVjdHMpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpQYXRjaEN1c3RvbTo6
Z2VuZXJhdGUpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpDQ2FsbEN1c3RvbTo6YWRtaXRzU3Rh
Y2spOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpDQ2FsbEN1c3RvbTo6aXNUZXJtaW5hbCk6Cisg
ICAgICAgIChKU0M6OkIzOjpBaXI6OkNDYWxsQ3VzdG9tOjpoYXNOb25BcmdOb25Db250cm9sRWZm
ZWN0cyk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OlNodWZmbGVDdXN0b206OmFkbWl0c1N0YWNr
KToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6U2h1ZmZsZUN1c3RvbTo6aXNUZXJtaW5hbCk6Cisg
ICAgICAgIChKU0M6OkIzOjpBaXI6OlNodWZmbGVDdXN0b206Omhhc05vbkFyZ05vbkNvbnRyb2xF
ZmZlY3RzKToKKyAgICAgICAgKiBiMy9haXIvQWlyR2VuZXJhdGUuY3BwOgorICAgICAgICAoSlND
OjpCMzo6QWlyOjpnZW5lcmF0ZSk6CisgICAgICAgICogYjMvYWlyL0FpckdlbmVyYXRpb25Db250
ZXh0Lmg6CisgICAgICAgICogYjMvYWlyL0Fpckluc3QuaDoKKyAgICAgICAgKEpTQzo6QjM6OkFp
cjo6SW5zdDo6aGFzTm9uQ29udHJvbEVmZmVjdHMpOgorICAgICAgICAqIGIzL2Fpci9BaXJTaW1w
bGlmeUNGRy5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OnNpbXBsaWZ5Q0ZHKToKKyAgICAg
ICAgKiBiMy9haXIvQWlyU3BlY2lhbC5jcHA6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OlNwZWNp
YWw6OnNob3VsZFRyeUFsaWFzaW5nRGVmKToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6U3BlY2lh
bDo6aXNUZXJtaW5hbCk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6OlNwZWNpYWw6Omhhc05vbkFy
Z05vbkNvbnRyb2xFZmZlY3RzKToKKyAgICAgICAgKiBiMy9haXIvQWlyU3BlY2lhbC5oOgorICAg
ICAgICAqIGIzL2Fpci9BaXJWYWxpZGF0ZS5jcHA6CisgICAgICAgICogYjMvYWlyL29wY29kZV9n
ZW5lcmF0b3IucmI6CisgICAgICAgICogYjMvdGVzdGIzLmNwcDoKKyAgICAgICAgKiBmdGwvRlRM
TG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKiBmdGwvRlRMT3V0cHV0LmNwcDoKKyAgICAgICAg
KEpTQzo6RlRMOjpPdXRwdXQ6Omp1bXApOgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6YnJh
bmNoKToKKyAgICAgICAgKEpTQzo6RlRMOjpPdXRwdXQ6OnJldCk6CisgICAgICAgIChKU0M6OkZU
TDo6T3V0cHV0Ojp1bnJlYWNoYWJsZSk6CisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0OjpzcGVj
dWxhdGUpOgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6dHJhcCk6CisgICAgICAgIChKU0M6
OkZUTDo6T3V0cHV0OjphbmNob3IpOgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6ZGVjcmVt
ZW50U3VwZXJTYW1wbGVyQ291bnQpOgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6YWRkSW5j
b21pbmdUb1BoaSk6CisgICAgICAgICogZnRsL0ZUTE91dHB1dC5oOgorICAgICAgICAoSlNDOjpG
VEw6Ok91dHB1dDo6Y29uc3RJbnRQdHIpOgorICAgICAgICAoSlNDOjpGVEw6Ok91dHB1dDo6Y2Fs
bFdpdGhvdXRTaWRlRWZmZWN0cyk6CisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0Ojpzd2l0Y2hJ
bnN0cnVjdGlvbik6CisgICAgICAgIChKU0M6OkZUTDo6T3V0cHV0OjpwaGkpOgorICAgICAgICAo
SlNDOjpGVEw6Ok91dHB1dDo6YWRkSW5jb21pbmdUb1BoaSk6CisKIDIwMTYtMDctMTggIEZpbGlw
IFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXBlYXRlZGx5IGNyZWF0aW5n
IGFuZCBkZXN0cm95aW5nIHdvcmtlcnMgdGhhdCBlbnF1ZXVlIERGRyBwbGFucyBjYW4gb3V0cGFj
ZSB0aGUgREZHIHdvcmtsaXN0LCB3aGljaCB0aGVuIGNhdXNlcyBWTSBzaHV0ZG93biB0byBzdGFs
bCwgd2hpY2ggdGhlbiBjYXVzZXMgbWVtb3J5IGdyb3d0aApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMjAzMzcxKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMDgsNiArMTA4LDcgQEAgc2V0
KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICBiMy9CM0Jsb2NrSW5zZXJ0aW9uU2V0LmNwcAog
ICAgIGIzL0IzQnJlYWtDcml0aWNhbEVkZ2VzLmNwcAogICAgIGIzL0IzQ0NhbGxWYWx1ZS5jcHAK
KyAgICBiMy9CM0Nhc2VDb2xsZWN0aW9uLmNwcAogICAgIGIzL0IzQ2hlY2tTcGVjaWFsLmNwcAog
ICAgIGIzL0IzQ2hlY2tWYWx1ZS5jcHAKICAgICBiMy9CM0NvbW1vbi5jcHAKQEAgLTExOCw3ICsx
MTksNiBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIGIzL0IzQ29uc3REb3VibGVW
YWx1ZS5jcHAKICAgICBiMy9CM0NvbnN0RmxvYXRWYWx1ZS5jcHAKICAgICBiMy9CM0NvbnN0cmFp
bmVkVmFsdWUuY3BwCi0gICAgYjMvQjNDb250cm9sVmFsdWUuY3BwCiAgICAgYjMvQjNEYXRhU2Vj
dGlvbi5jcHAKICAgICBiMy9CM0R1cGxpY2F0ZVRhaWxzLmNwcAogICAgIGIzL0IzRWZmZWN0cy5j
cHAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMDMzNzEpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNzczLDggKzc3Myw2IEBACiAJCTBGRUM4NTEwMUJE
QUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0NjRWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZFQzg0QzYxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29u
c3Q2NFZhbHVlLmggKi87IH07CiAJCTBGRUM4NTExMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0
RG91YmxlVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEZFQzg0QzcxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29uc3REb3VibGVWYWx1ZS5jcHAg
Ki87IH07CiAJCTBGRUM4NTEyMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0RG91YmxlVmFsdWUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRUM4NEM4
MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0RG91YmxlVmFsdWUuaCAqLzsgfTsKLQkJMEZFQzg1
MTMxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29udHJvbFZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRUM4NEM5MUJEQUNEQUMwMDgwRkY3NCAv
KiBCM0NvbnRyb2xWYWx1ZS5jcHAgKi87IH07Ci0JCTBGRUM4NTE0MUJEQUNEQUMwMDgwRkY3NCAv
KiBCM0NvbnRyb2xWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEZFQzg0Q0ExQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29udHJvbFZhbHVlLmggKi87
IH07CiAJCTBGRUM4NTE1MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0ZyZXF1ZW5jeUNsYXNzLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRUM4NENCMUJE
QUNEQUMwMDgwRkY3NCAvKiBCM0ZyZXF1ZW5jeUNsYXNzLmNwcCAqLzsgfTsKIAkJMEZFQzg1MTYx
QkRBQ0RBQzAwODBGRjc0IC8qIEIzRnJlcXVlbmN5Q2xhc3MuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRUM4NENDMUJEQUNEQUMwMDgwRkY3NCAvKiBC
M0ZyZXF1ZW5jeUNsYXNzLmggKi87IH07CiAJCTBGRUM4NTE3MUJEQUNEQUMwMDgwRkY3NCAvKiBC
M0ZyZXF1ZW50ZWRCbG9jay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEZFQzg0Q0QxQkRBQ0RBQzAwODBGRjc0IC8qIEIzRnJlcXVlbnRlZEJsb2NrLmgg
Ki87IH07CkBAIC0yMDAxLDYgKzE5OTksOSBAQAogCQlEQzY5QUE2NjFDRjdBMUYyMDBDNjI3MkYg
LyogTWF0Y2hSZXN1bHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gREM2OUFBNjUxQ0Y3QTFFRjAwQzYyNzJGIC8qIE1hdGNoUmVzdWx0LmNwcCAqLzsg
fTsKIAkJREM3OTk3ODMxQ0RFOUZBMDAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDNzk5NzgyMUNERTlG
OUUwMDRENEEwOSAvKiBUYWdSZWdpc3RlcnNNb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJREM3OTk3ODQxQ0RFOUZBMjAwNEQ0QTA5IC8qIFRh
Z1JlZ2lzdGVyc01vZGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gREM3OTk3ODExQ0RFOUY5RTAwNEQ0QTA5IC8qIFRhZ1JlZ2lzdGVyc01vZGUuY3Bw
ICovOyB9OworCQlEQzlBMEMxRjFEMkQ5Q0IxMDA4NTEyNEUgLyogQjNDYXNlQ29sbGVjdGlvbklu
bGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERD
OUEwQzFFMUQyRDk0RUYwMDg1MTI0RSAvKiBCM0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oICovOyB9
OworCQlEQzlBMEMyMDFEMkQ5Q0IzMDA4NTEyNEUgLyogQjNDYXNlQ29sbGVjdGlvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM5QTBDMUQxRDJEOTRF
RjAwODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rpb24uaCAqLzsgfTsKKwkJREM5QTBDMjExRDJEOUNC
NDAwODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREM5QTBDMUMxRDJEOTRFRjAwODUxMjRFIC8qIEIzQ2Fz
ZUNvbGxlY3Rpb24uY3BwICovOyB9OwogCQlEQ0VFMjIwOTFDRUI5ODk1MDAwQzIzOTYgLyogREZH
QmFja3dhcmRzQ0ZHLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBEQ0VFMjIwNjFDRUI5ODkwMDAwQzIzOTYgLyogREZHQmFja3dhcmRzQ0ZHLmggKi87IH07
CiAJCURDRUUyMjBBMUNFQjk4OTUwMDBDMjM5NiAvKiBERkdCYWNrd2FyZHNEb21pbmF0b3JzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBEQ0VFMjIwNzFD
RUI5ODkwMDAwQzIzOTYgLyogREZHQmFja3dhcmRzRG9taW5hdG9ycy5oICovOyB9OwogCQlEQ0VF
MjIwQjFDRUI5ODk1MDAwQzIzOTYgLyogREZHQ29udHJvbEVxdWl2YWxlbmNlQW5hbHlzaXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERDRUUyMjA4MUNF
Qjk4OTAwMDBDMjM5NiAvKiBERkdDb250cm9sRXF1aXZhbGVuY2VBbmFseXNpcy5oICovOyB9OwpA
QCAtMjk2OCw4ICsyOTY5LDYgQEAKIAkJMEZFQzg0QzYxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29u
c3Q2NFZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEIzQ29uc3Q2NFZh
bHVlLmg7IHBhdGggPSBiMy9CM0NvbnN0NjRWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRkVDODRDNzFCREFDREFDMDA4MEZGNzQgLyogQjNDb25zdERvdWJsZVZhbHVlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEIzQ29uc3REb3VibGVWYWx1
ZS5jcHA7IHBhdGggPSBiMy9CM0NvbnN0RG91YmxlVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwRkVDODRDODFCREFDREFDMDA4MEZGNzQgLyogQjNDb25zdERvdWJsZVZh
bHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEIzQ29uc3REb3VibGVWYWx1
ZS5oOyBwYXRoID0gYjMvQjNDb25zdERvdWJsZVZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTBGRUM4NEM5MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnRyb2xWYWx1ZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBCM0NvbnRyb2xWYWx1ZS5jcHA7
IHBhdGggPSBiMy9CM0NvbnRyb2xWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTBGRUM4NENBMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnRyb2xWYWx1ZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCM0NvbnRyb2xWYWx1ZS5oOyBwYXRoID0gYjMvQjND
b250cm9sVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZFQzg0Q0IxQkRB
Q0RBQzAwODBGRjc0IC8qIEIzRnJlcXVlbmN5Q2xhc3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gQjNGcmVxdWVuY3lDbGFzcy5jcHA7IHBhdGggPSBiMy9CM0ZyZXF1
ZW5jeUNsYXNzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZFQzg0Q0MxQkRB
Q0RBQzAwODBGRjc0IC8qIEIzRnJlcXVlbmN5Q2xhc3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gQjNGcmVxdWVuY3lDbGFzcy5oOyBwYXRoID0gYjMvQjNGcmVxdWVuY3lDbGFz
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkVDODRDRDFCREFDREFDMDA4MEZG
NzQgLyogQjNGcmVxdWVudGVkQmxvY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gQjNGcmVxdWVudGVkQmxvY2suaDsgcGF0aCA9IGIzL0IzRnJlcXVlbnRlZEJsb2NrLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00MjMzLDYgKzQyMzIsOSBAQAogCQlEQzY5QUE2
NTFDRjdBMUVGMDBDNjI3MkYgLyogTWF0Y2hSZXN1bHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gTWF0Y2hSZXN1bHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlEQzc5OTc4MTFDREU5RjlFMDA0RDRBMDkgLyogVGFnUmVnaXN0ZXJzTW9kZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUYWdSZWdpc3RlcnNNb2RlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREM3OTk3ODIxQ0RFOUY5RTAwNEQ0QTA5
IC8qIFRhZ1JlZ2lzdGVyc01vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VGFnUmVnaXN0ZXJzTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEQzlBMEMx
QzFEMkQ5NEVGMDA4NTEyNEUgLyogQjNDYXNlQ29sbGVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBCM0Nhc2VDb2xsZWN0aW9uLmNwcDsgcGF0aCA9IGIzL0Iz
Q2FzZUNvbGxlY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEQzlBMEMx
RDFEMkQ5NEVGMDA4NTEyNEUgLyogQjNDYXNlQ29sbGVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBCM0Nhc2VDb2xsZWN0aW9uLmg7IHBhdGggPSBiMy9CM0Nhc2VDb2xs
ZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCURDOUEwQzFFMUQyRDk0RUYw
MDg1MTI0RSAvKiBCM0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBCM0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oOyBwYXRoID0gYjMvQjNDYXNl
Q29sbGVjdGlvbklubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRENFRTIy
MDYxQ0VCOTg5MDAwMEMyMzk2IC8qIERGR0JhY2t3YXJkc0NGRy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBERkdCYWNrd2FyZHNDRkcuaDsgcGF0aCA9IGRmZy9ERkdCYWNrd2Fy
ZHNDRkcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRENFRTIyMDcxQ0VCOTg5MDAw
MEMyMzk2IC8qIERGR0JhY2t3YXJkc0RvbWluYXRvcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gREZHQmFja3dhcmRzRG9taW5hdG9ycy5oOyBwYXRoID0gZGZnL0RGR0JhY2t3
YXJkc0RvbWluYXRvcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRENFRTIyMDgx
Q0VCOTg5MDAwMEMyMzk2IC8qIERGR0NvbnRyb2xFcXVpdmFsZW5jZUFuYWx5c2lzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR0NvbnRyb2xFcXVpdmFsZW5jZUFuYWx5c2lz
Lmg7IHBhdGggPSBkZmcvREZHQ29udHJvbEVxdWl2YWxlbmNlQW5hbHlzaXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ2OTgsNiArNDcwMCw5IEBACiAJCQkJRENGREZCRDcxRDFG
NUQ5ODAwRkUzRDcyIC8qIEIzQm90dG9tUHJvdmlkZXIuaCAqLywKIAkJCQkwRjZCOEFERTFDNEVG
RTE3MDA5NjkwNTIgLyogQjNCcmVha0NyaXRpY2FsRWRnZXMuY3BwICovLAogCQkJCTBGNkI4QURG
MUM0RUZFMTcwMDk2OTA1MiAvKiBCM0JyZWFrQ3JpdGljYWxFZGdlcy5oICovLAorCQkJCURDOUEw
QzFDMUQyRDk0RUYwMDg1MTI0RSAvKiBCM0Nhc2VDb2xsZWN0aW9uLmNwcCAqLywKKwkJCQlEQzlB
MEMxRDFEMkQ5NEVGMDA4NTEyNEUgLyogQjNDYXNlQ29sbGVjdGlvbi5oICovLAorCQkJCURDOUEw
QzFFMUQyRDk0RUYwMDg1MTI0RSAvKiBCM0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oICovLAogCQkJ
CTBGMzM4REY3MUJFOTZBQTgwMDEzQzg4RiAvKiBCM0NDYWxsVmFsdWUuY3BwICovLAogCQkJCTBG
MzM4REY4MUJFOTZBQTgwMDEzQzg4RiAvKiBCM0NDYWxsVmFsdWUuaCAqLywKIAkJCQkwRjMzRkNG
OTFDMTYyNUJFMDAzMjNGNjcgLyogQjNDRkcuaCAqLywKQEAgLTQ3MjMsOCArNDcyOCw2IEBACiAJ
CQkJMEZFQzg1QjIxQkRFRDk1NzAwODBGRjc0IC8qIEIzQ29uc3RQdHJWYWx1ZS5oICovLAogCQkJ
CTBGMzM4REYzMUJFOTNENTUwMDEzQzg4RiAvKiBCM0NvbnN0cmFpbmVkVmFsdWUuY3BwICovLAog
CQkJCTBGMzM4REY0MUJFOTNENTUwMDEzQzg4RiAvKiBCM0NvbnN0cmFpbmVkVmFsdWUuaCAqLywK
LQkJCQkwRkVDODRDOTFCREFDREFDMDA4MEZGNzQgLyogQjNDb250cm9sVmFsdWUuY3BwICovLAot
CQkJCTBGRUM4NENBMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnRyb2xWYWx1ZS5oICovLAogCQkJ
CTBGMzM4RTAxMUJGMDI3NkMwMDEzQzg4RiAvKiBCM0RhdGFTZWN0aW9uLmNwcCAqLywKIAkJCQkw
RjMzOEUwMjFCRjAyNzZDMDAxM0M4OEYgLyogQjNEYXRhU2VjdGlvbi5oICovLAogCQkJCTBGMzNG
Q0ZBMUMxNjI1QkUwMDMyM0Y2NyAvKiBCM0RvbWluYXRvcnMuaCAqLywKQEAgLTcwODAsNyArNzA4
Myw2IEBACiAJCQkJMEZFQzg1MTAxQkRBQ0RBQzAwODBGRjc0IC8qIEIzQ29uc3Q2NFZhbHVlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODUxMjFCREFDREFDMDA4MEZGNzQgLyogQjNDb25zdERv
dWJsZVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODVCMzFCREVEOTU3MDA4MEZGNzQg
LyogQjNDb25zdFB0clZhbHVlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkVDODUxNDFCREFDREFD
MDA4MEZGNzQgLyogQjNDb250cm9sVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NUMx
MUJFMTY3QTAwMDgwRkY3NCAvKiBCM0VmZmVjdHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4
NTE2MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0ZyZXF1ZW5jeUNsYXNzLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjYxODMyRjFDNDVCRjA3MDA3MjQ1MEIgLyogQWlyTG93ZXJBZnRlclJlZ0FsbG9jLmgg
aW4gSGVhZGVycyAqLywKQEAgLTcyNDEsNiArNzI0Myw3IEBACiAJCQkJQkMxOEMzRkIwRTE2RjVD
RDAwQjM0NDYwIC8qIERlYnVnZ2VyQ2FsbEZyYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQk2QUQy
Q0I0RDE5QjkxNDAxMDAwNjU3MTkgLyogRGVidWdnZXJFdmFsRW5hYmxlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRkVBMDg2MjExODJCN0EwNDAwRjZEODUxIC8qIERlYnVnZ2VyUHJpbWl0aXZlcy5o
IGluIEhlYWRlcnMgKi8sCisJCQkJREM5QTBDMUYxRDJEOUNCMTAwODUxMjRFIC8qIEIzQ2FzZUNv
bGxlY3Rpb25JbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJENERERTE5ODMyRDM0MDA3
RDRCMTkgLyogRGVidWdnZXJTY29wZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYxMzZENEQxNzRB
RDY5RTAwNzVCMzU0IC8qIERlZmVyR0MuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzcxMkRGMTdD
RDg3N0MwMDhDQzkzQyAvKiBEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaCBpbiBIZWFkZXJz
ICovLApAQCAtNzQ5NCw2ICs3NDk3LDcgQEAKIAkJCQkwRkUwRTRBRTFDMjRDOTRBMDAyRTE3QjYg
LyogQWlyVG1wV2lkdGguaCBpbiBIZWFkZXJzICovLAogCQkJCUE3RjI5OTZDMTdBMEJCNjcwMDEw
NDE3QSAvKiBGVExGYWlsLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVBMEEyQzE3MEI2NjE5MDBC
QjcyMkMgLyogRlRMRm9ybWF0dGVkVmFsdWUuaCBpbiBIZWFkZXJzICovLAorCQkJCURDOUEwQzIw
MUQyRDlDQjMwMDg1MTI0RSAvKiBCM0Nhc2VDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRkQ4QTMxQTE3RDUxRjIyMDBDQTJDNDAgLyogRlRMRm9yT1NSRW50cnlKSVRDb2RlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBNzhBOTc3RjE3OTczOEQ1MDA5REY3NDQgLyogRlRMR2VuZXJhdGVk
RnVuY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUEwQTBFMTcwNTEzREIwMEJCNzIyQyAv
KiBGVExKSVRDb2RlLmggaW4gSGVhZGVycyAqLywKQEAgLTg3MjcsNyArODczMSw2IEBACiAJCQkJ
NDM2RTU0NTQxQzQ2OEU3NzAwQjVBRjczIC8qIEIzTGVnYWxpemVNZW1vcnlPZmZzZXRzLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTBGRUM4NTBGMUJEQUNEQUMwMDgwRkY3NCAvKiBCM0NvbnN0NjRW
YWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkVDODUxMTFCREFDREFDMDA4MEZGNzQgLyog
QjNDb25zdERvdWJsZVZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBGRUM4NTEzMUJEQUNE
QUMwMDgwRkY3NCAvKiBCM0NvbnRyb2xWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkVD
ODVDNTFCRTE2RjVBMDA4MEZGNzQgLyogQjNFZmZlY3RzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTBGRUM4NTE1MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0ZyZXF1ZW5jeUNsYXNzLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGRUM4NTE4MUJEQUNEQUMwMDgwRkY3NCAvKiBCM0dlbmVyYXRlLmNwcCBp
biBTb3VyY2VzICovLApAQCAtOTE3Miw2ICs5MTc1LDcgQEAKIAkJCQkxNDdGMzlEMjEwN0VDMzc2
MDA0MjdBNDggLyogSlNHbG9iYWxPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVGRDAw
ODUxODlCMUI3RTAwNjMzMjMxIC8qIEpTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE1QzNBMUE1MThDMDQ5MDIwMEM5NTkzQSAvKiBKU0dsb2JhbE9iamVj
dENvbnNvbGVDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJREM5QTBDMjExRDJEOUNCNDAw
ODUxMjRFIC8qIEIzQ2FzZUNvbGxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTU5NDU1
OTIxODI0NzQ0NzAwQ0MzODQzIC8qIEpTR2xvYmFsT2JqZWN0RGVidWdnYWJsZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBNTdEMjNFOTE4OTFCMDc3MDAzMUM3RkEgLyogSlNHbG9iYWxPYmplY3RE
ZWJ1Z2dlckFnZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0RTlEMTdCMTA3RUM0NjkwMDRE
REEyMSAvKiBKU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJBUk02NC5oCShyZXZpc2lvbiAyMDMzNzEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAkod29ya2luZyBjb3B5KQpAQCAtMjg4Myw2ICsy
ODgzLDEyIEBAIHB1YmxpYzoKICAgICAgICAgbG9hZDY0KGFkZHJlc3MsIGdldENhY2hlZERhdGFU
ZW1wUmVnaXN0ZXJJREFuZEludmFsaWRhdGUoKSk7CiAgICAgICAgIG1fYXNzZW1ibGVyLmJyKGRh
dGFUZW1wUmVnaXN0ZXIpOwogICAgIH0KKyAgICAKKyAgICB2b2lkIGp1bXAoQmFzZUluZGV4IGFk
ZHJlc3MpCisgICAgeworICAgICAgICBsb2FkNjQoYWRkcmVzcywgZ2V0Q2FjaGVkRGF0YVRlbXBS
ZWdpc3RlcklEQW5kSW52YWxpZGF0ZSgpKTsKKyAgICAgICAgbV9hc3NlbWJsZXIuYnIoZGF0YVRl
bXBSZWdpc3Rlcik7CisgICAgfQogCiAgICAgdm9pZCBqdW1wKEFic29sdXRlQWRkcmVzcyBhZGRy
ZXNzKQogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJYODZDb21tb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgJKHJldmlzaW9uIDIwMzM3MSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24u
aAkod29ya2luZyBjb3B5KQpAQCAtMjI2NCw2ICsyMjY0LDEyIEBAIHB1YmxpYzoKICAgICAgICAg
bV9hc3NlbWJsZXIuam1wX20oYWRkcmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFzZSk7CiAgICAgfQog
CisgICAgLy8gQWRkcmVzcyBpcyBhIG1lbW9yeSBsb2NhdGlvbiBjb250YWluaW5nIHRoZSBhZGRy
ZXNzIHRvIGp1bXAgdG8KKyAgICB2b2lkIGp1bXAoQmFzZUluZGV4IGFkZHJlc3MpCisgICAgewor
ICAgICAgICBtX2Fzc2VtYmxlci5qbXBfbShhZGRyZXNzLm9mZnNldCwgYWRkcmVzcy5iYXNlLCBh
ZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKTsKKyAgICB9CisKIAogICAgIC8vIEFyaXRobWV0
aWMgY29udHJvbCBmbG93IG9wZXJhdGlvbnM6CiAgICAgLy8KSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaAkocmV2aXNpb24gMjAzMzcxKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTk4Myw2ICsxOTgzLDExIEBAIHB1YmxpYzoKICAgICAgICAgbV9mb3JtYXR0
ZXIub25lQnl0ZU9wKE9QX0dST1VQNV9FdiwgR1JPVVA1X09QX0pNUE4sIGJhc2UsIG9mZnNldCk7
CiAgICAgfQogICAgIAorICAgIHZvaWQgam1wX20oaW50IG9mZnNldCwgUmVnaXN0ZXJJRCBiYXNl
LCBSZWdpc3RlcklEIGluZGV4LCBpbnQgc2NhbGUpCisgICAgeworICAgICAgICBtX2Zvcm1hdHRl
ci5vbmVCeXRlT3AoT1BfR1JPVVA1X0V2LCBHUk9VUDVfT1BfSk1QTiwgYmFzZSwgaW5kZXgsIHNj
YWxlLCBvZmZzZXQpOworICAgIH0KKyAgICAKICNpZiAhQ1BVKFg4Nl82NCkKICAgICB2b2lkIGpt
cF9tKGNvbnN0IHZvaWQqIGFkZHJlc3MpCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzQmFzaWNCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzQmFzaWNCbG9jay5jcHAJKHJldmlzaW9uIDIwMzM3MSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICsz
MCw2IEBACiAKICNpbmNsdWRlICJCM0Jhc2ljQmxvY2tJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNC
YXNpY0Jsb2NrVXRpbHMuaCIKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUg
IkIzUHJvY2VkdXJlLmgiCiAjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlIDx3
dGYvTGlzdER1bXAuaD4KQEAgLTUyLDEyICs1MSwxNCBAQCBCYXNpY0Jsb2NrOjp+QmFzaWNCbG9j
aygpCiB2b2lkIEJhc2ljQmxvY2s6OmFwcGVuZChWYWx1ZSogdmFsdWUpCiB7CiAgICAgbV92YWx1
ZXMuYXBwZW5kKHZhbHVlKTsKKyAgICB2YWx1ZS0+b3duZXIgPSB0aGlzOwogfQogCiB2b2lkIEJh
c2ljQmxvY2s6OmFwcGVuZE5vblRlcm1pbmFsKFZhbHVlKiB2YWx1ZSkKIHsKICAgICBtX3ZhbHVl
cy5hcHBlbmQobV92YWx1ZXMubGFzdCgpKTsKICAgICBtX3ZhbHVlc1ttX3ZhbHVlcy5zaXplKCkg
LSAxXSA9IHZhbHVlOworICAgIHZhbHVlLT5vd25lciA9IHRoaXM7CiB9CiAKIHZvaWQgQmFzaWNC
bG9jazo6cmVtb3ZlTGFzdChQcm9jZWR1cmUmIHByb2MpCkBAIC04NCw5ICs4NSw0MSBAQCBWYWx1
ZSogQmFzaWNCbG9jazo6YXBwZW5kSW50Q29uc3RhbnQoUHJvCiAgICAgcmV0dXJuIGFwcGVuZElu
dENvbnN0YW50KHByb2MsIGxpa2VWYWx1ZS0+b3JpZ2luKCksIGxpa2VWYWx1ZS0+dHlwZSgpLCB2
YWx1ZSk7CiB9CiAKK3ZvaWQgQmFzaWNCbG9jazo6Y2xlYXJTdWNjZXNzb3JzKCkKK3sKKyAgICBt
X3N1Y2Nlc3NvcnMuY2xlYXIoKTsKK30KKwordm9pZCBCYXNpY0Jsb2NrOjphcHBlbmRTdWNjZXNz
b3IoY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YXJnZXQpCit7CisgICAgbV9zdWNjZXNzb3JzLmFw
cGVuZCh0YXJnZXQpOworfQorCit2b2lkIEJhc2ljQmxvY2s6OnNldFN1Y2Nlc3NvcnMoY29uc3Qg
RnJlcXVlbnRlZEJsb2NrJiB0YXJnZXQpCit7CisgICAgbV9zdWNjZXNzb3JzLnJlc2l6ZSgxKTsK
KyAgICBtX3N1Y2Nlc3NvcnNbMF0gPSB0YXJnZXQ7Cit9CisKK3ZvaWQgQmFzaWNCbG9jazo6c2V0
U3VjY2Vzc29ycyhjb25zdCBGcmVxdWVudGVkQmxvY2smIHRha2VuLCBjb25zdCBGcmVxdWVudGVk
QmxvY2smIG5vdFRha2VuKQoreworICAgIG1fc3VjY2Vzc29ycy5yZXNpemUoMik7CisgICAgbV9z
dWNjZXNzb3JzWzBdID0gdGFrZW47CisgICAgbV9zdWNjZXNzb3JzWzFdID0gbm90VGFrZW47Cit9
CisKIGJvb2wgQmFzaWNCbG9jazo6cmVwbGFjZVN1Y2Nlc3NvcihCYXNpY0Jsb2NrKiBmcm9tLCBC
YXNpY0Jsb2NrKiB0bykKIHsKLSAgICByZXR1cm4gbGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCkt
PnJlcGxhY2VTdWNjZXNzb3IoZnJvbSwgdG8pOworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7Cisg
ICAgZm9yIChCYXNpY0Jsb2NrKiYgc3VjY2Vzc29yIDogc3VjY2Vzc29yQmxvY2tzKCkpIHsKKyAg
ICAgICAgaWYgKHN1Y2Nlc3NvciA9PSBmcm9tKSB7CisgICAgICAgICAgICBzdWNjZXNzb3IgPSB0
bzsKKyAgICAgICAgICAgIHJlc3VsdCA9IHRydWU7CisgICAgICAgICAgICAKKyAgICAgICAgICAg
IC8vIEtlZXAgbG9vcGluZyBiZWNhdXNlIGEgc3VjY2Vzc29yIG1heSBiZSBtZW50aW9uZWQgbXVs
dGlwbGUgdGltZXMsIGxpa2UgaW4gYSBTd2l0Y2guCisgICAgICAgIH0KKyAgICB9CisgICAgcmV0
dXJuIHJlc3VsdDsKIH0KIAogYm9vbCBCYXNpY0Jsb2NrOjphZGRQcmVkZWNlc3NvcihCYXNpY0Js
b2NrKiBibG9jaykKQEAgLTEyMSw2ICsxNTQsNDIgQEAgdm9pZCBCYXNpY0Jsb2NrOjpkZWVwRHVt
cChjb25zdCBQcm9jZWR1cgogICAgICAgICBvdXQucHJpbnQoIiAgUHJlZGVjZXNzb3JzOiAiLCBw
b2ludGVyTGlzdER1bXAocHJlZGVjZXNzb3JzKCkpLCAiXG4iKTsKICAgICBmb3IgKFZhbHVlKiB2
YWx1ZSA6ICp0aGlzKQogICAgICAgICBvdXQucHJpbnQoIiAgICAiLCBCMzo6ZGVlcER1bXAocHJv
YywgdmFsdWUpLCAiXG4iKTsKKyAgICBpZiAoIXN1Y2Nlc3NvcnMoKS5pc0VtcHR5KCkpIHsKKyAg
ICAgICAgb3V0LnByaW50KCIgIFN1Y2Nlc3NvcnM6ICIpOworICAgICAgICBpZiAoc2l6ZSgpKQor
ICAgICAgICAgICAgbGFzdCgpLT5kdW1wU3VjY2Vzc29ycyh0aGlzLCBvdXQpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBvdXQucHJpbnQobGlzdER1bXAoc3VjY2Vzc29ycygpKSk7CisgICAg
ICAgIG91dC5wcmludCgiXG4iKTsKKyAgICB9Cit9CisKK1ZhbHVlKiBCYXNpY0Jsb2NrOjphcHBl
bmROZXdDb250cm9sVmFsdWUoUHJvY2VkdXJlJiBwcm9jLCBPcGNvZGUgb3Bjb2RlLCBPcmlnaW4g
b3JpZ2luKQoreworICAgIFJFTEVBU0VfQVNTRVJUKG9wY29kZSA9PSBPb3BzKTsKKyAgICBjbGVh
clN1Y2Nlc3NvcnMoKTsKKyAgICByZXR1cm4gYXBwZW5kTmV3PFZhbHVlPihwcm9jLCBvcGNvZGUs
IG9yaWdpbik7Cit9CisKK1ZhbHVlKiBCYXNpY0Jsb2NrOjphcHBlbmROZXdDb250cm9sVmFsdWUo
UHJvY2VkdXJlJiBwcm9jLCBPcGNvZGUgb3Bjb2RlLCBPcmlnaW4gb3JpZ2luLCBWYWx1ZSogdmFs
dWUpCit7CisgICAgUkVMRUFTRV9BU1NFUlQob3Bjb2RlID09IFJldHVybik7CisgICAgY2xlYXJT
dWNjZXNzb3JzKCk7CisgICAgcmV0dXJuIGFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgb3Bjb2RlLCBv
cmlnaW4sIHZhbHVlKTsKK30KKworVmFsdWUqIEJhc2ljQmxvY2s6OmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShQcm9jZWR1cmUmIHByb2MsIE9wY29kZSBvcGNvZGUsIE9yaWdpbiBvcmlnaW4sIGNvbnN0
IEZyZXF1ZW50ZWRCbG9jayYgdGFyZ2V0KQoreworICAgIFJFTEVBU0VfQVNTRVJUKG9wY29kZSA9
PSBKdW1wKTsKKyAgICBzZXRTdWNjZXNzb3JzKHRhcmdldCk7CisgICAgcmV0dXJuIGFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgb3Bjb2RlLCBvcmlnaW4pOworfQorCitWYWx1ZSogQmFzaWNCbG9jazo6
YXBwZW5kTmV3Q29udHJvbFZhbHVlKFByb2NlZHVyZSYgcHJvYywgT3Bjb2RlIG9wY29kZSwgT3Jp
Z2luIG9yaWdpbiwgVmFsdWUqIHByZWRpY2F0ZSwgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YWtl
biwgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBub3RUYWtlbikKK3sKKyAgICBSRUxFQVNFX0FTU0VS
VChvcGNvZGUgPT0gQnJhbmNoKTsKKyAgICBzZXRTdWNjZXNzb3JzKHRha2VuLCBub3RUYWtlbik7
CisgICAgcmV0dXJuIGFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgb3Bjb2RlLCBvcmlnaW4sIHByZWRp
Y2F0ZSk7CiB9CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2suaAkocmV2aXNpb24gMjAzMzcxKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsy
OSw3IEBACiAjaWYgRU5BQkxFKEIzX0pJVCkKIAogI2luY2x1ZGUgIkIzRnJlcXVlbnRlZEJsb2Nr
LmgiCisjaW5jbHVkZSAiQjNPcGNvZGUuaCIKICNpbmNsdWRlICJCM09yaWdpbi5oIgogI2luY2x1
ZGUgIkIzU3VjY2Vzc29yQ29sbGVjdGlvbi5oIgogI2luY2x1ZGUgIkIzVHlwZS5oIgpAQCAtNDcs
NyArNDgsNyBAQCBjbGFzcyBCYXNpY0Jsb2NrIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIFZlY3Rv
cjxWYWx1ZSo+IFZhbHVlTGlzdDsKICAgICB0eXBlZGVmIFZlY3RvcjxCYXNpY0Jsb2NrKiwgMj4g
UHJlZGVjZXNzb3JMaXN0OwotICAgIHR5cGVkZWYgVmVjdG9yPEZyZXF1ZW50ZWRCbG9jaywgMj4g
U3VjY2Vzc29yTGlzdDsgLy8gVGhpcyBtYXRjaGVzIENvbnRyb2xWYWx1ZTo6U3VjY2Vzc29yTGlz
dAorICAgIHR5cGVkZWYgVmVjdG9yPEZyZXF1ZW50ZWRCbG9jaywgMj4gU3VjY2Vzc29yTGlzdDsK
IAogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBkdW1wUHJlZml4OwogCkBAIC04NywxOCAr
ODgsMzkgQEAgcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlVHlwZSwgdHlwZW5h
bWUuLi4gQXJndW1lbnRzPgogICAgIFZhbHVlVHlwZSogcmVwbGFjZUxhc3RXaXRoTmV3KFByb2Nl
ZHVyZSYsIEFyZ3VtZW50cy4uLik7CiAKLSAgICB1bnNpZ25lZCBudW1TdWNjZXNzb3JzKCkgY29u
c3Q7Ci0gICAgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBzdWNjZXNzb3IodW5zaWduZWQgaW5kZXgp
IGNvbnN0OwotICAgIEZyZXF1ZW50ZWRCbG9jayYgc3VjY2Vzc29yKHVuc2lnbmVkIGluZGV4KTsK
LSAgICBjb25zdCBTdWNjZXNzb3JMaXN0JiBzdWNjZXNzb3JzKCkgY29uc3Q7Ci0gICAgU3VjY2Vz
c29yTGlzdCYgc3VjY2Vzc29ycygpOwotCi0gICAgQmFzaWNCbG9jayogc3VjY2Vzc29yQmxvY2so
dW5zaWduZWQgaW5kZXgpIGNvbnN0OwotICAgIEJhc2ljQmxvY2sqJiBzdWNjZXNzb3JCbG9jayh1
bnNpZ25lZCBpbmRleCk7Ci0gICAgU3VjY2Vzc29yQ29sbGVjdGlvbjxCYXNpY0Jsb2NrLCBTdWNj
ZXNzb3JMaXN0PiBzdWNjZXNzb3JCbG9ja3MoKTsKLSAgICBTdWNjZXNzb3JDb2xsZWN0aW9uPGNv
bnN0IEJhc2ljQmxvY2ssIGNvbnN0IFN1Y2Nlc3Nvckxpc3Q+IHN1Y2Nlc3NvckJsb2NrcygpIGNv
bnN0OworICAgIHVuc2lnbmVkIG51bVN1Y2Nlc3NvcnMoKSBjb25zdCB7IHJldHVybiBtX3N1Y2Nl
c3NvcnMuc2l6ZSgpOyB9CisgICAgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBzdWNjZXNzb3IodW5z
aWduZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fc3VjY2Vzc29yc1tpbmRleF07IH0KKyAgICBG
cmVxdWVudGVkQmxvY2smIHN1Y2Nlc3Nvcih1bnNpZ25lZCBpbmRleCkgeyByZXR1cm4gbV9zdWNj
ZXNzb3JzW2luZGV4XTsgfQorICAgIGNvbnN0IFN1Y2Nlc3Nvckxpc3QmIHN1Y2Nlc3NvcnMoKSBj
b25zdCB7IHJldHVybiBtX3N1Y2Nlc3NvcnM7IH0KKyAgICBTdWNjZXNzb3JMaXN0JiBzdWNjZXNz
b3JzKCkgeyByZXR1cm4gbV9zdWNjZXNzb3JzOyB9CisgICAgCisgICAgdm9pZCBjbGVhclN1Y2Nl
c3NvcnMoKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIGFwcGVuZFN1Y2Nlc3Nvcihjb25z
dCBGcmVxdWVudGVkQmxvY2smKTsKKyAgICB2b2lkIHNldFN1Y2Nlc3NvcnMoY29uc3QgRnJlcXVl
bnRlZEJsb2NrJik7CisgICAgdm9pZCBzZXRTdWNjZXNzb3JzKGNvbnN0IEZyZXF1ZW50ZWRCbG9j
ayYsIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYpOworCisgICAgQmFzaWNCbG9jayogc3VjY2Vzc29y
QmxvY2sodW5zaWduZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIHN1Y2Nlc3NvcihpbmRleCkuYmxv
Y2soKTsgfQorICAgIEJhc2ljQmxvY2sqJiBzdWNjZXNzb3JCbG9jayh1bnNpZ25lZCBpbmRleCkg
eyByZXR1cm4gc3VjY2Vzc29yKGluZGV4KS5ibG9jaygpOyB9CisgICAgU3VjY2Vzc29yQ29sbGVj
dGlvbjxCYXNpY0Jsb2NrLCBTdWNjZXNzb3JMaXN0PiBzdWNjZXNzb3JCbG9ja3MoKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIFN1Y2Nlc3NvckNvbGxlY3Rpb248QmFzaWNCbG9jaywgU3VjY2Vzc29y
TGlzdD4oc3VjY2Vzc29ycygpKTsKKyAgICB9CisgICAgU3VjY2Vzc29yQ29sbGVjdGlvbjxjb25z
dCBCYXNpY0Jsb2NrLCBjb25zdCBTdWNjZXNzb3JMaXN0PiBzdWNjZXNzb3JCbG9ja3MoKSBjb25z
dAorICAgIHsKKyAgICAgICAgcmV0dXJuIFN1Y2Nlc3NvckNvbGxlY3Rpb248Y29uc3QgQmFzaWNC
bG9jaywgY29uc3QgU3VjY2Vzc29yTGlzdD4oc3VjY2Vzc29ycygpKTsKKyAgICB9CiAKICAgICBi
b29sIHJlcGxhY2VTdWNjZXNzb3IoQmFzaWNCbG9jayogZnJvbSwgQmFzaWNCbG9jayogdG8pOwor
ICAgIAorICAgIC8vIFRoaXMgaXMgb25seSB2YWxpZCBmb3IgSnVtcCBhbmQgQnJhbmNoLgorICAg
IGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgdGFrZW4oKSBjb25zdDsKKyAgICBGcmVxdWVudGVkQmxv
Y2smIHRha2VuKCk7CisgICAgLy8gVGhpcyBpcyBvbmx5IHZhbGlkIGZvciBCcmFuY2guCisgICAg
Y29uc3QgRnJlcXVlbnRlZEJsb2NrJiBub3RUYWtlbigpIGNvbnN0OworICAgIEZyZXF1ZW50ZWRC
bG9jayYgbm90VGFrZW4oKTsKKyAgICAvLyBUaGlzIGlzIG9ubHkgdmFsaWQgZm9yIEJyYW5jaCBh
bmQgU3dpdGNoLgorICAgIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgZmFsbFRocm91Z2goKSBjb25z
dDsKKyAgICBGcmVxdWVudGVkQmxvY2smIGZhbGxUaHJvdWdoKCk7CiAKICAgICB1bnNpZ25lZCBu
dW1QcmVkZWNlc3NvcnMoKSBjb25zdCB7IHJldHVybiBtX3ByZWRlY2Vzc29ycy5zaXplKCk7IH0K
ICAgICBCYXNpY0Jsb2NrKiBwcmVkZWNlc3Nvcih1bnNpZ25lZCBpbmRleCkgY29uc3QgeyByZXR1
cm4gbV9wcmVkZWNlc3NvcnNbaW5kZXhdOyB9CkBAIC0xMTksNiArMTQxLDE5IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKICAgICB2b2lkIGRlZXBEdW1wKGNv
bnN0IFByb2NlZHVyZSYsIFByaW50U3RyZWFtJikgY29uc3Q7CiAKKyAgICAvLyBUaGVzZSBhcmUg
ZGVwcmVjYXRlZCBtZXRob2QgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCB0aGUgb2xkIENvbnRyb2xW
YWx1ZSBjbGFzcy4gRG9uJ3QgdXNlIHRoZW0KKyAgICAvLyBpbiBuZXcgY29kZS4KKyAgICAvLyBG
SVhNRTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1OTQ0MAorICAg
IAorICAgIC8vIFVzZSB0aGlzIGZvciBPb3BzLgorICAgIEpTX0VYUE9SVF9QUklWQVRFIFZhbHVl
KiBhcHBlbmROZXdDb250cm9sVmFsdWUoUHJvY2VkdXJlJiwgT3Bjb2RlLCBPcmlnaW4pOworICAg
IC8vIFVzZSB0aGlzIGZvciBSZXR1cm4uCisgICAgSlNfRVhQT1JUX1BSSVZBVEUgVmFsdWUqIGFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShQcm9jZWR1cmUmLCBPcGNvZGUsIE9yaWdpbiwgVmFsdWUqKTsK
KyAgICAvLyBVc2UgdGhpcyBmb3IgSnVtcC4KKyAgICBKU19FWFBPUlRfUFJJVkFURSBWYWx1ZSog
YXBwZW5kTmV3Q29udHJvbFZhbHVlKFByb2NlZHVyZSYsIE9wY29kZSwgT3JpZ2luLCBjb25zdCBG
cmVxdWVudGVkQmxvY2smKTsKKyAgICAvLyBVc2UgdGhpcyBmb3IgQnJhbmNoLgorICAgIEpTX0VY
UE9SVF9QUklWQVRFIFZhbHVlKiBhcHBlbmROZXdDb250cm9sVmFsdWUoUHJvY2VkdXJlJiwgT3Bj
b2RlLCBPcmlnaW4sIFZhbHVlKiwgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiwgY29uc3QgRnJlcXVl
bnRlZEJsb2NrJik7CisgICAgCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBCbG9ja0luc2Vy
dGlvblNldDsKICAgICBmcmllbmQgY2xhc3MgSW5zZXJ0aW9uU2V0OwpAQCAtMTMwLDYgKzE2NSw3
IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9pbmRleDsKICAgICBWYWx1ZUxpc3QgbV92YWx1
ZXM7CiAgICAgUHJlZGVjZXNzb3JMaXN0IG1fcHJlZGVjZXNzb3JzOworICAgIFN1Y2Nlc3Nvckxp
c3QgbV9zdWNjZXNzb3JzOwogICAgIGRvdWJsZSBtX2ZyZXF1ZW5jeTsKIH07CiAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jhc2ljQmxvY2tJbmxpbmVzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9ja0lubGluZXMuaAkocmV2aXNp
b24gMjAzMzcxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQmFzaWNCbG9ja0lubGlu
ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjksOCArMjksOCBAQAogI2lmIEVOQUJMRShCM19KSVQp
CiAKICNpbmNsdWRlICJCM0Jhc2ljQmxvY2suaCIKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5o
IgogI2luY2x1ZGUgIkIzUHJvY2VkdXJlSW5saW5lcy5oIgorI2luY2x1ZGUgIkIzVmFsdWUuaCIK
IAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKQEAgLTU4LDQ5ICs1OCw0MCBAQCBW
YWx1ZVR5cGUqIEJhc2ljQmxvY2s6OnJlcGxhY2VMYXN0V2l0aE5lCiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIAotaW5saW5lIHVuc2lnbmVkIEJhc2ljQmxvY2s6Om51bVN1Y2Nlc3NvcnMoKSBjb25z
dAoraW5saW5lIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgQmFzaWNCbG9jazo6dGFrZW4oKSBjb25z
dAogewotICAgIHJldHVybiBsYXN0KCktPmFzPENvbnRyb2xWYWx1ZT4oKS0+bnVtU3VjY2Vzc29y
cygpOworICAgIEFTU0VSVChsYXN0KCktPm9wY29kZSgpID09IEp1bXAgfHwgbGFzdCgpLT5vcGNv
ZGUoKSA9PSBCcmFuY2gpOworICAgIHJldHVybiBtX3N1Y2Nlc3NvcnNbMF07CiB9CiAKLWlubGlu
ZSBjb25zdCBGcmVxdWVudGVkQmxvY2smIEJhc2ljQmxvY2s6OnN1Y2Nlc3Nvcih1bnNpZ25lZCBp
bmRleCkgY29uc3QKK2lubGluZSBGcmVxdWVudGVkQmxvY2smIEJhc2ljQmxvY2s6OnRha2VuKCkK
IHsKLSAgICByZXR1cm4gbGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCktPnN1Y2Nlc3NvcihpbmRl
eCk7CisgICAgQVNTRVJUKGxhc3QoKS0+b3Bjb2RlKCkgPT0gSnVtcCB8fCBsYXN0KCktPm9wY29k
ZSgpID09IEJyYW5jaCk7CisgICAgcmV0dXJuIG1fc3VjY2Vzc29yc1swXTsKIH0KIAotaW5saW5l
IEZyZXF1ZW50ZWRCbG9jayYgQmFzaWNCbG9jazo6c3VjY2Vzc29yKHVuc2lnbmVkIGluZGV4KQor
aW5saW5lIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgQmFzaWNCbG9jazo6bm90VGFrZW4oKSBjb25z
dAogewotICAgIHJldHVybiBsYXN0KCktPmFzPENvbnRyb2xWYWx1ZT4oKS0+c3VjY2Vzc29yKGlu
ZGV4KTsKKyAgICBBU1NFUlQobGFzdCgpLT5vcGNvZGUoKSA9PSBCcmFuY2gpOworICAgIHJldHVy
biBtX3N1Y2Nlc3NvcnNbMV07CiB9CiAKLWlubGluZSBjb25zdCBCYXNpY0Jsb2NrOjpTdWNjZXNz
b3JMaXN0JiBCYXNpY0Jsb2NrOjpzdWNjZXNzb3JzKCkgY29uc3QKK2lubGluZSBGcmVxdWVudGVk
QmxvY2smIEJhc2ljQmxvY2s6Om5vdFRha2VuKCkKIHsKLSAgICByZXR1cm4gbGFzdCgpLT5hczxD
b250cm9sVmFsdWU+KCktPnN1Y2Nlc3NvcnMoKTsKKyAgICBBU1NFUlQobGFzdCgpLT5vcGNvZGUo
KSA9PSBCcmFuY2gpOworICAgIHJldHVybiBtX3N1Y2Nlc3NvcnNbMV07CiB9CiAKLWlubGluZSBC
YXNpY0Jsb2NrOjpTdWNjZXNzb3JMaXN0JiBCYXNpY0Jsb2NrOjpzdWNjZXNzb3JzKCkKK2lubGlu
ZSBjb25zdCBGcmVxdWVudGVkQmxvY2smIEJhc2ljQmxvY2s6OmZhbGxUaHJvdWdoKCkgY29uc3QK
IHsKLSAgICByZXR1cm4gbGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCktPnN1Y2Nlc3NvcnMoKTsK
KyAgICBBU1NFUlQobGFzdCgpLT5vcGNvZGUoKSA9PSBCcmFuY2ggfHwgbGFzdCgpLT5vcGNvZGUo
KSA9PSBTd2l0Y2gpOworICAgIHJldHVybiBtX3N1Y2Nlc3NvcnMubGFzdCgpOwogfQogCi1pbmxp
bmUgQmFzaWNCbG9jayogQmFzaWNCbG9jazo6c3VjY2Vzc29yQmxvY2sodW5zaWduZWQgaW5kZXgp
IGNvbnN0CitpbmxpbmUgRnJlcXVlbnRlZEJsb2NrJiBCYXNpY0Jsb2NrOjpmYWxsVGhyb3VnaCgp
CiB7Ci0gICAgcmV0dXJuIHN1Y2Nlc3NvcihpbmRleCkuYmxvY2soKTsKLX0KLQotaW5saW5lIEJh
c2ljQmxvY2sqJiBCYXNpY0Jsb2NrOjpzdWNjZXNzb3JCbG9jayh1bnNpZ25lZCBpbmRleCkKLXsK
LSAgICByZXR1cm4gc3VjY2Vzc29yKGluZGV4KS5ibG9jaygpOwotfQotCi1pbmxpbmUgU3VjY2Vz
c29yQ29sbGVjdGlvbjxCYXNpY0Jsb2NrLCBCYXNpY0Jsb2NrOjpTdWNjZXNzb3JMaXN0PiBCYXNp
Y0Jsb2NrOjpzdWNjZXNzb3JCbG9ja3MoKQotewotICAgIHJldHVybiBTdWNjZXNzb3JDb2xsZWN0
aW9uPEJhc2ljQmxvY2ssIFN1Y2Nlc3Nvckxpc3Q+KHN1Y2Nlc3NvcnMoKSk7Ci19Ci0KLWlubGlu
ZSBTdWNjZXNzb3JDb2xsZWN0aW9uPGNvbnN0IEJhc2ljQmxvY2ssIGNvbnN0IEJhc2ljQmxvY2s6
OlN1Y2Nlc3Nvckxpc3Q+IEJhc2ljQmxvY2s6OnN1Y2Nlc3NvckJsb2NrcygpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIFN1Y2Nlc3NvckNvbGxlY3Rpb248Y29uc3QgQmFzaWNCbG9jaywgY29uc3QgU3Vj
Y2Vzc29yTGlzdD4oc3VjY2Vzc29ycygpKTsKKyAgICBBU1NFUlQobGFzdCgpLT5vcGNvZGUoKSA9
PSBCcmFuY2ggfHwgbGFzdCgpLT5vcGNvZGUoKSA9PSBTd2l0Y2gpOworICAgIHJldHVybiBtX3N1
Y2Nlc3NvcnMubGFzdCgpOwogfQogCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jsb2NrSW5zZXJ0aW9uU2V0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCbG9ja0luc2VydGlvblNldC5jcHAJKHJl
dmlzaW9uIDIwMzM3MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Jsb2NrSW5zZXJ0
aW9uU2V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzgsOCArNzgsOCBAQCBCYXNpY0Jsb2NrKiBC
bG9ja0luc2VydGlvblNldDo6c3BsaXRGb3J3CiAgICAgICAgIHJlc3VsdC0+bV92YWx1ZXNbaV0g
PSBibG9jay0+bV92YWx1ZXNbaV07CiAKICAgICAvLyBNYWtlIHRoZSBuZXcgYmxvY2sganVtcCB0
byAnYmxvY2snLgotICAgIHJlc3VsdC0+bV92YWx1ZXNbdmFsdWVJbmRleF0gPQotICAgICAgICBt
X3Byb2MuYWRkPENvbnRyb2xWYWx1ZT4oSnVtcCwgdmFsdWUtPm9yaWdpbigpLCBGcmVxdWVudGVk
QmxvY2soYmxvY2spKTsKKyAgICByZXN1bHQtPm1fdmFsdWVzW3ZhbHVlSW5kZXhdID0gbV9wcm9j
LmFkZDxWYWx1ZT4oSnVtcCwgdmFsdWUtPm9yaWdpbigpKTsKKyAgICByZXN1bHQtPnNldFN1Y2Nl
c3NvcnMoRnJlcXVlbnRlZEJsb2NrKGJsb2NrKSk7CiAKICAgICAvLyBJZiB3ZSBoYWQgaW5zZXJ0
ZWQgdGhpbmdzIGludG8gJ2Jsb2NrJyBiZWZvcmUgdGhpcywgZXhlY3V0ZSB0aG9zZSBpbnNlcnRp
b25zIG5vdy4KICAgICBpZiAoaW5zZXJ0aW9uU2V0KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL0IzQnJlYWtDcml0aWNhbEVkZ2VzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNCcmVha0NyaXRpY2FsRWRnZXMuY3BwCShyZXZpc2lvbiAyMDMzNzEp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNCcmVha0NyaXRpY2FsRWRnZXMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw2IEBACiAKICNpbmNsdWRlICJCM0Jhc2ljQmxvY2tJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiQjNCbG9ja0luc2VydGlvblNldC5oIgotI2luY2x1ZGUgIkIz
Q29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNQcm9jZWR1cmVJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiQjNWYWx1ZUlubGluZXMuaCIKIApAQCAtNTAsOCArNDksOCBAQCB2b2lkIGJyZWFrQ3JpdGlj
YWxFZGdlcyhQcm9jZWR1cmUmIHByb2MpCiAKICAgICAgICAgICAgIEJhc2ljQmxvY2sqIHBhZCA9
CiAgICAgICAgICAgICAgICAgaW5zZXJ0aW9uU2V0Lmluc2VydEJlZm9yZShzdWNjZXNzb3IsIHN1
Y2Nlc3Nvci0+ZnJlcXVlbmN5KCkpOwotICAgICAgICAgICAgcGFkLT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKLSAgICAgICAgICAgICAgICBwcm9jLCBKdW1wLCBzdWNjZXNzb3ItPmF0KDApLT5v
cmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHN1Y2Nlc3NvcikpOworICAgICAgICAgICAgcGFkLT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEp1bXAsIHN1Y2Nlc3Nvci0+YXQoMCktPm9yaWdpbigpKTsK
KyAgICAgICAgICAgIHBhZC0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2soc3VjY2Vzc29y
KSk7CiAgICAgICAgICAgICBwYWQtPmFkZFByZWRlY2Vzc29yKGJsb2NrKTsKICAgICAgICAgICAg
IHN1Y2Nlc3Nvci0+cmVwbGFjZVByZWRlY2Vzc29yKGJsb2NrLCBwYWQpOwogICAgICAgICAgICAg
c3VjY2Vzc29yID0gcGFkOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzQ2FzZUNv
bGxlY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nh
c2VDb2xsZWN0aW9uLmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNDYXNlQ29sbGVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0OCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiQjNDYXNlQ29sbGVjdGlvbi5oIgorCisjaWYgRU5BQkxFKEIz
X0pJVCkKKworI2luY2x1ZGUgIkIzQmFzaWNCbG9ja0lubGluZXMuaCIKKyNpbmNsdWRlICJCM0Nh
c2VDb2xsZWN0aW9uSW5saW5lcy5oIgorI2luY2x1ZGUgPHd0Zi9Db21tYVByaW50ZXIuaD4KKwor
bmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CisKK3ZvaWQgQ2FzZUNvbGxlY3Rpb246OmR1
bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKK3sKKyAgICBDb21tYVByaW50ZXIgY29tbWE7Cisg
ICAgZm9yIChTd2l0Y2hDYXNlIHN3aXRjaENhc2UgOiAqdGhpcykKKyAgICAgICAgb3V0LnByaW50
KGNvbW1hLCBzd2l0Y2hDYXNlKTsKKyAgICBvdXQucHJpbnQoY29tbWEsICJkZWZhdWx0LT4iLCBm
YWxsVGhyb3VnaCgpKTsKK30KKworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzCisKKyNlbmRpZiAv
LyBFTkFCTEUoQjNfSklUKQorCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDYXNl
Q29sbGVjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nh
c2VDb2xsZWN0aW9uLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzQ2FzZUNvbGxlY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEyMCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEIzQ2Fz
ZUNvbGxlY3Rpb25faAorI2RlZmluZSBCM0Nhc2VDb2xsZWN0aW9uX2gKKworI2lmIEVOQUJMRShC
M19KSVQpCisKKyNpbmNsdWRlICJCM1N3aXRjaENhc2UuaCIKKworbmFtZXNwYWNlIEpTQyB7IG5h
bWVzcGFjZSBCMyB7CisKK2NsYXNzIEJhc2ljQmxvY2s7CitjbGFzcyBTd2l0Y2hWYWx1ZTsKKwor
Ly8gTk9URTogWW91J2xsIGFsd2F5cyB3YW50IHRvIGluY2x1ZGUgQjNDYXNlQ29sbGVjdGlvbklu
bGluZXMuaCB3aGVuIHlvdSB1c2UgdGhpcy4KKworY2xhc3MgQ2FzZUNvbGxlY3Rpb24geworcHVi
bGljOgorICAgIENhc2VDb2xsZWN0aW9uKCkKKyAgICB7CisgICAgfQorICAgIAorICAgIENhc2VD
b2xsZWN0aW9uKGNvbnN0IFN3aXRjaFZhbHVlKiB0ZXJtaW5hbCwgY29uc3QgQmFzaWNCbG9jayog
b3duZXIpCisgICAgICAgIDogbV9zd2l0Y2godGVybWluYWwpCisgICAgICAgICwgbV9vd25lcihv
d25lcikKKyAgICB7CisgICAgfQorICAgIAorICAgIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgZmFs
bFRocm91Z2goKSBjb25zdDsKKworICAgIHVuc2lnbmVkIHNpemUoKSBjb25zdDsKKyAgICBTd2l0
Y2hDYXNlIGF0KHVuc2lnbmVkIGluZGV4KSBjb25zdDsKKyAgICAKKyAgICBTd2l0Y2hDYXNlIG9w
ZXJhdG9yW10odW5zaWduZWQgaW5kZXgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gYXQo
aW5kZXgpOworICAgIH0KKworICAgIGNsYXNzIGl0ZXJhdG9yIHsKKyAgICBwdWJsaWM6CisgICAg
ICAgIGl0ZXJhdG9yKCkKKyAgICAgICAgICAgIDogbV9jb2xsZWN0aW9uKG51bGxwdHIpCisgICAg
ICAgICAgICAsIG1faW5kZXgoMCkKKyAgICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgaXRl
cmF0b3IoY29uc3QgQ2FzZUNvbGxlY3Rpb24mIGNvbGxlY3Rpb24sIHVuc2lnbmVkIGluZGV4KQor
ICAgICAgICAgICAgOiBtX2NvbGxlY3Rpb24oJmNvbGxlY3Rpb24pCisgICAgICAgICAgICAsIG1f
aW5kZXgoaW5kZXgpCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIFN3aXRjaENhc2Ug
b3BlcmF0b3IqKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1fY29sbGVjdGlvbi0+
YXQobV9pbmRleCk7CisgICAgICAgIH0KKworICAgICAgICBpdGVyYXRvciYgb3BlcmF0b3IrKygp
CisgICAgICAgIHsKKyAgICAgICAgICAgIG1faW5kZXgrKzsKKyAgICAgICAgICAgIHJldHVybiAq
dGhpczsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBpdGVyYXRv
ciYgb3RoZXIpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VSVChtX2NvbGxlY3Rp
b24gPT0gb3RoZXIubV9jb2xsZWN0aW9uKTsKKyAgICAgICAgICAgIHJldHVybiBtX2luZGV4ID09
IG90aGVyLm1faW5kZXg7CisgICAgICAgIH0KKworICAgICAgICBib29sIG9wZXJhdG9yIT0oY29u
c3QgaXRlcmF0b3ImIG90aGVyKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4g
ISgqdGhpcyA9PSBvdGhlcik7CisgICAgICAgIH0KKworICAgIHByaXZhdGU6CisgICAgICAgIGNv
bnN0IENhc2VDb2xsZWN0aW9uKiBtX2NvbGxlY3Rpb247CisgICAgICAgIHVuc2lnbmVkIG1faW5k
ZXg7CisgICAgfTsKKworICAgIHR5cGVkZWYgaXRlcmF0b3IgY29uc3RfaXRlcmF0b3I7CisKKyAg
ICBpdGVyYXRvciBiZWdpbigpIGNvbnN0IHsgcmV0dXJuIGl0ZXJhdG9yKCp0aGlzLCAwKTsgfQor
ICAgIGl0ZXJhdG9yIGVuZCgpIGNvbnN0IHsgcmV0dXJuIGl0ZXJhdG9yKCp0aGlzLCBzaXplKCkp
OyB9CisgICAgCisgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CisgICAgCitwcml2
YXRlOgorICAgIGNvbnN0IFN3aXRjaFZhbHVlKiBtX3N3aXRjaCB7IG51bGxwdHIgfTsKKyAgICBj
b25zdCBCYXNpY0Jsb2NrKiBtX293bmVyIHsgbnVsbHB0ciB9OworfTsKKworfSB9IC8vIG5hbWVz
cGFjZSBKU0M6OkIzCisKKyNlbmRpZiAvLyBFTkFCTEUoQjNfSklUKQorCisjZW5kaWYgLy8gQjND
YXNlQ29sbGVjdGlvbl9oCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0Nhc2VD
b2xsZWN0aW9uSW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9CM0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworI2lmbmRlZiBCM0Nhc2VDb2xsZWN0aW9uSW5saW5lc19oCisjZGVmaW5lIEIzQ2FzZUNv
bGxlY3Rpb25JbmxpbmVzX2gKKworI2lmIEVOQUJMRShCM19KSVQpCisKKyNpbmNsdWRlICJCM0Nh
c2VDb2xsZWN0aW9uLmgiCisjaW5jbHVkZSAiQjNTd2l0Y2hWYWx1ZS5oIgorI2luY2x1ZGUgIkIz
QmFzaWNCbG9jay5oIgorCituYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKKworaW5saW5l
IGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgQ2FzZUNvbGxlY3Rpb246OmZhbGxUaHJvdWdoKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9vd25lci0+ZmFsbFRocm91Z2goKTsKK30KKworaW5saW5lIHVu
c2lnbmVkIENhc2VDb2xsZWN0aW9uOjpzaXplKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zd2l0
Y2gtPm51bUNhc2VWYWx1ZXMoKTsKK30KKworaW5saW5lIFN3aXRjaENhc2UgQ2FzZUNvbGxlY3Rp
b246OmF0KHVuc2lnbmVkIGluZGV4KSBjb25zdAoreworICAgIHJldHVybiBTd2l0Y2hDYXNlKG1f
c3dpdGNoLT5jYXNlVmFsdWUoaW5kZXgpLCBtX293bmVyLT5zdWNjZXNzb3IoaW5kZXgpKTsKK30K
KworfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkIzCisKKyNlbmRpZiAvLyBFTkFCTEUoQjNfSklUKQor
CisjZW5kaWYgLy8gQjNDYXNlQ29sbGVjdGlvbklubGluZXNfaAorCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNDaGVja1NwZWNpYWwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM0NoZWNrU3BlY2lhbC5jcHAJKHJldmlzaW9uIDIwMzM3MSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NoZWNrU3BlY2lhbC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTg0LDcgKzg0LDcgQEAgQ2hlY2tTcGVjaWFsOjpDaGVja1NwZWNpYWwoQWlyOjpPcGNv
ZGUgbwogICAgICwgbV9zdGFja21hcFJvbGUoc3RhY2ttYXBSb2xlKQogICAgICwgbV9udW1DaGVj
a0FyZ3MobnVtQXJncykKIHsKLSAgICBBU1NFUlQoaXNUZXJtaW5hbChvcGNvZGUpKTsKKyAgICBB
U1NFUlQoaXNEZWZpbml0ZWx5VGVybWluYWwob3Bjb2RlKSk7CiB9CiAKIENoZWNrU3BlY2lhbDo6
Q2hlY2tTcGVjaWFsKGNvbnN0IENoZWNrU3BlY2lhbDo6S2V5JiBrZXkpCkBAIC0xMDIsNiArMTAy
LDcgQEAgSW5zdCBDaGVja1NwZWNpYWw6OmhpZGRlbkJyYW5jaChjb25zdCBJbgogICAgIGhpZGRl
bkJyYW5jaC5hcmdzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkobV9udW1DaGVja0FyZ3MpOwogICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX251bUNoZWNrQXJnczsgKytpKQogICAgICAgICBo
aWRkZW5CcmFuY2guYXJncy5hcHBlbmQoaW5zdC5hcmdzW2kgKyAxXSk7CisgICAgQVNTRVJUKGhp
ZGRlbkJyYW5jaC5pc1Rlcm1pbmFsKCkpOwogICAgIHJldHVybiBoaWRkZW5CcmFuY2g7CiB9CiAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbW1vbi5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbW1vbi5oCShyZXZpc2lvbiAyMDMzNzEpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb21tb24uaAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCw2
ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoQjNfSklUKQogCisjaW5jbHVkZSAiSlNFeHBvcnRNYWNy
b3MuaCIKKwogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKIGlubGluZSBib29sIGlz
NjRCaXQoKSB7IHJldHVybiBzaXplb2Yodm9pZCopID09IDg7IH0KQEAgLTM4LDcgKzQwLDcgQEAg
ZW51bSBCM0NvbXBsaXRhdGlvbk1vZGUgewogICAgIEFpck1vZGUKIH07CiAKLWJvb2wgc2hvdWxk
RHVtcElSKEIzQ29tcGxpdGF0aW9uTW9kZSk7CitKU19FWFBPUlRfUFJJVkFURSBib29sIHNob3Vs
ZER1bXBJUihCM0NvbXBsaXRhdGlvbk1vZGUpOwogYm9vbCBzaG91bGREdW1wSVJBdEVhY2hQaGFz
ZShCM0NvbXBsaXRhdGlvbk1vZGUpOwogYm9vbCBzaG91bGRWYWxpZGF0ZUlSKCk7CiBib29sIHNo
b3VsZFZhbGlkYXRlSVJBdEVhY2hQaGFzZSgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL0IzQ29udHJvbFZhbHVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNDb250cm9sVmFsdWUuY3BwCShyZXZpc2lvbiAyMDMzNzEpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNDb250cm9sVmFsdWUuY3BwCShub25leGlzdGVudCkKQEAgLTEsOTUg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICov
Ci0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgotCi0j
aWYgRU5BQkxFKEIzX0pJVCkKLQotI2luY2x1ZGUgIkIzQmFzaWNCbG9jay5oIgotCi1uYW1lc3Bh
Y2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsKLQotQ29udHJvbFZhbHVlOjp+Q29udHJvbFZhbHVlKCkK
LXsKLX0KLQotYm9vbCBDb250cm9sVmFsdWU6OnJlcGxhY2VTdWNjZXNzb3IoQmFzaWNCbG9jayog
ZnJvbSwgQmFzaWNCbG9jayogdG8pCi17Ci0gICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKLSAgICBm
b3IgKEZyZXF1ZW50ZWRCbG9jayYgc3VjY2Vzc29yIDogbV9zdWNjZXNzb3JzKSB7Ci0gICAgICAg
IGlmIChzdWNjZXNzb3IuYmxvY2soKSA9PSBmcm9tKSB7Ci0gICAgICAgICAgICBzdWNjZXNzb3Iu
YmxvY2soKSA9IHRvOwotICAgICAgICAgICAgcmVzdWx0ID0gdHJ1ZTsKLQotICAgICAgICAgICAg
Ly8gS2VlcCBsb29waW5nIGJlY2F1c2UgaXQncyB2YWxpZCBmb3IgYSBzdWNjZXNzb3IgdG8gYmUg
bWVudGlvbmVkIG11bHRpcGxlIHRpbWVzLAotICAgICAgICAgICAgLy8gbGlrZSBpZiBtdWx0aXBs
ZSBzd2l0Y2ggY2FzZXMgaGF2ZSB0aGUgc2FtZSB0YXJnZXQuCi0gICAgICAgIH0KLSAgICB9Ci0g
ICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotdm9pZCBDb250cm9sVmFsdWU6OmNvbnZlcnRUb0p1bXAo
QmFzaWNCbG9jayogZGVzdGluYXRpb24pCi17Ci0gICAgdW5zaWduZWQgaW5kZXggPSB0aGlzLT5p
bmRleCgpOwotICAgIE9yaWdpbiBvcmlnaW4gPSB0aGlzLT5vcmlnaW4oKTsKLSAgICBCYXNpY0Js
b2NrKiBvd25lciA9IHRoaXMtPm93bmVyOwotCi0gICAgdGhpcy0+fkNvbnRyb2xWYWx1ZSgpOwot
Ci0gICAgbmV3ICh0aGlzKSBDb250cm9sVmFsdWUoSnVtcCwgb3JpZ2luLCBGcmVxdWVudGVkQmxv
Y2soZGVzdGluYXRpb24pKTsKLQotICAgIHRoaXMtPm93bmVyID0gb3duZXI7Ci0gICAgdGhpcy0+
bV9pbmRleCA9IGluZGV4OwotfQotCi12b2lkIENvbnRyb2xWYWx1ZTo6Y29udmVydFRvT29wcygp
Ci17Ci0gICAgdW5zaWduZWQgaW5kZXggPSB0aGlzLT5pbmRleCgpOwotICAgIE9yaWdpbiBvcmln
aW4gPSB0aGlzLT5vcmlnaW4oKTsKLSAgICBCYXNpY0Jsb2NrKiBvd25lciA9IHRoaXMtPm93bmVy
OwotCi0gICAgdGhpcy0+fkNvbnRyb2xWYWx1ZSgpOwotCi0gICAgbmV3ICh0aGlzKSBDb250cm9s
VmFsdWUoT29wcywgb3JpZ2luKTsKLQotICAgIHRoaXMtPm93bmVyID0gb3duZXI7Ci0gICAgdGhp
cy0+bV9pbmRleCA9IGluZGV4OwotfQotCi12b2lkIENvbnRyb2xWYWx1ZTo6ZHVtcE1ldGEoQ29t
bWFQcmludGVyJiBjb21tYSwgUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKLXsKLSAgICBmb3IgKEZy
ZXF1ZW50ZWRCbG9jayBzdWNjZXNzb3IgOiBtX3N1Y2Nlc3NvcnMpCi0gICAgICAgIG91dC5wcmlu
dChjb21tYSwgc3VjY2Vzc29yKTsKLX0KLQotVmFsdWUqIENvbnRyb2xWYWx1ZTo6Y2xvbmVJbXBs
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbmV3IENvbnRyb2xWYWx1ZSgqdGhpcyk7Ci19Ci0KLX0g
fSAvLyBuYW1lc3BhY2UgSlNDOjpCMwotCi0jZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnRyb2xWYWx1ZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0NvbnRyb2xWYWx1ZS5oCShyZXZpc2lvbiAyMDMz
NzEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNDb250cm9sVmFsdWUuaAkobm9uZXhp
c3RlbnQpCkBAIC0xLDE2MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBCM0NvbnRyb2xWYWx1ZV9oCi0jZGVmaW5lIEIz
Q29udHJvbFZhbHVlX2gKLQotI2lmIEVOQUJMRShCM19KSVQpCi0KLSNpbmNsdWRlICJCM0ZyZXF1
ZW50ZWRCbG9jay5oIgotI2luY2x1ZGUgIkIzU3VjY2Vzc29yQ29sbGVjdGlvbi5oIgotI2luY2x1
ZGUgIkIzVmFsdWUuaCIKLQotbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7Ci0KLWNsYXNz
IEJhc2ljQmxvY2s7Ci0KLWNsYXNzIEpTX0VYUE9SVF9QUklWQVRFIENvbnRyb2xWYWx1ZSA6IHB1
YmxpYyBWYWx1ZSB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIGJvb2wgYWNjZXB0cyhPcGNvZGUgb3Bj
b2RlKQotICAgIHsKLSAgICAgICAgc3dpdGNoIChvcGNvZGUpIHsKLSAgICAgICAgY2FzZSBKdW1w
OgotICAgICAgICBjYXNlIEJyYW5jaDoKLSAgICAgICAgY2FzZSBSZXR1cm46Ci0gICAgICAgIGNh
c2UgT29wczoKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBjYXNlIFN3aXRjaDog
Ci0gICAgICAgICAgICAvLyBUaGlzIGlzIGhlcmUgYmVjYXVzZSBTd2l0Y2hWYWx1ZSBpcyBhIHN1
YmNsYXNzIG9mIENvbnRyb2xWYWx1ZSwgc28gd2Ugd2FudAotICAgICAgICAgICAgLy8gc3dpdGNo
VmFsdWUtPmFzPENvbnRyb2xWYWx1ZT4oKSB0byByZXR1cm4gbm9uLW51bGwuCi0gICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHR5cGVkZWYgVmVjdG9yPEZyZXF1ZW50ZWRCbG9j
aywgMj4gU3VjY2Vzc29yTGlzdDsKLQotICAgIH5Db250cm9sVmFsdWUoKTsKLQotICAgIHVuc2ln
bmVkIG51bVN1Y2Nlc3NvcnMoKSBjb25zdCB7IHJldHVybiBtX3N1Y2Nlc3NvcnMuc2l6ZSgpOyB9
Ci0gICAgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiBzdWNjZXNzb3IodW5zaWduZWQgaW5kZXgpIGNv
bnN0IHsgcmV0dXJuIG1fc3VjY2Vzc29yc1tpbmRleF07IH0KLSAgICBGcmVxdWVudGVkQmxvY2sm
IHN1Y2Nlc3Nvcih1bnNpZ25lZCBpbmRleCkgeyByZXR1cm4gbV9zdWNjZXNzb3JzW2luZGV4XTsg
fQotICAgIGNvbnN0IFN1Y2Nlc3Nvckxpc3QmIHN1Y2Nlc3NvcnMoKSBjb25zdCB7IHJldHVybiBt
X3N1Y2Nlc3NvcnM7IH0KLSAgICBTdWNjZXNzb3JMaXN0JiBzdWNjZXNzb3JzKCkgeyByZXR1cm4g
bV9zdWNjZXNzb3JzOyB9Ci0KLSAgICBCYXNpY0Jsb2NrKiBzdWNjZXNzb3JCbG9jayh1bnNpZ25l
ZCBpbmRleCkgY29uc3QgeyByZXR1cm4gc3VjY2Vzc29yKGluZGV4KS5ibG9jaygpOyB9Ci0gICAg
QmFzaWNCbG9jayomIHN1Y2Nlc3NvckJsb2NrKHVuc2lnbmVkIGluZGV4KSB7IHJldHVybiBzdWNj
ZXNzb3IoaW5kZXgpLmJsb2NrKCk7IH0KLSAgICBTdWNjZXNzb3JDb2xsZWN0aW9uPEJhc2ljQmxv
Y2ssIFN1Y2Nlc3Nvckxpc3Q+IHN1Y2Nlc3NvckJsb2NrcygpCi0gICAgewotICAgICAgICByZXR1
cm4gU3VjY2Vzc29yQ29sbGVjdGlvbjxCYXNpY0Jsb2NrLCBTdWNjZXNzb3JMaXN0PihzdWNjZXNz
b3JzKCkpOwotICAgIH0KLSAgICBTdWNjZXNzb3JDb2xsZWN0aW9uPGNvbnN0IEJhc2ljQmxvY2ss
IGNvbnN0IFN1Y2Nlc3Nvckxpc3Q+IHN1Y2Nlc3NvckJsb2NrcygpIGNvbnN0Ci0gICAgewotICAg
ICAgICByZXR1cm4gU3VjY2Vzc29yQ29sbGVjdGlvbjxjb25zdCBCYXNpY0Jsb2NrLCBjb25zdCBT
dWNjZXNzb3JMaXN0PihzdWNjZXNzb3JzKCkpOwotICAgIH0KLQotICAgIGJvb2wgcmVwbGFjZVN1
Y2Nlc3NvcihCYXNpY0Jsb2NrKiBmcm9tLCBCYXNpY0Jsb2NrKiB0byk7Ci0KLSAgICBjb25zdCBG
cmVxdWVudGVkQmxvY2smIHRha2VuKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChvcGNv
ZGUoKSA9PSBKdW1wIHx8IG9wY29kZSgpID09IEJyYW5jaCk7Ci0gICAgICAgIHJldHVybiBzdWNj
ZXNzb3IoMCk7Ci0gICAgfQotICAgIEZyZXF1ZW50ZWRCbG9jayYgdGFrZW4oKQotICAgIHsKLSAg
ICAgICAgQVNTRVJUKG9wY29kZSgpID09IEp1bXAgfHwgb3Bjb2RlKCkgPT0gQnJhbmNoKTsKLSAg
ICAgICAgcmV0dXJuIHN1Y2Nlc3NvcigwKTsKLSAgICB9Ci0gICAgY29uc3QgRnJlcXVlbnRlZEJs
b2NrJiBub3RUYWtlbigpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQob3Bjb2RlKCkgPT0g
QnJhbmNoKTsKLSAgICAgICAgcmV0dXJuIHN1Y2Nlc3NvcigxKTsKLSAgICB9Ci0gICAgRnJlcXVl
bnRlZEJsb2NrJiBub3RUYWtlbigpCi0gICAgewotICAgICAgICBBU1NFUlQob3Bjb2RlKCkgPT0g
QnJhbmNoKTsKLSAgICAgICAgcmV0dXJuIHN1Y2Nlc3NvcigxKTsKLSAgICB9Ci0KLSAgICB2b2lk
IGNvbnZlcnRUb0p1bXAoQmFzaWNCbG9jayogZGVzdGluYXRpb24pOwotICAgIHZvaWQgY29udmVy
dFRvT29wcygpOwotCi1wcm90ZWN0ZWQ6Ci0gICAgdm9pZCBkdW1wTWV0YShDb21tYVByaW50ZXIm
LCBQcmludFN0cmVhbSYpIGNvbnN0IG92ZXJyaWRlOwotCi0gICAgVmFsdWUqIGNsb25lSW1wbCgp
IGNvbnN0IG92ZXJyaWRlOwotCi0gICAgLy8gVXNlIHRoaXMgZm9yIHN1YmNsYXNzZXMuCi0gICAg
dGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJndW1lbnRzPgotICAgIENvbnRyb2xWYWx1ZShPcGNvZGUg
b3Bjb2RlLCBUeXBlIHR5cGUsIE9yaWdpbiBvcmlnaW4sIEFyZ3VtZW50cy4uLiBhcmd1bWVudHMp
Ci0gICAgICAgIDogVmFsdWUoQ2hlY2tlZE9wY29kZSwgb3Bjb2RlLCB0eXBlLCBvcmlnaW4sIGFy
Z3VtZW50cy4uLikKLSAgICB7Ci0gICAgICAgIEFTU0VSVChhY2NlcHRzKG9wY29kZSkpOwotICAg
IH0KLQotICAgIC8vIFN1YmNsYXNzZXMgd2lsbCBwb3B1bGF0ZSB0aGlzLgotICAgIFN1Y2Nlc3Nv
ckxpc3QgbV9zdWNjZXNzb3JzOwotCi1wcml2YXRlOgotICAgIGZyaWVuZCBjbGFzcyBQcm9jZWR1
cmU7Ci0KLSAgICAvLyBVc2UgdGhpcyBmb3IgT29wcy4KLSAgICBDb250cm9sVmFsdWUoT3Bjb2Rl
IG9wY29kZSwgT3JpZ2luIG9yaWdpbikKLSAgICAgICAgOiBWYWx1ZShDaGVja2VkT3Bjb2RlLCBv
cGNvZGUsIFZvaWQsIG9yaWdpbikKLSAgICB7Ci0gICAgICAgIEFTU0VSVChvcGNvZGUgPT0gT29w
cyk7Ci0gICAgfQotCi0gICAgLy8gVXNlIHRoaXMgZm9yIFJldHVybi4KLSAgICBDb250cm9sVmFs
dWUoT3Bjb2RlIG9wY29kZSwgT3JpZ2luIG9yaWdpbiwgVmFsdWUqIHJlc3VsdCkKLSAgICAgICAg
OiBWYWx1ZShDaGVja2VkT3Bjb2RlLCBvcGNvZGUsIFZvaWQsIG9yaWdpbiwgcmVzdWx0KQotICAg
IHsKLSAgICAgICAgQVNTRVJUKG9wY29kZSA9PSBSZXR1cm4pOwotICAgIH0KLQotICAgIC8vIFVz
ZSB0aGlzIGZvciBKdW1wLgotICAgIENvbnRyb2xWYWx1ZShPcGNvZGUgb3Bjb2RlLCBPcmlnaW4g
b3JpZ2luLCBjb25zdCBGcmVxdWVudGVkQmxvY2smIHRhcmdldCkKLSAgICAgICAgOiBWYWx1ZShD
aGVja2VkT3Bjb2RlLCBvcGNvZGUsIFZvaWQsIG9yaWdpbikKLSAgICB7Ci0gICAgICAgIEFTU0VS
VChvcGNvZGUgPT0gSnVtcCk7Ci0gICAgICAgIG1fc3VjY2Vzc29ycy5hcHBlbmQodGFyZ2V0KTsK
LSAgICB9Ci0KLSAgICAvLyBVc2UgdGhpcyBmb3IgQnJhbmNoLgotICAgIENvbnRyb2xWYWx1ZSgK
LSAgICAgICAgT3Bjb2RlIG9wY29kZSwgT3JpZ2luIG9yaWdpbiwgVmFsdWUqIHByZWRpY2F0ZSwK
LSAgICAgICAgY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB5ZXMsIGNvbnN0IEZyZXF1ZW50ZWRCbG9j
ayYgbm8pCi0gICAgICAgIDogVmFsdWUoQ2hlY2tlZE9wY29kZSwgb3Bjb2RlLCBWb2lkLCBvcmln
aW4sIHByZWRpY2F0ZSkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChvcGNvZGUgPT0gQnJhbmNoKTsK
LSAgICAgICAgbV9zdWNjZXNzb3JzLmFwcGVuZCh5ZXMpOwotICAgICAgICBtX3N1Y2Nlc3NvcnMu
YXBwZW5kKG5vKTsKLSAgICB9Ci19OwotCi19IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjMKLQotI2Vu
ZGlmIC8vIEVOQUJMRShCM19KSVQpCi0KLSNlbmRpZiAvLyBCM0NvbnRyb2xWYWx1ZV9oCi0KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0RhdGFTZWN0aW9uLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNEYXRhU2VjdGlvbi5jcHAJKHJldmlzaW9u
IDIwMzM3MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0RhdGFTZWN0aW9uLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0zMSw3ICszMSw3IEBACiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIz
IHsKIAogRGF0YVNlY3Rpb246OkRhdGFTZWN0aW9uKHNpemVfdCBzaXplKQotICAgIDogbV9kYXRh
KGZhc3RNYWxsb2Moc2l6ZSkpCisgICAgOiBtX2RhdGEoZmFzdFplcm9lZE1hbGxvYyhzaXplKSkK
ICAgICAsIG1fc2l6ZShzaXplKQogewogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzRHVwbGljYXRlVGFpbHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM0R1cGxpY2F0ZVRhaWxzLmNwcAkocmV2aXNpb24gMjAzMzcxKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzRHVwbGljYXRlVGFpbHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
MCw3ICszMCw2IEBACiAKICNpbmNsdWRlICJCM0Jhc2ljQmxvY2tJbmxpbmVzLmgiCiAjaW5jbHVk
ZSAiQjNCcmVha0NyaXRpY2FsRWRnZXMuaCIKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgog
I2luY2x1ZGUgIkIzRG9taW5hdG9ycy5oIgogI2luY2x1ZGUgIkIzRml4U1NBLmgiCiAjaW5jbHVk
ZSAiQjNJbmRleFNldC5oIgpAQCAtOTcsMTEgKzk2LDEwIEBAIHB1YmxpYzoKICAgICAgICAgfQog
CiAgICAgICAgIGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiBtX3Byb2MpIHsKLSAgICAgICAgICAg
IENvbnRyb2xWYWx1ZSoganVtcCA9IGJsb2NrLT5sYXN0KCktPmFzPENvbnRyb2xWYWx1ZT4oKTsK
LSAgICAgICAgICAgIGlmIChqdW1wLT5vcGNvZGUoKSAhPSBKdW1wKQorICAgICAgICAgICAgaWYg
KGJsb2NrLT5sYXN0KCktPm9wY29kZSgpICE9IEp1bXApCiAgICAgICAgICAgICAgICAgY29udGlu
dWU7CiAKLSAgICAgICAgICAgIEJhc2ljQmxvY2sqIHRhaWwgPSBqdW1wLT5zdWNjZXNzb3JCbG9j
aygwKTsKKyAgICAgICAgICAgIEJhc2ljQmxvY2sqIHRhaWwgPSBibG9jay0+c3VjY2Vzc29yQmxv
Y2soMCk7CiAgICAgICAgICAgICBpZiAoIWNhbmRpZGF0ZXMuY29udGFpbnModGFpbCkpCiAgICAg
ICAgICAgICAgICAgY29udGludWU7CiAKQEAgLTEzMCw2ICsxMjgsNyBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICAgICAgICAgIG1hcC5hZGQodmFsdWUsIGNsb25lKTsKICAgICAgICAgICAgICAgICBi
bG9jay0+YXBwZW5kKGNsb25lKTsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJsb2NrLT5z
dWNjZXNzb3JzKCkgPSB0YWlsLT5zdWNjZXNzb3JzKCk7CiAgICAgICAgIH0KIAogICAgICAgICBt
X3Byb2MucmVzZXRSZWFjaGFiaWxpdHkoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9CM0VmZmVjdHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNF
ZmZlY3RzLmgJKHJldmlzaW9uIDIwMzM3MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0VmZmVjdHMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00NSw3ICs0NSwxMSBAQCBzdHJ1Y3QgRWZmZWN0cyB7
CiAgICAgLy8gdGVybWluYXRlcyBhYnJ1cHRseS4KICAgICBib29sIGV4aXRzU2lkZXdheXMgeyBm
YWxzZSB9OwogCi0gICAgLy8gVHJ1ZSBpZiB0aGUgaW5zdHJ1Y3Rpb24gbWF5IGNoYW5nZSBzZW1h
bnRpY3MgaWYgaG9pc3RlZCBhYm92ZSBzb21lIGNvbnRyb2wgZmxvdy4KKyAgICAvLyBUcnVlIGlm
IHRoZSBpbnN0cnVjdGlvbiBtYXkgY2hhbmdlIHNlbWFudGljcyBpZiBob2lzdGVkIGFib3ZlIHNv
bWUgY29udHJvbCBmbG93LiBGb3IgZXhhbXBsZSwKKyAgICAvLyBsb2FkcyBhcmUgdXN1YWxseSBj
b250cm9sLWRlcGVuZGVudCBiZWNhdXNlIHdlIG11c3QgYXNzdW1lIHRoYXQgYW55IGNvbnRyb2wg
Y29uc3RydWN0IChlaXRoZXIKKyAgICAvLyBhIHRlcm1pbmFsIGxpa2UgQnJhbmNoIG9yIGFueXRo
aW5nIHRoYXQgZXhpdHMgc2lkZXdheXMsIGxpa2UgQ2hlY2spIHZhbGlkYXRlcyB3aGV0aGVyIHRo
ZQorICAgIC8vIHBvaW50ZXIgaXMgdmFsaWQuIEhvaXN0aW5nIHRoZSBsb2FkIGFib3ZlIGNvbnRy
b2wgbWF5IGNhdXNlIHRoZSBsb2FkIHRvIHRyYXAgZXZlbiB0aG91Z2ggaXQKKyAgICAvLyB3b3Vs
ZCBub3QgaGF2ZSBvdGhlcndpc2UgdHJhcHBlZC4KICAgICBib29sIGNvbnRyb2xEZXBlbmRlbnQg
eyBmYWxzZSB9OwogCiAgICAgLy8gVHJ1ZSBpZiB0aGlzIHdyaXRlcyB0byB0aGUgbG9jYWwgc3Rh
dGUuIE9wZXJhdGlvbnMgdGhhdCB3cml0ZSBsb2NhbCBzdGF0ZSBkb24ndCB3cml0ZSB0byBhbnl0
aGluZwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzRml4U1NBLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNGaXhTU0EuY3BwCShyZXZpc2lvbiAy
MDMzNzEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNGaXhTU0EuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMCw3ICszMCw2IEBACiAKICNpbmNsdWRlICJCM0Jhc2ljQmxvY2tJbmxpbmVz
LmgiCiAjaW5jbHVkZSAiQjNCcmVha0NyaXRpY2FsRWRnZXMuaCIKLSNpbmNsdWRlICJCM0NvbnRy
b2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzRG9taW5hdG9ycy5oIgogI2luY2x1ZGUgIkIzSW5kZXhT
ZXQuaCIKICNpbmNsdWRlICJCM0luc2VydGlvblNldElubGluZXMuaCIKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM0ZvbGRQYXRoQ29uc3RhbnRzLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNGb2xkUGF0aENvbnN0YW50cy5jcHAJKHJldmlzaW9u
IDIwMzM3MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0ZvbGRQYXRoQ29uc3RhbnRz
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogI2lmIEVOQUJMRShCM19KSVQp
CiAKICNpbmNsdWRlICJCM0Jhc2ljQmxvY2tJbmxpbmVzLmgiCi0jaW5jbHVkZSAiQjNDb250cm9s
VmFsdWUuaCIKKyNpbmNsdWRlICJCM0Nhc2VDb2xsZWN0aW9uSW5saW5lcy5oIgogI2luY2x1ZGUg
IkIzRG9taW5hdG9ycy5oIgogI2luY2x1ZGUgIkIzSW5zZXJ0aW9uU2V0SW5saW5lcy5oIgogI2lu
Y2x1ZGUgIkIzUGhhc2VTY29wZS5oIgpAQCAtODcsMjQgKzg3LDI0IEBAIHB1YmxpYzoKICAgICAg
ICAgfTsKICAgICAgICAgCiAgICAgICAgIGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiBtX3Byb2Mp
IHsKLSAgICAgICAgICAgIENvbnRyb2xWYWx1ZSogYnJhbmNoID0gYmxvY2stPmxhc3QoKS0+YXM8
Q29udHJvbFZhbHVlPigpOworICAgICAgICAgICAgVmFsdWUqIGJyYW5jaCA9IGJsb2NrLT5sYXN0
KCk7CiAgICAgICAgICAgICBzd2l0Y2ggKGJyYW5jaC0+b3Bjb2RlKCkpIHsKICAgICAgICAgICAg
IGNhc2UgQnJhbmNoOgotICAgICAgICAgICAgICAgIGlmIChicmFuY2gtPnN1Y2Nlc3NvckJsb2Nr
KDApID09IGJyYW5jaC0+c3VjY2Vzc29yQmxvY2soMSkpCisgICAgICAgICAgICAgICAgaWYgKGJs
b2NrLT5zdWNjZXNzb3JCbG9jaygwKSA9PSBibG9jay0+c3VjY2Vzc29yQmxvY2soMSkpCiAgICAg
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIGFkZE92ZXJyaWRlKAog
ICAgICAgICAgICAgICAgICAgICBibG9jaywgYnJhbmNoLT5jaGlsZCgwKSwKLSAgICAgICAgICAg
ICAgICAgICAgT3ZlcnJpZGU6Om5vblplcm8oYnJhbmNoLT5zdWNjZXNzb3JCbG9jaygwKSkpOwor
ICAgICAgICAgICAgICAgICAgICBPdmVycmlkZTo6bm9uWmVybyhibG9jay0+c3VjY2Vzc29yQmxv
Y2soMCkpKTsKICAgICAgICAgICAgICAgICBhZGRPdmVycmlkZSgKICAgICAgICAgICAgICAgICAg
ICAgYmxvY2ssIGJyYW5jaC0+Y2hpbGQoMCksCi0gICAgICAgICAgICAgICAgICAgIE92ZXJyaWRl
Ojpjb25zdGFudChicmFuY2gtPnN1Y2Nlc3NvckJsb2NrKDEpLCAwKSk7CisgICAgICAgICAgICAg
ICAgICAgIE92ZXJyaWRlOjpjb25zdGFudChibG9jay0+c3VjY2Vzc29yQmxvY2soMSksIDApKTsK
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgU3dpdGNoOiB7CiAgICAg
ICAgICAgICAgICAgSGFzaE1hcDxCYXNpY0Jsb2NrKiwgdW5zaWduZWQ+IHRhcmdldFVzZXM7Ci0g
ICAgICAgICAgICAgICAgZm9yIChjb25zdCBTd2l0Y2hDYXNlJiBzd2l0Y2hDYXNlIDogKmJyYW5j
aC0+YXM8U3dpdGNoVmFsdWU+KCkpCisgICAgICAgICAgICAgICAgZm9yIChjb25zdCBTd2l0Y2hD
YXNlJiBzd2l0Y2hDYXNlIDogYnJhbmNoLT5hczxTd2l0Y2hWYWx1ZT4oKS0+Y2FzZXMoYmxvY2sp
KQogICAgICAgICAgICAgICAgICAgICB0YXJnZXRVc2VzLmFkZChzd2l0Y2hDYXNlLnRhcmdldEJs
b2NrKCksIDApLml0ZXJhdG9yLT52YWx1ZSsrOwogCi0gICAgICAgICAgICAgICAgZm9yIChjb25z
dCBTd2l0Y2hDYXNlJiBzd2l0Y2hDYXNlIDogKmJyYW5jaC0+YXM8U3dpdGNoVmFsdWU+KCkpIHsK
KyAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFN3aXRjaENhc2UmIHN3aXRjaENhc2UgOiBicmFu
Y2gtPmFzPFN3aXRjaFZhbHVlPigpLT5jYXNlcyhibG9jaykpIHsKICAgICAgICAgICAgICAgICAg
ICAgaWYgKHRhcmdldFVzZXMuZmluZChzd2l0Y2hDYXNlLnRhcmdldEJsb2NrKCkpLT52YWx1ZSAh
PSAxKQogICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAKQEAgLTE1OCw5ICsxNTgs
OCBAQCBwdWJsaWM6CiAKICAgICAgICAgICAgICAgICBzd2l0Y2ggKHZhbHVlLT5vcGNvZGUoKSkg
ewogICAgICAgICAgICAgICAgIGNhc2UgQnJhbmNoOiB7Ci0gICAgICAgICAgICAgICAgICAgIENv
bnRyb2xWYWx1ZSogYnJhbmNoID0gdmFsdWUtPmFzPENvbnRyb2xWYWx1ZT4oKTsKLSAgICAgICAg
ICAgICAgICAgICAgaWYgKGdldE92ZXJyaWRlKGJsb2NrLCBicmFuY2gtPmNoaWxkKDApKS5pc05v
blplcm8pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyYW5jaC0+Y29udmVydFRvSnVtcChi
cmFuY2gtPnRha2VuKCkuYmxvY2soKSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChnZXRPdmVy
cmlkZShibG9jaywgdmFsdWUtPmNoaWxkKDApKS5pc05vblplcm8pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHZhbHVlLT5yZXBsYWNlV2l0aEp1bXAoYmxvY2ssIGJsb2NrLT50YWtlbigpKTsK
ICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZWQgPSB0cnVlOwogICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzTG93ZXJNYWNyb3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0xvd2VyTWFjcm9zLmNwcAkocmV2aXNpb24gMjAzMzcxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJNYWNyb3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDE3
ICsyOCwyMyBAQAogCiAjaWYgRU5BQkxFKEIzX0pJVCkKIAorI2luY2x1ZGUgIkFsbG93TWFjcm9T
Y3JhdGNoUmVnaXN0ZXJVc2FnZS5oIgogI2luY2x1ZGUgIkIzQmFzaWNCbG9ja0lubGluZXMuaCIK
ICNpbmNsdWRlICJCM0Jsb2NrSW5zZXJ0aW9uU2V0LmgiCiAjaW5jbHVkZSAiQjNDQ2FsbFZhbHVl
LmgiCisjaW5jbHVkZSAiQjNDYXNlQ29sbGVjdGlvbklubGluZXMuaCIKICNpbmNsdWRlICJCM0Nv
bnN0UHRyVmFsdWUuaCIKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIz
SW5zZXJ0aW9uU2V0SW5saW5lcy5oIgorI2luY2x1ZGUgIkIzTWVtb3J5VmFsdWUuaCIKKyNpbmNs
dWRlICJCM1BhdGNocG9pbnRWYWx1ZS5oIgogI2luY2x1ZGUgIkIzUGhhc2VTY29wZS5oIgogI2lu
Y2x1ZGUgIkIzUHJvY2VkdXJlSW5saW5lcy5oIgorI2luY2x1ZGUgIkIzU3RhY2ttYXBHZW5lcmF0
aW9uUGFyYW1zLmgiCiAjaW5jbHVkZSAiQjNTd2l0Y2hWYWx1ZS5oIgogI2luY2x1ZGUgIkIzVXBz
aWxvblZhbHVlLmgiCiAjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKKyNpbmNsdWRlICJDQ2Fs
bEhlbHBlcnMuaCIKKyNpbmNsdWRlICJMaW5rQnVmZmVyLmgiCiAjaW5jbHVkZSA8Y21hdGg+CiAK
IG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewpAQCAtMTE4LDggKzEyNCw4IEBAIHByaXZh
dGU6CiAgICAgICAgICAgICAgICAgICAgIEJhc2ljQmxvY2sqIHplcm9EZW5DYXNlID0gbV9ibG9j
a0luc2VydGlvblNldC5pbnNlcnRCZWZvcmUobV9ibG9jayk7CiAgICAgICAgICAgICAgICAgICAg
IEJhc2ljQmxvY2sqIG5vcm1hbE1vZENhc2UgPSBtX2Jsb2NrSW5zZXJ0aW9uU2V0Lmluc2VydEJl
Zm9yZShtX2Jsb2NrKTsKIAotICAgICAgICAgICAgICAgICAgICBiZWZvcmUtPnJlcGxhY2VMYXN0
V2l0aE5ldzxDb250cm9sVmFsdWU+KAotICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBC
cmFuY2gsIG1fb3JpZ2luLCBtX3ZhbHVlLT5jaGlsZCgxKSwKKyAgICAgICAgICAgICAgICAgICAg
YmVmb3JlLT5yZXBsYWNlTGFzdFdpdGhOZXc8VmFsdWU+KG1fcHJvYywgQnJhbmNoLCBtX29yaWdp
biwgbV92YWx1ZS0+Y2hpbGQoMSkpOworICAgICAgICAgICAgICAgICAgICBiZWZvcmUtPnNldFN1
Y2Nlc3NvcnMoCiAgICAgICAgICAgICAgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2sobm9ybWFs
TW9kQ2FzZSwgRnJlcXVlbmN5Q2xhc3M6Ok5vcm1hbCksCiAgICAgICAgICAgICAgICAgICAgICAg
ICBGcmVxdWVudGVkQmxvY2soemVyb0RlbkNhc2UsIEZyZXF1ZW5jeUNsYXNzOjpSYXJlKSk7CiAK
QEAgLTEyNywxMiArMTMzLDE0IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgIFZhbHVl
KiBtdWx0aXBsaWVkQmFjayA9IG5vcm1hbE1vZENhc2UtPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9j
LCBNdWwsIG1fb3JpZ2luLCBkaXZSZXN1bHQsIG1fdmFsdWUtPmNoaWxkKDEpKTsKICAgICAgICAg
ICAgICAgICAgICAgVmFsdWUqIHJlc3VsdCA9IG5vcm1hbE1vZENhc2UtPmFwcGVuZE5ldzxWYWx1
ZT4obV9wcm9jLCBTdWIsIG1fb3JpZ2luLCBtX3ZhbHVlLT5jaGlsZCgwKSwgbXVsdGlwbGllZEJh
Y2spOwogICAgICAgICAgICAgICAgICAgICBVcHNpbG9uVmFsdWUqIG5vcm1hbFJlc3VsdCA9IG5v
cm1hbE1vZENhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KG1fcHJvYywgbV9vcmlnaW4sIHJl
c3VsdCk7Ci0gICAgICAgICAgICAgICAgICAgIG5vcm1hbE1vZENhc2UtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2Nr
KSk7CisgICAgICAgICAgICAgICAgICAgIG5vcm1hbE1vZENhc2UtPmFwcGVuZE5ldzxWYWx1ZT4o
bV9wcm9jLCBKdW1wLCBtX29yaWdpbik7CisgICAgICAgICAgICAgICAgICAgIG5vcm1hbE1vZENh
c2UtPnNldFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2NrKG1fYmxvY2spKTsKIAogICAgICAgICAg
ICAgICAgICAgICBVcHNpbG9uVmFsdWUqIHplcm9SZXN1bHQgPSB6ZXJvRGVuQ2FzZS0+YXBwZW5k
TmV3PFVwc2lsb25WYWx1ZT4oCiAgICAgICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIG1fb3Jp
Z2luLAogICAgICAgICAgICAgICAgICAgICAgICAgemVyb0RlbkNhc2UtPmFwcGVuZEludENvbnN0
YW50KG1fcHJvYywgbV92YWx1ZSwgMCkpOwotICAgICAgICAgICAgICAgICAgICB6ZXJvRGVuQ2Fz
ZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4obV9wcm9jLCBKdW1wLCBtX29yaWdpbiwgRnJlcXVl
bnRlZEJsb2NrKG1fYmxvY2spKTsKKyAgICAgICAgICAgICAgICAgICAgemVyb0RlbkNhc2UtPmFw
cGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBKdW1wLCBtX29yaWdpbik7CisgICAgICAgICAgICAgICAg
ICAgIHplcm9EZW5DYXNlLT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7
CiAKICAgICAgICAgICAgICAgICAgICAgVmFsdWUqIHBoaSA9IG1faW5zZXJ0aW9uU2V0Lmluc2Vy
dDxWYWx1ZT4obV9pbmRleCwgUGhpLCBtX3ZhbHVlLT50eXBlKCksIG1fb3JpZ2luKTsKICAgICAg
ICAgICAgICAgICAgICAgbm9ybWFsUmVzdWx0LT5zZXRQaGkocGhpKTsKQEAgLTE0NywxNSArMTU1
LDE2IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBjYXNlIFN3aXRjaDogewogICAgICAgICAgICAg
ICAgIFN3aXRjaFZhbHVlKiBzd2l0Y2hWYWx1ZSA9IG1fdmFsdWUtPmFzPFN3aXRjaFZhbHVlPigp
OwogICAgICAgICAgICAgICAgIFZlY3RvcjxTd2l0Y2hDYXNlPiBjYXNlczsKLSAgICAgICAgICAg
ICAgICBmb3IgKGNvbnN0IFN3aXRjaENhc2UmIHN3aXRjaENhc2UgOiAqc3dpdGNoVmFsdWUpCisg
ICAgICAgICAgICAgICAgZm9yIChjb25zdCBTd2l0Y2hDYXNlJiBzd2l0Y2hDYXNlIDogc3dpdGNo
VmFsdWUtPmNhc2VzKG1fYmxvY2spKQogICAgICAgICAgICAgICAgICAgICBjYXNlcy5hcHBlbmQo
c3dpdGNoQ2FzZSk7CiAgICAgICAgICAgICAgICAgc3RkOjpzb3J0KAogICAgICAgICAgICAgICAg
ICAgICBjYXNlcy5iZWdpbigpLCBjYXNlcy5lbmQoKSwKICAgICAgICAgICAgICAgICAgICAgW10g
KGNvbnN0IFN3aXRjaENhc2UmIGxlZnQsIGNvbnN0IFN3aXRjaENhc2UmIHJpZ2h0KSB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gbGVmdC5jYXNlVmFsdWUoKSA8IHJpZ2h0LmNhc2VW
YWx1ZSgpOwogICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBGcmVxdWVu
dGVkQmxvY2sgZmFsbFRocm91Z2ggPSBtX2Jsb2NrLT5mYWxsVGhyb3VnaCgpOwogICAgICAgICAg
ICAgICAgIG1fYmxvY2stPnZhbHVlcygpLnJlbW92ZUxhc3QoKTsKLSAgICAgICAgICAgICAgICBy
ZWN1cnNpdmVseUJ1aWxkU3dpdGNoKGNhc2VzLCAwLCBmYWxzZSwgY2FzZXMuc2l6ZSgpLCBtX2Js
b2NrKTsKKyAgICAgICAgICAgICAgICByZWN1cnNpdmVseUJ1aWxkU3dpdGNoKGNhc2VzLCBmYWxs
VGhyb3VnaCwgMCwgZmFsc2UsIGNhc2VzLnNpemUoKSwgbV9ibG9jayk7CiAgICAgICAgICAgICAg
ICAgbV9wcm9jLmRlbGV0ZVZhbHVlKHN3aXRjaFZhbHVlKTsKICAgICAgICAgICAgICAgICBtX2Js
b2NrLT51cGRhdGVQcmVkZWNlc3NvcnNBZnRlcigpOwogICAgICAgICAgICAgICAgIG1fY2hhbmdl
ZCA9IHRydWU7CkBAIC0yMTAsMjcgKzIxOSwyNyBAQCBwcml2YXRlOgogICAgICAgICBCYXNpY0Js
b2NrKiBuZWcxRGVuQ2FzZSA9IG1fYmxvY2tJbnNlcnRpb25TZXQuaW5zZXJ0QmVmb3JlKG1fYmxv
Y2spOwogICAgICAgICBCYXNpY0Jsb2NrKiBpbnRNaW5DYXNlID0gbV9ibG9ja0luc2VydGlvblNl
dC5pbnNlcnRCZWZvcmUobV9ibG9jayk7CiAKLSAgICAgICAgYmVmb3JlLT5yZXBsYWNlTGFzdFdp
dGhOZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgICAgIG1fcHJvYywgQnJhbmNoLCBtX29yaWdp
biwgaXNEZW5PSywKKyAgICAgICAgYmVmb3JlLT5yZXBsYWNlTGFzdFdpdGhOZXc8VmFsdWU+KG1f
cHJvYywgQnJhbmNoLCBtX29yaWdpbiwgaXNEZW5PSyk7CisgICAgICAgIGJlZm9yZS0+c2V0U3Vj
Y2Vzc29ycygKICAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhub3JtYWxEaXZDYXNlLCBGcmVx
dWVuY3lDbGFzczo6Tm9ybWFsKSwKICAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhzaGFkeURl
bkNhc2UsIEZyZXF1ZW5jeUNsYXNzOjpSYXJlKSk7CiAKICAgICAgICAgVXBzaWxvblZhbHVlKiBu
b3JtYWxSZXN1bHQgPSBub3JtYWxEaXZDYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPigKICAg
ICAgICAgICAgIG1fcHJvYywgbV9vcmlnaW4sCiAgICAgICAgICAgICBub3JtYWxEaXZDYXNlLT5h
cHBlbmROZXc8VmFsdWU+KG1fcHJvYywgbm9uQ2hpbGxPcGNvZGUsIG1fb3JpZ2luLCBudW0sIGRl
bikpOwotICAgICAgICBub3JtYWxEaXZDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAg
ICAgICAgICAgIG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2Nr
KSk7CisgICAgICAgIG5vcm1hbERpdkNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBKdW1w
LCBtX29yaWdpbik7CisgICAgICAgIG5vcm1hbERpdkNhc2UtPnNldFN1Y2Nlc3NvcnMoRnJlcXVl
bnRlZEJsb2NrKG1fYmxvY2spKTsKIAotICAgICAgICBzaGFkeURlbkNhc2UtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAotICAgICAgICAgICAgbV9wcm9jLCBCcmFuY2gsIG1fb3JpZ2luLCBkZW4s
CisgICAgICAgIHNoYWR5RGVuQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIEJyYW5jaCwg
bV9vcmlnaW4sIGRlbik7CisgICAgICAgIHNoYWR5RGVuQ2FzZS0+c2V0U3VjY2Vzc29ycygKICAg
ICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhuZWcxRGVuQ2FzZSwgRnJlcXVlbmN5Q2xhc3M6Ok5v
cm1hbCksCiAgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2soemVyb0RlbkNhc2UsIEZyZXF1ZW5j
eUNsYXNzOjpSYXJlKSk7CiAKICAgICAgICAgVXBzaWxvblZhbHVlKiB6ZXJvUmVzdWx0ID0gemVy
b0RlbkNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KAogICAgICAgICAgICAgbV9wcm9jLCBt
X29yaWdpbiwKICAgICAgICAgICAgIHplcm9EZW5DYXNlLT5hcHBlbmRJbnRDb25zdGFudChtX3By
b2MsIG1fdmFsdWUsIDApKTsKLSAgICAgICAgemVyb0RlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAotICAgICAgICAgICAgbV9wcm9jLCBKdW1wLCBtX29yaWdpbiwgRnJlcXVlbnRlZEJs
b2NrKG1fYmxvY2spKTsKKyAgICAgICAgemVyb0RlbkNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4obV9w
cm9jLCBKdW1wLCBtX29yaWdpbik7CisgICAgICAgIHplcm9EZW5DYXNlLT5zZXRTdWNjZXNzb3Jz
KEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7CiAKICAgICAgICAgaW50NjRfdCBiYWROdW1lcmF0
b3JDb25zdCA9IDA7CiAgICAgICAgIHN3aXRjaCAobV92YWx1ZS0+dHlwZSgpKSB7CkBAIC0yNDgs
MTggKzI1NywxOSBAQCBwcml2YXRlOgogICAgICAgICBWYWx1ZSogYmFkTnVtZXJhdG9yID0KICAg
ICAgICAgICAgIG5lZzFEZW5DYXNlLT5hcHBlbmRJbnRDb25zdGFudChtX3Byb2MsIG1fdmFsdWUs
IGJhZE51bWVyYXRvckNvbnN0KTsKIAotICAgICAgICBuZWcxRGVuQ2FzZS0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgICAgIG5lZzFEZW5DYXNlLT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgbV9wcm9jLCBCcmFuY2gsIG1fb3JpZ2luLAogICAgICAgICAgICAgbmVnMURlbkNh
c2UtPmFwcGVuZE5ldzxWYWx1ZT4oCi0gICAgICAgICAgICAgICAgbV9wcm9jLCBFcXVhbCwgbV9v
cmlnaW4sIG51bSwgYmFkTnVtZXJhdG9yKSwKKyAgICAgICAgICAgICAgICBtX3Byb2MsIEVxdWFs
LCBtX29yaWdpbiwgbnVtLCBiYWROdW1lcmF0b3IpKTsKKyAgICAgICAgbmVnMURlbkNhc2UtPnNl
dFN1Y2Nlc3NvcnMoCiAgICAgICAgICAgICBGcmVxdWVudGVkQmxvY2soaW50TWluQ2FzZSwgRnJl
cXVlbmN5Q2xhc3M6OlJhcmUpLAogICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKG5vcm1hbERp
dkNhc2UsIEZyZXF1ZW5jeUNsYXNzOjpOb3JtYWwpKTsKIAogICAgICAgICBWYWx1ZSogaW50TWlu
UmVzdWx0ID0gbm9uQ2hpbGxPcGNvZGUgPT0gRGl2ID8gYmFkTnVtZXJhdG9yIDogaW50TWluQ2Fz
ZS0+YXBwZW5kSW50Q29uc3RhbnQobV9wcm9jLCBtX3ZhbHVlLCAwKTsKICAgICAgICAgVXBzaWxv
blZhbHVlKiBpbnRNaW5SZXN1bHRVcHNpbG9uID0gaW50TWluQ2FzZS0+YXBwZW5kTmV3PFVwc2ls
b25WYWx1ZT4oCiAgICAgICAgICAgICBtX3Byb2MsIG1fb3JpZ2luLCBpbnRNaW5SZXN1bHQpOwot
ICAgICAgICBpbnRNaW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgICAg
IG1fcHJvYywgSnVtcCwgbV9vcmlnaW4sIEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7CisgICAg
ICAgIGludE1pbkNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4obV9wcm9jLCBKdW1wLCBtX29yaWdpbik7
CisgICAgICAgIGludE1pbkNhc2UtPnNldFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2NrKG1fYmxv
Y2spKTsKIAogICAgICAgICBWYWx1ZSogcGhpID0gbV9pbnNlcnRpb25TZXQuaW5zZXJ0PFZhbHVl
PigKICAgICAgICAgICAgIG1faW5kZXgsIFBoaSwgbV92YWx1ZS0+dHlwZSgpLCBtX29yaWdpbik7
CkBAIC0yNzIsMTEgKzI4MiwxMTEgQEAgcHJpdmF0ZToKICAgICB9CiAKICAgICB2b2lkIHJlY3Vy
c2l2ZWx5QnVpbGRTd2l0Y2goCi0gICAgICAgIGNvbnN0IFZlY3RvcjxTd2l0Y2hDYXNlPiYgY2Fz
ZXMsIHVuc2lnbmVkIHN0YXJ0LCBib29sIGhhcmRTdGFydCwgdW5zaWduZWQgZW5kLAotICAgICAg
ICBCYXNpY0Jsb2NrKiBiZWZvcmUpCisgICAgICAgIGNvbnN0IFZlY3RvcjxTd2l0Y2hDYXNlPiYg
Y2FzZXMsIEZyZXF1ZW50ZWRCbG9jayBmYWxsVGhyb3VnaCwgdW5zaWduZWQgc3RhcnQsIGJvb2wg
aGFyZFN0YXJ0LAorICAgICAgICB1bnNpZ25lZCBlbmQsIEJhc2ljQmxvY2sqIGJlZm9yZSkKICAg
ICB7Ci0gICAgICAgIC8vIEZJWE1FOiBBZGQgdGFibGUtYmFzZWQgc3dpdGNoIGxvd2VyaW5nLgot
ICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxMTQx
CisgICAgICAgIFZhbHVlKiBjaGlsZCA9IG1fdmFsdWUtPmNoaWxkKDApOworICAgICAgICBUeXBl
IHR5cGUgPSBjaGlsZC0+dHlwZSgpOworICAgICAgICAKKyAgICAgICAgLy8gSXQncyBhIGdvb2Qg
aWRlYSB0byB1c2UgYSB0YWJsZS1iYXNlZCBzd2l0Y2ggaW4gc29tZSBjYXNlczogdGhlIG51bWJl
ciBvZiBjYXNlcyBoYXMgdG8gYmUKKyAgICAgICAgLy8gbGFyZ2UgZW5vdWdoIGFuZCB0aGV5IGhh
dmUgdG8gYmUgZGVuc2UgZW5vdWdoLiBUaGlzIGNvdWxkIHByb2JhYmx5IGJlIGltcHJvdmVkIGEg
bG90LiBGb3IKKyAgICAgICAgLy8gZXhhbXBsZSwgd2UgY291bGQgc3RpbGwgdXNlIGEganVtcCB0
YWJsZSBpbiBjYXNlcyB3aGVyZSB0aGUgaW5wdXRzIGFyZSBzcGFyc2Ugc28gbG9uZyBhcyB3ZQor
ICAgICAgICAvLyBzaGlmdCBvZmYgdGhlIHVuaW50ZXJlc3RpbmcgYml0cy4gT24gdGhlIG90aGVy
IGhhbmQsIGl0J3Mgbm90IGNsZWFyIHRoYXQgdGhpcyB3b3VsZAorICAgICAgICAvLyBhY3R1YWxs
eSBiZSBhbnkgYmV0dGVyIHRoYW4gd2hhdCB3ZSBoYXZlIGRvbmUgaGVyZSBhbmQgaXQncyBub3Qg
Y2xlYXIgdGhhdCBpdCB3b3VsZCBiZQorICAgICAgICAvLyBiZXR0ZXIgdGhhbiBhIGJpbmFyeSBz
d2l0Y2guCisgICAgICAgIGNvbnN0IHVuc2lnbmVkIG1pbkNhc2VzRm9yVGFibGUgPSA3OworICAg
ICAgICBjb25zdCB1bnNpZ25lZCBkZW5zaXR5TGltaXQgPSA0OworICAgICAgICBpZiAoZW5kIC0g
c3RhcnQgPj0gbWluQ2FzZXNGb3JUYWJsZSkgeworICAgICAgICAgICAgaW50NjRfdCBmaXJzdFZh
bHVlID0gY2FzZXNbc3RhcnRdLmNhc2VWYWx1ZSgpOworICAgICAgICAgICAgaW50NjRfdCBsYXN0
VmFsdWUgPSBjYXNlc1tlbmQgLSAxXS5jYXNlVmFsdWUoKTsKKyAgICAgICAgICAgIGlmICgobGFz
dFZhbHVlIC0gZmlyc3RWYWx1ZSArIDEpIC8gKGVuZCAtIHN0YXJ0KSA8IGRlbnNpdHlMaW1pdCkg
eworICAgICAgICAgICAgICAgIEJhc2ljQmxvY2sqIHN3aXRjaEJsb2NrID0gbV9ibG9ja0luc2Vy
dGlvblNldC5pbnNlcnRBZnRlcihtX2Jsb2NrKTsKKyAgICAgICAgICAgICAgICBWYWx1ZSogaW5k
ZXggPSBiZWZvcmUtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICAgICAgICAgIG1fcHJv
YywgU3ViLCBtX29yaWdpbiwgY2hpbGQsCisgICAgICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBw
ZW5kSW50Q29uc3RhbnQobV9wcm9jLCBtX29yaWdpbiwgdHlwZSwgZmlyc3RWYWx1ZSkpOworICAg
ICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgICAgICAg
ICAgbV9wcm9jLCBCcmFuY2gsIG1fb3JpZ2luLAorICAgICAgICAgICAgICAgICAgICBiZWZvcmUt
PmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIEFib3Zl
LCBtX29yaWdpbiwgaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVu
ZEludENvbnN0YW50KG1fcHJvYywgbV9vcmlnaW4sIHR5cGUsIGxhc3RWYWx1ZSAtIGZpcnN0VmFs
dWUpKSk7CisgICAgICAgICAgICAgICAgYmVmb3JlLT5zZXRTdWNjZXNzb3JzKGZhbGxUaHJvdWdo
LCBGcmVxdWVudGVkQmxvY2soc3dpdGNoQmxvY2spKTsKKyAgICAgICAgICAgICAgICAKKyAgICAg
ICAgICAgICAgICBzaXplX3QgdGFibGVTaXplID0gbGFzdFZhbHVlIC0gZmlyc3RWYWx1ZSArIDE7
CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGluZGV4LT50eXBlKCkgIT0g
cG9pbnRlclR5cGUoKSAmJiBpbmRleC0+dHlwZSgpID09IEludDMyKQorICAgICAgICAgICAgICAg
ICAgICBpbmRleCA9IHN3aXRjaEJsb2NrLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgWkV4dDMy
LCBtX29yaWdpbiwgaW5kZXgpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFBh
dGNocG9pbnRWYWx1ZSogcGF0Y2hwb2ludCA9CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaEJs
b2NrLT5hcHBlbmROZXc8UGF0Y2hwb2ludFZhbHVlPihtX3Byb2MsIFZvaWQsIG1fb3JpZ2luKTsK
KworICAgICAgICAgICAgICAgIC8vIEV2ZW4gdGhvdWdoIHRoaXMgbG9hZHMgZnJvbSB0aGUganVt
cCB0YWJsZSwgdGhlIGp1bXAgdGFibGUgaXMgaW1tdXRhYmxlLiBGb3IgdGhlCisgICAgICAgICAg
ICAgICAgLy8gcHVycG9zZSBvZiBhbGlhcyBhbmFseXNpcywgcmVhZGluZyBzb21ldGhpbmcgaW1t
dXRhYmxlIGlzIGxpa2UgcmVhZGluZyBub3RoaW5nLgorICAgICAgICAgICAgICAgIHBhdGNocG9p
bnQtPmVmZmVjdHMgPSBFZmZlY3RzKCk7CisgICAgICAgICAgICAgICAgcGF0Y2hwb2ludC0+ZWZm
ZWN0cy50ZXJtaW5hbCA9IHRydWU7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAg
cGF0Y2hwb2ludC0+YXBwZW5kU29tZVJlZ2lzdGVyKGluZGV4KTsKKyAgICAgICAgICAgICAgICBw
YXRjaHBvaW50LT5udW1HUFNjcmF0Y2hSZWdpc3RlcnMrKzsKKyAgICAgICAgICAgICAgICAvLyBU
ZWNobmljYWxseSwgd2UgZG9uJ3QgaGF2ZSB0byBjbG9iYmVyIG1hY3JvIHJlZ2lzdGVycyBvbiBY
ODZfNjQuIFRoaXMgaXMgcHJvYmFibHkKKyAgICAgICAgICAgICAgICAvLyBPSyB0aG91Z2guCisg
ICAgICAgICAgICAgICAgcGF0Y2hwb2ludC0+Y2xvYmJlcihSZWdpc3RlclNldDo6bWFjcm9TY3Jh
dGNoUmVnaXN0ZXJzKCkpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIEJpdFZl
Y3RvciBoYW5kbGVkSW5kaWNlczsKKyAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBz
dGFydDsgaSA8IGVuZDsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9j
ayBibG9jayA9IGNhc2VzW2ldLnRhcmdldCgpOworICAgICAgICAgICAgICAgICAgICBpbnQ2NF90
IHZhbHVlID0gY2FzZXNbaV0uY2FzZVZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgIHN3aXRj
aEJsb2NrLT5hcHBlbmRTdWNjZXNzb3IoYmxvY2spOworICAgICAgICAgICAgICAgICAgICBzaXpl
X3QgaW5kZXggPSB2YWx1ZSAtIGZpcnN0VmFsdWU7CisgICAgICAgICAgICAgICAgICAgIEFTU0VS
VCghaGFuZGxlZEluZGljZXMuZ2V0KGluZGV4KSk7CisgICAgICAgICAgICAgICAgICAgIGhhbmRs
ZWRJbmRpY2VzLnNldChpbmRleCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IAorICAgICAgICAgICAgICAgIGJvb2wgaGFzVW5oYW5kbGVkSW5kZXggPSBmYWxzZTsKKyAgICAg
ICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgdGFibGVTaXplOyArK2kpIHsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKCFoYW5kbGVkSW5kaWNlcy5nZXQoaSkpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGhhc1VuaGFuZGxlZEluZGV4ID0gdHJ1ZTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChoYXNVbmhhbmRsZWRJbmRl
eCkKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoQmxvY2stPmFwcGVuZFN1Y2Nlc3NvcihmYWxs
VGhyb3VnaCk7CisKKyAgICAgICAgICAgICAgICBwYXRjaHBvaW50LT5zZXRHZW5lcmF0b3IoCisg
ICAgICAgICAgICAgICAgICAgIFs9XSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNrbWFw
R2VuZXJhdGlvblBhcmFtcyYgcGFyYW1zKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBBbGxv
d01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UgYWxsb3dTY3JhdGNoKGppdCk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyQ29k
ZVB0cioganVtcFRhYmxlID0gc3RhdGljX2Nhc3Q8TWFjcm9Bc3NlbWJsZXJDb2RlUHRyKj4oCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLnByb2MoKS5hZGREYXRhU2VjdGlvbihz
aXplb2YoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKSAqIHRhYmxlU2l6ZSkpOworICAgICAgICAgICAg
ICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBHUFJSZWcgaW5kZXggPSBwYXJh
bXNbMF0uZ3ByKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBHUFJSZWcgc2NyYXRjaCA9IHBh
cmFtcy5ncFNjcmF0Y2goMCk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihqdW1wVGFi
bGUpLCBzY3JhdGNoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGppdC5qdW1wKENDYWxsSGVs
cGVyczo6QmFzZUluZGV4KHNjcmF0Y2gsIGluZGV4LCBDQ2FsbEhlbHBlcnM6OnRpbWVzUHRyKCkp
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgLy8g
VGhlc2UgbGFiZWxzIGFyZSBndWFyYW50ZWVkIHRvIGJlIHBvcHVsYXRlZCBiZWZvcmUgZWl0aGVy
IGxhdGUgcGF0aHMgb3IKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxpbmsgdGFza3MgcnVu
LgorICAgICAgICAgICAgICAgICAgICAgICAgVmVjdG9yPEJveDxDQ2FsbEhlbHBlcnM6OkxhYmVs
Pj4gbGFiZWxzID0gcGFyYW1zLnN1Y2Nlc3NvckxhYmVscygpOworICAgICAgICAgICAgICAgICAg
ICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICBqaXQuYWRkTGlua1Rhc2soCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgWz1dIChMaW5rQnVmZmVyJiBsaW5rQnVmZmVyKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoYXNVbmhhbmRsZWRJbmRleCkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGZh
bGxUaHJvdWdoID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5r
QnVmZmVyLmxvY2F0aW9uT2YoKmxhYmVscy5sYXN0KCkpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gdGFibGVTaXplOyBpLS07KQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGp1bXBUYWJsZVtpXSA9IGZhbGxUaHJv
dWdoOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l
ZCBsYWJlbEluZGV4ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh1
bnNpZ25lZCB0YWJsZUluZGV4IDogaGFuZGxlZEluZGljZXMpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGp1bXBUYWJsZVt0YWJsZUluZGV4XSA9CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlua0J1ZmZlci5sb2NhdGlvbk9mKCpsYWJlbHNb
bGFiZWxJbmRleCsrXSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgICAgIAog
ICAgICAgICAvLyBTZWUgY29tbWVudHMgaW4gaml0L0JpbmFyeVN3aXRjaC5jcHAgZm9yIGEganVz
dGlmaWNhdGlvbiBvZiB0aGlzIGFsZ29yaXRobS4gVGhlIG9ubHkKICAgICAgICAgLy8gdGhpbmcg
d2UgZG8gZGlmZmVyZW50bHkgaXMgdGhhdCB3ZSBkb24ndCB1c2UgcmFuZG9tbmVzcy4KQEAgLTMw
NCwyNSArNDE0LDIzIEBAIHByaXZhdGU6CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBsaW1pdDsgKytpKSB7CiAgICAgICAgICAgICAgICAgQmFzaWNC
bG9jayogbmV4dENoZWNrID0gbV9ibG9ja0luc2VydGlvblNldC5pbnNlcnRBZnRlcihtX2Jsb2Nr
KTsKLSAgICAgICAgICAgICAgICBiZWZvcmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
ICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgICAgICAg
ICAgbV9wcm9jLCBCcmFuY2gsIG1fb3JpZ2luLAogICAgICAgICAgICAgICAgICAgICBiZWZvcmUt
PmFwcGVuZE5ldzxWYWx1ZT4oCi0gICAgICAgICAgICAgICAgICAgICAgICBtX3Byb2MsIEVxdWFs
LCBtX29yaWdpbiwgbV92YWx1ZS0+Y2hpbGQoMCksCisgICAgICAgICAgICAgICAgICAgICAgICBt
X3Byb2MsIEVxdWFsLCBtX29yaWdpbiwgY2hpbGQsCiAgICAgICAgICAgICAgICAgICAgICAgICBi
ZWZvcmUtPmFwcGVuZEludENvbnN0YW50KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1f
cHJvYywgbV9vcmlnaW4sIG1fdmFsdWUtPmNoaWxkKDApLT50eXBlKCksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY2FzZXNbc3RhcnQgKyBpXS5jYXNlVmFsdWUoKSkpLAotICAgICAgICAg
ICAgICAgICAgICBjYXNlc1tzdGFydCArIGldLnRhcmdldCgpLCBGcmVxdWVudGVkQmxvY2sobmV4
dENoZWNrKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwg
dHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlc1tzdGFydCArIGldLmNhc2VW
YWx1ZSgpKSkpOworICAgICAgICAgICAgICAgIGJlZm9yZS0+c2V0U3VjY2Vzc29ycyhjYXNlc1tz
dGFydCArIGldLnRhcmdldCgpLCBGcmVxdWVudGVkQmxvY2sobmV4dENoZWNrKSk7CiAKICAgICAg
ICAgICAgICAgICBiZWZvcmUgPSBuZXh0Q2hlY2s7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAg
ICAgIGlmIChhbGxDb25zZWN1dGl2ZSkgewotICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCi0gICAgICAgICAgICAgICAgICAgIG1fcHJvYywgSnVtcCwgbV9v
cmlnaW4sIGNhc2VzW2VuZCAtIDFdLnRhcmdldCgpKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgYmVmb3JlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAg
ICAgICAgICAgICAgbV9wcm9jLCBKdW1wLCBtX29yaWdpbiwgbV92YWx1ZS0+YXM8U3dpdGNoVmFs
dWU+KCktPmZhbGxUaHJvdWdoKCkpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgYmVmb3Jl
LT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgSnVtcCwgbV9vcmlnaW4pOworICAgICAgICAgICAg
aWYgKGFsbENvbnNlY3V0aXZlKQorICAgICAgICAgICAgICAgIGJlZm9yZS0+c2V0U3VjY2Vzc29y
cyhjYXNlc1tlbmQgLSAxXS50YXJnZXQoKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgYmVmb3JlLT5zZXRTdWNjZXNzb3JzKGZhbGxUaHJvdWdoKTsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQogCkBAIC0zMzEsMTcgKzQzOSwxNyBAQCBwcml2YXRlOgogICAgICAg
ICBCYXNpY0Jsb2NrKiBsZWZ0ID0gbV9ibG9ja0luc2VydGlvblNldC5pbnNlcnRBZnRlcihtX2Js
b2NrKTsKICAgICAgICAgQmFzaWNCbG9jayogcmlnaHQgPSBtX2Jsb2NrSW5zZXJ0aW9uU2V0Lmlu
c2VydEFmdGVyKG1fYmxvY2spOwogCi0gICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIG1f
cHJvYywgQnJhbmNoLCBtX29yaWdpbiwKICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kTmV3PFZh
bHVlPigKLSAgICAgICAgICAgICAgICBtX3Byb2MsIExlc3NUaGFuLCBtX29yaWdpbiwgbV92YWx1
ZS0+Y2hpbGQoMCksCisgICAgICAgICAgICAgICAgbV9wcm9jLCBMZXNzVGhhbiwgbV9vcmlnaW4s
IGNoaWxkLAogICAgICAgICAgICAgICAgIGJlZm9yZS0+YXBwZW5kSW50Q29uc3RhbnQoCi0gICAg
ICAgICAgICAgICAgICAgIG1fcHJvYywgbV9vcmlnaW4sIG1fdmFsdWUtPmNoaWxkKDApLT50eXBl
KCksCi0gICAgICAgICAgICAgICAgICAgIGNhc2VzW21lZGlhbkluZGV4XS5jYXNlVmFsdWUoKSkp
LAotICAgICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKGxlZnQpLCBGcmVxdWVudGVkQmxvY2socmln
aHQpKTsKKyAgICAgICAgICAgICAgICAgICAgbV9wcm9jLCBtX29yaWdpbiwgdHlwZSwKKyAgICAg
ICAgICAgICAgICAgICAgY2FzZXNbbWVkaWFuSW5kZXhdLmNhc2VWYWx1ZSgpKSkpOworICAgICAg
ICBiZWZvcmUtPnNldFN1Y2Nlc3NvcnMoRnJlcXVlbnRlZEJsb2NrKGxlZnQpLCBGcmVxdWVudGVk
QmxvY2socmlnaHQpKTsKIAotICAgICAgICByZWN1cnNpdmVseUJ1aWxkU3dpdGNoKGNhc2VzLCBz
dGFydCwgaGFyZFN0YXJ0LCBtZWRpYW5JbmRleCwgbGVmdCk7Ci0gICAgICAgIHJlY3Vyc2l2ZWx5
QnVpbGRTd2l0Y2goY2FzZXMsIG1lZGlhbkluZGV4LCB0cnVlLCBlbmQsIHJpZ2h0KTsKKyAgICAg
ICAgcmVjdXJzaXZlbHlCdWlsZFN3aXRjaChjYXNlcywgZmFsbFRocm91Z2gsIHN0YXJ0LCBoYXJk
U3RhcnQsIG1lZGlhbkluZGV4LCBsZWZ0KTsKKyAgICAgICAgcmVjdXJzaXZlbHlCdWlsZFN3aXRj
aChjYXNlcywgZmFsbFRocm91Z2gsIG1lZGlhbkluZGV4LCB0cnVlLCBlbmQsIHJpZ2h0KTsKICAg
ICB9CiAgICAgCiAgICAgUHJvY2VkdXJlJiBtX3Byb2M7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAkocmV2aXNpb24gMjAzMzcxKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1NSw3
ICsxNTUsNiBAQCBwdWJsaWM6CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIC8vIE1ha2Ug
c3VyZSB0aGF0IHRoZSBzdWNjZXNzb3JzIGFyZSBzZXQgdXAgY29ycmVjdGx5LgotICAgICAgICAg
ICAgQVNTRVJUKGJsb2NrLT5zdWNjZXNzb3JzKCkuc2l6ZSgpIDw9IDIpOwogICAgICAgICAgICAg
Zm9yIChCMzo6RnJlcXVlbnRlZEJsb2NrIHN1Y2Nlc3NvciA6IGJsb2NrLT5zdWNjZXNzb3JzKCkp
IHsKICAgICAgICAgICAgICAgICBtX2Jsb2NrVG9CbG9ja1tibG9ja10tPnN1Y2Nlc3NvcnMoKS5h
cHBlbmQoCiAgICAgICAgICAgICAgICAgICAgIEFpcjo6RnJlcXVlbnRlZEJsb2NrKG1fYmxvY2tU
b0Jsb2NrW3N1Y2Nlc3Nvci5ibG9jaygpXSwgc3VjY2Vzc29yLmZyZXF1ZW5jeSgpKSk7CkBAIC0y
NDQxLDcgKzI0NDAsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9Ci0KKyAgICAgICAgICAgIAogICAgICAgICBjYXNlIEIzOjpPb3BzOiB7
CiAgICAgICAgICAgICBhcHBlbmQoQWlyOjpPb3BzKTsKICAgICAgICAgICAgIHJldHVybjsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM01hdGhFeHRyYXMuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM01hdGhFeHRyYXMuY3BwCShyZXZpc2lvbiAy
MDMzNzEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNNYXRoRXh0cmFzLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSAiQjNDb25zdDMyVmFsdWUuaCIKICNp
bmNsdWRlICJCM0NvbnN0RG91YmxlVmFsdWUuaCIKICNpbmNsdWRlICJCM0NvbnN0UHRyVmFsdWUu
aCIKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgogI2luY2x1ZGUgIkIzVXBzaWxvblZhbHVl
LmgiCiAjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJNYXRoQ29tbW9uLmgi
CkBAIC01MiwxMCArNTEsOCBAQCBzdGQ6OnBhaXI8QmFzaWNCbG9jayosIFZhbHVlKj4gcG93RG91
YmxlCiAgICAgVmFsdWUqIHNob3VsZEdvU2xvd1BhdGggPSBzdGFydC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jZWR1cmUsIEFib3ZlLCBvcmlnaW4sCiAgICAgICAgIHksCiAgICAgICAgIHN0YXJ0LT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jZWR1cmUsIG9yaWdpbiwgbWF4RXhwb25lbnRGb3JJ
bnRlZ2VyTWF0aFBvdykpOwotICAgIHN0YXJ0LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAg
ICAgICAgcHJvY2VkdXJlLCBCcmFuY2gsIG9yaWdpbiwKLSAgICAgICAgc2hvdWxkR29TbG93UGF0
aCwKLSAgICAgICAgRnJlcXVlbnRlZEJsb2NrKGZ1bmN0aW9uQ2FsbENhc2UpLCBGcmVxdWVudGVk
QmxvY2sobG9vcFByZUhlYWRlckNhc2UpKTsKKyAgICBzdGFydC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jZWR1cmUsIEJyYW5jaCwgb3JpZ2luLCBzaG91bGRHb1Nsb3dQYXRoKTsKKyAgICBzdGFydC0+
c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2soZnVuY3Rpb25DYWxsQ2FzZSksIEZyZXF1ZW50
ZWRCbG9jayhsb29wUHJlSGVhZGVyQ2FzZSkpOwogCiAgICAgLy8gRnVuY3Rpb24gY2FsbC4KICAg
ICBWYWx1ZSogeUFzRG91YmxlID0gZnVuY3Rpb25DYWxsQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jZWR1cmUsIElUb0QsIG9yaWdpbiwgeSk7CkBAIC02NSw3ICs2Miw4IEBAIHN0ZDo6cGFpcjxC
YXNpY0Jsb2NrKiwgVmFsdWUqPiBwb3dEb3VibGUKICAgICAgICAgZnVuY3Rpb25DYWxsQ2FzZS0+
YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2NlZHVyZSwgb3JpZ2luLCBiaXR3aXNlX2Nhc3Q8
dm9pZCo+KHBvd0RvdWJsZSkpLAogICAgICAgICB4LCB5QXNEb3VibGUpOwogICAgIFVwc2lsb25W
YWx1ZSogcG93UmVzdWx0VXBzaWxvbiA9IGZ1bmN0aW9uQ2FsbENhc2UtPmFwcGVuZE5ldzxVcHNp
bG9uVmFsdWU+KHByb2NlZHVyZSwgb3JpZ2luLCBwb3dSZXN1bHQpOwotICAgIGZ1bmN0aW9uQ2Fs
bENhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2NlZHVyZSwgSnVtcCwgb3JpZ2luLCBG
cmVxdWVudGVkQmxvY2soY29udGludWF0aW9uKSk7CisgICAgZnVuY3Rpb25DYWxsQ2FzZS0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jZWR1cmUsIEp1bXAsIG9yaWdpbik7CisgICAgZnVuY3Rpb25DYWxs
Q2FzZS0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxvY2soY29udGludWF0aW9uKSk7CiAKICAg
ICAvLyBMb29wIHByZS1oZWFkZXIuCiAgICAgVmFsdWUqIGluaXRpYWxSZXN1bHQgPSBsb29wUHJl
SGVhZGVyQ2FzZS0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2NlZHVyZSwgb3JpZ2lu
LCAxLik7CkBAIC03Myw3ICs3MSw4IEBAIHN0ZDo6cGFpcjxCYXNpY0Jsb2NrKiwgVmFsdWUqPiBw
b3dEb3VibGUKICAgICBVcHNpbG9uVmFsdWUqIGluaXRpYWxSZXN1bHRWYWx1ZSA9IGxvb3BQcmVI
ZWFkZXJDYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jZWR1cmUsIG9yaWdpbiwgaW5p
dGlhbFJlc3VsdCk7CiAgICAgVXBzaWxvblZhbHVlKiBpbml0aWFsU3F1YXJlZElucHV0ID0gbG9v
cFByZUhlYWRlckNhc2UtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2NlZHVyZSwgb3JpZ2lu
LCB4KTsKICAgICBVcHNpbG9uVmFsdWUqIGluaXRpYWxMb29wQ291bnRlciA9IGxvb3BQcmVIZWFk
ZXJDYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jZWR1cmUsIG9yaWdpbiwgeSk7Ci0g
ICAgbG9vcFByZUhlYWRlckNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2NlZHVyZSwg
SnVtcCwgb3JpZ2luLCBGcmVxdWVudGVkQmxvY2sobG9vcFRlc3RGb3JFdmVuQ2FzZSkpOworICAg
IGxvb3BQcmVIZWFkZXJDYXNlLT5hcHBlbmROZXc8VmFsdWU+KHByb2NlZHVyZSwgSnVtcCwgb3Jp
Z2luKTsKKyAgICBsb29wUHJlSGVhZGVyQ2FzZS0+c2V0U3VjY2Vzc29ycyhGcmVxdWVudGVkQmxv
Y2sobG9vcFRlc3RGb3JFdmVuQ2FzZSkpOwogCiAgICAgLy8gVGVzdCBpZiB3aGF0IGlzIGxlZnQg
b2YgdGhlIGNvdW50ZXIgaXMgZXZlbi4KICAgICBWYWx1ZSogaW5Mb29wQ291bnRlciA9IGxvb3BU
ZXN0Rm9yRXZlbkNhc2UtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvY2VkdXJlLCBQaGksIEludDMyLCBv
cmlnaW4pOwpAQCAtODEsMTAgKzgwLDggQEAgc3RkOjpwYWlyPEJhc2ljQmxvY2sqLCBWYWx1ZSo+
IHBvd0RvdWJsZQogICAgIFZhbHVlKiBsYXN0Q291bnRlckJpdCA9IGxvb3BUZXN0Rm9yRXZlbkNh
c2UtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvY2VkdXJlLCBCaXRBbmQsIG9yaWdpbiwKICAgICAgICAg
aW5Mb29wQ291bnRlciwKICAgICAgICAgbG9vcFRlc3RGb3JFdmVuQ2FzZS0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvY2VkdXJlLCBvcmlnaW4sIDEpKTsKLSAgICBsb29wVGVzdEZvckV2ZW5D
YXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKLSAgICAgICAgcHJvY2VkdXJlLCBCcmFuY2gs
IG9yaWdpbiwKLSAgICAgICAgbGFzdENvdW50ZXJCaXQsCi0gICAgICAgIEZyZXF1ZW50ZWRCbG9j
ayhsb29wT2RkKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3BFdmVuT2RkKSk7CisgICAgbG9vcFRlc3RG
b3JFdmVuQ2FzZS0+YXBwZW5kTmV3PFZhbHVlPihwcm9jZWR1cmUsIEJyYW5jaCwgb3JpZ2luLCBs
YXN0Q291bnRlckJpdCk7CisgICAgbG9vcFRlc3RGb3JFdmVuQ2FzZS0+c2V0U3VjY2Vzc29ycyhG
cmVxdWVudGVkQmxvY2sobG9vcE9kZCksIEZyZXF1ZW50ZWRCbG9jayhsb29wRXZlbk9kZCkpOwog
CiAgICAgLy8gQ291bnRlciBpcyBvZGQuCiAgICAgVmFsdWUqIGluTG9vcFJlc3VsdCA9IGxvb3BP
ZGQtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvY2VkdXJlLCBQaGksIERvdWJsZSwgb3JpZ2luKTsKQEAg
LTk0LDcgKzkxLDggQEAgc3RkOjpwYWlyPEJhc2ljQmxvY2sqLCBWYWx1ZSo+IHBvd0RvdWJsZQog
ICAgIHVwZGF0ZWRMb29wUmVzdWx0VXBzaWxvbi0+c2V0UGhpKGluTG9vcFJlc3VsdCk7CiAgICAg
VXBzaWxvblZhbHVlKiB1cGRhdGVkTG9vcFJlc3VsdCA9IGxvb3BPZGQtPmFwcGVuZE5ldzxVcHNp
bG9uVmFsdWU+KHByb2NlZHVyZSwgb3JpZ2luLCB1cGRhdGVkUmVzdWx0KTsKIAotICAgIGxvb3BP
ZGQtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2NlZHVyZSwgSnVtcCwgb3JpZ2luLCBGcmVx
dWVudGVkQmxvY2sobG9vcEV2ZW5PZGQpKTsKKyAgICBsb29wT2RkLT5hcHBlbmROZXc8VmFsdWU+
KHByb2NlZHVyZSwgSnVtcCwgb3JpZ2luKTsKKyAgICBsb29wT2RkLT5zZXRTdWNjZXNzb3JzKEZy
ZXF1ZW50ZWRCbG9jayhsb29wRXZlbk9kZCkpOwogCiAgICAgLy8gRXZlbiB2YWx1ZSBhbmQgZm9s
bG93aW5nIHRoZSBPZGQuCiAgICAgVmFsdWUqIHNxdWFyZWRJbnB1dCA9IGxvb3BFdmVuT2RkLT5h
cHBlbmROZXc8VmFsdWU+KHByb2NlZHVyZSwgTXVsLCBvcmlnaW4sIGluTG9vcFNxdWFyZWRJbnB1
dCwgaW5Mb29wU3F1YXJlZElucHV0KTsKQEAgLTEwOSwxMCArMTA3LDggQEAgc3RkOjpwYWlyPEJh
c2ljQmxvY2sqLCBWYWx1ZSo+IHBvd0RvdWJsZQogICAgIGluaXRpYWxMb29wQ291bnRlci0+c2V0
UGhpKGluTG9vcENvdW50ZXIpOwogICAgIHVwZGF0ZWRDb3VudGVyVXBzaWxvbi0+c2V0UGhpKGlu
TG9vcENvdW50ZXIpOwogCi0gICAgbG9vcEV2ZW5PZGQtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAotICAgICAgICBwcm9jZWR1cmUsIEJyYW5jaCwgb3JpZ2luLAotICAgICAgICB1cGRhdGVkQ291
bnRlciwKLSAgICAgICAgRnJlcXVlbnRlZEJsb2NrKGxvb3BUZXN0Rm9yRXZlbkNhc2UpLCBGcmVx
dWVudGVkQmxvY2soY29udGludWF0aW9uKSk7CisgICAgbG9vcEV2ZW5PZGQtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvY2VkdXJlLCBCcmFuY2gsIG9yaWdpbiwgdXBkYXRlZENvdW50ZXIpOworICAgIGxv
b3BFdmVuT2RkLT5zZXRTdWNjZXNzb3JzKEZyZXF1ZW50ZWRCbG9jayhsb29wVGVzdEZvckV2ZW5D
YXNlKSwgRnJlcXVlbnRlZEJsb2NrKGNvbnRpbnVhdGlvbikpOwogCiAgICAgLy8gSW5saW5lIGxv
b3AuCiAgICAgVmFsdWUqIGZpbmFsUmVzdWx0UGhpID0gY29udGludWF0aW9uLT5hcHBlbmROZXc8
VmFsdWU+KHByb2NlZHVyZSwgUGhpLCBEb3VibGUsIG9yaWdpbik7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNPcGNvZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNPcGNvZGUuaAkocmV2aXNpb24gMjAzMzcxKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzT3Bjb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTIwNywyMSArMjA3LDIxIEBA
IGVudW0gT3Bjb2RlIDogaW50MTZfdCB7CiAgICAgVXBzaWxvbiwgLy8gVGhpcyB1c2VzIHRoZSBV
cHNpbG9uVmFsdWUgY2xhc3MuCiAgICAgUGhpLAogCi0gICAgLy8gSnVtcC4gVXNlcyB0aGUgQ29u
dHJvbFZhbHVlIGNsYXNzLgorICAgIC8vIEp1bXAuCiAgICAgSnVtcCwKICAgICAKLSAgICAvLyBQ
b2x5bW9ycGhpYyBicmFuY2gsIHVzYWJsZSB3aXRoIGFueSBpbnRlZ2VyIHR5cGUuIEJyYW5jaGVz
IGlmIG5vdCBlcXVhbCB0byB6ZXJvLiBVc2VzIHRoZQotICAgIC8vIENvbnRyb2xWYWx1ZSBjbGFz
cywgd2l0aCB0aGUgMC1pbmRleCBzdWNjZXNzb3IgYmVpbmcgdGhlIHRydWUgc3VjY2Vzc29yLgor
ICAgIC8vIFBvbHltb3JwaGljIGJyYW5jaCwgdXNhYmxlIHdpdGggYW55IGludGVnZXIgdHlwZS4g
QnJhbmNoZXMgaWYgbm90IGVxdWFsIHRvIHplcm8uIFRoZSAwLWluZGV4CisgICAgLy8gc3VjY2Vz
c29yIGlzIHRoZSB0cnVlIHN1Y2Nlc3Nvci4KICAgICBCcmFuY2gsCiAKICAgICAvLyBTd2l0Y2gu
IFN3aXRjaGVzIG92ZXIgZWl0aGVyIEludDMyIG9yIEludDY0LiBVc2VzIHRoZSBTd2l0Y2hWYWx1
ZSBjbGFzcy4KICAgICBTd2l0Y2gsCi0KKyAgICAKICAgICAvLyBSZXR1cm4uIE5vdGUgdGhhdCBC
MyBwcm9jZWR1cmVzIGRvbid0IGtub3cgdGhlaXIgcmV0dXJuIHR5cGUsIHNvIHRoaXMgY2FuIGp1
c3QgcmV0dXJuIGFueQotICAgIC8vIHR5cGUuIFVzZXMgdGhlIENvbnRyb2xWYWx1ZSBjbGFzcy4K
KyAgICAvLyB0eXBlLgogICAgIFJldHVybiwKIAotICAgIC8vIFRoaXMgaXMgYSB0ZXJtaW5hbCB0
aGF0IGluZGljYXRlcyB0aGF0IHdlIHdpbGwgbmV2ZXIgZ2V0IGhlcmUuIFVzZXMgdGhlIENvbnRy
b2xWYWx1ZSBjbGFzcy4KKyAgICAvLyBUaGlzIGlzIGEgdGVybWluYWwgdGhhdCBpbmRpY2F0ZXMg
dGhhdCB3ZSB3aWxsIG5ldmVyIGdldCBoZXJlLgogICAgIE9vcHMKIH07CiAKQEAgLTI1OSw2ICsy
NTksMjAgQEAgaW5saW5lIGJvb2wgaXNDb25zdGFudChPcGNvZGUgb3Bjb2RlKQogICAgIH0KIH0K
IAoraW5saW5lIGJvb2wgaXNEZWZpbml0ZWx5VGVybWluYWwoT3Bjb2RlIG9wY29kZSkKK3sKKyAg
ICBzd2l0Y2ggKG9wY29kZSkgeworICAgIGNhc2UgSnVtcDoKKyAgICBjYXNlIEJyYW5jaDoKKyAg
ICBjYXNlIFN3aXRjaDoKKyAgICBjYXNlIE9vcHM6CisgICAgY2FzZSBSZXR1cm46CisgICAgICAg
IHJldHVybiB0cnVlOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
Cit9CisKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMwogCiBuYW1lc3BhY2UgV1RGIHsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BhdGNocG9pbnRTcGVjaWFsLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQYXRjaHBvaW50U3BlY2lhbC5jcHAJ
KHJldmlzaW9uIDIwMzM3MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BhdGNocG9p
bnRTcGVjaWFsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQ2LDYgKzE0NiwxMSBAQCBDQ2FsbEhl
bHBlcnM6Okp1bXAgUGF0Y2hwb2ludFNwZWNpYWw6OmdlCiAgICAgcmV0dXJuIENDYWxsSGVscGVy
czo6SnVtcCgpOwogfQogCitib29sIFBhdGNocG9pbnRTcGVjaWFsOjppc1Rlcm1pbmFsKEluc3Qm
IGluc3QpCit7CisgICAgcmV0dXJuIGluc3Qub3JpZ2luLT5hczxQYXRjaHBvaW50VmFsdWU+KCkt
PmVmZmVjdHMudGVybWluYWw7Cit9CisKIHZvaWQgUGF0Y2hwb2ludFNwZWNpYWw6OmR1bXBJbXBs
KFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiB7CiAgICAgb3V0LnByaW50KCJQYXRjaHBvaW50Iik7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQYXRjaHBvaW50U3BlY2lhbC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BhdGNocG9pbnRTcGVjaWFs
LmgJKHJldmlzaW9uIDIwMzM3MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BhdGNo
cG9pbnRTcGVjaWFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxNS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTYsNiArNTYsOCBAQCBwcm90ZWN0ZWQ6CiAg
ICAgLy8gZ2VuZXJhdGVzIHRoZSBzdGFja21hcC4gU3VwZXIgY3JhenkgZHVkZSEKIAogICAgIEND
YWxsSGVscGVyczo6SnVtcCBnZW5lcmF0ZShBaXI6Okluc3QmLCBDQ2FsbEhlbHBlcnMmLCBBaXI6
OkdlbmVyYXRpb25Db250ZXh0Jikgb3ZlcnJpZGU7CisgICAgCisgICAgYm9vbCBpc1Rlcm1pbmFs
KEFpcjo6SW5zdCYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBkdW1wSW1wbChQcmludFN0cmVhbSYp
IGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgZGVlcER1bXBJbXBsKFByaW50U3RyZWFtJikgY29u
c3Qgb3ZlcnJpZGU7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQcm9jZWR1cmUu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2NlZHVyZS5j
cHAJKHJldmlzaW9uIDIwMzM3MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1Byb2Nl
ZHVyZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0OCwzMSArMTQ4LDYgQEAgdm9pZCBQcm9jZWR1
cmU6OnJlc2V0VmFsdWVPd25lcnMoKQogCiB2b2lkIFByb2NlZHVyZTo6cmVzZXRSZWFjaGFiaWxp
dHkoKQogewotICAgIGlmIChzaG91bGRWYWxpZGF0ZUlSKCkpIHsKLSAgICAgICAgLy8gVmFsaWRh
dGUgdGhlIGJhc2ljIHByb3BlcnRpZXMgdGhhdCB3ZSBuZWVkIGZvciByZXNldHRpbmcgcmVhY2hh
YmlsaXR5LiBXZSBvZnRlbiByZXNldAotICAgICAgICAvLyByZWFjaGFiaWxpdHkgYmVmb3JlIElS
IHZhbGlkYXRpb24sIHNvIHdpdGhvdXQgdGhpcyBtaW5pLXZhbGlkYXRpb24sIHlvdSB3b3VsZCBj
cmFzaCBpbnNpZGUKLSAgICAgICAgLy8gQjM6OnJlc2V0UmVhY2hhYmlsaXR5KCkgd2l0aG91dCBn
ZXR0aW5nIGFueSBJUiBkdW1wLgotCi0gICAgICAgIEJhc2ljQmxvY2sqIGJhZEJsb2NrID0gbnVs
bHB0cjsKLSAgICAgICAgZm9yIChCYXNpY0Jsb2NrKiBibG9jayA6ICp0aGlzKSB7Ci0gICAgICAg
ICAgICBpZiAoIWJsb2NrLT5zaXplKCkpIHsKLSAgICAgICAgICAgICAgICBiYWRCbG9jayA9IGJs
b2NrOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAg
ICBpZiAoIWJsb2NrLT5sYXN0KCktPmFzPENvbnRyb2xWYWx1ZT4oKSkgewotICAgICAgICAgICAg
ICAgIGJhZEJsb2NrID0gYmxvY2s7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoYmFkQmxvY2spIHsKLSAgICAgICAgICAgIGRh
dGFMb2coIkZBVEFMOiBJbnZhbGlkIGJhc2ljIGJsb2NrICIsICpiYWRCbG9jaywgIiB3aGlsZSBy
dW5uaW5nIFByb2NlZHVyZTo6cmVzZXRSZWFjaGFiaWxpdHkoKS5cbiIpOwotICAgICAgICAgICAg
ZGF0YUxvZygqdGhpcyk7Ci0gICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OwotICAgICAgICB9Ci0gICAgfQotICAgIAogICAgIHJlY29tcHV0ZVByZWRlY2Vzc29ycyhtX2Js
b2Nrcyk7CiAgICAgCiAgICAgLy8gVGhlIGNvbW1vbiBjYXNlIGlzIHRoYXQgdGhpcyBkb2VzIG5v
dCBmaW5kIGFueSBkZWFkIGJsb2Nrcy4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1Byb2NlZHVyZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1By
b2NlZHVyZS5oCShyZXZpc2lvbiAyMDMzNzEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNQcm9jZWR1cmUuaAkod29ya2luZyBjb3B5KQpAQCAtMjE4LDcgKzIxOCwxMCBAQCBwdWJsaWM6
CiAKICAgICBjb25zdCBjaGFyKiBsYXN0UGhhc2VOYW1lKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0
UGhhc2VOYW1lOyB9CiAKLSAgICB2b2lkKiBhZGREYXRhU2VjdGlvbihzaXplX3Qgc2l6ZSk7Cisg
ICAgLy8gQWxsb2NhdGVzIGEgc2xhYiBvZiBtZW1vcnkgdGhhdCB3aWxsIGJlIGtlcHQgYWxpdmUg
YnkgYW55b25lIHdobyBrZWVwcyB0aGUgcmVzdWx0aW5nIGNvZGUKKyAgICAvLyBhbGl2ZS4gR3Jl
YXQgZm9yIGNvbXBpbGVyLWdlbmVyYXRlZCBkYXRhIHNlY3Rpb25zLCBsaWtlIHN3aXRjaCBqdW1w
IHRhYmxlcyBhbmQgY29uc3RhbnQgcG9vbHMuCisgICAgLy8gVGhpcyByZXR1cm5zIG1lbW9yeSB0
aGF0IGhhcyBiZWVuIHplcm8taW5pdGlhbGl6ZWQuCisgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9p
ZCogYWRkRGF0YVNlY3Rpb24oc2l6ZV90KTsKIAogICAgIE9wYXF1ZUJ5cHJvZHVjdHMmIGJ5cHJv
ZHVjdHMoKSB7IHJldHVybiAqbV9ieXByb2R1Y3RzOyB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNSZWR1Y2VTdHJlbmd0aC5jcHAJKHJldmlzaW9uIDIwMzM3MSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1JlZHVjZVN0cmVuZ3RoLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIkIzQmFzaWNCbG9ja0lubGluZXMuaCIK
ICNpbmNsdWRlICJCM0Jsb2NrSW5zZXJ0aW9uU2V0LmgiCiAjaW5jbHVkZSAiQjNDb21wdXRlRGl2
aXNpb25NYWdpYy5oIgotI2luY2x1ZGUgIkIzQ29udHJvbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNE
b21pbmF0b3JzLmgiCiAjaW5jbHVkZSAiQjNJbmRleFNldC5oIgogI2luY2x1ZGUgIkIzSW5zZXJ0
aW9uU2V0SW5saW5lcy5oIgpAQCAtMTcxNyw3ICsxNzE2LDcgQEAgcHJpdmF0ZToKICAgICAgICAg
ICAgICAgICAvLyBSZXBsYWNlIHRoZSByZXN0IG9mIHRoZSBibG9jayB3aXRoIGFuIE9vcHMuCiAg
ICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gbV9pbmRleCArIDE7IGkgPCBtX2Jsb2Nr
LT5zaXplKCkgLSAxOyArK2kpCiAgICAgICAgICAgICAgICAgICAgIG1fYmxvY2stPmF0KGkpLT5y
ZXBsYWNlV2l0aEJvdHRvbShtX2luc2VydGlvblNldCwgbV9pbmRleCk7Ci0gICAgICAgICAgICAg
ICAgbV9ibG9jay0+bGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCktPmNvbnZlcnRUb09vcHMoKTsK
KyAgICAgICAgICAgICAgICBtX2Jsb2NrLT5sYXN0KCktPnJlcGxhY2VXaXRoT29wcyhtX2Jsb2Nr
KTsKICAgICAgICAgICAgICAgICBtX2Jsb2NrLT5sYXN0KCktPnNldE9yaWdpbihjaGVja1ZhbHVl
LT5vcmlnaW4oKSk7CiAKICAgICAgICAgICAgICAgICAvLyBSZXBsYWNlIG91cnNlbHZlcyBsYXN0
LgpAQCAtMTc3Myw2ICsxNzcyLDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIHZhbHVlLT5vcGNvZGUoKSA9PSBTZWxlY3QKICAgICAgICAgICAgICAgICAgICAgICAgICYm
ICh2YWx1ZS0+Y2hpbGQoMSktPmlzQ29uc3RhbnQoKSAmJiB2YWx1ZS0+Y2hpbGQoMiktPmlzQ29u
c3RhbnQoKSk7CiAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAKICAgICAgICAgICAg
IGlmIChzZWxlY3QpIHsKICAgICAgICAgICAgICAgICBzcGVjaWFsaXplU2VsZWN0KHNlbGVjdCk7
CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0xNzgxLDUwICsxNzgxLDQ4IEBAIHByaXZhdGU6
CiAgICAgICAgIH0KIAogICAgICAgICBjYXNlIEJyYW5jaDogewotICAgICAgICAgICAgQ29udHJv
bFZhbHVlKiBicmFuY2ggPSBtX3ZhbHVlLT5hczxDb250cm9sVmFsdWU+KCk7Ci0KICAgICAgICAg
ICAgIC8vIFR1cm4gdGhpczogQnJhbmNoKE5vdEVxdWFsKHgsIDApKQogICAgICAgICAgICAgLy8g
SW50byB0aGlzOiBCcmFuY2goeCkKLSAgICAgICAgICAgIGlmIChicmFuY2gtPmNoaWxkKDApLT5v
cGNvZGUoKSA9PSBOb3RFcXVhbCAmJiBicmFuY2gtPmNoaWxkKDApLT5jaGlsZCgxKS0+aXNJbnQo
MCkpIHsKLSAgICAgICAgICAgICAgICBicmFuY2gtPmNoaWxkKDApID0gYnJhbmNoLT5jaGlsZCgw
KS0+Y2hpbGQoMCk7CisgICAgICAgICAgICBpZiAobV92YWx1ZS0+Y2hpbGQoMCktPm9wY29kZSgp
ID09IE5vdEVxdWFsICYmIG1fdmFsdWUtPmNoaWxkKDApLT5jaGlsZCgxKS0+aXNJbnQoMCkpIHsK
KyAgICAgICAgICAgICAgICBtX3ZhbHVlLT5jaGlsZCgwKSA9IG1fdmFsdWUtPmNoaWxkKDApLT5j
aGlsZCgwKTsKICAgICAgICAgICAgICAgICBtX2NoYW5nZWQgPSB0cnVlOwogICAgICAgICAgICAg
fQogCiAgICAgICAgICAgICAvLyBUdXJuIHRoaXM6IEJyYW5jaChFcXVhbCh4LCAwKSwgdGhlbiwg
ZWxzZSkKICAgICAgICAgICAgIC8vIEludG8gdGhpczogQnJhbmNoKHgsIGVsc2UsIHRoZW4pCi0g
ICAgICAgICAgICBpZiAoYnJhbmNoLT5jaGlsZCgwKS0+b3Bjb2RlKCkgPT0gRXF1YWwgJiYgYnJh
bmNoLT5jaGlsZCgwKS0+Y2hpbGQoMSktPmlzSW50KDApKSB7Ci0gICAgICAgICAgICAgICAgYnJh
bmNoLT5jaGlsZCgwKSA9IGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDApOwotICAgICAgICAgICAg
ICAgIHN0ZDo6c3dhcChicmFuY2gtPnRha2VuKCksIGJyYW5jaC0+bm90VGFrZW4oKSk7CisgICAg
ICAgICAgICBpZiAobV92YWx1ZS0+Y2hpbGQoMCktPm9wY29kZSgpID09IEVxdWFsICYmIG1fdmFs
dWUtPmNoaWxkKDApLT5jaGlsZCgxKS0+aXNJbnQoMCkpIHsKKyAgICAgICAgICAgICAgICBtX3Zh
bHVlLT5jaGlsZCgwKSA9IG1fdmFsdWUtPmNoaWxkKDApLT5jaGlsZCgwKTsKKyAgICAgICAgICAg
ICAgICBzdGQ6OnN3YXAobV9ibG9jay0+dGFrZW4oKSwgbV9ibG9jay0+bm90VGFrZW4oKSk7CiAg
ICAgICAgICAgICAgICAgbV9jaGFuZ2VkID0gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIAogICAgICAgICAgICAgLy8gVHVybiB0aGlzOiBCcmFuY2goQml0WG9yKGJvb2wsIDEpLCB0
aGVuLCBlbHNlKQogICAgICAgICAgICAgLy8gSW50byB0aGlzOiBCcmFuY2goYm9vbCwgZWxzZSwg
dGhlbikKLSAgICAgICAgICAgIGlmIChicmFuY2gtPmNoaWxkKDApLT5vcGNvZGUoKSA9PSBCaXRY
b3IKLSAgICAgICAgICAgICAgICAmJiBicmFuY2gtPmNoaWxkKDApLT5jaGlsZCgxKS0+aXNJbnQz
MigxKQotICAgICAgICAgICAgICAgICYmIGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDApLT5yZXR1
cm5zQm9vbCgpKSB7Ci0gICAgICAgICAgICAgICAgYnJhbmNoLT5jaGlsZCgwKSA9IGJyYW5jaC0+
Y2hpbGQoMCktPmNoaWxkKDApOwotICAgICAgICAgICAgICAgIHN0ZDo6c3dhcChicmFuY2gtPnRh
a2VuKCksIGJyYW5jaC0+bm90VGFrZW4oKSk7CisgICAgICAgICAgICBpZiAobV92YWx1ZS0+Y2hp
bGQoMCktPm9wY29kZSgpID09IEJpdFhvcgorICAgICAgICAgICAgICAgICYmIG1fdmFsdWUtPmNo
aWxkKDApLT5jaGlsZCgxKS0+aXNJbnQzMigxKQorICAgICAgICAgICAgICAgICYmIG1fdmFsdWUt
PmNoaWxkKDApLT5jaGlsZCgwKS0+cmV0dXJuc0Jvb2woKSkgeworICAgICAgICAgICAgICAgIG1f
dmFsdWUtPmNoaWxkKDApID0gbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDApOworICAgICAgICAg
ICAgICAgIHN0ZDo6c3dhcChtX2Jsb2NrLT50YWtlbigpLCBtX2Jsb2NrLT5ub3RUYWtlbigpKTsK
ICAgICAgICAgICAgICAgICBtX2NoYW5nZWQgPSB0cnVlOwogICAgICAgICAgICAgfQogCiAgICAg
ICAgICAgICAvLyBUdXJuIHRoaXM6IEJyYW5jaChCaXRBbmQoYm9vbCwgeHliMSksIHRoZW4sIGVs
c2UpCiAgICAgICAgICAgICAvLyBJbnRvIHRoaXM6IEJyYW5jaChib29sLCB0aGVuLCBlbHNlKQot
ICAgICAgICAgICAgaWYgKGJyYW5jaC0+Y2hpbGQoMCktPm9wY29kZSgpID09IEJpdEFuZAotICAg
ICAgICAgICAgICAgICYmIGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDEpLT5oYXNJbnQoKQotICAg
ICAgICAgICAgICAgICYmIGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDEpLT5hc0ludCgpICYgMQot
ICAgICAgICAgICAgICAgICYmIGJyYW5jaC0+Y2hpbGQoMCktPmNoaWxkKDApLT5yZXR1cm5zQm9v
bCgpKSB7Ci0gICAgICAgICAgICAgICAgYnJhbmNoLT5jaGlsZCgwKSA9IGJyYW5jaC0+Y2hpbGQo
MCktPmNoaWxkKDApOworICAgICAgICAgICAgaWYgKG1fdmFsdWUtPmNoaWxkKDApLT5vcGNvZGUo
KSA9PSBCaXRBbmQKKyAgICAgICAgICAgICAgICAmJiBtX3ZhbHVlLT5jaGlsZCgwKS0+Y2hpbGQo
MSktPmhhc0ludCgpCisgICAgICAgICAgICAgICAgJiYgbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxk
KDEpLT5hc0ludCgpICYgMQorICAgICAgICAgICAgICAgICYmIG1fdmFsdWUtPmNoaWxkKDApLT5j
aGlsZCgwKS0+cmV0dXJuc0Jvb2woKSkgeworICAgICAgICAgICAgICAgIG1fdmFsdWUtPmNoaWxk
KDApID0gbV92YWx1ZS0+Y2hpbGQoMCktPmNoaWxkKDApOwogICAgICAgICAgICAgICAgIG1fY2hh
bmdlZCA9IHRydWU7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIFRyaVN0YXRlIHRyaVN0
YXRlID0gYnJhbmNoLT5jaGlsZCgwKS0+YXNUcmlTdGF0ZSgpOworICAgICAgICAgICAgVHJpU3Rh
dGUgdHJpU3RhdGUgPSBtX3ZhbHVlLT5jaGlsZCgwKS0+YXNUcmlTdGF0ZSgpOwogCiAgICAgICAg
ICAgICAvLyBUdXJuIHRoaXM6IEJyYW5jaCgwLCB0aGVuLCBlbHNlKQogICAgICAgICAgICAgLy8g
SW50byB0aGlzOiBKdW1wKGVsc2UpCiAgICAgICAgICAgICBpZiAodHJpU3RhdGUgPT0gRmFsc2VU
cmlTdGF0ZSkgewotICAgICAgICAgICAgICAgIGJyYW5jaC0+dGFrZW4oKS5ibG9jaygpLT5yZW1v
dmVQcmVkZWNlc3NvcihtX2Jsb2NrKTsKLSAgICAgICAgICAgICAgICBicmFuY2gtPmNvbnZlcnRU
b0p1bXAoYnJhbmNoLT5ub3RUYWtlbigpLmJsb2NrKCkpOworICAgICAgICAgICAgICAgIG1fYmxv
Y2stPnRha2VuKCkuYmxvY2soKS0+cmVtb3ZlUHJlZGVjZXNzb3IobV9ibG9jayk7CisgICAgICAg
ICAgICAgICAgbV92YWx1ZS0+cmVwbGFjZVdpdGhKdW1wKG1fYmxvY2ssIG1fYmxvY2stPm5vdFRh
a2VuKCkpOwogICAgICAgICAgICAgICAgIG1fY2hhbmdlZENGRyA9IHRydWU7CiAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CkBAIC0xODMyLDggKzE4MzAsOCBAQCBwcml2YXRl
OgogICAgICAgICAgICAgLy8gVHVybiB0aGlzOiBCcmFuY2gobm90IDAsIHRoZW4sIGVsc2UpCiAg
ICAgICAgICAgICAvLyBJbnRvIHRoaXM6IEp1bXAodGhlbikKICAgICAgICAgICAgIGlmICh0cmlT
dGF0ZSA9PSBUcnVlVHJpU3RhdGUpIHsKLSAgICAgICAgICAgICAgICBicmFuY2gtPm5vdFRha2Vu
KCkuYmxvY2soKS0+cmVtb3ZlUHJlZGVjZXNzb3IobV9ibG9jayk7Ci0gICAgICAgICAgICAgICAg
YnJhbmNoLT5jb252ZXJ0VG9KdW1wKGJyYW5jaC0+dGFrZW4oKS5ibG9jaygpKTsKKyAgICAgICAg
ICAgICAgICBtX2Jsb2NrLT5ub3RUYWtlbigpLmJsb2NrKCktPnJlbW92ZVByZWRlY2Vzc29yKG1f
YmxvY2spOworICAgICAgICAgICAgICAgIG1fdmFsdWUtPnJlcGxhY2VXaXRoSnVtcChtX2Jsb2Nr
LCBtX2Jsb2NrLT50YWtlbigpKTsKICAgICAgICAgICAgICAgICBtX2NoYW5nZWRDRkcgPSB0cnVl
OwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpAQCAtMTg0MiwxMiArMTg0
MCwxMiBAQCBwcml2YXRlOgogICAgICAgICAgICAgLy8gb2YgbWFrZXMgc2Vuc2UgaGVyZSBiZWNh
dXNlIGl0J3MgY2hlYXAsIGJ1dCBoYWNrcyBsaWtlIHRoaXMgc2hvdyB0aGF0IHdlJ3JlIGdvaW5n
CiAgICAgICAgICAgICAvLyB0byBuZWVkIFNDQ1AuCiAgICAgICAgICAgICBWYWx1ZSogY2hlY2sg
PSBtX3B1cmVDU0UuZmluZE1hdGNoKAotICAgICAgICAgICAgICAgIFZhbHVlS2V5KENoZWNrLCBW
b2lkLCBicmFuY2gtPmNoaWxkKDApKSwgbV9ibG9jaywgKm1fZG9taW5hdG9ycyk7CisgICAgICAg
ICAgICAgICAgVmFsdWVLZXkoQ2hlY2ssIFZvaWQsIG1fdmFsdWUtPmNoaWxkKDApKSwgbV9ibG9j
aywgKm1fZG9taW5hdG9ycyk7CiAgICAgICAgICAgICBpZiAoY2hlY2spIHsKICAgICAgICAgICAg
ICAgICAvLyBUaGUgQ2hlY2sgd291bGQgaGF2ZSBzaWRlLWV4aXRlZCBpZiBjaGlsZCgwKSB3YXMg
bm9uLXplcm8uIFNvLCBpdCBtdXN0IGJlCiAgICAgICAgICAgICAgICAgLy8gemVybyBoZXJlLgot
ICAgICAgICAgICAgICAgIGJyYW5jaC0+dGFrZW4oKS5ibG9jaygpLT5yZW1vdmVQcmVkZWNlc3Nv
cihtX2Jsb2NrKTsKLSAgICAgICAgICAgICAgICBicmFuY2gtPmNvbnZlcnRUb0p1bXAoYnJhbmNo
LT5ub3RUYWtlbigpLmJsb2NrKCkpOworICAgICAgICAgICAgICAgIG1fYmxvY2stPnRha2VuKCku
YmxvY2soKS0+cmVtb3ZlUHJlZGVjZXNzb3IobV9ibG9jayk7CisgICAgICAgICAgICAgICAgbV92
YWx1ZS0+cmVwbGFjZVdpdGhKdW1wKG1fYmxvY2ssIG1fYmxvY2stPm5vdFRha2VuKCkpOwogICAg
ICAgICAgICAgICAgIG1fY2hhbmdlZENGRyA9IHRydWU7CiAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICBicmVhazsKQEAgLTE5ODYsMTMgKzE5ODQsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgLy8g
UmVtb3ZlIHRoZSB2YWx1ZXMgZnJvbSB0aGUgcHJlZGVjZXNzb3IuCiAgICAgICAgIHByZWRlY2Vz
c29yLT52YWx1ZXMoKS5yZXNpemUoc3RhcnRJbmRleCk7CiAgICAgICAgIAotICAgICAgICBwcmVk
ZWNlc3Nvci0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCi0gICAgICAgICAgICBtX3Byb2MsIEJy
YW5jaCwgc291cmNlLT5vcmlnaW4oKSwgcHJlZGljYXRlLAotICAgICAgICAgICAgRnJlcXVlbnRl
ZEJsb2NrKGNhc2VzWzBdKSwgRnJlcXVlbnRlZEJsb2NrKGNhc2VzWzFdKSk7CisgICAgICAgIHBy
ZWRlY2Vzc29yLT5hcHBlbmROZXc8VmFsdWU+KG1fcHJvYywgQnJhbmNoLCBzb3VyY2UtPm9yaWdp
bigpLCBwcmVkaWNhdGUpOworICAgICAgICBwcmVkZWNlc3Nvci0+c2V0U3VjY2Vzc29ycyhGcmVx
dWVudGVkQmxvY2soY2FzZXNbMF0pLCBGcmVxdWVudGVkQmxvY2soY2FzZXNbMV0pKTsKIAogICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVtQ2FzZXM7ICsraSkgewotICAgICAgICAg
ICAgY2FzZXNbaV0tPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAotICAgICAgICAgICAgICAgIG1f
cHJvYywgSnVtcCwgbV92YWx1ZS0+b3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7
CisgICAgICAgICAgICBjYXNlc1tpXS0+YXBwZW5kTmV3PFZhbHVlPihtX3Byb2MsIEp1bXAsIG1f
dmFsdWUtPm9yaWdpbigpKTsKKyAgICAgICAgICAgIGNhc2VzW2ldLT5zZXRTdWNjZXNzb3JzKEZy
ZXF1ZW50ZWRCbG9jayhtX2Jsb2NrKSk7CiAgICAgICAgIH0KIAogICAgICAgICBtX2NoYW5nZWQg
PSB0cnVlOwpAQCAtMjIyMSw3ICsyMjE4LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBkYXRhTG9nKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ2hh
bmdpbmcgIiwgcG9pbnRlckR1bXAoYmxvY2spLCAiJ3MgdGVybWluYWwgdG8gYSBKdW1wLlxuIik7
CiAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBibG9j
ay0+bGFzdCgpLT5hczxDb250cm9sVmFsdWU+KCktPmNvbnZlcnRUb0p1bXAoZmlyc3RTdWNjZXNz
b3IpOworICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2stPmxhc3QoKS0+cmVwbGFjZVdpdGhK
dW1wKGJsb2NrLCBGcmVxdWVudGVkQmxvY2soZmlyc3RTdWNjZXNzb3IpKTsKICAgICAgICAgICAg
ICAgICAgICAgICAgIG1fY2hhbmdlZENGRyA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICB9CkBAIC0yMjM5LDE2ICsyMjM2LDE4IEBAIHByaXZhdGU6CiAgICAg
ICAgICAgICAgICAgICAgIC8vIFJlbW92ZSB0aGUgdGVybWluYWwuCiAgICAgICAgICAgICAgICAg
ICAgIFZhbHVlKiB2YWx1ZSA9IGJsb2NrLT52YWx1ZXMoKS50YWtlTGFzdCgpOwogICAgICAgICAg
ICAgICAgICAgICBPcmlnaW4ganVtcE9yaWdpbiA9IHZhbHVlLT5vcmlnaW4oKTsKLSAgICAgICAg
ICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQodmFsdWUtPmFzPENvbnRyb2xWYWx1ZT4oKSk7Cisg
ICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKHZhbHVlLT5lZmZlY3RzKCkudGVybWlu
YWwpOwogICAgICAgICAgICAgICAgICAgICBtX3Byb2MuZGVsZXRlVmFsdWUodmFsdWUpOwogICAg
ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgLy8gQXBwZW5kIHRoZSBmdWxs
IGNvbnRlbnRzIG9mIHRoZSBzdWNjZXNzb3IgdG8gdGhlIHByZWRlY2Vzc29yLgogICAgICAgICAg
ICAgICAgICAgICBibG9jay0+dmFsdWVzKCkuYXBwZW5kVmVjdG9yKHN1Y2Nlc3Nvci0+dmFsdWVz
KCkpOworICAgICAgICAgICAgICAgICAgICBibG9jay0+c3VjY2Vzc29ycygpID0gc3VjY2Vzc29y
LT5zdWNjZXNzb3JzKCk7CiAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg
ICAvLyBNYWtlIHN1cmUgdGhhdCB0aGUgc3VjY2Vzc29yIGhhcyBub3RoaW5nIGxlZnQgaW4gaXQu
IE1ha2Ugc3VyZSB0aGF0IHRoZSBibG9jawogICAgICAgICAgICAgICAgICAgICAvLyBoYXMgYSB0
ZXJtaW5hbCBzbyB0aGF0IG5vYm9keSBjaG9rZXMgd2hlbiB0aGV5IGxvb2sgYXQgaXQuCiAgICAg
ICAgICAgICAgICAgICAgIHN1Y2Nlc3Nvci0+dmFsdWVzKCkucmVzaXplKDApOwotICAgICAgICAg
ICAgICAgICAgICBzdWNjZXNzb3ItPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KG1fcHJvYywgT29w
cywganVtcE9yaWdpbik7CisgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3Nvci0+YXBwZW5kTmV3
PFZhbHVlPihtX3Byb2MsIE9vcHMsIGp1bXBPcmlnaW4pOworICAgICAgICAgICAgICAgICAgICBz
dWNjZXNzb3ItPmNsZWFyU3VjY2Vzc29ycygpOwogICAgICAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICAgICAgLy8gRW5zdXJlIHRoYXQgcHJlZGVjZXNzb3JzIG9mIGJsb2NrJ3MgbmV3
IHN1Y2Nlc3NvcnMga25vdyB3aGF0J3MgdXAuCiAgICAgICAgICAgICAgICAgICAgIGZvciAoQmFz
aWNCbG9jayogbmV3U3VjY2Vzc29yIDogYmxvY2stPnN1Y2Nlc3NvckJsb2NrcygpKQpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcEdlbmVyYXRp
b25QYXJhbXMuY3BwCShyZXZpc2lvbiAyMDMzNzEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNTdGFja21hcEdlbmVyYXRpb25QYXJhbXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU5LDYgKzU5
LDI3IEBAIFJlZ2lzdGVyU2V0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtczo6dW4KICAgICByZXR1
cm4gcmVzdWx0OwogfQogCitWZWN0b3I8Qm94PENDYWxsSGVscGVyczo6TGFiZWw+PiBTdGFja21h
cEdlbmVyYXRpb25QYXJhbXM6OnN1Y2Nlc3NvckxhYmVscygpIGNvbnN0Cit7CisgICAgUkVMRUFT
RV9BU1NFUlQobV9jb250ZXh0LmluZGV4SW5CbG9jayA9PSBtX2NvbnRleHQuY3VycmVudEJsb2Nr
LT5zaXplKCkgLSAxKTsKKyAgICBSRUxFQVNFX0FTU0VSVChtX3ZhbHVlLT5lZmZlY3RzKCkudGVy
bWluYWwpOworICAgIAorICAgIFZlY3RvcjxCb3g8Q0NhbGxIZWxwZXJzOjpMYWJlbD4+IHJlc3Vs
dChtX2NvbnRleHQuY3VycmVudEJsb2NrLT5udW1TdWNjZXNzb3JzKCkpOworICAgIGZvciAodW5z
aWduZWQgaSA9IG1fY29udGV4dC5jdXJyZW50QmxvY2stPm51bVN1Y2Nlc3NvcnMoKTsgaS0tOykK
KyAgICAgICAgcmVzdWx0W2ldID0gbV9jb250ZXh0LmJsb2NrTGFiZWxzW21fY29udGV4dC5jdXJy
ZW50QmxvY2stPnN1Y2Nlc3NvckJsb2NrKGkpXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiti
b29sIFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtczo6ZmFsbHNUaHJvdWdoVG9TdWNjZXNzb3IodW5z
aWduZWQgc3VjY2Vzc29ySW5kZXgpIGNvbnN0Cit7CisgICAgUkVMRUFTRV9BU1NFUlQobV9jb250
ZXh0LmluZGV4SW5CbG9jayA9PSBtX2NvbnRleHQuY3VycmVudEJsb2NrLT5zaXplKCkgLSAxKTsK
KyAgICBSRUxFQVNFX0FTU0VSVChtX3ZhbHVlLT5lZmZlY3RzKCkudGVybWluYWwpOworICAgIAor
ICAgIEFpcjo6QmFzaWNCbG9jayogc3VjY2Vzc29yID0gbV9jb250ZXh0LmN1cnJlbnRCbG9jay0+
c3VjY2Vzc29yQmxvY2soc3VjY2Vzc29ySW5kZXgpOworICAgIEFpcjo6QmFzaWNCbG9jayogbmV4
dEJsb2NrID0gbV9jb250ZXh0LmNvZGUtPmZpbmROZXh0QmxvY2sobV9jb250ZXh0LmN1cnJlbnRC
bG9jayk7CisgICAgcmV0dXJuIHN1Y2Nlc3NvciA9PSBuZXh0QmxvY2s7Cit9CisKIFByb2NlZHVy
ZSYgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zOjpwcm9jKCkgY29uc3QKIHsKICAgICByZXR1cm4g
bV9jb250ZXh0LmNvZGUtPnByb2MoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM1N0YWNrbWFwR2VuZXJhdGlvblBhcmFtcy5oCShyZXZpc2lvbiAyMDMzNzEp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcEdlbmVyYXRpb25QYXJhbXMu
aAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsOSBAQAogCiAjaW5jbHVkZSAiQWlyR2VuZXJh
dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJCM1ZhbHVlUmVwLmgiCisjaW5jbHVkZSAiQ0NhbGxI
ZWxwZXJzLmgiCiAjaW5jbHVkZSAiUmVnaXN0ZXJTZXQuaCIKKyNpbmNsdWRlIDx3dGYvQm94Lmg+
CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCkBAIC0zOSw2ICs0MSw4IEBAIGNs
YXNzIFBhdGNocG9pbnRTcGVjaWFsOwogY2xhc3MgUHJvY2VkdXJlOwogY2xhc3MgU3RhY2ttYXBW
YWx1ZTsKIAorLy8gTk9URTogSXQncyBwb3NzaWJsZSB0byBjYXB0dXJlIFN0YWNrbWFwR2VuZXJh
dGlvblBhcmFtcyBieSB2YWx1ZSwgYnV0IG5vdCBhbGwgb2YgdGhlIG1ldGhvZHMgd2lsbAorLy8g
d29yayBpZiB5b3UgZG8gdGhhdC4KIGNsYXNzIFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyB7CiBw
dWJsaWM6CiAgICAgLy8gVGhpcyBpcyB0aGUgc3RhY2ttYXAgdmFsdWUgdGhhdCB3ZSdyZSBnZW5l
cmF0aW5nLgpAQCAtODAsOSArODQsMTggQEAgcHVibGljOgogCiAgICAgR1BSUmVnIGdwU2NyYXRj
aCh1bnNpZ25lZCBpbmRleCkgY29uc3QgeyByZXR1cm4gbV9ncFNjcmF0Y2hbaW5kZXhdOyB9CiAg
ICAgRlBSUmVnIGZwU2NyYXRjaCh1bnNpZ25lZCBpbmRleCkgY29uc3QgeyByZXR1cm4gbV9mcFNj
cmF0Y2hbaW5kZXhdOyB9CisgICAgCisgICAgLy8gVGhpcyBpcyBjb21wdXRlZCBsYXppbHksIHNv
IGl0IHdvbid0IHdvcmsgaWYgeW91IGNhcHR1cmUgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zIGJ5
IHZhbHVlLgorICAgIC8vIFRoZXNlIGxhYmVscyB3aWxsIGdldCBwb3B1bGF0ZWQgYmVmb3JlIGFu
eSBsYXRlIHBhdGhzIG9yIGxpbmsgdGFza3MgZXhlY3V0ZS4KKyAgICBKU19FWFBPUlRfUFJJVkFU
RSBWZWN0b3I8Qm94PENDYWxsSGVscGVyczo6TGFiZWw+PiBzdWNjZXNzb3JMYWJlbHMoKSBjb25z
dDsKKyAgICAKKyAgICAvLyBUaGlzIGlzIGNvbXB1dGVkIGxhemlseSwgc28gaXQgd29uJ3Qgd29y
ayBpZiB5b3UgY2FwdHVyZSBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMgYnkgdmFsdWUuCisgICAg
Ly8gUmV0dXJucyB0cnVlIGlmIHRoZSBzdWNjZXNzb3IgYXQgdGhlIGdpdmVuIGluZGV4IGlzIGdv
aW5nIHRvIGJlIGVtaXR0ZWQgcmlnaHQgYWZ0ZXIgdGhlCisgICAgLy8gcGF0Y2hwb2ludC4KKyAg
ICBib29sIGZhbGxzVGhyb3VnaFRvU3VjY2Vzc29yKHVuc2lnbmVkIHN1Y2Nlc3NvckluZGV4KSBj
b25zdDsKIAogICAgIC8vIFRoaXMgaXMgcHJvdmlkZWQgZm9yIGNvbnZlbmllbmNlOyBpdCBtZWFu
cyB0aGF0IHlvdSBkb24ndCBoYXZlIHRvIGNhcHR1cmUgaXQgaWYgeW91IGRvbid0IHdhbnQgdG8u
Ci0gICAgUHJvY2VkdXJlJiBwcm9jKCkgY29uc3Q7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgUHJv
Y2VkdXJlJiBwcm9jKCkgY29uc3Q7CiAgICAgCiAgICAgLy8gVGhlIEFpcjo6R2VuZXJhdGlvbkNv
bnRleHQgZ2l2ZXMgeW91IGV2ZW4gbW9yZSBwb3dlci4KICAgICBBaXI6OkdlbmVyYXRpb25Db250
ZXh0JiBjb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZXh0OyB9OwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzU3dpdGNoVmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N3aXRjaFZhbHVlLmNwcAkocmV2aXNpb24gMjAzMzcxKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3dpdGNoVmFsdWUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zNywzMCArMzcsNzYgQEAgU3dpdGNoVmFsdWU6On5Td2l0Y2hWYWx1ZSgpCiB7CiB9
CiAKLVN3aXRjaENhc2UgU3dpdGNoVmFsdWU6OnJlbW92ZUNhc2UodW5zaWduZWQgaW5kZXgpCitT
d2l0Y2hDYXNlIFN3aXRjaFZhbHVlOjpyZW1vdmVDYXNlKEJhc2ljQmxvY2sqIGJsb2NrLCB1bnNp
Z25lZCBpbmRleCkKIHsKLSAgICBGcmVxdWVudGVkQmxvY2sgcmVzdWx0QmxvY2sgPSBtX3N1Y2Nl
c3NvcnNbaW5kZXhdOworICAgIEZyZXF1ZW50ZWRCbG9jayByZXN1bHRCbG9jayA9IGJsb2NrLT5z
dWNjZXNzb3IoaW5kZXgpOwogICAgIGludDY0X3QgcmVzdWx0VmFsdWUgPSBtX3ZhbHVlc1tpbmRl
eF07Ci0gICAgbV9zdWNjZXNzb3JzW2luZGV4XSA9IG1fc3VjY2Vzc29ycy5sYXN0KCk7Ci0gICAg
bV9zdWNjZXNzb3JzLnJlbW92ZUxhc3QoKTsKKyAgICBibG9jay0+c3VjY2Vzc29yKGluZGV4KSA9
IGJsb2NrLT5zdWNjZXNzb3JzKCkubGFzdCgpOworICAgIGJsb2NrLT5zdWNjZXNzb3JzKCkucmVt
b3ZlTGFzdCgpOwogICAgIG1fdmFsdWVzW2luZGV4XSA9IG1fdmFsdWVzLmxhc3QoKTsKICAgICBt
X3ZhbHVlcy5yZW1vdmVMYXN0KCk7CiAgICAgcmV0dXJuIFN3aXRjaENhc2UocmVzdWx0VmFsdWUs
IHJlc3VsdEJsb2NrKTsKIH0KIAotdm9pZCBTd2l0Y2hWYWx1ZTo6YXBwZW5kQ2FzZShjb25zdCBT
d2l0Y2hDYXNlJiBzd2l0Y2hDYXNlKQorYm9vbCBTd2l0Y2hWYWx1ZTo6aGFzRmFsbFRocm91Z2go
Y29uc3QgQmFzaWNCbG9jayogYmxvY2spIGNvbnN0Cit7CisgICAgdW5zaWduZWQgbnVtU3VjY2Vz
c29ycyA9IGJsb2NrLT5udW1TdWNjZXNzb3JzKCk7CisgICAgdW5zaWduZWQgbnVtVmFsdWVzID0g
bV92YWx1ZXMuc2l6ZSgpOworICAgIFJFTEVBU0VfQVNTRVJUKG51bVZhbHVlcyA9PSBudW1TdWNj
ZXNzb3JzIHx8IG51bVZhbHVlcyArIDEgPT0gbnVtU3VjY2Vzc29ycyk7CisgICAgCisgICAgcmV0
dXJuIG51bVZhbHVlcyArIDEgPT0gbnVtU3VjY2Vzc29yczsKK30KKworYm9vbCBTd2l0Y2hWYWx1
ZTo6aGFzRmFsbFRocm91Z2goKSBjb25zdAoreworICAgIHJldHVybiBoYXNGYWxsVGhyb3VnaChv
d25lcik7Cit9CisKK3ZvaWQgU3dpdGNoVmFsdWU6OnNldEZhbGxUaHJvdWdoKEJhc2ljQmxvY2sq
IGJsb2NrLCBjb25zdCBGcmVxdWVudGVkQmxvY2smIHRhcmdldCkKK3sKKyAgICBpZiAoIWhhc0Zh
bGxUaHJvdWdoKCkpCisgICAgICAgIGJsb2NrLT5zdWNjZXNzb3JzKCkuYXBwZW5kKHRhcmdldCk7
CisgICAgZWxzZQorICAgICAgICBibG9jay0+c3VjY2Vzc29ycygpLmxhc3QoKSA9IHRhcmdldDsK
KyAgICBBU1NFUlQoaGFzRmFsbFRocm91Z2goYmxvY2spKTsKK30KKwordm9pZCBTd2l0Y2hWYWx1
ZTo6YXBwZW5kQ2FzZShCYXNpY0Jsb2NrKiBibG9jaywgY29uc3QgU3dpdGNoQ2FzZSYgc3dpdGNo
Q2FzZSkKIHsKLSAgICBtX3N1Y2Nlc3NvcnMuYXBwZW5kKG1fc3VjY2Vzc29ycy5sYXN0KCkpOwot
ICAgIG1fc3VjY2Vzc29yc1ttX3N1Y2Nlc3NvcnMuc2l6ZSgpIC0gMl0gPSBzd2l0Y2hDYXNlLnRh
cmdldCgpOworICAgIGlmICghaGFzRmFsbFRocm91Z2goKSkKKyAgICAgICAgYmxvY2stPnN1Y2Nl
c3NvcnMoKS5hcHBlbmQoc3dpdGNoQ2FzZS50YXJnZXQoKSk7CisgICAgZWxzZSB7CisgICAgICAg
IGJsb2NrLT5zdWNjZXNzb3JzKCkuYXBwZW5kKGJsb2NrLT5zdWNjZXNzb3JzKCkubGFzdCgpKTsK
KyAgICAgICAgYmxvY2stPnN1Y2Nlc3NvcihibG9jay0+bnVtU3VjY2Vzc29ycygpIC0gMikgPSBz
d2l0Y2hDYXNlLnRhcmdldCgpOworICAgIH0KICAgICBtX3ZhbHVlcy5hcHBlbmQoc3dpdGNoQ2Fz
ZS5jYXNlVmFsdWUoKSk7CiB9CiAKK3ZvaWQgU3dpdGNoVmFsdWU6OnNldEZhbGxUaHJvdWdoKGNv
bnN0IEZyZXF1ZW50ZWRCbG9jayYgdGFyZ2V0KQoreworICAgIHNldEZhbGxUaHJvdWdoKG93bmVy
LCB0YXJnZXQpOworfQorCit2b2lkIFN3aXRjaFZhbHVlOjphcHBlbmRDYXNlKGNvbnN0IFN3aXRj
aENhc2UmIHN3aXRjaENhc2UpCit7CisgICAgYXBwZW5kQ2FzZShvd25lciwgc3dpdGNoQ2FzZSk7
Cit9CisKK3ZvaWQgU3dpdGNoVmFsdWU6OmR1bXBTdWNjZXNzb3JzKGNvbnN0IEJhc2ljQmxvY2sq
IGJsb2NrLCBQcmludFN0cmVhbSYgb3V0KSBjb25zdAoreworICAgIC8vIFdlIG11c3Qgbm90IGNy
YXNoIGR1ZSB0byBhIG51bWJlci1vZi1zdWNjZXNzb3JzIG1pc21hdGNoISBTb21lb25lIGRlYnVn
Z2luZyBhCisgICAgLy8gbnVtYmVyLW9mLXN1Y2Nlc3NvcnMgYnVnIHdpbGwgd2FudCB0byBkdW1w
IElSIQorICAgIGlmIChudW1DYXNlVmFsdWVzKCkgKyAxICE9IGJsb2NrLT5udW1TdWNjZXNzb3Jz
KCkpIHsKKyAgICAgICAgVmFsdWU6OmR1bXBTdWNjZXNzb3JzKGJsb2NrLCBvdXQpOworICAgICAg
ICByZXR1cm47CisgICAgfQorICAgIAorICAgIG91dC5wcmludChjYXNlcyhibG9jaykpOworfQor
CiB2b2lkIFN3aXRjaFZhbHVlOjpkdW1wTWV0YShDb21tYVByaW50ZXImIGNvbW1hLCBQcmludFN0
cmVhbSYgb3V0KSBjb25zdAogewotICAgIC8vIFRoaXMgZGVzdHJ1Y3RpdmVseSBvdmVycmlkZXMg
Q29udHJvbFZhbHVlJ3MgZHVtcE1ldGEoKS4KLSAgICBmb3IgKFN3aXRjaENhc2Ugc3dpdGNoQ2Fz
ZSA6ICp0aGlzKQotICAgICAgICBvdXQucHJpbnQoY29tbWEsIHN3aXRjaENhc2UpOwotICAgIG91
dC5wcmludChjb21tYSwgImZhbGxUaHJvdWdoID0gIiwgZmFsbFRocm91Z2goKSk7CisgICAgb3V0
LnByaW50KGNvbW1hLCAiY2FzZXMgPSBbIiwgbGlzdER1bXAobV92YWx1ZXMpLCAiXSIpOwogfQog
CiBWYWx1ZSogU3dpdGNoVmFsdWU6OmNsb25lSW1wbCgpIGNvbnN0CkBAIC02OCwxMCArMTE0LDkg
QEAgVmFsdWUqIFN3aXRjaFZhbHVlOjpjbG9uZUltcGwoKSBjb25zdAogICAgIHJldHVybiBuZXcg
U3dpdGNoVmFsdWUoKnRoaXMpOwogfQogCi1Td2l0Y2hWYWx1ZTo6U3dpdGNoVmFsdWUoT3JpZ2lu
IG9yaWdpbiwgVmFsdWUqIGNoaWxkLCBjb25zdCBGcmVxdWVudGVkQmxvY2smIGZhbGxUaHJvdWdo
KQotICAgIDogQ29udHJvbFZhbHVlKFN3aXRjaCwgVm9pZCwgb3JpZ2luLCBjaGlsZCkKK1N3aXRj
aFZhbHVlOjpTd2l0Y2hWYWx1ZShPcmlnaW4gb3JpZ2luLCBWYWx1ZSogY2hpbGQpCisgICAgOiBW
YWx1ZShDaGVja2VkT3Bjb2RlLCBTd2l0Y2gsIFZvaWQsIG9yaWdpbiwgY2hpbGQpCiB7Ci0gICAg
bV9zdWNjZXNzb3JzLmFwcGVuZChmYWxsVGhyb3VnaCk7CiB9CiAKIH0gfSAvLyBuYW1lc3BhY2Ug
SlNDOjpCMwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3dpdGNoVmFsdWUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTd2l0Y2hWYWx1ZS5oCShy
ZXZpc2lvbiAyMDMzNzEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTd2l0Y2hWYWx1
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCwxMiArMjgsMTMgQEAKIAogI2lmIEVOQUJMRShCM19K
SVQpCiAKLSNpbmNsdWRlICJCM0NvbnRyb2xWYWx1ZS5oIgorI2luY2x1ZGUgIkIzQ2FzZUNvbGxl
Y3Rpb24uaCIKICNpbmNsdWRlICJCM1N3aXRjaENhc2UuaCIKKyNpbmNsdWRlICJCM1ZhbHVlLmgi
CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewogCi1jbGFzcyBTd2l0Y2hWYWx1ZSA6
IHB1YmxpYyBDb250cm9sVmFsdWUgeworY2xhc3MgU3dpdGNoVmFsdWUgOiBwdWJsaWMgVmFsdWUg
ewogcHVibGljOgogICAgIHN0YXRpYyBib29sIGFjY2VwdHMoT3Bjb2RlIG9wY29kZSkgeyByZXR1
cm4gb3Bjb2RlID09IFN3aXRjaDsgfQogCkBAIC00Nyw3MiArNDgsMjYgQEAgcHVibGljOgogICAg
IAogICAgIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgY2FzZVZhbHVlcygpIGNvbnN0IHsgcmV0dXJu
IG1fdmFsdWVzOyB9CiAKLSAgICBGcmVxdWVudGVkQmxvY2sgZmFsbFRocm91Z2goKSBjb25zdCB7
IHJldHVybiBzdWNjZXNzb3JzKCkubGFzdCgpOyB9Ci0gICAgRnJlcXVlbnRlZEJsb2NrJiBmYWxs
VGhyb3VnaCgpIHsgcmV0dXJuIHN1Y2Nlc3NvcnMoKS5sYXN0KCk7IH0KLQotICAgIHVuc2lnbmVk
IHNpemUoKSBjb25zdCB7IHJldHVybiBudW1DYXNlVmFsdWVzKCk7IH0KLSAgICBTd2l0Y2hDYXNl
IGF0KHVuc2lnbmVkIGluZGV4KSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIFN3aXRjaENh
c2UoY2FzZVZhbHVlKGluZGV4KSwgc3VjY2Vzc29yKGluZGV4KSk7Ci0gICAgfQotICAgIFN3aXRj
aENhc2Ugb3BlcmF0b3JbXSh1bnNpZ25lZCBpbmRleCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBhdChpbmRleCk7Ci0gICAgfQotCi0gICAgY2xhc3MgaXRlcmF0b3IgewotICAgIHB1Ymxp
YzoKLSAgICAgICAgaXRlcmF0b3IoKQotICAgICAgICAgICAgOiBtX3N3aXRjaChudWxscHRyKQot
ICAgICAgICAgICAgLCBtX2luZGV4KDApCi0gICAgICAgIHsKLSAgICAgICAgfQotCi0gICAgICAg
IGl0ZXJhdG9yKGNvbnN0IFN3aXRjaFZhbHVlJiBzd2l0Y2hWYWx1ZSwgdW5zaWduZWQgaW5kZXgp
Ci0gICAgICAgICAgICA6IG1fc3dpdGNoKCZzd2l0Y2hWYWx1ZSkKLSAgICAgICAgICAgICwgbV9p
bmRleChpbmRleCkKLSAgICAgICAgewotICAgICAgICB9Ci0KLSAgICAgICAgU3dpdGNoQ2FzZSBv
cGVyYXRvciooKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbV9zd2l0Y2gtPmF0KG1f
aW5kZXgpOwotICAgICAgICB9Ci0KLSAgICAgICAgaXRlcmF0b3ImIG9wZXJhdG9yKysoKQotICAg
ICAgICB7Ci0gICAgICAgICAgICBtX2luZGV4Kys7Ci0gICAgICAgICAgICByZXR1cm4gKnRoaXM7
Ci0gICAgICAgIH0KLQotICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgaXRlcmF0b3ImIG90
aGVyKSBjb25zdAotICAgICAgICB7Ci0gICAgICAgICAgICBBU1NFUlQobV9zd2l0Y2ggPT0gb3Ro
ZXIubV9zd2l0Y2gpOwotICAgICAgICAgICAgcmV0dXJuIG1faW5kZXggPT0gb3RoZXIubV9pbmRl
eDsKLSAgICAgICAgfQotCi0gICAgICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBpdGVyYXRvciYg
b3RoZXIpIGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiAhKCp0aGlzID09IG90
aGVyKTsKLSAgICAgICAgfQotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgY29uc3QgU3dpdGNoVmFs
dWUqIG1fc3dpdGNoOwotICAgICAgICB1bnNpZ25lZCBtX2luZGV4OwotICAgIH07Ci0KLSAgICB0
eXBlZGVmIGl0ZXJhdG9yIGNvbnN0X2l0ZXJhdG9yOwotCi0gICAgaXRlcmF0b3IgYmVnaW4oKSBj
b25zdCB7IHJldHVybiBpdGVyYXRvcigqdGhpcywgMCk7IH0KLSAgICBpdGVyYXRvciBlbmQoKSBj
b25zdCB7IHJldHVybiBpdGVyYXRvcigqdGhpcywgc2l6ZSgpKTsgfQorICAgIENhc2VDb2xsZWN0
aW9uIGNhc2VzKGNvbnN0IEJhc2ljQmxvY2sqIG93bmVyKSBjb25zdCB7IHJldHVybiBDYXNlQ29s
bGVjdGlvbih0aGlzLCBvd25lcik7IH0KKyAgICBDYXNlQ29sbGVjdGlvbiBjYXNlcygpIGNvbnN0
IHsgcmV0dXJuIGNhc2VzKG93bmVyKTsgfQogCiAgICAgLy8gVGhpcyByZW1vdmVzIHRoZSBjYXNl
IGFuZCByZW9yZGVycyB0aGluZ3MgYSBiaXQuIElmIHlvdSdyZSBpdGVyYXRpbmcgdGhlIGNhc2Vz
IGZyb20gMCB0byBOLAogICAgIC8vIHRoZW4geW91IGNhbiBrZWVwIGl0ZXJhdGluZyBhZnRlciB0
aGlzIHNvIGxvbmcgYXMgeW91IHJldmlzaXQgdGhpcyBzYW1lIGluZGV4ICh3aGljaCB3aWxsIG5v
dwogICAgIC8vIGNvbnRhaW4gc29tZSBvdGhlciBjYXNlIHZhbHVlKS4gVGhpcyByZW1vdmVzIHRo
ZSBjYXNlIHRoYXQgd2FzIHJlbW92ZWQuCi0gICAgU3dpdGNoQ2FzZSByZW1vdmVDYXNlKHVuc2ln
bmVkIGluZGV4KTsKKyAgICBTd2l0Y2hDYXNlIHJlbW92ZUNhc2UoQmFzaWNCbG9jayosIHVuc2ln
bmVkIGluZGV4KTsKIAorICAgIGJvb2wgaGFzRmFsbFRocm91Z2goY29uc3QgQmFzaWNCbG9jayop
IGNvbnN0OworICAgIGJvb2wgaGFzRmFsbFRocm91Z2goKSBjb25zdDsKKworICAgIC8vIFRoZXNl
IHR3byBmdW5jdGlvbnMgY2FuIGJlIGNhbGxlZCBpbiBhbnkgb3JkZXIuCisgICAgdm9pZCBzZXRG
YWxsVGhyb3VnaChCYXNpY0Jsb2NrKiwgY29uc3QgRnJlcXVlbnRlZEJsb2NrJik7CisgICAgdm9p
ZCBhcHBlbmRDYXNlKEJhc2ljQmxvY2sqLCBjb25zdCBTd2l0Y2hDYXNlJik7CisgICAgCisgICAg
SlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBzZXRGYWxsVGhyb3VnaChjb25zdCBGcmVxdWVudGVkQmxv
Y2smKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIGFwcGVuZENhc2UoY29uc3QgU3dpdGNo
Q2FzZSYpOwogCisgICAgdm9pZCBkdW1wU3VjY2Vzc29ycyhjb25zdCBCYXNpY0Jsb2NrKiwgUHJp
bnRTdHJlYW0mKSBjb25zdCBvdmVycmlkZTsKKwogcHJvdGVjdGVkOgogICAgIHZvaWQgZHVtcE1l
dGEoQ29tbWFQcmludGVyJiwgUHJpbnRTdHJlYW0mKSBjb25zdCBvdmVycmlkZTsKIApAQCAtMTIx
LDcgKzc2LDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgUHJvY2Vk
dXJlOwogCi0gICAgSlNfRVhQT1JUX1BSSVZBVEUgU3dpdGNoVmFsdWUoT3JpZ2luLCBWYWx1ZSog
Y2hpbGQsIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgZmFsbFRocm91Z2gpOworICAgIEpTX0VYUE9S
VF9QUklWQVRFIFN3aXRjaFZhbHVlKE9yaWdpbiwgVmFsdWUqIGNoaWxkKTsKIAogICAgIFZlY3Rv
cjxpbnQ2NF90PiBtX3ZhbHVlczsKIH07CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNWYWxpZGF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0Iz
VmFsaWRhdGUuY3BwCShyZXZpc2lvbiAyMDMzNzEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvQjNWYWxpZGF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNs
dWRlICJCM1Byb2NlZHVyZS5oIgogI2luY2x1ZGUgIkIzU2xvdEJhc2VWYWx1ZS5oIgogI2luY2x1
ZGUgIkIzU3RhY2tTbG90LmgiCisjaW5jbHVkZSAiQjNTd2l0Y2hWYWx1ZS5oIgogI2luY2x1ZGUg
IkIzVXBzaWxvblZhbHVlLmgiCiAjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRl
ICJCM1ZhcmlhYmxlLmgiCkBAIC0xMDcsOCArMTA4LDggQEAgcHVibGljOgogICAgICAgICBmb3Ig
KEJhc2ljQmxvY2sqIGJsb2NrIDogYmxvY2tzKSB7CiAgICAgICAgICAgICBWQUxJREFURShibG9j
ay0+c2l6ZSgpID49IDEsICgiQXQgIiwgKmJsb2NrKSk7CiAgICAgICAgICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgYmxvY2stPnNpemUoKSAtIDE7ICsraSkKLSAgICAgICAgICAgICAgICBW
QUxJREFURSghQ29udHJvbFZhbHVlOjphY2NlcHRzKGJsb2NrLT5hdChpKS0+b3Bjb2RlKCkpLCAo
IkF0ICIsICpibG9jay0+YXQoaSkpKTsKLSAgICAgICAgICAgIFZBTElEQVRFKENvbnRyb2xWYWx1
ZTo6YWNjZXB0cyhibG9jay0+bGFzdCgpLT5vcGNvZGUoKSksICgiQXQgIiwgKmJsb2NrLT5sYXN0
KCkpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFURSghYmxvY2stPmF0KGkpLT5lZmZlY3RzKCku
dGVybWluYWwsICgiQXQgIiwgKmJsb2NrLT5hdChpKSkpOworICAgICAgICAgICAgVkFMSURBVEUo
YmxvY2stPmxhc3QoKS0+ZWZmZWN0cygpLnRlcm1pbmFsLCAoIkF0ICIsICpibG9jay0+bGFzdCgp
KSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGZvciAoQmFzaWNCbG9jayogc3VjY2Vzc29y
IDogYmxvY2stPnN1Y2Nlc3NvckJsb2NrcygpKSB7CiAgICAgICAgICAgICAgICAgYWxsUHJlZGVj
ZXNzb3JzLmFkZChzdWNjZXNzb3IsIEhhc2hTZXQ8QmFzaWNCbG9jayo+KCkpLml0ZXJhdG9yLT52
YWx1ZS5hZGQoYmxvY2spOwpAQCAtMTI5LDggKzEzMCw2IEBAIHB1YmxpYzoKICAgICAgICAgICAg
ICAgICBWQUxJREFURShjaGlsZC0+dHlwZSgpICE9IFZvaWQsICgiQXQgIiwgKnZhbHVlLCAiLT4i
LCAqY2hpbGQpKTsKICAgICAgICAgICAgIHN3aXRjaCAodmFsdWUtPm9wY29kZSgpKSB7CiAgICAg
ICAgICAgICBjYXNlIE5vcDoKLSAgICAgICAgICAgIGNhc2UgSnVtcDoKLSAgICAgICAgICAgIGNh
c2UgT29wczoKICAgICAgICAgICAgICAgICBWQUxJREFURSghdmFsdWUtPm51bUNoaWxkcmVuKCks
ICgiQXQgIiwgKnZhbHVlKSk7CiAgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPnR5cGUo
KSA9PSBWb2lkLCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAt
Mzc3LDE3ICszNzYsNDQgQEAgcHVibGljOgogICAgICAgICAgICAgICAgIFZBTElEQVRFKCF2YWx1
ZS0+bnVtQ2hpbGRyZW4oKSwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAgICBWQUxJ
REFURSh2YWx1ZS0+dHlwZSgpICE9IFZvaWQsICgiQXQgIiwgKnZhbHVlKSk7CiAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEp1bXA6CisgICAgICAgICAgICAgICAgVkFM
SURBVEUoIXZhbHVlLT5udW1DaGlsZHJlbigpLCAoIkF0ICIsICp2YWx1ZSkpOworICAgICAgICAg
ICAgICAgIFZBTElEQVRFKHZhbHVlLT50eXBlKCkgPT0gVm9pZCwgKCJBdCAiLCAqdmFsdWUpKTsK
KyAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZU93bmVyLmdldCh2YWx1ZSktPm51bVN1Y2Nl
c3NvcnMoKSA9PSAxLCAoIkF0ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSBPb3BzOgorICAgICAgICAgICAgICAgIFZBTElEQVRFKCF2YWx1ZS0+
bnVtQ2hpbGRyZW4oKSwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFU
RSh2YWx1ZS0+dHlwZSgpID09IFZvaWQsICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAg
ICAgVkFMSURBVEUoIXZhbHVlT3duZXIuZ2V0KHZhbHVlKS0+bnVtU3VjY2Vzc29ycygpLCAoIkF0
ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBS
ZXR1cm46CiAgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUtPm51bUNoaWxkcmVuKCkgPT0g
MSwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+dHlw
ZSgpID09IFZvaWQsICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAgICAgVkFMSURBVEUo
IXZhbHVlT3duZXIuZ2V0KHZhbHVlKS0+bnVtU3VjY2Vzc29ycygpLCAoIkF0ICIsICp2YWx1ZSkp
OwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBCcmFuY2g6Ci0gICAg
ICAgICAgICBjYXNlIFN3aXRjaDoKICAgICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+bnVt
Q2hpbGRyZW4oKSA9PSAxLCAoIkF0ICIsICp2YWx1ZSkpOwogICAgICAgICAgICAgICAgIFZBTElE
QVRFKGlzSW50KHZhbHVlLT5jaGlsZCgwKS0+dHlwZSgpKSwgKCJBdCAiLCAqdmFsdWUpKTsKICAg
ICAgICAgICAgICAgICBWQUxJREFURSh2YWx1ZS0+dHlwZSgpID09IFZvaWQsICgiQXQgIiwgKnZh
bHVlKSk7CisgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWVPd25lci5nZXQodmFsdWUpLT5u
dW1TdWNjZXNzb3JzKCkgPT0gMiwgKCJBdCAiLCAqdmFsdWUpKTsKICAgICAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhc2UgU3dpdGNoOiB7CisgICAgICAg
ICAgICAgICAgVkFMSURBVEUodmFsdWUtPm51bUNoaWxkcmVuKCkgPT0gMSwgKCJBdCAiLCAqdmFs
dWUpKTsKKyAgICAgICAgICAgICAgICBWQUxJREFURShpc0ludCh2YWx1ZS0+Y2hpbGQoMCktPnR5
cGUoKSksICgiQXQgIiwgKnZhbHVlKSk7CisgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWUt
PnR5cGUoKSA9PSBWb2lkLCAoIkF0ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIFZBTElE
QVRFKHZhbHVlLT5hczxTd2l0Y2hWYWx1ZT4oKS0+aGFzRmFsbFRocm91Z2godmFsdWVPd25lci5n
ZXQodmFsdWUpKSwgKCJBdCAiLCAqdmFsdWUpKTsKKyAgICAgICAgICAgICAgICAvLyBUaGlzIHZh
bGlkYXRlcyB0aGUgc2FtZSB0aGluZyBhcyBoYXNGYWxsVGhyb3VnaCwgYnV0IG1vcmUgZXhwbGlj
aXRseS4gV2Ugd2FudCB0bworICAgICAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB0aGF0IGlmIGFu
eW9uZSB0cmllcyB0byBjaGFuZ2UgdGhlIGRlZmluaXRpb24gb2YgaGFzRmFsbFRocm91Z2gsIHRo
ZXkKKyAgICAgICAgICAgICAgICAvLyB3aWxsIGZlZWwgc29tZSBwYWluIGhlcmUsIHNpbmNlIHRo
aXMgaXMgZnVuZGFtZW50YWwuCisgICAgICAgICAgICAgICAgVkFMSURBVEUodmFsdWVPd25lci5n
ZXQodmFsdWUpLT5udW1TdWNjZXNzb3JzKCkgPT0gdmFsdWUtPmFzPFN3aXRjaFZhbHVlPigpLT5u
dW1DYXNlVmFsdWVzKCkgKyAxLCAoIkF0ICIsICp2YWx1ZSkpOworICAgICAgICAgICAgICAgIAor
ICAgICAgICAgICAgICAgIC8vIENoZWNrIHRoYXQgdGhlcmUgYXJlIG5vIGR1cGxpY2F0ZSBjYXNl
cy4KKyAgICAgICAgICAgICAgICBWZWN0b3I8aW50NjRfdD4gY2FzZVZhbHVlcyA9IHZhbHVlLT5h
czxTd2l0Y2hWYWx1ZT4oKS0+Y2FzZVZhbHVlcygpOworICAgICAgICAgICAgICAgIHN0ZDo6c29y
dChjYXNlVmFsdWVzLmJlZ2luKCksIGNhc2VWYWx1ZXMuZW5kKCkpOworICAgICAgICAgICAgICAg
IGZvciAodW5zaWduZWQgaSA9IDE7IGkgPCBjYXNlVmFsdWVzLnNpemUoKTsgKytpKQorICAgICAg
ICAgICAgICAgICAgICBWQUxJREFURShjYXNlVmFsdWVzW2kgLSAxXSAhPSBjYXNlVmFsdWVzW2ld
LCAoIkF0ICIsICp2YWx1ZSwgIiwgY2FzZVZhbHVlID0gIiwgY2FzZVZhbHVlc1tpXSkpOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfSB9CiAKICAgICAgICAgICAgIFZBTElE
QVRFKCEodmFsdWUtPmVmZmVjdHMoKS53cml0ZXMgJiYgdmFsdWUtPmtleSgpKSwgKCJBdCAiLCAq
dmFsdWUpKTsKICAgICAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFs
dWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlLmNw
cAkocmV2aXNpb24gMjAzMzcxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw5ICsyOSw5IEBACiAjaWYgRU5BQkxFKEIzX0pJVCkK
IAogI2luY2x1ZGUgIkIzQXJndW1lbnRSZWdWYWx1ZS5oIgorI2luY2x1ZGUgIkIzQmFzaWNCbG9j
a0lubGluZXMuaCIKICNpbmNsdWRlICJCM0JvdHRvbVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiQjND
Q2FsbFZhbHVlLmgiCi0jaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKICNpbmNsdWRlICJCM01l
bW9yeVZhbHVlLmgiCiAjaW5jbHVkZSAiQjNPcmlnaW5EdW1wLmgiCiAjaW5jbHVkZSAiQjNQcm9j
ZWR1cmVJbmxpbmVzLmgiCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiQjNWYWx1ZUtleUlu
bGluZXMuaCIKICNpbmNsdWRlICJCM1ZhcmlhYmxlVmFsdWUuaCIKICNpbmNsdWRlIDx3dGYvQ29t
bWFQcmludGVyLmg+CisjaW5jbHVkZSA8d3RmL0xpc3REdW1wLmg+CiAjaW5jbHVkZSA8d3RmL1N0
cmluZ1ByaW50U3RyZWFtLmg+CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgewpAQCAt
MTI1LDYgKzEyNiw1MCBAQCB2b2lkIFZhbHVlOjpyZXBsYWNlV2l0aFBoaSgpCiAgICAgdGhpcy0+
bV9pbmRleCA9IGluZGV4OwogfQogCit2b2lkIFZhbHVlOjpyZXBsYWNlV2l0aEp1bXAoQmFzaWNC
bG9jayogb3duZXIsIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYgdGFyZ2V0KQoreworICAgIFJFTEVB
U0VfQVNTRVJUKG93bmVyLT5sYXN0KCkgPT0gdGhpcyk7CisgICAgCisgICAgdW5zaWduZWQgaW5k
ZXggPSBtX2luZGV4OworICAgIE9yaWdpbiBvcmlnaW4gPSBtX29yaWdpbjsKKyAgICAKKyAgICB0
aGlzLT5+VmFsdWUoKTsKKyAgICAKKyAgICBuZXcgKHRoaXMpIFZhbHVlKEp1bXAsIFZvaWQsIG9y
aWdpbik7CisgICAgCisgICAgdGhpcy0+b3duZXIgPSBvd25lcjsKKyAgICB0aGlzLT5tX2luZGV4
ID0gaW5kZXg7CisgICAgCisgICAgb3duZXItPnNldFN1Y2Nlc3NvcnModGFyZ2V0KTsKK30KKwor
dm9pZCBWYWx1ZTo6cmVwbGFjZVdpdGhPb3BzKEJhc2ljQmxvY2sqIG93bmVyKQoreworICAgIFJF
TEVBU0VfQVNTRVJUKG93bmVyLT5sYXN0KCkgPT0gdGhpcyk7CisgICAgCisgICAgdW5zaWduZWQg
aW5kZXggPSBtX2luZGV4OworICAgIE9yaWdpbiBvcmlnaW4gPSBtX29yaWdpbjsKKyAgICAKKyAg
ICB0aGlzLT5+VmFsdWUoKTsKKyAgICAKKyAgICBuZXcgKHRoaXMpIFZhbHVlKE9vcHMsIFZvaWQs
IG9yaWdpbik7CisgICAgCisgICAgdGhpcy0+b3duZXIgPSBvd25lcjsKKyAgICB0aGlzLT5tX2lu
ZGV4ID0gaW5kZXg7CisgICAgCisgICAgb3duZXItPmNsZWFyU3VjY2Vzc29ycygpOworfQorCit2
b2lkIFZhbHVlOjpyZXBsYWNlV2l0aEp1bXAoY29uc3QgRnJlcXVlbnRlZEJsb2NrJiB0YXJnZXQp
Cit7CisgICAgcmVwbGFjZVdpdGhKdW1wKG93bmVyLCB0YXJnZXQpOworfQorCit2b2lkIFZhbHVl
OjpyZXBsYWNlV2l0aE9vcHMoKQoreworICAgIHJlcGxhY2VXaXRoT29wcyhvd25lcik7Cit9CisK
IHZvaWQgVmFsdWU6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHsKICAgICBib29sIGlz
Q29uc3RhbnQgPSBmYWxzZTsKQEAgLTE4OSw2ICsyMzQsMTkgQEAgdm9pZCBWYWx1ZTo6ZGVlcER1
bXAoY29uc3QgUHJvY2VkdXJlKiBwcgogICAgIG91dC5wcmludCgiKSIpOwogfQogCit2b2lkIFZh
bHVlOjpkdW1wU3VjY2Vzc29ycyhjb25zdCBCYXNpY0Jsb2NrKiBibG9jaywgUHJpbnRTdHJlYW0m
IG91dCkgY29uc3QKK3sKKyAgICAvLyBOb3RlIHRoYXQgdGhpcyBtdXN0IG5vdCBjcmFzaCBpZiB3
ZSBoYXZlIHRoZSB3cm9uZyBudW1iZXIgb2Ygc3VjY2Vzc29ycywgc2luY2Ugc29tZW9uZQorICAg
IC8vIGRlYnVnZ2luZyBhIG51bWJlci1vZi1zdWNjZXNzb3JzIGJ1ZyB3aWxsIHByb2JhYmx5IHdh
bnQgdG8gZHVtcCBJUiEKKyAgICAKKyAgICBpZiAob3Bjb2RlKCkgPT0gQnJhbmNoICYmIGJsb2Nr
LT5udW1TdWNjZXNzb3JzKCkgPT0gMikgeworICAgICAgICBvdXQucHJpbnQoIlRoZW46IiwgYmxv
Y2stPnRha2VuKCksICIsIEVsc2U6IiwgYmxvY2stPm5vdFRha2VuKCkpOworICAgICAgICByZXR1
cm47CisgICAgfQorICAgIAorICAgIG91dC5wcmludChsaXN0RHVtcChibG9jay0+c3VjY2Vzc29y
cygpKSk7Cit9CisKIFZhbHVlKiBWYWx1ZTo6bmVnQ29uc3RhbnQoUHJvY2VkdXJlJikgY29uc3QK
IHsKICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTcxMyw2ICs3NzEsMTAgQEAgVHlwZSBWYWx1ZTo6
dHlwZUZvcihPcGNvZGUgb3Bjb2RlLCBWYWx1ZQogICAgICAgICB9CiAgICAgICAgIHJldHVybiBW
b2lkOwogICAgIGNhc2UgTm9wOgorICAgIGNhc2UgSnVtcDoKKyAgICBjYXNlIEJyYW5jaDoKKyAg
ICBjYXNlIFJldHVybjoKKyAgICBjYXNlIE9vcHM6CiAgICAgICAgIHJldHVybiBWb2lkOwogICAg
IGNhc2UgU2VsZWN0OgogICAgICAgICBBU1NFUlQoc2Vjb25kQ2hpbGQpOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNWYWx1ZS5oCShyZXZpc2lvbiAyMDMzNzEpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvQjNWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAK
ICNpbmNsdWRlICJBaXJBcmcuaCIKICNpbmNsdWRlICJCM0VmZmVjdHMuaCIKKyNpbmNsdWRlICJC
M0ZyZXF1ZW50ZWRCbG9jay5oIgogI2luY2x1ZGUgIkIzT3Bjb2RlLmgiCiAjaW5jbHVkZSAiQjNP
cmlnaW4uaCIKICNpbmNsdWRlICJCM1NwYXJzZUNvbGxlY3Rpb24uaCIKQEAgLTEwOSw5ICsxMTAs
MTkgQEAgcHVibGljOgogICAgIHZvaWQgcmVwbGFjZVdpdGhOb3BJZ25vcmluZ1R5cGUoKTsKICAg
ICAKICAgICB2b2lkIHJlcGxhY2VXaXRoUGhpKCk7CisgICAgCisgICAgLy8gVGhlc2UgdHJhbnNm
b3JtYXRpb25zIGFyZSBvbmx5IHZhbGlkIGZvciB0ZXJtaW5hbHMuCisgICAgdm9pZCByZXBsYWNl
V2l0aEp1bXAoQmFzaWNCbG9jayogb3duZXIsIGNvbnN0IEZyZXF1ZW50ZWRCbG9jayYpOworICAg
IHZvaWQgcmVwbGFjZVdpdGhPb3BzKEJhc2ljQmxvY2sqIG93bmVyKTsKKyAgICAKKyAgICAvLyBZ
b3UgY2FuIHVzZSB0aGlzIGZvcm0gaWYgb3duZXJzIGFyZSB2YWxpZC4gVGhleSdyZSB1c3VhbGx5
IG5vdCB2YWxpZC4KKyAgICB2b2lkIHJlcGxhY2VXaXRoSnVtcChjb25zdCBGcmVxdWVudGVkQmxv
Y2smKTsKKyAgICB2b2lkIHJlcGxhY2VXaXRoT29wcygpOwogCiAgICAgdm9pZCBkdW1wKFByaW50
U3RyZWFtJikgY29uc3Q7CiAgICAgdm9pZCBkZWVwRHVtcChjb25zdCBQcm9jZWR1cmUqLCBQcmlu
dFN0cmVhbSYpIGNvbnN0OworICAgIAorICAgIHZpcnR1YWwgdm9pZCBkdW1wU3VjY2Vzc29ycyhj
b25zdCBCYXNpY0Jsb2NrKiwgUHJpbnRTdHJlYW0mKSBjb25zdDsKIAogICAgIC8vIFRoaXMgaXMg
aG93IHlvdSBjYXN0IFZhbHVlcy4gRm9yIGV4YW1wbGUsIGlmIHlvdSB3YW50IHRvIGRvIHNvbWV0
aGluZyBwcm92aWRlZCB0aGF0IHdlIGhhdmUgYQogICAgIC8vIEFyZ3VtZW50UmVnVmFsdWUsIHlv
dSBjYW4gZG86CkBAIC0yMjMsNyArMjM0LDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNMaWtlTm9u
WmVybygpIGNvbnN0IHsgcmV0dXJuIGFzVHJpU3RhdGUoKSA9PSBUcnVlVHJpU3RhdGU7IH0KIAog
ICAgIEVmZmVjdHMgZWZmZWN0cygpIGNvbnN0OwotCisgICAgCiAgICAgLy8gVGhpcyByZXR1cm5z
IGEgVmFsdWVLZXkgdGhhdCBkZXNjcmliZXMgdGhhdCB0aGlzIFZhbHVlIHJldHVybnMgd2hlbiBp
dCBleGVjdXRlcy4gUmV0dXJucyBhbgogICAgIC8vIGVtcHR5IFZhbHVlS2V5IGlmIHRoaXMgVmFs
dWUgaXMgaW1wdXJlLiBOb3RlIHRoYXQgYW4gb3BlcmF0aW9uIHRoYXQgcmV0dXJucyBWb2lkIGNv
dWxkIHN0aWxsCiAgICAgLy8gaGF2ZSBhIG5vbi1lbXB0eSBWYWx1ZUtleS4gVGhpcyBoYXBwZW5z
IGZvciBleGFtcGxlIHdpdGggQ2hlY2sgb3BlcmF0aW9ucy4KQEAgLTI2NCw2ICsyNzUsOCBAQCBw
cml2YXRlOgogICAgICAgICBjYXNlIEZyYW1lUG9pbnRlcjoKICAgICAgICAgY2FzZSBOb3A6CiAg
ICAgICAgIGNhc2UgUGhpOgorICAgICAgICBjYXNlIEp1bXA6CisgICAgICAgIGNhc2UgT29wczoK
ICAgICAgICAgICAgIGlmIChVTkxJS0VMWShudW1BcmdzKSkKICAgICAgICAgICAgICAgICBiYWRP
cGNvZGUob3Bjb2RlLCBudW1BcmdzKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjg0LDYgKzI5
Nyw4IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgRG91YmxlVG9GbG9hdDoKICAgICAgICAgY2Fz
ZSBJVG9GOgogICAgICAgICBjYXNlIEJpdHdpc2VDYXN0OgorICAgICAgICBjYXNlIEJyYW5jaDoK
KyAgICAgICAgY2FzZSBSZXR1cm46CiAgICAgICAgICAgICBpZiAoVU5MSUtFTFkobnVtQXJncyAh
PSAxKSkKICAgICAgICAgICAgICAgICBiYWRPcGNvZGUob3Bjb2RlLCBudW1BcmdzKTsKICAgICAg
ICAgICAgIGJyZWFrOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAJKHJldmlz
aW9uIDIwMzM3MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSAiQjNDb21wdXRlRGl2aXNpb25N
YWdpYy5oIgogI2luY2x1ZGUgIkIzQ29uc3QzMlZhbHVlLmgiCiAjaW5jbHVkZSAiQjNDb25zdFB0
clZhbHVlLmgiCi0jaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKICNpbmNsdWRlICJCM0VmZmVj
dHMuaCIKICNpbmNsdWRlICJCM01hdGhFeHRyYXMuaCIKICNpbmNsdWRlICJCM01lbW9yeVZhbHVl
LmgiCkBAIC00Niw3ICs0NSwxMCBAQAogI2luY2x1ZGUgIkIzVXBzaWxvblZhbHVlLmgiCiAjaW5j
bHVkZSAiQjNWYWxpZGF0ZS5oIgogI2luY2x1ZGUgIkIzVmFsdWVJbmxpbmVzLmgiCisjaW5jbHVk
ZSAiQjNWYXJpYWJsZVZhbHVlLmgiCiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCisjaW5jbHVk
ZSAiRlBSSW5mby5oIgorI2luY2x1ZGUgIkdQUkluZm8uaCIKICNpbmNsdWRlICJJbml0aWFsaXpl
VGhyZWFkaW5nLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIkxpbmtCdWZm
ZXIuaCIKQEAgLTU0LDYgKzU2LDcgQEAKICNpbmNsdWRlICJWTS5oIgogI2luY2x1ZGUgPGNtYXRo
PgogI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDx3dGYvTGlzdER1bXAuaD4KICNpbmNsdWRl
IDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9OdW1iZXJPZkNvcmVzLmg+CiAjaW5jbHVkZSA8
d3RmL1RocmVhZGluZy5oPgpAQCAtNzUsNiArNzgsMTEgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzo6
QjM7CiAKIG5hbWVzcGFjZSB7CiAKK2Jvb2wgc2hvdWxkQmVWZXJib3NlKCkKK3sKKyAgICByZXR1
cm4gc2hvdWxkRHVtcElSKEIzTW9kZSk7Cit9CisKIFN0YXRpY0xvY2sgY3Jhc2hMb2NrOwogCiAv
LyBOb3RoaW5nIGZhbmN5IGZvciBub3c7IHdlIGp1c3QgdXNlIHRoZSBleGlzdGluZyBXVEYgYXNz
ZXJ0aW9uIG1hY2hpbmVyeS4KQEAgLTE5NCw3ICsyMDIsNyBAQCB2b2lkIHRlc3Q0MigpCiAgICAg
UHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
ICAgICBWYWx1ZSogY29uc3Q0MiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCA0Mik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgY29uc3Q0Mik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNvbnN0NDIpOwogCiAgICAgQ0hFQ0soY29tcGls
ZUFuZFJ1bjxpbnQ+KHByb2MpID09IDQyKTsKIH0KQEAgLTIwNCw3ICsyMTIsNyBAQCB2b2lkIHRl
c3RMb2FkNDIoKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7CiAgICAgaW50IHggPSA0MjsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2luKCksCkBAIC0yMjAsNyAr
MjI4LDcgQEAgdm9pZCB0ZXN0TG9hZFdpdGhPZmZzZXRJbXBsKGludDMyX3Qgb2ZmcwogICAgICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgICAgICBpbnQ2NF90IHgg
PSAtNDI7CiAgICAgICAgIFZhbHVlKiBiYXNlID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwotICAgICAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywg
TG9hZCwgSW50NjQsIE9yaWdpbigpLApAQCAtMjM1LDcgKzI0Myw3IEBAIHZvaWQgdGVzdExvYWRX
aXRoT2Zmc2V0SW1wbChpbnQzMl90IG9mZnMKICAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKICAgICAgICAgaW50MzJfdCB4ID0gLTQyOwogICAgICAgICBWYWx1ZSog
YmFzZSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
R1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8TWVt
b3J5VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwK
QEAgLTI4OCw3ICsyOTYsNyBAQCB2b2lkIHRlc3RBcmcoaW50IGFyZ3VtZW50KQogewogICAgIFBy
b2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFy
Z3VtZW50R1BSMCkpOwogCkBAIC0yOTksNyArMzA3LDcgQEAgdm9pZCB0ZXN0UmV0dXJuQ29uc3Q2
NChpbnQ2NF90IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgdmFsdWUpKTsKIApAQCAtMzExLDcgKzMxOSw3IEBAIHZvaWQgdGVzdEFkZEFy
ZyhpbnQgYSkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgdmFsdWUsIHZhbHVlKSk7CiAKQEAg
LTMyMiw3ICszMzAsNyBAQCB2b2lkIHRlc3RBZGRBcmdzKGludCBhLCBpbnQgYikKIHsKICAgICBQ
cm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCksCkBA
IC0zMzYsNyArMzQ0LDcgQEAgdm9pZCB0ZXN0QWRkQXJnSW1tKGludCBhLCBpbnQgYikKIHsKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2luKCks
CkBAIC0zNTAsNyArMzU4LDcgQEAgdm9pZCB0ZXN0QWRkSW1tQXJnKGludCBhLCBpbnQgYikKIHsK
ICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEFkZCwgT3JpZ2lu
KCksCkBAIC0zNzAsNyArMzc4LDcgQEAgdm9pZCB0ZXN0QWRkQXJnTWVtKGludDY0X3QgYSwgaW50
NjRfdCBiKQogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCksCiAgICAgICAgIGxvYWQpOwogICAgIHJv
b3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQs
IGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7
CiAKICAgICBpbnQ2NF90IGlucHV0T3V0cHV0ID0gYjsKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1
bjxpbnQ2NF90Pihwcm9jLCBhLCAmaW5wdXRPdXRwdXQpKTsKQEAgLTM4Niw3ICszOTQsNyBAQCB2
b2lkIHRlc3RBZGRNZW1BcmcoaW50NjRfdCBhLCBpbnQ2NF90IGIpCiAgICAgVmFsdWUqIHJlc3Vs
dCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwKICAgICAgICAg
bG9hZCwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAg
ICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAmYSwgYikgPT0gYSArIGIpOwog
fQpAQCAtNDAxLDcgKzQwOSw3IEBAIHZvaWQgdGVzdEFkZEltbU1lbShpbnQ2NF90IGEsIGludDY0
X3QgYikKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIGEpLAogICAgICAgICBsb2FkKTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+
KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29u
c3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgaW50NjRfdCBpbnB1dE91dHB1
dCA9IGI7CiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAmaW5wdXRPdXRwdXQp
KTsKQEAgLTQxNCw3ICs0MjIsNyBAQCB2b2lkIHRlc3RBZGRBcmczMihpbnQgYSkKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCB2YWx1
ZSwgdmFsdWUpKTsKIApAQCAtNDI1LDcgKzQzMyw3IEBAIHZvaWQgdGVzdEFkZEFyZ3MzMihpbnQg
YSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBBZGQsIE9yaWdpbigpLApAQCAtNDQ5LDcgKzQ1Nyw3IEBAIHZvaWQgdGVzdEFkZEFyZ01lbTMy
KGludDMyX3QgYSwgaW50MzJfdCAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAgICBWYWx1
ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBh
cmd1bWVudCwgbG9hZCk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBT
dG9yZSwgT3JpZ2luKCksIHJlc3VsdCwgYWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGludDMyX3QgaW5wdXRPdXRwdXQgPSBiOwog
ICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGEsICZpbnB1dE91dHB1dCkp
OwpAQCAtNDY1LDcgKzQ3Myw3IEBAIHZvaWQgdGVzdEFkZE1lbUFyZzMyKGludDMyX3QgYSwgaW50
MzJfdCAKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKTsKICAgICBWYWx1ZSog
cmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBsb2Fk
LCBhcmd1bWVudCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRS
dW48aW50MzJfdD4ocHJvYywgJmEsIGIpID09IGEgKyBiKTsKIH0KQEAgLTQ4MCw3ICs0ODgsNyBA
QCB2b2lkIHRlc3RBZGRJbW1NZW0zMihpbnQzMl90IGEsIGludDMyX3QgCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKSwKICAgICAgICAgbG9h
ZCk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2lu
KCksIHJlc3VsdCwgYWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIDApKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIDApKTsKIAogICAgIGludDMyX3QgaW5wdXRPdXRwdXQgPSBiOwogICAgIENIRUNLKCFj
b21waWxlQW5kUnVuPGludD4ocHJvYywgJmlucHV0T3V0cHV0KSk7CkBAIC00OTUsNyArNTAzLDcg
QEAgdm9pZCB0ZXN0QWRkQXJnWmVyb0ltbVpEZWYoKQogICAgICAgICBwcm9jLCBUcnVuYywgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgVmFsdWUqIGNvbnN0WmVybyA9
IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAtNTE1
LDcgKzUyMyw3IEBAIHZvaWQgdGVzdEFkZExvYWRUd2ljZSgpCiAgICAgICAgIFZhbHVlKiBsb2Fk
ID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgIHByb2MsIExvYWQs
IEludDMyLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgJnZhbHVlKSk7Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBsb2FkLCBsb2FkKSk7CiAKQEAgLTUzMiw3
ICs1NDAsNyBAQCB2b2lkIHRlc3RBZGRBcmdEb3VibGUoZG91YmxlIGEpCiAgICAgUHJvY2VkdXJl
IHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1
ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFk
ZCwgT3JpZ2luKCksIHZhbHVlLCB2YWx1ZSkpOwogCkBAIC01NDUsNyArNTUzLDcgQEAgdm9pZCB0
ZXN0QWRkQXJnc0RvdWJsZShkb3VibGUgYSwgZG91YmxlIAogICAgIEJhc2ljQmxvY2sqIHJvb3Qg
PSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsK
ICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjEpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBBZGQsIE9yaWdpbigpLCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC01NTgsNyArNTY2
LDcgQEAgdm9pZCB0ZXN0QWRkQXJnSW1tRG91YmxlKGRvdWJsZSBhLCBkb3VibAogICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJn
dW1lbnRGUFIwKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91
YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
QWRkLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtNTcxLDcgKzU3OSw3IEBAIHZv
aWQgdGVzdEFkZEltbUFyZ0RvdWJsZShkb3VibGUgYSwgZG91YmwKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmRO
ZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiB2YWx1
ZUIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQ
UkluZm86OmFyZ3VtZW50RlBSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3Jp
Z2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTU4NCw3ICs1OTIsNyBAQCB2b2lkIHRlc3RB
ZGRJbW1zRG91YmxlKGRvdWJsZSBhLCBkb3VibGUgCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0
RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9v
dC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApA
QCAtNjAwLDcgKzYwOCw3IEBAIHZvaWQgdGVzdEFkZEFyZ0Zsb2F0KGZsb2F0IGEpCiAgICAgVmFs
dWUqIGZsb2F0VmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0
LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSwgZmxvYXRWYWx1ZSk7
CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3
aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKIAog
ICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lz
ZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgKyBhKSkpOwpAQCAt
NjE4LDcgKzYyNiw3IEBAIHZvaWQgdGVzdEFkZEFyZ3NGbG9hdChmbG9hdCBhLCBmbG9hdCBiKQog
ICAgIFZhbHVlKiBmbG9hdFZhbHVlMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0
d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDJpbnQzMik7CiAgICAgVmFsdWUqIHJlc3VsdCA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZTEs
IGZsb2F0VmFsdWUyKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
c3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4o
cHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikp
LCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSArIGIpKSk7CiB9CkBAIC02MzMsNyArNjQxLDcgQEAg
dm9pZCB0ZXN0QWRkQXJnSW1tRmxvYXQoZmxvYXQgYSwgZmxvYXQgYgogICAgIFZhbHVlKiBjb25z
dFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IGIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFk
ZCwgT3JpZ2luKCksIGZsb2F0VmFsdWUsIGNvbnN0VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQz
MiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBy
ZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwo
Y29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBi
aXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSArIGIpKSk7CiB9CkBAIC02NDgsNyArNjU2LDcgQEAgdm9p
ZCB0ZXN0QWRkSW1tQXJnRmxvYXQoZmxvYXQgYSwgZmxvYXQgYgogICAgIFZhbHVlKiBjb25zdFZh
bHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEp
OwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwg
T3JpZ2luKCksIGNvbnN0VmFsdWUsIGZsb2F0VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1
bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29t
cGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oYSArIGIpKSk7CiB9CkBAIC02NjEsNyArNjY5LDcgQEAgdm9pZCB0
ZXN0QWRkSW1tc0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIpCiAgICAgVmFsdWUqIGNvbnN0VmFsdWUy
ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwog
ICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3Jp
Z2luKCksIGNvbnN0VmFsdWUxLCBjb25zdFZhbHVlMik7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3Vs
dCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21w
aWxlQW5kUnVuPGludDMyX3Q+KHByb2MpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSArIGIpKSk7
CiB9CkBAIC02NzcsNyArNjg1LDcgQEAgdm9pZCB0ZXN0QWRkQXJnRmxvYXRXaXRoVXNlbGVzc0Rv
dWJsZUNvbgogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEFkZCwgT3JpZ2luKCksIGFzRG91YmxlLCBhc0RvdWJsZSk7CiAgICAgVmFsdWUqIGZsb2F0UmVz
dWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4o
KSwgcmVzdWx0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90
Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4o
YSArIGEpKSk7CiB9CkBAIC02OTcsNyArNzA1LDcgQEAgdm9pZCB0ZXN0QWRkQXJnc0Zsb2F0V2l0
aFVzZWxlc3NEb3VibGVDbwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGFzRG91YmxlMSwgYXNEb3VibGUyKTsKICAgICBWYWx1
ZSogZmxvYXRSZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxv
YXQsIE9yaWdpbigpLCByZXN1bHQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5k
UnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgYml0d2lzZV9jYXN0
PGludDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgKyBiKSkpOwogfQpAQCAtNzE5
LDcgKzcyNyw3IEBAIHZvaWQgdGVzdEFkZEFyZ3NGbG9hdFdpdGhFZmZlY3RmdWxEb3VibGUKICAg
ICBWYWx1ZSogZG91YmxlQWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKTsKICAgICByb290LT5hcHBl
bmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBkb3VibGVB
ZGRyZXNzKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0MzIpOwogCiAgICAgZG91YmxlIGVmZmVjdCA9IDA7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwo
Y29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJp
dHdpc2VfY2FzdDxpbnQzMl90PihiKSwgJmVmZmVjdCksIGJpdHdpc2VfY2FzdDxpbnQzMl90Pihh
ICsgYikpKTsKQEAgLTczMiw3ICs3NDAsNyBAQCB2b2lkIHRlc3RNdWxBcmcoaW50IGEpCiAgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWUgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksIHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCks
IHZhbHVlLCB2YWx1ZSkpOwogCkBAIC03NTksNyArNzY3LDcgQEAgdm9pZCB0ZXN0TXVsQXJnU3Rv
cmUoaW50IGEpCiAgICAgICAgIHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgbXVsLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZtdWxTbG90KSk7
CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBDSEVDSygh
Y29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIGEpKTsKQEAgLTc3NCw3ICs3ODIsNyBAQCB2b2lkIHRl
c3RNdWxBZGRBcmcoaW50IGEpCiAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEFkZCwgT3Jp
Z2luKCksCkBAIC03ODgsNyArNzk2LDcgQEAgdm9pZCB0ZXN0TXVsQXJncyhpbnQgYSwgaW50IGIp
CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBNdWwsIE9y
aWdpbigpLApAQCAtODAyLDcgKzgxMCw3IEBAIHZvaWQgdGVzdE11bEFyZ0ltbShpbnQ2NF90IGEs
IGludDY0X3QgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIE11bCwgT3JpZ2luKCksCkBAIC04MTYsNyArODI0LDcgQEAgdm9pZCB0ZXN0TXVsSW1tQXJn
KGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIE11bCwgT3JpZ2luKCksCkBAIC04MzAsNyArODM4LDcgQEAgdm9pZCB0ZXN0TXVsQXJn
czMyKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIE11bCwgT3JpZ2luKCksCkBAIC04NTMsNyArODYxLDcgQEAgdm9pZCB0ZXN0TXVs
TG9hZFR3aWNlKCkKICAgICAgICAgVmFsdWUqIGxvYWQgPSByb290LT5hcHBlbmROZXc8TWVtb3J5
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZCwgSW50MzIsIE9yaWdpbigpLAogICAgICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAmdmFs
dWUpKTsKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3Jp
Z2luKCksIGxvYWQsIGxvYWQpKTsKIApAQCAtODc1LDcgKzg4Myw3IEBAIHZvaWQgdGVzdE11bEFk
ZEFyZ3NMZWZ0KCkKICAgICBWYWx1ZSogYXJnMiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKTsKICAgICBWYWx1
ZSogbXVsdGlwbGllZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4o
KSwgYXJnMCwgYXJnMSk7CiAgICAgVmFsdWUqIGFkZGVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBBZGQsIE9yaWdpbigpLCBtdWx0aXBsaWVkLCBhcmcyKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVk
KTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKQEAgLTg5OSw3ICs5MDcsNyBA
QCB2b2lkIHRlc3RNdWxBZGRBcmdzUmlnaHQoKQogICAgIFZhbHVlKiBhcmcyID0gcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjIpOwogICAgIFZhbHVlKiBtdWx0aXBsaWVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBNdWwsIE9yaWdpbigpLCBhcmcxLCBhcmcyKTsKICAgICBWYWx1ZSogYWRkZWQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGFyZzAsIG11bHRpcGxpZWQp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIGFkZGVkKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgYWRkZWQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApA
QCAtOTI2LDcgKzkzNCw3IEBAIHZvaWQgdGVzdE11bEFkZEFyZ3NMZWZ0MzIoKQogICAgICAgICBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMikpOwogICAgIFZhbHVlKiBtdWx0aXBsaWVkID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBhcmcwLCBhcmcxKTsKICAgICBWYWx1ZSogYWRk
ZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIG11bHRpcGxp
ZWQsIGFyZzIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIGFkZGVkKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShw
cm9jKTsKIApAQCAtOTUzLDcgKzk2MSw3IEBAIHZvaWQgdGVzdE11bEFkZEFyZ3NSaWdodDMyKCkK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjIpKTsKICAgICBWYWx1ZSogbXVsdGlwbGllZCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgYXJnMSwgYXJnMik7CiAgICAg
VmFsdWUqIGFkZGVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigp
LCBhcmcwLCBtdWx0aXBsaWVkKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKIAogICAgIGF1dG8gY29kZSA9
IGNvbXBpbGUocHJvYyk7CiAKQEAgLTk3Nyw3ICs5ODUsNyBAQCB2b2lkIHRlc3RNdWxTdWJBcmdz
TGVmdCgpCiAgICAgVmFsdWUqIGFyZzIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMik7CiAgICAgVmFsdWUqIG11
bHRpcGxpZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGFy
ZzAsIGFyZzEpOwogICAgIFZhbHVlKiBhZGRlZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgU3ViLCBPcmlnaW4oKSwgbXVsdGlwbGllZCwgYXJnMik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CiAK
ICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC0xMDAxLDcgKzEwMDksNyBAQCB2
b2lkIHRlc3RNdWxTdWJBcmdzUmlnaHQoKQogICAgIFZhbHVlKiBhcmcyID0gcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjIpOwogICAgIFZhbHVlKiBtdWx0aXBsaWVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBNdWwsIE9yaWdpbigpLCBhcmcxLCBhcmcyKTsKICAgICBWYWx1ZSogYWRkZWQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIGFyZzAsIG11bHRpcGxpZWQpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IGFkZGVkKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgYWRkZWQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAt
MTAyOCw3ICsxMDM2LDcgQEAgdm9pZCB0ZXN0TXVsU3ViQXJnc0xlZnQzMigpCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIyKSk7CiAgICAgVmFsdWUqIG11bHRpcGxpZWQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGFyZzAsIGFyZzEpOwogICAgIFZhbHVlKiBhZGRl
ZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgbXVsdGlwbGll
ZCwgYXJnMik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgYWRkZWQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHBy
b2MpOwogCkBAIC0xMDU1LDcgKzEwNjMsNyBAQCB2b2lkIHRlc3RNdWxTdWJBcmdzUmlnaHQzMigp
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKSk7CiAgICAgVmFsdWUqIG11bHRpcGxpZWQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGFyZzEsIGFyZzIpOwogICAg
IFZhbHVlKiBhZGRlZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4o
KSwgYXJnMCwgbXVsdGlwbGllZCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWRkZWQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhZGRlZCk7CiAKICAgICBhdXRvIGNvZGUg
PSBjb21waWxlKHByb2MpOwogCkBAIC0xMDc5LDcgKzEwODcsNyBAQCB2b2lkIHRlc3RNdWxOZWdB
cmdzKCkKICAgICBWYWx1ZSogbXVsdGlwbGllZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgTXVsLCBPcmlnaW4oKSwgYXJnMCwgYXJnMSk7CiAgICAgVmFsdWUqIHplcm8gPSByb290LT5h
cHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCk7CiAgICAgVmFsdWUqIGFk
ZGVkID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCB6ZXJvLCBt
dWx0aXBsaWVkKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBhZGRlZCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIGFkZGVkKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUo
cHJvYyk7CiAKQEAgLTExMDMsNyArMTExMSw3IEBAIHZvaWQgdGVzdE11bE5lZ0FyZ3MzMigpCiAg
ICAgVmFsdWUqIG11bHRpcGxpZWQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwg
T3JpZ2luKCksIGFyZzAsIGFyZzEpOwogICAgIFZhbHVlKiB6ZXJvID0gcm9vdC0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApOwogICAgIFZhbHVlKiBhZGRlZCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgemVybywgbXVsdGlwbGll
ZCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgYWRkZWQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBhZGRlZCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwog
CkBAIC0xMTIwLDcgKzExMjgsNyBAQCB2b2lkIHRlc3RNdWxBcmdEb3VibGUoZG91YmxlIGEpCiAg
ICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIE11bCwgT3JpZ2luKCksIHZhbHVlLCB2YWx1ZSkpOwogCkBAIC0xMTMzLDcgKzEx
NDEsNyBAQCB2b2lkIHRlc3RNdWxBcmdzRG91YmxlKGRvdWJsZSBhLCBkb3VibGUgCiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjph
cmd1bWVudEZQUjApOwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMSk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAK
QEAgLTExNDYsNyArMTE1NCw3IEBAIHZvaWQgdGVzdE11bEFyZ0ltbURvdWJsZShkb3VibGUgYSwg
ZG91YmwKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVl
KiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFw
cGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTEx
NTksNyArMTE2Nyw3IEBAIHZvaWQgdGVzdE11bEltbUFyZ0RvdWJsZShkb3VibGUgYSwgZG91YmwK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1
ZUEgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEp
OwogICAgIFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIE11bCwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTExNzIsNyAr
MTE4MCw3IEBAIHZvaWQgdGVzdE11bEltbXNEb3VibGUoZG91YmxlIGEsIGRvdWJsZSAKICAgICBC
YXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSBy
b290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAg
IFZhbHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIGIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCB2
YWx1ZUEsIHZhbHVlQikpOwogCkBAIC0xMTg4LDcgKzExOTYsNyBAQCB2b2lkIHRlc3RNdWxBcmdG
bG9hdChmbG9hdCBhKQogICAgIFZhbHVlKiBmbG9hdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVl
KiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGZs
b2F0VmFsdWUsIGZsb2F0VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0MzIpOwogCiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVu
PGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxp
bnQzMl90PihhICogYSkpKTsKQEAgLTEyMDYsNyArMTIxNCw3IEBAIHZvaWQgdGVzdE11bEFyZ3NG
bG9hdChmbG9hdCBhLCBmbG9hdCBiKQogICAgIFZhbHVlKiBmbG9hdFZhbHVlMiA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDJpbnQz
Mik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVs
LCBPcmlnaW4oKSwgZmxvYXRWYWx1ZTEsIGZsb2F0VmFsdWUyKTsKICAgICBWYWx1ZSogcmVzdWx0
MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwg
cmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2Fs
KGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBi
aXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAqIGIpKSk7
CiB9CkBAIC0xMjIxLDcgKzEyMjksNyBAQCB2b2lkIHRlc3RNdWxBcmdJbW1GbG9hdChmbG9hdCBh
LCBmbG9hdCBiCiAgICAgVmFsdWUqIGNvbnN0VmFsdWUgPSByb290LT5hcHBlbmROZXc8Q29uc3RG
bG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSwgY29uc3RW
YWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7
CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJp
dHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhICogYikpKTsK
IH0KQEAgLTEyMzYsNyArMTI0NCw3IEBAIHZvaWQgdGVzdE11bEltbUFyZ0Zsb2F0KGZsb2F0IGEs
IGZsb2F0IGIKICAgICBWYWx1ZSogY29uc3RWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZs
b2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigpLCBjb25zdFZhbHVlLCBmbG9hdFZh
bHVlKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsK
IAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0
d2lzZV9jYXN0PGludDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgKiBiKSkpOwog
fQpAQCAtMTI0OSw3ICsxMjU3LDcgQEAgdm9pZCB0ZXN0TXVsSW1tc0Zsb2F0KGZsb2F0IGEsIGZs
b2F0IGIpCiAgICAgVmFsdWUqIGNvbnN0VmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0Rmxv
YXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIE11bCwgT3JpZ2luKCksIGNvbnN0VmFsdWUxLCBjb25zdFZh
bHVlMik7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7
CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MpLCBi
aXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAqIGIpKSk7CiB9CkBAIC0xMjY1LDcgKzEyNzMsNyBAQCB2
b2lkIHRlc3RNdWxBcmdGbG9hdFdpdGhVc2VsZXNzRG91YmxlQ29uCiAgICAgVmFsdWUqIHJlc3Vs
dCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTXVsLCBPcmlnaW4oKSwgYXNEb3VibGUs
IGFzRG91YmxlKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCByZXN1bHQpOwogICAgIFZhbHVlKiBy
ZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdp
bigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhp
c0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQz
Ml90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhICogYSkpKTsKIH0KQEAgLTEyODUsNyAr
MTI5Myw3IEBAIHZvaWQgdGVzdE11bEFyZ3NGbG9hdFdpdGhVc2VsZXNzRG91YmxlQ28KICAgICBW
YWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNdWwsIE9yaWdpbigp
LCBhc0RvdWJsZTEsIGFzRG91YmxlMik7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgcmVzdWx0KTsK
ICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdp
c2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwog
CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSksIGJpdHdpc2Vf
Y2FzdDxpbnQzMl90PihhICogYikpKTsKIH0KQEAgLTEzMDcsNyArMTMxNSw3IEBAIHZvaWQgdGVz
dE11bEFyZ3NGbG9hdFdpdGhFZmZlY3RmdWxEb3VibGUKICAgICBWYWx1ZSogZG91YmxlTXVscmVz
cyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BS
SW5mbzo6YXJndW1lbnRHUFIyKTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHBy
b2MsIFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBkb3VibGVNdWxyZXNzKTsKICAgICBWYWx1ZSog
cmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmln
aW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgZG91Ymxl
IGVmZmVjdCA9IDA7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90
Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90Pihi
KSwgJmVmZmVjdCksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhICogYikpKTsKQEAgLTEzMTksNyAr
MTMyNyw3IEBAIHZvaWQgdGVzdERpdkFyZ0RvdWJsZShkb3VibGUgYSkKICAgICBQcm9jZWR1cmUg
cHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVl
KiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRGl2
LCBPcmlnaW4oKSwgdmFsdWUsIHZhbHVlKSk7CiAKQEAgLTEzMzIsNyArMTM0MCw3IEBAIHZvaWQg
dGVzdERpdkFyZ3NEb3VibGUoZG91YmxlIGEsIGRvdWJsZSAKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7
CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIxKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTM0NSw3ICsx
MzUzLDcgQEAgdm9pZCB0ZXN0RGl2QXJnSW1tRG91YmxlKGRvdWJsZSBhLCBkb3VibAogICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6
YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0
RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgRGl2LCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTM1OCw3ICsxMzY2LDcg
QEAgdm9pZCB0ZXN0RGl2SW1tQXJnRG91YmxlKGRvdWJsZSBhLCBkb3VibAogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFw
cGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUq
IHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRGl2
LCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTM3MSw3ICsxMzc5LDcgQEAgdm9p
ZCB0ZXN0RGl2SW1tc0RvdWJsZShkb3VibGUgYSwgZG91YmxlIAogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5l
dzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHZhbHVl
QiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERpdiwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVC
KSk7CiAKQEAgLTEzODcsNyArMTM5NSw3IEBAIHZvaWQgdGVzdERpdkFyZ0Zsb2F0KGZsb2F0IGEp
CiAgICAgVmFsdWUqIGZsb2F0VmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJp
dHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSwgZmxv
YXRWYWx1ZSk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQz
Mik7CiAKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJv
YywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLyBh
KSkpOwpAQCAtMTQwNSw3ICsxNDEzLDcgQEAgdm9pZCB0ZXN0RGl2QXJnc0Zsb2F0KGZsb2F0IGEs
IGZsb2F0IGIpCiAgICAgVmFsdWUqIGZsb2F0VmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MmludDMyKTsKICAgICBWYWx1
ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEaXYsIE9yaWdpbigpLCBm
bG9hdFZhbHVlMSwgZmxvYXRWYWx1ZTIpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
c3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1
bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxp
bnQzMl90PihiKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhIC8gYikpKTsKIH0KQEAgLTE0MjAs
NyArMTQyOCw3IEBAIHZvaWQgdGVzdERpdkFyZ0ltbUZsb2F0KGZsb2F0IGEsIGZsb2F0IGIKICAg
ICBWYWx1ZSogY29uc3RWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBiKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBEaXYsIE9yaWdpbigpLCBmbG9hdFZhbHVlLCBjb25zdFZhbHVlKTsKICAgICBW
YWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0
LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNL
KGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLyBiKSkpOwogfQpAQCAtMTQzNSw3
ICsxNDQzLDcgQEAgdm9pZCB0ZXN0RGl2SW1tQXJnRmxvYXQoZmxvYXQgYSwgZmxvYXQgYgogICAg
IFZhbHVlKiBjb25zdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIERpdiwgT3JpZ2luKCksIGNvbnN0VmFsdWUsIGZsb2F0VmFsdWUpOwogICAgIFZh
bHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3Qs
IE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0so
aXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50
MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAvIGIpKSk7CiB9CkBAIC0xNDQ4LDcg
KzE0NTYsNyBAQCB2b2lkIHRlc3REaXZJbW1zRmxvYXQoZmxvYXQgYSwgZmxvYXQgYikKICAgICBW
YWx1ZSogY29uc3RWYWx1ZTIgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgYik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwgY29uc3RWYWx1ZTEsIGNvbnN0VmFsdWUyKTsKICAgICBW
YWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0
LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNL
KGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYyksIGJpdHdpc2VfY2FzdDxp
bnQzMl90PihhIC8gYikpKTsKIH0KQEAgLTE0NTgsNyArMTQ2Niw3IEBAIHZvaWQgdGVzdE1vZEFy
Z0RvdWJsZShkb3VibGUgYSkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIw
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgdmFsdWUsIHZhbHVl
KSk7CiAKQEAgLTE0NzEsNyArMTQ3OSw3IEBAIHZvaWQgdGVzdE1vZEFyZ3NEb3VibGUoZG91Ymxl
IGEsIGRvdWJsZSAKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAg
IFZhbHVlKiB2YWx1ZUEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6
YXJndW1lbnRGUFIxKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwg
dmFsdWVBLCB2YWx1ZUIpKTsKIApAQCAtMTQ4NCw3ICsxNDkyLDcgQEAgdm9pZCB0ZXN0TW9kQXJn
SW1tRG91YmxlKGRvdWJsZSBhLCBkb3VibAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1
ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBiKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgdmFsdWVB
LCB2YWx1ZUIpKTsKIApAQCAtMTQ5Nyw3ICsxNTA1LDcgQEAgdm9pZCB0ZXN0TW9kSW1tQXJnRG91
YmxlKGRvdWJsZSBhLCBkb3VibAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7CiAgICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIw
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1
ZUIpKTsKIApAQCAtMTUxMCw3ICsxNTE4LDcgQEAgdm9pZCB0ZXN0TW9kSW1tc0RvdWJsZShkb3Vi
bGUgYSwgZG91YmxlIAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAg
ICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgYSk7CiAgICAgVmFsdWUqIHZhbHVlQiA9IHJvb3QtPmFwcGVuZE5ldzxDb25z
dERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIE1vZCwgT3JpZ2luKCksIHZhbHVlQSwgdmFsdWVCKSk7CiAKQEAgLTE1MjYsNyArMTUzNCw3
IEBAIHZvaWQgdGVzdE1vZEFyZ0Zsb2F0KGZsb2F0IGEpCiAgICAgVmFsdWUqIGZsb2F0VmFsdWUg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJn
dW1lbnQzMik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgTW9kLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSwgZmxvYXRWYWx1ZSk7CiAgICAgVmFsdWUqIHJl
c3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2lu
KCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKIAogICAgIENIRUNLKGlzSWRl
bnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+
KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0PGZsb2F0PihmbW9kKGEsIGEp
KSkpKTsKQEAgLTE1NDQsNyArMTU1Miw3IEBAIHZvaWQgdGVzdE1vZEFyZ3NGbG9hdChmbG9hdCBh
LCBmbG9hdCBiKQogICAgIFZhbHVlKiBmbG9hdFZhbHVlMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDJpbnQzMik7CiAgICAgVmFs
dWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgTW9kLCBPcmlnaW4oKSwg
ZmxvYXRWYWx1ZTEsIGZsb2F0VmFsdWUyKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRS
dW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KGZt
b2QoYSwgYikpKSkpOwogfQpAQCAtMTU1OSw3ICsxNTY3LDcgQEAgdm9pZCB0ZXN0TW9kQXJnSW1t
RmxvYXQoZmxvYXQgYSwgZmxvYXQgYgogICAgIFZhbHVlKiBjb25zdFZhbHVlID0gcm9vdC0+YXBw
ZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiBy
ZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIGZsb2F0
VmFsdWUsIGNvbnN0VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMy
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQz
Ml90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJf
dD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KGZtb2QoYSwgYikpKSkpOwogfQpAQCAtMTU3NCw3ICsxNTgy
LDcgQEAgdm9pZCB0ZXN0TW9kSW1tQXJnRmxvYXQoZmxvYXQgYSwgZmxvYXQgYgogICAgIFZhbHVl
KiBjb25zdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIGEpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIE1vZCwgT3JpZ2luKCksIGNvbnN0VmFsdWUsIGZsb2F0VmFsdWUpOwogICAgIFZhbHVlKiBy
ZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdp
bigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVu
dGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4o
YikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KGZtb2QoYSwgYikp
KSkpOwogfQpAQCAtMTU4Nyw3ICsxNTk1LDcgQEAgdm9pZCB0ZXN0TW9kSW1tc0Zsb2F0KGZsb2F0
IGEsIGZsb2F0IGIpCiAgICAgVmFsdWUqIGNvbnN0VmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PENv
bnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiByZXN1bHQgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIE1vZCwgT3JpZ2luKCksIGNvbnN0VmFsdWUxLCBj
b25zdFZhbHVlMik7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1
bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHBy
b2MpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KGZtb2QoYSwgYikp
KSkpOwogfQpAQCAtMTYwMyw3ICsxNjExLDcgQEAgdm9pZCB0ZXN0RGl2QXJnRmxvYXRXaXRoVXNl
bGVzc0RvdWJsZUNvbgogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIERpdiwgT3JpZ2luKCksIGFzRG91YmxlLCBhc0RvdWJsZSk7CiAgICAgVmFsdWUqIGZs
b2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBP
cmlnaW4oKSwgcmVzdWx0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxp
bnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50
MzJfdD4oYSAvIGEpKSk7CiB9CkBAIC0xNjIzLDcgKzE2MzEsNyBAQCB2b2lkIHRlc3REaXZBcmdz
RmxvYXRXaXRoVXNlbGVzc0RvdWJsZUNvCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgRGl2LCBPcmlnaW4oKSwgYXNEb3VibGUxLCBhc0RvdWJsZTIpOwog
ICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91
YmxlVG9GbG9hdCwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVz
dWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNv
bXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSAvIGIpKSk7CiB9
CkBAIC0xNjQ1LDcgKzE2NTMsNyBAQCB2b2lkIHRlc3REaXZBcmdzRmxvYXRXaXRoRWZmZWN0ZnVs
RG91YmxlCiAgICAgVmFsdWUqIGRvdWJsZURpdnJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMik7CiAgICAg
cm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJlc3Vs
dCwgZG91YmxlRGl2cmVzcyk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1
bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdDMyKTsKIAogICAgIGRvdWJsZSBlZmZlY3QgPSAwOwogICAgIENIRUNLKGlz
SWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMy
X3Q+KGEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYiksICZlZmZlY3QpLCBiaXR3aXNlX2Nhc3Q8
aW50MzJfdD4oYSAvIGIpKSk7CkBAIC0xNjU3LDcgKzE2NjUsNyBAQCB2b2lkIHRlc3RTdWJBcmco
aW50IGEpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIHZhbHVlLCB2YWx1ZSkpOwogCkBAIC0x
NjY4LDcgKzE2NzYsNyBAQCB2b2lkIHRlc3RTdWJBcmdzKGludCBhLCBpbnQgYikKIHsKICAgICBQ
cm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFN1YiwgT3JpZ2luKCksCkBA
IC0xNjgyLDcgKzE2OTAsNyBAQCB2b2lkIHRlc3RTdWJBcmdJbW0oaW50NjRfdCBhLCBpbnQ2NF90
IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTdWIs
IE9yaWdpbigpLApAQCAtMTcwMyw3ICsxNzExLDcgQEAgdm9pZCB0ZXN0TmVnVmFsdWVTdWJPbmUo
aW50IGEpCiAgICAgVmFsdWUqIG5lZ0FyZ3VtZW50TWludXNPbmUgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksCiAgICAgICAgIG5lZ0FyZ3VtZW50LAogICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIG5l
Z0FyZ3VtZW50TWludXNPbmUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBuZWdBcmd1bWVudE1pbnVzT25lKTsKICAgICBDSEVDSyhjb21w
aWxlQW5kUnVuPGludD4ocHJvYywgYSkgPT0gLWEgLSAxKTsKIH0KIApAQCAtMTcxMSw3ICsxNzE5
LDcgQEAgdm9pZCB0ZXN0U3ViSW1tQXJnKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUg
cHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFN1YiwgT3JpZ2luKCksCkBAIC0xNzMwLDcg
KzE3MzgsNyBAQCB2b2lkIHRlc3RTdWJBcmdNZW0oaW50NjRfdCBhLCBpbnQ2NF90IGIpCiAgICAg
VmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApLAogICAgICAgICBsb2FkKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
ZXN1bHQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCBhLCAmYikg
PT0gYSAtIGIpOwogfQpAQCAtMTc0NSw3ICsxNzUzLDcgQEAgdm9pZCB0ZXN0U3ViTWVtQXJnKGlu
dDY0X3QgYSwgaW50NjRfdCBiKQogICAgICAgICBsb2FkLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BS
MSkpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdp
bigpLCByZXN1bHQsIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCAwKSk7CiAKICAgICBpbnQ2NF90IGlucHV0T3V0cHV0ID0gYTsKICAgICBDSEVDSygh
Y29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAmaW5wdXRPdXRwdXQsIGIpKTsKQEAgLTE3NjIs
NyArMTc3MCw3IEBAIHZvaWQgdGVzdFN1YkltbU1lbShpbnQ2NF90IGEsIGludDY0X3QgYikKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpLAog
ICAgICAgICBsb2FkKTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0
b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgaW50NjRfdCBpbnB1dE91dHB1dCA9IGI7CiAg
ICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAmaW5wdXRPdXRwdXQpKTsKQEAgLTE3
NzksNyArMTc4Nyw3IEBAIHZvaWQgdGVzdFN1Yk1lbUltbShpbnQ2NF90IGEsIGludDY0X3QgYikK
ICAgICAgICAgbG9hZCwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIGIpKTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2Ms
IFN0b3JlLCBPcmlnaW4oKSwgcmVzdWx0LCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29u
c3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgaW50NjRfdCBpbnB1dE91dHB1dCA9IGE7
CiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAmaW5wdXRPdXRwdXQpKTsKQEAg
LTE3OTEsNyArMTc5OSw3IEBAIHZvaWQgdGVzdFN1YkFyZ3MzMihpbnQgYSwgaW50IGIpCiB7CiAg
ICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTdWIsIE9yaWdpbigp
LApAQCAtMTgwOSw3ICsxODE3LDcgQEAgdm9pZCB0ZXN0U3ViQXJnSW1tMzIoaW50IGEsIGludCBi
KQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU3ViLCBP
cmlnaW4oKSwKQEAgLTE4MjUsNyArMTgzMyw3IEBAIHZvaWQgdGVzdFN1YkltbUFyZzMyKGludCBh
LCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IFN1YiwgT3JpZ2luKCksCkBAIC0xODQ3LDcgKzE4NTUsNyBAQCB2b2lkIHRlc3RTdWJNZW1Bcmcz
MihpbnQzMl90IGEsIGludDMyX3QgCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7CiAgICAgVmFs
dWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwg
bG9hZCwgYXJndW1lbnQpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywg
U3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBpbnQzMl90IGlucHV0T3V0cHV0ID0gYTsK
ICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCAmaW5wdXRPdXRwdXQsIGIp
KTsKQEAgLTE4NjMsNyArMTg3MSw3IEBAIHZvaWQgdGVzdFN1YkFyZ01lbTMyKGludDMyX3QgYSwg
aW50MzJfdCAKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAgICBWYWx1
ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBh
cmd1bWVudCwgbG9hZCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVB
bmRSdW48aW50MzJfdD4ocHJvYywgYSwgJmIpID09IGEgLSBiKTsKIH0KQEAgLTE4NzgsNyArMTg4
Niw3IEBAIHZvaWQgdGVzdFN1YkltbU1lbTMyKGludDMyX3QgYSwgaW50MzJfdCAKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpLAogICAgICAg
ICBsb2FkKTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlLCBP
cmlnaW4oKSwgcmVzdWx0LCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgMCkpOwogCiAgICAgaW50MzJfdCBpbnB1dE91dHB1dCA9IGI7CiAgICAgQ0hF
Q0soIWNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAmaW5wdXRPdXRwdXQpKTsKQEAgLTE4OTUsNyAr
MTkwMyw3IEBAIHZvaWQgdGVzdFN1Yk1lbUltbTMyKGludDMyX3QgYSwgaW50MzJfdCAKICAgICAg
ICAgbG9hZCwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIGIpKTsKICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3Jl
LCBPcmlnaW4oKSwgcmVzdWx0LCBhZGRyZXNzKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgaW50MzJfdCBpbnB1dE91dHB1dCA9IGE7CiAgICAg
Q0hFQ0soIWNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAmaW5wdXRPdXRwdXQpKTsKQEAgLTE5MTQs
NyArMTkyMiw3IEBAIHZvaWQgdGVzdE5lZ1ZhbHVlU3ViT25lMzIoaW50IGEpCiAgICAgVmFsdWUq
IG5lZ0FyZ3VtZW50TWludXNPbmUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1Yiwg
T3JpZ2luKCksCiAgICAgICAgIG5lZ0FyZ3VtZW50LAogICAgICAgICByb290LT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIG5lZ0FyZ3VtZW50TWludXNPbmUp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBuZWdBcmd1bWVudE1pbnVzT25lKTsKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJv
YywgYSkgPT0gLWEgLSAxKTsKIH0KIApAQCAtMTkyMyw3ICsxOTMxLDcgQEAgdm9pZCB0ZXN0U3Vi
QXJnRG91YmxlKGRvdWJsZSBhKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQ
UjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCB2YWx1ZSwgdmFs
dWUpKTsKIApAQCAtMTkzNiw3ICsxOTQ0LDcgQEAgdm9pZCB0ZXN0U3ViQXJnc0RvdWJsZShkb3Vi
bGUgYSwgZG91YmxlIAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAg
ICAgVmFsdWUqIHZhbHVlQSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBWYWx1ZSogdmFsdWVCID0g
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZv
Ojphcmd1bWVudEZQUjEpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigp
LCB2YWx1ZUEsIHZhbHVlQikpOwogCkBAIC0xOTQ5LDcgKzE5NTcsNyBAQCB2b2lkIHRlc3RTdWJB
cmdJbW1Eb3VibGUoZG91YmxlIGEsIGRvdWJsCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50
UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZh
bHVlKiB2YWx1ZUIgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIGIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCB2YWx1
ZUEsIHZhbHVlQikpOwogCkBAIC0xOTYyLDcgKzE5NzAsNyBAQCB2b2lkIHRlc3RTdWJJbW1BcmdE
b3VibGUoZG91YmxlIGEsIGRvdWJsCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQ
UjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCB2YWx1ZUEsIHZh
bHVlQikpOwogCkBAIC0xOTc1LDcgKzE5ODMsNyBAQCB2b2lkIHRlc3RTdWJJbW1zRG91YmxlKGRv
dWJsZSBhLCBkb3VibGUgCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
ICAgICBWYWx1ZSogdmFsdWVBID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogdmFsdWVCID0gcm9vdC0+YXBwZW5kTmV3PENv
bnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgU3ViLCBPcmlnaW4oKSwgdmFsdWVBLCB2YWx1ZUIpKTsKICAgICAKQEAgLTE5OTEsNyAr
MTk5OSw3IEBAIHZvaWQgdGVzdFN1YkFyZ0Zsb2F0KGZsb2F0IGEpCiAgICAgVmFsdWUqIGZsb2F0
VmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4o
KSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSwgZmxvYXRWYWx1ZSk7CiAgICAgVmFs
dWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwg
T3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKIAogICAgIENIRUNL
KGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLSBhKSkpOwpAQCAtMjAwOSw3ICsy
MDE3LDcgQEAgdm9pZCB0ZXN0U3ViQXJnc0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIpCiAgICAgVmFs
dWUqIGZsb2F0VmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2Fz
dCwgT3JpZ2luKCksIGFyZ3VtZW50MmludDMyKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBmbG9hdFZhbHVlMSwgZmxvYXRW
YWx1ZTIpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIp
OwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBi
aXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSksIGJpdHdp
c2VfY2FzdDxpbnQzMl90PihhIC0gYikpKTsKIH0KQEAgLTIwMjQsNyArMjAzMiw3IEBAIHZvaWQg
dGVzdFN1YkFyZ0ltbUZsb2F0KGZsb2F0IGEsIGZsb2F0IGIKICAgICBWYWx1ZSogY29uc3RWYWx1
ZSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsK
ICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9y
aWdpbigpLCBmbG9hdFZhbHVlLCBjb25zdFZhbHVlKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBp
bGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lz
ZV9jYXN0PGludDMyX3Q+KGEgLSBiKSkpOwogfQpAQCAtMjAzOSw3ICsyMDQ3LDcgQEAgdm9pZCB0
ZXN0U3ViSW1tQXJnRmxvYXQoZmxvYXQgYSwgZmxvYXQgYgogICAgIFZhbHVlKiBjb25zdFZhbHVl
ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwog
ICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFN1YiwgT3Jp
Z2luKCksIGNvbnN0VmFsdWUsIGZsb2F0VmFsdWUpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGls
ZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYikpLCBiaXR3aXNl
X2Nhc3Q8aW50MzJfdD4oYSAtIGIpKSk7CiB9CkBAIC0yMDUyLDcgKzIwNjAsNyBAQCB2b2lkIHRl
c3RTdWJJbW1zRmxvYXQoZmxvYXQgYSwgZmxvYXQgYikKICAgICBWYWx1ZSogY29uc3RWYWx1ZTIg
PSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7CiAg
ICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmln
aW4oKSwgY29uc3RWYWx1ZTEsIGNvbnN0VmFsdWUyKTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBp
bGVBbmRSdW48aW50MzJfdD4ocHJvYyksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhIC0gYikpKTsK
IH0KQEAgLTIwNjgsNyArMjA3Niw3IEBAIHZvaWQgdGVzdFN1YkFyZ0Zsb2F0V2l0aFVzZWxlc3NE
b3VibGVDb24KICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBTdWIsIE9yaWdpbigpLCBhc0RvdWJsZSwgYXNEb3VibGUpOwogICAgIFZhbHVlKiBmbG9hdFJl
c3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2lu
KCksIHJlc3VsdCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJf
dD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+
KGEgLSBhKSkpOwogfQpAQCAtMjA4OCw3ICsyMDk2LDcgQEAgdm9pZCB0ZXN0U3ViQXJnc0Zsb2F0
V2l0aFVzZWxlc3NEb3VibGVDbwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIFN1YiwgT3JpZ2luKCksIGFzRG91YmxlMSwgYXNEb3VibGUyKTsKICAgICBW
YWx1ZSogZmxvYXRSZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRv
RmxvYXQsIE9yaWdpbigpLCByZXN1bHQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxl
QW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgYml0d2lzZV9j
YXN0PGludDMyX3Q+KGIpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEgLSBiKSkpOwogfQpAQCAt
MjExMCw3ICsyMTE4LDcgQEAgdm9pZCB0ZXN0U3ViQXJnc0Zsb2F0V2l0aEVmZmVjdGZ1bERvdWJs
ZQogICAgIFZhbHVlKiBkb3VibGVTdWJyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpOwogICAgIHJvb3Qt
PmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGRv
dWJsZVN1YnJlc3MpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIp
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCByZXN1bHQzMik7CiAKICAgICBkb3VibGUgZWZmZWN0ID0gMDsKICAgICBDSEVDSyhpc0lkZW50
aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90Pihh
KSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGIpLCAmZWZmZWN0KSwgYml0d2lzZV9jYXN0PGludDMy
X3Q+KGEgLSBiKSkpOwpAQCAtMjEyMSw3ICsyMTI5LDcgQEAgdm9pZCB0ZXN0Qml0QW5kQXJncyhp
bnQ2NF90IGEsIGludDY0X3QgYgogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTIxMzYsNyArMjE0NCw3IEBAIHZvaWQg
dGVzdEJpdEFuZFNhbWVBcmcoaW50NjRfdCBhKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0g
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjApOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IEJpdEFuZCwgT3JpZ2luKCksCkBAIC0yMTUwLDcgKzIxNTgsNyBAQCB2b2lkIHRlc3RCaXRBbmRJ
bW1zKGludDY0X3QgYSwgaW50NjRfdCBiCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMjE2NCw3ICsyMTcyLDcgQEAg
dm9pZCB0ZXN0Qml0QW5kQXJnSW1tKGludDY0X3QgYSwgaW50NjRfdAogewogICAgIFByb2NlZHVy
ZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTIx
NzgsNyArMjE4Niw3IEBAIHZvaWQgdGVzdEJpdEFuZEltbUFyZyhpbnQ2NF90IGEsIGludDY0X3QK
IHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwg
T3JpZ2luKCksCkBAIC0yMTk2LDcgKzIyMDQsNyBAQCB2b2lkIHRlc3RCaXRBbmRCaXRBbmRBcmdJ
bW1JbW0oaW50NjRfdCBhCiAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIwKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIGIpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBw
cm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMjIxNCw3ICsyMjIyLDcgQEAgdm9pZCB0ZXN0Qml0
QW5kSW1tQml0QW5kQXJnSW1tKGludDY0X3QgYQogICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
b25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBjKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAog
ICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTIyMjgsNyArMjIzNiw3IEBA
IHZvaWQgdGVzdEJpdEFuZEFyZ3MzMihpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHBy
b2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMjI0OCw3
ICsyMjU2LDcgQEAgdm9pZCB0ZXN0Qml0QW5kU2FtZUFyZzMyKGludCBhKQogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0QW5k
LCBPcmlnaW4oKSwKQEAgLTIyNjIsNyArMjI3MCw3IEBAIHZvaWQgdGVzdEJpdEFuZEltbXMzMihp
bnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9v
dCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBw
cm9jLCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMjI3Niw3ICsyMjg0LDcgQEAgdm9pZCB0ZXN0Qml0
QW5kQXJnSW1tMzIoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAog
ICAgICAgICAgICAgcHJvYywgQml0QW5kLCBPcmlnaW4oKSwKQEAgLTIyOTIsNyArMjMwMCw3IEBA
IHZvaWQgdGVzdEJpdEFuZEltbUFyZzMyKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUg
cHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0yMzE0
LDcgKzIzMjIsNyBAQCB2b2lkIHRlc3RCaXRBbmRCaXRBbmRBcmdJbW1JbW0zMihpbnQgYSwgCiAg
ICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCkpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgYikpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdEFu
ZCwgT3JpZ2luKCksCkBAIC0yMzM0LDcgKzIzNDIsNyBAQCB2b2lkIHRlc3RCaXRBbmRJbW1CaXRB
bmRBcmdJbW0zMihpbnQgYSwgCiAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAg
ICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29u
c3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYykpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0yMzYxLDcgKzIzNjksNyBAQCB2
b2lkIHRlc3RCaXRBbmRXaXRoTWFza1JldHVybnNCb29sZWFucyhpCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MiksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCAtNSkpOwogCi0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2VsZWN0
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgc2VsZWN0KTsKIAogICAgIGludDY0X3QgZXhwZWN0ZWQgPSAoYSA9PSBiKSA/IC01IDogNDI7
CiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCBhLCBiKSA9PSBleHBlY3Rl
ZCk7CkBAIC0yMzc4LDcgKzIzODYsNyBAQCB2b2lkIHRlc3RCaXRBbmRBcmdEb3VibGUoZG91Ymxl
IGEpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSog
YXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0QW5kLCBPcmlnaW4oKSwgYXJndW1lbnQsIGFyZ3VtZW50
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFu
ZFJ1bjxkb3VibGU+KHByb2MsIGEpLCBiaXRBbmREb3VibGUoYSwgYSkpKTsKIH0KQEAgLTIzOTAs
NyArMjM5OCw3IEBAIHZvaWQgdGVzdEJpdEFuZEFyZ3NEb3VibGUoZG91YmxlIGEsIGRvdWIKICAg
ICBWYWx1ZSogYXJndW1lbnRBID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiBhcmd1bWVu
dEIgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQ
UkluZm86OmFyZ3VtZW50RlBSMSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgQml0QW5kLCBPcmlnaW4oKSwgYXJndW1lbnRBLCBhcmd1bWVudEIpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVu
PGRvdWJsZT4ocHJvYywgYSwgYiksIGJpdEFuZERvdWJsZShhLCBiKSkpOwogfQpAQCAtMjQwMiw3
ICsyNDEwLDcgQEAgdm9pZCB0ZXN0Qml0QW5kQXJnSW1tRG91YmxlKGRvdWJsZSBhLCBkbwogICAg
IFZhbHVlKiBhcmd1bWVudEEgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50
QiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7
CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0QW5k
LCBPcmlnaW4oKSwgYXJndW1lbnRBLCBhcmd1bWVudEIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAK
ICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgYSwgYiks
IGJpdEFuZERvdWJsZShhLCBiKSkpOwogfQpAQCAtMjQxNCw3ICsyNDIyLDcgQEAgdm9pZCB0ZXN0
Qml0QW5kSW1tc0RvdWJsZShkb3VibGUgYSwgZG91YgogICAgIFZhbHVlKiBhcmd1bWVudEEgPSBy
b290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAg
IFZhbHVlKiBhcmd1bWVudEIgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEJpdEFuZCwgT3JpZ2luKCksIGFyZ3VtZW50QSwgYXJndW1lbnRCKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1
bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3Vi
bGU+KHByb2MpLCBiaXRBbmREb3VibGUoYSwgYikpKTsKIH0KQEAgLTI0MzIsNyArMjQ0MCw3IEBA
IHZvaWQgdGVzdEJpdEFuZEFyZ0Zsb2F0KGZsb2F0IGEpCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApKSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
Qml0QW5kLCBPcmlnaW4oKSwgYXJndW1lbnQsIGFyZ3VtZW50KTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQp
OwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYywgYml0
d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0QW5kRmxvYXQoYSwgYSkpKTsKIH0KQEAgLTI0NDgs
NyArMjQ1Niw3IEBAIHZvaWQgdGVzdEJpdEFuZEFyZ3NGbG9hdChmbG9hdCBhLCBmbG9hdCAKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAg
ICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMSkpKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBCaXRBbmQsIE9yaWdpbigpLCBhcmd1bWVudEEsIGFyZ3VtZW50
Qik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVB
bmRSdW48ZmxvYXQ+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSwgYml0d2lzZV9jYXN0
PGludDMyX3Q+KGIpKSwgYml0QW5kRmxvYXQoYSwgYikpKTsKIH0KQEAgLTI0NjIsNyArMjQ3MCw3
IEBAIHZvaWQgdGVzdEJpdEFuZEFyZ0ltbUZsb2F0KGZsb2F0IGEsIGZsb2EKICAgICAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIwKSkpOwogICAgIFZhbHVlKiBhcmd1bWVudEIgPSByb290LT5hcHBlbmRO
ZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYik7CiAgICAgVmFsdWUqIHJlc3Vs
dCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0QW5kLCBPcmlnaW4oKSwgYXJndW1l
bnRBLCBhcmd1bWVudEIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhpc0lkZW50
aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSks
IGJpdHdpc2VfY2FzdDxpbnQzMl90PihiKSksIGJpdEFuZEZsb2F0KGEsIGIpKSk7CiB9CkBAIC0y
NDc0LDcgKzI0ODIsNyBAQCB2b2lkIHRlc3RCaXRBbmRJbW1zRmxvYXQoZmxvYXQgYSwgZmxvYXQg
CiAgICAgVmFsdWUqIGFyZ3VtZW50QSA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZsb2F0VmFsdWU+
KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogYXJndW1lbnRCID0gcm9vdC0+YXBwZW5k
TmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwogICAgIFZhbHVlKiByZXN1
bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdEFuZCwgT3JpZ2luKCksIGFyZ3Vt
ZW50QSwgYXJndW1lbnRCKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soaXNJZGVu
dGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYyksIGJpdEFuZEZsb2F0KGEsIGIpKSk7CiB9
CkBAIC0yNDkzLDcgKzI1MDEsNyBAQCB2b2lkIHRlc3RCaXRBbmRBcmdzRmxvYXRXaXRoVXNlbGVz
c0RvdWJsCiAgICAgVmFsdWUqIGFyZ3VtZW50QmFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgYXJndW1lbnRCKTsKICAgICBWYWx1
ZSogZG91YmxlUmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXRBbmQsIE9y
aWdpbigpLCBhcmd1bWVudEFhc0RvdWJsZSwgYXJndW1lbnRCYXNEb3VibGUpOwogICAgIFZhbHVl
KiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9h
dCwgT3JpZ2luKCksIGRvdWJsZVJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7
CiAKICAgICBkb3VibGUgZG91YmxlQSA9IGE7CiAgICAgZG91YmxlIGRvdWJsZUIgPSBiOwpAQCAt
MjUwNSw3ICsyNTEzLDcgQEAgdm9pZCB0ZXN0Qml0T3JBcmdzKGludDY0X3QgYSwgaW50NjRfdCBi
KQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0T3Is
IE9yaWdpbigpLApAQCAtMjUyMCw3ICsyNTI4LDcgQEAgdm9pZCB0ZXN0Qml0T3JTYW1lQXJnKGlu
dDY0X3QgYSkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCksCkBA
IC0yNTM0LDcgKzI1NDIsNyBAQCB2b2lkIHRlc3RCaXRPckltbXMoaW50NjRfdCBhLCBpbnQ2NF90
IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRP
ciwgT3JpZ2luKCksCkBAIC0yNTQ4LDcgKzI1NTYsNyBAQCB2b2lkIHRlc3RCaXRPckFyZ0ltbShp
bnQ2NF90IGEsIGludDY0X3QgCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCksCkBAIC0yNTYyLDcgKzI1NzAsNyBAQCB2b2lkIHRl
c3RCaXRPckltbUFyZyhpbnQ2NF90IGEsIGludDY0X3QgCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRPciwgT3JpZ2luKCksCkBAIC0yNTgwLDcgKzI1
ODgsNyBAQCB2b2lkIHRlc3RCaXRPckJpdE9yQXJnSW1tSW1tKGludDY0X3QgYSwgCiAgICAgICAg
IHByb2MsIEJpdE9yLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50
UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYikpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdE9yLCBPcmlnaW4oKSwKQEAg
LTI1OTgsNyArMjYwNiw3IEBAIHZvaWQgdGVzdEJpdE9ySW1tQml0T3JBcmdJbW0oaW50NjRfdCBh
LCAKICAgICAgICAgcHJvYywgQml0T3IsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BS
MCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigp
LCBjKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0T3IsIE9y
aWdpbigpLApAQCAtMjYxMiw3ICsyNjIwLDcgQEAgdm9pZCB0ZXN0Qml0T3JBcmdzMzIoaW50IGEs
IGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
Qml0T3IsIE9yaWdpbigpLApAQCAtMjYzMyw3ICsyNjQxLDcgQEAgdm9pZCB0ZXN0Qml0T3JTYW1l
QXJnMzIoaW50IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjApKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRPciwg
T3JpZ2luKCksCkBAIC0yNjQ3LDcgKzI2NTUsNyBAQCB2b2lkIHRlc3RCaXRPckltbXMzMihpbnQg
YSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBCaXRPciwgT3JpZ2luKCksCkBAIC0yNjYxLDcgKzI2NjksNyBAQCB2b2lkIHRlc3RCaXRPckFy
Z0ltbTMyKGludCBhLCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIEJpdE9yLCBPcmlnaW4oKSwKQEAgLTI2NzcsNyArMjY4NSw3IEBAIHZvaWQg
dGVzdEJpdE9ySW1tQXJnMzIoaW50IGEsIGludCBiKQogewogICAgIFByb2NlZHVyZSBwcm9jOwog
ICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KAogICAgICAgICAgICAgcHJvYywgQml0T3IsIE9yaWdpbigpLApAQCAtMjY5OSw3ICsyNzA3
LDcgQEAgdm9pZCB0ZXN0Qml0T3JCaXRPckFyZ0ltbUltbTMyKGludCBhLCBpbgogICAgICAgICAg
ICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFy
Z3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIp
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRPciwgT3JpZ2lu
KCksCkBAIC0yNzE5LDcgKzI3MjcsNyBAQCB2b2lkIHRlc3RCaXRPckltbUJpdE9yQXJnSW1tMzIo
aW50IGEsIGluCiAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAg
ICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgYykpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIEJpdE9yLCBPcmlnaW4oKSwKQEAgLTI3MzMsNyArMjc0MSw3IEBAIHZvaWQgdGVzdEJp
dFhvckFyZ3MoaW50NjRfdCBhLCBpbnQ2NF90IGIKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCkBAIC0yNzQ4LDcgKzI3NTYs
NyBAQCB2b2lkIHRlc3RCaXRYb3JTYW1lQXJnKGludDY0X3QgYSkKICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBh
cmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjc2Miw3ICsyNzcwLDcgQEAgdm9pZCB0
ZXN0Qml0WG9ySW1tcyhpbnQ2NF90IGEsIGludDY0X3QgYgogewogICAgIFByb2NlZHVyZSBwcm9j
OwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTI3NzYsNyAr
Mjc4NCw3IEBAIHZvaWQgdGVzdEJpdFhvckFyZ0ltbShpbnQ2NF90IGEsIGludDY0X3QKIHsKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2lu
KCksCkBAIC0yNzkwLDcgKzI3OTgsNyBAQCB2b2lkIHRlc3RCaXRYb3JJbW1BcmcoaW50NjRfdCBh
LCBpbnQ2NF90CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjgwOCw3ICsyODE2LDcgQEAgdm9pZCB0ZXN0Qml0WG9y
Qml0WG9yQXJnSW1tSW1tKGludDY0X3QgYQogICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25z
dDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTI4MjYsNyArMjgzNCw3IEBAIHZv
aWQgdGVzdEJpdFhvckltbUJpdFhvckFyZ0ltbShpbnQ2NF90IGEKICAgICAgICAgcHJvYywgQml0
WG9yLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApLAogICAgICAgICByb290LT5h
cHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYykpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCkBAIC0yODQwLDcg
KzI4NDgsNyBAQCB2b2lkIHRlc3RCaXRYb3JBcmdzMzIoaW50IGEsIGludCBiKQogewogICAgIFBy
b2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwK
QEAgLTI4NjEsNyArMjg2OSw3IEBAIHZvaWQgdGVzdEJpdFhvclNhbWVBcmczMihpbnQgYSkKICAg
ICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICBwcm9j
LCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdFhvciwgT3JpZ2luKCksCkBAIC0y
ODc1LDcgKzI4ODMsNyBAQCB2b2lkIHRlc3RCaXRYb3JJbW1zMzIoaW50IGEsIGludCBiKQogewog
ICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQml0WG9yLCBPcmln
aW4oKSwKQEAgLTI4ODksNyArMjg5Nyw3IEBAIHZvaWQgdGVzdEJpdFhvckFyZ0ltbTMyKGludCBh
LCBpbnQgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IEJpdFhvciwgT3JpZ2luKCksCkBAIC0yOTA1LDcgKzI5MTMsNyBAQCB2b2lkIHRlc3RCaXRYb3JJ
bW1BcmczMihpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAtMjkyNyw3ICsyOTM1LDcgQEAgdm9p
ZCB0ZXN0Qml0WG9yQml0WG9yQXJnSW1tSW1tMzIoaW50IGEsIAogICAgICAgICAgICAgcHJvYywg
VHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXRYb3IsIE9yaWdpbigpLApAQCAt
Mjk0Nyw3ICsyOTU1LDcgQEAgdm9pZCB0ZXN0Qml0WG9ySW1tQml0WG9yQXJnSW1tMzIoaW50IGEs
IAogICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjApKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIGMpKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBC
aXRYb3IsIE9yaWdpbigpLApAQCAtMjk2MSw3ICsyOTY5LDcgQEAgdm9pZCB0ZXN0Qml0Tm90QXJn
KGludDY0X3QgYSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIEJpdFhvciwgT3JpZ2luKCksCkBAIC0yOTc1LDcgKzI5ODMsNyBAQCB2b2lkIHRlc3RCaXRO
b3RJbW0oaW50NjRfdCBhKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTI5OTUsNyArMzAwMyw3IEBAIHZvaWQgdGVz
dEJpdE5vdE1lbShpbnQ2NF90IGEpCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFs
dWU+KHByb2MsIE9yaWdpbigpLCAtMSksCiAgICAgICAgIGxvYWQpOwogICAgIHJvb3QtPmFwcGVu
ZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCBub3RMb2FkLCBhZGRyZXNz
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBy
b290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAg
aW50NjRfdCBpbnB1dCA9IGE7CiAgICAgY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCAmaW5w
dXQpOwpAQCAtMzAwOCw3ICszMDE2LDcgQEAgdm9pZCB0ZXN0Qml0Tm90QXJnMzIoaW50MzJfdCBh
KQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFy
Z3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
R1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdFhv
ciwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgLTEpLApAQCAtMzAyMCw3ICszMDI4LDcgQEAgdm9pZCB0ZXN0Qml0Tm90
SW1tMzIoaW50MzJfdCBhKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgQml0WG9yLCBPcmlnaW4oKSwKQEAgLTMwNDAsNyArMzA0OCw3IEBAIHZvaWQgdGVz
dEJpdE5vdE1lbTMyKGludDMyX3QgYSkKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xKSwKICAgICAgICAgbG9hZCk7CiAgICAgcm9vdC0+YXBw
ZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIG5vdExvYWQsIGFkZHJl
c3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAg
ICBpbnQzMl90IGlucHV0ID0gYTsKICAgICBjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsICZp
bnB1dCk7CkBAIC0zMDYzLDE2ICszMDcxLDE2IEBAIHZvaWQgdGVzdEJpdE5vdE9uQm9vbGVhbkFu
ZEJyYW5jaDMyKGludDYKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIC0xKSwKICAgICAgICAgYXJnc0FyZUVxdWFsKTsKIAotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgYXJnc0FyZU5vdEVxdWFs
LAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxz
ZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0
aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDQyKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAtNDIpKTsKIApAQCAtMzA4NCw3ICszMDkyLDcgQEAgdm9pZCB0ZXN0
U2hsQXJncyhpbnQ2NF90IGEsIGludDY0X3QgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIFNobCwgT3JpZ2luKCksCkBAIC0zMTAwLDcgKzMxMDgsNyBA
QCB2b2lkIHRlc3RTaGxJbW1zKGludDY0X3QgYSwgaW50NjRfdCBiKQogewogICAgIFByb2NlZHVy
ZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2hsLCBPcmlnaW4oKSwKQEAgLTMxMTQs
NyArMzEyMiw3IEBAIHZvaWQgdGVzdFNobEFyZ0ltbShpbnQ2NF90IGEsIGludDY0X3QgYikKIHsK
ICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNobCwgT3JpZ2lu
KCksCkBAIC0zMTMxLDcgKzMxMzksNyBAQCB2b2lkIHRlc3RTaGxBcmczMihpbnQzMl90IGEpCiAg
ICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgcHJvYywg
VHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBTaGwsIE9yaWdpbigpLCB2YWx1ZSwgdmFsdWUpKTsKIApAQCAtMzE0Miw3
ICszMTUwLDcgQEAgdm9pZCB0ZXN0U2hsQXJnczMyKGludDMyX3QgYSwgaW50MzJfdCBiKQogewog
ICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2hsLCBPcmlnaW4o
KSwKQEAgLTMxNjAsNyArMzE2OCw3IEBAIHZvaWQgdGVzdFNobEltbXMzMihpbnQzMl90IGEsIGlu
dDMyX3QgYikKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IFNobCwgT3JpZ2luKCksCkBAIC0zMTc0LDcgKzMxODIsNyBAQCB2b2lkIHRlc3RTaGxBcmdJbW0z
MihpbnQzMl90IGEsIGludDMyX3QgCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBTaGwsIE9yaWdpbigpLApAQCAtMzE5MCw3ICszMTk4LDcgQEAgdm9pZCB0
ZXN0U1NockFyZ3MoaW50NjRfdCBhLCBpbnQ2NF90IGIpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTU2hyLCBPcmlnaW4oKSwKQEAgLTMyMDYsNyArMzIx
NCw3IEBAIHZvaWQgdGVzdFNTaHJJbW1zKGludDY0X3QgYSwgaW50NjRfdCBiKQogewogICAgIFBy
b2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU1NociwgT3JpZ2luKCksCkBA
IC0zMjIwLDcgKzMyMjgsNyBAQCB2b2lkIHRlc3RTU2hyQXJnSW1tKGludDY0X3QgYSwgaW50NjRf
dCBiCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2Mu
YWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTU2hy
LCBPcmlnaW4oKSwKQEAgLTMyMzcsNyArMzI0NSw3IEBAIHZvaWQgdGVzdFNTaHJBcmczMihpbnQz
Ml90IGEpCiAgICAgVmFsdWUqIHZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTU2hyLCBPcmlnaW4oKSwgdmFsdWUsIHZhbHVlKSk7CiAK
QEAgLTMyNDgsNyArMzI1Niw3IEBAIHZvaWQgdGVzdFNTaHJBcmdzMzIoaW50MzJfdCBhLCBpbnQz
Ml90IGIKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNT
aHIsIE9yaWdpbigpLApAQCAtMzI2Niw3ICszMjc0LDcgQEAgdm9pZCB0ZXN0U1NockltbXMzMihp
bnQzMl90IGEsIGludDMyX3QgYgogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxv
Y2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAg
ICAgICAgcHJvYywgU1NociwgT3JpZ2luKCksCkBAIC0zMjgwLDcgKzMyODgsNyBAQCB2b2lkIHRl
c3RTU2hyQXJnSW1tMzIoaW50MzJfdCBhLCBpbnQzMl90CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTU2hyLCBPcmlnaW4oKSwKQEAgLTMyOTYsNyArMzMw
NCw3IEBAIHZvaWQgdGVzdFpTaHJBcmdzKHVpbnQ2NF90IGEsIHVpbnQ2NF90IGIKIHsKICAgICBQ
cm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFpTaHIsIE9yaWdpbigpLApA
QCAtMzMxMiw3ICszMzIwLDcgQEAgdm9pZCB0ZXN0WlNockltbXModWludDY0X3QgYSwgdWludDY0
X3QgYgogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgWlNo
ciwgT3JpZ2luKCksCkBAIC0zMzI2LDcgKzMzMzQsNyBAQCB2b2lkIHRlc3RaU2hyQXJnSW1tKHVp
bnQ2NF90IGEsIHVpbnQ2NF90CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBaU2hyLCBPcmlnaW4oKSwKQEAgLTMzNDMsNyArMzM1MSw3IEBAIHZvaWQgdGVz
dFpTaHJBcmczMih1aW50MzJfdCBhKQogICAgIFZhbHVlKiB2YWx1ZSA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4oCiAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjApKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgWlNociwgT3JpZ2luKCksIHZh
bHVlLCB2YWx1ZSkpOwogCkBAIC0zMzU0LDcgKzMzNjIsNyBAQCB2b2lkIHRlc3RaU2hyQXJnczMy
KHVpbnQzMl90IGEsIHVpbnQzMl90CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBaU2hyLCBPcmlnaW4oKSwKQEAgLTMzNzIsNyArMzM4MCw3IEBAIHZvaWQg
dGVzdFpTaHJJbW1zMzIodWludDMyX3QgYSwgdWludDMyX3QKIHsKICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFpTaHIsIE9yaWdpbigpLApAQCAtMzM4Niw3ICsz
Mzk0LDcgQEAgdm9pZCB0ZXN0WlNockFyZ0ltbTMyKHVpbnQzMl90IGEsIHVpbnQzMgogewogICAg
IFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgWlNociwgT3JpZ2luKCks
CkBAIC0zNDE5LDcgKzM0MjcsNyBAQCB2b2lkIHRlc3RDbHpBcmc2NChpbnQ2NF90IGEpCiAgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQg
PSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIGNselZhbHVlID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBDbHosIE9yaWdpbigpLCBhcmd1bWVudCk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2x6VmFsdWUpOworICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjbHpW
YWx1ZSk7CiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjx1bnNpZ25lZD4ocHJvYywgYSkgPT0gY291
bnRMZWFkaW5nWmVybyhhKSk7CiB9CiAKQEAgLTM0MzAsNyArMzQzOCw3IEBAIHZvaWQgdGVzdENs
ek1lbTY0KGludDY0X3QgYSkKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsK
ICAgICBNZW1vcnlWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHBy
b2MsIExvYWQsIEludDY0LCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIGNselZhbHVl
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDbHosIE9yaWdpbigpLCB2YWx1ZSk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
Y2x6VmFsdWUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBjbHpWYWx1ZSk7CiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjx1bnNpZ25lZD4o
cHJvYywgJmEpID09IGNvdW50TGVhZGluZ1plcm8oYSkpOwogfQogCkBAIC0zNDQxLDcgKzM0NDks
NyBAQCB2b2lkIHRlc3RDbHpBcmczMihpbnQzMl90IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKSk7CiAgICAgVmFsdWUqIGNselZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBDbHosIE9yaWdpbigpLCBhcmd1bWVudCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2x6VmFsdWUpOworICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjbHpWYWx1
ZSk7CiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjx1bnNpZ25lZD4ocHJvYywgYSkgPT0gY291bnRM
ZWFkaW5nWmVybyhhKSk7CiB9CiAKQEAgLTM0NTIsNyArMzQ2MCw3IEBAIHZvaWQgdGVzdENsek1l
bTMyKGludDMyX3QgYSkKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAg
ICBNZW1vcnlWYWx1ZSogdmFsdWUgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2Ms
IExvYWQsIEludDMyLCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAgVmFsdWUqIGNselZhbHVlID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDbHosIE9yaWdpbigpLCB2YWx1ZSk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2x6
VmFsdWUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCBjbHpWYWx1ZSk7CiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjx1bnNpZ25lZD4ocHJv
YywgJmEpID09IGNvdW50TGVhZGluZ1plcm8oYSkpOwogfQogCkBAIC0zNDYwLDcgKzM0NjgsNyBA
QCB2b2lkIHRlc3RBYnNBcmcoZG91YmxlIGEpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
CiAgICAgICAgICAgICBwcm9jLCBBYnMsIE9yaWdpbigpLApAQCAtMzQ3NCw3ICszNDgyLDcgQEAg
dm9pZCB0ZXN0QWJzSW1tKGRvdWJsZSBhKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9v
dC0+YXBwZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBPcmlnaW4oKSwgYXJndW1lbnQpKTsKIApAQCAtMzQ4
Nyw3ICszNDk1LDcgQEAgdm9pZCB0ZXN0QWJzTWVtKGRvdWJsZSBhKQogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWREb3VibGUgPSByb290LT5hcHBlbmROZXc8TWVt
b3J5VmFsdWU+KHByb2MsIExvYWQsIERvdWJsZSwgT3JpZ2luKCksIGFkZHJlc3MpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdpbigpLCBsb2FkRG91YmxlKSk7CiAKQEAgLTM1
MDEsNyArMzUwOSw3IEBAIHZvaWQgdGVzdEFic0Fic0FyZyhkb3VibGUgYSkKICAgICBWYWx1ZSog
Zmlyc3RBYnMgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFicywgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
RlBSSW5mbzo6YXJndW1lbnRGUFIwKSk7CiAgICAgVmFsdWUqIHNlY29uZEFicyA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBPcmlnaW4oKSwgZmlyc3RBYnMpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZEFi
cyk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHNlY29uZEFicyk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRv
dWJsZT4ocHJvYywgYSksIGZhYnMoYSkpKTsKIH0KQEAgLTM1MTMsNyArMzUyMSw3IEBAIHZvaWQg
dGVzdEFic0JpdHdpc2VDYXN0QXJnKGRvdWJsZSBhKQogICAgIFZhbHVlKiBhcmd1bWVudEFzSW50
NjQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50QXNEb3VibGUgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnRB
c0ludDY0KTsKICAgICBWYWx1ZSogYWJzVmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEFicywgT3JpZ2luKCksIGFyZ3VtZW50QXNEb3VibGUpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFic1ZhbHVlKTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWJzVmFs
dWUpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2Ms
IGJpdHdpc2VfY2FzdDxpbnQ2NF90PihhKSksIGZhYnMoYSkpKTsKIH0KQEAgLTM1MjcsNyArMzUz
NSw3IEBAIHZvaWQgdGVzdEJpdHdpc2VDYXN0QWJzQml0d2lzZUNhc3RBcmcoZG8KICAgICBWYWx1
ZSogYWJzVmFsdWUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFicywgT3JpZ2luKCks
IGFyZ3VtZW50QXNEb3VibGUpOwogICAgIFZhbHVlKiByZXN1bHRBc0ludDY0ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFic1ZhbHVlKTsKIAot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJlc3VsdEFzSW50NjQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCByZXN1bHRBc0ludDY0KTsKIAogICAgIGludDY0X3QgZXhwZWN0ZWRS
ZXN1bHQgPSBiaXR3aXNlX2Nhc3Q8aW50NjRfdD4oZmFicyhhKSk7CiAgICAgQ0hFQ0soaXNJZGVu
dGljYWwoY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50NjRfdD4o
YSkpLCBleHBlY3RlZFJlc3VsdCkpOwpAQCAtMzU0Miw3ICszNTUwLDcgQEAgdm9pZCB0ZXN0QWJz
QXJnKGZsb2F0IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiBy
ZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFicywgT3JpZ2luKCksIGFyZ3Vt
ZW50KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsK
IAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0
d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0
PGZsb2F0PihmYWJzKGEpKSkpKTsKIH0KQEAgLTM1NTQsNyArMzU2Miw3IEBAIHZvaWQgdGVzdEFi
c0ltbShmbG9hdCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25z
dEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAg
VmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2Fz
dCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVD
Syhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxp
bnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihzdGF0aWNfY2FzdDxmbG9hdD4oZmFi
cyhhKSkpKSk7CiB9CkBAIC0zNTY3LDcgKzM1NzUsNyBAQCB2b2lkIHRlc3RBYnNNZW0oZmxvYXQg
YSkKICAgICBNZW1vcnlWYWx1ZSogbG9hZEZsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZh
bHVlPihwcm9jLCBMb2FkLCBGbG9hdCwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBy
ZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFicywgT3JpZ2luKCksIGxvYWRG
bG9hdCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7
CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsICZh
KSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0PGZsb2F0PihmYWJzKGEpKSkpKTsK
IH0KQEAgLTM1ODEsNyArMzU4OSw3IEBAIHZvaWQgdGVzdEFic0Fic0FyZyhmbG9hdCBhKQogICAg
IFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNh
c3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1ZSogZmlyc3RBYnMgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEFicywgT3JpZ2luKCksIGFyZ3VtZW50KTsKICAgICBWYWx1
ZSogc2Vjb25kQWJzID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdpbigp
LCBmaXJzdEFicyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgc2Vjb25kQWJzKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kQWJzKTsKIAogICAgIENIRUNLKGlzSWRl
bnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90Pihh
KSksIHN0YXRpY19jYXN0PGZsb2F0PihmYWJzKGEpKSkpOwogfQpAQCAtMzU5NCw3ICszNjAyLDcg
QEAgdm9pZCB0ZXN0QWJzQml0d2lzZUNhc3RBcmcoZmxvYXQgYSkKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjApKTsKICAgICBWYWx1ZSogYXJndW1lbnRBc2Zsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50QXNJbnQzMik7CiAgICAg
VmFsdWUqIGFic1ZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdp
bigpLCBhcmd1bWVudEFzZmxvYXQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFic1ZhbHVlKTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYWJzVmFsdWUpOwogCiAgICAgQ0hF
Q0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYywgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KGEpKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KGZhYnMoYSkpKSk7CiB9CkBAIC0zNjA5LDcg
KzM2MTcsNyBAQCB2b2lkIHRlc3RCaXR3aXNlQ2FzdEFic0JpdHdpc2VDYXN0QXJnKGZsCiAgICAg
VmFsdWUqIGFic1ZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBYnMsIE9yaWdp
bigpLCBhcmd1bWVudEFzZmxvYXQpOwogICAgIFZhbHVlKiByZXN1bHRBc0ludDY0ID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFic1ZhbHVlKTsK
IAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdEFzSW50NjQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHRBc0ludDY0KTsKIAogICAgIGludDMyX3QgZXhwZWN0
ZWRSZXN1bHQgPSBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KGZhYnMo
YSkpKTsKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2Ms
IGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGV4cGVjdGVkUmVzdWx0KSk7CkBAIC0zNjI2LDcg
KzM2MzQsNyBAQCB2b2lkIHRlc3RBYnNBcmdXaXRoVXNlbGVzc0RvdWJsZUNvbnZlcnNpCiAgICAg
VmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWJzLCBPcmlnaW4o
KSwgYXNEb3VibGUpOwogICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgVmFsdWUq
IHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3Jp
Z2luKCksIGZsb2F0UmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNL
KGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0PGZsb2F0PihmYWJz
KGEpKSkpKTsKIH0KQEAgLTM2NDQsNyArMzY1Miw3IEBAIHZvaWQgdGVzdEFic0FyZ1dpdGhFZmZl
Y3RmdWxEb3VibGVDb252ZXIKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwogICAgIFZh
bHVlKiBkb3VibGVBZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwogICAgIHJvb3QtPmFwcGVuZE5l
dzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGRvdWJsZUFkZHJl
c3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgZG91YmxlIGVmZmVjdCA9IDA7CiAg
ICAgaW50MzJfdCByZXN1bHRWYWx1ZSA9IGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0
d2lzZV9jYXN0PGludDMyX3Q+KGEpLCAmZWZmZWN0KTsKQEAgLTM2NTYsNyArMzY2NCw3IEBAIHZv
aWQgdGVzdENlaWxBcmcoZG91YmxlIGEpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBDZWlsLCBPcmlnaW4oKSwKQEAgLTM2NzAsNyArMzY3OCw3IEBAIHZv
aWQgdGVzdENlaWxJbW0oZG91YmxlIGEpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290
LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBDZWlsLCBPcmlnaW4oKSwgYXJndW1lbnQpKTsKIApAQCAtMzY4
Myw3ICszNjkxLDcgQEAgdm9pZCB0ZXN0Q2VpbE1lbShkb3VibGUgYSkKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PE1l
bW9yeVZhbHVlPihwcm9jLCBMb2FkLCBEb3VibGUsIE9yaWdpbigpLCBhZGRyZXNzKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCksIGxvYWREb3VibGUpKTsKIApAQCAt
MzY5Nyw3ICszNzA1LDcgQEAgdm9pZCB0ZXN0Q2VpbENlaWxBcmcoZG91YmxlIGEpCiAgICAgVmFs
dWUqIGZpcnN0Q2VpbCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKSk7CiAgICAgVmFsdWUqIHNlY29uZENlaWwgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBmaXJzdENlaWwpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHNlY29uZENlaWwpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBzZWNvbmRDZWlsKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBp
bGVBbmRSdW48ZG91YmxlPihwcm9jLCBhKSwgY2VpbChhKSkpOwogfQpAQCAtMzcwOSw3ICszNzE3
LDcgQEAgdm9pZCB0ZXN0Rmxvb3JDZWlsQXJnKGRvdWJsZSBhKQogICAgIFZhbHVlKiBmaXJzdENl
aWwgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUklu
Zm86OmFyZ3VtZW50RlBSMCkpOwogICAgIFZhbHVlKiB3cmFwcGluZ0Zsb29yID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGZpcnN0Q2VpbCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgd3JhcHBp
bmdGbG9vcik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHdyYXBwaW5nRmxvb3IpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGls
ZUFuZFJ1bjxkb3VibGU+KHByb2MsIGEpLCBjZWlsKGEpKSk7CiB9CkBAIC0zNzIxLDcgKzM3Mjks
NyBAQCB2b2lkIHRlc3RDZWlsSVRvRDY0KGludDY0X3QgYSkKICAgICBWYWx1ZSogYXJndW1lbnQg
PSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50QXNEb3VibGUgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCksIGFyZ3VtZW50QXNEb3VibGUpKTsK
IApAQCAtMzczNiw3ICszNzQ0LDcgQEAgdm9pZCB0ZXN0Q2VpbElUb0QzMihpbnQ2NF90IGEpCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
R1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgVmFsdWUqIGFyZ3VtZW50QXNEb3VibGUgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCksIGFyZ3VtZW50QXNEb3Vi
bGUpKTsKIApAQCAtMzc1Miw3ICszNzYwLDcgQEAgdm9pZCB0ZXN0Q2VpbEFyZyhmbG9hdCBhKQog
ICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lz
ZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDZWlsLCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZh
bHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3Qs
IE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0so
aXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50
MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oY2VpbGYoYSkpKSk7CiB9CkBAIC0zNzY0
LDcgKzM3NzIsNyBAQCB2b2lkIHRlc3RDZWlsSW1tKGZsb2F0IGEpCiAgICAgVmFsdWUqIGFyZ3Vt
ZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEp
OwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWws
IE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQzMik7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGlu
dDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQz
Ml90PihjZWlsZihhKSkpKTsKIH0KQEAgLTM3NzcsNyArMzc4NSw3IEBAIHZvaWQgdGVzdENlaWxN
ZW0oZmxvYXQgYSkKICAgICBNZW1vcnlWYWx1ZSogbG9hZEZsb2F0ID0gcm9vdC0+YXBwZW5kTmV3
PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBGbG9hdCwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAg
IFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdp
bigpLCBsb2FkRmxvYXQpOwogICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCByZXN1bHQpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90
Pihwcm9jLCAmYSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihjZWlsZihhKSkpKTsKIH0KQEAgLTM3
OTEsNyArMzc5OSw3IEBAIHZvaWQgdGVzdENlaWxDZWlsQXJnKGZsb2F0IGEpCiAgICAgVmFsdWUq
IGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3Jp
Z2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiBmaXJzdENlaWwgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHNl
Y29uZENlaWwgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBm
aXJzdENlaWwpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHNlY29uZENlaWwpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmRDZWlsKTsKIAogICAgIENIRUNLKGlzSWRl
bnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90Pihh
KSksIGNlaWxmKGEpKSk7CiB9CkBAIC0zODA1LDcgKzM4MTMsNyBAQCB2b2lkIHRlc3RGbG9vckNl
aWxBcmcoZmxvYXQgYSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUq
IGZpcnN0Q2VpbCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2VpbCwgT3JpZ2luKCks
IGFyZ3VtZW50KTsKICAgICBWYWx1ZSogd3JhcHBpbmdGbG9vciA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBmaXJzdENlaWwpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHdyYXBwaW5nRmxvb3Ip
OworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCB3cmFwcGluZ0Zsb29yKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48
ZmxvYXQ+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90PihhKSksIGNlaWxmKGEpKSk7CiB9CkBA
IC0zODIxLDcgKzM4MjksNyBAQCB2b2lkIHRlc3RDZWlsQXJnV2l0aFVzZWxlc3NEb3VibGVDb252
ZXJzCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2Vp
bCwgT3JpZ2luKCksIGFzRG91YmxlKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCByZXN1bHQpOwog
ICAgIFZhbHVlKiByZXN1bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lz
ZUNhc3QsIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAK
ICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdp
c2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihjZWlsZihhKSkpKTsK
IH0KQEAgLTM4MzksNyArMzg0Nyw3IEBAIHZvaWQgdGVzdENlaWxBcmdXaXRoRWZmZWN0ZnVsRG91
YmxlQ29udmUKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwogICAgIFZhbHVlKiBkb3Vi
bGVBZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlW
YWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCByZXN1bHQsIGRvdWJsZUFkZHJlc3MpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
c3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgZG91YmxlIGVmZmVjdCA9IDA7CiAgICAgaW50MzJf
dCByZXN1bHRWYWx1ZSA9IGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0d2lzZV9jYXN0
PGludDMyX3Q+KGEpLCAmZWZmZWN0KTsKQEAgLTM4NTEsNyArMzg1OSw3IEBAIHZvaWQgdGVzdEZs
b29yQXJnKGRvdWJsZSBhKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgRmxvb3IsIE9yaWdpbigpLApAQCAtMzg2NSw3ICszODczLDcgQEAgdm9pZCB0ZXN0
Rmxvb3JJbW0oZG91YmxlIGEpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBl
bmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGFyZ3VtZW50KSk7CiAKQEAgLTM4NzgsNyAr
Mzg4Niw3IEBAIHZvaWQgdGVzdEZsb29yTWVtKGRvdWJsZSBhKQogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BS
MCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWREb3VibGUgPSByb290LT5hcHBlbmROZXc8TWVtb3J5
VmFsdWU+KHByb2MsIExvYWQsIERvdWJsZSwgT3JpZ2luKCksIGFkZHJlc3MpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGxvYWREb3VibGUpKTsKIApAQCAtMzg5
Miw3ICszOTAwLDcgQEAgdm9pZCB0ZXN0Rmxvb3JGbG9vckFyZyhkb3VibGUgYSkKICAgICBWYWx1
ZSogZmlyc3RGbG9vciA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCkpOwogICAgIFZhbHVlKiBzZWNvbmRGbG9vciA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBmaXJzdEZsb29y
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBzZWNvbmRGbG9vcik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHNlY29uZEZsb29yKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2Fs
KGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCBhKSwgZmxvb3IoYSkpKTsKIH0KQEAgLTM5MDQs
NyArMzkxMiw3IEBAIHZvaWQgdGVzdENlaWxGbG9vckFyZyhkb3VibGUgYSkKICAgICBWYWx1ZSog
Zmlyc3RGbG9vciA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCkpOwogICAgIFZhbHVlKiB3cmFwcGluZ0NlaWwgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigpLCBmaXJzdEZsb29yKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCB3cmFwcGluZ0NlaWwpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCB3cmFwcGluZ0NlaWwpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwo
Y29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIGEpLCBmbG9vcihhKSkpOwogfQpAQCAtMzkxNiw3
ICszOTI0LDcgQEAgdm9pZCB0ZXN0Rmxvb3JJVG9ENjQoaW50NjRfdCBhKQogICAgIFZhbHVlKiBh
cmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBWYWx1ZSogYXJndW1lbnRBc0RvdWJsZSA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGFyZ3VtZW50KTsK
IAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGFyZ3VtZW50QXNE
b3VibGUpKTsKIApAQCAtMzkzMSw3ICszOTM5LDcgQEAgdm9pZCB0ZXN0Rmxvb3JJVG9EMzIoaW50
NjRfdCBhKQogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiBhcmd1bWVudEFz
RG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgYXJn
dW1lbnQpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgYXJn
dW1lbnRBc0RvdWJsZSkpOwogCkBAIC0zOTQ3LDcgKzM5NTUsNyBAQCB2b2lkIHRlc3RGbG9vckFy
ZyhmbG9hdCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1ZSogcmVz
dWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGFyZ3Vt
ZW50KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsK
IAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgYml0
d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgYml0d2lzZV9jYXN0PGludDMyX3Q+KGZsb29yZihhKSkp
KTsKIH0KQEAgLTM5NTksNyArMzk2Nyw3IEBAIHZvaWQgdGVzdEZsb29ySW1tKGZsb2F0IGEpCiAg
ICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RmxvYXRWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZhbHVlKiByZXN1bHQz
MiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBy
ZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwo
Y29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBi
aXR3aXNlX2Nhc3Q8aW50MzJfdD4oZmxvb3JmKGEpKSkpOwogfQpAQCAtMzk3Miw3ICszOTgwLDcg
QEAgdm9pZCB0ZXN0Rmxvb3JNZW0oZmxvYXQgYSkKICAgICBNZW1vcnlWYWx1ZSogbG9hZEZsb2F0
ID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBGbG9hdCwgT3JpZ2lu
KCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgbG9hZEZsb2F0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVz
dWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLCByZXN1bHQzMik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNv
bXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgJmEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oZmxv
b3JmKGEpKSkpOwogfQpAQCAtMzk4Niw3ICszOTk0LDcgQEAgdm9pZCB0ZXN0Rmxvb3JGbG9vckFy
ZyhmbG9hdCBhKQogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMyKTsKICAgICBWYWx1ZSogZmly
c3RGbG9vciA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBh
cmd1bWVudCk7CiAgICAgVmFsdWUqIHNlY29uZEZsb29yID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBGbG9vciwgT3JpZ2luKCksIGZpcnN0Rmxvb3IpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNlY29uZEZsb29yKTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vj
b25kRmxvb3IpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4o
cHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpKSwgZmxvb3JmKGEpKSk7CiB9CkBAIC00MDAw
LDcgKzQwMDgsNyBAQCB2b2lkIHRlc3RDZWlsRmxvb3JBcmcoZmxvYXQgYSkKICAgICBWYWx1ZSog
YXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmln
aW4oKSwgYXJndW1lbnQzMik7CiAgICAgVmFsdWUqIGZpcnN0Rmxvb3IgPSByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIEZsb29yLCBPcmlnaW4oKSwgYXJndW1lbnQpOwogICAgIFZhbHVlKiB3
cmFwcGluZ0NlaWwgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENlaWwsIE9yaWdpbigp
LCBmaXJzdEZsb29yKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCB3cmFwcGluZ0NlaWwpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB3cmFwcGluZ0NlaWwpOwogCiAgICAgQ0hF
Q0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYywgYml0d2lzZV9jYXN0PGlu
dDMyX3Q+KGEpKSwgZmxvb3JmKGEpKSk7CiB9CkBAIC00MDE2LDcgKzQwMjQsNyBAQCB2b2lkIHRl
c3RGbG9vckFyZ1dpdGhVc2VsZXNzRG91YmxlQ29udmVyCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvb3IsIE9yaWdpbigpLCBhc0RvdWJsZSk7CiAg
ICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3Vi
bGVUb0Zsb2F0LCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1
bHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdDMyKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29t
cGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3
aXNlX2Nhc3Q8aW50MzJfdD4oZmxvb3JmKGEpKSkpOwogfQpAQCAtNDAzNCw3ICs0MDQyLDcgQEAg
dm9pZCB0ZXN0Rmxvb3JBcmdXaXRoRWZmZWN0ZnVsRG91YmxlQ29udgogICAgIFZhbHVlKiByZXN1
bHQzMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigp
LCBmbG9hdFJlc3VsdCk7CiAgICAgVmFsdWUqIGRvdWJsZUFkZHJlc3MgPSByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BS
MSk7CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2lu
KCksIHJlc3VsdCwgZG91YmxlQWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAg
ICBkb3VibGUgZWZmZWN0ID0gMDsKICAgICBpbnQzMl90IHJlc3VsdFZhbHVlID0gY29tcGlsZUFu
ZFJ1bjxpbnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksICZlZmZlY3QpOwpA
QCAtNDA0Niw3ICs0MDU0LDcgQEAgdm9pZCB0ZXN0U3FydEFyZyhkb3VibGUgYSkKIHsKICAgICBQ
cm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNxcnQsIE9yaWdpbigpLApA
QCAtNDA2MCw3ICs0MDY4LDcgQEAgdm9pZCB0ZXN0U3FydEltbShkb3VibGUgYSkKICAgICBQcm9j
ZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAg
IFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgYSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFNxcnQsIE9yaWdpbigp
LCBhcmd1bWVudCkpOwogCkBAIC00MDczLDcgKzQwODEsNyBAQCB2b2lkIHRlc3RTcXJ0TWVtKGRv
dWJsZSBhKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFs
dWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWREb3Vi
bGUgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIERvdWJsZSwgT3Jp
Z2luKCksIGFkZHJlc3MpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTcXJ0LCBPcmlnaW4o
KSwgbG9hZERvdWJsZSkpOwogCkBAIC00MDg5LDcgKzQwOTcsNyBAQCB2b2lkIHRlc3RTcXJ0QXJn
KGZsb2F0IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiByZXN1
bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFNxcnQsIE9yaWdpbigpLCBhcmd1bWVu
dCk7CiAgICAgVmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBC
aXR3aXNlQ2FzdCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAK
ICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdp
c2VfY2FzdDxpbnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihzdGF0aWNfY2FzdDxm
bG9hdD4oc3FydChhKSkpKSk7CiB9CkBAIC00MTAxLDcgKzQxMDksNyBAQCB2b2lkIHRlc3RTcXJ0
SW1tKGZsb2F0IGEpCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0
RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGEpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFNxcnQsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAg
VmFsdWUqIHJlc3VsdDMyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2Fz
dCwgT3JpZ2luKCksIHJlc3VsdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBDSEVD
Syhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIGJpdHdpc2VfY2FzdDxp
bnQzMl90PihhKSksIGJpdHdpc2VfY2FzdDxpbnQzMl90PihzdGF0aWNfY2FzdDxmbG9hdD4oc3Fy
dChhKSkpKSk7CiB9CkBAIC00MTE0LDcgKzQxMjIsNyBAQCB2b2lkIHRlc3RTcXJ0TWVtKGZsb2F0
IGEpCiAgICAgTWVtb3J5VmFsdWUqIGxvYWRGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlW
YWx1ZT4ocHJvYywgTG9hZCwgRmxvYXQsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSog
cmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTcXJ0LCBPcmlnaW4oKSwgbG9h
ZEZsb2F0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgcmVzdWx0KTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMy
KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywg
JmEpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KHNxcnQoYSkpKSkp
OwogfQpAQCAtNDEzMCw3ICs0MTM4LDcgQEAgdm9pZCB0ZXN0U3FydEFyZ1dpdGhVc2VsZXNzRG91
YmxlQ29udmVycwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIFNxcnQsIE9yaWdpbigpLCBhc0RvdWJsZSk7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0g
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgcmVz
dWx0KTsKICAgICBWYWx1ZSogcmVzdWx0MzIgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdDMyKTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
MzIpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9j
LCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSkpLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oc3RhdGlj
X2Nhc3Q8ZmxvYXQ+KHNxcnQoYSkpKSkpOwogfQpAQCAtNDE0OCw3ICs0MTU2LDcgQEAgdm9pZCB0
ZXN0U3FydEFyZ1dpdGhFZmZlY3RmdWxEb3VibGVDb252ZQogICAgIFZhbHVlKiByZXN1bHQzMiA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmbG9h
dFJlc3VsdCk7CiAgICAgVmFsdWUqIGRvdWJsZUFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CiAg
ICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHJl
c3VsdCwgZG91YmxlQWRkcmVzcyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0MzIpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQzMik7CiAKICAgICBkb3Vi
bGUgZWZmZWN0ID0gMDsKICAgICBpbnQzMl90IHJlc3VsdFZhbHVlID0gY29tcGlsZUFuZFJ1bjxp
bnQzMl90Pihwcm9jLCBiaXR3aXNlX2Nhc3Q8aW50MzJfdD4oYSksICZlZmZlY3QpOwpAQCAtNDE3
Miw3ICs0MTgwLDcgQEAgdm9pZCB0ZXN0Q29tcGFyZVR3b0Zsb2F0VG9Eb3VibGUoZmxvYXQgYQog
ICAgIFZhbHVlKiBhcmcyQXNEb3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZs
b2F0VG9Eb3VibGUsIE9yaWdpbigpLCBhcmcyRmxvYXQpOwogICAgIFZhbHVlKiBlcXVhbCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRXF1YWwsIE9yaWdpbigpLCBhcmcxQXNEb3VibGUs
IGFyZzJBc0RvdWJsZSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBlcXVhbCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGVxdWFsKTsKIAogICAgIENIRUNLKGNvbXBpbGVB
bmRSdW48aW50NjRfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiaXR3aXNlX2Nh
c3Q8aW50MzJfdD4oYikpID09IChhID09IGIpKTsKIH0KQEAgLTQxOTAsNyArNDE5OCw3IEBAIHZv
aWQgdGVzdENvbXBhcmVPbmVGbG9hdFRvRG91YmxlKGZsb2F0IGEKICAgICBWYWx1ZSogYXJnMkFz
RG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVlKiBlcXVhbCA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgRXF1YWwsIE9yaWdpbigpLCBhcmcxQXNEb3VibGUsIGFyZzJBc0Rv
dWJsZSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBlcXVhbCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIGVxdWFsKTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50
NjRfdD4ocHJvYywgYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpLCBiKSA9PSAoYSA9PSBiKSk7CiB9
CkBAIC00MjE0LDIzICs0MjIyLDIzIEBAIHZvaWQgdGVzdENvbXBhcmVGbG9hdFRvRG91YmxlVGhy
b3VnaFBoaSgKICAgICBWYWx1ZSogYXJnMkFzRmxvYXQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+
KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBhcmcyQXNEb3VibGUpOwogICAgIFZhbHVl
KiBhcmcyQXNGUm91bmRlZERvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxv
YXRUb0RvdWJsZSwgT3JpZ2luKCksIGFyZzJBc0Zsb2F0KTsKIAotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgY29uZGl0aW9uLAogICAgICAgICBG
cmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAog
ICAgIFVwc2lsb25WYWx1ZSogdGhlblZhbHVlID0gdGhlbkNhc2UtPmFwcGVuZE5ldzxVcHNpbG9u
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhcmcxQXNEb3VibGUpOwotICAgIHRoZW5DYXNlLT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2Nr
KHRhaWwpKTsKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAs
IE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOwogCiAgICAgVmFsdWUqIGVsc2VDb25z
dCA9IGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IDAuKTsKICAgICBVcHNpbG9uVmFsdWUqIGVsc2VWYWx1ZSA9IGVsc2VDYXNlLT5hcHBlbmROZXc8
VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgZWxzZUNvbnN0KTsKLSAgICBlbHNlQ2FzZS0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRC
bG9jayh0YWlsKSk7CisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBK
dW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKIAogICAgIFZhbHVlKiBkb3Vi
bGVJbnB1dCA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBEb3VibGUsIE9yaWdp
bigpKTsKICAgICB0aGVuVmFsdWUtPnNldFBoaShkb3VibGVJbnB1dCk7CiAgICAgZWxzZVZhbHVl
LT5zZXRQaGkoZG91YmxlSW5wdXQpOwogICAgIFZhbHVlKiBlcXVhbCA9IHRhaWwtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgRXF1YWwsIE9yaWdpbigpLCBkb3VibGVJbnB1dCwgYXJnMkFzRlJvdW5k
ZWREb3VibGUpOwotICAgIHRhaWwtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIGVxdWFsKTsKKyAgICB0YWlsLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgZXF1YWwpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShw
cm9jKTsKICAgICBpbnQzMl90IGludGVnZXJBID0gYml0d2lzZV9jYXN0PGludDMyX3Q+KGEpOwpA
QCAtNDI2MSw3ICs0MjY5LDcgQEAgdm9pZCB0ZXN0RG91YmxlVG9GbG9hdFRocm91Z2hQaGkoZmxv
YXQgdgogICAgIFZhbHVlKiBmbG9hdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiBhcmdBc0Rv
dWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2lu
KCksIGZsb2F0VmFsdWUpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9y
aWdpbigpLAogICAgICAgICBjb25kaXRpb24sCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVu
Q2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwpAQCAtNDI2OSwxNyArNDI3NywxNyBA
QCB2b2lkIHRlc3REb3VibGVUb0Zsb2F0VGhyb3VnaFBoaShmbG9hdCB2CiAgICAgVmFsdWUqIHBv
c3RpdGl2ZUNvbnN0ID0gdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgNDIuNWYpOwogICAgIFZhbHVlKiB0aGVuQWRkID0gdGhlbkNhc2UtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYXJnQXNEb3VibGUsIHBvc3RpdGl2ZUNv
bnN0KTsKICAgICBVcHNpbG9uVmFsdWUqIHRoZW5WYWx1ZSA9IHRoZW5DYXNlLT5hcHBlbmROZXc8
VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdGhlbkFkZCk7Ci0gICAgdGhlbkNhc2UtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxv
Y2sodGFpbCkpOworICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVt
cCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CiAKICAgICBWYWx1ZSogZWxzZUNv
bnN0ID0gZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgTV9QSSk7CiAgICAgVXBzaWxvblZhbHVlKiBlbHNlVmFsdWUgPSBlbHNlQ2FzZS0+YXBwZW5k
TmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGVsc2VDb25zdCk7Ci0gICAgZWxzZUNh
c2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVu
dGVkQmxvY2sodGFpbCkpOworICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJv
YywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CiAKICAgICBWYWx1ZSog
ZG91YmxlSW5wdXQgPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFBoaSwgRG91YmxlLCBP
cmlnaW4oKSk7CiAgICAgdGhlblZhbHVlLT5zZXRQaGkoZG91YmxlSW5wdXQpOwogICAgIGVsc2VW
YWx1ZS0+c2V0UGhpKGRvdWJsZUlucHV0KTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSB0YWls
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBkb3VibGVJ
bnB1dCk7Ci0gICAgdGFpbC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgZmxvYXRSZXN1bHQpOworICAgIHRhaWwtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CiAKICAgICBhdXRvIGNvZGUgPSBj
b21waWxlKHByb2MpOwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGludm9rZTxmbG9hdD4oKmNvZGUs
IDEsIGJpdHdpc2VfY2FzdDxpbnQzMl90Pih2YWx1ZSkpLCB2YWx1ZSArIDQyLjVmKSk7CkBAIC00
Mjk5LDE4ICs0MzA3LDE4IEBAIHZvaWQgdGVzdERvdWJsZVByb2R1Y2VyUGhpVG9GbG9hdENvbnZl
cnMKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdp
bigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKTsKICAgICBWYWx1ZSogZmxvYXRWYWx1ZSA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVu
dDMyKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAg
ICAgICAgY29uZGl0aW9uLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVx
dWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAogICAgIFZhbHVlKiBhc0RvdWJsZSA9IHRoZW5DYXNl
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBmbG9hdFZh
bHVlKTsKICAgICBVcHNpbG9uVmFsdWUqIHRoZW5WYWx1ZSA9IHRoZW5DYXNlLT5hcHBlbmROZXc8
VXBzaWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYXNEb3VibGUpOwotICAgIHRoZW5DYXNlLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJs
b2NrKHRhaWwpKTsKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1
bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOwogCiAgICAgVmFsdWUqIGNvbnN0
RG91YmxlID0gZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmln
aW4oKSwgNDIuNSk7CiAgICAgVXBzaWxvblZhbHVlKiBlbHNlVmFsdWUgPSBlbHNlQ2FzZS0+YXBw
ZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGNvbnN0RG91YmxlKTsKLSAgICBl
bHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZy
ZXF1ZW50ZWRCbG9jayh0YWlsKSk7CisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKIAogICAgIFZh
bHVlKiBkb3VibGVJbnB1dCA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBEb3Vi
bGUsIE9yaWdpbigpKTsKICAgICB0aGVuVmFsdWUtPnNldFBoaShkb3VibGVJbnB1dCk7CkBAIC00
MzE5LDcgKzQzMjcsNyBAQCB2b2lkIHRlc3REb3VibGVQcm9kdWNlclBoaVRvRmxvYXRDb252ZXJz
CiAgICAgVmFsdWUqIGFyZ0FzRG91YmxlQWdhaW4gPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBmbG9hdFZhbHVlKTsKICAgICBWYWx1ZSogZmlu
YWxBZGQgPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGRvdWJs
ZUlucHV0LCBhcmdBc0RvdWJsZUFnYWluKTsKICAgICBWYWx1ZSogZmxvYXRSZXN1bHQgPSB0YWls
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBmaW5hbEFk
ZCk7Ci0gICAgdGFpbC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgZmxvYXRSZXN1bHQpOworICAgIHRhaWwtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21w
aWxlKHByb2MpOwogICAgIENIRUNLKGlzSWRlbnRpY2FsKGludm9rZTxmbG9hdD4oKmNvZGUsIDEs
IGJpdHdpc2VfY2FzdDxpbnQzMl90Pih2YWx1ZSkpLCB2YWx1ZSArIHZhbHVlKSk7CkBAIC00MzQx
LDE4ICs0MzQ5LDE4IEBAIHZvaWQgdGVzdERvdWJsZVByb2R1Y2VyUGhpVG9GbG9hdENvbnZlcnMK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKTsKICAgICBWYWx1ZSogZmxvYXRWYWx1ZSA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDMy
KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAg
ICAgY29uZGl0aW9uLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVu
dGVkQmxvY2soZWxzZUNhc2UpKTsKIAogICAgIFZhbHVlKiBhc0RvdWJsZSA9IHRoZW5DYXNlLT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBmbG9hdFZhbHVl
KTsKICAgICBVcHNpbG9uVmFsdWUqIHRoZW5WYWx1ZSA9IHRoZW5DYXNlLT5hcHBlbmROZXc8VXBz
aWxvblZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYXNEb3VibGUpOwotICAgIHRoZW5DYXNlLT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2Nr
KHRhaWwpKTsKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAs
IE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodGFpbCkpOwogCiAgICAgVmFsdWUqIGNvbnN0RG91
YmxlID0gZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdERvdWJsZVZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgNDIuNSk7CiAgICAgVXBzaWxvblZhbHVlKiBlbHNlVmFsdWUgPSBlbHNlQ2FzZS0+YXBwZW5k
TmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGNvbnN0RG91YmxlKTsKLSAgICBlbHNl
Q2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1
ZW50ZWRCbG9jayh0YWlsKSk7CisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKIAogICAgIFZhbHVl
KiBkb3VibGVJbnB1dCA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBEb3VibGUs
IE9yaWdpbigpKTsKICAgICB0aGVuVmFsdWUtPnNldFBoaShkb3VibGVJbnB1dCk7CkBAIC00MzY4
LDcgKzQzNzYsNyBAQCB2b2lkIHRlc3REb3VibGVQcm9kdWNlclBoaVRvRmxvYXRDb252ZXJzCiAg
ICAgLy8gVGhpcyBvbmUgKmNhbm5vdCogYmUgZWxpbWluYXRlZAogICAgIFZhbHVlKiBkb3VibGVB
ZGQgPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGRvdWJsZUlu
cHV0LCBkb3VibGVSZXN1bHQpOwogCi0gICAgdGFpbC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZG91YmxlQWRkKTsKKyAgICB0YWlsLT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZG91YmxlQWRkKTsKIAogICAgIGF1
dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoaW52b2tlPGRv
dWJsZT4oKmNvZGUsIDEsIGJpdHdpc2VfY2FzdDxpbnQzMl90Pih2YWx1ZSkpLCAodmFsdWUgKyB2
YWx1ZSkgKyBzdGF0aWNfY2FzdDxkb3VibGU+KHZhbHVlKSkpOwpAQCAtNDM4OCwxOCArNDM5Niwx
OCBAQCB2b2lkIHRlc3REb3VibGVQcm9kdWNlclBoaVdpdGhOb25GbG9hdENvCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIxKSk7CiAgICAgVmFsdWUqIGZsb2F0VmFsdWUgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQzMik7CiAKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIGNvbmRpdGlv
biwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVs
c2VDYXNlKSk7CiAKICAgICBWYWx1ZSogYXNEb3VibGUgPSB0aGVuQ2FzZS0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSk7CiAgICAgVXBz
aWxvblZhbHVlKiB0aGVuVmFsdWUgPSB0aGVuQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4o
cHJvYywgT3JpZ2luKCksIGFzRG91YmxlKTsKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7Cisg
ICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwg
RnJlcXVlbnRlZEJsb2NrKHRhaWwpKTsKIAogICAgIFZhbHVlKiBjb25zdERvdWJsZSA9IGVsc2VD
YXNlLT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGNvbnN0VmFs
dWUpOwogICAgIFVwc2lsb25WYWx1ZSogZWxzZVZhbHVlID0gZWxzZUNhc2UtPmFwcGVuZE5ldzxV
cHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCBjb25zdERvdWJsZSk7Ci0gICAgZWxzZUNhc2Ut
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVk
QmxvY2sodGFpbCkpOworICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
SnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CiAKICAgICBWYWx1ZSogZG91
YmxlSW5wdXQgPSB0YWlsLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFBoaSwgRG91YmxlLCBPcmln
aW4oKSk7CiAgICAgdGhlblZhbHVlLT5zZXRQaGkoZG91YmxlSW5wdXQpOwpAQCAtNDQwOCw3ICs0
NDE2LDcgQEAgdm9pZCB0ZXN0RG91YmxlUHJvZHVjZXJQaGlXaXRoTm9uRmxvYXRDbwogICAgIFZh
bHVlKiBhcmdBc0RvdWJsZUFnYWluID0gdGFpbC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9h
dFRvRG91YmxlLCBPcmlnaW4oKSwgZmxvYXRWYWx1ZSk7CiAgICAgVmFsdWUqIGZpbmFsQWRkID0g
dGFpbC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBkb3VibGVJbnB1dCwg
YXJnQXNEb3VibGVBZ2Fpbik7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gdGFpbC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgZmluYWxBZGQpOwotICAg
IHRhaWwtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGZs
b2F0UmVzdWx0KTsKKyAgICB0YWlsLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9j
KTsKICAgICBDSEVDSyhpc0lkZW50aWNhbChpbnZva2U8ZmxvYXQ+KCpjb2RlLCAxLCBiaXR3aXNl
X2Nhc3Q8aW50MzJfdD4odmFsdWUpKSwgdmFsdWUgKyB2YWx1ZSkpOwpAQCAtNDQyMSw3ICs0NDI5
LDcgQEAgdm9pZCB0ZXN0RG91YmxlQXJnVG9JbnQ2NEJpdHdpc2VDYXN0KGRvdQogICAgIEJhc2lj
QmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9v
dC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjph
cmd1bWVudEZQUjApOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
Qml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudCkpOwpAQCAtNDQzNSw3ICs0NDQzLDcgQEAg
dm9pZCB0ZXN0RG91YmxlSW1tVG9JbnQ2NEJpdHdpc2VDYXN0KGRvdQogICAgIEJhc2ljQmxvY2sq
IHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBw
ZW5kTmV3PENvbnN0RG91YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSk7CiAKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCks
IGFyZ3VtZW50KSk7CkBAIC00NDUwLDcgKzQ0NTgsNyBAQCB2b2lkIHRlc3RUd29CaXR3aXNlQ2Fz
dE9uRG91YmxlKGRvdWJsZSB2CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjAp
OwogICAgIFZhbHVlKiBmaXJzdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lz
ZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHNlY29uZCA9IHJvb3QtPmFw
cGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmaXJzdCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vj
b25kKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgc2Vjb25kKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91
YmxlPihwcm9jLCB2YWx1ZSksIHZhbHVlKSk7CiB9CkBAIC00NDYyLDcgKzQ0NzAsNyBAQCB2b2lk
IHRlc3RCaXR3aXNlQ2FzdE9uRG91YmxlSW5NZW1vcnkoZG91CiAgICAgVmFsdWUqIGFkZHJlc3Mg
PSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCk7CiAgICAgTWVtb3J5VmFsdWUqIGxvYWREb3VibGUgPSByb290LT5h
cHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIERvdWJsZSwgT3JpZ2luKCksIGFkZHJl
c3MpOwogICAgIFZhbHVlKiBjYXN0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3
aXNlQ2FzdCwgT3JpZ2luKCksIGxvYWREb3VibGUpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNhc3QpOworICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0KTsKIAogICAgIENI
RUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgJnZhbHVlKSwgYml0
d2lzZV9jYXN0PGludDY0X3Q+KHZhbHVlKSkpOwogfQpAQCAtNDQ3OSw3ICs0NDg3LDcgQEAgdm9p
ZCB0ZXN0Qml0d2lzZUNhc3RPbkRvdWJsZUluTWVtb3J5SW5kZQogICAgIFZhbHVlKiBhZGRyZXNz
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBiYXNlLCBzY2Fs
ZWRPZmZzZXQpOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3
PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBEb3VibGUsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAg
ICBWYWx1ZSogY2FzdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3Qs
IE9yaWdpbigpLCBsb2FkRG91YmxlKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FzdCk7CiAKICAgICBDSEVDSyhpc0lk
ZW50aWNhbChjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsICZ2YWx1ZSwgMCksIGJpdHdpc2Vf
Y2FzdDxpbnQ2NF90Pih2YWx1ZSkpKTsKIH0KQEAgLTQ0OTAsNyArNDQ5OCw3IEBAIHZvaWQgdGVz
dEludDY0QkFyZ1RvRG91YmxlQml0d2lzZUNhc3QoaW4KICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsK
IAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdHdpc2VDYXN0LCBP
cmlnaW4oKSwgYXJndW1lbnQpKTsKQEAgLTQ1MDQsNyArNDUxMiw3IEBAIHZvaWQgdGVzdEludDY0
QkltbVRvRG91YmxlQml0d2lzZUNhc3QoaW4KICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5h
ZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0
VmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICBwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50KSk7CkBAIC00
NTE5LDcgKzQ1MjcsNyBAQCB2b2lkIHRlc3RUd29CaXR3aXNlQ2FzdE9uSW50NjQoaW50NjRfdCB2
CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFZhbHVlKiBmaXJz
dCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBh
cmd1bWVudCk7CiAgICAgVmFsdWUqIHNlY29uZCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmaXJzdCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kKTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kKTsKIAog
ICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgdmFsdWUp
LCB2YWx1ZSkpOwogfQpAQCAtNDUzMSw3ICs0NTM5LDcgQEAgdm9pZCB0ZXN0Qml0d2lzZUNhc3RP
bkludDY0SW5NZW1vcnkoaW50NgogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3
PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjAp
OwogICAgIE1lbW9yeVZhbHVlKiBsb2FkRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZh
bHVlPihwcm9jLCBMb2FkLCBJbnQ2NCwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBj
YXN0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCks
IGxvYWREb3VibGUpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIGNhc3QpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0KTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNv
bXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCAmdmFsdWUpLCBiaXR3aXNlX2Nhc3Q8ZG91YmxlPih2
YWx1ZSkpKTsKIH0KQEAgLTQ1NDgsNyArNDU1Niw3IEBAIHZvaWQgdGVzdEJpdHdpc2VDYXN0T25J
bnQ2NEluTWVtb3J5SW5kZXgKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYmFzZSwgc2NhbGVkT2Zmc2V0KTsKICAgICBNZW1v
cnlWYWx1ZSogbG9hZERvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywg
TG9hZCwgSW50NjQsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogY2FzdCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBsb2FkRG91Ymxl
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBjYXN0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgY2FzdCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVu
PGRvdWJsZT4ocHJvYywgJnZhbHVlLCAwKSwgYml0d2lzZV9jYXN0PGRvdWJsZT4odmFsdWUpKSk7
CiB9CkBAIC00NTU5LDcgKzQ1NjcsNyBAQCB2b2lkIHRlc3RGbG9hdEltbVRvSW50MzJCaXR3aXNl
Q2FzdChmbG9hCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBW
YWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgdmFsdWUpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudCkpOwpAQCAtNDU3NCw3ICs0NTgyLDcg
QEAgdm9pZCB0ZXN0Qml0d2lzZUNhc3RPbkZsb2F0SW5NZW1vcnkoZmxvYQogICAgIFZhbHVlKiBh
ZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkRmxvYXQgPSBy
b290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEZsb2F0LCBPcmlnaW4oKSwg
YWRkcmVzcyk7CiAgICAgVmFsdWUqIGNhc3QgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2Ms
IEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgbG9hZEZsb2F0KTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0KTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FzdCk7CiAKICAg
ICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsICZ2YWx1ZSks
IGJpdHdpc2VfY2FzdDxpbnQzMl90Pih2YWx1ZSkpKTsKIH0KQEAgLTQ1ODUsNyArNDU5Myw3IEBA
IHZvaWQgdGVzdEludDMyQkFyZ1RvRmxvYXRCaXR3aXNlQ2FzdChpbnQKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFw
cGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdHdp
c2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQpKTsKQEAgLTQ1OTksNyArNDYwNyw3IEBAIHZvaWQg
dGVzdEludDMyQkltbVRvRmxvYXRCaXR3aXNlQ2FzdChpbnQKICAgICBCYXNpY0Jsb2NrKiByb290
ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmd1bWVudCA9IHJvb3QtPmFwcGVuZE5l
dzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSk7CiAKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2luKCksIGFyZ3VtZW50
KSk7CkBAIC00NjE0LDcgKzQ2MjIsNyBAQCB2b2lkIHRlc3RUd29CaXR3aXNlQ2FzdE9uSW50MzIo
aW50MzJfdCB2CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50
UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIFZh
bHVlKiBmaXJzdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9y
aWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIHNlY29uZCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBmaXJzdCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vjb25kKTsKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc2Vj
b25kKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJv
YywgdmFsdWUpLCB2YWx1ZSkpOwogfQpAQCAtNDYyNiw3ICs0NjM0LDcgQEAgdm9pZCB0ZXN0Qml0
d2lzZUNhc3RPbkludDMySW5NZW1vcnkoaW50MwogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkRmxvYXQgPSByb290LT5hcHBlbmROZXc8
TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAg
VmFsdWUqIGNhc3QgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBP
cmlnaW4oKSwgbG9hZEZsb2F0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYXN0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FzdCk7CiAKICAgICBDSEVDSyhpc0lkZW50
aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jLCAmdmFsdWUpLCBiaXR3aXNlX2Nhc3Q8Zmxv
YXQ+KHZhbHVlKSkpOwogfQpAQCAtNDYzNyw3ICs0NjQ1LDcgQEAgdm9pZCB0ZXN0Q29udmVydERv
dWJsZVRvRmxvYXRBcmcoZG91YmxlIAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZhbHVl
KiBhc0Zsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBP
cmlnaW4oKSwgYXJndW1lbnQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIGFzRmxvYXQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0Zsb2F0KTsKIAogICAgIENIRUNLKGlz
SWRlbnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsIHZhbHVlKSwgc3RhdGljX2Nhc3Q8
ZmxvYXQ+KHZhbHVlKSkpOwogfQpAQCAtNDY0OCw3ICs0NjU2LDcgQEAgdm9pZCB0ZXN0Q29udmVy
dERvdWJsZVRvRmxvYXRJbW0oZG91YmxlIAogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFk
ZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0RG91
YmxlVmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSk7CiAgICAgVmFsdWUqIGFzRmxvYXQgPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBhcmd1
bWVudCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgYXNGbG9hdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIGFzRmxvYXQpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29t
cGlsZUFuZFJ1bjxmbG9hdD4ocHJvYyksIHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZSkpKTsKIH0K
QEAgLTQ2NjAsNyArNDY2OCw3IEBAIHZvaWQgdGVzdENvbnZlcnREb3VibGVUb0Zsb2F0TWVtKGRv
dWJsZSAKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBNZW1vcnlW
YWx1ZSogbG9hZGVkRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBM
b2FkLCBEb3VibGUsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogYXNGbG9hdCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91YmxlVG9GbG9hdCwgT3JpZ2luKCksIGxvYWRl
ZERvdWJsZSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgYXNGbG9hdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIGFzRmxvYXQpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwo
Y29tcGlsZUFuZFJ1bjxmbG9hdD4ocHJvYywgJnZhbHVlKSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZh
bHVlKSkpOwogfQpAQCAtNDY3Myw3ICs0NjgxLDcgQEAgdm9pZCB0ZXN0Q29udmVydEZsb2F0VG9E
b3VibGVBcmcoZmxvYXQgdgogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiBm
bG9hdFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3Jp
Z2luKCksIGFyZ3VtZW50MzIpOwogICAgIFZhbHVlKiBhc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5l
dzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCksIGZsb2F0VmFsdWUpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFz
RG91YmxlKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgYXNEb3VibGUpOwogCiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29tcGlsZUFuZFJ1
bjxkb3VibGU+KHByb2MsIGJpdHdpc2VfY2FzdDxpbnQzMl90Pih2YWx1ZSkpLCBzdGF0aWNfY2Fz
dDxkb3VibGU+KHZhbHVlKSkpOwogfQpAQCAtNDY4NCw3ICs0NjkyLDcgQEAgdm9pZCB0ZXN0Q29u
dmVydEZsb2F0VG9Eb3VibGVJbW0oZmxvYXQgdgogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0
RmxvYXRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKTsKICAgICBWYWx1ZSogYXNEb3VibGUg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBh
cmd1bWVudCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgYXNEb3VibGUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBhc0RvdWJsZSk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNh
bChjb21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYyksIHN0YXRpY19jYXN0PGRvdWJsZT4odmFsdWUp
KSk7CiB9CkBAIC00Njk2LDcgKzQ3MDQsNyBAQCB2b2lkIHRlc3RDb252ZXJ0RmxvYXRUb0RvdWJs
ZU1lbShmbG9hdCB2CiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAgICAg
TWVtb3J5VmFsdWUqIGxvYWRlZEZsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihw
cm9jLCBMb2FkLCBGbG9hdCwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBhc0RvdWJs
ZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRUb0RvdWJsZSwgT3JpZ2luKCks
IGxvYWRlZEZsb2F0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLCBhc0RvdWJsZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFzRG91YmxlKTsKIAogICAgIENIRUNLKGlzSWRl
bnRpY2FsKGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCAmdmFsdWUpLCBzdGF0aWNfY2FzdDxk
b3VibGU+KHZhbHVlKSkpOwogfQpAQCAtNDcwOSw3ICs0NzE3LDcgQEAgdm9pZCB0ZXN0Q29udmVy
dERvdWJsZVRvRmxvYXRUb0RvdWJsZVRvRgogICAgIFZhbHVlKiBhc0Zsb2F0ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgYXJndW1lbnQpOwog
ICAgIFZhbHVlKiBhc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRU
b0RvdWJsZSwgT3JpZ2luKCksIGFzRmxvYXQpOwogICAgIFZhbHVlKiBhc0Zsb2F0QWdhaW4gPSBy
b290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBhc0Rv
dWJsZSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgYXNGbG9hdEFnYWluKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNGbG9hdEFnYWluKTsKIAogICAgIENIRUNLKGlzSWRl
bnRpY2FsKGNvbXBpbGVBbmRSdW48ZmxvYXQ+KHByb2MsIHZhbHVlKSwgc3RhdGljX2Nhc3Q8Zmxv
YXQ+KHZhbHVlKSkpOwogfQpAQCAtNDcyNSw3ICs0NzMzLDcgQEAgdm9pZCB0ZXN0TG9hZEZsb2F0
Q29udmVydERvdWJsZUNvbnZlcnRGbAogICAgIFZhbHVlKiBhc0Zsb2F0QWdhaW4gPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9yaWdpbigpLCBhc0RvdWJsZSk7
CiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZSwgT3JpZ2luKCks
IGFzRmxvYXRBZ2FpbiwgZHN0KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAwKSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCAwKSk7CiAKICAgICBmbG9hdCBpbnB1dCA9IHZhbHVlOwogICAgIGZsb2F0IG91dHB1
dCA9IDAuOwpAQCAtNDc0MCw3ICs0NzQ4LDcgQEAgdm9pZCB0ZXN0RnJvdW5kQXJnKGRvdWJsZSB2
YWx1ZSkKICAgICBWYWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFyZ3VtZW50RlBSMCk7CiAgICAgVmFsdWUq
IGFzRmxvYXQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIERvdWJsZVRvRmxvYXQsIE9y
aWdpbigpLCBhcmd1bWVudCk7CiAgICAgVmFsdWUqIGFzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmlnaW4oKSwgYXNGbG9hdCk7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgYXNEb3Vi
bGUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCBhc0RvdWJsZSk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRv
dWJsZT4ocHJvYywgdmFsdWUpLCBzdGF0aWNfY2FzdDxkb3VibGU+KHN0YXRpY19jYXN0PGZsb2F0
Pih2YWx1ZSkpKSk7CiB9CkBAIC00NzUzLDcgKzQ3NjEsNyBAQCB2b2lkIHRlc3RGcm91bmRNZW0o
ZG91YmxlIHZhbHVlKQogICAgIE1lbW9yeVZhbHVlKiBsb2FkZWREb3VibGUgPSByb290LT5hcHBl
bmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIERvdWJsZSwgT3JpZ2luKCksIGFkZHJlc3Mp
OwogICAgIFZhbHVlKiBhc0Zsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBEb3Vi
bGVUb0Zsb2F0LCBPcmlnaW4oKSwgbG9hZGVkRG91YmxlKTsKICAgICBWYWx1ZSogYXNEb3VibGUg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBh
c0Zsb2F0KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBhc0RvdWJsZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIGFzRG91YmxlKTsKIAogICAgIENIRUNLKGlzSWRlbnRpY2Fs
KGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCAmdmFsdWUpLCBzdGF0aWNfY2FzdDxkb3VibGU+
KHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZSkpKSk7CiB9CkBAIC00NzY0LDcgKzQ3NzIsNyBAQCB2
b2lkIHRlc3RJVG9ENjRBcmcoKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7CiAgICAgVmFsdWUqIHNyYyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBWYWx1ZSogc3JjQXNE
b3VibGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBzcmMp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHNyY0FzRG91YmxlKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNEb3VibGUpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGls
ZShwcm9jKTsKICAgICBmb3IgKGF1dG8gdGVzdFZhbHVlIDogaW50NjRPcGVyYW5kcygpKQpAQCAt
NDc3Nyw3ICs0Nzg1LDcgQEAgdm9pZCB0ZXN0SVRvRjY0QXJnKCkKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBzcmMgPSByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7
CiAgICAgVmFsdWUqIHNyY0FzRmxvYXQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElU
b0YsIE9yaWdpbigpLCBzcmMpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXQpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0KTsKIAogICAgIGF1
dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgZm9yIChhdXRvIHRlc3RWYWx1ZSA6IGludDY0
T3BlcmFuZHMoKSkKQEAgLTQ3OTEsNyArNDc5OSw3IEBAIHZvaWQgdGVzdElUb0QzMkFyZygpCiAg
ICAgVmFsdWUqIHNyYyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiBzcmNBc0RvdWJsZSA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIHNyYyk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3Jj
QXNEb3VibGUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCBzcmNBc0RvdWJsZSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2Mp
OwogICAgIGZvciAoYXV0byB0ZXN0VmFsdWUgOiBpbnQzMk9wZXJhbmRzKCkpCkBAIC00ODA1LDcg
KzQ4MTMsNyBAQCB2b2lkIHRlc3RJVG9GMzJBcmcoKQogICAgIFZhbHVlKiBzcmMgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjApKTsKICAgICBWYWx1ZSogc3JjQXNGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgSVRvRiwgT3JpZ2luKCksIHNyYyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdCk7CisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXQpOwog
CiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKICAgICBmb3IgKGF1dG8gdGVzdFZhbHVl
IDogaW50MzJPcGVyYW5kcygpKQpAQCAtNDgxOSw3ICs0ODI3LDcgQEAgdm9pZCB0ZXN0SVRvRDY0
TWVtKCkKICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBNZW1vcnlW
YWx1ZSogbG9hZGVkU3JjID0gcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2Fk
LCBJbnQ2NCwgT3JpZ2luKCksIGFkZHJlc3MpOwogICAgIFZhbHVlKiBzcmNBc0RvdWJsZSA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGxvYWRlZFNyYyk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
c3JjQXNEb3VibGUpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCBzcmNBc0RvdWJsZSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHBy
b2MpOwogICAgIGludDY0X3QgaW5NZW1vcnlWYWx1ZTsKQEAgLTQ4MzcsNyArNDg0NSw3IEBAIHZv
aWQgdGVzdElUb0Y2NE1lbSgpCiAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7
CiAgICAgTWVtb3J5VmFsdWUqIGxvYWRlZFNyYyA9IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1
ZT4ocHJvYywgTG9hZCwgSW50NjQsIE9yaWdpbigpLCBhZGRyZXNzKTsKICAgICBWYWx1ZSogc3Jj
QXNGbG9hdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRiwgT3JpZ2luKCksIGxv
YWRlZFNyYyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgc3JjQXNGbG9hdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXQpOwogCiAgICAgYXV0byBjb2RlID0g
Y29tcGlsZShwcm9jKTsKICAgICBpbnQ2NF90IGluTWVtb3J5VmFsdWU7CkBAIC00ODU1LDcgKzQ4
NjMsNyBAQCB2b2lkIHRlc3RJVG9EMzJNZW0oKQogICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+
YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1
bWVudEdQUjApOwogICAgIE1lbW9yeVZhbHVlKiBsb2FkZWRTcmMgPSByb290LT5hcHBlbmROZXc8
TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwgYWRkcmVzcyk7CiAgICAg
VmFsdWUqIHNyY0FzRG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBP
cmlnaW4oKSwgbG9hZGVkU3JjKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0RvdWJsZSk7CisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRG91YmxlKTsKIAogICAg
IGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgaW50MzJfdCBpbk1lbW9yeVZhbHVlOwpA
QCAtNDg3Myw3ICs0ODgxLDcgQEAgdm9pZCB0ZXN0SVRvRjMyTWVtKCkKICAgICBWYWx1ZSogYWRk
cmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
R1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBNZW1vcnlWYWx1ZSogbG9hZGVkU3JjID0gcm9v
dC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2luKCksIGFk
ZHJlc3MpOwogICAgIFZhbHVlKiBzcmNBc0Zsb2F0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBJVG9GLCBPcmlnaW4oKSwgbG9hZGVkU3JjKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzcmNBc0Zsb2F0KTsKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9h
dCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIGludDMyX3QgaW5NZW1v
cnlWYWx1ZTsKQEAgLTQ4OTAsNyArNDg5OCw3IEBAIHZvaWQgdGVzdElUb0Q2NEltbShpbnQ2NF90
IHZhbHVlKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFs
dWUqIHNyYyA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCB2
YWx1ZSk7CiAgICAgVmFsdWUqIHNyY0FzRmxvYXRpbmdQb2ludCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIHNyYyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdGluZ1BvaW50KTsK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
c3JjQXNGbG9hdGluZ1BvaW50KTsKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVu
PGRvdWJsZT4ocHJvYyksIHN0YXRpY19jYXN0PGRvdWJsZT4odmFsdWUpKSk7CiB9CiAKQEAgLTQ5
MDAsNyArNDkwOCw3IEBAIHZvaWQgdGVzdElUb0Y2NEltbShpbnQ2NF90IHZhbHVlKQogICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgVmFsdWUqIHNyYyA9IHJvb3Qt
PmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSk7CiAgICAgVmFs
dWUqIHNyY0FzRmxvYXRpbmdQb2ludCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRv
RiwgT3JpZ2luKCksIHNyYyk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdGluZ1BvaW50KTsKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgc3JjQXNGbG9hdGluZ1Bv
aW50KTsKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGZsb2F0Pihwcm9jKSwg
c3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVlKSkpOwogfQogCkBAIC00OTEwLDcgKzQ5MTgsNyBAQCB2
b2lkIHRlc3RJVG9EMzJJbW0oaW50MzJfdCB2YWx1ZSkKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBzcmMgPSByb290LT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpOwogICAgIFZhbHVlKiBzcmNBc0Zsb2F0aW5n
UG9pbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBzcmMp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHNyY0FzRmxvYXRpbmdQb2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXRpbmdQb2ludCk7CiAgICAgQ0hFQ0so
aXNJZGVudGljYWwoY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MpLCBzdGF0aWNfY2FzdDxkb3Vi
bGU+KHZhbHVlKSkpOwogfQogCkBAIC00OTIwLDcgKzQ5MjgsNyBAQCB2b2lkIHRlc3RJVG9GMzJJ
bW0oaW50MzJfdCB2YWx1ZSkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwogICAgIFZhbHVlKiBzcmMgPSByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgdmFsdWUpOwogICAgIFZhbHVlKiBzcmNBc0Zsb2F0aW5nUG9pbnQgPSByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0YsIE9yaWdpbigpLCBzcmMpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHNyY0FzRmxvYXRp
bmdQb2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHNyY0FzRmxvYXRpbmdQb2ludCk7CiAgICAgQ0hFQ0soaXNJZGVudGljYWwoY29t
cGlsZUFuZFJ1bjxmbG9hdD4ocHJvYyksIHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZSkpKTsKIH0K
IApAQCAtNDkzMSw3ICs0OTM5LDcgQEAgdm9pZCB0ZXN0SVRvRFJlZHVjZWRUb0lUb0Y2NEFyZygp
CiAgICAgVmFsdWUqIHNyYyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBWYWx1ZSogc3JjQXNEb3Vi
bGUgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBzcmMpOwog
ICAgIFZhbHVlKiBmbG9hdFJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRG91
YmxlVG9GbG9hdCwgT3JpZ2luKCksIHNyY0FzRG91YmxlKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBmbG9hdFJlc3VsdCk7CisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGZsb2F0
UmVzdWx0KTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgZm9yIChhdXRv
IHRlc3RWYWx1ZSA6IGludDY0T3BlcmFuZHMoKSkKQEAgLTQ5NDYsNyArNDk1NCw3IEBAIHZvaWQg
dGVzdElUb0RSZWR1Y2VkVG9JVG9GMzJBcmcoKQogICAgICAgICByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwog
ICAgIFZhbHVlKiBzcmNBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRv
RCwgT3JpZ2luKCksIHNyYyk7CiAgICAgVmFsdWUqIGZsb2F0UmVzdWx0ID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBEb3VibGVUb0Zsb2F0LCBPcmlnaW4oKSwgc3JjQXNEb3VibGUpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IGZsb2F0UmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgZmxvYXRSZXN1bHQpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShw
cm9jKTsKICAgICBmb3IgKGF1dG8gdGVzdFZhbHVlIDogaW50MzJPcGVyYW5kcygpKQpAQCAtNDk2
NCw3ICs0OTcyLDcgQEAgdm9pZCB0ZXN0U3RvcmUzMihpbnQgdmFsdWUpCiAgICAgICAgICAgICBw
cm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1l
bnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZzbG90
KSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgQ0hFQ0so
IWNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCB2YWx1ZSkpOwpAQCAtNDk4MCw3ICs0OTg4LDcgQEAg
dm9pZCB0ZXN0U3RvcmVDb25zdGFudChpbnQgdmFsdWUpCiAgICAgICAgIHByb2MsIFN0b3JlLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIHZhbHVlKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCAmc2xvdCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IDApKTsKIAogICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludD4ocHJvYykpOwpAQCAtNTAwMCw3
ICs1MDA4LDcgQEAgdm9pZCB0ZXN0U3RvcmVDb25zdGFudFB0cihpbnRwdHJfdCB2YWx1ZQogICAg
ICAgICBwcm9jLCBTdG9yZSwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25z
dFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZzbG90KSk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50
Pihwcm9jKSk7CkBAIC01MDE4LDcgKzUwMjYsNyBAQCB2b2lkIHRlc3RTdG9yZThBcmcoKQogICAg
ICAgICBWYWx1ZSogYWRkcmVzcyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKIAogICAgICAgICByb290LT5h
cHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3JlOCwgT3JpZ2luKCksIHZhbHVlLCBhZGRy
ZXNzKTsKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgdmFsdWUpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFsdWUpOwogCiAgICAgICAgIGludDhfdCBzdG9yYWdl
ID0gMDsKICAgICAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCA0MiwgJnN0
b3JhZ2UpID09IDQyKTsKQEAgLTUwMzksNyArNTA0Nyw3IEBAIHZvaWQgdGVzdFN0b3JlOEFyZygp
CiAgICAgICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBB
ZGQsIE9yaWdpbigpLCBiYXNlRGlzcGxhY2VtZW50LCBvZmZzZXQpOwogCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmU4LCBPcmlnaW4oKSwgdmFsdWUsIGFk
ZHJlc3MpOwotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLCB2YWx1ZSk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CiAKICAgICAgICAgaW50OF90IHN0b3Jh
Z2UgPSAwOwogICAgICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIDQyLCAm
c3RvcmFnZSwgMSkgPT0gNDIpOwpAQCAtNTA1Nyw3ICs1MDY1LDcgQEAgdm9pZCB0ZXN0U3RvcmU4
SW1tKCkKICAgICAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRS
ZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZTgsIE9yaWdpbigpLCB2
YWx1ZSwgYWRkcmVzcyk7Ci0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsKIAogICAgICAgICBpbnQ4
X3Qgc3RvcmFnZSA9IDA7CiAgICAgICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJv
YywgJnN0b3JhZ2UpID09IDQyKTsKQEAgLTUwNzcsNyArNTA4NSw3IEBAIHZvaWQgdGVzdFN0b3Jl
OEltbSgpCiAgICAgICAgIFZhbHVlKiBhZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBBZGQsIE9yaWdpbigpLCBiYXNlRGlzcGxhY2VtZW50LCBvZmZzZXQpOwogCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmU4LCBPcmlnaW4oKSwgdmFs
dWUsIGFkZHJlc3MpOwotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CiAKICAgICAgICAgaW50OF90
IHN0b3JhZ2UgPSAwOwogICAgICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2Ms
ICZzdG9yYWdlLCAxKSA9PSA0Mik7CkBAIC01MTI5LDcgKzUxMzcsNyBAQCB2b2lkIHRlc3RTdG9y
ZVBhcnRpYWw4Qml0UmVnaXN0ZXJPblg4NigpCiAgICAgLy8gaWYgd2UgdXNlIFg4NiBwYXJ0aWFs
IHJlZ2lzdGVycy4KICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIFN0b3Jl
OCwgT3JpZ2luKCksIHBhdGNocG9pbnQsIHdoZXJlVG9TdG9yZSk7CiAKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXR1cm5WYWx1ZSk7
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJldHVyblZhbHVlKTsKIAogICAgIGludDhfdCBzdG9yYWdlID0gMHhmZjsKICAgICBDSEVDSyhj
b21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIDB4MTIzNDU2NzhhYmNkZWYxMiwgJnN0b3JhZ2Up
ID09IDB4MTIzNDU2NzhhYmNkZWYxMik7CkBAIC01MTQ3LDcgKzUxNTUsNyBAQCB2b2lkIHRlc3RT
dG9yZTE2QXJnKCkKICAgICAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CiAK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZTE2LCBPcmln
aW4oKSwgdmFsdWUsIGFkZHJlc3MpOwotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CisgICAgICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CiAKICAgICAg
ICAgaW50MTZfdCBzdG9yYWdlID0gLTE7CiAgICAgICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50
NjRfdD4ocHJvYywgNDIsICZzdG9yYWdlKSA9PSA0Mik7CkBAIC01MTY4LDcgKzUxNzYsNyBAQCB2
b2lkIHRlc3RTdG9yZTE2QXJnKCkKICAgICAgICAgVmFsdWUqIGFkZHJlc3MgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGJhc2VEaXNwbGFjZW1lbnQsIG9mZnNl
dCk7CiAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBTdG9yZTE2
LCBPcmlnaW4oKSwgdmFsdWUsIGFkZHJlc3MpOwotICAgICAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CisgICAgICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7CiAK
ICAgICAgICAgaW50MTZfdCBzdG9yYWdlID0gLTE7CiAgICAgICAgIENIRUNLKGNvbXBpbGVBbmRS
dW48aW50NjRfdD4ocHJvYywgNDIsICZzdG9yYWdlLCAxKSA9PSA0Mik7CkBAIC01MTg2LDcgKzUx
OTQsNyBAQCB2b2lkIHRlc3RTdG9yZTE2SW1tKCkKICAgICAgICAgVmFsdWUqIGFkZHJlc3MgPSBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMCk7CiAKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihw
cm9jLCBTdG9yZTE2LCBPcmlnaW4oKSwgdmFsdWUsIGFkZHJlc3MpOwotICAgICAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCB2YWx1ZSk7Cisg
ICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCB2YWx1ZSk7CiAKICAgICAgICAgaW50MTZfdCBzdG9yYWdlID0gLTE7CiAgICAgICAgIENIRUNL
KGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgJnN0b3JhZ2UpID09IDQyKTsKQEAgLTUyMDYs
NyArNTIxNCw3IEBAIHZvaWQgdGVzdFN0b3JlMTZJbW0oKQogICAgICAgICBWYWx1ZSogYWRkcmVz
cyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYmFzZURpc3Bs
YWNlbWVudCwgb2Zmc2V0KTsKIAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+
KHByb2MsIFN0b3JlMTYsIE9yaWdpbigpLCB2YWx1ZSwgYWRkcmVzcyk7Ci0gICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHZhbHVlKTsK
KyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHZhbHVlKTsKIAogICAgICAgICBpbnQxNl90IHN0b3JhZ2UgPSAtMTsKICAgICAgICAgQ0hF
Q0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAmc3RvcmFnZSwgMSkgPT0gNDIpOwpAQCAt
NTIxOCw3ICs1MjI2LDcgQEAgdm9pZCB0ZXN0VHJ1bmMoaW50NjRfdCB2YWx1ZSkKIHsKICAgICBQ
cm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwK
QEAgLTUyMzEsNyArNTIzOSw3IEBAIHZvaWQgdGVzdEFkZDEoaW50IHZhbHVlKQogewogICAgIFBy
b2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKQEAg
LTUyNDcsNyArNTI1NSw3IEBAIHZvaWQgdGVzdEFkZDFQdHIoaW50cHRyX3QgdmFsdWUpCiB7CiAg
ICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigp
LApAQCAtNTI2MSw3ICs1MjY5LDcgQEAgdm9pZCB0ZXN0TmVnMzIoaW50MzJfdCB2YWx1ZSkKIHsK
ICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFN1YiwgT3JpZ2lu
KCksCkBAIC01Mjc3LDcgKzUyODUsNyBAQCB2b2lkIHRlc3ROZWdQdHIoaW50cHRyX3QgdmFsdWUp
CiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRk
QmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTdWIsIE9y
aWdpbigpLApAQCAtNTMwMiw3ICs1MzEwLDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkMzIoaW50
IGFtb3VudCkKICAgICAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAg
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNTMyMyw3ICs1MzMx
LDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkSW1tMzIoaW50IGFtb3VudCkKICAgICAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50MzIsIE9yaWdpbigp
LCBzbG90UHRyKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBhbW91bnQpKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01MzQ2LDcgKzUzNTQsNyBA
QCB2b2lkIHRlc3RTdG9yZUFkZExvYWQ4KGludCBhbW91bnQsIEIzOjpPCiAgICAgICAgICAgICAg
ICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIw
KSkpLAogICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAwKSk7CiAKQEAgLTUzNjcsNyArNTM3NSw3IEBAIHZvaWQgdGVzdFN0b3JlQWRk
TG9hZEltbTgoaW50IGFtb3VudCwgQjMKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1v
cnlWYWx1ZT4ocHJvYywgbG9hZE9wY29kZSwgT3JpZ2luKCksIHNsb3RQdHIpLAogICAgICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFtb3VudCkp
LAogICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCAwKSk7CiAKQEAgLTUzOTAsNyArNTM5OCw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9h
ZDE2KGludCBhbW91bnQsIEIzOjoKICAgICAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2lu
KCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSksCiAgICAgICAgIHNsb3RQdHIp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAt
NTQxMSw3ICs1NDE5LDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkSW1tMTYoaW50IGFtb3VudCwg
QgogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBsb2FkT3Bj
b2RlLCBPcmlnaW4oKSwgc2xvdFB0ciksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29u
c3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYW1vdW50KSksCiAgICAgICAgIHNsb3RQdHIpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNTQz
Miw3ICs1NDQwLDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkNjQoaW50IGFtb3VudCkKICAgICAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgSW50NjQsIE9y
aWdpbigpLCBzbG90UHRyKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAg
IHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDAp
KTsKIApAQCAtNTQ1Myw3ICs1NDYxLDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkSW1tNjQoaW50
NjRfdCBhbW91bgogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9j
LCBMb2FkLCBJbnQ2NCwgT3JpZ2luKCksIHNsb3RQdHIpLAogICAgICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFtb3VudCkpLAogICAgICAgICBz
bG90UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7
CiAKQEAgLTU0ODUsNyArNTQ5Myw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9hZDMySW5kZXgoaW50
IGFtb3VudCkKICAgICAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAg
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNTUxNSw3ICs1NTIz
LDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkSW1tMzJJbmRleChpbnQgYW1vdQogICAgICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2lu
KCksIHNsb3RQdHIpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIGFtb3VudCkpLAogICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTU1NDcsNyArNTU1NSw3
IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9hZDhJbmRleChpbnQgYW1vdW50LCAKICAgICAgICAgICAg
ICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjApKSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIDApKTsKIApAQCAtNTU3Nyw3ICs1NTg1LDcgQEAgdm9pZCB0ZXN0U3RvcmVB
ZGRMb2FkSW1tOEluZGV4KGludCBhbW91bgogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1l
bW9yeVZhbHVlPihwcm9jLCBsb2FkT3Bjb2RlLCBPcmlnaW4oKSwgc2xvdFB0ciksCiAgICAgICAg
ICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgYW1vdW50
KSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDApKTsKIApAQCAtNTYwOSw3ICs1NjE3LDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRM
b2FkMTZJbmRleChpbnQgYW1vdW50LAogICAgICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmln
aW4oKSwKICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpKSwKICAgICAgICAgc2xvdFB0
cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBA
IC01NjM5LDcgKzU2NDcsNyBAQCB2b2lkIHRlc3RTdG9yZUFkZExvYWRJbW0xNkluZGV4KGludCBh
bW91CiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIGxvYWRP
cGNvZGUsIE9yaWdpbigpLCBzbG90UHRyKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhbW91bnQpKSwKICAgICAgICAgc2xvdFB0cik7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01
NjY5LDcgKzU2NzcsNyBAQCB2b2lkIHRlc3RTdG9yZUFkZExvYWQ2NEluZGV4KGludCBhbW91bnQp
CiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIElu
dDY0LCBPcmlnaW4oKSwgc2xvdFB0ciksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAog
ICAgICAgICBzbG90UHRyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdp
bigpLCAwKSk7CiAKQEAgLTU2OTksNyArNTcwNyw3IEBAIHZvaWQgdGVzdFN0b3JlQWRkTG9hZElt
bTY0SW5kZXgoaW50NjRfdCAKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1
ZT4ocHJvYywgTG9hZCwgSW50NjQsIE9yaWdpbigpLCBzbG90UHRyKSwKICAgICAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBhbW91bnQpKSwKICAg
ICAgICAgc2xvdFB0cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgMCkpOwogCkBAIC01NzIzLDcgKzU3MzEsNyBAQCB2b2lkIHRlc3RTdG9yZVN1YkxvYWQoaW50
IGFtb3VudCkKICAgICAgICAgICAgICAgICBwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAg
ICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSksCiAgICAgICAgIHNsb3RQdHIpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNTc1MCw3ICs1NzU4
LDcgQEAgdm9pZCB0ZXN0U3RvcmVBZGRMb2FkSW50ZXJmZXJlbmNlKGludCBhbQogICAgICAgICAg
ICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKICAgICAgICAgICAgIGxvYWQsIHJvb3QtPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBhbW91bnQpKSwKICAgICAgICAgc2xvdFB0
cik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBA
IC01Nzc0LDcgKzU3ODIsNyBAQCB2b2lkIHRlc3RTdG9yZUFkZEFuZExvYWQoaW50IGFtb3VudCwg
aW50CiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIGFtb3VudCkpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIG1hc2spKSwKICAgICAgICAgc2xvdFB0cik7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC01Nzk5LDcgKzU4
MDcsNyBAQCB2b2lkIHRlc3RTdG9yZU5lZ0xvYWQzMihpbnQzMl90IHZhbHVlKQogICAgICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2lu
KCksIHNsb3RQdHIpKSwKICAgICAgICAgc2xvdFB0cik7CiAgICAgCi0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50MzJf
dD4ocHJvYykpOwpAQCAtNTgyMyw3ICs1ODMxLDcgQEAgdm9pZCB0ZXN0U3RvcmVOZWdMb2FkUHRy
KGludHB0cl90IHZhbHVlKQogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVl
Pihwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwgc2xvdFB0cikpLAogICAgICAg
ICBzbG90UHRyKTsKICAgICAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7
CiAKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jKSk7CkBAIC01ODM0LDcg
KzU4NDIsNyBAQCB2b2lkIHRlc3RBZGQxVW5jb21tdXRlZChpbnQgdmFsdWUpCiB7CiAgICAgUHJv
Y2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAt
NTg1Miw3ICs1ODYwLDcgQEAgdm9pZCB0ZXN0TG9hZE9mZnNldCgpCiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBpbnQgYXJyYXlbXSA9IHsgMSwgMiB9OwogICAg
IENvbnN0UHRyVmFsdWUqIGFycmF5UHRyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBhcnJheSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKQEAgLTU4NjgsNyArNTg3Niw3IEBAIHZvaWQgdGVzdExv
YWRPZmZzZXROb3RDb25zdGFudCgpCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKICAgICBpbnQgYXJyYXlbXSA9IHsgMSwgMiB9OwogICAgIFZhbHVlKiBhcnJheVB0ciA9
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBBZGQsIE9yaWdpbigpLApAQCAtNTg4NCw3ICs1ODkyLDcgQEAgdm9pZCB0ZXN0TG9hZE9mZnNl
dFVzaW5nQWRkKCkKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAg
IGludCBhcnJheVtdID0geyAxLCAyIH07CiAgICAgQ29uc3RQdHJWYWx1ZSogYXJyYXlQdHIgPSBy
b290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFycmF5KTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAt
NTkyNSw3ICs1OTMzLDcgQEAgdm9pZCB0ZXN0TG9hZE9mZnNldFVzaW5nQWRkSW50ZXJmZXJlbmNl
KAogICAgICAgICBwcm9jLCBTdG9yZSwgT3JpZ2luKCksIHRoZU51bWJlck9mVGhlQmVhc3QsIG90
aGVyQXJyYXlQdHIsIDApOwogICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAg
ICAgIHByb2MsIFN0b3JlLCBPcmlnaW4oKSwgdGhlTnVtYmVyT2ZUaGVCZWFzdCwgb3RoZXJBcnJh
eVB0ciwgc2l6ZW9mKGludCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIEFkZCwgT3JpZ2luKCksIGxlZnQsIHJpZ2h0KSk7CkBAIC01OTQxLDcgKzU5NDksNyBAQCB2
b2lkIHRlc3RMb2FkT2Zmc2V0VXNpbmdBZGROb3RDb25zdGFudCgpCiAgICAgQmFzaWNCbG9jayog
cm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICBpbnQgYXJyYXlbXSA9IHsgMSwgMiB9OwogICAg
IFZhbHVlKiBhcnJheVB0ciA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
CiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAtNTk3Nyw3ICs1OTg1LDcgQEAg
dm9pZCB0ZXN0TG9hZEFkZHJTaGlmdCh1bnNpZ25lZCBzaGlmdCkKIAogICAgICpzbG90ID0gODY3
NTMwOTsKICAgICAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCks
CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBMb2FkLCBJbnQzMiwgT3JpZ2luKCksCkBAIC01OTkzLDcgKzYwMDEsNyBAQCB2b2lkIHRlc3RG
cmFtZVBvaW50ZXIoKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEZyYW1lUG9p
bnRlciwgT3JpZ2luKCkpKTsKIApAQCAtNjAxNiw3ICs2MDI0LDcgQEAgdm9pZCB0ZXN0T3ZlcnJp
ZGVGcmFtZVBvaW50ZXIoKQogICAgICAgICBWYWx1ZSogZnAgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIEZyYW1lUG9pbnRlciwgT3JpZ2luKCkpOwogICAgICAgICBWYWx1ZSogcmVzdWx0
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBmcCwgb2Zmc2V0
KTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByZXN1bHQpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICAgICAgQ0hFQ0soY29tcGlsZUFu
ZFJ1bjxpbnQ2NF90Pihwcm9jLCAxKSk7CiAgICAgfQogICAgIHsKQEAgLTYwMzIsNyArNjA0MCw3
IEBAIHZvaWQgdGVzdE92ZXJyaWRlRnJhbWVQb2ludGVyKCkKICAgICAgICAgVmFsdWUqIG9mZnNl
dEFyZyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgb2Zmc2V0
LCBhcmcpOwogICAgICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBBZGQsIE9yaWdpbigpLCBvZmZzZXRBcmcsIG9mZnNldEZQKTsKIAotICAgICAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQp
OworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0KTsKICAgICAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9j
LCAxLCAyKSk7CiAgICAgfQogfQpAQCAtNjA0MSw3ICs2MDQ5LDcgQEAgdm9pZCB0ZXN0U3RhY2tT
bG90KCkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFNsb3RCYXNlVmFsdWU+KHByb2MsIE9yaWdpbigp
LCBwcm9jLmFkZFN0YWNrU2xvdCgxKSkpOwogCkBAIC02MDU0LDcgKzYwNjIsNyBAQCB2b2lkIHRl
c3RMb2FkRnJvbUZyYW1lUG9pbnRlcigpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVyVHlwZSgpLCBPcmlnaW4oKSwKQEAg
LTYwODEsNyArNjA4OSw3IEBAIHZvaWQgdGVzdFN0b3JlTG9hZFN0YWNrU2xvdChpbnQgdmFsdWUp
CiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICBzdGFjayk7CiAgICAgCi0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExvYWQsIEludDMyLCBPcmlnaW4oKSwgc3Rh
Y2spKTsKIApAQCAtNjExNiw3ICs2MTI0LDcgQEAgdm9pZCB0ZXN0TG9hZChCMzo6T3Bjb2RlIG9w
Y29kZSwgSW5wdXRUeQogICAgICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICAgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICAgICAgCi0gICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+
YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBvcGNvZGUsIHR5
cGUsIE9yaWdpbigpLApAQCAtNjEzMCw3ICs2MTM4LDcgQEAgdm9pZCB0ZXN0TG9hZChCMzo6T3Bj
b2RlIG9wY29kZSwgSW5wdXRUeQogICAgICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICAgICAgCi0gICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBvcGNv
ZGUsIHR5cGUsIE9yaWdpbigpLApAQCAtNjE0NCw3ICs2MTUyLDcgQEAgdm9pZCB0ZXN0TG9hZChC
Mzo6T3Bjb2RlIG9wY29kZSwgSW5wdXRUeQogICAgICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICAg
ICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKICAgICAgICAgCi0gICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9j
LCBvcGNvZGUsIHR5cGUsIE9yaWdpbigpLApAQCAtNjE1OSw3ICs2MTY3LDcgQEAgdm9pZCB0ZXN0
TG9hZChCMzo6T3Bjb2RlIG9wY29kZSwgSW5wdXRUeQogICAgICAgICBQcm9jZWR1cmUgcHJvYzsK
ICAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgICAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywg
b3Bjb2RlLCB0eXBlLCBPcmlnaW4oKSwKQEAgLTYxNzksNyArNjE4Nyw3IEBAIHZvaWQgdGVzdExv
YWQoQjM6Ok9wY29kZSBvcGNvZGUsIElucHV0VHkKICAgICAgICAgUHJvY2VkdXJlIHByb2M7CiAg
ICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAg
ICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIG9w
Y29kZSwgdHlwZSwgT3JpZ2luKCksCkBAIC02MjE5LDcgKzYyMjcsNyBAQCB2b2lkIHRlc3RTdG9y
ZUZsb2F0KGRvdWJsZSBpbnB1dCkKICAgICAgICAgVmFsdWUqIGRlc3RpbmF0aW9uQWRkcmVzcyA9
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIwKTsKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihw
cm9jLCBTdG9yZSwgT3JpZ2luKCksIGFyZ3VtZW50QXNGbG9hdCwgZGVzdGluYXRpb25BZGRyZXNz
KTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
MCkpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDAp
KTsKIAogICAgICAgICBmbG9hdCBvdXRwdXQgPSAwLjsKICAgICAgICAgQ0hFQ0soIWNvbXBpbGVB
bmRSdW48aW50NjRfdD4ocHJvYywgaW5wdXQsICZvdXRwdXQpKTsKQEAgLTYyNDMsNyArNjI1MSw3
IEBAIHZvaWQgdGVzdFN0b3JlRmxvYXQoZG91YmxlIGlucHV0KQogCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgU3RvcmUsIE9yaWdpbigpLCBhcmd1bWVudEFzRmxv
YXQsIGRlc3RpbmF0aW9uQWRkcmVzcyk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICAgICAgZmxvYXQgb3V0cHV0ID0gMC47CiAg
ICAgICAgIENIRUNLKCFjb21waWxlQW5kUnVuPGludDY0X3Q+KHByb2MsIGlucHV0LCAmb3V0cHV0
IC0gMSwgMSkpOwpAQCAtNjI2Myw3ICs2MjcxLDcgQEAgdm9pZCB0ZXN0U3RvcmVEb3VibGVDb25z
dGFudEFzRmxvYXQoZG91YgogCiAgICAgcm9vdC0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9j
LCBTdG9yZSwgT3JpZ2luKCksIHZhbHVlQXNGbG9hdCwgZGVzdGluYXRpb25BZGRyZXNzKTsKIAot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3Qt
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKICAgICBmbG9h
dCBvdXRwdXQgPSAwLjsKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCBp
bnB1dCwgJm91dHB1dCkpOwpAQCAtNjI4OSw3ICs2Mjk3LDcgQEAgdm9pZCB0ZXN0U3BpbGxHUCgp
CiAgICAgZm9yIChWYWx1ZSogdmFsdWUgOiBzb3VyY2VzKQogICAgICAgICB0b3RhbCA9IHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgdG90YWwsIHZhbHVlKTsKIAot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHRvdGFsKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgdG90YWwpOwogICAgIGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAxLCAyKTsKIH0K
IApAQCAtNjMxMiw3ICs2MzIwLDcgQEAgdm9pZCB0ZXN0U3BpbGxGUCgpCiAgICAgZm9yIChWYWx1
ZSogdmFsdWUgOiBzb3VyY2VzKQogICAgICAgICB0b3RhbCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgdG90YWwsIHZhbHVlKTsKIAotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHRvdGFsKTsKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdG90YWwp
OwogICAgIGNvbXBpbGVBbmRSdW48ZG91YmxlPihwcm9jLCAxLjEsIDIuNSk7CiB9CiAKQEAgLTYz
MjgsNyArNjMzNiw3IEBAIHZvaWQgdGVzdEludDMyVG9Eb3VibGVQYXJ0aWFsUmVnaXN0ZXJTdGEK
ICAgICBWYWx1ZSogY291bnRlciA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBVcHNpbG9uVmFsdWUq
IG9yaWdpbmFsVG90YWwgPSByb290LT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPihwcm9jLCBPcmln
aW4oKSwgdG90YWwpOwogICAgIFVwc2lsb25WYWx1ZSogb3JpZ2luYWxDb3VudGVyID0gcm9vdC0+
YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIGNvdW50ZXIpOwotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVu
dGVkQmxvY2sobG9vcCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBK
dW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3ApKTsKIAogICAgIC8vIExvb3AuCiAg
ICAgVmFsdWUqIGxvb3BDb3VudGVyID0gbG9vcC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBQaGks
IEludDY0LCBPcmlnaW4oKSk7CkBAIC02MzQ1LDEzICs2MzUzLDEzIEBAIHZvaWQgdGVzdEludDMy
VG9Eb3VibGVQYXJ0aWFsUmVnaXN0ZXJTdGEKICAgICBWYWx1ZSogZGVjQ291bnRlciA9IGxvb3At
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgbG9vcENvdW50ZXIsIGxvb3At
PmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAgICAgVXBzaWxv
blZhbHVlKiBkZWNDb3VudGVyVXBzaWxvbiA9IGxvb3AtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+
KHByb2MsIE9yaWdpbigpLCBkZWNDb3VudGVyKTsKICAgICBkZWNDb3VudGVyVXBzaWxvbi0+c2V0
UGhpKGxvb3BDb3VudGVyKTsKLSAgICBsb29wLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICBsb29wLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3Jp
Z2luKCksCiAgICAgICAgIGRlY0NvdW50ZXIsCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhsb29w
KSwgRnJlcXVlbnRlZEJsb2NrKGRvbmUpKTsKIAogICAgIC8vIFRhaWwuCi0gICAgZG9uZS0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdXBkYXRlZFRvdGFs
KTsKKyAgICBkb25lLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgdXBkYXRlZFRvdGFsKTsKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxlQW5kUnVuPGRv
dWJsZT4ocHJvYywgMTAwMDAwKSwgNTAwMDA1MDAwMC4pKTsKIH0KIApAQCAtNjM3MSw3ICs2Mzc5
LDcgQEAgdm9pZCB0ZXN0SW50MzJUb0RvdWJsZVBhcnRpYWxSZWdpc3RlcldpdAogICAgIFZhbHVl
KiBmb3JQYWRkaW5nSW5wdXRBZGRyZXNzID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0UHRyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAmZm9yUGFkZGluZ0lucHV0KTsKICAgICB1aW50NjRfdCBmb3JQYWRk
aW5nT3V0cHV0OwogICAgIFZhbHVlKiBmb3JQYWRkaW5nT3V0cHV0QWRkcmVzcyA9IHJvb3QtPmFw
cGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJmZvclBhZGRpbmdPdXRwdXQp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigp
LCBGcmVxdWVudGVkQmxvY2sobG9vcCkpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3ApKTsKIAogICAgIC8v
IExvb3AuCiAgICAgVmFsdWUqIGxvb3BDb3VudGVyID0gbG9vcC0+YXBwZW5kTmV3PFZhbHVlPihw
cm9jLCBQaGksIEludDY0LCBPcmlnaW4oKSk7CkBAIC02NDA1LDEzICs2NDEzLDEzIEBAIHZvaWQg
dGVzdEludDMyVG9Eb3VibGVQYXJ0aWFsUmVnaXN0ZXJXaXQKICAgICBWYWx1ZSogZGVjQ291bnRl
ciA9IGxvb3AtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU3ViLCBPcmlnaW4oKSwgbG9vcENvdW50
ZXIsIGxvb3AtPmFwcGVuZE5ldzxDb25zdDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAg
ICAgVXBzaWxvblZhbHVlKiBkZWNDb3VudGVyVXBzaWxvbiA9IGxvb3AtPmFwcGVuZE5ldzxVcHNp
bG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCBkZWNDb3VudGVyKTsKICAgICBkZWNDb3VudGVyVXBz
aWxvbi0+c2V0UGhpKGxvb3BDb3VudGVyKTsKLSAgICBsb29wLT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICBsb29wLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJy
YW5jaCwgT3JpZ2luKCksCiAgICAgICAgIGRlY0NvdW50ZXIsCiAgICAgICAgIEZyZXF1ZW50ZWRC
bG9jayhsb29wKSwgRnJlcXVlbnRlZEJsb2NrKGRvbmUpKTsKIAogICAgIC8vIFRhaWwuCi0gICAg
ZG9uZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdXBk
YXRlZFRvdGFsKTsKKyAgICBkb25lLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgdXBkYXRlZFRvdGFsKTsKICAgICBDSEVDSyhpc0lkZW50aWNhbChjb21waWxl
QW5kUnVuPGRvdWJsZT4ocHJvYywgMTAwMDAwKSwgNTAwMDA1MDAwMC4pKTsKIH0KIApAQCAtNjQy
MiwxOCArNjQzMCwxOCBAQCB2b2lkIHRlc3RCcmFuY2goKQogICAgIEJhc2ljQmxvY2sqIHRoZW5D
YXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5h
ZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgVHJ1
bmMsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAgRnJl
cXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAg
ICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7
CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2Ut
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwK
ICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigp
LCAwKSk7CiAKQEAgLTY0NDksMTYgKzY0NTcsMTYgQEAgdm9pZCB0ZXN0QnJhbmNoUHRyKCkKICAg
ICBCYXNpY0Jsb2NrKiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2Nr
KiBlbHNlQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApLAogICAgICAgICBG
cmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAot
ICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEp
KTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2Fz
ZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDApKTsKIApAQCAtNjQ3NSw3ICs2NDgzLDcgQEAgdm9pZCB0ZXN0RGlhbW9uZCgpCiAgICAg
QmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayog
ZG9uZSA9IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJh
bmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKQEAgLTY0ODQsMTYgKzY0OTIsMTYgQEAgdm9pZCB0
ZXN0RGlhbW9uZCgpCiAKICAgICBVcHNpbG9uVmFsdWUqIHRoZW5SZXN1bHQgPSB0aGVuQ2FzZS0+
YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4oCiAgICAgICAgIHByb2MsIE9yaWdpbigpLCB0aGVuQ2Fz
ZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKLSAgICB0aGVu
Q2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1
ZW50ZWRCbG9jayhkb25lKSk7CisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShw
cm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRvbmUpKTsKIAogICAgIFVwc2ls
b25WYWx1ZSogZWxzZVJlc3VsdCA9IGVsc2VDYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPigK
ICAgICAgICAgcHJvYywgT3JpZ2luKCksIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgMCkpOwotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRvbmUpKTsKKyAgICBl
bHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVx
dWVudGVkQmxvY2soZG9uZSkpOwogCiAgICAgVmFsdWUqIHBoaSA9IGRvbmUtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgUGhpLCBJbnQzMiwgT3JpZ2luKCkpOwogICAgIHRoZW5SZXN1bHQtPnNldFBo
aShwaGkpOwogICAgIGVsc2VSZXN1bHQtPnNldFBoaShwaGkpOwotICAgIGRvbmUtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBoaSk7CisgICAgZG9uZS0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBoaSk7CiAKICAg
ICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIENIRUNLKGludm9rZTxpbnQ+KCpjb2Rl
LCA0MikgPT0gMSk7CkBAIC02NTA3LDcgKzY1MTUsNyBAQCB2b2lkIHRlc3RCcmFuY2hOb3RFcXVh
bCgpCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFz
aWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBOb3RFcXVhbCwgT3JpZ2luKCksCkBAIC02NTE3LDExICs2
NTI1LDExIEBAIHZvaWQgdGVzdEJyYW5jaE5vdEVxdWFsKCkKICAgICAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSksCiAgICAgICAgIEZyZXF1
ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAg
dGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwog
Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5h
cHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAg
ICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
MCkpOwogCkBAIC02NTM3LDcgKzY1NDUsNyBAQCB2b2lkIHRlc3RCcmFuY2hOb3RFcXVhbENvbW11
dGUoKQogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJh
c2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFs
dWU+KAogICAgICAgICAgICAgcHJvYywgTm90RXF1YWwsIE9yaWdpbigpLApAQCAtNjU0NywxMSAr
NjU1NSwxMSBAQCB2b2lkIHRlc3RCcmFuY2hOb3RFcXVhbENvbW11dGUoKQogICAgICAgICAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BS
SW5mbzo6YXJndW1lbnRHUFIwKSkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2Up
LCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNjU2Nyw3ICs2
NTc1LDcgQEAgdm9pZCB0ZXN0QnJhbmNoTm90RXF1YWxOb3RFcXVhbCgpCiAgICAgQmFzaWNCbG9j
ayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2Ug
PSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwg
T3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBw
cm9jLCBOb3RFcXVhbCwgT3JpZ2luKCksCkBAIC02NTgwLDExICs2NTg4LDExIEBAIHZvaWQgdGVz
dEJyYW5jaE5vdEVxdWFsTm90RXF1YWwoKQogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2Nr
KHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2Ut
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKLSAgICBlbHNl
Q2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxz
ZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAg
LTY2MDAsNyArNjYwOCw3IEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsKCkKICAgICBCYXNpY0Jsb2Nr
KiB0aGVuQ2FzZSA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiBlbHNlQ2FzZSA9
IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIEVxdWFsLCBPcmlnaW4oKSwKQEAgLTY2MTAsMTEgKzY2MTgsMTEgQEAgdm9pZCB0ZXN0QnJh
bmNoRXF1YWwoKQogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIDApKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJl
cXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKQEAgLTY2MzAsNyArNjYzOCw3
IEBAIHZvaWQgdGVzdEJyYW5jaEVxdWFsRXF1YWwoKQogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNl
ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRC
bG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgRXF1YWws
IE9yaWdpbigpLApAQCAtNjY0MywxMSArNjY1MSwxMSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbEVx
dWFsKCkKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9y
aWdpbigpLCAwKSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50
ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29u
c3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC02NjYzLDcgKzY2NzEsNyBAQCB2
b2lkIHRlc3RCcmFuY2hFcXVhbENvbW11dGUoKQogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0g
cHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9j
aygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgRXF1YWwsIE9y
aWdpbigpLApAQCAtNjY3MywxMSArNjY4MSwxMSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbENvbW11
dGUoKQogICAgICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSkpLAogICAgICAgICBGcmVxdWVu
dGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRo
ZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0
aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAot
ICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEp
KTsKIApAQCAtNjY5Myw3ICs2NzAxLDcgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxFcXVhbDEoKQog
ICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxv
Y2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAog
ICAgICAgICAgICAgcHJvYywgRXF1YWwsIE9yaWdpbigpLApAQCAtNjcwNiwxMSArNjcxNCwxMSBA
QCB2b2lkIHRlc3RCcmFuY2hFcXVhbEVxdWFsMSgpCiAgICAgICAgICAgICByb290LT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpLAogICAgICAgICBGcmVxdWVudGVk
QmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5D
YXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVu
Q2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAotICAg
IGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsK
IApAQCAtNjcyOCw3ICs2NzM2LDcgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJlZEFy
Z3MoZG91YgogCiAgICAgVmFsdWUqIGFyZ3VtZW50QSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVu
dFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIwKTsKICAgICBW
YWx1ZSogYXJndW1lbnRCID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjEpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIEVxdWFsT3JVbm9yZGVyZWQsIE9yaWdpbigpLApAQCAtNjczNiwx
MSArNjc0NCwxMSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVkQXJncyhkb3ViCiAg
ICAgICAgICAgICBhcmd1bWVudEIpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2Up
LCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFw
cGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMTMpKTsKIApAQCAtNjc2MCw3
ICs2NzY4LDcgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJlZEFyZ3MoZmxvYQogICAg
IFZhbHVlKiBhcmd1bWVudEIgPSByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KHByb2MsIExv
YWQsIEZsb2F0LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpKTsKIAotICAgIHJv
b3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEVxdWFsT3JVbm9yZGVyZWQsIE9yaWdp
bigpLApAQCAtNjc2OCwxMSArNjc3NiwxMSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRl
cmVkQXJncyhmbG9hCiAgICAgICAgICAgICBhcmd1bWVudEIpLAogICAgICAgICBGcmVxdWVudGVk
QmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5D
YXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVu
Q2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7CiAKLSAg
ICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMTMp
KTsKIApAQCAtNjc5NywxNiArNjgwNSwxNiBAQCB2b2lkIHRlc3RCcmFuY2hOb3RFcXVhbEFuZE9y
ZGVyZWRBcmdzKGRvCiAgICAgICAgIHByb2MsIEVxdWFsLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApLAogICAgICAgICBl
cXVhbE9yVW5vcmRlcmVkKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3Jp
Z2luKCksCiAgICAgICAgIG5vdEVxdWFsQW5kT3JkZXJlZCwKICAgICAgICAgRnJlcXVlbnRlZEJs
b2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2Fz
ZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNh
c2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwogCi0gICAg
ZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTEzKSk7
CiAKQEAgLTY4MzMsMTYgKzY4NDEsMTYgQEAgdm9pZCB0ZXN0QnJhbmNoTm90RXF1YWxBbmRPcmRl
cmVkQXJncyhmbAogICAgICAgICBwcm9jLCBFcXVhbCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSwKICAgICAgICAgZXF1
YWxPclVub3JkZXJlZCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdp
bigpLAogICAgICAgICBub3RFcXVhbEFuZE9yZGVyZWQsCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9j
ayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2Ut
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNl
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpKTsKIAotICAgIGVs
c2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBl
bHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xMykpOwog
CkBAIC02ODU5LDcgKzY4NjcsNyBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVkRG91
YmxlQXJnCiAKICAgICBWYWx1ZSogYXJndW1lbnRBID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50
UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjApOwogICAgIFZh
bHVlKiBhcmd1bWVudEIgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIGIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEVx
dWFsT3JVbm9yZGVyZWQsIE9yaWdpbigpLApAQCAtNjg2NywxMSArNjg3NSwxMSBAQCB2b2lkIHRl
c3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVkRG91YmxlQXJnCiAgICAgICAgICAgICBhcmd1bWVudEIp
LAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxz
ZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0
aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywg
T3JpZ2luKCksIDQyKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+
KHByb2MsIE9yaWdpbigpLCAtMTMpKTsKIApAQCAtNjg5MCw3ICs2ODk4LDcgQEAgdm9pZCB0ZXN0
QnJhbmNoRXF1YWxPclVub3JkZXJlZEZsb2F0QXJnSQogICAgICAgICByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkp
OwogICAgIFZhbHVlKiBhcmd1bWVudEIgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgYik7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5j
aCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAg
ICBwcm9jLCBFcXVhbE9yVW5vcmRlcmVkLCBPcmlnaW4oKSwKQEAgLTY4OTgsMTEgKzY5MDYsMTEg
QEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJlZEZsb2F0QXJnSQogICAgICAgICAgICAg
YXJndW1lbnRCKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRl
ZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCA0MikpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29u
c3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgLTEzKSk7CiAKQEAgLTY5MTksNyArNjkyNyw3IEBA
IHZvaWQgdGVzdEJyYW5jaEVxdWFsT3JVbm9yZGVyZWREb3VibGVJbW0KIAogICAgIFZhbHVlKiBh
cmd1bWVudEEgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3VibGVWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIGEpOwogICAgIFZhbHVlKiBhcmd1bWVudEIgPSByb290LT5hcHBlbmROZXc8Q29uc3REb3Vi
bGVWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGIpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
QnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIEVxdWFsT3JVbm9yZGVyZWQsIE9yaWdpbigpLApAQCAtNjkyNywxMSArNjkz
NSwxMSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVkRG91YmxlSW1tCiAgICAgICAg
ICAgICBhcmd1bWVudEIpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVx
dWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5l
dzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMTMpKTsKIApAQCAtNjk0OSw3ICs2OTU3
LDcgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJlZEZsb2F0SW1tcwogICAgIFZhbHVl
KiBhcmd1bWVudEEgPSByb290LT5hcHBlbmROZXc8Q29uc3RGbG9hdFZhbHVlPihwcm9jLCBPcmln
aW4oKSwgYSk7CiAgICAgVmFsdWUqIGFyZ3VtZW50QiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdEZs
b2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBiKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAg
ICAgICAgICAgIHByb2MsIEVxdWFsT3JVbm9yZGVyZWQsIE9yaWdpbigpLApAQCAtNjk1NywxMSAr
Njk2NSwxMSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVkRmxvYXRJbW1zCiAgICAg
ICAgICAgICBhcmd1bWVudEIpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBG
cmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAg
ICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENv
bnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDQyKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAtMTMpKTsKIApAQCAtNjk4Myw3ICs2
OTkxLDcgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxPclVub3JkZXJlZEZsb2F0V2l0aAogICAgIFZh
bHVlKiBhcmd1bWVudDFBc0RvdWJsZSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxv
YXRUb0RvdWJsZSwgT3JpZ2luKCksIGFyZ3VtZW50MSk7CiAgICAgVmFsdWUqIGFyZ3VtZW50MkFz
RG91YmxlID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBGbG9hdFRvRG91YmxlLCBPcmln
aW4oKSwgYXJndW1lbnQyKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIEVxdWFsT3JVbm9yZGVyZWQsIE9yaWdpbigpLApAQCAtNjk5MSwxMSArNjk5OSwxMSBAQCB2
b2lkIHRlc3RCcmFuY2hFcXVhbE9yVW5vcmRlcmVkRmxvYXRXaXRoCiAgICAgICAgICAgICBhcmd1
bWVudDJBc0RvdWJsZSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1
ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3Qz
MlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3
PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIC0xMykpOwogCkBAIC03MDEwLDE2ICs3MDE4
LDE2IEBAIHZvaWQgdGVzdEJyYW5jaEZvbGQoaW50IHZhbHVlKQogICAgIEJhc2ljQmxvY2sqIHRo
ZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJv
Yy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4o
KSwgdmFsdWUpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVk
QmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBS
ZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0
MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtNzAzNCwyMyArNzA0MiwyMyBAQCB2
b2lkIHRlc3REaWFtb25kRm9sZChpbnQgdmFsdWUpCiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2Ug
PSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZG9uZSA9IHByb2MuYWRkQmxvY2so
KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIHZhbHVlKSwK
ICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VD
YXNlKSk7CiAKICAgICBVcHNpbG9uVmFsdWUqIHRoZW5SZXN1bHQgPSB0aGVuQ2FzZS0+YXBwZW5k
TmV3PFVwc2lsb25WYWx1ZT4oCiAgICAgICAgIHByb2MsIE9yaWdpbigpLCB0aGVuQ2FzZS0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKLSAgICB0aGVuQ2FzZS0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRC
bG9jayhkb25lKSk7CisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBK
dW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRvbmUpKTsKIAogICAgIFVwc2lsb25WYWx1
ZSogZWxzZVJlc3VsdCA9IGVsc2VDYXNlLT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPigKICAgICAg
ICAgcHJvYywgT3JpZ2luKCksIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgMCkpOwotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRvbmUpKTsKKyAgICBlbHNlQ2Fz
ZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVk
QmxvY2soZG9uZSkpOwogCiAgICAgVmFsdWUqIHBoaSA9IGRvbmUtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgUGhpLCBJbnQzMiwgT3JpZ2luKCkpOwogICAgIHRoZW5SZXN1bHQtPnNldFBoaShwaGkp
OwogICAgIGVsc2VSZXN1bHQtPnNldFBoaShwaGkpOwotICAgIGRvbmUtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBoaSk7CisgICAgZG9uZS0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBoaSk7CiAKICAgICBDSEVD
Syhjb21waWxlQW5kUnVuPGludD4ocHJvYykgPT0gISF2YWx1ZSk7CiB9CkBAIC03MDYyLDcgKzcw
NzAsNyBAQCB2b2lkIHRlc3RCcmFuY2hOb3RFcXVhbEZvbGRQdHIoaW50cHRyX3QgCiAgICAgQmFz
aWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxz
ZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZh
bHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJy
YW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAg
ICAgICBwcm9jLCBOb3RFcXVhbCwgT3JpZ2luKCksCkBAIC03MDcwLDExICs3MDc4LDExIEBAIHZv
aWQgdGVzdEJyYW5jaE5vdEVxdWFsRm9sZFB0cihpbnRwdHJfdCAKICAgICAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpLAogICAgICAgICBG
cmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAot
ICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEp
KTsKIAotICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2Fz
ZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDApKTsKIApAQCAtNzA4OCw3ICs3MDk2LDcgQEAgdm9pZCB0ZXN0QnJhbmNoRXF1YWxGb2xk
UHRyKGludHB0cl90IHZhbAogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9j
aygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgRXF1YWwsIE9yaWdpbigpLApAQCAt
NzA5NiwxMSArNzEwNCwxMSBAQCB2b2lkIHRlc3RCcmFuY2hFcXVhbEZvbGRQdHIoaW50cHRyX3Qg
dmFsCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIDApKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRl
ZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb25z
dDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTcxMTQsMTggKzcxMjIsMTggQEAg
dm9pZCB0ZXN0QnJhbmNoTG9hZFB0cigpCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9j
LmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7
CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkLCBw
b2ludGVyVHlwZSgpLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAg
ICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2Fz
ZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5D
YXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmln
aW4oKSwgMSkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgMCkpOwogCkBAIC03MTQ0LDE4ICs3MTUyLDE4IEBAIHZvaWQgdGVzdEJyYW5j
aExvYWQzMigpCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAg
ICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkLCBJbnQzMiwgT3JpZ2luKCks
CiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2so
dGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5DYXNlLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVuQ2FzZS0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAgIGVsc2VD
YXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBlbHNl
Q2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAt
NzE3NCwxOCArNzE4MiwxOCBAQCB2b2lkIHRlc3RCcmFuY2hMb2FkOFMoKQogICAgIEJhc2ljQmxv
Y2sqIHRoZW5DYXNlID0gcHJvYy5hZGRCbG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNl
ID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gs
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAg
ICAgICAgcHJvYywgTG9hZDhTLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5l
dzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIw
KSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhl
bHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC03MjA0LDE4ICs3MjEyLDE4IEBAIHZvaWQgdGVz
dEJyYW5jaExvYWQ4WigpCiAgICAgQmFzaWNCbG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2Nr
KCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkOFosIE9yaWdpbigp
LAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKSwKICAgICAgICAgRnJlcXVlbnRlZEJsb2Nr
KHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VDYXNlKSk7CiAKLSAgICB0aGVuQ2FzZS0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2Ut
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAxKSk7CiAKLSAgICBlbHNl
Q2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxz
ZUNhc2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAg
LTcyMzQsMTggKzcyNDIsMTggQEAgdm9pZCB0ZXN0QnJhbmNoTG9hZDE2UygpCiAgICAgQmFzaWNC
bG9jayogdGhlbkNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogZWxzZUNh
c2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
PigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5j
aCwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBMb2FkMTZTLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVu
ZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIwKSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9j
ayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29uc3QzMlZh
bHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC03MjY0LDE4ICs3MjcyLDE4IEBAIHZvaWQg
dGVzdEJyYW5jaExvYWQxNlooKQogICAgIEJhc2ljQmxvY2sqIHRoZW5DYXNlID0gcHJvYy5hZGRC
bG9jaygpOwogICAgIEJhc2ljQmxvY2sqIGVsc2VDYXNlID0gcHJvYy5hZGRCbG9jaygpOwogCi0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZDE2WiwgT3Jp
Z2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkpLAogICAgICAgICBGcmVxdWVudGVk
QmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAotICAgIHRoZW5D
YXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICB0aGVu
Q2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpKTsKIAotICAg
IGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBlbHNlQ2FzZS0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsK
IApAQCAtNzI5NSw3ICs3MzAzLDcgQEAgdm9pZCB0ZXN0QnJhbmNoOFdpdGhMb2FkOFpJbmRleCgp
CiAgICAgQmFzaWNCbG9jayogZWxzZUNhc2UgPSBwcm9jLmFkZEJsb2NrKCk7CiAKICAgICBpbnQg
bG9nU2NhbGUgPSAxOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEFi
b3ZlLCBPcmlnaW4oKSwKQEAgLTczMTEsMTEgKzczMTksMTEgQEAgdm9pZCB0ZXN0QnJhbmNoOFdp
dGhMb2FkOFpJbmRleCgpCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgMjUwKSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayh0aGVuQ2Fz
ZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCi0gICAgdGhlbkNhc2UtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmRO
ZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSkpOwogCi0gICAgZWxzZUNhc2UtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFs
dWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5h
cHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBAIC03MzU3LDcg
KzczNjUsNyBAQCB2b2lkIHRlc3RDb21wbGV4KHVuc2lnbmVkIG51bVZhcnMsIHVuc2lnCiAgICAg
ICAgICAgICBCYXNpY0Jsb2NrKiBlbHNlQmxvY2sgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgICAg
ICAgICBCYXNpY0Jsb2NrKiBjb250aW51YXRpb24gPSBwcm9jLmFkZEJsb2NrKCk7CiAKLSAgICAg
ICAgICAgIGN1cnJlbnQtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgICAgICAgICAgY3Vy
cmVudC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgICAgIHByb2MsIEJyYW5j
aCwgT3JpZ2luKCksIHZhcnNbcHJlZGljYXRlVmFySW5kZXhdLAogICAgICAgICAgICAgICAgIEZy
ZXF1ZW50ZWRCbG9jayh0aGVuQmxvY2spLCBGcmVxdWVudGVkQmxvY2soZWxzZUJsb2NrKSk7CiAK
QEAgLTczNjYsMTQgKzczNzQsMTQgQEAgdm9pZCB0ZXN0Q29tcGxleCh1bnNpZ25lZCBudW1WYXJz
LCB1bnNpZwogICAgICAgICAgICAgICAgIHRoZW5CbG9jay0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBBZGQsIE9yaWdpbigpLCB2YXJzW3RoZW5JbmNWYXJJbmRleF0sIG9uZSkpOwogICAgICAgICAg
ICAgVXBzaWxvblZhbHVlKiB0aGVuRWxzZVJlc3VsdCA9IHRoZW5CbG9jay0+YXBwZW5kTmV3PFVw
c2lsb25WYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksIHZhcnNbZWxzZUlu
Y1ZhckluZGV4XSk7Ci0gICAgICAgICAgICB0aGVuQmxvY2stPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soY29udGludWF0aW9uKSk7
CisgICAgICAgICAgICB0aGVuQmxvY2stPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1w
LCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGNvbnRpbnVhdGlvbikpOwogCiAgICAgICAgICAg
ICBVcHNpbG9uVmFsdWUqIGVsc2VFbHNlUmVzdWx0ID0gZWxzZUJsb2NrLT5hcHBlbmROZXc8VXBz
aWxvblZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwKICAgICAgICAgICAg
ICAgICBlbHNlQmxvY2stPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgdmFy
c1tlbHNlSW5jVmFySW5kZXhdLCBvbmUpKTsKICAgICAgICAgICAgIFVwc2lsb25WYWx1ZSogZWxz
ZVRoZW5SZXN1bHQgPSBlbHNlQmxvY2stPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KAogICAgICAg
ICAgICAgICAgIHByb2MsIE9yaWdpbigpLCB2YXJzW3RoZW5JbmNWYXJJbmRleF0pOwotICAgICAg
ICAgICAgZWxzZUJsb2NrLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmln
aW4oKSwgRnJlcXVlbnRlZEJsb2NrKGNvbnRpbnVhdGlvbikpOworICAgICAgICAgICAgZWxzZUJs
b2NrLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50
ZWRCbG9jayhjb250aW51YXRpb24pKTsKIAogICAgICAgICAgICAgVmFsdWUqIHRoZW5QaGkgPSBj
b250aW51YXRpb24tPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBJbnQzMiwgT3JpZ2luKCkp
OwogICAgICAgICAgICAgdGhlblRoZW5SZXN1bHQtPnNldFBoaSh0aGVuUGhpKTsKQEAgLTczOTgs
NyArNzQwNiw3IEBAIHZvaWQgdGVzdENvbXBsZXgodW5zaWduZWQgbnVtVmFycywgdW5zaWcKICAg
ICAgICAgICAgIAogICAgICAgICAgICAgVmFsdWUqIHN0YXJ0SW5kZXggPSB2YXJzWygoaSA+PiAx
KSArIDEpICUgbnVtVmFyc107CiAgICAgICAgICAgICBWYWx1ZSogc3RhcnRTdW0gPSBjdXJyZW50
LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCk7Ci0gICAgICAgICAg
ICBjdXJyZW50LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgICAgIGN1cnJlbnQt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgICAgICBwcm9jLCBCcmFuY2gsIE9y
aWdpbigpLCBzdGFydEluZGV4LAogICAgICAgICAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhsb29w
RW50cnkpLCBGcmVxdWVudGVkQmxvY2sobG9vcFNraXApKTsKIApAQCAtNzQwNiw3ICs3NDE0LDcg
QEAgdm9pZCB0ZXN0Q29tcGxleCh1bnNpZ25lZCBudW1WYXJzLCB1bnNpZwogICAgICAgICAgICAg
ICAgIHByb2MsIE9yaWdpbigpLCBzdGFydEluZGV4KTsKICAgICAgICAgICAgIFVwc2lsb25WYWx1
ZSogc3RhcnRTdW1Gb3JCb2R5ID0gbG9vcEVudHJ5LT5hcHBlbmROZXc8VXBzaWxvblZhbHVlPigK
ICAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgc3RhcnRTdW0pOwotICAgICAgICAgICAg
bG9vcEVudHJ5LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwg
RnJlcXVlbnRlZEJsb2NrKGxvb3BCb2R5KSk7CisgICAgICAgICAgICBsb29wRW50cnktPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGxv
b3BCb2R5KSk7CiAKICAgICAgICAgICAgIFZhbHVlKiBib2R5SW5kZXggPSBsb29wQm9keS0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBQaGksIEludDMyLCBPcmlnaW4oKSk7CiAgICAgICAgICAgICBz
dGFydEluZGV4Rm9yQm9keS0+c2V0UGhpKGJvZHlJbmRleCk7CkBAIC03NDMxLDE5ICs3NDM5LDE5
IEBAIHZvaWQgdGVzdENvbXBsZXgodW5zaWduZWQgbnVtVmFycywgdW5zaWcKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGxvb3BCb2R5LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
PigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4o
KSwgbnVtVmFycyAtIDEpKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9vcEJvZHkt
PmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCAyKSkpKSk7Ci0gICAgICAg
ICAgICBsb29wQm9keS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgICAgICBsb29w
Qm9keS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgICAgIHByb2MsIEJyYW5j
aCwgT3JpZ2luKCksIG5ld0JvZHlJbmRleCwKICAgICAgICAgICAgICAgICBGcmVxdWVudGVkQmxv
Y2sobG9vcFJlZW50cnkpLCBGcmVxdWVudGVkQmxvY2sobG9vcEV4aXQpKTsKIAogICAgICAgICAg
ICAgbG9vcFJlZW50cnktPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KHByb2MsIE9yaWdpbigpLCBu
ZXdCb2R5SW5kZXgsIGJvZHlJbmRleCk7CiAgICAgICAgICAgICBsb29wUmVlbnRyeS0+YXBwZW5k
TmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIG5ld0JvZHlTdW0sIGJvZHlTdW0pOwot
ICAgICAgICAgICAgbG9vcFJlZW50cnktPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1
bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sobG9vcEJvZHkpKTsKKyAgICAgICAgICAgIGxv
b3BSZWVudHJ5LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwgT3JpZ2luKCksIEZy
ZXF1ZW50ZWRCbG9jayhsb29wQm9keSkpOwogCiAgICAgICAgICAgICBVcHNpbG9uVmFsdWUqIGV4
aXRTdW0gPSBsb29wRXhpdC0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2luKCks
IG5ld0JvZHlTdW0pOwotICAgICAgICAgICAgbG9vcEV4aXQtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soY29udGludWF0aW9uKSk7
CisgICAgICAgICAgICBsb29wRXhpdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAs
IE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soY29udGludWF0aW9uKSk7CiAKICAgICAgICAgICAg
IFVwc2lsb25WYWx1ZSogc2tpcFN1bSA9IGxvb3BTa2lwLT5hcHBlbmROZXc8VXBzaWxvblZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgc3RhcnRTdW0pOwotICAgICAgICAgICAgbG9vcFNraXAtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2so
Y29udGludWF0aW9uKSk7CisgICAgICAgICAgICBsb29wU2tpcC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soY29udGludWF0aW9uKSk7
CiAKICAgICAgICAgICAgIFZhbHVlKiBmaW5hbFN1bSA9IGNvbnRpbnVhdGlvbi0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBQaGksIEludDMyLCBPcmlnaW4oKSk7CiAgICAgICAgICAgICBleGl0U3Vt
LT5zZXRQaGkoZmluYWxTdW0pOwpAQCAtNzQ1NCw3ICs3NDYyLDcgQEAgdm9pZCB0ZXN0Q29tcGxl
eCh1bnNpZ25lZCBudW1WYXJzLCB1bnNpZwogICAgICAgICB9CiAgICAgfQogCi0gICAgY3VycmVu
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdmFyc1sw
XSk7CisgICAgY3VycmVudC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHZhcnNbMF0pOwogCiAgICAgY29tcGlsZShwcm9jKTsKIApAQCAtNzQ4MCw3ICs3NDg4
LDcgQEAgdm9pZCB0ZXN0U2ltcGxlUGF0Y2hwb2ludCgpCiAgICAgICAgICAgICBDSEVDSyhwYXJh
bXNbMl0uaXNHUFIoKSk7CiAgICAgICAgICAgICBhZGQzMihqaXQsIHBhcmFtc1sxXS5ncHIoKSwg
cGFyYW1zWzJdLmdwcigpLCBwYXJhbXNbMF0uZ3ByKCkpOwogICAgICAgICB9KTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBv
aW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcGF0Y2hwb2ludCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywg
MSwgMikgPT0gMyk7CiB9CkBAIC03NTExLDcgKzc1MTksNyBAQCB2b2lkIHRlc3RTaW1wbGVQYXRj
aHBvaW50V2l0aG91dE91cHV0Q2xvCiAgICAgICAgIH0pOwogCiAgICAgVmFsdWUqIHJlc3VsdCA9
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYXJnMSwgYXJnMik7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9j
LCAxLCAyKSA9PSAzKTsKIH0KQEAgLTc1NjAsNyArNzU2OCw3IEBAIHZvaWQgdGVzdFNpbXBsZVBh
dGNocG9pbnRXaXRoT3VwdXRDbG9iYmUKIAogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIHBhdGNocG9pbnQsCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgYXJnMSwgYXJnMikpOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywg
MSwgMikgPT0gNTgpOwogfQpAQCAtNzU5MSw3ICs3NTk5LDcgQEAgdm9pZCB0ZXN0U2ltcGxlUGF0
Y2hwb2ludFdpdGhvdXRPdXB1dENsbwogICAgICAgICB9KTsKIAogICAgIFZhbHVlKiByZXN1bHQg
PSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEFkZCwgT3JpZ2luKCksIGFyZzEsIGFyZzIp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGRvdWJsZT4o
cHJvYywgMS41LCAyLjUpID09IDQpOwogfQpAQCAtNzYzMiw3ICs3NjQwLDcgQEAgdm9pZCB0ZXN0
U2ltcGxlUGF0Y2hwb2ludFdpdGhPdXB1dENsb2JiZQogCiAgICAgVmFsdWUqIHJlc3VsdCA9IHJv
b3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQWRkLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBBZGQsIE9yaWdpbigpLCBhcmcxLCBh
cmcyKSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48ZG91
YmxlPihwcm9jLCAxLjUsIDIuNSkgPT0gNTkuNik7CiB9CkBAIC03NjU3LDcgKzc2NjUsNyBAQCB2
b2lkIHRlc3RQYXRjaHBvaW50V2l0aEVhcmx5Q2xvYmJlcigpCiAgICAgICAgICAgICAgICAgYWRk
MzIoaml0LCBwYXJhbXNbMV0uZ3ByKCksIHBhcmFtc1syXS5ncHIoKSwgcGFyYW1zWzBdLmdwcigp
KTsKICAgICAgICAgICAgIH0pOwogCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOworICAgICAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7
CiAKICAgICAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQ+KHByb2MsIDEsIDIpID09IDMpOwog
ICAgIH07CkBAIC03NjkwLDcgKzc2OTgsNyBAQCB2b2lkIHRlc3RQYXRjaHBvaW50Q2FsbEFyZygp
CiAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFt
ZVJlZ2lzdGVyLCBwYXJhbXNbMl0ub2Zmc2V0RnJvbUZQKCkpLAogICAgICAgICAgICAgICAgIHBh
cmFtc1swXS5ncHIoKSk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsK
IAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAxLCAyKSA9PSAzKTsKIH0KQEAg
LTc3MTMsNyArNzcyMSw3IEBAIHZvaWQgdGVzdFBhdGNocG9pbnRGaXhlZFJlZ2lzdGVyKCkKICAg
ICAgICAgICAgIENIRUNLKHBhcmFtc1syXSA9PSBWYWx1ZVJlcChHUFJJbmZvOjpyZWdUMSkpOwog
ICAgICAgICAgICAgYWRkMzIoaml0LCBHUFJJbmZvOjpyZWdUMCwgR1BSSW5mbzo6cmVnVDEsIHBh
cmFtc1swXS5ncHIoKSk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsK
IAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAxLCAyKSA9PSAzKTsKIH0KQEAg
LTc3MzcsNyArNzc0NSw3IEBAIHZvaWQgdGVzdFBhdGNocG9pbnRBbnkoVmFsdWVSZXAgcmVwKQog
ICAgICAgICAgICAgQ0hFQ0socGFyYW1zWzJdLmlzR1BSKCkpOwogICAgICAgICAgICAgYWRkMzIo
aml0LCBwYXJhbXNbMV0uZ3ByKCksIHBhcmFtc1syXS5ncHIoKSwgcGFyYW1zWzBdLmdwcigpKTsK
ICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZh
bHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOwogCiAgICAgQ0hFQ0soY29t
cGlsZUFuZFJ1bjxpbnQ+KHByb2MsIDEsIDIpID09IDMpOwogfQpAQCAtNzc3Myw3ICs3NzgxLDcg
QEAgdm9pZCB0ZXN0UGF0Y2hwb2ludEdQU2NyYXRjaCgpCiAgICAgICAgICAgICBDSEVDSyghcGFy
YW1zLnVuYXZhaWxhYmxlUmVnaXN0ZXJzKCkuZ2V0KHBhcmFtcy5ncFNjcmF0Y2goMSkpKTsKICAg
ICAgICAgICAgIGFkZDMyKGppdCwgcGFyYW1zWzFdLmdwcigpLCBwYXJhbXNbMl0uZ3ByKCksIHBh
cmFtc1swXS5ncHIoKSk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsK
IAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAxLCAyKSA9PSAzKTsKIH0KQEAg
LTc4MDMsNyArNzgxMSw3IEBAIHZvaWQgdGVzdFBhdGNocG9pbnRGUFNjcmF0Y2goKQogICAgICAg
ICAgICAgQ0hFQ0soIXBhcmFtcy51bmF2YWlsYWJsZVJlZ2lzdGVycygpLmdldChwYXJhbXMuZnBT
Y3JhdGNoKDEpKSk7CiAgICAgICAgICAgICBhZGQzMihqaXQsIHBhcmFtc1sxXS5ncHIoKSwgcGFy
YW1zWzJdLmdwcigpLCBwYXJhbXNbMF0uZ3ByKCkpOwogICAgICAgICB9KTsKLSAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcGF0Y2hwb2ludCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywgMSwg
MikgPT0gMyk7CiB9CkBAIC03ODQ1LDcgKzc4NTMsNyBAQCB2b2lkIHRlc3RQYXRjaHBvaW50TG90
c09mTGF0ZUFueXMoKQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAg
fSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcGF0Y2hwb2ludCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1
bjxpbnQ+KHByb2MpID09ICh0aGluZ3Muc2l6ZSgpICogKHRoaW5ncy5zaXplKCkgLSAxKSkgLyAy
KTsKIH0KQEAgLTc4NzMsNyArNzg4MSw3IEBAIHZvaWQgdGVzdFBhdGNocG9pbnRBbnlJbW0oVmFs
dWVSZXAgcmVwKQogICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKHN0
YXRpY19jYXN0PGludDMyX3Q+KHBhcmFtc1syXS52YWx1ZSgpKSksCiAgICAgICAgICAgICAgICAg
cGFyYW1zWzFdLmdwcigpLCBwYXJhbXNbMF0uZ3ByKCkpOwogICAgICAgICB9KTsKLSAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBv
aW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcGF0Y2hwb2ludCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywg
MSkgPT0gNDMpOwogfQpAQCAtNzg5OSw3ICs3OTA3LDcgQEAgdm9pZCB0ZXN0UGF0Y2hwb2ludE1h
bnlJbW1zKCkKICAgICAgICAgICAgIENIRUNLKHBhcmFtc1syXSA9PSBWYWx1ZVJlcDo6Y29uc3Rh
bnQoNDMwMDAwMDAwMDAwMDBsbCkpOwogICAgICAgICAgICAgQ0hFQ0socGFyYW1zWzNdID09IFZh
bHVlUmVwOjpjb25zdGFudChiaXR3aXNlX2Nhc3Q8aW50NjRfdD4oNDIuNSkpKTsKICAgICAgICAg
fSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCkBA
IC03OTI1LDcgKzc5MzMsNyBAQCB2b2lkIHRlc3RQYXRjaHBvaW50V2l0aFJlZ2lzdGVyUmVzdWx0
KCkKICAgICAgICAgICAgIENIRUNLKHBhcmFtc1syXS5pc0dQUigpKTsKICAgICAgICAgICAgIGFk
ZDMyKGppdCwgcGFyYW1zWzFdLmdwcigpLCBwYXJhbXNbMl0uZ3ByKCksIEdQUkluZm86Om5vbkFy
Z0dQUjApOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CiAKICAgICBD
SEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywgMSwgMikgPT0gMyk7CiB9CkBAIC03OTUxLDcg
Kzc5NTksNyBAQCB2b2lkIHRlc3RQYXRjaHBvaW50V2l0aFN0YWNrQXJndW1lbnRSZXN1CiAgICAg
ICAgICAgICBqaXQuYWRkMzIocGFyYW1zWzFdLmdwcigpLCBwYXJhbXNbMl0uZ3ByKCksIGppdC5z
Y3JhdGNoUmVnaXN0ZXIoKSk7CiAgICAgICAgICAgICBqaXQuc3RvcmUzMihqaXQuc2NyYXRjaFJl
Z2lzdGVyKCksIENDYWxsSGVscGVyczo6QWRkcmVzcyhDQ2FsbEhlbHBlcnM6OnN0YWNrUG9pbnRl
clJlZ2lzdGVyLCAwKSk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBwYXRjaHBvaW50KTsK
IAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50Pihwcm9jLCAxLCAyKSA9PSAzKTsKIH0KQEAg
LTc5ODAsNyArNzk4OCw3IEBAIHZvaWQgdGVzdFBhdGNocG9pbnRXaXRoQW55UmVzdWx0KCkKICAg
ICAgICAgICAgIGppdC5jb252ZXJ0SW50MzJUb0RvdWJsZShHUFJJbmZvOjpyZWdUMCwgRlBSSW5m
bzo6ZnBSZWdUMCk7CiAgICAgICAgICAgICBqaXQuc3RvcmVEb3VibGUoRlBSSW5mbzo6ZnBSZWdU
MCwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBwYXJh
bXNbMF0ub2Zmc2V0RnJvbUZQKCkpKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3
PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNo
cG9pbnQpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxkb3VibGU+KHByb2MsIDEsIDIpID09
IDMpOwogfQpAQCAtODAwMiw3ICs4MDEwLDcgQEAgdm9pZCB0ZXN0U2ltcGxlQ2hlY2soKQogICAg
ICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0
KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsK
IAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CkBAIC04MDIxLDcgKzgwMjksNyBAQCB2
b2lkIHRlc3RDaGVja0ZhbHNlKCkKICAgICAgICAgWyZdIChDQ2FsbEhlbHBlcnMmLCBjb25zdCBT
dGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7CiAgICAgICAgICAgICBDSEVDSyghIlRoaXMgc2hv
dWxkIG5vdCBoYXZlIGV4ZWN1dGVkIik7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CkBA
IC04MDQ3LDcgKzgwNTUsNyBAQCB2b2lkIHRlc3RDaGVja1RydWUoKQogICAgICAgICAgICAgaml0
LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAg
IH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGF1dG8g
Y29kZSA9IGNvbXBpbGUocHJvYyk7CkBAIC04MDc4LDcgKzgwODYsNyBAQCB2b2lkIHRlc3RDaGVj
a0xlc3NUaGFuKCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAg
ICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2Ms
IE9yaWdpbigpLCAwKSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwpAQCAtODEy
NCw3ICs4MTMyLDcgQEAgdm9pZCB0ZXN0Q2hlY2tNZWdhQ29tYm8oKQogICAgICAgICAgICAgaml0
LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAg
IH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcm9vdC0+
YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIAogICAgIGF1dG8g
Y29kZSA9IGNvbXBpbGUocHJvYyk7CkBAIC04MTc5LDcgKzgxODcsNyBAQCB2b2lkIHRlc3RDaGVj
a1RyaWNreU1lZ2FDb21ibygpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUo
KTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAg
ICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsK
QEAgLTgyNDMsNyArODI1MSw3IEBAIHZvaWQgdGVzdENoZWNrVHdvTWVnYUNvbWJvcygpCiAgICAg
ICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQo
KTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwog
CiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKQEAgLTgyOTMsNyArODMwMSw3IEBAIHZv
aWQgdGVzdENoZWNrVHdvTm9uUmVkdW5kYW50TWVnYUNvbWJvcygKICAgICAgICAgcm9vdC0+YXBw
ZW5kTmV3PE1lbW9yeVZhbHVlPihwcm9jLCBMb2FkOFMsIE9yaWdpbigpLCBwdHIpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpKTsKIAot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwgYnJhbmNoUHJlZGlj
YXRlLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2so
ZWxzZUNhc2UpKTsKICAgICAKQEAgLTgzMDksNyArODMxNyw3IEBAIHZvaWQgdGVzdENoZWNrVHdv
Tm9uUmVkdW5kYW50TWVnYUNvbWJvcygKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGls
b2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICB0aGVuQ2Fz
ZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgdGhlbkNhc2UtPmFwcGVu
ZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MykpOwogCiAgICAgQ2hlY2tWYWx1
ZSogY2hlY2syID0gZWxzZUNhc2UtPmFwcGVuZE5ldzxDaGVja1ZhbHVlPihwcm9jLCBDaGVjaywg
T3JpZ2luKCksIGNoZWNrUHJlZGljYXRlKTsKQEAgLTgzMjQsNyArODMzMiw3IEBAIHZvaWQgdGVz
dENoZWNrVHdvTm9uUmVkdW5kYW50TWVnYUNvbWJvcygKICAgICAgICAgICAgIGppdC5lbWl0RnVu
Y3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAg
ICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgZWxzZUNh
c2UtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0NSkpOwogCiAgICAg
YXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKQEAgLTgzNzgsNyArODM4Niw3IEBAIHZvaWQgdGVz
dENoZWNrQWRkSW1tKCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwog
ICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgSVRvRCwgT3JpZ2luKCksIGNoZWNrQWRkKSk7CiAKQEAgLTg0MTQsNyArODQyMiw3IEBA
IHZvaWQgdGVzdENoZWNrQWRkSW1tQ29tbXV0ZSgpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0
aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBjaGVja0FkZCkpOwogCkBAIC04
NDQ5LDcgKzg0NTcsNyBAQCB2b2lkIHRlc3RDaGVja0FkZEltbVNvbWVSZWdpc3RlcigpCiAgICAg
ICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQo
KTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigp
LCBjaGVja0FkZCkpOwogCkBAIC04NDg2LDcgKzg0OTQsNyBAQCB2b2lkIHRlc3RDaGVja0FkZCgp
CiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGpp
dC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9y
aWdpbigpLCBjaGVja0FkZCkpOwogCkBAIC04NTE5LDcgKzg1MjcsNyBAQCB2b2lkIHRlc3RDaGVj
a0FkZDY0KCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAg
ICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywg
SVRvRCwgT3JpZ2luKCksIGNoZWNrQWRkKSk7CiAKQEAgLTg1NDIsNyArODU1MCw3IEBAIHZvaWQg
dGVzdENoZWNrQWRkRm9sZChpbnQgYSwgaW50IGIpCiAgICAgICAgIFsmXSAoQ0NhbGxIZWxwZXJz
JiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgewogICAgICAgICAgICAgQ0hFQ0so
ISJTaG91bGQgaGF2ZSBiZWVuIGZvbGRlZCIpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja0FkZCk7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNo
ZWNrQWRkKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKQEAgLTg1NjMsNyAr
ODU3MSw3IEBAIHZvaWQgdGVzdENoZWNrQWRkRm9sZEZhaWwoaW50IGEsIGludCBiKQogICAgICAg
ICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7
CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIGNoZWNrQWRkKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFs
dWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tBZGQpOwogCiAgICAgYXV0byBjb2RlID0g
Y29tcGlsZShwcm9jKTsKIApAQCAtODYwMiw3ICs4NjEwLDcgQEAgdm9pZCB0ZXN0Q2hlY2tBZGRB
cmd1bWVudEFsaWFzaW5nNjQoKQogICAgIENoZWNrVmFsdWUqIGNoZWNrQWRkMyA9IHJvb3QtPmFw
cGVuZE5ldzxDaGVja1ZhbHVlPihwcm9jLCBDaGVja0FkZCwgT3JpZ2luKCksIGNoZWNrQWRkMSwg
Y2hlY2tBZGQyKTsKICAgICBjaGVja0FkZDMtPnNldEdlbmVyYXRvcihbJl0gKENDYWxsSGVscGVy
cyYgaml0LCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7IGppdC5vb3BzKCk7IH0p
OwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgY2hlY2tBZGQzKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tBZGQzKTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48
aW50NjRfdD4ocHJvYywgMSwgMiwgMykgPT0gOCk7CiB9CkBAIC04NjQ1LDcgKzg2NTMsNyBAQCB2
b2lkIHRlc3RDaGVja0FkZEFyZ3VtZW50QWxpYXNpbmczMigpCiAgICAgQ2hlY2tWYWx1ZSogY2hl
Y2tBZGQzID0gcm9vdC0+YXBwZW5kTmV3PENoZWNrVmFsdWU+KHByb2MsIENoZWNrQWRkLCBPcmln
aW4oKSwgY2hlY2tBZGQxLCBjaGVja0FkZDIpOwogICAgIGNoZWNrQWRkMy0+c2V0R2VuZXJhdG9y
KFsmXSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYp
IHsgaml0Lm9vcHMoKTsgfSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja0FkZDMpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja0FkZDMpOwogCiAgICAgQ0hF
Q0soY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCAxLCAyLCAzKSA9PSA4KTsKIH0KQEAgLTg2
NzAsNyArODY3OCw3IEBAIHZvaWQgdGVzdENoZWNrQWRkU2VsZk92ZXJmbG93NjQoKQogICAgIG9w
YXF1ZVVzZS0+YXBwZW5kKENvbnN0cmFpbmVkVmFsdWUoYXJnLCBWYWx1ZVJlcDo6U29tZVJlZ2lz
dGVyKSk7CiAgICAgb3BhcXVlVXNlLT5zZXRHZW5lcmF0b3IoWyZdIChDQ2FsbEhlbHBlcnMmLCBj
b25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7IH0pOwogCi0gICAgcm9vdC0+YXBwZW5k
TmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tBZGQpOworICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVj
a0FkZCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC04NzAxLDcgKzg3
MDksNyBAQCB2b2lkIHRlc3RDaGVja0FkZFNlbGZPdmVyZmxvdzMyKCkKICAgICBvcGFxdWVVc2Ut
PmFwcGVuZChDb25zdHJhaW5lZFZhbHVlKGFyZywgVmFsdWVSZXA6OlNvbWVSZWdpc3RlcikpOwog
ICAgIG9wYXF1ZVVzZS0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3Rh
Y2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeyB9KTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrQWRkKTsKKyAgICByb290LT5h
cHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tBZGQpOwog
CiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIApAQCAtODczNCw3ICs4NzQyLDcgQEAg
dm9pZCB0ZXN0Q2hlY2tTdWJJbW0oKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxv
Z3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tTdWIpKTsKIApAQCAtODc3Niw3ICs4
Nzg0LDcgQEAgdm9pZCB0ZXN0Q2hlY2tTdWJCYWRJbW0oKQogICAgICAgICAgICAgaml0LmVtaXRG
dW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwot
ICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tTdWIpKTsKIApA
QCAtODgxMyw3ICs4ODIxLDcgQEAgdm9pZCB0ZXN0Q2hlY2tTdWIoKQogICAgICAgICAgICAgaml0
LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAg
IH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tTdWIp
KTsKIApAQCAtODg1MSw3ICs4ODU5LDcgQEAgdm9pZCB0ZXN0Q2hlY2tTdWI2NCgpCiAgICAgICAg
ICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsK
ICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0QsIE9yaWdpbigpLCBj
aGVja1N1YikpOwogCkBAIC04ODc0LDcgKzg4ODIsNyBAQCB2b2lkIHRlc3RDaGVja1N1YkZvbGQo
aW50IGEsIGludCBiKQogICAgICAgICBbJl0gKENDYWxsSGVscGVycyYsIGNvbnN0IFN0YWNrbWFw
R2VuZXJhdGlvblBhcmFtcyYpIHsKICAgICAgICAgICAgIENIRUNLKCEiU2hvdWxkIGhhdmUgYmVl
biBmb2xkZWQiKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tTdWIpOworICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja1N1Yik7CiAKICAgICBh
dXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC04ODk1LDcgKzg5MDMsNyBAQCB2b2lkIHRl
c3RDaGVja1N1YkZvbGRGYWlsKGludCBhLCBpbnQgYikKICAgICAgICAgICAgIGppdC5lbWl0RnVu
Y3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBj
aGVja1N1Yik7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwg
T3JpZ2luKCksIGNoZWNrU3ViKTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAK
QEAgLTg5MjIsNyArODkzMCw3IEBAIHZvaWQgdGVzdENoZWNrTmVnKCkKICAgICAgICAgICAgIGpp
dC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAg
ICB9KTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGNoZWNrTmVn
KSk7CiAKQEAgLTg5NTIsNyArODk2MCw3IEBAIHZvaWQgdGVzdENoZWNrTmVnNjQoKQogICAgICAg
ICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7
CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwg
Y2hlY2tOZWcpKTsKIApAQCAtODk4OSw3ICs4OTk3LDcgQEAgdm9pZCB0ZXN0Q2hlY2tNdWwoKQog
ICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQu
cmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmln
aW4oKSwgY2hlY2tNdWwpKTsKIApAQCAtOTAzMCw3ICs5MDM4LDcgQEAgdm9pZCB0ZXN0Q2hlY2tN
dWxNZW1vcnkoKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAg
ICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250
cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9j
LCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tNdWwpKTsKIApAQCAtOTA3Nyw3ICs5MDg1LDcgQEAgdm9p
ZCB0ZXN0Q2hlY2tNdWwyKCkKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgp
OwogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4ocHJvYywgSVRvRCwgT3JpZ2luKCksIGNoZWNrTXVsKSk7CiAKQEAgLTkxMTAsNyArOTExOCw3
IEBAIHZvaWQgdGVzdENoZWNrTXVsNjQoKQogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVw
aWxvZ3VlKCk7CiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAgICAgIH0pOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBJVG9ELCBPcmlnaW4oKSwgY2hlY2tNdWwpKTsKIApAQCAtOTEzMyw3
ICs5MTQxLDcgQEAgdm9pZCB0ZXN0Q2hlY2tNdWxGb2xkKGludCBhLCBpbnQgYikKICAgICAgICAg
WyZdIChDQ2FsbEhlbHBlcnMmLCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7CiAg
ICAgICAgICAgICBDSEVDSyghIlNob3VsZCBoYXZlIGJlZW4gZm9sZGVkIik7CiAgICAgICAgIH0p
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2lu
KCksIGNoZWNrTXVsKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgY2hlY2tNdWwpOwogCiAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9j
KTsKIApAQCAtOTE1NCw3ICs5MTYyLDcgQEAgdm9pZCB0ZXN0Q2hlY2tNdWxGb2xkRmFpbChpbnQg
YSwgaW50IGIpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAg
ICAgICAgIGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRy
b2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2hlY2tNdWwpOworICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja011bCk7CiAK
ICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCkBAIC05MTkzLDcgKzkyMDEsNyBAQCB2
b2lkIHRlc3RDaGVja011bEFyZ3VtZW50QWxpYXNpbmc2NCgpCiAgICAgQ2hlY2tWYWx1ZSogY2hl
Y2tNdWwzID0gcm9vdC0+YXBwZW5kTmV3PENoZWNrVmFsdWU+KHByb2MsIENoZWNrTXVsLCBPcmln
aW4oKSwgY2hlY2tNdWwxLCBjaGVja011bDIpOwogICAgIGNoZWNrTXVsMy0+c2V0R2VuZXJhdG9y
KFsmXSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYp
IHsgaml0Lm9vcHMoKTsgfSk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja011bDMpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja011bDMpOwogCiAgICAgQ0hF
Q0soY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCAyLCAzLCA0KSA9PSA3Mik7CiB9CkBAIC05
MjM2LDcgKzkyNDQsNyBAQCB2b2lkIHRlc3RDaGVja011bEFyZ3VtZW50QWxpYXNpbmczMigpCiAg
ICAgQ2hlY2tWYWx1ZSogY2hlY2tNdWwzID0gcm9vdC0+YXBwZW5kTmV3PENoZWNrVmFsdWU+KHBy
b2MsIENoZWNrTXVsLCBPcmlnaW4oKSwgY2hlY2tNdWwxLCBjaGVja011bDIpOwogICAgIGNoZWNr
TXVsMy0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNrbWFw
R2VuZXJhdGlvblBhcmFtcyYpIHsgaml0Lm9vcHMoKTsgfSk7CiAKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVja011bDMpOworICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjaGVj
a011bDMpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCAyLCAzLCA0
KSA9PSA3Mik7CiB9CkBAIC05MjY4LDcgKzkyNzYsNyBAQCB2b2lkIHRlc3RDaGVja011bDY0U1No
cigpCiAgICAgICAgICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAg
IGppdC5yZXQoKTsKICAgICAgICAgfSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIElUb0Qs
IE9yaWdpbigpLCBjaGVja011bCkpOwogCkBAIC05Mjk0LDcgKzkzMDIsNyBAQCB2b2lkIGdlbmVy
aWNUZXN0Q29tcGFyZSgKICAgICAgICAgVmFsdWUqIHJpZ2h0VmFsdWUgPSByaWdodEZ1bmN0b3Io
cm9vdCwgcHJvYyk7CiAgICAgICAgIFZhbHVlKiBjb21wYXJpc29uUmVzdWx0ID0gcm9vdC0+YXBw
ZW5kTmV3PFZhbHVlPihwcm9jLCBvcGNvZGUsIE9yaWdpbigpLCBsZWZ0VmFsdWUsIHJpZ2h0VmFs
dWUpOwogICAgICAgICAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgICAgIHByb2MsIE5vdEVxdWFsLCBPcmlnaW4oKSwKQEAgLTkzMTQsNyArOTMyMiw3
IEBAIHZvaWQgZ2VuZXJpY1Rlc3RDb21wYXJlKAogICAgICAgICBWYWx1ZSogbGVmdFZhbHVlID0g
bGVmdEZ1bmN0b3Iocm9vdCwgcHJvYyk7CiAgICAgICAgIFZhbHVlKiByaWdodFZhbHVlID0gcmln
aHRGdW5jdG9yKHJvb3QsIHByb2MpOwogCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAg
ICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBvcGNvZGUsIE9yaWdpbigpLCBsZWZ0VmFsdWUsIHJpZ2h0VmFsdWUpLAogICAg
ICAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRoZW5DYXNlKSwgRnJlcXVlbnRlZEJsb2NrKGVsc2VD
YXNlKSk7CkBAIC05MzI4LDkgKzkzMzYsOSBAQCB2b2lkIGdlbmVyaWNUZXN0Q29tcGFyZSgKICAg
ICAgICAgICAgICAgICBDSEVDSyhwYXJhbXNbMF0uaXNHUFIoKSk7CiAgICAgICAgICAgICAgICAg
aml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoMSksIHBhcmFtc1swXS5ncHIoKSk7
CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9pbnQpOworICAgICAgICB0aGVuQ2Fz
ZS0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHBhdGNocG9p
bnQpOwogCi0gICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAg
ICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnN0MzJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKIApAQCAtOTU2OSw3ICs5NTc3LDcgQEAgdm9pZCB0
ZXN0RXF1YWxEb3VibGUoZG91YmxlIGxlZnQsIGRvdWJsZQogewogICAgIFByb2NlZHVyZSBwcm9j
OwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgRXF1YWwsIE9yaWdpbigpLApAQCAtOTU4OCw3ICs5
NTk2LDcgQEAgdm9pZCB0ZXN0Q2FsbFNpbXBsZShpbnQgYSwgaW50IGIpCiB7CiAgICAgUHJvY2Vk
dXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFw
cGVuZE5ldzxDQ2FsbFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEludDMyLCBPcmlnaW4oKSwK
QEAgLTk2MDYsMTYgKzk2MTQsMTYgQEAgdm9pZCB0ZXN0Q2FsbFJhcmUoaW50IGEsIGludCBiKQog
ICAgIEJhc2ljQmxvY2sqIGNvbW1vbiA9IHByb2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2Nr
KiByYXJlID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBC
cmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1
ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCksCiAgICAgICAgIEZyZXF1
ZW50ZWRCbG9jayhyYXJlLCBGcmVxdWVuY3lDbGFzczo6UmFyZSksCiAgICAgICAgIEZyZXF1ZW50
ZWRCbG9jayhjb21tb24pKTsKIAotICAgIGNvbW1vbi0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgY29tbW9uLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVy
biwgT3JpZ2luKCksIGNvbW1vbi0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIDApKTsKICAgICAKLSAgICByYXJlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
YXJlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJhcmUtPmFwcGVuZE5ldzxDQ2FsbFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIEludDMyLCBPcmlnaW4oKSwKQEAgLTk2MzMsMTYgKzk2NDEsMTYgQEAgdm9pZCB0ZXN0Q2Fs
bFJhcmVMaXZlKGludCBhLCBpbnQgYiwgaW50IAogICAgIEJhc2ljQmxvY2sqIGNvbW1vbiA9IHBy
b2MuYWRkQmxvY2soKTsKICAgICBCYXNpY0Jsb2NrKiByYXJlID0gcHJvYy5hZGRCbG9jaygpOwog
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMCksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhyYXJlLCBGcmVxdWVuY3lD
bGFzczo6UmFyZSksCiAgICAgICAgIEZyZXF1ZW50ZWRCbG9jayhjb21tb24pKTsKIAotICAgIGNv
bW1vbi0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgY29tbW9uLT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNvbW1vbi0+YXBwZW5k
TmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDApKTsKICAgICAKLSAgICByYXJlLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByYXJlLT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJhcmUtPmFwcGVuZE5l
dzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBBZGQsIE9yaWdpbigpLApAQCAtOTY2Miw3ICs5
NjcwLDcgQEAgdm9pZCB0ZXN0Q2FsbFNpbXBsZVB1cmUoaW50IGEsIGludCBiKQogewogICAgIFBy
b2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8Q0NhbGxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBJbnQzMiwgT3JpZ2lu
KCksIEVmZmVjdHM6Om5vbmUoKSwKQEAgLTk2OTIsNyArOTcwMCw3IEBAIHZvaWQgdGVzdENhbGxG
dW5jdGlvbldpdGhIZWxsYUFyZ3VtZW50cygKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0
UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCBiaXR3aXNlX2Nhc3Q8dm9pZCo+KGZ1bmN0aW9uV2l0
aEhlbGxhQXJndW1lbnRzKSkpOwogICAgIGNhbGwtPmNoaWxkcmVuKCkuYXBwZW5kVmVjdG9yKGFy
Z3MpOwogICAgIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVy
biwgT3JpZ2luKCksIGNhbGwpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCBjYWxsKTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50
Pihwcm9jKSA9PSBmdW5jdGlvbldpdGhIZWxsYUFyZ3VtZW50cygxLCAyLCAzLCA0LCA1LCA2LCA3
LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4LCAxOSwgMjAsIDIxLCAy
MiwgMjMsIDI0LCAyNSwgMjYpKTsKIH0KQEAgLTk3MDEsNyArOTcwOSw3IEBAIHZvaWQgdGVzdFJl
dHVybkRvdWJsZShkb3VibGUgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdERvdWJs
ZVZhbHVlPihwcm9jLCBPcmlnaW4oKSwgdmFsdWUpKTsKIApAQCAtOTcxMiw3ICs5NzIwLDcgQEAg
dm9pZCB0ZXN0UmV0dXJuRmxvYXQoZmxvYXQgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7
CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAg
ICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
b25zdEZsb2F0VmFsdWU+KHByb2MsIE9yaWdpbigpLCB2YWx1ZSkpOwogCkBAIC05NzI4LDcgKzk3
MzYsNyBAQCB2b2lkIHRlc3RDYWxsU2ltcGxlRG91YmxlKGRvdWJsZSBhLCBkb3ViCiB7CiAgICAg
UHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxDQ2FsbFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIERvdWJsZSwgT3Jp
Z2luKCksCkBAIC05NzU0LDcgKzk3NjIsNyBAQCB2b2lkIHRlc3RDYWxsU2ltcGxlRmxvYXQoZmxv
YXQgYSwgZmxvYXQgCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7CiAgICAgVmFsdWUqIGZsb2F0
VmFsdWUxID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2lu
KCksIGFyZ3VtZW50MWludDMyKTsKICAgICBWYWx1ZSogZmxvYXRWYWx1ZTIgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQyaW50MzIp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PENDYWxsVmFsdWU+KAogICAgICAgICAgICAgcHJvYywgRmxvYXQsIE9y
aWdpbigpLApAQCAtOTc4NCw3ICs5NzkyLDcgQEAgdm9pZCB0ZXN0Q2FsbEZ1bmN0aW9uV2l0aEhl
bGxhRG91YmxlQXJndQogICAgICAgICByb290LT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJv
YywgT3JpZ2luKCksIGJpdHdpc2VfY2FzdDx2b2lkKj4oZnVuY3Rpb25XaXRoSGVsbGFEb3VibGVB
cmd1bWVudHMpKSk7CiAgICAgY2FsbC0+Y2hpbGRyZW4oKS5hcHBlbmRWZWN0b3IoYXJncyk7CiAg
ICAgCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgY2FsbCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIGNhbGwpOwogCiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxkb3VibGU+KHBy
b2MpID09IGZ1bmN0aW9uV2l0aEhlbGxhRG91YmxlQXJndW1lbnRzKDEsIDIsIDMsIDQsIDUsIDYs
IDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAxNywgMTgsIDE5LCAyMCwgMjEs
IDIyLCAyMywgMjQsIDI1LCAyNikpOwogfQpAQCAtOTgwOCw3ICs5ODE2LDcgQEAgdm9pZCB0ZXN0
Q2FsbEZ1bmN0aW9uV2l0aEhlbGxhRmxvYXRBcmd1bQogICAgICAgICByb290LT5hcHBlbmROZXc8
Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGJpdHdpc2VfY2FzdDx2b2lkKj4oZnVuY3Rp
b25XaXRoSGVsbGFGbG9hdEFyZ3VtZW50cykpKTsKICAgICBjYWxsLT5jaGlsZHJlbigpLmFwcGVu
ZFZlY3RvcihhcmdzKTsKICAgICAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLCBjYWxsKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgY2FsbCk7CiAKICAgICBDSEVDSyhjb21waWxl
QW5kUnVuPGZsb2F0Pihwcm9jKSA9PSBmdW5jdGlvbldpdGhIZWxsYUZsb2F0QXJndW1lbnRzKDEs
IDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAxNywg
MTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjQsIDI1LCAyNikpOwogfQpAQCAtOTgyMCw3ICs5ODI4
LDcgQEAgdm9pZCB0ZXN0Q2hpbGxEaXYoaW50IG51bSwgaW50IGRlbiwgaW50IAogICAgICAgICBQ
cm9jZWR1cmUgcHJvYzsKICAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKICAgICAgICAgCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
ICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgICAgICBwcm9jLCBDaGlsbERpdiwgT3JpZ2luKCksCkBAIC05ODM5LDcgKzk4NDcsNyBA
QCB2b2lkIHRlc3RDaGlsbERpdihpbnQgbnVtLCBpbnQgZGVuLCBpbnQgCiAgICAgICAgIFByb2Nl
ZHVyZSBwcm9jOwogICAgICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwog
ICAgICAgICAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAg
ICAgICAgIHByb2MsIENoaWxsRGl2LCBPcmlnaW4oKSwKQEAgLTk4NTUsNyArOTg2Myw3IEBAIHZv
aWQgdGVzdENoaWxsRGl2VHdpY2UoaW50IG51bTEsIGludCBkZW4KICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgQWRkLCBPcmlnaW4oKSwKQEAgLTk4ODksNyAr
OTg5Nyw3IEBAIHZvaWQgdGVzdENoaWxsRGl2NjQoaW50NjRfdCBudW0sIGludDY0X3QKICAgICAg
ICAgUHJvY2VkdXJlIHByb2M7CiAgICAgICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJs
b2NrKCk7CiAgICAgICAgIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAg
ICAgICAgICAgICAgICAgcHJvYywgQ2hpbGxEaXYsIE9yaWdpbigpLApAQCAtOTkwNCw3ICs5OTEy
LDcgQEAgdm9pZCB0ZXN0Q2hpbGxEaXY2NChpbnQ2NF90IG51bSwgaW50NjRfdAogICAgICAgICBQ
cm9jZWR1cmUgcHJvYzsKICAgICAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2so
KTsKICAgICAgICAgCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
ICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1
cm4sIE9yaWdpbigpLAogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgICAgICBwcm9jLCBDaGlsbERpdiwgT3JpZ2luKCksCkBAIC05OTI1LDcgKzk5MzMsNyBA
QCB2b2lkIHRlc3RNb2RBcmcoaW50NjRfdCB2YWx1ZSkKIAogICAgIFZhbHVlKiBhcmd1bWVudCA9
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIwKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBNb2QsIE9yaWdpbigpLCBhcmd1bWVudCwgYXJndW1lbnQpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCks
IHJlc3VsdCk7CiAKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCB2YWx1
ZSkpOwogfQpAQCAtOTk0Myw3ICs5OTUxLDcgQEAgdm9pZCB0ZXN0TW9kQXJncyhpbnQ2NF90IG51
bWVyYXRvciwgaW50NgogICAgIFZhbHVlKiBhcmd1bWVudDEgPSByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAg
ICAgVmFsdWUqIGFyZ3VtZW50MiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKICAgICBWYWx1ZSogcmVzdWx0
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigpLCBhcmd1bWVudDEs
IGFyZ3VtZW50Mik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUo
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRS
dW48aW50NjRfdD4ocHJvYywgbnVtZXJhdG9yLCBkZW5vbWluYXRvcikgPT0gbnVtZXJhdG9yICUg
ZGVub21pbmF0b3IpOwogfQpAQCAtOTk2MSw3ICs5OTY5LDcgQEAgdm9pZCB0ZXN0TW9kSW1tcyhp
bnQ2NF90IG51bWVyYXRvciwgaW50NgogICAgIFZhbHVlKiBhcmd1bWVudDEgPSByb290LT5hcHBl
bmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgbnVtZXJhdG9yKTsKICAgICBWYWx1
ZSogYXJndW1lbnQyID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIGRlbm9taW5hdG9yKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPihwcm9jLCBNb2QsIE9yaWdpbigpLCBhcmd1bWVudDEsIGFyZ3VtZW50Mik7Ci0gICAgcm9v
dC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0
KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywgbnVt
ZXJhdG9yLCBkZW5vbWluYXRvcikgPT0gbnVtZXJhdG9yICUgZGVub21pbmF0b3IpOwogfQpAQCAt
OTk3Nyw3ICs5OTg1LDcgQEAgdm9pZCB0ZXN0TW9kQXJnMzIoaW50MzJfdCB2YWx1ZSkKICAgICBW
YWx1ZSogYXJndW1lbnQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKICAgICBWYWx1ZSogcmVzdWx0ID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigpLCBhcmd1bWVudCwgYXJndW1l
bnQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQz
Ml90Pihwcm9jLCB2YWx1ZSkpOwogfQpAQCAtOTk5Nyw3ICsxMDAwNSw3IEBAIHZvaWQgdGVzdE1v
ZEFyZ3MzMihpbnQzMl90IG51bWVyYXRvciwgaW4KICAgICBWYWx1ZSogYXJndW1lbnQyID0gcm9v
dC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIxKSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgTW9kLCBPcmlnaW4oKSwgYXJndW1lbnQxLCBhcmd1bWVudDIpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7Cisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
c3VsdCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIG51bWVyYXRv
ciwgZGVub21pbmF0b3IpID09IG51bWVyYXRvciAlIGRlbm9taW5hdG9yKTsKIH0KQEAgLTEwMDE1
LDcgKzEwMDIzLDcgQEAgdm9pZCB0ZXN0TW9kSW1tczMyKGludDMyX3QgbnVtZXJhdG9yLCBpbgog
ICAgIFZhbHVlKiBhcmd1bWVudDEgPSByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgbnVtZXJhdG9yKTsKICAgICBWYWx1ZSogYXJndW1lbnQyID0gcm9vdC0+YXBw
ZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGRlbm9taW5hdG9yKTsKICAgICBW
YWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBNb2QsIE9yaWdpbigp
LCBhcmd1bWVudDEsIGFyZ3VtZW50Mik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNL
KGNvbXBpbGVBbmRSdW48aW50MzJfdD4ocHJvYywgbnVtZXJhdG9yLCBkZW5vbWluYXRvcikgPT0g
bnVtZXJhdG9yICUgZGVub21pbmF0b3IpOwogfQpAQCAtMTAwMjcsNyArMTAwMzUsNyBAQCB2b2lk
IHRlc3RDaGlsbE1vZEFyZyhpbnQ2NF90IHZhbHVlKQogCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0g
cm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjApOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFs
dWU+KHByb2MsIENoaWxsTW9kLCBPcmlnaW4oKSwgYXJndW1lbnQsIGFyZ3VtZW50KTsKLSAgICBy
b290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1
bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0soIWNvbXBpbGVBbmRSdW48aW50NjRfdD4ocHJvYywg
dmFsdWUpKTsKIH0KQEAgLTEwMDQwLDcgKzEwMDQ4LDcgQEAgdm9pZCB0ZXN0Q2hpbGxNb2RBcmdz
KGludDY0X3QgbnVtZXJhdG9yLAogICAgIFZhbHVlKiBhcmd1bWVudDEgPSByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BS
MCk7CiAgICAgVmFsdWUqIGFyZ3VtZW50MiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1Zh
bHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKICAgICBWYWx1ZSog
cmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDaGlsbE1vZCwgT3JpZ2luKCks
IGFyZ3VtZW50MSwgYXJndW1lbnQyKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogCiAgICAgQ0hFQ0so
Y29tcGlsZUFuZFJ1bjxpbnQ2NF90Pihwcm9jLCBudW1lcmF0b3IsIGRlbm9taW5hdG9yKSA9PSBj
aGlsbE1vZChudW1lcmF0b3IsIGRlbm9taW5hdG9yKSk7CiB9CkBAIC0xMDA1Myw3ICsxMDA2MSw3
IEBAIHZvaWQgdGVzdENoaWxsTW9kSW1tcyhpbnQ2NF90IG51bWVyYXRvciwKICAgICBWYWx1ZSog
YXJndW1lbnQxID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IG51bWVyYXRvcik7CiAgICAgVmFsdWUqIGFyZ3VtZW50MiA9IHJvb3QtPmFwcGVuZE5ldzxDb25z
dDY0VmFsdWU+KHByb2MsIE9yaWdpbigpLCBkZW5vbWluYXRvcik7CiAgICAgVmFsdWUqIHJlc3Vs
dCA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgQ2hpbGxNb2QsIE9yaWdpbigpLCBhcmd1
bWVudDEsIGFyZ3VtZW50Mik7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9s
VmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKIAogICAgIENIRUNLKGNvbXBp
bGVBbmRSdW48aW50NjRfdD4ocHJvYywgbnVtZXJhdG9yLCBkZW5vbWluYXRvcikgPT0gY2hpbGxN
b2QobnVtZXJhdG9yLCBkZW5vbWluYXRvcikpOwogfQpAQCAtMTAwNjYsNyArMTAwNzQsNyBAQCB2
b2lkIHRlc3RDaGlsbE1vZEFyZzMyKGludDMyX3QgdmFsdWUpCiAgICAgVmFsdWUqIGFyZ3VtZW50
ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5m
bzo6YXJndW1lbnRHUFIwKSk7CiAgICAgVmFsdWUqIHJlc3VsdCA9IHJvb3QtPmFwcGVuZE5ldzxW
YWx1ZT4ocHJvYywgQ2hpbGxNb2QsIE9yaWdpbigpLCBhcmd1bWVudCwgYXJndW1lbnQpOwotICAg
IHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJl
c3VsdCk7CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHJlc3VsdCk7CiAKICAgICBDSEVDSyghY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9j
LCB2YWx1ZSkpOwogfQpAQCAtMTAwODEsNyArMTAwODksNyBAQCB2b2lkIHRlc3RDaGlsbE1vZEFy
Z3MzMihpbnQzMl90IG51bWVyYXRvCiAgICAgVmFsdWUqIGFyZ3VtZW50MiA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmRO
ZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BS
MSkpOwogICAgIFZhbHVlKiByZXN1bHQgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIENo
aWxsTW9kLCBPcmlnaW4oKSwgYXJndW1lbnQxLCBhcmd1bWVudDIpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3Vs
dCk7CiAKICAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludDMyX3Q+KHByb2MsIG51bWVyYXRvciwg
ZGVub21pbmF0b3IpID09IGNoaWxsTW9kKG51bWVyYXRvciwgZGVub21pbmF0b3IpKTsKIH0KQEAg
LTEwMDk0LDcgKzEwMTAyLDcgQEAgdm9pZCB0ZXN0Q2hpbGxNb2RJbW1zMzIoaW50MzJfdCBudW1l
cmF0bwogICAgIFZhbHVlKiBhcmd1bWVudDEgPSByb290LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgbnVtZXJhdG9yKTsKICAgICBWYWx1ZSogYXJndW1lbnQyID0gcm9v
dC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGRlbm9taW5hdG9yKTsK
ICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBDaGlsbE1v
ZCwgT3JpZ2luKCksIGFyZ3VtZW50MSwgYXJndW1lbnQyKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgIHJvb3Qt
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwog
CiAgICAgQ0hFQ0soY29tcGlsZUFuZFJ1bjxpbnQzMl90Pihwcm9jLCBudW1lcmF0b3IsIGRlbm9t
aW5hdG9yKSA9PSBjaGlsbE1vZChudW1lcmF0b3IsIGRlbm9taW5hdG9yKSk7CiB9CkBAIC0xMDEw
NSwxOCArMTAxMTMsMTcgQEAgdm9pZCB0ZXN0U3dpdGNoKHVuc2lnbmVkIGRlZ3JlZSwgdW5zaWdu
ZQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAKICAgICBCYXNpY0Js
b2NrKiB0ZXJtaW5hdGUgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgdGVybWluYXRlLT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICB0ZXJtaW5hdGUtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGVybWluYXRlLT5hcHBl
bmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgU3dpdGNoVmFs
dWUqIHN3aXRjaFZhbHVlID0gcm9vdC0+YXBwZW5kTmV3PFN3aXRjaFZhbHVlPigKLSAgICAgICAg
cHJvYywgT3JpZ2luKCksCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSwKLSAgICAgICAgRnJlcXVl
bnRlZEJsb2NrKHRlcm1pbmF0ZSkpOworICAgICAgICBwcm9jLCBPcmlnaW4oKSwgcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjApKTsKKyAgICBzd2l0Y2hWYWx1ZS0+c2V0RmFsbFRocm91Z2goRnJlcXVlbnRlZEJsb2Nr
KHRlcm1pbmF0ZSkpOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGRlZ3JlZTsgKytp
KSB7CiAgICAgICAgIEJhc2ljQmxvY2sqIG5ld0Jsb2NrID0gcHJvYy5hZGRCbG9jaygpOwotICAg
ICAgICBuZXdCbG9jay0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIG5ld0Jsb2Nr
LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICAgICAgbmV3QmxvY2stPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPigK
ICAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgKGkgJiAxKSA/IEdQUkluZm86OmFyZ3Vt
ZW50R1BSMiA6IEdQUkluZm86OmFyZ3VtZW50R1BSMSkpOwpAQCAtMTAxNDcsMTkgKzEwMTU0LDE4
IEBAIHZvaWQgdGVzdFN3aXRjaENoaWxsRGl2KHVuc2lnbmVkIGRlZ3JlZSwKICAgICBWYWx1ZSog
cmlnaHQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMik7CiAKICAgICBCYXNpY0Jsb2NrKiB0ZXJtaW5hdGUgPSBw
cm9jLmFkZEJsb2NrKCk7Ci0gICAgdGVybWluYXRlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigK
KyAgICB0ZXJtaW5hdGUtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGVybWluYXRlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgMCkpOwogCiAgICAgU3dpdGNoVmFsdWUqIHN3aXRjaFZhbHVlID0g
cm9vdC0+YXBwZW5kTmV3PFN3aXRjaFZhbHVlPigKLSAgICAgICAgcHJvYywgT3JpZ2luKCksCi0g
ICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwg
R1BSSW5mbzo6YXJndW1lbnRHUFIwKSwKLSAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRlcm1pbmF0
ZSkpOworICAgICAgICBwcm9jLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKKyAgICBzd2l0
Y2hWYWx1ZS0+c2V0RmFsbFRocm91Z2goRnJlcXVlbnRlZEJsb2NrKHRlcm1pbmF0ZSkpOwogCiAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGRlZ3JlZTsgKytpKSB7CiAgICAgICAgIEJhc2lj
QmxvY2sqIG5ld0Jsb2NrID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgICAgIG5ld0Jsb2NrLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgbmV3QmxvY2stPmFwcGVuZE5ld0NvbnRy
b2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgICAg
ICBuZXdCbG9jay0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgICAgICBwcm9jLCBDaGls
bERpdiwgT3JpZ2luKCksIChpICYgMSkgPyByaWdodCA6IGxlZnQsIChpICYgMSkgPyBsZWZ0IDog
cmlnaHQpKTsKQEAgLTEwMTcwLDcgKzEwMTc2LDEwIEBAIHZvaWQgdGVzdFN3aXRjaENoaWxsRGl2
KHVuc2lnbmVkIGRlZ3JlZSwKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCiAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGRlZ3JlZTsgKytpKSB7Ci0gICAgICAgIENIRUNLKGlu
dm9rZTxpbnQzMl90PigqY29kZSwgaSAqIGdhcCwgNDIsIDExKSA9PSAoKGkgJiAxKSA/IDExLzQy
IDogNDIvMTEpKTsKKyAgICAgICAgZGF0YUxvZygiaSA9ICIsIGksICJcbiIpOworICAgICAgICBp
bnQzMl90IHJlc3VsdCA9IGludm9rZTxpbnQzMl90PigqY29kZSwgaSAqIGdhcCwgNDIsIDExKTsK
KyAgICAgICAgZGF0YUxvZygicmVzdWx0ID0gIiwgcmVzdWx0LCAiXG4iKTsKKyAgICAgICAgQ0hF
Q0socmVzdWx0ID09ICgoaSAmIDEpID8gMTEvNDIgOiA0Mi8xMSkpOwogICAgICAgICBpZiAoZ2Fw
ID4gMSkgewogICAgICAgICAgICAgQ0hFQ0soIWludm9rZTxpbnQzMl90PigqY29kZSwgaSAqIGdh
cCArIDEsIDQyLCAxMSkpOwogICAgICAgICAgICAgQ0hFQ0soIWludm9rZTxpbnQzMl90PigqY29k
ZSwgaSAqIGdhcCAtIDEsIDQyLCAxMSkpOwpAQCAtMTAxODgsMTcgKzEwMTk3LDE2IEBAIHZvaWQg
dGVzdFN3aXRjaFRhcmdldHRpbmdTYW1lQmxvY2soKQogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBw
cm9jLmFkZEJsb2NrKCk7CiAKICAgICBCYXNpY0Jsb2NrKiB0ZXJtaW5hdGUgPSBwcm9jLmFkZEJs
b2NrKCk7Ci0gICAgdGVybWluYXRlLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICB0ZXJt
aW5hdGUtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgdGVybWluYXRlLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBP
cmlnaW4oKSwgNSkpOwogCiAgICAgU3dpdGNoVmFsdWUqIHN3aXRjaFZhbHVlID0gcm9vdC0+YXBw
ZW5kTmV3PFN3aXRjaFZhbHVlPigKLSAgICAgICAgcHJvYywgT3JpZ2luKCksCi0gICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6
YXJndW1lbnRHUFIwKSwKLSAgICAgICAgRnJlcXVlbnRlZEJsb2NrKHRlcm1pbmF0ZSkpOworICAg
ICAgICBwcm9jLCBPcmlnaW4oKSwgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKKyAgICBzd2l0Y2hWYWx1ZS0+
c2V0RmFsbFRocm91Z2goRnJlcXVlbnRlZEJsb2NrKHRlcm1pbmF0ZSkpOwogCiAgICAgQmFzaWNC
bG9jayogb3RoZXJUYXJnZXQgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgb3RoZXJUYXJnZXQtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIG90aGVyVGFyZ2V0LT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIG90aGVyVGFy
Z2V0LT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpKTsKICAgICBz
d2l0Y2hWYWx1ZS0+YXBwZW5kQ2FzZShTd2l0Y2hDYXNlKDMsIEZyZXF1ZW50ZWRCbG9jayhvdGhl
clRhcmdldCkpKTsKQEAgLTEwMjE4LDE4ICsxMDIyNiwxNiBAQCB2b2lkIHRlc3RTd2l0Y2hUYXJn
ZXR0aW5nU2FtZUJsb2NrRm9sZFBhCiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxv
Y2soKTsKIAogICAgIEJhc2ljQmxvY2sqIHRlcm1pbmF0ZSA9IHByb2MuYWRkQmxvY2soKTsKLSAg
ICB0ZXJtaW5hdGUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRlcm1pbmF0ZS0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICB0ZXJtaW5hdGUtPmFwcGVuZE5ldzxDb25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0
MikpOwogCiAgICAgVmFsdWUqIGFyZ3VtZW50ID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVn
VmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwotICAgIFN3aXRj
aFZhbHVlKiBzd2l0Y2hWYWx1ZSA9IHJvb3QtPmFwcGVuZE5ldzxTd2l0Y2hWYWx1ZT4oCi0gICAg
ICAgIHByb2MsIE9yaWdpbigpLAotICAgICAgICBhcmd1bWVudCwKLSAgICAgICAgRnJlcXVlbnRl
ZEJsb2NrKHRlcm1pbmF0ZSkpOworICAgIFN3aXRjaFZhbHVlKiBzd2l0Y2hWYWx1ZSA9IHJvb3Qt
PmFwcGVuZE5ldzxTd2l0Y2hWYWx1ZT4ocHJvYywgT3JpZ2luKCksIGFyZ3VtZW50KTsKKyAgICBz
d2l0Y2hWYWx1ZS0+c2V0RmFsbFRocm91Z2goRnJlcXVlbnRlZEJsb2NrKHRlcm1pbmF0ZSkpOwog
CiAgICAgQmFzaWNCbG9jayogb3RoZXJUYXJnZXQgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgb3Ro
ZXJUYXJnZXQtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIG90aGVyVGFyZ2V0LT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksIGFyZ3Vt
ZW50KTsKICAgICBzd2l0Y2hWYWx1ZS0+YXBwZW5kQ2FzZShTd2l0Y2hDYXNlKDMsIEZyZXF1ZW50
ZWRCbG9jayhvdGhlclRhcmdldCkpKTsKICAgICBzd2l0Y2hWYWx1ZS0+YXBwZW5kQ2FzZShTd2l0
Y2hDYXNlKDEzLCBGcmVxdWVudGVkQmxvY2sob3RoZXJUYXJnZXQpKSk7CkBAIC0xMDI0Niw3ICsx
MDI1Miw3IEBAIHZvaWQgdGVzdFRydW5jRm9sZChpbnQ2NF90IHZhbHVlKQogewogICAgIFByb2Nl
ZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLApAQCAt
MTAyNTksNyArMTAyNjUsNyBAQCB2b2lkIHRlc3RaRXh0MzIoaW50MzJfdCB2YWx1ZSkKIHsKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFpFeHQzMiwgT3JpZ2lu
KCksCkBAIC0xMDI3NCw3ICsxMDI4MCw3IEBAIHZvaWQgdGVzdFpFeHQzMkZvbGQoaW50MzJfdCB2
YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFpF
eHQzMiwgT3JpZ2luKCksCkBAIC0xMDI4Nyw3ICsxMDI5Myw3IEBAIHZvaWQgdGVzdFNFeHQzMihp
bnQzMl90IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgU0V4dDMyLCBPcmlnaW4oKSwKQEAgLTEwMzAyLDcgKzEwMzA4LDcgQEAgdm9pZCB0ZXN0
U0V4dDMyRm9sZChpbnQzMl90IHZhbHVlKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJh
c2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAog
ICAgICAgICAgICAgcHJvYywgU0V4dDMyLCBPcmlnaW4oKSwKQEAgLTEwMzE1LDcgKzEwMzIxLDcg
QEAgdm9pZCB0ZXN0VHJ1bmNaRXh0MzIoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUg
cHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3Qt
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKQEAgLTEwMzMy
LDcgKzEwMzM4LDcgQEAgdm9pZCB0ZXN0VHJ1bmNTRXh0MzIoaW50MzJfdCB2YWx1ZSkKIHsKICAg
ICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygp
OwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5l
d0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFRydW5jLCBPcmlnaW4o
KSwKQEAgLTEwMzQ5LDcgKzEwMzU1LDcgQEAgdm9pZCB0ZXN0U0V4dDgoaW50MzJfdCB2YWx1ZSkK
IHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNFeHQ4LCBP
cmlnaW4oKSwKQEAgLTEwMzY0LDcgKzEwMzcwLDcgQEAgdm9pZCB0ZXN0U0V4dDhGb2xkKGludDMy
X3QgdmFsdWUpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBTRXh0OCwgT3JpZ2luKCksCkBAIC0xMDM3Nyw3ICsxMDM4Myw3IEBAIHZvaWQgdGVzdFNFeHQ4
U0V4dDgoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIFNFeHQ4LCBPcmlnaW4oKSwKQEAgLTEwMzk0LDcgKzEwNDAwLDcgQEAgdm9p
ZCB0ZXN0U0V4dDhTRXh0MTYoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKICAgICAgICAgICAgIHByb2MsIFNFeHQ4LCBPcmlnaW4oKSwKQEAgLTEwNDExLDcgKzEw
NDE3LDcgQEAgdm9pZCB0ZXN0U0V4dDhCaXRBbmQoaW50MzJfdCB2YWx1ZSwgaW50MwogewogICAg
IFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7
Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3
Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICBy
b290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU0V4dDgsIE9yaWdpbigp
LApAQCAtMTA0MjksNyArMTA0MzUsNyBAQCB2b2lkIHRlc3RCaXRBbmRTRXh0OChpbnQzMl90IHZh
bHVlLCBpbnQzCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAg
ICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3Jp
Z2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9j
LCBCaXRBbmQsIE9yaWdpbigpLApAQCAtMTA0NDcsNyArMTA0NTMsNyBAQCB2b2lkIHRlc3RTRXh0
MTYoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIFNFeHQxNiwgT3JpZ2luKCksCkBAIC0xMDQ2Miw3ICsxMDQ2OCw3IEBAIHZvaWQg
dGVzdFNFeHQxNkZvbGQoaW50MzJfdCB2YWx1ZSkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
PigKICAgICAgICAgICAgIHByb2MsIFNFeHQxNiwgT3JpZ2luKCksCkBAIC0xMDQ3NSw3ICsxMDQ4
MSw3IEBAIHZvaWQgdGVzdFNFeHQxNlNFeHQxNihpbnQzMl90IHZhbHVlKQogewogICAgIFByb2Nl
ZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5h
cHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU0V4dDE2LCBPcmlnaW4oKSwKQEAg
LTEwNDkyLDcgKzEwNDk4LDcgQEAgdm9pZCB0ZXN0U0V4dDE2U0V4dDgoaW50MzJfdCB2YWx1ZSkK
IHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRC
bG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNFeHQxNiwg
T3JpZ2luKCksCkBAIC0xMDUwOSw3ICsxMDUxNSw3IEBAIHZvaWQgdGVzdFNFeHQxNkJpdEFuZChp
bnQzMl90IHZhbHVlLCBpbnQKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2Nr
KiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFs
dWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAg
ICAgIHByb2MsIFNFeHQxNiwgT3JpZ2luKCksCkBAIC0xMDUyNyw3ICsxMDUzMyw3IEBAIHZvaWQg
dGVzdEJpdEFuZFNFeHQxNihpbnQzMl90IHZhbHVlLCBpbnQKIHsKICAgICBQcm9jZWR1cmUgcHJv
YzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0xMDU0NSw3
ICsxMDU1MSw3IEBAIHZvaWQgdGVzdFNFeHQzMkJpdEFuZChpbnQzMl90IHZhbHVlLCBpbnQKIHsK
ICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9j
aygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVu
ZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIFNFeHQzMiwgT3Jp
Z2luKCksCkBAIC0xMDU2Myw3ICsxMDU2OSw3IEBAIHZvaWQgdGVzdEJpdEFuZFNFeHQzMihpbnQz
Ml90IHZhbHVlLCBpbnQKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIEJpdEFuZCwgT3JpZ2luKCksCkBAIC0xMDU4MSw3ICsxMDU4Nyw3IEBAIHZvaWQgdGVz
dEJhc2ljU2VsZWN0KCkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiBy
b290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJu
LCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAg
IHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0xMDYwMyw3ICsxMDYwOSw3IEBAIHZvaWQgdGVz
dFNlbGVjdFRlc3QoKQogewogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJv
b3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4s
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTEwNjIyLDcgKzEwNjI4LDcgQEAgdm9pZCB0ZXN0
U2VsZWN0Q29tcGFyZURvdWJsZSgpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNC
bG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJv
bFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLApAQCAtMTA2NTMsNyArMTA2NTksNyBAQCB2
b2lkIHRlc3RTZWxlY3RDb21wYXJlRmxvYXQoZmxvYXQgYSwgZmxvCiAgICAgVmFsdWUqIGZsb2F0
VmFsdWUxID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwgT3JpZ2lu
KCksIGFyZ3VtZW50MWludDMyKTsKICAgICBWYWx1ZSogZmxvYXRWYWx1ZTIgPSByb290LT5hcHBl
bmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4oKSwgYXJndW1lbnQyaW50MzIp
OwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmln
aW4oKSwKQEAgLTEwNjkxLDcgKzEwNjk3LDcgQEAgdm9pZCB0ZXN0U2VsZWN0Q29tcGFyZUZsb2F0
VG9Eb3VibGUoZmxvYQogICAgIFZhbHVlKiBkb3VibGVWYWx1ZTEgPSByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEZsb2F0VG9Eb3VibGUsIE9yaWdpbigpLCBmbG9hdFZhbHVlMSk7CiAgICAg
VmFsdWUqIGRvdWJsZVZhbHVlMiA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgRmxvYXRU
b0RvdWJsZSwgT3JpZ2luKCksIGZsb2F0VmFsdWUyKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxD
b250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAg
cHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0xMDcxOSw3ICsxMDcyNSw3
IEBAIHZvaWQgdGVzdFNlbGVjdERvdWJsZSgpCiB7CiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAg
QmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAg
IHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
CiAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLApAQCAtMTA3NDEsNyArMTA3NDcs
NyBAQCB2b2lkIHRlc3RTZWxlY3REb3VibGVUZXN0KCkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsK
ICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwotICAgIHJvb3QtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAg
ICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZh
bHVlPigKICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0xMDc2MCw3ICsx
MDc2Niw3IEBAIHZvaWQgdGVzdFNlbGVjdERvdWJsZUNvbXBhcmVEb3VibGUoKQogewogICAgIFBy
b2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwK
QEAgLTEwNzkwLDcgKzEwNzk2LDcgQEAgdm9pZCB0ZXN0U2VsZWN0RG91YmxlQ29tcGFyZUZsb2F0
KGZsb2F0IAogICAgIFZhbHVlKiBmbG9hdFZhbHVlMSA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4o
cHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDFpbnQzMik7CiAgICAgVmFsdWUq
IGZsb2F0VmFsdWUyID0gcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBCaXR3aXNlQ2FzdCwg
T3JpZ2luKCksIGFyZ3VtZW50MmludDMyKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywg
UmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAg
ICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0xMDgyMSw3ICsxMDgyNyw3IEBAIHZv
aWQgdGVzdFNlbGVjdEZsb2F0Q29tcGFyZUZsb2F0KGZsb2F0IGEKICAgICBWYWx1ZSogZmxvYXRW
YWx1ZTMgPSByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIEJpdHdpc2VDYXN0LCBPcmlnaW4o
KSwgYXJndW1lbnQzaW50MzIpOwogICAgIFZhbHVlKiBmbG9hdFZhbHVlNCA9IHJvb3QtPmFwcGVu
ZE5ldzxWYWx1ZT4ocHJvYywgQml0d2lzZUNhc3QsIE9yaWdpbigpLCBhcmd1bWVudDRpbnQzMik7
CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdp
bigpLApAQCAtMTA4NDcsNyArMTA4NTMsNyBAQCB2b2lkIHRlc3RTZWxlY3REb3VibGVDb21wYXJl
RG91YmxlKGJvb2wgCiAgICAgICAgIFZhbHVlKiBhcmcyID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBGUFJJbmZvOjphcmd1bWVudEZQUjIpOwogICAg
ICAgICBWYWx1ZSogYXJnMyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIzKTsKIAotICAgICAgICByb290LT5hcHBl
bmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVl
KAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4o
KSwKQEAgLTEwODgzLDcgKzEwODg5LDcgQEAgdm9pZCB0ZXN0U2VsZWN0RG91YmxlQ29tcGFyZURv
dWJsZShib29sIAogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+YXBwZW5kKENvbnN0cmFpbmVkVmFs
dWUoYXJnMiwgVmFsdWVSZXA6OlNvbWVSZWdpc3RlcikpOwogICAgICAgICBrZWVwVmFsdWVzTGl2
ZS0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0
aW9uUGFyYW1zJikgeyB9KTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVl
Pihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgICAgICByb290LT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICAgICAg
YXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIAogICAgICAgICBmb3IgKGF1dG8mIGxlZnQgOiBm
bG9hdGluZ1BvaW50T3BlcmFuZHM8ZG91YmxlPigpKSB7CkBAIC0xMDkxMCw3ICsxMDkxNiw3IEBA
IHZvaWQgdGVzdFNlbGVjdERvdWJsZUNvbXBhcmVEb3VibGUoYm9vbCAKICAgICAgICAga2VlcFZh
bHVlc0xpdmUtPmFwcGVuZChDb25zdHJhaW5lZFZhbHVlKGFyZzMsIFZhbHVlUmVwOjpTb21lUmVn
aXN0ZXIpKTsKICAgICAgICAga2VlcFZhbHVlc0xpdmUtPnNldEdlbmVyYXRvcihbJl0gKENDYWxs
SGVscGVycyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsgfSk7CiAKLSAgICAg
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwg
cmVzdWx0KTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVy
biwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7
CiAKICAgICAgICAgZm9yIChhdXRvJiBsZWZ0IDogZmxvYXRpbmdQb2ludE9wZXJhbmRzPGRvdWJs
ZT4oKSkgewpAQCAtMTA5MzgsNyArMTA5NDQsNyBAQCB2b2lkIHRlc3RTZWxlY3REb3VibGVDb21w
YXJlRG91YmxlKGJvb2wgCiAgICAgICAgIGtlZXBWYWx1ZXNMaXZlLT5hcHBlbmQoQ29uc3RyYWlu
ZWRWYWx1ZShhcmczLCBWYWx1ZVJlcDo6U29tZVJlZ2lzdGVyKSk7CiAgICAgICAgIGtlZXBWYWx1
ZXNMaXZlLT5zZXRHZW5lcmF0b3IoWyZdIChDQ2FsbEhlbHBlcnMmLCBjb25zdCBTdGFja21hcEdl
bmVyYXRpb25QYXJhbXMmKSB7IH0pOwogCi0gICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CisgICAgICAgIHJvb3QtPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwogICAg
ICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogCiAgICAgICAgIGZvciAoYXV0byYgbGVm
dCA6IGZsb2F0aW5nUG9pbnRPcGVyYW5kczxkb3VibGU+KCkpIHsKQEAgLTEwOTU1LDcgKzEwOTYx
LDcgQEAgdm9pZCB0ZXN0U2VsZWN0RG91YmxlQ29tcGFyZURvdWJsZShib29sIAogICAgICAgICBW
YWx1ZSogYXJnMSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmln
aW4oKSwgRlBSSW5mbzo6YXJndW1lbnRGUFIxKTsKICAgICAgICAgVmFsdWUqIGFyZzIgPSByb290
LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEZQUkluZm86OmFy
Z3VtZW50RlBSMik7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAg
ICAgICAgICAgICAgIHByb2MsIFNlbGVjdCwgT3JpZ2luKCksCkBAIC0xMDk5MCw3ICsxMDk5Niw3
IEBAIHZvaWQgdGVzdFNlbGVjdERvdWJsZUNvbXBhcmVEb3VibGUoYm9vbCAKICAgICAgICAga2Vl
cFZhbHVlc0xpdmUtPmFwcGVuZChDb25zdHJhaW5lZFZhbHVlKGFyZzIsIFZhbHVlUmVwOjpTb21l
UmVnaXN0ZXIpKTsKICAgICAgICAga2VlcFZhbHVlc0xpdmUtPnNldEdlbmVyYXRvcihbJl0gKEND
YWxsSGVscGVycyYsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsgfSk7CiAKLSAg
ICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0KTsKKyAgICAgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHJlc3VsdCk7CiAgICAgICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJv
Yyk7CiAKICAgICAgICAgZm9yIChhdXRvJiBsZWZ0IDogZmxvYXRpbmdQb2ludE9wZXJhbmRzPGRv
dWJsZT4oKSkgewpAQCAtMTEwMzMsNyArMTEwMzksNyBAQCB2b2lkIHRlc3RTZWxlY3RGbG9hdENv
bXBhcmVGbG9hdChib29sICgqCiAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KHBy
b2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgICAgICAgICByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMykpKTsK
IAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICAgICAgcm9vdC0+
YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICAgICAg
cHJvYywgU2VsZWN0LCBPcmlnaW4oKSwKQEAgLTExMDc3LDcgKzExMDgzLDcgQEAgdm9pZCB0ZXN0
U2VsZWN0RmxvYXRDb21wYXJlRmxvYXQoYm9vbCAoKgogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+
YXBwZW5kKENvbnN0cmFpbmVkVmFsdWUoYXJnMiwgVmFsdWVSZXA6OlNvbWVSZWdpc3RlcikpOwog
ICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiwg
Y29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeyB9KTsKIAotICAgICAgICByb290LT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOwor
ICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwgcmVzdWx0KTsKICAgICAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIAogICAgICAg
ICBmb3IgKGF1dG8mIGxlZnQgOiBmbG9hdGluZ1BvaW50T3BlcmFuZHM8ZmxvYXQ+KCkpIHsKQEAg
LTExMTEyLDcgKzExMTE4LDcgQEAgdm9pZCB0ZXN0U2VsZWN0RmxvYXRDb21wYXJlRmxvYXQoYm9v
bCAoKgogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+YXBwZW5kKENvbnN0cmFpbmVkVmFsdWUoYXJn
MywgVmFsdWVSZXA6OlNvbWVSZWdpc3RlcikpOwogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+c2V0
R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJzJiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFy
YW1zJikgeyB9KTsKIAotICAgICAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQpOworICAgICAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKICAgICAgICAgYXV0byBj
b2RlID0gY29tcGlsZShwcm9jKTsKIAogICAgICAgICBmb3IgKGF1dG8mIGxlZnQgOiBmbG9hdGlu
Z1BvaW50T3BlcmFuZHM8ZmxvYXQ+KCkpIHsKQEAgLTExMTQ4LDcgKzExMTU0LDcgQEAgdm9pZCB0
ZXN0U2VsZWN0RmxvYXRDb21wYXJlRmxvYXQoYm9vbCAoKgogICAgICAgICBrZWVwVmFsdWVzTGl2
ZS0+YXBwZW5kKENvbnN0cmFpbmVkVmFsdWUoYXJnMywgVmFsdWVSZXA6OlNvbWVSZWdpc3Rlcikp
OwogICAgICAgICBrZWVwVmFsdWVzTGl2ZS0+c2V0R2VuZXJhdG9yKFsmXSAoQ0NhbGxIZWxwZXJz
JiwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeyB9KTsKIAotICAgICAgICByb290
LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCByZXN1bHQp
OworICAgICAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0KTsKICAgICAgICAgYXV0byBjb2RlID0gY29tcGlsZShwcm9jKTsKIAogICAg
ICAgICBmb3IgKGF1dG8mIGxlZnQgOiBmbG9hdGluZ1BvaW50T3BlcmFuZHM8ZmxvYXQ+KCkpIHsK
QEAgLTExMTcxLDcgKzExMTc3LDcgQEAgdm9pZCB0ZXN0U2VsZWN0RmxvYXRDb21wYXJlRmxvYXQo
Ym9vbCAoKgogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywg
T3JpZ2luKCksCiAgICAgICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpKSk7CiAKLSAgICAgICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgICAgIHJvb3QtPmFwcGVuZE5ld0Nv
bnRyb2xWYWx1ZSgKICAgICAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgICAgIHByb2MsIFNlbGVj
dCwgT3JpZ2luKCksCkBAIC0xMTIxMiw3ICsxMTIxOCw3IEBAIHZvaWQgdGVzdFNlbGVjdEZsb2F0
Q29tcGFyZUZsb2F0KGJvb2wgKCoKICAgICAgICAga2VlcFZhbHVlc0xpdmUtPmFwcGVuZChDb25z
dHJhaW5lZFZhbHVlKGFyZzIsIFZhbHVlUmVwOjpTb21lUmVnaXN0ZXIpKTsKICAgICAgICAga2Vl
cFZhbHVlc0xpdmUtPnNldEdlbmVyYXRvcihbJl0gKENDYWxsSGVscGVycyYsIGNvbnN0IFN0YWNr
bWFwR2VuZXJhdGlvblBhcmFtcyYpIHsgfSk7CiAKLSAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0KTsKKyAgICAgICAgcm9v
dC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJldHVybiwgT3JpZ2luKCksIHJlc3VsdCk7
CiAgICAgICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAKICAgICAgICAgZm9yIChhdXRv
JiBsZWZ0IDogZmxvYXRpbmdQb2ludE9wZXJhbmRzPGZsb2F0PigpKSB7CkBAIC0xMTIzOSw3ICsx
MTI0NSw3IEBAIHZvaWQgdGVzdFNlbGVjdEZvbGQoaW50cHRyX3QgdmFsdWUpCiB7CiAgICAgUHJv
Y2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBTZWxlY3QsIE9yaWdpbigpLApA
QCAtMTEyNTksNyArMTEyNjUsNyBAQCB2b2lkIHRlc3RTZWxlY3RJbnZlcnQoKQogewogICAgIFBy
b2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7Ci0g
ICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290
LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2VsZWN0LCBPcmlnaW4oKSwK
QEAgLTExMzEyLDcgKzExMzE4LDcgQEAgdm9pZCB0ZXN0Q2hlY2tTZWxlY3QoKQogICAgICAgICAg
ICAgaml0LnJldCgpOwogICAgICAgICB9KTsKICAgICAKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxDb25zdDMyVmFs
dWU+KHByb2MsIE9yaWdpbigpLCAwKSk7CiAKQEAgLTExMzgzLDcgKzExMzg5LDcgQEAgdm9pZCB0
ZXN0Q2hlY2tTZWxlY3RDaGVja1NlbGVjdCgpCiAgICAgICAgICAgICBqaXQucmV0KCk7CiAgICAg
ICAgIH0pOwogICAgIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IDApKTsKIApAQCAtMTE0MTksNyArMTE0MjUsNyBAQCB2b2lkIHRlc3RQb3dEb3VibGVCeUludGVn
ZXJMb29wKGRvdWJsZSB4CiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVl
Pihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSk7CiAgICAgYXV0byByZXN1
bHQgPSBwb3dEb3VibGVJbnQzMihwcm9jLCByb290LCBPcmlnaW4oKSwgeCwgeSk7CiAgICAgQmFz
aWNCbG9jayogY29udGludWF0aW9uID0gcmVzdWx0LmZpcnN0OwotICAgIGNvbnRpbnVhdGlvbi0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVzdWx0LnNl
Y29uZCk7CisgICAgY29udGludWF0aW9uLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcmVzdWx0LnNlY29uZCk7CiAKICAgICBDSEVDSyhpc0lkZW50aWNhbChj
b21waWxlQW5kUnVuPGRvdWJsZT4ocHJvYywgeE9wZXJhbmQsIHlPcGVyYW5kKSwgYjNQb3coeE9w
ZXJhbmQsIHlPcGVyYW5kKSkpOwogfQpAQCAtMTE0MjksNyArMTE0MzUsNyBAQCB2b2lkIHRlc3RU
cnVuY09ySGlnaCgpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9
IHByb2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHBy
b2MsIFRydW5jLCBPcmlnaW4oKSwKQEAgLTExNDQ3LDcgKzExNDUzLDcgQEAgdm9pZCB0ZXN0VHJ1
bmNPckxvdygpCiAgICAgUHJvY2VkdXJlIHByb2M7CiAgICAgQmFzaWNCbG9jayogcm9vdCA9IHBy
b2MuYWRkQmxvY2soKTsKIAotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2Ms
IFRydW5jLCBPcmlnaW4oKSwKQEAgLTExNDY1LDcgKzExNDcxLDcgQEAgdm9pZCB0ZXN0Qml0QW5k
T3JIaWdoKCkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJv
Yy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
Qml0QW5kLCBPcmlnaW4oKSwKQEAgLTExNDg0LDcgKzExNDkwLDcgQEAgdm9pZCB0ZXN0Qml0QW5k
T3JMb3coKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9j
LmFkZEJsb2NrKCk7CiAKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICBy
b290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2lu
KCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBC
aXRBbmQsIE9yaWdpbigpLApAQCAtMTE1MDcsMjAgKzExNTEzLDIwIEBAIHZvaWQgdGVzdEJyYW5j
aDY0RXF1YWwoaW50NjRfdCBsZWZ0LCBpbnQKIAogICAgIFZhbHVlKiBhcmcxID0gcm9vdC0+YXBw
ZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVu
dEdQUjApOwogICAgIFZhbHVlKiBhcmcyID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFs
dWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwotICAgIHJvb3QtPmFw
cGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgK
ICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3
PFZhbHVlPihwcm9jLCBFcXVhbCwgT3JpZ2luKCksIGFyZzEsIGFyZzIpLAogICAgICAgICBGcmVx
dWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAogICAg
IGJvb2wgdHJ1ZVJlc3VsdCA9IHRydWU7Ci0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9s
VmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8TWVtb3J5
VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZDhaLCBPcmlnaW4oKSwKICAgICAgICAgICAg
IHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZ0cnVl
UmVzdWx0KSkpOwogCiAgICAgYm9vbCBlbHNlUmVzdWx0ID0gZmFsc2U7Ci0gICAgZWxzZUNhc2Ut
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9s
VmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNl
LT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZDhaLCBPcmln
aW4oKSwKQEAgLTExNTM4LDIwICsxMTU0NCwyMCBAQCB2b2lkIHRlc3RCcmFuY2g2NEVxdWFsSW1t
KGludDY0X3QgbGVmdCwgCiAKICAgICBWYWx1ZSogYXJnMSA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1
bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAg
ICBWYWx1ZSogYXJnMiA9IHJvb3QtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmln
aW4oKSwgcmlnaHQpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHJv
b3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgQnJhbmNoLCBPcmlnaW4o
KSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBFcXVhbCwgT3JpZ2luKCks
IGFyZzEsIGFyZzIpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGhlbkNhc2UpLCBGcmVxdWVu
dGVkQmxvY2soZWxzZUNhc2UpKTsKIAogICAgIGJvb2wgdHJ1ZVJlc3VsdCA9IHRydWU7Ci0gICAg
dGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIHRoZW5DYXNlLT5hcHBlbmRO
ZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAg
IHRoZW5DYXNlLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9h
ZDhaLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8Q29uc3RQdHJW
YWx1ZT4ocHJvYywgT3JpZ2luKCksICZ0cnVlUmVzdWx0KSkpOwogCiAgICAgYm9vbCBlbHNlUmVz
dWx0ID0gZmFsc2U7Ci0gICAgZWxzZUNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAg
IGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwg
T3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+KAogICAg
ICAgICAgICAgcHJvYywgTG9hZDhaLCBPcmlnaW4oKSwKQEAgLTExNTcxLDIwICsxMTU3NywyMCBA
QCB2b2lkIHRlc3RCcmFuY2g2NEVxdWFsTWVtKGludDY0X3QgbGVmdCwgCiAgICAgICAgIHByb2Ms
IExvYWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCkp
OwogICAgIFZhbHVlKiBhcmcyID0gcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHBy
b2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOwotICAgIHJvb3QtPmFwcGVuZE5l
dzxDb250cm9sVmFsdWU+KAorICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAg
ICAgcHJvYywgQnJhbmNoLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVl
Pihwcm9jLCBFcXVhbCwgT3JpZ2luKCksIGFyZzEsIGFyZzIpLAogICAgICAgICBGcmVxdWVudGVk
QmxvY2sodGhlbkNhc2UpLCBGcmVxdWVudGVkQmxvY2soZWxzZUNhc2UpKTsKIAogICAgIGJvb2wg
dHJ1ZVJlc3VsdCA9IHRydWU7Ci0gICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+
KAorICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJl
dHVybiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5DYXNlLT5hcHBlbmROZXc8TWVtb3J5VmFsdWU+
KAogICAgICAgICAgICAgcHJvYywgTG9hZDhaLCBPcmlnaW4oKSwKICAgICAgICAgICAgIHRoZW5D
YXNlLT5hcHBlbmROZXc8Q29uc3RQdHJWYWx1ZT4ocHJvYywgT3JpZ2luKCksICZ0cnVlUmVzdWx0
KSkpOwogCiAgICAgYm9vbCBlbHNlUmVzdWx0ID0gZmFsc2U7Ci0gICAgZWxzZUNhc2UtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KAorICAgIGVsc2VDYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUo
CiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VDYXNlLT5hcHBl
bmROZXc8TWVtb3J5VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgTG9hZDhaLCBPcmlnaW4oKSwK
QEAgLTExNjA0LDIwICsxMTYxMCwyMCBAQCB2b2lkIHRlc3RCcmFuY2g2NEVxdWFsTWVtSW1tKGlu
dDY0X3QgbGVmCiAgICAgICAgIHByb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIE9yaWdpbigpLAog
ICAgICAgICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCks
IEdQUkluZm86OmFyZ3VtZW50R1BSMCkpOwogICAgIFZhbHVlKiBhcmcyID0gcm9vdC0+YXBwZW5k
TmV3PENvbnN0UHRyVmFsdWU+KHByb2MsIE9yaWdpbigpLCByaWdodCk7Ci0gICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAog
ICAgICAgICBwcm9jLCBCcmFuY2gsIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8
VmFsdWU+KHByb2MsIEVxdWFsLCBPcmlnaW4oKSwgYXJnMSwgYXJnMiksCiAgICAgICAgIEZyZXF1
ZW50ZWRCbG9jayh0aGVuQ2FzZSksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQ2FzZSkpOwogCiAgICAg
Ym9vbCB0cnVlUmVzdWx0ID0gdHJ1ZTsKLSAgICB0aGVuQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xW
YWx1ZT4oCisgICAgdGhlbkNhc2UtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJv
YywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgdGhlbkNhc2UtPmFwcGVuZE5ldzxNZW1vcnlW
YWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkOFosIE9yaWdpbigpLAogICAgICAgICAgICAg
dGhlbkNhc2UtPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgJnRydWVS
ZXN1bHQpKSk7CiAKICAgICBib29sIGVsc2VSZXN1bHQgPSBmYWxzZTsKLSAgICBlbHNlQ2FzZS0+
YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgZWxzZUNhc2UtPmFwcGVuZE5ld0NvbnRyb2xW
YWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBPcmlnaW4oKSwKICAgICAgICAgZWxzZUNhc2Ut
PmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCiAgICAgICAgICAgICBwcm9jLCBMb2FkOFosIE9yaWdp
bigpLApAQCAtMTE2NDEsNyArMTE2NDcsNyBAQCB2b2lkIHRlc3RTdG9yZThMb2FkOFooaW50MzJf
dCB2YWx1ZSkKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIHB0cik7CiAK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZDhaLCBPcmlnaW4oKSwgcHRyKSk7
CiAKQEAgLTExNjYzLDcgKzExNjY5LDcgQEAgdm9pZCB0ZXN0U3RvcmUxNkxvYWQxNlooaW50MzJf
dCB2YWx1ZSkKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKSksCiAgICAgICAgIHB0cik7CiAK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJv
b3QtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZDE2WiwgT3JpZ2luKCksIHB0cikp
OwogCkBAIC0xMTY3NSw3ICsxMTY4MSw3IEBAIHZvaWQgdGVzdFNTaHJTaGwzMihpbnQzMl90IHZh
bHVlLCBpbnQzMl8KICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Jsb2NrKiByb290ID0g
cHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisg
ICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9y
aWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJv
YywgU1NociwgT3JpZ2luKCksCkBAIC0xMTY5Nyw3ICsxMTcwMyw3IEBAIHZvaWQgdGVzdFNTaHJT
aGw2NChpbnQ2NF90IHZhbHVlLCBpbnQzMl8KICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNp
Y0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogCi0gICAgcm9vdC0+YXBwZW5kTmV3PENv
bnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBw
cm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAog
ICAgICAgICAgICAgcHJvYywgU1NociwgT3JpZ2luKCksCkBAIC0xMTcyNSw4ICsxMTczMSw4IEBA
IHZvaWQgdGVzdFRyaXZpYWxJbmZpbml0ZUxvb3AoKQogICAgIFByb2NlZHVyZSBwcm9jOwogICAg
IEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2NrKCk7CiAgICAgQmFzaWNCbG9jayogbG9v
cCA9IHByb2MuYWRkQmxvY2soKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihw
cm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKGxvb3ApKTsKLSAgICBsb29wLT5h
cHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJs
b2NrKGxvb3ApKTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwg
T3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayhsb29wKSk7CisgICAgbG9vcC0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sobG9vcCkpOwog
CiAgICAgY29tcGlsZShwcm9jKTsKIH0KQEAgLTExNzQwLDE1ICsxMTc0NiwxNSBAQCB2b2lkIHRl
c3RGb2xkUGF0aEVxdWFsKCkKIAogICAgIFZhbHVlKiBhcmcgPSByb290LT5hcHBlbmROZXc8QXJn
dW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CiAK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdD
b250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksIGFyZywgRnJlcXVl
bnRlZEJsb2NrKHRoZW5CbG9jayksIEZyZXF1ZW50ZWRCbG9jayhlbHNlQmxvY2spKTsKIAotICAg
IHRoZW5CbG9jay0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgdGhlbkJsb2NrLT5hcHBl
bmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAg
ICAgIHRoZW5CbG9jay0+YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgICAgIHByb2MsIEVxdWFs
LCBPcmlnaW4oKSwgYXJnLCB0aGVuQmxvY2stPmFwcGVuZE5ldzxDb25zdFB0clZhbHVlPihwcm9j
LCBPcmlnaW4oKSwgMCkpKTsKIAotICAgIGVsc2VCbG9jay0+YXBwZW5kTmV3PENvbnRyb2xWYWx1
ZT4oCisgICAgZWxzZUJsb2NrLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHByb2Ms
IFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIGVsc2VCbG9jay0+YXBwZW5kTmV3PFZhbHVlPigK
ICAgICAgICAgICAgIHByb2MsIEVxdWFsLCBPcmlnaW4oKSwgYXJnLCBlbHNlQmxvY2stPmFwcGVu
ZE5ldzxDb25zdFB0clZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMCkpKTsKQEAgLTExNzY2LDcgKzEx
NzcyLDcgQEAgdm9pZCB0ZXN0TFNoaWZ0U2VsZjMyKCkKICAgICBWYWx1ZSogYXJnID0gcm9vdC0+
YXBwZW5kTmV3PFZhbHVlPigKICAgICAgICAgcHJvYywgVHJ1bmMsIE9yaWdpbigpLAogICAgICAg
ICByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCkpOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAor
ICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgcHJvYywgUmV0dXJuLCBP
cmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBTaGwsIE9yaWdp
bigpLCBhcmcsIGFyZykpOwogCkBAIC0xMTc4OSw3ICsxMTc5NSw3IEBAIHZvaWQgdGVzdFJTaGlm
dFNlbGYzMigpCiAgICAgVmFsdWUqIGFyZyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAg
ICAgIHByb2MsIFRydW5jLCBPcmlnaW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3Vt
ZW50UmVnVmFsdWU+KHByb2MsIE9yaWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKLSAg
ICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250
cm9sVmFsdWUoCiAgICAgICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3Qt
PmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgU1NociwgT3JpZ2luKCksIGFyZywgYXJnKSk7CiAKQEAg
LTExODEyLDcgKzExODE4LDcgQEAgdm9pZCB0ZXN0VVJTaGlmdFNlbGYzMigpCiAgICAgVmFsdWUq
IGFyZyA9IHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4oCiAgICAgICAgIHByb2MsIFRydW5jLCBPcmln
aW4oKSwKICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PEFyZ3VtZW50UmVnVmFsdWU+KHByb2MsIE9y
aWdpbigpLCBHUFJJbmZvOjphcmd1bWVudEdQUjApKTsKLSAgICByb290LT5hcHBlbmROZXc8Q29u
dHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAgICAgIHBy
b2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1ZT4ocHJv
YywgWlNociwgT3JpZ2luKCksIGFyZywgYXJnKSk7CiAKQEAgLTExODMzLDcgKzExODM5LDcgQEAg
dm9pZCB0ZXN0TFNoaWZ0U2VsZjY0KCkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAgICBCYXNpY0Js
b2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmcgPSByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAgcm9vdC0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdpbigpLAogICAg
ICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywgU2hsLCBPcmln
aW4oKSwgYXJnLCByb290LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwg
YXJnKSkpOwpAQCAtMTE4NTcsNyArMTE4NjMsNyBAQCB2b2lkIHRlc3RSU2hpZnRTZWxmNjQoKQog
ICAgIFByb2NlZHVyZSBwcm9jOwogICAgIEJhc2ljQmxvY2sqIHJvb3QgPSBwcm9jLmFkZEJsb2Nr
KCk7CiAgICAgVmFsdWUqIGFyZyA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKLSAgICByb290LT5hcHBlbmRO
ZXc8Q29udHJvbFZhbHVlPigKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUoCiAgICAg
ICAgIHByb2MsIFJldHVybiwgT3JpZ2luKCksCiAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxWYWx1
ZT4oCiAgICAgICAgICAgICBwcm9jLCBTU2hyLCBPcmlnaW4oKSwgYXJnLCByb290LT5hcHBlbmRO
ZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwgYXJnKSkpOwpAQCAtMTE4ODEsNyArMTE4
ODcsNyBAQCB2b2lkIHRlc3RVUlNoaWZ0U2VsZjY0KCkKICAgICBQcm9jZWR1cmUgcHJvYzsKICAg
ICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOwogICAgIFZhbHVlKiBhcmcgPSBy
b290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86
OmFyZ3VtZW50R1BSMCk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4oCisgICAg
cm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBSZXR1cm4sIE9yaWdp
bigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAgcHJvYywg
WlNociwgT3JpZ2luKCksIGFyZywgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBUcnVuYywg
T3JpZ2luKCksIGFyZykpKTsKQEAgLTExOTE3LDcgKzExOTIzLDcgQEAgdm9pZCB0ZXN0UGF0Y2hw
b2ludERvdWJsZVJlZ3MoKQogICAgICAgICAgICAgbnVtQ2FsbHMrKzsKICAgICAgICAgfSk7CiAK
LSAgICByb290LT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
LCBwYXRjaHBvaW50KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHBy
b2MpOwogICAgIENIRUNLKG51bUNhbGxzID09IDEpOwpAQCAtMTE5NTAsNyArMTE5NTYsNyBAQCB2
b2lkIHRlc3RTcGlsbERlZlNtYWxsZXJUaGFuVXNlKCkKIAogICAgIC8vIE9uIHg4NiwgU3ViIGFk
bWl0IGFuIGFkZHJlc3MgZm9yIGFueSBvcGVyYW5kLiBJZiBpdCB1c2VzIHRoZSBzdGFjaywgdGhl
IHRvcCBiaXRzIG11c3QgYmUgemVyby4KICAgICBWYWx1ZSogcmVzdWx0ID0gcm9vdC0+YXBwZW5k
TmV3PFZhbHVlPihwcm9jLCBTdWIsIE9yaWdpbigpLCBmb3JjZVNwaWxsLCBhcmc2NCk7Ci0gICAg
cm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcmVz
dWx0KTsKKyAgICByb290LT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgUmV0dXJuLCBPcmln
aW4oKSwgcmVzdWx0KTsKIAogICAgIGF1dG8gY29kZSA9IGNvbXBpbGUocHJvYyk7CiAgICAgQ0hF
Q0soaW52b2tlPGludDY0X3Q+KCpjb2RlLCAweGZmZmZmZmZmMDAwMDAwMDApID09IDApOwpAQCAt
MTE5NzAsNyArMTE5NzYsNyBAQCB2b2lkIHRlc3RTcGlsbFVzZUxhcmdlclRoYW5EZWYoKQogCiAg
ICAgVmFsdWUqIGNvbmRpdGlvbiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihw
cm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsKICAgICBWYWx1ZSogYXJndW1l
bnQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQ
UkluZm86OmFyZ3VtZW50R1BSMSk7Ci0gICAgcm9vdC0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4o
CisgICAgcm9vdC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKAogICAgICAgICBwcm9jLCBCcmFuY2gs
IE9yaWdpbigpLAogICAgICAgICByb290LT5hcHBlbmROZXc8VmFsdWU+KAogICAgICAgICAgICAg
cHJvYywgVHJ1bmMsIE9yaWdpbigpLApAQCAtMTE5ODAsMTAgKzExOTg2LDEwIEBAIHZvaWQgdGVz
dFNwaWxsVXNlTGFyZ2VyVGhhbkRlZigpCiAgICAgVmFsdWUqIHRydW5jYXRlZCA9IHRoZW5DYXNl
LT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFpFeHQzMiwgT3JpZ2luKCksCiAgICAgICAgIHRoZW5D
YXNlLT5hcHBlbmROZXc8VmFsdWU+KHByb2MsIFRydW5jLCBPcmlnaW4oKSwgYXJndW1lbnQpKTsK
ICAgICBVcHNpbG9uVmFsdWUqIHRoZW5SZXN1bHQgPSB0aGVuQ2FzZS0+YXBwZW5kTmV3PFVwc2ls
b25WYWx1ZT4ocHJvYywgT3JpZ2luKCksIHRydW5jYXRlZCk7Ci0gICAgdGhlbkNhc2UtPmFwcGVu
ZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2so
dGFpbCkpOworICAgIHRoZW5DYXNlLT5hcHBlbmROZXdDb250cm9sVmFsdWUocHJvYywgSnVtcCwg
T3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CiAKICAgICBVcHNpbG9uVmFsdWUqIGVs
c2VSZXN1bHQgPSBlbHNlQ2FzZS0+YXBwZW5kTmV3PFVwc2lsb25WYWx1ZT4ocHJvYywgT3JpZ2lu
KCksIGFyZ3VtZW50KTsKLSAgICBlbHNlQ2FzZS0+YXBwZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJv
YywgSnVtcCwgT3JpZ2luKCksIEZyZXF1ZW50ZWRCbG9jayh0YWlsKSk7CisgICAgZWxzZUNhc2Ut
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJs
b2NrKHRhaWwpKTsKIAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCAxMDA7ICsraSkgewog
ICAgICAgICBQYXRjaHBvaW50VmFsdWUqIHByZXZlbnRUYWlsRHVwbGljYXRpb24gPSB0YWlsLT5h
cHBlbmROZXc8UGF0Y2hwb2ludFZhbHVlPihwcm9jLCBWb2lkLCBPcmlnaW4oKSk7CkBAIC0xMjAw
NCw3ICsxMjAxMCw3IEBAIHZvaWQgdGVzdFNwaWxsVXNlTGFyZ2VyVGhhbkRlZigpCiAgICAgVmFs
dWUqIHBoaSA9IHRhaWwtPmFwcGVuZE5ldzxWYWx1ZT4ocHJvYywgUGhpLCBJbnQ2NCwgT3JpZ2lu
KCkpOwogICAgIHRoZW5SZXN1bHQtPnNldFBoaShwaGkpOwogICAgIGVsc2VSZXN1bHQtPnNldFBo
aShwaGkpOwotICAgIHRhaWwtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwg
T3JpZ2luKCksIHBoaSk7CisgICAgdGFpbC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIFJl
dHVybiwgT3JpZ2luKCksIHBoaSk7CiAKICAgICBhdXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwog
ICAgIENIRUNLKGludm9rZTx1aW50NjRfdD4oKmNvZGUsIDEsIDB4ZmZmZmZmZmYwMDAwMDAwMCkg
PT0gMCk7CkBAIC0xMjA4NiwxMiArMTIwOTIsMjM5IEBAIHZvaWQgdGVzdExhdGVSZWdpc3Rlcigp
CiAgICAgICAgICAgICBqaXQubm9wKCk7CiAgICAgICAgICAgICBqaXQubm9wKCk7CiAgICAgICAg
IH0pOwotICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3Jp
Z2luKCksIHNlY29uZFBhdGNocG9pbnQpOworICAgIHJvb3QtPmFwcGVuZE5ld0NvbnRyb2xWYWx1
ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBzZWNvbmRQYXRjaHBvaW50KTsKICAgICAKICAgICBh
dXRvIGNvZGUgPSBjb21waWxlKHByb2MpOwogICAgIENIRUNLKGludm9rZTx1aW50NjRfdD4oKmNv
ZGUpID09IHJlc3VsdCk7CiB9CiAKK3ZvaWQgaW50ZXJwcmV0ZXJQcmludChWZWN0b3I8aW50cHRy
X3Q+KiBzdHJlYW0sIGludHB0cl90IHZhbHVlKQoreworICAgIHN0cmVhbS0+YXBwZW5kKHZhbHVl
KTsKK30KKwordm9pZCB0ZXN0SW50ZXJwcmV0ZXIoKQoreworICAgIC8vIFRoaXMgaW1wbGVtZW50
cyBhIHNpbGx5IGludGVycHJldGVyIHRvIHRlc3QgYnVpbGRpbmcgY3VzdG9tIHN3aXRjaCBzdGF0
ZW1lbnRzIHVzaW5nCisgICAgLy8gUGF0Y2hwb2ludC4KKyAgICAKKyAgICBQcm9jZWR1cmUgcHJv
YzsKKyAgICAKKyAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOworICAgIEJh
c2ljQmxvY2sqIGRpc3BhdGNoID0gcHJvYy5hZGRCbG9jaygpOworICAgIEJhc2ljQmxvY2sqIGFk
ZFRvRGF0YVBvaW50ZXIgPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayogYWRkVG9D
b2RlUG9pbnRlciA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBCYXNpY0Jsb2NrKiBhZGRUb0NvZGVQ
b2ludGVyVGFrZW4gPSBwcm9jLmFkZEJsb2NrKCk7CisgICAgQmFzaWNCbG9jayogYWRkVG9Db2Rl
UG9pbnRlck5vdFRha2VuID0gcHJvYy5hZGRCbG9jaygpOworICAgIEJhc2ljQmxvY2sqIGFkZFRv
RGF0YSA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBCYXNpY0Jsb2NrKiBwcmludCA9IHByb2MuYWRk
QmxvY2soKTsKKyAgICBCYXNpY0Jsb2NrKiBzdG9wID0gcHJvYy5hZGRCbG9jaygpOworICAgIAor
ICAgIFZhcmlhYmxlKiBkYXRhUG9pbnRlciA9IHByb2MuYWRkVmFyaWFibGUocG9pbnRlclR5cGUo
KSk7CisgICAgVmFyaWFibGUqIGNvZGVQb2ludGVyID0gcHJvYy5hZGRWYXJpYWJsZShwb2ludGVy
VHlwZSgpKTsKKyAgICAKKyAgICByb290LT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4oCisgICAg
ICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGRhdGFQb2ludGVyLAorICAgICAgICByb290LT5hcHBl
bmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50
R1BSMCkpOworICAgIHJvb3QtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPigKKyAgICAgICAgcHJv
YywgU2V0LCBPcmlnaW4oKSwgY29kZVBvaW50ZXIsCisgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxB
cmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKSk7
CisgICAgVmFsdWUqIGNvbnRleHQgPSByb290LT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4o
cHJvYywgT3JpZ2luKCksIEdQUkluZm86OmFyZ3VtZW50R1BSMik7CisgICAgcm9vdC0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZGlz
cGF0Y2gpKTsKKworICAgIC8vIE5PVEU6IEl0J3MgdG90YWxseSB2YWxpZCBmb3IgdGhpcyBwYXRj
aHBvaW50IHRvIGJlIHRhaWwtZHVwbGljYXRlZC4KKyAgICBWYWx1ZSogY29kZVBvaW50ZXJWYWx1
ZSA9CisgICAgICAgIGRpc3BhdGNoLT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6
OkdldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyKTsKKyAgICBWYWx1ZSogb3Bjb2RlID0gZGlzcGF0
Y2gtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgIHByb2MsIExvYWQsIHBvaW50ZXJU
eXBlKCksIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlKTsKKyAgICBQYXRjaHBvaW50VmFsdWUq
IHBvbHlKdW1wID0gZGlzcGF0Y2gtPmFwcGVuZE5ldzxQYXRjaHBvaW50VmFsdWU+KHByb2MsIFZv
aWQsIE9yaWdpbigpKTsKKyAgICBwb2x5SnVtcC0+ZWZmZWN0cyA9IEVmZmVjdHMoKTsKKyAgICBw
b2x5SnVtcC0+ZWZmZWN0cy50ZXJtaW5hbCA9IHRydWU7CisgICAgcG9seUp1bXAtPmFwcGVuZFNv
bWVSZWdpc3RlcihvcGNvZGUpOworICAgIHBvbHlKdW1wLT5jbG9iYmVyKFJlZ2lzdGVyU2V0Ojpt
YWNyb1NjcmF0Y2hSZWdpc3RlcnMoKSk7CisgICAgcG9seUp1bXAtPm51bUdQU2NyYXRjaFJlZ2lz
dGVycysrOworICAgIGRpc3BhdGNoLT5hcHBlbmRTdWNjZXNzb3IoRnJlcXVlbnRlZEJsb2NrKGFk
ZFRvRGF0YVBvaW50ZXIpKTsKKyAgICBkaXNwYXRjaC0+YXBwZW5kU3VjY2Vzc29yKEZyZXF1ZW50
ZWRCbG9jayhhZGRUb0NvZGVQb2ludGVyKSk7CisgICAgZGlzcGF0Y2gtPmFwcGVuZFN1Y2Nlc3Nv
cihGcmVxdWVudGVkQmxvY2soYWRkVG9EYXRhKSk7CisgICAgZGlzcGF0Y2gtPmFwcGVuZFN1Y2Nl
c3NvcihGcmVxdWVudGVkQmxvY2socHJpbnQpKTsKKyAgICBkaXNwYXRjaC0+YXBwZW5kU3VjY2Vz
c29yKEZyZXF1ZW50ZWRCbG9jayhzdG9wKSk7CisgICAgCisgICAgLy8gT3VyICJvcGNvZGVzIi4K
KyAgICBzdGF0aWMgY29uc3QgaW50cHRyX3QgQWRkRFAgPSAwOworICAgIHN0YXRpYyBjb25zdCBp
bnRwdHJfdCBBZGRDUCA9IDE7CisgICAgc3RhdGljIGNvbnN0IGludHB0cl90IEFkZCA9IDI7Cisg
ICAgc3RhdGljIGNvbnN0IGludHB0cl90IFByaW50ID0gMzsKKyAgICBzdGF0aWMgY29uc3QgaW50
cHRyX3QgU3RvcCA9IDQ7CisgICAgCisgICAgcG9seUp1bXAtPnNldEdlbmVyYXRvcigKKyAgICAg
ICAgWyZdIChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1z
JiBwYXJhbXMpIHsKKyAgICAgICAgICAgIFZlY3RvcjxCb3g8Q0NhbGxIZWxwZXJzOjpMYWJlbD4+
IGxhYmVscyA9IHBhcmFtcy5zdWNjZXNzb3JMYWJlbHMoKTsKKworICAgICAgICAgICAgTWFjcm9B
c3NlbWJsZXJDb2RlUHRyKiBqdW1wVGFibGUgPSBiaXR3aXNlX2Nhc3Q8TWFjcm9Bc3NlbWJsZXJD
b2RlUHRyKj4oCisgICAgICAgICAgICAgICAgcGFyYW1zLnByb2MoKS5hZGREYXRhU2VjdGlvbihz
aXplb2YoTWFjcm9Bc3NlbWJsZXJDb2RlUHRyKSAqIGxhYmVscy5zaXplKCkpKTsKKworICAgICAg
ICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGp1bXBUYWJsZSksIHBh
cmFtcy5ncFNjcmF0Y2goMCkpOworICAgICAgICAgICAgaml0Lmp1bXAoQ0NhbGxIZWxwZXJzOjpC
YXNlSW5kZXgocGFyYW1zLmdwU2NyYXRjaCgwKSwgcGFyYW1zWzBdLmdwcigpLCBDQ2FsbEhlbHBl
cnM6OnRpbWVzUHRyKCkpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaml0LmFkZExpbmtU
YXNrKAorICAgICAgICAgICAgICAgIFsmLCBqdW1wVGFibGUsIGxhYmVsc10gKExpbmtCdWZmZXIm
IGxpbmtCdWZmZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gbGFi
ZWxzLnNpemUoKTsgaS0tOykKKyAgICAgICAgICAgICAgICAgICAgICAgIGp1bXBUYWJsZVtpXSA9
IGxpbmtCdWZmZXIubG9jYXRpb25PZigqbGFiZWxzW2ldKTsKKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgfSk7CisgICAgCisgICAgLy8gQWRkRFAgPG9wZXJhbmQ+OiBhZGRzIDxvcGVyYW5k
PiB0byBEUC4KKyAgICBjb2RlUG9pbnRlclZhbHVlID0KKyAgICAgICAgYWRkVG9EYXRhUG9pbnRl
ci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBjb2Rl
UG9pbnRlcik7CisgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhcmlhYmxlVmFsdWU+
KAorICAgICAgICBwcm9jLCBTZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRlciwKKyAgICAgICAgYWRk
VG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIEIzOjpB
ZGQsIE9yaWdpbigpLAorICAgICAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZh
cmlhYmxlVmFsdWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBkYXRhUG9pbnRlciksCisgICAg
ICAgICAgICBhZGRUb0RhdGFQb2ludGVyLT5hcHBlbmROZXc8VmFsdWU+KAorICAgICAgICAgICAg
ICAgIHByb2MsIE11bCwgT3JpZ2luKCksCisgICAgICAgICAgICAgICAgYWRkVG9EYXRhUG9pbnRl
ci0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAgICAgICAgICAgcHJvYywgTG9h
ZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUsIHNpemVvZihpbnRw
dHJfdCkpLAorICAgICAgICAgICAgICAgIGFkZFRvRGF0YVBvaW50ZXItPmFwcGVuZEludENvbnN0
YW50KAorICAgICAgICAgICAgICAgICAgICBwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwg
c2l6ZW9mKGludHB0cl90KSkpKSk7CisgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZh
cmlhYmxlVmFsdWU+KAorICAgICAgICBwcm9jLCBTZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlciwK
KyAgICAgICAgYWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAg
IHByb2MsIEIzOjpBZGQsIE9yaWdpbigpLCBjb2RlUG9pbnRlclZhbHVlLAorICAgICAgICAgICAg
YWRkVG9EYXRhUG9pbnRlci0+YXBwZW5kSW50Q29uc3RhbnQoCisgICAgICAgICAgICAgICAgcHJv
YywgT3JpZ2luKCksIHBvaW50ZXJUeXBlKCksIHNpemVvZihpbnRwdHJfdCkgKiAyKSkpOworICAg
IGFkZFRvRGF0YVBvaW50ZXItPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmln
aW4oKSwgRnJlcXVlbnRlZEJsb2NrKGRpc3BhdGNoKSk7CisgICAgCisgICAgLy8gQWRkQ1AgPG9w
ZXJhbmQ+OiBhZGRzIDxvcGVyYW5kPiB0byBDUCBpZiB0aGUgY3VycmVudCB2YWx1ZSBhdCBEUCBp
cyBub24temVybywgb3RoZXJ3aXNlCisgICAgLy8gZmFsbHMgdGhyb3VnaCBub3JtYWxseS4KKyAg
ICBjb2RlUG9pbnRlclZhbHVlID0KKyAgICAgICAgYWRkVG9Db2RlUG9pbnRlci0+YXBwZW5kTmV3
PFZhcmlhYmxlVmFsdWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlcik7Cisg
ICAgVmFsdWUqIGRhdGFQb2ludGVyVmFsdWUgPQorICAgICAgICBhZGRUb0NvZGVQb2ludGVyLT5h
cHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwgT3JpZ2luKCksIGRhdGFQb2lu
dGVyKTsKKyAgICBhZGRUb0NvZGVQb2ludGVyLT5hcHBlbmROZXdDb250cm9sVmFsdWUoCisgICAg
ICAgIHByb2MsIEJyYW5jaCwgT3JpZ2luKCksCisgICAgICAgIGFkZFRvQ29kZVBvaW50ZXItPmFw
cGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVyVHlw
ZSgpLCBPcmlnaW4oKSwgZGF0YVBvaW50ZXJWYWx1ZSksCisgICAgICAgIEZyZXF1ZW50ZWRCbG9j
ayhhZGRUb0NvZGVQb2ludGVyVGFrZW4pLCBGcmVxdWVudGVkQmxvY2soYWRkVG9Db2RlUG9pbnRl
ck5vdFRha2VuKSk7CisgICAgYWRkVG9Db2RlUG9pbnRlclRha2VuLT5hcHBlbmROZXc8VmFyaWFi
bGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2ludGVyLAorICAg
ICAgICBhZGRUb0NvZGVQb2ludGVyVGFrZW4tPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAg
ICBwcm9jLCBCMzo6QWRkLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwKKyAgICAgICAgICAg
IGFkZFRvQ29kZVBvaW50ZXJUYWtlbi0+YXBwZW5kTmV3PFZhbHVlPigKKyAgICAgICAgICAgICAg
ICBwcm9jLCBNdWwsIE9yaWdpbigpLAorICAgICAgICAgICAgICAgIGFkZFRvQ29kZVBvaW50ZXJU
YWtlbi0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAgICAgICAgICAgcHJvYywg
TG9hZCwgcG9pbnRlclR5cGUoKSwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUsIHNpemVvZihp
bnRwdHJfdCkpLAorICAgICAgICAgICAgICAgIGFkZFRvQ29kZVBvaW50ZXJUYWtlbi0+YXBwZW5k
SW50Q29uc3RhbnQoCisgICAgICAgICAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLCBwb2ludGVy
VHlwZSgpLCBzaXplb2YoaW50cHRyX3QpKSkpKTsKKyAgICBhZGRUb0NvZGVQb2ludGVyVGFrZW4t
PmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJs
b2NrKGRpc3BhdGNoKSk7CisgICAgYWRkVG9Db2RlUG9pbnRlck5vdFRha2VuLT5hcHBlbmROZXc8
VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2ludGVy
LAorICAgICAgICBhZGRUb0NvZGVQb2ludGVyTm90VGFrZW4tPmFwcGVuZE5ldzxWYWx1ZT4oCisg
ICAgICAgICAgICBwcm9jLCBCMzo6QWRkLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwKKyAg
ICAgICAgICAgIGFkZFRvQ29kZVBvaW50ZXJOb3RUYWtlbi0+YXBwZW5kSW50Q29uc3RhbnQoCisg
ICAgICAgICAgICAgICAgcHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBlKCksIHNpemVvZihpbnRw
dHJfdCkgKiAyKSkpOworICAgIGFkZFRvQ29kZVBvaW50ZXJOb3RUYWtlbi0+YXBwZW5kTmV3Q29u
dHJvbFZhbHVlKAorICAgICAgICBwcm9jLCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2Nr
KGRpc3BhdGNoKSk7CisKKyAgICAvLyBBZGQgPG9wZXJhbmQ+OiBhZGRzIDxvcGVyYW5kPiB0byB0
aGUgc2xvdCBwb2ludGVkIHRvIGJ5IERQLgorICAgIGNvZGVQb2ludGVyVmFsdWUgPSBhZGRUb0Rh
dGEtPmFwcGVuZE5ldzxWYXJpYWJsZVZhbHVlPihwcm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwgY29k
ZVBvaW50ZXIpOworICAgIGRhdGFQb2ludGVyVmFsdWUgPSBhZGRUb0RhdGEtPmFwcGVuZE5ldzxW
YXJpYWJsZVZhbHVlPihwcm9jLCBCMzo6R2V0LCBPcmlnaW4oKSwgZGF0YVBvaW50ZXIpOworICAg
IGFkZFRvRGF0YS0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgcHJvYywgU3RvcmUs
IE9yaWdpbigpLAorICAgICAgICBhZGRUb0RhdGEtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAg
ICAgICBwcm9jLCBCMzo6QWRkLCBPcmlnaW4oKSwKKyAgICAgICAgICAgIGFkZFRvRGF0YS0+YXBw
ZW5kTmV3PE1lbW9yeVZhbHVlPigKKyAgICAgICAgICAgICAgICBwcm9jLCBMb2FkLCBwb2ludGVy
VHlwZSgpLCBPcmlnaW4oKSwgZGF0YVBvaW50ZXJWYWx1ZSksCisgICAgICAgICAgICBhZGRUb0Rh
dGEtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4oCisgICAgICAgICAgICAgICAgcHJvYywgTG9hZCwg
cG9pbnRlclR5cGUoKSwgT3JpZ2luKCksIGNvZGVQb2ludGVyVmFsdWUsIHNpemVvZihpbnRwdHJf
dCkpKSwKKyAgICAgICAgZGF0YVBvaW50ZXJWYWx1ZSk7CisgICAgYWRkVG9EYXRhLT5hcHBlbmRO
ZXc8VmFyaWFibGVWYWx1ZT4oCisgICAgICAgIHByb2MsIFNldCwgT3JpZ2luKCksIGNvZGVQb2lu
dGVyLAorICAgICAgICBhZGRUb0RhdGEtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICBw
cm9jLCBCMzo6QWRkLCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwKKyAgICAgICAgICAgIGFk
ZFRvRGF0YS0+YXBwZW5kSW50Q29uc3RhbnQocHJvYywgT3JpZ2luKCksIHBvaW50ZXJUeXBlKCks
IHNpemVvZihpbnRwdHJfdCkgKiAyKSkpOworICAgIGFkZFRvRGF0YS0+YXBwZW5kTmV3Q29udHJv
bFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2soZGlzcGF0Y2gpKTsK
KyAgICAKKyAgICAvLyBQcmludDogInByaW50cyIgdGhlIHZhbHVlIHBvaW50ZWQgdG8gYnkgRFAu
IFdoYXQgdGhpcyBhY3R1YWxseSBtZWFucyBpcyB0aGF0IHRoZSB2YWx1ZSBpcworICAgIC8vIGFw
cGVuZGVkIHRvIHRoZSBzdHJlYW0gdmVjdG9yIGJ5IHRoZSBpbnRlcnByZXRlclByaW50IGZ1bmN0
aW9uLgorICAgIGNvZGVQb2ludGVyVmFsdWUgPSBwcmludC0+YXBwZW5kTmV3PFZhcmlhYmxlVmFs
dWU+KHByb2MsIEIzOjpHZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlcik7CisgICAgZGF0YVBvaW50
ZXJWYWx1ZSA9IHByaW50LT5hcHBlbmROZXc8VmFyaWFibGVWYWx1ZT4ocHJvYywgQjM6OkdldCwg
T3JpZ2luKCksIGRhdGFQb2ludGVyKTsKKyAgICBwcmludC0+YXBwZW5kTmV3PENDYWxsVmFsdWU+
KAorICAgICAgICBwcm9jLCBWb2lkLCBPcmlnaW4oKSwKKyAgICAgICAgcHJpbnQtPmFwcGVuZE5l
dzxDb25zdFB0clZhbHVlPigKKyAgICAgICAgICAgIHByb2MsIE9yaWdpbigpLCBiaXR3aXNlX2Nh
c3Q8dm9pZCo+KGludGVycHJldGVyUHJpbnQpKSwKKyAgICAgICAgY29udGV4dCwKKyAgICAgICAg
cHJpbnQtPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4ocHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwg
T3JpZ2luKCksIGRhdGFQb2ludGVyVmFsdWUpKTsKKyAgICBwcmludC0+YXBwZW5kTmV3PFZhcmlh
YmxlVmFsdWU+KAorICAgICAgICBwcm9jLCBTZXQsIE9yaWdpbigpLCBjb2RlUG9pbnRlciwKKyAg
ICAgICAgcHJpbnQtPmFwcGVuZE5ldzxWYWx1ZT4oCisgICAgICAgICAgICBwcm9jLCBCMzo6QWRk
LCBPcmlnaW4oKSwgY29kZVBvaW50ZXJWYWx1ZSwKKyAgICAgICAgICAgIHByaW50LT5hcHBlbmRJ
bnRDb25zdGFudChwcm9jLCBPcmlnaW4oKSwgcG9pbnRlclR5cGUoKSwgc2l6ZW9mKGludHB0cl90
KSkpKTsKKyAgICBwcmludC0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdp
bigpLCBGcmVxdWVudGVkQmxvY2soZGlzcGF0Y2gpKTsKKyAgICAKKyAgICAvLyBTdG9wOiByZXR1
cm5zLgorICAgIHN0b3AtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZSgKKyAgICAgICAgcHJvYywgUmV0
dXJuLCBPcmlnaW4oKSwKKyAgICAgICAgc3RvcC0+YXBwZW5kSW50Q29uc3RhbnQocHJvYywgT3Jp
Z2luKCksIHBvaW50ZXJUeXBlKCksIDApKTsKKyAgICAKKyAgICBhdXRvIGludGVycHJldGVyID0g
Y29tcGlsZShwcm9jKTsKKyAgICAKKyAgICBWZWN0b3I8aW50cHRyX3Q+IGRhdGE7CisgICAgVmVj
dG9yPGludHB0cl90PiBjb2RlOworICAgIFZlY3RvcjxpbnRwdHJfdD4gc3RyZWFtOworICAgIAor
ICAgIGRhdGEuYXBwZW5kKDEpOworICAgIGRhdGEuYXBwZW5kKDApOworICAgIAorICAgIGlmIChz
aG91bGRCZVZlcmJvc2UoKSkKKyAgICAgICAgZGF0YUxvZygiZGF0YSA9ICIsIGxpc3REdW1wKGRh
dGEpLCAiXG4iKTsKKyAgICAKKyAgICAvLyBXZSdsbCB3cml0ZSBhIHByb2dyYW0gdGhhdCBwcmlu
dHMgdGhlIG51bWJlcnMgMS4uMTAwLgorICAgIC8vIFdlIGV4cGVjdCBEUCB0byBwb2ludCBhdCAj
MC4KKyAgICBjb2RlLmFwcGVuZChBZGRDUCk7CisgICAgY29kZS5hcHBlbmQoNik7IC8vIGdvIHRv
IGxvb3AgYm9keQorICAgIAorICAgIC8vIExvb3AgcmUtZW50cnk6CisgICAgLy8gV2UgZXhwZWN0
IERQIHRvIHBvaW50IGF0ICMxIGFuZCBmb3IgIzEgdG8gYmUgb2Zmc2V0IGJ5IC0xMDAuCisgICAg
Y29kZS5hcHBlbmQoQWRkKTsKKyAgICBjb2RlLmFwcGVuZCgxMDApOworICAgIAorICAgIGNvZGUu
YXBwZW5kKEFkZERQKTsKKyAgICBjb2RlLmFwcGVuZCgtMSk7CisgICAgCisgICAgLy8gTG9vcCBo
ZWFkZXI6CisgICAgLy8gV2UgZXhwZWN0IERQIHRvIHBvaW50IGF0ICMwLgorICAgIGNvZGUuYXBw
ZW5kKEFkZERQKTsKKyAgICBjb2RlLmFwcGVuZCgxKTsKKyAgICAKKyAgICBjb2RlLmFwcGVuZChB
ZGQpOworICAgIGNvZGUuYXBwZW5kKDEpOworICAgIAorICAgIGNvZGUuYXBwZW5kKFByaW50KTsK
KyAgICAKKyAgICBjb2RlLmFwcGVuZChBZGQpOworICAgIGNvZGUuYXBwZW5kKC0xMDApOworICAg
IAorICAgIC8vIFdlIHdhbnQgdG8gc3RvcCBpZiBpdCdzIHplcm8gYW5kIGNvbnRpbnVlIGlmIGl0
J3Mgbm9uLXplcm8uIEFkZENQIHRha2VzIHRoZSBicmFuY2ggaWYgaXQncworICAgIC8vIG5vbi16
ZXJvLgorICAgIGNvZGUuYXBwZW5kKEFkZENQKTsKKyAgICBjb2RlLmFwcGVuZCgtMTEpOyAvLyBn
byB0byBsb29wIHJlLWVudHJ5LgorICAgIAorICAgIGNvZGUuYXBwZW5kKFN0b3ApOworICAgIAor
ICAgIGlmIChzaG91bGRCZVZlcmJvc2UoKSkKKyAgICAgICAgZGF0YUxvZygiY29kZSA9ICIsIGxp
c3REdW1wKGNvZGUpLCAiXG4iKTsKKyAgICAKKyAgICBDSEVDSyghaW52b2tlPGludHB0cl90Pigq
aW50ZXJwcmV0ZXIsIGRhdGEuZGF0YSgpLCBjb2RlLmRhdGEoKSwgJnN0cmVhbSkpOworICAgIAor
ICAgIENIRUNLKHN0cmVhbS5zaXplKCkgPT0gMTAwKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgMTAwOyArK2kpCisgICAgICAgIENIRUNLKHN0cmVhbVtpXSA9PSBpICsgMSk7CisgICAg
CisgICAgaWYgKHNob3VsZEJlVmVyYm9zZSgpKQorICAgICAgICBkYXRhTG9nKCJzdHJlYW0gPSAi
LCBsaXN0RHVtcChzdHJlYW0pLCAiXG4iKTsKK30KKwogdm9pZCB0ZXN0UmVkdWNlU3RyZW5ndGhD
aGVja0JvdHRvbVVzZUluQW5vdGhlckJsb2NrKCkKIHsKICAgICBQcm9jZWR1cmUgcHJvYzsKQEAg
LTEyMTEwLDcgKzEyMzQzLDcgQEAgdm9pZCB0ZXN0UmVkdWNlU3RyZW5ndGhDaGVja0JvdHRvbVVz
ZUluQQogICAgICAgICAgICAgaml0LnJldCgpOwogICAgICAgICB9KTsKICAgICBWYWx1ZSogYXJn
ID0gb25lLT5hcHBlbmROZXc8QXJndW1lbnRSZWdWYWx1ZT4ocHJvYywgT3JpZ2luKCksIEdQUklu
Zm86OmFyZ3VtZW50R1BSMCk7Ci0gICAgb25lLT5hcHBlbmROZXc8Q29udHJvbFZhbHVlPihwcm9j
LCBKdW1wLCBPcmlnaW4oKSwgRnJlcXVlbnRlZEJsb2NrKHR3bykpOworICAgIG9uZS0+YXBwZW5k
TmV3Q29udHJvbFZhbHVlKHByb2MsIEp1bXAsIE9yaWdpbigpLCBGcmVxdWVudGVkQmxvY2sodHdv
KSk7CiAgICAgCiAgICAgY2hlY2sgPSB0d28tPmFwcGVuZE5ldzxDaGVja1ZhbHVlPigKICAgICAg
ICAgcHJvYywgQ2hlY2tBZGQsIE9yaWdpbigpLCBhcmcsCkBAIC0xMjExOSw3ICsxMjM1Miw3IEBA
IHZvaWQgdGVzdFJlZHVjZVN0cmVuZ3RoQ2hlY2tCb3R0b21Vc2VJbkEKICAgICAgICAgWyZdIChD
Q2FsbEhlbHBlcnMmLCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7CiAgICAgICAg
ICAgICBDSEVDSyghIlNob3VsZCBub3QgZXhlY3V0ZSIpOwogICAgICAgICB9KTsKLSAgICB0d28t
PmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIFJldHVybiwgT3JpZ2luKCksIGNoZWNrKTsK
KyAgICB0d28tPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBSZXR1cm4sIE9yaWdpbigpLCBj
aGVjayk7CiAgICAgCiAgICAgcHJvYy5yZXNldFJlYWNoYWJpbGl0eSgpOwogICAgIHJlZHVjZVN0
cmVuZ3RoKHByb2MpOwpAQCAtMTIxMzQsMTEgKzEyMzY3LDExIEBAIHZvaWQgdGVzdFJlc2V0UmVh
Y2hhYmlsaXR5RGFuZ2xpbmdSZWZlcmUKICAgICAKICAgICBVcHNpbG9uVmFsdWUqIHVwc2lsb24g
PSBvbmUtPmFwcGVuZE5ldzxVcHNpbG9uVmFsdWU+KAogICAgICAgICBwcm9jLCBPcmlnaW4oKSwg
b25lLT5hcHBlbmROZXc8Q29uc3QzMlZhbHVlPihwcm9jLCBPcmlnaW4oKSwgNDIpKTsKLSAgICBv
bmUtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2MsIE9vcHMsIE9yaWdpbigpKTsKKyAgICBv
bmUtPmFwcGVuZE5ld0NvbnRyb2xWYWx1ZShwcm9jLCBPb3BzLCBPcmlnaW4oKSk7CiAgICAgCiAg
ICAgVmFsdWUqIHBoaSA9IHR3by0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBQaGksIEludDMyLCBP
cmlnaW4oKSk7CiAgICAgdXBzaWxvbi0+c2V0UGhpKHBoaSk7Ci0gICAgdHdvLT5hcHBlbmROZXc8
Q29udHJvbFZhbHVlPihwcm9jLCBPb3BzLCBPcmlnaW4oKSk7CisgICAgdHdvLT5hcHBlbmROZXdD
b250cm9sVmFsdWUocHJvYywgT29wcywgT3JpZ2luKCkpOwogICAgIAogICAgIHByb2MucmVzZXRS
ZWFjaGFiaWxpdHkoKTsKICAgICB2YWxpZGF0ZShwcm9jKTsKQEAgLTEzNTQ3LDYgKzEzNzgwLDcg
QEAgdm9pZCBydW4oY29uc3QgY2hhciogZmlsdGVyKQogICAgIFJVTih0ZXN0U3BpbGxEZWZTbWFs
bGVyVGhhblVzZSgpKTsKICAgICBSVU4odGVzdFNwaWxsVXNlTGFyZ2VyVGhhbkRlZigpKTsKICAg
ICBSVU4odGVzdExhdGVSZWdpc3RlcigpKTsKKyAgICBSVU4odGVzdEludGVycHJldGVyKCkpOwog
ICAgIFJVTih0ZXN0UmVkdWNlU3RyZW5ndGhDaGVja0JvdHRvbVVzZUluQW5vdGhlckJsb2NrKCkp
OwogICAgIFJVTih0ZXN0UmVzZXRSZWFjaGFiaWxpdHlEYW5nbGluZ1JlZmVyZW5jZSgpKTsKIApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDb2RlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuY3BwCShyZXZpc2lvbiAy
MDMzNzEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJBaXJDQ2FsbFNwZWNpYWwu
aCIKICNpbmNsdWRlICJCM0Jhc2ljQmxvY2tVdGlscy5oIgorI2luY2x1ZGUgIkIzUHJvY2VkdXJl
LmgiCiAjaW5jbHVkZSAiQjNTdGFja1Nsb3QuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFj
ZSBCMyB7IG5hbWVzcGFjZSBBaXIgewpAQCAtMTM1LDYgKzEzNiwxMSBAQCB2b2lkIENvZGU6OmFk
ZEZhc3RUbXAoVG1wIHRtcCkKICAgICBtX2Zhc3RUbXBzLmFkZCh0bXApOwogfQogCit2b2lkKiBD
b2RlOjphZGREYXRhU2VjdGlvbihzaXplX3Qgc2l6ZSkKK3sKKyAgICByZXR1cm4gbV9wcm9jLmFk
ZERhdGFTZWN0aW9uKHNpemUpOworfQorCiB1bnNpZ25lZCBDb2RlOjpqc0hhc2goKSBjb25zdAog
ewogICAgIHVuc2lnbmVkIHJlc3VsdCA9IDA7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YjMvYWlyL0FpckNvZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
YWlyL0FpckNvZGUuaAkocmV2aXNpb24gMjAzMzcxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJDb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNs
dWRlICJBaXJTcGVjaWFsLmgiCiAjaW5jbHVkZSAiQWlyU3RhY2tTbG90LmgiCiAjaW5jbHVkZSAi
QWlyVG1wLmgiCisjaW5jbHVkZSAiQjNJbmRleE1hcC5oIgogI2luY2x1ZGUgIkIzU3BhcnNlQ29s
bGVjdGlvbi5oIgogI2luY2x1ZGUgIlJlZ2lzdGVyQXRPZmZzZXRMaXN0LmgiCiAjaW5jbHVkZSAi
U3RhY2tBbGlnbm1lbnQuaCIKQEAgLTIwMyw2ICsyMDQsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBh
ZGRGYXN0VG1wKFRtcCk7CiAgICAgYm9vbCBpc0Zhc3RUbXAoVG1wIHRtcCkgY29uc3QgeyByZXR1
cm4gbV9mYXN0VG1wcy5jb250YWlucyh0bXApOyB9CiAgICAgCisgICAgdm9pZCogYWRkRGF0YVNl
Y3Rpb24oc2l6ZV90KTsKKyAgICAKICAgICAvLyBUaGUgbmFtZSBoYXMgdG8gYmUgYSBzdHJpbmcg
bGl0ZXJhbCwgc2luY2Ugd2UgZG9uJ3QgZG8gYW55IG1lbW9yeSBtYW5hZ2VtZW50IGZvciB0aGUg
c3RyaW5nLgogICAgIHZvaWQgc2V0TGFzdFBoYXNlTmFtZShjb25zdCBjaGFyKiBuYW1lKQogICAg
IHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ3VzdG9tLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDdXN0b20uaAkocmV2aXNp
b24gMjAzMzcxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJDdXN0b20uaAko
d29ya2luZyBjb3B5KQpAQCAtODQsMTAgKzg0LDE1IEBAIHN0cnVjdCBQYXRjaEN1c3RvbSB7CiAg
ICAgewogICAgICAgICByZXR1cm4gaW5zdC5hcmdzWzBdLnNwZWNpYWwoKS0+c2hvdWxkVHJ5QWxp
YXNpbmdEZWYoaW5zdCk7CiAgICAgfQorICAgIAorICAgIHN0YXRpYyBib29sIGlzVGVybWluYWwo
SW5zdCYgaW5zdCkKKyAgICB7CisgICAgICAgIHJldHVybiBpbnN0LmFyZ3NbMF0uc3BlY2lhbCgp
LT5pc1Rlcm1pbmFsKGluc3QpOworICAgIH0KIAogICAgIHN0YXRpYyBib29sIGhhc05vbkFyZ05v
bkNvbnRyb2xFZmZlY3RzKEluc3QmIGluc3QpCiAgICAgewotICAgICAgICByZXR1cm4gaW5zdC5h
cmdzWzBdLnNwZWNpYWwoKS0+aGFzTm9uQXJnTm9uQ29udHJvbEVmZmVjdHMoKTsKKyAgICAgICAg
cmV0dXJuIGluc3QuYXJnc1swXS5zcGVjaWFsKCktPmhhc05vbkFyZ05vbkNvbnRyb2xFZmZlY3Rz
KGluc3QpOwogICAgIH0KIAogICAgIHN0YXRpYyBDQ2FsbEhlbHBlcnM6Okp1bXAgZ2VuZXJhdGUo
CkBAIC0xMzgsNiArMTQzLDExIEBAIHN0cnVjdCBDQ2FsbEN1c3RvbSB7CiAgICAgewogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CisgICAgCisgICAgc3RhdGljIGJvb2wgaXNUZXJtaW5hbChJ
bnN0JikKKyAgICB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAKICAgICBzdGF0aWMg
Ym9vbCBoYXNOb25BcmdOb25Db250cm9sRWZmZWN0cyhJbnN0JikKICAgICB7CkBAIC0xOTcsNiAr
MjA3LDExIEBAIHN0cnVjdCBTaHVmZmxlQ3VzdG9tIHsKICAgICAgICAgfQogICAgIH0KIAorICAg
IHN0YXRpYyBib29sIGlzVGVybWluYWwoSW5zdCYpCisgICAgeworICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgfQorCiAgICAgc3RhdGljIGJvb2wgaGFzTm9uQXJnTm9uQ29udHJvbEVmZmVjdHMo
SW5zdCYpCiAgICAgewogICAgICAgICByZXR1cm4gZmFsc2U7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRlLmNwcAkocmV2aXNpb24gMjAzMzcxKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0ZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTUwLDggKzUwLDEwIEBACiAjaW5jbHVkZSAiQjNJbmRleE1hcC5oIgogI2luY2x1ZGUg
IkIzUHJvY2VkdXJlLmgiCiAjaW5jbHVkZSAiQjNUaW1pbmdTY29wZS5oIgorI2luY2x1ZGUgIkIz
VmFsdWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQ0NhbGxIZWxwZXJzLmgiCiAjaW5jbHVkZSAiRGlz
YWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlLmgiCisjaW5jbHVkZSAiTGlua0J1ZmZlci5o
IgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEIzIHsgbmFtZXNwYWNlIEFpciB7CiAKQEAg
LTE3MywxMiArMTc1LDE2IEBAIHZvaWQgZ2VuZXJhdGUoQ29kZSYgY29kZSwgQ0NhbGxIZWxwZXJz
JiAKIAogICAgIEdlbmVyYXRpb25Db250ZXh0IGNvbnRleHQ7CiAgICAgY29udGV4dC5jb2RlID0g
JmNvZGU7Ci0gICAgSW5kZXhNYXA8QmFzaWNCbG9jaywgQ0NhbGxIZWxwZXJzOjpMYWJlbD4gYmxv
Y2tMYWJlbHMoY29kZS5zaXplKCkpOworICAgIGNvbnRleHQuYmxvY2tMYWJlbHMucmVzaXplKGNv
ZGUuc2l6ZSgpKTsKKyAgICBmb3IgKEJhc2ljQmxvY2sqIGJsb2NrIDogY29kZSkgeworICAgICAg
ICBpZiAoYmxvY2spCisgICAgICAgICAgICBjb250ZXh0LmJsb2NrTGFiZWxzW2Jsb2NrXSA9IEJv
eDxDQ2FsbEhlbHBlcnM6OkxhYmVsPjo6Y3JlYXRlKCk7CisgICAgfQogICAgIEluZGV4TWFwPEJh
c2ljQmxvY2ssIENDYWxsSGVscGVyczo6SnVtcExpc3Q+IGJsb2NrSnVtcHMoY29kZS5zaXplKCkp
OwogCiAgICAgYXV0byBsaW5rID0gWyZdIChDQ2FsbEhlbHBlcnM6Okp1bXAganVtcCwgQmFzaWNC
bG9jayogdGFyZ2V0KSB7Ci0gICAgICAgIGlmIChibG9ja0xhYmVsc1t0YXJnZXRdLmlzU2V0KCkp
IHsKLSAgICAgICAgICAgIGp1bXAubGlua1RvKGJsb2NrTGFiZWxzW3RhcmdldF0sICZqaXQpOwor
ICAgICAgICBpZiAoY29udGV4dC5ibG9ja0xhYmVsc1t0YXJnZXRdLT5pc1NldCgpKSB7CisgICAg
ICAgICAgICBqdW1wLmxpbmtUbygqY29udGV4dC5ibG9ja0xhYmVsc1t0YXJnZXRdLCAmaml0KTsK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC0xOTUsMTYgKzIwMSwyMiBAQCB2
b2lkIGdlbmVyYXRlKENvZGUmIGNvZGUsIENDYWxsSGVscGVycyYgCiAgICAgfTsKIAogICAgIGZv
ciAoQmFzaWNCbG9jayogYmxvY2sgOiBjb2RlKSB7CisgICAgICAgIGNvbnRleHQuY3VycmVudEJs
b2NrID0gYmxvY2s7CisgICAgICAgIGNvbnRleHQuaW5kZXhJbkJsb2NrID0gVUlOVF9NQVg7CiAg
ICAgICAgIGJsb2NrSnVtcHNbYmxvY2tdLmxpbmsoJmppdCk7Ci0gICAgICAgIGJsb2NrTGFiZWxz
W2Jsb2NrXSA9IGppdC5sYWJlbCgpOworICAgICAgICBDQ2FsbEhlbHBlcnM6OkxhYmVsIGxhYmVs
ID0gaml0LmxhYmVsKCk7CisgICAgICAgICpjb250ZXh0LmJsb2NrTGFiZWxzW2Jsb2NrXSA9IGxh
YmVsOwogICAgICAgICBBU1NFUlQoYmxvY2stPnNpemUoKSA+PSAxKTsKICAgICAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IGJsb2NrLT5zaXplKCkgLSAxOyArK2kpIHsKKyAgICAgICAgICAg
IGNvbnRleHQuaW5kZXhJbkJsb2NrID0gaTsKICAgICAgICAgICAgIEluc3QmIGluc3QgPSBibG9j
ay0+YXQoaSk7CiAgICAgICAgICAgICBhZGRJdGVtKGluc3QpOwogICAgICAgICAgICAgQ0NhbGxI
ZWxwZXJzOjpKdW1wIGp1bXAgPSBpbnN0LmdlbmVyYXRlKGppdCwgY29udGV4dCk7CiAgICAgICAg
ICAgICBBU1NFUlRfVU5VU0VEKGp1bXAsICFqdW1wLmlzU2V0KCkpOwogICAgICAgICB9CiAKKyAg
ICAgICAgY29udGV4dC5pbmRleEluQmxvY2sgPSBibG9jay0+c2l6ZSgpIC0gMTsKKyAgICAgICAg
CiAgICAgICAgIGlmIChibG9jay0+bGFzdCgpLm9wY29kZSA9PSBKdW1wCiAgICAgICAgICAgICAm
JiBibG9jay0+c3VjY2Vzc29yQmxvY2soMCkgPT0gY29kZS5maW5kTmV4dEJsb2NrKGJsb2NrKSkK
ICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtMjI4LDI2ICsyNDAsMzAgQEAgdm9pZCBnZW5lcmF0
ZShDb2RlJiBjb2RlLCBDQ2FsbEhlbHBlcnMmIAogICAgICAgICAgICAgYWRkSXRlbShibG9jay0+
bGFzdCgpKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9Ci0KKyAgICAgICAgCiAg
ICAgICAgIENDYWxsSGVscGVyczo6SnVtcCBqdW1wID0gYmxvY2stPmxhc3QoKS5nZW5lcmF0ZShq
aXQsIGNvbnRleHQpOwotICAgICAgICBzd2l0Y2ggKGJsb2NrLT5udW1TdWNjZXNzb3JzKCkpIHsK
LSAgICAgICAgY2FzZSAwOgotICAgICAgICAgICAgQVNTRVJUKCFqdW1wLmlzU2V0KCkpOwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgMToKLSAgICAgICAgICAgIGxpbmsoanVtcCwg
YmxvY2stPnN1Y2Nlc3NvckJsb2NrKDApKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIDI6Ci0gICAgICAgICAgICBsaW5rKGp1bXAsIGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKSk7
Ci0gICAgICAgICAgICBpZiAoYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDEpICE9IGNvZGUuZmluZE5l
eHRCbG9jayhibG9jaykpCi0gICAgICAgICAgICAgICAgbGluayhqaXQuanVtcCgpLCBibG9jay0+
c3VjY2Vzc29yQmxvY2soMSkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGRlZmF1bHQ6
Ci0gICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIC8vIFRoZSBqdW1wIHdvbid0IGJlIHNldCBmb3IgcGF0Y2hwb2ludHMu
IEl0IHdvbid0IGJlIHNldCBmb3IgT29wcyBiZWNhdXNlIHRoZW4gaXQgd29uJ3QgaGF2ZQorICAg
ICAgICAvLyBhbnkgc3VjY2Vzc29ycy4KKyAgICAgICAgaWYgKGp1bXAuaXNTZXQoKSkgeworICAg
ICAgICAgICAgc3dpdGNoIChibG9jay0+bnVtU3VjY2Vzc29ycygpKSB7CisgICAgICAgICAgICBj
YXNlIDE6CisgICAgICAgICAgICAgICAgbGluayhqdW1wLCBibG9jay0+c3VjY2Vzc29yQmxvY2so
MCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAyOgorICAgICAg
ICAgICAgICAgIGxpbmsoanVtcCwgYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDApKTsKKyAgICAgICAg
ICAgICAgICBpZiAoYmxvY2stPnN1Y2Nlc3NvckJsb2NrKDEpICE9IGNvZGUuZmluZE5leHRCbG9j
ayhibG9jaykpCisgICAgICAgICAgICAgICAgICAgIGxpbmsoaml0Lmp1bXAoKSwgYmxvY2stPnN1
Y2Nlc3NvckJsb2NrKDEpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBh
ZGRJdGVtKGJsb2NrLT5sYXN0KCkpOwogICAgIH0KKyAgICAKKyAgICBjb250ZXh0LmN1cnJlbnRC
bG9jayA9IG51bGxwdHI7CisgICAgY29udGV4dC5pbmRleEluQmxvY2sgPSBVSU5UX01BWDsKIAog
ICAgIHBjVG9PcmlnaW5NYXAuYXBwZW5kSXRlbShqaXQubGFiZWwoKSwgT3JpZ2luKCkpOwogICAg
IC8vIEZJWE1FOiBNYWtlIGxhdGUgcGF0aHMgaGF2ZSBPcmlnaW5zOiBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzNjg5CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvYWlyL0FpckdlbmVyYXRpb25Db250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJHZW5lcmF0aW9uQ29udGV4dC5oCShyZXZpc2lvbiAyMDMz
NzEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRpb25Db250ZXh0
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
NS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMjgsMTQgKzI4LDE0IEBACiAKICNpZiBFTkFCTEUoQjNfSklUKQog
CisjaW5jbHVkZSAiQWlyQmFzaWNCbG9jay5oIgorI2luY2x1ZGUgIkIzSW5kZXhNYXAuaCIKKyNp
bmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKKyNpbmNsdWRlIDx3dGYvQm94Lmg+CiAjaW5jbHVkZSA8
d3RmL1NoYXJlZFRhc2suaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKLW5hbWVzcGFjZSBK
U0MgewotCi1jbGFzcyBDQ2FsbEhlbHBlcnM7Ci0KLW5hbWVzcGFjZSBCMyB7IG5hbWVzcGFjZSBB
aXIgeworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7IG5hbWVzcGFjZSBBaXIgewogCiBj
bGFzcyBDb2RlOwogCkBAIC00NCw3ICs0NCwxMCBAQCBzdHJ1Y3QgR2VuZXJhdGlvbkNvbnRleHQg
ewogICAgIHR5cGVkZWYgU2hhcmVkVGFzazxMYXRlUGF0aEZ1bmN0aW9uPiBMYXRlUGF0aDsKIAog
ICAgIFZlY3RvcjxSZWZQdHI8TGF0ZVBhdGg+PiBsYXRlUGF0aHM7Ci0gICAgQ29kZSogY29kZTsK
KyAgICBJbmRleE1hcDxCYXNpY0Jsb2NrLCBCb3g8Q0NhbGxIZWxwZXJzOjpMYWJlbD4+IGJsb2Nr
TGFiZWxzOworICAgIEJhc2ljQmxvY2sqIGN1cnJlbnRCbG9jayB7IG51bGxwdHIgfTsKKyAgICB1
bnNpZ25lZCBpbmRleEluQmxvY2sgeyBVSU5UX01BWCB9OworICAgIENvZGUqIGNvZGUgeyBudWxs
cHRyIH07CiB9OwogCiB9IH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpCMzo6QWlyCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckluc3QuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpckluc3QuaAkocmV2aXNpb24gMjAzMzcxKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJbnN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTE2
Myw2ICsxNjMsOSBAQCBwdWJsaWM6CiAgICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBhdXRvLWdlbmVy
YXRlZCBieSBvcGNvZGVfZ2VuZXJhdG9yLnJiLgogICAgIGJvb2wgYWRtaXRzU3RhY2sodW5zaWdu
ZWQgYXJnSW5kZXgpOwogICAgIGJvb2wgYWRtaXRzU3RhY2soQXJnJik7CisgICAgCisgICAgLy8g
RGVmaW5lZCBieSBvcGNvZGVfZ2VuZXJhdG9yLnJiLgorICAgIGJvb2wgaXNUZXJtaW5hbCgpOwog
CiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoaXMgaW5zdHJ1Y3Rpb24gY2FuIGhhdmUgYW55IGVm
ZmVjdHMgb3RoZXIgdGhhbiBjb250cm9sIGZsb3cgb3IgYXJndW1lbnRzLgogICAgIGJvb2wgaGFz
Tm9uQXJnTm9uQ29udHJvbEVmZmVjdHMoKTsKQEAgLTE3NCw2ICsxNzcsOSBAQCBwdWJsaWM6CiAK
ICAgICAvLyBUZWxscyB5b3UgaWYgdGhpcyBvcGVyYXRpb24gaGFzIGFyZyBlZmZlY3RzLgogICAg
IGJvb2wgaGFzQXJnRWZmZWN0cygpOworICAgIAorICAgIC8vIFRlbGxzIHlvdSBpZiB0aGlzIG9w
ZXJhdGlvbiBoYXMgbm9uLWNvbnRyb2wgZWZmZWN0cy4KKyAgICBib29sIGhhc05vbkNvbnRyb2xF
ZmZlY3RzKCkgeyByZXR1cm4gaGFzTm9uQXJnTm9uQ29udHJvbEVmZmVjdHMoKSB8fCBoYXNBcmdF
ZmZlY3RzKCk7IH0KIAogICAgIC8vIEdlbmVyYXRlIHNvbWUgY29kZSBmb3IgdGhpcyBpbnN0cnVj
dGlvbi4gVGhpcyBpcywgbGlrZSwgbGl0ZXJhbGx5IG91ciBiYWNrZW5kLiBJZiB0aGlzIGlzIHRo
ZQogICAgIC8vIHRlcm1pbmFsLCBpdCByZXR1cm5zIHRoZSBqdW1wIHRoYXQgbmVlZHMgdG8gYmUg
bGlua2VkIGZvciB0aGUgInRoZW4iIGNhc2UsIHdpdGggdGhlICJlbHNlIgpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJTaW1wbGlmeUNGRy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJTaW1wbGlmeUNGRy5jcHAJKHJldmlzaW9u
IDIwMzM3MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyU2ltcGxpZnlDRkcu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC05NSwzMyArOTUsMzIgQEAgYm9vbCBzaW1wbGlmeUNGRyhD
b2RlJiBjb2RlKQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIAotICAgICAgICAg
ICAgLy8gTm93IGNoZWNrIGlmIHRoZSBibG9jaydzIHRlcm1pbmFsIGNhbiBiZSByZXBsYWNlZCB3
aXRoIGEganVtcC4KLSAgICAgICAgICAgIGlmIChibG9jay0+bnVtU3VjY2Vzc29ycygpID4gMSkg
ewotICAgICAgICAgICAgICAgIC8vIFRoZSB0ZXJtaW5hbCBtdXN0IG5vdCBoYXZlIHdlaXJkIGVm
ZmVjdHMuCi0gICAgICAgICAgICAgICAgaWYgKCFibG9jay0+bGFzdCgpLmhhc0FyZ0VmZmVjdHMo
KQotICAgICAgICAgICAgICAgICAgICAmJiAhYmxvY2stPmxhc3QoKS5oYXNOb25BcmdOb25Db250
cm9sRWZmZWN0cygpKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIEFsbCBvZiB0aGUgc3VjY2Vz
c29ycyBtdXN0IGJlIHRoZSBzYW1lLgotICAgICAgICAgICAgICAgICAgICBib29sIGFsbFNhbWUg
PSB0cnVlOwotICAgICAgICAgICAgICAgICAgICBCYXNpY0Jsb2NrKiBmaXJzdFN1Y2Nlc3NvciA9
IGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKTsKLSAgICAgICAgICAgICAgICAgICAgZm9yICh1bnNp
Z25lZCBpID0gMTsgaSA8IGJsb2NrLT5udW1TdWNjZXNzb3JzKCk7ICsraSkgewotICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKGJsb2NrLT5zdWNjZXNzb3JCbG9jayhpKSAhPSBmaXJzdFN1Y2Nl
c3NvcikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbFNhbWUgPSBmYWxzZTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBpZiAoYWxsU2Ft
ZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZGF0YUxvZygiQ2hhbmdpbmcgIiwgcG9pbnRlckR1bXAoYmxvY2spLCAi
J3MgdGVybWluYWwgdG8gYSBKdW1wLlxuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBibG9j
ay0+bGFzdCgpID0gSW5zdChKdW1wLCBibG9jay0+bGFzdCgpLm9yaWdpbik7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBibG9jay0+c3VjY2Vzc29ycygpLnJlc2l6ZSgxKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGJsb2NrLT5zdWNjZXNzb3JzKClbMF0uZnJlcXVlbmN5KCkgPSBGcmVxdWVu
Y3lDbGFzczo6Tm9ybWFsOwotICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7
CisgICAgICAgICAgICAvLyBOb3cgY2hlY2sgaWYgdGhlIGJsb2NrJ3MgdGVybWluYWwgY2FuIGJl
IHJlcGxhY2VkIHdpdGggYSBqdW1wLiBUaGUgdGVybWluYWwgbXVzdCBub3QKKyAgICAgICAgICAg
IC8vIGhhdmUgd2VpcmQgZWZmZWN0cy4KKyAgICAgICAgICAgIGlmIChibG9jay0+bnVtU3VjY2Vz
c29ycygpID4gMSAKKyAgICAgICAgICAgICAgICAmJiAhYmxvY2stPmxhc3QoKS5oYXNOb25Db250
cm9sRWZmZWN0cygpKSB7CisgICAgICAgICAgICAgICAgLy8gQWxsIG9mIHRoZSBzdWNjZXNzb3Jz
IG11c3QgYmUgdGhlIHNhbWUuCisgICAgICAgICAgICAgICAgYm9vbCBhbGxTYW1lID0gdHJ1ZTsK
KyAgICAgICAgICAgICAgICBCYXNpY0Jsb2NrKiBmaXJzdFN1Y2Nlc3NvciA9IGJsb2NrLT5zdWNj
ZXNzb3JCbG9jaygwKTsKKyAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAxOyBpIDwg
YmxvY2stPm51bVN1Y2Nlc3NvcnMoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChi
bG9jay0+c3VjY2Vzc29yQmxvY2soaSkgIT0gZmlyc3RTdWNjZXNzb3IpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGFsbFNhbWUgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIGlmIChhbGxTYW1lKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQor
ICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygiQ2hhbmdpbmcgIiwgcG9pbnRlckR1bXAo
YmxvY2spLCAiJ3MgdGVybWluYWwgdG8gYSBKdW1wLlxuIik7CisgICAgICAgICAgICAgICAgICAg
IGJsb2NrLT5sYXN0KCkgPSBJbnN0KEp1bXAsIGJsb2NrLT5sYXN0KCkub3JpZ2luKTsKKyAgICAg
ICAgICAgICAgICAgICAgYmxvY2stPnN1Y2Nlc3NvcnMoKS5yZXNpemUoMSk7CisgICAgICAgICAg
ICAgICAgICAgIGJsb2NrLT5zdWNjZXNzb3JzKClbMF0uZnJlcXVlbmN5KCkgPSBGcmVxdWVuY3lD
bGFzczo6Tm9ybWFsOworICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsKKyAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIC8vIEZpbmFsbHkgaGFu
ZGxlIGp1bXBzIHRvIGEgYmxvY2sgd2l0aCBvbmUgcHJlZGVjZXNzb3IuCi0gICAgICAgICAgICBp
ZiAoYmxvY2stPm51bVN1Y2Nlc3NvcnMoKSA9PSAxKSB7CisgICAgICAgICAgICBpZiAoYmxvY2st
Pm51bVN1Y2Nlc3NvcnMoKSA9PSAxCisgICAgICAgICAgICAgICAgJiYgIWJsb2NrLT5sYXN0KCku
aGFzTm9uQ29udHJvbEVmZmVjdHMoKSkgewogICAgICAgICAgICAgICAgIEJhc2ljQmxvY2sqIHN1
Y2Nlc3NvciA9IGJsb2NrLT5zdWNjZXNzb3JCbG9jaygwKTsKICAgICAgICAgICAgICAgICBpZiAo
c3VjY2Vzc29yICE9IGJsb2NrICYmIHN1Y2Nlc3Nvci0+bnVtUHJlZGVjZXNzb3JzKCkgPT0gMSkg
ewogICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChzdWNjZXNzb3ItPnByZWRlY2Vz
c29yKDApID09IGJsb2NrKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWly
U3BlY2lhbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9B
aXJTcGVjaWFsLmNwcAkocmV2aXNpb24gMjAzMzcxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJTcGVjaWFsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01NSw3ICs1NSwxMiBAQCBPcHRp
b25hbDx1bnNpZ25lZD4gU3BlY2lhbDo6c2hvdWxkVHJ5QWxpCiAgICAgcmV0dXJuIE51bGxvcHQ7
CiB9CiAKLWJvb2wgU3BlY2lhbDo6aGFzTm9uQXJnTm9uQ29udHJvbEVmZmVjdHMoKQorYm9vbCBT
cGVjaWFsOjppc1Rlcm1pbmFsKEluc3QmKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9v
bCBTcGVjaWFsOjpoYXNOb25BcmdOb25Db250cm9sRWZmZWN0cyhJbnN0JikKIHsKICAgICByZXR1
cm4gdHJ1ZTsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyU3BlY2lh
bC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyU3BlY2lh
bC5oCShyZXZpc2lvbiAyMDMzNzEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fp
clNwZWNpYWwuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC04Nyw5ICs4NywxMiBAQCBwdWJsaWM6CiAKICAgICB2
aXJ0dWFsIGNvbnN0IFJlZ2lzdGVyU2V0JiBleHRyYUVhcmx5Q2xvYmJlcmVkUmVncyhJbnN0Jikg
PSAwOwogICAgIHZpcnR1YWwgY29uc3QgUmVnaXN0ZXJTZXQmIGV4dHJhQ2xvYmJlcmVkUmVncyhJ
bnN0JikgPSAwOworICAgIAorICAgIC8vIEJ5IGRlZmF1bHQsIHRoaXMgcmV0dXJucyBmYWxzZS4K
KyAgICB2aXJ0dWFsIGJvb2wgaXNUZXJtaW5hbChJbnN0Jik7CiAKICAgICAvLyBCeSBkZWZhdWx0
LCB0aGlzIHJldHVybnMgdHJ1ZS4KLSAgICB2aXJ0dWFsIGJvb2wgaGFzTm9uQXJnTm9uQ29udHJv
bEVmZmVjdHMoKTsKKyAgICB2aXJ0dWFsIGJvb2wgaGFzTm9uQXJnTm9uQ29udHJvbEVmZmVjdHMo
SW5zdCYpOwogCiAgICAgdm9pZCBkdW1wKFByaW50U3RyZWFtJikgY29uc3Q7CiAgICAgdm9pZCBk
ZWVwRHVtcChQcmludFN0cmVhbSYpIGNvbnN0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL2Fpci9BaXJWYWxpZGF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci9BaXJWYWxpZGF0ZS5jcHAJKHJldmlzaW9uIDIwMzM3MSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyVmFsaWRhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTc5LDkg
Kzc5LDkgQEAgcHVibGljOgogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBWQUxJ
REFURShpbnN0LmlzVmFsaWRGb3JtKCksICgiQXQgIiwgaW5zdCwgIiBpbiAiLCAqYmxvY2spKTsK
ICAgICAgICAgICAgICAgICBpZiAoaW5zdEluZGV4ID09IGJsb2NrLT5zaXplKCkgLSAxKQotICAg
ICAgICAgICAgICAgICAgICBWQUxJREFURShpc1Rlcm1pbmFsKGluc3Qub3Bjb2RlKSwgKCJBdCAi
LCBpbnN0LCAiIGluICIsICpibG9jaykpOworICAgICAgICAgICAgICAgICAgICBWQUxJREFURShp
bnN0LmlzVGVybWluYWwoKSwgKCJBdCAiLCBpbnN0LCAiIGluICIsICpibG9jaykpOwogICAgICAg
ICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgVkFMSURBVEUoIWlzVGVybWluYWwo
aW5zdC5vcGNvZGUpLCAoIkF0ICIsIGluc3QsICIgaW4gIiwgKmJsb2NrKSk7CisgICAgICAgICAg
ICAgICAgICAgIFZBTElEQVRFKCFpbnN0LmlzVGVybWluYWwoKSwgKCJBdCAiLCBpbnN0LCAiIGlu
ICIsICpibG9jaykpOwogCiAgICAgICAgICAgICAgICAgLy8gZm9yRWFjaEFyZyBtdXN0IHJldHVy
biBBcmcmJ3MgdGhhdCBwb2ludCBpbnRvIHRoZSBhcmdzIGFycmF5LgogICAgICAgICAgICAgICAg
IGluc3QuZm9yRWFjaEFyZygKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvb3Bj
b2RlX2dlbmVyYXRvci5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
YWlyL29wY29kZV9nZW5lcmF0b3IucmIJKHJldmlzaW9uIDIwMzM3MSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvb3Bjb2RlX2dlbmVyYXRvci5yYgkod29ya2luZyBjb3B5KQpAQCAt
NzE0LDcgKzcxNCw3IEBAIHdyaXRlSCgiT3Bjb2RlVXRpbHMiKSB7CiAgICAgb3V0cC5wdXRzICJy
ZXR1cm4gZmFsc2U7ICIKICAgICBvdXRwLnB1dHMgIn0iCiAKLSAgICBvdXRwLnB1dHMgImlubGlu
ZSBib29sIGlzVGVybWluYWwoT3Bjb2RlIG9wY29kZSkiCisgICAgb3V0cC5wdXRzICJpbmxpbmUg
Ym9vbCBpc0RlZmluaXRlbHlUZXJtaW5hbChPcGNvZGUgb3Bjb2RlKSIKICAgICBvdXRwLnB1dHMg
InsiCiAgICAgb3V0cC5wdXRzICJzd2l0Y2ggKG9wY29kZSkgeyIKICAgICBkaWRGaW5kVGVybWlu
YWxzID0gZmFsc2UKQEAgLTk3Niw2ICs5NzYsMzIgQEAgd3JpdGVIKCJPcGNvZGVHZW5lcmF0ZWQi
KSB7CiAgICAgb3V0cC5wdXRzICJyZXR1cm4gZmFsc2U7IgogICAgIG91dHAucHV0cyAifSIKIAor
ICAgIG91dHAucHV0cyAiYm9vbCBJbnN0Ojppc1Rlcm1pbmFsKCkiCisgICAgb3V0cC5wdXRzICJ7
IgorICAgIG91dHAucHV0cyAic3dpdGNoIChvcGNvZGUpIHsiCisgICAgZm91bmRUcnVlID0gZmFs
c2UKKyAgICAkb3Bjb2Rlcy52YWx1ZXMuZWFjaCB7CisgICAgICAgIHwgb3Bjb2RlIHwKKyAgICAg
ICAgaWYgb3Bjb2RlLmF0dHJpYnV0ZXNbOnRlcm1pbmFsXQorICAgICAgICAgICAgb3V0cC5wdXRz
ICJjYXNlICN7b3Bjb2RlLm5hbWV9OiIKKyAgICAgICAgICAgIGZvdW5kVHJ1ZSA9IHRydWUKKyAg
ICAgICAgZW5kCisgICAgfQorICAgIGlmIGZvdW5kVHJ1ZQorICAgICAgICBvdXRwLnB1dHMgInJl
dHVybiB0cnVlOyIKKyAgICBlbmQKKyAgICAkb3Bjb2Rlcy52YWx1ZXMuZWFjaCB7CisgICAgICAg
IHwgb3Bjb2RlIHwKKyAgICAgICAgaWYgb3Bjb2RlLmN1c3RvbQorICAgICAgICAgICAgb3V0cC5w
dXRzICJjYXNlICN7b3Bjb2RlLm5hbWV9OiIKKyAgICAgICAgICAgIG91dHAucHV0cyAicmV0dXJu
ICN7b3Bjb2RlLm5hbWV9Q3VzdG9tOjppc1Rlcm1pbmFsKCp0aGlzKTsiCisgICAgICAgIGVuZAor
ICAgIH0KKyAgICBvdXRwLnB1dHMgImRlZmF1bHQ6IgorICAgIG91dHAucHV0cyAicmV0dXJuIGZh
bHNlOyIKKyAgICBvdXRwLnB1dHMgIn0iCisgICAgb3V0cC5wdXRzICJ9IgorICAgIAogICAgIG91
dHAucHV0cyAiYm9vbCBJbnN0OjpoYXNOb25BcmdOb25Db250cm9sRWZmZWN0cygpIgogICAgIG91
dHAucHV0cyAieyIKICAgICBvdXRwLnB1dHMgInN3aXRjaCAob3Bjb2RlKSB7IgpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAkocmV2aXNpb24g
MjAzMzcxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCwxMSBAQAogCiAjaW5jbHVkZSAiQWlyR2VuZXJh
dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJBbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2Uu
aCIKKyNpbmNsdWRlICJCM0NoZWNrVmFsdWUuaCIKKyNpbmNsdWRlICJCM1BhdGNocG9pbnRWYWx1
ZS5oIgorI2luY2x1ZGUgIkIzU2xvdEJhc2VWYWx1ZS5oIgogI2luY2x1ZGUgIkIzU3RhY2ttYXBH
ZW5lcmF0aW9uUGFyYW1zLmgiCisjaW5jbHVkZSAiQjNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRl
ICJDYWxsRnJhbWVTaHVmZmxlci5oIgogI2luY2x1ZGUgIkNvZGVCbG9ja1dpdGhKSVRUeXBlLmgi
CiAjaW5jbHVkZSAiREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaCIKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5jcHAJKHJldmlzaW9uIDIwMzM3MSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjgsOCArMjgsMTggQEAKIAogI2lmIEVOQUJMRShGVExfSklUKQogCisjaW5jbHVkZSAiQjNBcmd1
bWVudFJlZ1ZhbHVlLmgiCisjaW5jbHVkZSAiQjNCYXNpY0Jsb2NrSW5saW5lcy5oIgorI2luY2x1
ZGUgIkIzQ0NhbGxWYWx1ZS5oIgorI2luY2x1ZGUgIkIzQ29uc3QzMlZhbHVlLmgiCisjaW5jbHVk
ZSAiQjNDb25zdFB0clZhbHVlLmgiCiAjaW5jbHVkZSAiQjNNYXRoRXh0cmFzLmgiCisjaW5jbHVk
ZSAiQjNNZW1vcnlWYWx1ZS5oIgorI2luY2x1ZGUgIkIzU2xvdEJhc2VWYWx1ZS5oIgogI2luY2x1
ZGUgIkIzU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zLmgiCisjaW5jbHVkZSAiQjNTd2l0Y2hWYWx1
ZS5oIgorI2luY2x1ZGUgIkIzVXBzaWxvblZhbHVlLmgiCisjaW5jbHVkZSAiQjNWYWx1ZUlubGlu
ZXMuaCIKICNpbmNsdWRlICJTdXBlclNhbXBsZXIuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVz
cGFjZSBGVEwgewpAQCAtNTc4LDEyICs1ODgsMTIgQEAgTFZhbHVlIE91dHB1dDo6c2VsZWN0KExW
YWx1ZSB2YWx1ZSwgTFZhbAogCiB2b2lkIE91dHB1dDo6anVtcChMQmFzaWNCbG9jayBkZXN0aW5h
dGlvbikKIHsKLSAgICBtX2Jsb2NrLT5hcHBlbmROZXc8QjM6OkNvbnRyb2xWYWx1ZT4obV9wcm9j
LCBCMzo6SnVtcCwgb3JpZ2luKCksIEIzOjpGcmVxdWVudGVkQmxvY2soZGVzdGluYXRpb24pKTsK
KyAgICBtX2Jsb2NrLT5hcHBlbmROZXdDb250cm9sVmFsdWUobV9wcm9jLCBCMzo6SnVtcCwgb3Jp
Z2luKCksIEIzOjpGcmVxdWVudGVkQmxvY2soZGVzdGluYXRpb24pKTsKIH0KIAogdm9pZCBPdXRw
dXQ6OmJyYW5jaChMVmFsdWUgY29uZGl0aW9uLCBMQmFzaWNCbG9jayB0YWtlbiwgV2VpZ2h0IHRh
a2VuV2VpZ2h0LCBMQmFzaWNCbG9jayBub3RUYWtlbiwgV2VpZ2h0IG5vdFRha2VuV2VpZ2h0KQog
ewotICAgIG1fYmxvY2stPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KAorICAgIG1fYmxvY2stPmFw
cGVuZE5ld0NvbnRyb2xWYWx1ZSgKICAgICAgICAgbV9wcm9jLCBCMzo6QnJhbmNoLCBvcmlnaW4o
KSwgY29uZGl0aW9uLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sodGFrZW4sIHRha2VuV2VpZ2h0
LmZyZXF1ZW5jeUNsYXNzKCkpLAogICAgICAgICBGcmVxdWVudGVkQmxvY2sobm90VGFrZW4sIG5v
dFRha2VuV2VpZ2h0LmZyZXF1ZW5jeUNsYXNzKCkpKTsKQEAgLTYwMywxMiArNjEzLDEyIEBAIHZv
aWQgT3V0cHV0OjpjaGVjayhMVmFsdWUgY29uZGl0aW9uLCBXZWkKIAogdm9pZCBPdXRwdXQ6OnJl
dChMVmFsdWUgdmFsdWUpCiB7Ci0gICAgbV9ibG9jay0+YXBwZW5kTmV3PEIzOjpDb250cm9sVmFs
dWU+KG1fcHJvYywgQjM6OlJldHVybiwgb3JpZ2luKCksIHZhbHVlKTsKKyAgICBtX2Jsb2NrLT5h
cHBlbmROZXdDb250cm9sVmFsdWUobV9wcm9jLCBCMzo6UmV0dXJuLCBvcmlnaW4oKSwgdmFsdWUp
OwogfQogCiB2b2lkIE91dHB1dDo6dW5yZWFjaGFibGUoKQogewotICAgIG1fYmxvY2stPmFwcGVu
ZE5ldzxCMzo6Q29udHJvbFZhbHVlPihtX3Byb2MsIEIzOjpPb3BzLCBvcmlnaW4oKSk7CisgICAg
bV9ibG9jay0+YXBwZW5kTmV3Q29udHJvbFZhbHVlKG1fcHJvYywgQjM6Ok9vcHMsIG9yaWdpbigp
KTsKIH0KIAogQ2hlY2tWYWx1ZSogT3V0cHV0OjpzcGVjdWxhdGUoTFZhbHVlIHZhbHVlKQpAQCAt
NjM4LDcgKzY0OCw3IEBAIFBhdGNocG9pbnRWYWx1ZSogT3V0cHV0OjpwYXRjaHBvaW50KExUeXAK
IAogdm9pZCBPdXRwdXQ6OnRyYXAoKQogewotICAgIG1fYmxvY2stPmFwcGVuZE5ldzxCMzo6Q29u
dHJvbFZhbHVlPihtX3Byb2MsIEIzOjpPb3BzLCBvcmlnaW4oKSk7CisgICAgbV9ibG9jay0+YXBw
ZW5kTmV3Q29udHJvbFZhbHVlKG1fcHJvYywgQjM6Ok9vcHMsIG9yaWdpbigpKTsKIH0KIAogVmFs
dWVGcm9tQmxvY2sgT3V0cHV0OjphbmNob3IoTFZhbHVlIHZhbHVlKQpAQCAtNzI5LDYgKzczOSwx
MSBAQCB2b2lkIE91dHB1dDo6ZGVjcmVtZW50U3VwZXJTYW1wbGVyQ291bnQoCiAgICAgc3RvcmUz
MihzdWIobG9hZDMyKGNvdW50ZXIpLCBpbnQzMk9uZSksIGNvdW50ZXIpOwogfQogCit2b2lkIE91
dHB1dDo6YWRkSW5jb21pbmdUb1BoaShMVmFsdWUgcGhpLCBWYWx1ZUZyb21CbG9jayB2YWx1ZSkK
K3sKKyAgICB2YWx1ZS52YWx1ZSgpLT5hczxCMzo6VXBzaWxvblZhbHVlPigpLT5zZXRQaGkocGhp
KTsKK30KKwogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAogCiAjZW5kaWYgLy8gRU5BQkxFKEZU
TF9KSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE91dHB1dC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmgJKHJldmlzaW9u
IDIwMzM3MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT3V0cHV0LmgJKHdvcmtp
bmcgY29weSkKQEAgLTMwLDE5ICszMCwxMiBAQAogCiAjaWYgRU5BQkxFKEZUTF9KSVQpCiAKLSNp
bmNsdWRlICJCM0FyZ3VtZW50UmVnVmFsdWUuaCIKICNpbmNsdWRlICJCM0Jhc2ljQmxvY2tJbmxp
bmVzLmgiCiAjaW5jbHVkZSAiQjNDQ2FsbFZhbHVlLmgiCiAjaW5jbHVkZSAiQjNDb21waWxhdGlv
bi5oIgotI2luY2x1ZGUgIkIzQ29uc3QzMlZhbHVlLmgiCi0jaW5jbHVkZSAiQjNDb25zdFB0clZh
bHVlLmgiCi0jaW5jbHVkZSAiQjNDb250cm9sVmFsdWUuaCIKLSNpbmNsdWRlICJCM01lbW9yeVZh
bHVlLmgiCisjaW5jbHVkZSAiQjNGcmVxdWVudGVkQmxvY2suaCIKICNpbmNsdWRlICJCM1Byb2Nl
ZHVyZS5oIgotI2luY2x1ZGUgIkIzU2xvdEJhc2VWYWx1ZS5oIgogI2luY2x1ZGUgIkIzU3dpdGNo
VmFsdWUuaCIKLSNpbmNsdWRlICJCM1Vwc2lsb25WYWx1ZS5oIgotI2luY2x1ZGUgIkIzVmFsdWVJ
bmxpbmVzLmgiCiAjaW5jbHVkZSAiRlRMQWJicmV2aWF0ZWRUeXBlcy5oIgogI2luY2x1ZGUgIkZU
TEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaCIKICNpbmNsdWRlICJGVExDb21tb25WYWx1ZXMuaCIK
QEAgLTY0LDcgKzU3LDEzIEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1uYW1lc3BhY2UgREZHIHsg
c3RydWN0IE5vZGU7IH0KK25hbWVzcGFjZSBERkcgeworc3RydWN0IE5vZGU7Cit9IC8vIG5hbWVz
cGFjZSBERkcKKworbmFtZXNwYWNlIEIzIHsKK2NsYXNzIFNsb3RCYXNlVmFsdWU7Cit9IC8vIG5h
bWVzcGFjZSBCMwogCiBuYW1lc3BhY2UgRlRMIHsKIApAQCAtMTA2LDkgKzEwNSwxOSBAQCBwdWJs
aWM6CiAgICAgTFZhbHVlIGNvbnN0Qm9vbChib29sIHZhbHVlKTsKICAgICBMVmFsdWUgY29uc3RJ
bnQzMihpbnQzMl90IHZhbHVlKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgotICAgIExWYWx1
ZSBjb25zdEludFB0cihUKiB2YWx1ZSkgeyByZXR1cm4gbV9ibG9jay0+YXBwZW5kTmV3PEIzOjpD
b25zdFB0clZhbHVlPihtX3Byb2MsIG9yaWdpbigpLCB2YWx1ZSk7IH0KKyAgICBMVmFsdWUgY29u
c3RJbnRQdHIoVCogdmFsdWUpCisgICAgeworICAgICAgICBpZiAoc2l6ZW9mKHZvaWQqKSA9PSA4
KQorICAgICAgICAgICAgcmV0dXJuIGNvbnN0SW50NjQoYml0d2lzZV9jYXN0PGludHB0cl90Pih2
YWx1ZSkpOworICAgICAgICByZXR1cm4gY29uc3RJbnQzMihiaXR3aXNlX2Nhc3Q8aW50cHRyX3Q+
KHZhbHVlKSk7CisgICAgfQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci0gICAgTFZhbHVlIGNv
bnN0SW50UHRyKFQgdmFsdWUpIHsgcmV0dXJuIG1fYmxvY2stPmFwcGVuZE5ldzxCMzo6Q29uc3RQ
dHJWYWx1ZT4obV9wcm9jLCBvcmlnaW4oKSwgdmFsdWUpOyB9CisgICAgTFZhbHVlIGNvbnN0SW50
UHRyKFQgdmFsdWUpCisgICAgeworICAgICAgICBpZiAoc2l6ZW9mKHZvaWQqKSA9PSA4KQorICAg
ICAgICAgICAgcmV0dXJuIGNvbnN0SW50NjQoc3RhdGljX2Nhc3Q8aW50cHRyX3Q+KHZhbHVlKSk7
CisgICAgICAgIHJldHVybiBjb25zdEludDMyKHN0YXRpY19jYXN0PGludHB0cl90Pih2YWx1ZSkp
OworICAgIH0KICAgICBMVmFsdWUgY29uc3RJbnQ2NChpbnQ2NF90IHZhbHVlKTsKICAgICBMVmFs
dWUgY29uc3REb3VibGUoZG91YmxlIHZhbHVlKTsKIApAQCAtMzU0LDggKzM2Myw3IEBAIHB1Ymxp
YzoKICAgICBMVmFsdWUgY2FsbFdpdGhvdXRTaWRlRWZmZWN0cyhCMzo6VHlwZSB0eXBlLCBGdW5j
dGlvbiBmdW5jdGlvbiwgTFZhbHVlIGFyZzEsIEFyZ3MuLi4gYXJncykKICAgICB7CiAgICAgICAg
IHJldHVybiBtX2Jsb2NrLT5hcHBlbmROZXc8QjM6OkNDYWxsVmFsdWU+KG1fcHJvYywgdHlwZSwg
b3JpZ2luKCksIEIzOjpFZmZlY3RzOjpub25lKCksCi0gICAgICAgICAgICBtX2Jsb2NrLT5hcHBl
bmROZXc8QjM6OkNvbnN0UHRyVmFsdWU+KG1fcHJvYywgb3JpZ2luKCksIGJpdHdpc2VfY2FzdDx2
b2lkKj4oZnVuY3Rpb24pKSwKLSAgICAgICAgICAgIGFyZzEsIGFyZ3MuLi4pOworICAgICAgICAg
ICAgY29uc3RJbnRQdHIoYml0d2lzZV9jYXN0PHZvaWQqPihmdW5jdGlvbikpLCBhcmcxLCBhcmdz
Li4uKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdGlvblR5cGU+CkBAIC0z
NzgsOCArMzg2LDggQEAgcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZlY3RvclR5cGU+
CiAgICAgdm9pZCBzd2l0Y2hJbnN0cnVjdGlvbihMVmFsdWUgdmFsdWUsIGNvbnN0IFZlY3RvclR5
cGUmIGNhc2VzLCBMQmFzaWNCbG9jayBmYWxsVGhyb3VnaCwgV2VpZ2h0IGZhbGxUaHJvdWdoV2Vp
Z2h0KQogICAgIHsKLSAgICAgICAgQjM6OlN3aXRjaFZhbHVlKiBzd2l0Y2hWYWx1ZSA9IG1fYmxv
Y2stPmFwcGVuZE5ldzxCMzo6U3dpdGNoVmFsdWU+KAotICAgICAgICAgICAgbV9wcm9jLCBvcmln
aW4oKSwgdmFsdWUsIEIzOjpGcmVxdWVudGVkQmxvY2soZmFsbFRocm91Z2gpKTsKKyAgICAgICAg
QjM6OlN3aXRjaFZhbHVlKiBzd2l0Y2hWYWx1ZSA9IG1fYmxvY2stPmFwcGVuZE5ldzxCMzo6U3dp
dGNoVmFsdWU+KG1fcHJvYywgb3JpZ2luKCksIHZhbHVlKTsKKyAgICAgICAgc3dpdGNoVmFsdWUt
PnNldEZhbGxUaHJvdWdoKEIzOjpGcmVxdWVudGVkQmxvY2soZmFsbFRocm91Z2gpKTsKICAgICAg
ICAgZm9yIChjb25zdCBTd2l0Y2hDYXNlJiBzd2l0Y2hDYXNlIDogY2FzZXMpIHsKICAgICAgICAg
ICAgIGludDY0X3QgdmFsdWUgPSBzd2l0Y2hDYXNlLnZhbHVlKCktPmFzSW50KCk7CiAgICAgICAg
ICAgICBCMzo6RnJlcXVlbnRlZEJsb2NrIHRhcmdldChzd2l0Y2hDYXNlLnRhcmdldCgpLCBzd2l0
Y2hDYXNlLndlaWdodCgpLmZyZXF1ZW5jeUNsYXNzKCkpOwpAQCAtNDM5LDExICs0NDcsNiBAQCBp
bmxpbmUgTFZhbHVlIE91dHB1dDo6cGhpKExUeXBlIHR5cGUsIGNvCiAgICAgcmV0dXJuIHBoaU5v
ZGU7CiB9CiAKLWlubGluZSB2b2lkIE91dHB1dDo6YWRkSW5jb21pbmdUb1BoaShMVmFsdWUgcGhp
LCBWYWx1ZUZyb21CbG9jayB2YWx1ZSkKLXsKLSAgICB2YWx1ZS52YWx1ZSgpLT5hczxCMzo6VXBz
aWxvblZhbHVlPigpLT5zZXRQaGkocGhpKTsKLX0KLQogdGVtcGxhdGU8dHlwZW5hbWUuLi4gUGFy
YW1zPgogaW5saW5lIHZvaWQgT3V0cHV0OjphZGRJbmNvbWluZ1RvUGhpKExWYWx1ZSBwaGksIFZh
bHVlRnJvbUJsb2NrIHZhbHVlLCBQYXJhbXMuLi4gdGhlUmVzdCkKIHsKSW5kZXg6IFdlYnNpdGVz
L3dlYmtpdC5vcmcvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYnNpdGVzL3dlYmtpdC5vcmcv
Q2hhbmdlTG9nCShyZXZpc2lvbiAyMDMzNzEpCisrKyBXZWJzaXRlcy93ZWJraXQub3JnL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE2LTA3LTE3ICBGaWxpcCBQ
aXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IHRhYmxlLWJhc2Vk
IHN3aXRjaGVzIGluIEIzL0FpcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTUxMTQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisgICAgICAgIAorICAgICAgICBVcGRhdGUgZG9jdW1lbnRhdGlvbiB0byByZWZsZWN0IFBhdGNo
cG9pbnQncyBuZXcgcG93ZXJzLgorCisgICAgICAgICogZG9jcy9iMy9pbnRlcm1lZGlhdGUtcmVw
cmVzZW50YXRpb24uaHRtbDoKKwogMjAxNi0wNy0xNSAgSm9uIERhdmlzICA8am9uZEBhcHBsZS5j
b20+CiAKICAgICAgICAgRml4ZWQgY29udGVudCBvdmVyZmxvdyBhbmQgbWlzc2luZyBidWlsZCBp
bmZvcm1hdGlvbiBiZWhhdmlvci4KSW5kZXg6IFdlYnNpdGVzL3dlYmtpdC5vcmcvZG9jcy9iMy9p
bnRlcm1lZGlhdGUtcmVwcmVzZW50YXRpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJzaXRlcy93
ZWJraXQub3JnL2RvY3MvYjMvaW50ZXJtZWRpYXRlLXJlcHJlc2VudGF0aW9uLmh0bWwJKHJldmlz
aW9uIDIwMzM3MSkKKysrIFdlYnNpdGVzL3dlYmtpdC5vcmcvZG9jcy9iMy9pbnRlcm1lZGlhdGUt
cmVwcmVzZW50YXRpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNDMsNyArNDMsNyBAQAogICAg
IDxwPlRoZSBhY3Qgb2YgY29tcGlsaW5nIHRoZSBQcm9jZWR1cmUgY2hhbmdlcyBpdCBpbi1wbGFj
ZSwgbWFraW5nIGl0IHVuc3VpdGFibGUgZm9yCiAgICAgICBjb21waWxpbmcgYWdhaW4uICBBbHdh
eXMgY3JlYXRlIGEgbmV3IFByb2NlZHVyZSBldmVyeSB0aW1lIHlvdSB3YW50IHRvIGNvbXBpbGUK
ICAgICAgIHNvbWV0aGluZy48L3A+Ci0KKyAgICAKICAgICA8aDI+VHlwZXM8L2gyPgogCiAgICAg
PHA+QjMgaGFzIGEgdHJpdmlhbCB0eXBlIHN5c3RlbSB3aXRoIG9ubHkgZml2ZSB0eXBlczo8L3A+
CkBAIC0xMzAsOCArMTMwLDE1IEBACiAgICAgPGgyPkNvbnRyb2wgZmxvdzwvaDI+CiAKICAgICA8
cD5CMyByZXByZXNlbnRzIGNvbnRyb2wgZmxvdyB1c2luZyBiYXNpYyBibG9ja3MuICBFYWNoIGJh
c2ljIGJsb2NrIG1heSBoYXZlIHplcm8gb3IgbW9yZQotICAgICAgcHJlZGVjZXNzb3JzLiAgRWFj
aCBiYXNpYyBibG9jayBtYXkgaGF2ZSB6ZXJvIG9yIG1vcmUgc3VjY2Vzc29ycy4gIFRoZSBzdWNj
ZXNzb3JzIGFyZQotICAgICAgY29udHJvbGxlZCBieSB0aGUgYmFzaWMgYmxvY2sncyBsYXN0IFZh
bHVlLCB3aGljaCBtdXN0IGJlIGEgQ29udHJvbFZhbHVlIGluc3RhbmNlLjwvcD4KKyAgICAgIHBy
ZWRlY2Vzc29ycy4gIEVhY2ggYmFzaWMgYmxvY2sgbWF5IGhhdmUgemVybyBvciBtb3JlIHN1Y2Nl
c3NvcnMuICBUaGUgbWVhbmluZyBvZiB0aGUKKyAgICAgIHN1Y2Nlc3NvcnMgaXMgZGV0ZXJtaW5l
ZCBieSB0aGUgYmFzaWMgYmxvY2sncyBsYXN0IFZhbHVlLCB3aGljaCBtdXN0IGJlIGEgdGVybWlu
YWwuIEEKKyAgICAgIHZhbHVlIGlzIHRlcm1pbmFsIGlmOjwvcD4KKyAgICAKKyAgICA8cHJlPjxj
b2RlPnZhbHVlLSZndDtlZmZlY3RzKCkudGVybWluYWw8L2NvZGU+PC9wcmU+CisgICAgCisgICAg
PHA+U29tZSBvcGNvZGVzIGFyZSBkZWZpbml0ZWx5IHRlcm1pbmFsLCBsaWtlIEp1bXAsIEJyYW5j
aCwgT29wcywgUmV0dXJuLCBhbmQgU3dpdGNoLiBCdXQgYQorICAgICAgdmFsdWUgd2l0aCB0aGUg
UGF0Y2hwb2ludCBvcGNvZGUgbWF5IG9yIG1heSBub3QgYmUgdGVybWluYWwuIEluIGdlbmVyYWwg
aXQncyBuZWNlc3NhcnkgdG8KKyAgICAgIGNoZWNrIHRoZSA8Y29kZT50ZXJtaW5hbDwvY29kZT4g
Yml0IGFzIHNob3duIGFib3ZlLjwvcD4KIAogICAgIDxwPkVhY2ggYmFzaWMgYmxvY2sgY29udGFp
bnMgYSBWZWN0b3ImbHQ7VmFsdWUqJmd0OyBhcyB0aGUgY29udGVudHMgb2YgdGhlIGJsb2NrLiBD
b250cm9sCiAgICAgICBmbG93IGluc2lkZSB0aGUgYmxvY2sgaXMgaW1wbGljaXQgYmFzZWQgb24g
dGhlIG9yZGVyIG9mIFZhbHVlcyBpbiB0aGUgdmVjdG9yLjwvcD4KQEAgLTQ1OCw2ICs0NjUsMTcg
QEAgcGF0Y2hwb2ludC0+c2V0R2VuZXJhdG9yKAogICAgICAgICAgIHBhdGNocG9pbnQgd2lsbCB0
YWtlIHNvbWUgZXhpdCBzdGF0ZSBhcyBwYXJ0IG9mIGl0cyBhcmd1bWVudHMsIGFuZCBpdCB3aWxs
IG1hbmlwdWxhdGUKICAgICAgICAgICB0aGUgY2FsbCBmcmFtZSBpbiBwbGFjZSB0byBtYWtlIGl0
IGxvb2sgbGlrZSBhbm90aGVyIGV4ZWN1dGlvbiBlbmdpbmUncyBjYWxsIGZyYW1lLgogICAgICAg
ICAgIFRoaXMgaXMgY2FsbGVkIE9TUiwgYW5kIEphdmFTY3JpcHRDb3JlIGRvZXMgaXQgYSBsb3Qu
PC9wPgorICAgICAgICAKKyAgICAgICAgPHA+QSBwYXRjaHBvaW50IGNhbiBiZSB1c2VkIGFzIGEg
dGVybWluYWwuIFNpbXBseSBzZXQgdGhlIDxjb2RlPnRlcm1pbmFsPC9jb2RlPiBiaXQ6PC9wPgor
ICAgICAgICAKKyAgICAgICAgPHByZT48Y29kZT5wYXRjaHBvaW50LSZndDtlZmZlY3RzLnRlcm1p
bmFsID0gdHJ1ZTs8L2NvZGU+PC9wcmU+CisgICAgICAgIAorICAgICAgICA8cD5UaGUgZ2VuZXJh
dG9yIGNhbiBkZXRlcm1pbmUgd2hlcmUgdG8gYnJhbmNoIGJ5IHVzaW5nIHRoZSBTdGFja21hcEdl
bmVyYXRpb25QYXJhbXMgdG8KKyAgICAgICAgICBnZXQgdGhlIHNldCBvZiBsYWJlbHMgZm9yIGFs
bCBzdWNjZXNzb3JzLiBZb3UncmUgZ3VhcmFudGVlZCB0aGF0IHRoZSBudW1iZXIgb2YKKyAgICAg
ICAgICBzdWNjZXNzb3JzIG9mIHRoZSBwYXRjaHBvaW50J3MgYmFzaWMgYmxvY2sgd2lsbCBiZSB0
aGUgc2FtZSBhcyB3aGVuIHlvdSBjcmVhdGVkIGl0LgorICAgICAgICAgIEhvd2V2ZXIsIGxpa2Ug
YW55IHZhbHVlLCBhIHBhdGNocG9pbnQgbWF5IGJlIGNsb25lZC4gVGhpcyBtZWFucywgZm9yIGV4
YW1wbGUsIHRoYXQgaWYKKyAgICAgICAgICB5b3UgdXNlIHRoaXMgdG8gaW1wbGVtZW50IGEgdGFi
bGUganVtcCB0aGVuIHRoZSBqdW1wIHRhYmxlIG11c3QgYmUgY3JlYXRlZCBpbnNpZGUgdGhlCisg
ICAgICAgICAgZ2VuZXJhdG9yLCBzbyB0aGF0IHlvdSBnZXQgb25lIGp1bXAgdGFibGUgcGVyIGNs
b25lLjwvcD4KICAKICAgICAgICAgPHA+TXVzdCB1c2UgdGhlIFBhdGNocG9pbnRWYWx1ZSBjbGFz
cyB3aXRoIHRoZSBQYXRjaHBvaW50IG9wY29kZS48L3A+CiAgICAgICA8L2RkPgpJbmRleDogTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwko
cmV2aXNpb24gMjAzMzcxKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMTYtMDctMTcgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxl
LmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgdGFibGUtYmFzZWQgc3dpdGNoZXMgaW4gQjMvQWly
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTExNDEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGpzL3Jl
Z3Jlc3MvYmlnc3dpdGNoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVz
cy9iaWdzd2l0Y2guaHRtbDogQWRkZWQuCisgICAgICAgICoganMvcmVncmVzcy9zY3JpcHQtdGVz
dHMvYmlnc3dpdGNoLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisKIDIwMTYtMDctMTggIEZp
bGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXBlYXRlZGx5IGNyZWF0
aW5nIGFuZCBkZXN0cm95aW5nIHdvcmtlcnMgdGhhdCBlbnF1ZXVlIERGRyBwbGFucyBjYW4gb3V0
cGFjZSB0aGUgREZHIHdvcmtsaXN0LCB3aGljaCB0aGVuIGNhdXNlcyBWTSBzaHV0ZG93biB0byBz
dGFsbCwgd2hpY2ggdGhlbiBjYXVzZXMgYSBtZW1vcnkgZ3Jvd3RoCkluZGV4OiBMYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvanMvcmVncmVzcy9iaWdzd2l0Y2gtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysr
IExheW91dFRlc3RzL2pzL3JlZ3Jlc3MvYmlnc3dpdGNoLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDEwIEBACitKU1JlZ3Jlc3MvYmlnc3dpdGNoCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIG5vIGV4Y2VwdGlvbiB0aHJvd24KK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0
cy9qcy9yZWdyZXNzL2JpZ3N3aXRjaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pz
L3JlZ3Jlc3MvYmlnc3dpdGNoLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvanMv
cmVncmVzcy9iaWdzd2l0Y2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEyIEBACis8
IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvcmVncmVz
cy1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9iaWdzd2l0Y2gu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9yZWdyZXNzLXBvc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvcmVn
cmVzcy9zY3JpcHQtdGVzdHMvYmlnc3dpdGNoLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2pzL3JlZ3Jlc3Mvc2NyaXB0LXRlc3RzL2JpZ3N3aXRjaC5qcwkobm9uZXhpc3RlbnQpCisrKyBM
YXlvdXRUZXN0cy9qcy9yZWdyZXNzL3NjcmlwdC10ZXN0cy9iaWdzd2l0Y2guanMJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwyMTEgQEAKK2Z1bmN0aW9uIGZvbyhvKSB7CisgICAgdmFyIHJlc3Vs
dCA9IDA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyArK2kpIHsKKyAgICAgICAgdmFy
IHZhbHVlID0gaSAmIDYzOworICAgICAgICBzd2l0Y2ggKHZhbHVlKSB7CisgICAgICAgIGNhc2Ug
MDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSAxOgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uYjsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICByZXN1bHQgKz0gby5jOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmQ7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0OgorICAgICAgICAgICAgcmVzdWx0ICs9
IG8uZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDU6CisgICAgICAgICAgICBy
ZXN1bHQgKz0gby5mOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgNjoKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA3
OgorICAgICAgICAgICAgcmVzdWx0ICs9IG8uaDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIDg6CisgICAgICAgICAgICByZXN1bHQgKz0gby5pOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIGNhc2UgOToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSAxMDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxMToKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLmE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxMjoKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLmI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxMzoKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLmM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSAxNDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmQ7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSAxNToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmU7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSAxNjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmY7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxNzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
Lmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxODoKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLmg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxOToKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAy
MDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSAyMToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSAyMjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyMzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmE7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyNDoKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLmI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyNToKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLmM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAyNjoK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSAyNzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmU7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSAyODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmY7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSAyOToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzMDoKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLmg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzMToKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLmk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzMjoKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSAzMzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSAzNDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSAzNToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzNjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
LmE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzNzoKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLmI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAzODoKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLmM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAz
OToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSA0MDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmU7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSA0MToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmY7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0MjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0MzoKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLmg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0NDoKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0NToK
KyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSA0NjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSA0NzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSA0ODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA0OToKKyAgICAgICAgICAgIHJlc3VsdCAr
PSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1MDoKKyAgICAgICAgICAg
IHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1MToKKyAg
ICAgICAgICAgIHJlc3VsdCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSA1MjoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmE7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSA1MzoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmI7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSA1NDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmM7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1NToKKyAgICAgICAgICAgIHJlc3VsdCArPSBv
LmQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1NjoKKyAgICAgICAgICAgIHJl
c3VsdCArPSBvLmU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1NzoKKyAgICAg
ICAgICAgIHJlc3VsdCArPSBvLmY7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA1
ODoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSA1OToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmg7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSA2MDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSA2MToKKyAgICAgICAgICAgIHJlc3VsdCArPSBvLmo7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSA2MjoKKyAgICAgICAgICAgIHJlc3Vs
dCArPSBvLms7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAg
ICAgIHJlc3VsdCArPSBvLno7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0K
KyAgICByZXR1cm4gcmVzdWx0OworfQorCisoZnVuY3Rpb24oKSB7CisgICAgdmFyIG8gPSB7YTox
LCBiOjIsIGM6MywgZDo0LCBlOjUsIGY6NiwgZzo3LCBoOjgsIGk6OSwgajoxMCwgazoxMSwgejox
MDB9OworICAgIHZhciByZXN1bHQgPSAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7
ICsraSkKKyAgICAgICAgcmVzdWx0ICs9IGZvbyhvKTsKKyAgICBpZiAocmVzdWx0ICE9IDc5NjYw
MDAwKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9KSgp
OworCg==
</data>
<flag name="review"
          id="307593"
          type_id="1"
          status="+"
          setter="benjamin"
    />
          </attachment>
      

    </bug>

</bugzilla>